class is now in use instead of global variables

new license
"premades" are now "presets"
new logo, preview and badges in readme
This commit is contained in:
Kuchen
2023-08-01 19:50:56 +02:00
parent 091f6b7081
commit ed612aa37f
11 changed files with 777 additions and 313 deletions
+250 -229
View File
@@ -1,286 +1,307 @@
#by github.com/Kuucheen
import re, os, time, threading, random, ctypes
try:
import httpx, yaml
from pystyle import Colors, Colorate, Center
except ImportError:
os.system('python -m pip install httpx httpx[http2] pyyaml pystyle')
import httpx, yaml
from pystyle import Colors, Colorate, Center
proxies = set([])
goodsites = set([])
sitelist = []
timeout = ""
proxycount = 0
threadcount = 0
clearingcnt = ""
clearingproxy = ""
randomUseragent = ""
white = Colors.light_gray
color = Colors.StaticMIX((Colors.purple, Colors.blue))
print("Looks like you forgot to install the requirements!")
print("use \"python -m pip install -r requirements.txt\" to install")
def main():
global threadcount, clearingcnt, clearingproxy, randomUseragent, timeout, sitelist, start
class KCScraper:
def __init__(self):
self.proxies = set()
self.goodsites = set()
self.sitelist = []
self.timeout = ""
self.proxycount = 0
self.clearingcnt = ""
self.clearingproxy = ""
self.randomUseragent = ""
printLogo()
print()
config, clearingcnt, clearingproxy, randomUseragent, threads, timeout = getSettings()
self.start = 0
terminal()
start = time.time()
self.white = Colors.light_gray
self.color = Colors.StaticMIX((Colors.purple, Colors.blue))
#dispatcher
with open(config) as sites:
self.prefix_warning = f"{self.white}[{self.color}!{self.white}] {self.color}"
self.prefix_plus = f"{self.white}[{Colors.green}+{self.white}] {self.color}"
self.prefix_error = f"{self.white}[{Colors.red}!{self.white}] {self.color}"
self.prefix_info = f"{self.white}[{self.color}^{self.white}] {self.color}"
sitelist = sites.readlines()
threading.Thread(target=terminalthread).start()
def main(self):
self.printLogo()
print()
self.terminal()
while len(sitelist) > 0:
if threadcount < threads:
threading.Thread(target=scrape, args=[sitelist[0]]).start()
threadcount += 1
sitelist.pop(0)
config, self.clearingcnt, self.clearingproxy, self.randomUseragent, threads, self.timeout = self.getSettings()
while threadcount > 0:
terminal(f"| Waiting for threads to finish | active threads {threadcount} | Proxies {proxycount} | Time {time.time()-start:.2f}s")
self.start = time.time()
terminal()
# dispatcher
with open(config) as sites:
self.sitelist = sites.readlines()
threading.Thread(target=self.terminalthread).start()
lenproxies = len(proxies)
print(f"\n{white}[{color}^{white}] Removed {color}{proxycount-lenproxies} {white}Duplicates\n")
print(f"{white}[{color}^{white}] Remaining Proxies: {color}{lenproxies}{white}\n")
print(f"{white}[{color}^{white}] Writing {color}Proxies\n")
while len(self.sitelist) > 0:
if self.activethreads() < threads:
threading.Thread(target=self.scrape, args=[self.sitelist[0]]).start()
self.sitelist.pop(0)
with open("proxies.txt", "w") as output:
while self.activethreads() > 0:
self.terminal(f"| Waiting for threads to finish | active threads {self.activethreads()} | Proxies {self.proxycount} | Time {time.time() - self.start:.2f}s")
for i in proxies:
output.write(i.replace("\n", "") + "\n")
if clearingcnt == True or clearingproxy == True:
self.terminal()
print(f"{white}[{color}^{white}] Removing {color}bad Websites\n")
with open(config, "w") as inp:
print()
for site in goodsites:
inp.write(site + "\n")
lenproxies = len(self.proxies)
print(f"{self.prefix_info} Removed {self.color}{self.proxycount - lenproxies} {self.white}Duplicates\n")
print(f"{self.prefix_info} Remaining Proxies: {self.color}{lenproxies}{self.white}\n")
print(f"{self.prefix_info} Writing {self.color}Proxies\n")
terminal()
with open("proxies.txt", "w") as output:
for i in self.proxies:
output.write(i.replace("\n", "") + "\n")
print(f"{white}[{color}^{white}] Finished in {color}{time.time()-start:.2f}s{white}!\n")
print("You can now close the tab")
if self.clearingcnt == True or self.clearingproxy == True:
print(f"{self.prefix_info} Removing {self.color}bad Websites\n")
with open(config, "w") as inp:
for site in self.goodsites:
inp.write(site + "\n")
input("")
self.terminal()
print(f"{self.prefix_info} Finished in {self.color}{time.time() - self.start:.2f}s{self.white}!\n")
print("You can now close the tab")
input("")
def scrape(site: str):
global proxies, threadcount, proxycount
uas=["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; Trident/5.0)", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; MDDCJS)", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"]
site = site.replace("\n", "")
try:
with httpx.Client(http2=True,headers = {'accept-language': 'en','user-agent': random.choice(uas) if randomUseragent == True else uas[0]},follow_redirects=True) as client:
r = client.get(site, timeout=timeout).text
except:
print(f"{white}[{Colors.red}!{white}] Failed connecting to {color}{site}")
if clearingcnt != True:
goodsites.add(site)
else:
goodsites.add(site)
r = r.replace("&colon", ":")
locProxies = re.findall(r"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b", r)
length = len(locProxies)
print(f"{white}[{Colors.green}+{white}] Scraped {color}{length}{white} from {color}{site}")
proxycount += length
proxies = proxies | set(locProxies)
if clearingproxy == True and length == 0:
goodsites.remove(site)
finally:
threadcount -= 1
def scrape(self, site: str):
uas = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0",
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; Trident/5.0)",
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0; MDDCJS)",
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)",
]
site = site.replace("\n", "")
try:
with httpx.Client(
http2=True,
headers={
"accept-language": "en",
"user-agent": random.choice(uas) if self.randomUseragent == True else uas[0],
},
follow_redirects=True,
) as client:
r = client.get(site, timeout=self.timeout).text
except:
print(f"{self.prefix_warning} Failed connecting to {self.color}{site}")
if self.clearingcnt != True:
self.goodsites.add(site)
else:
self.goodsites.add(site)
r = r.replace("&colon", ":")
locProxies = re.findall(r"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\:\d{1,5}\b", r)
length = len(locProxies)
print(f"{self.prefix_plus} Scraped {self.color}{length}{self.white} from {self.color}{site}")
self.proxycount += length
self.proxies = self.proxies | set(locProxies)
if self.clearingproxy and length == 0:
self.goodsites.remove(site)
def getSettings() -> list:
with open("settings.yaml") as setting:
settings = yaml.safe_load(setting.read())
def getSettings(self) -> tuple:
with open("settings.yaml") as setting:
settings = yaml.safe_load(setting.read())
premades = settings["premades"]
clearingcnt = settings["removeWebsites"]
clearingproxy = settings["removeProxyless"]
randomUseragent = settings["randomUseragent"]
threads = settings["threads"]
timeout = settings["timeout"]
presets = settings["presets"]
self.clearingcnt = settings["removeWebsites"]
self.clearingproxy = settings["removeProxyless"]
self.randomUseragent = settings["randomUseragent"]
threads = settings["threads"]
self.timeout = settings["timeout"]
yes = ["yes", "y", "ye"]
no = ["no", "n", "nah"]
yes = ["yes", "y", "ye"]
no = ["no", "n", "nah"]
if premades == "?":
premades = input(f"{white}[{color}^{white}] {color}Use premades [y/n] {white}>> {color}")
if premades in yes:
os.system("cls")
printLogo()
print(Colorate.Diagonal(Colors.DynamicMIX((Colors.dark_gray, Colors.StaticMIX((Colors.purple, Colors.blue)))), Center.XCenter("\n[1] HTTP/S\t[2] SOCKS4\t[3] SOCKS5")))
if presets == "?":
presets = input(f"{self.prefix_info} Use presets [y/n] {self.white}>> {self.color}")
if presets in yes:
os.system("cls")
self.printLogo()
print(Colorate.Diagonal(
Colors.DynamicMIX((Colors.dark_gray, Colors.StaticMIX((Colors.purple, Colors.blue)))),
Center.XCenter("\n[1] HTTP/S\t[2] SOCKS4\t[3] SOCKS5")))
premades = input(f"\n{white}[{color}^{white}] {white}>> {color}")
presets = input(f"\n{self.prefix_info} {self.white}>> {self.color}")
elif premades not in no:
print(f"{white}[{color}!{white}] {color}No option was choosen returning to home..")
time.sleep(3)
main()
exit()
elif presets not in no:
print(f"{self.prefix_warning} No option was chosen returning to home..")
time.sleep(3)
self.main()
exit()
elif premades != "1" and premades != "2" and premades != "3" and premades != "n":
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at premades")
input()
exit()
config = {"1": "premades/http.txt", "2": "premades/socks4.txt", "3": "premades/socks5.txt", "n": "sites.txt", "no": "sites.txt"}
try:
config = config[premades]
except KeyError:
print(f"{white}[{color}!{white}] {color}No option was choosen returning to home..")
time.sleep(3)
main()
exit()
printLogo()
if clearingcnt == "?":
clearingcnt = input(f"\n{white}[{color}^{white}] {color}Remove not connectable site [y/n] {white}>> {color}")
if clearingcnt not in yes and clearingcnt not in no:
print(f"{white}[{color}!{white}] {color}No option was choosen returning to home..")
time.sleep(3)
main()
exit()
elif clearingcnt not in yes and clearingcnt not in no:
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at removewebsites")
input()
exit()
if clearingcnt in yes:
clearingcnt = True
printLogo()
if clearingproxy == "?":
clearingproxy = input(f"\n{white}[{color}^{white}] {color}Remove sites with no proxies [y/n] {white}>> {color}")
if clearingproxy not in yes and clearingproxy not in no:
print(f"{white}[{color}!{white}] {color}No option was choosen returning to home..")
time.sleep(3)
main()
exit()
elif clearingproxy not in yes and clearingproxy not in no:
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at removeproxyless")
elif presets not in {"1", "2", "3", "n"}:
print(f"{self.prefix_error} Error in settings.json at presets")
input()
exit()
if clearingproxy in yes:
clearingproxy = True
printLogo()
if randomUseragent == "?":
config = {"1": "presets/http.txt", "2": "presets/socks4.txt", "3": "presets/socks5.txt", "n": "sites.txt",
"no": "sites.txt"}
randomUseragent = input(f"\n{white}[{color}^{white}] {color}Random Useragent? [y/n] {white}>> {color}")
if randomUseragent not in yes and randomUseragent not in no:
print(f"{white}[{color}!{white}] {color}No option was choosen returning to home..")
try:
config = config[presets]
except KeyError:
print(f"{self.prefix_warning} No option was chosen returning to home..")
time.sleep(3)
main()
self.main()
exit()
elif randomUseragent not in yes and randomUseragent not in no:
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at removeproxyless")
self.printLogo()
if self.clearingcnt == "?":
self.clearingcnt = input(
f"{self.prefix_info} Remove not connectable site [y/n] {self.white}>> {self.color}"
)
if self.clearingcnt not in yes and self.clearingcnt not in no:
print(f"{self.prefix_warning} No option was chosen returning to home..")
time.sleep(3)
self.main()
exit()
elif self.clearingcnt not in yes and self.clearingcnt not in no:
print(f"{self.prefix_error} Error in settings.json at removewebsites")
input()
exit()
if randomUseragent in yes:
randomUseragent = True
if self.clearingcnt in yes:
self.clearingcnt = True
printLogo()
self.printLogo()
if timeout == "?":
timeout = input(f"\n{white}[{color}^{white}] {color}Timeout [seconds] {white}>> {color}")
if self.clearingproxy == "?":
self.clearingproxy = input(
f"{self.prefix_info} Remove sites with no proxies [y/n] {self.white}>> {self.color}"
)
elif timeout.isdigit() == False:
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at threads")
input()
exit()
if self.clearingproxy not in yes and self.clearingproxy not in no:
print(f"{self.prefix_warning} No option was chosen returning to home..")
time.sleep(3)
self.main()
exit()
try:
timeout = int(timeout)
except ValueError:
print(f"{white}[{color}!{white}] {color}Timeout needs a number")
time.sleep(3)
main()
exit()
if timeout < 1:
print(f"{white}[{color}!{white}] {color}Timeout must be higher than 0")
time.sleep(3)
main()
exit()
printLogo()
elif self.clearingproxy not in yes and self.clearingproxy not in no:
print(f"{self.prefix_error} Error in settings.json at removeproxyless")
input()
exit()
if threads == "?":
threads = input(f"\n{white}[{color}^{white}] {color}Threads {white}>> {color}")
if self.clearingproxy in yes:
self.clearingproxy = True
elif threads.isdigit() == False:
print(f"{white}[{Colors.red}!{white}] {Colors.red}Error{white} in settings.json at threads")
input()
exit()
self.printLogo()
try:
threads = int(threads)
except ValueError:
print(f"{white}[{color}!{white}] {color}Thread needs a number")
time.sleep(3)
main()
exit()
if threads < 1:
print(f"{white}[{color}!{white}] {color}Thread needs a number greater than 0")
time.sleep(3)
main()
exit()
if self.randomUseragent == "?":
self.randomUseragent = input(
f"{self.prefix_info} Random Useragent? [y/n] {self.white}>> {self.color}"
)
printLogo()
if self.randomUseragent not in yes and self.randomUseragent not in no:
print(f"{self.prefix_warning} No option was chosen returning to home..")
time.sleep(3)
self.main()
exit()
return config, clearingcnt, clearingproxy, randomUseragent, threads, timeout
elif self.randomUseragent not in yes and self.randomUseragent not in no:
print(f"{self.prefix_error} Error in settings.json at removeproxyless")
input()
exit()
def terminal(string:str = ""):
ctypes.windll.kernel32.SetConsoleTitleW("KC Scraper | github.com/Kuucheen " + string)
if self.randomUseragent in yes:
self.randomUseragent = True
def terminalthread():
while len(sitelist) > 0:
terminal(f"| Remaining sites {len(sitelist)} | active threads {threadcount} | Proxies {proxycount} | Time {time.time()-start:.2f}s")
self.printLogo()
def printLogo():
logo = """
_ _ _______ ______
(_) | (_______) / _____)
_____| |_ ( (____ ____ ____ _____ ____ _____ ____
| _ _) | \____ \ / ___)/ ___|____ | _ \| ___ |/ ___)
| | \ \| |_____ _____) | (___| | / ___ | |_| | ____| |
|_| \_)\______) (______/ \____)_| \_____| __/|_____)_|
|_|
by github.com/Kuucheen
if self.timeout == "?":
self.timeout = input(
f"{self.prefix_info} Timeout [seconds] {self.white}>> {self.color}"
)
"""
os.system("cls")
print(Colorate.Diagonal(Colors.DynamicMIX((Colors.dark_gray, Colors.StaticMIX((Colors.purple, Colors.blue)))), Center.XCenter(logo)))
elif not self.timeout.isdigit():
print(f"{self.prefix_error} Error in settings.json at threads")
input()
exit()
try:
self.timeout = int(self.timeout)
except ValueError:
print(f"{self.prefix_warning} Timeout needs a number")
time.sleep(3)
self.main()
exit()
if self.timeout < 1:
print(f"{self.prefix_warning} Timeout must be higher than 0")
time.sleep(3)
self.main()
exit()
self.printLogo()
if threads == "?":
threads = input(f"{self.prefix_info} Threads {self.white}>> {self.color}")
elif not threads.isdigit():
print(f"{self.prefix_error} Error in settings.json at threads")
input()
exit()
try:
threads = int(threads)
except ValueError:
print(f"{self.prefix_warning} Thread needs a number")
time.sleep(3)
self.main()
exit()
if threads < 1:
print(f"{self.prefix_warning} Thread needs a number greater than 0")
time.sleep(3)
self.main()
exit()
self.printLogo()
return config, self.clearingcnt, self.clearingproxy, self.randomUseragent, threads, self.timeout
def terminal(self, string: str = ""):
ctypes.windll.kernel32.SetConsoleTitleW("KC Scraper | github.com/Kuucheen " + string)
def terminalthread(self):
while len(self.sitelist) > 0:
self.terminal(
f"| Remaining sites {len(self.sitelist)} | active threads {self.activethreads()} | Proxies {self.proxycount} | Time {time.time() - self.start:.2f}s"
)
def activethreads(self):
return threading.active_count()-1
def printLogo(self):
logo = """
_ _ _______ ______
(_) | (_______) / _____)
_____| |_ ( (____ ____ ____ _____ ____ _____ ____
| _ _) | \____ \ / ___)/ ___|____ | _ \| ___ |/ ___)
| | \ \| |_____ _____) | (___| | / ___ | |_| | ____| |
|_| \_)\______) (______/ \____)_| \_____| __/|_____)_|
|_|
by github.com/Kuucheen
"""
os.system("cls")
print(Colorate.Diagonal(Colors.DynamicMIX((Colors.dark_gray, Colors.StaticMIX((Colors.purple, Colors.blue)))),
Center.XCenter(logo)))
if __name__ == "__main__":
main()
KCScraper().main()
+16 -18
View File
@@ -1,23 +1,21 @@
Boost Software License - Version 1.0 - August 17th, 2003
MIT License
Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:
Copyright (c) 2023 Charmbracelet, Inc
The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+21 -14
View File
@@ -1,23 +1,27 @@
<!-- yes i let me inspire by billy -->
-----
<div align="center">
<img src="assets/logo.svg">
</div>
<p align="center">
<img src="https://user-images.githubusercontent.com/70746714/203648723-062ef2cb-8ae3-4a69-8e48-f034b91b9682.gif"
</p>
---
----
# <p align="center">👾 KC-Scraper 👾</p>
<br>
<div align="center">
<strong>A powerful and open source proxy scraper <br> able to scrape from almost any website </strong>
</div>
<br>
<p align="center">
<strong>KC Scraper is a powerful and open source proxy scraper <br> able to scrape from almost any website </strong>
</p>
<br>
<div align="center">
<img src="https://img.shields.io/github/downloads/Kuucheen/KC-Scraper/total.svg">
<img src="https://img.shields.io/github/license/Kuucheen/KC-Scraper.svg">
<img src="https://img.shields.io/github/issues/Kuucheen/KC-Scraper.svg">
</div>
<p align="center">
<img src="https://user-images.githubusercontent.com/70746714/182049128-e56320de-01cc-4566-acce-c897acb36665.png" width="800" height=420">
<img src="assets/preview.gif" width="800" height=420">
</p>
<br>
<br>
@@ -35,6 +39,8 @@
• Settings for automatisation
• Presets get ~200 elite proxies
• Automatically removes duplicates
<br>
@@ -44,7 +50,7 @@
### <p align="center">❓ How to use ❓</p>
<br>
1. Place your proxy sites in the "sites.txt" file or create configs in the "premades" folder.
1. Place your proxy sites in the "sites.txt" file or create configs in the "presets" folder.
2. Ensure that the website you choose is capable of displaying proxies. For instance, you can use
the following example site: https://openproxy.space/list/http.
@@ -57,7 +63,8 @@
### <p align="center">🔩 Requirements 🔩</p>
<br>
<p align="center"> <strong>Installing automatically if not installed </strong></p>
<strong>Use `python -m pip install -r requirements.txt` to install
`httpx[http2]`
`pystyle`
+434
View File
@@ -0,0 +1,434 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg id="Ebene_1" data-name="Ebene 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2000 562">
<defs>
<style>
.cls-1, .cls-2 {
stroke: #794595;
}
.cls-1, .cls-2, .cls-3, .cls-4, .cls-5, .cls-6 {
fill: none;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 5px;
}
.cls-2, .cls-3, .cls-6 {
stroke-dasharray: 0 0 0 0 0 2 12 16 12 16;
}
.cls-3, .cls-4 {
stroke: #4e2773;
}
.cls-5, .cls-6 {
stroke: #bd78b1;
}
</style>
</defs>
<path class="cls-6" d="m1721.13,360.86c2.18-2.61,3.87-5.35,5.28-8.17"/>
<path class="cls-4" d="m1723.45,335.38c1.09-3.15,2.11-6.31,3.34-9.42"/>
<path class="cls-4" d="m1710.63,357.37c.39-.36.77-.72,1.15-1.1,4.75-4.75,7.53-10.04,9.69-15.49"/>
<path class="cls-3" d="m1720.99,315.84c1.14-2.54,2.47-5.02,4.13-7.41"/>
<path class="cls-3" d="m1686.76,359.82c6.32-2.31,12.49-5.16,17.96-10.62,9.09-9.09,10.96-20.16,15.11-30.6"/>
<path class="cls-4" d="m1673.96,354.74c8.27-2.82,16.58-5.51,23.68-12.61,13.81-13.81,10.94-32.15,24.75-45.96.95-.95,1.92-1.82,2.91-2.62"/>
<path class="cls-1" d="m1674.45,344.99c5.68-2.2,11.19-5,16.13-9.94,13.81-13.81,10.94-32.15,24.75-45.96,3.28-3.28,6.82-5.62,10.49-7.47"/>
<path class="cls-4" d="m1718.82,274.52c2.45-1.22,4.95-2.23,7.48-3.15"/>
<path class="cls-4" d="m1668.5,337.48c5.28-2.13,10.39-4.88,15-9.49,13.81-13.81,10.94-32.15,24.75-45.96,3.3-3.3,6.87-5.65,10.57-7.5"/>
<path class="cls-4" d="m1646.19,346.25c2.66-1.49,5.41-2.67,8.19-3.72"/>
<path class="cls-4" d="m1645.75,346.49c.07-.04.14-.08.22-.12"/>
<path class="cls-4" d="m1633.86,357.01c1.08-1.47,2.3-2.89,3.68-4.28s2.92-2.69,4.44-3.8"/>
<path class="cls-5" d="m1763.06,217.66c.85-1.97,1.81-3.9,2.93-5.8"/>
<path class="cls-5" d="m1754.44,240.04c1.81-3.53,3.15-7.2,4.41-10.88"/>
<path class="cls-5" d="m1704.29,272.17c6.21-4.97,13.13-7.3,20.05-9.65"/>
<path class="cls-5" d="m1673.28,323.73c1.07-.85,2.12-1.79,3.15-2.81,13.81-13.81,10.94-32.15,24.75-45.96,1.01-1.01,2.05-1.94,3.11-2.78"/>
<path class="cls-5" d="m1622.22,357.79c1.96-4.26,4.49-8.36,8.25-12.12,6.06-6.06,13-8.91,20.04-11.37"/>
<path class="cls-5" d="m1742.56,240.39c10.03-12.22,9.55-27.29,19.11-39.64"/>
<path class="cls-5" d="m1691.63,270.62c.76-.93,1.59-1.84,2.48-2.73,9.22-9.22,20.47-11.01,31.04-15.29"/>
<path class="cls-5" d="m1670,313.19c12.22-12.83,10.79-29.37,21.63-42.58"/>
<path class="cls-5" d="m1610.46,363.23c2.94-8.58,5.56-17.26,12.94-24.63,5.29-5.29,11.24-8.13,17.34-10.4"/>
<path class="cls-5" d="m1680.37,269.79c1.72-3.13,3.84-6.15,6.67-8.97,13.81-13.81,32.15-10.94,45.96-24.75,10.49-10.49,11.36-23.61,17.23-35.36"/>
<path class="cls-5" d="m1673.03,288.5c2.27-6.28,4.05-12.7,7.34-18.71"/>
<path class="cls-5" d="m1602.39,359.01c3.42-9.5,5.74-19.29,13.94-27.49,6.77-6.77,14.63-9.53,22.51-12.21"/>
<path class="cls-6" d="m1676.02,258.37c1.15-1.59,2.45-3.14,3.94-4.63,13.81-13.81,32.15-10.94,45.96-24.75,7.19-7.19,9.86-15.62,12.72-23.99"/>
<path class="cls-6" d="m1668.41,274.33c.44-1.26.88-2.52,1.35-3.76"/>
<path class="cls-6" d="m1628.46,313.38c.55-.19,1.1-.39,1.65-.58"/>
<path class="cls-6" d="m1590.5,362.63c7.32-12.44,7.42-26.84,18.76-38.18.88-.88,1.77-1.68,2.68-2.43"/>
<path class="cls-5" d="m1668.53,251.9c1.25-1.8,2.68-3.55,4.36-5.23,13.81-13.81,32.15-10.94,45.96-24.75.05-.05.1-.1.15-.15"/>
<path class="cls-5" d="m1647.55,293.22c.2-.19.4-.39.6-.58.58-.58,1.13-1.17,1.65-1.76"/>
<path class="cls-5" d="m1581.25,358.89c8.22-11.26,8.64-24.65,16.41-36.04"/>
<path class="cls-5" d="m1678.38,231.15c11.23-5.07,23.49-6.38,33.4-16.3,1.85-1.85,3.41-3.79,4.74-5.79"/>
<path class="cls-5" d="m1650.55,270.61c.45-1.12.88-2.25,1.29-3.39"/>
<path class="cls-5" d="m1649.2,273.71c.48-1.02.92-2.06,1.34-3.1"/>
<path class="cls-5" d="m1631.59,292.51c3.31-1.76,6.5-3.97,9.48-6.95,2.3-2.3,4.13-4.72,5.66-7.23"/>
<path class="cls-5" d="m1569.76,356.86c.2-.19.4-.39.6-.59,9.08-9.08,10.95-20.12,15.09-30.55"/>
<path class="cls-6" d="m1676.45,222c9.74-3.58,19.84-5.8,28.26-14.22,1.36-1.36,2.55-2.76,3.62-4.19"/>
<path class="cls-6" d="m1650.2,245.32c.84-1.88,1.78-3.73,2.88-5.54"/>
<path class="cls-6" d="m1649.99,245.78c.03-.08.07-.15.1-.23"/>
<path class="cls-6" d="m1638.68,272.8c4.97-7.39,6.9-15.62,9.91-23.55"/>
<path class="cls-6" d="m1605.47,292.81c9.82-3.64,20.04-5.82,28.54-14.32,1.82-1.82,3.36-3.73,4.68-5.69"/>
<path class="cls-6" d="m1595.72,297.31c.14-.09.29-.17.43-.25"/>
<path class="cls-6" d="m1554.25,355.91c3.15-1.72,6.19-3.86,9.04-6.71,7.54-7.54,10.11-16.43,13.13-25.2"/>
<path class="cls-3" d="m1667.45,215.66c8.91-3.49,18.25-5.41,26.41-11.65"/>
<path class="cls-3" d="m1619.72,277.07c2.5-1.53,4.92-3.36,7.21-5.65,10.1-10.1,11.28-22.62,16.58-34.02"/>
<path class="cls-3" d="m1589.24,289.89c9.8-5.6,20.77-6.9,30.47-12.82"/>
<path class="cls-3" d="m1581.44,295.7c1.56-1.51,3.18-2.81,4.83-3.95"/>
<path class="cls-3" d="m1539.85,352.16c5.77-2.21,11.37-5.03,16.38-10.03,7.32-7.32,9.95-15.91,12.87-24.43"/>
<path class="cls-2" d="m1672.65,204.25c1.25-.46,2.49-.94,3.73-1.45"/>
<path class="cls-2" d="m1595.17,277.31c8.6-2.95,17.3-5.56,24.69-12.96,10.1-10.1,11.28-22.63,16.59-34.04"/>
<path class="cls-2" d="m1569.54,294.32c1.25-1.8,2.68-3.55,4.36-5.23,6.41-6.41,13.81-9.23,21.27-11.79"/>
<path class="cls-2" d="m1529.5,346.29c6.91-2.43,13.7-5.28,19.65-11.23,8.27-8.27,10.56-18.17,14.03-27.75"/>
<path class="cls-3" d="m1601.49,265.14c3.96-1.91,7.78-4.34,11.3-7.86,13.19-13.19,11.16-30.53,23-44.09"/>
<path class="cls-3" d="m1577.39,274.52c7.52-3.76,15.6-5.47,23.19-8.95"/>
<path class="cls-3" d="m1557.34,297.01c2.13-5.27,4.88-10.38,9.48-14.98,3.3-3.3,6.87-5.65,10.57-7.5"/>
<path class="cls-3" d="m1523.1,338.98c6.68-2.38,13.22-5.24,18.98-10.99,8.94-8.94,10.89-19.77,14.9-30.05"/>
<path class="cls-5" d="m1603.38,252.36c.79-.67,1.57-1.38,2.34-2.15,11.97-11.97,11.41-27.36,20.05-40.25"/>
<path class="cls-5" d="m1562.86,272.17c8.19-6.55,17.62-8.52,26.64-12"/>
<path class="cls-5" d="m1517.12,331.52c6.3-2.3,12.45-5.16,17.89-10.6,13.81-13.81,10.94-32.15,24.75-45.96,1.01-1.01,2.05-1.94,3.11-2.78"/>
<path class="cls-2" d="m1594.65,246.61c1.37-1.03,2.7-2.18,3.99-3.47,10.7-10.7,11.39-24.13,17.58-36.06"/>
<path class="cls-2" d="m1550.21,270.62c.76-.93,1.59-1.84,2.48-2.73,3.02-3.02,6.25-5.24,9.6-7.01"/>
<path class="cls-2" d="m1515.05,322.45c4.53-2.01,8.9-4.61,12.89-8.6,12.91-12.91,11.24-29.8,22.27-43.23"/>
<path class="cls-2" d="m1472.21,354.27c2.17-5.52,4.96-10.88,9.76-15.68.7-.7,1.4-1.35,2.12-1.96"/>
<path class="cls-1" d="m1592.57,235.04c10.31-11.12,10.66-24.96,17.66-36.98"/>
<path class="cls-1" d="m1538.94,269.79c1.72-3.13,3.84-6.15,6.67-8.97,5.49-5.49,11.7-8.35,18.06-10.66"/>
<path class="cls-1" d="m1514.35,311.99c2.25-1.44,4.44-3.14,6.52-5.22,10.98-10.98,11.42-24.83,18.08-36.99"/>
<path class="cls-1" d="m1460.18,361.12c3.89-10.14,5.92-20.79,14.72-29.6,4-4,8.38-6.6,12.91-8.61"/>
<path class="cls-1" d="m1392.85,422.2c.85-2.43,1.75-4.85,2.81-7.22"/>
<path class="cls-5" d="m1579.07,233.5c1.87-1.28,3.69-2.76,5.43-4.5,9.02-9.02,10.92-19.98,15.01-30.34"/>
<path class="cls-5" d="m1528.74,269.52c2.18-5.56,4.97-10.94,9.8-15.78,7.05-7.05,15.29-9.75,23.5-12.55"/>
<path class="cls-5" d="m1513.89,299.6c8.89-8.96,10.82-19.81,14.85-30.09"/>
<path class="cls-5" d="m1451.38,358.2c5.2-11.33,6.44-23.73,16.45-33.74,6.7-6.7,14.47-9.48,22.28-12.13"/>
<path class="cls-5" d="m1384.24,419.62c2.44-7.13,4.68-14.31,9.63-20.76"/>
<path class="cls-5" d="m1519.07,269.72c2.74-8.06,5.47-16.13,12.4-23.05,13.81-13.81,32.15-10.94,45.96-24.75,5.71-5.71,8.57-12.2,10.93-18.82"/>
<path class="cls-5" d="m1505.76,293.56c.32-.3.64-.61.96-.93,6.88-6.88,9.62-14.89,12.35-22.91"/>
<path class="cls-5" d="m1436.1,363.26c13.71-13.8,10.88-32.1,24.66-45.88,7.05-7.05,15.28-9.75,23.48-12.54"/>
<path class="cls-5" d="m1372.61,423.88c6.07-11.86,6.82-25.17,17.44-35.79,2.66-2.66,5.5-4.71,8.43-6.37"/>
<path class="cls-5" d="m1519.78,245.21c1.31-1.93,2.82-3.81,4.62-5.61,13.81-13.81,32.15-10.94,45.96-24.75,4.98-4.98,7.79-10.54,9.99-16.27"/>
<path class="cls-5" d="m1509.12,270.61c3.11-7.68,4.9-15.72,9.19-23.07"/>
<path class="cls-5" d="m1507.78,273.71c.48-1.02.92-2.06,1.34-3.1"/>
<path class="cls-5" d="m1415.59,365.07c4.7-2.04,9.23-4.68,13.35-8.8,13.81-13.81,10.94-32.15,24.75-45.96,10.43-10.43,23.45-11.35,35.14-17.12"/>
<path class="cls-5" d="m1364.85,418.1c6.71-12.18,7.12-26.07,18.13-37.08,5.08-5.08,10.78-7.91,16.64-10.13"/>
<path class="cls-3" d="m1532,223.17c10.64-4.36,22-6.1,31.29-15.39,3.71-3.71,6.22-7.75,8.17-11.94"/>
<path class="cls-3" d="m1531.54,223.36c.08-.03.15-.06.23-.1"/>
<path class="cls-3" d="m1516.65,233.23c.22-.23.45-.47.68-.7,4.31-4.31,9.06-6.99,13.98-9.07"/>
<path class="cls-3" d="m1443.01,307.41c1.06-1.43,2.25-2.82,3.61-4.18,13.63-13.63,31.68-11.01,45.43-24.22"/>
<path class="cls-3" d="m1413.92,355.29c2.76-1.61,5.43-3.57,7.95-6.09,7.67-7.67,10.2-16.75,13.3-25.67"/>
<path class="cls-3" d="m1356.54,413.14c7.94-12.66,7.72-27.54,19.37-39.19,5.03-5.03,10.66-7.84,16.45-10.06"/>
<path class="cls-4" d="m1545.43,208.33c3.77-1.87,7.41-4.24,10.78-7.6"/>
<path class="cls-4" d="m1478.3,277.07c2.5-1.53,4.92-3.36,7.21-5.65,1.97-1.97,3.6-4.03,4.99-6.16"/>
<path class="cls-4" d="m1441.69,294.19c11.15-9.55,24.81-9.92,36.61-17.11"/>
<path class="cls-4" d="m1345.7,411.13c11.99-13.58,9.89-31,23.14-44.25s32.15-10.94,45.96-24.75c6.3-6.3,9.13-13.55,11.66-20.88"/>
<path class="cls-1" d="m1486.14,253.39c2.15-4.39,3.63-8.97,5.19-13.53"/>
<path class="cls-1" d="m1453.75,277.31c8.6-2.95,17.3-5.56,24.69-12.96,3.35-3.35,5.72-6.98,7.59-10.73"/>
<path class="cls-1" d="m1443.87,281.19c3.23-1.54,6.55-2.74,9.88-3.88"/>
<path class="cls-1" d="m1347.58,387.98c3.56-9.71,5.79-19.78,14.18-28.17,13.81-13.81,32.15-10.94,45.96-24.75,4.55-4.55,7.29-9.59,9.41-14.8"/>
<path class="cls-5" d="m1448.41,269.64c8.03-2.73,16.06-5.47,22.95-12.36,8.14-8.14,10.48-17.85,13.86-27.28"/>
<path class="cls-5" d="m1353.22,354.3c.47-.53.96-1.05,1.48-1.56,13.81-13.81,32.15-10.94,45.96-24.75.94-.94,1.8-1.9,2.59-2.87"/>
<path class="cls-6" d="m1451.09,258.94c4.64-2.03,9.12-4.65,13.2-8.74,9.86-9.86,11.22-22.05,16.22-33.23"/>
<path class="cls-6" d="m1402.26,307.85c.2-.46.4-.92.59-1.38"/>
<path class="cls-6" d="m1401.96,308.54c.03-.08.07-.15.1-.23"/>
<path class="cls-6" d="m1344.19,349.62c1.02-1.35,2.16-2.67,3.44-3.95,13.81-13.81,32.15-10.94,45.96-24.75,2.25-2.25,4.06-4.62,5.57-7.08"/>
<path class="cls-4" d="m1440.67,253.24c5.83-2.22,11.5-5.04,16.55-10.1,8.28-8.28,10.57-18.2,14.05-27.79"/>
<path class="cls-4" d="m1399.8,288.22c1.03-2.98,2.13-5.94,3.5-8.82"/>
<path class="cls-4" d="m1345.23,334.62c13.09-9.41,28.99-8.48,41.29-20.78,5.43-5.43,8.28-11.55,10.58-17.83"/>
<path class="cls-4" d="m1328.58,360.39c.08-.24.16-.47.24-.71"/>
<path class="cls-4" d="m1434.51,245.81c5.51-2.17,10.85-4.95,15.65-9.75,10.56-10.56,11.37-23.78,17.34-35.59"/>
<path class="cls-4" d="m1400.1,265.65c.99-1.39,2.08-2.74,3.33-4.06"/>
<path class="cls-4" d="m1349.17,321.76c10.35-4.07,21.28-5.98,30.28-14.99,10.08-10.08,11.27-22.59,16.56-33.97"/>
<path class="cls-4" d="m1319.29,359.72c1.18-3.21,2.21-6.46,3.37-9.68"/>
<path class="cls-1" d="m1423.93,240.05c6.74-2.39,13.35-5.25,19.16-11.05,8.95-8.95,10.9-19.81,14.92-30.11"/>
<path class="cls-1" d="m1417.31,242.33c.08-.03.16-.05.24-.08"/>
<path class="cls-1" d="m1412.85,243.96c1.4-.55,2.81-1.06,4.22-1.55"/>
<path class="cls-1" d="m1387.32,269.52c1.67-4.27,3.71-8.45,6.76-12.34"/>
<path class="cls-1" d="m1354.82,310.18c6.18-2.28,12.2-5.13,17.55-10.47,8.97-8.97,10.91-19.87,14.95-30.19"/>
<path class="cls-1" d="m1310.16,357.74c3.96-8.84,5.64-18.31,11.02-26.76"/>
<path class="cls-6" d="m1377.65,269.72c2.74-8.06,5.47-16.13,12.4-23.05,13.81-13.81,32.15-10.94,45.96-24.75,5.57-5.57,8.43-11.89,10.76-18.35"/>
<path class="cls-6" d="m1351.95,301.43c4.69-2.04,9.22-4.67,13.35-8.8,6.88-6.88,9.62-14.89,12.35-22.91"/>
<path class="cls-6" d="m1294.68,363.26c13.71-13.8,10.88-32.1,24.66-45.88,1.38-1.38,2.81-2.6,4.27-3.68"/>
<path class="cls-6" d="m1367.7,270.61c4.27-10.56,6.06-21.8,15.28-31.01,13.81-13.81,32.15-10.94,45.96-24.75,4.71-4.71,7.47-9.94,9.63-15.34"/>
<path class="cls-6" d="m1349.84,291.91c2.92-1.66,5.74-3.69,8.39-6.34,4.59-4.59,7.34-9.69,9.47-14.95"/>
<path class="cls-6" d="m1287.81,355.98c13.48-13.77,10.75-31.96,24.46-45.67,2.88-2.88,5.96-5.04,9.16-6.77"/>
<path class="cls-5" d="m1355.84,272.8c8.67-12.89,8.09-28.29,20.07-40.27,13.81-13.81,32.15-10.94,45.96-24.75,3.11-3.11,5.38-6.45,7.17-9.92"/>
<path class="cls-5" d="m1350.26,279.36c.3-.28.6-.57.9-.87,1.82-1.82,3.36-3.73,4.68-5.69"/>
<path class="cls-5" d="m1279.52,350.1c.31-.29.62-.59.93-.9,13.81-13.81,10.94-32.15,24.75-45.96,5.31-5.31,11.29-8.15,17.43-10.43"/>
<path class="cls-5" d="m1251.87,363.54c.63-.23,1.25-.46,1.88-.68"/>
<path class="cls-5" d="m1401.97,209.28c2.1-.94,4.17-2,6.18-3.27"/>
<path class="cls-5" d="m1353.51,256.6c4.31-10.6,6.08-21.89,15.33-31.14,7.88-7.88,17.23-10.33,26.38-13.54"/>
<path class="cls-5" d="m1276.76,338.26c10.04-13.23,8.82-29.54,21.37-42.09,7.59-7.59,16.56-10.15,25.4-13.2"/>
<path class="cls-5" d="m1230.88,363.82c11.47-8.95,25.31-9.16,37.04-17.16"/>
<path class="cls-4" d="m1351.67,234.92c2.22-5.82,5.04-11.48,10.09-16.53,8.76-8.76,19.35-10.81,29.45-14.66"/>
<path class="cls-4" d="m1347.26,247.41c.74-1.95,1.41-3.92,2.08-5.89"/>
<path class="cls-4" d="m1312.33,277.31c2.72-.93,5.44-1.83,8.14-2.86"/>
<path class="cls-4" d="m1215.54,365.69c1.35-2.03,2.92-4,4.81-5.88,13.81-13.81,32.15-10.94,45.96-24.75s10.94-32.15,24.75-45.96c6.41-6.41,13.81-9.23,21.27-11.79"/>
<path class="cls-5" d="m1376.32,199.4c1.18-.4,2.37-.8,3.55-1.21"/>
<path class="cls-5" d="m1349.51,217.79c1.43-2.24,3.12-4.41,5.19-6.47,2.42-2.42,4.99-4.33,7.64-5.91"/>
<path class="cls-5" d="m1294.55,274.52c10.16-5.08,21.34-6.41,30.97-13.45"/>
<path class="cls-5" d="m1271.53,305.24c2.76-8.11,5.48-16.24,12.45-23.21,3.3-3.3,6.87-5.65,10.57-7.5"/>
<path class="cls-5" d="m1209.15,357.62c1.19-1.68,2.55-3.31,4.12-4.89,13.81-13.81,32.15-10.94,45.96-24.75,1.19-1.19,2.25-2.41,3.21-3.66"/>
<path class="cls-1" d="m1348.96,202.97c2.47-2.24,5.07-4,7.75-5.46"/>
<path class="cls-1" d="m1280.02,272.17c12.57-10.05,28.07-9.31,40.51-19.81"/>
<path class="cls-1" d="m1265.73,294.47c2.42-6.86,5.27-13.61,11.18-19.52,1.01-1.01,2.05-1.94,3.11-2.78"/>
<path class="cls-1" d="m1197.05,359.85c2.09-4.99,4.79-9.81,9.16-14.18,11.44-11.44,26-11.43,38.5-18.95"/>
<path class="cls-5" d="m1267.36,270.62c.76-.93,1.59-1.84,2.48-2.73,13.81-13.81,32.15-10.94,45.96-24.75.83-.83,1.61-1.69,2.33-2.55"/>
<path class="cls-5" d="m1255.41,296.72c3.32-8.88,5.39-18.1,11.95-26.1"/>
<path class="cls-5" d="m1192.64,347.25c1.68-3.02,3.76-5.93,6.5-8.66,11.34-11.34,25.75-11.43,38.19-18.76"/>
<path class="cls-5" d="m1273.24,253.36c11.79-5.93,24.96-6.76,35.5-17.29,3.61-3.61,6.08-7.54,8.01-11.61"/>
<path class="cls-5" d="m1256.1,269.79c.92-1.68,1.96-3.33,3.17-4.94"/>
<path class="cls-5" d="m1245.24,296.77c4.52-8.75,6.1-18.3,10.86-26.99"/>
<path class="cls-5" d="m1183.75,343.78c1.97-4.3,4.51-8.45,8.31-12.25,10.81-10.81,24.4-11.4,36.42-17.77"/>
<path class="cls-5" d="m1264.84,246.98c12.12-6.57,25.89-7.06,36.82-17.99,2.36-2.36,4.23-4.85,5.78-7.42"/>
<path class="cls-5" d="m1234.92,295.03c5.48-7.62,7.45-16.2,10.57-24.46"/>
<path class="cls-5" d="m1179.5,331.41c1.49-2.41,3.28-4.74,5.49-6.95,13.81-13.81,32.15-10.94,45.96-24.75.39-.39.77-.79,1.13-1.19"/>
<path class="cls-4" d="m1262.53,237.64c10.86-4.6,22.54-6.19,32.06-15.71,3.96-3.96,6.54-8.28,8.55-12.77"/>
<path class="cls-4" d="m1236.23,269.72c.52-1.54,1.05-3.08,1.6-4.61"/>
<path class="cls-4" d="m1183.42,312.84c12.93-8.8,28.42-8.16,40.47-20.2,6.88-6.88,9.62-14.89,12.35-22.91"/>
<path class="cls-6" d="m1259.92,228.83c9.53-3.44,19.37-5.75,27.6-13.98,2.7-2.7,4.76-5.58,6.44-8.56"/>
<path class="cls-6" d="m1239.67,241.64c.59-.69,1.22-1.37,1.89-2.04.23-.23.46-.46.7-.68"/>
<path class="cls-6" d="m1233.72,250.85c.29-.6.59-1.19.9-1.78"/>
<path class="cls-6" d="m1226.28,270.61c.89-2.21,1.68-4.45,2.45-6.69"/>
<path class="cls-6" d="m1178.27,304.53c12.52-7.54,27.09-7.52,38.54-18.97,4.59-4.59,7.34-9.69,9.47-14.95"/>
<path class="cls-1" d="m1225.24,246.93c2.1-5.07,4.81-9.97,9.25-14.4,13.81-13.81,32.15-10.94,45.96-24.75.98-.98,1.88-1.98,2.7-3.01"/>
<path class="cls-1" d="m1214.41,272.8c.92-1.37,1.74-2.77,2.48-4.19"/>
<path class="cls-1" d="m1190.65,289.52c6.72-2.38,13.3-5.24,19.09-11.03,1.82-1.82,3.36-3.73,4.68-5.69"/>
<path class="cls-1" d="m1122.24,359.39c4.92-1.86,9.73-4.14,14.17-7.8"/>
<path class="cls-5" d="m1215.63,246.71c2.56-7.46,5.38-14.85,11.79-21.26,13.5-13.5,31.35-11.06,45.05-23.87"/>
<path class="cls-5" d="m1096.21,359.55c11.85-6.05,25.14-6.81,35.75-17.42.09-.09.19-.19.28-.28"/>
<path class="cls-4" d="m1206.45,245.77c3.4-9.46,5.73-19.22,13.9-27.38,12.77-12.77,29.44-11.28,42.79-21.92"/>
<path class="cls-4" d="m1137.6,311.09c.11-.32.22-.63.32-.95"/>
<path class="cls-4" d="m1083.8,355.69c13.05-9.25,28.85-8.4,41.08-20.63,4.01-4.01,6.62-8.41,8.63-12.96"/>
<path class="cls-3" d="m1231.36,200.64c3.29-1.2,6.62-2.25,9.92-3.45"/>
<path class="cls-3" d="m1214.49,210.15c2.26-2.07,4.63-3.73,7.07-5.12"/>
<path class="cls-3" d="m1195.64,247.47c5.92-11.33,6.82-24.04,16.05-34.47"/>
<path class="cls-3" d="m1132.62,298.17c.98-2.54,2.09-5.05,3.45-7.49"/>
<path class="cls-3" d="m1083.85,344.55c11.39-5.28,23.89-6.48,33.97-16.56,6.77-6.77,9.53-14.63,12.22-22.52"/>
<path class="cls-4" d="m1192.68,230.58c1.1-3.15,2.12-6.31,3.3-9.44"/>
<path class="cls-4" d="m1078.75,336.6c10.84-4.58,22.5-6.18,32-15.69,13.81-13.81,10.94-32.15,24.75-45.96.49-.49.99-.96,1.49-1.41"/>
<path class="cls-2" d="m1125.94,270.62c.76-.93,1.59-1.84,2.48-2.73,1.84-1.84,3.76-3.38,5.74-4.71"/>
<path class="cls-2" d="m1082.61,325.57c7.39-2.54,14.71-5.37,21.06-11.72,12.91-12.91,11.24-29.8,22.27-43.23"/>
<path class="cls-2" d="m1052.36,345.32c1.08-1.71,2.31-3.39,3.73-5"/>
<path class="cls-5" d="m1163.49,239.4c1.3-.99,2.58-2.1,3.82-3.34s2.39-2.57,3.4-3.9"/>
<path class="cls-5" d="m1114.68,269.79c1.72-3.13,3.84-6.15,6.67-8.97,4.21-4.21,8.84-6.87,13.64-8.93"/>
<path class="cls-5" d="m1079.98,316.9c5.85-2.23,11.54-5.05,16.62-10.13,10.98-10.98,11.42-24.83,18.08-36.99"/>
<path class="cls-5" d="m1054.29,328.32c2.75-2.12,5.63-3.74,8.58-5.09"/>
<path class="cls-5" d="m1038.26,354.53c2.74-8.05,5.47-16.09,12.38-23,1-1,2.02-1.91,3.06-2.74"/>
<path class="cls-2" d="m1146.68,237.88c4.77-2.05,9.37-4.7,13.56-8.89,7.19-7.19,9.86-15.62,12.72-23.99"/>
<path class="cls-2" d="m1104.48,269.52c2.18-5.56,4.97-10.94,9.8-15.78,9.01-9.01,19.96-10.92,30.32-15"/>
<path class="cls-2" d="m1087.24,301.81c.77-.66,1.54-1.36,2.29-2.11,8.97-8.97,10.91-19.87,14.95-30.19"/>
<path class="cls-2" d="m1026.9,358.65c5.37-11.45,6.52-24.05,16.66-34.2,4.27-4.27,8.97-6.94,13.84-9.01"/>
<path class="cls-5" d="m1094.81,269.72c2.74-8.06,5.47-16.13,12.4-23.05,13.81-13.81,32.15-10.94,45.96-24.75,5.84-5.84,8.7-12.5,11.1-19.29"/>
<path class="cls-5" d="m1084.44,290.49c5.46-6.38,7.92-13.57,10.37-20.77"/>
<path class="cls-5" d="m1015.11,359.49c10.06-13.24,8.83-29.55,21.38-42.11,8.81-8.81,19.46-10.83,29.6-14.72"/>
<path class="cls-6" d="m1084.86,270.61c4.27-10.56,6.06-21.8,15.28-31.01,13.81-13.81,32.15-10.94,45.96-24.75,5.31-5.31,8.16-11.3,10.43-17.44"/>
<path class="cls-6" d="m1081.18,278.12c1.47-2.44,2.65-4.96,3.68-7.51"/>
<path class="cls-6" d="m992.24,364.67c4.37-1.98,8.58-4.54,12.44-8.4,13.81-13.81,10.94-32.15,24.75-45.96,7.53-7.53,16.41-10.1,25.17-13.12"/>
<path class="cls-3" d="m1081.14,254.2c2.6-7.6,5.4-15.14,11.93-21.67,10.98-10.98,24.84-11.42,37-18.08"/>
<path class="cls-3" d="m1018.9,307.21c.93-1.23,1.95-2.43,3.09-3.6"/>
<path class="cls-3" d="m984.53,357.88c4.6-2.02,9.03-4.64,13.08-8.68,8.15-8.15,10.49-17.88,13.88-27.32"/>
<path class="cls-2" d="m1087.23,224.28c12.08-11.04,27.31-10.5,39.95-19.52"/>
<path class="cls-2" d="m965.43,355.23c8.74-3.01,17.59-5.59,25.1-13.1,5.15-5.15,7.98-10.94,10.22-16.88"/>
<path class="cls-5" d="m1079.99,217.36c7.45-6.89,16.11-9.32,24.62-12.28"/>
<path class="cls-5" d="m1053.61,264.9c.19-.18.38-.37.57-.56,2.82-2.82,4.95-5.84,6.66-8.96"/>
<path class="cls-5" d="m951.13,350.89c10.94-4.69,22.73-6.23,32.33-15.83,3.34-3.34,5.71-6.95,7.57-10.7"/>
<path class="cls-3" d="m1082.35,203.85c1.12-.56,2.26-1.08,3.41-1.57"/>
<path class="cls-3" d="m1047.74,256.62c5.99-6.29,8.7-13.47,11.19-20.72"/>
<path class="cls-3" d="m944.48,343.64c10.82-4.55,22.43-6.17,31.91-15.65,2.28-2.28,4.1-4.68,5.62-7.16"/>
<path class="cls-6" d="m1025.22,259.62c5.22-2.12,10.26-4.86,14.82-9.42,6.62-6.62,9.41-14.29,12.04-21.99"/>
<path class="cls-6" d="m935.72,337.31c11.29-5.14,23.63-6.42,33.6-16.39,3.31-3.31,5.66-6.87,7.51-10.58"/>
<path class="cls-6" d="m1017.34,252.87c5.5-2.17,10.83-4.95,15.62-9.74,8.42-8.42,10.64-18.52,14.22-28.26"/>
<path class="cls-6" d="m937.17,326.94c8.73-3.01,17.58-5.59,25.08-13.09,4.68-4.68,7.45-9.89,9.6-15.26"/>
<path class="cls-1" d="m1007.67,246.78c6.41-2.33,12.68-5.18,18.22-10.72,7.73-7.73,10.24-16.89,13.37-25.88"/>
<path class="cls-1" d="m968.29,281.65c.6-1.73,1.21-3.46,1.88-5.17"/>
<path class="cls-1" d="m966.75,286.14c.03-.08.05-.16.08-.24"/>
<path class="cls-1" d="m966.51,286.85c.03-.08.05-.16.08-.24"/>
<path class="cls-1" d="m966.26,287.56c.03-.08.06-.16.08-.24"/>
<path class="cls-1" d="m932.2,319.15c8.04-2.74,16.08-5.47,22.98-12.37,5.76-5.76,8.62-12.3,10.99-18.98"/>
<path class="cls-1" d="m1001.08,239.54c6.25-2.29,12.34-5.14,17.74-10.55,6.24-6.24,9.08-13.42,11.59-20.68"/>
<path class="cls-1" d="m963.06,269.52c2.18-5.56,4.97-10.94,9.8-15.78,1.07-1.07,2.17-2.04,3.29-2.93"/>
<path class="cls-1" d="m925.61,311.92c7.88-2.68,15.74-5.44,22.5-12.21,8.97-8.97,10.91-19.87,14.95-30.19"/>
<path class="cls-1" d="m892.75,339.22c1.39-3.4,3.04-6.73,5.29-9.9"/>
<path class="cls-4" d="m953.39,269.72c2.74-8.06,5.47-16.13,12.4-23.05,13.81-13.81,32.15-10.94,45.96-24.75,5.44-5.44,8.29-11.58,10.59-17.88"/>
<path class="cls-4" d="m919.03,304.68c7.71-2.63,15.38-5.42,22.01-12.04,6.88-6.88,9.62-14.89,12.35-22.91"/>
<path class="cls-4" d="m877.42,353.57c6.26-11.96,6.91-25.45,17.65-36.19,3.47-3.47,7.23-5.89,11.13-7.78"/>
<path class="cls-5" d="m943.44,270.61c4.27-10.56,6.06-21.8,15.28-31.01,13.81-13.81,32.15-10.94,45.96-24.75,4.37-4.37,7.07-9.19,9.15-14.18"/>
<path class="cls-5" d="m925.14,292.15c3.08-1.7,6.04-3.81,8.83-6.59,4.59-4.59,7.34-9.69,9.47-14.95"/>
<path class="cls-5" d="m869.15,348.66c7.42-12.47,7.46-26.95,18.85-38.34,5.3-5.3,11.26-8.14,17.38-10.41"/>
<path class="cls-5" d="m861.92,357.54c.45-.41.89-.83,1.33-1.27,1.64-1.64,3.04-3.34,4.27-5.1"/>
<path class="cls-5" d="m845.02,367c2.8-1.02,5.58-2.13,8.27-3.53"/>
<path class="cls-1" d="m931.57,272.8c8.67-12.89,8.09-28.29,20.07-40.27,13.81-13.81,32.15-10.94,45.96-24.75,1.74-1.74,3.21-3.55,4.49-5.41"/>
<path class="cls-1" d="m919.63,284.18c2.52-1.53,4.96-3.38,7.27-5.69,1.82-1.82,3.36-3.73,4.68-5.69"/>
<path class="cls-1" d="m839.4,359.39c5.91-2.24,11.66-5.06,16.78-10.19,13.81-13.81,10.94-32.15,24.75-45.96,5.65-5.65,12.06-8.51,18.6-10.86"/>
<path class="cls-1" d="m821.84,365.93c3.88-1.84,7.9-3.18,11.91-4.54"/>
<path class="cls-1" d="m927.95,259.58c5.34-11.43,6.5-23.99,16.63-34.12,13.81-13.81,32.15-10.94,45.96-24.75.23-.23.46-.47.68-.7"/>
<path class="cls-1" d="m814.49,359c11.56-5.55,24.35-6.59,34.63-16.87,13.81-13.81,10.94-32.15,24.75-45.96,7.26-7.26,15.77-9.91,24.21-12.79"/>
<path class="cls-4" d="m966.72,203.81c1.71-.65,3.4-1.34,5.07-2.13"/>
<path class="cls-4" d="m921.3,251.58c.61-1.38,1.17-2.77,1.7-4.17"/>
<path class="cls-4" d="m888.06,277.31c2.88-.99,5.76-1.94,8.6-3.04"/>
<path class="cls-4" d="m856.77,305.44c2.21-5.75,5.02-11.34,10.02-16.34,6.41-6.41,13.81-9.23,21.27-11.79"/>
<path class="cls-4" d="m793.5,362.67c.79-.97,1.65-1.93,2.58-2.86,13.81-13.81,32.15-10.94,45.96-24.75,7.46-7.46,10.05-16.24,13.04-24.92"/>
<path class="cls-6" d="m870.29,274.52c7.29-3.65,15.11-5.37,22.51-8.65"/>
<path class="cls-6" d="m854.37,288.75c1.46-2.33,3.2-4.58,5.35-6.72,3.3-3.3,6.87-5.65,10.57-7.5"/>
<path class="cls-6" d="m842.96,316.43c1.08-2.28,1.99-4.6,2.83-6.94"/>
<path class="cls-6" d="m785.33,357.01c1.08-1.47,2.3-2.89,3.68-4.28,13.81-13.81,32.15-10.94,45.96-24.75,1.06-1.06,2.03-2.15,2.91-3.26"/>
<path class="cls-3" d="m855.76,272.17c10.01-8.01,21.88-9.17,32.59-14.61"/>
<path class="cls-3" d="m848.5,279.88c1.2-1.69,2.56-3.34,4.15-4.93,1.01-1.01,2.05-1.94,3.11-2.78"/>
<path class="cls-3" d="m774.22,356.66c1.88-3.85,4.28-7.56,7.72-10.99,9.31-9.31,20.68-11.04,31.34-15.41"/>
<path class="cls-4" d="m843.1,270.62c.76-.93,1.59-1.84,2.48-2.73,9.89-9.89,22.12-11.23,33.34-16.27"/>
<path class="cls-4" d="m838.05,278.49c1.36-2.71,2.98-5.36,5.05-7.88"/>
<path class="cls-4" d="m766.57,350.82c1.97-4.29,4.5-8.43,8.3-12.23,9.48-9.48,21.1-11.1,31.92-15.65"/>
<path class="cls-4" d="m898.94,207.13c.2-.55.41-1.09.63-1.63"/>
<path class="cls-4" d="m831.84,269.79c1.72-3.13,3.84-6.15,6.67-8.97,10.15-10.15,22.77-11.29,34.22-16.67"/>
<path class="cls-4" d="m827.95,278.58c1.1-2.99,2.32-5.94,3.88-8.8"/>
<path class="cls-4" d="m763.25,337.02c1.29-1.89,2.78-3.73,4.54-5.49,8.8-8.8,19.44-10.83,29.58-14.71"/>
<path class="cls-5" d="m888.32,210.2c2.98-8.33,5.17-16.88,11.28-24.35"/>
<path class="cls-5" d="m821.64,269.52c2.18-5.56,4.97-10.94,9.8-15.78,8.34-8.34,18.33-10.6,27.98-14.12"/>
<path class="cls-5" d="m819.72,274.81c.61-1.77,1.23-3.54,1.92-5.29"/>
<path class="cls-5" d="m751.81,338.07c2.05-4.79,4.71-9.41,8.92-13.62,9.27-9.27,20.59-11.03,31.21-15.36"/>
<path class="cls-4" d="m880.92,204.05c3.54-9.68,5.79-19.72,14.16-28.09.59-.59,1.2-1.16,1.81-1.69"/>
<path class="cls-4" d="m811.97,269.72c2.74-8.06,5.47-16.13,12.4-23.05,8.55-8.55,18.84-10.71,28.71-14.39"/>
<path class="cls-4" d="m810.37,274.33c.55-1.53,1.08-3.07,1.6-4.6"/>
<path class="cls-4" d="m747.53,325.39c1.62-2.78,3.59-5.47,6.12-8,8.6-8.6,18.97-10.73,28.9-14.46"/>
<path class="cls-1" d="m871.3,203.18c5.41-11.47,6.53-24.12,16.71-34.29.54-.54,1.09-1.06,1.65-1.55"/>
<path class="cls-1" d="m802.02,270.61c4.27-10.56,6.06-21.8,15.28-31.01,2.7-2.7,5.56-4.76,8.54-6.43"/>
<path class="cls-1" d="m801.49,271.88c.18-.42.36-.85.53-1.27"/>
<path class="cls-1" d="m738.4,322.28c1.95-4.2,4.46-8.25,8.18-11.97,8.34-8.34,18.34-10.6,28-14.12"/>
<path class="cls-3" d="m858.41,205.35c10.69-12.74,9.67-28.68,20.53-41.38"/>
<path class="cls-3" d="m792.86,268.16c6-11.82,6.79-25.06,17.36-35.63,3.37-3.37,7.01-5.75,10.79-7.62"/>
<path class="cls-3" d="m741.51,301.38c8.07-6.98,17.46-9.1,26.52-12.45"/>
<path class="cls-5" d="m856.93,189.5c4.46-9.22,6.01-19.23,11.64-28.13"/>
<path class="cls-5" d="m785.53,261.59c6.02-11.54,6.85-24.49,16.55-35.02"/>
<path class="cls-5" d="m735.94,293.08c1.83-1.43,3.72-2.63,5.65-3.68"/>
<path class="cls-2" d="m846.93,187.64c7.98-12.12,8-26.4,18.01-37.96"/>
<path class="cls-2" d="m779.03,253.39c5.71-11.66,6.66-24.62,17.05-35,2.11-2.11,4.32-3.83,6.61-5.28"/>
<path class="cls-1" d="m840.5,179.55c7.54-12.21,7.64-26.45,18.16-37.85"/>
<path class="cls-1" d="m770.16,249.65c7.42-12.47,7.46-26.95,18.85-38.34,3.55-3.55,7.4-6,11.39-7.91"/>
<path class="cls-5" d="m825.02,182.1c.98-.8,1.94-1.66,2.89-2.6,9.14-9.14,10.97-20.26,15.17-30.74"/>
<path class="cls-5" d="m758.11,249.26c12.77-13.69,10.34-31.52,23.83-45.01,2.93-2.93,6.05-5.1,9.3-6.85"/>
<path class="cls-5" d="m703.64,285.69c.73-1.47,1.54-2.93,2.46-4.35"/>
<path class="cls-4" d="m817.66,175.26c1.08-.86,2.14-1.8,3.17-2.83,10.18-10.18,11.3-22.83,16.71-34.3"/>
<path class="cls-4" d="m752.29,240.78c11.37-13.49,9.55-30.57,22.58-43.6,10.57-10.57,23.81-11.37,35.63-17.36"/>
<path class="cls-4" d="m701.68,270.62c.76-.93,1.59-1.84,2.48-2.73,1.33-1.33,2.7-2.5,4.1-3.55"/>
<path class="cls-4" d="m693.79,285.16c1.88-5.05,4.16-9.99,7.89-14.54"/>
<path class="cls-1" d="m747.04,231.36c9.39-13.08,8.47-28.97,20.76-41.26,13.81-13.81,32.15-10.94,45.96-24.75,6.73-6.73,9.5-14.54,12.17-22.37"/>
<path class="cls-1" d="m690.42,269.79c1.72-3.13,3.84-6.15,6.67-8.97,2.61-2.61,5.39-4.63,8.26-6.27"/>
<path class="cls-1" d="m684.96,283.07c1.53-4.5,3.11-9,5.46-13.28"/>
<path class="cls-5" d="m749.68,202.17c2.39-6.73,5.25-13.33,11.05-19.13,13.81-13.81,32.15-10.94,45.96-24.75,2.5-2.5,4.45-5.15,6.06-7.89"/>
<path class="cls-5" d="m740.26,223.88c4.49-6.44,6.57-13.53,9-20.53"/>
<path class="cls-5" d="m680.22,269.52c2.18-5.56,4.97-10.94,9.8-15.78,1.39-1.39,2.82-2.61,4.29-3.69"/>
<path class="cls-5" d="m674.09,286.31c2.38-5.5,3.95-11.23,6.13-16.79"/>
<path class="cls-1" d="m756.22,173.62c13.45-11.18,30.43-9.44,43.39-22.41,1.54-1.54,2.87-3.13,4.03-4.76"/>
<path class="cls-1" d="m742.95,194.13c1.81-4.98,3.94-9.87,7.4-14.39"/>
<path class="cls-1" d="m670.55,269.72c2.69-7.91,5.37-15.82,12-22.65"/>
<path class="cls-1" d="m662.03,288.14c4.2-5.77,6.36-12.09,8.51-18.42"/>
<path class="cls-5" d="m785.52,149.68c2.43-1.5,4.79-3.3,7.02-5.54.55-.55,1.07-1.1,1.57-1.66"/>
<path class="cls-5" d="m767.1,157.36c6.1-2.11,12.26-3.97,17.99-7.42"/>
<path class="cls-5" d="m660.6,270.61c2.86-7.07,4.61-14.45,8.22-21.32"/>
<path class="cls-5" d="m647.92,288.42c1.09-.87,2.16-1.82,3.21-2.86,4.59-4.59,7.34-9.69,9.47-14.95"/>
<path class="cls-4" d="m648.73,272.8c5.17-7.69,7.05-16.27,10.27-24.48"/>
<path class="cls-4" d="m626.84,288.84c6.06-2.26,11.96-5.1,17.21-10.35,1.82-1.82,3.36-3.73,4.68-5.69"/>
<path class="cls-4" d="m584.28,330.39c.67-1.88,1.31-3.78,1.95-5.67"/>
<path class="cls-4" d="m572.78,349.76c.19-.18.38-.37.57-.55.71-.71,1.38-1.44,2.01-2.17"/>
<path class="cls-4" d="m538.32,366.26c.6-.29,1.2-.58,1.81-.85"/>
<path class="cls-3" d="m629.77,277.07c2.5-1.53,4.92-3.36,7.21-5.65,7.26-7.26,9.91-15.78,12.8-24.23"/>
<path class="cls-3" d="m621.58,281.07c2.79-1.11,5.54-2.38,8.19-4"/>
<path class="cls-3" d="m546.14,353.53c7.08-2.46,14.05-5.31,20.13-11.4,10.75-10.75,11.39-24.26,17.67-36.23"/>
<path class="cls-3" d="m532.1,358.78c3.12-1.46,6.33-2.61,9.55-3.72"/>
<path class="cls-3" d="m516.94,370.74c1-1.32,2.12-2.61,3.37-3.86,2.15-2.15,4.4-3.89,6.74-5.36"/>
<path class="cls-6" d="m617.74,272.62c4.27-1.96,8.39-4.49,12.17-8.27,5.57-5.57,8.43-11.89,10.76-18.34"/>
<path class="cls-6" d="m583.93,289.12s.02-.02.02-.02c.22-.22.44-.44.67-.65"/>
<path class="cls-6" d="m511.13,362.09c.66-.77,1.36-1.54,2.11-2.29,13.81-13.81,32.15-10.94,45.96-24.75,12.95-12.95,11.23-29.88,22.35-43.33"/>
<path class="cls-5" d="m619.8,260c1.03-.83,2.05-1.74,3.04-2.73,2.68-2.68,4.73-5.53,6.4-8.49"/>
<path class="cls-5" d="m497.05,366.83c2.08-4.96,4.78-9.75,9.12-14.1,13.81-13.81,32.15-10.94,45.96-24.75,13.72-13.72,10.98-31.93,24.5-45.71"/>
<path class="cls-3" d="m617.52,248.33c.56-.64,1.08-1.28,1.58-1.94"/>
<path class="cls-3" d="m488.75,362.87c2.26-6.06,5.1-11.96,10.35-17.21,13.81-13.81,32.15-10.94,45.96-24.75,9.52-9.52,11.11-21.19,15.71-32.05"/>
<path class="cls-5" d="m545.99,302.25c2.42-5.1,3.98-10.44,5.86-15.68"/>
<path class="cls-5" d="m537.02,314.78c.32-.3.64-.61.96-.93,2.94-2.94,5.13-6.09,6.88-9.36"/>
<path class="cls-5" d="m479.81,361.1c2.68-7.88,5.44-15.74,12.21-22.5,10.55-10.55,23.75-11.37,35.56-17.33"/>
<path class="cls-3" d="m540.6,291.3c1.39-3.5,2.52-7.06,3.76-10.6"/>
<path class="cls-3" d="m473.79,350.98c2.41-6.84,5.27-13.56,11.16-19.46,4.81-4.81,10.16-7.59,15.68-9.76"/>
<path class="cls-4" d="m462.43,355.9c4.41-10.69,6.11-22.11,15.46-31.45,2.73-2.73,5.65-4.82,8.67-6.5"/>
<path class="cls-5" d="m588.15,221.24c1-1.06,1.92-2.14,2.75-3.24"/>
<path class="cls-5" d="m455.83,347.65c4.07-10.34,5.98-21.27,14.98-30.27,3-3,6.23-5.22,9.57-6.99"/>
<path class="cls-6" d="m586.61,206.73c1.65-2.87,2.93-5.84,4.07-8.85"/>
<path class="cls-6" d="m580.41,214.86s0,0,0,0c1.28-1.28,2.42-2.6,3.44-3.95"/>
<path class="cls-6" d="m450.16,336.8c3.23-9.18,5.67-18.58,13.58-26.49,5.36-5.36,11.41-8.21,17.61-10.5"/>
<path class="cls-4" d="m546.73,221.41c9.22-3.26,18.67-5.68,26.61-13.63,7.49-7.49,10.08-16.33,13.08-25.04"/>
<path class="cls-4" d="m442.17,332.26c3.75-9.97,5.86-20.39,14.5-29.02,4.7-4.7,9.93-7.47,15.33-9.62"/>
<path class="cls-4" d="m400.55,364.63c4.49-1.85,9.11-3.22,13.65-4.89"/>
<path class="cls-5" d="m540.54,214.03c8.94-3.11,18.04-5.63,25.73-13.32,6.12-6.12,8.97-13.14,11.44-20.25"/>
<path class="cls-5" d="m434.99,325.48c3.82-10.06,5.89-20.59,14.61-29.32s19.31-10.8,29.39-14.64"/>
<path class="cls-5" d="m394.81,357.02c3.97-1.55,8.03-2.79,12.02-4.25"/>
<path class="cls-1" d="m536.09,206.06c8.08-2.75,16.17-5.48,23.11-12.42,7.82-7.82,10.29-17.1,13.47-26.18"/>
<path class="cls-1" d="m463.8,277.31c3.66-1.26,7.34-2.45,10.92-3.98"/>
<path class="cls-1" d="m428.95,315.58c3.23-9.18,5.67-18.57,13.58-26.48,6.41-6.41,13.81-9.23,21.27-11.79"/>
<path class="cls-1" d="m370.2,361.53c.51-.58,1.05-1.15,1.61-1.72,9.01-9.01,19.95-10.92,30.3-14.99"/>
<path class="cls-5" d="m537.21,196.03c5.25-2.13,10.34-4.88,14.92-9.46,7.88-7.88,10.33-17.23,13.54-26.38"/>
<path class="cls-5" d="m446.02,274.52c8.41-4.21,17.53-5.85,25.88-10.28"/>
<path class="cls-5" d="m423.17,304.76c2.71-7.96,5.46-15.9,12.29-22.74,3.3-3.3,6.87-5.65,10.57-7.5"/>
<path class="cls-5" d="m359.78,358.86c1.38-2.12,3.01-4.17,4.97-6.13,9.54-9.54,21.24-11.12,32.12-15.74"/>
<path class="cls-1" d="m527.25,190.07c6.27-2.3,12.39-5.15,17.81-10.57,6.02-6.02,8.87-12.91,11.32-19.91"/>
<path class="cls-1" d="m431.49,272.17c11.31-9.05,25.01-9.35,36.7-16.98"/>
<path class="cls-1" d="m425.28,278.48c.93-1.2,1.96-2.38,3.11-3.52,1.01-1.01,2.05-1.94,3.11-2.78"/>
<path class="cls-1" d="m349.01,358.7c2.02-4.58,4.63-9,8.66-13.03,12.28-12.28,28.15-11.37,41.22-20.73"/>
<path class="cls-5" d="m523.1,181.87c5.24-2.13,10.31-4.87,14.88-9.44,7.96-7.96,10.38-17.42,13.64-26.65"/>
<path class="cls-5" d="m421.98,267.23c13.73-13.07,31.71-10.51,45.29-24.1,1.4-1.4,2.62-2.84,3.71-4.32"/>
<path class="cls-5" d="m348.02,341.46c.79-.97,1.65-1.93,2.59-2.86,12.57-12.57,28.89-11.32,42.13-21.4"/>
<path class="cls-5" d="m507.07,178.02c8.33-2.84,16.7-5.52,23.85-12.67,5.04-5.04,7.85-10.68,10.07-16.48"/>
<path class="cls-5" d="m479.11,197.63c1.56-2.61,3.45-5.14,5.84-7.53.96-.96,1.94-1.83,2.93-2.64"/>
<path class="cls-5" d="m424.49,253.47c11.84-6.03,25.12-6.81,35.72-17.41,6.78-6.78,9.54-14.67,12.23-22.57"/>
<path class="cls-5" d="m417.53,257.89c.07-.05.13-.1.2-.15"/>
<path class="cls-5" d="m414.71,260.35c.86-.83,1.74-1.6,2.63-2.31"/>
<path class="cls-5" d="m340.93,334.41c.8-.98,1.66-1.94,2.6-2.89,11.92-11.92,27.23-11.41,40.07-19.94"/>
<path class="cls-5" d="m423.83,243.6c10.05-3.82,20.58-5.89,29.3-14.61,13.81-13.81,10.94-32.15,24.75-45.96,13.81-13.81,32.15-10.94,45.96-24.75,3.36-3.36,5.73-6.99,7.6-10.75"/>
<path class="cls-5" d="m337.27,323.67c13.71-12.92,31.62-10.43,45.16-23.97.15-.15.3-.3.45-.46"/>
<path class="cls-6" d="m415.39,237.07c10.46-4.18,21.56-6.03,30.68-15.14,13.81-13.81,10.94-32.15,24.75-45.96s32.15-10.94,45.96-24.75c.6-.6,1.17-1.21,1.71-1.82"/>
<path class="cls-6" d="m328.28,318.54c.36-.39.73-.78,1.11-1.16,12.94-12.94,29.87-11.24,43.31-22.34"/>
<path class="cls-4" d="m429.91,221.58c3.17-1.73,6.22-3.87,9.08-6.73,13.81-13.81,10.94-32.15,24.75-45.96,12.07-12.07,27.6-11.4,40.54-20.25"/>
<path class="cls-4" d="m322.38,310.25c13.65-13.58,31.71-10.96,45.44-24.24"/>
<path class="cls-4" d="m290.36,361.92c.21-.13.43-.26.64-.4"/>
<path class="cls-2" d="m466.04,154.93c3.06-1.64,6.22-2.89,9.41-4.04"/>
<path class="cls-2" d="m429.06,210.36c.97-.79,1.92-1.65,2.86-2.58,13.81-13.81,10.94-32.15,24.75-45.96,1.2-1.2,2.43-2.27,3.7-3.24"/>
<path class="cls-2" d="m318.29,300.51c13.38-10.75,30.11-9.21,42.92-22.02,1.5-1.5,2.8-3.05,3.95-4.65"/>
<path class="cls-2" d="m282.43,355.36c.57-.33,1.14-.68,1.71-1.04"/>
<path class="cls-2" d="m264.38,362.65c5.25-1.84,10.57-3.44,15.63-5.99"/>
<path class="cls-4" d="m435.9,181.57c.64-1.81,1.25-3.62,1.87-5.44"/>
<path class="cls-4" d="m428.62,196.31c2.04-2.79,3.6-5.7,4.91-8.69"/>
<path class="cls-4" d="m421.13,203.97c1.27-.97,2.51-2.05,3.72-3.26,1.05-1.05,2-2.12,2.86-3.21"/>
<path class="cls-4" d="m319.17,288.45c11.65-5.7,24.59-6.66,34.97-17.03.42-.42.83-.85,1.22-1.27"/>
<path class="cls-4" d="m242.19,362.87c13.08-9.37,28.96-8.46,41.24-20.74,6.25-6.25,9.09-13.44,11.6-20.71"/>
<path class="cls-5" d="m309.85,282.55c12.21-6.78,26.17-7.16,37.22-18.21,3.29-3.29,5.64-6.84,7.49-10.53"/>
<path class="cls-5" d="m235.5,355.53c13-9.09,28.69-8.31,40.86-20.48,9.89-9.89,11.23-22.12,16.27-33.34"/>
<path class="cls-5" d="m360.99,215.69c1.1-1.5,2.34-2.96,3.75-4.37.9-.9,1.83-1.74,2.77-2.5"/>
<path class="cls-5" d="m352.56,233.73c.54-1.58,1.08-3.15,1.65-4.72"/>
<path class="cls-5" d="m303.2,275.25c12.11-6.56,25.87-7.05,36.79-17.97,2.56-2.56,4.55-5.28,6.18-8.1"/>
<path class="cls-5" d="m243.26,341.41c9.03-3.16,18.25-5.64,26.02-13.42,11.94-11.94,11.41-27.26,19.97-40.12"/>
<path class="cls-1" d="m343.02,233.66c3.85-10.09,5.9-20.67,14.65-29.42,5.2-5.2,11.03-8.03,17.03-10.28"/>
<path class="cls-1" d="m295.76,268.38c12.2-6.76,26.13-7.14,37.17-18.18,4.38-4.38,7.08-9.22,9.17-14.22"/>
<path class="cls-1" d="m236.03,334.39c9.09-3.18,18.37-5.65,26.19-13.48,11.63-11.63,11.43-26.48,19.33-39.13"/>
<path class="cls-2" d="m410.41,145.21c.14-.39.28-.78.43-1.17"/>
<path class="cls-2" d="m386.21,179.82c.11-.06.22-.11.33-.17"/>
<path class="cls-2" d="m237.47,324.36c6.22-2.29,12.29-5.14,17.67-10.52,13.81-13.81,10.94-32.15,24.75-45.96,13.81-13.81,32.15-10.94,45.96-24.75,13.81-13.81,10.94-32.15,24.75-45.96,10.57-10.57,23.79-11.37,35.61-17.35"/>
<path class="cls-5" d="m391.1,163.64c5.43-6.15,7.97-13.09,10.36-20.07"/>
<path class="cls-5" d="m385.51,168.81c.36-.27.72-.56,1.08-.85"/>
<path class="cls-5" d="m242.7,311.23c1.85-1.27,3.64-2.73,5.37-4.46,13.81-13.81,10.94-32.15,24.75-45.96,13.81-13.81,32.15-10.94,45.96-24.75,13.81-13.81,10.94-32.15,24.75-45.96,12.52-12.52,28.77-11.33,41.98-21.29"/>
<path class="cls-5" d="m384.12,156.47c3.49-3.98,5.77-8.28,7.6-12.71"/>
<path class="cls-5" d="m240.48,300.22c.17-.17.35-.34.52-.51,13.81-13.81,10.94-32.15,24.75-45.96s32.15-10.94,45.96-24.75,10.94-32.15,24.75-45.96,32.15-10.94,45.96-24.75c.6-.6,1.16-1.2,1.69-1.81"/>
<path class="cls-4" d="m381.93,142.4c.3-.55.6-1.1.87-1.66"/>
<path class="cls-4" d="m332.28,173.36c13.4-10.89,30.21-9.28,43.08-22.15,2.78-2.78,4.88-5.74,6.58-8.81"/>
<path class="cls-4" d="m321.62,187.06c.9-1.84,1.91-3.66,3.1-5.42"/>
<path class="cls-4" d="m315.71,202.72c1.2-3.38,2.28-6.79,3.55-10.14"/>
<path class="cls-4" d="m299.97,225.89c1.6-1.15,3.16-2.46,4.67-3.97,2.41-2.41,4.31-4.95,5.87-7.58"/>
<path class="cls-4" d="m236.01,290.37c11.46-13.5,9.6-30.64,22.67-43.7,8.25-8.25,18.13-10.55,27.69-14.01"/>
<path class="cls-6" d="m343.39,157.17c8.67-2.98,17.44-5.58,24.9-13.03.57-.57,1.1-1.14,1.62-1.72"/>
<path class="cls-6" d="m330.09,162.9c.8-.47,1.6-.91,2.41-1.32"/>
<path class="cls-6" d="m245.82,247.04c1.55-2.58,3.43-5.08,5.79-7.44,11.84-11.84,27.02-11.42,39.81-19.77"/>
<path class="cls-6" d="m236.86,269.26c1.77-4.6,3.15-9.3,4.95-13.89"/>
<path class="cls-4" d="m239.14,239.34c1.48-2.36,3.23-4.64,5.4-6.81,12.29-12.29,28.17-11.37,41.25-20.75"/>
<path class="cls-6" d="m235.4,227.7c.65-.76,1.33-1.51,2.07-2.24,13.81-13.81,32.15-10.94,45.96-24.75.65-.65,1.27-1.32,1.85-1.99"/>
<path class="cls-5" d="m286.6,176.72c.68-1.8,1.3-3.61,1.92-5.42"/>
<path class="cls-5" d="m243.13,209.86c11.19-5,23.37-6.36,33.23-16.22,3.35-3.35,5.72-6.96,7.58-10.72"/>
<path class="cls-3" d="m234.01,203.75c11.73-5.83,24.81-6.72,35.28-17.19,7.39-7.39,10.01-16.09,12.96-24.69"/>
<path class="cls-1" d="m242.65,190.7c6.88-2.42,13.64-5.27,19.57-11.2,9.04-9.04,10.93-20.02,15.03-30.4"/>
<path class="cls-3" d="m246.15,179.1c3.14-1.72,6.16-3.85,8.99-6.68,7.08-7.08,9.77-15.35,12.58-23.59"/>
<path class="cls-4" d="m239.74,171.67c2.9-1.65,5.7-3.68,8.34-6.31,4.1-4.1,6.74-8.61,8.77-13.28"/>
<path class="cls-5" d="m240.12,159.14c.3-.28.59-.56.88-.86,3.57-3.57,6.03-7.45,7.94-11.47"/>
</svg>

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

+21 -21
View File
@@ -1,21 +1,21 @@
https://www.proxyscan.io/download?type=https
https://openproxy.space/list/http
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-http.txt
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/http.txt
https://www.proxyscan.io/download?type=http
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt
https://api.proxyscrape.com/v2/?request=getproxies&protocol=http&timeout=10000&country=all&ssl=all&anonymity=all
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/https.txt
https://raw.githubusercontent.com/roosterkid/openproxylist/main/HTTPS_RAW.txt
https://raw.githubusercontent.com/proxy4parsing/proxy-list/main/http.txt
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/http.txt
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/http.txt
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/http.txt
https://www.proxy-list.download/api/v1/get?type=https
https://www.proxy-list.download/api/v1/get?type=http
https://raw.githubusercontent.com/mmpx12/proxy-list/master/http.txt
https://raw.githubusercontent.com/mmpx12/proxy-list/master/https.txt
https://api.openproxylist.xyz/http.txt
http://pubproxy.com/api/proxy
https://raw.githubusercontent.com/HyperBeats/proxy-list/main/http.txt
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-https.txt
https://www.proxyscan.io/download?type=https
https://openproxy.space/list/http
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-http.txt
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/http.txt
https://www.proxyscan.io/download?type=http
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/http.txt
https://api.proxyscrape.com/v2/?request=getproxies&protocol=http&timeout=10000&country=all&ssl=all&anonymity=all
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/https.txt
https://raw.githubusercontent.com/roosterkid/openproxylist/main/HTTPS_RAW.txt
https://raw.githubusercontent.com/proxy4parsing/proxy-list/main/http.txt
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/http.txt
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/http.txt
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/http.txt
https://www.proxy-list.download/api/v1/get?type=https
https://www.proxy-list.download/api/v1/get?type=http
https://raw.githubusercontent.com/mmpx12/proxy-list/master/http.txt
https://raw.githubusercontent.com/mmpx12/proxy-list/master/https.txt
https://api.openproxylist.xyz/http.txt
http://pubproxy.com/api/proxy
https://raw.githubusercontent.com/HyperBeats/proxy-list/main/http.txt
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-https.txt
+15 -15
View File
@@ -1,15 +1,15 @@
https://api.openproxylist.xyz/socks4.txt
https://www.proxy-list.download/api/v1/get?type=socks4
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks4.txt
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/socks4.txt
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/socks4.txt
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks4.txt
https://raw.githubusercontent.com/HyperBeats/proxy-list/main/socks4.txt
https://www.proxyscan.io/download?type=socks4
https://www.socks-proxy.net/
https://raw.githubusercontent.com/mmpx12/proxy-list/master/socks4.txt
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/socks4.txt
https://openproxy.space/list/socks4
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/socks4.txt
https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS4_RAW.txt
https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks4&timeout=10000&country=all
https://api.openproxylist.xyz/socks4.txt
https://www.proxy-list.download/api/v1/get?type=socks4
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks4.txt
https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/socks4.txt
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/socks4.txt
https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks4.txt
https://raw.githubusercontent.com/HyperBeats/proxy-list/main/socks4.txt
https://www.proxyscan.io/download?type=socks4
https://www.socks-proxy.net/
https://raw.githubusercontent.com/mmpx12/proxy-list/master/socks4.txt
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/socks4.txt
https://openproxy.space/list/socks4
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/socks4.txt
https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS4_RAW.txt
https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks4&timeout=10000&country=all
+15 -15
View File
@@ -1,15 +1,15 @@
https://raw.githubusercontent.com/thespeedx/proxy-list/master/socks5.txt
https://api.openproxylist.xyz/socks5.txt
https://www.proxyscan.io/download?type=socks5
https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS5_RAW.txt
https://raw.githubusercontent.com/hookzof/socks5_list/master/proxy.txt
https://www.proxy-list.download/api/v1/get?type=socks5
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/socks5.txt
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/socks5.txt
https://raw.githubusercontent.com/hyperbeats/proxy-list/main/socks5.txt
https://openproxy.space/list/socks5
https://raw.githubusercontent.com/mmpx12/proxy-list/master/socks5.txt
https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks5&timeout=10000&country=all
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks5.txt
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/socks5.txt
https://raw.githubusercontent.com/shiftytr/proxy-list/master/socks5.txt
https://raw.githubusercontent.com/thespeedx/proxy-list/master/socks5.txt
https://api.openproxylist.xyz/socks5.txt
https://www.proxyscan.io/download?type=socks5
https://raw.githubusercontent.com/roosterkid/openproxylist/main/SOCKS5_RAW.txt
https://raw.githubusercontent.com/hookzof/socks5_list/master/proxy.txt
https://www.proxy-list.download/api/v1/get?type=socks5
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies/socks5.txt
https://raw.githubusercontent.com/saschazesiger/Free-Proxies/master/proxies/socks5.txt
https://raw.githubusercontent.com/hyperbeats/proxy-list/main/socks5.txt
https://openproxy.space/list/socks5
https://raw.githubusercontent.com/mmpx12/proxy-list/master/socks5.txt
https://api.proxyscrape.com/v2/?request=getproxies&protocol=socks5&timeout=10000&country=all
https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks5.txt
https://raw.githubusercontent.com/monosans/proxy-list/main/proxies_anonymous/socks5.txt
https://raw.githubusercontent.com/shiftytr/proxy-list/master/socks5.txt
+1
View File
@@ -0,0 +1 @@
your proxies will land here
+3
View File
@@ -0,0 +1,3 @@
httpx==0.24.1
pystyle==2.9
PyYAML==6.0.1
+1 -1
View File
@@ -1,5 +1,5 @@
{
premades: "?", # Sets the premade file | '?' for asking | 'n' for sites.txt | '1' for http/s | '2' for socks4 | '3' for socks5
presets: "?", # Sets the presets file | '?' for asking | 'n' for sites.txt | '1' for http/s | '2' for socks4 | '3' for socks5
removeWebsites: "?", # Removes not connectable websites | '?' for asking | 'y' or 'n'