From 6cd4f05f9c84e5199da3f4e24105e1d2d70d5ae5 Mon Sep 17 00:00:00 2001 From: Zengyi Qin Date: Thu, 4 Jan 2024 09:36:03 -0500 Subject: [PATCH 01/12] Update README.md --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index df618b7..caaa115 100644 --- a/README.md +++ b/README.md @@ -70,13 +70,10 @@ Please see [`demo_part1.ipynb`](demo_part1.ipynb) for an example usage of how Op **2. Cross-Lingual Voice Cloning.** Please see [`demo_part2.ipynb`](demo_part2.ipynb) for an example for languages seen or unseen in the MSML training set. -**3. Gradio Demo.** -Launch a local gradio demo with [`python -m openvoice_app --share`](openvoice_app.py). - -**4. Advanced Usage.** +**3. Advanced Usage.** The base speaker model can be replaced with any model (in any language and style) that the user prefer. Please use the `se_extractor.get_se` function as demonstrated in the demo to extract the tone color embedding for the new base speaker. -**5. Tips to Generate Natural Speech.** +**4. Tips to Generate Natural Speech.** There are many single or multi-speaker TTS methods that can generate natural speech, and are readily available. By simply replacing the base speaker model with the model you prefer, you can push the speech naturalness to a level you desire. ## Roadmap From 9014a14a9136b5cfe38de3385bf0722b5c0ea666 Mon Sep 17 00:00:00 2001 From: Zengyi Qin Date: Thu, 4 Jan 2024 09:36:50 -0500 Subject: [PATCH 02/12] Delete openvoice_app.py --- openvoice_app.py | 307 ----------------------------------------------- 1 file changed, 307 deletions(-) delete mode 100644 openvoice_app.py diff --git a/openvoice_app.py b/openvoice_app.py deleted file mode 100644 index 3922341..0000000 --- a/openvoice_app.py +++ /dev/null @@ -1,307 +0,0 @@ -import os -import torch -import argparse -import gradio as gr -from zipfile import ZipFile -import langid -import se_extractor -from api import BaseSpeakerTTS, ToneColorConverter - -parser = argparse.ArgumentParser() -parser.add_argument("--share", action='store_true', default=False, help="make link public") -args = parser.parse_args() - -en_ckpt_base = 'checkpoints/base_speakers/EN' -zh_ckpt_base = 'checkpoints/base_speakers/ZH' -ckpt_converter = 'checkpoints/converter' -device = 'cuda' if torch.cuda.is_available() else 'cpu' -output_dir = 'outputs' -os.makedirs(output_dir, exist_ok=True) - -# load models -en_base_speaker_tts = BaseSpeakerTTS(f'{en_ckpt_base}/config.json', device=device) -en_base_speaker_tts.load_ckpt(f'{en_ckpt_base}/checkpoint.pth') -zh_base_speaker_tts = BaseSpeakerTTS(f'{zh_ckpt_base}/config.json', device=device) -zh_base_speaker_tts.load_ckpt(f'{zh_ckpt_base}/checkpoint.pth') -tone_color_converter = ToneColorConverter(f'{ckpt_converter}/config.json', device=device) -tone_color_converter.load_ckpt(f'{ckpt_converter}/checkpoint.pth') - -# load speaker embeddings -en_source_default_se = torch.load(f'{en_ckpt_base}/en_default_se.pth').to(device) -en_source_style_se = torch.load(f'{en_ckpt_base}/en_style_se.pth').to(device) -zh_source_se = torch.load(f'{zh_ckpt_base}/zh_default_se.pth').to(device) - -# This online demo mainly supports English and Chinese -supported_languages = ['zh', 'en'] - -def predict(prompt, style, audio_file_pth, mic_file_path, use_mic, agree): - # initialize a empty info - text_hint = '' - # agree with the terms - if agree == False: - text_hint += '[ERROR] Please accept the Terms & Condition!\n' - gr.Warning("Please accept the Terms & Condition!") - return ( - text_hint, - None, - None, - ) - - # first detect the input language - language_predicted = langid.classify(prompt)[0].strip() - print(f"Detected language:{language_predicted}") - - if language_predicted not in supported_languages: - text_hint += f"[ERROR] The detected language {language_predicted} for your input text is not in our Supported Languages: {supported_languages}\n" - gr.Warning( - f"The detected language {language_predicted} for your input text is not in our Supported Languages: {supported_languages}" - ) - - return ( - text_hint, - None, - None, - ) - - if language_predicted == "zh": - tts_model = zh_base_speaker_tts - source_se = zh_source_se - language = 'Chinese' - if style not in ['default']: - text_hint += f"[ERROR] The style {style} is not supported for Chinese, which should be in ['default']\n" - gr.Warning(f"The style {style} is not supported for Chinese, which should be in ['default']") - return ( - text_hint, - None, - None, - ) - - else: - tts_model = en_base_speaker_tts - if style == 'default': - source_se = en_source_default_se - else: - source_se = en_source_style_se - language = 'English' - if style not in ['default', 'whispering', 'shouting', 'excited', 'cheerful', 'terrified', 'angry', 'sad', 'friendly']: - text_hint += f"[ERROR] The style {style} is not supported for English, which should be in ['default', 'whispering', 'shouting', 'excited', 'cheerful', 'terrified', 'angry', 'sad', 'friendly']\n" - gr.Warning(f"The style {style} is not supported for English, which should be in ['default', 'whispering', 'shouting', 'excited', 'cheerful', 'terrified', 'angry', 'sad', 'friendly']") - return ( - text_hint, - None, - None, - ) - - if use_mic == True: - if mic_file_path is not None: - speaker_wav = mic_file_path - else: - text_hint += f"[ERROR] Please record your voice with Microphone, or uncheck Use Microphone to use reference audios\n" - gr.Warning( - "Please record your voice with Microphone, or uncheck Use Microphone to use reference audios" - ) - return ( - text_hint, - None, - None, - ) - - else: - speaker_wav = audio_file_pth - - if len(prompt) < 2: - text_hint += f"[ERROR] Please give a longer prompt text \n" - gr.Warning("Please give a longer prompt text") - return ( - text_hint, - None, - None, - ) - if len(prompt) > 200: - text_hint += f"[ERROR] Text length limited to 200 characters for this demo, please try shorter text. You can clone our open-source repo and try for your usage \n" - gr.Warning( - "Text length limited to 200 characters for this demo, please try shorter text. You can clone our open-source repo for your usage" - ) - return ( - text_hint, - None, - None, - ) - - # note diffusion_conditioning not used on hifigan (default mode), it will be empty but need to pass it to model.inference - try: - target_se, audio_name = se_extractor.get_se(speaker_wav, tone_color_converter, target_dir='processed', vad=True) - except Exception as e: - text_hint += f"[ERROR] Get target tone color error {str(e)} \n" - gr.Warning( - "[ERROR] Get target tone color error {str(e)} \n" - ) - return ( - text_hint, - None, - None, - ) - - src_path = f'{output_dir}/tmp.wav' - tts_model.tts(prompt, src_path, speaker=style, language=language) - - save_path = f'{output_dir}/output.wav' - # Run the tone color converter - encode_message = "@MyShell" - tone_color_converter.convert( - audio_src_path=src_path, - src_se=source_se, - tgt_se=target_se, - output_path=save_path, - message=encode_message) - - text_hint += f'''Get response successfully \n''' - - return ( - text_hint, - save_path, - speaker_wav, - ) - - - -title = "MyShell OpenVoice" - -description = """ -We introduce OpenVoice, a versatile instant voice cloning approach that requires only a short audio clip from the reference speaker to replicate their voice and generate speech in multiple languages. OpenVoice enables granular control over voice styles, including emotion, accent, rhythm, pauses, and intonation, in addition to replicating the tone color of the reference speaker. OpenVoice also achieves zero-shot cross-lingual voice cloning for languages not included in the massive-speaker training set. -""" - -markdown_table = """ -
- -| | | | -| :-----------: | :-----------: | :-----------: | -| **OpenSource Repo** | **Project Page** | **Join the Community** | -|
| [OpenVoice](https://research.myshell.ai/open-voice) | [![Discord](https://img.shields.io/discord/1122227993805336617?color=%239B59B6&label=%20Discord%20)](https://discord.gg/myshell) | - -
-""" - -markdown_table_v2 = """ -
- -| | | | | -| :-----------: | :-----------: | :-----------: | :-----------: | -| **OpenSource Repo** |
| **Project Page** | [OpenVoice](https://research.myshell.ai/open-voice) | - -| | | -| :-----------: | :-----------: | -**Join the Community** | [![Discord](https://img.shields.io/discord/1122227993805336617?color=%239B59B6&label=%20Discord%20)](https://discord.gg/myshell) | - -
-""" -content = """ -
- For multi-lingual & cross-lingual examples, please refer to this jupyter notebook. - This online demo mainly supports English. The default style also supports Chinese. But OpenVoice can adapt to any other language as long as a base speaker is provided. -
-""" -wrapped_markdown_content = f"
{content}
" - - -examples = [ - [ - "今天天气真好,我们一起出去吃饭吧。", - 'default', - "resources/demo_speaker0.mp3", - None, - False, - True, - ],[ - "This audio is generated by open voice with a half-performance model.", - 'whispering', - "resources/demo_speaker1.mp3", - None, - False, - True, - ], - [ - "He hoped there would be stew for dinner, turnips and carrots and bruised potatoes and fat mutton pieces to be ladled out in thick, peppered, flour-fattened sauce.", - 'sad', - "resources/demo_speaker2.mp3", - None, - False, - True, - ], -] - -with gr.Blocks(analytics_enabled=False) as demo: - - with gr.Row(): - with gr.Column(): - with gr.Row(): - gr.Markdown( - """ - ## - """ - ) - with gr.Row(): - gr.Markdown(markdown_table_v2) - with gr.Row(): - gr.Markdown(description) - with gr.Column(): - gr.Video('https://github.com/myshell-ai/OpenVoice/assets/40556743/3cba936f-82bf-476c-9e52-09f0f417bb2f', autoplay=True) - - with gr.Row(): - gr.HTML(wrapped_markdown_content) - - with gr.Row(): - with gr.Column(): - input_text_gr = gr.Textbox( - label="Text Prompt", - info="One or two sentences at a time is better. Up to 200 text characters.", - value="He hoped there would be stew for dinner, turnips and carrots and bruised potatoes and fat mutton pieces to be ladled out in thick, peppered, flour-fattened sauce.", - ) - style_gr = gr.Dropdown( - label="Style", - info="Select a style of output audio for the synthesised speech. (Chinese only support 'default' now)", - choices=['default', 'whispering', 'cheerful', 'terrified', 'angry', 'sad', 'friendly'], - max_choices=1, - value="default", - ) - ref_gr = gr.Audio( - label="Reference Audio", - info="Click on the ✎ button to upload your own target speaker audio", - type="filepath", - value="resources/demo_speaker0.mp3", - ) - mic_gr = gr.Audio( - source="microphone", - type="filepath", - info="Use your microphone to record audio", - label="Use Microphone for Reference", - ) - use_mic_gr = gr.Checkbox( - label="Use Microphone", - value=False, - info="Notice: Microphone input may not work properly under traffic", - ) - tos_gr = gr.Checkbox( - label="Agree", - value=False, - info="I agree to the terms of the cc-by-nc-4.0 license-: https://github.com/myshell-ai/OpenVoice/blob/main/LICENSE", - ) - - tts_button = gr.Button("Send", elem_id="send-btn", visible=True) - - - with gr.Column(): - out_text_gr = gr.Text(label="Info") - audio_gr = gr.Audio(label="Synthesised Audio", autoplay=True) - ref_audio_gr = gr.Audio(label="Reference Audio Used") - - gr.Examples(examples, - label="Examples", - inputs=[input_text_gr, style_gr, ref_gr, mic_gr, use_mic_gr, tos_gr], - outputs=[out_text_gr, audio_gr, ref_audio_gr], - fn=predict, - cache_examples=False,) - tts_button.click(predict, [input_text_gr, style_gr, ref_gr, mic_gr, use_mic_gr, tos_gr], outputs=[out_text_gr, audio_gr, ref_audio_gr]) - -demo.queue() -demo.launch(debug=True, show_api=True, share=args.share) \ No newline at end of file From 77444c948ffb0881b6a63b0c4e8d645975f77ae8 Mon Sep 17 00:00:00 2001 From: qinzy Date: Thu, 4 Jan 2024 22:42:55 -0500 Subject: [PATCH 03/12] update readme and added new gradio --- QA.md | 23 ++++ README.md | 10 +- openvoice_app.py | 275 ++++++++++++++++++++++++++++++++++++++ resources/huggingface.png | Bin 0 -> 4134 bytes resources/lepton-hd.png | Bin 0 -> 44402 bytes resources/lepton.jpg | Bin 1904 -> 0 bytes resources/myshell-hd.png | Bin 0 -> 34129 bytes resources/myshell.jpg | Bin 1703 -> 0 bytes utils.py | 2 +- 9 files changed, 306 insertions(+), 4 deletions(-) create mode 100644 QA.md create mode 100644 openvoice_app.py create mode 100644 resources/huggingface.png create mode 100644 resources/lepton-hd.png delete mode 100644 resources/lepton.jpg create mode 100644 resources/myshell-hd.png delete mode 100644 resources/myshell.jpg diff --git a/QA.md b/QA.md new file mode 100644 index 0000000..14ffa81 --- /dev/null +++ b/QA.md @@ -0,0 +1,23 @@ +# Common Questions and Answers + + +## Issues with Voice Quality + +**Accent of the Generated Voice is not Similar to the Reference Voice** + +First of all, OpenVoice only clones the tone color of the reference speaker. It does NOT clone the accent. The accent is controlled by the base speaker TTS model, not cloned by the tone color converter (please refer to our [paper](https://arxiv.org/pdf/2312.01479.pdf) for technical details). If the user wants to change the accent of the output, they need to have a base speaker model with that accent. OpenVoice provides sufficient flexibility for users to integrate their own base speaker model into the framework by simply replacing the current base speaker we provided. + +**Bad Audio Quality of the Generated Speech** + +Please check the followings: +- Is your reference audio is clean enough without any background noise? +- Is your audio too short? +- Does your audio contain speech from more than one person? +- Does the reference audio contain long blank sections? +- Did you name the reference audio the same name you used before but forgot to delete the `processed` folder? + +## Issues with Languages + +**Support of Other Languages** + +OpenVoice supports any language as long as you have a base speaker in that language. The OpenVoice team already did the most difficult part (tone color converter training) for you. Base speaker TTS model is relatively easy to train, and multiple existing open-source repositories support it. If you don't want to train by yourself, simply use the OpenAI TTS model as the base speaker, as our demo in `demo_part2.ipynb`. It should be able to support a wide variety of languages. \ No newline at end of file diff --git a/README.md b/README.md index caaa115..a89de6c 100644 --- a/README.md +++ b/README.md @@ -43,14 +43,16 @@ OpenVoice has been powering the instant voice cloning capability of [myshell.ai] ## Live Demo
- +      - + +      +
## Disclaimer -This is a implementation that approximates the performance of the internal voice clone technology of [myshell.ai](https://app.myshell.ai/explore). The online version in myshell.ai has better 1) audio quality, 2) voice cloning similarity, 3) speech naturalness and 4) computational efficiency. +This is an implementation that approximates the performance of the internal voice clone technology of [myshell.ai](https://app.myshell.ai/explore). The online version in myshell.ai has better 1) audio quality, 2) voice cloning similarity, 3) speech naturalness and 4) computational efficiency. ## Installation Clone this repo, and run @@ -70,6 +72,8 @@ Please see [`demo_part1.ipynb`](demo_part1.ipynb) for an example usage of how Op **2. Cross-Lingual Voice Cloning.** Please see [`demo_part2.ipynb`](demo_part2.ipynb) for an example for languages seen or unseen in the MSML training set. +**3. Gradio Demo.**. We provide a minimalist local gradio demo here. We strongly suggest the users to look into `demo_part1.ipynb`, `demo_part2.ipynb` and the [QnA](QA.md) if they run into issues with the gradio demo. Launch a local gradio demo with `python -m openvoice_app --share`. + **3. Advanced Usage.** The base speaker model can be replaced with any model (in any language and style) that the user prefer. Please use the `se_extractor.get_se` function as demonstrated in the demo to extract the tone color embedding for the new base speaker. diff --git a/openvoice_app.py b/openvoice_app.py new file mode 100644 index 0000000..9555391 --- /dev/null +++ b/openvoice_app.py @@ -0,0 +1,275 @@ +import os +import torch +import argparse +import gradio as gr +from zipfile import ZipFile +import langid +import se_extractor +from api import BaseSpeakerTTS, ToneColorConverter + +parser = argparse.ArgumentParser() +parser.add_argument("--share", action='store_true', default=False, help="make link public") +args = parser.parse_args() + +en_ckpt_base = 'checkpoints/base_speakers/EN' +zh_ckpt_base = 'checkpoints/base_speakers/ZH' +ckpt_converter = 'checkpoints/converter' +device = 'cuda' if torch.cuda.is_available() else 'cpu' +output_dir = 'outputs' +os.makedirs(output_dir, exist_ok=True) + +# load models +en_base_speaker_tts = BaseSpeakerTTS(f'{en_ckpt_base}/config.json', device=device) +en_base_speaker_tts.load_ckpt(f'{en_ckpt_base}/checkpoint.pth') +zh_base_speaker_tts = BaseSpeakerTTS(f'{zh_ckpt_base}/config.json', device=device) +zh_base_speaker_tts.load_ckpt(f'{zh_ckpt_base}/checkpoint.pth') +tone_color_converter = ToneColorConverter(f'{ckpt_converter}/config.json', device=device) +tone_color_converter.load_ckpt(f'{ckpt_converter}/checkpoint.pth') + +# load speaker embeddings +en_source_default_se = torch.load(f'{en_ckpt_base}/en_default_se.pth').to(device) +en_source_style_se = torch.load(f'{en_ckpt_base}/en_style_se.pth').to(device) +zh_source_se = torch.load(f'{zh_ckpt_base}/zh_default_se.pth').to(device) + +# This online demo mainly supports English and Chinese +supported_languages = ['zh', 'en'] + +def predict(prompt, style, audio_file_pth, agree): + # initialize a empty info + text_hint = '' + # agree with the terms + if agree == False: + text_hint += '[ERROR] Please accept the Terms & Condition!\n' + gr.Warning("Please accept the Terms & Condition!") + return ( + text_hint, + None, + None, + ) + + # first detect the input language + language_predicted = langid.classify(prompt)[0].strip() + print(f"Detected language:{language_predicted}") + + if language_predicted not in supported_languages: + text_hint += f"[ERROR] The detected language {language_predicted} for your input text is not in our Supported Languages: {supported_languages}\n" + gr.Warning( + f"The detected language {language_predicted} for your input text is not in our Supported Languages: {supported_languages}" + ) + + return ( + text_hint, + None, + None, + ) + + if language_predicted == "zh": + tts_model = zh_base_speaker_tts + source_se = zh_source_se + language = 'Chinese' + if style not in ['default']: + text_hint += f"[ERROR] The style {style} is not supported for Chinese, which should be in ['default']\n" + gr.Warning(f"The style {style} is not supported for Chinese, which should be in ['default']") + return ( + text_hint, + None, + None, + ) + + else: + tts_model = en_base_speaker_tts + if style == 'default': + source_se = en_source_default_se + else: + source_se = en_source_style_se + language = 'English' + if style not in ['default', 'whispering', 'shouting', 'excited', 'cheerful', 'terrified', 'angry', 'sad', 'friendly']: + text_hint += f"[ERROR] The style {style} is not supported for English, which should be in ['default', 'whispering', 'shouting', 'excited', 'cheerful', 'terrified', 'angry', 'sad', 'friendly']\n" + gr.Warning(f"The style {style} is not supported for English, which should be in ['default', 'whispering', 'shouting', 'excited', 'cheerful', 'terrified', 'angry', 'sad', 'friendly']") + return ( + text_hint, + None, + None, + ) + + speaker_wav = audio_file_pth + + if len(prompt) < 2: + text_hint += f"[ERROR] Please give a longer prompt text \n" + gr.Warning("Please give a longer prompt text") + return ( + text_hint, + None, + None, + ) + if len(prompt) > 200: + text_hint += f"[ERROR] Text length limited to 200 characters for this demo, please try shorter text. You can clone our open-source repo and try for your usage \n" + gr.Warning( + "Text length limited to 200 characters for this demo, please try shorter text. You can clone our open-source repo for your usage" + ) + return ( + text_hint, + None, + None, + ) + + # note diffusion_conditioning not used on hifigan (default mode), it will be empty but need to pass it to model.inference + try: + target_se, audio_name = se_extractor.get_se(speaker_wav, tone_color_converter, target_dir='processed', vad=True) + except Exception as e: + text_hint += f"[ERROR] Get target tone color error {str(e)} \n" + gr.Warning( + "[ERROR] Get target tone color error {str(e)} \n" + ) + return ( + text_hint, + None, + None, + ) + + src_path = f'{output_dir}/tmp.wav' + tts_model.tts(prompt, src_path, speaker=style, language=language) + + save_path = f'{output_dir}/output.wav' + # Run the tone color converter + encode_message = "@MyShell" + tone_color_converter.convert( + audio_src_path=src_path, + src_se=source_se, + tgt_se=target_se, + output_path=save_path, + message=encode_message) + + text_hint += f'''Get response successfully \n''' + + return ( + text_hint, + save_path, + speaker_wav, + ) + + + +title = "MyShell OpenVoice" + +description = """ +We introduce OpenVoice, a versatile instant voice cloning approach that requires only a short audio clip from the reference speaker to replicate their voice and generate speech in multiple languages. OpenVoice enables granular control over voice styles, including emotion, accent, rhythm, pauses, and intonation, in addition to replicating the tone color of the reference speaker. OpenVoice also achieves zero-shot cross-lingual voice cloning for languages not included in the massive-speaker training set. +""" + +markdown_table = """ +
+ +| | | | +| :-----------: | :-----------: | :-----------: | +| **OpenSource Repo** | **Project Page** | **Join the Community** | +|
| [OpenVoice](https://research.myshell.ai/open-voice) | [![Discord](https://img.shields.io/discord/1122227993805336617?color=%239B59B6&label=%20Discord%20)](https://discord.gg/myshell) | + +
+""" + +markdown_table_v2 = """ +
+ +| | | | | +| :-----------: | :-----------: | :-----------: | :-----------: | +| **OpenSource Repo** |
| **Project Page** | [OpenVoice](https://research.myshell.ai/open-voice) | + +| | | +| :-----------: | :-----------: | +**Join the Community** | [![Discord](https://img.shields.io/discord/1122227993805336617?color=%239B59B6&label=%20Discord%20)](https://discord.gg/myshell) | + +
+""" +content = """ +
+ If the generated voice does not sound like the reference voice, please refer to this QnA. For multi-lingual & cross-lingual examples, please refer to this jupyter notebook. + This online demo mainly supports English. The default style also supports Chinese. But OpenVoice can adapt to any other language as long as a base speaker is provided. +
+""" +wrapped_markdown_content = f"
{content}
" + + +examples = [ + [ + "今天天气真好,我们一起出去吃饭吧。", + 'default', + "resources/demo_speaker0.mp3", + True, + ],[ + "This audio is generated by open voice with a half-performance model.", + 'whispering', + "resources/demo_speaker1.mp3", + True, + ], + [ + "He hoped there would be stew for dinner, turnips and carrots and bruised potatoes and fat mutton pieces to be ladled out in thick, peppered, flour-fattened sauce.", + 'sad', + "resources/demo_speaker2.mp3", + True, + ], +] + +with gr.Blocks(analytics_enabled=False) as demo: + + with gr.Row(): + with gr.Column(): + with gr.Row(): + gr.Markdown( + """ + ## + """ + ) + with gr.Row(): + gr.Markdown(markdown_table_v2) + with gr.Row(): + gr.Markdown(description) + with gr.Column(): + gr.Video('https://github.com/myshell-ai/OpenVoice/assets/40556743/3cba936f-82bf-476c-9e52-09f0f417bb2f', autoplay=True) + + with gr.Row(): + gr.HTML(wrapped_markdown_content) + + with gr.Row(): + with gr.Column(): + input_text_gr = gr.Textbox( + label="Text Prompt", + info="One or two sentences at a time is better. Up to 200 text characters.", + value="He hoped there would be stew for dinner, turnips and carrots and bruised potatoes and fat mutton pieces to be ladled out in thick, peppered, flour-fattened sauce.", + ) + style_gr = gr.Dropdown( + label="Style", + info="Select a style of output audio for the synthesised speech. (Chinese only support 'default' now)", + choices=['default', 'whispering', 'cheerful', 'terrified', 'angry', 'sad', 'friendly'], + max_choices=1, + value="default", + ) + ref_gr = gr.Audio( + label="Reference Audio", + info="Click on the ✎ button to upload your own target speaker audio", + type="filepath", + value="resources/demo_speaker0.mp3", + ) + tos_gr = gr.Checkbox( + label="Agree", + value=False, + info="I agree to the terms of the cc-by-nc-4.0 license-: https://github.com/myshell-ai/OpenVoice/blob/main/LICENSE", + ) + + tts_button = gr.Button("Send", elem_id="send-btn", visible=True) + + + with gr.Column(): + out_text_gr = gr.Text(label="Info") + audio_gr = gr.Audio(label="Synthesised Audio", autoplay=True) + ref_audio_gr = gr.Audio(label="Reference Audio Used") + + gr.Examples(examples, + label="Examples", + inputs=[input_text_gr, style_gr, ref_gr, tos_gr], + outputs=[out_text_gr, audio_gr, ref_audio_gr], + fn=predict, + cache_examples=False,) + tts_button.click(predict, [input_text_gr, style_gr, ref_gr, tos_gr], outputs=[out_text_gr, audio_gr, ref_audio_gr]) + +demo.queue() +demo.launch(debug=True, show_api=True, share=args.share) \ No newline at end of file diff --git a/resources/huggingface.png b/resources/huggingface.png new file mode 100644 index 0000000000000000000000000000000000000000..eb5f30148b2f284f7e3d4532784899255352c616 GIT binary patch literal 4134 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 literal 0 HcmV?d00001 diff --git a/resources/lepton-hd.png b/resources/lepton-hd.png new file mode 100644 index 0000000000000000000000000000000000000000..c8e6c5406ba6521886e603989cf264a9231936ca GIT binary patch literal 44402 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 JtdX}4{~y$GZ{Yv{ literal 0 HcmV?d00001 diff --git a/resources/lepton.jpg b/resources/lepton.jpg deleted file mode 100644 index 5bd5601481f38589f2eb2954396911bd0aae74ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1904 zcmbVMdpOkDAO3#l!eE$tE-MMiCF&>Tk`b~(WlU;A z^|(h{8za|3)S!?{WcQIlQ)Wlm-T!}|bDrls=REIupZD{e^S+{2q6q*^qdHOn5Ci~F zJOI%Kp!(wpRzwstI+_{0BQS19cmy+acN8;d>rnI>NCRO1mV^XcLINQvE(B6)vyeEX z98x@S7(5z<#$$-`1cE$~q@tuk(%HFF$Jo%=*47*R_de|ZBM?0XFbH59kOl=w00aX< zF`(!PpbP*IC;%0=@lQ!eLSb+Kf{+r80*K8f0pOEEj*ROA{~o2eLd!MBCuFy3y^4Cp zG1kN8#$9CA*8@D?Up^D{M=Ew$9U`Ef^ECc)Y%djaD}rL~?+jbyAOwKIVG`e%A!zZT zU|m5k@Yg(N%oUvYf&wT;L$|Qs7V&lq4&8)L?m6w6N0g6Hd?ZF|qQBFFP}r7!7#sqX z03`tg28YEHwvmiXPi{2d=Q-T2rCP$E zcf5AD2Rb)uT&0kiE3uZWb^Kh%BFY|o)Q;YsNS@Jg246m=DxiO@K!Hcxz z8!A%SY&~7XZ`fXbOZgoJfMzfmeX};wnNg(&{WXcXhHc}Cyg1HT^+e+djas}LCXJIS zOw97N)Fx6w0LG-{$FqB(%e{37W8(0~*j86HzH;_k_cKLmXphshnxr-Zf#!gv?|gs7 z;!LUka+SvWL4gPepde+s<>L9H{hY2YOP2}#-u;cL!X#S}@X}zt>Tzg{2`>b-)}3M2 zvF%Yu-Qb_aKKO%f)t6_d+tz8}w7Y*uvQOO?0oUoX*J-*p!UKFJ(uKIULrtYnNs&N|7I7;aWJ;!*7H?%*~_Jt%T4e= zGGZtYt>+$WIC3MZ>n2re{@A&kd+x11DZSMZg&tu)7nm%Whc#SQS-u$WVs3qvm^!&S z9jn(Fnp=PB>*=+Dr_CSk3A2Oi)_qOhp-K7*g+>R~OfB{juY66^EqfM%!YpYISy+@= zDtUYeisb1pPWU8UTJO}n7jQDF0ei$0FK%4y32m__AYwy+5XmhYfefAS9t=zw*s=xA3V0uPG~1AsQF-)OXOl_D09Dp5GXCz$noxxwpb`JYp8MA`e=gS| z*Kq>*VjeS=?!>V(=-L%yPrN#HI$w%gXm_42Tz@EQ^Jv2B+(Len$B`Ap(vSS$#&aI& zjuza#>t>bN4q4v)3SXQ#`6;B}Sh{&+4{m3zP292K_N!>gtoH+aYFHb=OaFM!bh^Qv z-xqb$e3{*pcEJ%}nuQ=DV_yNKCftNBOioBxy*LabFL3kw{j?mBM(4*PQ;m}uqr}xA z?NS#+ty4w7bW#1&ycH|dd+l(#@u=z;h;QA-*Hlq@T!II%P>i{(py-eLL@_R~xpcQb! zO=teDxwNTb2>F&)V_Xc?c{Q)L0rhd$niL$68X`tkCxR=>xop!`mMia>Zs zW_85wIyCV3Zb2%Qc(PcDEJ;w+?yyFu=rky)`pY##@8MS%1dZ*}(Tlg|AXK*fRApYG zKze5Cc79Y{(t@X0CP^$41_A$535b6a3-2G%E8u=T$nDdwb diff --git a/resources/myshell-hd.png b/resources/myshell-hd.png new file mode 100644 index 0000000000000000000000000000000000000000..f62bc37c663c62c6f332c6d0446979e8b0e94ebd GIT binary patch literal 34129 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 hD){4KJRv^q^ 0 and len(sens_out[-1].split(" ")) <= 2: sens_out[-1] = sens_out[-1] + " " + s From 1370d01a528d3010f1b443f6d5cbe3ce390a8800 Mon Sep 17 00:00:00 2001 From: qinzy Date: Fri, 5 Jan 2024 09:40:05 -0500 Subject: [PATCH 04/12] update gradio --- README.md | 4 ++++ openvoice_app.py | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a89de6c..a343bcc 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,10 @@ OpenVoice has been powering the instant voice cloning capability of [myshell.ai] +## Common Issues + +Please see [QnA](QA.md) for common questions and answers. We will regularly update the question and answer list. + ## Disclaimer This is an implementation that approximates the performance of the internal voice clone technology of [myshell.ai](https://app.myshell.ai/explore). The online version in myshell.ai has better 1) audio quality, 2) voice cloning similarity, 3) speech naturalness and 4) computational efficiency. diff --git a/openvoice_app.py b/openvoice_app.py index 9555391..da44c24 100644 --- a/openvoice_app.py +++ b/openvoice_app.py @@ -193,18 +193,18 @@ examples = [ [ "今天天气真好,我们一起出去吃饭吧。", 'default', - "resources/demo_speaker0.mp3", + "resources/demo_speaker1.mp3", True, ],[ "This audio is generated by open voice with a half-performance model.", 'whispering', - "resources/demo_speaker1.mp3", + "resources/demo_speaker2.mp3", True, ], [ "He hoped there would be stew for dinner, turnips and carrots and bruised potatoes and fat mutton pieces to be ladled out in thick, peppered, flour-fattened sauce.", 'sad', - "resources/demo_speaker2.mp3", + "resources/demo_speaker0.mp3", True, ], ] @@ -247,7 +247,7 @@ with gr.Blocks(analytics_enabled=False) as demo: label="Reference Audio", info="Click on the ✎ button to upload your own target speaker audio", type="filepath", - value="resources/demo_speaker0.mp3", + value="resources/demo_speaker2.mp3", ) tos_gr = gr.Checkbox( label="Agree", From 662c1b0d70ef2353a9ca17dbefff3b358b28e6b5 Mon Sep 17 00:00:00 2001 From: qinzy Date: Fri, 5 Jan 2024 09:43:58 -0500 Subject: [PATCH 05/12] update QA --- QA.md | 2 +- resources/framework.jpg | Bin 150917 -> 0 bytes 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 resources/framework.jpg diff --git a/QA.md b/QA.md index 14ffa81..3510ea9 100644 --- a/QA.md +++ b/QA.md @@ -20,4 +20,4 @@ Please check the followings: **Support of Other Languages** -OpenVoice supports any language as long as you have a base speaker in that language. The OpenVoice team already did the most difficult part (tone color converter training) for you. Base speaker TTS model is relatively easy to train, and multiple existing open-source repositories support it. If you don't want to train by yourself, simply use the OpenAI TTS model as the base speaker, as our demo in `demo_part2.ipynb`. It should be able to support a wide variety of languages. \ No newline at end of file +For multi-lingual and cross-lingual usage, please refer to [`demo_part2.ipynb`](https://github.com/myshell-ai/OpenVoice/blob/main/demo_part2.ipynb). OpenVoice supports any language as long as you have a base speaker in that language. The OpenVoice team already did the most difficult part (tone color converter training) for you. Base speaker TTS model is relatively easy to train, and multiple existing open-source repositories support it. If you don't want to train by yourself, simply use the OpenAI TTS model as the base speaker. \ No newline at end of file diff --git a/resources/framework.jpg b/resources/framework.jpg deleted file mode 100644 index 26fb4b9b0fbdcc22183b18a5ed21e24651e6ae0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 150917 zcmeFacUV-t6EK=(DT)G$qDZ%6q4(-q5fM=l5RoE9q=Pi+YZsNGf+Agz-g`$>nn-U; zM?rd1=^%J>&H|z@`ucnCcc16`<3>Hn?)G)O<)x=NC2{NOE3R6LCtOZqtb8% zS`GWq5x-cULd0PqO=?g&X%tWlFhxGw95Y513m`G|!{rc|X+l7{Te{gx+0@RmUMR5E z7{8QRJ_D27T6~f?0PNqsRAJ~WO(nd@0~9Pcw^_a`OXXmKUiiauu<0uT1&*A=FXi&| zW_?Bh24aMybtdotu-HW8DDgucSpU^BthZ#K)Qa#T0|4Q#q)v@K;*vS{&|1U?mV#*+ z1Q^wD5Zp*NIkuEbQMQ^$9IV<>-rC$s0I+2#cO!IdbJo6h2N?3NIgk3h(XKK-)Le82 zOg1D32Fsp38Jo`^UaAKZuZxyL89s*{0fO(y)M;?&Oy&^*#{Xghx95p8|{56}gzB+P(!tN8GGI_G! zZi1%EZhMUY!D}e)@VQ)@tPy5`?WXVYxKou(V99CSNLP}54yp^~@h7|xEAlW0u~U_EfD z$a`Of#<2Z$h+<9Qh3`OL``W9pCe`%s0BLbC{El!{fw8g2nU3{$DzwH=1sN%C7L6Uc z`B2Tz?NqQ$1*_}((kN=lSbotISSrocd^^6W#Ar04yadclzux8o>wV z8C*fsdu>%}XI}{^%t!dzs8J2rD0v3XXLuZ$*>!33VDV6RyL)JE%uO4$;;}NzZZU(( zIw60~fs(+{@y=`KEC>g|5a1#{GREF&;#zf)SfT)1Y?a( z{4xk@Pz)iG8@cl?WR_PCX$tLR+*vIxH0BXm6aF$&dZ%+wOmd>Uoa_gd8^M}Qh!`l&y>5wt#%d4miJzB?FYw452**DeGu?y1Rq$gWB^Qi z%2VXRqPdoh(c`09=96n9%0t$i+~TTi6Qm}^^6HAOv*WaFFK3Q2r}XOkRBX2FIaRqi zq`8MOt)`xt=k!dlUDtW3_{m&EZ0L6GXVss)7BZwN=khW)>(gR~u*=^q?knsL{z5Ot z6*%749hu>DNl)0T@+{JMOx-7kuKh&WC(HV#gDR>Fwu#-NuYyk~nrx3vt(h0b-lHhE zKB_(`_k~SmPii7v#ukR)op{x+--)h8wqvsCi@y$p2ubv8QC&~juy1q)NJJVVliD9J=XQ0 z+qSt*-f8a}iMu(dAUi<+(N6wV0jpzm-Bi8IKrZgbxVhnC{t+-K2uUyp)t!#r$jo5R z5(^6VNgUiO*iogh!AkXZ533Zr>iks`7xm_unfu*ACe^pwdv?tl3p1=0k*ah0qVX+H zOc&1X!)9eTyW^)@Yt!VJJO+Of6V8YE1MHkjeMth-^1#}?{ncQ74*wWH)+X8ZW9rsI z{`zvV4Q)&E<7?cmBMx_SzC3-^+|ahS(TnkiQ6P!GR5veV3KEY4;*yJJ+e8|drWNJmUo#hY%wmSTBR<8rP+ z>;4jDrkj%uD(q@+Xm)O8tr1&fR8qy6AW#lHd51CD+d11FHJ>EPwynq7pY2?8az?Ob)M3&5@VqvAaIp2+ z!<6~9fiLQW6kBoGR}*VjRBByE&bHl6&7M7Nd#rL)!l*wZ&GQn=+qP-ca(wV*E~>60 zCoD0A1rcq2RK(GtL!`>_nE-jACKpB?Y?hH%vmmQW4m2rARN5DlnshAHC&$q?!oa{p zWv*mjl?^R3aE@sdVS=!lj}m3W>={>ctQCw z4z+dnFz|lMV85VSCHTsx|2sHWE*?ido*h->&2>e03a;c4w@qe4r{bXIyvewt<~;2| z2jGT9i_0uOiL3 zLcYY&QQ1r?Tz#%ardXw7wt7b%6aZyZ);fKW&38O6ID{tldiJv57S9(i?Lf80SA{oH8m(b~o$ zLoKIAEKS`<_$N3s>7N;I!NwaTA1A zsyauDYr#%~^ebAM<=4X`81+vl7X@>u^VPROJ5_Q0pu`Be>A02^+~mi?(Q3E(Os6te z>@>0@0~bh&Dca9uN>0XSTQ{p$pXi^1(sP`@;}pY%(9fML53)w1+A?Gp4b#zSgo%56s0x*nBmAikpWe!?)oBfn*daPAbX7jb zVUty2W~%|Gk&&foeU)#y@hU~Sd;FF=?y6s|ov5f2vr`b>wDFk29v6k#A*$e%5Nq$* z*sKQ?NqhY!{6D@6iR1pEyzy|G$$Aah=T&}uHy`yKJfP^#9SP{brOF#=?=$CeJEmRD zY@sie^xN$T=`Po?wLWEai%LYkQ=CSBvUlbsTbQ*K|H=ZcC-O=4Q*DOFV>=#-N39wk zdr-XoJGg9UuUa>Bl8b(1?z&r-w9^Y5VBbgFazc8LQwsx0%js6UB)7R8mSTHGjdKDy zSK$?kLTVEY;k@!0W>%5i<>XE^SiX@sic4e5Hjl72i`^I-+%;nIu^oBSc&iF%t8d9o z+?@WbSF<|j!*W|47A6K{YmIpuu(T!7Q+MIc32p=1C69R9rcy22-L_rJiaQ`)o9mr` z7azE2J8IB5g(|^)QxpEXAHK{@>*?|T$5-NX-o>zwys!RKQBJ;fKzk_vdxUWp6SoP6F;`WNeqZ!#=rT30}`pNcQY@g`* zSTeB_OGX$fru1*%qH&f3lgewFWXGaPc_>T~n9V>`u?lR+mQ8~JJ&Wib;! zMXTc!gx|YTAXi9Q?Aj5wi}(SE^0q}5R_5!Qh0R)1PQix|Ur8N=hE z9&nn=HmZc*k{6{)?`>8|v2r`AUzS}v7QmwQoIh<&O2-%vaqQmNyf^>4VQ3y^xgEdQ zCc13}qehqdmD>cS z)=lg(=6HPMQvIAxnvc!!Th|sfqcN}0!I(2uNmn)pW@XQc_PP)Ei40Pf``C1g1}@{|crU(eW zH^(n!^QRQ_F9CqPc-&Lx2M9o@X72q32j((tmzN->-4y3=OS#tPc}5{jPoIB zmE~3O3*|6No~a)dm!+KLf$ah4r&o#$AUmBsN3)qc}9*3FkCaD}#i>Wn|Z zZWS>DnK$7&FjR&}1SI^99V{)hOew7L&@%t>K;!_{PQegShA+qvc?5KCRGjK=io8jCRE z`ok1H!7srHrKnYov`t}U0=q^6Ly7kyZ2--piydI&SQ+uZw$0#9tOB2xKjDF>=CAXbbGV4PzXK|nsXL=Q+18&(|hW<`2nAKD{};6Kp=5=00k)QSv9Ey*K_ z^!f_}Mj)u5f!qoQHP3}b5K#4^Mgz3~4rYms`r=`$xnyb0C@p#p+CmZXis`sXO@)mzBP3HR@^u zz#|Zd6hcEA9uNg83NbhSXp#6HO9K}-4F7Qg0Wh4;BNu9bEm#9)HbC8mTk8}Eq1jo$ z@CuR-hW|)kWS2yLEf6+fghvj6;aa9RhO`GwBCOI^B=z6cH>?MbTZwiSJaGKEZ8aQ~ zdNJCzwILcUJ_OhnQ=l9c&@{j;!kC;TS&C%Aqhq4IFPMkKkOi>8NIvX}JdVhP|8@G1 zCg83Z_Mw5qP*7m1@DN0X^M8OM=qVXhJaSrwEV$l0*fiWnVWOsCVnt@gyl6*X{R=xI zji3j;Q?d6X`3IKRD06o#fq@ppL zKW2KQ9z5h0aAHGJ|73EC0Is&u1DT?qDyB*`wJViou}Zl^!Ua?HCb{$cz9t!O2WyH2 z&WmNcx?0*Wa_lRP7^FQJLPL69>3k% zR1lQbI`xc0zkaeQ`K=i|g*|L??Hswx#>dwA!}hjs6cWAge^8Uipdpc8BbN=Zh9Ey5 zU5=vM2sI$R^pTC~O5&ADR^_^}aj!u|roaEE`ZNxVQ`J*PRZ9Vnge&hyy~)Q)-a_42 zz;nPu)UuBG?Up*_l%4{Y3q!nHt?F^$&oXE^6AQ9ICN}+x^|4K%pbz@0tIj(b?n z=bgO2dJmmX4(SgzW*A+gw;@;WftdM**q8C|69sN+;pF>!L`}%9H$36~vkXUN43sU1 zjDe58V0o>9G@kz4FF~By72b@QpN9guW-h;e+&M9qaAhAM^Zu)EbG^*6681Hlthz(I zq{Dsu7tvAh35({${~t%^-1(f;r`=?05#-L|B2t*Lei-OMKMKPvE z{rm@{$3Lsqzm!Ex;K<869-(g9{&jf}PJ@#r*DOz~ga4}U$#L*wQg$(jdvoA7{q;|5MU zH}%Q$;yB5$7Cbn@U)|brS#0Mc{8dZ@LRU2Wz34+^@oz*Q1z4AJ@x9Ud>i0r^qRef_ zfyH5KTBgNeJML>UM zkCaP^xA}-gV%aB0E;bK9o=BJA^YI{WPx|o-=v?2o z-%V;m`w3r>PsnzKQnMTq42CNMQMdljmTzkH#_nH{p*Ft-8jH{<+r+(Sl-)XMhsTW4HXEy; z7UhwCzg+RuLU`$M&ulh2b~ENTPZ73Ku3TISkHSB>$}qVc*Pc4#yy?9hP4meV_n3$6 zl&hafAo7Rx{-n>E;a5cg+Jw0c-@G{2c3xUjcXFZ%SsEO~K=H}mLs5@UGMrF6QmcOM z_UnLC%Bq%Sg}81-11VO8#Yde+Q~^G{Uo+)UlAVU297gz;K(S3h{kNB645>ZIQ5 z)A1=TwUXZ9dh8|dwQuSUdu!fK)Np9;(-L}fL#M)QV19t2Bd7b#Y+UBN6aL%tUpI`8Y3x73c> ztdT#X#&bR=yr$+^@Z4NDNHpbGgN(z}JlG5|x9y-HWt%S0B5xFZ(H!{-}?qzE>HGo{A_D_ZAf2F z#lfqg(GC+&qf_-|a(YH^)qEFwFGh8q(Y^lSHMS$Zv9X#n@N{!PhMPU_n~32q`CavM zb8oxFEgL}fz(K{q!9KX*ry@0_E2{J4=vyV}{bsiGB_|cLgVvi=#^Qn~nW31y`lT&5 z58oiQV&zPlpFgyfA!YqclNpJZ{UM{7*g^5{z;W)aR@OrmM)lLGj`oSC*Cb{?K8b0m z!CY6Bjy8I5kDPy$m&l$_Jxj^#Z#&xgRd3@}fvryv_Pp%Rn)=*eD?HF#RM`jUMg%w4 z+0|)G=JA9zp1!!H@XhAP=R-lzL>lG@d{V6SC}M5EVY)UM#9Yd+8A`g4>lem6C(03P z#iCTt<<#gL(fUohFH@*ps_?E+p_Xi2PR|Cp%y*qKb(zC&N_#f!9#DRe7#cegxZpR# z$mou1s-nIu5+Rxtl-!ttbKpvXHeZXo_+0M>W%*VI{@VlaKF3Cvq?G!ai4+5K_I(rg zd_L`{@@1r73kNo6Q61J@<=30ss+k?K>nBs)}r}6;l zS@ul|?wIF09H8El@D=lKj?LX_tA zkf$cwnpTV75n*tDH+Dw0C2eI9>^<4>dKeWx|KRSz&Z~O_7q}ae1P$w>%Ze9m;IpaS zmRpS`4|0d_w&+iWzHT_OoiT&3Lvi<3@3&VwXq~TaW^yk}_+Z=mtql@&E3e$W-S85d ziqdxSgHLr7ubw!u!ryN=~4Q+e$}~IS<=k(kl_Q_R70yx#@Tq4Rpm6b6|BBt zrLC({;kB`Y`y;z}Zab)3&~24y>o`mMQX=Y)wN1C`%#OFNZX~&#n~jut&@U2J%Z1( zqFS?ELhd%vmCtMTg>X6;e|7bc-7|3aaA4xTEso9VDd90E*&PWAy46<0%+^=WRO`hy z0OtI4cl!UQ^Us#bRaW_p$Yt&TV z7h-#jbwf_|UeBYFU5Jya6*{D*+2AJ;L}G58StE#@ynN6==82s0#j`l*&w?(o+BeOs zT~COtne`qSGd-C_rS?H4$@G^^s!%+SK38{ z=)5w0aKMSG_U*9WP6y2sk=e5TNtbkU^`v)<3O>xTi;^f+8WB5_lc0G)IK@B8oYRj= zZr@?98Qy_n#8nLMG1j3ovf{pj{0YPHLzkK3C8&oT#+|VVW`R~*mC#GJ%+ZF)S0T}B zTt$$zGF`HUICjL@q1MppY4XVxm*Q%*{hY;{c8m!AtjR5Sok@{>%c3S<;1#fF*N}Lo z@x5Sh9dRy@GaO7w@$iw!ew>&{bI;Svwu+$ZpuW{vMyNFX*46yj%e`umB}1_sLTwIP ztR@jpK6LxS!v`3adsY6laV6Oh<86c*rbJ@(22% zbDx*yPj+L_L8y3NURXYVHG^3QCQu+_!_uKUl58LM@b$(szAmluRz;~iC+Bh;v@i9H zTHLcF!#AUjAY8IIO` zxL<5n3o~e9Uhh&)SYeN1Fl=}rJT=vz1>O9ijEM|vQzaZ&y5ZBq3yevob2(~t?guzD ztk|n)ptL^f7!Eq&SCv!L&l*%wjx-sMCx}l6)Ls?y;V!m+^I0d$mbb#KWRkt`uH>aj z%IUVjYXp0IWCWC9Cf3mw)_B`~-o_KUVHvzxr+0FERl zIov|+NB*;Z-_#DUyTeaVPzgo9F1N49P(^e%Z_)iSL3?NcZ8@SAnABzKSAWuxC*Iqk z;A>Fz5cDK(X=E_~6oR!q#N!uA-l1WL(0^h!u*hg80-1VTrak+!dy9H)`d@NTN#1V^vi@qDc_}x}jK^VZ>TCs%VUC@8bGR+>>V{bb0>Q?TxKBPzzoT)?62EC``F@N)pog%d%U*|KY*)L z>UYi-!>{BUfc_)&JnL^=#S3nVx|@m6-Ne1L;qF=E3#}4l(hEDynbRrYW&vO}TyHR* z8;4guPZLV;uX@)Er1DXug|C@Ab-r@Xt*DOcV^n00;Zd*BS9DLo1EX^Y{T6o6F!9q~ z@*fUqZietF#wM>;8`R?Abg@ebmGS(&47mo zJ%1v8`A5`gXc4$&z~ZT+Pa-a5dWlAQ)OiB=8?pTx0P4A+TFcD)_~33ktXF+VVPy<(kB^mbJp{E}WL=a3WfG!D zeyLF|Nj)c8zt&q6n1{Y%5N~~aFDDPc!)SQD0iGAbfE>UqoSq=yzn?oGrI4`XXwax3 zTnmh=rRFizx!0<`tFxh{Nru#8ty2#QNEv7XjN(lkIz}UxF<>zGfz??o25)H4B2VPx2&Ri z|0lvjx;x-k^4uL{{>vr z$=(Mo|Aifw^$no(SO`l_LvFo+?9)mEQW za=R#+1HFBHrQEq+Jqr9X`mDL9-_whz{#byE6@SC*e}7bnkvrd%PJY?Dj!@?_K;d0s z7Lv&w>2N1C&*xmg1-*6$`SgHG;}w1L*?MGtXT}|_jEMh#fyAlvO%2eo>D*Kcylfdo0U}uAgbOyd39Qc2c?7i$+Z`wdCwmKTC1D4cwv}#&IPM>7ZKx#ds!u6-L=a*jlQOGP8oZj7(dWZu zjTvZDN|TbMu~*pej!JzebnC8gwD*(7_rk;Ge?71NMH*q1-7=v<-M2;@Fi2E1MDK^f z16iMR=O)#I6ZqW+cyn(xs*c}vG)jxP-sENJkRfMjC~0(WKY79QlusRli4TdcQkk`7 z+x&@t)$*DjAws_%2*WE2%l01db|v5V^R##zz?Qc;15!%)_=p&SUk)wA>dzO3mU96$ z4?OFK-c4=5V}=7_N%*yL{t%{#iw^wx{Crd>RAj5u=~+r#TyTw^=4yJ+Q|qRz=HHB_ zq)`S)AMZA95{hrSk|@yJKz2z-+3{NHNBKVXm4zp49|_BOfuaq5gpLGEUCmQ~WsT!T zp~bK0i3i|xyKc0%W)~U04`-FGXSGt@U@o<7qE1A-G;HMf!{+kQC~Sq} zqi32%4o**2dXim#1wY7Pu^KyZH^(s#-d-aP9BJ$iTuR+C5{pC1fKHX*O8r#3vf*Y} zv8bvy*=Tsu{0ST#3^cwMjnM=&Y9KAU)n(y_p!%XsA)H20nNNM*GkX?lPmQJpojck$ zarUaV)zRB}wVTMlg9^u6HqBLgw~fuhYLKND!jj5afZ;`=MOzdz{^ZFRnoS*Z&PmES ztEKp>4TNd@jy*XV-E3l=C5b~`V~P~Hjw1=^V1ae_+IXl)S=rnv@sMwO7@KURct?dk zjw42KG{`;U!_x|X2ihPmxkN^3TUHrq+s&4z&ohn)wtnRjx7~R}EkNUM8GGa%x)lLT zT35zwIm_nzk02OO&^JkJa!azyX@RR4g{K18U`)L1^zhh(ysLe)b>VKYjZ%lRyn=aR zUN-x!Jt4(@|3p;=>+Vucqc1eilbb#CMYIZZuC%y8>i_v%bHO^sChdELPB8_;(544x z65B>noit##@K%)Gn5~3Wr$bJ|RU+I0Z(S^~6tGFF#-X|J@i#Mq8GrO-0;zx@L{(lf zO;c%|&}BnlXzV!$Rq62x`3#LzA|N)3CLBh@%RCG&(6lFpzhT6sJBE^M7dWkb%D#gu z3$-a2RH@x4EJYB;gG1}=_=aEX1IBB&@Lhayu9-4p;;Wxv@Xj-_Fh6&E3 z)zTXz_s=&kiN-GV)vJy_RYEEvf#MYFc_Md`Z`52I47m@S5q%td&2Cqi;5pX2e@5^V z-Z=5&L>|mrbc@0y8kURELZwqA_i`ljR&5-^M(*T=4N&+xz)6L-Sl&({ixG3|+sI(k zHXHJEEdeTLovP6WW`a-8^ZlJ9dvcxI>2}yEkcOvlRH0l1iNzO@yRJ}Ceb~ELxd)jwhD$o`?n|oJ5 zwDV?HFU^)kb+D$iliI0r%@*A^vaS%G5ecc17PQweNJQ96_4uYHcVw- zZW}du8RIrIPhM%igG>($iz<8OT?ryX zUvQn8NcBvLGSE$>%Z|t)1F?oa8_LyO;iosAt>)UYd)Cm%jp|MJH@^1s+^C-)U}KeE z;iBeFJ;?6)UTS3b*&BEKKK94V&`w<+Kkt7z-Yog5pYiZ}s2%rZ_P>iWnx>N76Jz8{ zd4b?BpLl9YwOg^S?#ZRo8`{!^0wa&NK2U6b?m-o{=84>i{(by}Q{hpEHf&82@9gb0 zGSRGm8XZ?U8WH^xqKVw8MlJ@PN!#@1CBdXxS<1&@r|h@kvoT$)cG<7>Htkg5^H7|1 zI9n+GPFFZd(oJ|qO!jP>zWE?1rtzW8{jNLpF8#1@`?8z>2|0ii1147tkIw9k}1GA<5095w+dtDb4ZBtcT{f zO;J_t&X3Q6qKx5IaYh(oh+b=lmcvG)g7}+79J!*i_RW2JM`$ZLJ3HKR+H79&W{UMo z`v#>ocPSF?kX!raY@V!X5pV316mRdN2r!{HF`Q=(4>*ndGDZ5!!7Uf+#F|wsx42ygD1$aS<1gCA^0dq)h<%rb|U%Z{!8$KvZmXRJjVhsfa z!X3Gd-_FJ*C_j!qktAc!KsnzI$5J6;E9g7qaW26jLx}({?ocg}xr1RmJE=EJ88j+(WY4rt{hoW!6 zNjPEr=8{O497=$gJQgc_7g^-_=78NK--qahyiZ}KzkQMv}_ zn~aVgZ1l9i?NDh@vws@mYGmv{CDWdiRv^oi)#(`^xVC?L{;Pu#-gz2+ql~2aFXj8{ z3&#_q6$h#wF9a_|eCF zQr^T#Ccq!RYDn8p)*x!l(a~+uh9lndZ;Ec77YKQ_Wu(1d;A-R(66KsnN~Z_HHbo3P zZMYFprFP~*b8dC(TWghj6^`>Xq$BZNy95q8Unw?Vj~#9tj56AJF!ZVN{lan-efTxu zvhXiEu4N_vocuSF^3Sz@y!|(u=ts#vr~Yk<{#={lsF(#F@~BkX#_=#;%+WUZfiBC` zzkGG_=O&?;>bRSm2blS9_XFe`PbjPa+|uA!EXK~Wn2kX{6C(48VMPmy_=-kkh8t7U zf&wJ#2k#m8e|#Cl84ynr4a3ll^xV5&A{Uyp!Ok=v+rHOdm8ZdN|m{~{SlAcP}ZukwL zM1YGMzlgS$_V{VF8=;e_60BD&>eFrsrskFu?J9UvuOJjx;WM}USlRAcjxryph6G!y zPgtq*#ia`n8@L2ENG7nNgSM}+DCA{ z_Ngj|w!vt&Oy*M22WCb7T33aWS*aUh65*|{!`*JZ`5EJ5{u8BjZyd*SuNOye_j+3T z_|eEzrtjH{#uH8a%REQk-^uj&U)g3jI^e+i1ls4x=~s9{~wBU^X9rBzL-QLcbS zfN*f`(2yI{L@|7}Vm)nUW7f}imK`NTMTAWVv7vhgv^R{;<6l3*S)3R!x;cbb{9|vw zw=R3kguIF1%<&@wb~W-c?QO<6lL~9A70!?FH;(4hP#51X;85q8k>B<_KstM%H%`KK zOON`|fCDEer|%G_KSoh8)qRYL(admPjzosquCbUQ0&ZqaIf4IS(TkCJHRxuzoh26j z;5#UnbPb9%oG~tn4NE+|fC`K8m^#5fX9N7oJTg=@ruKqp`AV?#25s&kKzp-? z^_T;Vx8hrm>(Fbv5Xg;>11zKBA_$n4ef;OJh<@7kS-Mm)Z}d}yiycGe&CH#B!go@Op^~9A&UY8D>a!K> zXi##1dOp}jwzxG-3i`z8d>LxJrkktSPdz!1Y6tbcP3H05l&^h8e(w+^iUi6{D&dv3 z)IN!63MVt=dbZ5pq@LwJ=R0uF+NR#*h5H45C}<#mRQU8vxcTNVIoBrLlW5L>y|Ony z@Mf`z^N|+s6Rk9mShfC&bsIc&7>PFWT;pej*rRJ1F0o|p87ie7L%$;-_6HBkIP(DZ z$RY%`Oy@17Y4~Q;14L#v#XmW@=bd45ng5gZ!pv21FHI1WQKsQB?#@x@;a6mX-P4Gg z3>iK1&!MGs)Y~5zcV&STVK$-#FXqUOH8&G=xJ;x$DfIEM4UD?I%pU4>igOe1R-1$D zYl*SBeA}Q|6Hn|M+asObTl}%2h#-E&x^)XSSRt#YNA^jgrPb9={}{>1u=L*Ap{#~! zW>w#By@DCHoSbUfsB{Yn0WO@Q-ZxZvEUgk!RNw~0g{3E*f}WXeaY*E9=i#0E8Yrh0 z0yKMZ0&GuI_Vm<{@W9YEGZm?1au%hUsFB{n;aMO$FZTB11pKOQcW=?iC+YxS zJS($9_W>t?{h^vnnq5~5i$5*3^1mcVgcuTk^iN4W``?=RU%LGN%l=yVnmjp|W{-`d=x)so*+D6Re<6~RlEintj5Kl~Gv=C$LmKDlwUl8A$;Y9@) zG}fMLz9|eB#;@U**07j3&#`%#hA+c>5Ana2g*O1Ah~lx+S=Lb3?~}9UDC|R_yu#5<@+aDwm|q%GqMN zcjlPH-nQoo7Jm68)qYv1tE%uEr)H-;9)k?^OIz5xnUSr7;wWaNwsH~<()|hUDAG$0 z9t0*4(2(tV`S8dy!d;4MHNqC}Ws^VdGgdwSfa|V90=3-gGg(1oyLOVSDH`-IMRS4RW(T^|?%q znJ|W}BThGV6`#0C{FnJx?`-3^dVA;irKf(GRdnRPPAm4VI^)2%XR#rK06$6rB8*PbLVDTDg(NwVg?`0jc|pv>8wXVLV9pOTs73mhmmsEj+!dup_MXB) zXsJ2u@dO*?6aOqrU%YQS;|Wj1Fj>Nye0%=K8zrZSg$F8;Sl|PAUW+6&#Z8ea*ysoq z{IV)cnuV2{&cYlRNYU95*2lg?t7>MG^HLV)@ohVYFliwUDFUY_LGuep^dJH|@G!;{ z;h1-!iHq1RWZD{7o3ojCup}CaRz3O*7DqsfgB3t$AoUY85eq4k$PIKMQa^BF3M!}s zzu?rnfYUy_7F+Z~faTSJKT<@bCPd7DVfQ+)W)IpVAUTe7!DNA{zJes^@*q{=r`1B9 zT!9D-1I4OG;{farAwsL!kl3t}LOKvhD1pL*%JlGHT+meO9$>a&_=@p=9R_iX-zx$a z;39P&BV{R=frU4cATwR7P4@^7Fr4|@>+l%CYcA)pA$bZ#fZSM!QWaVVI_yX>0MKn2 z))g-*i$EmlD1`xdriqBR=Ngc``%LLB0+7+N#}YQ{5r`B6m>mFF{?wwNj~{_4KOj>H z>#N>_LXJcSPwdVVKz$&2XN)Rhd0f6!*bgMcUe##$$J~-;t#dgKNZ(^h*r>X1D?)Ri8kolG754=&P4O()krhH#*C^Ih)MJorQpGRwR7Cs+_=E7KFVhl_7txiaC@ zT{srLY{zf9N1mwYDVRw+^f<8kj(^;7rLd{T(WWs}h!C3oHcZktwLGI-=ojAQ46wH@wJg@f?UhFkiDmydWB#Xc`}%-*n{f*mj9O?Pp_^ku=B1ec^Hj`EK(k%l7K zqNa~3>$nGUe3wuqp31i$t%+-CJ)H+Oe|XJ~`q zErc;2R=5zjLpu%gyPs;{D0t`M@W#y0H$G|G_=~?@vn=;&+oHp+#kGDg z+bQ;|BQiZAz3e7?jQ2)I^&Iwm8~eOMva0Ja5hI(!z4q<#sNh+vjY=LD|CUjgggDjU z@lQkV#momPj8wGZ_u)bG!_r|9m+fH^Ejzlo93{3r9y}zV#k*a)aE50ahBr?yk6in< z5^3?(FJX=nY0mk`q@64hA1ajNeD1QFXXZ;EeWC}2^MvH#dK)>!Uhx?_x7nk<&Prhv zWtxO(mW*Zmd%16Vr^BkE`2-GWZx^Qv1b29y?Xvw#w=~RJb=j3rS--T zPa%Vk{Ln5tJ{0Pc{Ca8SDl|^DD|JaId5z^7RG(JcF+CvKSJ`Dc5NbNG$zH?~c33-k z&U)Uw0jeC#LwE#@vcFXMjIOX~hS6KcmNWu0PpqItF-ijPr^OJJ_@xb@HeX-nc*$;) z1ENf^%ogQY7tFn*ViO}%!!km~##3MKz{K)Jr1GTt^qfpc&0CP$SD~0u0vJTv(?Ysx zfDQYh;lRvE5`_nw#cp#30z}bWt5E26*tOGe6?5NCI07T{7Oe|2QTk42-W;dJF{PHr z`Zf~vrjfxp1?V-drd`y<-o))DRDm>!*DL#8ccI!b}J^)Wjz!A2^5cV=`&lX6}1 zP$5Uf&)Apyfk9VS68|gd3jx*Ojh_&O!(q7mEGC^KH>w(sC|dF?B1Ws`TC9ssekF)B z2gurt6GSILEFghu7a+?n59~S*wd6`V2WlF0*<$ZnQ-3pSzbk8*e{a~^!1o{Zsk!kc z8Y?w{Reh+9iOnM_d|_*|c7HpwzSwA^;4q0V4J7FRniqee{IH5yUk5_Vtm__j#m=NH zvmSmP1=Jy;7s-B-{%{0{&h2i$C{&djW7RBm%5cbinfh3fn*kY=HsQ++1g7SJ*ajhj z;?(P><||cqQv{@q9jKsIVp=As(e9C%SZ?wVk=|9Y)-(@@8H*HQk^_5+!4`K)M-7zU zkkViW9zK>CRsh;n0IPR43udDs|C%qHz~7lwXdi1QJ$JJ$6vw$$%Cu`=A9)A zyE<5>lU6YBw^km43|5af3%}4fbYWh}=3b7B{(JJgUseNFB1F1jsR9rwcu=~`n8I%1 z)?RK-0lG)mtIx&$=m9m_mf1tFrDZAw?AyNO$-Z3NkM==5znbuGO+1V;YjlR#veJNp zJ;CC4RxP|c;kUeLK>smK1FZ}#3K*6nf@c5nSg@;?35Q<_px{6FWTis?Fd$bf^b1<_ zaVwSrR_J{5yagLVW~=3?1kgu$cf|0^F@==azH{T^8OZ&|=#NlD01w+D9J zvh2m=>SSW-CBU#Dsg=qo2O@6(cn82PG;tDr{`}Zy>R6EhM$X}5E;6+fV)O_K%xQX$L%mhQs>OPT*Rk=LTCIxE0B~C z^T>|_3^&{zluO77HGG+KV?>c(pBS7J}{R}E1= z?&Tl#yeIdJuEZi~l&Xf7Fv=>;63_d&8FV&&CBN(RguRn`ar2E!=<8)Q7CI&7EHD5q z)yA1z+%}D6#b6R;jbG*o&eVS|h0S3@dsrCQZ`wkOAdl6^1A{!41tOmkQPWtKzbr|j z!90q92+yL-1#iPK;bHpcuo{0Q=|0@a0^o%_(1vAGE&byW=%;|;rrJaq^#SIg#6;WO zpO&yt60;5|yn&5U7>#uTcVU9^%vDcA2&FYrheENDt>QfL9)9hDJXX6i^&l~6AJRB5 zQ_xt}`0B(qJYPNX8o-~`fq_JuLL?7K)RJg0><8O2GnS2R&Hi}kltA7hKMw>0X)(1q z9>$n((mek2fLcFxaV|9g=x^QuwhX|xFrY-i@M3*GAdo(a2~dJY2{YP`2LL`Cy#Onr zfxL!4DTF+C;mm!JmyZ1a%UfPxKqp2YW{RAIoM#2&@N-~V&B z0u!98%H4(%Ir4g4;5PT=U7ZA^sb(IS zU^(9vnPsWouM}q~dX^7ZTm-+k00I5cxDw>_=+4qqC`zs(3Nk^#$*Lsu98aW zoM}^v=$@gs)==ovsqycR?hF$&tJ|y;EEsJUZ_8pG(s_5=LE2mQ9&Ml{{h8DXCQOs1 z8A-039h!DZzWXZ`j8sS2lU(agizbtvWw4X4F4tiDhpUP*>sUOX981Ieaf#Q9+Fi0jnJQN5#@ zHg=8&5*CIj>G(~|Y~X#EM4fWc@qq_>GhMc%XgA)i9L?ckS`s*~^>aIHo_BC`ra0tV z7oB1EejN^|Hf@~TWL9x8D@K=j^b%ZZ2aD{to#NaZD5pVp$G=YHg3Z9av|!lvxjtqB zVc$OMiZhM=@e;2Pt**YWcGQ7OsPb(RXLP1HWCRP5#HjEpA4OTOG@JQnu1t^@04j}A zx9L6~@V7}6?Fkp{D2eXM$DRgI>@BSXB4-@Q|5E$r*n&j39wn6YX(kt$Lp75Zx0Qm4 z#Jsy%H!}tq+XL%>zH1+scy^7J{|g>*G1uwN^k;j#OvwWQ6qLW^ef_dQ8?`W>zG?f> zHP^;a)OoEBEBZDi8Wv=|uW=Uv$AR;z1<^PHU1Tev`-72bbW6s?-$i1a81<7}gZG{f5>~wu(+}=O1N-$CqSTZcMtCF4iVg4f(CbYcQ4#6fd_E~$Kz1OL$_7F`$hzAu@c6@PH^8O*Mr9WO`YX`eD}xHg%V6ss0aPig~>}tCIZ#} z^kRT-j;3A!N`z4>39VsBep6Ri4H`un>0Cpx>7N6JMb74QiF3joYKp7wnkt zuPuij`H#ww=|HXc`-^T>=y!tyJ^8&F@H$Ye`0*lNefUdy_PgW&?r+^nX#D#teLqTh`-kTH=l>($p$lX&Y$)Wz!Xl!=LSHbj zNYEz;!@|KM01%O|aR|71c=>Sg@Ci9Mxy02U5>Zk~0G+96WTXOV=_F+}G!q+sJdzg% z8SoXbmKg~^j$XWniin%@bm7{o>vi2nqYtkR1G?9p7JX|!zx8--a?*bI|JW({b!??f zWN~Z`K*TWd3-KAI4h@OV`ou~*DJ4jsa&}LapS_h5@WHIB`lu??dwOu}A(VVnKs2^; z=W~r@7sa!5H?mZOek#BjZ+4Tj9>$cjT2qI%JU|@>=L;jgAd-UoLqYKX%)K0q)iP4b z5IINpXwq`cR^>9=EX8@Qv}y}xZLn@tYONNd;r~U4%T|Q#0n95Y)lH9cWNrjK5Tp`j zbE-X!5 z@O@l0$sOgC*d;*dEfF1mV|~}kRtN_xgfnyq4;>bT3WEaWTGStYO=<)-j3f2M!!O&c zm0ucb3cZj5wfk5gotOZ4X*&zL=WAJ0hkGEet zc)HOHB4uh5A;#A7oJ-`ue;!u0C^1(A&K{|H23>fT6k&gocf=w2fRc|x|8dtysGp*J9Jt$7aa*;tn%5Nj_k&Tdqb8?B zC+FOOcTq69$8(`3yXgd)|iU)qv1!6JzF$EjAYpC`;_8X z?7~RJW?gk^)c9rk-36vLexf===%CU?u-Ld-4nb`=YZLcLfJN(FPu>{61;IxT7+c41 zE?aMO*_osu-mhuex-h0<2dl*0RZQn+)b7x9QP4DR#KwD`S~xP=M94XBW7G|A)5vFd zL|zqs1+Xyf&bbbr=+o&-4O2j317YsmNyqeo9D*y}+!2>!xg0%nd~Ce0IMyGCN9d)r2Gb%zx9>+3=1cd1p-`~v`S;Psh-0VdzBRJ zx1_Sk^NrLy#nS;dsIwN1BCf~JpWYS2-rd6=s^D^ruQ=^f8DWxSRBM-Mig}HDw)qqXY_%v}=dPd!|is4Vwp*YG@Bjh)Wq` zt@z`brX^JLzhuKo@5q!1`He;?tvI!-)8&9Kzi77eyWX`kFec`tg)pUEa za^tT{QCmj*u4FElG~T;U6y=}CA&9OMf?42N=>&-fDN$leXC;Zn?+D9G`zUmqF#8q@=*-!9yd`&9{4fNxCnw#Y0 z1NTA0Y2{q~C-$+>*&=bHuQO2ziCJq~})TLRk zH$_0+WpVW0WmDW_wzRh@x+5|sKXq3vQ9UBhlwLp)VtQU9t7pZftnM8q;cN}&Pn>&A zoKosprKK_&3ENG}cyo1<^)}9ieG|V$Uhs&;M35vZW0sx3^$@d;sD^Hp6ZaBnA@>;W z=vYpY>NIf;$o>Agpr&fWaDou{CdYh|_Ho~%7Td9L@@wQEacM`pwCgcS^yP+r06wzS zNAln;^6CV`&Fk^ajcmr_O}lzmIEr#la(za)CS884y9yk(XTp})r#K=>zS)o`t|M@K z_8cz|U`eirA9h68mMnBUaT9n<7wxN-M-aEMzq~Ru@j7AAuSfN+a8!=@X}k6%>qxJT zfVH6S=)qWZ9Z@6vS3qwcx32L}@PGm>JL&wn-Ww)`Io`f=g3@U8;?rGO2`V>w*A=YV z7b;qhc0Ql85}BUVj}>{W*J4lNVZK&qRhg~2$DL@Om1Y)UMx(zNm%pyH(@u?`y;%r( zOAlhJ?zlgI_Z6DqnlNx9MZ=*bHFFjFa*ujC%=pUWxq)}D=)2zgf z%LSE?L%1Qx)GMLf!fm5D#iqFx0Nk6|pQgn#h5RNasMx#AhO|#r?{|10NzQMduKVE3 zc0fJio!*_Yyh#Nn5bwMrq^qh~Ag{zNyCu#BY>tjSBL|+tL5rtn{#SN1fGA4OLbRe3 zhm~gfl9M`}$Tiu()MDX6a1@xu(NS(@oYu#8RH@S6{3IRtF0>8`-qMgieP)R_X?aIa z8g-juj-&nlgG~h4{I_-c3Fnt(v`wlN{mS@lx?bG<>i#x=h17RxGzSdLh|bPYeq~$B zcxZ?Ix#qFS)(V`alZ-{AEj=crqRUA_p1|o^y0Gn=538xZ*-JvQ@(VM=cCIocOar2p z_iI&+qdcm+`q>i3Mxov87sK68|Dh~mP$ zlRMZE3Uj`m6f(@~$itF*<%(t%c{17aiIOjO;wb^_Xjk50J2N%}SVk(Bl}{=pFz`&= z+V2YHoYWP_3{pT24lTV#D1(B`Q`zzyFc1D0cO!;p8MbuM8EXltbRSc*D-?vdx?TqS0`%q`a*Z^Qq&(@AiP7(?ifv4}DDZ`0RzAk1BJ>YX{BkVDKu)J`8y z6MIp1-rQMC8Zsi<@{{p}hHv5&lwE?8J;LvK&m+SGiaYuGH6%YQ@uhGwl*EoPCG}w~ z*=s$X>Ljmw^_*aFt1F>Db^AffW1pXPQX{1%)8bF~w2O$kbrpL4N>AgHYp&fz0+yEX z7-QZiSR(B>*+;$RCCg9QZ_nxuw&b7ZX)&g8&2&{q> zj!_hjMwO1VOWsGDh4H-7D6Cj5UX}@rX&GkpAHS4z@>X`V1Y`N|X{r%8&6lS)dXyIH zzp?a;Q0`5AiJWq|S_dPX$)mg^**FajgXGDyPAB>rsqfBb}Xsd3ce! zLQyy@J??<;zh*Nj;#8<44?CXpv!=72?RGx0VhY!*tu)y)`HdCN{$@S zC*>UZa^~9rQrtUae#LC~qGNB#b*0IJ=B0~VY$;6$*NST|f>7{bd9iI`HNAqo9Qjfc z>Q9RSMc=caq9IA2O-E*&BQoK|(+<-RQj`=p8BEk(~^}obWkOcgVJ9A#63*F(JP+KwO+F z={4bK`B55H;%r=3Oa4@9{&?!MK}FFd!K(82-$@L+oV^;O!*_!^F-s*p^{aSlJ+%je zjm)~Nd`moEZqW^KHGGT^8C`7~R~L?8Z$uXF(`7Wp&m=>zR!Rz8Lecc;iZf*EvS;5R zzbAokpelo0t|WXP^;py8ttCtCss1t&D;mYyhG(`1&#ATDW=0zAk2=X9RLX9nuSbA| z6%@)6=`heO=)#?;;1^4_j&Bmez5-$ow(t`pKd`!>OcBGZ88nEL_j8yf-GJYi?uIAcMccHUcSa9d|PLctOeKiT;^O>ENQ=*sz^Dr@U{0x%!5a;qVo)blhO=R{#^aWO`Wk1;LX1bI{~M zZW=V|!QeT@5s_foYQjg@Xrgx(C3pX{kH(SJ=~DdwzlCM7p{`HnTERf?PS%?`Jg_Wh zE{N7ZD5ZhEL1}2+&rx&QYb~i$-1rG?YVFq&U!odB>Md+scVSx!?aeE5YDB zPl&dCx2Yq=Lz8EqXJaV+o(mRXJ&*JR_-VVn)tEAc+9|QyGP7Xihq%+sLG+rQ@b7Jl zJ!OorwXi7(=eo-YnCc&ywbCfbZxp?&3c~R#M74s=6jDZ~vyP0De;cE&rLs)Q|81tF z|D0*+;;If9{H4~67kh0Q4@GJ@!A5SP>N&5pjLOxGJh<}TNk+&fO~Z9pNqhtCE9s>n zU5e8;o%fU9_|sX2w%3Nc#3gHZCE?U3b2(BJZY}3w%XICy1~XT9OT@Zudd3wA;Ksrr z)T5**%3nycMr!uU;g@?LV1IC9+akfwRgx>N_oQT`NtOW8r0X4ZlxA~A8C;Bcjl_mP zsHo=UHM#hVJl!xJ@Z=;RR}QlsP;gERGSCPc1(0Mvl-_k9UOY}EY`|5LQUbc^oDI)| z92Yc=ef_dFic;mOc&_yO6`7VA-Xcn}rj)4kN~593dDynte|G4?lw1yksc_VMIPHaG z9Rn(MMg=iEUV5*X;v2kdK{IVuWHw4(+Q7@JL@xcNR5h*BvQ&EHT<5wI^BS()Jhq3d zQ(79i2p;hyH2M*yMUDYZjk%s5=2ZKpVU0}EnZYlvXlj8YJnHdULq>Y~*v}A0I`uod ztD5^-5#V<>j#2itQ-Jnj*X*rx{QRjj@($h#iLU?yp9h~zY@^6=?Ga=4Q9A@^(sk=O z2Oy8nTZZ)gCz7&E#TdlKP&-@68hz7I(y`BmJI(kpkhWI%mQ+7*Y?VUHdc4A(WcwsY z31a0Y&5M-iuP+UNm-*&6SfER%UP0t4%&ad(j0`~KsLB|&0HEUKHeoyD*w_YDsnuW2J#J-{UQsELXCszq_D$3Awy$PXWMVI?wsu* z$!5o`C4uGq3_~Wf9ic0bzi^B)IEe`r{?zYg>f>wZt>kD0Ch`S4d7u}1Rzt+T0!mUb zdyW6%4o1kW{V*fWsiUtVx5^>mHgD~Cn=90Z_EY0!b)t_6;hu;2bXhbOMV?K+u1$MB zOf6 zKs((K-2!$w?bnE@Am&U%h)*@+>WO5bzoL*P817nY!FP70_U!w)}N$Uk9MQF73!6x+4sioW|o`zru813bAKX^Ta9 zfu|)eMX81ImZYByzU{*Tu40JZ6DcFpT8`8w!~r?_-Rsq#k*~iQ6u&8K{n@6X^Y90| zvrkuff-*TC#_Y@I|-U$p_ogJd0cMWW#XL^yzMc^$D1K4eu#F*b*xYD=qQl3QQ9A zj7WX3BzN=}sIOrA`S^bi(i(?nPb>nj=Bjq}u#ajg`hwi}n%psmZT zb_vGy>i;-F-b8KXWz-vEK3H{p7{>*dl$hv7;Fva*=vZ|o6vb$@h61R@$-r-6&aX1p zQE^W(pvT0u4F=URyDN^fF|?woZgC22+VG12_M!y4HF9+5%!q&r@N1FsyiT4ZUBHDI zMHik|b_(9QQ%92!FK(^bNg0|r8{>!M4_k6`LtPp3nN(0b6}n_LV`bx2_0ghc^(u7E z-xPGMF%;|Cp;%(Am%r_WM!iuVU*`Il@Z<6~1#2h@t+{rCl9I=+;GyBzPiOC{@;=R} z&+rm;Qm4j$YE$7iuY4t?%6Bm1E2-(rrTK+`;Z=#23WOBZzl$~X{-<=!)ui*#SLeCw zF{zl-#uZmdU?lT4H)t5*%^98GDjE3SAy&2-B!0eB{5ro0i_!#YTWsmiVlg!M}UpONL0U-;0;Y*QQeAj;M_^6^xMDR5Vs z_j)e}2d%Wp6Mz=n}eHl-Fm$dBS~*Ijt{27S#r)yoMx{5EbdZ{uzY&I++SR$ z_eDC8L>P@^IU|w_vE$JwH-&rkt8`sVwHu{AYnoSS)r13lmGKOWdf%O(pef?#p&Dz` zNKy@39sCUCQ5MbAFxd3^0r}i6Cc;^PDyQMd*DqC5=xR|O$(GZ&0DasCOSTg0Y%jLK z^G|!JU7tN5_kL)no2uz@CSSwrJ4Cn3-4+)5UNc~`@Y!14ETZkmJ&9^%5-PH3!pg^* zj`Zs0aKxKln1q~be)vD;SM7V(=rzq-M;i?Fvl>0&xeoKC7onvW=077lGv6aSPmei% zlEH3R3%Elg#;*WHL2>)^$=j&T4ba|<8SAmzTD`Rg$q320=k>uO1lg>hF^6)--$P`UWeo$YLZPUS&@WMqMXk)CCG(P8>^%S$a$F;i0Emg-X2u!Ymwx z=SN#)hES6d#G0J<>$Q46T{D#npNGx)dk;}Zwq+ql?3Y6nCe3LCJ;(27;ez+6DMzJ4 z2mKwC0kd~za8@2N3v_Q_Q)U;lohvKB@!0Amj97WN!N>8fPl29R<%##e8bW=Un7VQL zQHaKv<>=!YXzZLblqdZz3;9}Er5}j6eXph=CaC8(3~!H|AH5anoJxbLm`Q-^Pm)(A zb%mwYFZJe;a{JI+)bnjMnciNSrdIEN8|UuK<&$@~53RWg?a!cb>^X^}o#9Gzlb>_k?rP1Xab%TGG1Zk+mu~hS|VY z9vNHf=wA*O_e)#Dfby4Av?b>JjoP;A2vue$eqZ#zT;cz~!|XWt$V`;WB^lAMDqA)F zA_V4!&9Iv<8Nhw`SY= zQl~gHNQPxm4e{@mUj53r5Vor!3ne|^MYlQPR(|rJtVq}B|E>|CWdD-uz z#MdTDy^0AWvoKKPG7e2{5%dWA21o&jcgudTbBHT)>`@#C0Ff2Ivm)T#+5A&E^I+8ntcFimE&cL;uxE{=bYde(62ICxMmUmIzv5*q(4Q z8~tDW!HRT*;6iVk9TX*XNAMRb9(;7r*;1 zq4|+MgO033vMbAib&XCL0q!1InOYVV<+NoTbYAYE95sj5H2JA9MX=tp2{fH1# zM<~wp$g+mKc>lp|l&Eae0rySZ0f1xS;8;Y*&~r<7?vY{O0;iLU;3F)AC+UBWn+^$C zl`-Tu%~_q1_C4?V4rQqWedvZ$;o03B%byb#z42@xwIqs3tTjG~BXB0>xf(#P7rpeDj&Hoj^-h+z8^lj}bC>kRek zPd`vFYqI~8|Hi0Dv)Duf$n!*_dSw?m8}-jPDn;+Xlh&wBBMzP0xH}Z!V{D!=qqOacAO`{>TRoQ#D4T8C-k5P*3dQ@S#?YN4 zgDxb1tr9`@h?Y!F_ep=Oiz}=>)9bJ++o_3I<~>kNbISyoE(21kXpHDBn}y|hLO*^) za?E9S;K=5PZ0WGFHK>qtaE=aoY)(NOLu%qnFB_|IFL%1 zT16Ut83uI#<3pT*9}IdU@*DUPc|tUEiI55jy_HdBrYIC^*F)3+!akY=cS5u+=o1R5 zRr7gGGmLlZ9fit_is6v%q;1R@sdn-jvClq1pX${s4OTJ5chbe zP;ZBWb^iCv^qyaM#jx^P9{p8io?Lk31&`R&{5;vNkf#LgwgKDqJIfJX%A_uZICse| zYHz%I|e zOPFRWz(|tAMPWb=xJFkzn~|VXRkTC)0vr@8mAbc%FR}KsoVUEOU_`tH{0SpHOUN!jwdz_FHOFt#rhBiF zs-Ewf$|hkj(<+DZx&a~VFn9t0y)(W68miDEsj(00fZjr@(^~$?IX7~fM_-J*9hW+E z{@oIi%q3o5ZA`8NF%k4?Mr3l7N&;P^E7ch1jv!EkOxY&9_uo7@)26SMi2A z51mi)7JF6s#Y*B5wU!|)p=QLm?K}oQnGAxky_|zFWhtb97yVdz7^`L(PqB#Z{k@PS zk+pU6F*m#S5yIkU7TBw;>PC@PB^oh!QGN<>Zuf5lAhg5-+k=as_j9h*$fja-5kV)z561p0V8lv0rD9(?aT(z_F2~PvRDq zO~LtDEp?-8*^E#lmqOxxZiFC)CBKeuK0_&bXrQP+l%alf^GIQxsGlMGRdLhX!_FC| zZdQ^ca?PUd9?dWE+ObnUnZR!?g`=r9M{axzncH%jPS(p`MA;-%))+i=1J^NfaOnqAEux!z z6eD~tvnp39Y8}!-^U3a@xig!Yx%|d6Wws@}#l)B`lVR6%w{yiPE}D+y%gna+b(|H^ z8eQ08i<5Jvdd-9Rcdp8P;5LW5!T~IyMug*YDLn>3CM=P;8uDtN6AFTNc|k?{Bt1sD zyZd3#ag00Q<^Guqe=7~vhBqjXkp#pPk%a>6n)vqJLE=bn|1Nv{o)d7?jw}LYU}PIJ z#|*F@aatko#jgiq#ZZnXqp!8QIOM|ejfHGJEb)b{*8DpRotw^wfCj*Gd+x& z$z4l~wf5cyg%{*wbn?S(GEEdHGmIm&LM(UqX3SAd@Ol3fzLd3DRbgC1xL%Xa2;*Ce z+uEUTmgkX7vmUasEyLwC0KUj|=hS35Is_#CDr3k;pUQZO3*1LgH-Mj)aKF>32D;xU zoWKhrT(q?;&G6MvL5|T`1yhA516%ACm>$fO#{~;1Y>orj^92I7>X*vj7Ul}_5syTx zz2e~7E8T=%C)VCiQ$&kt5K+E-OK_88^F{s|rwV=l1D(9_X&t}&l$15f4rvx1*V?6J zO5OJ%9dr04+bc3H3Lve-XzYP|hZ^mUawx6#JMr1=&dRFW6Ly%#O;zOZnc}BLf%dn$DBOBM3Pl)+Q&Dk!~Qn%N68f{mew7p5yE8O;U&kdW-iqDTa10g3$rO+N zjY7%ifs=a+HTilmW4OqO?c#Q5p&p@WrioE_;mTCT>kRzrR3GAjnkV&()=a?*_$9@AAw1(pJLb@QyUl<-U=s@fEiOdZ7@82<8Y@}BA&aAQia;ZDEekEOtgRCxXxFA z-9^hwj>&;857SN3Gih+OBAq2_KA}tFA`Bb=*(z$yyVl@dJ<$eML4#{%b#N#Gjs_lz z8uqeQ2UGq%s0QZCy9XQFCqs>n_+%E2wxAy&PQM4^V~7uy$=)zOg* z=JS1-Ub1Pr${&7eCodNN6hLCnDgtHTBtvC*LL@}`*C!T~+xec$|3y23kapCKmkouCbAzo~E&LfsIIFnn8LPkY+cw^YI+tWAUE${raw3)IHIz=5$l?2~#-B=; z;I43b9Brxy8ypLyKu$K8)o?# zp2s&2|KxR;UzM(Nh`A9RN{N0wcoUizt(c>jvV|&de4t8j3M`Vh6eo^N7M-o1rSb~> z^D6hGMRD(h%06b_+=2*+wAkCJ7t@#57;vb8Z1nSnv*!!5QCBoZ>wM`J1P7(K;~x=c zmcOK3ZF4Ws-c$lEsJqA5nXX%16$22U&-^-7KYzY+hNimmutEii)v!km=+ zrKPq-2UWI=Aj5=+S1#?`-3DoPwKD(z@Qndi-7iHP<*H!!gh89W*tkJwfpk4m5MRN} z;7yxRO-bNI1k6qSA*O}`@6Pr^dz4Flo3t@$)L=%Sn&)qc!{ERMxzCjC7-N*ZOwh9s zs3-jjSbzIFAQdh8c5+cAkMfLD11r_HvuiYccX1y}9L68!!m^|Y@JT)xrr2~Kpnyk+ zYUf$a?p|Pmi7e>j%yQ-OQk5H%tk}aY$cKB9!?Z!{%lTDg_255vr?m|>E;6!zYANTi zICi0APyoiNTZ?-aQb@O1a)RUfoBwCGApLFERfXfyyxF4TM2TCsdx)#Q=HV_0OT%lQ z1JeoUDu7&l3Qhla*Q@{U#(h-sIvx-Rl9q@~cqnFz8dONRv0N7LTre|UTp(K~5 zg$*5J!CsTB2E*_nUXRw3W8bbvJ1n+rq+Xu`y0695@@pxNt(3H(Kk_YAhlHk)4aty9xw3I@9VJ-zU>(W+WbVZpLw9p?JL0EWa=$liH75B z2lt0HlFxpl)^F^1?iWFSu`SP(=LG%Q3o#%Q=s8_u#Q0%NdLyoSY}fj2+K*{Ehy(bn zvpV*&`cBM{Kj|$kV^{ku`G@sj{^z~7Mn2;evlQJ+@&!Yc)p>cSrQGP|-WY6?Cxc5rGHtI9yymG#!yQmE3HMH2gmO~_M_Reh6nZ$Hgy5Kx zi6s=S|604LfkF0jW)X(30C=v0yBAJv^j{{ABfR)YV?5g+MeIae)7uF@@oO;YJ^e6myh?1e)0&2x4#liEwIldV93RqV9K9bK^5{kso;T44>_-*kf z_!*X_;j6P$s(a&yUjcJqvYUF8XG;aPoPmWvdRLeCk&&0zG!=p(tn2$<0dQYr z7MZBzoU4ZSWdvh()-NN4@ZVkhAhVyEL_@Dk8C-o7Pklu2lB6df@A#eAMJpZIN#5H) zIpI4~N|;g|p9es44~%X8RlH+0A_A;wtnxO!(t=B0T1=EgWjfCIN1V^HD7Fg&YF-Kd zQg>6CIa-?cfzWk19OQiQFIS~E;X+_IdUK9P++XVF`Nh<~QcgbdS}-z_=^>T{-IGl& ze}VA5%<^Ard7TN}87XJQUd4}c=hLOpuYGuFMppWPe9C%CtJ>}I3*8sfCw0^pLl>?x zuvwH?bw8~A*5WP(bR>PWd<%KVsbo!3p?!Ysa<`4YIhg@}6yWdii-|r1g7HS_Up&|t6jZ*uefF1eJM$4|nAD;~ zhFK$fB?(pd`)~UOv96eI7 zmtlUtE>&<;S6RQ~vDceV1Z3q8HV8b6LnMKsPmuqi9oVq6w9E?g7&ITxpH=VAmD5k7B;**jU$ zs52%5J|F%vDPn*T^rZ>t2z!~)<<2)E8-c{|h_BmujXs`Wy|-LAaB!r@ig<+_h?r!s z?-yw?$3NKq-wj|G$3sD(pj@2)^_+7+Vvuy-qZu*ce`p-Vk~<}Uf+QB6E$KKL>C*yz zt*OudhPTpu0x5TuO{NYyN`e|S!+{U~>P?;}`@f+c-&#}r6agOa z3Ygz~<@OH-<3J+`Fsw=UpqZ@;m5YJX z*Qu!HFGRlFRxaA-<=MnPfY90PZn!OIyq|AB=K^2xWoGIy!#gOZ$zNWse5w5;-BE#q)(v|(Pb#m^arRjrT{*EyE5aU z*zhg(ARFbQpGY+L<^F!&Q$WL|6x4Zzey~Qs$Iv~?M^Gob`5X#Wfxh252>(ODHuTU( z-{eE&G=vh((RJ5gvtk>iat`-eTQzo`kl>Dr_E;^V=oamAxYTm2WeUCm@b6*w-?rFG zURG0w)1=$ous9o;EL6Q%t2xe$!eV^B|AG}=v$H^lxBNk6G9D)&n3DGK)E-(e6=m=A zXN+^_>li8gI>p=69?rJS?zyIrm=Ei!6PY_KbMYpJ2HAi(K-%cJ=~18TTl37}RPwx;s-n@Ph=~NF)owG3htAxw{po=mW_AZF+bbF`zvJdSMDQ$$6X7~1qm z)5FR^5!-6n+jw98X3Bxw zn61EaQSq_nS2coND3YozIpV5m#(ti%IVXD%-v+{&!kxB~lXc`J*)4z2<|`ILEsA*# zGz@BJ|L(hbao0;vpPwpcw%SAYG3Xra$1K_}*jd(i6dDCJLDRgIgd;tfrok_uS~>#0 zwVK_#z#Q7JF*;Bj+jWSRyPlgEvgcTOZ4q`}Jor|eRz?xS;EqqHBp}i0qeL2jT};WZ z6h2wL&hm;(dK#ygADYe9g)_&rn#9l#PLgRxsD5D`SbVm$Kt=Q5hO|~+7AIUE@q;y} zQUkwMI0`wWdVSW)A)gMl{mksQ#Opg+LQ@J*w8ZOsoD?LE`yR^#Zc+Thl!*I3eUQiA zsFL=hhrniWUyX(Z`n)qh-3 zortn;1I&0e3CAk_W1COPC^YIHi{g%OXVTk zC&=zMe_VQ1<$jjvDAeU?(STh;yP0l`ciST z1(kk65WOs;ss>{^Fp)bP5Kx@~|2a>Q5eHsVMo2EMB5m)*1RZ9B;rZUEEM>l`NtcD)=v&;R zgBT8SYRDY_+D%V_T0vSm+12!c_R{k@Ja|IYYq-c@B|-Ptf9j@u1&)XA$b0bc0Lcw* z)4mbU7={X-bKnEq-?OS;y{Rbq@222ATe(^?K8+6e?PMP}yx)bG*)k15jo%@*a^PM2wIRpC1cNi!ntxTcKi z4(1DDjmnn@pZep6RXC5bpbA^Bk@DCtaotWvzQ|{3w#!!O1Mj)EKyX9G=h65?ZMDf# zfV!u~7uhe@NDkrA9?PXPQ{S}#D|8}hX|xSAd%s_cGvPbxiLJ`zjj{&`45`e6!Z8Gg z!c?R1-1};P>jF7VkLC4J`0QFH=LJS~Fc(BpJlOVzlar!=Gm{ZdaAPKy_58G!bs2E- zitsNOQ-be-hN!NpS%UIPNH5rUwN2Kc8Oy@J!W8BfT6gxv%;eSfRg8Amol2ymW5&lpz0BoBY@jk08;2GOW3j zy6jGu(bm6#IA}EA{J(eu7oLsX2UUeQ41rMbgGmv(lk2gBOjiT~rUfP)k5NeJP8h0J zH*1PRmo|mOaRq+^7|nyvpKE{mg5lpb|F=wTP1$J}OytTY%P9{_$GjWCFW%+f62IG~ z%-`br$NiG))TOLbLiI2hzc5Z5aRsldr1m!#X348IeD=}7K049hRJ%a_-%<^&m|T1y zRjDnNTg~Ftb&9j}sEp+|e` zVRW*FSunHqe^ye-KDFfY1axDy^m`)uCL11#IR0E<1Z?Fk_uGgJ^iI}PmM{wMbSjJr*<8_X(gIhk_luC5Km!~)57K`hFxdXKrhr;i zppv;7%H)(tihtuh{=d0Jk%6HrzalRnMDQsQ1NpLY#ef7)2m=g7qxxA{J1tktYp9Ui z&4}*KilFd%`e@ra6BcDzo1(_GB~(#f?1Pqah9_*K!hu5=8TpBuZSK$~I8CbjA*b0Q zcY3K{_0NX1KpUcXsYa~0&Vd>v*acBKZHE%H+7pyJXL^)T4@;$4w20|q)lawo1r_** zd16D$P_2l{P{el39hk?9T5Ta{YZd@ipC!5GzJl%^IV#t>Np%feVNHrfzyNZ^2CkDb zf}P=rKImuyB?Ra4`PHt7N9ayVifhvg;@W8&}A`$|#|A6s2T2TBgDum|9kRK0!GBBr$D30y2*LHX%@e*u&BWm$V%2* z4`au3jA4eCpWp2CFxkO<4ad&IQU4zGg-RYSl&?+KotfeG<{)Hr2j-ROGmox%M205p z)B7mY?d;3Bv+ML%$gg?f8$u9@ETFp$bCSs*%He`#^^8dI2*{HYzIc*pcE-4M=7@qf zUNTcHl7rTB^-d%l`{m7tbu5Y&$G(L#yM*xvjy5gS>IOP>!tn+H!AQQIve3OMwIJ7e z4iCew?|TD?ng{2EG+y}j3>*gYou^rLYWnM8OvW<6GA3QG^8kyHo_O}>UwMsfm-HSOd{Px+~u#EOi{}m$|I>6#?%3 z9^$UQbc1Pg2D7WSztL*wVwbEZQbta|hl5C5wZj0*I(;M`FR#!S8u@$d1V-R`NU?v| zlF4f@GmGbiwh(+q%&UDLC?ezfV_kgxE-a|oBZJs(q-h4Z`7Q}`;XHlw>6ylAG|3N) z)XJH54O&kHKN&?Y6tS}qsv1c)M-9^6LZuU{nTq5F<4aQ@YOW?{$v9P6PuX> zos5~UI;J5dYOc~U+%#+YN@|E8jP9PdDSJs<`-SHo&li?=cNr**Rwf5WGl0A0H|QkP z4S)=WnXlDS`EFt88_;Wg(RK}d&z^cSNLJ{101;_WVqk@+Sv`*W()X?m8>C}q5Tk>q zVoJh`s+m|u#fkM5K%mQxAgcEjfMuoc-z5f$7e8w_$xxh&Qq@(5c?k7hD98(%)*fux zyfP`~M%2D85Zmc?qr!C(+Jln>MIj5xGAA}Gj--P-d`TMP+8VO+eys}nfzASc4Z$-E z^8@tAf^1=lAnn~JZ;B*v^oht8qvPH8`R!)QM|vDV9)+rwvyGpbjsi;dD=0ZQQKW`T zBas1tfh}S2rXQ^0>MIWT;$^B>^g}Z=3<#JRN#w2q_1QV{OB&3ZUOP`W{ zi~XNScU{06@CWrw(0?sTqI!-V3C#uDn)iEuL_4leEHF!tB9znfUO?B0UXoiNNkm;X z36Fe}tF9ZUy8rFUZ8T*M9{(5b-Iv)DOef>1z5dX3ouGe+Q_&fl_w9=~-H-5b6StR@ z5wW_i*TIyh^}%UmFH61<+3XEjmrnL&+6!c2_!b_yJPCTYv#bDLO1vTnfvi5+id^sZ+k&Wsr zV5@p?qXPUDuz7Td)h_oT;MAQNOA*#aDj?&BKS=uu7+BE(jh%f3l+GWe@T#r{IWo82 z~Q;z{sV; zk+8P#p82b+4!c_=S)S905fg}^OZ!SA)uZ|hKcF{JrpRoyAH`?ie6fc|w@+{Pj*yjF zZu-VXNtir>kzFP-_zIhGg6Fj6Gzh=G_>{c>4{fzB(d4#frBVMXNI{b3*?ME5jXX!E z_8rQIsGBdFzkQ76SxJBHetL9W{V1b7OVoA{pL2KgM^6aQKADD=4k27HpLx}SI?Bvt z6*IfoPrLTH&l$r~C=)D3!HFl3CR7@14HK>k*&mph^L`w zhZjtncJjmQwfZZb(1>$1N`51Pwn`pIoL0Gvy7uLU+?^tP?^hlEW4;qv!1TxUce=QU zxE|<{KfP!zb8sT7dj)}2gMt!w1en0BkvbQBB9iS?_@zH3WBvFpPSnJpO(JKSBM*0iG_v18FT!)_|~6w|=G@Zp>df-=vP zTmMA!gNM$Y*5!$`N>i}&^ENtI@^z!ScZ4v+p?HYgnNuTU!2+!{gXOkNSi*~V==DU5 z8o5?&_5$LAPK)cc2z0268aD6EF}NKz)TXF=@OOO+QU}RqS1>4A1rH|OoVO&}j5OZ` z`c)K;drVkp3k=i;B@+mH)o_RgteD{saN_kB!6cj08{d~P1TS!J%`4q7z$4TVyDVU6 zTuO`M_)mcg4OAfghXGY`r-3-#5XM4L1t4W#LbU9~jSK+s^ zpZiFkKDK3D+lX)YJ!*dl|JOd&{oSc45iM=b#jE*|z1 zTpe}vRE&vtC378{qa7f=9~iC_Fh>7Uy4}KTFpDWdKKqSzFM;7Rpno0Gcc|#AlXqs$ zuV?CMEohCvjE6@V{L(;Hpd;rA+N^LucPO$I>36#x(y&t7!3KJA%8ZES!nyPWZjeZ~ z!wm2gU)wvi7Hi;qPHSk0z0&AwnQSAS+uUk}bwFg3;v(=lL=oZLr+?aexNV#u8~EJ3 zvsu*3>iBy|_@uc=(sEkeUgItP`)ODjoH!P zZ*H9lbJA;MX@FbMZnnkYNqyR#KR0m_@>CsqBg)92$T}D+i%cfDn}V^)hs=mRcUJ00 z(nhyuw+cFWwotT!Atib|$!>_f{k9i)<%I+U0>eBj=tx^h-A%fAj?(KEQ3mT#Uz<0| z+-`AQ*n6=k(3dGOYJu`tlt0We7(uoEs~-|j;^9k`Yx|&#IVjF*qgxpJTFzZ_LfqgE z*m{ge41c5`4(gJ(B=1=aia43~zUBcik?S{vW+J2XE7aPwC8;T&PYdK8 z+gS;gB=IyK6Ioc6H-87I?ds{yVw=U~KZ6W3=Op2&hzv#8`gBk1?#2DyTDdPz&56~zF=}n-5 z@yP=gjER3Ni%O@aT6jQMuO&Vv2G{8}*h_c%SWC5o73FY^3|@NS-j#!4Vnx&6)03{?^PTswq;3_WXZ~x=SdOj{P_%P zl8<@A+dAh(khQBe;aEhxpB%rtyjC%QAGemU(NO$Yi^JilL4p?M^<)imJT|ckq7z7! z<+E-0XXtX!kN+x!6O*>X(W1uvL(+Nzskm&!u-E9i`Sshk_ z3q`-pY6OQr)&WBIA86q@j*W~8Fl()ks2*~Ka1UK=o8IMx#iNSn8OeQCyC1RBvGy61M3VnW9(o`>?(WB+qWzKTPFW{M0d8IK}wGqNL~ z3akl(NirQt{jTmlE_i>xg3_wCg>v8I1O;2!elLO16ni=H5M~G zuqf@bXG@zgrMARA=v7P6#xdU^TR~Vz`|-n#(mHk3PW&vWDAciG=AobHJZ*%;68^q^ z#2TGeeKu?ZNM($jzxWW$M7HKL-k(rb)kAQh*Zs+=e*^gVWKB7$AWO&%GpG9?m2aA= zU@H=hOoL@tDmq_pAG|mbHitp%5=jy#yYKz_gC1A4p@p zk|78>n0r`a@(OWNlRR%klMH!?)!Ls07%p~%c`SQHiL&MEpE;GxlP zfY{PSR15QY513?>N9r^=P-srToHoJHT&=Utr-l`3R3VI~KFF1tj|RGmpjQ9)zkpZ2 zRBdMosN|otJX#BXfbY~h=&zwF)V6fRy)rSR>id+rvX`PrXnPl{g_vb@zeVC?$U^)M zz>@kahTh*rYk&BEh@s>I);_f`L=0`bZ~oQOfKfDGSizy(g1ET=)_46Xujvkb3sEyD zt<70xfZZFlExw5xLYaH}M@417Q1?oLF0a0FQwXfr&uwBHX_zC`JBXVCIo{XCL@wbB zz||m_mn^p|1PK+!Ne+rMj9MG?Q__wJ1o>tUEA>~q_+|v$xuVo>CJOmbO{H7sOBH3? zFYvxHj)WiUqQcNHIVK2Xkq{(K32wn+!85k^;d63xeiFC5z#vF2)H2_?LK;ujP8ThP ziBFDwAr3r4w?ODSK`Pp`nVkx0B^tqhhLng10)S#$(kEQ96Z+bp$>BKZ0+y+aOLy%n zLjyR|sbE-a!&%gX|)bjOwtJ%K1{scDCL1D}BWu!qftIzihqw1OPVYXyOgQ z*-es*2w2sj=mI5@VqIOxyGSG~WVNc3Sr9%1l%QwW!-MFl=`8|J^aYLE0v{N?3oR)r zsy_DSd-1F1=YdZY1e<>6w*F;h)mJp*P5(>RZzuMhl%w<8Ev+~1Lh|nqU;{6s`OS~7 zyCQX?#LmiDv6pIC)a}0CHG@-6l=<4OTyJ$LlvfSSc{X=tYjZ7sUbls6U#7*I^u3T0pOx?AOhcVRBo{ zekGied))c^=Rb|vJNk2Jo`N>JTfMUNa#Ur$5w(@NwNVnl=O3$v&7?esEe!tM@>P~8 zGm3Fw3Jf}GrG<(`abuAahiD zB!2AunNIuRr#E$-^cWfZBxrsE-EIBved1IxQ)jbCNtx?rvM;4ptM(1*$5w((S}25? z2cEqf1n5QJ314j3t~{_z(p9<3AvNBp(+dr0Mm- z;laWXE!$R8P=+gfk^Te1Va;7?HMgE)i3TGcBaP>m%fqEZBZJWwheDv0oX>PKTdO;o zyUIq@!3yE3Xh2)BqmIi7rtxxyO+;iRIKM6!Go43UI=G&NI)dIl98Z<$S9H_xHTXBt zO{`Ig87KYE=+@+N8nC7cTl)YLye3t$SF|8}TL}AK8W}{<2Lc=o(7+Lvx9`}q9hA)b zUF2Cf&TaEA37r24RhrlOEmp#Q1N=Y~%Y~=EYS`%$tJ3=+;eyuaxG*+Q?o;GHJGNgq z*GzoWGX-LFM63%R-;{Ry593jw$Hl)OSuhlKdi@X_XtwU`C;kD;jUT2~Ia_SMTw`Al ziu5F$!ULmqbZ+AtW_E?-Oz8gr~K+JQ%-a9FZXClB5 zS}9ig7TgYsch1l{@NOR`2Xg3)>OgD=^N@*U*HwPxy}F@Y8*0XP3FTq>xG!t$u-a+6_&PMRDQ8Hf zSuK8U#?T5W0Pb`D8{Rz@h5{8IYf}9w-gvj!fiN0@ce|`3d-qx%t65IH%& zi=vo#uSH_!yM)E`q)(~qt^`AZh9{`y;f20Uve2)4P8COc=f(a{II2~PmOUYyate3D zLZ*S(r58*s&HQ6K)Fdu*jL64n_==G*f7-w zvhBAahrS24;oo~q4~zH9SqB4|&svMJKQ&jGGvu^-b+Zc6JgJNpzoV7;Hr*L5c>V@R zy5;;GrwV?G3L3+RE-TgYGhrwmLI}Le1h*`;o%svPCvyce)HW^*A6O)HnSSR%e(NPv zM`Op!h6?Xj8KaA@CPP~3aC2C_LvgWM33s+FtpuWKx3;~Q?q>HO!_IRqI=<(*i6$#9XPv+ki{41cb0UnMn{c3(5!;F|smr7cP|7?$f8} zdC!(Cpj+x%FKrY*J^`UfmwW6FKUz~es7PR*qjspU8Q#F~Jw_ComOyoI=nlPI@}>lu zIaz;ojB5Fd>pMU!1ObS(oi56pu>2DcJ8t!quub}-5hB`#&n&jTsC?on?T`m++$mBw zIMf55yfA<7Ezjg#yC}F^D7iz>IH)LIF@rD%R+Y5+5eRM5nDmhZ+iDD+oFSUcGXDX6 z{u#FJ3fnvwdis^BEocbcQ{(8b7H_!QSCm5w59!>|GI`He{Y7yXx?#oc6akS4ORhrX zWM`5@y9Ak$%4RouW;~D7etHla`-ti8yd+ViTXN-m`T5K9D1+Gof`J;VHolUQ`5+J% zDcKrJiJ;VR(qk6~?W98FsI(cEeNsNucie3o!2D<|yu$Y0$8cFH) zi3vQG=_YA%s}aWoVk*UB<{xr0laI@EWZ13*OtuIm)JVf-P0dyOq&i8N`>LWnhq4ku z0& zUw6)jO?-`<%S3DSIlT%+$GyxdHGBzq6$cmx+9ye+C4z}o$S;Izp995jnDsQqa4B6V zP{8~U%}gQLDOT$C=#c#o;RScaoij~~kdn;e1O@sDNH~KIVHxaQn<9#pp>@U$ExQJx zR5_Et^C$5zy=SaiUDBfMl5vztmUtgC?nY z|Cjd?bDh5bYWY2Ek4{jykG49+62J_Pv*4ft)tr!GqgCrN%o(tF$nk+;F@_5dB(@jh zsvm~Gub1ws4u(i#7azM66DxT6HG%^5ENXKarZSBf4%Zu@0qU-=eiC1qUB=LGr#jq{ zj_ThS6?z@B&08C{DV{IsRQ-n+g&a%D)P#b5LFjjZ^1~0EKLAfcAK9$;E>8=sSHgS4 z)7sd36o#j;$_^x_klzJI0)5jHUTA&muZodfAiWNWQV!N16{R5Ojs7;E6D>JGc|9ag z-D4*w7J^s(;N%a8eVRum)yysA##1sh=ZAr=dU#CI62ju@Nok{o_VE4qBb7>jT4XUr z65q3B4+GaICh-2u3<^vA5Eh3C*#C@ns7oAzb|e>_nk#pl&1Zkx8oeS`jSh|kE%4@x ze|TV39idj9!_vl69}wy|l8l<03HY2mO!D*!>w#r5t1NK~SgsBxq2_k+wO}r#GDK_R=fsCGU@H>hF zB9TuKKDiNE--^b%>GUiizdhY1`R4~KLIv%iH-?CS@IQHTe`leK>+PFln#;X+ zFzEG17vW2-Q(~j7Te1%mw2uHFtTs>>%<3IqmJK)aUfT%1w+)XdIEBGkz>2RXg^r1B z@*L0n9Pxp{kYJjpe9GSimP#OE5CSA&MJNI0)1SvJqG@`^uJ^wGXts5mHPK^UDH8yN zfFMDb$?Hi&51my1v42!P(GQ`!-!*7{?w`bqj!G0z%)2Se{V0g%@`09q#>#2Px-^U3 zASAzOrZ#?MZZPB`M&;6?)~-o0aDc@w0rpz2R4k7o~QoVKkRAq^gow#oD+U35!c&@%+0=)5NqGc6i7MXpJ6^GdWJ zkZ2!6>$;hAnI3siMkDxO_9U*DTVuAqk7b8V_Ce_un??^5CqsZazT@Opdj!umtK7aR ziM1*#0Yu3?L0q6c`m~Yl&;2u?Ah7mUL2n^Acik^xC6oTWGJ4AtVeV5H2S`BQ1n=eV zZ|CF`mRZK2LrjkFheq|~MTq43{|L^2e_>$U{%Vc?yvqtcSB80)pnoP82s}p8e#qjn zG^RB)cnB|-BQ$Yqg z-b0@mI}MY}Fjw*3qb|gw9~o}>AT#|!I-S8UVt!k|>mn9;ws|49C(0OXRKq^WT|nK| zA9>O5ctguuXkQ>R9I2(&nmbQTR#l#qc#%7p71661=kobdQ(>3RrNDli4DV%pvi z_#S!+jL!t9h-~;3GV5qtn9bZRJPqG|<8eL&?JzzJl;ja(nI9j?gwjX^u^?}4I}4z^ zEXOZ|1xCKbA&@z!C>Xp_2UT0iVP`ZjY=Yo{AkOFpC!1%?5rZqA6$!8(aDhWM^DtPX zhpW-$-=>w-F;*#9jn~I2Yum4`a#up}gX%ui4!i9hb3T2h=17!TdnOUvUy(>yJP551QA{j%f}9J}n&d5XygW0FPHjOq#xKmWToIK8NB> zs!)UXH!P8#Y5o@psWl=HAVwqo3|Zwu1_t(S}iuO=~c*1 zLlcnci=e-6JjI!4n47!eC5SfinKaBL5<_=j6nQDLQF4h%_I(CU+Gt@L7Oim2kUMYV z^nF*Tx;dV5?S1OZ3W`_nl$KOY7@ve_KX$%{(!!!B1uHC7GUkNrY4%lP(EY%v(B0`l zbE_ohl__Z&=w%r)OWTd5sOdSLuEs|JloH>62-HBaxeGMnP0tD^WDb+Ns2?ii=N4>X zipfE>GY!K>N^tyCQa;c1MS&%BBvJMAWz^L9XK51EccZCldPdV0qM(mRXOcP|GDe!? zzKg)C#Ip(tBrs2_nDmHrjp8k1T`SBbfkaq3;bG1ZM8vm!L$H+2RZ^AAQ28CVgB-v!j<18(Aw57(QJR-iOZ;p7Gt|wx;yQ)~9~t z@E}YBIgukapX7&Fk1r<&=be2mEWq|yYp%s_8R^Wx>=RV z665g`|8Br4*KX_mMhL#@Mv9)`epzh<^YuYGi*;5p#v~|i`XZ2!tfCEzN^}1S5qi1b zR#w-|Za`y7hVYIBJ$rKsj*51CttyQ%=75y`Fa%>zNnz3Hg@8tlfof80x)qI1&rmoL z9k9`kSAq7yL$b-HC`oF=#&6x6k}6{7m^;ptvj6wj1jps~+VfXgw~tDybpQES@XmbL1d!Wrd(J{G7F^ODc$fy9!H z!f$}}Bp*xZM=~30!c(7X2Q$~!5MUZPNCLvWfhWkHag5m>?H?YDgTwn%9Q=we(v5UF z@R2Se0YuqP`0qu2e^A3UN>hnw)1->bmkxw#fk;4$@@9pmF>J zd4H0!mxnwhJ`#TO?lqM|nm}t}pCjF>()o1b}vukt?0qP38y> zi;YIC_}KpTDZ#I6|0Pzp{g*KLcShsi)oD(G@k2*N0-*Q=O9`PCue2oFQblS8JftY_ zp{T0tpFHu4>ED@4GyvcP^<<0k)Pqppi8pD&HkS632GeN53oCdJrcvnI+YO-iXH8w? z2L}QfXYX3K2%}}#IQNrLd%+@|9=!?Q2ZJ`N%3+I)4`$NB!C8DpI(U|Z2$qel&&+Zc}Oz~gBWhPi6c&C?ibW~hgV;!%U}5QYaJ80SKzxOl{*npYUJ)D;;{m84f2m{ z-O6}kYqoIfYT~sEAAP+!i4mt!zI3tKfI+DQ&71)S^$Ap_x<-sbTu32*qI zeJtx~3mPH&t+F!2J|+Y*ke){D#<&9+y$U)Q>(Q>b4GnjRFqoaxIOQuLm2UIJ$6-%0ypc$X!F$1_1~iGixOI}%7QX>XzTYPp)9CyikWsO97LM0j*k!XwP?UV`CxwIo zMf>)JzCitjHi4O+J4pWGFG6j#SAI#IOPSGeGh0U!ntS6$)x`=SlGA8MvQ5CSQObQS zHS|AUC+ObK(fcYBO?!*chZy6ryU2U%M5j*P?8lnUc#B4KPWKvp^lH2B)L{>POge*^~IsKdDH6dw8#cG0gs5TwDM}V$bAib+8fe7!taRNI0cXdkEd(`z;wrdDef%pJnQQEpZx~V&eVGAe)!>t zq^X=T(z!-`PbGhQjXAx1udI|h4W`xBSk=|N`f&6LPviz+#65JGxzjj{fn`LO1Z)D?5SHBcqL zNd}V1JrjFJ|r9=W9C3xPTN61o75^0MzvADirq*;9@3@&bD zh-D+YcQ-yrZljq3QQu?m)EKeHYr4}sYe&qwePL&a+1o;krL`ysH-J(H@uMux5~xw> z#z4U;v)l8B`H4(!Oc=%~MuG!nwQu0`Ro0;V1R@Y1)%B~}aESyPyppAXewh-T@c;Ev z_sn3sJjz_=@shlgWppfFWl_5bn-@n(5Kc3qh*`tZ7b3o#u{ zhr^&<20?y{!0^Ox;;8;SPNPq8^+!vct>2$Z8+T2bZ95QD@!+P=I1_koisAMlFYC~R zv3(wybJfkH@#>WDCdVtma$&-E^g2OvN6tG&mVKhUF+)rm zeMO2e1o@jWfU3*+`gqNq!NPyPm-n_dqpYdf4H*#=67L?hfoItt5)`4DhXrGt)WaixMxP9JSpS(z21t5(YgEbe`{RL>^X>|D=yUNW*is8k-D z#n2@ofy#nDvQm~0{`Xh-zgQm(HyW#x7EUNGIq&Y!F=YN2=VZ3Tg)9y|r-jo7U2qj| z(P& zZIzOqCljOBw5DNvzmTTYa=J_}ZMB<&rEZKlU$b7-56WfB3m8S_vnDLj^61DklBDIv zdK$RdjE8%YOMhEJ6srE>7Z9GrZ-7S4+q`8WV)dP8E^=W-F(oa9Fx*z;C8>vsLo+i{ z`0TwXZ;-@EHe_jKjrfo?=i}3|&T+NI>qQ>*yFtG&%LBcEl%)HGW!qk;cp0KCr(v`_LTABjte@N?!Kie52Zm6lEp?i= zzeG%GmK)D7B1mQ^1zpqRABeV80fQw<^QWHJ>^iz4DPbDIr?e9g;;(lq1@u6ed1Sr4 zIxrxy;laQfrtc1Shq3;8LJ)|#A?tB{I%|WgMrd|=s#`BX1t}k~Vr}CN{Gsg2 z#kz6@`f_<4TegFsv_J)t4?Om=b;*se;lBN5#i`)exEWpUuSwpK%^-L21Sf8VA(-UR z?_EXW^yEg;7Wp_6Swj;VEVeX=QEZIZ(zKf9E?dh4;E)zI~<>`r1pD_lN5T+v~y9M+B%8145G<+615 z7hjIId6n{Jds@=~wSYv(ChKVhhFf&by@zc=w|md-NahW6%i!U7CTc`=fqxu!NG8d* zD9^(b4;Z*R&$hK{tDVuvDYo>w0OiZEYr`AT}?*YQc}UZL!_OhNGyY)cmE`T>S6LSFM zqMTj;=Y5@(GA3G{Qe6mkqK>NSFEQ6H%ln73X(Kq+6PaYqAPGFWQF%iBR^vu%?2i$P zk3HGnI0Cc844$*bsdwvle)AT2e>{0>G%|LIGXNS(loQcZ?0DoDiRiDp+ms7)mrmM; z8wklFKV32H&~NX2m`wc%Z`R^7su=7~1DlJ%KhLKLz*7nDv;WlrXDtjdRo=*GZkaDN zqM_X`I0!@Lj?7a1yq)83bs~08EZd-ojj_tC%F!?E+_2$H8Tk^SDY`oM!tncLaLJF-9 zfZc;>-$~fnioQ`2maLw|Vzai~PE%rr1g?bKMw2$rkayXZvm}_7gOr8v-SYwJNOKKY z(lae5>|1)tqH|BI)r_VnvcMOViG6ldZt-`sy}kw z*pr8_`zoi?)zt(#5{}Fv#R>{c;~#TPLPV;Yx|J!wOY}>lf`V zuW)&#p^j8w43?xM*yVT|yh+_HEjnE9Yh!o+>TGsZ*aQ?jQ?!lQ{~()@6mGjFgmN{f zY-Hj3m7;-v)!?@F-|TbX0io1Bo>i_|oh}MEQdWArw$vy|@ne~e1+VNy?0GWc2IX1}5e~6mVGFPo$^YQophmZds ztH%=X;}0j>r)2u_%Zurg(d%CJPQ!pw&Il!jOrz_JD_H*FM(2WTiQ7ncc%AIm#!rmI z_k*z!!X9ag({IU>C|S&1JqK@dzS^(z)S)ZqFDh+eyEqri#%;Omr3dzCbIsC%NL7u$ zOq3x88ir5%h;K3BlX1FCC6ps>PnrHjOn_~m`FnguiTC-79i-!7f*PXPJLFasF@mc@ z!99aINIGIm(baAx$qUWU=G2lF*8SGWM*k9=mdE%tMIOYmI|g=BIEQ4W!eK>IsOdc* zL48H;xKoiL<$}YTQe`TxqQAC>#OF$U}g-F+f=}i&wH2M^1x*I8T%6+megR5BA@-Py(CH zZw3b2%miMGqtBD=u+vdT1jkyE9!@)G1 zZ=WTXEB4avum=q<8zY?}hp$o}uBD5Z1oSutu;Cx${i(`bzUu(#0%8-C3Dm4g7@sEK z0dQz5W<=GdYUc|GUWc4;3Cp^%DGYT`1w>a~r92&^sni)UZgP85-JF-4sti!>E#+TV zi3X|n7hP&jJ?v_FtGu&YIgecpz;ainxCeUzK8RbhsoTFItATm8pI)J%wgD5-3c>J`d17$Z zdKIIeZeMxY>4$vaqt;HvB`~SnjYVC+SL$HMf;s$1p-wA{YRr<)U4peu9lF%2f$~UC zFgnE%j-oNXGU{*B^Mkvu;)!NdDWXuTII)ZvJK7Vrv2JY|`T@WyJeT_H(OLhGREj}T zdWtK_cprBBipP^r;!f!1%xbKGrw+qv5 zWnny?z`^(~3E;-S{LF(}A5q1gjQ&H-$zrhhCcmA(j%O+#-}x97N$|2F;&u1vC#!Su z;Kh-iN0YODetsCQ{4*Gf;?c;MRcVm8K8xcbJWYJh>)fM>?e`dDL9kd6%`iVzM!IC0 zR&-+8AS?kS2U}U-eEvO$mkKb`{9MZS@~u>#y5`+CtWn7uARuXkwYv@mi*_J}P~$dX z(#Z{uyYIaWKC6KM?Qig$8?_JET#nMR1A@1AJFO_A{MDNuR^E5t?pcqvSn}&P=wG{w zD0A~1JNyVM0>AWlOjz^Fo2O)>abM*fVe7jn)8D+n|Ms4&`U=Vm|1~;7^w$}|_8TCb z>duo#fQ{SV@Idx zUI^+L)oMTEZwi?^tKxpaq{2`WYYYovyG z-gOBq?+@3G!Lyj#5|}C(&0Go(V?h3al1Wyoyjf`YU%zQ1co2hVF#C5~gED5%>H+vL zJ74{NYKlunn%sl*k6Ry^(RM6AabhAgGrleNU#xG8f@;$edzcx+Nc82ZU%!L|xFncM z(od;^sFMuChVz~q4@wKoe(L_(h;5vzuq7jHAFtb^NT$M)G5z#2tD;=dK|_w)rN?3J zCfn449yd35iycb>XlJX;B2M%`vo$YP;9i@vL0uI`>66xkPCHjTG#v5QWjkmUqFTg! zg83bYa5FRQ>VOb;k3O&=4($Dr8cVsf3Es~?S2xLEZAiCSb`wVG@i>{sl$RBqM>mh8 zsW0eeT{V-eP~FD1dA|!DGNLvjgc9Kr`e(>m;P~nvG@v2X9*Ecm237szwjcjR0Q?zI zNC08`$U?&H1FO6@RtW1zLPj&au=C-y_yNDb=fv>zR!L&e=^GhIO_L&ueNbbqagK-7 zc%%eC#{r*Y2Bq}dGlF6y6yc`4Rcri~TGEH^PL_%cH~ICNBe##vmZ^Zzu z#Bj6D?qi009pK?x{sZ8T=awcvz~*C;6Al3g6r&@tnwlQh6>Q5+9s7;vy@y)>x>p2q zgG^W+*y*gyYalFLI0f}{11KgbKku2TI)R?roy(`{1Dc0r7HSmi)EHsa?>!jv(^iVo zKs5L&MHN=U(pipzMEJ#UQqxRcWaNW7%a0Sv_hyAG-Yb__%-razBuOt;Pn03=ma-9n zB(KM{5FK5D!qN;zD$~vEW=W8sBmw^Dwk8$7UfFiY#kCv?27my7G)@1o!Ke=Qc@9uU zunjveBz5A9ILY5Okl~h$v}v|YZD|Nzr3)@W8e$WY6s(+-Wckl;{$1wp4-K-6rg%IV zz-vef#*g01Tn0{o=g-r#NdOB!nJd664UOusUZe8XI?GL1UbIj9A;E0}0WO(&Hr)a^ zjIwo>y%VARE#|$5nK~y^p&H=$(U=;9getSmH@!F6wC;m6kUq7T2^aR z;c$rXOiktYC0*kjm=4Pq!D8$y4<77$h-)HNqc5QNcF2e!Wa58^{L%Z19z`r~y z{YNEO~uS5X6+y zdpGXDU`cJj3LidO;IR1sp2a`QB`Z%f!$fr;@-*AIs>?ZJVlg+fsfs<{6J zf=c{1Z{)l0{MfHZD8UZbL0t`!bNC(@`c*5&50525`0;Hy!t$a5R`0^gp!a#p5I`YS zV7{bOue>du?df9h#U5sJ{?lkqJW+cyoiDKhN0YZQPHjG_Jpr_ug(dv8c;Z$_C^NDV zujImjRbOEwqB5oQ{*`~cvsqt7LFyh`x%be3fbU|RH_P|_$)muGmaoZp$OSK+7%O`^ z3mI(ug`nMC`$dqXw7LQCZ7$%!hWH#Nb$kHKJnvOd5m(NgFG54BIdN*UF^=GSuvsJW zqo&;HrUfki+Z&%-)T=}6_{;eZ0)ux4$dxQd7=t0{yMr4F&9ttQB|h6;pT8soNO}wgf_J<^5SD*l{u7SfxU4+V%+vo|9s}gV zDcw^V9u1nuZ(U=kyTM|T>BdvW*I^-XdI9_F^31fY_LPE_Il7y5MQ`wr$iA^D^fnrl zJl#$1G+FG_OUV8vf&Pt<6euB6Y+ouCiLi*0g_|w0Vzd}d%h~l#!yJ@MT_tIuW90m* zm5#)fWnugL=JlHKGJ4Qjb;#`DYJR?{V0z#h2HD*_6k(UibhGl@4m&CGe4Z&D1VN{^ z;3qc{0U`y^TU~4gMi`X&5b_bSN?%}li=*SiVk$}+Pwnkre~{u&TUEo(wJ zGFYS7_E!#J*=p&oVRb=W~ zTzoXO!eq%-v$DgrxmM}i5qppO448?AZ^m9EmKZ-EPAnctWttQHxmePm9htmV_EQH2 z0@v#R@sx;QNYQIzCrL$4jJoUgzXeENZa~JMU<5P2+(F9nS|aq=o~bgUsPGhFsVM%# zr<|ShT?X^OH&x<$kgPU=4qqZSWk!_aB6t81%ZT4HaXhCyTN6cPwrSYss>m*mhUEe^ zK7}z^_|03Kt5IiHtan>Sc-!=F^(el_B2fuZatbA)`=y`n22;aZ8*&GSq>a}&N`rU13SpfenW`h?lRJRE1Ka_D>B-u7j%!bEHkF$k2YAM@LF4A??l8_SnRT zBvWxkO7OAKALl53FxK$h^$isbQTJL+mNNB&wa)j*geX}_4UexEl0J^TAb13GWnd5z zS$cvN;GtjAIOT3mk1%sR7Wz_AIb6qx&=Wa z%Soy7FOL^mF|%ocJ444T3<$RmD7ZniOtEz*LXHVCW*>xCp18BHA0J|qW=nq64!U{D zpblw}(U2qbULB)s)#rgRQi&(pW~8Woez(O!@-dfbha((`Ik!wHKVi@;`2#VeXm^w( zh~ULzE+ZMh*j}D_W#~b?lAQUpV@Zpy3??$&OT#xOdH~DO5E4MHw0QGJV&Ji+*ZhN% z=MPXPRbO^g(MfPC--{y}DV%B@p3dYH22BMQl8d6aDoQmh zon~%rwzbCK$KFrInQ5*9htB%GG|WO&3$4w2iT+Wdc{WS-pOb+3n^wrLKZx5Z8Yt42 zC3B3yr!e_Em2*(dFYQPcNZVGIPH|1xbsS%oh+Y5X=Y9u^`O*N@&g6O?s1ac8o^T-^ zf%4aW?|l>MCe`3buO1~j0M3w!_JY!Y%9R**sMwm@ic?hDZvaM#urN)IUMyY_GR@mn z`*abbFntjA)`#>q58~A_I$0hSXlmIS(H8F5BqVE9@a$z>gPU}`6mTalB`Qdn!JKrs zw1=H@9W53+Ep4ha`Z*2yVmsSwbyB2Dw-qf5_xqFUEUxd&C#ZPF$i7u6L zIUe%+E>!7HH$`nv5@t2`ys$$8DpM#lX>lVhwp(2xb55QmVz_l3oL};ga(_vPVqY#o zX2f9}H{-<6b5)7Np3@^L$+B48;%Hs`xw7R%e_X`n5bTtHP2V|0WW>`~kM_+mH*Z{K z%v+iC!V%4@m)Row0m;rdX-ccyaVWFGFT&=If)%BU5Y4SJCLXtU-I-9wdA!PbOjsz* zKpv*EMtS~Pq>EeC5W-fK$DCoC246uB{NllG1axP9ho)0De2b>%T^wH-vM*nB11xJ&}h zfXFlvQli@))XgZ?*(5dRZK|X@Ovjs80&dE;1e*P?Yo(3i>LM^XoIP%Xpp@RdJXEU^ zeY8#~9i7a1>P$y8UIvqxq;z@VL z`UD?w{6VDmEDn34?7Pug2j`f@9?_5uaQ~14F$zz`e4n@1+7?1#a1fKE;4<7z_Vt5O z_^{Uq5Bht|nVJs1la(f~zpPp*KeQx*Vhjp)e?Uj)jXvDi;1jUvqu~-6%-;a00We=R zE2?nT1sGmTDa7;Nz2(Vf;^4VqT@z)=-g<=ELS9cnIj+8-A_hf5jRMGJO9xvJkKAK6 zoYTLZ3@1GJBUIg!DHK5(z<5SlTRJ$#Soh<6IccrUx#~Qvx%nyQ5ar9(@My;(w{h+s z3)cN-`Set1`CSR__^4XLAQHwoC!zZbT)2Bn5)UE_GL1|VEpr#Yzt?7HfS8hT=<3qV zC~0l&PhO0KPuCDdTk~^0L|jn8%G|ptUb)6(QG*2L!RJ1r#O{1cjk@`L$O0gX@Nrz& zGe-a5FFU}vcmdXUA_bWwU810LHGGx`XM)~N;VP9pkH?0v>i#nW_U0=>-{Hgk*zoVHISGX%1GH+!zT zn%{Gl1xqpz@;Se4J0TdT^>}HYME(D<_trsib=$sZ;{*@x!QI`xahIlXXe78>5+Dig z?!n#NB?Ono-4ir;0t5mC$ZfK}Z=b!-J@?hQuj;+3_v-!u6t&ixbFDdt{>GSNP_J2B zS7kwNW0e_zIwCLIsu=3(u|AjD8yy;J=sQ;s+x9jbvc0z7vr*S{59zTK{QyWz%jr)h zYcv_R4&$ow+{PTLMF-gjIMq+vg=!w+i>fY?@gi4LlUS%!Qiw#oZp&Mn8ot&$gSxT0 z%~|QRRM}kCD}B_4pLTHSH0U$I$kuR zvno-#<#fDm(!vXAUc1@%lCK(e#DV{bzPLa(2FP`6A1tc06#-%$?8Vi?N{Ll=Ue;gc zkg`h}V#pIvqXqnSr46+DKe$HNk~J)fw{%dT6B^jr(s*6m_>F;p(A7vATprbo59bad zu~u0Q$m6r!X9PvLIowqYI zuYqCFTZeyHH(3okZ{Xll&b|*LpMxpszW&}HG=N|XHo-P~&28j299Je@nFay^*YX zv23FAW~UW6*J1BZ_xfg$N6U?PE!j0Ec32Xr;7s-C9g%l+P*K95@Bg^iq}`%^=+-8L zF##r@h6=>I@86%$eY$jfZlb`g&K(3&+782wtrFWy<{1=^23pi|GJ|u}qfk5gE|aVF zcoX3G-pmFYQ6(nWj=v>X+U_7{XZBlZp=F5qKqUGy9m3OzD!!6ZCC-I3zNQW?FejP` zt`dMl_g(lSnciX~Kylk&iS$iGcSA^DvlkvTpH8<^)NJ-V4Heg)ykpkn>v#4Er=7ln zS8AvZ2a2yW!$xlr{;s!^$=WR|QUjVEGX|lG!2H|b8IZ6xteQbE;+Da`8Kh-=$zKQW z5J^iXbZ2Jx?*Z9sz;g6y)oLkvvOtAJ$`61F8avV1oLRoD=%lq$b zHgIsXC}eX-yeCYFjPd80SDX9xbWsv*ch5j9f(lOJu&ODHdBxrPgh1onSY`Z zI0}pz#ARkn(3jSYO-vLh`a)X3S;j2$p5TFVQa7oJYX`frRY%R>plE&+{)z|}NdLt3 z#wOltaJcNSQOfWD>smC*gIM$w;8#$lfHavg-d1`Ld%>d!j~!#&ZvgcgKkT-W<3OEq zj>Z2{9?YuoJ1aIY>m0&QyN_lL0SV4*0M#Y~2y5=2gkFu8?fon7TfD+W#$}0tC?n2e z#(|ApS#WPf{6+))EgL@*Ho8^r??+_YOfY~U0Z}BXPX^cMMc_ivFhA;60Uldc&wZHV z(ypjY=|;;dzS}wZ$PAEEs)RnwAE-pgB(e4vB}|2$#gg&STvl*6*0xyLxpy6%z6^77 z2A26f@o|`4iIEd+2qY6YgH>(O%1K#IKhhc`-Ogs$W=kspDhC0&1AX{FYvpn}HStvN`%NtJ*ss2XpM(EFj}hlO%rXW^<$Q(yC(+?1MX9Po#XUdQSuenr*z;?6f`f!PZ9ZkU}cPm zVBWQ^;SCH(*qBzU8%IEK3!{&iJNqogk1!TIi1(u*@g>~pAI)znNvdH$6%>zVP~Ndf zr$1sIm!_U|24=}HilRgp;fYK*V3j>d&%gyS&r)MU!jOJ`Pys=kD`IYAMQh^ODY}E_= zn8Z(m zAS1j3;JKz8B0USWd|Hes*;#!@gw$f7yr!=az1+*)blusbKrV7i}I%|n%?B%}^{*&m!NqpX-hr2S( z=1eqcBzkX&U>0p|7fRVX+~s_d!V5$_Xlk3P)-^Qf&-|-FR8f@k#(iuD68@2DBw2@^U&M3C$ z4Xv-zUf(`Ozp;u1r$9#+2_3DE>=ond)pN5eUw!BUE3<$9$W}DHf6-J}z32q83+c=% z0XHE^cOAkK%zOn_{xSQ;Xq6-`x3WOw>s#KX=%u4y7wZ`NP8k9zwp!dL&;JSWVrbPclqsaOTQXvxMbei@<6d@7JAa zWtM`tg5EYU(Mh**8uY*GXrab*8bX&H<;-?7XZX zF7T;^s)E8qVe9@r@JmsQS?cb<+>mlzQ{hH`FV)O~nI^6d6Bja}qve6Eh2sw?40r@L zi=BZqk?#ir-7EM;`6L!oD#FLRYk5fmBZA5YO_|21@n0NlzK4KS*9ivb`+>5{c*1 z>!GGAS#6+2r=*d=6`$3xzmD+d#lTzv$2YhtDhAzkII=@JYIksBySIWB*9|{k*%M~`N{vq){_0-XS09ZND^U=N z3y<2;R1=ZXvBV|ti}h7mL5N99^nLcH^ELTr*;Q{Cz6SJGCFvP-hp zWU~$vrE%3e@$(Q0jcBq{ToEKzW2pbw_|HOl{`H4|h!T8l;!Qbw+9MV@#BBhsgDgTN6Rf=A6UD(pUl#r3wi8Jsbr;0SOPkF^7%9^NH(#n`QrBG1M z!I}}$@xCud*!605()e$i*a9XV#+=3IA!anpeY7_I5dUw0J70<(AtqO=NAj4kiI&ie0$>YHjtGFCrlP3G@8P78%@vXpmu(Ns z42PLAppLx6*BkLKITEt^NAps$Zc%^5id)aS1~Pk9XbeSniSA1yu{3vcCFRE@ShK9h zlB%c0^;`PvJmfhujpTt&C4!47HkfhOuYRSR2c2+A2>a^5@VG zQh2Lb>C`y~)5I2e%%+zzs~Rny+KvXEkZi3B=c-)q%)>N@aUJVd*!JaXPezdY@>V1glO3?7B_2h7N;}1YZ%{6bI7*WfE84pZwZ1qfChn zH*Rb}Nzsm85pER6UX=3^lqw2PUhf*&u*A%7El4Kb_JXJ>V-#au2IOBBUtld9_s)L- zyHk7MDzfanm)VLXtY9}cVPei_Wm!%NdcAjif94>Z()$}A465S@jl|YeAwBaor@8Kq zD5s=**f4IPD;i%bJzb$a;0pTSSj<2?mp-_Uj+AcnmSxY;pwSdisf}G4UJmH#)U? zAM49`>6-*^{TehIOziKNq{_%&q2!@Y!ZQ|tq9@P<*3_Nt*!wdfCHc1f1|a2e9m-=H zb-lg&ulBFK%DXZ0y5$&5q>N^(R6}VT3#-0W59iF)sx3sVpHlL;?K$I}x~o0yhFWh} zD{8klltk0qoWK5Q5S@|0ZR_$Cee9W#qeFZ7Z@?G%PaUQ&9w!>@3!PIeW8J?;+oWd{ zmSYHJIlG-ifQeL+4nWI|nMSMn!XrRb2<1ymbuV30#l+oGm6sdXXM3FEa!< zCRLQ3tsNry=_`JvrP{exL^=4+LO%_0^t}5rM1xM=GH^0`c|OW|QoXX$Tv{+vyR`Gq z)+7(LPvxcSZfkf~rovOvj0fwmAnT_9v8MwRPkA{|oZF1o&BE@Cy*?dnl{)F$e!?O6 z=sAj8zt+V1pZ`lUoCj&g^jt^9dXFWi#ijAfgVQn zuOcEZF|wTdZI63fJ{EgD#@_J}$FJ;gcT}YY&y7o6@|McP2NM()zHs2e_mg1HVBq69 zPt~N&{Jv1`iglu6WMwt;n~5_kL$b-&2Qg`gmg^i_FCB!; zx|h1SliExSYI1TGy7$&qsTNh3kGEYJDDsKtjlDtJ`z!mz(IxvCy*xx5up?z_A-%Ka zt#1oeRtcJ2t|)4fNbI{fW{pOlBjUdCpFDJ3wyAaSl8Zfsb?BlTU48)l)1CPZ&@_UP z(N_NO>@B(a7j_490iLU;vuN4lGp2;FsN9vk`>y&EYWd`ey|DW$llAcu7RLLLvb9a{ zc5Sh|MR5cu;oO|s{$YJ46m8&4Y!Q~JQ);bjy$3-we10iaL8vohx*UhM`7Kmr-Ic!1 z;(2PS$fW&sGpQo48_j0_e%sU>-tGbdcQgm3Oi>VZs&=-K8#W#32<7)gKH$eaZSZ$y zb>(#9Un14dmf65x@N>i1XzBRyi0H%7?3pRPHkqmtQG|)O??0A8FQb zbtTEH6V6Zd_(Chm4RY$r!mtCG*3&40lH`R_F+XkuLwM{LX{GYKsX0Q4Ml`$ z7M&ybe(Lsr^at^|jv70u+CQ0ItVgOBJ_x~4a5%vj+L%dCUly^0;QNf-5{2^n&+l2z zX%9?-Y`UQk8+*FMLlS;P83vj7T)qDgV)HnYvz9Eqvr}K49R^3&>fbsUy9N_Qt+ak< zHl-$E21n7-Qr-qSp7=QD8dWcNffHyR0-wK|{SQX=JMK!T5X+g`x=1orF`d zL4t3-oT$RO<)i9!$+k**>p_BcQW=E)@r0{`V7ATarIhT-lBBO86Y$XBmX8xjxoZ4m zVUK!+mOY&;mSsB*X^$?mzs}&Yl=mla`DbIZ#0!&WVPJ4nhxf*-m0Up+6ehYYvYapK z8!<$Dfr5J56{SdQ&<>`8&Nr0GGU^nvJqA`rGzG^hrXDD{Tc^`^3FI#_b@d#0BQu%uHLyqQKKZEiZ! z0Zyu6uYavL*eTt3G;jvLSl4LD`E&@?Nn;U8l#qp&AtTL#t%-FTSy@u#hpbd5 z&ra2(pLEr;_h7l+wN^gWAK=P_C*zQBVU1JbXM;S_drv3(Sq~53I%WZ#izi31S+khR zY!_|w*p)!*O^LKRT=770)dR}))dI_;MPAp~QTv|pWCt+Xf`UKF>ch&DE43}|T#|&2F{O5ughTWLH+BZ7k`K@_4)QJV2tu6&5u-lODsSuppu3OFEB%li!i2ow zwz25*)QaZJ9Bq)Vzfu+C`j4*{)(4RM^n(n}Y zt{@aE!8r1sj60TtLLObQIXCAIY)>NBx4)llV z>(PiTeuztmZAi6fS%_LVP&~TWrX(9Uh3{0iH(nu?*yLbn?g0 zN_{yI9W5+PGWOfTGXZ#lzjr>B+1br2%oU>ut0^jT;QCoc646!&Gz&bMC&>1G`%95Y z;y{!-$e-IZXSk4Rv|sNOy9}JT6_cV{FGnLhS;~e_MW5e10%|wV)mqZ9;#EKTF8e4jhW2*^+kmJblB+LHas3F@^U>p`k${ZvNLrJJ* z#oSEs#cO%sCa6_kKTN|gO(0>Mz|?Wc90qo}?mt;i@UIsmvw%|KMO!xdY_^Fd!SK7u z&&OV~B|V1~(wvAVu8hgcIrc5unB0ACwZOEqQU!q`xJ5W`4YaN&9}JT zoo2rQ+F0tbbC9`q)udUJV~ZwZw0^^mKWQjzqh7*hHu@X3wz0_lSoqYkT1p-bT80Uj!0PX&rQhvckxdvrY{OKFvRBjky$8fu)8GY9M%LFzGn^C=2Q+3w;rOK;#Ap?holWccpzO&QE zp8L?`msEpCWr}O}$fWh6@0y=r_P-@zKzjCYre3HfI*88$0>Hxru>S3eu>EIb_xQOg zwNp;M<^Haofl$uz=jM$!*ZEb@n5Ka@X?lO#jI9imEDgt9;Vz8st57dEd((-1U1aBq zzs?;%acMN^wmqkFzx^(uZ*PoYN^kTA3DS5=URdrMcH7Ppd=?ESQS zz;8g(VfB;Wa_GC(FG-3hPiYTY45%v+Dxryyua)#Q#z+GJBY9Mf8x7StK#NIC=&D-A z5dhKLk8}*vgti8R1qWWl+dR$0x(U-kwvAzz9_Xzf^K75LQt<{AqPizgf>D` z_9tavu&!vwYP~72t>`q3B~Uh!9x)j8bbVusNvqQR8EXI^8RCCdS^9J=9y6?byb3y? z;QY||K}0y7z^QZoi}%wOHWH~mSQQr<8HF?x{XjGB2v`P30M?s~W+>G8M1=?$FaBvta`M&`^N|E*-4kwhEaa1KnJ@4iR zny9E~5Pl4?59*0nUNQOD)uou9g3jW7HyAMor1EG4>E5Yo^tea6Q$+GdDG%buV(k!C z3A$(2!H0urRGMC&HX`3xeloF2|G^l}@WB1Vxo3J=o&^W(l{socWeU*D5i6foR!o8? z6JcA0HeWxPcojq6*){7ohTh~qH0rLs}hP!$Ez^YpY_)s*tkEJ zAr3Q+GSVk`$Bkwp%&dzmvuIJ_bj=i9h_#0QkZ1S}`rMVv#AOX{UTC~Qy^7&9)5s}R zxi$<{q}_}H9hT+>Vss^J4*5Xx`Y9Ygxo=xLhqv;KLcSA&FGT+XXW}=^ zt|kbBsv8&CJ`0HYIBOASTxrYHJcYZycbLk9)i`jPSZD+AM8{1Mi^d1(U>C?*# z=hGHu^0NQQBdDZpXn*l;ZB|LKkIU0+370yZZibo9wOuw!Sni|0Cyr}+QOC7O6~i%7 zA)zBKVkV&oH^JQx=5eDs!4Ln7A z27%bp85f%JpN=DOCpe`ZPnWvQxL_{||EW<|S_SS_sPHaMvnQ7W7B|BWc;+W9Uu!F& zsSk}cqdLb^1$mbTDk3^+qkD}8OjeUQZH;>w87xA9aB`8bhM3HDI|3S7_!O8)_VF9s z(ukxqa++1D0ht#u21(e<*Qhwg?sQhNUhl2k{ayM-$x2RI*elE!5@yc#egi5sc9tdO zaDA(j?BD$uEHZY~62b68Le)ttU}@E&ehf$k(1^e>?Cig_JmXR#SI_ z<5orjFb5PPVcBKq77ji`&m494?q?5}RBqw5uRldm7M0O@FvXG2iQr)xR)Vf!k9+2r z>C??fN7+TGjnm=jPu9%?Mg2!&Oust}stOrDA9(e{kN~cg&U8eY+w&Wn{9bQaI8lu>=Ix)ODEvKBL)}ZEQccsd5;{@bi#8 zUTx?o2Vy#sJzSGtuicQ6_nW3!ufm5cH4UczxP zuXne(pp@e{v08|_fud(BzclEntO_Gb)r4zF zY>`3{tq>m%>3ArVC(4GRI*&JwD`&dCpOv3(-c*#30q#NANDmaF3$%Rh=Z)|)LQ>di zd2xI+j-PM8&+5?7=|9-q5Cg^}_t|4k(MeT~Eqz0fVF@BJ_yt^zz~`3H0kXSqEYSq6 zpk8nUJ0KEudEL_w?CTW}f8fb9A+WM8bwP=M6_Lb|0umtn2IMd3mK7D0&^VtN%pA~V z;3)AWUH8dg=jvvADe3E`{D15hoU$3GBNc+Y5-GkG8h(7f683?%>>YmmV+ft(|4;v6 zMm5t|(3eJe7O9fRLXkh_$?H0p)BtBfGaAGZ&o>Tp6>-VyT#E!%+qVTdFfE*KnKg)q z#c_z((;I9^$pXe0GK+ATe8Jp;%85Y2UBsEu0Xd%B-AZrAm1OCUG5~WNf~_qqCq`hS z{5x}}tqu#y6FFl>BAoS4R+9RTmK)*dC8wl~jMA;aPsNi|o9KwH6Pa467-Ag;WXT_R zOA-|sbY~wnhJnJ*2@+ys99>0S;N}FJgJc6??VE+wL!V~A>z9EW*oKv6VO9ZuU_zI$ zBhR4#MhWSN=v`0wAt1d{SLIw77ozX2ODHxp|I2t`X+ zg;thn33^}WgFOM^!oh7{8T1Y0wA30<^KyR!&Rl*E0CaHx@Nn?(h^Xj@C`hPqh;T@7 z@CbnCh&Z_1TG~i>)H=EeNexsqTs%_Jn&xiq^%n0NXYqMuAeM>Sw5}e7eSETdfywzr zGrgYgf(i)Yk?H#Dey;*h;otzzBw>9D&s3MuhVyA%d1ITA>q{FF|Ig3=%{3T#_8B9n zI)p4}47&+4tPIn{}ZJR zt8m*kj`Lrq3%FJoc#lI>2*K>dU-Ce0|G|K;?eRH|1ETu0814|nOM?rCVG?-_nL`aD zhl0Tkf`$&=T*FO*nVq{ggB{{uSN$VqsL!xDS%&c;Cnt`8;=ysjL@v=?-B?OiA|>P~ zfPZ!syD;4xZp_ie1FrMd&tIN*FXiLde}1!WkT^4*8KdUlUecORLF9y^*+U91?Q+kv zmVCj&K^@**NyN!a#{_|o%-##t^h9^i=J}5o``WOf+RR8(Tb(|SgX-BeMv6<_RDYIB zF9IZfC=sZ69;pO(3AZQwsHLFA7!f6Y2zI&mIqc=Gt8| z%7wLw!6VKDqbhbswHa<7DfK2Q9JDk*Nb_?rXA@Qx+PB@!bvd! zTWW?bV?8l|&rxnf`q#06Rw|9qM|UJ4Yl&v6IPaedUB5KyMd-wPzq~~`2X!F)oMXae zlOyEJ1K?8g-*u_75&M_%y&rw2$)U6hK-*G`!u&Lg)r8z8PqVvBYeMo7?lhGH6~P^W z?LFLa`A#M;zPXqqg+qv|TZhFw58nu}?)d}>9ZF0PC%6Pos+}<&z#2lsCWxRYGEKTg z9F=4q<7sn)(&9%O@<6L18;M(zlR7~cOiA$FU#TmD(lE?>bPr^=RTjNh%jh>F2e`Fx2bw-KN=1U@;J$3y2Pbz@V_x_ z9Wp9q?{pV{4{BXS5*&CX5h3XM>!HJ+MkYx$Bu6dEm@$F_^JJC~`5o@_m$#uNq++d~ zyHiJgwRalr>ak0HQ-wlJ4@gi#eWN(yO9fqKn8+>m| z-5wJtX58rhry%it(R;5~^X}otX#aLSwX~++Ao6ZAJaxZ(zluXQ4uFVmCf>sHrp-dl zJ-ZrwZJ@ZPm~6m`cPIDkYdN7O0juIc$d~wwdIUq#0XlgE#@u6U`xH7aAOu=DRON}5 zBu|cvT&h5$kdW@qPJ&FN5fzHR#Jsu?XPq3Y8v#tLmn@RXd7bc5TDvJW-1HeXD-M7D zs0tf7*F`*ke3EI&^H0Il@qt>B?)+7L+P&z64*3dsSPVM(@HyvIDz?nhg=`k5n!(&*bJ)XIOoy)bnF znlUc7lVcmta00uX$ONr2gc5K6{duWuMkK~P0)ruQVP@gd#N?kkjG(xVzGg7#d5-P@HXLLIT z%%x?7y$8IIj4`H%SJv%%*Ta#tgl^H3Qy)J;r`<-4IfBKi>l;;jzx}lPS}0snR*{dT zZA7Ee)8Rrl`N+)zxKa)eU3)i4oB0H^wW%PMQ=Z@_s^O`FSa0NLGfh-#N= zIh8b4$k>bYz41X45~lzD?Y{xIx##Ku_1IhNu0!ED_(=*s{N>_u{u=oo)6_Hgq)LtN zd9vO}MmA4R`B~58bnrD#bHj@99dcW@W+LfrN9qu|vN=5N5x zTN8-tH@5c~V+X$W9Q;Yr1_8bH^S~jaq1F&bf)4xbKT==nhKy$|^-Nji<5h^yH|cYD4ai?DZ%{cSq>Q38lBdu-Vs(!kmql#(^|CG zOJw{QRa0nb|A@U^?aBL@#PelM47-_(oRv!uy7sCgB^|DWtTsxdv}-`#2~CM&fwcR$ zBMYNmpk}MfnofB+R`ATZ#$~Z0G9#9HV73d%m{lZqb#`EEqjpt-_zx2=GBO)jqV;h> z|2FR?)DtxJ#P8QpQ^`u?~uoWJYF$dusmjzVV#(aVz2L{pdz!RD|AA7q|k_a9?8`%MuzZ} z&<5+Oc70wo0bar4}b%hfJk(SN#xm64-} z=J}N27&&;eLE+_-qqs1ObXm0!+!wqoi>HOkjo}zdO?l6ZdplI8N#hvb_<*+f4DIzQuJn<8vY68%Rv*u&7uP*A zZJUBWn>Zb`9}^x)k-kY*M>gOl>TpD*iKiY}-y63NKnwO})s4qsnN%*( z?eEi+U#~s6ZPlS2y4^=#iH?oO{a5$RI*oVy9f}4wt6@jyj61a7w04Mv(?cS5sT{Rl zf2qCv4Jc@1z5fk3s6qP;ki26J?3sFmZQct~MJ)Q+ACoo__5D4CJ9UTjr+Kqw&ISGm zB#3IAbdjZHGl z#rbY5?8)~7+9Bx!p?b*IZ`>oTm39SF3Fl9|>iEO9h(kv_vqciOlY+-2nv>Jx*Y@km zH5H#HP|5lSv?p? z{QW9ZKnl+MIZo|@Y^cPKgmU`d06YSAl_6qTlT(K@$WXl41?ms{c+P^YN(>tLAZb6( zfHM%U3IdDqvT0obQ!rLfm3+G-wXl$?xe=F>_It3ZpGH}hKoY{rJh&&9_yqo~xUzMo zJT_m-e{;rR-ZC`A^2>MC>#YqiC$lxi1#OwtbGnt?1*28n$PY8a3F^b^W_0^UH~+d= zQv3~2S9=J>Pia{Zx5-y>bIj`$`uKjiwTfI7wfTpX#dm&ccEtBPPP_d3Dx@9v#Kzi2 znBkJ{O2>w8w(GtiuO1%Ri)c#ifj+k~6gWH-IEW1&^mv&UCW4xmj|GY_$+n*xXjI`D zlVMUR&d5}h)d6f4dEn?ibC&78c1xupo-A~7bO>_oK(SKpmeU=ij)A5dCC4Q%G$l9& zIkZxhV>9ziF)!JFxxoy}I-rOf$m|~u8wg?GB}OeeF=tAa*%qEYOR{{M#$hAEVJ-nl zlvVi+D6YZmxAjkW_j-_Ude=Aon8{%(k%05k-o961_%V*JBcNLx*G20Y4J$QEz+eq# zXccWJ&wyW{X1U{K`%9;J!#+6xA)79tOZp-O?ch5D3Z$m+D}L_ndaByqVJ2a2Tn-5c z46j$T7Z(PHDw1j6Uj;=9(DW%z)3OINqK7y7cQ6dsytA@6M(@<-| zQp;fRC#Nu|bFSPPhw;fPPrnYWf9Kx4nIw)R#>LhU4;AAze^&pG%|`L|xU`NEUnW_^5frT-Bry zy>3A}aNnCv+VD`XiRK_t>z(p^MSxLN41NLTfA@SJeP!MB6^+Zv~U9J9>W4w2Ukb05lH(lId%R&h9;P(EQXvgUc1 z&U@Xd2h}h&>XyamQ!EQ}|bCEBzUH&!(8&Z@}s6 z{s@De={*Oq>DAv;PdA^}lVN9B&+XmI=89gyw>RJEOHz2a-TKcRe6WUQ$8nhN%{Cm& z?0tMVX;IjKW(s=-rB$M3cxFg6cd=#~UeW3ceK!2MbGO)QLUM7)oW`AcY28C?4~nA3J%1I}2LXJTu-5wGZAcale@D)|B*a zUG2~{Ia>K6dS9a*Lh1YH)krZv1{Kkc=W2` zu&;F=UNoN{jcmC$6D=+{O4q%JZW(dco6MwJrf!k|I3B)Ly`W8EnS3yGIyN?}IdW53 zhUuuD$25}PEcii!%hUFEFN2DG*8G*ozefHO(kJJM;vL#x43d~h}7s%&9otU)O?}mOfRCQ>KviHLk zU+??r%_FxkYT{dIuI2|HyuTy`XI!(T+ViO3;?&}QeC<~>7a9x1s1i3{dIq`4c$SDa zEKorkYlds_tFLRGJZNzkX3B)pcq4wb>tmNgq;4g;f&^mbei=u ziUpUS_nXZpt}aG0b#10mhC<(bh}-BU8O*quK~HgMh#q=_eqLoztroY97RxCkk8aN! zZy;17+!XgspR*jt!Fxr6Go}KS11ZG(?DKZMq+y~NL6J3-ln$lXk6GoK?AFWwu6 zl_ETqAY@b_zImz)uz(RqEEbMgpx%i-k2g#lwzN-(GU~)HBHsyqKyK6wUgHb=dS;lh z>u!3o|8-oV_X%5V5(HvvU9GlQ!(<247v|*!wyHT*pQj!|UEVjcpS1Y?yVy`flZ}K2 zy1B|oGMPIBe)kX5NBZ&$u?D^O`k53G{3k3aKtYMmIknEQy;yy|`?%Oo$;NZO#eTJI zRjlIWd1tJ`H08MCFORDO3KwvOp%i%EqHW2q=yqRpJDBYFok(XV8!Z)XFSc#TNfHp& z*oYh)rU8Egw5o@`Wgd9^#B^3!7sg)bg1L5YK$Il1Qp(S8B$@boeI0#e0+DOW$#+EBZuKNE5j{DP6Xs3}BN*}I**ojq3( z$hn|qFOOULdBh>JCiZH-AXO4h?r^)FyvLmJH{iV@q0l@_bn48uZuh%7EdIqd;yw-N z7;6cmTNwf}>A3vmU0C4%kzgoaQ3vPk0j7L*RrxG$v+VGc?9S2XJg#5xS@o=0gx@4vLRcp<#knu( zJ#c;Od-q)PvSsax8{}JVat$Ojuxf-ovwUZ<1LtEe?CD1tm;G@mzg&kNd>3rkAaNnx zB&Y)&RyTj-*$~DygK@_<^f!O7*tf8{H3%T8RDa`DZq8-Mdo5(MJCt_va6|9*u}rT^Zj5d_Kq`n&=^~5+9khA z=WSTts;5${E=DV%aJePgfy#w;qec25vzB`dcy@mYt-gDLISPY*FWNm-!{GIyN=Tt;J0u5}^I9n1uI|D_i9ELF&O(P=ET_peprF1$ zwv#kb%>qrv(w$;$s0~^Qy$O?W^#OV~{HS&_G;7D4FqY=AqxyBeM)B*qZ$GMcOjsmq{;2bpxQb~XqslDi z9fG*BBlVFjMDc4d`n;KqNrF$b+jyTX7rWZv)hmA)XN08mrmGLK{+G9*udqv#yWl3# z*}}sYGC75r>M1Ny-#7oSANX&M`+shG+7GNgbXxE^vu0OZJy7j8U_1K3Fkf*F61hRC zQK$kF(UgbK{96CYo1SowL#5CEN`AGPQQrrj-K51BibC))aV6}D>Iard60t+tr|gT1$oiYr^cMGJTL z!l7^r1Pj5naEA&KoCXRDlHl%8Kmj2@Ah-ny5IiBcM{suumXJV#OYSC}?sK|-eeON) zjq(0?W85(q1r$}q+Iz44t?!%PoO3yGCc6we(YV-kZFRp#ao_; znUYQl1S)GRYSq!9JwIWs)~P**-fT*2X!CWh>r z0p&wVN9x6aAq}nUl+1f*2-?(uW#Sji7-8bIdzg_SAY3XeSf%>vcf@yLg}h3ex1+bb zP*4e&H=DEzZrxj#cpznk^}#Rj4&BbsyeYq9-44x7k3Q(wly!ge9bK#X)Yt07Ke8UP zWOcftmiVcXWCeUJI+Z==R^FSk>3=qQTSd)zH{Xihe{BThJ`IPt?%w@GR|OIQ65Oh%5OM%m2<`cb)0U_5FlQm$FPxc&1Ql^v?pRLD+>vhO15H zI2j5P*q7Eo!Imee_C}GN;~={;!@BvGJ6p&n+Qb9Qs)g6H-bE#;YbmV_&Ke!U*9dY( zgp{X42U%4g#?heuUWj3GCaiG*1}h%mwcvOb>jdZ4U_RH-we5sbc#>ZEl|? zS5M^^qpKujq_h_m;8BGv!g;H#{}%9+Nbh zEKeGjxIDV-+bSSqvuRdv#t%ogic!% z|JS-PMGQ5AgQH z*aSR`HCdEse4m<>f3*_e}D?*R+8h1l}7tVrtk>0XJERVT1DN= zZ5By7bH);i=CKUuc3%_KeF{Fx)J#)Jl%Z&Z>=3=yfrwpXkcR|0F%7-7b(d1AxOy(! zm?U10|47WoPTxjnwb12j(Uqp-_T42jg|RvDsqS6XJk_;w%_#bP5Bbe^A0yyr>Gk)S zpL3<1rm=*r^%i2OSB^=-%3=&?@`M4}xb8j-ls;26 zqq&cjjPGNUJ~dA`31QoikLEmV=d98|VMNni!jX@~J`yjAGEBIK7w*p8dwOEPWU>p& zbLq*_<3A+%%9s3xg>pRp^IQYN8&zgNRK$Z_J9HURyx|x8`G9|;q^@0X&Vks4c`rF@ z;~o{V3A%|{zlNmkc^oiRcB^u}*CaC&W%F@lVM1UUFQ}&MdxV1?9F7JPu2m(5lqJ(v zp^vD@F~rT_Ev;p+v+!iZ?q?Z?DGUtktuOkSns51y~fshVK$nTc$pFXMtCP zi@7BDdyW{n>Mwpa{4$_+Ve;5V#0_0OEjGTmb*en#Oi3!1)O(njhH^)=Q+a&p2UV-4 z7{3~zjikc6C^oquqt2lsP1-FP2_^~Y7KtWxO zRb;QbE9r$#TG=GIlOc!*4<+g$`$oN*rUD(jmYj3r^f!Eu>VBQ>>!Z#YrMrrpl9Iea z$-Lq{1V@#G45D*L?p#RRkarXnMQ5}6=QX`T1Kn~1kffkHJiMm3@qo(@1mXovV1=XW zg_cQRo=<_P-Co4Y=4zuTa7|%1i*(ND%q#wS5oQ2m)Nf0IT*7fNBHZyPX->P|6(A*d zS7OGmdLbY@kO<1=ajvx&5TwQ>Zh*0a{ap259W9k~z(g15Vvnc40#<+1NXZsFOvz`A zicgyZuNS2=|E<>uw?n12w$1mjle0R=AF5@Nx^G;#`FF;OLXWuFlMm12CDXJ{9giA! z%IG&9;_`~zN4&lDoH6E43c}90F*LR9*VVv#X|+HUOU|o6EH}p`;Mkp;W{*O3bWSDo z1EkTCcJ7b-7gdY}r8fk>?pAXG_-RBY!zUWLo~Y(yg=$H?v+hsMwE+ey*mWd%Ne}tE zO>s%yAyV;^gmY_YB_>|;+K9P`H}_~2m77vwd>Z6f{T(GCECur$EWzhQOP?u`U*%cn_xTeyy#@6GOAHEX_Azn-FYyJ9+~*OG z5YilS+D{`fD1;kp%A1wQ{FH@Cm;K`ulc?N2E&7t0{q;DK=>le;wmlkH5W5jUJlHdG z1T~&yi6+|RWS~%-$=X8W;jV&<3C2^nUF*-)MoSSsxk6;*&UQRM;Pq>*$@w=r64wuq zau1{Ao^hr2&TWniK06D(kD4?JFpeG-&%A^9i2(gP7V5vz%R-IhH9Qb-GmcWs9tvt` zfjK$agk%a2TIH=atAd1_UNq@Ha*)y;a~7>5&%q-AD9@zoR{Qv+_pBc8?c8Rt(npJ( zCqlW}9%6qo%r@Ne#FaH=l2x@{ka2Pje?;y!DA1L=dzmZXCDm+>kiGdH&(k7Pm|trM zI@{vx!kH=h0g|qn_yPKKh^3uk0#}aD7%Y4S?WaCil!L&>C>xyZrA6v8EUz@O)^&OGz z{xI_e$@^Omw&j^X!DEI9-FSk^K<9_4YBbcuLrR@kFyWq{Bq4R2(~z~-v(~CuosoNa z9D%z`vZ7rTK^z6HS&gmBG_D(%ZN7NnCh%i4bvKT`vL>M#WCgQ3c(0OC6ZJh6E}*O6 zp!h$5@{P#%V7*V6P#rA;jz7qmaR5ulEB5XrK<8?r+S#G|bG81HeV7=%gW^>QS|rNoX)KnYX_|vD?e#hOX#&{m}Ieo>)}D^2nrb`Ns-Z0bI+(UIt+3*AVL2Vpp&c8}e8a&Gsw zbbJBvCq>SeSJG2ixm3rYiG-KM0N>SkLP^jOUjlL&QG7E@HT-19qVhdGGvwp?ji-q+ z+^AgM_3rs+t|ko%cbR{H4sqS6CEm7;uaKh86vbYfQkJDFM3TgehA`b;?i)bdeG4yb zf53B7Tz_ELDPs4T2ugmsjg_m167e_|@xJWY>uJ5x6$jX=U^s%2^mXEBck^CHyM#DK4F53ENL$VL7Y^Ok@`md^)0dQ&+g%3qB-jO z=_Qu*!eDXoH7X>skK%87<8c6Y`FDDlZD>@N0F>Mrbt(02`#8Uy^s^1uB;Q}l$3Uud zc=Ewoz>$oIyJA-Gx*k^Mr?`p%WZpTh7;zuzg?81OZ{{d>zX1Ng+p;Os35UtLdtoZ{ zyDV@vuBQ}yk!kk~RYq``6X1^mw_Nq$NcJR^O^NQnzHlXB4KFs-9hPZ~#VdO*p7500 z?YEzlBG>KXV_G9E?kB5Vd5{QOz}e(`wPRyK_anBiu&W7D5mzT*VW_G-Y<+BFtnEXL z6qM)RPU4{Uwr9KjMg2)n#}mZhCX$;H38Cs?K~-zKk{8rbMlGI~8!<*7(w^reFW`Cm z41(h!D>2h}GknveW$Bc-AeNAywBzHb!u^LYcaS`Va3dM^o_H3%LQ&Akq5|3`B z!_A5dpv$cSg+L|_u$&n(|KYr?F7pi!ywV*1Ik~>=5Kcrsx^ynY^dPWN1l_$4hnZC;e&Q!}t62sQ|5<4w zxzQdPXNuwtqANN_V0mkVzE-i!uVXlz={MHLX$}na4er)ghtQxZ7|cq)QZW=|cNi@y zCk;kpZOr5hHi(NU=rn*4g)j`>OtyMoC01`eF~k2qJ}_77znl+22ztAW@qp~qXP^-# zG0tX7fo%$-Zm@fTf*R9a2pspx&Y5gp(2~lt+w`cc2nwo|H~(;fhjzuuzqD~-$z5zM z@B`f7AE3a?{}HC8MsCj7i8qrMsRXHL{;2fiA8Vp0(ajy^R|7PITIoq$cTP-c^Lg#x zzc!2B=7|U%d~!I&fpF;HTN9dL%pmeH86Un%lOd}ruVUcnOZt@NZ=4xiVm1^gHL%%O z`{mX#6LTRl?W!-k=WAKwIa@gQB@g|zL2mm0)%^Uw)BI!)Lk4tmNb?l}9L$T527z0P z_q_r!%_f4rHmr0lL1wf+iwNE$3FjfO40m_x)|7lu+s{hm5~i2AP!UesU)&>m18xj z@?T+mZ$M9J?Nc}GRVeH%(}IjNS*yl$!P+pDh?SXEej5AT^wr+BV4dxS!kKAkC4SEhwu(Q7{R4z|K-p?0b+9i6RCB>?2m+Cw%4m%l7#I1it73c^ zM-xd~<#z?HLTg`$G3w{$wyiGIsDs9;iU}Dwm*%SDP)__yN+0Z3EJK|LH^ZnnE#=}<=3u*0v#DV>P8SzDmD?C~E2ry2i z+dju{DZ5(TDPQor7F!i-@cljC8v0@nPj8Xx{p;Hj9P}CYwb4p>qxO9Uu|}q`f^!5u zR*I3EftKzzbezSWME`xHJZ-CjhzoO-u{D4tWhGa6X8Sp`=NjS(-F;U;YQ)W z7ncG(COhsY{mqLvbmYM{Jl*R*j-PyOCxI7tFEgy)6pwS+^)6Riu8ayZflI&EDxS6-_V2ub`G5WI zu@_|~u`)|htKX%f7x({|1WW1Ad_T!I@BVro#Y5%42e(OeZ~GIyTKIjD++9{qKk$0#qTjXCOMZn{T*%tYxyR}*sWliKD$BC8Ys-|rU5>XVw8 zIP#?)=1giyg;g@=eZ(8arKP_e zbsroN6_qrv$Y>cNN69oIK{b}N;c`!aXG#1G!^?f{IeeuJ?WE86PcFpokZnnKiJcm= zkp{Od{_TV$JHyj-YmZTZO&Fp!Wt@LA_dRU32sz4ajZ6{7E&Rl=R<#v>0e!^Z{rnJkZqK*Gb?sX(dnpl=%5C!K#g8+9{rj6NmbM{bCvbXg|U!O4fI`{MPW2gxrE z7%hxTvdEof-u(TtWV>>jTm#h$Y_$Dk_-`Nh@@U~qK{Xhm%q^%JmtbIBNI_lJ`+xo= zGAWfxl;8CvbMC7ET>zg^4^a{(pW$C%rPriJ4V87*C;^?iPT0_LMf zju{`d{1LSLWgHKm7S7NX4!S03&IE?mpJ}dNef!&e^XaN|$Ti8*HHocNO3dmQb9_@Q z>BJ5}=a?FgCf706)-XT!^uPGnvAh7y>fYBgU-WG(E5U7Ul~3I^%Zg+L{>6y}M6&S=sA2gxar|;E7w-(yOq8lfLy`Zm;y)7f?AGZ8}wdM`)+g zHG4^-L0dgCoUj(Q-5qZI91nRgf?4}u;E}hO?l2>@OYEb4G+6V--PWgNTk(mvTQ%p) zjIlY-kkh-|N?umpc1+=4S%>!j8Xo`gGOK%!28zS{MxK^qW-G+jpg&XeR9@MPg$*g? z8AgiR#}1{4fcv`m^L9mUC9mN}W)RAiuDePy z$a~GT()3E%`bKpnJ_to-R5!ZB))?Kf$w<1zozqA23Cf|jgHtS^chwYzRKnKd#F0jxt~_4X;>b1b8t_`atGD1xEk{ZOpCT_08A?##jkRi3eZynA zoz2?g>b+~U`L?)8|c3R~LL{hXnD|Kwju!f&6Y^}YPj zynNXpCdk%u+UNh>0~BrWlXM3V9}li~M%cL_zu{x$T9ubQRa>K?Rm}AK2vCS^`A13JeM7DT90)XntLW9=zJ23ZYsWd|Wq(UH>k zWoNaJOh+xK8A1|KM&KC9yseuFhCeF(IH@{!OJR$7#<8n_OR{A8F4i3UD5Fy8!)#Gd zSma|_kTYrnJ74|v)@BKQB?>xi7=c*Au8}Z!VOm<~V7rcmvrNz93vF9>LNbGy#iebiJ zTUtund>n!B>QSDW{>SiW^XJ^b!Q*v~Kv=IKA8<7gBfw~&OyiJgafD=0&&ivBZOWA!;+36(A9s1slb$@h zEU2kqpb^Aht)G5-ik42TN`t`oKH_wSFil9LFsf~C9_-SjVdr421c#FrCF)}((w;ef zga+CN69=8$HG z)f;>7n#M(w&xtX;SHo!kpaJO_+-lx`@%SGyp+$y{MFwc7R{h?8`06;5`aMaK{>C87 zRZp&OMz1pZE;~L|zvTjtl;{0K;M0#*#wu%{ha5~)e}Ec;&l-rhe$gfB{vkCJQ>hVC zNm=|O^^#t{g<7H)C}gOwLG420n%xv#xWC!{>793ccbc#IfKIKAr>A^}uY&bKUHAcI zr7~SV3Htyn^;6Z~^5$G1`5OI1FbX7nCBLTF3H7XOp*0U|<9n5*Zi{e$kti$BLiqYU zaG~j&Rj|*09vj2cnhP`_wd-GS3Fli!f(*8``$tba07>BH>)S}~IqO zAHy`?=+3L(15RMyjL^~@SGzW34Fy)b%9>!0(iMTuPdc`Nc>`u~UXpgyKB*N0{v;29MwTw}-JX z>@RR{*su-n5x{%VGVSIAM3R8`CH>g+jcSa}9mg1v7rMib_%0jm>TP{#>LjzojsP=KO!DeofvKX{ zR57Wr2dGq0V4SJd!TB4~pFWQJKB>1vme8uqXRSk!>!>wVU%nNu)#sWV>z1+|xlATG zNL4vu2iK{pzFT62-h&#!Ch$@~5H@k12l;mNqrxtQFSg|+Y~H;w=*utCLyRU_?r&1- z)|EkWLUaYY{kiabA%$J^_LS2($h#`@1;ZC^#X!|a~q{;2jlxV;}oCX z+JsBiA@g1vQ#^UtrgAB*F)tKmv-T;Hcu&^p?aIuDN{bV2EmFk8RF*0k8rtLvu_`T1 zrkIpE=15t_!17G{QI=J-rvcc)hb_FkrG&5B)HhE4TF`y}-s7maNfU`3yS?!&W(NP?P=94;CF;{uAqe^5QeuM(T+cP7>Xw-#vxTY z3AgA;hspxj#zQHu@=X=}qnjn)FQ?i9YZq*IH(Fd3} zKX20;&P!J#ep8}pA>VrX_P`9nzKB=Ka;k&@a~ycZmr#zCL)c*T}EIFpB{6jcj^!#=f#Myj$aju-{$ zV78gm>5L8(!*n;V*ofy(5)<#+qIZRF6w`Tv#$_rS@WOQtJk(lwv7TDHI&=O2)wd8F zvT<6GIVcid*Uie}3AQ5!r+tsvB{=I~Rg71)5plP^7_fpS% zmi5xI=(-fCqIqze$vqHSnua33GJ-0kkjId>cKqVbiu|%j%Z=jU`hNrj<}T`&kVMo1 zwY81&5ON>mvyH;8_77}9PkO1Nk{Dp8(?^be9DoXb8z|uy8EDBIy;M4kFn2qMeP(`u zL@Z_AB>`Jy82m=47J6iSgK-rGm-(^(s_HpH)_vM&+i458I9;MbQK6F^(s^Ci z=5n+Io(BK}7^ody2e7lM8R+X`*_yMz!Z@Fz@HZ%o>yH22N-EJ=MLsJ|zq*|Rus;Cq zFs)xu!_>qa)O)IcUubFA{*TGTSIU=(mm_PC>y0O|H|%5gvTJeJ|7H~$_L`alR1Lt2 z0O%X&0P3K}?25}B*Ug)W2>b#(x!JO9r%wS!4wp|w%y?*X*SvN+!ptX09qi}GJc(lp zMfoK(>K*G@n!VjDKIjUi zxDQ{dQ_@z6vL*DW_?IA(RvTkK|BkJiWPp>io`rY-xH`4$RnJ_KV(j@FLLG+F2AOA zL}Epea=ZY?Wrsm;@yB(r2B$U4)t2^WlweFh1K^Ddkf6}yY58hyYpF?$Y|9!_8dtgG|3Rlb}^73Wg1+tJ+4OwSBo&aH! zymg;fj;BM7V`njySZB4@P94Ed89x?2giWf>$pY{xcv?BWRkHFkUMq23b;Dhy;H&Y3 z-QW+fsGLz}I~SMZ9PbZ+F7)=h~pgB`?8IrOG4NC@Sx{+DH*{leIq|W zlts*aVAH;}4-U0+IZHp7>nJ|`98h@LKqaUkA?OgoEc=5=6M@h z98HOGj@0U+!5DQ}uLZ^ccLJPop;n)?NYBry8>+rp1yWICrqow zD#uvYfX$y938`Rv@{G_U)AS{Zc?uQkyOEIVV-J!14v<2{uD3G3p zEuy=4Pp60W#r&Y&Kyh!6`c_hQR^}q>CXx|GD@Web&;3NMwogkDit=o^exBQrRTX1h zvBvt9sz_YA*wuwZR+2JHxlPr*#yHWQ5AM-k1TK1yW3kumT=i6s2uezO$(mGy`Ji^) zwRMAV3YVyi`Wbg@&#G~r4BfZxELTD7rB4zii&>bsCqD2#I7B`-C>cY}yc8Yt@VDl` z>N_gXZ?&qHZOUOT&ZG^HQu9jQ>1CoMYN!7$<9Y`y zRtC{Fm}K1niLz0PjkVwOCupw}Sl$r_2@p}AUz((SxI<+(#!U6RzyWe3At-a~WZ9e` znd?b(bt~U4UButH{dr`Hzef8vcnR-2+-Q!ey@AOpE9M~k110dcq8Q4vXy!ue_;LD!9-YLuo*cl*s?^l}5yjq8Lxc>nI#hFf;{L z*N4>RXhf~^MR(ocAlF#umqfoJh|t4yt7`F2F5kc_bt>~>-^T`{IHnfL6^WHP!7)Xd z&7b*5sIlIjB26rL((K&P&{Bpz^9_)MK+#+Vs%}vX2{ogH4nX_#URN&&J8y%kP;W{iZPmP=1jCUplG#RkU2WQCH&L*z#*ypj^)o^C!nGwf{(~^J zx;Xzrt`va`IJqpyEVT?5f5;-fyH7Ou(-@uN`Aj;q$`A%s_uv6lJjL@Q_8NyJAJcfxw%X@&&}STPeKAzm2Tbl2 zOXu&2ME)jP`w&_GTqQuXz+3XsyhZP&=wK2_bRa$b4mYzXTL^?~jm;_@hu7;qzq)P{ z6$jNVa3<#h7*He?@nC|PaKK0z!LnkbE%a!$7lmMMzGKd&bWLe)p-ngVT=81T$D$36 z)uyiHJFfUmb+hT6=?BA}fGC&|%@Ig0W?eU53(cp_g?^cDDA!|+i|Eu-Wl(+0kehzKO2Nbh>1 zR)+2Kca|C!F73~+c0#pQH#238TOQ&QB}~3A2I^tlnhOF-y`*CN;j$@|`q#=~Wsmq;yJ6{N?j5)bN8!({bd1+? zuyP-*r40!!bFne&I3HK5W33>gd5KODt=e~fngo-=!Tz=ZpG&(=!Vev8`rQ1LB$1JL z&gx2S%OtB?GKHy$I{JO(Z5Gunkn39+pY!yL+e%5XIN(@9p(NEX6EE-p_*vn-uP4pQ zqCAIL9We{Lj{@)NrWJPSK({_Xt}uw{W(#dD__;Ln`@QX~yuD>~;Nko~K(>wKIO+?E zPe}5XoFFqOo|O|yH7TTh(~|d&mh!Hc2<4busHzD)mfP4oWEl=2s%z+1YaZ8Bt5seO zuL}7SACHb9B5H*!?0S{;e5j)l=P@Fkc_O{vi{5Cd-gB1j;EMH(N=Wg3n#6pQ039|D zu(%|#l>Y#=xj!RoRO?^O{&dgaf?oHT6dvZ}`Yn?<3LMG|!7%Bf3r3*H2~*uiKF_(I z54&?dRpWV7Wx2Iy()nSkAw0JVjwNFZ<0L{D zyHz-OQl*iitj)^Rp3Ed!$Lpk3QCrhyeJl9=4^Vn7waixVuolfafk$f#?5FaZ6OP4l zA-@S1<}X=0?{#bP+K`!hV7-2+l5csNeWWJ_tH;r(DM2kr$Y&M=jm!zMr7Cb?@|j;T zLS$M7lGPxs3Qw9sJ!GJvjG@qLcB)8_8Ye><4J{ ze?G09T@=)QF4Xh-k(lii;y_?-k(qX!!$_ z^8>`ENtPK0Q&t7B1>Z0z#LgoDH5J-g*91SYWUgPr(QAz0CZ869Epz zze$?GrefuY7%LKuctDJ^$v3Zu2Hpz zSu06DO@vr~nh0V4ZXzUeV@WGY8FgOcsMc0YfCExB(FCu1)qX; zG8ZwtV2RpO*GV{Sw7rdGff6JeSkU0+VE*lr(OhCR<{8YF8iSDur~4u=UE?~IKMP6i zWOPvDkTewUROf3X=RO~KwYmV6HdoG=gN274mzd-stm)THisZO2jahIz0d@Npm_dw^ z{`$9rr0C8|?=;a|+WZ&$BLDl#`LC;NgcY;4G2TvF`UBK4_yeRC?x8;+!SOt4?>EKs2HC^gc}iSPooh0mVUkKYxaVav2aS7_ zRRIb~A2;%_m5}F8I-1uXxSXI)@W$jDIHU1B&`P-5P@YFH0oPx~n2X za-xwcb!Z;SR3(5s4W1&H|!NNp##HHvd?G|5W`a+}KP5B5QaeUEyEiQMQfgctC;7<~G ztXsSTxF7*`5`bLCxe5R*hJ7|$fx7g!(0Tv{yEbicVZi*kEJQ~q8iK>CK7XwQeWoL- zva*R!>3M#b8$0FM+4s5qW4p=B6y~j!h1;YX0m6f2dIl1c6SsCn&~>@QScGw9KBsZ9 zxVA>oE7zdyBLS@!C1>oEp|5t&W_XyW zQ=?GM!wC6GVoum#1t?}l$XefrmqRNhA8<{PxCA3CSIEqos9DYL=9+)Id8=J3*#Qq= zsWf9}G*bwS*d+&nU?^oozejn1EhGrb7AIwC#!{c+iOoiNE-GQJh>Of6 z@R!uk44LCxgrO3S1jgS`Y=GLGq5oT!sP0KzH;2RHD6LT*{G0+Kn!AdXLJwnMwx3CB z2IttUQtQ?J_%m)>!I;B99;rZ}^_faf_j^^XFFc2LYtM<8$C|VS>i{9H~`srm7+7!#Bpz?~9HKSh{7M}uvz{56;t#SfSkqh^M+dD#m9$RixD3!_r z7ck@*y^KRZLrh<=M3703jZBUVpJN)o*%L8H*6-c40nI1_PRg;{Xb-;X!?LLW_rppp zytCy)BMywqFK0YtVK-KZv7Nzpuhn{1+JS(}X6kC1Wz}y;_Rs}s(<-~wd>nKZv=$vX6{YY_$;FbR%>Y>a$j= zPv|%dAfNg_4^dzX7@z=ev|b)$Vh$}cX7SB&87br_@;tRNS0NpPq|YE0k0?*%pO5e6 z&HsK%boIUt9n_jD=GQhTe_*8roc&UdQS^ckjG~P~S)qFCeJ;++qyhXu)4ZJdK8J#O z0>t-Ex5te#+}Y z8$fOHS|2d4)mqoTN1`q`gTW(ocUbswHLq&qm9d@|fe4cPC4Gnv#9EMDRoZk%Ecq#Z znGRo(J?8pKNv-(bhyI_hraD?>QXaZp(gc3qX!NtxUNy#I?S{+FuO>^#Ws zv>&vvq66zfQs0s2@%92;yQ|McAY8A5s&Zt53^~O!$t?yOz7bGdT68;29n>Yg){Bb# zsQAF+4)r_?088qEZom>C(*FEW=lOFA*&`IQ&hzOz9R33eedNe^0w(E(5UHZzi%OKw ztibjSmPC$>*Lxs;=nv2d3~f#YFjnqh7?Zi00v#iPJr!!~Y?OHWH3_2c>((dEJysel z7ccra{&>4F4v&DH*YCamO>kaDvjjqJ3(#+9aT)%PDf^8QfBq+;40LV&1x2i`IN!j3 z`vD^bjyvjoqyjD`p#@-huj0Uuhj(v!(L9#|-6q?kkCaW~D*`{|Wlf*+n$HE2H|y>} za&;;}XwFG6XD&v|2f7)8SUPQ^*H~Pr%3&K>op~0z87Y40HSQAEt6WEIn7GsEqBY9U z2V{KRuvvhrh)cBs>=sG=BP~6@C;#9lOIHMR)KH*co28UwP-U8 zg43g{b=wUPX7^hwH}@3-FL7^`!7MwC{qS_y+cP`3Xn-H@{s4hhP2-uxH-q597EvPq z{J}0I>Q~@SMWCN4Y-ASm|O*g^i;%9v=kfVS?zAsFjh7a6RRBJ%uKg;+2)mMg(V3NO^X?jU&VolA4IigWQReO0V{36s@k!-Wk$Ka=sk+u$f~@fxrUKu(ieLNz zO4DV(L#67<3%`MSg9MlXgu)J+;#bHFWzme2ZgEW_$`yI5viRYKT{_x6!D();*3=Pi zI0a)Ppd}gTU{Lrf5|fD2?s|t>KvyIoQMs0f&Y3>RP{p^zk^-|>_r5cf^5S83WSACv z+&s=W`4fV>Yt&?AMAUWzHrbj~9XWyu$Suc>Q?%j@F_mc1kdM}4ZfzBWNRCR*O&PMv zbK5RD$&8j9L*6l=CzTS+EbrKx+~VmP8E=xzic`kDuKD1oK=XA&qz`GOeN>)xw|M5(mg^gLhNBjIo*9yL|- z7m(<8a>t)2%CUI-W)oj3qVYb|^TwpB&}|sW_?V>IRB0s2_&9@yC`KeHG^k@WNv9}f zkR&z1%FH01kMz^?N=BZx@Yw~EUY=o zaCFwvMa?H$8xfeaMV%6BXNm9ZqCpxZKphqR72igPU)J+d$hJTxvh}{fhd$;RSlpX>cOXr8HtcR! z??d~0#|ywnT}`!2f%NbZ-)j1Yzjabg34V`JpPGOM_@DWs8xh*4;b6WG4Woh< zqU!C(pt{8#wJd} z$*|BT8=$Km{hBp%6ON-0Su2Y#EGipUtA5{vP1GV89P48}1T4W*6ydR*SM!X`@gzz^ zn0$}K#Du4w6032|wAVX0%8_B0g5%++o2tl~Ok@!c&EY>Q z_OrGPZGQQ6id#!SqnrpnQ{HCP^JULB#HmwuC{PIll^Ka1BWjkcB$}G>sozn*5Lm#K zsu9=udO-Q$%JJZWv6YK2dYUd^>-%K7_(<&qh0;#tx3(wNOg}&)l|q5l9aL_yWj667 z)_R60fIW}jTrVlUKVrf-{MiL$#3mD9-crlz?+#*DH35WCxALB=z)_bqW=1e@H7^{l%vwnS~vbGGrbaw z_jRgO*nCt?HEfS#zyTTcaEz#VvP;}FIIjNO;RmSd$rVd-B(5G&6WmtP0aAO$@FK4{ z>goMSJk{Tj8dV2=)6uCfC`FZt|&K#(rlwia*J}vFQvY zzj-qON$O0&>=Lh1$htm2v4g$6OYoxTabl>nti|Ezqs(cgqQFell+sM@v##2VN9Hez zfQ}CWEL|VLSY8(KfW4T4+Ghb44jVnxJWH>I$x3&9%vj^l_kKu;_tk8JSflS#kva7g z4=$MluO^u&>ogDHcBSu=`0=_2e$wtdX>#MRBZ|9nl^!I!q~(liy;dq6E#=Fk19G}9 z=);s&g83G=wTgutNY#<>lt9LS%~r`@%^LvVY`Yv+Pwl2EJ=dW zo5uT1qo-!`*seW&>(#%Kq+D_^6!|Vwq~;7x6=O7a&MzHS#O>WHY#Y*H*ba?}ObY~O zbB6*h;TTGg4Zq9YYC>6=p0X|~Tw%HPEIxCoBL5m{roAe2u zRPN9TP$;kE`sh6kBv->al_n(HFxu&ZV3G=8fv=BN%^PvVY@Vn&D8Eud5|&f@A@ES{ z*Bf5jqvn(5pyrXec;5`JSz3BzZ2L)16t0vpe4gKDETjMe0xTmL-Yy*jbopPLtecLb zeuml*grKmvj0Bb{_*8yNL6!jTl=>SLO}^LK_tztou`J?~DAF|r6Z`~PmXKvx1f)`n zboutRNp6zl9BPFcg~5%}3VtjeHw6Sv(PdlGNs#3CI|(rs=ht(^N7&B(6TfQX8`Ave zP2Q>@*|MP*m01%7vw_b5Y~m-}4J;QdC;@z2hn$>_cb9;cA69j?U zZ>NMSIR`j&V!~|gkEBZ(F)6qL?g0DMWk-ysukq^S`0>fk)||@>O@?->vOu@r9&p|L zm#1B&q%J0ajo<~nKtbc85JLL{)Y{!s0;;4mhK;z@T*PO*jJ|ibjZ_DAx-sQ)hWE5a5+~6z)Ehzw}Nj%5@;Po zs@=?JBQMsB&L>C|OYo3j4D=oFwZNLl4T700Ax$2oUl!I?&1^p&dd=`6rT~+j3B97} zq!-mWv>h34K%!PBzrq_wZFaBXPp`d7Od5L4ZeBI)-)HLV)1`k^117w%q+pMzy z3oUsAi+S)L=rXuB`<_GswT#`Xlysvh4CQ4~o@13iAgG&GZ6UxOld6ixVWt|zeYc2N zL_`~3L7?c5=YHlaulUXJfz`Wkhq=r4;P9F=3!q0ewkBK{Nj!^L!_BMCn1(A)qDrFp zy7jswvX(4)EHK2$#I(<5Ep|o@Vi3k2lY`}=LA_K$9qa6+D|04Hn077n6h?gKj&$eE zZC!aQKwJ@0{xS?s%_`lHOsqu4#80zPi`qTGN&J!mc0E$x^bB)cR;1>rirE2jWeJ{0 zf>nCFnCS@D`u3*Bl(4Z((d2f$m0UX$=;QPI!mUx0&=J)=OT1zm^yrD&Fx9e8r?D-d z%~6Y{6&}41iHc{!)g$?JU;1I;w@r~G)MV3YCXO3*9OWw4AyvA{RBM6uPt=^H-p5Q0 zc#lzaLpu=-g)WtTL>a^mZvYzscZV0I2J%AY=^e|4d_9Dn*B#&Iu;1INio_?QVAiVh z_@(gcIbtJX6QxF|o+ujsiVi>1e-8!&Hxse)NCKKwSKSMKq6zS3oFVtNcapBYF%j8L z&xVJ@IRff_cs?1*y3bOZf8C>}X?4#!Rcn8%Z$ob`%Ix6A{rc~5;uk-XZET4Gk0_?W zukH_a9#F_~GL8B>7uO}>=@t|_EPjZ*3DTuNW(gR0{@P9fU<#(BW5FoMQ1&1u?Y6#u zL~sDWY)ojmr`eGwH!F)^wv;N3>ON2*W}WD))O;Cgm#CAKV-U}2VSY=9$$Dx6PY@2w zlu;0hhgKd>WQ}>NF`nfsuWHK9hdX9`VZgR4rWo_Z?u~d&YOBsvu8+HB_!s}_Wwq|w z`TaW&v>2vG%A04fE;4-$0$u^ht5U9q{#x$iZ!-ZE?^DFVCiuM0e0!L+)a_f^!+L8^ z*Y?ifxX+IpGY@hrH%SL+;YJh*>CCkgQfj9uQi=|2k^?pg$^|TWre81t>6U@+F=tH? z^Ta*d|3%q*hr`wNZNsDY-be4fj7~%!h7g_6f>DCeBMG9{(T$dnM6Xdof*?dMAw(xa z^k@+wh@NjxuIsw*`+1K0dyn`1!*L9@W$(4tUcYvp=TE~0yICi$UwCQ)L3kV(|IdM$ z)(2@3XN?)10nSW{Cib0b&55hXK_T80NTr1gX*D501tHTHVSl?>Btj|;3U$O)B4z{IlS6Ejk2<_v5zS6(jR#* z4cF#i5b_8l+x~j@{y3i&!4|#^qLqXoDcsXQiinUu3At0Dkzz};YaC)fqo~QuiZe?H zTSI8k?C5I*ih4mtmINVK>z;gO_6*zVog@@4-v5m|^0oiO&;NJb7U>~O+%UA?m*ZS&dRAxX5#EB}K zSlWBmm_BnSUg1tNq#>-YQcOFa*-!Bjst^ckj#sey^TTq!{?X*Y!O(GZ9W6WMj)z|8 zU0WZ^H>XRJdSiO`d0JDuUL{gaaNuT|acA1iK=H>IBY4{%kOlRusi0M4+88x~8T`~=e7n%qk3w{pj`>bz1vml-_Wl#On?XWT zF^R2Jpp+Xa3yx9y2w-6uOJ+SJ5v(6&1pmyeS61VR}XT<24rR8w*3t}QH= zQdwDYwHl&cC^1^$FR~tcgFK5_B%RQS!11Zmx?AnD&8-Go2fp!s1(F&3C0F$RZ96j2 zBcd6?W3b#)QZo`yjjtK7OC*S~*y^O};4U@yg@@JD>yyk@h?YpvuNg07ap^r%Po?t2 z#BcM{+#1vZrx5EaUlR#m{ z`w_cM3{A}ohO{RM9M*m||1K_BfY!KhmhJwcC$*^ccU*k|avg^KdDj-}y^>-4iK=)B zGHSm_oNHyZSs&CG#Cp|f0Ys9YTiZ6%?l2M{_A_M2)nU0B&=8jyD?F8GMCzG_d}|E` z#9TK+ivV{dNO|ROywV?6m{P2;aqjd6Mf=eSgdchSU2U3t?7CjE zF&{z!?3|cRdIb`Cxi|GdKOorL@q8gQ7I`ii-yK7(q5sImcHyDPrXD}2zZkW_bXdso z@87>WX%Hs%Sa27C9PuYrCKbn~)7RFko{=pT#d4!>Q{vkNr@(=Rr`9_8T0Q<&qlg7kv9Mw3x z!V_4+7dBe`zObbNbFW^g8p<{}E#i@nt<70-JxRf7NfY2Mla#E(=9EM=uz+O6PJKo* zCFq1KmPkv)@o4#pQJCFM{_?Rb?^;*SB%I~j{Yp(233@^65#hR7AbAt|-gNdtMBnFj z3$rJuft9z8WMt>Zw^_oj_bue*^mxes4a<`Bg&uy`4Va%p2E$N|#;aJJo9a+Mu z??3tM>65~seQ8#S8*3&kQfz1&nT9IFgKo zopAsra4v>{@y}Cj9_g~Ixx9dD9i9oA{Yl)r0y@h-oP4G?jCey2 zRT$#zb$3L@Rh!d__iYcOA`VcE?|E|jpBT_nzGNt`+Na&VS0Z8R}&-@VGkOPCbZ;t)AhC1-+Q!~3OOjDj=d=a+|P@RbT?I|`sr*GbC1PwEW#RAdPqMC6S zL4f;scrM=_gQ6{I8u}UE@=FD#TEdsrHkh6%;#*;cWB=Fl6&|@gDtq(MA85ODm>?W|W_GF(+}}xFQ=qJK`?*`D z%65WsKRI%nFEY5WQ@*K2+<30*RbE+>^OwWL&f34R)Jo>K#x5`T1v|OxBNMgk-qF(v zb4AI|;O!;sHygFtSAFlNDUmL+*!5eXW_MZL$q;J~7N!=pl{469=WqP$a5+)_``z4s ziXnw;g#ei9nxBix6uP&sk)d3>{6kaKr*4Ewxnp~Din?!2ue75u6+!yPG<^~LHR?+i z^WN}U-t~jXt?iD!?V~j>_*Ww&`be5(&EUjSeC*{uxX)KoPAoPhhh64oPr$hDWAM9Z zqqYOt=s2$)txgk(?$}pcyI~D80;;epxUG~)60}9vbxQ_zn{56AdByvyLUhB=D3=8z zV^>Y)ft>HNj>j^Imd_|4kJXPpglV}Dvya+pXti4ZqR)K~&UQQ@CMz0oEhOkOYM4<} zzi!6^nO-_^UjC4_B$L^U{32H~wlU#&e(@h~-@yMQk5gdES??Z|cL5^XBO1ckgj~x} zw<&ie-W4C_TGma9l`*htBI$}q{6v-?4n$z4A_&G=hJRerZSy3>@f+3$2O6G)e& zP6v1zUb$60FGQAh__|)VI%^yzHXzFAV97s- zt;PQ5f*z`;O@K9EZe*M#(y{;fag6(4+|j>i`*Gu?-*cC4PA(sn?4JT@%ce$$AjJ5q zcy9hX@kO@^AoXWb|G=r=tnHhx2l{88g8|55RbC3JB|PMwVu32s=U4K*{zhq7P`~xz z?5)t%*%vO=cc~H1^s7hvVQm(~VdyKf?)>#IGe^Br9M_i&h1J$>!~g3=%>EC8@Lvr6 z|6GJo6P9qnNrzS2c8hWg3^W#O{{n9qQb+4e>&m6kAZnvv!bvb)=AHjH#lX3PJ?IVh za7p>t><^V`_3!Wf&oUPbl`QcULQQV7vS3$}b>Wu~fl1Qc$n&@i>ub9zES}Q3hhG*= zHR-7frohJC^hC|xb?CO2d>783!Hy)~$Q!rOJJ5)qv?o(!!hz;uIQ_nEaNx$Y|9J=wG zi>STtW7!`fJjG}_1N5}6(V-j4Ol_@i5EW|#Ud3Tpqo2V)8*Fn>1wSOFi*+kftx3vsB0QbtQZ75(Kkyj;0QA z_E`U$zZce8%|o3gLW-^m`5OeYib%ZFCONJ)l}r;0ctdss6zF0b$BVuvZD`uoswb?l z2zo|3wM%fj{@_dDo&QD~_N6{e_cJxr@i)jDhczxK3c+S()u$moxbiONCq|;a5Ku8V zveh6jHXNY7b1qP*ZTOKnF6qlmAYEuq{xtGsb=nFriurv&r$GJQ1rCWZePuo8uY9iC!iw1%h;Qn zGDJ;xY01`0gR*b9fxHx;JMs-qs;l1taqqXoB^BUhL$ZX-fbbooHrIv{b~a10Ow&_~ z8#poyNreZ?VG^^sYniO>T6M^rQc)3fOcJ{^Ygq~L%b}MLplZuOiNJg!D6A$vl+Nl?rFdcN-x^+!uJx>R zg(s^rF+rZU)vRvV>*qaI|-i4PC?I|L7KpyF=Z0t8T== z(v~%*BLC=N`+s4eUhn)t+F$zT-X(uANM7|UW}aUAc3oL&f<5k~hVwsFe49dN2!EH7 zl^K{&8g*5E{4DMSJ;>#auCm}6UX&Rz-qu1*xSq#b(PPK#;j~^3O2;r0q^JhH%&DUj zxqCsa+B`$n=kCfwAod4y3&0li?^S96ElvnFOYwXLS%TLOov?7>Q56ZzRJZ(3*_m8H z&M_UZS`w0M8iRqu>#$%u>-JRg|Fbsl;4xsn|9c|kutAK4bYe#%kcv0?(HNP2Vvjq z-yYO|h`20TXzPBh%1>!&K3uqSiYcr;u7;i>lDm4Ki|=7%f@o!njdHvr)vOTr>-r4* z`@TFKE?u|IzXC0^Fl?lMZk3E#K7Q!ZQ6 z{8Nu+6*Gwf5{3wdYoCailrxmw7e+F{sHGWP6vImZr*B^7^eM?KaHdBs7ft{FKS3Qv zec?Z1#9&N>^GO zW~`a=p&VXu$70QJtDvP?q%PJJC&@TR>yDP1v#rYqG6%jGQhIz%K|gDOq@)UJ*qH5T zj|q^eWWsvWDI;C3YxnK6%Mocrl#s+G+OFx9tMg-XX4#f`hYa!gH>f{>xtiD_l2y1R zROb#r2P`xLXvyk_(&lDHen>neBNXEuO~LfVFGO@&6XtbN{it-?Jjr5nL+K|jh#hX+ z2LGY&3StL~+oh(49w{PwyW?iZ#9aooNSehG^(danY&xMWyie(+0bO#di&*uiGD_7c zTL>}HpRO}(I=UbIxQz$Q9M+@T5=<4dq=9xz&Jito8Xt9gVG#=0df{1bM#XJHIlX;e zG$q}K8(H-2Si2{&)ZH7(FM9DsT1<@Tg=D%Aa}|;S;nzJZVdfLiC~lrM5+FCPHq0 z`$O0N{Kt}`-5cqO8q5>Mt%RYjHUFoN9T^PkZ+QP7ggMg)GP(Ev@5Z)jWEXA=8P-@u zeAb71gc`c_Xmb&0ffMSQl?m{l^b8%u2P}%(IalHfQC z$73;FO*))TR;eT*G5LAl49?f`5jY_yPe3ZEdrEA+HciwsI){qSnd}jCUq4dA@b*19 zADPT465Rzr)KfZA!}mzN#3~vidfJ@emC5eAvCkOd+^K5ZUW&!*g!-?SH#EPE;BH`F$kHSyVfbGTq?Y@}y| zs|F6vcvm7L>l{?yBvaR`P`f7ayldQmG%};sOy4b1xo?XaQL|@@DD2<#@gNjYZ-8+- zpVAe({Rjv*Ld_O=m9@R6vJE8_&;6nYp?TRAyu(AP$C9rU=vR$puXZ?_qonA#nabDd zfVO8huZo3f<&S=m3R{@fVEt*=e`#Jzjv949f5>m6FQ$g_H2Eu{8huQq3yoBX3*dl4 zzAf(yE{(&!xSN}`WD$5M^LSj34(tX`WeQ4S2>3{UYBq;U_+?kj)%HINR;TZ0*wJuM zPtzJ_@D}doe4#@q$Qd0hos8JbfSpAor!ENNaWLO`|D{?}*AclT`g!aw?6ij41^m8( z-l$0yKbD)k^ZL-7111YAm>~>ybk8aDUgf{8qGHMC#@Umh1>7+479pQ|`JYh%abI;+ ze?VT1K6{}Lv%7Vb=Q4XJYkM<{M&(yCd}$}^rIy+>H}Nry=8RU<#|Fw7&uu+;pQDx} zu0bXmrU!r?UWO=ce_YU=rl*%VZ}jo^N{d=!;CPxo-Q@$6t0BGgMjZC*GYcx`yC%|m zQ}m7R#5K++16X;hat+F?>#iAV;|P3Q-lS+cIW)rIV;fy-qWoR@$;^E$`kdVNp*zYD z0#;P+ruQ*esay9eW8Con`t`iR((F(G`m{bp+M zJHsXiY{0Wq9d)xq8lPS1>UBCU{lr#Sy*VT=6MlWgc5GuyF zn?JiB^HNdCFr&ec;9lpS!(Va%P1CE$ z@9FF8f;~+dw4D;5`Ychu7}@V8j&sE|+f}DhaF_R)uhw<@euO#&^|$G_{%H9gWi&|o z!f4YMDY!_R-MzxDyB>H*rs`ChQ|@dilWvt1V}j zFz;wMOLa2rV^mHLE34~#q6JaWRZ?|X^MdvDvcPk1L)6n`f1$Fq^bTt#>TcOqQ_aG* zd%b}~>=$$?kUj1Aqc}rpHeSU|rF8Z*i`^svr}Z}}+M@p1wQkBeUK$I3b~lzzFi&CX z;AL!0AJ4wT*>m;0JrIv;^K8>6C3j;xA_2!k70$BjeuX<`>}|_9M+LaA%2|Gcq@T6; zLzZMNz5Co{$&{X^oS1H-4@iP~ZVAqNL>9-gzlF_6x^#Sta+qq21WH)f z{6X~)Efs$T>4^`YiN@Jas%eE!wjzT*)^~E8C)=;#o=^6EpW%aFBjw9u9S+82qMnOh zs8TETIXc%JD@^X2vk8VWXc&$#m?R8nez=eAZ(#CB-l(~hdx3C?gp=TyZ#XP-mNZRy zPVCWf{8QS8Vdh!j0WgVBMIDY=w)=sqbXleLBN8UhPeP_w+?; z%=fWZ6`)|?dq6}Rr|(s`=T98fXpHW6QBS8aB8yl8zc&c#%d(x?!bc4vFF@>AnavgJ&Y%O20_Nb(F-~qM^i-hkSNY%ZP8}4? zHjJk9M1ZOd(M?(;=0qv|=o({f;%~_+GTR68QLnxo$E@~$Via|Z>z1joGHKH4nCLD@ z;k-y7XppFfJ$M!A<`lOMyruocA?bov-Awp%gYFqrSf3u~X7RGW>o{+;M_o7~e}m>` zc={i}N=z$uFOrzIzm00xG~Ddo-aXAgJ3abKYdg>jQUJH7o?iCuAw<**k+Dof=H zmo^UZT~y9WL@N(qZS~1@H9VS*$-5CcMzABy%!xB~trApMuXC6lo9=4R12dPUzd-^& zW_KobxAT!#2w35JqUfddcu2pa#S@d!2eKMDgEzBtZEQTwj%|NADFEw z#|ge$b=~?YKgQ|_M-_Ec*v^@ZNO|yZ<-O=qXLhsBd;OiBnxB8h)ULL9&ft6FfQh-J z95V}DHM9I@*1WPjoVR`*C*>&)7u#o^hJ?*c#4zO2CyngnEvl>SKiRLnFGpF$suV8n zTt$Hf`}OCx+2?Q;$>bHzG=2V7zNts3Gc*CdbH21zO(T+7=AN_6hf+YBoD{KIp zpCDKn@)$)W$RkiMvLrx9F86hH_NQsCPsf59xQlJ6Kl-_7$upZ|WMX0#K1Kk}ScWoC z?WCL#LAy=O0E=Ni+o_acAUB}#^?_RxB z#*FKMX40{BWQec1{Myav;rX7qf6f_7xP@Th)m$PNu%54o>|Zl-+8LTE$|&=GeUr4+ zaf>Hq!5Xq`a~GTBvkuRpbeSa@34QN{L@B&=z=TlioSmA z!{@^4rJ;K(ghpK)1-x_CuD8%O!i+a;??7gjO|VOBsD=oY35XoHa_$#@NEr4F(VR*^ zmkDu=_ICo(#y;%FRFn8xpeh_6wJ9wdL6B#B;El(%bZS3~%L7cRib-Nkd;q0|gjhUB zduN~U{C8z3@X@m5C~IJdaFyZ6gr3t{u8n zOC3|)tp_6yvvR=jcgez>1vQ}rD zL_@Oi>(M=>70lTxcnmVBI($Mf_3F6qBzU*G)dN!-ImtFgg318V4g>wW;jDW z)>?c|w0PEPp&y6WGwULWc!gxrB2VbL%CL8O<)0diunQdh2AyX91|@_<3sxGG-h){1 zu~SgT5TGdq>L1q9#HuqgkjDsTaovG}7aOq*N(Qof(X@g#f{>6x5M4Ykknk0ZBx1nnbs;q)-j-M2mw~SmaEMBpEqjMaqv3;i-MWz@(0=A*$SMc_2gO9vR>;0_ zU4ncAG3U=K=V#yOx?k{*PjR)H#)|0i?Hs(}7CcU^8+)zKI_Hixwe@DvSKoD2{d;Ja zm7i1#r7A^2WHVgkEj24IZNKYy1dW={mMfLi3c^j4k)WlKqiZUw`&^YP#N)RHIXgaxxYaE2BFALY=+IOJE{0 z3Ln@Uv^xo<>%K+X8yL^_gpN0_8+I3ko~}!{3f6OYvgcF;!d}mnBo)hNAQh}NX{=%! z7G$ZUPUJ;|!6KB7xke*P-B>BxsM*XpkQ&PpjBU{F=e^+hvT>Bk$y|_0L^Gbsi0Ng zf-}diUKXVvxK!^q=W1^CbtiI&BId`EZ`tr)>vd#5q2pRkF;uIiBvI5wIIphP`FPfT zTASum$Ki`=e8;Os>s4JCF;9k&&q61ZqX58by{pf#-$a@z8GCL9{qDQ^M7CFC5Qy%Z zTZ!Ntu6XEhecj86yH{JqmmBVG61_inXzxctDb*N&gAvyC)55x=3#yhPdtF!ZO=Qe}=V+DV9MdSdfl6UKX=zmE3j48ox#8yP8}gEUov&O6;i(sUEJsIWAHJ2n zp&}ro0!DY5r9=U-L!0TUHg7-+bE_~TFPcW@vD( zV8O>lN@$7;w!dJP^C9ixQEu&_8F(M_g+kTcrvEl#!qj)X+&Rmp&-ECTgDcO7%1D#2 z%<-3_Dw3MjjQ#7J3HQ9))ynW-&D@!kNUGlIBr_!~uPqsrB_~5$G#&Q*<*tdr&6H+C zs+nHXm!u!<<0ZEqE3BpI66~Zgct?y+xsxISf=2WjzaC7$s#R!u)Sf0HdJ zJ)hizdRfpcK$y%B->AgtVW zF6dE%=e1w0r3jhuC!7K=3@#*)Ah4Mq4c@ zlwt6b*)5tn;{JGNj_0fdfJpnqu>8;B7!BIfbk#yh9Wa3)*XN9hzGS~K?(wrHRoOO% z)I&>Z==F!`7VNx{Gs=v2^Sou|0^@B&W3Pi&7$rqR1J>SX=a8g$L4 z-AmOlu&Q6hj%zY<<3`mR0h}}o5{Hhw`X9H1447Y3Sv+yn5yqH;*_}iN-!@7&x<4JW zN{C;tj%K(M$JG1=IoJrt5QhtZgTia+d%|uSu#6AWI<+zFKR_0<9joI` z46UpmrTU2qCS_zmBO+2m7!dGFa)WzW41%#XNDd z38_(LB{-<7tmO*A{cfCdOc{&UVJyb`q9~1IWkUPHwjcfB`kmj%kCg0hjB4!DudItJ z&20-3skA2S58|}fXvSOXaD&Oh2!3Q^G@cFoBgv$G4!V-d(e4R94I9G0b+7jZ|7esB z(lp&y^hXBY_?oY?IP$a3o=!2XE}hzW{$J$3ll?#{t+=v3!{D?3=zk#95s&@+r%9cv z#wx$pR%vhW*E?2OOT_zEnXS)Rg5qh_db=0&-old&RG(?)(yOXY7e zHuc`|RD81CZw}|Pt{JGTz;i1iU3Mp{tbu>hioQ3>H9ki&Uj`A0cyBKjY{u7Y?7dF+ zwFr+LBx-j6V76&DKLQ9qfD>cc5pk#cyJl&W_%33AS=6c1pp7A8c85>*mQEH`4kFot&0@8slBfxFJcU(=ljiOPzy|VjVpNMG zDcf^kYDd&dsm!U1>PzHMqG?W7wleTV4sN&i7`Hh%Tbj*Ib=Ol!WOJ?8Vb@P+S}ytn zs9YdFR}#=%YX}0R-NO_T3-&;dHAo2eP16lf$`7JkwHhXU2T2%Nwh7Jz_wl*D3g=6z zoxS?o)s1Y``96D-)gOS3JrU{Whk7nT5KseYb(0b<_G%SmhVkGJ{@rwA648+eS}|uI zhcFw9pEV}KOpgbs_;;1X^!0g~eU@RVo7zE$L7<(&^>Q<=^S{@^rr*hpSe%1r_wEfm zM+mjSE`$;#bVrs*4Wff|pCP;XwMQZ5V|Bz(*^}xT64c;2Cu&_rJ|e`oUt`d%K1_~L z+=R(zGOA!59@*Me-q!q3f@YUfm19O0uGb4uEl8Zqq!~qLW3S`ObZ0z3w26$D-E3XdL>O-0g9vVE1`(`lnV{6sTyVK6Xe;!WcI7q zD+?IK|9FGba{eZ9YO)1niehG8tk&xf&|&2+_%m0}(#gZAHYaLoL{1(YnkC=Vym88)UxssvYXu**>{2S!KIR_-P7;6g;&7Sv zqWe;8Y_+CY(kc*jJqEC4!=6R|4D#2Aro+8M>9~|zHic)Y5ffkx*)#tD5UA1m!ui>7A3+P9yBPE_pEp77HmlN^ROl1KiF4xcmgK_A$dOCN27X=I>-1p#?{+ z$@Xs$aCtTJlagdx!aT@*2j7}1?5j4rytDzDq8JTrv!a%5L2-FsO3%a$%EM?>Fl)>)vxZ0`+$4(KY`Z?qB(XXF>#p1P4RGl>-aH(OLgja zs@@di&NnI0D&X-jkLcFIz{19TLeMMKO5%wt#Jh6T8!o%?Rx7?Vo+j_>sWywf3E4ha; zjF+&Mj~F)uvvq;V+ft_(4Mg5yC;yf&b(&LQmdVq^4ELL)59JV4;S{!I{8dRSHNuA; zKHXi!Y&s+E)ZPm3Mnjt0t8Uml4~%E5FmsY?Jn66wZPT_Eb-$lu{hGh?7;#7WV{a)j zR|NHvz=!9w;ltj~Yc%?MKkWbF92>+=?;rFMuQuW+6O%!D@Izz&GLh@O)ryn_XV9R! zoq?}mEbGO(9IrX&3@0u5BB5T#n3q2LK&eOnLBy~-rWg4MVR4Z0O_H31R!Ju!51z8$ zAf7A^&1dmkA|9N5oyguahVP@DhvAx^fw>$mQrV_d` z>8%%wy{($y6-9xJLfmz@OI@7CEKV-!A*ynMLo>MysVgO-Mrb~2KOTMU`+d4R32Hvt zW0Nnm5-f9)!?B}$g>WS(ERD?9jKl?*zk4C`(pzEQHzv8iH+uJ|@AGJukLD>(&(H+i zy`Zc7Ck&D7>z*qpZBFZ~dlTN2$iV3PlY_XsguT>$RxNWEk}4BxFrbvHI`pg}1+TO4 zVfU@FC2kV1Pa2}ZW7BxBh0=)wg*bjYDWY%3pdpeD=+@?}o?2E-zg%|&{L;%v@pt|B9wyr;Rom6Ed>6nE&rQAKA z@ioJJpOgqMiXkLj>NU{KiWdRUGd{Afm*sph#8Ijy0tLl{*XrHo$c%p@+lV0UFJU^M zwteq%p4-31xM!SbthddBt?tb6bRpG{4pW-iVodFkX_4~*g!riQ4{itl>y5I|VO@yh zGN6(X8KfqM1QcP-5LAQv02pJQ%6oWq*w2A8ArI>|NdndH*{zqf&LEMZVXi~POS0P# z2>BhsGv0D^or^wGp{Lv7Qs*_rYK_0t64TM(+fTniy&boQ9`%W?1;|HNF)eXh_+H6vSTrQlLcs zTqStC^;Il^tHKe`x0dlh#l{#t*t$JrDDXCGkHQJ-==IBreVTF!oGOYSkpS&8yk!PCC1fp zM)<(;@{y$Dbq{4e6QhHM6LBXbQg^ZjHX!JXkZO)+Rm7;i*NK;ox~!WGoyecVFV zHma7kbY1_iLActaNHDgSzaiW-lEw6vQ}!&bSEIv$>i&vN-Ud0twT15ep8j;<_5~g8 zQ;D3_=Sk^YXIozjR~#tU2{lofzw+eGY?gEfoVQBkKYk`a^H$3$OWuDb=tA~shCSNp zH)uy1P2i@NzS@Z|&E}+X;ZZ={VBF$RM$>MDTF(yQD2#$*Wjbuo6mMmd_+VAw8b}Qk zw7Oq=4`&D&aJJPol{?l%RI3p7%4(EsPd%o6#%FX~UD6x7Bom_>shSjz&AfYD{{zdI zJkyWN^#V!4Q>ZicnA9sMPE@;lG}&1gf~LHjzt3^Si$l1guj7l*DJ4xJbOs0r)nFnX zF)t3$y9N>NiLul&Qz%{`A*M8TWe*d|pr_ewfp*8QsSv+G=S=p!X}9_;Pp80XqHra6 z!1!LHDUJ~lR~kI(m=<4%(yNq^nwUivzsAH+9-b-~80d6um8vei%RloW#AzcM8ja|U z)ewSXJRtDe;4VbQe^5sh28#<`(yd=*wl3h7Q38HRa6$ketinR^E$iISxUUy4qRe4fj#efbki4pd=F{U_?NFFT$1u#BO4C0d*)Z8)suiO%2Tmzn_&kkIbSs@3M=UVDhvnK z0bf1Bt%0dFJo6wdDC)_IJ|CgjbduJ+T0TWdoWoqSu?)jq1a?G2hK3G*Z=U$CTFYn8GLcr!eWf*MRF5cD<0fu*Um{HDw-A zLO~n3e5E!ArAxo}o)&aifAK&x=u{nNmSZp=mS5L*pi3$}zx7y%i4uE|(GBzq_54v_h+pvS3TAl56Nwrc5@z!{mYTWOpdLj@~-)%G|}ot^5^4ZmE+_gYj6WjPw z8Ys@0uI+72i67Gx-f-j%Oold+3YQi!{@yVl!&Y&;gMk{^;$vk%etweX%JRO(G z>(O=6rK8}xHI2oW)5Hq+^G13MZRTih=E>X4%~tg`5BOCJ2t~nnB38eu*El*FYs4EE zk@dAZj5NJhlsM1L;_nmR={}2J79F3e5*ve}YDhJ4)5DuB8NRk_)oG>+x&)ey#CDc! zBz7|vJa;;{mCboOpiP|W{4Q(F(O!9QDdifS`odX?N>DM6cMr;xpt=Tulj6WwANG95 zgUf-2h2PY8UX8Anmc*%#)%v!eoQ*jh@73v7wIyLI;*VG;Eq2&p+N?6p0b^$qHP+y7 z&`oWYw`_vyzxIrx8D>RR!mo{|6R8p0q*UBLu^c?=<;@bj#M9MRViWL+h+=6mM8yab z&2*@2{>d9qq>!ua*ZbbzYE>I4NzsZpKS|7mi5+7Stt2;6^k|21`Wep~Vyb9jT#GH} zlj;$0Ykt#oS4-OGs=4{Zq7)wWP$Tzj+5nsSH64bI zPH--Nx@7~P`PG6W$gP7r%pvK%j$an><)ONK5ezHTUQk18$1D@*pox-^)Tel%0G=S` z6KEPik+;LFO0@@uOl}9(R@r+ygD?ZRVKrEAV4>9yPbbyC&W2RNCE^>))EickAb2j| z_^JWvu&U=Wm*wtbvA*pr5jRdM2}y_Xzn;8CpiZGuCV|oxmC+=Tlx+Y zJYUkCIKnuky||N&FZ`h|jN2|2hO zwFC7v3VE$xzA#bwVJ<$CK-nF1Q#F9-q$*W`*|nHl=*CmaNR=;ab=wU4waP9t_BXI`(Tu=zY0!aiZmy6t?)Q}bZ z${=2b)0F+UQKgGd2slv~3+l8C8%S8(c}|?j#wA|dC}3)cT|o~bQ#As;rzrrW2N88; z^65q;pC)_fcc=NfBb~g?!@9N;8esu_J%%GGl<2 zbxuZ|M%V}@rYrChZymlCWQ*&5GN9eZ)v7c)q`@8_hxvzBbr`utOc(Jjr$`C;NWwER z2&kmJXC2U5{$oyBo>Ud{qrc{F+wulKZAx2Vs$L>eiqlJM-^a(KNG=K;?HoOdi(a;Od*fVV3^k9RyR~z$^FVh_@xL1GCJE#V@h8_2-?L`5cOE; zsDC*A{AH0(HWgoc1K7!Yhkp=)>ytU7LKN~oS+k4wy;S1d8v$a$Q&<&AEQ&GhQrbh9 zp___1QvT3}eX{_)#sx}dH5P-v6XK4xBplOz%ivHGgZq@7kD5QvU@m!4=ng%VTyohn z1n<-J%BM6j2poo=6PTW;H`M-AT76kyx=h~~fehh~w*#IMYsmsoGAR-2qT5vn#zJ}@ zVN4r#oUK0UZ7Cyp7}2ZfjjVT~`aP<4vjgTy+e(Sl@9k@=2RM?pJbunQ{l1)N6LB`r{uy8AW9kkUqz2SQUh@ynm&UuUWCiX|n3 zA2Tzi7{SLRqGI&$NZlORnF|dh)xljw1j#v7RH-Dw&jsogU6#cL%EyukzUWL9cuL=< z=klmzY>Q1L1F7_vT?vT_D-McsoPslS6)ZAbmFq&sZ2{(QZNRVFHb62l{fQ7)wu@q9 zgr7cVjF_R0{h^L_%v+1^hQXSy9tT6xe7Zgdx)D?BhQ4|lh(PvR>y-g_U>}8E`IeHA zLv$61BIh;F!fVst(YOv!OTG0lW8iC8iJ#*^g1_7??rtvzl9Dx+Ul>UvhPG}_M`pR- zO(nHgZEqBj=V1fj?c$==u_tMz6X}a7SJdFwXexyKZwdRCV)HVt0s)jn~D+3IahbBg>sRz1YbScX`T?l$+^t>+jBcX`|&|G=O{USPd1 z26V$_j?5-5gU8%FVlT`DYp}b+U4!XV5&c;8_Qg!}OWsq|U~2*XtOAE-pC+$h{V|xQ z&0+NdjiMVojinSk+mZO;K&fC-(ehL6J#N6D;o!P^mez3?^N**U>*{U6&!=*({`b;aEmh_{MZK50cyU z8vZ}(-U6tuW!oCwxVyW%ySuyF4#C|ec!ImTC$MpM4+M92CwPDW0g?a#LjFyXbI-Z= zp7-AUUj0>HeY+|f7PYc^b@!a3M~^wX+mROyTjz^v7gWLSFW0ECVw_F)(H5p!M1NRi ztkN24tUysJlBbM&ABnJfn>NEi7H;q6v@>10D~3LYHt&i^sP$3YLoP|!2$y~OkvcVF z&`eJrm#i{@ewH?@C+}uA2V21E5@Ty74t~5tA{9!@Wl3Lq`SbSe(I*n zvHC_w*}}UF%;5`P-lX{`wQNs-Y2v3+X6fW)%Wjc$}B zeI-!{a~00Pp#t@EOnk%rZ^fPb>CE*G_|iR!Z))+)6*fAL&>wL|E+t=xdS2=VF+{wh zm>#WU&BF7eRMyuTAitN((+GQ=^bCD%G=*j+-h1E#wwO9mywEEdo$P}ePQ^76YJ?R- z8VH?|rKPMMwoorFEK47<$boz=Oy=hX2n%o>>reSc=iv{ATt#sOtPUlhOo@O6N$_TI zDAYDQlSJXI1Lfsy3#p;udY}96LM-D3#7iLMqa`!=%C~H}_n-6enL&)>aT7YTCPj^5 znJ{5dU$Jt`0(Ds(^P5({O17e`IlhlRZN>cF?K%<}k?Ie?vw4?cM;bi-p19Hyr!7~e zB7cHuX3nfVLf3j($kG(NI9qU33yZ_0($QkUeUiv9_>?N-_eXiN_Dx7aXhKKxFi&^@=qI6-ucJ)cvQGFzPJM#xY_*n5 zz@f;#u%>nb)F#&|4T^N|S;PyH%kaA;{Y98qL}SJZUE;81mdP~2;0-py#TrhMI+aK}qH1Z;VO>}*3} z=rnl{wa~+WF3j|8a=!VJouMkh4e>G6EA1KmOAR*#^iS2i)PPUJ@Wh20xw|i9Zm*fI zzuK4VsLe*BGR36z0pqDR_jX|^#`(b7JdG?WqwP6K=fZQsU>~Wg5aA$%TR85yeoBl| z=++tMEE|1!_!nO*%j*gFVOW!=zamJCB*LOaWejo8i)VXc%HFwRNoWzkzYQv1_O|Tv z&fHcufqK}x2%w+FC5aDJ9~`-Q zd0iAKcKeRUKao6DVOM1@0R!ndVGcg~gG^-q$oSs-B^cMdq6lGUe1%tRP1#O(Gj+2~ zbJ{DZ!}3<&N#3ZPiO&)Wck{S}(;5oNQ>9rYZ2&ehrpY3s;VpK}<*6;&jnj)c&2*tL zIhKqTe@(fhRP_Ye2j4ARb$sL)+AySN#C8+WP~@)A%R#o7@k&3`w+V)Cqf8~XB4>}W zFtK;nRN#bi;`Cweh5@l7I;rAH`Yvdo2uI&p^%%>Hy9_Jvn5OO?w$Cy4`V zj6A>Bi5yG}J||#O?`8PtSq2VU6>LW1n=rpN(R8W(&gBp6yGX6)si_Wk9@iJxmcq>6 zQwPy@xOtIw-uDQtx~qKwkF=O@@iL4juT17dnUGPI-hr7A~KE(6T%($;hbg&b*OewVF^ z^8--gJZ?zV$0b-3UEeQS5jo5mg&@1cUBn_oH6&fEnqH3E_CSR-7R!d6r(+i=?Q{Du z{q2u@tea;qz+CtHOr4hSC~4AHTOw^=j8X&97W0p^shsQ-sWHK*bvB80lit^1_JWJG zyrcpsEe*j>Ss?Cn2i-g`Zq8|+1oqxz4n1amOH}jsw1EI50E28U2X|fl5(&)FYl5ht z;pz0oKKz6MZn$GigG;pL>z8WkOFpC#rTrfQ4yI2X)BtIP)ozxZ* z(gUR=LzaH&J;&GjdsQWiA)56E>C(J^P$m4a8@tMj@ z@a=d7V&E9)wvG_0or8lqX7tp+toq>(bGe24S~SVl>w}womBHS7bvLEpqk){5V;BK^ z7yD^|{|5js(elZnI6oADN?fkO;;9agor$~kQ(WN=T!5VeuZdq8>hu@sO4a9v!lnxA zzp&kWw&a1Fik;0_^a{m)qYsX3*Sq~ida+i_K;RWwfj1zF42EBvHAw_ zWDjux3Bni%`DEU?u2292a&tZb=qVU>KzePplD%^~w5ag~id77(B;@Mlj-{}@*uN8Y zU_&-vdcF|&lgz{A@DljWBuU%uyxw)X7+rj^F5~3rUenjT0nRN#We7WvPJ>uMn_V!>r#vmr;AFGk-CPP3I&?!f<)z2X0@CMfcO>q%(~_?7xnq1liS5^W+M zWFGKF410em1zneZ&?nOd?b$MT7G(cMWIlrn=Y>VJ8j{QnsEdpYMF`13?=m9j@dFNV zM7!MAiwH9OhEz)UvAE()eelZ2m!XK6IhZN=h|5CjGDNt!;6N|aZ7JJr><>Vs`_l1? zZ_8=+g9ZxyBWQGadM-5hHsXArRTJn27ORmJ1B2|3VvL`-4TU)=!)sB^7fW$-HfhU` zrU9_nNvO>p$ff7pi2YIXoqn-R1D9Y;{_5k+vxU-`uYRvTiXK0Odp>J;*=Ndi}@>_Y;WJu%m^bY#=dj)zJa3U-Gn z$H_*@%mqIHJ6)u*;QjMr>8~a!(jK)zd%MOGqViY25(rqqp{8H8`&~y&1IJ1=ETUIN zsmzCRZh>3NCG=7QKcGfMBnS-+a7TCv-S-g z_*2%QelDx`9)b9XXdamOTw;lL#AahSZl-(8?WyWuXBf{)Za=n9qK&P-c?N9Vuva8j zM%!&I2Ty{?m!U&=XL*uyO9+V4B2GX=*uHB|dc(H9*^b!-*2lHfY?ebc==?xOLsb6v zmz_XcLV6AcD(sFy$Pj-;ym*_jY%96Ark&S3>}yORxC$c9#MwCT{iZpgmbsjafS=?G3R!!yfJYigJ0Ld`@<3=PBBCP%Ui{bOgP+#yQW~XO?ng!E`s)fxHi6LDlq! z;VS%=P)R)teQor@`EDIb`GlSN=rLh!;TYe_HfXuz`jRb@nKgyuFc$G)>ug0LK2iyy z=~F?qwGw}FgOSxk3g?rQ%cGTlkfpz@Z(mUOJm}(`{X)FcnaE`6YqMm%K+@cJ**a5b z?qd=GaXPaNW~TIBz(YimJ2*Vi5IHKy8avCzBzPCSAo-HB{&8?BO6p^M4MIjU4tj|4 zDki#-mT~p&a_qP2@rvA0gn^M!t&-xCu>X+^CyTM{rG9P?A7A8%>Q2^a(GRh9?CJLYv z6xi(DTezBvAN46uc|wmr(unQmK1?VhE#-!45L*#mblhrCnt?cy=&Doeo)PlO_Jxb# z*cr*c-VOM66nIQWn#Tkv?fFf_-PK2W!oexNg1z}lCYPq^dsFI8f`js;@Z_4Jw&K3H zNrii4hbcp~q7K55qGke212U<@tQn^fFbJY#nQiQH1MNk`PBi;I&ko!|7;t86XoeQW zQC@%}{n5wA8@}(uf5&0+peAjU>2|}x%QV(a4_L83JEyFMI@HIkWWhHCDJu4pzn<#F zV||hh7A&U~o>P0d9VguYTX#S{m>l%re5S;qNQ9`^-kUc%7rsvetQsP8I`2}o+T(aU zCGQUa$~Vqq6ksg9oUT$a@oWS8J<4-cB5bpqgLfgzu~e?%p)b=a@Y6)8QMGqVMg*U`+YzpHL%2PFQYU{R7*xfr zUNWHGdbHr=w^5 zZwh4AVu^%U;HhnBV}CU_0_WSthDxMwrNT=FxjcwXuLZj=lkc{^xhTe zH~W{Bh;Z%q;up89MD^_q-uIz;Fa!F|>4_c!-1+pl05<@vJ{UJ1$IB@1{dsz0))c;U zN!Jeqk3}-W0;zX)X{M{VQw!q;M=Wm1_YH6P;8Tq5>=Btfg7V7wHMFdOI%QJpzjkD{u)JBZ0X`C=rC zUF4UsTa5&9p2ICOkl)<7q|MAGUVuv%lZqSm1K?vH-9NA$u`2;HJg~rm&7OEcb;Z?P z-Z1l>77ugK{|q+VbaxcF!l560f+VG_Q+hv$QzW2CgvCxui&_-r0WYk_qX~dwjxZnr6A9JXq@RDc@_{N0PEJSg{475|Uq)ZUVc5ZD*L&lmI_zc{`egAV|V*Nu}klC8^BaQV;!{_!Wu?d&Eu&!-QqC zT&N^r?QliA%Vd#{VI8)Wd_g~aw!HH$`u^=ADyjQB2`P;@q&R$Xtvwz9M`q4*FLXPg z#^6}!%hHAZGn|ra>P!91&N(Keu+&fb)$m}se!F<%{b7wz>>HD#Mh>=1@+XF8i=UR7 zeh(mpwixDqX;|c3ENcYqN_`K)T5yk0#d|x6XfM@-$RMmRg6ZOv7TgD-GC*ErrKqbL z^$J)VfN2H@!;kOg!ziLSlgLtsHcxPF*fg8+m!zUg^LbGgp>Wr^*5GMk4ggal43Pol zOYjm(mBg=y^Bs(c^!`#f1S8=@JWpYqY-r*r)*Hqbcyd*&C^_DhGcTn>lBi@5qm;?; z*op0ZGj8zcn?hYPKeW`rmK25CK+r(vZ;C==NN`hm4*-!0AnZ5vDy)kro?#^?!?KEj zs%7PEAmQs_LALD5cT!S@e1c^%(HiB&@ACAkcnP82L6|WrEA+dvB8@0A885^n6SYvU zsFO!7p!<_T9xI=O={d!OQ|69Q@v`rxW&nfXkTUzTn7G}mZoumq--}s zJKUt0^7Fx#9XuxNt+!pmE&futIEvAH*}~ik3|;3Z`J_Off?!viVpZ)+b=H_AJS3)1 zE7j5#RA1F4OJ!`r-^g;R%3k+gqn(pumW4$^9`+a~YLaphL{qO|q6^&77tey>>@5J7 zG`=9ow;ZqH|GBR+h+~ZEM;yYh+V+bYwK}q0I{)wfs-5pw{pUzEK`0MTk&LYgf5Bci zQK+5<6|}6+PYyS=Td3Ww7Z^R}5snAj#sp1d69jP~sH`(Ftj{dGj|9bRcm1)7nH{`G zL6GPhLMG4>*hySuVedC2wG{}R3c^UFM3H;n`o{Ex*Uj{y)KG~BuJ2?*W0;}1=pwwg z7Z0zylqQXCaU7 zfkvBOj!S+O3@!$`^#?!=eB@@y3BAUGFe*}S^KeBVs!u+KsW+!$I{HnU|04o zy2lh`>c{QMh!GHY#cu`2S1 z!g0k$d8ORg|A zN1}^UJyhFuh{!EczO}-5)NOuFT6mK5yb=B`Oe>dgZm$iotfA2&mFq1zmUzHGdS&6l zD@~>rQ!+KzLc>=<%FSv;P+LL?n=0Kzv?&`am!ZJi}WQU?FMYXwhC&`B z{_$>KN`VySpGl~sx++(BI_6l=ib4S=fNZ5g=ua%F@Azjs__f$_Vgs&A+EXBOoy?d` zf$g>~IA({Sf$H3*6~(&GF1xzlNJz5IZ9yvy7FQkf*&mYO#dbdG%%1R=vj_SOC1s?b$?4O+uXM>PFxNi{K{W+YBKu+L}w) zuki=lIB*~!+3mHsBsW!~_uv#H<>+`|39t&UUF=2D-}(Epr>8Zz{g22cHfrAzr2psMF^9eP!R_MuhWuwA;t>ER)_ z<5o5ivcy5N>qeHC_x5s~dO6kk!Q_{UtclQILZnDdu})7{fZed?1l6%_S9*DUn$^K> z5BANKIipaz3BvL)A)g#%{I|Bg>_cT3gZ9Y!FuQ}29-Wx%2+UTulotj9RnldQ@ zEiZoea@CDyB|{NN89wdnjjm&C+OP*sir>XGkag$iHH8C4dp=IF*!IE=UR&EIMlJ<{ z1txuwgI9fzCyUMXZB7M&SWJTDDvnfTx^XE9bIl>S^T#q)&|_i^WxTc5x-lQF4Nz!K zus--1?PP97tcrSxv=;$zGOgg`RRD-{Tx+Y(nwaQ_I;c8Juc}T8OkT#>YARB?no~Iq z3a~cTB`Kz!waCuTv$)eE zMB*KZ?Fy{Dun3HB153M82sAbt0l)k}+iPM-?EVk`Vh8)z%1{3?kV?%c8138-Xm&oZ zG~mijxcO~=0`BgdH7!$_fjhiC5NILxJ603OKV=_F>Y=JSTUth$H{Tb>=>Qmzdb|tRh|Y>*_** zW4_g4S9>p!I3RL`NPE~ySZJl3Y)iN!wbtAaC_&W6HT1||p`F~^!&8NVsL;5w1R;*? zZpAZ6nO|1KA;!-@6SsFeEUEhC*dEKgWPcf#pWhjNny5P|x<*sg!o-%ef+5xeTBmf@ z>(tSm3Q)FX?(L$fMATdK!u6}hl>Wvt@?kYa+}rptYs}NVrbQ(--)&n(6q}mW&{rJa z1Sh@;_00npqEEFUnn*``Zl3H4(emCk;c;P^(}ZzyLME0;kA)So%5Z@{T^)Lr2B2p) z8b`Y{uhLUaW%byUaTwS+`>@U|>&7k60bR4vW5Cv`scHH{Hm4MsHSNXCJ z%h03vk9e3I{pBl0&CSIR>q}czm`27r%H4f{92+f?oB>OI>$%C=<>=oDnlbH{*nimjDwaC^}EedQXslwF=r)<}`c&26sHB`QQWLT8xb zTUuuvt*+&2&GKjKkkqd~3^Y8?HFgq<>5abZ)@wF;6EbXZ#pRyD;wUT`Rcn7MFJ>ib zv)VO!-QW%RA|U`P>hcs^we^JE3$sq=#WTIq{44TAI}|JyO+NpHab@Q%n}7~zvijWX z*2us-dz&2`wKsBiGk$0^7H|3AZ3N(j;OzO=+I5M*r8*@1e6`opWOZ5G&KsZV@@(VY zG>ff@F5I}B$_%bgzAR2Y-Mx2xFhbUgyX&g>@`coBoN7Eqfm%yH5k_&2;u{MsS@N9e z|G^L1u38-1vPJjoUOhsXqW&wOvKY&p2VA3vI%{+}ErvHnu5q`KnhD=D&G>;O+S-_#Wbn5rxV z5Ow6SJ+*OPZT4SUIitadSa1nUS$vSluEz`hAKjtME?{L4=iVE>8xM{ysWshRt) zq)gVbPg0)C`d(|3u2qDrYJ6H(*OBXXlr5H6{@*>;$x#xO$`r{w*j|E0SRGOX$5V%E zp~Sa_j_@3z2L*(ZPnpe_%Vi@;#ZS3ZLK2DC7M2a*HmFwKlH_4iwSfdd%;fXXv@S}KVXT=Pe|$MpaCD^=OcdwSO^&R*qnXQ-Y- zA5Y%UdFl8n*nO%O1yk1wH?q1$qQi{$q+uYfD*)E$y5@d}rfOdh_5&d&Z4gBU`JzS# z0z+gNwfNG$OP^!r^x=KQ0My_Cc;5f%d1^P;p>EmiE&1_$$M>!3f+2j6Sq+JLfgF7gwpZ(G$Df6iO3Kxdwo zHn?OH#X|!Ul;sZm08nec$62X5a8{cwtod6so(D%8n1>Zldq9TI;^boyRaOzB?&+kp8($;QxSJyw zsHFs`H#iG`ce4Rdzm67C#%ya&hJ2ah{rVu=jwkQGvajqGu$O}YgA0AB>Ald%(+Fzt z;B@k`3k;$cMPr`c2OQa_+%%Bz&`ylY6O*x(WK5`l>Wz(+w2;&Y#IcuqcQ7deydDf! z!z5f=Ft5g-F*MdiDv(5=<3Wr91WZsXC&3NF>>Ef_SD%I&2ETag%64R6j`Jm%GEupx zEHF2}BU>BkUi!}5=s`-8R9nwL?pcLP*;Y0J(bvB;Ynella}r1tc`0R! z`&QR`ox;T{|AP6qD-&jOxdWe*;~-qrS5qq@f={&)8E}N_`!`TtG$;Nnn*g9o@4!u* z5zDan17ceEp;nBH#hX0e5C9clI>pZR_eJw|2p|y21%bi46YfBWi{^Y(=t!}Q5~LPD z%UN}UVS@NK-DS9+SDYdM&IPb%Xv=xlD->wJonjGR3}m@j%_TfZImOm&u!5^wz)5Sb z{fb0=Rf=I?p6P^>^v!F}!0b+#iR!sh)IZz^7x*6S%)zg zI3HH@hN9_kh)f%$vIga=cXIX9)S7Q~^$v1knUf}RX)K-ez6XyQuJq|@@4sJQ&YF_D zH;_vK^XrFw5uNVToPs)cm)(mP`zG2HAT}Ff0D@EyS44fMs@jf}%PEfMT7||AZg5Le zg3~Y|xKj+Z{i3aFP4+|*c9FQQ7^(}Lu~KgJ9s(3{1*iW+{WHWR1b2GWeF>so^*$Q& zIM2`}gO8bpN?i-}nOndtB*LC=3V?Hj)4;m+cplO)8F&^ppF%AI>%_z60qkpB{w5Hz zMiYTT`4>c3c07UjG76rsPblyWQ~lYyyV~`zfWz#jvTd|j!6qI}c&LCNo?6F05KMCh zA)XOU8Ylx^~w|W>E93GF4{PK3j@79#0~$H2_$-F`Y)H9V~6cUZ4OVU>^ZPI&fx;t41D&; zqWf(4h3c+|q624}HjhApH9Ccr5T9W9o8xL$ZpdPEpgd)mRU6>W;YQ~C6+{7eE2lo9 zH*3MFk0XBoyS;$i*VEcpR@9&D!pZO2hvMLErUcrH0z9a#_|j|6>9dj3sP7n{Y1${K z$;`5_z-_4dy_cuOCm=?`Rwf>8;%hZl7Bn|nxtqB@MPl6odO_^iiLYA&Y3e3WnRFDJhY89x?TRQAq($U(q6efE@^$B z{?42=+IZbi%KI2(@lK;lacpDxE-YEVJhG~Of)8=z;q7Hr{VP(Oq?+P^hRJ<>#gPpx z4jX?&-aK{Y-Warc!5g7UkA{|Jw zYKWpy)=)HHn_;YyJ>Lu?Z#O<~OIN`&IU3SJ&g#zVy z2*LB?q8N&gzBKkzstW5zC9a&41(J;%kxo+r{9SE9A2s&AF%LEokj92nGxGCb>Zh1Uo{vBA%+EgRzHVM8e+QDp`(3)K`@05exhY>7jA^IW z#&Xv?V3OM`P3VhZUgMW zN2Wac(lCuI0ya1I7f8&TgOOEneylj@PE?^+iZCbA=gPRwB(rAyB?d5mHiraTQZ&h?>Hgk>|Ex(m*sYq;L z<$e%uE=g5EgR`%|+B)4H`XnviYj{$UyNzbTmRuwl#LkblukN>@B-cSJf22?*)59kK zK{e=JmU&~1E9C2)n9V&y=aqCeRi?^gDz+-Sy>g<3G--G?B5;M3ZG-N&)D)?o&E2O6)%=Qt=rx#0Kw=hTuDH8QHb=CSQsdzFUeTV~1O}eOA zFxx&FOfe+OQNLQBWN0gCz>jxL6wC?Kls9_V-@^e_)9lnB^7Uh|pnh39z<#|EG&SmBNrvEqpQXDnfd(_XK zI8l>ZM6D$l&DHsN-Hm}^+-eT-D>f>UvG}Gwo_$_0R-O)p_otez9Z~)J2Sk2HyJA?) zs;A!!J)TtIsz*K#k$O?q{rdA_MaZ$uW*QZac0Ai8y%LuGHJ?dI z|2Zh5!$Wni3)f)7jynHZ)5|OJ^I2*@TF%%>hFEuExd&bI z6;-F12w(YXfM#7MBE>=Vld|+LGyH!NOaAam(I<_?Tg#%YICV5vMnzuP#vHhG4jBae zmQ|l-eqh>z^EM|3v(7DXM|aE4L9u^KDonvT+ze@jSQ5YufB~E}>4TaQjZoyuG^9uL z@q5K_!F>?)KlXt)=tx&)lkXVlFwr!ed7fWM6D~v}Po45{JuUmW)e4`0Mfh8J*OH#a zKPiV^s+W3$@e}1xRRMQ*F4$d|RkHbH&!!M3lh>j9Bp*(ku24PjKCAE`2@E7w9KNoo z6_T_qlNoA)&uG?8QqOta5;YKBaasX0wGk4@%`lW|JaL9lQyckHVEQJ@-qe<740_W2 z{yTI3=c(Z(%S*8B)?d|aBW}SrPe$oW;Oa}q{fruom>v=dt z&m#}59=gPl%L0{e@C=kDM72&1Z)rt(8?m;EuXBuRJ;R&=}VKYr~5& z@VV^S@XA}-Z(hfKRo>b^8{`V(S`-Tt3gUB7+gkYEU!SwN`xnJ>e3cEA#Qw=T!V;ps z^MDUjD+8;ORut8?@4OPD&oX5jZ#NgdJt?ZY&j@8I>=M4=SU?+q;I^^0qa}%N*W|xa zK&YWHhinbmHu6}wNONNHwf|#wgtcc8oM1z>Qo@lG&5@60x_$7+tVgE=!X|1qMX?fB zb++ge@m-#xj~wq?$;wB1-5f0m=+a=@l^GcgXu?qU*A1!S>g2?8HdsL{+Lbopex90T zkSdDaw6Ei!F{1>&T)h7|tB1LQb%yaeyQWv3vz2^%c#reGb)}?}AM5n(&e5C}DJieF znybA6La9Lhb=N_0zVEl3zmZrx1uhdeKg#CpHrc*o`nw;DLc*Xknzs=DE)!gmAgj5! zXU@r$lXCs6waepiwLJg@0F$;l|u9- z_F-NeZ4OWx{?it3H7^@mP^L6PGHnXnmBh745>hyNGzh4Plss84-UjM$N-EfgA^P=0 zPN%0$D0_RWB}P~^X_t1b76~+IY_=ABBHeo+s^^t_p1mVkvTJS3^`sd8vzFw02#mE>bzjQy5&CyZ0XmrM&3 zY?}f~Igz54R4rGo+N>uH{9i1}+9#e<_G_`yIc^$T8&Lb*j;-c>*gs!}jw{FeNfaae zd#m1Ec!1Br_FVJ+rCo-R)0~of_Q6k;sj)&71hD#X-xdDCsjN&JP@aZj_aY+8x!&+)@>wx zgvzp2du5Cdq~(zW-ebd4Sf5c?Cv|$O{W&rJ&%yeYPp6YyELB^HOUb2x*nHh(=sA1* z{^YpWiVmhyn56$cAIx`Y&rVOSs1euHN9@i1-v6EQJh@AM8R~^Sg=4sky_35@c8(=M zTPzewnbppHxPTs~6jb0{rs82k-+h>iB7r1!PmAbC4=xZhr_Gz~KdcwkTWg6YYWQ;y z`WKW05h0uuSl*f@T} z0k!V`^W~wIL$!U-ln`p;u0^hdO}!sZ!QiQG3|>8u*=X=Tx>RqJMzO7>GF%qSk9+rT zF$?-7ferH1ajFE20t<}Bxi0@+atukV)B3lb1NYo<8;lsxK1zQ^tA6ReDa>G^#hRq%L8VoZzpS3)e7+d zQRNpBpbCqiz5DNk1~6Q5-_lDrweKtPJhaX$UM;G1l;7xxp8WsuC-9C5d}83tBW`f! z5hN5W%&)W~aN^Og%p*={EOHJmS4;|aaSe2Jvmgl*NmEJ}D$PJ_sr;V_M^L{KjwAsJ ziF#sd?cbR4lK<~~6@J({c+8D3?hq{OHWMidD5cOlk1zYQl3)U90sWD}9;vN?1mZC_ z?AHxKJDI9ssHgE5$(D|r((|5M;Y4e+K=A>w`NYZ_Ic={~IbY_wTQ06-9F+MoAzIzd zh39+@AUiG(B87X})~FsI4Q5a*E9y8n*Gg5gc9TToeLcxY_!TXo<#t!UPYzNnIa28|h z9Wf( z>A)x$KXB+(DTKe#aW`f%3^~x(Bz_@Jg0Pnz;%fV)_Oj$ zS^{}V=|dZj!Ax7&U6lGypSNX#%B#`~{(o(w*AlCoE$0QcZ!M8Da>~}!R>c>sPG$=Z ztd{JWZSo`@bF#yX=+ii)i#Zbu+}$N(QoO!cs!25Z1u>rb&?5k_${BG)6FIl)G&*GWFz;O;j+J z96Z!aR9MeWN(xXSi%Z2Kih81y(*j*9XMj3;8F?ebVs~G9AkjR6{9K`GhfCGO^J8Fk zZtlzu^->#QI~}K$$w&>Pom&P2ZEL8Rhn)X_m)R^%^$v``dcH%LvF!p$3X{_bZBC1N zGeJjO(f736Ae@Q?nOPNA`;c%`(V5%09np}RkkdbW&d&$aP*_&pitl$Dyx43oZ!?_V zE^A2_BmfZPNh(a_LjC3bfFFR-sQ&&@&XV(j_EuFcf){X~;8y=|d|R?kGK=5-E>h%w z@hX`BqJQHMlGfsyYEAAF+;#bX_<6i~Rp&?X1Mr;K(bOeVrpQVp(U0OH%iA}gR+ zm0$Y~-;uu0WjuR)MXrI&6ormFl#K?K+d_nL@#|w6|BhB*pgVjYS*ZTb?Wf@e(g!J5 zNg`SN=2!j`A5u;y0=B<^AF;=5-w59)792^%v4v(KvTdHQ121)@4zS=Dto-=3clH(C z1}eYymss9Z(>5=uRWz_CLQ{~9O2m=Hrvl$~8?lZ z0MI!$yZhb-gn9k|Af7$qtUoZd-s(AD)V$w${&#gy7aYQw`tk z(KxR{4I^w(gH{9!-_h<1c{jiE+rOJXjriAl!f{(8N1vlH9{K1=jdhUf%v{w(q`eTX z1RdauLt6h+VJEODi6SNlBb3xti7V%nJ3Myg`iB=$YNb{-FV*37%N)>e0|6oD=Ko1U zo=5;Bt;Xn6<$?}i+xF2khv1MBuB!v#S}o0r!RI(Sh+`#6V`Lt!^7uzLAHD7~N0x&P z!<{f~jds7m`0W$dm$pQ^VaBF-6yZ3p@H9OK|5{lO@?$PbBAxp(0KD?5EI`JaREt77 zl6I*8NdekC3}V(wj=VtX1)ocrIcUAo(s5P4-2Y@f2PYEkGvgZcikAL|ENZj*x8vIy-(XwH9lo-=OJJ9?dK47a~CD}@%Dcxyar=~NP0 zheEq<4=9-&`n%~(gBQSR;FLtXr+6-M=xu7~VLAZ@WtFeBhr&z888570h^&l>RN^$VTSm)p2+x|8OZ~RU zUL?vAth_!+)+mPYWc#+zSsz*zc)SowtTz&gSoE23hvMSFv~3%^Qj$KxLGX#Q+{kk7 zm?|$0QB4K*1r>@vfB5*Ty)0F=5Z2KA)p`7qtg;zmvlqGc3 z@<==!$p9F!&$;nNUt)CP=- z+_I7;m%tM5+88E}qM3wtSABXbYxc}@mOeI$0q8BU{a0q-Zn8vKp<6l|izwL)jw<^; z7E&~s>Zo^~Z_{W=W^iB08>3TdFg9MWXt(6na1>^@Bn0z6cTo%HlZ7bS1H;ECcwt6O~_OQcdDWgeLs#&H2~>y z@_sw3QC)e@5S*%Q70Re+3nfU?OT9azkjYH|dkis5F(y&N7T!pSJbT$yxv+v=rpPQp z7q&@YDjV5`>!~xU-^DG0mwm>HzbxS2I2il^Ahbyl{~D8cMlmB|C?7S#N(bKlN2Z95 zfP*7g0;A_bGJvkBEO%eH%=*D{N9xe<6txUI5-hG2&Ti~NA8#QrNMB(AfpZ|OV2`u1i;y2Q*m1R4~nU=}H-5U|~gwmN~18%+vM#N6_KV-6wns@#(Q$#lV> z?UHZ9Q8TbPx2l86t=f0kq$=CkZn^Tyf9L8}UmZuI2eqzs*N8gm?Sw2H=ABOd&Emlf zw%wpPyIPR-x4}C*g7L_;4Rfgkay7Xfvt$}!8v#8KqLDs5X@s^((GnHTEj0;~^NTRc zg9?E^hP^m+KH;ZBmY}^r4Fq!(w`n>9nc@@a>rmBNQx7wPCHgTiUsCGtIg{|3s@lIES ztE0sZB`rR}sXFbCVNRF%O?7v#es^}u{-9a)J(DHM=6~r(Fm|(ylRt-`#*bVcWHR@D zHehBGHxS;;Gvr3!`mmn>;7oqSqVgg%az9481dqIzy)EkpKzol%OqJXYVRA>UxIB%* zK)U5c!A?Ipx=rest;08%hsRk;3v%im?yDJ}P}12%_0J-mzo?RAZCy-aKjOQXa-k>0 z+QG{EFcawhg?&xk#>prM)D8_qHAngff0Ae^ZO-K+su~L`nGBAp_*aN2`|T58jImvE z3$uAaK~9S;ml@B>I9hyN?c1$5T;ioWDbY|rbGF#fa$2R`?cq2XJ(#lCddr0OS@->R zmCjpB2hiI}st_}R+`bl(;%Xb=!z$lWONTk4O4{04-7c&)-RGwDy49Ff9h2Z06Vq?B zX#vwK{=+!{JuV+L37rZl@_a5lybF31W}=EqYP_QImB#e^1J-K+O6fpGM<;`Pc`oVt zjVrlu!$e9=dfcY+9{}(nflYgS%5?nb!ZoyQ?s9?9eGq3mTK}L~;rKdVo-3?l3&NS4 z#NXy5KC#X@%kooeA9zl|F_{?GrNfi(EG z`~bipGJyn5W#f+;G80K#B%zIq9Vk!H&i;g2l;~!g*L}YrH*MDM z^S6tERba+*CiabomLoMYSHIXbd7DNF-@&W0AI%kS1A81RVO6-o!L(EM7VGaC*|?dv z$azfiIcH&bmn$ilOUGICjw@P~ZMr&hp^@^#nOl}0DRDNJaXor-COl4jL2)9y!(rM4 zNB>?Sg~|Onwp@0tBDPMliNJ>3T>{~FrOEZOSzzVSx)-)@h4>Uoby5l}>a%XROGBFr zM`WVXI5~FgI5YE0&aC~eQD6KXI&~!Ov2@#VZ+i=8bq6qqT+H^KdNYPKc4}E*CW{{P z6QxV{CcB*A=oGSzy5RUO5h)(U1Z0iYOFoS=KD8%(YQ=f2kMlww+pIoT8Q$}0uHX{6 ziiH=f*}+Yre6jWG7E~XYP{_RIy5&wGL6w=4*5qeAVp$!1>$wTDCEwhs2RFK$+PZUl z(R`!YGr+FEOQY#kNB*dV2p^okBIgiq=2N@u7Ot*h2VqvzJ-{S5=bnhPp;2&@8i(dp z(L=1RVxMMc&a~dy>JM*Q$}T}pUEn^=rBuDIoj<(`%SPqJT=VYfD%S+8exvlnU<13AYpf|Mw32pEM@hjDJ2Dy9 zeXV5k+%(_xfc+cc6BC#(2p$M7=KQMQ&dAwP%v!+zn^S##FVs_UB_R&UDjn==r2j-A@!A z6xmILSzdPJVa}57JH__fIQlr>Ju(J&tN$|`0JaPL|1km^GW8!gfI0U+Lj$PW@<;61 fwBN?kKkeT|vMN6Gs0fl1X>X+x19-F3`TsWoi(91C From 14450298082d39236ab2a4a05af629e011afc40f Mon Sep 17 00:00:00 2001 From: Zengyi Qin Date: Fri, 5 Jan 2024 10:18:08 -0500 Subject: [PATCH 06/12] Update openvoice_app.py --- openvoice_app.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openvoice_app.py b/openvoice_app.py index da44c24..65d6854 100644 --- a/openvoice_app.py +++ b/openvoice_app.py @@ -182,7 +182,7 @@ markdown_table_v2 = """ """ content = """
- If the generated voice does not sound like the reference voice, please refer to this QnA. For multi-lingual & cross-lingual examples, please refer to this jupyter notebook. + If the generated voice does not sound like the reference voice, please refer to this QnA. For multi-lingual & cross-lingual examples, please refer to this jupyter notebook. This online demo mainly supports English. The default style also supports Chinese. But OpenVoice can adapt to any other language as long as a base speaker is provided.
""" @@ -272,4 +272,4 @@ with gr.Blocks(analytics_enabled=False) as demo: tts_button.click(predict, [input_text_gr, style_gr, ref_gr, tos_gr], outputs=[out_text_gr, audio_gr, ref_audio_gr]) demo.queue() -demo.launch(debug=True, show_api=True, share=args.share) \ No newline at end of file +demo.launch(debug=True, show_api=True, share=args.share) From 8a6180e11e0ed6a1374c9ae371619af7befcd1c5 Mon Sep 17 00:00:00 2001 From: yuxumin <1090414006@qq.com> Date: Sat, 6 Jan 2024 00:03:17 +0800 Subject: [PATCH 07/12] add hash code when naming a se folder --- se_extractor.py | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/se_extractor.py b/se_extractor.py index 3ea2b9d..4727ffe 100644 --- a/se_extractor.py +++ b/se_extractor.py @@ -1,6 +1,9 @@ import os import glob import torch +import hashlib +import librosa +import base64 from glob import glob import numpy as np from pydub import AudioSegment @@ -10,14 +13,13 @@ from whisper_timestamped.transcribe import get_audio_tensor, get_vad_segments model_size = "medium" # Run on GPU with FP16 model = None -def split_audio_whisper(audio_path, target_dir='processed'): +def split_audio_whisper(audio_path, audio_name, target_dir='processed', ): global model if model is None: model = WhisperModel(model_size, device="cuda", compute_type="float16") audio = AudioSegment.from_file(audio_path) max_len = len(audio) - audio_name = os.path.basename(audio_path).rsplit('.', 1)[0] target_folder = os.path.join(target_dir, audio_name) segments, info = model.transcribe(audio_path, beam_size=5, word_timestamps=True) @@ -69,7 +71,7 @@ def split_audio_whisper(audio_path, target_dir='processed'): return wavs_folder -def split_audio_vad(audio_path, target_dir, split_seconds=10.0): +def split_audio_vad(audio_path, target_dir, audio_name, split_seconds=10.0): SAMPLE_RATE = 16000 audio_vad = get_audio_tensor(audio_path) segments = get_vad_segments( @@ -90,7 +92,6 @@ def split_audio_vad(audio_path, target_dir, split_seconds=10.0): audio_dur = audio_active.duration_seconds print(f'after vad: dur = {audio_dur}') - audio_name = os.path.basename(audio_path).rsplit('.', 1)[0] target_folder = os.path.join(target_dir, audio_name) wavs_folder = os.path.join(target_folder, 'wavs') os.makedirs(wavs_folder, exist_ok=True) @@ -111,14 +112,24 @@ def split_audio_vad(audio_path, target_dir, split_seconds=10.0): count += 1 return wavs_folder +def hash_numpy_array(audio_path): + array, _ = librosa.load(audio_path, sr=None) + # Convert the array to bytes + array_bytes = array.tobytes() - + # Calculate the hash of the array bytes + hash_object = hashlib.sha256(array_bytes) + hash_value = hash_object.digest() + # Convert the hash value to base64 + base64_value = base64.b64encode(hash_value) + + return base64_value.decode('utf-8')[:16].replace('/', '_^') def get_se(audio_path, vc_model, target_dir='processed', vad=True): device = vc_model.device - audio_name = os.path.basename(audio_path).rsplit('.', 1)[0] + audio_name = f"{os.path.basename(audio_path).rsplit('.', 1)[0]}_{hash_numpy_array(audio_path)}" se_path = os.path.join(target_dir, audio_name, 'se.pth') if os.path.isfile(se_path): @@ -127,9 +138,9 @@ def get_se(audio_path, vc_model, target_dir='processed', vad=True): if os.path.isdir(audio_path): wavs_folder = audio_path elif vad: - wavs_folder = split_audio_vad(audio_path, target_dir) + wavs_folder = split_audio_vad(audio_path, target_dir=target_dir, audio_name=audio_name) else: - wavs_folder = split_audio_whisper(audio_path, target_dir) + wavs_folder = split_audio_whisper(audio_path, target_dir=target_dir, audio_name=audio_name) audio_segs = glob(f'{wavs_folder}/*.wav') if len(audio_segs) == 0: From 9d4342cafd74d71219e9e3e5c291035f4bd5f8d6 Mon Sep 17 00:00:00 2001 From: wl-zhao Date: Sat, 6 Jan 2024 00:12:29 +0800 Subject: [PATCH 08/12] add audio hash to audio name to avoid confusion --- se_extractor.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/se_extractor.py b/se_extractor.py index 3ea2b9d..b916406 100644 --- a/se_extractor.py +++ b/se_extractor.py @@ -5,19 +5,21 @@ from glob import glob import numpy as np from pydub import AudioSegment from faster_whisper import WhisperModel +import hashlib +import base64 +import librosa from whisper_timestamped.transcribe import get_audio_tensor, get_vad_segments model_size = "medium" # Run on GPU with FP16 model = None -def split_audio_whisper(audio_path, target_dir='processed'): +def split_audio_whisper(audio_path, target_dir, audio_name): global model if model is None: model = WhisperModel(model_size, device="cuda", compute_type="float16") audio = AudioSegment.from_file(audio_path) max_len = len(audio) - audio_name = os.path.basename(audio_path).rsplit('.', 1)[0] target_folder = os.path.join(target_dir, audio_name) segments, info = model.transcribe(audio_path, beam_size=5, word_timestamps=True) @@ -69,7 +71,7 @@ def split_audio_whisper(audio_path, target_dir='processed'): return wavs_folder -def split_audio_vad(audio_path, target_dir, split_seconds=10.0): +def split_audio_vad(audio_path, target_dir, audio_name, split_seconds=10.0): SAMPLE_RATE = 16000 audio_vad = get_audio_tensor(audio_path) segments = get_vad_segments( @@ -90,7 +92,6 @@ def split_audio_vad(audio_path, target_dir, split_seconds=10.0): audio_dur = audio_active.duration_seconds print(f'after vad: dur = {audio_dur}') - audio_name = os.path.basename(audio_path).rsplit('.', 1)[0] target_folder = os.path.join(target_dir, audio_name) wavs_folder = os.path.join(target_folder, 'wavs') os.makedirs(wavs_folder, exist_ok=True) @@ -112,13 +113,18 @@ def split_audio_vad(audio_path, target_dir, split_seconds=10.0): return wavs_folder - +def hash_numpy_array(array): + array_bytes = array.tobytes() + hash_object = hashlib.sha256(array_bytes) + hash_value = hash_object.digest() + base64_value = base64.b64encode(hash_value) + return base64_value.decode('utf-8')[:16].replace('/', '&') def get_se(audio_path, vc_model, target_dir='processed', vad=True): device = vc_model.device - - audio_name = os.path.basename(audio_path).rsplit('.', 1)[0] + audio_hash = hash_numpy_array(librosa.load(audio_path, mono=True)[0]) + audio_name = os.path.basename(audio_path).rsplit('.', 1)[0] + '_' + audio_hash se_path = os.path.join(target_dir, audio_name, 'se.pth') if os.path.isfile(se_path): @@ -127,9 +133,9 @@ def get_se(audio_path, vc_model, target_dir='processed', vad=True): if os.path.isdir(audio_path): wavs_folder = audio_path elif vad: - wavs_folder = split_audio_vad(audio_path, target_dir) + wavs_folder = split_audio_vad(audio_path, target_dir, audio_name) else: - wavs_folder = split_audio_whisper(audio_path, target_dir) + wavs_folder = split_audio_whisper(audio_path, target_dir, audio_name) audio_segs = glob(f'{wavs_folder}/*.wav') if len(audio_segs) == 0: From 37efc939bec20d58e2775cc52e7bdd602e574865 Mon Sep 17 00:00:00 2001 From: Zengyi Qin Date: Sun, 7 Jan 2024 15:48:04 -0500 Subject: [PATCH 09/12] Update QA.md --- QA.md | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/QA.md b/QA.md index 3510ea9..8ee15ed 100644 --- a/QA.md +++ b/QA.md @@ -1,11 +1,14 @@ # Common Questions and Answers +## General Comments + +**OpenVoice is a technology, not a product.** Do not expect it to work perfectly on every case, as it takes a lot of engineering effort to translate a technology to a stable product. The targeted users of this technology is developers and researchers, not end users. End users need a perfect product. However, we are confident to say that OpenVoice is in tier-1 among the source-available voice cloning technologies. ## Issues with Voice Quality -**Accent of the Generated Voice is not Similar to the Reference Voice** +**Accent and Emotion of the Generated Voice is not Similar to the Reference Voice** -First of all, OpenVoice only clones the tone color of the reference speaker. It does NOT clone the accent. The accent is controlled by the base speaker TTS model, not cloned by the tone color converter (please refer to our [paper](https://arxiv.org/pdf/2312.01479.pdf) for technical details). If the user wants to change the accent of the output, they need to have a base speaker model with that accent. OpenVoice provides sufficient flexibility for users to integrate their own base speaker model into the framework by simply replacing the current base speaker we provided. +First of all, OpenVoice only clones the tone color of the reference speaker. It does NOT clone the accent or emotion. The accent and emotion is controlled by the base speaker TTS model, not cloned by the tone color converter (please refer to our [paper](https://arxiv.org/pdf/2312.01479.pdf) for technical details). If the user wants to change the accent or emotion of the output, they need to have a base speaker model with that accent. OpenVoice provides sufficient flexibility for users to integrate their own base speaker model into the framework by simply replacing the current base speaker we provided. **Bad Audio Quality of the Generated Speech** @@ -20,4 +23,4 @@ Please check the followings: **Support of Other Languages** -For multi-lingual and cross-lingual usage, please refer to [`demo_part2.ipynb`](https://github.com/myshell-ai/OpenVoice/blob/main/demo_part2.ipynb). OpenVoice supports any language as long as you have a base speaker in that language. The OpenVoice team already did the most difficult part (tone color converter training) for you. Base speaker TTS model is relatively easy to train, and multiple existing open-source repositories support it. If you don't want to train by yourself, simply use the OpenAI TTS model as the base speaker. \ No newline at end of file +For multi-lingual and cross-lingual usage, please refer to [`demo_part2.ipynb`](https://github.com/myshell-ai/OpenVoice/blob/main/demo_part2.ipynb). OpenVoice supports any language as long as you have a base speaker in that language. The OpenVoice team already did the most difficult part (tone color converter training) for you. Base speaker TTS model is relatively easy to train, and multiple existing open-source repositories support it. If you don't want to train by yourself, simply use the OpenAI TTS model as the base speaker. From e9de573681b694a00ab2daabf542219b2524d6a1 Mon Sep 17 00:00:00 2001 From: Zengyi Qin Date: Sun, 7 Jan 2024 15:48:29 -0500 Subject: [PATCH 10/12] Update QA.md --- QA.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/QA.md b/QA.md index 8ee15ed..66b10b3 100644 --- a/QA.md +++ b/QA.md @@ -2,7 +2,7 @@ ## General Comments -**OpenVoice is a technology, not a product.** Do not expect it to work perfectly on every case, as it takes a lot of engineering effort to translate a technology to a stable product. The targeted users of this technology is developers and researchers, not end users. End users need a perfect product. However, we are confident to say that OpenVoice is in tier-1 among the source-available voice cloning technologies. +**OpenVoice is a technology, not a product.** Do not expect it to work perfectly on every case, as it takes a lot of engineering effort to translate a technology to a stable product. The targeted users of this technology are developers and researchers, not end users. End users need a perfect product. However, we are confident to say that OpenVoice is in tier-1 among the source-available voice cloning technologies. ## Issues with Voice Quality From 4d82a721e38506b728759a69992ab8fc2e0dd1bf Mon Sep 17 00:00:00 2001 From: qinzy Date: Sun, 7 Jan 2024 16:00:00 -0500 Subject: [PATCH 11/12] update --- README.md | 4 ---- demo_part1.ipynb | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index a343bcc..3db3cd5 100644 --- a/README.md +++ b/README.md @@ -54,10 +54,6 @@ OpenVoice has been powering the instant voice cloning capability of [myshell.ai] Please see [QnA](QA.md) for common questions and answers. We will regularly update the question and answer list. -## Disclaimer - -This is an implementation that approximates the performance of the internal voice clone technology of [myshell.ai](https://app.myshell.ai/explore). The online version in myshell.ai has better 1) audio quality, 2) voice cloning similarity, 3) speech naturalness and 4) computational efficiency. - ## Installation Clone this repo, and run ``` diff --git a/demo_part1.ipynb b/demo_part1.ipynb index 065c540..225b7d3 100644 --- a/demo_part1.ipynb +++ b/demo_part1.ipynb @@ -148,7 +148,7 @@ "save_path = f'{output_dir}/output_whispering.wav'\n", "\n", "# Run the base speaker tts\n", - "text = \"This audio is generated by OpenVoice with a half-performance model.\"\n", + "text = \"This audio is generated by OpenVoice.\"\n", "src_path = f'{output_dir}/tmp.wav'\n", "base_speaker_tts.tts(text, src_path, speaker='whispering', language='English', speed=0.9)\n", "\n", From 95b3434b7b1b0c77deb718854ca8027cf2fb3c1e Mon Sep 17 00:00:00 2001 From: qinzy Date: Sun, 7 Jan 2024 20:25:47 -0500 Subject: [PATCH 12/12] update readme and qa --- QA.md | 6 +++++- README.md | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/QA.md b/QA.md index 66b10b3..08473f5 100644 --- a/QA.md +++ b/QA.md @@ -2,7 +2,11 @@ ## General Comments -**OpenVoice is a technology, not a product.** Do not expect it to work perfectly on every case, as it takes a lot of engineering effort to translate a technology to a stable product. The targeted users of this technology are developers and researchers, not end users. End users need a perfect product. However, we are confident to say that OpenVoice is in tier-1 among the source-available voice cloning technologies. +**OpenVoice is a Technology, not a Product** + +Although it works on a majority of voices if used correctly, please do not expect it to work perfectly on every case, as it takes a lot of engineering effort to translate a technology to a stable product. The targeted users of this technology are developers and researchers, not end users. End users expects a perfect product. However, we are confident to say that OpenVoice is the state-of-the-art among the source-available voice cloning technologies. + +The contribution of OpenVoice is a versatile instant voice cloning technical approach, not a ready-to-use perfect voice cloning product. However, we firmly believe that by releasing OpenVoice, we can accelerate the open research community's progress on instant voice cloning, and someday in the future the free voice cloning methods will be as good as commercial ones. ## Issues with Voice Quality diff --git a/README.md b/README.md index 3db3cd5..6e7c3d3 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ There are many single or multi-speaker TTS methods that can generate natural spe ``` ## License -This repository is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License, which prohibits commercial usage. **MyShell reserves the ability to detect whether an audio is generated by OpenVoice**, no matter whether the watermark is added or not. +This repository is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License, which prohibits commercial usage. **This will be changed to a license that allows Free Commercial usage in the near future.** Stay tuned. For social responsibility and anti-misuse considerations, **MyShell reserves the ability to detect whether an audio is generated by OpenVoice**, no matter whether the watermark is added or not. ## Acknowledgements