Compare commits
459 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2526c6097e | ||
|
|
1e0889fe84 | ||
|
|
ba0716d37e | ||
|
|
b8d9eb65f6 | ||
|
|
03f0a6e6e2 | ||
|
|
5971e4afa1 | ||
|
|
dc840b63d8 | ||
|
|
865b30c631 | ||
|
|
da17f214da | ||
|
|
643397c939 | ||
|
|
1704001ef6 | ||
|
|
18d6758dbe | ||
|
|
19f5b7e3bc | ||
|
|
28c81825cc | ||
|
|
151777fbd6 | ||
|
|
8a8e3c21cb | ||
|
|
809cb07bb8 | ||
|
|
edce5fae85 | ||
|
|
10c1342bdb | ||
|
|
ede82406fa | ||
|
|
6ff8d8b5af | ||
|
|
bd7d136504 | ||
|
|
f8ebcffa08 | ||
|
|
eed64334e3 | ||
|
|
2bee99f9cc | ||
|
|
35dcf76689 | ||
|
|
1f7285cfc4 | ||
|
|
4f1736fb0f | ||
|
|
0229567156 | ||
|
|
87daddbeb2 | ||
|
|
c284b9c26c | ||
|
|
95e3e4dda4 | ||
|
|
d95e6539e3 | ||
|
|
a49feb2971 | ||
|
|
8b7ae3beed | ||
|
|
0a0fbbbdbb | ||
|
|
ca44097669 | ||
|
|
c0c77f6762 | ||
|
|
b7ba899df7 | ||
|
|
9b4bf36dbb | ||
|
|
85d63243c7 | ||
|
|
79cbc46f9b | ||
|
|
bd9fe652d9 | ||
|
|
dac7b34228 | ||
|
|
8703c485bc | ||
|
|
29f36827ca | ||
|
|
6fdb2b55b5 | ||
|
|
6a2e5edf2e | ||
|
|
938c31c815 | ||
|
|
d0ead60421 | ||
|
|
e0883eeae2 | ||
|
|
b0941641c7 | ||
|
|
8654dd44e6 | ||
|
|
afb7e23fcc | ||
|
|
1ffe3e7c16 | ||
|
|
7c0934cd9b | ||
|
|
e5eef1320d | ||
|
|
5ec9b3ea6f | ||
|
|
708e993f41 | ||
|
|
fd68777484 | ||
|
|
d616dddac0 | ||
|
|
7b31c4cca5 | ||
|
|
be94e9fb6b | ||
|
|
1b9981d74e | ||
|
|
f1ad263849 | ||
|
|
d802adb048 | ||
|
|
71bb616b76 | ||
|
|
3ba0ec2041 | ||
|
|
40576ac18d | ||
|
|
e6fa83904b | ||
|
|
a52696aae2 | ||
|
|
e9ca9a0454 | ||
|
|
7d38bbb0fa | ||
|
|
512ffb7639 | ||
|
|
cc652472a0 | ||
|
|
4cc3b39ce6 | ||
|
|
fabb9bd611 | ||
|
|
436bdbd8f2 | ||
|
|
d6ca83f090 | ||
|
|
96de2e7d0f | ||
|
|
ec922fac2c | ||
|
|
b4d5aef876 | ||
|
|
a672abba6a | ||
|
|
b193e03be9 | ||
|
|
4088807c72 | ||
|
|
f02ed06e09 | ||
|
|
ac69569d77 | ||
|
|
13a2ef6e5e | ||
|
|
c490c5dca8 | ||
|
|
24204c581e | ||
|
|
881a46867d | ||
|
|
3c665c21d1 | ||
|
|
f95138d1a4 | ||
|
|
04009f78f7 | ||
|
|
45f449d371 | ||
|
|
d8e2de927a | ||
|
|
f67348b9b8 | ||
|
|
c92eaa93bd | ||
|
|
8411e4ff76 | ||
|
|
b451d5def8 | ||
|
|
a6f8237069 | ||
|
|
ceb6d5fdac | ||
|
|
41ed6b8a43 | ||
|
|
06a51b5799 | ||
|
|
5001e59ee3 | ||
|
|
85747edff1 | ||
|
|
fb4b950148 | ||
|
|
a2988557de | ||
|
|
f554e35686 | ||
|
|
dbcfbcd0f2 | ||
|
|
27b52466ad | ||
|
|
20082cbadf | ||
|
|
4a7138205c | ||
|
|
6ae4451c51 | ||
|
|
7f17d8cd8f | ||
|
|
0f6e3c9497 | ||
|
|
88078111b4 | ||
|
|
0601a9fda7 | ||
|
|
05d9f7c057 | ||
|
|
34903dd979 | ||
|
|
3ba317c4e4 | ||
|
|
6bbb4f5de8 | ||
|
|
4ab4d14a4e | ||
|
|
d9e5b9404d | ||
|
|
e5d4f3c9f0 | ||
|
|
46ba9b4c4a | ||
|
|
9b6231915a | ||
|
|
6d8e7abff7 | ||
|
|
932b263c5a | ||
|
|
aef8b3b6cc | ||
|
|
be50fb86d7 | ||
|
|
73d2248ccb | ||
|
|
48937855d4 | ||
|
|
802e596f06 | ||
|
|
b6751a94c2 | ||
|
|
8b0c71dbdf | ||
|
|
2f7fa481a3 | ||
|
|
ffc006bd99 | ||
|
|
ea74d388b0 | ||
|
|
d4bd8d66e8 | ||
|
|
3a81e16490 | ||
|
|
4ea2b9cc36 | ||
|
|
407ebc56d7 | ||
|
|
f9e3419f39 | ||
|
|
b03371d69a | ||
|
|
58251eefb7 | ||
|
|
74036ed6d9 | ||
|
|
bfa1234feb | ||
|
|
6535ce113a | ||
|
|
dd8d219e73 | ||
|
|
1576e730ea | ||
|
|
7fc158c914 | ||
|
|
f9588f47d0 | ||
|
|
2eaa158e80 | ||
|
|
3f05d9fcbc | ||
|
|
3d2b155b79 | ||
|
|
3df3b93348 | ||
|
|
790b483298 | ||
|
|
d80c1a93db | ||
|
|
e8d2408477 | ||
|
|
fcc8c10c2b | ||
|
|
3063840b6d | ||
|
|
a3c5f9a74f | ||
|
|
e85bebee12 | ||
|
|
30d416b822 | ||
|
|
e1a32b1466 | ||
|
|
d02d7445cd | ||
|
|
0785bcba93 | ||
|
|
9d01996ae6 | ||
|
|
8c705753df | ||
|
|
c7fc86e54d | ||
|
|
9eb65ec891 | ||
|
|
92891af6b6 | ||
|
|
c0d299892e | ||
|
|
9a63550a9b | ||
|
|
25506410d0 | ||
|
|
102c0eb795 | ||
|
|
4605cb5c39 | ||
|
|
f8bf76c150 | ||
|
|
977bd96241 | ||
|
|
5224c09faf | ||
|
|
f342bd9d3a | ||
|
|
5516a5f764 | ||
|
|
15fcd0a722 | ||
|
|
a867f767d9 | ||
|
|
e84640501d | ||
|
|
e627594989 | ||
|
|
7963ac77b9 | ||
|
|
fe6272bf3a | ||
|
|
7fc902dea1 | ||
|
|
e61ce4e4be | ||
|
|
18b0a9703e | ||
|
|
4994d8ac21 | ||
|
|
12dd1de858 | ||
|
|
d928fcd5d6 | ||
|
|
bb52bfdecb | ||
|
|
7f38aec32a | ||
|
|
af6b78a094 | ||
|
|
2d280a80fd | ||
|
|
0781b72c1d | ||
|
|
9280538e08 | ||
|
|
0b1ff3f9b6 | ||
|
|
3855b30d1b | ||
|
|
9dedfe0264 | ||
|
|
0d6e147df3 | ||
|
|
8bab8124cd | ||
|
|
b051288804 | ||
|
|
b4d2c34217 | ||
|
|
2af78a37d5 | ||
|
|
b5b18babe8 | ||
|
|
723b7ce190 | ||
|
|
6c02b9dc4a | ||
|
|
58bfdc04a0 | ||
|
|
d371b5ad09 | ||
|
|
258ae8e654 | ||
|
|
dc7e5b5a4f | ||
|
|
329b2def38 | ||
|
|
56dc224e16 | ||
|
|
de04e342e8 | ||
|
|
80e12a8599 | ||
|
|
64bb6129a8 | ||
|
|
53ffc12a99 | ||
|
|
9b173f3ff2 | ||
|
|
e5046db928 | ||
|
|
2638d222e7 | ||
|
|
a0d15fb595 | ||
|
|
81d8289158 | ||
|
|
6c5f2c5c64 | ||
|
|
85613aac00 | ||
|
|
9a86a9fe85 | ||
|
|
69df66b471 | ||
|
|
665e1b4f67 | ||
|
|
93c68cc903 | ||
|
|
19f5191a5d | ||
|
|
d10aed8fe5 | ||
|
|
78f014cad3 | ||
|
|
53464e0971 | ||
|
|
e7100c4cba | ||
|
|
33e61634be | ||
|
|
5518810889 | ||
|
|
e54a25da78 | ||
|
|
aa0472e5c5 | ||
|
|
f3f50b87af | ||
|
|
e4294a5e38 | ||
|
|
b5e8383342 | ||
|
|
141063117e | ||
|
|
d4e799b202 | ||
|
|
fcacb82c57 | ||
|
|
60a7159a4d | ||
|
|
7eee58d5c1 | ||
|
|
475a1b1d15 | ||
|
|
c6b7d2a5cc | ||
|
|
3a2956a2c6 | ||
|
|
30435c5371 | ||
|
|
1192005c19 | ||
|
|
4e7c5b0d1b | ||
|
|
db11b2be27 | ||
|
|
5654345b2a | ||
|
|
8ba5b73dab | ||
|
|
5e47496704 | ||
|
|
585dbe0d10 | ||
|
|
0d47875dec | ||
|
|
a904cac016 | ||
|
|
553a857cb6 | ||
|
|
4e56f88463 | ||
|
|
b311256cc1 | ||
|
|
5c6776d120 | ||
|
|
4a9c011b93 | ||
|
|
54352825fd | ||
|
|
3b75962ec1 | ||
|
|
3db6fa5bdb | ||
|
|
04753e56e4 | ||
|
|
b6244075a7 | ||
|
|
7c45179248 | ||
|
|
eb96285a5c | ||
|
|
584976fc49 | ||
|
|
ad8602a3d5 | ||
|
|
f27e4ef892 | ||
|
|
41d703d825 | ||
|
|
8af500237d | ||
|
|
6e2e5cbfe4 | ||
|
|
935f7acfa2 | ||
|
|
c588de84f3 | ||
|
|
54c281475c | ||
|
|
3ac37e06bb | ||
|
|
86e53360ac | ||
|
|
16d6c7c9b1 | ||
|
|
cb81bec042 | ||
|
|
3ab28e8201 | ||
|
|
f50c457dc4 | ||
|
|
b589e5b0ff | ||
|
|
1aab15fb4e | ||
|
|
5b2709bee7 | ||
|
|
0e617122dc | ||
|
|
41ed81d1ec | ||
|
|
2c0596baf6 | ||
|
|
1a92389334 | ||
|
|
2199dd4e05 | ||
|
|
eed0baec53 | ||
|
|
740a47d061 | ||
|
|
442dd929e6 | ||
|
|
f3201adc05 | ||
|
|
d851df6709 | ||
|
|
0ffd8efeb3 | ||
|
|
045f51ed96 | ||
|
|
2e7644b2ea | ||
|
|
26a518e63f | ||
|
|
5e7e9fa2ae | ||
|
|
16ed79fef1 | ||
|
|
784b0458bb | ||
|
|
e25e853de6 | ||
|
|
0f181905eb | ||
|
|
9ce74800dc | ||
|
|
acc3e7f249 | ||
|
|
8b6e40b32e | ||
|
|
f6441c0674 | ||
|
|
c141742b6a | ||
|
|
df3d010c65 | ||
|
|
c3ded3999f | ||
|
|
a580d87876 | ||
|
|
e238577f36 | ||
|
|
0a8e543150 | ||
|
|
155cb03131 | ||
|
|
4da2fd32e2 | ||
|
|
5f99cdeced | ||
|
|
78a63d5cea | ||
|
|
7c83717ca8 | ||
|
|
580a71e6c5 | ||
|
|
ba232c58b7 | ||
|
|
bf44d7b55b | ||
|
|
3a450b717a | ||
|
|
2516a06ad3 | ||
|
|
243dc44eb9 | ||
|
|
537ef2c6c8 | ||
|
|
88affae2db | ||
|
|
19006c6e2a | ||
|
|
918e25bb77 | ||
|
|
8d4736c91b | ||
|
|
e611715d54 | ||
|
|
e21bf2b3dd | ||
|
|
8d33797ec3 | ||
|
|
f904c377b3 | ||
|
|
0909523ba2 | ||
|
|
0a109e460f | ||
|
|
8feddb3a82 | ||
|
|
e9cf2829da | ||
|
|
8dccebff01 | ||
|
|
49378f79cf | ||
|
|
87b0064d7a | ||
|
|
574ea020c1 | ||
|
|
267029278f | ||
|
|
06fa6d656a | ||
|
|
94f0eb060b | ||
|
|
d3ab27b221 | ||
|
|
7464244dfa | ||
|
|
0df72c81cc | ||
|
|
d7d03fd7a3 | ||
|
|
8b8b087f9a | ||
|
|
c45fb1b76f | ||
|
|
8356c0dab5 | ||
|
|
1dcd79f758 | ||
|
|
5741cdee9a | ||
|
|
25a6bf9dc8 | ||
|
|
1630e2d2ba | ||
|
|
dcf54f50df | ||
|
|
651f26ff71 | ||
|
|
af1ea8ee8d | ||
|
|
9dcedc7c0e | ||
|
|
c958a1c094 | ||
|
|
26c2f1e414 | ||
|
|
8fb510cb48 | ||
|
|
1806022657 | ||
|
|
779ec310fe | ||
|
|
320dccf19c | ||
|
|
1bc7799b75 | ||
|
|
ab7d0278cc | ||
|
|
85f46e8024 | ||
|
|
ca1d56378a | ||
|
|
86fac90de5 | ||
|
|
3aefeb6a3f | ||
|
|
2f239ff21c | ||
|
|
7a5ba6807f | ||
|
|
b75552a1ea | ||
|
|
0b3d02548a | ||
|
|
6d476b403b | ||
|
|
5b19c0c664 | ||
|
|
fa93b8256b | ||
|
|
4d1e80bccd | ||
|
|
a72704bdc4 | ||
|
|
4e430e2b59 | ||
|
|
c9ab9a339b | ||
|
|
72e10e06d4 | ||
|
|
c571b427e0 | ||
|
|
1d3c74a17e | ||
|
|
eb6851de3c | ||
|
|
e452a97b92 | ||
|
|
0acd0765ca | ||
|
|
98e6b2b349 | ||
|
|
f2b078e4f1 | ||
|
|
9e157c43f7 | ||
|
|
14745bd8ff | ||
|
|
4c8d9e1467 | ||
|
|
aa379e8369 | ||
|
|
88d6f577ef | ||
|
|
193dbad0f0 | ||
|
|
1922d5e3b0 | ||
|
|
297a950385 | ||
|
|
180975f452 | ||
|
|
21773cd948 | ||
|
|
b3dc4f696c | ||
|
|
176a4dcf0f | ||
|
|
1eedcbac68 | ||
|
|
49f7677b37 | ||
|
|
3b9740fe8b | ||
|
|
9bb4f088a6 | ||
|
|
a0e7c662fb | ||
|
|
f849e5ecb7 | ||
|
|
bb64cada7f | ||
|
|
8f439948e3 | ||
|
|
1e64bc78a1 | ||
|
|
b9d07ff962 | ||
|
|
f3c33f0be6 | ||
|
|
c68cb240b5 | ||
|
|
15d0706ba9 | ||
|
|
0b29882a8a | ||
|
|
4ae98a5b52 | ||
|
|
abc66309f4 | ||
|
|
3ea62dfc2f | ||
|
|
83f90ff261 | ||
|
|
0078b8a0f8 | ||
|
|
52de128716 | ||
|
|
0565b2c7b3 | ||
|
|
99c031e38d | ||
|
|
030a59c758 | ||
|
|
bc1bfefbf0 | ||
|
|
c651b0f413 | ||
|
|
f9ed61488f | ||
|
|
644a76a199 | ||
|
|
58c87e9299 | ||
|
|
59fbea84a4 | ||
|
|
9877cbff81 | ||
|
|
3562e9c3a2 | ||
|
|
dbbe5b2e99 | ||
|
|
aba6ab1a86 | ||
|
|
5a07d47096 | ||
|
|
085b615370 | ||
|
|
7b91a2b8a5 | ||
|
|
af82d3c81f | ||
|
|
4066d30195 | ||
|
|
b319b2de30 | ||
|
|
b961579018 | ||
|
|
69ce967bed | ||
|
|
c1e648b730 | ||
|
|
1b1413416f | ||
|
|
d787aaab5a | ||
|
|
c4a3bd47a8 | ||
|
|
5f1aee8a4c | ||
|
|
8abba7a676 | ||
|
|
17fe4faccb |
326
INSTALLATION_GUIDE.md
Normal file
@@ -0,0 +1,326 @@
|
|||||||
|
# LED Matrix Installation Guide
|
||||||
|
|
||||||
|
## Quick Start (Recommended for First-Time Installation)
|
||||||
|
|
||||||
|
# System Setup & Installation
|
||||||
|
|
||||||
|
1. Open PowerShell and ssh into your Raspberry Pi with ledpi@ledpi (or Username@Hostname)
|
||||||
|
```bash
|
||||||
|
ssh ledpi@ledpi
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Update repositories, upgrade raspberry pi OS, install git
|
||||||
|
```bash
|
||||||
|
sudo apt update && sudo apt upgrade -y
|
||||||
|
sudo apt install -y git python3-pip cython3 build-essential python3-dev python3-pillow scons
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Clone this repository:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/ChuckBuilds/LEDMatrix.git
|
||||||
|
cd LEDMatrix
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Install dependencies:
|
||||||
|
```bash
|
||||||
|
sudo pip3 install --break-system-packages -r requirements.txt
|
||||||
|
```
|
||||||
|
--break-system-packages allows us to install without a virtual environment
|
||||||
|
|
||||||
|
|
||||||
|
5. Install rpi-rgb-led-matrix dependencies:
|
||||||
|
```bash
|
||||||
|
cd rpi-rgb-led-matrix-master
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
sudo make build-python PYTHON=$(which python3)
|
||||||
|
```
|
||||||
|
```bash
|
||||||
|
cd bindings/python
|
||||||
|
sudo python3 setup.py install
|
||||||
|
```
|
||||||
|
Test it with:
|
||||||
|
```bash
|
||||||
|
python3 -c 'from rgbmatrix import RGBMatrix, RGBMatrixOptions; print("Success!")'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Important: Sound Module Configuration
|
||||||
|
|
||||||
|
1. Remove unnecessary services that might interfere with the LED matrix:
|
||||||
|
```bash
|
||||||
|
sudo apt-get remove bluez bluez-firmware pi-bluetooth triggerhappy pigpio
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Blacklist the sound module:
|
||||||
|
```bash
|
||||||
|
cat <<EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf
|
||||||
|
blacklist snd_bcm2835
|
||||||
|
EOF
|
||||||
|
```
|
||||||
|
|
||||||
|
then execute
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo update-initramfs -u
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Reboot:
|
||||||
|
```bash
|
||||||
|
sudo reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
## Performance Optimization
|
||||||
|
|
||||||
|
To reduce flickering and improve display quality:
|
||||||
|
|
||||||
|
1. Edit `/boot/firmware/cmdline.txt`:
|
||||||
|
```bash
|
||||||
|
sudo nano /boot/firmware/cmdline.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Add `isolcpus=3` at the end of the line
|
||||||
|
|
||||||
|
3. Ctrl + X to exit, Y to save, Enter to Confirm
|
||||||
|
|
||||||
|
4. Edit /boot/firmware/config.txt with
|
||||||
|
```bash
|
||||||
|
sudo nano /boot/firmware/config.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Edit the `dtparam=audio=on` section to `dtparam=audio=off`
|
||||||
|
|
||||||
|
7. Ctrl + X to exit, Y to save, Enter to Confirm
|
||||||
|
|
||||||
|
8. Save and reboot:
|
||||||
|
```bash
|
||||||
|
sudo reboot
|
||||||
|
```
|
||||||
|
|
||||||
|
9. Run the first_time_install.sh with
|
||||||
|
```
|
||||||
|
sudo ./first_time_install.sh
|
||||||
|
```
|
||||||
|
to ensure all the permissions are correct.
|
||||||
|
|
||||||
|
10. Then run
|
||||||
|
|
||||||
|
```
|
||||||
|
sudo python start_web_conditionally.py
|
||||||
|
```
|
||||||
|
to start the web ui and download the r
|
||||||
|
-----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
1.Edit `config/config.json` with your preferences via `sudo nano config/config.json`
|
||||||
|
|
||||||
|
###API Keys
|
||||||
|
|
||||||
|
For sensitive settings like API keys:
|
||||||
|
Copy the template: `cp config/config_secrets.template.json config/config_secrets.json`
|
||||||
|
Edit `config/config_secrets.json` with your API keys via `sudo nano config/config_secrets.json`
|
||||||
|
Ctrl + X to exit, Y to overwrite, Enter to Confirm
|
||||||
|
|
||||||
|
Everything is configured via `config/config.json` and `config/config_secrets.json`.
|
||||||
|
|
||||||
|
|
||||||
|
For a complete first-time installation, run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod +x first_time_install.sh
|
||||||
|
```
|
||||||
|
then
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ./first_time_install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
This single script handles everything you need for a new installation.
|
||||||
|
|
||||||
|
## Individual Scripts Explained
|
||||||
|
|
||||||
|
### **First-Time Installation Scripts**
|
||||||
|
|
||||||
|
#### `first_time_install.sh` ⭐ **RECOMMENDED**
|
||||||
|
- **When to use**: New installations only
|
||||||
|
- **What it does**: Complete setup including all steps below
|
||||||
|
- **Usage**: `sudo ./first_time_install.sh`
|
||||||
|
|
||||||
|
### **Service Installation Scripts**
|
||||||
|
|
||||||
|
#### `install_service.sh`
|
||||||
|
- **When to use**: Install main LED Matrix display service
|
||||||
|
- **What it does**:
|
||||||
|
- Creates systemd service for main display
|
||||||
|
- Creates systemd service for web interface
|
||||||
|
- Enables services to start on boot
|
||||||
|
- **Usage**: `sudo ./install_service.sh`
|
||||||
|
|
||||||
|
#### `install_web_service.sh`
|
||||||
|
- **When to use**: Install only the web interface service (legacy)
|
||||||
|
- **What it does**: Installs the web interface systemd service
|
||||||
|
- **Usage**: `sudo ./install_web_service.sh`
|
||||||
|
- **Note**: `install_service.sh` now handles this automatically
|
||||||
|
|
||||||
|
### **Permission Fix Scripts**
|
||||||
|
|
||||||
|
#### `fix_cache_permissions.sh`
|
||||||
|
- **When to use**: When you see cache permission errors
|
||||||
|
- **What it does**:
|
||||||
|
- Creates cache directories (`/var/cache/ledmatrix`)
|
||||||
|
- Sets proper permissions for cache access
|
||||||
|
- Creates placeholder logo directories
|
||||||
|
- **Usage**: `sudo ./fix_cache_permissions.sh`
|
||||||
|
|
||||||
|
#### `fix_web_permissions.sh`
|
||||||
|
- **When to use**: When web interface can't access logs or system commands
|
||||||
|
- **What it does**:
|
||||||
|
- Adds user to `systemd-journal` group (for log access)
|
||||||
|
- Adds user to `adm` group (for system access)
|
||||||
|
- Sets proper file ownership
|
||||||
|
- **Usage**: `./fix_web_permissions.sh` (run as regular user)
|
||||||
|
|
||||||
|
#### `configure_web_sudo.sh`
|
||||||
|
- **When to use**: When web interface buttons don't work (sudo password errors)
|
||||||
|
- **What it does**:
|
||||||
|
- Configures passwordless sudo access for web interface
|
||||||
|
- Allows web interface to start/stop services without password
|
||||||
|
- **Usage**: `./configure_web_sudo.sh` (run as regular user)
|
||||||
|
|
||||||
|
### **Dependency Installation Scripts**
|
||||||
|
|
||||||
|
#### `install_dependencies_apt.py`
|
||||||
|
- **When to use**: When you want to install packages via apt first, then pip
|
||||||
|
- **What it does**:
|
||||||
|
- Tries to install packages via apt (system packages)
|
||||||
|
- Falls back to pip with `--break-system-packages`
|
||||||
|
- Handles externally managed Python environments
|
||||||
|
- **Usage**: `sudo python3 install_dependencies_apt.py`
|
||||||
|
|
||||||
|
#### `start_web_v2.py`
|
||||||
|
- **When to use**: Manual web interface startup
|
||||||
|
- **What it does**:
|
||||||
|
- Installs dependencies
|
||||||
|
- Starts web interface directly
|
||||||
|
- Includes comprehensive logging
|
||||||
|
- **Usage**: `python3 start_web_v2.py`
|
||||||
|
|
||||||
|
#### `run_web_v2.sh`
|
||||||
|
- **When to use**: Manual web interface startup (shell script version)
|
||||||
|
- **What it does**: Same as `start_web_v2.py` but as a shell script
|
||||||
|
- **Usage**: `./run_web_v2.sh`
|
||||||
|
|
||||||
|
### **Utility Scripts**
|
||||||
|
|
||||||
|
#### `cleanup_venv.sh`
|
||||||
|
- **When to use**: Remove virtual environment if you don't want to use it
|
||||||
|
- **What it does**: Removes `venv_web_v2` directory
|
||||||
|
- **Usage**: `./cleanup_venv.sh`
|
||||||
|
|
||||||
|
#### `start_web_conditionally.py`
|
||||||
|
- **When to use**: Called by systemd service (don't run manually)
|
||||||
|
- **What it does**:
|
||||||
|
- Checks config for `web_display_autostart` setting
|
||||||
|
- Starts web interface only if enabled
|
||||||
|
- Used by the systemd service
|
||||||
|
|
||||||
|
## Installation Scenarios
|
||||||
|
|
||||||
|
### **Scenario 1: Brand New Installation**
|
||||||
|
```bash
|
||||||
|
# One command does everything
|
||||||
|
sudo ./first_time_install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### **Scenario 2: Adding Web Interface to Existing Installation**
|
||||||
|
```bash
|
||||||
|
# Install web interface dependencies
|
||||||
|
sudo python3 install_dependencies_apt.py
|
||||||
|
|
||||||
|
# Fix permissions
|
||||||
|
./fix_web_permissions.sh
|
||||||
|
|
||||||
|
# Configure sudo access
|
||||||
|
./configure_web_sudo.sh
|
||||||
|
|
||||||
|
# Install services
|
||||||
|
sudo ./install_service.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### **Scenario 3: Fixing Permission Issues**
|
||||||
|
```bash
|
||||||
|
# Fix cache permissions
|
||||||
|
sudo ./fix_cache_permissions.sh
|
||||||
|
|
||||||
|
# Fix web interface permissions
|
||||||
|
./fix_web_permissions.sh
|
||||||
|
|
||||||
|
# Configure sudo access
|
||||||
|
./configure_web_sudo.sh
|
||||||
|
|
||||||
|
# Log out and back in for group changes to take effect
|
||||||
|
```
|
||||||
|
|
||||||
|
### **Scenario 4: Manual Web Interface Startup**
|
||||||
|
```bash
|
||||||
|
# Start web interface manually (for testing)
|
||||||
|
python3 start_web_v2.py
|
||||||
|
```
|
||||||
|
|
||||||
|
## Post-Installation Steps
|
||||||
|
|
||||||
|
### **1. Log Out and Log Back In**
|
||||||
|
After running permission scripts, you need to log out and back in for group changes to take effect:
|
||||||
|
```bash
|
||||||
|
# Or use this command to apply group changes immediately
|
||||||
|
newgrp systemd-journal
|
||||||
|
```
|
||||||
|
|
||||||
|
### **2. Configure the Web Interface**
|
||||||
|
Edit `config/config.json` and set:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"web_display_autostart": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### **3. Access the Web Interface**
|
||||||
|
Open your browser and go to:
|
||||||
|
```
|
||||||
|
http://your-pi-ip:5001
|
||||||
|
```
|
||||||
|
|
||||||
|
### **4. Test Everything**
|
||||||
|
- Check if services are running: `sudo systemctl status ledmatrix.service`
|
||||||
|
- Check web interface: `sudo systemctl status ledmatrix-web.service`
|
||||||
|
- View logs: `journalctl -u ledmatrix.service -f`
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### **Web Interface Not Accessible**
|
||||||
|
1. Check if service is running: `sudo systemctl status ledmatrix-web.service`
|
||||||
|
2. Check logs: `journalctl -u ledmatrix-web.service -f`
|
||||||
|
3. Ensure `web_display_autostart` is `true` in config
|
||||||
|
|
||||||
|
### **Permission Errors**
|
||||||
|
1. Run: `./fix_web_permissions.sh`
|
||||||
|
2. Run: `./configure_web_sudo.sh`
|
||||||
|
3. Log out and back in
|
||||||
|
|
||||||
|
### **Cache Permission Errors**
|
||||||
|
1. Run: `sudo ./fix_cache_permissions.sh`
|
||||||
|
|
||||||
|
### **Sudo Password Prompts**
|
||||||
|
1. Run: `./configure_web_sudo.sh`
|
||||||
|
2. Log out and back in
|
||||||
|
|
||||||
|
### **Dependency Installation Errors**
|
||||||
|
1. Run: `sudo python3 install_dependencies_apt.py`
|
||||||
|
|
||||||
|
## Summary
|
||||||
|
|
||||||
|
For **first-time installations**: Use `first_time_install.sh`
|
||||||
|
|
||||||
|
For **existing installations with issues**: Use the individual permission and configuration scripts as needed.
|
||||||
|
|
||||||
|
The `first_time_install.sh` script is designed to handle everything automatically, so you typically only need to run individual scripts if you're troubleshooting specific issues.
|
||||||
1
LEDMatrix.wiki
Submodule
625
README.md
@@ -1,7 +1,21 @@
|
|||||||
# LEDMatrix
|
# LEDMatrix
|
||||||
An LED matrix display system that provides real-time information display capabilities for various data sources. The system is highly configurable and supports multiple display modes that can be enabled or disabled based on user preferences.
|
|
||||||
|
|
||||||
Special Thanks to:
|
|
||||||
|
### Setup video and feature walkthrough on Youtube :
|
||||||
|
[](https://www.youtube.com/watch?v=_HaqfJy1Y54)
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------
|
||||||
|
### Connect with ChuckBuilds
|
||||||
|
|
||||||
|
- Show support on Youtube: https://www.youtube.com/@ChuckBuilds
|
||||||
|
- Check out the write-up on my website: https://www.chuck-builds.com/led-matrix/
|
||||||
|
- Stay in touch on Instagram: https://www.instagram.com/ChuckBuilds/
|
||||||
|
- Want to chat? Reach out on the ChuckBuilds Discord: https://discord.com/invite/uW36dVAtcT
|
||||||
|
- Feeling Generous? Buy Me a Coffee : https://buymeacoffee.com/chuckbuilds
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
### Special Thanks to:
|
||||||
- Hzeller @ https://github.com/hzeller/rpi-rgb-led-matrix for his groundwork on controlling an LED Matrix from the Raspberry Pi
|
- Hzeller @ https://github.com/hzeller/rpi-rgb-led-matrix for his groundwork on controlling an LED Matrix from the Raspberry Pi
|
||||||
- Basmilius @ https://github.com/basmilius/weather-icons/ for his free and extensive weather icons
|
- Basmilius @ https://github.com/basmilius/weather-icons/ for his free and extensive weather icons
|
||||||
- nvstly @ https://github.com/nvstly/icons for their Stock and Crypto Icons
|
- nvstly @ https://github.com/nvstly/icons for their Stock and Crypto Icons
|
||||||
@@ -48,6 +62,7 @@ The system supports live, recent, and upcoming game information for multiple spo
|
|||||||
- Soccer
|
- Soccer
|
||||||
- (Note, some of these sports seasons were not active during development and might need fine tuning when games are active)
|
- (Note, some of these sports seasons were not active during development and might need fine tuning when games are active)
|
||||||
|
|
||||||
|
|
||||||
### Financial Information
|
### Financial Information
|
||||||
- Near real-time stock & crypto price updates
|
- Near real-time stock & crypto price updates
|
||||||
- Stock news headlines
|
- Stock news headlines
|
||||||
@@ -231,17 +246,30 @@ sudo nano /boot/firmware/config.txt
|
|||||||
sudo reboot
|
sudo reboot
|
||||||
```
|
```
|
||||||
|
|
||||||
|
9. Run the first_time_install.sh with
|
||||||
|
|
||||||
|
```bash
|
||||||
|
chmod +x first_time_install.sh
|
||||||
|
```
|
||||||
|
then
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo ./first_time_install.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
to ensure all the permissions are correct.
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
|
|
||||||
1.Edit `config/config.json` with your preferences via `sudo nano config/config.json`
|
1.Edit `config/config.json` with your preferences via `sudo nano config/config.json`
|
||||||
|
|
||||||
###API Keys
|
###API Keys
|
||||||
|
|
||||||
For sensitive settings like API keys:
|
For sensitive settings like API keys:
|
||||||
Copy the template: `cp config/config_secrets.template.json config/config_secrets.json`
|
Copy the template: `cp config/config_secrets.template.json config/config_secrets.json`
|
||||||
Edit `config/config_secrets.json` with your API keys via `sudo nano config/config_secrets.json`
|
Edit `config/config_secrets.json` with your API keys via `sudo nano config/config_secrets.json`
|
||||||
Ctrl + X to exit, Y to overwrite, Enter to Confirm
|
Ctrl + X to exit, Y to overwrite, Enter to Confirm
|
||||||
|
|
||||||
Everything is configured via `config/config.json` and `config/config_secrets.json`.
|
Everything is configured via `config/config.json` and `config/config_secrets.json`.
|
||||||
@@ -285,6 +313,251 @@ The calendar display will show:
|
|||||||
- Event title (wrapped to fit the display)
|
- Event title (wrapped to fit the display)
|
||||||
- Up to 3 upcoming events (configurable)
|
- Up to 3 upcoming events (configurable)
|
||||||
|
|
||||||
|
## Odds Ticker Configuration
|
||||||
|
|
||||||
|
The odds ticker displays betting odds for upcoming sports games. To configure it:
|
||||||
|
|
||||||
|
1. In `config/config.json`, add the following section:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"odds_ticker": {
|
||||||
|
"enabled": true,
|
||||||
|
"enabled_leagues": ["nfl", "nba", "mlb", "ncaa_fb"],
|
||||||
|
"update_interval": 3600,
|
||||||
|
"scroll_speed": 2,
|
||||||
|
"scroll_delay": 0.05,
|
||||||
|
"display_duration": 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration Options
|
||||||
|
|
||||||
|
- **`enabled`**: Enable/disable the odds ticker (default: false)
|
||||||
|
- **`enabled_leagues`**: Array of leagues to display (options: "nfl", "nba", "mlb", "ncaa_fb")
|
||||||
|
- **`update_interval`**: How often to fetch new odds data in seconds (default: 3600)
|
||||||
|
- **`scroll_speed`**: Pixels to scroll per update (default: 1)
|
||||||
|
- **`scroll_delay`**: Delay between scroll updates in seconds (default: 0.05)
|
||||||
|
- **`display_duration`**: How long to show each game in seconds (default: 30)
|
||||||
|
|
||||||
|
**How it works:**
|
||||||
|
- The ticker intelligently filters games based on the `"show_favorite_teams_only"` setting within each individual sport's configuration block (e.g., `"nfl_scoreboard"`). If set to `true` for a sport, only favorite teams from that sport will appear in the ticker.
|
||||||
|
- Games are sorted by the soonest start time.
|
||||||
|
|
||||||
|
### Display Format
|
||||||
|
|
||||||
|
The odds ticker shows information in this format:
|
||||||
|
```
|
||||||
|
[12:00 PM] DAL -6.5 ML -200 O/U 47.5 vs NYG ML +175
|
||||||
|
```
|
||||||
|
|
||||||
|
Where:
|
||||||
|
- `[12:00 PM]` - Game time in local timezone
|
||||||
|
- `DAL` - Away team abbreviation
|
||||||
|
- `-6.5` - Spread for away team (negative = favored)
|
||||||
|
- `ML -200` - Money line for away team
|
||||||
|
- `O/U 47.5` - Over/under total
|
||||||
|
- `vs` - Separator
|
||||||
|
- `NYG` - Home team abbreviation
|
||||||
|
- `ML +175` - Money line for home team
|
||||||
|
|
||||||
|
### Team Logos
|
||||||
|
|
||||||
|
The ticker displays team logos alongside the text:
|
||||||
|
- Away team logo appears to the left of the text
|
||||||
|
- Home team logo appears to the right of the text
|
||||||
|
- Logos are automatically resized to fit the display
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
- ESPN API access for odds data
|
||||||
|
- Team logo files in the appropriate directories:
|
||||||
|
- `assets/sports/nfl_logos/`
|
||||||
|
- `assets/sports/nba_logos/`
|
||||||
|
- `assets/sports/mlb_logos/`
|
||||||
|
- `assets/sports/ncaa_fbs_logos/`
|
||||||
|
|
||||||
|
### Troubleshooting
|
||||||
|
|
||||||
|
**No Games Displayed:**
|
||||||
|
1. **League Configuration**: Ensure the leagues you want are enabled in their respective config sections
|
||||||
|
2. **Favorite Teams**: If `show_favorite_teams_only` is true, ensure you have favorite teams configured
|
||||||
|
3. **API Access**: Verify ESPN API is accessible and returning data
|
||||||
|
4. **Time Window**: The ticker only shows games in the next 7 days
|
||||||
|
|
||||||
|
**No Odds Data:**
|
||||||
|
1. **API Timing**: Odds may not be available immediately when games are scheduled
|
||||||
|
2. **League Support**: Not all leagues may have odds data available
|
||||||
|
3. **API Limits**: ESPN API may have rate limits or temporary issues
|
||||||
|
|
||||||
|
**Performance Issues:**
|
||||||
|
1. **Reduce scroll_speed**: Try setting it to 1 instead of 2
|
||||||
|
2. **Increase scroll_delay**: Try 0.1 instead of 0.05
|
||||||
|
3. **Check system resources**: Ensure the Raspberry Pi has adequate resources
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
|
||||||
|
You can test the odds ticker functionality using:
|
||||||
|
```bash
|
||||||
|
python test_odds_ticker.py
|
||||||
|
```
|
||||||
|
|
||||||
|
This will:
|
||||||
|
1. Initialize the odds ticker
|
||||||
|
2. Fetch upcoming games and odds
|
||||||
|
3. Display sample games
|
||||||
|
4. Test the scrolling functionality
|
||||||
|
|
||||||
|
## Stocks Configuration
|
||||||
|
|
||||||
|
The stocks display shows real-time stock and crypto prices in a scrolling ticker format. To configure it:
|
||||||
|
|
||||||
|
1. In `config/config.json`, add the following section:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"stocks": {
|
||||||
|
"enabled": true,
|
||||||
|
"symbols": ["AAPL", "MSFT", "GOOGL", "TSLA"],
|
||||||
|
"update_interval": 600,
|
||||||
|
"scroll_speed": 1,
|
||||||
|
"scroll_delay": 0.01,
|
||||||
|
"toggle_chart": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration Options
|
||||||
|
|
||||||
|
- **`enabled`**: Enable/disable the stocks display (default: false)
|
||||||
|
- **`symbols`**: Array of stock symbols to display (e.g., ["AAPL", "MSFT", "GOOGL"])
|
||||||
|
- **`update_interval`**: How often to fetch new stock data in seconds (default: 600)
|
||||||
|
- **`scroll_speed`**: Pixels to scroll per update (default: 1)
|
||||||
|
- **`scroll_delay`**: Delay between scroll updates in seconds (default: 0.01)
|
||||||
|
- **`toggle_chart`**: Enable/disable mini charts in the scrolling ticker (default: false)
|
||||||
|
|
||||||
|
### Display Format
|
||||||
|
|
||||||
|
The stocks display shows information in this format:
|
||||||
|
```
|
||||||
|
[Logo] SYMBOL
|
||||||
|
$PRICE
|
||||||
|
+CHANGE (+PERCENT%)
|
||||||
|
```
|
||||||
|
|
||||||
|
Where:
|
||||||
|
- `[Logo]` - Stock/crypto logo (if available)
|
||||||
|
- `SYMBOL` - Stock symbol (e.g., AAPL, MSFT)
|
||||||
|
- `$PRICE` - Current stock price
|
||||||
|
- `+CHANGE` - Price change (green for positive, red for negative)
|
||||||
|
- `+PERCENT%` - Percentage change
|
||||||
|
|
||||||
|
### Chart Toggle Feature
|
||||||
|
|
||||||
|
The `toggle_chart` setting controls whether mini price charts are displayed alongside each stock:
|
||||||
|
|
||||||
|
- **`"toggle_chart": true`**: Shows mini line charts on the right side of each stock display
|
||||||
|
- **`"toggle_chart": false`**: Shows only text information (symbol, price, change)
|
||||||
|
|
||||||
|
When charts are disabled, the text is centered more prominently on the display.
|
||||||
|
|
||||||
|
### Crypto Support
|
||||||
|
|
||||||
|
The system also supports cryptocurrency symbols. Add crypto symbols to the `symbols` array:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"stocks": {
|
||||||
|
"enabled": true,
|
||||||
|
"symbols": ["AAPL", "MSFT", "BTC-USD", "ETH-USD"],
|
||||||
|
"update_interval": 600,
|
||||||
|
"scroll_speed": 1,
|
||||||
|
"scroll_delay": 0.01,
|
||||||
|
"toggle_chart": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
- Yahoo Finance API access for stock data
|
||||||
|
- Stock/crypto logo files in the appropriate directories:
|
||||||
|
- `assets/stocks/ticker_icons/` (for stocks)
|
||||||
|
- `assets/stocks/crypto_icons/` (for cryptocurrencies)
|
||||||
|
|
||||||
|
### Troubleshooting
|
||||||
|
|
||||||
|
**No Stock Data Displayed:**
|
||||||
|
1. **Symbol Format**: Ensure stock symbols are correct (e.g., "AAPL" not "apple")
|
||||||
|
2. **API Access**: Verify Yahoo Finance API is accessible
|
||||||
|
3. **Market Hours**: Some data may be limited during off-hours
|
||||||
|
4. **Symbol Validity**: Check that symbols exist and are actively traded
|
||||||
|
|
||||||
|
**Performance Issues:**
|
||||||
|
1. **Reduce scroll_speed**: Try setting it to 1 instead of higher values
|
||||||
|
2. **Increase scroll_delay**: Try 0.05 instead of 0.01 for smoother scrolling
|
||||||
|
3. **Reduce symbols**: Limit the number of symbols to improve performance
|
||||||
|
|
||||||
|
### Testing
|
||||||
|
|
||||||
|
You can test the stocks functionality using:
|
||||||
|
```bash
|
||||||
|
python test/test_stock_toggle_chart.py
|
||||||
|
```
|
||||||
|
|
||||||
|
This will:
|
||||||
|
1. Test the toggle_chart functionality
|
||||||
|
2. Verify configuration loading
|
||||||
|
3. Test cache clearing behavior
|
||||||
|
|
||||||
|
## Football Game-Based Configuration (NFL & NCAA FB)
|
||||||
|
|
||||||
|
For NFL and NCAA Football, the system now uses a game-based fetch approach instead of time-based windows. This is more practical for football since games are weekly and you want to show specific numbers of games rather than arbitrary time periods.
|
||||||
|
|
||||||
|
### Configuration Options
|
||||||
|
|
||||||
|
Instead of using `past_fetch_days` and `future_fetch_days`, the system now uses:
|
||||||
|
|
||||||
|
- **`fetch_past_games`**: Number of recent games to fetch (default: 1)
|
||||||
|
- **`fetch_future_games`**: Number of upcoming games to fetch (default: 1)
|
||||||
|
|
||||||
|
### Example Configuration
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"nfl_scoreboard": {
|
||||||
|
"enabled": true,
|
||||||
|
"fetch_past_games": 1,
|
||||||
|
"fetch_future_games": 1,
|
||||||
|
"favorite_teams": ["TB", "DAL"]
|
||||||
|
},
|
||||||
|
"ncaa_fb_scoreboard": {
|
||||||
|
"enabled": true,
|
||||||
|
"fetch_past_games": 1,
|
||||||
|
"fetch_future_games": 1,
|
||||||
|
"favorite_teams": ["UGA", "AUB"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### How It Works
|
||||||
|
|
||||||
|
- **`fetch_past_games: 1`**: Shows the most recent game for your favorite teams
|
||||||
|
- **`fetch_future_games: 1`**: Shows the next upcoming game for your favorite teams
|
||||||
|
- **`fetch_future_games: 2`**: Shows the next two upcoming games (e.g., Week 1 and Week 2 matchups)
|
||||||
|
|
||||||
|
### Benefits
|
||||||
|
|
||||||
|
1. **Predictable Results**: Always shows exactly the number of games you specify
|
||||||
|
2. **Season Flexibility**: Works well both during the season and in the off-season
|
||||||
|
3. **Future Planning**: Can show games far in the future (e.g., Week 1 when it's 40 days away)
|
||||||
|
4. **Efficient**: Only fetches the games you actually want to see
|
||||||
|
|
||||||
|
### Use Cases
|
||||||
|
|
||||||
|
- **During Season**: `fetch_future_games: 1` shows next week's game
|
||||||
|
- **Off-Season**: `fetch_future_games: 1` shows the first scheduled game (even if it's months away)
|
||||||
|
- **Planning**: `fetch_future_games: 2` shows the next two matchups for planning purposes
|
||||||
|
|
||||||
## Music Display Configuration
|
## Music Display Configuration
|
||||||
|
|
||||||
The Music Display module shows information about the currently playing track from either Spotify or YouTube Music (via the [YouTube Music Desktop App](https://ytmdesktop.app/) companion server).
|
The Music Display module shows information about the currently playing track from either Spotify or YouTube Music (via the [YouTube Music Desktop App](https://ytmdesktop.app/) companion server).
|
||||||
@@ -422,7 +695,105 @@ To get these credentials:
|
|||||||
* Ensure your firewall (Windows Firewall) allows YTM Desktop app to access local networks.
|
* Ensure your firewall (Windows Firewall) allows YTM Desktop app to access local networks.
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------
|
||||||
|
### Favorite Team Filtering
|
||||||
|
Across all sports displays (NFL, MLB, NBA, etc.), you can control which games are shown using the `"show_favorite_teams_only"` and `"favorite_teams"` settings in your `config/config.json`.
|
||||||
|
|
||||||
|
**How it Works:**
|
||||||
|
|
||||||
|
* **`"show_favorite_teams_only": true`**: When this is set to `true` within a specific sport's configuration (e.g., in the `"nfl_scoreboard"` block), the system will **only** fetch and display games (Live, Recent, and Upcoming) that involve one of the teams listed in your `"favorite_teams"` array for that sport. This is the best way to reduce API calls and keep the display focused.
|
||||||
|
|
||||||
|
* **`"show_favorite_teams_only": false`**: When set to `false` (or omitted), the system will display **all** available games for that sport, ignoring the `"favorite_teams"` list completely.
|
||||||
|
|
||||||
|
**Example `config.json` for NFL:**
|
||||||
|
```json
|
||||||
|
"nfl_scoreboard": {
|
||||||
|
"enabled": true,
|
||||||
|
"show_odds": true,
|
||||||
|
"show_favorite_teams_only": true, // <-- Only shows games for DAL & TB
|
||||||
|
"favorite_teams": ["DAL", "TB"],
|
||||||
|
"fetch_past_games": 1,
|
||||||
|
"fetch_future_games": 1
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
|
### Odds Ticker Feature
|
||||||
|
The system includes a comprehensive odds ticker that displays betting odds for upcoming sports games. The ticker respects the `show_favorite_teams_only` setting from each individual sports module. For example, if `"show_favorite_teams_only": true` is set in the `nfl_scoreboard` config, the odds ticker will only show odds for your favorite NFL teams.
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- **Multi-League Support**: NFL, NBA, MLB, NCAA Football
|
||||||
|
- **Configurable Leagues**: Choose which leagues to display
|
||||||
|
- **Favorite Teams Filter**: Obeys the `show_favorite_teams_only` setting in each sport's configuration block.
|
||||||
|
- **Team Logos**: Displays team logos alongside odds information
|
||||||
|
- **Comprehensive Odds**: Shows spreads, money lines, and over/under totals
|
||||||
|
- **Scrolling Display**: Smooth scrolling text with team logos
|
||||||
|
- **Time Display**: Shows game times in local timezone
|
||||||
|
|
||||||
|
**Display Format:**
|
||||||
|
```
|
||||||
|
[12:00 PM] DAL -6.5 ML -200 O/U 47.5 vs NYG ML +175
|
||||||
|
```
|
||||||
|
|
||||||
|
**Configuration:**
|
||||||
|
Add the following section to your `config/config.json`:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"odds_ticker": {
|
||||||
|
"enabled": true,
|
||||||
|
"enabled_leagues": ["nfl", "nba", "mlb", "ncaa_fb"],
|
||||||
|
"update_interval": 3600,
|
||||||
|
"scroll_speed": 2,
|
||||||
|
"scroll_delay": 0.05,
|
||||||
|
"display_duration": 30
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Testing:**
|
||||||
|
You can test the odds ticker functionality using:
|
||||||
|
```bash
|
||||||
|
python test_odds_ticker.py
|
||||||
|
```
|
||||||
|
|
||||||
|
### Persistent Caching Setup
|
||||||
|
|
||||||
|
The LEDMatrix system uses persistent caching to improve performance and reduce API calls. When running with `sudo`, the system needs a persistent cache directory that survives restarts.
|
||||||
|
|
||||||
|
**First-Time Setup:**
|
||||||
|
Run the setup script to create a persistent cache directory:
|
||||||
|
```bash
|
||||||
|
chmod +x setup_cache.sh
|
||||||
|
./setup_cache.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
This will:
|
||||||
|
- Create `/var/cache/ledmatrix/` directory
|
||||||
|
- Set proper ownership to your user account
|
||||||
|
- Set permissions to allow the daemon user (which the system runs as) to write
|
||||||
|
- Test writability for both your user and the daemon user
|
||||||
|
|
||||||
|
**If You Still See Cache Warnings:**
|
||||||
|
If you see warnings about using temporary cache directory, run the permissions fix:
|
||||||
|
```bash
|
||||||
|
chmod +x fix_cache_permissions.sh
|
||||||
|
./fix_cache_permissions.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
**Manual Setup:**
|
||||||
|
If you prefer to set up manually:
|
||||||
|
```bash
|
||||||
|
sudo mkdir -p /var/cache/ledmatrix
|
||||||
|
sudo chown $USER:$USER /var/cache/ledmatrix
|
||||||
|
sudo chmod 777 /var/cache/ledmatrix
|
||||||
|
```
|
||||||
|
|
||||||
|
**Cache Locations (in order of preference):**
|
||||||
|
1. `~/.ledmatrix_cache/` (user's home directory) - **Most persistent**
|
||||||
|
2. `/var/cache/ledmatrix/` (system cache directory) - **Persistent across restarts**
|
||||||
|
3. `/opt/ledmatrix/cache/` (alternative persistent location)
|
||||||
|
4. `/tmp/ledmatrix_cache/` (temporary directory) - **NOT persistent**
|
||||||
|
|
||||||
|
**Note:** If the system falls back to `/tmp/ledmatrix_cache/`, you'll see a warning message and the cache will not persist across restarts.
|
||||||
|
------------------------------------------------------------------------------------
|
||||||
## Before Running the Display
|
## Before Running the Display
|
||||||
- To allow the script to properly access fonts, you need to set the correct permissions on your home directory:
|
- To allow the script to properly access fonts, you need to set the correct permissions on your home directory:
|
||||||
```bash
|
```bash
|
||||||
@@ -449,7 +820,7 @@ This will start the display cycle but only stays active as long as your ssh sess
|
|||||||
|
|
||||||
The LEDMatrix can be installed as a systemd service to run automatically at boot and be managed easily. The service runs as root to ensure proper hardware timing access for the LED matrix.
|
The LEDMatrix can be installed as a systemd service to run automatically at boot and be managed easily. The service runs as root to ensure proper hardware timing access for the LED matrix.
|
||||||
|
|
||||||
### Installing the Service
|
### Installing the Service (this is included in the first_time_install.sh)
|
||||||
|
|
||||||
1. Make the install script executable:
|
1. Make the install script executable:
|
||||||
```bash
|
```bash
|
||||||
@@ -509,6 +880,102 @@ sudo ./start_display.sh
|
|||||||
sudo ./stop_display.sh
|
sudo ./stop_display.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
-----------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
## Web Interface Installation
|
||||||
|
|
||||||
|
The LEDMatrix system includes a web interface that allows you to control and configure the display remotely. The web interface runs on port 5001 and provides real-time display preview, configuration management, and on-demand display controls.
|
||||||
|
|
||||||
|
### Installing the Web Interface Service
|
||||||
|
|
||||||
|
1. Make the install script executable:
|
||||||
|
```bash
|
||||||
|
chmod +x install_web_service.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Run the install script with sudo:
|
||||||
|
```bash
|
||||||
|
sudo ./install_web_service.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
The script will:
|
||||||
|
- Copy the web service file to `/etc/systemd/system/`
|
||||||
|
- Enable the service to start on boot
|
||||||
|
- Start the service immediately
|
||||||
|
- Show the service status
|
||||||
|
|
||||||
|
### Web Interface Configuration
|
||||||
|
|
||||||
|
The web interface can be configured to start automatically with the main display service:
|
||||||
|
|
||||||
|
1. In `config/config.json`, ensure the web interface autostart is enabled:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"web_display_autostart": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
2. The web interface will now start automatically when:
|
||||||
|
- The system boots
|
||||||
|
- The `web_display_autostart` setting is `true` in your config
|
||||||
|
|
||||||
|
### Accessing the Web Interface
|
||||||
|
|
||||||
|
Once installed, you can access the web interface at:
|
||||||
|
```
|
||||||
|
http://your-pi-ip:5001
|
||||||
|
```
|
||||||
|
|
||||||
|
### Managing the Web Interface Service
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Check service status
|
||||||
|
sudo systemctl status ledmatrix-web.service
|
||||||
|
|
||||||
|
# View logs
|
||||||
|
journalctl -u ledmatrix-web.service -f
|
||||||
|
|
||||||
|
# Stop the service
|
||||||
|
sudo systemctl stop ledmatrix-web.service
|
||||||
|
|
||||||
|
# Start the service
|
||||||
|
sudo systemctl start ledmatrix-web.service
|
||||||
|
|
||||||
|
# Disable autostart
|
||||||
|
sudo systemctl disable ledmatrix-web.service
|
||||||
|
|
||||||
|
# Enable autostart
|
||||||
|
sudo systemctl enable ledmatrix-web.service
|
||||||
|
```
|
||||||
|
|
||||||
|
### Web Interface Features
|
||||||
|
|
||||||
|
- **Real-time Display Preview**: See what's currently displayed on the LED matrix
|
||||||
|
- **Configuration Management**: Edit settings through a web interface
|
||||||
|
- **On-Demand Controls**: Start specific displays (weather, stocks, sports) on demand
|
||||||
|
- **Service Management**: Start/stop the main display service
|
||||||
|
- **System Controls**: Restart, update code, and manage the system
|
||||||
|
- **API Metrics**: Monitor API usage and system performance
|
||||||
|
- **Logs**: View system logs in real-time
|
||||||
|
|
||||||
|
### Troubleshooting Web Interface
|
||||||
|
|
||||||
|
**Web Interface Not Accessible After Restart:**
|
||||||
|
1. Check if the web service is running: `sudo systemctl status ledmatrix-web.service`
|
||||||
|
2. Verify the service is enabled: `sudo systemctl is-enabled ledmatrix-web.service`
|
||||||
|
3. Check logs for errors: `journalctl -u ledmatrix-web.service -f`
|
||||||
|
4. Ensure `web_display_autostart` is set to `true` in `config/config.json`
|
||||||
|
|
||||||
|
**Port 5001 Not Accessible:**
|
||||||
|
1. Check if the service is running on the correct port
|
||||||
|
2. Verify firewall settings allow access to port 5001
|
||||||
|
3. Check if another service is using port 5001
|
||||||
|
|
||||||
|
**Service Fails to Start:**
|
||||||
|
1. Check Python dependencies are installed
|
||||||
|
2. Verify the virtual environment is set up correctly
|
||||||
|
3. Check file permissions and ownership
|
||||||
|
|
||||||
|
|
||||||
-----------------------------------------------------------------------------------
|
-----------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -575,6 +1042,30 @@ Example: NHL Configuration"nhl_scoreboard": {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Date Format Configuration
|
||||||
|
|
||||||
|
You can customize the date format for upcoming games across all sports displays. The `use_short_date_format` setting in `config/config.json` under the `display` section controls this behavior.
|
||||||
|
|
||||||
|
- **`"use_short_date_format": true`**: Displays dates in a short, numerical format (e.g., "8/30").
|
||||||
|
- **`"use_short_date_format": false`** (Default): Displays dates in a more descriptive format with an ordinal suffix (e.g., "Aug 30th").
|
||||||
|
|
||||||
|
### Example `config.json`
|
||||||
|
|
||||||
|
```json
|
||||||
|
"display": {
|
||||||
|
"hardware": {
|
||||||
|
...
|
||||||
|
},
|
||||||
|
"runtime": {
|
||||||
|
...
|
||||||
|
},
|
||||||
|
"display_durations": {
|
||||||
|
...
|
||||||
|
},
|
||||||
|
"use_short_date_format": false // Set to true for "8/30" format
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Project Structure
|
## Project Structure
|
||||||
|
|
||||||
@@ -651,6 +1142,31 @@ The LEDMatrix system includes a comprehensive scoreboard display system with thr
|
|||||||
- Automatic game switching
|
- Automatic game switching
|
||||||
- Built-in caching to reduce API calls
|
- Built-in caching to reduce API calls
|
||||||
- Test mode for development
|
- Test mode for development
|
||||||
|
## API Usage Tracking
|
||||||
|
|
||||||
|
The LEDMatrix system includes a built-in API usage counter that tracks API calls made by various managers in a 24-hour rolling window. This feature helps monitor API usage and ensure compliance with rate limits.
|
||||||
|
|
||||||
|
### API Counter Features
|
||||||
|
- **Real-time Tracking**: Counts API calls for weather, stocks, sports, and news data
|
||||||
|
- **24-hour Window**: Rolling window that resets every 24 hours
|
||||||
|
- **Web Interface Integration**: View current usage in the Overview tab of the web interface
|
||||||
|
- **Forecast Display**: Shows predicted API usage based on current configuration
|
||||||
|
- **Automatic Reset**: Counters automatically reset when the 24-hour window expires
|
||||||
|
|
||||||
|
### Tracked API Calls
|
||||||
|
- **Weather**: OpenWeatherMap API calls (geocoding + weather data)
|
||||||
|
- **Stocks**: Yahoo Finance API calls for stock and crypto data
|
||||||
|
- **Sports**: ESPN API calls for various sports leagues (NHL, NBA, MLB, NFL, etc.)
|
||||||
|
- **News**: RSS feed and news API calls
|
||||||
|
|
||||||
|
### Accessing API Metrics
|
||||||
|
1. Open the web interface in your browser
|
||||||
|
2. Navigate to the **Overview** tab
|
||||||
|
3. Scroll down to the "API Calls (24h window)" section
|
||||||
|
4. Click "Refresh API Metrics" to update the display
|
||||||
|
|
||||||
|
The counter shows both actual usage and forecasted usage based on your current configuration settings.
|
||||||
|
|
||||||
## Caching System
|
## Caching System
|
||||||
|
|
||||||
The LEDMatrix system includes a robust caching mechanism to optimize API calls and reduce network traffic:
|
The LEDMatrix system includes a robust caching mechanism to optimize API calls and reduce network traffic:
|
||||||
@@ -685,15 +1201,104 @@ The LEDMatrix system includes a robust caching mechanism to optimize API calls a
|
|||||||
## Final Notes
|
## Final Notes
|
||||||
- Most configuration is done via config/config.json
|
- Most configuration is done via config/config.json
|
||||||
- Refresh intervals for sports/weather/stocks are customizable
|
- Refresh intervals for sports/weather/stocks are customizable
|
||||||
- A caching system reduces API strain and helps ensure the display doesn’t hammer external services (and ruin it for everyone)
|
- A caching system reduces API strain and helps ensure the display doesn't hammer external services (and ruin it for everyone)
|
||||||
- Font files should be placed in assets/fonts/
|
- Font files should be placed in assets/fonts/
|
||||||
- You can test each module individually for debugging
|
- You can test each module individually for debugging
|
||||||
|
|
||||||
|
|
||||||
##What's Next?
|
##What's Next?
|
||||||
- Adding MQTT/HomeAssistant integration
|
- Adding MQTT/HomeAssistant integration
|
||||||
- Gambling odds?
|
- Gambling odds (done!)
|
||||||
- Building a user-friendly UI for easier configuration
|
- Building a user-friendly UI for easier configuration (done!)
|
||||||
|
|
||||||
|
|
||||||
### If you’ve read this far — thanks!
|
|
||||||
|
|
||||||
|
## Granting Passwordless Sudo Access for Web Interface Actions
|
||||||
|
|
||||||
|
The web interface needs to run certain commands with `sudo` (e.g., `reboot`, `systemctl start/stop/enable/disable ledmatrix.service`, `python display_controller.py`). To avoid needing to enter a password for these actions through the web UI, you can configure the `sudoers` file to allow the user running the Flask application to execute these specific commands without a password.
|
||||||
|
|
||||||
|
1. Shortcut to automate the below steps:
|
||||||
|
```chmod +x configure_web_sudo.sh```
|
||||||
|
then
|
||||||
|
```./configure_web_sudo.sh```
|
||||||
|
|
||||||
|
|
||||||
|
Manual Method:
|
||||||
|
|
||||||
|
**WARNING: Be very careful when editing the `sudoers` file. Incorrect syntax can lock you out of `sudo` access.**
|
||||||
|
|
||||||
|
1. **Identify the user:** Determine which user is running the `web_interface.py` script. Often, this might be the default user like `pi` on a Raspberry Pi, or a dedicated user you've set up.
|
||||||
|
|
||||||
|
2. **Open the sudoers file for editing:**
|
||||||
|
Use the `visudo` command, which locks the sudoers file and checks for syntax errors before saving.
|
||||||
|
```bash
|
||||||
|
sudo visudo
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Add the permission lines:**
|
||||||
|
Scroll to the bottom of the file and add lines similar to the following. Replace `your_flask_user` with the actual username running the Flask application.
|
||||||
|
You'll need to specify the full paths to the commands. You can find these using the `which` command (e.g., `which python`, `which systemctl`, `which reboot`).
|
||||||
|
|
||||||
|
```sudoers
|
||||||
|
# Allow your_flask_user to run specific commands without a password for the LED Matrix web interface
|
||||||
|
your_flask_user ALL=(ALL) NOPASSWD: /sbin/reboot
|
||||||
|
your_flask_user ALL=(ALL) NOPASSWD: /bin/systemctl start ledmatrix.service
|
||||||
|
your_flask_user ALL=(ALL) NOPASSWD: /bin/systemctl stop ledmatrix.service
|
||||||
|
your_flask_user ALL=(ALL) NOPASSWD: /bin/systemctl enable ledmatrix.service
|
||||||
|
your_flask_user ALL=(ALL) NOPASSWD: /bin/systemctl disable ledmatrix.service
|
||||||
|
your_flask_user ALL=(ALL) NOPASSWD: /usr/bin/python /path/to/your/display_controller.py
|
||||||
|
your_flask_user ALL=(ALL) NOPASSWD: /bin/bash /path/to/your/stop_display.sh
|
||||||
|
```
|
||||||
|
* **Important:**
|
||||||
|
* Replace `your_flask_user` with the correct username.
|
||||||
|
* Replace `/path/to/your/display_controller.py` with the absolute path to your `display_controller.py` script.
|
||||||
|
* Replace `/path/to/your/stop_display.sh` with the absolute path to your `stop_display.sh` script.
|
||||||
|
* The paths to `python`, `systemctl`, `reboot`, and `bash` might vary slightly depending on your system. Use `which <command>` to find the correct paths if you are unsure. For example, `which python` might output `/usr/bin/python3` - use that full path.
|
||||||
|
|
||||||
|
4. **Save and Exit:**
|
||||||
|
* If you're in `nano` (common default for `visudo`): `Ctrl+X`, then `Y` to confirm, then `Enter`.
|
||||||
|
* If you're in `vim`: `Esc`, then `:wq`, then `Enter`.
|
||||||
|
|
||||||
|
`visudo` will check the syntax. If there's an error, it will prompt you to re-edit or quit. **Do not quit without fixing errors if possible.**
|
||||||
|
|
||||||
|
5. **Test:**
|
||||||
|
After saving, try running one of the specified commands as `your_flask_user` using `sudo` from a regular terminal session to ensure it doesn't ask for a password.
|
||||||
|
For example:
|
||||||
|
```bash
|
||||||
|
sudo -u your_flask_user sudo /sbin/reboot
|
||||||
|
```
|
||||||
|
(Don't actually reboot if you're not ready, but it should proceed without a password prompt if configured correctly. You can test with a less disruptive command like `sudo -u your_flask_user sudo systemctl status ledmatrix.service`).
|
||||||
|
|
||||||
|
**Security Considerations:**
|
||||||
|
Granting passwordless `sudo` access, even for specific commands, has security implications. Ensure that the scripts and commands allowed are secure and cannot be easily exploited. The web interface itself should also be secured if it's exposed to untrusted networks.
|
||||||
|
For `display_controller.py` and `stop_display.sh`, ensure their file permissions restrict write access to only trusted users, preventing unauthorized modification of these scripts which run with elevated privileges.
|
||||||
|
|
||||||
|
|
||||||
|
## Web Interface V2 (simplified quick start)
|
||||||
|
|
||||||
|
### 1) un the helper (does the above and starts the server):
|
||||||
|
```
|
||||||
|
python3 start_web_v2.py
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2) Start the web UI v2
|
||||||
|
```
|
||||||
|
python web_interface_v2.py
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3) Autostart (optional)
|
||||||
|
Set `"web_display_autostart": true` in `config/config.json`.
|
||||||
|
Ensure your systemd service (or launcher) calls `start_web_conditionally.py`.
|
||||||
|
|
||||||
|
### 4) Permissions (optional but recommended)
|
||||||
|
- Add the service user to `systemd-journal` for viewing logs without sudo.
|
||||||
|
- Configure passwordless sudo for actions (start/stop service, reboot, shutdown) if desired.
|
||||||
|
- Required for web Ui actions, look in the section above for the commands to run (chmod +x configure_web_sudo.sh & ./configure_web_sudo.sh)
|
||||||
|
|
||||||
|
### 5) Old web UI (v1)
|
||||||
|
The project now defaults to Web UI v2. The v1 interface can be ignored.
|
||||||
|
An LED matrix display system that provides real-time information display capabilities for various data sources. The system is highly configurable and supports multiple display modes that can be enabled or disabled based on user preferences.
|
||||||
|
|
||||||
|
|
||||||
|
### If you've read this far — thanks!
|
||||||
162
add_custom_feed_example.py
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import json
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
|
||||||
|
def add_custom_feed(feed_name, feed_url):
|
||||||
|
"""Add a custom RSS feed to the news manager configuration"""
|
||||||
|
config_path = "config/config.json"
|
||||||
|
|
||||||
|
try:
|
||||||
|
# Load current config
|
||||||
|
with open(config_path, 'r') as f:
|
||||||
|
config = json.load(f)
|
||||||
|
|
||||||
|
# Ensure news_manager section exists
|
||||||
|
if 'news_manager' not in config:
|
||||||
|
print("ERROR: News manager configuration not found!")
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Add custom feed
|
||||||
|
if 'custom_feeds' not in config['news_manager']:
|
||||||
|
config['news_manager']['custom_feeds'] = {}
|
||||||
|
|
||||||
|
config['news_manager']['custom_feeds'][feed_name] = feed_url
|
||||||
|
|
||||||
|
# Add to enabled feeds if not already there
|
||||||
|
if feed_name not in config['news_manager']['enabled_feeds']:
|
||||||
|
config['news_manager']['enabled_feeds'].append(feed_name)
|
||||||
|
|
||||||
|
# Save updated config
|
||||||
|
with open(config_path, 'w') as f:
|
||||||
|
json.dump(config, f, indent=4)
|
||||||
|
|
||||||
|
print(f"SUCCESS: Successfully added custom feed: {feed_name}")
|
||||||
|
print(f" URL: {feed_url}")
|
||||||
|
print(f" Feed is now enabled and will appear in rotation")
|
||||||
|
return True
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"ERROR: Error adding custom feed: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def list_all_feeds():
|
||||||
|
"""List all available feeds (default + custom)"""
|
||||||
|
config_path = "config/config.json"
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(config_path, 'r') as f:
|
||||||
|
config = json.load(f)
|
||||||
|
|
||||||
|
news_config = config.get('news_manager', {})
|
||||||
|
custom_feeds = news_config.get('custom_feeds', {})
|
||||||
|
enabled_feeds = news_config.get('enabled_feeds', [])
|
||||||
|
|
||||||
|
print("\nAvailable News Feeds:")
|
||||||
|
print("=" * 50)
|
||||||
|
|
||||||
|
# Default feeds (hardcoded in news_manager.py)
|
||||||
|
default_feeds = {
|
||||||
|
'MLB': 'http://espn.com/espn/rss/mlb/news',
|
||||||
|
'NFL': 'http://espn.go.com/espn/rss/nfl/news',
|
||||||
|
'NCAA FB': 'https://www.espn.com/espn/rss/ncf/news',
|
||||||
|
'NHL': 'https://www.espn.com/espn/rss/nhl/news',
|
||||||
|
'NBA': 'https://www.espn.com/espn/rss/nba/news',
|
||||||
|
'TOP SPORTS': 'https://www.espn.com/espn/rss/news',
|
||||||
|
'BIG10': 'https://www.espn.com/blog/feed?blog=bigten',
|
||||||
|
'NCAA': 'https://www.espn.com/espn/rss/ncaa/news',
|
||||||
|
'Other': 'https://www.coveringthecorner.com/rss/current.xml'
|
||||||
|
}
|
||||||
|
|
||||||
|
print("\nDefault Sports Feeds:")
|
||||||
|
for name, url in default_feeds.items():
|
||||||
|
status = "ENABLED" if name in enabled_feeds else "DISABLED"
|
||||||
|
print(f" {name}: {status}")
|
||||||
|
print(f" {url}")
|
||||||
|
|
||||||
|
if custom_feeds:
|
||||||
|
print("\nCustom Feeds:")
|
||||||
|
for name, url in custom_feeds.items():
|
||||||
|
status = "ENABLED" if name in enabled_feeds else "DISABLED"
|
||||||
|
print(f" {name}: {status}")
|
||||||
|
print(f" {url}")
|
||||||
|
else:
|
||||||
|
print("\nCustom Feeds: None added yet")
|
||||||
|
|
||||||
|
print(f"\nCurrently Enabled Feeds: {len(enabled_feeds)}")
|
||||||
|
print(f" {', '.join(enabled_feeds)}")
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"ERROR: Error listing feeds: {e}")
|
||||||
|
|
||||||
|
def remove_custom_feed(feed_name):
|
||||||
|
"""Remove a custom RSS feed"""
|
||||||
|
config_path = "config/config.json"
|
||||||
|
|
||||||
|
try:
|
||||||
|
with open(config_path, 'r') as f:
|
||||||
|
config = json.load(f)
|
||||||
|
|
||||||
|
news_config = config.get('news_manager', {})
|
||||||
|
custom_feeds = news_config.get('custom_feeds', {})
|
||||||
|
|
||||||
|
if feed_name not in custom_feeds:
|
||||||
|
print(f"ERROR: Custom feed '{feed_name}' not found!")
|
||||||
|
return False
|
||||||
|
|
||||||
|
# Remove from custom feeds
|
||||||
|
del config['news_manager']['custom_feeds'][feed_name]
|
||||||
|
|
||||||
|
# Remove from enabled feeds if present
|
||||||
|
if feed_name in config['news_manager']['enabled_feeds']:
|
||||||
|
config['news_manager']['enabled_feeds'].remove(feed_name)
|
||||||
|
|
||||||
|
# Save updated config
|
||||||
|
with open(config_path, 'w') as f:
|
||||||
|
json.dump(config, f, indent=4)
|
||||||
|
|
||||||
|
print(f"SUCCESS: Successfully removed custom feed: {feed_name}")
|
||||||
|
return True
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
print(f"ERROR: Error removing custom feed: {e}")
|
||||||
|
return False
|
||||||
|
|
||||||
|
def main():
|
||||||
|
if len(sys.argv) < 2:
|
||||||
|
print("Usage:")
|
||||||
|
print(" python3 add_custom_feed_example.py list")
|
||||||
|
print(" python3 add_custom_feed_example.py add <feed_name> <feed_url>")
|
||||||
|
print(" python3 add_custom_feed_example.py remove <feed_name>")
|
||||||
|
print("\nExamples:")
|
||||||
|
print(" # Add F1 news feed")
|
||||||
|
print(" python3 add_custom_feed_example.py add 'F1' 'https://www.espn.com/espn/rss/rpm/news'")
|
||||||
|
print(" # Add BBC F1 feed")
|
||||||
|
print(" python3 add_custom_feed_example.py add 'BBC F1' 'http://feeds.bbci.co.uk/sport/formula1/rss.xml'")
|
||||||
|
print(" # Add personal blog feed")
|
||||||
|
print(" python3 add_custom_feed_example.py add 'My Blog' 'https://myblog.com/rss.xml'")
|
||||||
|
return
|
||||||
|
|
||||||
|
command = sys.argv[1].lower()
|
||||||
|
|
||||||
|
if command == 'list':
|
||||||
|
list_all_feeds()
|
||||||
|
elif command == 'add':
|
||||||
|
if len(sys.argv) != 4:
|
||||||
|
print("ERROR: Usage: python3 add_custom_feed_example.py add <feed_name> <feed_url>")
|
||||||
|
return
|
||||||
|
feed_name = sys.argv[2]
|
||||||
|
feed_url = sys.argv[3]
|
||||||
|
add_custom_feed(feed_name, feed_url)
|
||||||
|
elif command == 'remove':
|
||||||
|
if len(sys.argv) != 3:
|
||||||
|
print("ERROR: Usage: python3 add_custom_feed_example.py remove <feed_name>")
|
||||||
|
return
|
||||||
|
feed_name = sys.argv[2]
|
||||||
|
remove_custom_feed(feed_name)
|
||||||
|
else:
|
||||||
|
print(f"ERROR: Unknown command: {command}")
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
BIN
assets/broadcast_logos/abc.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
assets/broadcast_logos/accn.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/broadcast_logos/btn.png
Normal file
|
After Width: | Height: | Size: 4.2 KiB |
BIN
assets/broadcast_logos/cbs.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
assets/broadcast_logos/cbssn.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/broadcast_logos/espn-sec-us.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
assets/broadcast_logos/espn.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
BIN
assets/broadcast_logos/espn2.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
assets/broadcast_logos/espn3.png
Normal file
|
After Width: | Height: | Size: 4.1 KiB |
BIN
assets/broadcast_logos/espnu.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
assets/broadcast_logos/fox.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
assets/broadcast_logos/fs1.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
BIN
assets/broadcast_logos/fs2.png
Normal file
|
After Width: | Height: | Size: 8.0 KiB |
BIN
assets/broadcast_logos/mlbn.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
assets/broadcast_logos/nbc.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
assets/broadcast_logos/nfln.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/broadcast_logos/pac12n.png
Normal file
|
After Width: | Height: | Size: 82 KiB |
BIN
assets/broadcast_logos/tbs.png
Normal file
|
After Width: | Height: | Size: 60 KiB |
BIN
assets/broadcast_logos/tnt.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
assets/broadcast_logos/tru.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
assets/fonts/5by7.regular.ttf
Normal file
21422
assets/fonts/5x8.bdf
Normal file
20768
assets/fonts/6x9.bdf
Normal file
9822
assets/fonts/MatrixChunky8.bdf
Normal file
10180
assets/fonts/MatrixChunky8X.bdf
Normal file
5236
assets/fonts/MatrixLight6.bdf
Normal file
5417
assets/fonts/MatrixLight6X.bdf
Normal file
10184
assets/fonts/MatrixLight8X.bdf
Normal file
9993
assets/fonts/ic8x8u.bdf
Normal file
BIN
assets/sports/milb_logos/ABD.png
Normal file
|
After Width: | Height: | Size: 352 KiB |
BIN
assets/sports/milb_logos/ABQ.png
Normal file
|
After Width: | Height: | Size: 149 KiB |
10
assets/sports/milb_logos/AGS.png
Normal file
BIN
assets/sports/milb_logos/AKR.png
Normal file
|
After Width: | Height: | Size: 374 KiB |
BIN
assets/sports/milb_logos/ALT.png
Normal file
|
After Width: | Height: | Size: 386 KiB |
BIN
assets/sports/milb_logos/AMA.png
Normal file
|
After Width: | Height: | Size: 402 KiB |
BIN
assets/sports/milb_logos/ARK.png
Normal file
|
After Width: | Height: | Size: 306 KiB |
BIN
assets/sports/milb_logos/ASH.png
Normal file
|
After Width: | Height: | Size: 280 KiB |
BIN
assets/sports/milb_logos/AUB.png
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
assets/sports/milb_logos/AUG.png
Normal file
|
After Width: | Height: | Size: 227 KiB |
409
assets/sports/milb_logos/BAT.png
Normal file
@@ -0,0 +1,409 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 25.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" width="154.45552389996837" height="145.0" viewBox="0 0 673 631.8" style="enable-background:new 0 0 673 631.8;" xml:space="preserve" preserveAspectRatio="xMidYMid meet">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#FFFFFF;}
|
||||||
|
.st1{fill:#231F20;}
|
||||||
|
.st2{fill:#D31245;}
|
||||||
|
.st3{fill:#6A737B;}
|
||||||
|
.st4{fill:#B0B7BC;}
|
||||||
|
.st5{fill:#A68462;}
|
||||||
|
.st6{fill:#F6A2B6;}
|
||||||
|
.st7{fill:#C4CED4;}
|
||||||
|
</style>
|
||||||
|
<path class="st0" d="M671.6,122.8c-1.5-3.9-3.9-7.1-6.5-9.8c-5.3-5.4-13.1-10.4-22.4-15.1c-18.4-9.3-45.1-18.6-75.1-26.5
|
||||||
|
c-52.7-13.9-116.4-23.9-163.8-22.9l-0.2-1.2c0.1-12.8-8.4-27.7-18.3-31.9c-1.2-0.5-2.5-0.9-4.1-1.3l-2.1-1.5c-0.9-1.2-2-2.2-3.1-3.1
|
||||||
|
c-0.9-0.7-1.9-1.4-4.1-3.2c-4.8-7-12.7-7.9-21.2-3.8l-2.3,1l-1.8-0.2c-2.5-0.2-6.2-0.3-10.8,1.1l-1.6,0.5l-4.8,2
|
||||||
|
c-9.1-0.1-19.8,0.3-31.7,1.7c-14.9,2.5-31.9,8.3-45,15.9c-4.2,2.4-8.1,5.8-11,9.4c-2.2,2.1-4.5,4.9-6,7.9c-1.9,3.9-3.4,8.2-4.6,12.5
|
||||||
|
l-0.7,2.6l-2.6,0.8c-2.2,0.7-4.5,1.2-7,1.6c-27.6,4-51.8,10.3-53.9,10.8c-12.5,3.1-15.6,16.3-10,24.8c-6,2-12.2,4.2-18.5,6.4
|
||||||
|
l-17.8,6.4l-4.2,101.7l39.4-4.9l-8.7,18.5l-5,4.4l1.8,1.4l-4,7.7l-4.6-1.4c-0.4,1.1-0.6,2.3-0.8,3.7c-0.1,1-0.1,1.9-0.1,3.2
|
||||||
|
l-0.8,2.3c-1.6,2.6-3,5-4.7,7.4c-1.5,2.2-2.8,3.6-4.1,4.7l-4,3.2l-0.9,5c-0.9,5.1-1.2,9.9-0.4,15.5l-0.6,2.6
|
||||||
|
c-3.9,7-7.9,14.9-12,24.7c-3.6,4.9-7.2,11.7-8.5,19.1l-40.2,85.4l-21.6,22.4L0,495.8l27.6,15.9L10,631.8l86.9-48.2l40.3-95.3
|
||||||
|
c20.3-6.7,46.4-13.7,74.9-20.5l-22.7-11.4c-5.9,1.5-11.6,3-17.1,4.4c-0.3,0.1-0.7,0.2-1,0.3c-2.4,0.6-4.8,1.3-7.1,1.9
|
||||||
|
c-0.3,0.1-0.6,0.2-0.9,0.3c-5.1,1.4-10,2.9-14.6,4.2c-0.5,0.1-0.9,0.3-1.4,0.4c-1.7,0.5-3.4,1.1-5,1.6c-0.6,0.2-1.3,0.4-1.9,0.6
|
||||||
|
c-1.5,0.5-2.9,0.9-4.4,1.4c-0.6,0.2-1.1,0.4-1.7,0.6c-1.9,0.6-3.8,1.3-5.5,1.9L87.3,572l-42.6,23.6l-15.5,8.6l15.6-107L22,484.1
|
||||||
|
l24.5-41.3l22.8-23.6l21.2-44.9l21.6-46c1-4.6,3.4-9.1,6-12.8l16-34.1c-1.5-4.5-1.6-8.9-0.6-14.2c5.5-4.5,8.5-10.4,12.4-16.5
|
||||||
|
c0.4-0.7,1.6-0.4,2.7-0.2l1.6-3.5c-0.8-2.2-2.4-4.1-2.1-6.8c0.2-1.8,1.5-2.8,1.7-4.6c2.2,0.1,4.2-0.2,6.1-0.7l24.2-51.5l-47.3,5.9
|
||||||
|
l2.9-70c25.3-9,48.2-16.3,69.9-22.3c-1-0.4-2-0.7-3-1.1c-11.7-3.9-31.2-7.4-32.3-7.6c-0.1,0-0.1,0-0.1,0c0,0-0.1,0-0.1,0
|
||||||
|
c-0.3,0-0.6-0.1-0.9-0.3c-0.1,0-0.1-0.1-0.2-0.1c-0.2-0.1-0.4-0.2-0.6-0.4c-0.1-0.1-0.1-0.1-0.2-0.2c-0.1-0.1-0.2-0.3-0.3-0.4
|
||||||
|
c0-0.1-0.1-0.2-0.1-0.3c0-0.1-0.1-0.3-0.1-0.4c0-0.1,0-0.2,0-0.3c0-0.1,0-0.3,0.1-0.4c0-0.1,0.1-0.2,0.1-0.3
|
||||||
|
c0.1-0.2,0.3-0.5,0.5-0.7c0.1-0.1,0.2-0.2,0.4-0.3c0.1-0.1,0.2-0.2,0.4-0.2c0.1,0,0.2-0.1,0.3-0.1c0.1,0,0.1-0.1,0.1-0.1
|
||||||
|
c0.1-0.1,0.3-0.1,0.4-0.1c0,0,0,0,0,0c0,0,0.1,0,0.2,0c0.3-0.1,1-0.3,2.3-0.6c0,0,0.1,0,0.1,0c0.5-0.1,1-0.3,1.6-0.4
|
||||||
|
c0.1,0,0.2-0.1,0.3-0.1c0.5-0.1,1.1-0.3,1.7-0.4c0.2-0.1,0.5-0.1,0.8-0.2c0.6-0.1,1.2-0.3,1.8-0.4c0.3-0.1,0.6-0.1,0.9-0.2
|
||||||
|
c0.7-0.2,1.3-0.3,2.1-0.5c0.3-0.1,0.7-0.2,1-0.2c0.7-0.2,1.5-0.3,2.2-0.5c0.4-0.1,0.8-0.2,1.2-0.3c0.8-0.2,1.6-0.3,2.4-0.5
|
||||||
|
c0.5-0.1,0.9-0.2,1.4-0.3c0.8-0.2,1.7-0.4,2.6-0.5c0.5-0.1,1-0.2,1.4-0.3c0.9-0.2,1.8-0.4,2.8-0.6c0.5-0.1,1-0.2,1.5-0.3
|
||||||
|
c1-0.2,1.9-0.4,2.9-0.6c0.5-0.1,1-0.2,1.6-0.3c1-0.2,2.1-0.4,3.2-0.6c0.5-0.1,1-0.2,1.5-0.3c1.1-0.2,2.2-0.4,3.4-0.6
|
||||||
|
c0.5-0.1,1-0.2,1.5-0.3c1.2-0.2,2.4-0.4,3.7-0.6c0.4-0.1,0.9-0.2,1.3-0.2c1.7-0.3,3.4-0.5,5.1-0.8c7.8-1.1,14-3.6,19.7-6.3
|
||||||
|
c1.2-6.9,2.9-13.6,5.5-18.7c0.9-1.7,2.2-3.3,3.9-4.7c1.8-2.6,4.4-4.9,7.6-6.8c10-5.8,22.5-10.5,34.3-13.1c0-0.1,0.1-0.1,0.1-0.2
|
||||||
|
c1.6-2.3,4.8-3.6,9.3-3.8c5.5-0.3,8.7,0.3,10.6,1.6c7.5-0.4,14.3-0.4,20.2-0.2l5.7-3.3c4.4-1.4,7.1,0.1,11.6-0.4
|
||||||
|
c3.6-0.4,8.2-5.4,9.7-2c1.6,3.7,6.2,3.4,7.9,7.1c2,4.4,6.4,3.9,10.8,5.8c8,3.4,10.7,14.7,9,21.2c2.8,5.6,5.1,11.8,6.9,18
|
||||||
|
c82-2,219.9,30.9,253.6,59.9c2.3,2,4.1,3.9,5.4,5.8c0,0,0,0,0,0c0.4,0.6,0.7,1.2,1,1.8c0.1,0.1,0.1,0.3,0.2,0.4
|
||||||
|
c0.2,0.5,0.4,0.9,0.5,1.4c0.1,0.2,0.1,0.3,0.2,0.5c0.1,0.4,0.2,0.8,0.2,1.2c0,0.2,0.1,0.4,0.1,0.6c0,0.4,0,0.8,0,1.2
|
||||||
|
c0,0.2,0,0.4,0,0.5c-0.1,0.6-0.2,1.1-0.4,1.7c0,0-4.9,73.8-34,91.6l-5.8,3.4c3.3,3.6,6.1,7.5,8.4,11.8c13.4-8.8,22.7-22.8,28.4-34.6
|
||||||
|
c5.9-12.3,9.8-25.5,12.5-36.7c4.2-18.1,5.9-34.6,6.5-40.5C673.8,130.8,672.7,125.9,671.6,122.8z"/>
|
||||||
|
<path class="st0" d="M471.4,322.2c0.1,5.1-0.7,11.5-2.1,18.5c2.1,0.1,4.3,0.1,6.4,0.3c16.9-3.7,34.8-7.9,43.7-8.2
|
||||||
|
c28.1,0.4,74.1,3,74.1,3s3.6,3.2,8.1,8.5h0c1.4,1.7,3,3.7,4.5,5.8c0.2,0.2,0.3,0.5,0.5,0.8c0.6,0.8,1.1,1.6,1.7,2.4
|
||||||
|
c0.3,0.4,0.5,0.8,0.8,1.2c0.5,0.7,0.9,1.5,1.4,2.2c0.3,0.5,0.5,0.9,0.8,1.4c0.4,0.7,0.8,1.5,1.2,2.3c0.3,0.5,0.5,1,0.8,1.6
|
||||||
|
c0.4,0.8,0.7,1.6,1.1,2.4c0.2,0.5,0.4,1,0.7,1.6c0.4,0.9,0.7,1.8,1,2.7c0.2,0.5,0.3,0.9,0.5,1.4c0.4,1.4,0.8,2.8,1.1,4.2v0
|
||||||
|
c1.4,7.1,1.2,14.6-2,22.1c-0.5,1.2-1.1,2.3-1.9,3.5c-0.2,0.4-0.5,0.8-0.8,1.2c-0.5,0.8-1.1,1.6-1.6,2.4c-0.4,0.5-0.8,1-1.1,1.4
|
||||||
|
c-0.6,0.7-1.1,1.5-1.8,2.2c-0.4,0.5-0.9,1-1.4,1.5c-0.6,0.7-1.3,1.4-2,2.1c-0.5,0.6-1.1,1.1-1.7,1.6c-0.7,0.7-1.5,1.4-2.3,2.1
|
||||||
|
c-0.6,0.6-1.2,1.1-1.9,1.7c-0.8,0.7-1.6,1.4-2.5,2.1c-0.7,0.6-1.4,1.1-2.1,1.7c-0.9,0.7-1.8,1.5-2.8,2.2c-0.7,0.6-1.5,1.1-2.3,1.7
|
||||||
|
c-1,0.7-2,1.5-3,2.2c-0.8,0.6-1.6,1.1-2.4,1.7c-1.1,0.8-2.2,1.5-3.3,2.2c-0.9,0.6-1.7,1.2-2.6,1.7c-1.2,0.8-2.4,1.5-3.6,2.3
|
||||||
|
c-0.9,0.6-1.8,1.1-2.7,1.7c-1.3,0.8-2.5,1.6-3.9,2.4c-0.9,0.6-1.8,1.1-2.8,1.7c-1.4,0.8-2.8,1.6-4.2,2.4c-0.9,0.5-1.8,1.1-2.8,1.6
|
||||||
|
c-1.5,0.9-3.1,1.7-4.6,2.6c-0.9,0.5-1.8,1-2.7,1.5c-1.7,0.9-3.4,1.9-5.2,2.8c-0.8,0.4-1.6,0.9-2.4,1.3c-2,1.1-4.1,2.1-6.1,3.2
|
||||||
|
c-0.6,0.3-1.2,0.6-1.8,0.9c-5.5,2.8-11.1,5.6-17,8.4c-0.3,0.1-0.6,0.3-0.9,0.4c-2.6,1.3-5.2,2.5-7.9,3.7c-0.8,0.4-1.5,0.7-2.3,1.1
|
||||||
|
c-2.2,1-4.5,2.1-6.7,3.1c-1,0.4-1.9,0.9-2.9,1.3c-2.1,0.9-4.2,1.9-6.4,2.9c-1.1,0.5-2.1,0.9-3.2,1.4c-2.1,0.9-4.1,1.8-6.2,2.7
|
||||||
|
l-3.5,1.5c-2.1,0.9-4.1,1.8-6.2,2.7c-1.2,0.5-2.4,1-3.6,1.5c-2.1,0.9-4.1,1.7-6.2,2.6c-1.3,0.5-2.5,1-3.8,1.6
|
||||||
|
c-2.1,0.9-4.2,1.7-6.2,2.6c-1.3,0.5-2.6,1-3.8,1.6c-2.1,0.8-4.2,1.7-6.3,2.5c-1.3,0.5-2.6,1-3.8,1.5c-2.1,0.8-4.3,1.7-6.4,2.5
|
||||||
|
c-1.3,0.5-2.6,1-3.8,1.5c-2.2,0.9-4.4,1.7-6.6,2.6c-1.2,0.5-2.5,0.9-3.7,1.4c-2.3,0.9-4.6,1.7-6.8,2.6c-1.2,0.5-2.4,0.9-3.6,1.4
|
||||||
|
c-2.4,0.9-4.7,1.8-7.1,2.7c-1.1,0.4-2.2,0.8-3.4,1.3c-2.6,0.9-5.1,1.9-7.7,2.8c-0.9,0.4-1.9,0.7-2.9,1.1c-2.8,1-5.7,2.1-8.5,3.1
|
||||||
|
c-0.7,0.3-1.4,0.5-2.1,0.7c-7.1,2.6-14.2,5.1-21.3,7.6c-0.2,0.1-0.5,0.2-0.7,0.2c-3.3,1.1-6.5,2.3-9.8,3.4c-0.9,0.3-1.9,0.6-2.8,1
|
||||||
|
c-2.5,0.9-5.1,1.7-7.6,2.6c-1.3,0.4-2.5,0.9-3.8,1.3c-2.2,0.8-4.4,1.5-6.6,2.2c-1.4,0.5-2.8,0.9-4.2,1.4c-2,0.7-4,1.4-6,2
|
||||||
|
c-1.5,0.5-3,1-4.5,1.5c-1.9,0.6-3.7,1.2-5.6,1.9c-1.6,0.5-3.1,1-4.7,1.6c-1.8,0.6-3.5,1.2-5.3,1.7c-1.6,0.5-3.2,1-4.8,1.6
|
||||||
|
c-1.7,0.6-3.4,1.1-5.1,1.6c-1.6,0.5-3.3,1.1-4.9,1.6c-1.6,0.5-3.1,1-4.7,1.5c-1.7,0.5-3.3,1.1-5,1.6c-1.5,0.5-3.1,1-4.6,1.4
|
||||||
|
c-1.7,0.5-3.3,1.1-5,1.6c-1.4,0.4-2.9,0.9-4.3,1.3c-1.7,0.5-3.4,1.1-5.1,1.6c-1.3,0.4-2.6,0.8-3.9,1.2c-1.8,0.6-3.5,1.1-5.3,1.6
|
||||||
|
c-1.1,0.3-2.2,0.7-3.3,1c-1.9,0.6-3.8,1.1-5.6,1.7c-0.9,0.3-1.8,0.6-2.7,0.8c-2,0.6-4,1.2-5.9,1.8c-0.6,0.2-1.3,0.4-1.9,0.6
|
||||||
|
c-2.2,0.6-4.3,1.3-6.4,1.9c0,0,0,0,0,0c-13.2,3.9-25.3,7.2-36,10.1c-0.1,0-0.2,0-0.3,0.1c-1.9,0.5-3.8,1-5.6,1.5
|
||||||
|
c-0.3,0.1-0.6,0.1-0.8,0.2c-1.7,0.5-3.4,0.9-5.1,1.3c-0.3,0.1-0.6,0.1-0.9,0.2c-1.6,0.4-3.2,0.8-4.7,1.2c-0.3,0.1-0.6,0.2-0.9,0.2
|
||||||
|
c-1.5,0.4-3,0.7-4.4,1.1c-0.3,0.1-0.5,0.1-0.8,0.2c-1.4,0.3-2.7,0.7-4,0.9c-0.2,0.1-0.5,0.1-0.7,0.2c-1.3,0.3-2.5,0.6-3.7,0.8
|
||||||
|
c-0.2,0-0.4,0.1-0.6,0.1c-1.2,0.3-2.3,0.5-3.4,0.7c-0.2,0-0.3,0.1-0.5,0.1c-1.1,0.2-2.1,0.4-3.1,0.6c-0.1,0-0.2,0-0.3,0.1
|
||||||
|
c-1,0.2-1.9,0.3-2.7,0.5h0c-3.6,0.6-6,0.7-6.9,0.4c-32-11.5,63.8-64.5,113.1-96.5c0.5,5.4-4.4,13.2,2.5,15.4c0.1,0,0.1,0.1,0.2,0.1
|
||||||
|
c0.3,0.1,0.8,0.2,1.3,0.2c0.1,0,0.2,0,0.3,0c0.6,0,1.2,0,1.9,0h0.1c0.7-0.1,1.6-0.1,2.5-0.2c0.1,0,0.1,0,0.2,0c1-0.1,2-0.3,3.2-0.5
|
||||||
|
c43.7-7.2,212.1-63.5,255.1-96.4c1.2-0.9,2.1-1.7,2.8-2.5c1.4-1.5,1.9-2.8,1.7-3.9c-17.5,4.2-31.5,6.7-31.5,6.7
|
||||||
|
c-13.2,7.2-30.1,14.8-48.7,22.3c0.1,0.3,0.1,0.6,0.1,0.6c0,0-0.1,0-0.1,0.1c0-0.2-0.1-0.4-0.1-0.6c-12.5,5.1-25.8,10.1-39.2,14.9
|
||||||
|
c0,0-0.1,0-0.1,0c-30.2,10.9-60.9,20.7-84.9,27.8c-0.6,0.2-1.2,0.4-1.8,0.5c-1.2,0.4-2.4,0.7-3.6,1c-0.8,0.2-1.7,0.5-2.5,0.7
|
||||||
|
c-1,0.3-2,0.6-3.1,0.9c-0.9,0.3-1.9,0.5-2.8,0.8c-0.9,0.2-1.7,0.5-2.5,0.7c-1,0.3-2,0.6-3,0.8c-0.7,0.2-1.4,0.4-2,0.6
|
||||||
|
c0,0-0.1,0-0.1,0c-0.7,0.2-1.4,0.4-2.1,0.6c-1.7,0.5-3.3,0.9-4.8,1.3c-0.1,0-0.1,0-0.2,0.1c-6.7,1.7-11.7,2.8-14.4,3.2l-0.5-0.3
|
||||||
|
c0,0.1,0,0.1,0,0.1c0,0.1,0,0.2-0.1,0.3c-3.5,0.8-6.2,1.3-7.9,1.6c0.2-1.7,0.3-3.8,0.2-5.9l-16-8.1l-2.1,1.4
|
||||||
|
c-25,16.2-61.6,37.7-88.1,56.6c-12.6,9-27.1,20.3-35.9,32.2c-16.8,22.7-9.4,37.5,2.5,41.8c12.5,4.2,132.2-29.9,244.3-70
|
||||||
|
c58.4-20.9,117.5-44.3,164.1-67.4c23.4-11.6,44.6-23.5,61.5-35.3c15.4-10.8,32.8-25.9,41.2-44.3c6-14,5.8-26.4,4-35.1
|
||||||
|
c-1.8-8.9-5.7-16.7-9.5-22.9c-3.9-6.2-8.2-11.4-11.5-15c-3.4-3.7-7.9-7.6-7.9-7.6s-49.7-2.8-78-3.2c-3.7,0.2-9.1,0.9-15.2,2
|
||||||
|
l26.2-15.3c-4.4-1.2-11.2-3.2-19.3-5.6L471.4,322.2L471.4,322.2z M522.2,167c-0.1-0.5-0.3-1-0.5-1.4v0c-0.3-0.5-0.6-1-1-1.4
|
||||||
|
c0-0.1-0.1-0.1-0.2-0.2c-0.3-0.4-0.8-0.8-1.2-1.1c-0.1-0.1-0.3-0.2-0.4-0.3c-0.6-0.4-1.2-0.8-2-1.2c-16.3-8.1-38.2-11.5-77.3-12
|
||||||
|
c-0.1,0.6-0.2,1.1-0.3,1.6c-0.1,0.5-0.1,0.9-0.3,1.4c-0.4,1.3-0.8,2.6-1.3,3.9c-0.3,0.6-0.5,1.1-0.7,1.6c0,0.1-0.1,0.1-0.1,0.2
|
||||||
|
c0.3,0.1,0.5,0.2,0.7,0.4c0.4,0.2,0.7,0.4,1.1,0.6c0.3,0.2,0.6,0.4,1,0.6c0.3,0.2,0.6,0.4,0.9,0.6c0.3,0.2,0.6,0.4,0.8,0.6
|
||||||
|
c0.3,0.2,0.6,0.4,0.8,0.6c0.2,0.2,0.5,0.3,0.7,0.5c0.4,0.4,0.8,0.7,1.2,1c0.2,0.2,0.4,0.4,0.6,0.6c0.2,0.2,0.3,0.3,0.5,0.5
|
||||||
|
c0.2,0.2,0.4,0.4,0.6,0.6c0.1,0.1,0.2,0.3,0.3,0.4c0.2,0.2,0.4,0.5,0.5,0.7c0,0.1,0.1,0.1,0.1,0.2c0.4,0.6,0.7,1.1,1,1.6
|
||||||
|
c5.4-1.7,11.3-2.4,17.1-1.5c11.7,1.9,18.5,14,17.4,27.7l38.2-20.1C520.3,173.6,523,170.6,522.2,167z"/>
|
||||||
|
<path class="st1" d="M244.2,515.2c-6.9-2.2-2-10-2.5-15.4c-49.3,32-145.1,85-113.1,96.5c0.9,0.3,3.3,0.1,6.9-0.4
|
||||||
|
C140.4,577.8,202.4,541.6,244.2,515.2z M257.4,524c15.3,4.8,217-60.4,264.6-96.9c9.1-6.9,4.3-10.4-10.2-11.2
|
||||||
|
c-0.7,0.8-1.6,1.6-2.8,2.5c-43,33-211.3,89.3-255.1,96.4C253.2,518.8,252.7,522.6,257.4,524z M44.7,498.4l0.2-1.1l-15.6,107
|
||||||
|
l15.5-8.6l13.1-89.7L44.7,498.4z M148.9,128.2c25.8-9.2,49.1-16.6,71.1-22.6c-3.8-2.2-7.3-4.5-9.7-6.2c-0.9-0.6-2.1-1.3-3.7-1.9
|
||||||
|
c-0.2-0.1-0.5-0.2-0.7-0.3c-21.7,6-44.6,13.3-69.9,22.3l-2.9,70l47.3-5.9l-33.9,4.3L148.9,128.2z M398.1,76.5c0.6,0,1.1-0.1,1.7-0.1
|
||||||
|
c2.8-1.3,4.6-2.1,4.7-2.1c0.7-0.4,2.3-0.1,2.9,0.6c0.4,0.4,0.8,0.8,1.2,1.2c73.9-1.9,193.2,24.7,240.8,51.2
|
||||||
|
c-33.7-29-171.6-61.9-253.6-59.9c0.8,2.6,1.5,5.2,2.1,7.8C397.8,75.4,397.9,75.9,398.1,76.5z M59.6,451.5l22.8-23.6l22.7-48.2
|
||||||
|
l-4.4-16.3c-0.3-4.2,1.3-7.7,4.5-10.5l14.3-3.9l1.2-2.5c-0.6-0.4-1.2-0.8-1.8-1.2c-6.8-4.4-8.1-10.8-6.7-17l-21.6,46l-21.2,44.9
|
||||||
|
l-22.8,23.6L22,484.1l22.8,13.1l-9.3-5.3L59.6,451.5z M134.8,283.1c-0.2-0.6-0.4-1.1-0.5-1.7l-16,34.1c0.4-0.6,0.8-1.1,1.2-1.6
|
||||||
|
C123.7,303.2,128.8,292.9,134.8,283.1z M150.8,250c0.1-1.1-0.1-2.1-0.4-3l-1.6,3.5C149.8,250.7,150.8,250.8,150.8,250z M184.3,211.2
|
||||||
|
l9-19l-18.2,2.3L156.1,235c2.9-0.6,5.6-1.7,8.2-2.7C169.2,224.3,176.1,217.4,184.3,211.2z M532.4,341.5c22.6,0.3,56.7,2.1,69.2,2.7
|
||||||
|
c-4.5-5.3-8.1-8.5-8.1-8.5s-46-2.6-74.1-3c-8.9,0.4-26.7,4.5-43.7,8.2c11.5,0.6,22.9,2,34.2,4.1
|
||||||
|
C519.1,343.2,527.3,341.7,532.4,341.5z M529.8,170c-2.4-1.1-5-2.1-7.7-3c0.8,3.5-1.9,6.6-1.9,6.6l-38.2,20.1c-0.1,1-0.2,2-0.3,3
|
||||||
|
c0,0.3-0.2,0.6-0.3,1c0.1,0.3,0.1,0.6,0.2,0.9c0.1,0.4,0.1,0.8,0.2,1.3c0.1,0.9,0.2,1.7,0.2,2.6c0,0.4,0,0.8,0,1.2
|
||||||
|
c0,0.9-0.1,1.9-0.1,2.8c0,0.3,0,0.7-0.1,1c-0.1,0.8-0.2,1.6-0.3,2.4l51.8-27.4C533.3,182.3,539.7,175.1,529.8,170z"/>
|
||||||
|
<path class="st2" d="M433.4,441c18.6-7.5,35.5-15.1,48.7-22.3c0,0,14-2.4,31.5-6.7c0.2,1.1-0.3,2.4-1.7,3.9
|
||||||
|
c14.4,0.9,19.3,4.4,10.2,11.2c-47.6,36.5-249.3,101.8-264.6,96.9c-4.7-1.4-4.2-5.2-3.4-9.2c-1.2,0.2-2.2,0.3-3.2,0.5
|
||||||
|
c-0.1,0-0.1,0-0.2,0c-0.9,0.1-1.8,0.2-2.5,0.2h-0.1c-0.7,0-1.3,0-1.9,0c-0.1,0-0.2,0-0.3,0c-0.5,0-1-0.1-1.3-0.2
|
||||||
|
c-0.1,0-0.1-0.1-0.2-0.1c-41.8,26.4-103.8,62.5-108.7,80.7h0c0.8-0.1,1.8-0.3,2.7-0.5c0.1,0,0.2,0,0.3-0.1c0.9-0.2,2-0.4,3.1-0.6
|
||||||
|
c0.1,0,0.3-0.1,0.5-0.1c1.1-0.2,2.2-0.5,3.4-0.7c0.2,0,0.4-0.1,0.6-0.1c1.2-0.2,2.4-0.5,3.7-0.8c0.2-0.1,0.5-0.1,0.7-0.2
|
||||||
|
c1.3-0.3,2.6-0.6,4-0.9c0.3-0.1,0.5-0.1,0.8-0.2c1.4-0.3,2.9-0.7,4.4-1.1c0.3-0.1,0.6-0.1,0.9-0.2c1.5-0.4,3.1-0.8,4.7-1.2
|
||||||
|
c0.3-0.1,0.6-0.1,0.9-0.2c1.7-0.4,3.4-0.9,5.1-1.3c0.3-0.1,0.6-0.1,0.8-0.2c1.8-0.5,3.7-1,5.6-1.5c0.1,0,0.2-0.1,0.3-0.1
|
||||||
|
c10.7-2.9,22.8-6.3,36-10.1c0,0,0,0,0,0c2.1-0.6,4.3-1.3,6.4-1.9c0.6-0.2,1.3-0.4,1.9-0.6c1.9-0.6,3.9-1.2,5.9-1.8
|
||||||
|
c0.9-0.3,1.8-0.5,2.7-0.8c1.9-0.6,3.7-1.1,5.6-1.7c1.1-0.3,2.2-0.7,3.3-1c1.7-0.5,3.5-1.1,5.3-1.6c1.3-0.4,2.6-0.8,3.9-1.2
|
||||||
|
c1.7-0.5,3.4-1,5.1-1.6c1.4-0.4,2.9-0.9,4.3-1.3c1.6-0.5,3.3-1,5-1.6c1.5-0.5,3.1-1,4.6-1.4c1.7-0.5,3.3-1.1,5-1.6
|
||||||
|
c1.6-0.5,3.1-1,4.7-1.5c1.6-0.5,3.3-1.1,4.9-1.6c1.7-0.6,3.4-1.1,5.1-1.6c1.6-0.5,3.2-1,4.8-1.6c1.8-0.6,3.5-1.1,5.3-1.7
|
||||||
|
c1.6-0.5,3.1-1,4.7-1.6c1.9-0.6,3.7-1.2,5.6-1.9c1.5-0.5,3-1,4.5-1.5c2-0.7,4-1.3,6-2c1.4-0.5,2.8-0.9,4.2-1.4
|
||||||
|
c2.2-0.7,4.4-1.5,6.6-2.2c1.3-0.4,2.5-0.9,3.8-1.3c2.5-0.9,5.1-1.7,7.6-2.6c0.9-0.3,1.9-0.6,2.8-1c3.3-1.1,6.5-2.3,9.8-3.4
|
||||||
|
c0.2-0.1,0.5-0.2,0.7-0.2c7.1-2.5,14.2-5,21.3-7.6c0.7-0.2,1.4-0.5,2.1-0.7c2.8-1,5.7-2.1,8.5-3.1c0.9-0.4,1.9-0.7,2.9-1.1
|
||||||
|
c2.6-0.9,5.1-1.9,7.7-2.8c1.1-0.4,2.2-0.8,3.4-1.3c2.4-0.9,4.7-1.8,7.1-2.7c1.2-0.5,2.4-0.9,3.6-1.4c2.3-0.9,4.6-1.7,6.8-2.6
|
||||||
|
c1.2-0.5,2.5-0.9,3.7-1.4c2.2-0.9,4.4-1.7,6.6-2.6c1.3-0.5,2.6-1,3.8-1.5c2.2-0.9,4.3-1.7,6.4-2.5c1.3-0.5,2.6-1,3.8-1.5
|
||||||
|
c2.1-0.9,4.2-1.7,6.3-2.5c1.3-0.5,2.6-1,3.8-1.6c2.1-0.9,4.2-1.7,6.2-2.6c1.3-0.5,2.5-1,3.8-1.6c2.1-0.9,4.2-1.7,6.2-2.6
|
||||||
|
c1.2-0.5,2.4-1,3.6-1.5c2.1-0.9,4.2-1.8,6.2-2.7c1.2-0.5,2.4-1,3.5-1.5c2.1-0.9,4.2-1.8,6.2-2.7c1.1-0.5,2.1-0.9,3.2-1.4
|
||||||
|
c2.1-0.9,4.3-1.9,6.4-2.9c1-0.4,1.9-0.9,2.9-1.3c2.3-1,4.5-2.1,6.7-3.1c0.8-0.4,1.5-0.7,2.3-1.1c2.7-1.2,5.3-2.5,7.9-3.7
|
||||||
|
c0.3-0.1,0.6-0.3,0.9-0.4c5.8-2.8,11.5-5.6,17-8.4c0.6-0.3,1.2-0.6,1.8-0.9c2.1-1.1,4.1-2.1,6.1-3.2c0.8-0.4,1.6-0.9,2.4-1.3
|
||||||
|
c1.7-0.9,3.5-1.9,5.2-2.8c0.9-0.5,1.8-1,2.7-1.5c1.6-0.9,3.1-1.7,4.6-2.6c0.9-0.5,1.8-1.1,2.8-1.6c1.4-0.8,2.8-1.6,4.2-2.4
|
||||||
|
c0.9-0.6,1.8-1.1,2.8-1.7c1.3-0.8,2.6-1.6,3.9-2.4c0.9-0.6,1.8-1.1,2.7-1.7c1.2-0.8,2.4-1.5,3.6-2.3c0.9-0.6,1.7-1.1,2.6-1.7
|
||||||
|
c1.1-0.7,2.2-1.5,3.3-2.2c0.8-0.6,1.6-1.1,2.4-1.7c1-0.7,2-1.5,3-2.2c0.8-0.6,1.5-1.1,2.3-1.7c0.9-0.7,1.9-1.5,2.8-2.2
|
||||||
|
c0.7-0.6,1.4-1.1,2.1-1.7c0.9-0.7,1.7-1.4,2.5-2.1c0.6-0.6,1.3-1.1,1.9-1.7c0.8-0.7,1.5-1.4,2.3-2.1c0.6-0.6,1.1-1.1,1.7-1.6
|
||||||
|
c0.7-0.7,1.4-1.4,2-2.1c0.5-0.5,1-1,1.4-1.5c0.6-0.7,1.2-1.5,1.8-2.2c0.4-0.5,0.8-0.9,1.1-1.4c0.6-0.8,1.1-1.6,1.6-2.4
|
||||||
|
c0.3-0.4,0.6-0.8,0.8-1.2c0.7-1.2,1.3-2.3,1.9-3.5c3.2-7.5,3.4-15,2-22.1v0c-0.3-1.4-0.7-2.8-1.1-4.2c-0.1-0.5-0.3-0.9-0.5-1.4
|
||||||
|
c-0.3-0.9-0.6-1.8-1-2.7c-0.2-0.5-0.4-1.1-0.7-1.6c-0.3-0.8-0.7-1.6-1.1-2.4c-0.3-0.5-0.5-1-0.8-1.6c-0.4-0.8-0.8-1.5-1.2-2.3
|
||||||
|
c-0.3-0.5-0.5-0.9-0.8-1.4c-0.4-0.8-0.9-1.5-1.4-2.2c-0.3-0.4-0.5-0.8-0.8-1.2c-0.5-0.8-1.1-1.6-1.7-2.4c-0.2-0.3-0.4-0.5-0.5-0.8
|
||||||
|
c-1.5-2.1-3.1-4.1-4.5-5.8h0c-12.6-0.7-46.7-2.4-69.2-2.7c-5.1,0.2-13.2,1.7-22.5,3.6c-11.3-2.1-22.7-3.5-34.2-4.1
|
||||||
|
c-2.1-0.1-4.3-0.2-6.4-0.3c-1.2,5.9-2.9,12.1-5,18.2c0.5,2.2,1.5,4.3,2.8,6.4c0.3,0.6,0,1.5-0.8,2l-6.9,4.6
|
||||||
|
c-0.1,0.1-0.2,0.1-0.4,0.1c-4.8,10.6-10.6,19.4-16.6,23c-1.9,2-3.7,3.7-5.4,3.7c-1.5,0-2.9-0.2-4.3-0.5c-0.5-0.1-1-0.2-1.5-0.3
|
||||||
|
c-0.4,0-0.9,0-1.3,0c-4.8,12.6-9,23.8-11.8,32.5c1,2.5,0.6,6.5,0.8,8.1c0.3,3,0.7,5.4,1,7.5C420.1,446.2,420.7,446.1,433.4,441
|
||||||
|
C433.3,441,433.4,441,433.4,441L433.4,441z"/>
|
||||||
|
<path class="st2" d="M265.6,494.7l0.5,0.3c2.7-0.4,7.7-1.5,14.4-3.2c1.2-4.7,2.9-9,6.2-11.2c0-18.3-27.5-16.5-80-56.1
|
||||||
|
c-0.7,0.9-1.5,1.9-2.2,2.9c-0.9,1.1-1.7,2.3-2.6,3.4c-0.9,1.1-1.9,2.1-3.1,3.1c-2.3,1.9-5.2,3.1-9,3.1c-4.3-0.1-7-0.8-11.3-1.1
|
||||||
|
c-0.7,0-1.4-0.6-1.5-1.2c-0.4-2.8-0.7-4.6-0.9-6.9c-1-0.4-2-0.8-3-1.4c-1,1.6-1.9,3.2-2.7,4.9c-0.2,0.4-0.9,0.8-1.5,0.8l-7.5-0.1
|
||||||
|
c-0.9,0-1.6-0.6-1.6-1.4c0-6.9-1.3-12.1-6.9-16.4c-0.3-0.2-0.6-0.7-0.6-1l0-3.6c-4.1-3.7-7.6-8.3-10.6-13.5l-1.4,3.3l-15.9,4.4
|
||||||
|
l-9.6-4.6l-9.1-17.1l-0.6-2.2l-22.7,48.2l-22.8,23.6l-24,40.4l9.3,5.3l-0.2,1.1l13.2,7.6l-13.1,89.7L87.3,572l41.5-97.9
|
||||||
|
c1.8-0.6,3.6-1.3,5.5-1.9c0.6-0.2,1.1-0.4,1.7-0.6c1.4-0.5,2.9-0.9,4.4-1.4c0.6-0.2,1.3-0.4,1.9-0.6c1.6-0.5,3.3-1,5-1.6
|
||||||
|
c0.5-0.1,0.9-0.3,1.4-0.4c4.6-1.4,9.5-2.8,14.6-4.2c0.3-0.1,0.6-0.2,0.9-0.3c2.3-0.6,4.7-1.3,7.1-1.9c0.4-0.1,0.7-0.2,1-0.3
|
||||||
|
c5.5-1.5,11.2-3,17.1-4.4l22.7,11.4l29.6,14.9l16,8.1L265.6,494.7z M193.3,192.2l-9,19c10.7-7.9,23.7-14.4,37.9-19.8l4.6-7.9
|
||||||
|
c-5.3-4.3-10.2-8.9-10.1-16.3c0.1-3.8,0.8-6.9,2-9.7c0.1-0.3,0.1-0.5,0.3-0.8c0.5-1.1,1.1-2.2,1.7-3.2c-5.8,2.5-15.5,6.5-15.2-1.7
|
||||||
|
c0-1,1.6-3.8,3.5-6.9c0-0.1,0-0.1-0.1-0.1c-0.2-0.5-0.2-1.2,0.1-1.7c0.1-0.1,0.2-0.2,0.3-0.3c0-0.1,0-0.3,0.1-0.4l-0.2-0.2
|
||||||
|
c-0.2-0.2-0.4-0.8-0.3-1.3c0-0.2,0.1-0.4,0.2-0.6c0-0.1,0.1-0.3,0.1-0.4c0.1-0.2,0.1-0.3,0.1-0.4c0-0.2,0-0.5-0.1-0.7
|
||||||
|
c-0.1-0.2-0.1-0.3-0.2-0.5c-0.1-0.2-0.2-0.5-0.3-0.7c-0.1-0.4-0.1-1.1,0.1-1.5c0.2-0.3,0.3-0.6,0.3-1.4c0-0.6,0.4-1.1,0.7-1.2
|
||||||
|
l1.7-0.2c0.4-1,1-1.4,1.5-1.6c0.4-0.1,0.7-0.2,1.1-0.3l0-0.5c0-0.5,0.4-1.1,0.7-1.3c0.1-0.1,0.2-0.1,0.3-0.2
|
||||||
|
c0.1-0.1,0.3-0.3,0.4-0.4c0.3-0.3,0.7-0.7,1.7-0.8c0.7,0,1.2,0.4,1.3,0.8c0.1,0.1,0.1,0.2,0.1,0.3c0.2,0.1,0.5,0.2,0.7,0.4
|
||||||
|
c4.5-6.5,9.6-13.5,13.6-17.8c-3.8-1.4-8.5-3.8-12.9-6.4c-22,6.1-45.3,13.5-71.1,22.6l-2.5,59.5l33.9-4.3l-5.2,11L193.3,192.2z
|
||||||
|
M408.4,76c5.5,5.5,15.2,12.1,24.8,18c2.8,1.7,1.4,5.2-1.8,4.5c-10.9-2.4-23.7-4.4-33.6,0.6c-0.6,0.6-1.1,1.3-1.7,1.9l29.6-2.7
|
||||||
|
c0.6-0.1,2,0.6,2.3,1.2l8.8,15.1c1.6,2.8-1,5.1-3.6,3.2c-2.5-1.8-6.1-3.4-9.2-3.9c-0.6-0.1-1.3-0.2-1.9-0.2c-0.2,0-0.4,0-0.6,0
|
||||||
|
c-0.5,0-1,0-1.5,0.1c0,0-0.1,0-0.1,0c0,0,0,0-0.1,0c0.2,0.1,0.4,0.2,0.6,0.3c0.3,0.1,0.6,0.3,0.8,0.4c0.4,0.2,0.8,0.5,1.1,0.7
|
||||||
|
c0.3,0.2,0.6,0.4,0.9,0.6c0.4,0.3,0.9,0.6,1.3,0.9c0.3,0.2,0.5,0.4,0.8,0.6c0.5,0.4,1,0.9,1.6,1.4c0.2,0.2,0.4,0.3,0.6,0.5
|
||||||
|
c0.7,0.7,1.4,1.4,2.1,2.2c0.1,0.2,0.3,0.3,0.4,0.5c0.6,0.6,1.1,1.3,1.6,2c0.2,0.3,0.5,0.6,0.7,1c0.4,0.6,0.8,1.1,1.2,1.7
|
||||||
|
c0.3,0.4,0.5,0.8,0.7,1.2c0.4,0.6,0.7,1.1,1,1.7c0.2,0.4,0.5,0.9,0.7,1.3c0.3,0.6,0.6,1.2,0.8,1.8c0.2,0.5,0.4,1,0.6,1.5
|
||||||
|
c0.2,0.6,0.4,1.2,0.6,1.9c0.2,0.5,0.3,1,0.4,1.5c0.2,0.6,0.3,1.3,0.4,1.9c0.1,0.5,0.2,1.1,0.3,1.6c0.1,0.7,0.2,1.3,0.2,2
|
||||||
|
c0,0.6,0.1,1.1,0.1,1.6c0,0.7,0,1.5-0.1,2.2c0,0.5,0,1.1-0.1,1.6c0,0.3-0.1,0.6-0.1,0.8c39.1,0.6,61,4,77.3,12
|
||||||
|
c0.8,0.4,1.4,0.8,2,1.2c0.2,0.1,0.3,0.2,0.4,0.3c0.5,0.4,0.9,0.8,1.2,1.1c0.1,0.1,0.1,0.1,0.2,0.2c0.4,0.5,0.7,1,1,1.4v0
|
||||||
|
c0.2,0.5,0.4,1,0.5,1.4c2.6,0.9,5.2,1.8,7.7,3c9.9,5.1,3.4,12.3,3.4,12.3l-51.8,27.4c-0.1,0.5-0.1,0.9-0.2,1.4
|
||||||
|
c-0.5,3.3-1.5,8-2.8,13.3c0.6,1.3,1.3,2.6,1.8,4c8.9,4.4,17.5,8.2,21,9.8l-5.3-8c0,0,12.7-0.5,18.3-0.4l-9.9-10.3l-7.4-7.7l-2.4-2.6
|
||||||
|
l-0.7-0.7c-0.4-0.6,0.3-0.6,0.3-0.6c10.6,0.1,68.4,11.1,83.1,14.4c7.3,1.6,21.1,5.2,28.4,6.3l0.9,0.3c3.7,2.6,6.9,5.4,9.8,8.6
|
||||||
|
l5.8-3.4c29-17.8,34-91.6,34-91.6c0.2-0.5,0.3-1.1,0.4-1.7c0-0.2,0-0.4,0-0.5c0-0.4,0-0.8,0-1.2c0-0.2,0-0.4-0.1-0.6
|
||||||
|
c0-0.4-0.1-0.8-0.2-1.2c0-0.2-0.1-0.3-0.2-0.5c-0.1-0.5-0.3-0.9-0.5-1.4c-0.1-0.1-0.1-0.3-0.2-0.4c-0.3-0.6-0.6-1.2-1-1.8
|
||||||
|
c0,0,0,0,0,0c-1.3-1.9-3.1-3.9-5.4-5.8C601.6,100.7,482.3,74.2,408.4,76z M121,348.5l7,3.1c0-0.3-0.1-0.6-0.1-0.9
|
||||||
|
c-0.6-0.2-1.1-0.5-1.7-0.8c-1.9-1-3.8-2.3-5.6-3.4l-1.2,2.5L121,348.5z M398.2,77.1c0.6-0.2,1-0.4,1.5-0.7c-0.6,0-1.1,0.1-1.7,0.1
|
||||||
|
C398.1,76.7,398.1,76.9,398.2,77.1z M486.7,285.4c-3.3,13.1-9.5,28.4-15.3,34.9c0,0.6,0,1.3,0,2l46.6-27.3
|
||||||
|
C508.7,292.2,497.7,288.8,486.7,285.4z"/>
|
||||||
|
<path class="st1" d="M627.1,253.2c-4.7-10-11.2-18.1-20.3-24.5l-0.9-0.3c-7.4-1.1-21.1-4.7-28.4-6.3c-14.8-3.3-72.6-14.3-83.1-14.4
|
||||||
|
c0,0-0.7,0-0.3,0.6l0.7,0.7l2.4,2.6l7.4,7.7l9.9,10.3c-5.6-0.1-18.3,0.4-18.3,0.4l5.3,8c-3.6-1.6-12.1-5.4-21-9.8
|
||||||
|
c-0.6-1.3-1.2-2.7-1.8-4c1.3-5.2,2.3-10,2.8-13.3c0.2-1.3,0.4-2.5,0.5-3.8c0-0.3,0-0.6,0.1-1c0.1-0.9,0.1-1.9,0.1-2.8
|
||||||
|
c0-0.4,0-0.8,0-1.2c0-0.9-0.1-1.7-0.2-2.6c0-0.4-0.1-0.9-0.2-1.3c0-0.3-0.1-0.6-0.2-0.9c0.1-0.4,0.3-0.7,0.3-1
|
||||||
|
c2.4-14.9-4.5-28.7-17-30.7c-5.8-0.9-11.7-0.2-17.1,1.5c-0.3-0.5-0.7-1.1-1-1.6c-0.1-0.1-0.1-0.1-0.1-0.2c-0.2-0.2-0.4-0.5-0.5-0.7
|
||||||
|
c-0.1-0.1-0.2-0.3-0.3-0.4c-0.2-0.2-0.4-0.4-0.6-0.6c-0.1-0.1-0.3-0.3-0.5-0.5c-0.2-0.2-0.4-0.4-0.6-0.6c-0.4-0.4-0.8-0.7-1.2-1
|
||||||
|
c-0.2-0.2-0.4-0.3-0.7-0.5c-0.3-0.2-0.5-0.4-0.8-0.6c-0.3-0.2-0.5-0.4-0.8-0.6c-0.3-0.2-0.6-0.4-0.9-0.6c-0.3-0.2-0.6-0.4-1-0.6
|
||||||
|
c-0.3-0.2-0.7-0.4-1.1-0.6c-0.2-0.1-0.5-0.3-0.7-0.4c0-0.1,0.1-0.1,0.1-0.2c0.3-0.5,0.5-1.1,0.7-1.6c0.6-1.3,1-2.6,1.3-3.9
|
||||||
|
c0.1-0.5,0.2-0.9,0.3-1.4c0.2-0.8,0.3-1.6,0.4-2.5c0.1-0.5,0.1-1.1,0.1-1.6c0-0.7,0.1-1.5,0.1-2.2c0-0.6-0.1-1.1-0.1-1.6
|
||||||
|
c0-0.7-0.1-1.4-0.2-2c-0.1-0.5-0.2-1.1-0.3-1.6c-0.1-0.7-0.3-1.3-0.4-1.9c-0.1-0.5-0.3-1-0.4-1.5c-0.2-0.6-0.4-1.2-0.6-1.9
|
||||||
|
c-0.2-0.5-0.4-1-0.6-1.5c-0.3-0.6-0.6-1.2-0.8-1.8c-0.2-0.4-0.4-0.9-0.7-1.3c-0.3-0.6-0.7-1.2-1-1.7c-0.2-0.4-0.5-0.8-0.7-1.2
|
||||||
|
c-0.4-0.6-0.8-1.2-1.2-1.7c-0.2-0.3-0.5-0.6-0.7-1c-0.5-0.7-1.1-1.3-1.6-2c-0.1-0.2-0.3-0.3-0.4-0.5c-0.7-0.8-1.4-1.5-2.1-2.2
|
||||||
|
c-0.2-0.2-0.4-0.3-0.6-0.5c-0.5-0.5-1.1-1-1.6-1.4c-0.3-0.2-0.5-0.4-0.8-0.6c-0.4-0.3-0.9-0.7-1.3-0.9c-0.3-0.2-0.6-0.4-0.9-0.6
|
||||||
|
c-0.4-0.2-0.8-0.5-1.1-0.7c-0.3-0.2-0.6-0.3-0.8-0.4c-0.2-0.1-0.4-0.2-0.6-0.3c0,0,0,0,0.1,0c0,0,0.1,0,0.1,0c0.5-0.1,1-0.1,1.5-0.1
|
||||||
|
c0.2,0,0.4,0,0.6,0c0.7,0,1.3,0.1,1.9,0.2c3,0.5,6.7,2,9.2,3.9c2.6,1.9,5.2-0.4,3.6-3.2L428,99.4c-0.3-0.5-1.7-1.3-2.3-1.2
|
||||||
|
l-29.6,2.7c0.6-0.6,1.2-1.3,1.7-1.9c9.9-4.9,22.7-3,33.6-0.6c3.2,0.7,4.6-2.7,1.8-4.5c-10.3-6.4-20.8-13.5-26-19.2
|
||||||
|
c-0.6-0.6-2.1-0.9-2.9-0.6c-0.1,0-2.4,1.2-6.2,2.8c-0.2-0.9-0.4-1.6-0.5-2c-2.1-8.7-5.1-17.8-9-25.8c1.8-6.5-0.9-17.8-9-21.2
|
||||||
|
c-4.4-1.9-8.8-1.4-10.8-5.8c-1.6-3.7-6.2-3.4-7.9-7.1c-1.5-3.4-6.1,1.5-9.7,2c-4.5,0.5-7.2-0.9-11.6,0.4l-5.7,3.3
|
||||||
|
c-5.9-0.3-12.7-0.3-20.2,0.2c-1.9-1.3-5.1-1.9-10.6-1.6c-4.5,0.3-7.7,1.5-9.3,3.8c0,0.1-0.1,0.1-0.1,0.2
|
||||||
|
c-11.8,2.6-24.3,7.3-34.3,13.1c-3.2,1.9-5.8,4.2-7.6,6.8c-1.7,1.5-3.1,3.1-3.9,4.7c-2.5,5-4.3,11.7-5.5,18.7
|
||||||
|
c-5.7,2.7-11.9,5.2-19.7,6.3c-1.7,0.2-3.4,0.5-5.1,0.8c-0.4,0.1-0.9,0.1-1.3,0.2c-1.2,0.2-2.5,0.4-3.7,0.6c-0.5,0.1-1,0.2-1.5,0.3
|
||||||
|
c-1.1,0.2-2.3,0.4-3.4,0.6c-0.5,0.1-1,0.2-1.5,0.3c-1.1,0.2-2.1,0.4-3.2,0.6c-0.5,0.1-1.1,0.2-1.6,0.3c-1,0.2-2,0.4-2.9,0.6
|
||||||
|
c-0.5,0.1-1,0.2-1.5,0.3c-0.9,0.2-1.9,0.4-2.8,0.6c-0.5,0.1-1,0.2-1.4,0.3c-0.9,0.2-1.7,0.4-2.6,0.5c-0.5,0.1-0.9,0.2-1.4,0.3
|
||||||
|
c-0.8,0.2-1.6,0.4-2.4,0.5c-0.4,0.1-0.8,0.2-1.2,0.3c-0.8,0.2-1.5,0.3-2.2,0.5c-0.4,0.1-0.7,0.2-1,0.2c-0.7,0.2-1.4,0.3-2.1,0.5
|
||||||
|
c-0.3,0.1-0.6,0.1-0.9,0.2c-0.6,0.1-1.2,0.3-1.8,0.4c-0.3,0.1-0.5,0.1-0.8,0.2c-0.6,0.1-1.2,0.3-1.7,0.4c-0.1,0-0.2,0.1-0.3,0.1
|
||||||
|
c-0.6,0.1-1.2,0.3-1.6,0.4c0,0-0.1,0-0.1,0c-1.3,0.3-2,0.5-2.3,0.6c-0.1,0-0.2,0-0.2,0c0,0,0,0,0,0c-0.1,0-0.3,0.1-0.4,0.1
|
||||||
|
c0,0-0.1,0.1-0.1,0.1c-0.1,0-0.2,0.1-0.3,0.1c-0.1,0.1-0.3,0.2-0.4,0.2c-0.1,0.1-0.3,0.2-0.4,0.3c-0.2,0.2-0.4,0.4-0.5,0.7
|
||||||
|
c0,0.1-0.1,0.2-0.1,0.3c0,0.1-0.1,0.3-0.1,0.4c0,0.1,0,0.2,0,0.3c0,0.2,0.1,0.3,0.1,0.4c0,0.1,0.1,0.2,0.1,0.3
|
||||||
|
c0.1,0.2,0.2,0.3,0.3,0.4c0.1,0.1,0.1,0.2,0.2,0.2c0.2,0.2,0.4,0.3,0.6,0.4c0.1,0,0.1,0.1,0.2,0.1c0.3,0.1,0.6,0.2,0.9,0.3
|
||||||
|
c0,0,0.1,0,0.1,0c0,0,0.1,0,0.1,0c1.1,0.2,20.6,3.7,32.3,7.6c1.3,0.4,2.6,0.9,3.7,1.3c1.6,0.6,2.8,1.3,3.7,1.9
|
||||||
|
c5.3,3.8,15.7,10.1,22.6,12.6c-4,4.3-9.1,11.3-13.6,17.8c-0.2-0.1-0.5-0.3-0.7-0.4c0-0.1,0-0.2-0.1-0.3c-0.2-0.4-0.6-0.9-1.3-0.8
|
||||||
|
c-0.9,0.1-1.4,0.5-1.7,0.8c-0.1,0.1-0.3,0.3-0.4,0.4c-0.1,0.1-0.2,0.2-0.3,0.2c-0.3,0.2-0.6,0.8-0.7,1.3l0,0.5
|
||||||
|
c-0.4,0.1-0.8,0.1-1.1,0.3c-0.5,0.2-1.1,0.6-1.5,1.6l-1.7,0.2c-0.3,0-0.6,0.6-0.7,1.2c-0.1,0.8-0.1,1.1-0.3,1.4
|
||||||
|
c-0.2,0.4-0.3,1.1-0.1,1.5c0.1,0.3,0.2,0.5,0.3,0.7c0.1,0.2,0.1,0.3,0.2,0.5c0.1,0.3,0.1,0.4,0.1,0.7c0,0.1,0,0.1-0.1,0.4
|
||||||
|
c-0.1,0.1-0.1,0.3-0.1,0.4c-0.1,0.2-0.1,0.4-0.2,0.6c-0.1,0.5,0,1.1,0.3,1.3l0.2,0.2c0,0.1-0.1,0.3-0.1,0.4
|
||||||
|
c-0.1,0.1-0.2,0.2-0.3,0.3c-0.3,0.4-0.3,1.2-0.1,1.7c0,0.1,0,0.1,0.1,0.1c-1.9,3.1-3.4,5.8-3.5,6.9c-0.4,8.3,9.4,4.2,15.2,1.7
|
||||||
|
c-0.6,1.1-1.2,2.1-1.7,3.2c-0.1,0.2-0.2,0.5-0.3,0.8c-1.2,2.8-2,5.9-2,9.7c-0.1,7.4,4.8,12,10.1,16.3l-4.6,7.9
|
||||||
|
c-25.3,9.5-46.6,22.6-58,40.8c-4.3,1.7-8.6,3.5-14.2,3.4c-0.2,1.8-1.5,2.8-1.7,4.6c-0.4,3.8,2.9,5.9,2.5,9.8
|
||||||
|
c-0.2,1.8-4.1-0.7-4.8,0.7c-3.9,6.1-6.9,12-12.4,16.5c-1.1,6-0.9,10.7,1.2,15.9c-6,9.8-11.1,20.1-15.3,30.7
|
||||||
|
c-6.8,8.5-13.1,23.2-0.5,31.4c2,1.3,4.8,3.2,7.4,4.6c0.6,0.3,1.1,0.6,1.7,0.8c0,0.3,0.1,0.6,0.1,0.9l-7-3.1l-15.8,4.3
|
||||||
|
c-3.2,2.8-4.8,6.3-4.5,10.5l4.9,18.5l9.1,17.1l9.6,4.6l15.9-4.4l1.4-3.3c3,5.2,6.5,9.8,10.6,13.5l0,3.6c0,0.3,0.3,0.8,0.6,1
|
||||||
|
c5.6,4.3,6.9,9.5,6.9,16.4c0,0.8,0.7,1.4,1.6,1.4l7.5,0.1c0.6,0,1.3-0.4,1.5-0.8c0.9-1.8,1.7-3.3,2.7-4.9c1,0.6,2,1,3,1.4
|
||||||
|
c0.2,2.3,0.5,4.1,0.9,6.9c0.1,0.6,0.8,1.2,1.5,1.2c4.3,0.3,7,1,11.3,1.1c3.8,0.1,6.7-1.2,9-3.1c1.1-0.9,2.2-2,3.1-3.1
|
||||||
|
c0.9-1.1,1.8-2.2,2.6-3.4c0.8-1,1.5-2,2.2-2.9c52.5,39.6,80,37.8,80,56.1c-3.3,2.3-5,6.6-6.2,11.2c2.2-0.6,4.5-1.2,7.1-1.9
|
||||||
|
c0-1.4,0.1-2.5,0.9-3c3.4-2.3,3.5-15.4,3-19.9c24.4-10.6,60.8-28.4,90.5-32.9c0.3,6.8,3.2,16,4.6,24.6v0c0.4-0.1,0.7-0.3,1.1-0.4
|
||||||
|
c0.1,0,0.2-0.1,0.4-0.1c2-0.7,4-1.4,6-2.1v0c-1.5-9.2-3.9-18.3-4.2-22.8c1.5-0.1,3.1-0.2,4.5-0.2c8.5-0.1,14.6,0.9,17.7,1.6
|
||||||
|
c0.1,3.7,0.7,8.9,1.9,14c2.1-0.8,4.1-1.6,6.1-2.3c-0.4-2.1-0.7-4.5-1-7.5c-0.2-1.6,0.2-5.6-0.8-8.1c2.8-8.7,6.9-19.9,11.8-32.5
|
||||||
|
c0.4,0,0.9,0,1.3,0c0.7,0.1,1.3,0.2,1.5,0.3c1.4,0.3,2.8,0.5,4.3,0.5c1.8,0,3.5-1.7,5.4-3.7c6-3.5,11.7-12.3,16.6-23
|
||||||
|
c0.1-0.1,0.3-0.1,0.4-0.1l6.9-4.6c0.8-0.5,1.2-1.5,0.8-2c-1.4-2.2-2.3-4.3-2.8-6.4c4.9-14.3,7.7-29.3,7.1-38.7
|
||||||
|
c5.8-6.5,12.1-21.8,15.3-34.9c26,8.1,52.3,15.9,55.7,16.4c10.7,1.7,21.8,4.2,32.9,5.4c11.1,1.3,22.3,1.3,33.2-1.9
|
||||||
|
c1.7-0.5,6.1-6.5,10.1-12.4c4.1-6,8.1-12.3,9.2-13.7c0.1-0.1,0.1-0.2,0.3-0.8l0.2-1.2c0.2-0.9,0.4-2.1,0.5-3.2
|
||||||
|
c0.3-2.4,0.6-4.8,0.8-5.5C629.6,268.5,627.1,253.2,627.1,253.2z"/>
|
||||||
|
<path class="st3" d="M269,415.1c-0.6-0.3-1.2-0.5-1.8-0.8c-0.7,0.2-1.4,0.5-2,0.7c-0.1,0.3-0.3,0.6-0.4,0.8
|
||||||
|
c-0.6,1.1-1.1,2.1-1.7,3.1c-1.3,2.1-3,3.9-6.3,4.9c-2.3,0.7-4.5,0.6-6.5,0.1c-1-0.3-1.9-0.6-2.8-1c-0.9-0.4-1.7-0.8-2.6-1.2
|
||||||
|
c-0.4-0.2-0.7-0.3-1.1-0.5c-3.6,0.7-6.4,1.1-8.9,1.2c0,2.1,0.2,4.8-0.7,5c-0.8,0.2-1.6,0.5-2.4,0.6c-0.9,0.2-1.9,0.3-3,0.3
|
||||||
|
c-0.5,0-1-0.1-1.4-0.2c40.7,22.9,61.1,29.4,61.9,29.1c0,0,34.8-11.3,48.1-17.4c12-5.4,29.2-10.9,46.1-13c1.4-1.8,3.8-1.7,5.4-0.6
|
||||||
|
c8.1-0.6,16-0.4,23,1.1c2.6-4,4.7-8.6,6.9-13.8c2.3-5.3,4.5-10.6,6.8-15.9c-2.6-0.3-5.2-0.9-7.6-1.7c-1-0.4-3-0.9-5.8-1.5
|
||||||
|
c-1.7,1.3-3.4,2.5-5.3,3.8c0,0.2,0,0.4-0.1,0.6c-0.1,0.7-0.3,1.5-0.6,2.2c-0.6,1.5-1.6,3.1-3.5,4.4c-0.9,0.6-1.9,1.1-2.9,1.6
|
||||||
|
c-0.9,0.4-1.7,0.7-2.5,1c-0.8,0.3-1.6-1-2.4-2.4c-3.3,1.9-7,3.7-10.9,5.4c-0.4,0.5-0.7,1-1.1,1.6c-0.6,0.8-1.4,1.7-2.1,2.5
|
||||||
|
c-1.6,1.6-3.5,3.1-6,3.9c-3.5,1.2-6,0.8-8.1,0c-0.4-0.2-0.9-0.4-1.3-0.6c-3.9,0.8-7.6,1.6-11,2.4c-1.5,0.8-3.2,1.7-5.2,2.9
|
||||||
|
c-1.2,0.7-6.2,3.1-7.3,3.3l-9.5,0.7c-3.6,1.4-6.8,2.8-9.7,4.1c-5.3,4.9-13.2,12.8-14.4,12.8c-2.1,0.1-2.8-2.2-4.8-2.1
|
||||||
|
c-2.1,0.1-2.5,2.5-4.6,2.6c-5.4,0.3-7.9-4.2-10.2-9c-2.5-2.7-4.3-6.2-6-9.7c-1.4-1.3-3.1-2-5.3-2.1c-0.1-1.8-1.3-2.9-1.4-4.7
|
||||||
|
c0-0.7-0.2-1.3-0.5-1.8c-0.7-0.2-1.3-0.5-1.9-0.8C271.9,416.6,270.5,415.9,269,415.1L269,415.1z M221.2,423
|
||||||
|
c-0.1-0.1-0.1-0.2-0.2-0.3c-0.9,0-1.9,0.1-3,0.2c1.9,1.1,3.8,2.2,5.7,3.2c-0.4-0.4-0.9-0.9-1.2-1.4C222,424.2,221.6,423.6,221.2,423
|
||||||
|
z M388,458.1c-0.1,0.1-0.3,0.1-0.4,0.1C387.8,458.2,387.9,458.1,388,458.1z M412.1,434.6c-3.1-0.7-9.2-1.7-17.7-1.6
|
||||||
|
c-1.5,0-3,0.1-4.5,0.2c0.3,4.5,2.7,13.6,4.2,22.8c6.7-2.4,13.4-4.9,19.9-7.4C412.9,443.5,412.2,438.3,412.1,434.6z"/>
|
||||||
|
<path class="st3" d="M381.9,434c-29.7,4.5-66.1,22.3-90.5,32.9c0.4,4.5,0.4,17.6-3,19.9c-0.8,0.5-0.9,1.6-0.9,3
|
||||||
|
c23.5-6.4,61.2-17.9,99-31.3C385.2,450,382.3,440.8,381.9,434z"/>
|
||||||
|
<path class="st4" d="M213.3,308.1c1.2-0.9,3.7-2.6,7.4-4.4c-1.8-0.3-3.5-0.8-5.2-1.4c-28.6-10-66.5-5.6-91.9,17.4
|
||||||
|
c-1.4,1.3-3.2,3-4.8,4.7c0,0.1,0,0,0,0c-2.5,5.1-3,10.6,3.3,14.7c2,1.3,3.6,2.5,4.8,3.4c-0.7-5.7-1-10.6-0.1-11.6
|
||||||
|
c0,0,0.1-0.1,0.2-0.1c0.1-0.2,0.1-0.5,0.3-0.7C127.3,330.1,159.7,296.1,213.3,308.1z"/>
|
||||||
|
<path class="st4" d="M220.7,294.1c5.9,2.2,9.3,3.8,10.8,5c0.1,0.1,0.1,0.2,0.2,0.2c5.6-1.7,12.5-3.1,20.4-3.5c0.8,0,1.6,0,2.4-0.1
|
||||||
|
c3.8-1.9,7.7-3.7,11.5-5.6c0.2-3.7,0.6-7.2,1.3-10.1c-0.5-4.2-1.1-8.3-1.9-12.4l-12.3,6.1l-1.9-47.6c-1.5,1-3.3,1.8-5.3,2.1
|
||||||
|
c-0.5-1.9,1.1-3.2,1.2-5.4c0.1-5.9-9.6-6.1-9.5-12c0-0.7,0.2-1.3,0.3-1.9l-25.3-0.8l3.8-6.6c-15.7,7.3-29.4,16.3-39.5,27.6
|
||||||
|
c0.7,0,1.4-0.1,2.2,0c2.1,0.2,2.4,2.6,4.4,2.8c2.1,0.2,2.9-2.1,4.9-1.9c1.8,0.2,2.8,1.5,4.6,1.7l-0.1,11.9c-1.1,4.9-4,6.7-5.9,11.3
|
||||||
|
c-1.6,3.7,0.6,10.8-3.5,10.3c-4.4-0.5-6.7,4-11.1,3.6c-5.3-0.6-7.3,4-11.5,7.1c-10,7.6-20.4,8.4-26.5,18.8c1.6-1,3.2-1.9,4.7-2.7
|
||||||
|
C157.2,283,184.6,280.4,220.7,294.1z M381.3,308.1c-2.6-0.6-4.6-0.9-5.8-1c1,1.1,1.6,2,2,2.7c2.7,0.9,11.6,4.3,22,11.1
|
||||||
|
c12.4,8.1,27.1,21.1,35.8,40.9l0.3,1c0.1-0.1,0.2-0.2,0.4-0.3c1.4-1.1,2.8-2,4.1-2.9c0.6-0.5,1.3-0.9,1.9-1.4
|
||||||
|
C430.8,333.9,407.3,314.1,381.3,308.1z M387.7,294.4c6.8,1.1,16,3.2,25.8,7.7c14.4,6.6,29.9,18.4,40.5,38.7c0.1-0.1,0.1-0.2,0.2-0.3
|
||||||
|
c0.3-0.8,0.6-1.6,0.8-2.6c0.2-1,0.4-2,0.6-3c0.3-1.6,2.5-2.4,3.1-1.1l1.6,3.6c3.9-15.4,4.5-25.5,4.6-25.6c0,0,6.2-6.7,12.3-15.2
|
||||||
|
c2.5-3.4,3.8-8,4.4-12.8c-13.3-4.2-26.1-8.3-35.3-11.3c-21,7.3-41.4,14.4-61.7,21.4C385.5,294.1,386.5,294.2,387.7,294.4z"/>
|
||||||
|
<path class="st2" d="M123.5,319.8c25.4-23.1,63.4-27.5,91.9-17.4c1.9,0.7,3.7,1.1,5.2,1.4c2.9-1.5,6.6-3,11.1-4.4
|
||||||
|
c-0.1-0.1-0.1-0.2-0.2-0.2c-1.5-1.2-4.9-2.8-10.8-5c-36.1-13.7-63.5-11.1-81.3-1.9c-1.5,0.8-3,1.7-4.7,2.7c-0.2,0.3-0.4,0.6-0.6,1
|
||||||
|
l-0.3-0.3c-1.5,2.8-2.9,5.5-4.3,8.3c-0.6,1.1-1.1,2.2-1.6,3.4c-0.4,0.9-0.8,1.8-1.2,2.7c-0.9,2.1-1.9,4.2-2.7,6.3l-0.4,0.6
|
||||||
|
c0,0-0.9,1.1-2.1,2.8c-1,1.6-2,3.2-2.9,4.9C120.4,322.8,122.2,321,123.5,319.8z M413.4,302.1c-9.8-4.5-19-6.7-25.8-7.7
|
||||||
|
c-1.1-0.2-2.1-0.3-3.1-0.4c-1.6,0.6-3.2,1.1-4.8,1.7c-2.3,2.8-6.1,5.2-9.4,6.9c2.3,1.6,4,3.2,5.2,4.6c1.2,0.1,3.2,0.4,5.8,1
|
||||||
|
c26,6,49.4,25.8,60.6,50c1.8-1.4,3.4-2.8,4.8-4.9c0.3-0.4,0.5-0.9,0.6-1.5c0.1-0.7,0.2-1.4,0.3-2c0.2-1.4,0.5-3.5,3-5.2
|
||||||
|
c1.6-1.1,2.6-2.3,3.2-3.7C443.3,320.5,427.8,308.7,413.4,302.1z"/>
|
||||||
|
<path class="st5" d="M276.7,269.6c0.7-0.1,1.5-0.1,2.2-0.1c0-1,0.1-2,0-3c0-1.9-0.3-3.5-0.9-5l-2.9,1.4
|
||||||
|
C275.7,265.1,276.2,267.3,276.7,269.6z"/>
|
||||||
|
<path class="st2" d="M273.3,270.5c1.1-0.5,2.3-0.8,3.4-0.9c-0.5-2.2-1-4.5-1.5-6.7l-9.8,4.8c0.8,4.1,1.4,8.2,1.9,12.4
|
||||||
|
C268.4,275.3,270.3,271.8,273.3,270.5z"/>
|
||||||
|
<g>
|
||||||
|
<path class="st5" d="M375.2,276.1c17.8-8.3,34.4-16.6,43.9-21.8c-2.9-0.9-5.4-1.8-6.9-2.6c-0.7-0.4-1.6-1-2.7-1.8l-1.2,0.5
|
||||||
|
c-0.2,0.3-0.4,0.6-0.6,1c-0.4,0.7-0.8,1.4-1.3,2c-0.4,0.7-1,1.3-1.5,1.9c-1.2,1.2-2.8,2.1-4.9,2.1c-1,0-2-0.2-3-0.4
|
||||||
|
c-0.8-0.2-1.6-0.5-2.4-0.8c-0.1,0-0.2-0.1-0.4-0.1l-12.7,5.1c-0.4,0.5-0.9,1-1.3,1.4c-0.7,0.7-1.5,1.4-2.3,2
|
||||||
|
c-1.7,1.2-3.7,2.1-6.2,2.1c-1.1,0-2-0.2-2.9-0.5l-0.5,0.2C370.6,269.3,373,272.5,375.2,276.1z M427,261.2c-0.9-1.3-1.7-2.7-2.6-4.1
|
||||||
|
c-0.3-0.5-0.6-1.1-1-1.6c0,0-0.1,0-0.1,0c-0.4,0.2-0.9,0.4-1.3,0.6c-9.2,5.1-26.5,13.8-45.3,22.6c1.4,2.5,2.8,5.2,4.1,8
|
||||||
|
c17.6-6.1,35.3-12.2,53.3-18.5c-0.9-0.4-1.4-0.6-1.5-0.8l-0.1-0.5c-0.9-0.6-1.8-1.2-2.5-2C428.9,263.8,427.9,262.5,427,261.2z
|
||||||
|
M121.7,379.8c-6.1-7.4-3.4-22.3-2.8-25.2c-0.4,0.1-0.8,0.2-1.1,0.4c-4.1,1.7-12.2,6.9-10.4,11.4L118,390
|
||||||
|
c1.7,4.5,12.4,6.3,16.4,4.6c2.5-1,3.9-2.5,4.3-4.5c-1-2.1-1.9-4.2-2.7-6.3C131.7,384.1,125.1,383.9,121.7,379.8z"/>
|
||||||
|
<path class="st5" d="M120.3,354.4l1.7,0.4c0,0.2-3.6,16.2,2.1,23.1c2.2,2.7,6.9,3.1,10.7,2.9c-1.7-4.8-3.1-9.8-4.2-14.8l-2.4-6.2
|
||||||
|
C126.8,356.2,123.6,354.2,120.3,354.4z M231.4,356.9c-5.5-14.9-21.4-23.8-18.6-41.7c0.1-0.6,0.3-1.1,0.4-1.6c-0.6,0-1.4,0-2.4,0.1
|
||||||
|
c-14.1,1.2-26.4,8.6-34,20.9c-1.6,2.6-4.7,1.2-3.1-1.4c6.1-9.8,16.2-18.5,27.6-22.3c-22.8-2-44.4,5.6-63.1,20.1
|
||||||
|
c-3.4,2.7-5.3,4.5-5.5,4.8c0.9,10.5,5.7,40.9,20.5,58.5c0.4,0.1,0.7,0.3,1,0.6c0.7,0.9,1.3,1.7,1.9,2.4c0.3,0.3,0.6,0.6,0.9,0.9
|
||||||
|
c0.4,0.4,0.9,0.8,1.4,1.2c1.1,0.8,2.4,1.4,4.2,1.4c2.7,0.1,4,1.8,4.8,3c0.4,0.6,0.7,1.2,1.2,1.7c0.4,0.5,0.8,0.8,1.2,1
|
||||||
|
c2.7,1.4,5.2,1.6,8.1,1.8c1.5,0.1,3,0.1,4.6,0.2c1.1,0.1,2.2,0.2,3.4,0.5c0.2-2,0.5-3.6,0.9-5.8c0.2-1,1.3-1.4,2.4-0.9
|
||||||
|
c2.7,1.3,4.7,2.4,7.2,3.6l0-6.9c0-1.1,1.3-1.7,2.4-1.1c3.1,1.7,5.2,2.8,7.8,5c1.1-0.7,2-1.3,3-2c1.2-0.9,2.2-1.8,3-3.1
|
||||||
|
c0.4-0.6,1.4-0.9,2.1-0.5l6.8,3c1.7-4.1,4.7-7.4,9.6-8.8c-0.8-2-1.5-3.7-2.6-5.9c-0.5-1,0.3-1.9,1.5-1.9l5.3,0.1l0.5,0.1
|
||||||
|
c3,1.5,5,2.4,7.5,3.3c0.8-0.8,1.7-1.6,2.6-2.3c-0.2-1-0.4-2.1-0.5-3.1c-1.7-2.2-3.3-4.3-4.6-6.3c-3.6-2-15.9-10.1-9.8-10.5l2.8-2.4
|
||||||
|
C232.8,360.6,232.1,358.7,231.4,356.9z"/>
|
||||||
|
<path class="st5" d="M397.3,327c-1.9-1.4-3.8-2.7-5.6-3.9c-10.4-6.8-19.3-10.1-22-11.1c-0.8-1.3-2.7-3.8-6-6.4
|
||||||
|
c-3.3,1.4-6.5,2.6-8.8,3.4c4.4,11.7-30.4,20.5-46,15.1c-2,2.4-7.6,6.4-14.1,9.5c0,0.5,0,0.9-0.1,1.4c-0.5-0.2-0.9-0.5-1.3-0.8
|
||||||
|
c-9,3.9-19.2,5.5-22.7-2.7c-1.2-2.6-3.5-14.8-4.4-27.6c-11.3-1.7-24.1-1.4-34.7,1.1c-4,1.6-7.9,3.5-11.5,5.8c-0.8,1.1-1.5,2-2,3.1
|
||||||
|
c-0.3,0.6-0.6,1.3-0.7,2c-2.4,14.9,17.2,25.1,22.2,38.8c1.4,3.7,2.3,6.9,5,11.3l2.3,0.8c-1-7.1,12.3,1.5,19.1,4.3
|
||||||
|
c5.8,2.3,7.2,11.8,13,14.2c2.7,1.1,7.8,2.9,10.6,4c3.8,1.6-0.7,10,7.1,10.1c4.2,0.7,11.4,0,15.3,1.5c1.9,0.8,6.3-6.9,8.2-6.2
|
||||||
|
l9.2-1.9c0.4,4.6,8.5,10,12.9,11.8c1.2,0.5,2.3-0.1,3.4-0.5l2.2-1.1c1.9-2.3,2.1-3.2,4.1-6.2l6.2-0.4l14.4-12.7
|
||||||
|
c1.1-0.7,2.2-0.5,2.2,0.5c0.1,2.4,0.2,4.1,0.4,6.1c5.3-1.9,17.4-12.7,20.9-10.6l4.9-6.5c0.6-0.7,1.6-1.1,2.2-0.9
|
||||||
|
c1.4,0.5,2.7,0.6,4.2,0.6c1.2,0,2.4-0.2,3.7-0.3c1.4-3.2,2.8-5.4,4.9-8.5c0.8-1.2,2.2-1.5,2.8-0.6l3.2,5.2c1.6-2.3,3-4.3,4.7-6.7
|
||||||
|
C419.2,346.2,407.9,334.8,397.3,327z M598.1,235c0.1,0,0.1,0,0.2,0c-7.3-0.6-63.7-13.3-85.8-18.6c-5.4,0.4,29,22,23.8,22.3
|
||||||
|
c-10.5,0.5-17.1-1.8-26.2-0.9c-1.4,0.1,0.2,1.7,2.5,3.7C553.1,241.8,585,237.2,598.1,235z M598.3,235c1.3,0.1,2.5,0.3,3.6,0.6
|
||||||
|
C600.7,235.4,599.5,235.1,598.3,235z M503.1,263.9c-11.9,1.2-23-0.5-33.6-3.2c0,0.6-0.1,1.1-0.1,1.7c0,0.9-0.8,1.6-1.7,1.6
|
||||||
|
l-7.5-0.1c-0.6,0-1.3-0.5-1.5-1c-0.6-1.6-1.2-2.9-1.8-4.2c-1.2,0.2-2.5,0.4-3.9,0.5c-0.2,1.9-0.4,3.6-0.7,5.7
|
||||||
|
c31.4,10.3,94,28.7,137.8,35.7c3,0.5,5.9,0.1,8.6-0.8C581.1,289.2,531.3,261.2,503.1,263.9z M616.5,278.4c-0.3,1-0.7,1.9-1.1,2.9
|
||||||
|
c4.6-11.3,5.4-25.1,0.5-34.7c-18.3,4-42.9,10.2-47.9,14.3C568.3,264.1,590.3,272,616.5,278.4z"/>
|
||||||
|
<path class="st5" d="M477,243c-0.1,0.1-0.1,0.2-0.2,0.3c-4.6,3.8-6.4,8.5-7,14.3c10.5,2.8,21.4,4.4,33.1,3.3
|
||||||
|
c30.5-3,83.4,27.5,99.3,37.2c-1.1,0.6-2.2,1.1-3.4,1.6c7.3-2.5,13.1-9.7,16.6-18.3c-13.8-3.4-48.8-12.6-50.4-19.7
|
||||||
|
c-0.2-0.7-0.2-2.1,1.2-3.3c5.5-4.6,30.9-10.8,48-14.5c0.6,0.9,1.2,1.8,1.7,2.8c-2.7-5.3-7.2-9.3-13.8-10.9c1.1,0.3,2.1,0.6,3.1,1
|
||||||
|
l0,0.1c-0.5,0.1-37.4,7.8-88.9,7.8c2.8,2.2,4.9,4.2,3.2,4.2c-6,0.1-13.7-2-21.6-4.5C491.2,244,484.1,243.6,477,243L477,243z
|
||||||
|
M487.4,240.7c0.1,0,0.3,0.1,0.4,0.1c-3.7-1.2-7.2-2.4-10.4-3.3l0,2.4C480.7,240.2,484.1,240.5,487.4,240.7z"/>
|
||||||
|
</g>
|
||||||
|
<path class="st4" d="M282.2,57.5c0.4,0.1,0.8,0.2,1.2,0.2c0.8-9.4,4.4-16.9,13.6-21.6C274.6,40,257.5,47.8,255.3,52
|
||||||
|
c-1.2,2.4-2.1,6-2.9,10c7.3-3.3,14.8-5.9,25.3-5.1l1.5-2C280.4,55.8,281.3,56.6,282.2,57.5z M301.8,56.5c4.5,4.7,10.1,6.9,16,10
|
||||||
|
c1.3,0.6-0.6,4.3,1,4.3c3.5,0.1,5.2-3.2,8.7-3.1c1.6,0,2.7,1.1,4.3,1.1c0.6,9.4,6.8,14.5,8,22.9c15,0.1,32.2-4.8,45.1-9.5
|
||||||
|
c0.9-0.3,1.9-0.7,2.8-1c0.4-0.2,0.8-0.3,1.2-0.4c0.7-0.3,1.3-0.5,1.9-0.7c-2.2-13.7-6.8-33.7-15.7-40.6
|
||||||
|
c-14.5-11.2-35.5-5.7-51.7-5.6c-0.4,0.2-1,0.4-2,0.5c-17.8,1.4-25.2,12.3-28,17.5c-0.8,1.4-1.2,3.2-1.4,5.1
|
||||||
|
C295,56.3,298.2,56.1,301.8,56.5z"/>
|
||||||
|
<path class="st2" d="M315.9,27.4c-0.5-4.8-1.7-7.7-12.6-7.1c-4.3,0.2-7.2,1.4-8.7,3.5c-0.9,1.2-1.1,2.5-1.1,3.4c0,0.7,0.1,1,0.1,1.1
|
||||||
|
C297.2,29.4,307,30.5,315.9,27.4z M251.8,126.9c0.4-0.6,0.9-1.3,1.3-1.9c0,0,0,0,0-0.1c1.4-2.1,2.9-4.3,4.2-6.3
|
||||||
|
c0.1-0.1,0.2-0.2,0.2-0.4c0.3-0.4,0.5-0.8,0.8-1.2c0.5-0.8,1-1.5,1.4-2.2c-0.7,0-1.4,0-2,0c-0.9,0-1.9,0-2.8,0
|
||||||
|
c-1.5,0-2.9-0.1-4.3-0.1c-0.9,0-1.8-0.1-2.6-0.1c-1.5-0.1-3-0.3-4.6-0.5c-0.7-0.1-1.4-0.2-2.1-0.3c-0.7,0.6-1.4,1.2-2.2,1.9
|
||||||
|
c-3.7,3.5-9.4,11.5-13.7,17.7c0.5,0.7,0.8,1.4,0.7,2.5c0,0.2-0.1,0.5-0.2,0.7c0,0.1-0.1,0.2-0.1,0.3c-0.1,0.1-0.1,0.2-0.2,0.2l-1,1
|
||||||
|
c-0.1,0-0.3,0.2-0.4,0.2c-1.2,0-2,0.3-3,1c0,0,0,0.1-0.1,0.1c0.7,0.7,1.2,1.3,1.9,2.1c0.5,0.7,0.3,1.6-0.5,2
|
||||||
|
c-0.4,0.2-0.7,0.4-1.1,0.7c1.9-0.3,5.2-1.7,9.3-3.3c5.9-7.2,11.3-14.2,20.4-13c0.1-0.2,0.2-0.3,0.4-0.5
|
||||||
|
C251.6,127.2,251.7,127.1,251.8,126.9z"/>
|
||||||
|
<path class="st5" d="M231.6,187.5l-10.1,15.9l18.1,0.6c0.1-0.6,0.3-1.1,0.3-1.7C240,195.7,236.2,191.4,231.6,187.5z M259.8,241.5
|
||||||
|
l-1.9,25.1l17.3-8.6c-0.9-0.6-2-0.8-3.3-0.9c-2.2-0.1-4.6,0.2-7.1,0.1c-0.9,0-1.6-0.8-1.6-1.6c0.1-4,0.5-7.6,0.3-10.9
|
||||||
|
c-0.1-1.1-0.2-2.3-0.5-3.4c-0.4,0-0.8,0-1.2,0L259.8,241.5z M390.6,163.5L390.6,163.5l-2.5-1.3h0L390.6,163.5z"/>
|
||||||
|
<path class="st5" d="M361.6,177.3c-5.2-0.8-13.2-5-19.3-11.4l-1.4,1.1c0.1,0.1,0.2,0.3,0.3,0.4c4.9,6.4,7.9,11.3,9.3,19.3l0.5-0.3
|
||||||
|
c0.8-0.4,1.5-0.9,2.2-1.4c1.6-0.9,3.4-1.8,5.9-1.8c0.8,0,1.5,0.3,2,0.6c0.2,0.1,0.5,0.3,0.7,0.5l0.5,0.4c0.3,0.3,0.5,0.5,0.7,0.6
|
||||||
|
c0.1,0.1,0.3,0.1,0.4,0.1c0.8,0,1.5,0.7,1.6,1.5c0.2,2.8,0.3,4.8,0.6,7.2l1-0.7c1.1-0.7,2.4-1.4,4.3-1.4c0.7,0,1.3,0.1,1.8,0.2
|
||||||
|
c0.5,0.1,0.9,0.3,1.4,0.4c0.8,0.3,1.4,0.5,2.2,0.5c0.9,0,1.6,0.8,1.6,1.6c-0.1,3,1.1,5.1,2.8,7.2c0.9,1.1,2,2.2,3,3.3
|
||||||
|
c0.8,0.9,1.7,1.8,2.5,2.9c2.6-1.1,4.6-2,7.7-3.7l0.5-0.1l5.4,0.1c1.2,0,1.9,1.1,1.5,2.3c-1.1,2.6-1.9,4.5-2.8,6.9
|
||||||
|
c5,1.8,7.9,5.9,9.5,10.8l7-3.3c0.8-0.4,1.7,0,2.1,0.7c0.8,1.6,1.8,2.7,3,3.8c0.9,0.9,1.9,1.6,3,2.5c2.7-2.4,4.8-3.7,8-5.6
|
||||||
|
c1.2-0.7,2.5,0.1,2.4,1.4l-0.1,8.1c2.6-1.4,4.7-2.6,7.4-4c1-0.5,2.2,0.1,2.4,1.2c0.4,2.6,0.6,4.5,0.8,6.9c1.2-0.2,2.3-0.4,3.4-0.4
|
||||||
|
c1.6-0.1,3.1-0.1,4.6-0.1c2.9-0.1,5.4-0.3,8.2-1.8c0.4-0.2,0.9-0.6,1.2-1.2c0.5-0.6,0.8-1.3,1.2-2c0.8-1.4,2.2-3.4,4.9-3.4
|
||||||
|
c2,0,3.4-0.6,4.6-1.7c0.2-0.2,0.4-0.4,0.5-0.6c2-5.8,3.5-11.2,4-14.6c0.2-1.5,0.2-3.3,0-5.2c-6.7,8-17.8,17.7-21.9,17
|
||||||
|
c-2.6-0.4-4.1-2.3-5.1-4.2c-2.1-4-2.6-8.7-4.1-12.9c-2.8-7.7-13.4-11-16.1-17.5c-6.1,1.7-10,2.6-13.7,4.8c-3.9,2.3-6.1,4.2-6.1,4.2
|
||||||
|
c-2.5,2.1-5.6-1.6-3.1-3.7c5.8-4.9,16-10.7,23.7-13.5c2.3-3.7,7-7.4,12.9-10c-2.4-3.3-8-8.6-20.8-10.6c-11.4-1.8-33.7,9.8-35.7,22.2
|
||||||
|
c-0.5,3.2-8.3,2-7.8-1.2c0.2-1.3,0.7-2.7,1.5-4.2C375.2,177.7,369.3,178.5,361.6,177.3z M425.4,210.5c0.1,0.6-0.3,1.3-0.9,1.4
|
||||||
|
c-0.2,0-4.7,0.9-7.5-1.5c-0.5-0.4-0.5-1.2-0.1-1.7c0.4-0.5,1.2-0.5,1.7-0.1c0,0,0,0,0,0c1.9,1.7,5.4,1,5.4,1
|
||||||
|
C424.7,209.4,425.3,209.8,425.4,210.5z"/>
|
||||||
|
<path class="st5" d="M406.2,116.8c-0.7-0.2-1.4-0.3-2-0.5c-0.8-0.1-1.6-0.3-2.5-0.5c-3.4-0.6-5.7-0.8-5.7-0.8
|
||||||
|
c-3.2-0.2-2.9-5,0.3-4.9c0,0,3.6,0.4,8,1c7.5-1.3,17-2.8,20.6-2.2c1.3,0.2,2.5,0.5,3.6,0.9l-3.9-6.6l-43.1,4
|
||||||
|
c-3.2,0.3-3.7-4.5-0.4-4.9c0,0,5.8-4.8,6.7-5.7c7.2-7.2,18.7-8.3,28.8-7.3c-5.4-3.9-8-6.3-11.6-10c-18.5,8.6-44.8,22.9-66.3,21.6
|
||||||
|
c0.6,0.7,1.3,1.4,1.3,2.5c0,0.5-0.1,1-0.3,1.5c0.9,0.4,1.9,0.7,2.9,0.9c3.2,0.5,2.4,5.3-0.8,4.8c-2.4-0.4-4.6-1.3-6.6-2.6l-7.2,0.6
|
||||||
|
c-4.6-0.6-6.4-3.1-10.7-4.5c-3.5-1.1-9.7,1.5-9.7-2.3c0.1-4.1-4.2-5.7-4.2-9.8c0.1-4.9-4.2-6.3-7.4-9.8c-5.3-5.8-7.7-12.1-11.9-16.9
|
||||||
|
c-1-0.2-2-0.5-3-0.7c-13-2.1-16.5,0.7-23,3.9c-10.3,5.2-16.6,8.5-28.5,10.3c-14.7,2.1-31.7,4.4-42.6,6.4c8.1,0.6,18.5,0.9,28.9,0
|
||||||
|
c19.3-1.6,26.7-10.4,48.4-7c24.1,3.8,23.8,14.9,23.5,16.5c-0.5,3.2-5.3,2.4-4.8-0.8c0-7.2-16.1-10.4-19.5-10.9
|
||||||
|
c-20.2-3.2-28.4,5.5-47.3,7c-3.4,0.3-6.9,0.4-10.2,0.5c3.7,1.1,6.9,2.4,8.8,3.8c5.1,3.6,15.5,11.9,21.3,13.5
|
||||||
|
c13.5,3.6,26.9,2.5,37.1,0.5c10-2,16.7-4.9,16.7-4.9c3-1.3,4.9,3.1,2,4.5c-7.6,3.4-16.7,5.5-26,6.5c-1.1,4-2.7,8.2-4.7,12.3
|
||||||
|
c3.2-0.9,6.4-1.5,9.4-1.9c3.2-0.5,3.9,4.4,0.7,4.8c-4.4,0.6-9.5,2.3-14.7,4.7c0.4,0.3,0.7,0.7,0.6,1.3c0,1.9-2.2,2.4-2.2,4.3
|
||||||
|
c-0.1,4.3,4.8,4.7,8.5,6.6l-2.3,8.6c0,1.9,2.1,2.5,2.1,4.4c-0.1,3.8-0.6,3.1-1.5,6.9c6.5-3.7,7.5-0.3,7.5,1.9c0,1.9,4.2,5.7,2.3,7.6
|
||||||
|
c1.8,3.2,5.1,4.9,5.2,8.4c1.4-0.3,2.4-0.7,3-1.6c0.5-0.7,0.7-1.5,0.9-2.4c0.2-1,0.3-2.1,0.4-3.1c0.3-2.1,0.9-4.7,4-5.9
|
||||||
|
c2.2-0.7,4.3-0.9,6.3-0.8c0.8,0,1.5,0.1,2.3,0.2c5.8-4.7,12.1-8.1,18.4-9.7c1-1,2.1-1.9,3.2-2.7c3.8-2.9,8.2-4.8,13.9-4.7
|
||||||
|
c4.2,0.1,6.3,2.8,7.7,5.6c0.7,1.4,1.3,2.9,2,4.3c0.3,0.6,0.6,1.2,0.9,1.7l1.1-0.8c-4.6-5.5-7.6-12.4-6.4-20.3
|
||||||
|
c1.2-7.8,5.4-14.1,12.2-16.9l2.5,1.2l-2.5-1.2c-3.6-1.5-7.4-2.5-11.3-3.1c-5.7-0.9-21-3.8-27.3,0.8c-2.6,1.9-5.8-0.7-3.7-3.2
|
||||||
|
c5.5-6.7,24-5.2,30.1-4.3c32.4,5.1,49.6,34.9,63.4,40.8c6.7-4,14.3-6.4,21-5.4c4.2,0.7,7.7,1.5,10.7,2.4c0.3-0.4,0.7-1.2,1.3-2.3
|
||||||
|
C440.2,134.1,423,120.9,406.2,116.8z"/>
|
||||||
|
<path class="st6" d="M300.6,184.9c1.7-1.3,3.6-2.2,5.5-2.6l-1.5-5l1.8-0.6l1.7,5.4c2.5-0.1,4.9,0.7,7,2.3l14.7-11.3
|
||||||
|
c-7-7.1-22-5.7-33.5,4C298.2,178.8,299.8,181.4,300.6,184.9z M362,239.6c4.4-0.4,8.7-0.9,12.9-1.5
|
||||||
|
C370.7,238.7,366.4,239.2,362,239.6z M335.5,241.4c-0.1-0.5-0.1-1-0.2-1.5c-0.5,0.6-1.1,1.1-1.6,1.6L335.5,241.4z M289.3,184.7
|
||||||
|
c-3.2,4.4-5.6,9.8-7,16C283.7,194.5,286.1,189.1,289.3,184.7z M336.5,195.2c0.9-0.9,1.9-1.8,3-2.4c-2.7-4.4-4.9-8.8-6.6-14.3
|
||||||
|
c-0.4-1.5-1.1-2.7-2-3.9l-14.4,11.2c0.7,0.8,1.3,1.7,1.8,2.8l12.8-1.3l0.2,1.9l-12.4,1.2c0.2,0.5,0.4,0.9,0.5,1.4
|
||||||
|
C325.2,188.3,332.6,190,336.5,195.2z M314.6,231.5c-9.1,6.4-18.3,0.8-19.1-8.2c-5,2.9-9.9,2.1-13.3-0.8c2.3,8.7,7.9,15.5,18,17
|
||||||
|
c7.6,1.2,12.8,1.4,16.3,1.6C314.6,238.6,313.8,235.2,314.6,231.5z M389.6,235.9c-0.6-0.4-1.2-0.8-1.8-1.2c-0.8,0.6-1.7,1.3-2.6,1.9
|
||||||
|
C383.4,236.9,384.9,236.7,389.6,235.9z M383.6,232c0,0-0.1,0-0.1-0.1c0,0,0,0,0,0C383.6,232,383.6,232,383.6,232z"/>
|
||||||
|
<path class="st0" d="M358,218c0.1,1.1,0.2,2.2,0.4,3.4c1.3,2.7,2.6,5.8,3.5,8.9c1.2-1.1,2.5-2.1,3.6-2.9c1.6-1.1,3.6-2.2,5.1-3
|
||||||
|
c-0.1-0.4-0.1-0.9-0.2-1.4c-3.5-2.4-6.7-4.8-9.7-7.1c0,0,0,0,0,0c-0.4-0.3-0.8-0.6-1.1-0.9C359.1,216.2,358.6,217.2,358,218z
|
||||||
|
M377.3,230.9c0.2,0.4,0.3,0.7,0.5,1.1c0.4,1,0.9,1.9,1.4,2.8c1.7-1,3.1-2,4.4-2.9c0,0,0,0,0,0c-2.5-1.6-5-3.3-7.5-5
|
||||||
|
C376.4,228.3,376.8,229.6,377.3,230.9z M371.3,229.4c-3.2,1.8-6.2,4.1-8.7,6.9c0,1.2-0.2,2.3-0.6,3.3c4.4-0.4,8.7-0.9,12.9-1.5
|
||||||
|
C374.2,235.7,373.1,232.8,371.3,229.4z M290.2,193.4c0.1-0.1,0.2-0.1,0.3-0.2l-2.4,0.2l-0.2-1.9l7.1-0.7c0.5-0.2,0.9-0.4,1.3-0.6
|
||||||
|
v-0.1c0-1.2,0-2.5-0.2-3.7l-4.9-1.9l0.7-1.8l3.7,1.4c-0.6-1.5-1.4-2.8-2.8-3.6c-1.2,1.3-2.3,2.6-3.3,4.1c0,0,0,0.1-0.1,0.1
|
||||||
|
c-3.2,4.4-5.6,9.8-7,16v0C284.7,197.5,287.7,195.1,290.2,193.4z M315,193.5l-3.9-1.4l2.4,7.7c0.5-1.4,1.1-2.6,1.7-3.6
|
||||||
|
C315.2,195.2,315.1,194.3,315,193.5z M313.7,191l0.6,0.2c0-0.1-0.1-0.2-0.1-0.3L313.7,191z M309.6,187.1l0.4,1.3l1.1-0.9
|
||||||
|
c-0.4-0.2-0.9-0.3-1.4-0.4C309.7,187.1,309.7,187.1,309.6,187.1z M308.8,202.6c0.9-0.5,2-1,3.1-1.5l-2.9-9.5l-9.7,7.5
|
||||||
|
c0.2,3.3,0.7,6.5,1.9,9.6C303.6,206,306.4,204,308.8,202.6z M301.8,190.2l3.5-0.3L303,189C302.6,189.3,302.2,189.7,301.8,190.2z
|
||||||
|
M304.9,187.7l3.2,1.2l-0.6-1.8C306.6,187.1,305.7,187.3,304.9,187.7z M312.1,189.2l1.1-0.1c-0.1-0.2-0.3-0.3-0.4-0.4L312.1,189.2z
|
||||||
|
M299.3,196.6l6.3-4.9l-5,0.5C299.9,193.7,299.5,195.3,299.3,196.6L299.3,196.6z M357.3,238.5c1.1-1.9,0.9-7-3.8-16.2
|
||||||
|
c-0.5,0.3-1,0.7-1.5,1c-1.4,0.9-2.5,1.6-3.6,2.4c-2.5,2.1-4.8,4.4-6.4,7.2c-1.3,2.3-2.4,5.5-1.7,8.3c2.4-0.1,4.9-0.2,7.3-0.4
|
||||||
|
c2.8-0.2,5.5-0.4,8.3-0.6c0.1,0,0.2,0,0.3,0C356.8,239.4,357.2,238.7,357.3,238.5z M330.6,218.2c-0.8,0.6-1.7,1.3-2.5,1.8
|
||||||
|
c-8.3,6-7.7,5.5-9.3,16c0.8,1.7,2,3.2,4.1,4.2c5.5,2.6,10.7-5.9,11.3-6.8c0.4-0.7,0.5-2.4,0-4.8c-0.8-2.3-1.5-4.6-2.1-7
|
||||||
|
C331.7,220.5,331.2,219.4,330.6,218.2z M318.1,200.8c-0.7,6.9-1.2,13.5,1.6,19.8c3.3-3,7.7-5.5,10.9-8.6c0-0.5-0.1-0.9-0.1-1.4
|
||||||
|
c0-4.4,1.1-8.2,2.8-11.3c-1-2.2-2.7-3.9-5.1-4.2c-1.4-0.2-2.6-0.2-3.8,0l3.1,1.2l-0.7,1.8l-5.2-1.9
|
||||||
|
C320.1,197.1,318.9,198.8,318.1,200.8z M304,228.7c4.7,3,9.8-2.4,11.8-5c-2.5-4.6-3.4-10.7-3-17.8c-3.5,1.8-6.7,4.3-9.2,7.4
|
||||||
|
c0.1,0.2-2.6,5-3,5.5C299.6,222.1,299.8,226,304,228.7z M284.6,205.8c-0.6,1-1.1,2.1-1.5,3.4l11.5-8.9c-0.1-1.3-0.2-2.5-0.2-3.9
|
||||||
|
C290.5,198.7,286.9,201.8,284.6,205.8z M286.7,219.7c4.8,2.8,9.7-2.9,11.5-5.6c-1.9-3.1-3-7-3.5-11.5l-12.2,9.4
|
||||||
|
C282.3,214.8,283.3,217.7,286.7,219.7z M335.3,210.5c0,5.3,1.9,12,3.6,17.1c1.3-1.6,2.7-2.9,4-4c4.3-3.6,11.1-5.8,12.3-11.8
|
||||||
|
c-3.6-2.9-6.3-5.5-7.7-7.4c-2.1-2.9-4.2-5.5-5.6-7.6C338.3,199.2,335.3,204.1,335.3,210.5z"/>
|
||||||
|
<path class="st7" d="M341,164.5l-1.1,0.8l-3.7,2.8l-6.5,5L315,184.5l-3.9,3l-1.1,0.9l-0.4-1.3l-1.5-4.9l-1.7-5.4l-1.8,0.6l1.5,5
|
||||||
|
l1.4,4.7l0.6,1.8l-3.2-1.2l-5.2-1.9l-4.3-1.6l-3.7-1.4l-0.7,1.8l4.9,1.9l2.2,0.8l4.7,1.8l2.3,0.9l-3.5,0.3l-2.4,0.2l-4.5,0.4
|
||||||
|
l-7.1,0.7l0.2,1.9l2.4-0.2l8.9-0.9l1.3-0.1l5-0.5l-6.3,4.9l-0.1,0.1l-4.7,3.6l-11.5,8.9l-2.1,1.6l0,0l-7,5.4l-2,1.6l1.2,1.5l1.1-0.9
|
||||||
|
l6.7-5.2l0,0l1.6-1.3l12.2-9.4l4.5-3.5l9.7-7.5l2.9,9.5l0.3,1.1l1.8-0.6l-0.4-1.2l-0.2-0.6l-2.4-7.7l3.9,1.4l1.8,0.7l5,1.9l5.2,1.9
|
||||||
|
l0.7-1.8l-3.1-1.2l-6.1-2.3l-4-1.5l-0.6-0.2l0.5-0.1l4.7-0.5l12.4-1.2l-0.2-1.9l-12.8,1.3l-5.1,0.5l-1.1,0.1l0.7-0.5l3.7-2.9
|
||||||
|
l14.4-11.2l6.3-4.9l3.6-2.8l1.4-1.1C341.8,165.4,341.4,165,341,164.5L341,164.5z"/>
|
||||||
|
<path class="st5" d="M275.6,276c-6.2,7.4-7.1,34.3,1.1,52.9c0.9,2,5.3,2,10.3,0.9c-5.7-5-8.6-10.8-8.9-15c2.5-6.3,7.3-5.7,15.2-4.4
|
||||||
|
c0.7,5.6,1.6,10.4,1.6,17c4.6-1.8,8.3-4.2,8.7-6.4c-0.6-0.6-1.1-1.4-1.5-2.2c-2.1-4.7-8.7-21.7-11.8-37.7
|
||||||
|
C286.6,278,280.2,274,275.6,276z M328.9,263.4c2.7,3.1,5.1,6.4,7.3,9.6c7.4,10.9,13.1,23.1,16.4,30.5c2.7-0.9,6.6-2.4,10.5-4.1
|
||||||
|
c-4.8-4.5-7.7-8.5-11.5-12.8c4.5-6.4,7.4-10.1,13.9-7.5c2.9,3.1,5.2,9.2,5,16.6c3.3-1.9,5.4-3.8,4.8-5.4
|
||||||
|
C373.3,286,341.6,231.7,328.9,263.4z M308.7,317c1.5,3.4,10.4,3.2,16.8,2.7c-6.1-4.2-10.4-9.9-12.8-17.2c7.8-10.9,19.2-4.3,19.2-4.3
|
||||||
|
c3.8,4.2,3.4,11.2,1.6,20.1c5.2-1.3,16.3-4.6,14.8-7.9c-2.2-5.1-8.9-21-18.2-34.8c-9.8-14.6-20.4-23.4-30-20.7
|
||||||
|
C287.1,258.7,306.1,311.2,308.7,317z"/>
|
||||||
|
<path class="st0" d="M334.6,144.2c-1.2,7.9,1.8,14.8,6.4,20.3c0.4,0.5,0.9,0.9,1.3,1.4c6,6.4,14.1,10.6,19.3,11.4
|
||||||
|
c7.7,1.2,13.7,0.3,18.7-1.8c2-3.8,5.7-8.1,10.3-12l-2.5-1.3h0c-3.5-2.5-6.9-6-10.5-10c0.2,0.9,0.3,1.8,0.2,2.7
|
||||||
|
c-0.5,3.5-3.8,5.8-7.2,5.3c-3.5-0.6-5.8-3.8-5.3-7.2c0.5-3.5,3.8-5.8,7.2-5.3c0.4,0.1,0.9,0.2,1.3,0.3c-5.6-6.1-11.9-12.6-20.1-17.4
|
||||||
|
h0l-4.4-2.2l-2.5-1.2C339.9,130.1,335.8,136.4,334.6,144.2z"/>
|
||||||
|
<path class="st1" d="M335,40.4c0.3-0.1,4.3-0.6,8.7,1.4c-0.5,0-1,0.1-1.5,0.1l-4.9,0.3c-0.5,0-0.9,0.5-0.9,1c0,0.5,0.5,0.9,1,0.9
|
||||||
|
l4.9-0.3c1.5-0.1,2.8-0.2,4.2-0.2c3.6,2.7,7,7.7,8.6,16.6c0.1,0.5,0.6,0.9,1.1,0.8c0.5-0.1,0.9-0.6,0.8-1.1
|
||||||
|
c-1.4-8.1-4.4-13.2-7.7-16.3c3.5,0,7,0.4,10.8,1.7c1.4,1.4,2.8,3.2,3.9,5.5c-0.2,0-0.5-0.1-0.7-0.1c-0.9-0.2-1.9-0.5-2.8-0.6
|
||||||
|
c-1.5-0.1-1.9,1.1-0.7,1.8c0.1,0.1,0.2,0.1,0.3,0.1c0.9,0.3,1.9,0.4,2.8,0.6c0.7,0.1,1.4,0.3,2.1,0.4c0.9,2.1,1.6,4.6,2.1,7.5
|
||||||
|
c0.1,0.5,0.6,0.9,1.1,0.8c0.5-0.1,0.9-0.6,0.8-1.1c-0.4-2.3-1-4.5-1.8-6.7c0.3,0.1,0.6,0.1,0.9,0.2c2.8,0.5,3.5,0.6,6.9,2.6
|
||||||
|
c0.5,1.5,0.9,3.1,1.2,4.9c0.1,0.5,0.6,0.9,1.1,0.8c0.5-0.1,0.9-0.6,0.8-1.1c-0.2-1.1-0.5-2.2-0.7-3.2c0.4,0.2,0.7,0.4,1.1,0.7
|
||||||
|
l2.6,1.5c0.5,0.3,1,0.1,1.3-0.3c0.3-0.5,0.1-1-0.3-1.3c0,0,0,0,0,0l-2.6-1.5c-1.2-0.7-2.1-1.2-2.9-1.7
|
||||||
|
c-5.9-17.8-20.7-15.5-20.9-15.5c-0.3,0-0.5,0.2-0.6,0.5c-4.6-1.7-8.4-1.1-8.5-1.1c-0.5,0.1-0.9,0.6-0.8,1.1c0.1,0.5,0.6,0.9,1.1,0.8
|
||||||
|
c0.3-0.1,4.5-0.7,9,1.6c-3-0.5-5.9-0.6-8.9-0.5c-6-4.1-12.3-3.2-12.4-3.2c-0.5,0.1-0.9,0.6-0.8,1.1C334,40.2,334.5,40.5,335,40.4z
|
||||||
|
M357.9,41.1c3.6,0,11.8,1.3,16.3,12.3c-2.1-1.1-3.1-1.3-5.6-1.8c-0.7-0.2-1.4-0.3-2.1-0.5c-0.8-1.7-1.6-3.3-2.5-4.6
|
||||||
|
c1.7,0.8,3.5,1.6,5.4,2.8c0.5,0.3,1.1,0.1,1.3-0.3c0.3-0.5,0.1-1-0.3-1.3c0,0,0,0,0,0c-3.5-2-6.5-3.3-9.2-4.3
|
||||||
|
C360,42.5,359,41.8,357.9,41.1z"/>
|
||||||
|
<path class="st0" d="M549.6,488.6h-5.9v16.2h-4v-16.2h-5.9v-3.5h15.9V488.6z M576.5,504.8h-4v-15.7h-0.1l-5.7,15.7h-3.9l-5.5-15.7
|
||||||
|
h-0.1v15.7h-4v-19.7h7l4.6,12.9h0.1l4.8-12.9h6.9V504.8z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 45 KiB |
BIN
assets/sports/milb_logos/BEL.png
Normal file
|
After Width: | Height: | Size: 306 KiB |
BIN
assets/sports/milb_logos/BG.png
Normal file
|
After Width: | Height: | Size: 245 KiB |
BIN
assets/sports/milb_logos/BIR.png
Normal file
|
After Width: | Height: | Size: 438 KiB |
BIN
assets/sports/milb_logos/BLX.png
Normal file
|
After Width: | Height: | Size: 374 KiB |
BIN
assets/sports/milb_logos/BNG.png
Normal file
|
After Width: | Height: | Size: 395 KiB |
BIN
assets/sports/milb_logos/BOI.png
Normal file
|
After Width: | Height: | Size: 214 KiB |
BIN
assets/sports/milb_logos/BRD.png
Normal file
|
After Width: | Height: | Size: 367 KiB |
BIN
assets/sports/milb_logos/BRK.png
Normal file
|
After Width: | Height: | Size: 348 KiB |
BIN
assets/sports/milb_logos/BUF.png
Normal file
|
After Width: | Height: | Size: 328 KiB |
BIN
assets/sports/milb_logos/CAR.png
Normal file
|
After Width: | Height: | Size: 276 KiB |
BIN
assets/sports/milb_logos/CC.png
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
assets/sports/milb_logos/CHA.png
Normal file
|
After Width: | Height: | Size: 204 KiB |
BIN
assets/sports/milb_logos/CHE.png
Normal file
|
After Width: | Height: | Size: 208 KiB |
BIN
assets/sports/milb_logos/CHS.png
Normal file
|
After Width: | Height: | Size: 376 KiB |
BIN
assets/sports/milb_logos/CLR.png
Normal file
|
After Width: | Height: | Size: 323 KiB |
BIN
assets/sports/milb_logos/CLT.png
Normal file
|
After Width: | Height: | Size: 220 KiB |
BIN
assets/sports/milb_logos/COL.png
Normal file
|
After Width: | Height: | Size: 334 KiB |
BIN
assets/sports/milb_logos/CR.png
Normal file
|
After Width: | Height: | Size: 299 KiB |
BIN
assets/sports/milb_logos/DAY.png
Normal file
|
After Width: | Height: | Size: 325 KiB |
BIN
assets/sports/milb_logos/DBT.png
Normal file
|
After Width: | Height: | Size: 396 KiB |
BIN
assets/sports/milb_logos/DE.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
assets/sports/milb_logos/DEL.png
Normal file
|
After Width: | Height: | Size: 178 KiB |
BIN
assets/sports/milb_logos/DUN.png
Normal file
|
After Width: | Height: | Size: 269 KiB |
BIN
assets/sports/milb_logos/DUR.png
Normal file
|
After Width: | Height: | Size: 170 KiB |
BIN
assets/sports/milb_logos/ELP.png
Normal file
|
After Width: | Height: | Size: 349 KiB |
BIN
assets/sports/milb_logos/ERI.png
Normal file
|
After Width: | Height: | Size: 323 KiB |
BIN
assets/sports/milb_logos/EUG.png
Normal file
|
After Width: | Height: | Size: 387 KiB |
BIN
assets/sports/milb_logos/EVE.png
Normal file
|
After Width: | Height: | Size: 412 KiB |
BIN
assets/sports/milb_logos/FAY.png
Normal file
|
After Width: | Height: | Size: 239 KiB |
BIN
assets/sports/milb_logos/FBG.png
Normal file
|
After Width: | Height: | Size: 267 KiB |
BIN
assets/sports/milb_logos/FRE.png
Normal file
|
After Width: | Height: | Size: 322 KiB |
BIN
assets/sports/milb_logos/FRI.png
Normal file
|
After Width: | Height: | Size: 321 KiB |
BIN
assets/sports/milb_logos/FTM.png
Normal file
|
After Width: | Height: | Size: 491 KiB |
BIN
assets/sports/milb_logos/FW.png
Normal file
|
After Width: | Height: | Size: 307 KiB |
BIN
assets/sports/milb_logos/GBO.png
Normal file
|
After Width: | Height: | Size: 342 KiB |
BIN
assets/sports/milb_logos/GJ.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
assets/sports/milb_logos/GL.png
Normal file
|
After Width: | Height: | Size: 454 KiB |
BIN
assets/sports/milb_logos/GTF.png
Normal file
|
After Width: | Height: | Size: 192 KiB |
BIN
assets/sports/milb_logos/GVL.png
Normal file
|
After Width: | Height: | Size: 322 KiB |
BIN
assets/sports/milb_logos/GWN.png
Normal file
|
After Width: | Height: | Size: 392 KiB |
BIN
assets/sports/milb_logos/HBG.png
Normal file
|
After Width: | Height: | Size: 463 KiB |
BIN
assets/sports/milb_logos/HCS.png
Normal file
|
After Width: | Height: | Size: 368 KiB |
BIN
assets/sports/milb_logos/HFD.png
Normal file
|
After Width: | Height: | Size: 212 KiB |
BIN
assets/sports/milb_logos/HIC.png
Normal file
|
After Width: | Height: | Size: 304 KiB |
BIN
assets/sports/milb_logos/HIL.png
Normal file
|
After Width: | Height: | Size: 304 KiB |
BIN
assets/sports/milb_logos/HV.png
Normal file
|
After Width: | Height: | Size: 250 KiB |
BIN
assets/sports/milb_logos/IDF.png
Normal file
|
After Width: | Height: | Size: 150 KiB |
BIN
assets/sports/milb_logos/IE.png
Normal file
|
After Width: | Height: | Size: 259 KiB |
BIN
assets/sports/milb_logos/IND.png
Normal file
|
After Width: | Height: | Size: 169 KiB |
BIN
assets/sports/milb_logos/IOW.png
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
assets/sports/milb_logos/JAX.png
Normal file
|
After Width: | Height: | Size: 353 KiB |
BIN
assets/sports/milb_logos/JS.png
Normal file
|
After Width: | Height: | Size: 379 KiB |
BIN
assets/sports/milb_logos/JUP.png
Normal file
|
After Width: | Height: | Size: 335 KiB |
BIN
assets/sports/milb_logos/KAN.png
Normal file
|
After Width: | Height: | Size: 342 KiB |
BIN
assets/sports/milb_logos/KNX.png
Normal file
|
After Width: | Height: | Size: 223 KiB |
BIN
assets/sports/milb_logos/LAK.png
Normal file
|
After Width: | Height: | Size: 331 KiB |