feat: integrate luckysheet inline and fullscreen

This commit is contained in:
liaibo
2025-11-23 17:22:35 +08:00
parent c8e479aeab
commit 994dd4e67c
529 changed files with 403413 additions and 201 deletions
+63
View File
@@ -0,0 +1,63 @@
# 依赖目录
node_modules
**/node_modules
# 构建输出
dist
build
server/wwwroot
server/public/dist
# 日志文件
logs
*.log
npm-debug.log*
pnpm-debug.log*
yarn-debug.log*
yarn-error.log*
# 环境变量文件
.env
.env.local
.env.*.local
# Git
.git
.gitignore
.gitattributes
# IDE
.vscode
.idea
*.swp
*.swo
*~
# 操作系统
.DS_Store
Thumbs.db
# 临时文件
*.tmp
*.temp
# Docker
.dockerignore
Dockerfile
docker-compose.yml
# 文档
README.md
README-zh.md
LICENSE
# 测试
test
tests
*.test.js
*.spec.js
# 上传文件
server/public/uploads
public/uploads
+43
View File
@@ -0,0 +1,43 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
node_modules
dist
dist-ssr
*.local
# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
server/build
server/logs
server/public/uploads/*
server/public/dist
# Luckysheet-source 二开源码不开源
Luckysheet-source
Luckysheet-source-private
*.xlsx
*.zip
*.rar
*.7z
*.tar.gz
*.tar.bz2
*.tar.xz
+58
View File
@@ -0,0 +1,58 @@
# 使用 Node.js 20 作为基础镜像
FROM node:20-alpine AS builder
# 设置工作目录
WORKDIR /app
# 复制 package 文件
COPY package*.json ./
COPY pnpm-lock.yaml ./
# 复制 server 目录的 package 文件
COPY server/package*.json ./server/
COPY server/pnpm-lock.yaml ./server/
# 安装 pnpm
RUN npm install -g pnpm
# 安装前端依赖
RUN pnpm install --frozen-lockfile
# 安装后端依赖
WORKDIR /app/server
RUN pnpm install --frozen-lockfile
# 复制项目文件
WORKDIR /app
COPY . .
# 构建前端项目
RUN pnpm run build
# 构建后端项目
RUN pnpm run build:server
# ============================================
# 生产镜像
# ============================================
FROM node:20-alpine
# 设置工作目录
WORKDIR /app
# 复制构建产物
COPY --from=builder /app/server/wwwroot ./
# 安装生产依赖
RUN npm install --production --registry=https://registry.npmmirror.com
# 暴露端口
EXPOSE 9000
# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
CMD node -e "require('http').get('http://localhost:9000', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"
# 启动应用
CMD ["npm", "run", "start"]
+201
View File
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
+707
View File
@@ -0,0 +1,707 @@
<p align="center">
<img src='./public/logo.svg' alt="Luckysheet CRDT Logo" />
</p>
<h1 align="center">Luckysheet CRDT</h1>
简体中文 | [English](./README.md)
`在线体验地址`: [https://luckysheet-crdt.netlify.app/](https://luckysheet-crdt.netlify.app/)
<p align="center">
<img src='./public/result/result.gif' alt='协同编辑演示' />
</p>
---
## 项目分支
- `master`: 稳定版,提供可选数据库服务,功能完整实现
- `master-alpha`: 开发版,提供可选数据库服务,功能完整实现
- `master-vue`: 稳定版,提供用户系统、文件系统,功能完整实现,依赖数据库服务
## 仓库地址
- `Gitee`: [https://gitee.com/wfeng0/luckysheet-crdt](https://gitee.com/wfeng0/luckysheet-crdt)
- `GitHub`: [https://github.com/pushu-wf/luckysheet-crdt](https://github.com/pushu-wf/luckysheet-crdt)
**⚠️ 温馨提示**
最新的特性始终在`Gitee`上先更新,并且以 `Gitee [master-alpha]``Gitee [master]``Github [master]`的顺序更新。
## 项目说明
1. 本项目基于 [Luckysheet](https://github.com/mengshukeji/Luckysheet) 源码修改,**请遵循原作者开源协议**,同时,**请不要删除或修改源码头部版权声明**
2. 本项目以 **Apache2.0 协议开源**,请放心使用,同时,本项目也将回馈于 Luckysheet 社区,丰富社区生态,再次感谢 @[Luckysheet](https://github.com/mengshukeji/Luckysheet) 团队 ❤️
3. 项目为 **Luckysheet 协同增强版(全功能实现)**,意在**提供协同实现思路、数据存储服务、协同演示**等
4. 项目支持 **可选数据库服务**,没有数据库的用户数据无法持久化存储,协同功能并不受影响,**⚠️ 仅对 `master``master-alpha` 分支有效,`master-vue` 依赖数据库功能实现用户系统**
5. 项目使用 **[Sequelize](https://www.sequelize.cn/)** 作为 ORM 数据服务技术,支持 MySQL、SQLite、PostgreSQL、MSSQL 等数据库,方便用户快速迁移
6. 项目使用 **Typescript** 作为主要开发语言,提供完整的类型提示,规范代码,提高开发效率。
7. 个人精力有限,**存在 BUG 及功能未完善之处**,请提交 [issue](https://gitee.com/wfeng0/luckysheet-crdt/issues/new),我会及时处理
8. 也欢迎大家 fork 项目,提交 PR,一起完善项目
## 收费声明
为了更好地驱动开源发展,从 `2025-04-15``e12d2f4850127f53292a5161445fc500593176b9` 版本开始,**项目不再提供 Luckysheet 源码修改部分**。如您需要源码进行二次开发,请联系作者付费获取。
请注意,**Luckysheet-CRDT 前后台功能完全开源,不依赖源码即可正常使用所有协同编辑功能**,项目启动、运行、部署等环节均不需要源码。
源码主要用于二次开发场景下的功能拓展:
- 如果您仅使用现有的协同编辑功能,**无需获取源码**
- 如果您需要进行二次开发以满足特定需求,**请联系作者付费获取源码**
**服务详情**
- **收费标准****`199 元`**
- **服务内容**:仅提供源码包(不包含持续的功能升级、BUG 修复,也不等同于产品购买)
- **联系方式**QQ 群: `522121825`(推荐)| Email: `<1982392655@qq.com>`(推荐)
## 项目启动
1. 克隆项目:
```bash
git clone https://gitee.com/wfeng0/luckysheet-crdt
```
2. **下载依赖**
```bash
# "dep-npm": "npm install --s && cd server && npm install --s",
# "dep-pnpm": "pnpm install --s && cd server && pnpm install --s"
npm run dep-npm | npm run dep-pnpm
# 推荐使用 pnpm 进行依赖的安装,避免出现版本冲突问题
```
**⛔️ 温馨提示**
```js
1. 项目依赖分为前端依赖后端依赖独立的项目
2. 推荐大家使用 `pnpm install` 安装依赖避免出现版本冲突问题
3. 如果依赖下载报错可以尝试删除 `package-lock.json` 文件重新执行依赖安装
4. 如果封装命令 `npm run dep-npm` 报错请尝试执行 `npm install --s` 命令进行前端依赖安装执行 `cd server && npm install --s` 命令进行后端依赖安装
---
**如果还报错请确认环境是否满足运行条件**
`node -v ==> v20.x.x` // 请确保 node 版本大于 18
`npm -v ==> 10.x.x` // 请确保 npm 版本大于 7.x.x
```
3. 🚫<span style="color:red;font-weight:900">~~如果无数据库服务,请跳过此步骤~~</span>🚫 配置数据库参数:
```ts
// server/src/Config/index.ts
export const SQL_CONFIG = {
port: 3306,
host: "127.0.0.1", // localhost or 127.0.0.1
database: "luckysheet_crdt",
user: "root",
password: "root",
};
```
4. 🚫<span style="color:red;font-weight:900">~~如果无数据库服务,请跳过此步骤~~</span>🚫 同步数据库表:
```bash
npm run db
```
**⛔️ 温馨提示**
```ts
1.
2. `npm run db`
3.
```
5. 启动服务:
- 前端服务:`npm run dev`
- 后端服务:`npm run server`
6. 打开网址:`http://localhost:5000` | `http://localhost:9000` 即可体验协同功能。
## 项目部署
### 方式一:Docker 部署(推荐)🐳
**使用 Docker Compose 一键部署,无需手动配置环境和数据库!**
#### 1. 前提条件
- 已安装 Docker 20.10+
- 已安装 Docker Compose 2.0+
#### 2. 快速开始
**手动部署:**
```bash
# 1. 复制环境变量配置文件
cp env.example .env
# 2. 根据需要修改 .env 文件中的配置(可选)
# vim .env
# 3. 启动所有服务
docker-compose up -d
# 4. 查看服务状态
docker-compose ps
# 5. 查看日志
docker-compose logs -f
```
#### 3. 访问应用
- **应用地址**: http://localhost:9000
- **数据库地址**: localhost:3306
---
### 方式二:传统部署
**温馨提示:下列所有命令均在项目根目录下执行 /LUCKYSHEET-CRDT/**
1. **注意!** 请修改部署的配置文件:`src/config/index.ts`
```ts
// 修改后台地址为 服务器IP地址
export const SERVER_URL = "http://localhost:9000";
// 修改协同地址为 服务器IP地址
export const WS_SERVER_URL = "ws://127.0.0.1:9000";
```
2. 先打包前端项目:`npm run build`
- 请注意,打包文件文件,默认输出到 `server/public/dist`
3. 打包服务端代码:`npm run build:server`
- 此时,整个项目的打包结果,会直接输出到 `server/wwwroot` 目录下,即可直接部署到服务器上。
4. 请将 `server/wwwroot` 目录下的文件,上传到服务器上
<p align="center">
<img src='./public/result/build.png' alt="构建输出目录" />
</p>
5. 在服务器上安装 `node` 环境,相关教程可自行上网查询
- 本例提供:[centos 参考此链接](https://blog.csdn.net/weixin_61367575/article/details/138012405)
6. 同步数据库表:`npm run db`
- 请确保数据库配置正确可用(~~如果无数据库服务,请跳过此步骤~~)
7. 启动服务:`npm run start`:**此命令仅打包后 wwwroot 文件夹下有效** - 等待依赖下载完成,启动服务`npm run start`,部署完成后访问 `http://${ip}:9000` 即可访问
## 服务端口说明
1. 前端服务端口:`5000`
2. 后端服务端口:`9000`
3. 数据库服务端口:`3306`
```js
// 1️⃣ 后端服务端口配置:server/src/Config/index.ts
export const SERVER_PORT = 9000;
```
```js
// 2️⃣ 数据库服务端口配置:server/src/Config/index.ts
export const SQL_CONFIG = {
port: 3306,
// ... other config
};
```
```js
// 3️⃣ 前端服务端口配置:src/config/index.ts
// 导出后端服务地址
export const SERVER_URL = "http://localhost:9000";
// 导出协同服务地址
export const WS_SERVER_URL = "ws://127.0.0.1:9000";
```
## 源项目优化
### 1️⃣ 页面 UI 重构
<p align="center">
<img src='./public/result/ui.gif' alt="UI 重构" />
</p>
### 2️⃣ 图表协同
<span style="font-weight:900">左侧为 `vchart` 渲染,右侧为 `chartmix` 渲染</span>
<p align="center">
<img src='./public/result/chartmix-vchart.png' alt="VChart 与 ChartMix 对比" />
</p>
<span style="font-weight:900">vchart 图表动画更加流畅,页面简洁美观</span>
<p align="center">
<img src='./public/result/vchart.gif' alt="VChart 动画" />
</p>
<span style="font-weight:900">vchart 图表设置</span>
<p align="center">
<img src='./public/result/vchart-setting.gif' alt="VChart 设置" />
</p>
<span style="font-weight:900">chartmix 图表数据联动</span>
<p align="center">
<img src='./public/result/chartmix-update-data-crdt.gif' alt="ChartMix 数据联动" />
</p>
<span style="font-weight:900">vchart 图表数据联动</span>
<p align="center">
<img src='./public/result/vchart-update-data-crdt.gif' alt="VChart 数据联动" />
</p>
### 3️⃣ 新增左斜线|右斜线 边框类型
<p align="center">
<img src='./public/result/slash-demo.png' alt="新增左斜线|右斜线 边框类型" />
</p>
### 4️⃣ 插件依赖优化
1. **源码中的插件注册方案**
```js
plugins: [{ name: "chart" }, { name: "print" }];
```
<p align="center">
<img src='./public/result/expendPlugins-source.png' alt="原始插件注册方案" />
</p>
**这会导致一个问题,在线链接在网络问题、内网限制等其他因素下,导致插件依赖无法正常下载。**
2. **优化方案**
```js
plugins: [
{
name: "chart",
dependScripts: [
"/lib/expendPlugins/libs/vue@2.6.11.min.js",
"/lib/expendPlugins/libs/vuex.min.js",
"/lib/expendPlugins/libs/elementui.min.js",
"/lib/expendPlugins/libs/echarts.min.js",
"/lib/expendPlugins/libs/chartmix.umd.min.js",
],
dependLinks: ["/lib/expendPlugins/libs/element-ui.css", "/lib/expendPlugins/libs/chartmix.css"],
},
{
name: "vchart",
dependScripts: ["/lib/expendPlugins/libs/vchart.min.js"],
dependLinks: ["/lib/expendPlugins/libs/vchart.css"],
},
{
name: "fileImport",
dependScripts: ["/lib/expendPlugins/libs/luckyexcel.umd.js"],
},
{
name: "fileExport",
dependScripts: ["/lib/expendPlugins/libs/exceljs.min.js", "/lib/expendPlugins/libs/fileSaver.min.js"],
},
],
```
<p align="center">
<img src='./public/result/expendPlugins-new.png' alt="优化后的插件注册方案" />
</p>
**相关的插件依赖,相关的加载方案均封装好了,同时,还兼容在线方案**
```ts
// 在线方案
plugins: [
{
name: "chart",
dependScripts: [
"https://unpkg.com/vue@2.6.11/dist/vue.min.js",
// ...
],
},
```
```ts
// 源码中的请求原理如下:
// 如果是 http 在线地址,直接请求
if (url.indexOf("http") == 0) {
link.setAttribute("href", url);
} else link.setAttribute("href", window.location.origin + "/" + url);
// 如果是 http 在线地址 则直接请求
if (scripts[i].indexOf("http") === 0) {
s[i].setAttribute("src", scripts[i]);
} else s[i].setAttribute("src", window.location.origin + "/" + scripts[i]);
```
### 5️⃣ 文件导入|文件导出
**文件导入**
<span style="font-weight:900">支持协同~</span>
<p align="center">
<img src='./public/result/file-import.gif' alt="文件导入" />
</p>
<span style="font-weight:900">配置方法:</span>
```js
// 1. 配置导入插件
const options = {
// ...other config
plugins: [{ name: "fileImport" }],
};
luckysheet.create(options);
```
<span style="font-weight:900">注意事项:</span>
1. 文件导入依赖于 `luckyexcel` 插件;
2. 故而有些功能受限于插件,如需拓展,请自行实现;
3. 请正确配置 `plugins: [{ name: "fileImport" }]` 后使用导入功能。
---
**文件导出**
<p align="center">
<img src='./public/result/file-export.gif' alt="文件导出" />
</p>
<span style="font-weight:900">配置方法:</span>
```js
// 1. 配置导出插件
const options = {
// ...other config
plugins: [{ name: "fileExport" }],
};
luckysheet.create(options);
```
<span style="font-weight:900">注意事项:</span>
1. 文件导入依赖于 `exceljs | file-saver` 插件;
2. 故而有些功能受限于插件,如需拓展,请自行实现;
3. 请正确配置 `plugins: [{ name: "fileExport" }]` 后使用导入功能。
### 6️⃣ 自定义菜单
<span style="font-weight:900">配置方法:</span>
<p align="center">
<img src='./public/result/menu.png' alt="自定义菜单" />
</p>
```ts
const options = {
lang: "zh",
title: "Luckysheet",
// ...other config
// 传入 menuHandler 配置项
menuHandler:{
hideDefaultMenu: string[], // 目前默认菜单为 导入导出 importFile | exportFile
customs: MenuHandlerCustomsItem[]
}
}
type MenuHandlerCustomsItem = {
label: string
value: string
callback: () => void
order?: string // 菜单排序,小的在上面,默认的菜单 order = 10 在默认菜单上面,需要比10小,不传默认放置在下面
icon?: string
} |
// 分割线配置对象
{
value: 'divider'
}
```
**示例**
```ts
menuHandler: {
customs: [
{
label: "保存",
value: "saveFile",
order: 1,
},
{ value: "divider", order: 2 },
];
}
```
**自定义菜单的 icon 图标处理方法**
1. 下载 iconfont 资源,放置到 `source/src/assets` 目录下(下载到本地并解压)
2. 在同级目录 `iconfont/iconfont.css` 引入当前下载的资源包
```css
@import url("../font_3944349_xxxxx/iconfont.css");
```
3. 打包输出即可正常使用 iconfont 图标
---
**显示 Logo**
<p align="center">
<img src='./public/result/showlogo.png' alt="显示 Logo" />
</p>
**隐藏 Logo**
<p align="center">
<img src='./public/result/hidelogo.png' alt="隐藏 Logo" />
</p>
**配置方法**
```js
const options = {
showlogo: false,
/// ...other config
};
```
### 7️⃣ 自定义请求头
很多人反映,应该在请求表格数据接口时,添加 cookies、token 等信息,以实现用户身份权限校验,目前已实现,具体配置如下:
```ts
const options = {
// ... other config,
// 添加请求头
requestHeaders: {
authorization: localForage.getItem("token"),
"x-requested-with": "XMLHttpRequest",
"custom-name": "custom-value",
// ... other headers
},
};
```
**具体实现方案:`源码/src/core.js`**
```ts
// 修改 $post 方法,改为 $ajax() 以实现添加请求头的功能
$.ajax({
url: server.loadUrl,
type: "POST",
data: { gridKey: server.gridKey },
beforeSend(xhr) {
if (!extendsetting.requestHeaders) return;
for (let key in extendsetting.requestHeaders) {
xhr.setRequestHeader(key, extendsetting.requestHeaders[key]);
}
},
timeout: 15000,
success: function (d) {},
error: function (error) {},
});
```
### 8️⃣ 打印相关
**新增打印 API**
```js
// "sheet": 打印当前工作表 "areas": 打印执行选区 "pages": 打印指定页码
// type : "sheet" | "areas" | "pages"
luckysheet.print(type, neetToPreview); // 如果不需要预览,则第二个参数为false
```
**打印模糊优化**
```js
const options = {
/// ... other config,
printDevicePixelRatio: 4, // 数值越大,打印越清晰,但绘制时间更长,请平衡性能
};
```
**打印支持取消网格线**
<p align="center">
<img src='./public/result/print-grid-line.gif' alt="网格线" />
</p>
**打印预览视图**
<p align="center">
<img src='./public/result/print-preview.gif' alt="打印预览" />
</p>
**打印当前页**
<p align="center">
<img src='./public/result/printCurrentSheet.gif' alt="打印当前页" />
</p>
**打印单元格**
<p align="center">
<img src='./public/result/printCurrentRange.gif' alt="打印单元格" />
</p>
**打印指定页码**
<p align="center">
<img src='./public/result/printPage.gif' alt="打印指定页码" />
</p>
**打印图片**
<p align="center">
<img src='./public/result/printImage.gif' alt="打印图片" />
</p>
**打印图表**
<p align="center">
<img src='./public/result/printChart.gif' alt="打印图表" />
</p>
### 9️⃣ 单元格图片`beta`
**新增单元格图片显示功能**
1. 支持插入浮动图片;
2. 支持插入单元格图片;
3. 支持浮动图片与单元格图片相互转换;
4. 支持配置默认图片展示模式 `config.imageMode = 'float' | 'cell'`
5. 支持单元格图片预览;
6. 支持单元格图片合并自适应。
<p align="center">
<img src='./public/result/cellImage.gif' alt="单元格图片" />
</p>
### 🔟 自定义快捷键
**配置方法**
```js
const options = {
/// ... other config,
// 自定义快捷键
customShortcutKeys: [
{
key: number,
ctrl?: boolean,
shift?: boolean,
alt?: boolean,
callback: (e) => {},
},
],
};
```
### 其他源码优化
1. [#Fix 修复多人协同提示框显示异常](https://gitee.com/wfeng0/luckysheet-crdt/commit/af3c5837f8bec8a8cf4d261cbc8c9416d19902e1)
2. [#Fix 修复同用户 ID 刷新后光标无法实现协同](https://gitee.com/wfeng0/luckysheet-crdt/commit/5212b82c90595ff324c86db56e5ec25b88912d38)
3. [#Fix 修复公式链相关协同消息传递](https://gitee.com/wfeng0/luckysheet-crdt/commit/c121bcd389b4f8ecef00e3570cda9aea27e7333d)
4. [#Feat 批注导入实现、完善源码对批注的识别](https://gitee.com/wfeng0/luckysheet-crdt/commit/72e52419ce0168c352b0ed78e182832426b7bdda)
5. [#Feat 优化 chartmix/vchart 数据联动及实现 server 数据更新存储记录](https://gitee.com/wfeng0/luckysheet-crdt/commit/3f89fff92722ab1631c6c5976b307eb37f83f1d1)
6. [#Fix 紧急修复初始化 sheet 时,返回数据 celldata f ='' 时, formula 判断异常,导致双击清空数据](https://gitee.com/wfeng0/luckysheet-crdt/commit/09147f0c76cbd0c94b2e358d8045282f7dba165d)
7. [#Fix 修复删除列后撤销协同不更新 BUG](https://gitee.com/wfeng0/luckysheet-crdt/commit/232103c62df81e7cec3abd2b19e986d1ffad73d5)
8. [#Fix 修复 inlineStr 富文本数据复制粘贴异常 BUG](https://gitee.com/wfeng0/luckysheet-crdt/commit/33274ef5e1a7462b4c4670bbd700d1f1dcba53fa)
## Master-Vue 开箱即用版
本项目作为`luckysheet-crdt`的一个分支,附属于 `luckysheet-crdt`,仅作为 vue 版本的示例,提供完整的用户系统(登录、注册、修改信息)、文件系统(创建、修改、删除、协同、分享...),项目截图如下:
<p align="center">
<img src='./public/result/master-vue-login.png' alt="Master-Vue 登录" />
<img src='./public/result/master-vue-home.png' alt="Master-Vue 主页" />
<img src='./public/result/master-vue-invite.png' alt="Master-Vue 邀请" />
<img src='./public/result/master-vue-userinfo.png' alt="Master-Vue 用户信息" />
<img src='./public/result/master-vue-btns.png' alt="Master-Vue 按钮" />
</p>
## 常见问题
1. **导入文件时,提示 `文件格式错误`**
```ts
xlsx
```
2. **页面显示`协同服务不可用,当前为普通模式`**
```ts
try {
const { data } = await fetch({
url: "/api/getWorkerBook",
method: "post",
data: { gridKey },
});
}
catch (error) {}
fetch catch
`协同服务不可用,当前为普通模式`
1.
2.
3.
```
3. **数据库数据混乱**
```ts
delete
1. luckysheet_crdt ;
2. npm run db ;
3. npm run server ;
gridkey-demo workerbooksworkersheets
luckysheet
2
workersheets deleteFlag true luckysheet
```
4. **自定义创建图表类型**
目前 vchart 创建图表是随机的`饼图`|`折线图`,如果想实现自定义的图表类型传递,需要修改 chartmix 相关源码,具体步骤可参考如下:
<p align="center">
<img src='./public/result/changeChartType.png' alt="更改图表类型" />
</p>
```ts
1. https://gitee.com/mengshukeji/chartMix
2. src/utils/exportUtil.js createChart
3.
```
## 开源贡献
1. 提交 [issue](https://gitee.com/wfeng0/luckysheet-crdt/issues/new)
2. fork 本项目,提交 PR
3. 加入交流群:
<p align="center">
<img src='./public/result/qq-group.png' alt="QQ 群" />
</p>
+708
View File
@@ -0,0 +1,708 @@
<p align="center">
<img src='/public/logo.svg' alt="Luckysheet CRDT Logo" />
</p>
<h1 align="center">Luckysheet CRDT</h1>
[简体中文](./README-zh.md) | English
`online`: [https://luckysheet-crdt.netlify.app/](https://luckysheet-crdt.netlify.app/)
<p align="center">
<img src='/public/result/result.gif' alt='Demonstration of collaborative editing' />
</p>
---
## Project Branches
- `master`: Stable version with optional database services and complete functionality
- `master-alpha`: Development version with optional database services and complete functionality
- `master-vue`: Stable version with user system, file system, and database dependency
## Repository
- `Gitee`: [https://gitee.com/wfeng0/luckysheet-crdt](https://gitee.com/wfeng0/luckysheet-crdt)
- `GitHub`: [https://github.com/pushu-wf/luckysheet-crdt](https://github.com/pushu-wf/luckysheet-crdt)
**⚠️ Tips**
The latest features are always updated first on `Gitee`, and are updated in the order of `Gitee [master alpha]`, `Gitee [master]`, and `Github [master]`.
## Overview
1. This project is based on [Luckysheet](https://github.com/mengshukeji/Luckysheet) source code. **Please follow the original author's open source agreement** and do not remove or modify the copyright notice in the source code header.
2. This project is open-sourced under the **Apache 2.0 license**. Feel free to use it. The project also contributes to the Luckysheet community, enriching its ecosystem. Thanks again to the @[Luckysheet](https://github.com/mengshukeji/Luckysheet) team ❤️
3. This is a **Luckysheet Collaborative Enhanced Edition (with full functionality)** designed to provide ideas for collaborative implementation, data storage services, and collaborative demonstrations. The project is based on [Luckysheet](https://github.com/mengshukeji/Luckysheet). Thanks to the original author for open-sourcing it.
4. The project supports **optional database services**. Without a database, user data cannot be persisted, but collaborative functionality is not affected. **⚠️Only valid for `master` and `master-alpha` branches. `master-vue` requires database functionality for user system implementation**.
5. The project uses **[Sequelize](https://www.sequelize.cn/)** as ORM data service technology, supporting databases such as MySQL, SQLite, PostgreSQL, and MSSQL for easy migration.
6. The project uses **TypeScript** as the main development language, providing complete type hints, standardized code, and improved development efficiency.
7. Personal capacity is limited, and there may be bugs or incomplete features. Please submit an [issue](https://gitee.com/wfeng0/luckysheet-crdt/issues/new), and I will handle it promptly.
8. Everyone is welcome to fork the project and submit PRs to improve it together.
## Pricing Statement
In order to better drive the development of open source, starting from version `E12d2f4850127f53292a5161445fc500593176b9` on `April 15, 2025`, the project will no longer provide the Luckysheet source code modification section. If you need the source code for secondary development, please contact the author to pay for it.
Please note that the front-end and back-end functions of Luckysheet CRDT are completely open source and can be used normally without relying on source code. Source code is not required for project startup, operation, deployment, and other stages.
The source code is mainly used for functional expansion in secondary development scenarios:
- If you only use existing collaborative editing features, **no need to obtain source code**
- If you need secondary development to meet specific requirements, **please contact the author to pay for the source code**
**Service Details**
- **Pricing****`199 yuan`**
- **Service Content**Only provide source code package (does not include continuous feature upgrades, bug fixes, and does not equate to product purchase)
- **Contact Information**QQ Group: `522121825`(Recommended)| Email: `<1982392655@qq.com>`(Recommended)
## Getting Started
1. Clone the project:
```bash
git clone https://gitee.com/wfeng0/luckysheet-crdt
```
2. Install dependencies:
```bash
# "dep-npm": "npm install --s && cd server && npm install --s",
# "dep-pnpm": "pnpm install --s && cd server && pnpm install --s"
npm run dep-npm | npm run dep-pnpm
# Recommended to use pnpm for dependency installation to avoid version conflicts
```
**⛔️ Tips**:
```js
1. Project dependencies are divided into frontend and backend dependencies (separate projects)
2. We recommend using `pnpm install` to install dependencies and avoid version conflicts
3. If dependency download fails, try deleting the `package-lock.json` file and re-installing dependencies
4. If the `npm run dep-npm` command fails, try executing `npm install --s` for frontend dependencies and `cd server && npm install --s` for backend dependencies
---
**If errors persist, confirm that your environment meets the requirements**:
`node -v ==> v20.x.x` // Node version must be greater than 18
`npm -v ==> 10.x.x` // NPM version must be greater than 7.x.x
```
3. 🚫<span style="color:red;font-weight:900">~~Skip this step if you don't have database services~~</span>🚫 Configure database parameters:
```ts
// server/src/Config/index.ts
export const SQL_CONFIG = {
port: 3306,
host: "127.0.0.1", // localhost or 127.0.0.1
database: "luckysheet_crdt",
user: "root",
password: "root",
};
```
4. 🚫<span style="color:red;font-weight:900">~~Skip this step if you don't have database services~~</span>🚫 Synchronize database tables:
```bash
npm run db
```
**⛔️ Tips**:
```ts
1. Ensure database configuration is correct and available
2. Ensure the project executes the database sync command `npm run db`
3. This only needs to be executed once in the project lifecycle to ensure table structures exist in the database
```
5. Start services:
- Frontend service: `npm run dev`
- Backend service: `npm run server`
6. Open URL: `http://localhost:5000` | `http://localhost:9000` to experience collaborative functionality.
## Deployment
### Method 1: Docker Deployment (Recommended)🐳
**Deploy with one click using Docker Compose, no manual environment or database configuration required!**
#### 1. Prerequisites
- Docker 20.10 has been installed+
- Docker Compose 2.0 has been installed+
#### 2. Quick Start
**manual deployment:**
```bash
# 1. Copy environment variable configuration file
cp env.example .env
# 2. Modify the configuration in the. env file as needed (optional)
# vim .env
# 3. Start all services
docker-compose up -d
# 4. View service status
docker-compose ps
# 5. View logs
docker-compose logs -f
```
#### 3. Accessing applications
- **Application**: http://localhost:9000
- **Database**: localhost:3306
---
### Method 2: Traditional Deployment
**Note: All the following commands are executed in the project root directory `/LUCKYSHEET-CRDT/`**
1. **Important!** Modify the deployment configuration file: `src/config/index.ts`:
```ts
// Change backend address to server IP address
export const SERVER_URL = "http://localhost:9000";
// Change collaborative address to server IP address
export const WS_SERVER_URL = "ws://127.0.0.1:9000";
```
2. Build the frontend project first: `npm run build`
- Note that packaged files are output to `server/public/dist` by default
3. Package server code: `npm run build:server`
- At this point, the entire project's packaging result will be output directly to the `server/wwwroot` directory, which can be deployed directly to the server
4. Upload the files in the `server/wwwroot` directory to the server
<p align="center">
<img src='/public/result/build.png' alt="Build output directory" />
</p>
5. Install `node` environment on the server. You can search for related tutorials online
- Example provided: [centos reference this link](https://blog.csdn.net/weixin_61367575/article/details/138012405)
6. Synchronize database tables: `npm run db`
- Ensure database configuration is correct and available (~~Skip this step if you don't have database services~~)
7. Start service: `npm run start`: **This command is only valid in the packaged wwwroot folder**
- Wait for dependency download to complete, then start service with `npm run start`. After deployment, access `http://${ip}:9000`
## Service Ports
1. Frontend service port: `5000`
2. Backend service port: `9000`
3. Database service port: `3306`
```js
// 1️⃣ Backend service port configuration: server/src/Config/index.ts
export const SERVER_PORT = 9000;
```
```js
// 2️⃣ Database service port configuration: server/src/Config/index.ts
export const SQL_CONFIG = {
port: 3306,
// ... other config
};
```
```js
// 3️⃣ Frontend service port configuration: src/config/index.ts
// Export backend service address
export const SERVER_URL = "http://localhost:9000";
// Export collaborative service address
export const WS_SERVER_URL = "ws://127.0.0.1:9000";
```
## Source Project Optimizations
### 1️⃣ UI Refactoring
<p align="center">
<img src='/public/result/ui.gif' alt="UI Refactoring" />
</p>
### 2️⃣ Chart Collaboration
<span style="font-weight:900">Left is `vchart` rendering, right is `chartmix` rendering</span>
<p align="center">
<img src='/public/result/chartmix-vchart.png' alt="VChart vs ChartMix" />
</p>
<span style="font-weight:900">VChart animations are smoother and the page is more concise and beautiful</span>
<p align="center">
<img src='/public/result/vchart.gif' alt="VChart animation" />
</p>
<span style="font-weight:900">VChart settings</span>
<p align="center">
<img src='/public/result/vchart-setting.gif' alt="VChart settings" />
</p>
<span style="font-weight:900">ChartMix data linkage</span>
<p align="center">
<img src='/public/result/chartmix-update-data-crdt.gif' alt="ChartMix data linkage" />
</p>
<span style="font-weight:900">VChart data linkage</span>
<p align="center">
<img src='/public/result/vchart-update-data-crdt.gif' alt="VChart data linkage" />
</p>
### 3️⃣ Add left diagonal line | right diagonal line border type
<p align="center">
<img src='./public/result/slash-demo.png' alt="Slash border type" />
</p>
### 4️⃣ Plugin Dependency Optimization
1. **Original plugin registration scheme**:
```js
plugins: [{ name: "chart" }, { name: "print" }];
```
<p align="center">
<img src='/public/result/expendPlugins-source.png' alt="Original plugin registration" />
</p>
**This can cause issues where plugin dependencies cannot be downloaded properly due to network problems, intranet restrictions, and other factors.**
2. **Optimized solution**:
```js
plugins: [
{
name: "chart",
dependScripts: [
"/lib/expendPlugins/libs/vue@2.6.11.min.js",
"/lib/expendPlugins/libs/vuex.min.js",
"/lib/expendPlugins/libs/elementui.min.js",
"/lib/expendPlugins/libs/echarts.min.js",
"/lib/expendPlugins/libs/chartmix.umd.min.js",
],
dependLinks: ["/lib/expendPlugins/libs/element-ui.css", "/lib/expendPlugins/libs/chartmix.css"],
},
{
name: "vchart",
dependScripts: ["/lib/expendPlugins/libs/vchart.min.js"],
dependLinks: ["/lib/expendPlugins/libs/vchart.css"],
},
{
name: "fileImport",
dependScripts: ["/lib/expendPlugins/libs/luckyexcel.umd.js"],
},
{
name: "fileExport",
dependScripts: ["/lib/expendPlugins/libs/exceljs.min.js", "/lib/expendPlugins/libs/fileSaver.min.js"],
},
],
```
<p align="center">
<img src='/public/result/expendPlugins-new.png' alt="Optimized plugin registration" />
</p>
**Related plugin dependencies and loading schemes are encapsulated, and online schemes are also compatible**:
```ts
// Online solution
plugins: [
{
name: "chart",
dependScripts: [
"https://unpkg.com/vue@2.6.11/dist/vue.min.js",
// ...
],
},
```
```ts
// The request principle in the source code is as follows:
// If it is an HTTP online address, request directly
if (url.indexOf("http") == 0) {
link.setAttribute("href", url);
} else link.setAttribute("href", window.location.origin + "/" + url);
// If it is an HTTP online address, request directly
if (scripts[i].indexOf("http") === 0) {
s[i].setAttribute("src", scripts[i]);
} else s[i].setAttribute("src", window.location.origin + "/" + scripts[i]);
```
### 5️⃣ File Import | File Export
**File Import**
<span style="font-weight:900">Supports collaboration~</span>
<p align="center">
<img src='/public/result/file-import.gif' alt="File import" />
</p>
<span style="font-weight:900">Configuration method:</span>
```js
// 1. Configure import plugin
const options = {
// ...other config
plugins: [{ name: "fileImport" }],
};
luckysheet.create(options);
```
<span style="font-weight:900">Notes:</span>
1. File import depends on the `luckyexcel` plugin
2. Therefore, some functions are limited by plugins. If you need to expand them, please implement them yourself!
3. Please correctly configure `plugins: [{ name: "fileImport" }]` before using the import function
---
**File Export**
<p align="center">
<img src='/public/result/file-export.gif' alt="File export" />
</p>
<span style="font-weight:900">Configuration method:</span>
```js
// 1. Configure export plugin
const options = {
// ...other config
plugins: [{ name: "fileExport" }],
};
luckysheet.create(options);
```
<span style="font-weight:900">Notes:</span>
1. File export depends on the `exceljs | file-saver` plugins
2. Therefore, some functions are limited by plugins. If you need to expand them, please implement them yourself!
3. Please correctly configure `plugins: [{ name: "fileExport" }]` before using the export function
### 6️⃣ Custom Menu
<span style="font-weight:900">Configuration method:</span>
<p align="center">
<img src='/public/result/menu.png' alt="Custom menu" />
</p>
```ts
const options = {
lang: "zh",
title: "Luckysheet",
// ...other config
// Pass menuHandler configuration item
menuHandler:{
hideDefaultMenu: string[], // Currently default menu items are importFile | exportFile
customs: MenuHandlerCustomsItem[]
}
}
type MenuHandlerCustomsItem = {
label: string
value: string
callback: () => void
order?: string // Menu sorting, smaller numbers are on top. Default menu order = 10. To place above default menu, use a number less than 10. If not provided, item will be placed below
icon?: string
} |
// Divider configuration object
{
value: 'divider'
}
```
**Example**
```ts
menuHandler: {
customs: [
{
label: "Save",
value: "saveFile",
order: 1,
},
{ value: "divider", order: 2 },
];
}
```
**How to handle icon icons in custom menus**
1. Download iconfont resources and place them in the `source/src/assets` directory (download and extract locally)
2. Import the downloaded resource package in the same level directory `iconfont/iconfont.css`
```css
@import url("../font_3944349_xxxxx/iconfont.css");
```
3. Package and output to use iconfont icons normally
---
**Show Logo**
<p align="center">
<img src='/public/result/showlogo.png' alt="Show logo" />
</p>
**Hide Logo**
<p align="center">
<img src='/public/result/hidelogo.png' alt="Hide logo" />
</p>
**Configuration method**:
```js
const options = {
showlogo: false,
/// ...other config
};
```
### 7️⃣ Custom Request Headers
Many people have reported that cookies, tokens, and other information should be added when requesting table data interfaces to implement user identity permission verification. This has been implemented with the following configuration:
```ts
const options = {
// ... other config,
// Add request headers
requestHeaders: {
authorization: localForage.getItem("token"),
"x-requested-with": "XMLHttpRequest",
"custom-name": "custom-value",
// ... other headers
},
};
```
**Specific implementation: `源码/src/core.js`**
```ts
// Modify the $post method to $ajax() to implement adding request headers functionality
$.ajax({
url: server.loadUrl,
type: "POST",
data: { gridKey: server.gridKey },
beforeSend(xhr) {
if (!extendsetting.requestHeaders) return;
for (let key in extendsetting.requestHeaders) {
xhr.setRequestHeader(key, extendsetting.requestHeaders[key]);
}
},
timeout: 15000,
success: function (d) {},
error: function (error) {},
});
```
### 8️⃣ Printing
**Add luckysheet print api**
```js
// "sheet": print current sheet "areas": Print the specified selection "pages": Print specified pages
// type : "sheet" | "areas" | "pages"
luckysheet.print(type, neetToPreview); // If no preview is required, the second parameter is false
```
**Printing blur optimization**
```js
const options = {
/// ... other config,
printDevicePixelRatio: 4, // The larger the value, the clearer the printing, but the longer the drawing time. Please balance the performance
};
```
**Print Grid Line**
<p align="center">
<img src='./public/result/print-grid-line.gif' alt="print grid line" />
</p>
**Print Preview**
<p align="center">
<img src='/public/result/print-preview.gif' alt="Print preview" />
</p>
**Print Current Sheet**
<p align="center">
<img src='/public/result/printCurrentSheet.gif' alt="Print current sheet" />
</p>
**Print Current Range**
<p align="center">
<img src='/public/result/printCurrentRange.gif' alt="Print current range" />
</p>
**Print Specific Page**
<p align="center">
<img src='/public/result/printPage.gif' alt="Print specific page" />
</p>
**Print Image**
<p align="center">
<img src='/public/result/printImage.gif' alt="Print image" />
</p>
**Print Chart**
<p align="center">
<img src='/public/result/printChart.gif' alt="Print chart" />
</p>
### 9️⃣ Cell Images `beta`
**Added cell image display functionality**
1. Support for inserting floating images
2. Support for inserting cell images
3. Support for converting between floating images and cell images
4. Support for configuring default image display mode `config.imageMode = 'float' | 'cell'`
5. Support for cell image preview
6. Support for adaptive merging of cell images
<p align="center">
<img src='/public/result/cellImage.gif' alt="Cell images" />
</p>
### 🔟 Customize Shortcuts
**Configuration method**
```js
const options = {
/// ... other config,
// Customize Shortcuts
customShortcutKeys: [
{
key: number,
ctrl?: boolean,
shift?: boolean,
alt?: boolean,
callback: (e) => {},
},
],
};
```
### Other Source Code Optimizations
1. [#Fix Fixed abnormal display of multi-person collaboration prompt box](https://gitee.com/wfeng0/luckysheet-crdt/commit/af3c5837f8bec8a8cf4d261cbc8c9416d19902e1)
2. [#Fix Fixed the issue where the cursor cannot collaborate after refreshing with the same user ID](https://gitee.com/wfeng0/luckysheet-crdt/commit/5212b82c90595ff324c86db56e5ec25b88912d38)
3. [#Fix Fix collaborative message transmission related to formula chain](https://gitee.com/wfeng0/luckysheet-crdt/commit/c121bcd389b4f8ecef00e3570cda9aea27e7333d)
4. [#Feat Implementing annotation import and improving source code recognition of annotations](https://gitee.com/wfeng0/luckysheet-crdt/commit/72e52419ce0168c352b0ed78e182832426b7bdda)
5. [#Feat Optimize the data linkage between chartmix/vchart and implement server data update and storage records](https://gitee.com/wfeng0/luckysheet-crdt/commit/3f89fff92722ab1631c6c5976b307eb37f83f1d1)
6. [#Fix Emergency repair: When initializing the sheet and returning data celldata f='', the formula judgment is abnormal, causing double clicking to clear the data](https://gitee.com/wfeng0/luckysheet-crdt/commit/09147f0c76cbd0c94b2e358d8045282f7dba165d)
7. [#Fix Fix the BUG of not updating collaboration after deleting columns](https://gitee.com/wfeng0/luckysheet-crdt/commit/232103c62df81e7cec3abd2b19e986d1ffad73d5)
8. [#Fix Fix inlineStr rich text data copy and paste exception BUG](https://gitee.com/wfeng0/luckysheet-crdt/commit/33274ef5e1a7462b4c4670bbd700d1f1dcba53fa)
## Master-Vue Out-of-the-Box Version
This project is a branch of `luckysheet-crdt`, attached to `luckysheet-crdt`, and serves only as a Vue version example. It provides a complete user system (login, registration, information modification) and file system (create, modify, delete, collaborate, share...). Project screenshots are as follows:
<p align="center">
<img src='/public/result/master-vue-login.png' alt="Master-Vue login" />
<img src='/public/result/master-vue-home.png' alt="Master-Vue home" />
<img src='/public/result/master-vue-invite.png' alt="Master-Vue invite" />
<img src='/public/result/master-vue-userinfo.png' alt="Master-Vue user info" />
<img src='/public/result/master-vue-btns.png' alt="Master-Vue buttons" />
</p>
## Frequently Asked Questions
1. **When importing files, it prompts `File format error`**:
```ts
Currently only xlsx format is supported. Please check if the file format is correct.
```
2. **Page shows `Collaboration service unavailable, currently in normal mode`**:
```ts
try {
const { data } = await fetch({
url: "/api/getWorkerBook",
method: "post",
data: { gridKey },
});
}
catch (error) {}
If and only if the fetch request fails, it will enter the catch block,
at which point it will prompt `Collaboration service unavailable, currently in normal mode`;
Please check if the service is normal. Generally, there are the following possibilities:
1. Service exception
2. Database exception
3. Database table structure exception
```
3. **Database data 混乱**:
```ts
The only possible reason for this is that the application does not have related delete statements,
It's not that I don't write them, but that everyone should expand based on their actual business needs.
The following steps can restore:
1. Delete all luckysheet_crdt data tables
2. Execute npm run db to synchronize database tables
3. Execute npm run server to start the service
The above operations will create database tables, synchronize the latest model structure,
and create gridkey-demo records in workerbooks and workersheets tables;
If and only if these two tables have records, luckysheet can be rendered;
Note! If there are no records in the two tables, it may also cause inability to collaborate (Question 2)
Note! If the workersheets table has records but deleteFlag is true, it will also cause inability to render luckysheet
```
4. **Custom chart type creation**
Currently, VChart creates charts randomly as `pie charts` or `line charts`. If you want to implement custom chart type passing, you need to modify the chartmix related source code. Specific steps can be referenced as follows:
<p align="center">
<img src='/public/result/changeChartType.png' alt="Change chart type" />
</p>
```ts
1. Download source: https://gitee.com/mengshukeji/chartMix
2. Modify src/utils/exportUtil.js createChart method, add chart type parameter
3. Repackage and place the file into the project
```
## Open Source Contribution
1. Submit an [issue](https://gitee.com/wfeng0/luckysheet-crdt/issues/new)
2. Fork this project and submit a PR
3. Join the communication group:
<p align="center">
<img src='/public/result/qq-group.png' alt="QQ Group" />
</p>
+78
View File
@@ -0,0 +1,78 @@
version: '3.8'
services:
# MySQL 数据库服务
mysql:
image: mysql:8.0
container_name: luckysheet-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-root123456}
MYSQL_DATABASE: ${MYSQL_DATABASE:-luckysheet_crdt}
MYSQL_USER: ${MYSQL_USER:-luckysheet}
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-luckysheet123}
TZ: Asia/Shanghai
ports:
- "${MYSQL_PORT:-3306}:3306"
volumes:
- mysql_data:/var/lib/mysql
- ./mysql/initdb:/docker-entrypoint-initdb.d
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
- --default-authentication-plugin=mysql_native_password
networks:
- luckysheet-network
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${MYSQL_ROOT_PASSWORD:-root123456}"]
interval: 10s
timeout: 5s
retries: 5
# Luckysheet CRDT 应用服务
app:
build:
context: .
dockerfile: Dockerfile
container_name: luckysheet-app
restart: unless-stopped
environment:
NODE_ENV: production
# 数据库配置(对应 server/src/Config/index.ts
DB_HOST: ${DB_HOST:-mysql}
DB_PORT: ${DB_PORT:-3306}
DB_NAME: ${MYSQL_DATABASE:-luckysheet_crdt}
DB_USER: ${MYSQL_USER:-luckysheet}
DB_PASSWORD: ${MYSQL_PASSWORD:-luckysheet123}
# 服务端口
SERVER_PORT: ${SERVER_PORT:-9000}
TZ: Asia/Shanghai
ports:
- "${SERVER_PORT:-9000}:9000"
volumes:
- uploads_data:/app/public/uploads
- logs_data:/app/logs
depends_on:
mysql:
condition: service_healthy
networks:
- luckysheet-network
healthcheck:
test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:9000"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
luckysheet-network:
driver: bridge
volumes:
mysql_data:
driver: local
uploads_data:
driver: local
logs_data:
driver: local
+21
View File
@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/logo.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Luckysheet 协同增强版</title>
<link rel="stylesheet" href="/lib/plugins/css/pluginsCss.css" />
<link rel="stylesheet" href="/lib/plugins/plugins.css" />
<link rel="stylesheet" href="/lib/css/luckysheet.css" />
<link rel="stylesheet" href="/lib/assets/iconfont/iconfont.css" />
<script src="/lib/plugins/js/plugin.js"></script>
<script src="/lib/luckysheet.umd.js"></script>
</head>
<body>
<div id="app">
<div class="luckysheetContainer" id="luckysheetContainer"></div>
</div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
+60
View File
@@ -0,0 +1,60 @@
# ==========================================
# Luckysheet CRDT Docker 环境变量配置
# ==========================================
# 使用说明:
# 1. 复制此文件为 .env
# 2. 根据实际情况修改下面的配置值
# 3. 运行 docker-compose up -d 启动服务
# ==========================================
# ==========================================
# MySQL 数据库配置
# ==========================================
# MySQL root 用户密码(重要:生产环境请修改为强密码)
MYSQL_ROOT_PASSWORD=root123456
# 数据库名称
MYSQL_DATABASE=luckysheet_crdt
# 数据库普通用户名
MYSQL_USER=luckysheet
# 数据库普通用户密码(重要:生产环境请修改为强密码)
MYSQL_PASSWORD=luckysheet123
# MySQL 服务端口(默认 3306
MYSQL_PORT=3306
# ==========================================
# 应用数据库连接配置
# ==========================================
# 数据库主机地址(Docker 环境使用服务名 mysql
DB_HOST=mysql
# 数据库端口
DB_PORT=3306
# 数据库名称(与上面 MYSQL_DATABASE 保持一致)
DB_NAME=luckysheet_crdt
# 数据库用户名(与上面 MYSQL_USER 保持一致)
DB_USER=luckysheet
# 数据库密码(与上面 MYSQL_PASSWORD 保持一致)
DB_PASSWORD=luckysheet123
# ==========================================
# 应用服务配置
# ==========================================
# 应用服务端口(默认 9000
SERVER_PORT=9000
# ==========================================
# 可选配置
# ==========================================
# Node 环境(production | development
NODE_ENV=production
# 时区设置
TZ=Asia/Shanghai
+27
View File
@@ -0,0 +1,27 @@
import globals from "globals";
import pluginJs from "@eslint/js";
import tseslint from "typescript-eslint";
/** @type {import('eslint').Linter.Config[]} */
export default [
{ files: ["**/*.{js,mjs,cjs,ts}"] },
{ languageOptions: { globals: globals.browser } },
pluginJs.configs.recommended,
...tseslint.configs.recommended,
{
ignores: [
"**/node_modules/**",
"**/dist/**",
"**/server/public/dist/**",
"**/luckysheet-source-private/**",
"**/build/**",
"**/logs/**",
"**public/**",
"**/server/wwwroot/**",
"**/server/scripts/**",
],
},
{
rules: {},
},
];
+120
View File
@@ -0,0 +1,120 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Luckysheet UI 重构 copy 动画边框绘制</title>
<style>
:root {
--width: 60px;
--height: 40px;
--cubWidth: 0.5;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.main {
margin: 100px 100px;
display: inline-block;
}
.box {
transform: rotate(90deg);
display: flex;
flex-direction: column;
overflow: hidden;
/* border: solid red 1px; */
position: relative;
width: var(--width);
height: var(--height);
background-color: #fff;
}
.top,
.bottom {
display: flex;
justify-content: space-between;
flex: 1;
width: calc(var(--width) * var(--cubWidth) * 9);
}
.bottom {
transform: translateX(calc(var(--cubWidth) * var(--width) * -7));
}
.cub {
display: flex;
align-items: center;
justify-content: center;
height: calc(var(--height) / 2);
width: calc(var(--cubWidth) * var(--width));
background-color: #55bb8a;
}
.right {
animation: right 1s linear forwards infinite;
}
.left {
animation: left 1s linear forwards infinite;
}
@keyframes left {
100% {
transform: translateX(calc(var(--width) / 2 * -1 * 6));
}
}
@keyframes right {
100% {
transform: translateX(calc(var(--width) / 2 * 6));
}
}
</style>
</head>
<body>
<!-- 实现 EwaAndH.gif -->
<div class="main">
<div class="box">
<div class="top">
<div class="cub cub1"></div>
<div class="cub cub2"></div>
<div class="cub cub3"></div>
<div class="cub cub4"></div>
<div class="cub cub5"></div>
</div>
<div class="bottom">
<div class="cub cub6"></div>
<div class="cub cub7"></div>
<div class="cub cub8"></div>
<div class="cub cub9"></div>
<div class="cub cub10"></div>
</div>
</div>
</div>
<script>
document.addEventListener("click", () => {
const cub1 = document.querySelector(".cub1");
const cub2 = document.querySelector(".cub2");
const cub3 = document.querySelector(".cub3");
const cub4 = document.querySelector(".cub4");
const cub5 = document.querySelector(".cub5");
const cub6 = document.querySelector(".cub6");
const cub7 = document.querySelector(".cub7");
const cub8 = document.querySelector(".cub8");
const cub9 = document.querySelector(".cub9");
const cub10 = document.querySelector(".cub10");
cub1.classList.add("left");
cub2.classList.add("left");
cub3.classList.add("left");
cub4.classList.add("left");
cub5.classList.add("left");
cub6.classList.add("right");
cub7.classList.add("right");
cub8.classList.add("right");
cub9.classList.add("right");
cub10.classList.add("right");
});
</script>
</body>
</html>
+19
View File
@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<!-- 引入 luck Sheet -->
<link rel="stylesheet" href="/lib/plugins/css/pluginsCss.css" />
<link rel="stylesheet" href="/lib/plugins/plugins.css" />
<link rel="stylesheet" href="/lib/css/luckysheet.css" />
<link rel="stylesheet" href="/lib/assets/iconfont/iconfont.css" />
<script src="/lib/plugins/js/plugin.js"></script>
<script src="/lib/luckysheet.umd.js"></script>
</head>
<body>
<div class="left" id="luckysheetContainer"></div>
<script type="module" src="src/main.ts"></script>
</body>
</html>
+25
View File
@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/logo.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Luckysheet 协同增强版</title>
<!-- 引入 luck Sheet -->
<link rel="stylesheet" href="/lib/plugins/css/pluginsCss.css" />
<link rel="stylesheet" href="/lib/plugins/plugins.css" />
<link rel="stylesheet" href="/lib/css/luckysheet.css" />
<link rel="stylesheet" href="/lib/assets/iconfont/iconfont.css" />
<script src="/lib/plugins/js/plugin.js"></script>
<script src="/lib/luckysheet.umd.js"></script>
</head>
<body>
<div id="app">
<!-- 用户A -->
<iframe src="/index-iframe.html" frameborder="0"></iframe>
<!-- 用户B -->
<div class="right" id="luckysheetContainer"></div>
</div>
<script type="module" src="/src/main.ts"></script>
</body>
</html>
+39
View File
@@ -0,0 +1,39 @@
{
"name": "luckysheet-crdt",
"private": true,
"version": "0.0.0",
"type": "module",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"build:server": "cd server && npm run build",
"preview": "vite preview",
"server": "cd server && npm run serve",
"server:dev": "cd server && npm run dev",
"lint": "eslint --fix",
"db": "cd server && npm run db",
"dep-npm": "npm install --s && cd server && npm install --s",
"dep-pnpm": "pnpm install --s && cd server && pnpm install --s"
},
"description": "A CRDT library for Luckysheet",
"keywords": [
"CRDT",
"Luckysheet",
"CRDT-Luckysheet",
"CRDT-Luckysheet-source",
"CRDT-Luckysheet-server",
"CRDT-Luckysheet-demo",
"VChart for luckysheet"
],
"dependencies": {
"axios": "^1.7.9"
},
"devDependencies": {
"@eslint/js": "^9.16.0",
"eslint": "^9.16.0",
"globals": "^15.13.0",
"typescript": "^5.2.2",
"typescript-eslint": "^8.17.0",
"vite": "^5.2.0"
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,539 @@
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
@@ -0,0 +1,326 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>iconfont Demo</title>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
<script src="iconfont.js"></script>
<!-- jQuery -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
<!-- 代码高亮 -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
<style>
.main .logo {
margin-top: 0;
height: auto;
}
.main .logo a {
display: flex;
align-items: center;
}
.main .logo .sub-title {
margin-left: 0.5em;
font-size: 22px;
color: #fff;
background: linear-gradient(-45deg, #3967FF, #B500FE);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>
</head>
<body>
<div class="main">
<h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">
<img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg">
</a></h1>
<div class="nav-tabs">
<ul id="tabs" class="dib-box">
<li class="dib active"><span>Unicode</span></li>
<li class="dib"><span>Font class</span></li>
<li class="dib"><span>Symbol</span></li>
</ul>
<a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=5013087" target="_blank" class="nav-more">查看项目</a>
</div>
<div class="tab-container">
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xeb00;</span>
<div class="name">border-rt-lb</div>
<div class="code-name">&amp;#xeb00;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xeb01;</span>
<div class="name">border-lt-rb</div>
<div class="code-name">&amp;#xeb01;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe74b;</span>
<div class="name">树形图</div>
<div class="code-name">&amp;#xe74b;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe64f;</span>
<div class="name">浮动图片</div>
<div class="code-name">&amp;#xe64f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe60f;</span>
<div class="name">单元格图片</div>
<div class="code-name">&amp;#xe60f;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe625;</span>
<div class="name">转换、交换</div>
<div class="code-name">&amp;#xe625;</div>
</li>
</ul>
<div class="article markdown">
<h2 id="unicode-">Unicode 引用</h2>
<hr>
<p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
<ul>
<li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
<li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
</ul>
<blockquote>
<p>注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p>
</blockquote>
<p>Unicode 使用步骤如下:</p>
<h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1760058905416') format('woff2'),
url('iconfont.woff?t=1760058905416') format('woff'),
url('iconfont.ttf?t=1760058905416') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
<pre><code class="language-css"
>.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
<pre>
<code class="language-html"
>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-border-rt-lb"></span>
<div class="name">
border-rt-lb
</div>
<div class="code-name">.icon-border-rt-lb
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-border-lt-rb"></span>
<div class="name">
border-lt-rb
</div>
<div class="code-name">.icon-border-lt-rb
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-shuxingtu"></span>
<div class="name">
树形图
</div>
<div class="code-name">.icon-shuxingtu
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-fudongtupian"></span>
<div class="name">
浮动图片
</div>
<div class="code-name">.icon-fudongtupian
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-danyuangetupian"></span>
<div class="name">
单元格图片
</div>
<div class="code-name">.icon-danyuangetupian
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-a-zhuanhuanjiaohuan"></span>
<div class="name">
转换、交换
</div>
<div class="code-name">.icon-a-zhuanhuanjiaohuan
</div>
</li>
</ul>
<div class="article markdown">
<h2 id="font-class-">font-class 引用</h2>
<hr>
<p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
<p>与 Unicode 使用方式相比,具有如下特点:</p>
<ul>
<li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
<li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
</code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"
iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-border-rt-lb"></use>
</svg>
<div class="name">border-rt-lb</div>
<div class="code-name">#icon-border-rt-lb</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-border-lt-rb"></use>
</svg>
<div class="name">border-lt-rb</div>
<div class="code-name">#icon-border-lt-rb</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-shuxingtu"></use>
</svg>
<div class="name">树形图</div>
<div class="code-name">#icon-shuxingtu</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-fudongtupian"></use>
</svg>
<div class="name">浮动图片</div>
<div class="code-name">#icon-fudongtupian</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-danyuangetupian"></use>
</svg>
<div class="name">单元格图片</div>
<div class="code-name">#icon-danyuangetupian</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-a-zhuanhuanjiaohuan"></use>
</svg>
<div class="name">转换、交换</div>
<div class="code-name">#icon-a-zhuanhuanjiaohuan</div>
</li>
</ul>
<div class="article markdown">
<h2 id="symbol-">Symbol 引用</h2>
<hr>
<p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
<ul>
<li>支持多色图标了,不再受单色限制。</li>
<li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
<li>兼容性较差,支持 IE9+,及现代浏览器。</li>
<li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
</code></pre>
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
<pre><code class="language-html">&lt;style&gt;
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
&lt;/style&gt;
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
&lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
&lt;/svg&gt;
</code></pre>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
$('.tab-container .content:first').show()
$('#tabs li').click(function (e) {
var tabContent = $('.tab-container .content')
var index = $(this).index()
if ($(this).hasClass('active')) {
return
} else {
$('#tabs li').removeClass('active')
$(this).addClass('active')
tabContent.hide().eq(index).fadeIn()
}
})
})
</script>
</body>
</html>
@@ -0,0 +1,39 @@
@font-face {
font-family: "iconfont"; /* Project id 5013087 */
src: url('iconfont.woff2?t=1760058905416') format('woff2'),
url('iconfont.woff?t=1760058905416') format('woff'),
url('iconfont.ttf?t=1760058905416') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-border-rt-lb:before {
content: "\eb00";
}
.icon-border-lt-rb:before {
content: "\eb01";
}
.icon-shuxingtu:before {
content: "\e74b";
}
.icon-fudongtupian:before {
content: "\e64f";
}
.icon-danyuangetupian:before {
content: "\e60f";
}
.icon-a-zhuanhuanjiaohuan:before {
content: "\e625";
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,51 @@
{
"id": "5013087",
"name": "sheet-demo",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "7596484",
"name": "border-rt-lb",
"font_class": "border-rt-lb",
"unicode": "eb00",
"unicode_decimal": 60160
},
{
"icon_id": "45726050",
"name": "border-lt-rb",
"font_class": "border-lt-rb",
"unicode": "eb01",
"unicode_decimal": 60161
},
{
"icon_id": "25495312",
"name": "树形图",
"font_class": "shuxingtu",
"unicode": "e74b",
"unicode_decimal": 59211
},
{
"icon_id": "1754409",
"name": "浮动图片",
"font_class": "fudongtupian",
"unicode": "e64f",
"unicode_decimal": 58959
},
{
"icon_id": "13932187",
"name": "单元格图片",
"font_class": "danyuangetupian",
"unicode": "e60f",
"unicode_decimal": 58895
},
{
"icon_id": "25634520",
"name": "转换、交换",
"font_class": "a-zhuanhuanjiaohuan",
"unicode": "e625",
"unicode_decimal": 58917
}
]
}
@@ -0,0 +1,539 @@
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,779 @@
{
"id": "1990368",
"name": "lucksheet",
"font_family": "iconfont",
"css_prefix_text": "luckysheet-iconfont-",
"description": "",
"glyphs": [
{
"icon_id": "17878780",
"name": "链接",
"font_class": "lianjie",
"unicode": "e7f8",
"unicode_decimal": 59384
},
{
"icon_id": "17612330",
"name": "打印区域",
"font_class": "dayinquyu",
"unicode": "e7f5",
"unicode_decimal": 59381
},
{
"icon_id": "17612331",
"name": "打印页面配置",
"font_class": "dayinyemianpeizhi",
"unicode": "e7f6",
"unicode_decimal": 59382
},
{
"icon_id": "17612332",
"name": "打印标题",
"font_class": "dayinbiaoti",
"unicode": "e7f7",
"unicode_decimal": 59383
},
{
"icon_id": "17600443",
"name": "分页预览",
"font_class": "fenyeyulan",
"unicode": "e7f2",
"unicode_decimal": 59378
},
{
"icon_id": "17600444",
"name": "普通",
"font_class": "putong",
"unicode": "e7f3",
"unicode_decimal": 59379
},
{
"icon_id": "17600445",
"name": "页面布局",
"font_class": "yemianbuju",
"unicode": "e7f4",
"unicode_decimal": 59380
},
{
"icon_id": "17597312",
"name": "表格锁定",
"font_class": "biaogesuoding",
"unicode": "e7ee",
"unicode_decimal": 59374
},
{
"icon_id": "17444514",
"name": "转到",
"font_class": "zhuandao1",
"unicode": "e7f1",
"unicode_decimal": 59377
},
{
"icon_id": "17444503",
"name": "右箭头",
"font_class": "youjiantou",
"unicode": "e7ed",
"unicode_decimal": 59373
},
{
"icon_id": "17444507",
"name": "菜单",
"font_class": "caidan2",
"unicode": "e7ef",
"unicode_decimal": 59375
},
{
"icon_id": "17444508",
"name": "替换",
"font_class": "tihuan",
"unicode": "e7f0",
"unicode_decimal": 59376
},
{
"icon_id": "17392794",
"name": "冻结",
"font_class": "dongjie1",
"unicode": "e7e1",
"unicode_decimal": 59361
},
{
"icon_id": "17392795",
"name": "剪",
"font_class": "jian1",
"unicode": "e7e2",
"unicode_decimal": 59362
},
{
"icon_id": "17392796",
"name": "加",
"font_class": "jia1",
"unicode": "e7e3",
"unicode_decimal": 59363
},
{
"icon_id": "17392797",
"name": "溢出",
"font_class": "yichu1",
"unicode": "e7e4",
"unicode_decimal": 59364
},
{
"icon_id": "17392798",
"name": "升序",
"font_class": "shengxu1",
"unicode": "e7e5",
"unicode_decimal": 59365
},
{
"icon_id": "17392799",
"name": "内框线",
"font_class": "neikuangxian",
"unicode": "e7e6",
"unicode_decimal": 59366
},
{
"icon_id": "17392800",
"name": "清除筛选",
"font_class": "qingchushaixuan",
"unicode": "e7e7",
"unicode_decimal": 59367
},
{
"icon_id": "17392801",
"name": "文本向上",
"font_class": "wenbenxiangshang",
"unicode": "e7e8",
"unicode_decimal": 59368
},
{
"icon_id": "17392802",
"name": "降序",
"font_class": "jiangxu1",
"unicode": "e7e9",
"unicode_decimal": 59369
},
{
"icon_id": "17392803",
"name": "内框横线",
"font_class": "neikuanghengxian",
"unicode": "e7ea",
"unicode_decimal": 59370
},
{
"icon_id": "17392804",
"name": "内框竖线",
"font_class": "neikuangshuxian",
"unicode": "e7eb",
"unicode_decimal": 59371
},
{
"icon_id": "17392805",
"name": "自定义排序",
"font_class": "zidingyipaixu",
"unicode": "e7ec",
"unicode_decimal": 59372
},
{
"icon_id": "16746498",
"name": "logo2",
"font_class": "logo2",
"unicode": "e7df",
"unicode_decimal": 59359
},
{
"icon_id": "16746532",
"name": "logo",
"font_class": "logo",
"unicode": "e7e0",
"unicode_decimal": 59360
},
{
"icon_id": "16730159",
"name": "文本倾斜",
"font_class": "wenbenqingxie1",
"unicode": "e7de",
"unicode_decimal": 59358
},
{
"icon_id": "16728412",
"name": "加粗",
"font_class": "jiacu",
"unicode": "e7d9",
"unicode_decimal": 59353
},
{
"icon_id": "16728080",
"name": "搜索",
"font_class": "sousuo",
"unicode": "e78a",
"unicode_decimal": 59274
},
{
"icon_id": "16728081",
"name": "关闭",
"font_class": "guanbi",
"unicode": "e78b",
"unicode_decimal": 59275
},
{
"icon_id": "16728082",
"name": "下一个",
"font_class": "xiayige",
"unicode": "e78c",
"unicode_decimal": 59276
},
{
"icon_id": "16728083",
"name": "下拉",
"font_class": "xiala",
"unicode": "e78d",
"unicode_decimal": 59277
},
{
"icon_id": "16728084",
"name": "文本颜色",
"font_class": "wenbenyanse",
"unicode": "e78e",
"unicode_decimal": 59278
},
{
"icon_id": "16728085",
"name": "上一个",
"font_class": "shangyige",
"unicode": "e78f",
"unicode_decimal": 59279
},
{
"icon_id": "16728086",
"name": "数据透视",
"font_class": "shujutoushi",
"unicode": "e790",
"unicode_decimal": 59280
},
{
"icon_id": "16728087",
"name": "填充",
"font_class": "tianchong",
"unicode": "e791",
"unicode_decimal": 59281
},
{
"icon_id": "16728088",
"name": "增加小数位",
"font_class": "zengjiaxiaoshuwei",
"unicode": "e792",
"unicode_decimal": 59282
},
{
"icon_id": "16728089",
"name": "编辑2",
"font_class": "bianji2",
"unicode": "e793",
"unicode_decimal": 59283
},
{
"icon_id": "16728090",
"name": "截屏",
"font_class": "jieping",
"unicode": "e794",
"unicode_decimal": 59284
},
{
"icon_id": "16728092",
"name": "减小小数位",
"font_class": "jianxiaoxiaoshuwei",
"unicode": "e796",
"unicode_decimal": 59286
},
{
"icon_id": "16728093",
"name": "菜单",
"font_class": "caidan",
"unicode": "e797",
"unicode_decimal": 59287
},
{
"icon_id": "16728094",
"name": "数据库",
"font_class": "shujuku",
"unicode": "e798",
"unicode_decimal": 59288
},
{
"icon_id": "16728095",
"name": "无边框",
"font_class": "wubiankuang",
"unicode": "e799",
"unicode_decimal": 59289
},
{
"icon_id": "16728096",
"name": "编辑",
"font_class": "bianji",
"unicode": "e79a",
"unicode_decimal": 59290
},
{
"icon_id": "16728097",
"name": "清除样式",
"font_class": "qingchuyangshi",
"unicode": "e79b",
"unicode_decimal": 59291
},
{
"icon_id": "16728099",
"name": "删除",
"font_class": "shanchu",
"unicode": "e79c",
"unicode_decimal": 59292
},
{
"icon_id": "16728100",
"name": "文本居中对齐",
"font_class": "wenbenjuzhongduiqi",
"unicode": "e79d",
"unicode_decimal": 59293
},
{
"icon_id": "16728101",
"name": "打印",
"font_class": "dayin",
"unicode": "e79e",
"unicode_decimal": 59294
},
{
"icon_id": "16728102",
"name": "文本分割",
"font_class": "wenbenfenge",
"unicode": "e79f",
"unicode_decimal": 59295
},
{
"icon_id": "16728103",
"name": "函数‘",
"font_class": "hanshu",
"unicode": "e7a0",
"unicode_decimal": 59296
},
{
"icon_id": "16728104",
"name": "降序",
"font_class": "jiangxu",
"unicode": "e7a1",
"unicode_decimal": 59297
},
{
"icon_id": "16728105",
"name": "顶部对齐",
"font_class": "dingbuduiqi",
"unicode": "e7a2",
"unicode_decimal": 59298
},
{
"icon_id": "16728106",
"name": "图片",
"font_class": "tupian",
"unicode": "e7a3",
"unicode_decimal": 59299
},
{
"icon_id": "16728107",
"name": "向下90",
"font_class": "xiangxia90",
"unicode": "e7a4",
"unicode_decimal": 59300
},
{
"icon_id": "16728108",
"name": "竖排文字",
"font_class": "shupaiwenzi",
"unicode": "e7a5",
"unicode_decimal": 59301
},
{
"icon_id": "16728109",
"name": "全加边框",
"font_class": "quanjiabiankuang",
"unicode": "e7a6",
"unicode_decimal": 59302
},
{
"icon_id": "16728110",
"name": "升序",
"font_class": "shengxu",
"unicode": "e7a7",
"unicode_decimal": 59303
},
{
"icon_id": "16728111",
"name": "裁剪",
"font_class": "caijian",
"unicode": "e7a8",
"unicode_decimal": 59304
},
{
"icon_id": "16728112",
"name": "金额",
"font_class": "jine",
"unicode": "e7a9",
"unicode_decimal": 59305
},
{
"icon_id": "16728113",
"name": "菜单1",
"font_class": "caidan1",
"unicode": "e7aa",
"unicode_decimal": 59306
},
{
"icon_id": "16728114",
"name": "取消合并",
"font_class": "quxiaohebing",
"unicode": "e7ab",
"unicode_decimal": 59307
},
{
"icon_id": "16728115",
"name": "文本下划线",
"font_class": "wenbenxiahuaxian",
"unicode": "e7ac",
"unicode_decimal": 59308
},
{
"icon_id": "16728116",
"name": "上边框",
"font_class": "shangbiankuang",
"unicode": "e7ad",
"unicode_decimal": 59309
},
{
"icon_id": "16728117",
"name": "定位",
"font_class": "dingwei",
"unicode": "e7ae",
"unicode_decimal": 59310
},
{
"icon_id": "16728118",
"name": "四周加边框",
"font_class": "sizhoujiabiankuang",
"unicode": "e7af",
"unicode_decimal": 59311
},
{
"icon_id": "16728119",
"name": "侧边栏收起",
"font_class": "cebianlanshouqi",
"unicode": "e7b0",
"unicode_decimal": 59312
},
{
"icon_id": "16728120",
"name": "合并",
"font_class": "hebing",
"unicode": "e7b1",
"unicode_decimal": 59313
},
{
"icon_id": "16728121",
"name": "向上倾斜",
"font_class": "xiangshangqingxie",
"unicode": "e7b2",
"unicode_decimal": 59314
},
{
"icon_id": "16728122",
"name": "水平对齐",
"font_class": "shuipingduiqi",
"unicode": "e7b3",
"unicode_decimal": 59315
},
{
"icon_id": "16728123",
"name": "文本删除线",
"font_class": "wenbenshanchuxian",
"unicode": "e7b4",
"unicode_decimal": 59316
},
{
"icon_id": "16728124",
"name": "文本右对齐",
"font_class": "wenbenyouduiqi",
"unicode": "e7b5",
"unicode_decimal": 59317
},
{
"icon_id": "16728125",
"name": "前进",
"font_class": "qianjin",
"unicode": "e7b6",
"unicode_decimal": 59318
},
{
"icon_id": "16728126",
"name": "图表",
"font_class": "tubiao",
"unicode": "e7b7",
"unicode_decimal": 59319
},
{
"icon_id": "16728127",
"name": "右边框",
"font_class": "youbiankuang",
"unicode": "e7b8",
"unicode_decimal": 59320
},
{
"icon_id": "16728128",
"name": "百分号",
"font_class": "baifenhao",
"unicode": "e7b9",
"unicode_decimal": 59321
},
{
"icon_id": "16728129",
"name": "格式刷",
"font_class": "geshishua",
"unicode": "e7ba",
"unicode_decimal": 59322
},
{
"icon_id": "16728130",
"name": "保存",
"font_class": "baocun",
"unicode": "e7bb",
"unicode_decimal": 59323
},
{
"icon_id": "16728131",
"name": "数据验证",
"font_class": "shujuyanzheng",
"unicode": "e7bc",
"unicode_decimal": 59324
},
{
"icon_id": "16728132",
"name": "截断",
"font_class": "jieduan",
"unicode": "e7bd",
"unicode_decimal": 59325
},
{
"icon_id": "16728133",
"name": "格式条件",
"font_class": "geshitiaojian",
"unicode": "e7be",
"unicode_decimal": 59326
},
{
"icon_id": "16728134",
"name": "自动换行",
"font_class": "zidonghuanhang",
"unicode": "e7bf",
"unicode_decimal": 59327
},
{
"icon_id": "16728135",
"name": "侧边栏展开",
"font_class": "cebianlanzhankai",
"unicode": "e7c0",
"unicode_decimal": 59328
},
{
"icon_id": "16728136",
"name": "筛选2",
"font_class": "shaixuan2",
"unicode": "e7c1",
"unicode_decimal": 59329
},
{
"icon_id": "16728137",
"name": "向下倾斜",
"font_class": "xiangxiaqingxie",
"unicode": "e7c2",
"unicode_decimal": 59330
},
{
"icon_id": "16728138",
"name": "溢出",
"font_class": "yichu",
"unicode": "e7c3",
"unicode_decimal": 59331
},
{
"icon_id": "16728139",
"name": "垂直合并",
"font_class": "chuizhihebing",
"unicode": "e7c4",
"unicode_decimal": 59332
},
{
"icon_id": "16728140",
"name": "文本分散对齐",
"font_class": "wenbenfensanduiqi",
"unicode": "e7c5",
"unicode_decimal": 59333
},
{
"icon_id": "16728141",
"name": "左边框",
"font_class": "zuobiankuang",
"unicode": "e7c6",
"unicode_decimal": 59334
},
{
"icon_id": "16728142",
"name": "分页查看",
"font_class": "fenyechakan",
"unicode": "e7c7",
"unicode_decimal": 59335
},
{
"icon_id": "16728143",
"name": "运行",
"font_class": "yunhang",
"unicode": "e7c8",
"unicode_decimal": 59336
},
{
"icon_id": "16728144",
"name": "列",
"font_class": "lie",
"unicode": "e7c9",
"unicode_decimal": 59337
},
{
"icon_id": "16728145",
"name": "全屏",
"font_class": "quanping",
"unicode": "e7ca",
"unicode_decimal": 59338
},
{
"icon_id": "16728146",
"name": "筛选",
"font_class": "shaixuan",
"unicode": "e7cb",
"unicode_decimal": 59339
},
{
"icon_id": "16728147",
"name": "更新",
"font_class": "gengxin",
"unicode": "e7cc",
"unicode_decimal": 59340
},
{
"icon_id": "16728148",
"name": "清除",
"font_class": "qingchu",
"unicode": "e7cd",
"unicode_decimal": 59341
},
{
"icon_id": "16728149",
"name": "行",
"font_class": "hang",
"unicode": "e7ce",
"unicode_decimal": 59342
},
{
"icon_id": "16728150",
"name": "注释",
"font_class": "zhushi",
"unicode": "e7cf",
"unicode_decimal": 59343
},
{
"icon_id": "16728151",
"name": "剪",
"font_class": "jian",
"unicode": "e7d0",
"unicode_decimal": 59344
},
{
"icon_id": "16728152",
"name": "计算",
"font_class": "jisuan",
"unicode": "e7d1",
"unicode_decimal": 59345
},
{
"icon_id": "16728153",
"name": "加",
"font_class": "jia",
"unicode": "e7d2",
"unicode_decimal": 59346
},
{
"icon_id": "16728154",
"name": "底部对齐",
"font_class": "dibuduiqi",
"unicode": "e7d3",
"unicode_decimal": 59347
},
{
"icon_id": "16728155",
"name": "向上90",
"font_class": "xiangshang90",
"unicode": "e7d4",
"unicode_decimal": 59348
},
{
"icon_id": "16728156",
"name": "无选装",
"font_class": "wuxuanzhuang",
"unicode": "e7d5",
"unicode_decimal": 59349
},
{
"icon_id": "16728157",
"name": "显示隐藏网格",
"font_class": "xianshiyincangwangge",
"unicode": "e7d6",
"unicode_decimal": 59350
},
{
"icon_id": "16728158",
"name": "冻结",
"font_class": "dongjie",
"unicode": "e7d7",
"unicode_decimal": 59351
},
{
"icon_id": "16728159",
"name": "文本左对齐",
"font_class": "wenbenzuoduiqi",
"unicode": "e7d8",
"unicode_decimal": 59352
},
{
"icon_id": "16728161",
"name": "后退",
"font_class": "houtui",
"unicode": "e7da",
"unicode_decimal": 59354
},
{
"icon_id": "16728162",
"name": "水平合并",
"font_class": "shuipinghebing",
"unicode": "e7db",
"unicode_decimal": 59355
},
{
"icon_id": "16728163",
"name": "下边框",
"font_class": "xiabiankuang",
"unicode": "e7dc",
"unicode_decimal": 59356
},
{
"icon_id": "16728164",
"name": "设置",
"font_class": "shezhi",
"unicode": "e7dd",
"unicode_decimal": 59357
}
]
}
@@ -0,0 +1,356 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="iconfont" horiz-adv-x="1024" >
<font-face
font-family="iconfont"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="lianjie" unicode="&#59384;" d="M771.584 644.266667c-49.066667 51.2-132.266667 51.2-181.333333 0l-74.666667-76.8c-8.533333-8.533333-8.533333-23.466667 0-32 8.533333-8.533333 21.333333-8.533333 29.866667 0l74.666666 76.8c34.133333 34.133333 87.466667 34.133333 121.6 0 34.133333-34.133333 34.133333-89.6 0-123.733334l-121.6-123.733333c-34.133333-34.133333-87.466667-34.133333-121.6 0-8.533333 8.533333-21.333333 8.533333-29.866666 0-8.533333-8.533333-8.533333-23.466667 0-32 49.066667-51.2 132.266667-51.2 181.333333 0l121.6 123.733333c51.2 53.333333 51.2 136.533333 0 187.733334zM477.184 232.533333l-74.666667-76.8c-34.133333-34.133333-87.466667-34.133333-121.6 0-34.133333 34.133333-34.133333 89.6 0 123.733334l121.6 123.733333c34.133333 34.133333 87.466667 34.133333 121.6 0 8.533333-8.533333 21.333333-8.533333 29.866667 0 8.533333 8.533333 8.533333 23.466667 0 32-49.066667 51.2-132.266667 51.2-181.333333 0l-121.6-123.733333c-51.2-51.2-49.066667-134.4 0-185.6 49.066667-51.2 132.266667-51.2 181.333333 0l74.666667 76.8c8.533333 8.533333 8.533333 23.466667 0 32-8.533333 6.4-21.333333 6.4-29.866667-2.133334z" horiz-adv-x="1024" />
<glyph glyph-name="dayinquyu" unicode="&#59381;" d="M727.04 189.781333a11.946667 11.946667 0 0 0 8.704-3.754666 13.312 13.312 0 0 0 3.626667-9.130667V85.333333H583.253333v91.52c0 3.413333 1.28 6.741333 3.626667 9.173334a11.946667 11.946667 0 0 0 8.661333 3.754666zM362.666667 170.666667v-42.666667h-128v42.666667h128z m128 0v-42.666667h-42.666667v42.666667h42.666667z m301.696 143.957333a18.773333 18.773333 0 0 0 18.304-19.2v-117.205333c0-10.581333-8.277333-19.2-18.346667-19.2h-28.458667v11.434666c-0.128 21.333333-16.554667 38.570667-36.778666 38.570667h-131.498667c-20.224 0-36.693333-17.237333-36.778667-38.570667v-11.477333h-28.458666a18.858667 18.858667 0 0 0-18.346667 19.2v117.248c0 10.581333 8.277333 19.2 18.346667 19.2zM256 362.666667v-128H213.333333v128h42.666667z m411.477333-85.845334H567.04a12.586667 12.586667 0 0 1-12.245333-12.8c0.042667-7.125333 5.546667-12.885333 12.245333-12.842666h100.394667a12.586667 12.586667 0 0 1 12.202666 12.8c0 7.082667-5.504 12.8-12.202666 12.8zM723.072 384a14.506667 14.506667 0 0 0 14.165333-14.805333v-35.84H585.386667v35.84a14.506667 14.506667 0 0 0 14.165333 14.805333zM768 533.333333v-128h-42.666667v128h42.666667z m-512 42.666667v-128H213.333333v128h42.666667zM768 682.666667v-64h-42.666667V640h-64V682.666667H768zM362.666667 682.666667v-42.666667H256v-21.333333H213.333333V682.666667h149.333334z m213.333333 0v-42.666667h-128V682.666667h128z" horiz-adv-x="1024" />
<glyph glyph-name="dayinyemianpeizhi" unicode="&#59382;" d="M635.477333 682.666667H388.522667c-15.530667 0-28.16-13.226667-28.288-29.610667v-71.68h303.530666v71.68c0 16.298667-12.586667 29.568-28.288 29.568V682.666667z m7.978667-388.48H380.586667a23.893333 23.893333 0 0 1-17.365334-7.509334 26.581333 26.581333 0 0 1-7.253333-18.261333V85.333333h312.149333v183.125334a26.581333 26.581333 0 0 1-7.253333 18.218666 23.893333 23.893333 0 0 1-17.365333 7.509334z m130.602667 249.728H250.069333c-20.224 0-36.736-17.28-36.736-38.4v-234.410667c0-21.162667 16.512-38.442667 36.693334-38.442667h56.96v22.912c0.213333 42.666667 33.109333 77.184 73.557333 77.098667h262.912c40.448 0.085333 73.386667-34.389333 73.557333-77.098667v-22.912h56.917334c20.224 0 36.736 17.28 36.736 38.4V505.514667c-0.042667 21.290667-16.426667 38.485333-36.608 38.442666z m-249.813334-126.933334H323.498667c-13.44 0-24.405333 11.434667-24.490667 25.642667a25.173333 25.173333 0 0 0 24.490667 25.685333h200.746666c13.44 0 24.490667-11.52 24.490667-25.685333 0-14.08-11.050667-25.6-24.490667-25.6v-0.042667z" horiz-adv-x="1024" />
<glyph glyph-name="dayinbiaoti" unicode="&#59383;" d="M727.04 189.781333a11.946667 11.946667 0 0 0 8.704-3.754666 13.312 13.312 0 0 0 3.626667-9.130667V85.333333H583.253333v91.52c0 3.413333 1.28 6.741333 3.626667 9.173334a11.946667 11.946667 0 0 0 8.661333 3.754666zM768 682.666667v-277.333334h-42.666667V640H256v-469.333333h234.666667v-42.666667H213.333333V682.666667h554.666667z m24.362667-368.042667a18.773333 18.773333 0 0 0 18.304-19.2v-117.205333c0-10.581333-8.277333-19.2-18.346667-19.2h-28.458667v11.434666c-0.128 21.333333-16.554667 38.570667-36.778666 38.570667h-131.498667c-20.224 0-36.693333-17.237333-36.778667-38.570667v-11.477333h-28.458666a18.858667 18.858667 0 0 0-18.346667 19.2v117.248c0 10.581333 8.277333 19.2 18.346667 19.2z m-124.885334-37.802667H567.04a12.586667 12.586667 0 0 1-12.245333-12.8c0.042667-7.125333 5.546667-12.885333 12.245333-12.842666h100.394667a12.586667 12.586667 0 0 1 12.202666 12.8c0 7.082667-5.504 12.8-12.202666 12.8zM723.072 384a14.506667 14.506667 0 0 0 14.165333-14.805333v-35.84H585.386667v35.84a14.506667 14.506667 0 0 0 14.165333 14.805333zM341.333333 554.666667h298.666667v-42.666667H341.333333zM341.333333 469.333333h170.666667v-42.666666H341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="fenyeyulan" unicode="&#59378;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM256 384h256v-42.666667H256zM554.666667 640v-298.666667h-42.666667V640zM405.333333 640v-298.666667h-42.666666V640z" horiz-adv-x="1024" />
<glyph glyph-name="putong" unicode="&#59379;" d="M256 640h554.666667v-42.666667H256zM298.666667 640v-554.666667H256V640zM810.666667 640v-554.666667h-42.666667V640zM469.333333 640v-554.666667h-42.666666V640zM640 640v-554.666667h-42.666667V640zM256 469.333333h554.666667v-42.666666H256zM256 298.666667h554.666667v-42.666667H256zM256 128h554.666667v-42.666667H256z" horiz-adv-x="1024" />
<glyph glyph-name="yemianbuju" unicode="&#59380;" d="M810.666667 682.666667v-42.666667h-170.709334L640 128h170.666667v-42.666667h-213.333334V682.666667h213.333334z m-384 0l-0.042667-554.666667H426.666667v-42.666667H213.333333v42.666667h170.624L384 640H213.333333V682.666667h213.333334z m106.666666-512v-85.333334h-42.666666v85.333334h42.666666z m0 170.666666v-85.333333h-42.666666v85.333333h42.666666z m0 170.666667v-85.333333h-42.666666V512h42.666666z m0 170.666667v-85.333334h-42.666666V682.666667h42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="biaogesuoding" unicode="&#59374;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334zM341.333333 512.128H256V128h85.333333V512.128z m426.666667 0H383.872V128H768V512.128z m-149.333333-21.461333a64 64 0 0 0 63.701333-57.856L682.666667 426.666667v-64h42.666666v-213.333334h-298.666666v213.333334h42.666666V426.666667a64 64 0 0 0 57.856 63.701333L533.333333 490.666667h85.333334z m64-170.666667h-213.333334v-128h213.333334v128z m-106.666667-21.333333a21.333333 21.333333 0 0 0 21.333333-21.333334v-42.666666a21.333333 21.333333 0 1 0-42.666666 0v42.666666a21.333333 21.333333 0 0 0 21.333333 21.333334z m42.666667 149.333333h-85.333334a21.333333 21.333333 0 0 1-20.992-17.493333L512 426.666667v-64h128V426.666667a21.333333 21.333333 0 0 1-13.909333 20.010666l-3.584 0.981334-3.84 0.341333zM768 640H383.872v-85.290667L768 554.666667V640zM341.333333 640H256v-85.333333l85.333333 0.042666V640z" horiz-adv-x="1024" />
<glyph glyph-name="zhuandao1" unicode="&#59377;" d="M804.992 201.941333l-84.650667 84.224c-7.552 7.509333-21.930667 8.448-26.026666-1.365333-1.066667-2.602667-1.365333-10.026667-1.365334-10.026667v-56.874666H406.442667a69.034667 69.034667 0 0 0-69.205334 68.778666 69.034667 69.034667 0 0 0 69.205334 68.821334h259.84a128.341333 128.341333 0 0 1 128.597333 127.829333 128.384 128.384 0 0 1-128.554667 127.914667H411.946667A101.632 101.632 0 0 1 213.333333 581.674667a101.632 101.632 0 1 1 198.613334-29.525334h254.378666a69.034667 69.034667 0 0 0 69.162667-68.821333 69.034667 69.034667 0 0 0-69.162667-68.778667H406.442667a128.341333 128.341333 0 0 1-128.597334-127.872 128.341333 128.341333 0 0 1 128.597334-127.872h286.506666v-54.016s0-8.277333 1.408-11.52c4.053333-9.813333 18.432-10.24 25.984-2.730666l84.650667 84.181333a19.2 19.2 0 0 1 0 27.221333zM314.88 539.776a42.069333 42.069333 0 0 0-42.112 41.898667c0 23.082667 18.858667 41.856 42.112 41.856 23.210667 0 42.112-18.773333 42.112-41.856a42.069333 42.069333 0 0 0-42.112-41.898667z" horiz-adv-x="1024" />
<glyph glyph-name="youjiantou" unicode="&#59373;" d="M682.666667 384l-341.333334-341.333333V725.333333z" horiz-adv-x="1024" />
<glyph glyph-name="caidan2" unicode="&#59375;" d="M213.333333 426.666667h597.333334v-85.333334H213.333333zM213.333333 682.666667h597.333334v-85.333334H213.333333zM213.333333 170.666667h597.333334v-85.333334H213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="tihuan" unicode="&#59376;" d="M768 465.066667H280.405333l-4.394666 0.554666c-5.461333 0.853333-6.570667 1.749333-12.885334 6.528l-2.986666 5.376c-6.4 11.946667-5.376 13.738667 2.986666 28.885334L440.618667 682.666667l34.218666-34.048-136.362666-135.424H768v-48.170667z m-7.594667-163.242667L585.472 128l-34.261333 34.048 136.362666 135.424H258.048v48.170667h484.096c10.453333 0 19.882667-6.272 23.893333-15.872a25.6 25.6 0 0 0-5.632-27.989334z" horiz-adv-x="1024" />
<glyph glyph-name="dongjie1" unicode="&#59361;" d="M809.557333 682.069333v-595.626666H213.930667V682.069333h595.626666zM256.426667 322.389333v-193.408l193.365333 0.042667-193.365333 193.365333z m510.549333 40.618667h-234.026667v-234.026667h234.026667v234.026667z m-276.565333 0H276.053333l214.357334-214.4v214.4z m276.565333 276.522667h-234.026667v-233.984h234.026667V639.530667zM256.426667 609.450667v-203.946667l203.904 0.042667-203.946667 203.946666z m233.984 30.08H286.592l203.861333-203.861334V639.573333z" horiz-adv-x="1024" />
<glyph glyph-name="jian1" unicode="&#59362;" d="M213.333333 426.666667h597.333334v-85.333334H213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="jia1" unicode="&#59363;" d="M213.333333 426.666667h597.333334v-85.333334H213.333333zM554.666667 682.666667v-597.333334h-85.333334V682.666667z" horiz-adv-x="1024" />
<glyph glyph-name="yichu1" unicode="&#59364;" d="M300.288 85.333333H213.333333V682.666667h86.954667v-279.978667h441.898667l-91.306667 85.845333 26.624 26.112L810.666667 384l-133.162667-130.688-26.624 26.154667 91.306667 85.845333-441.898667 0.042667zM530.688 682.666667h42.666667v-242.688h-42.666667V682.666667z m0-354.688h42.666667V85.333333h-42.666667v242.688z" horiz-adv-x="1024" />
<glyph glyph-name="shengxu1" unicode="&#59365;" d="M684.757333 482.944v-290.645333a20.650667 20.650667 0 0 0-6.4-15.274667 23.04 23.04 0 0 0-16-6.357333 22.229333 22.229333 0 0 0-22.4 21.632V482.944L550.4 398.08a22.528 22.528 0 0 0-15.872-6.442667 22.613333 22.613333 0 0 0-15.914667 6.442667 20.650667 20.650667 0 0 0-6.613333 15.061333c0 5.674667 2.389333 11.093333 6.613333 15.061334l126.72 120.064a22.485333 22.485333 0 0 0 15.658667 6.4 23.594667 23.594667 0 0 0 16.128-5.546667l126.72-120.064c4.309333-3.84 6.826667-9.301333 6.826667-15.061333a20.266667 20.266667 0 0 0-6.826667-15.061334 23.04 23.04 0 0 0-15.914667-6.272 23.04 23.04 0 0 0-15.872 6.272l-87.296 84.010667zM229.930667 213.333333h265.472c9.173333 0 16.597333-9.472 16.597333-21.12s-7.424-21.12-16.597333-21.12H229.930667c-9.173333 0-16.597333 9.472-16.597334 21.12 0 11.690667 7.424 21.12 16.597334 21.12z m1.152 170.666667h177.792c9.813333 0 17.792-9.429333 17.792-21.12s-7.936-21.12-17.792-21.12H231.168c-9.813333 0-17.792 9.429333-17.792 21.12 0 11.648 7.978667 21.12 17.792 21.12z m264.362666 170.666667H229.845333C220.757333 554.666667 213.333333 545.194667 213.333333 533.546667s7.424-21.12 16.597334-21.12h265.472c9.173333 0 16.597333 9.472 16.597333 21.12S504.576 554.666667 495.402667 554.666667z" horiz-adv-x="1024" />
<glyph glyph-name="neikuangxian" unicode="&#59366;" d="M213.333333 384h554.666667v-42.666667H213.333333zM512 640v-554.666667h-42.666667V640zM213.333333 469.333333h42.666667v-42.666666H213.333333zM213.333333 298.666667h42.666667v-42.666667H213.333333zM213.333333 554.666667h42.666667v-42.666667H213.333333zM213.333333 213.333333h42.666667v-42.666666H213.333333zM725.333333 469.333333h42.666667v-42.666666h-42.666667zM725.333333 298.666667h42.666667v-42.666667h-42.666667zM725.333333 554.666667h42.666667v-42.666667h-42.666667zM725.333333 213.333333h42.666667v-42.666666h-42.666667zM725.333333 128h42.666667v-42.666667h-42.666667zM725.333333 640h42.666667v-42.666667h-42.666667zM213.333333 128h42.666667v-42.666667H213.333333zM213.333333 640h42.666667v-42.666667H213.333333zM384 128h42.666667v-42.666667H384zM384 640h42.666667v-42.666667H384zM554.666667 128h42.666666v-42.666667h-42.666666zM554.666667 640h42.666666v-42.666667h-42.666666zM298.666667 128h42.666666v-42.666667H298.666667zM298.666667 640h42.666666v-42.666667H298.666667zM640 128h42.666667v-42.666667h-42.666667zM640 640h42.666667v-42.666667h-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="qingchushaixuan" unicode="&#59367;" d="M214.016 173.568h593.92v-42.410667H214.016v42.410667z m578.048 312.106667l-180.693333 181.077333A53.376 53.376 0 0 1 573.738667 682.666667a45.653333 45.653333 0 0 1-32.64-13.226667l-313.941334-314.965333c-18.56-18.602667-17.322667-50.261333 2.688-70.4l68.010667-68.096h298.24l198.698667 199.338666c18.56 18.602667 17.322667 50.261333-2.730667 70.357334z m-213.546667-227.242667H315.434667L259.84 314.112c-3.968 4.010667-4.053333 9.088-2.730667 10.453333L430.08 497.92l193.92-193.92-45.44-45.568z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenxiangshang" unicode="&#59368;" d="M192 400.213333l213.333333 77.653334v0.64l1.621334-0.042667L554.666667 532.224v-45.354667l-106.666667-38.826666v-152.405334l106.666667-38.826666v-45.354667l-147.498667 53.674667-1.834667 0.042666v0.64l-213.333333 77.610667V400.213333z m46.634667-28.416L405.333333 311.125333v121.386667l-166.698666-60.714667zM597.333333 559.829333l90.496 90.538667 90.538667-90.538667-30.165333-30.165333-37.802667 37.76V106.666667h-42.666667V569.898667l-40.234666-40.234667L597.333333 559.829333z" horiz-adv-x="1024" />
<glyph glyph-name="jiangxu1" unicode="&#59369;" d="M684.757333 242.389333V533.034667a20.650667 20.650667 0 0 1-6.4 15.274666 23.04 23.04 0 0 1-16 6.357334 22.229333 22.229333 0 0 1-22.4-21.632v-290.645334L550.4 327.253333a22.528 22.528 0 0 1-15.872 6.442667 22.613333 22.613333 0 0 1-15.914667-6.442667 20.650667 20.650667 0 0 1-6.613333-15.061333c0-5.674667 2.389333-11.093333 6.613333-15.061333l126.72-120.064a22.485333 22.485333 0 0 1 15.658667-6.4 23.594667 23.594667 0 0 1 16.128 5.546666l126.72 120.064c4.309333 3.84 6.826667 9.301333 6.826667 15.061334a20.266667 20.266667 0 0 1-6.826667 15.061333 23.04 23.04 0 0 1-15.914667 6.272 23.04 23.04 0 0 1-15.872-6.272l-87.296-84.010667zM229.930667 213.333333h265.472c9.173333 0 16.597333-9.472 16.597333-21.12s-7.424-21.12-16.597333-21.12H229.930667c-9.173333 0-16.597333 9.472-16.597334 21.12 0 11.690667 7.424 21.12 16.597334 21.12z m1.152 170.666667h177.792c9.813333 0 17.792-9.429333 17.792-21.12s-7.936-21.12-17.792-21.12H231.168c-9.813333 0-17.792 9.429333-17.792 21.12 0 11.648 7.978667 21.12 17.792 21.12z m264.362666 170.666667H229.845333C220.757333 554.666667 213.333333 545.237333 213.333333 533.546667c0-11.648 7.424-21.12 16.597334-21.12h265.472c9.173333 0 16.597333 9.472 16.597333 21.12S504.576 554.666667 495.402667 554.666667z" horiz-adv-x="1024" />
<glyph glyph-name="neikuanghengxian" unicode="&#59370;" d="M213.333333 384h554.666667v-42.666667H213.333333zM213.333333 469.333333h42.666667v-42.666666H213.333333zM213.333333 298.666667h42.666667v-42.666667H213.333333zM213.333333 554.666667h42.666667v-42.666667H213.333333zM213.333333 213.333333h42.666667v-42.666666H213.333333zM725.333333 469.333333h42.666667v-42.666666h-42.666667zM469.333333 469.333333h42.666667v-42.666666h-42.666667zM725.333333 298.666667h42.666667v-42.666667h-42.666667zM469.333333 298.666667h42.666667v-42.666667h-42.666667zM725.333333 554.666667h42.666667v-42.666667h-42.666667zM469.333333 554.666667h42.666667v-42.666667h-42.666667zM725.333333 213.333333h42.666667v-42.666666h-42.666667zM469.333333 213.333333h42.666667v-42.666666h-42.666667zM725.333333 128h42.666667v-42.666667h-42.666667zM725.333333 640h42.666667v-42.666667h-42.666667zM213.333333 128h42.666667v-42.666667H213.333333zM213.333333 640h42.666667v-42.666667H213.333333zM384 128h42.666667v-42.666667H384zM384 640h42.666667v-42.666667H384zM554.666667 128h42.666666v-42.666667h-42.666666zM554.666667 640h42.666666v-42.666667h-42.666666zM298.666667 128h42.666666v-42.666667H298.666667zM298.666667 640h42.666666v-42.666667H298.666667zM469.333333 128h42.666667v-42.666667h-42.666667zM469.333333 640h42.666667v-42.666667h-42.666667zM640 128h42.666667v-42.666667h-42.666667zM640 640h42.666667v-42.666667h-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="neikuangshuxian" unicode="&#59371;" d="M213.333333 469.333333h42.666667v-42.666666H213.333333zM213.333333 298.666667h42.666667v-42.666667H213.333333zM213.333333 554.666667h42.666667v-42.666667H213.333333zM213.333333 213.333333h42.666667v-42.666666H213.333333zM725.333333 469.333333h42.666667v-42.666666h-42.666667zM725.333333 298.666667h42.666667v-42.666667h-42.666667zM725.333333 554.666667h42.666667v-42.666667h-42.666667zM725.333333 213.333333h42.666667v-42.666666h-42.666667zM725.333333 128h42.666667v-42.666667h-42.666667zM725.333333 640h42.666667v-42.666667h-42.666667zM725.333333 384h42.666667v-42.666667h-42.666667zM213.333333 128h42.666667v-42.666667H213.333333zM213.333333 640h42.666667v-42.666667H213.333333zM213.333333 384h42.666667v-42.666667H213.333333zM384 128h42.666667v-42.666667H384zM384 640h42.666667v-42.666667H384zM384 384h42.666667v-42.666667H384zM554.666667 128h42.666666v-42.666667h-42.666666zM554.666667 640h42.666666v-42.666667h-42.666666zM554.666667 384h42.666666v-42.666667h-42.666666zM298.666667 128h42.666666v-42.666667H298.666667zM298.666667 640h42.666666v-42.666667H298.666667zM298.666667 384h42.666666v-42.666667H298.666667zM469.333333 128h42.666667v-42.666667h-42.666667zM469.333333 640h42.666667v-42.666667h-42.666667zM469.333333 384h42.666667v-42.666667h-42.666667zM640 128h42.666667v-42.666667h-42.666667zM640 640h42.666667v-42.666667h-42.666667zM640 384h42.666667v-42.666667h-42.666667zM512 640v-554.666667h-42.666667V640z" horiz-adv-x="1024" />
<glyph glyph-name="zidingyipaixu" unicode="&#59372;" d="M704 640a21.333333 21.333333 0 0 0 21.333333-21.333333v-469.333334a21.333333 21.333333 0 1 0-42.666666 0v469.333334c0 11.776 9.472 21.333333 21.333333 21.333333zM512 512c11.776 0 21.333333-7.68 21.333333-17.194667v-221.610666c0-9.514667-9.472-17.194667-21.333333-17.194667-11.776 0-21.333333 7.68-21.333333 17.194667V494.805333c0 4.565333 2.218667 8.96 6.186666 12.16A24.32 24.32 0 0 0 512 512zM320 640a21.333333 21.333333 0 0 0 21.333333-21.333333v-469.333334a21.333333 21.333333 0 1 0-42.666666 0v469.333334c0 11.776 9.472 21.333333 21.333333 21.333333z m283.562667-368.896a21.333333 21.333333 0 0 0 30.165333-30.165333l-106.666667-106.666667a21.333333 21.333333 0 0 0-30.165333 0l-106.666667 106.666667a21.333333 21.333333 0 0 0 30.165334 30.165333L512 179.498667l91.605333 91.562666z m0.298666 225.834667a21.333333 21.333333 0 0 1 30.165334 30.165333l-106.666667 106.666667a21.333333 21.333333 0 0 1-30.165333 0l-106.666667-106.666667a21.333333 21.333333 0 0 1 30.165333-30.165333l91.562667 91.562666 91.605333-91.562666z" horiz-adv-x="1024" />
<glyph glyph-name="logo2" unicode="&#59359;" d="M1023.168 764.64c0-234.4-190.016-424.416-424.416-424.416 0 234.4 190.016 424.416 424.416 424.416zM131.36-127.168c0 234.4 190.016 424.416 424.416 424.416 0-234.4-190.016-424.416-424.416-424.416zM929.696-33.696c-182.784 0-330.944 148.16-330.944 330.944 182.752 0 330.944-148.16 330.944-330.944zM494.848 896H0v-494.848h494.848zM558.016 814.624H81.376v-476.64h476.64zM558.304 731.584H164.384v-393.92h393.92z" horiz-adv-x="1024" />
<glyph glyph-name="logo" unicode="&#59360;" d="M1023.168 764.64c0-234.4-190.016-424.416-424.416-424.416 0 234.4 190.016 424.416 424.416 424.416zM131.36-127.168c0 234.4 190.016 424.416 424.416 424.416 0-234.4-190.016-424.416-424.416-424.416zM929.696-33.696c-182.784 0-330.944 148.16-330.944 330.944 182.752 0 330.944-148.16 330.944-330.944zM494.848 896H0v-494.848h494.848zM558.016 814.624H81.376v-476.64h476.64zM558.304 731.584H164.384v-393.92h393.92zM1678.08 160v64h-247.04V616.96H1356.8V160h321.28z m177.568-8.96c40.96 0 75.52 17.28 103.68 51.84V160h72.96V490.88h-72.96v-202.24c-6.4-23.68-17.28-42.24-32-56.32-14.72-13.44-30.08-20.48-46.08-20.48-25.6 0-43.52 6.4-55.04 18.56-11.52 12.8-16.64 32-16.64 58.88v201.6h-72.96v-206.08c0-88.96 39.68-133.76 119.04-133.76z m407.936 0c42.88 0 77.44 10.88 103.04 32 26.24 21.76 43.52 55.04 51.2 99.84h-72.32c-5.76-48-32.64-72.32-81.28-72.32-28.16 0-49.28 10.24-63.36 30.08-15.36 20.48-22.4 49.28-22.4 85.76 0 35.84 7.68 64 23.04 83.84 15.36 20.48 36.48 30.08 63.36 30.08 21.76 0 39.68-5.12 53.12-15.36 12.8-10.24 21.76-25.6 26.24-46.72h72.32c-6.4 41.6-23.04 72.32-49.28 92.8-25.6 19.2-59.52 28.8-102.4 28.8-51.84 0-92.16-17.28-120.96-51.84-26.88-31.36-40.32-72.32-40.32-122.24 0-51.2 13.44-92.8 40.96-124.8 28.16-33.28 67.84-49.92 119.04-49.92z m292.128 8.96v115.84l33.28 31.36 115.84-147.2h93.44l-159.36 193.92 146.56 136.96h-94.08l-135.68-131.2V625.92h-72.96V160h72.96z m404.096-126.72l179.2 457.6h-79.36l-83.84-235.52-87.68 235.52h-79.36l131.2-323.2-58.24-134.4h78.08z m357.408 117.76c99.2 0 149.12 35.2 149.12 105.6 0 29.44-13.44 53.12-39.68 69.76-17.92 12.16-46.08 22.4-83.2 31.36-33.28 8.32-55.04 14.72-65.92 19.2-17.92 7.68-26.24 17.28-26.24 27.52 0 12.8 5.12 21.76 16.64 27.52 9.6 5.76 24.32 8.32 43.52 8.32 22.4 0 39.04-3.2 49.92-10.24 10.24-6.4 17.92-18.56 23.04-35.2h71.04c-7.68 70.4-55.68 104.96-142.72 104.96-40.96 0-73.6-8.32-98.56-26.24-25.6-16.64-37.76-40.32-37.76-71.04 0-28.8 12.8-51.2 38.4-67.2 16-10.24 43.52-19.84 82.56-28.8 33.28-7.68 55.04-13.44 65.28-18.56 19.2-8.96 28.8-21.12 28.8-36.48 0-26.88-25.6-40.96-76.8-40.96-24.32 0-41.6 4.48-52.48 12.16-10.88 8.96-18.56 23.68-22.4 44.8h-71.04c7.04-77.44 56.32-116.48 148.48-116.48z m286.976 8.96v184.96c0 28.16 6.4 50.56 19.84 68.48 12.8 17.92 30.72 26.88 53.76 26.88 24.96 0 43.52-7.68 56.32-23.68 10.88-14.72 16.64-36.48 16.64-64.64v-192h72.96v204.8c0 44.16-9.6 77.44-28.16 99.84-19.84 23.68-49.92 35.2-90.24 35.2-21.12 0-39.68-3.84-55.68-12.16-17.92-8.96-33.28-22.4-45.44-40.96v179.2h-72.96V160h72.96z m447.648-8.96c44.16 0 80.64 12.8 110.08 37.76 23.04 20.48 38.4 46.72 46.08 77.44h-72.96c-8.96-18.56-18.56-32-29.44-40.32-14.08-10.24-32-15.36-54.4-15.36-26.24 0-46.72 8.32-60.8 24.32-14.08 16-22.4 39.68-24.96 70.4h247.68c0 59.52-13.44 106.24-39.68 139.52-28.8 37.12-70.4 55.04-124.8 55.04-49.28 0-88.32-16.64-116.48-50.56-29.44-33.28-43.52-74.24-43.52-123.52 0-55.04 15.36-97.92 46.08-129.28 28.8-30.08 67.84-45.44 117.12-45.44z m85.12 209.28h-170.24c4.48 26.24 13.44 46.08 26.88 59.52 14.08 14.08 32.64 20.48 56.96 20.48 51.2 0 80-26.24 86.4-80z m285.088-209.28c44.16 0 80.64 12.8 110.08 37.76 23.04 20.48 38.4 46.72 46.08 77.44h-72.96c-8.96-18.56-18.56-32-29.44-40.32-14.08-10.24-32-15.36-54.4-15.36-26.24 0-46.72 8.32-60.8 24.32-14.08 16-22.4 39.68-24.96 70.4h247.68c0 59.52-13.44 106.24-39.68 139.52-28.8 37.12-70.4 55.04-124.8 55.04-49.28 0-88.32-16.64-116.48-50.56-29.44-33.28-43.52-74.24-43.52-123.52 0-55.04 15.36-97.92 46.08-129.28 28.8-30.08 67.84-45.44 117.12-45.44z m85.12 209.28h-170.24c4.48 26.24 13.44 46.08 26.88 59.52 14.08 14.08 32.64 20.48 56.96 20.48 51.2 0 80-26.24 86.4-80z m310.016-200.32v60.16h-43.52c-7.68 0-12.8 1.92-16.64 5.76-3.84 4.48-5.12 10.24-5.12 17.92v186.88h73.6v60.16h-73.6V597.76l-72.96-30.08v-76.8h-59.52v-60.16h59.52v-186.88c0-26.88 6.4-46.72 19.2-60.8 13.44-15.36 34.56-23.04 63.36-23.04h55.68z" horiz-adv-x="4864" />
<glyph glyph-name="wenbenqingxie1" unicode="&#59358;" d="M469.333333 640h170.666667v-42.666667h-170.666667zM573.738667 611.413333l-81.493334-462.208-41.984 7.381334 81.493334 462.208zM384 170.666667h170.666667v-42.666667H384z" horiz-adv-x="1024" />
<glyph glyph-name="jiacu" unicode="&#59353;" d="M298.666667 682.666667h224a174.208 174.208 0 0 0 141.952-275.242667A174.208 174.208 0 0 0 572.458667 85.333333H298.666667V682.666667z m273.792-348.458667l-174.250667 0.042667v-149.333334h174.250667a74.666667 74.666667 0 0 1 6.101333 149.077334l-6.101333 0.213333zM398.208 583.125333v-149.333333h124.458667a74.666667 74.666667 0 0 1 6.144 149.077333l-6.144 0.256H398.208z" horiz-adv-x="1024" />
<glyph glyph-name="sousuo" unicode="&#59274;" d="M664.832 261.376l128.554667-128.597333a21.333333 21.333333 0 1 0-30.165334-30.165334l-128.597333 128.597334a256 256 0 1 0 30.165333 30.165333zM469.333333 213.333333a213.333333 213.333333 0 1 1 0 426.666667 213.333333 213.333333 0 0 1 0-426.666667z" horiz-adv-x="1024" />
<glyph glyph-name="guanbi" unicode="&#59275;" d="M119.808 715.946667l60.330667 60.245333 724.053333-724.053333-60.330667-60.330667zM843.946667 776.192l60.245333-60.330667-724.053333-724.053333-60.330667 60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="xiayige" unicode="&#59276;" d="M512 213.333333L170.666667 554.666667h682.666666z" horiz-adv-x="1024" />
<glyph glyph-name="xiala" unicode="&#59277;" d="M149.930667 451.669333l60.330666 60.330667 362.069334-362.069333L512 89.6zM813.738667 512l60.330666-60.330667L512 89.6l-60.330667 60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenyanse" unicode="&#59278;" d="M549.546667 640l194.133333-533.333333h-45.354667l-77.653333 213.333333H421.632l-77.653333-213.333333H298.666667L492.757333 640h56.789334z m-28.416-46.634667L437.162667 362.666667h167.978666l-84.010666 230.698666z" horiz-adv-x="1024" />
<glyph glyph-name="shangyige" unicode="&#59279;" d="M512 554.666667l341.333333-341.333334H170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="shujutoushi" unicode="&#59280;" d="M256 533.333333v-298.666666l256-149.333334 256 149.333334v298.666666L512 682.666667 256 533.333333zM725.333333 256l-213.333333-128-213.333333 128V512l213.333333 128 213.333333-128v-256z m-189.354666-40.021333a18.645333 18.645333 0 0 0-18.645334-18.645334 18.304 18.304 0 0 0-18.688 18.645334V360.533333l-130.645333 75.349334a18.645333 18.645333 0 0 0 4.565333 34.133333 18.304 18.304 0 0 0 14.08-2.005333l130.688-74.666667 129.578667 74.666667a18.304 18.304 0 0 0 25.386667-6.698667 18.645333 18.645333 0 0 0-6.784-25.386667l-129.536-74.666666v-145.237334z" horiz-adv-x="1024" />
<glyph glyph-name="tianchong" unicode="&#59281;" d="M730.24 333.824l-253.44-253.44-217.173333 217.258667 253.44 253.44 217.173333-217.258667z m-72.405333 0.042667L512.981333 478.72l-180.992-180.992 144.810667-144.853333 181.034667 181.034666zM520.533333 597.333333v-230.4H469.333333V546.176H392.533333v-179.626667H341.333333V597.333333zM699.733333 341.333333c48.768 0 88.32-37.802667 88.32-84.48 0-46.634667-39.552-84.48-88.32-84.48" horiz-adv-x="1024" />
<glyph glyph-name="zengjiaxiaoshuwei" unicode="&#59282;" d="M533.333333 106.666667m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM682.666667 341.333333a85.333333 85.333333 0 0 1-85.333334-85.333333v-85.333333a85.333333 85.333333 0 1 1 170.666667 0V256a85.333333 85.333333 0 0 1-85.333333 85.333333z m0-42.666666a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 1 0-85.333333 0V256a42.666667 42.666667 0 0 0 42.666667 42.666667zM367.829333 96.298667l90.538667 90.538666L367.786667 277.333333l-30.165334-30.165333 37.76-37.802667H256v-42.666666h121.898667l-40.234667-40.234667 30.165333-30.165333zM490.666667 682.666667a85.333333 85.333333 0 0 1-85.333334-85.333334v-85.333333a85.333333 85.333333 0 1 1 170.666667 0V597.333333a85.333333 85.333333 0 0 1-85.333333 85.333334z m0-42.666667a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 1 0-85.333333 0V597.333333a42.666667 42.666667 0 0 0 42.666667 42.666667zM682.666667 682.666667a85.333333 85.333333 0 0 1-85.333334-85.333334v-85.333333a85.333333 85.333333 0 1 1 170.666667 0V597.333333a85.333333 85.333333 0 0 1-85.333333 85.333334z m0-42.666667a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-85.333333 0V597.333333a42.666667 42.666667 0 0 0 42.666667 42.666667zM341.333333 448m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0Z" horiz-adv-x="1024" />
<glyph glyph-name="bianji2" unicode="&#59283;" d="M810.581333 382.634667V128a42.666667 42.666667 0 0 0-42.666666-42.666667H298.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667h234.624v-42.666667H320a21.333333 21.333333 0 0 1-21.333333-21.333333v-469.333334a21.333333 21.333333 0 0 1 21.333333-21.333333h426.581333a21.333333 21.333333 0 0 1 21.333334 21.333333V384h0.042666a21.333333 21.333333 0 1 0 42.581334-1.365333z m-285.056 2.432l241.365334 241.365333a21.333333 21.333333 0 0 0 30.165333-30.165333l-241.365333-241.365334a21.333333 21.333333 0 0 0-30.165334 30.165334zM533.290667 640V682.666667a21.333333 21.333333 0 0 0 21.333333-21.333334c0-11.776-10.069333-21.333333-21.333333-21.333333z" horiz-adv-x="1024" />
<glyph glyph-name="jieping" unicode="&#59284;" d="M590.848 328.96l-265.386667 306.645333a28.245333 28.245333 0 0 0 3.2 40.149334 29.141333 29.141333 0 0 0 40.789334-3.242667l267.946666-309.674667a124.885333 124.885333 0 0 0 144.213334-34.474666 125.141333 125.141333 0 0 0-16.042667-176.256 125.141333 125.141333 0 0 0-176.341333 14.805333 125.013333 125.013333 0 0 0 1.621333 162.048z m40.149333-18.133333c-18.602667-15.701333-29.312-38.826667-29.312-63.189334 0-45.909333 37.461333-83.157333 83.754667-83.157333a83.413333 83.413333 0 0 1 83.712 83.157333 83.413333 83.413333 0 0 1-83.712 83.114667c-15.189333 0-29.44-4.010667-41.685333-11.008a28.458667 28.458667 0 0 0-12.757334-8.96v0.042667z m-150.698666 52.565333l-38.229334-44.16a29.653333 29.653333 0 0 0-0.768-0.810667 124.885333 124.885333 0 0 0-6.528-151.509333 125.141333 125.141333 0 0 0-176.341333-14.805333C205.226667 196.693333 198.101333 275.626667 242.346667 328.362667a124.928 124.928 0 0 0 156.416 28.544l38.528 44.501333c9.514667-17.237333 24.746667-30.634667 43.008-37.973333z m105.6 122.026667a85.632 85.632 0 0 1-43.818667 37.12l129.749333 150.016a29.141333 29.141333 0 0 0 40.789334 3.242666 28.245333 28.245333 0 0 0 3.2-40.149333l-129.92-150.186667z m-300.8-301.44c35.413333-29.738667 88.064-25.301333 117.546666 9.813333a83.413333 83.413333 0 0 1-10.666666 117.546667 83.456 83.456 0 0 1-117.589334-9.856 83.456 83.456 0 0 1 10.709334-117.504z" horiz-adv-x="1024" />
<glyph glyph-name="jianxiaoxiaoshuwei" unicode="&#59286;" d="M533.333333 448m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM341.333333 106.666667m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM346.496 501.632L256 592.213333 346.496 682.666667l30.165333-30.165334-37.717333-37.802666h119.424v-42.666667H336.469333l40.192-40.234667-30.165333-30.165333zM682.666667 682.666667a85.333333 85.333333 0 0 1-85.333334-85.333334v-85.333333a85.333333 85.333333 0 1 1 170.666667 0V597.333333a85.333333 85.333333 0 0 1-85.333333 85.333334z m0-42.666667a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-85.333333 0V597.333333a42.666667 42.666667 0 0 0 42.666667 42.666667zM490.666667 341.333333a85.333333 85.333333 0 0 1-85.333334-85.333333v-85.333333a85.333333 85.333333 0 1 1 170.666667 0v85.333333a85.333333 85.333333 0 0 1-85.333333 85.333333z m0-42.666666a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-85.333333 0v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667zM682.666667 341.333333a85.333333 85.333333 0 0 1-85.333334-85.333333v-85.333333a85.333333 85.333333 0 1 1 170.666667 0v85.333333a85.333333 85.333333 0 0 1-85.333333 85.333333z m0-42.666666a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-85.333333 0v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="caidan" unicode="&#59287;" d="M256 682.666667h192a42.666667 42.666667 0 0 0 42.666667-42.666667v-192a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333V469.333333a21.333333 21.333333 0 0 1 21.333333-21.333333H426.666667a21.333333 21.333333 0 0 1 21.333333 21.333333V618.666667A21.333333 21.333333 0 0 1 426.666667 640H277.333333z m298.666667 42.666667H768a42.666667 42.666667 0 0 0 42.666667-42.666667v-192a42.666667 42.666667 0 0 0-42.666667-42.666667h-192a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333V469.333333a21.333333 21.333333 0 0 1 21.333333-21.333333h149.333334a21.333333 21.333333 0 0 1 21.333333 21.333333V618.666667a21.333333 21.333333 0 0 1-21.333333 21.333333H597.333333z m-21.333333-277.333333H768a42.666667 42.666667 0 0 0 42.666667-42.666667V128a42.666667 42.666667 0 0 0-42.666667-42.666667h-192a42.666667 42.666667 0 0 0-42.666667 42.666667v192a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-149.333334a21.333333 21.333333 0 0 1 21.333333-21.333333h149.333334a21.333333 21.333333 0 0 1 21.333333 21.333333V298.666667a21.333333 21.333333 0 0 1-21.333333 21.333333H597.333333z m-341.333333 42.666667h192a42.666667 42.666667 0 0 0 42.666667-42.666667V128a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667v192a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-149.333334a21.333333 21.333333 0 0 1 21.333333-21.333333H426.666667a21.333333 21.333333 0 0 1 21.333333 21.333333V298.666667a21.333333 21.333333 0 0 1-21.333333 21.333333H277.333333z" horiz-adv-x="1024" />
<glyph glyph-name="shujuku" unicode="&#59288;" d="M256 682.666667h512a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h469.333334a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-469.333334zM256 490.666667h512a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h469.333334a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-469.333334z m405.333334-21.333333h21.333333a21.333333 21.333333 0 1 0 0-42.666667H682.666667a21.333333 21.333333 0 1 0 0 42.666667zM256 298.666667h512a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h469.333334a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-469.333334z m405.333334-21.333333h21.333333a21.333333 21.333333 0 1 0 0-42.666667H682.666667a21.333333 21.333333 0 1 0 0 42.666667z m0 384h21.333333a21.333333 21.333333 0 1 0 0-42.666667H682.666667a21.333333 21.333333 0 1 0 0 42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="wubiankuang" unicode="&#59289;" d="M384 85.333333v42.666667h42.666667v-42.666667zM554.666667 85.333333v42.666667h42.666666v-42.666667zM298.666667 85.333333v42.666667h42.666666v-42.666667zM469.333333 85.333333v42.666667h42.666667v-42.666667zM640 85.333333v42.666667h42.666667v-42.666667zM384 341.333333v42.666667h42.666667v-42.666667zM384 597.333333V640h42.666667v-42.666667zM554.666667 597.333333V640h42.666666v-42.666667zM298.666667 597.333333V640h42.666666v-42.666667zM469.333333 597.333333V640h42.666667v-42.666667zM640 597.333333V640h42.666667v-42.666667zM725.333333 597.333333V640h42.666667v-42.666667zM213.333333 597.333333V640h42.666667v-42.666667zM554.666667 341.333333v42.666667h42.666666v-42.666667zM298.666667 341.333333v42.666667h42.666666v-42.666667zM469.333333 341.333333v42.666667h42.666667v-42.666667zM640 341.333333v42.666667h42.666667v-42.666667zM725.333333 85.333333v42.666667h42.666667v-42.666667zM213.333333 85.333333v42.666667h42.666667v-42.666667zM725.333333 256v42.666667h42.666667v-42.666667zM213.333333 256v42.666667h42.666667v-42.666667zM725.333333 426.666667v42.666666h42.666667v-42.666666zM213.333333 426.666667v42.666666h42.666667v-42.666666zM725.333333 170.666667v42.666666h42.666667v-42.666666zM213.333333 170.666667v42.666666h42.666667v-42.666666zM725.333333 341.333333v42.666667h42.666667v-42.666667zM213.333333 341.333333v42.666667h42.666667v-42.666667zM725.333333 512V554.666667h42.666667v-42.666667zM213.333333 512V554.666667h42.666667v-42.666667zM469.333333 256v42.666667h42.666667v-42.666667zM469.333333 426.666667v42.666666h42.666667v-42.666666zM469.333333 170.666667v42.666666h42.666667v-42.666666zM469.333333 341.333333v42.666667h42.666667v-42.666667zM469.333333 512V554.666667h42.666667v-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="bianji" unicode="&#59290;" d="M642.56 532.266667l-170.88-170.88 37.76-22.613334 22.613333-37.717333 170.88 170.88-60.373333 60.330667z m30.208 30.165333l60.330667-60.330667 15.104 15.061334a21.333333 21.333333 0 0 1 0 30.165333l-30.165334 30.165333a21.333333 21.333333 0 0 1-30.165333 0l-15.104-15.104v0.042667z m-231.253333-231.253333l-10.112-10.112v-60.330667h60.330666l10.112 10.112-22.613333 37.717333-37.717333 22.613334z m291.584 291.584l60.373333-60.330667a42.666667 42.666667 0 0 0 0-60.330667l-284.032-284.032H388.736V338.773333l284.032 283.989334a42.666667 42.666667 0 0 0 60.330667 0zM554.666667 661.333333a21.333333 21.333333 0 0 0-21.333334-21.333333h-256c-11.818667 0-21.333333-9.472-21.333333-21.162667v-469.674666c0-11.434667 9.557333-21.162667 21.333333-21.162667h469.333334c11.818667 0 21.333333 9.472 21.333333 21.162667V320a21.333333 21.333333 0 1 0 42.666667 0v-191.872c0-23.637333-19.2-42.794667-42.453334-42.794667H255.786667A42.624 42.624 0 0 0 213.333333 128.085333V639.872C213.333333 663.509333 232.533333 682.666667 255.829333 682.666667H533.333333a21.333333 21.333333 0 0 0 21.333334-21.333334z" horiz-adv-x="1024" />
<glyph glyph-name="qingchuyangshi" unicode="&#59291;" d="M214.016 173.568h593.92v-42.410667H214.016v42.410667z m578.048 312.106667l-180.693333 181.077333A53.376 53.376 0 0 1 573.738667 682.666667a45.653333 45.653333 0 0 1-32.64-13.226667l-313.941334-314.965333c-18.56-18.602667-17.322667-50.261333 2.688-70.4l68.010667-68.096h298.24l198.698667 199.338666c18.56 18.602667 17.322667 50.261333-2.730667 70.357334z m-213.546667-227.242667H315.434667L259.84 314.112c-3.968 4.010667-4.053333 9.088-2.730667 10.453333L430.08 497.92l193.92-193.92-45.44-45.568z" horiz-adv-x="1024" />
<glyph glyph-name="shanchu" unicode="&#59292;" d="M320 554.666667v-426.581334A42.666667 42.666667 0 0 1 362.581333 85.333333h298.88a42.666667 42.666667 0 0 1 42.538667 42.794667V554.666667h42.666667a21.333333 21.333333 0 1 1 0 42.666666h-469.333334a21.333333 21.333333 0 0 1 0-42.666666h42.666667zM426.666667 661.333333c0 11.776 9.642667 21.333333 21.248 21.333334h128.170666c11.690667 0 21.248-9.472 21.248-21.333334 0-11.776-9.642667-21.333333-21.248-21.333333h-128.170666A21.248 21.248 0 0 0 426.666667 661.333333zM362.666667 533.504A21.333333 21.333333 0 0 0 384.128 554.666667h255.701333c11.904 0 21.504-9.728 21.504-21.162667v-384.341333a21.333333 21.333333 0 0 0-21.504-21.162667H384.128c-11.733333 0-21.290667 9.386667-21.461333 21.162667V533.504z m42.666666-42.837333a21.290667 21.290667 0 1 0 42.666667 0v-298.666667a21.290667 21.290667 0 1 0-42.666667 0v298.666667z m85.333334 0a21.290667 21.290667 0 1 0 42.666666 0v-298.666667a21.290667 21.290667 0 1 0-42.666666 0v298.666667z m85.333333 0a21.290667 21.290667 0 1 0 42.666667 0v-298.666667a21.290667 21.290667 0 1 0-42.666667 0v298.666667z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenjuzhongduiqi" unicode="&#59293;" d="M234.666667 597.333333h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 1 0 0 42.666666zM341.333333 469.333333h341.333334a21.333333 21.333333 0 1 0 0-42.666666H341.333333a21.333333 21.333333 0 0 0 0 42.666666z m-106.666666-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666zM341.333333 213.333333h341.333334a21.333333 21.333333 0 1 0 0-42.666666H341.333333a21.333333 21.333333 0 0 0 0 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="dayin" unicode="&#59294;" d="M743.125333 554.666667c35.669333 0 64.384-28.885333 67.285334-65.024l0.256-6.101334V213.333333h-149.76v42.666667H768V483.541333c0 14.592-9.514667 26.154667-21.333333 28.16L743.168 512H280.874667c-12.16 0-22.784-10.24-24.576-24.149333l-0.298667-4.266667V256h127.36v-42.666667H213.333333V483.541333c0 36.906667 26.794667 67.712 61.653334 70.826667L280.874667 554.666667h462.250666zM682.666667 682.666667H341.333333v-170.666667h341.333334V682.666667z m-42.666667-42.666667v-85.333333H384V640h256zM682.666667 341.333333v-256H341.333333v256h341.333334z m-42.666667-42.666666H384v-170.666667h256v170.666667zM341.333333 469.333333h128v-42.666666H341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenfenge" unicode="&#59295;" d="M544.896 506.282667h110.762667v-46.933334c6.698667-6.613333 15.658667-6.613333 22.357333 0l84.949333 55.125334c6.698667 4.437333 6.698667 13.226667 0 19.84l-84.906666 57.386666c-6.741333 6.613333-15.701333 6.613333-22.4 0v-41.258666h-133.12l-89.429334-154.453334H343.722667v-0.128h-22.698667c-11.178667 0-22.357333-11.050667-22.357333-22.058666 0-11.050667 11.178667-22.058667 22.357333-22.058667h134.101333l-0.085333 0.128h0.426667l89.386666 154.453333h0.042667z m133.12-198.954667a15.061333 15.061333 0 0 1-22.314667 0v-43.690667h-66.133333l-67.029333 110.293334-22.357334-44.117334s62.592-103.68 67.072-110.293333h88.448V174.933333a15.061333 15.061333 0 0 1 22.314667 0l84.949333 55.168c6.698667 4.437333 6.698667 13.226667 0 19.84l-84.906666 57.386667h-0.042667z" horiz-adv-x="1024" />
<glyph glyph-name="hanshu" unicode="&#59296;" d="M771.072 504.746667a6.698667 6.698667 0 0 1-0.512 9.514666 6.997333 6.997333 0 0 1-4.48 1.749334h-61.354667c-1.962667 0-3.84-0.853333-5.12-2.346667l-103.893333-122.709333a6.698667 6.698667 0 0 0-11.392 1.621333l-53.674667 119.381333a6.656 6.656 0 0 1-6.144 4.010667H381.866667l0.853333 3.968 6.741333 35.712c8.874667 46.933333 32.085333 68.864 72.533334 68.864 15.658667 0 29.994667-1.450667 41.258666-4.010667l11.861334 56.490667a197.888 197.888 0 0 1-46.464 5.12c-87.296 0-132.224-37.418667-148.650667-124.458667l-7.978667-41.813333H229.632a6.698667 6.698667 0 0 1-6.613333-5.376l-9.130667-43.818667a6.826667 6.826667 0 0 1 6.570667-8.106666h79.786666l-75.264-363.52a6.826667 6.826667 0 0 1 6.570667-8.234667H287.573333c3.242667 0 5.973333 2.346667 6.570667 5.418667l75.861333 366.165333h114.773334l57.685333-117.546667a6.570667 6.570667 0 0 0-1.024-7.381333l-152.746667-171.690667a6.826667 6.826667 0 0 1 5.12-11.264h61.44c2.005333 0 3.882667 0.853333 5.162667 2.389334l104.576 123.989333a6.826667 6.826667 0 0 0 11.392-1.493333l55.594667-120.661334a6.741333 6.741333 0 0 1 6.186666-3.968h54.613334a6.784 6.784 0 0 1 6.101333 9.770667L618.325333 328.533333a6.698667 6.698667 0 0 0 1.066667 7.466667l151.722667 168.661333-0.042667 0.042667z" horiz-adv-x="1024" />
<glyph glyph-name="jiangxu" unicode="&#59297;" d="M430.848 229.802667H366.592V659.925333a6.656 6.656 0 0 1-6.741333 6.528h-47.36a6.656 6.656 0 0 1-6.741334-6.528v-430.122666H241.493333c-5.674667 0-8.874667-6.314667-5.333333-10.538667l94.72-115.2a6.912 6.912 0 0 1 10.624 0l94.72 115.2c3.413333 4.224 0.298667 10.538667-5.376 10.538667zM582.442667 89.301333l20.992 61.098667h103.68l21.205333-61.098667h43.690667L672.64 362.666667h-34.688l-99.370667-273.365334h43.861334z m112.896 97.877334h-79.872l39.552 119.424h0.768l39.552-119.466667zM742.570667 409.301333v39.168h-124.288l124.288 203.093334V682.666667h-169.685334v-36.949334h119.04l-123.904-201.941333v-34.474667z" horiz-adv-x="1024" />
<glyph glyph-name="dingbuduiqi" unicode="&#59298;" d="M298.666667 512h426.666666v-42.666667H298.666667zM416 368.170667l90.496 90.496 90.538667-90.496-30.165334-30.165334-37.802666 37.717334v-290.090667h-42.666667v292.565333l-40.234667-40.192-30.165333 30.165334z" horiz-adv-x="1024" />
<glyph glyph-name="tupian" unicode="&#59299;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-263.381334l-233.984-190.890666-118.613333 98.218666L256 191.36V128h512v291.285333zM768 640H256v-392.704l159.146667 134.954667 119.04-98.602667L768 474.325333V640zM384 554.666667a42.666667 42.666667 0 1 0 0-85.333334 42.666667 42.666667 0 0 0 0 85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="xiangxia90" unicode="&#59300;" d="M789.333333 367.786667l-213.333333-77.653334v-0.64l-1.621333 0.042667L426.666667 235.776v45.354667l106.666666 38.826666V472.362667l-106.666666 38.826666V556.544l147.498666-53.674667 1.834667-0.042666v-0.64l213.333333-77.610667v-56.789333z m-46.634666 28.416L576 456.874667v-121.386667l166.698667 60.714667zM384 208.170667l-90.496-90.538667-90.538667 90.538667 30.165334 30.165333 37.802666-37.76V661.333333h42.666667v-463.232l40.234667 40.234667 30.165333-30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="shupaiwenzi" unicode="&#59301;" d="M636.757333 597.333333l77.653334-213.333333h0.64l-0.042667-1.621333 53.76-147.712h-45.354667l-38.826666 106.666666h-152.405334l-38.826666-106.666666H448l53.674667 147.498666 0.042666 1.834667h0.64l77.610667 213.333333h56.789333z m-28.416-46.634666L547.669333 384h121.386667l-60.714667 166.698667zM394.368 197.504L303.786667 106.965333 213.333333 197.546667l30.165334 30.165333 37.802666-37.76V650.666667h42.666667v-463.232l40.234667 40.234666 30.165333-30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="quanjiabiankuang" unicode="&#59302;" d="M213.333333 85.333333V640h42.666667v-554.666667zM725.333333 85.333333V640h42.666667v-554.666667zM469.333333 85.333333V640h42.666667v-554.666667zM213.333333 640h554.666667v-42.666667H213.333333zM213.333333 384h554.666667v-42.666667H213.333333zM213.333333 128h554.666667v-42.666667H213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="shengxu" unicode="&#59303;" d="M430.848 538.24H366.592v-430.165333a6.656 6.656 0 0 0-6.741333-6.485334h-47.36a6.656 6.656 0 0 0-6.741334 6.485334V538.24H241.493333c-5.674667 0-8.874667 6.314667-5.333333 10.538667l94.72 115.2a6.912 6.912 0 0 0 10.624 0l94.72-115.2c3.413333-4.224 0.298667-10.538667-5.376-10.538667zM582.442667 409.301333l20.992 61.098667h103.68l21.205333-61.098667h43.690667L672.64 682.666667h-34.688l-99.370667-273.365334h43.861334z m112.896 97.877334h-79.872l39.552 119.424h0.768l39.552-119.466667zM742.570667 89.301333v39.168h-124.288l124.288 203.093334V362.666667h-169.685334v-36.949334h119.04l-123.904-201.941333v-34.474667z" horiz-adv-x="1024" />
<glyph glyph-name="caijian" unicode="&#59304;" d="M341.333333 682.666667h42.666667v-469.333334H341.333333zM810.666667 256v-42.666667H341.333333v42.666667zM682.666667 85.333333h-42.666667V554.666667h42.666667zM213.333333 512V554.666667h469.333334v-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="jine" unicode="&#59305;" d="M658.816 640l34.986667-24.490667-124.629334-177.92h119.04v-42.666666h-149.333333v-85.333334h149.333333v-42.666666h-149.333333v-128h-42.666667v128h-149.333333v42.666666h149.333333v85.333334h-149.333333v42.666666h119.04L341.333333 615.509333 376.32 640l141.226667-201.728L658.816 640z" horiz-adv-x="1024" />
<glyph glyph-name="caidan1" unicode="&#59306;" d="M256 256h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-42.666667zM682.666667 682.666667h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667h-85.333333a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-42.666667zM469.333333 256h85.333334a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666666-42.666667h-85.333334a42.666667 42.666667 0 0 0-42.666666 42.666667v85.333333a42.666667 42.666667 0 0 0 42.666666 42.666667z m21.333334-42.666667a21.333333 21.333333 0 0 1-21.333334-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333334-21.333333h42.666666a21.333333 21.333333 0 0 1 21.333334 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333334 21.333333h-42.666666zM469.333333 682.666667h85.333334a42.666667 42.666667 0 0 0 42.666666-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666666-42.666667h-85.333334a42.666667 42.666667 0 0 0-42.666666 42.666667V640a42.666667 42.666667 0 0 0 42.666666 42.666667z m21.333334-42.666667a21.333333 21.333333 0 0 1-21.333334-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333334-21.333333h42.666666a21.333333 21.333333 0 0 1 21.333334 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333334 21.333333h-42.666666z m192-384h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667h-85.333333a42.666667 42.666667 0 0 0-42.666667 42.666667v85.333333a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-42.666667zM469.333333 469.333333h85.333334a42.666667 42.666667 0 0 0 42.666666-42.666666v-85.333334a42.666667 42.666667 0 0 0-42.666666-42.666666h-85.333334a42.666667 42.666667 0 0 0-42.666666 42.666666v85.333334a42.666667 42.666667 0 0 0 42.666666 42.666666z m21.333334-42.666666a21.333333 21.333333 0 0 1-21.333334-21.333334v-42.666666a21.333333 21.333333 0 0 1 21.333334-21.333334h42.666666a21.333333 21.333333 0 0 1 21.333334 21.333334v42.666666a21.333333 21.333333 0 0 1-21.333334 21.333334h-42.666666zM256 469.333333h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666666v-85.333334a42.666667 42.666667 0 0 0-42.666667-42.666666H256a42.666667 42.666667 0 0 0-42.666667 42.666666v85.333334a42.666667 42.666667 0 0 0 42.666667 42.666666z m426.666667 0h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666666v-85.333334a42.666667 42.666667 0 0 0-42.666667-42.666666h-85.333333a42.666667 42.666667 0 0 0-42.666667 42.666666v85.333334a42.666667 42.666667 0 0 0 42.666667 42.666666z m21.333333-42.666666a21.333333 21.333333 0 0 1-21.333333-21.333334v-42.666666a21.333333 21.333333 0 0 1 21.333333-21.333334h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333334v42.666666a21.333333 21.333333 0 0 1-21.333333 21.333334h-42.666667z m-426.666667 0a21.333333 21.333333 0 0 1-21.333333-21.333334v-42.666666a21.333333 21.333333 0 0 1 21.333333-21.333334h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333334v42.666666a21.333333 21.333333 0 0 1-21.333333 21.333334h-42.666667zM256 682.666667h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m21.333333-42.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-42.666667a21.333333 21.333333 0 0 1 21.333333-21.333333h42.666667a21.333333 21.333333 0 0 1 21.333333 21.333333v42.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="quxiaohebing" unicode="&#59307;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM533.333333 682.666667v-170.666667h-42.666666V682.666667zM405.333333 469.333333v-213.333333h-42.666666v213.333333zM533.333333 490.666667v-213.333334h-42.666666v213.333334zM661.333333 490.666667v-213.333334h-42.666666v213.333334zM533.333333 298.666667v-170.666667h-42.666666v170.666667zM810.666667 512v-256H213.333333V512h597.333334z m-42.666667-42.666667H256v-170.666666h512v170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenxiahuaxian" unicode="&#59308;" d="M362.666667 640v-298.666667a149.333333 149.333333 0 0 1 298.453333-8.192L661.333333 341.333333V640h42.666667v-298.666667a192 192 0 0 0-383.786667-9.045333L320 341.333333V640h42.666667zM256 128m21.333333 0l469.333334 0q21.333333 0 21.333333-21.333333l0 0q0-21.333333-21.333333-21.333334l-469.333334 0q-21.333333 0-21.333333 21.333334l0 0q0 21.333333 21.333333 21.333333ZM256 640m21.333333 0l128 0q21.333333 0 21.333334-21.333333l0 0q0-21.333333-21.333334-21.333334l-128 0q-21.333333 0-21.333333 21.333334l0 0q0 21.333333 21.333333 21.333333ZM597.333333 640m21.333334 0l128 0q21.333333 0 21.333333-21.333333l0 0q0-21.333333-21.333333-21.333334l-128 0q-21.333333 0-21.333334 21.333334l0 0q0 21.333333 21.333334 21.333333Z" horiz-adv-x="1024" />
<glyph glyph-name="shangbiankuang" unicode="&#59309;" d="M213.333333 640h554.666667v-42.666667H213.333333zM213.333333 469.333333h42.666667v-42.666666H213.333333zM213.333333 298.666667h42.666667v-42.666667H213.333333zM213.333333 554.666667h42.666667v-42.666667H213.333333zM213.333333 384h42.666667v-42.666667H213.333333zM213.333333 213.333333h42.666667v-42.666666H213.333333zM469.333333 469.333333h42.666667v-42.666666h-42.666667zM725.333333 469.333333h42.666667v-42.666666h-42.666667zM725.333333 298.666667h42.666667v-42.666667h-42.666667zM725.333333 554.666667h42.666667v-42.666667h-42.666667zM725.333333 384h42.666667v-42.666667h-42.666667zM725.333333 213.333333h42.666667v-42.666666h-42.666667zM725.333333 128h42.666667v-42.666667h-42.666667zM469.333333 298.666667h42.666667v-42.666667h-42.666667zM469.333333 554.666667h42.666667v-42.666667h-42.666667zM469.333333 384h42.666667v-42.666667h-42.666667zM469.333333 213.333333h42.666667v-42.666666h-42.666667zM213.333333 128h42.666667v-42.666667H213.333333zM384 128h42.666667v-42.666667H384zM554.666667 128h42.666666v-42.666667h-42.666666zM298.666667 128h42.666666v-42.666667H298.666667zM469.333333 128h42.666667v-42.666667h-42.666667zM640 128h42.666667v-42.666667h-42.666667zM384 384h42.666667v-42.666667H384zM554.666667 384h42.666666v-42.666667h-42.666666zM298.666667 384h42.666666v-42.666667H298.666667zM469.333333 384h42.666667v-42.666667h-42.666667zM640 384h42.666667v-42.666667h-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="dingwei" unicode="&#59310;" d="M618.666667 172.416V234.666667a21.333333 21.333333 0 1 0 42.666666 0v-62.250667a128.128 128.128 0 0 1 104.917334 104.917333H704a21.333333 21.333333 0 1 0 0 42.666667h62.250667a128.128 128.128 0 0 1-104.917334 104.874667V362.666667a21.333333 21.333333 0 1 0-42.666666 0v62.208a128.085333 128.085333 0 0 1-104.874667-104.874667H576a21.333333 21.333333 0 0 0 0-42.666667h-62.208a128.128 128.128 0 0 1 104.874667-104.917333z m149.333333 296.96a213.12 213.12 0 0 1-42.666667 24.874667V618.666667a21.333333 21.333333 0 0 1-21.333333 21.333333h-426.666667a21.333333 21.333333 0 0 1-21.333333-21.333333v-341.333334a21.333333 21.333333 0 0 1 21.333333-21.333333h153.6c2.986667-14.848 7.594667-29.098667 13.482667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667h469.333333a42.666667 42.666667 0 0 0 42.666667-42.666667v-170.666667zM640 128a170.666667 170.666667 0 1 0 0 341.333333 170.666667 170.666667 0 0 0 0-341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="sizhoujiabiankuang" unicode="&#59311;" d="M213.333333 85.333333V640h42.666667v-554.666667zM725.333333 85.333333V640h42.666667v-554.666667zM213.333333 640h554.666667v-42.666667H213.333333zM213.333333 128h554.666667v-42.666667H213.333333zM384 341.333333v42.666667h42.666667v-42.666667zM554.666667 341.333333v42.666667h42.666666v-42.666667zM298.666667 341.333333v42.666667h42.666666v-42.666667zM469.333333 341.333333v42.666667h42.666667v-42.666667zM640 341.333333v42.666667h42.666667v-42.666667zM469.333333 256v42.666667h42.666667v-42.666667zM469.333333 426.666667v42.666666h42.666667v-42.666666zM469.333333 170.666667v42.666666h42.666667v-42.666666zM469.333333 341.333333v42.666667h42.666667v-42.666667zM469.333333 512V554.666667h42.666667v-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="cebianlanshouqi" unicode="&#59312;" d="M256 576a21.333333 21.333333 0 0 0 21.333333 21.333333h469.333334a21.333333 21.333333 0 1 0 0-42.666666h-469.333334a21.290667 21.290667 0 0 0-21.333333 21.333333zM256 384c0 11.776 9.6 21.333333 21.461333 21.333333h277.077334a21.333333 21.333333 0 1 0 0-42.666666H277.504A21.333333 21.333333 0 0 0 256 384z m0-192a21.333333 21.333333 0 0 0 21.333333 21.333333h469.333334a21.333333 21.333333 0 1 0 0-42.666666h-469.333334a21.290667 21.290667 0 0 0-21.333333 21.333333z m368.896 283.562667a21.333333 21.333333 0 0 0 30.165333 30.165333l106.666667-106.666667a21.333333 21.333333 0 0 0 0-30.165333l-106.666667-106.666667a21.333333 21.333333 0 0 0-30.165333 30.165334L716.501333 384l-91.562666 91.605333z" horiz-adv-x="1024" />
<glyph glyph-name="hebing" unicode="&#59313;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM389.162667 469.333333l90.538666-90.496-90.538666-90.538666-30.165334 30.165333 37.802667 37.845333-119.466667-0.042666v42.666666l121.856 0.042667-40.192 40.192 30.165334 30.165333zM645.162667 469.333333L554.666667 378.837333l90.496-90.538666 30.165333 30.165333-37.76 37.845333 119.466667-0.042666v42.666666l-121.856 0.042667 40.149333 40.192-30.165333 30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="xiangshangqingxie" unicode="&#59314;" d="M290.944 606.634667l205.738667-95.914667 0.469333 0.426667 1.109333-1.152 142.506667-66.432-32.128-32.085334-102.826667 47.957334-107.818666-107.733334 48-102.912-32.085334-32.042666-66.346666 142.250666-1.28 1.28 0.469333 0.512-96 205.696 40.192 40.149334z m12.885333-53.034667l74.965334-160.810667 85.845333 85.845334L303.786667 553.6zM690.432 432.896h128v-128h-42.666667v53.418667l-325.845333-325.802667-30.165333 30.165333 327.552 327.552h-56.874667v42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="shuipingduiqi" unicode="&#59315;" d="M725.333333 362.666667H298.666667v42.666666h426.666666zM426.666667 261.504l90.496 90.496 90.538666-90.496-30.165333-30.165333-39.936 39.850666v-121.557333h-42.666667v119.765333l-38.101333-38.058666-30.165333 30.165333zM426.666667 506.837333l90.496-90.538666 90.538666 90.538666-30.165333 30.165334-39.936-39.893334V618.666667h-42.666667v-119.765334l-38.101333 38.101334-30.165333-30.165334z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenshanchuxian" unicode="&#59316;" d="M298.666667 640h426.666666v-42.666667H298.666667zM533.290667 341.333333l0.042666-192h-42.666666l-0.042667 192h42.666667z m0.042666 277.333334l-0.042666-234.666667h-42.666667l0.042667 234.666667h42.666666zM320 640v-85.333333h-42.666667V640zM746.666667 640v-85.333333h-42.666667V640zM256 426.666667h512v-42.666667H256zM426.666667 170.666667h170.666666v-42.666667h-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenyouduiqi" unicode="&#59317;" d="M234.666667 597.333333h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 1 0 0 42.666666z m213.333333-128h341.333333a21.333333 21.333333 0 1 0 0-42.666666h-341.333333a21.333333 21.333333 0 0 0 0 42.666666z m-213.333333-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666z m213.333333-128h341.333333a21.333333 21.333333 0 1 0 0-42.666666h-341.333333a21.333333 21.333333 0 0 0 0 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="qianjin" unicode="&#59318;" d="M287.018667 476.672h310.997333v-42.666667H286.72l84.48-84.437333a21.333333 21.333333 0 1 0-30.208-30.165333l-120.746667 120.704a21.248 21.248 0 0 0 0 30.165333l120.746667 120.661333a21.333333 21.333333 0 0 0 30.165333-30.165333L287.018667 476.672z m524.330666-213.333333a213.333333 213.333333 0 0 1-213.333333 213.333333v-42.666667a170.666667 170.666667 0 0 0 170.666667-170.666666h42.666666z m0 0h-42.666666v-64a21.333333 21.333333 0 1 1 42.666666 0v64z" horiz-adv-x="1024" />
<glyph glyph-name="tubiao" unicode="&#59319;" d="M256 682.666667H213.333333v-597.333334h597.333334v42.666667H256zM490.666667 552.533333V341.333333h185.6c-19.2-72.533333-85.333333-128-164.266667-128-93.866667 0-170.666667 76.8-170.666667 170.666667 0 87.466667 66.133333 157.866667 149.333334 168.533333M512 597.333333c-117.333333 0-213.333333-96-213.333333-213.333333s96-213.333333 213.333333-213.333333 213.333333 96 213.333333 213.333333h-192V597.333333H512zM618.666667 635.733333c83.2-14.933333 134.4-74.666667 147.2-166.4H618.666667V635.733333m-42.666667 46.933334v-256H810.666667c0 149.333333-85.333333 256-234.666667 256z" horiz-adv-x="1024" />
<glyph glyph-name="youbiankuang" unicode="&#59320;" d="M768 640v-554.666667h-42.666667V640zM597.333333 640v-42.666667h-42.666666V640zM426.666667 640v-42.666667H384V640zM682.666667 640v-42.666667h-42.666667V640zM512 640v-42.666667h-42.666667V640zM341.333333 640v-42.666667H298.666667V640zM597.333333 384v-42.666667h-42.666666v42.666667zM597.333333 128v-42.666667h-42.666666v42.666667zM426.666667 128v-42.666667H384v42.666667zM682.666667 128v-42.666667h-42.666667v42.666667zM512 128v-42.666667h-42.666667v42.666667zM341.333333 128v-42.666667H298.666667v42.666667zM256 128v-42.666667H213.333333v42.666667zM426.666667 384v-42.666667H384v42.666667zM682.666667 384v-42.666667h-42.666667v42.666667zM512 384v-42.666667h-42.666667v42.666667zM341.333333 384v-42.666667H298.666667v42.666667zM256 640v-42.666667H213.333333V640zM256 469.333333v-42.666666H213.333333v42.666666zM256 298.666667v-42.666667H213.333333v42.666667zM256 554.666667v-42.666667H213.333333V554.666667zM256 384v-42.666667H213.333333v42.666667zM256 213.333333v-42.666666H213.333333v42.666666zM512 469.333333v-42.666666h-42.666667v42.666666zM512 298.666667v-42.666667h-42.666667v42.666667zM512 554.666667v-42.666667h-42.666667V554.666667zM512 384v-42.666667h-42.666667v42.666667zM512 213.333333v-42.666666h-42.666667v42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="baifenhao" unicode="&#59321;" d="M653.525333 682.666667l36.949334-21.333334-320-554.24-36.949334 21.333334L653.525333 682.666667zM682.666667 426.666667c71.68 0 128-67.626667 128-149.333334S754.346667 128 682.666667 128s-128 67.626667-128 149.333333 56.32 149.333333 128 149.333334z m0-42.666667c-46.165333 0-85.333333-46.976-85.333334-106.666667s39.168-106.666667 85.333334-106.666666c46.165333 0 85.333333 46.976 85.333333 106.666666s-39.168 106.666667-85.333333 106.666667zM341.333333 661.333333c71.68 0 128-67.626667 128-149.333333s-56.32-149.333333-128-149.333333S213.333333 430.293333 213.333333 512s56.32 149.333333 128 149.333333z m0-42.666666C295.168 618.666667 256 571.690667 256 512s39.168-106.666667 85.333333-106.666667c46.165333 0 85.333333 46.976 85.333334 106.666667s-39.168 106.666667-85.333334 106.666667z" horiz-adv-x="1024" />
<glyph glyph-name="geshishua" unicode="&#59322;" d="M725.333333 682.666667v-85.333334h85.333334v-234.666666h-298.666667V298.666667h21.333333v-213.333334h-85.333333v213.333334h21.333333v106.666666h298.666667V554.666667h-42.666667v-85.333334H213.333333V682.666667h512z m-42.666666-42.666667H256v-128h426.666667V640z" horiz-adv-x="1024" />
<glyph glyph-name="baocun" unicode="&#59323;" d="M341.333333 640H277.333333a21.333333 21.333333 0 0 1-21.333333-21.333333v-469.333334a21.333333 21.333333 0 0 1 21.333333-21.333333h469.333334a21.333333 21.333333 0 0 1 21.333333 21.333333v469.333334a21.333333 21.333333 0 0 1-21.333333 21.333333H682.666667v-213.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H384a42.666667 42.666667 0 0 0-42.666667 42.666667V640zM256 682.666667h512a42.666667 42.666667 0 0 0 42.666667-42.666667v-512a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667z m128-42.666667v-192a21.333333 21.333333 0 0 1 21.333333-21.333333h213.333334a21.333333 21.333333 0 0 1 21.333333 21.333333V640H384z m192-42.666667a21.333333 21.333333 0 0 0 21.333333-21.333333v-85.333333a21.333333 21.333333 0 0 0-42.666666 0v85.333333a21.333333 21.333333 0 0 0 21.333333 21.333333z" horiz-adv-x="1024" />
<glyph glyph-name="shujuyanzheng" unicode="&#59324;" d="M764.330667 303.829333l30.165333-30.165333L734.165333 213.333333l60.330667-60.330666-30.165333-30.165334-60.330667 60.330667-60.330667-60.330667-30.165333 30.165334L673.834667 213.333333l-60.330667 60.330667 30.165333 30.165333 60.330667-60.330666 60.330667 60.330666zM725.333333 384v-42.666667H256v-128h256v-42.666666H213.333333v213.333333h512z m47.829334 209.664l30.165333-30.165333L682.666667 442.88l-30.165334-30.165333-90.496 90.453333 30.165334 30.208 60.330666-60.330667 120.661334 120.661334zM725.333333 640v-42.666667H256v-128h256v-42.666666H213.333333V640h512z" horiz-adv-x="1024" />
<glyph glyph-name="jieduan" unicode="&#59325;" d="M767.829333 682.666667h42.496v-597.333334h-42.496zM767.146667 342.784h-384v42.496h384v-42.496zM213.333333 682.666667h84.992v-597.333334H213.333333V682.666667z" horiz-adv-x="1024" />
<glyph glyph-name="geshitiaojian" unicode="&#59326;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-320h-106.666667V128H768v234.666667z m-405.376 0h-106.666667V128h106.666667v234.666667z m256.042667-86.784L445.482667 128H618.666667v147.882667z m0 162.346666l-213.376-179.968v-108.885333l213.376 179.072v109.781333z m0 163.669334l-213.333334-179.029334v-108.885333l213.333334 179.072V601.898667zM768 640h-103.936l-2.730667-2.304V405.333333H768V640zM362.666667 640H256v-234.666667h106.666667V640z m235.008 0H405.333333v-161.408L597.674667 640z" horiz-adv-x="1024" />
<glyph glyph-name="zidonghuanhang" unicode="&#59327;" d="M213.333333 682.666667h85.12v-597.333334H213.333333V682.666667z m225.450667-477.44l25.557333 21.333333-72.362666 63.786667 72.362666 63.872-25.557333 21.248-93.610667-80.853334h4.266667-4.266667l93.610667-89.386666zM768 682.666667h42.581333v-597.333334H768zM540.928 528.725333H391.978667v-42.581333h148.949333c59.605333 0 106.410667-38.314667 106.410667-85.12s-46.805333-85.12-106.410667-85.12H391.978667v-42.581333h148.949333c85.12 0 157.482667 55.338667 157.482667 127.701333s-72.362667 127.701333-157.44 127.701333z" horiz-adv-x="1024" />
<glyph glyph-name="cebianlanzhankai" unicode="&#59328;" d="M256 576a21.333333 21.333333 0 0 0 21.333333 21.333333h469.333334a21.333333 21.333333 0 1 0 0-42.666666h-469.333334a21.290667 21.290667 0 0 0-21.333333 21.333333z m192-192c0 11.776 9.557333 21.333333 21.461333 21.333333h277.034667a21.333333 21.333333 0 1 0 0-42.666666h-277.034667a21.333333 21.333333 0 0 0-21.461333 21.333333zM256 192a21.333333 21.333333 0 0 0 21.333333 21.333333h469.333334a21.333333 21.333333 0 1 0 0-42.666666h-469.333334a21.290667 21.290667 0 0 0-21.333333 21.333333z m143.061333 283.562667L307.541333 384l91.605334-91.562667a21.333333 21.333333 0 0 0-30.165334-30.165333l-106.666666 106.666667a21.333333 21.333333 0 0 0 0 30.165333l106.666666 106.666667a21.333333 21.333333 0 0 0 30.165334-30.165334z" horiz-adv-x="1024" />
<glyph glyph-name="shaixuan2" unicode="&#59329;" d="M736 682.666667H328.533333C288 682.666667 256 650.666667 256 610.133333c0-17.066667 6.4-34.133333 17.066667-46.933333 0-2.133333 2.133333-2.133333 2.133333-4.266667l160-160v-168.533333c0-6.4 2.133333-10.666667 6.4-14.933333l145.066667-123.733334c4.266667-2.133333 8.533333-4.266667 12.8-4.266666 6.4 0 10.666667 2.133333 14.933333 6.4 4.266667 4.266667 4.266667 10.666667 4.266667 14.933333V392.533333l170.666666 166.4 2.133334 2.133334c10.666667 12.8 17.066667 29.866667 17.066666 46.933333 0 42.666667-32 74.666667-72.533333 74.666667z m23.466667-93.866667s-2.133333-2.133333 0 0l-172.8-172.8c-4.266667-4.266667-6.4-8.533333-6.4-14.933333v-251.733334l-104.533334 87.466667V405.333333c0 6.4-2.133333 10.666667-6.4 14.933334l-162.133333 166.4-2.133333 2.133333c-6.4 6.4-8.533333 12.8-8.533334 21.333333 0 17.066667 14.933333 32 32 32h407.466667c17.066667 0 32-14.933333 32-32 0-8.533333-4.266667-14.933333-8.533333-21.333333z" horiz-adv-x="1024" />
<glyph glyph-name="xiangxiaqingxie" unicode="&#59330;" d="M755.968 583.722667l-95.914667-205.738667 0.426667-0.469333-1.152-1.109334-66.432-142.506666-32.085333 32.128 47.957333 102.826666-107.733333 107.818667-102.912-48-32.042667 32.085333 142.250667 66.346667 1.28 1.28 0.512-0.469333 205.696 96 40.149333-40.192z m-53.034667-12.885334l-160.810666-74.965333 85.845333-85.845333 74.965333 160.810666zM582.229333 184.234667v-128h-128v42.666666h53.418667l-325.802667 325.845334 30.165334 30.165333 327.552-327.552v56.874667h42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="yichu" unicode="&#59331;" d="M256 682.666667h85.333333v-597.333334H256zM711.466667 253.312l-26.154667 26.154667 89.6 85.845333H256v37.376h518.954667l-89.6 85.845333 26.112 26.112L842.154667 384zM573.354667 682.666667h42.666666v-242.688h-42.666666V682.666667z m0-354.688h42.666666V85.333333h-42.666666v242.688z" horiz-adv-x="1024" />
<glyph glyph-name="chuizhihebing" unicode="&#59332;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM640 682.666667v-597.333334h-42.666667V682.666667zM426.666667 682.666667v-597.333334H384V682.666667zM597.034667 304.170667l-90.538667-90.538667L416 304.213333l30.165333 30.165334 37.802667-37.76V544h42.666667v-249.898667l40.234666 40.234667 30.165334-30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenfensanduiqi" unicode="&#59333;" d="M234.666667 597.333333h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 1 0 0 42.666666z m0-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666z m0-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666z m0-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="zuobiankuang" unicode="&#59334;" d="M213.333333 85.333333V640h42.666667v-554.666667zM384 85.333333v42.666667h42.666667v-42.666667zM554.666667 85.333333v42.666667h42.666666v-42.666667zM298.666667 85.333333v42.666667h42.666666v-42.666667zM469.333333 85.333333v42.666667h42.666667v-42.666667zM640 85.333333v42.666667h42.666667v-42.666667zM384 341.333333v42.666667h42.666667v-42.666667zM554.666667 341.333333v42.666667h42.666666v-42.666667zM298.666667 341.333333v42.666667h42.666666v-42.666667zM469.333333 341.333333v42.666667h42.666667v-42.666667zM640 341.333333v42.666667h42.666667v-42.666667zM469.333333 256v42.666667h42.666667v-42.666667zM469.333333 426.666667v42.666666h42.666667v-42.666666zM469.333333 170.666667v42.666666h42.666667v-42.666666zM469.333333 341.333333v42.666667h42.666667v-42.666667zM469.333333 512V554.666667h42.666667v-42.666667zM384 597.333333V640h42.666667v-42.666667zM554.666667 597.333333V640h42.666666v-42.666667zM298.666667 597.333333V640h42.666666v-42.666667zM469.333333 597.333333V640h42.666667v-42.666667zM640 597.333333V640h42.666667v-42.666667zM725.333333 597.333333V640h42.666667v-42.666667zM725.333333 85.333333v42.666667h42.666667v-42.666667zM725.333333 256v42.666667h42.666667v-42.666667zM725.333333 426.666667v42.666666h42.666667v-42.666666zM725.333333 170.666667v42.666666h42.666667v-42.666666zM725.333333 341.333333v42.666667h42.666667v-42.666667zM725.333333 512V554.666667h42.666667v-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="fenyechakan" unicode="&#59335;" d="M810.666667 682.666667v-42.666667h-170.709334L640 128h170.666667v-42.666667h-213.333334V682.666667h213.333334z m-384 0l-0.042667-554.666667H426.666667v-42.666667H213.333333v42.666667h170.624L384 640H213.333333V682.666667h213.333334z m106.666666-512v-85.333334h-42.666666v85.333334h42.666666z m0 170.666666v-85.333333h-42.666666v85.333333h42.666666z m0 170.666667v-85.333333h-42.666666V512h42.666666z m0 170.666667v-85.333334h-42.666666V682.666667h42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="yunhang" unicode="&#59336;" d="M268.032 372.565333l60.373333 60.330667 211.2-211.2-60.373333-60.330667zM780.928 583.765333l60.373333-60.330666-331.904-331.861334-60.330666 60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="lie" unicode="&#59337;" d="M234.666667 64v597.333333h42.666666v-597.333333zM405.333333 64v597.333333h42.666667v-597.333333zM576 64v597.333333h42.666667v-597.333333zM746.666667 64v597.333333h42.666666v-597.333333z" horiz-adv-x="1024" />
<glyph glyph-name="quanping" unicode="&#59338;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM341.333333 298.666667v-85.376L426.666667 213.333333v-42.666666H298.666667v128h42.666666z m384 0v-128h-128v42.666666h85.376L682.666667 298.666667h42.666666z m-298.666666 298.666666v-42.666666l-85.333334 0.042666V469.333333H298.666667V597.333333h128z m298.666666 0v-128h-42.666666l0.042666 85.333334H597.333333V597.333333h128z" horiz-adv-x="1024" />
<glyph glyph-name="shaixuan" unicode="&#59339;" d="M736 682.666667H328.533333C288 682.666667 256 650.666667 256 610.133333c0-17.066667 6.4-34.133333 17.066667-46.933333 0-2.133333 2.133333-2.133333 2.133333-4.266667l160-160v-168.533333c0-6.4 2.133333-10.666667 6.4-14.933333l145.066667-123.733334c4.266667-2.133333 8.533333-4.266667 12.8-4.266666 6.4 0 10.666667 2.133333 14.933333 6.4 4.266667 4.266667 4.266667 10.666667 4.266667 14.933333V392.533333l170.666666 166.4 2.133334 2.133334c10.666667 12.8 17.066667 29.866667 17.066666 46.933333 0 42.666667-32 74.666667-72.533333 74.666667z m23.466667-93.866667s-2.133333-2.133333 0 0l-172.8-172.8c-4.266667-4.266667-6.4-8.533333-6.4-14.933333v-251.733334l-104.533334 87.466667V405.333333c0 6.4-2.133333 10.666667-6.4 14.933334l-162.133333 166.4-2.133333 2.133333c-6.4 6.4-8.533333 12.8-8.533334 21.333333 0 17.066667 14.933333 32 32 32h407.466667c17.066667 0 32-14.933333 32-32 0-8.533333-4.266667-14.933333-8.533333-21.333333zM688.213333 517.589333l-101.546666-101.589333c-4.266667-4.266667-6.4-8.533333-6.4-14.933333v-251.733334l-104.533334 87.466667V405.333333c0 6.4-2.133333 10.666667-6.4 14.933334L403.626667 487.68l284.586666 29.909333z" horiz-adv-x="1024" />
<glyph glyph-name="gengxin" unicode="&#59340;" d="M358.101333 640A298.666667 298.666667 0 0 1 512 85.333333a21.333333 21.333333 0 1 1 0 42.666667A256 256 0 0 0 405.333333 616.789333V532.906667A21.333333 21.333333 0 0 1 426.666667 512c11.776 0 21.333333 9.130667 21.333333 20.906667V661.76a20.565333 20.565333 0 0 1-6.229333 14.634667l0.042666 0.128A20.650667 20.650667 0 0 1 427.050667 682.666667H298.24a21.333333 21.333333 0 0 1-20.906667-21.333334c0-11.776 9.173333-21.333333 20.906667-21.333333h59.818667z m307.797334-512A298.666667 298.666667 0 0 1 512 682.666667a21.333333 21.333333 0 0 1 0-42.666667 256 256 0 0 0 106.666667-488.789333V235.093333A21.333333 21.333333 0 0 1 597.333333 256c-11.776 0-21.333333-9.130667-21.333333-20.906667v-128.810666a20.48 20.48 0 0 1 6.229333-14.634667l-0.042666-0.170667a20.650667 20.650667 0 0 1 14.762666-6.144h128.768a21.333333 21.333333 0 0 1 20.949334 21.333334c0 11.776-9.173333 21.333333-20.906667 21.333333h-59.861333z" horiz-adv-x="1024" />
<glyph glyph-name="qingchu" unicode="&#59341;" d="M330.965333 625.365333l422.4-422.4-60.330666-60.330666-422.4 422.4zM753.365333 565.034667l-422.4-422.4-60.330666 60.330666 422.4 422.4z" horiz-adv-x="1024" />
<glyph glyph-name="hang" unicode="&#59342;" d="M213.333333 640h597.333334v-42.666667H213.333333zM213.333333 469.333333h597.333334v-42.666666H213.333333zM213.333333 298.666667h597.333334v-42.666667H213.333333zM213.333333 128h597.333334v-42.666667H213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="zhushi" unicode="&#59343;" d="M352 405.333333a32 32 0 1 1 64 0 32 32 0 0 1-64 0z m128 0a32 32 0 1 1 64 0 32 32 0 0 1-64 0z m128 0a32 32 0 1 1 64 0 32 32 0 0 1-64 0zM768 597.333333H256c-23.466667 0-42.666667-19.2-42.666667-42.666666v-298.666667c0-23.466667 19.2-42.666667 42.666667-42.666667h106.666667v-128l128 128H768c23.466667 0 42.666667 19.2 42.666667 42.666667V554.666667c0 23.466667-19.2 42.666667-42.666667 42.666666z m0-320c0-12.8-8.533333-21.333333-21.333333-21.333333H469.333333l-64-64V256h-128c-12.8 0-21.333333 8.533333-21.333333 21.333333v256c0 12.8 8.533333 21.333333 21.333333 21.333334h469.333334c12.8 0 21.333333-8.533333 21.333333-21.333334v-256z" horiz-adv-x="1024" />
<glyph glyph-name="jian" unicode="&#59344;" d="M213.333333 426.666667h597.333334v-85.333334H213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="jisuan" unicode="&#59345;" d="M774.058667 682.666667v-42.666667H310.784l236.288-256-236.330667-256h463.317334v-42.666667H213.333333l275.669334 298.666667L213.333333 682.666667z" horiz-adv-x="1024" />
<glyph glyph-name="jia" unicode="&#59346;" d="M213.333333 426.666667h597.333334v-85.333334H213.333333zM554.666667 682.666667v-597.333334h-85.333334V682.666667z" horiz-adv-x="1024" />
<glyph glyph-name="dibuduiqi" unicode="&#59347;" d="M725.333333 170.666667H298.666667v42.666666h426.666666zM608 314.496l-90.496-90.496-90.538667 90.496 30.165334 30.165333 37.802666-37.717333V597.034667h42.666667v-292.565334l40.234667 40.192 30.165333-30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="xiangshang90" unicode="&#59348;" d="M789.333333 400.213333l-213.333333 77.653334v0.64l-1.621333-0.042667L426.666667 532.224v-45.354667l106.666666-38.826666v-152.405334l-106.666666-38.826666v-45.354667l147.498666 53.674667 1.834667 0.042666v0.64l213.333333 77.610667V400.213333z m-46.634666-28.416L576 311.125333v121.386667l166.698667-60.714667zM384 559.829333L293.504 650.368 202.965333 559.786667l30.165334-30.165334 37.802666 37.76V106.666667h42.666667V569.898667l40.234667-40.234667L384 559.829333z" horiz-adv-x="1024" />
<glyph glyph-name="wuxuanzhuang" unicode="&#59349;" d="M549.546667 682.666667l77.653333-213.333334h0.64l-0.042667-1.621333 53.76-147.712h-45.354666l-38.826667 106.666667h-152.405333l-38.826667-106.666667H360.789333l53.674667 147.498667 0.042667 1.834666h0.64l77.610666 213.333334h56.789334z m-28.416-46.634667L460.458667 469.333333h121.386666l-60.714666 166.698667zM709.162667 277.333333l90.538666-90.496-90.538666-90.538666-30.165334 30.165333 37.76 37.802667H256v42.666666h463.232l-40.234667 40.234667 30.165334 30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="xianshiyincangwangge" unicode="&#59350;" d="M256 640h554.666667v-42.666667H256zM298.666667 640v-554.666667H256V640zM810.666667 640v-554.666667h-42.666667V640zM469.333333 640v-554.666667h-42.666666V640zM640 640v-554.666667h-42.666667V640zM256 469.333333h554.666667v-42.666666H256zM256 298.666667h554.666667v-42.666667H256zM256 128h554.666667v-42.666667H256z" horiz-adv-x="1024" />
<glyph glyph-name="dongjie" unicode="&#59351;" d="M256.426667 639.573333h255.317333v-553.130666H256.426667zM809.557333 682.069333v-595.626666H213.930667V682.069333h595.626666z m-42.538666-42.538666H256.426667v-510.549334h510.549333V639.573333zM490.453333 639.573333h42.538667v-510.592h-42.538667zM256.426667 363.008v42.538667h510.592v-42.538667zM256.384 669.738667l264.192-264.192-30.122667-30.08-264.192 264.192 30.122667 30.08z m-30.122667-317.184l30.122667 30.122666 264.192-264.192-30.122667-30.08-264.192 264.149334z" horiz-adv-x="1024" />
<glyph glyph-name="wenbenzuoduiqi" unicode="&#59352;" d="M234.666667 597.333333h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 1 0 0 42.666666z m0-128h341.333333a21.333333 21.333333 0 0 0 0-42.666666h-341.333333a21.333333 21.333333 0 0 0 0 42.666666z m0-128h554.666666a21.333333 21.333333 0 1 0 0-42.666666h-554.666666a21.333333 21.333333 0 0 0 0 42.666666z m0-128h341.333333a21.333333 21.333333 0 0 0 0-42.666666h-341.333333a21.333333 21.333333 0 0 0 0 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="houtui" unicode="&#59354;" d="M737.664 476.672H426.666667v-42.666667h311.296l-84.48-84.437333a21.333333 21.333333 0 0 1 30.208-30.165333l120.746666 120.704a21.290667 21.290667 0 0 1 0 30.165333l-120.746666 120.661333a21.333333 21.333333 0 0 1-30.165334-30.165333l84.138667-84.096zM213.333333 263.338667a213.333333 213.333333 0 0 0 213.333334 213.333333v-42.666667a170.666667 170.666667 0 0 1-170.666667-170.666666H213.333333z m0 0h42.666667v-64a21.333333 21.333333 0 0 0-42.666667 0v64z" horiz-adv-x="1024" />
<glyph glyph-name="shuipinghebing" unicode="&#59355;" d="M810.666667 682.666667v-597.333334H213.333333V682.666667h597.333334z m-42.666667-42.666667H256v-512h512V640zM810.666667 512v-256H213.333333V512h597.333334z m-42.666667-42.666667H256v-170.666666h512v170.666666zM581.162667 469.333333l90.538666-90.496-90.538666-90.538666-30.165334 30.165333 37.76 37.802667H341.333333v42.666666h249.898667l-40.234667 40.234667 30.165334 30.165333z" horiz-adv-x="1024" />
<glyph glyph-name="xiabiankuang" unicode="&#59356;" d="M768 85.333333H213.333333v42.666667h554.666667zM768 256h-42.666667v42.666667h42.666667zM768 426.666667h-42.666667v42.666666h42.666667zM768 170.666667h-42.666667v42.666666h42.666667zM768 341.333333h-42.666667v42.666667h42.666667zM768 512h-42.666667V554.666667h42.666667zM512 256h-42.666667v42.666667h42.666667zM256 256H213.333333v42.666667h42.666667zM256 426.666667H213.333333v42.666666h42.666667zM256 170.666667H213.333333v42.666666h42.666667zM256 341.333333H213.333333v42.666667h42.666667zM256 512H213.333333V554.666667h42.666667zM256 597.333333H213.333333V640h42.666667zM512 426.666667h-42.666667v42.666666h42.666667zM512 170.666667h-42.666667v42.666666h42.666667zM512 341.333333h-42.666667v42.666667h42.666667zM512 512h-42.666667V554.666667h42.666667zM768 597.333333h-42.666667V640h42.666667zM597.333333 597.333333h-42.666666V640h42.666666zM426.666667 597.333333H384V640h42.666667zM682.666667 597.333333h-42.666667V640h42.666667zM512 597.333333h-42.666667V640h42.666667zM341.333333 597.333333H298.666667V640h42.666666zM597.333333 341.333333h-42.666666v42.666667h42.666666zM426.666667 341.333333H384v42.666667h42.666667zM682.666667 341.333333h-42.666667v42.666667h42.666667zM512 341.333333h-42.666667v42.666667h42.666667zM341.333333 341.333333H298.666667v42.666667h42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="shezhi" unicode="&#59357;" d="M794.496 470.314667a112.341333 112.341333 0 0 0-72.917333 53.034666 108.074667 108.074667 0 0 0-9.941334 88.234667 13.781333 13.781333 0 0 1-4.394666 14.592 299.392 299.392 0 0 1-95.616 55.424 14.421333 14.421333 0 0 1-15.146667-3.584 113.578667 113.578667 0 0 0-84.48-35.968 113.578667 113.578667 0 0 0-82.858667 35.157333 14.421333 14.421333 0 0 1-16.768 4.394667 298.154667 298.154667 0 0 1-95.573333-55.808 13.781333 13.781333 0 0 1-4.394667-14.634667c9.344-29.354667 5.717333-61.269333-9.984-87.808a112.341333 112.341333 0 0 0-72.96-53.034666 13.909333 13.909333 0 0 1-10.752-11.050667 281.856 281.856 0 0 1 0-109.610667c1.024-5.504 5.290667-9.813333 10.752-11.008a112.341333 112.341333 0 0 0 72.96-52.650666c15.786667-26.666667 19.413333-58.709333 9.941334-88.192a13.781333 13.781333 0 0 1 4.352-14.634667 299.392 299.392 0 0 1 95.658666-55.424h4.778667c3.882667 0 7.637333 1.578667 10.325333 4.394667a114.773333 114.773333 0 0 0 166.229334 0c4.096-5.546667 11.648-7.424 17.92-4.394667a298.666667 298.666667 0 0 1 97.194666 55.04c4.266667 3.541333 6.016 9.301333 4.394667 14.592a108.074667 108.074667 0 0 0 8.362667 88.618667 112.341333 112.341333 0 0 0 72.96 52.650666 13.909333 13.909333 0 0 1 10.709333 11.008 280.32 280.32 0 0 1 0 109.653334 14.336 14.336 0 0 1-10.752 11.008z m-26.709333-105.173334a136.106667 136.106667 0 0 1-79.658667-60.928 131.285333 131.285333 0 0 1-13.568-97.322666 259.114667 259.114667 0 0 0-69.717333-39.552A135.552 135.552 0 0 1 512 206.890667a137.941333 137.941333 0 0 1-92.842667-39.552 258.304 258.304 0 0 0-69.717333 39.552 129.664 129.664 0 0 1-14.762667 96.938666 136.106667 136.106667 0 0 1-78.506666 61.312 239.189333 239.189333 0 0 0 0 79.061334A136.106667 136.106667 0 0 1 335.872 505.173333c16.896 29.525333 21.76 64.426667 13.525333 97.365334a258.730667 258.730667 0 0 0 69.717334 39.552c25.386667-23.125333 58.453333-35.968 92.842666-36.010667a136.064 136.064 0 0 1 92.842667 36.010667c25.173333-9.472 48.682667-22.826667 69.717333-39.594667a131.285333 131.285333 0 0 1 14.336-96.896 136.106667 136.106667 0 0 1 79.701334-60.928c4.394667-26.197333 4.394667-52.906667 0-79.104l-0.810667-0.426667h0.042667zM513.706667 525.653333a119.466667 119.466667 0 1 1 0-238.933333 119.466667 119.466667 0 0 1 0 238.933333z m0-199.125333a79.658667 79.658667 0 1 0 0 159.36 79.658667 79.658667 0 0 0 0-159.36z" horiz-adv-x="1024" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

File diff suppressed because one or more lines are too long
@@ -0,0 +1,505 @@
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" version="1.1" x="0" y="0" width="590px" height="424px" viewBox="0 0 590 424" preserveAspectRatio="none"><g transform="translate(36,90)"><path fill="#000000" fill-rule="evenodd" d="M4,0 L2,0 C0.895,0 0,0.895 0,2 L0,10 L2,10 L2,8 L4,8 L4,10 L6,10 L6,2 C6,0.895 5.105,0 4,0 Z M2,6 L4,6 L4,2 L2,2 L2,6 Z M14,3.5 L14,2 C14,0.895 13.105,0 12,0 L8,0 L8,10 L12,10 C13.105,10 14,9.105 14,8 L14,6.5 C14,5.672 13.328,5 12.5,5 C13.328,5 14,4.328 14,3.5 Z M10,8 L12,8 L12,6 L10,6 L10,8 Z M10,4 L12,4 L12,2 L10,2 L10,4 Z" transform="translate(2 4)"/>
</g><g transform="translate(108,252)"><path fill="#000000" fill-rule="evenodd" d="M16,0 L12,0 L12,1 L4,1 L4,0 L0,0 L0,4 L1,4 L1,12 L0,12 L0,16 L4,16 L4,15 L12,15 L12,16 L16,16 L16,12 L15,12 L15,4 L16,4 L16,0 Z M3,13 L3,3 L13,3 L13,13 L3,13 Z M7,4 C5.895,4 5,4.895 5,6 L5,12 L7,12 L7,10 L9,10 L9,12 L11,12 L11,6 C11,4.895 10.105,4 9,4 L7,4 Z M7,8 L9,8 L9,6 L7,6 L7,8 Z" transform="translate(1 1)"/>
</g><g transform="translate(536,184)"><path fill="#000000" fill-rule="evenodd" d="M7,14 C10.8659932,14 14,10.8659932 14,7 C14,3.13400675 10.8659932,0 7,0 C3.13400675,0 0,3.13400675 0,7 C0,10.8659932 3.13400675,14 7,14 Z M10.53,4.53 L9.47,3.47 L7,5.94 L4.53,3.47 L3.47,4.53 L5.94,7 L3.47,9.47 L4.53,10.53 L7,8.06 L9.47,10.53 L10.53,9.47 L8.06,7 L10.53,4.53 Z" transform="translate(2 2)"/>
</g><g transform="translate(36,324)"><path fill="#000000" d="M0,7 L1.99632026,7 L1.99632026,9 L0,9 L0,7 Z M10,12 L15,12 L15,14 L10,14 L10,12 Z M16.9694527,11.9570946 L18,13.0188246 L16.9734025,14.0389803 L15,16 L15,10 L16.9694527,11.9570946 Z M2.99264052,2.99686968 C2.99264052,1.34174426 4.33709312,-1.59872116e-14 5.98804084,-1.59872116e-14 C7.64235476,-1.59872116e-14 8.98344117,1.34739093 8.98344117,2.99686968 L8.98344117,6.00313032 C8.98344117,7.65825574 7.63898856,9 5.98804084,9 C4.33372692,9 2.99264052,7.65260907 2.99264052,6.00313032 L2.99264052,2.99686968 Z M4.5,2.99857602 L4.5,6.00142398 C4.5,6.83497024 5.17157288,7.5 6,7.5 C6.83420277,7.5 7.5,6.82906466 7.5,6.00142398 L7.5,2.99857602 C7.5,2.16502976 6.82842712,1.5 6,1.5 C5.16579723,1.5 4.5,2.17093534 4.5,2.99857602 Z M9.99264052,2.99686968 C9.99264052,1.34174426 11.3370931,-1.59872116e-14 12.9880408,-1.59872116e-14 C14.6423548,-1.59872116e-14 15.9834412,1.34739093 15.9834412,2.99686968 L15.9834412,6.00313032 C15.9834412,7.65825574 14.6389886,9 12.9880408,9 C11.3337269,9 9.99264052,7.65260907 9.99264052,6.00313032 L9.99264052,2.99686968 Z M11.5,2.99857602 L11.5,6.00142398 C11.5,6.83497024 12.1715729,7.5 13,7.5 C13.8342028,7.5 14.5,6.82906466 14.5,6.00142398 L14.5,2.99857602 C14.5,2.16502976 13.8284271,1.5 13,1.5 C12.1657972,1.5 11.5,2.17093534 11.5,2.99857602 Z" transform="translate(0 1)"/>
</g><g transform="translate(216,234)"><path fill="#000000" fill-rule="evenodd" d="M9,3.5 C9,1.57 7.43,0 5.5,0 L1.77635684e-15,0 L1.77635684e-15,12 L6.25,12 C8.04,12 9.5,10.54 9.5,8.75 C9.5,7.45 8.73,6.34 7.63,5.82 C8.46,5.24 9,4.38 9,3.5 Z M5,2 C5.82999992,2 6.5,2.67 6.5,3.5 C6.5,4.33 5.82999992,5 5,5 L3,5 L3,2 L5,2 Z M3,10 L3,7 L5.5,7 C6.32999992,7 7,7.67 7,8.5 C7,9.33 6.32999992,10 5.5,10 L3,10 Z" transform="translate(4 3)"/>
</g><g transform="translate(234,324)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 2)">
<path d="M5,0 L3,0 L3,2 L5,2 L5,0 L5,0 Z M8,6 L6,6 L6,8 L8,8 L8,6 L8,6 Z M8,9 L6,9 L6,11 L8,11 L8,9 L8,9 Z M11,6 L9,6 L9,8 L11,8 L11,6 L11,6 Z M5,6 L3,6 L3,8 L5,8 L5,6 L5,6 Z M11,0 L9,0 L9,2 L11,2 L11,0 L11,0 Z M8,3 L6,3 L6,5 L8,5 L8,3 L8,3 Z M8,0 L6,0 L6,2 L8,2 L8,0 L8,0 Z M2,9 L0,9 L0,11 L2,11 L2,9 L2,9 Z M12,11 L14,11 L14,9 L12,9 L12,11 L12,11 Z M12,5 L14,5 L14,3 L12,3 L12,5 L12,5 Z M12,8 L14,8 L14,6 L12,6 L12,8 L12,8 Z M12,0 L12,2 L14,2 L14,0 L12,0 L12,0 Z M2,0 L0,0 L0,2 L2,2 L2,0 L2,0 Z M2,3 L0,3 L0,5 L2,5 L2,3 L2,3 Z M2,6 L0,6 L0,8 L2,8 L2,6 L2,6 Z" opacity=".54"/>
<polygon points="0 14 14 14 14 12 0 12"/>
</g>
</g><g transform="translate(454,378)"><path fill="#000000" fill-rule="evenodd" d="M16,3.88888889 L16,13.2222222 C16,14.2044444 15.2035556,15 14.2222222,15 L1.77777778,15 C0.796444444,15 0,14.2044444 0,13.2222222 L0,3.88888889 L0,7 L2,7 L2,13 L14,13 L14,7 L16,7 L16,3.88888889 Z M5.5,7 L7.5,9.5 L10,6 L13,11 L3,11 L5.5,7 Z M1.90939331,1.92431641 L0,-1.77635684e-15 L0,5 L5,5 L3.2149353,3.21627808 C4.2902485,2.38413522 5.85793364,1.78571429 7.37579451,1.78571429 C10.1281305,1.78571429 11.1530865,2.71785714 11.9683059,5 L14,5 C12.9324508,2.00714286 10.9860518,-1.77635684e-15 7.37579451,-1.77635684e-15 C5.32221804,-1.77635684e-15 3.34185024,0.770744978 1.90939331,1.92431641 Z" transform="translate(1 2)"/>
</g><g transform="translate(500,220)"><path fill="#010101" fill-rule="evenodd" d="M2,10.5857864 L2,1.77635684e-15 L0,1.77635684e-15 L0,13 L0,14 L14,14 L14,12 L3.41421356,12 L10.7071068,4.70710678 L12,6 L12,2 L8,2 L9.29289322,3.29289322 L2,10.5857864 Z" transform="translate(2 2)"/>
</g><g transform="translate(428,18)"><path fill="#4285F4" fill-rule="evenodd" d="M6,4 L6,0 L4,0 L4,4 L0,4 L0,6 L4,6 L4,10 L6,10 L6,6 L10,6 L10,4 L6,4 Z" transform="translate(4 4)"/>
</g><g transform="translate(288,234)"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<polygon points="0 0 18 0 18 18 0 18"/>
<path d="M6.0390625,13 L11.0495605,13 L11.0495605,7.46153846 L15,7.46153846 L8.5,1 L2,7.46153846 L6.0390625,7.46153846 L6.0390625,13 Z M2,15 L15,15 L15,17 L2,17 L2,15 Z" fill="#000000"/>
</g>
</g><g transform="translate(90,90)"><path fill="#000000" fill-rule="evenodd" d="M15.5,3.29 L12.05375,0.39875 L11.09,1.54625 L14.53625,4.4375 L15.5,3.29 L15.5,3.29 Z M4.91,1.5425 L3.94625,0.395 L0.5,3.28625 L1.46375,4.43375 L4.91,1.5425 L4.91,1.5425 Z M7,9 L9.5,11.5 L11,10 L9,8 L9,5 L7,5 L7,9 Z M7.99625,2 C4.265,2 1.25,5.0225 1.25,8.75 C1.25,12.4775 4.265,15.5 7.99625,15.5 C11.7275,15.5 14.75,12.4775 14.75,8.75 C14.75,5.0225 11.7275,2 7.99625,2 Z M8,14 C5.10125,14 2.75,11.64875 2.75,8.75 C2.75,5.85125 5.10125,3.5 8,3.5 C10.89875,3.5 13.25,5.85125 13.25,8.75 C13.25,11.64875 10.9025,14 8,14 Z" transform="translate(1 1)"/>
</g><g transform="translate(518,18)"><polygon fill="#000000" fill-rule="evenodd" points="12 5 3.125 5 7.06 1.06 6 0 0 6 6 12 7.06 10.94 3.125 7 12 7" transform="matrix(-1 0 0 1 15 3)"/>
</g><g transform="translate(428,0)"><polygon fill="#000000" fill-rule="evenodd" points="-2 2 2 6 6 2" transform="rotate(90 3 10)"/>
</g><g transform="translate(162,360)"><path fill="#000000" fill-rule="evenodd" d="M6,10 L14,10 L14,8 L6,8 L6,10 Z M6,6 L14,6 L14,4 L6,4 L6,6 Z M14,12 L0,12 L0,14 L14,14 L14,12 Z M0.5,7 L4,10.5 L4,3.5 L0.5,7 Z M0,0 L0,2 L14,2 L14,0 L0,0 Z" transform="matrix(-1 0 0 1 16 2)"/>
</g><g transform="translate(198,234)"><path fill="#000000" fill-rule="evenodd" d="M13,0 L11,0 L11,1 L13,1 L13,2 L12,2 C11.448,2 11,2.4475 11,3 L11,5 L14,5 L14,4 L12,4 L12,3 L13,3 C13.5525,3 14,2.5525 14,2 L14,1 C14,0.4475 13.5525,0 13,0 Z M5,6.5 L8,11 L9.88503367,11 L6.5,5.5 L10,0 L8,0 L5,4.5 L2,0 L0,0 L3.5,5.5 L0,11 L2,11 L5,6.5 Z" transform="translate(2 4)"/>
</g><g transform="translate(18,270)"><g fill="none" fill-rule="evenodd" transform="translate(0 1)">
<polygon fill="#4285F4" points="4.71 16 15.24 16 17.85 11 7.29 11"/>
<polygon fill="#0F9D58" points="5.63 1.45 .14 11.45 2.8 16 8.28 6.02 5.63 1.45"/>
<polygon fill="#FFC107" points="17.86 10 11.97 0 6.71 0 12.6 10"/>
</g>
</g><g transform="translate(108,306)"><path fill="#000000" fill-rule="evenodd" d="M14.0074653,8.784 C14.0394653,8.528 14.0634653,8.272 14.0634653,8 C14.0634653,7.728 14.0394653,7.472 14.0074653,7.216 L15.6954653,5.896 C15.8474653,5.776 15.8874653,5.56 15.7914653,5.384 L14.1914653,2.616 C14.0954653,2.44 13.8794653,2.376 13.7034653,2.44 L11.7114653,3.24 C11.2954653,2.92 10.8474653,2.656 10.3594653,2.456 L10.0554653,0.336 C10.0314653,0.144 9.86346525,0 9.66346525,0 L6.46346525,0 C6.26346525,0 6.09546525,0.144 6.07146525,0.336 L5.76746525,2.456 C5.27946525,2.656 4.83146525,2.928 4.41546525,3.24 L2.42346525,2.44 C2.23946525,2.368 2.03146525,2.44 1.93546525,2.616 L0.335465255,5.384 C0.231465255,5.56 0.279465255,5.776 0.431465255,5.896 L2.11946525,7.216 C2.08746525,7.472 2.06346525,7.736 2.06346525,8 C2.06346525,8.264 2.08746525,8.528 2.11946525,8.784 L0.431465255,10.104 C0.279465255,10.224 0.239465255,10.44 0.335465255,10.616 L1.93546525,13.384 C2.03146525,13.56 2.24746525,13.624 2.42346525,13.56 L4.41546525,12.76 C4.83146525,13.08 5.27946525,13.344 5.76746525,13.544 L6.07146525,15.664 C6.09546525,15.856 6.26346525,16 6.46346525,16 L9.66346525,16 C9.86346525,16 10.0314653,15.856 10.0554653,15.664 L10.3594653,13.544 C10.8474653,13.344 11.2954653,13.072 11.7114653,12.76 L13.7034653,13.56 C13.8874653,13.632 14.0954653,13.56 14.1914653,13.384 L15.7914653,10.616 C15.8874653,10.44 15.8474653,10.224 15.6954653,10.104 L14.0074653,8.784 L14.0074653,8.784 Z M8,11 C6.34571429,11 5,9.65428571 5,8 C5,6.34571429 6.34571429,5 8,5 C9.65428571,5 11,6.34571429 11,8 C11,9.65428571 9.65428571,11 8,11 L8,11 Z" transform="translate(1 1)"/>
</g><g transform="translate(468,90)"><path fill="#000000" fill-rule="evenodd" d="M4,4 L1.00087166,4 C0.444630861,4 0,4.44882258 0,5.00247329 L0,14.9975267 C0,15.544239 0.448105505,16 1.00087166,16 L14.9991283,16 C15.5553691,16 16,15.5511774 16,14.9975267 L16,5.50123665 L16,6 L4,6 L4,4 Z M2,6 L7,6 L7,9 L2,9 L2,6 Z M2,11 L7,11 L7,14 L2,14 L2,11 Z M9,6 L14,6 L14,9 L9,9 L9,6 Z M9,11 L14,11 L14,14 L9,14 L9,11 Z M12,1.75 L12,1 C12,0.447 11.553,0 11,0 L9,0 L9,5 L11,5 C11.553,5 12,4.553 12,4 L12,3.25 C12,2.836 11.664,2.5 11.25,2.5 C11.664,2.5 12,2.164 12,1.75 Z M10,4 L11,4 L11,3 L10,3 L10,4 Z M10,2 L11,2 L11,1 L10,1 L10,2 Z M13,4 C13,4.553 13.447,5 14,5 L15,5 C15.553,5 16,4.553 16,4 L16,3.25 L15,3.25 L15,4 L14,4 L14,1 L15,1 L15,1.75 L16,1.75 L16,1 C16,0.447 15.553,0 15,0 L14,0 C13.447,0 13,0.447 13,1 L13,4 Z M7,0 L6,0 C5.447,0 5,0.447 5,1 L5,5 L6,5 L6,4 L7,4 L7,5 L8,5 L8,1 C8,0.447 7.553,0 7,0 Z M6,3 L7,3 L7,1 L6,1 L6,3 Z" transform="translate(1 1)"/>
</g><g transform="translate(274,18)"><path fill="#000000" fill-rule="evenodd" d="M3.73243561,3 C3.38662619,3.59780137 2.74028236,4 2,4 C0.8954305,4 8.8817842e-16,3.1045695 8.8817842e-16,2 C8.8817842e-16,0.8954305 0.8954305,0 2,0 C2.74028236,0 3.38662619,0.40219863 3.73243561,1 L10,1 L10,3 L3.73243561,3 Z M4.00183105,8 C3.95133866,8 3.83224929,8.00708433 3.670281,8.0295662 C3.39764759,8.06740886 3.12698029,8.13503441 2.88533098,8.2356602 C2.29317848,8.48223991 2,8.84848947 2,9.5 C2,10.1515105 2.29317848,10.5177601 2.88533098,10.7643398 C3.12698029,10.8649656 3.39764759,10.9325911 3.670281,10.9704338 C3.83224929,10.9929157 3.95133866,11 4.00183105,11 L10.2675644,11 C10.6133738,10.4021986 11.2597176,10 12,10 C13.1045695,10 14,10.8954305 14,12 C14,13.1045695 13.1045695,14 12,14 C11.2597176,14 10.6133738,13.5978014 10.2675644,13 L4,13 L4,11 L4.00183105,11 L4.00183105,13 C3.50631274,13 2.8240725,12.9053022 2.11650007,12.6106602 C0.832508167,12.0759899 0,11.0359895 0,9.5 C-2.66453526e-15,7.96401053 0.832508167,6.92401009 2.11650007,6.3893398 C2.8240725,6.09469779 3.50631274,6 4.00183105,6 L4.00183105,8 L4,8 L4,6 L10,6 L10,8 L4.00183091,8 Z M10.3315501,3.0295662 C10.6041835,3.06740886 10.8748508,3.13503441 11.1165001,3.2356602 C11.7086526,3.48223991 12.0018311,3.84848947 12.0018311,4.5 C12.0018311,5.15151053 11.7086526,5.51776009 11.1165001,5.7643398 C10.8748508,5.86496559 10.6041835,5.93259114 10.3315501,5.9704338 C10.1695818,5.99291567 10.0504924,6 10,6 L10,8 C10.4955183,8 11.1777586,7.90530221 11.885331,7.6106602 C13.1693229,7.07598991 14.0018311,6.03598947 14.0018311,4.5 C14.0018311,2.96401053 13.1693229,1.92401009 11.885331,1.3893398 C11.1777586,1.09469779 10.4955183,1 10,1 L10,3 C10.0504924,3 10.1695818,3.00708433 10.3315501,3.0295662 Z" transform="translate(2 2)"/>
</g><g transform="translate(72,72)"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<polygon points="0 0 18 0 18 18 0 18"/>
<path d="M16.5694737,11 L11.5147368,2 L6.47473684,2 L6.47473684,2.0075 L11.5221053,11 L16.5694737,11 Z M7.32210526,12 L4.79473684,16 L14.4621053,16 L16.9894737,12 L7.32210526,12 Z M1,11.5789474 L3.52,15.9926316 L8.2906993,7.63467097 L5.83368421,3.12 L1,11.5789474 Z" fill="#000000"/>
</g>
</g><g transform="translate(464,148)"><defs>
<polygon id="mask-a" points="16 0 0 0 0 16 16 16"/>
</defs>
<g fill="none" fill-rule="evenodd" transform="translate(1 1)">
<mask id="mask-b" fill="#fff">
<use xlink:href="#mask-a"/>
</mask>
<path fill="#000" fill-rule="nonzero" d="M10.5,12.5 L5.5,12.5 L3,8 L5.5,3.5 L10.5,3.5 L13,8 L10.5,12.5 Z M1.77781818,-0.000363636364 C0.795272727,-0.000363636364 0.000363636364,0.795272727 0.000363636364,1.77781818 L0.000363636364,14.2221818 C0.000363636364,15.2047273 0.795272727,15.9996364 1.77781818,15.9996364 L14.2221818,15.9996364 C15.2047273,15.9996364 16.0003636,15.2047273 16.0003636,14.2221818 L16.0003636,1.77781818 C16.0003636,0.795272727 15.2047273,-0.000363636364 14.2221818,-0.000363636364 L1.77781818,-0.000363636364 Z" mask="url(#mask-b)"/>
</g>
</g><g transform="translate(180,36)"><path fill="#000000" fill-rule="evenodd" d="M2,12 L2,14 L12,14 L12,12 L2,12 Z M2,4 L2,6 L12,6 L12,4 L2,4 Z M0,10 L14,10 L14,8 L0,8 L0,10 Z M0,0 L0,2 L14,2 L14,0 L0,0 Z" transform="translate(2 2)"/>
</g><g transform="translate(364,220)"><polygon fill="#FFFFFF" fill-rule="evenodd" points="16 7 3.83 7 9.42 1.41 8 0 0 8 8 16 9.41 14.59 3.83 9 16 9" transform="translate(4 4)"/>
</g><g transform="translate(500,112)"><path fill="#000000" fill-rule="evenodd" d="M9,2 L7,0 L1,0 C0.45,0 0,0.45 0,1 L0,13 C0,13.55 0.45,14 1,14 L15,14 C15.55,14 16,13.55 16,13 L16,3 C16,2.45 15.55,2 15,2 L9,2 Z" transform="translate(1 2)"/>
</g><g transform="translate(252,324)"><path fill="#4285F4" fill-rule="evenodd" d="M0.01,1 L0,15 C0,15.55 0.44,16 1,16 L11,16 C11.55,16 12,15.55 12,15 L12,5 L7,0 L1,0 C0.45,0 0.01,0.45 0.01,1 Z M7,5 L7,1 L11,5 L7,5 L7,5 Z" transform="translate(3 1)"/>
</g><g transform="translate(36,18)"><g fill="none" fill-rule="evenodd" transform="rotate(90 9 9)">
<polygon points="0 0 18 0 18 18 0 18"/>
<path fill="#000" d="M2,16 L4,16 L4,14 L2,14 L2,16 L2,16 Z M8,16 L10,16 L10,14 L8,14 L8,16 L8,16 Z M5,16 L7,16 L7,14 L5,14 L5,16 L5,16 Z M2,13 L4,13 L4,11 L2,11 L2,13 L2,13 Z M2,7 L4,7 L4,5 L2,5 L2,7 L2,7 Z M2,10 L4,10 L4,8 L2,8 L2,10 L2,10 Z M14,10 L16,10 L16,8 L14,8 L14,10 L14,10 Z M14,13 L16,13 L16,11 L14,11 L14,13 L14,13 Z M14,7 L16,7 L16,5 L14,5 L14,7 L14,7 Z M11,16 L13,16 L13,14 L11,14 L11,16 L11,16 Z M14,16 L16,16 L16,14 L14,14 L14,16 L14,16 Z" opacity=".54"/>
<polygon fill="#000" points="2 2 2 4 16 4 16 2"/>
</g>
</g><g transform="translate(436,342)"><path fill="#FFFFFF" fill-rule="evenodd" d="M1.00684547,0 C0.450780073,0 1.57717987e-15,0.447449351 1.57717987e-15,1.0068708 C1.57717987e-15,1.0068708 1.57717987e-15,0.795555556 1.57717987e-15,1.77777778 L1.57717987e-15,12.4444444 C1.57717987e-15,13.4266667 -1.20058952e-09,12.9909959 -1.20058952e-09,12.9909959 C-6.73340566e-09,13.5482535 0.443716635,14 0.999807483,14 L5,14 L7,16 L9,14 L12.1307373,14 L12.9927192,14 C13.549025,14 14,13.5505095 14,12.9998043 L14,1.77777778 C14,0.795555556 14,1.0068708 14,1.0068708 C14,0.45079141 13.5500512,0 12.9931545,0 L1.00684547,0 Z M7,12 L5.796875,8.375 L2.625,7 L5.796875,5.625 L7,2 L8.203125,5.625 L11.375,7 L8.203125,8.375 L7,12 Z" transform="translate(2 1)"/>
</g><g transform="translate(382,0)"><rect width="14" height="2" fill="#000000" fill-rule="evenodd" transform="translate(2 8)"/>
</g><g transform="translate(0,54)"><path fill="#000000" fill-rule="evenodd" d="M17.86,10 L11.97,0 L6.71,0 L12.6,10 L17.86,10 L17.86,10 Z M4.71,16 L15.24,16 L17.85,11 L7.29,11 L4.71,16 L4.71,16 Z M5.63,1.45 L0.14,11.45 L2.8,16 L8.28,6.02 L5.63,1.45 L5.63,1.45 Z" transform="translate(0 1)" opacity=".54"/>
</g><g transform="translate(162,234)"><path fill="#FFFFFF" fill-rule="evenodd" d="M14.0074653,8.784 C14.0394653,8.528 14.0634653,8.272 14.0634653,8 C14.0634653,7.728 14.0394653,7.472 14.0074653,7.216 L15.6954653,5.896 C15.8474653,5.776 15.8874653,5.56 15.7914653,5.384 L14.1914653,2.616 C14.0954653,2.44 13.8794653,2.376 13.7034653,2.44 L11.7114653,3.24 C11.2954653,2.92 10.8474653,2.656 10.3594653,2.456 L10.0554653,0.336 C10.0314653,0.144 9.86346525,0 9.66346525,0 L6.46346525,0 C6.26346525,0 6.09546525,0.144 6.07146525,0.336 L5.76746525,2.456 C5.27946525,2.656 4.83146525,2.928 4.41546525,3.24 L2.42346525,2.44 C2.23946525,2.368 2.03146525,2.44 1.93546525,2.616 L0.335465255,5.384 C0.231465255,5.56 0.279465255,5.776 0.431465255,5.896 L2.11946525,7.216 C2.08746525,7.472 2.06346525,7.736 2.06346525,8 C2.06346525,8.264 2.08746525,8.528 2.11946525,8.784 L0.431465255,10.104 C0.279465255,10.224 0.239465255,10.44 0.335465255,10.616 L1.93546525,13.384 C2.03146525,13.56 2.24746525,13.624 2.42346525,13.56 L4.41546525,12.76 C4.83146525,13.08 5.27946525,13.344 5.76746525,13.544 L6.07146525,15.664 C6.09546525,15.856 6.26346525,16 6.46346525,16 L9.66346525,16 C9.86346525,16 10.0314653,15.856 10.0554653,15.664 L10.3594653,13.544 C10.8474653,13.344 11.2954653,13.072 11.7114653,12.76 L13.7034653,13.56 C13.8874653,13.632 14.0954653,13.56 14.1914653,13.384 L15.7914653,10.616 C15.8874653,10.44 15.8474653,10.224 15.6954653,10.104 L14.0074653,8.784 L14.0074653,8.784 Z M8,11 C6.34571429,11 5,9.65428571 5,8 C5,6.34571429 6.34571429,5 8,5 C9.65428571,5 11,6.34571429 11,8 C11,9.65428571 9.65428571,11 8,11 L8,11 Z" transform="translate(1 1)"/>
</g><g transform="translate(234,90)"><path fill="#000000" fill-rule="evenodd" d="M4,6 L4,11 L6,11 L6,1 L7,1 L7,11 L9,11 L9,1 L10,1 L10,0 L4,0 C2.34,0 1,1.34 1,3 C1,4.66 2.34,6 4,6 Z M0,14 L3,11 L3,13 L14,13 L14,15 L3,15 L3,17 L0,14 Z" transform="translate(2 1)"/>
</g><g transform="translate(400,342)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 2)">
<path d="M0,14 L2,14 L2,12 L0,12 L0,14 L0,14 Z M2,3 L0,3 L0,5 L2,5 L2,3 L2,3 Z M3,14 L5,14 L5,12 L3,12 L3,14 L3,14 Z M11,0 L9,0 L9,2 L11,2 L11,0 L11,0 Z M2,0 L0,0 L0,2 L2,2 L2,0 L2,0 Z M5,0 L3,0 L3,2 L5,2 L5,0 L5,0 Z M0,11 L2,11 L2,9 L0,9 L0,11 L0,11 Z M9,14 L11,14 L11,12 L9,12 L9,14 L9,14 Z M12,0 L12,2 L14,2 L14,0 L12,0 L12,0 Z M12,5 L14,5 L14,3 L12,3 L12,5 L12,5 Z M12,14 L14,14 L14,12 L12,12 L12,14 L12,14 Z M12,11 L14,11 L14,9 L12,9 L12,11 L12,11 Z" opacity=".54"/>
<polygon points="8 0 6 0 6 6 0 6 0 8 6 8 6 14 8 14 8 8 14 8 14 6 8 6"/>
</g>
</g><g transform="translate(126,270)"><path fill="#3F51B5" fill-rule="evenodd" d="M15,0 L1,0 C0.5,0 0,0.5 0,1 L0,15 C0,15.5 0.5,16 1,16 L15,16 C15.5,16 16,15.5 16,15 L16,1 C16,0.5 15.5,0 15,0 Z M2,3 L14,3 L14,6 L2,6 L2,3 Z M2,7 L9,7 L9,13 L2,13 L2,7 Z M10,7 L14,7 L14,13 L10,13 L10,7 Z" transform="translate(1 1)"/>
</g><g transform="translate(572,180)"><path fill="#000000" fill-rule="evenodd" d="M15,0 C15.55,0 16,0.45 16,1 L16,15 C16,15.55 15.55,16 15,16 L1,16 C0.45,16 0,15.55 0,15 L0,1 C0,0.45 0.45,0 1,0 L15,0 Z M2,2 L2,14 L14,14 L14,2 L2,2 Z M6,12 L4,12 L4,7 L6,7 L6,12 L6,12 Z M9,12 L7,12 L7,4 L9,4 L9,12 L9,12 Z M12,12 L10,12 L10,8 L12,8 L12,12 L12,12 Z" transform="translate(1 1)"/>
</g><g transform="translate(180,342)"><path fill-rule="evenodd" d="M1,4.00247329 C1,3.44882258 1.44463086,3 2.00087166,3 L15.9991283,3 C16.5518945,3 17,3.45576096 17,4.00247329 L17,13.9975267 C17,14.5511774 16.5553691,15 15.9991283,15 L2.00087166,15 C1.4481055,15 1,14.544239 1,13.9975267 L1,4.00247329 Z M5,11 L5,13 L13,13 L13,11 L5,11 Z M2,5 L2,7 L4,7 L4,5 L2,5 Z M5,5 L5,7 L7,7 L7,5 L5,5 Z M8,5 L8,7 L10,7 L10,5 L8,5 Z M11,5 L11,7 L13,7 L13,5 L11,5 Z M14,5 L14,7 L16,7 L16,5 L14,5 Z M2,8 L2,10 L4,10 L4,8 L2,8 Z M5,8 L5,10 L7,10 L7,8 L5,8 Z M8,8 L8,10 L10,10 L10,8 L8,8 Z M11,8 L11,10 L13,10 L13,8 L11,8 Z M14,8 L14,10 L16,10 L16,8 L14,8 Z"/>
</g><g transform="translate(428,112)"><path fill="#000000" fill-rule="evenodd" d="M11,8 L7,8 L7,12 L11,12 L11,8 L11,8 Z M13,1 L12,1 L12,0 L10,0 L10,1 L4,1 L4,0 L2,0 L2,1 L1,1 C0.45,1 0,1.45 0,2 L0,14 C0,14.55 0.45,15 1,15 L13,15 C13.55,15 14,14.55 14,14 L14,2 C14,1.45 13.55,1 13,1 L13,1 Z M12,13 L2,13 L2,5 L12,5 L12,13 L12,13 Z" transform="translate(2 1)"/>
</g><g transform="translate(144,234)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L0,2 L12,2 L12,0 L0,0 L0,0 Z M2.5,7 L5,7 L5,14 L7,14 L7,7 L9.5,7 L6,3.5 L2.5,7 L2.5,7 Z" transform="translate(3 2)"/>
</g><g transform="translate(328,280)"><path d="M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM18 14H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z"/>
<path d="M0 0h24v24H0z" fill="none"/>
</g><g transform="translate(428,130)"><path fill="#000000" fill-rule="evenodd" d="M7,0 C3.134,0 0,3.133 0,7 C0,10.865 3.134,14 7,14 C10.866,14 14,10.865 14,7 C14,3.133 10.866,0 7,0 L7,0 Z M12.2,7 C12.2,8.074 11.874,9.072 11.315,9.9 L4.099,2.684 C4.928,2.125 5.926,1.799 7,1.799 C9.873,1.799 12.2,4.127 12.2,7 L12.2,7 Z M1.8,7 C1.8,5.926 2.126,4.928 2.685,4.098 L9.902,11.315 C9.073,11.874 8.075,12.2 7.001,12.2 C4.127,12.199 1.8,9.873 1.8,7 L1.8,7 Z" transform="translate(2 2)"/>
</g><g transform="translate(162,378)"><defs><linearGradient id="a" x1="50.005%" x2="50.005%" y1="8.586%" y2="100.014%"><stop stop-color="#263238" stop-opacity=".2" offset="0%"/><stop stop-color="#263238" stop-opacity=".02" offset="100%"/></linearGradient><radialGradient id="b" cx="3.168%" cy="2.718%" r="161.248%" fx="3.168%" fy="2.718%" gradientTransform="matrix(1 0 0 .72222 0 .008)"><stop stop-color="#FFF" offset="0%"/><stop stop-color="#FFF" stop-opacity="0" offset="100%"/></radialGradient></defs><g fill="none" fill-rule="evenodd"><path fill="#0F9D58" d="M9.5 2H24l9 9v24.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C8.11928813 38 7 36.8807119 7 35.5v-31C7 3.11928813 8.11928813 2 9.5 2z"/><path fill="#263238" fill-opacity=".1" d="M7 35c0 1.3807119 1.11928813 2.5 2.5 2.5h21c1.3807119 0 2.5-1.1192881 2.5-2.5v.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C8.11928813 38 7 36.8807119 7 35.5V35z"/><path fill="#FFF" fill-opacity=".2" d="M9.5 2H24v.5H9.5C8.11928813 2.5 7 3.61928813 7 5v-.5C7 3.11928813 8.11928813 2 9.5 2z"/><path fill="url(#a)" fill-rule="nonzero" d="M17.5 8l8.5 8.5V9" transform="translate(7 2)"/><path fill="#87CEAC" d="M24 2l9 9h-6.5C25.1192881 11 24 9.88071187 24 8.5V2z"/><path fill="#F1F1F1" d="M13 18h14v14H13V18zm2 2v2h4v-2h-4zm0 4v2h4v-2h-4zm0 4v2h4v-2h-4zm6-8v2h4v-2h-4zm0 4v2h4v-2h-4zm0 4v2h4v-2h-4z"/><path fill="url(#b)" fill-opacity=".1" d="M2.5 0H17l9 9v24.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C1.11928813 36 0 34.8807119 0 33.5v-31C0 1.11928813 1.11928813 0 2.5 0z" transform="translate(7 2)"/></g></g><g transform="translate(90,378)"><defs><linearGradient id="a" x1="50.005%" x2="50.005%" y1="8.586%" y2="100.014%"><stop stop-color="#BF360C" stop-opacity=".2" offset="0%"/><stop stop-color="#BF360C" stop-opacity=".02" offset="100%"/></linearGradient><radialGradient id="b" cx="3.168%" cy="2.718%" r="161.248%" fx="3.168%" fy="2.718%" gradientTransform="matrix(1 0 0 .72222 0 .008)"><stop stop-color="#FFF" offset="0%"/><stop stop-color="#FFF" stop-opacity="0" offset="100%"/></radialGradient></defs><g fill="none" fill-rule="evenodd"><path fill="#F4B400" d="M9.5 2H24l9 9v24.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C8.11928813 38 7 36.8807119 7 35.5v-31C7 3.11928813 8.11928813 2 9.5 2z"/><path fill="#BF360C" fill-opacity=".2" d="M7 35c0 1.3807119 1.11928813 2.5 2.5 2.5h21c1.3807119 0 2.5-1.1192881 2.5-2.5v.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C8.11928813 38 7 36.8807119 7 35.5V35z"/><path fill="#FFF" fill-opacity=".2" d="M9.5 2H24v.5H9.5C8.11928813 2.5 7 3.61928813 7 5v-.5C7 3.11928813 8.11928813 2 9.5 2z"/><path fill="url(#a)" fill-rule="nonzero" d="M17.5 8l8.5 8.5V9" transform="translate(7 2)"/><path fill="#FADA80" d="M24 2l9 9h-6.5C25.1192881 11 24 9.88071187 24 8.5V2z"/><path fill="#F1F1F1" d="M14.5 18h11c.8284271 0 1.5.6715729 1.5 1.5v11c0 .8284271-.6715729 1.5-1.5 1.5h-11c-.82842712 0-1.5-.6715729-1.5-1.5v-11c0-.8284271.67157288-1.5 1.5-1.5zm.5 4v6h10v-6H15z"/><path fill="url(#b)" fill-opacity=".1" d="M2.5 0H17l9 9v24.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C1.11928813 36 0 34.8807119 0 33.5v-31C0 1.11928813 1.11928813 0 2.5 0z" transform="translate(7 2)"/></g></g><g transform="translate(72,108)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L6,0 L6,2 L0,2 L0,0 Z M0,4 L6,4 L6,6 L0,6 L0,4 Z M8,0 L14,0 L14,2 L8,2 L8,0 Z M8,4 L14,4 L14,6 L8,6 L8,4 Z M0,8 L6,8 L6,10 L0,10 L0,8 Z M8,8 L14,8 L14,10 L8,10 L8,8 Z M0,12 L6,12 L6,14 L0,14 L0,12 Z M8,12 L14,12 L14,14 L8,14 L8,12 Z" transform="translate(2 2)"/>
</g><g transform="translate(274,72)"><polygon fill="#000000" fill-rule="evenodd" points="8.44 .44 5 3.88 1.56 .44 .5 1.5 5 6 9.5 1.5" transform="translate(4 6)"/>
</g><g transform="translate(126,198)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 3)">
<polygon points="5 0 .5 12 5 12 6.12 9 8.37 9 9.49 12 13.99 12 9.5 0" opacity=".3"/>
<path d="M6.5,0 L4.5,0 L0,12 L2,12 L3.12,9 L7.87,9 L8.99,12 L10.99,12 L6.5,0 L6.5,0 Z M3.88,7 L5.5,2.67 L7.12,7 L3.88,7 L3.88,7 Z"/>
</g>
</g><g transform="translate(36,378)"><polygon fill="#000000" fill-rule="evenodd" points="8 0 6.59 1.41 12.17 7 0 7 0 9 12.17 9 6.59 14.59 8 16 16 8" transform="translate(4 4)"/>
</g><g transform="translate(18,234)"><polygon fill="#000000" fill-rule="evenodd" points="4 0 4 2 6.58 2 2.92 10 0 10 0 12 8 12 8 10 5.42 10 9.08 2 12 2 12 0" transform="translate(3 3)"/>
</g><g transform="translate(72,54)"><polygon fill="#F4B400" fill-rule="evenodd" points="8 11.953 13 15 11 9.5 15.5 6 10 6 8 .5 6 6 .5 6 5 9.5 3 15" transform="translate(1 1)"/>
</g><g transform="translate(328,184)"><path fill="#F44336" fill-rule="evenodd" d="M12,3 L12,0 L0,0 L0,12 L3,12 L3,3 L12,3 Z M4,4 L16,4 L16,16 L4,16 L4,4 Z" transform="translate(1 1)"/>
</g><g transform="translate(500,202)"><path fill="#000000" fill-rule="evenodd" d="M10,5 L10,4 C10,1.5 8.07,0 6,0 C3.93,0 2,1.5 2,4 L2,5 L1.5,5 C0.67125,5 0,5.67125 0,6.5 L0,13.5 C0,14.32875 0.67125,15 1.5,15 L10.5,15 C11.32875,15 12,14.32875 12,13.5 L12,6.5 C12,5.67125 11.32875,5 10.5,5 L10,5 Z M4,10 C4,8.895 4.895,8 6,8 C7.105,8 8,8.895 8,10 C8,11.105 7.105,12 6,12 C4.895,12 4,11.105 4,10 Z M4,5 L4,4 C4,3 4.7175,2 6,2 C7.2825,2 8,3 8,4 L8,5 L4,5 Z" transform="translate(3 1)"/>
</g><g transform="translate(54,54)"><path fill="#000000" fill-rule="evenodd" d="M4.24826564,3.00916134 C3.49176891,3.00916134 2.39690508,3.00916134 2.10880344,3.00916134 C2.54373837,1.10900675 4.22011554,0 6,0 C8.07,0 10,1.5 10,4 L10,5 L10.5,5 C11.32875,5 12,5.67125 12,6.5 L12,13.5 C12,14.32875 11.32875,15 10.5,15 L1.5,15 C0.67125,15 0,14.32875 0,13.5 L0,6.5 C0,5.67125 0.67125,5 1.5,5 L2,5 L4.5,5 L8,5 L8,4 C8,3 7.2825,2 6,2 C5.15846,2 4.56018701,2.43056109 4.24826564,3.00916134 Z M4,10 C4,8.895 4.895,8 6,8 C7.105,8 8,8.895 8,10 C8,11.105 7.105,12 6,12 C4.895,12 4,11.105 4,10 Z" transform="translate(3 1)"/>
</g><g transform="translate(270,234)"><path fill="#000000" fill-rule="evenodd" d="M0,14 L14,14 L14,12 L0,12 L0,14 Z M0,10 L14,10 L14,8 L0,8 L0,10 Z M0,0 L0,2 L14,2 L14,0 L0,0 Z M0,6 L14,6 L14,4 L0,4 L0,6 Z" transform="translate(2 2)"/>
</g><g transform="translate(364,0)"><path fill="#000000" fill-rule="evenodd" d="M17.86,10 L11.97,0 L6.71,0 L12.6,10 L17.86,10 L17.86,10 Z M4.71,16 L15.24,16 L17.85,11 L7.29,11 L4.71,16 L4.71,16 Z M5.63,1.45 L0.14,11.45 L2.8,16 L8.28,6.02 L5.63,1.45 L5.63,1.45 Z" transform="translate(0 1)" opacity=".54"/>
</g><g transform="translate(202,378)"><path fill="#000000" fill-rule="evenodd" d="M3,6 L1,6 L1,2 L8,2 L8,4 L3,4 L3,6 Z M10,4 L10,2 L17,2 L17,6 L15,6 L15,4 L10,4 Z M10,14 L15,14 L15,12 L17,12 L17,16 L10,16 L10,14 Z M1,12 L3,12 L3,14 L8,14 L8,16 L1,16 L1,12 Z M1,8 L5,8 L5,6 L8,9 L5,12 L5,10 L1,10 L1,8 Z M10,9 L13,6 L13,8 L17,8 L17,10 L13,10 L13,12 L10,9 Z"/>
</g><g transform="translate(90,306)"><polygon fill="#000000" fill-rule="evenodd" points="0 6 1.5 7.5 6 3 10.5 7.5 12 6 6 0" transform="translate(3 5)"/>
</g><g transform="translate(108,90)"><path fill="#000000" fill-rule="evenodd" d="M17.86,10 L11.97,0 L6.71,0 L12.6,10 L17.86,10 L17.86,10 Z M4.71,16 L15.24,16 L17.85,11 L7.29,11 L4.71,16 L4.71,16 Z M5.63,1.45 L0.14,11.45 L2.8,16 L8.28,6.02 L5.63,1.45 L5.63,1.45 Z" transform="translate(0 1)" opacity=".38"/>
</g><g transform="translate(500,72)"><path fill="#000000" fill-rule="evenodd" d="M8,5 L8,0 L4,0 L4,5 L0.75,5 L6,10 L11.25,5 L8,5 Z M1,13 L11,13 L11,11 L1,11 L1,13 Z" transform="translate(3 2)"/>
</g><g transform="translate(454,360)"><polygon fill="#000000" fill-rule="evenodd" points="0 0 0 8 2 8 2 15 7 6 4 6 7 0" transform="translate(6 2)"/>
</g><g transform="translate(428,148)"><path fill="#010101" fill-rule="evenodd" d="M2,12 L2,-8.8817842e-16 L0,-8.8817842e-16 L0,13 L0,14 L14,14 L14,12 L2,12 Z" transform="translate(2 2)"/>
</g><g transform="translate(180,306)"><polygon fill="#4285F4" fill-opacity=".78" fill-rule="evenodd" points="0 5 5 10 10 5 5 0" transform="translate(4 4)"/>
</g><g transform="translate(518,94)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 2)">
<path d="M6,8 L8,8 L8,6 L6,6 L6,8 L6,8 Z M6,5 L8,5 L8,3 L6,3 L6,5 L6,5 Z M6,11 L8,11 L8,9 L6,9 L6,11 L6,11 Z M6,14 L8,14 L8,12 L6,12 L6,14 L6,14 Z M3,14 L5,14 L5,12 L3,12 L3,14 L3,14 Z M3,2 L5,2 L5,0 L3,0 L3,2 L3,2 Z M3,8 L5,8 L5,6 L3,6 L3,8 L3,8 Z M12,14 L14,14 L14,12 L12,12 L12,14 L12,14 Z M12,8 L14,8 L14,6 L12,6 L12,8 L12,8 Z M12,11 L14,11 L14,9 L12,9 L12,11 L12,11 Z M12,5 L14,5 L14,3 L12,3 L12,5 L12,5 Z M6,2 L8,2 L8,0 L6,0 L6,2 L6,2 Z M12,0 L12,2 L14,2 L14,0 L12,0 L12,0 Z M9,14 L11,14 L11,12 L9,12 L9,14 L9,14 Z M9,8 L11,8 L11,6 L9,6 L9,8 L9,8 Z M9,2 L11,2 L11,0 L9,0 L9,2 L9,2 Z" opacity=".54"/>
<polygon points="0 14 2 14 2 0 0 0"/>
</g>
</g><g transform="translate(572,324)"><path fill="#000000" fill-rule="evenodd" d="M11,6 L4,6 L4,8 L11,8 L11,10 L14,7 L11,4 L11,6 Z M0,0 L2,0 L2,14 L0,14 L0,0 Z M7,0 L9,0 L9,4 L7,4 L7,0 Z M7,10 L9,10 L9,14 L7,14 L7,10 Z" transform="translate(2 2)"/>
</g><g transform="translate(198,90)"><path fill="#000000" fill-rule="evenodd" d="M0,1.0093689 C0,0.451909848 0.443353176,0 1.0093689,0 L2.9906311,0 C3.54809015,0 4,0.443353176 4,1.0093689 L4,2.9906311 C4,3.54809015 3.55664682,4 2.9906311,4 L1.0093689,4 C0.451909848,4 0,3.55664682 0,2.9906311 L0,1.0093689 Z M6,1 L14,1 L14,3 L6,3 L6,1 Z M6,7 L14,7 L14,9 L6,9 L6,7 Z M0,7.0093689 C0,6.45190985 0.443353176,6 1.0093689,6 L2.9906311,6 C3.54809015,6 4,6.44335318 4,7.0093689 L4,8.9906311 C4,9.54809015 3.55664682,10 2.9906311,10 L1.0093689,10 C0.451909848,10 0,9.55664682 0,8.9906311 L0,7.0093689 Z" transform="translate(2 4)"/>
</g><g transform="translate(446,220)"><polygon fill="#000000" fill-rule="evenodd" points="0 0 4 4 8 0" transform="translate(5 7)"/>
</g><g transform="translate(274,90)"><path fill="#000000" fill-rule="evenodd" d="M2,10 L4,12 L4,16 L10,16 L10,12 L12,10 L12,6 L2,6 L2,10 Z M6,0 L8,0 L8,3 L6,3 L6,0 Z M12.5,1 L14,2.5 L12,4.5 L10.5,3 L12.5,1 Z M-6.20335912e-15,2.5 L1.5,1 L3.5,3 L2,4.5 L-6.20335912e-15,2.5 Z" transform="translate(2 1)"/>
</g><g transform="translate(328,262)"><path fill="#0F9D58" fill-rule="evenodd" d="M1.00684547,0 C0.450780073,0 1.57717987e-15,0.447449351 1.57717987e-15,1.0068708 C1.57717987e-15,1.0068708 1.57717987e-15,0.795555556 1.57717987e-15,1.77777778 L1.57717987e-15,12.4444444 C1.57717987e-15,13.4266667 -1.20058952e-09,12.9909959 -1.20058952e-09,12.9909959 C-6.73340566e-09,13.5482535 0.443716635,14 0.999807483,14 L5,14 L7,16 L9,14 L12.1307373,14 L12.9927192,14 C13.549025,14 14,13.5505095 14,12.9998043 L14,1.77777778 C14,0.795555556 14,1.0068708 14,1.0068708 C14,0.45079141 13.5500512,0 12.9931545,0 L1.00684547,0 Z M7,12 L5.796875,8.375 L2.625,7 L5.796875,5.625 L7,2 L8.203125,5.625 L11.375,7 L8.203125,8.375 L7,12 Z" transform="translate(2 1)"/>
</g><g transform="translate(292,360)"><path d="M15.2222222,1 L2.77777778,1 C1.79111111,1 1,1.8 1,2.77777778 L1,15.2222222 C1,16.2 1.79111111,17 2.77777778,17 L15.2222222,17 C16.2088889,17 17,16.2 17,15.2222222 L17,2.77777778 C17,1.8 16.2088889,1 15.2222222,1 Z M7.22222222,13.4444444 L2.77777778,9 L4.03111111,7.74666667 L7.22222222,10.9288889 L13.9688889,4.18222222 L15.2222222,5.44444444 L7.22222222,13.4444444 Z"/>
</g><g transform="translate(18,0)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 2)">
<path d="M3,8 L5,8 L5,6 L3,6 L3,8 L3,8 Z M0,14 L2,14 L2,12 L0,12 L0,14 L0,14 Z M6,14 L8,14 L8,12 L6,12 L6,14 L6,14 Z M6,11 L8,11 L8,9 L6,9 L6,11 L6,11 Z M3,14 L5,14 L5,12 L3,12 L3,14 L3,14 Z M0,11 L2,11 L2,9 L0,9 L0,11 L0,11 Z M6,8 L8,8 L8,6 L6,6 L6,8 L6,8 Z M0,5 L2,5 L2,3 L0,3 L0,5 L0,5 Z M0,8 L2,8 L2,6 L0,6 L0,8 L0,8 Z M12,8 L14,8 L14,6 L12,6 L12,8 L12,8 Z M12,11 L14,11 L14,9 L12,9 L12,11 L12,11 Z M12,5 L14,5 L14,3 L12,3 L12,5 L12,5 Z M6,5 L8,5 L8,3 L6,3 L6,5 L6,5 Z M9,14 L11,14 L11,12 L9,12 L9,14 L9,14 Z M9,8 L11,8 L11,6 L9,6 L9,8 L9,8 Z M12,14 L14,14 L14,12 L12,12 L12,14 L12,14 Z" opacity=".54"/>
<polygon points="0 0 0 2 14 2 14 0"/>
</g>
</g><g transform="translate(446,256)"><path fill="#010101" fill-rule="evenodd" d="M2.8875,3.06 C2.8875,2.6025 2.985,2.18625 3.18375,1.8075 C3.3825,1.42875 3.66,1.10625 4.02,0.84 C4.38,0.57375 4.80375,0.3675 5.29875,0.22125 C5.79375,0.075 6.33375,0 6.92625,0 C7.53375,0 8.085,0.0825 8.58,0.25125 C9.075,0.42 9.49875,0.6525 9.85125,0.95625 C10.20375,1.25625 10.47375,1.6125 10.665,2.02875 C10.85625,2.44125 10.95,2.895 10.95,3.38625 L8.6925,3.38625 C8.6925,3.1575 8.655,2.94375 8.58375,2.74875 C8.5125,2.55 8.4,2.38125 8.25,2.2425 C8.1,2.10375 7.9125,1.99125 7.6875,1.91625 C7.4625,1.8375 7.19625,1.8 6.88875,1.8 C6.5925,1.8 6.3375,1.83375 6.11625,1.8975 C5.89875,1.96125 5.71875,2.05125 5.57625,2.1675 C5.43375,2.28375 5.325,2.41875 5.25375,2.5725 C5.1825,2.72625 5.145,2.895 5.145,3.0675 C5.145,3.4275 5.32875,3.73125 5.69625,3.975 C5.71780203,3.98908066 5.73942012,4.00311728 5.76118357,4.01733315 C6.02342923,4.18863185 6.5,4.5 7,5 L4,5 C4,5 3.21375,4.37625 3.17625,4.30875 C2.985,3.9525 2.8875,3.53625 2.8875,3.06 Z M14,6 L0,6 L0,8 L7.21875,8 C7.35375,8.0525 7.51875,8.105 7.63125,8.15375 C7.90875,8.2775 8.12625,8.40875 8.28375,8.53625 C8.44125,8.6675 8.54625,8.81 8.6025,8.96 C8.65875,9.11375 8.685,9.28625 8.685,9.47375 C8.685,9.65 8.65125,9.815 8.58375,9.965 C8.51625,10.11875 8.41125,10.25 8.2725,10.35875 C8.13375,10.4675 7.95375,10.55375 7.74,10.6175 C7.5225,10.68125 7.27125,10.71125 6.97875,10.71125 C6.6525,10.71125 6.35625,10.6775 6.09,10.61375 C5.82375,10.55 5.59875,10.445 5.41125,10.3025 C5.22375,10.16 5.0775,9.9725 4.9725,9.74375 C4.8675,9.515 4.78125,9.17 4.78125,9 L2.55,9 C2.55,9.2525 2.61,9.6875 2.72625,10.025 C2.8425,10.3625 3.0075,10.66625 3.21375,10.9325 C3.42,11.19875 3.6675,11.4275 3.94875,11.6225 C4.23,11.8175 4.53375,11.9825 4.86375,12.11 C5.19375,12.24125 5.535,12.33875 5.89875,12.39875 C6.25875,12.4625 6.6225,12.4925 6.9825,12.4925 C7.5825,12.4925 8.13,12.425 8.6175,12.28625 C9.105,12.1475 9.525,11.94875 9.87,11.69375 C10.215,11.435 10.48125,11.12 10.6725,10.74125 C10.86375,10.3625 10.95375,9.935 10.95375,9.455 C10.95375,9.005 10.875,8.6 10.72125,8.24375 C10.68375,8.1575 10.6425,8.075 10.59375,7.9925 L14,8 L14,6 Z" transform="translate(2 3)"/>
</g><g transform="translate(274,36)"><path fill="#000000" fill-rule="evenodd" d="M13.5,3 L11.25,3 L9.75,0 L8.25,0 L9.75,3 L7.5,3 L6,0 L4.5,0 L6,3 L3.75,3 L2.25,0 L1.5,0 C0.67125,0 0.0075,0.67125 0.0075,1.5 L0,10.5 C0,11.32875 0.67125,12 1.5,12 L13.5,12 C14.32875,12 15,11.32875 15,10.5 L15,0 L12,0 L13.5,3 Z" transform="translate(2 3)"/>
</g><g transform="translate(18,18)"><path fill="#000000" fill-rule="evenodd" d="M11.74223,10.3496798 L14,8.09190988 L14,14 L8.09190988,14 L10.3496798,11.74223 L1.234568e-13,1.39255019 L1.39255019,0 L11.74223,10.3496798 Z" transform="rotate(-180 8 8)"/>
</g><g transform="translate(554,148)"><path fill="#000000" fill-rule="evenodd" d="M16,1 C16,0.45 15.55,0 15,0 L1,0 C0.45,0 0,0.45 0,1 L0,13 C0,13.55 0.45,14 1,14 L12.5,14 L16,17 L16,1 Z M13,11 L3,11 L3,9 L13,9 L13,11 Z M13,8 L3,8 L3,6 L13,6 L13,8 Z M13,5 L3,5 L3,3 L13,3 L13,5 Z" transform="translate(1 1)"/>
</g><g transform="translate(270,324)"><path fill="#000000" fill-rule="evenodd" d="M0.01,1 L0,15 C0,15.55 0.44,16 1,16 L11,16 C11.55,16 12,15.55 12,15 L12,5 L7,0 L1,0 C0.45,0 0.01,0.45 0.01,1 Z M7,5 L7,1 L11,5 L7,5 L7,5 Z" transform="translate(3 1)"/>
</g><g transform="translate(90,342)"><path d="m9.75,2.25c-3.73,0 -6.75,3.02 -6.75,6.75l-2.25,0l2.92,2.92l0.05,0.11l3.03,-3.03l-2.25,0c0,-2.9 2.35,-5.25 5.25,-5.25s5.25,2.35 5.25,5.25s-2.35,5.25 -5.25,5.25c-1.45,0 -2.76,-0.59 -3.71,-1.54l-1.06,1.06c1.22,1.22 2.9,1.98 4.77,1.98c3.73,0 6.75,-3.02 6.75,-6.75s-3.02,-6.75 -6.75,-6.75zm-0.75,3.75l0,3.75l3.21,1.9l0.54,-0.91l-2.62,-1.56l0,-3.18l-1.13,0z"/>
<path fill="none" d="m0,0l18,0l0,18l-18,0l0,-18z"/>
</g><g transform="translate(144,144)"><path fill="#F4B400" fill-rule="evenodd" d="M16,1 C16,0.45 15.55,0 15,0 L1,0 C0.45,0 0,0.45 0,1 L0,12 C0,12.55 0.45,13 1,13 L12.5,13 L16,16 L16,1 L16,1 Z" transform="translate(1 1)"/>
</g><g transform="translate(36,108)"><path fill="#000000" fill-rule="evenodd" d="M10,6 C11.6575,6 13,4.6575 13,3 C13,1.3425 11.6575,0 10,0 C8.3425,0 7,1.3425 7,3 C7,4.6575 8.3425,6 10,6 L10,6 Z M4,4 L4,2 L2,2 L2,4 L0,4 L0,6 L2,6 L2,8 L4,8 L4,6 L6,6 L6,4 L4,4 Z M4,10.6666667 L4,12 L16,12 L16,10.6666667 C16,8.89333333 12.0025,8 10,8 C7.9975,8 4,8.89333333 4,10.6666667 Z" transform="translate(1 3)"/>
</g><g transform="translate(328,136)"><polygon fill="#000000" fill-rule="evenodd" points="16 7 3.83 7 9.42 1.41 8 0 0 8 8 16 9.41 14.59 3.83 9 16 9" transform="translate(4 4)"/>
</g><g transform="translate(388,160)"><path fill="#000000" fill-rule="evenodd" d="M2,12 L2,2 L5,2 L5,0 L2,0 C0.89,0 0,0.9 0,2 L0,12 C0,13.1 0.89,14 2,14 L12,14 C13.1,14 14,13.1 14,12 L14,9 L12,9 L12,12 L2,12 Z M7,2 L10.59,2 L4.76,7.83 L6.17,9.24 L12,3.41 L12,7 L14,7 L14,0 L7,0 L7,2 Z" transform="translate(2 2)"/>
</g><g transform="translate(108,18)"><path fill="#000000" fill-rule="evenodd" d="M0,1 C0,0.45 0.45,0 1,0 L15,0 C15.55,0 16,0.45 16,1 L16,12 C16,12.55 15.55,13 15,13 L3.5,13 L0,16 L0,1 Z M3,11 L3,8.53 L9.88,1.65 C10.08,1.45 10.39,1.45 10.59,1.65 L12.36,3.42 C12.56,3.62 12.56,3.93 12.36,4.13 L5.47,11 L3,11 Z M7.5,11 L9.5,9 L13,9 L13,11 L7.5,11 Z" transform="translate(1 1)"/>
</g><g transform="translate(180,216)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L14,0 L14,2 L0,2 L0,0 Z M0,4 L6,4 L6,6 L0,6 L0,4 Z M0,8 L2,8 L2,10 L0,10 L0,8 Z M8,4 L14,4 L14,6 L8,6 L8,4 Z M4,8 L6,8 L6,10 L4,10 L4,8 Z M8,8 L10,8 L10,10 L8,10 L8,8 Z M12,8 L14,8 L14,10 L12,10 L12,8 Z" transform="translate(2 4)"/>
</g><g transform="translate(572,126)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L2,0 L2,4 L0,4 L0,0 Z M0,4 L14,4 L14,6 L0,6 L0,4 Z M4,2 L6,2 L6,4 L4,4 L4,2 Z M8,0 L10,0 L10,4 L8,4 L8,0 Z M12,2 L14,2 L14,4 L12,4 L12,2 Z" transform="translate(2 6)"/>
</g><g transform="translate(198,54)"><g fill="none" fill-rule="evenodd" transform="rotate(-180 9 9)">
<polygon points="0 0 18 0 18 18 0 18"/>
<path fill="#000" d="M2,16 L4,16 L4,14 L2,14 L2,16 L2,16 Z M8,16 L10,16 L10,14 L8,14 L8,16 L8,16 Z M5,16 L7,16 L7,14 L5,14 L5,16 L5,16 Z M2,13 L4,13 L4,11 L2,11 L2,13 L2,13 Z M2,7 L4,7 L4,5 L2,5 L2,7 L2,7 Z M2,10 L4,10 L4,8 L2,8 L2,10 L2,10 Z M14,10 L16,10 L16,8 L14,8 L14,10 L14,10 Z M14,13 L16,13 L16,11 L14,11 L14,13 L14,13 Z M14,7 L16,7 L16,5 L14,5 L14,7 L14,7 Z M11,16 L13,16 L13,14 L11,14 L11,16 L11,16 Z M14,16 L16,16 L16,14 L14,14 L14,16 L14,16 Z" opacity=".54"/>
<polygon fill="#000" points="2 2 2 4 16 4 16 2"/>
</g>
</g><g transform="translate(370,280)"><g fill="none" fill-rule="evenodd">
<polygon points="0 0 18 0 18 18 0 18"/>
<path fill="#000000" d="M8,10 L10.5,12.5 L12,11 L10,9 L10,5 L8,5 L8,10 Z M8.9925,1.5 C4.8525,1.5 1.5,4.86 1.5,9 C1.5,13.14 4.8525,16.5 8.9925,16.5 C13.14,16.5 16.5,13.14 16.5,9 C16.5,4.86 13.14,1.5 8.9925,1.5 Z M9,15 C5.685,15 3,12.315 3,9 C3,5.685 5.685,3 9,3 C12.315,3 15,5.685 15,9 C15,12.315 12.315,15 9,15 Z"/>
</g>
</g><g transform="translate(216,306)"><path fill="#010101" fill-rule="evenodd" d="M2,12 L2,-8.8817842e-16 L0,-8.8817842e-16 L0,13 L0,14 L14,14 L14,12 L2,12 Z" transform="matrix(-1 0 0 1 16 2)"/>
</g><g transform="translate(446,184)"><g fill="#000000" fill-rule="evenodd">
<path d="M9.47336146,7.49057294e-05 C7.78895769,0.00993937541 6.38763929,0.954694653 6.06830697,2.20664456 C5.95295215,2.51979542 5.9000001,2.72000003 5.9000001,2.72000003 C5.9000001,2.72000003 5.83519774,2.97603987 5.82999992,3 L5.4000001,5 L4,5 L4,6 L5.30000019,6 L3.77111816,13.5142822 C3.77111816,13.5142822 3.20471191,16.1555176 2.34106445,16.697876 C1.86203272,16.9987011 1.28420828,17.0434054 1.10778809,17.0002441 C1.61537673,16.9339541 2,16.5118938 2,16 C2.00129865,15.9731602 1.99779672,15.8833762 1.99000431,15.8580638 C1.92561788,15.4049216 1.55747359,15.049577 1.09831297,15.0047715 C1.0828693,15.0016337 1.06828346,15 1.0546875,15 C1.0172438,15.0001094 1.00863468,15 1,15 C0.44771525,15 0,15.4477153 0,16 C0,16.0307214 0.00138534577,16.0611193 0.00409697465,16.0911345 C0.00136565662,16.133227 0,16.1764165 0,16.2207031 C0,16.4812866 0.041806143,16.719484 0.125418993,16.9352965 L0.157775879,17.0002441 C0.157775879,17.0002441 0.498168945,17.9716187 2.01452637,17.9716187 C3.53088379,17.9716187 4.26623535,17.0150146 4.81488037,15.9563599 C5.14147315,15.3261728 5.38030073,14.3820163 5.52012378,13.7209903 L5.64728783,13.0575346 C5.65870849,12.9903589 5.66448975,12.9530029 5.66448975,12.9530029 L7,6 L10,6 L10,5 L7.28428531,5 L7.36000045,4.62953661 L7.53528358,3.70156713 C7.61089628,3.30975584 7.70025541,2.96950377 7.80336365,2.68080071 C7.90647188,2.39209765 8.0336368,2.15323382 8.18486221,1.96420206 C8.33608762,1.77517029 8.51652433,1.63597626 8.72617774,1.54661579 C8.93583115,1.45725532 9.18844254,1.41257576 9.48401948,1.41257576 C9.64211877,1.41257576 9.78646813,1.42632332 9.9170719,1.45381885 C9.99447966,1.47011522 10.0658501,1.4870151 10.131184,1.50451869 C10.0477065,1.65057964 10,1.81971859 10,2 C10,2.55228475 10.4477153,3 11,3 C11.457729,3 11.8436297,2.69246635 11.9623514,2.27274965 C11.9871041,2.21708163 12,2.12871738 12,2 C12,1.2154012 11.491731,0.536324697 10.7519032,0.208734959 C10.6774691,0.172852789 10.5949024,0.141523674 10.5031814,0.114805726 C10.2676987,0.0404663358 10.0141658,1.13686838e-13 9.75,1.13686838e-13 C9.71513575,1.13686838e-13 9.68113145,0.000774776085 9.64795887,0.00228742319 C9.59159775,0.000807963799 9.53341957,6.92664413e-05 9.47336146,7.49057294e-05 Z"/>
<path d="M8,13 L8,14 L11.0040283,14 L11.0028687,13 L10.3999996,13 L12.75,10.5 L14,13 L13.5017395,13 L13.5,14 L16.75,14 L16.75,13 L16.25,13 C15.9738576,13 15.6608113,12.7961402 15.5492527,12.5411491 L14,9 L16.8771837,6.34413815 C17.0830844,6.1540759 17.4709682,6 17.7460842,6 L18,6 L18,5 L14.9978638,5 L15,6 L16.0369873,6 L13.5017395,8.30000019 L12.2235107,6 L12.75,6 L12.75,5 L9.5,5 L9.5,6 L10,6 C10.2761424,6 10.6042297,6.20845938 10.7216387,6.44327742 L12.25,9.5 L9.33556607,12.6386212 C9.15023805,12.8382052 8.76806641,13 8.5,13 L8,13 Z"/>
</g>
</g><g transform="translate(352,298)"><polygon fill="#000000" fill-rule="evenodd" points="-2 2 2 6 6 2" transform="rotate(-90 8 3)"/>
</g><g transform="translate(364,324)"><path fill="#000000" fill-rule="evenodd" d="M10.5737085,2 L5,2 L5,0 L14,0 L14,1 L14,9 L12,9 L12,3.40213561 L1.70206527,13.7000703 L0.287851709,12.2858568 L10.5737085,2 Z" transform="translate(2 2)"/>
</g><g transform="translate(162,252)"><defs>
<polygon id="shapes_callout_a" points="1 1 17 1 17 14 10 14 7 17 4 14 1 14"/>
<mask id="shapes_callout_b" width="16" height="16" x="0" y="0" fill="white">
<use xlink:href="#shapes_callout_a"/>
</mask>
</defs>
<use fill="none" fill-rule="evenodd" stroke="#000000" stroke-width="2" mask="url(#shapes_callout_b)" xlink:href="#shapes_callout_a"/>
</g><g transform="translate(328,220)"><path fill="#0F9D58" fill-rule="evenodd" d="M7,14 C10.8659932,14 14,10.8659932 14,7 C14,3.13400675 10.8659932,0 7,0 C3.13400675,0 0,3.13400675 0,7 C0,10.8659932 3.13400675,14 7,14 Z M2.25,7.5 L3.3075,6.4425 L5.5,8.6275 L10.6925,3.435 L11.75,4.5 L5.5,10.75 L2.25,7.5 Z" transform="translate(2 2)"/>
</g><g transform="translate(446,274)"><path fill="#000000" fill-rule="evenodd" d="M13,6 L11,6 L11,7 L13,7 L13,8 L12,8 C11.448,8 11,8.4475 11,9 L11,11 L14,11 L14,10 L12,10 L12,9 L13,9 C13.5525,9 14,8.5525 14,8 L14,7 C14,6.4475 13.5525,6 13,6 Z M5,6.5 L8,11 L9.88503367,11 L6.5,5.5 L10,0 L8,0 L5,4.5 L2,0 L0,0 L3.5,5.5 L0,11 L2,11 L5,6.5 Z" transform="translate(2 4)"/>
</g><g transform="translate(36,360)"><path fill="#000000" fill-rule="evenodd" d="M0,1.00684547 C0,0.450780073 0.455664396,0 0.995397568,0 L9.00460243,0 C9.55434533,0 10,0.449948758 10,1.00684547 L10,14 L5,12 L0,14 L0,1.00684547 Z" transform="translate(4 2)"/>
</g><g transform="translate(382,184)"><path fill="#000000" d="M6,12 C8.76,12 11,9.76 11,7 L11,0 L9,0 L9,7 C9,8.75029916 7.49912807,10 6,10 C4.50087193,10 3,8.75837486 3,7 L3,0 L1,0 L1,7 C1,9.76 3.24,12 6,12 Z M0,13 L0,15 L12,15 L12,13 L0,13 Z" transform="translate(3 3)"/>
</g><g transform="translate(256,378)"><g fill="none" fill-rule="evenodd">
<path d="M0,0 L18,0 L18,18 L0,18 L0,0 Z M0,0 L18,0 L18,18 L0,18 L0,0 Z M0,0 L18,0 L18,18 L0,18 L0,0 Z M0,0 L18,0 L18,18 L0,18 L0,0 Z"/>
<path fill="#000" fill-rule="nonzero" d="M9,5.25 C11.07,5.25 12.75,6.93 12.75,9 C12.75,9.4875 12.6525,9.945 12.48,10.3725 L14.67,12.5625 C15.8025,11.6175 16.695,10.395 17.2425,9 C15.945,5.7075 12.7425,3.375 8.9925,3.375 C7.9425,3.375 6.9375,3.5625 6.0075,3.9 L7.6275,5.52 C8.055,5.3475 8.5125,5.25 9,5.25 Z M1.5,3.2025 L3.21,4.9125 L3.555,5.2575 C2.31,6.225 1.335,7.515 0.75,9 C2.0475,12.2925 5.25,14.625 9,14.625 C10.1625,14.625 11.2725,14.4 12.285,13.995 L12.6,14.31 L14.7975,16.5 L15.75,15.5475 L2.4525,2.25 L1.5,3.2025 Z M5.6475,7.35 L6.81,8.5125 C6.7725,8.67 6.75,8.835 6.75,9 C6.75,10.245 7.755,11.25 9,11.25 C9.165,11.25 9.33,11.2275 9.4875,11.19 L10.65,12.3525 C10.1475,12.6 9.5925,12.75 9,12.75 C6.93,12.75 5.25,11.07 5.25,9 C5.25,8.4075 5.4,7.8525 5.6475,7.35 L5.6475,7.35 Z M8.88,6.765 L11.2425,9.1275 L11.2575,9.0075 C11.2575,7.7625 10.2525,6.7575 9.0075,6.7575 L8.88,6.765 Z"/>
</g>
</g><g transform="translate(500,94)"><g fill="none" fill-rule="evenodd">
<polygon points="0 0 18 0 18 18 0 18"/>
<path fill="#000" d="M8,16 L10,16 L10,14 L8,14 L8,16 L8,16 Z M5,4 L7,4 L7,2 L5,2 L5,4 L5,4 Z M5,16 L7,16 L7,14 L5,14 L5,16 L5,16 Z M2,7 L4,7 L4,5 L2,5 L2,7 L2,7 Z M2,16 L4,16 L4,14 L2,14 L2,16 L2,16 Z M2,4 L4,4 L4,2 L2,2 L2,4 L2,4 Z M2,13 L4,13 L4,11 L2,11 L2,13 L2,13 Z M14,13 L16,13 L16,11 L14,11 L14,13 L14,13 Z M14,16 L16,16 L16,14 L14,14 L14,16 L14,16 Z M14,7 L16,7 L16,5 L14,5 L14,7 L14,7 Z M14,2 L14,4 L16,4 L16,2 L14,2 L14,2 Z M8,4 L10,4 L10,2 L8,2 L8,4 L8,4 Z M11,4 L13,4 L13,2 L11,2 L11,4 L11,4 Z M11,16 L13,16 L13,14 L11,14 L11,16 L11,16 Z" opacity=".54"/>
<polygon fill="#000" points="2 10 16 10 16 8 2 8"/>
</g>
</g><g transform="translate(180,252)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L12,0 L12,12 L0,12 L0,0 Z M2,2 L12,2 L12,12 L2,12 L2,2 Z M4,4 L8,4 L8,8 L4,8 L4,4 Z M8,5 L12,5 L12,7 L8,7 L8,5 Z M7,8 L7,12 L5,12 L5,8 L7,8 Z" transform="translate(3 3)"/>
</g><g transform="translate(252,306)"><path fill="#000000" fill-rule="evenodd" d="M9.5,7 L7,7 L7,0 L5,0 L5,7 L2.5,7 L6,10.5 L9.5,7 L9.5,7 Z M0,12 L0,14 L12,14 L12,12 L0,12 L0,12 Z" transform="translate(3 2)"/>
</g><g transform="translate(162,180)"><path fill="#000000" fill-rule="evenodd" d="M8,0 C3.58,0 0,3.58 0,8 C0,12.42 3.58,16 8,16 C12.42,16 16,12.42 16,8 C16,3.58 12.42,0 8,0 L8,0 Z M12,10.87 L10.87,12 L8,9.13 L5.13,12 L4,10.87 L6.87,8 L4,5.13 L5.13,4 L8,6.87 L10.87,4 L12,5.13 L9.13,8 L12,10.87 L12,10.87 Z" transform="translate(1 1)"/>
</g><g transform="translate(382,324)"><path fill="#000000" fill-rule="evenodd" d="M11,11 L13,11 L13,11.5 L12,11.5 L12,12.5 L13,12.5 L13,13 L11,13 L11,14 L14,14 L14,10 L11,10 L11,11 Z M11,6 L12.8,6 L11,8.1 L11,9 L14,9 L14,8 L12.2,8 L14,5.9 L14,5 L11,5 L11,6 Z M12,4 L13,4 L13,0 L11,0 L11,1 L12,1 L12,4 Z M0,1 L0,3 L9,3 L9,1 L0,1 Z M0,13 L9,13 L9,11 L0,11 L0,13 Z M0,8 L9,8 L9,6 L0,6 L0,8 Z" transform="translate(2 2)"/>
</g><g transform="translate(274,54)"><path fill="#000000" fill-rule="evenodd" d="M0,11 L2,11 L2,11.5 L1,11.5 L1,12.5 L2,12.5 L2,13 L0,13 L0,14 L3,14 L3,10 L0,10 L0,11 Z M0,6 L1.8,6 L0,8.1 L0,9 L3,9 L3,8 L1.2,8 L3,5.9 L3,5 L0,5 L0,6 Z M1,4 L2,4 L2,0 L0,0 L0,1 L1,1 L1,4 Z M5,1 L5,3 L14,3 L14,1 L5,1 Z M5,13 L14,13 L14,11 L5,11 L5,13 Z M5,8 L14,8 L14,6 L5,6 L5,8 Z" transform="translate(2 2)"/>
</g><g transform="translate(54,36)"><path fill="#000000" fill-rule="evenodd" d="M0,8.75 L9.01409691,13 L9.01409691,11 L8,10.5 L8,5.5 L9,5 L9.01409691,3 L0,7.25 L0,8.75 Z M2,8 L6.02,6.13 L6.02,9.87 L2,8 Z M10,3 L12,3 L12,15 L14,15 L14,3 L16,3 L13,0 L10,3 Z" transform="translate(1 1)"/>
</g><g transform="translate(256,396)"><path fill="#000000" fill-rule="evenodd" d="M13,0 L1,0 C0.45,0 0,0.45 0,1 L0,13 C0,13.55 0.45,14 1,14 L13,14 C13.55,14 14,13.55 14,13 L14,1 C14,0.45 13.55,0 13,0 L13,0 Z M11,11 L9,11 L9,8 L11,8 L11,11 L11,11 Z M6,11 L6,3 L8,3 L8,11 L6,11 Z M3,11 L3,6 L5,6 L5,11 L3,11 Z" transform="translate(2 2)"/>
</g><g transform="translate(234,288)"><path fill="#000000" fill-rule="evenodd" d="M14,0 L0,0 L0,2 L14,2 L14,0 Z M0,12 L4,12 L4,10 L0,10 L0,12 Z M11.5,5 L0,5 L0,7 L11.75,7 C12.58,7 13.25,7.67 13.25,8.5 C13.25,9.33 12.58,10 11.75,10 L9,10 L9,8 L6,11 L9,14 L9,12 L11.5,12 C13.43,12 15,10.43 15,8.5 C15,6.57 13.43,5 11.5,5 Z" transform="translate(2 3)"/>
</g><g transform="translate(90,162)"><path fill="#000000" fill-rule="evenodd" d="M13,14 L3,14 L3,11 L0,11 L0,6.00591905 C0,4.89808055 0.894513756,4 1.99406028,4 L14.0059397,4 C15.1072288,4 16,4.88655484 16,6.00591905 L16,11 L13,11 L13,14 Z M5,9 L11,9 L11,12 L5,12 L5,9 Z M3,0 L13,0 L13,3 L3,3 L3,0 Z M12,6 L14,6 L14,8 L12,8 L12,6 Z" transform="translate(1 2)"/>
</g><g transform="translate(382,396)"><path fill="#FFFFFF" fill-rule="evenodd" d="M7.99905882,0 C4.32752941,0 1.23670588,2.49323077 0,6 C1.23670588,9.50676923 4.32752941,12 7.99905882,12 C11.6724706,12 14.7595294,9.50676923 16,6 C14.7595294,2.49323077 11.6724706,0 7.99905882,0 Z M8,10.5 C10.4852814,10.5 12.5,8.48528137 12.5,6 C12.5,3.51471863 10.4852814,1.5 8,1.5 C5.51471863,1.5 3.5,3.51471863 3.5,6 C3.5,8.48528137 5.51471863,10.5 8,10.5 Z M8,8.5 C9.38071187,8.5 10.5,7.38071187 10.5,6 C10.5,4.61928813 9.38071187,3.5 8,3.5 C6.61928813,3.5 5.5,4.61928813 5.5,6 C5.5,7.38071187 6.61928813,8.5 8,8.5 Z" transform="translate(1 3)"/>
</g><g transform="translate(90,72)"><!-- Generator: Sketch 42 (36781) - http://www.bohemiancoding.com/sketch -->
<title>diagram_icon_18dp</title>
<desc>Created with Sketch.</desc>
<defs/>
<g id="R4-TT" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="diagram_icon_18dp" stroke="#000000">
<path d="M3.87147764,7.29634576 C3.83986478,7.04746451 3.82352941,6.79330535 3.82352941,6.53501401 C3.82352941,3.47811018 6.11161763,1 8.93411749,1 C11.7566173,1 14.0447056,3.47811018 14.0447056,6.53501401 C14.0447056,6.7730233 14.0308349,7.00752387 14.0039213,7.23761927 C15.7712236,8.04150177 17,9.82263098 17,11.8907563 C17,14.7125137 14.7125137,17 11.8907563,17 C10.8177918,17 9.82207637,16.6692576 9,16.1041629 C8.17792363,16.6692576 7.18220818,17 6.1092437,17 C3.28748632,17 1,14.7125137 1,11.8907563 C1,9.87159112 2.17128577,8.12599438 3.87147764,7.29634576 Z M11.2034468,11.495781 C12.7029812,10.6895952 13.7849896,9.10935699 14.0039213,7.23761927 C13.3599102,6.9446817 12.6443884,6.78151261 11.8907563,6.78151261 C10.8177918,6.78151261 9.82207637,7.11225499 9,7.6773497 C10.2380498,8.52838427 11.0822782,9.91094076 11.2034468,11.495781 Z M3.87147764,7.29634576 C4.11260673,9.19470304 5.24257605,10.7859928 6.79193371,11.5617758 C6.78502142,11.6705463 6.78151261,11.7802415 6.78151261,11.8907563 C6.78151261,13.6395492 7.66012217,15.1831318 9,16.1041629 C10.3398778,15.1831318 11.2184874,13.6395492 11.2184874,11.8907563 C11.2184874,11.7578516 11.2134128,11.6261321 11.2034468,11.495781 C10.5197272,11.8633652 9.74920604,12.070028 8.93411749,12.070028 C8.16916636,12.070028 7.44346846,11.8880076 6.79193371,11.5617758 C6.89440201,9.94935653 7.74479562,8.5401763 9,7.6773497 C8.17792363,7.11225499 7.18220818,6.78151261 6.1092437,6.78151261 C5.30665151,6.78151261 4.54728204,6.9665711 3.87147764,7.29634576 Z" id="circles"/>
</g>
</g>
</g><g transform="translate(162,162)"><path fill="#000000" fill-rule="evenodd" d="M7,8 L7,11 L9,11 L9,8 L12,8 L12,6 L9,6 L9,3 L7,3 L7,6 L4,6 L4,8 L7,8 Z M16,1 L16,17 L12.5,14 L1,14 C0.45,14 0,13.55 0,13 L0,1 C0,0.45 0.45,0 1,0 L15,0 C15.55,0 16,0.45 16,1 Z" transform="translate(1 1)"/>
</g><g transform="translate(500,18)"><path fill="#000000" fill-rule="evenodd" d="M2,11.1724719 L2,8 L4,8 L4,5 L5,5 L5,6 L13,6 L13,5 L14,5 L14,15 L13,15 L13,17 L6.31048584,17 L9.5,17 C10.88,17 12,15.88 12,14.5 C12,13.18 10.975,12.11 9.675,12.02 C9.335,10.295 7.82,9 6,9 C4.555,9 3.3,9.82 2.675,11.02 C2.44084231,11.0448938 2.21479402,11.0967787 2,11.1724719 L2,4.00684547 C2,3.44994876 2.4476813,2.99926779 2.99992417,2.99836457 L7.0005835,2.99182129 C7.00058365,2.99182129 7,0.991821289 9,0.991821289 C11,0.991821289 11.0394287,2.99182129 11,3 L15.0001925,3 C15.5562834,3 16,3.44510135 16,3.99416169 C16,3.99416169 16,3.66307129 16,4.49182129 L16,15.9975471 C16,16.5548273 15.551657,17 14.9985978,17 C14.9985978,17 15.32875,17 14.5,17 L3.55749512,17 C2.72874512,17 2.99935535,17 2.99935535,17 C2.99905582,17 2.99875633,16.9999999 2.99845687,16.9999996 C1.34416402,16.9991639 0,15.6544856 0,14 C0,12.6953811 0.834249959,11.5832815 2,11.1724719 Z M8,3 L8,4 L10,4 L10,3 L8,3 Z" transform="translate(1)"/>
</g><g transform="translate(36,252)"><path fill="#000000" fill-rule="evenodd" d="M6,5 L6,2 L5,2 L5,5 L2,5 L2,6 L5,6 L5,12 L6,12 L6,6 L12,6 L12,5 L6,5 Z M0,1.00684547 C0,0.450780073 0.449948758,0 1.00684547,0 L12.9931545,0 C13.5492199,0 14,0.449948758 14,1.00684547 L14,12.9931545 C14,13.5492199 13.5500512,14 12.9931545,14 L1.00684547,14 C0.450780073,14 0,13.5500512 0,12.9931545 L0,1.00684547 Z M2,2 L12,2 L12,12 L2,12 L2,2 Z" transform="translate(2 2)"/>
</g><g transform="translate(572,54)"><path fill="#000000" fill-rule="evenodd" d="M9,14 L18,14 L18,12 L9,12 L9,14 L9,14 Z M9,2 L9,4 L18,4 L18,2 L9,2 L9,2 Z M7.5,4 L4,0.5 L0.5,4 L3,4 L3,12 L0.5,12 L4,15.5 L7.5,12 L5,12 L5,4 L7.5,4 L7.5,4 Z M9,9 L18,9 L18,7 L9,7 L9,9 L9,9 Z" transform="translate(0 1)"/>
</g><g transform="translate(162,90)"><g fill="none" fill-rule="evenodd" transform="translate(0 1)">
<polygon fill="#4285F4" points="4.71 16 15.24 16 17.85 11 7.29 11"/>
<polygon fill="#0F9D58" points="5.63 1.45 .14 11.45 2.8 16 8.28 6.02 5.63 1.45"/>
<polygon fill="#FFC107" points="17.86 10 11.97 0 6.71 0 12.6 10"/>
</g>
</g><g transform="translate(464,292)"><path fill="#000000" fill-rule="evenodd" d="M1.9,4 C1.9,2.84 2.84,1.9 4,1.9 L8,1.9 L8,0 L4,0 C1.79,0 0,1.79 0,4 C0,6.21 1.79,8 4,8 L8,8 L8,6.1 L4,6.1 C2.84,6.1 1.9,5.16 1.9,4 L1.9,4 Z M14,0 L10,0 L10,1.9 L14,1.9 C15.16,1.9 16.1,2.84 16.1,4 C16.1,5.16 15.16,6.1 14,6.1 L10,6.1 L10,8 L14,8 C16.21,8 18,6.21 18,4 C18,1.79 16.21,0 14,0 L14,0 Z M6,5 L12,5 L12,3 L6,3 L6,5 L6,5 Z" transform="translate(0 5)"/>
</g><g transform="translate(500,54)"><path fill="#000000" fill-rule="evenodd" d="M4,3 L12.0037973,3 C14.2108391,3 16,4.79535615 16,7 C16,8.62283851 15.0346747,10.0199573 13.6472354,10.6472354 L11.9999825,8.99998249 C13.1026715,8.99540428 14,8.1017358 14,7 C14,5.88772964 13.1007504,5 11.9914698,5 L8,5 L8,5 L9,5 L9,3 L6,3 L4,3 L5,4 L13.5,12.5 L12.5,13.5 L10,11 L3.99620271,11 C1.78916089,11 8.8817842e-16,9.20464385 8.8817842e-16,7 C8.8817842e-16,5.37716149 0.965325286,3.98004273 2.3527646,3.3527646 L0.5,1.5 L1.5,0.5 L4,3 Z M8,9 L4.0085302,9 C2.8992496,9 2,8.11227036 2,7 C2,5.8982642 2.8973285,5.00459572 4.00001767,5.00001767 L5,6 L5,8 L7,8 L8,9 L7,9 L7,11 L9,11 L9,10 L10,11 Z M9,6 L11,6 L11,8 L9,6 Z" transform="translate(1 2)"/>
</g><g transform="translate(180,270)"><polygon fill="#000000" fill-rule="evenodd" points="11.53 1.53 10.47 .47 6 4.94 1.53 .47 .47 1.53 4.94 6 .47 10.47 1.53 11.53 6 7.06 10.47 11.53 11.53 10.47 7.06 6" transform="translate(3 3)"/>
</g><g transform="translate(346,0)"><path fill="#000000" fill-rule="evenodd" d="M11.535,13 L10.49,13 L11,13 L11,11.6376102 L11,10 L8,10 L8,8 L11,8 L11,5 L13,5 L13,8 L16,8 L16,10 L13,10 L13,13 L11.535,13 Z M7,8 L7,10 L3.215,10 L2.09,13 L0,13 L5.11,0 L6.965,0 L9.71384615,7 L7.73033937,7 L6.035,2.475 L3.965,8 L3.965,8 L7,8 Z" transform="translate(1 2)"/>
</g><g transform="translate(54,342)"><path fill="#000000" fill-rule="evenodd" d="M8,6 L8,0 L0,0 L0,14 L8,14 L8,8 L10,8 L10,10.5 L13.5,7 L10,3.5 L10,6 L8,6 Z M6,6 L6,2 L2,2 L2,12 L6,12 L6,8 L5,8 L5,6 L6,6 Z M8,6 L8,4 L6,4 L6,6 L8,6 Z M8,8 L8,10 L6,10 L6,8 L8,8 Z" transform="translate(2 2)"/>
</g><g transform="translate(216,288)"><path fill="#000000" fill-rule="evenodd" d="M11.5656391,4.43436088 L9,7 L16,7 L16,0 L13.0418424,2.95815758 C11.5936787,1.73635959 9.72260775,1 7.67955083,1 C4.22126258,1 1.25575599,3.10984908 0,6 L2,7 C2.93658775,4.60974406 5.12943697,3.08011229 7.67955083,3 C9.14881247,3.0528747 10.4994783,3.57862053 11.5656391,4.43436088 Z" transform="matrix(-1 0 0 1 17 5)"/>
</g><g transform="translate(54,234)"><polygon fill="#4285F4" fill-opacity=".78" fill-rule="evenodd" points="0 0 6 6 12 0" transform="translate(3 7)"/>
</g><g transform="translate(54,324)"><path fill="#673AB7" fill-rule="evenodd" d="M15,0 L1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 L15,0 Z M3,4 L5,4 L5,6 L3,6 L3,4 L3,4 Z M3,7 L5,7 L5,9 L3,9 L3,7 L3,7 Z M3,10 L5,10 L5,12 L3,12 L3,10 L3,10 Z M13,12 L6,12 L6,10 L13,10 L13,12 L13,12 Z M13,9 L6,9 L6,7 L13,7 L13,9 L13,9 Z M13,6 L6,6 L6,4 L13,4 L13,6 L13,6 Z" transform="translate(1 1)"/>
</g><g transform="translate(536,130)"><g fill="none" fill-rule="evenodd">
<polygon points="0 0 18 0 18 18 0 18"/>
<path fill="#000000" d="M15.4998938,16 C16.604522,16 17.0549708,15.2146543 16.5166382,14.2646557 L9.98336176,2.73534428 C9.44026606,1.7769401 8.55497079,1.78534566 8.01663824,2.73534428 L1.48336176,14.2646557 C0.940266055,15.2230599 1.39005841,16 2.50010618,16 L15.4998938,16 Z M10,14 L8,14 L8,12 L10,12 L10,14 L10,14 Z M10,11 L8,11 L8,7 L10,7 L10,11 L10,11 Z"/>
</g>
</g><g transform="translate(428,220)"><path fill="#F4B400" fill-rule="evenodd" d="M15,0 L1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 Z M14,12 L2,12 L2,4 L14,4 L14,12 Z" transform="translate(1 1)"/>
</g><g transform="translate(238,144)"><path fill="#000000" fill-rule="evenodd" d="M13,3 L14.9975267,3 C15.5511774,3 16,3.4463114 16,3.99754465 L16,12 L5.00247329,12 C4.44882258,12 4,11.5536886 4,11.0024554 L4,10 L13,10 L13,3 Z M13,12 L16,12 L16,15 L13,12 Z M0,0.997544646 C0,0.446615951 0.455760956,0 1.00247329,0 L10.9975267,0 C11.5511774,0 12,0.446311399 12,0.997544646 L12,8.00245535 C12,8.55338405 11.544239,9 10.9975267,9 L0,9 L0,0.997544646 Z M3,9 L0,9 L0,12 L3,9 Z" transform="translate(1 2)"/>
</g><g transform="translate(36,126)"><path fill="#010101" fill-rule="evenodd" d="M2,4 L2,6 L13,6 L13,7 L2,7 L2,9 L13,9 L13,10 L2,10 L2,12 L14,12 L14,14 L0,14 L0,13 L0,0 L2,0 L2,3 L13,3 L13,4 L2,4 Z" transform="translate(2 2)"/>
</g><g transform="translate(126,90)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L2,0 L2,14 L0,14 L0,0 Z M12,0 L14,0 L14,14 L12,14 L12,0 Z M4,3 L4,5 L7.75,5 C8.58,5 9.25,5.67 9.25,6.5 C9.25,7.33 8.58,8 7.75,8 L6,8 L6,6 L3,9 L6,12 L6,10 L7.5,10 C9.43,10 11,8.43 11,6.5 C11,4.57 9.43,3 7.5,3 L4,3 Z" transform="translate(2 2)"/>
</g><g transform="translate(518,220)"><path fill="#000000" fill-rule="evenodd" d="M14.4926407,0.219669914 L5.11350781,3.58839515 L6.52772138,5.00260871 L7.73977093,4.49766594 L11.2753048,8.03319985 L10.7803301,9.23528137 L12.1845756,10.659463 L15.5533009,1.28033009 L14.4926407,0.219669914 Z M13.6087572,2.16421356 L12.0884776,6.3290725 L9.44389827,3.68449314 L13.6087572,2.16421356 Z M12,11.7573593 L10.5857864,13.1715729 L2.10050506,4.6862915 L0.686291501,6.10050506 L9.17157288,14.5857864 L7.75735931,16 L12,16 L12,11.7573593 Z" transform="translate(1 1)"/>
</g><g transform="translate(144,36)"><defs>
<polygon id="shapes_arrow_a" points="17 9 9 2 9.062 6 1 6.021 1 12 9.062 12 9.062 16"/>
<mask id="shapes_arrow_b" width="16" height="14" x="0" y="0" fill="white">
<use xlink:href="#shapes_arrow_a"/>
</mask>
</defs>
<use fill="none" fill-rule="evenodd" stroke="#000000" stroke-width="2" mask="url(#shapes_arrow_b)" xlink:href="#shapes_arrow_a"/>
</g><g transform="translate(518,184)"><path fill="#000000" fill-rule="evenodd" d="M15,0 L1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 L15,0 Z M6,13 L6,10 L2,10 L2,6 L6,6 L6,3 L11,8 L6,13 L6,13 Z" transform="translate(1 1)"/>
</g><g transform="translate(428,54)"><path fill="#000000" fill-rule="evenodd" d="M2.5180432,3.93225676 C2.35281657,3.97644275 2.17915933,4 2,4 C0.8954305,4 0,3.1045695 0,2 C0,0.8954305 0.8954305,0 2,0 C3.1045695,0 4,0.8954305 4,2 C4,2.17915933 3.97644275,2.35281657 3.93225676,2.5180432 L11.4819568,10.0677432 C11.6471834,10.0235573 11.8208407,10 12,10 C13.1045695,10 14,10.8954305 14,12 C14,13.1045695 13.1045695,14 12,14 C10.8954305,14 10,13.1045695 10,12 C10,11.8208407 10.0235573,11.6471834 10.0677432,11.4819568 L2.5180432,3.93225676 Z" transform="translate(2 2)"/>
</g><g transform="translate(90,324)"><!-- Generator: Sketch 45.1 (43504) - http://www.bohemiancoding.com/sketch -->
<title>Artboard 2</title>
<desc>Created with Sketch.</desc>
<defs/>
<g id="Page-2" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Artboard-2">
<g id="ic_animation_black_24dp">
<polygon id="Shape" points="0 0 18 0 18 18 0 18"/>
<path d="M11.7428571,1.71428571 C9.65228571,1.71428571 7.84714286,2.90228571 6.94457143,4.63028571 C5.95714286,5.14714286 5.13942857,5.95714286 4.63028571,6.94457143 C2.90228571,7.84714286 1.71428571,9.65228571 1.71428571,11.7428571 C1.71428571,14.7282857 4.12885714,17.1428571 7.11428571,17.1428571 C9.20485714,17.1428571 11.01,15.9548571 11.9125714,14.2268571 C12.9,13.71 13.7177143,12.9 14.2268571,11.9125714 C15.9548571,11.01 17.1428571,9.20485714 17.1428571,7.11428571 C17.1428571,4.12885714 14.7282857,1.71428571 11.7428571,1.71428571 Z M7.11428571,15.6 C4.98514286,15.6 3.25714286,13.872 3.25714286,11.7428571 C3.25714286,10.8788571 3.54257143,10.0765714 4.02857143,9.42857143 C4.02857143,12.414 6.44314286,14.8285714 9.42857143,14.8285714 C8.78057143,15.3145714 7.97828571,15.6 7.11428571,15.6 Z M9.42857143,13.2857143 C7.29942857,13.2857143 5.57142857,11.5577143 5.57142857,9.42857143 C5.57142857,8.56457143 5.85685714,7.76228571 6.34285714,7.11428571 C6.34285714,10.092 8.75742857,12.5065714 11.7428571,12.5142857 C11.0948571,13.0002857 10.2925714,13.2857143 9.42857143,13.2857143 Z M11.7369872,10.9965443 C9.60123686,10.9965443 7.86986908,9.26517657 7.86986908,7.12942618 C7.86986908,4.99367579 9.60123686,3.26230801 11.7369872,3.26230801 C13.8727376,3.26230801 15.6041054,4.99367579 15.6041054,7.12942618 C15.6041054,9.26517657 13.8727376,10.9965443 11.7369872,10.9965443 Z" id="Combined-Shape" fill="#000000" fill-rule="nonzero"/>
<polygon id="Shape" points="0 0 18 0 18 18 0 18"/>
</g>
</g>
</g>
</g><g transform="translate(234,72)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 2)">
<path fill-opacity=".38" d="M0,1.00684547 C0,0.450780073 0.449948758,0 1.00684547,0 L12.9931545,0 C13.5492199,0 14,0.449948758 14,1.00684547 L14,12.9931545 C14,13.5492199 13.5500512,14 12.9931545,14 L1.00684547,14 C0.450780073,14 0,13.5500512 0,12.9931545 L0,1.00684547 Z M1,1 L13,1 L13,13 L1,13 L1,1 Z"/>
<polygon points="3 5 7 9 11 5"/>
</g>
</g><g transform="translate(572,72)"><path fill="#000000" fill-rule="evenodd" d="M0,1.00247329 C0,0.448822582 0.444630861,0 1.00087166,0 L14.9991283,0 C15.5518945,0 16,0.455760956 16,1.00247329 L16,10.9975267 C16,11.5511774 15.5553691,12 14.9991283,12 L1.00087166,12 C0.448105505,12 0,11.544239 0,10.9975267 L0,1.00247329 Z M8,9 L1,4 L1,2 L8,7 L15,2 L15,4 L8,9 Z" transform="translate(1 3)"/>
</g><g transform="translate(536,220)"><path fill="#000000" fill-rule="evenodd" d="M0,0.995397568 C0,0.445654671 0.455760956,0 1.00247329,0 L10.9975267,0 C11.5511774,0 12,0.455664396 12,0.995397568 L12,9.00460243 C12,9.55434533 11.544239,10 10.9975267,10 L1.00247329,10 C0.448822582,10 0,9.5443356 0,9.00460243 L0,0.995397568 Z M2,2 L4,2 L4,4 L2,4 L2,2 Z M5,2 L10,2 L10,4 L5,4 L5,2 Z M2,5 L4,5 L4,8 L2,8 L2,5 Z M5,5 L10,5 L10,8 L5,8 L5,5 Z M3,14 L11,14 L11,12 L3,12 L3,10.5 L0.5,13 L3,15.5 L3,14 Z" transform="translate(3 1)"/>
</g><g transform="translate(328,18)"><path fill="#000000" fill-rule="evenodd" d="M0,5 L14,5 L14,13 L0,13 L0,5 Z M2,5 L12,5 L12,11 L2,11 L2,5 Z M3.5,5 L6,5 L6,0 L8,0 L8,5 L10.5,5 L7,8.5 L3.5,5 L3.5,5 Z" transform="translate(2 2)"/>
</g><g transform="translate(500,148)"><path fill="#000000" fill-rule="evenodd" d="M0,5.00218626 C0,2.23955507 2.22898489,0 5.00218626,0 L12,0 L12,12 L0,12 L0,5.00218626 Z M2,5.00032973 C2,3.34329338 3.3486445,2 5.00032973,2 L12,2 L12,12 L2,12 L2,5.00032973 Z M4,4 L8,4 L8,8 L4,8 L4,4 Z M8,5 L12,5 L12,7 L8,7 L8,5 Z M7,8 L7,12 L5,12 L5,8 L7,8 Z" transform="translate(3 3)"/>
</g><g transform="translate(72,90)"><path fill="#000000" fill-rule="evenodd" d="M6,10.5 C3.51,10.5 1.5,8.49 1.5,6 C1.5,3.51 3.51,1.5 6,1.5 C7.24,1.5 8.36,2.02 9.17,2.83 L7,5 L12,5 L12,0 L10.24,1.76 C9.15,0.68 7.66,0 6,0 C2.69,0 0.01,2.69 0.01,6 C0.01,9.31 2.69,12 6,12 C8.97,12 11.43,9.84 11.9,7 L10.38,7 C9.92,9 8.14,10.5 6,10.5 L6,10.5 Z" transform="matrix(-1 0 0 1 15.01 3)"/>
</g><g transform="translate(364,184)"><path fill="#000000" fill-rule="evenodd" d="M13.9291111,8 C13.4905984,11.0656912 11.0656912,13.4905984 8,13.9291111 L8,8 L13.9291111,8 Z M13.9291111,6 C13.4905984,2.93430884 11.0656912,0.509401622 8,0.0708888585 L8,6 L13.9291111,6 Z M6,0.0708888585 C2.60770586,0.556118519 8.8817842e-16,3.47352809 8.8817842e-16,7 C8.8817842e-16,10.5264719 2.60770586,13.4438815 6,13.9291111 L6,0.0708888585 Z" transform="translate(2 2)"/>
</g><g transform="translate(428,292)"><path fill="#000000" fill-rule="evenodd" d="M10.75,17 L1.55749512,17 C0.728745117,17 0.999355351,17 0.999355351,17 C0.441480327,17 2.84217094e-14,16.5492199 2.84217094e-14,15.9931545 L2.84217094e-14,4.00684547 C2.84217094e-14,3.44994876 0.445472655,2.99927141 0.994991023,2.99837264 C0.994991023,2.99837264 1.92481493,2.99685187 2.38726031,2.99609551 L5.0005835,2.99182129 C5.00058365,2.99182129 5,0.991821289 7,0.991821289 C9,0.991821289 9.03942871,2.99182129 9,3 L13.0001925,3 C13.5562834,3 14,3.44510135 14,3.99416169 C14,3.99416169 14,3.66307129 14,4.49182129 L14,6 L12,6 L12,5 L11,5 L11,6 L3,6 L3,5 L2,5 L2,15 L9,15 L9,17 L10.75,17 Z M6,3 L8,3 L8,4 L6,4 L6,3 Z M14,7 L12,7 C10.895,7 10,7.895 10,9 L10,17 L12,17 L12,15 L14,15 L14,17 L16,17 L16,9 C16,7.895 15.105,7 14,7 Z M12,13 L14,13 L14,9 L12,9 L12,13 Z" transform="translate(1)"/>
</g><g transform="translate(482,18)"><path fill="#000000" fill-rule="evenodd" d="M15,0 L1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 L15,0 Z M2.5,12 L5.25,8.46 L7.21,10.82 L9.96,7.28 L13.5,12 L2.5,12 L2.5,12 Z" transform="translate(1 1)"/>
</g><g transform="translate(198,36)"><path fill="#000000" fill-rule="evenodd" d="M4,14 C4,14.5 4.5,15 5,15 L7,15 C7.5,15 8,14.5 8,14 L8,13 L4,13 L4,14 Z M6,0.5 C3.0975,0.5 0.75,2.8475 0.75,5.75 C0.75,7.535 1.6425,9.1025 3,10.055 L3,11 C3,11.5 3.5,12 4,12 L8,12 C8.5,12 9,11.5 9,11 L9,10.055 C10.3575,9.1025 11.25,7.535 11.25,5.75 C11.25,2.8475 8.9025,0.5 6,0.5 Z" transform="translate(3 1)"/>
</g><g transform="translate(36,198)"><path fill="#000000" fill-rule="evenodd" d="M10.2675644,11 L8,11 L8,1 L3.73243561,1 C3.38662619,0.40219863 2.74028236,0 2,0 C0.8954305,0 0,0.8954305 0,2 C0,3.1045695 0.8954305,4 2,4 C2.74028236,4 3.38662619,3.59780137 3.73243561,3 L6,3 L6,13 L10.2675644,13 C10.6133738,13.5978014 11.2597176,14 12,14 C13.1045695,14 14,13.1045695 14,12 C14,10.8954305 13.1045695,10 12,10 C11.2597176,10 10.6133738,10.4021986 10.2675644,11 Z" transform="translate(2 2)"/>
</g><g transform="translate(216,252)"><path fill="#000000" fill-rule="evenodd" d="M1.00684547,0 C0.450780073,0 1.57717987e-15,0.447449351 1.57717987e-15,1.0068708 C1.57717987e-15,1.0068708 1.57717987e-15,0.795555556 1.57717987e-15,1.77777778 L1.57717987e-15,12.4444444 C1.57717987e-15,13.4266667 -1.20058952e-09,12.9909959 -1.20058952e-09,12.9909959 C-6.73340566e-09,13.5482535 0.443716635,14 0.999807483,14 L5,14 L7,16 L9,14 L12.1307373,14 L12.9927192,14 C13.549025,14 14,13.5505095 14,12.9998043 L14,1.77777778 C14,0.795555556 14,1.0068708 14,1.0068708 C14,0.45079141 13.5500512,0 12.9931545,0 L1.00684547,0 Z M7,12 L5.796875,8.375 L2.625,7 L5.796875,5.625 L7,2 L8.203125,5.625 L11.375,7 L8.203125,8.375 L7,12 Z" transform="translate(2 1)"/>
</g><g transform="translate(500,274)"><defs>
<path id="dogfood_white_path_1" d="m5.2737 8.6798c-0.7035 0-1.2737-0.5641-1.2737-1.26 0-0.6958 0.5702-1.2599 1.2737-1.2599 0.7034 0 1.2736 0.5641 1.2736 1.2599 0 0.6959-0.5702 1.26-1.2736 1.26zm2.0887-2.1599c-0.7034 0-1.2736-0.5641-1.2736-1.26 0-0.6958 0.5702-1.2599 1.2736-1.2599 0.7035 0 1.2737 0.5641 1.2737 1.2599 0 0.6959-0.5702 1.26-1.2737 1.26zm3.0936 0c-0.7038 0-1.274-0.5641-1.274-1.26 0-0.6958 0.5702-1.2599 1.274-1.2599 0.703 0 1.273 0.5641 1.273 1.2599 0 0.6959-0.57 1.26-1.273 1.26zm2.27 2.1599c-0.703 0-1.273-0.5641-1.273-1.26 0-0.6958 0.57-1.2599 1.273-1.2599 0.704 0 1.274 0.5641 1.274 1.2599 0 0.6959-0.57 1.26-1.274 1.26zm-2.35-0.684c0.407 0.468 0.786 0.9648 1.23 1.4039 0.669 0.6773 1.484 1.3533 1.28 2.3683-0.116 0.576-0.502 1.023-1.113 1.21-0.342 0.108-1.616-0.216-2.9113-0.216-1.2955 0-2.4527 0.317-2.7947 0.216-0.6114-0.187-1.0044-0.634-1.1209-1.21-0.2037-1.015 0.6041-1.691 1.2737-2.3683 0.4367-0.4391 0.8006-0.9359 1.2081-1.4039 0.2548-0.288 0.495-0.5472 0.888-0.6768 0.1746-0.0504 0.3566-0.0792 0.5385-0.0792 0 0 0.4294 0.0216 0.6041 0.0792 0.393 0.1296 0.6625 0.3888 0.9175 0.6768z"/>
</defs>
<g fill-rule="evenodd" fill="none">
<polygon points="0 0 18 0 18 18 0 18"/>
<mask fill="white">
<use xlink:href="#dogfood_white_path_1"/>
</mask>
<use xlink:href="#dogfood_white_path_1" fill-rule="nonzero" fill="#ffffff"/>
</g>
</g><g transform="translate(202,360)"><path fill="#000000" fill-rule="evenodd" d="M14.53125,-1.95399252e-13 L2.50909424,-1.95399252e-13 C2.17272949,-1.95399252e-13 2,-1.9485927e-13 1,-1.95126228e-13 C2.84217094e-14,-1.95399252e-13 2.84217094e-14,1.00134277 2.84217094e-14,1.00134277 L2.84217094e-14,4 L2.00195313,4 L2.00195313,2 L14,2 L14,12 L10,12 L10,13.9900513 L14.9996948,13.9900513 C16,13.9900513 16,12.9960327 16,12.9960327 L16,1.00134277 C16,1.00134277 16,-1.95399252e-13 14.9996948,-1.95399252e-13 L14.53125,-1.95399252e-13 Z M0.00390625,8 C3.73140625,7.99456787 6.02288818,10.256936 6,14 L8,14 C8,9.42818604 4.56015625,6.00061035 0.00390625,6.00061035 L0.00390625,8 Z M0.00341796875,14 L2.00366211,14 C2.00366211,12.7533179 1.24125,12 0,12 L0.00341796875,14 Z M0,11 C2.07,10.9772339 3.02642822,12.18 3,14 L5,14 C4.97491455,11.35125 2.89875,9 0,9 L0,11 Z" transform="translate(1 2)"/>
</g><g transform="translate(500,130)"><path fill="#000000" fill-rule="evenodd" d="M9.5,3 L7,3 L7,0 L5,0 L5,3 L2.5,3 L6,6.5 L9.5,3 L9.5,3 Z M0,8 L0,10 L12,10 L12,8 L0,8 L0,8 Z M2.5,15 L5,15 L5,18 L7,18 L7,15 L9.5,15 L6,11.5 L2.5,15 L2.5,15 Z" transform="translate(3)"/>
</g><g transform="translate(198,144)"><defs><linearGradient id="a" x1="50.004%" x2="50.004%" y1="8.586%" y2="100.013%"><stop stop-color="#3E2723" stop-opacity=".2" offset="0%"/><stop stop-color="#3E2723" stop-opacity=".02" offset="100%"/></linearGradient><radialGradient id="b" cx="3.168%" cy="2.718%" r="161.248%" fx="3.168%" fy="2.718%" gradientTransform="matrix(1 0 0 .72222 0 .008)"><stop stop-color="#FFF" offset="0%"/><stop stop-color="#FFF" stop-opacity="0" offset="100%"/></radialGradient></defs><g fill="none" fill-rule="evenodd"><path fill="#DB4437" d="M9.5 2H24l9 9v24.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C8.11928813 38 7 36.8807119 7 35.5v-31C7 3.11928813 8.11928813 2 9.5 2z"/><path fill="#3E2723" fill-opacity=".2" d="M7 35c0 1.3807119 1.11928813 2.5 2.5 2.5h21c1.3807119 0 2.5-1.1192881 2.5-2.5v.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C8.11928813 38 7 36.8807119 7 35.5V35z"/><path fill="#FFF" fill-opacity=".2" d="M9.5 2H24v.5H9.5C8.11928813 2.5 7 3.61928813 7 5v-.5C7 3.11928813 8.11928813 2 9.5 2z"/><path fill="url(#a)" fill-rule="nonzero" d="M17.5 8l8.5 8.5V9" transform="translate(7 2)"/><path fill="#EDA29B" d="M24 2l9 9h-6.5C25.1192881 11 24 9.88071187 24 8.5V2z"/><path fill="#F1F1F1" fill-rule="nonzero" d="M22 22c0-2.7613636-2.2386364-5-5-5-2.76136364 0-5 2.2386364-5 5s2.23863636 5 5 5c2.7613636 0 5-2.2386364 5-5zm-5 3c-1.6542857 0-3-1.3457143-3-3s1.3457143-3 3-3 3 1.3457143 3 3-1.3457143 3-3 3zm6.5-1c-.5 2-2 3.5-3.5 4v4h8v-8h-4.5z"/><path fill="url(#b)" fill-opacity=".1" d="M2.5 0H17l9 9v24.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C1.11928813 36 0 34.8807119 0 33.5v-31C0 1.11928813 1.11928813 0 2.5 0z" transform="translate(7 2)"/></g></g><g transform="translate(126,252)"><path fill="#000000" fill-rule="evenodd" d="M6.25,3.52085955e-16 L2,9.01409691 L4,9.01409691 L4.5,7.8 L9.5,7.8 L10,9 L12,9.01409691 L7.75,2.60237445e-16 L6.25,3.52085955e-16 Z M7,2 L8.87,6.02 L5.13,6.02 L7,2 Z M12,10 L12,12 L0,12 L0,14 L12,14 L12,16 L15,13 L12,10 Z" transform="translate(2 1)"/>
</g><g transform="translate(108,342)"><polygon fill="#000000" fill-rule="evenodd" points="0 0 0 1 6 7 6 12 8 11 8 7 14 1 14 0" transform="translate(2 3)"/>
</g><g transform="translate(464,202)"><path fill="#000000" fill-rule="evenodd" d="M0,1.00684547 C0,0.450780073 0.449948758,0 1.00684547,0 L12.9931545,0 C13.5492199,0 14,0.449948758 14,1.00684547 L14,12.9931545 C14,13.5492199 13.5500512,14 12.9931545,14 L1.00684547,14 C0.450780073,14 0,13.5500512 0,12.9931545 L0,1.00684547 Z M2,2 L12,2 L12,12 L2,12 L2,2 Z M2,10.5 L5,7.5 L7.02877192,9.5 L12,4.5 L12,3 L7,8 L5,6 L2,9 L2,10.5 Z" transform="translate(2 2)"/>
</g><g transform="translate(162,306)"><path fill="#000000" fill-rule="evenodd" d="M1.00684547,0 C0.450780073,0 -1.97553381e-15,0.447449351 -1.97553381e-15,1.0068708 C-1.97553381e-15,1.0068708 -1.97553381e-15,0.795555556 -1.97553381e-15,1.77777778 L-1.97553381e-15,12.4444444 C-1.97553381e-15,13.4266667 -1.20059307e-09,12.9909959 -1.20059307e-09,12.9909959 C-6.73340922e-09,13.5482535 0.443716635,14 0.999807483,14 L5,14 L7,16 L9,14 L12.1307373,14 L12.9927192,14 C13.549025,14 14,13.5505095 14,12.9998043 L14,1.77777778 C14,0.795555556 14,1.0068708 14,1.0068708 C14,0.45079141 13.5500512,0 12.9931545,0 L1.00684547,0 Z M7,12 L5.796875,8.375 L2.625,7 L5.796875,5.625 L7,2 L8.203125,5.625 L11.375,7 L8.203125,8.375 L7,12 Z" transform="translate(2 1)"/>
</g><g transform="translate(18,342)"><path fill="#000000" fill-rule="evenodd" d="M10,7 L10,5 L9,5 L9,7 L7,7 L7,8 L9,8 L9,10 L10,10 L10,8 L12,8 L12,7 L10,7 Z M13,2 L8,2 L6,0 L1,0 C0.45,0 0,0.45 0,1 L0,11 C0,11.55 0.45,12 1,12 L13,12 C13.55,12 14,11.55 14,11 L14,3 C14,2.45 13.55,2 13,2 Z M13,11 L1,11 L1,3 L13,3 L13,11 Z" transform="translate(2 3)" opacity=".38"/>
</g><g transform="translate(36,144)"><path fill="#000000" fill-rule="evenodd" d="M8,4.25 C5.93,4.25 4.25,5.93 4.25,8 C4.25,10.07 5.93,11.75 8,11.75 C10.07,11.75 11.75,10.07 11.75,8 C11.75,5.93 10.07,4.25 8,4.25 L8,4.25 Z M8,0.5 C3.86,0.5 0.5,3.86 0.5,8 C0.5,12.14 3.86,15.5 8,15.5 C12.14,15.5 15.5,12.14 15.5,8 C15.5,3.86 12.14,0.5 8,0.5 L8,0.5 Z M8,14 C4.685,14 2,11.315 2,8 C2,4.685 4.685,2 8,2 C11.315,2 14,4.685 14,8 C14,11.315 11.315,14 8,14 L8,14 Z" transform="translate(1 1)"/>
</g><g transform="translate(518,54)"><defs><linearGradient id="a" x1="50.005%" x2="50.005%" y1="8.586%" y2="100.014%"><stop stop-opacity=".2" offset="0%"/><stop stop-opacity=".02" offset="100%"/></linearGradient><radialGradient id="b" cx="3.168%" cy="2.718%" r="161.248%" fx="3.168%" fy="2.718%" gradientTransform="matrix(1 0 0 .72222 0 .008)"><stop stop-color="#FFF" offset="0%"/><stop stop-color="#FFF" stop-opacity="0" offset="100%"/></radialGradient></defs><g fill="none" fill-rule="evenodd"><path fill="#90A4AE" d="M9.5 2H24l9 9v24.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C8.11928813 38 7 36.8807119 7 35.5v-31C7 3.11928813 8.11928813 2 9.5 2z"/><path fill="#000" fill-opacity=".1" d="M7 35c0 1.3807119 1.11928813 2.5 2.5 2.5h21c1.3807119 0 2.5-1.1192881 2.5-2.5v.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C8.11928813 38 7 36.8807119 7 35.5V35z"/><path fill="#FFF" fill-opacity=".2" d="M9.5 2H24v.5H9.5C8.11928813 2.5 7 3.61928813 7 5v-.5C7 3.11928813 8.11928813 2 9.5 2z"/><path fill="url(#a)" fill-rule="nonzero" d="M17.5 8l8.5 8.5V9" transform="translate(7 2)"/><path fill="#F1F1F1" d="M24 2l9 9h-6.5C25.1192881 11 24 9.88071187 24 8.5V2zm4.86 25l-5.89-10h-5.26l5.89 10h5.26zm-13.15 6h10.53l2.61-5H18.29l-2.58 5zm.92-14.55l-5.49 10L13.8 33l5.48-9.98-2.65-4.57z"/><path fill="url(#b)" fill-opacity=".1" d="M2.5 0H17l9 9v24.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C1.11928813 36 0 34.8807119 0 33.5v-31C0 1.11928813 1.11928813 0 2.5 0z" transform="translate(7 2)"/></g></g><g transform="translate(382,342)"><path fill="#16A764" fill-rule="evenodd" d="M15,0 L1,0 C0.5,0 0,0.5 0,1 L0,15 C0,15.5 0.5,16 1,16 L15,16 C15.5,16 16,15.5 16,15 L16,1 C16,0.5 15.5,0 15,0 L15,0 Z M12.4,13 L10.4,13 L8.2,9.2 L6,13 L4,13 L7.2,8 L4,3 L6,3 L8.2,6.8 L10.4,3 L12.4,3 L9.2,8 L12.4,13 L12.4,13 Z" transform="translate(1 1)"/>
</g><g transform="translate(346,324)"><title>slide_18_18</title>
<desc>Created with Sketch.</desc>
<defs/>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="slide_18_18">
<g id="ic_drive_presentation_black_24dp">
<polygon id="Shape" points="0 0 18 0 18 18 0 18"/>
<path d="M14.25,2.25 L3.75,2.25 C2.925,2.25 2.2575,2.925 2.2575,3.75 L2.2575,14.25 C2.2575,15.075 2.925,15.75 3.75,15.75 L14.25,15.75 C15.075,15.75 15.75,15.075 15.75,14.25 L15.75,3.75 C15.75,2.925 15.075,2.25 14.25,2.25 L14.25,2.25 Z M14.25,12 L3.75,12 L3.75,6 L14.25,6 L14.25,12 L14.25,12 Z" id="Shape" fill="#000000" opacity="0.539999962"/>
</g>
</g>
</g>
</g><g transform="translate(216,90)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 2)">
<path d="M6,14 L8,14 L8,12 L6,12 L6,14 L6,14 Z M3,2 L5,2 L5,0 L3,0 L3,2 L3,2 Z M6,11 L8,11 L8,9 L6,9 L6,11 L6,11 Z M3,14 L5,14 L5,12 L3,12 L3,14 L3,14 Z M0,5 L2,5 L2,3 L0,3 L0,5 L0,5 Z M0,14 L2,14 L2,12 L0,12 L0,14 L0,14 Z M0,2 L2,2 L2,0 L0,0 L0,2 L0,2 Z M0,11 L2,11 L2,9 L0,9 L0,11 L0,11 Z M12,11 L14,11 L14,9 L12,9 L12,11 L12,11 Z M12,14 L14,14 L14,12 L12,12 L12,14 L12,14 Z M12,5 L14,5 L14,3 L12,3 L12,5 L12,5 Z M12,0 L12,2 L14,2 L14,0 L12,0 L12,0 Z M6,2 L8,2 L8,0 L6,0 L6,2 L6,2 Z M9,2 L11,2 L11,0 L9,0 L9,2 L9,2 Z M6,5 L8,5 L8,3 L6,3 L6,5 L6,5 Z M9,14 L11,14 L11,12 L9,12 L9,14 L9,14 Z" opacity=".54"/>
<polygon points="0 8 14 8 14 6 0 6"/>
</g>
</g><g transform="translate(446,148)"><path fill="#4285F4" fill-rule="evenodd" d="M15,0 L1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 L15,0 Z M6,13 L6,10 L2,10 L2,6 L6,6 L6,3 L11,8 L6,13 L6,13 Z" transform="translate(1 1)"/>
</g><g transform="translate(144,90)"><path fill="#000000" fill-rule="evenodd" d="M9.01902793,9.72705177 C8.06535219,10.5218555 6.83851442,11 5.5,11 C2.46243388,11 0,8.53756612 0,5.5 C0,2.46243388 2.46243388,0 5.5,0 C8.53756612,0 11,2.46243388 11,5.5 C11,6.83851442 10.5218555,8.06535219 9.72705177,9.01902793 L9.98,9.27 L10.77,9.27 L14.76,13.27 L13.27,14.76 L9.27,10.77 L9.27,9.98 L9.01902793,9.72705177 Z M5.5,9.5 C7.709139,9.5 9.5,7.709139 9.5,5.5 C9.5,3.290861 7.709139,1.5 5.5,1.5 C3.290861,1.5 1.5,3.290861 1.5,5.5 C1.5,7.709139 3.290861,9.5 5.5,9.5 Z M8,6 L6,6 L6,8 L5,8 L5,6 L3,6 L3,5 L5,5 L5,3 L6,3 L6,5 L8,5 L8,6" transform="translate(2 2)"/>
</g><g transform="translate(572,18)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L2,0 L2,14 L0,14 L0,0 Z M12,0 L14,0 L14,14 L12,14 L12,0 Z M4,6 L12,6 L12,8 L4,8 L4,6 Z" transform="translate(2 2)"/>
</g><g transform="translate(388,280)"><g fill="none" fill-rule="evenodd">
<polygon points="0 0 18 0 18 18 0 18"/>
<path fill="#000" fill-opacity=".54" d="M2,16 L4,16 L4,14 L2,14 L2,16 L2,16 Z M8,16 L10,16 L10,14 L8,14 L8,16 L8,16 Z M5,16 L7,16 L7,14 L5,14 L5,16 L5,16 Z M2,13 L4,13 L4,11 L2,11 L2,13 L2,13 Z M2,7 L4,7 L4,5 L2,5 L2,7 L2,7 Z M2,10 L4,10 L4,8 L2,8 L2,10 L2,10 Z M14,10 L16,10 L16,8 L14,8 L14,10 L14,10 Z M14,13 L16,13 L16,11 L14,11 L14,13 L14,13 Z M14,7 L16,7 L16,5 L14,5 L14,7 L14,7 Z M11,16 L13,16 L13,14 L11,14 L11,16 L11,16 Z M14,16 L16,16 L16,14 L14,14 L14,16 L14,16 Z"/>
<polygon fill="#000" points="2 2 2 4 16 4 16 2"/>
</g>
</g><g transform="translate(554,112)"><path fill="#4285F4" fill-rule="evenodd" d="M0,0 L3,0 L3,12 L0,12 L0,0 Z M7,0 L10,0 L10,12 L7,12 L7,0 Z M3,4 L7,4 L7,7 L3,7 L3,4 Z" transform="translate(4 3)"/>
</g><g transform="translate(36,72)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L12,0 L12,12 L0,12 L0,0 Z M2,2 L12,2 L12,10 L2,10 L2,2 Z M8,5 L12,5 L12,7 L8,7 L8,5 Z M4,4 L8,4 L8,8 L4,8 L4,4 Z" transform="translate(3 3)"/>
</g><g transform="translate(220,360)"><g fill="none" fill-rule="evenodd" transform="translate(0 1)">
<polygon fill="#4285F4" points="4.71 16 15.24 16 17.85 11 7.29 11"/>
<polygon fill="#0F9D58" points="5.63 1.45 .14 11.45 2.8 16 8.28 6.02 5.63 1.45"/>
<polygon fill="#FFC107" points="17.86 10 11.97 0 6.71 0 12.6 10"/>
</g>
</g><g transform="translate(162,54)"><path fill="#010101" fill-rule="evenodd" d="M2,4 L2,6 L13,6 L13,7 L2,7 L2,9 L13,9 L13,10 L2,10 L2,12 L14,12 L14,14 L0,14 L0,13 L0,0 L2,0 L2,3 L13,3 L13,4 L2,4 Z" transform="matrix(-1 0 0 1 16 2)"/>
</g><g transform="translate(144,306)"><defs>
<path id="custom_shape_tool_a" d="M-3.55271368e-15,7 L5,0 L14.4935615,0 C15.3255445,0 15.6658422,0.584776089 15.257005,1.30024119 L12,7 L15.257005,12.6997588 C15.6673498,13.4178622 15.3284594,14 14.4935615,14 L5,14 L-3.55271368e-15,7 Z"/>
<mask id="custom_shape_tool_b" width="15.431" height="14" x="0" y="0" fill="white">
<use xlink:href="#custom_shape_tool_a"/>
</mask>
</defs>
<use fill="none" fill-rule="evenodd" stroke="#000000" stroke-width="4" mask="url(#custom_shape_tool_b)" xlink:href="#custom_shape_tool_a" transform="translate(1 2)" stroke-linecap="round" stroke-linejoin="bevel"/>
</g><g transform="translate(572,108)"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<polygon points="0 0 18 0 18 18 0 18"/>
<path d="M4.37811019,5.04508453 L0.877344389,8.56945101 C0.838009942,8.60878545 0.775074826,8.71105502 0.775074826,8.77399013 C0.775074826,8.89986036 0.853743721,8.97852926 0.979613952,8.97852926 L6.48643656,8.97852926 C7.38326196,8.97852926 8.05981445,8.30197676 8.05981445,7.40515137 L8.05981445,5.04508453 L4.37811019,5.04508453 Z M17.0794681,9.01671 L11.5726455,9.01671 C10.6758201,9.01671 9.99926758,9.69326249 9.99926758,10.5900879 L9.99926758,12.9501547 L13.6809718,12.9501547 L17.1817376,9.42578825 C17.2210721,9.38645381 17.2840072,9.28418424 17.2840072,9.22124913 C17.2840072,9.0953789 17.2053383,9.01671 17.0794681,9.01671 Z M9.48050682,0.95941242 C9.44117238,0.920077973 9.33890281,0.857142857 9.2759677,0.857142857 C9.15009747,0.857142857 9.07142857,0.935811752 9.07142857,1.06168198 L9.07142857,6.56850459 C9.07142857,7.46532999 9.74798106,8.14188248 10.6448065,8.14188248 L13.0048733,8.14188248 L13.0048733,4.46017822 L9.48050682,0.95941242 Z M5.06655528,10.0251329 L5.06655528,13.7068371 L8.59092175,17.2076029 C8.6302562,17.2469374 8.73252576,17.3098725 8.79546087,17.3098725 C8.92133111,17.3098725 9,17.2312036 9,17.1053334 L9,11.5985107 C9,10.7016853 8.32344751,10.0251329 7.42662211,10.0251329 L5.06655528,10.0251329 Z" fill="#000000"/>
</g>
</g><g transform="translate(292,126)"><path fill="#000000" fill-rule="evenodd" d="M9,0.75 C4.44375,0.75 0.75,4.44375 0.75,9 C0.75,13.55625 4.44375,17.25 9,17.25 C13.55625,17.25 17.25,13.55625 17.25,9 C17.25,4.44375 13.55625,0.75 9,0.75 L9,0.75 Z M9,14.625 C5.893125,14.625 3.375,12.106875 3.375,9 C3.375,5.893125 5.893125,3.375 9,3.375 C10.516875,3.375 11.7890625,3.9328125 12.763125,4.84125 L11.150625,6.45375 C10.5665625,5.8978125 9.8259375,5.6128125 8.9990625,5.6128125 C7.1634375,5.6128125 5.675625,7.1653125 5.675625,9.0009375 C5.675625,10.8365625 7.164375,12.388125 9,12.388125 C10.6659375,12.388125 11.80125,11.4328125 12.0309375,10.123125 L9,10.123125 L9,7.96875 L14.2978125,7.96875 C14.3634375,8.3390625 14.4009375,8.7253125 14.4009375,9.1275 C14.4009375,12.34125 12.2484375,14.625 9,14.625 L9,14.625 Z"/>
</g><g transform="translate(310,324)"><path fill="#000000" fill-rule="evenodd" d="M0,14 L10,14 L10,12 L0,12 L0,14 Z M10,4 L0,4 L0,6 L10,6 L10,4 Z M0,0 L0,2 L14,2 L14,0 L0,0 Z M0,10 L14,10 L14,8 L0,8 L0,10 Z" transform="translate(2 2)"/>
</g><g transform="translate(216,198)"><path fill="#000000" fill-rule="evenodd" d="M7,0 L5,0 L0.5,12 L2.5,12 L3.62,9 L8.37,9 L9.49,12 L11.49,12 L7,0 L7,0 Z M4.38,7 L6,2.67 L7.62,7 L4.38,7 L4.38,7 Z" transform="translate(3 1)"/>
</g><g transform="translate(90,36)"><g fill="none" fill-rule="evenodd" transform="translate(0 2)">
<polygon fill="#4285F4" points="9.42 32 30.48 32 35.7 22 14.58 22"/>
<polygon fill="#0F9D58" points="11.26 2.9 .28 22.9 5.6 32 16.56 12.04 11.26 2.9"/>
<polygon fill="#FFC107" points="35.72 20 23.94 0 13.42 0 25.2 20"/>
</g>
</g><g transform="translate(90,252)"><path fill="#000000" fill-rule="evenodd" d="M0,6 C0,2.6862915 2.69303423,0 6,0 L12,0 L12,12 L6,12 C2.6862915,12 0,9.30696577 0,6 Z M2,6 C2,3.790861 3.7877996,2 6.009763,2 L12,2 L12,10 L6.009763,10 C3.79523205,10 2,8.20464385 2,6 Z M9,5 L12,5 L12,7 L9,7 L9,5 Z M5,4 L9,4 L9,8 L5,8 L5,4 Z" transform="translate(3 3)"/>
</g><g transform="translate(572,216)"><path fill="#000000" fill-rule="evenodd" d="M6,0.75875 L1.755,4.99625 C0.585,6.16625 0,7.72625 0,9.22625 C0,10.72625 0.585,12.30875 1.755,13.47875 C2.925,14.64875 4.4625,15.24125 6,15.24125 C7.5375,15.24125 9.075,14.64875 10.245,13.47875 C11.415,12.30875 12,10.72625 12,9.22625 C12,7.72625 11.415,6.16625 10.245,4.99625 L6,0.75875 Z M1.5,9 C1.5,8 1.965,7.04375 2.82,6.19625 L6,3 L9.18,6.23 C10.035,7.08125 10.5,8 10.5,9 L1.5,9 Z" transform="translate(3 1)"/>
</g><g transform="translate(274,0)"><path fill="#000000" fill-rule="evenodd" d="M1.32,2.91 C1.845,2.37375 2.37,1.89375 2.60625,1.99125 C2.9775,2.145 2.59875,2.77125 2.38125,3.135 C2.19375,3.45 0.23625,6.04875 0.23625,7.8675 C0.23625,8.8275 0.5925,9.6225 1.245,10.1025 C1.8075,10.51875 2.54625,10.64625 3.225,10.4475 C4.0275,10.21125 4.6875,9.40125 5.52,8.37375 C6.4275,7.25625 7.6425,5.79375 8.58,5.79375 C9.8025,5.79375 9.8175,6.55125 9.9,7.14 C7.0575,7.6275 5.86125,9.89625 5.86125,11.175 C5.86125,12.45375 6.94125,13.49625 8.265,13.49625 C9.48375,13.49625 11.48625,12.49875 11.7825,8.92125 L13.62375,8.92125 L13.62375,7.04625 L11.77125,7.04625 C11.65875,5.80875 10.95375,3.9 8.74875,3.9 C7.06125,3.9 5.61,5.3325 5.0475,6.03375 C4.6125,6.5775 3.50625,7.89 3.33375,8.0775 C3.1425,8.29875 2.8275,8.7075 2.4975,8.7075 C2.16375,8.7075 1.96125,8.08125 2.22375,7.26375 C2.48625,6.4425 3.27375,5.11875 3.61125,4.6275 C4.2,3.7725 4.5825,3.18375 4.5825,2.1675 C4.5825,0.5175 3.3525,0 2.7,0 C1.71,0 0.8475,0.75 0.65625,0.94125 C0.39,1.21125 0.165,1.4325 -8.8817842e-16,1.635 L1.32,2.91 L1.32,2.91 Z M8.2875,11.6625 C8.055,11.6625 7.73625,11.4675 7.73625,11.11875 C7.73625,10.66875 8.28,9.46875 9.8925,9.045 C9.66,11.06625 8.8125,11.6625 8.2875,11.6625 L8.2875,11.6625 Z" transform="translate(3 2)"/>
</g><g transform="translate(328,0)"><path fill="#000000" fill-rule="evenodd" d="M7,9 L4,9 L4,11.5 L0.5,8 L4,4.5 L4,7 L7,7 L7,4 L9,4 L9,7 L12,7 L12,9 L9,9 L9,12 L11.5,12 L8,15.5 L4.5,12 L7,12 L7,9 Z M12,11.5 L15.5,8 L12,4.5 L12,11.5 Z M4.5,4 L8,0.5 L11.5,4 L4.5,4 Z" transform="translate(1 1)"/>
</g><g transform="translate(454,342)"><path fill="#000000" fill-rule="evenodd" d="M1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 L1,0 Z M2,6 L14,6 L14,14 L2,14 L2,6 Z M11,2 L14,2 L14,4 L11,4 L11,2 Z" transform="translate(1 1)"/>
</g><g transform="translate(90,270)"><path fill="#000000" fill-rule="evenodd" d="M4,8 L4,13 L6,13 L6,2 L8,2 L8,13 L10,13 L10,2 L12,2 L12,0 L4,0 C1.79,0 0,1.79 0,4 C0,6.21 1.79,8 4,8 L4,8 Z" transform="translate(3 3)"/>
</g><g transform="translate(198,216)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L0,14 L14,14 L14,0 L0,0 L0,0 Z M6,12 L2,12 L2,8 L6,8 L6,12 L6,12 Z M6,6 L2,6 L2,2 L6,2 L6,6 L6,6 Z M12,12 L8,12 L8,8 L12,8 L12,12 L12,12 Z M12,6 L8,6 L8,2 L12,2 L12,6 L12,6 Z" transform="translate(2 2)"/>
</g><g transform="translate(36,162)"><polygon fill="#000000" fill-rule="evenodd" points="0 0 4 4 8 0" transform="translate(5 7)"/>
</g><g transform="translate(500,36)"><polygon fill="#000000" fill-rule="evenodd" points="7.53 1.53 6.47 .47 4 2.94 1.53 .47 .47 1.53 2.94 4 .47 6.47 1.53 7.53 4 5.06 6.47 7.53 7.53 6.47 5.06 4" transform="translate(5 5)"/>
</g><g transform="translate(328,36)"><defs><style>.cls-1{fill:none;}</style></defs><title>ic_process_1_18px</title><g id="Layer_2" data-name="Layer 2"><g id="icon"><polygon points="4 6 1 6 1 12 4 12 7 9 4 6"/><polygon points="9 6 6 6 9 9 6 12 9 12 12 9 9 6"/><polygon points="14 6 11 6 14 9 11 12 14 12 17 9 14 6"/><rect class="cls-1" width="18" height="18"/></g></g></g><g transform="translate(36,180)"><path fill="#000000" fill-rule="evenodd" d="M12.4444444,0 L1.55555556,0 C0.692222222,0 0,0.7 0,1.55555556 L0,12.4444444 C0,13.3 0.692222222,14 1.55555556,14 L12.4444444,14 C13.3077778,14 14,13.3 14,12.4444444 L14,1.55555556 C14,0.7 13.3077778,0 12.4444444,0 L12.4444444,0 Z M5.5,10.75 L1.75,7 L2.8075,5.9425 L5.5,8.6275 L11.1925,2.935 L12.25,4 L5.5,10.75 L5.5,10.75 Z" transform="translate(2 2)"/>
</g><g transform="translate(162,198)"><path fill="#000000" fill-rule="evenodd" d="M12.3621139,11.5 C13.3843213,10.2832329 14,8.71351616 14,7 C14,3.13400675 10.8659932,0 7,0 C3.13400675,0 0,3.13400675 0,7 C0,8.71351616 0.615678738,10.2832329 1.63788615,11.5 L0,11.5 L0,13.5 L4.00019251,13.5 C4.55628335,13.5 5,13.0522847 5,12.5 L5,11.5 L4.75,11.5 L4.76344287,11.4731143 C3.12485989,10.6522258 2,8.95747546 2,7 C2,4.23857625 4.23857625,2 7,2 C9.76142375,2 12,4.23857625 12,7 C12,8.95747546 10.8751401,10.6522258 9.23655713,11.4731143 L9.25,11.5 L9,11.5 L9,12.5 C9,13.0561352 9.44762906,13.5 9.99980749,13.5 L14,13.5 L14,11.5 L12.3621139,11.5 Z" transform="translate(2 2.5)"/>
</g><g transform="translate(472,324)"><defs><style>.cls-1{fill:none;}</style></defs><title>ic_timeline_1_18px</title><g id="Layer_2" data-name="Layer 2"><g id="icon"><path d="M15,7a2,2,0,0,0-1.72,1H10.72A2,2,0,0,0,7.28,8H4.72a2,2,0,1,0,0,2H7.28a2,2,0,0,0,3.45,0h2.55A2,2,0,1,0,15,7Z"/><rect class="cls-1" width="18" height="18"/></g></g></g><g transform="translate(292,144)"><path fill="#FFFFFF" fill-rule="evenodd" d="M0,1 C0,0.45 0.45,0 1,0 L15,0 C15.55,0 16,0.45 16,1 L16,12 C16,12.55 15.55,13 15,13 L3.5,13 L0,16 L0,1 Z M3,11 L3,8.53 L9.88,1.65 C10.08,1.45 10.39,1.45 10.59,1.65 L12.36,3.42 C12.56,3.62 12.56,3.93 12.36,4.13 L5.47,11 L3,11 Z M7.5,11 L9.5,9 L13,9 L13,11 L7.5,11 Z" transform="translate(1 1)"/>
</g><g transform="translate(238,396)"><path fill="#000000" fill-rule="evenodd" d="M10,7 L10,5 L9,5 L9,7 L7,7 L7,8 L9,8 L9,10 L10,10 L10,8 L12,8 L12,7 L10,7 Z M13,2 L8,2 L6,0 L1,0 C0.45,0 0,0.45 0,1 L0,11 C0,11.55 0.45,12 1,12 L13,12 C13.55,12 14,11.55 14,11 L14,3 C14,2.45 13.55,2 13,2 Z M13,11 L1,11 L1,3 L13,3 L13,11 Z" transform="translate(2 3)"/>
</g><g transform="translate(90,288)"><polygon fill="#000000" fill-rule="evenodd" points="12 5 3.125 5 7.06 1.06 6 0 0 6 6 12 7.06 10.94 3.125 7 12 7" transform="translate(3 3)"/>
</g><g transform="translate(446,18)"><path fill="#000000" fill-rule="evenodd" d="M8,0.5 C3.85625,0.5 0.5,3.85625 0.5,8 C0.5,12.14375 3.85625,15.5 8,15.5 C12.14375,15.5 15.5,12.14375 15.5,8 C15.5,3.85625 12.14375,0.5 8,0.5 Z M7.25,13.9475 C4.29125,13.58 2,11.06 2,8 C2,7.53875 2.05625,7.08875 2.1575,6.6575 L5.75,10.25 L5.75,11 C5.75,11.82875 6.42125,12.5 7.25,12.5 L7.25,13.9475 Z M12.42125,12.04625 C12.23,11.43875 11.6675,11 11,11 L10.25,11 L10.25,8.75 C10.25,8.3375 9.9125,8 9.5,8 L5,8 L5,6.5 L6.5,6.5 C6.9125,6.5 7.25,6.1625 7.25,5.75 L7.25,4.25 L8.75,4.25 C9.57875,4.25 10.25,3.57875 10.25,2.75 L10.25,2.43875 C12.4475,3.3275 14,5.48 14,8 C14,9.56 13.4,10.9775 12.42125,12.04625 Z" transform="translate(1 1)"/>
</g><g transform="translate(90,198)"><path fill="#000000" fill-rule="evenodd" d="M6,14 L8,14 L8,12 L6,12 L6,14 L6,14 Z M3,8 L5,8 L5,6 L3,6 L3,8 L3,8 Z M3,2 L5,2 L5,0 L3,0 L3,2 L3,2 Z M6,11 L8,11 L8,9 L6,9 L6,11 L6,11 Z M3,14 L5,14 L5,12 L3,12 L3,14 L3,14 Z M0,5 L2,5 L2,3 L0,3 L0,5 L0,5 Z M0,14 L2,14 L2,12 L0,12 L0,14 L0,14 Z M0,2 L2,2 L2,0 L0,0 L0,2 L0,2 Z M0,8 L2,8 L2,6 L0,6 L0,8 L0,8 Z M6,8 L8,8 L8,6 L6,6 L6,8 L6,8 Z M0,11 L2,11 L2,9 L0,9 L0,11 L0,11 Z M12,11 L14,11 L14,9 L12,9 L12,11 L12,11 Z M12,14 L14,14 L14,12 L12,12 L12,14 L12,14 Z M12,8 L14,8 L14,6 L12,6 L12,8 L12,8 Z M12,5 L14,5 L14,3 L12,3 L12,5 L12,5 Z M12,0 L12,2 L14,2 L14,0 L12,0 L12,0 Z M6,2 L8,2 L8,0 L6,0 L6,2 L6,2 Z M9,2 L11,2 L11,0 L9,0 L9,2 L9,2 Z M6,5 L8,5 L8,3 L6,3 L6,5 L6,5 Z M9,14 L11,14 L11,12 L9,12 L9,14 L9,14 Z M9,8 L11,8 L11,6 L9,6 L9,8 L9,8 Z" transform="translate(2 2)" opacity=".54"/>
</g><g transform="translate(162,36)"><g fill="none" fill-rule="evenodd">
<polygon points="0 0 18 0 18 18 0 18"/>
<path fill="#000000" d="M4,4 L1,4 L1,6 L4,6 L4,12.0018986 C4,13.1054196 4.88665231,14 5.99797957,14 L11.9995124,14 L11.9995124,17 L13.9970343,17 L13.9970343,14 L17,14 L17,12.0193564 L6,12 L6,1 L4,1 L4,4 Z M7,6 L7,4 L11.9940809,4 C13.1019194,4 14,4.88655484 14,6.00591905 L14,11 L12,11 L12,6.00009578 L7,6 Z"/>
</g>
</g><g transform="translate(144,198)"><path fill="#FFFFFF" fill-rule="evenodd" d="M3,6.4375 L3,16.125 C3,16.60625 3.39375,17 3.875,17 L16.125,17 C16.60625,17 17,16.60625 17,16.125 L17,3.875 C17,3.39375 16.60625,3 16.125,3 L6.4375,3 L9,3 L9,5 L15,5 L15,15 L5,15 L5,9 L3,9 L3,6.4375 Z M6,14 L6,9 L8,9 L8,14 L6,14 Z M9,14 L9,6 L11,6 L11,14 L9,14 Z M5,3 L5,0 L3,0 L3,3 L0,3 L0,5 L3,5 L3,8 L5,8 L5,5 L8,5 L8,3 L5,3 Z M12,14 L12,10 L14,10 L14,14 L12,14 Z"/>
</g><g transform="translate(54,198)"><path fill="#000000" fill-rule="evenodd" d="M10.25,2 L6,11.0140969 L8,11.0140969 L8.5,9.8 L13.5,9.8 L14,11 L16,11.0140969 L11.75,2 L10.25,2 Z M11,4 L12.87,8.02 L9.13,8.02 L11,4 Z M6,12 L4,12 L4,2.13162821e-14 L2,2.13162821e-14 L2,12 L4.4408921e-15,12 L3,15 L6,12 Z" transform="translate(1 2)"/>
</g><g transform="translate(274,360)"><g fill="none" fill-rule="evenodd" transform="translate(1 2)">
<path fill="#E3E3E3" fill-rule="nonzero" d="M0,0 L16,0 L16,7 L0,7 L0,0 Z M5,2 C5,2.55613518 5.44358641,3 5.99077797,3 L10.009222,3 C10.5490248,3 11,2.55228475 11,2 C11,1.44386482 10.5564136,1 10.009222,1 L5.99077797,1 C5.45097518,1 5,1.44771525 5,2 Z"/>
<path fill="#EEEEEE" fill-rule="nonzero" d="M0,7 L16,7 L16,12.9970707 C16,13.5509732 15.5553691,14 14.9991283,14 L1.00087166,14 C0.448105505,14 0,13.5621186 0,12.9970707 L0,7 Z"/>
<path fill="#DB4437" fill-rule="nonzero" d="M13.9333333,10 C12.8666667,7.8 10.6,6.33333333 8,6.33333333 C5.93333333,6.33333333 4.06666667,7.26666667 2.86666667,8.73333333 L5.06666667,12.5333333 C5.26666667,11.1333333 6.53333333,10 8,10 L13.9333333,10 Z"/>
<path fill="#FFC107" d="M11,13 C11,13.340036 10.945801,13.6945195 10.8374031,14 L14.5898454,14 C14.6404232,13.6706304 14.6666667,13.3429425 14.6666667,13 C14.6666667,12.3234979 14.5713218,11.636189 14.3806322,11 C14.3806322,11 10.2210197,11.0025248 10.2210197,11.0025248 C10.6928839,11.5295641 11,12.2428452 11,13 Z"/>
<path fill="#0F9D58" d="M4.68345602,14 C3.84939541,12.5728296 2.18127421,9.70816121 2.18127421,9.70816121 C1.64681549,10.6915234 1.33333333,11.8196382 1.33333333,13 C1.33333333,13.3378006 1.35798093,13.6761884 1.40561092,14 L4.68345602,14 Z"/>
<path fill="#4285F4" fill-rule="nonzero" d="M9.73533564,14 C9.90371179,13.7069662 10,13.3622127 10,13 C10,11.8954305 9.1045695,11 8,11 C6.8954305,11 6,11.8954305 6,13 C6,13.3643447 6.09742508,13.7059346 6.2676451,14.0001395 L9.73533564,14 Z"/>
</g>
</g><g transform="translate(126,36)"><g fill="none" fill-rule="evenodd" transform="rotate(-90 9 9)">
<polygon points="0 0 18 0 18 18 0 18"/>
<path fill="#000" d="M2,16 L4,16 L4,14 L2,14 L2,16 L2,16 Z M8,16 L10,16 L10,14 L8,14 L8,16 L8,16 Z M5,16 L7,16 L7,14 L5,14 L5,16 L5,16 Z M2,13 L4,13 L4,11 L2,11 L2,13 L2,13 Z M2,7 L4,7 L4,5 L2,5 L2,7 L2,7 Z M2,10 L4,10 L4,8 L2,8 L2,10 L2,10 Z M14,10 L16,10 L16,8 L14,8 L14,10 L14,10 Z M14,13 L16,13 L16,11 L14,11 L14,13 L14,13 Z M14,7 L16,7 L16,5 L14,5 L14,7 L14,7 Z M11,16 L13,16 L13,14 L11,14 L11,16 L11,16 Z M14,16 L16,16 L16,14 L14,14 L14,16 L14,16 Z" opacity=".54"/>
<polygon fill="#000" points="2 2 2 4 16 4 16 2"/>
</g>
</g><g transform="translate(382,202)"><path fill="#000000" fill-rule="evenodd" d="M3,3 L14,3 C14.5522847,3 15,3.44771525 15,4 L15,12 C15,12.5522847 14.5522847,13 14,13 L3,13 C2.44771525,13 2,12.5522847 2,12 L2,4 L2,4 C2,3.44771525 2.44771525,3 3,3 L3,3 Z M5,13 L8,13 L5,16 L5,13 Z"/>
</g><g transform="translate(126,180)"><path fill="#000000" fill-rule="evenodd" d="M5.5,12.9170416 C2.66228666,12.4409635 0.5,9.97299629 0.5,7 L2,7 C2,9.48528137 4.01471863,11.5 6.5,11.5 C8.98528137,11.5 11,9.48528137 11,7 L12.5,7 C12.5,9.97299629 10.3377133,12.4409635 7.5,12.9170416 L7.5,16 L5.5,16 L5.5,12.9170416 Z M6.5,10 C5.11666667,10 4,8.88333333 4,7.5 L4,2.5 C4,1.11666667 5.11666667,0 6.5,0 C7.88333333,0 9,1.11666667 9,2.5 L8.99166667,7.5 C8.99166667,8.88333333 7.88333333,10 6.5,10 Z" transform="translate(3 1)"/>
</g><g transform="translate(482,292)"><path fill="#000000" fill-rule="evenodd" d="M10.2675644,11 L9.9951185,11 C8.89300027,11 8,10.1052289 8,8.99967027 L8,5.00032973 C8,2.79517529 6.21014773,1 4.0048815,1 L3.73243561,1 C3.38662619,0.40219863 2.74028236,0 2,0 C0.8954305,0 0,0.8954305 0,2 C0,3.1045695 0.8954305,4 2,4 C2.74028236,4 3.38662619,3.59780137 3.73243561,3 L4.0048815,3 C5.10424652,3 6,3.89841745 6,5.00032973 L6,8.99967027 C6,11.2089124 7.78754286,13 9.9951185,13 L10.2675644,13 C10.6133738,13.5978014 11.2597176,14 12,14 C13.1045695,14 14,13.1045695 14,12 C14,10.8954305 13.1045695,10 12,10 C11.2597176,10 10.6133738,10.4021986 10.2675644,11 Z" transform="translate(2 2)"/>
</g><g transform="translate(54,18)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 2)">
<path d="M8,3 L6,3 L6,5 L8,5 L8,3 L8,3 Z M11,6 L9,6 L9,8 L11,8 L11,6 L11,6 Z M8,6 L6,6 L6,8 L8,8 L8,6 L8,6 Z M8,9 L6,9 L6,11 L8,11 L8,9 L8,9 Z M5,6 L3,6 L3,8 L5,8 L5,6 L5,6 Z" opacity=".54"/>
<path d="M0,0 L14,0 L14,14 L0,14 L0,0 Z M12,12 L12,2 L2,2 L2,12 L12,12 Z"/>
</g>
</g><g transform="translate(572,36)"><path fill="#000000" fill-rule="evenodd" d="M15,3 C15.553,3 16,2.553 16,2 L16,1 C16,0.447 15.553,0 15,0 L13,0 L13,1 L15,1 L15,2 L14,2 C13.447,2 13,2.447 13,3 L13,5 L16,5 L16,4 L14,4 L14,3 L15,3 L15,3 Z M0,5 L3.199,5 L2,13 L4,13 L5,5 L7,5 L7,13 L9,13 L9,5 L11,5 L11,3 L0,3 L0,5 L0,5 Z" transform="translate(1 2)"/>
</g><g transform="translate(446,202)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 2)">
<path d="M3,14 L5,14 L5,12 L3,12 L3,14 L3,14 Z M0,5 L2,5 L2,3 L0,3 L0,5 L0,5 Z M0,2 L2,2 L2,0 L0,0 L0,2 L0,2 Z M3,8 L5,8 L5,6 L3,6 L3,8 L3,8 Z M3,2 L5,2 L5,0 L3,0 L3,2 L3,2 Z M0,14 L2,14 L2,12 L0,12 L0,14 L0,14 Z M0,8 L2,8 L2,6 L0,6 L0,8 L0,8 Z M0,11 L2,11 L2,9 L0,9 L0,11 L0,11 Z M12,0 L12,2 L14,2 L14,0 L12,0 L12,0 Z M12,8 L14,8 L14,6 L12,6 L12,8 L12,8 Z M12,14 L14,14 L14,12 L12,12 L12,14 L12,14 Z M12,5 L14,5 L14,3 L12,3 L12,5 L12,5 Z M12,11 L14,11 L14,9 L12,9 L12,11 L12,11 Z M9,14 L11,14 L11,12 L9,12 L9,14 L9,14 Z M9,8 L11,8 L11,6 L9,6 L9,8 L9,8 Z M9,2 L11,2 L11,0 L9,0 L9,2 L9,2 Z" opacity=".54"/>
<polygon points="6 14 8 14 8 0 6 0"/>
</g>
</g><g transform="translate(180,90)"><defs>
<path id="shapes_plus_a" d="M11,7 L11,2 L7,2 L7,7 L2,7 L2,11 L7,11 L7,16 L11,16 L11,11 L16,11 L16,7 L11,7 Z"/>
<mask id="shapes_plus_b" width="14" height="14" x="0" y="0" fill="white">
<use xlink:href="#shapes_plus_a"/>
</mask>
</defs>
<use fill="none" fill-rule="evenodd" stroke="#000000" stroke-width="2" mask="url(#shapes_plus_b)" xlink:href="#shapes_plus_a"/>
</g><g transform="translate(216,324)"><path fill="#000000" fill-rule="evenodd" d="M6,10.5 C3.51,10.5 1.5,8.49 1.5,6 C1.5,3.51 3.51,1.5 6,1.5 C7.24,1.5 8.36,2.02 9.17,2.83 L7,5 L12,5 L12,0 L10.24,1.76 C9.15,0.68 7.66,0 6,0 C2.69,0 0.01,2.69 0.01,6 C0.01,9.31 2.69,12 6,12 C8.97,12 11.43,9.84 11.9,7 L10.38,7 C9.92,9 8.14,10.5 6,10.5 L6,10.5 Z" transform="matrix(-1 0 0 1 15.01 3)"/>
</g><g transform="translate(162,216)"><path fill="#000000" fill-rule="evenodd" d="M16,1 C16,0.45 15.55,0 15,0 L1,0 C0.45,0 0,0.45 0,1 L0,12 C0,12.55 0.45,13 1,13 L12.5,13 L16,16 L16,1 L16,1 Z" transform="translate(1 1)"/>
</g><g transform="translate(54,72)"><path fill="#000000" fill-rule="evenodd" d="M9.01902793,9.72705177 C8.06535219,10.5218555 6.83851442,11 5.5,11 C2.46243388,11 0,8.53756612 0,5.5 C0,2.46243388 2.46243388,0 5.5,0 C8.53756612,0 11,2.46243388 11,5.5 C11,6.83851442 10.5218555,8.06535219 9.72705177,9.01902793 L9.98,9.27 L10.77,9.27 L14.76,13.27 L13.27,14.76 L9.27,10.77 L9.27,9.98 L9.01902793,9.72705177 Z M5.5,9.5 C7.709139,9.5 9.5,7.709139 9.5,5.5 C9.5,3.290861 7.709139,1.5 5.5,1.5 C3.290861,1.5 1.5,3.290861 1.5,5.5 C1.5,7.709139 3.290861,9.5 5.5,9.5 Z M3,6 L3,5 L8,5 L8,6 L3,6 Z" transform="translate(2 2)"/>
</g><g transform="translate(72,324)"><path fill="#000000" fill-rule="evenodd" d="M0,12.88 L0,16 L3.12,16 L12,7.12 L8.88,4 L0,12.88 L0,12.88 Z M14.76,4.37 C15.09,4.04 15.09,3.52 14.76,3.19 L12.81,1.24 C12.48,0.91 11.96,0.91 11.63,1.24 L10,2.88 L13.12,6 L14.76,4.37 L14.76,4.37 Z" transform="translate(2)"/>
</g><g transform="translate(90,18)"><path fill="#DB4437" fill-rule="evenodd" d="M15,0 L1,0 C0.5,0 0,0.5 0,1 L0,15 C0,15.5 0.5,16 1,16 L15,16 C15.5,16 16,15.5 16,15 L16,1 C16,0.5 15.5,0 15,0 L15,0 Z M13,13 L8,13 L8,8.2 C7.5,8.7 6.8,9 6,9 C4.3,9 3,7.7 3,6 C3,4.3 4.3,3 6,3 C7.7,3 9,4.3 9,6 C9,6.8 8.7,7.5 8.2,8 L13,8 L13,13 L13,13 Z" transform="translate(1 1)"/>
</g><g transform="translate(234,198)"><path fill="#000000" fill-rule="evenodd" d="M3,6.4375 L3,16.125 C3,16.60625 3.39375,17 3.875,17 L16.125,17 C16.60625,17 17,16.60625 17,16.125 L17,3.875 C17,3.39375 16.60625,3 16.125,3 L6.4375,3 L9,3 L9,5 L15,5 L15,15 L5,15 L5,9 L3,9 L3,6.4375 Z M6,14 L6,9 L8,9 L8,14 L6,14 Z M9,14 L9,6 L11,6 L11,14 L9,14 Z M5,3 L5,0 L3,0 L3,3 L0,3 L0,5 L3,5 L3,8 L5,8 L5,5 L8,5 L8,3 L5,3 Z M12,14 L12,10 L14,10 L14,14 L12,14 Z"/>
</g><g transform="translate(198,306)"><path fill="#000000" fill-rule="evenodd" d="M9,2 L7,0 L1,0 C0.45,0 0,0.45 0,1 L0,13 C0,13.55 0.45,14 1,14 L15,14 C15.55,14 16,13.55 16,13 L16,3 C16,2.45 15.55,2 15,2 L9,2 Z M10.5,4.75 C11.47,4.75 12.25,5.53 12.25,6.5 C12.25,7.47 11.47,8.25 10.5,8.25 C9.53,8.25 8.75,7.47 8.75,6.5 C8.75,5.53 9.53,4.75 10.5,4.75 L10.5,4.75 Z M14,12 L7,12 L7,10.75 C7,9.58 9.33,9 10.5,9 C11.67,9 14,9.58 14,10.75 L14,12 L14,12 Z" transform="translate(1 2)"/>
</g><g transform="translate(220,396)"><path fill="#000000" fill-rule="evenodd" d="M2,5 L4.00104344,5 C4.55275191,5 5,4.55733967 5,4.00104344 L5,2.99895656 C5,2.44724809 4.55733967,2 4.00104344,2 L2,2 L2,5 Z M7,3.25 C7,1.52125 6.1025,0 4.375,0 L0,0 L0,12 L2,12 L1.93375,7.0025 L3,7 C3.56875,7 5,9.43125 5,10 L5,12 L7,12 L7,10 C7,9.3875 6.806875,8.190625 5.78125,7.12875 C6.789375,6.61125 7,5.713125 7,4.5 L7,3.25 Z M9,0 L9,1 L11,1 L11,2 L10,2 C9.448,2 9,2.4475 9,3 L9,5 L12,5 L12,4 L10,4 L10,3 L11,3 C11.5525,3 12,2.5525 12,2 L12,1 C12,0.4475 11.5525,0 11,0 L9,0 Z" transform="translate(3 3)"/>
</g><g transform="translate(72,234)"><path fill="#000000" fill-rule="evenodd" d="M12,9 C12,5.67 7,0 7,0 C7,0 6.15,0.97 5.15,2.33 L11.98,9.16 L12,9 L12,9 Z M1.55,1.27 L0.27,2.55 L3.16,5.44 C2.49,6.69 2,7.96 2,9 C2,11.76 4.24,14 7,14 C8.31,14 9.49,13.48 10.39,12.66 L12.73,15 L14,13.73 L1.55,1.27 L1.55,1.27 Z" transform="translate(2 2)"/>
</g><g transform="translate(126,306)"><polygon fill="#000000" fill-rule="evenodd" points="-2 2 2 6 6 2" transform="rotate(-90 8 3)"/>
</g><g transform="translate(36,234)"><g fill="none" fill-rule="evenodd">
<polygon fill="#000" fill-rule="nonzero" points="4 9 8 9 8 11 10 11 10 9 14 9 14 11 16 11 16 7 15 7 14 7 10 7 8 7 4 7 3 7 2 7 2 11 4 11"/>
<circle cx="9" cy="15" r="2" fill="#000" fill-rule="nonzero"/>
<circle cx="15" cy="15" r="2" fill="#000" fill-rule="nonzero"/>
<circle cx="3" cy="15" r="2" fill="#000" fill-rule="nonzero"/>
<rect width="18" height="18"/>
<circle cx="9" cy="3" r="2" fill="#000" fill-rule="nonzero"/>
</g>
</g><g transform="translate(90,360)"><path fill="#000000" fill-rule="evenodd" d="M9.01902793,9.72705177 C8.06535219,10.5218555 6.83851442,11 5.5,11 C2.46243388,11 0,8.53756612 0,5.5 C0,2.46243388 2.46243388,0 5.5,0 C8.53756612,0 11,2.46243388 11,5.5 C11,6.83851442 10.5218555,8.06535219 9.72705177,9.01902793 L9.98,9.27 L10.77,9.27 L14.76,13.27 L13.27,14.76 L9.27,10.77 L9.27,9.98 L9.01902793,9.72705177 Z M5.5,9.5 C7.709139,9.5 9.5,7.709139 9.5,5.5 C9.5,3.290861 7.709139,1.5 5.5,1.5 C3.290861,1.5 1.5,3.290861 1.5,5.5 C1.5,7.709139 3.290861,9.5 5.5,9.5 Z" transform="translate(2 2)"/>
</g><g transform="translate(144,54)"><path fill="#000000" fill-rule="evenodd" d="M0,14 L3,14 L3,5 L0,5 L0,14 L0,14 Z M14.7325,5 L10,5 L10.48,1.8225 L10.5025,1.5825 C10.5025,1.275 10.375,0.99 10.1725,0.7875 L9.3775,0 L4.4425,4.9425 C4.165,5.2125 4,5.5875 4,6 L4,13.5 C4,14.325 4.675,15 5.5,15 L12.25,15 C12.8725,15 13.405,14.625 13.63,14.085 L15.895,8.7975 C15.9625,8.625 16,8.445 16,8.25 C16,8.25 15.9277936,7.02252557 16,6.5 C16.0052936,6.46169224 16,6.5675 16,6.5675 L16,6.5 C16,5.675 15.5575,5 14.7325,5 Z" transform="rotate(180 8.501 8.5)"/>
</g><g transform="translate(518,36)"><path fill="#000000" fill-rule="evenodd" d="M2,2 L0,2 L0,12.9975267 C0,13.544239 0.448822582,14 1.00247329,14 L12,14 L12,12 L12.9975267,12 C13.544239,12 14,11.5511774 14,10.9975267 L14,1.00247329 C14,0.455760956 13.5511774,0 12.9975267,0 L3.00247329,0 C2.45576096,0 2,0.448822582 2,1.00247329 L2,2 L1,2 L1,13 L12,13 L12,12 L3.00247329,12 C2.44882258,12 2,11.544239 2,10.9975267 L2,2 Z M5,4 L8.59,4 L4.76,7.83 L6.17,9.24 L10,5.41 L10,9 L12,9 L12,2 L5,2 L5,4 Z" transform="translate(2 2)"/>
</g><g transform="translate(72,342)"><polygon fill="#000000" fill-rule="evenodd" points="5 0 .5 4.5 1.56 5.56 5 2.12 8.44 5.56 9.5 4.5" transform="translate(4 6)"/>
</g><g transform="translate(180,324)"><path fill="#000000" fill-rule="evenodd" d="M11.9925,14.0000001 L11.9925,16.0000001 L1.00445557,16.0000001 C1.00445557,16.0000001 0,16.0000001 0,15.0042115 L0,2.00689108 L2,2.00000019 L2.0075,2.00889226 L2.0075,12.9946834 C2.0075,13.7129334 2.16375,14.0000001 2.9925,14.0000001 L11.9925,14.0000001 Z M12,5.00000009 L12,10.4461539 C12,10.9434039 11.9584375,11.0000001 11.475,11.0000001 L5.520625,11.0000001 C5.0371875,11.0000001 5,10.9434039 5,10.4461539 L5.004375,2.55384625 C5.004375,2.05659625 5.0415625,2.00000009 5.525,2.00000009 L9,2.00000009 L9,5.00000009 L12,5.00000009 Z M4,9.27183272e-08 C4,9.27183272e-08 3,9.27183272e-08 3,1.00158713 L3,12.0000002 C3,13.0000001 4.00701904,13.0000001 4,13.0000001 L12.9976196,13.0000001 C13.7592811,13.0000001 14,12.7112604 14,12.0000001 L14,3.44283088 L10.3525798,9.27183272e-08 L4,9.27183272e-08 Z" transform="matrix(1 0 0 -1 2 17)"/>
</g><g transform="translate(274,378)"><path fill="#000000" fill-rule="evenodd" d="M1,8 L1,12 L13,12 L13,0 L1,0 L1,4 L0,4 L0,8 L1,8 Z M3,8 L3,10 L13,10 L13,2 L3,2 L3,4 L4,4 L4,8 L3,8 Z M4,5 L13,5 L13,7 L4,7 L4,5 Z" transform="translate(2 3)"/>
</g><g transform="translate(126,342)"><path fill="#000000" fill-rule="evenodd" d="M0,1.00684547 C0,0.450780073 0.449948758,0 1.00684547,0 L12.9931545,0 C13.5492199,0 14,0.449948758 14,1.00684547 L14,12.9931545 C14,13.5492199 13.5500512,14 12.9931545,14 L1.00684547,14 C0.450780073,14 0,13.5500512 0,12.9931545 L0,1.00684547 Z M2,2 L6,2 L6,6 L2,6 L2,2 Z M2,8 L6,8 L6,12 L2,12 L2,8 Z M8,2 L12,2 L12,6 L8,6 L8,2 Z M8,8 L12,8 L12,12 L8,12 L8,8 Z" transform="translate(2 2)"/>
</g><g transform="translate(310,18)"><path fill="#000000" fill-rule="evenodd" d="M14.0625,0 L0.9375,0 C0.421875,0 0,0.39375 0,0.875 L0,13.125 C0,13.60625 0.421875,14 0.9375,14 L14.0625,14 C14.578125,14 15,13.60625 15,13.125 L15,0.875 C15,0.39375 14.578125,0 14.0625,0 L14.0625,0 Z M5,12 L2,12 L2,6 L5,6 L5,12 L5,12 Z M2,5 L2,2 L13,2 L13,5 L2,5 Z M9,12 L6,12 L6,6 L9,6 L9,12 L9,12 Z M13,12 L10,12 L10,6 L13,6 L13,12 L13,12 Z" transform="translate(2 2)"/>
</g><g transform="translate(108,108)"><path fill="#000000" fill-rule="evenodd" d="M0,6 L14,6 L14,8 L0,8 L0,6 Z M0,0 L14,0 L14,4 L0,4 L0,0 Z M0,11 L14,11 L14,12 L0,12 L0,11 Z" transform="translate(2 3)"/>
</g><g transform="translate(572,198)"><path fill="#000000" fill-rule="evenodd" d="M13,9 L13,5 L8,0 L2,0 C1.45,0 1.01,0.45 1.01,1 L1.00571429,7 L3,7 L3,2 L8,2 L8,5 L11,5 L11,7 L13,7 L13,9 L11,9 L11,11 L13,11 L13,13 L11,13 L11,14 L3,14 L3,13 L1.00142857,13 L1,15 C1,15.55 1.44,16 2,16 L12,16 C12.55,16 13,15.55 13,15 L13,11 L14,11 L14,9 L13,9 Z M0,9 L3,9 L3,11 L0,11 L0,9 Z M5,9 L9,9 L9,11 L5,11 L5,9 Z" transform="translate(2 1)"/>
</g><g transform="translate(500,166)"><path fill="#000000" fill-rule="evenodd" d="M6,10 L14,10 L14,8 L6,8 L6,10 Z M6,6 L14,6 L14,4 L6,4 L6,6 Z M14,12 L0,12 L0,14 L14,14 L14,12 Z M0.5,7 L4,10.5 L4,3.5 L0.5,7 Z M0,0 L0,2 L14,2 L14,0 L0,0 Z" transform="translate(2 2)"/>
</g><g transform="translate(572,234)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L16,0 L16,16 L0,16 L0,0 Z M1,1 L5,1 L5,15 L1,15 L1,1 Z M6,1 L10,1 L10,15 L6,15 L6,1 Z M11,1 L15,1 L15,15 L11,15 L11,1 Z" transform="translate(1 1)"/>
</g><g transform="translate(328,244)"><g fill="#000000" fill-rule="evenodd" transform="translate(8 2)">
<rect width="2" height="14" fill-opacity=".3"/>
<path d="M0,2 L2,2 L2,4 L0,4 L0,2 Z M0,6 L2,6 L2,8 L0,8 L0,6 Z M0,10 L2,10 L2,12 L0,12 L0,10 Z"/>
</g>
</g><g transform="translate(108,270)"><path fill="#000000" fill-rule="evenodd" d="M4,6 L4,11 L6,11 L6,1 L7,1 L7,11 L9,11 L9,1 L10,1 L10,0 L4,0 C2.34,0 1,1.34 1,3 C1,4.66 2.34,6 4,6 Z M14,14 L11,11 L11,13 L0,13 L0,15 L11,15 L11,17 L14,14 Z" transform="translate(2 1)"/>
</g><g transform="translate(446,292)"><path fill="#000000" fill-rule="evenodd" d="M15,0 L1,0 C0.5,0 0,0.5 0,1 L0,15 C0,15.5 0.5,16 1,16 L15,16 C15.5,16 16,15.5 16,15 L16,1 C16,0.5 15.5,0 15,0 L15,0 Z M13,13 L8,13 L8,8.2 C7.5,8.7 6.8,9 6,9 C4.3,9 3,7.7 3,6 C3,4.3 4.3,3 6,3 C7.7,3 9,4.3 9,6 C9,6.8 8.7,7.5 8.2,8 L13,8 L13,13 L13,13 Z" transform="translate(1 1)"/>
</g><g transform="translate(446,0)"><path fill="#000000" fill-rule="evenodd" d="M6,10.5 C3.51,10.5 1.5,8.49 1.5,6 C1.5,3.51 3.51,1.5 6,1.5 C7.24,1.5 8.36,2.02 9.17,2.83 L7,5 L12,5 L12,0 L10.24,1.76 C9.15,0.68 7.66,0 6,0 C2.69,0 0.01,2.69 0.01,6 C0.01,9.31 2.69,12 6,12 C8.97,12 11.43,9.84 11.9,7 L10.38,7 C9.92,9 8.14,10.5 6,10.5 L6,10.5 Z" transform="translate(3 3)"/>
</g><g transform="translate(346,220)"><path fill="#000000" fill-rule="evenodd" d="M6,10 L14,10 L14,8 L6,8 L6,10 L6,10 Z M3.5,7 L0,3.5 L0,10.5 L3.5,7 L3.5,7 Z M0,14 L14,14 L14,12 L0,12 L0,14 L0,14 Z M0,0 L0,2 L14,2 L14,0 L0,0 L0,0 Z M6,6 L14,6 L14,4 L6,4 L6,6 L6,6 Z" transform="translate(2 2)"/>
</g><g transform="translate(310,0)"><polygon fill="#000000" fill-rule="evenodd" points="10 0 0 0 0 1.8 5.5 7 0 12.2 0 14 10 14 10 12 3.1 12 8 7 3.1 2 10 2" transform="translate(4 2)"/>
</g><g transform="translate(288,324)"><path fill="#000000" fill-rule="nonzero" d="M5.32790732,7.48070712 L4.31270732,6.45830712 C3.66470732,7.29350712 3.26150732,8.25830712 3.13910732,9.25910712 L4.59350732,9.25910712 C4.69430732,8.63270712 4.94630732,8.02070712 5.32790732,7.48070712 L5.32790732,7.48070712 Z M4.59350732,10.6991071 L3.13910732,10.6991071 C3.26150732,11.6999071 3.65750732,12.6647071 4.30550732,13.4999071 L5.32070732,12.4775071 C4.94630732,11.9375071 4.69430732,11.3327071 4.59350732,10.6991071 L4.59350732,10.6991071 Z M5.32070732,14.5295071 C6.15590732,15.1775071 7.12790732,15.5663071 8.12870732,15.6887071 L8.12870732,14.2271071 C7.50230732,14.1191071 6.89750732,13.8743071 6.35750732,13.4855071 L5.32070732,14.5295071 Z M9.56870732,4.26950712 L9.56870732,2.05910712 L6.29270732,5.33510712 L9.56870732,8.53910712 L9.56870732,5.72390712 C11.6135073,6.06950712 13.1687073,7.84070712 13.1687073,9.97910712 C13.1687073,12.1175071 11.6135073,13.8887071 9.56870732,14.2343071 L9.56870732,15.6887071 C12.4127073,15.3359071 14.6087073,12.9167071 14.6087073,9.97910712 C14.6087073,7.04150712 12.4127073,4.62230712 9.56870732,4.26950712 Z" transform="translate(8.873907, 8.873907) rotate(-45.000000) translate(-8.873907, -8.873907) "/>
</g><g transform="translate(198,72)"><path fill="#000000" fill-rule="evenodd" d="M7.99905882,0 C4.32752941,0 1.23670588,2.49323077 0,6 C1.23670588,9.50676923 4.32752941,12 7.99905882,12 C11.6724706,12 14.7595294,9.50676923 16,6 C14.7595294,2.49323077 11.6724706,0 7.99905882,0 Z M8,10.5 C10.4852814,10.5 12.5,8.48528137 12.5,6 C12.5,3.51471863 10.4852814,1.5 8,1.5 C5.51471863,1.5 3.5,3.51471863 3.5,6 C3.5,8.48528137 5.51471863,10.5 8,10.5 Z M8,8.5 C9.38071187,8.5 10.5,7.38071187 10.5,6 C10.5,4.61928813 9.38071187,3.5 8,3.5 C6.61928813,3.5 5.5,4.61928813 5.5,6 C5.5,7.38071187 6.61928813,8.5 8,8.5 Z" transform="translate(1 3)"/>
</g><g transform="translate(572,270)"><path fill="#4285F4" fill-rule="evenodd" d="M0,1.00684547 C0,0.450780073 0.455664396,0 0.995397568,0 L9.00460243,0 C9.55434533,0 10,0.449948758 10,1.00684547 L10,14 L5,12 L0,14 L0,1.00684547 Z" transform="translate(4 2)"/>
</g><g transform="translate(108,324)"><polygon fill="#000000" fill-rule="evenodd" points="6.4 5.4 9.8 8.8 16.1 1.6 14.9 .4 9.9 6.3 6.4 2.8 0 9.3 1.3 10.6" transform="translate(1 4)"/>
</g><g transform="translate(446,166)"><path fill="#000000" fill-rule="evenodd" d="M8,0 C3.57647059,0 0,3.57647059 0,8 C0,12.4235294 3.57647059,16 8,16 C12.4235294,16 16,12.4235294 16,8 C16,3.57647059 12.4235294,0 8,0 L8,0 Z M8,14.5 C4.46323529,14.5 1.5,11.5367647 1.5,8 C1.5,4.46323529 4.46323529,1.5 8,1.5 C11.5367647,1.5 14.5,4.46323529 14.5,8 C14.5,11.5367647 11.5367647,14.5 8,14.5 L8,14.5 Z M9,12 C9,12.553 8.553,13 8,13 C7.447,13 7,12.553 7,12 C7,11.447 7.447,11 8,11 C8.553,11 9,11.447 9,12 Z M5,6 C5.12023926,6.01531982 6.5,6.01849365 6.5,6.01849365 C6.5,5.26839431 7.00215776,4.51556396 8.00002153,4.5 C8.9978853,4.48443604 9.54266357,5.38989258 9.5,6.00317383 C9.45733643,6.61645508 9.17871094,7.05200195 8.77172852,7.29766846 C8.36474609,7.54333496 7.25,8.14459229 7.25,9.23382568 C7.25,9.23382568 7.25,9.98764352 7.25,9.98764352 L8.75,9.98764352 C8.75,9.98764352 8.75,9.37896729 8.77172852,9.37896729 C8.77081299,8.65667725 11.0114136,8.30938721 11,6.01849365 C10.9900891,4.02920829 9.45849609,3 7.99993896,3 C6.54138184,3 5,4.18981934 5,6 Z" transform="translate(1 1)"/>
</g><g transform="translate(500,256)"><path fill="#000000" fill-rule="evenodd" d="M5.08196626,9.37727765 L5.99955419,8 L5.0815666,6.62291941 C4.62836385,6.85296857 4.11835777,6.98725058 3.57817961,6.99913216 C3.55122348,7.00107303 3.52503985,7.00208268 3.49974771,7.00208268 C3.44586152,7.00208268 3.39177256,7.00013278 3.33755121,6.99630282 C1.49448789,6.91222827 0.0231246995,5.40247032 0.000269927977,3.54391978 C6.92469045e-05,3.53097907 -1.98246352e-05,3.51804863 3.68240513e-06,3.50512942 C1.22774602e-06,3.50341893 0,3.50170815 0,3.49999708 C0,3.49829098 1.22063079e-06,3.49658516 3.66106665e-06,3.49487963 C-1.97109738e-05,3.48199716 6.88547616e-05,3.4691033 0.000268397483,3.45619902 C0.0235736053,1.55561775 1.56164322,0.0197518958 3.46297798,0.00018898828 C3.47380467,4.84500079e-05 3.48462385,-1.38757964e-05 3.49543495,2.57804707e-06 C3.49686604,8.59511651e-07 3.49829733,0 3.49972882,0 C3.50116736,0 3.5026057,8.6800093e-07 3.50404384,2.60350766e-06 C3.51491367,-1.40208481e-05 3.52579267,4.89893362e-05 3.53668024,0.000191057626 C5.38088977,0.0192698907 6.88328742,1.46490662 6.99303415,3.28618166 C6.99855951,3.35770064 7.00076239,3.42903042 6.99947653,3.5000104 C7.0295035,3.93876004 6.99947671,4.50000957 6.99947671,4.50000957 L16,14.0000016 L16,14.9952401 L12.9990117,14.9952401 L8,10.000005 L6.52775458,10.7439587 C6.82709523,11.2590932 6.9987709,11.8576041 6.99945558,12.4961622 C6.99946966,12.4974444 6.99947671,12.4987247 6.99947671,12.5000029 C6.99947671,12.505048 6.99945964,12.5100948 6.99942556,12.5151433 C6.99127795,14.4383685 5.43207235,15.9954569 3.50814196,15.9999843 C3.50534334,15.9999948 3.50254523,16 3.49974765,16 C3.49697112,16 3.49419407,15.9999948 3.49141651,15.9999845 C1.56239166,15.9954995 0,14.4302204 0,12.4999971 C0,10.5670021 1.56688196,9 3.49972882,9 C4.06913668,9 4.60678373,9.13599458 5.08196626,9.37727765 Z M12.9843643,1.04188257 L8.99932157,5.00000915 L11.0037439,7.00000748 L15.9987792,2.00001165 L15.9987792,1.00001249 L12.9843643,1.04188257 Z M3.49974771,5.00000915 C4.32811065,5.00000915 4.99963149,4.32843684 4.99963149,3.5000104 C4.99963149,2.67158397 4.32811065,2.00001165 3.49974771,2.00001165 C2.67138477,2.00001165 1.99986393,2.67158397 1.99986393,3.5000104 C1.99986393,4.32843684 2.67138477,5.00000915 3.49974771,5.00000915 Z M3.49974771,14.0000016 C4.32811065,14.0000016 4.99963149,13.3284293 4.99963149,12.5000029 C4.99963149,11.6715765 4.32811065,11.0000041 3.49974771,11.0000041 C2.67138477,11.0000041 1.99986393,11.6715765 1.99986393,12.5000029 C1.99986393,13.3284293 2.67138477,14.0000016 3.49974771,14.0000016 Z" transform="translate(1 1)"/>
</g><g transform="translate(108,162)"><path fill="#FF7537" fill-rule="evenodd" d="M8.5,5 L6,5 L6,8 L8.5,8 C9.32842712,8 10,7.32842712 10,6.5 C10,5.67157288 9.32842712,5 8.5,5 Z M8.5,10 L6,10 L6,13 L4,13 L4,3 L5,3 L8.5,3 C10.4329966,3 12,4.56700338 12,6.5 C12,8.43299662 10.4329966,10 8.5,10 Z M1,0 C0.5,0 0,0.5 0,1 L0,15 C0,15.5 0.5,16 1,16 L15,16 C15.5,16 16,15.5 16,15 L16,1 C16,0.5 15.5,0 15,0 L1,0 Z" transform="translate(1 1)"/>
</g><g transform="translate(370,298)"><path fill="#000000" fill-rule="evenodd" d="M6.5,3.62 L0,10.12 L0,13 L2.88,13 L9.38,6.5 L6.5,3.62 Z M11.85,4.02 C12.05,3.82 12.05,3.51 11.85,3.31 L9.68,1.14 C9.48,0.94 9.17,0.94 8.97,1.14 L7.62,2.5 L10.5,5.38 L11.85,4.02 L11.85,4.02 Z" transform="translate(4)"/>
</g><g transform="translate(162,324)"><path fill="#000000" fill-rule="evenodd" d="M2,11.8994949 L11.8994949,2 L14.0208153,4.12132034 L4.12132034,14.0208153 L2,11.8994949 Z M5.59875,1.88625 C3.15,3.04875 1.39125,5.43 1.125,8.25 L0,8.25 C0.3825,3.63 4.245,0 8.9625,0 C9.13125,0 9.2925,0.015 9.46125,0.02625 L6.6,2.8875 L5.59875,1.88625 Z M10.32625,14.11375 C12.775,12.95125 14.53375,10.57 14.8,7.75 L15.925,7.75 C15.5425,12.37 11.68,16 6.9625,16 C6.79375,16 6.6325,15.985 6.46375,15.97375 L9.325,13.1125 L10.32625,14.11375 L10.32625,14.11375 Z" transform="translate(1 1)"/>
</g><g transform="translate(554,130)"><polygon fill="#4285F4" fill-opacity=".78" fill-rule="evenodd" points="0 0 0 10 5 5" transform="translate(7 4)"/>
</g><g transform="translate(216,270)"><path fill="#000000" fill-rule="evenodd" d="M9.82929429,4 C9.41745788,5.16519237 8.30621883,6 7,6 C5.69378117,6 4.58254212,5.16519237 4.17070571,4 L0,4 L0,2 L4.17070571,2 C4.58254212,0.834807627 5.69378117,0 7,0 C8.30621883,0 9.41745788,0.834807627 9.82929429,2 L14,2 L14,4 L9.82929429,4 Z" transform="translate(2 6)"/>
</g><g transform="translate(198,324)"><path fill="#000000" fill-rule="evenodd" d="M0,2.90909091 L0,7.27272727 C0,11.3090909 2.98666667,15.0836364 7,16 C11.0133333,15.0836364 14,11.3090909 14,7.27272727 L14,2.90909091 L7,0 L0,2.90909091 Z M6,4 L8,4 L8,9 L6,9 L6,4 Z M6,10 L8,10 L8,12 L6,12 L6,10 Z" transform="translate(2 1)"/>
</g><g transform="translate(256,0)"><path fill="#000000" fill-rule="evenodd" d="M15,0 L1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 Z M6,12 L4,12 L4,7 L6,7 L6,12 Z M9,12 L7,12 L7,4 L9,4 L9,12 Z M12,12 L10,12 L10,8 L12,8 L12,12 Z" transform="translate(1 1)"/>
</g><g transform="translate(518,130)"><path fill="#000000" fill-rule="evenodd" d="M9,3 C9.03942871,2.99182129 9,0.991821289 7,0.991821289 C5,0.991821289 5.00058365,2.99182129 5.0005835,2.99182129 L0.999924169,2.99836457 C0.447681299,2.99926779 1.95399252e-14,3.44994876 1.95399252e-14,4.00684547 L1.95399252e-14,15.9931545 C1.95399252e-14,16.5492199 0.441480327,17 0.999355351,17 C0.999355351,17 0.728745117,17 1.55749512,17 L12.5,17 C13.32875,17 12.9985978,17 12.9985978,17 C13.551657,17 14,16.5548273 14,15.9975471 L14,4.49182129 C14,3.66307129 14,3.99416169 14,3.99416169 C14,3.44510135 13.5562834,3 13.0001925,3 L9,3 Z M6,3 L8,3 L8,4 L6,4 L6,3 Z M2,15 L2,5 L3,5 L3,6 L11,6 L11,5 L12,5 L12,15 L2,15 Z" transform="translate(2)"/>
</g><g transform="translate(274,108)"><g fill="none" fill-rule="evenodd">
<polygon points="0 0 18 0 18 18 0 18"/>
<path fill="#000000" d="M9.2250619,17 L4.57,17 L7.15,12 L7.59068811,12 C7.5311233,12.3242762 7.5,12.6585035 7.5,13 C7.5,14.5760283 8.16288947,15.9972305 9.2250619,17 Z M16.3110756,8.60793815 L11.83,1 L6.57,1 L10.6956718,8.00453613 C11.3965725,7.68068268 12.1771859,7.5 13,7.5 C14.2431442,7.5 15.3899589,7.91243556 16.3110756,8.60793815 Z M5.49,2.45 L0,12.45 L2.66,17 L8.14,7.02 L5.49,2.45 L5.49,2.45 Z M14,9 L12,9 L12,12 L9,12 L9,14 L12,14 L12,17 L14,17 L14,14 L17,14 L17,12 L14,12 L14,9 Z"/>
</g>
</g><g transform="translate(328,324)"><path fill="#000000" fill-rule="evenodd" d="M2.5,14 L9.5,14 C10.32875,14 11,13.3607143 11,12.5714286 L11,4 L1,4 L1,12.5714286 C1,13.3607143 1.67125,14 2.5,14 Z M9.125,1 L8.375,0 L3.625,0 L2.875,1 L0,1 L0,3 L12,3 L12,1 L9.125,1 Z" transform="translate(3 2)"/>
</g><g transform="translate(180,162)"><path fill="#000000" d="M11.0119846,13 L16,13 L16,15 L11.0119846,15 L11.0119846,16.9944804 L9.03685276,15.0409865 L7.98433567,14 L9.03289155,12.9629313 L11.0119846,11.0055196 L11.0119846,13 Z M1,8 L2.99632026,8 L2.99632026,10 L1,10 L1,8 Z M3.99264052,3.99686968 C3.99264052,2.34174426 5.33709312,1 6.98804084,1 C8.64235476,1 9.98344117,2.34739093 9.98344117,3.99686968 L9.98344117,7.00313032 C9.98344117,8.65825574 8.63898856,10 6.98804084,10 C5.33372692,10 3.99264052,8.65260907 3.99264052,7.00313032 L3.99264052,3.99686968 Z M5.5,3.99857602 L5.5,7.00142398 C5.5,7.83497024 6.17157288,8.5 7,8.5 C7.83420277,8.5 8.5,7.82906466 8.5,7.00142398 L8.5,3.99857602 C8.5,3.16502976 7.82842712,2.5 7,2.5 C6.16579723,2.5 5.5,3.17093534 5.5,3.99857602 Z"/>
</g><g transform="translate(108,234)"><path fill="#000000" fill-rule="evenodd" d="M1,3 L3,3 L3,12 L1,12 L1,3 Z M11,5 L13,5 L13,12 L11,12 L11,5 Z M6,9 L8,9 L8,12 L6,12 L6,9 Z M10,2 L14,2 L14,4 L10,4 L10,2 Z M0,0 L4,0 L4,2 L0,2 L0,0 Z M0,12 L14,12 L14,14 L0,14 L0,12 Z M5,6 L9,6 L9,8 L5,8 L5,6 Z" transform="translate(2 2)"/>
</g><g transform="translate(468,72)"><path fill="#000000" fill-rule="evenodd" d="M0.27,1.55 L5.43,6.7 L3,12 L5.5,12 L7.14,8.42 L11.73,13 L13,11.73 L1.55,0.27 L0.27,1.55 L0.27,1.55 Z M3.82,0 L5.82,2 L7.58,2 L7.03,3.21 L8.74,4.92 L10.08,2 L14,2 L14,0 L3.82,0 L3.82,0 Z" transform="translate(2 3)"/>
</g><g transform="translate(18,324)"><path fill="#000000" fill-rule="evenodd" d="M11,0 L14,0 L14,2 L11,2 L11,0 Z M7,3 L14,3 L14,5 L7,5 L7,3 Z M7,6 L14,6 L14,8 L7,8 L7,6 Z M7,9 L14,9 L14,11 L7,11 L7,9 Z M0,2 L4,2 L4,11 L6,11 L6,2 L10,2 L10,0 L0,0 L0,2 Z" transform="translate(2 3)"/>
</g><g transform="translate(0,18)"><defs>
<rect id="shapes_rectangle_a" width="16" height="14" x="1" y="2"/>
<mask id="shapes_rectangle_b" width="16" height="14" x="0" y="0" fill="white">
<use xlink:href="#shapes_rectangle_a"/>
</mask>
</defs>
<use fill="none" fill-rule="evenodd" stroke="#000000" stroke-width="2" mask="url(#shapes_rectangle_b)" xlink:href="#shapes_rectangle_a"/>
</g><g transform="translate(464,238)"><path fill="#000000" fill-rule="evenodd" d="M8,0 C3.57647059,0 0,3.57647059 0,8 C0,12.4235294 3.57647059,16 8,16 C12.4235294,16 16,12.4235294 16,8 C16,3.57647059 12.4235294,0 8,0 L8,0 Z M9,12 C9,12.553 8.553,13 8,13 C7.447,13 7,12.553 7,12 C7,11.447 7.447,11 8,11 C8.553,11 9,11.447 9,12 Z M5,6 C5.12023926,6.01531982 6.5,6.01849365 6.5,6.01849365 C6.5,5.26839431 7.00215776,4.51556396 8.00002153,4.5 C8.9978853,4.48443604 9.54266357,5.38989258 9.5,6.00317383 C9.45733643,6.61645508 9.17871094,7.05200195 8.77172852,7.29766846 C8.36474609,7.54333496 7.25,8.14459229 7.25,9.23382568 C7.25,9.23382568 7.25,9.98764352 7.25,9.98764352 L8.75,9.98764352 C8.75,9.98764352 8.75,9.37896729 8.77172852,9.37896729 C8.77081299,8.65667725 11.0114136,8.30938721 11,6.01849365 C10.9900891,4.02920829 9.45849609,3 7.99993896,3 C6.54138184,3 5,4.18981934 5,6 Z" transform="translate(1 1)"/>
</g><g transform="translate(18,252)"><path fill="#000000" fill-rule="evenodd" d="M11.5656391,4.43436088 L9,7 L16,7 L16,0 L13.0418424,2.95815758 C11.5936787,1.73635959 9.72260775,1 7.67955083,1 C4.22126258,1 1.25575599,3.10984908 0,6 L2,7 C2.93658775,4.60974406 5.12943697,3.08011229 7.67955083,3 C9.14881247,3.0528747 10.4994783,3.57862053 11.5656391,4.43436088 Z" transform="translate(1 5)"/>
</g><g transform="translate(464,166)"><path fill="#0F9D58" fill-rule="evenodd" d="M2,10 L4,12 L4,16 L10,16 L10,12 L12,10 L12,6 L2,6 L2,10 Z M6,0 L8,0 L8,3 L6,3 L6,0 Z M12.5,1 L14,2.5 L12,4.5 L10.5,3 L12.5,1 Z M-6.20335912e-15,2.5 L1.5,1 L3.5,3 L2,4.5 L-6.20335912e-15,2.5 Z" transform="translate(2 1)"/>
</g><g transform="translate(288,342)"><path fill="#000000" fill-rule="evenodd" d="M4,14 L14,14 L14,12 L4,12 L4,14 Z M0,10 L14,10 L14,8 L0,8 L0,10 Z M0,0 L0,2 L14,2 L14,0 L0,0 Z M4,6 L14,6 L14,4 L4,4 L4,6 Z" transform="translate(2 2)"/>
</g><g transform="translate(482,202)"><path fill="#000000" fill-rule="evenodd" d="M16,6.25 L6.98590309,2 L6.98590309,4 L8,4.5 L8,9.5 L7,10 L6.98590309,12 L16,7.75 L16,6.25 Z M14,7 L9.98,8.87 L9.98,5.13 L14,7 Z M6,12 L4,12 L4,1.77635684e-15 L2,1.77635684e-15 L2,12 L8.8817842e-16,12 L3,15 L6,12 Z" transform="translate(1 1)"/>
</g><g transform="translate(482,220)"><polygon fill="#000000" fill-rule="evenodd" points="1.415 0 0 1.415 4.585 6 0 10.585 1.415 12 7.415 6" transform="translate(5 3)"/>
</g><g transform="translate(54,162)"><path fill="#000000" fill-rule="evenodd" d="M13,0 L1,0 C0.45,0 0,0.45 0,1 L0,13 C0,13.55 0.45,14 1,14 L13,14 C13.55,14 14,13.55 14,13 L14,1 C14,0.45 13.55,0 13,0 L13,0 Z M6,11 L3,11 L3,9 L6,9 L6,11 L6,11 Z M11,8 L3,8 L3,6 L11,6 L11,8 L11,8 Z M3,5 L3,3 L8,3 L8,5 L3,5 Z" transform="translate(2 2)"/>
</g><g transform="translate(234,270)"><path fill="#F4B400" fill-rule="evenodd" d="M-8.8817842e-16,1.00247329 C-8.8817842e-16,0.448822582 0.443988033,0 1.00605299,0 L8.73769782,0 C9.29332554,0 10.0186468,0.357358932 10.3566484,0.796753675 L13.7463141,5.20324633 C14.0848081,5.64328123 14.0843157,6.35735893 13.7463141,6.79675367 L10.3566484,11.2032463 C10.0181544,11.6432812 9.29976278,12 8.73769782,12 L1.00605299,12 C0.450425264,12 -8.8817842e-16,11.544239 -8.8817842e-16,10.9975267 L-8.8817842e-16,1.00247329 Z" transform="matrix(-1 0 0 1 16 3)"/>
</g><g transform="translate(464,130)"><path fill="#4986E7" fill-rule="evenodd" d="M15,0 L1,0 C0.5,0 0,0.5 0,1 L0,15 C0,15.5 0.5,16 1,16 L15,16 C15.5,16 16,15.5 16,15 L16,1 C16,0.5 15.5,0 15,0 Z M11.4,13 L9.9,13 L7.9,5.5 L5.9,13 L4.4,13 L2,3 L3.7,3 L5.24,10.505 L7.2,3 L8.6,3 L10.57,10.505 L12.1,3 L13.8,3 L11.4,13 Z" transform="translate(1 1)"/>
</g><g transform="translate(108,198)"><path d="M0 0h18v18H0z" fill="none"/>
<path d="M9 5.5c.83 0 1.5-.67 1.5-1.5S9.83 2.5 9 2.5 7.5 3.17 7.5 4 8.17 5.5 9 5.5zm0 2c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5S9.83 7.5 9 7.5zm0 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z"/>
</g><g transform="translate(328,160)"><path fill="#000000" fill-rule="evenodd" d="M0,6 L3,6 L3,12 L5,12 L5,6 L8,6 L8,4 L0,4 L0,6 L0,6 Z M6,0 L6,2 L10,2 L10,12 L12,12 L12,2 L16,2 L16,0 L6,0 L6,0 Z" transform="translate(1 3)"/>
</g><g transform="translate(0,36)"><polygon fill="#000000" fill-rule="evenodd" points="11.53 1.53 10.47 .47 6 4.94 1.53 .47 .47 1.53 4.94 6 .47 10.47 1.53 11.53 6 7.06 10.47 11.53 11.53 10.47 7.06 6" transform="translate(3 3)"/>
</g><g transform="translate(500,184)"><path fill="#000000" fill-rule="evenodd" d="M8,0.03 C3.58,0.03 0,3.61 0,8.03 C0,12.45 3.58,16.03 8,16.03 C12.42,16.03 16,12.45 16,8.03 C16,3.61 12.42,0.03 8,0.03 L8,0.03 Z M9,12 L7,12 L7,10 L9,10 L9,12 L9,12 Z M9,9 L7,9 L7,4 L9,4 L9,9 L9,9 Z" transform="translate(1 1)"/>
</g><g transform="translate(572,162)"><path fill="#F4B400" fill-rule="evenodd" d="M-8.8817842e-16,1.00247329 C-8.8817842e-16,0.448822582 0.443988033,0 1.00605299,0 L8.73769782,0 C9.29332554,0 10.0186468,0.357358932 10.3566484,0.796753675 L13.7463141,5.20324633 C14.0848081,5.64328123 14.0843157,6.35735893 13.7463141,6.79675367 L10.3566484,11.2032463 C10.0181544,11.6432812 9.29976278,12 8.73769782,12 L1.00605299,12 C0.450425264,12 -8.8817842e-16,11.544239 -8.8817842e-16,10.9975267 L-8.8817842e-16,1.00247329 Z" transform="translate(2 3)"/>
</g><g transform="translate(554,94)"><path fill="#000000" fill-rule="evenodd" d="M13.9170416,9 C13.4955231,11.5125049 11.5125049,13.4955231 9,13.9170416 L9,9 L13.9170416,9 Z M13.9170416,7 C13.4955231,4.48749513 11.5125049,2.50447689 9,2.08295844 L9,7 L13.9170416,7 Z M7,2.08295844 C4.16228666,2.55903653 2,5.02700371 2,8 C2,10.9729963 4.16228666,13.4409635 7,13.9170416 L7,2.08295844 Z M8,16 C12.418278,16 16,12.418278 16,8 C16,3.581722 12.418278,0 8,0 C3.581722,0 0,3.581722 0,8 C0,12.418278 3.581722,16 8,16 Z" transform="translate(1 1)"/>
</g><g transform="translate(252,270)"><polygon fill="#FFFFFF" fill-rule="evenodd" points="11.53 1.53 10.47 .47 6 4.94 1.53 .47 .47 1.53 4.94 6 .47 10.47 1.53 11.53 6 7.06 10.47 11.53 11.53 10.47 7.06 6" transform="translate(3 3)"/>
</g><g transform="translate(162,144)"><path fill="#000000" fill-rule="evenodd" d="M1,0 L17,0 C17.5522847,-1.01453063e-16 18,0.44771525 18,1 L18,15 C18,15.5522847 17.5522847,16 17,16 L1,16 C0.44771525,16 6.76353751e-17,15.5522847 0,15 L0,1 L0,1 C-6.76353751e-17,0.44771525 0.44771525,1.01453063e-16 1,0 L1,0 Z M2,2 L2,14 L16,14 L16,2 L2,2 Z M13,5.5 L16,8 L13,10.5 L13,5.5 Z M5,5.5 L5,10.5 L2,8 L5,5.5 Z M11.5,5 L6.5,5 L9,2 L11.5,5 Z M6.5,11 L11.5,11 L9,14 L6.5,11 Z" transform="translate(0 1)"/>
</g><g transform="translate(216,72)"><path fill="#FFFFFF" fill-rule="evenodd" d="M6,4 L6,0 L4,0 L4,4 L0,4 L0,6 L4,6 L4,10 L6,10 L6,6 L10,6 L10,4 L6,4 Z" transform="translate(4 4)"/>
</g><g transform="translate(370,160)"><path fill="#000000" fill-rule="evenodd" d="M9.01902793,9.72705177 C8.06535219,10.5218555 6.83851442,11 5.5,11 C2.46243388,11 0,8.53756612 0,5.5 C0,2.46243388 2.46243388,0 5.5,0 C8.53756612,0 11,2.46243388 11,5.5 C11,6.83851442 10.5218555,8.06535219 9.72705177,9.01902793 L9.98,9.27 L10.77,9.27 L14.76,13.27 L13.27,14.76 L9.27,10.77 L9.27,9.98 L9.01902793,9.72705177 Z M5.5,9.5 C7.709139,9.5 9.5,7.709139 9.5,5.5 C9.5,3.290861 7.709139,1.5 5.5,1.5 C3.290861,1.5 1.5,3.290861 1.5,5.5 C1.5,7.709139 3.290861,9.5 5.5,9.5 Z M8,6 L6,6 L6,8 L5,8 L5,6 L3,6 L3,5 L5,5 L5,3 L6,3 L6,5 L8,5 L8,6" transform="translate(2 2)"/>
</g><g transform="translate(292,72)"><path fill="#000000" fill-rule="evenodd" d="M0,1.00684547 C0,0.450780073 0.455664396,-4.56419617e-27 0.995397568,7.17464814e-43 L10,7.6146463e-26 L14,4 L14,13.0046024 C14,13.5543453 13.5500512,14 12.9931545,14 L1.00684547,14 C0.450780073,14 0,13.5500512 0,12.9931545 L0,1.00684547 Z M2,2 L8,2 L8,5 L2,5 L2,2 Z M7,11 C8.1045695,11 9,10.1045695 9,9 C9,7.8954305 8.1045695,7 7,7 C5.8954305,7 5,7.8954305 5,9 C5,10.1045695 5.8954305,11 7,11 Z" transform="translate(2 2)"/>
</g><g transform="translate(126,108)"><path fill="#000000" fill-rule="evenodd" d="M6,4 L6,0 L4,0 L4,4 L0,4 L0,6 L4,6 L4,10 L6,10 L6,6 L10,6 L10,4 L6,4 Z" transform="translate(4 4)"/>
</g><g transform="translate(482,148)"><path fill="#4285F4" fill-rule="evenodd" d="M9,0.75 C4.44375,0.75 0.75,4.44375 0.75,9 C0.75,13.55625 4.44375,17.25 9,17.25 C13.55625,17.25 17.25,13.55625 17.25,9 C17.25,4.44375 13.55625,0.75 9,0.75 L9,0.75 Z M9,14.625 C5.893125,14.625 3.375,12.106875 3.375,9 C3.375,5.893125 5.893125,3.375 9,3.375 C10.516875,3.375 11.7890625,3.9328125 12.763125,4.84125 L11.150625,6.45375 C10.5665625,5.8978125 9.8259375,5.6128125 8.9990625,5.6128125 C7.1634375,5.6128125 5.675625,7.1653125 5.675625,9.0009375 C5.675625,10.8365625 7.164375,12.388125 9,12.388125 C10.6659375,12.388125 11.80125,11.4328125 12.0309375,10.123125 L9,10.123125 L9,7.96875 L14.2978125,7.96875 C14.3634375,8.3390625 14.4009375,8.7253125 14.4009375,9.1275 C14.4009375,12.34125 12.2484375,14.625 9,14.625 L9,14.625 Z"/>
</g><g transform="translate(310,342)"><polygon fill="#0F9D58" fill-rule="evenodd" points="12 5 3.125 5 7.06 1.06 6 0 0 6 6 12 7.06 10.94 3.125 7 12 7" transform="translate(3 3)"/>
</g><g transform="translate(108,180)"><path fill="#000000" fill-rule="evenodd" d="M9,14 L18,14 L18,12 L9,12 L9,14 L9,14 Z M9,2 L9,4 L18,4 L18,2 L9,2 L9,2 Z M7.5,4 L4,0.5 L0.5,4 L3,4 L3,12 L0.5,12 L4,15.5 L7.5,12 L5,12 L5,4 L7.5,4 L7.5,4 Z M9,9 L18,9 L18,7 L9,7 L9,9 L9,9 Z" transform="matrix(-1 0 0 1 18 1)"/>
</g><g transform="translate(518,202)"><path fill="#000000" fill-rule="evenodd" d="M11.9925,14.0000001 L11.9925,16.0000001 L1.00445557,16.0000001 C1.00445557,16.0000001 0,16.0000001 0,15.0042115 L0,2.00689108 L2,2.00000019 L2.0075,2.00889226 L2.0075,12.9946834 C2.0075,13.7129334 2.16375,14.0000001 2.9925,14.0000001 L11.9925,14.0000001 Z M4,9.27183201e-08 C4,9.27183201e-08 3,9.27183201e-08 3,1.00158713 L3,12.0000002 C3,13.0000001 4.00701904,13.0000001 4,13.0000001 L12.9976196,13.0000001 C13.7592811,13.0000001 14,12.7112604 14,12.0000001 L14,1.00247339 C14,0.448822675 13.5527547,9.27183201e-08 13.0033264,9.27183201e-08 L10.3525798,9.27183201e-08 L4,9.27183201e-08 Z M5.525,2.00000009 C5.0415625,2.00000009 5.004375,2.05659625 5.004375,2.55384625 L5,10.4461539 C5,10.9434039 5.0371875,11.0000001 5.520625,11.0000001 L11.475,11.0000001 C11.9584375,11.0000001 12,10.9434039 12,10.4461539 C12,10.4461539 12,3.00771678 12,2.55384627 C12,2.09997577 11.4749999,2.00000009 11.4749999,2.00000009 L5.525,2.00000009 Z" transform="matrix(1 0 0 -1 2 17)"/>
</g><g transform="translate(202,396)"><path fill="#000000" fill-rule="evenodd" d="M0,4.5 L4,0 L12,0 L12,12 L0,12 L0,4.5 Z M2,5.5 L5,2 L12,2 L12,12 L2,12 L2,5.5 Z M4,4 L8,4 L8,8 L4,8 L4,4 Z M8,5 L12,5 L12,7 L8,7 L8,5 Z M7,8 L7,12 L5,12 L5,8 L7,8 Z" transform="translate(3 3)"/>
</g><g transform="translate(418,342)"><path fill="#000000" fill-rule="evenodd" d="M5,5 L9,5 L9,13 L5,13 L5,5 Z M10,13 L12.4,13 C13.28,13 14,12.3454545 14,11.5454545 L14,5 L10,5 L10,13 Z M12.5263158,0 L1.47368421,0 C0.663157895,0 0,0.72 0,1.6 L0,4 L14,4 L14,1.6 C14,0.72 13.3368421,0 12.5263158,0 Z M0,11.5454545 C0,12.3454545 0.72,13 1.6,13 L4,13 L4,5 L0,5 L0,11.5454545 Z" transform="translate(2 2)"/>
</g><g transform="translate(198,108)"><path fill="#000000" fill-rule="evenodd" d="M8,0.03 C3.58,0.03 0,3.61 0,8.03 C0,12.45 3.58,16.03 8,16.03 C12.42,16.03 16,12.45 16,8.03 C16,3.61 12.42,0.03 8,0.03 L8,0.03 Z M9,12 L7,12 L7,10 L9,10 L9,12 L9,12 Z M9,9 L7,9 L7,4 L9,4 L9,9 L9,9 Z" transform="translate(1 1)" opacity=".38"/>
</g><g transform="translate(328,342)"><path fill="#000000" fill-rule="evenodd" d="M10,7 L10,5 L9,5 L9,7 L7,7 L7,8 L9,8 L9,10 L10,10 L10,8 L12,8 L12,7 L10,7 Z M13,2 L8,2 L6,0 L1,0 C0.45,0 0,0.45 0,1 L0,11 C0,11.55 0.45,12 1,12 L13,12 C13.55,12 14,11.55 14,11 L14,3 C14,2.45 13.55,2 13,2 Z M13,11 L1,11 L1,3 L13,3 L13,11 Z" transform="translate(2 3)" opacity=".54"/>
</g><g transform="translate(464,18)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 2)">
<rect width="9" height="2" x="5" y="1"/>
<rect width="9" height="2" x="5" y="6"/>
<rect width="9" height="2" x="5" y="11"/>
<circle cx="2" cy="2" r="1.5"/>
<circle cx="2" cy="7" r="1.5"/>
<circle cx="2" cy="12" r="1.5"/>
</g>
</g><g transform="translate(572,252)"><path fill="#4285F4" fill-rule="evenodd" d="M15,0 L1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 L15,0 Z M9,12 L4,12 L4,10 L9,10 L9,12 L9,12 Z M12,9 L4,9 L4,7 L12,7 L12,9 L12,9 Z M12,6 L4,6 L4,4 L12,4 L12,6 L12,6 Z" transform="translate(1 1)"/>
</g><g transform="translate(234,306)"><path fill="#000000" fill-rule="evenodd" d="M0,14 L3,14 L3,5 L0,5 L0,14 L0,14 Z M14.7325,5 L10,5 L10.48,1.8225 L10.5025,1.5825 C10.5025,1.275 10.375,0.99 10.1725,0.7875 L9.3775,0 L4.4425,4.9425 C4.165,5.2125 4,5.5875 4,6 L4,13.5 C4,14.325 4.675,15 5.5,15 L12.25,15 C12.8725,15 13.405,14.625 13.63,14.085 L15.895,8.7975 C15.9625,8.625 16,8.445 16,8.25 C16,8.25 15.9277936,7.02252557 16,6.5 C16.0052936,6.46169224 16,6.5675 16,6.5675 L16,6.5 C16,5.675 15.5575,5 14.7325,5 Z" transform="translate(1 1)"/>
</g><g transform="translate(346,342)"><path fill="#000000" fill-rule="evenodd" d="M15,0 L1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 L15,0 Z M2.5,12 L5.25,8.46 L7.21,10.82 L9.96,7.28 L13.5,12 L2.5,12 L2.5,12 Z" transform="translate(1 1)"/>
</g><g transform="translate(144,342)"><path fill="#000000" fill-rule="evenodd" d="M0.459262274,1.72702923 L3.82798751,11.1061621 L5.24220107,9.69194854 L4.7372583,8.47989899 L8.27279221,4.94436508 L9.47487373,5.43933983 L10.8990553,4.03509429 L1.51992245,0.666369055 L0.459262274,1.72702923 Z M2.40380592,2.6109127 L6.56866486,4.13119228 L3.9240855,6.77577164 L2.40380592,2.6109127 Z M11.7573593,4 L13.1715729,5.41421356 L4.6862915,13.8994949 L6.10050506,15.3137085 L14.5857864,6.82842712 L16,8.24264069 L16,4 L11.7573593,4 Z" transform="translate(1 1)"/>
</g><g transform="translate(162,126)"><path fill="#000000" fill-rule="evenodd" d="M6,10 L14,10 L14,8 L6,8 L6,10 L6,10 Z M3.5,7 L0,3.5 L0,10.5 L3.5,7 L3.5,7 Z M0,14 L14,14 L14,12 L0,12 L0,14 L0,14 Z M0,0 L0,2 L14,2 L14,0 L0,0 L0,0 Z M6,6 L14,6 L14,4 L6,4 L6,6 L6,6 Z" transform="matrix(-1 0 0 1 16 2)"/>
</g><g transform="translate(274,126)"><polygon fill="#4285F4" fill-opacity=".78" fill-rule="evenodd" points="5 0 5 10 0 5" transform="translate(6 4)"/>
</g><g transform="translate(346,160)"><polygon fill="#FFFFFF" fill-rule="evenodd" points="8 0 6.59 1.41 12.17 7 0 7 0 9 12.17 9 6.59 14.59 8 16 16 8" transform="translate(4 4)"/>
</g><g transform="translate(54,360)"><path fill="#000000" fill-rule="evenodd" d="M12.7101213,4 L14.9975267,4 C15.5511774,4 16,4.45576096 16,5.00247329 L16,14.9975267 C16,15.5511774 15.544239,16 14.9975267,16 L5.00247329,16 C4.44882258,16 4,15.544239 4,14.9975267 L4,12.7101213 C4.63370941,12.8987225 5.30502739,13 6,13 L6,14 L14,14 L14,6 L13,6 C13,5.30502739 12.8987225,4.63370941 12.7101213,4 Z M6,12 C9.3137085,12 12,9.3137085 12,6 C12,2.6862915 9.3137085,0 6,0 C2.6862915,0 0,2.6862915 0,6 C0,9.3137085 2.6862915,12 6,12 Z M6,10 C8.209139,10 10,8.209139 10,6 C10,3.790861 8.209139,2 6,2 C3.790861,2 2,3.790861 2,6 C2,8.209139 3.790861,10 6,10 Z" transform="translate(1 1)"/>
</g><g transform="translate(90,234)"><path fill="#000000" fill-rule="evenodd" d="M4.94,5 L0,5 L0,13 L14,13 L14,5 L9.06,5 L10.53,6.47 L9.47,7.53 L7,5.06 L4.53,7.53 L3.47,6.47 L4.94,5 L2,5 L2,11 L12,11 L12,5 L9.06,5 L8.06,4 L10.53,1.53 L9.47,0.47 L7,2.94 L4.53,0.47 L3.47,1.53 L5.94,4 L4.94,5 Z" transform="translate(2 2)"/>
</g><g transform="translate(572,144)"><polygon fill="#000000" fill-rule="evenodd" points="0 2 1.5 .5 6 5 10.5 .5 12 2 6 8" transform="translate(3 5)"/>
</g><g transform="translate(500,238)"><path fill="#000000" fill-rule="evenodd" d="M6,5 L2,9 L3,10 L0,13 L4,13 L5,12 L5,12 L6,13 L10,9 L6,5 L6,5 Z M10.2937851,0.706214905 C10.6838168,0.316183183 11.3138733,0.313873291 11.7059121,0.705912054 L14.2940879,3.29408795 C14.6839524,3.68395241 14.6796852,4.32031476 14.2937851,4.7062149 L11,8 L7,4 L10.2937851,0.706214905 Z" transform="translate(2)"/>
</g><g transform="translate(572,90)"><polygon fill="#000000" fill-rule="evenodd" points="1.415 0 0 1.415 4.585 6 0 10.585 1.415 12 7.415 6" transform="matrix(-1 0 0 1 12.415 3)"/>
</g><g transform="translate(0,0)"><path fill="#000000" fill-rule="evenodd" d="M0,1.00684547 C0,0.450780073 0.444630861,0 1.00087166,0 L14.9991283,0 C15.5518945,0 16,0.449948758 16,1.00684547 L16,12.9931545 C16,13.5492199 15.5553691,14 14.9991283,14 L1.00087166,14 C0.448105505,14 0,13.5500512 0,12.9931545 L0,1.00684547 Z M2,2 L7,2 L7,6 L2,6 L2,2 Z M2,8 L7,8 L7,12 L2,12 L2,8 Z M9,2 L14,2 L14,6 L9,6 L9,2 Z M9,8 L14,8 L14,12 L9,12 L9,8 Z" transform="translate(1 2)"/>
</g><g transform="translate(428,72)"><defs><linearGradient id="a" x1="50.005%" x2="50.005%" y1="8.586%" y2="100.014%"><stop stop-color="#1A237E" stop-opacity=".2" offset="0%"/><stop stop-color="#1A237E" stop-opacity=".02" offset="100%"/></linearGradient><radialGradient id="b" cx="3.168%" cy="2.718%" r="161.248%" fx="3.168%" fy="2.718%" gradientTransform="matrix(1 0 0 .72222 0 .008)"><stop stop-color="#FFF" offset="0%"/><stop stop-color="#FFF" stop-opacity="0" offset="100%"/></radialGradient></defs><g fill="none" fill-rule="evenodd"><path fill="#4285F4" d="M9.5 2H24l9 9v24.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C8.11928813 38 7 36.8807119 7 35.5v-31C7 3.11928813 8.11928813 2 9.5 2z"/><path fill="#1A237E" fill-opacity=".2" d="M7 35c0 1.3807119 1.11928813 2.5 2.5 2.5h21c1.3807119 0 2.5-1.1192881 2.5-2.5v.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C8.11928813 38 7 36.8807119 7 35.5V35z"/><path fill="#FFF" fill-opacity=".2" d="M9.5 2H24v.5H9.5C8.11928813 2.5 7 3.61928813 7 5v-.5C7 3.11928813 8.11928813 2 9.5 2z"/><path fill="url(#a)" fill-rule="nonzero" d="M17.5 8l8.5 8.5V9" transform="translate(7 2)"/><path fill="#A1C2FA" d="M24 2l9 9h-6.5C25.1192881 11 24 9.88071187 24 8.5V2z"/><path fill="#F1F1F1" d="M13 18h14v2H13v-2zm0 4h14v2H13v-2zm0 4h14v2H13v-2zm0 4h10v2H13v-2z"/><path fill="url(#b)" fill-opacity=".1" d="M2.5 0H17l9 9v24.5c0 1.3807119-1.1192881 2.5-2.5 2.5h-21C1.11928813 36 0 34.8807119 0 33.5v-31C0 1.11928813 1.11928813 0 2.5 0z" transform="translate(7 2)"/></g></g><g transform="translate(90,144)"><path fill="#000000" fill-rule="evenodd" d="M18,0 L18,4 L17,4 L17,14 L18,14 L18,18 L14,18 L14,17 L4,17 L4,18 L0,18 L0,14 L1,14 L1,4 L0,4 L0,0 L4,0 L4,1 L14,1 L14,0 L18,0 Z M1,1 L1,3 L3,3 L3,1 L1,1 Z M15,1 L15,3 L17,3 L17,1 L15,1 Z M1,15 L1,17 L3,17 L3,15 L1,15 Z M15,15 L15,17 L17,17 L17,15 L15,15 Z M4,15 L14,15 L14,14 L15,14 L15,4 L14,4 L14,3 L4,3 L4,4 L3,4 L3,14 L4,14 L4,15 Z M5,5 L13,5 L13,7 L5,7 L5,5 Z M8,7 L10,7 L10,13 L8,13 L8,7 Z"/>
</g><g transform="translate(292,54)"><path fill="#000000" fill-rule="evenodd" d="M0.01,1 L0,15 C0,15.55 0.44,16 1,16 L11,16 C11.55,16 12,15.55 12,15 L12,5 L7,0 L1,0 C0.45,0 0.01,0.45 0.01,1 Z M6,10 L6,7 L5,7 L5,10 L2,10 L2,11 L5,11 L5,14 L6,14 L6,11 L9,11 L9,10 L6,10 Z M7,5 L7,1 L11,5 L7,5 Z" transform="translate(3 1)"/>
</g><g transform="translate(256,360)"><g fill="#000000" fill-rule="evenodd" transform="translate(2 2)">
<path d="M0,2 L2,2 L2,0 L0,0 L0,2 L0,2 Z M3,2 L5,2 L5,0 L3,0 L3,2 L3,2 Z M3,8 L5,8 L5,6 L3,6 L3,8 L3,8 Z M3,14 L5,14 L5,12 L3,12 L3,14 L3,14 Z M0,5 L2,5 L2,3 L0,3 L0,5 L0,5 Z M0,8 L2,8 L2,6 L0,6 L0,8 L0,8 Z M0,14 L2,14 L2,12 L0,12 L0,14 L0,14 Z M0,11 L2,11 L2,9 L0,9 L0,11 L0,11 Z M9,8 L11,8 L11,6 L9,6 L9,8 L9,8 Z M6,14 L8,14 L8,12 L6,12 L6,14 L6,14 Z M9,14 L11,14 L11,12 L9,12 L9,14 L9,14 Z M6,2 L8,2 L8,0 L6,0 L6,2 L6,2 Z M9,2 L11,2 L11,0 L9,0 L9,2 L9,2 Z M6,11 L8,11 L8,9 L6,9 L6,11 L6,11 Z M6,5 L8,5 L8,3 L6,3 L6,5 L6,5 Z M6,8 L8,8 L8,6 L6,6 L6,8 L6,8 Z" opacity=".54"/>
<polygon points="12 0 12 14 14 14 14 0"/>
</g>
</g><g transform="translate(346,184)"><g fill="none" fill-rule="evenodd">
<path fill="#000000" d="M14.5,8.87 C14.5,8.87 13,10.49 13,11.49 C13,12.32 13.67,12.99 14.5,12.99 C15.33,12.99 16,12.32 16,11.49 C16,10.5 14.5,8.87 14.5,8.87 L14.5,8.87 Z M12.71,6.79 L5.91,0 L4.85,1.06 L6.44,2.65 L2.29,6.79 C1.9,7.18 1.9,7.81 2.29,8.2 L6.79,12.7 C6.99,12.9 7.24,13 7.5,13 C7.76,13 8.01,12.9 8.21,12.71 L12.71,8.21 C13.1,7.82 13.1,7.18 12.71,6.79 L12.71,6.79 Z M4.21,7 L7.5,3.71 L10.79,7 L4.21,7 L4.21,7 Z"/>
</g>
</g><g transform="translate(292,162)"><g fill="#000000" fill-rule="evenodd" transform="rotate(-180 8 8)">
<rect width="9" height="2" x="5" y="1"/>
<rect width="9" height="2" x="5" y="6"/>
<rect width="9" height="2" x="5" y="11"/>
<circle cx="2" cy="2" r="1.5"/>
<circle cx="2" cy="7" r="1.5"/>
<circle cx="2" cy="12" r="1.5"/>
</g>
</g><g transform="translate(352,280)"><path fill="#000000" fill-rule="evenodd" d="M9,0 L1,0 C0.45,0 0,0.45 0,1 L0,4 C0,4.55 0.45,5 1,5 L9,5 C9.55,5 10,4.55 10,4 L10,3 L11,3 L11,6 L4,6 L4,14 L6,14 L6,8 L13,8 L13,2 L10,2 L10,1 C10,0.45 9.55,0 9,0 Z" transform="translate(3 2)"/>
</g><g transform="translate(216,342)"><path fill="#000000" fill-rule="evenodd" d="M2,0.5 C1.17,0.5 0.5,1.17 0.5,2 C0.5,2.83 1.17,3.5 2,3.5 C2.83,3.5 3.5,2.83 3.5,2 C3.5,1.17 2.83,0.5 2,0.5 L2,0.5 Z M12,0.5 C11.17,0.5 10.5,1.17 10.5,2 C10.5,2.83 11.17,3.5 12,3.5 C12.83,3.5 13.5,2.83 13.5,2 C13.5,1.17 12.83,0.5 12,0.5 L12,0.5 Z M7,0.5 C6.17,0.5 5.5,1.17 5.5,2 C5.5,2.83 6.17,3.5 7,3.5 C7.83,3.5 8.5,2.83 8.5,2 C8.5,1.17 7.83,0.5 7,0.5 L7,0.5 Z" transform="translate(2 7)"/>
</g><g transform="translate(464,112)"><path fill="#000000" fill-rule="evenodd" d="M1.88,7.25 C2.84649831,7.25 3.63,6.46649831 3.63,5.5 C3.63,4.53350169 2.84649831,3.75 1.88,3.75 C0.913501688,3.75 0.13,4.53350169 0.13,5.5 C0.13,6.46649831 0.913501688,7.25 1.88,7.25 Z M4.75,4.25 C5.71649831,4.25 6.5,3.46649831 6.5,2.5 C6.5,1.53350169 5.71649831,0.75 4.75,0.75 C3.78350169,0.75 3,1.53350169 3,2.5 C3,3.46649831 3.78350169,4.25 4.75,4.25 Z M9,4.25 C9.96649831,4.25 10.75,3.46649831 10.75,2.5 C10.75,1.53350169 9.96649831,0.75 9,0.75 C8.03350169,0.75 7.25,1.53350169 7.25,2.5 C7.25,3.46649831 8.03350169,4.25 9,4.25 Z M12.12,7.25 C13.0864983,7.25 13.87,6.46649831 13.87,5.5 C13.87,4.53350169 13.0864983,3.75 12.12,3.75 C11.1535017,3.75 10.37,4.53350169 10.37,5.5 C10.37,6.46649831 11.1535017,7.25 12.12,7.25 Z M8.89,6.3 C8.54,5.9 8.17,5.54 7.63,5.36 C7.39,5.28 6.8,5.25 6.8,5.25 C6.55,5.25 6.3,5.29 6.06,5.36 C5.52,5.54 5.19,5.9 4.84,6.3 C4.28,6.95 3.78,7.64 3.18,8.25 C2.26,9.19 1.15,10.13 1.43,11.54 C1.59,12.34 2.13,12.96 2.97,13.22 C3.44,13.36 5.03,12.92 6.81,12.92 C8.59,12.92 10.34,13.37 10.81,13.22 C11.65,12.96 12.18,12.34 12.34,11.54 C12.62,10.13 11.5,9.19 10.58,8.25 C9.97,7.64 9.45,6.95 8.89,6.3 Z" transform="translate(2 2)"/>
</g><g transform="translate(274,180)"><polygon fill="#000000" fill-rule="evenodd" points="0 0 0 11 3 8 6.5 14 8 13 4.5 7 9 7" transform="translate(5 2)"/>
</g><g transform="translate(406,280)"><path fill="#0F9D58" fill-rule="evenodd" d="M15,0 L1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 Z M15,7 L7,7 L7,14 L5,14 L5,7 L2,7 L2,5 L5,5 L5,2 L7,2 L7,5 L15,5 L15,7 Z" transform="translate(1 1)"/>
</g><g transform="translate(446,112)"><path fill="#000000" fill-rule="evenodd" d="M15,0 L1,0 C0.45,0 0,0.45 0,1 L0,15 C0,15.55 0.45,16 1,16 L15,16 C15.55,16 16,15.55 16,15 L16,1 C16,0.45 15.55,0 15,0 L15,0 Z M3,4 L5,4 L5,6 L3,6 L3,4 L3,4 Z M3,7 L5,7 L5,9 L3,9 L3,7 L3,7 Z M3,10 L5,10 L5,12 L3,12 L3,10 L3,10 Z M13,12 L6,12 L6,10 L13,10 L13,12 L13,12 Z M13,9 L6,9 L6,7 L13,7 L13,9 L13,9 Z M13,6 L6,6 L6,4 L13,4 L13,6 L13,6 Z" transform="translate(1 1)"/>
</g><g transform="translate(536,94)"><path fill="#000000" fill-rule="evenodd" d="M11.1984243,12.7314433 C10.1705378,13.2376004 9.01347324,13.51339 7.81008922,13.51339 C3.76079474,13.51339 0.486938477,10.4180495 0.486938477,6.60969321 C0.486938477,5.38242903 0.829564562,4.20636592 1.45265328,3.18078427 C1.16977004,2.84491791 1,2.41529191 1,1.94706351 C1,0.871730025 1.8954305,-1.42108547e-14 3,-1.42108547e-14 C4.1045695,-1.42108547e-14 5,0.871730025 5,1.94706351 C5,3.0129437 4.12024382,3.87878446 3.02908196,3.89392536 C2.52395643,4.68714001 2.23341168,5.61633656 2.23341168,6.60969321 C2.23341168,9.52166659 4.73017526,11.8822874 7.81008922,11.8822874 C8.61187491,11.8822874 9.37414032,11.7223074 10.0631246,11.4342674 C10.0219176,11.2785555 10,11.1153013 10,10.9470635 C10,9.87173003 10.8954305,9 12,9 C13.1045695,9 14,9.87173003 14,10.9470635 C14,12.022397 13.1045695,12.894127 12,12.894127 C11.7149481,12.894127 11.4438245,12.8360715 11.1984243,12.7314433 Z" transform="translate(2 2)"/>
</g><g transform="translate(108,144)"><path fill="#000000" fill-rule="evenodd" d="M0,0 L0,1 L6,7 L6,12 L8,11 L8,7 L14,1 L14,0 L0,0 Z M4,3 L10,3 L7,6 L4,3 Z" transform="translate(2 3)"/>
</g><g transform="translate(446,238)"><polygon fill="#000000" fill-rule="evenodd" points="4.75 8.127 1.623 5 .561 6.061 4.75 10.25 13.75 1.25 12.689 .189" transform="translate(2 4)"/>
</g></svg>

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1022 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

@@ -0,0 +1 @@
.luckysheet-datavisual-quick-menu{width:120px;overflow:auto;margin-top:15px}.luckysheet-datavisual-quick-menu::-webkit-scrollbar{display:none}.luckysheet-datavisual-quick-menu>div{text-align:left;padding:4px 4px;border-right:3px solid #fff;color:#777;cursor:pointer;line-height:1.4em;word-wrap:break-word}.luckysheet-datavisual-quick-menu>div:hover{color:#000}.luckysheet-datavisual-quick-menu>div i{width:15px}.luckysheet-datavisual-quick-menu>div:hover i{color:#ff7e7e}.luckysheet-datavisual-quick-menu>div.luckysheet-datavisual-quick-menu-active{border-right:3px solid #ff7e7e;color:#000;font-weight:700}.luckysheet-datavisual-quick-menu>div.luckysheet-datavisual-quick-menu-active:hover i{color:#000}.luckysheet-datavisual-quick-range{padding:5px 0}.luckysheet-datavisual-range-container{background:#fff;border:1px solid #d9d9d9;border-top:1px solid silver;min-width:20px;width:100%;max-width:200px;display:inline-block}.luckysheet-datavisual-range-container-focus{border:1px solid #4d90fe;box-shadow:inset 0 1px 2px rgba(0,0,0,.3);outline:none}.luckysheet-datavisual-range-input,.luckysheet-datavisual-range-input:focus{background:transparent!important;border:none!important;box-sizing:border-box;box-shadow:none;height:25px;margin:0;outline:none!important;padding:1px 8px!important;width:100%}.luckysheet-datavisual-range-button-container{overflow:hidden;padding:0 0 0 8px;text-align:right;width:21px}.luckysheet-datavisual-range-button-container div{padding:2px 10px 0 10px;font-size:18px;cursor:pointer;color:#6598f3}.luckysheet-datavisual-range-button-container div:hover{color:#ff7e7e}.luckysheet-datavisual-quick-m{margin-top:5px;min-height:500px;top:50px;font-size:12px}.luckysheet-datavisual-quick-list{left:110px;right:0;bottom:0;top:80px;position:absolute;overflow:auto;border-top:1px solid #e5e5e5;padding:5px 3px 35px 3px}.luckysheet-datavisual-quick-list-title{padding:4px 6px;background:#e5e5e5;margin-top:10px}.luckysheet-datavisual-quick-list-ul{overflow:hidden}.luckysheet-datavisual-quick-list-item{display:inline-block;margin:5px 8px;border:1px solid #dadada;width:100px;height:80px}.luckysheet-datavisual-quick-list-item:hover{border:1px solid #ff7e7e;box-shadow:0 0 20px #ff7e7e}.luckysheet-datavisual-quick-list-item img{display:inline-block;width:100px;height:80px}.luckysheet-datavisual-quick-list-item-active{border:1px solid #6598f3;box-shadow:0 0 20px #6598f3}.chart-base-slider .el-slider__runway.show-input{margin-right:72px}.chart-base-slider .el-slider__input.el-input-number--mini{width:56px}.chart-base-slider .input_content{margin:6px 0 0 5px}.title{font-weight:700}.el-row{font-size:12px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.chartSetting{width:100%;height:100%}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,188 @@
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define([], factory);
} else if (typeof exports !== "undefined") {
factory();
} else {
var mod = {
exports: {}
};
factory();
global.FileSaver = mod.exports;
}
})(this, function () {
"use strict";
/*
* FileSaver.js
* A saveAs() FileSaver implementation.
*
* By Eli Grey, http://eligrey.com
*
* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)
* source : http://purl.eligrey.com/github/FileSaver.js
*/
// The one and only way of getting global scope in all environments
// https://stackoverflow.com/q/3277182/1008999
var _global = typeof window === 'object' && window.window === window ? window : typeof self === 'object' && self.self === self ? self : typeof global === 'object' && global.global === global ? global : void 0;
function bom(blob, opts) {
if (typeof opts === 'undefined') opts = {
autoBom: false
};else if (typeof opts !== 'object') {
console.warn('Deprecated: Expected third argument to be a object');
opts = {
autoBom: !opts
};
} // prepend BOM for UTF-8 XML and text/* types (including HTML)
// note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF
if (opts.autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) {
return new Blob([String.fromCharCode(0xFEFF), blob], {
type: blob.type
});
}
return blob;
}
function download(url, name, opts) {
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.responseType = 'blob';
xhr.onload = function () {
saveAs(xhr.response, name, opts);
};
xhr.onerror = function () {
console.error('could not download file');
};
xhr.send();
}
function corsEnabled(url) {
var xhr = new XMLHttpRequest(); // use sync to avoid popup blocker
xhr.open('HEAD', url, false);
try {
xhr.send();
} catch (e) {}
return xhr.status >= 200 && xhr.status <= 299;
} // `a.click()` doesn't work for all browsers (#465)
function click(node) {
try {
node.dispatchEvent(new MouseEvent('click'));
} catch (e) {
var evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);
node.dispatchEvent(evt);
}
} // Detect WebView inside a native macOS app by ruling out all browsers
// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too
// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos
var isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent);
var saveAs = _global.saveAs || ( // probably in some web worker
typeof window !== 'object' || window !== _global ? function saveAs() {}
/* noop */
// Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView
: 'download' in HTMLAnchorElement.prototype && !isMacOSWebView ? function saveAs(blob, name, opts) {
var URL = _global.URL || _global.webkitURL;
var a = document.createElement('a');
name = name || blob.name || 'download';
a.download = name;
a.rel = 'noopener'; // tabnabbing
// TODO: detect chrome extensions & packaged apps
// a.target = '_blank'
if (typeof blob === 'string') {
// Support regular links
a.href = blob;
if (a.origin !== location.origin) {
corsEnabled(a.href) ? download(blob, name, opts) : click(a, a.target = '_blank');
} else {
click(a);
}
} else {
// Support blobs
a.href = URL.createObjectURL(blob);
setTimeout(function () {
URL.revokeObjectURL(a.href);
}, 4E4); // 40s
setTimeout(function () {
click(a);
}, 0);
}
} // Use msSaveOrOpenBlob as a second approach
: 'msSaveOrOpenBlob' in navigator ? function saveAs(blob, name, opts) {
name = name || blob.name || 'download';
if (typeof blob === 'string') {
if (corsEnabled(blob)) {
download(blob, name, opts);
} else {
var a = document.createElement('a');
a.href = blob;
a.target = '_blank';
setTimeout(function () {
click(a);
});
}
} else {
navigator.msSaveOrOpenBlob(bom(blob, opts), name);
}
} // Fallback to using FileReader and a popup
: function saveAs(blob, name, opts, popup) {
// Open a popup immediately do go around popup blocker
// Mostly only available on user interaction and the fileReader is async so...
popup = popup || open('', '_blank');
if (popup) {
popup.document.title = popup.document.body.innerText = 'downloading...';
}
if (typeof blob === 'string') return download(blob, name, opts);
var force = blob.type === 'application/octet-stream';
var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari;
var isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent);
if ((isChromeIOS || force && isSafari || isMacOSWebView) && typeof FileReader !== 'undefined') {
// Safari doesn't allow downloading of blob URLs
var reader = new FileReader();
reader.onloadend = function () {
var url = reader.result;
url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;');
if (popup) popup.location.href = url;else location = url;
popup = null; // reverse-tabnabbing #460
};
reader.readAsDataURL(blob);
} else {
var URL = _global.URL || _global.webkitURL;
var url = URL.createObjectURL(blob);
if (popup) popup.location = url;else location.href = url;
popup = null; // reverse-tabnabbing #460
setTimeout(function () {
URL.revokeObjectURL(url);
}, 4E4); // 40s
}
});
_global.saveAs = saveAs.saveAs = saveAs;
if (typeof module !== 'undefined') {
module.exports = saveAs;
}
});
File diff suppressed because one or more lines are too long
@@ -0,0 +1,162 @@
#luckysheet-vchart-setting-dialog {
padding: 10px;
position: absolute;
overflow: hidden;
right: 0;
top: 0;
width: 320px;
height: calc(100% - 20px);
box-shadow: 0 8px 10px -5px rgba(0, 0, 0, 0.2), 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12);
z-index: 9999;
background-color: #fff;
color: #444;
display: flex;
flex-direction: column;
}
.luckysheet-vchart-setting-dialog-title {
height: 32px;
display: flex;
align-items: center;
justify-content: space-between;
/* border-bottom: solid 1px #dadce0; */
padding-bottom: 10px;
}
#luckysheet-vchart-setting-dialog-close {
cursor: pointer;
width: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.luckysheet-vchart-setting-dialog-footer {
height: 32px;
display: flex;
align-items: center;
justify-content: flex-end;
}
.luckysheet-vchart-setting-dialog-footer span {
margin-left: 10px;
width: 75px;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
white-space: nowrap;
cursor: pointer;
background: #fff;
border: 1px solid #dcdfe6;
color: #606266;
text-align: center;
box-sizing: border-box;
outline: none;
transition: 0.1s;
font-weight: 500;
font-size: 14px;
border-radius: 4px;
}
.luckysheet-vchart-setting-dialog-footer .cancel:hover {
color: var(--luckysheet-main-color);
background-color: var(--luckysheet-main-color-a2);
border-color: transparent;
}
.luckysheet-vchart-setting-dialog-footer .confirm {
background-color: var(--luckysheet-main-color-a8);
border-color: transparent;
color: #fff;
}
.luckysheet-vchart-setting-dialog-footer .confirm:hover {
/* color: var(--luckysheet-main-color); */
}
/* 内容区 */
.luckysheet-vchart-setting-dialog-body {
height: calc(100% - 32px - 32px - 10px);
padding: 10px 0;
overflow: hidden;
}
.luckysheet-vchart-setting-dialog-body-tabs {
height: 30px;
border-bottom: solid #dadce0 2px;
}
.luckysheet-vchart-setting-dialog-body-tabs .tab {
display: inline-block;
height: 100%;
padding: 0 10px;
cursor: pointer;
transition: all 0.3s;
}
.luckysheet-vchart-setting-dialog-body-tabs .tab:hover,
.luckysheet-vchart-setting-dialog-body-tabs .active {
border-bottom: solid 2px var(--luckysheet-main-color);
color: var(--luckysheet-main-color);
}
.luckysheet-vchart-setting-dialog-body-content {
padding: 10px;
height: calc(100% - 30px - 20px);
overflow: hidden;
overflow-y: auto;
}
/* 滚动条样式 */
.luckysheet-vchart-setting-dialog-body-content::-webkit-scrollbar {
width: 4px;
}
/* 滑块样式 */
.luckysheet-vchart-setting-dialog-body-content::-webkit-scrollbar-thumb {
background-color: var(--luckysheet-main-color);
border-radius: 2px;
}
/* 滚动条轨道样式 */
.luckysheet-vchart-setting-dialog-body-content::-webkit-scrollbar-track {
background-color: #f2f2f2;
border-radius: 2px;
}
.luckysheet-vchart-setting-dialog-body-content .vchart-type-item {
width: 48%;
user-select: none;
display: inline-block;
box-shadow: 0 6px 20px var(--luckysheet-main-color-a1);
border-radius: 8px;
overflow: hidden;
border: solid 2px transparent;
transition: all 0.3s;
cursor: pointer;
}
.luckysheet-vchart-setting-dialog-body-content .tips {
user-select: none;
font-size: 16px;
}
.luckysheet-vchart-setting-dialog-body-content .vchart-type-item:hover {
border-color: var(--luckysheet-main-color);
}
.luckysheet-vchart-setting-dialog-body-content .vchart-type-item img {
width: 100%;
}
.luckysheet-vchart-setting-dialog-body-content .vchart-type-item div {
text-align: center;
width: 100%;
background: linear-gradient(0deg, #f6f8fe00, #f6f8fe);
height: 32px;
line-height: 32px;
font-size: 12px;
line-height: 32px;
letter-spacing: 0.639896px;
color: #000000b3;
}
/* style content */
.luckysheet-vchart-setting-dialog-body-content .vchart-style-item {
user-select: none;
display: flex;
align-items: center;
}
.luckysheet-vchart-setting-dialog-body-content .vchart-style-item-label {
padding-right: 10px;
font-size: 12px;
color: #909399;
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 434 KiB

@@ -0,0 +1,251 @@
<!DOCTYPE html>
<html>
<head lang="zh">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="renderer" content="webkit" />
<meta name="viewport" content="width=device-width, initial-scale=1,user-scalable=0" />
<title>Luckysheet</title>
<link rel="stylesheet" href="./plugins/css/pluginsCss.css" />
<link rel="stylesheet" href="./plugins/plugins.css" />
<link rel="stylesheet" href="./css/luckysheet.css" />
<link rel="stylesheet" href="./assets/iconfont/iconfont.css" />
<script src="./plugins/js/plugin.js"></script>
<!-- rollup luckysheet.js -->
<script src="./luckysheet.umd.js"></script>
<script src="./demoData/sheetVchart.js"></script>
<script src="./demoData/sheetChart.js"></script>
<script src="./demoData/sheetCell.js"></script>
<script src="./demoData/sheetPicture.js"></script>
</head>
<body>
<div id="luckysheet" style="margin: 0px; padding: 0px; position: absolute; width: 100%; height: 100%; left: 0px; top: 0px"></div>
<script>
// 公共配置项
const commonOptions = {
container: "luckysheet",
lang: "zh",
// showinfobar: false, // 隐藏信息栏
// showlogo: false, // 隐藏logo
plugins: [{ name: "vchart" }, { name: "chart" }],
data: [sheetCell],
// 打印像素比,设置越高,越清晰
printDevicePixelRatio: 4,
// 图片显示方式
imageMode: "cell", // 'cell' | 'float'
// 自定义快捷键
customShortcutKeys: [
{
key: 83,
ctrl: true,
callback: (e) => {
console.log("Ctrl S");
},
},
{
key: 80,
ctrl: true,
callback: (e) => {
luckysheet.print("sheet");
},
},
],
// 自定义右键菜单
cellRightClickConfig: {
// copy: false,
copyAs: false,
// paste: false,
hideColumn: false,
columnWidth: false,
clear: false,
matrix: false,
sort: false,
filter: false,
chart: false,
image: false,
link: false,
data: false,
cellFormat: false,
customs: [
{
title: "test",
onClick: function (clickEvent, event, params) {
console.log("function test click", clickEvent, event, params);
},
},
],
},
// 项目菜单
menuHandler: {
// 隐藏内置菜单
// hideDefaultMenu: ['exportFile', 'importFile'],
// 自定义
customs: [
// 分割线
{
order: 0,
label: "自定义菜单",
value: "newFile",
callback: () => {
console.log("==> 自定义菜单");
},
},
{
order: 0,
value: "divider",
},
],
},
// loading 样式
loading: {
image: () => {
return `<svg viewBox="25 25 50 50" class="circular">
<circle cx="50" cy="50" r="20" fill="none"></circle>
</svg>`;
},
imageClass: "loadingAnimation",
},
};
// 处理协同图片上传
async function uploadImage(file, serviceServer) {
// 此处拿到的是上传的 file 对象,进行文件上传 ,配合 node 接口实现
const formData = new FormData();
formData.append("image", file);
// 结合 Ajax 实现图片上传
return new Promise((resolve, reject) => {
$.ajax({
url: `${serviceServer}/uploadImage`,
type: "POST",
data: formData,
processData: false,
contentType: false,
success: function (res) {
if (res.code === 200) resolve(res.url);
else reject("image upload error");
},
error: function (err) {
reject("image upload error");
},
});
});
}
// 处理上传图片的地址
function imageUrlHandle(url, serviceServer) {
// 已经是 // http data 开头则不处理
if (/^(?:\/\/|(?:http|https|data):)/i.test(url)) return url;
// 不然拼接服务器路径
return serviceServer + url;
}
// 动态获取 luadUrl
function getLoadUrl(serviceServer, currentBranch, gridkey) {
return `${serviceServer}${currentBranch === "master-alpha" ? "/" : "/luckysheet/"}loadSheetData?gridkey=${gridkey}`;
}
// 动态获取 updateUrl
function getUpdateUrl(collabrationServer, currentBranch, userid, username, gridkey) {
return `${collabrationServer}
${currentBranch === "master-alpha" ? "?" : "/luckysheet?"}
type=luckysheet&userid=${userid}&username=${username}&gridkey=${gridkey}`;
}
// 根据协同与否,动态获取配置
function getOptions(
isCollabration,
requestHeaders = {},
serviceServer,
collabrationServer,
currentBranch,
userid,
username,
gridkey
) {
// 如果没有开启协同,则直接返回基础配置
if (!isCollabration) return Object.assign({}, commonOptions, { requestHeaders });
return Object.assign({}, commonOptions, {
// 如果是 master-vue 的话,还需要添加自定义请求头,请检查合并属性哈,不然容易遗漏属性
requestHeaders:
currentBranch === "master-vue"
? {
"enable-pass-token": true, // 是否允许跳过 token 验证
...requestHeaders,
}
: requestHeaders,
allowUpdate: true, // 配置协同功能
loadUrl: getLoadUrl(serviceServer, currentBranch, gridkey),
updateUrl: getUpdateUrl(collabrationServer, currentBranch, userid, username, gridkey), // 协同服务转发服务
// 如果配置了协同,请配置图片处理函数,避免base64图片过大导致图片无法显示
uploadImage: (file) => uploadImage(file, serviceServer),
imageUrlHandle: (url) => imageUrlHandle(url, serviceServer),
});
}
/**
* @description 页面初始化相关工作
*/
$(function () {
/**
* -------------------------------------------------------
* ⚠️ 注意:请严格按照下列步骤进行配置,否则会导致无法协同 ⚠️
* -------------------------------------------------------
*/
// 1. 请明确协同服务地址
const collabrationServer = "ws://localhost:9000";
// 2. 请明确业务服务地址
const serviceServer = "http://localhost:9000";
// 3. 请明确 `luckysheet-crdt` 项目目前所在的分支,因为 master-alpha 与 master-vue 分支所在的服务端不尽相同,`master-vue` 分支需要校验 token
const currentBranch = "master-alpha"; // "master-vue" | "master-alpha"
// 4. 定义 userid 内部 userid 可随机生成
const userid = Math.random().toString(16).slice(2, 8);
// 5. username 字段 仅用于显示 xxx正在编辑 (对中文进行编码传输,避免乱码)
const username = encodeURIComponent(`用户_${userid}`);
// 6. 这个是协同的文件 gridKey 请真实的设置为数据库的 key,不然会提示协同服务异常 是真实数据库表的 workerbooks gridKey 字段
const gridkey = "705abf334c946bf5545ce04f586eb42e";
// 7. 明确是否需要协同功能
const isCollabration = false;
// 8. 是否需要携带其他 request headers
const requestHeaders = {
// "Custom-userid": userid,
};
// 9. 根据是否需要协同功能,动态获取配置项
const options = getOptions(
isCollabration,
requestHeaders,
serviceServer,
collabrationServer,
currentBranch,
userid,
username,
gridkey
);
// 10. 创建表格
luckysheet.create(options);
});
</script>
</body>
</html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1734590898389" class="icon" viewBox="0 0 1194 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7133" xmlns:xlink="http://www.w3.org/1999/xlink" width="233.203125" height="200"><path d="M625.777778 1024H195.754667C87.836444 1024 0 926.037333 0 805.546667V218.453333C0 97.905778 87.836444 0 195.754667 0H625.777778v572.529778l-70.200889 73.614222-131.470222-277.617778c-7.793778-16.156444-22.072889-26.510222-37.888-27.136-15.815111-0.682667-30.833778 8.476444-39.424 23.950222L121.173333 771.470222c-13.653333 24.462222-7.736889 57.230222 13.084445 73.216a39.936 39.936 0 0 0 24.689778 8.647111c14.734222 0 29.297778-8.476444 37.888-24.007111l184.775111-332.572444 122.652444 258.730666a45.966222 45.966222 0 0 0 31.857778 26.510223 40.789333 40.789333 0 0 0 37.660444-12.743111l52.053334-54.613334V1024z" fill="#a3d4b9" p-id="7134" data-spm-anchor-id="a313x.manage_type_myprojects.0.i1.17a43a814szsc5" class="selected"></path><path d="M625.777778 1024v-309.361778l115.313778-120.945778 146.375111 203.093334c16.042667 22.186667 44.544 25.031111 63.601777 6.200889 19.114667-18.887111 21.390222-52.337778 5.461334-74.524445l-176.355556-244.622222a43.064889 43.064889 0 0 0-31.288889-18.773333 40.846222 40.846222 0 0 0-33.28 13.312L625.777778 572.529778V0h373.134222C1106.830222 0 1194.666667 97.962667 1194.666667 218.453333v587.093334c0 120.490667-87.836444 218.453333-195.754667 218.453333H625.777778z m227.555555-796.444444a56.888889 56.888889 0 1 0-0.056889 113.720888A56.888889 56.888889 0 0 0 853.333333 227.555556z" fill="#55bb8a" p-id="7135" data-spm-anchor-id="a313x.manage_type_myprojects.0.i0.17a43a814szsc5" class=""></path></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 MiB

Some files were not shown because too many files have changed in this diff Show More