Merge branch 'development' of github.com:FreeTubeApp/FreeTube into feat/improve-label-clarity

This commit is contained in:
Jason Henriquez 2024-04-20 12:11:37 -05:00
commit 221ae49ffe
403 changed files with 18615 additions and 8673 deletions

View File

@ -4,8 +4,8 @@
"@babel/env",
{
"targets": {
"chrome": "106",
"node": "16.16.0"
"chrome": "122",
"node": "20.9.0"
}
}
]

View File

@ -1,3 +1,8 @@
const path = require('path')
const { readFileSync } = require('fs')
const activeLocales = JSON.parse(readFileSync(path.join(__dirname, './static/locales/activeLocales.json')))
module.exports = {
// https://eslint.org/docs/user-guide/configuring#using-configuration-files-1
root: true,
@ -47,11 +52,12 @@ module.exports = {
'plugin:vue/recommended',
'standard',
'plugin:jsonc/recommended-with-json',
'plugin:vuejs-accessibility/recommended'
'plugin:vuejs-accessibility/recommended',
'plugin:@intlify/vue-i18n/recommended'
],
// https://eslint.org/docs/user-guide/configuring#configuring-plugins
plugins: ['vue', 'vuejs-accessibility', 'n', 'unicorn'],
plugins: ['vue', 'vuejs-accessibility', 'n', 'unicorn', '@intlify/vue-i18n'],
rules: {
'space-before-function-paren': 'off',
@ -77,6 +83,42 @@ module.exports = {
'unicorn/no-array-push-push': 'error',
'unicorn/prefer-keyboard-event-key': 'error',
'unicorn/prefer-regexp-test': 'error',
'unicorn/prefer-string-replace-all': 'error'
'unicorn/prefer-string-replace-all': 'error',
'@intlify/vue-i18n/no-dynamic-keys': 'error',
// TODO: enable at a later date. currently disabled to prevent massive conflicts for initial PR
// '@intlify/vue-i18n/no-unused-keys': [
// 'error',
// {
// extensions: ['.js', '.vue', 'yaml']
// }
// ],
'@intlify/vue-i18n/no-duplicate-keys-in-locale': 'error',
'@intlify/vue-i18n/no-raw-text': [
'error',
{
attributes: {
'/.+/': [
'title',
'aria-label',
'aria-placeholder',
'aria-roledescription',
'aria-valuetext',
'tooltip',
'message'
],
input: ['placeholder', 'value'],
img: ['alt']
},
ignoreText: ['-', '•', '/', 'YouTube', 'Invidious', 'FreeTube']
}
],
'vue/require-explicit-emits': 'error',
'vue/no-unused-emit-declarations': 'error',
},
settings: {
'vue-i18n': {
localeDir: `./static/locales/{${activeLocales.join(',')}}.yaml`,
messageSyntaxVersion: '^8.0.0'
}
}
}

View File

@ -90,16 +90,18 @@ body:
- Flathub
- .pacman
- Portable
- .rpm
- .rpm
- .zip
- .apk (Android, FreeTubeCordova Unofficial)
- .apk (FreeTubeAndroid Unofficial)
- AUR (Unofficial)
- Chocolatey (Unofficial)
- Homebrew (Unofficial)
- MPR (Unofficial)
- Nix (Unofficial)
- PortableApps (Unofficial)
- Scoop (Unofficial)
- Snapcraft (Unofficial)
- WAPT (Unofficial)
- winget (Unofficial)
- other
validations:

View File

@ -1 +1,17 @@
blank_issues_enabled: false
contact_links:
- name: Discussions
url: https://github.com/FreeTubeApp/FreeTube/discussions/categories/general
about: View discussions or start one yourself
- name: Questions
url: https://github.com/FreeTubeApp/FreeTube/discussions/categories/q-a
about: Ask and answer questions
- name: Matrix Community
url: https://matrix.to/#/+freetube:matrix.org
about: 'Join our Matrix chatroom - "Note: Bugs and Feature requests should be made on GitHub and not in the Matrix room"'
- name: Translate FreeTube
url: https://hosted.weblate.org/engage/free-tube/
about: Help translate FreeTube on Weblate
- name: FreeTube Documentation
url: https://docs.freetubeapp.io/
about: View the Documentation to find all relevant information about FreeTube

View File

@ -2,10 +2,10 @@
- '(visual bug)'
'B: Unofficial Download':
- '(AUR \(Unofficial\)|Chocolatey \(Unofficial\)|\.apk \(Android, FreeTubeCordova Unofficial\)|PortableApps \(Unofficial\)|winget \(Unofficial\)|Scoop \(Unofficial\)|Snapcraft \(Unofficial\)|MPR \(Unofficial\)|Nix \(Unofficial\))'
- '(AUR \(Unofficial\)|Chocolatey \(Unofficial\)|\.apk \(FreeTubeAndroid Unofficial\)|Homebrew \(Unofficial\)|PortableApps \(Unofficial\)|WAPT \(Unofficial\)|winget \(Unofficial\)|Scoop \(Unofficial\)|Snapcraft \(Unofficial\)|MPR \(Unofficial\)|Nix \(Unofficial\))'
'B: keyboard control':
- '(keyboard control not working)'
- '(keyboard control not working)'
'B: text/string':
- '(text/string issue)'

View File

@ -1,19 +1,8 @@
'PR: waiting for review':
- '*'
- '.babelrc'
- '.editorconfig'
- '.eslintignore'
- '.eslintrc.js'
- '.gitignore'
- '.prettierrc'
- '.whitesource'
- '.github/**/*'
- '.vscode/**/*'
- '_icons/**/*'
- '_scripts/**/*'
- 'src/**/*'
- 'static/**/*'
- changed-files:
- any-glob-to-any-file: '**'
'PR: dependencies':
- 'yarn.lock'
- 'package.json'
- any:
- changed-files:
- any-glob-to-any-file: ['yarn.lock', 'package.json']

View File

@ -5,10 +5,10 @@ on:
jobs:
test:
if: github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'OWNER'
runs-on: ubuntu-latest
steps:
- name: Check Comment Author
if: github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'OWNER'
uses: Amwam/issue-comment-action@v1.3.1
with:
keywords: '["duplicate of #", "duplicate of https://github.com/FreeTubeApp/FreeTube/issues/", "duplicate of https://github.com/FreeTubeApp/FreeTube/pulls/"]'

View File

@ -5,11 +5,11 @@ on:
jobs:
build:
if: ${{ !github.event.pull_request.draft && (contains(github.event.pull_request.base.ref, 'development') || contains(github.event.pull_request.base.ref, 'RC')) }}
runs-on: ubuntu-latest
steps:
- name: Auto Merge PR
if: ${{ !github.event.pull_request.draft && (contains(github.event.pull_request.base.ref, 'development') || contains(github.event.pull_request.base.ref, 'RC')) }}
run: |
echo ${{ secrets.PUSH_TOKEN }} >> auth.txt
gh auth login --with-token < auth.txt

View File

@ -12,7 +12,7 @@ jobs:
build:
strategy:
matrix:
node-version: [18.x]
node-version: [20.x]
runtime:
- linux-x64
- linux-armv7l
@ -64,7 +64,7 @@ jobs:
- name: Set Version Number Variable
id: versionNumber
uses: actions/github-script@v6
uses: actions/github-script@v7
env:
IS_DEV: ${{ contains(github.ref, 'development') }}
IS_RC: ${{ contains(github.ref, 'RC') }}
@ -108,91 +108,91 @@ jobs:
run: yarn run build:arm64
- name: Upload Linux .zip x64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_x64
path: build/freetube-${{ steps.versionNumber.outputs.result }}.zip
- name: Upload Linux .7z x64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_x64.7z
path: build/freetube-${{ steps.versionNumber.outputs.result }}.7z
- name: Upload Linux .zip ARMv7l Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_armv7l
path: build/freetube-${{ steps.versionNumber.outputs.result }}-armv7l.zip
- name: Upload Linux .7z ARMv7l Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_armv7l.7z
path: build/freetube-${{ steps.versionNumber.outputs.result }}-armv7l.7z
- name: Upload Linux .zip ARM64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_arm64
path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64.zip
- name: Upload Linux .7z ARM64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_arm64.7z
path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64.7z
- name: Upload .deb x64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.deb
path: build/freetube_${{ steps.versionNumber.outputs.result }}_amd64.deb
- name: Upload .deb ARMv7l Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_armv7l.deb
path: build/freetube_${{ steps.versionNumber.outputs.result }}_armv7l.deb
- name: Upload .deb ARM64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_arm64.deb
path: build/freetube_${{ steps.versionNumber.outputs.result }}_arm64.deb
- name: Upload AppImage x64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.AppImage
path: build/FreeTube-${{ steps.versionNumber.outputs.result }}.AppImage
- name: Upload AppImage ARMv7l Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_armv7l.AppImage
path: build/FreeTube-${{ steps.versionNumber.outputs.result }}-armv7l.AppImage
- name: Upload AppImage ARM64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_arm64.AppImage
path: build/FreeTube-${{ steps.versionNumber.outputs.result }}-arm64.AppImage
- name: Upload .rpm x64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.rpm
@ -201,133 +201,133 @@ jobs:
# rpm are not built for armv7l
- name: Upload .rpm ARM64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_arm64.rpm
path: build/freetube-${{ steps.versionNumber.outputs.result }}.aarch64.rpm
- name: Upload Alpine .apk x64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_alpine_amd64.apk
path: build/freetube-${{ steps.versionNumber.outputs.result }}.apk
- name: Upload Alpine .apk ARMv7l Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_alpine_armv7l.apk
path: build/freetube-${{ steps.versionNumber.outputs.result }}-armv7l.apk
- name: Upload Alpine .apk ARM64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_alpine_arm64.apk
path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64.apk
- name: Upload Pacman .pacman x64 Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.pacman
path: build/freetube-${{ steps.versionNumber.outputs.result }}.pacman
# - name: Upload Web Build
# uses: actions/upload-artifact@v3
# uses: actions/upload-artifact@v4
# if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
# with:
# name: freetube_${{ steps.versionNumber.outputs.result }}_static_web
# path: dist/web
- name: Upload Windows x64 .exe Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-setup-x64.exe
path: build/freetube Setup ${{ steps.versionNumber.outputs.result }}.exe
- name: Upload Windows arm64 .exe Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-setup-arm64.exe
path: build/freetube Setup ${{ steps.versionNumber.outputs.result }}.exe
- name: Upload Windows x64 .zip Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-win-x64-portable
path: build/freetube-${{ steps.versionNumber.outputs.result }}-win.zip
- name: Upload Windows x64 .7z Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-win-x64-portable.7z
path: build/freetube-${{ steps.versionNumber.outputs.result }}-win.7z
- name: Upload Windows arm64 .zip Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-win-arm64-portable
path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64-win.zip
- name: Upload Windows arm64 .7z Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-win-arm64-portable.7z
path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64-win.7z
- name: Upload Windows x64 Portable Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-portable-x64.exe
path: build/freetube ${{ steps.versionNumber.outputs.result }}.exe
- name: Upload Windows arm64 Portable Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-portable-arm64.exe
path: build/freetube ${{ steps.versionNumber.outputs.result }}.exe
- name: Upload Mac x64 .dmg Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-mac-x64.dmg
path: build/freetube-${{ steps.versionNumber.outputs.result }}.dmg
# - name: Upload Mac arm64 .dmg Artifact
# uses: actions/upload-artifact@v3
# uses: actions/upload-artifact@v4
# if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64')
# with:
# name: freetube-${{ steps.versionNumber.outputs.result }}-mac-arm64.dmg
# path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64.dmg
- name: Upload Mac x64 .zip Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-mac-x64.zip
path: build/freetube-${{ steps.versionNumber.outputs.result }}-mac.zip
- name: Upload Mac x64 .7z Artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-mac-x64.7z
path: build/freetube-${{ steps.versionNumber.outputs.result }}-mac.7z
# - name: Upload Mac arm64 .zip Artifact
# uses: actions/upload-artifact@v3
# uses: actions/upload-artifact@v4
# if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64')
# with:
# name: freetube-${{ steps.versionNumber.outputs.result }}-mac-arm64.zip

View File

@ -20,7 +20,7 @@ jobs:
compressOnly: true
- name: Create New Pull Request If Needed
if: steps.calibre.outputs.markdown != ''
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@v6
with:
title: Compressed Images Nightly
branch-suffix: timestamp

View File

@ -31,7 +31,7 @@ jobs:
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@ -45,7 +45,7 @@ jobs:
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
@ -58,6 +58,6 @@ jobs:
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"

View File

@ -36,7 +36,7 @@ jobs:
- name: Install xmlstarlet
run: sudo apt -y install xmlstarlet
- name: Create Version Variable
uses: bluwy/substitute-string-action@v2
uses: bluwy/substitute-string-action@v3
id: sub
with:
_input-text: ${{ fromJson(steps.api_results.outputs.result).tag_name }}

View File

@ -11,7 +11,7 @@ jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: github/issue-labeler@v3.3
- uses: github/issue-labeler@v3.4
with:
configuration-path: .github/issue-labeler.yml
enable-versioned-regex: 0

View File

@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
if: ${{ !github.event.pull_request.draft }}
steps:
- uses: actions/labeler@v4
- uses: actions/labeler@v5
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/pr-labeler.yml

View File

@ -18,10 +18,14 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v4
- name: Use Node.js 18.x
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 18.x
node-version: 20.x
cache: "yarn"
- run: yarn run ci
- run: yarn run lint
# let's verify that webpack is able to package the project
- run: yarn run pack
# verify that webpack is able to package the project using the web config
- run: yarn run pack:web

View File

@ -12,7 +12,7 @@ jobs:
build:
strategy:
matrix:
node-version: [18.x]
node-version: [20.x]
runtime:
- linux-x64
- linux-armv7l

View File

@ -11,7 +11,7 @@ jobs:
if: github.event.pull_request.merged
runs-on: ubuntu-latest
steps:
- uses: mondeja/remove-labels-gh-action@v1.1.1
- uses: mondeja/remove-labels-gh-action@v2.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: |
@ -27,7 +27,7 @@ jobs:
if: github.event_name == 'pull_request_target' && (! github.event.pull_request.merged) && (github.event.action != 'converted_to_draft') && (github.event.action != 'ready_for_review')
runs-on: ubuntu-latest
steps:
- uses: mondeja/remove-labels-gh-action@v1.1.1
- uses: mondeja/remove-labels-gh-action@v2.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: |
@ -43,7 +43,7 @@ jobs:
if: github.event_name == 'pull_request_target' && github.event.action == 'converted_to_draft'
runs-on: ubuntu-latest
steps:
- uses: mondeja/remove-labels-gh-action@v1.1.1
- uses: mondeja/remove-labels-gh-action@v2.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: |
@ -54,7 +54,7 @@ jobs:
if: github.event_name == 'pull_request_target' && github.event.action == 'ready_for_review'
runs-on: ubuntu-latest
steps:
- uses: mondeja/remove-labels-gh-action@v1.1.1
- uses: mondeja/remove-labels-gh-action@v2.0.0
with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: |

View File

@ -13,7 +13,7 @@ jobs:
# For bug reports
- name: New bug issue
uses: alex-page/github-project-automation-plus@v0.8.3
uses: alex-page/github-project-automation-plus@v0.9.0
if: contains(github.event.issue.labels.*.name, 'bug') && github.event.action == 'opened'
with:
project: Bug Reports
@ -22,7 +22,7 @@ jobs:
action: update
- name: Bug issue closed
uses: alex-page/github-project-automation-plus@v0.8.3
uses: alex-page/github-project-automation-plus@v0.9.0
if: github.event.action == 'closed' || github.event.action == 'deleted'
with:
action: delete
@ -31,7 +31,7 @@ jobs:
repo-token: ${{ secrets.PUSH_TOKEN }}
- name: Bug issue reopened
uses: alex-page/github-project-automation-plus@v0.8.3
uses: alex-page/github-project-automation-plus@v0.9.0
if: contains(github.event.issue.labels.*.name, 'bug') && github.event.action == 'reopened'
with:
project: Bug Reports
@ -41,7 +41,7 @@ jobs:
# For feature requests
- name: New feature issue
uses: alex-page/github-project-automation-plus@v0.8.3
uses: alex-page/github-project-automation-plus@v0.9.0
if: contains(github.event.issue.labels.*.name, 'enhancement') && github.event.action == 'opened'
with:
project: Feature Requests
@ -50,7 +50,7 @@ jobs:
action: update
- name: Feature request issue closed
uses: alex-page/github-project-automation-plus@v0.8.3
uses: alex-page/github-project-automation-plus@v0.9.0
if: github.event.action == 'closed' || github.event.action == 'deleted'
with:
action: delete
@ -59,7 +59,7 @@ jobs:
repo-token: ${{ secrets.PUSH_TOKEN }}
- name: Feature request issue reopened
uses: alex-page/github-project-automation-plus@v0.8.3
uses: alex-page/github-project-automation-plus@v0.9.0
if: contains(github.event.issue.labels.*.name, 'enhancement') && github.event.action == 'reopened'
with:
project: Feature Requests

View File

@ -11,7 +11,7 @@ jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v8
- uses: actions/stale@v9
with:
stale-issue-message: 'This issue is stale because it has been open 28 days with no activity. Remove stale label or comment or this will be closed in 7 days.'
stale-pr-message: 'This PR is stale because it has been open 28 days with no activity. Remove stale label or comment or this will be closed in 14 days.'

View File

@ -1,5 +1,6 @@
{
"plugins": ["stylelint-use-logical-spec"],
"plugins": ["stylelint-use-logical-spec", "@double-great/stylelint-a11y"],
"extends": ["stylelint-config-standard", "stylelint-config-sass-guidelines"],
"overrides": [
{
"files": ["**/*.scss"],
@ -16,6 +17,19 @@
}
],
"rules": {
"selector-no-qualifying-type": [
true, {
"ignore": ["attribute"]
}],
"selector-class-pattern": null,
"selector-id-pattern": null,
"selector-pseudo-class-no-unknown": [
true,
{
"ignorePseudoClasses": ["deep"]
}
],
"a11y/no-outline-none": true,
"liberty/use-logical-spec": ["always", { "except": ["float"] }]
}
}

View File

@ -1,10 +1,10 @@
<p align="center">
<img alt="" src="https://docs.freetubeapp.io/images/logoColor.png" width=500 align="center">
<img alt="" src="/_icons/logoColor.svg" width=500 align="center">
</p>
FreeTube is an open source desktop YouTube player built with privacy in mind.
Use YouTube without advertisements and prevent Google from tracking you with their cookies and JavaScript.
Available for Windows, Mac & Linux thanks to Electron.
Available for Windows (10 and later), Mac (macOS 10.15 and later) & Linux thanks to Electron.
<p align="center"><a href="https://github.com/FreeTubeApp/FreeTube/releases">Download FreeTube</a></p>
<p align="center">
@ -21,17 +21,20 @@ Available for Windows, Mac & Linux thanks to Electron.
<p align="center"><a href="https://freetubeapp.io/">Website</a> &bull; <a href="https://blog.freetubeapp.io/">Blog</a> &bull; <a href="https://docs.freetubeapp.io/">Documentation</a> &bull; <a href="https://docs.freetubeapp.io/faq/">FAQ</a> &bull; <a href="https://github.com/FreeTubeApp/FreeTube/discussions">Discussions</a></p>
<hr>
<b>Please note that FreeTube is currently in Beta. While it should work well for most users, there are still bugs and missing features that need to be addressed. If you have an idea or if you found a bug, please submit a [GitHub issue](https://github.com/FreeTubeApp/FreeTube/issues/new/choose) so that
we can track it. Please search [the existing issues](https://github.com/FreeTubeApp/FreeTube/issues) before submitting to
prevent duplicates!</b>
> [!NOTE]
> FreeTube is currently in Beta. While it should work well for most users, there are still bugs and missing features that need to be addressed.
>
> If you have an idea or if you found a bug, please submit a [GitHub issue](https://github.com/FreeTubeApp/FreeTube/issues/new/choose) so that we can track it. Please search [the existing issues](https://github.com/FreeTubeApp/FreeTube/issues) before submitting to prevent duplicates!
## Screenshots
<img src="https://i.imgur.com/zFgZUUV.png" width=300> <img src="https://i.imgur.com/9evYHgN.png" width=300> <img src="https://i.imgur.com/yT2UzPa.png" width=300> <img src="https://i.imgur.com/47zIEt4.png" width=300> <img src="https://i.imgur.com/hFB2fKC.png" width=300>
## How does it work?
FreeTube uses a built in extractor to grab and serve data / videos. The [Invidious API](https://github.com/iv-org/invidious) can also optionally be used. FreeTube does not use any official APIs to obtain data. While YouTube can still see your video requests, it can no
longer track you using cookies or JavaScript. Your subscriptions and history are stored locally on your computer and never sent out. Using a VPN or Tor is highly recommended
to hide your IP while using FreeTube.
longer track you using cookies or JavaScript. Your subscriptions and history are stored locally on your computer and never sent out.
> [!IMPORTANT]
> Using a VPN or Tor is highly recommended to hide your IP while using FreeTube.
## Features
* Watch videos without ads
@ -59,16 +62,26 @@ to hide your IP while using FreeTube.
* View most age restricted videos
### Browser Extension
FreeTube is supported by the [Privacy Redirect](https://github.com/SimonBrazell/privacy-redirect) and [LibRedirect](https://github.com/libredirect/libredirect) extensions, which will allow you to open YouTube links into FreeTube. You must enable the option within the advanced settings of the extension for it to work.
FreeTube is supported by the [Privacy Redirect](https://github.com/SimonBrazell/privacy-redirect) and [LibRedirect](https://github.com/libredirect/libredirect) extensions, which will allow you to open YouTube links into FreeTube.
> [!IMPORTANT]
> You must enable the option within the advanced settings of the extension for it to work.
* Download Privacy Redirect for [Firefox](https://addons.mozilla.org/en-US/firefox/addon/privacy-redirect/) or [Google Chrome](https://chrome.google.com/webstore/detail/privacy-redirect/pmcmeagblkinmogikoikkdjiligflglb).
* Download LibRedirect for [Firefox](https://addons.mozilla.org/firefox/addon/libredirect/) or [Google Chrome](https://libredirect.github.io/download_chromium.html).
If you have issues with the extension working with FreeTube, please create an issue in this repository instead of the extension repository. This extension does not work on Linux portable builds!
> [!NOTE]
> This extension does not work on Linux portable builds!
>
> If you have issues with the extension working with FreeTube, please create an issue in this repository instead of the extension repository.
## Download Links
### Official Downloads
> [!CAUTION]
> FreeTube is only supported on Windows 10 and later, macOS 10.15 and above, and various Linux distributions. Installing it on unsupported systems may result in unexpected issues.
* [GitHub Releases](https://github.com/FreeTubeApp/FreeTube/releases)
* [FreeTube Website](https://freetubeapp.io/#download)
@ -76,18 +89,27 @@ If you have issues with the extension working with FreeTube, please create an is
* Flatpak on Flathub: [Download](https://flathub.org/apps/details/io.freetubeapp.FreeTube) and [Source Code](https://github.com/flathub/io.freetubeapp.FreeTube)
#### Automated Builds (Nightly / Weekly)
> [!WARNING]
> Use these builds at your own risk. These are pre-release versions and are only intended for people that want to test changes early and are willing to accept that things could break from one build to another.
Builds are automatically created from changes to our development branch via [GitHub Actions](https://github.com/FreeTubeApp/FreeTube/actions?query=workflow%3ABuild).
The first build with a green check mark is the latest build. You will need to have a GitHub account to download these builds.
The first build with a green check mark is the latest build.
> [!IMPORTANT]
> You will need to have a GitHub account to download these builds.
### Unofficial Downloads
These builds are maintained by the community. While they should be safe, download at your own risk. There may be issues with using these versus the official builds. Any issues specific with these builds should be sent to their respective maintainer. <b>Make sure u always try an [official download](https://github.com/freetubeapp/freetube/#official-downloads) before reporting your issue to us!</b>
> [!WARNING]
> These builds are maintained by the community. While they should be safe, download at your own risk. There may be issues with using these versus the official builds. Any issues specific with these builds should be sent to their respective maintainer. Make sure u always try an [official download](https://github.com/freetubeapp/freetube/#official-downloads) before reporting your issue to us!
* Arch User Repository (AUR): [Download](https://aur.archlinux.org/packages/freetube-bin/)
* Chocolatey: [Download](https://chocolatey.org/packages/freetube/)
* FreeTubeCordova (FreeTube port for Android and PWA): [Download](https://github.com/MarmadileManteater/FreeTubeCordova/releases) and [Source Code](https://github.com/MarmadileManteater/FreeTubeCordova)
* FreeTubeAndroid (FreeTube port for Android and PWA): [Download](https://github.com/MarmadileManteater/FreeTubeAndroid/releases) and [Source Code](https://github.com/MarmadileManteater/FreeTubeAndroid)
* Homebrew Formulae (Mac only): [Download](https://formulae.brew.sh/cask/freetube)
* makedeb Package Repository (MPR): [Download](https://mpr.makedeb.org/packages/freetube-bin)
@ -99,17 +121,19 @@ These builds are maintained by the community. While they should be safe, downloa
* Snap: [Download](https://snapcraft.io/freetube) and [Source Code](https://git.launchpad.net/freetube)
* WAPT: [Download](https://wapt.tranquil.it/store/tis-freetube)
* Windows Package Manager (winget): [Usage](https://docs.microsoft.com/en-us/windows/package-manager/winget/)
## Contributing
If you like to get your hands dirty and want to contribute, we would love to
have your help. Send a pull request and someone will review your code. Please
follow the [Contribution
Guidelines](https://github.com/FreeTubeApp/FreeTube/blob/development/CONTRIBUTING.md)
before sending your pull request.
Thank you very much to the [People and Projects](https://docs.freetubeapp.io/credits/) that make FreeTube possible!
If you like to get your hands dirty and want to contribute, we would love to
have your help. Send a pull request and someone will review your code.
> [!IMPORTANT]
> Please follow the [Contribution Guidelines](https://github.com/FreeTubeApp/FreeTube/blob/development/CONTRIBUTING.md) before sending your pull request.
## Localization
<a href="https://hosted.weblate.org/engage/free-tube/">
<img src="https://hosted.weblate.org/widgets/free-tube/-/287x66-grey.png" alt="Translation status" />
@ -120,7 +144,10 @@ We are actively looking for translations! We use [Weblate](https://hosted.webla
For the Linux Flatpak, the desktop entry comment string can be translated at our [Flatpak repository](https://github.com/flathub/io.freetubeapp.FreeTube/blob/master/io.freetubeapp.FreeTube.desktop).
## Contact
If you ever have any questions, feel free to ask it on our [Discussions](https://github.com/FreeTubeApp/FreeTube/discussions) page. Alternatively, you can email us at FreeTubeApp@protonmail.com or you can join our [Matrix Community](https://matrix.to/#/+freetube:matrix.org). Don't forget to check out the [rules](https://docs.freetubeapp.io/community/matrix/) before joining.
If you ever have any questions, feel free to ask it on our [Discussions](https://github.com/FreeTubeApp/FreeTube/discussions) page. Alternatively, you can email us at FreeTubeApp@protonmail.com or you can join our [Matrix Community](https://matrix.to/#/+freetube:matrix.org).
> [!IMPORTANT]
> Don't forget to check out the [rules](https://docs.freetubeapp.io/community/matrix/) before joining.
## Donate
If you enjoy using FreeTube, you're welcome to leave a donation using the following methods.
@ -131,7 +158,10 @@ If you enjoy using FreeTube, you're welcome to leave a donation using the follow
* Monero Address: `48WyAPdjwc6VokeXACxSZCFeKEXBiYPV6GjfvBsfg4CrUJ95LLCQSfpM9pvNKy5GE5H4hNaw99P8RZyzmaU9kb1pD7kzhCB`
While your donations are much appreciated, only donate if you really want to. Donations are used for keeping the website up and running and eventual code signing costs. If you are using the Invidious API then we recommend that you donate to the instance that you use. You can also donate to the [Invidious team](https://invidious.io/donate/) or the [Local API developer](https://github.com/sponsors/LuanRT).
While your donations are much appreciated, only donate if you really want to. Donations are used for keeping the website up and running and eventual code signing costs.
> [!TIP]
> If you are using the Invidious API then we recommend that you donate to the instance that you use. You can also donate to the [Invidious team](https://invidious.io/donate/) or the [Local API developer](https://github.com/sponsors/LuanRT).
## License
[![GNU AGPLv3 Image](https://www.gnu.org/graphics/agplv3-155x51.png)](https://www.gnu.org/licenses/agpl-3.0.html)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 480 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 981 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 B

View File

@ -0,0 +1,3 @@
<svg width="25" height="25" viewBox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M4.903,0c0.937,-0 1.697,0.76 1.697,1.697l0,23.303l-2.33,0c-1.132,0 -2.219,-0.45 -3.019,-1.251c-0.801,-0.8 -1.251,-1.887 -1.251,-3.019l-0,-19.033c0,-0.937 0.76,-1.697 1.697,-1.697l3.206,0Zm13.033,12.223c0.219,0.109 0.358,0.332 0.358,0.577c-0,0.245 -0.139,0.468 -0.358,0.577l-9.273,4.596c-0.207,0.102 -0.452,0.091 -0.648,-0.031c-0.196,-0.122 -0.315,-0.336 -0.315,-0.566l-0,-9.152c0,-0.23 0.119,-0.444 0.315,-0.566c0.196,-0.122 0.441,-0.133 0.648,-0.031l9.273,4.596Zm7.064,-12.223l0,2.022c-0,1.214 -0.482,2.378 -1.341,3.237c-0.859,0.859 -2.023,1.341 -3.237,1.341l-11.042,0c-0.928,-0 -1.68,-0.752 -1.68,-1.68l0,-3.24c0,-0.928 0.752,-1.68 1.68,-1.68l15.62,0Z"/>
</svg>

After

Width:  |  Height:  |  Size: 926 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

View File

@ -0,0 +1,4 @@
<svg width="25" height="25" viewBox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M4.903,0c0.937,-0 1.697,0.76 1.697,1.697l0,23.303l-2.33,0c-1.132,0 -2.219,-0.45 -3.019,-1.251c-0.801,-0.8 -1.251,-1.887 -1.251,-3.019l-0,-19.033c0,-0.937 0.76,-1.697 1.697,-1.697l3.206,0Zm20.097,0l0,2.022c-0,1.214 -0.482,2.378 -1.341,3.237c-0.859,0.859 -2.023,1.341 -3.237,1.341l-11.042,0c-0.928,-0 -1.68,-0.752 -1.68,-1.68l0,-3.24c0,-0.928 0.752,-1.68 1.68,-1.68l15.62,0Z" style="fill:#1e1e2e;"/>
<path d="M17.936,12.223c0.219,0.109 0.358,0.332 0.358,0.577c-0,0.245 -0.139,0.468 -0.358,0.577l-9.273,4.596c-0.207,0.102 -0.452,0.091 -0.648,-0.031c-0.196,-0.122 -0.315,-0.336 -0.315,-0.566l-0,-9.152c0,-0.23 0.119,-0.444 0.315,-0.566c0.196,-0.122 0.441,-0.133 0.648,-0.031l9.273,4.596Z" style="fill:#1e1e2e;"/>
</svg>

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 426 B

View File

@ -0,0 +1,4 @@
<svg width="25" height="25" viewBox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M4.903,0c0.937,-0 1.697,0.76 1.697,1.697l0,23.303l-2.33,0c-1.132,0 -2.219,-0.45 -3.019,-1.251c-0.801,-0.8 -1.251,-1.887 -1.251,-3.019l-0,-19.033c0,-0.937 0.76,-1.697 1.697,-1.697l3.206,0Zm20.097,0l0,2.022c-0,1.214 -0.482,2.378 -1.341,3.237c-0.859,0.859 -2.023,1.341 -3.237,1.341l-11.042,0c-0.928,-0 -1.68,-0.752 -1.68,-1.68l0,-3.24c0,-0.928 0.752,-1.68 1.68,-1.68l15.62,0Z" style="fill:#cdd6f4;"/>
<path d="M17.936,12.223c0.219,0.109 0.358,0.332 0.358,0.577c-0,0.245 -0.139,0.468 -0.358,0.577l-9.273,4.596c-0.207,0.102 -0.452,0.091 -0.648,-0.031c-0.196,-0.122 -0.315,-0.336 -0.315,-0.566l-0,-9.152c0,-0.23 0.119,-0.444 0.315,-0.566c0.196,-0.122 0.441,-0.133 0.648,-0.031l9.273,4.596Z" style="fill:#cdd6f4;"/>
</svg>

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

View File

@ -1,95 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 250 250" style="enable-background:new 0 0 250 250;" xml:space="preserve">
<image style="overflow:visible;" width="250" height="250" xlink:href="data:image/png;base64,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
rzF0qX3/GQAny0sokdEcawAAAABJRU5ErkJggg==">
</image>
</svg>
<svg width="250" height="250" viewBox="0 0 250 250" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M49.027,0c9.374,-0 16.973,7.599 16.973,16.973l0,233.027l-23.299,0c-11.325,0 -22.186,-4.499 -30.194,-12.507c-8.008,-8.008 -12.507,-18.869 -12.507,-30.194l-0,-190.326c0,-9.374 7.599,-16.973 16.973,-16.973l32.054,-0Zm200.973,-0l0,20.217c-0,12.142 -4.824,23.787 -13.41,32.373c-8.586,8.586 -20.231,13.41 -32.373,13.41l-110.412,-0c-9.281,-0 -16.805,-7.524 -16.805,-16.805l0,-32.39c0,-9.281 7.524,-16.805 16.805,-16.805l156.195,-0Z" style="fill:#f33;"/>
<path d="M179.358,122.23c2.193,1.087 3.58,3.323 3.58,5.77c0,2.447 -1.387,4.683 -3.58,5.77l-92.732,45.959c-2.066,1.024 -4.515,0.907 -6.474,-0.308c-1.96,-1.216 -3.152,-3.359 -3.152,-5.665l-0,-91.512c0,-2.306 1.192,-4.449 3.152,-5.665c1.959,-1.215 4.408,-1.332 6.474,-0.308l92.732,45.959Z" style="fill:#29abe1;"/>
</svg>

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 B

View File

@ -0,0 +1,4 @@
<svg width="25" height="25" viewBox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M4.903,0c0.937,-0 1.697,0.76 1.697,1.697l0,23.303l-2.33,0c-1.132,0 -2.219,-0.45 -3.019,-1.251c-0.801,-0.8 -1.251,-1.887 -1.251,-3.019l-0,-19.033c0,-0.937 0.76,-1.697 1.697,-1.697l3.206,0Zm20.097,0l0,2.022c-0,1.214 -0.482,2.378 -1.341,3.237c-0.859,0.859 -2.023,1.341 -3.237,1.341l-11.042,0c-0.928,-0 -1.68,-0.752 -1.68,-1.68l0,-3.24c0,-0.928 0.752,-1.68 1.68,-1.68l15.62,0Z" style="fill:#f33;"/>
<path d="M17.936,12.223c0.219,0.109 0.358,0.332 0.358,0.577c-0,0.245 -0.139,0.468 -0.358,0.577l-9.273,4.596c-0.207,0.102 -0.452,0.091 -0.648,-0.031c-0.196,-0.122 -0.315,-0.336 -0.315,-0.566l-0,-9.152c0,-0.23 0.119,-0.444 0.315,-0.566c0.196,-0.122 0.441,-0.133 0.648,-0.031l9.273,4.596Z" style="fill:#29abe1;"/>
</svg>

After

Width:  |  Height:  |  Size: 979 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 356 B

View File

@ -0,0 +1,4 @@
<svg width="25" height="25" viewBox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M4.903,0c0.937,-0 1.697,0.76 1.697,1.697l0,23.303l-2.33,0c-1.132,0 -2.219,-0.45 -3.019,-1.251c-0.801,-0.8 -1.251,-1.887 -1.251,-3.019l-0,-19.033c0,-0.937 0.76,-1.697 1.697,-1.697l3.206,0Zm20.097,0l0,2.022c-0,1.214 -0.482,2.378 -1.341,3.237c-0.859,0.859 -2.023,1.341 -3.237,1.341l-11.042,0c-0.928,-0 -1.68,-0.752 -1.68,-1.68l0,-3.24c0,-0.928 0.752,-1.68 1.68,-1.68l15.62,0Z" style="fill:#282a36;"/>
<path d="M17.936,12.223c0.219,0.109 0.358,0.332 0.358,0.577c-0,0.245 -0.139,0.468 -0.358,0.577l-9.273,4.596c-0.207,0.102 -0.452,0.091 -0.648,-0.031c-0.196,-0.122 -0.315,-0.336 -0.315,-0.566l-0,-9.152c0,-0.23 0.119,-0.444 0.315,-0.566c0.196,-0.122 0.441,-0.133 0.648,-0.031l9.273,4.596Z" style="fill:#282a36;"/>
</svg>

After

Width:  |  Height:  |  Size: 982 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 353 B

View File

@ -0,0 +1,4 @@
<svg width="25" height="25" viewBox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M4.903,0c0.937,-0 1.697,0.76 1.697,1.697l0,23.303l-2.33,0c-1.132,0 -2.219,-0.45 -3.019,-1.251c-0.801,-0.8 -1.251,-1.887 -1.251,-3.019l-0,-19.033c0,-0.937 0.76,-1.697 1.697,-1.697l3.206,0Zm20.097,0l0,2.022c-0,1.214 -0.482,2.378 -1.341,3.237c-0.859,0.859 -2.023,1.341 -3.237,1.341l-11.042,0c-0.928,-0 -1.68,-0.752 -1.68,-1.68l0,-3.24c0,-0.928 0.752,-1.68 1.68,-1.68l15.62,0Z" style="fill:#f8f8f8;"/>
<path d="M17.936,12.223c0.219,0.109 0.358,0.332 0.358,0.577c-0,0.245 -0.139,0.468 -0.358,0.577l-9.273,4.596c-0.207,0.102 -0.452,0.091 -0.648,-0.031c-0.196,-0.122 -0.315,-0.336 -0.315,-0.566l-0,-9.152c0,-0.23 0.119,-0.444 0.315,-0.566c0.196,-0.122 0.441,-0.133 0.648,-0.031l9.273,4.596Z" style="fill:#f8f8f8;"/>
</svg>

After

Width:  |  Height:  |  Size: 982 B

View File

@ -0,0 +1,4 @@
<svg width="25" height="25" viewBox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M4.903,0c0.937,-0 1.697,0.76 1.697,1.697l0,23.303l-2.33,0c-1.132,0 -2.219,-0.45 -3.019,-1.251c-0.801,-0.8 -1.251,-1.887 -1.251,-3.019l-0,-19.033c0,-0.937 0.76,-1.697 1.697,-1.697l3.206,0Zm20.097,0l0,2.022c-0,1.214 -0.482,2.378 -1.341,3.237c-0.859,0.859 -2.023,1.341 -3.237,1.341l-11.042,0c-0.928,-0 -1.68,-0.752 -1.68,-1.68l0,-3.24c0,-0.928 0.752,-1.68 1.68,-1.68l15.62,0Z" style="fill:#eee;"/>
<path d="M17.936,12.223c0.219,0.109 0.358,0.332 0.358,0.577c-0,0.245 -0.139,0.468 -0.358,0.577l-9.273,4.596c-0.207,0.102 -0.452,0.091 -0.648,-0.031c-0.196,-0.122 -0.315,-0.336 -0.315,-0.566l-0,-9.152c0,-0.23 0.119,-0.444 0.315,-0.566c0.196,-0.122 0.441,-0.133 0.648,-0.031l9.273,4.596Z" style="fill:#eee;"/>
</svg>

After

Width:  |  Height:  |  Size: 976 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,95 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 250 250" style="enable-background:new 0 0 250 250;" xml:space="preserve">
<image style="overflow:visible;" width="250" height="250" xlink:href="data:image/png;base64,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
GrcAAAAASUVORK5CYII=">
</image>
</svg>
<svg width="250" height="250" viewBox="0 0 250 250" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M49.027,0c9.374,-0 16.973,7.599 16.973,16.973l0,233.027l-23.299,0c-11.325,0 -22.186,-4.499 -30.194,-12.507c-8.008,-8.008 -12.507,-18.869 -12.507,-30.194l-0,-190.326c0,-9.374 7.599,-16.973 16.973,-16.973l32.054,-0Zm130.331,122.23c2.193,1.087 3.58,3.323 3.58,5.77c0,2.447 -1.387,4.683 -3.58,5.77l-92.732,45.959c-2.066,1.024 -4.515,0.907 -6.474,-0.308c-1.96,-1.216 -3.152,-3.359 -3.152,-5.665l-0,-91.512c0,-2.306 1.192,-4.449 3.152,-5.665c1.959,-1.215 4.408,-1.332 6.474,-0.308l92.732,45.959Zm70.642,-122.23l-0,20.217c-0,12.142 -4.824,23.787 -13.41,32.373c-8.586,8.586 -20.231,13.41 -32.373,13.41l-110.412,-0c-9.281,-0 -16.805,-7.524 -16.805,-16.805l0,-32.39c0,-9.281 7.524,-16.805 16.805,-16.805l156.195,-0Z" style="fill:#fff;"/>
</svg>

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 1001 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

View File

@ -0,0 +1,3 @@
<svg width="25" height="25" viewBox="0 0 25 25" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M4.903,0c0.937,-0 1.697,0.76 1.697,1.697l0,23.303l-2.33,0c-1.132,0 -2.219,-0.45 -3.019,-1.251c-0.801,-0.8 -1.251,-1.887 -1.251,-3.019l-0,-19.033c0,-0.937 0.76,-1.697 1.697,-1.697l3.206,0Zm13.033,12.223c0.219,0.109 0.358,0.332 0.358,0.577c-0,0.245 -0.139,0.468 -0.358,0.577l-9.273,4.596c-0.207,0.102 -0.452,0.091 -0.648,-0.031c-0.196,-0.122 -0.315,-0.336 -0.315,-0.566l-0,-9.152c0,-0.23 0.119,-0.444 0.315,-0.566c0.196,-0.122 0.441,-0.133 0.648,-0.031l9.273,4.596Zm7.064,-12.223l0,2.022c-0,1.214 -0.482,2.378 -1.341,3.237c-0.859,0.859 -2.023,1.341 -3.237,1.341l-11.042,0c-0.928,-0 -1.68,-0.752 -1.68,-1.68l0,-3.24c0,-0.928 0.752,-1.68 1.68,-1.68l15.62,0Z" style="fill:#fff;"/>
</svg>

After

Width:  |  Height:  |  Size: 945 B

View File

@ -1,193 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 640 200" style="enable-background:new 0 0 640 200;" xml:space="preserve">
<title>logotype</title>
<image style="overflow:visible;enable-background:new ;" width="640" height="200" xlink:href="data:image/png;base64,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
6f8GADXlP8HENmbQAAAAAElFTkSuQmCC">
</image>
</svg>
<svg width="640" height="200" viewBox="0 0 640 200" version="1.1" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g>
<path d="M610.803,154.398c0.141,0.306 0.212,0.603 0.212,0.893c-0,0.53 -0.208,0.98 -0.623,1.35c-0.415,0.37 -0.89,0.555 -1.422,0.555c-0.361,-0 -0.69,-0.097 -0.988,-0.29c-0.297,-0.192 -0.533,-0.482 -0.705,-0.868l-1.058,-2.435l-7.616,-0l-1.082,2.435c-0.172,0.386 -0.411,0.676 -0.717,0.868c-0.305,0.193 -0.638,0.29 -0.999,0.29c-0.533,-0 -1.015,-0.185 -1.446,-0.555c-0.431,-0.37 -0.646,-0.82 -0.646,-1.35c0,-0.29 0.071,-0.587 0.212,-0.893l6.206,-13.07c0.203,-0.435 0.505,-0.768 0.905,-1.001c0.399,-0.233 0.842,-0.35 1.328,-0.35c0.47,0 0.909,0.117 1.316,0.35c0.408,0.233 0.713,0.566 0.917,1.001l6.206,13.07Zm-6.041,-4.123l-2.351,-5.378l-2.351,5.378l4.702,-0Z" style="fill-rule:nonzero;"/>
<path d="M620.206,144.969c0.988,0 1.869,0.261 2.645,0.784c0.776,0.522 1.379,1.258 1.81,2.206c0.431,0.949 0.647,2.034 0.647,3.256c-0,1.222 -0.216,2.295 -0.647,3.22c-0.431,0.924 -1.03,1.635 -1.798,2.134c-0.768,0.498 -1.654,0.747 -2.657,0.747c-0.736,0 -1.414,-0.152 -2.033,-0.458c-0.619,-0.305 -1.101,-0.715 -1.446,-1.23l0,4.1c0,0.563 -0.188,1.013 -0.564,1.351c-0.376,0.337 -0.87,0.506 -1.481,0.506c-0.643,0 -1.16,-0.181 -1.551,-0.543c-0.392,-0.361 -0.588,-0.824 -0.588,-1.386l-0,-12.661c-0,-0.595 0.184,-1.073 0.552,-1.435c0.369,-0.362 0.866,-0.543 1.493,-0.543c0.596,0 1.077,0.161 1.446,0.483c0.368,0.321 0.576,0.747 0.623,1.278c0.329,-0.563 0.811,-1.005 1.445,-1.327c0.635,-0.321 1.336,-0.482 2.104,-0.482Zm-1.269,9.14c0.721,0 1.273,-0.249 1.657,-0.748c0.384,-0.498 0.576,-1.213 0.576,-2.146c0,-0.981 -0.196,-1.732 -0.588,-2.255c-0.391,-0.522 -0.948,-0.784 -1.669,-0.784c-0.72,0 -1.277,0.258 -1.669,0.772c-0.391,0.515 -0.587,1.254 -0.587,2.219c-0,0.948 0.196,1.676 0.587,2.182c0.392,0.507 0.956,0.76 1.693,0.76Z" style="fill-rule:nonzero;"/>
<path d="M634.899,144.969c0.987,0 1.869,0.261 2.644,0.784c0.776,0.522 1.38,1.258 1.811,2.206c0.431,0.949 0.646,2.034 0.646,3.256c0,1.222 -0.215,2.295 -0.646,3.22c-0.431,0.924 -1.031,1.635 -1.799,2.134c-0.768,0.498 -1.653,0.747 -2.656,0.747c-0.737,0 -1.415,-0.152 -2.034,-0.458c-0.619,-0.305 -1.101,-0.715 -1.445,-1.23l-0,4.1c-0,0.563 -0.188,1.013 -0.565,1.351c-0.376,0.337 -0.869,0.506 -1.481,0.506c-0.642,0 -1.159,-0.181 -1.551,-0.543c-0.392,-0.361 -0.588,-0.824 -0.588,-1.386l0,-12.661c0,-0.595 0.184,-1.073 0.553,-1.435c0.368,-0.362 0.866,-0.543 1.492,-0.543c0.596,0 1.078,0.161 1.446,0.483c0.368,0.321 0.576,0.747 0.623,1.278c0.329,-0.563 0.811,-1.005 1.446,-1.327c0.635,-0.321 1.336,-0.482 2.104,-0.482Zm-1.27,9.14c0.721,0 1.274,-0.249 1.658,-0.748c0.384,-0.498 0.576,-1.213 0.576,-2.146c-0,-0.981 -0.196,-1.732 -0.588,-2.255c-0.392,-0.522 -0.948,-0.784 -1.669,-0.784c-0.721,0 -1.277,0.258 -1.669,0.772c-0.392,0.515 -0.588,1.254 -0.588,2.219c0,0.948 0.196,1.676 0.588,2.182c0.392,0.507 0.956,0.76 1.692,0.76Z" style="fill-rule:nonzero;"/>
</g>
<path d="M242.417,136.617c-1.853,0 -3.339,-0.575 -4.457,-1.725c-1.118,-1.15 -1.677,-2.652 -1.677,-4.504l-0,-56.063c-0,-1.853 0.527,-3.29 1.582,-4.312c1.054,-1.023 2.507,-1.534 4.36,-1.534l33.638,0c3.897,0 5.845,1.661 5.845,4.984c-0,3.258 -1.948,4.887 -5.845,4.887l-27.409,0l-0,18.4l25.492,0c3.897,0 5.846,1.661 5.846,4.983c-0,3.259 -1.949,4.888 -5.846,4.888l-25.492,0l-0,23.767c-0,1.852 -0.543,3.354 -1.629,4.504c-1.086,1.15 -2.556,1.725 -4.408,1.725Z" style="fill-rule:nonzero;"/>
<path d="M309.673,88.221c1.503,-0.128 2.688,0.223 3.555,1.054c0.868,0.831 1.301,2.076 1.301,3.737c-0,1.725 -0.376,3.003 -1.127,3.834c-0.752,0.83 -2.11,1.373 -4.076,1.629l-2.601,0.287c-3.411,0.384 -5.911,1.662 -7.501,3.834c-1.59,2.172 -2.385,4.887 -2.385,8.146l-0,20.125c-0,1.852 -0.52,3.274 -1.561,4.264c-1.04,0.991 -2.341,1.486 -3.902,1.486c-1.561,0 -2.847,-0.495 -3.858,-1.486c-1.012,-0.99 -1.518,-2.412 -1.518,-4.264l-0,-37.088c-0,-1.789 0.506,-3.162 1.518,-4.121c1.011,-0.958 2.269,-1.437 3.772,-1.437c1.503,0 2.717,0.463 3.642,1.389c0.925,0.927 1.387,2.252 1.387,3.977l-0,3.834c1.098,-2.811 2.732,-4.984 4.899,-6.517c2.168,-1.533 4.582,-2.396 7.241,-2.587l1.214,-0.096Z" style="fill-rule:nonzero;"/>
<path d="M360.691,123.2c1.136,0 2.054,0.415 2.756,1.246c0.701,0.83 1.052,1.948 1.052,3.354c-0,1.981 -1.236,3.642 -3.708,4.983c-2.272,1.214 -4.844,2.189 -7.717,2.923c-2.873,0.735 -5.612,1.102 -8.218,1.102c-7.884,0 -14.131,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c-0,-4.792 1.002,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.641,-2.045 7.767,-3.067 12.377,-3.067c4.41,0 8.252,0.927 11.525,2.779c3.274,1.853 5.813,4.473 7.617,7.859c1.804,3.386 2.706,7.379 2.706,11.979c-0,2.747 -1.269,4.121 -3.808,4.121l-29.565,0c0.401,4.408 1.704,7.65 3.909,9.727c2.204,2.076 5.411,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.474,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.408,0 -6.13,1.023 -8.168,3.067c-2.038,2.045 -3.257,4.983 -3.658,8.817l22.65,0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.871,-2.012 -4.477,-3.019 -7.817,-3.019Z" style="fill-rule:nonzero;"/>
<path d="M415.049,123.2c1.136,0 2.055,0.415 2.756,1.246c0.702,0.83 1.052,1.948 1.052,3.354c-0,1.981 -1.236,3.642 -3.708,4.983c-2.271,1.214 -4.844,2.189 -7.717,2.923c-2.872,0.735 -5.612,1.102 -8.218,1.102c-7.883,0 -14.13,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c-0,-4.792 1.003,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.642,-2.045 7.767,-3.067 12.378,-3.067c4.409,0 8.251,0.927 11.525,2.779c3.274,1.853 5.812,4.473 7.616,7.859c1.804,3.386 2.706,7.379 2.706,11.979c-0,2.747 -1.269,4.121 -3.808,4.121l-29.565,0c0.401,4.408 1.704,7.65 3.909,9.727c2.205,2.076 5.412,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.475,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.407,0 -6.13,1.023 -8.168,3.067c-2.037,2.045 -3.257,4.983 -3.658,8.817l22.65,0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.87,-2.012 -4.476,-3.019 -7.817,-3.019Z" style="fill-rule:nonzero;"/>
<path d="M452.658,136.617c-2.137,0 -4.861,-0.672 -6.173,-2.016c-1.313,-1.343 -1.969,-3.135 -1.969,-5.374l-0,-48.56l-13.833,0c-4.517,0 -6.775,-2.047 -6.775,-6.142c-0,-4.03 2.258,-6.046 6.775,-6.046l43.949,0c4.517,0 6.776,2.016 6.776,6.046c-0,4.095 -2.259,6.142 -6.776,6.142l-13.833,0l0,48.56c0,2.239 -0.64,4.031 -1.922,5.374c-1.282,1.344 -4.022,2.016 -6.219,2.016Z" style="fill-rule:nonzero;"/>
<path d="M515.741,88.529c2.236,0 4.009,0.607 5.319,1.821c1.31,1.214 1.964,2.875 1.964,4.983l-0,35.171c-0,1.981 -0.686,3.578 -2.06,4.792c-1.374,1.214 -3.147,1.821 -5.319,1.821c-2.044,0 -3.673,-0.575 -4.887,-1.725c-1.214,-1.15 -1.821,-2.684 -1.821,-4.6l-0,-0.959c-1.47,2.428 -3.402,4.281 -5.798,5.559c-2.396,1.277 -5.095,1.916 -8.098,1.916c-5.942,0 -10.366,-1.645 -13.273,-4.935c-2.907,-3.29 -4.36,-8.258 -4.36,-14.902l-0,-22.138c-0,-2.108 0.655,-3.769 1.964,-4.983c1.31,-1.214 3.083,-1.821 5.319,-1.821c2.236,0 3.993,0.607 5.271,1.821c1.278,1.214 1.917,2.875 1.917,4.983l-0,22.425c-0,2.811 0.591,4.888 1.772,6.23c1.182,1.341 2.987,2.012 5.415,2.012c2.811,0 5.095,-0.958 6.852,-2.875c1.757,-1.917 2.636,-4.44 2.636,-7.571l-0,-20.221c-0,-2.108 0.638,-3.769 1.916,-4.983c1.278,-1.214 3.035,-1.821 5.271,-1.821Z" style="fill-rule:nonzero;"/>
<path d="M563.858,88.338c4.171,-0.001 7.853,0.99 11.046,2.97c3.193,1.981 5.686,4.808 7.478,8.482c1.792,3.673 2.688,7.938 2.688,12.793c-0,4.856 -0.896,9.152 -2.688,12.89c-1.792,3.737 -4.301,6.644 -7.527,8.721c-3.226,2.076 -6.891,3.114 -10.997,3.114c-3.324,-0 -6.321,-0.686 -8.993,-2.06c-2.672,-1.374 -4.725,-3.274 -6.159,-5.702l-0,0.766c-0,2.045 -0.651,3.69 -1.955,4.936c-1.303,1.246 -3.063,1.869 -5.278,1.869c-2.216,-0 -3.992,-0.623 -5.328,-1.869c-1.336,-1.246 -2.004,-2.891 -2.004,-4.936l0,-55.2c0,-1.98 0.701,-3.577 2.102,-4.791c1.401,-1.214 3.242,-1.821 5.523,-1.821c2.15,-0 3.877,0.575 5.181,1.725c1.303,1.15 1.955,2.683 1.955,4.6l-0,20.987c1.433,-2.363 3.47,-4.2 6.109,-5.51c2.64,-1.31 5.588,-1.965 8.847,-1.965l-0,0.001Zm-4.301,37.95c3.454,-0 6.126,-1.197 8.016,-3.593c1.889,-2.396 2.834,-5.766 2.834,-10.111c0,-4.28 -0.945,-7.555 -2.834,-9.823c-1.89,-2.268 -4.562,-3.402 -8.016,-3.402c-3.454,0 -6.126,1.166 -8.016,3.498c-1.89,2.332 -2.835,5.638 -2.835,9.919c-0,4.344 0.945,7.683 2.835,10.015c1.89,2.332 4.562,3.498 8.016,3.498l0,-0.001Z" style="fill-rule:nonzero;"/>
<path d="M635.013,122.55c1.385,0 2.511,0.511 3.377,1.533c0.865,1.023 1.298,2.332 1.298,3.929c-0,1.087 -0.346,2.093 -1.039,3.019c-0.692,0.927 -1.662,1.709 -2.909,2.348c-2.354,1.15 -5.09,2.093 -8.207,2.827c-3.117,0.735 -5.991,1.102 -8.623,1.102c-5.541,0 -10.372,-0.99 -14.493,-2.971c-4.121,-1.98 -7.289,-4.807 -9.506,-8.481c-2.216,-3.673 -3.324,-8.002 -3.324,-12.985c0,-4.792 1.073,-9.04 3.221,-12.746c2.147,-3.706 5.125,-6.597 8.934,-8.673c3.809,-2.076 8.138,-3.115 12.986,-3.115c4.641,0 8.71,0.943 12.208,2.828c3.497,1.884 6.216,4.568 8.155,8.05c1.939,3.482 2.909,7.554 2.909,12.218c0,1.406 -0.364,2.476 -1.091,3.211c-0.727,0.734 -1.749,1.102 -3.065,1.102l-29.089,0c0.485,3.769 1.731,6.501 3.74,8.194c2.009,1.693 4.883,2.539 8.623,2.539c2.009,0 3.809,-0.223 5.402,-0.671c1.593,-0.447 3.359,-1.054 5.299,-1.821c0.969,-0.383 1.904,-0.718 2.805,-1.006c0.9,-0.287 1.697,-0.431 2.389,-0.431Zm-17.869,-24.246c-2.978,-0 -5.368,0.879 -7.168,2.636c-1.801,1.757 -2.875,4.296 -3.221,7.618l20.051,-0c-0.208,-3.386 -1.126,-5.941 -2.753,-7.666c-1.628,-1.725 -3.931,-2.588 -6.909,-2.588Z" style="fill-rule:nonzero;"/>
<path d="M39.222,0c7.499,0 13.578,6.079 13.578,13.578l0,186.422l-18.639,0c-9.06,0 -17.749,-3.599 -24.155,-10.006c-6.407,-6.406 -10.006,-15.095 -10.006,-24.155l0,-152.261c0,-7.499 6.079,-13.578 13.578,-13.578l25.644,0Zm160.778,-0l0,16.174c0,9.713 -3.859,19.029 -10.728,25.898c-6.869,6.869 -16.185,10.728 -25.898,10.728l-88.33,0c-7.425,0 -13.444,-6.019 -13.444,-13.444l0,-25.912c0,-7.425 6.019,-13.444 13.444,-13.444l124.956,-0Z"/>
<path d="M143.486,97.784c1.755,0.87 2.864,2.658 2.864,4.616c0,1.958 -1.109,3.746 -2.864,4.616l-74.185,36.767c-1.653,0.819 -3.612,0.726 -5.179,-0.246c-1.568,-0.973 -2.522,-2.687 -2.522,-4.532l0,-73.21c0,-1.845 0.954,-3.559 2.522,-4.532c1.567,-0.972 3.526,-1.065 5.179,-0.246l74.185,36.767Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

View File

@ -1,224 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 640 200" style="enable-background:new 0 0 640 200;" xml:space="preserve">
<image style="overflow:visible;" width="640" height="200" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAoAAAADICAYAAAB4WVALAAAACXBIWXMAAC4jAAAuIwF4pT92AAAK
T2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AU
kSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXX
Pues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgAB
eNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAt
AGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3
AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dX
Lh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+
5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk
5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd
0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA
4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzA
BhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/ph
CJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5
h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+
Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhM
WE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQ
AkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+Io
UspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdp
r+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZ
D5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61Mb
U2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY
/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllir
SKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79u
p+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6Vh
lWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1
mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lO
k06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7Ry
FDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3I
veRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+B
Z7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/
0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5p
DoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5q
PNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIs
OpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5
hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQ
rAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9
rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1d
T1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aX
Dm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7
vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3S
PVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKa
RptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO
32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21
e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfV
P1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i
/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8
IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADq
YAAAOpgAABdvkl/FRgAAJaVJREFUeNrs3Xe8HFXB//HPJiSEYhJgQx0YwgBx6XilKC2hKFVBHKkC
CooFpD20B/2BAsKjIKgUQZp0WH9UI70ZiqCLoSQDwpIMLCVmQhJISEi7zx9n8nBZbpm29+7ufN+v
176SvXfKnjNn7373zMw5BfrQ2dGxLuACuwAbAxb9ayEwBagA9wN3FiqVDxu5w86OjgKwPbA/sB2w
ITAcyZ1CpVJQLYiISNt9vvUSgjYCzgH27W25ATAXuAQ4r1CpzG5A+NsvLPdGah6iACgiIrkIgJ0d
HYOA04EzgSFN/NrfAw4vVCoPZhT8VgKuBvZTsxAFQBERaWeD6kLQUOA2TA/YkCZ/7asD93V2dPwo
g/BnAc8o/ImIiEiuAmDY83cT8M0We/2XdnZ0HJki/K0MPAKMUXMQERGRXAVAzGnfb7ZoOS7v7OjY
KuG612Fu8hARERHJTwDs7OgoYa75a1VDgGs7Ozpinbbu7Og4ENhHzUBERERyFwCBc2n+a/76sjFw
WIzwNwj4uZqAiIiI5C4AhuP87dsm5Tk+xrK7olO/IiIikscAiBnkuV2GutgkHL8wCt3xKyIiIrkN
gLu0WZl2jbjcTjr8IiIiktcAuHGblWmTvhYIp3pbX4dfRERE8hoArTYr0+oRlhlB69/0IiIiIpI4
ALab4TqsIiIiIvkKgCIiIiKiACgiIiIiCoAiIiIiCoAiIiIiogAokm8zVAUiIqIAKJIv76sKRERE
AVAkX95UFYiIiAKgSL68rioQEREFQJF8maQqEBERBUCRfHleVSAiIgqAIvmxAKioGkRERAFQJD+e
KVQq81UNIiKiACiSH/epCkRERAFQJF/uUhWIiIgCoEh+VAqVyquqBhERUQAUyY9rVAUiIqIAKJIf
c4CbVA0iIqIAKJIfVxYqldmqBhERUQAUyYf5wAWqBhERUQAUyY9LCpXKu6oGERFRABTJh+nAOaoG
ERFRABTJj5N07Z+IiCgAiuTHfYVK5QZVg4iIKACK5EMAfFfVICIiCoAi+bAEOKhQqbynqhAREQVA
kXw4tVCpPKxqEBERBcB8WKRDn3uXFioVjfknIiIKgHlRqFTmAB/q8OfWzcBxqgYREVEAzJ9JOvy5
dCNwWKFSWayqEBERBcD8eUSHP3d+o/AnIiKS7wB4sw5/biwEflCoVE4qVCqdqg4REVEAzKlCpTIZ
eEBNoO1NAXYoVCpXqCpERERyHgBDpwI6Hdi+rgW2KFQqz6oqREREFAABKFQqLwBnqRm0ncnAroVK
5buFSuUDVYeIiIgCYL1zgdtUDW2hBvwA2LxQqegmHxERkR4sk/cKKFQqnZ0dHYcC84Aj1CRa0iuY
O3xvKFQq81UdIiIiCoBRQuAi4DudHR3PAL8GhqtWmt5M4E7gOuBJ3d0rIiKiAJg0CF7Z2dFxN3Ai
cBSwsmqlaSwEngcmAPcBEwqVykJVi4iISILM09nR0W49J08UKpWxaTfS2dExFNgR2B4YA6wEDFOT
abjZwHxgBuaavimAB0wuVCoLVD0iIiLpqQewp2RswsbD4UNERESkbeguYBEREREFQBERERFRABQR
ERERBUARERERUQAUEREREQVAEREREWk2uR8GplT29wIOB9YD3gPuAW7wXHuemoeIiIi0o9wOBF0q
+wXgj8CR3fz6PeB/gCsUBEVERKTd5PkU8A97CH8AqwMXAW+Uyv7xpbK/nJqKiIiIKAC2vuMjLKMg
KCIiIgqA7SAMchvEWEVBUERERBQAW9yyCddTEBQREREFwJxSEBQREZGWtYyqIJMgeGqp7OuuYRGR
Bgu/cK8DtNIX7zmA77n2wpwfu2WAlYC5nmt/pNY8sHI5DEyp7I8EZjZg3xo+RvpVYDkbATsAqzHw
PfozgKeKterzOjLSgPCwA3A6sAswtAWLMBczzuzZnmt7OTpuo4GTgT0Bu64+/gncCFznufYitXIF
wFYOgAqC0l/Bb13gSmC3Jnx5dwKHFmtVfcOXrELEOcAZbVKchcAPPde+OgfH7SvAHcAKfSz6PLCn
59rT1Nr7j64BbAxdIyiNDH9jgH80afgD2A+4WkdKMgoR/9VG4Q9gCHBVqezv1+bHbTWgHCH8AXwB
uDc8RSwKgAqCIt2Ev0HAbUCxyV/qgYHlrK8jJilDhAWc3abFu7TNPxNOA4bHWH4r4DC1egVABUGR
7u0JbN4ir/VLOlyS0sHAsDYt2xrAHm0a3AcBhyRY9Ug1eQVABUGRngNgq1heh0tS2lzla9lyjUqw
3pdLZX8VNXsFQAVBke57DVrFJB0uSWlwm5evXa952yjFupup2SsAKgiKfFahRV7na8DTOlyS0itt
Xr52/ZK0dop1bTV7BUAFQZHWNBM4qFirLlFVSEo3AovbtGyzgPFtWrYVUqw7Us2+f+iW6+YMgppZ
RLLSCbzZD/tZAkwHJgAXFWvVt1X1kpbn2q+Xyv6vMANAt5uTPdee3aaH7nNqvQqAoiAoA+uDYq26
rqpBWtjPgFVpnztEO4Gfea59lQ6tDCSdAm6NIKhTwyKSS55rL/Zc+yhgf+BfLR78HgF28lz7XB1Z
GWjqAWytIKgeQRHJaxC8A7ijVPbXAtYD4g4XsipwRQYv5Xzg2ZjBbzrwb8+1Ax1JUQAUBUERkfhB
8G0g9jWmpbK/bkYv4VnPte/SkZBWp1PArR0EdWpYREREFAAVBEVEREQUABUERURERBQAFQRFRERE
AVAUBEVEREQBUBQERUREWkep7A8plf1Cm5Rl2UZuX8PA5CsIavgYaTuB5djAVphJ5FcClgfeAe4t
1qqv9sP+VwM+D2wIjMLMg7oCMD98zAB84A3glWKtuqhF6nVFYAxQAtYMyzQCMzfvh8BczDSDbwCv
FmvVD9QaE3/IrwMUw/Yy3XPtWj/uf3D43hkVHtvpQM1z7cVNXm8rA/sAWwObARsAw4Hlwt/PDd93
k4DHgL94rv1WE5ZjNLBDWI4NAQczxuWI8PcAHwNzgBowBXgVeBp4ynPtGQqAoiAorRjeNgVOBHYF
1gI+wAyye3mxVr2rl/WGYaYG+374x787vwos53LguCxDV2A5BWAs8A3gq+EHT1TzAst5BngYuLlY
q/pNdjw2AA4FdgO2IfpZoiWB5bwIPA7cWqxVn1Xr7vODfxPgbGAPYNm6380AbgPO9Vz7nQbt3wLO
Ag4AVqz79Yelsn83cL7n2pOaqM4KwN7AscC4PjLMCsBG4cMFLi2V/fuBCz3XfmSAy7H0fXZgGPr6
smz4WAXYvMvPO0tlfwJwE3Bb3LmlC50dHZ1t9r56olCpjO2j8kcCM/UniPcABcHWCkx3AV+Pscrs
Yq06sknLcjRwSS9/xK8HvlOsVZfUrbctcGP4TTmK84u16ukZvN5lgKOA4zA9fml1Ao8C5xRr1ccH
+FjsApwaBr8svAb8BrimWKsuaJLwsG7Ye5LWfmkHgi6V/b2AO4ChfSw6C9jLc+2nM66LLYCHML2O
vVkAHO659q0xt39x+D5J4gTPtS/uZptfBK4EtsygCu4DjvFc+41+boPbAacBewFZn6aeDfwOuNhz
7fejrKBrAPNN1wjKQAWOrYDL+vgGfxjwo7r19gf+FiP8ARwfWM4KKV/vPphTSZdnFP4IPwB2AR4L
LGdCYDkbD8Bx+HxgOeMxPZK7ZbjpDcK6ej2wnG+qxX8qBKwcfoEZGmHxkcDdpbK/aob7Xwa4OUL4
I3yN15fK/uYDWF9DwzNWf88o/IHpdZ1YKvsH9lMZ1iuV/buAJzE9mI24RnEE8DPglVLZPyLKdZAK
gKIgKAPhpIh/f37SJazsDNwCDIm5r2HAJgkD0sqB5dwE3EO0UzVJbQ9MDCznzMByGv53ObCcQYHl
nAxMBPZs4K7WBsqB5dwTWM7KavYAnBAGu6iKwCkZ7v8AzHWdUQ0BfjlA4W8kpqfyFGBwxpv/HHBL
qeyf1sDXXyiV/eOAycQ7c5PGKOBa4M6w/hQARUFQmsrWEZfbILCczwWWs3rYazEk4f4WJghJmwL/
BA7upzpZBnNN1l8DyxnRwPA3PAy0v6Lu2rMG2gd4PrCczdX0SdLrdFjYczdQ+9+9VPbX6OfwtzIw
Adixwbs6rxEhsFT2RwDjgYv78X3W1deB58KbTBQARUFQmkac3qBVgPOB1RLuaxbwcsyQtDPwDDB6
AOrmq8CDjQiBgeVYwHOYa5D6mw38LbCcbfLa6Etlfy1g/QSrjgK+kNHL2CnBOoMwN2r1Vz0NDb+k
bNJPuzyvVPYPzvD1W5jTvXsMcJPbAJhQKvuOAqAoCEpLfm5i7phL6vQ4NyKE4e8vmLsI41qIudHg
BcDDDKmRxNbA/YHlZNZzEIa/xzFDu8TViRla50XgpfD/SxJsZzjwQGA5n89xW05qswyCyTqYU59J
bNGP9fQ/wHb9fGyuKJX99TOo47XC99kmTdLm1gLGd3c6WMPASJwgqOFjWs9ygeVc3OB9LOKTcfde
a8D2DyfZ9T+zgTOKteofYoSkLYF7CccSi+gt4GrgbuClYq26uG6bw4FtMadBv004vlcE2wJXAEdk
EP5WxJyOinPzzFzMzQp/Bp4p1qpz67Y5BHNR/lfDckUdDmcEcHdgOVvlcOzAtVKsa2Ww/9VSrLtm
P9XRuPC90t9WBK4tlf0dPddONDpKGLLuj/k+q/cR8ATmprNZmMteVsUM/7IVyS6DGQPcUF+vCoCi
INjehpJ8OIa4fhVYzjnFWvWsjLf7tT5+7wMV4PXwD+bsMJQ9VqxV58QISaMwp52WjxGQzsCMWdhj
D2MYch7EnNY9HTgdODniH/LDA8u5u1ir3pki/BUw44TF6UG6GjitWKsGvZRrIeZ08nOB5ZyLubbs
AiDKtWIbAhcC38vZ+zHN3ejD22D/ad7vU4EyZgDkKeH7fAXMINrbYa7VTXvJxvZhO74lQfgrYG6+
SNrz9x7wC+B6z7Xn9rCPVcL3zCmYQe/j2LtU9o/wXPs6BUDJIgieUCr7rufaz6lKBNNLd2ZgOVOL
tep1GW63u964ecAfgKuKterkjPbzxxi9LFOBvYu1aqxBcsNAekZgOfdiehqjDMVxeWA5D8UJs3W+
HyFEL7UQOLxYq94Ss1xLgJsDy3kk/JDeIcJqRwWW86dirfpkzr6QJZXFJVsjByg8pjEnDDx/9Fy7
uwHdJwH3lcr+z4HjgXNJfrMYwC9KZf82z7XjXuJwDLBvwn3eARzpufas3hYKZ/04v1T2rw2/1O0S
cz8Xlsr+XUv3o2sAJY11gAdLZd9WVUgXpzV4+w8BGxZr1ROzCn+B5RxM9GEa3gXGxQ1/dYHp78DO
mCnV+rIaZuaDJOVaG9PTFsUSwI0b/urKNQ3YHdMzGMW5ertIb00Y2N5z7ct7CH9dw9FCz7V/jbnx
Yn6Kfa4PxBq7MrzpI+lQOVcC3+wr/NWVdRpm+KbxMfe1chiSM/tGIfk2AjOulchSYxo4jMk1wB7F
WjWzuVIDy1kOc9F5FIuB/Yu16tS0+y3Wqi8R/fq+UwLLWT7Bbs4jes/NmcVa9e4MyvURZpq8KB9o
OwaWM05vGenGImAfz7VfiLNSOM3bD1Pu++iYy/+Kz06nF8XjwI+SXHPoufYCzOnquNddH1cq+8MU
ACUrY1UFUqcR417dB3y//iaLDBxL9FO/FxRr1Wey2nGxVr0DuCvCoiPj9kqEY+4dEnHxf4VhMaty
vY2ZWi6K7+ntIt291zzX/nuSFcPr3B5Mse9xYa9en0plv0SysRXnYabZS/z3zHPtOdTNlhTxb4mr
AChZ0fAw8qnsQfLhT3oyAzgs6/AXWE6cm2QC4JwG1NdPIy53RMztnhRj2RMaEKyvwVwr2ZdvhHdK
iyw1l+i98j05K8W6BWC/iMueTLKp3S7xXPvNtBXlufbDmDFL4zhIAVCy8rKqQLp+8Bdr1c6Mt/mL
3u5ITWF/og9v8fsUN2L0KLyW8G8RFt0xsJxId/6FM6dE7ZV4ulirPtGAci3CDGPTl2UxQ8mILHV7
nGvieghGz2DGrEzqK30tUCr7K2Km1kvisgzr67qYy48rlf3lFQAlC5epCiT0FPDzjLf5AeYO3UY4
LE6wbWC9/f8IywwGdou4PZfod0IOdLmgsfMRS+u5K6Pt/DnFumPDoV168w2iDxvV1Uuea0/NsL7i
nu4eBmynYWAkrbPDi26lOS1J+S04qvfCP9pXh+PDZemvxVo18/EmA8tZmejTWz2b5Y0n3RgP/DbC
ctsDt0dYLuq0VouAOxtVqGKt+lpgOVX6Hhj3y3qrShdPZ7SdR1N8IV0xbLevN+CLywNZVpbn2lNL
ZX8qsG6M1bZSAJSkngX+23PtR1UVTe3DYq26RYuX4akGbXdnoo+FencjC1isVauB5dTo+2aUrSME
2xFRllv6QVusVd9v8PF7LEIA3DCwnJWKtepMvWVzb7rn2lld7vGvlOtv1kcAHJs0szWg3l6LGQC3
VACUJMHvLM+171dVSD95rUHbjfPHe2I/lNOLEACjzCW7A9Gv7/5XP5UrijHA39Xcc29qZg3PteeW
yv40kk+B1+PMIqWyPzrFdqd3NzdvSu/FLZsCoCj4SbOb1qDtfiHGsnsGlrNNg8sZZVaQ4YHlrFKs
VWf0skxHjH2OCSznrAaXa6OIy62vAChZBsAu20sa1Nbso70mdU8T1PM6CoCi4CfN7qMGbXdMjGWP
aaL6WA0zLE5PNoixrd3DRzNYVU1diDY7ThzvpVh3lYzeZ81ouAKgKPhJs1uQ9QbDWTVWbtH6GNnH
760WLdcINXVpQACc3aA2ObLF63lZBUBR8JM8WrGFX3tf85y26gfTPDVLaUA7+DjFur0NA7N8i9fz
fAVAUfCTPGrV2WumAC+04fFYQvyJ7aU9DWmR19nq+elBBUBR8JM8mt2Cr/l14IAIU7YtaLFyzcFM
RfeSmqU0IFgNTbFub++1+S1cx5OBHysAKvgp+EkezY25/JcZ2FOUs4GpEafYizNd3SnAQwNYrvnA
G8VadYGapISGN9H2ZiX8XV8eIN3NKUnNwIyr+hfPtRcoACr4ieROsVZdGFhOnPHB/lOsVastUry3
4gThYq06US1CmkjWl2eskmLd3oagSjOA+qWea9870BWtAKjgJ5JXr8UIgBsArRIAX4+x7IZqBtJk
1sl4e2nuiu9t+sc3mqiMCoCi4CcSw2TM3LpRbAG0ynsozrV0W6oZSLsGwFLZH5QyAPY2i02aL4Qb
NUNFD1Jba+vgt4fn2tsq/Il0a0KMZce1ULnizJ28TWA5w9QUWkJeOmzWLJX9oRlta33S3QTS45cp
z7XfBd5JuN3tm6GiFQAV/ETy6m8xlh0bWE5LDFRcrFWnY3o3o1gW2FNNod8sSbFuFgOXj2qBOhoE
bJ7RtrZOsW7Vc+0gwy+RXW1WKvvrN0NFi4KfSO4Ua9U3gecjLj4U+HYLFe+OGMt+V62h33wwwOFt
ixapp7EZbSfNNIePR1jmsRTbP1oBUBT8RAbOzTGWPTGwnKEtUq7bYyy7V2A5m6op9Is0409uXSr7
g5OuXCr7BVqnt9dNu4FS2V8e2CfFJqIMj1QGFibc/jGlsr+2AqAo+IkMjBuJPnDyaOC/WqFQ4aDK
z8ZY5feB5RTUHBpuSop1hwPbpVj/68C6LVJPW5XK/hdTbuNwko8BOJ8IM9N4rv0+8NeE+xgGXF8q
+wN2bacCoIKfSG4Va9VpYQiM6qzAcr7YIsW7MMayOwGnqkU03Gv0PrtEX05KslKp7K8Ysz00gwvC
Xsuk5f1Zin3f47l21AHVL06xn7HAtWl6dnso/6BS2d+hVPZ/Vyr7k0plv1Iq+8fV16cCoIKfSN79
OsaH8hDgr4HlbNCoFxNYzpcCy7klsJxpgeV4geXsn3BTdwKvxFj+3MByDmlgudYOLOfXgeVUA8t5
O7Cc8wPLGZynhua59lzgxRSb+Fqp7O8dMwwMBW4F1mux6toJOCNB+CkAVwBrpNj3ZTGO6ePAEyn2
dSjwSKnsj04Z+oaUyv64Utn/PWb8wr8Bx2KGnPlCGFR/pgCo4CcioWKt+gpwSYxVRgFPB5azY4bh
qBBYzt6B5UwAngYOBFYFPg/cFljOFgnKtQg4McYqg4DrA8s5McvTwYHlbBJYzvWYcdP+Kwwia2J6
HE/IYZMbn3L9m0plf5eIoWBd4BFgrxatq7NLZf//heP5RSnvYOBS4OAU+5zouXbcQHcy0JlinzsB
r5bK/jVhz93gCGUtlMr+mFLZP7JU9m8HpgOPAsf0En5PK5X9/zstroGgmzv4aQBnkf7xc8yF52tG
zVfAY4HlXAScU6xVZyUMR+uGPQCHYWYb6c7gcJmJCULgfYHl3AXsGyMEXgh8NbCcnxRr1VcTlms4
8M2wXDv1sugRwAU5a2u3Aj9Nsf5w4MFS2f8TcKHn2pPqgsFQ4IvAIZg7vLuO89gJNPu1novDNt/1
vblXqez/EhjvufaiHgLRl8O2u23K/cc+Np5r/6NU9i8Dfpxiv0OA74SPOaWyPxFzzej7mHmHVwiP
5eqAjenZWyHmPpYL28ajCoAKfiJigtLMwHK+DTwc4wNyEOaarO8FlnMdcBvwXNjz1lMwGgJsAuwM
fA3YIeL+0syPehRmPLQ1Y6zzFWByYDl3Y66RfLBYq87pI/StF4a93TF3X0Z5zcv242Gen9F2pqdZ
2XPtSaWy/wiwS4rNDFoaFkpl/x3AD8s3CnB6qfvbML3LScT5kpPmbucrgSP59ADOWwN3hcHoOcx0
h3PD984awFZkc4r7Mc+1k/bQngrsCGRxR/2KmMGiGzFg9P/VqwKggp+ImBD4aGA5PwXOTdAj85Pw
8VFgOZPDb+4fYYaIGIKZc9jCzL2bZCiZf6Yo14zAcr6FGdYiTpAcBOwXPpYElvMK5jTu+13KNSIs
1wbh/+N6vh8P8XQ+27uUxHsZvJafpwyAXa0ZMdy/CPwmRQD8MMayc1OU5+/Am8B5PQSjncNH1j4m
xdh8nmvPLZX9bwD/AEY28Z+6lxUAFfxE5LNh6ZeB5ayOuXg6ieUxp1iyvFP4eeCmlOV6KrCcgzAD
RCe59nsQ5pRTlnOYzgmDUL/wXHtxqexXSDc7RAC8kcFrmVAq+7cAB/VT8RdghkV5M8U24sx9m2a4
mzfC9r60N7m/HO+59mspj+vrpbK/O/AgyYegaaTxnmvXur6pZeCCn27ukCTfUuOYpyqL7Tia57q0
KrBPsVZdkHZDxVr1bkxvXjO0iXnAvsVadXI/7/eGtOt7rt2Z0Wv5MfBWP5X7e55rTwzHrUvag/mv
GMtOSriPJcCLnmsvxvRUvtxP9XON59p/yOiLxrOY3t13aC5zqbvpSgFQwU9ay+sxl3+lScsxI8ay
H/TnCyvWqp3FWvVk4EcJAnfWfyt2KNaq72RYtnuAcZhhIgbKdOCrxVr1kQHY99Upyj4fM2RQJjzX
ngns3Q/t+zjPta/v8jzJwMVziTYzxtKyTU4Ybh/2XPuDcBuzMad6Gx0C7wa+n+UGPdf+J9ABPNkk
f28XAgfU93AqACr4SWu5Peby5SYtxz8iLvdqsVZ9fyBeYLFWvRxzuvDlft71Asx1iDsWa9V3G1Cu
Z4HNMDcE9Ld7gC2KteqEgTimnmvPC4N9Eqd6rv1uxq/nRUxvUdCA4n4EHOK59u/qfn5dgm3d4Ln2
RwnCdlx/qKuf6ZgbpR5oUJO4BvhW2OOYdVt7D3Ma+3jSXROZlg/s0N3NLQqACn7SQoq16gvAVREX
j7Nsf7uIaONmnTPA9f0isCVmbK0ZDd5dJ+bapzHFWvWnWZz27aVcM4u16oFh+HipnwL/uGKt+vUs
ezQTfjDfS/zxBy/oJkhl9XqW9hY9neFmnwE6PNe+uZv9TQiDeFRvk2zYmouAOIF5POZO3/rXOwvY
AzOm5ZyM6mcecKzn2kd6rr2ggW1tiefav8XcJPVbsrsTPYq5wNnARuFp6c8odHZ0dNJenihUKmN7
W6BU9kcCM/sh+OnmDslcYDlDw2/Xh/ay2D8x11i93cTlOBozAHNPN6OdW6xVf9pEr3d5zIX0xwKl
DDf9TtgTcVWxVvUHoFwFzMX2JwC7kt04cR9heqCvLNaqTzdb+yuV/f0wPU6r9rLYLOAkz7Wv6YfX
Mwgz/MmZwFoJNzMp/NC/vbdrFUtlfwRwL6Z3rTevAvt5ru0lLNMWYbDr6y7lezC9lXP62N4amMHE
jyb+GHhL3Q/8JO0NHwnrY3XM8D3fBdZv0G5eBP4EXBteZtAjBUAFP2ndILhL+IGxHbBy+O34ecxA
s7f0Nh5dE5VhM8wpkp0xgyvPAp4CLhmo04QRX/emmIGjx2LGIBsWY/X/YC6ofyL8MJpYrFU7m6Rc
awJfD3tcvhQekziBb2L4N/CvwJPFWnV+M7e/cM7YwzEDZW8ArBK2wdfD4HJV2APVn69pCOZmnQOA
3YDP9bHK62GYuznsTYwTOL+FuRN54zAIL8acjp6MmUrw5rQ9ZOHn7fcws5Gsjxki5SNgGlABbvRc
++GY21wlfP/th7mmdUgfq8wMy3NlT71hA9D2NgvfZ+MwPcDFBJtZAPw7rMfHgcc9154adWUFQAU/
EUkXmoYAY4DRwDqY8fCGYS6xWYAZFHca5qL4KQN9CjRm2UZjBhYeDayEGeZmWczNMR9iTou/hbnO
6I1irbpELSLTkDAYMx3ghphBnpcP630W5maayZ5rBzmvoyFhgN00DFEjMGcVlr7vngde6WkGkSYq
x9rh+2zt8FiPDINtJ7AIc9p6dvie+w9mSB/fc+3E7zkFQAU/ERERyRkNBK3gJyIiIgqAuZDmNIWC
n4iIiETNWStixntsqkskcjkMTDjQZNzBNzWci4iIiEQxGDOj0GzMJWf/wdz921TJNK9uw9yZFCX4
qcdPREREojoDOKnL81Uww3e9TeMGtlYAjOg0zJhXoxX8REREJCNrAKf38LtfN0sAzO1MIOGk2Ntg
JgdfGP64E3gUneoVERGRZI7m02ODPtXl/5tixg8dcLkcBqZeqewvixmpfGZ/D/opIiIibWMwMBWw
wufTga9gBn9f6nbMQN9xDSP5dHKfWVdzAQOea3/sufYUhT8RERFJYbcu4Q/gz5gZciZ3+dm+9Dzz
x++BlzHTQw7FzPJ0EWZQ63mYG0p+g7mzuKtRmNlrJmKmywPYBDMd49xw3TeAHxJO96hxAEVERESy
cVjd81vCf28FfhH+fyhwMPC7umW/ABwT/n9j4LkwzDldlhmJmbd7G8wUmh932e+eXYJfFbgJWK7L
uqOBy8J/T1EPoIiIiEh6IzDzEy/1Dp9c/1euW/aIbtZfp+75BcAU4Gvho+tcz18Og+BSa3f5/2Dg
Rsxdx7thhp/pOmXgycC26gEUERERSc/l0zd/3Mongz+/gjk9u0X4fEtgM+DFXrY3C9ibT3r5nsXM
u710Hz8Gzu9h3XuAY7s8fx+4q8vzH6gHUERERCS9w+ue1/f63Vb3/Dt9bO+hLuEPzGDST3Z5bgHr
9bDu+G6eL+jyfKx6AEVERETSWQ/YvsvzuUAJ+HyXnw2rW+dQ4BQ+GYqu3rRufvZW3XMbc3NHvf/U
PV8Ubm/pqeJ1FABFRERE0qm/+WMFzJ28vSkCe/HpU7N9qT9zOzjhugWdAhYRERFJrtBNAIzqiF5+
Z0X42bs9rLtW3fNl+PTQM9MUAEVERESS25FPTyv7AbB++LP6xx516+4FrNrDdnfH3Fm81Gp8+jTz
+5ibS7pzUN3zvYFluzx/RqeARURERJI7pO75PZhx+LozFTPQ8ybh82Uws4L8vptlVwEexAwH0wn8
d12IuxpY3MN+dsUMBXMz5rq/c+p+f4UCoIiIiEhyK9U97+vav0uAP/Sy/lLXYXrubu/mdy93E+q6
Ogs4s5twunS79+sUsIiIiEhy5wGTgA8xPXmP9bH81cCdmOnZJgB/7GE5H9gWuINPevoWADcAYzGn
mntyD+YU8nNdfjYjDIVHgaaCExEREUnjeT45pRvFIuAbEZetAvtjpo8bhZnR4+OI6z4UPlbAXEs4
rUuQVAAUERERaXILgLcTrjs3fHyKTgGLiIiIDLx5dc+DGOvOr3veZy+hAqCIiIjIwHsWmB3+fyHw
QIx1H+zy/9fCR690ClhERERk4M3CXEu4Beamkikx1n00XG8t4GnMdYYKgCIiIiItoBY+knghfESi
U8AiIiIiOaMAKCIiIqIAKCIiIiLtHgCXqBpERERE8hUAP1Q1iIiIiOQrAM5WNYiIiIjkKwBOUzWI
iIiI5CsAvqpqEBEREclXAPy3qkFEREQkXwHwZVWDiIiISL4C4JOqBhEREZEcBcBCpTIdeFFVISIi
IpKTABj++5iqQkRERCRfAfB2VYWIiIhIvgLgM0BV1SEiIiKSkwBYqFQ6gRtVHSIiIiI5CYChK4CP
VSUiIiIiOQmAhUrlXeA6VYmIiIhITgJg6DxgsapFREREJCcBsFCp+JhTwSIiIiKShwAY+hkQqGpE
REREchIAC5XK+8DxqhoRERGRnATAMATeBPxZ1SMiIiKSkwAY+j4wRVUkIiIikpMAWKhUZgL7AXNV
TSIiIiI5CIBhCHwBOABYoqoSERERyUEADEPgeOAwhUARERGRnATAMATepBAoIiIikqMA2CUEfg1d
EygiIiKSjwAYhsDxwHbo7mARERGRfATAMAS+AHSgcQJFRERE8hEAwxA4s1CpuMChaNo4ERERkfYP
gF2C4E3AGOAyYLGqU0RERKTNA2AYAt8vVCo/BhzgCuBjVauIiIhIGwfALkHQL1QqPwBGA2cBVVWv
iIiISPMpNGrDnR0dBeBLwLeAccBm/VSmJwqVylgdWhEREZHuLdOwZFmpdAJPhw86OzpGAdsDmwAb
Yq4dXBUYCXyODHsjRURERKRn/zsAjowBN+1pyeQAAAAASUVORK5CYII=">
</image>
</svg>
<svg width="640" height="200" viewBox="0 0 640 200" version="1.1" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g>
<path d="M610.803,154.398c0.141,0.306 0.212,0.603 0.212,0.893c-0,0.53 -0.208,0.98 -0.623,1.35c-0.415,0.37 -0.89,0.555 -1.422,0.555c-0.361,-0 -0.69,-0.097 -0.988,-0.29c-0.297,-0.192 -0.533,-0.482 -0.705,-0.868l-1.058,-2.435l-7.616,-0l-1.082,2.435c-0.172,0.386 -0.411,0.676 -0.717,0.868c-0.305,0.193 -0.638,0.29 -0.999,0.29c-0.533,-0 -1.015,-0.185 -1.446,-0.555c-0.431,-0.37 -0.646,-0.82 -0.646,-1.35c0,-0.29 0.071,-0.587 0.212,-0.893l6.206,-13.07c0.203,-0.435 0.505,-0.768 0.905,-1.001c0.399,-0.233 0.842,-0.35 1.328,-0.35c0.47,0 0.909,0.117 1.316,0.35c0.408,0.233 0.713,0.566 0.917,1.001l6.206,13.07Zm-6.041,-4.123l-2.351,-5.378l-2.351,5.378l4.702,-0Z" style="fill-rule:nonzero;"/>
<path d="M620.206,144.969c0.988,0 1.869,0.261 2.645,0.784c0.776,0.522 1.379,1.258 1.81,2.206c0.431,0.949 0.647,2.034 0.647,3.256c-0,1.222 -0.216,2.295 -0.647,3.22c-0.431,0.924 -1.03,1.635 -1.798,2.134c-0.768,0.498 -1.654,0.747 -2.657,0.747c-0.736,0 -1.414,-0.152 -2.033,-0.458c-0.619,-0.305 -1.101,-0.715 -1.446,-1.23l0,4.1c0,0.563 -0.188,1.013 -0.564,1.351c-0.376,0.337 -0.87,0.506 -1.481,0.506c-0.643,0 -1.16,-0.181 -1.551,-0.543c-0.392,-0.361 -0.588,-0.824 -0.588,-1.386l-0,-12.661c-0,-0.595 0.184,-1.073 0.552,-1.435c0.369,-0.362 0.866,-0.543 1.493,-0.543c0.596,0 1.077,0.161 1.446,0.483c0.368,0.321 0.576,0.747 0.623,1.278c0.329,-0.563 0.811,-1.005 1.445,-1.327c0.635,-0.321 1.336,-0.482 2.104,-0.482Zm-1.269,9.14c0.721,0 1.273,-0.249 1.657,-0.748c0.384,-0.498 0.576,-1.213 0.576,-2.146c0,-0.981 -0.196,-1.732 -0.588,-2.255c-0.391,-0.522 -0.948,-0.784 -1.669,-0.784c-0.72,0 -1.277,0.258 -1.669,0.772c-0.391,0.515 -0.587,1.254 -0.587,2.219c-0,0.948 0.196,1.676 0.587,2.182c0.392,0.507 0.956,0.76 1.693,0.76Z" style="fill-rule:nonzero;"/>
<path d="M634.899,144.969c0.987,0 1.869,0.261 2.644,0.784c0.776,0.522 1.38,1.258 1.811,2.206c0.431,0.949 0.646,2.034 0.646,3.256c0,1.222 -0.215,2.295 -0.646,3.22c-0.431,0.924 -1.031,1.635 -1.799,2.134c-0.768,0.498 -1.653,0.747 -2.656,0.747c-0.737,0 -1.415,-0.152 -2.034,-0.458c-0.619,-0.305 -1.101,-0.715 -1.445,-1.23l-0,4.1c-0,0.563 -0.188,1.013 -0.565,1.351c-0.376,0.337 -0.869,0.506 -1.481,0.506c-0.642,0 -1.159,-0.181 -1.551,-0.543c-0.392,-0.361 -0.588,-0.824 -0.588,-1.386l0,-12.661c0,-0.595 0.184,-1.073 0.553,-1.435c0.368,-0.362 0.866,-0.543 1.492,-0.543c0.596,0 1.078,0.161 1.446,0.483c0.368,0.321 0.576,0.747 0.623,1.278c0.329,-0.563 0.811,-1.005 1.446,-1.327c0.635,-0.321 1.336,-0.482 2.104,-0.482Zm-1.27,9.14c0.721,0 1.274,-0.249 1.658,-0.748c0.384,-0.498 0.576,-1.213 0.576,-2.146c-0,-0.981 -0.196,-1.732 -0.588,-2.255c-0.392,-0.522 -0.948,-0.784 -1.669,-0.784c-0.721,0 -1.277,0.258 -1.669,0.772c-0.392,0.515 -0.588,1.254 -0.588,2.219c0,0.948 0.196,1.676 0.588,2.182c0.392,0.507 0.956,0.76 1.692,0.76Z" style="fill-rule:nonzero;"/>
</g>
<path d="M242.417,136.617c-1.853,0 -3.339,-0.575 -4.457,-1.725c-1.118,-1.15 -1.677,-2.652 -1.677,-4.504l-0,-56.063c-0,-1.853 0.527,-3.29 1.582,-4.312c1.054,-1.023 2.507,-1.534 4.36,-1.534l33.638,0c3.897,0 5.845,1.661 5.845,4.984c-0,3.258 -1.948,4.887 -5.845,4.887l-27.409,0l-0,18.4l25.492,0c3.897,0 5.846,1.661 5.846,4.983c-0,3.259 -1.949,4.888 -5.846,4.888l-25.492,0l-0,23.767c-0,1.852 -0.543,3.354 -1.629,4.504c-1.086,1.15 -2.556,1.725 -4.408,1.725Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M309.673,88.221c1.503,-0.128 2.688,0.223 3.555,1.054c0.868,0.831 1.301,2.076 1.301,3.737c-0,1.725 -0.376,3.003 -1.127,3.834c-0.752,0.83 -2.11,1.373 -4.076,1.629l-2.601,0.287c-3.411,0.384 -5.911,1.662 -7.501,3.834c-1.59,2.172 -2.385,4.887 -2.385,8.146l-0,20.125c-0,1.852 -0.52,3.274 -1.561,4.264c-1.04,0.991 -2.341,1.486 -3.902,1.486c-1.561,0 -2.847,-0.495 -3.858,-1.486c-1.012,-0.99 -1.518,-2.412 -1.518,-4.264l-0,-37.088c-0,-1.789 0.506,-3.162 1.518,-4.121c1.011,-0.958 2.269,-1.437 3.772,-1.437c1.503,0 2.717,0.463 3.642,1.389c0.925,0.927 1.387,2.252 1.387,3.977l-0,3.834c1.098,-2.811 2.732,-4.984 4.899,-6.517c2.168,-1.533 4.582,-2.396 7.241,-2.587l1.214,-0.096Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M360.691,123.2c1.136,0 2.054,0.415 2.756,1.246c0.701,0.83 1.052,1.948 1.052,3.354c-0,1.981 -1.236,3.642 -3.708,4.983c-2.272,1.214 -4.844,2.189 -7.717,2.923c-2.873,0.735 -5.612,1.102 -8.218,1.102c-7.884,0 -14.131,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c-0,-4.792 1.002,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.641,-2.045 7.767,-3.067 12.377,-3.067c4.41,0 8.252,0.927 11.525,2.779c3.274,1.853 5.813,4.473 7.617,7.859c1.804,3.386 2.706,7.379 2.706,11.979c-0,2.747 -1.269,4.121 -3.808,4.121l-29.565,0c0.401,4.408 1.704,7.65 3.909,9.727c2.204,2.076 5.411,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.474,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.408,0 -6.13,1.023 -8.168,3.067c-2.038,2.045 -3.257,4.983 -3.658,8.817l22.65,0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.871,-2.012 -4.477,-3.019 -7.817,-3.019Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M415.049,123.2c1.136,0 2.055,0.415 2.756,1.246c0.702,0.83 1.052,1.948 1.052,3.354c-0,1.981 -1.236,3.642 -3.708,4.983c-2.271,1.214 -4.844,2.189 -7.717,2.923c-2.872,0.735 -5.612,1.102 -8.218,1.102c-7.883,0 -14.13,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c-0,-4.792 1.003,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.642,-2.045 7.767,-3.067 12.378,-3.067c4.409,0 8.251,0.927 11.525,2.779c3.274,1.853 5.812,4.473 7.616,7.859c1.804,3.386 2.706,7.379 2.706,11.979c-0,2.747 -1.269,4.121 -3.808,4.121l-29.565,0c0.401,4.408 1.704,7.65 3.909,9.727c2.205,2.076 5.412,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.475,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.407,0 -6.13,1.023 -8.168,3.067c-2.037,2.045 -3.257,4.983 -3.658,8.817l22.65,0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.87,-2.012 -4.476,-3.019 -7.817,-3.019Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M452.658,136.617c-2.137,0 -4.861,-0.672 -6.173,-2.016c-1.313,-1.343 -1.969,-3.135 -1.969,-5.374l-0,-48.56l-13.833,0c-4.517,0 -6.775,-2.047 -6.775,-6.142c-0,-4.03 2.258,-6.046 6.775,-6.046l43.949,0c4.517,0 6.776,2.016 6.776,6.046c-0,4.095 -2.259,6.142 -6.776,6.142l-13.833,0l0,48.56c0,2.239 -0.64,4.031 -1.922,5.374c-1.282,1.344 -4.022,2.016 -6.219,2.016Z" style="fill:#29abe1;fill-rule:nonzero;"/>
<path d="M515.741,88.529c2.236,0 4.009,0.607 5.319,1.821c1.31,1.214 1.964,2.875 1.964,4.983l-0,35.171c-0,1.981 -0.686,3.578 -2.06,4.792c-1.374,1.214 -3.147,1.821 -5.319,1.821c-2.044,0 -3.673,-0.575 -4.887,-1.725c-1.214,-1.15 -1.821,-2.684 -1.821,-4.6l-0,-0.959c-1.47,2.428 -3.402,4.281 -5.798,5.559c-2.396,1.277 -5.095,1.916 -8.098,1.916c-5.942,0 -10.366,-1.645 -13.273,-4.935c-2.907,-3.29 -4.36,-8.258 -4.36,-14.902l-0,-22.138c-0,-2.108 0.655,-3.769 1.964,-4.983c1.31,-1.214 3.083,-1.821 5.319,-1.821c2.236,0 3.993,0.607 5.271,1.821c1.278,1.214 1.917,2.875 1.917,4.983l-0,22.425c-0,2.811 0.591,4.888 1.772,6.23c1.182,1.341 2.987,2.012 5.415,2.012c2.811,0 5.095,-0.958 6.852,-2.875c1.757,-1.917 2.636,-4.44 2.636,-7.571l-0,-20.221c-0,-2.108 0.638,-3.769 1.916,-4.983c1.278,-1.214 3.035,-1.821 5.271,-1.821Z" style="fill:#29abe1;fill-rule:nonzero;"/>
<path d="M563.858,88.338c4.171,-0.001 7.853,0.99 11.046,2.97c3.193,1.981 5.686,4.808 7.478,8.482c1.792,3.673 2.688,7.938 2.688,12.793c-0,4.856 -0.896,9.152 -2.688,12.89c-1.792,3.737 -4.301,6.644 -7.527,8.721c-3.226,2.076 -6.891,3.114 -10.997,3.114c-3.324,-0 -6.321,-0.686 -8.993,-2.06c-2.672,-1.374 -4.725,-3.274 -6.159,-5.702l-0,0.766c-0,2.045 -0.651,3.69 -1.955,4.936c-1.303,1.246 -3.063,1.869 -5.278,1.869c-2.216,-0 -3.992,-0.623 -5.328,-1.869c-1.336,-1.246 -2.004,-2.891 -2.004,-4.936l0,-55.2c0,-1.98 0.701,-3.577 2.102,-4.791c1.401,-1.214 3.242,-1.821 5.523,-1.821c2.15,-0 3.877,0.575 5.181,1.725c1.303,1.15 1.955,2.683 1.955,4.6l-0,20.987c1.433,-2.363 3.47,-4.2 6.109,-5.51c2.64,-1.31 5.588,-1.965 8.847,-1.965l-0,0.001Zm-4.301,37.95c3.454,-0 6.126,-1.197 8.016,-3.593c1.889,-2.396 2.834,-5.766 2.834,-10.111c0,-4.28 -0.945,-7.555 -2.834,-9.823c-1.89,-2.268 -4.562,-3.402 -8.016,-3.402c-3.454,0 -6.126,1.166 -8.016,3.498c-1.89,2.332 -2.835,5.638 -2.835,9.919c-0,4.344 0.945,7.683 2.835,10.015c1.89,2.332 4.562,3.498 8.016,3.498l0,-0.001Z" style="fill:#29abe1;fill-rule:nonzero;"/>
<path d="M635.013,122.55c1.385,0 2.511,0.511 3.377,1.533c0.865,1.023 1.298,2.332 1.298,3.929c-0,1.087 -0.346,2.093 -1.039,3.019c-0.692,0.927 -1.662,1.709 -2.909,2.348c-2.354,1.15 -5.09,2.093 -8.207,2.827c-3.117,0.735 -5.991,1.102 -8.623,1.102c-5.541,0 -10.372,-0.99 -14.493,-2.971c-4.121,-1.98 -7.289,-4.807 -9.506,-8.481c-2.216,-3.673 -3.324,-8.002 -3.324,-12.985c0,-4.792 1.073,-9.04 3.221,-12.746c2.147,-3.706 5.125,-6.597 8.934,-8.673c3.809,-2.076 8.138,-3.115 12.986,-3.115c4.641,0 8.71,0.943 12.208,2.828c3.497,1.884 6.216,4.568 8.155,8.05c1.939,3.482 2.909,7.554 2.909,12.218c0,1.406 -0.364,2.476 -1.091,3.211c-0.727,0.734 -1.749,1.102 -3.065,1.102l-29.089,0c0.485,3.769 1.731,6.501 3.74,8.194c2.009,1.693 4.883,2.539 8.623,2.539c2.009,0 3.809,-0.223 5.402,-0.671c1.593,-0.447 3.359,-1.054 5.299,-1.821c0.969,-0.383 1.904,-0.718 2.805,-1.006c0.9,-0.287 1.697,-0.431 2.389,-0.431Zm-17.869,-24.246c-2.978,-0 -5.368,0.879 -7.168,2.636c-1.801,1.757 -2.875,4.296 -3.221,7.618l20.051,-0c-0.208,-3.386 -1.126,-5.941 -2.753,-7.666c-1.628,-1.725 -3.931,-2.588 -6.909,-2.588Z" style="fill:#29abe1;fill-rule:nonzero;"/>
<path d="M39.222,0c7.499,0 13.578,6.079 13.578,13.578l0,186.422l-18.639,0c-9.06,0 -17.749,-3.599 -24.155,-10.006c-6.407,-6.406 -10.006,-15.095 -10.006,-24.155l0,-152.261c0,-7.499 6.079,-13.578 13.578,-13.578l25.644,0Zm160.778,-0l0,16.174c0,9.713 -3.859,19.029 -10.728,25.898c-6.869,6.869 -16.185,10.728 -25.898,10.728l-88.33,0c-7.425,0 -13.444,-6.019 -13.444,-13.444l0,-25.912c0,-7.425 6.019,-13.444 13.444,-13.444l124.956,-0Z" style="fill:#f33;"/>
<path d="M143.486,97.784c1.755,0.87 2.864,2.658 2.864,4.616c0,1.958 -1.109,3.746 -2.864,4.616l-74.185,36.767c-1.653,0.819 -3.612,0.726 -5.179,-0.246c-1.568,-0.973 -2.522,-2.687 -2.522,-4.532l0,-73.21c0,-1.845 0.954,-3.559 2.522,-4.532c1.567,-0.972 3.526,-1.065 5.179,-0.246l74.185,36.767Z" style="fill:#29abe1;"/>
</svg>

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -1,210 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 640 200" style="enable-background:new 0 0 640 200;" xml:space="preserve">
<image style="overflow:visible;" width="640" height="200" xlink:href="data:image/png;base64,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
eCf/1QtASOkAAAAASUVORK5CYII=">
</image>
</svg>
<svg width="640" height="200" viewBox="0 0 640 200" version="1.1" xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<g>
<path d="M610.803,154.398c0.141,0.306 0.212,0.603 0.212,0.893c-0,0.53 -0.208,0.98 -0.623,1.35c-0.415,0.37 -0.89,0.555 -1.422,0.555c-0.361,-0 -0.69,-0.097 -0.988,-0.29c-0.297,-0.192 -0.533,-0.482 -0.705,-0.868l-1.058,-2.435l-7.616,-0l-1.082,2.435c-0.172,0.386 -0.411,0.676 -0.717,0.868c-0.305,0.193 -0.638,0.29 -0.999,0.29c-0.533,-0 -1.015,-0.185 -1.446,-0.555c-0.431,-0.37 -0.646,-0.82 -0.646,-1.35c0,-0.29 0.071,-0.587 0.212,-0.893l6.206,-13.07c0.203,-0.435 0.505,-0.768 0.905,-1.001c0.399,-0.233 0.842,-0.35 1.328,-0.35c0.47,0 0.909,0.117 1.316,0.35c0.408,0.233 0.713,0.566 0.917,1.001l6.206,13.07Zm-6.041,-4.123l-2.351,-5.378l-2.351,5.378l4.702,-0Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M620.206,144.969c0.988,0 1.869,0.261 2.645,0.784c0.776,0.522 1.379,1.258 1.81,2.206c0.431,0.949 0.647,2.034 0.647,3.256c-0,1.222 -0.216,2.295 -0.647,3.22c-0.431,0.924 -1.03,1.635 -1.798,2.134c-0.768,0.498 -1.654,0.747 -2.657,0.747c-0.736,0 -1.414,-0.152 -2.033,-0.458c-0.619,-0.305 -1.101,-0.715 -1.446,-1.23l0,4.1c0,0.563 -0.188,1.013 -0.564,1.351c-0.376,0.337 -0.87,0.506 -1.481,0.506c-0.643,0 -1.16,-0.181 -1.551,-0.543c-0.392,-0.361 -0.588,-0.824 -0.588,-1.386l-0,-12.661c-0,-0.595 0.184,-1.073 0.552,-1.435c0.369,-0.362 0.866,-0.543 1.493,-0.543c0.596,0 1.077,0.161 1.446,0.483c0.368,0.321 0.576,0.747 0.623,1.278c0.329,-0.563 0.811,-1.005 1.445,-1.327c0.635,-0.321 1.336,-0.482 2.104,-0.482Zm-1.269,9.14c0.721,0 1.273,-0.249 1.657,-0.748c0.384,-0.498 0.576,-1.213 0.576,-2.146c0,-0.981 -0.196,-1.732 -0.588,-2.255c-0.391,-0.522 -0.948,-0.784 -1.669,-0.784c-0.72,0 -1.277,0.258 -1.669,0.772c-0.391,0.515 -0.587,1.254 -0.587,2.219c-0,0.948 0.196,1.676 0.587,2.182c0.392,0.507 0.956,0.76 1.693,0.76Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M634.899,144.969c0.987,0 1.869,0.261 2.644,0.784c0.776,0.522 1.38,1.258 1.811,2.206c0.431,0.949 0.646,2.034 0.646,3.256c0,1.222 -0.215,2.295 -0.646,3.22c-0.431,0.924 -1.031,1.635 -1.799,2.134c-0.768,0.498 -1.653,0.747 -2.656,0.747c-0.737,0 -1.415,-0.152 -2.034,-0.458c-0.619,-0.305 -1.101,-0.715 -1.445,-1.23l-0,4.1c-0,0.563 -0.188,1.013 -0.565,1.351c-0.376,0.337 -0.869,0.506 -1.481,0.506c-0.642,0 -1.159,-0.181 -1.551,-0.543c-0.392,-0.361 -0.588,-0.824 -0.588,-1.386l0,-12.661c0,-0.595 0.184,-1.073 0.553,-1.435c0.368,-0.362 0.866,-0.543 1.492,-0.543c0.596,0 1.078,0.161 1.446,0.483c0.368,0.321 0.576,0.747 0.623,1.278c0.329,-0.563 0.811,-1.005 1.446,-1.327c0.635,-0.321 1.336,-0.482 2.104,-0.482Zm-1.27,9.14c0.721,0 1.274,-0.249 1.658,-0.748c0.384,-0.498 0.576,-1.213 0.576,-2.146c-0,-0.981 -0.196,-1.732 -0.588,-2.255c-0.392,-0.522 -0.948,-0.784 -1.669,-0.784c-0.721,0 -1.277,0.258 -1.669,0.772c-0.392,0.515 -0.588,1.254 -0.588,2.219c0,0.948 0.196,1.676 0.588,2.182c0.392,0.507 0.956,0.76 1.692,0.76Z" style="fill:#fff;fill-rule:nonzero;"/>
</g>
<path d="M242.417,136.617c-1.853,0 -3.339,-0.575 -4.457,-1.725c-1.118,-1.15 -1.677,-2.652 -1.677,-4.504l-0,-56.063c-0,-1.853 0.527,-3.29 1.582,-4.312c1.054,-1.023 2.507,-1.534 4.36,-1.534l33.638,0c3.897,0 5.845,1.661 5.845,4.984c-0,3.258 -1.948,4.887 -5.845,4.887l-27.409,0l-0,18.4l25.492,0c3.897,0 5.846,1.661 5.846,4.983c-0,3.259 -1.949,4.888 -5.846,4.888l-25.492,0l-0,23.767c-0,1.852 -0.543,3.354 -1.629,4.504c-1.086,1.15 -2.556,1.725 -4.408,1.725Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M309.673,88.221c1.503,-0.128 2.688,0.223 3.555,1.054c0.868,0.831 1.301,2.076 1.301,3.737c-0,1.725 -0.376,3.003 -1.127,3.834c-0.752,0.83 -2.11,1.373 -4.076,1.629l-2.601,0.287c-3.411,0.384 -5.911,1.662 -7.501,3.834c-1.59,2.172 -2.385,4.887 -2.385,8.146l-0,20.125c-0,1.852 -0.52,3.274 -1.561,4.264c-1.04,0.991 -2.341,1.486 -3.902,1.486c-1.561,0 -2.847,-0.495 -3.858,-1.486c-1.012,-0.99 -1.518,-2.412 -1.518,-4.264l-0,-37.088c-0,-1.789 0.506,-3.162 1.518,-4.121c1.011,-0.958 2.269,-1.437 3.772,-1.437c1.503,0 2.717,0.463 3.642,1.389c0.925,0.927 1.387,2.252 1.387,3.977l-0,3.834c1.098,-2.811 2.732,-4.984 4.899,-6.517c2.168,-1.533 4.582,-2.396 7.241,-2.587l1.214,-0.096Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M360.691,123.2c1.136,0 2.054,0.415 2.756,1.246c0.701,0.83 1.052,1.948 1.052,3.354c-0,1.981 -1.236,3.642 -3.708,4.983c-2.272,1.214 -4.844,2.189 -7.717,2.923c-2.873,0.735 -5.612,1.102 -8.218,1.102c-7.884,0 -14.131,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c-0,-4.792 1.002,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.641,-2.045 7.767,-3.067 12.377,-3.067c4.41,0 8.252,0.927 11.525,2.779c3.274,1.853 5.813,4.473 7.617,7.859c1.804,3.386 2.706,7.379 2.706,11.979c-0,2.747 -1.269,4.121 -3.808,4.121l-29.565,0c0.401,4.408 1.704,7.65 3.909,9.727c2.204,2.076 5.411,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.474,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.408,0 -6.13,1.023 -8.168,3.067c-2.038,2.045 -3.257,4.983 -3.658,8.817l22.65,0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.871,-2.012 -4.477,-3.019 -7.817,-3.019Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M415.049,123.2c1.136,0 2.055,0.415 2.756,1.246c0.702,0.83 1.052,1.948 1.052,3.354c-0,1.981 -1.236,3.642 -3.708,4.983c-2.271,1.214 -4.844,2.189 -7.717,2.923c-2.872,0.735 -5.612,1.102 -8.218,1.102c-7.883,0 -14.13,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c-0,-4.792 1.003,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.642,-2.045 7.767,-3.067 12.378,-3.067c4.409,0 8.251,0.927 11.525,2.779c3.274,1.853 5.812,4.473 7.616,7.859c1.804,3.386 2.706,7.379 2.706,11.979c-0,2.747 -1.269,4.121 -3.808,4.121l-29.565,0c0.401,4.408 1.704,7.65 3.909,9.727c2.205,2.076 5.412,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.475,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.407,0 -6.13,1.023 -8.168,3.067c-2.037,2.045 -3.257,4.983 -3.658,8.817l22.65,0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.87,-2.012 -4.476,-3.019 -7.817,-3.019Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M452.658,136.617c-2.137,0 -4.861,-0.672 -6.173,-2.016c-1.313,-1.343 -1.969,-3.135 -1.969,-5.374l-0,-48.56l-13.833,0c-4.517,0 -6.775,-2.047 -6.775,-6.142c-0,-4.03 2.258,-6.046 6.775,-6.046l43.949,0c4.517,0 6.776,2.016 6.776,6.046c-0,4.095 -2.259,6.142 -6.776,6.142l-13.833,0l0,48.56c0,2.239 -0.64,4.031 -1.922,5.374c-1.282,1.344 -4.022,2.016 -6.219,2.016Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M515.741,88.529c2.236,0 4.009,0.607 5.319,1.821c1.31,1.214 1.964,2.875 1.964,4.983l-0,35.171c-0,1.981 -0.686,3.578 -2.06,4.792c-1.374,1.214 -3.147,1.821 -5.319,1.821c-2.044,0 -3.673,-0.575 -4.887,-1.725c-1.214,-1.15 -1.821,-2.684 -1.821,-4.6l-0,-0.959c-1.47,2.428 -3.402,4.281 -5.798,5.559c-2.396,1.277 -5.095,1.916 -8.098,1.916c-5.942,0 -10.366,-1.645 -13.273,-4.935c-2.907,-3.29 -4.36,-8.258 -4.36,-14.902l-0,-22.138c-0,-2.108 0.655,-3.769 1.964,-4.983c1.31,-1.214 3.083,-1.821 5.319,-1.821c2.236,0 3.993,0.607 5.271,1.821c1.278,1.214 1.917,2.875 1.917,4.983l-0,22.425c-0,2.811 0.591,4.888 1.772,6.23c1.182,1.341 2.987,2.012 5.415,2.012c2.811,0 5.095,-0.958 6.852,-2.875c1.757,-1.917 2.636,-4.44 2.636,-7.571l-0,-20.221c-0,-2.108 0.638,-3.769 1.916,-4.983c1.278,-1.214 3.035,-1.821 5.271,-1.821Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M563.858,88.338c4.171,-0.001 7.853,0.99 11.046,2.97c3.193,1.981 5.686,4.808 7.478,8.482c1.792,3.673 2.688,7.938 2.688,12.793c-0,4.856 -0.896,9.152 -2.688,12.89c-1.792,3.737 -4.301,6.644 -7.527,8.721c-3.226,2.076 -6.891,3.114 -10.997,3.114c-3.324,-0 -6.321,-0.686 -8.993,-2.06c-2.672,-1.374 -4.725,-3.274 -6.159,-5.702l-0,0.766c-0,2.045 -0.651,3.69 -1.955,4.936c-1.303,1.246 -3.063,1.869 -5.278,1.869c-2.216,-0 -3.992,-0.623 -5.328,-1.869c-1.336,-1.246 -2.004,-2.891 -2.004,-4.936l0,-55.2c0,-1.98 0.701,-3.577 2.102,-4.791c1.401,-1.214 3.242,-1.821 5.523,-1.821c2.15,-0 3.877,0.575 5.181,1.725c1.303,1.15 1.955,2.683 1.955,4.6l-0,20.987c1.433,-2.363 3.47,-4.2 6.109,-5.51c2.64,-1.31 5.588,-1.965 8.847,-1.965l-0,0.001Zm-4.301,37.95c3.454,-0 6.126,-1.197 8.016,-3.593c1.889,-2.396 2.834,-5.766 2.834,-10.111c0,-4.28 -0.945,-7.555 -2.834,-9.823c-1.89,-2.268 -4.562,-3.402 -8.016,-3.402c-3.454,0 -6.126,1.166 -8.016,3.498c-1.89,2.332 -2.835,5.638 -2.835,9.919c-0,4.344 0.945,7.683 2.835,10.015c1.89,2.332 4.562,3.498 8.016,3.498l0,-0.001Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M635.013,122.55c1.385,0 2.511,0.511 3.377,1.533c0.865,1.023 1.298,2.332 1.298,3.929c-0,1.087 -0.346,2.093 -1.039,3.019c-0.692,0.927 -1.662,1.709 -2.909,2.348c-2.354,1.15 -5.09,2.093 -8.207,2.827c-3.117,0.735 -5.991,1.102 -8.623,1.102c-5.541,0 -10.372,-0.99 -14.493,-2.971c-4.121,-1.98 -7.289,-4.807 -9.506,-8.481c-2.216,-3.673 -3.324,-8.002 -3.324,-12.985c0,-4.792 1.073,-9.04 3.221,-12.746c2.147,-3.706 5.125,-6.597 8.934,-8.673c3.809,-2.076 8.138,-3.115 12.986,-3.115c4.641,0 8.71,0.943 12.208,2.828c3.497,1.884 6.216,4.568 8.155,8.05c1.939,3.482 2.909,7.554 2.909,12.218c0,1.406 -0.364,2.476 -1.091,3.211c-0.727,0.734 -1.749,1.102 -3.065,1.102l-29.089,0c0.485,3.769 1.731,6.501 3.74,8.194c2.009,1.693 4.883,2.539 8.623,2.539c2.009,0 3.809,-0.223 5.402,-0.671c1.593,-0.447 3.359,-1.054 5.299,-1.821c0.969,-0.383 1.904,-0.718 2.805,-1.006c0.9,-0.287 1.697,-0.431 2.389,-0.431Zm-17.869,-24.246c-2.978,-0 -5.368,0.879 -7.168,2.636c-1.801,1.757 -2.875,4.296 -3.221,7.618l20.051,-0c-0.208,-3.386 -1.126,-5.941 -2.753,-7.666c-1.628,-1.725 -3.931,-2.588 -6.909,-2.588Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M39.222,0c7.499,0 13.578,6.079 13.578,13.578l0,186.422l-18.639,0c-9.06,0 -17.749,-3.599 -24.155,-10.006c-6.407,-6.406 -10.006,-15.095 -10.006,-24.155l0,-152.261c0,-7.499 6.079,-13.578 13.578,-13.578l25.644,0Zm160.778,-0l0,16.174c0,9.713 -3.859,19.029 -10.728,25.898c-6.869,6.869 -16.185,10.728 -25.898,10.728l-88.33,0c-7.425,0 -13.444,-6.019 -13.444,-13.444l0,-25.912c0,-7.425 6.019,-13.444 13.444,-13.444l124.956,-0Z" style="fill:#fff;"/>
<path d="M143.486,97.784c1.755,0.87 2.864,2.658 2.864,4.616c0,1.958 -1.109,3.746 -2.864,4.616l-74.185,36.767c-1.653,0.819 -3.612,0.726 -5.179,-0.246c-1.568,-0.973 -2.522,-2.687 -2.522,-4.532l0,-73.21c0,-1.845 0.954,-3.559 2.522,-4.532c1.567,-0.972 3.526,-1.065 5.179,-0.246l74.185,36.767Z" style="fill:#fff;"/>
</svg>

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

12
_icons/textBlack.svg Normal file
View File

@ -0,0 +1,12 @@
<?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 410 200" 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;">
<path d="M12.417,136.617c-1.853,-0 -3.339,-0.575 -4.457,-1.725c-1.118,-1.15 -1.677,-2.652 -1.677,-4.504l0,-56.063c0,-1.853 0.527,-3.29 1.582,-4.312c1.054,-1.023 2.507,-1.534 4.36,-1.534l33.638,0c3.897,0 5.845,1.661 5.845,4.984c0,3.258 -1.948,4.887 -5.845,4.887l-27.409,0l0,18.4l25.492,0c3.897,0 5.846,1.661 5.846,4.983c-0,3.259 -1.949,4.888 -5.846,4.888l-25.492,-0l0,23.767c0,1.852 -0.543,3.354 -1.629,4.504c-1.086,1.15 -2.556,1.725 -4.408,1.725Z" style="fill-rule:nonzero;"/>
<path d="M79.673,88.221c1.503,-0.128 2.688,0.223 3.555,1.054c0.868,0.831 1.301,2.076 1.301,3.737c0,1.725 -0.376,3.003 -1.127,3.834c-0.752,0.83 -2.11,1.373 -4.076,1.629l-2.601,0.287c-3.411,0.384 -5.911,1.662 -7.501,3.834c-1.59,2.172 -2.385,4.887 -2.385,8.146l0,20.125c0,1.852 -0.52,3.274 -1.561,4.264c-1.04,0.991 -2.341,1.486 -3.902,1.486c-1.561,-0 -2.847,-0.495 -3.858,-1.486c-1.012,-0.99 -1.518,-2.412 -1.518,-4.264l-0,-37.088c-0,-1.789 0.506,-3.162 1.518,-4.121c1.011,-0.958 2.269,-1.437 3.772,-1.437c1.503,-0 2.717,0.463 3.642,1.389c0.925,0.927 1.387,2.252 1.387,3.977l0,3.834c1.098,-2.811 2.732,-4.984 4.899,-6.517c2.168,-1.533 4.582,-2.396 7.241,-2.587l1.214,-0.096Z" style="fill-rule:nonzero;"/>
<path d="M130.691,123.2c1.136,-0 2.054,0.415 2.756,1.246c0.701,0.83 1.052,1.948 1.052,3.354c0,1.981 -1.236,3.642 -3.708,4.983c-2.272,1.214 -4.844,2.189 -7.717,2.923c-2.873,0.735 -5.612,1.102 -8.218,1.102c-7.884,0 -14.131,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c0,-4.792 1.002,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.641,-2.045 7.767,-3.067 12.377,-3.067c4.41,0 8.252,0.927 11.525,2.779c3.274,1.853 5.813,4.473 7.617,7.859c1.804,3.386 2.706,7.379 2.706,11.979c0,2.747 -1.269,4.121 -3.808,4.121l-29.565,-0c0.401,4.408 1.704,7.65 3.909,9.727c2.204,2.076 5.411,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.474,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.408,0 -6.13,1.023 -8.168,3.067c-2.038,2.045 -3.257,4.983 -3.658,8.817l22.65,-0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.871,-2.012 -4.477,-3.019 -7.817,-3.019Z" style="fill-rule:nonzero;"/>
<path d="M185.049,123.2c1.136,-0 2.055,0.415 2.756,1.246c0.702,0.83 1.052,1.948 1.052,3.354c0,1.981 -1.236,3.642 -3.708,4.983c-2.271,1.214 -4.844,2.189 -7.717,2.923c-2.872,0.735 -5.612,1.102 -8.218,1.102c-7.883,0 -14.13,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c0,-4.792 1.003,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.642,-2.045 7.767,-3.067 12.378,-3.067c4.409,0 8.251,0.927 11.525,2.779c3.274,1.853 5.812,4.473 7.616,7.859c1.804,3.386 2.706,7.379 2.706,11.979c0,2.747 -1.269,4.121 -3.808,4.121l-29.565,-0c0.401,4.408 1.704,7.65 3.909,9.727c2.205,2.076 5.412,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.475,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.407,0 -6.13,1.023 -8.168,3.067c-2.037,2.045 -3.257,4.983 -3.658,8.817l22.65,-0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.87,-2.012 -4.476,-3.019 -7.817,-3.019Z" style="fill-rule:nonzero;"/>
<path d="M222.658,136.617c-2.137,-0 -4.861,-0.672 -6.173,-2.016c-1.313,-1.343 -1.969,-3.135 -1.969,-5.374l0,-48.56l-13.833,0c-4.517,0 -6.775,-2.047 -6.775,-6.142c-0,-4.03 2.258,-6.046 6.775,-6.046l43.949,0c4.517,0 6.776,2.016 6.776,6.046c-0,4.095 -2.259,6.142 -6.776,6.142l-13.833,0l0,48.56c0,2.239 -0.64,4.031 -1.922,5.374c-1.282,1.344 -4.022,2.016 -6.219,2.016Z" style="fill-rule:nonzero;"/>
<path d="M285.741,88.529c2.236,0 4.009,0.607 5.319,1.821c1.31,1.214 1.964,2.875 1.964,4.983l0,35.171c0,1.981 -0.686,3.578 -2.06,4.792c-1.374,1.214 -3.147,1.821 -5.319,1.821c-2.044,-0 -3.673,-0.575 -4.887,-1.725c-1.214,-1.15 -1.821,-2.684 -1.821,-4.6l-0,-0.959c-1.47,2.428 -3.402,4.281 -5.798,5.559c-2.396,1.277 -5.095,1.916 -8.098,1.916c-5.942,0 -10.366,-1.645 -13.273,-4.935c-2.907,-3.29 -4.36,-8.258 -4.36,-14.902l-0,-22.138c-0,-2.108 0.655,-3.769 1.964,-4.983c1.31,-1.214 3.083,-1.821 5.319,-1.821c2.236,0 3.993,0.607 5.271,1.821c1.278,1.214 1.917,2.875 1.917,4.983l-0,22.425c-0,2.811 0.591,4.888 1.772,6.23c1.182,1.341 2.987,2.012 5.415,2.012c2.811,0 5.095,-0.958 6.852,-2.875c1.757,-1.917 2.636,-4.44 2.636,-7.571l-0,-20.221c-0,-2.108 0.638,-3.769 1.916,-4.983c1.278,-1.214 3.035,-1.821 5.271,-1.821Z" style="fill-rule:nonzero;"/>
<path d="M333.858,88.338c4.171,-0.001 7.853,0.99 11.046,2.97c3.193,1.981 5.686,4.808 7.478,8.482c1.792,3.673 2.688,7.938 2.688,12.793c0,4.856 -0.896,9.152 -2.688,12.89c-1.792,3.737 -4.301,6.644 -7.527,8.721c-3.226,2.076 -6.891,3.114 -10.997,3.114c-3.324,0 -6.321,-0.686 -8.993,-2.06c-2.672,-1.374 -4.725,-3.274 -6.159,-5.702l0,0.766c0,2.045 -0.651,3.69 -1.955,4.936c-1.303,1.246 -3.063,1.869 -5.278,1.869c-2.216,-0 -3.992,-0.623 -5.328,-1.869c-1.336,-1.246 -2.004,-2.891 -2.004,-4.936l0,-55.2c0,-1.98 0.701,-3.577 2.102,-4.791c1.401,-1.214 3.242,-1.821 5.523,-1.821c2.15,-0 3.877,0.575 5.181,1.725c1.303,1.15 1.955,2.683 1.955,4.6l-0,20.987c1.433,-2.363 3.47,-4.2 6.109,-5.51c2.64,-1.31 5.588,-1.965 8.847,-1.965Zm-4.301,37.95c3.454,0 6.126,-1.197 8.016,-3.593c1.889,-2.396 2.834,-5.766 2.834,-10.111c0,-4.28 -0.945,-7.555 -2.834,-9.823c-1.89,-2.268 -4.562,-3.402 -8.016,-3.402c-3.454,0 -6.126,1.166 -8.016,3.498c-1.89,2.332 -2.835,5.638 -2.835,9.919c0,4.344 0.945,7.683 2.835,10.015c1.89,2.332 4.562,3.498 8.016,3.498Z" style="fill-rule:nonzero;"/>
<path d="M405.013,122.55c1.385,0 2.511,0.511 3.377,1.533c0.865,1.023 1.298,2.332 1.298,3.929c0,1.087 -0.346,2.093 -1.039,3.019c-0.692,0.927 -1.662,1.709 -2.909,2.348c-2.354,1.15 -5.09,2.093 -8.207,2.827c-3.117,0.735 -5.991,1.102 -8.623,1.102c-5.541,0 -10.372,-0.99 -14.493,-2.971c-4.121,-1.98 -7.289,-4.807 -9.506,-8.481c-2.216,-3.673 -3.324,-8.002 -3.324,-12.985c-0,-4.792 1.073,-9.04 3.221,-12.746c2.147,-3.706 5.125,-6.597 8.934,-8.673c3.809,-2.076 8.138,-3.115 12.986,-3.115c4.641,0 8.71,0.943 12.208,2.828c3.497,1.884 6.216,4.568 8.155,8.05c1.939,3.482 2.909,7.554 2.909,12.218c0,1.406 -0.364,2.476 -1.091,3.211c-0.727,0.734 -1.749,1.102 -3.065,1.102l-29.089,-0c0.485,3.769 1.731,6.501 3.74,8.194c2.009,1.693 4.883,2.539 8.623,2.539c2.009,0 3.809,-0.223 5.402,-0.671c1.593,-0.447 3.359,-1.054 5.299,-1.821c0.969,-0.383 1.904,-0.718 2.805,-1.006c0.9,-0.287 1.697,-0.431 2.389,-0.431Zm-17.869,-24.246c-2.978,0 -5.368,0.879 -7.168,2.636c-1.801,1.757 -2.875,4.296 -3.221,7.618l20.051,0c-0.208,-3.386 -1.126,-5.941 -2.753,-7.666c-1.628,-1.725 -3.931,-2.588 -6.909,-2.588Z" style="fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

10
_icons/textBlackSmall.svg Normal file
View File

@ -0,0 +1,10 @@
<svg width="100" height="49" viewBox="0 0 100 49" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M3.029,33.471c-0.452,0 -0.815,-0.141 -1.088,-0.422c-0.272,-0.282 -0.409,-0.65 -0.409,-1.104l0,-13.735c0,-0.454 0.129,-0.806 0.386,-1.057c0.257,-0.25 0.612,-0.376 1.064,-0.376l8.204,0c0.951,0 1.426,0.407 1.426,1.221c-0,0.799 -0.475,1.198 -1.426,1.198l-6.685,-0l-0,4.508l6.218,-0c0.95,-0 1.425,0.407 1.425,1.221c0,0.798 -0.475,1.197 -1.425,1.197l-6.218,0l-0,5.823c-0,0.454 -0.132,0.822 -0.397,1.104c-0.265,0.281 -0.624,0.422 -1.075,0.422Z" style="fill-rule:nonzero;"/>
<path d="M19.432,21.614c0.367,-0.031 0.656,0.055 0.868,0.258c0.211,0.204 0.317,0.509 0.317,0.916c-0,0.423 -0.092,0.736 -0.275,0.939c-0.183,0.204 -0.515,0.337 -0.994,0.399l-0.635,0.071c-0.832,0.094 -1.441,0.407 -1.829,0.939c-0.388,0.532 -0.582,1.197 -0.582,1.996l0,4.93c0,0.454 -0.127,0.803 -0.381,1.045c-0.253,0.243 -0.571,0.364 -0.951,0.364c-0.381,0 -0.695,-0.121 -0.941,-0.364c-0.247,-0.242 -0.37,-0.591 -0.37,-1.045l-0,-9.086c-0,-0.438 0.123,-0.775 0.37,-1.01c0.246,-0.234 0.553,-0.352 0.92,-0.352c0.366,0 0.662,0.114 0.888,0.34c0.226,0.228 0.338,0.552 0.338,0.975l0,0.939c0.268,-0.689 0.667,-1.221 1.195,-1.597c0.529,-0.375 1.118,-0.587 1.766,-0.633l0.296,-0.024Z" style="fill-rule:nonzero;"/>
<path d="M31.876,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.701,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.244,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.097,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.795,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.457,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill-rule:nonzero;"/>
<path d="M45.134,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.7,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.245,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.098,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.794,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.456,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill-rule:nonzero;"/>
<path d="M54.307,33.471c-0.521,0 -1.186,-0.164 -1.506,-0.494c-0.32,-0.329 -0.48,-0.768 -0.48,-1.316l-0,-11.898l-3.374,0c-1.102,0 -1.652,-0.501 -1.652,-1.504c-0,-0.988 0.55,-1.482 1.652,-1.482l10.719,0c1.102,0 1.653,0.494 1.653,1.482c0,1.003 -0.551,1.504 -1.653,1.504l-3.374,0l0,11.898c0,0.548 -0.156,0.987 -0.468,1.316c-0.313,0.33 -0.981,0.494 -1.517,0.494Z" style="fill-rule:nonzero;"/>
<path d="M69.693,21.69c0.545,-0 0.978,0.148 1.297,0.446c0.32,0.297 0.479,0.704 0.479,1.221l0,8.616c0,0.486 -0.167,0.877 -0.502,1.175c-0.335,0.297 -0.768,0.446 -1.297,0.446c-0.499,-0 -0.896,-0.141 -1.192,-0.423c-0.297,-0.282 -0.445,-0.658 -0.445,-1.127l0,-0.235c-0.358,0.595 -0.829,1.049 -1.414,1.362c-0.584,0.313 -1.242,0.469 -1.975,0.469c-1.449,0 -2.528,-0.403 -3.237,-1.209c-0.709,-0.806 -1.064,-2.023 -1.064,-3.651l0,-5.423c0,-0.517 0.16,-0.924 0.479,-1.221c0.32,-0.298 0.752,-0.446 1.298,-0.446c0.545,-0 0.974,0.148 1.285,0.446c0.312,0.297 0.468,0.704 0.468,1.221l-0,5.494c-0,0.688 0.144,1.197 0.432,1.526c0.288,0.329 0.729,0.493 1.321,0.493c0.685,0 1.243,-0.235 1.671,-0.704c0.429,-0.47 0.643,-1.088 0.643,-1.855l-0,-4.954c-0,-0.517 0.156,-0.924 0.467,-1.221c0.312,-0.298 0.741,-0.446 1.286,-0.446Z" style="fill-rule:nonzero;"/>
<path d="M81.429,21.643c1.017,-0 1.915,0.242 2.694,0.727c0.779,0.486 1.387,1.178 1.824,2.079c0.437,0.899 0.655,1.944 0.655,3.134c0,1.19 -0.218,2.242 -0.655,3.158c-0.437,0.915 -1.049,1.628 -1.836,2.137c-0.787,0.508 -1.681,0.762 -2.682,0.762c-0.811,0 -1.542,-0.168 -2.194,-0.504c-0.651,-0.337 -1.152,-0.802 -1.502,-1.397l0,0.187c0,0.501 -0.159,0.904 -0.477,1.21c-0.317,0.305 -0.747,0.458 -1.287,0.458c-0.54,-0 -0.974,-0.153 -1.299,-0.458c-0.326,-0.306 -0.489,-0.709 -0.489,-1.21l-0,-13.524c-0,-0.485 0.171,-0.876 0.512,-1.173c0.342,-0.298 0.791,-0.447 1.347,-0.447c0.525,0 0.946,0.141 1.264,0.423c0.318,0.282 0.477,0.657 0.477,1.127l-0,5.142c0.349,-0.579 0.846,-1.029 1.49,-1.35c0.644,-0.321 1.363,-0.481 2.158,-0.481l-0,-0Zm-1.049,9.298c0.842,-0 1.494,-0.294 1.955,-0.881c0.461,-0.587 0.691,-1.412 0.691,-2.477c0,-1.049 -0.23,-1.851 -0.691,-2.407c-0.461,-0.555 -1.113,-0.833 -1.955,-0.833c-0.843,-0 -1.494,0.286 -1.955,0.857c-0.461,0.571 -0.692,1.381 -0.692,2.43c0,1.064 0.231,1.882 0.692,2.454c0.461,0.571 1.112,0.857 1.955,0.857l-0,-0Z" style="fill-rule:nonzero;"/>
<path d="M98.784,30.025c0.337,-0 0.612,0.125 0.823,0.375c0.211,0.251 0.317,0.572 0.317,0.963c-0,0.266 -0.084,0.513 -0.254,0.74c-0.168,0.227 -0.405,0.418 -0.709,0.575c-0.574,0.282 -1.241,0.513 -2.002,0.692c-0.76,0.181 -1.461,0.27 -2.103,0.27c-1.351,0 -2.53,-0.242 -3.535,-0.727c-1.005,-0.486 -1.778,-1.178 -2.318,-2.078c-0.541,-0.9 -0.811,-1.961 -0.811,-3.182c-0,-1.174 0.262,-2.214 0.786,-3.122c0.523,-0.908 1.25,-1.617 2.179,-2.125c0.929,-0.509 1.984,-0.763 3.167,-0.763c1.132,-0 2.124,0.231 2.977,0.692c0.853,0.462 1.517,1.12 1.989,1.973c0.473,0.853 0.71,1.85 0.71,2.993c0,0.345 -0.089,0.607 -0.266,0.787c-0.177,0.18 -0.427,0.27 -0.748,0.27l-7.095,-0c0.119,0.923 0.423,1.593 0.913,2.007c0.49,0.415 1.191,0.622 2.103,0.622c0.49,0 0.929,-0.054 1.317,-0.164c0.389,-0.11 0.82,-0.258 1.293,-0.446c0.236,-0.094 0.464,-0.176 0.684,-0.247c0.219,-0.07 0.414,-0.105 0.583,-0.105Zm-4.359,-5.941c-0.726,0 -1.309,0.216 -1.748,0.646c-0.439,0.431 -0.701,1.053 -0.786,1.867l4.891,-0c-0.051,-0.83 -0.275,-1.456 -0.672,-1.878c-0.397,-0.423 -0.958,-0.635 -1.685,-0.635Z" style="fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,10 @@
<svg width="100" height="49" viewBox="0 0 100 49" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M3.029,33.471c-0.452,0 -0.815,-0.141 -1.088,-0.422c-0.272,-0.282 -0.409,-0.65 -0.409,-1.104l0,-13.735c0,-0.454 0.129,-0.806 0.386,-1.057c0.257,-0.25 0.612,-0.376 1.064,-0.376l8.204,0c0.951,0 1.426,0.407 1.426,1.221c-0,0.799 -0.475,1.198 -1.426,1.198l-6.685,-0l-0,4.508l6.218,-0c0.95,-0 1.425,0.407 1.425,1.221c0,0.798 -0.475,1.197 -1.425,1.197l-6.218,0l-0,5.823c-0,0.454 -0.132,0.822 -0.397,1.104c-0.265,0.281 -0.624,0.422 -1.075,0.422Z" style="fill:#1e1e2e;fill-rule:nonzero;"/>
<path d="M19.432,21.614c0.367,-0.031 0.656,0.055 0.868,0.258c0.211,0.204 0.317,0.509 0.317,0.916c-0,0.423 -0.092,0.736 -0.275,0.939c-0.183,0.204 -0.515,0.337 -0.994,0.399l-0.635,0.071c-0.832,0.094 -1.441,0.407 -1.829,0.939c-0.388,0.532 -0.582,1.197 -0.582,1.996l0,4.93c0,0.454 -0.127,0.803 -0.381,1.045c-0.253,0.243 -0.571,0.364 -0.951,0.364c-0.381,0 -0.695,-0.121 -0.941,-0.364c-0.247,-0.242 -0.37,-0.591 -0.37,-1.045l-0,-9.086c-0,-0.438 0.123,-0.775 0.37,-1.01c0.246,-0.234 0.553,-0.352 0.92,-0.352c0.366,0 0.662,0.114 0.888,0.34c0.226,0.228 0.338,0.552 0.338,0.975l0,0.939c0.268,-0.689 0.667,-1.221 1.195,-1.597c0.529,-0.375 1.118,-0.587 1.766,-0.633l0.296,-0.024Z" style="fill:#1e1e2e;fill-rule:nonzero;"/>
<path d="M31.876,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.701,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.244,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.097,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.795,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.457,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#1e1e2e;fill-rule:nonzero;"/>
<path d="M45.134,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.7,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.245,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.098,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.794,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.456,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#1e1e2e;fill-rule:nonzero;"/>
<path d="M54.307,33.471c-0.521,0 -1.186,-0.164 -1.506,-0.494c-0.32,-0.329 -0.48,-0.768 -0.48,-1.316l-0,-11.898l-3.374,0c-1.102,0 -1.652,-0.501 -1.652,-1.504c-0,-0.988 0.55,-1.482 1.652,-1.482l10.719,0c1.102,0 1.653,0.494 1.653,1.482c0,1.003 -0.551,1.504 -1.653,1.504l-3.374,0l0,11.898c0,0.548 -0.156,0.987 -0.468,1.316c-0.313,0.33 -0.981,0.494 -1.517,0.494Z" style="fill:#1e1e2e;fill-rule:nonzero;"/>
<path d="M69.693,21.69c0.545,-0 0.978,0.148 1.297,0.446c0.32,0.297 0.479,0.704 0.479,1.221l0,8.616c0,0.486 -0.167,0.877 -0.502,1.175c-0.335,0.297 -0.768,0.446 -1.297,0.446c-0.499,-0 -0.896,-0.141 -1.192,-0.423c-0.297,-0.282 -0.445,-0.658 -0.445,-1.127l0,-0.235c-0.358,0.595 -0.829,1.049 -1.414,1.362c-0.584,0.313 -1.242,0.469 -1.975,0.469c-1.449,0 -2.528,-0.403 -3.237,-1.209c-0.709,-0.806 -1.064,-2.023 -1.064,-3.651l0,-5.423c0,-0.517 0.16,-0.924 0.479,-1.221c0.32,-0.298 0.752,-0.446 1.298,-0.446c0.545,-0 0.974,0.148 1.285,0.446c0.312,0.297 0.468,0.704 0.468,1.221l-0,5.494c-0,0.688 0.144,1.197 0.432,1.526c0.288,0.329 0.729,0.493 1.321,0.493c0.685,0 1.243,-0.235 1.671,-0.704c0.429,-0.47 0.643,-1.088 0.643,-1.855l-0,-4.954c-0,-0.517 0.156,-0.924 0.467,-1.221c0.312,-0.298 0.741,-0.446 1.286,-0.446Z" style="fill:#1e1e2e;fill-rule:nonzero;"/>
<path d="M81.429,21.643c1.017,-0 1.915,0.242 2.694,0.727c0.779,0.486 1.387,1.178 1.824,2.079c0.437,0.899 0.655,1.944 0.655,3.134c0,1.19 -0.218,2.242 -0.655,3.158c-0.437,0.915 -1.049,1.628 -1.836,2.137c-0.787,0.508 -1.681,0.762 -2.682,0.762c-0.811,0 -1.542,-0.168 -2.194,-0.504c-0.651,-0.337 -1.152,-0.802 -1.502,-1.397l0,0.187c0,0.501 -0.159,0.904 -0.477,1.21c-0.317,0.305 -0.747,0.458 -1.287,0.458c-0.54,-0 -0.974,-0.153 -1.299,-0.458c-0.326,-0.306 -0.489,-0.709 -0.489,-1.21l-0,-13.524c-0,-0.485 0.171,-0.876 0.512,-1.173c0.342,-0.298 0.791,-0.447 1.347,-0.447c0.525,0 0.946,0.141 1.264,0.423c0.318,0.282 0.477,0.657 0.477,1.127l-0,5.142c0.349,-0.579 0.846,-1.029 1.49,-1.35c0.644,-0.321 1.363,-0.481 2.158,-0.481l-0,-0Zm-1.049,9.298c0.842,-0 1.494,-0.294 1.955,-0.881c0.461,-0.587 0.691,-1.412 0.691,-2.477c0,-1.049 -0.23,-1.851 -0.691,-2.407c-0.461,-0.555 -1.113,-0.833 -1.955,-0.833c-0.843,-0 -1.494,0.286 -1.955,0.857c-0.461,0.571 -0.692,1.381 -0.692,2.43c0,1.064 0.231,1.882 0.692,2.454c0.461,0.571 1.112,0.857 1.955,0.857l-0,-0Z" style="fill:#1e1e2e;fill-rule:nonzero;"/>
<path d="M98.784,30.025c0.337,-0 0.612,0.125 0.823,0.375c0.211,0.251 0.317,0.572 0.317,0.963c-0,0.266 -0.084,0.513 -0.254,0.74c-0.168,0.227 -0.405,0.418 -0.709,0.575c-0.574,0.282 -1.241,0.513 -2.002,0.692c-0.76,0.181 -1.461,0.27 -2.103,0.27c-1.351,0 -2.53,-0.242 -3.535,-0.727c-1.005,-0.486 -1.778,-1.178 -2.318,-2.078c-0.541,-0.9 -0.811,-1.961 -0.811,-3.182c-0,-1.174 0.262,-2.214 0.786,-3.122c0.523,-0.908 1.25,-1.617 2.179,-2.125c0.929,-0.509 1.984,-0.763 3.167,-0.763c1.132,-0 2.124,0.231 2.977,0.692c0.853,0.462 1.517,1.12 1.989,1.973c0.473,0.853 0.71,1.85 0.71,2.993c0,0.345 -0.089,0.607 -0.266,0.787c-0.177,0.18 -0.427,0.27 -0.748,0.27l-7.095,-0c0.119,0.923 0.423,1.593 0.913,2.007c0.49,0.415 1.191,0.622 2.103,0.622c0.49,0 0.929,-0.054 1.317,-0.164c0.389,-0.11 0.82,-0.258 1.293,-0.446c0.236,-0.094 0.464,-0.176 0.684,-0.247c0.219,-0.07 0.414,-0.105 0.583,-0.105Zm-4.359,-5.941c-0.726,0 -1.309,0.216 -1.748,0.646c-0.439,0.431 -0.701,1.053 -0.786,1.867l4.891,-0c-0.051,-0.83 -0.275,-1.456 -0.672,-1.878c-0.397,-0.423 -0.958,-0.635 -1.685,-0.635Z" style="fill:#1e1e2e;fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,10 @@
<svg width="100" height="49" viewBox="0 0 100 49" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M3.029,33.471c-0.452,0 -0.815,-0.141 -1.088,-0.422c-0.272,-0.282 -0.409,-0.65 -0.409,-1.104l0,-13.735c0,-0.454 0.129,-0.806 0.386,-1.057c0.257,-0.25 0.612,-0.376 1.064,-0.376l8.204,0c0.951,0 1.426,0.407 1.426,1.221c-0,0.799 -0.475,1.198 -1.426,1.198l-6.685,-0l-0,4.508l6.218,-0c0.95,-0 1.425,0.407 1.425,1.221c0,0.798 -0.475,1.197 -1.425,1.197l-6.218,0l-0,5.823c-0,0.454 -0.132,0.822 -0.397,1.104c-0.265,0.281 -0.624,0.422 -1.075,0.422Z" style="fill:#cdd6f4;fill-rule:nonzero;"/>
<path d="M19.432,21.614c0.367,-0.031 0.656,0.055 0.868,0.258c0.211,0.204 0.317,0.509 0.317,0.916c-0,0.423 -0.092,0.736 -0.275,0.939c-0.183,0.204 -0.515,0.337 -0.994,0.399l-0.635,0.071c-0.832,0.094 -1.441,0.407 -1.829,0.939c-0.388,0.532 -0.582,1.197 -0.582,1.996l0,4.93c0,0.454 -0.127,0.803 -0.381,1.045c-0.253,0.243 -0.571,0.364 -0.951,0.364c-0.381,0 -0.695,-0.121 -0.941,-0.364c-0.247,-0.242 -0.37,-0.591 -0.37,-1.045l-0,-9.086c-0,-0.438 0.123,-0.775 0.37,-1.01c0.246,-0.234 0.553,-0.352 0.92,-0.352c0.366,0 0.662,0.114 0.888,0.34c0.226,0.228 0.338,0.552 0.338,0.975l0,0.939c0.268,-0.689 0.667,-1.221 1.195,-1.597c0.529,-0.375 1.118,-0.587 1.766,-0.633l0.296,-0.024Z" style="fill:#cdd6f4;fill-rule:nonzero;"/>
<path d="M31.876,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.701,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.244,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.097,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.795,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.457,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#cdd6f4;fill-rule:nonzero;"/>
<path d="M45.134,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.7,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.245,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.098,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.794,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.456,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#cdd6f4;fill-rule:nonzero;"/>
<path d="M54.307,33.471c-0.521,0 -1.186,-0.164 -1.506,-0.494c-0.32,-0.329 -0.48,-0.768 -0.48,-1.316l-0,-11.898l-3.374,0c-1.102,0 -1.652,-0.501 -1.652,-1.504c-0,-0.988 0.55,-1.482 1.652,-1.482l10.719,0c1.102,0 1.653,0.494 1.653,1.482c0,1.003 -0.551,1.504 -1.653,1.504l-3.374,0l0,11.898c0,0.548 -0.156,0.987 -0.468,1.316c-0.313,0.33 -0.981,0.494 -1.517,0.494Z" style="fill:#cdd6f4;fill-rule:nonzero;"/>
<path d="M69.693,21.69c0.545,-0 0.978,0.148 1.297,0.446c0.32,0.297 0.479,0.704 0.479,1.221l0,8.616c0,0.486 -0.167,0.877 -0.502,1.175c-0.335,0.297 -0.768,0.446 -1.297,0.446c-0.499,-0 -0.896,-0.141 -1.192,-0.423c-0.297,-0.282 -0.445,-0.658 -0.445,-1.127l0,-0.235c-0.358,0.595 -0.829,1.049 -1.414,1.362c-0.584,0.313 -1.242,0.469 -1.975,0.469c-1.449,0 -2.528,-0.403 -3.237,-1.209c-0.709,-0.806 -1.064,-2.023 -1.064,-3.651l0,-5.423c0,-0.517 0.16,-0.924 0.479,-1.221c0.32,-0.298 0.752,-0.446 1.298,-0.446c0.545,-0 0.974,0.148 1.285,0.446c0.312,0.297 0.468,0.704 0.468,1.221l-0,5.494c-0,0.688 0.144,1.197 0.432,1.526c0.288,0.329 0.729,0.493 1.321,0.493c0.685,0 1.243,-0.235 1.671,-0.704c0.429,-0.47 0.643,-1.088 0.643,-1.855l-0,-4.954c-0,-0.517 0.156,-0.924 0.467,-1.221c0.312,-0.298 0.741,-0.446 1.286,-0.446Z" style="fill:#cdd6f4;fill-rule:nonzero;"/>
<path d="M81.429,21.643c1.017,-0 1.915,0.242 2.694,0.727c0.779,0.486 1.387,1.178 1.824,2.079c0.437,0.899 0.655,1.944 0.655,3.134c0,1.19 -0.218,2.242 -0.655,3.158c-0.437,0.915 -1.049,1.628 -1.836,2.137c-0.787,0.508 -1.681,0.762 -2.682,0.762c-0.811,0 -1.542,-0.168 -2.194,-0.504c-0.651,-0.337 -1.152,-0.802 -1.502,-1.397l0,0.187c0,0.501 -0.159,0.904 -0.477,1.21c-0.317,0.305 -0.747,0.458 -1.287,0.458c-0.54,-0 -0.974,-0.153 -1.299,-0.458c-0.326,-0.306 -0.489,-0.709 -0.489,-1.21l-0,-13.524c-0,-0.485 0.171,-0.876 0.512,-1.173c0.342,-0.298 0.791,-0.447 1.347,-0.447c0.525,0 0.946,0.141 1.264,0.423c0.318,0.282 0.477,0.657 0.477,1.127l-0,5.142c0.349,-0.579 0.846,-1.029 1.49,-1.35c0.644,-0.321 1.363,-0.481 2.158,-0.481l-0,-0Zm-1.049,9.298c0.842,-0 1.494,-0.294 1.955,-0.881c0.461,-0.587 0.691,-1.412 0.691,-2.477c0,-1.049 -0.23,-1.851 -0.691,-2.407c-0.461,-0.555 -1.113,-0.833 -1.955,-0.833c-0.843,-0 -1.494,0.286 -1.955,0.857c-0.461,0.571 -0.692,1.381 -0.692,2.43c0,1.064 0.231,1.882 0.692,2.454c0.461,0.571 1.112,0.857 1.955,0.857l-0,-0Z" style="fill:#cdd6f4;fill-rule:nonzero;"/>
<path d="M98.784,30.025c0.337,-0 0.612,0.125 0.823,0.375c0.211,0.251 0.317,0.572 0.317,0.963c-0,0.266 -0.084,0.513 -0.254,0.74c-0.168,0.227 -0.405,0.418 -0.709,0.575c-0.574,0.282 -1.241,0.513 -2.002,0.692c-0.76,0.181 -1.461,0.27 -2.103,0.27c-1.351,0 -2.53,-0.242 -3.535,-0.727c-1.005,-0.486 -1.778,-1.178 -2.318,-2.078c-0.541,-0.9 -0.811,-1.961 -0.811,-3.182c-0,-1.174 0.262,-2.214 0.786,-3.122c0.523,-0.908 1.25,-1.617 2.179,-2.125c0.929,-0.509 1.984,-0.763 3.167,-0.763c1.132,-0 2.124,0.231 2.977,0.692c0.853,0.462 1.517,1.12 1.989,1.973c0.473,0.853 0.71,1.85 0.71,2.993c0,0.345 -0.089,0.607 -0.266,0.787c-0.177,0.18 -0.427,0.27 -0.748,0.27l-7.095,-0c0.119,0.923 0.423,1.593 0.913,2.007c0.49,0.415 1.191,0.622 2.103,0.622c0.49,0 0.929,-0.054 1.317,-0.164c0.389,-0.11 0.82,-0.258 1.293,-0.446c0.236,-0.094 0.464,-0.176 0.684,-0.247c0.219,-0.07 0.414,-0.105 0.583,-0.105Zm-4.359,-5.941c-0.726,0 -1.309,0.216 -1.748,0.646c-0.439,0.431 -0.701,1.053 -0.786,1.867l4.891,-0c-0.051,-0.83 -0.275,-1.456 -0.672,-1.878c-0.397,-0.423 -0.958,-0.635 -1.685,-0.635Z" style="fill:#cdd6f4;fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

10
_icons/textColor.svg Normal file
View File

@ -0,0 +1,10 @@
<svg width="410" height="200" viewBox="0 0 410 200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M12.417,136.617c-1.853,-0 -3.339,-0.575 -4.457,-1.725c-1.118,-1.15 -1.677,-2.652 -1.677,-4.504l0,-56.063c0,-1.853 0.527,-3.29 1.582,-4.312c1.054,-1.023 2.507,-1.534 4.36,-1.534l33.638,0c3.897,0 5.845,1.661 5.845,4.984c0,3.258 -1.948,4.887 -5.845,4.887l-27.409,0l0,18.4l25.492,0c3.897,0 5.846,1.661 5.846,4.983c-0,3.259 -1.949,4.888 -5.846,4.888l-25.492,-0l0,23.767c0,1.852 -0.543,3.354 -1.629,4.504c-1.086,1.15 -2.556,1.725 -4.408,1.725Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M79.673,88.221c1.503,-0.128 2.688,0.223 3.555,1.054c0.868,0.831 1.301,2.076 1.301,3.737c0,1.725 -0.376,3.003 -1.127,3.834c-0.752,0.83 -2.11,1.373 -4.076,1.629l-2.601,0.287c-3.411,0.384 -5.911,1.662 -7.501,3.834c-1.59,2.172 -2.385,4.887 -2.385,8.146l0,20.125c0,1.852 -0.52,3.274 -1.561,4.264c-1.04,0.991 -2.341,1.486 -3.902,1.486c-1.561,-0 -2.847,-0.495 -3.858,-1.486c-1.012,-0.99 -1.518,-2.412 -1.518,-4.264l-0,-37.088c-0,-1.789 0.506,-3.162 1.518,-4.121c1.011,-0.958 2.269,-1.437 3.772,-1.437c1.503,-0 2.717,0.463 3.642,1.389c0.925,0.927 1.387,2.252 1.387,3.977l0,3.834c1.098,-2.811 2.732,-4.984 4.899,-6.517c2.168,-1.533 4.582,-2.396 7.241,-2.587l1.214,-0.096Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M130.691,123.2c1.136,-0 2.054,0.415 2.756,1.246c0.701,0.83 1.052,1.948 1.052,3.354c0,1.981 -1.236,3.642 -3.708,4.983c-2.272,1.214 -4.844,2.189 -7.717,2.923c-2.873,0.735 -5.612,1.102 -8.218,1.102c-7.884,0 -14.131,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c0,-4.792 1.002,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.641,-2.045 7.767,-3.067 12.377,-3.067c4.41,0 8.252,0.927 11.525,2.779c3.274,1.853 5.813,4.473 7.617,7.859c1.804,3.386 2.706,7.379 2.706,11.979c0,2.747 -1.269,4.121 -3.808,4.121l-29.565,-0c0.401,4.408 1.704,7.65 3.909,9.727c2.204,2.076 5.411,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.474,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.408,0 -6.13,1.023 -8.168,3.067c-2.038,2.045 -3.257,4.983 -3.658,8.817l22.65,-0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.871,-2.012 -4.477,-3.019 -7.817,-3.019Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M185.049,123.2c1.136,-0 2.055,0.415 2.756,1.246c0.702,0.83 1.052,1.948 1.052,3.354c0,1.981 -1.236,3.642 -3.708,4.983c-2.271,1.214 -4.844,2.189 -7.717,2.923c-2.872,0.735 -5.612,1.102 -8.218,1.102c-7.883,0 -14.13,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c0,-4.792 1.003,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.642,-2.045 7.767,-3.067 12.378,-3.067c4.409,0 8.251,0.927 11.525,2.779c3.274,1.853 5.812,4.473 7.616,7.859c1.804,3.386 2.706,7.379 2.706,11.979c0,2.747 -1.269,4.121 -3.808,4.121l-29.565,-0c0.401,4.408 1.704,7.65 3.909,9.727c2.205,2.076 5.412,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.475,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.407,0 -6.13,1.023 -8.168,3.067c-2.037,2.045 -3.257,4.983 -3.658,8.817l22.65,-0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.87,-2.012 -4.476,-3.019 -7.817,-3.019Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M222.658,136.617c-2.137,-0 -4.861,-0.672 -6.173,-2.016c-1.313,-1.343 -1.969,-3.135 -1.969,-5.374l0,-48.56l-13.833,0c-4.517,0 -6.775,-2.047 -6.775,-6.142c-0,-4.03 2.258,-6.046 6.775,-6.046l43.949,0c4.517,0 6.776,2.016 6.776,6.046c-0,4.095 -2.259,6.142 -6.776,6.142l-13.833,0l0,48.56c0,2.239 -0.64,4.031 -1.922,5.374c-1.282,1.344 -4.022,2.016 -6.219,2.016Z" style="fill:#29abe1;fill-rule:nonzero;"/>
<path d="M285.741,88.529c2.236,0 4.009,0.607 5.319,1.821c1.31,1.214 1.964,2.875 1.964,4.983l0,35.171c0,1.981 -0.686,3.578 -2.06,4.792c-1.374,1.214 -3.147,1.821 -5.319,1.821c-2.044,-0 -3.673,-0.575 -4.887,-1.725c-1.214,-1.15 -1.821,-2.684 -1.821,-4.6l-0,-0.959c-1.47,2.428 -3.402,4.281 -5.798,5.559c-2.396,1.277 -5.095,1.916 -8.098,1.916c-5.942,0 -10.366,-1.645 -13.273,-4.935c-2.907,-3.29 -4.36,-8.258 -4.36,-14.902l-0,-22.138c-0,-2.108 0.655,-3.769 1.964,-4.983c1.31,-1.214 3.083,-1.821 5.319,-1.821c2.236,0 3.993,0.607 5.271,1.821c1.278,1.214 1.917,2.875 1.917,4.983l-0,22.425c-0,2.811 0.591,4.888 1.772,6.23c1.182,1.341 2.987,2.012 5.415,2.012c2.811,0 5.095,-0.958 6.852,-2.875c1.757,-1.917 2.636,-4.44 2.636,-7.571l-0,-20.221c-0,-2.108 0.638,-3.769 1.916,-4.983c1.278,-1.214 3.035,-1.821 5.271,-1.821Z" style="fill:#29abe1;fill-rule:nonzero;"/>
<path d="M333.858,88.338c4.171,-0.001 7.853,0.99 11.046,2.97c3.193,1.981 5.686,4.808 7.478,8.482c1.792,3.673 2.688,7.938 2.688,12.793c0,4.856 -0.896,9.152 -2.688,12.89c-1.792,3.737 -4.301,6.644 -7.527,8.721c-3.226,2.076 -6.891,3.114 -10.997,3.114c-3.324,0 -6.321,-0.686 -8.993,-2.06c-2.672,-1.374 -4.725,-3.274 -6.159,-5.702l0,0.766c0,2.045 -0.651,3.69 -1.955,4.936c-1.303,1.246 -3.063,1.869 -5.278,1.869c-2.216,-0 -3.992,-0.623 -5.328,-1.869c-1.336,-1.246 -2.004,-2.891 -2.004,-4.936l0,-55.2c0,-1.98 0.701,-3.577 2.102,-4.791c1.401,-1.214 3.242,-1.821 5.523,-1.821c2.15,-0 3.877,0.575 5.181,1.725c1.303,1.15 1.955,2.683 1.955,4.6l-0,20.987c1.433,-2.363 3.47,-4.2 6.109,-5.51c2.64,-1.31 5.588,-1.965 8.847,-1.965Zm-4.301,37.95c3.454,0 6.126,-1.197 8.016,-3.593c1.889,-2.396 2.834,-5.766 2.834,-10.111c0,-4.28 -0.945,-7.555 -2.834,-9.823c-1.89,-2.268 -4.562,-3.402 -8.016,-3.402c-3.454,0 -6.126,1.166 -8.016,3.498c-1.89,2.332 -2.835,5.638 -2.835,9.919c0,4.344 0.945,7.683 2.835,10.015c1.89,2.332 4.562,3.498 8.016,3.498Z" style="fill:#29abe1;fill-rule:nonzero;"/>
<path d="M405.013,122.55c1.385,0 2.511,0.511 3.377,1.533c0.865,1.023 1.298,2.332 1.298,3.929c0,1.087 -0.346,2.093 -1.039,3.019c-0.692,0.927 -1.662,1.709 -2.909,2.348c-2.354,1.15 -5.09,2.093 -8.207,2.827c-3.117,0.735 -5.991,1.102 -8.623,1.102c-5.541,0 -10.372,-0.99 -14.493,-2.971c-4.121,-1.98 -7.289,-4.807 -9.506,-8.481c-2.216,-3.673 -3.324,-8.002 -3.324,-12.985c-0,-4.792 1.073,-9.04 3.221,-12.746c2.147,-3.706 5.125,-6.597 8.934,-8.673c3.809,-2.076 8.138,-3.115 12.986,-3.115c4.641,0 8.71,0.943 12.208,2.828c3.497,1.884 6.216,4.568 8.155,8.05c1.939,3.482 2.909,7.554 2.909,12.218c0,1.406 -0.364,2.476 -1.091,3.211c-0.727,0.734 -1.749,1.102 -3.065,1.102l-29.089,-0c0.485,3.769 1.731,6.501 3.74,8.194c2.009,1.693 4.883,2.539 8.623,2.539c2.009,0 3.809,-0.223 5.402,-0.671c1.593,-0.447 3.359,-1.054 5.299,-1.821c0.969,-0.383 1.904,-0.718 2.805,-1.006c0.9,-0.287 1.697,-0.431 2.389,-0.431Zm-17.869,-24.246c-2.978,0 -5.368,0.879 -7.168,2.636c-1.801,1.757 -2.875,4.296 -3.221,7.618l20.051,0c-0.208,-3.386 -1.126,-5.941 -2.753,-7.666c-1.628,-1.725 -3.931,-2.588 -6.909,-2.588Z" style="fill:#29abe1;fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

10
_icons/textColorSmall.svg Normal file
View File

@ -0,0 +1,10 @@
<svg width="100" height="49" viewBox="0 0 100 49" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M3.029,33.471c-0.452,0 -0.815,-0.141 -1.088,-0.422c-0.272,-0.282 -0.409,-0.65 -0.409,-1.104l0,-13.735c0,-0.454 0.129,-0.806 0.386,-1.057c0.257,-0.25 0.612,-0.376 1.064,-0.376l8.204,0c0.951,0 1.426,0.407 1.426,1.221c-0,0.799 -0.475,1.198 -1.426,1.198l-6.685,-0l-0,4.508l6.218,-0c0.95,-0 1.425,0.407 1.425,1.221c0,0.798 -0.475,1.197 -1.425,1.197l-6.218,0l-0,5.823c-0,0.454 -0.132,0.822 -0.397,1.104c-0.265,0.281 -0.624,0.422 -1.075,0.422Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M19.432,21.614c0.367,-0.031 0.656,0.055 0.868,0.258c0.211,0.204 0.317,0.509 0.317,0.916c-0,0.423 -0.092,0.736 -0.275,0.939c-0.183,0.204 -0.515,0.337 -0.994,0.399l-0.635,0.071c-0.832,0.094 -1.441,0.407 -1.829,0.939c-0.388,0.532 -0.582,1.197 -0.582,1.996l0,4.93c0,0.454 -0.127,0.803 -0.381,1.045c-0.253,0.243 -0.571,0.364 -0.951,0.364c-0.381,0 -0.695,-0.121 -0.941,-0.364c-0.247,-0.242 -0.37,-0.591 -0.37,-1.045l-0,-9.086c-0,-0.438 0.123,-0.775 0.37,-1.01c0.246,-0.234 0.553,-0.352 0.92,-0.352c0.366,0 0.662,0.114 0.888,0.34c0.226,0.228 0.338,0.552 0.338,0.975l0,0.939c0.268,-0.689 0.667,-1.221 1.195,-1.597c0.529,-0.375 1.118,-0.587 1.766,-0.633l0.296,-0.024Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M31.876,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.701,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.244,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.097,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.795,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.457,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M45.134,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.7,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.245,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.098,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.794,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.456,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#f33;fill-rule:nonzero;"/>
<path d="M54.307,33.471c-0.521,0 -1.186,-0.164 -1.506,-0.494c-0.32,-0.329 -0.48,-0.768 -0.48,-1.316l-0,-11.898l-3.374,0c-1.102,0 -1.652,-0.501 -1.652,-1.504c-0,-0.988 0.55,-1.482 1.652,-1.482l10.719,0c1.102,0 1.653,0.494 1.653,1.482c0,1.003 -0.551,1.504 -1.653,1.504l-3.374,0l0,11.898c0,0.548 -0.156,0.987 -0.468,1.316c-0.313,0.33 -0.981,0.494 -1.517,0.494Z" style="fill:#29abe1;fill-rule:nonzero;"/>
<path d="M69.693,21.69c0.545,-0 0.978,0.148 1.297,0.446c0.32,0.297 0.479,0.704 0.479,1.221l0,8.616c0,0.486 -0.167,0.877 -0.502,1.175c-0.335,0.297 -0.768,0.446 -1.297,0.446c-0.499,-0 -0.896,-0.141 -1.192,-0.423c-0.297,-0.282 -0.445,-0.658 -0.445,-1.127l0,-0.235c-0.358,0.595 -0.829,1.049 -1.414,1.362c-0.584,0.313 -1.242,0.469 -1.975,0.469c-1.449,0 -2.528,-0.403 -3.237,-1.209c-0.709,-0.806 -1.064,-2.023 -1.064,-3.651l0,-5.423c0,-0.517 0.16,-0.924 0.479,-1.221c0.32,-0.298 0.752,-0.446 1.298,-0.446c0.545,-0 0.974,0.148 1.285,0.446c0.312,0.297 0.468,0.704 0.468,1.221l-0,5.494c-0,0.688 0.144,1.197 0.432,1.526c0.288,0.329 0.729,0.493 1.321,0.493c0.685,0 1.243,-0.235 1.671,-0.704c0.429,-0.47 0.643,-1.088 0.643,-1.855l-0,-4.954c-0,-0.517 0.156,-0.924 0.467,-1.221c0.312,-0.298 0.741,-0.446 1.286,-0.446Z" style="fill:#29abe1;fill-rule:nonzero;"/>
<path d="M81.429,21.643c1.017,-0 1.915,0.242 2.694,0.727c0.779,0.486 1.387,1.178 1.824,2.079c0.437,0.899 0.655,1.944 0.655,3.134c0,1.19 -0.218,2.242 -0.655,3.158c-0.437,0.915 -1.049,1.628 -1.836,2.137c-0.787,0.508 -1.681,0.762 -2.682,0.762c-0.811,0 -1.542,-0.168 -2.194,-0.504c-0.651,-0.337 -1.152,-0.802 -1.502,-1.397l0,0.187c0,0.501 -0.159,0.904 -0.477,1.21c-0.317,0.305 -0.747,0.458 -1.287,0.458c-0.54,-0 -0.974,-0.153 -1.299,-0.458c-0.326,-0.306 -0.489,-0.709 -0.489,-1.21l-0,-13.524c-0,-0.485 0.171,-0.876 0.512,-1.173c0.342,-0.298 0.791,-0.447 1.347,-0.447c0.525,0 0.946,0.141 1.264,0.423c0.318,0.282 0.477,0.657 0.477,1.127l-0,5.142c0.349,-0.579 0.846,-1.029 1.49,-1.35c0.644,-0.321 1.363,-0.481 2.158,-0.481l-0,-0Zm-1.049,9.298c0.842,-0 1.494,-0.294 1.955,-0.881c0.461,-0.587 0.691,-1.412 0.691,-2.477c0,-1.049 -0.23,-1.851 -0.691,-2.407c-0.461,-0.555 -1.113,-0.833 -1.955,-0.833c-0.843,-0 -1.494,0.286 -1.955,0.857c-0.461,0.571 -0.692,1.381 -0.692,2.43c0,1.064 0.231,1.882 0.692,2.454c0.461,0.571 1.112,0.857 1.955,0.857l-0,-0Z" style="fill:#29abe1;fill-rule:nonzero;"/>
<path d="M98.784,30.025c0.337,-0 0.612,0.125 0.823,0.375c0.211,0.251 0.317,0.572 0.317,0.963c-0,0.266 -0.084,0.513 -0.254,0.74c-0.168,0.227 -0.405,0.418 -0.709,0.575c-0.574,0.282 -1.241,0.513 -2.002,0.692c-0.76,0.181 -1.461,0.27 -2.103,0.27c-1.351,0 -2.53,-0.242 -3.535,-0.727c-1.005,-0.486 -1.778,-1.178 -2.318,-2.078c-0.541,-0.9 -0.811,-1.961 -0.811,-3.182c-0,-1.174 0.262,-2.214 0.786,-3.122c0.523,-0.908 1.25,-1.617 2.179,-2.125c0.929,-0.509 1.984,-0.763 3.167,-0.763c1.132,-0 2.124,0.231 2.977,0.692c0.853,0.462 1.517,1.12 1.989,1.973c0.473,0.853 0.71,1.85 0.71,2.993c0,0.345 -0.089,0.607 -0.266,0.787c-0.177,0.18 -0.427,0.27 -0.748,0.27l-7.095,-0c0.119,0.923 0.423,1.593 0.913,2.007c0.49,0.415 1.191,0.622 2.103,0.622c0.49,0 0.929,-0.054 1.317,-0.164c0.389,-0.11 0.82,-0.258 1.293,-0.446c0.236,-0.094 0.464,-0.176 0.684,-0.247c0.219,-0.07 0.414,-0.105 0.583,-0.105Zm-4.359,-5.941c-0.726,0 -1.309,0.216 -1.748,0.646c-0.439,0.431 -0.701,1.053 -0.786,1.867l4.891,-0c-0.051,-0.83 -0.275,-1.456 -0.672,-1.878c-0.397,-0.423 -0.958,-0.635 -1.685,-0.635Z" style="fill:#29abe1;fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,10 @@
<svg width="100" height="49" viewBox="0 0 100 49" 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;">
<path d="M3.029,33.471c-0.452,0 -0.815,-0.141 -1.088,-0.422c-0.272,-0.282 -0.409,-0.65 -0.409,-1.104l0,-13.735c0,-0.454 0.129,-0.806 0.386,-1.057c0.257,-0.25 0.612,-0.376 1.064,-0.376l8.204,0c0.951,0 1.426,0.407 1.426,1.221c-0,0.799 -0.475,1.198 -1.426,1.198l-6.685,-0l-0,4.508l6.218,-0c0.95,-0 1.425,0.407 1.425,1.221c0,0.798 -0.475,1.197 -1.425,1.197l-6.218,0l-0,5.823c-0,0.454 -0.132,0.822 -0.397,1.104c-0.265,0.281 -0.624,0.422 -1.075,0.422Z" style="fill:#282a36;fill-rule:nonzero;"/>
<path d="M19.432,21.614c0.367,-0.031 0.656,0.055 0.868,0.258c0.211,0.204 0.317,0.509 0.317,0.916c-0,0.423 -0.092,0.736 -0.275,0.939c-0.183,0.204 -0.515,0.337 -0.994,0.399l-0.635,0.071c-0.832,0.094 -1.441,0.407 -1.829,0.939c-0.388,0.532 -0.582,1.197 -0.582,1.996l0,4.93c0,0.454 -0.127,0.803 -0.381,1.045c-0.253,0.243 -0.571,0.364 -0.951,0.364c-0.381,0 -0.695,-0.121 -0.941,-0.364c-0.247,-0.242 -0.37,-0.591 -0.37,-1.045l-0,-9.086c-0,-0.438 0.123,-0.775 0.37,-1.01c0.246,-0.234 0.553,-0.352 0.92,-0.352c0.366,0 0.662,0.114 0.888,0.34c0.226,0.228 0.338,0.552 0.338,0.975l0,0.939c0.268,-0.689 0.667,-1.221 1.195,-1.597c0.529,-0.375 1.118,-0.587 1.766,-0.633l0.296,-0.024Z" style="fill:#282a36;fill-rule:nonzero;"/>
<path d="M31.876,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.701,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.244,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.097,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.795,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.457,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#282a36;fill-rule:nonzero;"/>
<path d="M45.134,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.7,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.245,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.098,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.794,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.456,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#282a36;fill-rule:nonzero;"/>
<path d="M54.307,33.471c-0.521,0 -1.186,-0.164 -1.506,-0.494c-0.32,-0.329 -0.48,-0.768 -0.48,-1.316l-0,-11.898l-3.374,0c-1.102,0 -1.652,-0.501 -1.652,-1.504c-0,-0.988 0.55,-1.482 1.652,-1.482l10.719,0c1.102,0 1.653,0.494 1.653,1.482c0,1.003 -0.551,1.504 -1.653,1.504l-3.374,0l0,11.898c0,0.548 -0.156,0.987 -0.468,1.316c-0.313,0.33 -0.981,0.494 -1.517,0.494Z" style="fill:#282a36;fill-rule:nonzero;"/>
<path d="M69.693,21.69c0.545,-0 0.978,0.148 1.297,0.446c0.32,0.297 0.479,0.704 0.479,1.221l0,8.616c0,0.486 -0.167,0.877 -0.502,1.175c-0.335,0.297 -0.768,0.446 -1.297,0.446c-0.499,-0 -0.896,-0.141 -1.192,-0.423c-0.297,-0.282 -0.445,-0.658 -0.445,-1.127l0,-0.235c-0.358,0.595 -0.829,1.049 -1.414,1.362c-0.584,0.313 -1.242,0.469 -1.975,0.469c-1.449,0 -2.528,-0.403 -3.237,-1.209c-0.709,-0.806 -1.064,-2.023 -1.064,-3.651l0,-5.423c0,-0.517 0.16,-0.924 0.479,-1.221c0.32,-0.298 0.752,-0.446 1.298,-0.446c0.545,-0 0.974,0.148 1.285,0.446c0.312,0.297 0.468,0.704 0.468,1.221l-0,5.494c-0,0.688 0.144,1.197 0.432,1.526c0.288,0.329 0.729,0.493 1.321,0.493c0.685,0 1.243,-0.235 1.671,-0.704c0.429,-0.47 0.643,-1.088 0.643,-1.855l-0,-4.954c-0,-0.517 0.156,-0.924 0.467,-1.221c0.312,-0.298 0.741,-0.446 1.286,-0.446Z" style="fill:#282a36;fill-rule:nonzero;"/>
<path d="M81.429,21.643c1.017,-0 1.915,0.242 2.694,0.727c0.779,0.486 1.387,1.178 1.824,2.079c0.437,0.899 0.655,1.944 0.655,3.134c0,1.19 -0.218,2.242 -0.655,3.158c-0.437,0.915 -1.049,1.628 -1.836,2.137c-0.787,0.508 -1.681,0.762 -2.682,0.762c-0.811,0 -1.542,-0.168 -2.194,-0.504c-0.651,-0.337 -1.152,-0.802 -1.502,-1.397l0,0.187c0,0.501 -0.159,0.904 -0.477,1.21c-0.317,0.305 -0.747,0.458 -1.287,0.458c-0.54,-0 -0.974,-0.153 -1.299,-0.458c-0.326,-0.306 -0.489,-0.709 -0.489,-1.21l-0,-13.524c-0,-0.485 0.171,-0.876 0.512,-1.173c0.342,-0.298 0.791,-0.447 1.347,-0.447c0.525,0 0.946,0.141 1.264,0.423c0.318,0.282 0.477,0.657 0.477,1.127l-0,5.142c0.349,-0.579 0.846,-1.029 1.49,-1.35c0.644,-0.321 1.363,-0.481 2.158,-0.481l-0,-0Zm-1.049,9.298c0.842,-0 1.494,-0.294 1.955,-0.881c0.461,-0.587 0.691,-1.412 0.691,-2.477c0,-1.049 -0.23,-1.851 -0.691,-2.407c-0.461,-0.555 -1.113,-0.833 -1.955,-0.833c-0.843,-0 -1.494,0.286 -1.955,0.857c-0.461,0.571 -0.692,1.381 -0.692,2.43c0,1.064 0.231,1.882 0.692,2.454c0.461,0.571 1.112,0.857 1.955,0.857l-0,-0Z" style="fill:#282a36;fill-rule:nonzero;"/>
<path d="M98.784,30.025c0.337,-0 0.612,0.125 0.823,0.375c0.211,0.251 0.317,0.572 0.317,0.963c-0,0.266 -0.084,0.513 -0.254,0.74c-0.168,0.227 -0.405,0.418 -0.709,0.575c-0.574,0.282 -1.241,0.513 -2.002,0.692c-0.76,0.181 -1.461,0.27 -2.103,0.27c-1.351,0 -2.53,-0.242 -3.535,-0.727c-1.005,-0.486 -1.778,-1.178 -2.318,-2.078c-0.541,-0.9 -0.811,-1.961 -0.811,-3.182c-0,-1.174 0.262,-2.214 0.786,-3.122c0.523,-0.908 1.25,-1.617 2.179,-2.125c0.929,-0.509 1.984,-0.763 3.167,-0.763c1.132,-0 2.124,0.231 2.977,0.692c0.853,0.462 1.517,1.12 1.989,1.973c0.473,0.853 0.71,1.85 0.71,2.993c0,0.345 -0.089,0.607 -0.266,0.787c-0.177,0.18 -0.427,0.27 -0.748,0.27l-7.095,-0c0.119,0.923 0.423,1.593 0.913,2.007c0.49,0.415 1.191,0.622 2.103,0.622c0.49,0 0.929,-0.054 1.317,-0.164c0.389,-0.11 0.82,-0.258 1.293,-0.446c0.236,-0.094 0.464,-0.176 0.684,-0.247c0.219,-0.07 0.414,-0.105 0.583,-0.105Zm-4.359,-5.941c-0.726,0 -1.309,0.216 -1.748,0.646c-0.439,0.431 -0.701,1.053 -0.786,1.867l4.891,-0c-0.051,-0.83 -0.275,-1.456 -0.672,-1.878c-0.397,-0.423 -0.958,-0.635 -1.685,-0.635Z" style="fill:#282a36;fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,10 @@
<svg width="100" height="49" viewBox="0 0 100 49" 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;">
<path d="M3.029,33.471c-0.452,0 -0.815,-0.141 -1.088,-0.422c-0.272,-0.282 -0.409,-0.65 -0.409,-1.104l0,-13.735c0,-0.454 0.129,-0.806 0.386,-1.057c0.257,-0.25 0.612,-0.376 1.064,-0.376l8.204,0c0.951,0 1.426,0.407 1.426,1.221c-0,0.799 -0.475,1.198 -1.426,1.198l-6.685,-0l-0,4.508l6.218,-0c0.95,-0 1.425,0.407 1.425,1.221c0,0.798 -0.475,1.197 -1.425,1.197l-6.218,0l-0,5.823c-0,0.454 -0.132,0.822 -0.397,1.104c-0.265,0.281 -0.624,0.422 -1.075,0.422Z" style="fill:#f8f8f8;fill-rule:nonzero;"/>
<path d="M19.432,21.614c0.367,-0.031 0.656,0.055 0.868,0.258c0.211,0.204 0.317,0.509 0.317,0.916c-0,0.423 -0.092,0.736 -0.275,0.939c-0.183,0.204 -0.515,0.337 -0.994,0.399l-0.635,0.071c-0.832,0.094 -1.441,0.407 -1.829,0.939c-0.388,0.532 -0.582,1.197 -0.582,1.996l0,4.93c0,0.454 -0.127,0.803 -0.381,1.045c-0.253,0.243 -0.571,0.364 -0.951,0.364c-0.381,0 -0.695,-0.121 -0.941,-0.364c-0.247,-0.242 -0.37,-0.591 -0.37,-1.045l-0,-9.086c-0,-0.438 0.123,-0.775 0.37,-1.01c0.246,-0.234 0.553,-0.352 0.92,-0.352c0.366,0 0.662,0.114 0.888,0.34c0.226,0.228 0.338,0.552 0.338,0.975l0,0.939c0.268,-0.689 0.667,-1.221 1.195,-1.597c0.529,-0.375 1.118,-0.587 1.766,-0.633l0.296,-0.024Z" style="fill:#f8f8f8;fill-rule:nonzero;"/>
<path d="M31.876,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.701,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.244,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.097,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.795,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.457,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#f8f8f8;fill-rule:nonzero;"/>
<path d="M45.134,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.7,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.245,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.098,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.794,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.456,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#f8f8f8;fill-rule:nonzero;"/>
<path d="M54.307,33.471c-0.521,0 -1.186,-0.164 -1.506,-0.494c-0.32,-0.329 -0.48,-0.768 -0.48,-1.316l-0,-11.898l-3.374,0c-1.102,0 -1.652,-0.501 -1.652,-1.504c-0,-0.988 0.55,-1.482 1.652,-1.482l10.719,0c1.102,0 1.653,0.494 1.653,1.482c0,1.003 -0.551,1.504 -1.653,1.504l-3.374,0l0,11.898c0,0.548 -0.156,0.987 -0.468,1.316c-0.313,0.33 -0.981,0.494 -1.517,0.494Z" style="fill:#f8f8f8;fill-rule:nonzero;"/>
<path d="M69.693,21.69c0.545,-0 0.978,0.148 1.297,0.446c0.32,0.297 0.479,0.704 0.479,1.221l0,8.616c0,0.486 -0.167,0.877 -0.502,1.175c-0.335,0.297 -0.768,0.446 -1.297,0.446c-0.499,-0 -0.896,-0.141 -1.192,-0.423c-0.297,-0.282 -0.445,-0.658 -0.445,-1.127l0,-0.235c-0.358,0.595 -0.829,1.049 -1.414,1.362c-0.584,0.313 -1.242,0.469 -1.975,0.469c-1.449,0 -2.528,-0.403 -3.237,-1.209c-0.709,-0.806 -1.064,-2.023 -1.064,-3.651l0,-5.423c0,-0.517 0.16,-0.924 0.479,-1.221c0.32,-0.298 0.752,-0.446 1.298,-0.446c0.545,-0 0.974,0.148 1.285,0.446c0.312,0.297 0.468,0.704 0.468,1.221l-0,5.494c-0,0.688 0.144,1.197 0.432,1.526c0.288,0.329 0.729,0.493 1.321,0.493c0.685,0 1.243,-0.235 1.671,-0.704c0.429,-0.47 0.643,-1.088 0.643,-1.855l-0,-4.954c-0,-0.517 0.156,-0.924 0.467,-1.221c0.312,-0.298 0.741,-0.446 1.286,-0.446Z" style="fill:#f8f8f8;fill-rule:nonzero;"/>
<path d="M81.429,21.643c1.017,-0 1.915,0.242 2.694,0.727c0.779,0.486 1.387,1.178 1.824,2.079c0.437,0.899 0.655,1.944 0.655,3.134c0,1.19 -0.218,2.242 -0.655,3.158c-0.437,0.915 -1.049,1.628 -1.836,2.137c-0.787,0.508 -1.681,0.762 -2.682,0.762c-0.811,0 -1.542,-0.168 -2.194,-0.504c-0.651,-0.337 -1.152,-0.802 -1.502,-1.397l0,0.187c0,0.501 -0.159,0.904 -0.477,1.21c-0.317,0.305 -0.747,0.458 -1.287,0.458c-0.54,-0 -0.974,-0.153 -1.299,-0.458c-0.326,-0.306 -0.489,-0.709 -0.489,-1.21l-0,-13.524c-0,-0.485 0.171,-0.876 0.512,-1.173c0.342,-0.298 0.791,-0.447 1.347,-0.447c0.525,0 0.946,0.141 1.264,0.423c0.318,0.282 0.477,0.657 0.477,1.127l-0,5.142c0.349,-0.579 0.846,-1.029 1.49,-1.35c0.644,-0.321 1.363,-0.481 2.158,-0.481l-0,-0Zm-1.049,9.298c0.842,-0 1.494,-0.294 1.955,-0.881c0.461,-0.587 0.691,-1.412 0.691,-2.477c0,-1.049 -0.23,-1.851 -0.691,-2.407c-0.461,-0.555 -1.113,-0.833 -1.955,-0.833c-0.843,-0 -1.494,0.286 -1.955,0.857c-0.461,0.571 -0.692,1.381 -0.692,2.43c0,1.064 0.231,1.882 0.692,2.454c0.461,0.571 1.112,0.857 1.955,0.857l-0,-0Z" style="fill:#f8f8f8;fill-rule:nonzero;"/>
<path d="M98.784,30.025c0.337,-0 0.612,0.125 0.823,0.375c0.211,0.251 0.317,0.572 0.317,0.963c-0,0.266 -0.084,0.513 -0.254,0.74c-0.168,0.227 -0.405,0.418 -0.709,0.575c-0.574,0.282 -1.241,0.513 -2.002,0.692c-0.76,0.181 -1.461,0.27 -2.103,0.27c-1.351,0 -2.53,-0.242 -3.535,-0.727c-1.005,-0.486 -1.778,-1.178 -2.318,-2.078c-0.541,-0.9 -0.811,-1.961 -0.811,-3.182c-0,-1.174 0.262,-2.214 0.786,-3.122c0.523,-0.908 1.25,-1.617 2.179,-2.125c0.929,-0.509 1.984,-0.763 3.167,-0.763c1.132,-0 2.124,0.231 2.977,0.692c0.853,0.462 1.517,1.12 1.989,1.973c0.473,0.853 0.71,1.85 0.71,2.993c0,0.345 -0.089,0.607 -0.266,0.787c-0.177,0.18 -0.427,0.27 -0.748,0.27l-7.095,-0c0.119,0.923 0.423,1.593 0.913,2.007c0.49,0.415 1.191,0.622 2.103,0.622c0.49,0 0.929,-0.054 1.317,-0.164c0.389,-0.11 0.82,-0.258 1.293,-0.446c0.236,-0.094 0.464,-0.176 0.684,-0.247c0.219,-0.07 0.414,-0.105 0.583,-0.105Zm-4.359,-5.941c-0.726,0 -1.309,0.216 -1.748,0.646c-0.439,0.431 -0.701,1.053 -0.786,1.867l4.891,-0c-0.051,-0.83 -0.275,-1.456 -0.672,-1.878c-0.397,-0.423 -0.958,-0.635 -1.685,-0.635Z" style="fill:#f8f8f8;fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -0,0 +1,10 @@
<svg width="100" height="49" viewBox="0 0 100 49" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M3.029,33.471c-0.452,0 -0.815,-0.141 -1.088,-0.422c-0.272,-0.282 -0.409,-0.65 -0.409,-1.104l0,-13.735c0,-0.454 0.129,-0.806 0.386,-1.057c0.257,-0.25 0.612,-0.376 1.064,-0.376l8.204,0c0.951,0 1.426,0.407 1.426,1.221c-0,0.799 -0.475,1.198 -1.426,1.198l-6.685,-0l-0,4.508l6.218,-0c0.95,-0 1.425,0.407 1.425,1.221c0,0.798 -0.475,1.197 -1.425,1.197l-6.218,0l-0,5.823c-0,0.454 -0.132,0.822 -0.397,1.104c-0.265,0.281 -0.624,0.422 -1.075,0.422Z" style="fill:#eee;fill-rule:nonzero;"/>
<path d="M19.432,21.614c0.367,-0.031 0.656,0.055 0.868,0.258c0.211,0.204 0.317,0.509 0.317,0.916c-0,0.423 -0.092,0.736 -0.275,0.939c-0.183,0.204 -0.515,0.337 -0.994,0.399l-0.635,0.071c-0.832,0.094 -1.441,0.407 -1.829,0.939c-0.388,0.532 -0.582,1.197 -0.582,1.996l0,4.93c0,0.454 -0.127,0.803 -0.381,1.045c-0.253,0.243 -0.571,0.364 -0.951,0.364c-0.381,0 -0.695,-0.121 -0.941,-0.364c-0.247,-0.242 -0.37,-0.591 -0.37,-1.045l-0,-9.086c-0,-0.438 0.123,-0.775 0.37,-1.01c0.246,-0.234 0.553,-0.352 0.92,-0.352c0.366,0 0.662,0.114 0.888,0.34c0.226,0.228 0.338,0.552 0.338,0.975l0,0.939c0.268,-0.689 0.667,-1.221 1.195,-1.597c0.529,-0.375 1.118,-0.587 1.766,-0.633l0.296,-0.024Z" style="fill:#eee;fill-rule:nonzero;"/>
<path d="M31.876,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.701,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.244,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.097,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.795,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.457,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#eee;fill-rule:nonzero;"/>
<path d="M45.134,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.7,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.245,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.098,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.794,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.456,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#eee;fill-rule:nonzero;"/>
<path d="M54.307,33.471c-0.521,0 -1.186,-0.164 -1.506,-0.494c-0.32,-0.329 -0.48,-0.768 -0.48,-1.316l-0,-11.898l-3.374,0c-1.102,0 -1.652,-0.501 -1.652,-1.504c-0,-0.988 0.55,-1.482 1.652,-1.482l10.719,0c1.102,0 1.653,0.494 1.653,1.482c0,1.003 -0.551,1.504 -1.653,1.504l-3.374,0l0,11.898c0,0.548 -0.156,0.987 -0.468,1.316c-0.313,0.33 -0.981,0.494 -1.517,0.494Z" style="fill:#eee;fill-rule:nonzero;"/>
<path d="M69.693,21.69c0.545,-0 0.978,0.148 1.297,0.446c0.32,0.297 0.479,0.704 0.479,1.221l0,8.616c0,0.486 -0.167,0.877 -0.502,1.175c-0.335,0.297 -0.768,0.446 -1.297,0.446c-0.499,-0 -0.896,-0.141 -1.192,-0.423c-0.297,-0.282 -0.445,-0.658 -0.445,-1.127l0,-0.235c-0.358,0.595 -0.829,1.049 -1.414,1.362c-0.584,0.313 -1.242,0.469 -1.975,0.469c-1.449,0 -2.528,-0.403 -3.237,-1.209c-0.709,-0.806 -1.064,-2.023 -1.064,-3.651l0,-5.423c0,-0.517 0.16,-0.924 0.479,-1.221c0.32,-0.298 0.752,-0.446 1.298,-0.446c0.545,-0 0.974,0.148 1.285,0.446c0.312,0.297 0.468,0.704 0.468,1.221l-0,5.494c-0,0.688 0.144,1.197 0.432,1.526c0.288,0.329 0.729,0.493 1.321,0.493c0.685,0 1.243,-0.235 1.671,-0.704c0.429,-0.47 0.643,-1.088 0.643,-1.855l-0,-4.954c-0,-0.517 0.156,-0.924 0.467,-1.221c0.312,-0.298 0.741,-0.446 1.286,-0.446Z" style="fill:#eee;fill-rule:nonzero;"/>
<path d="M81.429,21.643c1.017,-0 1.915,0.242 2.694,0.727c0.779,0.486 1.387,1.178 1.824,2.079c0.437,0.899 0.655,1.944 0.655,3.134c0,1.19 -0.218,2.242 -0.655,3.158c-0.437,0.915 -1.049,1.628 -1.836,2.137c-0.787,0.508 -1.681,0.762 -2.682,0.762c-0.811,0 -1.542,-0.168 -2.194,-0.504c-0.651,-0.337 -1.152,-0.802 -1.502,-1.397l0,0.187c0,0.501 -0.159,0.904 -0.477,1.21c-0.317,0.305 -0.747,0.458 -1.287,0.458c-0.54,-0 -0.974,-0.153 -1.299,-0.458c-0.326,-0.306 -0.489,-0.709 -0.489,-1.21l-0,-13.524c-0,-0.485 0.171,-0.876 0.512,-1.173c0.342,-0.298 0.791,-0.447 1.347,-0.447c0.525,0 0.946,0.141 1.264,0.423c0.318,0.282 0.477,0.657 0.477,1.127l-0,5.142c0.349,-0.579 0.846,-1.029 1.49,-1.35c0.644,-0.321 1.363,-0.481 2.158,-0.481l-0,-0Zm-1.049,9.298c0.842,-0 1.494,-0.294 1.955,-0.881c0.461,-0.587 0.691,-1.412 0.691,-2.477c0,-1.049 -0.23,-1.851 -0.691,-2.407c-0.461,-0.555 -1.113,-0.833 -1.955,-0.833c-0.843,-0 -1.494,0.286 -1.955,0.857c-0.461,0.571 -0.692,1.381 -0.692,2.43c0,1.064 0.231,1.882 0.692,2.454c0.461,0.571 1.112,0.857 1.955,0.857l-0,-0Z" style="fill:#eee;fill-rule:nonzero;"/>
<path d="M98.784,30.025c0.337,-0 0.612,0.125 0.823,0.375c0.211,0.251 0.317,0.572 0.317,0.963c-0,0.266 -0.084,0.513 -0.254,0.74c-0.168,0.227 -0.405,0.418 -0.709,0.575c-0.574,0.282 -1.241,0.513 -2.002,0.692c-0.76,0.181 -1.461,0.27 -2.103,0.27c-1.351,0 -2.53,-0.242 -3.535,-0.727c-1.005,-0.486 -1.778,-1.178 -2.318,-2.078c-0.541,-0.9 -0.811,-1.961 -0.811,-3.182c-0,-1.174 0.262,-2.214 0.786,-3.122c0.523,-0.908 1.25,-1.617 2.179,-2.125c0.929,-0.509 1.984,-0.763 3.167,-0.763c1.132,-0 2.124,0.231 2.977,0.692c0.853,0.462 1.517,1.12 1.989,1.973c0.473,0.853 0.71,1.85 0.71,2.993c0,0.345 -0.089,0.607 -0.266,0.787c-0.177,0.18 -0.427,0.27 -0.748,0.27l-7.095,-0c0.119,0.923 0.423,1.593 0.913,2.007c0.49,0.415 1.191,0.622 2.103,0.622c0.49,0 0.929,-0.054 1.317,-0.164c0.389,-0.11 0.82,-0.258 1.293,-0.446c0.236,-0.094 0.464,-0.176 0.684,-0.247c0.219,-0.07 0.414,-0.105 0.583,-0.105Zm-4.359,-5.941c-0.726,0 -1.309,0.216 -1.748,0.646c-0.439,0.431 -0.701,1.053 -0.786,1.867l4.891,-0c-0.051,-0.83 -0.275,-1.456 -0.672,-1.878c-0.397,-0.423 -0.958,-0.635 -1.685,-0.635Z" style="fill:#eee;fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

10
_icons/textWhite.svg Normal file
View File

@ -0,0 +1,10 @@
<svg width="410" height="200" viewBox="0 0 410 200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="M12.417,136.617c-1.853,-0 -3.339,-0.575 -4.457,-1.725c-1.118,-1.15 -1.677,-2.652 -1.677,-4.504l0,-56.063c0,-1.853 0.527,-3.29 1.582,-4.312c1.054,-1.023 2.507,-1.534 4.36,-1.534l33.638,0c3.897,0 5.845,1.661 5.845,4.984c0,3.258 -1.948,4.887 -5.845,4.887l-27.409,0l0,18.4l25.492,0c3.897,0 5.846,1.661 5.846,4.983c-0,3.259 -1.949,4.888 -5.846,4.888l-25.492,-0l0,23.767c0,1.852 -0.543,3.354 -1.629,4.504c-1.086,1.15 -2.556,1.725 -4.408,1.725Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M79.673,88.221c1.503,-0.128 2.688,0.223 3.555,1.054c0.868,0.831 1.301,2.076 1.301,3.737c0,1.725 -0.376,3.003 -1.127,3.834c-0.752,0.83 -2.11,1.373 -4.076,1.629l-2.601,0.287c-3.411,0.384 -5.911,1.662 -7.501,3.834c-1.59,2.172 -2.385,4.887 -2.385,8.146l0,20.125c0,1.852 -0.52,3.274 -1.561,4.264c-1.04,0.991 -2.341,1.486 -3.902,1.486c-1.561,-0 -2.847,-0.495 -3.858,-1.486c-1.012,-0.99 -1.518,-2.412 -1.518,-4.264l-0,-37.088c-0,-1.789 0.506,-3.162 1.518,-4.121c1.011,-0.958 2.269,-1.437 3.772,-1.437c1.503,-0 2.717,0.463 3.642,1.389c0.925,0.927 1.387,2.252 1.387,3.977l0,3.834c1.098,-2.811 2.732,-4.984 4.899,-6.517c2.168,-1.533 4.582,-2.396 7.241,-2.587l1.214,-0.096Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M130.691,123.2c1.136,-0 2.054,0.415 2.756,1.246c0.701,0.83 1.052,1.948 1.052,3.354c0,1.981 -1.236,3.642 -3.708,4.983c-2.272,1.214 -4.844,2.189 -7.717,2.923c-2.873,0.735 -5.612,1.102 -8.218,1.102c-7.884,0 -14.131,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c0,-4.792 1.002,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.641,-2.045 7.767,-3.067 12.377,-3.067c4.41,0 8.252,0.927 11.525,2.779c3.274,1.853 5.813,4.473 7.617,7.859c1.804,3.386 2.706,7.379 2.706,11.979c0,2.747 -1.269,4.121 -3.808,4.121l-29.565,-0c0.401,4.408 1.704,7.65 3.909,9.727c2.204,2.076 5.411,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.474,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.408,0 -6.13,1.023 -8.168,3.067c-2.038,2.045 -3.257,4.983 -3.658,8.817l22.65,-0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.871,-2.012 -4.477,-3.019 -7.817,-3.019Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M185.049,123.2c1.136,-0 2.055,0.415 2.756,1.246c0.702,0.83 1.052,1.948 1.052,3.354c0,1.981 -1.236,3.642 -3.708,4.983c-2.271,1.214 -4.844,2.189 -7.717,2.923c-2.872,0.735 -5.612,1.102 -8.218,1.102c-7.883,0 -14.13,-2.172 -18.741,-6.516c-4.61,-4.345 -6.915,-10.286 -6.915,-17.825c0,-4.792 1.003,-9.041 3.007,-12.746c2.004,-3.706 4.827,-6.581 8.468,-8.625c3.642,-2.045 7.767,-3.067 12.378,-3.067c4.409,0 8.251,0.927 11.525,2.779c3.274,1.853 5.812,4.473 7.616,7.859c1.804,3.386 2.706,7.379 2.706,11.979c0,2.747 -1.269,4.121 -3.808,4.121l-29.565,-0c0.401,4.408 1.704,7.65 3.909,9.727c2.205,2.076 5.412,3.114 9.621,3.114c2.138,0 4.025,-0.255 5.662,-0.766c1.637,-0.511 3.491,-1.214 5.562,-2.109c2.005,-1.022 3.475,-1.533 4.41,-1.533Zm-17.338,-26.738c-3.407,0 -6.13,1.023 -8.168,3.067c-2.037,2.045 -3.257,4.983 -3.658,8.817l22.65,-0c-0.134,-3.897 -1.136,-6.852 -3.007,-8.865c-1.87,-2.012 -4.476,-3.019 -7.817,-3.019Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M222.658,136.617c-2.137,-0 -4.861,-0.672 -6.173,-2.016c-1.313,-1.343 -1.969,-3.135 -1.969,-5.374l0,-48.56l-13.833,0c-4.517,0 -6.775,-2.047 -6.775,-6.142c-0,-4.03 2.258,-6.046 6.775,-6.046l43.949,0c4.517,0 6.776,2.016 6.776,6.046c-0,4.095 -2.259,6.142 -6.776,6.142l-13.833,0l0,48.56c0,2.239 -0.64,4.031 -1.922,5.374c-1.282,1.344 -4.022,2.016 -6.219,2.016Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M285.741,88.529c2.236,0 4.009,0.607 5.319,1.821c1.31,1.214 1.964,2.875 1.964,4.983l0,35.171c0,1.981 -0.686,3.578 -2.06,4.792c-1.374,1.214 -3.147,1.821 -5.319,1.821c-2.044,-0 -3.673,-0.575 -4.887,-1.725c-1.214,-1.15 -1.821,-2.684 -1.821,-4.6l-0,-0.959c-1.47,2.428 -3.402,4.281 -5.798,5.559c-2.396,1.277 -5.095,1.916 -8.098,1.916c-5.942,0 -10.366,-1.645 -13.273,-4.935c-2.907,-3.29 -4.36,-8.258 -4.36,-14.902l-0,-22.138c-0,-2.108 0.655,-3.769 1.964,-4.983c1.31,-1.214 3.083,-1.821 5.319,-1.821c2.236,0 3.993,0.607 5.271,1.821c1.278,1.214 1.917,2.875 1.917,4.983l-0,22.425c-0,2.811 0.591,4.888 1.772,6.23c1.182,1.341 2.987,2.012 5.415,2.012c2.811,0 5.095,-0.958 6.852,-2.875c1.757,-1.917 2.636,-4.44 2.636,-7.571l-0,-20.221c-0,-2.108 0.638,-3.769 1.916,-4.983c1.278,-1.214 3.035,-1.821 5.271,-1.821Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M333.858,88.338c4.171,-0.001 7.853,0.99 11.046,2.97c3.193,1.981 5.686,4.808 7.478,8.482c1.792,3.673 2.688,7.938 2.688,12.793c0,4.856 -0.896,9.152 -2.688,12.89c-1.792,3.737 -4.301,6.644 -7.527,8.721c-3.226,2.076 -6.891,3.114 -10.997,3.114c-3.324,0 -6.321,-0.686 -8.993,-2.06c-2.672,-1.374 -4.725,-3.274 -6.159,-5.702l0,0.766c0,2.045 -0.651,3.69 -1.955,4.936c-1.303,1.246 -3.063,1.869 -5.278,1.869c-2.216,-0 -3.992,-0.623 -5.328,-1.869c-1.336,-1.246 -2.004,-2.891 -2.004,-4.936l0,-55.2c0,-1.98 0.701,-3.577 2.102,-4.791c1.401,-1.214 3.242,-1.821 5.523,-1.821c2.15,-0 3.877,0.575 5.181,1.725c1.303,1.15 1.955,2.683 1.955,4.6l-0,20.987c1.433,-2.363 3.47,-4.2 6.109,-5.51c2.64,-1.31 5.588,-1.965 8.847,-1.965Zm-4.301,37.95c3.454,0 6.126,-1.197 8.016,-3.593c1.889,-2.396 2.834,-5.766 2.834,-10.111c0,-4.28 -0.945,-7.555 -2.834,-9.823c-1.89,-2.268 -4.562,-3.402 -8.016,-3.402c-3.454,0 -6.126,1.166 -8.016,3.498c-1.89,2.332 -2.835,5.638 -2.835,9.919c0,4.344 0.945,7.683 2.835,10.015c1.89,2.332 4.562,3.498 8.016,3.498Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M405.013,122.55c1.385,0 2.511,0.511 3.377,1.533c0.865,1.023 1.298,2.332 1.298,3.929c0,1.087 -0.346,2.093 -1.039,3.019c-0.692,0.927 -1.662,1.709 -2.909,2.348c-2.354,1.15 -5.09,2.093 -8.207,2.827c-3.117,0.735 -5.991,1.102 -8.623,1.102c-5.541,0 -10.372,-0.99 -14.493,-2.971c-4.121,-1.98 -7.289,-4.807 -9.506,-8.481c-2.216,-3.673 -3.324,-8.002 -3.324,-12.985c-0,-4.792 1.073,-9.04 3.221,-12.746c2.147,-3.706 5.125,-6.597 8.934,-8.673c3.809,-2.076 8.138,-3.115 12.986,-3.115c4.641,0 8.71,0.943 12.208,2.828c3.497,1.884 6.216,4.568 8.155,8.05c1.939,3.482 2.909,7.554 2.909,12.218c0,1.406 -0.364,2.476 -1.091,3.211c-0.727,0.734 -1.749,1.102 -3.065,1.102l-29.089,-0c0.485,3.769 1.731,6.501 3.74,8.194c2.009,1.693 4.883,2.539 8.623,2.539c2.009,0 3.809,-0.223 5.402,-0.671c1.593,-0.447 3.359,-1.054 5.299,-1.821c0.969,-0.383 1.904,-0.718 2.805,-1.006c0.9,-0.287 1.697,-0.431 2.389,-0.431Zm-17.869,-24.246c-2.978,0 -5.368,0.879 -7.168,2.636c-1.801,1.757 -2.875,4.296 -3.221,7.618l20.051,0c-0.208,-3.386 -1.126,-5.941 -2.753,-7.666c-1.628,-1.725 -3.931,-2.588 -6.909,-2.588Z" style="fill:#fff;fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

10
_icons/textWhiteSmall.svg Normal file
View File

@ -0,0 +1,10 @@
<svg width="100" height="49" viewBox="0 0 100 49" 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;">
<path d="M3.029,33.471c-0.452,0 -0.815,-0.141 -1.088,-0.422c-0.272,-0.282 -0.409,-0.65 -0.409,-1.104l0,-13.735c0,-0.454 0.129,-0.806 0.386,-1.057c0.257,-0.25 0.612,-0.376 1.064,-0.376l8.204,0c0.951,0 1.426,0.407 1.426,1.221c-0,0.799 -0.475,1.198 -1.426,1.198l-6.685,-0l-0,4.508l6.218,-0c0.95,-0 1.425,0.407 1.425,1.221c0,0.798 -0.475,1.197 -1.425,1.197l-6.218,0l-0,5.823c-0,0.454 -0.132,0.822 -0.397,1.104c-0.265,0.281 -0.624,0.422 -1.075,0.422Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M19.432,21.614c0.367,-0.031 0.656,0.055 0.868,0.258c0.211,0.204 0.317,0.509 0.317,0.916c-0,0.423 -0.092,0.736 -0.275,0.939c-0.183,0.204 -0.515,0.337 -0.994,0.399l-0.635,0.071c-0.832,0.094 -1.441,0.407 -1.829,0.939c-0.388,0.532 -0.582,1.197 -0.582,1.996l0,4.93c0,0.454 -0.127,0.803 -0.381,1.045c-0.253,0.243 -0.571,0.364 -0.951,0.364c-0.381,0 -0.695,-0.121 -0.941,-0.364c-0.247,-0.242 -0.37,-0.591 -0.37,-1.045l-0,-9.086c-0,-0.438 0.123,-0.775 0.37,-1.01c0.246,-0.234 0.553,-0.352 0.92,-0.352c0.366,0 0.662,0.114 0.888,0.34c0.226,0.228 0.338,0.552 0.338,0.975l0,0.939c0.268,-0.689 0.667,-1.221 1.195,-1.597c0.529,-0.375 1.118,-0.587 1.766,-0.633l0.296,-0.024Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M31.876,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.701,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.244,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.097,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.795,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.457,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M45.134,30.184c0.277,0 0.501,0.102 0.672,0.305c0.171,0.204 0.257,0.478 0.257,0.822c-0,0.485 -0.302,0.892 -0.905,1.221c-0.554,0.297 -1.181,0.536 -1.882,0.716c-0.7,0.18 -1.369,0.27 -2.004,0.27c-1.923,-0 -3.447,-0.532 -4.571,-1.596c-1.125,-1.065 -1.687,-2.521 -1.687,-4.368c0,-1.174 0.245,-2.215 0.734,-3.122c0.488,-0.908 1.177,-1.613 2.065,-2.113c0.888,-0.502 1.894,-0.752 3.019,-0.752c1.075,0 2.012,0.227 2.811,0.681c0.798,0.454 1.417,1.096 1.857,1.925c0.44,0.83 0.66,1.808 0.66,2.935c0,0.673 -0.309,1.01 -0.928,1.01l-7.211,-0c0.098,1.08 0.415,1.874 0.953,2.383c0.538,0.509 1.32,0.763 2.347,0.763c0.521,-0 0.981,-0.063 1.381,-0.188c0.399,-0.125 0.851,-0.297 1.356,-0.516c0.489,-0.251 0.848,-0.376 1.076,-0.376Zm-4.229,-6.551c-0.831,0 -1.495,0.251 -1.992,0.752c-0.497,0.501 -0.794,1.22 -0.892,2.16l5.524,-0c-0.033,-0.955 -0.277,-1.679 -0.733,-2.172c-0.456,-0.493 -1.092,-0.74 -1.907,-0.74Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M54.307,33.471c-0.521,0 -1.186,-0.164 -1.506,-0.494c-0.32,-0.329 -0.48,-0.768 -0.48,-1.316l-0,-11.898l-3.374,0c-1.102,0 -1.652,-0.501 -1.652,-1.504c-0,-0.988 0.55,-1.482 1.652,-1.482l10.719,0c1.102,0 1.653,0.494 1.653,1.482c0,1.003 -0.551,1.504 -1.653,1.504l-3.374,0l0,11.898c0,0.548 -0.156,0.987 -0.468,1.316c-0.313,0.33 -0.981,0.494 -1.517,0.494Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M69.693,21.69c0.545,-0 0.978,0.148 1.297,0.446c0.32,0.297 0.479,0.704 0.479,1.221l0,8.616c0,0.486 -0.167,0.877 -0.502,1.175c-0.335,0.297 -0.768,0.446 -1.297,0.446c-0.499,-0 -0.896,-0.141 -1.192,-0.423c-0.297,-0.282 -0.445,-0.658 -0.445,-1.127l0,-0.235c-0.358,0.595 -0.829,1.049 -1.414,1.362c-0.584,0.313 -1.242,0.469 -1.975,0.469c-1.449,0 -2.528,-0.403 -3.237,-1.209c-0.709,-0.806 -1.064,-2.023 -1.064,-3.651l0,-5.423c0,-0.517 0.16,-0.924 0.479,-1.221c0.32,-0.298 0.752,-0.446 1.298,-0.446c0.545,-0 0.974,0.148 1.285,0.446c0.312,0.297 0.468,0.704 0.468,1.221l-0,5.494c-0,0.688 0.144,1.197 0.432,1.526c0.288,0.329 0.729,0.493 1.321,0.493c0.685,0 1.243,-0.235 1.671,-0.704c0.429,-0.47 0.643,-1.088 0.643,-1.855l-0,-4.954c-0,-0.517 0.156,-0.924 0.467,-1.221c0.312,-0.298 0.741,-0.446 1.286,-0.446Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M81.429,21.643c1.017,-0 1.915,0.242 2.694,0.727c0.779,0.486 1.387,1.178 1.824,2.079c0.437,0.899 0.655,1.944 0.655,3.134c0,1.19 -0.218,2.242 -0.655,3.158c-0.437,0.915 -1.049,1.628 -1.836,2.137c-0.787,0.508 -1.681,0.762 -2.682,0.762c-0.811,0 -1.542,-0.168 -2.194,-0.504c-0.651,-0.337 -1.152,-0.802 -1.502,-1.397l0,0.187c0,0.501 -0.159,0.904 -0.477,1.21c-0.317,0.305 -0.747,0.458 -1.287,0.458c-0.54,-0 -0.974,-0.153 -1.299,-0.458c-0.326,-0.306 -0.489,-0.709 -0.489,-1.21l-0,-13.524c-0,-0.485 0.171,-0.876 0.512,-1.173c0.342,-0.298 0.791,-0.447 1.347,-0.447c0.525,0 0.946,0.141 1.264,0.423c0.318,0.282 0.477,0.657 0.477,1.127l-0,5.142c0.349,-0.579 0.846,-1.029 1.49,-1.35c0.644,-0.321 1.363,-0.481 2.158,-0.481l-0,-0Zm-1.049,9.298c0.842,-0 1.494,-0.294 1.955,-0.881c0.461,-0.587 0.691,-1.412 0.691,-2.477c0,-1.049 -0.23,-1.851 -0.691,-2.407c-0.461,-0.555 -1.113,-0.833 -1.955,-0.833c-0.843,-0 -1.494,0.286 -1.955,0.857c-0.461,0.571 -0.692,1.381 -0.692,2.43c0,1.064 0.231,1.882 0.692,2.454c0.461,0.571 1.112,0.857 1.955,0.857l-0,-0Z" style="fill:#fff;fill-rule:nonzero;"/>
<path d="M98.784,30.025c0.337,-0 0.612,0.125 0.823,0.375c0.211,0.251 0.317,0.572 0.317,0.963c-0,0.266 -0.084,0.513 -0.254,0.74c-0.168,0.227 -0.405,0.418 -0.709,0.575c-0.574,0.282 -1.241,0.513 -2.002,0.692c-0.76,0.181 -1.461,0.27 -2.103,0.27c-1.351,0 -2.53,-0.242 -3.535,-0.727c-1.005,-0.486 -1.778,-1.178 -2.318,-2.078c-0.541,-0.9 -0.811,-1.961 -0.811,-3.182c-0,-1.174 0.262,-2.214 0.786,-3.122c0.523,-0.908 1.25,-1.617 2.179,-2.125c0.929,-0.509 1.984,-0.763 3.167,-0.763c1.132,-0 2.124,0.231 2.977,0.692c0.853,0.462 1.517,1.12 1.989,1.973c0.473,0.853 0.71,1.85 0.71,2.993c0,0.345 -0.089,0.607 -0.266,0.787c-0.177,0.18 -0.427,0.27 -0.748,0.27l-7.095,-0c0.119,0.923 0.423,1.593 0.913,2.007c0.49,0.415 1.191,0.622 2.103,0.622c0.49,0 0.929,-0.054 1.317,-0.164c0.389,-0.11 0.82,-0.258 1.293,-0.446c0.236,-0.094 0.464,-0.176 0.684,-0.247c0.219,-0.07 0.414,-0.105 0.583,-0.105Zm-4.359,-5.941c-0.726,0 -1.309,0.216 -1.748,0.646c-0.439,0.431 -0.701,1.053 -0.786,1.867l4.891,-0c-0.051,-0.83 -0.275,-1.456 -0.672,-1.878c-0.397,-0.423 -0.958,-0.635 -1.685,-0.635Z" style="fill:#fff;fill-rule:nonzero;"/>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -68,10 +68,6 @@ class ProcessLocalesPlugin {
}
}
if (Object.prototype.hasOwnProperty.call(data, 'Locale Name')) {
delete data['Locale Name']
}
this.removeEmptyValues(data)
let filename = `${this.outputDir}/${locale}.json`

View File

@ -1,9 +1,9 @@
const os = require('os')
const builder = require('electron-builder')
const config = require('./ebuilder.config.js')
const Platform = builder.Platform
const Arch = builder.Arch
const { name, productName } = require('../package.json')
const args = process.argv
let targets
@ -39,97 +39,6 @@ if (platform === 'darwin') {
targets = Platform.LINUX.createTarget(['deb', 'zip', '7z', 'apk', 'rpm', 'AppImage', 'pacman'], arch)
}
const config = {
appId: `io.freetubeapp.${name}`,
copyright: 'Copyleft © 2020-2023 freetubeapp@protonmail.com',
// asar: false,
// compression: 'store',
productName,
directories: {
output: './build/',
},
protocols: [
{
name: "FreeTube",
schemes: [
"freetube"
]
}
],
files: [
'_icons/iconColor.*',
'icon.svg',
'./dist/**/*',
'!dist/web/*',
'!node_modules/**/*',
],
dmg: {
contents: [
{
path: '/Applications',
type: 'link',
x: 410,
y: 230,
},
{
type: 'file',
x: 130,
y: 230,
},
],
window: {
height: 380,
width: 540,
}
},
linux: {
category: 'Network',
icon: '_icons/icon.svg',
target: ['deb', 'zip', '7z', 'apk', 'rpm', 'AppImage', 'pacman'],
},
// See the following issues for more information
// https://github.com/jordansissel/fpm/issues/1503
// https://github.com/jgraph/drawio-desktop/issues/259
rpm: {
fpm: [`--rpm-rpmbuild-define=_build_id_links none`]
},
deb: {
depends: [
"libgtk-3-0",
"libnotify4",
"libnss3",
"libxss1",
"libxtst6",
"xdg-utils",
"libatspi2.0-0",
"libuuid1",
"libsecret-1-0"
]
},
mac: {
category: 'public.app-category.utilities',
icon: '_icons/iconMac.icns',
target: ['dmg', 'zip', '7z'],
type: 'distribution',
extendInfo: {
CFBundleURLTypes: [
'freetube'
],
CFBundleURLSchemes: [
'freetube'
]
}
},
win: {
icon: '_icons/icon.ico',
target: ['nsis', 'zip', '7z', 'portable'],
},
nsis: {
allowToChangeInstallationDirectory: true,
oneClick: false,
},
}
builder
.build({
targets,

View File

@ -1,6 +1,5 @@
process.env.NODE_ENV = 'development'
const open = require('open')
const electron = require('electron')
const webpack = require('webpack')
const WebpackDevServer = require('webpack-dev-server')
@ -112,13 +111,14 @@ function startRenderer(callback) {
const server = new WebpackDevServer({
static: {
directory: path.join(process.cwd(), 'static'),
directory: path.resolve(__dirname, '..', 'static'),
watch: {
ignored: [
/(dashFiles|storyboards)\/*/,
'/**/.DS_Store',
]
}
},
publicPath: '/static'
},
port
}, compiler)
@ -161,7 +161,8 @@ function startWeb (callback) {
if (!web) {
startRenderer(startMain)
} else {
startWeb(({ port }) => {
startWeb(async ({ port }) => {
const open = (await import('open')).default
open(`http://localhost:${port}`)
})
}

View File

@ -0,0 +1,94 @@
const { name, productName } = require('../package.json')
const config = {
appId: `io.freetubeapp.${name}`,
copyright: 'Copyleft © 2020-2024 freetubeapp@protonmail.com',
// asar: false,
// compression: 'store',
productName,
directories: {
output: './build/',
},
protocols: [
{
name: "FreeTube",
schemes: [
"freetube"
]
}
],
files: [
'_icons/iconColor.*',
'icon.svg',
'./dist/**/*',
'!dist/web/*',
'!node_modules/**/*',
],
dmg: {
contents: [
{
path: '/Applications',
type: 'link',
x: 410,
y: 230,
},
{
type: 'file',
x: 130,
y: 230,
},
],
window: {
height: 380,
width: 540,
}
},
linux: {
category: 'Network',
icon: '_icons/icon.svg',
target: ['deb', 'zip', '7z', 'apk', 'rpm', 'AppImage', 'pacman'],
},
// See the following issues for more information
// https://github.com/jordansissel/fpm/issues/1503
// https://github.com/jgraph/drawio-desktop/issues/259
rpm: {
fpm: [`--rpm-rpmbuild-define=_build_id_links none`]
},
deb: {
depends: [
"libgtk-3-0",
"libnotify4",
"libnss3",
"libxss1",
"libxtst6",
"xdg-utils",
"libatspi2.0-0",
"libuuid1",
"libsecret-1-0"
]
},
mac: {
category: 'public.app-category.utilities',
icon: '_icons/iconMac.icns',
target: ['dmg', 'zip', '7z'],
type: 'distribution',
extendInfo: {
CFBundleURLTypes: [
'freetube'
],
CFBundleURLSchemes: [
'freetube'
]
}
},
win: {
icon: '_icons/icon.ico',
target: ['nsis', 'zip', '7z', 'portable'],
},
nsis: {
allowToChangeInstallationDirectory: true,
oneClick: false,
},
}
module.exports = config

View File

@ -56,7 +56,7 @@ if (!isDevMode) {
to: path.join(__dirname, '../dist/static'),
globOptions: {
dot: true,
ignore: ['**/.*', '**/locales/**', '**/pwabuilder-sw.js', '**/dashFiles/**', '**/storyboards/**'],
ignore: ['**/.*', '**/locales/**', '**/pwabuilder-sw.js', '**/manifest.json', '**/dashFiles/**', '**/storyboards/**'],
},
},
]

View File

@ -1,5 +1,5 @@
const path = require('path')
const { readFileSync } = require('fs')
const { readFileSync, readdirSync } = require('fs')
const webpack = require('webpack')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const VueLoaderPlugin = require('vue-loader/lib/plugin')
@ -7,9 +7,12 @@ const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin')
const ProcessLocalesPlugin = require('./ProcessLocalesPlugin')
const WatchExternalFilesPlugin = require('webpack-watch-external-files-plugin')
const CopyWebpackPlugin = require('copy-webpack-plugin')
const isDevMode = process.env.NODE_ENV === 'development'
const { version: swiperVersion } = JSON.parse(readFileSync(path.join(__dirname, '../node_modules/swiper/package.json')))
const processLocalesPlugin = new ProcessLocalesPlugin({
compress: !isDevMode,
inputDir: path.join(__dirname, '../static/locales'),
@ -108,34 +111,48 @@ const config = {
]
},
node: {
__dirname: isDevMode,
__filename: isDevMode
__dirname: false,
__filename: false
},
plugins: [
processLocalesPlugin,
new webpack.DefinePlugin({
'process.env.IS_ELECTRON': true,
'process.env.IS_ELECTRON_MAIN': false,
'process.env.LOCALE_NAMES': JSON.stringify(processLocalesPlugin.localeNames)
'process.env.SUPPORTS_LOCAL_API': true,
'process.env.LOCALE_NAMES': JSON.stringify(processLocalesPlugin.localeNames),
'process.env.GEOLOCATION_NAMES': JSON.stringify(readdirSync(path.join(__dirname, '..', 'static', 'geolocations')).map(filename => filename.replace('.json', ''))),
'process.env.SWIPER_VERSION': `'${swiperVersion}'`
}),
new HtmlWebpackPlugin({
excludeChunks: ['processTaskWorker'],
filename: 'index.html',
template: path.resolve(__dirname, '../src/index.ejs'),
nodeModules: isDevMode
? path.resolve(__dirname, '../node_modules')
: false,
template: path.resolve(__dirname, '../src/index.ejs')
}),
new VueLoaderPlugin(),
new MiniCssExtractPlugin({
filename: isDevMode ? '[name].css' : '[name].[contenthash].css',
chunkFilename: isDevMode ? '[id].css' : '[id].[contenthash].css',
}),
new CopyWebpackPlugin({
patterns: [
{
from: path.join(__dirname, '../node_modules/swiper/modules/{a11y,navigation,pagination}-element.css').replaceAll('\\', '/'),
to: `swiper-${swiperVersion}.css`,
context: path.join(__dirname, '../node_modules/swiper/modules'),
transformAll: (assets) => {
return Buffer.concat(assets.map(asset => asset.data))
}
}
]
})
],
resolve: {
alias: {
vue$: 'vue/dist/vue.runtime.esm.js',
'DB_HANDLERS_ELECTRON_RENDERER_OR_WEB$': path.resolve(__dirname, '../src/datastores/handlers/electron.js'),
'youtubei.js$': 'youtubei.js/web',
// video.js's mpd-parser uses @xmldom/xmldom so that it can support both node and web browsers

View File

@ -11,6 +11,8 @@ const ProcessLocalesPlugin = require('./ProcessLocalesPlugin')
const isDevMode = process.env.NODE_ENV === 'development'
const { version: swiperVersion } = JSON.parse(fs.readFileSync(path.join(__dirname, '../node_modules/swiper/package.json')))
const config = {
name: 'web',
mode: process.env.NODE_ENV,
@ -23,7 +25,6 @@ const config = {
filename: '[name].js',
},
externals: {
electron: '{}',
'youtubei.js': '{}'
},
module: {
@ -107,13 +108,15 @@ const config = {
]
},
node: {
__dirname: true,
__filename: isDevMode,
__dirname: false,
__filename: false
},
plugins: [
new webpack.DefinePlugin({
'process.env.IS_ELECTRON': false,
'process.env.IS_ELECTRON_MAIN': false,
'process.env.SUPPORTS_LOCAL_API': false,
'process.env.SWIPER_VERSION': `'${swiperVersion}'`,
// video.js' vhs-utils supports both atob() in web browsers and Buffer in node
// As the FreeTube web build only runs in web browsers, we can override their check for atob() here: https://github.com/videojs/vhs-utils/blob/main/src/decode-b64-to-uint8-array.js#L3
@ -133,19 +136,32 @@ const config = {
new HtmlWebpackPlugin({
excludeChunks: ['processTaskWorker'],
filename: 'index.html',
template: path.resolve(__dirname, '../src/index.ejs'),
nodeModules: false,
template: path.resolve(__dirname, '../src/index.ejs')
}),
new VueLoaderPlugin(),
new MiniCssExtractPlugin({
filename: isDevMode ? '[name].css' : '[name].[contenthash].css',
chunkFilename: isDevMode ? '[id].css' : '[id].[contenthash].css',
}),
new CopyWebpackPlugin({
patterns: [
{
from: path.join(__dirname, '../node_modules/swiper/modules/{a11y,navigation,pagination}-element.css').replaceAll('\\', '/'),
to: `swiper-${swiperVersion}.css`,
context: path.join(__dirname, '../node_modules/swiper/modules'),
transformAll: (assets) => {
return Buffer.concat(assets.map(asset => asset.data))
}
}
]
})
],
resolve: {
alias: {
vue$: 'vue/dist/vue.runtime.esm.js',
'DB_HANDLERS_ELECTRON_RENDERER_OR_WEB$': path.resolve(__dirname, '../src/datastores/handlers/web.js'),
// video.js's mpd-parser uses @xmldom/xmldom so that it can support both node and web browsers
// As FreeTube only runs in electron and web browsers, we can use the native DOMParser class, instead of the "polyfill"
// https://caniuse.com/mdn-api_domparser

View File

@ -1,5 +1,15 @@
{
"vueCompilerOptions": {
"target": 2.7
},
"compilerOptions": {
"strictNullChecks": true,
"baseUrl": "./",
"paths": {
"DB_HANDLERS_ELECTRON_RENDERER_OR_WEB": [
"src/datastores/handlers/electron",
"src/datastores/handlers/web"
]
}
}
}

View File

@ -2,7 +2,7 @@
"name": "freetube",
"productName": "FreeTube",
"description": "A private YouTube client",
"version": "0.19.1",
"version": "0.20.0",
"license": "AGPL-3.0-or-later",
"main": "./dist/main.js",
"private": true,
@ -25,7 +25,7 @@
"build-release": "node _scripts/build.js",
"build-release:arm64": "node _scripts/build.js arm64",
"build-release:arm32": "node _scripts/build.js arm32",
"clean": "rimraf build/ static/dashFiles/ dist/ static/storyboards/",
"clean": "rimraf build/ dist/",
"debug": "run-s rebuild:electron debug-runner",
"debug-runner": "node _scripts/dev-runner.js --remote-debug",
"dev": "run-s rebuild:electron dev-runner",
@ -53,81 +53,82 @@
"ci": "yarn install --silent --frozen-lockfile"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.4.2",
"@fortawesome/free-brands-svg-icons": "^6.4.2",
"@fortawesome/free-solid-svg-icons": "^6.4.2",
"@fortawesome/fontawesome-svg-core": "^6.5.2",
"@fortawesome/free-brands-svg-icons": "^6.5.2",
"@fortawesome/free-solid-svg-icons": "^6.5.2",
"@fortawesome/vue-fontawesome": "^2.0.10",
"@seald-io/nedb": "^4.0.2",
"@silvermine/videojs-quality-selector": "^1.3.0",
"@seald-io/nedb": "^4.0.4",
"@silvermine/videojs-quality-selector": "^1.3.1",
"autolinker": "^4.0.0",
"electron-context-menu": "^3.6.1",
"lodash.debounce": "^4.0.8",
"marked": "^10.0.0",
"marked": "^12.0.1",
"path-browserify": "^1.0.1",
"process": "^0.11.10",
"swiper": "^11.1.1",
"video.js": "7.21.5",
"videojs-contrib-quality-levels": "^3.0.0",
"videojs-http-source-selector": "^1.1.6",
"videojs-mobile-ui": "^0.8.0",
"videojs-overlay": "^3.1.0",
"videojs-vtt-thumbnails-freetube": "0.0.15",
"vue": "^2.7.15",
"vue": "^2.7.16",
"vue-i18n": "^8.28.2",
"vue-observe-visibility": "^1.0.0",
"vue-router": "^3.6.5",
"vue-tiny-slider": "^0.1.39",
"vuex": "^3.6.2",
"youtubei.js": "^7.0.0"
"youtubei.js": "^9.3.0"
},
"devDependencies": {
"@babel/core": "^7.23.3",
"@babel/eslint-parser": "^7.23.3",
"@babel/core": "^7.24.4",
"@babel/eslint-parser": "^7.24.1",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/preset-env": "^7.23.3",
"@double-great/stylelint-a11y": "^2.0.2",
"@babel/preset-env": "^7.24.4",
"@double-great/stylelint-a11y": "^3.0.2",
"@intlify/eslint-plugin-vue-i18n": "^2.0.0",
"babel-loader": "^9.1.3",
"copy-webpack-plugin": "^11.0.0",
"css-loader": "^6.8.1",
"css-minimizer-webpack-plugin": "^5.0.1",
"electron": "^27.0.4",
"electron-builder": "^24.6.4",
"eslint": "^8.53.0",
"eslint-config-prettier": "^9.0.0",
"copy-webpack-plugin": "^12.0.2",
"css-loader": "^7.1.1",
"css-minimizer-webpack-plugin": "^6.0.0",
"electron": "^29.3.0",
"electron-builder": "^24.13.3",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-jsonc": "^2.10.0",
"eslint-plugin-n": "^16.3.1",
"eslint-plugin-prettier": "^5.0.1",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jsonc": "^2.15.1",
"eslint-plugin-n": "^17.2.1",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-unicorn": "^49.0.0",
"eslint-plugin-vue": "^9.18.1",
"eslint-plugin-vuejs-accessibility": "^2.2.0",
"eslint-plugin-yml": "^1.10.0",
"html-webpack-plugin": "^5.5.3",
"eslint-plugin-unicorn": "^52.0.0",
"eslint-plugin-vue": "^9.25.0",
"eslint-plugin-vuejs-accessibility": "^2.2.1",
"eslint-plugin-yml": "^1.14.0",
"html-webpack-plugin": "^5.6.0",
"js-yaml": "^4.1.0",
"json-minimizer-webpack-plugin": "^4.0.0",
"lefthook": "^1.5.2",
"mini-css-extract-plugin": "^2.7.6",
"json-minimizer-webpack-plugin": "^5.0.0",
"lefthook": "^1.6.10",
"mini-css-extract-plugin": "^2.8.1",
"npm-run-all": "^4.1.5",
"postcss": "^8.4.31",
"postcss": "^8.4.38",
"postcss-scss": "^4.0.9",
"prettier": "^2.8.8",
"rimraf": "^5.0.5",
"sass": "^1.69.5",
"sass-loader": "^13.3.2",
"stylelint": "^15.11.0",
"stylelint-config-sass-guidelines": "^10.0.0",
"stylelint-config-standard": "^34.0.0",
"stylelint-high-performance-animation": "^1.9.0",
"stylelint-use-logical-spec": "^5.0.0",
"sass": "^1.75.0",
"sass-loader": "^14.2.0",
"stylelint": "^16.3.1",
"stylelint-config-sass-guidelines": "^11.1.0",
"stylelint-config-standard": "^36.0.0",
"stylelint-high-performance-animation": "^1.10.0",
"stylelint-use-logical-spec": "^5.0.1",
"tree-kill": "1.2.2",
"vue-devtools": "^5.1.4",
"vue-eslint-parser": "^9.3.2",
"vue-eslint-parser": "^9.4.2",
"vue-loader": "^15.10.0",
"webpack": "^5.89.0",
"webpack": "^5.91.0",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1",
"webpack-watch-external-files-plugin": "^2.0.0",
"webpack-dev-server": "^5.0.4",
"webpack-watch-external-files-plugin": "^3.0.0",
"yaml-eslint-parser": "^1.2.2"
}
}

View File

@ -23,7 +23,10 @@ const IpcChannels = {
SYNC_SETTINGS: 'sync-settings',
SYNC_HISTORY: 'sync-history',
SYNC_PROFILES: 'sync-profiles',
SYNC_PLAYLISTS: 'sync-playlists'
SYNC_PLAYLISTS: 'sync-playlists',
GET_REPLACE_HTTP_CACHE: 'get-replace-http-cache',
TOGGLE_REPLACE_HTTP_CACHE: 'toggle-replace-http-cache'
}
const DBActions = {
@ -44,10 +47,10 @@ const DBActions = {
PLAYLISTS: {
UPSERT_VIDEO: 'db-action-playlists-upsert-video-by-playlist-name',
UPSERT_VIDEO_IDS: 'db-action-playlists-upsert-video-ids-by-playlist-id',
UPSERT_VIDEOS: 'db-action-playlists-upsert-videos-by-playlist-name',
DELETE_VIDEO_ID: 'db-action-playlists-delete-video-by-playlist-name',
DELETE_VIDEO_IDS: 'db-action-playlists-delete-video-ids',
DELETE_ALL_VIDEOS: 'db-action-playlists-delete-all-videos'
DELETE_ALL_VIDEOS: 'db-action-playlists-delete-all-videos',
}
}
@ -66,15 +69,10 @@ const SyncEvents = {
PLAYLISTS: {
UPSERT_VIDEO: 'sync-playlists-upsert-video',
DELETE_VIDEO: 'sync-playlists-delete-video'
DELETE_VIDEO: 'sync-playlists-delete-video',
}
}
// https://v2.vuejs.org/v2/api/#provide-inject
const Injectables = {
SHOW_OUTLINES: 'showOutlines'
}
// Utils
const MAIN_PROFILE_ID = 'allChannels'
@ -82,6 +80,5 @@ export {
IpcChannels,
DBActions,
SyncEvents,
Injectables,
MAIN_PROFILE_ID
}

View File

@ -1,4 +1,4 @@
import db from '../index'
import * as db from '../index'
class Settings {
static find() {
@ -68,8 +68,8 @@ class History {
return db.history.updateAsync({ videoId }, { $set: { watchProgress } }, { upsert: true })
}
static updateLastViewedPlaylist(videoId, lastViewedPlaylistId) {
return db.history.updateAsync({ videoId }, { $set: { lastViewedPlaylistId } }, { upsert: true })
static updateLastViewedPlaylist(videoId, lastViewedPlaylistId, lastViewedPlaylistType, lastViewedPlaylistItemId) {
return db.history.updateAsync({ videoId }, { $set: { lastViewedPlaylistId, lastViewedPlaylistType, lastViewedPlaylistItemId } }, { upsert: true })
}
static delete(videoId) {
@ -116,18 +116,22 @@ class Playlists {
return db.playlists.findAsync({})
}
static upsertVideoByPlaylistName(playlistName, videoData) {
static upsert(playlist) {
return db.playlists.updateAsync({ _id: playlist._id }, { $set: playlist }, { upsert: true })
}
static upsertVideoByPlaylistId(_id, videoData) {
return db.playlists.updateAsync(
{ playlistName },
{ _id },
{ $push: { videos: videoData } },
{ upsert: true }
)
}
static upsertVideoIdsByPlaylistId(_id, videoIds) {
static upsertVideosByPlaylistId(_id, videos) {
return db.playlists.updateAsync(
{ _id },
{ $push: { videos: { $each: videoIds } } },
{ $push: { videos: { $each: videos } } },
{ upsert: true }
)
}
@ -136,25 +140,35 @@ class Playlists {
return db.playlists.removeAsync({ _id, protected: { $ne: true } })
}
static deleteVideoIdByPlaylistName(playlistName, videoId) {
static deleteVideoIdByPlaylistId({ _id, videoId, playlistItemId }) {
if (playlistItemId != null) {
return db.playlists.updateAsync(
{ _id },
{ $pull: { videos: { playlistItemId } } },
{ upsert: true }
)
} else if (videoId != null) {
return db.playlists.updateAsync(
{ _id },
{ $pull: { videos: { videoId } } },
{ upsert: true }
)
} else {
throw new Error(`Both videoId & playlistItemId are absent, _id: ${_id}`)
}
}
static deleteVideoIdsByPlaylistId(_id, videoIds) {
return db.playlists.updateAsync(
{ playlistName },
{ $pull: { videos: { videoId } } },
{ _id },
{ $pull: { videos: { videoId: { $in: videoIds } } } },
{ upsert: true }
)
}
static deleteVideoIdsByPlaylistName(playlistName, videoIds) {
static deleteAllVideosByPlaylistId(_id) {
return db.playlists.updateAsync(
{ playlistName },
{ $pull: { videos: { $in: videoIds } } },
{ upsert: true }
)
}
static deleteAllVideosByPlaylistName(playlistName) {
return db.playlists.updateAsync(
{ playlistName },
{ _id },
{ $set: { videos: [] } },
{ upsert: true }
)
@ -165,7 +179,7 @@ class Playlists {
}
static deleteAll() {
return db.playlists.removeAsync({ protected: { $ne: true } })
return db.playlists.removeAsync({}, { multi: true })
}
static persist() {
@ -178,17 +192,15 @@ function compactAllDatastores() {
Settings.persist(),
History.persist(),
Profiles.persist(),
Playlists.persist()
Playlists.persist(),
])
}
const baseHandlers = {
settings: Settings,
history: History,
profiles: Profiles,
playlists: Playlists,
export {
Settings as settings,
History as history,
Profiles as profiles,
Playlists as playlists,
compactAllDatastores
compactAllDatastores,
}
export default baseHandlers

View File

@ -49,12 +49,12 @@ class History {
)
}
static updateLastViewedPlaylist(videoId, lastViewedPlaylistId) {
static updateLastViewedPlaylist(videoId, lastViewedPlaylistId, lastViewedPlaylistType, lastViewedPlaylistItemId) {
return ipcRenderer.invoke(
IpcChannels.DB_HISTORY,
{
action: DBActions.HISTORY.UPDATE_PLAYLIST,
data: { videoId, lastViewedPlaylistId }
data: { videoId, lastViewedPlaylistId, lastViewedPlaylistType, lastViewedPlaylistItemId }
}
)
}
@ -133,22 +133,29 @@ class Playlists {
)
}
static upsertVideoByPlaylistName(playlistName, videoData) {
static upsert(playlist) {
return ipcRenderer.invoke(
IpcChannels.DB_PLAYLISTS,
{ action: DBActions.GENERAL.UPSERT, data: playlist }
)
}
static upsertVideoByPlaylistId(_id, videoData) {
return ipcRenderer.invoke(
IpcChannels.DB_PLAYLISTS,
{
action: DBActions.PLAYLISTS.UPSERT_VIDEO,
data: { playlistName, videoData }
data: { _id, videoData }
}
)
}
static upsertVideoIdsByPlaylistId(_id, videoIds) {
static upsertVideosByPlaylistId(_id, videos) {
return ipcRenderer.invoke(
IpcChannels.DB_PLAYLISTS,
{
action: DBActions.PLAYLISTS.UPSERT_VIDEO_IDS,
data: { _id, videoIds }
action: DBActions.PLAYLISTS.UPSERT_VIDEOS,
data: { _id, videos }
}
)
}
@ -160,32 +167,32 @@ class Playlists {
)
}
static deleteVideoIdByPlaylistName(playlistName, videoId) {
static deleteVideoIdByPlaylistId({ _id, videoId, playlistItemId }) {
return ipcRenderer.invoke(
IpcChannels.DB_PLAYLISTS,
{
action: DBActions.PLAYLISTS.DELETE_VIDEO_ID,
data: { playlistName, videoId }
data: { _id, videoId, playlistItemId }
}
)
}
static deleteVideoIdsByPlaylistName(playlistName, videoIds) {
static deleteVideoIdsByPlaylistId(_id, videoIds) {
return ipcRenderer.invoke(
IpcChannels.DB_PLAYLISTS,
{
action: DBActions.PLAYLISTS.DELETE_VIDEO_IDS,
data: { playlistName, videoIds }
data: { _id, videoIds }
}
)
}
static deleteAllVideosByPlaylistName(playlistName) {
static deleteAllVideosByPlaylistId(_id) {
return ipcRenderer.invoke(
IpcChannels.DB_PLAYLISTS,
{
action: DBActions.PLAYLISTS.DELETE_ALL_VIDEOS,
data: playlistName
data: _id
}
)
}
@ -205,11 +212,9 @@ class Playlists {
}
}
const handlers = {
settings: Settings,
history: History,
profiles: Profiles,
playlists: Playlists
export {
Settings as settings,
History as history,
Profiles as profiles,
Playlists as playlists
}
export default handlers

View File

@ -1,18 +1,6 @@
let handlers
if (process.env.IS_ELECTRON) {
handlers = require('./electron').default
} else {
handlers = require('./web').default
}
const DBSettingHandlers = handlers.settings
const DBHistoryHandlers = handlers.history
const DBProfileHandlers = handlers.profiles
const DBPlaylistHandlers = handlers.playlists
export {
DBSettingHandlers,
DBHistoryHandlers,
DBProfileHandlers,
DBPlaylistHandlers
}
settings as DBSettingHandlers,
history as DBHistoryHandlers,
profiles as DBProfileHandlers,
playlists as DBPlaylistHandlers
} from 'DB_HANDLERS_ELECTRON_RENDERER_OR_WEB'

View File

@ -1,4 +1,4 @@
import baseHandlers from './base'
import * as baseHandlers from './base'
// TODO: Syncing
// Syncing on the web would involve a different implementation
@ -37,8 +37,8 @@ class History {
return baseHandlers.history.updateWatchProgress(videoId, watchProgress)
}
static updateLastViewedPlaylist(videoId, lastViewedPlaylistId) {
return baseHandlers.history.updateLastViewedPlaylist(videoId, lastViewedPlaylistId)
static updateLastViewedPlaylist(videoId, lastViewedPlaylistId, lastViewedPlaylistType, lastViewedPlaylistItemId) {
return baseHandlers.history.updateLastViewedPlaylist(videoId, lastViewedPlaylistId, lastViewedPlaylistType, lastViewedPlaylistItemId)
}
static delete(videoId) {
@ -85,28 +85,32 @@ class Playlists {
return baseHandlers.playlists.find()
}
static upsertVideoByPlaylistName(playlistName, videoData) {
return baseHandlers.playlists.upsertVideoByPlaylistName(playlistName, videoData)
static upsert(playlist) {
return baseHandlers.playlists.upsert(playlist)
}
static upsertVideoIdsByPlaylistId(_id, videoIds) {
return baseHandlers.playlists.upsertVideoIdsByPlaylistId(_id, videoIds)
static upsertVideoByPlaylistId(_id, videoData) {
return baseHandlers.playlists.upsertVideoByPlaylistId(_id, videoData)
}
static upsertVideosByPlaylistId(_id, videoData) {
return baseHandlers.playlists.upsertVideosByPlaylistId(_id, videoData)
}
static delete(_id) {
return baseHandlers.playlists.delete(_id)
}
static deleteVideoIdByPlaylistName(playlistName, videoId) {
return baseHandlers.playlists.deleteVideoIdByPlaylistName(playlistName, videoId)
static deleteVideoIdByPlaylistId({ _id, videoId, playlistItemId }) {
return baseHandlers.playlists.deleteVideoIdByPlaylistId({ _id, videoId, playlistItemId })
}
static deleteVideoIdsByPlaylistName(playlistName, videoIds) {
return baseHandlers.playlists.deleteVideoIdsByPlaylistName(playlistName, videoIds)
static deleteVideoIdsByPlaylistId(_id, videoIds) {
return baseHandlers.playlists.deleteVideoIdsByPlaylistId(_id, videoIds)
}
static deleteAllVideosByPlaylistName(playlistName) {
return baseHandlers.playlists.deleteAllVideosByPlaylistName(playlistName)
static deleteAllVideosByPlaylistId(_id) {
return baseHandlers.playlists.deleteAllVideosByPlaylistId(_id)
}
static deleteMultiple(ids) {
@ -118,11 +122,9 @@ class Playlists {
}
}
const handlers = {
settings: Settings,
history: History,
profiles: Profiles,
playlists: Playlists
export {
Settings as settings,
History as history,
Profiles as profiles,
Playlists as playlists
}
export default handlers

View File

@ -22,10 +22,7 @@ if (process.env.IS_ELECTRON_MAIN) {
dbPath = (dbName) => `${dbName}.db`
}
const db = {}
db.settings = new Datastore({ filename: dbPath('settings'), autoload: true })
db.profiles = new Datastore({ filename: dbPath('profiles'), autoload: true })
db.playlists = new Datastore({ filename: dbPath('playlists'), autoload: true })
db.history = new Datastore({ filename: dbPath('history'), autoload: true })
export default db
export const settings = new Datastore({ filename: dbPath('settings'), autoload: true })
export const profiles = new Datastore({ filename: dbPath('profiles'), autoload: true })
export const playlists = new Datastore({ filename: dbPath('playlists'), autoload: true })
export const history = new Datastore({ filename: dbPath('history'), autoload: true })

View File

@ -9,13 +9,6 @@
<link rel="manifest" href="static/manifest.json" />
<% } %>
<title></title>
<% if (htmlWebpackPlugin.options.nodeModules) { %>
<script>
require('module').globalPaths.push(
`<%= htmlWebpackPlugin.options.nodeModules.replace(/\\/g, '\\\\') %>`
)
</script>
<% } %>
</head>
<body>

View File

@ -7,9 +7,10 @@ import path from 'path'
import cp from 'child_process'
import { IpcChannels, DBActions, SyncEvents } from '../constants'
import baseHandlers from '../datastores/handlers/base'
import * as baseHandlers from '../datastores/handlers/base'
import { extractExpiryTimestamp, ImageCache } from './ImageCache'
import { existsSync } from 'fs'
import asyncFs from 'fs/promises'
import packageDetails from '../../package.json'
@ -64,7 +65,9 @@ function runApp() {
const path = urlParts[1]
if (path) {
visible = ['/playlist', '/channel', '/watch'].some(p => path.startsWith(p))
visible = ['/channel', '/watch'].some(p => path.startsWith(p)) ||
// Only show copy link entry for non user playlists
(path.startsWith('/playlist') && !/playlistType=user/.test(path))
}
} else {
visible = true
@ -103,17 +106,17 @@ function runApp() {
let url
if (toYouTube) {
url = `https://youtu.be/${id}`
url = new URL(`https://youtu.be/${id}`)
} else {
url = `https://redirect.invidious.io/watch?v=${id}`
url = new URL(`https://redirect.invidious.io/watch?v=${id}`)
}
if (query) {
const params = new URLSearchParams(query)
const newParams = new URLSearchParams()
const newParams = new URLSearchParams(url.search)
let hasParams = false
if (params.has('playlistId')) {
if (params.has('playlistId') && params.get('playlistType') !== 'user') {
newParams.set('list', params.get('playlistId'))
hasParams = true
}
@ -124,11 +127,11 @@ function runApp() {
}
if (hasParams) {
url += '?' + newParams.toString()
url.search = newParams.toString()
}
}
return url
return url.toString()
}
}
}
@ -166,14 +169,17 @@ function runApp() {
let mainWindow
let startupUrl
app.commandLine.appendSwitch('enable-accelerated-video-decode')
app.commandLine.appendSwitch('enable-file-cookies')
app.commandLine.appendSwitch('ignore-gpu-blacklist')
if (process.platform === 'linux') {
// Enable hardware acceleration via VA-API
// https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/gpu/vaapi.md
app.commandLine.appendSwitch('enable-features', 'VaapiVideoDecodeLinuxGL')
}
// command line switches need to be added before the app ready event first
// that means we can't use the normal settings system as that is asynchronous,
// doing it synchronously ensures that we add it before the event fires
const replaceHttpCache = existsSync(`${app.getPath('userData')}/experiment-replace-http-cache`)
const REPLACE_HTTP_CACHE_PATH = `${app.getPath('userData')}/experiment-replace-http-cache`
const replaceHttpCache = existsSync(REPLACE_HTTP_CACHE_PATH)
if (replaceHttpCache) {
// the http cache causes excessive disk usage during video playback
// we've got a custom image cache to make up for disabling the http cache
@ -487,6 +493,8 @@ function runApp() {
return '#ffd1dc'
case 'hot-pink':
return '#de1c85'
case 'nordic':
return '#2b2f3a'
case 'system':
default:
return nativeTheme.shouldUseDarkColors ? '#212121' : '#f1f1f1'
@ -656,7 +664,7 @@ function runApp() {
}
})
ipcMain.once('relaunchRequest', () => {
function relaunch() {
if (process.env.NODE_ENV === 'development') {
app.exit(parseInt(process.env.FREETUBE_RELAUNCH_EXIT_CODE))
return
@ -687,6 +695,10 @@ function runApp() {
}
app.quit()
}
ipcMain.once('relaunchRequest', () => {
relaunch()
})
nativeTheme.on('updated', () => {
@ -714,7 +726,8 @@ function runApp() {
})
ipcMain.handle(IpcChannels.GET_SYSTEM_LOCALE, () => {
return app.getLocale()
// we should switch to getPreferredSystemLanguages at some point and iterate through until we find a supported locale
return app.getSystemLocale()
})
ipcMain.handle(IpcChannels.GET_USER_DATA_PATH, () => {
@ -773,6 +786,22 @@ function runApp() {
child.unref()
})
ipcMain.handle(IpcChannels.GET_REPLACE_HTTP_CACHE, () => {
return replaceHttpCache
})
ipcMain.once(IpcChannels.TOGGLE_REPLACE_HTTP_CACHE, async () => {
if (replaceHttpCache) {
await asyncFs.rm(REPLACE_HTTP_CACHE_PATH)
} else {
// create an empty file
const handle = await asyncFs.open(REPLACE_HTTP_CACHE_PATH, 'w')
await handle.close()
}
relaunch()
})
// ************************************************* //
// DB related IPC calls
// *********** //
@ -850,7 +879,7 @@ function runApp() {
return null
case DBActions.HISTORY.UPDATE_PLAYLIST:
await baseHandlers.history.updateLastViewedPlaylist(data.videoId, data.lastViewedPlaylistId)
await baseHandlers.history.updateLastViewedPlaylist(data.videoId, data.lastViewedPlaylistId, data.lastViewedPlaylistType, data.lastViewedPlaylistItemId)
syncOtherWindows(
IpcChannels.SYNC_HISTORY,
event,
@ -951,15 +980,27 @@ function runApp() {
switch (action) {
case DBActions.GENERAL.CREATE:
await baseHandlers.playlists.create(data)
// TODO: Syncing (implement only when it starts being used)
// syncOtherWindows(IpcChannels.SYNC_PLAYLISTS, event, { event: '_', data })
syncOtherWindows(
IpcChannels.SYNC_PLAYLISTS,
event,
{ event: SyncEvents.GENERAL.CREATE, data }
)
return null
case DBActions.GENERAL.FIND:
return await baseHandlers.playlists.find()
case DBActions.GENERAL.UPSERT:
await baseHandlers.playlists.upsert(data)
syncOtherWindows(
IpcChannels.SYNC_PLAYLISTS,
event,
{ event: SyncEvents.GENERAL.UPSERT, data }
)
return null
case DBActions.PLAYLISTS.UPSERT_VIDEO:
await baseHandlers.playlists.upsertVideoByPlaylistName(data.playlistName, data.videoData)
await baseHandlers.playlists.upsertVideoByPlaylistId(data._id, data.videoData)
syncOtherWindows(
IpcChannels.SYNC_PLAYLISTS,
event,
@ -967,20 +1008,30 @@ function runApp() {
)
return null
case DBActions.PLAYLISTS.UPSERT_VIDEO_IDS:
await baseHandlers.playlists.upsertVideoIdsByPlaylistId(data._id, data.videoIds)
// TODO: Syncing (implement only when it starts being used)
// syncOtherWindows(IpcChannels.SYNC_PLAYLISTS, event, { event: '_', data })
case DBActions.PLAYLISTS.UPSERT_VIDEOS:
await baseHandlers.playlists.upsertVideosByPlaylistId(data._id, data.videos)
syncOtherWindows(
IpcChannels.SYNC_PLAYLISTS,
event,
{ event: SyncEvents.PLAYLISTS.UPSERT_VIDEOS, data }
)
return null
case DBActions.GENERAL.DELETE:
await baseHandlers.playlists.delete(data)
// TODO: Syncing (implement only when it starts being used)
// syncOtherWindows(IpcChannels.SYNC_PLAYLISTS, event, { event: '_', data })
syncOtherWindows(
IpcChannels.SYNC_PLAYLISTS,
event,
{ event: SyncEvents.GENERAL.DELETE, data }
)
return null
case DBActions.PLAYLISTS.DELETE_VIDEO_ID:
await baseHandlers.playlists.deleteVideoIdByPlaylistName(data.playlistName, data.videoId)
await baseHandlers.playlists.deleteVideoIdByPlaylistId({
_id: data._id,
videoId: data.videoId,
playlistItemId: data.playlistItemId,
})
syncOtherWindows(
IpcChannels.SYNC_PLAYLISTS,
event,
@ -989,13 +1040,13 @@ function runApp() {
return null
case DBActions.PLAYLISTS.DELETE_VIDEO_IDS:
await baseHandlers.playlists.deleteVideoIdsByPlaylistName(data.playlistName, data.videoIds)
await baseHandlers.playlists.deleteVideoIdsByPlaylistId(data._id, data.videoIds)
// TODO: Syncing (implement only when it starts being used)
// syncOtherWindows(IpcChannels.SYNC_PLAYLISTS, event, { event: '_', data })
return null
case DBActions.PLAYLISTS.DELETE_ALL_VIDEOS:
await baseHandlers.playlists.deleteAllVideosByPlaylistName(data)
await baseHandlers.playlists.deleteAllVideosByPlaylistId(data)
// TODO: Syncing (implement only when it starts being used)
// syncOtherWindows(IpcChannels.SYNC_PLAYLISTS, event, { event: '_', data })
return null
@ -1337,6 +1388,13 @@ function runApp() {
},
type: 'normal'
},
{
label: 'Profile Manager',
click: (_menuItem, browserWindow, _event) => {
navigateTo('/settings/profile/', browserWindow)
},
type: 'normal'
},
].filter((v) => v !== false),
},
{

View File

@ -1,12 +1,12 @@
@font-face {
font-family: Roboto;
src: url(assets/font/Roboto-Regular.ttf);
src: url("assets/font/Roboto-Regular.ttf");
}
#app {
.app {
display: flex;
flex-wrap: wrap;
font-family: 'Roboto', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
font-family: Roboto, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
block-size: 100%;
}
@ -18,10 +18,14 @@
.banner {
inline-size: 85%;
margin-block: 20px;
margin-block: 40px 0;
margin-inline: auto;
}
.banner + .banner {
margin-block: 20px;
}
.banner-wrapper {
margin-block: 0;
margin-inline: 10px;
@ -30,35 +34,34 @@
.flexBox {
display: block;
user-select: unset;
-webkit-user-select: unset;
}
#changeLogText {
.changeLogText {
overflow-y: scroll;
block-size: 40vh;
display: block
display: block;
}
.fade-enter-active, .fade-leave-active {
transition: opacity .15s;
}
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0;
}
@media only screen and (max-width: 680px) {
@media only screen and (width <= 680px) {
.routerView {
margin-block: 68px;
margin-inline: 8px;
}
.banner {
inline-size: 80%;
margin-block-start: 20px;
inline-size: 90%;
margin-block: 60px 0;
}
.flexBox {
margin-block-start: 60px;
margin-block-end: -75px;
margin-block: 60px -75px;
}
}

View File

@ -9,10 +9,13 @@ import FtPrompt from './components/ft-prompt/ft-prompt.vue'
import FtButton from './components/ft-button/ft-button.vue'
import FtToast from './components/ft-toast/ft-toast.vue'
import FtProgressBar from './components/ft-progress-bar/ft-progress-bar.vue'
import FtPlaylistAddVideoPrompt from './components/ft-playlist-add-video-prompt/ft-playlist-add-video-prompt.vue'
import FtCreatePlaylistPrompt from './components/ft-create-playlist-prompt/ft-create-playlist-prompt.vue'
import { marked } from 'marked'
import { Injectables, IpcChannels } from '../constants'
import { IpcChannels } from '../constants'
import packageDetails from '../../package.json'
import { openExternalLink, openInternalPath, showToast } from './helpers/utils'
import { translateWindowTitle } from './helpers/strings'
let ipcRenderer = null
@ -28,17 +31,13 @@ export default defineComponent({
FtPrompt,
FtButton,
FtToast,
FtProgressBar
},
provide: function () {
return {
[Injectables.SHOW_OUTLINES]: this.showOutlines
}
FtProgressBar,
FtPlaylistAddVideoPrompt,
FtCreatePlaylistPrompt,
},
data: function () {
return {
dataReady: false,
hideOutlines: true,
showUpdatesBanner: false,
showBlogBanner: false,
showReleaseNotes: false,
@ -59,6 +58,9 @@ export default defineComponent({
showProgressBar: function () {
return this.$store.getters.getShowProgressBar
},
outlinesHidden: function () {
return this.$store.getters.getOutlinesHidden
},
isLocaleRightToLeft: function () {
return this.locale === 'ar' || this.locale === 'fa' || this.locale === 'he' ||
this.locale === 'ur' || this.locale === 'yi' || this.locale === 'ku'
@ -69,15 +71,20 @@ export default defineComponent({
checkForBlogPosts: function () {
return this.$store.getters.getCheckForBlogPosts
},
showAddToPlaylistPrompt: function () {
return this.$store.getters.getShowAddToPlaylistPrompt
},
showCreatePlaylistPrompt: function () {
return this.$store.getters.getShowCreatePlaylistPrompt
},
windowTitle: function () {
const routeTitle = this.$route.meta.title
if (routeTitle !== 'Channel' && routeTitle !== 'Watch' && routeTitle !== 'Hashtag') {
let title =
this.$route.meta.path === '/home'
? packageDetails.productName
: `${this.$t(this.$route.meta.title)} - ${packageDetails.productName}`
const routePath = this.$route.path
if (!routePath.startsWith('/channel/') && !routePath.startsWith('/watch/') && !routePath.startsWith('/hashtag/')) {
let title = translateWindowTitle(this.$route.meta.title, this.$i18n)
if (!title) {
title = packageDetails.productName
} else {
title = `${title} - ${packageDetails.productName}`
}
return title
} else {
@ -111,6 +118,10 @@ export default defineComponent({
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'
},
landingPage: function() {
return '/' + this.$store.getters.getLandingPage
},
externalLinkOpeningPromptNames: function () {
return [
this.$t('Yes'),
@ -136,7 +147,7 @@ export default defineComponent({
$route () {
// react to route changes...
// Hide top nav filter panel on page change
this.$refs.topNav.hideFilters()
this.$refs.topNav?.hideFilters()
}
},
created () {
@ -178,7 +189,13 @@ export default defineComponent({
})
this.$router.afterEach((to, from) => {
this.$refs.topNav.navigateHistory()
this.$refs.topNav?.navigateHistory()
})
this.$router.onReady(() => {
if (this.$router.currentRoute.path === '/') {
this.$router.replace({ path: this.landingPage })
}
})
})
},
@ -259,10 +276,7 @@ export default defineComponent({
},
checkExternalPlayer: async function () {
const payload = {
externalPlayer: this.externalPlayer
}
this.getExternalPlayerCmdArgumentsData(payload)
this.getExternalPlayerCmdArgumentsData()
},
handleUpdateBannerClick: function (response) {
@ -291,7 +305,7 @@ export default defineComponent({
activateKeyboardShortcuts: function () {
document.addEventListener('keydown', this.handleKeyboardShortcuts)
document.addEventListener('mousedown', () => {
this.hideOutlines = true
this.hideOutlines()
})
},
@ -316,7 +330,7 @@ export default defineComponent({
}
switch (event.key) {
case 'Tab':
this.hideOutlines = false
this.showOutlines()
break
case 'L':
case 'l':
@ -449,12 +463,7 @@ export default defineComponent({
default: {
// Unknown URL type
let message = 'Unknown YouTube url type, cannot be opened in app'
if (this.$te(message) && this.$t(message) !== '') {
message = this.$t(message)
}
showToast(message)
showToast(this.$t('Unknown YouTube url type, cannot be opened in app'))
}
}
})
@ -517,15 +526,6 @@ export default defineComponent({
}
},
/**
* provided to all child components, see `provide` near the top of this file
* after injecting it, they can show outlines during keyboard navigation
* e.g. cycling through tabs with the arrow keys
*/
showOutlines: function () {
this.hideOutlines = false
},
...mapMutations([
'setInvidiousInstancesList'
]),
@ -542,7 +542,9 @@ export default defineComponent({
'setupListenersToSyncWindows',
'updateBaseTheme',
'updateMainColor',
'updateSecColor'
'updateSecColor',
'showOutlines',
'hideOutlines'
])
}
})

View File

@ -2,8 +2,9 @@
<div
v-if="dataReady"
id="app"
class="app"
:class="{
hideOutlines: hideOutlines,
hideOutlines: outlinesHidden,
isLocaleRightToLeft: isLocaleRightToLeft
}"
>
@ -52,7 +53,7 @@
@click="showReleaseNotes = !showReleaseNotes"
>
<span
id="changeLogText"
class="changeLogText"
v-html="updateChangelog"
/>
<ft-flex-box>
@ -74,6 +75,12 @@
:option-values="externalLinkOpeningPromptValues"
@click="handleExternalLinkOpeningPromptAnswer"
/>
<ft-playlist-add-video-prompt
v-if="showAddToPlaylistPrompt"
/>
<ft-create-playlist-prompt
v-if="showCreatePlaylistPrompt"
/>
<ft-toast />
<ft-progress-bar
v-if="showProgressBar"

View File

@ -24,6 +24,10 @@ export default defineComponent({
type: Number,
default: null
},
videos: {
type: Number,
default: null
},
location: {
type: String,
default: null
@ -61,5 +65,9 @@ export default defineComponent({
formattedViews: function () {
return formatNumber(this.views)
},
formattedVideos: function () {
return formatNumber(this.videos)
},
}
})

View File

@ -12,7 +12,7 @@
/>
</template>
<template
v-if="joined || views !== null || location"
v-if="joined || views !== null || videos !== null || location"
>
<h2>{{ $t('Channel.About.Details') }}</h2>
<table
@ -38,6 +38,16 @@
</th>
<td>{{ formattedViews }}</td>
</tr>
<tr
v-if="videos !== null"
>
<th
scope="row"
>
{{ $t('Global.Videos') }}
</th>
<td>{{ formattedVideos }}</td>
</tr>
<tr
v-if="location"
>

View File

@ -4,6 +4,7 @@ import { mapActions, mapMutations } from 'vuex'
import FtButton from '../ft-button/ft-button.vue'
import FtFlexBox from '../ft-flex-box/ft-flex-box.vue'
import FtPrompt from '../ft-prompt/ft-prompt.vue'
import FtToggleSwitch from '../ft-toggle-switch/ft-toggle-switch.vue'
import { MAIN_PROFILE_ID } from '../../../constants'
import { calculateColorLuminance, getRandomColor } from '../../helpers/colors'
@ -27,7 +28,8 @@ export default defineComponent({
'ft-settings-section': FtSettingsSection,
'ft-button': FtButton,
'ft-flex-box': FtFlexBox,
'ft-prompt': FtPrompt
'ft-prompt': FtPrompt,
'ft-toggle-switch': FtToggleSwitch,
},
data: function () {
return {
@ -38,7 +40,9 @@ export default defineComponent({
'youtube',
'youtubeold',
'newpipe'
]
],
shouldExportPlaylistForOlderVersions: false,
}
},
computed: {
@ -159,7 +163,7 @@ export default defineComponent({
const message = this.$t('Settings.Data Settings.Profile object has insufficient data, skipping item')
showToast(message)
} else {
if (profileObject.name === 'All Channels' || profileObject._id === MAIN_PROFILE_ID) {
if (profileObject._id === MAIN_PROFILE_ID) {
this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.concat(profileObject.subscriptions)
this.primaryProfile.subscriptions = this.primaryProfile.subscriptions.filter((sub, index) => {
const profileIndex = this.primaryProfile.subscriptions.findIndex((x) => {
@ -516,7 +520,7 @@ export default defineComponent({
]
}
await this.promptAndWriteToFile(options, subscriptionsDb, 'Subscriptions have been successfully exported')
await this.promptAndWriteToFile(options, subscriptionsDb, this.$t('Settings.Data Settings.Subscriptions have been successfully exported'))
},
exportYouTubeSubscriptions: async function () {
@ -569,7 +573,7 @@ export default defineComponent({
return object
})
await this.promptAndWriteToFile(options, JSON.stringify(subscriptionsObject), 'Subscriptions have been successfully exported')
await this.promptAndWriteToFile(options, JSON.stringify(subscriptionsObject), this.$t('Settings.Data Settings.Subscriptions have been successfully exported'))
},
exportOpmlYouTubeSubscriptions: async function () {
@ -597,7 +601,7 @@ export default defineComponent({
opmlData += '</outline></body></opml>'
await this.promptAndWriteToFile(options, opmlData, 'Subscriptions have been successfully exported')
await this.promptAndWriteToFile(options, opmlData, this.$t('Settings.Data Settings.Subscriptions have been successfully exported'))
},
exportCsvYouTubeSubscriptions: async function () {
@ -624,7 +628,7 @@ export default defineComponent({
})
exportText += '\n'
await this.promptAndWriteToFile(options, exportText, 'Subscriptions have been successfully exported')
await this.promptAndWriteToFile(options, exportText, this.$t('Settings.Data Settings.Subscriptions have been successfully exported'))
},
exportNewPipeSubscriptions: async function () {
@ -658,7 +662,7 @@ export default defineComponent({
newPipeObject.subscriptions.push(subscription)
})
await this.promptAndWriteToFile(options, JSON.stringify(newPipeObject), 'Subscriptions have been successfully exported')
await this.promptAndWriteToFile(options, JSON.stringify(newPipeObject), this.$t('Settings.Data Settings.Subscriptions have been successfully exported'))
},
importHistory: async function () {
@ -852,7 +856,7 @@ export default defineComponent({
]
}
await this.promptAndWriteToFile(options, historyDb, 'All watched history has been successfully exported')
await this.promptAndWriteToFile(options, historyDb, this.$t('Settings.Data Settings.All watched history has been successfully exported'))
},
importPlaylists: async function () {
@ -878,17 +882,48 @@ export default defineComponent({
showToast(`${message}: ${err}`)
return
}
const playlists = JSON.parse(data)
let playlists = null
// for the sake of backwards compatibility,
// check if this is the old JSON array export (used until version 0.19.1),
// that didn't match the actual database format
const trimmedData = data.trim()
if (trimmedData[0] === '[' && trimmedData[trimmedData.length - 1] === ']') {
playlists = JSON.parse(trimmedData)
} else {
// otherwise assume this is the correct database format,
// which is also what we export now (used in 0.20.0 and later versions)
data = data.split('\n')
data.pop()
playlists = data.map(playlistJson => JSON.parse(playlistJson))
}
const requiredKeys = [
'playlistName',
'videos'
'videos',
]
const optionalKeys = [
'description',
'createdAt',
]
const ignoredKeys = [
'_id',
'title',
'type',
'protected',
'removeOnWatched'
'lastUpdatedAt',
'lastPlayedAt',
'removeOnWatched',
'thumbnail',
'channelName',
'channelId',
'playlistId',
'videoCount',
]
const requiredVideoKeys = [
@ -896,14 +931,14 @@ export default defineComponent({
'title',
'author',
'authorId',
'published',
'lengthSeconds',
'timeAdded',
'isLive',
'type',
// `playlistItemId` should be optional for backward compatibility
// 'playlistItemId',
]
playlists.forEach(async (playlistData) => {
playlists.forEach((playlistData) => {
// We would technically already be done by the time the data is parsed,
// however we want to limit the possibility of malicious data being sent
// to the app, so we'll only grab the data we need here.
@ -911,58 +946,71 @@ export default defineComponent({
const playlistObject = {}
Object.keys(playlistData).forEach((key) => {
if (!requiredKeys.includes(key) && !optionalKeys.includes(key)) {
if ([requiredKeys, optionalKeys, ignoredKeys].every((ks) => !ks.includes(key))) {
const message = `${this.$t('Settings.Data Settings.Unknown data key')}: ${key}`
showToast(message)
} else if (key === 'videos') {
const videoArray = []
playlistData.videos.forEach((video) => {
let hasAllKeys = true
requiredVideoKeys.forEach((videoKey) => {
if (!Object.keys(video).includes(videoKey)) {
hasAllKeys = false
}
})
const videoPropertyKeys = Object.keys(video)
const videoObjectHasAllRequiredKeys = requiredVideoKeys.every((k) => videoPropertyKeys.includes(k))
if (hasAllKeys) {
if (videoObjectHasAllRequiredKeys) {
videoArray.push(video)
}
})
playlistObject[key] = videoArray
} else {
} else if (!ignoredKeys.includes(key)) {
// Do nothing for keys to be ignored
playlistObject[key] = playlistData[key]
}
})
const objectKeys = Object.keys(playlistObject)
const playlistObjectKeys = Object.keys(playlistObject)
const playlistObjectHasAllRequiredKeys = requiredKeys.every((k) => playlistObjectKeys.includes(k))
if ((objectKeys.length < requiredKeys.length) || playlistObject.videos.length === 0) {
const message = this.$t('Settings.Data Settings.Playlist insufficient data', { playlist: playlistData.playlistName })
showToast(message)
} else {
if (playlistObjectHasAllRequiredKeys) {
const existingPlaylist = this.allPlaylists.find((playlist) => {
return playlist.playlistName === playlistObject.playlistName
})
if (existingPlaylist !== undefined) {
playlistObject.videos.forEach((video) => {
const videoExists = existingPlaylist.videos.some((x) => {
return x.videoId === video.videoId
})
let videoExists = false
if (video.playlistItemId != null) {
// Find by `playlistItemId` if present
videoExists = existingPlaylist.videos.some((x) => {
// Allow duplicate (by videoId) videos to be added
return x.videoId === video.videoId && x.playlistItemId === video.playlistItemId
})
} else {
// Older playlist exports have no `playlistItemId` but have `timeAdded`
// Which might be duplicate for copied playlists with duplicate `videoId`
videoExists = existingPlaylist.videos.some((x) => {
// Allow duplicate (by videoId) videos to be added
return x.videoId === video.videoId && x.timeAdded === video.timeAdded
})
}
if (!videoExists) {
// Keep original `timeAdded` value
const payload = {
playlistName: existingPlaylist.playlistName,
videoData: video
_id: existingPlaylist._id,
videoData: video,
}
this.addVideo(payload)
}
})
// Update playlist's `lastUpdatedAt`
this.updatePlaylist({ _id: existingPlaylist._id })
} else {
this.addPlaylist(playlistObject)
}
} else {
const message = this.$t('Settings.Data Settings.Playlist insufficient data', { playlist: playlistData.playlistName })
showToast(message)
}
})
@ -983,7 +1031,60 @@ export default defineComponent({
]
}
await this.promptAndWriteToFile(options, JSON.stringify(this.allPlaylists), 'All playlists has been successfully exported')
const playlistsDb = this.allPlaylists.map(playlist => {
return JSON.stringify(playlist)
}).join('\n') + '\n'// a trailing line is expected
await this.promptAndWriteToFile(options, playlistsDb, this.$t('Settings.Data Settings.All playlists has been successfully exported'))
},
exportPlaylistsForOlderVersionsSometimes: function () {
if (this.shouldExportPlaylistForOlderVersions) {
this.exportPlaylistsForOlderVersions()
} else {
this.exportPlaylists()
}
},
exportPlaylistsForOlderVersions: async function () {
const dateStr = getTodayDateStrLocalTimezone()
const exportFileName = 'freetube-playlists-as-single-favorites-playlist-' + dateStr + '.db'
const options = {
defaultPath: exportFileName,
filters: [
{
name: 'Database File',
extensions: ['db']
}
]
}
const favoritesPlaylistData = {
playlistName: 'Favorites',
protected: true,
videos: [],
}
this.allPlaylists.forEach((playlist) => {
playlist.videos.forEach((video) => {
const videoAlreadyAdded = favoritesPlaylistData.videos.some((v) => {
return v.videoId === video.videoId
})
if (videoAlreadyAdded) { return }
favoritesPlaylistData.videos.push(
Object.assign({
// The "required" keys during import (but actually unused) in older versions
isLive: false,
paid: false,
published: '',
}, video)
)
})
})
await this.promptAndWriteToFile(options, JSON.stringify([favoritesPlaylistData]), this.$t('Settings.Data Settings.All playlists has been successfully exported'))
},
convertOldFreeTubeFormatToNew(oldData) {
@ -993,7 +1094,7 @@ export default defineComponent({
for (const profile of channel.profile) {
let index = convertedData.findIndex(p => p.name === profile.value)
if (index === -1) { // profile doesn't exist yet
const randomBgColor = getRandomColor()
const randomBgColor = getRandomColor().value
const contrastyTextColor = calculateColorLuminance(randomBgColor)
convertedData.push({
name: profile.value,
@ -1017,7 +1118,7 @@ export default defineComponent({
return convertedData
},
promptAndWriteToFile: async function (saveOptions, content, successMessageKeySuffix) {
promptAndWriteToFile: async function (saveOptions, content, successMessage) {
const response = await showSaveDialog(saveOptions)
if (response.canceled || response.filePath === '') {
// User canceled the save dialog
@ -1032,7 +1133,7 @@ export default defineComponent({
return
}
showToast(this.$t(`Settings.Data Settings.${successMessageKeySuffix}`))
showToast(successMessage)
},
getChannelInfoInvidious: function (channelId) {
@ -1051,8 +1152,8 @@ export default defineComponent({
copyToClipboard(err)
})
if (process.env.IS_ELECTRON && this.backendFallback && this.backendPreference === 'invidious') {
showToast(this.$t('Falling back to the local API'))
if (process.env.SUPPORTS_LOCAL_API && this.backendFallback && this.backendPreference === 'invidious') {
showToast(this.$t('Falling back to Local API'))
resolve(this.getChannelInfoLocal(channelId))
} else {
resolve([])
@ -1081,7 +1182,7 @@ export default defineComponent({
})
if (this.backendFallback && this.backendPreference === 'local') {
showToast(this.$t('Falling back to the Invidious API'))
showToast(this.$t('Falling back to Invidious API'))
return await this.getChannelInfoInvidious(channelId)
} else {
return []
@ -1151,7 +1252,8 @@ export default defineComponent({
'updateShowProgressBar',
'updateHistory',
'addPlaylist',
'addVideo'
'addVideo',
'updatePlaylist',
]),
...mapMutations([

View File

@ -2,26 +2,23 @@
<ft-settings-section
:title="$t('Settings.Data Settings.Data Settings')"
>
<ft-flex-box>
<h4 class="groupTitle">
{{ $t('Subscriptions.Subscriptions') }}
</h4>
<ft-flex-box class="dataSettingsBox">
<ft-button
:label="$t('Settings.Data Settings.Import Subscriptions')"
@click="importSubscriptions"
/>
<ft-button
:label="$t('Settings.Data Settings.Manage Subscriptions')"
@click="openProfileSettings"
/>
<ft-button
:label="$t('Settings.Data Settings.Export Subscriptions')"
@click="showExportSubscriptionsPrompt = true"
/>
</ft-flex-box>
<ft-flex-box>
<ft-button
:label="$t('Settings.Data Settings.Import History')"
@click="importHistory"
/>
<ft-button
:label="$t('Settings.Data Settings.Export History')"
@click="exportHistory"
/>
</ft-flex-box>
<ft-flex-box>
<p>
<a href="https://docs.freetubeapp.io/usage/importing-subscriptions/">
@ -29,20 +26,40 @@
</a>
</p>
</ft-flex-box>
<ft-flex-box>
<h4 class="groupTitle">
{{ $t('History.History') }}
</h4>
<ft-flex-box class="dataSettingsBox">
<ft-button
:label="$t('Settings.Data Settings.Manage Subscriptions')"
@click="openProfileSettings"
:label="$t('Settings.Data Settings.Import History')"
@click="importHistory"
/>
<ft-button
:label="$t('Settings.Data Settings.Export History')"
@click="exportHistory"
/>
</ft-flex-box>
<ft-flex-box>
<h4 class="groupTitle">
{{ $t('Playlists') }}
</h4>
<ft-flex-box class="dataSettingsBox">
<ft-button
:label="$t('Settings.Data Settings.Import Playlists')"
@click="importPlaylists"
/>
<ft-button
:label="$t('Settings.Data Settings.Export Playlists')"
@click="exportPlaylists"
@click="exportPlaylistsForOlderVersionsSometimes"
/>
</ft-flex-box>
<ft-flex-box>
<ft-toggle-switch
:label="$t('Settings.Data Settings.Export Playlists For Older FreeTube Versions.Label')"
:compact="true"
:default-value="shouldExportPlaylistForOlderVersions"
:tooltip="$t('Settings.Data Settings.Export Playlists For Older FreeTube Versions.Tooltip')"
:tooltip-allow-newlines="true"
@change="shouldExportPlaylistForOlderVersions = !shouldExportPlaylistForOlderVersions"
/>
</ft-flex-box>
<ft-prompt

View File

@ -1,9 +1,5 @@
.groupTitle {
text-align: center;
}
@media only screen and (max-width: 800px) {
br.hide-on-mobile {
@media only screen and (width <= 800px) {
.hide-on-mobile {
display: none;
}
}

View File

@ -5,7 +5,7 @@ import FtToggleSwitch from '../ft-toggle-switch/ft-toggle-switch.vue'
import FtInputTags from '../../components/ft-input-tags/ft-input-tags.vue'
import FtFlexBox from '../ft-flex-box/ft-flex-box.vue'
import { showToast } from '../../helpers/utils'
import { checkYoutubeId, findChannelTagInfo } from '../../helpers/channels'
import { checkYoutubeChannelId, findChannelTagInfo } from '../../helpers/channels'
export default defineComponent({
name: 'PlayerSettings',
@ -120,13 +120,16 @@ export default defineComponent({
return ch
})
},
forbiddenTitles: function() {
return JSON.parse(this.$store.getters.getForbiddenTitles)
},
hideSubscriptionsLiveTooltip: function () {
return this.$t('Tooltips.Distraction Free Settings.Hide Subscriptions Live', {
appWideSetting: this.$t('Settings.Distraction Free Settings.Hide Live Streams'),
subsection: this.$t('Settings.Distraction Free Settings.Sections.General'),
settingsSection: this.$t('Settings.Distraction Free Settings.Distraction Free Settings')
})
}
},
},
mounted: function () {
this.verifyChannelsHidden()
@ -148,11 +151,14 @@ export default defineComponent({
handleChannelsHidden: function (value) {
this.updateChannelsHidden(JSON.stringify(value))
},
handleForbiddenTitles: function (value) {
this.updateForbiddenTitles(JSON.stringify(value))
},
handleChannelsExists: function () {
showToast(this.$t('Settings.Distraction Free Settings.Hide Channels Already Exists'))
},
validateChannelId: function (text) {
return checkYoutubeId(text)
return checkYoutubeChannelId(text)
},
findChannelTagInfo: async function (text) {
return await findChannelTagInfo(text, this.backendOptions)
@ -167,7 +173,7 @@ export default defineComponent({
if (tag.invalid) continue
// process if no preferred name and is possibly a YouTube ID
if (tag.preferredName === '' && checkYoutubeId(tag.name)) {
if (tag.preferredName === '' && checkYoutubeChannelId(tag.name)) {
this.channelHiderDisabled = true
const { preferredName, icon, iconHref, invalidId } = await this.findChannelTagInfo(tag.name)
@ -206,6 +212,7 @@ export default defineComponent({
'updateHideSharingActions',
'updateHideChapters',
'updateChannelsHidden',
'updateForbiddenTitles',
'updateShowDistractionFreeTitles',
'updateHideFeaturedChannels',
'updateHideChannelShorts',

View File

@ -239,12 +239,24 @@
:tooltip="$t('Tooltips.Distraction Free Settings.Hide Channels')"
:validate-tag-name="validateChannelId"
:find-tag-info="findChannelTagInfo"
:are-channel-tags="true"
@invalid-name="handleInvalidChannel"
@error-find-tag-info="handleChannelAPIError"
@change="handleChannelsHidden"
@already-exists="handleChannelsExists"
/>
</ft-flex-box>
<ft-flex-box>
<ft-input-tags
:label="$t('Settings.Distraction Free Settings.Hide Videos and Playlists Containing Text')"
:tag-name-placeholder="$t('Settings.Distraction Free Settings.Hide Videos and Playlists Containing Text Placeholder')"
:show-action-button="true"
:tag-list="forbiddenTitles"
:min-input-length="3"
:tooltip="$t('Tooltips.Distraction Free Settings.Hide Videos and Playlists Containing Text')"
@change="handleForbiddenTitles"
/>
</ft-flex-box>
</ft-settings-section>
</template>

View File

@ -6,7 +6,6 @@ import FtSelect from '../ft-select/ft-select.vue'
import FtButton from '../ft-button/ft-button.vue'
import FtInput from '../ft-input/ft-input.vue'
import { mapActions } from 'vuex'
import { ipcRenderer } from 'electron'
import { IpcChannels } from '../../../constants'
export default defineComponent({
@ -48,16 +47,19 @@ export default defineComponent({
handleDownloadingSettingChange: function (value) {
this.updateDownloadAskPath(value)
},
chooseDownloadingFolder: async function() {
// only use with electron
const folder = await ipcRenderer.invoke(
IpcChannels.SHOW_OPEN_DIALOG,
{ properties: ['openDirectory'] }
)
chooseDownloadingFolder: async function () {
if (process.env.IS_ELECTRON) {
const { ipcRenderer } = require('electron')
if (folder.canceled) return
const folder = await ipcRenderer.invoke(
IpcChannels.SHOW_OPEN_DIALOG,
{ properties: ['openDirectory'] }
)
this.updateDownloadFolderPath(folder.filePaths[0])
if (folder.canceled) return
this.updateDownloadFolderPath(folder.filePaths[0])
}
},
...mapActions([
'updateDownloadAskPath',

View File

@ -1,6 +1,5 @@
.experimental-warning {
text-align: center;
font-weight: bold;
padding-inline-start: 4%;
padding-inline-end: 4%
padding-inline: 4% 4%
}

View File

@ -1,11 +1,9 @@
import fs from 'fs/promises'
import { defineComponent } from 'vue'
import FtSettingsSection from '../ft-settings-section/ft-settings-section.vue'
import FtFlexBox from '../ft-flex-box/ft-flex-box.vue'
import FtToggleSwitch from '../ft-toggle-switch/ft-toggle-switch.vue'
import FtPrompt from '../ft-prompt/ft-prompt.vue'
import { pathExists } from '../../helpers/filesystem'
import { getUserDataPath } from '../../helpers/utils'
import { IpcChannels } from '../../../constants'
export default defineComponent({
name: 'ExperimentalSettings',
@ -19,19 +17,16 @@ export default defineComponent({
return {
replaceHttpCacheLoading: true,
replaceHttpCache: false,
replaceHttpCachePath: '',
showRestartPrompt: false
}
},
mounted: function () {
getUserDataPath().then((userData) => {
this.replaceHttpCachePath = `${userData}/experiment-replace-http-cache`
mounted: async function () {
if (process.env.IS_ELECTRON) {
const { ipcRenderer } = require('electron')
this.replaceHttpCache = await ipcRenderer.invoke(IpcChannels.GET_REPLACE_HTTP_CACHE)
}
pathExists(this.replaceHttpCachePath).then((exists) => {
this.replaceHttpCache = exists
this.replaceHttpCacheLoading = false
})
})
this.replaceHttpCacheLoading = false
},
methods: {
handleRestartPrompt: function (value) {
@ -39,7 +34,7 @@ export default defineComponent({
this.showRestartPrompt = true
},
handleReplaceHttpCache: async function (value) {
handleReplaceHttpCache: function (value) {
this.showRestartPrompt = false
if (value === null || value === 'no') {
@ -47,16 +42,10 @@ export default defineComponent({
return
}
if (this.replaceHttpCache) {
// create an empty file
const handle = await fs.open(this.replaceHttpCachePath, 'w')
await handle.close()
} else {
await fs.rm(this.replaceHttpCachePath)
if (process.env.IS_ELECTRON) {
const { ipcRenderer } = require('electron')
ipcRenderer.send(IpcChannels.TOGGLE_REPLACE_HTTP_CACHE)
}
const { ipcRenderer } = require('electron')
ipcRenderer.send('relaunchRequest')
}
}
})

View File

@ -21,9 +21,15 @@ export default defineComponent({
computed: {
externalPlayerNames: function () {
const fallbackNames = this.$store.getters.getExternalPlayerNames
const nameTranslationKeys = this.$store.getters.getExternalPlayerNameTranslationKeys
const translations = [{
name: 'None',
translatedValue: this.$t('Settings.External Player Settings.Players.None.Name')
}]
return nameTranslationKeys.map((translationKey, idx) => this.$te(translationKey) ? this.$t(translationKey) : fallbackNames[idx])
return fallbackNames.map((name) => {
const translation = translations.find(e => e.name === name)
return translation ? translation.translatedValue : name
})
},
externalPlayerValues: function () {
return this.$store.getters.getExternalPlayerValues
@ -37,6 +43,9 @@ export default defineComponent({
externalPlayerIgnoreWarnings: function () {
return this.$store.getters.getExternalPlayerIgnoreWarnings
},
externalPlayerIgnoreDefaultArgs: function () {
return this.$store.getters.getExternalPlayerIgnoreDefaultArgs
},
externalPlayerCustomArgs: function () {
return this.$store.getters.getExternalPlayerCustomArgs
},
@ -58,6 +67,7 @@ export default defineComponent({
'updateExternalPlayer',
'updateExternalPlayerExecutable',
'updateExternalPlayerIgnoreWarnings',
'updateExternalPlayerIgnoreDefaultArgs',
'updateExternalPlayerCustomArgs'
])
}

View File

@ -21,6 +21,14 @@
:tooltip="$t('Tooltips.External Player Settings.Ignore Warnings')"
@change="updateExternalPlayerIgnoreWarnings"
/>
<ft-toggle-switch
:label="$t('Settings.External Player Settings.Ignore Default Arguments')"
:default-value="externalPlayerIgnoreDefaultArgs"
:disabled="externalPlayer===''"
:compact="true"
:tooltip="$t('Tooltips.External Player Settings.Ignore Default Arguments')"
@change="updateExternalPlayerIgnoreDefaultArgs"
/>
</ft-flex-box>
<ft-flex-box
v-if="externalPlayer !== ''"

View File

@ -3,10 +3,14 @@ import { defineComponent } from 'vue'
export default defineComponent({
name: 'FtAgeRestricted',
props: {
contentTypeString: {
type: String,
required: true
}
isChannel: {
type: Boolean,
default: false,
},
isVideo: {
type: Boolean,
default: false,
},
},
computed: {
emoji: function () {
@ -15,8 +19,11 @@ export default defineComponent({
},
restrictedMessage: function () {
const contentType = this.$t('Age Restricted.Type.' + this.contentTypeString)
return this.$t('Age Restricted.This {videoOrPlaylist} is age restricted', { videoOrPlaylist: contentType })
if (this.isChannel) {
return this.$t('Age Restricted.This channel is age restricted')
}
return this.$t('Age Restricted.This video is age restricted')
}
}
})

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