Compare commits

..

1 commit

Author SHA1 Message Date
D
b63129d4b8 webscale 2020-06-20 17:13:49 +02:00
98 changed files with 1174 additions and 3124 deletions

View file

@ -34,7 +34,6 @@ steps:
- yarn build
environment:
SUBPATH: /tghandbook/${DRONE_COMMIT_BRANCH/\//_}-${DRONE_COMMIT_SHA:0:8}
REVISION: ${DRONE_COMMIT_SHA}
when:
event:
- push
@ -48,24 +47,24 @@ steps:
environment:
SUBPATH: /tghandbook/pr-${DRONE_PULL_REQUEST}
OUTDIR: ./dist-pr
REVISION: ${DRONE_COMMIT_SHA}
when:
event:
- pull_request
depends_on:
- dependencies
- name: build_branch
- name: build_master
image: node
commands:
- yarn build
environment:
SUBPATH: /tghandbook/${DRONE_COMMIT_BRANCH/\//_}
OUTDIR: ./dist-branch
REVISION: ${DRONE_COMMIT_SHA}
SUBPATH: /tghandbook/latest
OUTDIR: ./dist-master
when:
event:
- push
branch:
- master
depends_on:
- dependencies
@ -107,7 +106,7 @@ steps:
depends_on:
- build_pr
- name: upload_build_branch
- name: upload_build_master
image: plugins/s3
settings:
bucket: tghandbook
@ -115,16 +114,18 @@ steps:
from_secret: minio_access
secret_key:
from_secret: minio_secret
source: dist-branch/**/*
target: /${DRONE_COMMIT_BRANCH/\//_}/
strip_prefix: dist-branch/
source: dist-master/**/*
target: /latest/
strip_prefix: dist-master/
path_style: true
endpoint: https://artifacts.fromouter.space
when:
event:
- push
branch:
- master
depends_on:
- build_branch
- build_master
- name: rebuild-cache
image: drillster/drone-volume-cache
@ -145,4 +146,4 @@ volumes:
path: /opt/gitea/drone-cache/hamcha/tghandbook
---
kind: signature
hmac: 55dfd5c47c79e51394c5cdfaa9b98a6f6acd84e751e92964c202ac19b46c0373
hmac: 9f4b08596bdaa078a6c60fc63d932084bab117c340a310903bbe96f31c0122bb

View file

@ -19,8 +19,6 @@ module.exports = {
"no-param-reassign": "off",
"no-alert": "off",
"no-console": "off",
"func-names": "off",
"dot-notation": ["error", { allowPattern: "^[A-Z][a-z]+$" }],
"@typescript-eslint/ban-ts-comment": [
"error",
{

23
LICENSE
View file

@ -1,23 +0,0 @@
This code is license under ISC, full copy below:
Copyright 2020, Alessandro Gatti
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
This code uses idb-keyval, licensed under Apache 2:
Copyright 2016, Jake Archibald
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View file

@ -1,6 +1,6 @@
# /tg/ handbook
[![Build Status](https://ci.fromouter.space/api/badges/Hamcha/tghandbook/status.svg)](https://ci.fromouter.space/Hamcha/tghandbook)
[![Build Status](https://drone.zyg.ovh/api/badges/Hamcha/tghandbook/status.svg)](https://drone.zyg.ovh/Hamcha/tghandbook)
## Building
@ -8,4 +8,4 @@
## Development
`yarn dev`
`yarn && yarn dev`

View file

@ -1,3 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 425 200" opacity=".33"><path d="M178.004.039H106.8a6.761 6.026 0 00-6.761 6.025v187.872a6.761 6.026 0 006.761 6.025h53.107a6.761 6.026 0 006.762-6.025V92.392l72.216 104.7a6.761 6.026 0 005.76 2.87H318.2a6.761 6.026 0 006.761-6.026V6.064A6.761 6.026 0 00318.2.04h-54.717a6.761 6.026 0 00-6.76 6.025v102.62L183.763 2.909a6.761 6.026 0 00-5.76-2.87zM4.845 22.109A13.412 12.502 0 0113.478.039h66.118A5.365 5 0 0184.96 5.04v79.88zM420.155 177.891a13.412 12.502 0 01-8.633 22.07h-66.118a5.365 5 0 01-5.365-5.001v-79.88z"/></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 425 200" opacity=".33">
<path d="m 178.00399,0.03869 -71.20393,0 a 6.7613422,6.0255495 0 0 0 -6.76134,6.02555 l 0,187.87147 a 6.7613422,6.0255495 0 0 0 6.76134,6.02554 l 53.1072,0 a 6.7613422,6.0255495 0 0 0 6.76135,-6.02554 l 0,-101.544018 72.21628,104.699398 a 6.7613422,6.0255495 0 0 0 5.76015,2.87016 l 73.55487,0 a 6.7613422,6.0255495 0 0 0 6.76135,-6.02554 l 0,-187.87147 a 6.7613422,6.0255495 0 0 0 -6.76135,-6.02555 l -54.71644,0 a 6.7613422,6.0255495 0 0 0 -6.76133,6.02555 l 0,102.61935 L 183.76413,2.90886 a 6.7613422,6.0255495 0 0 0 -5.76014,-2.87017 z" />
<path d="M 4.8446333,22.10875 A 13.412039,12.501842 0 0 1 13.477588,0.03924 l 66.118315,0 a 5.3648158,5.000737 0 0 1 5.364823,5.00073 l 0,79.87931 z" />
<path d="m 420.15535,177.89119 a 13.412038,12.501842 0 0 1 -8.63295,22.06951 l -66.11832,0 a 5.3648152,5.000737 0 0 1 -5.36482,-5.00074 l 0,-79.87931 z" />
</svg>
<!-- This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. -->
<!-- http://creativecommons.org/licenses/by-sa/4.0/ -->

Before

Width:  |  Height:  |  Size: 751 B

After

Width:  |  Height:  |  Size: 1.1 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 257 256" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path fill="none" d="M.452 0h256v256h-256z"/><path d="M129.014 47.901c14.483-8.061 24.58-16.488 38.561-22.21 11.701-4.787 26.042-7.773 47.622-7.098l4.953.191.387 38.629c3.103-.006 6.211.039 9.325.125 4.938.135 9.889.377 14.854.714l5.498.445v5.516s.828 52.078 1.2 97.18c.287 34.428.274 64.787.274 64.787v8.059l-8.035-.627c-24.152-2.097-45.98-2.69-65.405-1.783-15.888.744-30.153 2.465-42.637 5.293l-5.597 1.36-1.562.402s-7.123-1.904-7.022-1.88c-12.547-3.165-26.793-5.311-42.704-6.393-19.473-1.324-41.39-1.078-65.663.59l-5.428.423.98-167.41V60.47l3.73-.302a365.634 365.634 0 0115.366-.843c3.83-.126 7.651-.188 11.465-.179l-.17-35.405V19.82l3.92-.152c21.43-.935 35.714 1.868 47.393 6.49 14.013 5.545 24.171 13.856 38.695 21.743zM47.14 27.724l-.17 35.345v3.927l-3.926-.039a309.957 309.957 0 00-15.027.31c-3.749.166-7.504.395-11.266.685l.923 152.758c22.638-1.796 43.225-2.242 61.695-1.39 16.71.77 31.707 2.619 44.997 5.622l4.004.974 4.183-1.13c13.195-3.32 28.18-5.559 44.911-6.685 17.804-1.198 37.6-1.116 59.32.14.013-11.236.069-33.072.265-56.847.302-36.326.897-77.176 1.118-91.7a320.475 320.475 0 00-8.775-.593c-4.8-.257-9.589-.413-14.365-.45l-5.626.03.394-39.953c-16.988-.321-28.824 2.01-38.643 5.876-14.403 5.673-24.606 14.425-39.985 22.47l-2.127 1.129-2.128-1.129c-15.313-8.223-25.44-17.087-39.798-22.934-10.059-4.098-22.25-6.643-39.974-6.416z" fill="#fff"/><path d="M124.388 234.209c-5.347-2.704-9.458-6.503-13.936-10.57-5.455-4.954-11.563-10.32-22.261-13.926-10.026-3.38-23.97-5.198-44.87-3.961l-4.9.25v-4.908s-.552-44.336-.426-88.676c.127-44.342.931-88.676.931-88.676v-3.997l3.995-.157c16.103-.402 28.11 1.236 38 4.113 19.276 5.607 30.377 16.066 48.121 25.984 17.751-9.894 28.863-20.327 48.135-25.92 9.887-2.868 21.887-4.508 37.98-4.104l3.925.153v3.928s.906 44.332 1.074 88.676c.169 44.338-.401 88.676-.401 88.676v5.006l-5-.255c-20.885-1.243-34.818.57-44.84 3.94-10.691 3.594-16.8 8.944-22.255 13.888-4.482 4.063-8.597 7.859-13.947 10.56v4.187l-4.685-2.092-4.645 2.068.005-4.187zm86.45-206.553c-17.768-.558-30.052 1.75-40.21 5.728-14.457 5.663-24.699 14.486-40.131 22.568l-1.456.776-1.457-.776c-15.441-8.058-25.697-16.856-40.157-22.506-10.14-3.962-22.397-6.271-40.12-5.72.198 11.843.76 48.264.864 84.692.101 35.61-.234 71.216-.371 83.859 19.759-.445 33.283 1.82 43.194 5.342 12.023 4.274 18.879 10.372 24.95 16.074 4.153 3.901 7.855 7.63 13.062 10.088 5.232-2.462 8.938-6.204 13.1-10.122 6.07-5.714 12.925-11.825 24.957-16.112 9.898-3.526 23.403-5.793 43.122-5.364-.142-12.727-.48-48.245-.346-83.765.138-36.504.777-73 1-84.762z" fill="#fff"/><path d="M131.84 227.74a2.942 2.942 0 01-5.415.025l-8.456-1.162s8.838-1.436 9.259-13.965c.047-1.4.121-1.6.206-1.03l.24-3.427c.855-12.83 1.453-27.634 1.453-27.634s.598 14.804 1.453 27.634c.169 2.522.349 4.962.524 7.197 1.498 10.005 9.008 11.225 9.008 11.225l-8.271 1.138zM129.727 49.702l-.01-.272 10.394 1.451s-8.837 1.458-9.258 14.178c-.047 1.421-.121 1.625-.206 1.045l-.24 3.48c-.856 13.026-1.453 28.054-1.453 28.054s-.598-15.028-1.454-28.054c-.168-2.56-.348-5.037-.523-7.307-1.498-10.156-9.008-11.396-9.008-11.396l10.396-1.45-.01.256c.453-.035.926-.03 1.372.015zM82.887 178.83V76.855H65.036V63.048h47.752v13.806l-17.851.001V178.83h-12.05zM179.476 63.122c9.006.741 13.57 7.034 13.57 18.736v15.147h-10.893V86.132c0-5.723-3.111-9.277-8.12-9.277h-9.215c-5.084 0-8.121 3.468-8.121 9.277v69.612c0 5.81 3.037 9.277 8.12 9.277h9.215c5.085 0 8.12-3.468 8.12-9.277v-23.627h-8.703v-13.809h19.596v41.711c0 12.482-5.192 18.81-15.43 18.81h-16.892c-5.092 0-8.954-1.528-11.48-4.542-2.622-3.125-3.95-7.925-3.95-14.27V81.859c0-6.343 1.328-11.144 3.95-14.27 2.525-3.012 6.388-4.54 11.479-4.54h16.894l1.86.074z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

View file

@ -1 +1,56 @@
<svg width="100vmin" height="100vmin" viewBox="0 0 340 340" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><style>@keyframes rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}</style><path id="text" d="M104.26 279.309V92.146H71.496V66.804h87.644v25.34l-32.764.002v187.163m79.441 0c-9.874 0-17.365-2.805-22.265-8.337-5.083-5.735-7.66-14.546-7.66-26.189V101.33c0-11.643 2.577-20.454 7.66-26.19 4.898-5.53 12.39-8.334 22.264-8.334h32.764c19.855 0 29.924 11.614 29.924 34.524v27.801h-21.125v-19.957c0-10.503-6.033-17.027-15.748-17.027h-17.872c-9.86 0-15.75 6.365-15.75 17.027v127.764c0 10.663 5.89 17.028 15.75 17.028h17.87c9.862 0 15.75-6.365 15.75-17.027v-43.364h-16.88V168.23h38.004v76.555c0 22.91-10.068 34.524-29.924 34.524h-32.764.002z" fill="#a4b4c596" fill-rule="nonzero"/><g mask="url(#textmask)" fill="#a4b4c596"><path d="M52.637 76.985l-34.293 23.281 3.536 41.297-19.545 36.551 22.32 34.923-.321 41.444 35.993 20.552 18.978 36.847 41.422 1.473 33.926 23.808 37.364-17.95 41.103 5.317 24.741-33.256 38.866-14.401 6.45-40.939 27.726-30.81-13.316-39.251 10.23-40.165-30.029-28.569-9.608-40.318-39.866-11.342-27.244-31.234-40.569 8.485-38.639-14.997-31.981 26.367-41.18 4.678-16.065 38.209h.001zm164.124 203.757l17.013-23.69 28.163-10.316 4.233-29.641 20.242-22.182-10.017-28.107 7.683-28.966-21.972-20.134-6.635-29.114-28.894-7.548-19.434-22.593-29.196 6.767-27.78-10.897-22.81 19.532-29.763 3.297-11.198 27.822-24.927 16.735 2.979 29.739-14.381 26.339 16.474 24.842-.534 29.582 12.349 7.051 13.839 7.531 13.181 26.145 12.693.452.192.201 17.273.232 24.313 17.246 26.781-13.543 29.617 3.911.516-.693z" style="transform-origin:50% 50%;animation-name:rotate;animation-duration:6s;animation-iteration-count:infinite;animation-timing-function:linear"/></g><mask id="textmask"><path fill="#fff" d="M0 0h340v340H0z"/><path d="M274.325 244.784c0 26.336-12.66 40.345-35.744 40.345h-32.764c-8.33 0-14.878-2.482-20.736-5.29-14.579-6.987-16.017-38.658-16.017-38.658h-36.868v39.464c0 3.08-1.24 4.482-3.972 4.482h-25.811c-2.482 0-3.972-1.4-3.972-4.482v-30.777l-.31-.495.524-151.407H69.646c-2.482 0-3.972-1.682-3.972-4.483V65.464c0-2.8 1.49-4.48 3.973-4.48h61.604l27.295-.061c4.769-.383 6.373 1.937 6.073 5.881v24.618h6c2.168-19.875 15.212-31.314 38.13-30.439h29.832c23.085 0 35.744 14.008 35.744 40.345v17.55l.001 83.882v42.022l-.001.002z" fill-rule="nonzero"/></mask></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
width="100vmin"
height="100vmin
"
viewBox="0 0 340 340"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xml:space="preserve"
xmlns:serif="http://www.serif.com/"
style="
fill-rule: evenodd;
clip-rule: evenodd;
stroke-linejoin: round;
stroke-miterlimit: 2;
"
>
<style>
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
#circleboi {
transform-origin: 50% 50%;
animation-name: rotate;
animation-duration: 6s;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
</style>
<path
id="text"
d="M104.26,279.309L104.26,92.146L71.496,92.146L71.496,66.804L159.14,66.804L159.14,92.144L126.376,92.146L126.376,279.309M205.817,279.309C195.943,279.309 188.452,276.504 183.552,270.972C178.469,265.237 175.892,256.426 175.892,244.783L175.892,101.33C175.892,89.687 178.469,80.876 183.552,75.14C188.45,69.61 195.942,66.806 205.816,66.806L238.58,66.806C258.435,66.806 268.504,78.42 268.504,101.33L268.504,129.131L247.379,129.131L247.379,109.174C247.379,98.671 241.346,92.147 231.631,92.147L213.759,92.147C203.899,92.147 198.009,98.512 198.009,109.174L198.009,236.938C198.009,247.601 203.899,253.966 213.759,253.966L231.629,253.966C241.491,253.966 247.379,247.601 247.379,236.939L247.379,193.575L230.499,193.575L230.499,168.23L268.503,168.23L268.503,244.785C268.503,267.695 258.435,279.309 238.579,279.309L205.815,279.309L205.817,279.309Z"
style="fill-rule: nonzero;" fill="#a4b4c596"
/>
<g mask="url(#textmask)" fill="#a4b4c596">
<path
id="circleboi"
d="M52.637,76.985L18.344,100.266L21.88,141.563L2.335,178.114L24.655,213.037L24.334,254.481L60.327,275.033L79.305,311.88L120.727,313.353L154.653,337.161L192.017,319.211L233.12,324.528L257.861,291.272L296.727,276.871L303.177,235.932L330.903,205.122L317.587,165.871L327.817,125.706L297.788,97.137L288.18,56.819L248.314,45.477L221.07,14.243L180.501,22.728L141.862,7.731L109.881,34.098L68.701,38.776L52.636,76.985L52.637,76.985ZM216.761,280.742L233.774,257.052L261.937,246.736L266.17,217.095L286.412,194.913L276.395,166.806L284.078,137.84L262.106,117.706L255.471,88.592L226.577,81.044L207.143,58.451L177.947,65.218L150.167,54.321L127.357,73.853L97.594,77.15L86.396,104.972L61.469,121.707L64.448,151.446L50.067,177.785L66.541,202.627L66.007,232.209L78.356,239.26L92.195,246.791L105.376,272.936L118.069,273.388L118.261,273.589L135.534,273.821L159.847,291.067L186.628,277.524L216.245,281.435L216.761,280.742Z"
/>
</g>
<mask id="textmask">
<rect x="0" y="0" width="340" height="340" style="fill: white;" />
<path
d="M274.325,244.784C274.325,271.12 261.665,285.129 238.581,285.129L205.817,285.129C197.487,285.129 190.939,282.647 185.081,279.839C170.502,272.852 169.064,241.181 169.064,241.181L132.196,241.181L132.196,280.645C132.196,283.725 130.956,285.127 128.224,285.127L102.413,285.127C99.931,285.127 98.441,283.727 98.441,280.645L98.441,249.868L98.131,249.373L98.655,97.966L69.646,97.966C67.164,97.966 65.674,96.284 65.674,93.483L65.674,65.464C65.674,62.664 67.164,60.984 69.647,60.984L131.251,60.984L158.546,60.923C163.315,60.54 164.919,62.86 164.619,66.804L164.619,91.422L170.619,91.422C172.787,71.547 185.831,60.108 208.749,60.983L238.581,60.983C261.666,60.983 274.325,74.991 274.325,101.328L274.325,118.878L274.326,202.76L274.326,244.782L274.325,244.784Z"
style="fill-rule: nonzero;"
fill="black"
/>
</mask>
</svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M10.001-28.127a1.56 1.56 0 00-1.494.863l-4.71 9.968c-.2.405-.185.883.04 1.274 0 0 1.587 2.605 3.11 5.25C8.47-8.129 9.926-5.448 9.926-5.448c.228.395.639.649 1.094.678l10.99.869a1.538 1.538 0 001.473-.85l4.738-9.956a1.353 1.353 0 00-.04-1.28s-1.598-2.6-3.127-5.24c-1.53-2.641-2.99-5.32-2.99-5.32a1.34 1.34 0 00-1.075-.667l-10.988-.914zm10.13 3.557l-9.302-.4-4.297 8.256c.527.955 1.563 2.818 2.63 4.662a277.167 277.167 0 002.73 4.597l9.302.44 4.277-8.277a264.188 264.188 0 00-2.614-4.667 255.043 255.043 0 00-2.726-4.611zm-4.203 9.474l-.006-.118c0-.76.618-1.377 1.377-1.377h2.657a1.377 1.377 0 010 2.755h-1.28v1.32h1.28a1.378 1.378 0 010 2.754H17.3l-.141-.008-.137-.02-.133-.034-.02-.008a1.375 1.375 0 01-.947-1.308v-3.837l.006-.12zm-4.102-3.75h-.542a1.378 1.378 0 010-2.753h3.838a1.378 1.378 0 010 2.754h-.542v2.963a1.378 1.378 0 01-2.754 0v-2.963zM7.906 9.59c.293-3.12 2.411-5.878 5.147-6.546 3.62-.883 6.813.782 8.206 3.757 1.734.153 3.289.476 4.39.877 1.825.664 3.096 2.121 3.385 3.467.287 1.345-.227 3.594-2.357 5.251-2.033 1.582-5.11 3.904-10.735 4.685-3.934.545-7.657.16-10.079-.72-1.825-.665-2.602-2.185-2.89-3.53-.288-1.346.124-3.522 2.371-5.41a19.03 19.03 0 012.562-1.83zm7.186-4.866a4.295 4.295 0 00-1.226.09c-2.652.567-4.101 3.15-3.444 6.225.162.754.827 1.222 1.728 1.452a.74.74 0 00.248.122c.97.298 3.958.606 6.673-.72-3.737 1.952-10.019 2.722-10.953.313-.487.32-.937.649-1.35.978-.998.794-1.805 2.096-1.605 3.037.202.941 1.105 1.611 2.382 2.076 2.231.812 5.58.913 9.159.147 3.58-.766 6.592-2.23 8.296-3.884.975-.946 1.523-1.928 1.321-2.87-.2-.94-1.103-1.611-2.38-2.076a10.673 10.673 0 00-2.11-.509c-.118.72-.682 1.41-1.522 2.024.274-.615-.632-6.176-5.203-6.406h-.014z" fill="#fff"/><path d="M14.704 5.755s-1.927.178-2.952 1.645c-.44.629-.731 1.492-.614 2.688a.75.75 0 101.492-.146c-.073-.745.078-1.291.351-1.683.64-.916 1.853-1.009 1.853-1.009a.752.752 0 00.682-.812.752.752 0 00-.812-.683zM7.966 13.146s2.231 2.503 8.033.823c6.088-1.765 6.3-3.979 6.3-3.979s4.46.91 2.802 3.394c-1.229 1.84-7.796 5.678-15.5 4.49-6.957-1.073-1.635-4.728-1.635-4.728zM11.763 24.14l.435 2.433a1 1 0 001.97-.352l-.436-2.433a1 1 0 00-1.969.352zM12.656 29.135l.145.811a1 1 0 001.969-.352l-.145-.811a1 1 0 00-1.969.352z" fill="#fff"/><path d="M11.763 24.14l.435 2.433a1 1 0 001.97-.352l-.436-2.433a1 1 0 00-1.969.352zM18.937 27.856l.145.811a1 1 0 001.97-.352l-.146-.811a1 1 0 00-1.969.352zM18.045 22.86l.435 2.434a1 1 0 001.969-.352l-.435-2.433a1 1 0 00-1.97.352zM21.106 21.828l.474 2.651a1 1 0 001.969-.352l-.474-2.651a1 1 0 00-1.97.352zM14.965 23.567l.21 1.177a1 1 0 001.97-.352l-.21-1.177a1 1 0 00-1.97.352zM22.063 27.181l.21 1.177a1 1 0 001.97-.352l-.211-1.177a1 1 0 00-1.969.352zM15.65 27.405l.444 2.477a1.001 1.001 0 001.968-.352l-.442-2.477a1.001 1.001 0 00-1.97.352z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="5"><path d="M34.667 200c4.266-2.167 8.781-2.035 13.504 0 4.966-2.083 9.477-2.527 13.162 0v1.802c1.62 1.622 2.522-.604 2.43.064-.081.587-.974 2.426-2.43 3.514V208c-4.444 3.844-8.889 3.814-13.333 0-4.444 3.533-8.889 3.631-13.333 0v-3.185c-3.365-.685-5.785-3.485-5.267-3.893.214-.168 2.486 1.573 5.267.493V200z" fill="none" stroke="#fff" stroke-width="2.94" transform="matrix(.68295 -.09015 .094 .65491 -34.544 -105.945)"/><path d="M24.338 11.354a1 1 0 011.122-.382c.588.185 1.087.593 1.455 1.14.467.694.717 1.618.699 2.439-.026 1.195-.626 2.13-1.58 2.376a.967.967 0 01-.234.032c-1.529.026-13.945.618-19.716 2.798a.997.997 0 01-.888-.09s-2.905-1.9-1.877-4.84c.089-.252.274-.458.513-.573.235-.111.869-.255 1.799-.371 3.068-.384 9.97-.822 14.66-1.533 1.44-.218 2.66-.457 3.47-.736a4.5 4.5 0 00.577-.26zm.884 1.801a3.53 3.53 0 01-.349.173c-.872.378-2.41.716-4.281 1-4.127.625-9.955 1.042-13.415 1.395-.906.092-1.63.16-2.073.234-.072.81.43 1.414.798 1.742 5.907-2.016 17.32-2.66 19.616-2.733a.882.882 0 00.063-.164c.07-.312.032-.693-.078-1.046a2.018 2.018 0 00-.281-.6z" fill="#fff"/><path d="M5.793 14.951s-.137-2.57.835-5.182c.931-2.503 2.928-5.049 7.192-5.214 8.694-.338 10.19 7.553 10.19 7.553a1 1 0 001.967-.365S24.229 2.148 13.74 2.556C3.214 2.966 3.796 15.06 3.796 15.06a1.001 1.001 0 001.997-.109z" fill="#fff"/><ellipse cx="44.951" cy="213.534" rx="1.186" ry=".553" fill="none" stroke="#fff" stroke-width="1.82" transform="matrix(1.11473 -.09793 .10213 1.06897 -58.862 -199.662)"/><ellipse cx="44.951" cy="213.534" rx="1.186" ry=".553" fill="none" stroke="#fff" stroke-width="1.82" transform="matrix(1.11473 -.09793 .10213 1.06897 -49.907 -200.868)"/><path d="M7.126 11.972s1.968.129 4.526.137c.58.002 1.184-.014 1.803-.042.397-.018.798-.041 1.198-.081.4-.039.797-.094 1.191-.153a44.346 44.346 0 001.78-.306c2.176-.421 3.928-.849 4.447-1.014a.318.318 0 00-.124-.623c-.533.045-2.305-.009-4.483 0-.581.002-1.183.013-1.8.037-.396.015-.796.035-1.195.069-.4.035-.798.085-1.19.139-.613.084-1.209.177-1.778.282-2.514.462-4.429.922-4.429.922a.317.317 0 00.054.633zM8.73 9.434s1.316.036 3.012.002c.386-.008.79-.024 1.201-.048.265-.015.532-.032.8-.058.265-.026.531-.06.794-.096.408-.055.808-.117 1.19-.181 1.448-.245 2.624-.493 2.97-.592a.159.159 0 10-.062-.312c-.353.04-1.54.045-2.988.085-.386.01-.789.025-1.2.047-.264.014-.53.03-.797.053a36.187 36.187 0 00-1.983.256 83.35 83.35 0 00-2.964.527.159.159 0 10.027.317z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><path d="M41.523-19.66a5.6 5.6 0 011.905-.918 5.662 5.662 0 012.197-.15L44.49-18.13c-.128.016-.257.041-.384.075l-.28.092-2.302-1.697zm-3.384-2.494a9.342 9.342 0 014.258-2.477 9.342 9.342 0 014.927.016l-1.063 2.433a6.682 6.682 0 00-3.187.075 6.682 6.682 0 00-2.798 1.528l-2.137-1.575zm-3.472-2.559a13.025 13.025 0 016.59-4.171 13.03 13.03 0 017.795.317l-1.05 2.4a10.437 10.437 0 00-6.068-.194 10.437 10.437 0 00-5.159 3.202l-2.108-1.554z" fill="#fff"/><path d="M24.878 11.56a4.44 4.44 0 00-4.439-4.44H11.56a4.44 4.44 0 00-4.439 4.44v8.879a4.44 4.44 0 004.44 4.44h8.878a4.44 4.44 0 004.44-4.44V11.56zM13.04 7.12V4.162M18.959 7.12V4.162M13.04 27.838v-2.96M18.959 27.838v-2.96M24.878 13.04h2.96M24.878 18.959h2.96M4.161 13.04h2.96M4.161 18.959h2.96" fill="none" stroke="#fff" stroke-width="2.9965410000000006"/><path d="M11.626 20.298V14.04c0-1.208.979-2.187 2.186-2.187h.001c1.208 0 2.187.98 2.187 2.187v6.196M20.437 20.298v-8.444M12.176 17.055H16" fill="none" stroke="#fff" stroke-width="2.9965410000000006"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><path d="M41.523-19.66a5.6 5.6 0 011.905-.918 5.662 5.662 0 012.197-.15L44.49-18.13c-.128.016-.257.041-.384.075l-.28.092-2.302-1.697zm-3.384-2.494a9.342 9.342 0 014.258-2.477 9.342 9.342 0 014.927.016l-1.063 2.433a6.682 6.682 0 00-3.187.075 6.682 6.682 0 00-2.798 1.528l-2.137-1.575zm-3.472-2.559a13.025 13.025 0 016.59-4.171 13.03 13.03 0 017.795.317l-1.05 2.4a10.437 10.437 0 00-6.068-.194 10.437 10.437 0 00-5.159 3.202l-2.108-1.554z" fill="#fff"/><path d="M24.878 11.56a4.44 4.44 0 00-4.439-4.44H11.56a4.44 4.44 0 00-4.439 4.44v8.879a4.44 4.44 0 004.44 4.44h8.878a4.44 4.44 0 004.44-4.44V11.56z" fill="none" stroke="#fff" stroke-width="1.9976940000000003"/><path d="M77.333 104v-2.667" fill="none" stroke="#fff" stroke-width="2.97" transform="matrix(1.10983 0 0 .89721 -72.787 -86.756)"/><path d="M77.333 104v-2.667" fill="none" stroke="#fff" stroke-width="2.97" transform="matrix(1.10983 0 0 .89721 -66.868 -86.756)"/><path d="M77.333 104v-2.667" fill="none" stroke="#fff" stroke-width="3.13" transform="matrix(1.10983 0 0 .77909 -72.787 -53.187)"/><path d="M77.333 104v-2.667" fill="none" stroke="#fff" stroke-width="3.13" transform="matrix(1.10983 0 0 .77909 -66.868 -53.187)"/><path d="M77.333 104v-2.667" fill="none" stroke="#fff" stroke-width="3" transform="matrix(0 1.10983 -.87358 0 116.362 -72.787)"/><path d="M77.333 104v-2.667" fill="none" stroke="#fff" stroke-width="3" transform="matrix(0 1.10983 -.87358 0 116.362 -66.868)"/><path d="M77.333 104v-2.667" fill="none" stroke="#fff" stroke-width="3.07" transform="matrix(0 1.10983 -.82634 0 90.1 -72.787)"/><path d="M77.333 104v-2.667" fill="none" stroke="#fff" stroke-width="3.07" transform="matrix(0 1.10983 -.82634 0 90.1 -66.868)"/><path d="M11.626 20.298V14.04c0-1.208.979-2.187 2.186-2.187h.001c1.208 0 2.187.98 2.187 2.187v6.196M20.437 20.298v-8.444M12.176 17.055H16" fill="none" stroke="#fff" stroke-width="2.9965410000000006"/><g><path d="M37.451 11.926h-2.785a1.5 1.5 0 000 3h2.785a1.5 1.5 0 000-3z" fill="#fff"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><path d="M41.523 12.34a5.6 5.6 0 011.905-.918 5.662 5.662 0 012.197-.15L44.49 13.87c-.128.016-.257.041-.384.075l-.28.092-2.302-1.697zm-3.384-2.494a9.342 9.342 0 014.258-2.477 9.342 9.342 0 014.927.016L46.26 9.818a6.682 6.682 0 00-3.187.075 6.682 6.682 0 00-2.798 1.528l-2.137-1.575zm-3.472-2.559a13.025 13.025 0 016.59-4.171 13.03 13.03 0 017.795.317l-1.05 2.4a10.437 10.437 0 00-6.068-.194 10.437 10.437 0 00-5.159 3.202l-2.108-1.554zM11.23 4.312c0-.908-.737-1.645-1.644-1.645h-3.29c-.907 0-1.644.737-1.644 1.645v6.16a2.668 2.668 0 00-2.046 2.595v13.03a2.668 2.668 0 002.667 2.667h5.337a2.668 2.668 0 002.667-2.667v-13.03c0-1.26-.874-2.316-2.047-2.595v-6.16zM9.356 17.475c0-.363.294-.656.655-.656h1.313c.361 0 .655.293.655.656v6.684a.656.656 0 01-.655.656H10.01a.656.656 0 01-.655-.656v-6.684zm.26.469c0-.19.154-.344.344-.344h.688c.19 0 .344.155.344.344v5.746c0 .19-.155.344-.344.344H9.96a.345.345 0 01-.344-.344v-5.746zm1.614-5.591c0 .907-.737 1.643-1.644 1.643h-3.29a1.645 1.645 0 01-1.644-1.643v-1.128c0 .907.737 1.645 1.645 1.645h3.289c.907 0 1.644-.738 1.644-1.645v1.128z" fill="#fff"/><path d="M82.667 87.171h3.578c1.492 0 2.701.782 2.701 1.747v.002c0 .463-.284.907-.791 1.235-.506.328-1.194.512-1.91.512h-.146" fill="none" stroke="#fff" stroke-width="1.5" transform="matrix(1.0224 0 0 -1.581 -68.817 157.545)"/><path d="M86.443 87.171h.771c.459 0 .9.18 1.225.5.325.32.507.754.507 1.206v.083c0 .453-.182.887-.507 1.207-.325.32-.766.5-1.225.5h-1.115" fill="none" stroke="#fff" stroke-width="1.21" transform="matrix(1.64283 0 0 1.66784 -120.063 -125.66)"/><path d="M82.667 87.171h5.007c.703 0 1.272.782 1.272 1.747v.002c0 .965-.569 1.747-1.272 1.747h-.162" fill="none" stroke="#fff" stroke-width="1.05" transform="matrix(2.1708 0 0 -1.581 -163.751 157.545)"/></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="5"><circle cx="72" cy="152" r="2.667" fill="none" stroke="#fff" stroke-width="2" transform="translate(-64 -126.455)"/><path d="M93.333 146.667H66.667h0c0 1.473 1.943 2.666 4.341 2.666h17.984c2.398 0 4.341-1.193 4.341-2.666 0 0 0 0 0 0z" fill="none" stroke="#fff" stroke-width="1.62" transform="matrix(.9131 0 0 1.48665 -57.048 -202.043)"/><path fill="none" stroke="#fff" stroke-width="1.78" d="M66.667 146.667h26.667v2.667H66.667z" transform="matrix(.55622 0 0 1.48665 -28.498 -209.79)"/><path fill="none" stroke="#fff" stroke-width="1.78" d="M66.667 146.667h26.667v2.667H66.667z" transform="matrix(.55622 0 0 1.48665 -28.498 -213.826)"/><circle cx="72" cy="152" r="2.667" fill="none" stroke="#fff" stroke-width="2" transform="translate(-48 -126.455)"/></svg>

Before

Width:  |  Height:  |  Size: 925 B

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M12.072 14.416V4.121a1.455 1.455 0 011.454-1.454h5.09a1.455 1.455 0 011.453 1.454v10.295l5.722 10.449a3.018 3.018 0 01-2.647 4.468H8.997a3.018 3.018 0 01-2.648-4.468l5.723-10.449zm6.027-9.779h-4.057v10.031a.99.99 0 01-.121.473l-5.844 10.67a1.048 1.048 0 00.92 1.553l14.147-.001a1.047 1.047 0 00.92-1.553c-2.207-4.027-5.844-10.669-5.844-10.669a.979.979 0 01-.12-.473V4.637zm-2.604 13.402h3.489l3.926 7.628a.556.556 0 01-.492.807H9.723a.554.554 0 01-.492-.807l3.926-7.628h1.23l-3.107 6.053a.493.493 0 00.876.45l3.339-6.503z" fill="#fff"/><path d="M59.485 10.232c0-3.183-2.446-5.767-5.46-5.767h-10.92c-3.014 0-5.461 2.584-5.461 5.767v11.536c0 3.183 2.447 5.767 5.461 5.767h10.92c3.014 0 5.46-2.584 5.46-5.767V10.232z" fill="none" stroke="#fff" stroke-width="2.97" transform="rotate(45 41.436 21.869) scale(.86333 .81734)"/></svg>

Before

Width:  |  Height:  |  Size: 1,006 B

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M10.557 8.949l4.855-5.534c.202-.229.492-.355.794-.344l3.978.157c.495.02.925.356 1.073.841l.655 2.134 1.274-.189c1.06-.158 2.09.433 2.516 1.441l.906 2.146c.05.115.093.231.13.349l.16.032c.356.07.65.33.768.682l1.077 3.182c.236.693.233 1.442 0 2.127l.509 1.875c.29 1.075-.215 2.209-1.197 2.686l-3.82 1.856-2.416 2.754a5.81 5.81 0 01-3.322 1.894l-5.172.945a3.775 3.775 0 00-1.841.905l-.047.042-1.336-1.571.046-.042a5.792 5.792 0 012.821-1.387l5.172-.944a3.796 3.796 0 002.17-1.237l.696-.795a2.75 2.75 0 01-.884-.587l-.002-.001a2.997 2.997 0 01-.805-2.797l-.386-.197a3.395 3.395 0 01-4.061.422l-3.102-1.863-.585 1.39c-.222.53-.82.773-1.335.545a1.054 1.054 0 01-.53-1.37L10 16.87l-.14-.084a1.06 1.06 0 01-.364-1.427 1.002 1.002 0 011.39-.373l5.008 3.008a1.404 1.404 0 001.764-.262c.523-.57.537-1.453.033-2.04l-2.746-3.203a3.239 3.239 0 00-2.01-1.106l-3.205-.447a1.376 1.376 0 00-1.41.741l-2.124 4.096a2.01 2.01 0 00-.226.927v4.831a4.13 4.13 0 01-.825 2.481l-.643.854a.999.999 0 01-1.425.188 1.061 1.061 0 01-.183-1.462l.643-.854c.26-.346.401-.77.401-1.207v-4.83c0-.666.16-1.32.465-1.908.5-.967 1.446-2.79 2.123-4.096.673-1.295 2.06-2.024 3.478-1.826l.553.077zm16.58 8.881a3.049 3.049 0 01-.589.223l-4.886 1.3-.262.43a.88.88 0 00.13 1.08v.002a.713.713 0 00.815.136l4.84-2.352a.21.21 0 00.11-.243l-.157-.576zm-7.154-.248l.084.042 5.971-1.59a1.14 1.14 0 00.715-.576c.149-.285.174-.622.07-.928l-.456-1.353a3.818 3.818 0 01-1.488 1.429l-4.82 2.575a3.824 3.824 0 01-.076.401zm-.29-2.556l4.247-2.27c.821-.439 1.173-1.455.804-2.327l-.906-2.145a.337.337 0 00-.36-.206l-.949.14.277.902a2.485 2.485 0 01-.856 2.701l-2.708 2.061a.939.939 0 01-.272.145l.247.289c.19.22.349.46.476.71zm-6.7-5.738l.216.03a5.258 5.258 0 013.262 1.795l.842.983.956-.07 2.471-1.88a.368.368 0 00.127-.4l-1.366-4.458-2.898-.115-3.61 4.115z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M-17.016-24.02s.147 3.67.147 7.342c0 3.673-.147 7.343-.147 7.343a1 1 0 002 0s-.146-3.67-.146-7.343c0-3.672.146-7.342.146-7.342a1 1 0 00-2 0zM22.438 27.319l-10.83-12.855a6.123 6.123 0 01-8.753-6.441l.01-.058a1.19 1.19 0 01.179-.465.12.12 0 01.095-.056.126.126 0 01.071.017l4.045 4.044c.273.274.671.38 1.044.28l2.091-.56c.373-.1.665-.392.765-.765l.56-2.091c.1-.373-.006-.772-.279-1.045L7.389 3.277a.114.114 0 01-.015-.067.124.124 0 01.056-.097c.171-.113.332-.155.465-.179l.058-.01a6.123 6.123 0 016.441 8.755l12.854 10.83a3.488 3.488 0 01.601 5.412 3.487 3.487 0 01-5.41-.602zm1.497-3.312a2.05 2.05 0 112.899 2.898 2.05 2.05 0 01-2.9-2.898zm-1.419.155s-9.185-10.578-9.411-10.387a.535.535 0 00-.067.752l8.659 10.322a.534.534 0 10.82-.687zM3.296 8.698c.047-.14.661 1.08.877 1.633.432 1.108 1.281 2.506 2.785 3.17 1.004.441 2.296.55 3.942.043a.267.267 0 11.157.51c-1.802.556-3.216.42-4.314-.065-1.65-.728-2.595-2.248-3.07-3.464-.236-.61-.355-1.14-.39-1.454a.993.993 0 01.013-.373zM50.865 3.288a.517.517 0 00-.916-.401L39.305 16.396a.515.515 0 00.377.834l7.479.406a.516.516 0 01.465.665c-.55 1.813-2.16 7.12-3.136 10.343a.515.515 0 00.898.47l11.347-14.243a.514.514 0 00-.395-.838c-1.746-.03-5.197-.093-6.58-.118a.515.515 0 01-.5-.598c.282-1.769 1.137-7.109 1.605-10.03z" fill="#fff"/><path d="M52.561 5.261c4.175 1.776 7.106 5.918 7.106 10.739 0 6.163-4.79 11.217-10.848 11.635l1.841-2.348c4.045-1.15 7.007-4.875 7.007-9.287a9.643 9.643 0 00-5.435-8.68l.329-2.059zm-6.109-.822l-2.045 2.593A9.658 9.658 0 0038.333 16a9.644 9.644 0 005.33 8.629l-.59 1.945c-3.98-1.856-6.74-5.895-6.74-10.574 0-5.914 4.411-10.807 10.119-11.561zm.026 21.096l.431.066-.728.914.297-.98zm2.869-19.097l-.359-.055-.501-.025 1.096-1.39-.236 1.47zM53.552-3.945l-1.555 1.572a.887.887 0 01-1.264 0L37.182-16.068l-.42.425a.887.887 0 01-1.264 0l-1.075-1.086a.91.91 0 010-1.278L46.04-29.746a.887.887 0 011.264 0l1.074 1.086a.91.91 0 010 1.277l-.42.425 13.551 13.695a.91.91 0 010 1.277l-1.88 1.901-1.571-1.587a.356.356 0 00-.124-.094l1.22-1.233c.206-.208.786-.049.58-.258a.523.523 0 00-.747 0l-8.093 8.18a.538.538 0 00-.001.755c.207.208-.038-.29.168-.497l.826-.835c.014.033.045.07.095.122l1.571 1.587zm-16.854-12.72l10.703-10.817c.262-.264.385-.568.276-.679-.109-.11-.262.165-.523.43L36.45-16.915c-.26.264-.533.419-.424.529.109.11.41-.016.671-.28zM50.272-5.394l8.247-8.335L46.693-25.68l-8.247 8.335L50.272-5.394zm-8.266-17.934l2.495-2.52a.537.537 0 000-.754.523.523 0 00-.747 0l-2.494 2.52a.537.537 0 000 .754c.207.209.54.209.746 0zM55.784-9.594l1.43-1.446c.015.034.046.071.096.122l1.57 1.587-1.402 1.418-1.57-1.587a.356.356 0 00-.124-.094zm-3.18 3.214l2.462-2.487c.013.033.044.07.095.122l1.57 1.587L54.3-4.7l-1.57-1.587a.353.353 0 00-.124-.093zM37.986-19.264l2.494-2.52a.538.538 0 000-.754.524.524 0 00-.747 0l-2.493 2.52a.538.538 0 000 .755c.206.208.54.208.746 0z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="5"><path fill="none" stroke="#fff" stroke-width="1.54" d="M37.333 133.333H56V152H37.333z" transform="matrix(1.29531 0 0 1.30772 -44.448 -170.568)"/><path fill="none" stroke="#fff" stroke-width="2.48" d="M37.333 133.333H56V152H37.333z" transform="matrix(.801 0 0 .80867 -21.38 -99.37)"/><path d="M3.91 28.205l4.658-4.657M23.431 8.684l4.658-4.657M3.911 4.026l4.657 4.658M23.432 23.547l4.657 4.658" fill="none" stroke="#fff" stroke-width="2"/><path d="M12.906 8.683L23.43 19.21M8.569 13.02l10.524 10.527" fill="none" stroke="#fff" stroke-width="1.9887032"/><path d="M8.569 18.666h5.262" fill="none" stroke="#fff" stroke-width="1.997475"/><path d="M17.64 13.02l5.814.002" fill="none" stroke="#fff" stroke-width="2.0037063"/></svg>

Before

Width:  |  Height:  |  Size: 892 B

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M-5.412-18.966a1 1 0 00-1.225-.707l-17.423 4.668c-.534.144-.85.692-.708 1.225l2.784 10.39a1 1 0 001.225.707l17.423-4.669a1 1 0 00.707-1.225l-2.783-10.39zm-13.131 13.05l3.29-.88c.496-.134.8-.606.68-1.055-.12-.449-.62-.705-1.117-.573l-3.29.882c-.496.133-.801.605-.68 1.054.12.449.62.705 1.117.573zm-1.142-2.915l3.29-.881c.496-.134.8-.606.68-1.055-.12-.449-.62-.705-1.117-.572l-3.29.881c-.496.134-.801.605-.68 1.054.12.449.62.706 1.117.573zm8.76-6.528a3.366 3.366 0 00-2.38 4.12A3.367 3.367 0 00-9.182-8.86a3.367 3.367 0 002.378-4.12 3.366 3.366 0 00-4.12-2.378zm-9.817 3.57l3.29-.882c.496-.132.8-.606.68-1.054-.12-.45-.62-.705-1.116-.573l-3.29.882c-.496.133-.802.605-.68 1.054.119.45.62.706 1.116.572zm10.27-1.878a1.614 1.614 0 01.835 3.116 1.614 1.614 0 01-.835-3.116zM8.687 22.754c-.976-1.686-1.628-3.477-1.628-5.085 0-.61.06-1.178.177-1.704a6.709 6.709 0 01-5.489-6.594c0-3.7 3.004-6.704 6.705-6.704a6.707 6.707 0 016.584 7.969 15.883 15.883 0 011.927 0 6.707 6.707 0 016.585-7.969c3.7 0 6.704 3.003 6.704 6.704a6.709 6.709 0 01-5.49 6.594c.117.526.178 1.094.178 1.704 0 1.61-.654 3.405-1.632 5.093l.69-.076c1.827-.19 3.445-.286 3.445-.286a.72.72 0 11.154 1.43s-1.6.25-3.428.455c-.66.074-1.348.142-1.999.203-.102.139-.207.276-.312.41a89.736 89.736 0 015.64 1.426.719.719 0 11-.336 1.4s-1.591-.304-3.38-.727a133.94 133.94 0 01-3.06-.768c-1.691 1.808-3.519 3.049-4.723 3.049-1.201 0-3.024-1.236-4.71-3.036-.898.236-1.985.513-3.007.755-1.79.423-3.381.727-3.381.727a.72.72 0 01-.336-1.4s1.555-.453 3.34-.89a112.56 112.56 0 012.245-.523c-.11-.14-.219-.284-.326-.43-.63-.058-1.294-.126-1.93-.196-1.827-.204-3.428-.454-3.428-.454a.72.72 0 11.154-1.43s1.618.096 3.446.285l.62.068zm7.312.361c.767 0 1.388.33 1.388 1.096 0 .767-.955 1.802-1.388 1.802-.433 0-1.387-1.035-1.387-1.802 0-.765.621-1.096 1.387-1.096zm-3.693-6.798a2.008 2.008 0 010 4.015 2.008 2.008 0 010-4.015zm7.387 0a2.008 2.008 0 110 4.015 2.008 2.008 0 010-4.015zm-6.096-5.525a5.342 5.342 0 00-5.146-6.76A5.342 5.342 0 003.113 9.37a5.342 5.342 0 004.567 5.283c1.02-2.183 3.212-3.423 5.918-3.862zm10.723 3.862a5.342 5.342 0 004.567-5.283 5.342 5.342 0 00-5.34-5.34 5.342 5.342 0 00-5.146 6.76c2.708.44 4.898 1.68 5.919 3.863zM7.281 13.61a4.331 4.331 0 01-3.158-4.166 4.33 4.33 0 014.329-4.327 4.33 4.33 0 014.272 5.016c-2.384.512-4.338 1.64-5.443 3.477zm11.994-3.477a4.33 4.33 0 014.273-5.017 4.33 4.33 0 014.327 4.328 4.331 4.331 0 01-3.157 4.166c-1.106-1.837-3.059-2.965-5.443-3.477zM-15.69 40.852c3.02-1.958 7.309-4.454 9.655-5.444.934-.394 1.653-.536 2-.495a1.22 1.22 0 011.112 1.197c.012.324-.156 1.01-.548 1.91-1.01 2.323-3.455 6.597-5.382 9.621l.046 4.527c.002.213-.061.423-.18.6l-3.329 4.923a1.052 1.052 0 01-1.91-.763l.79-4.75c-.319.08-.646.129-.976.147-1.565-2.35-3.54-4.314-5.914-5.907.018-.332.067-.661.148-.981l-4.75.79a1.053 1.053 0 01-.763-1.912l4.923-3.328c.177-.119.386-.182.6-.18l4.479.045zm2.29 8.66l-4.014-4.016c-.295-.294-1.146-.407-1.065 0 .015.075.028.298.234.388 1.407.609 3.902 3.387 4.483 4.477.112.21.318.225.362.215.404-.098.294-.77 0-1.065zm5.527-9.639a2.437 2.437 0 01-3.446 3.445 2.437 2.437 0 013.446-3.445zm-.747.747a1.38 1.38 0 11-1.953 1.95 1.38 1.38 0 011.953-1.95zM23.471 48c-1.738 7.984-7.222 9.968-7.472 9.968v-9.063a.904.904 0 01.904-.904h6.568zM16 38.834v8.264a.904.904 0 01-.904.904H8.553c-.341-1.543-.545-3.31-.553-5.333 2.052 0 3.975-.653 8-3.835z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M16.011 2.557c-7.354 0-13.326 5.956-13.326 13.292 0 7.336 5.972 13.292 13.326 13.292 7.355 0 13.326-5.956 13.326-13.292 0-7.336-5.97-13.292-13.326-13.292zm0 1.55c6.497 0 11.771 5.261 11.771 11.742 0 6.48-5.274 11.74-11.77 11.74-6.497 0-11.771-5.26-11.771-11.74S9.515 4.108 16.01 4.108z" fill="#fff"/><path d="M5.54 18.463l2.462.686c.08.192.166.381.26.566l-.454-.035-.694 1.094 1.461-.487.036.06.046.073-.039-.002-.694 1.093 1.21-.402c.073.093.146.185.222.275l-.342 1.347.956-.687.064.062.11.101-.32 1.26.988-.707.02.015.152.109.162 2.566c-.29-.144-.57-.3-.843-.47l.567-1.163-1.358.625c-.3-.225-.589-.466-.862-.72l-.087-.148.208-1.502-.919.828-.163-.193-.107-.132.872-.672-1.398-.04a10.702 10.702 0 01-.54-.892l-.022-.31.853-1.254-1.38.387a10.524 10.524 0 01-.427-1.331zm18.116 4.841c-.325.336-.67.649-1.034.938l-.465-.572-.003.924c-.469.332-.964.627-1.48.88l-.983-.631.29.942c-.125.051-.251.1-.378.146l-.199-.872-.557 1.116c-.362.103-.73.187-1.105.25l-.288-.108-.78-1.301-.251 1.552c-.372.017-.748.014-1.124-.008l1.427-2.142c.29-.026.577-.068.862-.123l-.082.143.706 1.087.157-1.422.167-.05.005-.003.682 1.049.15-1.362.126-.056.023-.01h.086l1.18.951-.267-1.377h.098l1.18.952-.28-1.44 2.137.547zm-2.494-.619l.018-.014.029.007-.047.007zM10.168 6.889l.1 2.388-1.117-.425.622 1.08c-.072.075-.144.15-.215.228l-.97-.37.523.908c-.114.148-.222.3-.327.457l-1.178-.057.78.721c-.05.09-.097.182-.143.275l-1.2-.057.872.806-.074.201-.03.092-2.434.963c.054-.327.126-.65.213-.975l.06-.215.114.286 1.289.139-1.155-1.172c.091-.245.19-.484.298-.72l.3-.361 1.483-.315-1.098-.587.142-.22.092-.132.916.584-.413-1.255c.291-.357.603-.692.934-1.007l1.45.37-.718-1.002c.284-.224.579-.434.884-.628zm15.282 4.084c.172.33.326.669.463 1.016l-.93.41 1.19.33c.145.461.258.934.339 1.414l-1.054.944 1.165-.036c.01.139.018.278.025.418l-1.058-.048 1.055.946c-.014.292-.038.586-.076.879l-.285.389-1.461.406 1.446.662.016-.032c-.086.319-.186.63-.3.935L24.36 17.56l.02-.095.023-.134.335.325 1.235-.398-1.483-.577.007-.072.008-.116.082.08 1.235-.399-1.298-.504-.004-.12v-.045l.019-.073 1.227-.891-1.363-.095-.017-.092.002-.005 1.227-.892-1.475-.103-.016-.053-.052-.156 1.379-2.171zm-6.81-5.425l.073.019c.126.033.252.07.377.11l-.033.003-.466 1.209 1.498-.852.167.07.102.047.554.778-.062 1.219-.573.212.115-1.107-.86.856-.134-.061-.166-.07.105-1.024-.781.777c-.13-.04-.26-.08-.394-.116l-.073-.018-.273-1.25-.57 1.076-.157-.023-.033-.004-.294-1.349-.676 1.277h-.032l-1.668-2.012c.341-.05.686-.084 1.033-.1l-.006.004.12 1.29.874-1.297c.256.011.512.031.77.062l.454.243.601 1.391.409-1.36zm2.63 1.07c.465.265.904.563 1.316.889l-1.338.496.672-.72-.65-.665zm-5.336 7.638c-.946 0-1.714.766-1.714 1.71 0 .943.768 1.708 1.714 1.708s1.714-.765 1.714-1.709c0-.943-.768-1.709-1.714-1.709zm0 2.068a.36.36 0 110-.718.36.36 0 010 .718zm-11.171.896l20.24-7.812c.4-.153.6-.603.444-1.002a.78.78 0 00-1.006-.444L4.202 15.775a.774.774 0 00-.444 1.002c.154.4.605.598 1.005.444z" fill="#fff"/><path d="M13.933 27.04L12.479 4.89a.776.776 0 00-.827-.723.776.776 0 00-.725.824l1.454 22.151a.776.776 0 001.552-.102z" fill="#fff"/><path d="M26.538 21.914L12.306 4.452a.78.78 0 00-1.094-.113.773.773 0 00-.113 1.09l14.233 17.463c.27.332.76.383 1.093.112a.773.773 0 00.113-1.09z" fill="#fff"/><path d="M4.28 17.384l21.453 5.768a.774.774 0 10.404-1.497L4.685 15.887a.776.776 0 10-.404 1.497z" fill="#fff"/><path d="M13.81 27.51L25.96 8.668a.773.773 0 00-.233-1.07.778.778 0 00-1.074.232l-12.15 18.843a.775.775 0 00.233 1.071.779.779 0 001.074-.232z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 4.9 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M15.789 8.175c5.448-2.716 5.88-3.96 5.876-4.41l-.005-.047.002.022v-.019c-.034-.517.399-.978 1-1.046.63-.071 1.21.316 1.291.863 0 0 .662 2.228-5.931 5.803 5.476 3.073 5.947 5.724 5.947 6.534l.013.046s.66 3.078-5.901 6.77c6.53 3.557 5.872 5.771 5.872 5.771-.082.547-.661.934-1.291.863-.63-.071-1.076-.573-1.002-1.043 0 0 .003-.016.005-.047.004-.448-.424-1.686-5.823-4.383-5.4 2.697-5.829 3.935-5.823 4.383l.004.047-.003-.022.003.019c.033.517-.4.978-1.002 1.046-.63.071-1.208-.316-1.29-.863 0 0-.764-2.569 7.512-6.618 5.619-2.734 6.376-4.939 6.444-5.587a.653.653 0 01-.027-.308s.003-.016.005-.047c.004-.465-.458-2.78-6.45-5.696l.005-.009C7.228 6.225 7.974 3.712 7.974 3.712c.082-.547.66-.934 1.29-.863.63.071 1.076.573 1.003 1.043 0 0-.004.016-.005.047-.004.44.408 1.64 5.527 4.236zm-3.42 1.942l.163.082-.005.007c.738.359 1.392.709 1.97 1.047-3.98 2.324-4.453 4.108-4.476 4.599a.607.607 0 01.002.199s-.004.016-.004.047c-.004.41.354 2.259 4.551 4.689-.551.327-1.173.664-1.874 1.007h-.04l-.24.12C7.832 18.986 7.68 16.572 7.718 16c-.038-.57.113-2.969 4.652-5.883z" fill="#fff"/><path d="M83.785 48H76.31" fill="none" stroke="#fff" stroke-width="2.32" transform="matrix(.70074 0 0 1 -40.045 -32)"/><path d="M78.869 37.333h2.468" fill="none" stroke="#fff" stroke-width="2.46" transform="matrix(.56923 0 0 1 -29.597 -32)"/><path d="M78.869 37.333h2.468" fill="none" stroke="#fff" stroke-width="1.84" transform="matrix(.56923 0 0 1 -29.597 -18.667)"/><path d="M78.869 37.333h2.468" fill="none" stroke="#fff" stroke-width="2.46" transform="matrix(.56923 0 0 1 -29.597 -10.667)"/><path d="M78.869 37.333h2.468" fill="none" stroke="#fff" stroke-width="1.84" transform="matrix(.56923 0 0 1 -29.597 -24)"/><path d="M43.793 18.242l1.761.958c.061.034.106.09.125.158a.262.262 0 01-.026.2c-.663 1.191-.12 2.684.122 2.944-1.347 2.65-5.186 6.26-9.254 6.6a.275.275 0 01-.256-.407c.87-1.58 5.41-9.839 6.076-11.05a.171.171 0 01.23-.068l.49.267-5.485 10.086s1.25-.56 1.383-.802l4.834-8.886zm1.502-2.76l2.808 1.528a.577.577 0 01.23.78l-.718 1.323a.577.577 0 01-.78.23l-2.81-1.528 1.27-2.334zm6.464-11.884l3.331.05a.574.574 0 01.497.851c-1.237 2.264-4.67 8.549-6.423 11.768a.575.575 0 01-.781.23l-2.81-1.528L51.76 3.598zm-8.465 13.82l-.134-.073a.579.579 0 01-.23-.78l.72-1.324a.576.576 0 01.78-.23l.134.072-1.27 2.335zm1.549-2.847l-.132-.07a.577.577 0 01-.23-.783l5.407-9.842a.578.578 0 01.514-.299l.417.006-5.976 10.988zM41.523 44.34a5.6 5.6 0 011.905-.918 5.662 5.662 0 012.197-.15L44.49 45.87c-.128.016-.257.041-.384.075l-.28.092-2.302-1.697zm-3.384-2.494a9.342 9.342 0 014.258-2.477 9.342 9.342 0 014.927.016l-1.063 2.433a6.682 6.682 0 00-3.187.075 6.682 6.682 0 00-2.798 1.528l-2.137-1.575zm-3.472-2.559a13.025 13.025 0 016.59-4.171 13.03 13.03 0 017.795.317l-1.05 2.4a10.437 10.437 0 00-6.068-.194 10.437 10.437 0 00-5.159 3.202l-2.108-1.554z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 3 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M-17.016 7.98s.147 3.67.147 7.342c0 3.673-.147 7.343-.147 7.343a1 1 0 002 0s-.146-3.67-.146-7.343c0-3.672.146-7.342.146-7.342a1 1 0 00-2 0zM9.21 12.766C7.28 9.61 5.68 7.308 5.68 7.308a3.191 3.191 0 011.413-4.296 3.22 3.22 0 014.317 1.406s1.016 2.914 2.556 6.575c.157.37.317.75.484 1.133a33.246 33.246 0 011.55-.033c6.967 0 12.612 1.916 12.625 4.277a6.011 6.011 0 01-.26 1.817c-.683 4.793-4.75 11.209-12.296 11.146-8.288-.068-12.535-7.249-12.687-12.669l-.008-.268a.651.651 0 01.014-.2c.187-1.441 2.46-2.699 5.82-3.43zm.797 1.317c-2.274.594-3.728 1.509-3.619 2.513.263 2.416 4.93 4.359 9.612 4.448 3.725.071 9.847-1.691 9.768-4.448-.051-1.775-4.342-3.22-9.69-3.22-.36 0-.717.007-1.067.02.28.621.578 1.246.893 1.864.21.41.429.814.65 1.213 2.3-.552 7.13-.38 7.632-.2.246.088.74.253-.544 1.214-3.022 2.263-10.43 2.522-13.88.701-1.38-.728-2.633-1.62-2.138-2.188 0 0 1.844.405 3.852.661a60.246 60.246 0 00-1.47-2.578zM7.119 6.979s2.906 4.127 5.963 10.138c.164.324 1.398.566 1.243.25-3.279-6.642-6.557-11.294-6.557-11.294a.645.645 0 00-.895-.156c-.29.202.042.774.246 1.062zM52.561 37.261c4.175 1.776 7.106 5.918 7.106 10.739 0 6.163-4.79 11.217-10.848 11.635l1.841-2.348c4.045-1.15 7.007-4.875 7.007-9.287a9.643 9.643 0 00-5.435-8.68l.329-2.059zm-6.109-.822l-2.045 2.593A9.658 9.658 0 0038.333 48a9.644 9.644 0 005.33 8.629l-.59 1.945c-3.98-1.856-6.74-5.895-6.74-10.574 0-5.914 4.411-10.807 10.119-11.561zm.026 21.096l.431.066-.728.914.297-.98zm2.869-19.097l-.359-.055-.501-.025 1.096-1.39-.236 1.47zM53.552 28.055l-1.555 1.572a.887.887 0 01-1.264 0L37.182 15.932l-.42.425a.887.887 0 01-1.264 0l-1.075-1.086a.91.91 0 010-1.278L46.04 2.254a.887.887 0 011.264 0l1.074 1.086a.91.91 0 010 1.277l-.42.425 13.551 13.695a.91.91 0 010 1.277l-1.88 1.901-1.571-1.587a.356.356 0 00-.124-.094l1.22-1.233c.206-.208.786-.049.58-.258a.523.523 0 00-.747 0l-8.093 8.18a.538.538 0 00-.001.755c.207.208-.038-.29.168-.497l.826-.835c.014.033.045.07.095.122l1.571 1.587zm-16.854-12.72L47.401 4.518c.262-.264.385-.568.276-.679-.109-.11-.262.165-.523.43L36.45 15.085c-.26.264-.533.419-.424.529.109.11.41-.016.671-.28zm13.574 11.271l8.247-8.335L46.693 6.32l-8.247 8.335 11.826 11.952zM42.006 8.672l2.495-2.52a.537.537 0 000-.754.523.523 0 00-.747 0l-2.494 2.52a.537.537 0 000 .754c.207.209.54.209.746 0zm13.778 13.734l1.43-1.446c.015.034.046.071.096.122l1.57 1.587-1.402 1.418-1.57-1.587a.356.356 0 00-.124-.094zm-3.18 3.214l2.462-2.487c.013.033.044.07.095.122l1.57 1.587L54.3 27.3l-1.57-1.587a.353.353 0 00-.124-.093zM37.986 12.736l2.494-2.52a.538.538 0 000-.754.524.524 0 00-.747 0l-2.493 2.52a.538.538 0 000 .755c.206.208.54.208.746 0z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M59.485 10.232c0-3.183-2.446-5.767-5.46-5.767h-10.92c-3.014 0-5.461 2.584-5.461 5.767v11.536c0 3.183 2.447 5.767 5.461 5.767h10.92c3.014 0 5.46-2.584 5.46-5.767V10.232z" fill="none" stroke="#fff" stroke-width="2.97" transform="rotate(45 9.436 -55.386) scale(.86333 .81734)"/><path d="M19.08 4.98l.722-1.249a1.86 1.86 0 012.54-.68l2.586 1.493a1.86 1.86 0 01.682 2.54l-.72 1.25a3.878 3.878 0 01.944 4.97L17.7 27.396a3.877 3.877 0 01-5.294 1.418L7.584 26.03a3.877 3.877 0 01-1.419-5.293l8.136-14.091a3.878 3.878 0 014.78-1.666zm-6.746 9.438l-4.278 7.41a1.693 1.693 0 00.619 2.312l.507.293c.022-.272.103-.543.248-.794l4.69-8.126-1.346-.777a2.667 2.667 0 01-.44-.318zm3.587 11.693l.894-1.549-2.707-1.563a.894.894 0 00-.894 1.55l2.707 1.562zm5.089-13.062l-5.943-3.43-1.553 2.69 5.942 3.43 1.554-2.69zm-1.65.06l-3.512-2.027c-.428-.247-.704-.18-.95.246-.247.429-.171.648.257.895l3.512 2.027c.427.247.716.213.963-.215.247-.427.157-.679-.27-.926zm-.028-5.513l-.829-.479a1.692 1.692 0 00-2.178.424c.163.053.324.126.479.216l1.346.777.031-.054a1.897 1.897 0 011.151-.884zm2.198-2.494l-.446.773 2.029 1.17.445-.772-2.028-1.17zM43.793 50.242l1.761.958c.061.034.106.09.125.158a.262.262 0 01-.026.2c-.663 1.191-.12 2.684.122 2.944-1.347 2.65-5.186 6.26-9.254 6.6a.275.275 0 01-.256-.407c.87-1.58 5.41-9.839 6.076-11.05a.171.171 0 01.23-.068l.49.267-5.485 10.086s1.25-.56 1.383-.802l4.834-8.886zm1.502-2.76l2.808 1.528a.577.577 0 01.23.78l-.718 1.323a.577.577 0 01-.78.23l-2.81-1.528 1.27-2.334zm6.464-11.884l3.331.05a.574.574 0 01.497.851c-1.237 2.264-4.67 8.549-6.423 11.768a.575.575 0 01-.781.23l-2.81-1.528 6.186-11.371zm-8.465 13.82l-.134-.073a.579.579 0 01-.23-.78l.72-1.324a.576.576 0 01.78-.23l.134.072-1.27 2.335zm1.549-2.847l-.132-.07a.577.577 0 01-.23-.783l5.407-9.842a.578.578 0 01.514-.299l.417.006-5.976 10.988z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M7.685 20.416a1.482 1.482 0 112 0v1.955h1.648v.502c0 .519.075 1.022.215 1.498h-1.437a3.665 3.665 0 001.953 1.715c.524.978 1.308 1.764 2.248 2.237h-.96a5.667 5.667 0 01-5.667-5.666v-2.241zm6.411 1.919a1.97 1.97 0 001.589-1.931V7.644a1.967 1.967 0 00-1.967-1.967H7.782a1.967 1.967 0 00-1.967 1.967v12.76c0 .778.452 1.451 1.108 1.77v.699c0 .499.069.983.199 1.443a3.969 3.969 0 01-3.307-3.912V7.644a3.968 3.968 0 013.967-3.967h5.936a3.968 3.968 0 013.967 3.967v12.76a3.97 3.97 0 01-3.201 3.893 3.655 3.655 0 003.073 2.016 3.66 3.66 0 003.462-3.656V19.76a1.127 1.127 0 01-.756-1.065v-3.323c0-.517.348-.953.822-1.086v-3.283c0-.395.321-.717.717-.717h.433c.396 0 .717.322.717.717v3.283c.475.133.823.569.823 1.086v3.323c0 .493-.316.912-.756 1.065v2.897a5.582 5.582 0 01-1.359 3.666h.103a3.666 3.666 0 003.666-3.666V19.76a1.127 1.127 0 01-.756-1.065v-3.323c0-.517.348-.953.823-1.086v-3.283c0-.395.321-.717.717-.717h.433c.396 0 .717.322.717.717v3.283c.474.133.822.569.822 1.086v3.323c0 .493-.316.912-.756 1.065v2.897a5.666 5.666 0 01-5.666 5.666h-4a5.667 5.667 0 01-5.667-5.666v-2.241a1.482 1.482 0 112 0v1.919zm-1-2.493a.518.518 0 110-1.037.518.518 0 010 1.037zm-4.411 0a.518.518 0 110-1.037.518.518 0 010 1.037zm14.09-4.47v3.323a.128.128 0 01-.128.128h-1.256a.128.128 0 01-.128-.128v-3.323c0-.071.057-.128.128-.128h1.256c.07 0 .128.057.128.128zm4.41 0v3.323a.128.128 0 01-.128.128h-1.256a.128.128 0 01-.128-.128v-3.323c0-.071.058-.128.128-.128h1.256c.071 0 .128.057.128.128zm-18.034.477a.75.75 0 00-.75-.75h-.302a.75.75 0 00-.75.75v.302c0 .414.336.75.75.75h.302a.75.75 0 00.75-.75v-.302zm2.667 0a.751.751 0 00-.751-.75h-.301a.75.75 0 00-.75.75v.302c0 .414.336.75.75.75h.301a.751.751 0 00.751-.75v-.302zm2.666 0a.75.75 0 00-.75-.75h-.301a.751.751 0 00-.751.75v.302c0 .414.337.75.751.75h.301a.75.75 0 00.75-.75v-.302zm.058-6.558a2.377 2.377 0 00-2.377-2.376H9.413a2.377 2.377 0 00-2.376 2.376v2.752a2.378 2.378 0 002.376 2.376h2.752a2.378 2.378 0 002.377-2.376V9.291zm-1.446-.052a.83.83 0 00-.83-.83H9.294a.83.83 0 00-.83.83v2.855c0 .458.372.83.83.83h2.972a.83.83 0 00.83-.83V9.239zM42.001 3.873a1.56 1.56 0 00-1.494.863l-4.71 9.968c-.2.405-.185.883.04 1.274 0 0 1.587 2.605 3.11 5.25 1.522 2.644 2.979 5.325 2.979 5.325.228.395.639.649 1.094.678l10.99.869a1.538 1.538 0 001.473-.85l4.738-9.956a1.353 1.353 0 00-.04-1.28s-1.598-2.6-3.127-5.24c-1.53-2.641-2.99-5.32-2.99-5.32a1.34 1.34 0 00-1.075-.667l-10.988-.914zm10.13 3.557l-9.302-.4-4.297 8.256c.527.955 1.563 2.818 2.63 4.662a277.167 277.167 0 002.73 4.597l9.302.44 4.277-8.277a264.188 264.188 0 00-2.614-4.667 255.043 255.043 0 00-2.726-4.611zm-4.203 9.474l-.006-.118c0-.76.618-1.377 1.377-1.377h2.657a1.377 1.377 0 010 2.755h-1.28v1.32h1.28a1.378 1.378 0 010 2.754H49.3l-.141-.008-.137-.02-.133-.034-.02-.008a1.375 1.375 0 01-.947-1.308v-3.837l.006-.12zm-4.102-3.75h-.542a1.378 1.378 0 010-2.753h3.838a1.378 1.378 0 010 2.754h-.542v2.963a1.378 1.378 0 01-2.754 0v-2.963z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 3 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><path d="M14.652-12.822c.341.353.82.572 1.348.572.528 0 1.006-.22 1.347-.572l.75.433a5.337 5.337 0 002.185 6.835 5.338 5.338 0 006.443-.852l.8.46a7.202 7.202 0 01-9.029 1.51A7.153 7.153 0 0116-6.841a7.164 7.164 0 01-2.497 2.407 7.202 7.202 0 01-9.029-1.51.46.46 0 01.8-.461h0a5.338 5.338 0 006.443.852 5.337 5.337 0 002.185-6.835l.75-.433zm12.073 6.416a.46.46 0 01.8.461l-.8-.461zM16.58-17.144a5.337 5.337 0 004.797-5.307 5.338 5.338 0 00-3.959-5.154v-.923a7.2 7.2 0 015.821 7.064 7.147 7.147 0 01-.968 3.604 7.168 7.168 0 013.422.962A7.203 7.203 0 0128.9-8.324a.461.461 0 01-.63.166.46.46 0 01-.17-.628h0a5.339 5.339 0 00-2.484-6.006 5.337 5.337 0 00-6.925 1.408l-.834-.482a1.877 1.877 0 00-1.277-2.042v-1.236zM3.9-8.786a.46.46 0 01-.17.628.46.46 0 01-.629-.166l.8-.462zm9.41-4.598a5.337 5.337 0 00-6.926-1.408A5.339 5.339 0 003.9-8.786l-.799.462a7.202 7.202 0 013.206-8.574 7.157 7.157 0 013.508-.963 7.2 7.2 0 014.854-10.667.46.46 0 010 .923h0a5.338 5.338 0 00-3.959 5.154 5.336 5.336 0 004.71 5.297v1.246a1.877 1.877 0 00-1.277 2.042l-.834.482zm4.107-14.221a.46.46 0 010-.923v.923z" fill="#fff" stroke="#fff" stroke-width=".5"/><path d="M-10.245 18.308l7.278 6.013c.237.197.347.51.283.812 0 0-.38 1.737-1.127 2.752-.43.584-.982.942-1.586.962-.413.014-.877-.118-1.372-.535-1.193-1.009-3.883-3.812-5.647-5.679l-.523.618s-13.19-9.37-14.382-11.834c-2.842-5.876.655-8.752.655-8.752l16.42 15.643zM-25.835 5.33c-.005-.004-.003-.004-.008.003l.01.01c.022.139-.002 1.22 1.448 3.026 2.07 2.576 6.595 6.533 12.623 10.297L-25.833 5.343l-.002-.013zm7.978 16.176c-2.219 2.134-3.937 3.778-4.075 3.893-2.128 1.778-3.12 2.6-4.956 1.428-2.293-1.465-1.834-5.083.125-6.971l.219-.213-.012.45a40.478 40.478 0 00-.072 2.62c0 .515.343.917.768.905.428-.01.781-.433.795-.947l.07-2.563c.047-.725.116-1.45.22-2.171l1.029-.992 1.223.984c-.01.376-.013.754-.013 1.13.002.513.344.915.77.903.392-.01.722-.367.783-.825l.818.629c.298.228.597.456.897.683l1.411 1.057zm5.676-15.72l.008-.009c1.959-1.888 5.137-1.884 6.97.125 1.26 1.38.201 2.982-2.067 5.346-.356.373-1.961 1.935-3.987 3.895l-5.152-4.909.07-.438 2.242-2.162-.037 1.367a40.478 40.478 0 00-.072 2.62c0 .514.343.917.769.905.426-.012.78-.435.793-.949l.072-2.561a26.07 26.07 0 01.391-3.23zm.838 15.575c1.724 1.831 4.446 4.675 5.641 5.685.095.08.168.144.247.145.095.002.152-.094.223-.174.122-.142.229-.315.324-.498a6.96 6.96 0 00.484-1.254l-6.019-4.973-.9 1.069zM12.144 26.448l-1.161-3.809a.987.987 0 01-.044-.291c0-1.565 1.337-2.877 3.031-2.877h4.06c1.694 0 3.031 1.312 3.031 2.877a.987.987 0 01-.044.291l-1.161 3.809c-.09 1.491-1.392 2.711-3.025 2.711h-1.662c-1.633 0-2.935-1.22-3.025-2.711zM16 20.471c1.78 0 3.226.574 3.226 1.28 0 .706-1.446 1.28-3.226 1.28s-3.226-.574-3.226-1.28c0-.706 1.446-1.28 3.226-1.28zM14.364 15.713c.357-.06.653-.308.776-.648 1.441-4.219-.15-7.04-2.609-8.864-2.586-1.92-6.17-2.676-7.788-2.805-.13-.01-.248-.026-.352-.02-.457.024-.732.128-.819.203-.239.204-.367.382-.325.583.03.138.019.386.29.516.06.035.12.06.168.103.167.148.247.364.364.726.266.825.565 2.3 1.308 5.286.435 1.772 1.42 2.918 2.567 3.674 2.69 1.777 6.42 1.246 6.42 1.246zM5.129 4.903c.027.065.055.134.082.207.308.824.687 2.302 1.584 5.295.504 1.667 1.621 2.546 2.815 3.004 1.45.556 3.017.5 3.84.413.665-2.191.194-3.88-.846-5.16C10.678 6.293 7.055 5.23 5.13 4.903z" fill="#fff"/><path d="M7.596 8.023s.668.659 1.601 1.632c.322.336.667.707 1.04 1.095.224.235.455.475.693.714.345.347.703.694 1.04 1.05.63.663 1.216 1.33 1.608 2a.615.615 0 101.088-.57c-.37-.794-.929-1.628-1.596-2.414a13.44 13.44 0 00-1.303-1.355 14.979 14.979 0 00-1.475-1.142C8.962 8.117 7.9 7.594 7.9 7.594a.263.263 0 10-.304.429zM28.817 9.942c-.177.467-1.208 1.443-2.282 3.54-1.105 2.237-2.608 3.08-4.03 3.319-2.603.437-5.103-1.374-5.103-1.374a.999.999 0 01-.318-1.158c1.225-2.854 3.01-4.399 4.828-5.218 2.545-1.146 5.165-.837 6.352-.6a.811.811 0 01.488-.05c.374.074.59.414.64.697.012.061.014.112.015.136a.685.685 0 01-.59.708zm-1.734-.25c-1.16-.089-2.855-.016-4.476.809-1.297.661-2.515 1.832-3.373 3.778.67.42 1.816.974 3.038.841 1.035-.113 2.093-.745 2.97-2.317.802-1.487 1.4-2.469 1.84-3.111z" fill="#fff"/><path d="M23.838 11.596s-.613.24-1.434.633c-.291.14-.602.284-.908.467-.36.216-.703.473-1.03.69-.38.253-.704.49-.972.598a.617.617 0 00-.406.77c.1.323.444.505.77.405.41-.091.982-.323 1.58-.651.303-.167.618-.35.902-.567.292-.225.55-.474.782-.714a12.247 12.247 0 001.041-1.217.263.263 0 10-.325-.414z" fill="#fff"/><path d="M14.123 14.827s1.944.435 1.877 6.506M18.014 14.872s-1.882 3.578-2.012 5.904" fill="none" stroke="#fff" stroke-width="2" stroke-miterlimit="5"/></svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="5"><path d="M53.755-13.692l7.278 6.013c.237.197.347.51.283.812 0 0-.38 1.737-1.127 2.752-.43.584-.982.942-1.586.962-.413.014-.877-.118-1.372-.535-1.193-1.009-3.883-3.812-5.647-5.679l-.523.618s-13.19-9.37-14.382-11.834c-2.842-5.876.655-8.752.655-8.752l16.42 15.643zM38.165-26.67c-.005-.004-.003-.004-.008.003l.01.01c.022.139-.002 1.22 1.448 3.026 2.07 2.576 6.595 6.533 12.623 10.297L38.167-26.657l-.002-.013zm7.978 16.176c-2.219 2.134-3.937 3.778-4.075 3.893-2.128 1.778-3.12 2.6-4.956 1.428-2.293-1.465-1.834-5.083.125-6.971l.219-.213-.012.45a40.478 40.478 0 00-.072 2.62c0 .515.343.917.768.905.428-.01.781-.433.795-.947l.07-2.563c.047-.725.116-1.45.22-2.171l1.029-.992 1.223.984c-.01.376-.013.754-.013 1.13.002.513.344.915.77.903.392-.01.722-.367.783-.825l.818.629c.298.228.597.456.897.683l1.411 1.057zm5.676-15.72l.008-.009c1.959-1.888 5.137-1.884 6.97.125 1.26 1.38.201 2.982-2.067 5.346-.356.373-1.961 1.935-3.987 3.895l-5.152-4.909.07-.438 2.242-2.162-.037 1.367a40.478 40.478 0 00-.072 2.62c0 .514.343.917.769.905.426-.012.78-.435.793-.949l.072-2.561a26.07 26.07 0 01.391-3.23zm.838 15.575c1.724 1.831 4.446 4.675 5.641 5.685.095.08.168.144.247.145.095.002.152-.094.223-.174.122-.142.229-.315.324-.498a6.96 6.96 0 00.484-1.254l-6.019-4.973-.9 1.069zM12.141 18.432C11.748 21.502 9.776 22.91 8 22.91c-1.777 0-3.748-1.409-4.141-4.478h8.282zm-7.304.964s.351 2.683 2.73 2.683a.432.432 0 000-.864c-1.668 0-1.873-1.923-1.873-1.923a.432.432 0 00-.857.104zm7.213-3.262h-1.037l-2.46-6.621a.59.59 0 00-1.106 0l-2.46 6.62H3.949L6.251 9.23a1.845 1.845 0 013.498 0l2.301 6.905z" fill="#fff"/><path d="M12.636 18.496a.499.499 0 00-.495-.564H3.86a.497.497 0 00-.496.564c.435 3.4 2.669 4.914 4.637 4.914 1.968 0 4.202-1.515 4.636-4.914zm-1.087.437H4.45c.5 2.353 2.078 3.477 3.55 3.477s3.05-1.124 3.55-3.477zm.501-2.298a.502.502 0 00.475-.658l-2.302-6.905a2.344 2.344 0 00-4.447 0l-2.301 6.905a.5.5 0 00.474.658h1.038a.5.5 0 00.469-.326l2.46-6.621A.09.09 0 018 9.629a.09.09 0 01.084.059l2.46 6.62a.5.5 0 00.469.327h1.037zm-.727-1.102L9.274 9.388a1.343 1.343 0 00-2.548 0l-2.05 6.145L6.979 9.34a1.09 1.09 0 012.043 0l2.302 6.193zM28.141 18.432c-.393 3.07-2.365 4.478-4.141 4.478-1.777 0-3.748-1.409-4.141-4.478h8.282zm-7.305.964s.352 2.683 2.732 2.683a.432.432 0 000-.864c-1.669 0-1.874-1.923-1.874-1.923a.432.432 0 00-.858.104zm7.214-3.262h-1.037l-2.46-6.621a.59.59 0 00-1.106 0l-2.46 6.62h-1.038l2.302-6.904a1.845 1.845 0 013.498 0l2.301 6.905z" fill="#fff"/><path d="M28.636 18.496a.499.499 0 00-.495-.564H19.86a.497.497 0 00-.496.564c.435 3.4 2.669 4.914 4.637 4.914 1.968 0 4.202-1.515 4.636-4.914zm-1.087.437H20.45c.5 2.353 2.078 3.477 3.55 3.477s3.05-1.124 3.55-3.477zm.501-2.298a.502.502 0 00.475-.658l-2.302-6.905a2.344 2.344 0 00-4.447 0l-2.301 6.905a.5.5 0 00.474.658h1.038a.5.5 0 00.469-.326l2.46-6.621A.09.09 0 0124 9.629a.09.09 0 01.084.059l2.46 6.62a.5.5 0 00.469.327h1.037zm-.727-1.102l-2.049-6.145a1.343 1.343 0 00-2.548 0l-2.05 6.145 2.302-6.193a1.09 1.09 0 012.043 0l2.302 6.193z" fill="#fff"/><path d="M166.438 137.232s4.218-4.023 8.241 0" fill="none" stroke="#fff" stroke-width="1.88" transform="matrix(.9707 0 0 1.14906 -145.561 -151.919)"/><path d="M166.438 137.232s4.218-4.023 8.241 0" fill="none" stroke="#fff" stroke-width="1.88" transform="matrix(-.9707 0 0 1.14906 177.561 -151.919)"/><path d="M16 6.243v18.393" fill="none" stroke="#fff" stroke-width="1.9978704"/><path d="M9.73 28.285h12.398" fill="none" stroke="#fff" stroke-width="1.9993644"/><path d="M21.735 26.837c0-1.7-1.378-3.078-3.078-3.078h-5.314a3.078 3.078 0 00-3.078 3.078v.002a1 1 0 001 1h9.47a1 1 0 001-1v-.002zm-8.221-2.3s-2.05.281-2.05 2.18c0 .19.296.344.478.344s.33-.154.33-.344c0-1.332 1.469-1.496 1.469-1.496a.341.341 0 00.288-.383c-.022-.189-.334-.324-.515-.301z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><path d="M20.561 37.261c4.175 1.776 7.106 5.918 7.106 10.739 0 6.163-4.79 11.217-10.848 11.635l1.841-2.348c4.045-1.15 7.007-4.875 7.007-9.287a9.643 9.643 0 00-5.435-8.68l.329-2.059zm-6.109-.822l-2.045 2.593A9.658 9.658 0 006.333 48a9.644 9.644 0 005.33 8.629l-.59 1.945c-3.98-1.856-6.74-5.895-6.74-10.574 0-5.914 4.411-10.807 10.119-11.561zm.026 21.096l.431.066-.728.914.297-.98zm2.869-19.097l-.359-.055-.501-.025 1.096-1.39-.236 1.47zM57.032 18.256l.384 2.69a1.869 1.869 0 01-1.851 2.135h-3.526v-.032l-.24-4.793h5.233zm-6.269 4.825H45.3l.243-4.825h4.978l.242 4.825zm-6.739-.032v.032h-3.589a1.869 1.869 0 01-1.851-2.135l.384-2.69h5.297l-.24 4.793zm.305-6.07H39.15l.716-5.01h4.716l-.253 5.01zm6.127 0h-4.85l.253-5.01h4.344l.253 5.01zm6.393 0h-5.116l-.251-5.01h4.652l.715 5.01zM44.88 6.07l-.233 4.625h-4.597l.43-3.02a1.87 1.87 0 011.852-1.605h2.548zm5.027 0l.234 4.625h-4.216l.232-4.625h3.75zm1.278 0h2.485c.931 0 1.72.685 1.85 1.606l.432 3.019h-4.534l-.233-4.625zM21.552 28.055l-1.555 1.572a.887.887 0 01-1.264 0L5.182 15.932l-.42.425a.887.887 0 01-1.264 0L2.423 15.27a.91.91 0 010-1.278L14.04 2.254a.887.887 0 011.264 0l1.074 1.086a.91.91 0 010 1.277l-.42.425 13.551 13.695a.91.91 0 010 1.277l-1.88 1.901-1.571-1.587a.356.356 0 00-.124-.094l1.22-1.233c.206-.208.786-.049.58-.258a.523.523 0 00-.747 0l-8.093 8.18a.538.538 0 00-.001.755c.207.208-.038-.29.168-.497l.826-.835c.014.033.045.07.095.122l1.571 1.587zM4.698 15.335L15.401 4.518c.262-.264.385-.568.276-.679-.109-.11-.262.165-.523.43L4.45 15.085c-.26.264-.533.419-.424.529.109.11.41-.016.671-.28zm13.574 11.271l8.247-8.335L14.693 6.32l-8.247 8.335 11.826 11.952zM10.006 8.672l2.495-2.52a.537.537 0 000-.754.523.523 0 00-.747 0L9.26 7.917a.537.537 0 000 .754c.207.209.54.209.746 0zm13.778 13.734l1.43-1.446c.015.034.046.071.096.122l1.57 1.587-1.402 1.418-1.57-1.587a.356.356 0 00-.124-.094zm-3.18 3.214l2.462-2.487c.013.033.044.07.095.122l1.57 1.587L22.3 27.3l-1.57-1.587a.353.353 0 00-.124-.093zM5.986 12.736l2.494-2.52a.538.538 0 000-.754.524.524 0 00-.747 0l-2.493 2.52a.538.538 0 000 .755c.206.208.54.208.746 0z" fill="#fff"/><path fill="none" stroke="#fff" stroke-width="2.15" d="M204.235 13.333h5.253v5.333h-5.253z" transform="matrix(.72148 -.72915 .58522 .59144 -141.827 158.137)"/><path d="M209.185 13.865V12.4" fill="none" stroke="#fff" stroke-width="1.27" transform="scale(1.18265 1.19522) rotate(-45 109.957 251.96)"/><path d="M209.185 13.865V12.4" fill="none" stroke="#fff" stroke-width="1.27" transform="scale(1.18265 1.19522) rotate(-45 108.624 248.743)"/><path d="M209.185 13.865V12.4" fill="none" stroke="#fff" stroke-width="1.27" transform="scale(1.18265 1.19522) rotate(-45 116.637 249.194)"/><path d="M209.185 13.865V12.4" fill="none" stroke="#fff" stroke-width="1.27" transform="scale(1.18265 1.19522) rotate(-45 115.304 245.976)"/><circle cx="210.667" cy="11.671" r=".382" fill="none" stroke="#fff" stroke-width="1.27" transform="scale(1.18265 1.19522) rotate(-45 110.698 253.75)"/><circle cx="210.667" cy="11.671" r=".382" fill="none" stroke="#fff" stroke-width="1.27" transform="scale(1.18265 1.19522) rotate(-45 109.365 250.53)"/><circle cx="210.667" cy="11.671" r=".382" fill="none" stroke="#fff" stroke-width="1.27" transform="scale(1.18265 1.19522) rotate(-45 120.815 249.56)"/><circle cx="210.667" cy="11.671" r=".382" fill="none" stroke="#fff" stroke-width="1.27" transform="scale(1.18265 1.19522) rotate(-45 119.481 246.34)"/></svg>

Before

Width:  |  Height:  |  Size: 3.5 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.4 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="5"><path d="M213.333 163.822c3.778 0 6.845 4.79 6.845 8.568 0 3.778-3.067 10.579-6.845 10.579-2.459 0-6.845-4.421-6.845-10.579 0-3.778 3.067-8.568 6.845-8.568z" fill="none" stroke="#fff" stroke-width="1.86" transform="scale(1.07321 1.07282) rotate(45 296.154 -179.028)"/><path d="M249.876 166.231c0-1.969-1.62-3.564-3.619-3.564h-13.304c-1.999 0-3.62 1.595-3.62 3.564v18.365c0 1.968 1.621 3.564 3.62 3.564h13.304c1.999 0 3.619-1.596 3.619-3.564v-18.365z" fill="none" stroke="#fff" stroke-width="1.55" transform="matrix(.96217 0 0 .977 -214.541 -155.377)"/><circle cx="240" cy="175.874" r="7.373" fill="none" stroke="#fff" stroke-width="2.13" transform="matrix(.9383 0 0 .9383 -209.193 -149.15)"/><circle cx="240" cy="175.874" r="7.373" fill="#fff" transform="matrix(.17499 0 0 .17499 -25.996 -14.901)"/><circle cx="240" cy="175.874" r="7.373" fill="none" stroke="#fff" stroke-width="2.02" transform="translate(-43.391 -27.648) scale(.24746)"/><circle cx="240" cy="175.874" r="7.373" fill="none" stroke="#fff" stroke-width=".55" transform="translate(-70.808 -47.74) scale(.3617)"/><circle cx="240" cy="175.874" r="7.373" fill="none" stroke="#fff" stroke-width=".22" transform="translate(-94.746 -65.281) scale(.46144)"/><circle cx="240" cy="175.874" r="7.373" fill="none" stroke="#fff" stroke-width=".09" transform="matrix(.56099 0 0 .56099 -118.637 -82.789)"/></svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M59.485 10.232c0-3.183-2.446-5.767-5.46-5.767h-10.92c-3.014 0-5.461 2.584-5.461 5.767v11.536c0 3.183 2.447 5.767 5.461 5.767h10.92c3.014 0 5.46-2.584 5.46-5.767V10.232z" fill="none" stroke="#fff" stroke-width="2.97" transform="rotate(45 80.063 5.869) scale(.86333 .81734)"/><path d="M20.2 11.8h7.608v8.4H20.2v7.608h-8.4V20.2H4.192v-8.4H11.8V4.192h8.4V11.8z" fill="none" stroke="#fff" stroke-width="2.9966500000000003"/></svg>

Before

Width:  |  Height:  |  Size: 605 B

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><path d="M17.13 11.175l4.477 2.585v5.17l-4.477 2.585-4.477-2.585v-5.17l4.477-2.585z" fill="none" stroke="#fff" stroke-width="2.004844"/><path d="M15.142 16h1.22l1.435-1.434M18.667 17.251l-.679.679" fill="none" stroke="#fff" stroke-width="1.5"/><path d="M14.113 20.053l-2.948 3.338a.474.474 0 10.67.67l3.339-2.948a.75.75 0 00-1.061-1.06z" fill="#fff"/><path d="M8.066 5.333L10.8 6.909v3.156l-2.733 1.577-2.732-1.577V6.91l2.732-1.576z" fill="#fff" stroke="#fff" stroke-width="1.5064455999999997"/><path d="M22.266 24.59l1.179.68v1.361l-1.18.68-1.178-.68V25.27l1.179-.68z" fill="#fff" stroke="#fff" stroke-width="1.501872"/><path d="M8.066 26.05l.533.308v.617l-.533.308-.534-.308v-.617l.534-.307zM6.028 16.113l.534.308v.616l-.534.308-.533-.308v-.616l.533-.308zM17.13 5.333l.533.308v.616l-.533.308-.534-.308v-.616l.534-.308zM26.096 16.68l.534.308v.617l-.534.307-.533-.307v-.617l.533-.308z" fill="#fff" stroke="#fff" stroke-width="1.5012824"/><path d="M11.31 19.71l.57-.673a.746.746 0 011.041 1.066l-.843.679a.645.645 0 01-.448.182l-1.909-.183-1.728 1.39a.214.214 0 01-.302-.004.214.214 0 01.004-.302l1.578-1.863a.445.445 0 01.31-.126l1.727-.165zM15.36 24.702l-.144-1.708c0-.156.062-.305.172-.415l1.215-1.439a.745.745 0 011.054 1.054l-1.292 1.09-.132 1.56a.427.427 0 01-.126.303l-1.977 1.67a.213.213 0 11-.302-.301l1.532-1.814z" fill="#fff"/><path d="M24.624 7.126l1.179.68v1.362l-1.18.68-1.179-.68V7.807l1.18-.68z" fill="#fff" stroke="#fff" stroke-width="1.501872"/></svg>

Before

Width:  |  Height:  |  Size: 1.6 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="5"><path d="M-26.46 18.463l2.462.686c.08.192.166.381.26.567l-.454-.036-.694 1.094 1.461-.487.036.06.046.073-.039-.002-.693 1.093 1.21-.402c.072.093.145.185.221.276l-.342 1.346.956-.687.064.063.11.1-.32 1.26.988-.707.02.015.152.109.162 2.566c-.29-.144-.57-.3-.843-.47l.568-1.162-1.358.624c-.302-.225-.59-.465-.863-.72l-.087-.147.208-1.503-.919.828-.163-.193-.106-.132.871-.672-1.398-.04a10.702 10.702 0 01-.54-.892l-.022-.31.853-1.254-1.38.387a10.524 10.524 0 01-.426-1.331zm18.116 4.841c-.325.336-.67.65-1.034.938l-.465-.572-.002.924c-.47.332-.965.627-1.481.88l-.982-.631.29.942c-.125.052-.252.1-.379.146l-.199-.872-.556 1.116a10.35 10.35 0 01-1.106.25l-.288-.108-.78-1.301-.251 1.552c-.372.017-.748.014-1.124-.008l1.427-2.142c.29-.025.577-.068.862-.123l-.081.143.705 1.087.157-1.422.167-.05.005-.003.682 1.049.15-1.362.126-.056.024-.01h.086l1.18.952-.268-1.378h.098l1.18.952-.28-1.44 2.137.547zm-2.494-.619l.018-.014.029.007-.047.007zM-21.831 6.889l.099 2.388-1.117-.425.622 1.08c-.072.075-.144.15-.214.228l-.971-.37.523.908c-.113.148-.222.3-.327.457l-1.178-.057.78.721c-.05.09-.097.182-.143.275l-1.2-.057.872.806-.074.202-.03.092-2.434.962c.055-.327.126-.65.213-.974l.06-.216.114.286 1.289.139-1.155-1.172c.091-.245.191-.484.298-.72l.3-.36 1.484-.316-1.1-.587.143-.22.092-.132.916.584-.412-1.255c.29-.357.602-.692.934-1.007l1.449.37-.717-1.002c.284-.224.578-.434.884-.628zm15.281 4.084c.173.33.326.669.463 1.017l-.93.408 1.19.332c.145.46.258.933.339 1.413l-1.054.944 1.165-.036c.011.139.019.278.025.418l-1.058-.048 1.055.946c-.013.292-.038.586-.076.879l-.284.389-1.462.406 1.446.662.016-.032c-.085.319-.186.63-.3.935L-7.64 17.56l.02-.095.022-.134.335.325 1.235-.398-1.483-.577.007-.072.008-.116.082.08 1.235-.399-1.298-.504-.003-.12-.002-.045.02-.073 1.227-.891-1.362-.095-.017-.092v-.005l1.228-.892-1.475-.102-.016-.054-.052-.156 1.379-2.17zm-6.81-5.425l.073.019c.127.033.252.07.377.11l-.033.003-.465 1.209 1.497-.852.167.07.103.047.553.778-.062 1.219-.572.212.114-1.106-.86.855-.134-.061-.166-.07.105-1.024-.78.777c-.13-.04-.261-.08-.395-.116l-.073-.018-.273-1.25-.57 1.076-.157-.023-.033-.004-.294-1.349-.676 1.277h-.031l-1.669-2.012c.341-.05.686-.084 1.034-.1l-.007.004.12 1.29.874-1.297c.256.011.513.031.77.062l.454.243.602 1.391.408-1.36zm2.63 1.07c.465.265.905.563 1.316.889l-1.338.496.672-.72-.65-.664z" fill="#fff"/><path d="M213.333 163.822c3.778 0 6.845 4.79 6.845 8.568 0 3.778-3.067 10.579-6.845 10.579-2.459 0-6.845-4.421-6.845-10.579 0-3.778 3.067-8.568 6.845-8.568z" fill="none" stroke="#fff" stroke-width="1.86" transform="scale(1.07321 1.07282) rotate(45 311.06 -143.036)"/><path d="M202.667 177.874l-3.79-.276-2.603 1.068a1.253 1.253 0 00-.476 1.977l1.535 1.79 3.322-1.291.639 1.036 2.832-2.37-1.459-1.934z" fill="none" stroke="#fff" stroke-width="2.01" transform="matrix(.74824 0 0 .74797 -142.573 -115.988)"/><path d="M202.667 177.874l-3.79-.276-2.426.995a1.394 1.394 0 00-.529 2.195l1.411 1.645 2.922-.889.64 1.036 3.231-2.772-1.459-1.934z" fill="none" stroke="#fff" stroke-width="2.01" transform="matrix(.10033 -.74121 -.74148 -.1003 125.908 191.165)"/><path d="M206.644 168s-.777 9.889 10.567 8.594" fill="none" stroke="#fff" stroke-width="1.9" transform="matrix(1.04092 0 0 1.06629 -199.964 -172.317)"/><path d="M206.644 168s-.777 9.889 10.567 8.594" fill="none" stroke="#fff" stroke-width="1.12" transform="matrix(.8828 0 0 .90431 -170.022 -140.833)"/><path d="M199.156 182.151a1.297 1.297 0 00-.137 1.787l.135.165a1.295 1.295 0 001.853.157l3.994-3.469-1.966-2.124-3.879 3.484z" fill="none" stroke="#fff" stroke-width="1.4" transform="matrix(1.07321 0 0 1.07282 -207.341 -172.709)"/></svg>

Before

Width:  |  Height:  |  Size: 3.7 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M59.485 10.232c0-3.183-2.446-5.767-5.46-5.767h-10.92c-3.014 0-5.461 2.584-5.461 5.767v11.536c0 3.183 2.447 5.767 5.461 5.767h10.92c3.014 0 5.46-2.584 5.46-5.767V10.232z" fill="none" stroke="#fff" stroke-width="2.97" transform="rotate(45 64.063 -32.759) scale(.86333 .81734)"/><path d="M15.494 15.711l-.042-.055s6.327-3.456 10.733 0c4.406 3.456-3.49 9.59-3.49 9.59s-6.03 5.896-8.781 1.02c-2.594-4.6 1.144-9.96 1.58-10.555zM5.329 7.56l8.423 9.59c.824.938.761-.67 1.7-1.494.94-.825 2.525-.555 1.7-1.494L8.73 4.572A2.265 2.265 0 005.329 7.56z" fill="none" stroke="#fff" stroke-width="2.000934" stroke-linecap="butt" stroke-miterlimit="2"/><path d="M4.797 5.696A2.264 2.264 0 018.73 4.572l8.423 9.59c.824.939-.762.67-1.701 1.494-.938.824-.876 2.432-1.7 1.494L5.329 7.56a2.247 2.247 0 01-.55-1.712.48.48 0 00.125.318l9.18 10.281a.5.5 0 10.746-.666L5.649 5.5a.499.499 0 00-.852.196z" fill="#fff"/><path d="M16.506 27.102s.467-8.725 9.833-9.245a1.055 1.055 0 00-.117-2.107c-11.324.629-11.824 11.247-11.824 11.247a1.056 1.056 0 002.108.105z" fill="none" stroke="#fff" stroke-width=".99594" stroke-linecap="butt" stroke-miterlimit="2"/></svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M-9.562 27.319l-10.83-12.855a6.123 6.123 0 01-8.753-6.441l.01-.058a1.19 1.19 0 01.179-.465.12.12 0 01.095-.056.126.126 0 01.071.017l4.045 4.044c.273.274.671.38 1.044.28l2.091-.56c.373-.1.665-.392.765-.765l.56-2.091c.1-.373-.006-.772-.279-1.045l-4.047-4.047a.114.114 0 01-.015-.067.124.124 0 01.056-.097c.171-.113.332-.155.465-.179l.058-.01a6.123 6.123 0 016.441 8.755l12.854 10.83a3.488 3.488 0 01.601 5.412 3.487 3.487 0 01-5.41-.602zm1.497-3.312a2.05 2.05 0 112.899 2.898 2.05 2.05 0 01-2.9-2.898zm-1.419.155s-9.185-10.578-9.411-10.387a.535.535 0 00-.067.752l8.659 10.322a.534.534 0 10.82-.687zm-19.22-15.464c.047-.14.661 1.08.877 1.633.432 1.108 1.281 2.506 2.785 3.17 1.004.441 2.296.55 3.942.043a.267.267 0 11.157.51c-1.802.556-3.216.42-4.314-.065-1.65-.728-2.595-2.248-3.07-3.464-.236-.61-.355-1.14-.39-1.454a.993.993 0 01.013-.373zM18.865 3.288a.517.517 0 00-.916-.401L7.305 16.396a.515.515 0 00.377.834l7.479.406a.516.516 0 01.465.665c-.55 1.813-2.16 7.12-3.136 10.343a.515.515 0 00.898.47l11.347-14.243a.514.514 0 00-.395-.838c-1.746-.03-5.197-.093-6.58-.118a.515.515 0 01-.5-.598c.282-1.769 1.137-7.109 1.605-10.03z" fill="#fff"/><path d="M20.561 5.261c4.175 1.776 7.106 5.918 7.106 10.739 0 6.163-4.79 11.217-10.848 11.635l1.841-2.348c4.045-1.15 7.007-4.875 7.007-9.287a9.643 9.643 0 00-5.435-8.68l.329-2.059zm-6.109-.822l-2.045 2.593A9.658 9.658 0 006.333 16a9.644 9.644 0 005.33 8.629l-.59 1.945c-3.98-1.856-6.74-5.895-6.74-10.574 0-5.914 4.411-10.807 10.119-11.561zm.026 21.096l.431.066-.728.914.297-.98zm2.869-19.097l-.359-.055-.501-.025 1.096-1.39-.236 1.47zM21.552-3.945l-1.555 1.572a.887.887 0 01-1.264 0L5.182-16.068l-.42.425a.887.887 0 01-1.264 0L2.423-16.73a.91.91 0 010-1.278L14.04-29.746a.887.887 0 011.264 0l1.074 1.086a.91.91 0 010 1.277l-.42.425 13.551 13.695a.91.91 0 010 1.277l-1.88 1.901-1.571-1.587a.356.356 0 00-.124-.094l1.22-1.233c.206-.208.786-.049.58-.258a.523.523 0 00-.747 0l-8.093 8.18a.538.538 0 00-.001.755c.207.208-.038-.29.168-.497l.826-.835c.014.033.045.07.095.122l1.571 1.587zM4.698-16.665l10.703-10.817c.262-.264.385-.568.276-.679-.109-.11-.262.165-.523.43L4.45-16.915c-.26.264-.533.419-.424.529.109.11.41-.016.671-.28zM18.272-5.394l8.247-8.335L14.693-25.68l-8.247 8.335L18.272-5.394zm-8.266-17.934l2.495-2.52a.537.537 0 000-.754.523.523 0 00-.747 0l-2.494 2.52a.537.537 0 000 .754c.207.209.54.209.746 0zM23.784-9.594l1.43-1.446c.015.034.046.071.096.122l1.57 1.587-1.402 1.418-1.57-1.587a.356.356 0 00-.124-.094zm-3.18 3.214l2.462-2.487c.013.033.044.07.095.122l1.57 1.587L22.3-4.7l-1.57-1.587a.353.353 0 00-.124-.093zM5.986-19.264l2.494-2.52a.538.538 0 000-.754.524.524 0 00-.747 0l-2.493 2.52a.538.538 0 000 .755c.206.208.54.208.746 0z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M15.015 17.35c-.03.079-.129.324-.142.875-.017.689-.312 1.609-.512 1.79-.477.434-.224 1.375.348 1.612.235.096.292.035.306-.005v2.392c-1.008-.04-1.797.196-2.478.569.687.542 1.505.86 2.478.92v3.48c-2.663 0-8.697-3.551-9.49-8.175-1.199.267-1.839-1.552-2.09-5.12-.192-2.694 1.093-1.932 1.97-1.126-.1-.601-.728-4.66.3-5.72 1.11-1.145 0-2.737 0-2.737l1.045-1.22 1.35 1.22s.034-1.628 1.943-2.135c1.527-.406 4.031-.62 4.972-.69v14.07zm-3.724-.034c.04.004.08.006.121.006.716 0 1.954-1.361 1.954-1.361S12.128 14.6 11.412 14.6c-.04 0-.082.002-.12.006a1.225 1.225 0 00-.122-.006c-.717 0-1.955 1.36-1.955 1.36s1.238 1.362 1.955 1.362c.04 0 .081-.002.121-.006zM16.735 25.496v3.488c1.644 0 5.56-.04 6.54-4.227.372-1.587 1.966-2.175 2.674-3.352 1.77.89 3.001.437 2.028-4.18-.212-1.008 2.642-6.591 2.008-7.564-.294-.453-1.99 1.404-3.42 3.12.12-1.431.125-3.274-.52-3.94-1.11-1.144 3.015-5.052 3.015-5.052L25 4.885l-1.349 1.22c-2.342 1.51-4.438 1.214-1.944-2.135 1.007-1.353-3.604-.917-4.972-.761V17.35c.031.078.13.323.142.874.017.689.312 1.609.512 1.79.193.177 1.442 1.45 1.304 1.437-.302-.027-1.643.445-1.679 1.04-.035.573-.246-.67-.279-.87v2.397c.804.464 1.863.414 2.667.564-.803.008-1.833.214-2.667.913zM19.541 4.62c-.417.003-.879.008-1.306.018V17.1c.063.223.13.57.142 1.088.006.267.148.732.201.896.423.434 1.338 1.43 1.448 1.643.454.874.01 1.484-.216 1.732a1.409 1.409 0 01-1.039.493l-.069.03c.342.037.674.069.974.125a1.5 1.5 0 01-.26 2.975 3.045 3.045 0 00-1.18.232v1.109c1.383-.163 3.054-.771 3.58-3.01.26-1.111.906-1.9 1.653-2.59.427-.393.912-.722 1.195-1.193a1.5 1.5 0 011.96-.566c.06.03.13.059.2.086.054-.574-.062-1.42-.314-2.616-.068-.32-.044-.912.171-1.66.143-.496.366-1.118.613-1.784a1.498 1.498 0 01-2.224-1.435c.052-.634.084-1.36.027-2a5.668 5.668 0 00-.168-.813c-.534-.584-.71-1.5-.373-2.542a1.38 1.38 0 01-.092.064c-1.086.702-2.15 1.063-2.91 1.107-.6.034-1.092-.104-1.462-.327-.643-.387-1.086-1.034-1.003-2.071.03-.371.161-.857.452-1.454zm-1.353 15.418c.141-.032.268-.055.377-.068.108-.013.198-.017.26-.012a1.446 1.446 0 00-.637.08zm1.228-6.377a2.57 2.57 0 01.128-.1c.367-.27 1.084-.45 1.884-.29l-.064-.01.08.014-.008-.001.146.032-.083-.02.041.009-.006-.001c.637.14 1.32.426 1.32.426.51.214.861.69.913 1.24 0 0 .07.739.014 1.389l.004-.05-.01.122s-.003.026 0 .003l-.009.072c-.092.792-.47 1.407-.83 1.673l-.262.192c-.367.27-1.085.45-1.884.289l.064.01-.079-.013s-.017-.003.006 0l-.145-.031.082.02-.04-.01.005.002c-.636-.141-1.32-.426-1.32-.426a1.502 1.502 0 01-.913-1.241s-.069-.738-.014-1.388l-.003.05.01-.122s.003-.026 0-.003l.01-.072c.09-.792.47-1.407.83-1.673.043-.032.088-.063.133-.092zm.893 1.213c.038-.037.08-.072.124-.105.134-.1.405-.086.698-.026l.08.016c.512.113 1.063.344 1.063.344s.057.595.013 1.119l-.008.08c-.03.297-.099.56-.233.659-.044.032-.09.06-.137.087-.039.037-.08.072-.124.105-.135.099-.405.086-.699.026l-.078-.016c-.513-.113-1.064-.344-1.064-.344s-.057-.595-.013-1.12l.008-.08c.03-.296.098-.56.233-.658.044-.032.09-.061.137-.087zm3.457 1.622l.005-.04-.008.064.003-.024zm.013-.124l.003-.03-.003.04v-.01zm-5.34-.822l-.003.03.003-.041v.01zm.013-.124l-.005.04.008-.064-.003.024zM53.755 18.308l7.278 6.013c.237.197.347.51.283.812 0 0-.38 1.737-1.127 2.752-.43.584-.982.942-1.586.962-.413.014-.877-.118-1.372-.535-1.193-1.009-3.883-3.812-5.647-5.679l-.523.618s-13.19-9.37-14.382-11.834c-2.842-5.876.655-8.752.655-8.752l16.42 15.643zM38.165 5.33c-.005-.004-.003-.004-.008.003l.01.01c.022.139-.002 1.22 1.448 3.026 2.07 2.576 6.595 6.533 12.623 10.297L38.167 5.343l-.002-.013zm7.978 16.176c-2.219 2.134-3.937 3.778-4.075 3.893-2.128 1.778-3.12 2.6-4.956 1.428-2.293-1.465-1.834-5.083.125-6.971l.219-.213-.012.45a40.478 40.478 0 00-.072 2.62c0 .515.343.917.768.905.428-.01.781-.433.795-.947l.07-2.563c.047-.725.116-1.45.22-2.171l1.029-.992 1.223.984c-.01.376-.013.754-.013 1.13.002.513.344.915.77.903.392-.01.722-.367.783-.825l.818.629c.298.228.597.456.897.683l1.411 1.057zm5.676-15.72l.008-.009c1.959-1.888 5.137-1.884 6.97.125 1.26 1.38.201 2.982-2.067 5.346-.356.373-1.961 1.935-3.987 3.895l-5.152-4.909.07-.438 2.242-2.162-.037 1.367a40.478 40.478 0 00-.072 2.62c0 .514.343.917.769.905.426-.012.78-.435.793-.949l.072-2.561a26.07 26.07 0 01.391-3.23zm.838 15.575c1.724 1.831 4.446 4.675 5.641 5.685.095.08.168.144.247.145.095.002.152-.094.223-.174.122-.142.229-.315.324-.498a6.96 6.96 0 00.484-1.254l-6.019-4.973-.9 1.069z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="5"><path d="M23.471-16C21.733-8.015 16.25-6.031 16-6.031v-9.063a.904.904 0 01.904-.904h6.568zM16-25.166v8.264a.904.904 0 01-.904.904H8.553c-.341-1.543-.545-3.31-.553-5.333 2.052 0 3.975-.653 8-3.835zM-21.999 3.873a1.56 1.56 0 00-1.494.863l-4.71 9.968c-.2.405-.185.883.04 1.274 0 0 1.587 2.605 3.11 5.25 1.522 2.644 2.979 5.325 2.979 5.325.228.395.639.649 1.094.678l10.99.869a1.538 1.538 0 001.473-.85l4.738-9.956a1.353 1.353 0 00-.04-1.28s-1.598-2.6-3.127-5.24c-1.53-2.641-2.99-5.32-2.99-5.32a1.34 1.34 0 00-1.075-.667l-10.988-.914zm10.13 3.557l-9.302-.4-4.297 8.256c.527.955 1.563 2.818 2.63 4.662a277.167 277.167 0 002.73 4.597l9.302.44 4.277-8.277a264.188 264.188 0 00-2.614-4.667 255.043 255.043 0 00-2.726-4.611zm-4.203 9.474l-.006-.118c0-.76.618-1.377 1.377-1.377h2.657a1.377 1.377 0 010 2.755h-1.28v1.32h1.28a1.378 1.378 0 010 2.754H-14.7l-.141-.008-.137-.02-.133-.034-.02-.008a1.375 1.375 0 01-.947-1.308v-3.837l.006-.12zm-4.102-3.75h-.542a1.378 1.378 0 010-2.753h3.838a1.378 1.378 0 010 2.754h-.542v2.963a1.378 1.378 0 01-2.754 0v-2.963zM29.333 8.42a5.99 5.99 0 00-5.987-5.987H8.654a5.99 5.99 0 00-5.987 5.986v14.927a5.99 5.99 0 005.987 5.988h14.692a5.99 5.99 0 005.987-5.988V8.42zm-2.18 0v14.926a3.809 3.809 0 01-3.807 3.808H8.654a3.81 3.81 0 01-3.808-3.808V8.42a3.81 3.81 0 013.808-3.807h14.692a3.809 3.809 0 013.807 3.807z" fill="#fff"/><path d="M9.688 22.194V9.571h9.47a3.154 3.154 0 013.153 3.154v.004a3.154 3.154 0 01-3.154 3.154H9.688" fill="none" stroke="#fff" stroke-width="3.9999258"/><path d="M13.207 15.883h.843a7.02 7.02 0 015.603 2.79l2.658 3.52" fill="none" stroke="#fff" stroke-width="4.0006494"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M-5.412 13.034a1 1 0 00-1.225-.707l-17.423 4.668c-.534.144-.85.692-.708 1.225l2.784 10.39a1 1 0 001.225.707l17.423-4.669a1 1 0 00.707-1.225l-2.783-10.39zm-13.131 13.05l3.29-.88c.496-.134.8-.606.68-1.055-.12-.449-.62-.705-1.117-.573l-3.29.882c-.496.133-.801.605-.68 1.054.12.449.62.705 1.117.573zm-1.142-2.915l3.29-.881c.496-.134.8-.606.68-1.055-.12-.449-.62-.705-1.117-.572l-3.29.881c-.496.134-.801.605-.68 1.054.12.449.62.706 1.117.573zm8.76-6.528a3.366 3.366 0 00-2.38 4.12 3.367 3.367 0 004.122 2.378 3.367 3.367 0 002.378-4.12 3.366 3.366 0 00-4.12-2.378zm-9.817 3.57l3.29-.882c.496-.132.8-.606.68-1.054-.12-.45-.62-.705-1.116-.573l-3.29.882c-.496.133-.802.605-.68 1.054.119.45.62.706 1.116.572zm10.27-1.878a1.614 1.614 0 01.835 3.116 1.614 1.614 0 01-.835-3.116zM4.535 7.735l3.242-.868c.007.053.018.106.032.159l1.186 4.425a1.511 1.511 0 001.85 1.067l7.92-2.122a1.51 1.51 0 001.067-1.85l-1.185-4.424a1.362 1.362 0 00-.05-.155l3.24-.868c.087-.023.174-.04.262-.051l.05-.008.022-.002c.116-.012.231-.014.346-.008l.05.004c.035.004.07.008.104.01l.056.01a2.137 2.137 0 011.729 1.554l.002.004 4.636 17.302a2.14 2.14 0 01-1.513 2.62l-.405.109a2.122 2.122 0 00-.013-1.055l-2.91-10.855a2.139 2.139 0 00-2.62-1.513l-12.47 3.342a2.14 2.14 0 00-1.513 2.62l2.909 10.855c.095.358.277.67.515.92l-.795.214c-.21.056-.424.079-.637.071l-.093-.006-.103-.01-.038-.007a2.175 2.175 0 01-.753-.262 2.155 2.155 0 01-.996-1.3L3.023 10.356a2.138 2.138 0 01.29-1.745l.038-.056.064-.083.05-.06c.097-.114.206-.218.325-.309l.08-.059c.03-.018.059-.037.088-.057l.04-.023a2.1 2.1 0 01.537-.228zm8.275 20.757a2.138 2.138 0 01-1.558-1.524l-2.467-9.207a2.138 2.138 0 011.512-2.619l10.644-2.852a2.139 2.139 0 012.62 1.512l2.467 9.207a2.143 2.143 0 01-.588 2.1l-12.63 3.383zm10.724-9.02a.968.968 0 00-1.187-.686l-9.65 2.586a.97.97 0 00.502 1.873l9.65-2.585a.97.97 0 00.685-1.187v-.001zm-1.061-3.17a.968.968 0 00-1.187-.685l-9.65 2.585a.968.968 0 00.502 1.873l9.65-2.585a.968.968 0 00.685-1.187v-.001zM17.562 4.245c.236.198.407.464.487.765l.822 3.066a1.51 1.51 0 01-1.067 1.849l-6.362 1.705a1.511 1.511 0 01-1.85-1.068l-.82-3.065a1.515 1.515 0 01.038-.907l8.752-2.345zm-.903 1.438a.47.47 0 00-.576-.333l-1.23.33a.47.47 0 00-.333.576l.821 3.065a.47.47 0 00.577.333l1.23-.33a.47.47 0 00.333-.576l-.822-3.065z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M22.438-4.681l-10.83-12.855a6.123 6.123 0 01-8.753-6.441l.01-.058a1.19 1.19 0 01.179-.465.12.12 0 01.095-.056.126.126 0 01.071.017l4.045 4.044c.273.274.671.38 1.044.28l2.091-.56c.373-.1.665-.392.765-.765l.56-2.091c.1-.373-.006-.772-.279-1.045l-4.047-4.047a.114.114 0 01-.015-.067.124.124 0 01.056-.097c.171-.113.332-.155.465-.179l.058-.01a6.123 6.123 0 016.441 8.755L27.248-9.49a3.488 3.488 0 01.601 5.412 3.487 3.487 0 01-5.41-.602zm1.497-3.312a2.05 2.05 0 112.899 2.898 2.05 2.05 0 01-2.9-2.898zm-1.419.155s-9.185-10.578-9.411-10.387a.535.535 0 00-.067.752L21.697-7.15a.534.534 0 10.82-.687zM3.296-23.302c.047-.14.661 1.08.877 1.633.432 1.108 1.281 2.506 2.785 3.17 1.004.441 2.296.55 3.942.043a.267.267 0 11.157.51c-1.802.556-3.216.42-4.314-.065-1.65-.728-2.595-2.248-3.07-3.464-.236-.61-.355-1.14-.39-1.454a.993.993 0 01.013-.373zM50.865-28.712a.517.517 0 00-.916-.401L39.305-15.604a.515.515 0 00.377.834l7.479.406a.516.516 0 01.465.665c-.55 1.813-2.16 7.12-3.136 10.343a.515.515 0 00.898.47l11.347-14.243a.514.514 0 00-.395-.838c-1.746-.03-5.197-.093-6.58-.118a.515.515 0 01-.5-.598c.282-1.769 1.137-7.109 1.605-10.03z" fill="#fff"/><path d="M52.561-26.739c4.175 1.776 7.106 5.918 7.106 10.739 0 6.163-4.79 11.217-10.848 11.635l1.841-2.348c4.045-1.15 7.007-4.875 7.007-9.287a9.643 9.643 0 00-5.435-8.68l.329-2.059zm-6.109-.822l-2.045 2.593A9.658 9.658 0 0038.333-16a9.644 9.644 0 005.33 8.629l-.59 1.945c-3.98-1.856-6.74-5.895-6.74-10.574 0-5.914 4.411-10.807 10.119-11.561zm.026 21.096l.431.066-.728.914.297-.98zm2.869-19.097l-.359-.055-.501-.025 1.096-1.39-.236 1.47zM53.755 50.308l7.278 6.013c.237.197.347.51.283.812 0 0-.38 1.737-1.127 2.752-.43.584-.982.942-1.586.962-.413.014-.877-.118-1.372-.535-1.193-1.009-3.883-3.812-5.647-5.679l-.523.618s-13.19-9.37-14.382-11.834c-2.842-5.876.655-8.752.655-8.752l16.42 15.643zM38.165 37.33c-.005-.004-.003-.004-.008.003l.01.01c.022.139-.002 1.22 1.448 3.026 2.07 2.576 6.595 6.533 12.623 10.297L38.167 37.343l-.002-.013zm7.978 16.176c-2.219 2.134-3.937 3.778-4.075 3.893-2.128 1.778-3.12 2.6-4.956 1.428-2.293-1.465-1.834-5.083.125-6.971l.219-.213-.012.45a40.478 40.478 0 00-.072 2.62c0 .515.343.917.768.905.428-.01.781-.433.795-.947l.07-2.563c.047-.725.116-1.45.22-2.171l1.029-.992 1.223.984c-.01.376-.013.754-.013 1.13.002.513.344.915.77.903.392-.01.722-.367.783-.825l.818.629c.298.228.597.456.897.683l1.411 1.057zm5.676-15.72l.008-.009c1.959-1.888 5.137-1.884 6.97.125 1.26 1.38.201 2.982-2.067 5.346-.356.373-1.961 1.935-3.987 3.895l-5.152-4.909.07-.438 2.242-2.162-.037 1.367a40.478 40.478 0 00-.072 2.62c0 .514.343.917.769.905.426-.012.78-.435.793-.949l.072-2.561a26.07 26.07 0 01.391-3.23zm.838 15.575c1.724 1.831 4.446 4.675 5.641 5.685.095.08.168.144.247.145.095.002.152-.094.223-.174.122-.142.229-.315.324-.498a6.96 6.96 0 00.484-1.254l-6.019-4.973-.9 1.069zM4.335 20.084a4.969 4.969 0 01-.624-2.418v-10c0-2.758 2.24-5 5-5H23.29c2.76 0 5 2.242 5 5v10c0 .877-.226 1.702-.624 2.418l.001.082-.165.193a5.021 5.021 0 01-.902 1.053L22.666 26a3.335 3.335 0 01-3.332 3.334h-6.668A3.335 3.335 0 019.334 26L5.4 21.412A5.021 5.021 0 014.5 20.36l-.165-.193.001-.082zm1.539-.539a4.324 4.324 0 01-.54-2.099v-8.68a4.342 4.342 0 014.34-4.34h12.652a4.342 4.342 0 014.34 4.34v8.68c0 .762-.196 1.478-.54 2.099v.071l-.142.168a4.407 4.407 0 01-.785.916l-3.413 3.98a2.894 2.894 0 01-2.892 2.894h-5.788a2.894 2.894 0 01-2.892-2.894L6.8 20.7a4.407 4.407 0 01-.785-.916l-.142-.168v-.071zm1.461-.511a3.71 3.71 0 01-.462-1.797V9.81a3.715 3.715 0 013.713-3.712h10.828a3.715 3.715 0 013.713 3.712v7.427a3.71 3.71 0 01-.462 1.797v.061l-.122.143a3.726 3.726 0 01-.672.783l-2.92 3.406a2.476 2.476 0 01-2.475 2.475h-4.952a2.476 2.476 0 01-2.475-2.475l-2.92-3.406a3.726 3.726 0 01-.672-.783l-.122-.143v-.061zm12.612.48a.552.552 0 00-.163-.394.551.551 0 00-.393-.164H12.61a.551.551 0 00-.393.164.552.552 0 00-.163.394v2.471a.554.554 0 00.556.556h6.782a.554.554 0 00.556-.556v-2.471zm-1.3.69h-5.294v1.091h5.294v-1.091zm3.872-8.865a.512.512 0 00-.513-.512h-4.119a.511.511 0 00-.51.512v3.177c0 .283.228.513.51.513h4.12c.282 0 .512-.23.512-.513V11.34zm-7.91 0a.512.512 0 00-.513-.512H9.977a.511.511 0 00-.51.512v3.177c0 .283.228.513.51.513h4.12c.282 0 .512-.23.512-.513V11.34zm-1.256 1.073a.513.513 0 00-.513-.512h-1.605a.512.512 0 00-.513.512v1.032c0 .282.23.511.513.511h1.605a.512.512 0 00.513-.511v-1.032zm7.925 0a.512.512 0 00-.513-.512H19.16a.513.513 0 00-.513.512v1.032c0 .282.23.511.513.511h1.605a.511.511 0 00.513-.511v-1.032z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M22.736 21.334a.705.705 0 00-.703-.705H9.968a.705.705 0 100 1.408h12.065a.704.704 0 00.703-.703zm0-4.156a.704.704 0 00-.703-.704H9.968a.705.705 0 100 1.409h12.065a.705.705 0 00.703-.705zm0-3.845a.704.704 0 00-.703-.704H9.968a.705.705 0 100 1.408h12.065a.705.705 0 00.703-.704zM6.378 8.15a2.745 2.745 0 01.14-5.485h16.218l.142.005a2.746 2.746 0 012.603 2.74v18.435h.03v4.63c0 .048.037.087.084.09a.089.089 0 00.093-.08l.455-4.56a2.745 2.745 0 01-.662 5.407H9.263a2.744 2.744 0 01-2.743-2.707h-.001V9.776L20.967 8.33a.09.09 0 00.08-.092.087.087 0 00-.088-.085H6.52l-.141-.003z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 749 B

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="5"><path d="M-15.69 8.852c3.02-1.958 7.309-4.454 9.655-5.444.934-.394 1.653-.536 2-.495A1.22 1.22 0 01-2.924 4.11c.012.324-.156 1.01-.548 1.91-1.01 2.323-3.455 6.597-5.382 9.621l.046 4.527c.002.213-.061.423-.18.6l-3.329 4.923a1.052 1.052 0 01-1.91-.763l.79-4.75c-.319.08-.646.129-.976.147-1.565-2.35-3.54-4.314-5.914-5.907.018-.332.067-.661.148-.981l-4.75.79a1.053 1.053 0 01-.763-1.912l4.923-3.328c.177-.119.386-.182.6-.18l4.479.045zm2.29 8.66l-4.014-4.016c-.295-.294-1.146-.407-1.065 0 .015.075.028.298.234.388 1.407.609 3.902 3.387 4.483 4.477.112.21.318.225.362.215.404-.098.294-.77 0-1.065zm5.527-9.639a2.437 2.437 0 01-3.446 3.445 2.437 2.437 0 013.446-3.445zm-.747.747a1.38 1.38 0 11-1.953 1.95A1.38 1.38 0 01-8.62 8.62z" fill="#fff"/><path d="M144 133.333c5.337 3.677 8.046 3.686 10.735 3.686 0 16.26-10.334 17.648-10.735 17.648-.401 0-10.733-1.335-10.733-17.214 2.754 0 5.334-.418 10.733-4.12z" fill="none" stroke="#fff" stroke-width="1.86" transform="matrix(.99376 0 0 1.1459 -127.102 -149.009)"/><path d="M23.471 16c-1.738 7.984-7.222 9.968-7.472 9.968v-9.063a.904.904 0 01.904-.904h6.568zM16 6.834v8.264a.904.904 0 01-.904.904H8.553c-.341-1.543-.545-3.31-.553-5.333 2.052 0 3.975-.653 8-3.835zM44.141 18.432c-.393 3.07-2.365 4.478-4.141 4.478-1.777 0-3.748-1.409-4.141-4.478h8.282zm-7.304.964s.351 2.683 2.73 2.683a.432.432 0 000-.864c-1.668 0-1.873-1.923-1.873-1.923a.432.432 0 00-.857.104zm7.213-3.262h-1.037l-2.46-6.621a.59.59 0 00-1.106 0l-2.46 6.62h-1.038l2.302-6.904a1.845 1.845 0 013.498 0l2.301 6.905z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><path d="M19.501 14.88l.437 7.263h4.038c.498 0 .903.404.903.902v4.816a.904.904 0 01-.903.903H8.024a.904.904 0 01-.903-.903v-4.816c0-.498.405-.902.903-.902h4.038l.437-7.263c.98.225 2.191.359 3.501.359s2.521-.134 3.501-.359zm-6.547 2.568a.406.406 0 01.425-.387l.813.038c.224.01.398.2.387.425l-.357 7.686a.405.405 0 01-.425.387l-.812-.037a.408.408 0 01-.388-.425l.357-7.687zm6.092 0a.406.406 0 00-.425-.387l-.813.038a.405.405 0 00-.387.425l.357 7.686c.01.224.2.398.425.387l.812-.037a.408.408 0 00.388-.425l-.357-7.687zm-5.261.408a.17.17 0 01.178-.163l.342.016a.171.171 0 01.163.179l-.322 6.939a.172.172 0 01-.179.163l-.342-.016a.17.17 0 01-.162-.179l.322-6.939zm4.43 0a.17.17 0 00-.178-.163l-.342.016a.171.171 0 00-.163.179l.322 6.939a.172.172 0 00.179.163l.342-.016a.17.17 0 00.162-.179l-.322-6.939zm1.027-7.289c1.612.331 2.677.901 2.677 1.548 0 1.021-2.652 1.851-5.919 1.851-3.267 0-5.919-.83-5.919-1.851 0-.647 1.065-1.217 2.677-1.548l.166-2.766c.897.171 1.95.27 3.076.27 1.126 0 2.179-.099 3.076-.27l.166 2.766zM16 3.236c3.267 0 5.919.829 5.919 1.851 0 1.021-2.652 1.851-5.919 1.851-3.267 0-5.919-.83-5.919-1.851 0-1.022 2.652-1.851 5.919-1.851z" fill="#fff"/><path d="M7.28 17.982c-.805 0-1.458-2.889-1.458-6.447 0-3.559.653-6.448 1.458-6.448" fill="none" stroke="#fff" stroke-width="1.0023042"/><path d="M6.272 19.833c-1.036 0-1.877-3.718-1.877-8.298s.84-8.299 1.877-8.299" fill="none" stroke="#fff"/><path d="M24.69 5.086c.805 0 1.458 2.89 1.458 6.448 0 3.558-.653 6.448-1.458 6.448" fill="none" stroke="#fff" stroke-width="1.0023042"/><path d="M25.728 3.236c1.036 0 1.877 3.718 1.877 8.298s-.84 8.299-1.877 8.299" fill="none" stroke="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M-11.439 37.261C-7.264 39.037-4.333 43.179-4.333 48c0 6.163-4.79 11.217-10.848 11.635l1.841-2.348c4.045-1.15 7.007-4.875 7.007-9.287a9.643 9.643 0 00-5.435-8.68l.329-2.059zm-6.109-.822l-2.045 2.593A9.658 9.658 0 00-25.667 48a9.644 9.644 0 005.33 8.629l-.59 1.945c-3.98-1.856-6.74-5.895-6.74-10.574 0-5.914 4.411-10.807 10.119-11.561zm.026 21.096l.431.066-.728.914.297-.98zm2.869-19.097l-.359-.055-.501-.025 1.096-1.39-.236 1.47zM22.005 26.607a1.87 1.87 0 00-1.72-1.137H11.65l-1.136 2.67a.858.858 0 00.79 1.193h10.563a.857.857 0 00.79-1.194l-.652-1.532zm-9.982.46h8.78a.4.4 0 000-.8h-8.78a.4.4 0 000 .8z" fill="#fff"/><path d="M22.005 26.607a1.87 1.87 0 00-1.72-1.137H11.65l-1.136 2.67a.858.858 0 00.79 1.193h10.563a.857.857 0 00.79-1.194l-.652-1.532zm-9.982.46h8.78a.4.4 0 000-.8h-8.78a.4.4 0 000 .8z" fill="#fff"/><path d="M26.437 4.272a1.87 1.87 0 00-1.851-1.605H7.415c-.93 0-1.72.684-1.851 1.605L2.696 24.348a1.873 1.873 0 001.85 2.135h22.908a1.868 1.868 0 001.851-2.135L26.437 4.272zM4.697 24.483h22.606l-2.83-19.817H7.528L4.697 24.483z" fill="#fff"/><path d="M25.032 18.256l.384 2.69a1.869 1.869 0 01-1.851 2.135H20.04v-.032l-.241-4.793h5.233zm-6.268 4.825H13.3l.242-4.825h4.979l.242 4.825zm-6.74-.032v.032H8.437a1.869 1.869 0 01-1.852-2.134l.384-2.691h5.298l-.241 4.793zm.306-6.07H7.15l.717-5.01h4.715l-.252 5.01zm6.126 0h-4.85l.253-5.01h4.345l.252 5.01zm6.394 0h-5.116l-.252-5.01h4.652l.716 5.01zM12.88 6.07l-.234 4.625H8.05l.431-3.02a1.87 1.87 0 011.852-1.605h2.548zm5.027 0l.233 4.625h-4.215l.232-4.625h3.75zm1.278 0h2.484c.931 0 1.72.685 1.851 1.606l.432 3.019h-4.535l-.232-4.625zM-10.448 28.055l-1.555 1.572a.887.887 0 01-1.264 0l-13.551-13.695-.42.425a.887.887 0 01-1.264 0l-1.075-1.086a.91.91 0 010-1.278L-17.96 2.254a.887.887 0 011.264 0l1.074 1.086a.91.91 0 010 1.277l-.42.425 13.551 13.695a.91.91 0 010 1.277l-1.88 1.901-1.571-1.587a.356.356 0 00-.124-.094l1.22-1.233c.206-.208.786-.049.58-.258a.523.523 0 00-.747 0l-8.093 8.18a.538.538 0 00-.001.755c.207.208-.038-.29.168-.497l.826-.835c.014.033.045.07.095.122l1.571 1.587zm-16.854-12.72l10.703-10.817c.262-.264.385-.568.276-.679-.109-.11-.262.165-.523.43L-27.55 15.085c-.26.264-.533.419-.424.529.109.11.41-.016.671-.28zm13.574 11.271l8.247-8.335L-17.307 6.32l-8.247 8.335 11.826 11.952zm-8.266-17.934l2.495-2.52a.537.537 0 000-.754.523.523 0 00-.747 0l-2.494 2.52a.537.537 0 000 .754c.207.209.54.209.746 0zm13.778 13.734l1.43-1.446c.015.034.046.071.096.122l1.57 1.587-1.402 1.418-1.57-1.587a.356.356 0 00-.124-.094zm-3.18 3.214l2.462-2.487c.013.033.044.07.095.122l1.57 1.587L-9.7 27.3l-1.57-1.587a.353.353 0 00-.124-.093zm-14.619-12.884l2.494-2.52a.538.538 0 000-.754.524.524 0 00-.747 0l-2.493 2.52a.538.538 0 000 .755c.206.208.54.208.746 0z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="5"><path d="M24 136v14" fill="none" stroke="#fff" stroke-width="1.63" transform="matrix(1.14426 0 0 1.30772 -.782 -174.02)"/><path d="M24 136v13.333" fill="none" stroke="#fff" stroke-width="1.63" transform="matrix(1.14426 0 0 1.30772 -15.216 -169.34)"/><ellipse cx="7.64" cy="152.692" rx="3.026" ry="1.974" fill="#fff" stroke="#fff" stroke-width="1.75" transform="translate(.04 -148.773) scale(1.14426)"/><ellipse cx="7.64" cy="152.692" rx="3.026" ry="1.974" fill="#fff" stroke="#fff" stroke-width="1.75" transform="translate(14.474 -152.58) scale(1.14426)"/><path d="M12.246 8.42c5.439-.023 10.232-1.646 14.434-4.625v4.692c-4.812-.064-9.622 1.461-14.434 4.624V8.42z" fill="#fff" stroke="#fff" stroke-width="2.0024550000000003"/></svg>

Before

Width:  |  Height:  |  Size: 901 B

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M21.755-13.692l7.278 6.013c.237.197.347.51.283.812 0 0-.38 1.737-1.127 2.752-.43.584-.982.942-1.586.962-.413.014-.877-.118-1.372-.535-1.193-1.009-3.883-3.812-5.647-5.679l-.523.618S5.871-18.12 4.68-20.583c-2.842-5.876.655-8.752.655-8.752l16.42 15.643zM6.165-26.67c-.005-.004-.003-.004-.008.003l.01.01c.022.139-.002 1.22 1.448 3.026 2.07 2.576 6.595 6.533 12.623 10.297L6.167-26.657l-.002-.013zm7.978 16.176c-2.219 2.134-3.937 3.778-4.075 3.893-2.128 1.778-3.12 2.6-4.956 1.428-2.293-1.465-1.834-5.083.125-6.971l.219-.213-.012.45a40.478 40.478 0 00-.072 2.62c0 .515.343.917.768.905.428-.01.781-.433.795-.947l.07-2.563c.047-.725.116-1.45.22-2.171l1.029-.992 1.223.984c-.01.376-.013.754-.013 1.13.002.513.344.915.77.903.392-.01.722-.367.783-.825l.818.629c.298.228.597.456.897.683l1.411 1.057zm5.676-15.72l.008-.009c1.959-1.888 5.137-1.884 6.97.125 1.26 1.38.201 2.982-2.067 5.346-.356.373-1.961 1.935-3.987 3.895l-5.152-4.909.07-.438 2.242-2.162-.037 1.367a40.478 40.478 0 00-.072 2.62c0 .514.343.917.769.905.426-.012.78-.435.793-.949l.072-2.561a26.07 26.07 0 01.391-3.23zm.838 15.575c1.724 1.831 4.446 4.675 5.641 5.685.095.08.168.144.247.145.095.002.152-.094.223-.174.122-.142.229-.315.324-.498a6.96 6.96 0 00.484-1.254l-6.019-4.973-.9 1.069z" fill="#fff"/><g fill="#fff"><path d="M13.639 9.265a2.638 2.638 0 014.722 0l6.396 12.792a2.64 2.64 0 01-2.361 3.819H9.604a2.638 2.638 0 01-2.361-3.819l6.396-12.792zm.954 12.604c.267-.608.811-.992 1.407-.992s1.14.384 1.407.992l.001.002c.197.449.176.983-.056 1.41-.231.427-.64.687-1.081.687h-.542c-.441 0-.85-.26-1.081-.687a1.626 1.626 0 01-.056-1.41l.001-.002zM16 19.616c-1.705 0-1.537-3.613-1.537-5.827 0-1.419.437-2.727 1.537-2.727 1.1 0 1.537 1.23 1.537 2.711 0 2.214.168 5.843-1.537 5.843z"/><path d="M11.734 5.303L3.17 22.43a4.771 4.771 0 004.267 6.903h17.126a4.77 4.77 0 004.267-6.903L20.266 5.303a4.768 4.768 0 00-8.532 0zm1.905.966a2.64 2.64 0 014.722 0l8.486 16.973a2.64 2.64 0 01-2.361 3.819H7.514a2.638 2.638 0 01-2.361-3.819l8.486-16.973z"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="5"><path d="M16.311 8.853c3.019-1.958 7.308-4.455 9.654-5.445.935-.393 1.653-.536 2-.495a1.22 1.22 0 011.112 1.197c.013.325-.156 1.011-.547 1.91-1.012 2.324-3.455 6.597-5.382 9.622l.045 4.526c.002.214-.06.423-.18.6l-3.328 4.923a1.052 1.052 0 01-1.912-.763l.791-4.75c-.318.08-.646.13-.975.147-1.565-2.35-3.541-4.314-5.914-5.906.017-.333.067-.662.147-.982l-4.75.79a1.053 1.053 0 01-.763-1.911l4.923-3.328c.178-.12.387-.183.6-.18l4.48.045zm2.29 8.659l-4.015-4.015c-.294-.294-1.146-.408-1.065 0 .015.074.028.298.234.387 1.407.609 3.902 3.387 4.484 4.478.111.21.317.225.362.214.403-.098.294-.77 0-1.064zm5.526-9.638a2.437 2.437 0 01-3.445 3.445 2.437 2.437 0 013.445-3.445zm-.747.747a1.38 1.38 0 11-1.953 1.95 1.38 1.38 0 011.953-1.95z" fill="#fff"/><path d="M9.707 16.677l-5.616 5.616M9.707 22.293L4.091 27.91M15.323 22.293L9.707 27.91" fill="none" stroke="#fff" stroke-width="2.000681"/></svg>

Before

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><path d="M-11.439 5.261C-7.264 7.037-4.333 11.179-4.333 16c0 6.163-4.79 11.217-10.848 11.635l1.841-2.348c4.045-1.15 7.007-4.875 7.007-9.287a9.643 9.643 0 00-5.435-8.68l.329-2.059zm-6.109-.822l-2.045 2.593A9.658 9.658 0 00-25.667 16a9.644 9.644 0 005.33 8.629l-.59 1.945c-3.98-1.856-6.74-5.895-6.74-10.574 0-5.914 4.411-10.807 10.119-11.561zm.026 21.096l.431.066-.728.914.297-.98zm2.869-19.097l-.359-.055-.501-.025 1.096-1.39-.236 1.47zM-10.448-3.945l-1.555 1.572a.887.887 0 01-1.264 0l-13.551-13.695-.42.425a.887.887 0 01-1.264 0l-1.075-1.086a.91.91 0 010-1.278l11.616-11.739a.887.887 0 011.264 0l1.074 1.086a.91.91 0 010 1.277l-.42.425 13.551 13.695a.91.91 0 010 1.277l-1.88 1.901-1.571-1.587a.356.356 0 00-.124-.094l1.22-1.233c.206-.208.786-.049.58-.258a.523.523 0 00-.747 0l-8.093 8.18a.538.538 0 00-.001.755c.207.208-.038-.29.168-.497l.826-.835c.014.033.045.07.095.122l1.571 1.587zm-16.854-12.72l10.703-10.817c.262-.264.385-.568.276-.679-.109-.11-.262.165-.523.43L-27.55-16.915c-.26.264-.533.419-.424.529.109.11.41-.016.671-.28zm13.574 11.271l8.247-8.335-11.826-11.952-8.247 8.335 11.826 11.952zm-8.266-17.934l2.495-2.52a.537.537 0 000-.754.523.523 0 00-.747 0l-2.494 2.52a.537.537 0 000 .754c.207.209.54.209.746 0zM-8.216-9.594l1.43-1.446c.015.034.046.071.096.122l1.57 1.587-1.402 1.418-1.57-1.587a.356.356 0 00-.124-.094zm-3.18 3.214l2.462-2.487c.013.033.044.07.095.122l1.57 1.587L-9.7-4.7l-1.57-1.587a.353.353 0 00-.124-.093zm-14.619-12.884l2.494-2.52a.538.538 0 000-.754.524.524 0 00-.747 0l-2.493 2.52a.538.538 0 000 .755c.206.208.54.208.746 0zM21.364 24.397l3.157-2.72 1.446 3.498-1.3 1.268H20.95l.415-2.046zm-7.983 2.046H9.546l-.439-3.249 3.39 1.565.071.027.813 1.657zm-.703-5.995l2.94 5.995h3.29l1.198-5.918-3.47-3.583-3.958 3.506zM7.94 17.582l2.737 4.098-2.396-1.106a.982.982 0 00-1.01.112.995.995 0 00-.306.386l-.354-.236-1.149-3.254H7.94zm11.641-.5l2.02-4.062 5.23-2.157-.54 6.62-4.272 3.68.154-.76a1.032 1.032 0 00-.269-.923l-2.323-2.398zm-8.29 1.893L7.393 13.14l.671-5.713 5.425 3.676.991 5.044-3.19 2.827zm4.933-4.333l-.854-4.354a1.018 1.018 0 00-.428-.65l-.552-.374 4.2-3.545 1.544 4.21-1.385 4.316-.649 1.307-.702-.725a.983.983 0 00-1.174-.185zm7.48-4.69l-1.698.7.138-.428c.07-.22.065-.458-.014-.674l-.34-.928 1.914-1.615v2.945z" fill="#fff"/><path d="M235.946 40.494l.022-.019 5.725-4.737a.998.998 0 011.574.42l1.077 2.88 3.019-2.495a1 1 0 011.637.77v4.202l1.882-.761a1 1 0 011.371 1.01l-.707 8.523a.998.998 0 01-.351.681l-1.778 1.501 1.957 4.638a1 1 0 01-.23 1.112l-2.089 1.996a1 1 0 01-.691.277H231.97a1 1 0 01-.99-.864l-.538-3.897-1.908-1.244a.994.994 0 01-.395-.499l-1.745-4.844a1 1 0 01.941-1.339h2.539l-1.048-1.538a.998.998 0 01-.166-.682l.908-7.585a.998.998 0 011.546-.714l4.832 3.208z" fill="none" stroke="#fff" stroke-width=".99" transform="matrix(1 0 0 1.02 -223.296 -33.219)"/></svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M11.793 18.242l1.761.958c.061.034.106.09.125.158a.262.262 0 01-.026.2c-.663 1.191-.12 2.684.122 2.944-1.347 2.65-5.186 6.26-9.254 6.6a.275.275 0 01-.256-.407c.87-1.58 5.41-9.839 6.076-11.05a.171.171 0 01.23-.068l.49.267L5.576 27.93s1.25-.56 1.383-.802l4.834-8.886zm1.502-2.76l2.808 1.528a.577.577 0 01.23.78l-.718 1.323a.577.577 0 01-.78.23l-2.81-1.528 1.27-2.334zm6.464-11.884l3.331.05a.574.574 0 01.497.851c-1.237 2.264-4.67 8.549-6.423 11.768a.575.575 0 01-.781.23l-2.81-1.528L19.76 3.598zm-8.465 13.82l-.134-.073a.579.579 0 01-.23-.78l.72-1.324a.576.576 0 01.78-.23l.134.072-1.27 2.335zm1.549-2.847l-.132-.07a.577.577 0 01-.23-.783l5.407-9.842a.578.578 0 01.514-.299l.417.006-5.976 10.988zM12.812 29.175s.478-.063 1.171-.114a12.397 12.397 0 011.171-.034c1.633.03 3.513.148 3.513.148a.5.5 0 000-1s-1.88.118-3.513.147a12.639 12.639 0 01-1.171-.033c-.693-.051-1.171-.114-1.171-.114a.5.5 0 000 1zM21.073 29.175s.478-.063 1.17-.114a12.397 12.397 0 011.172-.034c1.633.03 3.513.148 3.513.148a.5.5 0 000-1s-1.88.118-3.513.147a12.639 12.639 0 01-1.171-.033c-.693-.051-1.171-.114-1.171-.114a.5.5 0 000 1zM46.984-24.02s.147 3.67.147 7.342c0 3.673-.147 7.343-.147 7.343a1 1 0 002 0s-.146-3.67-.146-7.343c0-3.672.146-7.342.146-7.342a1 1 0 00-2 0zM9.523 44.34a5.6 5.6 0 011.905-.918 5.662 5.662 0 012.197-.15L12.49 45.87c-.128.016-.257.041-.384.075l-.28.092-2.302-1.697zm-3.384-2.494a9.342 9.342 0 014.258-2.477 9.342 9.342 0 014.927.016l-1.063 2.433a6.682 6.682 0 00-3.187.075 6.682 6.682 0 00-2.798 1.528l-2.137-1.575zm-3.472-2.559a13.025 13.025 0 016.59-4.171 13.03 13.03 0 017.795.317l-1.05 2.4a10.437 10.437 0 00-6.068-.194 10.437 10.437 0 00-5.159 3.202l-2.108-1.554z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M26.588 13.034a1 1 0 00-1.225-.707L7.94 16.995c-.534.144-.85.692-.708 1.225l2.784 10.39a1 1 0 001.225.707l17.423-4.669a1 1 0 00.707-1.225l-2.783-10.39zm-13.131 13.05l3.29-.88c.496-.134.8-.606.68-1.055-.12-.449-.62-.705-1.117-.573l-3.29.882c-.496.133-.801.605-.68 1.054.12.449.62.705 1.117.573zm-1.142-2.915l3.29-.881c.496-.134.8-.606.68-1.055-.12-.449-.62-.705-1.117-.572l-3.29.881c-.496.134-.801.605-.68 1.054.12.449.62.706 1.117.573zm8.76-6.528a3.366 3.366 0 00-2.38 4.12 3.367 3.367 0 004.122 2.378 3.367 3.367 0 002.378-4.12 3.366 3.366 0 00-4.12-2.378zm-9.817 3.57l3.29-.882c.496-.132.8-.606.68-1.054-.12-.45-.62-.705-1.116-.573l-3.29.882c-.496.133-.802.605-.68 1.054.119.45.62.706 1.116.572zm10.27-1.878a1.614 1.614 0 01.835 3.116 1.614 1.614 0 01-.835-3.116zM9.523 12.34a5.6 5.6 0 011.905-.918 5.662 5.662 0 012.197-.15L12.49 13.87c-.128.016-.257.041-.385.075l-.28.092-2.301-1.697zM6.139 9.846a9.342 9.342 0 014.258-2.477 9.342 9.342 0 014.927.016L14.26 9.818a6.682 6.682 0 00-3.188.075 6.682 6.682 0 00-2.797 1.528L6.139 9.846zM2.667 7.287a13.025 13.025 0 016.59-4.171 13.03 13.03 0 017.795.317l-1.05 2.4a10.437 10.437 0 00-6.068-.194 10.437 10.437 0 00-5.159 3.202L2.667 7.287zM17.122 36.684v-2.49a1.501 1.501 0 00-3 0v2.49a1.5 1.5 0 003 0z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M26.588-18.966a1 1 0 00-1.225-.707L7.94-15.005c-.534.144-.85.692-.708 1.225l2.784 10.39a1 1 0 001.225.707l17.423-4.669a1 1 0 00.707-1.225l-2.783-10.39zM13.457-5.916l3.29-.88c.496-.134.8-.606.68-1.055-.12-.449-.62-.705-1.117-.573l-3.29.882c-.496.133-.801.605-.68 1.054.12.449.62.705 1.117.573zM12.315-8.83l3.29-.881c.496-.134.8-.606.68-1.055-.12-.449-.62-.705-1.117-.572l-3.29.881c-.496.134-.801.605-.68 1.054.12.449.62.706 1.117.573zm8.76-6.528a3.366 3.366 0 00-2.38 4.12 3.367 3.367 0 004.122 2.378 3.367 3.367 0 002.378-4.12 3.366 3.366 0 00-4.12-2.378zm-9.817 3.57l3.29-.882c.496-.132.8-.606.68-1.054-.12-.45-.62-.705-1.116-.573l-3.29.882c-.496.133-.802.605-.68 1.054.119.45.62.706 1.116.572zm10.27-1.878a1.614 1.614 0 01.835 3.116 1.614 1.614 0 01-.835-3.116zM9.523-19.66a5.6 5.6 0 011.905-.918 5.662 5.662 0 012.197-.15L12.49-18.13c-.128.016-.257.041-.385.075l-.28.092-2.301-1.697zm-3.384-2.494a9.342 9.342 0 014.258-2.477 9.342 9.342 0 014.927.016l-1.063 2.433a6.682 6.682 0 00-3.188.075 6.682 6.682 0 00-2.797 1.528l-2.137-1.575zm-3.472-2.559a13.025 13.025 0 016.59-4.171 13.03 13.03 0 017.795.317l-1.05 2.4a10.437 10.437 0 00-6.068-.194 10.437 10.437 0 00-5.159 3.202l-2.108-1.554zM12.23 23.403a1.283 1.283 0 01-.007-.142c0-.322-.116-.686-.275-1.087-.312-.788-.802-1.672-1.289-2.589-.934-1.759-1.819-3.637-1.819-5.252 0-3.495 3.083-6.39 6.945-6.39s6.945 2.895 6.945 6.39c0 1.34-.878 3.166-1.815 4.97-.755 1.451-1.568 2.88-1.568 3.958l-.008.143c.02.082.03.168.03.256v4.577c0 .605-.49 1.097-1.096 1.097h-4.976a1.096 1.096 0 01-1.097-1.097V23.66c0-.089.01-.174.03-.257zm.63 4.223v.227c0 .498.402.902.895.902h4.06a.899.899 0 00.894-.902V24.09a.899.899 0 00-.894-.902h-4.06a.899.899 0 00-.895.902v.546c0-.396.402-.716.895-.716h4.06c.493 0 .894.32.894.716v2.991c0 .396-.4.717-.894.717h-4.06c-.493 0-.895-.32-.895-.717zm4.758-5.063l.046-5.481c0-.154-.064-.3-.177-.404l-.8-.733a.544.544 0 00-.812.083l-.202.278-.231-.291a.539.539 0 00-.8-.056l-.76.735a.536.536 0 00-.166.388l.038 5.481h.995l.037-5.25.17-.162.31.394a.546.546 0 00.868-.017l.266-.364.175.16.045 5.24h.998zM15.74 9.403s-2 .058-3.614 1.43c-.385.326-.748.728-1.047 1.22-.365.6-.64 1.334-.768 2.221a.736.736 0 001.445.263 4.669 4.669 0 01.69-1.615c.225-.339.48-.62.748-.855 1.183-1.043 2.636-1.199 2.636-1.199a.735.735 0 00-.09-1.466zM9.407 5.448l-1.048-.94A1.5 1.5 0 006.355 6.74l1.047.94a1.5 1.5 0 002.005-2.232zM24.167 7.68l1.048-.94a1.5 1.5 0 00-2.005-2.232l-1.047.94a1.5 1.5 0 002.004 2.233zM6.058 19.205l-.582.39a1.5 1.5 0 001.667 2.493l.582-.389a1.5 1.5 0 00-1.667-2.494zM5.452 11.927H2.667a1.5 1.5 0 000 3h2.785a1.5 1.5 0 000-3zM17.121 4.685V2.194a1.501 1.501 0 00-3 0v2.491a1.5 1.5 0 003 0zM23.623 21.7l1.169.78a1.5 1.5 0 001.667-2.493l-1.168-.782a1.5 1.5 0 00-1.668 2.494zM26.119 14.927h2.495a1.501 1.501 0 000-3h-2.496a1.5 1.5 0 000 3z" fill="#fff"/><g><path d="M16.31 40.852c3.02-1.958 7.309-4.454 9.655-5.444.934-.394 1.653-.536 2-.495a1.22 1.22 0 011.112 1.197c.012.324-.156 1.01-.548 1.91-1.01 2.323-3.455 6.597-5.382 9.621l.046 4.527c.002.213-.061.423-.18.6l-3.329 4.923a1.052 1.052 0 01-1.91-.763l.79-4.75c-.319.08-.646.129-.976.147-1.565-2.35-3.54-4.314-5.914-5.907.018-.332.067-.661.148-.981l-4.75.79a1.053 1.053 0 01-.763-1.912l4.923-3.328c.177-.119.386-.182.6-.18l4.479.045zm2.29 8.66l-4.014-4.016c-.295-.294-1.146-.407-1.065 0 .015.075.028.298.234.388 1.407.609 3.902 3.387 4.483 4.477.112.21.318.225.362.215.404-.098.294-.77 0-1.065zm5.527-9.639a2.437 2.437 0 01-3.446 3.445 2.437 2.437 0 013.446-3.445zm-.747.747a1.38 1.38 0 11-1.953 1.95 1.38 1.38 0 011.953-1.95z" fill="#fff"/></g></svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.1 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M29.333 8.537a5.99 5.99 0 00-5.987-5.987H8.654a5.99 5.99 0 00-5.987 5.987v14.927a5.99 5.99 0 005.987 5.987h14.692a5.99 5.99 0 005.987-5.987V8.537zm-2.18 0v14.927a3.809 3.809 0 01-3.807 3.807H8.654a3.81 3.81 0 01-3.808-3.807V8.537a3.81 3.81 0 013.808-3.808h14.692a3.809 3.809 0 013.807 3.808z" fill="#fff"/><path d="M9.633 12.369h12.734a2.18 2.18 0 000-4.359H9.633a2.18 2.18 0 000 4.359z" fill="#fff"/><path d="M13.82 10.188v12.19a2.18 2.18 0 004.359 0v-12.19a2.18 2.18 0 00-4.36 0z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 657 B

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7.6 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M-10.245-13.692l7.278 6.013c.237.197.347.51.283.812 0 0-.38 1.737-1.127 2.752-.43.584-.982.942-1.586.962-.413.014-.877-.118-1.372-.535-1.193-1.009-3.883-3.812-5.647-5.679l-.523.618s-13.19-9.37-14.382-11.834c-2.842-5.876.655-8.752.655-8.752l16.42 15.643zm-15.59-12.978c-.005-.004-.003-.004-.008.003l.01.01c.022.139-.002 1.22 1.448 3.026 2.07 2.576 6.595 6.533 12.623 10.297l-14.071-13.323-.002-.013zm7.978 16.176c-2.219 2.134-3.937 3.778-4.075 3.893-2.128 1.778-3.12 2.6-4.956 1.428-2.293-1.465-1.834-5.083.125-6.971l.219-.213-.012.45a40.478 40.478 0 00-.072 2.62c0 .515.343.917.768.905.428-.01.781-.433.795-.947l.07-2.563c.047-.725.116-1.45.22-2.171l1.029-.992 1.223.984c-.01.376-.013.754-.013 1.13.002.513.344.915.77.903.392-.01.722-.367.783-.825l.818.629c.298.228.597.456.897.683l1.411 1.057zm5.676-15.72l.008-.009c1.959-1.888 5.137-1.884 6.97.125 1.26 1.38.201 2.982-2.067 5.346-.356.373-1.961 1.935-3.987 3.895l-5.152-4.909.07-.438 2.242-2.162-.037 1.367a40.478 40.478 0 00-.072 2.62c0 .514.343.917.769.905.426-.012.78-.435.793-.949l.072-2.561a26.07 26.07 0 01.391-3.23zm.838 15.575c1.724 1.831 4.446 4.675 5.641 5.685.095.08.168.144.247.145.095.002.152-.094.223-.174.122-.142.229-.315.324-.498a6.96 6.96 0 00.484-1.254l-6.019-4.973-.9 1.069zM19.273 24.713h6.911a1 1 0 000-2h-6.911a1 1 0 100 2zM29.333 28.332c0-1.7-1.378-3.078-3.078-3.078h-7.053a3.078 3.078 0 00-3.078 3.078v.002a1 1 0 001 1h11.209a1 1 0 001-1v-.002zm-9.96-2.3s-2.05.28-2.05 2.18c0 .19.296.344.478.344s.33-.154.33-.344c0-1.332 1.469-1.496 1.469-1.496a.341.341 0 00.288-.383c-.022-.19-.334-.324-.515-.301zM22.356 13.294a2 2 0 000-2.829L19.47 7.579a2 2 0 00-2.829 0l-2.567 2.567a2 2 0 000 2.828l2.887 2.886a2 2 0 002.828 0l2.567-2.566zM12.369 14.966l2.624 2.624-9.159 9.16c-.181.181-.39.316-.613.407l-.085.032a1.857 1.857 0 01-1.375-.06l-.133-.067a1.787 1.787 0 01-.347-.247l-.071-.068a1.854 1.854 0 010-2.622l9.159-9.159zm4.037 2.174a.63.63 0 000-.886l-2.701-2.7a.624.624 0 00-.885 0h-.001a.63.63 0 000 .886l2.701 2.7a.622.622 0 00.885 0h.001zm4.474-9.506a.297.297 0 000 .424l1.021 1.022a.304.304 0 00.213.088.303.303 0 00.212-.088l.502-.502a1.026 1.026 0 000-1.446h-.001a1.023 1.023 0 00-1.445 0l-.502.502zM27.077 16.412a2 2 0 000-2.828l-.611-.612a2 2 0 00-2.829 0l-4.11 4.11a2 2 0 000 2.828l.612.612a2 2 0 002.829 0l4.109-4.11zM16.973 6.257a2 2 0 000-2.828l-.512-.512a2 2 0 00-2.829 0l-4.109 4.11a1.998 1.998 0 000 2.828l.511.512a2 2 0 002.829 0l4.11-4.11z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><circle cx="48" cy="80" r="12.514" fill="none" stroke="#fff" stroke-width="1.67" transform="translate(-12.799 -32.017) scale(.60016)"/><circle cx="48" cy="80" r="12.514" fill="none" stroke="#fff" stroke-width="2.5" transform="matrix(.4001 0 0 .4001 -3.196 -16.013)"/><circle cx="48" cy="80" r="12.514" fill="#fff" stroke="#fff" stroke-width="3.81" transform="translate(3.419 -4.988) scale(.2623)"/><path d="M16.96 8.486c.19-.69 1.59-3.652 1.747-3.905.644-1.034 1.323-1.29 3.113-.9a.32.32 0 01.219.478c-.688 1.176-2.755 4.698-2.755 4.698s-.124-.007-.364-.035c-.049-.006 2.873-4.528 2.7-4.582-.194-.061-3.018 4.542-3.108 4.529a22.568 22.568 0 01-1.551-.283zM15.605 23.516c-.189.689-1.59 3.651-1.746 3.905-.644 1.034-1.323 1.29-3.113.9a.32.32 0 01-.219-.479c.687-1.176 2.754-4.697 2.754-4.697s.124.006.365.034c.049.006-2.873 4.528-2.7 4.583.194.06 3.018-4.542 3.107-4.529.382.054.902.143 1.552.283zM23.528 16.4c.689.189 3.651 1.59 3.905 1.746 1.034.644 1.29 1.323.9 3.113a.32.32 0 01-.479.22c-1.176-.688-4.697-2.755-4.697-2.755s.006-.124.034-.365c.006-.048 4.528 2.873 4.583 2.7.06-.194-4.542-3.018-4.529-3.107.054-.382.143-.902.283-1.552zM8.565 15.592c-.689-.189-3.651-1.59-3.905-1.746-1.034-.644-1.29-1.323-.9-3.113a.32.32 0 01.479-.219c1.176.687 4.697 2.755 4.697 2.755s-.006.124-.034.364c-.006.049-4.528-2.873-4.583-2.7-.06.194 4.542 3.018 4.529 3.107-.054.382-.143.903-.283 1.552zM22.006 11.333c.621-.353 3.707-1.458 3.997-1.526 1.186-.276 1.847.023 2.837 1.565a.32.32 0 01-.183.493c-1.318.345-5.27 1.374-5.27 1.374s-.083-.093-.233-.282c-.03-.039 5.233-1.17 5.15-1.331-.095-.181-5.346 1.077-5.4 1.005a22.568 22.568 0 01-.898-1.298zM10.42 21.002c-.62.354-3.706 1.459-3.996 1.527-1.186.276-1.847-.023-2.837-1.565a.32.32 0 01.183-.493c1.318-.346 5.27-1.374 5.27-1.374s.083.092.233.282c.03.039-5.233 1.17-5.15 1.331.095.18 5.346-1.077 5.4-1.005.232.309.537.739.898 1.297zM21.053 21.573c.354.62 1.459 3.706 1.527 3.996.276 1.187-.023 1.848-1.565 2.837a.32.32 0 01-.493-.183c-.346-1.317-1.374-5.27-1.374-5.27s.092-.082.282-.232c.039-.03 1.17 5.233 1.331 5.15.18-.095-1.077-5.347-1.005-5.4.309-.232.739-.538 1.297-.898zM11.046 10.422c-.354-.62-1.459-3.706-1.527-3.996-.276-1.187.023-1.848 1.565-2.838a.32.32 0 01.493.184c.346 1.317 1.374 5.27 1.374 5.27s-.092.082-.282.232c-.039.03-1.17-5.233-1.331-5.15-.18.095 1.077 5.347 1.005 5.4-.309.232-.74.537-1.297.898zM19.752 9.534c.433-.548 2.822-2.675 3.06-2.843.972-.682 1.678-.654 3.131.373a.32.32 0 01.144.26.32.32 0 01-.13.266c-1.073.802-4.259 3.164-4.259 3.164s-.109-.054-.314-.17c-.041-.024 4.31-2.972 4.176-3.087-.152-.13-4.446 2.929-4.521 2.883a22.031 22.031 0 01-1.287-.846zM12.797 22.52c-.433.547-2.822 2.674-3.06 2.842-.972.682-1.678.654-3.131-.373a.32.32 0 01-.144-.26.32.32 0 01.13-.266c1.074-.802 4.259-3.164 4.259-3.164s.109.054.314.17c.042.024-4.31 2.972-4.175 3.087.15.13 4.445-2.929 4.52-2.883.323.195.757.473 1.287.847zM22.632 19.151c.547.433 2.674 2.822 2.842 3.06.682.972.654 1.678-.373 3.131a.32.32 0 01-.26.144.32.32 0 01-.266-.13c-.802-1.074-3.164-4.259-3.164-4.259s.054-.109.17-.314c.024-.042 2.972 4.31 3.087 4.175.13-.15-2.929-4.445-2.883-4.52.195-.323.473-.757.847-1.287zM9.496 12.714c-.547-.433-2.674-2.823-2.842-3.06-.682-.972-.654-1.678.373-3.132a.32.32 0 01.26-.143.32.32 0 01.266.129c.802 1.074 3.164 4.26 3.164 4.26s-.054.108-.17.313c-.024.042-2.972-4.31-3.087-4.175-.13.152 2.929 4.446 2.883 4.521-.195.323-.473.756-.847 1.287zM23.199 14.018c.693-.08 3.887.105 4.173.154 1.17.205 1.65.724 1.95 2.478a.32.32 0 01-.081.285.32.32 0 01-.28.097c-1.326-.193-5.249-.775-5.249-.775s-.04-.114-.101-.342c-.013-.047 5.148.946 5.134.77-.015-.199-5.214-1.073-5.235-1.159-.09-.366-.2-.869-.311-1.508zM9.098 18.283c-.693.081-3.887-.104-4.174-.154-1.169-.205-1.649-.723-1.95-2.478a.32.32 0 01.082-.285.32.32 0 01.28-.097c1.326.193 5.249.775 5.249.775s.039.115.101.343c.013.046-5.148-.946-5.135-.77.016.198 5.215 1.073 5.236 1.158.09.366.2.869.311 1.508zM18.434 22.855c.081.693-.104 3.887-.154 4.173-.205 1.17-.723 1.65-2.478 1.95a.32.32 0 01-.285-.081.32.32 0 01-.097-.28c.193-1.326.775-5.249.775-5.249s.115-.04.343-.101c.046-.013-.946 5.148-.77 5.134.198-.015 1.073-5.214 1.158-5.235.366-.09.869-.2 1.508-.311zM13.698 9.015c-.08-.693.105-3.887.154-4.174.205-1.169.724-1.649 2.478-1.95a.32.32 0 01.285.082.32.32 0 01.098.28c-.193 1.326-.776 5.249-.776 5.249s-.114.039-.342.101c-.046.013.946-5.149.77-5.135-.198.016-1.073 5.215-1.158 5.236-.366.09-.87.2-1.509.31z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 4.5 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="1.5"><path d="M59.485 10.232c0-3.183-2.446-5.767-5.46-5.767h-10.92c-3.014 0-5.461 2.584-5.461 5.767v11.536c0 3.183 2.447 5.767 5.461 5.767h10.92c3.014 0 5.46-2.584 5.46-5.767V10.232z" fill="none" stroke="#fff" stroke-width="2.97" transform="rotate(45 25.436 -16.758) scale(.86333 .81734)"/><path d="M44.849 14.354a3.718 3.718 0 013.716-3.716 3.718 3.718 0 013.716 3.716 3.718 3.718 0 01-3.716 3.716c-1.17 0 .445 3.776.445 3.776" fill="none" stroke="#fff" stroke-width="2.73" transform="matrix(.7474 .11886 -.12555 .70758 -18.515 -3.04)"/><path d="M49.627 22.899l-.097-.548" fill="none" stroke="#fff" stroke-width="1.96" transform="matrix(1.04955 -.00858 .00906 .99364 -36.237 -.551)"/></svg>

Before

Width:  |  Height:  |  Size: 857 B

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M10.001 3.873a1.56 1.56 0 00-1.494.863l-4.71 9.968c-.2.405-.185.883.04 1.274 0 0 1.587 2.605 3.11 5.25 1.522 2.644 2.979 5.325 2.979 5.325.228.395.639.649 1.094.678l10.99.869a1.538 1.538 0 001.473-.85l4.738-9.956a1.353 1.353 0 00-.04-1.28s-1.598-2.6-3.127-5.24c-1.53-2.641-2.99-5.32-2.99-5.32a1.34 1.34 0 00-1.075-.667l-10.988-.914zm10.13 3.557l-9.302-.4-4.297 8.256c.527.955 1.563 2.818 2.63 4.662a277.167 277.167 0 002.73 4.597l9.302.44 4.277-8.277a264.188 264.188 0 00-2.614-4.667 255.043 255.043 0 00-2.726-4.611zm-4.203 9.474l-.006-.118c0-.76.618-1.377 1.377-1.377h2.657a1.377 1.377 0 010 2.755h-1.28v1.32h1.28a1.378 1.378 0 010 2.754H17.3l-.141-.008-.137-.02-.133-.034-.02-.008a1.375 1.375 0 01-.947-1.308v-3.837l.006-.12zm-4.102-3.75h-.542a1.378 1.378 0 010-2.753h3.838a1.378 1.378 0 010 2.754h-.542v2.963a1.378 1.378 0 01-2.754 0v-2.963z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 1,021 B

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M16.87 8.903l.037-.125a18.911 18.911 0 00.531-2.346c.23-1.42.311-2.405.311-2.405a1.409 1.409 0 012.72.729c.001 0-.421.894-.932 2.238a19.291 19.291 0 00-.712 2.298l-.03.126c.337.143.66.312.968.502l.058-.09c.574-.908.932-1.56.932-1.56a.846.846 0 011.35 1.016s-.526.524-1.24 1.328l-.07.082c.305.276.585.578.839.9l.116-.061a19.314 19.314 0 002.035-1.283c1.166-.842 1.92-1.48 1.92-1.48a1.408 1.408 0 011.409 2.438s-.932.334-2.243.923a19.603 19.603 0 00-2.129 1.121l-.11.069c.136.335.247.682.331 1.039l.104-.022c1.048-.236 1.761-.445 1.761-.445a.845.845 0 01.238 1.673s-.744-.002-1.817.062l-.107.008a7.155 7.155 0 01-.044 1.231l.126.038a18.911 18.911 0 002.345.532c1.42.23 2.406.31 2.406.31a1.409 1.409 0 01-.729 2.72c0 .002-.895-.42-2.239-.931a19.291 19.291 0 00-2.297-.712l-.126-.03c-.143.336-.312.66-.503.967l.09.059c.908.573 1.56.931 1.56.931a.846.846 0 01-1.016 1.351s-.523-.527-1.328-1.24l-.081-.071a7.219 7.219 0 01-.901.84l.062.115a19.314 19.314 0 001.283 2.035 34.82 34.82 0 001.48 1.921 1.408 1.408 0 01-2.439 1.408s-.333-.931-.923-2.243a19.603 19.603 0 00-1.12-2.128l-.07-.11a7.059 7.059 0 01-1.038.33l.021.104c.237 1.048.445 1.761.445 1.761a.845.845 0 01-1.673.238s.002-.744-.062-1.816l-.008-.107a7.155 7.155 0 01-1.231-.044l-.037.125a18.911 18.911 0 00-.532 2.346c-.23 1.42-.311 2.405-.311 2.405a1.409 1.409 0 01-2.72-.729c-.001 0 .421-.894.932-2.239a19.291 19.291 0 00.712-2.297l.03-.126a7.153 7.153 0 01-.968-.502l-.058.09c-.574.908-.932 1.56-.932 1.56a.846.846 0 01-1.35-1.016s.526-.524 1.24-1.329l.07-.08a7.219 7.219 0 01-.839-.902l-.116.062a19.314 19.314 0 00-2.035 1.283c-1.166.842-1.92 1.48-1.92 1.48a1.408 1.408 0 01-1.409-2.439s.932-.333 2.243-.922a19.603 19.603 0 002.129-1.121l.11-.07a7.059 7.059 0 01-.331-1.038l-.104.022c-1.048.236-1.76.445-1.76.445a.845.845 0 01-.239-1.674s.744.003 1.817-.062l.107-.007a7.155 7.155 0 01.044-1.231l-.125-.038a18.911 18.911 0 00-2.346-.532 34.266 34.266 0 00-2.406-.31 1.409 1.409 0 01.729-2.72c0-.002.895.42 2.239.931a19.291 19.291 0 002.297.712l.126.03c.144-.336.313-.66.503-.967l-.09-.059c-.908-.573-1.56-.932-1.56-.932a.846.846 0 011.016-1.35s.524.527 1.328 1.24l.081.071c.276-.305.578-.586.901-.84l-.061-.115a19.314 19.314 0 00-1.284-2.035c-.841-1.166-1.48-1.921-1.48-1.921a1.408 1.408 0 012.439-1.409s.334.932.923 2.244a19.603 19.603 0 001.12 2.128l.07.11a7.059 7.059 0 011.038-.33l-.021-.104c-.237-1.048-.445-1.761-.445-1.761a.845.845 0 011.673-.238s-.002.743.062 1.816l.008.107a7.155 7.155 0 011.231.044zm-3.537 7.567a1.809 1.809 0 010 3.615 1.808 1.808 0 010-3.615zm5.476-3.194a2.254 2.254 0 11-2.252 2.253 2.254 2.254 0 012.252-2.253zm-5.067-1.482a1.202 1.202 0 110 2.405 1.202 1.202 0 010-2.405zM11.793 50.242l1.761.958c.061.034.106.09.125.158a.262.262 0 01-.026.2c-.663 1.191-.12 2.684.122 2.944-1.347 2.65-5.186 6.26-9.254 6.6a.275.275 0 01-.256-.407c.87-1.58 5.41-9.839 6.076-11.05a.171.171 0 01.23-.068l.49.267L5.576 59.93s1.25-.56 1.383-.802l4.834-8.886zm1.502-2.76l2.808 1.528a.577.577 0 01.23.78l-.718 1.323a.577.577 0 01-.78.23l-2.81-1.528 1.27-2.334zm6.464-11.884l3.331.05a.574.574 0 01.497.851c-1.237 2.264-4.67 8.549-6.423 11.768a.575.575 0 01-.781.23l-2.81-1.528 6.186-11.371zm-8.465 13.82l-.134-.073a.579.579 0 01-.23-.78l.72-1.324a.576.576 0 01.78-.23l.134.072-1.27 2.335zm1.549-2.847l-.132-.07a.577.577 0 01-.23-.783l5.407-9.842a.578.578 0 01.514-.299l.417.006-5.976 10.988zM46.984 7.98s.147 3.67.147 7.342c0 3.673-.147 7.343-.147 7.343a1 1 0 002 0s-.146-3.67-.146-7.343c0-3.672.146-7.342.146-7.342a1 1 0 00-2 0z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 3.6 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M13.549 12.928c-1.676 2.251-9.623 12.936-9.541 13.01.092.083.4.329.488.244.203-.17.898-.755 1.694-1.701.202-.239.415-.497.63-.777.303-.395.613-.831.936-1.286 1.163-1.634 2.447-3.555 3.609-5.226a568.052 568.052 0 012.727-3.893c.692.474 1.299.933 1.84 1.374-1.27 1.57-2.642 3.243-3.882 4.892-3.2 4.255-5.808 8.139-5.808 8.139-.615.829-1.837 1.038-2.728.466-.892-.573-1.115-1.711-.5-2.54 0 0 2.973-3.65 6.11-7.945 1.254-1.715 2.482-3.561 3.637-5.267l.788.51zm6.551 3.6c-1.422-1.561-3.412-3.463-7.21-5.673l2.828-4.558L12.42 4.81c4-2.647 8.641.352 12.688 3.611a8.312 8.312 0 002.129 1.241c.788.317 1.682.673 1.682.673s-2.809 6.881-6.394 8.813c-.64-.578-1.213-1.258-1.9-2.035 1.714-1.543 5.035-5.717 4.927-8.072-1.037 2.987-2.891 5.46-5.45 7.487z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 916 B

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M14.984-24.02s.147 3.67.147 7.342c0 3.673-.147 7.343-.147 7.343a1 1 0 002 0s-.146-3.67-.146-7.343c0-3.672.146-7.342.146-7.342a1 1 0 00-2 0zM10.726 17.79l-.03-.025a.66.66 0 01-.107-.696l.976-2.72a.713.713 0 01.141-.217l-.512-.583-.585-.695-.301-.375-.091.008s-.337-.142-.872-.267a6.578 6.578 0 00-.87-.143 5.102 5.102 0 00-.522-.014c-.665.006-1.217.056-1.217.056a.661.661 0 01-.525-1.07l1.501-2.182a34.413 34.413 0 01-2.153-3.89 1.096 1.096 0 01-.285-.932c.04-.284.18-.563.51-.777a1.062 1.062 0 011.377.216c.153.02.44.336.77.51.693.367 1.662.869 2.807 1.537.136.006.435.007.828-.032.272-.027.567-.074.87-.147.171-.04.338-.099.498-.155.628-.22 1.133-.448 1.133-.448a.661.661 0 01.844.842l-.622 2.22c.719.511 1.46 1.072 2.208 1.69a6.682 6.682 0 001.695-.064c.174-.03.344-.076.507-.122.642-.178 1.16-.368 1.16-.368a.66.66 0 01.785.896l-.93 2.622c.724.751 1.436 1.558 2.126 2.424a6.593 6.593 0 001.39.28c.175.017.352.016.52.013.666-.008 1.218-.06 1.218-.06a.661.661 0 01.529 1.067l-1.35 1.978a31.973 31.973 0 012.53 5.05.904.904 0 01-1.214 1.157 37.475 37.475 0 01-4.714-2.545 23.232 23.232 0 00-.948-2.723l-.103-.24c.29.215.586.427.886.633l.677.388c.097.067.182.147.248.24.797.52 1.615 1.01 2.455 1.471a30.225 30.225 0 00-2.925-4.7l-.382-.43a1.015 1.015 0 01-.138-.242 30.971 30.971 0 00-1.33-1.558c-3.612-3.962-7.63-6.395-10.3-7.82a37.652 37.652 0 004.169 5.856l-.04.056a.962.962 0 00-.05.092s-.783 1.639-1.7 3.697l-.542 1.241zm6.01 4.242l.084.215a.615.615 0 01-.084-.215zm-2.147-7.649l.35.364-.147-.018a1.058 1.058 0 00-.396.065l.193-.411z" fill="#fff"/><path d="M15.734 13.308a1.06 1.06 0 00-1.81 0s-.778 1.628-1.688 3.672c-.527 1.181-1.101 2.492-1.558 3.724-.498 1.341-.874 2.588-.877 3.504a5.039 5.039 0 001.442 3.584 5.09 5.09 0 003.585 1.54 5.133 5.133 0 003.664-1.461 5.19 5.19 0 001.576-3.663c.023-1.18-.515-2.931-1.245-4.698-1.267-3.069-3.089-6.202-3.089-6.202zm-.974 2.479c-.27.404-.577.879-.895 1.402a30.373 30.373 0 00-1.596 2.946c-.701 1.516-1.205 3.04-1.208 4.073a3.723 3.723 0 001.135 2.632 3.675 3.675 0 002.632 1.038 3.627 3.627 0 002.555-1.116 3.574 3.574 0 001.001-2.554c-.018-1.01-.58-2.473-1.262-3.958-.76-1.661-1.698-3.334-2.362-4.463z" fill="#fff"/><path d="M14.829 13.858s-4.397 7.246-4.397 10.35a4.4 4.4 0 004.397 4.398 4.4 4.4 0 004.397-4.398c0-3.104-4.397-10.35-4.397-10.35zm.13 12.476c-1.345 0-2.225-1.12-2.225-2.465a.794.794 0 00-1.589 0c0 2.254 1.561 4.054 3.814 4.054a.794.794 0 000-1.589z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10"><path d="M14.652 19.178c.341.353.82.572 1.348.572.528 0 1.006-.22 1.347-.572l.75.433a5.337 5.337 0 002.185 6.835 5.338 5.338 0 006.443-.852l.8.46a7.202 7.202 0 01-9.029 1.51A7.153 7.153 0 0116 25.159a7.164 7.164 0 01-2.497 2.407 7.202 7.202 0 01-9.029-1.51.46.46 0 01.8-.461h0a5.338 5.338 0 006.443.852 5.337 5.337 0 002.185-6.835l.75-.433zm12.073 6.416a.46.46 0 01.8.461l-.8-.461zM16.58 14.856a5.337 5.337 0 004.797-5.307 5.338 5.338 0 00-3.959-5.154v-.923a7.2 7.2 0 015.821 7.064 7.147 7.147 0 01-.968 3.604 7.168 7.168 0 013.422.962 7.203 7.203 0 013.207 8.574.461.461 0 01-.63.166.46.46 0 01-.17-.628h0a5.339 5.339 0 00-2.484-6.006 5.337 5.337 0 00-6.925 1.408l-.834-.482a1.877 1.877 0 00-1.277-2.042v-1.236zM3.9 23.214a.46.46 0 01-.17.628.46.46 0 01-.629-.166l.8-.462zm9.41-4.598a5.337 5.337 0 00-6.926-1.408A5.339 5.339 0 003.9 23.214l-.799.462a7.202 7.202 0 013.206-8.574 7.157 7.157 0 013.508-.963A7.2 7.2 0 0114.67 3.472a.46.46 0 010 .923h0a5.338 5.338 0 00-3.959 5.154 5.336 5.336 0 004.71 5.297v1.246a1.877 1.877 0 00-1.277 2.042l-.834.482zm4.107-14.221a.46.46 0 010-.923v.923z" fill="#fff" stroke="#fff" stroke-width=".5"/><path d="M7.656 18.26a3.795 3.795 0 012.206-.178 6.086 6.086 0 002.861 4.835 3.783 3.783 0 01-1.213 1.848 8.315 8.315 0 01-3.854-6.505zm14.42-.163a3.786 3.786 0 012.209.139 8.32 8.32 0 01-3.822 6.507 3.787 3.787 0 01-1.195-1.858 6.079 6.079 0 002.808-4.788zm-9.799-7.834a8.256 8.256 0 013.692-.864c1.38 0 2.681.336 3.826.932a3.79 3.79 0 01-1.059 1.941 6.012 6.012 0 00-2.767-.666 5.98 5.98 0 00-2.666.618 3.802 3.802 0 01-1.026-1.961zM-10.245 50.308l7.278 6.013c.237.197.347.51.283.812 0 0-.38 1.737-1.127 2.752-.43.584-.982.942-1.586.962-.413.014-.877-.118-1.372-.535-1.193-1.009-3.883-3.812-5.647-5.679l-.523.618s-13.19-9.37-14.382-11.834c-2.842-5.876.655-8.752.655-8.752l16.42 15.643zm-15.59-12.978c-.005-.004-.003-.004-.008.003l.01.01c.022.139-.002 1.22 1.448 3.026 2.07 2.576 6.595 6.533 12.623 10.297l-14.071-13.323-.002-.013zm7.978 16.176c-2.219 2.134-3.937 3.778-4.075 3.893-2.128 1.778-3.12 2.6-4.956 1.428-2.293-1.465-1.834-5.083.125-6.971l.219-.213-.012.45a40.478 40.478 0 00-.072 2.62c0 .515.343.917.768.905.428-.01.781-.433.795-.947l.07-2.563c.047-.725.116-1.45.22-2.171l1.029-.992 1.223.984c-.01.376-.013.754-.013 1.13.002.513.344.915.77.903.392-.01.722-.367.783-.825l.818.629c.298.228.597.456.897.683l1.411 1.057zm5.676-15.72l.008-.009c1.959-1.888 5.137-1.884 6.97.125 1.26 1.38.201 2.982-2.067 5.346-.356.373-1.961 1.935-3.987 3.895l-5.152-4.909.07-.438 2.242-2.162-.037 1.367a40.478 40.478 0 00-.072 2.62c0 .514.343.917.769.905.426-.012.78-.435.793-.949l.072-2.561a26.07 26.07 0 01.391-3.23zm.838 15.575c1.724 1.831 4.446 4.675 5.641 5.685.095.08.168.144.247.145.095.002.152-.094.223-.174.122-.142.229-.315.324-.498a6.96 6.96 0 00.484-1.254l-6.019-4.973-.9 1.069z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 2.9 KiB

View file

@ -1 +0,0 @@
<svg viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2"><path d="M42.001-28.127a1.56 1.56 0 00-1.494.863l-4.71 9.968c-.2.405-.185.883.04 1.274 0 0 1.587 2.605 3.11 5.25 1.522 2.644 2.979 5.325 2.979 5.325.228.395.639.649 1.094.678l10.99.869a1.538 1.538 0 001.473-.85l4.738-9.956a1.353 1.353 0 00-.04-1.28s-1.598-2.6-3.127-5.24c-1.53-2.641-2.99-5.32-2.99-5.32a1.34 1.34 0 00-1.075-.667l-10.988-.914zm10.13 3.557l-9.302-.4-4.297 8.256c.527.955 1.563 2.818 2.63 4.662a277.167 277.167 0 002.73 4.597l9.302.44 4.277-8.277a264.188 264.188 0 00-2.614-4.667 255.043 255.043 0 00-2.726-4.611zm-4.203 9.474l-.006-.118c0-.76.618-1.377 1.377-1.377h2.657a1.377 1.377 0 010 2.755h-1.28v1.32h1.28a1.378 1.378 0 010 2.754H49.3l-.141-.008-.137-.02-.133-.034-.02-.008a1.375 1.375 0 01-.947-1.308v-3.837l.006-.12zm-4.102-3.75h-.542a1.378 1.378 0 010-2.753h3.838a1.378 1.378 0 010 2.754h-.542v2.963a1.378 1.378 0 01-2.754 0v-2.963zM4.384 15.33c.058.173.163.329.303.448 11.431 9.674 22.633-.007 22.633-.007a.996.996 0 00.296-.441s1.485-4.532-.785-8.16C25.353 4.81 22.283 2.728 16 2.728c-6.283 0-9.353 2.081-10.831 4.442-2.27 3.628-.785 8.16-.785 8.16zm21.412-.897c.237-.882.846-3.794-.661-6.202C23.901 6.258 21.252 4.728 16 4.728S8.099 6.258 6.865 8.23c-1.51 2.414-.895 5.335-.659 6.21 9.162 7.525 18.098 1.162 19.59-.008zM28.076 18.534a1 1 0 00-1.457-1.283c-1.845 1.282-2.505 1.587-2.505 1.587a1 1 0 00-.579 1.072l1.05 6.486a1 1 0 001.987-.197c-.099-2.693.263-5.28 1.504-7.665zM23.283 29.365a1 1 0 00.982-1.19l-1.087-5.607a.999.999 0 00-1.97.038l-.863 5.607a1.001 1.001 0 00.988 1.152h1.95zM5.587 17.448a1 1 0 00-1.439 1.317c1.32 2.313 1.797 4.837 1.492 7.556a1 1 0 001.98.272l1.05-6.486a.999.999 0 00-.578-1.072s-.66-.305-2.505-1.587zM7.95 28.175a.998.998 0 00.983 1.19h1.95a1 1 0 00.988-1.152l-.864-5.607a1 1 0 00-1.97-.038l-1.086 5.607z" fill="#fff"/><path d="M14.847 21.232a.998.998 0 00-.994-1.103h-1.04a1 1 0 00-.996 1.082l.46 5.607a1 1 0 001.991.02l.58-5.606zM14.511 28.255a.75.75 0 00.742.86h1.494a.748.748 0 00.745-.838l-.661-5.607a.75.75 0 00-1.487-.022l-.833 5.607zM20.408 21.232a.998.998 0 00-.994-1.103h-1.04a1 1 0 00-.996 1.082l.46 5.607a1 1 0 001.991.02l.58-5.606zM8.428 12.073s-.177-1.764 1.29-3.182C10.792 7.85 12.693 7.035 16 7.035a.75.75 0 000-1.5c-3.872 0-6.067 1.06-7.325 2.277-2.032 1.965-1.737 4.428-1.737 4.428a.75.75 0 101.49-.167z" fill="#fff"/><g><path d="M39.906 9.59c.293-3.12 2.411-5.878 5.147-6.546 3.62-.883 6.813.782 8.206 3.757 1.734.153 3.289.476 4.39.877 1.825.664 3.096 2.121 3.385 3.467.287 1.345-.227 3.594-2.357 5.251-2.033 1.582-5.11 3.904-10.735 4.685-3.934.545-7.657.16-10.079-.72-1.825-.665-2.602-2.185-2.89-3.53-.288-1.346.124-3.522 2.371-5.41a19.03 19.03 0 012.562-1.83zm7.186-4.866a4.295 4.295 0 00-1.226.09c-2.652.567-4.101 3.15-3.444 6.225.162.754.827 1.222 1.728 1.452a.74.74 0 00.248.122c.97.298 3.958.606 6.673-.72-3.737 1.952-10.019 2.722-10.953.313-.487.32-.937.649-1.35.978-.998.794-1.805 2.096-1.605 3.037.202.941 1.105 1.611 2.382 2.076 2.231.812 5.58.913 9.159.147 3.58-.766 6.592-2.23 8.296-3.884.975-.946 1.523-1.928 1.321-2.87-.2-.94-1.103-1.611-2.38-2.076a10.673 10.673 0 00-2.11-.509c-.118.72-.682 1.41-1.522 2.024.274-.615-.632-6.176-5.203-6.406h-.014z" fill="#fff"/></g></svg>

Before

Width:  |  Height:  |  Size: 3.2 KiB

View file

@ -1,64 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 580 260" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g transform="matrix(1,0,0,1,-551,0)">
<g id="type" transform="matrix(1.08584,0,0,1.04219,551.714,-303.717)">
<rect x="0" y="291.618" width="533.452" height="248.494" style="fill:none;"/>
<g transform="matrix(0.698871,0,0,0.728145,5.21739,54.2528)">
<g transform="matrix(158.131,0,0,158.131,24.7618,449.92)">
<path d="M0.008,-0.6L0.123,-0.6L0.123,0L0.233,0L0.233,-0.6L0.348,-0.6L0.348,-0.7L0.008,-0.7L0.008,-0.6Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(158.131,0,0,158.131,81.0564,449.92)">
<path d="M0.205,-0.29L0.255,-0.29L0.255,-0.161C0.255,-0.111 0.233,-0.093 0.198,-0.093C0.163,-0.093 0.141,-0.111 0.141,-0.161L0.141,-0.539C0.141,-0.589 0.163,-0.608 0.198,-0.608C0.233,-0.608 0.255,-0.589 0.255,-0.539L0.255,-0.464L0.359,-0.464L0.359,-0.532C0.359,-0.644 0.303,-0.708 0.195,-0.708C0.087,-0.708 0.031,-0.644 0.031,-0.532L0.031,-0.168C0.031,-0.056 0.087,0.008 0.195,0.008C0.303,0.008 0.359,-0.056 0.359,-0.168L0.359,-0.39L0.205,-0.39L0.205,-0.29Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(158.131,0,0,158.131,142.727,449.92)">
<path d="M0.185,-0.705C0.084,-0.704 0.041,-0.634 0.041,-0.532C0.041,-0.339 0.309,-0.345 0.309,-0.168C0.309,-0.083 0.276,-0.016 0.184,-0.016C0.092,-0.016 0.059,-0.083 0.059,-0.168L0.059,-0.203L0.038,-0.203L0.038,-0.169C0.038,-0.072 0.078,0.005 0.184,0.005C0.291,0.005 0.331,-0.072 0.331,-0.169C0.331,-0.359 0.063,-0.354 0.063,-0.533C0.063,-0.616 0.094,-0.685 0.186,-0.685C0.277,-0.685 0.308,-0.615 0.308,-0.532L0.308,-0.518L0.33,-0.518L0.33,-0.531C0.33,-0.627 0.291,-0.705 0.185,-0.705Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(158.131,0,0,158.131,201.078,449.92)">
<path d="M0.193,0L0.193,-0.679L0.346,-0.679L0.346,-0.7L0.019,-0.7L0.019,-0.679L0.171,-0.679L0.171,0L0.193,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(158.131,0,0,158.131,253.103,449.92)">
<path d="M0.347,-0.165L0.388,0L0.41,0L0.237,-0.701L0.206,-0.701L0.037,0L0.057,0L0.098,-0.165L0.347,-0.165ZM0.221,-0.675L0.343,-0.185L0.102,-0.185L0.221,-0.675Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(158.131,0,0,158.131,317.778,449.92)">
<path d="M0.193,0L0.193,-0.679L0.346,-0.679L0.346,-0.7L0.019,-0.7L0.019,-0.679L0.171,-0.679L0.171,0L0.193,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(158.131,0,0,158.131,375.812,449.92)">
<rect x="0.04" y="-0.7" width="0.022" height="0.7" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(158.131,0,0,158.131,391.941,449.92)">
<path d="M0.039,-0.172C0.039,-0.074 0.081,0.005 0.187,0.005C0.295,0.005 0.337,-0.074 0.337,-0.172L0.337,-0.528C0.337,-0.626 0.295,-0.705 0.187,-0.705C0.081,-0.705 0.039,-0.626 0.039,-0.528L0.039,-0.172ZM0.061,-0.529C0.061,-0.615 0.094,-0.685 0.187,-0.685C0.281,-0.685 0.315,-0.615 0.315,-0.529L0.315,-0.171C0.315,-0.085 0.281,-0.015 0.187,-0.015C0.094,-0.015 0.061,-0.085 0.061,-0.171L0.061,-0.529Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(158.131,0,0,158.131,451.398,449.92)">
<path d="M0.061,-0.668L0.311,0L0.338,0L0.338,-0.7L0.317,-0.7L0.317,-0.045L0.071,-0.7L0.04,-0.7L0.04,0L0.061,0L0.061,-0.668Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</g>
<g transform="matrix(1.5056,0,0,1.56867,-81.8441,-250.157)">
<g transform="matrix(97.8684,0,0,97.8684,65.99,495.372)">
<path d="M0.15,-0.3L0.275,-0.3L0.275,0L0.387,0L0.387,-0.7L0.275,-0.7L0.275,-0.4L0.15,-0.4L0.15,-0.7L0.04,-0.7L0.04,0L0.15,0L0.15,-0.3Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(97.8684,0,0,97.8684,107.78,495.372)">
<path d="M0.284,-0.7L0.123,-0.7L0.011,0L0.112,0L0.131,-0.127L0.266,-0.127L0.285,0L0.396,0L0.284,-0.7ZM0.198,-0.576L0.251,-0.222L0.145,-0.222L0.198,-0.576Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(97.8684,0,0,97.8684,147.612,495.372)">
<path d="M0.275,0L0.388,0L0.388,-0.7L0.29,-0.7L0.29,-0.281L0.177,-0.7L0.039,-0.7L0.039,0L0.138,0L0.138,-0.507L0.275,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(97.8684,0,0,97.8684,189.402,495.372)">
<path d="M0.04,0L0.214,0C0.324,0 0.378,-0.061 0.378,-0.173L0.378,-0.527C0.378,-0.639 0.324,-0.7 0.214,-0.7L0.04,-0.7L0.04,0ZM0.212,-0.6C0.247,-0.6 0.268,-0.582 0.268,-0.532L0.268,-0.168C0.268,-0.118 0.247,-0.1 0.212,-0.1L0.15,-0.1L0.15,-0.6L0.212,-0.6Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(97.8684,0,0,97.8684,229.332,495.372)">
<path d="M0.206,-0.7L0.04,-0.7L0.04,0L0.213,0C0.323,0 0.38,-0.058 0.38,-0.166L0.38,-0.223C0.38,-0.297 0.357,-0.35 0.298,-0.373C0.347,-0.396 0.369,-0.442 0.369,-0.514L0.369,-0.539C0.369,-0.647 0.32,-0.7 0.206,-0.7L0.206,-0.7ZM0.199,-0.315C0.249,-0.315 0.27,-0.295 0.27,-0.23L0.27,-0.169C0.27,-0.117 0.25,-0.1 0.213,-0.1L0.15,-0.1L0.15,-0.315L0.199,-0.315ZM0.203,-0.6C0.242,-0.6 0.259,-0.578 0.259,-0.528L0.259,-0.489C0.259,-0.433 0.234,-0.415 0.193,-0.415L0.15,-0.415L0.15,-0.6L0.203,-0.6Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(97.8684,0,0,97.8684,269.067,495.372)">
<path d="M0.141,-0.539C0.141,-0.589 0.163,-0.608 0.198,-0.608C0.233,-0.608 0.255,-0.589 0.255,-0.539L0.255,-0.161C0.255,-0.111 0.233,-0.092 0.198,-0.092C0.163,-0.092 0.141,-0.111 0.141,-0.161L0.141,-0.539ZM0.031,-0.168C0.031,-0.056 0.09,0.008 0.198,0.008C0.306,0.008 0.365,-0.056 0.365,-0.168L0.365,-0.532C0.365,-0.644 0.306,-0.708 0.198,-0.708C0.09,-0.708 0.031,-0.644 0.031,-0.532L0.031,-0.168Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(97.8684,0,0,97.8684,307.823,495.372)">
<path d="M0.141,-0.539C0.141,-0.589 0.163,-0.608 0.198,-0.608C0.233,-0.608 0.255,-0.589 0.255,-0.539L0.255,-0.161C0.255,-0.111 0.233,-0.092 0.198,-0.092C0.163,-0.092 0.141,-0.111 0.141,-0.161L0.141,-0.539ZM0.031,-0.168C0.031,-0.056 0.09,0.008 0.198,0.008C0.306,0.008 0.365,-0.056 0.365,-0.168L0.365,-0.532C0.365,-0.644 0.306,-0.708 0.198,-0.708C0.09,-0.708 0.031,-0.644 0.031,-0.532L0.031,-0.168Z" style="fill:white;fill-rule:nonzero;"/>
</g>
<g transform="matrix(97.8684,0,0,97.8684,346.579,495.372)">
<path d="M0.291,0L0.404,0L0.251,-0.388L0.404,-0.7L0.294,-0.7L0.15,-0.395L0.15,-0.7L0.04,-0.7L0.04,0L0.15,0L0.15,-0.215L0.184,-0.279L0.291,0Z" style="fill:white;fill-rule:nonzero;"/>
</g>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Binary file not shown.

View file

@ -35,10 +35,22 @@
href="assets/fonts/iosevka/iosevka-aile.css"
as="style"
/>
<link
rel="preload"
href="assets/fonts/iosevka/woff2/iosevka-aile-regular.woff2"
as="font"
/>
<link rel="preload" href="style/main.scss" as="style" />
<link rel="preload" href="style/bgus.scss" as="style" />
<link rel="preload" href="src/index.ts" as="script" />
<link rel="stylesheet" href="assets/fonts/iosevka/iosevka-aile.css" />
<link
rel="stylesheet"
href="assets/fonts/iosevka/iosevka-aile.css"
media="async"
onload="this.media='all'"
/>
<link rel="stylesheet" href="style/main.scss" />
<link rel="stylesheet" href="style/bgus.scss" />
<title>/tg/station Handbook</title>
</head>
<body>
@ -46,102 +58,8 @@
<img src="./assets/images/bg-nanotrasen.svg" />
</div>
<main id="app">
<nav id="section-list"></nav>
<nav id="tab-list"></nav>
<section id="tabs">
<div class="page special center" id="Welcome" data-tab="$Welcome">
<div class="wrapper">
<header>
<img class="icon" src="assets/images/outline.svg" />
<img class="type" src="assets/images/type.svg" />
</header>
<div class="maxw">
<p>
This handbook is a collection of tweaks of the /tg/station wiki
pages to make them prettier and easier to navigate.
</p>
<p>Please note that:</p>
<ul>
<li>
It's being built with smaller windows in mind (think SS13
popups), large window format is planned but it's just not
there yet.
</li>
<li>
There is a lot of development still happening, so many parts
are not as polished as they should be.
</li>
</ul>
<p>
You can click any of the top icons to jump to that guide, or
check out any of these about this handbook:
</p>
<div class="action_buttons"></div>
</div>
<div class="features hidden" data-name="Extra features">
<h2>
Extra Features
</h2>
<div class="maxw">
<h3 class="nobg">Jump to section/item</h3>
<p>
Press <b>SHIFT+S</b> on any page (except this one) to open up
a quick search menu.
</p>
<p>
Results for most pages are section titles, but some pages like
Chemistry have support for searching recipes etc.
</p>
<div class="images">
<img
src="assets/images/welcome/bs-local.png"
style="width: 40%;"
/>
<img
src="assets/images/welcome/bs-global.png"
style="width: 40%;"
/>
</div>
<p>
By default, only results for the current page are shown, you
can use <code>@</code> as prefix to search in all guides at
once.
</p>
<h3 class="nobg">(Chemistry) Auto-Expanded tooltips</h3>
<p>
Recipes for reagent ingredients are now always shown in each
recipe rather than being tooltips.
</p>
<h3 class="nobg">(Chemistry) Beaker sizing</h3>
<p>
Press <b>SHIFT+B</b> to set your target reagent output and the
inputs will change from "part" to "ml". This is currently
quite inaccurate, use it as a guideline but apply common
sense.
</p>
</div>
</div>
<div class="credits hidden" data-name="Other infos">
<h2>
Other Informations
</h2>
<p>
Thanks to /tg/station and every wiki contributor who did most of
the work!
</p>
<p>
This thing is Open Source:
<a href="https://git.fromouter.space/hamcha/tghandbook"
>git.fromouter.space/hamcha/tghandbook</a
>
</p>
<p>
/tg/station handbook revision: <span id="tgh-version"></span>
</p>
</div>
</div>
</div>
</section>
<section id="tabs"></section>
</main>
<noscript>
<h1>NO JS NO PARTY</h1>

View file

@ -18,7 +18,6 @@
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-import": "2.21.2",
"eslint-plugin-prettier": "^3.1.4",
"idb-keyval": "^3.2.0",
"parcel-bundler": "^1.12.4",
"parcel-plugin-sw-cache": "^0.3.1",
"prettier": "^2.0.5",

104
src/TabManager.ts Normal file
View file

@ -0,0 +1,104 @@
// @ts-expect-error: Asset imports are handled by parcel
import speen from "~/assets/images/speen.svg";
import { getPageHTML } from "./wiki";
import userscript from "./userscript";
import { nextAnimationFrame } from "./utils";
function initWaiting(elem: HTMLElement) {
// Add spinner
const spinnerContainer = document.createElement("div");
spinnerContainer.className = "speen";
const spinnerImg = document.createElement("img");
spinnerImg.src = speen;
spinnerContainer.appendChild(spinnerImg);
const spinnerText = document.createElement("p");
spinnerText.appendChild(
document.createTextNode("You start skimming through the manual...")
);
spinnerContainer.appendChild(spinnerText);
elem.appendChild(spinnerContainer);
}
async function loadPage(page: string, elem: HTMLElement) {
// Fetch page content
console.log(`${page}: fetching`);
let html = await getPageHTML(page);
// Convert relative links to absolute
html = html.replace(/"\/wiki/gi, '"//tgstation13.org/wiki');
// Set as HTML content and run HTML manipulations on it
await nextAnimationFrame();
elem.innerHTML = html;
await nextAnimationFrame();
await userscript(elem, page);
elem.classList.remove("waiting");
}
type TabElements = { tabListItem: HTMLElement; tabContentItem: HTMLElement };
export default class TabManager {
tabListContainer: HTMLElement;
tabContentContainer: HTMLElement;
tabs: Record<string, TabElements> = {};
constructor(tablist: HTMLElement, tabcontent: HTMLElement) {
this.tabListContainer = tablist;
this.tabContentContainer = tabcontent;
}
async openTab(page: string, setActive: boolean): void {
// Create tab list item
const tabListItem = document.createElement("div");
tabListItem.className = "tab";
tabListItem.dataset.tab = page;
tabListItem.addEventListener("click", () => {
if (tabListItem.classList.contains("active")) {
return;
}
this.setActive(page);
});
tabListItem.appendChild(document.createTextNode(page.replace(/_/gi, " ")));
this.tabListContainer.appendChild(tabListItem);
// Create tab content container
const tabContentItem = document.createElement("div");
tabContentItem.className = "page waiting";
tabContentItem.dataset.tab = page;
initWaiting(tabContentItem);
this.tabContentContainer.appendChild(tabContentItem);
// Start loading page for new tab
await loadPage(page, tabContentItem);
// Create tab entry
this.tabs[page] = { tabListItem, tabContentItem };
// If asked for, set it to active
if (setActive) {
this.setActive(page);
}
}
setActive(page: string): void {
// Make sure tab exists (why wouldn't it?!)
if (!(page in this.tabs)) {
throw new Error("tab not found");
}
// Deactivate current active tab
this.tabListContainer
.querySelectorAll(".active")
.forEach((it) => it.classList.remove("active"));
this.tabContentContainer
.querySelectorAll(".active")
.forEach((it) => it.classList.remove("active"));
// Activate new tab
const { tabListItem, tabContentItem } = this.tabs[page];
tabListItem.classList.add("active");
tabContentItem.classList.add("active");
}
}

View file

@ -1,110 +0,0 @@
/* eslint-disable no-shadow */
interface CacheEntry<T> {
version: string;
value: T;
}
export class Store {
readonly dbp: Promise<IDBDatabase>;
constructor(dbName = "tg-cache", readonly storeName = "keyval") {
this.dbp = new Promise((resolve, reject) => {
const openreq = indexedDB.open(dbName, 1);
openreq.onerror = () => reject(openreq.error);
openreq.onsuccess = () => resolve(openreq.result);
// First time setup: create an empty object store
openreq.onupgradeneeded = () => {
openreq.result.createObjectStore(storeName);
};
});
}
withIDBStore(
type: IDBTransactionMode,
callback: (store: IDBObjectStore) => void
): Promise<void> {
return this.dbp.then(
(db) =>
new Promise<void>((resolve, reject) => {
const transaction = db.transaction(this.storeName, type);
transaction.oncomplete = () => resolve();
transaction.onabort = () => reject(transaction.error);
transaction.onerror = () => reject(transaction.error);
callback(transaction.objectStore(this.storeName));
})
);
}
}
let defaultStore: Store;
function getDefaultStore() {
if (!defaultStore) defaultStore = new Store();
return defaultStore;
}
export function get<Type>(
key: IDBValidKey,
store = getDefaultStore()
): Promise<CacheEntry<Type>> {
let req: IDBRequest;
return store
.withIDBStore("readonly", (store) => {
req = store.get(key);
})
.then(() => req.result);
}
export function set<Type>(
key: IDBValidKey,
value: Type,
version: string,
store = getDefaultStore()
): Promise<void> {
return store.withIDBStore("readwrite", (store) => {
store.put({ version, value }, key);
});
}
export function del(
key: IDBValidKey,
store = getDefaultStore()
): Promise<void> {
return store.withIDBStore("readwrite", (store) => {
store.delete(key);
});
}
export function clear(store = getDefaultStore()): Promise<void> {
return store.withIDBStore("readwrite", (store) => {
store.clear();
});
}
export function keys(store = getDefaultStore()): Promise<IDBValidKey[]> {
const dbkeys: IDBValidKey[] = [];
return store
.withIDBStore("readonly", (store) => {
// This would be store.getAllKeys(), but it isn't supported by Edge or Safari.
// And openKeyCursor isn't supported by Safari.
(store.openKeyCursor || store.openCursor).call(
store
).onsuccess = function () {
if (!this.result) return;
dbkeys.push(this.result.key);
this.result.continue();
};
})
.then(() => dbkeys);
}
export default {
get,
set,
keys,
del,
clear,
};

View file

@ -1,162 +1,4 @@
/* https://developer.mozilla.org/en-US/docs/Web/CSS/color_value
$$('#colors_table tbody tr')
.map((row) => {
const [name, hex] = Array.from(row.children).slice(-3);
return [name.innerText.trim().replace(/\s.+/g, ''), hex.innerText.trim()];
}).sort((a, b) => [a[0], b[0]].sort()[0] === a[0] ? -1 : 1)
.map(([name, hex]) => `${name} : '${hex}',`)
.join('\n')
*/
const namedColors = {
aliceblue: "#f0f8ff",
antiquewhite: "#faebd7",
aqua: "#00ffff",
aquamarine: "#7fffd4",
azure: "#f0ffff",
beige: "#f5f5dc",
bisque: "#ffe4c4",
black: "#000000",
blanchedalmond: "#ffebcd",
blue: "#0000ff",
blueviolet: "#8a2be2",
brown: "#a52a2a",
burlywood: "#deb887",
cadetblue: "#5f9ea0",
chartreuse: "#7fff00",
chocolate: "#d2691e",
coral: "#ff7f50",
cornflowerblue: "#6495ed",
cornsilk: "#fff8dc",
crimson: "#dc143c",
cyan: "#00ffff",
darkblue: "#00008b",
darkcyan: "#008b8b",
darkgoldenrod: "#b8860b",
darkgray: "#a9a9a9",
darkgreen: "#006400",
darkgrey: "#a9a9a9",
darkkhaki: "#bdb76b",
darkmagenta: "#8b008b",
darkolivegreen: "#556b2f",
darkorange: "#ff8c00",
darkorchid: "#9932cc",
darkred: "#8b0000",
darksalmon: "#e9967a",
darkseagreen: "#8fbc8f",
darkslateblue: "#483d8b",
darkslategray: "#2f4f4f",
darkslategrey: "#2f4f4f",
darkturquoise: "#00ced1",
darkviolet: "#9400d3",
deeppink: "#ff1493",
deepskyblue: "#00bfff",
dimgray: "#696969",
dimgrey: "#696969",
dodgerblue: "#1e90ff",
firebrick: "#b22222",
floralwhite: "#fffaf0",
forestgreen: "#228b22",
fuchsia: "#ff00ff",
gainsboro: "#dcdcdc",
ghostwhite: "#f8f8ff",
gold: "#ffd700",
goldenrod: "#daa520",
gray: "#808080",
green: "#008000",
greenyellow: "#adff2f",
grey: "#808080",
honeydew: "#f0fff0",
hotpink: "#ff69b4",
indianred: "#cd5c5c",
indigo: "#4b0082",
ivory: "#fffff0",
khaki: "#f0e68c",
lavender: "#e6e6fa",
lavenderblush: "#fff0f5",
lawngreen: "#7cfc00",
lemonchiffon: "#fffacd",
lightblue: "#add8e6",
lightcoral: "#f08080",
lightcyan: "#e0ffff",
lightgoldenrodyellow: "#fafad2",
lightgray: "#d3d3d3",
lightgreen: "#90ee90",
lightgrey: "#d3d3d3",
lightpink: "#ffb6c1",
lightsalmon: "#ffa07a",
lightseagreen: "#20b2aa",
lightskyblue: "#87cefa",
lightslategray: "#778899",
lightslategrey: "#778899",
lightsteelblue: "#b0c4de",
lightyellow: "#ffffe0",
lime: "#00ff00",
limegreen: "#32cd32",
linen: "#faf0e6",
magenta: "#ff00ff",
maroon: "#800000",
mediumaquamarine: "#66cdaa",
mediumblue: "#0000cd",
mediumorchid: "#ba55d3",
mediumpurple: "#9370db",
mediumseagreen: "#3cb371",
mediumslateblue: "#7b68ee",
mediumspringgreen: "#00fa9a",
mediumturquoise: "#48d1cc",
mediumvioletred: "#c71585",
midnightblue: "#191970",
mintcream: "#f5fffa",
mistyrose: "#ffe4e1",
moccasin: "#ffe4b5",
navajowhite: "#ffdead",
navy: "#000080",
oldlace: "#fdf5e6",
olive: "#808000",
olivedrab: "#6b8e23",
orange: "#ffa500",
orangered: "#ff4500",
orchid: "#da70d6",
palegoldenrod: "#eee8aa",
palegreen: "#98fb98",
paleturquoise: "#afeeee",
palevioletred: "#db7093",
papayawhip: "#ffefd5",
peachpuff: "#ffdab9",
peru: "#cd853f",
pink: "#ffc0cb",
plum: "#dda0dd",
powderblue: "#b0e0e6",
purple: "#800080",
rebeccapurple: "#663399",
red: "#ff0000",
rosybrown: "#bc8f8f",
royalblue: "#4169e1",
saddlebrown: "#8b4513",
salmon: "#fa8072",
sandybrown: "#f4a460",
seagreen: "#2e8b57",
seashell: "#fff5ee",
sienna: "#a0522d",
silver: "#c0c0c0",
skyblue: "#87ceeb",
slateblue: "#6a5acd",
slategray: "#708090",
slategrey: "#708090",
snow: "#fffafa",
springgreen: "#00ff7f",
steelblue: "#4682b4",
tan: "#d2b48c",
teal: "#008080",
thistle: "#d8bfd8",
tomato: "#ff6347",
turquoise: "#40e0d0",
violet: "#ee82ee",
wheat: "#f5deb3",
white: "#ffffff",
whitesmoke: "#f5f5f5",
yellow: "#ffff00",
yellowgreen: "#9acd32",
};
import { nextAnimationFrame } from "./utils";
interface ColorRGB {
r: number;
@ -175,6 +17,166 @@ export enum ColorFmt {
HEX, // #RRGGBB
}
/* https://developer.mozilla.org/en-US/docs/Web/CSS/color_value
$$('#colors_table tbody tr')
.map((row) => {
const [name, hex] = Array.from(row.children).slice(-3);
return [name.innerText.trim().replace(/\s.+/g, ''), hex.innerText.trim()];
}).sort((a, b) => [a[0], b[0]].sort()[0] === a[0] ? -1 : 1)
.map(([name, hex]) => `${name} : '${hex}',`)
.join('\n')
*/
const namedColors = {
aliceblue : '#f0f8ff',
antiquewhite : '#faebd7',
aqua : '#00ffff',
aquamarine : '#7fffd4',
azure : '#f0ffff',
beige : '#f5f5dc',
bisque : '#ffe4c4',
black : '#000000',
blanchedalmond : '#ffebcd',
blue : '#0000ff',
blueviolet : '#8a2be2',
brown : '#a52a2a',
burlywood : '#deb887',
cadetblue : '#5f9ea0',
chartreuse : '#7fff00',
chocolate : '#d2691e',
coral : '#ff7f50',
cornflowerblue : '#6495ed',
cornsilk : '#fff8dc',
crimson : '#dc143c',
cyan : '#00ffff',
darkblue : '#00008b',
darkcyan : '#008b8b',
darkgoldenrod : '#b8860b',
darkgray : '#a9a9a9',
darkgreen : '#006400',
darkgrey : '#a9a9a9',
darkkhaki : '#bdb76b',
darkmagenta : '#8b008b',
darkolivegreen : '#556b2f',
darkorange : '#ff8c00',
darkorchid : '#9932cc',
darkred : '#8b0000',
darksalmon : '#e9967a',
darkseagreen : '#8fbc8f',
darkslateblue : '#483d8b',
darkslategray : '#2f4f4f',
darkslategrey : '#2f4f4f',
darkturquoise : '#00ced1',
darkviolet : '#9400d3',
deeppink : '#ff1493',
deepskyblue : '#00bfff',
dimgray : '#696969',
dimgrey : '#696969',
dodgerblue : '#1e90ff',
firebrick : '#b22222',
floralwhite : '#fffaf0',
forestgreen : '#228b22',
fuchsia : '#ff00ff',
gainsboro : '#dcdcdc',
ghostwhite : '#f8f8ff',
gold : '#ffd700',
goldenrod : '#daa520',
gray : '#808080',
green : '#008000',
greenyellow : '#adff2f',
grey : '#808080',
honeydew : '#f0fff0',
hotpink : '#ff69b4',
indianred : '#cd5c5c',
indigo : '#4b0082',
ivory : '#fffff0',
khaki : '#f0e68c',
lavender : '#e6e6fa',
lavenderblush : '#fff0f5',
lawngreen : '#7cfc00',
lemonchiffon : '#fffacd',
lightblue : '#add8e6',
lightcoral : '#f08080',
lightcyan : '#e0ffff',
lightgoldenrodyellow : '#fafad2',
lightgray : '#d3d3d3',
lightgreen : '#90ee90',
lightgrey : '#d3d3d3',
lightpink : '#ffb6c1',
lightsalmon : '#ffa07a',
lightseagreen : '#20b2aa',
lightskyblue : '#87cefa',
lightslategray : '#778899',
lightslategrey : '#778899',
lightsteelblue : '#b0c4de',
lightyellow : '#ffffe0',
lime : '#00ff00',
limegreen : '#32cd32',
linen : '#faf0e6',
magenta : '#ff00ff',
maroon : '#800000',
mediumaquamarine : '#66cdaa',
mediumblue : '#0000cd',
mediumorchid : '#ba55d3',
mediumpurple : '#9370db',
mediumseagreen : '#3cb371',
mediumslateblue : '#7b68ee',
mediumspringgreen : '#00fa9a',
mediumturquoise : '#48d1cc',
mediumvioletred : '#c71585',
midnightblue : '#191970',
mintcream : '#f5fffa',
mistyrose : '#ffe4e1',
moccasin : '#ffe4b5',
navajowhite : '#ffdead',
navy : '#000080',
oldlace : '#fdf5e6',
olive : '#808000',
olivedrab : '#6b8e23',
orange : '#ffa500',
orangered : '#ff4500',
orchid : '#da70d6',
palegoldenrod : '#eee8aa',
palegreen : '#98fb98',
paleturquoise : '#afeeee',
palevioletred : '#db7093',
papayawhip : '#ffefd5',
peachpuff : '#ffdab9',
peru : '#cd853f',
pink : '#ffc0cb',
plum : '#dda0dd',
powderblue : '#b0e0e6',
purple : '#800080',
rebeccapurple : '#663399',
red : '#ff0000',
rosybrown : '#bc8f8f',
royalblue : '#4169e1',
saddlebrown : '#8b4513',
salmon : '#fa8072',
sandybrown : '#f4a460',
seagreen : '#2e8b57',
seashell : '#fff5ee',
sienna : '#a0522d',
silver : '#c0c0c0',
skyblue : '#87ceeb',
slateblue : '#6a5acd',
slategray : '#708090',
slategrey : '#708090',
snow : '#fffafa',
springgreen : '#00ff7f',
steelblue : '#4682b4',
tan : '#d2b48c',
teal : '#008080',
thistle : '#d8bfd8',
tomato : '#ff6347',
turquoise : '#40e0d0',
violet : '#ee82ee',
wheat : '#f5deb3',
white : '#ffffff',
whitesmoke : '#f5f5f5',
yellow : '#ffff00',
yellowgreen : '#9acd32',
}
function hsvToRgb({ h, s, v }: ColorHSV): ColorRGB {
const i = Math.floor(h * 6);
const f = h * 6 - i;
@ -232,22 +234,30 @@ function rgbToHsv({ r, g, b }: ColorRGB): ColorHSV {
}
// Hacky way to get RGB values FOR SURE!
function nameToRGB(name: string): ColorRGB {
if (namedColors[name]) {
const nameToRGB = function self(name: string): ColorRGB {
if ( namedColors[name] ) {
return parseColor(namedColors[name]);
}
// Create fake div
const fakeDiv = document.createElement("div");
fakeDiv.style.color = name;
document.body.appendChild(fakeDiv);
self.fakeDiv = self.fakeDiv || (() => {
const tmp = document.createElement("div");
Object.assign(tmp.style, {
position: 'fixed';
height: 0;
width: 0;
top: -99;
left: -99;
});
document.body.appendChild(tmp);
return tmp;
})();
self.fakeDiv.style.color = name;
// Get color of div
const cs = window.getComputedStyle(fakeDiv);
const pv = cs.getPropertyValue("color");
// Remove div after obtaining desired color value
document.body.removeChild(fakeDiv);
const cs = window.getComputedStyle(self.fakeDiv);
const pv = cs.color; //TODO slow
return parseColor(pv);
}
@ -259,7 +269,7 @@ function parseColor(input: string): ColorRGB {
if (input[0] === "#") {
const collen = (input.length - 1) / 3;
const fact = [17, 1, 0.062272][collen - 1];
return {
return { //TODO refactor with substring
r: Math.round(parseInt(input.substr(1, collen), 16) * fact) / 256,
g:
Math.round(parseInt(input.substr(1 + collen, collen), 16) * fact) / 256,

View file

@ -1,78 +1,18 @@
import TabManager from "./ui/TabManager";
import sections from "./ui/sections";
import { nextAnimationFrame } from "./utils";
import { searchBox } from "./scripts/search";
import TabManager from "./TabManager";
// @ts-expect-error: Parcel image import
import unknown from "~/assets/images/tab-icons/unknown.svg";
import { bindFunctions } from "./scripts/index";
const tabListContainer = document.getElementById("tab-list");
const tabContentContainer = document.getElementById("tabs");
const manager = new TabManager(tabListContainer, tabContentContainer);
// Enable single page mode for developing scripts
// const devSinglePage = ["Medical", "Guide_to_chemistry"];
const devSinglePage = null;
const defaultTabs = [
{ page: "Guide_to_chemistry", active: true },
{ page: "Guide_to_medicine", active: false },
];
async function load() {
const sectionListContainer = document.getElementById("section-list");
const tabListContainer = document.getElementById("tab-list");
const tabContentContainer = document.getElementById("tabs");
const manager = new TabManager(
sectionListContainer,
tabListContainer,
tabContentContainer
);
manager.setLoading(true);
defaultTabs.forEach((tab) => {
manager.openTab(tab.page, tab.active);
});
await nextAnimationFrame();
// Add loading "bar"
const spinnerContainer = document.querySelector("#tabs > .speen");
const icons = document.createElement("div");
icons.className = "loading-icons";
let promises = [];
if (devSinglePage != null) {
manager.createSection(devSinglePage[0]);
promises = [manager.openTab(devSinglePage[0], devSinglePage[1], {})];
} else {
sections.forEach((section) =>
section.tabs.forEach((tab) => {
const iconElement = document.createElement("img");
iconElement.dataset.tab = tab.page;
iconElement.src = tab.icon || unknown;
iconElement.title = tab.page.replace(/_/gi, " ");
icons.appendChild(iconElement);
})
);
spinnerContainer.appendChild(icons);
promises = sections.flatMap((section) => {
manager.createSection(section.name);
return section.tabs.map(async (tab) => {
// Load page
await manager.openTab(section.name, tab.page, {
icon: tab.icon,
text: tab.text,
});
// Remove icon from loading
icons.removeChild(icons.querySelector(`img[data-tab=${tab.page}]`));
});
});
}
const welcome = document.getElementById("Welcome");
bindFunctions(welcome, "$Welcome");
Promise.all(promises).then(() => {
// Remove app-wide loading
manager.setLoading(false);
if (devSinglePage) {
manager.setActive(devSinglePage[1]);
} else {
manager.showSection("Medical");
welcome.classList.add("active");
}
});
}
if ("serviceWorker" in navigator) {
const x = process.env.SUBPATH ? `${process.env.SUBPATH}/sw.js` : "sw.js";
navigator.serviceWorker
@ -84,14 +24,3 @@ if ("serviceWorker" in navigator) {
console.log("Service worker registration failed, error:", error);
});
}
// Start loading pages
load();
// Add search box
document.body.appendChild(searchBox());
// Add revision info
document
.getElementById("tgh-version")
.appendChild(document.createTextNode(process.env.REVISION || "unknown"));

View file

@ -1,103 +0,0 @@
import { chemistryScript, processChemistry } from "./pages/chemistry";
import { processVirology, virologyScript } from "./pages/virology";
import { processFood, foodScript } from "./pages/food";
import { processDrinks, drinkScript } from "./pages/drinks";
import { genericScript } from "./pages/generic";
import { processGlobal } from "./pages/global";
import { welcomeScript } from "./pages/welcome";
// This is used for cache busting when userscript changes significantly.
// Only change it when you made changes to the processHTML part!
export const PAGE_VERSIONS = {
Infections: "fcebeda2fddb46d924f4538cd9c0daeb55aa4c9b",
Guide_to_food_and_drinks: "131e010df66ed689d31df53c3ca17ad16635a827",
Guide_to_chemistry: "5074d6180fc8b283bac00b99c6aa2325b797da6b",
$DEFAULT: "5074d6180fc8b283bac00b99c6aa2325b797da6b",
};
const MAX_WIDTH = 440;
export function processHTML(root: HTMLElement, docname: string): void {
try {
processGlobal(root, docname);
} catch (e) {
console.error(`Error processing page: ${docname}`);
}
try {
switch (docname) {
case "Guide_to_chemistry":
processChemistry(root);
break;
case "Infections":
processVirology(root);
break;
case "Guide_to_food":
processFood(root);
break;
case "Guide_to_drinks":
processDrinks(root);
break;
default:
}
} catch (e) {
console.error(`Error processing page: ${docname} (specific enhancements)`);
}
}
// eslint-disable-next-line @typescript-eslint/no-unused-vars
export function postProcessHTML(root: HTMLElement, docname: string): void {
// This should be noop unless we're testing changes before committing them to processHTML
document.querySelectorAll("img[width]").forEach((img) => {
const width = img.getAttribute("width");
// Don't care if they are not absolutely sized
if (width.includes("%")) {
return;
}
const widthI = parseInt(width, 10);
if (widthI > MAX_WIDTH) {
img.setAttribute("width", "100%");
img.removeAttribute("height"); // Remove any height so we don't have to deal with the crazy math
}
});
switch (docname) {
default:
}
}
export function bindFunctions(root: HTMLElement, docname: string): void {
switch (docname) {
case "Guide_to_chemistry":
genericScript(root, docname);
chemistryScript(root);
break;
case "Infections":
genericScript(root, docname);
virologyScript(root);
break;
case "$Welcome":
welcomeScript(root);
break;
case "Guide_to_food":
genericScript(root, docname);
foodScript(root);
break;
case "Guide_to_drinks":
genericScript(root, docname);
drinkScript(root);
break;
default:
genericScript(root, docname);
break;
}
}
export default {
PAGE_VERSIONS,
postProcessHTML,
processHTML,
bindFunctions,
};

View file

@ -1,308 +0,0 @@
import { registerSearchEntries } from "../search";
import { findParent } from "../utils";
export function processChemistry(root: HTMLElement): void {
// Fix inconsistencies with <p> on random parts
// Ideally I'd like a <p> or something on every part, wrapping it completely, but for now let's just kill 'em
root
.querySelectorAll(
"table.wikitable > tbody > tr:not(:first-child) > td:nth-child(2), .tooltiptext"
)
.forEach((td) => {
const tmp = td.cloneNode() as HTMLElement;
// The cast to Array is necessary because, while childNodes's NodeList technically has a forEach method, it's a live list and operations mess with its lenght in the middle of the loop.
// Nodes can only have one parent so append removes them from the original NodeList and shifts the following one back into the wrong index.
Array.from(td.childNodes).forEach((el) => {
if (el instanceof HTMLParagraphElement) {
tmp.append(...el.childNodes);
} else {
tmp.append(el);
}
});
td.parentNode.replaceChild(tmp, td);
});
// Enrich "x part" with checkboxes and parts
Array.from(root.querySelectorAll("td"))
.filter((el) => el.textContent.indexOf(" part") >= 0)
.forEach((el) => {
el.innerHTML = el.innerHTML.replace(
/((\d+)\s+(?:parts?|units?))(.*?(?:<\/a>|\n|$))/gi,
(match, ...m) =>
`<label class="bgus_part ${
m[2].includes("</a>") ? "bgus_part_tooltip" : ""
}" data-amount="${
m[1]
}"><input type="checkbox" class='bgus_checkbox bgus_hidden'/> <span class="bgus_part_label" data-src="${
m[0]
}">${m[0]}</span></label>${m[2].replace(
/(<a .+?<\/a>)/gi,
'<span class="bgus_nobreak bgus_nested_element">$1<span class="bgus_twistie"></span></span>'
)}`
);
});
// Wrap every recipe with extra metadata
root.querySelectorAll<HTMLElement>(".bgus_part").forEach((el) => {
if ("parts" in el.parentElement.dataset) {
el.parentElement.dataset.parts = (
parseInt(el.parentElement.dataset.parts, 10) +
parseInt(el.dataset.amount, 10)
).toString();
} else {
el.parentElement.dataset.parts = el.dataset.amount;
}
});
// Restructure recipes to work in a narrow window
root
.querySelectorAll<HTMLElement>("div[data-name] .wikitable.sortable tr")
.forEach((row) => {
const sectionEl = findParent(
row,
(sel) => "name" in sel.dataset && sel.dataset.name !== ""
);
const section = sectionEl.dataset.name;
if (row.querySelector("td") === null) {
// Remove unused rows if found
const headers = row.querySelectorAll("th");
headers.forEach((th, i) => {
if (i < 2) {
th.classList.add("table-head");
return;
}
th.parentElement.removeChild(th);
});
return;
}
const rows = Array.from(row.querySelectorAll("td")).slice(1);
let conditions: HTMLTableCellElement = null;
let explosive: HTMLTableCellElement = null;
let ph: HTMLTableCellElement = null;
let treatment: HTMLTableCellElement = null;
let desc: HTMLTableCellElement = null;
let metabolism: HTMLTableCellElement = null;
let overdose: HTMLTableCellElement = null;
let addiction: HTMLTableCellElement = null;
// Handle special cases
switch (section) {
case "Components":
[ph, desc] = rows;
break;
case "Virology Recipes":
[desc] = rows;
break;
case "Narcotics":
[ph, desc, metabolism, overdose, addiction] = rows;
break;
case "Other Reagents":
[ph, desc, metabolism] = rows;
break;
case "Explosive Strength":
[conditions, desc, explosive] = rows;
break;
case "Mutation Toxins":
[desc, metabolism] = rows;
break;
default:
// All fields
[ph, treatment, desc, metabolism, overdose, addiction] = rows;
}
const title = row.querySelector("th");
let content = `<div class="reagent-header">${title.innerHTML}</div>`;
if (treatment) {
content += `<p class="treatment">${treatment.innerHTML}</p>`;
}
if (metabolism) {
content += `<p class="metabolism">${metabolism.innerHTML}</p>`;
}
if (conditions) {
content += `<p class="conditions">${conditions.innerHTML}</p>`;
}
if (explosive) {
content += `<p class="explosive">${explosive.innerHTML}</p>`;
}
if (addiction && addiction.innerHTML.trim() !== "N/A") {
content += `<p class="addiction">${addiction.innerHTML}</p>`;
}
if (overdose && overdose.innerHTML.trim() !== "N/A") {
content += `<p class="overdose">${overdose.innerHTML}</p>`;
}
if (desc) {
content += `<p>${desc.innerHTML}</p>`;
}
if (ph) {
content += `<div class="ph">${ph.innerHTML}</div>`;
}
title.classList.add("reagent-ext");
title.innerHTML = content;
if (desc) desc.parentElement.removeChild(desc);
if (treatment) treatment.parentElement.removeChild(treatment);
if (metabolism) metabolism.parentElement.removeChild(metabolism);
if (conditions) conditions.parentElement.removeChild(conditions);
if (explosive) explosive.parentElement.removeChild(explosive);
if (overdose) overdose.parentElement.removeChild(overdose);
if (addiction) addiction.parentElement.removeChild(addiction);
if (ph) ph.parentElement.removeChild(ph);
});
}
export function chemistryScript(root: HTMLElement): void {
// Add event to autofill child checkboxes
root
.querySelectorAll(".bgus_part_tooltip > .bgus_checkbox")
.forEach((box: HTMLInputElement) => {
const tooltip = box.parentElement.nextElementSibling;
box.addEventListener("click", () => {
tooltip
.querySelectorAll(".bgus_checkbox")
.forEach((el: HTMLInputElement) => {
el.checked = box.checked;
});
});
});
// Add event to collapse subsections
root.querySelectorAll(".bgus_nested_element").forEach((twistie) => {
twistie.addEventListener("click", () => {
twistie.classList.toggle("bgus_collapsed");
});
});
const setPartSize = (labels, ml) => {
labels.forEach((el) => {
const part = el.parentElement.dataset.amount;
const total = el.parentElement.parentElement.dataset.parts;
const amt = Math.ceil(ml * (part / total));
el.innerHTML = `${amt} ml`;
// Lookup tooltips
let next = el.parentElement.nextElementSibling;
while (next) {
if (next.classList.contains("tooltip")) {
const sublabels = [];
next.querySelector(".tooltiptext").childNodes.forEach((ch) => {
if (ch.classList && ch.classList.contains("bgus_part")) {
sublabels.push(ch.querySelector(".bgus_part_label"));
}
});
setPartSize(sublabels, amt);
}
if (next.classList.contains("bgus_part")) {
// Done searching
break;
}
next = next.nextElementSibling;
}
});
};
// Init fuzzy search with elements
const el = Array.from(
root.querySelectorAll<HTMLElement>(
"table.wikitable > tbody > tr:not(:first-child)"
)
);
registerSearchEntries(
Array.from(root.querySelectorAll<HTMLElement>("table.wikitable > tbody > tr:not(:first-child) th .reagent-header")).map((element, id) => ({
page: "Guide_to_chemistry",
name: element
.textContent.trim()
.replace(/\n.+$/gm, "")
.replace("▮", ""),
element,
alignment: "center",
id,
}))
);
document.body.addEventListener("keydown", (ev) => {
if (ev.shiftKey) {
switch (ev.keyCode) {
// SHIFT+C = Toggle checkboxes
case 67: {
root.classList.toggle("bgus_cbox");
root
.querySelectorAll(".bgus_checkbox:checked")
.forEach((sel: HTMLInputElement) => {
sel.checked = false;
});
break;
}
// SHIFT+B = Set whole size (beaker?) for parts/units
case 66: {
const size = parseInt(
prompt("Write target ml (0 to reset)", "90"),
10
);
if (Number.isNaN(size) || size <= 0) {
// Reset to parts/unit
root
.querySelectorAll(".bgus_part_label")
.forEach((sel: HTMLElement) => {
sel.innerHTML = sel.dataset.src;
});
return;
}
setPartSize(
root.querySelectorAll("td > .bgus_part > .bgus_part_label"),
+size
);
break;
}
default:
// Do nothing
}
}
});
// Prettify reaction conditions
const reactionPropertyRegexp = /<b>(.+):<\/b>(.+)/i;
el.forEach((element, id) => {
element.querySelectorAll<HTMLElement>(".ph").forEach((ph) => {
// Prepare table
const extras = [];
const table = document.createElement("table");
const tableHeaderRow = document.createElement("tr");
const tableValueRow = document.createElement("tr");
table.appendChild(tableHeaderRow);
table.appendChild(tableValueRow);
// Parse parameters
ph.innerHTML.split("<br>").forEach((prop) => {
if (prop.trim() === "N/A") {
return;
}
const matcher = reactionPropertyRegexp.exec(prop);
if (!matcher) {
extras.push(prop);
return;
}
const [reactionProperty, propValue] = matcher
.slice(1)
.map((s) => s.trim());
const header = document.createElement("th");
header.appendChild(document.createTextNode(reactionProperty));
tableHeaderRow.appendChild(header);
const value = document.createElement("td");
value.appendChild(document.createTextNode(propValue));
tableValueRow.append(value);
});
// Clear and re-add prettified data
ph.innerHTML = "";
if (tableHeaderRow.children.length > 0) {
ph.appendChild(table);
}
ph.innerHTML += `<p>${extras.join("<br>")}</p>`;
ph.classList.add("ph-ext");
});
});
}
export default { chemistryScript, processChemistry };

View file

@ -1,50 +0,0 @@
import { parseTable, makeTable } from "../utils";
import { registerSearchEntries } from "../search";
export function processDrinks(root: HTMLElement): void {
const drinkTables = ["#Basic_Drink_Ingredients", "#Mixed_Drinks"];
drinkTables.forEach((selector) => {
const table = root.querySelector<HTMLElement>(`${selector} .wikitable`);
const drinks = parseTable(table).map((row) => {
const foodBlock = document.createElement("td");
foodBlock.innerHTML = `
<div class="food-pic">${row["Picture"].innerHTML}</div>
<div class="food-name">${row["Cocktail"].innerHTML}</div>
<p class="strength">${row["Strength"].innerHTML}</p>
<p class="description">${row["Drink Description"].innerHTML}</p>
<p class="notes">${row["Notes"].innerHTML}</p>
`;
const ingredients = row["Ingredients"].innerHTML
.split(/,|\+/gi)
.map((s) => `<p>${s.trim()}</p>`);
row["Ingredients"].innerHTML = ingredients.join("");
return { Drink: foodBlock, Ingredients: row["Ingredients"] };
});
const betterTable = makeTable(["Drink", "Ingredients"], drinks);
betterTable.className = "drink-ext wikitable";
table.replaceWith(betterTable);
});
}
export function drinkScript(root: HTMLElement): void {
// Init fuzzy search with elements
const foodEntries = Array.from(
root.querySelectorAll<HTMLElement>(
".drink-ext tr:not(:first-child), .food-base-ext tr:not(:first-child), .food-ext tr:not(:first-child)"
)
);
registerSearchEntries(
foodEntries.map((element, id) => ({
page: "Guide_to_drinks",
name: element.querySelector(".food-name").textContent.trim(),
element,
alignment: "center",
id,
}))
);
}
export default {
processDrinks,
drinkScript,
};

View file

@ -1,158 +0,0 @@
import { parseTable, makeTable } from "../utils";
import { registerSearchEntries } from "../search";
export function processFood(root: HTMLElement): void {
const baseFoodTables = [
{
selector: "#Butchering",
title: "Food name",
process: "How to acquire",
},
{
selector: "#Knife_\\.26_Rolling_Pin",
title: "Food name",
process: "How to acquire",
},
{
selector: "#Processor",
title: "Processes",
process: "Condiments",
},
{
selector: "#All-In-One-Grinder",
title: "Blends",
process: "How to acquire",
},
{
selector: "#Microwave_Oven",
title: "Cooked food",
process: "How to acquire",
},
{
selector: "#Junk_Food",
title: "Dispenses",
process: "Description",
},
{
selector: "#Other_food",
title: "Item",
process: "Description",
},
];
baseFoodTables.forEach(({ selector, title, process }) => {
const table = root.querySelector<HTMLElement>(`${selector} .wikitable`);
if (!table) return;
const foods = parseTable(table).map((row) => {
const foodBlock = document.createElement("td");
foodBlock.innerHTML = `<div class="food-block">
<div class="food-pic">${row["Picture"].innerHTML}</div>
<div class="food-name">${row[title].innerHTML}</div>
</div>
`;
const out = {};
out[title] = foodBlock;
out[process] = row[process];
return out;
});
const betterTable = makeTable([title, process], foods);
betterTable.className = "food-base-ext wikitable";
table.replaceWith(betterTable);
});
const customTable = root.querySelector<HTMLElement>(
`#Custom_Recipes .wikitable`
);
const customFood = parseTable(customTable).map((row) => {
row[
"Custom food"
].innerHTML = `<div class="food-name">${row["Custom food"].innerHTML}</div>`;
return row;
});
const betterCustomTable = makeTable(Object.keys(customFood[0]), customFood);
betterCustomTable.className = "food-base-ext wikitable";
customTable.replaceWith(betterCustomTable);
const recipeBookTable = root.querySelector<HTMLElement>(
`#Recipe_Books .wikitable`
);
const recipeBook = parseTable(recipeBookTable).map((row) => {
const bookBlock = document.createElement("td");
bookBlock.innerHTML = `<div class="food-pic">${row["Picture"].innerHTML}</div>
<div class="food-name">${row["Book"].innerHTML}</div>
<p class="unlocks">${row["Unlocks"].innerHTML}</p>
<p class="notes">${row["Notes"].innerHTML}</p>
`;
return { Book: bookBlock, "Where to get": row["Where to get"] };
});
const betterBookTable = makeTable(["Book", "Where to get"], recipeBook);
betterBookTable.className = "book-ext wikitable";
recipeBookTable.replaceWith(betterBookTable);
const foodRecipesTables = [
"#Burgers",
"#Breads",
"#Cakes",
"#Egg-Based_Food",
"#Snowcones",
"#Lizard_Cuisine",
"#Seafood",
"#Mexican",
"#Savory",
"#Waffles",
"#Pies",
"#Pizzas",
"#Salads",
"#Sandwiches",
"#Soups_\\.26_Stews",
"#Spaghettis",
"#Icecream_Vat",
];
foodRecipesTables.forEach((selector) => {
const table = root.querySelector<HTMLElement>(`${selector} .wikitable`);
if (!table) return;
const recipes = parseTable(table).map((row) => {
const foodBlock = document.createElement("td");
foodBlock.innerHTML = `
<div class="food-pic">${row["Picture"].innerHTML}</div>
<div class="food-name">${row["Recipe"].innerHTML}</div>
${
"Nutritional Value" in row
? `<p class="nutrition">${row["Nutritional Value"].innerHTML}</p>`
: ""
}
${"Notes" in row ? `<p class="notes">${row["Notes"].innerHTML}</p>` : ""}
`;
const ingredients = row["Ingredients"].innerHTML
.split(/,|\+/gi)
.map((s) => `<p>${s.trim()}</p>`);
row["Ingredients"].innerHTML = ingredients.join("");
return { Drink: foodBlock, Ingredients: row["Ingredients"] };
});
const betterTable = makeTable(["Drink", "Ingredients"], recipes);
betterTable.className = "recipe-ext wikitable";
table.replaceWith(betterTable);
});
}
export function foodScript(root: HTMLElement): void {
// Init fuzzy search with elements
const foodEntries = Array.from(
root.querySelectorAll<HTMLElement>(
".drink-ext tr:not(:first-child), .food-base-ext tr:not(:first-child), .food-ext tr:not(:first-child)"
)
);
registerSearchEntries(
foodEntries.map((element, id) => ({
page: "Guide_to_food",
name: element.querySelector(".food-name").textContent.trim(),
element,
alignment: "center",
id,
}))
);
}
export default {
processFood,
foodScript,
};

View file

@ -1,20 +0,0 @@
import { registerSearchEntries } from "../search";
export function genericScript(root: HTMLElement, docname: string): void {
const el = Array.from(
root.querySelectorAll<HTMLElement>(".mw-headline-cont[id][data-name]")
);
// Init fuzzy search with headlines
registerSearchEntries(
el.map((element: HTMLDivElement, id) => ({
id,
page: docname,
name: element.dataset.name.trim(),
element,
alignment: "start",
}))
);
}
export default { genericScript };

View file

@ -1,116 +0,0 @@
import { findParent } from "../utils";
import { darken, ColorFmt, lighten } from "../darkmode";
function isHeader(nodeName: string) {
return nodeName === "H1" || nodeName === "H2" || nodeName === "H3";
}
export function processGlobal(root: HTMLElement, docname: string): void {
// Add header
const header = document.createElement("h1");
header.className = "pageheader";
header.appendChild(document.createTextNode(docname.replace(/_/g, " ")));
root.insertBefore(header, root.firstChild);
// Lazy load all images
root
.querySelectorAll<HTMLImageElement>("img")
.forEach((elem) => elem.setAttribute("loading", "lazy"));
// Remove edit links
root.querySelectorAll(".mw-editsection").forEach((editLink) => {
editLink.parentElement.removeChild(editLink);
});
// Darken bgcolor
root.querySelectorAll("*[bgcolor]").forEach((td) => {
let bgcolor = td.getAttribute("bgcolor");
// Shitty way to detect if it's hex or not
// Basically, none of the css colors long 6 letters only use hex letters
// THANK FUCKING GOD
if (bgcolor.length === 6 && !Number.isNaN(parseInt(bgcolor, 16))) {
bgcolor = `#${bgcolor}`;
}
td.setAttribute("bgcolor", darken(bgcolor, ColorFmt.HEX).slice(1));
});
root.querySelectorAll<HTMLElement>("*[style]").forEach((td) => {
if (td.style.backgroundColor !== "") {
td.style.backgroundColor = darken(td.style.backgroundColor, ColorFmt.RGB);
}
if (td.style.background !== "") {
td.style.backgroundColor = darken(td.style.background, ColorFmt.RGB);
}
});
// Lighten fgcolors
root.querySelectorAll("*[color]").forEach((td) => {
let color = td.getAttribute("color");
if (color.length === 6 && !Number.isNaN(parseInt(color, 16))) {
color = `#${color}`;
}
td.setAttribute("color", lighten(color, ColorFmt.HEX).slice(1));
});
// Remove fixed widths
root.querySelectorAll("table[width]").forEach((td) => {
td.setAttribute("width", "100%");
});
root.querySelectorAll("table[style]").forEach((td: HTMLTableElement) => {
if (td.style.width !== "") {
td.style.width = "100%";
}
});
// Fixup spacing on top quotes
root
.querySelectorAll<HTMLImageElement>("table .floatright > a > img")
.forEach((img) => {
const row = findParent(img, (el) => el instanceof HTMLTableRowElement);
const td = document.createElement("td");
row.appendChild(td);
});
// Fuck #toctitle
const toc = root.querySelector("#toc");
if (toc) {
const tocHeader = toc.querySelector("h2");
toc.parentNode.insertBefore(tocHeader, toc);
const tocTitle = toc.querySelector("#toctitle")
if (tocTitle != null) {
toc.removeChild(tocTitle);
}
}
// Group headers and content so stickies don't overlap
root.querySelectorAll("h1,h2,h3").forEach((h3) => {
const parent = h3.parentNode;
const div = document.createElement("div");
parent.insertBefore(div, h3);
while (h3.nextSibling && !isHeader(h3.nextSibling.nodeName)) {
const sibling = h3.nextSibling;
parent.removeChild(sibling);
div.appendChild(sibling);
}
h3.parentNode.removeChild(h3);
div.insertBefore(h3, div.firstChild);
div.className = "mw-headline-cont";
});
// Move id from header to container, if one is found
root.querySelectorAll<HTMLElement>(".mw-headline").forEach((span) => {
// Find nearest container
const container = findParent(span, (el) =>
el.classList.contains("mw-headline-cont")
);
if (container && container.querySelectorAll<HTMLElement>(".mw-headline").length === 1) {
container.id = span.id;
span.id += "-span";
container.dataset.name = span.textContent;
} else {
span.dataset.name = span.textContent;
span.classList.add("mw-headline-cont");
}
});
}
export default { processGlobal };

View file

@ -1,104 +0,0 @@
import { parseTable, makeTable } from "../utils";
import { registerSearchEntries } from "../search";
export function processVirology(root: HTMLElement): void {
const diseaseTable = root.querySelector<HTMLElement>(
"#Simple_Diseases .wikitable"
);
const diseases = parseTable(diseaseTable).map((row) => {
const diseaseBlock = document.createElement("td");
diseaseBlock.innerHTML = `
<div class="disease-name">${row["Disease Name"].innerHTML}</div>
<p class="vector">${row["Vector Name"].innerHTML}</p>
<p class="source">${row["Source"].innerHTML}</p>
<p class="spread">${row["Spread"].innerHTML}</p>
<p class="description">${row["Description"].innerHTML}</p>
`;
return {
Disease: diseaseBlock,
Cure: row["Cure"],
};
});
const diseaseBetterTable = makeTable(["Disease", "Cure"], diseases);
diseaseBetterTable.className = "disease-ext wikitable";
diseaseTable.replaceWith(diseaseBetterTable);
const symptomsTable = root.querySelector<HTMLElement>(
"#Symptoms_Table .wikitable"
);
const symptoms = parseTable(symptomsTable)
.sort(
(a, b) =>
parseInt(a["Level"].textContent, 10) -
parseInt(b["Level"].textContent, 10)
)
.map((row) => {
const symptomBlock = document.createElement("td");
symptomBlock.innerHTML = `
<div class="disease-name">${row["Symptom"].innerHTML}</div>
<p class="level">${row["Level"].innerHTML}</p>
<p class="chemical">${row["Required Chemical"].innerHTML}</p>
<p class="description">${row["Effect"].innerHTML}</p>
`;
const symptomStats = document.createElement("td");
symptomStats.innerHTML = `
<table class="stats">
<tr><th>Stealth</th><td>${row["Stealth"].innerHTML}</td></tr>
<tr><th>Resistance</th><td>${row["Resistance"].innerHTML}</td></tr>
<tr><th>Stage speed</th><td>${row["Stage speed"].innerHTML}</td></tr>
<tr><th>Transmission</th><td>${row["Transmission"].innerHTML}</td></tr>
</table>
`;
const thresholds = row["Threshold (hover mouse over for details)"];
thresholds.innerHTML = `<ul class="thresholds"><li>${thresholds.innerHTML
.split(",")
.join("</li><li>")}</li></ul>`;
return {
Symptom: symptomBlock,
Stats: symptomStats,
Thresholds: thresholds,
};
});
const symptomsBetterTable = makeTable(
["Symptom", "Stats", "Thresholds"],
symptoms
);
symptomsBetterTable.className = "symptoms-ext wikitable";
symptomsTable.replaceWith(symptomsBetterTable);
}
export function virologyScript(root: HTMLElement): void {
// Init fuzzy search with elements
const diseases = Array.from(
root.querySelectorAll<HTMLElement>(".disease-ext tr:not(:first-child)")
);
registerSearchEntries(
diseases.map((element, id) => ({
page: "Infections",
name: element.querySelector(".disease-name").textContent.trim(),
element,
alignment: "center",
id,
}))
);
const symptoms = Array.from(
root.querySelectorAll<HTMLElement>(
".symptoms-ext > tbody > tr:not(:first-child)"
)
);
registerSearchEntries(
symptoms.map((element, id) => ({
page: "Infections",
name: element.querySelector(".disease-name").textContent.trim(),
element,
alignment: "center",
id,
}))
);
}
export default {
processVirology,
virologyScript,
};

View file

@ -1,37 +0,0 @@
import { nextAnimationFrame } from "../../utils";
function expandPage(root: HTMLElement) {
// Show all sections
root.querySelectorAll<HTMLElement>("div.hidden").forEach((div) => {
div.style.display = "block";
div.style.opacity = "1";
});
// Hide buttons
root.querySelector<HTMLElement>(".action_buttons").style.display = "none";
// Remove vertical centering
root.classList.remove("center");
}
export function welcomeScript(root: HTMLElement): void {
const buttonContainer = root.querySelector<HTMLElement>(".action_buttons");
root.querySelectorAll<HTMLDivElement>("div[data-name]").forEach((sec) => {
const { name } = sec.dataset;
const button = document.createElement("button");
button.className = "pretty-button";
button.appendChild(document.createTextNode(name));
button.addEventListener("click", async () => {
expandPage(root);
await nextAnimationFrame();
sec.scrollIntoView({
block: "start",
inline: "nearest",
behavior: "smooth",
});
});
buttonContainer.appendChild(button);
});
}
export default { welcomeScript };

View file

@ -1,87 +0,0 @@
/**
* Find closest parent that meets a specified condition
* @param base Element to start from
* @param matchFn Matching function, returns true if condition is met
*/
export function findParent(
base: HTMLElement,
matchFn: (candidate: HTMLElement) => boolean
): HTMLElement | null {
let parent = base.parentElement;
while (parent != null) {
if (matchFn(parent)) {
break;
}
parent = parent.parentElement;
}
return parent;
}
export type TableRowData = Record<string, HTMLElement>;
export type TableData = TableRowData[];
/**
* Parse a HTML table and return a dictionary of rows as dictionaries
* @param table Table element or any element from where you can query for "th" etc.
*/
export function parseTable(table: HTMLElement): TableData {
const [headerRow, ...valueRows] = Array.from(table.querySelectorAll("tr"));
const headers = Array.from(
headerRow.querySelectorAll<HTMLTableRowElement>("th")
).map((th) => th.textContent.trim());
return valueRows.map((tr) => {
const obj = {};
tr.querySelectorAll<HTMLElement>("td,th").forEach((val, i) => {
obj[headers[i]] = val;
});
return obj;
});
}
/**
* Make table from generated or mutated (from parseTable) table data
* @param headers List of strings to use as table headers, must be keys in object
* @param data Table row data
* @param decorator (Optional) decorator function to change table row elements
*/
export function makeTable(
headers: string[],
data: TableData,
decorator?: (data: TableRowData, tr: HTMLTableRowElement) => void
): HTMLTableElement {
const table = document.createElement("table");
if (data.length < 1) {
return table;
}
// Make header row
const headerRow = document.createElement("tr");
headers.forEach((head) => {
const headerCell = document.createElement("th");
headerCell.appendChild(document.createTextNode(head));
headerRow.appendChild(headerCell);
});
table.appendChild(headerRow);
// Make rows
data.forEach((row) => {
const tableRow = document.createElement("tr");
headers.forEach((key) => {
let cell = null;
if (row[key].tagName === "TD" || row[key].tagName === "TH") {
cell = row[key];
} else {
cell = document.createElement("td");
cell.appendChild(row[key]);
}
tableRow.appendChild(cell);
});
if (decorator) {
decorator(row, tableRow);
}
table.appendChild(tableRow);
});
return table;
}
export default { findParent, parseTable, makeTable };

View file

@ -1,51 +1,29 @@
import { nextAnimationFrame } from "../utils";
import TabManager from "../ui/TabManager";
interface SearchEntry {
page: string;
element: HTMLElement;
name: string;
id: number;
interface SearchOption {
alignment: ScrollLogicalPosition;
}
const allEntries: SearchEntry[] = [];
/**
* Add one or more entries to the global search database
* @param entries Search entries to add
*/
export function registerSearchEntries(entries: SearchEntry[]): void {
allEntries.push(...entries);
}
export function searchBox(): HTMLElement {
export function searchBox(
el: HTMLElement[],
searchCandidate,
options: SearchOption = {
alignment: "center",
}
): HTMLElement {
// Fuzzy search box
const resultList = document.createElement("ul");
const searchBoxElem = document.createElement("div");
let selectedResult = 0;
let selectedResult = null;
let results = [];
let global = false;
const jumpTo = (entry: SearchEntry) => {
// If page is different jump to that
if (global) {
const currentPage = document.querySelector<HTMLElement>(".page.active")
.dataset.tab;
if (currentPage !== entry.page) {
TabManager.instance.setActive(entry.page);
}
}
entry.element.scrollIntoView({
block: entry.alignment,
const jumpTo = (id: number) => {
el[id].scrollIntoView({
block: options.alignment,
inline: "nearest",
behavior: "auto",
});
document
.querySelectorAll(".bgus_fz_selected")
.querySelectorAll("table.wikitable .bgus_fz_selected")
.forEach((sel) => sel.classList.remove("bgus_fz_selected"));
entry.element.classList.add("bgus_fz_selected");
el[id].parentElement.classList.add("bgus_fz_selected");
};
const setSelectedResult = (i) => {
@ -54,39 +32,21 @@ export function searchBox(): HTMLElement {
.querySelectorAll(".selected")
.forEach((sel) => sel.classList.remove("selected"));
resultList.children[i].classList.add("selected");
jumpTo(results[i]);
jumpTo(results[i].id);
};
const search = async (str: string, currentPage: string) => {
if (!str || str.length < 1) {
const search = (str) => {
if (!str) {
return;
}
// Check for special flags
let entries: SearchEntry[] = allEntries;
global = str[0] === "@";
// Unless we're doing a global search don't show entries for other pages
if (!global) {
entries = allEntries.filter((e) => e.page === currentPage);
} else {
// Remove prefix from string
str = str.substr(1);
}
// Re-check string lenght after prefix removal
if (str.length < 1) {
return;
}
const combinations = str
.split("")
.map((c) => (["\\", "]", "^"].includes(c) ? `\\${c}` : c))
.map((c) => (c.includes(["\\", "]", "^"]) ? `\\${c}` : c))
.join("])(.*?)([");
const regex = new RegExp(`^(.*?)([${combinations}])(.*?)$`, "i");
results = entries
.map((o) => ({
...o,
matches: (o.name.match(regex) || [])
const arr = searchCandidate
.map((o) => {
o.matches = (o.str.match(regex) || [])
.slice(1)
.reduce((list, group, i, or) => {
// Initialize first placeholder (always empty) and first matching "sections"
@ -102,9 +62,10 @@ export function searchBox(): HTMLElement {
list.push([group]);
}
return list;
}, [] as string[][])
.map((cstr) => cstr.join("")),
}))
}, [])
.map((cstr) => cstr.join(""));
return o;
})
// Strike non-matching rows
.filter((o) => o.matches.length > 0)
.sort((oA, oB) => {
@ -135,27 +96,16 @@ export function searchBox(): HTMLElement {
// Make the search stable since ECMAScript doesn't mandate it
return iA - iB;
});
await nextAnimationFrame();
results = arr;
window.requestAnimationFrame(() => {
resultList.innerHTML = "";
results.forEach((elem) => {
arr.forEach(({ matches, id }) => {
const li = document.createElement("li");
elem.matches.forEach((match, i) => {
const cont = document.createElement(i % 2 ? "strong" : "span");
cont.appendChild(document.createTextNode(match));
li.appendChild(cont);
});
if (global) {
const source = document.createElement("span");
source.className = "source";
source.appendChild(
document.createTextNode(elem.page.replace(/_/g, " "))
);
li.appendChild(source);
}
li.innerHTML = matches
.map((c, i) => (i % 2 ? `<strong>${c}</strong>` : c))
.join("");
li.addEventListener("click", () => {
jumpTo(elem);
jumpTo(id);
searchBoxElem.classList.add("bgus_hidden");
});
resultList.appendChild(li);
@ -163,6 +113,7 @@ export function searchBox(): HTMLElement {
if (results.length > 0) {
setSelectedResult(0);
}
});
};
// Create fuzzy search box
@ -177,7 +128,7 @@ export function searchBox(): HTMLElement {
return;
case 13: // Enter - Jump to first result and hide bar
if (results.length > 0) {
jumpTo(results[selectedResult]);
jumpTo(results[selectedResult].id);
}
searchBoxElem.classList.add("bgus_hidden");
return;
@ -193,10 +144,7 @@ export function searchBox(): HTMLElement {
return;
default:
if (sel.value !== oldValue) {
const currentPage = document.querySelector<HTMLElement>(
".page.active"
);
search(sel.value, currentPage.dataset.tab);
search(sel.value);
oldValue = sel.value;
}
}
@ -230,4 +178,4 @@ export function searchBox(): HTMLElement {
return searchBoxElem;
}
export default { searchBox, registerSearchEntries };
export default searchBox;

View file

@ -1,314 +0,0 @@
// @ts-expect-error: Asset imports are handled by parcel
import speen from "~/assets/images/speen.svg";
import { getPageHTML } from "../wiki";
import {
processHTML,
bindFunctions,
PAGE_VERSIONS,
postProcessHTML,
} from "../scripts/index";
import cache from "../cache";
import { nextAnimationFrame, delay } from "../utils";
// @ts-expect-error: Parcel image import
import unknown from "~/assets/images/tab-icons/unknown.svg";
function initWaiting(elem: HTMLElement) {
// Add spinner
const spinnerContainer = document.createElement("div");
spinnerContainer.className = "speen";
const spinnerImg = document.createElement("img");
spinnerImg.src = speen;
spinnerContainer.appendChild(spinnerImg);
elem.appendChild(spinnerContainer);
}
async function loadPage(
page: string,
elem: HTMLElement,
useCache: boolean
): Promise<HTMLElement> {
let html: string | null = null;
const key = `page:${page}`;
const wrapper = document.createElement("div");
wrapper.className = "wrapper";
// Check cache for pre-processed page
if (useCache) {
try {
const cachedPage = await cache.get<string>(key);
if (cachedPage) {
// Get expected version
const expectedVersion =
page in PAGE_VERSIONS ? PAGE_VERSIONS[page] : PAGE_VERSIONS.$DEFAULT;
if (cachedPage.version === expectedVersion) {
console.log(`${page}: found cached entry`);
html = cachedPage.value;
} else {
console.log(`${page}: found outdated cache entry`);
}
}
} catch (e) {
console.log(`${page}: failed to retrieve cache entry:`, e);
}
}
// Fetch page content
if (!html) {
console.log(`${page}: fetching`);
let retries = 0;
while (retries < 5) {
try {
// eslint-disable-next-line no-await-in-loop
html = await getPageHTML(page);
break;
} catch (e) {
retries += 1;
// eslint-disable-next-line no-await-in-loop
await delay(1000);
}
}
// Convert relative links to absolute (and proxied)
html = html.replace(/"\/wiki/gi, '"//tgproxy.ovo.ovh/wiki');
await nextAnimationFrame();
// Set as HTML content and run HTML manipulations on it
wrapper.innerHTML = html;
console.log(`${page}: processing`);
processHTML(wrapper, page);
// Get version to set
const version =
page in PAGE_VERSIONS ? PAGE_VERSIONS[page] : PAGE_VERSIONS.$DEFAULT;
// Save result to cache
cache.set(key, wrapper.innerHTML, version).then(() => {
console.log(`${page}: saved to cache`);
});
} else {
// Set cached content as HTML
wrapper.innerHTML = html;
postProcessHTML(elem, page); // noop in prod, used in dev for testing candidate DOM changes
}
elem.innerHTML = wrapper.outerHTML;
bindFunctions(elem, page);
elem.classList.remove("waiting");
return elem;
}
type TabElements = {
tabListItem: HTMLElement;
tabContentItem: HTMLElement;
};
interface Section {
name: string;
element: HTMLElement;
tabs: Record<string, TabElements>;
}
export default class TabManager {
static instance: TabManager;
sectionListContainer: HTMLElement;
tabListContainer: HTMLElement;
tabContentContainer: HTMLElement;
sections: Record<string, Section> = {};
sectionMap: Record<string, string> = {};
loading = false;
cacheEnabled = true;
constructor(
sectionlist: HTMLElement,
tablist: HTMLElement,
tabcontent: HTMLElement
) {
this.sectionListContainer = sectionlist;
this.tabListContainer = tablist;
this.tabContentContainer = tabcontent;
TabManager.instance = this;
}
/**
* Set app-wide loading state
* @param value is app still loading?
*/
setLoading(value: boolean): void {
if (value) {
document.getElementById("app").classList.add("waiting");
initWaiting(this.tabContentContainer);
const spinnerContainer = this.tabContentContainer.querySelector(".speen");
spinnerContainer.appendChild(
document.createTextNode("Loading wiki pages")
);
} else {
document.getElementById("app").classList.remove("waiting");
const elem = this.tabContentContainer.querySelector(".speen");
this.tabContentContainer.removeChild(elem);
}
}
/**
* Create section and add it to the section list
* @param name Section name
*/
createSection(name: string): void {
// Create section element
const sectionItem = document.createElement("div");
sectionItem.className = "section";
sectionItem.dataset.section = name;
sectionItem.appendChild(document.createTextNode(name));
sectionItem.addEventListener("click", () => {
if (sectionItem.classList.contains("active")) {
return;
}
this.showSection(name);
});
this.sectionListContainer.appendChild(sectionItem);
this.sections[name] = { name, element: sectionItem, tabs: {} };
}
/**
* Show tabs of a specific section
* @param name Section name
*/
showSection(name: string): void {
const active = this.sectionListContainer.querySelector<HTMLElement>(
".active"
);
if (active) {
// De-activate current section
active.classList.remove("active");
// Hide all tabs
this.tabListContainer
.querySelectorAll(`div[data-section=${active.dataset.section}]`)
.forEach((tab) => tab.classList.add("hidden"));
}
// Set section as active
this.sections[name].element.classList.add("active");
// Show all tabs of that section
this.tabListContainer
.querySelectorAll(`div[data-section=${name}]`)
.forEach((tab) => tab.classList.remove("hidden"));
}
/**
* Open tab page and add it to the tab list
* @param section Section to add the tab button to
* @param page Page name
* @param icon Icon to show
* @param setActive Also set the tab as active
*/
async openTab(
section: string,
page: string,
options: {
icon?: string;
active?: boolean;
text?: string;
}
): Promise<void> {
const { icon, active, text } = options;
// Create tab list item
const tabListItem = document.createElement("div");
tabListItem.className = "tab";
tabListItem.dataset.section = section;
tabListItem.dataset.tab = page;
tabListItem.addEventListener("click", () => {
if (tabListItem.classList.contains("active")) {
return;
}
this.setActive(page);
});
const iconElement = document.createElement("img");
iconElement.src = icon || unknown;
tabListItem.title = page.replace(/_/gi, " ");
tabListItem.appendChild(iconElement);
const shortTitle = text || page.substr(page.lastIndexOf("_") + 1, 4);
tabListItem.appendChild(document.createTextNode(shortTitle));
this.tabListContainer.appendChild(tabListItem);
// Create tab content container
const tabContentItem = document.createElement("div");
tabContentItem.className = "page waiting";
tabContentItem.dataset.tab = page;
initWaiting(tabContentItem);
this.tabContentContainer.appendChild(tabContentItem);
// Create tab entry
this.sections[section].tabs[page] = { tabListItem, tabContentItem };
this.sectionMap[page] = section;
// Hide tab if section is hidden
if (!this.sections[section].element.classList.contains("active")) {
tabListItem.classList.add("hidden");
}
// Start loading page for new tab
const elem = await loadPage(page, tabContentItem, this.cacheEnabled);
// Since element can be replaced (when loading for the first time), make sure the reference is updated
if (elem !== tabContentItem) {
this.sections[section].tabs[page].tabContentItem = elem;
}
// If asked for, set it to active
if (active) {
this.setActive(page);
}
}
/**
* Set a specific page to be the active/visible one
* @param page Page name
*/
setActive(page: string): void {
// Make sure tab exists (why wouldn't it?!)
const section = this.sectionMap[page];
if (!(section in this.sections)) {
throw new Error("section not found");
}
if (!(page in this.sections[section].tabs)) {
throw new Error("tab not found");
}
// Deactivate current active tab
this.tabListContainer
.querySelectorAll(".active")
.forEach((it) => it.classList.remove("active"));
this.tabContentContainer
.querySelectorAll(".active")
.forEach((it) => it.classList.remove("active"));
// If section is not shown, show it!
const isSectionActive = this.sections[section].element.classList.contains(
"active"
);
if (!isSectionActive) {
this.showSection(section);
}
// Activate new tab
const { tabListItem, tabContentItem } = this.sections[section].tabs[page];
this.sections[section].element.classList.add("active");
tabListItem.classList.add("active");
tabContentItem.classList.add("active");
}
}

View file

@ -1,212 +0,0 @@
// @ts-expect-error: Parcel image import
import chemistry from "~/assets/images/tab-icons/chemistry.svg";
// @ts-expect-error: Parcel image import
import medicine from "~/assets/images/tab-icons/medicine.svg";
// @ts-expect-error: Parcel image import
import plumbing from "~/assets/images/tab-icons/plumbing.svg";
// @ts-expect-error: Parcel image import
import grenade from "~/assets/images/tab-icons/grenade.svg";
// @ts-expect-error: Parcel image import
import genetics from "~/assets/images/tab-icons/genetics.svg";
// @ts-expect-error: Parcel image import
import virus from "~/assets/images/tab-icons/virus.svg";
// @ts-expect-error: Parcel image import
import surgery from "~/assets/images/tab-icons/surgery.svg";
// @ts-expect-error: Parcel image import
import trauma from "~/assets/images/tab-icons/trauma.svg";
// @ts-expect-error: Parcel image import
import wound from "~/assets/images/tab-icons/wound.svg";
// @ts-expect-error: Parcel image import
import ghetto from "~/assets/images/tab-icons/ghetto.svg";
// @ts-expect-error: Parcel image import
import construction from "~/assets/images/tab-icons/construction.svg";
// @ts-expect-error: Parcel image import
import machines from "~/assets/images/tab-icons/machines.svg";
// @ts-expect-error: Parcel image import
import power from "~/assets/images/tab-icons/power.svg";
// @ts-expect-error: Parcel image import
import solar from "~/assets/images/tab-icons/solar.svg";
// @ts-expect-error: Parcel image import
import supermatter from "~/assets/images/tab-icons/supermatter.svg";
// @ts-expect-error: Parcel image import
import shield from "~/assets/images/tab-icons/shield.svg";
// @ts-expect-error: Parcel image import
import turbine from "~/assets/images/tab-icons/turbine.svg";
// @ts-expect-error: Parcel image import
import atmos from "~/assets/images/tab-icons/atmos.svg";
// @ts-expect-error: Parcel image import
import tcomm from "~/assets/images/tab-icons/tcomm.svg";
// @ts-expect-error: Parcel image import
import rnd from "~/assets/images/tab-icons/rnd.svg";
// @ts-expect-error: Parcel image import
import toxins from "~/assets/images/tab-icons/toxins.svg";
// @ts-expect-error: Parcel image import
import xeno from "~/assets/images/tab-icons/xeno.svg";
// @ts-expect-error: Parcel image import
import nanites from "~/assets/images/tab-icons/nanites.svg";
// @ts-expect-error: Parcel image import
import rules from "~/assets/images/tab-icons/rules.svg";
// @ts-expect-error: Parcel image import
import aimod from "~/assets/images/tab-icons/aimod.svg";
// @ts-expect-error: Parcel image import
import tips from "~/assets/images/tab-icons/tips.svg";
// @ts-expect-error: Parcel image import
import critter from "~/assets/images/tab-icons/critter.svg";
// @ts-expect-error: Parcel image import
import races from "~/assets/images/tab-icons/races.svg";
// @ts-expect-error: Parcel image import
import food from "~/assets/images/tab-icons/food.svg";
// @ts-expect-error: Parcel image import
import hydro from "~/assets/images/tab-icons/hydro.svg";
// @ts-expect-error: Parcel image import
import song from "~/assets/images/tab-icons/song.svg";
// @ts-expect-error: Parcel image import
import crate from "~/assets/images/tab-icons/crate.svg";
// @ts-expect-error: Parcel image import
import space from "~/assets/images/tab-icons/space.svg";
// @ts-expect-error: Parcel image import
import aux from "~/assets/images/tab-icons/auxbase.svg";
// @ts-expect-error: Parcel image import
import robo from "~/assets/images/tab-icons/robo.svg";
// @ts-expect-error: Parcel image import
import security from "~/assets/images/tab-icons/security.svg";
// @ts-expect-error: Parcel image import
import law from "~/assets/images/tab-icons/law.svg";
// @ts-expect-error: Parcel image import
import sop from "~/assets/images/tab-icons/sop.svg";
// @ts-expect-error: Parcel image import
import trial from "~/assets/images/tab-icons/trial.svg";
// @ts-expect-error: Parcel image import
import traitor from "~/assets/images/tab-icons/traitor.svg";
// @ts-expect-error: Parcel image import
import hacking from "~/assets/images/tab-icons/hacking.svg";
// @ts-expect-error: Parcel image import
import weapons from "~/assets/images/tab-icons/weapons.svg";
// @ts-expect-error: Parcel image import
import uplink from "~/assets/images/tab-icons/uplink.svg";
// @ts-expect-error: Parcel image import
import rev from "~/assets/images/tab-icons/rev.svg";
// @ts-expect-error: Parcel image import
import cult from "~/assets/images/tab-icons/cult.svg";
// @ts-expect-error: Parcel image import
import nuke from "~/assets/images/tab-icons/nuke.svg";
// @ts-expect-error: Parcel image import
import malf from "~/assets/images/tab-icons/malf.svg";
// @ts-expect-error: Parcel image import
import combat from "~/assets/images/tab-icons/combat.svg";
// @ts-expect-error: Parcel image import
import access from "~/assets/images/tab-icons/access.svg";
// @ts-expect-error: Parcel image import
import xmorph from "~/assets/images/tab-icons/xmorph.svg";
// @ts-expect-error: Parcel image import
import abduction from "~/assets/images/tab-icons/abduction.svg";
// @ts-expect-error: Parcel image import
import mafia from "~/assets/images/tab-icons/mafia.svg";
export interface SectionInfo {
name: string;
tabs: TabInfo[];
}
export interface TabInfo {
page: string;
icon: string | null;
text?: string;
}
const sections: SectionInfo[] = [
{
name: "Medical",
tabs: [
{ page: "Guide_to_medicine", icon: medicine },
{ page: "Guide_to_chemistry", icon: chemistry },
{ page: "Guide_to_plumbing", icon: plumbing },
{ page: "Grenade", text: "nade", icon: grenade },
{ page: "Infections", text: "virus", icon: virus },
{ page: "Surgery", icon: surgery },
{ page: "Guide_to_Traumas", text: "trauma", icon: trauma },
{ page: "Guide_to_Wounds", text: "wound", icon: wound },
{ page: "Guide_to_Ghetto_Chemistry", text: "ghetto", icon: ghetto },
],
},
{
name: "Engineering",
tabs: [
{ page: "Guide_to_construction", icon: construction },
{ page: "Machines", icon: machines },
{ page: "Guide_to_power", text: "power", icon: power },
{ page: "Solars", text: "solar", icon: solar },
{ page: "Guide_to_the_Supermatter", text: "smatt", icon: supermatter },
{
page: "Singularity_and_Tesla_engines",
text: "sing/tesl",
icon: shield,
},
{ page: "Gas_turbine", text: "GAST", icon: turbine },
{ page: "Guide_to_Atmospherics", text: "atmos", icon: atmos },
{ page: "Guide_to_Telecommunications", icon: tcomm, text: "tcomm" },
],
},
{
name: "Science",
tabs: [
{ page: "Guide_to_Research_and_Development", text: "R&D", icon: rnd },
{ page: "Guide_to_robotics", icon: robo },
{ page: "Guide_to_toxins", text: "toxin", icon: toxins },
{ page: "Guide_to_xenobiology", icon: xeno },
{ page: "Guide_to_genetics", icon: genetics },
{ page: "Guide_to_Nanites", text: "nanite", icon: nanites },
],
},
{
name: "Security",
tabs: [
{ page: "Guide_to_security", text: "security", icon: security },
{ page: "Space_Law", text: "space law", icon: law },
{ page: "Standard_Operating_Procedure", text: "S.O.P.", icon: sop },
{ page: "Guide_to_trials", text: "trials", icon: trial },
],
},
{
name: "Antag",
tabs: [
{ page: "Traitor", icon: traitor },
{ page: "Makeshift_weapons", icon: weapons },
{ page: "Hacking", icon: hacking },
{ page: "Guide_to_Combat", icon: combat },
{ page: "Syndicate_Items", text: "uplk", icon: uplink },
{ page: "Illicit_Access", icon: access },
{ page: "Revolutionary", text: "rev", icon: rev },
{ page: "Blood_Cult", text: "cult", icon: cult },
{ page: "Nuclear_Operative", text: "nuke", icon: nuke },
{ page: "Guide_to_malfunction", icon: malf },
{ page: "Xenos", text: "xmor", icon: xmorph },
{ page: "Abductor", icon: abduction },
{ page: "Families", icon: mafia },
{ page: "Heretic", icon: null },
],
},
{
name: "Other",
tabs: [
{ page: "Rules", text: "rules", icon: rules },
{ page: "AI_modules", text: "aimo", icon: aimod },
{
page: "Guide_to_Awesome_Miscellaneous_Stuff",
text: "misc",
icon: tips,
},
{ page: "Critters", icon: critter },
{ page: "Guide_to_races", icon: races },
{ page: "Guide_to_food", text: "food", icon: food },
{ page: "Guide_to_drinks", text: "drnk", icon: food },
{ page: "Guide_to_hydroponics", icon: hydro },
{ page: "Songs", icon: song },
{ page: "Supply_crates", icon: crate },
{ page: "Auxiliary_Base_Construction_Area", text: "aux", icon: aux },
{ page: "Guide_to_Space_Exploration", icon: space },
],
},
];
export default sections;

385
src/userscript.ts Normal file
View file

@ -0,0 +1,385 @@
import { darken, ColorFmt, lighten } from "./darkmode";
import searchBox from "./search";
import { nextAnimationFrame, findParent } from "./utils";
export default async function userscript(root: HTMLElement, docname: string): void {
root.querySelectorAll(".mw-editsection").forEach((editLink) => {
window.requestAnimationFrame(() => editLink.remove())
});
// Darken bgcolor
root.querySelectorAll("*[bgcolor]").forEach((td) => {
let bgcolor = td.getAttribute("bgcolor");
// Shitty way to detect if it's hex or not
// Basically, none of the css colors long 6 letters only use hex letters
// THANK FUCKING GOD
if (bgcolor.length === 6 && !Number.isNaN(parseInt(bgcolor, 16))) {
bgcolor = `#${bgcolor}`;
}
td.setAttribute("bgcolor", darken(bgcolor, ColorFmt.HEX).slice(1));
});
root.querySelectorAll<HTMLElement>("*[style]").forEach((td) => {
if (td.style.backgroundColor !== "") {
td.style.backgroundColor = darken(td.style.backgroundColor, ColorFmt.RGB);
}
if (td.style.background !== "") {
td.style.backgroundColor = darken(td.style.background, ColorFmt.RGB);
}
});
// Lighten fgcolors
root.querySelectorAll("*[color]").forEach((td) => {
let color = td.getAttribute("color");
if (color.length === 6 && !Number.isNaN(parseInt(color, 16))) {
color = `#${color}`;
}
td.setAttribute("color", lighten(color, ColorFmt.HEX).slice(1));
});
// Remove fixed widths
await nextAnimationFrame();
root.querySelectorAll("table[width]").forEach((td) => {
td.setAttribute("width", "100%");
});
root.querySelectorAll("table[style]").forEach((td: HTMLTableElement) => {
if (td.style.width !== "") {
td.style.width = "100%";
}
});
// Fixup spacing on top quotes
const tmpFloatRows = Array.from(root.querySelectorAll<HTMLImageElement>("table .floatright > a > img"))
.map((img) => {
return findParent(img, (el) => el instanceof HTMLTableRowElement);
})
await nextAnimationFrame();
tmpFloatRows.forEach((row) => {
const td = document.createElement("td");
row.appendChild(td);
});
// Group headers and content so stickies don't overlap
root.querySelectorAll("h3,h2").forEach((h3) => { //NOTE slow
const parent = h3.parentNode;
const div = document.createElement("div");
parent.insertBefore(div, h3);
while (h3.nextSibling && !h3.nextSibling.nodeName.startsWith("H")) {
const sibling = h3.nextSibling;
parent.removeChild(sibling);
div.appendChild(sibling);
}
h3.parentNode.removeChild(h3);
div.insertBefore(h3, div.firstChild);
div.className = "mw-headline-cont";
});
// Move id from header to container, if one is found
const tmpHeaders = Array.from(root.querySelectorAll<HTMLElement>(".mw-headline"))
.map((span) => {
// Find nearest container
const container = findParent(span, (el) =>
el.classList.contains("mw-headline-cont")
);
if (container) {
return [container, span, span.id, span.textContent]; //NOTE slow
} else {
return null;
}
})
.filter((e) => e !== null);
await nextAnimationFrame();
for (const [container, span, spanId, spanInnerText] of tmpHeaders) {
container.id = spanId;
span.id += "-span";
}
await nextAnimationFrame();
for (const [container, span, spanId, spanInnerText] of tmpHeaders) {
container.dataset.name = spanInnerText;
}
// Tell user that better chemistry is loading
const postbody = root;
const statusMessage = document.createElement("div");
statusMessage.innerHTML = `
<table style="background-color: black; margin-bottom:10px;" width="95%" align="center">
<tbody><tr><td align="center">
<b>Hang on...</b> Better guides is loading.
</td></tr></tbody>
</table>`;
postbody.insertBefore(statusMessage, postbody.firstChild);
async function betterChemistry() {
// Fix inconsistencies with <p> on random parts
// Ideally I'd like a <p> or something on every part, wrapping it completely, but for now let's just kill 'em
const tmpTooltiptext = Array.from(document.querySelectorAll(
"table.wikitable > tbody > tr:not(:first-child) > td:nth-child(2), .tooltiptext"
))
.map((td) => {
const tmp = td.cloneNode() as HTMLElement;
// The cast to Array is necessary because, while childNodes's NodeList technically has a forEach method, it's a live list and operations mess with its lenght in the middle of the loop.
// Nodes can only have one parent so append removes them from the original NodeList and shifts the following one back into the wrong index.
Array.from(td.childNodes).forEach((el) => { //TODO really slow
if (el instanceof HTMLParagraphElement) {
tmp.append(...el.childNodes);
} else {
tmp.append(el);
}
});
return [td, td.parentNode, tmp];
});
await nextAnimationFrame();
for (const [td, parent, newTD] of tmpTooltiptext) {
parent.replaceChild(newTD, td);
}
// Enrich "x part" with checkboxes and parts
const tmpParts = Array.from(document.querySelectorAll("td"))
.filter((el) => el.textContent.indexOf(" part") >= 0)
.map((el) => {
const newInnerHTML = el.innerHTML.replace( //TODO slow
/((\d+)\s+(?:parts?|units?))(.*?(?:<\/a>|\n|$))/gi,
(match, ...m) =>
`<label class="bgus_part ${
m[2].includes("</a>") ? "bgus_part_tooltip" : ""
}" data-amount="${
m[1]
}"><input type="checkbox" class='bgus_checkbox bgus_hidden'/> <span class="bgus_part_label" data-src="${
m[0]
}">${m[0]}</span></label>${m[2].replace(
/(<a .+?<\/a>)/gi,
'<span class="bgus_nobreak bgus_nested_element">$1<span class="bgus_twistie"></span></span>'
)}`
);
return [el, newInnerHTML];
});
await nextAnimationFrame();
for (const [el, newInnerHTML] of tmpParts) {
el.innerHTML = newInnerHTML;
}
// Add event to autofill child checkboxes
root
.querySelectorAll(".bgus_part_tooltip > .bgus_checkbox")
.forEach((box: HTMLInputElement) => {
const tooltip = box.parentElement.nextElementSibling;
box.addEventListener("click", () => {
tooltip
.querySelectorAll(".bgus_checkbox")
.forEach((el: HTMLInputElement) => {
el.checked = box.checked;
});
});
});
// Add event to collapse subsections
root.querySelectorAll(".bgus_nested_element").forEach((twistie) => {
twistie.addEventListener("click", () => {
twistie.classList.toggle("bgus_collapsed");
});
});
// Wrap every recipe with extra metadata
root.querySelectorAll<HTMLElement>(".bgus_part").forEach((el) => { //NOTE slow-ish
if ("parts" in el.parentElement.dataset) {
el.parentElement.dataset.parts = (
parseInt(el.parentElement.dataset.parts, 10) +
parseInt(el.dataset.amount, 10)
).toString();
} else {
el.parentElement.dataset.parts = el.dataset.amount;
}
});
const setPartSize = (labels, ml) => {
labels.forEach((el) => {
const part = el.parentElement.dataset.amount;
const total = el.parentElement.parentElement.dataset.parts;
const amt = Math.ceil(ml * (part / total));
el.innerHTML = `${amt} ml`;
// Lookup tooltips
let next = el.parentElement.nextElementSibling;
while (next) {
if (next.classList.contains("tooltip")) {
const sublabels = [];
next.querySelector(".tooltiptext").childNodes.forEach((ch) => {
if (ch.classList && ch.classList.contains("bgus_part")) {
sublabels.push(ch.querySelector(".bgus_part_label"));
}
});
setPartSize(sublabels, amt);
}
if (next.classList.contains("bgus_part")) {
// Done searching
break;
}
next = next.nextElementSibling;
}
});
};
root.classList.add("bchem");
// Init fuzzy search with elements
const el = Array.from(
root.querySelectorAll<HTMLElement>(
"table.wikitable > tbody > tr:not(:first-child) > th"
)
);
const name = el.map((elem) => {
let partial = "";
elem.childNodes.forEach((t) => {
if (t instanceof Text) {
partial += t.textContent;
}
});
return partial.trim();
});
const box = searchBox(
el,
name.map((e, i) => ({ id: i, str: e }))
);
document.body.appendChild(box);
// Remove "Removed medicines" section
const remTable = root.querySelector(
"#Non-craftable_Medicines + h4 + p + table"
);
remTable.remove();
root
.querySelectorAll<HTMLElement>("div[data-name] .wikitable.sortable tr")
.forEach((row) => { //TODO slow
const sectionEl = findParent(
row,
(sel) => "name" in sel.dataset && sel.dataset.name !== ""
);
const section = sectionEl.dataset.name;
if (row.querySelector("td") === null) {
// Remove unused rows if found
const headers = row.querySelectorAll("th");
headers.forEach((th, i) => {
if (i < 2) {
th.classList.add("table-head");
return;
}
th.remove();
});
return;
}
const rows = Array.from(row.querySelectorAll("td")).slice(1);
let treatment = null;
let desc = null;
let metabolism = null;
let overdose = null;
let addiction = null;
// Handle special cases
switch (section) {
case "Components":
case "Virology Recipes":
[desc] = rows;
break;
case "Narcotics":
[desc, metabolism, overdose, addiction] = rows;
break;
case "Explosive Strength":
case "Other Reagents":
case "Mutation Toxins":
[desc, metabolism] = rows;
break;
default:
// All fields
[treatment, desc, metabolism, overdose, addiction] = rows;
}
const title = row.querySelector("th");
let content = `<div class="reagent-header">${title.innerHTML}</div>`;
if (treatment) {
content += `<p class="treatment">${treatment.innerHTML}</p>`;
}
if (metabolism) {
content += `<p class="metabolism">${metabolism.innerHTML}</p>`;
}
if (addiction && addiction.innerHTML.trim() !== "N/A") {
content += `<p class="addiction">${addiction.innerHTML}</p>`;
}
if (overdose && overdose.innerHTML.trim() !== "N/A") {
content += `<p class="overdose">${overdose.innerHTML}</p>`;
}
if (desc) {
content += `<p>${desc.innerHTML}</p>`;
}
title.classList.add("reagent-ext");
title.innerHTML = content;
if (desc) desc.remove();
if (treatment) treatment.remove();
if (metabolism) metabolism.remove();
if (overdose) overdose.remove();
if (addiction) addiction.remove();
});
document.body.addEventListener("keydown", (ev) => {
if (ev.shiftKey) {
switch (ev.keyCode) {
// SHIFT+C = Toggle checkboxes
case 67: {
root.classList.toggle("bgus_cbox");
root
.querySelectorAll(".bgus_checkbox:checked")
.forEach((sel: HTMLInputElement) => {
sel.checked = false;
});
break;
}
// SHIFT+B = Set whole size (beaker?) for parts/units
case 66: {
const size = parseInt(
prompt("Write target ml (0 to reset)", "90"),
10
);
if (Number.isNaN(size) || size <= 0) {
// Reset to parts/unit
root
.querySelectorAll(".bgus_part_label")
.forEach((sel: HTMLElement) => {
sel.innerHTML = sel.dataset.src;
});
return;
}
setPartSize(
root.querySelectorAll("td > .bgus_part > .bgus_part_label"),
+size
);
break;
}
default:
// Do nothing
}
}
});
}
async function betterGeneric() {
const el = Array.from(
root.querySelectorAll<HTMLElement>("div.mw-headline-cont[id][data-name]")
);
const name = el.map((elem: HTMLDivElement) => elem.dataset.name.trim());
// Init fuzzy search with headlines
const box = searchBox(
el,
name.map((e, i) => ({ id: i, str: e })),
{ alignment: "start" }
);
root.appendChild(box);
}
switch (docname) {
case "Guide_to_chemistry":
await betterChemistry();
break;
default:
await betterGeneric();
break;
}
// Everything is loaded, remove loading bar
statusMessage.innerHTML = "";
}

View file

@ -1,11 +1,19 @@
export function nextAnimationFrame(): Promise<void> {
return new Promise((resolve) => requestAnimationFrame(() => resolve()));
export function nextAnimationFrame(): Promise {
return new Promise(requestAnimationFrame);
}
export function delay(ms: number): Promise<void> {
return new Promise((resolve) => {
setTimeout(() => resolve(), ms);
});
export function findParent(
base: HTMLElement,
matchFn: (candidate: HTMLElement) => boolean
): HTMLElement | null {
let parent = base.parentElement;
while (parent != null) {
if (matchFn(parent)) {
break;
}
parent = parent.parentElement;
}
return parent;
}
export default { nextAnimationFrame, delay };
export default { nextAnimationFrame, findParent };

180
style/bgus.scss Normal file
View file

@ -0,0 +1,180 @@
@import "vars.scss";
.bgus_hidden {
display: none !important;
}
.bgus_nobreak {
white-space: nowrap;
}
#bgus_fz_searchbox {
position: fixed;
top: 50px;
left: 20%;
right: 20%;
background: rgba(10, 10, 10, 0.8);
display: flex;
flex-direction: column;
z-index: 999;
color: #fff;
border-radius: 2px;
}
@media (min-width: 600px) {
#bgus_fz_searchbox {
left: 30%;
right: 30%;
}
}
#bgus_fz_searchbox input {
font-size: 10pt;
padding: 5pt 8pt;
border: 1px solid #555;
margin: 5px;
margin-bottom: 0;
background-color: #111;
color: #fff;
outline: none;
&:focus {
border-color: #aaa;
}
}
#bgus_fz_searchbox ul {
list-style: none;
margin: 5px;
padding: 0;
}
#bgus_fz_searchbox li {
margin: 0;
padding: 5px;
cursor: pointer;
}
#bgus_fz_searchbox li:hover {
background-color: rgba(100, 100, 100, 0.5);
}
#bgus_fz_searchbox li.selected {
border-left: 3px solid white;
}
.bgus_twistie:after {
color: red;
display: inline-block;
font-weight: bold;
margin-left: 0.2em;
content: "";
}
.bgus_collapsed > .bgus_twistie:after {
content: "";
}
div.tooltiptext {
display: none;
border: 1px solid #384e68;
background: linear-gradient(to bottom, darken(#384e68, 20%), darken(#384e68, 25%));
}
span.bgus_nested_element:not(.bgus_collapsed) + div.tooltiptext {
z-index: unset;
visibility: inherit;
display: block;
opacity: 1;
position: relative;
width: auto;
border-left-width: 3px;
margin-left: 5px;
margin-top: 5px;
font-size: 8pt;
padding: 5px 8px;
line-height: 10pt;
div.tooltiptext {
margin-left: -5px;
}
}
.bchem table.wikitable > tbody > tr > td:nth-child(2) {
width: 45%;
padding: 10px;
}
.bchem table.wikitable {
border: 0 !important;
.table-head {
text-align: center;
}
th {
background-color: darken($nanotrasen, 5%) !important;
}
}
div.bchem .bgus_fz_selected {
background: $nanotrasen !important;
th,
td {
border-top: 2px solid lighten($nanotrasen, 20%);
border-bottom: 2px solid lighten($nanotrasen, 15%);
}
th {
background: lighten($nanotrasen, 5%) !important;
}
div.tooltiptext {
border-color: lighten($nanotrasen, 20%);
background: darken($nanotrasen, 10%);
}
}
body.bgus_cbox input[type="checkbox"] + span[data-src]:before {
display: inline-block;
width: 1.5em;
content: "[_]";
}
body.bgus_cbox input[type="checkbox"]:checked + span[data-src]:before {
content: "[X]";
}
body.bgus_cbox input[type="checkbox"]:checked + span[data-src] {
text-decoration: line-through;
}
body.bgus_cbox input[type="checkbox"] + span[data-src] {
cursor: pointer;
}
body.bgus_cbox input[type="checkbox"] + span[data-src]:before,
body.bgus_cbox input[type="checkbox"] + span[data-src] {
color: orange;
font-weight: bold;
}
body.bgus_cbox input[type="checkbox"]:checked + span[data-src]:before,
body.bgus_cbox input[type="checkbox"]:checked + span[data-src] {
color: green;
}
.reagent-ext {
.reagent-header {
font-size: 12pt;
text-align: left;
padding: 10pt;
padding-bottom: 0;
span:last-child {
margin-left: 0.5em;
}
}
p {
font-size: 8pt;
font-weight: 300;
line-height: 1.4em;
word-spacing: -0.1em;
}
.treatment {
font-size: 10pt;
}
.metabolism:before {
font-size: 9pt;
content: "Metabolism rate: ";
font-weight: bold;
}
.overdose,
.addiction {
font-size: 9pt;
font-weight: bold;
}
.overdose:before {
color: #ffae68;
content: "Overdose at ";
}
.addiction:before {
color: #ffdf97;
content: "Addiction at ";
}
}

View file

@ -1,9 +1,164 @@
$nanotrasen: #384e68;
@import "vars.scss";
@import "ui.scss";
@import "search.scss";
@import "pages/global.scss";
@import "pages/chemistry.scss";
@import "pages/food.scss";
@import "pages/virology.scss";
@import "pages/welcome.scss";
html,
body {
margin: 0;
padding: 0;
height: 100%;
overflow: hidden;
}
.bgimage {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: flex;
align-items: center;
justify-content: center;
z-index: 0;
img {
opacity: 0.4;
}
}
body {
background: linear-gradient(to bottom, darken($nanotrasen, 20%), darken($nanotrasen, 10%));
background-size: 100% 100%;
background-attachment: fixed;
color: #fff;
font-family: "Iosevka Aile Web", sans-serif;
font-size: 9pt;
line-height: 1.6em;
}
#app {
height: 100%;
display: grid;
grid-template-rows: 40px 1fr;
}
::-webkit-scrollbar {
width: 14pt;
}
::-webkit-scrollbar-track {
background: linear-gradient(to bottom, darken($nanotrasen, 0%), darken($nanotrasen, 10%), darken($nanotrasen, 0%));
border: 1px solid lighten($nanotrasen, 10%);
}
::-webkit-scrollbar-thumb {
border-radius: 2px;
background: linear-gradient(
to bottom,
lighten($nanotrasen, 20%),
lighten($nanotrasen, 30%),
lighten($nanotrasen, 20%)
);
border: 1px solid lighten($nanotrasen, 10%);
}
#tabs {
grid-row: 2;
z-index: 1;
display: grid;
overflow: hidden;
.page {
visibility: hidden;
padding-top: 10pt;
overflow-y: scroll;
grid-row: 1;
grid-column: 1;
&.active {
visibility: visible;
}
&.waiting {
user-select: none;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: flex;
flex-direction: column;
height: 100%;
.speen {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
img {
width: 60vmin;
opacity: 0.9;
}
}
}
p,
h2,
h3,
h4 {
padding-left: 10pt;
padding-right: 10pt;
}
a[href] {
color: white;
}
#toctitle,
h1,
h2,
h3 {
position: sticky;
top: -10pt;
background: $nanotrasen;
padding: 10px;
z-index: 999;
}
#toctitle h2 {
margin: 0;
}
.mw-headline {
display: flex;
align-items: center;
}
}
}
$tab-active: lighten($nanotrasen, 10%);
#tab-list {
z-index: 2;
grid-row: 1;
display: flex;
border-bottom: 2px solid $tab-active;
.tab {
max-width: 200px;
flex: 1;
display: flex;
align-items: center;
justify-content: center;
user-select: none;
&.active {
background-color: $tab-active;
}
&:not(.active) {
cursor: pointer;
}
}
}
noscript {
position: fixed;
top: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: transparent;
width: 100%;
}

View file

@ -1,162 +0,0 @@
div[data-tab="Guide_to_chemistry"] {
.bgus_twistie:after {
color: red;
display: inline-block;
font-weight: bold;
margin-left: 0.2em;
content: "";
}
.bgus_collapsed > .bgus_twistie:after {
content: "";
}
div.tooltiptext {
display: none;
border: 1px solid #384e68;
background: linear-gradient(
to bottom,
darken(#384e68, 20%),
darken(#384e68, 25%)
);
}
span.bgus_nested_element:not(.bgus_collapsed) + div.tooltiptext {
z-index: unset;
visibility: inherit;
display: block;
opacity: 1;
position: relative;
width: auto;
border-left-width: 3px;
margin-left: 5px;
margin-top: 5px;
font-size: 8pt;
padding: 5px 8px;
line-height: 10pt;
div.tooltiptext {
margin-left: -5px;
}
}
table.wikitable {
border: 0 !important;
.table-head {
text-align: center;
}
th {
background-color: darken($nanotrasen, 5%) !important;
}
& > tbody > tr > td:nth-child(2) {
width: 45%;
padding: 10px;
}
.bgus_fz_selected {
background: $nanotrasen !important;
th,
td {
border-top: 2px solid lighten($nanotrasen, 20%);
border-bottom: 2px solid lighten($nanotrasen, 15%);
}
th {
background: lighten($nanotrasen, 5%) !important;
}
div.tooltiptext {
border-color: lighten($nanotrasen, 20%);
background: darken($nanotrasen, 10%);
}
}
}
body.bgus_cbox {
input[type="checkbox"] + span[data-src]:before {
display: inline-block;
width: 1.5em;
content: "[_]";
}
input[type="checkbox"]:checked + span[data-src]:before {
content: "[X]";
}
input[type="checkbox"]:checked + span[data-src] {
text-decoration: line-through;
}
input[type="checkbox"] + span[data-src] {
cursor: pointer;
}
input[type="checkbox"] + span[data-src]:before,
input[type="checkbox"] + span[data-src] {
color: orange;
font-weight: bold;
}
input[type="checkbox"]:checked + span[data-src]:before,
input[type="checkbox"]:checked + span[data-src] {
color: green;
}
}
.reagent-ext {
.reagent-header {
font-size: 12pt;
text-align: left;
padding: 10pt;
padding-bottom: 0;
span:last-child {
margin-left: 0.5em;
}
}
p {
font-size: 8pt;
font-weight: 300;
line-height: 1.4em;
word-spacing: -0.1em;
}
.treatment {
font-size: 10pt;
}
.metabolism:before {
font-size: 9pt;
content: "Metabolism rate: ";
font-weight: bold;
}
.overdose,
.addiction {
font-size: 9pt;
font-weight: bold;
}
.overdose:before {
color: #ffae68;
content: "Overdose at ";
}
.addiction:before {
color: #ffdf97;
content: "Addiction at ";
}
}
.ph-ext {
p {
font-size: 9pt;
}
table {
margin: 0.5rem 0.7rem;
background-color: $nanotrasen !important;
border: 0;
td,
th {
font-size: 8pt;
padding: 0.2rem 0.3rem;
line-height: 1rem;
}
td {
background-color: darken($nanotrasen, 10%) !important;
text-align: center;
font-weight: normal;
}
}
}
}

View file

@ -1,134 +0,0 @@
div[data-tab="Guide_to_food_and_drinks"] {
.drink-ext,
.food-base-ext,
.book-ext,
.recipe-ext {
width: 100%;
th,
td:first-child {
background-color: #2f4257;
}
.food-pic {
float: left;
min-width: 64px;
min-height: 64px;
display: flex;
align-items: center;
justify-content: center;
}
.food-name {
font-size: 12pt;
text-align: left;
padding: 10pt;
padding-bottom: 0;
margin-bottom: 10pt;
}
p {
font-size: 8pt;
font-weight: 300;
line-height: 1.2em;
word-spacing: -0.1em;
margin: 5pt 0;
}
.bgus_fz_selected {
background: $nanotrasen !important;
th,
td {
border-top: 2px solid lighten($nanotrasen, 20%);
border-bottom: 2px solid lighten($nanotrasen, 15%);
}
th {
background: lighten($nanotrasen, 5%) !important;
}
div.tooltiptext {
border-color: lighten($nanotrasen, 20%);
background: darken($nanotrasen, 10%);
}
}
}
.drink-ext {
p {
font-size: 9pt;
}
.strength {
font-size: 9pt;
&:before {
content: "Strength: ";
font-weight: bold;
}
}
.description,
.notes {
margin: 10pt 0;
line-height: 1.5em;
}
td:nth-child(2) {
width: 30vw;
max-width: 300px;
text-align: left;
}
}
.food-base-ext {
td:nth-child(1) {
width: 30vw;
max-width: 300px;
text-align: center;
}
.food-pic {
float: none;
min-width: 64px;
min-height: 64px;
display: inline-block;
}
.food-block {
display: flex;
align-items: center;
}
td:nth-child(2) {
padding: 5pt;
font-size: 10pt;
}
}
.book-ext {
p {
font-size: 9pt;
}
.description,
.notes {
margin: 10pt 0;
line-height: 1.5em;
}
.unlocks {
&:before {
content: "Unlocks: ";
font-weight: bold;
}
}
td:nth-child(2) {
width: 30vw;
max-width: 300px;
text-align: center;
p {
font-size: 9pt;
}
}
}
.recipe-ext {
p {
font-size: 9pt;
}
td:nth-child(2) {
width: 30vw;
max-width: 300px;
}
.notes {
margin: 10pt 0;
line-height: 1.5em;
}
}
}

View file

@ -1,92 +0,0 @@
$max-width: 960px;
.bgus_hidden {
display: none !important;
}
.bgus_nobreak {
white-space: nowrap;
}
.page ul,
.page ol {
padding-left: 25pt;
li {
margin-top: 0.6em;
padding-right: 8pt;
}
ul,
ol {
padding-left: 12pt;
}
}
.disease-ext {
p {
font-size: 8pt;
font-weight: 300;
line-height: 1.4em;
word-spacing: -0.1em;
}
}
.thumbinner {
width: 100% !important;
}
.page {
h1.pageheader {
margin-top: 0;
padding: 15pt 10pt;
}
img {
vertical-align: middle;
}
p,
h2,
h3,
h4 {
padding-left: 10pt;
padding-right: 10pt;
}
a[href] {
color: white;
}
h1,
h2,
h3 {
position: sticky;
top: 0;
background: $nanotrasen;
padding: 10pt;
z-index: 999;
max-width: $max-width;
&:before {
display: block;
content: " ";
left: -100%;
right: calc((960px - 100vw) / 2 + 10px);
top: 0;
height: 100%;
position: absolute;
z-index: -99;
background: $nanotrasen;
}
}
.mw-headline {
display: flex;
align-items: center;
}
}
.page:not(.special) img {
image-rendering: -moz-crisp-edges;
image-rendering: pixelated;
-ms-interpolation-mode: nearest-neighbor;
}
.wrapper {
margin: 0 auto;
max-width: $max-width;
}

View file

@ -1,108 +0,0 @@
div[data-tab="Infections"] {
.disease-ext,
.symptoms-ext {
width: 100%;
th,
td:first-child {
background-color: #2f4257;
}
.disease-name {
font-size: 12pt;
text-align: left;
padding: 10pt;
padding-bottom: 0;
margin-bottom: 10pt;
}
p {
font-size: 8pt;
font-weight: 300;
line-height: 1.2em;
word-spacing: -0.1em;
margin: 5pt 0;
}
.bgus_fz_selected {
background: $nanotrasen !important;
th,
td {
border-top: 2px solid lighten($nanotrasen, 20%);
border-bottom: 2px solid lighten($nanotrasen, 15%);
}
th {
background: lighten($nanotrasen, 5%) !important;
}
div.tooltiptext {
border-color: lighten($nanotrasen, 20%);
background: darken($nanotrasen, 10%);
}
}
}
.disease-ext {
.vector {
font-size: 9pt;
&:before {
content: "Vector: ";
font-weight: bold;
}
}
.source {
font-size: 9pt;
&:before {
content: "Source: ";
font-weight: bold;
}
}
.spread {
font-size: 9pt;
&:before {
content: "Spread: ";
font-weight: bold;
}
}
.description {
margin: 10pt 0;
line-height: 1.5em;
}
td:nth-child(2) {
width: 30vw;
max-width: 300px;
text-align: center;
}
}
.symptoms-ext {
.level {
font-size: 9pt;
font-weight: bold;
&:before {
content: "Level ";
}
}
.description {
margin: 10pt 0;
line-height: 1.5em;
}
.stats {
width: 100%;
border: 2px solid $nanotrasen;
th {
text-align: right;
padding: 3px 6px;
}
td {
padding: 3px 6px;
text-align: center;
}
}
.thresholds {
white-space: nowrap;
margin: 0;
padding: 0;
list-style-type: none;
span {
cursor: help;
}
}
}
}

View file

@ -1,82 +0,0 @@
#Welcome {
display: flex;
flex-direction: column;
&.center {
align-items: center;
justify-content: center;
}
&:not(.center) {
header {
margin-top: 20px;
}
}
font-size: 12pt;
line-height: 1.4em;
header {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
padding: 20pt;
.icon {
max-width: 25vw;
width: 200px;
margin-right: 20px;
}
.type {
max-width: 50vw;
width: 400px;
}
}
.hidden {
width: 100%;
opacity: 0;
display: none;
transition: all 200ms;
}
h1,
h2 {
margin-top: 2em;
}
h3 {
font-size: 15pt;
}
h3.nobg {
background: transparent;
margin-bottom: 0;
padding-bottom: 0;
position: relative;
z-index: 2;
&:before {
display: none;
}
}
code {
display: inline-block;
background-color: #222;
border-radius: 3px;
padding: 2px 5px;
}
.images {
display: flex;
flex-wrap: wrap;
img {
margin: 10px;
}
}
.action_buttons {
text-align: center;
button {
font-size: 12pt;
padding: 10pt 12pt;
}
}
}

View file

@ -1,60 +0,0 @@
#bgus_fz_searchbox {
position: fixed;
top: 80px;
left: 20%;
right: 20%;
background: rgba(10, 10, 10, 0.8);
display: flex;
flex-direction: column;
z-index: 999;
color: #fff;
border-radius: 2px;
input {
font-size: 10pt;
padding: 5pt 8pt;
border: 1px solid #555;
margin: 5px;
margin-bottom: 0;
background-color: #111;
color: #fff;
outline: none;
&:focus {
border-color: #aaa;
}
}
ul {
list-style: none;
margin: 5px;
padding: 0;
}
li {
margin: 0;
padding: 5px;
cursor: pointer;
.source {
color: #ccc;
font-size: 8pt;
display: block;
line-height: 1.4em;
}
&:hover {
background-color: rgba(100, 100, 100, 0.5);
}
&.selected {
border-left: 3px solid white;
}
}
}
@media (min-width: 600px) {
#bgus_fz_searchbox {
left: 30%;
right: 30%;
}
}

View file

@ -1,241 +0,0 @@
html,
body {
margin: 0;
padding: 0;
height: 100%;
overflow: hidden;
}
.bgimage {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: flex;
align-items: center;
justify-content: center;
z-index: 0;
img {
opacity: 0.4;
width: 80vmin;
}
}
body {
background: linear-gradient(
to bottom,
darken($nanotrasen, 20%),
darken($nanotrasen, 10%)
);
background-size: 100% 100%;
background-attachment: fixed;
color: #fff;
font-family: "Iosevka Aile Web", sans-serif;
font-size: 9pt;
line-height: 1.6em;
}
#app {
height: 100%;
display: flex;
flex-direction: column;
&.waiting {
#tab-list,
#section-list {
display: none;
}
}
}
::-webkit-scrollbar {
width: 14pt;
}
::-webkit-scrollbar-track {
background: linear-gradient(
to bottom,
darken($nanotrasen, 0%),
darken($nanotrasen, 10%),
darken($nanotrasen, 0%)
);
border: 1px solid lighten($nanotrasen, 10%);
}
::-webkit-scrollbar-thumb {
border-radius: 2px;
background: linear-gradient(
to bottom,
lighten($nanotrasen, 20%),
lighten($nanotrasen, 30%),
lighten($nanotrasen, 20%)
);
border: 1px solid lighten($nanotrasen, 10%);
}
.speen {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-size: 12pt;
img {
width: 60vmin;
max-height: 100%;
opacity: 0.9;
padding-bottom: 1em;
}
}
#tabs {
flex: 1;
z-index: 1;
display: grid;
overflow: hidden;
.page {
//visibility: hidden;
will-change: display;
&:not(.active) {
display: none;
}
overflow: auto;
grid-row: 1;
grid-column: 1;
&.active {
//visibility: visible;
&.waiting {
user-select: none;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: flex;
flex-direction: column;
height: 100%;
}
}
}
}
$section-active: darken($nanotrasen, 5%);
$tab-active: lighten($nanotrasen, 10%);
#section-list {
z-index: 2;
border-bottom: 2px solid $section-active;
display: flex;
.section {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
user-select: none;
font-size: 9pt;
padding: 3pt 7pt;
text-transform: uppercase;
color: lighten($nanotrasen, 60%);
flex: 1;
&.active {
background-color: $section-active;
color: white;
}
&:not(.active) {
cursor: pointer;
&:hover {
background-color: darken($section-active, 10%);
}
}
}
}
#tab-list {
z-index: 2;
display: flex;
background-color: $section-active;
border-bottom: 4px solid $tab-active;
.tab {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
user-select: none;
font-size: 7pt;
padding: 2px 4px;
padding-bottom: 0;
text-transform: uppercase;
flex: 1;
max-width: 100px;
img {
height: 80%;
max-height: 24px;
margin: 0;
}
&.active {
background-color: $tab-active;
}
&:not(.active) {
cursor: pointer;
&:hover {
background-color: darken($tab-active, 8%);
}
}
&.hidden {
display: none;
}
}
}
noscript {
position: fixed;
top: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background: transparent;
width: 100%;
}
.loading-icons {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
user-select: none;
font-size: 9pt;
padding: 3pt 7pt;
text-transform: uppercase;
flex-wrap: wrap;
div {
border: 1px solid red;
display: flex;
flex-direction: column;
align-items: center;
}
img {
max-width: 32px;
}
}
.pretty-button {
font-family: "Iosevka Aile Web", sans-serif;
background-color: darken($nanotrasen, 10%);
border: 1px solid lighten($nanotrasen, 30%);
color: white;
padding: 6pt 10pt;
border-radius: 3px;
cursor: pointer;
transition: all 100ms;
&:hover {
background-color: $nanotrasen;
border: 1px solid lighten($nanotrasen, 50%);
}
margin: 10px;
}

1
style/vars.scss Normal file
View file

@ -0,0 +1 @@
$nanotrasen: #384e68;

View file

@ -2,7 +2,6 @@
"compilerOptions": {
"target": "ES2020",
"baseUrl": ".",
"allowSyntheticDefaultImports": true,
"paths": {
"~*": ["./src/*"]
}

View file

@ -3230,11 +3230,6 @@ icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0:
resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
idb-keyval@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-3.2.0.tgz#cbbf354deb5684b6cdc84376294fc05932845bd6"
integrity sha512-slx8Q6oywCCSfKgPgL0sEsXtPVnSbTLWpyiDcu6msHOyKOLari1TD1qocXVCft80umnkk3/Qqh3lwoFt8T/BPQ==
ieee754@^1.1.4:
version "1.1.13"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"