This commit is contained in:
André Michelle
2025-10-16 20:29:04 +02:00
parent 35fb8f3424
commit 67f5fefc1a
81 changed files with 623 additions and 524 deletions
@@ -1,5 +1,5 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
extends: ["@opendaw/eslint-config/index.js"],
root: true,
extends: ["@opendaw/eslint-config/index.js"],
};
+2 -2
View File
@@ -1,5 +1,5 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
extends: ["@opendaw/eslint-config/index.js"],
root: true,
extends: ["@opendaw/eslint-config/index.js"],
};
+2 -2
View File
@@ -1,5 +1,5 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
extends: ["@opendaw/eslint-config/index.js"],
root: true,
extends: ["@opendaw/eslint-config/index.js"],
};
+2 -2
View File
@@ -1,5 +1,5 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
extends: ["@opendaw/eslint-config/index.js"],
root: true,
extends: ["@opendaw/eslint-config/index.js"],
};
+80 -80
View File
@@ -1,88 +1,88 @@
<!doctype html>
<html lang="en" translate="no">
<head>
<meta charset="UTF-8">
<meta name="google" content="notranslate">
<meta name="apple-mobile-web-app-capable" content="notranslate">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin">
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta name="robots" content="noindex, nofollow">
<meta name="title" content="openDAW Studio Prototype" />
<meta name="description"
content="openDAW is a next-gen web-based digital audio workstation designed to democratize music production." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://opendaw.studio" />
<meta property="og:title" content="openDAW Studio Prototype" />
<meta property="og:description"
content="openDAW is a next-gen web-based digital audio workstation designed to democratize music production." />
<meta property="og:image" content="/images/meta.jpg" />
<meta property="twitter:card" content="summary_large_image" />
<meta property="twitter:url" content="https://opendaw.studio" />
<meta property="twitter:title" content="openDAW Studio Prototype" />
<meta property="twitter:description"
content="openDAW is a next-gen web-based digital audio workstation designed to democratize music production." />
<meta property="twitter:image" content="/images/meta.jpg" />
<link rel="icon" type="image/x-icon" href="/favicon.svg">
<link rel="canonical" href="https://opendaw.studio">
<title>🎧openDAW.studio</title>
<style>
html, body {
width: 100%;
height: 100%;
color: red;
background-color: hsl(200, 9%, 9%);
font-family: Rubik, sans-serif;
overflow: hidden;
display: flex
}
<meta charset="UTF-8">
<meta name="google" content="notranslate">
<meta name="apple-mobile-web-app-capable" content="notranslate">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cross-Origin-Opener-Policy" content="same-origin">
<meta http-equiv="Cross-Origin-Embedder-Policy" content="require-corp">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<meta name="robots" content="noindex, nofollow">
<meta name="title" content="openDAW Studio Prototype"/>
<meta name="description"
content="openDAW is a next-gen web-based digital audio workstation designed to democratize music production."/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="https://opendaw.studio"/>
<meta property="og:title" content="openDAW Studio Prototype"/>
<meta property="og:description"
content="openDAW is a next-gen web-based digital audio workstation designed to democratize music production."/>
<meta property="og:image" content="/images/meta.jpg"/>
<meta property="twitter:card" content="summary_large_image"/>
<meta property="twitter:url" content="https://opendaw.studio"/>
<meta property="twitter:title" content="openDAW Studio Prototype"/>
<meta property="twitter:description"
content="openDAW is a next-gen web-based digital audio workstation designed to democratize music production."/>
<meta property="twitter:image" content="/images/meta.jpg"/>
<link rel="icon" type="image/x-icon" href="/favicon.svg">
<link rel="canonical" href="https://opendaw.studio">
<title>🎧openDAW.studio</title>
<style>
html, body {
width: 100%;
height: 100%;
color: red;
background-color: hsl(200, 9%, 9%);
font-family: Rubik, sans-serif;
overflow: hidden;
display: flex
}
#preloader {
top: calc(50% - 0.5em);
left: calc(50% - 0.5em);
scale: 0.25;
position: absolute;
font-size: 10px;
width: 1em;
height: 1em;
border-radius: 50%;
text-indent: -9999em;
animation: mulShdSpin 1.1s infinite ease;
transform: translateZ(0);
}
#preloader {
top: calc(50% - 0.5em);
left: calc(50% - 0.5em);
scale: 0.25;
position: absolute;
font-size: 10px;
width: 1em;
height: 1em;
border-radius: 50%;
text-indent: -9999em;
animation: mulShdSpin 1.1s infinite ease;
transform: translateZ(0);
}
@keyframes mulShdSpin {
0%,
100% {
box-shadow: 0em -2.6em 0em 0em #ffffff, 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.5), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.7);
}
12.5% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.7), 1.8em -1.8em 0 0em #ffffff, 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.5);
}
25% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.5), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.7), 2.5em 0em 0 0em #ffffff, 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
}
37.5% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.5), 2.5em 0em 0 0em rgba(255, 255, 255, 0.7), 1.75em 1.75em 0 0em #ffffff, 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
}
50% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.5), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.7), 0em 2.5em 0 0em #ffffff, -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
}
62.5% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.5), 0em 2.5em 0 0em rgba(255, 255, 255, 0.7), -1.8em 1.8em 0 0em #ffffff, -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
}
75% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.5), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.7), -2.6em 0em 0 0em #ffffff, -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
}
87.5% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.5), -2.6em 0em 0 0em rgba(255, 255, 255, 0.7), -1.8em -1.8em 0 0em #ffffff;
}
}
</style>
<script type="module" src="/src/main.ts"></script>
@keyframes mulShdSpin {
0%,
100% {
box-shadow: 0em -2.6em 0em 0em #ffffff, 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.5), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.7);
}
12.5% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.7), 1.8em -1.8em 0 0em #ffffff, 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.5);
}
25% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.5), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.7), 2.5em 0em 0 0em #ffffff, 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
}
37.5% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.5), 2.5em 0em 0 0em rgba(255, 255, 255, 0.7), 1.75em 1.75em 0 0em #ffffff, 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
}
50% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.5), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.7), 0em 2.5em 0 0em #ffffff, -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.2), -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
}
62.5% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.5), 0em 2.5em 0 0em rgba(255, 255, 255, 0.7), -1.8em 1.8em 0 0em #ffffff, -2.6em 0em 0 0em rgba(255, 255, 255, 0.2), -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
}
75% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.5), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.7), -2.6em 0em 0 0em #ffffff, -1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2);
}
87.5% {
box-shadow: 0em -2.6em 0em 0em rgba(255, 255, 255, 0.2), 1.8em -1.8em 0 0em rgba(255, 255, 255, 0.2), 2.5em 0em 0 0em rgba(255, 255, 255, 0.2), 1.75em 1.75em 0 0em rgba(255, 255, 255, 0.2), 0em 2.5em 0 0em rgba(255, 255, 255, 0.2), -1.8em 1.8em 0 0em rgba(255, 255, 255, 0.5), -2.6em 0em 0 0em rgba(255, 255, 255, 0.7), -1.8em -1.8em 0 0em #ffffff;
}
}
</style>
<script type="module" src="/src/main.ts"></script>
</head>
<body>
<span id="preloader"></span>
@@ -13,5 +13,6 @@ However, there are differences in which web APIs are supported by each browser.
## Legend
### ⚠️ Workaround
This symbol indicates a temporary solution or alternative approach to bypass a limitation, bug, or
missing feature. It is not a permanent fix but allows functionality until an official resolution is available.
@@ -13,8 +13,8 @@
* ~~If MIDI, select all channels or specific channel~~
* ~~Arm buttons default behavior should be radio group (shift to add)~~
* ~~Capture audio~~
* layout channels
* adjust pre-gain?
* layout channels
* adjust pre-gain?
* ~~MIDI Controller (values)~~
* ~~Put Recording.start into class Project~~
* ~~Stop (~~start~~) recording at quantized positions~~
@@ -8,7 +8,8 @@ as it makes working with openDAW much smoother.
## More Info
In all modern browsers, `navigator.mediaDevices.enumerateDevices()` will only list audio and video devices after the user
In all modern browsers, `navigator.mediaDevices.enumerateDevices()` will only list audio and video devices after the
user
grants permission—typically via a getUserMedia() call. Chrome, Safari, and Firefox have all adopted this behavior to
protect user privacy and reduce fingerprinting risks. Without permission, device names, IDs, or availability remain
hidden. This is how browsers are designed. Granting microphone access ensures openDAW can list
@@ -13,7 +13,10 @@ access to user samples, openDAW copies every imported sample into OPFS, allowing
these files securely without relying on external file paths.
## Granting OPFS Storage Permission in Firefox
In Firefox, storing data in OPFS requires explicit user approval due to its privacy settings. Without permission, openDAW may not be able to retain imported samples across sessions. To allow persistent storage for openDAW in Firefox, follow these steps:
In Firefox, storing data in OPFS requires explicit user approval due to its privacy settings. Without permission,
openDAW may not be able to retain imported samples across sessions. To allow persistent storage for openDAW in Firefox,
follow these steps:
* Open Firefox Settings
* Navigate to Privacy & Security
@@ -71,4 +71,5 @@ Each in-house library has a clear, focused purpose.
* [jszip](https://www.npmjs.com/package/jszip) (Pack & Unpack Zip-Files)
* [markdown-it](https://www.npmjs.com/package/markdown-it) + markdown-it-table (Markdown parsing/rendering)
* [d3-force](https://github.com/d3/d3-force) and [force-graph](https://github.com/vasturiano/force-graph) (graph/layout) < dynamic import
* [d3-force](https://github.com/d3/d3-force) and [force-graph](https://github.com/vasturiano/force-graph) (
graph/layout) < dynamic import
@@ -1 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256"><path d="M10.303 136.287a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92l118.02-118.02a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92l-118.02 118.02a8.395 8.395 0 0 1-5.96 2.47zm-.466 47.486a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92L169.383 3.877a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L15.797 181.306a8.404 8.404 0 0 1-5.96 2.467zm0 47.022a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92L216.405 3.877a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L15.797 228.325a8.395 8.395 0 0 1-5.96 2.47zm23.511 23.512a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92l212.529-212.53a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92l-212.53 212.53a8.405 8.405 0 0 1-5.96 2.47zm47.022 0a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92L239.917 74.41a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L86.33 251.837a8.405 8.405 0 0 1-5.96 2.47zm47.02 0a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92l118.253-118.254a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L133.35 251.837a8.4 8.4 0 0 1-5.96 2.47zm47.02 0a8.4 8.4 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92l71.467-71.467a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92l-71.467 71.467a8.395 8.395 0 0 1-5.96 2.47zM9.837 89.73a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92L75.34 3.878a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L15.797 87.26a8.395 8.395 0 0 1-5.96 2.47zm0-47.02a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92L28.32 3.878a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L15.797 40.24a8.395 8.395 0 0 1-5.96 2.47zm211.598 211.597a8.4 8.4 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92l24.442-24.442a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92l-24.442 24.442a8.405 8.405 0 0 1-5.96 2.47z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256">
<path d="M10.303 136.287a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92l118.02-118.02a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92l-118.02 118.02a8.395 8.395 0 0 1-5.96 2.47zm-.466 47.486a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92L169.383 3.877a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L15.797 181.306a8.404 8.404 0 0 1-5.96 2.467zm0 47.022a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92L216.405 3.877a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L15.797 228.325a8.395 8.395 0 0 1-5.96 2.47zm23.511 23.512a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92l212.529-212.53a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92l-212.53 212.53a8.405 8.405 0 0 1-5.96 2.47zm47.022 0a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92L239.917 74.41a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L86.33 251.837a8.405 8.405 0 0 1-5.96 2.47zm47.02 0a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92l118.253-118.254a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L133.35 251.837a8.4 8.4 0 0 1-5.96 2.47zm47.02 0a8.4 8.4 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92l71.467-71.467a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92l-71.467 71.467a8.395 8.395 0 0 1-5.96 2.47zM9.837 89.73a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92L75.34 3.878a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L15.797 87.26a8.395 8.395 0 0 1-5.96 2.47zm0-47.02a8.395 8.395 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92L28.32 3.878a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92L15.797 40.24a8.395 8.395 0 0 1-5.96 2.47zm211.598 211.597a8.4 8.4 0 0 1-5.96-2.47 8.426 8.426 0 0 1 0-11.92l24.442-24.442a8.426 8.426 0 0 1 11.92 0 8.426 8.426 0 0 1 0 11.92l-24.442 24.442a8.405 8.405 0 0 1-5.96 2.47z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m256.0016,21c0,0-7.5444,12.187-18.0659,32.3125-14.0426-11.3735-31.3058-19.606-50.8188-23.2063-6.9118-1.2756-13.7108-1.8856-20.4154-1.9096-46.9342-.1694-86.9175,29.155-93.7062,71.9687-7.7588,48.9303 30.628,96.8688 85.9216,107.0721 7.8453,1.4476 15.6261,2.0539 23.2063,1.9091-2.6268,15.6341-4.2591,31.3683-4.2596,46.8533 0,1.073.1319,2.1555.1456,3.2313h-113.3875c5.7659-15.3168 15.8615-28.4387 28.7875-37.8937-40.8266,3.9198-72.4096,32.532-72.4091,67.2688s31.5807,63.3499 72.4091,67.2688c-12.926-9.4554-23.0216-22.5774-28.7875-37.8937h120.2909c4.5045,21.2421 10.9021,41.9963 17.9187,61.3937h-56.8409c3.3154-8.8064 9.0184-16.4486 16.45-21.8846-23.4723,2.2537-41.5654,18.8038-41.5654,38.775s18.0922,36.3751 41.5654,38.6283c-7.4316-5.436-13.1346-12.9316-16.45-21.7375h70.0596c19.8138,45.9354 39.95,77.8438 39.95,77.8438s20.1358-31.9083 39.95-77.8438h70.0591c-3.3148,8.8059-9.0183,16.301-16.4499,21.7375 23.4736-2.2532 41.5658-18.6566 41.5658-38.6283s-18.0936-36.5214-41.5658-38.775c7.4316,5.4361 13.1346,13.0782 16.4499,21.8846h-56.8404c7.0161-19.3974 13.4138-40.1516 17.9187-61.3937h120.2904c-5.766,15.3168-15.8611,28.4383-28.7875,37.8937 40.8284-3.9188 72.4096-32.5315 72.4096-67.2688s-31.5831-63.349-72.4096-67.2688c12.926,9.455 23.0216,22.5765 28.7875,37.8937h-113.3875c0-1.0758.1456-2.1583.1456-3.2313 0-15.485-1.6327-31.2193-4.2596-46.8533 7.5801.1456 15.361-.4605 23.2062-1.9091 55.2936-10.2033 93.6804-58.1418 85.9221-107.0721-6.7892-42.8137-46.7721-72.137-93.7063-71.9687-6.705,0-13.5041.6342-20.4158,1.9096-19.513,3.6007-36.7761,11.8328-50.8187,23.2063-10.5214-20.1254-18.0654-32.3125-18.0654-32.3125zm-85.188,21.8841c5.9116.0649 11.9643.6363 18.0659,1.7625 16.5848,3.0602 31.4364,9.9325 43.6216,19.0938-16.5341,32.9851-37.5224,81.3575-48.0279,132.1875-6.2933,0-12.7195-.5592-19.2404-1.7625-48.8142-9.0071-83.2154-49.7777-76.6692-91.0625 5.7284-36.1242 40.8707-60.6949 82.25-60.2188zm170.3755,0c41.3792-.4764 76.5216,24.0946 82.25,60.2188 6.5462,41.2853-27.855,82.0554-76.6687,91.0625-6.5213,1.2032-12.9471,1.7465-19.2409,1.7625-10.5054-50.83-31.4938-99.2024-48.0284-132.1875 12.1857-9.1613 27.0373-16.0336 43.6221-19.0938 6.1016-1.1256 12.1543-1.6943 18.0659-1.7625zm-162.4437,28.4937c-15.4033,0-29.3087,5.8938-39.8034,15.4221h26.5846c7.0524,0 12.6313,5.845 12.6313,13.0717s-5.5789,12.925-12.6313,12.925h-43.3284c-1.6601,5.397-2.4967,11.1108-2.4967,17.0375 0,31.6775 25.6211,57.3221 57.575,58.1625 .8512-5.3241 1.7555-10.5976 2.9375-15.8625-12.628-.9752-22.4721-11.397-22.4721-24.0875 0-13.3278 10.8504-24.0875 24.3813-24.0871 4.2534,0 8.4182,1.067 11.8971,2.9375 6.3479-16.9171 13.4073-32.1579 19.5346-44.3562-9.7544-6.9682-21.8385-11.1625-34.8096-11.1625zm154.5125,0c-12.9711,0-25.0553,4.1943-34.8096,11.1625 6.1269,12.1988 13.1863,27.4395 19.5346,44.3563 3.4789-1.8701 7.6436-2.9375 11.8966-2.9375 13.5309,0 24.3813,10.7597 24.3813,24.0875 0,12.69-9.8442,23.1123-22.4717,24.0875 1.182,5.265 2.0863,10.5384 2.9375,15.8625 31.9539-.8404 57.575-26.4854 57.575-58.1625 0-5.9267-.8371-11.6405-2.4966-17.0375h-43.3284c-7.0529,0-12.7779-5.6983-12.7779-12.925s5.7256-13.0721 12.7779-13.0721h26.5846c-10.4951-9.5284-24.4006-15.4221-39.8034-15.4221zm-101.1972,34.9563c-6.0658,18.2675-11.1625,91.5978-11.1625,111.4784 0,53.5621 35.1034,113.6813 35.1034,113.6813s35.1029-60.1196 35.1029-113.6813c0-19.8805-5.0967-93.2109-11.1625-111.4784 15.0489,26.1813 31.725,115.3131 31.725,149.6658 0,6.6247-.807,13.2724-1.9096,19.975h122.7875c6.7553,0 12.1909,5.2434 12.1909,11.8966s-5.4356,12.0438-12.1909,12.0438h-128.5153c-9.5983,30.2299-26.0733,57.6634-37.0125,74.025 8.6799,4.0787 14.8341,12.8084 14.8346,22.9125v.7346h78.4313c2.5935,0 4.5529,2.0234 4.5529,4.5529s-1.9594,4.5534-4.5529,4.5534h-80.6346c-3.9095,9.1039-12.98,15.4216-23.6467,15.4216s-19.7377-6.3177-23.6471-15.4216h-80.6342c-2.594,0-4.5534-2.0238-4.5534-4.5534s1.9594-4.5529 4.5534-4.5529h78.4312v-.7346c0-10.1041 6.1542-18.8338 14.8341-22.9125-10.9392-16.3617-27.4142-43.7951-37.0125-74.025h-128.5153c-6.7553,0-12.1909-5.3899-12.1909-12.0438s5.4356-11.8966 12.1904-11.8971h122.7875c-1.1021-6.7022-1.9091-13.3504-1.9091-19.975 0-34.3523 16.6761-123.4845 31.725-149.6654zm23.9409,26.1437c8.8247,0 16.0091,7.0373 16.0091,15.8625s-7.184,16.0096-16.0091,16.0096-16.0096-7.1844-16.0096-16.0096 7.184-15.8625 16.0091-15.8625zm0,44.3563c8.8251,0 16.0091,7.0373 16.0091,15.8625s-7.184,16.0096-16.0091,16.0096-16.0096-7.1844-16.0096-16.0096 7.1844-15.8625 16.0096-15.862zm-.0005,44.3562c8.8256,0 16.0096,7.0373 16.0096,15.8625s-7.184,16.0096-16.0091,16.0096-16.0096-7.1844-16.0096-16.0096 7.184-15.8625 16.0096-15.8625zm.0005,159.8c-8.8256,0-16.0096,7.0373-16.0096,15.8625s7.1844,16.0096 16.0096,16.0096 16.0091-7.1845 16.0091-16.0096-7.184-15.8625-16.0091-15.8625z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m256.0016,21c0,0-7.5444,12.187-18.0659,32.3125-14.0426-11.3735-31.3058-19.606-50.8188-23.2063-6.9118-1.2756-13.7108-1.8856-20.4154-1.9096-46.9342-.1694-86.9175,29.155-93.7062,71.9687-7.7588,48.9303 30.628,96.8688 85.9216,107.0721 7.8453,1.4476 15.6261,2.0539 23.2063,1.9091-2.6268,15.6341-4.2591,31.3683-4.2596,46.8533 0,1.073.1319,2.1555.1456,3.2313h-113.3875c5.7659-15.3168 15.8615-28.4387 28.7875-37.8937-40.8266,3.9198-72.4096,32.532-72.4091,67.2688s31.5807,63.3499 72.4091,67.2688c-12.926-9.4554-23.0216-22.5774-28.7875-37.8937h120.2909c4.5045,21.2421 10.9021,41.9963 17.9187,61.3937h-56.8409c3.3154-8.8064 9.0184-16.4486 16.45-21.8846-23.4723,2.2537-41.5654,18.8038-41.5654,38.775s18.0922,36.3751 41.5654,38.6283c-7.4316-5.436-13.1346-12.9316-16.45-21.7375h70.0596c19.8138,45.9354 39.95,77.8438 39.95,77.8438s20.1358-31.9083 39.95-77.8438h70.0591c-3.3148,8.8059-9.0183,16.301-16.4499,21.7375 23.4736-2.2532 41.5658-18.6566 41.5658-38.6283s-18.0936-36.5214-41.5658-38.775c7.4316,5.4361 13.1346,13.0782 16.4499,21.8846h-56.8404c7.0161-19.3974 13.4138-40.1516 17.9187-61.3937h120.2904c-5.766,15.3168-15.8611,28.4383-28.7875,37.8937 40.8284-3.9188 72.4096-32.5315 72.4096-67.2688s-31.5831-63.349-72.4096-67.2688c12.926,9.455 23.0216,22.5765 28.7875,37.8937h-113.3875c0-1.0758.1456-2.1583.1456-3.2313 0-15.485-1.6327-31.2193-4.2596-46.8533 7.5801.1456 15.361-.4605 23.2062-1.9091 55.2936-10.2033 93.6804-58.1418 85.9221-107.0721-6.7892-42.8137-46.7721-72.137-93.7063-71.9687-6.705,0-13.5041.6342-20.4158,1.9096-19.513,3.6007-36.7761,11.8328-50.8187,23.2063-10.5214-20.1254-18.0654-32.3125-18.0654-32.3125zm-85.188,21.8841c5.9116.0649 11.9643.6363 18.0659,1.7625 16.5848,3.0602 31.4364,9.9325 43.6216,19.0938-16.5341,32.9851-37.5224,81.3575-48.0279,132.1875-6.2933,0-12.7195-.5592-19.2404-1.7625-48.8142-9.0071-83.2154-49.7777-76.6692-91.0625 5.7284-36.1242 40.8707-60.6949 82.25-60.2188zm170.3755,0c41.3792-.4764 76.5216,24.0946 82.25,60.2188 6.5462,41.2853-27.855,82.0554-76.6687,91.0625-6.5213,1.2032-12.9471,1.7465-19.2409,1.7625-10.5054-50.83-31.4938-99.2024-48.0284-132.1875 12.1857-9.1613 27.0373-16.0336 43.6221-19.0938 6.1016-1.1256 12.1543-1.6943 18.0659-1.7625zm-162.4437,28.4937c-15.4033,0-29.3087,5.8938-39.8034,15.4221h26.5846c7.0524,0 12.6313,5.845 12.6313,13.0717s-5.5789,12.925-12.6313,12.925h-43.3284c-1.6601,5.397-2.4967,11.1108-2.4967,17.0375 0,31.6775 25.6211,57.3221 57.575,58.1625 .8512-5.3241 1.7555-10.5976 2.9375-15.8625-12.628-.9752-22.4721-11.397-22.4721-24.0875 0-13.3278 10.8504-24.0875 24.3813-24.0871 4.2534,0 8.4182,1.067 11.8971,2.9375 6.3479-16.9171 13.4073-32.1579 19.5346-44.3562-9.7544-6.9682-21.8385-11.1625-34.8096-11.1625zm154.5125,0c-12.9711,0-25.0553,4.1943-34.8096,11.1625 6.1269,12.1988 13.1863,27.4395 19.5346,44.3563 3.4789-1.8701 7.6436-2.9375 11.8966-2.9375 13.5309,0 24.3813,10.7597 24.3813,24.0875 0,12.69-9.8442,23.1123-22.4717,24.0875 1.182,5.265 2.0863,10.5384 2.9375,15.8625 31.9539-.8404 57.575-26.4854 57.575-58.1625 0-5.9267-.8371-11.6405-2.4966-17.0375h-43.3284c-7.0529,0-12.7779-5.6983-12.7779-12.925s5.7256-13.0721 12.7779-13.0721h26.5846c-10.4951-9.5284-24.4006-15.4221-39.8034-15.4221zm-101.1972,34.9563c-6.0658,18.2675-11.1625,91.5978-11.1625,111.4784 0,53.5621 35.1034,113.6813 35.1034,113.6813s35.1029-60.1196 35.1029-113.6813c0-19.8805-5.0967-93.2109-11.1625-111.4784 15.0489,26.1813 31.725,115.3131 31.725,149.6658 0,6.6247-.807,13.2724-1.9096,19.975h122.7875c6.7553,0 12.1909,5.2434 12.1909,11.8966s-5.4356,12.0438-12.1909,12.0438h-128.5153c-9.5983,30.2299-26.0733,57.6634-37.0125,74.025 8.6799,4.0787 14.8341,12.8084 14.8346,22.9125v.7346h78.4313c2.5935,0 4.5529,2.0234 4.5529,4.5529s-1.9594,4.5534-4.5529,4.5534h-80.6346c-3.9095,9.1039-12.98,15.4216-23.6467,15.4216s-19.7377-6.3177-23.6471-15.4216h-80.6342c-2.594,0-4.5534-2.0238-4.5534-4.5534s1.9594-4.5529 4.5534-4.5529h78.4312v-.7346c0-10.1041 6.1542-18.8338 14.8341-22.9125-10.9392-16.3617-27.4142-43.7951-37.0125-74.025h-128.5153c-6.7553,0-12.1909-5.3899-12.1909-12.0438s5.4356-11.8966 12.1904-11.8971h122.7875c-1.1021-6.7022-1.9091-13.3504-1.9091-19.975 0-34.3523 16.6761-123.4845 31.725-149.6654zm23.9409,26.1437c8.8247,0 16.0091,7.0373 16.0091,15.8625s-7.184,16.0096-16.0091,16.0096-16.0096-7.1844-16.0096-16.0096 7.184-15.8625 16.0091-15.8625zm0,44.3563c8.8251,0 16.0091,7.0373 16.0091,15.8625s-7.184,16.0096-16.0091,16.0096-16.0096-7.1844-16.0096-16.0096 7.1844-15.8625 16.0096-15.862zm-.0005,44.3562c8.8256,0 16.0096,7.0373 16.0096,15.8625s-7.184,16.0096-16.0091,16.0096-16.0096-7.1844-16.0096-16.0096 7.184-15.8625 16.0096-15.8625zm.0005,159.8c-8.8256,0-16.0096,7.0373-16.0096,15.8625s7.1844,16.0096 16.0096,16.0096 16.0091-7.1845 16.0091-16.0096-7.184-15.8625-16.0091-15.8625z"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m21,491c15.6613-29.061 114.9027-51.4062 235-51.4062s219.3387,22.3452 235,51.4062h-470zm61.2471-42.0062c6.9255-6.3939 15.6473-12.3699 25.7029-17.7716l9.6938-168.6125c-26.0902-5.6099-45.6779-29.6133-45.6779-58.3096 0-31.2109 23.2297-56.7041 52.7279-59.1904l4.7001-79.4595 4.7,79.4595c29.4982,2.4863 52.7284,27.9796 52.7284,59.1904 0,28.6963-19.5881,52.6997-45.6784,58.3096l8.6659,151.7217c24.5914-7.2996 53.1453-12.0626 83.8654-13.6592l10.575-182.7125c-26.0902-5.61-45.6779-29.6133-45.6779-58.3096 0-31.2108 23.2297-56.7041 52.7279-59.1904l4.7-79.4596 4.7001,79.4596c29.4981,2.4863 52.7284,27.9796 52.7284,59.1904 0,28.6964-19.5882,52.6997-45.6784,58.3096l10.575,182.7125c30.6995,1.5886 59.1359,6.3755 83.7188,13.6592l8.6659-151.7217c-26.0902-5.6099-45.6784-29.6133-45.6784-58.3096 0-31.2109 23.2297-56.7041 52.7284-59.1904l4.7-79.4595 4.7,79.4595c29.4982,2.4863 52.7279,27.9796 52.7279,59.1904 0,28.6963-19.5882,52.6997-45.678,58.3096l9.6938,168.6125c10.1309,5.4271 18.8851,11.3392 25.85,17.7716-38.6767-12.1857-101.9834-20.2688-173.7534-20.2688-71.7577,0-135.071,8.0835-173.7529,20.2688zm47.1467-190.6437c28.8171,0 52.1409-24.1815 52.1409-54.05s-23.3238-54.05-52.1409-54.05-52.2875,24.182-52.2875,54.05 23.4704,54.05 52.2875,54.05zm253.0659,0c28.8166,0 52.1404-24.1815 52.1404-54.05s-23.3237-54.05-52.1404-54.05-52.2875,24.182-52.2875,54.05 23.4704,54.05 52.2875,54.05zm-253.0659-9.4c-23.774,0-43.0342-20.0084-43.0342-44.65s19.2602-44.6501 43.0342-44.6501 43.0346,20.0089 43.0346,44.6501-19.2606,44.65-43.0346,44.65zm253.0659,0c-23.774,0-43.0346-20.0084-43.0346-44.65s19.2606-44.6501 43.0346-44.6501 43.0341,20.0089 43.0341,44.6501-19.2601,44.65-43.0341,44.65zm-126.4596-35.25c28.8172,0 52.1409-24.1815 52.1409-54.05s-23.3237-54.05-52.1409-54.05-52.2875,24.182-52.2875,54.05 23.4704,54.05 52.2875,54.05zm0-9.3999c-23.774,0-43.0341-20.0084-43.0341-44.6501s19.2601-44.5029 43.0341-44.5029 43.0346,19.8618 43.0346,44.5029-19.2606,44.6501-43.0346,44.6501z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m21,491c15.6613-29.061 114.9027-51.4062 235-51.4062s219.3387,22.3452 235,51.4062h-470zm61.2471-42.0062c6.9255-6.3939 15.6473-12.3699 25.7029-17.7716l9.6938-168.6125c-26.0902-5.6099-45.6779-29.6133-45.6779-58.3096 0-31.2109 23.2297-56.7041 52.7279-59.1904l4.7001-79.4595 4.7,79.4595c29.4982,2.4863 52.7284,27.9796 52.7284,59.1904 0,28.6963-19.5881,52.6997-45.6784,58.3096l8.6659,151.7217c24.5914-7.2996 53.1453-12.0626 83.8654-13.6592l10.575-182.7125c-26.0902-5.61-45.6779-29.6133-45.6779-58.3096 0-31.2108 23.2297-56.7041 52.7279-59.1904l4.7-79.4596 4.7001,79.4596c29.4981,2.4863 52.7284,27.9796 52.7284,59.1904 0,28.6964-19.5882,52.6997-45.6784,58.3096l10.575,182.7125c30.6995,1.5886 59.1359,6.3755 83.7188,13.6592l8.6659-151.7217c-26.0902-5.6099-45.6784-29.6133-45.6784-58.3096 0-31.2109 23.2297-56.7041 52.7284-59.1904l4.7-79.4595 4.7,79.4595c29.4982,2.4863 52.7279,27.9796 52.7279,59.1904 0,28.6963-19.5882,52.6997-45.678,58.3096l9.6938,168.6125c10.1309,5.4271 18.8851,11.3392 25.85,17.7716-38.6767-12.1857-101.9834-20.2688-173.7534-20.2688-71.7577,0-135.071,8.0835-173.7529,20.2688zm47.1467-190.6437c28.8171,0 52.1409-24.1815 52.1409-54.05s-23.3238-54.05-52.1409-54.05-52.2875,24.182-52.2875,54.05 23.4704,54.05 52.2875,54.05zm253.0659,0c28.8166,0 52.1404-24.1815 52.1404-54.05s-23.3237-54.05-52.1404-54.05-52.2875,24.182-52.2875,54.05 23.4704,54.05 52.2875,54.05zm-253.0659-9.4c-23.774,0-43.0342-20.0084-43.0342-44.65s19.2602-44.6501 43.0342-44.6501 43.0346,20.0089 43.0346,44.6501-19.2606,44.65-43.0346,44.65zm253.0659,0c-23.774,0-43.0346-20.0084-43.0346-44.65s19.2606-44.6501 43.0346-44.6501 43.0341,20.0089 43.0341,44.6501-19.2601,44.65-43.0341,44.65zm-126.4596-35.25c28.8172,0 52.1409-24.1815 52.1409-54.05s-23.3237-54.05-52.1409-54.05-52.2875,24.182-52.2875,54.05 23.4704,54.05 52.2875,54.05zm0-9.3999c-23.774,0-43.0341-20.0084-43.0341-44.6501s19.2601-44.5029 43.0341-44.5029 43.0346,19.8618 43.0346,44.5029-19.2606,44.6501-43.0346,44.6501z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m256,21-235,119.5562c35.3919,5.4586 74.4386,9.6712 116.0312,12.4842l107.3659-112.0654-90.3284,113.0937c12.7498.7295 25.7697,1.2935 38.9221,1.7625 9.8475-25.2169 34.3058-43.1813 63.0091-43.1813s53.1622,17.9643 63.0096,43.1813c13.1647-.4699 26.1602-1.0316 38.9217-1.7625l-90.3279-113.0937 107.3654,112.0654c41.587-2.8144 80.6158-7.0246 116.0312-12.4842l-235-119.5562zm0,107.8063c-28.4594,0-51.5528,23.0934-51.5528,51.5529s23.0934,51.5533 51.5528,51.5533 51.5534-23.0939 51.5534-51.5533-23.0935-51.5529-51.5534-51.5529zm-234.7062,17.3312 38.4812,56.5466c1.5407-.8526 3.1509-1.5942 4.8471-2.0562 1.6319-.4468 3.3022-.8225 4.9938-.8813 25.372-.8779 56.6476,40.8863 72.1154,97.6722 3.3699,12.3708 5.6611,24.4513 7.05,35.9841l107.2187,157.5971 107.3659-157.7438c1.3916-11.4877 3.6951-23.5207 7.05-35.8374 15.4677-56.7859 46.8905-98.5501 72.2625-97.6722 1.6916.0577 3.3614.4367 4.9937.8813 1.6319.4468 3.0663,1.1026 4.553,1.9096l38.4812-56.4c-33.7423,8.1079-72.561,14.4308-114.7092,18.6529l-108.3937,279.3563 89.8875-277.5937c-11.3745.9461-23.0314,1.723-34.8096,2.35 .6378,3.7318 1.0284,7.5426 1.0284,11.4563 0,37.388-30.3216,67.7096-67.7097,67.7096s-67.7091-30.3215-67.7091-67.7096c0-3.9137.3899-7.7245 1.0279-11.4563-11.7928-.6263-23.422-1.4034-34.8091-2.35l89.8875,277.5937-108.3937-279.3563c-42.1553-4.2201-80.9885-10.5463-114.7096-18.6529zm52.5813,71.0875c-.8775.0987-1.6304.263-2.4967.4418-2.7251.5628-5.3491,1.7202-7.7846,3.3779 19.5365,17.5766 33.2093,78.7508 32.1658,152.0158-.5354,37.6014-4.7916,72.2766-11.6033,99.7279 9.3986,10.5595 19.2169,15.8992 28.6408,13.9534 27.7145-5.7233 41.0052-70.5024 29.5217-144.8188-10.7654-69.6719-39.4306-123.0314-65.8-124.6971-.8789-.0577-1.7658-.0987-2.6437,0zm361.7533,0c-26.3689,1.6657-55.0342,55.0248-65.8,124.6967-11.4835,74.3168 1.8076,139.096 29.5217,144.8187 9.4244,1.9463 19.2422-3.3934 28.6409-13.9528-6.8112-27.4518-11.0676-62.1265-11.6034-99.7284-1.0434-73.2646 12.6294-134.4388 32.1659-152.0154-2.4351-1.6582-5.0596-2.8153-7.7846-3.3783-.8657-.1787-1.6191-.343-2.4966-.4418s-1.7648-.0577-2.6438,0z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m256,21-235,119.5562c35.3919,5.4586 74.4386,9.6712 116.0312,12.4842l107.3659-112.0654-90.3284,113.0937c12.7498.7295 25.7697,1.2935 38.9221,1.7625 9.8475-25.2169 34.3058-43.1813 63.0091-43.1813s53.1622,17.9643 63.0096,43.1813c13.1647-.4699 26.1602-1.0316 38.9217-1.7625l-90.3279-113.0937 107.3654,112.0654c41.587-2.8144 80.6158-7.0246 116.0312-12.4842l-235-119.5562zm0,107.8063c-28.4594,0-51.5528,23.0934-51.5528,51.5529s23.0934,51.5533 51.5528,51.5533 51.5534-23.0939 51.5534-51.5533-23.0935-51.5529-51.5534-51.5529zm-234.7062,17.3312 38.4812,56.5466c1.5407-.8526 3.1509-1.5942 4.8471-2.0562 1.6319-.4468 3.3022-.8225 4.9938-.8813 25.372-.8779 56.6476,40.8863 72.1154,97.6722 3.3699,12.3708 5.6611,24.4513 7.05,35.9841l107.2187,157.5971 107.3659-157.7438c1.3916-11.4877 3.6951-23.5207 7.05-35.8374 15.4677-56.7859 46.8905-98.5501 72.2625-97.6722 1.6916.0577 3.3614.4367 4.9937.8813 1.6319.4468 3.0663,1.1026 4.553,1.9096l38.4812-56.4c-33.7423,8.1079-72.561,14.4308-114.7092,18.6529l-108.3937,279.3563 89.8875-277.5937c-11.3745.9461-23.0314,1.723-34.8096,2.35 .6378,3.7318 1.0284,7.5426 1.0284,11.4563 0,37.388-30.3216,67.7096-67.7097,67.7096s-67.7091-30.3215-67.7091-67.7096c0-3.9137.3899-7.7245 1.0279-11.4563-11.7928-.6263-23.422-1.4034-34.8091-2.35l89.8875,277.5937-108.3937-279.3563c-42.1553-4.2201-80.9885-10.5463-114.7096-18.6529zm52.5813,71.0875c-.8775.0987-1.6304.263-2.4967.4418-2.7251.5628-5.3491,1.7202-7.7846,3.3779 19.5365,17.5766 33.2093,78.7508 32.1658,152.0158-.5354,37.6014-4.7916,72.2766-11.6033,99.7279 9.3986,10.5595 19.2169,15.8992 28.6408,13.9534 27.7145-5.7233 41.0052-70.5024 29.5217-144.8188-10.7654-69.6719-39.4306-123.0314-65.8-124.6971-.8789-.0577-1.7658-.0987-2.6437,0zm361.7533,0c-26.3689,1.6657-55.0342,55.0248-65.8,124.6967-11.4835,74.3168 1.8076,139.096 29.5217,144.8187 9.4244,1.9463 19.2422-3.3934 28.6409-13.9528-6.8112-27.4518-11.0676-62.1265-11.6034-99.7284-1.0434-73.2646 12.6294-134.4388 32.1659-152.0154-2.4351-1.6582-5.0596-2.8153-7.7846-3.3783-.8657-.1787-1.6191-.343-2.4966-.4418s-1.7648-.0577-2.6438,0z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m21,21.0019c2.7392,17.4074 5.2367,36.0635 7.3461,55.6826 11.7805-4.1529 24.4004-6.4644 37.6116-6.4644 62.3641,0 112.8349,50.4708 112.8349,112.8344s-50.4708,112.981-112.8349,112.981c-10.0406,0-19.8292-1.2304-29.0901-3.673-.5081,26.6132-1.5326,52.2714-3.0855,76.9857 21.9019-4.496 44.5427-6.8841 66.996-6.9052 22.8941,0 45.6598,2.3279 67.4363,7.0523 23.7368,5.217 45.337,12.7412 66.7022,19.6873 21.2721,6.8526 42.4954,13.3517 64.7916,16.1613 34.9303,4.4645 72.5781-.0505 104.7542-13.0758-30.3102,15.2726-68.1037,22.9157-105.9297,20.8623-24.0785-1.3447-47.4134-6.3027-69.7872-11.7538-22.5214-5.4252-44.5249-11.3486-66.408-14.3979-44.3533-6.3003-90.8319-1.2723-130.6121,12.4884-.3574,4.3592-.7863,8.7983-1.1755,13.0758 30.611-9.4648 63.3718-14.3679 95.9389-14.3984 22.8941,0 45.5132,2.328 67.2896,7.0523 23.7368,5.217 45.4841,12.8883 66.8488,19.8339 21.2721,6.8526 42.4958,13.2051 64.7921,16.0143 34.9303,4.4645 72.5781-.0505 104.7542-13.0759-30.3106,15.2731-68.1041,22.9158-105.9296,20.8628-24.0785-1.3451-47.4134-6.3027-69.7873-11.7538-22.5213-5.4252-44.5248-11.2019-66.4079-14.2513-56.4078-8.0121-116.2147,2.3618-161.3185,25.7113-1.7418,14.7485-3.6213,29.0468-5.7302,42.4597 64.8475-10.1741 146.2861-16.3081 235.073-16.3081 88.7221,0 170.1008,6.1471 234.9254,16.3081-6.8295-43.5722-11.6959-94.7122-14.2513-150.4456-20.7753,7.5134-43.1825,11.6066-66.5546,11.6066-108.1499,0-195.845-87.6946-195.845-195.8441 0-44.8237 15.1823-86.02 40.55-119.0045-88.325-.0576-169.3395-6.1495-233.8976-16.3085zm469.9984,0c-54.5381,8.5742-120.8591,14.1305-193.347,15.7205-31.8645,29.9568-51.8629,72.4079-51.8629,119.5925 0,90.7826 73.621,164.4031 164.4041,164.4031 23.2193,0 45.2157-4.8316 65.2324-13.5167-.4137-15.1626-.6947-30.5926-.7346-46.2793-3.3995,2.1038-6.8103,4.1031-10.4312,5.8769-.24.1175-.4958.1787-.7346.2962-1.402.6753-2.8299,1.4335-4.261,2.0567-.3856.1643-.7906.2775-1.1755.4418-1.2981.5499-2.6461,1.1102-3.9668,1.6159-.3337.1268-.6954.1694-1.0283.2962-3.0922,1.1543-6.1984,2.1789-9.4028,3.0855-1.6079.4562-3.2148.932-4.8485,1.3221-.1549.0432-.2868.1124-.4418.1456-.5974.1412-1.1623.3099-1.763.4418-1.2394.2724-2.5666.5009-3.8202.7346-1.2901.24-2.6626.3899-3.9668.5881-.5052.075-.9617.2205-1.4692.2962-.5924.0843-1.1675.0721-1.763.1456-3.0047.3762-6.0414.7257-9.109.8813h-.5873c-1.9031.0894-3.8056.1456-5.7302.1456-67.8894,0-122.8252-55.0819-122.8252-122.9714 0-2.1216.0432-4.2229.1456-6.3177 1.1661-23.0445 8.7288-44.4731 20.8628-62.4407 1.1031-1.6337 2.2005-3.1255 3.3788-4.7014 22.3884-29.9464 58.1275-49.3653 98.437-49.3653 2.1352,0 4.2088.0504 6.3177.1456 3.0677.1549 6.1044.5059 9.1091.8817 .5751.0721 1.1896.0649 1.763.1456 .5016.0721.9691.2162 1.4692.2962 1.3531.2068 2.6283.3387 3.9668.5873 .529.0987 1.0899.1881 1.6158.2962 1.3033.2587 2.679.5801 3.9673.8817 .1506.0504.2912.1124.4418.1456 1.6338.3899 3.2402.8686 4.8481,1.3221 3.5537,1.0053 7.0166,2.0703 10.4316,3.3793 1.3348.5095 2.6546,1.0623 3.9668,1.6159 .3805.16.7971.2775 1.1755.4418 .6075.263 1.1605.6082 1.763.8817 6.0325,2.7434 11.8732,5.907 17.3364,9.55 .2018.1362.3856.3056.5881.4418 1.2897.8709 2.5657,1.7263 3.8197,2.6442 .0894.0649.2068.0843.2962.1456 .908.6681 1.7719,1.3658 2.6447,2.0572 1.6097-13.2648 3.3816-26.1875 5.2893-38.3463zm-80.8058,69.6402c-36.3135,0-65.6739,29.3603-65.6739,65.6728s29.3603,65.82 65.6739,65.82 65.8199-29.5069 65.8199-65.82-29.5069-65.6728-65.8199-65.6728zm-344.2349,12.4883c-12.3224,0-23.9426,2.8054-34.3794,7.7865 3.7181,44.7589 5.7302,93.6462 5.7302,145.1566 0,.6435.0004,1.2671 0,1.9101 8.8933,3.4075 18.5701,5.2889 28.6492,5.2889 44.2076,0 79.9246-35.8642 79.9246-80.0713s-35.7171-80.0708-79.9246-80.0708z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m21,21.0019c2.7392,17.4074 5.2367,36.0635 7.3461,55.6826 11.7805-4.1529 24.4004-6.4644 37.6116-6.4644 62.3641,0 112.8349,50.4708 112.8349,112.8344s-50.4708,112.981-112.8349,112.981c-10.0406,0-19.8292-1.2304-29.0901-3.673-.5081,26.6132-1.5326,52.2714-3.0855,76.9857 21.9019-4.496 44.5427-6.8841 66.996-6.9052 22.8941,0 45.6598,2.3279 67.4363,7.0523 23.7368,5.217 45.337,12.7412 66.7022,19.6873 21.2721,6.8526 42.4954,13.3517 64.7916,16.1613 34.9303,4.4645 72.5781-.0505 104.7542-13.0758-30.3102,15.2726-68.1037,22.9157-105.9297,20.8623-24.0785-1.3447-47.4134-6.3027-69.7872-11.7538-22.5214-5.4252-44.5249-11.3486-66.408-14.3979-44.3533-6.3003-90.8319-1.2723-130.6121,12.4884-.3574,4.3592-.7863,8.7983-1.1755,13.0758 30.611-9.4648 63.3718-14.3679 95.9389-14.3984 22.8941,0 45.5132,2.328 67.2896,7.0523 23.7368,5.217 45.4841,12.8883 66.8488,19.8339 21.2721,6.8526 42.4958,13.2051 64.7921,16.0143 34.9303,4.4645 72.5781-.0505 104.7542-13.0759-30.3106,15.2731-68.1041,22.9158-105.9296,20.8628-24.0785-1.3451-47.4134-6.3027-69.7873-11.7538-22.5213-5.4252-44.5248-11.2019-66.4079-14.2513-56.4078-8.0121-116.2147,2.3618-161.3185,25.7113-1.7418,14.7485-3.6213,29.0468-5.7302,42.4597 64.8475-10.1741 146.2861-16.3081 235.073-16.3081 88.7221,0 170.1008,6.1471 234.9254,16.3081-6.8295-43.5722-11.6959-94.7122-14.2513-150.4456-20.7753,7.5134-43.1825,11.6066-66.5546,11.6066-108.1499,0-195.845-87.6946-195.845-195.8441 0-44.8237 15.1823-86.02 40.55-119.0045-88.325-.0576-169.3395-6.1495-233.8976-16.3085zm469.9984,0c-54.5381,8.5742-120.8591,14.1305-193.347,15.7205-31.8645,29.9568-51.8629,72.4079-51.8629,119.5925 0,90.7826 73.621,164.4031 164.4041,164.4031 23.2193,0 45.2157-4.8316 65.2324-13.5167-.4137-15.1626-.6947-30.5926-.7346-46.2793-3.3995,2.1038-6.8103,4.1031-10.4312,5.8769-.24.1175-.4958.1787-.7346.2962-1.402.6753-2.8299,1.4335-4.261,2.0567-.3856.1643-.7906.2775-1.1755.4418-1.2981.5499-2.6461,1.1102-3.9668,1.6159-.3337.1268-.6954.1694-1.0283.2962-3.0922,1.1543-6.1984,2.1789-9.4028,3.0855-1.6079.4562-3.2148.932-4.8485,1.3221-.1549.0432-.2868.1124-.4418.1456-.5974.1412-1.1623.3099-1.763.4418-1.2394.2724-2.5666.5009-3.8202.7346-1.2901.24-2.6626.3899-3.9668.5881-.5052.075-.9617.2205-1.4692.2962-.5924.0843-1.1675.0721-1.763.1456-3.0047.3762-6.0414.7257-9.109.8813h-.5873c-1.9031.0894-3.8056.1456-5.7302.1456-67.8894,0-122.8252-55.0819-122.8252-122.9714 0-2.1216.0432-4.2229.1456-6.3177 1.1661-23.0445 8.7288-44.4731 20.8628-62.4407 1.1031-1.6337 2.2005-3.1255 3.3788-4.7014 22.3884-29.9464 58.1275-49.3653 98.437-49.3653 2.1352,0 4.2088.0504 6.3177.1456 3.0677.1549 6.1044.5059 9.1091.8817 .5751.0721 1.1896.0649 1.763.1456 .5016.0721.9691.2162 1.4692.2962 1.3531.2068 2.6283.3387 3.9668.5873 .529.0987 1.0899.1881 1.6158.2962 1.3033.2587 2.679.5801 3.9673.8817 .1506.0504.2912.1124.4418.1456 1.6338.3899 3.2402.8686 4.8481,1.3221 3.5537,1.0053 7.0166,2.0703 10.4316,3.3793 1.3348.5095 2.6546,1.0623 3.9668,1.6159 .3805.16.7971.2775 1.1755.4418 .6075.263 1.1605.6082 1.763.8817 6.0325,2.7434 11.8732,5.907 17.3364,9.55 .2018.1362.3856.3056.5881.4418 1.2897.8709 2.5657,1.7263 3.8197,2.6442 .0894.0649.2068.0843.2962.1456 .908.6681 1.7719,1.3658 2.6447,2.0572 1.6097-13.2648 3.3816-26.1875 5.2893-38.3463zm-80.8058,69.6402c-36.3135,0-65.6739,29.3603-65.6739,65.6728s29.3603,65.82 65.6739,65.82 65.8199-29.5069 65.8199-65.82-29.5069-65.6728-65.8199-65.6728zm-344.2349,12.4883c-12.3224,0-23.9426,2.8054-34.3794,7.7865 3.7181,44.7589 5.7302,93.6462 5.7302,145.1566 0,.6435.0004,1.2671 0,1.9101 8.8933,3.4075 18.5701,5.2889 28.6492,5.2889 44.2076,0 79.9246-35.8642 79.9246-80.0713s-35.7171-80.0708-79.9246-80.0708z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m256,21-33.6774,69.8895c-54.0932-1.1139-131.5117-30.7728-174.4697-45.7512 4.2394,29.907 36.159,99.7767 37.9798,136.6915l-64.8328,13.473 66.3165,71.8541c-.5592,58.8802-40.0501,135.8968-55.7829,177.2497 13.5041-1.7212 72.9764-22.5323 87.9765-23.8577l-6.5279,70.4511 116.0167-65.5391c-1.1275-3.2064-1.7803-6.6524-1.7803-10.2451 0-16.3508 12.6393-29.6772 28.7814-30.8748 16.1426,1.1976 28.7818,14.524 28.7818,30.8748 0,3.5927-.6529,7.0387-1.7803,10.2451l116.0162,65.5391-6.5278-70.4511c15.0005,1.3254 74.4729,22.1365 87.977,23.8577-15.7328-41.3529-55.2236-118.3695-55.7829-177.2497l66.316-71.8541-64.8327-13.473c1.8212-36.9148 33.7408-106.7845 37.9802-136.6915-42.958,14.9784-120.3764,44.6373-174.4702,45.7512l-33.6773-69.8895zm-178.475,56.9781c36.495,14.6047 92.4358,33.9082 132.039,35.2255l-11.5719,20.0685c11.7148,4.4603 20.0281,15.5476 20.0281,28.7697 0,17.1399-14.0511,31.0153-31.3034,31.0153-15.5058,0-28.27-11.2532-30.7103-25.9628l-46.8816,9.8235c-1.6412-26.0262-20.3698-71.5203-31.5999-98.9397zm356.9504,0c-11.2307,27.4194-29.9592,72.9134-31.6004,98.9397l-46.8811-9.8235c-2.4407,14.7096-15.2045,25.9628-30.7103,25.9628-17.2528,0-31.3039-13.8753-31.3039-31.0153 0-13.2221 8.3139-24.3094 20.0286-28.7697l-11.5719-20.0685c39.6026-1.3174 95.544-20.6208 132.039-35.2255zm-178.4754,82.8009 25.6662,44.4878c-5.4487,2.0746-9.1984,7.1825-9.1984,13.3325 0,7.9717 6.5147,14.4548 14.5395,14.4548 7.2117,0 13.1074-5.0873 14.2425-11.9291l62.7553,13.0519-42.7272,46.3124c-2.6541-3.6185-7.0218-5.7542-11.8684-5.7542-8.0243,0-14.5395,6.3432-14.5395,14.3148s6.5151,14.4553 14.5395,14.4553c1.6374,0 3.1269-.3481 4.5989-.8422l7.2695,62.8723-53.8541-24.4193c.5246-1.4913.5931-2.9601.5931-4.6309 0-7.1543-5.1644-12.9202-12.017-14.0342-6.8526,1.1139-12.017,6.8799-12.017,14.0342 0,1.6709.0721,3.1396.5938,4.6309l-53.8545,24.4193 7.27-62.8723c1.472.4951 2.961.8422 4.5989.8422 8.0243,0 14.5389-6.4832 14.5389-14.4553s-6.5146-14.3148-14.5389-14.3148c-4.8466,0-9.2148,2.1357-11.8689,5.7542l-42.7272-46.3124 62.7558-13.0519c1.135,6.8418 7.0308,11.9291 14.2424,11.9291 8.0243,0 14.539-6.4832 14.539-14.4548 0-6.1499-3.7492-11.2579-9.1979-13.3325l25.6658-44.4878zm-119.577,120.5522c5.1992,0 10.0341,1.1731 14.391,3.2279 .9202.4324 1.8019.8916 2.6705,1.4034 .3387.1975.7084.3481 1.0383.5614 .0894.0504.2068.0843.2962.1412 9.0099,5.4337 14.9845,15.2632 14.9845,26.5244 0,17.14-13.9031,31.0153-31.1553,31.0153-3.5218,0-6.9232-.6198-10.0885-1.6841l-6.5279,56.1359c-6.8234.7171-40.9097,9.1466-47.3262,9.9644 8.4948-20.5639 18.9058-58.4426 29.5231-92.3442-.2018-1.3921-.2962-2.7645-.2962-4.2102 0-7.0932 2.5558-13.6056 6.8249-18.8056 .0504-.1787.1081-.3856.1506-.5614l.1506.1412c5.9521-7.0068 15.1274-11.508 25.3692-11.508zm239.1539,0c10.2423,0 19.4171,4.5011 25.3697,11.5079l.1506-.1413c.0505.1787.1081.3856.1506.5614 4.2685,5.1996 6.8244,11.712 6.8244,18.8052 0,1.4457-.0937,2.8181-.2962,4.2102 10.6173,33.9016 21.0283,71.7803 29.5236,92.3442-6.4169-.8178-40.5028-9.2472-47.3267-9.964l-6.5278-56.1363c-3.1655,1.0646-6.5669,1.6841-10.0881,1.6841-17.2528,0-31.1554-13.8754-31.1554-31.0153 0-11.2612 5.9742-21.0907 14.9841-26.5244 .0894-.0577.2068-.0843.2962-.1412 .3286-.2112.7005-.3618 1.0387-.5614 .868-.5117 1.7498-.9691 2.6701-1.4034 4.3574-2.0548 9.1917-3.2279 14.3909-3.2279z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m256,21-33.6774,69.8895c-54.0932-1.1139-131.5117-30.7728-174.4697-45.7512 4.2394,29.907 36.159,99.7767 37.9798,136.6915l-64.8328,13.473 66.3165,71.8541c-.5592,58.8802-40.0501,135.8968-55.7829,177.2497 13.5041-1.7212 72.9764-22.5323 87.9765-23.8577l-6.5279,70.4511 116.0167-65.5391c-1.1275-3.2064-1.7803-6.6524-1.7803-10.2451 0-16.3508 12.6393-29.6772 28.7814-30.8748 16.1426,1.1976 28.7818,14.524 28.7818,30.8748 0,3.5927-.6529,7.0387-1.7803,10.2451l116.0162,65.5391-6.5278-70.4511c15.0005,1.3254 74.4729,22.1365 87.977,23.8577-15.7328-41.3529-55.2236-118.3695-55.7829-177.2497l66.316-71.8541-64.8327-13.473c1.8212-36.9148 33.7408-106.7845 37.9802-136.6915-42.958,14.9784-120.3764,44.6373-174.4702,45.7512l-33.6773-69.8895zm-178.475,56.9781c36.495,14.6047 92.4358,33.9082 132.039,35.2255l-11.5719,20.0685c11.7148,4.4603 20.0281,15.5476 20.0281,28.7697 0,17.1399-14.0511,31.0153-31.3034,31.0153-15.5058,0-28.27-11.2532-30.7103-25.9628l-46.8816,9.8235c-1.6412-26.0262-20.3698-71.5203-31.5999-98.9397zm356.9504,0c-11.2307,27.4194-29.9592,72.9134-31.6004,98.9397l-46.8811-9.8235c-2.4407,14.7096-15.2045,25.9628-30.7103,25.9628-17.2528,0-31.3039-13.8753-31.3039-31.0153 0-13.2221 8.3139-24.3094 20.0286-28.7697l-11.5719-20.0685c39.6026-1.3174 95.544-20.6208 132.039-35.2255zm-178.4754,82.8009 25.6662,44.4878c-5.4487,2.0746-9.1984,7.1825-9.1984,13.3325 0,7.9717 6.5147,14.4548 14.5395,14.4548 7.2117,0 13.1074-5.0873 14.2425-11.9291l62.7553,13.0519-42.7272,46.3124c-2.6541-3.6185-7.0218-5.7542-11.8684-5.7542-8.0243,0-14.5395,6.3432-14.5395,14.3148s6.5151,14.4553 14.5395,14.4553c1.6374,0 3.1269-.3481 4.5989-.8422l7.2695,62.8723-53.8541-24.4193c.5246-1.4913.5931-2.9601.5931-4.6309 0-7.1543-5.1644-12.9202-12.017-14.0342-6.8526,1.1139-12.017,6.8799-12.017,14.0342 0,1.6709.0721,3.1396.5938,4.6309l-53.8545,24.4193 7.27-62.8723c1.472.4951 2.961.8422 4.5989.8422 8.0243,0 14.5389-6.4832 14.5389-14.4553s-6.5146-14.3148-14.5389-14.3148c-4.8466,0-9.2148,2.1357-11.8689,5.7542l-42.7272-46.3124 62.7558-13.0519c1.135,6.8418 7.0308,11.9291 14.2424,11.9291 8.0243,0 14.539-6.4832 14.539-14.4548 0-6.1499-3.7492-11.2579-9.1979-13.3325l25.6658-44.4878zm-119.577,120.5522c5.1992,0 10.0341,1.1731 14.391,3.2279 .9202.4324 1.8019.8916 2.6705,1.4034 .3387.1975.7084.3481 1.0383.5614 .0894.0504.2068.0843.2962.1412 9.0099,5.4337 14.9845,15.2632 14.9845,26.5244 0,17.14-13.9031,31.0153-31.1553,31.0153-3.5218,0-6.9232-.6198-10.0885-1.6841l-6.5279,56.1359c-6.8234.7171-40.9097,9.1466-47.3262,9.9644 8.4948-20.5639 18.9058-58.4426 29.5231-92.3442-.2018-1.3921-.2962-2.7645-.2962-4.2102 0-7.0932 2.5558-13.6056 6.8249-18.8056 .0504-.1787.1081-.3856.1506-.5614l.1506.1412c5.9521-7.0068 15.1274-11.508 25.3692-11.508zm239.1539,0c10.2423,0 19.4171,4.5011 25.3697,11.5079l.1506-.1413c.0505.1787.1081.3856.1506.5614 4.2685,5.1996 6.8244,11.712 6.8244,18.8052 0,1.4457-.0937,2.8181-.2962,4.2102 10.6173,33.9016 21.0283,71.7803 29.5236,92.3442-6.4169-.8178-40.5028-9.2472-47.3267-9.964l-6.5278-56.1363c-3.1655,1.0646-6.5669,1.6841-10.0881,1.6841-17.2528,0-31.1554-13.8754-31.1554-31.0153 0-11.2612 5.9742-21.0907 14.9841-26.5244 .0894-.0577.2068-.0843.2962-.1412 .3286-.2112.7005-.3618 1.0387-.5614 .868-.5117 1.7498-.9691 2.6701-1.4034 4.3574-2.0548 9.1917-3.2279 14.3909-3.2279z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m255.8531,490.9997c0,0-26.2829-69.0378-29.5035-124.4032-30.5542,46.3457-87.9231,93.1186-87.9231,93.1186s11.8435-72.9391 36.8427-122.4936c-49.7052,24.9236-122.8574,36.7187-122.8574,36.7187s46.8641-57.2238 93.3536-87.684c-55.5332-3.211-124.7655-29.3749-124.7655-29.3749s88.4863-33.5166 145.6091-29.375c1.1411.0843 2.2733.3149 3.376.4418-.4043,3.3713-.7341,6.8019-.7341,10.2812 0,47.6622 38.7947,86.2152 86.6022,86.2152h.147 .147c47.8074,0 86.602-38.5531 86.602-86.2152 0-3.4794-.3322-6.91-.7339-10.2812 1.1026-.1268 2.2348-.3574 3.376-.4418 57.1225-4.1417 145.6088,29.375 145.6088,29.375s-69.2319,26.1639-124.7656,29.3749c46.4898,30.4602 93.3541,87.684 93.3541,87.684s-73.1524-11.7951-122.8575-36.7187c24.9993,49.5544 36.8426,122.4936 36.8426,122.4936s-57.3688-46.7729-87.923-93.1186c-3.2206,55.3654-29.5034,124.4032-29.5034,124.4032l-.147-.4418-.147.4418zm-4.4035-184.7685c-4.3345-.2587-8.5328-.9292-12.6234-1.9096v-47.5874c0-7.6337-6.2593-13.8062-14.0912-13.8062s-14.0912,6.1725-14.0912,13.8062v33.6346c-16.6112-13.2681-27.3016-33.6581-27.3016-56.547 0-9.2505 1.8287-18.0222 4.9906-26.1437 2.2281-.9358 4.4513-1.896 6.6053-3.0842 13.8211-7.7804 23.671-21.5584 29.7969-35.8374 8.8157-20.5494 31.2648-147.7561 31.2648-147.7561s22.4492,127.2067 31.2648,147.7561c6.126,14.279 15.9759,28.057 29.797,35.8374 2.1539,1.1882 4.3771,2.1484 6.6052,3.0842 3.1619,8.1215 4.9907,16.8932 4.9907,26.1437 0,22.8889-10.6905,43.2789-27.3017,56.547v-33.6346c0-7.6337-6.2594-13.8062-14.0912-13.8062s-14.0911,6.1725-14.0911,13.8062v47.5874c-4.0907.9805-8.289,1.6526-12.6234,1.9096-1.4448.0843-2.9387,0-4.4035,0h-.147-.147c-1.4648,0-2.9587.0843-4.4035,0zm-95.7027-104.7219c-1.4204.0432-2.8383-.0987-4.2568-.1456-6.8065-.2493-13.5844-1.5406-19.9623-3.9654-16.9665-6.5964-29.8694-20.1696-35.5216-36.5721-5.4867-17.6753-3.2284-34.1172-2.4952-48.6153 .2349-7.2248.0504-14.1803-1.4679-20.7096-1.5143-6.4785-4.2483-12.9123-8.8068-17.4779-6.1279-6.3257-16.1572-9.447-25.5403-7.6375-9.3924,1.7761-18.1199,8.646-22.1642,18.2125 2.6358-10.0514 10.6374-18.8051 21.1368-22.4721 10.5078-3.634 22.9276-1.8964 32.4389,5.2875 6.7887,5.2362 11.6024,12.5278 14.5314,20.4158 2.9446,7.8391 4.3588,16.127 5.1376,23.9404 1.8193,15.5767 1.6365,30.3619 7.4856,40.5374 4.8476,9.392 14.5042,16.4519 23.9258,18.3595 9.3803,2.037 19.7-.6234 26.421-6.1687 6.8083-5.4064 11.3415-14.5023 11.3021-22.325 .0843-4.3315-1.2367-8.8802-3.229-12.7783-1.4546.1549-2.9088.1456-4.4039.1456-23.1324,0-41.9799-18.8832-41.9799-42.1528s18.8474-42.0062 41.9799-42.0062 41.8334,18.7361 41.8334,42.0062c0,4.9542-.7858,9.6829-2.3485,14.1 7.7755,14.2185 10.5021,30.4089 7.6326,46.1187-3.8108,19.7907-15.9485,36.3751-32.5858,45.8249-9.1465,5.0911-19.1194,7.7625-29.0632,8.0779zm200.5058,0c-9.9435-.3149-19.9168-2.9869-29.0631-8.0779-16.6372-9.4498-28.775-26.0342-32.5858-45.825-2.8693-15.7097-.1427-31.9003 7.6327-46.1186-1.5628-4.4171-2.3486-9.1457-2.3486-14.1 0-23.2701 18.7006-42.0062 41.8332-42.0062s41.98,18.7361 41.98,42.0062-18.8474,42.1529-41.98,42.1529c-1.4947,0-2.9492.005-4.4035-.1456-1.9924,3.8981-3.3138,8.4468-3.2292,12.7783-.036,7.8227 4.494,16.9186 11.3023,22.3249 6.7207,5.5455 17.0405,8.2057 26.421,6.1688 9.4217-1.9077 19.0784-8.9676 23.9257-18.3595 5.8495-10.1755 5.6664-24.9608 7.4859-40.5374 .7788-7.8133 2.193-16.1013 5.1374-23.9404 2.9292-7.888 7.743-15.1796 14.5316-20.4159 9.5113-7.1839 21.931-8.9215 32.439-5.2874 10.4992,3.6669 18.5009,12.4207 21.1368,22.4721-4.0447-9.5664-12.772-16.4364-22.1642-18.2125-9.3834-1.8095-19.4124,1.3118-25.5403,7.6375-4.5588,4.5656-7.2928,10.9994-8.807,17.4779-1.5007,6.5292-1.7037,13.4847-1.4679,20.7096 .7333,14.4981 2.9915,30.94-2.4953,48.6153-5.6523,16.4025-18.5552,29.9757-35.5215,36.5721-6.3779,2.4247-13.1558,3.7177-19.9625,3.9654-1.4181.0504-2.8363.1924-4.2567.1456z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m255.8531,490.9997c0,0-26.2829-69.0378-29.5035-124.4032-30.5542,46.3457-87.9231,93.1186-87.9231,93.1186s11.8435-72.9391 36.8427-122.4936c-49.7052,24.9236-122.8574,36.7187-122.8574,36.7187s46.8641-57.2238 93.3536-87.684c-55.5332-3.211-124.7655-29.3749-124.7655-29.3749s88.4863-33.5166 145.6091-29.375c1.1411.0843 2.2733.3149 3.376.4418-.4043,3.3713-.7341,6.8019-.7341,10.2812 0,47.6622 38.7947,86.2152 86.6022,86.2152h.147 .147c47.8074,0 86.602-38.5531 86.602-86.2152 0-3.4794-.3322-6.91-.7339-10.2812 1.1026-.1268 2.2348-.3574 3.376-.4418 57.1225-4.1417 145.6088,29.375 145.6088,29.375s-69.2319,26.1639-124.7656,29.3749c46.4898,30.4602 93.3541,87.684 93.3541,87.684s-73.1524-11.7951-122.8575-36.7187c24.9993,49.5544 36.8426,122.4936 36.8426,122.4936s-57.3688-46.7729-87.923-93.1186c-3.2206,55.3654-29.5034,124.4032-29.5034,124.4032l-.147-.4418-.147.4418zm-4.4035-184.7685c-4.3345-.2587-8.5328-.9292-12.6234-1.9096v-47.5874c0-7.6337-6.2593-13.8062-14.0912-13.8062s-14.0912,6.1725-14.0912,13.8062v33.6346c-16.6112-13.2681-27.3016-33.6581-27.3016-56.547 0-9.2505 1.8287-18.0222 4.9906-26.1437 2.2281-.9358 4.4513-1.896 6.6053-3.0842 13.8211-7.7804 23.671-21.5584 29.7969-35.8374 8.8157-20.5494 31.2648-147.7561 31.2648-147.7561s22.4492,127.2067 31.2648,147.7561c6.126,14.279 15.9759,28.057 29.797,35.8374 2.1539,1.1882 4.3771,2.1484 6.6052,3.0842 3.1619,8.1215 4.9907,16.8932 4.9907,26.1437 0,22.8889-10.6905,43.2789-27.3017,56.547v-33.6346c0-7.6337-6.2594-13.8062-14.0912-13.8062s-14.0911,6.1725-14.0911,13.8062v47.5874c-4.0907.9805-8.289,1.6526-12.6234,1.9096-1.4448.0843-2.9387,0-4.4035,0h-.147-.147c-1.4648,0-2.9587.0843-4.4035,0zm-95.7027-104.7219c-1.4204.0432-2.8383-.0987-4.2568-.1456-6.8065-.2493-13.5844-1.5406-19.9623-3.9654-16.9665-6.5964-29.8694-20.1696-35.5216-36.5721-5.4867-17.6753-3.2284-34.1172-2.4952-48.6153 .2349-7.2248.0504-14.1803-1.4679-20.7096-1.5143-6.4785-4.2483-12.9123-8.8068-17.4779-6.1279-6.3257-16.1572-9.447-25.5403-7.6375-9.3924,1.7761-18.1199,8.646-22.1642,18.2125 2.6358-10.0514 10.6374-18.8051 21.1368-22.4721 10.5078-3.634 22.9276-1.8964 32.4389,5.2875 6.7887,5.2362 11.6024,12.5278 14.5314,20.4158 2.9446,7.8391 4.3588,16.127 5.1376,23.9404 1.8193,15.5767 1.6365,30.3619 7.4856,40.5374 4.8476,9.392 14.5042,16.4519 23.9258,18.3595 9.3803,2.037 19.7-.6234 26.421-6.1687 6.8083-5.4064 11.3415-14.5023 11.3021-22.325 .0843-4.3315-1.2367-8.8802-3.229-12.7783-1.4546.1549-2.9088.1456-4.4039.1456-23.1324,0-41.9799-18.8832-41.9799-42.1528s18.8474-42.0062 41.9799-42.0062 41.8334,18.7361 41.8334,42.0062c0,4.9542-.7858,9.6829-2.3485,14.1 7.7755,14.2185 10.5021,30.4089 7.6326,46.1187-3.8108,19.7907-15.9485,36.3751-32.5858,45.8249-9.1465,5.0911-19.1194,7.7625-29.0632,8.0779zm200.5058,0c-9.9435-.3149-19.9168-2.9869-29.0631-8.0779-16.6372-9.4498-28.775-26.0342-32.5858-45.825-2.8693-15.7097-.1427-31.9003 7.6327-46.1186-1.5628-4.4171-2.3486-9.1457-2.3486-14.1 0-23.2701 18.7006-42.0062 41.8332-42.0062s41.98,18.7361 41.98,42.0062-18.8474,42.1529-41.98,42.1529c-1.4947,0-2.9492.005-4.4035-.1456-1.9924,3.8981-3.3138,8.4468-3.2292,12.7783-.036,7.8227 4.494,16.9186 11.3023,22.3249 6.7207,5.5455 17.0405,8.2057 26.421,6.1688 9.4217-1.9077 19.0784-8.9676 23.9257-18.3595 5.8495-10.1755 5.6664-24.9608 7.4859-40.5374 .7788-7.8133 2.193-16.1013 5.1374-23.9404 2.9292-7.888 7.743-15.1796 14.5316-20.4159 9.5113-7.1839 21.931-8.9215 32.439-5.2874 10.4992,3.6669 18.5009,12.4207 21.1368,22.4721-4.0447-9.5664-12.772-16.4364-22.1642-18.2125-9.3834-1.8095-19.4124,1.3118-25.5403,7.6375-4.5588,4.5656-7.2928,10.9994-8.807,17.4779-1.5007,6.5292-1.7037,13.4847-1.4679,20.7096 .7333,14.4981 2.9915,30.94-2.4953,48.6153-5.6523,16.4025-18.5552,29.9757-35.5215,36.5721-6.3779,2.4247-13.1558,3.7177-19.9625,3.9654-1.4181.0504-2.8363.1924-4.2567.1456z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m21,256c0,42.8085 11.2622,82.9653 30.9904,117.6466v-235.2933c-19.7283,34.6813-30.9904,74.8377-30.9904,117.6467zm45.2375,139.6784c3.4291,4.7273 7.1097,9.3516 10.8687,13.8058v-306.9683c-3.759,4.4537-7.4396,9.079-10.8687,13.8057zm16.5967,20.4154c36.1509,39.7705 85.5442,67.1113 141.1471,74.9062v-69.0312h-49.6438c-25.4035,0-45.9721-20.547-45.9721-46.1187s20.5686-46.1187 45.9721-46.1187h49.6438v-27.4654h-49.6438c-25.4035,0-45.9721-20.6941-45.9721-46.2659s20.5686-46.1187 45.9721-46.1187h49.6438v-27.4654h-49.6438c-25.4035,0-45.9721-20.5465-45.9721-46.1192s20.5686-46.1183 45.9721-46.1183h49.6438v-69.1784c-55.6029,7.7954-104.9962,35.1362-141.1471,74.9062zm61.2471-40.2437c0,18.165 14.7073,32.6063 32.7529,32.6063h173.1137v-65.3596h-173.1137c-18.0456,0-32.7529,14.5883-32.7529,32.7534zm0-119.85c0,18.165 14.7073,32.7534 32.7529,32.7534h95.9519v-65.5067h-95.9519c-18.0456,0-32.7529,14.5883-32.7529,32.7534zm0-119.7034c0,18.166 14.7073,32.6067 32.7529,32.6067h139.534v-65.3596h-139.534c-18.0456,0-32.7529,14.5892-32.7529,32.7529zm211.5945,272.1596h102.718c18.0452,0 32.6063-14.4412 32.6063-32.6063 0-18.165-14.5611-32.7534-32.6063-32.7534h-102.718zm-77.1618-119.7029h179.8798c18.0452,0 32.6063-14.5883 32.6063-32.7534 0-18.165-14.5611-32.7534-32.6063-32.7534h-179.8798zm43.5822-119.85h136.2976c18.0452,0 32.6063-14.4407 32.6063-32.6067 0-18.1641-14.5611-32.7529-32.6063-32.7529h-136.2976zm44.2068,220.4592c0-6.909 5.1239-12.4841 11.4562-12.4841h82.838c6.3337,0 11.4563,5.5751 11.4563,12.4841s-5.1226,12.3375-11.4563,12.3375h-82.838c-6.3323,0-11.4562-5.4285-11.4562-12.3375zm0-133.2159c0-6.9081 5.1239-12.6308 11.4562-12.6308h82.838c6.3337,0 11.4563,5.7227 11.4563,12.6308s-5.1226,12.4846-11.4563,12.4846h-82.838c-6.3323,0-11.4562-5.5747-11.4562-12.4846zm0-133.3625c0-6.9081 5.1239-12.4841 11.4562-12.4841h82.838c6.3337,0 11.4563,5.5765 11.4563,12.4841s-5.1226,12.4846-11.4563,12.4846h-82.838c-6.3323,0-11.4562-5.5747-11.4562-12.4846z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m21,256c0,42.8085 11.2622,82.9653 30.9904,117.6466v-235.2933c-19.7283,34.6813-30.9904,74.8377-30.9904,117.6467zm45.2375,139.6784c3.4291,4.7273 7.1097,9.3516 10.8687,13.8058v-306.9683c-3.759,4.4537-7.4396,9.079-10.8687,13.8057zm16.5967,20.4154c36.1509,39.7705 85.5442,67.1113 141.1471,74.9062v-69.0312h-49.6438c-25.4035,0-45.9721-20.547-45.9721-46.1187s20.5686-46.1187 45.9721-46.1187h49.6438v-27.4654h-49.6438c-25.4035,0-45.9721-20.6941-45.9721-46.2659s20.5686-46.1187 45.9721-46.1187h49.6438v-27.4654h-49.6438c-25.4035,0-45.9721-20.5465-45.9721-46.1192s20.5686-46.1183 45.9721-46.1183h49.6438v-69.1784c-55.6029,7.7954-104.9962,35.1362-141.1471,74.9062zm61.2471-40.2437c0,18.165 14.7073,32.6063 32.7529,32.6063h173.1137v-65.3596h-173.1137c-18.0456,0-32.7529,14.5883-32.7529,32.7534zm0-119.85c0,18.165 14.7073,32.7534 32.7529,32.7534h95.9519v-65.5067h-95.9519c-18.0456,0-32.7529,14.5883-32.7529,32.7534zm0-119.7034c0,18.166 14.7073,32.6067 32.7529,32.6067h139.534v-65.3596h-139.534c-18.0456,0-32.7529,14.5892-32.7529,32.7529zm211.5945,272.1596h102.718c18.0452,0 32.6063-14.4412 32.6063-32.6063 0-18.165-14.5611-32.7534-32.6063-32.7534h-102.718zm-77.1618-119.7029h179.8798c18.0452,0 32.6063-14.5883 32.6063-32.7534 0-18.165-14.5611-32.7534-32.6063-32.7534h-179.8798zm43.5822-119.85h136.2976c18.0452,0 32.6063-14.4407 32.6063-32.6067 0-18.1641-14.5611-32.7529-32.6063-32.7529h-136.2976zm44.2068,220.4592c0-6.909 5.1239-12.4841 11.4562-12.4841h82.838c6.3337,0 11.4563,5.5751 11.4563,12.4841s-5.1226,12.3375-11.4563,12.3375h-82.838c-6.3323,0-11.4562-5.4285-11.4562-12.3375zm0-133.2159c0-6.9081 5.1239-12.6308 11.4562-12.6308h82.838c6.3337,0 11.4563,5.7227 11.4563,12.6308s-5.1226,12.4846-11.4563,12.4846h-82.838c-6.3323,0-11.4562-5.5747-11.4562-12.4846zm0-133.3625c0-6.9081 5.1239-12.4841 11.4562-12.4841h82.838c6.3337,0 11.4563,5.5765 11.4563,12.4841s-5.1226,12.4846-11.4563,12.4846h-82.838c-6.3323,0-11.4562-5.5747-11.4562-12.4846z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m285.375,21c21.1833,2.7415 41.5997,8.1197 60.6596,16.0096l-36.8659,97.6716c8.3712,3.7328 16.4425,8.3688 23.7937,13.6597l66.5346-80.6347c16.7005,12.7309 31.5572,27.6003 44.3557,44.2097l-80.9278,66.2404c5.3204,7.3085 9.9043,15.1796 13.6596,23.5l98.1125-36.5716c7.9783,19.0472 13.5604,39.1886 16.3029,60.3653l-103.4,16.8908c.4699,4.5176.5873,9.0184.5873,13.6592 0,4.5891-.1268,9.1918-.5873,13.6597l103.4,17.0375c-2.7425,21.1777-8.3251,41.3191-16.3029,60.3653l-98.1125-36.7188c-3.7671,8.3684-8.3115,16.3001-13.6596,23.6472l80.9278,66.2404c-12.8047,16.6042-27.6552,31.4773-44.3557,44.2096l-66.5346-80.6346c-7.3513,5.2894-15.4225,9.926-23.7937,13.6596l36.8659,97.6717c-19.0599,7.8894-39.4763,13.1215-60.6596,15.8625l-17.0375-102.5188c-4.0627.4137-8.1884.5621-12.3375.5873-4.1482-.0504-8.2748-.1737-12.3375-.5873l-17.0375,102.5188c-21.1834-2.7411-41.5997-7.9731-60.6596-15.8625l36.8658-97.6717c-8.3711-3.7336-16.442-8.3702-23.7937-13.6596l-66.5346,80.6346c-16.7009-12.7323-31.5516-27.6054-44.3557-44.2096l80.9278-66.2404c-5.3481-7.3471-9.8925-15.2788-13.6596-23.6472l-98.1125,36.7188c-7.9778-19.0463-13.5604-39.1876-16.3028-60.3654l103.4-17.0375c-.4605-4.4678-.5874-9.0706-.5874-13.6597 0-4.6407.1175-9.1415.5874-13.6592l-103.4-16.8908c2.7424-21.1768 8.3246-41.3181 16.3028-60.3653l98.1125,36.5716c3.7553-8.3204 8.3392-16.1915 13.6596-23.5l-80.9278-66.2404c12.7981-16.6094 27.6548-31.4787 44.3557-44.2097l66.5346,80.6347c7.3517-5.2908 15.4226-9.9269 23.7937-13.6597l-36.8658-97.6716c19.0599-7.8899 39.4762-13.2681 60.6596-16.0096l17.0375,102.6658c4.0617-.418 8.1884-.5643 12.3375-.5874 4.1501.0432 8.2753.1694 12.3375.5874l17.0375-102.6658zm-29.375,119.1158c-63.7268.7826-115.0038,52.3472-115.0029,115.8841l33.9279-2.4966c0,44.8573 36.1486,77.5575 81.075,78.4312 44.9273-.8737 81.075-33.574 81.075-78.4312l33.9279,2.4966c.0009-63.5369-51.2751-115.1016-115.0029-115.8841zm22.9125,18.0654c35.3163,0 46.5596,65.7187 46.5596,97.525 0,40.2292-30.8926,61.5348-69.4721,62.4221-38.5785-.8874-69.4721-22.1929-69.4721-62.4221 0-31.8063 11.2433-97.525 46.5596-97.525v53.6096c0,13.544 10.0726,24.5364 22.9125,25.4092 12.8409-.8728 22.9125-11.8652 22.9125-25.4092v-53.6096z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m285.375,21c21.1833,2.7415 41.5997,8.1197 60.6596,16.0096l-36.8659,97.6716c8.3712,3.7328 16.4425,8.3688 23.7937,13.6597l66.5346-80.6347c16.7005,12.7309 31.5572,27.6003 44.3557,44.2097l-80.9278,66.2404c5.3204,7.3085 9.9043,15.1796 13.6596,23.5l98.1125-36.5716c7.9783,19.0472 13.5604,39.1886 16.3029,60.3653l-103.4,16.8908c.4699,4.5176.5873,9.0184.5873,13.6592 0,4.5891-.1268,9.1918-.5873,13.6597l103.4,17.0375c-2.7425,21.1777-8.3251,41.3191-16.3029,60.3653l-98.1125-36.7188c-3.7671,8.3684-8.3115,16.3001-13.6596,23.6472l80.9278,66.2404c-12.8047,16.6042-27.6552,31.4773-44.3557,44.2096l-66.5346-80.6346c-7.3513,5.2894-15.4225,9.926-23.7937,13.6596l36.8659,97.6717c-19.0599,7.8894-39.4763,13.1215-60.6596,15.8625l-17.0375-102.5188c-4.0627.4137-8.1884.5621-12.3375.5873-4.1482-.0504-8.2748-.1737-12.3375-.5873l-17.0375,102.5188c-21.1834-2.7411-41.5997-7.9731-60.6596-15.8625l36.8658-97.6717c-8.3711-3.7336-16.442-8.3702-23.7937-13.6596l-66.5346,80.6346c-16.7009-12.7323-31.5516-27.6054-44.3557-44.2096l80.9278-66.2404c-5.3481-7.3471-9.8925-15.2788-13.6596-23.6472l-98.1125,36.7188c-7.9778-19.0463-13.5604-39.1876-16.3028-60.3654l103.4-17.0375c-.4605-4.4678-.5874-9.0706-.5874-13.6597 0-4.6407.1175-9.1415.5874-13.6592l-103.4-16.8908c2.7424-21.1768 8.3246-41.3181 16.3028-60.3653l98.1125,36.5716c3.7553-8.3204 8.3392-16.1915 13.6596-23.5l-80.9278-66.2404c12.7981-16.6094 27.6548-31.4787 44.3557-44.2097l66.5346,80.6347c7.3517-5.2908 15.4226-9.9269 23.7937-13.6597l-36.8658-97.6716c19.0599-7.8899 39.4762-13.2681 60.6596-16.0096l17.0375,102.6658c4.0617-.418 8.1884-.5643 12.3375-.5874 4.1501.0432 8.2753.1694 12.3375.5874l17.0375-102.6658zm-29.375,119.1158c-63.7268.7826-115.0038,52.3472-115.0029,115.8841l33.9279-2.4966c0,44.8573 36.1486,77.5575 81.075,78.4312 44.9273-.8737 81.075-33.574 81.075-78.4312l33.9279,2.4966c.0009-63.5369-51.2751-115.1016-115.0029-115.8841zm22.9125,18.0654c35.3163,0 46.5596,65.7187 46.5596,97.525 0,40.2292-30.8926,61.5348-69.4721,62.4221-38.5785-.8874-69.4721-22.1929-69.4721-62.4221 0-31.8063 11.2433-97.525 46.5596-97.525v53.6096c0,13.544 10.0726,24.5364 22.9125,25.4092 12.8409-.8728 22.9125-11.8652 22.9125-25.4092v-53.6096z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m256,20.9995-5.7284,28.6404-187.4125-25.7029c-.69-.0937-1.3776-.1413-2.0562-.1456-10.1821-.0843-18.8287,9.564-18.0654,19.6813l11.8966,157.8904c-19.8251,9.2769-33.6341,30.2361-33.6341,54.6376s13.8091,45.3202 33.6341,54.6375l-11.8966,157.8909c-.8136,10.7916 9.0799,21.0532 20.1216,19.5341l187.4125-25.7029 5.7284,28.6404 5.7279-28.6404 187.4125,25.7029c11.0417,1.5191 20.9352-8.7425 20.1221-19.5341l-11.8971-158.0377c19.7724-9.3596 33.6346-30.1618 33.6346-54.4908s-13.8622-45.1718-33.6346-54.4904l11.8971-158.0375c.7619-10.1172-7.8838-19.7672-18.0659-19.6813-.6786.004-1.3663.0504-2.0562.1456l-187.4125,25.7029-5.7279-28.6404zm-187.5596,19.6813 179.9221,18.0654-5.2875,26.5846-63.7442-21.2971 50.8192,42.8875-50.8192,43.0346 63.7442-21.2971 12.925,64.3312 12.925-64.3312 63.7433,21.2971-50.8183-43.0346 50.8183-42.8875-63.7433,21.2971-5.2875-26.5846 179.9216-18.0654c4.6427.2112 8.2133,3.5791 8.5188,8.0779l-5.2875,148.9312c-4.011-.9485-8.2038-1.4687-12.4846-1.4687-18.0922,0-34.1441,8.9944-44.5029,22.9124 8.6494-14.5352 22.3527-25.2582 38.3346-29.0812v-116.4716c0-.0505-.1457-.7347-.1457-.7347s-18.7192,53.9917-21.0029,97.2313c-21.6703-36.198-62.4221-72.7029-62.4221-72.7029s8.5592,57.0608 26.2904,95.7625c-35.2542-19.4651-87.2433-28.7875-87.2433-28.7875s33.2685,44.8005 66.2404,68.5905c-39.3888,2.5079-88.5654,22.9124-88.5654,22.9124l.4418.1456h-.4418c0,0 49.1766,20.5522 88.5654,23.0596-32.9719,23.7905-66.2404,68.5904-66.2404,68.5904s51.989-9.322 87.2433-28.7875c-17.7312,38.7021-26.2904,95.7625-26.2904,95.7625s40.7514-36.652 62.4221-72.85c2.2847,43.2395 21.0029,97.2312 21.0029,97.2312s.1363-.7041.1457-.7341v-116.325c-16.1196-3.8554-29.8445-14.6142-38.4817-29.375 10.3494,14.1235 26.4281,23.2063 44.65,23.2063 4.2808,0 8.4736-.516 12.4846-1.4687l5.2875,148.9312c-.3055,4.4988-3.8761,7.8678-8.5188,8.0779l-179.9216-18.0654 5.2875-26.5846 63.7433,21.4437-50.8183-43.0341 50.8183-42.8875-63.7433,21.15-12.925-64.3312-12.925,64.3312-63.7442-21.15 50.8192,42.8875-50.8192,43.0341 63.7442-21.4437 5.2875,26.5846-179.9221,18.0654c-4.6427-.2112-8.2128-3.579-8.5188-8.0779l5.2875-148.9312c3.964.9315 8.1061,1.4687 12.3375,1.4687 17.5639,0 33.3601-8.3336 43.7687-21.5909-8.7067,13.928-21.9311,24.0476-37.4529,27.7597v116.325c0,.0432.1457.7341.1457.7341s18.5721-53.9917 20.8563-97.2313c21.6708,36.198 62.4221,72.85 62.4221,72.85s-8.4125-57.0604-26.1442-95.7625c35.2556,19.4655 87.2442,28.7875 87.2442,28.7875s-33.2685-44.7999-66.2409-68.5904c39.3893-2.5074 88.4188-23.0596 88.4188-23.0596h-.2914l.2914-.1456c0,0-49.0294-20.4046-88.4188-22.9125 32.9724-23.79 66.2409-68.5904 66.2409-68.5904s-51.9881,9.3225-87.2442,28.7875c17.7317-38.7017 26.1442-95.7626 26.1442-95.7626s-40.7514,36.5049-62.4221,72.703c-2.2842-43.2396-20.8562-97.2313-20.8562-97.2313s-.1363.7048-.1457.7347v116.4716c15.5217,3.713 28.7461,13.8631 37.4529,27.7596-10.4086-13.2257-26.2048-21.5908-43.7687-21.5908-4.2314,0-8.3735.5412-12.3375,1.4687l-5.2875-148.9312c.3055-4.4988 3.8761-7.8678 8.5187-8.0779zm187.5596,49.6438c9.4874,0 17.1841,7.3893 17.1841,16.5966s-7.6972,16.7438-17.1841,16.7438-17.1846-7.5359-17.1846-16.7438 7.6977-16.5966 17.1846-16.5966zm-159.6534,135.8591c15.5349,0 28.2,13.3052 28.2,29.8159s-12.6651,29.6687-28.2,29.6687-28.0534-13.1581-28.0534-29.6687 12.5189-29.8159 28.0534-29.8159zm319.1591,0c15.5349,0 28.0534,13.3052 28.0534,29.8159s-12.5184,29.6687-28.0534,29.6687c-15.5344,0-28.2-13.1581-28.2-29.6687s12.6656-29.8159 28.2-29.8159zm-159.5058,162.15c9.486,0 17.1841,7.5364 17.1841,16.7437s-7.6972,16.5972-17.1841,16.5972-17.1846-7.3899-17.1846-16.5972 7.6977-16.7437 17.1846-16.7437z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m256,20.9995-5.7284,28.6404-187.4125-25.7029c-.69-.0937-1.3776-.1413-2.0562-.1456-10.1821-.0843-18.8287,9.564-18.0654,19.6813l11.8966,157.8904c-19.8251,9.2769-33.6341,30.2361-33.6341,54.6376s13.8091,45.3202 33.6341,54.6375l-11.8966,157.8909c-.8136,10.7916 9.0799,21.0532 20.1216,19.5341l187.4125-25.7029 5.7284,28.6404 5.7279-28.6404 187.4125,25.7029c11.0417,1.5191 20.9352-8.7425 20.1221-19.5341l-11.8971-158.0377c19.7724-9.3596 33.6346-30.1618 33.6346-54.4908s-13.8622-45.1718-33.6346-54.4904l11.8971-158.0375c.7619-10.1172-7.8838-19.7672-18.0659-19.6813-.6786.004-1.3663.0504-2.0562.1456l-187.4125,25.7029-5.7279-28.6404zm-187.5596,19.6813 179.9221,18.0654-5.2875,26.5846-63.7442-21.2971 50.8192,42.8875-50.8192,43.0346 63.7442-21.2971 12.925,64.3312 12.925-64.3312 63.7433,21.2971-50.8183-43.0346 50.8183-42.8875-63.7433,21.2971-5.2875-26.5846 179.9216-18.0654c4.6427.2112 8.2133,3.5791 8.5188,8.0779l-5.2875,148.9312c-4.011-.9485-8.2038-1.4687-12.4846-1.4687-18.0922,0-34.1441,8.9944-44.5029,22.9124 8.6494-14.5352 22.3527-25.2582 38.3346-29.0812v-116.4716c0-.0505-.1457-.7347-.1457-.7347s-18.7192,53.9917-21.0029,97.2313c-21.6703-36.198-62.4221-72.7029-62.4221-72.7029s8.5592,57.0608 26.2904,95.7625c-35.2542-19.4651-87.2433-28.7875-87.2433-28.7875s33.2685,44.8005 66.2404,68.5905c-39.3888,2.5079-88.5654,22.9124-88.5654,22.9124l.4418.1456h-.4418c0,0 49.1766,20.5522 88.5654,23.0596-32.9719,23.7905-66.2404,68.5904-66.2404,68.5904s51.989-9.322 87.2433-28.7875c-17.7312,38.7021-26.2904,95.7625-26.2904,95.7625s40.7514-36.652 62.4221-72.85c2.2847,43.2395 21.0029,97.2312 21.0029,97.2312s.1363-.7041.1457-.7341v-116.325c-16.1196-3.8554-29.8445-14.6142-38.4817-29.375 10.3494,14.1235 26.4281,23.2063 44.65,23.2063 4.2808,0 8.4736-.516 12.4846-1.4687l5.2875,148.9312c-.3055,4.4988-3.8761,7.8678-8.5188,8.0779l-179.9216-18.0654 5.2875-26.5846 63.7433,21.4437-50.8183-43.0341 50.8183-42.8875-63.7433,21.15-12.925-64.3312-12.925,64.3312-63.7442-21.15 50.8192,42.8875-50.8192,43.0341 63.7442-21.4437 5.2875,26.5846-179.9221,18.0654c-4.6427-.2112-8.2128-3.579-8.5188-8.0779l5.2875-148.9312c3.964.9315 8.1061,1.4687 12.3375,1.4687 17.5639,0 33.3601-8.3336 43.7687-21.5909-8.7067,13.928-21.9311,24.0476-37.4529,27.7597v116.325c0,.0432.1457.7341.1457.7341s18.5721-53.9917 20.8563-97.2313c21.6708,36.198 62.4221,72.85 62.4221,72.85s-8.4125-57.0604-26.1442-95.7625c35.2556,19.4655 87.2442,28.7875 87.2442,28.7875s-33.2685-44.7999-66.2409-68.5904c39.3893-2.5074 88.4188-23.0596 88.4188-23.0596h-.2914l.2914-.1456c0,0-49.0294-20.4046-88.4188-22.9125 32.9724-23.79 66.2409-68.5904 66.2409-68.5904s-51.9881,9.3225-87.2442,28.7875c17.7317-38.7017 26.1442-95.7626 26.1442-95.7626s-40.7514,36.5049-62.4221,72.703c-2.2842-43.2396-20.8562-97.2313-20.8562-97.2313s-.1363.7048-.1457.7347v116.4716c15.5217,3.713 28.7461,13.8631 37.4529,27.7596-10.4086-13.2257-26.2048-21.5908-43.7687-21.5908-4.2314,0-8.3735.5412-12.3375,1.4687l-5.2875-148.9312c.3055-4.4988 3.8761-7.8678 8.5187-8.0779zm187.5596,49.6438c9.4874,0 17.1841,7.3893 17.1841,16.5966s-7.6972,16.7438-17.1841,16.7438-17.1846-7.5359-17.1846-16.7438 7.6977-16.5966 17.1846-16.5966zm-159.6534,135.8591c15.5349,0 28.2,13.3052 28.2,29.8159s-12.6651,29.6687-28.2,29.6687-28.0534-13.1581-28.0534-29.6687 12.5189-29.8159 28.0534-29.8159zm319.1591,0c15.5349,0 28.0534,13.3052 28.0534,29.8159s-12.5184,29.6687-28.0534,29.6687c-15.5344,0-28.2-13.1581-28.2-29.6687s12.6656-29.8159 28.2-29.8159zm-159.5058,162.15c9.486,0 17.1841,7.5364 17.1841,16.7437s-7.6972,16.5972-17.1841,16.5972-17.1846-7.3899-17.1846-16.5972 7.6977-16.7437 17.1846-16.7437z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m75.05,21c-29.9639,0-54.05,24.0861-54.05,54.05v136.4469h71.9688c14.4985,0 26.1437,11.645 26.1437,26.1438v7.05h85.1876v-15.7157h197.1063c6.5438,0 11.7499,2.7085 11.7499,6.1688v41.7125c0,3.4602-5.2061,6.1687-11.7499,6.1687h-197.1063v-15.7156h-85.1876v7.05c0,14.4987-11.6452,26.1438-26.1437,26.1438h-71.9688v136.3c0,29.964 24.0861,54.1969 54.05,54.1969h106.7779v-99.4343h-30.2558c-17.2856,0-31.1375-14.0009-31.1375-31.2844v-2.35h345.1558c14.1023,0 25.4096-10.6587 25.4096-23.6469v-33.3406-90.0344-33.3406c0-12.9882-11.3064-23.5-25.4096-23.5h-345.1558v-2.4969c0-17.2835 13.8519-31.1375 31.1375-31.1375h30.2558v-99.4343h-106.7779zm129.2501,0v99.4343h286.7v-45.3843c0-29.964-24.0861-54.05-54.05-54.05h-232.65zm52.5812,25.7031c.8507-.0865 1.7705,0 2.6438,0 13.9717,0 25.2625,11.2905 25.2625,25.2625s-11.2908,25.2625-25.2625,25.2625-25.4096-11.2905-25.4096-25.2625c0-13.0988 10.0091-23.9669 22.7659-25.2625zm80.3409,0c.8502-.0865 1.7715,0 2.6433,0 13.9731,0 25.2625,11.2905 25.2625,25.2625s-11.2894,25.2625-25.2625,25.2625-25.4092-11.2905-25.4092-25.2625c0-13.0988 10.0082-23.9669 22.7659-25.2625zm80.1933,0c.8516-.0865 1.7705,0 2.6442,0 13.9712,0 25.2625,11.2905 25.2625,25.2625s-11.2913,25.2625-25.2625,25.2625-25.4096-11.2905-25.4096-25.2625c0-13.0988 10.0105-23.9669 22.7654-25.2625zm-213.1154,344.8626v99.4343h232.65c29.9639,0 54.05-24.2329 54.05-54.1969v-45.2375h-286.7zm55.225,23.2062c13.9721,0 25.2625,11.2905 25.2625,25.2625s-11.2903,25.4093-25.2625,25.4093-25.4096-11.4373-25.4096-25.4093 11.4375-25.2625 25.4096-25.2625zm80.3404,0c13.9731,0 25.2625,11.2905 25.2625,25.2625s-11.2894,25.4093-25.2625,25.4093-25.4092-11.4373-25.4092-25.4093 11.437-25.2625 25.4092-25.2625zm80.1942,0c13.9722,0 25.2625,11.2905 25.2625,25.2625s-11.2903,25.4093-25.2625,25.4093-25.4096-11.4373-25.4096-25.4093 11.436-25.2625 25.4096-25.2625z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m75.05,21c-29.9639,0-54.05,24.0861-54.05,54.05v136.4469h71.9688c14.4985,0 26.1437,11.645 26.1437,26.1438v7.05h85.1876v-15.7157h197.1063c6.5438,0 11.7499,2.7085 11.7499,6.1688v41.7125c0,3.4602-5.2061,6.1687-11.7499,6.1687h-197.1063v-15.7156h-85.1876v7.05c0,14.4987-11.6452,26.1438-26.1437,26.1438h-71.9688v136.3c0,29.964 24.0861,54.1969 54.05,54.1969h106.7779v-99.4343h-30.2558c-17.2856,0-31.1375-14.0009-31.1375-31.2844v-2.35h345.1558c14.1023,0 25.4096-10.6587 25.4096-23.6469v-33.3406-90.0344-33.3406c0-12.9882-11.3064-23.5-25.4096-23.5h-345.1558v-2.4969c0-17.2835 13.8519-31.1375 31.1375-31.1375h30.2558v-99.4343h-106.7779zm129.2501,0v99.4343h286.7v-45.3843c0-29.964-24.0861-54.05-54.05-54.05h-232.65zm52.5812,25.7031c.8507-.0865 1.7705,0 2.6438,0 13.9717,0 25.2625,11.2905 25.2625,25.2625s-11.2908,25.2625-25.2625,25.2625-25.4096-11.2905-25.4096-25.2625c0-13.0988 10.0091-23.9669 22.7659-25.2625zm80.3409,0c.8502-.0865 1.7715,0 2.6433,0 13.9731,0 25.2625,11.2905 25.2625,25.2625s-11.2894,25.2625-25.2625,25.2625-25.4092-11.2905-25.4092-25.2625c0-13.0988 10.0082-23.9669 22.7659-25.2625zm80.1933,0c.8516-.0865 1.7705,0 2.6442,0 13.9712,0 25.2625,11.2905 25.2625,25.2625s-11.2913,25.2625-25.2625,25.2625-25.4096-11.2905-25.4096-25.2625c0-13.0988 10.0105-23.9669 22.7654-25.2625zm-213.1154,344.8626v99.4343h232.65c29.9639,0 54.05-24.2329 54.05-54.1969v-45.2375h-286.7zm55.225,23.2062c13.9721,0 25.2625,11.2905 25.2625,25.2625s-11.2903,25.4093-25.2625,25.4093-25.4096-11.4373-25.4096-25.4093 11.4375-25.2625 25.4096-25.2625zm80.3404,0c13.9731,0 25.2625,11.2905 25.2625,25.2625s-11.2894,25.4093-25.2625,25.4093-25.4092-11.4373-25.4092-25.4093 11.437-25.2625 25.4092-25.2625zm80.1942,0c13.9722,0 25.2625,11.2905 25.2625,25.2625s-11.2903,25.4093-25.2625,25.4093-25.4096-11.4373-25.4096-25.4093 11.436-25.2625 25.4096-25.2625z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m195.7751,21.0596c-5.99.1535-11.9966.5664-18.0675,1.3218-98.2118,12.2222-167.7229,100.1823-155.2628,196.5188 1.7092,13.2151 3.5664,26.0205 6.6101,38.1875-.0216.8853-.147,1.7525-.147,2.6438 0,32.2722 16.7564,60.5927 42.0106,76.9625l-21.2991,105.4562c-4.0777,20.2404 16.6888,38.2294 37.3101,37.1594l143.5116-7.4906c30.9503,15.4793 66.8024,22.3825 103.8512,17.7719 98.2118-12.2221 167.7229-100.1823 155.2628-196.5188-1.0071-7.7859-2.0754-15.4682-3.3785-22.9125 .387-3.4213.7344-6.904.7344-10.4281 0-34.2294-18.8631-64.1173-46.711-79.9l22.1804-110.0094c4.0777-20.2403-16.6887-38.2293-37.3101-37.1594l-143.5116,7.4906c-25.8652-12.9229-55.2218-19.8763-85.7838-19.0937zm120.5967,41.8593h81.6709c14.4389,0 25.9996,11.5595 25.9996,25.9969v83.7187c-9.1481-3.0524-18.9238-4.7-29.0842-4.7-6.0772,0-11.8821.6335-17.6268,1.7625-6.8404-43.1825-29.3064-80.382-60.9594-106.7782zm-163.048,7.9312c58.8788-1.6258 128.3044,46.3124 174.5054,123.6688-18.2298,17.4767-28.2796,42.9052-24.8244,69.6187 .2184,1.6905.5628,3.3413.8814,4.9938 .007.0432-.007.0994 0,.1463 4.756,46.1983 43.6158,82.25 91.0718,82.25 23.5273,0 44.9994-8.9278 61.2531-23.5-3.7753,47.9649-23.6392,86.4447-58.756,103.6938-63.0403,30.965-152.8084-17.3872-209.9059-109.1281 15.4357-16.435 24.9714-38.5332 24.9714-62.8625 0-50.6679-40.9863-91.7969-91.6594-91.7969-25.7086,0-48.9862,10.563-65.6599,27.6125 1.2983-53.3177 21.4399-96.6788 59.3436-115.2969 8.5917-4.2202 17.7386-7.0021 27.1747-8.3718 3.8219-.5549 7.6791-.9198 11.6043-1.0282zm-47.8862,124.8438c21.6408,0 39.2197,17.5771 39.2197,39.2157s-17.5789,39.2156-39.2197,39.2156-39.2196-17.5771-39.2196-39.2156 17.5789-39.2157 39.2196-39.2157zm268.5151,0c21.6408,0 39.2196,17.5771 39.2196,39.2157s-17.5789,39.2156-39.2196,39.2156-39.0728-17.5771-39.0728-39.2156 17.4321-39.2157 39.0728-39.2157zm-285.995,149.6657c10.2423,3.9397 21.2908,6.1687 32.9034,6.1687 5.2147,0 10.1542-.632 15.1297-1.4687 8.1995,39.8661 29.8706,74.1836 59.6374,98.9937h-81.6709c-14.4388,0-25.9996-11.5595-25.9996-25.9968v-77.6969z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m195.7751,21.0596c-5.99.1535-11.9966.5664-18.0675,1.3218-98.2118,12.2222-167.7229,100.1823-155.2628,196.5188 1.7092,13.2151 3.5664,26.0205 6.6101,38.1875-.0216.8853-.147,1.7525-.147,2.6438 0,32.2722 16.7564,60.5927 42.0106,76.9625l-21.2991,105.4562c-4.0777,20.2404 16.6888,38.2294 37.3101,37.1594l143.5116-7.4906c30.9503,15.4793 66.8024,22.3825 103.8512,17.7719 98.2118-12.2221 167.7229-100.1823 155.2628-196.5188-1.0071-7.7859-2.0754-15.4682-3.3785-22.9125 .387-3.4213.7344-6.904.7344-10.4281 0-34.2294-18.8631-64.1173-46.711-79.9l22.1804-110.0094c4.0777-20.2403-16.6887-38.2293-37.3101-37.1594l-143.5116,7.4906c-25.8652-12.9229-55.2218-19.8763-85.7838-19.0937zm120.5967,41.8593h81.6709c14.4389,0 25.9996,11.5595 25.9996,25.9969v83.7187c-9.1481-3.0524-18.9238-4.7-29.0842-4.7-6.0772,0-11.8821.6335-17.6268,1.7625-6.8404-43.1825-29.3064-80.382-60.9594-106.7782zm-163.048,7.9312c58.8788-1.6258 128.3044,46.3124 174.5054,123.6688-18.2298,17.4767-28.2796,42.9052-24.8244,69.6187 .2184,1.6905.5628,3.3413.8814,4.9938 .007.0432-.007.0994 0,.1463 4.756,46.1983 43.6158,82.25 91.0718,82.25 23.5273,0 44.9994-8.9278 61.2531-23.5-3.7753,47.9649-23.6392,86.4447-58.756,103.6938-63.0403,30.965-152.8084-17.3872-209.9059-109.1281 15.4357-16.435 24.9714-38.5332 24.9714-62.8625 0-50.6679-40.9863-91.7969-91.6594-91.7969-25.7086,0-48.9862,10.563-65.6599,27.6125 1.2983-53.3177 21.4399-96.6788 59.3436-115.2969 8.5917-4.2202 17.7386-7.0021 27.1747-8.3718 3.8219-.5549 7.6791-.9198 11.6043-1.0282zm-47.8862,124.8438c21.6408,0 39.2197,17.5771 39.2197,39.2157s-17.5789,39.2156-39.2197,39.2156-39.2196-17.5771-39.2196-39.2156 17.5789-39.2157 39.2196-39.2157zm268.5151,0c21.6408,0 39.2196,17.5771 39.2196,39.2157s-17.5789,39.2156-39.2196,39.2156-39.0728-17.5771-39.0728-39.2156 17.4321-39.2157 39.0728-39.2157zm-285.995,149.6657c10.2423,3.9397 21.2908,6.1687 32.9034,6.1687 5.2147,0 10.1542-.632 15.1297-1.4687 8.1995,39.8661 29.8706,74.1836 59.6374,98.9937h-81.6709c-14.4388,0-25.9996-11.5595-25.9996-25.9968v-77.6969z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m115.7344,21-91.65,93.0938 73.5843,74.8259h-46.8531c0,0-29.8156,41.8681-29.8156,65.9111 0,.3769.1333.7835.147,1.1691-.0144.3856-.147.7922-.147,1.1692 0,24.043 29.8156,65.911 29.8156,65.911h46.8531l-73.5843,74.8259 91.65,93.0939 48.7625-49.5429c24.415,21.3517 56.4497,34.3439 91.5031,34.3439 35.0675,0 67.0844-12.9769 91.5031-34.3439l48.6157,49.5429 91.7969-93.0939-73.7313-74.8259h47c0,0 29.8156-41.868 29.8156-65.911 0-.3769-.1333-.7834-.147-1.1692 .0144-.3856.147-.792.147-1.1691 0-24.043-29.8156-65.9111-29.8156-65.9111h-47l73.7313-74.8259-91.7969-93.0938-48.6157,49.5429c-24.4187-21.367-56.4356-34.3439-91.5031-34.3439-35.0534,0-67.0881,12.9922-91.5031,34.3439l-48.7625-49.5429zm116.7656,36.3899 16.0094,105.37c-3.4741.7227-6.7788,1.8757-9.8406,3.5075l-36.5719-98.0628c9.4643-4.927 19.6375-8.6206 30.4031-10.8147zm46.8531,0c10.8176,2.1907 21.0443,5.8661 30.55,10.8147l-36.5719,98.0628c-3.0602-1.631-6.3684-2.7847-9.8406-3.5075l15.8624-105.37zm-176.1031,12.4223c19.6493,0 35.6906,15.8153 35.6906,35.3669s-16.0413,35.513-35.6906,35.513-35.5437-15.9615-35.5437-35.513 15.8944-35.3669 35.5437-35.3669zm305.5,0c19.6493,0 35.5437,15.8153 35.5437,35.3669s-15.8944,35.513-35.5437,35.513-35.5438-15.9615-35.5438-35.513 15.8945-35.3669 35.5438-35.3669zm-62.8625,27.1828c6.7096,8.044 12.2462,17.0872 16.5969,26.7444l-72.2626,60.5038c-1.4469-3.0944-3.2929-6.0443-5.4343-8.6226l61.1-78.6256zm-179.775.1463 61.1,78.4795c-2.1134,2.5443-3.9966,5.4284-5.4344,8.4763l-72.2625-60.3576c4.3354-9.6233 9.9184-18.5761 16.5969-26.5982zm-26.5844,68.8339 59.0437,23.6753h-57.7219c-.972-6.0287-1.4687-12.2588-1.4687-18.5603 0-1.7088.0735-3.4242.147-5.1151zm232.9438,0c.0735,1.6909.147,3.4062.147,5.1151 0,6.3014-.4965,12.5315-1.4688,18.5603h-57.575l58.8969-23.6753zm-251.0094,43.6971h134.5375 134.5375c25.5631,0 46.1188,20.136 46.1188,45.1586 0,.3928-.1369.7791-.147,1.1691 .007.3899.147.7768.147,1.1692 0,25.0226-20.5556,45.1586-46.1188,45.1586h-134.5375-134.5375c-25.5631,0-46.1187-20.136-46.1187-45.1586 0-.3928.1369-.7792.147-1.1692-.007-.3899-.147-.7766-.147-1.1691 0-25.0226 20.5556-45.1586 46.1187-45.1586zm24.2344,20.1679c-12.9355,1.2733-23.0594,11.9933-23.0594,24.9907 0,.3841-.0216.7896 0,1.1691-.0216.3798 0,.7852 0,1.1692 0,12.9974 10.1238,23.7174 23.0594,24.9906 .8623.0843 1.7585,0 2.6437,0h107.6594 107.6594c14.1633,0 25.7032-11.1268 25.7032-24.9906 0-.3841.0216-.7894 0-1.1692 .0216-.3798 0-.7852 0-1.1691 0-13.8639-11.5398-24.9907-25.7032-24.9907h-107.6594-107.6594c-.8852,0-1.7813-.0843-2.6437,0zm-4.8469,92.5094h57.575l-58.8969,23.6753c-.0735-1.6909-.1463-3.4062-.1463-5.1151 0-6.3014.4965-12.5315 1.4687-18.5603zm172.5781,0h57.7219c.9721,6.0287 1.4688,12.2588 1.4688,18.5603 0,1.7088-.0735,3.4242-.1463,5.1151l-59.0438-23.6753zm-91.65,5.5535c1.4469,3.0944 3.2929,5.8982 5.4344,8.4763l-61.1,78.6257c-6.6814-8.0103-12.2537-16.9875-16.5969-26.5983l72.2625-60.5037zm68.4437.1463 72.2626,60.2115c-4.3354,9.6232-9.9184,18.576-16.5969,26.5982l-61.1-78.4795c2.1134-2.5443 3.9966-5.2823 5.4343-8.3303zm-51.5531,17.8296c3.0603,1.6311 6.3684,2.7847 9.8406,3.5075l-15.8625,105.2239c-10.8176-2.1907-21.0442-5.8661-30.55-10.8147l36.5719-97.9167zm34.6625,0 36.5719,97.9167c-9.4643,4.927-19.6374,8.6206-30.4031,10.8147l-16.0093-105.2239c3.4741-.7226 6.7788-1.8755 9.8406-3.5074zm-170.0812,25.4291c19.6493,0 35.6906,15.8153 35.6906,35.3669s-16.0413,35.513-35.6906,35.513-35.5437-15.9615-35.5437-35.513 15.8944-35.3669 35.5437-35.3669zm305.5,0c19.6493,0 35.5437,15.8153 35.5437,35.3669s-15.8944,35.513-35.5437,35.513-35.5438-15.9615-35.5438-35.513 15.8945-35.3669 35.5438-35.3669z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m115.7344,21-91.65,93.0938 73.5843,74.8259h-46.8531c0,0-29.8156,41.8681-29.8156,65.9111 0,.3769.1333.7835.147,1.1691-.0144.3856-.147.7922-.147,1.1692 0,24.043 29.8156,65.911 29.8156,65.911h46.8531l-73.5843,74.8259 91.65,93.0939 48.7625-49.5429c24.415,21.3517 56.4497,34.3439 91.5031,34.3439 35.0675,0 67.0844-12.9769 91.5031-34.3439l48.6157,49.5429 91.7969-93.0939-73.7313-74.8259h47c0,0 29.8156-41.868 29.8156-65.911 0-.3769-.1333-.7834-.147-1.1692 .0144-.3856.147-.792.147-1.1691 0-24.043-29.8156-65.9111-29.8156-65.9111h-47l73.7313-74.8259-91.7969-93.0938-48.6157,49.5429c-24.4187-21.367-56.4356-34.3439-91.5031-34.3439-35.0534,0-67.0881,12.9922-91.5031,34.3439l-48.7625-49.5429zm116.7656,36.3899 16.0094,105.37c-3.4741.7227-6.7788,1.8757-9.8406,3.5075l-36.5719-98.0628c9.4643-4.927 19.6375-8.6206 30.4031-10.8147zm46.8531,0c10.8176,2.1907 21.0443,5.8661 30.55,10.8147l-36.5719,98.0628c-3.0602-1.631-6.3684-2.7847-9.8406-3.5075l15.8624-105.37zm-176.1031,12.4223c19.6493,0 35.6906,15.8153 35.6906,35.3669s-16.0413,35.513-35.6906,35.513-35.5437-15.9615-35.5437-35.513 15.8944-35.3669 35.5437-35.3669zm305.5,0c19.6493,0 35.5437,15.8153 35.5437,35.3669s-15.8944,35.513-35.5437,35.513-35.5438-15.9615-35.5438-35.513 15.8945-35.3669 35.5438-35.3669zm-62.8625,27.1828c6.7096,8.044 12.2462,17.0872 16.5969,26.7444l-72.2626,60.5038c-1.4469-3.0944-3.2929-6.0443-5.4343-8.6226l61.1-78.6256zm-179.775.1463 61.1,78.4795c-2.1134,2.5443-3.9966,5.4284-5.4344,8.4763l-72.2625-60.3576c4.3354-9.6233 9.9184-18.5761 16.5969-26.5982zm-26.5844,68.8339 59.0437,23.6753h-57.7219c-.972-6.0287-1.4687-12.2588-1.4687-18.5603 0-1.7088.0735-3.4242.147-5.1151zm232.9438,0c.0735,1.6909.147,3.4062.147,5.1151 0,6.3014-.4965,12.5315-1.4688,18.5603h-57.575l58.8969-23.6753zm-251.0094,43.6971h134.5375 134.5375c25.5631,0 46.1188,20.136 46.1188,45.1586 0,.3928-.1369.7791-.147,1.1691 .007.3899.147.7768.147,1.1692 0,25.0226-20.5556,45.1586-46.1188,45.1586h-134.5375-134.5375c-25.5631,0-46.1187-20.136-46.1187-45.1586 0-.3928.1369-.7792.147-1.1692-.007-.3899-.147-.7766-.147-1.1691 0-25.0226 20.5556-45.1586 46.1187-45.1586zm24.2344,20.1679c-12.9355,1.2733-23.0594,11.9933-23.0594,24.9907 0,.3841-.0216.7896 0,1.1691-.0216.3798 0,.7852 0,1.1692 0,12.9974 10.1238,23.7174 23.0594,24.9906 .8623.0843 1.7585,0 2.6437,0h107.6594 107.6594c14.1633,0 25.7032-11.1268 25.7032-24.9906 0-.3841.0216-.7894 0-1.1692 .0216-.3798 0-.7852 0-1.1691 0-13.8639-11.5398-24.9907-25.7032-24.9907h-107.6594-107.6594c-.8852,0-1.7813-.0843-2.6437,0zm-4.8469,92.5094h57.575l-58.8969,23.6753c-.0735-1.6909-.1463-3.4062-.1463-5.1151 0-6.3014.4965-12.5315 1.4687-18.5603zm172.5781,0h57.7219c.9721,6.0287 1.4688,12.2588 1.4688,18.5603 0,1.7088-.0735,3.4242-.1463,5.1151l-59.0438-23.6753zm-91.65,5.5535c1.4469,3.0944 3.2929,5.8982 5.4344,8.4763l-61.1,78.6257c-6.6814-8.0103-12.2537-16.9875-16.5969-26.5983l72.2625-60.5037zm68.4437.1463 72.2626,60.2115c-4.3354,9.6232-9.9184,18.576-16.5969,26.5982l-61.1-78.4795c2.1134-2.5443 3.9966-5.2823 5.4343-8.3303zm-51.5531,17.8296c3.0603,1.6311 6.3684,2.7847 9.8406,3.5075l-15.8625,105.2239c-10.8176-2.1907-21.0442-5.8661-30.55-10.8147l36.5719-97.9167zm34.6625,0 36.5719,97.9167c-9.4643,4.927-19.6374,8.6206-30.4031,10.8147l-16.0093-105.2239c3.4741-.7226 6.7788-1.8755 9.8406-3.5074zm-170.0812,25.4291c19.6493,0 35.6906,15.8153 35.6906,35.3669s-16.0413,35.513-35.6906,35.513-35.5437-15.9615-35.5437-35.513 15.8944-35.3669 35.5437-35.3669zm305.5,0c19.6493,0 35.5437,15.8153 35.5437,35.3669s-15.8944,35.513-35.5437,35.513-35.5438-15.9615-35.5438-35.513 15.8945-35.3669 35.5438-35.3669z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m138.4597,52.3426-12.9078,48.3291c5.309.4232 10.4863,2.6436 14.5826,6.7398 8.5198,8.5199 9.082,21.9091 1.6271,31.0494-.497.6091-1.1148,1.0998-1.6826,1.6676-9.088,9.088-23.5911,9.1743-32.679.0865-4.1264-4.1264-6.292-9.4069-6.6992-14.7842l-48.3547,13.1087 12.8907,48.1089c.7907-.3792 1.6441-.6812 2.4784-.9683 4.2245-1.4552 9.0573-1.7275 13.7127-.4801 11.6384,3.1184 18.7916,14.5518 16.9056,26.1949-.1255.7762-.3949,1.5152-.603,2.291-3.3264,12.4143-15.9298,19.591-28.3441,16.2647-5.6035-1.5015-10.1113-4.8563-13.1281-9.259l-35.2584,35.305 35.305,35.2584c3.019-4.3779 7.4723-7.7821 13.0303-9.2713 11.6384-3.1185 23.6339,3.1174 27.8221,14.1437 .2793.7352.4005,1.4949.6084,2.2706 3.3264,12.4144-4.0001,25.1041-16.4144,28.4305-5.558,1.4893-11.1168.7678-15.9202-1.5141l-13.0878,48.2252 48.3671,13.0497c.4029-5.353 2.5997-10.6224 6.7018-14.7245 3.195-3.195 6.9801-5.3563 11.0842-6.3162 6.8404-1.5999 14.2525.0288 19.9652,4.6891 .6093.4974 1.0998,1.1145 1.6677,1.6826 9.0879,9.0878 9.1743,23.5911.0865,32.679-4.1264,4.1264-9.4068,6.2921-14.7842,6.6993l13.1087,48.3546 48.2508-12.9287c-2.336-4.8606-3.1006-10.5163-1.5903-16.1531 2.3389-8.7288 9.3096-14.9302 17.5735-16.7249 2.7546-.5983 5.7107-.6524 8.6215-.1802 .7762.1255 1.3732.4333 2.1491.6409 12.4143,3.3264 19.7329,15.8918 16.4066,28.3061-1.4835,5.5366-4.9397,9.9605-9.297,12.9862l35.343,35.4003 35.2584-35.305c-4.3779-3.019-7.7821-7.4724-9.2714-13.0303-3.1185-11.6385 3.1175-23.6338 14.1437-27.8221 .7351-.279 1.4948-.4008 2.2707-.6084 12.4143-3.3265 25.1041,4.0001 28.4305,16.4144 1.4893,5.5579.7678,11.1168-1.5141,15.9202l48.2252,13.0878 12.9078-48.3291c-5.3212-.4116-10.4804-2.6377-14.5826-6.7398-9.0878-9.0879-9.2124-23.733-.1246-32.8209 3.4079-3.4079 7.5692-5.5689 11.9737-6.4026 7.3407-1.3895 15.2053.7401 20.8853,6.42 4.1264,4.1264 6.324,9.3982 6.6992,14.7841l48.3547-13.1087-12.9288-48.2508c-4.8606,2.336-10.5163,3.1007-16.1531,1.5903-12.4142-3.3264-19.771-16.0337-16.4446-28.448 2.079-7.7589 7.8327-13.4462 14.9152-15.8605 4.2495-1.4486 8.9154-1.6896 13.5708-.4419 5.5367,1.4835 9.9606,4.9398 12.9863,9.297l35.4003-35.343-35.305-35.2584c-3.019,4.378-7.4723,7.7821-13.0303,9.2713-12.4143,3.3264-25.246-3.962-28.5724-16.3763s4.142-25.1422 16.5563-28.4685c5.558-1.4893 11.1168-.7678 15.9202,1.5141l13.0878-48.2252-48.329-12.9078c-.4114,5.3212-2.6378,10.4804-6.7399,14.5826-9.0879,9.0879-23.7331,9.2124-32.8209.1247s-9.0704-23.771.0187-32.8589c3.408-3.408 7.5876-5.5505 11.9737-6.4025 .9138-.1773 1.8458-.3727 2.7724-.4383l-13.0706-48.2128-48.2508,12.9288c2.368,4.852 3.1006,10.5163 1.5903,16.1531-3.3264,12.4143-16.0336,19.771-28.448,16.4446s-19.629-16.0717-16.3027-28.486c1.4993-5.5955 4.8729-10.107 9.259-13.1281l-35.305-35.2584-35.2584,35.305c4.3779,3.019 7.7821,7.4724 9.2714,13.0303 3.3264,12.4143-3.9621,25.246-16.3763,28.5724s-25.1421-4.142-28.4685-16.5563c-1.4893-5.558-.7678-11.1168 1.5141-15.9202l-48.2252-13.0877zm103.2306,69.077c4.6595-1.3693 9.538-2.0236 14.3639-2.0235 12.869-7e-05 25.7033,4.794 35.5642,14.655l86.2729,86.3975c19.7218,19.7219 19.7787,51.4472.0569,71.1691l-86.3975,86.2729c-19.7218,19.7219-51.4472,19.7787-71.169.0577l-86.2729-86.3975c-19.7218-19.7218-19.7787-51.4472-.057-71.169l86.3975-86.273c6.1631-6.1631 13.4751-10.4062 21.2409-12.6882zm-7.8836,63.1058c-30.4444,9.4663-52.6478,37.8848-52.6478,71.4498 0,41.3107 33.5065,74.8651 74.8172,74.8651s74.8651-33.5065 74.8651-74.8172-33.5065-74.8652-74.8172-74.8652c-7.7458,0-15.1918,1.1829-22.2174,3.3674z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m138.4597,52.3426-12.9078,48.3291c5.309.4232 10.4863,2.6436 14.5826,6.7398 8.5198,8.5199 9.082,21.9091 1.6271,31.0494-.497.6091-1.1148,1.0998-1.6826,1.6676-9.088,9.088-23.5911,9.1743-32.679.0865-4.1264-4.1264-6.292-9.4069-6.6992-14.7842l-48.3547,13.1087 12.8907,48.1089c.7907-.3792 1.6441-.6812 2.4784-.9683 4.2245-1.4552 9.0573-1.7275 13.7127-.4801 11.6384,3.1184 18.7916,14.5518 16.9056,26.1949-.1255.7762-.3949,1.5152-.603,2.291-3.3264,12.4143-15.9298,19.591-28.3441,16.2647-5.6035-1.5015-10.1113-4.8563-13.1281-9.259l-35.2584,35.305 35.305,35.2584c3.019-4.3779 7.4723-7.7821 13.0303-9.2713 11.6384-3.1185 23.6339,3.1174 27.8221,14.1437 .2793.7352.4005,1.4949.6084,2.2706 3.3264,12.4144-4.0001,25.1041-16.4144,28.4305-5.558,1.4893-11.1168.7678-15.9202-1.5141l-13.0878,48.2252 48.3671,13.0497c.4029-5.353 2.5997-10.6224 6.7018-14.7245 3.195-3.195 6.9801-5.3563 11.0842-6.3162 6.8404-1.5999 14.2525.0288 19.9652,4.6891 .6093.4974 1.0998,1.1145 1.6677,1.6826 9.0879,9.0878 9.1743,23.5911.0865,32.679-4.1264,4.1264-9.4068,6.2921-14.7842,6.6993l13.1087,48.3546 48.2508-12.9287c-2.336-4.8606-3.1006-10.5163-1.5903-16.1531 2.3389-8.7288 9.3096-14.9302 17.5735-16.7249 2.7546-.5983 5.7107-.6524 8.6215-.1802 .7762.1255 1.3732.4333 2.1491.6409 12.4143,3.3264 19.7329,15.8918 16.4066,28.3061-1.4835,5.5366-4.9397,9.9605-9.297,12.9862l35.343,35.4003 35.2584-35.305c-4.3779-3.019-7.7821-7.4724-9.2714-13.0303-3.1185-11.6385 3.1175-23.6338 14.1437-27.8221 .7351-.279 1.4948-.4008 2.2707-.6084 12.4143-3.3265 25.1041,4.0001 28.4305,16.4144 1.4893,5.5579.7678,11.1168-1.5141,15.9202l48.2252,13.0878 12.9078-48.3291c-5.3212-.4116-10.4804-2.6377-14.5826-6.7398-9.0878-9.0879-9.2124-23.733-.1246-32.8209 3.4079-3.4079 7.5692-5.5689 11.9737-6.4026 7.3407-1.3895 15.2053.7401 20.8853,6.42 4.1264,4.1264 6.324,9.3982 6.6992,14.7841l48.3547-13.1087-12.9288-48.2508c-4.8606,2.336-10.5163,3.1007-16.1531,1.5903-12.4142-3.3264-19.771-16.0337-16.4446-28.448 2.079-7.7589 7.8327-13.4462 14.9152-15.8605 4.2495-1.4486 8.9154-1.6896 13.5708-.4419 5.5367,1.4835 9.9606,4.9398 12.9863,9.297l35.4003-35.343-35.305-35.2584c-3.019,4.378-7.4723,7.7821-13.0303,9.2713-12.4143,3.3264-25.246-3.962-28.5724-16.3763s4.142-25.1422 16.5563-28.4685c5.558-1.4893 11.1168-.7678 15.9202,1.5141l13.0878-48.2252-48.329-12.9078c-.4114,5.3212-2.6378,10.4804-6.7399,14.5826-9.0879,9.0879-23.7331,9.2124-32.8209.1247s-9.0704-23.771.0187-32.8589c3.408-3.408 7.5876-5.5505 11.9737-6.4025 .9138-.1773 1.8458-.3727 2.7724-.4383l-13.0706-48.2128-48.2508,12.9288c2.368,4.852 3.1006,10.5163 1.5903,16.1531-3.3264,12.4143-16.0336,19.771-28.448,16.4446s-19.629-16.0717-16.3027-28.486c1.4993-5.5955 4.8729-10.107 9.259-13.1281l-35.305-35.2584-35.2584,35.305c4.3779,3.019 7.7821,7.4724 9.2714,13.0303 3.3264,12.4143-3.9621,25.246-16.3763,28.5724s-25.1421-4.142-28.4685-16.5563c-1.4893-5.558-.7678-11.1168 1.5141-15.9202l-48.2252-13.0877zm103.2306,69.077c4.6595-1.3693 9.538-2.0236 14.3639-2.0235 12.869-7e-05 25.7033,4.794 35.5642,14.655l86.2729,86.3975c19.7218,19.7219 19.7787,51.4472.0569,71.1691l-86.3975,86.2729c-19.7218,19.7219-51.4472,19.7787-71.169.0577l-86.2729-86.3975c-19.7218-19.7218-19.7787-51.4472-.057-71.169l86.3975-86.273c6.1631-6.1631 13.4751-10.4062 21.2409-12.6882zm-7.8836,63.1058c-30.4444,9.4663-52.6478,37.8848-52.6478,71.4498 0,41.3107 33.5065,74.8651 74.8172,74.8651s74.8651-33.5065 74.8651-74.8172-33.5065-74.8652-74.8172-74.8652c-7.7458,0-15.1918,1.1829-22.2174,3.3674z"/>
</svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m143.4937,21c-50.162,0-90.7687,39.7025-90.7687,89.0062v2.35h94.7344c13.5616,0 24.5282,13.3384 24.5282,29.9625s-10.9666,29.9625-24.5282,29.9625h-94.7344v15.7156h94.7344c13.5616,0 24.5282,13.4853 24.5282,30.1094s-10.9666,29.9625-24.5282,29.9625h-94.7344v15.7156h94.7344c13.5616,0 24.5282,13.3385 24.5282,29.9625s-10.9666,30.1093-24.5282,30.1093h-94.7344v15.7157h94.7344c13.5616,0 24.5282,13.3384 24.5282,29.9625s-10.9666,29.9625-24.5282,29.9625h-94.7344v40.0969h-14.5407v37.1594h-17.1843v14.2469h17.1843 435.7782 17.0375v-14.2469h-17.0375v-37.1594h-14.6875v-329.5875c0-49.3037-40.1662-89.0062-90.3281-89.0062s-90.6218,39.7025-90.6218,89.0062v2.35h92.9718c13.5616,0 24.5282,13.3384 24.5282,29.9625s-10.9666,29.9625-24.5282,29.9625h-92.9718v15.7156h92.9718c13.5616,0 24.5282,13.4853 24.5282,30.1094s-10.9666,29.9625-24.5282,29.9625h-92.9718v15.7156h92.9718c13.5616,0 24.5282,13.3385 24.5282,29.9625s-10.9666,30.1093-24.5282,30.1093h-92.9718v15.7157h92.9718c13.5616,0 24.5282,13.3384 24.5282,29.9625s-10.9666,29.9625-24.5282,29.9625h-92.9718v40.0969h-44.5032v-329.5875c0-49.3037-40.1662-89.0062-90.3281-89.0062z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m143.4937,21c-50.162,0-90.7687,39.7025-90.7687,89.0062v2.35h94.7344c13.5616,0 24.5282,13.3384 24.5282,29.9625s-10.9666,29.9625-24.5282,29.9625h-94.7344v15.7156h94.7344c13.5616,0 24.5282,13.4853 24.5282,30.1094s-10.9666,29.9625-24.5282,29.9625h-94.7344v15.7156h94.7344c13.5616,0 24.5282,13.3385 24.5282,29.9625s-10.9666,30.1093-24.5282,30.1093h-94.7344v15.7157h94.7344c13.5616,0 24.5282,13.3384 24.5282,29.9625s-10.9666,29.9625-24.5282,29.9625h-94.7344v40.0969h-14.5407v37.1594h-17.1843v14.2469h17.1843 435.7782 17.0375v-14.2469h-17.0375v-37.1594h-14.6875v-329.5875c0-49.3037-40.1662-89.0062-90.3281-89.0062s-90.6218,39.7025-90.6218,89.0062v2.35h92.9718c13.5616,0 24.5282,13.3384 24.5282,29.9625s-10.9666,29.9625-24.5282,29.9625h-92.9718v15.7156h92.9718c13.5616,0 24.5282,13.4853 24.5282,30.1094s-10.9666,29.9625-24.5282,29.9625h-92.9718v15.7156h92.9718c13.5616,0 24.5282,13.3385 24.5282,29.9625s-10.9666,30.1093-24.5282,30.1093h-92.9718v15.7157h92.9718c13.5616,0 24.5282,13.3384 24.5282,29.9625s-10.9666,29.9625-24.5282,29.9625h-92.9718v40.0969h-44.5032v-329.5875c0-49.3037-40.1662-89.0062-90.3281-89.0062z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m227.2777,30.0703c-33.0796,0-61.3761,19.5743-74.073,47.8245-9.8682-8.6719-22.6242-14.0175-36.8304-14.0175h-39.4415c-31.0246,0-55.9327,25.0452-55.9327,56.0702v191.0233c0,30.2401 23.6706,54.578 53.5965,55.7953v88.7777h-42.8772v26.3859h448.561v-26.3859h-43.0144v-88.7777c29.9907-1.1483 53.7342-25.5095 53.7342-55.7953v-191.0233c0-31.025-24.9079-56.0702-55.9329-56.0702h-39.579c-14.1732,0-27.0025,5.2445-36.8303,13.8801-12.7726-28.1605-41.0583-47.6871-74.0733-47.6871h-57.3068zm8.1084,34.2193h41.0904c32.2986,0 58.2689,25.9702 58.2689,58.2689v159.6902h-157.6286v-159.6902c0-32.2988 25.9697-58.2689 58.2692-58.2689zm-152.8189,23.2251h28.3099c15.4069,0 28.5884,8.6404 35.3187,21.3012-.027.8701-.1369,1.7343-.1369,2.6111v95.7863h-103.6198v-79.5699c0-22.2498 17.8782-40.1287 40.1286-40.1287zm318.6928,0h28.1727c22.2495,0 40.1287,17.8789 40.1287,40.1287v79.5699h-103.6202v-95.7863c0-.8769-.1099-1.7411-.1362-2.6111 6.7301-12.6607 20.048-21.3012 35.4561-21.3012zm-145.2604,4.2603c-30.9129,0-55.9325,25.0196-55.9325,55.9327s25.0196,56.0702 55.9325,56.0702 55.9329-25.1571 55.9329-56.0702-25.0192-55.9327-55.9329-55.9327zm-159.2775,14.7046c-21.2952,0-38.4795,17.1843-38.4795,38.4795s17.1843,38.617 38.4795,38.617 38.4795-17.3218 38.4795-38.617-17.1843-38.4795-38.4795-38.4795zm318.5553,0c-21.2952,0-38.4795,17.1843-38.4795,38.4795s17.1843,38.617 38.4795,38.617c21.2948,0 38.7544-17.3218 38.7544-38.617s-17.4596-38.4795-38.7544-38.4795zm-372.8389,123.1344h103.6198v54.1462c-6.7754,12.5118-19.8847,21.0265-35.1813,21.0265h-28.3099c-22.2504,0-40.1286-17.8795-40.1286-40.1286v-35.0441zm323.5025,0h103.6202v35.0441c0,22.2491-17.8791,40.1286-40.1287,40.1286h-28.1727c-15.2973,0-28.543-8.5147-35.3189-21.0265v-54.1462zm-188.8243,75.1727h157.6286v16.6284c0,32.2986-25.9704,58.269-58.2689,58.269h-41.0904c-32.2995,0-58.2692-25.9704-58.2692-58.269v-16.6284zm-31.0585,53.5961v30.2339c0,26.1555 12.2777,49.2199 31.3333,64.0414 .505.356.9974.7551 1.5117,1.0994 11.6388,7.7821 25.5108,12.4828 40.5411,12.7805-15.5712,0-29.9898-4.0401-42.1903-10.9941h-58.6812v-88.7777c10.0946-.3958 19.4588-3.3735 27.4853-8.3833zm219.8828,0c7.9989,4.9953 17.2704,7.9879 27.3482,8.3833v88.7777h-58.5439c-12.2,6.954-26.6199,10.9941-42.1898,10.9941h-1.5119c15.2621,0 29.3619-4.5204 41.2281-12.2307 20.3603-14.723 33.6694-38.5349 33.6694-65.6905v-30.2339zm-147.596,46.3131h18.5524v35.0436h-18.5524v-35.0436zm28.3095,0h18.69v35.0436h-18.69v-35.0436zm28.3103,0h18.6901v35.0436h-18.6901v-35.0436z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m227.2777,30.0703c-33.0796,0-61.3761,19.5743-74.073,47.8245-9.8682-8.6719-22.6242-14.0175-36.8304-14.0175h-39.4415c-31.0246,0-55.9327,25.0452-55.9327,56.0702v191.0233c0,30.2401 23.6706,54.578 53.5965,55.7953v88.7777h-42.8772v26.3859h448.561v-26.3859h-43.0144v-88.7777c29.9907-1.1483 53.7342-25.5095 53.7342-55.7953v-191.0233c0-31.025-24.9079-56.0702-55.9329-56.0702h-39.579c-14.1732,0-27.0025,5.2445-36.8303,13.8801-12.7726-28.1605-41.0583-47.6871-74.0733-47.6871h-57.3068zm8.1084,34.2193h41.0904c32.2986,0 58.2689,25.9702 58.2689,58.2689v159.6902h-157.6286v-159.6902c0-32.2988 25.9697-58.2689 58.2692-58.2689zm-152.8189,23.2251h28.3099c15.4069,0 28.5884,8.6404 35.3187,21.3012-.027.8701-.1369,1.7343-.1369,2.6111v95.7863h-103.6198v-79.5699c0-22.2498 17.8782-40.1287 40.1286-40.1287zm318.6928,0h28.1727c22.2495,0 40.1287,17.8789 40.1287,40.1287v79.5699h-103.6202v-95.7863c0-.8769-.1099-1.7411-.1362-2.6111 6.7301-12.6607 20.048-21.3012 35.4561-21.3012zm-145.2604,4.2603c-30.9129,0-55.9325,25.0196-55.9325,55.9327s25.0196,56.0702 55.9325,56.0702 55.9329-25.1571 55.9329-56.0702-25.0192-55.9327-55.9329-55.9327zm-159.2775,14.7046c-21.2952,0-38.4795,17.1843-38.4795,38.4795s17.1843,38.617 38.4795,38.617 38.4795-17.3218 38.4795-38.617-17.1843-38.4795-38.4795-38.4795zm318.5553,0c-21.2952,0-38.4795,17.1843-38.4795,38.4795s17.1843,38.617 38.4795,38.617c21.2948,0 38.7544-17.3218 38.7544-38.617s-17.4596-38.4795-38.7544-38.4795zm-372.8389,123.1344h103.6198v54.1462c-6.7754,12.5118-19.8847,21.0265-35.1813,21.0265h-28.3099c-22.2504,0-40.1286-17.8795-40.1286-40.1286v-35.0441zm323.5025,0h103.6202v35.0441c0,22.2491-17.8791,40.1286-40.1287,40.1286h-28.1727c-15.2973,0-28.543-8.5147-35.3189-21.0265v-54.1462zm-188.8243,75.1727h157.6286v16.6284c0,32.2986-25.9704,58.269-58.2689,58.269h-41.0904c-32.2995,0-58.2692-25.9704-58.2692-58.269v-16.6284zm-31.0585,53.5961v30.2339c0,26.1555 12.2777,49.2199 31.3333,64.0414 .505.356.9974.7551 1.5117,1.0994 11.6388,7.7821 25.5108,12.4828 40.5411,12.7805-15.5712,0-29.9898-4.0401-42.1903-10.9941h-58.6812v-88.7777c10.0946-.3958 19.4588-3.3735 27.4853-8.3833zm219.8828,0c7.9989,4.9953 17.2704,7.9879 27.3482,8.3833v88.7777h-58.5439c-12.2,6.954-26.6199,10.9941-42.1898,10.9941h-1.5119c15.2621,0 29.3619-4.5204 41.2281-12.2307 20.3603-14.723 33.6694-38.5349 33.6694-65.6905v-30.2339zm-147.596,46.3131h18.5524v35.0436h-18.5524v-35.0436zm28.3095,0h18.69v35.0436h-18.69v-35.0436zm28.3103,0h18.6901v35.0436h-18.6901v-35.0436z"/>
</svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

@@ -1 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="#fff" d="m256,21c-83.6528,0-163.1292,8.0759-235,22.6188l6.3156,11.1625c70.4584-14.7018 147.6728-22.9125 228.6844-22.9125s158.2259,8.2107 228.6843,22.9125l6.3156-11.1625c-71.8709-14.5429-151.3472-22.6188-235-22.6188zm0,23.0594c-78.7468,0-153.6695,7.8024-222.5156,21.7375l66.0937,117.9406c8.9946-10.7 19.2474-20.4788 30.6969-29.0813-16.2549-16.8991-25.7319-29.6458-22.9124-32.1656 .2436-.2169.6176-.3834 1.0281-.4403 4.5067-.6392 18.8875,8.2679 37.1594,22.4718 6.5806-4.0413 13.4355-7.852 20.5625-11.1625-12.3813-22.335-18.826-38.7763-15.1282-40.6844 .2984-.1557.6155-.1881 1.0282-.147 4.83.4519 17.2006,13.7052 31.8718,33.6344 6.9415-2.4698 14.1375-4.5602 21.4438-6.3156-6.1043-26.0545-8.1131-45.0903-3.8188-46.1187 4.337-1.0386 13.6345,16.6066 23.0594,42.3 7.0532-1.0202 14.3052-1.5835 21.5907-1.9093 1.6107-27.2715 5.3214-46.7063 9.8406-46.7063s8.3768,19.4345 9.9874,46.7063c7.2853.3257 14.3907.8891 21.4438,1.9093 9.4249-25.6932 18.7224-43.3385 23.0594-42.3 4.2943,1.0284 2.4324,20.0641-3.6719,46.1187 7.3062,1.7555 14.3554,3.8458 21.2969,6.3156 14.6712-19.9291 27.1887-33.1821 32.0187-33.6344 .4129-.036.73-.007 1.0282.147 3.6979,1.9081-2.7468,18.3493-15.1282,40.6844 7.127,3.3106 13.9819,7.1212 20.5625,11.1625 16.6389-12.9335 30.0159-21.5201 35.6907-22.4718 1.1354-.191 1.863.002 2.35.4403 2.8195,2.5198-6.6575,15.2665-22.9124,32.1656 11.4496,8.6025 21.849,18.3817 30.8437,29.0813l66.0937-117.9406c-68.8461-13.9351-143.9157-21.7375-222.6624-21.7375zm0,107.5124c-70.6186,0-129.8829,42.5929-147.7563,100.6094 13.6274,9.7553 22.1781,24.5978 22.1781,41.4188 0,15.6174-7.4039,29.7379-19.3875,39.5093 20.6382,53.9722 77.5968,92.825 144.9656,92.825 67.3167,0 124.5404-38.771 145.2593-92.6782-12.0783-9.7766-19.8281-23.9681-19.8281-39.6562 0-16.8901 8.8948-31.8133 22.6187-41.5657-17.9571-57.9513-77.4832-100.4625-148.0499-100.4625zm-14.1001,57.4281v90.3281c0,7.8437 6.2563,14.2469 14.1001,14.2469s14.2469-6.4031 14.2469-14.2469v-90.3281c23.5026,2.6278 44.6514,11.804 61.3937,25.2625-1.5573.7812-3.1364,1.6312-4.7,2.4969-25.8126,14.291-42.1384,34.9268-36.5718,46.1187s30.8811,8.7098 56.6937-5.5812c4.5563-2.5225 8.7313-5.3931 12.6313-8.225 6.0234,12.3555 9.5469,25.8995 9.5469,40.2438 0,3.988-.2313,7.8836-.7344,11.75-19.5051,15.3184-62.5823,25.9968-112.5062,25.9968-49.7182,0-92.5948-10.6332-112.2126-25.8499-.5153-3.9188-.8812-7.853-.8812-11.8969 0-14.308 3.4141-27.9139 9.4-40.2438 3.9346,2.8571 8.1844,5.6817 12.7781,8.225 25.8126,14.291 51.1272,16.7731 56.6937,5.5812s-10.7592-31.8277-36.5718-46.1187c-1.5636-.8657-3.1427-1.7157-4.7-2.4969 16.7398-13.4574 37.875-22.648 61.3937-25.2625zm-170.9625,45.825c-23.9741,0-43.475,17.3486-43.475,38.775s19.5009,38.9218 43.475,38.9218 43.3281-17.4953 43.3281-38.9218-19.3539-38.775-43.3281-38.775zm370.2718,0c-23.9741,0-43.3281,17.3486-43.3281,38.775s19.354,38.9218 43.3281,38.9218 43.3281-17.4953 43.3281-38.9218-19.3539-38.775-43.3281-38.775zm-289.7843,93.2656c21.8756,12.5019 60.5168,20.8562 104.575,20.8562s82.6993-8.3543 104.5749-20.8562c-17.0363,36.5952-57.4304,62.275-104.5749,62.275-47.1473,0-87.5815-25.6764-104.575-62.275zm-1.4688,65.3594-44.65,65.5062c46.6095,7.7285 97.3815,12.0438 150.6938,12.0438s104.0842-4.3153 150.6937-12.0438l-44.7969-65.5062c-6.0895,5.934-13.1047,11.2384-20.8562,16.0094 11.0047,9.3723 17.4775,16.6681 15.5687,18.0656-.3293.2436-.8469.253-1.6156.1463-3.8419-.5275-12.9697-5.3114-24.2344-12.4844-4.4552,2.2413-9.1281,4.3327-13.9532,6.1688 8.3824,12.3872 12.7848,21.5605 10.2813,22.6188-.2018.0901-.3077.1694-.5873.147-3.27-.2508-11.8049-7.6003-21.7375-18.6532-4.6994,1.3698-9.4474,2.4047-14.3937,3.3781 4.1326,14.4501 5.4041,24.9859 2.4969,25.5563-2.9361.5758-9.1881-9.1035-15.5688-23.3531-4.7751.5657-9.6084.8475-14.5406,1.0281-1.0904,15.1251-3.6967,25.85-6.7562,25.85s-5.6658-10.725-6.7562-25.85c-4.9323-.1802-9.7656-.4627-14.5407-1.0281-6.3807,14.2497-12.7794,23.9292-15.7156,23.3531-2.9073-.57-1.4889-11.1063 2.6438-25.5563-4.9464-.9735-9.8412-2.0083-14.5407-3.3781-9.9325,11.0529-18.1738,18.4026-21.4437,18.6532-.2796.0216-.6789-.0576-.8812-.147-2.5034-1.0582 1.8989-10.2315 10.2812-22.6188-4.8251-1.836-9.498-3.9274-13.9531-6.1688-12.3702,7.8776-22.0646,12.8386-25.1157,12.4844-.2774-.036-.4223-.0288-.5873-.1463-1.9088-1.3975 4.5641-8.6933 15.5688-18.0656-7.7515-4.771-14.9137-10.0751-21.0032-16.0094z"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#fff"
d="m256,21c-83.6528,0-163.1292,8.0759-235,22.6188l6.3156,11.1625c70.4584-14.7018 147.6728-22.9125 228.6844-22.9125s158.2259,8.2107 228.6843,22.9125l6.3156-11.1625c-71.8709-14.5429-151.3472-22.6188-235-22.6188zm0,23.0594c-78.7468,0-153.6695,7.8024-222.5156,21.7375l66.0937,117.9406c8.9946-10.7 19.2474-20.4788 30.6969-29.0813-16.2549-16.8991-25.7319-29.6458-22.9124-32.1656 .2436-.2169.6176-.3834 1.0281-.4403 4.5067-.6392 18.8875,8.2679 37.1594,22.4718 6.5806-4.0413 13.4355-7.852 20.5625-11.1625-12.3813-22.335-18.826-38.7763-15.1282-40.6844 .2984-.1557.6155-.1881 1.0282-.147 4.83.4519 17.2006,13.7052 31.8718,33.6344 6.9415-2.4698 14.1375-4.5602 21.4438-6.3156-6.1043-26.0545-8.1131-45.0903-3.8188-46.1187 4.337-1.0386 13.6345,16.6066 23.0594,42.3 7.0532-1.0202 14.3052-1.5835 21.5907-1.9093 1.6107-27.2715 5.3214-46.7063 9.8406-46.7063s8.3768,19.4345 9.9874,46.7063c7.2853.3257 14.3907.8891 21.4438,1.9093 9.4249-25.6932 18.7224-43.3385 23.0594-42.3 4.2943,1.0284 2.4324,20.0641-3.6719,46.1187 7.3062,1.7555 14.3554,3.8458 21.2969,6.3156 14.6712-19.9291 27.1887-33.1821 32.0187-33.6344 .4129-.036.73-.007 1.0282.147 3.6979,1.9081-2.7468,18.3493-15.1282,40.6844 7.127,3.3106 13.9819,7.1212 20.5625,11.1625 16.6389-12.9335 30.0159-21.5201 35.6907-22.4718 1.1354-.191 1.863.002 2.35.4403 2.8195,2.5198-6.6575,15.2665-22.9124,32.1656 11.4496,8.6025 21.849,18.3817 30.8437,29.0813l66.0937-117.9406c-68.8461-13.9351-143.9157-21.7375-222.6624-21.7375zm0,107.5124c-70.6186,0-129.8829,42.5929-147.7563,100.6094 13.6274,9.7553 22.1781,24.5978 22.1781,41.4188 0,15.6174-7.4039,29.7379-19.3875,39.5093 20.6382,53.9722 77.5968,92.825 144.9656,92.825 67.3167,0 124.5404-38.771 145.2593-92.6782-12.0783-9.7766-19.8281-23.9681-19.8281-39.6562 0-16.8901 8.8948-31.8133 22.6187-41.5657-17.9571-57.9513-77.4832-100.4625-148.0499-100.4625zm-14.1001,57.4281v90.3281c0,7.8437 6.2563,14.2469 14.1001,14.2469s14.2469-6.4031 14.2469-14.2469v-90.3281c23.5026,2.6278 44.6514,11.804 61.3937,25.2625-1.5573.7812-3.1364,1.6312-4.7,2.4969-25.8126,14.291-42.1384,34.9268-36.5718,46.1187s30.8811,8.7098 56.6937-5.5812c4.5563-2.5225 8.7313-5.3931 12.6313-8.225 6.0234,12.3555 9.5469,25.8995 9.5469,40.2438 0,3.988-.2313,7.8836-.7344,11.75-19.5051,15.3184-62.5823,25.9968-112.5062,25.9968-49.7182,0-92.5948-10.6332-112.2126-25.8499-.5153-3.9188-.8812-7.853-.8812-11.8969 0-14.308 3.4141-27.9139 9.4-40.2438 3.9346,2.8571 8.1844,5.6817 12.7781,8.225 25.8126,14.291 51.1272,16.7731 56.6937,5.5812s-10.7592-31.8277-36.5718-46.1187c-1.5636-.8657-3.1427-1.7157-4.7-2.4969 16.7398-13.4574 37.875-22.648 61.3937-25.2625zm-170.9625,45.825c-23.9741,0-43.475,17.3486-43.475,38.775s19.5009,38.9218 43.475,38.9218 43.3281-17.4953 43.3281-38.9218-19.3539-38.775-43.3281-38.775zm370.2718,0c-23.9741,0-43.3281,17.3486-43.3281,38.775s19.354,38.9218 43.3281,38.9218 43.3281-17.4953 43.3281-38.9218-19.3539-38.775-43.3281-38.775zm-289.7843,93.2656c21.8756,12.5019 60.5168,20.8562 104.575,20.8562s82.6993-8.3543 104.5749-20.8562c-17.0363,36.5952-57.4304,62.275-104.5749,62.275-47.1473,0-87.5815-25.6764-104.575-62.275zm-1.4688,65.3594-44.65,65.5062c46.6095,7.7285 97.3815,12.0438 150.6938,12.0438s104.0842-4.3153 150.6937-12.0438l-44.7969-65.5062c-6.0895,5.934-13.1047,11.2384-20.8562,16.0094 11.0047,9.3723 17.4775,16.6681 15.5687,18.0656-.3293.2436-.8469.253-1.6156.1463-3.8419-.5275-12.9697-5.3114-24.2344-12.4844-4.4552,2.2413-9.1281,4.3327-13.9532,6.1688 8.3824,12.3872 12.7848,21.5605 10.2813,22.6188-.2018.0901-.3077.1694-.5873.147-3.27-.2508-11.8049-7.6003-21.7375-18.6532-4.6994,1.3698-9.4474,2.4047-14.3937,3.3781 4.1326,14.4501 5.4041,24.9859 2.4969,25.5563-2.9361.5758-9.1881-9.1035-15.5688-23.3531-4.7751.5657-9.6084.8475-14.5406,1.0281-1.0904,15.1251-3.6967,25.85-6.7562,25.85s-5.6658-10.725-6.7562-25.85c-4.9323-.1802-9.7656-.4627-14.5407-1.0281-6.3807,14.2497-12.7794,23.9292-15.7156,23.3531-2.9073-.57-1.4889-11.1063 2.6438-25.5563-4.9464-.9735-9.8412-2.0083-14.5407-3.3781-9.9325,11.0529-18.1738,18.4026-21.4437,18.6532-.2796.0216-.6789-.0576-.8812-.147-2.5034-1.0582 1.8989-10.2315 10.2812-22.6188-4.8251-1.836-9.498-3.9274-13.9531-6.1688-12.3702,7.8776-22.0646,12.8386-25.1157,12.4844-.2774-.036-.4223-.0288-.5873-.1463-1.9088-1.3975 4.5641-8.6933 15.5688-18.0656-7.7515-4.771-14.9137-10.0751-21.0032-16.0094z"/>
</svg>

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

@@ -30,9 +30,12 @@ export class ErrorHandler {
Dialogs.info({headline: "Warning", message: reason.message}).then(EmptyExec)
return false
}
if(error.message?.includes("script-src blocked eval")) {
if (error.message?.includes("script-src blocked eval")) {
event.preventDefault()
Dialogs.info({headline: "Warning", message: "One of your browser extensions caused an error. Please disable extensions for a more stable experience."}).then(EmptyExec)
Dialogs.info({
headline: "Warning",
message: "One of your browser extensions caused an error. Please disable extensions for a more stable experience."
}).then(EmptyExec)
return false
}
}
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+1 -1
View File
@@ -5,8 +5,8 @@ import {
asValidIdentifier,
isDefined,
isValidIdentifier,
Nullable,
Maybe,
Nullable,
panic,
SetMultimap,
Strings,
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+1 -1
View File
@@ -1,4 +1,4 @@
declare module '*.xml?raw' {
declare module "*.xml?raw" {
const content: string
export default content
}
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+1 -1
View File
@@ -7,7 +7,7 @@ if ((globalThis as any)[key]) {
console.debug(`%c${key.description}%c is now available in ${globalThis.constructor.name}.`, "color: hsl(200, 83%, 60%)", "color: inherit")
}
import './types'
import "./types"
export * from "./live-stream/LiveStreamReceiver"
export * from "./live-stream/LiveStreamBroadcaster"
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+7 -7
View File
@@ -40,14 +40,14 @@ describe("color", () => {
})
it("should convert HEX to HSL correctly (approximate)", () => {
const { h, s, l } = hexToHsl("#e6bf99")
const {h, s, l} = hexToHsl("#e6bf99")
expect(h).toBeCloseTo(30, 0)
expect(s).toBeCloseTo(0.6, 1)
expect(l).toBeCloseTo(0.75, 2)
})
it("should work without leading # in hex", () => {
const { h, s, l } = hexToHsl("e6bf99")
const {h, s, l} = hexToHsl("e6bf99")
expect(h).toBeCloseTo(30, 0)
expect(s).toBeCloseTo(0.6, 1)
expect(l).toBeCloseTo(0.75, 2)
@@ -55,11 +55,11 @@ describe("color", () => {
it("should round-trip between HSL and HEX", () => {
const colors = [
{ h: 0, s: 1, l: 0.5 },
{ h: 120, s: 1, l: 0.5 },
{ h: 240, s: 1, l: 0.5 },
{ h: 30, s: 0.6, l: 0.75 },
{ h: 200, s: 0.4, l: 0.3 }
{h: 0, s: 1, l: 0.5},
{h: 120, s: 1, l: 0.5},
{h: 240, s: 1, l: 0.5},
{h: 30, s: 0.6, l: 0.75},
{h: 200, s: 0.4, l: 0.3}
]
for (const c of colors) {
+1 -1
View File
@@ -1,4 +1,4 @@
import {Func, int, isDefined, Nullable, Maybe, Predicate, Procedure} from "./lang"
import {Func, int, isDefined, Maybe, Nullable, Predicate, Procedure} from "./lang"
export class Iterables {
static* empty<T>(): Iterable<T> {}
+1 -1
View File
@@ -1,5 +1,5 @@
import {Arrays} from "./arrays"
import {Comparator, int, Nullable, Maybe, Predicate} from "./lang"
import {Comparator, int, Maybe, Nullable, Predicate} from "./lang"
import {Sets} from "./sets"
import {Iterables} from "./iterables"
import {Maps} from "./maps"
+1 -1
View File
@@ -4,8 +4,8 @@ import {
Func,
int,
isDefined,
Nullable,
Maybe,
Nullable,
panic,
Predicate,
Procedure,
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+2 -2
View File
@@ -10,11 +10,11 @@
<Review score="4">Dark fantasy masterpiece.</Review>
</Comic>
</Shelf>
<Shelf id="sh2" />
<Shelf id="sh2"/>
</Section>
<Section id="sec2" name="Non-Fiction">
<Shelf id="sh3">
<Textbook title="A Brief History of Time" author="Stephen Hawking" edition="2" />
<Textbook title="A Brief History of Time" author="Stephen Hawking" edition="2"/>
</Shelf>
</Section>
</Sections>
+49 -43
View File
@@ -11,20 +11,20 @@ export const isCallbackSet = !!CALLBACK_URL
* @param {import('./utils.js').WSSharedDoc} doc
*/
export const callbackHandler = (doc) => {
const room = doc.name
const dataToSend = {
room,
data: {}
}
const sharedObjectList = Object.keys(CALLBACK_OBJECTS)
sharedObjectList.forEach(sharedObjectName => {
const sharedObjectType = CALLBACK_OBJECTS[sharedObjectName]
dataToSend.data[sharedObjectName] = {
type: sharedObjectType,
content: getContent(sharedObjectName, sharedObjectType, doc).toJSON()
const room = doc.name
const dataToSend = {
room,
data: {}
}
})
CALLBACK_URL && callbackRequest(CALLBACK_URL, CALLBACK_TIMEOUT, dataToSend)
const sharedObjectList = Object.keys(CALLBACK_OBJECTS)
sharedObjectList.forEach(sharedObjectName => {
const sharedObjectType = CALLBACK_OBJECTS[sharedObjectName]
dataToSend.data[sharedObjectName] = {
type: sharedObjectType,
content: getContent(sharedObjectName, sharedObjectType, doc).toJSON()
}
})
CALLBACK_URL && callbackRequest(CALLBACK_URL, CALLBACK_TIMEOUT, dataToSend)
}
/**
@@ -33,29 +33,29 @@ export const callbackHandler = (doc) => {
* @param {Object} data
*/
const callbackRequest = (url, timeout, data) => {
data = JSON.stringify(data)
const options = {
hostname: url.hostname,
port: url.port,
path: url.pathname,
timeout,
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(data)
data = JSON.stringify(data)
const options = {
hostname: url.hostname,
port: url.port,
path: url.pathname,
timeout,
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': Buffer.byteLength(data)
}
}
}
const req = http.request(options)
req.on('timeout', () => {
console.warn('Callback request timed out.')
req.abort()
})
req.on('error', (e) => {
console.error('Callback request error.', e)
req.abort()
})
req.write(data)
req.end()
const req = http.request(options)
req.on('timeout', () => {
console.warn('Callback request timed out.')
req.abort()
})
req.on('error', (e) => {
console.error('Callback request error.', e)
req.abort()
})
req.write(data)
req.end()
}
/**
@@ -64,12 +64,18 @@ const callbackRequest = (url, timeout, data) => {
* @param {import('./utils.js').WSSharedDoc} doc
*/
const getContent = (objName, objType, doc) => {
switch (objType) {
case 'Array': return doc.getArray(objName)
case 'Map': return doc.getMap(objName)
case 'Text': return doc.getText(objName)
case 'XmlFragment': return doc.getXmlFragment(objName)
case 'XmlElement': return doc.getXmlElement(objName)
default : return {}
}
switch (objType) {
case 'Array':
return doc.getArray(objName)
case 'Map':
return doc.getMap(objName)
case 'Text':
return doc.getText(objName)
case 'XmlFragment':
return doc.getXmlFragment(objName)
case 'XmlElement':
return doc.getXmlElement(objName)
default :
return {}
}
}
+172 -166
View File
@@ -8,7 +8,7 @@ import * as map from 'lib0/map'
import * as eventloop from 'lib0/eventloop'
import { callbackHandler, isCallbackSet } from './callback.js'
import {callbackHandler, isCallbackSet} from './callback.js'
const CALLBACK_DEBOUNCE_WAIT = parseInt(process.env.CALLBACK_DEBOUNCE_WAIT || '2000')
const CALLBACK_DEBOUNCE_MAXWAIT = parseInt(process.env.CALLBACK_DEBOUNCE_MAXWAIT || '10000')
@@ -33,13 +33,13 @@ let persistence = null
* writeState:function(string,WSSharedDoc):Promise<any>,provider:any}|null} persistence_
*/
export const setPersistence = persistence_ => {
persistence = persistence_
persistence = persistence_
}
/**
* @return {null|{bindState: function(string,WSSharedDoc):void,
* writeState:function(string,WSSharedDoc):Promise<any>}|null} used persistence layer
*/
* writeState:function(string,WSSharedDoc):Promise<any>}|null} used persistence layer
*/
export const getPersistence = () => persistence
/**
@@ -58,11 +58,11 @@ const messageAwareness = 1
* @param {any} _tr
*/
const updateHandler = (update, _origin, doc, _tr) => {
const encoder = encoding.createEncoder()
encoding.writeVarUint(encoder, messageSync)
syncProtocol.writeUpdate(encoder, update)
const message = encoding.toUint8Array(encoder)
doc.conns.forEach((_, conn) => send(doc, conn, message))
const encoder = encoding.createEncoder()
encoding.writeVarUint(encoder, messageSync)
syncProtocol.writeUpdate(encoder, update)
const message = encoding.toUint8Array(encoder)
doc.conns.forEach((_, conn) => send(doc, conn, message))
}
/**
@@ -77,57 +77,61 @@ let contentInitializor = _ydoc => Promise.resolve()
* @param {(ydoc: Y.Doc) => Promise<void>} f
*/
export const setContentInitializor = (f) => {
contentInitializor = f
contentInitializor = f
}
export class WSSharedDoc extends Y.Doc {
/**
* @param {string} name
*/
constructor (name) {
super({ gc: gcEnabled })
this.name = name
/**
* Maps from conn to set of controlled user ids. Delete all user ids from awareness when this conn is closed
* @type {Map<Object, Set<number>>}
* @param {string} name
*/
this.conns = new Map()
/**
* @type {awarenessProtocol.Awareness}
*/
this.awareness = new awarenessProtocol.Awareness(this)
this.awareness.setLocalState(null)
/**
* @param {{ added: Array<number>, updated: Array<number>, removed: Array<number> }} changes
* @param {Object | null} conn Origin is the connection that made the change
*/
const awarenessChangeHandler = ({ added, updated, removed }, conn) => {
const changedClients = added.concat(updated, removed)
if (conn !== null) {
const connControlledIDs = /** @type {Set<number>} */ (this.conns.get(conn))
if (connControlledIDs !== undefined) {
added.forEach(clientID => { connControlledIDs.add(clientID) })
removed.forEach(clientID => { connControlledIDs.delete(clientID) })
constructor(name) {
super({gc: gcEnabled})
this.name = name
/**
* Maps from conn to set of controlled user ids. Delete all user ids from awareness when this conn is closed
* @type {Map<Object, Set<number>>}
*/
this.conns = new Map()
/**
* @type {awarenessProtocol.Awareness}
*/
this.awareness = new awarenessProtocol.Awareness(this)
this.awareness.setLocalState(null)
/**
* @param {{ added: Array<number>, updated: Array<number>, removed: Array<number> }} changes
* @param {Object | null} conn Origin is the connection that made the change
*/
const awarenessChangeHandler = ({added, updated, removed}, conn) => {
const changedClients = added.concat(updated, removed)
if (conn !== null) {
const connControlledIDs = /** @type {Set<number>} */ (this.conns.get(conn))
if (connControlledIDs !== undefined) {
added.forEach(clientID => {
connControlledIDs.add(clientID)
})
removed.forEach(clientID => {
connControlledIDs.delete(clientID)
})
}
}
// broadcast awareness update
const encoder = encoding.createEncoder()
encoding.writeVarUint(encoder, messageAwareness)
encoding.writeVarUint8Array(encoder, awarenessProtocol.encodeAwarenessUpdate(this.awareness, changedClients))
const buff = encoding.toUint8Array(encoder)
this.conns.forEach((_, c) => {
send(this, c, buff)
})
}
}
// broadcast awareness update
const encoder = encoding.createEncoder()
encoding.writeVarUint(encoder, messageAwareness)
encoding.writeVarUint8Array(encoder, awarenessProtocol.encodeAwarenessUpdate(this.awareness, changedClients))
const buff = encoding.toUint8Array(encoder)
this.conns.forEach((_, c) => {
send(this, c, buff)
})
this.awareness.on('update', awarenessChangeHandler)
this.on('update', /** @type {any} */ (updateHandler))
if (isCallbackSet) {
this.on('update', (_update, _origin, doc) => {
debouncer(() => callbackHandler(/** @type {WSSharedDoc} */ (doc)))
})
}
this.whenInitialized = contentInitializor(this)
}
this.awareness.on('update', awarenessChangeHandler)
this.on('update', /** @type {any} */ (updateHandler))
if (isCallbackSet) {
this.on('update', (_update, _origin, doc) => {
debouncer(() => callbackHandler(/** @type {WSSharedDoc} */ (doc)))
})
}
this.whenInitialized = contentInitializor(this)
}
}
/**
@@ -138,13 +142,13 @@ export class WSSharedDoc extends Y.Doc {
* @return {WSSharedDoc}
*/
export const getYDoc = (docname, gc = true) => map.setIfUndefined(docs, docname, () => {
const doc = new WSSharedDoc(docname)
doc.gc = gc
if (persistence !== null) {
persistence.bindState(docname, doc)
}
docs.set(docname, doc)
return doc
const doc = new WSSharedDoc(docname)
doc.gc = gc
if (persistence !== null) {
persistence.bindState(docname, doc)
}
docs.set(docname, doc)
return doc
})
/**
@@ -153,32 +157,32 @@ export const getYDoc = (docname, gc = true) => map.setIfUndefined(docs, docname,
* @param {Uint8Array} message
*/
const messageListener = (conn, doc, message) => {
try {
const encoder = encoding.createEncoder()
const decoder = decoding.createDecoder(message)
const messageType = decoding.readVarUint(decoder)
switch (messageType) {
case messageSync:
encoding.writeVarUint(encoder, messageSync)
syncProtocol.readSyncMessage(decoder, encoder, doc, conn)
try {
const encoder = encoding.createEncoder()
const decoder = decoding.createDecoder(message)
const messageType = decoding.readVarUint(decoder)
switch (messageType) {
case messageSync:
encoding.writeVarUint(encoder, messageSync)
syncProtocol.readSyncMessage(decoder, encoder, doc, conn)
// If the `encoder` only contains the type of reply message and no
// message, there is no need to send the message. When `encoder` only
// contains the type of reply, its length is 1.
if (encoding.length(encoder) > 1) {
send(doc, conn, encoding.toUint8Array(encoder))
// If the `encoder` only contains the type of reply message and no
// message, there is no need to send the message. When `encoder` only
// contains the type of reply, its length is 1.
if (encoding.length(encoder) > 1) {
send(doc, conn, encoding.toUint8Array(encoder))
}
break
case messageAwareness: {
awarenessProtocol.applyAwarenessUpdate(doc.awareness, decoding.readVarUint8Array(decoder), conn)
break
}
}
break
case messageAwareness: {
awarenessProtocol.applyAwarenessUpdate(doc.awareness, decoding.readVarUint8Array(decoder), conn)
break
}
} catch (err) {
console.error(err)
// @ts-ignore
doc.emit('error', [err])
}
} catch (err) {
console.error(err)
// @ts-ignore
doc.emit('error', [err])
}
}
/**
@@ -186,23 +190,23 @@ const messageListener = (conn, doc, message) => {
* @param {any} conn
*/
const closeConn = (doc, conn) => {
if (doc.conns.has(conn)) {
/**
* @type {Set<number>}
*/
// @ts-ignore
const controlledIds = doc.conns.get(conn)
doc.conns.delete(conn)
awarenessProtocol.removeAwarenessStates(doc.awareness, Array.from(controlledIds), null)
if (doc.conns.size === 0 && persistence !== null) {
// if persisted, we store state and destroy ydocument
persistence.writeState(doc.name, doc).then(() => {
doc.destroy()
})
docs.delete(doc.name)
if (doc.conns.has(conn)) {
/**
* @type {Set<number>}
*/
// @ts-ignore
const controlledIds = doc.conns.get(conn)
doc.conns.delete(conn)
awarenessProtocol.removeAwarenessStates(doc.awareness, Array.from(controlledIds), null)
if (doc.conns.size === 0 && persistence !== null) {
// if persisted, we store state and destroy ydocument
persistence.writeState(doc.name, doc).then(() => {
doc.destroy()
})
docs.delete(doc.name)
}
}
}
conn.close()
conn.close()
}
/**
@@ -211,14 +215,16 @@ const closeConn = (doc, conn) => {
* @param {Uint8Array} m
*/
const send = (doc, conn, m) => {
if (conn.readyState !== wsReadyStateConnecting && conn.readyState !== wsReadyStateOpen) {
closeConn(doc, conn)
}
try {
conn.send(m, {}, err => { err != null && closeConn(doc, conn) })
} catch (e) {
closeConn(doc, conn)
}
if (conn.readyState !== wsReadyStateConnecting && conn.readyState !== wsReadyStateOpen) {
closeConn(doc, conn)
}
try {
conn.send(m, {}, err => {
err != null && closeConn(doc, conn)
})
} catch (e) {
closeConn(doc, conn)
}
}
const pingTimeout = 30000
@@ -228,68 +234,68 @@ const pingTimeout = 30000
* @param {import('http').IncomingMessage} req
* @param {any} opts
*/
export const setupWSConnection = (conn, req, { docName = (req.url || '').slice(1).split('?')[0], gc = true } = {}) => {
console.log("Incoming WS from origin:", req.headers.origin)
export const setupWSConnection = (conn, req, {docName = (req.url || '').slice(1).split('?')[0], gc = true} = {}) => {
console.log("Incoming WS from origin:", req.headers.origin)
// ✅ Allow only specific origins
const allowedOrigins = [
'https://opendaw.studio',
'https://live.opendaw.studio',
'https://localhost:8080',
'https://inspector.yjs.dev'
]
const origin = req.headers.origin
if (origin && !allowedOrigins.includes(origin)) {
console.warn('Rejected WS connection from origin:', origin)
conn.close()
return
}
conn.binaryType = 'arraybuffer'
// get doc, initialize if it does not exist yet
const doc = getYDoc(docName, gc)
doc.conns.set(conn, new Set())
// listen and reply to events
conn.on('message', /** @param {ArrayBuffer} message */ message => messageListener(conn, doc, new Uint8Array(message)))
// ✅ Allow only specific origins
const allowedOrigins = [
'https://opendaw.studio',
'https://live.opendaw.studio',
'https://localhost:8080',
'https://inspector.yjs.dev'
]
const origin = req.headers.origin
if (origin && !allowedOrigins.includes(origin)) {
console.warn('Rejected WS connection from origin:', origin)
conn.close()
return
}
conn.binaryType = 'arraybuffer'
// get doc, initialize if it does not exist yet
const doc = getYDoc(docName, gc)
doc.conns.set(conn, new Set())
// listen and reply to events
conn.on('message', /** @param {ArrayBuffer} message */message => messageListener(conn, doc, new Uint8Array(message)))
// Check if connection is still alive
let pongReceived = true
const pingInterval = setInterval(() => {
if (!pongReceived) {
if (doc.conns.has(conn)) {
closeConn(doc, conn)
}
clearInterval(pingInterval)
} else if (doc.conns.has(conn)) {
pongReceived = false
try {
conn.ping()
} catch (e) {
// Check if connection is still alive
let pongReceived = true
const pingInterval = setInterval(() => {
if (!pongReceived) {
if (doc.conns.has(conn)) {
closeConn(doc, conn)
}
clearInterval(pingInterval)
} else if (doc.conns.has(conn)) {
pongReceived = false
try {
conn.ping()
} catch (e) {
closeConn(doc, conn)
clearInterval(pingInterval)
}
}
}, pingTimeout)
conn.on('close', () => {
closeConn(doc, conn)
clearInterval(pingInterval)
}
})
conn.on('pong', () => {
pongReceived = true
})
// put the following in a variables in a block so the interval handlers don't keep in in
// scope
{
// send sync step 1
const encoder = encoding.createEncoder()
encoding.writeVarUint(encoder, messageSync)
syncProtocol.writeSyncStep1(encoder, doc)
send(doc, conn, encoding.toUint8Array(encoder))
const awarenessStates = doc.awareness.getStates()
if (awarenessStates.size > 0) {
const encoder = encoding.createEncoder()
encoding.writeVarUint(encoder, messageAwareness)
encoding.writeVarUint8Array(encoder, awarenessProtocol.encodeAwarenessUpdate(doc.awareness, Array.from(awarenessStates.keys())))
send(doc, conn, encoding.toUint8Array(encoder))
}
}
}, pingTimeout)
conn.on('close', () => {
closeConn(doc, conn)
clearInterval(pingInterval)
})
conn.on('pong', () => {
pongReceived = true
})
// put the following in a variables in a block so the interval handlers don't keep in in
// scope
{
// send sync step 1
const encoder = encoding.createEncoder()
encoding.writeVarUint(encoder, messageSync)
syncProtocol.writeSyncStep1(encoder, doc)
send(doc, conn, encoding.toUint8Array(encoder))
const awarenessStates = doc.awareness.getStates()
if (awarenessStates.size > 0) {
const encoder = encoding.createEncoder()
encoding.writeVarUint(encoder, messageAwareness)
encoding.writeVarUint8Array(encoder, awarenessProtocol.encodeAwarenessUpdate(doc.awareness, Array.from(awarenessStates.keys())))
send(doc, conn, encoding.toUint8Array(encoder))
}
}
}
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+27 -27
View File
@@ -2,49 +2,49 @@
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
import {fileURLToPath} from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// Function to recursively find all TypeScript files
function findTsFiles(dir, baseDir = dir) {
const files = [];
const items = fs.readdirSync(dir);
for (const item of items) {
const fullPath = path.join(dir, item);
const stat = fs.statSync(fullPath);
if (stat.isDirectory()) {
files.push(...findTsFiles(fullPath, baseDir));
} else if (item.endsWith('.ts') && !item.endsWith('.d.ts') && item !== 'index.ts') {
const relativePath = path.relative(baseDir, fullPath).replace(/\\/g, '/').replace('.ts', '');
files.push(relativePath);
const files = [];
const items = fs.readdirSync(dir);
for (const item of items) {
const fullPath = path.join(dir, item);
const stat = fs.statSync(fullPath);
if (stat.isDirectory()) {
files.push(...findTsFiles(fullPath, baseDir));
} else if (item.endsWith('.ts') && !item.endsWith('.d.ts') && item !== 'index.ts') {
const relativePath = path.relative(baseDir, fullPath).replace(/\\/g, '/').replace('.ts', '');
files.push(relativePath);
}
}
}
return files;
return files;
}
// Generate the index.ts content
function generateIndex() {
const srcDir = path.join(__dirname, 'src');
const files = findTsFiles(srcDir);
const exports = files
.sort()
.map(file => `export * from "./${file}"`)
.join('\n');
const content = `// Auto-generated exports - do not edit manually
const srcDir = path.join(__dirname, 'src');
const files = findTsFiles(srcDir);
const exports = files
.sort()
.map(file => `export * from "./${file}"`)
.join('\n');
const content = `// Auto-generated exports - do not edit manually
// Run: node generate-exports.js to regenerate
${exports}
`;
fs.writeFileSync(path.join(srcDir, 'index.ts'), content);
console.log(`Generated ${files.length} exports in index.ts`);
fs.writeFileSync(path.join(srcDir, 'index.ts'), content);
console.log(`Generated ${files.length} exports in index.ts`);
}
generateIndex();
@@ -1,5 +1,13 @@
import {FieldKeys, PointerTypes, PrimitiveField, PrimitiveValues} from "@opendaw/lib-box"
import {assert, NumberArrayComparator, SortedSet, StringMapping, Terminable, unitValue, ValueMapping} from "@opendaw/lib-std"
import {
assert,
NumberArrayComparator,
SortedSet,
StringMapping,
Terminable,
unitValue,
ValueMapping
} from "@opendaw/lib-std"
import {AutomatableParameterFieldAdapter} from "./AutomatableParameterFieldAdapter"
import {BoxAdaptersContext} from "./BoxAdaptersContext"
@@ -9,7 +9,6 @@ import {AudioUnitBoxAdapter} from "../../audio-unit/AudioUnitBoxAdapter"
import {ModularAdapter} from "../../modular/modular"
import {DeviceInterfaceKnobAdapter} from "../../modular/user-interface"
export class ModularDeviceBoxAdapter implements AudioEffectDeviceAdapter {
readonly type = "audio-effect"
readonly accepts = "audio"
@@ -5,7 +5,8 @@ import {Address, BooleanField, Field, Int32Field, StringField} from "@opendaw/li
import {
AudioEffectDeviceAdapter,
DeviceAccepts,
DeviceHost, Devices,
DeviceHost,
Devices,
InstrumentDeviceBoxAdapter,
MidiEffectDeviceAdapter
} from "../../../DeviceAdapter"
@@ -6,7 +6,7 @@ import {DeviceHost, Devices, MidiEffectDeviceAdapter} from "../../DeviceAdapter"
import {BoxAdaptersContext} from "../../BoxAdaptersContext"
import {ParameterAdapterSet} from "../../ParameterAdapterSet"
import {AudioUnitBoxAdapter} from "../../audio-unit/AudioUnitBoxAdapter"
import { AutomatableParameterFieldAdapter } from "../../AutomatableParameterFieldAdapter"
import {AutomatableParameterFieldAdapter} from "../../AutomatableParameterFieldAdapter"
export class PitchDeviceBoxAdapter implements MidiEffectDeviceAdapter {
readonly type = "midi-effect"
@@ -2,7 +2,8 @@ import {Box, Vertex} from "@opendaw/lib-box"
import {
BoxVisitor,
ModularAudioInputBox,
ModularAudioOutputBox, ModuleAttributes,
ModularAudioOutputBox,
ModuleAttributes,
ModuleDelayBox,
ModuleGainBox,
ModuleMultiplierBox
@@ -13,7 +13,7 @@ import {
Terminator,
UUID
} from "@opendaw/lib-std"
import {Address, Addressable, BoxGraph, Editing, Field, PointerField, PointerListener} from "@opendaw/lib-box"
import {Address, Addressable, BoxGraph, Editing, Field, PointerField} from "@opendaw/lib-box"
import {Pointers} from "@opendaw/studio-enums"
import {SelectionBox} from "@opendaw/studio-boxes"
import {SelectableVertex} from "./SelectableVertex"
@@ -2,8 +2,8 @@ import {ppqn, PPQN} from "@opendaw/lib-dsp"
import {
DefaultObservableValue,
int,
Notifier,
Maybe,
Notifier,
ObservableValue,
Observer,
Option,
@@ -1,8 +1,8 @@
import {
DefaultObservableValue,
int,
Notifier,
Maybe,
Notifier,
ObservableValue,
Observer,
Option,
@@ -2,8 +2,8 @@ import {EventCollection, ppqn, PPQN} from "@opendaw/lib-dsp"
import {
DefaultObservableValue,
int,
Notifier,
Maybe,
Notifier,
ObservableValue,
Observer,
Option,
@@ -2,8 +2,8 @@ import {LoopableRegion, NoteEvent, ppqn, PPQN, RegionCollection} from "@opendaw/
import {
Arrays,
int,
Notifier,
Maybe,
Notifier,
Observer,
Option,
safeExecute,
@@ -2,8 +2,8 @@ import {EventCollection, LoopableRegion, ppqn, PPQN, RegionCollection} from "@op
import {
Arrays,
int,
Notifier,
Maybe,
Notifier,
Observer,
Option,
safeExecute,
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
@@ -1,9 +1,8 @@
import {Arrays, assert, SortedSet, Subscription, Terminator, UUID} from "@opendaw/lib-std"
import {AuxSendProcessor} from "./AuxSendProcessor"
import {ChannelStripProcessor} from "./ChannelStripProcessor"
import {AudioEffectDeviceAdapter} from "@opendaw/studio-adapters"
import {AudioEffectDeviceAdapter, AuxSendBoxAdapter} from "@opendaw/studio-adapters"
import {AudioEffectDeviceProcessorFactory} from "./DeviceProcessorFactory"
import {AuxSendBoxAdapter} from "@opendaw/studio-adapters"
import {ProcessPhase} from "./processing"
import {AudioUnit} from "./AudioUnit"
import {DeviceChain} from "./DeviceChain"
@@ -1,6 +1,16 @@
import {PrimitiveValues} from "@opendaw/lib-box"
import {AutomatableParameterFieldAdapter} from "@opendaw/studio-adapters"
import {assert, Notifier, Observer, Option, Subscription, Terminable, TerminableOwner, Terminator, unitValue} from "@opendaw/lib-std"
import {
assert,
Notifier,
Observer,
Option,
Subscription,
Terminable,
TerminableOwner,
Terminator,
unitValue
} from "@opendaw/lib-std"
import {ppqn} from "@opendaw/lib-dsp"
import {EngineContext} from "./EngineContext"
@@ -1,10 +1,13 @@
import {AnyClipBoxAdapter} from "@opendaw/studio-adapters"
import {
AnyClipBoxAdapter,
ClipSequencing,
ClipSequencingUpdates,
Section,
TrackBoxAdapter
} from "@opendaw/studio-adapters"
import {Arrays, identity, Option, quantizeFloor, SortedSet, UUID} from "@opendaw/lib-std"
import {ppqn, PPQN} from "@opendaw/lib-dsp"
import {TrackBoxAdapter} from "@opendaw/studio-adapters"
import {BoxGraph, Update} from "@opendaw/lib-box"
import {ClipSequencing, Section} from "@opendaw/studio-adapters"
import {ClipSequencingUpdates} from "@opendaw/studio-adapters"
// Just convenient to identify which UUID is for which type
type ClipKey = UUID.Bytes
@@ -1,10 +1,9 @@
import {Arrays, assert, SortedSet, Subscription, Terminator, UUID} from "@opendaw/lib-std"
import {AudioEffectDeviceAdapter} from "@opendaw/studio-adapters"
import {AudioEffectDeviceAdapter, IndexedBoxAdapterCollection} from "@opendaw/studio-adapters"
import {AudioEffectDeviceProcessorFactory} from "./DeviceProcessorFactory"
import {AudioInput, ProcessPhase} from "./processing"
import {DeviceChain} from "./DeviceChain"
import {EngineContext} from "./EngineContext"
import {IndexedBoxAdapterCollection} from "@opendaw/studio-adapters"
import {Pointers} from "@opendaw/studio-enums"
import {DeviceProcessor} from "./DeviceProcessor"
import {AudioDeviceProcessor} from "./AudioDeviceProcessor"
@@ -1,5 +1,5 @@
import {Peaks} from "@opendaw/lib-fusion"
import {AudioData, EngineToClient, SampleLoader, SampleLoaderState, SampleLoaderManager} from "@opendaw/studio-adapters"
import {AudioData, EngineToClient, SampleLoader, SampleLoaderManager, SampleLoaderState} from "@opendaw/studio-adapters"
import {Observer, Option, SortedSet, Subscription, Terminable, UUID} from "@opendaw/lib-std"
class AudioLoaderWorklet implements SampleLoader {
@@ -1,10 +1,9 @@
import {BlockFlag, ProcessInfo} from "./processing"
import {Event} from "@opendaw/lib-dsp"
import {Event, Fragmentor} from "@opendaw/lib-dsp"
import {EngineContext} from "./EngineContext"
import {Arrays, Bits, int, Terminable} from "@opendaw/lib-std"
import {AbstractProcessor} from "./AbstractProcessor"
import {EventBuffer} from "./EventBuffer"
import {Fragmentor} from "@opendaw/lib-dsp"
import {UpdateClockRate} from "@opendaw/studio-adapters"
export interface UpdateEvent extends Event {type: "update-event"}
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+1 -1
View File
@@ -22,7 +22,7 @@
* ~~Map to new uuids (not when exporting)~~
* ~~Create the openDAW device if found~~
* ~~Read preset~~
* ~~Read preset~~
* Create automation
* Read event-offset and import loop settings
* ~~Auto-select the first audio-unit~~
+2 -2
View File
@@ -14,8 +14,8 @@
- list used samples
- SampleStorage
- list/store/load/delete samples
- per-sample files in OPFS
- list/store/load/delete samples
- per-sample files in OPFS
- ProjectBundle (bundles metadata and samples)
- encode/decode bundled projects
+1 -1
View File
@@ -1,6 +1,6 @@
/// <reference types="vite/client" />
declare module '*?url' {
declare module "*?url" {
const url: string
export default url
}
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+7 -7
View File
@@ -1,10 +1,10 @@
/** @type {import("eslint").Linter.Config} */
module.exports = {
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
root: true,
ignorePatterns: [".eslintrc.cjs"],
extends: ["@opendaw/eslint-config/index.js"],
parser: "@typescript-eslint/parser",
parserOptions: {
project: true,
},
};
+6 -5
View File
@@ -21,15 +21,16 @@
openDAW is available **under two alternative license terms**:
| Option | When to choose it | Obligations |
|-----------------------------|----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **A. AGPL v3 (or later)** | You are happy for the entire work that includes openDAW to be released under AGPL-compatible open-source terms. | Must distribute complete corresponding source code under AGPL.<br> Must keep copyright & licence notices.<br> Applies both to distribution **and** to public use via network/SaaS (§13).<br> May run openDAW privately in any software, open or closed (§0). |
| **B. Commercial Licence** | You wish to incorporate openDAW into **closed-source** or otherwise licence-incompatible software or SaaS offerings. | Pay the agreed fee.<br> No copyleft requirement for your own source code.<br> Other terms as per the signed agreement. |
| Option | When to choose it | Obligations |
|---------------------------|----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **A. AGPL v3 (or later)** | You are happy for the entire work that includes openDAW to be released under AGPL-compatible open-source terms. | Must distribute complete corresponding source code under AGPL.<br> Must keep copyright & licence notices.<br> Applies both to distribution **and** to public use via network/SaaS (§13).<br> May run openDAW privately in any software, open or closed (§0). |
| **B. Commercial Licence** | You wish to incorporate openDAW into **closed-source** or otherwise licence-incompatible software or SaaS offerings. | Pay the agreed fee.<br> No copyleft requirement for your own source code.<br> Other terms as per the signed agreement. |
> **How to obtain the Commercial License**
> Email `andre.michelle@opendaw.org` with your company name, product description, and expected distribution volume.
If you redistribute or run modified versions of openDAW for public use **without** a commercial license, the AGPL v3 terms apply automatically.
If you redistribute or run modified versions of openDAW for public use **without** a commercial license, the AGPL v3
terms apply automatically.
## License