├── src ├── utils │ ├── __init__.py │ ├── ffmpegWrapper.py │ ├── tts.py │ ├── scrapper.py │ ├── Prettify.py │ ├── configGenerator.py │ └── twoSecondSilence.py ├── favicon.ico ├── build-command.txt ├── requirements.txt └── libread-tool.py ├── screenshots ├── SR.gif └── RSS.png ├── .gitignore ├── README.md └── LICENSE /src/utils/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Spectre-hidN/LibRead-Tool/HEAD/src/favicon.ico -------------------------------------------------------------------------------- /screenshots/SR.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Spectre-hidN/LibRead-Tool/HEAD/screenshots/SR.gif -------------------------------------------------------------------------------- /screenshots/RSS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Spectre-hidN/LibRead-Tool/HEAD/screenshots/RSS.png -------------------------------------------------------------------------------- /src/build-command.txt: -------------------------------------------------------------------------------- 1 | pyinstaller --onefile --workpath "Temp/" --distpath "Build/" ./libread-tool.py --specpath "Temp/" -n "LibRead-Tool" -i "$pwd/favicon.ico" -------------------------------------------------------------------------------- /src/requirements.txt: -------------------------------------------------------------------------------- 1 | beautifulsoup4==4.11.2 2 | edge_tts==6.1.9 3 | hrequests==0.9.2 4 | music_tag==0.4.3 5 | pynput==1.7.6 6 | PyWinCtl==0.3 7 | Requests==2.32.3 8 | urllib3==1.26.14 9 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | src/Build/ 2 | src/Temp/ 3 | **/__pycache__/ 4 | **/.OPD/ 5 | *.ini 6 | *.html 7 | *.txt 8 | *.mp3 9 | *.vtt 10 | *.jpg 11 | *.code-workspace 12 | 13 | !src/build-command.txt 14 | !src/requirements.txt 15 | -------------------------------------------------------------------------------- /src/utils/ffmpegWrapper.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | import re 3 | import os 4 | import configparser 5 | from .configGenerator import create_default_config 6 | from .Prettify import Prettify, clearLine 7 | from .twoSecondSilence import getFileBytes 8 | import music_tag 9 | 10 | printSuc = Prettify.printSuc 11 | printWar = Prettify.printWar 12 | printErr = Prettify.printErr 13 | printFeaturedText = Prettify.printFeaturedText 14 | 15 | CONFIG_FILE = "libread-config.ini" 16 | global EMBED_SUBS 17 | 18 | def _sorted_alphanumeric(data): 19 | convert = lambda text: int(text) if text.isdigit() else text.lower() 20 | alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] 21 | return sorted(data, key=alphanum_key) 22 | 23 | def _readConfig(): 24 | if(os.path.isfile(CONFIG_FILE)): 25 | try: 26 | config = configparser.ConfigParser() 27 | config.read(CONFIG_FILE) 28 | global EMBED_SUBS 29 | EMBED_SUBS = config.getboolean("TTS_CONFIG", "embedSubtitles") 30 | except: 31 | printWar("Corrupted config file detected! Re-generating a new one...") 32 | create_default_config(CONFIG_FILE) 33 | _readConfig() 34 | else: 35 | create_default_config(CONFIG_FILE) 36 | _readConfig() 37 | 38 | def performSanityCheck() -> bool: 39 | try: 40 | result = subprocess.check_output(["ffmpeg", "-version"]).decode() 41 | except: 42 | printFeaturedText(msg="FFMPEG not found in the path! LibRead-Tool will download all articles before converting them.") 43 | return False 44 | 45 | ffmpegVersion = re.search("ffmpeg version (.*) Copyright", result).group(1) 46 | printSuc(f"FFMPEG version {ffmpegVersion} found!") 47 | return True 48 | 49 | # Will merge all mp3 files into one and embed the subtitles from subs.txt 50 | def mergeChunks(chunkFilesDir: str, outputFilePrefix: str, coverImagePath = None) -> None: 51 | _readConfig() 52 | 53 | allMP3Files = _sorted_alphanumeric([f for f in os.listdir(chunkFilesDir) if (os.path.isfile(os.path.join(chunkFilesDir, f)) and (f.split(".")[-1] == "mp3"))]) 54 | 55 | with open(f'{chunkFilesDir}/2s-delay.mp3', 'wb') as df: 56 | df.write(getFileBytes()) 57 | 58 | ffmpegfileList = "".join(f"file '{f}'\nfile '2s-delay.mp3'\n" for f in allMP3Files) 59 | 60 | with open(f'{chunkFilesDir}/inputFiles.txt', 'w', encoding="utf=8") as cf: 61 | cf.write(ffmpegfileList) 62 | 63 | retCode = os.system(f'ffmpeg -f concat -safe 0 -i "{chunkFilesDir}/inputFiles.txt" -c copy -map_metadata 0 "{outputFilePrefix}.mp3" -loglevel panic') 64 | if(retCode != 0): 65 | clearLine() 66 | printErr(f"Merge Error occured! FFMPEG ReturnCode: {str(retCode)}") 67 | return 68 | 69 | # Add ID3 tags 70 | f = music_tag.load_file(f'{outputFilePrefix}.mp3') 71 | 72 | if(EMBED_SUBS): 73 | with open(f"{chunkFilesDir}/subs.txt", 'r', encoding="utf-8") as sf: 74 | f["lyrics"] = sf.read() 75 | 76 | if(coverImagePath): 77 | with open(coverImagePath, 'rb') as If: 78 | f["artwork"] = If.read() 79 | 80 | f.save() -------------------------------------------------------------------------------- /src/utils/tts.py: -------------------------------------------------------------------------------- 1 | import edge_tts 2 | import os 3 | import configparser 4 | import re 5 | from .Prettify import Prettify 6 | from .configGenerator import create_default_config 7 | import music_tag 8 | 9 | 10 | CONFIG_FILE = "libread-config.ini" 11 | global EMBED_SUBS 12 | global VOICE_NAME 13 | 14 | printWar = Prettify.printWar 15 | 16 | def _readConfig(): 17 | if(os.path.isfile(CONFIG_FILE)): 18 | try: 19 | config = configparser.ConfigParser() 20 | config.read(CONFIG_FILE) 21 | global VOICE_NAME 22 | VOICE_NAME = config.get("TTS_CONFIG", "Voice") 23 | global EMBED_SUBS 24 | EMBED_SUBS = config.getboolean("TTS_CONFIG", "embedSubtitles") 25 | except: 26 | printWar("Corrupted config file detected! Re-generating a new one...") 27 | create_default_config(CONFIG_FILE) 28 | _readConfig() 29 | else: 30 | create_default_config(CONFIG_FILE) 31 | _readConfig() 32 | 33 | async def createTTSFromFile(filepath: str, outputFilePrefix: str, coverImagePath = None): 34 | _readConfig() 35 | 36 | inputFile = open(filepath, 'r', encoding='utf-8') 37 | communicate = edge_tts.Communicate(inputFile.read(), VOICE_NAME) 38 | submaker = edge_tts.SubMaker() 39 | with open(outputFilePrefix+".mp3", "wb") as f: 40 | async for chunk in communicate.stream(): 41 | if chunk["type"] == "audio": 42 | f.write(chunk["data"]) 43 | elif chunk["type"] == "WordBoundary": 44 | submaker.create_sub((chunk["offset"], chunk["duration"]), chunk["text"]) 45 | 46 | subs = submaker.generate_subs() 47 | with open(outputFilePrefix+".vtt", "w", encoding="utf-8") as sf: 48 | sf.write(subs) 49 | 50 | subs = subs.replace("""WEBVTT""", "") 51 | subs = re.sub("[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3} --> [0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}", "", subs) 52 | subs = re.sub(r'(\n\s*)+', "\n", subs) 53 | 54 | f = music_tag.load_file(outputFilePrefix+".mp3") 55 | 56 | if(EMBED_SUBS): 57 | f["lyrics"] = subs 58 | 59 | if(coverImagePath): 60 | with open(coverImagePath, 'rb') as img_in: 61 | f["artwork"] = img_in.read() 62 | 63 | f.save() 64 | 65 | async def createTTSFromText(text: str, outputPath: str, coverImagePath = None, embedSubtitles = False): 66 | _readConfig() 67 | 68 | if(os.path.isfile(outputPath)): os.remove(outputPath) 69 | 70 | communicate = edge_tts.Communicate(text, VOICE_NAME) 71 | subFile = open(os.path.dirname(outputPath)+"/subs.txt", "a+", encoding="utf-8") 72 | submaker = edge_tts.SubMaker() 73 | 74 | with open(outputPath, "ab") as ttsFile: 75 | async for chunk in communicate.stream(): 76 | if(chunk["type"] == "audio"): 77 | ttsFile.write(chunk["data"]) 78 | elif(chunk["type"] == "WordBoundary"): 79 | submaker.create_sub((chunk["offset"], chunk["duration"]), chunk["text"]) 80 | 81 | subs = submaker.generate_subs() 82 | subs = subs.replace("""WEBVTT""", "") 83 | subs = re.sub("[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3} --> [0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]{3}", "", subs) 84 | subs = re.sub(r'(\n\s*)+', "\n", subs) 85 | 86 | subFile.write(f"{subs}\n") 87 | subFile.close() 88 | 89 | # Add ID3 tags 90 | f = music_tag.load_file(outputPath) 91 | if(embedSubtitles): f["lyrics"] = subs 92 | if(coverImagePath): 93 | with open(coverImagePath, 'rb') as img_in: 94 | f["artwork"] = img_in.read() 95 | 96 | f.save() -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |

LibRead-Tool

3 | Converts online novels into audiobooks 4 |
5 |
6 |
7 | 8 | Introducing LibRead-tool – your go-to for turning online novels into awesome audio! Fetch your favourites and convert them into audiobooks. Say hello to hands-free storytelling! 9 | 10 |

11 | LibRead-Tool Main page 12 | Result 13 |

14 | 15 | ## 🌸 Features 16 | - 🔍 **Search** novels directly within LibRead-Tool 17 | - 📕 Convert novels into one audiobook or **Split it into parts** 18 | - 💾 Embeds **ID3 tags** into the MP3 file 19 | - 🌐 **Scrapes LibRead** to fetch novels 20 | 21 | ## 🔧Installation 22 | #### Using Portable Builds 23 | - This is the recommended method if Python is not installed on your system. 24 | - Download the executable binary files from the release page for your system 25 | - To execute the program, use the following method 26 | - On Windows, double-click on the application to run it. 27 | - On Ubuntu-based distros, open a terminal in the directory where the executable file is saved and execute the following command `./LibRead-Tool_Zorin-OS`.
If you are getting a permission denied error, then you have to execute the command
`chmod +x LibRead-Tool_Zorin-OS` to make it executable. 28 |


29 |

Running from source

30 | 55 |
56 |

Installing Optional Dependency

57 | 68 |
69 |

⚙️ Configuring

70 |

Upon initial execution, the program will create a default configuration file inside the same directory named libread-config.ini. You can open that in any text editor, and you might change some options.

71 |


72 |

73 | 74 | 75 |
76 | Packages Used 77 |
78 | beautifulsoup4 79 |
80 | requests 81 |
82 | music-tag 83 |
84 | pynput 85 |
86 | PyWinCtl 87 |
88 | edge-tts 89 |
90 | -------------------------------------------------------------------------------- /src/utils/scrapper.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import hrequests 3 | from bs4 import BeautifulSoup 4 | import os 5 | import configparser 6 | from .Prettify import Prettify 7 | from .configGenerator import create_default_config 8 | from requests.packages.urllib3.exceptions import InsecureRequestWarning #type: ignore 9 | import urllib3 10 | 11 | CONFIG_FILE = "libread-config.ini" 12 | global DOMAIN_NAME 13 | global SEARCH_PAGE_SELECTOR, STATUS_SELECTOR_I, STATUS_SELECTOR_II, STATUS_SELECTOR_III, CHAPTER_SELECTOR, IMAGE_URL_SELECTOR, ARTICLE_DIV_SELECTOR 14 | global HEADERS 15 | 16 | printWar = Prettify.printWar 17 | printSuc = Prettify.printSuc 18 | printErr = Prettify.printErr 19 | 20 | 21 | def _readConfig(): 22 | requests.packages.urllib3.disable_warnings(InsecureRequestWarning) 23 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) 24 | 25 | if(os.path.isfile(CONFIG_FILE)): 26 | try: 27 | config = configparser.ConfigParser() 28 | config.read(CONFIG_FILE) 29 | 30 | global SEARCH_PAGE_SELECTOR, STATUS_SELECTOR_I, STATUS_SELECTOR_II, STATUS_SELECTOR_III, CHAPTER_SELECTOR, IMAGE_URL_SELECTOR, ARTICLE_DIV_SELECTOR 31 | SEARCH_PAGE_SELECTOR = config.get("SELECTOR_MAPS", "searchResultSelector") 32 | STATUS_SELECTOR_I = config.get("SELECTOR_MAPS", "statusSelectorI") 33 | STATUS_SELECTOR_II = config.get("SELECTOR_MAPS", "statusSelectorII") 34 | STATUS_SELECTOR_III = config.get("SELECTOR_MAPS", "statusSelectorIII") 35 | CHAPTER_SELECTOR = config.get("SELECTOR_MAPS", "totalChaptersSelector") 36 | IMAGE_URL_SELECTOR = config.get("SELECTOR_MAPS", "coverImageDivSelector") 37 | ARTICLE_DIV_SELECTOR = config.get("SELECTOR_MAPS", "articleDivSelector") 38 | 39 | global HEADERS 40 | HEADERS = { 41 | 'authority': config.get("DOMAIN", "authority"), 42 | 'User-Agent' : config.get("DOMAIN", "userAgent"), 43 | 'origin': config.get("DOMAIN", "origin"), 44 | 'referer': config.get("DOMAIN", "referer")} 45 | 46 | global DOMAIN_NAME 47 | DOMAIN_NAME = config.get("DOMAIN", "domainName") 48 | 49 | except: 50 | printWar("Corrupted config file detected! Re-generating a new one...") 51 | create_default_config(CONFIG_FILE) 52 | _readConfig() 53 | else: 54 | create_default_config(CONFIG_FILE) 55 | _readConfig() 56 | 57 | 58 | def checkConnection(): 59 | _readConfig() 60 | url = f"https://{DOMAIN_NAME}/" 61 | try: 62 | con = requests.get(url, timeout=10, verify=False) 63 | if(con.status_code == 200): 64 | return True 65 | else: 66 | print("Connection established with Status code " + con.status_code) 67 | return False 68 | except: 69 | return False 70 | 71 | def search(query: str): 72 | _readConfig() 73 | 74 | payload = {"searchkey": query} 75 | res = requests.post(f"https://{DOMAIN_NAME}/search", data=payload, headers=HEADERS, verify=False) 76 | soup = BeautifulSoup(res.content, 'html.parser') 77 | 78 | #For Debugging purposes 79 | with open("searchResultDump.html", 'w', encoding='utf-8') as f: 80 | f.write(res.content.decode()) 81 | 82 | results = soup.select(SEARCH_PAGE_SELECTOR) 83 | return results 84 | 85 | def getMetadata(url: str): 86 | _readConfig() 87 | 88 | try: 89 | res = requests.get(url, headers=HEADERS, verify=False) 90 | except: 91 | try: 92 | res = requests.get(url, headers=HEADERS) 93 | except Exception as E: 94 | printErr(f"Error occured while fetching {url}. | Error: {E} |") 95 | soup = BeautifulSoup(res.content, 'html.parser') 96 | 97 | #For Debugging purposes 98 | with open("novelPageDump.html", 'w', encoding='utf-8') as f: 99 | f.write(res.content.decode()) 100 | 101 | metadata = {'chapters': [], 'status' : None, 'cover-image': None} 102 | 103 | chapters = soup.select(CHAPTER_SELECTOR) 104 | metadata.update({'chapters' : chapters}) 105 | status = "Unknow" 106 | try: 107 | status = soup.select(STATUS_SELECTOR_I)[0].text 108 | except: 109 | try: 110 | status = soup.select(STATUS_SELECTOR_II)[0].text 111 | except: 112 | try: 113 | status = soup.select(STATUS_SELECTOR_III)[0].text 114 | except: 115 | pass 116 | 117 | metadata.update({'status' : status}) 118 | 119 | try: 120 | imageUrl = f"https://{DOMAIN_NAME}/" + soup.select(IMAGE_URL_SELECTOR)[0]["src"] 121 | 122 | image = requests.get(imageUrl, headers=HEADERS, stream=True) 123 | metadata.update({'cover-image':image}) 124 | except: 125 | pass 126 | 127 | return metadata 128 | 129 | def getArticle(url: str): 130 | _readConfig() 131 | 132 | try: 133 | res = hrequests.get(url, headers=HEADERS, verify=False) 134 | except: 135 | try: 136 | res = hrequests.get(url, headers=HEADERS) 137 | except Exception as E: 138 | printErr(f"Error occured while fetching {url}. | Error: {E} |") 139 | 140 | soup = BeautifulSoup(res.content, 'html.parser') 141 | 142 | #For Debugging purposes 143 | with open('articlePageDump.html', 'w', encoding='utf-8') as f: 144 | f.write(res.content.decode()) 145 | 146 | articleDiv = soup.select(ARTICLE_DIV_SELECTOR) 147 | articleDiv = articleDiv[0:len(articleDiv)-1] 148 | articleStr = "" 149 | for article in articleDiv: 150 | if(article.text == "…" or article.text == "..."): 151 | continue 152 | #filter out words that can break tts 153 | articleStr += article.text.replace("𝙡𝓲𝒃𝓻𝓮𝙖𝒅.𝙘𝓸𝒎", "").replace("…", "").replace("...", "").replace("𝓵𝙞𝙗𝙧𝙚𝒂𝙙.𝓬𝒐𝒎", "").replace("“", "").replace("”", "").replace("𝒍𝒊𝙗𝒓𝒆𝒂𝒅.𝓬𝒐𝓶", "").replace("*", "") 154 | articleStr += "\n" 155 | return articleStr -------------------------------------------------------------------------------- /src/utils/Prettify.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | import time 4 | 5 | def clearScreen(): 6 | """ 7 | Clears the terminal 8 | """ 9 | if os.name == 'nt': 10 | os.system("cls") 11 | else: 12 | os.system("clear") 13 | 14 | def clearLine(): 15 | """ 16 | Clears the current line 17 | """ 18 | length = os.get_terminal_size()[0] 19 | whiteSpace = " "*length 20 | print(whiteSpace, end="\r") 21 | 22 | class Prettify(): 23 | 24 | def __init__(self): 25 | """Return specified color escape c0des if flushCodes flag is False else flush it to the console.""" 26 | 27 | #For some unknown reason window's command prompt does not recognise any escape code unless it is registered/cache using system calls. The below line will make sure to recognise all escape codes. 28 | if os.name == 'nt': 29 | os.system('echo|set /p="\033[38;5;12m\033[0m"') 30 | 31 | try: 32 | if sys.argv[1] == 'dump_cols': 33 | self.flushCodes = True 34 | else: 35 | self.flushCodes = False 36 | except: 37 | self.flushCodes = False 38 | 39 | try: 40 | if sys.argv[1] == 'dump_bgs': 41 | self.OnlyBG = True 42 | else: 43 | self.OnlyBG = False 44 | except: 45 | self.OnlyBG = False 46 | 47 | def dump_colors(self, code=None, ForBG=False): 48 | for i in range(0, 256): 49 | color_code = str(i) 50 | if not self.OnlyBG: 51 | escape_code = u"\u001b[38;5;" + color_code + "m" 52 | else: 53 | escape_code = "\033[48;5;" + color_code + "m" 54 | if code != None: 55 | if str(code) == color_code: 56 | return escape_code 57 | elif code == None: 58 | if self.OnlyBG or self.flushCodes: 59 | sys.stdout.write(escape_code + color_code.ljust(4) + " ") 60 | 61 | def progressBar(self, total_size: int, size_done: int, prefix="On the way!", suffix="There", length=None, fill_symbol='█', ToBeFill_symbol=' ', static_color=[]): #type: ignore 62 | """ 63 | Simple Progress bar that changes colors upon progress! 64 | 65 | PARAMETERS --> length {DEFAULT: os.get_terminal_size()[0] - len(prefix) - len(suffix)- 11} 66 | prefix {DEFAULT: "On the way!"} 67 | suffix {DEFAULT: "There"} 68 | total_size {DATATYPE: int} [REQUIRED] 69 | size_done {DATATYPE: int} [REQUIRED] 70 | fill_symbol {DEFAULT: '█'} 71 | ToBeFill_symbol {DEFAULT: ' '} 72 | static_color {DEFAULT: []} (Index: [0 -> fill_symbol, 1 -> ToBeFill_symbol]) 73 | 74 | NOTE --> endline (\n) should be provided after the job is completed to bring the cursor to a new line. 75 | When Overriding the 'fill_symbol' or 'ToBeFill_symbol' with characters of different length, then specifying the length manually might required. 76 | """ 77 | decimals = 1 78 | if length == None: 79 | length = os.get_terminal_size()[0] - len(prefix) - len(suffix) - 11 80 | if len(fill_symbol) > 1: 81 | length = length // len(fill_symbol) 82 | total = total_size 83 | ToBeFill_length = len(fill_symbol) // len(ToBeFill_symbol) 84 | 85 | try: 86 | ToBeFill_symbol = self.dump_colors(code=static_color[1]) + ToBeFill_symbol + self.dump_colors(code=7) 87 | except (IndexError, TypeError): 88 | pass 89 | 90 | # Progress Bar Printing Function 91 | def printProgressBar(iteration): 92 | if self.flushCodes == True: 93 | exit(0) 94 | percent = round(float(("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))) + 0.1, 1) 95 | 96 | if percent > float(100): 97 | percent = 100.0 98 | 99 | fill_color_applied = False 100 | try: 101 | fill = self.dump_colors(code=static_color[0]) + fill_symbol + self.dump_colors(code=7) 102 | fill_color_applied = True 103 | except (IndexError, TypeError): 104 | pass 105 | 106 | if not fill_color_applied: 107 | if percent >= float(0) and percent <= float(11): 108 | fill = self.dump_colors( 109 | code=124) + fill_symbol + self.dump_colors(code=7) 110 | elif percent > float(11) and percent <= float(21): 111 | fill = self.dump_colors( 112 | code=196) + fill_symbol + self.dump_colors(code=7) 113 | elif percent > float(21) and percent <= float(31): 114 | fill = self.dump_colors( 115 | code=202) + fill_symbol + self.dump_colors(code=7) 116 | elif percent > float(31) and percent <= float(41): 117 | fill = self.dump_colors( 118 | code=208) + fill_symbol + self.dump_colors(code=7) 119 | elif percent > float(41) and percent <= float(55): 120 | fill = self.dump_colors( 121 | code=220) + fill_symbol + self.dump_colors(code=7) 122 | elif percent > float(55) and percent <= float(71): 123 | fill = self.dump_colors( 124 | code=190) + fill_symbol + self.dump_colors(code=7) 125 | elif percent > float(71) and percent <= float(85): 126 | fill = self.dump_colors( 127 | code=34) + fill_symbol + self.dump_colors(code=7) 128 | elif percent > float(85): 129 | fill = self.dump_colors( 130 | code=46) + fill_symbol + self.dump_colors(code=7) 131 | 132 | filledLength = int(length * iteration // total) + 1 133 | bar = fill * filledLength + (ToBeFill_symbol * ToBeFill_length) * (length - filledLength) 134 | print(f'\r{prefix} |{bar}| {percent}% {suffix}', end="\r") 135 | if self.flushCodes or self.OnlyBG: 136 | exit(0) 137 | else: 138 | printProgressBar(size_done) 139 | 140 | def dump_styles(self, styles=None): 141 | """ 142 | Return esacpe code of specified 143 | *** Tested on Unix terminal *** 144 | """ 145 | 146 | if styles == 'bold': 147 | return "\033[1m" 148 | elif styles == 'faint': 149 | return '\033[2m' 150 | elif styles == 'italic': 151 | return '\033[3m' 152 | elif styles == 'underline': 153 | return '\033[4m' 154 | elif styles == 'blink': 155 | return '\033[5m' 156 | elif styles == 'reverse': 157 | return '\033[7m' 158 | elif styles == 'conceal': 159 | return '\033[8m' 160 | elif styles == 'crossed-out': 161 | return '\033[9m' 162 | elif styles == 'double-underline': 163 | return '\033[21m' 164 | elif styles == 'bold-off' or styles == 'faint-off': 165 | return '\033[22m' 166 | elif styles == 'italic-off': 167 | return '\033[23m' 168 | elif styles == 'underline-off': 169 | return '\033[24m' 170 | elif styles == 'blink-off': 171 | return '\033[25m' 172 | elif styles == 'reverse-off': 173 | return '\033[27m' 174 | elif styles == 'reveal' or styles == 'conceal-off': #type: ignore 175 | return '\033[28m' 176 | elif styles == 'crossed-out-off': 177 | return '\033[29m' 178 | elif styles == "overlined": 179 | return '\033[53m' 180 | elif styles == 'overlined-off': 181 | return '\033[55m' 182 | elif styles == 'reset': 183 | return '\033[0m' 184 | 185 | @staticmethod 186 | def printErr(msg: str, pauseOnError = True) -> None: 187 | obj = Prettify() 188 | print(f"{obj.dump_colors(code=196)}{msg}{obj.dump_styles(styles='reset')}") 189 | input() if pauseOnError else None 190 | 191 | @staticmethod 192 | def printSuc(msg: str) -> None: 193 | obj = Prettify() 194 | print(f"{obj.dump_colors(code=46)}{msg}{obj.dump_styles(styles='reset')}") 195 | 196 | @staticmethod 197 | def printWar(msg: str) -> None: 198 | obj = Prettify() 199 | print(f"{obj.dump_colors(code=208)}{msg}{obj.dump_styles(styles='reset')}") 200 | 201 | @staticmethod 202 | def printInf(msg: str) -> None: 203 | obj = Prettify() 204 | print(f"{obj.dump_colors(code=198)}{msg}{obj.dump_styles(styles='reset')}") 205 | 206 | @staticmethod 207 | def printFeaturedText(msg: str, blinkersColorCode = 196, msgColorCode = 226): 208 | self = Prettify() 209 | print(self.dump_styles(styles='blink') + self.dump_colors(code=blinkersColorCode) + '♦ ' + self.dump_styles(styles='blink-off') + self.dump_colors(code=msgColorCode) + msg + self.dump_styles(styles='blink') + self.dump_colors(code=blinkersColorCode) + ' ♦' + self.dump_styles(styles='reset')) 210 | 211 | if __name__ == "__main__": 212 | """For Debugging and Initial testing purposes""" 213 | 214 | cl = Prettify() 215 | cl.dump_colors() 216 | dump_styles = False 217 | try: 218 | if sys.argv[1] == 'dump_styles': 219 | dump_styles = True 220 | else: 221 | dump_styles = False 222 | except: 223 | pass 224 | if dump_styles: 225 | #show styles 226 | print(cl.dump_styles(styles='underline') + 'Styles' + cl.dump_styles(styles='underline-off') + ' ' + cl.dump_styles(styles='underline') + 'Codename' + cl.dump_styles(styles='underline-off')) 227 | print(cl.dump_styles(styles='bold') + "Bold Text" + cl.dump_styles(styles='bold-off') + ' ' + 'bold, bold-off') 228 | print(cl.dump_styles(styles='faint') + "Faint Text" + cl.dump_styles(styles='faint-off') + ' ' + 'faint, faint-off') 229 | print(cl.dump_styles(styles='italic') + "Italic Text" + cl.dump_styles(styles='italic-off') + ' ' + 'italic, italic-off') 230 | print(cl.dump_styles(styles='underline') + "Underlined Text" + cl.dump_styles(styles='underline-off') + ' ' + 'underline, underline-off') 231 | print(cl.dump_styles(styles='blink') + "Blinking Text" + cl.dump_styles(styles='blink-off') + ' ' + 'blink, blink-off') 232 | print(cl.dump_styles(styles='reverse') + "Inverse FG/BG" + cl.dump_styles(styles='reverse-off') + ' ' + 'reverse, reverse-off') 233 | print(cl.dump_styles(styles='conceal') + "Conceal Text" + cl.dump_styles(styles='reveal') + ' ' + 'conceal, reveal') 234 | print(cl.dump_styles(styles='overlined') + "Overlined Text" + cl.dump_styles(styles='overlined-off') + ' ' + 'overlined, overlined-off') 235 | print(cl.dump_styles(styles='crossed-out') + "Crossed Text" + cl.dump_styles(styles='crossed-out-off') + ' ' + 'crossed-out, crossed-out-off') 236 | print(cl.dump_styles(styles='double-underline') + "Double underlined Text" + cl.dump_styles(styles='underline-off') + ' ' + 'double-underline, underline-off') 237 | print() 238 | print(cl.dump_styles(styles='blink') + cl.dump_colors(code=196) + '♦ ' + cl.dump_styles(styles='blink-off') + cl.dump_colors(code=226) + 'Tested on Unix Terminal. Some styles may not work on other platforms' + cl.dump_styles(styles='blink') + cl.dump_colors(code=196) + ' ♦' + cl.dump_styles(styles='reset')) 239 | else: 240 | for i in range(123452): 241 | time.sleep(0.0001) 242 | cl.progressBar(total_size=123452, size_done=i, fill_symbol=' ☻ ', ToBeFill_symbol=' ☺ ', length=20) 243 | print() 244 | -------------------------------------------------------------------------------- /src/libread-tool.py: -------------------------------------------------------------------------------- 1 | import sys 2 | import os 3 | import shutil 4 | import time 5 | import asyncio 6 | import configparser 7 | from pynput import keyboard 8 | from pywinctl import getActiveWindow 9 | from utils.scrapper import checkConnection, search, getMetadata, getArticle 10 | from utils.Prettify import clearScreen, Prettify, clearLine 11 | from utils.tts import createTTSFromFile, createTTSFromText 12 | from utils.configGenerator import create_default_config 13 | from utils.ffmpegWrapper import performSanityCheck, mergeChunks 14 | 15 | CONFIG_FILE = "libread-config.ini" 16 | 17 | # Global varialbes. Values taken from the config file 18 | DOMAIN_NAME = COVER_IMAGE_NAME = OUTPUT_FILE_NAME = REPLACEMENT_CHARACTER = "" 19 | FORCE_USE_M1 = False 20 | PART_REPLACEMENT = True 21 | 22 | # global function declaration for simplicity 23 | printInf = Prettify.printInf 24 | printWar = Prettify.printWar 25 | printErr = Prettify.printErr 26 | printSuc = Prettify.printSuc 27 | printFeaturedText = Prettify.printFeaturedText 28 | progressBar = Prettify().progressBar 29 | 30 | def _readConfig(): 31 | if(os.path.isfile(CONFIG_FILE)): 32 | try: 33 | config = configparser.ConfigParser() 34 | config.read(CONFIG_FILE) 35 | global DOMAIN_NAME, COVER_IMAGE_NAME, OUTPUT_FILE_NAME, REPLACEMENT_CHARACTER, FORCE_USE_M1, PART_REPLACEMENT 36 | DOMAIN_NAME = config.get("DOMAIN", "domainName") 37 | COVER_IMAGE_NAME = config.get("NOMENCLATURES", "coverImageNomenclature") 38 | OUTPUT_FILE_NAME = config.get("NOMENCLATURES", "outputNomenclature") 39 | REPLACEMENT_CHARACTER = config.get("NOMENCLATURES", "whitespaceReplacementCharacter") 40 | FORCE_USE_M1 = config.getboolean("TTS_CONFIG", "forceGrabFirstThenConvert") 41 | PART_REPLACEMENT = config.getboolean("TTS_CONFIG", "replacePartContents") 42 | except: 43 | printWar("Corrupted config file detected! Re-generating a new one...") 44 | time.sleep(2) 45 | create_default_config(CONFIG_FILE) 46 | _readConfig() 47 | else: 48 | create_default_config(CONFIG_FILE) 49 | _readConfig() 50 | 51 | 52 | if __name__ == "__main__": 53 | if os.name == 'nt': 54 | os.system("title LibRead-Tool") 55 | else: 56 | os.system('echo -en "\033]0;LibRead-Tool\a"') 57 | 58 | clearScreen() 59 | 60 | if os.name == 'nt': 61 | os.system("echo \033[38;5;12m\033[0m\r") 62 | 63 | print("""\033[38;5;78m _ _ _ ______ _ _______ _ \033[0m 64 | \033[38;5;78m(_) (_)| | (_____ \ | | (_______) | | \033[0m 65 | \033[38;5;78m _ _ | |__ _____) ) _____ _____ __| | _____ _ ___ ___ | | \033[0m 66 | \033[38;5;78m| | | || _ \ | __ / | ___ |(____ | / _ |(_____)| | / _ \ / _ \ | | \033[0m 67 | | |_____ | || |_) )| | \ \ | ____|/ ___ |( (_| | | || |_| || |_| || | 68 | |_______)|_||____/ |_| |_||_____)\_____| \____| |_| \___/ \___/ \_) 69 | 70 | """) 71 | 72 | _readConfig() 73 | 74 | if(not PART_REPLACEMENT): 75 | printFeaturedText("Content replacement is disabled! The LibRead Tool will not overwrite the existing parts before converting.") 76 | 77 | print("Checking connection with libread...") 78 | time.sleep(2) 79 | if(checkConnection()): 80 | printSuc("Connection established with libread successfully!") 81 | else: 82 | printErr("Error occured while connecting to libread! Check your Internet connection or firewall settings.") 83 | sys.exit(100) 84 | 85 | canUseM2ForTTS = False 86 | if performSanityCheck(): 87 | canUseM2ForTTS = True 88 | 89 | if(FORCE_USE_M1 or not PART_REPLACEMENT): 90 | canUseM2ForTTS = False 91 | 92 | print("\n") 93 | query = input("Type to search something: ") 94 | results = search(query=query) 95 | selectedIndex = -1 96 | if(len(results) == 0): 97 | printWar(f"No results found for the query '{query}'. Try any other keywords!") 98 | input() 99 | sys.exit(404) 100 | elif(len(results) == 1): 101 | printSuc(f"1 hit found for the query '{query}'. Automatically selecting it...") 102 | selectedIndex = 1 103 | else: 104 | printSuc(f"Multiple hits found for the query '{query}'. Select the desired index...") 105 | i = 0 106 | print("\n\033[38;5;162mIndex\033[0m ---- \033[38;5;183mTitle\033[0m") 107 | for tag in results: 108 | print(f"\033[38;5;162m{i+1}\033[0m ---- \033[38;5;183m{tag['title']}\033[0m") if i < 9 else print(f"\033[38;5;162m{i+1}\033[0m ---- \033[38;5;183m{tag['title']}\033[0m") 109 | i+=1 110 | try: 111 | selectedIndex = int(input("Type the desired index from the above list: ")) 112 | except: 113 | printErr("Invalid integer value! Aborting...") 114 | sys.exit(200) 115 | if(selectedIndex > len(results) or selectedIndex < 0): 116 | printWar("Index doesn't exists! Automatically selecting the last index...") 117 | selectedIndex = len(results) - 1 118 | 119 | selectedIndex-=1 120 | novelLink = f"https://{DOMAIN_NAME}" + results[selectedIndex]['href'] 121 | print(f"\nSelected: {results[selectedIndex]['title']} || URL: {novelLink}") 122 | printInf(f"Getting metadata about {results[selectedIndex]['title']} from libread...") 123 | time.sleep(3) 124 | metadataResult = getMetadata(novelLink) 125 | totalChapters = len(metadataResult['chapters']) 126 | print(f"Total chapters found: \033[38;5;63m{len(metadataResult['chapters'])}\033[0m") 127 | print(f"Status: \033[38;5;51m{metadataResult['status']}\033[0m") 128 | print() 129 | startChapter = 1 130 | endChapter = totalChapters 131 | jump = 10 132 | try: 133 | startChapter = int(input("Mention the starting chapter [default = 1]: ")) 134 | if(startChapter > startChapter): 135 | printWar("Starting chapter number exceeded total chapter found!") 136 | printInf("Setting starting chapter to 1...") 137 | else: 138 | printInf(f"Setting starting chapter to {startChapter}...") 139 | except: 140 | printWar("Invalid input detected!") 141 | printInf("Setting starting chapter to 1...") 142 | 143 | try: 144 | endChapter = int(input(f"Mention the last chapter [default = {totalChapters}]: ")) 145 | if(endChapter < 1): 146 | printWar("Ending chapter number less than the first chapter!") 147 | printInf(f"Setting Ending chapter to {totalChapters}...") 148 | else: 149 | printInf(f"Setting Ending chapter to {endChapter}...") 150 | except: 151 | printWar("Invalid input detected!") 152 | printInf(f"Setting Ending chapter to {totalChapters}...") 153 | 154 | try: 155 | jump = int(input("Mention number of chapters in each part [default = 10]: ")) 156 | if(jump > 30): 157 | printWar("Too many chapters detected in single part! Expect abnormal behaviour.") 158 | except: 159 | pass 160 | isPause = False 161 | pauseInput = input("Do you want to pause after each part? (y/n): ") 162 | isPause = True if pauseInput == "y" else False 163 | 164 | if(isPause): 165 | printInf("Process will pause after each part! Press 'R' to resume.") 166 | 167 | isTTS = False 168 | ttsInput = input("Do you want to convert text to speech? (y/n): ") 169 | isTTS = True if ttsInput == "y" else False 170 | 171 | if(isTTS): 172 | printInf("Texts will be converted to speech.") 173 | 174 | #Create a directory for saving the files 175 | if(not os.path.isdir(results[selectedIndex]['title']) and not os.path.isdir("Articles")): 176 | try: 177 | os.mkdir(results[selectedIndex]['title']) 178 | except: 179 | os.mkdir("Articles") 180 | 181 | #save cover image 182 | imageName = COVER_IMAGE_NAME.replace("!TITLE!", results[selectedIndex]['title']) + '.jpg' 183 | if(REPLACEMENT_CHARACTER != ""): 184 | imageName = imageName.replace(" ", REPLACEMENT_CHARACTER) 185 | if(metadataResult["cover-image"]!=None): 186 | printInf("\nSaving cover image...") 187 | try: 188 | with open(f"{results[selectedIndex]['title']}/{imageName}", 'wb') as bf: 189 | for chunk in metadataResult['cover-image']: 190 | bf.write(chunk) 191 | bf.close() 192 | except: 193 | with open(f"Articles/{imageName}", 'wb') as bf: 194 | for chunk in metadataResult['cover-image']: 195 | bf.write(chunk) 196 | bf.close() 197 | time.sleep(1) 198 | printSuc(f"Cover image saved as {results[selectedIndex]['title']}/{imageName}") 199 | 200 | part = 1 201 | progress = 0 202 | printInf("Getting articles from libread...") 203 | 204 | for i in range(startChapter-2, endChapter, jump): 205 | mergedArticle = "" 206 | for j in range(i+1, i+jump+1): 207 | if(j>endChapter-1): 208 | break 209 | articleLink = f"https://{DOMAIN_NAME}" + metadataResult['chapters'][j]['href'] 210 | article = getArticle(articleLink) 211 | clearLine() 212 | progressBar(total_size=endChapter-startChapter, size_done=progress, fill_symbol="■", length=35, suffix="There") 213 | 214 | # use M2 for TTS 215 | if(isTTS and canUseM2ForTTS): 216 | progressBar(total_size=endChapter-startChapter, size_done=progress, fill_symbol="■", length=35, suffix="There \033[38;5;141m[CONVERTING]\033[0m {Chapter - {0}}".replace("{0}", str(j+1))) 217 | 218 | # Create the enviroment for the current cycle 219 | wd = results[selectedIndex]['title'] + "/.OPD" 220 | if not os.path.isdir(wd): os.mkdir(wd) 221 | 222 | try: 223 | asyncio.run(createTTSFromText(text=article, outputPath=(wd+f"/Chapter-{str(j+1)}.mp3"), coverImagePath=f"{results[selectedIndex]['title']}/{imageName}")) 224 | except Exception as E: 225 | printErr(f"Fatal Exception occured during conversion. Couldn't proceed further with TTS. {E}") 226 | isTTs = False 227 | 228 | mergedArticle += article + "\n\n" 229 | progress += 1 230 | endChapterName = i+jump+1 231 | if(i+jump+1 > endChapter): 232 | endChapterName = endChapter 233 | #results[selectedIndex]['title']} ~ Chapter-{i+2}-{endChapterName} 234 | actualOutputFileName = OUTPUT_FILE_NAME.replace("!TITLE!", results[selectedIndex]['title']).replace("!STARTCHAPTER!", str((i+2))).replace("!ENDCHAPTER!", str(endChapterName)) 235 | if(REPLACEMENT_CHARACTER != ""): 236 | actualOutputFileName = actualOutputFileName.replace(" ", REPLACEMENT_CHARACTER) 237 | if(i+1 < endChapter): 238 | try: 239 | if (not PART_REPLACEMENT and os.path.isfile(f"{results[selectedIndex]['title']}/{actualOutputFileName}.txt")): 240 | pass 241 | else: 242 | with open(f"{results[selectedIndex]['title']}/{actualOutputFileName}.txt", "w", encoding='utf-8') as f: 243 | f.write(mergedArticle) 244 | f.close() 245 | except: 246 | if(not PART_REPLACEMENT and os.path.isfile(f"Articles/{actualOutputFileName}.txt")): 247 | pass 248 | else: 249 | with open(f"Articles/{actualOutputFileName}.txt", "w", encoding='utf-8') as f: 250 | f.write(mergedArticle) 251 | f.close() 252 | 253 | # merge converted chunks and delete the opd folder 254 | if(isTTS and canUseM2ForTTS): 255 | clearLine() 256 | progressBar(total_size=endChapter-startChapter, size_done=progress, fill_symbol="■", length=35, suffix="There \033[38;5;87m[CONCATENATING]\033[0m ") 257 | mergeChunks(chunkFilesDir=results[selectedIndex]['title'] + "/.OPD", 258 | outputFilePrefix=f"{results[selectedIndex]['title']}/{actualOutputFileName}", 259 | coverImagePath=f"{results[selectedIndex]['title']}/{imageName}") 260 | shutil.rmtree(results[selectedIndex]['title'] + "/.OPD") 261 | 262 | if(isTTS and not canUseM2ForTTS): 263 | clearLine() 264 | progressBar(total_size=endChapter-startChapter, size_done=progress, fill_symbol="■", length=35, suffix="There \033[38;5;141m[CONVERTING]\033[0m {Chapter: {startChapter}-{EndChapter}}".replace("{startChapter}", str(i+2)).replace("{EndChapter}", str(endChapterName))) 265 | try: 266 | asyncio.run(createTTSFromFile(filepath=f"{results[selectedIndex]['title']}/{actualOutputFileName}.txt", outputFilePrefix=f"{results[selectedIndex]['title']}/{actualOutputFileName}", coverImagePath=f"{results[selectedIndex]['title']}/{imageName}")) 267 | except: 268 | try: 269 | asyncio.run(createTTSFromFile(filepath=f"Articles/{actualOutputFileName}.txt", outputFilePrefix=f"Articles/{actualOutputFileName}", coverImagePath=f"Articles/{imageName}")) 270 | except Exception as E: 271 | printErr("\nFatal error Occured while converting text to speech! Couldn't proceed further with TTS. {E}") 272 | 273 | # breaks on Windows and wayland 274 | if(isPause and progress != ((endChapter-startChapter))+1): 275 | clearLine() 276 | progressBar(total_size=endChapter-startChapter, size_done=progress, fill_symbol="■", length=35, suffix="There \033[38;5;226m[PAUSED]\033[0m ") 277 | def pause_process(): 278 | with keyboard.Events() as events: 279 | event = events.get(1e6) 280 | if("libread-tool" in (" " + getActiveWindow().title.lower() + " ") or "visual studio code" in getActiveWindow().title.lower()): 281 | if(event.key == keyboard.KeyCode.from_char('r')): 282 | return 283 | else: 284 | event = None 285 | pause_process() 286 | else: 287 | event = None 288 | pause_process() 289 | pause_process() 290 | 291 | clearLine() 292 | progressBar(total_size=endChapter-startChapter, size_done=progress, fill_symbol="■", length=35, suffix="There ") 293 | 294 | 295 | clearLine() 296 | print() 297 | printFeaturedText("Fetched all chapters successfully!", msgColorCode=105, blinkersColorCode=46) 298 | print(f"All chapters are stored inside the {results[selectedIndex]['title']} directory.") 299 | input() 300 | -------------------------------------------------------------------------------- /src/utils/configGenerator.py: -------------------------------------------------------------------------------- 1 | def create_default_config(config_name): 2 | 3 | searchResultSelector = "body > div.main > div.wp > div.row-box > div.col-content > div > div > div > div > div.txt > h3 > a" 4 | statusSelectorI = "body > div.main > div > div > div.col-content > div.m-info > div.m-book1 > div.m-imgtxt > div.txt > div:nth-child(6) > div > span" 5 | statusSelectorII = "body > div.main > div > div > div.col-content > div.m-info > div.m-book1 > div.m-imgtxt > div.txt > div:nth-child(5) > div > span" 6 | statusSelectorIII = "body > div.main > div > div > div.col-content > div.m-info > div.m-book1 > div.m-imgtxt > div.txt > div:nth-child(4) > div > span" 7 | totalChaptersSelector = "#idData > li > a" 8 | coverImageDivSelector = "body > div.main > div > div > div.col-content > div.m-info > div.m-book1 > div.m-imgtxt > div.pic > img" 9 | articleDivSelector = "#article > p" 10 | 11 | with open(config_name, 'w', encoding='utf-8') as cf: 12 | cf.write(f"""[DOMAIN] 13 | 14 | ; Change the domain name 15 | 16 | domainName = libread.com 17 | 18 | ; Modify the headers if the server is blocking your requests for being headless. 19 | origin = https://libread.com 20 | referer = https://libread.com/ 21 | authority = libread.com 22 | userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36 23 | 24 | 25 | [SELECTOR_MAPS] 26 | 27 | ; These are the advanced settings to fix if the website changes its document structure. 28 | ; IT IS NOT RECOMMENDED TO MODIFY. 29 | 30 | searchResultSelector = {searchResultSelector} 31 | statusSelectorI = {statusSelectorI} 32 | statusSelectorII = {statusSelectorII} 33 | statusSelectorIII = {statusSelectorIII} 34 | totalChaptersSelector = {totalChaptersSelector} 35 | coverImageDivSelector = {coverImageDivSelector} 36 | articleDivSelector = {articleDivSelector} 37 | 38 | [NOMENCLATURES] 39 | 40 | ; You can only use the below variables to set up a name. use ! at both ends to indicate its a variable. 41 | ; TITLE -> Name of the novel 42 | ; STARTCHAPTER -> Indicates the starting chapter number of the part 43 | ; ENDCHAPTER -> Indicates the ending chapter number of the part 44 | 45 | ; Change the nomenclature for the output file. Affects both .txt and .mp3 file 46 | outputNomenclature = !TITLE! ~ Chapter-!STARTCHAPTER!-!ENDCHAPTER! 47 | 48 | ; Nomenclature for the cover image 49 | coverImageNomenclature = !TITLE! ~ Cover 50 | 51 | ; Replace WHITESPACE 52 | ; By befault it doesn't replace any WHITESPACE. 53 | ; But, if any of the variable has a WHITESPACE then it will be replaced by the given charater 54 | 55 | whitespaceReplacementCharacter = 56 | 57 | 58 | [TTS_CONFIG] 59 | 60 | ; Choose a voice name from the below list 61 | Voice = en-GB-SoniaNeural 62 | 63 | ; Embed unsynced subtitles to the mp3 file 64 | ; 1 = yes, 0 = no 65 | embedSubtitles = 1 66 | 67 | ; Enabling the below switch will force LibRead-Tool to fetch all the articles first in a part, then convert Text-To-Speech. 68 | ; Usually, this happens when FFMPEG is not accessible by LibRead-Tool. 69 | ; 1 = yes, 0 = no 70 | forceGrabFirstThenConvert = 0 71 | 72 | ; If the below switch is enabled, then LibRead-Tool will replace the existing parts with the new ones. 73 | ; However, if you deactivate the switch, LibRead-Tool will not overwrite the material if the part file already exists, even if the contents are only partially available. 74 | ; Disabling this will force the "forceGrabFirstThenConvert" switch to be enabled. 75 | ; 1 = yes, 0 = no 76 | replacePartContents = 1 77 | 78 | ; All Voices are lsited below 79 | ; Name: af-ZA-AdriNeural 80 | ; Gender: Female 81 | ; 82 | ; Name: af-ZA-WillemNeural 83 | ; Gender: Male 84 | ; 85 | ; Name: am-ET-AmehaNeural 86 | ; Gender: Male 87 | ; 88 | ; Name: am-ET-MekdesNeural 89 | ; Gender: Female 90 | ; 91 | ; Name: ar-AE-FatimaNeural 92 | ; Gender: Female 93 | ; 94 | ; Name: ar-AE-HamdanNeural 95 | ; Gender: Male 96 | ; 97 | ; Name: ar-BH-AliNeural 98 | ; Gender: Male 99 | ; 100 | ; Name: ar-BH-LailaNeural 101 | ; Gender: Female 102 | ; 103 | ; Name: ar-DZ-AminaNeural 104 | ; Gender: Female 105 | ; 106 | ; Name: ar-DZ-IsmaelNeural 107 | ; Gender: Male 108 | ; 109 | ; Name: ar-EG-SalmaNeural 110 | ; Gender: Female 111 | ; 112 | ; Name: ar-EG-ShakirNeural 113 | ; Gender: Male 114 | ; 115 | ; Name: ar-IQ-BasselNeural 116 | ; Gender: Male 117 | ; 118 | ; Name: ar-IQ-RanaNeural 119 | ; Gender: Female 120 | ; 121 | ; Name: ar-JO-SanaNeural 122 | ; Gender: Female 123 | ; 124 | ; Name: ar-JO-TaimNeural 125 | ; Gender: Male 126 | ; 127 | ; Name: ar-KW-FahedNeural 128 | ; Gender: Male 129 | ; 130 | ; Name: ar-KW-NouraNeural 131 | ; Gender: Female 132 | ; 133 | ; Name: ar-LB-LaylaNeural 134 | ; Gender: Female 135 | ; 136 | ; Name: ar-LB-RamiNeural 137 | ; Gender: Male 138 | ; 139 | ; Name: ar-LY-ImanNeural 140 | ; Gender: Female 141 | ; 142 | ; Name: ar-LY-OmarNeural 143 | ; Gender: Male 144 | ; 145 | ; Name: ar-MA-JamalNeural 146 | ; Gender: Male 147 | ; 148 | ; Name: ar-MA-MounaNeural 149 | ; Gender: Female 150 | ; 151 | ; Name: ar-OM-AbdullahNeural 152 | ; Gender: Male 153 | ; 154 | ; Name: ar-OM-AyshaNeural 155 | ; Gender: Female 156 | ; 157 | ; Name: ar-QA-AmalNeural 158 | ; Gender: Female 159 | ; 160 | ; Name: ar-QA-MoazNeural 161 | ; Gender: Male 162 | ; 163 | ; Name: ar-SA-HamedNeural 164 | ; Gender: Male 165 | ; 166 | ; Name: ar-SA-ZariyahNeural 167 | ; Gender: Female 168 | ; 169 | ; Name: ar-SY-AmanyNeural 170 | ; Gender: Female 171 | ; 172 | ; Name: ar-SY-LaithNeural 173 | ; Gender: Male 174 | ; 175 | ; Name: ar-TN-HediNeural 176 | ; Gender: Male 177 | ; 178 | ; Name: ar-TN-ReemNeural 179 | ; Gender: Female 180 | ; 181 | ; Name: ar-YE-MaryamNeural 182 | ; Gender: Female 183 | ; 184 | ; Name: ar-YE-SalehNeural 185 | ; Gender: Male 186 | ; 187 | ; Name: az-AZ-BabekNeural 188 | ; Gender: Male 189 | ; 190 | ; Name: az-AZ-BanuNeural 191 | ; Gender: Female 192 | ; 193 | ; Name: bg-BG-BorislavNeural 194 | ; Gender: Male 195 | ; 196 | ; Name: bg-BG-KalinaNeural 197 | ; Gender: Female 198 | ; 199 | ; Name: bn-BD-NabanitaNeural 200 | ; Gender: Female 201 | ; 202 | ; Name: bn-BD-PradeepNeural 203 | ; Gender: Male 204 | ; 205 | ; Name: bn-IN-BashkarNeural 206 | ; Gender: Male 207 | ; 208 | ; Name: bn-IN-TanishaaNeural 209 | ; Gender: Female 210 | ; 211 | ; Name: bs-BA-GoranNeural 212 | ; Gender: Male 213 | ; 214 | ; Name: bs-BA-VesnaNeural 215 | ; Gender: Female 216 | ; 217 | ; Name: ca-ES-EnricNeural 218 | ; Gender: Male 219 | ; 220 | ; Name: ca-ES-JoanaNeural 221 | ; Gender: Female 222 | ; 223 | ; Name: cs-CZ-AntoninNeural 224 | ; Gender: Male 225 | ; 226 | ; Name: cs-CZ-VlastaNeural 227 | ; Gender: Female 228 | ; 229 | ; Name: cy-GB-AledNeural 230 | ; Gender: Male 231 | ; 232 | ; Name: cy-GB-NiaNeural 233 | ; Gender: Female 234 | ; 235 | ; Name: da-DK-ChristelNeural 236 | ; Gender: Female 237 | ; 238 | ; Name: da-DK-JeppeNeural 239 | ; Gender: Male 240 | ; 241 | ; Name: de-AT-IngridNeural 242 | ; Gender: Female 243 | ; 244 | ; Name: de-AT-JonasNeural 245 | ; Gender: Male 246 | ; 247 | ; Name: de-CH-JanNeural 248 | ; Gender: Male 249 | ; 250 | ; Name: de-CH-LeniNeural 251 | ; Gender: Female 252 | ; 253 | ; Name: de-DE-AmalaNeural 254 | ; Gender: Female 255 | ; 256 | ; Name: de-DE-ConradNeural 257 | ; Gender: Male 258 | ; 259 | ; Name: de-DE-FlorianMultilingualNeural 260 | ; Gender: Male 261 | ; 262 | ; Name: de-DE-KatjaNeural 263 | ; Gender: Female 264 | ; 265 | ; Name: de-DE-KillianNeural 266 | ; Gender: Male 267 | ; 268 | ; Name: de-DE-SeraphinaMultilingualNeural 269 | ; Gender: Female 270 | ; 271 | ; Name: el-GR-AthinaNeural 272 | ; Gender: Female 273 | ; 274 | ; Name: el-GR-NestorasNeural 275 | ; Gender: Male 276 | ; 277 | ; Name: en-AU-NatashaNeural 278 | ; Gender: Female 279 | ; 280 | ; Name: en-AU-WilliamNeural 281 | ; Gender: Male 282 | ; 283 | ; Name: en-CA-ClaraNeural 284 | ; Gender: Female 285 | ; 286 | ; Name: en-CA-LiamNeural 287 | ; Gender: Male 288 | ; 289 | ; Name: en-GB-LibbyNeural 290 | ; Gender: Female 291 | ; 292 | ; Name: en-GB-MaisieNeural 293 | ; Gender: Female 294 | ; 295 | ; Name: en-GB-RyanNeural 296 | ; Gender: Male 297 | ; 298 | ; Name: en-GB-SoniaNeural 299 | ; Gender: Female 300 | ; 301 | ; Name: en-GB-ThomasNeural 302 | ; Gender: Male 303 | ; 304 | ; Name: en-HK-SamNeural 305 | ; Gender: Male 306 | ; 307 | ; Name: en-HK-YanNeural 308 | ; Gender: Female 309 | ; 310 | ; Name: en-IE-ConnorNeural 311 | ; Gender: Male 312 | ; 313 | ; Name: en-IE-EmilyNeural 314 | ; Gender: Female 315 | ; 316 | ; Name: en-IN-NeerjaExpressiveNeural 317 | ; Gender: Female 318 | ; 319 | ; Name: en-IN-NeerjaNeural 320 | ; Gender: Female 321 | ; 322 | ; Name: en-IN-PrabhatNeural 323 | ; Gender: Male 324 | ; 325 | ; Name: en-KE-AsiliaNeural 326 | ; Gender: Female 327 | ; 328 | ; Name: en-KE-ChilembaNeural 329 | ; Gender: Male 330 | ; 331 | ; Name: en-NG-AbeoNeural 332 | ; Gender: Male 333 | ; 334 | ; Name: en-NG-EzinneNeural 335 | ; Gender: Female 336 | ; 337 | ; Name: en-NZ-MitchellNeural 338 | ; Gender: Male 339 | ; 340 | ; Name: en-NZ-MollyNeural 341 | ; Gender: Female 342 | ; 343 | ; Name: en-PH-JamesNeural 344 | ; Gender: Male 345 | ; 346 | ; Name: en-PH-RosaNeural 347 | ; Gender: Female 348 | ; 349 | ; Name: en-SG-LunaNeural 350 | ; Gender: Female 351 | ; 352 | ; Name: en-SG-WayneNeural 353 | ; Gender: Male 354 | ; 355 | ; Name: en-TZ-ElimuNeural 356 | ; Gender: Male 357 | ; 358 | ; Name: en-TZ-ImaniNeural 359 | ; Gender: Female 360 | ; 361 | ; Name: en-US-AnaNeural 362 | ; Gender: Female 363 | ; 364 | ; Name: en-US-AndrewNeural 365 | ; Gender: Male 366 | ; 367 | ; Name: en-US-AriaNeural 368 | ; Gender: Female 369 | ; 370 | ; Name: en-US-AvaNeural 371 | ; Gender: Female 372 | ; 373 | ; Name: en-US-BrianNeural 374 | ; Gender: Male 375 | ; 376 | ; Name: en-US-ChristopherNeural 377 | ; Gender: Male 378 | ; 379 | ; Name: en-US-EmmaNeural 380 | ; Gender: Female 381 | ; 382 | ; Name: en-US-EricNeural 383 | ; Gender: Male 384 | ; 385 | ; Name: en-US-GuyNeural 386 | ; Gender: Male 387 | ; 388 | ; Name: en-US-JennyNeural 389 | ; Gender: Female 390 | ; 391 | ; Name: en-US-MichelleNeural 392 | ; Gender: Female 393 | ; 394 | ; Name: en-US-RogerNeural 395 | ; Gender: Male 396 | ; 397 | ; Name: en-US-SteffanNeural 398 | ; Gender: Male 399 | ; 400 | ; Name: en-ZA-LeahNeural 401 | ; Gender: Female 402 | ; 403 | ; Name: en-ZA-LukeNeural 404 | ; Gender: Male 405 | ; 406 | ; Name: es-AR-ElenaNeural 407 | ; Gender: Female 408 | ; 409 | ; Name: es-AR-TomasNeural 410 | ; Gender: Male 411 | ; 412 | ; Name: es-BO-MarceloNeural 413 | ; Gender: Male 414 | ; 415 | ; Name: es-BO-SofiaNeural 416 | ; Gender: Female 417 | ; 418 | ; Name: es-CL-CatalinaNeural 419 | ; Gender: Female 420 | ; 421 | ; Name: es-CL-LorenzoNeural 422 | ; Gender: Male 423 | ; 424 | ; Name: es-CO-GonzaloNeural 425 | ; Gender: Male 426 | ; 427 | ; Name: es-CO-SalomeNeural 428 | ; Gender: Female 429 | ; 430 | ; Name: es-CR-JuanNeural 431 | ; Gender: Male 432 | ; 433 | ; Name: es-CR-MariaNeural 434 | ; Gender: Female 435 | ; 436 | ; Name: es-CU-BelkysNeural 437 | ; Gender: Female 438 | ; 439 | ; Name: es-CU-ManuelNeural 440 | ; Gender: Male 441 | ; 442 | ; Name: es-DO-EmilioNeural 443 | ; Gender: Male 444 | ; 445 | ; Name: es-DO-RamonaNeural 446 | ; Gender: Female 447 | ; 448 | ; Name: es-EC-AndreaNeural 449 | ; Gender: Female 450 | ; 451 | ; Name: es-EC-LuisNeural 452 | ; Gender: Male 453 | ; 454 | ; Name: es-ES-AlvaroNeural 455 | ; Gender: Male 456 | ; 457 | ; Name: es-ES-ElviraNeural 458 | ; Gender: Female 459 | ; 460 | ; Name: es-ES-XimenaNeural 461 | ; Gender: Female 462 | ; 463 | ; Name: es-GQ-JavierNeural 464 | ; Gender: Male 465 | ; 466 | ; Name: es-GQ-TeresaNeural 467 | ; Gender: Female 468 | ; 469 | ; Name: es-GT-AndresNeural 470 | ; Gender: Male 471 | ; 472 | ; Name: es-GT-MartaNeural 473 | ; Gender: Female 474 | ; 475 | ; Name: es-HN-CarlosNeural 476 | ; Gender: Male 477 | ; 478 | ; Name: es-HN-KarlaNeural 479 | ; Gender: Female 480 | ; 481 | ; Name: es-MX-DaliaNeural 482 | ; Gender: Female 483 | ; 484 | ; Name: es-MX-JorgeNeural 485 | ; Gender: Male 486 | ; 487 | ; Name: es-NI-FedericoNeural 488 | ; Gender: Male 489 | ; 490 | ; Name: es-NI-YolandaNeural 491 | ; Gender: Female 492 | ; 493 | ; Name: es-PA-MargaritaNeural 494 | ; Gender: Female 495 | ; 496 | ; Name: es-PA-RobertoNeural 497 | ; Gender: Male 498 | ; 499 | ; Name: es-PE-AlexNeural 500 | ; Gender: Male 501 | ; 502 | ; Name: es-PE-CamilaNeural 503 | ; Gender: Female 504 | ; 505 | ; Name: es-PR-KarinaNeural 506 | ; Gender: Female 507 | ; 508 | ; Name: es-PR-VictorNeural 509 | ; Gender: Male 510 | ; 511 | ; Name: es-PY-MarioNeural 512 | ; Gender: Male 513 | ; 514 | ; Name: es-PY-TaniaNeural 515 | ; Gender: Female 516 | ; 517 | ; Name: es-SV-LorenaNeural 518 | ; Gender: Female 519 | ; 520 | ; Name: es-SV-RodrigoNeural 521 | ; Gender: Male 522 | ; 523 | ; Name: es-US-AlonsoNeural 524 | ; Gender: Male 525 | ; 526 | ; Name: es-US-PalomaNeural 527 | ; Gender: Female 528 | ; 529 | ; Name: es-UY-MateoNeural 530 | ; Gender: Male 531 | ; 532 | ; Name: es-UY-ValentinaNeural 533 | ; Gender: Female 534 | ; 535 | ; Name: es-VE-PaolaNeural 536 | ; Gender: Female 537 | ; 538 | ; Name: es-VE-SebastianNeural 539 | ; Gender: Male 540 | ; 541 | ; Name: et-EE-AnuNeural 542 | ; Gender: Female 543 | ; 544 | ; Name: et-EE-KertNeural 545 | ; Gender: Male 546 | ; 547 | ; Name: fa-IR-DilaraNeural 548 | ; Gender: Female 549 | ; 550 | ; Name: fa-IR-FaridNeural 551 | ; Gender: Male 552 | ; 553 | ; Name: fi-FI-HarriNeural 554 | ; Gender: Male 555 | ; 556 | ; Name: fi-FI-NooraNeural 557 | ; Gender: Female 558 | ; 559 | ; Name: fil-PH-AngeloNeural 560 | ; Gender: Male 561 | ; 562 | ; Name: fil-PH-BlessicaNeural 563 | ; Gender: Female 564 | ; 565 | ; Name: fr-BE-CharlineNeural 566 | ; Gender: Female 567 | ; 568 | ; Name: fr-BE-GerardNeural 569 | ; Gender: Male 570 | ; 571 | ; Name: fr-CA-AntoineNeural 572 | ; Gender: Male 573 | ; 574 | ; Name: fr-CA-JeanNeural 575 | ; Gender: Male 576 | ; 577 | ; Name: fr-CA-SylvieNeural 578 | ; Gender: Female 579 | ; 580 | ; Name: fr-CA-ThierryNeural 581 | ; Gender: Male 582 | ; 583 | ; Name: fr-CH-ArianeNeural 584 | ; Gender: Female 585 | ; 586 | ; Name: fr-CH-FabriceNeural 587 | ; Gender: Male 588 | ; 589 | ; Name: fr-FR-DeniseNeural 590 | ; Gender: Female 591 | ; 592 | ; Name: fr-FR-EloiseNeural 593 | ; Gender: Female 594 | ; 595 | ; Name: fr-FR-HenriNeural 596 | ; Gender: Male 597 | ; 598 | ; Name: fr-FR-RemyMultilingualNeural 599 | ; Gender: Male 600 | ; 601 | ; Name: fr-FR-VivienneMultilingualNeural 602 | ; Gender: Female 603 | ; 604 | ; Name: ga-IE-ColmNeural 605 | ; Gender: Male 606 | ; 607 | ; Name: ga-IE-OrlaNeural 608 | ; Gender: Female 609 | ; 610 | ; Name: gl-ES-RoiNeural 611 | ; Gender: Male 612 | ; 613 | ; Name: gl-ES-SabelaNeural 614 | ; Gender: Female 615 | ; 616 | ; Name: gu-IN-DhwaniNeural 617 | ; Gender: Female 618 | ; 619 | ; Name: gu-IN-NiranjanNeural 620 | ; Gender: Male 621 | ; 622 | ; Name: he-IL-AvriNeural 623 | ; Gender: Male 624 | ; 625 | ; Name: he-IL-HilaNeural 626 | ; Gender: Female 627 | ; 628 | ; Name: hi-IN-MadhurNeural 629 | ; Gender: Male 630 | ; 631 | ; Name: hi-IN-SwaraNeural 632 | ; Gender: Female 633 | ; 634 | ; Name: hr-HR-GabrijelaNeural 635 | ; Gender: Female 636 | ; 637 | ; Name: hr-HR-SreckoNeural 638 | ; Gender: Male 639 | ; 640 | ; Name: hu-HU-NoemiNeural 641 | ; Gender: Female 642 | ; 643 | ; Name: hu-HU-TamasNeural 644 | ; Gender: Male 645 | ; 646 | ; Name: id-ID-ArdiNeural 647 | ; Gender: Male 648 | ; 649 | ; Name: id-ID-GadisNeural 650 | ; Gender: Female 651 | ; 652 | ; Name: is-IS-GudrunNeural 653 | ; Gender: Female 654 | ; 655 | ; Name: is-IS-GunnarNeural 656 | ; Gender: Male 657 | ; 658 | ; Name: it-IT-DiegoNeural 659 | ; Gender: Male 660 | ; 661 | ; Name: it-IT-ElsaNeural 662 | ; Gender: Female 663 | ; 664 | ; Name: it-IT-GiuseppeNeural 665 | ; Gender: Male 666 | ; 667 | ; Name: it-IT-IsabellaNeural 668 | ; Gender: Female 669 | ; 670 | ; Name: ja-JP-KeitaNeural 671 | ; Gender: Male 672 | ; 673 | ; Name: ja-JP-NanamiNeural 674 | ; Gender: Female 675 | ; 676 | ; Name: jv-ID-DimasNeural 677 | ; Gender: Male 678 | ; 679 | ; Name: jv-ID-SitiNeural 680 | ; Gender: Female 681 | ; 682 | ; Name: ka-GE-EkaNeural 683 | ; Gender: Female 684 | ; 685 | ; Name: ka-GE-GiorgiNeural 686 | ; Gender: Male 687 | ; 688 | ; Name: kk-KZ-AigulNeural 689 | ; Gender: Female 690 | ; 691 | ; Name: kk-KZ-DauletNeural 692 | ; Gender: Male 693 | ; 694 | ; Name: km-KH-PisethNeural 695 | ; Gender: Male 696 | ; 697 | ; Name: km-KH-SreymomNeural 698 | ; Gender: Female 699 | ; 700 | ; Name: kn-IN-GaganNeural 701 | ; Gender: Male 702 | ; 703 | ; Name: kn-IN-SapnaNeural 704 | ; Gender: Female 705 | ; 706 | ; Name: ko-KR-HyunsuNeural 707 | ; Gender: Male 708 | ; 709 | ; Name: ko-KR-InJoonNeural 710 | ; Gender: Male 711 | ; 712 | ; Name: ko-KR-SunHiNeural 713 | ; Gender: Female 714 | ; 715 | ; Name: lo-LA-ChanthavongNeural 716 | ; Gender: Male 717 | ; 718 | ; Name: lo-LA-KeomanyNeural 719 | ; Gender: Female 720 | ; 721 | ; Name: lt-LT-LeonasNeural 722 | ; Gender: Male 723 | ; 724 | ; Name: lt-LT-OnaNeural 725 | ; Gender: Female 726 | ; 727 | ; Name: lv-LV-EveritaNeural 728 | ; Gender: Female 729 | ; 730 | ; Name: lv-LV-NilsNeural 731 | ; Gender: Male 732 | ; 733 | ; Name: mk-MK-AleksandarNeural 734 | ; Gender: Male 735 | ; 736 | ; Name: mk-MK-MarijaNeural 737 | ; Gender: Female 738 | ; 739 | ; Name: ml-IN-MidhunNeural 740 | ; Gender: Male 741 | ; 742 | ; Name: ml-IN-SobhanaNeural 743 | ; Gender: Female 744 | ; 745 | ; Name: mn-MN-BataaNeural 746 | ; Gender: Male 747 | ; 748 | ; Name: mn-MN-YesuiNeural 749 | ; Gender: Female 750 | ; 751 | ; Name: mr-IN-AarohiNeural 752 | ; Gender: Female 753 | ; 754 | ; Name: mr-IN-ManoharNeural 755 | ; Gender: Male 756 | ; 757 | ; Name: ms-MY-OsmanNeural 758 | ; Gender: Male 759 | ; 760 | ; Name: ms-MY-YasminNeural 761 | ; Gender: Female 762 | ; 763 | ; Name: mt-MT-GraceNeural 764 | ; Gender: Female 765 | ; 766 | ; Name: mt-MT-JosephNeural 767 | ; Gender: Male 768 | ; 769 | ; Name: my-MM-NilarNeural 770 | ; Gender: Female 771 | ; 772 | ; Name: my-MM-ThihaNeural 773 | ; Gender: Male 774 | ; 775 | ; Name: nb-NO-FinnNeural 776 | ; Gender: Male 777 | ; 778 | ; Name: nb-NO-PernilleNeural 779 | ; Gender: Female 780 | ; 781 | ; Name: ne-NP-HemkalaNeural 782 | ; Gender: Female 783 | ; 784 | ; Name: ne-NP-SagarNeural 785 | ; Gender: Male 786 | ; 787 | ; Name: nl-BE-ArnaudNeural 788 | ; Gender: Male 789 | ; 790 | ; Name: nl-BE-DenaNeural 791 | ; Gender: Female 792 | ; 793 | ; Name: nl-NL-ColetteNeural 794 | ; Gender: Female 795 | ; 796 | ; Name: nl-NL-FennaNeural 797 | ; Gender: Female 798 | ; 799 | ; Name: nl-NL-MaartenNeural 800 | ; Gender: Male 801 | ; 802 | ; Name: pl-PL-MarekNeural 803 | ; Gender: Male 804 | ; 805 | ; Name: pl-PL-ZofiaNeural 806 | ; Gender: Female 807 | ; 808 | ; Name: ps-AF-GulNawazNeural 809 | ; Gender: Male 810 | ; 811 | ; Name: ps-AF-LatifaNeural 812 | ; Gender: Female 813 | ; 814 | ; Name: pt-BR-AntonioNeural 815 | ; Gender: Male 816 | ; 817 | ; Name: pt-BR-FranciscaNeural 818 | ; Gender: Female 819 | ; 820 | ; Name: pt-BR-ThalitaNeural 821 | ; Gender: Female 822 | ; 823 | ; Name: pt-PT-DuarteNeural 824 | ; Gender: Male 825 | ; 826 | ; Name: pt-PT-RaquelNeural 827 | ; Gender: Female 828 | ; 829 | ; Name: ro-RO-AlinaNeural 830 | ; Gender: Female 831 | ; 832 | ; Name: ro-RO-EmilNeural 833 | ; Gender: Male 834 | ; 835 | ; Name: ru-RU-DmitryNeural 836 | ; Gender: Male 837 | ; 838 | ; Name: ru-RU-SvetlanaNeural 839 | ; Gender: Female 840 | ; 841 | ; Name: si-LK-SameeraNeural 842 | ; Gender: Male 843 | ; 844 | ; Name: si-LK-ThiliniNeural 845 | ; Gender: Female 846 | ; 847 | ; Name: sk-SK-LukasNeural 848 | ; Gender: Male 849 | ; 850 | ; Name: sk-SK-ViktoriaNeural 851 | ; Gender: Female 852 | ; 853 | ; Name: sl-SI-PetraNeural 854 | ; Gender: Female 855 | ; 856 | ; Name: sl-SI-RokNeural 857 | ; Gender: Male 858 | ; 859 | ; Name: so-SO-MuuseNeural 860 | ; Gender: Male 861 | ; 862 | ; Name: so-SO-UbaxNeural 863 | ; Gender: Female 864 | ; 865 | ; Name: sq-AL-AnilaNeural 866 | ; Gender: Female 867 | ; 868 | ; Name: sq-AL-IlirNeural 869 | ; Gender: Male 870 | ; 871 | ; Name: sr-RS-NicholasNeural 872 | ; Gender: Male 873 | ; 874 | ; Name: sr-RS-SophieNeural 875 | ; Gender: Female 876 | ; 877 | ; Name: su-ID-JajangNeural 878 | ; Gender: Male 879 | ; 880 | ; Name: su-ID-TutiNeural 881 | ; Gender: Female 882 | ; 883 | ; Name: sv-SE-MattiasNeural 884 | ; Gender: Male 885 | ; 886 | ; Name: sv-SE-SofieNeural 887 | ; Gender: Female 888 | ; 889 | ; Name: sw-KE-RafikiNeural 890 | ; Gender: Male 891 | ; 892 | ; Name: sw-KE-ZuriNeural 893 | ; Gender: Female 894 | ; 895 | ; Name: sw-TZ-DaudiNeural 896 | ; Gender: Male 897 | ; 898 | ; Name: sw-TZ-RehemaNeural 899 | ; Gender: Female 900 | ; 901 | ; Name: ta-IN-PallaviNeural 902 | ; Gender: Female 903 | ; 904 | ; Name: ta-IN-ValluvarNeural 905 | ; Gender: Male 906 | ; 907 | ; Name: ta-LK-KumarNeural 908 | ; Gender: Male 909 | ; 910 | ; Name: ta-LK-SaranyaNeural 911 | ; Gender: Female 912 | ; 913 | ; Name: ta-MY-KaniNeural 914 | ; Gender: Female 915 | ; 916 | ; Name: ta-MY-SuryaNeural 917 | ; Gender: Male 918 | ; 919 | ; Name: ta-SG-AnbuNeural 920 | ; Gender: Male 921 | ; 922 | ; Name: ta-SG-VenbaNeural 923 | ; Gender: Female 924 | ; 925 | ; Name: te-IN-MohanNeural 926 | ; Gender: Male 927 | ; 928 | ; Name: te-IN-ShrutiNeural 929 | ; Gender: Female 930 | ; 931 | ; Name: th-TH-NiwatNeural 932 | ; Gender: Male 933 | ; 934 | ; Name: th-TH-PremwadeeNeural 935 | ; Gender: Female 936 | ; 937 | ; Name: tr-TR-AhmetNeural 938 | ; Gender: Male 939 | ; 940 | ; Name: tr-TR-EmelNeural 941 | ; Gender: Female 942 | ; 943 | ; Name: uk-UA-OstapNeural 944 | ; Gender: Male 945 | ; 946 | ; Name: uk-UA-PolinaNeural 947 | ; Gender: Female 948 | ; 949 | ; Name: ur-IN-GulNeural 950 | ; Gender: Female 951 | ; 952 | ; Name: ur-IN-SalmanNeural 953 | ; Gender: Male 954 | ; 955 | ; Name: ur-PK-AsadNeural 956 | ; Gender: Male 957 | ; 958 | ; Name: ur-PK-UzmaNeural 959 | ; Gender: Female 960 | ; 961 | ; Name: uz-UZ-MadinaNeural 962 | ; Gender: Female 963 | ; 964 | ; Name: uz-UZ-SardorNeural 965 | ; Gender: Male 966 | ; 967 | ; Name: vi-VN-HoaiMyNeural 968 | ; Gender: Female 969 | ; 970 | ; Name: vi-VN-NamMinhNeural 971 | ; Gender: Male 972 | ; 973 | ; Name: zh-CN-XiaoxiaoNeural 974 | ; Gender: Female 975 | ; 976 | ; Name: zh-CN-XiaoyiNeural 977 | ; Gender: Female 978 | ; 979 | ; Name: zh-CN-YunjianNeural 980 | ; Gender: Male 981 | ; 982 | ; Name: zh-CN-YunxiNeural 983 | ; Gender: Male 984 | ; 985 | ; Name: zh-CN-YunxiaNeural 986 | ; Gender: Male 987 | ; 988 | ; Name: zh-CN-YunyangNeural 989 | ; Gender: Male 990 | ; 991 | ; Name: zh-CN-liaoning-XiaobeiNeural 992 | ; Gender: Female 993 | ; 994 | ; Name: zh-CN-shaanxi-XiaoniNeural 995 | ; Gender: Female 996 | ; 997 | ; Name: zh-HK-HiuGaaiNeural 998 | ; Gender: Female 999 | ; 1000 | ; Name: zh-HK-HiuMaanNeural 1001 | ; Gender: Female 1002 | ; 1003 | ; Name: zh-HK-WanLungNeural 1004 | ; Gender: Male 1005 | ; 1006 | ; Name: zh-TW-HsiaoChenNeural 1007 | ; Gender: Female 1008 | ; 1009 | ; Name: zh-TW-HsiaoYuNeural 1010 | ; Gender: Female 1011 | ; 1012 | ; Name: zh-TW-YunJheNeural 1013 | ; Gender: Male 1014 | ; 1015 | ; Name: zu-ZA-ThandoNeural 1016 | ; Gender: Female 1017 | ; 1018 | ; Name: zu-ZA-ThembaNeural 1019 | ; Gender: Male""") 1020 | cf.close() 1021 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /src/utils/twoSecondSilence.py: -------------------------------------------------------------------------------- 1 | import binascii 2 | 3 | """ 4 | Get the raw bytes for the file https://github.com/anars/blank-audio/blob/master/2-seconds-of-silence.mp3 5 | 6 | NOTE -> This is a ridiculous way to extract data. But, I didn't want to include the file as a resource 7 | """ 8 | def getFileBytes(): 9 | xxdDump = """49443304000000021805544954320000001500000032205365636f6e6473 10 | 206f662053696c656e63655450453100000012000000416e617220536f66 11 | 7477617265204c4c4354414c420000000c000000426c616e6b2041756469 12 | 6f4150494300020f02000000696d6167652f6a70656700030089504e470d 13 | 0a1a0a0000000d4948445200000438000004380806000000ec106c8f0000 14 | 0006624b474400ff00ff00ffa0bda79300000009704859730000083d0000 15 | 083d01059555b60000000774494d4507df0a0b051c31036f047600002000 16 | 4944415478daecdd7b945565dd07f0df300c3701012f28ea8089572c53b0 17 | 34b1a2326f81562ade354d5108336995a6a6a879ebe22d35afa4af809acb 18 | d4340d0d4359bd967929bca46472d11004811161b88cf3fed15b0b9c9973 19 | ce9e3967e63c339fcf5aef7a6bef673f7befdfb3cf70ceb767ef5d1111f5 20 | 0100000090b04e4a00000000a44ec001000000244fc001000000244fc001 21 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 22 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 23 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 24 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 25 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 26 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 27 | c001000000244fc001000000244fc001000000244fc001000000244fc001 28 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 29 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 30 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 31 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 32 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 33 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 34 | c001000000244fc001000000244fc001000000244fc001000000244fc001 35 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 36 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 37 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 38 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 39 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 40 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 41 | c001000000244fc001000000244fc001000000244fc001000000244fc001 42 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 43 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 44 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 45 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 46 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 47 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 48 | c001000000244fc001000000244fc001000000244fc001000000244fc001 49 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 50 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 51 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 52 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 53 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 54 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 55 | c001000000244fc001000000244fc001000000244fc001000000244fc001 56 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 57 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 58 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 59 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 60 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 61 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 62 | c001000000244fc001000000244fc001000000244fc001000000244fc001 63 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 64 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 65 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 66 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 67 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 68 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 69 | c001000000244fc001000000244fc001000000244fc001000000244fc001 70 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 71 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 72 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 73 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 74 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 75 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 76 | c001000000244fc001000000244fc001000000244fc001000000244fc001 77 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 78 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 79 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 80 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 81 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 82 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 83 | c001000000244fc001000000244fc001000000244fc001000000244fc001 84 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 85 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 86 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 87 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 88 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 89 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 90 | c001000000244fc001000000244fc001000000244fc001000000244fc001 91 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 92 | 00244fc001000000244fc001000000244fc001000000244fc00100000024 93 | 4fc001000000244fc001000000244fc001000000244fc001000000244fc0 94 | 01000000244fc001000000244fc001000000244fc001000000244fc00100 95 | 0000244fc001000000244fc001000000244fc001000000244fc001000000 96 | 244fc001000000244fc001000000244fc001000000244fc001000000244f 97 | c001000000244fc001000000244fc001000000244fc001000000244fc001 98 | 000000244fc001000000244fc001000000244fc001000000244fc0010000 99 | 00244fc001000000244fc001000000244fc001000000244fc041abda6cb3 100 | cd62e2c4893174e850c5000000a0682a22a25e19680d7beeb967dc7cf3cd 101 | d1bf7fffa8a9a989c30f3f3c66cd9aa530000000b498191cb48a934e3a29 102 | eebbefbee8dfbf7f4444f4eedd3ba64e9d1ad5d5d58a030000408b99c141 103 | c99d7beeb9316edcb846d7bdf8e28b71c82187c4dab56b150a00008066ab 104 | 8c880b958152a8a8a8881ffde84771eaa9a736d9668b2db6885ebd7ac593 105 | 4f3ea96000000034ff376898c14109545656c64f7ef293183d7a7441ed8f 106 | 3aeaa898316386c2010000d02c020e8aae53a74e71c30d37c4a851a30ade 107 | 66ce9c393162c48858bd7ab50202000090995b5428ba0b2fbc308e3efae8 108 | 4cdbf4e9d3273efcf0c3f8e31fffa880000000646606074575f2c927c7c5 109 | 175fdcac6dd7ac591323468c8837df7c5321010000c8c46b62299afdf7df 110 | 3f264e9cd8ecedbb74e9d2a2ed010000e8b8cce0a02876df7df7b8efbefb 111 | a27bf7ee2deeeb4b5ffa52bcf2ca2b8a0a000040c1cce0a0c5b6da6aabb8 112 | e38e3b8a126e44448c1b374e51010000c8c40c0e5aa453a74e71df7df7c5 113 | 5e7bed55b43eebeaeae2339ff94ccc9f3f5f8101000028ecf7a912d012a7 114 | 9f7e7a51c38d8888cacaca38edb4d314170000808299c141b3edbaebaef1 115 | c8238f44555555d1fbaeadad8d3df7dc33962c59a2d0000000e4650607cd 116 | d2ad5bb7b8fefaeb4b126efca7ffaf7ffdeb0a0d00004041041c34cbf9e7 117 | 9f1fdb6fbf7d49f7316ad42885060000a020020e32fbc217be10dff8c637 118 | 4abe9f3df6d823aaabab151c000080bc041c6452555515975e7a69d1fb5d 119 | ba7469a3cbcde2000000a010020e3239f6d8638b3eabe299679e89cf7dee 120 | 73b168d1a206eb0e39e41045070000202f010705ebd1a3479c79e69945ed 121 | f3a1871e8a238f3c32162f5e1c53a74e6db07ec89021b1dd76db293e0000 122 | 0039093828d837bff9cdd86cb3cd8ad6df33cf3c13e3c68d8b356bd64444 123 | c4e4c993a3bebee15b8bcde2000000201f010705e9d3a74f8c1d3bb668fd 124 | 2d5dba34c68e1d1b757575ff5df6d65b6fc5ac59b31ab41d316284010000 125 | 002027010705f9d6b7be15bd7bf72e5a7f679e7966bcf3ce3b0d963ffef8 126 | e30d967de2139f88ae5dbb1a040000009a24e020affefdfbc749279d54b4 127 | fe6ebbedb646838c888869d3a63558565555159ff8c4270c040000004d12 128 | 7090d7d8b163a35bb76e45e9ebdd77df8dcb2fbfbcc9f5b366cd6a7466c7 129 | 9e7bee692000000068928083dc1748a74e316ad4a8a2f5f7d39ffe343ef8 130 | e0839c6d1a9bdd21e000000020e7ef57252097bdf6da2bfaf7ef5f94bede 131 | 78e38d9832654ade768d051cc3860d33180000003449c0414e23478e2c5a 132 | 5f3ffad18f62ddba7579db3dfdf4d3b16ad5aa0d966db2c926b1edb6db1a 133 | 100000001a25e0a04995959571f0c10717a5af679f7d361e7becb182daae 134 | 5ebd3a5e7cf1c506cb3ff5a94f19140000001a25e0a0497befbd776cbae9 135 | a645e9eba28b2ecad4fe95575e69b06c8f3df63028000000344ac041930e 136 | 39e490a2f4f3c8238fc473cf3d97699b975f7eb9c1b28103071a14000000 137 | 1a25e0a0519d3b778e830e3aa8c5fdac5bb72e2ebdf4d2ccdb35368363ab 138 | adb63230000000344ac041a3f6d9679fe8dbb76f8bfbf99ffff99f78f3cd 139 | 37336ff7da6baf457d7dfd06cb060c186060000000689480834615e3819e 140 | 2b56ac88abaebaaa59dbae5ebd3ade7ffffd0d9675efdebd28a10b000000 141 | ed8f808346edbaebae2deee3a69b6e8ac58b17377bfba54b973658e63615 142 | 0000001a23e0a05143860c69d1f66bd7ae8d5ffef2972dea63d9b2650d96 143 | b94d05000080c6083868a04f9f3e2d0e121e7ae8a158b264498bfa682ce0 144 | 308303000080c608386860f0e0c12deea3a5b33722223ef8e08306cb041c 145 | 0000003446c04103fdfaf56bd1f6b366cd8ae79e7baec5c7d1d80345051c 146 | 0000003446c041032d7d53c9a449938a721c9b6fbe7983659ec101000040 147 | 63041c34d092191ccb962d8b071e78a028c7b1d9669b3558d6b3674f0304 148 | 00004003020e1ae8d3a74fb3b7bdfbeebba3b6b6b6c5c7d0a54b97e8ddbb 149 | 7783e59d3b7736400000003420e0a081cacaca666d575f5f1f77de796751 150 | 8e61bbedb62beab1010000d0be09386860e5ca95cdda6efaf4e93167ce9c 151 | a21cc3fefbefdfe87201070000008d1170d04073038e62bc1af63f0e3cf0 152 | c04697bb4505000080c6083868e0830f3ec8bccddcb973e3c9279f2ccafe 153 | b7da6aabf8f8c73fdee83a01070000008d1170d0407366704c9e3c393efc 154 | f0c3a2ecffa0830e6a729d5b54000000688c8083069a13703cf6d86345d9 155 | 778f1e3d62ecd8b14dae1770000000d01801070d64bd4565ce9c39f18f7f 156 | fca328fb1e3f7e7cf4efdfbfc9f5020e0000001a23e0a081ac3338a64d9b 157 | 5694fd6ebdf5d671da69a7e56ce3191c0000003446c041035967703cfef8 158 | e345d9ef79e79d175dbb76cdd9a658cff9000000a07d1170d04096191c35 159 | 3535f1a73ffda9c5fbdc73cf3d63d4a85179db2d5ab4c800010000d08080 160 | 8306de79e79da8afaf2fa8edf4e9d363ddba752dda5f4545454c9c38b1a0 161 | b6fffad7bf0c100000000d08386860f5ead5b170e1c282da16e3f91b871d 162 | 76587cf2939f2ca8ed82050b0c100000000d083868d49c3973f2b659b76e 163 | 5d4c9f3ebd45fbe9d1a347fce0073f28b8bd8003000080c6083868d4dcb9 164 | 73f3b6f9f39fff1c3535352ddacfb871e372be16f6a3041c0000003446c0 165 | 41a30a09385e7ffdf516ed63abadb68ad34f3f3dd3369ec1010000406304 166 | 1c34aa905b54962f5fdea27d5c79e595d1ad5bb74cdb98c1010000406304 167 | 1c346adebc7979dbb424e038eeb8e362c4881199b71370000000d098ce4a 168 | 40630a99c1b16cd9b266f53d70e0c0b8e0820b326fb766cd9a78efbdf70c 169 | 0e0000d0aa2a2a2a9abd2c6bdb42b75fb76e5d7cf8e18706673d028ef5ec 170 | b4d34eb1e38e3bb6ca855baaed5bfa615a7f796d6d6dce5b4876df7df7e8 171 | dcb973a67d555454c4983163a2478f1e99c767c1820571e2892796e45ccb 172 | 655ccbe10f6a29f695a55d4ae79ad27595ca35e85cdbe7e7adadc7aa5ccf 173 | b51463d5debe8b3857df457c17f15da45c3e03e5e8e4934f8e471f7dd40f 174 | f9f5c73422ea95e1df264c981013264c5008000000cada29a79c128f3cf2 175 | 8842acc70c8e2259bc7871a3b76cd4d7379e1f65599eb58fa664edbbbaba 176 | 3a7af7eedd647f0b162c88c58b17177c8cddba758b1d76d8a1d949e9ecd9 177 | b3e3fdf7df6fd6f9b7c538a430c6e55c9354c732eb3e8b719e298c71b9d4 178 | dbe7358cb1cfabb1ec40df178cb1b16c0fdfa13af2f7fb030e3820c68d1b 179 | d7e4fa4e9d3c5253c05122d75d775ddc72cb2dedea9cbef7bdefc599679e 180 | d9e4fa7befbd37aeb8e28a82faaaaaaa8adffef6b7cd0e37d6ac59135ffe 181 | f29763f5ead52e360000a0dddb69a79d72ae4ffd169b5210f9d0a4bffded 182 | 6f39d7f7e9d3a7e0bece3aebac18326448b38fe52f7ff98b70030000e830 183 | f23d40d40c8e466aa2043465d6ac5939d7f7eddbb7a07ef6d8638ff8d6b7 184 | bed5a263f9e31fff68400000800e43c0919d8ad0a4b7df7e3be76b590b99 185 | c1d1ad5bb7b8f6da6ba3b2b2b245c73273e64c030200007418f99ed721e0 186 | 68a4264a402eb96671545757e7ddfebcf3ce8b8f7dec632d3a8655ab56c5 187 | 0b2fbc60300000800ec30c8eec54849c723d87a3baba3aba76eddae4fae1 188 | c387c737bef18d161fc3cc993363eddab506030000e830f2cde0f090d186 189 | 041ce4942be0e8d4a95393b33336d96493b8e69a6b8af2a1bbf3ce3b0d04 190 | 0000d0a1e49bc1d1d2c700b447020e72caf7a0d1edb7dfbed10fda8d37de 191 | 185b6eb9658bf73f67ce9c983e7dba810000003a14b7a864a722e4346fde 192 | bc58be7c7993eb1b0b38ce39e79c183e7c7851f67fc71d77e49d9a050000 193 | d0de78c868762a425eb966717c34e038f8e08363ecd8b145d9efaa55ab62 194 | ead4a906000000e870cce0c84e45c82bd77338d60f38060f1e1c575d7555 195 | d1f67bfffdf7474d4d8d010000003a9c7c0187878c36d45909c82757c0b1 196 | dd76db4565656574efde3d6ebffdf6e8d9b367d1f63b69d224c50700003a 197 | 243338b25311f2ca157074e9d225aaababe3aaabae8ac18307176d9f7ffa 198 | d39fe295575e517c0000a043127064a722e43577eedc9cb78a5c7ef9e571 199 | f0c10717759f37de78a3c20300001d96878c66a72214f4c17ae9a5979a5c 200 | bfefbefb16757f4f3df5544c9b364de10100800efd3b2ce78f790147c39a 201 | 280185c8759b4a31ad5bb72ece3fff7c050700003a34b7a864a7221424d7 202 | ab628be9f6db6f8fd9b3672b380000d0a10938b253110ad21a3338162f5e 203 | 1c3ffbd9cf141b0000e8f0041cd9a9080579f3cd3763c58a1525ddc7a597 204 | 5e9af361a60000001d8580233b15a1e00fd7cb2fbf5cb2fe5f7cf1c5b8e7 205 | 9e7b141a0000203c64b439548482bdf2ca2b25fbe09e77de79793fc00000 206 | 001d45be191c1515158af411020e0a3264c89038ecb0c34ad2f74d37dd14 207 | cf3fffbc22030000fc3fb7a864a722e43568d0a09832654af4ead5abe87d 208 | bff8e28b71d9659729320000c07a041cd9a90839f5efdf3feeb9e79ed86c 209 | b3cd8adef7fbefbf1fa79f7e7aac5dbb56a1010000d623e0c84e4568d2c6 210 | 1b6f1c53a74e8d6db6d9a624fd7fef7bdf8bb973e72a34000040d61ff302 211 | 8e863551021ad3bd7bf7b8ebaebb62a79d762a49ff53a74e8d071f7c50a1 212 | 0100001a610647762a420355555571ebadb7c6d0a1434bd2ffebafbf1ee7 213 | 9d779e420300003441c0919d8ab0818a8a8ab8e69a6b62c4881125e97ff5 214 | ead571da69a7c5aa55ab141b0000a009028eec54840d5c72c92571e8a187 215 | 96acff73cf3d37fefef7bf2b340000400e028eec3a2b0111ff9eb971e9a5 216 | 97c609279c50b27ddc78e38d3165ca14c5060000c8235fc0515151a1481f 217 | 21e0203a75ea143ffde94f63f4e8d125dbc7238f3c12975c728962030000 218 | 14a0bebe3eefef383624e0e8e81740e7ce71edb5d796f4b694e79f7f3ec6 219 | 8f1f9ff7030a0000c0bfb945a519bf6f95a0e3aaaaaa8a1b6fbc310e3ae8 220 | a092ed63debc7971e28927466d6dad8203000065a5b1db3c9abaf5a358cb 221 | 0b6ddbb973ee9feb028e86041c45326cd8b058bd7a759b7f080a5d5e5555 222 | 15a3478f8e1d76d8a16435a9adad8d871f7e380e3ffcf0669f63d6f32ce5 223 | 1fa3721dcb72ac4929cfb39c6a552eff50a63ac6a97e5edbdb18fbbc1a4b 224 | 636c8cfd1be33b6147f84ed81e0938041c253372e4c8183972a442aca75b 225 | b76e3176ec58850000002832014743028e2259bc78712c5bb6acc1f2c69e 226 | 3bd1d4b3285adab629ebb7ada8a888810307468f1e3d4a5a8f79f3e6c5d2 227 | a54b4b5e872cb569cdb128d7732b87f3cd726ea98da5736bfde33596cead 228 | bd9d9b7fefdad7b9f90ca6f73dc567d0b995d3f794be7dfbc6bdf7de2be0 229 | 1070b4beebaebb2e6eb9e596b23ec6debd7bc79429534a1e6e44441c7cf0 230 | c1b164c9121706000040336cb2c92639d70b381aa98912740cfdfaf58bfb 231 | eebb2ff6d8638f56d95f6bed070000a03df21695ec54a403e8ddbb77dc7b 232 | efbdb1ebaebbb6da3e870f1faef0000000cd24e0c84e45dab96eddbac51d 233 | 77dc11bbecb24babee57c0010000d07cf99e2dd291de18532801473bd6b9 234 | 73e7b8e9a69be2d39ffe74abef7ba79d768a4d37ddd4200000003483191c 235 | d9a9483b555151113ffbd9cf62bffdf66bb3fd9bc5010000d03c028eec54 236 | a49dbaf0c20be3b0c30e2be93e66ce9c193535354daedf77df7d0d040000 237 | 40330838b253917668fcf8f171ca29a794741fcf3df75c9c78e289f1d7bf 238 | feb5c936020e000080e6c917705456562ad2470838da992f7ef18b71f6d9 239 | 6797741fafbefa6a1c7becb1b172e5ca78fef9e79b6cb7f5d65bc7a04183 240 | 0c0a000040461e329a9d80a31d19387060fcfce73f2fe9853e77eedc38fa 241 | e8a363f9f2e51111f1c20b2fe46cef391c000000d9b945253b156927ba75 242 | eb16b7de7a6b6cbcf1c625dbc7a2458be2a8a38e8a850b17fe7759be80c3 243 | 6d2a000000d90938b2539176e2f2cb2f8f21438694acff9a9a9a38eaa8a3 244 | 62ce9c391b2c7ff7dd77e3adb7de6a72bb7df6d9c7d4290000808cf2dda2 245 | 22e068a4264a90bee38f3f3e8e38e28892f55f5b5b1bc71f7f7cbcfaeaab 246 | 8daecf358ba35fbf7e250d5e000000daab5cb338041c8dd44409d2b6c71e 247 | 7bc4c5175f5cb2fed7ad5b17a79e7a6afcf9cf7f6eb28ddb540000008a2f 248 | 57c061a67c43028e8475e9d225aebdf6daa8aaaa2a49fff5f5f571e69967 249 | c6134f3c91b35dae37a94478d028000040737f9335f963de0c8e86355182 250 | 748d1f3f3e3ef6b18f95acff1ffef08771fffdf7e76d376bd6ac58b76e5d 251 | 93ebf7da6baf928530000000ed555d5d5dd33fe6051c0d6ba20469da76db 252 | 6d63fcf8f125ebffe73fff79dc76db6d05b55db56a55bcf6da6b4daeefde 253 | bd7b0c1d3ad4a00100006490eb1695caca4a05fa080147a2aeb8e28ae8d2 254 | a54b49fafefdef7f1f975f7e79a66df2dda6e2391c000000d9780647369d 255 | 95203d5ffbdad74af65c8b37df7c33c68d1b97f79dcb1ff5fcf3cfc771c7 256 | 1dd7e4fae1c387c78f7ffce38888d864934d62cf3df78c5d76d925faf5eb 257 | 177dfbf6dde0fff7e9d32756ae5c194b962c89c58b17c7e2c58bfffb9fe7 258 | ce9d1b3366cc8865cb96b91000008076cd5b54b2117024a677efde71e185 259 | 1796a4ef0f3ef820bef18d6f444d4d4de66d5f7cf1c59ceb77db6db7f8d9 260 | cf7e169ffad4a70a7a6e48cf9e3d63f3cd376f745d5d5d5d3cfbecb3f1f8 261 | e38fc7b469d3e28d37de7061000000ed8e878c6623e048ccb9e79e1b9b6e 262 | ba69493e38679c7146bcfefaebcdda7ef6ecd9b162c58ae8d9b367a3ebbb 263 | 74e912471e7964518eb5b2b232f6da6bafd86bafbde2fcf3cf8f37df7c33 264 | 1e7becb1b8f9e69b63e1c2852e120000a05d3083231b1549c8a04183e298 265 | 638e2949dfd75c734d3cfae8a32dfae0e59bc5512adb6ebb6d9c7efae931 266 | 73e6cc183f7e7cc99e4d020000d09a041cd9a848424e39e594925cc44f3c 267 | f144fce4273f69f6f615151571c41147c4e0c183dbb43e1b6db4519c73ce 268 | 393163c68c38f0c0035d30000040d2041cd9a8482236de78e3183d7a74d1 269 | fb7df3cd37e35bdffa56e6878afec72ebbec120f3ef8605c7df5d5b1c516 270 | 5b9445ad060e1c18b7dd765bdc7befbdb1f3ce3bbb7800008024798b4a36 271 | 028e441c77dc71d1a3478fa27f58ce38e38c663d54b457af5e71f1c517c7 272 | ef7ef7bb18366c5859d66cf8f0e1f1d8638fc511471ce10202000092e321 273 | a3d9a84802aaaaaae2e4934f2e7abf37df7c733cf7dc7399b7fbea57bf1a 274 | 4f3ffd749c7cf2c951595959f6b5bbfaeaab63c284092e24000020296e51 275 | c946451270c8218744fffefd8bdae73ffff9cfb8f2ca2b336d5359591997 276 | 5e7a695c7ffdf54dbec2b55c4d983021aebaeaaaa8aaaa724101000049c8 277 | 157094fbffd8dc16041c091833664cd13f24dff9ce77a2b6b6b6e06d7af7 278 | ee1d77dd75579c78e289c9d671f4e8d171d75d7745af5ebd5c54000040d9 279 | f30c8e6c041c656ef8f0e13164c890a2f679fbedb7c7b3cf3e5b70fb8103 280 | 07c66f7ef39bf8dce73e977c3df7dd77df78e081078a3e23060000a0d8dc 281 | a2928d8a94b9af7ef5ab45ed6fce9c3971d9659715dcfed39ffe743cf2c8 282 | 23b1fdf6dbb79b9aeebcf3cef1cb5ffe32ba75ebe602030000ca96878c66 283 | d35909ca5bb1674d7cf7bbdf8d55ab5615d4f6939ffc644c9d3ab55d0601 284 | bbedb65b5c75d55571fae9a7bbc80080926b6a2a793196679da65e8cbedb 285 | e27c8a719ee574dcc538cf148ebb3d5db36d3196b99e2128e0107094cc81 286 | 071e18db6cb34d513f041b6fbc710c1830a068c7387ffefc18356a548c1a 287 | 352aefb1f4ecd9330e38e080763dcbe190430e89c18307c7dffffef776fd 288 | 8f5639fdf1f78f56fbf96292ea172d636c8cfd30f26f4c5bfd8d00283601 289 | 47237f9723a23b29086400002000494441545e19fe6dc284095e270a0000 290 | 40d95bb87061ecbefbee0ab11e33388ae4d5575f8db973e73658ded83d53 291 | 4ddd47f5d1e5c3860d2bdac330e7cf9f1f2fbcf042de6388f8f77337b6d8 292 | 628b0e33766bd7ae8dc71f7f3c962d5b5694712b65dba694e2185afb7cb3 293 | d4a05cc7c7b975cc733396cecdb915ffdf95f6fc19f4f7c5b9b94e9d5b96 294 | b64f3cf1446cb7dd768db6378343c0513277df7d77dc72cb2d45ebafaaaa 295 | 2a5e79e595a2fd803ffcf0c363debc7979db4e9c38b143851bffa9f5aebb 296 | ee1a5ff8c21762e5ca952e660000a02cd4d5d535b94ec0d1484d94a03c0d 297 | 1d3a3436da68a3a2f475d75d7715146eecbdf7de71ca29a774c87a575757 298 | c719679ce1c2030000ca46aed7c45656562ad0470838cad4673ffbd9a2f4 299 | b372e5cab8faeaabf35f089d3ac5c489133b74cd4f3bedb4183468908b0f 300 | 0000280b5e139b8d8a94a962bd1ef6de7bef8d77df7d376fbbd1a347c7ae 301 | bbeedaa16bdea54b970e1ff2000000e523d70c0e6f726a48c051a676da69 302 | a7a2f43379f2e4bc6d7af6ec19679f7db6a247c47efbed175ffce2171502 303 | 00006873b9020e33381aa98912949f5ebd7a45f7eedd5bdccf5ffffad778 304 | f9e597f3b6fbf6b7bf1d9b6db699c2ffbf8b2eba28aaaaaa140200006853 305 | 028e6c54a40c6dbef9e645e967ca942979db6cb9e5961df6c1a24dd976db 306 | 6de3d4534f55080000a04d0938b2f19ad832d4bf7fff16f7b172e5caf8f5 307 | af7f9db7dda851a3a24b972e6d729eafbefa6adc7aebad515d5d1d03070e 308 | 8ceaeaeaa8aeae8e4d37ddb4cdc760cc983171f3cd37c7dab56b5d900000 309 | 409b10706423e02843c5b85de4a1871e8a152b56e46d77f0c10717fdf8eb 310 | eaeae2c9279f8cbe7dfbc6d0a1439b6cd7a74f9f983a756a83e583060d8a 311 | 638e3926468f1edd6661c7a69b6e1a071c7040fce637bf71410200006d22 312 | d75b543c64b421914f192ac60c8e427e98f7efdf3f670091d5bc79f3e2ca 313 | 2baf8c3df7dc338e3ffef878ecb1c772b6df72cb2da367cf9e0d96cf9933 314 | 277ef4a31fc5d0a143e3d4534f8da79e7a2ae707bb548e3bee3817230000 315 | d066cce0c84645ca504b9fc1b176edda78e69967f2b63be8a0838a92facd 316 | 9a352b8e3cf2c8d87befbde3eaabaf8e77de792722225e7ffdf5bcdbeeb0 317 | c30e39cfe3e1871f8e238f3c323ef399cfc4e38f3fdeaae3b0cf3efbc4a0 318 | 41835c900000409b107064a32265a8a501c75ffef29758b56a55de76071e 319 | 78608bf653535313e79e7b6e1c74d0418dceb278edb5d7f2f6b1fdf6db17 320 | b4afb973e7c689279e1813274e6cb5e762545454c4b1c71eeb82040000da 321 | 44ae802342c8d1a01e4a507e5a7a8bcad34f3f9db74dbf7efd62efbdf76e 322 | f63e7efffbdfc7673ffbd998346952d4d5d535da66fefcf9b172e5ca9cfd 323 | e49ac1f151f5f5f571d34d37c521871c12f3e6cd6b95b1183d7ab457c602 324 | 00006d42c0918d6a94a196cee02824e0d86fbffda2b2b2b259fd5f7bedb5 325 | 71c20927c4a2458b72b6abafaf8fd9b367e76c9325e0f88f175f7c31befc 326 | e52fb7ca034037d9649338e080035c94000040abcbf72c420f1add9080a3 327 | 9d79fffdf7e3c5175fccdb6edb6db7cddcf7dab56b63cc983171f9e597e7 328 | 4d12ff23df6d2acd093822fe7d7bcc983163e2eebbef2e794df7d9671f17 329 | 160000d0eacce0c84635cad0e2c58b9bbdeddffffef7266f19595fdfbe7d 330 | 33f77de18517669e3591ef41a35b6fbd75f4e8d1a3d9e77bf6d967c773cf 331 | 3d57d2f1d8638f3d5c94000040ab137064a31a6568c99225cddef68d37de 332 | 28a85d9f3e7d32f57befbdf7c6a44993321f4fbe191c1515153178f0e066 333 | 9fef9a356be29bdffc662c5cb8b064e3b1d34e3b45f7eedd5d98000040ab 334 | 127064a31a65a82501c73ffef18f82da6599c1f1b7bffd2dbefffdef37eb 335 | 780a79934a736f53f98f850b17c6c9279f1c6bd6ac29c97874eedc3976db 336 | 6d3717260000d0aa041cd9a846196ac92d2ac50e38962c5912279f7c72ac 337 | 5ebdba59c7f3f6db6fc7071f7c90b34d4b038e8888e79f7fbed9214c21dc 338 | a6020000b4360f19cd46c05186cae91695091326c4db6fbfdda20f64bee7 339 | 701423e08888b8e79e7be2f7bfff7d49c644c0010000b4b67c014773df8c 340 | d95e0938ca507367707cf8e1873177eedc82daf6eedd3b6f9b79f3e6c5e3 341 | 8f3fdee2f329d59b541a73d34d3795644c76df7d7717260000d0aadca292 342 | 8d6a94a1f9f3e7376bbb152b56c4ba75eb0a6abb74e9d2bc6da64c999237 343 | 312c44be80a3baba3aba76ed5a94dacd9c39335e7ef9e5a28f49d687b202 344 | 0000b49480231bd528432fbffc724101c4472d5bb6ace0b6f3e6cdcbb97e 345 | ddba7571cf3df714e57cf2051c9d3a758aedb6dbae68f52bc52c8e2e5dba 346 | b8300100805625e0c84635caf4227efae9a7336fb77cf9f282dbe69b25f2 347 | c4134f14edd5abadf12695f53df8e083f1ce3bef14754c2a2b2bdddf0600 348 | 00b42a0f19cd46c051a666cc9891799b2c0147be6775fcf6b7bf2ddab92c 349 | 58b020de7ffffd9c6d8a1970ac5dbb366ebbedb6a28f89591c0000406b32 350 | 83231bd52853cd09388a798bca82050b8a7a3eadf52695ff983c7972519e 351 | 1fb23e01070000d09a041cd9a84699fad7bffe15b367cfceb44d5d5d5dc1 352 | 6df3dda252ec5b3ce6cc9993737d319fc111f1efb0a725afb76d4cb11e84 353 | 0a00005008014736aa51c6b2cee2e8d7af5fc16d67cf9e9df38d2b8b162d 354 | 2aeab9e4bb25669b6db6297afd0a79f647a60f8b3f1e0000402b127064fc 355 | cda604e5ebc9279fccd43e4bc051535313cf3cf34ca3eb56ad5a95f79919 356 | 59e5bb25a6478f1eb1c9269b14759fc50c38d6ad5b178b172f7651020000 357 | adc64346b3117094b1a79e7a2ad36d1659028e888869d3a6b5da8724df0c 358 | 8e88e2cfe2c8f7dc8f2cde7aebad9c335e0000008a2ddf0c0e6f7adc9080 359 | a38cd5d5d5c51d77dc5170fbac33209a0a38ba75eb169b6db65951cfa590 360 | 80a3bababaa8fb2ce60c8e7ccf100100002836b7a864d35909cadb942953 361 | e2bbdffd6e416ff0e8d2a54b6cb4d146f1c1071f14d4f7bc79f3e2d5575f 362 | 8d9d77deb9c1ba6db6d926de7df7dda29dc7c2850b63cd9a3539cf63ebad 363 | b72e6aed66cf9e1df5f5f5459991f2e69b6fba1801801669ec3b4953df53 364 | 8ab5bc547d97f2b88b718e299f4f6b8f655b5d9baed9c2daf7e9d347c021 365 | e0687d071e7860a3b75814e303336fdebc183c787041c771f5d55737f9ac 366 | 88c6fa6eeab68bb3cf3ebbd1590b2d399fdadada9c01c791471e19db6fbf 367 | 7d51bf24ac5cb93236da68a3168fefd0a143e3faebaf4ff28f7939fd91ef 368 | c85f40523e9f8efc05c418fb92e98751c7fa37a6d4d71540b1f93bf4917a 369 | 4444bd32fcdb84091362c284090a01000040d9db6fbffde2e5975f5688ff 370 | 67064791bcf4d24bf1c61b6f3458ded8536f9b7a126eaeb623468c28e821 371 | a24b962c89e9d3a7673a86bdf6da2b060e1cb8c1faa54b97fef7191dcd39 372 | dec696efb9e79eb1c30e3b3479ec353535f1d0430f15ad661111871d7658 373 | f4ecd9b3c5e37bcf3df7c48a152b8a5287d66adb94723dde2cdb67a9414a 374 | e7ebdcd23db7f6fa19cc726eae53e7e6dcd2f9fb622c9d9b736bdb73cbb2 375 | fd65975d16279c704293c7e21615014749fcea57bf8a5b6eb9a564fd7ff5 376 | ab5f6df21689f5f5eddb372eb8e08258b66c59c17defb8e38e317dfaf40d 377 | a637f5eddb377efce31fc7bffef5afa29dc3983163e2820b2e68727dd7ae 378 | 5de3fbdfff7ea63f2ef98c1c39b2c501c7ebafbf1edff9ce775ce4000040 379 | abf290d16c5423110f3ef860bcfaeaabf907b453a7f8ec673f9ba9efd75e 380 | 7b2d1e7becb106cbf7df7fffa29e43be37a974edda3536df7cf3a2eeb347 381 | 8f1e2dee63c68c192e400000a0d5e5fb1f7f051c1fa98712a4e1c30f3f8c 382 | 8b2fbeb8a0b623468cc8dcffd5575fdd60d949279d54d4f72a17f2aad862 383 | be4965c08001d1bd7bf716f723e0000000da425d5d5dee1ff4028e0deba1 384 | 04e9f8c31ffe104f3df554de76fbedb75fe61ff6b366cd8ac993276fb06c 385 | bbedb68b430f3db468c73f7ffefcbc6daaabab8bb6bfdd77dfbdc57dac59 386 | b326fef77fffd7c5070000b43ab7a864a31a89b9e8a28bf25ee4fdfaf58b 387 | e38f3fbe597dbffdf6db1b2cfbfef7bf5fd0c34d0bb162c58a58b26449ce 388 | 36e51670fcf9cf7f8e55ab56b9f00000805627e0c8463512f3ca2bafc47d 389 | f7dd97b7dde9a79f1eddba75cbd4f7fbefbf1fdffdee773758b6f5d65bc7 390 | 19679c51b4e39f376f5ecef5db6cb34dd1f6558c80e3fefbef77d1010000 391 | 6dc23338b2518d045d71c515515b5b9bb3cde69b6f1ec71e7b6ce6be67cc 392 | 9811b7df7efb06cb962e5d5ab463cf1770146b0647f7eedd63b7dd766b51 393 | 1f8b172f16700000006dc63338b2518d042d58b020aebbeebabcedc68d1b 394 | 175dbb76cddcff0f7ff8c3b8e79e7bfefbdfdf7aebada21d7bbe078d16eb 395 | 21a35ff9ca575afc06953beeb823d6ac59e382030000da44be5b542a2a2a 396 | 14693d028e445d77dd75f1b7bffd2d679bfefdfbc731c71cd3ac0fd18409 397 | 1362d2a449b166cd9a06cfe568897c01c7565b6d559414f2c8238f6cd1f6 398 | 6bd6ac893befbcd385060000b419cfe0c8463512b56eddbaf8f6b7bf9d77 399 | 86c1f8f1e363e38d376ed607e9dc73cf8d214386c40b2fbc50b4e3ce778b 400 | 4a5555556cb1c5162ddac7a0418362afbdf66a511fbffef5afe3dd77df75 401 | a10100006d46c0918d6a24ecb5d75e8b2bafbc32679bfefdfbc7d5575fdd 402 | ec7d7cf0c107b17af5eaa21d73be191c112d7f0ec7e8d1a35b34556bedda 403 | b571c30d37b8c00000803625e0c8463512f78b5ffc22fef297bfe46cb3ff 404 | fefbc7a9a79e5a16c7bb60c18258bb766dce362d79934aaf5ebd9a755bce 405 | fa7efef39fc7ecd9b35d5c0000409b127064a31aede0823fe38c3362d5aa 406 | 5539db9d7beeb945796d6a4bd5d5d5e57da6474b66704c98302136dd74d3 407 | 666f3f7bf6ec16cd7801000028e6efbd9c3fe8051c1bd64309d23767ce9c 408 | 38fffcf373b6a9aaaa8a5ffce217d1bb77ef363fde7ccfe168ee9b5476dc 409 | 71c738e9a4935af4c7e3acb3ceca3bc3040000a035784d6c36aad14e4c99 410 | 3225264f9e9cb3cd36db6c5316b313f23d8763c08001cdeaf7e28b2f8ece 411 | 9d3b37fbb8264d9a14cf3df79c8b090000280bf5f5f5b97fd00b3836ac87 412 | 12b41f3ff8c10fe2f9e79fcfd9e680030e884b2eb9a44d3f08f9028ee6dc 413 | 623272e4c8183e7c78b38fe9a5975e8acb2ebbcc45040000940db7a864a3 414 | 1aedc8dab56be39bdffc66ded79b9e74d24971e38d3746972e5ddae438f3 415 | dda2b2d9669b65ea6fc71d77ccfb36995ce6cc9913c71c734cac5cb9d245 416 | 040000940db7a864a31aedcc3befbc1363c68c8975ebd6e56c3772e4c898 417 | 3a756a9b3c9323df0c8e7efdfa15fc41dd6aabad62ead4a9b1f1c61b37eb 418 | 58162e5c18471e7964de50080000a0b5e59bc1515151a148eb1170b443cf 419 | 3cf34c9c73ce3979efd7da7befbde3d7bffe756cb1c516ad7a7cf9028e4e 420 | 9d3a45bf7efdf2f6d3b76fdf983a756ab38fbfa6a6268e3efae8bc334a00 421 | 0000da82677064a31aedd4e4c993e3dc73cfcddb6ee79d778e871f7e3876 422 | d86187563bb69a9a9a58be7c79ce36f96e53e9debd7bdc79e79d3178f0e0 423 | 661dc38a152be284134e88575f7dd5c50200009425cfe0c84635dab15ffe 424 | f29705851c03060c88dffce6373166cc98a8aaaa6a95636bc98346070c18 425 | 1053a64c89a14387366bdf73e6cc89af7ce52bf1a73ffdc945020000942d 426 | cfe0c84635dab9499326151472f4ead52b2eb8e08298316346ecbffffe25 427 | 3fae7c01475333380e3df4d0983e7d7a7cfad39f6ed67e67cc9811071e78 428 | 60bcfefaeb2e0e0000a0ac99c1918d6a740093264d8af3ce3bafa0b68306 429 | 0d8a499326c5af7ef5abd865975d4a764cf3e7cfcfb9fea333387af7ee1d 430 | 37dc7043dc70c30dcd7e30ea4d37dd14c71e7b6cdedb63000000ca818023 431 | 1bd5e8206ebffdf638fffcf30b6ebfcf3efbc4b469d3e2273ff949e6d7b6 432 | 1622cb0c8ecf7ffef3f1e4934fc6a1871edaac7dd5d4d4c4f8f1e363e2c4 433 | 8979a778010000940b0147369d95a0e3b8edb6dba2a2a2222ebae8a282da 434 | 77ead4298e3efae8f8fad7bf1e4f3df554fcee77bf8b279e7822162d5ad4 435 | e263c917700c1e3c384e3bedb438eaa8a362fbedb76ff67e1e78e081b8f0 436 | c20b8b72cc000000ad49c0918d80a383b9f5d65be3fdf7df8f8b2eba287a 437 | f5ea55d0365dbb768dfdf6db2ff6db6fbfa8afaf8fe79f7f3ea64d9b16d3 438 | a64d8bd75e7bad59c7f1eebbefe65cbffffefbb7e85920fffce73fe3ecb3 439 | cf8e9933671a7400002049028e6c041c1dd03df7dc134f3df5545c71c515 440 | f1a52f7d29d3b61515153174e8d0183a74689c73ce393167ce9c78fcf1c7 441 | e3a5975e8a3973e6c4dcb973f3ce96a8acac8cae5dbb96e4dc56af5e1dd7 442 | 5e7b6d5c7ffdf5b166cd1a830d0000244bc0918d80a3835ab060411c7ffc 443 | f1f1b5af7d2dbef7bdef45757575b3fa193468509c72ca291b2c5bb97265 444 | 2c58b02056ad5a15ab57af8edadadaa8adad8daaaaaaa8aeae8eadb6daaa 445 | e8afa3adadad8da953a7c68d37de186fbdf5960106000092972fe0a8a8a8 446 | 50a4f508383ab8fbefbf3f1e7cf0c1183972648c1b372e860c19d2e23e7b 447 | f4e811db6db75dab1c7f4d4d4d4c9a34296ebdf5d658b2648901050000da 448 | 0d3338b2117010757575f1c0030fc4030f3c109ffffce7e3d4534f8de1c3 449 | 8747e7cee57b792c5cb8306eb9e596b8f3ce3b63c58a1506110000687704 450 | 1cd90838d8c01ffef087f8c31ffe10fdfaf58b030f3c30468e1c199ff9cc 451 | 67ca22ec58b162454c9f3e3d1e7df4d178f4d1473d6303000068d7eaeaea 452 | 72ae17706c48c041a3de7befbd983c79724c9e3cf9bf61c7befbee1bc386 453 | 0d8b010306b4da712c5ab4287ef7bbdfc5638f3d163367ce8cb56bd71a1c 454 | 0000a0433083231b010779ad1f7644446cb1c516316cd8b0183a74680c1b 455 | 362c860c1912ddba752bfa7e2fbef8e2f8c52f7e11f5f5f506010000e870 456 | f2fd1612706c48c04166efbcf34e3cfcf0c3f1f0c30fff7759bf7efd62cb 457 | 2db78c010306c4965b6ef9dfffdcb367cfa8abab6bf4ff76dc71c718366c 458 | 5893fba9adad156e00000025d3d45b488ab13ceb1b4e1a6b9f2fc010706c 459 | 48c05124c3860d8bd5ab5797ec03532e1fc642972f5fbe3c962f5f9eb3ef 460 | 8d37de38e7f97de94b5f8aeeddbbb7ea71b746df59c63385f369ed6bb6d4 461 | c75daa7f9c8c714592b5ea2863ecef92bf4bc6d8df257f97fc5dea08d76c 462 | 7b24e0107094c4c8912363e4c8910a514423468c88112346280400004023 463 | 041c1b1270ace7bdf7de8b7ffce31f0d9637759b44a99737a594fb6dcd73 464 | dd68a38d62c71d776cf23c172d5a14f3e7cf6fd73568ebf16eab1a38d7b6 465 | bbce4a598314ce550d8c77473bd7ac3570ae699fab1a643f5fe7ea5c533f 466 | d7b7df7edb0ff9f5544484871cd026060d1a147ffce31f9b5c7ff7dd77c7 467 | 59679da550000000e4653e0b6de6bdf7decbb9be478f1e8a040000404104 468 | 1cb499dadada9ceb051c000000144ac0419b59bb766dcef51b6db4912201 469 | 0000501001076da6bebe3ed6ac59d3e47a33380000002894808336b57af5 470 | ea26d799c101000040a1041cb4290107000000c520e0a04de5ba4545c001 471 | 000040a1041cb4a95c3338ba77efae400000001444c0419bca1570545555 472 | 455555952201000090576725683faaaaaa62d75d778ddd77df3d3efef18f 473 | 47efdebda34b972ed1b56bd7a8a9a989b973e7c6bc79f3e2d9679f8d575e 474 | 79a52c8e3957c01111d1a54b97bcaf930500000001473b3078f0e038edb4 475 | d3e2eb5fff7a74eddab5a06dfef9cf7fc6030f3c10b7dc724b2c5fbebccd 476 | 8e3dd7333822226a6b6b0d3000000079b94525615b6cb145dc7efbed3163 477 | c68c38fae8a30b0e3722223ef6b18fc559679d153367ce8cc30f3fbccdce 478 | 21d70c8e356bd6445d5d9d81060000202f0147a2468c18114f3cf1441c70 479 | c001515151d1ec7e36d96493b8e69a6be29a6bae894e9dcaeb7258b56a95 480 | 81060000a020028e048d1d3b36eebaebaee8d7af5fd1fa3cfcf0c3e3ca2b 481 | af6c5158d21cb95e05bb72e54a830d00004041041c8939eaa8a3e2bcf3ce 482 | 2b491071f4d147c7d8b1635bf57c72051c66700000005028014742bef8c5 483 | 2fc695575e59d27d9c75d659b1f5d65bb7da39f5ecd9b3c9756670000000 484 | 50280147227af6ec193ffde94fa3b2b2b2a4fbe9debd7b5c72c925ad765e 485 | 6e51010000a018041c89f8f6b7bf1d9b6fbe79abecebcb5ffe720c1c38b0 486 | 55f6d5a3478f26d7b9450500008042093812b0cd36dbc4a9a79edaaafb1c 487 | 356a54c9f7d1a54b97a8aaaa6a72fdd2a54b0d3e00000005117024e08823 488 | 8ec8190494c2a1871e5af27de4ba3d2522e2a5975e32f80000f07fecdd79 489 | 784c77e3ffff57f6d86289885d82d6d216adaab65ab52fb5f6638f5d8ba2 490 | d45545d1e2a6d6a2b5961b75aba5aa949bdaf7d6de1bb56fb5546d114122 491 | 2511497e7ff899af314b66929998c3f3715dbd2ae73d73ce9973cecc39e7 492 | 75de0b00871070184046840d8f2b55aa94424242dcba0c7b1d8c4ad2c183 493 | 07d9f9000000000087107078b8175e7841c58a157b22cb2e51a2845be76f 494 | 2fe0484949d1e1c387390000000000000e21e0f070e5cb977f62cb7677c0 495 | 61af23d3f3e7cf2b363696030000000000e010020e0f171e1efec4965db2 496 | 6449b7cebf54a95236cb689e020000000070060187872b5ab4e8135b76b6 497 | 6cd9dc3a7f7b010a010700000000c019041c1ecedd1d7dda131717e7d6f9 498 | 972e5dda66d9810307d8f90000000000871170783877870cf6dcbe7ddb6d 499 | f30e080850585898d5b2e8e868eddbb78f9d0f0000000070180187877b92 500 | 1d6dba335c79fef9e7e5e3e363b56ccd9a354a4a4a62e703000000001c46 501 | c0e1e1dc598b2235c78e1d73dbbced7530facb2fbfb0e301000000004e21 502 | e0f070870f1f7e22cbbd7bf7aeb66cd9e2b6f9972953c6eaf49b376f6ae7 503 | ce9dec7800000000805308383cdcb66ddb9ec872376fdeacf8f878b7ccdb 504 | d7d7570d1a34b05ab676ed5addbf7f9f1d0f00000000700a0187873b73e6 505 | 8c2e5ebc98e1cb5db16285dbe65db3664d9ba3c3d03c0500000000901604 506 | 1c06b079f3e60c5dde912347b46ad52ab7cdbf55ab5656a7c7c4c468fbf6 507 | edec700000000080d308380c60ce9c394a4949c9b0e50d1e3c58c9c9c96e 508 | 9977debc7955b56a55ab656bd7ae556262223b1c00000000e034020e0338 509 | 79f2a4d6ac599321cb5ab972a576efdeedb6f9b76cd9d2e6f0b0f3e6cd63 510 | 670300000000d2c44b520a9bc1f3bdf0c20bdab061835b9771fefc79d5a9 511 | 5347b1b1b16e997f962c59b475eb56152850c0a26cdfbe7d363b1e050000 512 | 00002035d4e03088a3478fba35e0888b8b53870e1ddc166e787979e99b6f 513 | beb11a6e48d2cc9933d9c900000000803423e03090cf3fff5c7171712e9f 514 | 6f7c7cbcba76edaa53a74eb96ddd7bf5eaa57af5ea592dbb72e58a56af5e 515 | cd0e0600000000a419018781fcfdf7dffae28b2f5c3acf989818b568d142 516 | 5bb66c71db7ad7a851437dfbf6b5593e69d224ddbf7f9f1d0c0000000048 517 | 33fae030a0efbefb4e75ead449f77c2e5fbeac888808b7d6dc2855aa9496 518 | 2d5ba6a0a020abe5bb77ef5693264d3274941800000000c0d38780c38082 519 | 8383b579f366858484a4791e274f9e54444484ae5cb9e2b6f56cdab4a9c6 520 | 8c19a34c9932592d8f8f8f57b56ad574fefc79762a00000000205d68a262 521 | 40d1d1d1ead0a183fef9e79f34bdffc71f7f54c3860ddd166ef8fbfb6bec 522 | d8b19a346992cd704392c68e1d4bb8010000000070096a7018d8db6fbfad 523 | f9f3e7cbcfcfcfe1f76cdbb64d6ddab4515252925bd6a94489129a3c79b2 524 | 5e7cf145bbaf5bbf7ebd3a75eaa4e4e46476240000000020dd08380cae5e 525 | bd7a9a3e7dba7c7c7c1c7ecf9e3d7bf4e1871f2a3232d265eb9133674e7d 526 | fae9a76ad7ae5daaebb26bd72e454444282121811d080000000070091f49 527 | 43d90cc675faf4695dbd7a55356bd69497979743ef2958b0a09a356ba6b3 528 | 67cfeacc9933e95a7e6060a03a74e8a0d9b367ebf5d75f97b7b7fd564f87 529 | 0f1f56444484eedcb9c3ce0300000000b80c35389e12356bd6d494295394 530 | 2d5b36a7de77f4e8514d9e3c59ab56ad72aad94aa952a5d4ba756b356dda 531 | d4e60829d696d5b2654b454747b3c300000000002e45c0f114295ebcb8e6 532 | ce9dabf0f070a7df7be1c205fdf6db6ffadffffea7fdfbf7ebafbffe5272 533 | 72b2a98f8ca2458baa4c99327ae9a59754b16245952b57cea9f9cf9b374f 534 | 83070fa6590a00000000c02d08389e32414141faf6db6f55b56a558f589f 535 | 7ffef9477dfbf6d5f2e5cbd9390000000000b7a10f8ea74c424282962f5f 536 | ae989818952f5f5e0101014f6c5dd6af5faf0f3ef840bb77ef66c7000000 537 | 0000dc8a1a1c4fb1e0e060f5efdf5f111111a976fee94abb76edd2c89123 538 | b56fdf3e760200000000204310703c035e7cf1450d1b364cafbffebadb96 539 | 919898a86ddbb669ce9c39dab2650b1b1d0000000090a108389e21254a94 540 | 50e3c68dd5b8716315295224ddf34b4a4ad2ce9d3bb57cf972ad5ebd5a31 541 | 31316c6400000000c01341c0f18c7ae59557d4b87163952d5b56050b1654 542 | 6868a8dd662c2929293a77ee9c0e1f3eacc3870febd0a1433a7cf830a106 543 | 00000000c02310704092e4e7e7a7fcf9f3ab60c182ca9e3dbb6edfbeaddb 544 | b76f2b363656b76fdf564c4c8ceeddbbc78602000000007824020e000000 545 | 00006078de6c0200000000006074041c0000000000c0f008380000000000 546 | 80e11170000000000000c323e00000000000008647c00100000000000c8f 547 | 80030000000000181e01070000000000303c020e00000000006078041c00 548 | 00000000c0f00838000000000080e11170000000000000c323e000000000 549 | 00008647c00100000000000c8f80030000000000181e0107000000000030 550 | 3c020e00000000006078041c0000000000c0f00838000000000080e11170 551 | 000000000000c323e00000000000008647c00100000000000c8f80030000 552 | 000000181e01070000000000303c020e00000000006078041c0000000000 553 | c0f00838000000000080e11170000000000000c323e00000000000008647 554 | c00100000000000c8f80030000000000181e01070000000000303c020e00 555 | 000000006078041c0000000000c0f00838000000000080e1117000000000 556 | 0000c323e00000000000008647c00100000000000c8f8003000000000018 557 | 1e01070000000000303c020e00000000006078041c0000000000c0f00838 558 | 000000000080e11170000000000000c323e00000000000008647c0010000 559 | 0000000c8f80030000000000181e01070000000000303c020e0000000000 560 | 6078041c0000000000c0f00838000000000080e11170000000000000c323 561 | e00000000000008647c00100000000000c8f80030000000000181e010700 562 | 00000000303c020e00000000006078041c000000ae0f107c000020004944 563 | 41540000c0f00838000000000080e11170000000000000c323e000000000 564 | 00008647c00100000000000ccf974d00000090baac59b32a383858bebebe 565 | ba7efdba626363959292c2860100c043107000f0387e7e7e6adebcb95e79 566 | e515ddbd7b577bf7eed5ca952bb99180c71da7414141ca962d9bcdff8282 567 | 8294356b5605050569f8f0e1ba72e50a1bce40fbf7f5d75f57b56ad554a5 568 | 4a15858787cbdfdfdfec358989898a8e8ed6eeddbbb576ed5a6dd9b245b7 569 | 6fdf4e75decd9a35d3bbefbe2b499a3973a676eedce9d4ba65cf9e5d2d5b 570 | b654e9d2a575f1e245ad5cb952274e9c706a1e010101ca962d9bb266cd6a 571 | 3a5e1ffd77962c59cca66fddba55cb962de3c0000078342f49dc31e09914 572 | 1a1aaa6ddbb619667d870d1ba6850b173ef5fb25242444f3e6cd53993265 573 | cca66fdbb64deddbb7d7bd7bf738789f0273e7ce55c58a150db3beb76edd 574 | d2ebafbf2e49ca952b97f6efdf6f71b39b9a2a55aae8d4a953ec7c03041b 575 | 111111eaddbbb74243439d7a6f6262a2962e5daaafbefaca669855a24409 576 | ad5dbb5601010192a4debd7b6bf1e2c50e2fa374e9d29a3b77ae0a142860 577 | 9a76efde3d0d1c38d0a173c4ebafbfae1f7ffc517e7e7e4e7db6c993276b 578 | d4a8511c2000008f460d0e3cb3bcbdbd1514146498f5cd9d3bf733b15fc6 579 | 8e1d6b116e48d23befbca34f3ffd5423478ee4e07d0ae4cb97cf50dfbf4c 580 | 993299feede5e5e574b8016378f3cd37356edc388585855994ddbc795397 581 | 2f5fd68d1b37949292a2909010e5c99347b972e592979797a407e148cb96 582 | 2dd5b87163cd9e3d5b93264d32abd1e1efefaf69d3a699c28d87e72247f9 583 | fbfb6bfaf4e966e1c6c3e9a3468dd2e1c38775f8f061bbf3f0f1f1713adc 584 | 0000c0280838f0cc4a4a4ad2c58b17cda6f9f9f9294f9e3ca68b55472427 585 | 27ebf2e5cb0ebf3e2828284d377646ba194cabe0e060d5ae5ddb6679a346 586 | 8d08389e12ce1ccfc9c9c9dab3678fce9d3ba7cb972fcbcbcb4bc58a15d3 587 | bbefbeeb50d0101717a79f7ffe5967cf9e556262a2f2e5cba742850aa96a 588 | d5aa0eaf879f9f9ffcfcfc949898a8fbf7efebd8b1630f4ea2bebe2a54a8 589 | 90590002636ad3a68d468c186176f31f1919a9d9b3676bd3a64d3a71e284 590 | d56672a1a1a1aa59b3a66ad5aaa56ad5aac9dbdb5b818181ead1a387ead5 591 | aba7ae5dbb9a4287810307aa54a952168183a3aa54a9a2e2c58bdb3c46db 592 | b469a3fefdfbdb9dc73ffffc633a7e1ffeee3a7bde0300808003f030d7ae 593 | 5dd36bafbd66313d303050ad5ab5d2f0e1c3537db23674e8502d5fbe5cd7 594 | ae5d736ad90101012a58b0a0de79e71dd5ae5d5b6fbffd36018764f5a9e9 595 | a3f2e7cf2f6f6f6f25272773003f0301c79d3b77346dda34fdf0c30f56ab 596 | fb87858569cd9a35ca9e3dbbcd79c4c4c4a86ad5aaba7af5aad5ef7addba 597 | 75d5b76fdf548f3de9410793376fde544c4c8c6ad4a8615656a244090d1c 598 | 3850356bd664e71ad0c08103f5d1471f99fe4e4c4cd4983163346bd6ac54 599 | 9bc54546466afefcf99a3f7fbec571101616a6952b57ea5ffffa97ce9e3d 600 | abce9d3b5bbcdf9980c356b8f1d0f3cf3f9fea3cfef8e30f8be3374b962c 601 | fae0830ff4f1c71f2b30309003020060580c130b3c263e3e5e73e6cc49b5 602 | 4df4d1a347f5ef7fffdbe970439212121274e6cc197df7dd776ad1a2851a 603 | 366c986ab5e26721e03873e68cddf2bffffe9b70e329912d5b36bbe5870f 604 | 1f56eddab53561c2049b7d199c3f7f5e3ffdf493ddf9fcf2cb2f56c38d87 605 | dff565cb96a9468d1a9a3f7f7eaaeb9c254b169b65274f9e54fbf6edb57d 606 | fb7676aec1b46cd9d22cdcb87af5aa1a366ca869d3a639dde7cfc3e3a07d 607 | fbf68a8b8b93f4a0f9c8881123f4fdf7df5bad25e14c1395d46a0bda3ad6 608 | 53f3cf3fff68e2c4891a306000070400808003781aeddbb7cf6ef9860d1b 609 | 5cb6acfffdef7faa5fbfbe56ac5861f335cf42c071ebd62dbbdb60e9d2a5 610 | 1c984f812c59b2d87d6abd77ef5e356cd830d5c04b92ce9e3d9bae1b42e9 611 | 414d917efdfa69fcf8f1765f97356bd654e7356edc3876b081942f5f5ea3 612 | 478f36fd1d1b1bab56ad5ae9e0c183e99aef860d1bd4a851235dba74c934 613 | cd56bf17ce041cdbb76fd7ad5bb76c96af5cb9325debfde38f3f5a34dd04 614 | 00c0480838001be2e3e3ed96c7c6c6ba7479898989ead1a387cd0bd4d49e 615 | 783f2d060e1ca8fdfbf75b4c5fb76e9d264d9ac481f914b0772c9f3e7d5a 616 | eddbb75742428243f34aad468f334fe0c78f1f6f77140a7b35381e629414 617 | 035d00797b6bc2840966fdb8f4eedd5b274f9e74c9fc8f1f3fae468d1ae9 618 | faf5eb765fe74c1395ebd7afebe38f3f36d50e79d48c1933b47af5ea74af 619 | 37c73000c0c8e88303f020494949eadbb7af5e7bed358be109edf533f034 620 | b971e3861a376eacfffbbfff53d9b26575f7ee5dedd9b3c7a53566f064d9 621 | 3a96efdfbfafae5dbb2a2626e689addb800103f4e69b6f5aed93c3911a1c 622 | b76edd52424282d92819f04c4d9a34d173cf3d67fa7bfbf6ed5abb76ad4b 623 | 9771f9f26575e9d2458b172f96afaff54b2e67020ee941ed902a55aaa855 624 | ab567afef9e775e5ca15ad5bb74ebb76ed72c93a5b0b4f0000300a020ec0 625 | c3c4c6c6eab3cf3ed39c3973cca63f0b4d541ebdd15dbc7871aafda0c098 626 | 6cd5e0983b77ae4e9c38f144d72d31315143860cd1dcb9732dca1ca9c121 627 | 897e620cc0c7c7479f7cf289d9b4efbefbce2dcbdabd7bb7befcf24b0d1d 628 | 3ad46ab9334d541eba7cf972aa4daa00007816d14405f040ebd6adb36803 629 | fe2c051c78ba59abc171ebd62d7df5d5571eb17e1b366cd08e1d3b2ca63b 630 | 528303c650ae5c39152952c4f477424282b66eddeab6e5cd9a35cb6c6856 631 | b30b316f2ec500007015ceaa8087faf6db6fcdfe0e0c0cb4d9491d6024d6 632 | 6a702c5ab4c8e5fddaa4c7ecd9b32da6395a83039eaf5ab56a667f5fba74 633 | 29d57e97d22339395943860cb15ae66c13150000601b0107e0a156ad5a65 634 | 310204b538f03478fc384e4949d1bc79f33c6a1d376cd8a0c8c848b36904 635 | 1c4f8f2a55aa98fd9d5a47a0aeb063c70ead5bb7ce623a01070000ae43c0 636 | 0178a8a4a4248b1ef10938f03478fc38deb16387ce9d3be771dfbf1f7ef8 637 | c16c1a4d549e1ec58b1737fb3b73e6cc19b2dce9d3a75b5e88d144050000 638 | 97e1ac0a78b0356bd6d8bd31048ce8f1e3d815435bbac3e34fdb09389e0e 639 | fefefe16cda41e1fb5ca5df6ecd963d1912e01070000aec35915c84079f3 640 | e6d5c68d1bb571e346454444a4fafabd7bf7eac68d1b366f0c01237afc38 641 | debc79b347aee7e1c38775ebd62dd3df3451793a0407075b4c0b09095178 642 | 7878862cfff1117a68a2020080eb1070001928478e1c2a5dbab44a972ead 643 | 909090545f9f9494a4df7fffddf4b7b5d12700a37934e03873e68c2e5cb8 644 | e091eb999c9caceddbb79bfe26e0783a64ca94c9eaf4060d1a64c8f2972e 645 | 5daac4c444d3df041c0000b80e01079081d252c57ddfbe7da67f5b1b7d02 646 | 309a47038e6ddbb679f4ba3e3a5c2c4d549e0e71717156a777efde5db972 647 | e5ca90e5efdab5ebff5d88d14405000097e1ac0a64a062c58a39fd9efdfb 648 | f79bfe4d0d0e3c0d1e0d380e1f3eecd1eb7aecd831d3bf09389e0eb68623 649 | 0e0a0ad2d4a953336438ee8d1b379afe4d0d0e00005c878003c84065ca94 650 | 71fa3d7ffcf18766cd9aa559b36659744e0718d1a335911e0d103cd1c993 651 | 274dffa689cad3213e3e5e57ae5cb15af6ce3bef68ce9c39ca9d3bb75bd7 652 | e1d180831a1c0000b88e2f9b00c83855ab5675fa3d77eedcd1e0c1831d7a 653 | adbfbfbfb266cd6af5bf2c59b2286bd6ac5ab870a1fef9e79f54e7151414 654 | a482050b9afebb7fffbea2a2a274fefc799d3871422929292ed9265e5e5e 655 | ca9429933267ce6cfabfad7f5fb972456bd7ae75c972cb952ba73a75ea28 656 | 3c3c5c79f2e4514848887c7d7d151515a5ebd7afebd2a54bdab2658b7efb 657 | ed37ddbb778f83d7851ed6444a4a4ad2a953a73c7a5d63636375f9f265e5 658 | cf9fdfed0147484888ead5aba7b0b030152a5448050b16d4bd7bf7141d1d 659 | ad3367ce68e3c68ddabb77af929292dcfeb9b364c9a2ead5abeb8d37de50 660 | be7cf9141a1aaadcb9732b363656515151ba76ed9afef8e30fad5bb74e97 661 | 2e5d32dc31b86fdf3ed5af5fdf6a59b56ad5f4db6fbf69f2e4c95ab46891 662 | 5947cfae72fefc790d1e3c588181813a74e850aaaff7f3f333fd1edafbef 663 | 9f7ffed192254b0cb10ffcfdfdf5f6db6feb9d77de51fefcf9151a1aaad0 664 | d050ddb973475151518a8a8ad2b163c7b46edd3a9d3e7d3a5dcbf2f3f3b3 665 | 7a3e7cf8ef6cd9b269e5ca958a8c8c74e8bbf1f0fb59b0604149d2f5ebd7 666 | 75e1c2051d397244c9c9c919b60dc3c3c355a74e1d9528514279f2e45168 667 | 68a8b267cfae989818ddb87143c78e1dd39e3d7bf4ebafbfda6c9a959e6d 668 | fac61b6fa84a952a2a54a890f2e6cdab3c79f228212141d7ae5d53545494 669 | 4e9d3aa575ebd6797c900d808003401a54ac58516161612e9f6f8f1e3dd4 670 | a3470f65c992c5a1aad57ffcf18759c7a58f0a080850e3c68dd5b16347bb 671 | b54da2a2a2b476ed5a7df3cd37369f84daf3d9679fa94d9b36ca9c39b302 672 | 03031d7edffaf5ebd3157064c992453d7af450b366cd54a04001abaf295c 673 | b8b0e9df9d3a75d23ffffca30d1b3668fcf8f13a73e68c53fba57dfbf6e9 674 | dab70d1b36d4d5ab57ad968d183142356bd6747a9e870f1fd6fbefbfff44 675 | bf0b7ffffdb76edcb8a18b172f2a2121c1e3bfbb1b376ed4abafbeaa9b37 676 | 6fbaedb7a143870e7af7dd77ed7e87bb75eba64b972e69d8b0615ab972a5 677 | 5bd6e5e5975f56efdebdf5ce3befc8dfdfdfa2bc4081022a55aa9424a969 678 | d3a6faf2cb2f75f4e8514d9b364dcb962d33cceff18e1d3b6c061cd28310 679 | eef3cf3f57bf7efdb46ad52aad5ab54a5bb76ed59d3b775cb60eb366cdb2 680 | 5b7ee0c00153b8ebebebd8e5dad1a3473d3ee0080f0fd7a79f7eaa9a356b 681 | da6cf6f5fcf3cf4b921a376eac810307eadcb9739a33678efef39fffe8fe 682 | fdfb0e2da769d3a61a3a74a8b265cbe6d0b9312a2a4afffdef7fad5f2cfb 683 | faaa4e9d3aead8b1a3de78e30d9bf3888989d1e6cd9b3561c204a7ce17ce 684 | 080c0c54e7ce9dd5a44913d3767a5cfefcf92549952a5552e7ce9d151b1b 685 | ab050b1668dab4698a8e8e4ed7f20b1428a04f3ffd5475ebd6b539b25bf1 686 | e2c54dffeedbb7affefefb6fcd9f3f5fd3a74f37eb60170008380083f2f1 687 | f1d1e79f7fee967907050529478e1c0ebfbe4489121601879797977af4e8 688 | a16eddba2967ce9ca9ce232424446ddbb655b366cd347af468fdfbdfff76 689 | 6a9db367cf9e219df93dfaf99a3469a2418306293434d4a23c212141972f 690 | 5f567c7cbc4243439533674e797979994291c68d1bab5ebd7a9a3b77aec6 691 | 8f1faf98989854979923470ed3d3bd34ff40dbb9a9090e0e4ed3fc1d7942 692 | e96e8d1a3532d4f7f7b3cf3e73db7777cc98314e6d8f02050a68c68c197a 693 | f7dd77d5b3674f876ff652131c1cac810307aa65cb96a6635f92eedfbfaf 694 | 6ddbb6e9c489138a8c8c54f6ecd9f5dc73cfa97af5eaa61a2d2fbcf082a6 695 | 4e9daa366dda68e0c08166cd7a3cd5f2e5cb3574e850050404d87d9dbfbf 696 | bfde7bef3dbdf7de7b4a4848d06fbffda65f7ffd553b77eed4891327dcf6 697 | b4decbcbcbea6f959165ce9c591f7ffcb13efcf043b3c0212525457bf6ec 698 | d11f7ffca1ab57af2a53a64c0a0b0b53ad5ab54ce7a3f0f0700d1b364cad 699 | 5ab5d2c08103b567cf9e549797254b16a7ce33254b96b41a70b46edd5a7d 700 | faf451debc791d3ab7bdf7de7b6ad0a08166cc98a1912347bab4b663e3c6 701 | 8d3568d0205380f1a8e4e46453cd971c3972283434d4b49d838282d4ad5b 702 | 37356bd64c7dfaf4d1860d1b9c5ebebfbfbfba77efae9e3d7b5a8c44b46f 703 | df3eeddbb74f57ae5c91bfbfbf8a1429a21a356a284f9e3c92a442850a69 704 | c080016ad9b2a5060d1aa4ad5bb772610880800330b2be7dfbaa7cf9f26e 705 | 99f7810307346fde3c050404a870e1c22a5dbab4cda72a0f038e4765cd9a 706 | 5553a64c51ad5ab59c5e766060a0860e1daafcf9f36be8d0a10ebfefca95 707 | 2ba62aabdededea650c11dfcfcfc3479f264356cd8d06c7a525292962c59 708 | a2f9f3e79b8d542349a1a1a16ad1a2853a75ea64ba40f3f3f3d3071f7ca0 709 | 3a75ea282222427ffef9a7dde55ebe7c59b1b1b176f7c5e392929274f2e4 710 | 49538062af76c3993367f4e79f7f2a2424c4e1ce67232323535d6f648c8a 711 | 152b6af2e4c9690ec11a356aa4c0c040bdfffefbe9bec92e55aa94162d5a 712 | 643174f5bc79f3347efc785dbb76cde23d99326552b76eddd4ab572f534d 713 | 8f37de78436bd6ac51c78e1d3d7e749c9898182d59b244ad5bb776f83d01 714 | 0101aa51a3866ad4a8619ac7eeddbbb56bd72eeddcb953c78e1d7359e091 715 | 929262d634ce5a6d1a23c99b37af7efcf1473df7dc7366d3376cd8a02143 716 | 86e8fcf9f3567fbb1fde103ffc1d2d55aa94962e5daabe7dfbea871f7eb0 717 | bbcc93274f6adebc79f2f3f353c1820555b26449bb7dab3c7e6ef4f3f3d3 718 | a851a3141111e1fcc5b5afaf7af4e8a182050bba24880c0c0cd4f4e9d3ad 719 | 9ea7376cd8a01f7ef8419b366d32ab1de1ebebabfaf5ebab57af5e2a59b2 720 | a4242977eedc9a3b77aebefcf24b4d9b36cde1e5e7ca954b0b172eb4a8d9 721 | b97dfb767dfef9e7569b1afaf8f8e8bdf7ded3902143141c1c6c0aaa162e 722 | 5ca861c38669faf4e99c0800b88597a414360360a94993269a3c79b2cd72 723 | 474ed07e7e7eead7af9f7af4e861513666cc184d9c38d1e5eb9d2d5b367d 724 | f6d967ead8b1a3d5f2eddbb7ab79f3e692a4b0b030cd9d3bd7eca2f3f6ed 725 | db3a75ea942e5fbe2c5f5f5fe5c9934765ca9449b58a6ffffefd356fdebc 726 | 34af77505090dab66dab9e3d7bda0c05d6af5faf0e1d3a387551386bd62c 727 | 55ab56cde246bf7bf7ee6643355a131c1caca953a7aa72e5ca66d36fdebc 728 | a976edda590423d6942d5b569f7cf249aacd49c68c19a3993367a6a90a7c 729 | f9f2e5d5a3470fd5a953c76af992254b3465ca148fefef222ddab56ba7d1 730 | a347db2c1f316284a64e9d9aa1eb74e6cc198b279c9254a54a159d3a754a 731 | 8d1a35d2942953cc46cf3874e89076edda650a13f2e6cdabca952b5bdc74 732 | 3d6ec890219a3973669ad7f5e5975fd6c2850bcd42b2c4c44475ebd64dab 733 | 57af76e8d8fbe1871fcc9a1adcbb774f5dba74d1faf5eb3dfad8090a0ad2 734 | b66ddb5c5653223636567bf6ecd16fbffda60d1b36e8afbffe72d9ba66ce 735 | 9c59050a1450c3860dd5a54b179b43861f3d7a344d4dd71e357dfa748b40 736 | 5892264f9eac51a346393dbfc2850b6bf1e2c566cdff24e95ffffa9766cc 737 | 9891eafbc3c2c2f4f3cf3f9bd5a0484949d1175f7ca1efbefbcee1f57858 738 | 03a16fdfbe66b5941e3a77ee9c2a55aa640a02befbee3bbdfaeaaba6f2f8 739 | f8781d3f7e5c57ae5c517272b2e9dc985a33cb499326d9fd8d4a4df6ecd9 740 | 356fde3cb3757978bcf5e9d347ab56ad4af5d89933678ede7efb6db3e95f 741 | 7cf18566cf9e9deaf2434343f5e38f3f5a3487f9faebaf356edcb8546ba8 742 | 8486866ad9b265164d74bffaea2b7dfdf5d75c6c0220e0008c1070848484 743 | a876eddaeadebdbbcd7e37dc15703cf4d34f3f992ed6ac5dc465c992456b 744 | d7ae350d5d7be4c8117dfdf5d7dabc79b345cd81a0a020b56ad54a9f7efa 745 | a9cd8e16e3e3e355ad5a35ab4fe29c51a54a152d58b0c0ea05a8330187b7 746 | b7b7162e5c68114ec4c6c6aa4e9d3a0eafa78f8f8f162c5860319fbb77ef 747 | aa4183060e759ee6e5e5a5f1e3c7ab65cb9656cbaf5dbba60a152aa4ab6d 748 | b2b7b7b7e6cd9b67d191edc891233565ca94a7f67b6ab480237ffefc9a3b 749 | 77ae2930fcf5d75f3564c8109bcd3ade7cf34d8d1e3ddaac4dfbe3c761e5 750 | ca95d3d4d167e9d2a5b57cf9728b7e107af7eeadc58b173b3c9f4a952a69 751 | d1a2456681cdfdfbf7d5b87163b361ae3d51c58a15b570e142abfb2bbd4e 752 | 9e3ca9f5ebd76bd9b2652e1d01ebe5975fd68a152bac0e2feb6901479e3c 753 | 79b476ed5a8be61ddf7cf38dc68e1debf07c8a152ba6d5ab575b043b1f7e 754 | f8a156ac58e1d43a4d9c3851cd9a35b3989e9090a0f0f070f9fafa6ac992 755 | 257aedb5d7243de81076c284095ab3668d4507dd99336756c3860d3568d0 756 | 20532d85c7252727ab71e3c6fadffffee7f4bec8962d9b56ac58611174de 757 | b973470d1a34d0f1e3c71d9a4f850a152c9adf242424a866cd9a766bf505 758 | 050569eddab516d73173e6ccd1a041831cfe1cf9f3e7d7ba75eb2cb6d167 759 | 9f7da6efbfff9e0b4e002ec5d864401a75edda551b376e34fb6fdbb66d3a 760 | 7cf8b0fef8e30f8d1d3bd62d9d8a3acad6939987d5d0c78f1faf62c58a29 761 | 252545a3468d52ddba75b566cd1aabcd226263633563c60cd5aa55cb6a75 762 | 75e9416d892e5dbaa47bbdb76eddea50fbead4f4ead5cb229490a49e3d7b 763 | 3a15c2242525a96bd7ae164f633365caa41933663834b2464a4a8a060f1e 764 | 6cb3ff0b5f5fdf7477bc969c9c6cf1c47dc3860d4f75b86134afbcf28a66 765 | cd9a253f3f3f2527276bd0a0416ad9b2a5dd3e2b76eedca9860d1bda0cd2 766 | 3265caa4b66ddb3abd2e8181819a366d9a45b8b174e952a7c20de941879d 767 | 8f3f89f5f5f5d5a44993dc121cb8d29e3d7bd4be7d7b87fad57156891225 768 | d4b3674f6ddebc59ab57af56dbb66d9dea54d99603070eb8ad935957f2f2 769 | f2d237df7c63116eecdbb7cfa970437a101af6efdfdf62fa9831639cae81 770 | 63ab73d780800005050569c08001a67063d6ac59aa5ab5aa962c596275f4 771 | b13b77ee68d1a245aa56ad9acd4e45bdbdbdd5b367cf346dc39123475aad 772 | c5f5f1c71f3b1c6e480fc24c6b9fb757af5e76df67ed3ae6d4a9530e8fec 773 | f6d0e5cb97d5ab572f8bda1e43860c51787838270700041c8027080d0d55 774 | e9d2a5cdfe7beeb9e7141c1c6cb5f64146b335ac5ed6ac59d5bd7b77356c 775 | d850292929ead7af9f264f9eecd0d093e7ce9d53fbf6ed6db6336fdebcb9 776 | cd5ef19de1cc859b35152a54509f3e7d2ca66fdab4294d9dabc5c4c468e4 777 | c89116d38b152be6f013cdb8b8384d9a34c96a59ae5cb9f4d65b6fa57bbb 778 | 3ddacefbfefdfbfae28b2ff8a27a903163c62873e6cc4a494951cf9e3d35 779 | 67ce1c87de77ebd62dd3883ed6b468d1c2ead37c7b060f1e6c51e53c3e3e 780 | deea71ee88c993275b8cf853b46851b775aeec4adbb76f57b56ad5b47dfb 781 | 76b72da35cb9721a33668c76eddaa5f6eddb3b3c2a8a2d870f1ff6f8edda 782 | b9736755a952c562ba33fd353d6af9f2e516cd02b367cfee7433873367ce 783 | d86c56d1b66d5b75ebd64d923461c2040d1e3cd8a1919ea2a2a2d4aa552b 784 | ddbd7bd76a79f5ead52d9ae8a4e6fffeefffd4a449138be90f47f5715481 785 | 02056c9e0bead7af6fb37f97e6cd9b5badc9336cd8b0340d55bd65cb166d 786 | dab4c96c5aa64c993469d224797b733b0280800378e2121212141b1b6bf6 787 | 5f5a4efaee12151565b3ec61d5d27ffffbdf5ab0608153f33d78f0a0cd27 788 | bc993367b668279c16e919c6cecbcb4b63c78eb57ac33761c28434cff797 789 | 5f7ed1d1a3472da6376dda54afbffeba43f3f8e1871f74e3c60dab651f7d 790 | f451bab7dba34f4ad7ac59a30b172ef045f5200f9ba54c9c38d1e921552f 791 | 5cb860b3495b6868a8a9134147942f5fde6a53af9f7ffe394dc33e4b0ffa 792 | edb0d61f42bb76ed6c0ec9ec49ae5cb9a2e6cd9bab43870ee90e58ed090d 793 | 0dd5a851a3b464c9125307c6695d5f4f161a1aaa8103075a4cdfb56b9743 794 | 7d17d962adcf8e2a55aad81dbaf57177eedc515c5c9cd5b287ebfccb2fbf 795 | 68dcb8714eaddbc58b176d76dce9ededed54889d23470eabe1797272b2d3 796 | b55f9a3469a2cc99335b2d0b0c0c54be7cf92ca607050569f8f0e116d38f 797 | 1f3faecd9b37a779ff591b71ad7cf9f2aa5dbb36270800041cc0933666cc 798 | 18952c59d2ecbf22458ae8a5975e52dbb66db560c102879efcb88bbd8ebf 799 | bcbcbc74eedcb934777c3677ee5cbb374f4f52f5ead5ad56e93d71e2840e 800 | 1c3890aeedb970e142ab65a955f37d283e3ede66d3a1ca952beba5975e4a 801 | d7677ff422df91cee390f10e1c38e0f48dd3430b162c301b59e3518f8f6e 802 | 604fd7ae5dad4e5fba7469ba3edbe34f67a5077dd838d331f093b67efd7a 803 | d5a85143ad5bb7d6faf5ebdd165abff6da6b5ab76e9d4b02614fd4a95327 804 | ab3503d27b8c6dddbad5ea8824efbfffbe4bd6dbcbcb4b376edcd0800103 805 | d2f4fef9f3e7dbace1e8ccbe6edfbebdd58e64376dda64b376a62d75ebd6 806 | b55b6e6da8e4366dda585d7e7af7dfeeddbbadd644ebd4a913270700041c 807 | 80274a4e4e567474b4366ddaa4be7dfbaa72e5ca6eadf69c1e53a64c4973 808 | 0073f0e0415dbc78d16ad9e3c30066b4eeddbb5b9dbe65cb1697dcfc5853 809 | a54a1587c389efbefbce6653036ba3ed382a7bf6eca680e3c89123dabb77 810 | 2f5f480ff4cd37dfa47928d19b376fda0ce95e7cf14587e651b87061ab37 811 | 3cd1d1d1dabd7b77ba3edb891327ac3e198f8888b07a13e5a9525252b465 812 | cb1675e8d041152a54d0c08103b575ebd674f793f3b8d0d0502d5dba5415 813 | 2a5478aa8ef1cc9933ab5dbb7656cb1c1999c79eb8b838ab7dd6d4ae5ddb 814 | 653585e6cc9993e65a84919191fafdf7dfad96d9ea28d85ae060eb863f2d 815 | 4d2c1f1ffef951f7efdfd7b973e7cca6f9fafada0c8c9c691a636b797ffc 816 | f187c5f44a952a39550b0d0008388027e4efbfff569b366dd255a5d31d6e 817 | ddbae57415f9c71d3a74c8e68df69352ac58319bcd45b66ddb96eef95fba 818 | 74c966f5f5d6ad5b3b348f989818cd9f3fdf6a59fdfaf5d3dc316dcb962d 819 | 4d4d20a8bde199ce9f3faf8d1b37bae57b676b0487c7b56ddbd66af3ade3 820 | c78fa73adca323c1c0f5ebd72da6e7cc99d36a87bf4670f5ea55fde73fff 821 | 514444845e78e10575e9d2454b962cb1e86f24adfcfcfc3463c60c87f79f 822 | 11346ad4c8ea79e0d2a54bba75eb56bae76fada36b1f1f1fd5ab572fddf3 823 | be7fffbecddfe7f47e4773e4c8e1d0fb1b376e6c339448cbef87bdd15b56 824 | af5e6d11dcd5aa55cb6ab395b8b838970c7d6caba3f2060d1a70920040c0 825 | 0118c1bd7bf7f4d1471fe9e6cd9b1eb34edbb76f577c7c7cbae6616be407 826 | 472fe2dcc1dab0b88fdec0b982adf938d3be7ac68c19569f067b7b7b9b3a 827 | b87386979797dab76f2fe9c193f8e5cb97f3c5f340dbb66d4b778860ebc6 828 | 3a2828c8a1f7db3a4e5d358ca9adda49e5ca9533fcfe8b8b8bd32fbffca2 829 | 5ebd7ae995575ed11b6fbca1debd7b6bd1a245164fc19d91376f5e4d9932 830 | c5233aa77685b7df7efb891c632fbffc72bae77df8f0619ba35d65d4b9d1 831 | 5ac7acd28380282dc1dae8d1a3ad767e7afdfa75ab1dbedafa8db037da93 832 | 2bf6df2bafbcc249020001076014b76edd72baa777774a4f276f0fd90a6c 833 | 6cf5c89e11de7cf34dabd3636363ed76baea8c53a74e599d5eb468518787 834 | 2bbc7af5aacdb6cc2d5ab470baf3c12a55aa986a7e3ce9be5f609b2b863f 835 | b6d549adb5f6f28fcb9a35abcda62cb69a9c39cbd6b1fb34debcfcf5d75f 836 | 5abc78b13ec4707d00002000494441543ef9e41355aa5449e5ca9553d7ae 837 | 5d3567ce1ca7038f77de79c7e6ef97d1d8aa45e7ee63cc1501873bcf8d0f 838 | 6bd8a5a662c58a56a7fff9e79f695a9ff3e7cfab6eddbadab2658beedebd 839 | abdbb76f6bddba75aa59b3a6d5c0c4ddfbcfd679b25cb9724f4dc8078080 840 | 037826fcf4d34f2e6fc39d56c78e1d4bf73c6c0d87f724d9ba303c7bf6ac 841 | cb9671e6cc199b65cef4e43f6dda34ab4ff3fdfdfdd5b97367a7d6e96127 842 | 8ef7efdfd77ffef31fbe6c1eca15219bad4e2f1d1926b642850a365f676b 843 | 540967942a55ca66d5faa7a106476aae5dbba6952b576ad0a041aa54a992 844 | 2a55aaa4091326385c23a0458b1686df0661616166a3393dcad6937b67e4 845 | c891c3667f47850b1756ce9c390d7d6e2c5cb8b0cded97d680437a10ccb7 846 | 6edd5acf3fffbc4a962ca98e1d3b5a3d2e73e6cc69b5936e57fd4664ca94 847 | c96667abd9b3675791224538510020e0008c222626265dfd4054ad5a559d 848 | 3b7756e7ce9dd35d4bc215cd653c25ac79c8cfcfcfe6932157b4fb7e743f 849 | dae24c27777ffef9a7d6ae5d6bb5ac6ddbb60e3d9197a442850aa97af5ea 850 | 921eb4a77655df0070cf6fc09364af03e0f4debce4cf9f5f5f7df595cdf2 851 | ecd9b32b53a64c1eb11fa64e9daae9d3a7ab5fbf7e6e5dceb973e7346edc 852 | 38bdf6da6b1a3e7c78aa37f8f5ead553d6ac590d7d8cbbf3180b0a0ad2d7 853 | 5f7f6df738b2d6778491ce8df63aab76450d8aa4a424bbcde48a172f6eb3 854 | 16457af75f962c593476ec58bb219411869406e0f97cd90440c63978f0a0 855 | 6ad4a891a6f7f6eedddbd4dbfebc79f3d2b51eaeb8e14f6f5f02ae66af7d 856 | f39d3b775cb61c7b4fe79c7d7a3865ca14ab235a040505a95dbb769a3a75 857 | 6aaaf368d7ae9dbcbd1f64d5742eead96c0df1ea09df91a14387aa6fdfbe 858 | 699a6f6060a04337263972e4f0889a5f0d1a3490afafafeedebdabafbffe 859 | daed616d6262a2befdf65bad59b346f3e6cd53b162c5acbeeee1d3edad5b 860 | b71af618b7778cbdfffefb6ad2a449da2e567d7d55a85021d36f9dab7e83 861 | dd1170a487bdce665d5183223dfbaf79f3e669be7ef1f1f151a1428552ad 862 | 69f6243b290740c001200d8e1e3d9ae6f73efffcf3921e0c459bde0e423d 863 | adf685bb2fcc5c5135fa217b6189b317d7070e1cd08e1d3bac768edab973 864 | 67cd9c39d3ee4db1bfbfbf5ab56a25e941e778b686270452fb8ed8aa16ef 865 | eae55fb972c563b647a64c99f4d24b2f69fffefd19b2bcf3e7cfab7efdfa 866 | 5ab16285cd9a0ef9f3e77f6a8fb1e0e060b78f1693de1be4277d6eb4770e 867 | b97dfbf6135d7ece9c39d31d20b97bff018044c00164a8b4361f080d0d35 868 | 9df85d591be169626f14095bfd16a485bd79393a92c5a3a64c996235e0c8 869 | 93278f9a376f6e77c8c2468d1a2957ae5c92a8bd81f4ddbc242626babd56 870 | 96a3cdae32d26bafbd96610187f4a09952dbb66db569d32665c992c5a23c 871 | bd4d2c9e347b01c7fdfbf7959c9cfccc1d63ce78f87b6e4d469cfbededbf 872 | a4a424979e4bad317a132d009e818003c84069bd4079b4d32f57d6467856 873 | b6ad2bdbfe67ce9cd966595af6cdb66ddb74e4c811aba35b74efde5d0b17 874 | 2eb47953f07068d8ebd7af33342c52656f8482eeddbb6bd5aa55cfdc3679 875 | ebadb7347dfaf40c5de6850b17347dfa74f5e9d3c7a2cce80187bd262463 876 | c78ed5942953f822da612df47ac8d15158dcf51b3163c60c7df9e597ec24 877 | 009e7f2e62130019e7c68d1b5ab76e9dd6ad5be7d4c81e952b5736fddb13 878 | 472ff1946d9b9650c259f6e6656f1decb175d11f1616a67af5ea592d2b53 879 | a68c69e8cdf9f3e73ff1fe1de0f9ecf52f101010f04c6e9377de79e78984 880 | 0af3e7cfb75a63c6e8433c738ca54f6c6caccdb2b4d41074e5fe0b0c0c64 881 | 07013004020e20035dbf7e5d1d3b7654c78e1db572e54a87df57b3664dd3 882 | bf69a2629dbd8e5333aa06477474749ae6b96ad52a9d3f7fde6a598f1e3d 883 | ac4eefd8b1a3a4074d0be6ce9dcb018054d90be03c6584938ce6e3e3a388 884 | 88880c5f6e6464a44e9e3c69f51c6164f66e909fd563cc55db2f239a6f10 885 | 7000781a1070001e2e2c2cccac433a9aa85897909060f3e9579e3c795cb6 886 | 1c7b4f7baf5dbb96a679262525e9db6fbfb55a56a64c19bdfdf6db66d372 887 | e4c8a1468d1a497a30346c6464240700d275f3626b88e56741444444aaa3 888 | 3bb8c3a54b972ca6193de0b017a23dcbc7982bbea31951d3c8defe73e579 889 | 1400dc898003f0708d1b3736fb9b1a1cb6edddbbd7eaf4b0b0b054871774 890 | 547878b8cdb2f48c62b278f1629b0149cf9e3dcdfe6ed9b2a5e969daac59 891 | b3d8f170c8e1c3876d963932ccebd32a5fbe7c6adebc79862fd7da6ff95f 892 | 7ffdc531f60cbb78f1a2cdb2d2a54bbb7df9274e9cb039920cfb0f805110 893 | 70001e2c303050efbfff7eaa17c57860d7ae5d56a7fbfbfbbb6cf8455b01 894 | c7e5cb976d36337144424282cdb0e2adb7de52993265243de804ae5dbb76 895 | 92a483070f6adfbe7dec783864fffefd367f3f1e0e43fdac1a346890dd11 896 | 24dce1f127e2f1f1f1dab3678fa1b7e3b56bd7ac36bde11873ccefbfffae 897 | fbf7ef5b2d2b55aa94db97ffcf3fffe8c0810356cb8a162d9a211d9d0240 898 | 7a1170001e2c222242c1c1c1161720b06ee7ce9d36cb5c7571f8306878dc 899 | f6eddbd33defefbfff5eb76fdfb65af6d1471f4992aa56adaab0b030490c 900 | 0d0be72426266af7eedd368f6b77f4919023470e356fdedce33b98cc952b 901 | 97060e1c98a1cb2c54a890d9df3b76ec307c27a3f67e0b73e5ca65d6dcd2 902 | 55fcfcfcd4ba75eb0ce9843323028683070f5a2d0b0d0d55f1e2c55db6ac 903 | 3265ca58fd5efef6db6f565f1f1010a0b265cbbafc337b7979292222c2ee 904 | 30d600e00c020ec04365cf9edda26982440d0e7b0e1d3aa4d3a74f5b2d7b 905 | e79d77d23dff12254ad86c07ed8a615a636363f5fdf7df5b2d7bf7dd7715 906 | 1e1eae0e1d3a4892a2a2a2f4dffffe979d0ea7ac59b3c6e64d62952a555c 907 | bebce1c387eb9b6fbed1be7dfb54a142058fde36ad5bb7b6e8efc65d4a96 908 | 2c6951ab6cddba754ff53126997798ed2a3d7bf6d4575f7da5fdfbf79bfa 909 | 2632b25f7ffdd56699ab3e5fd1a245b57af56a1d3b76cc5423d091fd57ab 910 | 562d977fde8e1d3b6adcb871dabf7fbfdab469c38f34807423e0003cd4d8 911 | b163ad76ca46c0615b4a4a8aa64f9f6eb5ecd1a176d3aa6ad5aa56a71f3a 912 | 74485bb76e75c967983973a6d5215fbdbdbdf5e5975faa5ab56a92a479f3 913 | e6d96c2b0dd8f2d34f3fd9ecebe5e1c83cae52a3460d3569d24492141717 914 | 67f3c9b4a7f0f2f2d2cc9933dd52cb20b51bd54b972e69f1e2c54fc531b6 915 | 73e74e9bcd1cdab56be7b2fe90a40741d1c71f7f2c494a4e4eb6d94cd148 916 | ecfdb6bff7de7b2ed97ebd7bf796b7b7b73265caa43ffef8c3acecd8b163 917 | 36cf67ad5ab592bfbfbfcb3e6ba142854c35a7bcbdbd5d52133273e6ccf2 918 | f2f2caf81baaff7f7b3e099932657a229f1920e000e0b056ad5aa9418306 919 | 56cb68a262dfd2a54baddec0152f5e5cafbcf24aba2e5e6c3d5d9a346992 920 | cbd6ffdab56bfaf1c71fad9655ad5a55dedede4a4c4cd4bc79f3d8d970da 921 | bd7bf7f4ef7fffdb6ad95b6fbde5b227ecd9b265d3d8b1634d7f0f1f3edc 922 | 6a70e769828282346fde3ce5ce9ddb6dcbc89b37af3a77ee6c366ddcb871 923 | 86d83e8e9a32658ad5e9850b17d6071f7ce09265f8f8f868c28409a67e21 924 | 264d9a94e691ac3cc9d5ab576d865d458b1655ab56add235fff0f070bdf7 925 | de7b92a423478ee8d0a1430eefbfe0e06053a0e40ae3c78f370dbd3e73e6 926 | cc34f763e5e5e5a56eddba69d7ae5d3a7dfab44e9c38a1d9b367bbf57bfc 927 | 50585898162e5ca893274feacf3fffd4ce9d3bd5ac5933b72fd7cbcb4b9d 928 | 3b77d6ce9d3bf5e79f7feae4c9939a33678e42424238d18180834d007896 929 | 0e1d3a98dd183ceeeeddbb6ca4546ee0468e1c69b5ac57af5e699e6f8306 930 | 0d54b468518be93b77eeb45ba5372dbefdf65b252727db2cffe5975f181a 931 | d6934facde9e7d6afdfefbef6d8ed6306edc38e5ca952b5df3cf92258b66 932 | cf9eadbc79f34a9256ae5ca955ab561966ff152e5c583ffef8a3451f19ae 933 | ba29193972a4e9a64e7a30f2c892254b9eaaefc0dab56b6d76803c60c080 934 | 74d79279186e942b574e9274e0c001cd9831c325fbc79d37a48e9a3a75aa 935 | cdc0ebb3cf3e4b7387b8bebebe1a3d7ab46958e471e3c6597dddce9d3b6d 936 | d6e2e8d9b3a75e7ef9e5746f8b2fbffc526fbdf59624e9f4e9d31a3f7e7c 937 | 9ae7376dda347df1c5172a52a488bcbcbc942d5b36d5ad5b576bd7ae756b 938 | e7c12fbdf492d6af5faf2a55aa284b962cf2f2f252585898264e9c68ea37 939 | cb5d264d9aa47ffdeb5f0a0b0b93979797b266cdaadab56b6bfdfaf5167d 940 | b701041c002429d50ecb5c7d13131010a021438668e4c891a68b0f6b1c6d 941 | a262afb773578c676feb04ea0927d6c58b176bd9b26516d36bd6aca937de 942 | 78c3e9f965cd9a55fdfbf7b7987eedda3575ebd64d2929292e5dfff3e7cf 943 | eb975f7eb1594ee7a28edf34f8fafa66e8fa64cf9edd66879aaeb8d0b6f5 944 | fdca9e3dbbc3f3888b8b53d7ae5dad56830f0909d1c489134dc3103b2b47 945 | 8e1c5abc78b1e9c6e5c2850beadbb7afe18eab52a54a69cd9a357af3cd37 946 | 5d3adfc18307ab4e9d3aa6bfa3a2a2d4b1634725252539351f5b1d32bae2 947 | 78b71570d93b2f3d2e2525451f7ef8a16eddba65f55c376ddab4340769fe 948 | fefe9a3973a6e929f9eddbb7d5bd7b77a79aecd9da4eee3c3766cb96cde1 949 | e61de7cf9fd7a041836cce7fce9c39696a2af2d5575f99fa99d9b3678fd6 950 | af5f6ff3b53d7bf6d4d5ab57ad6ebb2953a69802ccb4842c13274e54a74e 951 | 9d243d1841ecc30f3f4cf3c39b66cd9ad9ec9b247ffefc1a3264885b7e23 952 | fcfcfc3479f26465cd9ad56a79dfbe7dad3e147185c68d1b9b9aff3d2e34 953 | 345443870ee5e200041c002ca5d6d99cab86bcf3f6f656b366cdb47dfb76 954 | 75edda35d5d73bda44e5e1932d6bd2fbf4c5dbdb5bd5ab57b75a161212e2 955 | b22159d3a37ffffe16d55dbdbcbc346dda34a7abad8e1a35ca3472c94349 956 | 4949ead6ad9ba2a2a2dcb2feb6aa081f387040fbf7efe70bfaff7bedb5d7 957 | ec9667447f0a8faa5dbbb6cdb292254ba63bccb1f5bd2b5cb8b0d53e7b6c 958 | 3970e080860d1b66b5ac7af5ea5ab66c9953f37bf89bb86cd932d3efcbcd 959 | 9b37d5b16347c5c6c61ae2583a77ee9cd9f73957ae5c5ab468913efef8e3 960 | 748f02e3e7e7a711234698fdc6dfbb774f9d3a75d2e5cb979d9e5fc58a15 961 | 6dee8382050ba6793db365cba6175f7cd16a59ddba759d0af62f5dbaa45e 962 | bd7a590d805f78e105ad5ebddae9ef44be7cf9347ffe7c534874efde3d75 963 | e9d2457ffdf597c3f32851a284cdbe12d27b6e946c77a4eae5e5a5975e7a 964 | c9e1f92c58b0408b162db2b9ff67ce9ce9f0c8313e3e3e1a3060805ab468 965 | 21e9c183923e7dfad87d4f7474b43efcf043abc3d68687876bcd9a354e6f 966 | af909010cd9e3d5b4d9b36359d473ffae8231d3f7e3ccddbfb61731b5b6c 967 | fd66a6d70b2fbc60f73ad0cfcfcf259d9ba7e533d7a851838b0310700030 968 | 3f010f1932c4ec299b354d9a3451cb962d9d1e17decbcb4b3973e654ad5a 969 | b5347af468edd9b34713274e548102051c7a7f6a3538bcbcbcf4d65b6f69 970 | f4e8d1365ff3c9279fa4f9c45bb264494d9d3a55952a55b2b9fcb163c73a 971 | fc79dc252e2e4ecd9b37d7993367cca6878686eaa79f7e72e8c98abfbfbf 972 | c68e1d6bf1a4e4eeddbbfae0830fdcdaa1dd912347b46ddb368be9d4de78 973 | c0d7d757952b57d6bbefbe6bf7758d1b37569b366d9cfe9e3acbc7c7472d 974 | 5ab4d0f0e1c36dbea677efde2a5fbe7c9ae69f3f7f7e4d9830c15433c2da 975 | f2bffdf65ba79a55cc9e3ddb66b5f0b265cb6addba75eadebd7baa354f8a 976 | 172fae69d3a669f3e6cd2a51a284a4072302b56cd9325d372e1929262646 977 | ad5bb756f5ead5b565cb16b3e3ac7ffffedab973a79a376f9ea69a7b65cb 978 | 96d58a152bcc3a718d898951bb76ed6c36e3b077dc77ecd8d1661f4d5e5e 979 | 5eeadfbf7f9a9e1c172a544853a74eb5b9bfc3c3c33570e040a702ec8d1b 980 | 37ea934f3eb15abba270e1c25ab972a5faf7ef6f7374aa87f2e6cdab1123 981 | 4668d7ae5da6ef406262a23a77ee6cf577d296575e794553a74eb559fefe 982 | fbefab41830669dacf458a14d18811236c3e5997a461c3863915ba0e1830 983 | 401b366cb019a46cdcb851d5ab57b7bbbe6fbdf596d6af5f6f362adb679f 984 | 7da6b367cfa6bafcbd7bf7eac30f3f547c7cbc45596868a87efef9670d1e 985 | 3c58458a14b13b9fe0e0607df1c517dabd7bb729004a4e4ed6c71f7f9cee 986 | e66b8f3f7c785ceedcb9cd9a84b94a6acb7d784cb8437878b8ddf2ecd9b3 987 | 3f15c3260369e5252985cd806735c8f8e1871fcc2e0c73e7ceaddcb9733b 988 | d556f6eeddbb8a8c8c742878c8952b97828383d3558db875ebd66617e045 989 | 8b1635751a181010a0fcf9f33bdc93f79d3b7714191969aa1adaa74f1f8b 990 | 910e5ab468a1ce9d3b2b202040f9f2e573f84221252545d1d1d18a8a8a52 991 | 4a4a8aeeddbb97eacde8a301cca79f7e6a317dfdfaf5a661521d952b572e 992 | cd9f3fdfa2464b5c5c9ca64d9ba6458b165954c3f5f7f757fdfaf5d5a347 993 | 0f952a55caac2c2a2a4aeddbb7b7e879de1d2a55aaa49f7efac9f4f7b56b 994 | d754a142856766f494575f7dd5665057a04001a79a65242424e8e2c58b4a 995 | 4848b0281b3c78b076eedce9f4fa2d5ab4c874f15ca040018743949b376f 996 | eaead5aba627db5f7df595c510a123468c50c58a15e5ededad3c79f22867 997 | ce9c0efd2ea5a4a428323252376edc30fb0e474747db7c4fd3a64d357efc 998 | 789beb1f1f1faf8d1b37eafcf9f3ba74e99262626254a85021152d5a5445 999 | 8b1655f9f2e5cd6eb0ce9c39a38e1d3beacf3ffff4c8e3eac2850b66bfc1 1000 | 4949496ad3a68de946d9cbcb4b5dba74d1c081032db6c9c58b17b561c306 1001 | ad5fbf5e3b77eeb4f95dcc9d3bb7de7cf34d454444588ce074fcf87175ea 1002 | d429d55a07152a54d0a851a3cc7e970a172eec54338747cf4b73e7ce3575 1003 | 4efcf9e79f9b0d0b1c1212e270e784292929faf3cf3fcd3e7bc3860ded9e 1004 | 03df7aeb2dcd9a35cbe64d57525292b66cd9a2d3a74febf2e5cbba7efdba 1005 | f2e7cfaff0f070858787ebd5575f35ab45131515a5ce9d3b6befdebd3697 1006 | 99356b56d3f0dd7e7e7eca972f9fcde604d67e2fae5ebd6aaa313966cc18 1007 | 8ba0a16ad5aa1a3468907c7d7d952f5f3e65cb96cde163f0d6ad5b8a8c8c 1008 | 34354d6adab4a9d5e63cd2831a9383070f56972e5d6cceefca952b5abb76 1009 | adfefaeb2f4546462a6fdebc7afef9e755ba7469952d5bd62264b135da98 1010 | bd60e83ffff98fcdda8fc9c9c9dabe7dbb8e1f3faecb972febdab56b0a0d 1011 | 0d557878b8e937e2d16b8798981875efdeddec5a26ad162d5a647794b42b 1012 | 57aea43958b6a77cf9f25ab972a5ddd7f4ebd74ff3e7cf77f9b2e7cd9b67 1013 | b7664a545494c57e079e25be6c023cb307bfafaf4a972e9deef964ca94c9 1014 | a124df551e6fa212101090e6cf91397366b32701d62efe828383d334ff47 1015 | 0323492eb9294fcb10b9376edc50d3a64dd5bb776f75e9d2c5747390356b 1016 | 56f5ebd74f7dfaf4d1d9b367f5f7df7febce9d3b2a58b0a08a152b66f562 1017 | 75f9f2e51a366c98d576c9eeb063c70e1d3870c0540df8591b1a365bb66c 1018 | 2ef98e3efc9e142b56cce672d2a24489124e37e3901ef49ff0681f0ad6fa 1019 | 53285cb8709abf7779f3e6356b1f9f5aa0ba64c9129d3d7b56fffad7bfac 1020 | de08040606aa7efdfaa92e3b3939598b172fd690214374fbf66dc31c6723 1021 | 478e34ab05909292a219336668e5ca95ead1a3872222224c37d7050b1654 1022 | c78e1dd5b16347ddbb774f57af5ed5b56bd74cbf09b973e756debc79ad9e 1023 | 13e2e2e23467ce1c4d9c38d1a1dfb2f41eff8fafc3a3fd4b142c5830cdf3 1024 | f6f2f2b2a885905aff1cdbb76f57ddba753574e850ab4d387c7c7c54a346 1025 | 0d87aad66fd8b041fdfbf74ff577d8c7c727cd9f312020c0ece9bbb55a2d 1026 | d9b3674ff3fc73e4c861364f7bdfd1e4e4640d1d3a54870e1dd2a04183ac 1027 | d676c9972f5faac33cc7c7c7eb8b2fbed082050b9c5edffdfbf7ab6eddba 1028 | 1a3c78b0d5da43dededeaa5cb9b243c3b16fdfbe5dfdfaf54bf388298fdb 1029 | b46993dde5daebcf2a3d8e1e3daaab57afdaec8be4ce9d3bdabc79b35b96 1030 | bd79f366bb0187bb3e3360143451010c262d37f94f8b9b376fa6799b8d1c 1031 | 3952952b57d68a152bcc7aa7f7f1f1d173cf3da76ad5aaa97efdfa2a57ae 1032 | 9cd90d6f4a4a8a76eddaa5060d1aa87bf7ee19166e3c74e4c8115340f4fd 1033 | f7dff305805becdfbf5f0d1a3450e7ce9d9d6e56929898a8b56bd7aa4e9d 1034 | 3afae4934f0c156efcfcf3cffaf6db6fad965dbe7c5983060d52c58a1535 1035 | 75ea548b1bb287352a5e7df555d5af5f5ff5ebd7d7ebafbf6e112c444747 1036 | 6bf2e4c9aa58b1a2468d1af5ccfe869f3b774eeddbb75793264db467cf1e 1037 | a73a674e4949d1f6eddbd5a2450bb56fdf3ec37f873de5587df3cd37356c 1038 | d830a786c34d4949d1a64d9b54ab56ad34851b0f5dba74495dbb7655bd7a 1039 | f5f4ebafbfda1de9cb9adf7fff5d1d3a7450f3e6cd5d166e48d29c39736c 1040 | d6a83c73e68cdd51e9d2233e3e5e03060cb0da41704a4a8a860f1f9ea6fe 1041 | 751cf1fdf7dfdb6cde76fefc79bb4d948167014d5400781c5b4d54c68f1f 1042 | 9faea1e41eca9a35abaa55aba6dab56bab68d1a2ca93278fa969527474b4 1043 | ae5dbba60b172e68f3e6cddab871a3db3a124d4dbe7cf9b46bd72ef9fbfb 1044 | 6be9d2a5666da801772a52a4886ad6aca9ca952bab4081020a090951ae5c 1045 | b9949292a2d8d858454646eae0c183fadffffea7356bd6983589f17453a7 1046 | 4e958f8f8f6edfbeadcf3fffdc6ab3255b0a172eacb7df7e5b952a5552fe 1047 | fcf94db5d4828282141f1fafe8e868454747ebead5abdabd7bb77efbed37 1048 | 1d3b76cce5232d3d0df2e4c9a31a356aa85ab56a2a54a890f2e4c9a3e0e0 1049 | 60797b7b2b2e2e4ed7af5fd7a14387b47fff7ead59b346972e5d62a33dbc 1050 | 78f7f252d9b26555bd7a75bdf1c61ba66d9723470eddbf7f5f3131313a7d 1051 | fab476ecd8a1952b57eaf4e9d32e5f875cb97299f65f585898691d7c7d7d 1052 | 75fbf66dddb87143870f1fd6810307b476ed5a97861a8ff3f7f757cf9e3d 1053 | d5a041038587872b3232529b376fd6975f7ea9b8b838b7ee8b975e7a499f 1054 | 7df699ca962dab4c9932e9f8f1e31a3f7ebc4b9adfd8e3e7e7a71e3d7aa8 1055 | 51a3462a5ab4a8222323b575eb560d1f3edc50213340c001e099d0af5f3f 1056 | f5eedddb627a9f3e7dccfa4d71f505a3248fba11193d7ab4dab56b2749aa 1057 | 53a78e0e1d3ac4c18127c6dbdbdbe9a7b6cf0a1f1f1fa7877a85317e87f9 1058 | 8e3ab7ffbcbcbc9ef83a3ca9e3e7492dfb497e66c013d10707008f63ab23 1059 | badf7fffdd6dcbf4b48b8342850aa955ab56921eb45926dcc09346b8611b 1060 | e1c6d3f93bcc77d4f9fdf7a4f7e1935cfe935a36df1bc01c7d7000f038d6 1061 | 028ee8e8688f1d95c11d3ef9e413d3080e93264de2a0000000005241c001 1062 | c0e3580b387efbedb767e6f3878787ab69d3a692a403070e68fbf6ed1c14 1063 | 000000402a68a202c0e3581b7ad3a82388f8f9f9a944891292a453a74e99 1064 | 8de062cba041834cc32e8e183182030200000070000107800c933f7f7eb5 1065 | 6ad54a050b16d4eeddbbb56edd3addba75cbec350101012a5dbab4d9b4e3 1066 | c78f6bf7eedd86fbbcb56ad5d2f8f1e3151c1c2ce9ff0db3b77fff7e9bef 1067 | a95ab5aade7df75d49d2860d1bb473e74e0e1c000000c0018ca2022043bc 1068 | f2ca2b5ab06081b267cf6e9a76e4c811d5ad5bd7ac83be575f7d552b56ac 1069 | 307b6fd7ae5db572e54a437dded0d050edd8b143993367369b7ef9f265bd 1070 | f1c61b4a4c4cb4788fbfbfbfb66eddaab0b030252424a8468d1a3a73e60c 1071 | 070f000000e000fae000e0763e3e3efafaebafcdc20d497af1c517d5a143 1072 | 07b3696fbef9a6d9df2b56ac305cb82149efbefbae45b8213da8c552bc78 1073 | 71abefe9d7af9fc2c2c2243d1822967003000000701c010700b70b0b0bd3 1074 | 73cf3d67b5ac71e3c6a67f67ce9c59efbfffbee9ef6bd7ae69c0800186fc 1075 | cc850a1572eaf5cd9b3757f7eedd25493b76ecd0cc993339700000000027 1076 | 10700070bb7cf9f2d92c2b57ae9c4a972e2d6f6f6ff5e9d34721212192a4 1077 | 7ffef947eddbb7d7cd9b370df999fffaeb2f9b6557af5efd7f3fc2dedeea 1078 | ddbbb7264c982049ba70e182ba76edaae4e4640e1c000000c00974320ac0 1079 | edec35b5f0f1f1d17ffffb5f5dba7449cf3fffbc24293131511d3b76d4c1 1080 | 83070dfb99f7eeddab9494147979795994f5e8d1437bf6ec518912251411 1081 | 11616a9672fdfa75b56fdf5e376edce0a0010000009c4427a30032c4a64d 1082 | 9b54aa54a9545f77e9d225f5e8d1437bf7ee35fc671e3a74a8ba74e9e2d0 1083 | 6bcf9c39a3366ddad8adf901000000c0361f4943d90c00dc6defdebd6adc 1084 | b8b1020303ad962726266ac99225ead4a993ce9e3dfb547ce61d3b762867 1085 | ce9c7ae9a597e4ed6dbd45e0bd7bf7346dda34f5ecd9535151511c280000 1086 | 00401a5183034086090a0a52e7ce9d55b66c59152a544877eedcd1df7fff 1087 | ad43870e69f1e2c5ba7efdfa53f9b94b952aa5a64d9baa78f1e20a0b0b53 1088 | 6c6cac2e5dbaa46ddbb669fdfaf58a8e8ee6e000000000d2898003000000 1089 | 0000181ea3a8000000000000c323e00000000000008647c0010000000000 1090 | 0c8f80030000000000181e01070000000000303c020e0000000000607804 1091 | 1c0000000000c0f00838000000000080e11170000000000000c323e00000 1092 | 000000008647c00100000000000c8f80030000000000181e010700000000 1093 | 00303c020e00000000006078041c0000000000c0f00838000000000080e1 1094 | 1170000000000000c323e00000000000008647c00100000000000c8f8003 1095 | 0000000000181e01070000000000303c020e00000000006078041c000000 1096 | 0000c0f00838000000000080e11170000000000000c323e0000000000000 1097 | 8647c00100000000000c8f80030000000000181e01070000000000303c02 1098 | 0e00000000006078041c0000000000c0f00838000000000080e111700000 1099 | 00000000c323e00000000000008647c00100000000000c8f800300000000 1100 | 00181e01070000000000303c020e00000000006078041c0000000000c0f0 1101 | 0838000000000080e11170000000000000c323e00000000000008647c001 1102 | 00000000000c8f80030000000000181e01070000000000303c020e000000 1103 | 00006078041c0000000000c0f00838000000000080e11170000000000000 1104 | c323e00000000000008647c00100000000000c8f80030000000000181e01 1105 | 070000000000303c020e00000000006078041c0000000000c0f008380000 1106 | 00000080e11170000000000000c323e00000000000008647c00100000000 1107 | 000c8f8003c0ffd78e1d900000000008faffba1d81ce100000604f700000 1108 | 00007b8203000000d8131c000000c09ee000000000f60407000000b02738 1109 | 000000803dc101000000ec090e000000604f1d1f119a000006d149444154 1110 | 70000000007b8203000000d8131c000000c09ee000000000f60407000000 1111 | b02738000000803dc101000000ec090e000000604f70000000007b820300 1112 | 0000d8131c000000c09ee000000000f60407000000b02738000000803dc1 1113 | 01000000ec090e000000604f70000000007b8203000000d8131c000000c0 1114 | 9ee000000000f60407000000b02738000000803dc101000000ec090e0000 1115 | 00604f70000000007b8203000000d8131c000000c09ee000000000f60407 1116 | 000000b02738000000803dc101000000ec090e000000604f70000000007b 1117 | 8203000000d8131c000000c09ee000000000f60407000000b02738000000 1118 | 803dc101000000ec090e000000604f70000000007b8203000000d8131c00 1119 | 0000c09ee000000000f60407000000b02738000000803dc101000000ec09 1120 | 0e000000604f70000000007b8203000000d8131c000000c09ee000000000 1121 | f60407000000b02738000000803dc101000000ec090e000000604f700000 1122 | 00007b8203000000d8131c000000c09ee000000000f60407000000b02738 1123 | 000000803dc101000000ec090e000000604f70000000007b8203000000d8 1124 | 131c000000c09ee000000000f60407000000b02738000000803dc1010000 1125 | 00ec090e000000604f70000000007b8203000000d8131c000000c09ee000 1126 | 000000f60407000000b02738000000803dc101000000ec090e000000604f 1127 | 70000000007b8203000000d8131c000000c09ee000000000f60407000000 1128 | b02738000000803dc101000000ec090e000000604f70000000007b820300 1129 | 0000d8131c000000c09ee000000000f60407000000b02738000000803dc1 1130 | 01000000ec090e000000604f70000000007b8203000000d8131c000000c0 1131 | 9ee000000000f60407000000b02738000000803dc101000000ec090e0000 1132 | 00604f70000000007b8203000000d8131c000000c09ee000000000f60407 1133 | 000000b02738000000803dc101000000ec090e000000604f70000000007b 1134 | 8203000000d8131c000000c09ee000000000f60407000000b02738000000 1135 | 803dc101000000ec090e000000604f70000000007b8203000000d8131c00 1136 | 0000c09ee000000000f60407000000b02738000000803dc101000000ec09 1137 | 0e000000604f70000000007b8203000000d8131c000000c09ee000000000 1138 | f60407000000b02738000000803dc101000000ec090e000000604f700000 1139 | 00007b8203000000d8131c000000c09ee000000000f60407000000b02738 1140 | 000000803dc101000000ec090e000000604f70000000007b8203000000d8 1141 | 131c000000c09ee000000000f60407000000b02738000000803dc1010000 1142 | 00ec090e000000604f70000000007b8203000000d8131c000000c09ee000 1143 | 000000f60407000000b02738000000803dc101000000ec090e000000604f 1144 | 70000000007b8203000000d8131c000000c09ee000000000f60407000000 1145 | b02738000000803dc101000000ec090e000000604f70000000007b820300 1146 | 0000d8131c000000c09ee000000000f60407000000b02738000000803dc1 1147 | 01000000ec090e000000604f70000000007b8203000000d8131c000000c0 1148 | 9ee000000000f60407000000b02738000000803dc101000000ec090e0000 1149 | 00604f70000000007b8203000000d8131c000000c09ee000000000f60407 1150 | 000000b02738000000803dc101000000ec090e000000604f70000000007b 1151 | 8203000000d8131c000000c09ee000000000f60407000000b02738000000 1152 | 803dc101000000ec090e000000604f70000000007b8203000000d8131c00 1153 | 0000c09ee000000000f60407000000b02738000000803dc101000000ec09 1154 | 0e000000604f70000000007b8203000000d8131c000000c09ee000000000 1155 | f60407000000b02738000000803dc101000000ec090e000000604f700000 1156 | 00007b8203000000d8131c000000c09ee000000000f60407000000b02738 1157 | 000000803dc101000000ec090e000000604f70000000007b8203000000d8 1158 | 131c000000c09ee000000000f60407000000b02738000000803dc1010000 1159 | 00ec090e000000604f70000000007b8203000000d8131c000000c09ee000 1160 | 000000f60407000000b02738000000803dc101000000ec090e000000604f 1161 | 70000000007b8203000000d8131c000000c09ee000000000f60407000000 1162 | b02738000000803dc101000000ec090e000000604f70000000007b820300 1163 | 0000d8131c000000c09ee000000000f60407000000b02738000000803dc1 1164 | 01000000ec090e000000604f70000000007b8203000000d8131c000000c0 1165 | 9ee000000000f60407000000b02738000000803dc101000000ec090e0000 1166 | 00604f70000000007b8203000000d8131c000000c09ee000000000f60407 1167 | 000000b02738000000803dc101000000ec090e000000604f70000000007b 1168 | 01d8970ed570eeaed50000000049454e44ae42608254434d500000000200 1169 | 0003305450453200000012000003416e617220536f667477617265204c4c 1170 | 430000000000000000000000000000000000000000000000000000000000 1171 | 000000000000000000000000000000000000000000000000000000000000 1172 | 000000000000000000000000000000000000000000000000000000000000 1173 | 000000000000000000000000000000000000000000000000000000000000 1174 | 000000000000000000000000000000000000000000000000000000000000 1175 | 000000000000000000000000000000000000000000000000000000000000 1176 | 000000000000000000000000000000000000000000000000000000000000 1177 | 000000000000000000000000000000000000000000000000000000000000 1178 | 000000000000000000000000000000000000000000000000000000000000 1179 | 000000000000000000000000000000000000000000000000000000000000 1180 | 000000000000000000000000000000000000000000000000000000000000 1181 | 000000000000000000000000000000000000000000000000000000000000 1182 | 000000000000000000000000000000000000000000000000000000000000 1183 | 000000000000000000000000000000000000000000000000000000000000 1184 | 000000000000000000000000000000000000000000000000000000000000 1185 | 000000000000000000000000000000000000000000000000000000000000 1186 | 000000000000000000000000000000000000000000000000000000000000 1187 | 000000000000000000000000000000000000000000000000000000000000 1188 | 000000000000000000000000000000000000000000000000000000000000 1189 | 000000000000000000000000000000000000000000000000000000000000 1190 | 000000000000000000000000000000000000000000000000000000000000 1191 | 000000000000000000000000000000000000000000000000000000000000 1192 | 000000000000000000000000000000000000000000000000000000000000 1193 | 000000000000000000000000000000000000000000000000000000000000 1194 | 000000000000000000000000000000000000000000000000000000000000 1195 | 000000000000000000000000000000000000000000000000000000000000 1196 | 000000000000000000000000000000000000000000000000000000000000 1197 | 000000000000000000000000000000000000000000000000000000000000 1198 | 000000000000000000000000000000000000000000000000000000000000 1199 | 000000000000000000000000000000000000000000000000000000000000 1200 | 000000000000000000000000000000000000000000000000000000000000 1201 | 000000000000000000000000000000000000000000000000000000000000 1202 | 000000000000000000000000000000000000000000000000000000000000 1203 | 000000000000000000000000000000000000000000000000000000000000 1204 | 0000000000ffe318c4000b2361f800014d4d427d5fbfd4f39ce7a64177e8 1205 | 4a1ce7febd3ffffce465e46a11ba13c4ce739c60062fffec41518780c075 1206 | 84ee757b793647ea8bb3ddfe6457f4dd3affe318c40e0a9b621800008d4d 1207 | afffffd75d7ecae7643cdb215412828a239fad056a3d036ca148a4728a1f 1208 | ffdf4db5ebfba26d4ffffffffb7dfcc7abbc4bcce62d1100124ebbae0dff 1209 | e318c41e08f3662008008d4ce24e959587ae1fdeb3baf45fca93553eb95a 1210 | 94f5ffffff5d5bd28fb29d8fb624414053e398eaa6d81a883c38d2d5027f 1211 | fe5ffd96477eba9fffffffffe318c43509cb62200801474df95cafea6473 1212 | 20b2a071da250a169d67353a64af371d0084aae56753eb51cf3add7a7fb8 1213 | fffffffaccf7fd12a332040ec1453953ba59c5f7b0b064ffe318c448094b 1214 | 66241000474804551f97e7f167e6b2fcbfff5fffffe967f5bb6525fd4f21 1215 | 2a62d8505c50776121c7670302360a612a1ffd6a9feff45fa7e9fffffffb 1216 | 7eef499d98ffe318c45d08cb621c00004d4d6aea3d4a7651c50b50cd3b87 1217 | 97e603e1a1c0cf1c997a1fff6b7eff4ff5ffa7d2c99694dbfffffbb66f93 1218 | b218ce6d6851408107535453c6c60ead6cffe318c474099b5e2008004749 1219 | adc616993af51dbebffffff5ca9ffffffffeeb4f3a154e256c6b9ca531ca 1220 | 3145158c1984863217465a3e00043101bffbb7a2153fe9ff54ee9a6befff 1221 | e318c48809e3622008014d4dfffff64bbce4a68a880851d5c6086769bf22 1222 | b240d3242342b2a0e858e399d5fff97cebe7be104f4078493429774b3a6c 1223 | 1ef79ffdfffff6eff6bc7bffe318c49b0a9b661c08009330b66bf78ea40f 1224 | e943184cbd06420f98480fdc8511f2a706ffe7cfffefb94bffd52fbbff7f 1225 | dfabd8c6ae3bb1d852d0dd4350b7902cf456c8ab8a9001ffe318c4ab09b3 1226 | 6a2408008d4e4f4c8c3d5294fa16612a01bfad77fad93efa2ebf5d5356aa 1227 | fffffe7e5c94bdddae33231ce96087193380aaed5580a0aca1889ed512e5 1228 | aa364e663fffe318c4bf0b236e1c1000934cd149063e69a32919cc200118 1229 | f159c59ffe5ffc8b25ee7bb739cbb573929af7bfdecfa60ccd9b504cda87 1230 | 18569b11b4a22150d3e807a57de6aa41c9ffe318c4cd0c83621400004d10 1231 | 12cc89d7f3f6225cafcb97cbfec3fafb0f19a55f502cd924ad8384aafa8b 1232 | 60f32448cb0faf03a2c848c85411287594b503b29fcfc995e165f36ff5ff 1233 | e318c4d60b8b622010005349affe5ffffa94b3ca6efd6d49bc5a4b399204 1234 | 063ae6ec805313409aa84bacd13942c490203042a89044660a00b9fe3cbd 1235 | fcbfffcbdce445d6f3ff9effe318c4e20a6b621c10008d4d7e7ab3ff14ec 1236 | 7f75949d49fa923d66f1307b671e4f0155595c96483e2f95170751a4408a 1237 | 84c414da17bcbd73813c3ce709feca87839f1a996e65efffe318c4f30ec3 1238 | 5e100800532cf9fec2eea519316deb5ad49eb8510c2c8c9923844113e4a8 1239 | c422e2c4658c01c4a85720a7ac4d310604c7ff315a7f8320b18b66ee64f2 1240 | 3afe72fe7fffe318c4f30db36a1c10005348f3d4adf389dc9a932880b944 1241 | 2a878d38e96d8a0424407120408da21422048a035a7646cd1625892a0547 1242 | f244f2a2e7a6e82cc8e48f3330338c8907ffe318c4f70d5b6a1c10005348 1243 | 7eab95ffa6f521972f0b0c74ed1f8e68e167cc09056365ca8ac7232b407a 1244 | b5751d2b949c2e96cc44b32108d5a76a0793fbd06673445d2e7ed59176ff 1245 | e318c4fc0d236220180059494622f47ffff2ec6bdff4bec6f3607f54d408 1246 | 575c4c48449a5d0a264e235174497442ea28d0f449a90d0947e8d0e17ac6 1247 | 40ce7ae475fffe5d9cacc3ffe318c4ff0e33621c100053494d6edf559669 1248 | 94cd315d58e3cc9d2f121135012f58d82ab6e708476db03c0dcece9dba62 1249 | 0a6a2aaa00c5c2c7cdc9851e877f05039c3f24ce5c66efffe318c4ff0ea3 1250 | 5e1c180053495fe7e176ab16d7e395eae358a912a619192e66f83a1319b3 1251 | e7d19d9bfd917995d5201755bc9d1b0742d2f755fede47f2bb58afa22958 1252 | ca8f2b833bffe318c4ff10136a1c18005948a1d9a8311102c523b9d4c577 1253 | 629e88142196c55b2cdb3b17f5d7c72ffbaa7d5da72eb78cd741947e2f48 1254 | 9d736c283e98a454dbd43cd9a0b60d2634ffe318c4f90d6b621c10005349 1255 | 75ee1f9fefd7cfed32ffbf1ffffffefffbf2b61baa664bcd7fd7cedcc9d0 1256 | 9766d12cc29275ee90879a3caa14715d2949ffaebfbb04791613b15eb9ff 1257 | e318c4fe0d2b6a2418005964d3fffcbfdaacba8e3550c6a50f1b425fa491 1258 | 88c4d85c8ca1429b24334e852322122325c05b645486952949e9d9c11b9c 1259 | e799d70d9cd99201959545ffe318c4ff0f8b6a181800594844fa7ffefb38 1260 | ff5539ca979ad3f2dc4d0a183dd534cf0ae19d864d983afb138a8509922a 1261 | 9de9882a027fec5e79b23275f2c8425320949991ab5095ffe318c4fb1303 1262 | 6a08000093108577c8f23ffff2fb4fcf7518abdeb5356b4d44926e5678b9 1263 | 64a998aee992bc4aaa56b8b0b940d4ed9fffffffffcecfe77e4684c25326 1264 | 1c984d7f09ffe318c4ea0af362200800534b3091d87342351108d7f34230 1265 | 908986cecfffff7ca796ae7168d579cac3964540c9849489c91b252444cc 1266 | fa88a3c25894aa4c414d45332e39382e32ffe318c4f90d536a2818005348 1267 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1268 | aaaaaaaaaaaaaaaaaaaa4c414d45332e39382e32aaaaaaaaaaaaaaaaaaff 1269 | e318c4fe0ddb5e2418005348aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1270 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1271 | aaaaaaaaaaaaaaaaaaaaaaffe318c4ff0eab5e101000532caaaaaaaaaaaa 1272 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1273 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaffe318c4ff10cb 1274 | 65dc00004cbcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1275 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1276 | aaaaaaaaaaffe318c4f60000034800000000aaaaaaaaaaaaaaaaaaaaaaaa 1277 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 1278 | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa54414732205365636f6e647320 1279 | 6f662053696c656e636500000000000000000000416e617220536f667477 1280 | 617265204c4c4300000000000000000000000000426c616e6b2041756469 1281 | 6f0000000000000000000000000000000000000000000000000000000000 1282 | 000000000000000000000000000000000000000000000000ff 1283 | """ 1284 | 1285 | xxdDump = xxdDump.replace("\n", "") 1286 | return binascii.unhexlify(xxdDump) --------------------------------------------------------------------------------