Skip to content

d3JS 可视化 ​

目标 ​

认识 d3 的概念和优缺点

理解 d3 的基本绘图流程

D3 是什么 ​

  • D3 是来源于 Data Driven Documents 的三个首字母,其本质是将数据与 DOM 绑定,并将数据映射至 DOM 属性上。
  • D3 是一个基于 web 标准的 JavaScript 可视化库。
  • D3 可以借助 SVG, Canvas 以及 HTML 将你的数据生动的展现出来。
  • D3 长于可视化,而不止于可视化,还提供了数据处理、数据分析、DOM 操作等诸多功能。
  • D3 更接近底层,与 g2、echarts 不同,d3 能直接操作 svg,所以拥有极大的自由度,几乎可以实现任何 2d 的设计需求。

官网地址:https://d3js.org/github

API:https://github.com/d3/d3/blob/master/API.md

D3 的优缺点 ​

  • 优势:掌握 d3 后,可让自己的作品具有更广阔的扩展空间。
  • 缺点:学习门槛较高,对用户的 web 技术、可视化理论、数学逻辑都一定要求。

快速上手 D3 ​

1.下载 D3.zip:https://github.com/d3/d3

cdn:

2.核心知识 ​

选择元素 ​

选择的依据

  • 通过 css 选择器选择
  • 通过 dom 对象选择

选择的方式

  • 单选:select()
  • 多选:selectAll()

多选的过滤 filter()

  • :nth-child(even)
  • ()=>{}
html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>选择</title>
		<style>
			body {
				background-color: #faf5ea;
			}
			h1 {
				text-align: center;
			}
			p {
				text-align: center;
				font-size: 24px;
			}
			.sky {
				color: #00acec;
			}
		</style>
	</head>
	<body>
		<h1 id="title">沁园春·长沙</h1>
		<article id="cont">
			<p>独立寒秋,湘江北去,橘子洲头。</p>
			<p>看万山红遍,层林尽染;漫江碧透,百舸争流。</p>
			<p>鹰击长空,鱼翔浅底,万类霜天竞自由。</p>
			<p>怅寥廓,问苍茫大地,谁主沉浮?</p>
			<p>携来百侣曾游。忆往昔峥嵘岁月稠。</p>
			<p>恰同学少年,风华正茂;书生意气,挥斥方遒。</p>
			<p>指点江山,激扬文字,粪土当年万户侯。</p>
			<p>曾记否,到中流击水,浪遏飞舟?</p>
		</article>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			/*1-选择的依据
			 *   通过css选择器选择
			 *   通过dom对象选择
			 * */
			/*select 选择'#title'*/
			/*const title=d3.select('#title').attr('class','sky')
    console.log(title.node());*/

			/*select 选择第一个p元素*/
			// d3.select('p').attr('class','sky')

			/*
			 * 用原生js获取title元素
			 * select选择title元素
			 * */
			/*d3.select('#cont').on('click',({target})=>{
        if(target.tagName==='P'){
            d3.select(target).attr('class','sky')
        }
    })*/

			/*2-多选*/
			/*selectAll 选择所有p元素*/
			// d3.selectAll('p').attr('class','sky')

			/*3-过滤多选的元素
			 *   filter((ele,ind)=>{}) 可基于节点元素或节点的索引进行过滤
			 *   filter(':nth-child(n)') 基于元素的索引位置过滤
			 * */
			/*d3.selectAll('p')
        .filter(':nth-child(3)')
        .attr('class','sky')*/
			d3.selectAll("p")
				.filter((ele, ind) => {
					return ind % 3;
				})
				.attr("class", "sky");
		</script>
	</body>
</html>

设置元素样式 ​

classed 增|删 class

style 内联样式

attr 设置属性,会覆盖以前的属性

  • class
  • style……
html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>样式</title>
		<style>
			body {
				background-color: #faf5ea;
			}
			h1 {
				text-align: center;
			}
			p {
				text-align: center;
				font-size: 24px;
			}
			.sky {
				color: #00acec;
			}
		</style>
	</head>
	<body>
		<h1 id="title">沁园春·长沙</h1>
		<article id="cont">
			<p>独立寒秋,湘江北去,橘子洲头。</p>
			<p>看万山红遍,层林尽染;漫江碧透,百舸争流。</p>
			<p>鹰击长空,鱼翔浅底,万类霜天竞自由。</p>
			<p>怅寥廓,问苍茫大地,谁主沉浮?</p>
			<p>携来百侣曾游。忆往昔峥嵘岁月稠。</p>
			<p>恰同学少年,风华正茂;书生意气,挥斥方遒。</p>
			<p>指点江山,激扬文字,粪土当年万户侯。</p>
			<p>曾记否,到中流击水,浪遏飞舟?</p>
		</article>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			/*设置dom样式
			 *   style 内联样式
			 *   classed 增|删class
			 *   attr 设置属性,会覆盖以前的属性值
			 *       class
			 *       style
			 *       ……
			 * */
			/*选择标题元素*/
			const title = d3.select("#title");

			/*style() 方法设置标题颜色*/
			// title.style('color','#00acec')
			// title.style('font-size','48px')

			/*attr() 方法通过对style 属性的设置,改变标题颜色*/
			// title.attr('style','color:red')

			/*classed(class,true|false) 方法增删标题的class*/
			// title.classed('sky',true)
			// title.classed('sky',false)
			// title.classed('a',true)
			// title.classed('b',true)

			/*attr() 方法设置class属性*/
			// title.attr('class','sky')

			/*用style的回调函数,让所有p元素偶数行变蓝*/
			d3.selectAll("p").style("color", (ele, ind) =>
				ind % 2 ? "#00acec" : "#000"
			);

			/*用data数据绑定,动态设置p元素字体大小*/
			// const data=[12,14,16,18,24,28,32,38]
			const data = [12, 14, 16, 18, 24, 28, 32, 38, 48, 52];
			// const data=[12,14,16,18]
			d3.selectAll("p")
				.data(data)
				.style("font-size", (ele) => {
					console.log(ele);
					return ele + "px";
				});
		</script>
	</body>
</html>

设置元素属性 ​

attr 设置普通的内置属性和自定义属性

property 设置特殊的内置属性

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>属性</title>
		<style>
			body {
				background-color: #faf5ea;
			}
			.question {
				padding: 30px;
				width: 60%;
				margin: auto;
			}
			.title {
				font-weight: bold;
				font-size: 18px;
			}
			.opt {
				display: block;
				line-height: 36px;
			}
		</style>
	</head>
	<body>
		<div class="question">
			<p class="title">《沁园春·长沙》里的诗句有哪些?</p>
			<label>
				<input type="checkbox" checked /> 独立寒秋,湘江北去,橘子洲头。
			</label>
			<label> <input type="checkbox" checked /> 看万山红遍,层林尽染; </label>
			<label> <input type="checkbox" checked /> 好好学习,天天向上。 </label>
		</div>

		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			/*设置dom属性
			 *   attr 设置普通的内置属性和自定义属性
			 *   property 设置特殊的内置属性
			 * */
			/*attr 为所有label元素添加class样式*/
			d3.selectAll("label").attr("class", "opt");

			/*用js取消复选框的选择
			 *   selectAll() 选择所有input元素
			 *   filter((ele,ind)=>{}) 基于元素索引位置过滤
			 *   property() 方法设置checked属性
			 * */
			d3.selectAll("input")
				.filter((ele, ind) => ind === 2)
				.property("checked", false);
			// .attr('checked',false)
		</script>
	</body>
</html>

设置元素 ​

text 文本内容 html

html 内容

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>内容</title>
		<style>
			body {
				background-color: #faf5ea;
			}
			h1 {
				text-align: center;
			}
			p {
				text-align: center;
				font-size: 24px;
			}
		</style>
	</head>
	<body>
		<h1 id="title"></h1>
		<article id="cont"></article>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			/*设置dom内容
			 *   text 文本内容
			 *   html html内容
			 * */
			//标题元素
			const title = d3.select("#title");
			//内容元素
			const cont = d3.select("#cont");
			//标题内容
			const titleText = "沁园春·长沙";
			//标签文本
			const p = `
        <p>独立寒秋,湘江北去,橘子洲头。</p>
        <p>看万山红遍,层林尽染;漫江碧透,百舸争流。</p>
        <p>鹰击长空,鱼翔浅底,万类霜天竞自由。</p>
        <p>怅寥廓,问苍茫大地,谁主沉浮?</p>
        <p>携来百侣曾游。忆往昔峥嵘岁月稠。</p>
        <p>恰同学少年,风华正茂;书生意气,挥斥方遒。</p>
        <p>指点江山,激扬文字,粪土当年万户侯。</p>
        <p>曾记否,到中流击水,浪遏飞舟?</p>
    `;

			/*text设置标题的文本内容*/
			title.text(titleText);

			/*html设置元素的html内容*/
			cont.html(p);
			// cont.text(p)
		</script>
	</body>
</html>

内容增删元素 ​

append 在当前选择集的最后追加指定名称的子元素

insert 前置元素,可声明在哪个元素前前置元素

data+join 以完全覆盖的方式添加元素

data+enter+append 以差值的方式添加元素

remove 删除元素

元素添加:

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>dom增删改查</title>
		<style>
			body {
				background-color: #faf5ea;
			}
			h1 {
				text-align: center;
			}
			p {
				text-align: center;
				font-size: 24px;
			}
		</style>
	</head>
	<body>
		<h1 id="title">沁园春·长沙</h1>
		<article id="cont"></article>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			const arr = [
				"作者:毛主席",
				"独立寒秋,湘江北去,橘子洲头。",
				"看万山红遍,层林尽染;漫江碧透,百舸争流。",
				"鹰击长空,鱼翔浅底,万类霜天竞自由。",
				"怅寥廓,问苍茫大地,谁主沉浮?",
				"携来百侣曾游。忆往昔峥嵘岁月稠。",
				"恰同学少年,风华正茂;书生意气,挥斥方遒。",
				"指点江山,激扬文字,粪土当年万户侯。",
				"曾记否,到中流击水,浪遏飞舟?",
			];
			//内容元素
			const cont = d3.select("#cont");

			/*添加DOM 元素
			 *   append 在当前选择集的最后追加指定名称的子元素
			 *   insert 前置元素,可声明在哪个元素前前置元素
			 *   data+join 以完全覆盖的方式添加元素
			 *   data+enter+append 以差值的方式添加元素
			 * */
			/*
			 * append(),向cont中添加p元素
			 * text()设置元素文本内容
			 * */
			cont
				.append("p")
				.text("独立寒秋,湘江北去,橘子洲头。------")
				.attr("id", "p1");

			/*insert(要添加的元素,在哪个元素之前添加)
			 * 在第一句的前面添加作者
			 * */
			cont.insert("p", "#p1").text("作者:毛主席");

			/*selectAll() 选择所有的p元素
			 * data() 绑定数据
			 * join() 基于数据添加p元素
			 * text(d=>d) 设置DOM元素内容为数据内容
			 * */
			/*cont.selectAll('p')
        .data(arr)
        .join('p')
        .text(ele=>ele)*/

			/*selectAll() 选择所有的p元素
			 * data() 绑定数据
			 * enter() 将数据和已有DOM元素做插值运算
			 * append() 基于插值结果添加p元素
			 * text(d=>d) 设置DOM元素内容为数据内容
			 * */
			cont
				.selectAll("p")
				.data(arr)
				.enter()
				.append("p")
				.text((ele) => ele);
		</script>
	</body>
</html>

元素删除

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>dom增删改查</title>
		<style>
			body {
				background-color: #faf5ea;
			}
			h1 {
				text-align: center;
			}
			p {
				text-align: center;
				font-size: 24px;
			}
		</style>
	</head>
	<body>
		<h1 id="title">沁园春·长沙</h1>
		<article id="cont">
			<p>天生我才必有用,不如自挂东南枝。</p>
			<p>独立寒秋,湘江北去,橘子洲头。</p>
			<p>看万山红遍,层林尽染;漫江碧透,百舸争流。</p>
			<p>鹰击长空,鱼翔浅底,万类霜天竞自由。</p>
			<p>怅寥廓,问苍茫大地,谁主沉浮?</p>
			<p>携来百侣曾游。忆往昔峥嵘岁月稠。</p>
			<p>恰同学少年,风华正茂;书生意气,挥斥方遒。</p>
			<p>指点江山,激扬文字,粪土当年万户侯。</p>
			<p>曾记否,到中流击水,浪遏飞舟?</p>
		</article>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			/*remove 删除元素*/
			/*select('p') 删除第一个p元素*/
			d3.select("p:nth-child(1)").remove();
		</script>
	</body>
</html>

入门使用例子 ​

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>入门</title>
		<style>
			html,
			body {
				margin: 0;
				height: 100%;
			}
			#main {
				height: 100%;
				background-color: antiquewhite;
			}
		</style>
	</head>
	<body>
		<!--svg容器对象-div-->
		<div id="main"></div>
		<!--引入d3-->
		<script src="https://lib.baomitu.com/d3/6.2.0/d3.js"></script>
		<script>
			/*需求:
			 *   建立一个小球
			 *   鼠标划入时,变色
			 *   鼠标划出时,恢复原本颜色
			 * */

			/*select() 方法选择容器*/
			const main = d3.select("#main");
			console.log(main);

			/*向容器中添加svg*/
			const svg = main
				.append("svg")
				.attr("width", "100%")
				.attr("height", "100%");

			/*向svg中添加一个圆circle
			 *    attr() 属性设置
			 *       cx|cy 圆心位
			 *       r 半径
			 *       fill
			 *    style() 内联样式设置
			 *       cursor 光标形状
			 *           pointer 小手
			 * */
			const circle = svg
				.append("circle")
				.attr("r", 100)
				.attr("cx", 300)
				.attr("cy", 200);

			/*用on方法监听鼠标划入图形事件mouseover
			 *   attr 方法改变小球填充色fill
			 * */
			circle.on("mouseover", () => {
				circle.attr("fill", "#00acec");
			});

			/*用on方法监听鼠标划出图形事件mouseout
			 *   attr 方法改变小球填充色fill
			 * */
			circle.on("mouseout", () => {
				circle.attr("fill", "#000");
			});
		</script>
	</body>
</html>

使用 d3 操作 svg ​

理解 svg 的绘图原理

可以使用 svg 绘制基础图形

可以为 svg 图形添加样式

知识点综述 ​

认识 svg

svg 图形

svg 样式

机器人案例

认识 svg ​

SVG 是一种 XML 语言,可以绘制矢量图形。

SVG 的优点是缩放不失真,实现了 DOM 接口,可以监听鼠标事件。

SVG 的缺点是不适合图形数量较大的场景,比如粒子特效。

svg 绘图方式 ​

从 svg 根元素开始开始绘图。

在 svg 中,通过不同的标签元素,绘制不同的图形元素。

在图形元素中,通过不同的属性设置其形状和样式。

html
<svg
	version="1.1"
	baseProfile="full"
	width="300"
	height="200"
	xmlns="http://www.w3.org/2000/svg"
>
	<rect width="100%" height="100%" fill="red"></rect>
</svg>

svg 图形 ​

svg 中内置了很多现成的图形元素,可以让我们快速绘图,比如线段 line 、矩形 rect、圆形 circle、椭圆形 ellipse 等;

svg 中还有万能型的绘图元素—路径 path。

图形绘制 ​

rect 矩形

  • x|y 矩形左上角点位置
  • width|height 尺寸

circle 圆形

  • cx|cy 圆心位置
  • r 半径

path 路径

  • d 路径形状,大写字母为绝对点位,小写字母为相对点位
    • 起点: M|m
      • 下一个点: L|l
      • 圆弧: A, a
      • 二次贝塞尔曲线: Q|q, T|t
      • 三次贝塞尔曲线(): C|c, S|s
    • 闭合路径(): Z|z

svg 图形的着色区域有两种 ​

描边区域: stroke 代表了描边样式,默认 none

填充区域: fill 代表了填充样式,默认 black

图形的着色方式有 3 种 ​

纯色:#000, black, rgb(0,0,0), rgba(0,0,0,1)

渐变

  • 线性渐变:linearGradient
  • 径向渐变:radialGradient

纹理:pattern

机器人-用 d3 操作 svg ​

总结 ​

咱们这一章主要说了 svg 基本用法,以及 d3 对 svg 的操作。下一章,我们会基于 svg,用 d3 绘制柱状图。

用 d3 修改机器人案例 ​

将机器人的天线变成虚线

机器人的眼睛变色

机器人的嘴巴变成弧线

html

使用 d3 操作 svg ​

理解 svg 的绘图原理

可以使用 svg 绘制基础图形

可以为 svg 图形添加样式

可以使用 d3 绘制 svg 图形

知识点综述 ​

认识 svg

svg 绘图方式 ​

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>svg绘图方式</title>
		<style>
			html {
				height: 100%;
			}
			body {
				height: 100%;
				margin: 0;
				display: flex;
				justify-content: center;
				align-items: center;
			}
			svg {
				background-color: antiquewhite;
			}
		</style>
	</head>
	<body>
		<!--
svg 根节点
    version svg版本
    xmlns 命名空间http://www.w3.org/2000/svg
    width|height svg画布尺寸,如400,400
    viewBox 视图框,总会在画布中完全显示,其中的图形会基于视图框的宽高按比例显示
rect 矩形,如 0 0 400 400
-->
		<svg
			version="1.2"
			xmlns="http://www.w3.org/2000/svg"
			width="800"
			height="800"
			viewBox="-200 -200 400 400"
		>
			<rect x="0" y="0" width="400" height="400"></rect>
			<circle r="100" fill="#00acec"></circle>
		</svg>
	</body>
</html>

svg 图形 ​

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>svg图形</title>
		<style>
			html {
				height: 100%;
			}
			body {
				height: 100%;
				margin: 0;
			}
			svg {
				background-color: antiquewhite;
			}
		</style>
	</head>
	<body>
		<!--
svg 根节点
    version svg版本
    width|height svg画布尺寸
    xmlns 命名空间http://www.w3.org/2000/svg
-->
		<svg
			version="1.2"
			xmlns="http://www.w3.org/2000/svg"
			width="100%"
			height="100%"
		>
			<!--
        rect 矩形
            x|y 矩形左上角点位置
            width|height 尺寸
    -->
			<!--<rect x="100"
          y="50"
          width="100"
          height="50"
          fill="#00acec"
    ></rect>-->

			<!--
        circle 圆形
            cx|cy 圆心位置
            r 半径
    -->
			<!--<circle cx="200"
            cy="100"
            r="80"
    ></circle>-->

			<!--path 路径
        d 路径形状,大写字母为绝对点位,小写字母为相对点位
        起点: M|m
        下一个点: L|l
        圆弧: A, a
        二次贝塞尔曲线: Q|q, T|t
        三次贝塞尔曲线(): C|c, S|s
        闭合路径(): Z|z
        -->

			<!--直线L|l x,y,如 M 300 300 L 500 300-->
			<!--<path d="
            M
            300 300
            L
            500 300
            500 600
            Z
    "
          stroke="#000"
          fill="none"
          stroke-dasharray="10"
          stroke-width="5"
    ></path>-->

			<!--圆弧A|a,如 M 300 300 A 150 200 0 0 0 500 300
            rx ry 半径
            x-axis-rotation x轴方向 [0,360]
            large-arc-flag 是否显示最大弧 0|1
            sweep-flag 弧在哪一侧 0|1
            x y 结束点
    -->
			<!--<path d="
            M
            300 300
            L
            500 300
    "
          stroke="#000"
          fill="none"
          stroke-dasharray="5"
          stroke-width="2"
    ></path>
    <path d="
            M
            300 300
            A
            150 200
            30
            1
            0
            500 300
    "
          stroke="#000"
          fill="none"
          stroke-width="2"
    ></path>-->

			<!--二次贝塞尔曲线 Q|q,如M 100 400 Q 200 100 300 400
            cpx1 cpy1 控制点
            x y 结束点
    -->
			<!--<path d="
            M
            100 400
            L
            200 100
            300 400
    "
          stroke="#000"
          fill="none"
          stroke-dasharray="5"
          stroke-width="2"
    ></path>
    <path d="
            M
            100 400
            Q
            200 100
            300 400
    "
          stroke="#000"
          fill="none"
          stroke-width="2"
    ></path>-->

			<!--二次贝塞尔曲线的延续 T|t,如T 500 400
            x y 结束点
            x y 结束点
            ……
    -->
			<!--<path d="
            M
            100 400
            L
            200 100
            300 400
            500 400
    "
          stroke="#000"
          fill="none"
          stroke-dasharray="5"
          stroke-width="2"
    ></path>
    <path d="
            M
            100 400
            Q
            200 100
            300 400
            T
            500 400
            700 400
    "
          stroke="#000"
          fill="none"
          stroke-width="2"
    ></path>-->

			<!--三次贝塞尔曲线 C|c,如 M 100 400 C 200 400 200 200 300 200
            cpx1 cpy1 控制点1
            cpx2 cpy2 控制点2
            x y 结束点
    -->
			<!--<path d="
            M
            100 400
            L
            200 400
            200 200
            300 200
    "
          stroke="#000"
          fill="none"
          stroke-dasharray="5"
          stroke-width="2"
    ></path>
    <path d="
            M
            100 400
            C
            200 400
            200 200
            300 200
    "
          stroke="#000"
          fill="none"
          stroke-width="2"
    ></path>-->

			<!--三次贝塞尔曲线的延续 S|s,如 S 400 400 500 400
            cpx2 cpy2 控制点2
            x y 结束点
    -->
			<!--<path d="
            M
            100 400
            L
            200 400
            200 200
            300 200
            400 400
            500 400
    "
          stroke="#000"
          fill="none"
          stroke-dasharray="5"
          stroke-width="2"
    ></path>
    <path d="
            M
            100 400
            C
            200 400
            200 200
            300 200
            S
            400 400
            500 400
            600 200
            700 200
    "
          stroke="#000"
          fill="none"
          stroke-width="2"
    ></path>-->

			<!--图形容器 g-->
			<g stroke="#000" fill="none" stroke-width="2">
				<path
					d="
            M
            100 400
            L
            200 400
            200 200
            300 200
            400 400
            500 400
    "
					stroke-dasharray="5"
				></path>
				<path
					d="
            M
            100 400
            C
            200 400
            200 200
            300 200
            S
            400 400
            500 400
            600 200
            700 200
    "
				></path>
			</g>
		</svg>
	</body>
</html>

svg 样式 ​

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>svg样式</title>
		<style>
			html {
				height: 100%;
			}
			body {
				height: 100%;
				margin: 0;
			}
			svg {
				background-color: antiquewhite;
			}
		</style>
	</head>
	<body>
		<!--
svg 根节点
    version svg版本
    width|height svg画布尺寸
    xmlns 命名空间http://www.w3.org/2000/svg
-->
		<svg
			version="1.2"
			xmlns="http://www.w3.org/2000/svg"
			width="100%"
			height="100%"
		>
			<!--着色区域
        fill 填充区域,默认black
        stroke 描边区域,默认none
    -->
			<!--<circle cx="300" cy="300" r="200" fill="#00acec"/>-->
			<!--<circle cx="300" cy="300" r="200" stroke="#00acec" fill="none" stroke-width="10"/>-->

			<!--着色方式
            纯色
            渐变色
                线性渐变
                径向渐变
            纹理
    -->
			<!--纯色 #000, black, rgb(0,0,0), rgba(0,0,0,1)-->
			<!--<circle cx="300" cy="300" r="200" fill="#000"/>-->
			<!--<circle cx="300" cy="300" r="200" fill="black"/>-->
			<!--<circle cx="300" cy="300" r="200" fill="rgb(0,0,0)"/>-->
			<!--<circle cx="300" cy="300" r="200" fill="rgba(0,0,0,1)"/>-->

			<!--linearGradient 线性渐变
            gradientTransform 渐变变换 https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function
                rotate(a) 旋转[0,360]
                translate(x,y) 移动
                scale(sx,sy) 缩放
        stop 颜色节点
            offset 偏移量[0,1]
            stop-color 颜色
        渐变色的赋值 url(id)
    -->
			<!--<linearGradient id="lg" gradientTransform="
        rotate(30)
    ">
        <stop offset="0" stop-color="#00acec"></stop>
        <stop offset="0.5" stop-color="yellow"></stop>
        <stop offset="1" stop-color="blue"></stop>
    </linearGradient>
    <circle cx="300" cy="300" r="200" fill="url(#lg)"/>-->

			<!--radialGradient 径向渐变
            stop 颜色节点
                offset 偏移量[0,1]
                stop-color 颜色
    -->
			<!--<radialGradient id="rg">
        <stop offset="0" stop-color="#00acec"></stop>
        <stop offset="0.5" stop-color="yellow"></stop>
        <stop offset="1" stop-color="red"></stop>
    </radialGradient>
    <circle cx="300" cy="300" r="200" fill="url(#rg)"/>-->

			<!--pattern 纹理着色
            id
            viewBox 视图框
            width height 纹理元素的尺寸,建议使用百分百
        polygon 多边形
            points 点位,如 0,0 20,50 0,100 50,80 100,100 80,50 100,0 50,20
        image
            href 图片地址
            x|y 位置
            widht|height 宽高
    -->
			<polygon
				points="0,0 20,50 0,100 50,80 100,100 80,50 100,0 50,20"
			></polygon>

			<!--<pattern id="pt"
             width="10%"
             height="10%"
             viewBox="0 0 100 100"
    >
        <polygon points="0,0 20,50 0,100 50,80 100,100 80,50 100,0 50,20"></polygon>
    </pattern>-->
			<pattern id="pt" width="50%" height="50%" viewBox="0 0 100 100">
				<image href="./images/rose.jpg" width="100" height="100"></image>
			</pattern>
			<circle cx="300" cy="300" r="200" fill="url(#pt)" />
		</svg>
	</body>
</html>

机器人案例 ​

html
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>机器人-svg</title>
		<style>
			html {
				height: 100%;
			}
			body {
				height: 100%;
				margin: 0;
			}
			svg {
				background-color: antiquewhite;
			}
		</style>
	</head>
	<body>
		<svg
			version="1.2"
			xmlns="http://www.w3.org/2000/svg"
			width="100%"
			height="100%"
			viewBox="-400 -400 800 800"
		>
			<!--面部填充 rect
            x|y 位置
            width|height 尺寸
            fill 填充色
    -->
			<rect
				x="-200"
				y="0"
				width="400"
				height="200"
				fill="red"
				stroke="#000"
				stroke-width="40"
			></rect>

			<!--面部描边 rect
            fill 填充色,none为无色
            stroke 描边色
            stroke-width 线宽
    -->
			<!--<rect x="-200"
          y="0"
          width="400"
          height="200"
          fill="none"
          stroke="#000"
          stroke-width="40"
    ></rect>-->

			<!--眼罩 rect-->
			<rect x="-200" y="50" width="400" height="60" fill="antiquewhite"></rect>

			<!--嘴巴 path
            d 路径
                M 起点
                L 下一个点
    -->
			<path
				d="
            M
            -100 150
            L
            100 150
    "
				fill="none"
				stroke="#000"
				stroke-width="40"
			></path>

			<!--左眼睛 circle
            cx|cy 圆心位
            r 半径
    -->
			<circle r="20" cx="-100" cy="80" fill="red"></circle>

			<!--右眼睛 path
            d 路径
                M 起点
                A 圆弧
                    rx ry 半径
                    x-axis-rotation x轴方向
                    large-arc-flag 是否显示最大弧
                    sweep-flag 弧在哪一侧
                    x y 结束点
    -->
			<path
				d="
            M
            80 90
            A
            20 20
            0
            0
            1
            120 90
    "
				fill="red"
			></path>

			<!--天线 path
            d 路径
                C 三次贝塞尔
                    cpx1 cpy1 控制点1
                    cpx2 cpy2 控制点2
                    x y 结束点
                S 三次贝塞尔曲线的延续
                    cpx2 cpy2 控制点2
                    x y 结束点
    -->
			<path
				d="
            M
            -200 -200
            C
            -100 -200
            -100 0
            0 0
            S
            100 -200
            200 -200
    "
				fill="none"
				stroke="#000"
				stroke-width="40"
			></path>
		</svg>
	</body>
</html>

机器人 D3 ​

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>机器人-d3</title>
		<style>
			html {
				height: 100%;
			}
			body {
				height: 100%;
				margin: 0;
			}
			#main {
				width: 100%;
				height: 100%;
				background-color: antiquewhite;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			/*获取main 容器*/
			const main = d3.select("#main");

			/*在main容器中建立svg,并设置其相关属性*/
			/*const svg=main.append('svg')
        .attr('version','1.2')
        .attr('xmlns','http://www.w3.org/2000/svg')
        .attr('width','100%')
        .attr('height','100%')
        .attr('viewBox','-400 -400 800 800')*/

			const svg = Draw(main)("svg", {
				version: "1.2",
				xmlns: "http://www.w3.org/2000/svg",
				width: "100%",
				height: "100%",
				viewBox: "-400 -400 800 800",
			});

			/*建立绘图函数Draw,以dom容器为参,返回绘图方法
			 *   绘图方法以图形shape和配置项option为参
			 *       用append方法向容器中添加图形obj
			 *       用for……of……的方法,遍历Object.entries(配置项)的键值对
			 *       用attr方法设置图形obj的属性
			 *       返回图形obj
			 * */
			function Draw(dom) {
				return function (shape, option) {
					const obj = dom.append(shape);
					for (let [key, val] of Object.entries(option)) {
						obj.attr(key, val);
					}
					return obj;
				};
			}

			/*建立以svg为容器的绘图方法draw*/
			const draw = Draw(svg);

			/*绘制图形……*/
			draw("rect", {
				x: -200,
				y: 0,
				width: 400,
				height: 200,
				fill: "red",
				stroke: "#000",
				"stroke-width": 40,
			});

			draw("rect", {
				x: -200,
				y: 50,
				width: 400,
				height: 60,
				fill: "antiquewhite",
			});

			draw("path", {
				d: `
            M
            -100 150
            L
            100 150
        `,
				fill: "none",
				stroke: "#000",
				"stroke-width": 40,
			});

			draw("circle", {
				r: 20,
				cx: -100,
				cy: 80,
				fill: "red",
			});

			draw("path", {
				d: `
            M
            80 90
            A
            20 20
            0
            0
            1
            120 90
        `,
				fill: "red",
			});

			draw("path", {
				d: `
            M
            -200 -200
            C
            -100 -200
            -100 0
            0 0
            S
            100 -200
            200 -200
        `,
				fill: "none",
				stroke: "#000",
				"stroke-width": 40,
			});
		</script>
	</body>
</html>

d3 特点 ​

声明式编程

数据的动态绑定

DOM 节点的智能添加

声明式编程 ​

我们的编程方式有两种:

  • 命令式:命令机器如何做事。
  • 声明式:告诉机器我想要什么结果。

使用 js 直接操作 DOM,就是命令式编程,这样的操作会比较繁琐。

例如,更改标题的文本颜色:

js
const h2s = document.getElementsByTagName("h2");
for (let i = 0; i < h2s.length; i++) {
	const h2 = h2s.item(i);
	h2.style.setProperty("color", "blue");
}

D3 采用的是声明式编程,它可以一步实现上面的效果:

js
d3.selectAll("h2").style("color", "blue");

数据的动态绑定 ​

D3 可以使用回调函数动态设置节点的属性。

随机改变标题的颜色:

js
d3.selectAll("p").style("color", function () {
	return "hsl(" + Math.random() * 360 + ",100%,50%)";
});

从回调函数中获取节点索引,基于节点索引的奇偶性设置节点颜色:

js
d3.selectAll("p").style("color", function (d, i) {
	return i % 2 ? "blue" : "green";
});

将数组中的数据绑定到节点:

js
d3.selectAll('p’)
   .data([40, 60, 80, 90])
   .style('font-size', function(d) { return `${d}px`; });

dom 元素的动态添加 ​

selection.data:为 dom 元素绑定数据

selection.join:基于 data 数据更新 dom 结构

如:

js
const data = ["恰同学少年", "风华正茂", "书生意气", "挥斥方遒"];
d3.select("#main")
	.selectAll("p")
	.data(data)
	.join("p")
	.text((d) => d);

如何学习 D3 ​

1.官方 api、文档太多,无从下手。

2.对不具备一定图形基础的同学而言,官方 api、文档的中文翻译晦涩难懂,难以入门。

3.d3 版本更新到 v6 之后,与过去版本差异较大,且没有向下兼容。而当前市场上的书籍和博客大多都过于老旧,用 v6 运行,往往会报错,初学者往往难以解决这种错误。

学习方法 ​

我们在查询官方文档时,其中的一些名称解释,可能会让大家犯晕。所以,大家不要刻意理解官方文档的字面意思,要将其代入实际案例中理解,并尝试揣摩 d3 作者的意图。

修改机器人案例 ​

将机器人的天线变成虚线

机器人的眼睛变色

机器人的嘴巴变成弧线

柱状图 ​

熟练的使用 d3 绘制基础图表

掌握 d3 中比例尺的用法

可以用 d3 为图形添加鼠标交互事件和动画

知识点综述 ​

坐标轴 ​

坐标轴的绘制需要比例尺。

d3 中的比例尺可以让我们自己建立一个坐标轴,并且可以将图表点位解析为像素点位。

比例尺类型:

  • scaleBand 分段比例尺,适用于类目轴
  • scaleLinear 线性比例尺,适用于数值轴

更多:

坐标轴生成器:

  • axisBottom 刻度朝下的坐标轴生成器
  • axisLeft 刻度朝左的坐标轴生成器

更多:

01-比例尺-x 轴.html

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>x轴</title>
		<style>
			* {
				box-sizing: border-box;
			}
			#main {
				margin: 20px;
				width: 600px;
				height: 600px;
				border: 1px solid #ddd;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.js"></script>
		<script>
			/*===========1-必备数据===========*/
			/*categories 类目数据*/
			const categories = ["html", "css", "js"];

			/*===========2-建立容器对象===========*/
			/*获取main 容器*/
			const main = d3.select("#main");

			/*声明绘图框尺寸
        width 宽度,600
        height 高度,600
    */
			const [width, height] = [600, 600];

			/*建立svg 对象
			 *   svg 画布尺寸100%充满容器对象
			 *   绘图框尺寸按照600设置
			 * */
			const svg = main
				.append("svg")
				.attr("version", 1.2)
				.attr("xmlns", "http://www.w3.org/2000/svg")
				.attr("width", "100%")
				.attr("height", "100%")
				.attr("viewBox", `0 0 ${width} ${height}`);

			/*===========3-建立基础数据===========*/
			/*计算类目数量 len*/
			const len = categories.length;

			/*用range()方法,基于类目数量,获取x轴的在图表坐标系中的数据 xChartData,如[0,1,2]*/
			const xChartData = d3.range(len);
			console.log(xChartData);

			/*x轴在像素坐标内的起始点和结束点 xPixelRange,左右各偏移50*/
			const xPixelRange = [50, width - 50];

			/*===========4-建立x 轴比例尺 xScale===========*/
			/*
			 * 用scaleBand()方法建立分段比例尺 xScale
			 * 用domain()方法在比例尺中写入图表数据xChartData
			 * 用rangeRound()方法在比例尺中写入像素数据,即像素的起始位和结束位xPixelRange
			 * */
			const xScale = d3.scaleBand().domain(xChartData).rangeRound(xPixelRange);

			/*===========5-建立x 轴对象===========*/
			/*基于比例尺xScale,用axisBottom()方法创建刻度朝下的坐标轴生成器 xAxisGenerator*/
			const xAxisGenerator = d3.axisBottom(xScale);

			/*利用坐标轴生成器绘制坐标轴
			 *   在svg中append 加入g 对象
			 *   用attr() 方法设置transform 属性中的translate位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用selectAll()方法选择所有的text文本
			 *   用text()方法将图表数据设置为类目数据
			 *   用style()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", `translate(0 ${height - 50})`)
				.call(xAxisGenerator)
				.selectAll("text")
				.text((ele, ind) => categories[ind])
				.style("font-size", "12px");
		</script>
	</body>
</html>

02-比例尺-y 轴.html

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>y轴</title>
		<style>
			* {
				box-sizing: border-box;
			}
			#main {
				margin: 20px;
				width: 600px;
				height: 600px;
				border: 1px solid #ddd;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.js"></script>
		<script>
			/*===========1-必备数据===========*/
			/*数据源source:两个系列的数据*/
			const source = [
				//html css js
				[30, 20, 40], //学习人数
				[40, 30, 50], //就业人数
			];

			/*===========1-建立容器对象===========*/
			/*获取main 容器*/
			const main = d3.select("#main");

			/*声明绘图框尺寸
        width 宽度,600
        height 高度,600
    */
			const width = 600;
			const height = 600;

			/*建立svg 对象
			 *   svg 画布尺寸100%充满容器对象
			 *   绘图框尺寸按照600设置
			 * */
			const svg = main
				.append("svg")
				.attr("version", 1.2)
				.attr("xmlns", "http://www.w3.org/2000/svg")
				.attr("width", "100%")
				.attr("height", "100%")
				.attr("viewBox", `0 0 ${width} ${height}`);

			/*===========3-建立基础数据===========*/
			/*计算数据源中所有数据的极值 maxY
			 *   用js原生方法flat()展开数据源,再通过max()方法取极值
			 * */
			const maxY = Math.max(...source.flat());
			// console.log(maxY);

			/*声明y轴在图表坐标系中的数据起点和结束点 yChartRange*/
			const yChartRange = [0, maxY];

			/*声明y轴在像素坐标系中的数据起点和结束点 yPixelRange*/
			const yPixelRange = [height - 50, 50];

			/*===========4-建立y 轴比例尺 yScale===========*/
			/*
			 * 用scaleLinear()方法建立线性比例尺 yScale
			 * 用domain()方法在比例尺中写入图表数据yChartRange
			 * range()方法在比例尺中写入像素数据,即像素的起始位和结束位yPixelRange
			 * */
			const yScale = d3.scaleLinear().domain(yChartRange).range(yPixelRange);

			/*===========5-建立y 轴对象===========*/
			/*基于比例尺yScale,用axisLeft()方法创建刻度朝左的坐标轴生成器 yAxisGenerator*/
			const yAxisGenerator = d3.axisLeft(yScale);

			/*利用坐标轴生成器生成坐标轴
			 *   在svg中append 加入g 对象
			 *   用attr()方法设置transform 属性中的translate位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用style()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", "translate(50 0)")
				.call(yAxisGenerator)
				.selectAll("text")
				.attr("font-size", "12px");
		</script>
	</body>
</html>

绘图区 ​

建立绘图区的基本步骤 ​

  • 建立绘图区相关的基础数据
  • 架构绘图区的 DOM 结构
  • 设置每个柱状体的 x、y 位置和 width、height 尺寸

例子

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>绘图区</title>
		<style>
			* {
				box-sizing: border-box;
			}
			#main {
				margin: 20px;
				width: 600px;
				height: 600px;
				border: 1px solid #ddd;
			}
			.item {
				cursor: pointer;
			}
			.item:hover {
				opacity: 0.9;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.js"></script>
		<script>
			/*===========1-必备数据===========*/
			/*categories 类目信息*/
			const categories = ["html", "css", "js"];
			/*数据源source:两个系列的数据*/
			const source = [
				//html css js
				[30, 20, 40], //学习人数
				[40, 30, 50], //就业人数
			];
			/*调色盘*/
			const color = [
				"#c23531",
				"#2f4554",
				"#61a0a8",
				"#d48265",
				"#91c7ae",
				"#749f83",
				"#ca8622",
				"#bda29a",
				"#6e7074",
				"#546570",
				"#c4ccd3",
			];

			/*===========2-建立容器对象===========*/
			/*获取main 容器*/
			const main = d3.select("#main");

			/*声明绘图框尺寸
        width 宽度,600
        height 高度,600
    */
			const width = 600;
			const height = 600;

			/*建立svg 对象
			 *   svg 画布尺寸100%充满容器对象
			 *   绘图框尺寸按照600设置
			 * */
			const svg = main
				.append("svg")
				.attr("version", 1.2)
				.attr("xmlns", "http://www.w3.org/2000/svg")
				.attr("width", "100%")
				.attr("height", "100%")
				.attr("viewBox", `0 0 ${width} ${height}`);

			/*===========3-建立轴相关的基础数据===========*/
			/*-----x轴相关的基础数据-----*/
			/*计算类目数量 len*/
			const len = categories.length;

			/*用range()方法,基于类目数量,获取x轴的在图表坐标系中的数据 xChartData,如[0,1,2]*/
			const xChartData = d3.range(len);

			/*x轴在像素坐标内的起始点和结束点 xPixelRange,左右各偏移50*/
			const xPixelRange = [50, width - 50];

			/*-----y轴相关的基础数据-----*/
			/*计算数据源中所有数据的极值 maxY
			 *   用js原生方法flat()展开数据源,再通过max()方法取极值
			 * */
			const maxY = Math.max(...source.flat());

			/*声明y轴在图表坐标系中的数据起点和结束点 yChartRange*/
			const yChartRange = [0, maxY];

			/*声明y轴在像素坐标系中的数据起点和结束点 yPixelRange*/
			const yPixelRange = [height - 50, 50];

			/*===========4-建立比例尺===========*/
			/*-----x 轴比例尺 xScale-----*/
			/*
			 * 用scaleBand()方法建立分段比例尺 xScale
			 * 用domain()方法在比例尺中写入图表数据xChartData
			 * 用rangeRound()方法在比例尺中写入像素数据,即像素的起始位和结束位xPixelRange
			 * 用padding()方法设置类目的内边距,百分比单位,如0.1
			 * */
			const xScale = d3
				.scaleBand()
				.domain(xChartData)
				.rangeRound(xPixelRange)
				.padding(0.1);

			/*-----y 轴比例尺 xScale-----*/
			/*
			 * 用scaleLinear()方法建立线性比例尺 yScale
			 * 用domain()方法在比例尺中写入图表数据yChartRange
			 * range()方法在比例尺中写入像素数据,即像素的起始位和结束位yPixelRange
			 * */
			const yScale = d3.scaleLinear().domain(yChartRange).range(yPixelRange);

			/*===========5-建立轴对象===========*/
			/*-----x轴对象-----*/
			/*基于比例尺xScale,用axisBottom()方法创建刻度朝下的坐标轴生成器 xAxisGenerator*/
			const xAxisGenerator = d3.axisBottom(xScale);

			/*利用坐标轴生成器绘制坐标轴
			 *   在svg中append 加入g 对象
			 *   用transform 属性中的translateY 设置x轴的y位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用selectAll()方法选择所有的text文本
			 *   用text()方法将图表数据设置为类目数据
			 *   用attr()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", `translate(0, ${height - 50})`)
				.call(xAxisGenerator)
				.selectAll("text")
				.text((n) => categories[n])
				.attr("font-size", "12px");

			/*-----y轴对象-----*/
			/*基于比例尺yScale,用axisLeft()方法创建刻度朝左的坐标轴生成器 yAxisGenerator*/
			const yAxisGenerator = d3.axisLeft(yScale);

			/*利用坐标轴生成器生成坐标轴
			 *   在svg中append 加入g 对象
			 *   用transform 属性中的translate设置y轴的x位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用attr()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", "translate(50 0)")
				.call(yAxisGenerator)
				.attr("font-size", "12px");

			/*===========6-建立绘图区相关的基础数据===========*/
			/*-----绘图区相关的基础数据-----*/
			/*用x轴比例尺xScale的bandwidth()方法获取x轴上一个类目的像素宽xBandW*/
			const xBandW = xScale.bandwidth();

			/*获取系列的数量n*/
			const n = source.length;

			/*用类目宽除以系列数,得到一个类目中每个系列元素的宽,即列宽colW*/
			const colW = xBandW / n;
			console.log(colW);

			/*计算调色盘颜色数量colorLen*/
			const colorLen = color.length;

			/*===========7-架构绘图区===========*/
			/*在svg中建立系列集合seriesObjs,在系列集合中建立系列对象
			 *   在svg中append 加入g 对象
			 *   selectAll() 选择所有g元素,此处重点不在选择,而是建立一个选择集对象
			 *   用data() 方法将具备系列信息的数据源source绑定到系列集合中
			 *   用join() 基于数据源批量创建g元素,一个g代表一个系列,之后每个g元素里都会放入三个不同类目的柱状体
			 *   用transform 属性中的translate设置系列的x像素位——列宽乘以系列索引
			 *   基于系列索引,从调色盘中取色,然后将其作为一个系列中所有图形的填充色
			 * */
			const seriesObjs = svg
				.append("g")
				.selectAll("g")
				.data(source)
				.join("g")
				.attr(
					"transform",
					(seriesData, seriesInd) => `translate(${seriesInd * colW} 0)`
				)
				.attr("fill", (seriesData, seriesInd) => color[seriesInd % colorLen]);

			/*在系列集合中建立柱状体集合rects
			 *   用系列集合seriesObjs 的selectAll()方法选择所有的rect元素,用于建立选择集对象
			 *   用data()方法将之前绑定在每个系列集合中的数据绑定到柱状体集合中
			 *   用join()基于每个系列的数据数据批量创建rect元素
			 *   用classed() 方法为其添加item属性
			 * */
			const rects = seriesObjs
				.selectAll("rect")
				.data((seriesData) => seriesData)
				.join("rect")
				.classed("item", true);

			/*=8-用attr()方法设置每个柱状体的x、y位置和width、height 尺寸=*/
			/*
			 * 设置柱状体的x像素位
			 *   从回调参数中获取柱状体在当前系列中的索引rectInd,系列索引 seriesInd
			 *   基于柱状体在当前系列中的索引rectInd,用x轴比例尺xScale()获取柱状体在当前系列中的x像素位
			 * 设置柱状体像素宽width为列宽colW
			 * 设置柱状体的y像素位
			 *   从回调参数中解构柱状体数据rectData
			 *   基于柱状体数据rectData,用y轴比例尺yScale()获取柱状体的y像素位
			 * 设置柱状体的像素像素高
			 *   从回调参数中解构柱状体数据rectData
			 *   让y轴上刻度为0的像素位,减去刻度为柱状图实际数据的像素位,即为柱状图的像素高
			 * */
			rects
				.attr("x", (rectData, rectInd) => xScale(rectInd))
				.attr("width", colW)
				.attr("y", (rectData) => yScale(rectData))
				.attr("height", (rectData) => yScale(0) - yScale(rectData));
		</script>
	</body>
</html>

鼠标事件 ​

使用 on 方法可以为 selector 对象添加鼠标事件,如鼠标划上 mouseover、鼠标移动 mousemove、鼠标划出 mouseout

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>鼠标事件</title>
		<style>
			* {
				box-sizing: border-box;
			}
			#main {
				margin: 20px;
				width: 600px;
				height: 600px;
				border: 1px solid #ddd;
			}
			.item {
				cursor: pointer;
			}
			.item:hover {
				opacity: 0.9;
			}
			#tip {
				position: absolute;
				margin-left: 10px;
				margin-top: 30px;
				line-height: 22px;
				background-color: rgba(0, 0, 0, 0.6);
				padding: 4px 9px;
				font-size: 13px;
				color: #fff;
				border-radius: 3px;
				pointer-events: none;
				display: none;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.js"></script>
		<script>
			/*===========1-必备数据===========*/
			/*categories 类目信息*/
			const categories = ["html", "css", "js"];
			/*dimensions 维度信息*/
			const dimensions = ["学习人数", "就业人数"];
			/*数据源source:两个系列的数据*/
			const source = [
				//html css js
				[30, 20, 40], //学习人数
				[40, 30, 50], //就业人数
			];
			/*调色盘*/
			const color = [
				"#c23531",
				"#2f4554",
				"#61a0a8",
				"#d48265",
				"#91c7ae",
				"#749f83",
				"#ca8622",
				"#bda29a",
				"#6e7074",
				"#546570",
				"#c4ccd3",
			];

			/*优化数据源
			 *   使用map方法遍历数据源
			 *   将其中的数据变成对象:
			 *   {
			 *       rectData:柱状体数据,
			 *       rectInd:柱状体索引,
			 *       rectName:柱状体名称,
			 *       seriesInd:系列索引,
			 *       seriesName:系列名称
			 *    }
			 * */
			const source2 = source.map((seriesData, seriesInd) => {
				const seriesName = dimensions[seriesInd];
				return seriesData.map((rectData, rectInd) => {
					const rectName = categories[rectInd];
					return { rectData, rectInd, rectName, seriesData, seriesName };
				});
			});

			console.log(source2);

			/*===========2-建立容器对象===========*/
			/*获取main 容器*/
			const main = d3.select("#main");

			/*声明绘图框尺寸
        width 宽度,600
        height 高度,600
    */
			const width = 600;
			const height = 600;

			/*建立svg 对象
			 *   svg 画布尺寸100%充满容器对象
			 *   绘图框尺寸按照600设置
			 * */
			const svg = main
				.append("svg")
				.attr("version", 1.2)
				.attr("xmlns", "http://www.w3.org/2000/svg")
				.attr("width", "100%")
				.attr("height", "100%")
				.attr("viewBox", `0 0 ${width} ${height}`);

			/*===========3-建立轴相关的基础数据===========*/
			/*-----x轴相关的基础数据-----*/
			/*计算类目数量 len*/
			const len = categories.length;

			/*用range()方法,基于类目数量,获取x轴的在图表坐标系中的数据 xChartData,如[0,1,2]*/
			const xChartData = d3.range(len);

			/*x轴在像素坐标内的起始点和结束点 xPixelRange,左右各偏移50*/
			const xPixelRange = [50, width - 50];

			/*-----y轴相关的基础数据-----*/
			/*计算数据源中所有数据的极值 maxY
			 *   用js原生方法flat()展开数据源,再通过max()方法取极值
			 * */
			const maxY = Math.max(...source.flat());

			/*声明y轴在图表坐标系中的数据起点和结束点 yChartRange*/
			const yChartRange = [0, maxY];

			/*声明y轴在像素坐标系中的数据起点和结束点 yPixelRange*/
			const yPixelRange = [height - 50, 50];

			/*===========4-建立比例尺===========*/
			/*-----x 轴比例尺 xScale-----*/
			/*
			 * 用scaleBand()方法建立分段比例尺 xScale
			 * 用domain()方法在比例尺中写入图表数据xChartData
			 * 用rangeRound()方法在比例尺中写入像素数据,即像素的起始位和结束位xPixelRange
			 * 用padding()方法设置类目的内边距,百分比单位,如0.1
			 * */
			const xScale = d3
				.scaleBand()
				.domain(xChartData)
				.rangeRound(xPixelRange)
				.padding(0.1);

			/*-----y 轴比例尺 xScale-----*/
			/*
			 * 用scaleLinear()方法建立线性比例尺 yScale
			 * 用domain()方法在比例尺中写入图表数据yChartRange
			 * range()方法在比例尺中写入像素数据,即像素的起始位和结束位yPixelRange
			 * */
			const yScale = d3.scaleLinear().domain(yChartRange).range(yPixelRange);

			/*===========5-建立轴对象===========*/
			/*-----x轴对象-----*/
			/*基于比例尺xScale,用axisBottom()方法创建刻度朝下的坐标轴生成器 xAxisGenerator*/
			const xAxisGenerator = d3.axisBottom(xScale);

			/*利用坐标轴生成器绘制坐标轴
			 *   在svg中append 加入g 对象
			 *   用transform 属性中的translateY 设置x轴的y位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用selectAll()方法选择所有的text文本
			 *   用text()方法将图表数据设置为类目数据
			 *   用attr()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", `translate(0, ${height - 50})`)
				.call(xAxisGenerator)
				.selectAll("text")
				.text((n) => categories[n])
				.attr("font-size", "12px");

			/*-----y轴对象-----*/
			/*基于比例尺yScale,用axisLeft()方法创建刻度朝左的坐标轴生成器 yAxisGenerator*/
			const yAxisGenerator = d3.axisLeft(yScale);

			/*利用坐标轴生成器生成坐标轴
			 *   在svg中append 加入g 对象
			 *   用transform 属性中的translate设置y轴的x位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用attr()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", "translate(50 0)")
				.call(yAxisGenerator)
				.attr("font-size", "12px");

			/*===========6-建立绘图区相关的基础数据===========*/
			/*-----绘图区相关的基础数据-----*/
			/*用x轴比例尺xScale的bandwidth()方法获取x轴上一个类目的像素宽xBandW*/
			const xBandW = xScale.bandwidth();

			/*获取系列的数量n*/
			const n = source.length;

			/*用x轴的像素宽除以系列数,得到列宽colW*/
			const colW = xBandW / n;

			/*计算调色盘颜色数量colorLen*/
			const colorLen = color.length;

			/*===========7-架构绘图区===========*/
			/*在svg中建立系列集合seriesObjs,在系列集合中建立系列对象
			 *   在svg中append 加入g 对象
			 *   selectAll() 选择所有g元素,此处终点不在选择,而是建立一个选择集对象
			 *   用data() 方法将具备系列信息的数据源source绑定到系列集合中
			 *   用join() 基于数据源批量创建g元素,一个g代表一个系列,之后每个g元素里都会放入三个不同类目的柱状体
			 *   用transform 属性中的translate设置系列的x像素位——列宽乘以系列索引
			 *   基于系列索引,从调色盘中取色,然后将其作为一个系列中所有图形的填充色
			 * */
			const seriesObjs = svg
				.append("g")
				.selectAll("g")
				.data(source2)
				.join("g")
				.attr("transform", (seriesData, seriesInd) => {
					const seriesX = colW * seriesInd;
					return `translate(${seriesX},0)`;
				})
				.attr("fill", (seriesData, seriesInd) => color[seriesInd % colorLen]);

			/*在系列集合中建立柱状体集合rects
			 *   用系列集合seriesObjs 的selectAll()方法选择所有的rect元素,用于建立选择集对象
			 *   用data()方法将之前绑定在每个系列集合中的数据绑定到柱状体集合中
			 *   用join()基于每个系列的数据数据批量创建rect元素
			 *   用classed() 方法为其添加item属性
			 * */
			const rects = seriesObjs
				.selectAll("rect")
				.data((seriesData) => seriesData)
				.join("rect")
				.classed("item", true);

			/*=8-用attr()方法设置每个柱状体的x、y位置和width、height 尺寸=*/
			/*
			 * 设置柱状体的x像素位
			 *   从回调参数中获取柱状体在当前系列中的索引rectInd,系列索引 seriesInd
			 *   基于柱状体在当前系列中的索引rectInd,用x轴比例尺xScale()获取柱状体在当前系列中的x像素位
			 * 设置柱状体像素宽width为列宽colW
			 * 设置柱状体的y像素位
			 *   从回调参数中解构柱状体数据rectData
			 *   基于柱状体数据rectData,用y轴比例尺yScale()获取柱状体的y像素位
			 * 设置柱状体的像素像素高
			 *   从回调参数中解构柱状体数据rectData
			 *   让y轴上刻度为0的像素位,减去刻度为柱状图实际数据的像素位,即为柱状图的像素高
			 * */
			rects
				.attr("x", ({ rectInd }) => xScale(rectInd))
				.attr("width", colW)
				.attr("y", ({ rectData }) => yScale(rectData))
				.attr("height", ({ rectData }) => yScale(0) - yScale(rectData));

			/*===========9-建立提示对象===========*/
			/*用append()方法向容器对象main中添加div,作为提示对象tip
			 * 用attr() 方法为tip对象添加id
			 * */
			const tip = main.append("div").attr("id", "tip");

			/*===========10-为柱状体添加鼠标事件===========*/
			/*-----鼠标划入事件 mouseover-----*/
			/*
			 * 从事件中的第一个回调参数解析目标对象和鼠标位置
			 *   鼠标位置 clientX,clientY
			 * 从事件中的第二个回调参数解析当前柱状体的数据
			 *   柱状体数据 rectData
			 *   柱状体名称 rectName
			 *   系列名 seriesName
			 * 基于鼠标位置和柱状体信息显示提示
			 *   style()设置display 为block
			 *   style()设置left、top位置
			 *   html()设置元素的html 内容
			 * */
			rects.on(
				"mouseover",
				({ clientX, clientY }, { rectData, seriesName, rectName }) => {
					tip
						.style("display", "block")
						.style("left", `${clientX}px`)
						.style("top", `${clientY}px`).html(`
                <div>${seriesName}</div>
                <div>${rectName}:${rectData}</div>
            `);
				}
			);

			/*-----鼠标移动事件 mousemove-----*/
			/*设置提示left、top位置*/
			rects.on("mousemove", ({ clientX, clientY }) => {
				tip.style("left", `${clientX}px`).style("top", `${clientY}px`);
			});

			/*-----鼠标划出事件 mouseout-----*/
			/*隐藏提示*/
			rects.on("mouseout", () => {
				tip.style("display", "none");
			});
		</script>
	</body>
</html>

transition 动画 ​

  • 补间动画是在两个关键帧之间,以某种算法自动计算物体运动的插值,从而形成一种过度效果。
  • d3 中建立补间动画的方法:
  • transition 建立关键帧
  • duration 当前关键帧到上一个关键帧的距离
  • ease 插值算法,动画以何种姿态完成过度,https://github.com/d3/d3-easeon
  • 监听补间事件
  • start 动画开始时
  • end 动画结束时
html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>transition动画</title>
		<style>
			* {
				box-sizing: border-box;
			}
			#main {
				margin: 20px;
				width: 600px;
				height: 600px;
				border: 1px solid #ddd;
			}
			.item {
				cursor: pointer;
			}
			.item:hover {
				opacity: 0.9;
			}
			#tip {
				position: absolute;
				margin-left: 10px;
				margin-top: 30px;
				line-height: 22px;
				background-color: rgba(0, 0, 0, 0.6);
				padding: 4px 9px;
				font-size: 13px;
				color: #fff;
				border-radius: 3px;
				pointer-events: none;
				display: none;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.js"></script>
		<script>
			/*===========1-必备数据===========*/
			/*categories 类目信息*/
			const categories = ["html", "css", "js"];
			/*dimensions 维度信息*/
			const dimensions = ["学习人数", "就业人数"];
			/*数据源source:两个系列的数据*/
			const source = [
				//html css js
				[30, 20, 40], //学习人数
				[40, 30, 50], //就业人数
			];
			/*调色盘*/
			const color = [
				"#c23531",
				"#2f4554",
				"#61a0a8",
				"#d48265",
				"#91c7ae",
				"#749f83",
				"#ca8622",
				"#bda29a",
				"#6e7074",
				"#546570",
				"#c4ccd3",
			];

			/*优化数据源
			 *   使用map方法遍历数据源
			 *   将其中的数据变成对象:
			 *   {
			 *       rectData:柱状体数据,
			 *       rectInd:柱状体索引,
			 *       rectName:柱状体名称,
			 *       seriesInd:系列索引,
			 *       seriesName:系列名称
			 *    }
			 * */
			const source2 = source.map((seriesData, seriesInd) => {
				const seriesName = dimensions[seriesInd];
				return seriesData.map((rectData, rectInd) => {
					const rectName = categories[rectInd];
					return { rectData, rectInd, rectName, seriesInd, seriesName };
				});
			});

			/*===========2-建立容器对象===========*/
			/*获取main 容器*/
			const main = d3.select("#main");

			/*声明绘图框尺寸
        width 宽度,600
        height 高度,600
    */
			const width = 600;
			const height = 600;

			/*建立svg 对象
			 *   svg 画布尺寸100%充满容器对象
			 *   绘图框尺寸按照600设置
			 * */
			const svg = main
				.append("svg")
				.attr("version", 1.2)
				.attr("xmlns", "http://www.w3.org/2000/svg")
				.attr("width", "100%")
				.attr("height", "100%")
				.attr("viewBox", `0 0 ${width} ${height}`);

			/*===========3-建立轴相关的基础数据===========*/
			/*-----x轴相关的基础数据-----*/
			/*计算类目数量 len*/
			const len = categories.length;

			/*用range()方法,基于类目数量,获取x轴的在图表坐标系中的数据 xChartData,如[0,1,2]*/
			const xChartData = d3.range(len);

			/*x轴在像素坐标内的起始点和结束点 xPixelRange,左右各偏移50*/
			const xPixelRange = [50, width - 50];

			/*-----y轴相关的基础数据-----*/
			/*计算数据源中所有数据的极值 maxY
			 *   用js原生方法flat()展开数据源,再通过max()方法取极值
			 * */
			const maxY = Math.max(...source.flat());

			/*声明y轴在图表坐标系中的数据起点和结束点 yChartRange*/
			const yChartRange = [0, maxY];

			/*声明y轴在像素坐标系中的数据起点和结束点 yPixelRange*/
			const yPixelRange = [height - 50, 50];

			/*===========4-建立比例尺===========*/
			/*-----x 轴比例尺 xScale-----*/
			/*
			 * 用scaleBand()方法建立分段比例尺 xScale
			 * 用domain()方法在比例尺中写入图表数据xChartData
			 * 用rangeRound()方法在比例尺中写入像素数据,即像素的起始位和结束位xPixelRange
			 * 用padding()方法设置类目的内边距,百分比单位,如0.1
			 * */
			const xScale = d3
				.scaleBand()
				.domain(xChartData)
				.rangeRound(xPixelRange)
				.padding(0.1);

			/*-----y 轴比例尺 xScale-----*/
			/*
			 * 用scaleLinear()方法建立线性比例尺 yScale
			 * 用domain()方法在比例尺中写入图表数据yChartRange
			 * range()方法在比例尺中写入像素数据,即像素的起始位和结束位yPixelRange
			 * */
			const yScale = d3.scaleLinear().domain(yChartRange).range(yPixelRange);

			/*===========5-建立轴对象===========*/
			/*-----x轴对象-----*/
			/*基于比例尺xScale,用axisBottom()方法创建刻度朝下的坐标轴生成器 xAxisGenerator*/
			const xAxisGenerator = d3.axisBottom(xScale);

			/*利用坐标轴生成器绘制坐标轴
			 *   在svg中append 加入g 对象
			 *   用transform 属性中的translateY 设置x轴的y位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用selectAll()方法选择所有的text文本
			 *   用text()方法将图表数据设置为类目数据
			 *   用attr()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", `translate(0, ${height - 50})`)
				.call(xAxisGenerator)
				.selectAll("text")
				.text((n) => categories[n])
				.attr("font-size", "12px");

			/*-----y轴对象-----*/
			/*基于比例尺yScale,用axisLeft()方法创建刻度朝左的坐标轴生成器 yAxisGenerator*/
			const yAxisGenerator = d3.axisLeft(yScale);

			/*利用坐标轴生成器生成坐标轴
			 *   在svg中append 加入g 对象
			 *   用transform 属性中的translate设置y轴的x位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用attr()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", "translate(50 0)")
				.call(yAxisGenerator)
				.attr("font-size", "12px");

			/*===========6-建立绘图区相关的基础数据===========*/
			/*-----绘图区相关的基础数据-----*/
			/*用x轴比例尺xScale的bandwidth()方法获取x轴上一个类目的像素宽xBandW*/
			const xBandW = xScale.bandwidth();

			/*获取系列的数量n*/
			const n = source.length;

			/*用x轴的像素宽除以系列数,得到列宽colW*/
			const colW = xBandW / n;

			/*计算调色盘颜色数量colorLen*/
			const colorLen = color.length;

			/*===========7-架构绘图区===========*/
			/*在svg中建立系列集合seriesObjs,在系列集合中建立系列对象
			 *   在svg中append 加入g 对象
			 *   selectAll() 选择所有g元素,此处终点不在选择,而是建立一个选择集对象
			 *   用data() 方法将具备系列信息的数据源source绑定到系列集合中
			 *   用join() 基于数据源批量创建g元素,一个g代表一个系列,之后每个g元素里都会放入三个不同类目的柱状体
			 *   用transform 属性中的translate设置系列的x像素位——列宽乘以系列索引
			 *   基于系列索引,从调色盘中取色,然后将其作为一个系列中所有图形的填充色
			 * */
			const seriesObjs = svg
				.append("g")
				.selectAll("g")
				.data(source2)
				.join("g")
				.attr("transform", (seriesData, seriesInd) => {
					const seriesX = colW * seriesInd;
					return `translate(${seriesX},0)`;
				})
				.attr("fill", (seriesData, seriesInd) => color[seriesInd % colorLen]);

			/*在系列集合中建立柱状体集合rects
			 *   用系列集合seriesObjs 的selectAll()方法选择所有的rect元素,用于建立选择集对象
			 *   用data()方法将之前绑定在每个系列集合中的数据绑定到柱状体集合中
			 *   用join()基于每个系列的数据数据批量创建rect元素
			 *   用classed() 方法为其添加item属性
			 * */
			const rects = seriesObjs
				.selectAll("rect")
				.data((seriesData) => seriesData)
				.join("rect")
				.classed("item", true);

			/*=8-用attr()方法设置每个柱状体的x、y位置和width、height 尺寸=*/
			/*
			 * 设置柱状体的x像素位
			 *   从回调参数中获取柱状体在当前系列中的索引rectInd,系列索引 seriesInd
			 *   基于柱状体在当前系列中的索引rectInd,用x轴比例尺xScale()获取柱状体在当前系列中的x像素位
			 * 设置柱状体像素宽width为列宽colW
			 * 设置柱状体的y像素位
			 *   从回调参数中解构柱状体数据rectData
			 *   基于柱状体数据rectData,用y轴比例尺yScale()获取柱状体的y像素位
			 * 设置柱状体的像素像素高
			 *   从回调参数中解构柱状体数据rectData
			 *   让y轴上刻度为0的像素位,减去刻度为柱状图实际数据的像素位,即为柱状图的像素高
			 * */
			rects
				.attr("x", ({ rectData }, rectInd) => xScale(rectInd))
				.attr("width", colW);

			/*第一个关键帧-柱状体的初始状态
			 *   y y轴中刻度0的像素位
			 *   height 0
			 * */
			rects.attr("y", () => yScale(0)).attr("height", 0);

			/*第二个关键字-柱状体的完整状态
			 *   transition() 建立补间动画
			 *   duration() 动画时间
			 *   delay 动画延迟
			 *   ease 补间动画的插值算法,如d3.easeBounce,参考https://github.com/d3/d3-ease
			 * */
			rects
				.transition()
				.duration(1000)
				// .delay(1000)
				// .delay(({rectInd,seriesInd})=>rectInd*300)
				// .delay(({rectInd,seriesInd})=>seriesInd*300)
				.delay(({ rectInd, seriesInd }) => (rectInd + seriesInd) * 300)
				.ease(d3.easeBounce)
				.attr("y", ({ rectData }) => yScale(rectData))
				.attr("height", ({ rectData }) => yScale(0) - yScale(rectData));

			/*===========9-建立提示对象===========*/
			/*用append()方法向容器对象main中添加div,作为提示对象tip
			 * 用attr() 方法为tip对象添加id
			 * */
			const tip = main.append("div").attr("id", "tip");

			/*===========10-为柱状体添加鼠标事件===========*/
			/*-----鼠标划入事件 mouseover-----*/
			/*
			 * 从事件中的第一个回调参数解析目标对象和鼠标位置
			 *   鼠标位置 clientX,clientY
			 * 从事件中的第二个回调参数解析当前柱状体的数据
			 *   柱状体数据 rectData
			 *   柱状体名称 rectName
			 *   系列名 seriesName
			 * 基于鼠标位置和柱状体信息显示提示
			 *   style()设置display 为block
			 *   style()设置left、top位置
			 *   html()设置元素的html 内容
			 * */
			rects.on(
				"mouseover",
				({ clientX, clientY }, { seriesName, rectName, rectData }) => {
					tip
						.style("display", "block")
						.style("left", `${clientX}px`)
						.style("top", `${clientY}px`).html(`
                <div>${seriesName}</div>
                <div>${rectName}:${rectData}</div>
            `);
				}
			);

			/*-----鼠标移动事件 mousemove-----*/
			/*设置提示left、top位置*/
			rects.on("mousemove", ({ clientX, clientY }) => {
				tip.style("left", `${clientX}px`).style("top", `${clientY}px`);
			});

			/*-----鼠标划出事件 mouseout-----*/
			/*隐藏提示*/
			rects.on("mouseout", () => {
				tip.style("display", "none");
			});
		</script>
	</body>
</html>

缓动跟随 ​

使用缓动跟随,可以如提示缓缓的跟着鼠标移动。

举个例子:闪电侠从 A 点向 B 点移动,闪电侠每一步走出的距离都是 AB 之间距离的一半,那么闪电侠只会越来越接近 B 点,但永远达不到 B 点。

闪电侠行走的这个过程就是缓动动画。

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>缓动跟随</title>
		<style>
			* {
				box-sizing: border-box;
			}
			#main {
				margin: 20px;
				width: 600px;
				height: 600px;
				border: 1px solid #ddd;
			}
			.item {
				cursor: pointer;
			}
			.item:hover {
				opacity: 0.9;
			}
			#tip {
				position: absolute;
				margin-left: 10px;
				margin-top: 30px;
				line-height: 22px;
				background-color: rgba(0, 0, 0, 0.6);
				padding: 4px 9px;
				font-size: 13px;
				color: #fff;
				border-radius: 3px;
				pointer-events: none;
				display: none;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.js"></script>
		<script>
			/*===========1-必备数据===========*/
			/*categories 类目信息*/
			const categories = ["html", "css", "js"];
			/*dimensions 维度信息*/
			const dimensions = ["学习人数", "就业人数"];
			/*数据源source:两个系列的数据*/
			const source = [
				//html css js
				[30, 20, 40], //学习人数
				[40, 30, 50], //就业人数
			];
			/*调色盘*/
			const color = [
				"#c23531",
				"#2f4554",
				"#61a0a8",
				"#d48265",
				"#91c7ae",
				"#749f83",
				"#ca8622",
				"#bda29a",
				"#6e7074",
				"#546570",
				"#c4ccd3",
			];

			/*优化数据源
			 *   使用map方法遍历数据源
			 *   将其中的数据变成对象:
			 *   {
			 *       rectData:柱状体数据,
			 *       rectInd:柱状体索引,
			 *       rectName:柱状体名称,
			 *       seriesInd:系列索引,
			 *       seriesName:系列名称
			 *    }
			 * */
			const source2 = source.map((seriesData, seriesInd) => {
				const seriesName = dimensions[seriesInd];
				return seriesData.map((rectData, rectInd) => {
					const rectName = categories[rectInd];
					return { rectData, rectInd, rectName, seriesInd, seriesName };
				});
			});

			/*===========2-建立容器对象===========*/
			/*获取main 容器*/
			const main = d3.select("#main");

			/*声明绘图框尺寸
        width 宽度,600
        height 高度,600
    */
			const width = 600;
			const height = 600;

			/*建立svg 对象
			 *   svg 画布尺寸100%充满容器对象
			 *   绘图框尺寸按照600设置
			 * */
			const svg = main
				.append("svg")
				.attr("version", 1.2)
				.attr("xmlns", "http://www.w3.org/2000/svg")
				.attr("width", "100%")
				.attr("height", "100%")
				.attr("viewBox", `0 0 ${width} ${height}`);

			/*===========3-建立轴相关的基础数据===========*/
			/*-----x轴相关的基础数据-----*/
			/*计算类目数量 len*/
			const len = categories.length;

			/*用range()方法,基于类目数量,获取x轴的在图表坐标系中的数据 xChartData,如[0,1,2]*/
			const xChartData = d3.range(len);

			/*x轴在像素坐标内的起始点和结束点 xPixelRange,左右各偏移50*/
			const xPixelRange = [50, width - 50];

			/*-----y轴相关的基础数据-----*/
			/*计算数据源中所有数据的极值 maxY
			 *   用js原生方法flat()展开数据源,再通过max()方法取极值
			 * */
			const maxY = Math.max(...source.flat());

			/*声明y轴在图表坐标系中的数据起点和结束点 yChartRange*/
			const yChartRange = [0, maxY];

			/*声明y轴在像素坐标系中的数据起点和结束点 yPixelRange*/
			const yPixelRange = [height - 50, 50];

			/*===========4-建立比例尺===========*/
			/*-----x 轴比例尺 xScale-----*/
			/*
			 * 用scaleBand()方法建立分段比例尺 xScale
			 * 用domain()方法在比例尺中写入图表数据xChartData
			 * 用rangeRound()方法在比例尺中写入像素数据,即像素的起始位和结束位xPixelRange
			 * 用padding()方法设置类目的内边距,百分比单位,如0.1
			 * */
			const xScale = d3
				.scaleBand()
				.domain(xChartData)
				.rangeRound(xPixelRange)
				.padding(0.1);

			/*-----y 轴比例尺 xScale-----*/
			/*
			 * 用scaleLinear()方法建立线性比例尺 yScale
			 * 用domain()方法在比例尺中写入图表数据yChartRange
			 * range()方法在比例尺中写入像素数据,即像素的起始位和结束位yPixelRange
			 * */
			const yScale = d3.scaleLinear().domain(yChartRange).range(yPixelRange);

			/*===========5-建立轴对象===========*/
			/*-----x轴对象-----*/
			/*基于比例尺xScale,用axisBottom()方法创建刻度朝下的坐标轴生成器 xAxisGenerator*/
			const xAxisGenerator = d3.axisBottom(xScale);

			/*利用坐标轴生成器绘制坐标轴
			 *   在svg中append 加入g 对象
			 *   用transform 属性中的translateY 设置x轴的y位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用selectAll()方法选择所有的text文本
			 *   用text()方法将图表数据设置为类目数据
			 *   用attr()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", `translate(0, ${height - 50})`)
				.call(xAxisGenerator)
				.selectAll("text")
				.text((n) => categories[n])
				.attr("font-size", "12px");

			/*-----y轴对象-----*/
			/*基于比例尺yScale,用axisLeft()方法创建刻度朝左的坐标轴生成器 yAxisGenerator*/
			const yAxisGenerator = d3.axisLeft(yScale);

			/*利用坐标轴生成器生成坐标轴
			 *   在svg中append 加入g 对象
			 *   用transform 属性中的translate设置y轴的x位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用attr()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", "translate(50 0)")
				.call(yAxisGenerator)
				.attr("font-size", "12px");

			/*===========6-建立绘图区相关的基础数据===========*/
			/*-----绘图区相关的基础数据-----*/
			/*用x轴比例尺xScale的bandwidth()方法获取x轴上一个类目的像素宽xBandW*/
			const xBandW = xScale.bandwidth();

			/*获取系列的数量n*/
			const n = source.length;

			/*用x轴的像素宽除以系列数,得到列宽colW*/
			const colW = xBandW / n;

			/*计算调色盘颜色数量colorLen*/
			const colorLen = color.length;

			/*===========7-架构绘图区===========*/
			/*在svg中建立系列集合seriesObjs,在系列集合中建立系列对象
			 *   在svg中append 加入g 对象
			 *   selectAll() 选择所有g元素,此处终点不在选择,而是建立一个选择集对象
			 *   用data() 方法将具备系列信息的数据源source绑定到系列集合中
			 *   用join() 基于数据源批量创建g元素,一个g代表一个系列,之后每个g元素里都会放入三个不同类目的柱状体
			 *   用transform 属性中的translate设置系列的x像素位——列宽乘以系列索引
			 *   基于系列索引,从调色盘中取色,然后将其作为一个系列中所有图形的填充色
			 * */
			const seriesObjs = svg
				.append("g")
				.selectAll("g")
				.data(source2)
				.join("g")
				.attr("transform", (seriesData, seriesInd) => {
					const seriesX = colW * seriesInd;
					return `translate(${seriesX},0)`;
				})
				.attr("fill", (seriesData, seriesInd) => color[seriesInd % colorLen]);

			/*在系列集合中建立柱状体集合rects
			 *   用系列集合seriesObjs 的selectAll()方法选择所有的rect元素,用于建立选择集对象
			 *   用data()方法将之前绑定在每个系列集合中的数据绑定到柱状体集合中
			 *   用join()基于每个系列的数据数据批量创建rect元素
			 *   用classed() 方法为其添加item属性
			 * */
			const rects = seriesObjs
				.selectAll("rect")
				.data((seriesData) => seriesData)
				.join("rect")
				.classed("item", true);

			/*=8-用attr()方法设置每个柱状体的x、y位置和width、height 尺寸=*/
			/*
			 * 设置柱状体的x像素位
			 *   从回调参数中获取柱状体在当前系列中的索引rectInd,系列索引 seriesInd
			 *   基于柱状体在当前系列中的索引rectInd,用x轴比例尺xScale()获取柱状体在当前系列中的x像素位
			 * 设置柱状体像素宽width为列宽colW
			 * 设置柱状体的y像素位
			 *   从回调参数中解构柱状体数据rectData
			 *   基于柱状体数据rectData,用y轴比例尺yScale()获取柱状体的y像素位
			 * 设置柱状体的像素像素高
			 *   从回调参数中解构柱状体数据rectData
			 *   让y轴上刻度为0的像素位,减去刻度为柱状图实际数据的像素位,即为柱状图的像素高
			 * */

			/*第一个关键帧-柱状体的初始状态
			 *   y y轴中刻度0的像素位
			 *   height 0
			 * */
			rects
				.attr("x", ({ rectData }, rectInd) => xScale(rectInd))
				.attr("width", colW)
				.attr("y", ({ rectData }) => yScale(0))
				.attr("height", 0);

			/*第二个关键字-柱状体的完整状态
			 *   transition() 建立补间动画
			 *   duration() 动画时间
			 *   delay 动画延迟
			 *   ease 补间动画的插值算法,如d3.easeBounce,参考https://github.com/d3/d3-ease
			 * */
			rects
				.transition()
				.duration(1000)
				.delay(({ rectInd, seriesInd }) => {
					// return seriesInd*300
					return (seriesInd + rectInd) * 300;
				})
				.ease(d3.easeBounce)
				.attr("y", ({ rectData }) => yScale(rectData))
				.attr("height", ({ rectData }) => yScale(0) - yScale(rectData));

			/*===========9-建立提示对象===========*/
			/*用append()方法向容器对象main中添加div,作为提示对象tip
			 * 用attr() 方法为tip对象添加id
			 * */
			const tip = main.append("div").attr("id", "tip");

			/*===========10-为柱状体添加鼠标事件===========*/
			/*-----鼠标划入事件 mouseover-----*/
			/*
			 * 从事件中的第一个回调参数解析目标对象和鼠标位置
			 *   鼠标位置 clientX,clientY
			 * 从事件中的第二个回调参数解析当前柱状体的数据
			 *   柱状体数据 rectData
			 *   柱状体名称 rectName
			 *   系列名 seriesName
			 * 基于鼠标位置和柱状体信息显示提示
			 *   style()设置display 为block
			 *   style()设置left、top位置
			 *   html()设置元素的html 内容
			 * */
			/*缓动跟随
			 *   更新终点位置endPos
			 *   开始缓动跟随
			 * */
			rects.on(
				"mouseover",
				({ clientX, clientY }, { seriesName, rectName, rectData }) => {
					tip.style("display", "block").html(`
                <div>${seriesName}</div>
                <div>${rectName}:${rectData}</div>
            `);

					easeTip.endPos = {
						x: clientX,
						y: clientY,
					};
					easeTip.play = true;
				}
			);

			/*-----鼠标移动事件 mousemove-----*/
			/*设置提示left、top位置*/
			/*缓动跟随
			 *   更新终点位置endPos
			 * */
			rects.on("mousemove", ({ clientX, clientY }) => {
				easeTip.endPos = {
					x: clientX,
					y: clientY,
				};
			});

			/*-----鼠标划出事件 mouseout-----*/
			/*隐藏提示*/
			/*缓动跟随
			 *   删除动画帧
			 * */
			rects.on("mouseout", () => {
				tip.style("display", "none");
				easeTip.play = false;
			});

			/*===========12-提示的缓动跟随===========*/
			/*EaseObj 缓动对象
			 *   target 缓动目标
			 *   fm 当前动画帧
			 *   pos 绘图位置
			 *   endPos 目标位置
			 *   ratio 移动比例,如0.1
			 *   _play 是否开始缓动跟随
			 * */
			class EaseObj {
				/*构造函数*/
				constructor(target) {
					this.target = target;
					this.fm = 0;
					this.pos = { x: 0, y: 0 };
					this.endPos = { x: 0, y: 0 };
					this.ratio = 0.1;
					this._play = false;
				}
				/*play 属性的取值器*/
				get play() {
					return this._paly;
				}
				/*play 属性的赋值器
				 *   现在的值不等于当过去值时
				 *       当现在的值为true时
				 *           缓动跟随
				 *           更新目标对象
				 *           连续渲染
				 *       当现在的值为false时
				 *           删除动画帧,取消连续渲染
				 * */
				set play(val) {
					if (val !== this._play) {
						if (val) {
							this.render();
						} else {
							this.cancel();
						}
						this._play = val;
					}
				}

				/*render 渲染方法
				 *   按比值,让pos位置接近终点endPos
				 *   更新目标对象target的样式
				 *   连续渲染
				 * */
				render() {
					const { target, pos, endPos, ratio } = this;
					pos.x += (endPos.x - pos.x) * ratio;
					pos.y += (endPos.y - pos.y) * ratio;
					target.style("left", `${pos.x}px`).style("top", `${pos.y}px`);
					this.fm = requestAnimationFrame(() => {
						this.render();
					});
				}

				/*cancel 删除动画帧,取消连续渲染*/
				cancel() {
					cancelAnimationFrame(this.fm);
				}
			}
			/*easeTip 实例化缓动对象*/
			const easeTip = new EaseObj(tip);
		</script>
	</body>
</html>

总结 ​

这一章我们主要讲了一个柱状图的绘制流程,其主要目的就是让大家从底层认识图表的绘制原理。

在实际工作中,还是推荐大家使用 echarts 绘制图表,echarts 在绘制图表方面非常专业,而且快捷、方便、稳定,性能和体验度也很好。

当我们遇到自由度比较高、echarts 实现不了的项目的时候,那就可以考虑用 d3 来实现了

机器人案例 ​

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>机器人</title>
		<style>
			html {
				height: 100%;
			}
			body {
				height: 100%;
				margin: 0;
			}
			#main {
				width: 100%;
				height: 100%;
				background-color: antiquewhite;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			const red = "red";
			const sky = "#00acec";
			const black = "#000";
			const strokeWidth = 40;

			const main = d3.select("#main");

			const svg = Draw(main)("svg", {
				version: "1.1",
				xmlns: "http://www.w3.org/2000/svg",
				width: "100%",
				height: "100%",
				viewBox: "-400 -400 800 800",
			});

			const draw = Draw(svg);
			const rectCom = {
				x: -200,
				y: 0,
				width: 400,
				height: 200,
			};
			draw("rect", {
				...rectCom,
				fill: red,
			});
			draw("rect", {
				...rectCom,
				fill: "none",
				stroke: black,
				"stroke-width": strokeWidth,
			});
			draw("rect", {
				x: -200,
				y: 50,
				width: 400,
				height: 60,
				fill: "antiquewhite",
			});
			draw("path", {
				d: "M-100,140 Q0,170 100,140",
				stroke: black,
				"stroke-width": strokeWidth,
			});
			draw("circle", {
				cx: -100,
				cy: 80,
				r: 20,
				fill: sky,
			});

			draw("path", {
				d: `
           M
           80,90
           A
           20 20
           0
           0
           1
           120,90
        `,
				fill: sky,
			});
			draw("path", {
				d: `
            M
            -200,-200
            C
            -100,-200
            -100,0
            0,0
            S
            100,-200
            200,-200
        `,
				fill: "none",
				stroke: black,
				"stroke-width": strokeWidth,
				"stroke-dasharray": "40",
			});

			function Draw(svg) {
				return function (shape, option = {}) {
					const obj = svg.append(shape);
					for (const [key, val] of Object.entries(option)) {
						obj.attr(key, val);
					}
					return obj;
				};
			}
		</script>
	</body>
</html>

扩展知识 ​

数组 ​

min 最小值

max 最大值

extent 极值

sum 求和

mean 平均值

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>数组</title>
		<style>
			html,
			body {
				margin: 0;
				height: 100%;
			}
		</style>
	</head>
	<body>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			/*
			 * min 最小值
			 * max 最大值
			 * extent 极值
			 * sum 求和
			 * mean 平均值
			 * */
			const arr = [1, 5, 4, 3, 2];
			console.log(d3.min(arr));
			console.log(d3.max(arr));
			console.log(d3.extent(arr));
			console.log(d3.sum(arr));
			console.log(d3.mean(arr));
		</script>
	</body>
</html>

请求 ​

json() 请求 json

svg() 请求 svg

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>请求</title>
		<style>
			html,
			body {
				margin: 0;
				height: 100%;
			}
			#main {
				height: 100%;
				background-color: antiquewhite;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			/*
			 * json() 请求json
			 * svg() 请求svg
			 *   在then方法中可直接或svg的dom对象
			 * ……
			 * */
			/*d3.json('./lib/data.json')
        .then(data=>{
            console.log(data);
        })*/

			d3.svg("./lib/flower.svg").then((dom) => {
				// console.log(dom);
				const svg = dom.querySelector("svg");
				console.log(svg);
				document.querySelector("#main").append(svg);
			});
		</script>
	</body>
</html>

lib\data.json

json
{
	"title": "json 测试"
}

flower.svg

html
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg
	version="1.1"
	id="图层_1"
	xmlns="http://www.w3.org/2000/svg"
	xmlns:xlink="http://www.w3.org/1999/xlink"
	x="0px"
	y="0px"
	viewBox="0 0 293 500"
	width="293"
	enable-background="new 0 0 293 500"
	xml:space="preserve"
>
	<g>
		<path
			fill="#8E3651"
			d="M206.5,392.4c-17.1,2.4-32.7-5.9-49.4-4.1c-12.2,1.4-23.9,3.8-33.2,8.8c-3.4-1.3-6.8-2.6-10.3-3.7
		c0.4-0.6,0.8-1.1,1.1-1.7c-2.6-13.6-10.5-34.8-22-40.2c-12-5.3-39.3-0.5-46.6,11.3c-4-1.1-9-2.5-9-2.5
		c6.3-10.8,22.5-17.5,30.2-17.7c5.6-18.2,5-36.5-3.4-52.7c-9.8-12.4-14.9-19.8-34.6-33c-3.1-2.1,1.1-8.2,1.1-8.2
		c9.3,10,17.9,14.5,25.4,20.2c-14.5-21.6,0-35.2-20.8-44.9c-1.2-3,2-3.9,2-3.9c14.9,8,15.3,33.9,22.8,52.1c3.2,2.9,6.2,6.3,8.9,10.7
		c11.1,18.4,11.3,46.1,4.1,58.4c4.5-0.8,8.5-0.8,12.2-0.3c2.8-0.1,26.9,0.5,31.3,47.9c6.3-11.6,9.5-26.2,8.7-43.8
		c1.6-3.4,7.6-3.3,7.6-3.3c-3.7,13.1-3.2,22.8-4.2,32.1c11-23.5,30.1-18.1,27.7-41c1.9-2.6,4.4-0.3,4.4-0.3
		c0.8,16.9-21.1,30.6-32.8,46.4c-0.8,4.3-2.1,8.6-4.6,13.2c0,0,0,0,0,0c20.6-12.4,43-26.3,43.1-69.7c0.1-42.9,18.4-80-17.8-101.7
		c-1.1-4-1.7-6.3-1.7-6.3c7.7,4.2,13.7,8.5,18.2,12.7c18.5-4.6,33.8-14.5,43.3-30.1c-2.6-13.6-9.2-15.7-20.1-22.5
		c-8.8-5.5-17.9-13.9-19.1-22.1c0,0,4.6-0.3,5.7-0.4c2,6.9,7.5,11.9,13.5,16.5c-0.9-1.4-1.7-3-2.3-4.5c-28-27,12.5-47.4-30.6-86.6
		c-23.3-21.2-36.1-46.8-62.5-43c-2.6-1.5-4.1-2.4-4.1-2.4c5.4-1,10.6,1.1,14.3-1c9.4-5.3,33,26.6,49.7,32.7c-1.8-6.3-1-10.7,0.5-16
		c1.5-5.3,3.7-9.6,5.3-14.2c2.2-6.5,3.2-20,3.2-20s12.4-6,22-2.4c-0.3,1.5,2,3.3,3.2,4.2c-13.6-2.4-22.7-7-25.1,14.9
		c-1,6.3,12.5,2.5,17.4,3.6c0.6,0.9,0,1.6,2.2,2.6c-23.2,0.3-41.3,16.6,0.8,68.6c17.7-0.4,27-12.8,29.5-22.8c0.1-0.5-4-0.9-6.3-0.6
		c-1.5,0.4-1.8-2.2,0.7-2c2,1.3,5.2-0.4,5.3-1.1c1.4-10.9-3-20.4-3-20.4c1,1.2,3.7,1.9,4.3,3.4c1.8,7.3-0.4,29.2-0.6,29.6
		c8.7-4.2,20.8,1.6,25.1,4.9c2.7,2-0.6,0.8-0.6,2.5c0,1.5-6.7-13-27.2-2.6c-5.6,8-16.4,10.1-22.1,17.7c-8.4,11.1-9,20.4-3.1,37.5
		c0-0.6,0.1-1.2,0.2-1.8c1.2-9.2,13.2-16,15.5-20.3c1.3-0.1,3.4,3.1,4.9,3.3c-12.5,6.3-26.1,12.9-8.6,42.2
		c7.5,5.6,14,11.3,13.7,19.8c6.3-11.6,9.5-26.2,8.7-43.8c1.6-3.4,7.6-3.3,7.6-3.3c-3.7,13.1-3.2,22.8-4.2,32.1
		c11-23.5,30.1-18.1,27.6-41c1.9-2.6,4.4-0.3,4.4-0.3c0.8,16.9-21.1,30.6-32.8,46.4c-0.8,4.3-2.1,8.6-4.6,13.2
		c-10,19-33.6,33.5-47.9,33.7c22.7,26.2-3.2,52.7,8.7,74.7c6.1-7.8,14.3-13.5,22.9-17.2c8.7-3.7,19.1-2.9,27-5.9
		c11.1-4.2,29.9-16.3,29.9-16.3s13.4,2.1,19.9,9.1c-2.3,1.1-0.6,5.5-0.3,7.5c-9.8-7.4-9.8-19.4-41.3-0.4
		c-9.4,5.1,11.6,14.5,15.9,20.2c-0.4,1.4-2.1,1.6-0.7,4.6c-28-22-70.7-23.5-88.8,67.2c21.6,16.6,48.8,13.5,64.8,6.3
		c0.7-0.3-3.5-4.7-6.8-6.6c-2.3-1,1.7-4.5,3.5-1.3c1.5,2.8,6.6,4.5,7.7,4c8-3.3,8-8.9,11.9-10.3c2.9-1,3.9,1.7,2.7,3.8
		c-7.4,8.8-29.2,19.3-30,19.5c15.8,4.3,22.5,21.5,23.3,28.8c0.5,4.6-1.7,0.2-3.9,1.8C233.4,422.4,244.4,401.9,206.5,392.4z"
		/>
		<g>
			<path
				fill="#F4A8B0"
				d="M121.2,160.3c7.2-10.2,24.2-24.6,32.2-18.8c4.6,3.3-2.7,21.1-7.4,23.2c-3.4,1.6-7.1,0.9-10.4-0.5
			c2.5,2.8,9.6,4.4,9.6,8.5c-0.4,4.8-2.9,8.8-6.8,11.6c-5.9,4.4-11.4,4.8-13.5,0.2c-2.5-5.5-6.4-11.8-4.8-18.5
			C120.7,163.2,121.2,160.3,121.2,160.3z M89.9,162.2c1.6-3.8,8.8-2.6,12.3-4.2c-3.6,0-7.4-0.8-10-3.5c-3.6-3.7-3.6-23,2-24.3
			c9.8-2.3,20.3,17.6,23.1,29.7c0,0-0.6,2.8-1.2,5.6c-1,6.9-7.2,11.2-11.6,15.3c-3.8,3.5-8.8,1-12.7-5.3
			C89.2,171.4,88.4,166.7,89.9,162.2z"
			/>
			<path
				fill="#BF4968"
				d="M104.5,181c2.4-2.3,5.4-4.6,7.7-7.3l0,0c1.9-2.3,3.5-4.9,3.9-8.1l0,0c0.6-2.8,1.2-5.6,1.2-5.7l0,0
			c-2-8.7-7.9-21.2-14.7-27l0,0c-2.8-2.3-5.7-3.6-8.6-2.9l0,0c-0.7,0.2-1.3,0.6-1.9,1.2l0,0c-3.9,4.7-3.5,19.9-0.2,23.4l0,0
			c0.2,0.3,0.5,0.5,0.8,0.7l0,0c2.4,2,5.4,2.7,8.4,2.8l0,0c-3.3,1-8.7,0.5-11,3l0,0c-0.2,0.3-0.4,0.6-0.6,0.9l0,0l0.2,0.1l-0.2-0.1
			c-1.5,4.6-0.6,9.4,1.9,13.5l0,0c1.2,2,2.6,3.6,4,4.8l0,0c0,0,0,0,0,0l0,0C98.6,183,101.9,183.4,104.5,181L104.5,181z M117.1,159.9
			c0,0-0.6,2.8-1.2,5.7l0,0c-0.5,3.1-1.9,5.6-3.9,7.9l0,0c-2.3,2.7-5.3,5-7.7,7.3l0,0c-2.5,2.3-5.5,1.9-8.5-0.6l0,0
			c-1.4-1.1-2.7-2.8-3.9-4.7l0,0c-2.5-4.1-3.3-8.7-1.9-13.2l0,0l0,0c0.1-0.3,0.3-0.6,0.5-0.8l0,0c2.2-2.6,8.5-1.8,11.7-3.3l0,0
			l-0.1-0.3c-3.3,0-6.6-0.6-9.1-2.8l0,0c-0.3-0.2-0.5-0.4-0.7-0.7l0,0c-3.1-3.1-3.5-18.6,0.3-22.9l0,0c0.5-0.6,1-1,1.7-1.1l0,0
			c2.8-0.6,5.6,0.5,8.3,2.8l0,0c0,0,0,0,0,0l0,0C109.2,138.8,115.1,151.3,117.1,159.9L117.1,159.9z M138.5,184.5
			c1.2-0.9,2.2-1.9,3.1-2.9l0,0c2.1-2.5,3.4-5.5,3.7-8.8l0,0c0-1.4-0.8-2.5-1.9-3.5l0,0c-2-1.7-5.2-3-7-4.5l0,0
			c3.1,1.2,6.5,1.6,9.7,0.2l0,0c0.7-0.3,1.5-1,2.2-1.9l0,0c4.3-5.2,9.1-18.2,5.4-21.5l0,0c-0.1-0.1-0.1-0.1-0.2-0.1l0,0
			c-7.3-5.2-21.5,5.6-29.7,15.2l0,0c-1.1,1.2-2,2.5-2.8,3.6l0,0l0.1,0.1l-0.2,0c0,0-0.5,2.9-1,5.7l0,0c-1.7,6.8,2.3,13.2,4.8,18.6
			l0,0c0.4,0.9,0.9,1.6,1.6,2.2l0,0C129.1,189.1,133.7,188.1,138.5,184.5L138.5,184.5z M145,172.7c-0.3,3.3-1.6,6.2-3.6,8.6l0,0
			c-0.9,1.1-1.9,2-3.1,2.9l0,0c-4.8,3.6-9.2,4.4-11.8,2.3l0,0c-0.6-0.5-1.1-1.2-1.5-2l0,0c-2.5-5.5-6.4-11.8-4.7-18.4l0,0
			c0.5-2.6,1-5.3,1-5.6l0,0c0.8-1.2,1.7-2.4,2.8-3.6l0,0c8.1-9.6,22.3-20.2,29.2-15.2l0,0c0.1,0,0.1,0.1,0.2,0.1l0,0
			c1.7,1.4,1.5,5.4,0.2,9.7l0,0c-1.3,4.3-3.5,8.8-5.6,11.3l0,0c-0.7,0.9-1.5,1.5-2.1,1.8l0,0c-3.4,1.5-7,0.9-10.3-0.5l0,0l-0.2,0.3
			c0.2,0.2,0.4,0.4,0.6,0.6l0,0c1.9,1.6,5.1,2.9,7.1,4.6l0,0C144.3,170.4,145,171.4,145,172.7L145,172.7z"
			/>
			<path
				fill="#BF4968"
				d="M117.3,154.8c0.2-0.7,1.5-0.9,3.1-0.6c1.5,0.4,2.6,1.2,2.5,1.9c-0.2,0.7-1.5,0.9-3.1,0.6
			C118.2,156.3,117.1,155.5,117.3,154.8z M117.5,165.5c-0.6-0.8-0.8-2.6-0.5-4.5c0.5-2.5,1.8-4.4,2.9-4.2c1.1,0.2,1.7,2.4,1.2,5
			c-0.5,2.4-1.7,4.3-2.8,4.2c0.2,3.7-1.4,15.6-3.9,14.3C111.8,179.1,115.8,168.2,117.5,165.5z"
			/>
			<path
				fill="#E2617D"
				d="M131.6,168.5c0.2-0.9,8.3,0.9,7.7,4C138.8,175.6,131.4,169.5,131.6,168.5z M136.5,180.9
			c-1.5,2.8-6-5.9-5.5-6.8C131.5,173.3,138.1,178.1,136.5,180.9z M131.8,171.6c0.3-0.9,7.9,2,7,5.1
			C137.8,179.7,131.5,172.6,131.8,171.6z M146.2,144.6c1,1.6-8.1,4.1-8.4,3.6C137.5,147.6,145.3,142.9,146.2,144.6z M148.7,146.6
			c0.9,1.6-8.2,3.7-8.5,3.2C139.9,149.3,147.8,144.9,148.7,146.6z M124.9,165c-0.2-0.9,8.8-2.5,9.3,0.6
			C134.8,168.6,125.1,165.9,124.9,165z M150.3,148.8c1,1.6-8.1,4-8.4,3.5C141.5,151.8,149.3,147.2,150.3,148.8z M128.6,174.3
			c0.7-0.7,5,6.4,2.7,8.6C129,185.1,127.9,175,128.6,174.3z M102.9,166.3c-0.1,1-8.8,5.1-8.5,2C94.7,165.2,103,165.4,102.9,166.3z
			 M103.4,142.9c-0.5,0.4-8.2-5-6.8-6.2C98.1,135.5,103.9,142.6,103.4,142.9z M94.8,173.1c-0.4-3.2,7.7-5.1,7.8-4.1
			C102.7,170,95.2,176.3,94.8,173.1z M100.9,144.6c-0.5,0.4-8.1-5.4-6.6-6.5C95.8,137,101.3,144.3,100.9,144.6z M104.8,170
			c0.4,0.9-4.6,9.9-5.9,6.9C97.7,174,104.4,169.1,104.8,170z M95.5,164.2c0.7-3.1,9-1.6,8.8-0.7C104.1,164.5,94.8,167.3,95.5,164.2z
			 M99.7,135.8c1.5-1.1,7,6.2,6.6,6.5C105.8,142.6,98.2,136.9,99.7,135.8z M102.9,159.8c1.7-2.6,9.5,2.2,9,3
			C111.4,163.6,101.2,162.4,102.9,159.8z"
			/>
			<path
				fill="#BF4968"
				d="M137.6,179.1c0.5-0.6,1.3-0.8,1.8-0.4c0.5,0.4,0.6,1.2,0.2,1.9c-0.4,0.6-1.3,0.8-1.8,0.4
			C137.3,180.6,137.2,179.8,137.6,179.1z M133.3,182.8c0.4-0.6,1.3-0.8,1.8-0.4c0.5,0.4,0.6,1.2,0.2,1.9c-0.5,0.6-1.3,0.8-1.8,0.4
			C133,184.3,132.9,183.4,133.3,182.8z M137.1,167.4c0.4-0.6,1.3-0.8,1.8-0.4c0.5,0.4,0.6,1.2,0.2,1.8c-0.5,0.6-1.3,0.8-1.8,0.4
			C136.7,168.9,136.6,168,137.1,167.4z M140.3,174.1c0.5-0.6,1.3-0.8,1.8-0.4c0.5,0.4,0.6,1.2,0.2,1.9c-0.5,0.6-1.3,0.8-1.8,0.4
			C139.9,175.6,139.8,174.7,140.3,174.1z M127.5,184c0.5-0.6,1.3-0.8,1.8-0.4c0.5,0.4,0.6,1.2,0.2,1.9c-0.5,0.6-1.3,0.8-1.8,0.4
			C127.1,185.4,127,184.6,127.5,184z M149.9,145c0.5-0.6,1.3-0.8,1.8-0.4c0.5,0.4,0.6,1.2,0.2,1.8c-0.5,0.6-1.3,0.8-1.8,0.4
			C149.6,146.5,149.5,145.6,149.9,145z M147.2,154.3c0.5-0.6,1.3-0.8,1.8-0.4c0.5,0.4,0.6,1.2,0.2,1.9c-0.5,0.6-1.3,0.8-1.8,0.4
			C146.9,155.7,146.8,154.9,147.2,154.3z M98,159.3c0.7-0.2,1.4,0.3,1.5,1.1c0.2,0.8-0.2,1.5-0.9,1.6c-0.7,0.2-1.4-0.3-1.5-1.1
			C96.9,160.2,97.3,159.5,98,159.3z M93.1,167c-0.7,0.2-1.4-0.3-1.5-1.1c-0.2-0.8,0.2-1.5,0.9-1.6c0.7-0.2,1.4,0.3,1.5,1.1
			C94.1,166.1,93.7,166.9,93.1,167z M100.6,178.3c0.7-0.2,1.4,0.3,1.5,1.1c0.2,0.8-0.2,1.5-0.9,1.6c-0.7,0.2-1.4-0.3-1.5-1.1
			C99.6,179.2,100,178.5,100.6,178.3z M95.6,175c0.7-0.2,1.4,0.3,1.6,1.1c0.2,0.8-0.2,1.5-0.9,1.6c-0.7,0.2-1.4-0.3-1.5-1.1
			C94.5,175.9,94.9,175.1,95.6,175z M92.1,171.6c-0.2-0.8,0.2-1.5,0.9-1.6c0.7-0.2,1.4,0.3,1.5,1.1c0.2,0.7-0.2,1.5-0.9,1.6
			C93,172.8,92.3,172.3,92.1,171.6z M94.5,133.7c0.7-0.2,1.4,0.3,1.5,1.1c0.2,0.8-0.2,1.5-0.9,1.6c-0.7,0.2-1.4-0.3-1.5-1.1
			C93.5,134.6,93.9,133.9,94.5,133.7z M92.6,144.9c-0.2-0.8,0.2-1.5,0.9-1.6c0.7-0.2,1.4,0.3,1.5,1.1c0.2,0.8-0.2,1.5-0.9,1.6
			C93.5,146.2,92.8,145.7,92.6,144.9z"
			/>
			<path
				fill="#FFFFFF"
				d="M131.4,173c-1.6,3.8-8.6-6.6-8.1-7.7C123.8,164.1,133,169.2,131.4,173z M125.8,162.3
			c-0.3-1.1,17.4-6.1,18.3-2.4C144.9,163.7,126.1,163.5,125.8,162.3z M132.3,158.4c-0.6-1,9.7-6.6,11.6-3.4
			C145.7,158.1,132.8,159.3,132.3,158.4z M124.2,162c-0.9-0.7,10.4-13.7,13.4-11.6C140.5,152.5,125.1,162.6,124.2,162z M123.1,168.8
			c0.8-0.6,6.1,14.4,3.1,14.7C121.9,183.8,122.4,169.4,123.1,168.8z M107.6,153.9c-0.9,0.7-12.6-5.4-9.6-7.6
			C101,144.1,108.5,153.2,107.6,153.9z M112.1,167c0.5,0.9-4.6,14.4-8.6,12.4C100.8,178.1,111.7,166.2,112.1,167z M95.8,150.8
			c2.3-3.1,17,8.2,16.3,9.2C111.4,161,93.6,153.9,95.8,150.8z M102.8,167.8c-0.1-4.1,10.5-5.3,10.6-4.1
			C113.3,165,102.8,171.9,102.8,167.8z M105.6,144.5c3.6-0.9,9.2,15.5,8.1,15.8C112.6,160.6,102,145.3,105.6,144.5z"
			/>
		</g>
		<g>
			<radialGradient
				id="SVGID_1_"
				cx="1225.5586"
				cy="4643.4834"
				r="41.5436"
				gradientTransform="matrix(-0.3149 0.9478 -0.9466 -0.317 4921.2949 550.9679)"
				gradientUnits="userSpaceOnUse"
			>
				<stop offset="0" style="stop-color:#EDEDED" />
				<stop offset="1" style="stop-color:#E05A6A" />
			</radialGradient>
			<path
				fill="url(#SVGID_1_)"
				d="M144.3,248.2c4.8,1.2,12.3,17.6,6.4,28.5c-2.6,4.9-11.2,17.9-14.6,16c-1.6-0.9-5.4-12.8-7.6-21.6
			C126.1,261.2,134.4,245.7,144.3,248.2z"
			/>
			<g>
				<radialGradient
					id="SVGID_2_"
					cx="1313.8148"
					cy="4657.8267"
					r="39.4956"
					gradientTransform="matrix(-0.3149 0.9478 -0.9466 -0.317 4921.2949 550.9679)"
					gradientUnits="userSpaceOnUse"
				>
					<stop offset="0" style="stop-color:#EDEDED" />
					<stop offset="1" style="stop-color:#FB879E" />
				</radialGradient>
				<path
					fill="url(#SVGID_2_)"
					d="M98.3,317.3c-2.2-4.6,5.9-21.6,18.2-24.5c5.5-1.3,21.3-3.5,21.9,0.4c0.3,1.9-6.6,12.9-12.1,20.7
				C120.3,322.5,102.7,326.7,98.3,317.3z"
				/>
				<path
					fill="#F4A8B0"
					d="M135.2,313.9c0,0,0.9,8.4,12.3,14.9c2.6,1.5,3.1,2.2,3.3,1.4c-6.8-1.9-10.6-19.3-10.7-19.8
				c0,0,3.5,13.5,9,18.2c0.4,0.3,2.4,1.6,2.2,0.5c-0.3-1.1-2.4-7.8-2.4-7.8l0,0c2,4.5,2.1,5.2,2.7,6.1c0.4,0.5,1.1,0.4,1.2-0.1
				c0.3-1.5,0.7-7.7-2.7-17.1c0,0,4.7,10.6,3.2,17.9c-0.1,0.5,0.6,0.7,0.8,0.2c2.1-5.7-0.1-17.4-0.1-17.4s2.4,10.8,1,16.1
				c-0.1,0.4,0.6,0.7,0.9,0.1c1.8-4.1,3-11.3,3-11.3c-0.7,6.5-1.7,9.1-2,10.9c-0.5,2.5,3.7-5.3,3.7-5.3s-1.4,9.5-6.9,11.6
				c-4.9,1.9-11.4-4.9-11.4-4.9s4.3,2.9,6.5,3.1C151,331.3,136.2,324.3,135.2,313.9z"
				/>
				<path
					fill="#C51770"
					d="M140.8,295.2c1.4-1.1,1.5-3.2,0.4-4.6c-1.1-1.4-3.2-1.6-4.6-0.5c-1.4,1.1-1.5,3.2-0.4,4.6
				C137.4,296.2,139.4,296.4,140.8,295.2z"
				/>

				<radialGradient
					id="SVGID_3_"
					cx="2351.8557"
					cy="-180.1093"
					r="45.4724"
					gradientTransform="matrix(-0.6879 0.7255 0.7253 0.6882 1823.7234 -1285.0223)"
					gradientUnits="userSpaceOnUse"
				>
					<stop offset="0" style="stop-color:#FFFFFF" />
					<stop offset="1" style="stop-color:#FB879E" />
				</radialGradient>
				<path
					fill="url(#SVGID_3_)"
					d="M90.9,297.1c5-1.7,21.2,7.4,22.6,19.6c0.6,5.5,3.3,20.9-0.7,21.3c-2,0.2-14.8-7.3-22-13.3
				C82.9,318.1,80.8,300.7,90.9,297.1z"
				/>
				<g>
					<radialGradient
						id="SVGID_4_"
						cx="52.7258"
						cy="334.7629"
						r="109.9522"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#F4D4D7" />
						<stop offset="0.7198" style="stop-color:#E05A6A" />
					</radialGradient>
					<path
						fill="url(#SVGID_4_)"
						d="M69.5,341c0-5.1,14.5-17,26.9-14.3c5.6,1.2,19,7,18,10.8c-0.5,1.9-9.7,7.8-18,12.5
					C87.2,355,69.5,351.4,69.5,341z"
					/>

					<radialGradient
						id="SVGID_5_"
						cx="2330.825"
						cy="-129.7418"
						r="18.876"
						gradientTransform="matrix(-0.6879 0.7255 0.7253 0.6882 1823.7234 -1285.0223)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#FDD0D9" />
						<stop offset="1" style="stop-color:#FB879E" />
					</radialGradient>
					<path
						fill="url(#SVGID_5_)"
						d="M140.6,298.1c3.9,3.2,3.7,21.2-6.3,28.5c-4.5,3.3-18.5,13.4-20.8,10.3
					c-1.1-1.5,1.3-15.9,3.1-24.8C118.6,302.2,132.7,291.6,140.6,298.1z"
					/>
					<path
						fill="#FB879E"
						d="M155.1,350c-2.5,4.6-21.3,9-30.9,1c-4.3-3.6-13.8-11.5-11-14.5c1.4-1.5,12.8-6.2,22.5-6.7
					C146.3,329.2,160.2,340.5,155.1,350z"
					/>

					<radialGradient
						id="SVGID_6_"
						cx="2395.45"
						cy="-88.9725"
						r="38.2298"
						gradientTransform="matrix(-0.6879 0.7255 0.7253 0.6882 1823.7234 -1285.0223)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#F4D4D7" />
						<stop offset="0.7198" style="stop-color:#E05A6A" />
					</radialGradient>
					<path
						fill="url(#SVGID_6_)"
						d="M111.9,378.7c-5.2-0.9-14.3-17.1-9-28.5c2.4-5.1,7.7-15.1,11.3-13.4c0.6,2.7,9.3,8.9,12.3,17.8
					C129.9,364.4,122.5,380.7,111.9,378.7z"
					/>
				</g>
				<g>
					<path
						fill="#FFFFFF"
						d="M93.4,329c0,0-8.5-1-17.8,8.3c-2.1,2.1-2.9,2.5-2.2,2.8c3.6-6,21.8-5.8,22.3-5.8c0,0-14.2,0.4-20.2,4.5
					c-0.4,0.3-2.2,2-1.1,2c1.2,0,8.3-0.6,8.3-0.6l0,0c-4.9,0.9-5.7,0.8-6.7,1.2c-0.6,0.2-0.7,1-0.2,1.2c1.4,0.6,7.4,2.3,17.6,1.2
					c0,0-11.7,2.1-18.5-0.8c-0.5-0.2-0.9,0.4-0.4,0.7c5,3.2,17.2,3.7,17.2,3.7s-11.3-0.1-16.1-2.5c-0.3-0.2-0.8,0.5-0.3,0.8
					c3.6,2.6,10.3,5.3,10.3,5.3c-6.2-2.1-8.5-3.5-10.2-4.2c-2.3-1,4.2,4.7,4.2,4.7s-9-3.4-9.6-9c-0.6-5.1,7.8-9.7,7.8-9.7
					s-4,3.4-4.8,5.5C72.2,340.1,82.9,327.7,93.4,329z"
					/>
					<path
						fill="#FFFFFF"
						d="M110.4,314.7c0,0-1.8-8.1-13.8-13.4c-2.7-1.2-3.4-1.8-3.4-1c7,1.2,12.7,17.9,12.8,18.4
					c0,0-4.9-12.8-10.9-16.9c-0.4-0.3-2.6-1.4-2.2-0.3c0.4,1.1,3.2,7.4,3.2,7.4l0,0c-2.5-4.2-2.6-4.9-3.4-5.7
					c-0.4-0.5-1.2-0.3-1.2,0.2c-0.2,1.5,0.1,7.6,4.5,16.5c0,0-5.8-9.9-5.1-17.2c0.1-0.5-0.7-0.7-0.8-0.2c-1.5,5.7,2,17,2,17
					s-3.5-10.3-2.7-15.6c0-0.4-0.7-0.6-0.9,0C87,308,86.6,315,86.6,315c0-6.4,0.7-9,0.8-10.8c0.2-2.5-3.2,5.5-3.2,5.5
					s0.4-9.4,5.7-11.8c4.8-2.3,11.9,3.8,11.9,3.8s-4.6-2.5-6.9-2.5C92.8,299.2,108.3,304.7,110.4,314.7z"
					/>
				</g>
				<path
					fill="#FFFFFF"
					d="M130.9,361c0-0.2,0-0.3,0.2-0.4l-15-19.9l6.1,11.4l1.2,2.5c0,0,0,0,0.1-0.1c0.2-0.1,0.4,0.1,0.5,0.2
				c0.1,0.2-0.1,0.4-0.2,0.5c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.1,0-0.3,0.2-0.4l-8.2-15.1l-0.1-0.2l6.4,15.1l1.3,3.4
				c0.2,0,0.4,0.1,0.4,0.2c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4-0.1-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0,0,0,0,0,0l-8.3-19.2l-0.3,0.6
				l3.6,14.5l0.6,2.8c0.2,0,0.4,0.1,0.4,0.2c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4-0.1-0.5-0.3c-0.1-0.2,0.1-0.4,0.3-0.4c0,0,0,0,0,0
				l-4.2-17l-7.7,17.1l-3.7,7.7c0,0,0.1,0,0.1,0.1c0.1,0.2,0.1,0.4-0.1,0.5c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5
				c0.1-0.1,0.3,0,0.4,0l10.9-24.5l-10.1,12.9l-2.4,2.8c0,0,0.1,0,0.1,0.1c0.1,0.2,0.1,0.4-0.1,0.5c-0.2,0.1-0.4,0.1-0.5-0.1
				c-0.1-0.2,0-0.4,0.1-0.5c0.1-0.1,0.3,0,0.4,0l12.8-16.6l-0.1-0.5l-0.6,0.5l-11.5,14.5l-5.4,6.4c0,0,0,0,0.1,0
				c0.1,0.2,0.1,0.4-0.1,0.5c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.3,0,0.4,0.1l15.5-19.5l-9.5,8.8l-2.1,1.8
				c0,0,0.1,0,0.1,0.1c0.1,0.2,0,0.4-0.1,0.5c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.2,0-0.4,0.1-0.5c0.1-0.1,0.3,0,0.4,0.1l12.5-11.7
				l0.2-0.2l-13,9.9l-3,2.1c0.1,0.2,0,0.4-0.1,0.5c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1
				c0,0,0,0,0,0l16.7-13l0.1-0.1l-0.1-0.3l0,0l-0.1,0.1l0,0.2l-0.5,0l-13.5,7.3l-2.6,1.3c0.1,0.2,0,0.4-0.1,0.5
				c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4,0,0.5,0.1c0,0,0,0,0,0l15.6-8.5l-19.9,0.4l-8.5,0c0,0,0,0.1,0,0.1
				c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.1,0.1,0.2,0.2,0.1,0.4l26.8-0.6L95,334l-3.6-0.9
				c0,0.1,0,0.1,0,0.2c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.1,0.1,0.1,0.2,0.1,0.3
				l20.7,4.6l0.9,0l-1.6-0.6l-18-4.3l-8.1-2.1c0,0,0,0,0,0.1c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5
				c0.1-0.2,0.3-0.2,0.5-0.1c0.1,0.1,0.2,0.3,0.1,0.4l24.3,5.6l-12-4.8l-2.5-1.1c0,0,0,0.1,0,0.1c-0.1,0.2-0.3,0.2-0.5,0.1
				c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.1,0.1,0.2,0.2,0.1,0.4l15.9,6.4l0.2,0.1l-14.5-7.5l-3.2-1.8
				c-0.1,0.1-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.2,0.1,0.2,0.3,0.1,0.5c0,0,0,0,0,0l18.9,9.6
				l0.9,0.2l-13.4-9.8l-2.2-1.8c-0.1,0.1-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1
				c0.2,0.1,0.2,0.3,0.1,0.5c0,0,0,0,0,0l15.7,11.4l0,0.2l0.1,0l0.1-0.1l0.1,0.2l0.2-0.6l-0.3-0.6l0,0.1l-0.1,0.2l0.2,0.2l-0.2,0.2
				l-13.9-15.5l-5.6-6.5c0,0-0.1,0.1-0.1,0.1c-0.2,0-0.4-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3
				c0,0.2-0.1,0.3-0.2,0.3l18,19.9l-7.7-14.5l-1.6-3.3c0,0-0.1,0.1-0.1,0.1c-0.2,0-0.4-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4
				c0.2,0,0.4,0.1,0.4,0.3c0,0.1-0.1,0.2-0.2,0.3l10.1,18.7l0.6,0.7l-0.5-1.6l-8.5-16.5l-3.7-7.5c0,0,0,0-0.1,0
				c-0.2,0-0.4-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.3-0.2,0.4l11.6,22.1l-4.2-12.3l-0.8-2.7
				c0,0,0,0-0.1,0c-0.2,0-0.4-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.3-0.2,0.4l5.6,16.2l0.1,0.2
				l-3.8-15.9l-0.7-3.6c-0.2,0-0.4-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4c0,0,0,0,0,0
				l5.1,20.6l0.4,0.8l-1.3-16.5l-0.1-2.9c-0.2,0-0.3-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3
				c0,0.2-0.1,0.4-0.3,0.4c0,0,0,0,0,0l1.6,18.9l5.7-18.2l2.7-8.1c0,0-0.1,0-0.1-0.1c-0.1-0.2-0.1-0.4,0.1-0.5
				c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5c-0.1,0.1-0.3,0.1-0.4,0l-7.9,25.6l8.5-14l2-3.1c0,0-0.1,0-0.1-0.1
				c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5c-0.1,0.1-0.2,0.1-0.4,0l-10.9,18.2l-0.3,0.9h0
				l1.1-1.3l9.7-15.7l4.6-7c0,0,0,0-0.1,0c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5
				c-0.1,0.1-0.3,0.1-0.4,0l-13,21.2l8.4-9.8l1.9-2c0,0-0.1,0-0.1,0c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1
				c0.1,0.2,0.1,0.4-0.1,0.5c-0.1,0.1-0.3,0.1-0.4,0l-11.1,13.1l-0.1,0.2l11.7-11.4l2.7-2.5c-0.1-0.2-0.1-0.4,0.1-0.5
				c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5c-0.2,0.1-0.4,0.1-0.5-0.1c0,0,0,0,0,0l-15.1,14.9l-0.1,0.1l1-0.3l12.2-8.6
				l2.4-1.6c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5c-0.2,0.1-0.4,0.1-0.5-0.1c0,0,0,0,0,0
				l-13.9,9.9l17.4-5.4l8.2-2.3c0,0,0-0.1,0-0.1c0.1-0.2,0.3-0.3,0.4-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2
				c-0.1,0-0.2-0.2-0.2-0.3l-25.5,8l16.3-0.9l3.7-0.1c0-0.1,0-0.1,0-0.2c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5
				c-0.1,0.2-0.3,0.3-0.5,0.2c-0.1,0-0.2-0.2-0.2-0.3l-21,1.3l-0.5,0.3l1.1,0.1l18.5-0.9l8.4-0.2c0,0,0,0,0-0.1
				c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.2-0.2-0.2-0.4l-24.9,1.3l12.9,1.3
				l2.8,0.4c0,0,0-0.1,0-0.1c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.1,0-0.2-0.2-0.2-0.3
				l-17-1.7l-0.2,0l16,3.2l3.6,0.8c0.1-0.2,0.3-0.3,0.4-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2
				c-0.2-0.1-0.3-0.3-0.2-0.5c0,0,0,0,0,0l-20.8-4l-0.3,0l0.7,0.5l14.2,5.3l2.6,1.1c0.1-0.2,0.3-0.3,0.4-0.2
				c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5c0,0,0,0,0,0l-16.3-6l14,11.3l6.6,5.5
				c0,0,0-0.1,0.1-0.1c0.2-0.1,0.4,0.1,0.5,0.2c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4-0.1-0.5-0.3c0-0.1,0-0.3,0.1-0.4l-21-16.7
				l9.9,13.1l2.1,3c0,0,0.1-0.1,0.1-0.1c0.2-0.1,0.4,0.1,0.5,0.2c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4-0.1-0.5-0.2
				c0-0.1,0-0.3,0.1-0.4l-12.8-16.6l-0.6-0.2l0.4,0.8l11.1,14.8l4.9,6.8c0,0,0,0,0.1,0c0.2-0.1,0.4,0.1,0.5,0.2
				c0.1,0.2-0.1,0.4-0.2,0.5C131.2,361.3,131,361.2,130.9,361z M114.1,338.7l0.2-0.5l-0.1-0.1l-0.2,0.2L114.1,338.7z M114.2,337.3
				L114.2,337.3L114.2,337.3L114.2,337.3L114.2,337.3z M113.8,337.8L113.8,337.8l0-0.2L113.8,337.8z M114.1,337.5L114.1,337.5
				L114.1,337.5L114.1,337.5z M113,337.4L113,337.4l0.1,0.3l0.3-0.2L113,337.4z M115.2,337l-0.4,0.1l0,0l0.2,0L115.2,337z
				 M114.8,337.8L114.8,337.8l0.2,0.1L114.8,337.8z"
				/>

				<radialGradient
					id="SVGID_7_"
					cx="1509.4545"
					cy="4778.4731"
					r="44.3633"
					gradientTransform="matrix(-0.4169 0.9073 -0.9064 -0.4191 5057.0356 899.6904)"
					gradientUnits="userSpaceOnUse"
				>
					<stop offset="0" style="stop-color:#EDEDED" />
					<stop offset="1" style="stop-color:#FB879E" />
				</radialGradient>
				<path
					fill="url(#SVGID_7_)"
					d="M99.5,265.8c3.7-3.7,22.3-2.3,28.8,8.1c2.9,4.7,9.7,18.6,6.2,20.7c-1.7,1-14.3-1.4-23.3-3.8
				C101.1,288.2,91.8,273.4,99.5,265.8z"
				/>
				<path
					fill="#FFFFFF"
					d="M124.5,273.4c0,0-5.1-6.6-18.2-6.2c-3,0.1-3.8-0.2-3.5,0.5c6.9-1.9,19.1,10.8,19.4,11.2
				c0,0-9.9-9.5-17.1-10.7c-0.5-0.1-2.9-0.1-2.2,0.7c0.8,0.8,6.1,5.3,6.1,5.3l0,0c-4-2.7-4.5-3.3-5.5-3.7c-0.6-0.2-1.2,0.3-1,0.7
				c0.5,1.4,3.3,6.8,11.1,13c0,0-9.5-6.5-11.9-13.4c-0.2-0.5-0.9-0.3-0.8,0.2c1.1,5.8,9,14.5,9,14.5s-7.6-7.9-9.1-12.9
				c-0.1-0.4-0.9-0.2-0.8,0.3c0.5,4.4,3.1,10.9,3.1,10.9c-2.7-5.8-3.2-8.5-3.8-10.1c-0.9-2.3-0.6,6.3-0.6,6.3s-3.6-8.6,0.1-13.1
				c3.3-4.1,12.4-1.7,12.4-1.7s-5.2-0.3-7.3,0.7C102,266.8,118.4,265.2,124.5,273.4z"
				/>
				<path
					fill="#FFFFFF"
					d="M149.5,273.2c0,0,3.2-7.7-3.1-18.6c-1.4-2.5-1.6-3.3-2.1-2.7c4.8,4.8-0.3,21.7-0.5,22.2
				c0,0,3.4-13.3,1.1-19.9c-0.1-0.4-1.3-2.5-1.6-1.5c-0.3,1.1-1.7,7.9-1.7,7.9l0,0c0.4-4.8,0.8-5.5,0.6-6.5
				c-0.1-0.6-0.8-0.8-1.1-0.5c-1,1.1-4.2,6.4-5.8,16.1c0,0,1.1-11.4,5.8-17c0.3-0.4-0.2-0.9-0.5-0.6c-4.4,3.9-8.1,15.1-8.1,15.1
				s3.1-10.5,6.7-14.4c0.3-0.3-0.2-0.9-0.7-0.5c-3.5,2.7-7.8,8.3-7.8,8.3c3.7-5.3,5.7-7.1,6.8-8.5c1.6-2-5.6,2.8-5.6,2.8
				s5.6-7.5,11.1-6.8c5,0.7,7.1,9.6,7.1,9.6s-2.2-4.6-4-5.8C144.6,250.8,153.5,263.8,149.5,273.2z"
				/>

				<radialGradient
					id="SVGID_8_"
					cx="1255.6855"
					cy="4588.7837"
					r="24.0658"
					gradientTransform="matrix(-0.3149 0.9478 -0.9466 -0.317 4921.2949 550.9679)"
					gradientUnits="userSpaceOnUse"
				>
					<stop offset="0" style="stop-color:#EDEDED" />
					<stop offset="1" style="stop-color:#E2617D" />
				</radialGradient>
				<path
					fill="url(#SVGID_8_)"
					d="M179.4,289c-0.3,5.3-15.4,17.2-27.5,14c-5.5-1.4-18.7-6.4-17.4-10.3c0.6-1.9,10.3-9.2,18.8-13.8
				C162.7,273.9,180,278.2,179.4,289z"
				/>
				<path
					fill="#F4D4D7"
					d="M153.9,301.1c0,0,8.4,1.3,18.2-8.1c2.2-2.1,3.1-2.5,2.3-2.8c-4,6.1-22,5.4-22.5,5.4c0,0,14.1,0,20.4-4.1
				c0.4-0.3,2.3-2,1.2-2c-1.1,0-8.3,0.4-8.3,0.4l0,0c4.9-0.8,5.7-0.7,6.7-1.1c0.6-0.2,0.7-1,0.3-1.2c-1.3-0.7-7.2-2.6-17.4-1.7
				c0,0,11.7-1.9,18.3,1.4c0.5,0.2,0.9-0.4,0.5-0.7c-4.8-3.4-16.9-4.3-16.9-4.3s11.2,0.4,15.8,3.1c0.3,0.2,0.8-0.4,0.4-0.8
				c-3.4-2.8-9.9-5.8-9.9-5.8c6,2.3,8.3,3.9,9.9,4.7c2.3,1.1-3.9-5-3.9-5s8.7,3.8,9,9.6c0.3,5.3-8.3,9.8-8.3,9.8s4.2-3.4,5-5.6
				C175.6,290.2,164.2,302.7,153.9,301.1z"
				/>

				<radialGradient
					id="SVGID_9_"
					cx="1310.1194"
					cy="4594.8784"
					r="28.6287"
					gradientTransform="matrix(-0.3149 0.9478 -0.9466 -0.317 4921.2949 550.9679)"
					gradientUnits="userSpaceOnUse"
				>
					<stop offset="0" style="stop-color:#EDEDED" />
					<stop offset="1" style="stop-color:#E2617D" />
				</radialGradient>
				<path
					fill="url(#SVGID_9_)"
					d="M152.6,333.5c-5.1,1.3-20.2-9.4-20.3-22c0-5.6,1.4-21.4,5.4-21.4c2,0,11.4,8.6,17.9,15.3
				C162.8,312.8,163,330.7,152.6,333.5z"
				/>
				<path
					fill="#FFFFFF"
					d="M162.8,306.6c-0.1-0.1-0.1-0.3,0-0.4l-22.1-11.6l10.4,7.7l2.2,1.8c0,0,0-0.1,0-0.1c0.2-0.1,0.4-0.1,0.5,0
				c0.1,0.2,0.1,0.4,0,0.5c-0.1,0.1-0.4,0.1-0.5,0c-0.1-0.1-0.1-0.3,0-0.4l-13.8-10.2l-0.2-0.1l12.2,11l2.6,2.5
				c0.2-0.1,0.4-0.1,0.5,0c0.1,0.2,0.1,0.4,0,0.5c-0.1,0.1-0.4,0.1-0.5,0c-0.1-0.2-0.1-0.4,0-0.5c0,0,0,0,0,0l-15.6-13.9l0,0.7
				l9.4,11.6l1.7,2.3c0.1-0.1,0.3-0.1,0.5,0c0.1,0.2,0.1,0.4,0,0.5c-0.2,0.1-0.4,0.1-0.5,0c-0.1-0.1-0.1-0.4,0-0.5c0,0,0,0,0,0
				l-11.1-13.6l0.3,18.7l0,8.6c0,0,0.1,0,0.1,0c0.2,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5
				c0.1-0.1,0.2-0.2,0.4-0.1l-0.6-26.8l-3.7,16l-0.9,3.6c0.1,0,0.1,0,0.2,0c0.2,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.3,0.2-0.5,0.1
				c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.1,0.2-0.2,0.3-0.1l4.6-20.5l-0.3-0.4l-0.3,0.7l-4.3,18l-2.1,8.1c0,0,0,0,0.1,0
				c0.2,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.1,0.3-0.2,0.4-0.1l5.7-24.3l-4.8,12l-1.2,2.5
				c0,0,0.1,0,0.1,0c0.2,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.1,0.2-0.2,0.4-0.1l6.4-15.9
				l0.1-0.2l-7.5,14.5l-1.8,3.2c0.1,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5
				c0.1-0.2,0.3-0.2,0.5-0.1c0,0,0,0,0,0l9.6-18.9l0-0.1l-0.2-0.2l0,0l-0.1,0.1l0.1,0.2l-0.4,0.2l-9.1,12.4l-1.8,2.2
				c0.1,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0,0,0,0,0,0l10.5-14.4
				l-17.8,8.8l-7.7,3.6c0,0,0,0.1,0,0.1c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3c0.1,0,0.2,0.1,0.3,0.3
				l23.9-12l-16,3.5l-3.6,0.7c0,0,0,0.1,0,0.2c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3
				c0.1,0,0.2,0.1,0.3,0.2l20.7-4.7l0.8-0.4l-1.7,0.1l-18.1,3.8l-8.2,1.6c0,0,0,0,0,0.1c0,0.2-0.2,0.3-0.4,0.3
				c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.2,0.3,0.3l24.4-5.2l-12.9,0.7l-2.8,0c0,0,0,0.1,0,0.1
				c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.1,0.3,0.3l17.1-1l0.2-0.1l-16.3-0.6l-3.7-0.2
				c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4c0,0,0,0,0,0l21.2,0.6l0.9-0.2
				l-16.3-3.2l-2.8-0.7c-0.1,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4c0,0,0,0,0,0
				l19,3.7l0.1,0.2l0.1,0l0.1-0.2l0.2,0.1l-0.1-0.6l-0.5-0.4l0.1,0.1l-0.1,0.2l0.3,0.1l-0.1,0.3l-19.2-8.1l-7.8-3.5
				c0,0,0,0.1-0.1,0.1c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.1,0,0.3,0,0.4l24.7,10.4
				l-13.1-9.9l-2.9-2.3c0,0,0,0.1-0.1,0.1c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1
				c0.1,0.1,0.1,0.3,0,0.4l17,12.7l0.9,0.4l-1.2-1.2l-14.7-11.3l-6.5-5.2c0,0,0,0,0,0.1c-0.2,0.1-0.4,0-0.5-0.1
				c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.1,0.1,0.3-0.1,0.4l19.9,15.1l-9-9.3l-1.9-2.1c0,0,0,0.1-0.1,0.1
				c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.1,0.1,0.3,0,0.4l12,12.3l0.2,0.1l-10.2-12.8
				l-2.2-2.9c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5c0,0,0,0,0,0
				l13.4,16.5l0.7,0.6l-8.2-14.4l-1.3-2.6c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1
				c0.1,0.2,0.1,0.4-0.1,0.5c0,0,0,0,0,0l9.4,16.4l-2.6-18.9l-1-8.5c0,0-0.1,0-0.1,0c-0.2-0.1-0.3-0.3-0.2-0.5
				c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.2,0.3,0.2,0.5c-0.1,0.1-0.2,0.2-0.4,0.2l3.7,26.6l1.8-16.3l0.5-3.7c0,0-0.1,0-0.1,0
				c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.1-0.2,0.2-0.3,0.2l-2.1,21.1l0.1,0.9l0,0
				l0.4-1.6l2.1-18.4l1.1-8.3c0,0,0,0-0.1,0c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5
				c-0.1,0.2-0.3,0.2-0.4,0.2l-2.8,24.8l3.4-12.5l0.8-2.7c0,0-0.1,0-0.1,0c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2
				c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.1-0.2,0.2-0.4,0.2l-4.4,16.6l0,0.2l5.8-15.3l1.4-3.4c-0.2-0.1-0.2-0.3-0.1-0.5
				c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c0,0,0,0,0,0l-7.3,19.9l0,0.2l0.7-0.7l7.4-13l1.5-2.4
				c-0.1-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c0,0,0,0,0,0l-8.4,14.9
				l13.5-12.3l6.4-5.6c0,0-0.1-0.1-0.1-0.1c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4
				c-0.1,0-0.3-0.1-0.3-0.2l-19.7,18.1l14.4-7.8l3.3-1.6c0,0-0.1-0.1-0.1-0.1c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3
				c0,0.2-0.1,0.4-0.3,0.4c-0.1,0-0.2-0.1-0.3-0.2l-18.4,10.1l-0.3,0.5l1-0.4l16.3-8.7l7.5-3.8c0,0,0,0,0-0.1c0-0.2,0.1-0.4,0.3-0.4
				c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.3-0.1-0.4-0.2l-22,11.8l12.2-4.3l2.7-0.8c0,0,0,0,0-0.1
				c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.3-0.1-0.4-0.2l-16.1,5.7l-0.2,0.1l15.9-3.9
				l3.6-0.8c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.4-0.1-0.4-0.3c0,0,0,0,0,0l-20.5,5.2
				l-0.2,0.1l0.8,0.2l15.1-1.3l2.9-0.1c0-0.2,0.1-0.3,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.4-0.1-0.4-0.3
				c0,0,0,0,0,0l-17.2,1.5l17.5,4.2l8.3,2.2c0,0,0-0.1,0.1-0.1c0.1-0.1,0.4-0.1,0.5,0c0.1,0.2,0.1,0.4,0,0.5c-0.2,0.1-0.4,0.1-0.5,0
				c-0.1-0.1-0.1-0.3,0-0.4l-26.1-6.2l14.5,7.6l3.2,1.8c0,0,0-0.1,0.1-0.1c0.2-0.1,0.4-0.1,0.5,0c0.1,0.2,0.1,0.4,0,0.5
				c-0.2,0.1-0.4,0.1-0.5,0c-0.1-0.1-0.1-0.2,0-0.4l-18.6-9.6l-0.6,0.1l0.8,0.6l16.3,8.7l7.3,4.1c0,0,0,0,0-0.1
				c0.2-0.1,0.4-0.1,0.5,0c0.1,0.2,0.1,0.4,0,0.5C163.2,306.7,162.9,306.7,162.8,306.6z M138.1,293.6l0-0.5L138,293l-0.1,0.3
				L138.1,293.6z M137.6,292.2L137.6,292.2L137.6,292.2L137.6,292.2L137.6,292.2z M137.5,292.8L137.5,292.8l-0.1-0.2L137.5,292.8z
				 M137.6,292.5l0-0.1L137.6,292.5L137.6,292.5z M136.6,292.8l0.1,0l0.1,0.2l0.2-0.3L136.6,292.8z M138.4,291.6l-0.3,0.3l0,0
				l0.2-0.1L138.4,291.6z M138.4,292.4L138.4,292.4l0.2,0.1L138.4,292.4z"
				/>
				<g>
					<g>
						<path
							fill="#E2617D"
							d="M125.7,389.9L125.7,389.9L125.7,389.9L125.7,389.9L125.7,389.9z"
						/>
					</g>
				</g>
				<path
					fill="#E05A6A"
					d="M97.4,356.6c0-0.2,0.1-0.3,0.2-0.4c0.1,0,0.2,0,0.3,0.1l15.2-16.7c0,0-0.1,0-0.1,0l-11.4,7.5l-2.7,1.6
				c0,0,0.1,0.1,0.1,0.1c0,0.2-0.1,0.3-0.2,0.4c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4c0.1,0,0.2,0,0.3,0.1l13.8-9.2
				c-0.1-0.1-0.3-0.1-0.4-0.2l-12.4,8l-6.1,3.7c0,0,0,0,0,0c0,0.2-0.1,0.3-0.2,0.4c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4
				c0.1,0,0.3,0,0.3,0.2l17.8-11.6l-10,4.5l-2.2,0.9c0,0,0,0,0,0.1c0,0.2-0.1,0.3-0.2,0.4c-0.2,0-0.3-0.1-0.4-0.2
				c0-0.2,0.1-0.3,0.2-0.4c0.1,0,0.2,0,0.3,0.2l12.6-5.8c0,0-0.1-0.1-0.1-0.1l-12.3,4.2l-3,0.9c0,0.2-0.1,0.3-0.2,0.3
				c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2c0,0,0,0,0,0l15.1-5.3c-0.1-0.2-0.2-0.4-0.3-0.6l-11,1.9
				l-2.4,0.3c0,0.2-0.1,0.3-0.2,0.3c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2c0,0,0,0,0,0l13.3-2.4
				c0,0,0,0,0-0.1c-0.1-0.2-0.1-0.5-0.1-0.7l-14.5-4.5l-6.9-2.3c0,0,0,0.1,0,0.1c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4
				c0.1-0.1,0.3-0.1,0.4,0.1c0.1,0.1,0.1,0.2,0,0.3l21.4,6.6c0,0,0-0.1,0-0.1l-11.5-7l-2.6-1.7c0,0,0,0.1-0.1,0.1
				c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0.1c0.1,0.1,0.1,0.2,0,0.3l14.2,8.5
				c0-0.1,0.1-0.3,0.2-0.4l-12.6-7.8l-6-3.9c0,0,0,0,0,0.1c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4
				c0.1-0.1,0.3-0.1,0.4,0.1c0.1,0.1,0.1,0.3,0,0.4l18.1,11.1l-8.4-7.2l-1.7-1.6c0,0,0,0,0,0.1c-0.1,0.1-0.3,0.1-0.4-0.1
				c-0.1-0.1-0.1-0.3,0.1-0.4c0.1-0.1,0.3-0.1,0.4,0.1c0.1,0.1,0.1,0.2,0,0.3l10.8,9.1c0,0,0-0.1,0.1-0.1l-9.2-9.5l-2.1-2.3
				c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4c0.1-0.1,0.3-0.1,0.4,0.1c0.1,0.1,0.1,0.3-0.1,0.4c0,0,0,0,0,0l11.5,11.6
				c0.1-0.1,0.3-0.3,0.5-0.4l-6.7-9.5l-1.3-2.1c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0.1
				c0.1,0.1,0.1,0.3-0.1,0.4c0,0,0,0,0,0l8.2,11.5c0.2-0.1,0.3-0.1,0.5-0.2c0.1,0,0.1,0,0.2,0l-6.1-14.2l-2.8-6.8c0,0-0.1,0-0.1,0
				c-0.2,0-0.3-0.2-0.2-0.4c0-0.2,0.2-0.3,0.4-0.2c0.2,0,0.3,0.2,0.2,0.4c0,0.1-0.1,0.2-0.2,0.2l9.1,20.9c0,0,0,0,0,0l-2.3-13.8
				l-0.4-3.1c0,0-0.1,0-0.1,0c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.2c0.2,0,0.3,0.2,0.2,0.4c0,0.1-0.1,0.2-0.2,0.2l2.9,16.9
				c0.1,0,0.3,0,0.4,0.1l-2.4-15.4l-1-7.1c0,0,0,0-0.1,0c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.2c0.2,0,0.3,0.2,0.2,0.4
				c0,0.1-0.2,0.2-0.3,0.2l3.4,21l-0.1-11l0.1-2.4c0,0,0,0-0.1,0c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3
				c0.2,0,0.3,0.2,0.2,0.4c0,0.1-0.1,0.2-0.3,0.2l0.2,14.6l0,0.2l1.2-13.9l0.4-3.1c-0.2,0-0.3-0.2-0.2-0.4c0-0.2,0.2-0.3,0.4-0.3
				c0.2,0,0.3,0.2,0.2,0.4c0,0.2-0.2,0.3-0.4,0.2c0,0,0,0,0,0l-1.4,17.2c0.1,0.1,0.3,0.1,0.4,0.2l3.1-12.4l0.7-2.3
				c-0.1,0-0.2-0.2-0.2-0.3c0-0.2,0.2-0.3,0.4-0.2c0.2,0,0.3,0.2,0.2,0.4c0,0.2-0.2,0.3-0.4,0.2c0,0,0,0,0,0l-3.6,14.9
				c0.1,0.1,0.2,0.2,0.2,0.2l9.1-12.6l4.4-5.8c0,0-0.1,0-0.1-0.1c-0.1-0.2,0-0.3,0.2-0.4c0.2-0.1,0.3,0,0.4,0.2
				c0.1,0.2,0,0.3-0.2,0.4c-0.1,0-0.2,0-0.3-0.1l-13.3,18.6l10.7-9l2.5-1.9c0,0-0.1-0.1-0.1-0.1c-0.1-0.2,0-0.3,0.2-0.4
				c0.2-0.1,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.1,0-0.2,0-0.3-0.1l-13.1,11.2c0.1,0.1,0.1,0.3,0.2,0.4l12-10l5.6-4.4
				c0,0,0,0,0,0c-0.1-0.2,0-0.3,0.2-0.4c0.2-0.1,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.1,0-0.3,0-0.4-0.1l-16.3,13.6l9.4-5.7
				l2.1-1.1c0,0,0,0-0.1-0.1c-0.1-0.2,0-0.3,0.2-0.4c0.2,0,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.1,0-0.2,0-0.3-0.1l-12.5,7.6
				l-0.2,0.1l12.6-6l2.9-1.3c0-0.2,0-0.3,0.2-0.4c0.2-0.1,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2c0,0,0,0,0,0
				l-15.6,7.6c0,0.1,0,0.3,0,0.4h0.1l12.2-3.6l2.4-0.6c0-0.1,0-0.3,0.2-0.4c0.2-0.1,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4
				c-0.2,0.1-0.3,0-0.4-0.2c0,0,0,0,0,0l-13.9,4.2l15.5,0.4l7.3,0.3c0,0,0-0.1,0-0.1c0.1-0.1,0.3-0.2,0.4-0.1
				c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.1-0.2-0.1-0.3l-22.8-0.5l13.5,3.7l3,0.9c0,0,0-0.1,0-0.1
				c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.1-0.2-0.1-0.3l-17.1-4.6
				c0,0.1,0,0.3-0.1,0.4l0.3,0.1l15.2,4.3l6.8,2.1c0,0,0,0,0-0.1c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4
				c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.1-0.2-0.1-0.4l-20.5-5.7l10,4.6l2.1,1.1c0,0,0-0.1,0-0.1c0.1-0.1,0.3-0.2,0.4-0.1
				c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.1-0.2-0.1-0.3l-13.3-6l-0.2-0.1l12.1,7l2.7,1.6
				c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.2-0.3-0.1-0.4c0,0,0,0,0,0l-15.3-8.7
				c-0.1,0.1-0.1,0.2-0.2,0.3l10.1,8.1l1.8,1.6c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1
				c-0.1-0.1-0.2-0.3-0.1-0.4c0,0,0,0,0,0l-11.6-9.2l8.3,12.9l3.8,6.2c0,0,0.1,0,0.1,0c0.2,0,0.3,0.2,0.3,0.3c0,0.2-0.1,0.3-0.3,0.3
				c-0.2,0-0.3-0.1-0.3-0.3c0-0.1,0.1-0.2,0.2-0.3l-12.4-19.2l4.5,13.2l0.9,3c0,0,0.1-0.1,0.1,0c0.2,0,0.3,0.1,0.3,0.3
				c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.2-0.3-0.3c0-0.1,0.1-0.2,0.2-0.3l-5.7-16.4c-0.1,0.1-0.2,0.2-0.4,0.3l4.9,14.7l2.1,6.8
				c0,0,0,0,0,0c0.2,0,0.3,0.1,0.3,0.3c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3c0-0.1,0.1-0.3,0.3-0.3l-6.8-20.2l1.9,10.9
				l0.3,2.4c0,0,0,0,0.1,0c0.2,0,0.3,0.2,0.3,0.3c0,0.2-0.2,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3c0-0.1,0.1-0.2,0.2-0.3l-2.5-14.4
				l0-0.1c0,0,0,0,0,0l1.1,13.8l0.1,3.1c0.2,0,0.3,0.2,0.3,0.3c0,0.2-0.2,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3
				c0,0,0,0,0,0l-1.4-16.9c0,0-0.1,0-0.1,0c-0.1,0-0.3,0-0.4,0.1l-1,12.1l-0.3,2.4c0.2,0,0.3,0.1,0.3,0.3c0,0.2-0.1,0.3-0.3,0.3
				c-0.2,0-0.3-0.2-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0,0,0,0,0,0l1.1-14.5c-0.1,0-0.2,0-0.3,0L103,351.1l-5,5.2c0,0,0.1,0.1,0.1,0.1
				c0,0.2-0.1,0.3-0.2,0.4C97.6,356.9,97.5,356.8,97.4,356.6z"
				/>
				<g>
					<radialGradient
						id="SVGID_10_"
						cx="1874.9363"
						cy="4794.6797"
						r="39.4902"
						gradientTransform="matrix(-0.525 0.849 -0.8483 -0.5273 5188.54 1296.4727)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#F4D4D7" />
						<stop offset="1" style="stop-color:#FB879E" />
					</radialGradient>
					<path
						fill="url(#SVGID_10_)"
						d="M137.2,357.7c-1-5,10.7-19.7,23.4-19.6c5.7,0,21.5,1.6,21.2,5.5c-0.1,1.9-9.4,11-16.5,17.3
					C157.4,367.9,139.3,367.9,137.2,357.7z"
					/>
					<path
						fill="#F2E4E6"
						d="M158,340.9c0,0-8.5,0.8-15.8,11.8c-1.6,2.5-2.4,3-1.6,3.2c2.3-6.6,20.2-10.2,20.7-10.3
					c0,0-13.8,3.3-18.9,8.6c-0.3,0.3-1.8,2.4-0.6,2.1c1.1-0.2,8-2.3,8-2.3l0,0c-4.6,1.9-5.4,2-6.3,2.6c-0.5,0.4-0.4,1.1,0,1.2
					c1.5,0.3,7.7,0.7,17.5-2.5c0,0-11,4.5-18.2,3c-0.5-0.1-0.8,0.6-0.3,0.8c5.6,2.1,17.6,0.1,17.6,0.1s-11.1,2.2-16.3,0.8
					c-0.4-0.1-0.7,0.6-0.2,0.8c4.1,1.8,11.2,3,11.2,3c-6.5-0.8-9.1-1.7-10.9-2.1c-2.5-0.5,5.1,3.7,5.1,3.7s-9.5-1.5-11.2-6.8
					c-1.6-4.8,5.6-11.1,5.6-11.1s-3.2,4.2-3.5,6.4C139.5,356.1,147.5,341.8,158,340.9z"
					/>

					<radialGradient
						id="SVGID_11_"
						cx="1817.0367"
						cy="4820.7754"
						r="68.2547"
						gradientTransform="matrix(-0.525 0.849 -0.8483 -0.5273 5188.54 1296.4727)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#FEEDF0" />
						<stop offset="0.6209" style="stop-color:#E05A6A" />
					</radialGradient>
					<path
						fill="url(#SVGID_11_)"
						d="M150.2,307.9c4.5-2.7,22.3,2.9,26.1,14.6c1.7,5.2,5.2,20.3,1.3,21.5c-1.9,0.6-13.5-4.7-21.8-9.1
					C146.7,330.1,141.1,313.5,150.2,307.9z"
					/>
					<path
						fill="#F2E4E6"
						d="M172.9,321c0,0-3.4-7.6-16.3-10.3c-2.9-0.6-3.7-1.1-3.6-0.3c7.1-0.2,16.1,14.9,16.3,15.4
					c0,0-7.5-11.5-14.1-14.3c-0.4-0.2-2.8-0.8-2.3,0.2c0.6,0.9,4.7,6.5,4.7,6.5h0c-3.3-3.6-3.6-4.3-4.4-4.9c-0.5-0.4-1.2,0-1.2,0.4
					c0.1,1.5,1.7,7.4,7.8,15.2c0,0-7.8-8.5-8.5-15.7c-0.1-0.5-0.8-0.5-0.8,0c-0.3,5.9,5.4,16.2,5.4,16.2s-5.6-9.4-5.8-14.7
					c0-0.4-0.8-0.4-0.9,0.2c-0.5,4.4,0.5,11.3,0.5,11.3c-1.3-6.3-1.2-9-1.4-10.7c-0.3-2.5-2,6-2,6s-1.5-9.2,3.1-12.8
					c4.2-3.2,12.4,1.2,12.4,1.2s-5-1.5-7.2-1C152.5,309.5,168.8,311.7,172.9,321z"
					/>

					<radialGradient
						id="SVGID_12_"
						cx="1786.6823"
						cy="4780.3447"
						r="41.5451"
						gradientTransform="matrix(-0.525 0.849 -0.8483 -0.5273 5188.54 1296.4727)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="6.043960e-002" style="stop-color:#FEEDF0" />
						<stop offset="1" style="stop-color:#FB879E" />
					</radialGradient>
					<path
						fill="url(#SVGID_12_)"
						d="M197.9,301.1c4.4,2.3,7.9,20-0.3,29.2c-3.7,4.1-15.1,14.8-17.9,12.2c-1.4-1.3-2.3-13.7-2.4-22.8
					C177.2,309.6,188.9,296.4,197.9,301.1z"
					/>
					<path
						fill="#FFFFFF"
						d="M197.2,326.7c0,0,4.9-6.7,1.2-18.8c-0.8-2.7-0.8-3.6-1.4-3.1c3.5,5.8-5.3,21.1-5.6,21.5
					c0,0,6.4-12.1,5.7-19.1c0-0.5-0.6-2.8-1.2-1.8c-0.6,1-3.4,7.3-3.4,7.3l0,0c1.5-4.6,2-5.2,2.1-6.2c0.1-0.6-0.5-1-0.9-0.7
					c-1.2,0.9-5.6,5.2-9.4,14.3c0,0,3.7-10.8,9.5-15.2c0.4-0.3,0-0.9-0.4-0.7c-5.2,2.8-11.4,12.8-11.4,12.8s5.5-9.5,9.9-12.4
					c0.3-0.2,0-0.9-0.5-0.6c-4,1.8-9.5,6.3-9.5,6.3c4.8-4.3,7.1-5.6,8.6-6.7c2-1.5-6.1,1.5-6.1,1.5s7.2-6,12.4-4
					c4.7,1.8,4.7,11,4.7,11s-1.1-4.9-2.5-6.5C197.6,303.8,203.3,318.5,197.2,326.7z"
					/>

					<radialGradient
						id="SVGID_13_"
						cx="1816.7977"
						cy="4725.7183"
						r="23.3153"
						gradientTransform="matrix(-0.525 0.849 -0.8483 -0.5273 5188.54 1296.4727)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#EDEDED" />
						<stop offset="1" style="stop-color:#FB879E" />
					</radialGradient>
					<path
						fill="url(#SVGID_13_)"
						d="M222.7,348.9c-1.5,5.1-19,13.2-30.1,7.3c-5-2.6-14.9-10.2-12.7-13.7c1-1.7,10.3-6.9,19.7-9.4
					C209.9,330.4,225.8,338.6,222.7,348.9z"
					/>
					<path
						fill="#F2E4E6"
						d="M196.3,354.9c0,0,7.9,3.2,19.6-3.7c2.6-1.5,3.6-1.7,2.9-2.2c-5.3,5-22.7,0.2-23.1,0
					c0,0,13.7,3.3,20.8,0.7c0.5-0.2,2.7-1.4,1.6-1.7c-1.1-0.3-8.1-1.6-8.1-1.6h0c5,0.4,5.7,0.7,6.8,0.5c0.7-0.1,0.9-0.8,0.6-1.1
					c-1.1-1-6.5-4.2-16.5-5.7c0,0,11.8,0.9,17.5,5.6c0.4,0.3,1-0.2,0.6-0.6c-3.9-4.5-15.4-8.1-15.4-8.1s10.8,3,14.7,6.7
					c0.3,0.3,0.9-0.2,0.6-0.7c-2.7-3.5-8.3-7.9-8.3-7.9c5.4,3.7,7.1,5.7,8.6,6.9c2,1.6-2.7-5.7-2.7-5.7s7.6,5.7,6.6,11.4
					c-0.9,5.2-10.3,7.6-10.3,7.6s4.9-2.4,6.2-4.2C219.9,349.4,206,358.9,196.3,354.9z"
					/>

					<radialGradient
						id="SVGID_14_"
						cx="1873.979"
						cy="4727.2314"
						r="57.5237"
						gradientTransform="matrix(-0.525 0.849 -0.8483 -0.5273 5188.54 1296.4727)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#F4D4D7" />
						<stop offset="0.7198" style="stop-color:#E05A6A" />
					</radialGradient>
					<path
						fill="url(#SVGID_14_)"
						d="M186.4,386c-5.3,0.1-17.5-13.8-14.6-26c1.3-5.5,6.3-20.5,10.2-19.6c1.9,0.5,9.1,11,13.8,19
					C201,368.3,197.1,385.7,186.4,386z"
					/>
					<path
						fill="#FEEDF0"
						d="M173.9,363c0,0-1.1,8.4,8.5,17.3c2.2,2,2.5,2.8,2.9,2.1c-6.2-3.4-5.9-21.3-5.9-21.8
					c0,0,0.3,13.9,4.6,19.8c0.3,0.4,2,2.1,2,1c0-1.1-0.6-8.1-0.6-8.1l0,0c0.9,4.8,0.8,5.6,1.2,6.5c0.3,0.6,1,0.6,1.2,0.2
					c0.7-1.4,2.4-7.4,1.3-17.3c0,0,2.1,11.4-1,18.1c-0.2,0.5,0.4,0.9,0.7,0.4c3.3-5,3.9-17,3.9-17s-0.2,11.1-2.7,15.9
					c-0.2,0.3,0.5,0.8,0.8,0.3c2.7-3.6,5.5-10.2,5.5-10.2c-2.2,6.2-3.7,8.5-4.5,10.1c-1,2.3,4.9-4.3,4.9-4.3s-3.6,8.9-9.3,9.7
					c-5.3,0.7-10-7.4-10-7.4s3.5,3.9,5.7,4.5C185.3,383.5,172.5,373.3,173.9,363z"
					/>
					<path
						fill="#FFFFFF"
						d="M202.5,362.2c-0.1-0.2,0-0.3,0.1-0.4l-18.8-16.4l8.3,9.9l1.7,2.2c0,0,0-0.1,0.1-0.1
					c0.2-0.1,0.4,0,0.5,0.1c0.1,0.2,0,0.4-0.1,0.5c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.1,0-0.3,0.1-0.4l-11.1-13.1l-0.2-0.2l9.3,13.5
					l2,3.1c0.2-0.1,0.4,0,0.5,0.2c0.1,0.2,0,0.4-0.1,0.5c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.2,0-0.4,0.1-0.5c0,0,0,0,0,0l-12-17.1
					l-0.2,0.7l6.5,13.5l1.1,2.6c0.2-0.1,0.4,0,0.4,0.2c0.1,0.2,0,0.4-0.1,0.5c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5
					c0,0,0,0,0,0l-7.6-15.7l-4,18.3l-2,8.3c0,0,0.1,0,0.1,0.1c0.1,0.1,0.1,0.4,0,0.5c-0.1,0.1-0.4,0.1-0.5,0c-0.1-0.2-0.1-0.4,0-0.5
					c0.1-0.1,0.3-0.1,0.4,0l5.6-26.2l-7.3,14.7l-1.7,3.3c0,0,0.1,0,0.1,0.1c0.1,0.2,0.1,0.4,0,0.5c-0.2,0.1-0.4,0.1-0.5,0
					c-0.1-0.1-0.1-0.4,0-0.5c0.1-0.1,0.2-0.1,0.4-0.1l9.2-18.8l-0.2-0.4l-0.4,0.6l-8.3,16.5l-3.9,7.4c0,0,0,0,0.1,0
					c0.1,0.1,0.1,0.4,0,0.5c-0.1,0.1-0.4,0.1-0.5,0c-0.1-0.2-0.1-0.4,0-0.5c0.1-0.1,0.3-0.1,0.4,0l11.1-22.3l-7.5,10.5l-1.7,2.2
					c0,0,0.1,0,0.1,0c0.1,0.2,0.1,0.4,0,0.5c-0.1,0.1-0.4,0.1-0.5,0c-0.1-0.1-0.1-0.4,0-0.5c0.1-0.1,0.3-0.1,0.4,0l9.9-14l0.1-0.2
					l-10.7,12.4l-2.5,2.7c0.1,0.1,0.1,0.4,0,0.5c-0.1,0.1-0.4,0.1-0.5,0c-0.1-0.2-0.1-0.4,0-0.5c0.1-0.1,0.4-0.1,0.5,0c0,0,0,0,0,0
					l13.7-16.1l0.1-0.1l-0.1-0.3l0,0l-0.1,0.1l0.1,0.2l-0.4,0.1l-11.7,9.9l-2.3,1.8c0.1,0.2,0.1,0.3,0,0.5c-0.1,0.1-0.4,0.1-0.5,0
					c-0.1-0.2-0.1-0.4,0-0.5c0.1-0.1,0.4-0.1,0.5,0c0,0,0,0,0,0l13.5-11.5l-19.4,4.4l-8.4,1.7c0,0,0,0.1,0,0.1
					c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0.1,0.1,0.2,0.2,0.2,0.3l26.1-6.1l-16.4-0.3
					l-3.7-0.2c0,0,0,0.1,0,0.2c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0.1,0,0.2,0.2,0.2,0.3
					l21.2,0.3l0.9-0.2l-1.7-0.3l-18.5-0.5l-8.3-0.4c0,0,0,0,0,0.1c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5
					c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.2,0.2,0.2,0.4l24.9,0.5l-12.7-2.3l-2.7-0.6c0,0,0,0.1,0,0.1c-0.1,0.2-0.3,0.3-0.5,0.2
					c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0.1,0.1,0.2,0.2,0.2,0.4l16.9,2.9h0.2l-15.8-4.4l-3.5-1.1
					c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c0,0,0,0,0,0l20.5,5.5
					l0.9,0l-15.1-6.9l-2.6-1.3c-0.1,0.2-0.3,0.2-0.4,0.2c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5
					c0,0,0,0,0,0l17.7,8l0,0.2l0.1,0l0.1-0.2l0.1,0.1l0.1-0.6l-0.4-0.5l0.1,0.1l-0.1,0.2l0.2,0.2l-0.1,0.3l-16.8-12.4l-6.8-5.2
					c0,0,0,0.1-0.1,0.1c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0.2-0.1,0.4,0,0.5,0.2c0,0.1,0,0.3-0.1,0.4l21.6,15.8
					l-10.5-12.6l-2.3-2.9c0,0-0.1,0.1-0.1,0.1c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0.2-0.1,0.4,0,0.5,0.2
					c0,0.1,0,0.3-0.1,0.4l13.7,16.3l0.8,0.6l-0.9-1.5l-11.7-14.3l-5.2-6.6c0,0,0,0,0,0c-0.2,0.1-0.4,0-0.5-0.2
					c-0.1-0.2,0-0.4,0.2-0.5c0.2-0.1,0.4,0,0.5,0.2c0.1,0.2,0,0.3-0.2,0.4l15.9,19.3l-6.6-11.2l-1.3-2.5c0,0,0,0.1-0.1,0.1
					c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0.2-0.1,0.4,0,0.5,0.2c0.1,0.1,0,0.3-0.1,0.4l8.8,14.7l0.2,0.2l-7-14.8
					l-1.5-3.4c-0.2,0-0.4,0-0.4-0.2c-0.1-0.2,0-0.4,0.2-0.5c0.2-0.1,0.4,0,0.5,0.2c0.1,0.2,0,0.4-0.2,0.5c0,0,0,0,0,0l9.2,19.1
					l0.6,0.7l-4.6-15.9l-0.7-2.8c-0.2,0-0.4,0-0.4-0.2c-0.1-0.2,0-0.4,0.2-0.5c0.2-0.1,0.4,0,0.5,0.2c0.1,0.2,0,0.4-0.2,0.5
					c0,0,0,0,0,0l5.4,18.1l1.8-19l1-8.5c0,0-0.1,0-0.1,0c-0.1-0.1-0.2-0.4,0-0.5c0.1-0.2,0.4-0.2,0.5,0c0.2,0.1,0.2,0.4,0,0.5
					c-0.1,0.1-0.2,0.1-0.4,0.1l-2.5,26.7l5.5-15.4l1.3-3.4c-0.1,0-0.1,0-0.1,0c-0.2-0.1-0.2-0.4,0-0.5c0.1-0.2,0.4-0.2,0.5,0
					c0.2,0.1,0.2,0.4,0,0.5c-0.1,0.1-0.2,0.1-0.4,0.1l-7,20.1l-0.1,0.9l0,0l0.8-1.5l6.3-17.4l3-7.8c0,0,0,0-0.1,0
					c-0.2-0.1-0.2-0.4,0-0.5c0.1-0.2,0.4-0.2,0.5,0c0.2,0.1,0.2,0.4,0,0.5c-0.1,0.1-0.3,0.1-0.4,0.1l-8.4,23.5l6.2-11.4l1.4-2.4
					c0,0-0.1,0-0.1,0c-0.2-0.1-0.2-0.4,0-0.5c0.1-0.2,0.4-0.2,0.5,0c0.2,0.1,0.2,0.4,0,0.5c-0.1,0.1-0.3,0.1-0.4,0.1l-8.1,15.1
					l-0.1,0.2l9.1-13.6l2.1-3c-0.1-0.1-0.2-0.3,0-0.5c0.1-0.2,0.4-0.2,0.5,0c0.1,0.1,0.2,0.4,0,0.5c-0.1,0.2-0.4,0.2-0.5,0
					c0,0,0,0,0,0L182,341.6l0,0.1l0.9-0.5l10.2-10.9l2-2c-0.1-0.1-0.1-0.3,0-0.5c0.1-0.2,0.4-0.2,0.5,0c0.2,0.1,0.2,0.4,0,0.5
					c-0.1,0.2-0.4,0.2-0.5,0c0,0,0,0,0,0l-11.6,12.5l15.9-8.8l7.6-4c0,0,0-0.1,0-0.1c0-0.2,0.2-0.4,0.4-0.3c0.2,0,0.4,0.2,0.3,0.4
					c0,0.2-0.2,0.4-0.4,0.3c-0.1,0-0.2-0.1-0.3-0.3l-23.4,13.1l15.8-4.2l3.6-0.8c0,0-0.1-0.1,0-0.2c0-0.2,0.2-0.3,0.4-0.3
					c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.4-0.4,0.3c-0.1,0-0.2-0.1-0.3-0.2l-20.3,5.6l-0.4,0.4l1.1-0.1l17.9-4.6l8.1-1.9
					c0,0,0,0,0-0.1c0-0.2,0.2-0.4,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.3l-24.1,6.3l12.9-1.3
					l2.8-0.2c0,0,0-0.1,0-0.1c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.4,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.1-0.3-0.3l-17,1.8
					l-0.2,0.1l16.4-0.1l3.7,0.1c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.4-0.4,0.3c-0.2,0-0.4-0.2-0.3-0.4
					c0,0,0,0,0,0l-21.2,0.3l-0.2,0.1l0.8,0.4l15,2.2l2.8,0.5c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.4,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3
					c-0.2,0-0.4-0.2-0.3-0.4c0,0,0,0,0,0l-17.1-2.5l16,8.2l7.5,4c0,0,0-0.1,0.1-0.1c0.2-0.1,0.4,0,0.5,0.1c0.1,0.2,0,0.4-0.1,0.5
					c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.1,0-0.3,0.1-0.4l-23.9-12.1l12.4,10.8l2.7,2.5c0,0,0-0.1,0.1-0.1c0.2-0.1,0.4,0,0.5,0.1
					c0.1,0.2,0,0.4-0.1,0.5c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.1,0-0.3,0-0.4l-15.9-13.6l-0.6-0.1l0.6,0.7l13.9,12.2l6.2,5.7
					c0,0,0,0,0-0.1c0.2-0.1,0.4,0,0.5,0.2c0.1,0.2,0,0.4-0.2,0.5C202.8,362.4,202.6,362.4,202.5,362.2z M181.4,343.9l0.1-0.5
					l-0.1-0.1l-0.2,0.3L181.4,343.9z M181.3,342.4L181.3,342.4L181.3,342.4L181.3,342.4L181.3,342.4z M181,343L181,343l-0.1-0.2
					L181,343z M181.2,342.6l0-0.1L181.2,342.6L181.2,342.6z M180.1,342.7l0.1,0l0.1,0.2l0.3-0.2L180.1,342.7z M182.2,342l-0.4,0.2
					l0,0l0.2,0L182.2,342z M182,342.8L182,342.8l0.2,0.1L182,342.8z"
					/>
					<path
						fill="#E05A6A"
						d="M168.8,364.8c-0.1-0.2,0-0.3,0.2-0.4c0.1-0.1,0.2,0,0.3,0.1l11-18.6c-0.1-0.1-0.2-0.1-0.2-0.2l-9,9.1
					l-2.3,2.2c0,0,0.1,0,0.1,0.1c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.1c-0.1-0.2,0-0.3,0.1-0.4c0.1-0.1,0.2,0,0.3,0.1
					l11.2-11.4c-0.1-0.1-0.2-0.2-0.3-0.4l-10.2,10.1l-5.2,4.9c0,0,0,0,0,0c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2
					c-0.1-0.2,0-0.3,0.2-0.4c0.1-0.1,0.3,0,0.4,0.1l15-15l-8.9,6.5l-2,1.3c0,0,0,0,0.1,0.1c0.1,0.1,0,0.3-0.1,0.4
					c-0.2,0.1-0.3,0-0.4-0.2c-0.1-0.2,0-0.3,0.2-0.4c0.1-0.1,0.2,0,0.3,0.1l11-8.1c0,0,0,0,0-0.1c0,0,0,0,0-0.1l-11,6.5l-2.7,1.5
					c0.1,0.1,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2c-0.1-0.2,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.2c0,0,0,0,0,0l13.7-8.3
					c-0.1-0.2-0.1-0.4-0.2-0.6l-10.6,4.2l-2.3,0.8c0,0.1,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2c-0.1-0.2,0-0.3,0.2-0.4
					c0.2-0.1,0.3,0,0.4,0.2c0,0,0,0,0,0l12.9-5.2c0-0.2,0-0.4,0-0.6l-15.7-1.5l-7.2-0.9c0,0,0,0.1,0,0.1c-0.1,0.1-0.3,0.1-0.4,0
					c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.2,0.1,0.3l22.7,2.1l-13.1-4.7l-2.9-1.1c0,0,0,0.1,0,0.1
					c-0.1,0.1-0.3,0.2-0.4,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.2,0.4,0c0.1,0.1,0.1,0.2,0.1,0.3l16.3,5.7c0-0.1,0.1-0.3,0.1-0.4
					l-14.6-5.3l-6.7-2.6c0,0,0,0,0,0.1c-0.1,0.1-0.3,0.2-0.4,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0
					c0.1,0.1,0.1,0.2,0.1,0.4l20,7.2l-9.7-5.3l-2-1.2c0,0,0,0.1,0,0.1c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.1-0.3,0-0.4
					c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.2,0.1,0.3l12.9,7l0.2,0.1l-11.6-7.8l-2.5-1.8c-0.1,0.1-0.3,0.1-0.4,0
					c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.2,0.3,0,0.4c0,0,0,0,0,0l14.2,9.4c0.1-0.1,0.2-0.3,0.3-0.4l-9-8.4
					l-1.7-1.7c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.2-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4c0,0,0,0,0,0l10.8,10
					c0.1-0.1,0.2-0.3,0.4-0.4l-9.2-13l-4.1-6c0,0-0.1,0-0.1,0c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0.2,0,0.3,0.1,0.3,0.3
					c0,0.1-0.1,0.2-0.2,0.3l13.2,18.6l-5-13l-1-3c0,0-0.1,0.1-0.1,0.1c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3
					c0.2,0,0.3,0.1,0.3,0.3c0,0.1-0.1,0.2-0.2,0.3l6.4,16.2c0.1-0.1,0.2-0.1,0.2-0.2c0,0,0.1,0,0.1,0l-5.6-14.7l-2.4-6.7
					c0,0,0,0,0,0c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0.2,0,0.3,0.1,0.3,0.3c0,0.1-0.1,0.3-0.2,0.3l7.6,19.9l-2.3-10.8
					l-0.4-2.3c0,0,0,0-0.1,0c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0.2,0,0.3,0.1,0.3,0.3c0,0.1-0.1,0.2-0.2,0.3l3.2,14.3
					l0.1,0.2l-1.7-13.9l-0.3-3.1c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0.2,0,0.3,0.1,0.3,0.3c0,0.2-0.1,0.3-0.3,0.3
					c0,0,0,0,0,0l2.2,17.1c0.2,0,0.3-0.1,0.5-0.1l0.5-12.4l0.2-2.4c-0.1,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3
					c0.2,0,0.3,0.1,0.3,0.3c0,0.2-0.1,0.3-0.3,0.3c0,0,0,0,0,0L182,340c0.2,0,0.3,0,0.5,0l6.1-13.6l3.1-6.6c0,0-0.1,0-0.1-0.1
					c-0.1-0.1,0-0.3,0.1-0.4c0.1-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.3-0.1,0.4c-0.1,0.1-0.2,0-0.3,0l-8.9,20.2c0.1,0,0.1,0,0.2,0
					l8.1-10.4l2-2.4c0,0-0.1,0-0.1-0.1c-0.1-0.1,0-0.3,0.1-0.4c0.1-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.3-0.1,0.4c-0.1,0.1-0.2,0-0.3,0
					l-9.9,12.8c0.1,0.1,0.3,0.1,0.4,0.2l9-11.3l4.6-5.5c0,0,0,0,0,0c-0.1-0.2,0-0.3,0.1-0.4c0.1-0.1,0.3,0,0.4,0.1
					c0.1,0.2,0,0.3-0.1,0.4c-0.1,0.1-0.3,0-0.4-0.1L184,340.3l8.1-7.5l1.8-1.5c0,0,0,0-0.1-0.1c-0.1-0.1,0-0.3,0.1-0.4
					c0.1-0.1,0.3,0,0.4,0.1c0.1,0.2,0,0.3-0.1,0.4c-0.1,0.1-0.2,0-0.3,0l-9.9,9.3c0,0,0.1,0.1,0.1,0.1l10.1-7.7l2.5-1.8
					c-0.1-0.1,0-0.3,0.1-0.4c0.1-0.1,0.3,0,0.4,0.1c0.1,0.2,0,0.3-0.1,0.4c-0.1,0.1-0.3,0-0.4-0.1c0,0,0,0,0,0l-12.4,9.7
					c0.2,0.2,0.3,0.3,0.5,0.5l9.6-5.2l2.2-1.1c-0.1-0.1,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.3-0.1,0.4
					c-0.1,0.1-0.3,0-0.4-0.1c0,0,0,0,0,0l-11.7,6.4c0.1,0.1,0.1,0.2,0.2,0.3l14-2.6l7.2-1.2c0,0,0-0.1,0-0.1
					c0.1-0.2,0.3-0.2,0.4-0.2c0.2,0.1,0.2,0.3,0.2,0.4c-0.1,0.2-0.3,0.2-0.4,0.2c-0.1-0.1-0.2-0.2-0.2-0.3l-21.1,4
					c0,0.1,0.1,0.2,0.1,0.3l12.5,0.8l3.1,0.3c0,0,0-0.1,0-0.1c0.1-0.2,0.3-0.2,0.4-0.2c0.2,0.1,0.2,0.3,0.2,0.4
					c-0.1,0.2-0.3,0.2-0.4,0.2c-0.1,0-0.2-0.2-0.2-0.3l-15.6-0.9c0,0.2,0.1,0.3,0.1,0.5l13.8,1l7.1,0.6c0,0,0,0,0-0.1
					c0.1-0.2,0.3-0.2,0.4-0.2c0.2,0.1,0.2,0.3,0.2,0.4c-0.1,0.2-0.3,0.2-0.4,0.2c-0.1-0.1-0.2-0.2-0.2-0.3l-20.9-1.4c0,0,0,0,0,0
					l10.4,2.3l2.3,0.6c0,0,0,0,0-0.1c0.1-0.2,0.3-0.2,0.4-0.2c0.1,0.1,0.2,0.3,0.2,0.4c-0.1,0.2-0.3,0.2-0.4,0.2
					c-0.1-0.1-0.2-0.2-0.2-0.3l-12.7-2.8c0,0.1,0,0.1,0,0.2l11.6,3.8l2.9,1.1c0.1-0.1,0.2-0.2,0.4-0.1c0.2,0.1,0.2,0.3,0.2,0.4
					c-0.1,0.2-0.3,0.2-0.4,0.2c-0.2-0.1-0.2-0.3-0.2-0.4c0,0,0,0,0,0l-14.5-4.6c-0.1,0.3-0.1,0.5-0.3,0.7l9.4,4.8l2.1,1.2
					c0.1-0.1,0.2-0.2,0.4-0.1c0.2,0.1,0.2,0.3,0.2,0.4c-0.1,0.2-0.3,0.2-0.4,0.2c-0.1-0.1-0.2-0.3-0.2-0.4c0,0,0,0,0,0l-11.6-5.8
					c-0.1,0.2-0.2,0.3-0.3,0.5l9.5,9.6l5,5.3c0,0,0.1,0,0.1-0.1c0.2,0,0.3,0.1,0.4,0.3c0,0.2-0.1,0.3-0.3,0.4
					c-0.2,0-0.3-0.1-0.4-0.2c0-0.1,0.1-0.2,0.2-0.3l-14.6-14.8c-0.1,0.1-0.2,0.2-0.4,0.3l6,10.2l1.5,2.8c0,0,0.1-0.1,0.1-0.1
					c0.2,0,0.3,0.1,0.4,0.3c0,0.2-0.1,0.3-0.3,0.4c-0.2,0-0.3-0.1-0.4-0.3c0-0.1,0-0.2,0.1-0.3L184,346c-0.1,0.1-0.2,0.1-0.3,0.2
					c0,0-0.1,0-0.1,0.1l6.7,11.5l3.5,6.3c0,0,0,0,0.1,0c0.2,0,0.3,0.1,0.4,0.3c0,0.2-0.1,0.3-0.3,0.4c-0.2,0-0.3-0.1-0.4-0.3
					c0-0.1,0.1-0.3,0.2-0.3l-10.4-17.7c0,0-0.1,0-0.1,0l3.8,9.6l0.8,2.3c0,0,0,0,0.1,0c0.2,0,0.3,0.1,0.4,0.3c0,0.2-0.1,0.3-0.3,0.4
					c-0.2,0-0.3-0.1-0.4-0.3c0-0.1,0.1-0.2,0.2-0.3l-4.7-11.8c-0.1,0-0.2,0-0.2,0l3.3,11.4l0.8,3c0.2,0,0.3,0.1,0.3,0.2
					c0,0.2-0.1,0.3-0.3,0.4c-0.2,0-0.3-0.1-0.4-0.3c0-0.2,0.1-0.3,0.3-0.4c0,0,0,0,0,0l-4.3-14.4c-0.3,0-0.6,0-0.8,0l1.3,10.5
					l0.2,2.4c0.2,0,0.3,0.1,0.3,0.2c0,0.2-0.1,0.3-0.3,0.4c-0.2,0-0.3-0.1-0.4-0.3c0-0.2,0.1-0.3,0.3-0.4c0,0,0,0,0,0l-1.7-12.9
					c-0.4-0.1-0.7-0.3-1.1-0.5l-7.4,12.3l-3.9,6.2c0,0,0.1,0,0.1,0.1c0.1,0.2,0,0.3-0.2,0.4C169.1,365,168.9,364.9,168.8,364.8z"
					/>
				</g>
				<path
					fill="#E05A6A"
					d="M124.8,313.3c0.1-0.1,0.3-0.1,0.4,0l10.7-17.4c0,0-0.1,0-0.1-0.1l-6.6,7.7l-1.6,1.7c0,0,0,0,0.1,0
				c0.1,0.1,0.1,0.3-0.1,0.4c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.2-0.1,0.4,0l8.1-9.5
				c-0.1,0-0.2-0.1-0.2-0.1l-8.3,8.1l-2.3,2.1c0.1,0.1,0.1,0.3-0.1,0.4c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4
				c0.1-0.1,0.3-0.1,0.4,0.1c0,0,0,0,0,0l10.5-10.3c-0.1-0.1-0.2-0.2-0.3-0.3c-0.1-0.1-0.2-0.2-0.3-0.3l-8.1,5.7l-2.1,1.3
				c0.1,0.1,0.1,0.3-0.1,0.4c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4c0.1-0.1,0.3-0.1,0.4,0.1c0,0,0,0,0,0l10.1-7.1
				c-0.2-0.4-0.4-0.8-0.5-1.2l-14,1.9l-7.2,0.8c0,0,0,0.1,0,0.1c-0.1,0.2-0.3,0.2-0.4,0.1c-0.2-0.1-0.2-0.3-0.1-0.4
				c0.1-0.2,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.2,0.1,0.3l21.3-3c0-0.1,0-0.2,0-0.3l-12.5-1.4l-3.1-0.4c0,0,0,0.1,0,0.1
				c-0.1,0.2-0.3,0.2-0.4,0.1c-0.2-0.1-0.2-0.3-0.1-0.4c0.1-0.2,0.3-0.2,0.4-0.1c0.1,0,0.1,0.2,0.2,0.3l15.7,1.6
				c0-0.1,0-0.3,0.1-0.4l-14-1.6l-7.1-1c0,0,0,0,0,0.1c-0.1,0.2-0.3,0.2-0.4,0.1c-0.2-0.1-0.2-0.3-0.1-0.4c0.1-0.2,0.3-0.2,0.4-0.1
				c0.1,0.1,0.2,0.2,0.1,0.3l21.1,2.4l-10.6-2.9l-2.3-0.7c0,0,0,0.1,0,0.1c-0.1,0.2-0.3,0.2-0.4,0.1c-0.2-0.1-0.2-0.3-0.1-0.4
				c0.1-0.2,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.2,0.1,0.3l13,3.5c0-0.1,0-0.1,0.1-0.2l-11.8-4.4l-2.9-1.2c-0.1,0.1-0.2,0.2-0.4,0.1
				c-0.2-0.1-0.2-0.3-0.1-0.4c0.1-0.2,0.3-0.2,0.4-0.1c0.2,0.1,0.2,0.3,0.1,0.4c0,0,0,0,0,0l14.7,5.4c0.1-0.2,0.2-0.4,0.4-0.6
				l-9.7-5.5l-2.1-1.3c-0.1,0.1-0.2,0.2-0.4,0.1c-0.2-0.1-0.2-0.3-0.1-0.4c0.1-0.2,0.3-0.2,0.4-0.1c0.2,0.1,0.2,0.3,0.1,0.4
				c0,0,0,0,0,0l11.9,6.7c0.1-0.1,0.2-0.2,0.2-0.3c0.1-0.1,0.2-0.2,0.3-0.3l-11.3-10l-5.4-5c0,0,0,0.1-0.1,0.1
				c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2c0,0.1,0,0.2-0.1,0.3l16.8,14.7c0,0,0.1,0,0.1-0.1
				l-7.7-11.1l-1.7-2.6c0,0-0.1,0.1-0.1,0.1c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2
				c0,0.1,0,0.2-0.1,0.3l9.6,13.7c0.1-0.1,0.3-0.1,0.4-0.2l-8.5-12.5l-3.9-6c0,0,0,0,0,0c-0.2,0-0.3-0.1-0.4-0.2
				c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2c0,0.1,0,0.3-0.2,0.3l12,17.6l-4.8-10l-0.9-2.2c0,0,0,0-0.1,0
				c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2c0,0.1,0,0.3-0.1,0.3l6.3,13c0,0,0,0,0.1,0l-4.7-12.8l-1-3
				c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2c0,0.2-0.1,0.3-0.2,0.4c0,0,0,0,0,0l5.9,15.7
				c0.2,0,0.4,0,0.5,0l-2.3-11.9l-0.4-2.4c-0.2,0-0.3-0.1-0.3-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2
				c0,0.2-0.1,0.3-0.2,0.4c0,0,0,0,0,0l2.9,14.4c0.2,0,0.4,0,0.6,0.1l2.8-14.6l1.5-7.1c0,0-0.1,0-0.1,0c-0.1-0.1-0.1-0.3,0-0.4
				c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.2,0.1-0.3,0l-4,21.8c0.1,0,0.1,0,0.2,0l5.6-12.1l1.4-2.8
				c0,0-0.1,0-0.1-0.1c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.2,0.1-0.3,0.1l-6.8,15
				c0.1,0.1,0.3,0.1,0.4,0.2l6.3-13.4l3.2-6.4c0,0,0,0-0.1,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4
				c-0.1,0.1-0.3,0.1-0.4,0l-8.9,19.3l6.1-9.2l1.4-1.9c0,0,0,0-0.1,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0
				c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.2,0.1-0.3,0l-7.8,11.8c0,0,0.1,0,0.1,0.1L148,280l2-2.4c-0.1-0.1-0.1-0.3,0-0.4
				c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.3,0.1-0.4,0c0,0,0,0,0,0l-10.2,12.8c0,0,0.1,0.1,0.1,0.1
				c0.1,0.1,0.2,0.2,0.3,0.4l8.8-7.8l1.9-1.6c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4
				c-0.1,0.1-0.3,0.1-0.4,0c0,0,0,0,0,0l-10.5,9.5c0,0,0,0.1,0.1,0.1l13.9-6.1l6.7-2.8c0,0,0-0.1,0-0.1c0-0.2,0.2-0.3,0.4-0.3
				c0.2,0,0.3,0.2,0.2,0.4c0,0.2-0.2,0.3-0.4,0.2c-0.1,0-0.2-0.1-0.2-0.3l-20.5,9.2c0,0,0,0.1,0,0.1l13.4-2.3l3.1-0.4
				c0,0,0-0.1,0-0.1c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.1,0-0.2-0.1-0.2-0.2l-16.4,3
				c0,0.1,0.1,0.3,0.1,0.4l14.8-2.4l7-1c0,0,0,0,0-0.1c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3
				c-0.1,0-0.2-0.2-0.2-0.3l-20.9,3.6l11-0.1l2.4,0.1c0,0,0,0,0-0.1c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4
				c0,0.2-0.2,0.3-0.4,0.3c-0.1,0-0.2-0.1-0.2-0.3l-14.2,0.3c0,0,0,0.1,0,0.1l13.3,1.1l3.1,0.3c0-0.1,0.2-0.3,0.3-0.2
				c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.2c-0.2,0-0.3-0.2-0.2-0.4c0,0,0,0,0,0l-16.4-1.2c0,0.2,0,0.4-0.1,0.6l11.4,2.8
				l2.4,0.7c0-0.1,0.2-0.2,0.3-0.2c0.2,0,0.3,0.2,0.2,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0,0,0,0,0,0l-13.8-3.3
				c0,0.1,0,0.1-0.1,0.2l12.4,7.8l6.1,4c0,0,0-0.1,0.1-0.1c0.2-0.1,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2
				c-0.1-0.1,0-0.2,0.1-0.3l-18.6-11.6c0,0.1,0,0.2-0.1,0.2l9,9.4l2.1,2.3c0,0,0-0.1,0.1-0.1c0.2-0.1,0.3,0,0.4,0.2
				c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2c0-0.1,0-0.2,0.1-0.3l-11.2-11.5c-0.1,0.1-0.1,0.3-0.2,0.4l9.8,10.3l4.8,5.3
				c0,0,0,0,0,0c0.2-0.1,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.4,0-0.4-0.2c-0.1-0.1,0-0.3,0.1-0.4L140,295l6.3,9.1l1.3,2
				c0,0,0,0,0.1-0.1c0.2-0.1,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2c-0.1-0.1,0-0.2,0.1-0.3l-7.8-11
				c0,0-0.1,0.1-0.1,0.1l6.2,10.9l1.5,2.8c0.1-0.1,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2
				c-0.1-0.2,0-0.3,0.2-0.4c0,0,0,0,0,0l-7.8-13.6c-0.2,0.2-0.4,0.3-0.6,0.4l3.8,10.1l0.8,2.3c0.2,0,0.3,0,0.4,0.2
				c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2c-0.1-0.2,0-0.3,0.2-0.4c0,0,0,0,0,0l-4.7-12.4c-0.4,0.2-0.8,0.3-1.2,0.3
				l-4.2,13.3l-2.3,6.9c0,0,0.1,0,0.1,0.1c0.1,0.1,0.1,0.3-0.1,0.4c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4
				c0.1-0.1,0.2-0.1,0.3,0l6.3-20.2c-0.2,0-0.3,0-0.5,0l-6.3,10.3l-1.7,2.6c0,0,0.1,0,0.1,0.1c0.1,0.1,0.1,0.3-0.1,0.4
				c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4c0.1-0.1,0.2-0.1,0.3,0l7.8-13c-0.2,0-0.3-0.1-0.5-0.1l-7,11.3l-3.9,6
				c0,0,0,0,0,0c0.1,0.1,0.1,0.3-0.1,0.4c-0.1,0.1-0.3,0.1-0.4-0.1C124.6,313.6,124.7,313.4,124.8,313.3z"
				/>
			</g>
		</g>
		<g>
			<path
				fill="#D46D85"
				d="M247.9,232.7c-5.4-0.3-3.6,11-1.8,20c0.8,4.3,7.6,15.6,10.3,14.4c1.4-0.6,5-9.7,5.3-15.4
			C262.1,243.4,252.9,233,247.9,232.7z"
			/>
			<path
				fill="#FB879E"
				d="M243.6,233.8c-3.5,1.6-6.6,15.3-0.3,22.9c2.8,3.4,11.6,12.3,13.8,10.4c1.1-0.9,2.1-10.6,2.3-17.8
			C259.7,241.5,250.9,230.5,243.6,233.8z"
			/>
			<path
				fill="#C1232F"
				d="M242.4,246.4c0,0,7.4,11.7,7.9,12.3c1.4,1.6,1.9,1.9,1.9,1.4c-0.9-1.6-7.8-15.9-7.9-16.3
			c0,0,5.1,10.3,6.9,13.7c0.2,0.3,1.5,2.5,1.6,2.5c-0.3-0.8-2.4-6.8-2.4-6.8l0,0c1.5,3.5,2.2,5.7,2.6,6.4c0.3,0.4,0.2-0.4,0.1-0.7
			c-0.3-0.9-2.3-8.1-3.5-14.8c0,0,2.4,11.1,3.8,14.6c0.2,0.4,0.5,0.6,0.5,0.3c-0.4-3.8-1.5-13-1.5-13s1.3,9.3,1.9,12.7
			c0.1,0.3,0.2,0.5,0.3,0.2c0.9-2.3,0.8-8.8,0.8-8.8c0.2,4.8-0.1,7.6-0.3,8.8c1.3-1,2-2.2,2-2.2s-0.5,4.2-3.3,5.1
			c-3.3,1-6.1-3-6.1-3s1.9,1.6,3.1,2C251.9,261,242.7,247.2,242.4,246.4z"
			/>
			<path
				fill="#F2E4E6"
				d="M243.7,253.9c0,0-3.7-5.5-0.6-14.8c0.7-2.1,0.7-2.8,1.2-2.4c-2.9,4.4,3.8,16.8,4,17.1
			c0,0-4.8-9.8-4.1-15.3c0-0.4,0.6-2.1,1-1.3c0.4,0.8,2.6,5.9,2.6,5.9l0,0c-1.1-3.7-1.5-4.2-1.5-5c0-0.5,0.5-0.8,0.7-0.5
			c0.9,0.7,4.3,4.4,7.1,11.7c0,0-2.7-8.7-7.2-12.4c-0.3-0.3,0-0.7,0.3-0.5c4,2.4,8.7,10.6,8.7,10.6s-4.1-7.7-7.5-10.2
			c-0.2-0.2,0-0.7,0.4-0.5c3.1,1.6,7.3,5.4,7.3,5.4c-3.7-3.6-5.5-4.7-6.6-5.7c-1.5-1.3,4.8,1.4,4.8,1.4s-5.6-5.1-9.7-3.7
			c-3.7,1.2-3.9,8.4-3.9,8.4s0.9-3.8,2.1-5C243.8,235.9,239.1,247.1,243.7,253.9z"
			/>
			<path
				fill="#C1232F"
				d="M251.1,261.2c-1.4-3-1.2-9-0.5-9.1c0.8-0.2,5.7,3.4,7.1,6.4c1.4,3,0.5,6.2-1.3,6.9
			C254.5,266.2,252.5,264.2,251.1,261.2z"
			/>
			<path
				fill="#C1232F"
				d="M255.1,259.8c0.8-3.1,6.8-8.6,8.4-8.7c0.5,0-0.5,7.9-1.3,10.9c-0.8,3.1-3.6,6-5.6,5.4
			C254.6,266.8,254.3,262.8,255.1,259.8z"
			/>
			<g>
				<path
					fill="#990066"
					d="M256.5,267.5c-0.3-0.1-0.6-0.3-0.9-0.6l0,0c-1.3-1.4-1.4-4.6-0.7-7.2l0,0c0.5-1.9,2.9-4.7,5.1-6.6l0,0
				c1.4-1.2,2.7-2.1,3.4-2.2l0,0c0.1,0,0.1,0,0.2,0.1l0,0c0.5,0.6-0.6,8-1.3,11l0,0c-0.4,1.7-1.5,3.4-2.7,4.4l0,0
				C258.6,267.3,257.5,267.8,256.5,267.5L256.5,267.5z M255.8,266.8c0.2,0.2,0.5,0.4,0.8,0.5l0,0c0.8,0.3,1.8-0.2,2.8-1l0,0
				c1.2-1,2.2-2.7,2.7-4.3l0,0c0.8-2.8,1.7-10.2,1.4-10.8l0,0c-0.6,0.1-1.9,0.9-3.2,2.1l0,0c-2.2,1.9-4.6,4.7-5.1,6.5l0,0
				C254.5,262.3,254.7,265.5,255.8,266.8L255.8,266.8z"
				/>
				<path
					fill="#822929"
					d="M260,253c1.4-1.2,2.7-2.1,3.4-2.2l0,0c0.1,0,0.2,0,0.3,0.1l0,0c0,0,0,0,0,0l0,0l0,0
				c0.5,0.8-0.6,8.1-1.3,11.2l0,0c-0.3,1.3-1,2.6-1.9,3.6l0,0c-0.3,0.3-0.6,0.7-0.9,0.9l0,0c-1,0.9-2.1,1.4-3.2,1.1l0,0l0-0.1l0-0.1
				l0,0.1l0,0.1c-0.3-0.1-0.5-0.2-0.7-0.4l0,0c-0.1-0.1-0.2-0.1-0.2-0.2l0,0c-1.3-1.5-1.4-4.7-0.7-7.3l0,0c0.3-1.1,1.1-2.4,2.2-3.6
				l0,0C257.9,255,259,253.9,260,253L260,253z M260.4,253.4c-1,0.9-2.1,1.9-2.9,3l0,0c-1,1.2-1.8,2.5-2.1,3.4l0,0
				c-0.7,2.5-0.5,5.7,0.6,6.8l0,0l0,0c0.1,0.1,0.1,0.1,0.2,0.2l0,0c0.2,0.1,0.3,0.2,0.5,0.3l0,0c0.7,0.2,1.7-0.1,2.6-1l0,0
				c0.3-0.3,0.6-0.5,0.8-0.9l0,0c0.8-1,1.4-2.2,1.8-3.4l0,0c0.7-2.6,1.6-9.6,1.5-10.6l0,0C262.8,251.5,261.6,252.3,260.4,253.4
				L260.4,253.4z M255.8,266.8C255.8,266.8,255.8,266.8,255.8,266.8L255.8,266.8L255.8,266.8L255.8,266.8L255.8,266.8z"
				/>
			</g>
			<path
				fill="#C1232F"
				d="M250.9,265.8c-4.6-3.2-6.7-8-6.7-8s8.5,0.2,11.1,2.3c2.6,2.1,3.7,5.1,2.5,6.6
			C256.5,268.2,253.6,267.7,250.9,265.8z"
			/>
			<g>
				<path
					fill="#990066"
					d="M250.8,265.9L250.8,265.9l0.1-0.2c2.6,1.8,5.2,2.2,6.5,1.1l0,0c0.1-0.1,0.2-0.2,0.2-0.3l0,0
				c1-1.2,0.4-3.4-1.4-5.4l0,0c-0.3-0.4-0.7-0.7-1.1-1l0,0c-2.3-1.9-9.6-2.2-10.9-2.3l0,0c0.3,0.6,1.4,2.8,3.4,5l0,0
				c0.9,1,1.9,2,3.2,2.8l0,0L250.8,265.9L250.8,265.9c-1.3-0.9-2.3-1.9-3.2-2.8l0,0c-2.4-2.6-3.6-5.2-3.6-5.2l0,0l-0.1-0.2l0.2,0
				c0,0,8.5,0.2,11.2,2.3l0,0c0.4,0.3,0.8,0.7,1.1,1l0,0c1.8,2,2.5,4.3,1.4,5.7l0,0c-0.1,0.1-0.2,0.2-0.3,0.3l0,0
				C256.1,268.3,253.4,267.7,250.8,265.9L250.8,265.9z"
				/>
				<path
					fill="#822929"
					d="M243.9,257.6l0.2,0v0l0,0c0,0,0,0,0,0l0,0l0,0l0,0c0,0,0,0,0.1,0l0,0c0.1,0,0.2,0,0.3,0l0,0
				c0.2,0,0.6,0,1,0l0,0c0.8,0.1,2,0.1,3.2,0.3l0,0c2.5,0.3,5.3,0.9,6.7,2l0,0c0,0,0,0,0,0l0,0c0.4,0.3,0.8,0.7,1.1,1l0,0
				c1.8,2,2.6,4.4,1.4,5.9l0,0c0,0,0,0,0,0l0,0c-0.1,0.1-0.2,0.2-0.3,0.3l0,0c-1.5,1.3-4.3,0.7-6.9-1.1l0,0l-0.1-0.1l0,0
				c-0.4-0.3-0.8-0.6-1.1-0.8l0,0c-0.8-0.6-1.4-1.3-2-1.9l0,0c-2.4-2.6-3.6-5.2-3.6-5.2l0,0l-0.2-0.4L243.9,257.6L243.9,257.6z
				 M256.1,261.3c-0.3-0.3-0.6-0.7-1-1l0,0c0,0,0,0,0,0l0,0c-2.1-1.7-8.7-2.2-10.5-2.2l0,0c0.4,0.8,1.5,2.7,3.3,4.7l0,0
				c0.6,0.6,1.2,1.3,2,1.9l0,0c0.4,0.3,0.8,0.6,1.2,0.9l0,0c2.5,1.8,5.1,2.2,6.3,1.1l0,0c0.1-0.1,0.2-0.2,0.3-0.3l0,0c0,0,0,0,0,0
				l0,0c0,0,0,0,0,0l0,0C258.4,265.4,257.9,263.2,256.1,261.3L256.1,261.3z"
				/>
			</g>
		</g>
		<g>
			<path
				fill="#BF4968"
				d="M239.2,117.5c-1.2-5.6-13.6-1.3-23.4,2.4c-4.6,1.8-15.5,11.2-13.4,13.8c1.1,1.3,12.6,3.1,19.2,2.1
			C231.2,134.5,240.3,122.8,239.2,117.5z"
			/>
			<path
				fill="#FB879E"
				d="M237.4,114.7c-2.4-3.7-18.7-6.1-26.7,1c-3.6,3.2-12.7,13.1-10.2,15.4c1.2,1.1,12.6,1.6,21,1.4
			C230.7,132.3,242.2,122.2,237.4,114.7z"
			/>
			<path
				fill="#F2E4E6"
				d="M214,115.9c0,0,5.9-4.3,17.1-1.6c2.5,0.6,3.3,0.5,2.9,1.1c-5.5-2.8-19,5-19.3,5.2c0,0,10.8-5.7,17.2-5.3
			c0.4,0,2.6,0.5,1.7,1c-0.9,0.5-6.5,3.1-6.5,3.1l0,0c4.1-1.4,4.6-1.8,5.6-1.9c0.6-0.1,0.9,0.4,0.7,0.7c-0.7,1-4.5,4.8-12.6,8.3
			c0,0,9.7-3.4,13.4-8.4c0.3-0.4,0.9-0.1,0.7,0.3c-2.3,4.4-11.1,9.9-11.1,9.9s8.4-4.9,10.8-8.6c0.2-0.3,0.8,0,0.6,0.4
			c-1.5,3.4-5.2,8.2-5.2,8.2c3.7-4.1,4.7-6.2,5.7-7.4c1.3-1.7-1,5.2-1,5.2s5.1-6.2,3-10.5c-1.9-3.9-10.3-3.7-10.3-3.7
			s4.6,0.8,6.1,1.9C234.9,115,221.2,110.6,214,115.9z"
			/>
			<path
				fill="#C1232F"
				d="M206.5,124.3c3.3-1.7,10.3-1.8,10.5-1.1c0.3,0.9-3.2,6.2-6.5,7.9c-3.3,1.7-7.1,0.9-8.2-1
			C201.2,128.2,203.2,126,206.5,124.3z"
			/>
			<path
				fill="#C1232F"
				d="M208.7,128.4c3.7,0.7,10.9,6.7,11.3,8.4c0.1,0.5-9.2-0.1-12.9-0.8c-3.7-0.7-7.5-3.5-7-5.6
			C200.5,128.3,205.1,127.7,208.7,128.4z"
			/>
			<path
				fill="#AB0000"
				d="M199.9,130.4c0.1-0.4,0.3-0.7,0.5-1l0,0c1.5-1.4,5.2-1.7,8.3-1.2l0,0c2.3,0.4,5.9,2.9,8.4,5.1l0,0
			c1.6,1.4,2.8,2.7,3,3.5l0,0c0,0.1,0,0.1,0,0.2l0,0c-0.7,0.5-9.4-0.1-13-0.8l0,0c-2-0.4-4.1-1.4-5.5-2.6l0,0
			C200.4,132.6,199.7,131.5,199.9,130.4L199.9,130.4z M200.7,129.6c-0.2,0.2-0.4,0.5-0.5,0.8l0,0c-0.2,0.9,0.4,1.9,1.5,2.9l0,0
			c1.4,1.2,3.4,2.2,5.4,2.6l0,0c3.4,0.6,12.1,1.2,12.7,0.9l0,0c-0.2-0.6-1.3-1.9-2.9-3.3l0,0c-2.5-2.2-6.1-4.6-8.3-5l0,0
			C205.7,128,202,128.3,200.7,129.6L200.7,129.6z"
			/>
			<path
				fill="#C1232F"
				d="M201.1,124.3c3-5.1,8.3-7.7,8.3-7.7s1,9.1-1.1,12c-2.1,2.9-5.4,4.2-7.3,3
			C199.2,130.4,199.3,127.3,201.1,124.3z"
			/>
			<path
				fill="#AB0000"
				d="M201,124.2l0.1,0.1l0.1,0.1c-1.7,2.8-1.9,5.7-0.4,6.9l0,0c0.1,0.1,0.2,0.2,0.3,0.2l0,0
			c1.5,1,4,0.2,6.1-1.8l0,0c0.4-0.4,0.7-0.8,1-1.2l0,0c1.9-2.5,1.2-10.4,1.1-11.7l0,0c-0.7,0.4-3,1.7-5.3,3.9l0,0
			c-1,1-2,2.2-2.8,3.6l0,0l-0.1-0.1L201,124.2c0.8-1.4,1.8-2.6,2.9-3.6l0,0c2.7-2.7,5.5-4.1,5.5-4.1l0,0l0.2-0.1l0,0.2
			c0,0,1,9.1-1.2,12.1l0,0c-0.3,0.4-0.7,0.9-1,1.2l0,0c-2.1,2-4.7,2.9-6.4,1.8l0,0c-0.1-0.1-0.2-0.2-0.4-0.3l0,0
			C199,130,199.3,127.1,201,124.2L201,124.2z"
			/>
		</g>
		<g>
			<g>
				<path
					fill="#FB879E"
					d="M63,271.8c-2.4,0.8-2.4-2-2.4-3.1c0-6.7,7.1-26.7,15.5-31.9c4-2.4,21.5-2,22.9,1.5
				c0.7,1.7-6.5,19.3-10.1,22.3C85.7,263.1,68.4,269.9,63,271.8z"
				/>
				<path
					fill="#FCA1B3"
					d="M59.1,267.2c-1.6,2.1,1.1,2.9,2.2,3.3c6.2,2,27.1,1.4,34.5-5.1c3.5-3.1,8.7-20.2,5.8-22.6
				c-1.4-1.2-20,0.3-23.9,2.8C74.4,247.9,62.6,262.5,59.1,267.2z"
				/>
				<path
					fill="#E2617D"
					d="M94.8,241.2c4.2,4.3-4.6,18.2-14.8,25.7c-4.8,3.5-20.8,8.9-21.7,5.4c-0.4-1.8,3.8-16.1,10.4-22.7
				C76.6,241.6,90.9,237.1,94.8,241.2z"
				/>
				<path
					fill="#C1232F"
					d="M78.6,247.4c0,0-9.3,5.9-16,18.4c-1.5,2.8-2.3,3.7-1.4,3.3c1.8-6.2,21-20,21.5-20.4c0,0-14.8,11-19.8,18
				c-0.3,0.5-1.7,2.8-0.5,1.9c1.2-0.9,8.5-6.7,8.5-6.7l0,0c-4.9,4.3-5.7,4.8-6.6,5.8c-0.6,0.6-0.4,1.1,0.1,0.9
				c1.7-0.7,8.6-4.3,18.9-12.7c0,0-11.6,10.1-19.7,13.6c-0.6,0.2-0.8,0.9-0.2,0.7c6.4-2,19.4-11,19.4-11s-11.9,8.5-17.8,10.8
				c-0.4,0.2-0.7,0.9-0.1,0.7c4.7-1.3,12.6-4.8,12.6-4.8c-7.3,3.6-10.2,4.5-12.2,5.4c-2.8,1.2,6.1-0.6,6.1-0.6s-10.6,4.9-13.2,2.2
				c-2.3-2.5,4.9-11.5,4.9-11.5s-3.1,5-3.1,6.8C60,269.9,67.1,254.6,78.6,247.4z"
				/>
			</g>
			<g>
				<path
					fill="#C1232F"
					d="M65.2,268.1c3.7-0.3,12.3,3.7,13.1,5.2c0.3,0.5-9,2.3-12.7,2.6c-3.7,0.3-8.2-1.5-8.3-3.6
				C57.2,270.1,61.5,268.4,65.2,268.1z"
				/>
				<path
					fill="#7C252F"
					d="M78.5,273.2c0,0.1,0,0.2,0,0.2l0,0c-0.6,0.7-9.2,2.3-12.8,2.6l0,0c-2.4,0.2-5.2-0.5-6.9-1.6l0,0
				c-0.9-0.6-1.5-1.3-1.6-2.2l0,0c0-0.4,0.1-0.8,0.4-1.2l0,0c1.1-1.7,4.6-2.9,7.6-3.1l0,0c3.1-0.2,9.1,2.3,11.9,4.1l0,0
				C77.8,272.5,78.3,272.9,78.5,273.2L78.5,273.2z M76.9,272.3c-2.7-1.8-8.8-4.3-11.7-4l0,0c-3,0.2-6.4,1.5-7.4,3l0,0
				c-0.2,0.3-0.3,0.7-0.3,1l0,0c0,0.7,0.6,1.4,1.4,1.9l0,0c1.6,1.1,4.3,1.7,6.7,1.5l0,0c3.4-0.2,11.9-1.9,12.6-2.4l0,0
				C78,273.1,77.6,272.7,76.9,272.3L76.9,272.3z"
				/>
			</g>
			<g>
				<path
					fill="#C1232F"
					d="M56.8,266c1.6-5.6,6.1-9.5,6.1-9.5s3.3,8.5,2,11.8c-1.3,3.3-4.1,5.5-6.3,4.8
				C56.5,272.4,55.8,269.4,56.8,266z"
				/>
				<path
					fill="#7C252F"
					d="M63,256.5c0,0,3.3,8.5,2,11.9l0,0c-0.3,0.7-0.6,1.3-1,1.9l0,0c-1.5,2.2-3.6,3.5-5.5,3l0,0
				c-0.3-0.1-0.5-0.2-0.7-0.3l0,0c-1.7-1.1-2.1-3.9-1.2-6.9l0,0l0.1,0l0.1,0c-0.9,3-0.4,5.6,1.1,6.6l0,0c0.2,0.1,0.4,0.2,0.7,0.3
				l0,0c1.6,0.5,3.7-0.7,5.1-2.8l0,0c0.4-0.6,0.7-1.2,0.9-1.8l0,0c1.2-2.9-1.4-10.2-1.9-11.5l0,0c-0.5,0.5-2,1.9-3.5,4.1l0,0
				c-1,1.4-1.9,3.2-2.4,5.1l0,0l-0.1,0l-0.1,0c0.6-2,1.5-3.8,2.5-5.2l0,0c1.8-2.7,3.7-4.4,3.7-4.4l0,0l0.2-0.1L63,256.5L63,256.5z"
				/>
			</g>
		</g>
		<g>
			<radialGradient
				id="SVGID_15_"
				cx="3778.1423"
				cy="-135.2326"
				r="41.5466"
				gradientTransform="matrix(4.080000e-002 -0.9979 0.9973 4.300000e-002 105.3865 4261.5483)"
				gradientUnits="userSpaceOnUse"
			>
				<stop offset="0" style="stop-color:#EDEDED" />
				<stop offset="1" style="stop-color:#E05A6A" />
			</radialGradient>
			<path
				fill="url(#SVGID_15_)"
				d="M118.3,479.5c-5,0.2-16.7-13.5-14-25.6c1.2-5.4,5.9-20.3,9.6-19.4c1.8,0.4,8.7,10.8,13.2,18.7
			C132.1,461.9,128.5,479.1,118.3,479.5z"
			/>
			<g>
				<radialGradient
					id="SVGID_16_"
					cx="3866.3994"
					cy="-120.8933"
					r="39.4941"
					gradientTransform="matrix(4.080000e-002 -0.9979 0.9973 4.300000e-002 105.3865 4261.5483)"
					gradientUnits="userSpaceOnUse"
				>
					<stop offset="0" style="stop-color:#EDEDED" />
					<stop offset="1" style="stop-color:#FB879E" />
				</radialGradient>
				<path
					fill="url(#SVGID_16_)"
					d="M143.4,400.3c3.4,3.8,0.3,22.4-10.8,28.6c-5,2.8-19.5,9.2-21.2,5.6c-0.8-1.8,2.7-14.2,5.9-23.2
				C120.8,401.4,136.5,392.5,143.4,400.3z"
				/>
				<path
					fill="#F4A8B0"
					d="M108.9,413.8c0,0-3.2-7.8-15.9-10.9c-2.9-0.7-3.6-1.2-3.5-0.4c7.1-0.1,15.6,15.6,15.8,16.1
				c0,0-7.1-12-13.7-15c-0.4-0.2-2.8-0.9-2.3,0.1c0.5,1,4.5,6.8,4.5,6.8l0,0c-3.2-3.7-3.4-4.5-4.3-5.1c-0.5-0.4-1.2,0-1.2,0.4
				c0.1,1.5,1.5,7.6,7.3,15.7c0,0-7.5-8.9-8-16.3c0-0.5-0.8-0.5-0.8,0c-0.4,6,4.9,16.7,4.9,16.7s-5.3-9.7-5.4-15.2
				c0-0.4-0.8-0.5-0.9,0.1c-0.6,4.5,0.2,11.6,0.2,11.6c-1.1-6.4-0.9-9.2-1.1-11c-0.3-2.5-2.1,6.1-2.1,6.1s-1.3-9.5,3.4-13
				c4.2-3.2,12.3,1.5,12.3,1.5s-4.9-1.6-7.1-1.2C88.9,401.4,105,404.1,108.9,413.8z"
				/>
				<path
					fill="#C51770"
					d="M108.7,433.2c-1,1.5-0.6,3.5,0.9,4.5c1.5,1,3.5,0.7,4.5-0.8c1-1.5,0.6-3.5-0.9-4.5
				C111.7,431.4,109.6,431.8,108.7,433.2z"
				/>

				<radialGradient
					id="SVGID_17_"
					cx="2645.3486"
					cy="5226.4204"
					r="45.4729"
					gradientTransform="matrix(0.4606 -0.8874 -0.8872 -0.461 3589.4951 5170.0229)"
					gradientUnits="userSpaceOnUse"
				>
					<stop offset="0" style="stop-color:#FFFFFF" />
					<stop offset="1" style="stop-color:#FB879E" />
				</radialGradient>
				<path
					fill="url(#SVGID_17_)"
					d="M156.1,417.6c-4.3,3.1-22.5-1.2-27.2-12.6c-2.1-5.1-9-19.2-5.2-20.7c1.9-0.7,16.2,3,24.8,6.7
				C158,395.2,164.8,411.4,156.1,417.6z"
				/>
				<g>
					<radialGradient
						id="SVGID_18_"
						cx="3772.1052"
						cy="4268.4844"
						r="109.9498"
						gradientTransform="matrix(-0.9611 0.2763 -0.2763 -0.9611 4987.1084 3431.1394)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#F4D4D7" />
						<stop offset="0.7198" style="stop-color:#E05A6A" />
					</radialGradient>
					<path
						fill="url(#SVGID_18_)"
						d="M164.5,369.6c1.4,4.9-9.3,20.4-21.9,21.2c-5.7,0.4-20.2-1.5-20.3-5.4c0-1.9,7.2-10.2,13.9-17
					C143.6,361,161.6,359.6,164.5,369.6z"
					/>

					<radialGradient
						id="SVGID_19_"
						cx="2624.3184"
						cy="5276.7896"
						r="18.8764"
						gradientTransform="matrix(0.4606 -0.8874 -0.8872 -0.461 3589.4951 5170.0229)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#FDD0D9" />
						<stop offset="1" style="stop-color:#FB879E" />
					</radialGradient>
					<path
						fill="url(#SVGID_19_)"
						d="M108.1,430.5c-4.6-2-9.4-19.3-1.8-29.1c3.4-4.4,14.1-18,17.1-15.6c1.5,1.2,3.1,15.6,3.9,24.7
					C128.1,420.5,117.5,434.5,108.1,430.5z"
					/>
					<path
						fill="#FB879E"
						d="M79.8,384.6c1.1-5.2,18-14.5,29.4-9.5c5.2,2.3,16.4,7.2,14.6,10.9c-0.9,1.8-10.6,9.5-19.8,12.7
					C94,402.2,77.5,395.1,79.8,384.6z"
					/>

					<radialGradient
						id="SVGID_20_"
						cx="2688.9402"
						cy="5317.5576"
						r="38.2323"
						gradientTransform="matrix(0.4606 -0.8874 -0.8872 -0.461 3589.4951 5170.0229)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#FFFFFF" />
						<stop offset="1" style="stop-color:#FB879E" />
					</radialGradient>
					<path
						fill="url(#SVGID_20_)"
						d="M113.3,345c5.2-0.5,18.5,12.5,16.5,24.9c-0.9,5.6-3.2,16.6-7.2,16c-1.3-2.5-11.4-6-16.8-13.7
					C100,363.8,102.7,346.1,113.3,345z"
					/>
				</g>
				<g>
					<path
						fill="#FEEDF0"
						d="M144.9,387.7c0,0,8.4-1.4,14.8-12.9c1.4-2.6,2.1-3.2,1.3-3.3c-1.8,6.8-19.4,11.6-19.9,11.8
					c0,0,13.5-4.3,18.2-9.9c0.3-0.4,1.6-2.5,0.5-2.2c-1.1,0.3-7.8,2.9-7.8,2.9v0c4.5-2.2,5.3-2.4,6.1-3c0.5-0.4,0.4-1.1-0.1-1.2
					c-1.5-0.2-7.8-0.2-17.2,3.7c0,0,10.6-5.3,18-4.3c0.5,0.1,0.7-0.7,0.2-0.8c-5.7-1.7-17.5,1.2-17.5,1.2s10.9-3,16.2-2
					c0.4,0.1,0.7-0.7,0.1-0.9c-4.2-1.5-11.4-2.2-11.4-2.2c6.6,0.3,9.2,1,11,1.3c2.5,0.3-5.4-3.3-5.4-3.3s9.6,0.8,11.7,6
					c1.9,4.7-4.8,11.5-4.8,11.5s2.9-4.4,3.1-6.6C162.2,371.2,155.3,386,144.9,387.7z"
					/>
					<path
						fill="#FEEDF0"
						d="M132.4,406.1c0,0,4,7.3,17,9.1c2.9,0.4,3.7,0.8,3.6,0.1c-7.1,0.7-17.1-13.7-17.4-14.1
					c0,0,8.3,10.9,15.2,13.2c0.4,0.2,2.9,0.6,2.2-0.3c-0.6-0.9-5.2-6.2-5.2-6.2l0,0c3.5,3.3,3.9,4,4.8,4.5c0.6,0.3,1.2-0.1,1.1-0.5
					c-0.2-1.5-2.2-7.3-8.9-14.6c0,0,8.4,7.9,9.7,15.1c0.1,0.5,0.9,0.4,0.8-0.1c-0.2-5.9-6.6-15.8-6.6-15.8s6.2,9,6.9,14.2
					c0.1,0.4,0.8,0.4,0.9-0.2c0.2-4.4-1.4-11.3-1.4-11.3c1.7,6.2,1.8,8.9,2.2,10.6c0.5,2.4,1.5-6.1,1.5-6.1s2.2,9.1-2.2,12.9
					c-3.9,3.5-12.5-0.3-12.5-0.3s5.1,1.1,7.3,0.5C153.7,416.2,137.2,415.2,132.4,406.1z"
					/>
				</g>
				<path
					fill="#FFFFFF"
					d="M99.9,367.4c0.1,0.1,0.1,0.3-0.1,0.4l20,15l-9-9.3l-1.9-2.1c0,0,0,0.1-0.1,0.1c-0.2,0.1-0.4,0.1-0.5-0.1
				c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.1,0.1,0.3,0,0.4l12,12.2l0.2,0.1L110.9,371l-2.2-2.9
				c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5c0,0,0,0,0,0l13.3,16.2
				l0.1-0.7l-7.4-12.9l-1.3-2.5c-0.2,0.1-0.4,0-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5
				c0,0,0,0,0,0l8.8,15.1l2.7-18.5l1.4-8.4c0,0-0.1,0-0.1,0c-0.1-0.1-0.2-0.4,0-0.5c0.1-0.2,0.4-0.2,0.5,0c0.1,0.1,0.2,0.4,0,0.5
				c-0.1,0.1-0.3,0.1-0.4,0.1l-3.7,26.5l6.2-15.2l1.5-3.4c0,0-0.1,0-0.1-0.1c-0.1-0.1-0.2-0.4,0-0.5c0.1-0.1,0.4-0.2,0.5,0
				c0.2,0.1,0.2,0.4,0,0.5c-0.1,0.1-0.2,0.1-0.4,0.1l-7.8,19.5l0.2,0.4l0.4-0.7l7.1-17.1l3.4-7.7c0,0,0,0-0.1,0
				c-0.1-0.1-0.2-0.4,0-0.5c0.1-0.2,0.4-0.2,0.5,0c0.1,0.1,0.2,0.4,0,0.5c-0.1,0.1-0.3,0.1-0.4,0l-9.5,23.1l6.7-11.1l1.5-2.3
				c0,0-0.1,0-0.1,0c-0.1-0.1-0.2-0.4,0-0.5c0.1-0.1,0.4-0.2,0.5,0c0.1,0.1,0.2,0.4,0,0.5c-0.1,0.1-0.3,0.1-0.4,0.1l-8.8,14.7
				l-0.1,0.2l9.8-13.1l2.3-2.9c-0.1-0.1-0.1-0.3,0-0.5c0.1-0.1,0.4-0.2,0.5,0c0.1,0.1,0.2,0.4,0,0.5c-0.1,0.1-0.4,0.2-0.5,0
				c0,0,0,0,0,0L123,384.5l-0.1,0.1l0.2,0.3l0,0l0.1-0.1l-0.1-0.2l0.4-0.1l11-10.7l2.1-1.9c-0.1-0.1-0.1-0.3,0-0.5
				c0.1-0.1,0.4-0.2,0.5,0c0.1,0.1,0.2,0.4,0,0.5c-0.1,0.1-0.4,0.2-0.5,0c0,0,0,0,0,0l-12.7,12.5l19-5.8l8.2-2.3c0,0,0-0.1,0-0.1
				c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.1,0-0.2-0.2-0.2-0.3l-25.6,8l16.3-0.9l3.7-0.1
				c0-0.1,0-0.1,0-0.2c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.1,0-0.2-0.2-0.2-0.3l-21.2,1.3
				l-0.9,0.3l1.7,0.2l18.5-0.9l8.4-0.2c0,0,0,0,0-0.1c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2
				c-0.2-0.1-0.2-0.2-0.2-0.4l-24.9,1.3l12.9,1.3l2.8,0.4c0,0,0-0.1,0-0.1c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5
				c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2,0-0.2-0.2-0.2-0.3l-17.1-1.7l-0.3,0l16.1,3.2l3.6,0.8c0.1-0.2,0.3-0.3,0.4-0.2
				c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5c0,0,0,0,0,0l-20.8-4l-0.9,0l15.6,5.8l2.6,1.1
				c0.1-0.2,0.2-0.3,0.4-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5c0,0,0,0,0,0l-18.2-6.6
				l-0.1-0.2l-0.1,0l-0.1,0.2l-0.2-0.1l0,0.6l0.5,0.5l-0.1-0.1l0.1-0.2l-0.3-0.2l0.1-0.3l17.6,11.1l7.2,4.7c0,0,0-0.1,0.1-0.1
				c0.2-0.1,0.4,0,0.5,0.2c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.1,0-0.3,0.1-0.4l-22.8-14.2l11.4,11.8l2.5,2.7
				c0,0,0.1-0.1,0.1-0.1c0.2-0.1,0.4,0,0.5,0.2c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.1,0-0.3,0.1-0.4l-14.8-15.2
				l-0.8-0.5l1,1.4l12.8,13.5l5.6,6.2c0,0,0,0,0,0c0.2-0.1,0.4,0,0.5,0.2c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4,0-0.5-0.2
				c-0.1-0.2,0-0.3,0.1-0.4l-17.2-18l7.4,10.6l1.5,2.4c0,0,0-0.1,0.1-0.1c0.2-0.1,0.4,0,0.5,0.2c0.1,0.2,0,0.4-0.2,0.5
				c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.1,0-0.3,0.1-0.4l-9.9-14l-0.2-0.2l8.1,14.3l1.7,3.2c0.2-0.1,0.4,0,0.5,0.2c0.1,0.2,0,0.4-0.2,0.5
				c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0,0,0,0,0,0l-10.6-18.4l-0.7-0.7l5.8,15.5l0.9,2.7c0.2,0,0.4,0,0.4,0.2
				c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0,0,0,0,0,0l-6.7-17.7l-0.4,19.1l-0.4,8.5
				c0,0,0.1,0,0.1,0c0.2,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.4,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.1,0.2-0.1,0.4-0.1l0.5-26.8
				l-4.3,15.8l-1.1,3.5c0.1,0,0.1,0,0.2,0c0.2,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.4,0.2-0.5,0.1c-0.2-0.1-0.2-0.4-0.1-0.5
				c0.1-0.1,0.2-0.1,0.3-0.1l5.5-20.5l0-0.9l0,0l-0.7,1.5l-5,17.8l-2.4,8c0,0,0,0,0.1,0c0.2,0.1,0.2,0.3,0.1,0.5
				c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.4-0.1-0.5c0.1-0.1,0.3-0.2,0.4-0.1l6.7-24l-5.3,11.8l-1.3,2.5c0,0,0.1,0,0.1,0
				c0.2,0.1,0.2,0.4,0.1,0.5c-0.1,0.2-0.4,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.1,0.3-0.1,0.4-0.1l7-15.6l0.1-0.2l-8.1,14.2
				l-1.9,3.1c0.1,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.4,0.2-0.5,0.1c-0.2-0.1-0.2-0.4-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0,0,0,0,0,0
				l10.4-18.5l0-0.1l-0.8,0.5l-9.3,11.6l-1.9,2.2c0.1,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.4-0.1-0.5
				c0.1-0.2,0.3-0.2,0.5-0.1c0,0,0,0,0,0l10.6-13.3l-15.2,10l-7.3,4.5c0,0,0,0.1,0,0.1c0,0.2-0.2,0.4-0.4,0.4
				c-0.2,0-0.4-0.2-0.4-0.4c0-0.2,0.2-0.4,0.4-0.4c0.1,0,0.3,0.1,0.3,0.2l22.3-14.7l-15.5,5.3l-3.5,1.1c0,0.1,0.1,0.1,0.1,0.2
				c0,0.2-0.2,0.4-0.4,0.4c-0.2,0-0.4-0.2-0.4-0.4c0-0.2,0.2-0.4,0.4-0.4c0.1,0,0.2,0.1,0.3,0.2l19.8-7l0.4-0.5l-1.1,0.2l-17.5,5.9
				l-8,2.5c0,0,0,0,0,0.1c0,0.2-0.2,0.4-0.4,0.4c-0.2,0-0.4-0.2-0.4-0.4c0-0.2,0.2-0.4,0.4-0.4c0.2,0,0.3,0.1,0.3,0.3l23.6-8.1
				l-12.7,2.3L103,389c0,0,0,0,0,0.1c0,0.2-0.2,0.4-0.4,0.4c-0.2,0-0.4-0.2-0.4-0.4c0-0.2,0.2-0.4,0.4-0.4c0.2,0,0.3,0.1,0.3,0.3
				l16.8-3.1l0.2-0.1l-16.3,1.3l-3.7,0.2c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.4-0.2-0.4-0.4c0-0.2,0.2-0.4,0.4-0.4
				c0.2,0,0.4,0.2,0.4,0.4c0,0,0,0,0,0l21.1-1.9l0.2-0.1l-0.8-0.3l-15.1-1.1l-2.8-0.3c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.4-0.2-0.4-0.4
				c0-0.2,0.2-0.4,0.4-0.4c0.2,0,0.4,0.2,0.4,0.4c0,0,0,0,0,0l17.3,1.2l-16.6-7l-7.8-3.5c0,0,0,0.1-0.1,0.1
				c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.1,0,0.3,0,0.4l24.8,10.3l-13.1-9.8l-2.9-2.3
				c0,0,0,0.1-0.1,0.1c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.1,0.1,0.3,0,0.4l16.8,12.4
				l0.6,0l-0.7-0.7L106.4,373l-6.6-5.2c0,0,0,0,0,0.1c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5
				C99.6,367.1,99.8,367.2,99.9,367.4z M122.3,384.1l-0.1,0.5l0.1,0.1l0.2-0.3L122.3,384.1z M122.5,385.5L122.5,385.5L122.5,385.5
				L122.5,385.5L122.5,385.5z M122.8,384.9L122.8,384.9l0.1,0.2L122.8,384.9z M122.6,385.3l0,0.1L122.6,385.3L122.6,385.3z
				 M123.7,385.1L123.7,385.1l-0.2-0.2l-0.2,0.2L123.7,385.1z M121.7,386l0.4-0.2l0,0l-0.2,0L121.7,386z M121.8,385.2L121.8,385.2
				l-0.2-0.1L121.8,385.2z"
				/>

				<radialGradient
					id="SVGID_21_"
					cx="3522.3535"
					cy="-251.1279"
					r="44.3592"
					gradientTransform="matrix(0.15 -0.9872 0.9869 0.1523 -121.4199 3964.1013)"
					gradientUnits="userSpaceOnUse"
				>
					<stop offset="0" style="stop-color:#EDEDED" />
					<stop offset="1" style="stop-color:#FB879E" />
				</radialGradient>
				<path
					fill="url(#SVGID_21_)"
					d="M156.5,450.1c-2.6,4.6-20.8,8.4-29.9,0.1c-4.1-3.7-14.5-15.2-11.7-18.1
				c1.4-1.4,14.1-2.6,23.5-2.8C148.7,429,161.7,440.7,156.5,450.1z"
				/>
				<path
					fill="#FEEDF0"
					d="M130.3,449.8c0,0,6.7,4.9,19.2,1c2.8-0.9,3.7-0.8,3.3-1.5c-6.1,3.7-21.3-5.1-21.7-5.4
				c0,0,12.1,6.4,19.3,5.5c0.5-0.1,2.9-0.7,1.9-1.3c-1-0.6-7.3-3.4-7.3-3.4l0,0c4.6,1.5,5.2,2,6.3,2.1c0.6,0.1,1.1-0.6,0.8-1
				c-0.8-1.2-5.1-5.6-14.2-9.4c0,0,10.9,3.6,15.1,9.5c0.3,0.4,1,0,0.7-0.4c-2.6-5.3-12.6-11.5-12.6-11.5s9.5,5.5,12.3,9.9
				c0.2,0.3,0.9,0,0.7-0.6c-1.7-4.1-6-9.6-6-9.6c4.2,4.8,5.4,7.3,6.5,8.7c1.5,2-1.2-6.2-1.2-6.2s5.8,7.3,3.6,12.6
				c-2.1,4.8-11.4,5-11.4,5s5.1-1.2,6.8-2.7C153.8,449.8,138.5,455.9,130.3,449.8z"
				/>
				<path
					fill="#FEEDF0"
					d="M106.4,456.8c0,0-1,8.3,8.2,17c2.1,2,2.4,2.8,2.7,2c-5.9-3.3-5.7-21-5.7-21.5c0,0,0.4,13.7,4.4,19.5
				c0.3,0.4,1.9,2.1,1.9,1c0-1.1-0.6-8-0.6-8l0,0c0.9,4.7,0.8,5.5,1.2,6.5c0.2,0.6,1,0.6,1.2,0.2c0.6-1.3,2.3-7.3,1.2-17.1
				c0,0,2.1,11.3-0.9,17.9c-0.2,0.5,0.4,0.8,0.7,0.4c3.1-5,3.6-16.8,3.6-16.8s-0.1,10.9-2.5,15.7c-0.2,0.3,0.4,0.8,0.8,0.3
				c2.6-3.6,5.2-10.1,5.2-10.1c-2,6.1-3.5,8.4-4.2,10c-1,2.3,4.6-4.2,4.6-4.2s-3.3,8.8-8.8,9.6c-5,0.7-9.5-7.2-9.5-7.2
				s3.3,3.8,5.4,4.4C117.2,477,105.1,467,106.4,456.8z"
				/>

				<radialGradient
					id="SVGID_22_"
					cx="3808.2744"
					cy="-189.9377"
					r="24.0661"
					gradientTransform="matrix(4.080000e-002 -0.9979 0.9973 4.300000e-002 105.3865 4261.5483)"
					gradientUnits="userSpaceOnUse"
				>
					<stop offset="0" style="stop-color:#EDEDED" />
					<stop offset="1" style="stop-color:#E2617D" />
				</radialGradient>
				<path
					fill="url(#SVGID_22_)"
					d="M73.2,449.9c-1.2-5.1,10.1-20.8,22.6-21.1c5.6-0.2,19.7,1,19.6,5.1c-0.1,2-7.3,11.7-14.3,18.4
				C93.5,459.8,75.6,460.5,73.2,449.9z"
				/>
				<path
					fill="#FEEDF0"
					d="M93.6,431.7c0,0-8.4,1.1-15.2,12.8c-1.5,2.6-2.3,3.2-1.5,3.4c2.1-7,19.6-11.3,20.1-11.4
				c0,0-13.6,3.9-18.4,9.6c-0.3,0.4-1.7,2.5-0.6,2.2c1.1-0.3,7.8-2.6,7.8-2.6l0,0c-4.5,2.1-5.3,2.2-6.2,2.9c-0.5,0.4-0.4,1.2,0,1.3
				c1.5,0.3,7.7,0.5,17.2-3.1c0,0-10.8,5-18,3.7c-0.5-0.1-0.8,0.6-0.3,0.8c5.6,2,17.4-0.5,17.4-0.5s-10.9,2.7-16.1,1.4
				c-0.4-0.1-0.7,0.7-0.1,0.9c4.1,1.8,11.1,2.8,11.1,2.8c-6.5-0.6-9-1.5-10.8-1.8c-2.5-0.4,5.2,3.7,5.2,3.7s-9.4-1.2-11.3-6.7
				c-1.7-5,5.2-11.7,5.2-11.7s-3.1,4.4-3.3,6.7C75.7,448.2,83.2,433,93.6,431.7z"
				/>

				<radialGradient
					id="SVGID_23_"
					cx="3862.7095"
					cy="-183.8433"
					r="28.6318"
					gradientTransform="matrix(4.080000e-002 -0.9979 0.9973 4.300000e-002 105.3865 4261.5483)"
					gradientUnits="userSpaceOnUse"
				>
					<stop offset="0" style="stop-color:#EDEDED" />
					<stop offset="1" style="stop-color:#E2617D" />
				</radialGradient>
				<path
					fill="url(#SVGID_23_)"
					d="M86.7,399.8c4.5-2.7,22,3.4,25.5,15.5c1.6,5.4,4.6,21,0.7,22.1c-1.9,0.5-13.3-5.1-21.4-9.8
				C82.6,422.5,77.5,405.3,86.7,399.8z"
				/>
				<path
					fill="#FFFFFF"
					d="M84.4,428.5c0.1,0.1,0.2,0.3,0.1,0.4l24.4,5.1l-12.1-4.6l-2.6-1.1c0,0,0,0.1,0,0.1
				c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.1,0.1,0.2,0.2,0.1,0.4l16.1,6l0.2,0l-14.7-7.2
				l-3.2-1.7c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.2,0.1,0.2,0.3,0.1,0.5c0,0,0,0,0,0
				l18.9,9l-0.2-0.6l-12.2-8.6l-2.3-1.7c-0.1,0.1-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1
				c0.2,0.1,0.2,0.3,0.1,0.5c0,0,0,0,0,0l14.4,10l-5.5-17.9l-2.3-8.2c0,0-0.1,0-0.1,0c-0.2-0.1-0.3-0.3-0.2-0.5
				c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c0,0.1-0.2,0.2-0.3,0.2l7.9,25.6l-0.9-16.4l-0.1-3.7c-0.1,0-0.1,0-0.2,0
				c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c0,0.1-0.2,0.2-0.3,0.2l1.3,20.9l0.4,0.3l0.1-0.8
				l-0.9-18.5l-0.2-8.4c0,0,0,0-0.1,0c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5
				c-0.1,0.2-0.2,0.2-0.4,0.2l1.2,24.9l1.3-12.9l0.4-2.8c0,0-0.1,0-0.1,0c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2
				c0.2,0.1,0.3,0.3,0.2,0.5c0,0.2-0.2,0.2-0.3,0.2l-1.7,17.1l0,0.2l3.2-16l0.8-3.6c-0.2-0.1-0.3-0.3-0.2-0.4
				c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c0,0,0,0,0,0l-4,20.8l0,0.1l0.3,0.2l0,0l0-0.1
				l-0.2-0.1l0.3-0.3l5.4-14.4l1.1-2.6c-0.2-0.1-0.3-0.3-0.2-0.4c0.1-0.2,0.3-0.3,0.5-0.2c0.2,0.1,0.3,0.3,0.2,0.5
				c-0.1,0.2-0.3,0.3-0.5,0.2c0,0,0,0,0,0l-6.1,16.7l14.7-13.4l6.4-5.6c0,0-0.1-0.1-0.1-0.1c0-0.2,0.1-0.4,0.3-0.4
				c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4c-0.1,0-0.3-0.1-0.3-0.2l-19.7,18.1l14.4-7.8l3.3-1.6c0,0-0.1-0.1-0.1-0.1
				c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4c-0.1,0-0.2-0.1-0.3-0.2l-18.6,10.2l-0.7,0.6l1.6-0.6
				l16.3-8.7l7.5-3.8c0,0,0,0,0-0.1c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.3-0.1-0.4-0.2
				l-22,11.8l12.2-4.3l2.7-0.8c0,0,0,0,0-0.1c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4
				c-0.2,0-0.3-0.1-0.4-0.2l-16.1,5.7l-0.2,0.1l15.9-3.9l3.6-0.8c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3
				c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.4-0.1-0.4-0.3c0,0,0,0,0,0l-20.5,5.2l-0.8,0.4l16.5-1.4l2.9-0.1c0-0.2,0.1-0.3,0.3-0.4
				c0.2,0,0.4,0.1,0.4,0.3c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.4-0.1-0.4-0.3c0,0,0,0,0,0l-19.3,1.7l-0.1-0.2l-0.1,0.1l0,0.2l-0.2,0
				l0.3,0.6l0.6,0.2l-0.1-0.1l0-0.2l-0.3,0l0-0.3l20.7,2.5l8.5,1.2c0,0,0-0.1,0-0.1c0.1-0.2,0.4-0.2,0.5,0c0.2,0.1,0.2,0.4,0,0.5
				c-0.1,0.2-0.4,0.2-0.5,0c-0.1-0.1-0.1-0.2-0.1-0.4l-26.6-3.2l15.3,5.9l3.4,1.4c0-0.1,0-0.1,0.1-0.2c0.1-0.1,0.4-0.2,0.5,0
				c0.1,0.1,0.2,0.4,0,0.5c-0.1,0.1-0.4,0.2-0.5,0c-0.1-0.1-0.1-0.2-0.1-0.4l-19.9-7.5l-0.9-0.1l1.5,0.8l17.2,6.8l7.7,3.2
				c0,0,0,0,0-0.1c0.1-0.1,0.4-0.2,0.5,0c0.1,0.1,0.2,0.4,0,0.5c-0.1,0.1-0.4,0.2-0.5,0c-0.1-0.1-0.1-0.3-0.1-0.4l-23.3-9l11.2,6.5
				l2.4,1.5c0,0,0-0.1,0-0.1c0.1-0.1,0.4-0.2,0.5,0c0.2,0.1,0.2,0.4,0,0.5c-0.1,0.2-0.4,0.2-0.5,0c-0.1-0.1-0.1-0.3-0.1-0.4
				l-14.9-8.5l-0.2-0.1l13.4,9.5l2.9,2.2c0.1-0.1,0.3-0.1,0.5,0c0.2,0.1,0.2,0.4,0,0.5c-0.1,0.2-0.4,0.2-0.5,0
				c-0.1-0.1-0.2-0.4,0-0.5c0,0,0,0,0,0l-17.4-12.2l-0.9-0.3l11.9,11.6l2,2.1c0.1-0.1,0.3-0.1,0.5,0c0.2,0.1,0.2,0.4,0,0.5
				c-0.1,0.2-0.4,0.2-0.5,0c-0.2-0.1-0.2-0.4,0-0.5c0,0,0,0,0,0l-13.6-13.2l7.7,17.5l3.3,7.9c0,0,0.1,0,0.1,0c0.2,0,0.3,0.2,0.3,0.4
				c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.1,0.2-0.2,0.3-0.3l-10.9-24.5l2.8,16.1l0.5,3.7c0,0,0.1,0,0.1,0
				c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.1,0.1-0.2,0.3-0.3l-3.8-20.9l-0.4-0.9l0,0l0,1.7
				l3,18.3l1.2,8.3c0,0,0,0,0.1,0c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3
				l-4.2-24.6l0.2,12.9l-0.1,2.8c0,0,0.1,0,0.1,0c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4
				c0-0.2,0.2-0.2,0.3-0.3l-0.3-17.2l0-0.2l-1.3,16.3l-0.4,3.6c0.2,0.1,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3
				c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3c0,0,0,0,0,0l1.5-21.1l0-0.2l-0.5,0.9l-3.5,14.5l-0.8,2.8c0.2,0.1,0.3,0.2,0.3,0.4
				c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3c0,0,0,0,0,0l3.9-16.6l-9.5,15.5l-4.6,7.2
				c0,0,0.1,0,0.1,0.1c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0.1-0.1,0.3,0,0.4,0.1l13.9-22.9
				l-11.7,11.4l-2.7,2.5c0,0,0.1,0.1,0.1,0.1c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5
				c0.1-0.1,0.3,0,0.4,0.1l14.9-14.8l0.1-0.6l-0.9,0.6l-13.3,12.8l-6.1,5.7c0,0,0,0,0.1,0c0.1,0.2,0,0.4-0.2,0.5
				c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0.2-0.1,0.3,0,0.4,0.1l17.9-17.4l-10.5,7.5l-2.3,1.5c0,0,0.1,0,0.1,0.1
				c0.1,0.2,0,0.4-0.2,0.5c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0.1-0.1,0.3,0,0.4,0.1l13.9-10l0.2-0.2l-14.2,8.2
				l-3.2,1.7c0.1,0.2,0,0.4-0.2,0.4c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0.2-0.1,0.4,0,0.5,0.2c0,0,0,0,0,0l18.3-10.7
				l0.2-0.2l-0.8,0L96.5,441l-2.7,0.9c0.1,0.2,0,0.4-0.2,0.4c-0.2,0.1-0.4,0-0.5-0.2c-0.1-0.2,0-0.4,0.2-0.5c0.2-0.1,0.4,0,0.5,0.2
				c0,0,0,0,0,0l16.1-6.2l-18,0.8l-8.5,0.2c0,0,0,0.1,0,0.1c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5
				c0.1-0.2,0.3-0.2,0.5-0.1c0.1,0.1,0.2,0.2,0.1,0.4l26.8-1.2l-16-3.3l-3.6-0.9c0,0,0,0.1,0,0.2c-0.1,0.2-0.3,0.2-0.5,0.1
				c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.1,0.1,0.2,0.2,0.1,0.3l20.5,4.1l0.6-0.2l-0.9-0.3l-18.1-3.9l-8.1-1.9
				c0,0,0,0,0,0.1c-0.1,0.2-0.3,0.2-0.5,0.1c-0.2-0.1-0.2-0.3-0.1-0.5C84,428.4,84.2,428.3,84.4,428.5z M111.7,434.1l0.2,0.5l0.1,0
				l0-0.3L111.7,434.1z M112.5,435.3L112.5,435.3L112.5,435.3L112.5,435.3L112.5,435.3z M112.5,434.6L112.5,434.6l0.2,0.1
				L112.5,434.6z M112.5,435l0,0.1L112.5,435L112.5,435z M113.3,434.4L113.3,434.4l-0.3-0.1l-0.1,0.3L113.3,434.4z M111.9,436.1
				l0.2-0.4l0,0l-0.1,0.1L111.9,436.1z M111.7,435.3L111.7,435.3l-0.2,0L111.7,435.3z"
				/>
				<g>
					<g>
						<path
							fill="#E2617D"
							d="M97,338.1L97,338.1L97,338.1L97,338.1L97,338.1z"
						/>
					</g>
				</g>
				<path
					fill="#E05A6A"
					d="M133.4,362.3c0.1,0.1,0,0.3-0.1,0.4c-0.1,0.1-0.2,0-0.3,0l-10.1,20.2c0,0,0.1,0,0.1,0l8.9-10.4l2.1-2.3
				c0,0-0.1,0-0.1-0.1c-0.1-0.2,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.1c0.1,0.2,0,0.3-0.1,0.4c-0.1,0.1-0.2,0-0.3,0l-10.7,12.7
				c0.2,0,0.3,0.1,0.5,0.1l9.7-11.1l4.8-5.3c0,0,0,0,0,0c-0.1-0.1,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.1c0.1,0.2,0,0.3-0.1,0.4
				c-0.1,0.1-0.3,0-0.4-0.1l-13.9,16.1l8.4-7.1l1.9-1.5c0,0,0,0-0.1,0c-0.1-0.2,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.1
				c0.1,0.2,0,0.3-0.1,0.4c-0.1,0.1-0.3,0-0.3-0.1l-10.6,9c0,0,0.1,0,0.1,0.1l10.6-7.4l2.6-1.7c-0.1-0.1,0-0.3,0.1-0.4
				c0.1-0.1,0.3,0,0.4,0.1c0.1,0.2,0,0.3-0.1,0.4c-0.2,0.1-0.3,0-0.4-0.1c0,0,0,0,0,0l-13,9.2c0.2,0.1,0.3,0.3,0.5,0.5l10-4.9l2.2-1
				c-0.1-0.1,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.1c0.1,0.2,0,0.3-0.1,0.4c-0.2,0.1-0.3,0-0.4-0.1c0,0,0,0,0,0l-12.2,6c0,0,0,0,0,0.1
				c0.1,0.2,0.2,0.5,0.3,0.7l15.2,0.4l7.3,0.3c0,0,0-0.1,0-0.1c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4
				c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.1-0.2-0.1-0.3l-22.4-0.4c0,0,0,0.1,0,0.1l13,3.6l3,0.9c0,0,0-0.1,0-0.1
				c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.1-0.2-0.1-0.3l-16-4.3
				c0,0.1,0,0.3-0.1,0.4l14.3,4l6.8,2.1c0,0,0,0,0-0.1c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1
				c-0.1-0.1-0.1-0.2-0.1-0.4l-20.5-5.7l10.1,4.6l2.1,1.1c0,0,0-0.1,0-0.1c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4
				c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.1-0.2-0.1-0.3l-12.9-5.8c0,0,0,0.1,0,0.1l11.5,6.6l2.7,1.6c0.1-0.1,0.3-0.1,0.4-0.1
				c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.2-0.3-0.1-0.4c0,0,0,0,0,0l-14.2-8c-0.1,0.2-0.2,0.3-0.4,0.5
				l9.1,7.3l1.8,1.6c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.2-0.3-0.1-0.4c0,0,0,0,0,0
				l-11-8.8c-0.1,0.1-0.3,0.2-0.4,0.3c-0.1,0-0.1,0-0.2,0.1l9.8,12l4.5,5.7c0,0,0.1,0,0.1-0.1c0.2,0,0.3,0.1,0.3,0.3
				c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3c0-0.1,0.1-0.2,0.2-0.3l-14.6-17.6c0,0,0,0,0,0l6,12.6l1.3,2.9
				c0,0,0.1-0.1,0.1-0.1c0.2,0,0.3,0.1,0.3,0.3c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3c0-0.1,0.1-0.2,0.2-0.3l-7.5-15.4
				c-0.1,0-0.3,0-0.4,0.1l6.6,14.1l2.9,6.5c0,0,0,0,0,0c0.2,0,0.3,0.1,0.3,0.3c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3
				c0-0.1,0.1-0.3,0.2-0.3l-9.1-19.2l3.1,10.6l0.6,2.3c0,0,0,0,0.1,0c0.2,0,0.3,0.1,0.3,0.3c0,0.2-0.1,0.3-0.3,0.3
				c-0.2,0-0.3-0.1-0.3-0.3c0-0.1,0.1-0.2,0.2-0.3l-4.2-14l-0.1-0.2l2.7,13.7l0.5,3.1c0.2,0,0.3,0.1,0.3,0.3c0,0.2-0.1,0.3-0.3,0.3
				c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0,0,0,0,0,0l-3.4-17c-0.2,0-0.3-0.1-0.5-0.1l0.5,12.8l0,2.4
				c0.1,0,0.3,0.1,0.3,0.3c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0,0,0,0,0,0l-0.6-15.3
				c-0.1,0-0.2-0.1-0.3-0.2l-5.3,14.6l-2.6,6.8c0,0,0.1,0,0.1,0.1c0.1,0.1,0.1,0.3-0.1,0.4c-0.1,0.1-0.3,0.1-0.4-0.1
				c-0.1-0.1-0.1-0.3,0.1-0.4c0.1-0.1,0.2,0,0.3,0l7.7-21.5l-7.8,11.6l-1.8,2.6c0,0,0.1,0,0.1,0.1c0.1,0.1,0.1,0.3-0.1,0.4
				c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4c0.1-0.1,0.2-0.1,0.3,0l9.5-14.4c-0.1-0.1-0.2-0.2-0.3-0.3l-8.8,12.9
				l-4.1,5.8c0,0,0,0,0,0c0.1,0.1,0.1,0.3-0.1,0.4c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4c0.1-0.1,0.3-0.1,0.4,0
				l11.9-17.6l-7.5,8.1l-1.7,1.7c0,0,0.1,0,0.1,0c0.1,0.1,0.1,0.3-0.1,0.4c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4
				c0.1-0.1,0.2-0.1,0.3,0l9.9-10.7l0.1-0.2l-10.4,9.3l-2.4,2c0.1,0.1,0.1,0.3-0.1,0.4c-0.1,0.1-0.3,0.1-0.4-0.1
				c-0.1-0.1-0.1-0.3,0.1-0.4c0.1-0.1,0.3-0.1,0.4,0.1c0,0,0,0,0,0l12.8-11.6c-0.1-0.1-0.1-0.3-0.1-0.4l-0.1,0l-10.7,6.9l-2.1,1.2
				c0.1,0.1,0.1,0.3-0.1,0.4c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0.1-0.4c0.1-0.1,0.3-0.1,0.4,0.1c0,0,0,0,0,0l12.2-7.9
				l-15,3.9l-7.1,1.7c0,0,0,0.1,0,0.1c-0.1,0.2-0.2,0.2-0.4,0.2c-0.2-0.1-0.3-0.2-0.2-0.4c0.1-0.2,0.2-0.2,0.4-0.2
				c0.1,0,0.2,0.2,0.2,0.3l22.1-5.9l-14,0.1l-3.1-0.1c0,0,0,0.1,0,0.1c-0.1,0.2-0.2,0.2-0.4,0.2c-0.2-0.1-0.3-0.2-0.2-0.4
				c0.1-0.2,0.2-0.2,0.4-0.2c0.1,0,0.2,0.1,0.2,0.3l17.7-0.3c0-0.1,0-0.3,0-0.4l-0.3,0l-15.8,0.1l-7.1-0.1c0,0,0,0,0,0.1
				c-0.1,0.2-0.2,0.2-0.4,0.2c-0.2-0.1-0.2-0.2-0.2-0.4c0.1-0.2,0.2-0.3,0.4-0.2c0.1,0.1,0.2,0.2,0.2,0.3l21.3-0.2l-10.9-1.6
				l-2.3-0.4c0,0,0,0.1,0,0.1c-0.1,0.2-0.2,0.2-0.4,0.2c-0.2-0.1-0.2-0.2-0.2-0.4c0.1-0.2,0.2-0.2,0.4-0.2c0.1,0,0.2,0.2,0.2,0.3
				l14.5,2.1h0.2l-13.6-3.3l-3-0.8c-0.1,0.1-0.2,0.2-0.4,0.2c-0.2-0.1-0.3-0.2-0.2-0.4c0.1-0.2,0.2-0.2,0.4-0.2
				c0.2,0.1,0.2,0.2,0.2,0.4c0,0,0,0,0,0l17.1,4.1c0-0.1,0.1-0.3,0.1-0.4l-11.9-5l-2.2-1c-0.1,0.1-0.2,0.2-0.4,0.2
				c-0.2-0.1-0.2-0.2-0.2-0.4c0.1-0.2,0.2-0.2,0.4-0.2c0.2,0.1,0.2,0.2,0.2,0.4c0,0,0,0,0,0l13.7,5.7l-11.5-10.1l-5.4-4.9
				c0,0-0.1,0.1-0.1,0.1c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2c0,0.1,0,0.2-0.1,0.3l17.3,15l-8-11.5
				l-1.7-2.6c0,0-0.1,0.1-0.1,0.1c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2c0,0.1,0,0.2-0.1,0.3l10,14.2
				c0.1-0.1,0.2-0.2,0.3-0.4l-8.8-12.8l-3.9-6c0,0,0,0,0,0c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2
				c0,0.1,0,0.3-0.2,0.3l12.1,17.5l-4.8-9.9l-0.9-2.2c0,0,0,0-0.1,0.1c-0.2,0-0.3-0.1-0.4-0.2c0-0.2,0.1-0.3,0.2-0.4
				c0.2,0,0.3,0.1,0.4,0.2c0,0.1,0,0.2-0.1,0.3l6.4,13.1l0.1,0.1c0,0,0,0,0,0l-4.8-13l-1-3c-0.2,0-0.3-0.1-0.4-0.2
				c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2c0,0.2-0.1,0.3-0.2,0.4c0,0,0,0,0,0l6,15.8c0,0,0.1-0.1,0.1-0.1
				c0.1-0.1,0.2-0.1,0.4-0.2l-2.4-11.9l-0.4-2.4c-0.2,0-0.3-0.1-0.3-0.2c0-0.2,0.1-0.3,0.2-0.4c0.2,0,0.3,0.1,0.4,0.2
				c0,0.2-0.1,0.3-0.2,0.4c0,0,0,0,0,0l2.9,14.2c0.1,0,0.2-0.1,0.3-0.1l6.9-13.8l3.4-6.4c0,0-0.1,0-0.1-0.1c-0.1-0.2,0-0.3,0.1-0.4
				C133.1,362.1,133.3,362.1,133.4,362.3z"
				/>
				<g>
					<radialGradient
						id="SVGID_24_"
						cx="3255.2925"
						cy="-443.969"
						r="39.489"
						gradientTransform="matrix(0.27 -0.961 0.9609 0.2723 -357.8255 3619.0989)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#F4D4D7" />
						<stop offset="1" style="stop-color:#FB879E" />
					</radialGradient>
					<path
						fill="url(#SVGID_24_)"
						d="M94.8,372.2c2.4,4.5-4.9,21.9-17.1,25.3c-5.5,1.5-21.1,4.4-21.9,0.6c-0.4-1.9,6-13.2,11.1-21.2
					C72.6,368,90,363,94.8,372.2z"
					/>
					<path
						fill="#F2E4E6"
						d="M79.5,394.1c0,0,8-3.1,11.9-15.7c0.9-2.8,1.4-3.6,0.6-3.5c-0.4,7-16.6,15.4-17,15.6
					c0,0,12.3-7,15.8-13.5c0.2-0.4,1.1-2.8,0-2.2c-1,0.5-7.1,4.4-7.1,4.4l0,0c3.9-3.1,4.7-3.4,5.3-4.2c0.4-0.5,0.1-1.2-0.3-1.2
					c-1.5,0.1-7.7,1.4-16.1,7.2c0,0,9.3-7.4,16.7-7.9c0.5,0,0.6-0.8,0.1-0.8c-5.9-0.4-16.9,4.8-16.9,4.8s10-5.2,15.4-5.3
					c0.4,0,0.5-0.8-0.1-0.9c-4.4-0.6-11.6,0.2-11.6,0.2c6.5-1.1,9.2-0.9,11-1c2.5-0.2-5.9-2.1-5.9-2.1s9.5-1.2,12.7,3.4
					c2.9,4.2-2.4,12.2-2.4,12.2s2-4.9,1.6-7.1C93,374.4,89.3,390.4,79.5,394.1z"
					/>

					<radialGradient
						id="SVGID_25_"
						cx="3197.3923"
						cy="-417.8726"
						r="68.2568"
						gradientTransform="matrix(0.27 -0.961 0.9609 0.2723 -357.8255 3619.0989)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#FEEDF0" />
						<stop offset="0.6209" style="stop-color:#E05A6A" />
					</radialGradient>
					<path
						fill="url(#SVGID_25_)"
						d="M96.1,423.7c-3.6,3.9-22.2,3.4-29.1-6.8c-3.1-4.6-10.6-18.1-7.2-20.3c1.7-1.1,14.3,0.8,23.5,2.7
					C93.3,401.4,103.3,415.8,96.1,423.7z"
					/>
					<path
						fill="#F2E4E6"
						d="M70.7,417.3c0,0,5.4,6.3,18.5,5.4c3-0.2,3.8,0.1,3.5-0.7c-6.8,2.2-19.6-9.9-19.9-10.2
					c0,0,10.4,9,17.5,9.9c0.5,0.1,2.9,0,2.1-0.8c-0.8-0.8-6.3-5-6.3-5l0,0c4.1,2.5,4.6,3.1,5.6,3.5c0.6,0.2,1.2-0.3,1-0.7
					c-0.5-1.4-3.7-6.6-11.7-12.4c0,0,9.8,6.1,12.5,12.8c0.2,0.5,0.9,0.3,0.8-0.2c-1.4-5.7-9.7-14.1-9.7-14.1s7.9,7.5,9.7,12.5
					c0.1,0.3,0.9,0.2,0.8-0.4c-0.7-4.3-3.6-10.8-3.6-10.8c3,5.7,3.6,8.3,4.3,9.9c1,2.3,0.3-6.3,0.3-6.3s4,8.5,0.5,13.1
					c-3.1,4.2-12.3,2.2-12.3,2.2s5.2,0.1,7.2-1C93.5,422.8,77.2,425.2,70.7,417.3z"
					/>

					<radialGradient
						id="SVGID_26_"
						cx="3167.0393"
						cy="-458.3041"
						r="41.5448"
						gradientTransform="matrix(0.27 -0.961 0.9609 0.2723 -357.8255 3619.0989)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="6.043960e-002" style="stop-color:#FEEDF0" />
						<stop offset="1" style="stop-color:#FB879E" />
					</radialGradient>
					<path
						fill="url(#SVGID_26_)"
						d="M52.1,443.4c-4.9-1-13.1-17-7.7-28.2c2.4-5,10.4-18.4,13.8-16.6c1.7,0.8,6,12.5,8.6,21.2
					C69.6,429.5,62.1,445.4,52.1,443.4z"
					/>
					<path
						fill="#FEEDF0"
						d="M45.7,418.6c0,0-2.8,7.8,4,18.4c1.5,2.4,1.7,3.3,2.2,2.6c-5-4.6-0.7-21.7-0.6-22.2c0,0-2.8,13.4-0.2,20
					c0.2,0.4,1.4,2.5,1.6,1.4c0.3-1.1,1.3-7.9,1.3-7.9v0c-0.2,4.8-0.5,5.5-0.3,6.6c0.1,0.6,0.8,0.8,1.1,0.5
					c0.9-1.2,3.9-6.6,5.1-16.4c0,0-0.6,11.4-5,17.2c-0.3,0.4,0.2,0.9,0.6,0.6c4.2-4.1,7.4-15.5,7.4-15.5s-2.6,10.6-6,14.7
					c-0.2,0.3,0.2,0.8,0.7,0.5c3.3-2.9,7.4-8.7,7.4-8.7c-3.4,5.5-5.3,7.3-6.4,8.8c-1.5,2,5.4-3.1,5.4-3.1s-5.3,7.8-10.8,7.3
					c-5-0.5-7.6-9.2-7.6-9.2s2.4,4.4,4.2,5.6C51.7,440.8,42.1,428.2,45.7,418.6z"
					/>

					<radialGradient
						id="SVGID_27_"
						cx="3197.157"
						cy="-512.9384"
						r="23.3593"
						gradientTransform="matrix(0.27 -0.961 0.9609 0.2723 -357.8255 3619.0989)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#EDEDED" />
						<stop offset="1" style="stop-color:#FB879E" />
					</radialGradient>
					<path
						fill="url(#SVGID_27_)"
						d="M15,404.3c0-5.3,14.6-17.9,26.9-15.3c5.5,1.2,17.3,5.5,16.2,9.5c-0.5,1.9-8.1,9.7-16.4,14.7
					C32.5,418.6,15,415.1,15,404.3z"
					/>
					<path
						fill="#FEEDF0"
						d="M38.8,391.2c0,0-8.4-0.9-17.8,8.9c-2.1,2.2-2.9,2.6-2.2,2.9c3.7-6.3,21.7-6.4,22.2-6.4
					c0,0-14.1,0.6-20.2,5c-0.4,0.3-2.2,2.1-1.1,2c1.1,0,8.3-0.8,8.3-0.8h0c-4.9,1-5.7,0.9-6.7,1.4c-0.6,0.3-0.7,1-0.3,1.2
					c1.3,0.6,7.4,2.3,17.5,0.9c0,0-11.6,2.4-18.3-0.6c-0.5-0.2-0.9,0.5-0.4,0.7c5,3.2,17.1,3.5,17.1,3.5s-11.2,0.1-16-2.4
					c-0.3-0.2-0.8,0.5-0.3,0.8c3.6,2.6,10.2,5.3,10.2,5.3c-6.2-2.1-8.4-3.5-10.1-4.2c-2.3-1,4.2,4.8,4.2,4.8s-8.9-3.4-9.4-9.2
					c-0.5-5.2,7.8-10.2,7.8-10.2s-4,3.6-4.8,5.8C17.6,403.1,28.4,390.1,38.8,391.2z"
					/>

					<radialGradient
						id="SVGID_28_"
						cx="3254.3367"
						cy="-511.4241"
						r="57.5322"
						gradientTransform="matrix(0.27 -0.961 0.9609 0.2723 -357.8255 3619.0989)"
						gradientUnits="userSpaceOnUse"
					>
						<stop offset="0" style="stop-color:#F4D4D7" />
						<stop offset="0.7198" style="stop-color:#E05A6A" />
					</radialGradient>
					<path
						fill="url(#SVGID_28_)"
						d="M39.8,358.6c5-1.6,20.6,8.4,21.3,21c0.3,5.6-0.4,21.4-4.4,21.6c-2,0.1-11.8-8-18.6-14.5
					C30.6,379.7,29.5,361.9,39.8,358.6z"
					/>
					<path
						fill="#FDD0D9"
						d="M58.1,377.3c0,0-1.3-8.3-12.9-14.3c-2.6-1.3-3.2-2-3.3-1.2c6.9,1.6,11.5,18.8,11.7,19.3
					c0,0-4.1-13.3-9.8-17.7c-0.4-0.3-2.5-1.5-2.2-0.4c0.3,1.1,2.8,7.7,2.8,7.7l0,0c-2.2-4.4-2.3-5.1-3-5.9c-0.4-0.5-1.2-0.3-1.2,0.1
					c-0.3,1.5-0.3,7.7,3.5,17c0,0-5.2-10.4-4.1-17.7c0.1-0.5-0.7-0.7-0.8-0.2c-1.8,5.7,0.9,17.4,0.9,17.4s-2.9-10.7-1.8-16
					c0.1-0.4-0.7-0.6-0.9-0.1c-1.6,4.2-2.5,11.4-2.5,11.4c0.4-6.5,1.2-9.2,1.5-11c0.3-2.5-3.5,5.5-3.5,5.5s1-9.5,6.3-11.9
					c4.9-2.1,11.6,4.3,11.6,4.3s-4.4-2.7-6.7-2.8C41.5,360.7,56.6,367,58.1,377.3z"
					/>
					<path
						fill="#FFFFFF"
						d="M30.9,386c0.1,0.1,0.1,0.3,0,0.4L53.5,397l-10.7-7.2l-2.3-1.6c0,0,0,0.1,0,0.1c-0.1,0.1-0.4,0.1-0.5,0
					c-0.1-0.1-0.1-0.4,0-0.5c0.1-0.1,0.4-0.1,0.5,0c0.1,0.1,0.1,0.3,0,0.4l14.3,9.5l0.2,0.1l-12.7-10.4l-2.8-2.4
					c-0.2,0.1-0.4,0.1-0.5,0c-0.1-0.1-0.1-0.4,0-0.5c0.1-0.1,0.4-0.1,0.5,0c0.1,0.1,0.1,0.4,0,0.5c0,0,0,0,0,0l16.3,13.1l0-0.7
					l-9.9-11.1l-1.8-2.2c-0.1,0.1-0.3,0.1-0.5,0c-0.1-0.1-0.1-0.4,0-0.5c0.1-0.1,0.4-0.1,0.5,0c0.1,0.1,0.1,0.4,0,0.5c0,0,0,0,0,0
					l11.7,13l-1.2-18.7l-0.4-8.5c0,0-0.1,0-0.1,0c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.2,0.1,0.2,0.3,0.1,0.5
					c-0.1,0.1-0.2,0.2-0.4,0.1l1.8,26.7l2.9-16.1l0.8-3.6c-0.1,0-0.1,0-0.2,0c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1
					c0.2,0.1,0.2,0.3,0.1,0.5c-0.1,0.1-0.2,0.2-0.3,0.1l-3.6,20.6l0.3,0.3l0.3-0.7l3.4-18.2l1.7-8.2c0,0,0,0-0.1,0
					c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.2,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.3,0.2-0.4,0.1l-4.5,24.5l4.3-12.2l1-2.6
					c0,0-0.1,0-0.1,0c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.2,0.1,0.2,0.3,0.1,0.5c-0.1,0.1-0.2,0.2-0.4,0.1
					l-5.6,16.2l0,0.2L64,382l1.6-3.3c-0.2-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.2,0.1,0.2,0.3,0.1,0.5
					c-0.1,0.2-0.3,0.2-0.5,0.1c0,0,0,0,0,0l-8.7,19.3l0,0.1l0.2,0.2l0,0l0.1-0.1l-0.1-0.2l0.4-0.2l8.5-12.8l1.7-2.3
					c-0.1-0.1-0.2-0.3-0.1-0.5c0.1-0.2,0.3-0.2,0.5-0.1c0.2,0.1,0.2,0.3,0.1,0.5c-0.1,0.2-0.3,0.2-0.5,0.1c0,0,0,0,0,0l-9.8,14.8
					l17.4-9.6l7.6-4c0,0,0-0.1,0-0.1c0-0.2,0.2-0.4,0.4-0.3c0.2,0,0.4,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.1,0-0.2-0.1-0.3-0.3
					l-23.4,13.1l15.8-4.2l3.6-0.8c0,0-0.1-0.1,0-0.2c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.4,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3
					c-0.1,0-0.2-0.1-0.3-0.2l-20.5,5.6l-0.8,0.5l1.7-0.2l17.9-4.6l8.1-1.9c0,0,0,0,0-0.1c0-0.2,0.2-0.3,0.4-0.3
					c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.4-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.3l-24.1,6.4l12.9-1.3l2.8-0.2c0,0,0-0.1,0-0.1
					c0-0.2,0.2-0.4,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.1-0.3-0.3l-17,1.8l-0.2,0.1l16.4-0.1l3.7,0.1
					c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.4,0.2,0.3,0.4c0,0.2-0.2,0.4-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0,0,0,0,0,0l-21.2,0.3l-0.9,0.2
					l16.4,2.5l2.8,0.5c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.4,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.4-0.2-0.3-0.4c0,0,0,0,0,0
					l-19.2-2.8l-0.1-0.2l-0.1,0l-0.1,0.2L57,399l0.1,0.6l0.6,0.4l-0.1-0.1l0-0.2l-0.3-0.1l0-0.3l19.5,7.2l8,3.1c0,0,0-0.1,0.1-0.1
					c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.1-0.1-0.3,0-0.4l-25.2-9.2l13.5,9.2l3,2.2
					c0,0,0-0.1,0.1-0.1c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.1-0.1-0.3,0-0.4L58.6,400
					l-0.9-0.3l1.2,1.2l15.2,10.5l6.8,4.9c0,0,0,0,0-0.1c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5c-0.2,0.1-0.4,0.1-0.5-0.1
					c-0.1-0.1-0.1-0.3,0-0.4l-20.6-14.1l9.4,8.9l2,2c0,0,0-0.1,0-0.1c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5
					c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.1-0.1-0.3,0-0.4l-12.5-11.7l-0.2-0.1l10.8,12.3l2.3,2.8c0.2-0.1,0.4-0.1,0.5,0.1
					c0.1,0.2,0.1,0.4-0.1,0.5c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0,0,0,0,0,0L58,400.6l-0.8-0.5l8.9,14l1.4,2.5
					c0.2-0.1,0.4-0.1,0.5,0.1c0.1,0.2,0.1,0.4-0.1,0.5c-0.2,0.1-0.4,0.1-0.5-0.1c-0.1-0.2-0.1-0.4,0.1-0.5c0,0,0,0,0,0l-10.2-16
					l3.5,18.8l1.4,8.4c0,0,0.1,0,0.1,0c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5
					c0.1-0.1,0.2-0.2,0.3-0.2l-5-26.3l-1,16.4l-0.3,3.7c0.1,0,0.1,0,0.2,0c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2
					c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.1,0.2-0.2,0.3-0.2l1.1-21.2l-0.2-0.9v0l-0.4,1.6l-1.3,18.5l-0.7,8.3c0,0,0,0,0.1,0
					c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.2-0.2,0.4-0.2L56,403l-2.8,12.6
					l-0.7,2.7c0,0,0.1,0,0.1,0c0.2,0.1,0.3,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.1,0.2-0.2,0.4-0.2
					l3.7-16.7l0-0.2l-5,15.6l-1.2,3.4c0.2,0.1,0.2,0.3,0.2,0.5c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5
					c0.1-0.2,0.3-0.3,0.5-0.2c0,0,0,0,0,0l6.4-20.2l0-0.2l-0.7,0.7l-6.8,13.3l-1.4,2.5c0.1,0.1,0.2,0.3,0.2,0.4
					c-0.1,0.2-0.3,0.3-0.5,0.2c-0.2-0.1-0.3-0.3-0.2-0.5c0.1-0.2,0.3-0.3,0.5-0.2c0,0,0,0,0,0l7.7-15.3L42.1,414l-6.2,5.9
					c0,0,0.1,0.1,0.1,0.1c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.4-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4c0.1,0,0.3,0.1,0.3,0.2l18.8-19
					l-14,8.4l-3.2,1.8c0,0,0.1,0.1,0.1,0.1c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.4-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4
					c0.1,0,0.3,0,0.3,0.1l17.9-10.9l0.3-0.5l-1,0.4l-15.9,9.4l-7.3,4.1c0,0,0,0,0,0.1c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.4-0.1-0.4-0.3
					c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.3,0.1,0.4,0.2l21.4-12.8l-12,4.8l-2.6,0.9c0,0,0,0,0.1,0.1c0,0.2-0.1,0.4-0.3,0.4
					c-0.2,0-0.4-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.3,0.1,0.4,0.2l15.9-6.5l0.2-0.1l-15.7,4.7l-3.5,0.9
					c0,0.2-0.1,0.4-0.3,0.4c-0.2,0-0.4-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3c0,0,0,0,0,0l20.3-6.2l0.2-0.1
					l-0.8-0.2l-15,2l-2.9,0.3c0,0.2-0.1,0.3-0.3,0.4c-0.2,0-0.4-0.1-0.4-0.3c0-0.2,0.1-0.4,0.3-0.4c0.2,0,0.4,0.1,0.4,0.3
					c0,0,0,0,0,0l17.2-2.3l-17.7-3.4l-8.4-1.8c0,0,0,0.1-0.1,0.1c-0.1,0.1-0.4,0.1-0.5,0c-0.1-0.1-0.1-0.4,0-0.5
					c0.1-0.1,0.4-0.1,0.5,0c0.1,0.1,0.1,0.3,0.1,0.4l26.3,5l-14.9-6.9l-3.3-1.7c0,0.1,0,0.1-0.1,0.1c-0.1,0.1-0.4,0.1-0.5,0
					c-0.1-0.1-0.1-0.4,0-0.5c0.1-0.1,0.4-0.1,0.5,0c0.1,0.1,0.1,0.2,0.1,0.4l19,8.7l0.6-0.1l-0.8-0.5l-16.7-7.9l-7.5-3.7
					c0,0,0,0,0,0.1c-0.1,0.1-0.4,0.1-0.5,0c-0.1-0.1-0.1-0.4,0-0.5C30.5,385.8,30.7,385.8,30.9,386z M56.1,397.7l0,0.5l0.1,0.1
					l0.1-0.3L56.1,397.7z M56.7,399.1L56.7,399.1L56.7,399.1L56.7,399.1L56.7,399.1z M56.8,398.5L56.8,398.5l0.1,0.2L56.8,398.5z
					 M56.7,398.9l0,0.1L56.7,398.9L56.7,398.9z M57.7,398.5l-0.1,0l-0.2-0.2l-0.2,0.3L57.7,398.5z M55.9,399.8l0.3-0.3l0,0l-0.2,0.1
					L55.9,399.8z M55.9,398.9L55.9,398.9l-0.2,0L55.9,398.9z"
					/>
					<path
						fill="#E05A6A"
						d="M62.5,374.2c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.2,0.1-0.3,0l-5.4,21c0.1,0,0.2,0.1,0.3,0.1l6.2-11.2
					l1.6-2.7c0,0-0.1,0-0.1-0.1c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.2,0.1-0.3,0
					l-7.6,14c0.1,0.1,0.2,0.2,0.4,0.3l7-12.5l3.6-6.2c0,0,0,0,0,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0
					c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.3,0.1-0.4,0L57.8,396l6.8-8.7l1.5-1.8c0,0,0,0-0.1,0c-0.1-0.1-0.1-0.3,0-0.4
					c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.2,0.1-0.3,0l-8.3,10.8c0,0,0,0,0.1,0c0,0,0,0,0,0.1l8.8-9.3l2.2-2.2
					c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.3,0.1-0.4,0v0l-10.9,11.7
					c0.1,0.2,0.2,0.4,0.3,0.6l9-7l2-1.4c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4
					c-0.1,0.1-0.3,0.1-0.4,0c0,0,0,0,0,0l-10.9,8.5c0.1,0.2,0.1,0.4,0.2,0.6l15.5-2.9l7.2-1.2c0,0,0-0.1,0-0.1
					c0.1-0.2,0.3-0.2,0.4-0.1c0.2,0.1,0.2,0.3,0.2,0.4c-0.1,0.2-0.3,0.2-0.4,0.2c-0.1-0.1-0.2-0.2-0.2-0.3l-22.4,4.2l13.9,0.9
					l3.1,0.3c0,0,0-0.1,0-0.1c0.1-0.2,0.3-0.2,0.4-0.2c0.2,0.1,0.2,0.3,0.2,0.4c-0.1,0.2-0.3,0.2-0.4,0.2c-0.1,0-0.2-0.2-0.2-0.3
					l-17.2-0.9c0,0.1,0,0.3,0,0.4l15.5,1.1l7.1,0.6c0,0,0,0,0-0.1c0.1-0.2,0.3-0.2,0.4-0.2c0.2,0.1,0.2,0.3,0.2,0.4
					c-0.1,0.2-0.3,0.2-0.4,0.2c-0.1-0.1-0.2-0.2-0.2-0.3l-21.2-1.4l10.8,2.4l2.3,0.6c0,0,0-0.1,0-0.1c0.1-0.2,0.3-0.2,0.4-0.2
					c0.1,0.1,0.2,0.3,0.2,0.4c-0.1,0.2-0.3,0.2-0.4,0.2c-0.1,0-0.2-0.2-0.2-0.3l-14.3-3.1l-0.2,0l13.3,4.3l2.9,1.1
					c0.1-0.1,0.2-0.2,0.4-0.1c0.2,0.1,0.2,0.3,0.2,0.4c-0.1,0.2-0.3,0.2-0.4,0.2c-0.2-0.1-0.2-0.3-0.2-0.4c0,0,0,0,0,0l-16.3-5.1
					c0,0.2-0.1,0.3-0.2,0.5l11,5.6l2.1,1.2c0.1-0.1,0.2-0.2,0.4-0.1c0.2,0.1,0.2,0.3,0.2,0.4c-0.1,0.2-0.3,0.2-0.4,0.2
					c-0.2-0.1-0.2-0.3-0.2-0.4c0,0,0,0,0,0L58.5,400c-0.1,0.2-0.2,0.3-0.3,0.5l12.4,10l5.6,4.7c0,0,0-0.1,0.1-0.1
					c0.2-0.1,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.2,0-0.3,0-0.4-0.2c0-0.1,0-0.2,0.1-0.3l-17.9-14.3l8.5,11.1l1.8,2.6
					c0,0,0.1-0.1,0.1-0.1c0.2,0,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2c0-0.1,0-0.2,0.1-0.3l-10.7-13.8
					c-0.1,0.1-0.1,0.2-0.2,0.2c0,0-0.1,0.1-0.1,0.1l9.4,12.6l4.2,5.8c0,0,0,0,0,0c0.2,0,0.3,0,0.4,0.2c0.1,0.2,0,0.3-0.2,0.4
					c-0.2,0.1-0.3,0-0.4-0.2c0-0.1,0-0.3,0.2-0.3l-12.8-17l5.2,9.7l1,2.1c0,0,0,0,0.1-0.1c0.2,0,0.3,0.1,0.4,0.2
					c0,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2c0-0.1,0-0.2,0.1-0.3l-7-12.9l-0.1-0.2l5.4,12.9l1.1,2.9c0.2,0,0.3,0.1,0.4,0.2
					c0,0.2,0,0.3-0.2,0.4c-0.2,0-0.3,0-0.4-0.2c0-0.2,0-0.3,0.2-0.4c0,0,0,0,0,0l-6.8-15.8c-0.1,0.1-0.3,0.1-0.4,0.2l3,12.1l0.5,2.4
					c0.1,0,0.3,0.1,0.3,0.2c0.1,0.2,0,0.3-0.2,0.4c-0.2,0.1-0.3,0-0.4-0.2c0-0.2,0-0.3,0.2-0.4c0,0,0,0,0,0l-3.6-14.4
					c-0.2,0.1-0.3,0.1-0.5,0.1l-2.1,14.7l-1.2,7.2c0,0,0.1,0,0.1,0c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.3,0.1-0.4,0
					c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.2-0.1,0.3-0.1l3-21.9c-0.1,0-0.1,0-0.2,0L50.7,414l-1.3,2.9c0,0,0.1,0,0.1,0
					c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.2-0.1,0.3-0.1l6-15.1c-0.1,0-0.3,0-0.4-0.1
					L49.5,415l-2.9,6.5c0,0,0,0,0.1,0c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0
					l8-19.7l-5.7,9.4l-1.3,2c0,0,0.1,0,0.1,0c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.1-0.3,0-0.4
					c0.1-0.1,0.2-0.1,0.3-0.1l7-11.7c0,0-0.1,0-0.1-0.1l-7.5,10.2l-1.9,2.5c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.3,0.1-0.4,0
					c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0,0,0,0,0,0l9.3-12.7c-0.2-0.1-0.4-0.2-0.6-0.4l-7.8,7.7l-1.8,1.6
					c0.1,0.1,0.1,0.3,0,0.4c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0,0,0,0,0,0l9.5-9.4
					c-0.1-0.1-0.2-0.2-0.3-0.3l-12.8,6.4l-6.6,3.1c0,0,0,0.1,0,0.1c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4
					c0-0.2,0.2-0.3,0.3-0.3c0.1,0,0.2,0.1,0.2,0.2l19.2-9.7c-0.1-0.1-0.2-0.2-0.2-0.3l-12.2,2.7l-3.1,0.6c0,0,0,0.1,0,0.1
					c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3c0.1,0,0.2,0.1,0.2,0.2l15.2-3.5c-0.1-0.1-0.1-0.3-0.2-0.4
					L39,402.5l-7,1.3c0,0,0,0,0,0.1c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3c0.1,0,0.2,0.1,0.2,0.3
					l20.5-4.5c0,0,0,0,0,0l-10.7,0.6l-2.4,0c0,0,0,0,0,0.1c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3
					c0.1,0,0.2,0.1,0.2,0.3l13-0.8c0-0.1,0-0.1,0-0.2l-12.1-0.4l-3.1-0.2c0,0.1-0.2,0.3-0.3,0.2c-0.2,0-0.3-0.2-0.3-0.4
					c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4c0,0,0,0,0,0l15.2,0.4c0-0.3,0-0.5,0-0.8l-10.3-2l-2.4-0.6c0,0.1-0.2,0.3-0.3,0.2
					c-0.2,0-0.3-0.2-0.3-0.4c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4c0,0,0,0,0,0l12.7,2.4c0-0.2,0.1-0.4,0.2-0.6l-11.8-6.6
					l-6.3-3.7c0,0,0,0.1-0.1,0.1c-0.2,0.1-0.3,0-0.4-0.1c-0.1-0.2,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.2-0.1,0.3
					L52.7,397c0.1-0.2,0.2-0.3,0.3-0.4l-8.6-8.2l-2.2-2.2c0,0,0,0.1-0.1,0.1c-0.2,0.1-0.3,0-0.4-0.1c-0.1-0.2,0-0.3,0.1-0.4
					c0.2-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.2,0,0.3l11,10.2c0.1-0.1,0.1-0.2,0.2-0.2c0,0,0.1-0.1,0.1-0.1l-9.6-9.2l-5-5.1c0,0,0,0,0,0
					c-0.1,0.1-0.3,0-0.4-0.1c-0.1-0.2,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.3-0.1,0.4l14.9,14.2c0,0,0.1,0,0.1-0.1
					l-6.3-8.2l-1.4-1.9c0,0,0,0,0,0.1c-0.2,0.1-0.3,0-0.4-0.1c-0.1-0.2,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.2-0.1,0.3
					l7.8,10c0.1,0,0.1-0.1,0.2-0.1l-6.3-10.1l-1.6-2.7c-0.2,0.1-0.3,0-0.4-0.1c-0.1-0.2,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.1
					c0.1,0.2,0,0.3-0.1,0.4c0,0,0,0,0,0l8.1,12.7c0.3-0.1,0.5-0.2,0.8-0.2l-4.2-9.7l-0.9-2.3c-0.1,0-0.3,0-0.4-0.1
					c-0.1-0.2,0-0.3,0.1-0.4c0.2-0.1,0.3,0,0.4,0.1c0.1,0.2,0,0.3-0.1,0.4c0,0,0,0,0,0l5.2,12c0.4,0,0.8,0,1.2,0.2l3.7-13.9l2-7
					c0,0-0.1,0-0.1-0.1c-0.1-0.1-0.1-0.3,0-0.4C62.2,374,62.4,374,62.5,374.2z"
					/>
				</g>
				<path
					fill="#E05A6A"
					d="M119,411.5c-0.1,0.1-0.2,0.1-0.4,0.1l-5.5,19.7c0,0,0.1,0,0.1,0l4.2-9.3l1.1-2.1c0,0,0,0-0.1,0
				c-0.1-0.1-0.2-0.3-0.1-0.4c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.2,0.1-0.3,0.1l-5.1,11.4
				c0.1,0,0.2,0,0.3,0.1l5.8-10l1.6-2.7c-0.1-0.1-0.1-0.3-0.1-0.4c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4
				c-0.1,0.1-0.3,0.2-0.4,0.1c0,0,0,0,0,0l-7.2,12.8c0.1,0.1,0.3,0.1,0.4,0.2c0.1,0.1,0.2,0.2,0.3,0.3l6.2-7.7l1.6-1.8
				c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1c0,0,0,0,0,0l-7.7,9.7
				c0.3,0.3,0.6,0.7,0.8,1.1l13-5.7l6.7-2.8c0,0,0-0.1,0-0.1c0-0.2,0.2-0.3,0.4-0.2c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3
				c-0.1,0-0.2-0.1-0.2-0.3l-19.6,8.8c0,0.1,0.1,0.2,0.1,0.3l12.4-2.1l3.1-0.4c0,0,0-0.1,0-0.1c0-0.2,0.2-0.3,0.4-0.3
				c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.2c-0.1,0-0.2-0.1-0.2-0.2l-15.5,2.8c0,0.1,0,0.3,0.1,0.4l13.9-2.3l7.1-1
				c0,0,0,0,0-0.1c0-0.2,0.2-0.3,0.4-0.3c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.2c-0.1,0-0.2-0.2-0.2-0.3l-20.9,3.6l11-0.1
				l2.4,0.1c0,0,0-0.1,0-0.1c0-0.2,0.2-0.3,0.4-0.2c0.2,0,0.3,0.2,0.2,0.4c0,0.2-0.2,0.3-0.4,0.2c-0.1,0-0.2-0.1-0.2-0.3l-13.4,0.2
				c0,0.1,0,0.1,0,0.2l12.5,1l3.1,0.3c0.1-0.1,0.2-0.3,0.3-0.2c0.2,0,0.3,0.2,0.3,0.4c0,0.2-0.2,0.3-0.4,0.3c-0.2,0-0.3-0.2-0.3-0.4
				c0,0,0,0,0,0l-15.7-1.2c0,0.2-0.1,0.4-0.2,0.7l10.8,2.6l2.3,0.7c0.1-0.1,0.2-0.2,0.3-0.2c0.2,0,0.3,0.2,0.3,0.4
				c0,0.2-0.2,0.3-0.4,0.2c-0.2,0-0.3-0.2-0.3-0.4c0,0,0,0,0,0l-13.2-3.1c-0.1,0.1-0.1,0.2-0.2,0.3c-0.1,0.1-0.2,0.2-0.3,0.3
				l13.6,6.5l6.5,3.3c0,0,0-0.1,0.1-0.1c0.2-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.3-0.1,0.4c-0.1,0.1-0.3,0-0.4-0.1c-0.1-0.1,0-0.2,0-0.3
				l-20.2-9.5c0,0-0.1,0.1-0.1,0.1l10.4,8.6l2.4,2.1c0,0,0-0.1,0.1-0.1c0.2-0.1,0.3,0,0.4,0.1c0.1,0.2,0,0.3-0.1,0.4
				c-0.1,0.1-0.3,0-0.4-0.1c-0.1-0.1,0-0.2,0-0.3l-13-10.5c-0.1,0.1-0.2,0.2-0.3,0.3l11.6,9.7l5.4,4.7c0,0,0,0,0,0
				c0.1-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.3-0.1,0.4c-0.1,0.1-0.3,0-0.4-0.1c-0.1-0.1,0-0.3,0.1-0.4l-16.4-13.6l7.3,8.3l1.5,1.8
				c0,0,0,0,0-0.1c0.1-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.3-0.1,0.4c-0.2,0.1-0.3,0-0.4-0.1c-0.1-0.1,0-0.3,0-0.3l-9.6-10.8
				c0,0,0,0-0.1,0l8,11l1.8,2.6c0.1-0.1,0.3,0,0.4,0.1c0.1,0.1,0,0.3-0.1,0.4c-0.1,0.1-0.3,0-0.4-0.1c-0.1-0.2,0-0.3,0.1-0.4
				c0,0,0,0,0,0l-10-13.4c-0.2,0.1-0.3,0.1-0.5,0.2l5.6,10.8l1,2.2c0.1-0.1,0.3,0,0.4,0.1c0.1,0.2,0,0.3-0.1,0.4
				c-0.2,0.1-0.3,0-0.4-0.1c-0.1-0.2,0-0.3,0.1-0.4c0,0,0,0,0,0l-6.8-13c-0.2,0-0.4,0.1-0.6,0.1l1.4,14.8l0.5,7.3c0,0,0.1,0,0.1,0
				c0.2,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.3,0.2-0.4,0.1c-0.1-0.1-0.2-0.3-0.1-0.4c0.1-0.1,0.2-0.1,0.3-0.1l-2.2-22.1
				c-0.1,0-0.1,0-0.2,0l-2,13.2l-0.6,3.1c0,0,0.1,0,0.1,0c0.2,0.1,0.2,0.3,0.1,0.4c-0.1,0.2-0.3,0.2-0.4,0.1
				c-0.2-0.1-0.2-0.3-0.1-0.4c0.1-0.1,0.2-0.1,0.3-0.1l2.4-16.3c-0.1,0-0.3-0.1-0.4-0.1l-2.3,14.6l-1.3,7c0,0,0,0,0.1,0
				c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.2-0.3,0.2-0.4,0.1c-0.2-0.1-0.2-0.3-0.1-0.4c0.1-0.1,0.2-0.2,0.4-0.1l3.3-21l-3.3,10.5l-0.8,2.2
				c0,0,0.1,0,0.1,0c0.2,0.1,0.2,0.3,0.1,0.4c-0.1,0.2-0.3,0.2-0.4,0.1c-0.2-0.1-0.2-0.3-0.1-0.4c0.1-0.1,0.2-0.2,0.3-0.1l4.2-13.5
				c0,0-0.1,0-0.1,0l-5.2,12.2l-1.3,2.8c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.2-0.3,0.2-0.4,0.1c-0.2-0.1-0.2-0.3-0.1-0.4
				c0.1-0.2,0.3-0.2,0.4-0.1c0,0,0,0,0,0l6.3-15.1c0,0-0.1,0-0.1-0.1c-0.1-0.1-0.2-0.2-0.4-0.3l-6.3,10l-1.4,2
				c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.2-0.3,0.2-0.4,0.1c-0.2-0.1-0.2-0.3-0.1-0.4c0.1-0.1,0.3-0.2,0.4-0.1c0,0,0,0,0,0l7.5-12.1
				c0,0-0.1-0.1-0.1-0.1l-11.7,9.7l-5.7,4.5c0,0,0,0,0,0.1c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3
				c0.1,0,0.2,0.1,0.3,0.2l17.2-14.5c0,0,0,0-0.1-0.1l-12.2,5.9l-2.9,1.3c0,0,0.1,0.1,0.1,0.1c0,0.2-0.1,0.3-0.3,0.3
				c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0.1,0,0.2,0.1,0.3,0.2l14.9-7.4c-0.1-0.1-0.1-0.2-0.2-0.4l-13.5,6.4l-6.5,2.9
				c0,0,0,0,0,0c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0.1,0,0.3,0.1,0.3,0.2l19.1-9.2l-10.6,3.2
				l-2.3,0.6c0,0,0,0,0,0.1c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0.1,0,0.2,0.1,0.3,0.2l13.6-4.2
				c0,0,0-0.1,0-0.1l-13.1,2.6l-3.1,0.5c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3c0-0.2,0.1-0.3,0.3-0.3c0.2,0,0.3,0.1,0.3,0.3
				c0,0,0,0,0,0l16.1-3.4c-0.1-0.2-0.1-0.4-0.1-0.6l-11.7,0.5l-2.4,0c0,0.2-0.1,0.3-0.3,0.3c-0.2,0-0.3-0.1-0.3-0.3
				c0-0.2,0.1-0.3,0.3-0.3c0.2,0,0.3,0.1,0.3,0.3c0,0,0,0,0,0l14.1-0.6c0-0.1,0-0.1,0-0.2l-14.1-4.1l-7-2.2c0,0,0,0.1,0,0.1
				c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.2,0,0.3l21.1,6c0-0.1,0-0.2,0-0.2L98,427.7
				l-2.7-1.7c0,0,0,0.1-0.1,0.1c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.2,0,0.3l14,7.9
				c0-0.2,0.1-0.3,0.1-0.5l-12.3-7.2l-6.1-3.8c0,0,0,0,0,0c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0
				c0.1,0.1,0.1,0.3,0,0.4l18.4,10.7l-8.6-7l-1.8-1.6c0,0,0,0.1,0,0.1c-0.1,0.1-0.3,0.1-0.4,0c-0.1-0.1-0.1-0.3,0-0.4
				c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.2,0,0.3l10.5,8.4c0,0,0-0.1,0.1-0.1l-9-8.8l-2.2-2.2c-0.1,0.1-0.3,0.1-0.4-0.1
				c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4c0,0,0,0,0,0l11.2,10.9c0.1-0.2,0.3-0.4,0.5-0.6l-6.4-8.7
				l-1.4-2c-0.1,0.1-0.3,0.1-0.4-0.1c-0.1-0.1-0.1-0.3,0-0.4c0.1-0.1,0.3-0.1,0.4,0c0.1,0.1,0.1,0.3,0,0.4c0,0,0,0,0,0l7.9,10.6
				c0.3-0.3,0.7-0.5,1.1-0.6l0.3-14l0.3-7.3c0,0-0.1,0-0.1,0c-0.1-0.1-0.2-0.3-0.1-0.4c0.1-0.1,0.3-0.2,0.4-0.1
				c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.2,0.1-0.3,0.1l-0.5,21.2c0.2,0,0.3-0.1,0.5-0.1l3.2-11.7l0.9-3c0,0-0.1,0-0.1,0
				c-0.1-0.1-0.2-0.3-0.1-0.4c0.1-0.1,0.3-0.2,0.4-0.1c0.1,0.1,0.2,0.3,0.1,0.4c-0.1,0.1-0.2,0.1-0.3,0.1l-3.9,14.6
				c0.2,0,0.3,0,0.5,0l3.6-12.8l2.1-6.8c0,0,0,0-0.1,0c-0.1-0.1-0.2-0.3-0.1-0.4c0.1-0.1,0.3-0.2,0.4-0.1
				C119.1,411.1,119.1,411.3,119,411.5z"
				/>
			</g>
		</g>
		<path
			fill="#FEEDF0"
			d="M125.5,362.6c0,0-0.5-6.9-9.2-13c-2-1.4-2.4-2-2.5-1.3c5.3,2,7.8,16.5,7.9,16.9c0,0-2.4-11.2-6.5-15.4
		c-0.3-0.3-1.9-1.5-1.7-0.6c0.2,0.9,1.7,6.5,1.7,6.5h0c-1.4-3.8-1.5-4.4-2-5.1c-0.3-0.4-0.9-0.4-1,0c-0.3,1.2-0.8,6.2,1.6,14.1
		c0,0-3.4-9-2-14.8c0.1-0.4-0.5-0.6-0.6-0.3c-1.8,4.5-0.4,14.2-0.4,14.2s-1.5-9-0.3-13.1c0.1-0.3-0.5-0.6-0.7-0.2
		c-1.6,3.2-2.7,8.9-2.7,8.9c0.8-5.2,1.6-7.3,1.9-8.7c0.4-2-3.1,4-3.1,4s1.4-7.6,5.7-8.9c3.9-1.2,8.8,4.8,8.8,4.8s-3.3-2.7-5.1-3
		C113.6,347.3,125,354.1,125.5,362.6z"
		/>
	</g>
</svg>

随机数 ​

randomInt 随机整数

randomUniform 随机小数

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>随机数</title>
		<style>
			html,
			body {
				margin: 0;
				height: 100%;
			}
			#main {
				height: 100%;
				background-color: #000;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			/*
			 * randomInt 随机整数
			 * randomUniform 随机小数
			 * */
			/*const randomI=d3.randomInt(5,10)
    // console.log(randomI());

    const randomU=d3.randomUniform(3,6)
    console.log(randomU());*/

			/*随机大小,随机位置,随机颜色的小球*/
			const main = d3.select("#main");
			const [width, height] = [window.innerWidth, window.innerHeight];
			const svg = main
				.append("svg")
				.attr("width", "100%")
				.attr("height", "100%");

			const randomWidth = d3.randomInt(width);
			const randomHeight = d3.randomInt(height);
			const randomSize = d3.randomInt(1, 9);
			const randomColor = d3.randomInt(0, 255);

			const data = [];
			for (let i = 0; i < 100; i++) {
				data[i] = {
					x: randomWidth(),
					y: randomHeight(),
					z: randomSize(),
					c: `rgb(${randomColor()},${randomColor()},${randomColor()})`,
				};
			}

			svg
				.selectAll("circle")
				.data(data)
				.join("circle")
				.attr("cx", (d) => d.x)
				.attr("cy", (d) => d.y)
				.attr("r", (d) => d.z)
				.attr("fill", (d) => d.c);
		</script>
	</body>
</html>

格式化 ​

format()数字格式化,如保留小数点后 n 位浮点数

.1f 保留小数点后 1 位浮点数

.2f 保留小数点后 2 位浮点数

timeFormat() 时间格式化

  • %Y 年
  • %m 月
  • %d 日
  • %H 时
  • %M 分
  • %S 秒
html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>格式化</title>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			/*
			 *  format()数字格式化,如保留小数点后n位浮点数
			 *   .1f 保留小数点后1位浮点数
			 *   .2f 保留小数点后2位浮点数
			 *  timeFormat() 时间格式化
			 *   %Y 年
			 *   %m 月
			 *   %d 日
			 *   %H 时
			 *   %M 分
			 *   %S 秒
			 * */
			const f = d3.format(".4f");
			for (let i = 0; i < 10; i++) {
				const n1 = 0.1 * i;
				// console.log(n1);
				const n2 = f(n1);
				// console.log(n2);
				// console.log(typeof  n2);
				const n3 = parseFloat(n2);
				/*console.log(n3);
        console.log(typeof n3);*/
			}

			const dt = new Date();
			// console.log(dt);

			const tf = d3.timeFormat("%Y-%m-%d %H:%M:%S");
			console.log(tf(dt));
		</script>
	</body>
</html>

多边形算法 ​

  • polygonArea(points)
  • 多边形面积 polygonCentroid(points)
  • 多边形中心 polygonLength(points)
  • 多边形周长 polygonContains(polygon, point)
  • 点是否在多边形中
html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>多边形算法</title>
		<style>
			html {
				height: 100%;
			}
			body {
				height: 100%;
				margin: 0;
			}
			#main {
				width: 100%;
				height: 100%;
				background-color: antiquewhite;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.min.js"></script>
		<script>
			const points = [
				[300, 200],
				[200, 400],
				[400, 400],
			];

			const main = d3.select("#main");
			const svg = main
				.append("svg")
				.attr("width", "100%")
				.attr("height", "100%");

			svg
				.append("polygon")
				.attr("points", points)
				.attr("fill", "none")
				.attr("stroke", "#000")
				.attr("stroke-width", 2);

			//面积
			const hull = d3.polygonArea(points);
			console.log(hull);
			//中心
			const centroid = d3.polygonCentroid(points);
			console.log(centroid);
			//周长
			const len = d3.polygonLength(points);
			console.log(len);

			//点是否在多边形中
			const point = [400, 300];
			// const point=[300,300]
			svg
				.append("circle")
				.attr("cx", point[0])
				.attr("cy", point[1])
				.attr("r", 5);

			const bool = d3.polygonContains(points, point);
			console.log(bool);
		</script>
	</body>
</html>

d3 比例尺原理 ​

d3 比例尺的实现原理就是对两种数据做线性映射。

这种线性映射关系可以用点斜式表示。

已知:

N 类型的数据极值是[minN,maxN]

M 类型的数据极值是[minM,maxM]

x 属于 N

将 x 映射到 M 的中的值为 y 则:

js
k = (maxM - minM) / (maxN - minN);
b = minM - minN * k;
y = kx + b;

例子

html
<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<title>比例尺</title>
		<style>
			* {
				box-sizing: border-box;
			}
			#main {
				margin: 20px;
				width: 600px;
				height: 600px;
				border: 1px solid #ddd;
			}
			.item {
				cursor: pointer;
			}
			.item:hover {
				opacity: 0.9;
			}
		</style>
	</head>
	<body>
		<div id="main"></div>
		<script src="https://d3js.org/d3.v6.js"></script>
		<script>
			/*===========1-必备数据===========*/
			/*categories 类目信息*/
			const categories = ["html", "css", "js"];
			/*数据源source:两个系列的数据*/
			const source = [
				//html css js
				[30, 20, 40], //学习人数
				[40, 30, 50], //就业人数
			];
			/*调色盘*/
			const color = [
				"#c23531",
				"#2f4554",
				"#61a0a8",
				"#d48265",
				"#91c7ae",
				"#749f83",
				"#ca8622",
				"#bda29a",
				"#6e7074",
				"#546570",
				"#c4ccd3",
			];

			/*===========2-建立容器对象===========*/
			/*获取main 容器*/
			const main = d3.select("#main");

			/*声明绘图框尺寸
        width 宽度,600
        height 高度,600
    */
			const width = 600;
			const height = 600;

			/*建立svg 对象
			 *   svg 画布尺寸100%充满容器对象
			 *   绘图框尺寸按照600设置
			 * */
			const svg = main
				.append("svg")
				.attr("version", 1.2)
				.attr("xmlns", "http://www.w3.org/2000/svg")
				.attr("width", "100%")
				.attr("height", "100%")
				.attr("viewBox", `0 0 ${width} ${height}`);

			/*===========3-建立轴相关的基础数据===========*/
			/*-----x轴相关的基础数据-----*/
			/*计算类目数量 len*/
			const len = categories.length;

			/*用range()方法,基于类目数量,获取x轴的在图表坐标系中的数据 xChartData,如[0,1,2]*/
			const xChartData = d3.range(len);

			/*x轴在像素坐标内的起始点和结束点 xPixelRange,左右各偏移50*/
			const xPixelRange = [50, width - 50];

			/*-----y轴相关的基础数据-----*/
			/*计算数据源中所有数据的极值 maxY
			 *   用js原生方法flat()展开数据源,再通过max()方法取极值
			 * */
			const maxY = Math.max(...source.flat());

			/*声明y轴在图表坐标系中的数据起点和结束点 yChartRange*/
			const yChartRange = [0, maxY];

			/*声明y轴在像素坐标系中的数据起点和结束点 yPixelRange*/
			const yPixelRange = [height - 50, 50];

			/*===========4-建立比例尺===========*/
			/*-----x 轴比例尺 xScale-----*/
			/*
			 * 用scaleBand()方法建立分段比例尺 xScale
			 * 用domain()方法在比例尺中写入图表数据xChartData
			 * 用rangeRound()方法在比例尺中写入像素数据,即像素的起始位和结束位xPixelRange
			 * 用padding()方法设置类目的内边距,百分比单位,如0.1
			 * */
			const xScale = d3
				.scaleBand()
				.domain(xChartData)
				.rangeRound(xPixelRange)
				.padding(0.1);

			/*-----y 轴比例尺 xScale-----*/
			/*
			 * 用scaleLinear()方法建立线性比例尺 yScale
			 * 用domain()方法在比例尺中写入图表数据yChartRange
			 * range()方法在比例尺中写入像素数据,即像素的起始位和结束位yPixelRange
			 * */
			const yScale = d3.scaleLinear().domain(yChartRange).range(yPixelRange);

			/*===========5-建立轴对象===========*/
			/*-----x轴对象-----*/
			/*基于比例尺xScale,用axisBottom()方法创建刻度朝下的坐标轴生成器 xAxisGenerator*/
			const xAxisGenerator = d3.axisBottom(xScale);

			/*利用坐标轴生成器绘制坐标轴
			 *   在svg中append 加入g 对象
			 *   用transform 属性中的translateY 设置x轴的y位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用selectAll()方法选择所有的text文本
			 *   用text()方法将图表数据设置为类目数据
			 *   用attr()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", `translate(0, ${height - 50})`)
				.call(xAxisGenerator)
				.selectAll("text")
				.text((n) => categories[n])
				.attr("font-size", "12px");

			/*-----y轴对象-----*/
			/*基于比例尺yScale,用axisLeft()方法创建刻度朝左的坐标轴生成器 yAxisGenerator*/
			const yAxisGenerator = d3.axisLeft(yScale);

			/*利用坐标轴生成器生成坐标轴
			 *   在svg中append 加入g 对象
			 *   用transform 属性中的translate设置y轴的x位置
			 *   用call()方法调用xAxisGenerator轴生成器,生成坐标轴
			 *   用attr()方法设置字体大小
			 * */
			svg
				.append("g")
				.attr("transform", "translate(50 0)")
				.call(yAxisGenerator)
				.attr("font-size", "12px");

			/*===========6-建立绘图区相关的基础数据===========*/
			/*-----绘图区相关的基础数据-----*/
			/*用x轴比例尺xScale的bandwidth()方法获取x轴上一个类目的像素宽xBandW*/
			const xBandW = xScale.bandwidth();

			/*获取系列的数量n*/
			const n = source.length;

			/*用类目宽除以系列数,得到一个类目中每个系列元素的宽,即列宽colW*/
			const colW = xBandW / n;
			console.log(colW);

			/*计算调色盘颜色数量colorLen*/
			const colorLen = color.length;

			/*===========7-架构绘图区===========*/
			/*在svg中建立系列集合seriesObjs,在系列集合中建立系列对象
			 *   在svg中append 加入g 对象
			 *   selectAll() 选择所有g元素,此处重点不在选择,而是建立一个选择集对象
			 *   用data() 方法将具备系列信息的数据源source绑定到系列集合中
			 *   用join() 基于数据源批量创建g元素,一个g代表一个系列,之后每个g元素里都会放入三个不同类目的柱状体
			 *   用transform 属性中的translate设置系列的x像素位——列宽乘以系列索引
			 *   基于系列索引,从调色盘中取色,然后将其作为一个系列中所有图形的填充色
			 * */
			const seriesObjs = svg
				.append("g")
				.selectAll("g")
				.data(source)
				.join("g")
				.attr(
					"transform",
					(seriesData, seriesInd) => `translate(${seriesInd * colW} 0)`
				)
				.attr("fill", (seriesData, seriesInd) => color[seriesInd % colorLen]);

			/*在系列集合中建立柱状体集合rects
			 *   用系列集合seriesObjs 的selectAll()方法选择所有的rect元素,用于建立选择集对象
			 *   用data()方法将之前绑定在每个系列集合中的数据绑定到柱状体集合中
			 *   用join()基于每个系列的数据数据批量创建rect元素
			 *   用classed() 方法为其添加item属性
			 * */
			const rects = seriesObjs
				.selectAll("rect")
				.data((seriesData) => seriesData)
				.join("rect")
				.classed("item", true);

			/*=8-用attr()方法设置每个柱状体的x、y位置和width、height 尺寸=*/
			/*
			 * 设置柱状体的x像素位
			 *   从回调参数中获取柱状体在当前系列中的索引rectInd,系列索引 seriesInd
			 *   基于柱状体在当前系列中的索引rectInd,用x轴比例尺xScale()获取柱状体在当前系列中的x像素位
			 * 设置柱状体像素宽width为列宽colW
			 * 设置柱状体的y像素位
			 *   从回调参数中解构柱状体数据rectData
			 *   基于柱状体数据rectData,用y轴比例尺yScale()获取柱状体的y像素位
			 * 设置柱状体的像素像素高
			 *   从回调参数中解构柱状体数据rectData
			 *   让y轴上刻度为0的像素位,减去刻度为柱状图实际数据的像素位,即为柱状图的像素高
			 * */
			const kkbScale = KKBScale(0, height - 50, 50, 50);
			console.log("kkbScale", kkbScale(10));
			console.log("yScale", yScale(10));

			rects
				.attr("x", (rectData, rectInd) => xScale(rectInd))
				.attr("width", colW)
				.attr("y", (rectData) => kkbScale(rectData))
				.attr("height", (rectData) => kkbScale(0) - kkbScale(rectData));

			//比例尺
			function KKBScale(ax, ay, bx, by) {
				const AB = {
					x: bx - ax,
					y: by - ay,
				};
				const k = AB.y / AB.x;
				const b = ay - ax * k;
				return function (x) {
					return k * x + b;
				};
			}
		</script>
	</body>
</html>

总结 ​

咱们这一章主要介绍了 d3 的一些扩展知识,如数组、请求、随机数、格式化、多边形、地图等,每个知识点还有需多其它的方法,大家可以去文档里简单看一下,以后在项目中若遇到了相关需求,可以再去寻找。

Released under the MIT License.