feat(library): add source badge to album cards in Local Library
Albums now show a small badge indicating their source: - HardDrive icon for local files (source='user') - Qobuz logo for offline cached content (source='qobuz_download') Badge appears in bottom-right corner of album artwork.
This commit is contained in:
1 parent
e025882a9f
commit
e8f0c96ccc
7 files changed
+820
-6
No files matched your search
@@ -1039,7 +1039,8 @@ impl LibraryDatabase {
|
||||
MAX(format) as format,
|
||||
MAX(bit_depth) as bit_depth,
|
||||
MAX(sample_rate) as sample_rate,
|
||||
MAX(group_key) as directory_path
|
||||
MAX(group_key) as directory_path,
|
||||
MAX(source) as source
|
||||
FROM (
|
||||
SELECT
|
||||
COALESCE(album_group_key, album || '|' || COALESCE(album_artist, artist)) as group_key,
|
||||
@@ -1051,7 +1052,8 @@ impl LibraryDatabase {
|
||||
duration_secs,
|
||||
format,
|
||||
bit_depth,
|
||||
sample_rate
|
||||
sample_rate,
|
||||
COALESCE(source, 'user') as source
|
||||
FROM local_tracks
|
||||
WHERE 1=1 {} {}
|
||||
)
|
||||
@@ -1078,7 +1080,8 @@ impl LibraryDatabase {
|
||||
MAX(format) as format,
|
||||
MAX(bit_depth) as bit_depth,
|
||||
MAX(sample_rate) as sample_rate,
|
||||
MAX(group_key) as directory_path
|
||||
MAX(group_key) as directory_path,
|
||||
MAX(source) as source
|
||||
FROM (
|
||||
SELECT
|
||||
COALESCE(album_group_key, album || '|' || COALESCE(album_artist, artist)) as group_key,
|
||||
@@ -1090,7 +1093,8 @@ impl LibraryDatabase {
|
||||
duration_secs,
|
||||
format,
|
||||
bit_depth,
|
||||
sample_rate
|
||||
sample_rate,
|
||||
COALESCE(source, 'user') as source
|
||||
FROM local_tracks
|
||||
WHERE 1=1 {} {}
|
||||
)
|
||||
@@ -1135,6 +1139,7 @@ impl LibraryDatabase {
|
||||
directory_path: row
|
||||
.get::<_, Option<String>>(11)?
|
||||
.unwrap_or_else(|| group_key.clone()),
|
||||
source: row.get::<_, Option<String>>(12)?.unwrap_or_else(|| "user".to_string()),
|
||||
})
|
||||
})
|
||||
.map_err(|e| LibraryError::Database(e.to_string()))?;
|
||||
|
||||
@@ -136,6 +136,13 @@ pub struct LocalAlbum {
|
||||
pub bit_depth: Option<u32>,
|
||||
pub sample_rate: f64, // Changed from u32 to f64 for decimal precision
|
||||
pub directory_path: String,
|
||||
/// Source of the album: "user" for local files, "qobuz_download" for offline cached
|
||||
#[serde(default = "default_source")]
|
||||
pub source: String,
|
||||
}
|
||||
|
||||
fn default_source() -> String {
|
||||
"user".to_string()
|
||||
}
|
||||
|
||||
/// An artist aggregated from local tracks
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<script lang="ts">
|
||||
import { onMount, tick } from 'svelte';
|
||||
import { Play, Disc3, Heart } from 'lucide-svelte';
|
||||
import { Play, Disc3, Heart, HardDrive } from 'lucide-svelte';
|
||||
import AlbumMenu from './AlbumMenu.svelte';
|
||||
import {
|
||||
subscribe as subscribeAlbumFavorites,
|
||||
@@ -34,6 +34,8 @@
|
||||
onOpenContainingFolder?: () => void;
|
||||
onReDownloadAlbum?: () => void;
|
||||
downloadStateVersion?: number;
|
||||
/** Source badge for local library: 'user' for local files, 'qobuz_download' for Qobuz offline */
|
||||
sourceBadge?: 'user' | 'qobuz_download';
|
||||
}
|
||||
|
||||
let {
|
||||
@@ -60,7 +62,8 @@
|
||||
isAlbumFullyDownloaded = false,
|
||||
onOpenContainingFolder,
|
||||
onReDownloadAlbum,
|
||||
downloadStateVersion
|
||||
downloadStateVersion,
|
||||
sourceBadge
|
||||
}: Props = $props();
|
||||
|
||||
const isDownloaded = $derived.by(() => {
|
||||
@@ -251,6 +254,17 @@
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<!-- Source Badge (Local Library only) -->
|
||||
{#if sourceBadge}
|
||||
<div class="source-badge" title={sourceBadge === 'user' ? 'Local file' : 'Qobuz offline'}>
|
||||
{#if sourceBadge === 'user'}
|
||||
<HardDrive size={14} />
|
||||
{:else}
|
||||
<img src="/qobuz-logo-filled.svg" alt="Qobuz" class="qobuz-badge-icon" />
|
||||
{/if}
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<!-- Text Info -->
|
||||
@@ -334,6 +348,30 @@
|
||||
border: 1px solid rgba(40, 42, 54, 0.95) !important;
|
||||
}
|
||||
|
||||
/* Source badge for Local Library albums */
|
||||
.source-badge {
|
||||
position: absolute;
|
||||
bottom: 6px;
|
||||
right: 6px;
|
||||
z-index: 3;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: rgba(0, 0, 0, 0.7);
|
||||
border-radius: 4px;
|
||||
color: var(--text-secondary);
|
||||
backdrop-filter: blur(4px);
|
||||
}
|
||||
|
||||
.source-badge .qobuz-badge-icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
filter: brightness(0) invert(1);
|
||||
opacity: 0.85;
|
||||
}
|
||||
|
||||
.play-overlay {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
bit_depth?: number;
|
||||
sample_rate: number;
|
||||
directory_path: string;
|
||||
source?: string; // 'user' for local files, 'qobuz_download' for offline cached
|
||||
}
|
||||
|
||||
interface AlbumGroup {
|
||||
@@ -43,6 +44,8 @@
|
||||
onAlbumQueueNext: (album: LocalAlbum) => void;
|
||||
onAlbumQueueLater: (album: LocalAlbum) => void;
|
||||
scrollToGroupId?: string;
|
||||
/** Show source badge on albums (for Local Library) */
|
||||
showSourceBadge?: boolean;
|
||||
}
|
||||
|
||||
let {
|
||||
@@ -58,6 +61,7 @@
|
||||
onAlbumQueueNext,
|
||||
onAlbumQueueLater,
|
||||
scrollToGroupId,
|
||||
showSourceBadge = false,
|
||||
}: Props = $props();
|
||||
|
||||
// Constants
|
||||
@@ -320,6 +324,7 @@
|
||||
onPlayNext={() => onAlbumQueueNext(album)}
|
||||
onPlayLater={() => onAlbumQueueLater(album)}
|
||||
onclick={() => onAlbumClick(album)}
|
||||
sourceBadge={showSourceBadge ? (album.source === 'qobuz_download' ? 'qobuz_download' : 'user') : undefined}
|
||||
/>
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
bit_depth?: number;
|
||||
sample_rate: number;
|
||||
directory_path: string;
|
||||
source?: string; // 'user' for local files, 'qobuz_download' for offline cached
|
||||
}
|
||||
|
||||
interface LocalArtist {
|
||||
@@ -2902,6 +2903,7 @@
|
||||
onAlbumQueueNext={handleAlbumQueueNextFromGrid}
|
||||
onAlbumQueueLater={handleAlbumQueueLaterFromGrid}
|
||||
scrollToGroupId={virtualizedScrollTarget}
|
||||
showSourceBadge={true}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg fill="#000000" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="800px" height="800px" viewBox="0 0 83.816 83.816"
|
||||
xml:space="preserve">
|
||||
<g>
|
||||
<path d="M24.908,59.816c1.47,0,2.667-1.196,2.667-2.668c0-1.471-1.196-2.666-2.667-2.666c-1.471,0-2.667,1.195-2.667,2.666
|
||||
C22.241,58.62,23.438,59.816,24.908,59.816z M24.908,56.482c0.368,0,0.667,0.299,0.667,0.666c0,0.369-0.299,0.668-0.667,0.668
|
||||
c-0.368,0-0.667-0.299-0.667-0.668C24.241,56.781,24.54,56.482,24.908,56.482z"/>
|
||||
<path d="M41.908,59.816c1.47,0,2.667-1.196,2.667-2.668c0-1.471-1.195-2.666-2.667-2.666c-1.471,0-2.667,1.195-2.667,2.666
|
||||
C39.241,58.62,40.438,59.816,41.908,59.816z M41.908,56.482c0.368,0,0.667,0.299,0.667,0.666c0,0.369-0.299,0.668-0.667,0.668
|
||||
c-0.368,0-0.667-0.299-0.667-0.668C41.241,56.781,41.54,56.482,41.908,56.482z"/>
|
||||
<path d="M58.908,59.816c1.47,0,2.666-1.196,2.666-2.668c0-1.471-1.195-2.666-2.666-2.666s-2.668,1.195-2.668,2.666
|
||||
C56.24,58.62,57.438,59.816,58.908,59.816z M58.908,56.482c0.367,0,0.666,0.299,0.666,0.666c0,0.369-0.299,0.668-0.666,0.668
|
||||
c-0.368,0-0.668-0.299-0.668-0.668C58.24,56.781,58.54,56.482,58.908,56.482z"/>
|
||||
<g>
|
||||
<path d="M41.908,0C18.762,0,0,18.763,0,41.909c0,23.146,18.763,41.908,41.908,41.908s41.909-18.762,41.909-41.908
|
||||
C83.816,18.763,65.053,0,41.908,0z M29.908,61.992c0,1.654-1.346,3-3,3h-4c-1.654,0-3-1.346-3-3V21.825c0-1.654,1.346-3,3-3h4
|
||||
c1.654,0,3,1.346,3,3V61.992z M46.908,61.992c0,1.654-1.346,3-3,3h-4c-1.654,0-3-1.346-3-3V21.825c0-1.654,1.346-3,3-3h4
|
||||
c1.654,0,3,1.346,3,3V61.992z M63.908,61.992c0,1.654-1.346,3-3,3h-4c-1.654,0-3-1.346-3-3V21.825c0-1.654,1.346-3,3-3h4
|
||||
c1.654,0,3,1.346,3,3V61.992z"/>
|
||||
<path d="M43.908,20.825h-4c-0.551,0-1,0.449-1,1v40.167c0,0.551,0.449,1,1,1h4c0.551,0,1-0.449,1-1V21.825
|
||||
C44.908,21.274,44.459,20.825,43.908,20.825z M42.908,41.909c0,0.552-0.448,1-1,1c-0.552,0-1-0.447-1-1V24.524
|
||||
c0-0.552,0.448-1,1-1c0.552,0,1,0.448,1,1V41.909z"/>
|
||||
<path d="M26.908,20.825h-4c-0.551,0-1,0.449-1,1v40.167c0,0.551,0.449,1,1,1h4c0.551,0,1-0.449,1-1V21.825
|
||||
C27.908,21.274,27.459,20.825,26.908,20.825z M25.908,41.909c0,0.552-0.448,1-1,1c-0.552,0-1-0.447-1-1V24.524
|
||||
c0-0.552,0.448-1,1-1c0.552,0,1,0.448,1,1V41.909z"/>
|
||||
<path d="M60.908,20.825h-4c-0.551,0-1,0.449-1,1v40.167c0,0.551,0.449,1,1,1h4c0.551,0,1-0.449,1-1V21.825
|
||||
C61.908,21.274,61.459,20.825,60.908,20.825z M59.908,41.909c0,0.552-0.448,1-1,1c-0.553,0-1-0.447-1-1V24.524
|
||||
c0-0.552,0.447-1,1-1c0.552,0,1,0.448,1,1V41.909z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
@@ -0,0 +1,723 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny" viewBox="0.00 0.00 1001.00 1006.00" width="1001.00" height="1006.00">
|
||||
<g stroke-width="0.70" fill="none" stroke-linecap="butt">
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 557.55 950.97
|
||||
L 581.17 947.23"
|
||||
/>
|
||||
<path stroke="#6d6d6d" vector-effect="non-scaling-stroke" d="
|
||||
M 581.17 947.23
|
||||
Q 609.98 941.99 638.44 932.84"
|
||||
/>
|
||||
<path stroke="#535353" vector-effect="non-scaling-stroke" d="
|
||||
M 638.44 932.84
|
||||
Q 659.85 926.00 680.82 916.82"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 680.82 916.82
|
||||
L 697.13 909.33"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 697.13 909.33
|
||||
L 717.64 898.75"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 717.64 898.75
|
||||
L 730.04 891.73"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 730.04 891.73
|
||||
L 744.08 883.08"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 744.08 883.08
|
||||
L 757.43 874.20"
|
||||
/>
|
||||
<path stroke="#101010" vector-effect="non-scaling-stroke" d="
|
||||
M 757.43 874.20
|
||||
L 780.82 856.92
|
||||
A 0.35 0.35 0.0 0 0 780.90 856.44
|
||||
L 742.51 802.46"
|
||||
/>
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 742.51 802.46
|
||||
L 892.52 952.45
|
||||
A 0.66 0.66 0.0 0 0 893.44 952.45
|
||||
L 948.52 897.37
|
||||
A 0.69 0.69 0.0 0 0 948.52 896.41
|
||||
L 846.49 794.39
|
||||
A 0.63 0.62 -47.5 0 1 846.46 793.55
|
||||
C 886.70 745.35 917.83 689.41 935.93 628.80
|
||||
Q 965.50 529.79 949.45 427.27
|
||||
C 935.07 335.44 893.56 249.75 829.14 182.43
|
||||
C 765.53 115.95 683.65 70.07 594.25 50.69
|
||||
C 469.95 23.75 339.47 50.27 235.76 122.68
|
||||
C 184.69 158.33 141.36 204.55 108.85 257.30
|
||||
C 47.98 356.05 26.76 474.17 49.94 588.07
|
||||
C 73.77 705.16 141.86 809.09 241.04 875.95
|
||||
Q 344.22 945.51 468.99 954.01
|
||||
Q 511.07 956.88 557.55 950.97"
|
||||
/>
|
||||
<path stroke="#8f8f8f" vector-effect="non-scaling-stroke" d="
|
||||
M 742.51 802.46
|
||||
L 727.79 787.70"
|
||||
/>
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 727.79 787.70
|
||||
Q 688.45 748.30 649.12 709.04
|
||||
Q 640.04 699.97 637.83 696.22
|
||||
C 627.05 677.88 632.20 654.66 649.80 642.74
|
||||
C 662.25 634.31 678.43 633.99 691.56 641.27
|
||||
Q 696.37 643.93 703.01 650.84
|
||||
Q 706.19 654.15 783.29 731.16
|
||||
A 0.33 0.31 -47.4 0 0 783.76 731.13
|
||||
C 835.35 668.17 864.96 589.13 867.08 507.73
|
||||
C 868.43 455.92 858.41 402.11 838.22 354.52
|
||||
Q 792.68 247.17 693.44 184.61
|
||||
C 637.52 149.36 571.14 129.28 503.67 128.46
|
||||
C 429.03 127.55 357.26 148.19 295.83 188.39
|
||||
C 198.63 252.01 137.36 357.58 129.54 473.00
|
||||
C 122.38 578.71 162.21 684.08 236.05 757.97
|
||||
Q 278.72 800.68 332.89 827.93
|
||||
Q 410.44 866.94 500.95 867.06"
|
||||
/>
|
||||
<path stroke="#ffffff" vector-effect="non-scaling-stroke" d="
|
||||
M 500.95 867.06
|
||||
Q 506.74 878.08 510.46 883.34
|
||||
Q 527.12 906.90 543.76 930.47
|
||||
Q 550.86 940.53 557.55 950.97"
|
||||
/>
|
||||
<path stroke="#282828" vector-effect="non-scaling-stroke" d="
|
||||
M 757.43 874.20
|
||||
L 706.67 802.14"
|
||||
/>
|
||||
<path stroke="#101010" vector-effect="non-scaling-stroke" d="
|
||||
M 727.79 787.70
|
||||
Q 726.29 788.06 723.34 790.07
|
||||
Q 720.70 791.88 716.07 795.56
|
||||
Q 712.58 798.33 706.67 802.14"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 706.67 802.14
|
||||
L 693.03 811.18"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 693.03 811.18
|
||||
L 679.65 819.22"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 679.65 819.22
|
||||
L 666.59 826.26"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 666.59 826.26
|
||||
L 645.78 836.14"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 645.78 836.14
|
||||
L 629.16 842.94"
|
||||
/>
|
||||
<path stroke="#535353" vector-effect="non-scaling-stroke" d="
|
||||
M 629.16 842.94
|
||||
Q 622.56 845.28 615.87 847.55
|
||||
Q 600.28 852.83 584.59 856.64"
|
||||
/>
|
||||
<path stroke="#6d6d6d" vector-effect="non-scaling-stroke" d="
|
||||
M 584.59 856.64
|
||||
Q 555.26 863.64 525.44 865.91"
|
||||
/>
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 525.44 865.91
|
||||
L 500.95 867.06"
|
||||
/>
|
||||
<path stroke="#393939" vector-effect="non-scaling-stroke" d="
|
||||
M 744.08 883.08
|
||||
L 693.03 811.18"
|
||||
/>
|
||||
<path stroke="#646464" vector-effect="non-scaling-stroke" d="
|
||||
M 717.64 898.75
|
||||
L 666.59 826.26"
|
||||
/>
|
||||
<path stroke="#ededed" vector-effect="non-scaling-stroke" d="
|
||||
M 581.17 947.23
|
||||
Q 558.13 913.89 534.83 881.04
|
||||
Q 530.83 875.40 525.44 865.91"
|
||||
/>
|
||||
<path stroke="#494949" vector-effect="non-scaling-stroke" d="
|
||||
M 730.04 891.73
|
||||
L 679.65 819.22"
|
||||
/>
|
||||
<path stroke="#9a9a9a" vector-effect="non-scaling-stroke" d="
|
||||
M 680.82 916.82
|
||||
L 629.16 842.94"
|
||||
/>
|
||||
<path stroke="#c0c0c0" vector-effect="non-scaling-stroke" d="
|
||||
M 638.44 932.84
|
||||
Q 612.13 894.05 584.59 856.64"
|
||||
/>
|
||||
<path stroke="#838383" vector-effect="non-scaling-stroke" d="
|
||||
M 697.13 909.33
|
||||
Q 691.04 899.88 684.80 890.95
|
||||
Q 665.57 863.44 645.78 836.14"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 451.95 162.31
|
||||
Q 435.68 164.53 419.71 168.29"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 419.71 168.29
|
||||
Q 394.74 174.23 370.96 183.82"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 370.96 183.82
|
||||
Q 356.17 189.79 341.77 197.29"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 341.77 197.29
|
||||
L 320.67 209.22"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 320.67 209.22
|
||||
L 298.03 224.42"
|
||||
/>
|
||||
<path stroke="#101010" vector-effect="non-scaling-stroke" d="
|
||||
M 298.03 224.42
|
||||
Q 283.58 234.97 270.44 246.96
|
||||
A 0.60 0.60 0.0 0 0 270.39 247.79
|
||||
Q 313.72 299.08 358.88 351.85
|
||||
Q 365.32 359.38 376.67 371.78
|
||||
A 0.50 0.50 0.0 0 0 377.37 371.82
|
||||
L 391.21 360.01"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 391.21 360.01
|
||||
L 402.60 351.90"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 402.60 351.90
|
||||
L 413.29 345.47"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 413.29 345.47
|
||||
L 428.78 337.87"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 428.78 337.87
|
||||
Q 440.89 332.67 453.85 329.25"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 453.85 329.25
|
||||
L 471.98 325.54"
|
||||
/>
|
||||
<path stroke="#535353" vector-effect="non-scaling-stroke" d="
|
||||
M 471.98 325.54
|
||||
Q 496.60 322.02 521.28 325.21"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 521.28 325.21
|
||||
L 541.82 329.28"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 541.82 329.28
|
||||
L 562.39 336.11"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 562.39 336.11
|
||||
L 582.19 345.47"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 582.19 345.47
|
||||
L 592.75 351.80"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 592.75 351.80
|
||||
L 605.25 360.64"
|
||||
/>
|
||||
<path stroke="#101010" vector-effect="non-scaling-stroke" d="
|
||||
M 605.25 360.64
|
||||
L 618.68 372.25
|
||||
A 0.34 0.34 0.0 0 0 619.16 372.21
|
||||
Q 644.65 342.33 670.35 312.36
|
||||
C 692.62 286.40 708.15 268.67 724.35 246.79
|
||||
A 0.57 0.56 -50.9 0 0 724.28 246.03
|
||||
Q 712.00 234.89 698.78 225.28"
|
||||
/>
|
||||
<path stroke="#191919" vector-effect="non-scaling-stroke" d="
|
||||
M 698.78 225.28
|
||||
L 675.59 209.66"
|
||||
/>
|
||||
<path stroke="#212121" vector-effect="non-scaling-stroke" d="
|
||||
M 675.59 209.66
|
||||
L 654.50 197.70"
|
||||
/>
|
||||
<path stroke="#292929" vector-effect="non-scaling-stroke" d="
|
||||
M 654.50 197.70
|
||||
Q 636.00 188.05 616.48 180.75"
|
||||
/>
|
||||
<path stroke="#3c3c3c" vector-effect="non-scaling-stroke" d="
|
||||
M 616.48 180.75
|
||||
Q 597.04 173.41 576.63 168.50"
|
||||
/>
|
||||
<path stroke="#474747" vector-effect="non-scaling-stroke" d="
|
||||
M 576.63 168.50
|
||||
Q 557.47 163.90 537.73 161.53"
|
||||
/>
|
||||
<path stroke="#535353" vector-effect="non-scaling-stroke" d="
|
||||
M 537.73 161.53
|
||||
Q 494.77 156.50 451.95 162.31"
|
||||
/>
|
||||
<path stroke="#9a9a9a" vector-effect="non-scaling-stroke" d="
|
||||
M 537.73 161.53
|
||||
L 521.28 325.21"
|
||||
/>
|
||||
<path stroke="#9a9a9a" vector-effect="non-scaling-stroke" d="
|
||||
M 471.98 325.54
|
||||
Q 469.33 309.05 466.65 286.55
|
||||
Q 459.42 225.76 455.01 184.26
|
||||
Q 454.40 178.48 451.95 162.31"
|
||||
/>
|
||||
<path stroke="#838383" vector-effect="non-scaling-stroke" d="
|
||||
M 453.85 329.25
|
||||
Q 438.95 259.78 424.03 190.41
|
||||
Q 422.35 182.63 419.71 168.29"
|
||||
/>
|
||||
<path stroke="#838383" vector-effect="non-scaling-stroke" d="
|
||||
M 576.63 168.50
|
||||
L 541.82 329.28"
|
||||
/>
|
||||
<path stroke="#646464" vector-effect="non-scaling-stroke" d="
|
||||
M 428.78 337.87
|
||||
L 370.96 183.82"
|
||||
/>
|
||||
<path stroke="#646464" vector-effect="non-scaling-stroke" d="
|
||||
M 616.48 180.75
|
||||
L 562.39 336.11"
|
||||
/>
|
||||
<path stroke="#494949" vector-effect="non-scaling-stroke" d="
|
||||
M 413.29 345.47
|
||||
Q 406.77 331.03 402.58 322.44
|
||||
Q 372.14 259.96 341.77 197.29"
|
||||
/>
|
||||
<path stroke="#494949" vector-effect="non-scaling-stroke" d="
|
||||
M 654.50 197.70
|
||||
Q 649.89 206.51 648.26 209.80
|
||||
Q 614.87 277.42 582.19 345.47"
|
||||
/>
|
||||
<path stroke="#393939" vector-effect="non-scaling-stroke" d="
|
||||
M 402.60 351.90
|
||||
L 320.67 209.22"
|
||||
/>
|
||||
<path stroke="#393939" vector-effect="non-scaling-stroke" d="
|
||||
M 675.59 209.66
|
||||
L 592.75 351.80"
|
||||
/>
|
||||
<path stroke="#282828" vector-effect="non-scaling-stroke" d="
|
||||
M 391.21 360.01
|
||||
L 298.03 224.42"
|
||||
/>
|
||||
<path stroke="#282828" vector-effect="non-scaling-stroke" d="
|
||||
M 698.78 225.28
|
||||
L 605.25 360.64"
|
||||
/>
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 640.22 497.61
|
||||
A 142.40 142.40 0.0 0 0 497.82 355.21
|
||||
A 142.40 142.40 0.0 0 0 355.42 497.61
|
||||
A 142.40 142.40 0.0 0 0 497.82 640.01
|
||||
A 142.40 142.40 0.0 0 0 640.22 497.61"
|
||||
/>
|
||||
<path stroke="#808080" vector-effect="non-scaling-stroke" d="
|
||||
M 531.73 497.64
|
||||
A 33.88 33.88 0.0 0 0 497.85 463.76
|
||||
A 33.88 33.88 0.0 0 0 463.97 497.64
|
||||
A 33.88 33.88 0.0 0 0 497.85 531.52
|
||||
A 33.88 33.88 0.0 0 0 531.73 497.64"
|
||||
/>
|
||||
</g>
|
||||
<path fill="#000000" d="
|
||||
M 1001.00 894.06
|
||||
L 1001.00 899.88
|
||||
L 894.89 1006.00
|
||||
L 890.94 1006.00
|
||||
L 786.61 901.68
|
||||
A 0.67 0.67 0.0 0 0 785.75 901.61
|
||||
Q 692.31 967.36 581.53 986.49
|
||||
C 480.05 1004.01 375.68 989.59 283.23 945.27
|
||||
C 183.95 897.69 102.71 818.43 53.75 719.63
|
||||
Q 5.29 621.86 1.62 512.99
|
||||
C -3.07 374.00 51.60 238.98 151.52 141.59
|
||||
C 216.34 78.41 297.18 34.41 385.36 14.17
|
||||
C 521.35 -17.05 664.42 10.07 779.15 89.43
|
||||
Q 853.16 140.62 903.94 213.54
|
||||
Q 954.47 286.10 977.21 373.17
|
||||
C 1014.81 517.13 985.41 670.55 897.80 790.36
|
||||
A 0.45 0.43 40.7 0 0 897.85 790.93
|
||||
L 1001.00 894.06
|
||||
Z
|
||||
M 557.55 950.97
|
||||
L 581.17 947.23
|
||||
Q 609.98 941.99 638.44 932.84
|
||||
Q 659.85 926.00 680.82 916.82
|
||||
L 697.13 909.33
|
||||
L 717.64 898.75
|
||||
L 730.04 891.73
|
||||
L 744.08 883.08
|
||||
L 757.43 874.20
|
||||
L 780.82 856.92
|
||||
A 0.35 0.35 0.0 0 0 780.90 856.44
|
||||
L 742.51 802.46
|
||||
L 892.52 952.45
|
||||
A 0.66 0.66 0.0 0 0 893.44 952.45
|
||||
L 948.52 897.37
|
||||
A 0.69 0.69 0.0 0 0 948.52 896.41
|
||||
L 846.49 794.39
|
||||
A 0.63 0.62 -47.5 0 1 846.46 793.55
|
||||
C 886.70 745.35 917.83 689.41 935.93 628.80
|
||||
Q 965.50 529.79 949.45 427.27
|
||||
C 935.07 335.44 893.56 249.75 829.14 182.43
|
||||
C 765.53 115.95 683.65 70.07 594.25 50.69
|
||||
C 469.95 23.75 339.47 50.27 235.76 122.68
|
||||
C 184.69 158.33 141.36 204.55 108.85 257.30
|
||||
C 47.98 356.05 26.76 474.17 49.94 588.07
|
||||
C 73.77 705.16 141.86 809.09 241.04 875.95
|
||||
Q 344.22 945.51 468.99 954.01
|
||||
Q 511.07 956.88 557.55 950.97
|
||||
Z"
|
||||
/>
|
||||
<g>
|
||||
<path fill="#ffffff" d="
|
||||
M 742.51 802.46
|
||||
L 727.79 787.70
|
||||
Q 688.45 748.30 649.12 709.04
|
||||
Q 640.04 699.97 637.83 696.22
|
||||
C 627.05 677.88 632.20 654.66 649.80 642.74
|
||||
C 662.25 634.31 678.43 633.99 691.56 641.27
|
||||
Q 696.37 643.93 703.01 650.84
|
||||
Q 706.19 654.15 783.29 731.16
|
||||
A 0.33 0.31 -47.4 0 0 783.76 731.13
|
||||
C 835.35 668.17 864.96 589.13 867.08 507.73
|
||||
C 868.43 455.92 858.41 402.11 838.22 354.52
|
||||
Q 792.68 247.17 693.44 184.61
|
||||
C 637.52 149.36 571.14 129.28 503.67 128.46
|
||||
C 429.03 127.55 357.26 148.19 295.83 188.39
|
||||
C 198.63 252.01 137.36 357.58 129.54 473.00
|
||||
C 122.38 578.71 162.21 684.08 236.05 757.97
|
||||
Q 278.72 800.68 332.89 827.93
|
||||
Q 410.44 866.94 500.95 867.06
|
||||
Q 506.74 878.08 510.46 883.34
|
||||
Q 527.12 906.90 543.76 930.47
|
||||
Q 550.86 940.53 557.55 950.97
|
||||
Q 511.07 956.88 468.99 954.01
|
||||
Q 344.22 945.51 241.04 875.95
|
||||
C 141.86 809.09 73.77 705.16 49.94 588.07
|
||||
C 26.76 474.17 47.98 356.05 108.85 257.30
|
||||
C 141.36 204.55 184.69 158.33 235.76 122.68
|
||||
C 339.47 50.27 469.95 23.75 594.25 50.69
|
||||
C 683.65 70.07 765.53 115.95 829.14 182.43
|
||||
C 893.56 249.75 935.07 335.44 949.45 427.27
|
||||
Q 965.50 529.79 935.93 628.80
|
||||
C 917.83 689.41 886.70 745.35 846.46 793.55
|
||||
A 0.63 0.62 -47.5 0 0 846.49 794.39
|
||||
L 948.52 896.41
|
||||
A 0.69 0.69 0.0 0 1 948.52 897.37
|
||||
L 893.44 952.45
|
||||
A 0.66 0.66 0.0 0 1 892.52 952.45
|
||||
L 742.51 802.46
|
||||
Z"
|
||||
/>
|
||||
<path fill="#000000" d="
|
||||
M 727.79 787.70
|
||||
Q 726.29 788.06 723.34 790.07
|
||||
Q 720.70 791.88 716.07 795.56
|
||||
Q 712.58 798.33 706.67 802.14
|
||||
L 693.03 811.18
|
||||
L 679.65 819.22
|
||||
L 666.59 826.26
|
||||
L 645.78 836.14
|
||||
L 629.16 842.94
|
||||
Q 622.56 845.28 615.87 847.55
|
||||
Q 600.28 852.83 584.59 856.64
|
||||
Q 555.26 863.64 525.44 865.91
|
||||
L 500.95 867.06
|
||||
Q 410.44 866.94 332.89 827.93
|
||||
Q 278.72 800.68 236.05 757.97
|
||||
C 162.21 684.08 122.38 578.71 129.54 473.00
|
||||
C 137.36 357.58 198.63 252.01 295.83 188.39
|
||||
C 357.26 148.19 429.03 127.55 503.67 128.46
|
||||
C 571.14 129.28 637.52 149.36 693.44 184.61
|
||||
Q 792.68 247.17 838.22 354.52
|
||||
C 858.41 402.11 868.43 455.92 867.08 507.73
|
||||
C 864.96 589.13 835.35 668.17 783.76 731.13
|
||||
A 0.33 0.31 -47.4 0 1 783.29 731.16
|
||||
Q 706.19 654.15 703.01 650.84
|
||||
Q 696.37 643.93 691.56 641.27
|
||||
C 678.43 633.99 662.25 634.31 649.80 642.74
|
||||
C 632.20 654.66 627.05 677.88 637.83 696.22
|
||||
Q 640.04 699.97 649.12 709.04
|
||||
Q 688.45 748.30 727.79 787.70
|
||||
Z
|
||||
M 451.95 162.31
|
||||
Q 435.68 164.53 419.71 168.29
|
||||
Q 394.74 174.23 370.96 183.82
|
||||
Q 356.17 189.79 341.77 197.29
|
||||
L 320.67 209.22
|
||||
L 298.03 224.42
|
||||
Q 283.58 234.97 270.44 246.96
|
||||
A 0.60 0.60 0.0 0 0 270.39 247.79
|
||||
Q 313.72 299.08 358.88 351.85
|
||||
Q 365.32 359.38 376.67 371.78
|
||||
A 0.50 0.50 0.0 0 0 377.37 371.82
|
||||
L 391.21 360.01
|
||||
L 402.60 351.90
|
||||
L 413.29 345.47
|
||||
L 428.78 337.87
|
||||
Q 440.89 332.67 453.85 329.25
|
||||
L 471.98 325.54
|
||||
Q 496.60 322.02 521.28 325.21
|
||||
L 541.82 329.28
|
||||
L 562.39 336.11
|
||||
L 582.19 345.47
|
||||
L 592.75 351.80
|
||||
L 605.25 360.64
|
||||
L 618.68 372.25
|
||||
A 0.34 0.34 0.0 0 0 619.16 372.21
|
||||
Q 644.65 342.33 670.35 312.36
|
||||
C 692.62 286.40 708.15 268.67 724.35 246.79
|
||||
A 0.57 0.56 -50.9 0 0 724.28 246.03
|
||||
Q 712.00 234.89 698.78 225.28
|
||||
L 675.59 209.66
|
||||
L 654.50 197.70
|
||||
Q 636.00 188.05 616.48 180.75
|
||||
Q 597.04 173.41 576.63 168.50
|
||||
Q 557.47 163.90 537.73 161.53
|
||||
Q 494.77 156.50 451.95 162.31
|
||||
Z
|
||||
M 640.22 497.61
|
||||
A 142.40 142.40 0.0 0 0 497.82 355.21
|
||||
A 142.40 142.40 0.0 0 0 355.42 497.61
|
||||
A 142.40 142.40 0.0 0 0 497.82 640.01
|
||||
A 142.40 142.40 0.0 0 0 640.22 497.61
|
||||
Z"
|
||||
/>
|
||||
<path fill="#1f1f1f" d="
|
||||
M 727.79 787.70
|
||||
L 742.51 802.46
|
||||
L 780.90 856.44
|
||||
A 0.35 0.35 0.0 0 1 780.82 856.92
|
||||
L 757.43 874.20
|
||||
L 706.67 802.14
|
||||
Q 712.58 798.33 716.07 795.56
|
||||
Q 720.70 791.88 723.34 790.07
|
||||
Q 726.29 788.06 727.79 787.70
|
||||
Z"
|
||||
/>
|
||||
<path fill="#313131" d="
|
||||
M 706.67 802.14
|
||||
L 757.43 874.20
|
||||
L 744.08 883.08
|
||||
L 693.03 811.18
|
||||
L 706.67 802.14
|
||||
Z"
|
||||
/>
|
||||
<path fill="#414141" d="
|
||||
M 693.03 811.18
|
||||
L 744.08 883.08
|
||||
L 730.04 891.73
|
||||
L 679.65 819.22
|
||||
L 693.03 811.18
|
||||
Z"
|
||||
/>
|
||||
<path fill="#515151" d="
|
||||
M 679.65 819.22
|
||||
L 730.04 891.73
|
||||
L 717.64 898.75
|
||||
L 666.59 826.26
|
||||
L 679.65 819.22
|
||||
Z"
|
||||
/>
|
||||
<path fill="#777777" d="
|
||||
M 666.59 826.26
|
||||
L 717.64 898.75
|
||||
L 697.13 909.33
|
||||
Q 691.04 899.88 684.80 890.95
|
||||
Q 665.57 863.44 645.78 836.14
|
||||
L 666.59 826.26
|
||||
Z"
|
||||
/>
|
||||
<path fill="#8e8e8e" d="
|
||||
M 645.78 836.14
|
||||
Q 665.57 863.44 684.80 890.95
|
||||
Q 691.04 899.88 697.13 909.33
|
||||
L 680.82 916.82
|
||||
L 629.16 842.94
|
||||
L 645.78 836.14
|
||||
Z"
|
||||
/>
|
||||
<path fill="#a6a6a6" d="
|
||||
M 629.16 842.94
|
||||
L 680.82 916.82
|
||||
Q 659.85 926.00 638.44 932.84
|
||||
Q 612.13 894.05 584.59 856.64
|
||||
Q 600.28 852.83 615.87 847.55
|
||||
Q 622.56 845.28 629.16 842.94
|
||||
Z"
|
||||
/>
|
||||
<path fill="#dadada" d="
|
||||
M 584.59 856.64
|
||||
Q 612.13 894.05 638.44 932.84
|
||||
Q 609.98 941.99 581.17 947.23
|
||||
Q 558.13 913.89 534.83 881.04
|
||||
Q 530.83 875.40 525.44 865.91
|
||||
Q 555.26 863.64 584.59 856.64
|
||||
Z"
|
||||
/>
|
||||
<path fill="#ffffff" d="
|
||||
M 525.44 865.91
|
||||
Q 530.83 875.40 534.83 881.04
|
||||
Q 558.13 913.89 581.17 947.23
|
||||
L 557.55 950.97
|
||||
Q 550.86 940.53 543.76 930.47
|
||||
Q 527.12 906.90 510.46 883.34
|
||||
Q 506.74 878.08 500.95 867.06
|
||||
L 525.44 865.91
|
||||
Z"
|
||||
/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#a6a6a6" d="
|
||||
M 537.73 161.53
|
||||
L 521.28 325.21
|
||||
Q 496.60 322.02 471.98 325.54
|
||||
Q 469.33 309.05 466.65 286.55
|
||||
Q 459.42 225.76 455.01 184.26
|
||||
Q 454.40 178.48 451.95 162.31
|
||||
Q 494.77 156.50 537.73 161.53
|
||||
Z"
|
||||
/>
|
||||
<path fill="#8e8e8e" d="
|
||||
M 576.63 168.50
|
||||
L 541.82 329.28
|
||||
L 521.28 325.21
|
||||
L 537.73 161.53
|
||||
Q 557.47 163.90 576.63 168.50
|
||||
Z"
|
||||
/>
|
||||
<path fill="#8e8e8e" d="
|
||||
M 451.95 162.31
|
||||
Q 454.40 178.48 455.01 184.26
|
||||
Q 459.42 225.76 466.65 286.55
|
||||
Q 469.33 309.05 471.98 325.54
|
||||
L 453.85 329.25
|
||||
Q 438.95 259.78 424.03 190.41
|
||||
Q 422.35 182.63 419.71 168.29
|
||||
Q 435.68 164.53 451.95 162.31
|
||||
Z"
|
||||
/>
|
||||
<path fill="#777777" d="
|
||||
M 419.71 168.29
|
||||
Q 422.35 182.63 424.03 190.41
|
||||
Q 438.95 259.78 453.85 329.25
|
||||
Q 440.89 332.67 428.78 337.87
|
||||
L 370.96 183.82
|
||||
Q 394.74 174.23 419.71 168.29
|
||||
Z"
|
||||
/>
|
||||
<path fill="#777777" d="
|
||||
M 616.48 180.75
|
||||
L 562.39 336.11
|
||||
L 541.82 329.28
|
||||
L 576.63 168.50
|
||||
Q 597.04 173.41 616.48 180.75
|
||||
Z"
|
||||
/>
|
||||
<path fill="#515151" d="
|
||||
M 654.50 197.70
|
||||
Q 649.89 206.51 648.26 209.80
|
||||
Q 614.87 277.42 582.19 345.47
|
||||
L 562.39 336.11
|
||||
L 616.48 180.75
|
||||
Q 636.00 188.05 654.50 197.70
|
||||
Z"
|
||||
/>
|
||||
<path fill="#515151" d="
|
||||
M 370.96 183.82
|
||||
L 428.78 337.87
|
||||
L 413.29 345.47
|
||||
Q 406.77 331.03 402.58 322.44
|
||||
Q 372.14 259.96 341.77 197.29
|
||||
Q 356.17 189.79 370.96 183.82
|
||||
Z"
|
||||
/>
|
||||
<path fill="#414141" d="
|
||||
M 341.77 197.29
|
||||
Q 372.14 259.96 402.58 322.44
|
||||
Q 406.77 331.03 413.29 345.47
|
||||
L 402.60 351.90
|
||||
L 320.67 209.22
|
||||
L 341.77 197.29
|
||||
Z"
|
||||
/>
|
||||
<path fill="#414141" d="
|
||||
M 675.59 209.66
|
||||
L 592.75 351.80
|
||||
L 582.19 345.47
|
||||
Q 614.87 277.42 648.26 209.80
|
||||
Q 649.89 206.51 654.50 197.70
|
||||
L 675.59 209.66
|
||||
Z"
|
||||
/>
|
||||
<path fill="#313131" d="
|
||||
M 320.67 209.22
|
||||
L 402.60 351.90
|
||||
L 391.21 360.01
|
||||
L 298.03 224.42
|
||||
L 320.67 209.22
|
||||
Z"
|
||||
/>
|
||||
<path fill="#313131" d="
|
||||
M 698.78 225.28
|
||||
L 605.25 360.64
|
||||
L 592.75 351.80
|
||||
L 675.59 209.66
|
||||
L 698.78 225.28
|
||||
Z"
|
||||
/>
|
||||
<path fill="#1f1f1f" d="
|
||||
M 298.03 224.42
|
||||
L 391.21 360.01
|
||||
L 377.37 371.82
|
||||
A 0.50 0.50 0.0 0 1 376.67 371.78
|
||||
Q 365.32 359.38 358.88 351.85
|
||||
Q 313.72 299.08 270.39 247.79
|
||||
A 0.60 0.60 0.0 0 1 270.44 246.96
|
||||
Q 283.58 234.97 298.03 224.42
|
||||
Z"
|
||||
/>
|
||||
<path fill="#1f1f1f" d="
|
||||
M 605.25 360.64
|
||||
L 698.78 225.28
|
||||
Q 712.00 234.89 724.28 246.03
|
||||
A 0.57 0.56 -50.9 0 1 724.35 246.79
|
||||
C 708.15 268.67 692.62 286.40 670.35 312.36
|
||||
Q 644.65 342.33 619.16 372.21
|
||||
A 0.34 0.34 0.0 0 1 618.68 372.25
|
||||
L 605.25 360.64
|
||||
Z"
|
||||
/>
|
||||
<path fill="#ffffff" d="
|
||||
M 640.22 497.61
|
||||
A 142.40 142.40 0.0 0 1 497.82 640.01
|
||||
A 142.40 142.40 0.0 0 1 355.42 497.61
|
||||
A 142.40 142.40 0.0 0 1 497.82 355.21
|
||||
A 142.40 142.40 0.0 0 1 640.22 497.61
|
||||
Z
|
||||
M 531.73 497.64
|
||||
A 33.88 33.88 0.0 0 0 497.85 463.76
|
||||
A 33.88 33.88 0.0 0 0 463.97 497.64
|
||||
A 33.88 33.88 0.0 0 0 497.85 531.52
|
||||
A 33.88 33.88 0.0 0 0 531.73 497.64
|
||||
Z"
|
||||
/>
|
||||
</g>
|
||||
<circle fill="#000000" cx="497.85" cy="497.64" r="33.88"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 19 KiB |
Reference in new issue
Block a user