From 46222d0853db66d04d455d40474c5f7b627b433e Mon Sep 17 00:00:00 2001 From: wehub-resource-sync Date: Mon, 13 Jul 2026 13:01:27 +0800 Subject: [PATCH] chore: import upstream snapshot with attribution --- README.md | 292 + README.wehub.md | 7 + UVR.py | 7265 +++++++++++++++++ __version__.py | 4 + demucs/__init__.py | 5 + demucs/__main__.py | 272 + demucs/apply.py | 305 + demucs/demucs.py | 459 ++ demucs/filtering.py | 502 ++ demucs/hdemucs.py | 796 ++ demucs/htdemucs.py | 664 ++ demucs/model.py | 218 + demucs/model_v2.py | 218 + demucs/pretrained.py | 180 + demucs/repo.py | 148 + demucs/spec.py | 53 + demucs/states.py | 148 + demucs/tasnet.py | 447 + demucs/tasnet_v2.py | 452 + demucs/transformer.py | 839 ++ demucs/utils.py | 502 ++ gui_data/app_size_values.py | 371 + gui_data/change_log.txt | 93 + gui_data/complete_chime.wav | Bin 0 -> 357288 bytes gui_data/constants.py | 1584 ++++ gui_data/error_handling.py | 110 + gui_data/fail_chime.wav | Bin 0 -> 384692 bytes gui_data/fonts/Montserrat/Montserrat.ttf | Bin 0 -> 263192 bytes gui_data/fonts/centurygothic/GOTHIC.ttf | Bin 0 -> 137568 bytes gui_data/fonts/other/own_font_goes_here.txt | 1 + gui_data/img/File.png | Bin 0 -> 3697 bytes gui_data/img/GUI-Icon.ico | Bin 0 -> 410598 bytes gui_data/img/GUI-Icon.png | Bin 0 -> 166781 bytes gui_data/img/UVR-banner.png | Bin 0 -> 110965 bytes gui_data/img/UVR.icns | Bin 0 -> 374066 bytes gui_data/img/UVR_v5.6.png | Bin 0 -> 132699 bytes gui_data/img/clear.png | Bin 0 -> 757 bytes gui_data/img/copy.png | Bin 0 -> 18609 bytes gui_data/img/credits.png | Bin 0 -> 240829 bytes gui_data/img/donate.png | Bin 0 -> 20539 bytes gui_data/img/down.png | Bin 0 -> 614 bytes gui_data/img/download.png | Bin 0 -> 13223 bytes gui_data/img/help.png | Bin 0 -> 8867 bytes gui_data/img/key.png | Bin 0 -> 11265 bytes gui_data/img/left.png | Bin 0 -> 438 bytes gui_data/img/pause.png | Bin 0 -> 2927 bytes gui_data/img/play.png | Bin 0 -> 4269 bytes gui_data/img/right.png | Bin 0 -> 425 bytes gui_data/img/splash.bmp | Bin 0 -> 282296 bytes gui_data/img/stop.png | Bin 0 -> 2003 bytes gui_data/img/stop_player.png | Bin 0 -> 2598 bytes gui_data/img/up.png | Bin 0 -> 491 bytes gui_data/model_manual_download.json | 1 + gui_data/old_data_check.py | 27 + gui_data/own_font.json | 4 + .../saved_ensembles_go_here.txt | 1 + .../saved_settings/saved_settings_go_here.txt | 1 + gui_data/sv_ttk/__init__.py | 69 + gui_data/sv_ttk/sun-valley.tcl | 52 + gui_data/sv_ttk/sun-valley_darwin.tcl | 49 + gui_data/sv_ttk/theme/dark.tcl | 563 ++ gui_data/sv_ttk/theme/dark/arrow-down.png | Bin 0 -> 2897 bytes gui_data/sv_ttk/theme/dark/arrow-right.png | Bin 0 -> 261 bytes gui_data/sv_ttk/theme/dark/arrow-up.png | Bin 0 -> 274 bytes .../theme/dark/button-accent-disabled.png | Bin 0 -> 262 bytes .../sv_ttk/theme/dark/button-accent-hover.png | Bin 0 -> 373 bytes .../theme/dark/button-accent-pressed.png | Bin 0 -> 363 bytes .../sv_ttk/theme/dark/button-accent-rest.png | Bin 0 -> 377 bytes .../sv_ttk/theme/dark/button-close-hover.png | Bin 0 -> 274 bytes .../theme/dark/button-close-pressed.png | Bin 0 -> 274 bytes .../sv_ttk/theme/dark/button-disabled.png | Bin 0 -> 2917 bytes gui_data/sv_ttk/theme/dark/button-hover.png | Bin 0 -> 2915 bytes gui_data/sv_ttk/theme/dark/button-pressed.png | Bin 0 -> 2887 bytes gui_data/sv_ttk/theme/dark/button-rest.png | Bin 0 -> 2945 bytes .../theme/dark/button-titlebar-hover.png | Bin 0 -> 245 bytes .../theme/dark/button-titlebar-pressed.png | Bin 0 -> 238 bytes gui_data/sv_ttk/theme/dark/card.png | Bin 0 -> 3008 bytes gui_data/sv_ttk/theme/dark/check-disabled.png | Bin 0 -> 383 bytes gui_data/sv_ttk/theme/dark/check-hover.png | Bin 0 -> 3015 bytes gui_data/sv_ttk/theme/dark/check-pressed.png | Bin 0 -> 3004 bytes gui_data/sv_ttk/theme/dark/check-rest.png | Bin 0 -> 3027 bytes .../sv_ttk/theme/dark/check-tri-disabled.png | Bin 0 -> 294 bytes .../sv_ttk/theme/dark/check-tri-hover.png | Bin 0 -> 362 bytes .../sv_ttk/theme/dark/check-tri-pressed.png | Bin 0 -> 358 bytes gui_data/sv_ttk/theme/dark/check-tri-rest.png | Bin 0 -> 363 bytes .../theme/dark/check-unsel-disabled.png | Bin 0 -> 2965 bytes .../sv_ttk/theme/dark/check-unsel-hover.png | Bin 0 -> 2908 bytes .../sv_ttk/theme/dark/check-unsel-pressed.png | Bin 0 -> 2917 bytes .../sv_ttk/theme/dark/check-unsel-rest.png | Bin 0 -> 2945 bytes gui_data/sv_ttk/theme/dark/combo-disabled.png | Bin 0 -> 2965 bytes gui_data/sv_ttk/theme/dark/empty.png | Bin 0 -> 129 bytes gui_data/sv_ttk/theme/dark/entry-disabled.png | Bin 0 -> 2973 bytes gui_data/sv_ttk/theme/dark/entry-focus.png | Bin 0 -> 2957 bytes gui_data/sv_ttk/theme/dark/entry-hover.png | Bin 0 -> 269 bytes gui_data/sv_ttk/theme/dark/entry-invalid.png | Bin 0 -> 324 bytes .../sv_ttk/theme/dark/entry-rest-combo.png | Bin 0 -> 224 bytes gui_data/sv_ttk/theme/dark/entry-rest.png | Bin 0 -> 297 bytes .../sv_ttk/theme/dark/notebook-border.png | Bin 0 -> 337 bytes gui_data/sv_ttk/theme/dark/notebook.png | Bin 0 -> 2836 bytes .../sv_ttk/theme/dark/progress-pbar-hor.png | Bin 0 -> 2812 bytes .../sv_ttk/theme/dark/progress-pbar-vert.png | Bin 0 -> 214 bytes .../sv_ttk/theme/dark/progress-trough-hor.png | Bin 0 -> 2812 bytes .../theme/dark/progress-trough-vert.png | Bin 0 -> 160 bytes gui_data/sv_ttk/theme/dark/radio-disabled.png | Bin 0 -> 279 bytes gui_data/sv_ttk/theme/dark/radio-hover.png | Bin 0 -> 3091 bytes gui_data/sv_ttk/theme/dark/radio-pressed.png | Bin 0 -> 3037 bytes gui_data/sv_ttk/theme/dark/radio-rest.png | Bin 0 -> 3092 bytes .../theme/dark/radio-unsel-disabled.png | Bin 0 -> 2963 bytes .../sv_ttk/theme/dark/radio-unsel-hover.png | Bin 0 -> 3056 bytes .../sv_ttk/theme/dark/radio-unsel-pressed.png | Bin 0 -> 3056 bytes .../sv_ttk/theme/dark/radio-unsel-rest.png | Bin 0 -> 3046 bytes .../theme/dark/scale-thumb-disabled.png | Bin 0 -> 531 bytes .../sv_ttk/theme/dark/scale-thumb-hover.png | Bin 0 -> 504 bytes .../sv_ttk/theme/dark/scale-thumb-pressed.png | Bin 0 -> 525 bytes .../sv_ttk/theme/dark/scale-thumb-rest.png | Bin 0 -> 539 bytes .../sv_ttk/theme/dark/scale-trough-hor.png | Bin 0 -> 208 bytes .../sv_ttk/theme/dark/scale-trough-vert.png | Bin 0 -> 215 bytes gui_data/sv_ttk/theme/dark/scroll-down.png | Bin 0 -> 226 bytes .../sv_ttk/theme/dark/scroll-hor-thumb.png | Bin 0 -> 254 bytes .../sv_ttk/theme/dark/scroll-hor-trough.png | Bin 0 -> 338 bytes gui_data/sv_ttk/theme/dark/scroll-left.png | Bin 0 -> 233 bytes gui_data/sv_ttk/theme/dark/scroll-right.png | Bin 0 -> 227 bytes gui_data/sv_ttk/theme/dark/scroll-up.png | Bin 0 -> 236 bytes .../sv_ttk/theme/dark/scroll-vert-thumb.png | Bin 0 -> 283 bytes .../sv_ttk/theme/dark/scroll-vert-trough.png | Bin 0 -> 178 bytes gui_data/sv_ttk/theme/dark/separator.png | Bin 0 -> 128 bytes gui_data/sv_ttk/theme/dark/sizegrip.png | Bin 0 -> 276 bytes .../sv_ttk/theme/dark/switch-off-disabled.png | Bin 0 -> 733 bytes .../sv_ttk/theme/dark/switch-off-hover.png | Bin 0 -> 945 bytes .../sv_ttk/theme/dark/switch-off-pressed.png | Bin 0 -> 963 bytes .../sv_ttk/theme/dark/switch-off-rest.png | Bin 0 -> 895 bytes .../sv_ttk/theme/dark/switch-on-disabled.png | Bin 0 -> 623 bytes .../sv_ttk/theme/dark/switch-on-hover.png | Bin 0 -> 927 bytes .../sv_ttk/theme/dark/switch-on-pressed.png | Bin 0 -> 936 bytes gui_data/sv_ttk/theme/dark/switch-on-rest.png | Bin 0 -> 859 bytes gui_data/sv_ttk/theme/dark/tab-hover.png | Bin 0 -> 265 bytes gui_data/sv_ttk/theme/dark/tab-rest.png | Bin 0 -> 2944 bytes gui_data/sv_ttk/theme/dark/tab-selected.png | Bin 0 -> 2952 bytes .../sv_ttk/theme/dark/treeheading-hover.png | Bin 0 -> 295 bytes .../sv_ttk/theme/dark/treeheading-pressed.png | Bin 0 -> 317 bytes .../sv_ttk/theme/dark/treeheading-rest.png | Bin 0 -> 321 bytes gui_data/tkinterdnd2/TkinterDnD.py | 294 + gui_data/tkinterdnd2/__init__.py | 25 + .../tkdnd/linux64/libtkdnd2.9.2.so | Bin 0 -> 55135 bytes .../tkinterdnd2/tkdnd/linux64/pkgIndex.tcl | 10 + gui_data/tkinterdnd2/tkdnd/linux64/tkdnd.tcl | 469 ++ .../tkdnd/linux64/tkdnd_compat.tcl | 160 + .../tkdnd/linux64/tkdnd_generic.tcl | 520 ++ .../tkdnd/linux64/tkdnd_macosx.tcl | 144 + .../tkinterdnd2/tkdnd/linux64/tkdnd_unix.tcl | 810 ++ .../tkinterdnd2/tkdnd/linux64/tkdnd_utils.tcl | 252 + .../tkdnd/linux64/tkdnd_windows.tcl | 167 + .../tkdnd/osx64/libtkdnd2.9.2.dylib | Bin 0 -> 40176 bytes gui_data/tkinterdnd2/tkdnd/osx64/pkgIndex.tcl | 10 + gui_data/tkinterdnd2/tkdnd/osx64/tkdnd.tcl | 469 ++ .../tkinterdnd2/tkdnd/osx64/tkdnd_compat.tcl | 160 + .../tkinterdnd2/tkdnd/osx64/tkdnd_generic.tcl | 520 ++ .../tkinterdnd2/tkdnd/osx64/tkdnd_macosx.tcl | 144 + .../tkinterdnd2/tkdnd/osx64/tkdnd_unix.tcl | 810 ++ .../tkinterdnd2/tkdnd/osx64/tkdnd_utils.tcl | 252 + .../tkinterdnd2/tkdnd/osx64/tkdnd_windows.tcl | 167 + .../tkdnd/osx_arm/libtkdnd2.9.3.dylib | Bin 0 -> 74608 bytes .../tkinterdnd2/tkdnd/osx_arm/pkgIndex.tcl | 62 + gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd.tcl | 539 ++ .../tkdnd/osx_arm/tkdnd_compat.tcl | 160 + .../tkdnd/osx_arm/tkdnd_generic.tcl | 587 ++ .../tkdnd/osx_arm/tkdnd_macosx.tcl | 144 + .../tkinterdnd2/tkdnd/osx_arm/tkdnd_unix.tcl | 883 ++ .../tkinterdnd2/tkdnd/osx_arm/tkdnd_utils.tcl | 256 + .../tkdnd/osx_arm/tkdnd_windows.tcl | 167 + .../tkinterdnd2/tkdnd/win64/libtkdnd2.9.2.dll | Bin 0 -> 153600 bytes gui_data/tkinterdnd2/tkdnd/win64/pkgIndex.tcl | 7 + gui_data/tkinterdnd2/tkdnd/win64/tkdnd.tcl | 469 ++ .../tkinterdnd2/tkdnd/win64/tkdnd2.9.2.lib | Bin 0 -> 2064 bytes .../tkinterdnd2/tkdnd/win64/tkdnd_compat.tcl | 160 + .../tkinterdnd2/tkdnd/win64/tkdnd_generic.tcl | 520 ++ .../tkinterdnd2/tkdnd/win64/tkdnd_macosx.tcl | 144 + .../tkinterdnd2/tkdnd/win64/tkdnd_unix.tcl | 810 ++ .../tkinterdnd2/tkdnd/win64/tkdnd_utils.tcl | 252 + .../tkinterdnd2/tkdnd/win64/tkdnd_windows.tcl | 167 + install_packages.sh | 5 + lib_v5/mdxnet.py | 136 + lib_v5/mixer.ckpt | Bin 0 -> 1208 bytes lib_v5/modules.py | 74 + lib_v5/pyrb.py | 92 + lib_v5/results.py | 48 + lib_v5/spec_utils.py | 1241 +++ lib_v5/tfc_tdf_v3.py | 253 + lib_v5/vr_network/__init__.py | 1 + lib_v5/vr_network/layers.py | 143 + lib_v5/vr_network/layers_new.py | 126 + lib_v5/vr_network/model_param_init.py | 32 + .../modelparams/1band_sr16000_hl512.json | 19 + .../modelparams/1band_sr32000_hl512.json | 19 + .../modelparams/1band_sr33075_hl384.json | 19 + .../modelparams/1band_sr44100_hl1024.json | 19 + .../modelparams/1band_sr44100_hl256.json | 19 + .../modelparams/1band_sr44100_hl512.json | 19 + .../modelparams/1band_sr44100_hl512_cut.json | 19 + .../1band_sr44100_hl512_nf1024.json | 19 + .../vr_network/modelparams/2band_32000.json | 30 + .../modelparams/2band_44100_lofi.json | 30 + .../vr_network/modelparams/2band_48000.json | 30 + .../vr_network/modelparams/3band_44100.json | 42 + .../modelparams/3band_44100_mid.json | 43 + .../modelparams/3band_44100_msb2.json | 43 + .../vr_network/modelparams/4band_44100.json | 54 + .../modelparams/4band_44100_mid.json | 55 + .../modelparams/4band_44100_msb.json | 55 + .../modelparams/4band_44100_msb2.json | 55 + .../modelparams/4band_44100_reverse.json | 55 + .../modelparams/4band_44100_sw.json | 55 + lib_v5/vr_network/modelparams/4band_v2.json | 54 + .../vr_network/modelparams/4band_v2_sn.json | 55 + lib_v5/vr_network/modelparams/4band_v3.json | 54 + .../vr_network/modelparams/4band_v3_sn.json | 55 + lib_v5/vr_network/modelparams/ensemble.json | 43 + lib_v5/vr_network/nets.py | 166 + lib_v5/vr_network/nets_new.py | 125 + .../model_data/model_name_mapper.json | 34 + .../v3_v4_repo/demucs_models.txt | 1 + .../model_data/mdx_c_configs/model1.yaml | 34 + .../model_data/mdx_c_configs/model2.yaml | 34 + .../model_data/mdx_c_configs/model3.yaml | 34 + .../model_data/mdx_c_configs/modelA.yaml | 39 + .../model_data/mdx_c_configs/modelB.yaml | 41 + .../mdx_c_configs/model_2_stem_061321.yaml | 36 + .../mdx_c_configs/model_2_stem_full_band.yaml | 36 + .../model_2_stem_full_band_2.yaml | 36 + .../model_2_stem_full_band_3.yaml | 39 + .../model_2_stem_full_band_4.yaml | 40 + .../model_2_stem_full_band_8k.yaml | 43 + .../model_data/mdx_c_configs/sndfx.yaml | 41 + .../MDX_Net_Models/model_data/model_data.json | 351 + .../model_data/model_name_mapper.json | 22 + models/VR_Models/UVR-DeNoise-Lite.pth | Bin 0 -> 17922277 bytes models/VR_Models/model_data/model_data.json | 137 + requirements.txt | 42 + separate.py | 1459 ++++ 239 files changed, 33313 insertions(+) create mode 100644 README.md create mode 100644 README.wehub.md create mode 100644 UVR.py create mode 100644 __version__.py create mode 100644 demucs/__init__.py create mode 100644 demucs/__main__.py create mode 100644 demucs/apply.py create mode 100644 demucs/demucs.py create mode 100644 demucs/filtering.py create mode 100644 demucs/hdemucs.py create mode 100644 demucs/htdemucs.py create mode 100644 demucs/model.py create mode 100644 demucs/model_v2.py create mode 100644 demucs/pretrained.py create mode 100644 demucs/repo.py create mode 100644 demucs/spec.py create mode 100644 demucs/states.py create mode 100644 demucs/tasnet.py create mode 100644 demucs/tasnet_v2.py create mode 100644 demucs/transformer.py create mode 100644 demucs/utils.py create mode 100644 gui_data/app_size_values.py create mode 100644 gui_data/change_log.txt create mode 100644 gui_data/complete_chime.wav create mode 100644 gui_data/constants.py create mode 100644 gui_data/error_handling.py create mode 100644 gui_data/fail_chime.wav create mode 100644 gui_data/fonts/Montserrat/Montserrat.ttf create mode 100644 gui_data/fonts/centurygothic/GOTHIC.ttf create mode 100644 gui_data/fonts/other/own_font_goes_here.txt create mode 100644 gui_data/img/File.png create mode 100644 gui_data/img/GUI-Icon.ico create mode 100644 gui_data/img/GUI-Icon.png create mode 100644 gui_data/img/UVR-banner.png create mode 100644 gui_data/img/UVR.icns create mode 100644 gui_data/img/UVR_v5.6.png create mode 100644 gui_data/img/clear.png create mode 100644 gui_data/img/copy.png create mode 100644 gui_data/img/credits.png create mode 100644 gui_data/img/donate.png create mode 100644 gui_data/img/down.png create mode 100644 gui_data/img/download.png create mode 100644 gui_data/img/help.png create mode 100644 gui_data/img/key.png create mode 100644 gui_data/img/left.png create mode 100644 gui_data/img/pause.png create mode 100644 gui_data/img/play.png create mode 100644 gui_data/img/right.png create mode 100644 gui_data/img/splash.bmp create mode 100644 gui_data/img/stop.png create mode 100644 gui_data/img/stop_player.png create mode 100644 gui_data/img/up.png create mode 100644 gui_data/model_manual_download.json create mode 100644 gui_data/old_data_check.py create mode 100644 gui_data/own_font.json create mode 100644 gui_data/saved_ensembles/saved_ensembles_go_here.txt create mode 100644 gui_data/saved_settings/saved_settings_go_here.txt create mode 100644 gui_data/sv_ttk/__init__.py create mode 100644 gui_data/sv_ttk/sun-valley.tcl create mode 100644 gui_data/sv_ttk/sun-valley_darwin.tcl create mode 100644 gui_data/sv_ttk/theme/dark.tcl create mode 100644 gui_data/sv_ttk/theme/dark/arrow-down.png create mode 100644 gui_data/sv_ttk/theme/dark/arrow-right.png create mode 100644 gui_data/sv_ttk/theme/dark/arrow-up.png create mode 100644 gui_data/sv_ttk/theme/dark/button-accent-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/button-accent-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/button-accent-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/button-accent-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/button-close-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/button-close-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/button-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/button-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/button-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/button-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/button-titlebar-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/button-titlebar-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/card.png create mode 100644 gui_data/sv_ttk/theme/dark/check-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/check-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/check-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/check-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/check-tri-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/check-tri-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/check-tri-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/check-tri-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/check-unsel-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/check-unsel-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/check-unsel-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/check-unsel-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/combo-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/empty.png create mode 100644 gui_data/sv_ttk/theme/dark/entry-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/entry-focus.png create mode 100644 gui_data/sv_ttk/theme/dark/entry-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/entry-invalid.png create mode 100644 gui_data/sv_ttk/theme/dark/entry-rest-combo.png create mode 100644 gui_data/sv_ttk/theme/dark/entry-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/notebook-border.png create mode 100644 gui_data/sv_ttk/theme/dark/notebook.png create mode 100644 gui_data/sv_ttk/theme/dark/progress-pbar-hor.png create mode 100644 gui_data/sv_ttk/theme/dark/progress-pbar-vert.png create mode 100644 gui_data/sv_ttk/theme/dark/progress-trough-hor.png create mode 100644 gui_data/sv_ttk/theme/dark/progress-trough-vert.png create mode 100644 gui_data/sv_ttk/theme/dark/radio-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/radio-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/radio-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/radio-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/radio-unsel-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/radio-unsel-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/radio-unsel-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/radio-unsel-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/scale-thumb-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/scale-thumb-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/scale-thumb-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/scale-thumb-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/scale-trough-hor.png create mode 100644 gui_data/sv_ttk/theme/dark/scale-trough-vert.png create mode 100644 gui_data/sv_ttk/theme/dark/scroll-down.png create mode 100644 gui_data/sv_ttk/theme/dark/scroll-hor-thumb.png create mode 100644 gui_data/sv_ttk/theme/dark/scroll-hor-trough.png create mode 100644 gui_data/sv_ttk/theme/dark/scroll-left.png create mode 100644 gui_data/sv_ttk/theme/dark/scroll-right.png create mode 100644 gui_data/sv_ttk/theme/dark/scroll-up.png create mode 100644 gui_data/sv_ttk/theme/dark/scroll-vert-thumb.png create mode 100644 gui_data/sv_ttk/theme/dark/scroll-vert-trough.png create mode 100644 gui_data/sv_ttk/theme/dark/separator.png create mode 100644 gui_data/sv_ttk/theme/dark/sizegrip.png create mode 100644 gui_data/sv_ttk/theme/dark/switch-off-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/switch-off-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/switch-off-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/switch-off-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/switch-on-disabled.png create mode 100644 gui_data/sv_ttk/theme/dark/switch-on-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/switch-on-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/switch-on-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/tab-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/tab-rest.png create mode 100644 gui_data/sv_ttk/theme/dark/tab-selected.png create mode 100644 gui_data/sv_ttk/theme/dark/treeheading-hover.png create mode 100644 gui_data/sv_ttk/theme/dark/treeheading-pressed.png create mode 100644 gui_data/sv_ttk/theme/dark/treeheading-rest.png create mode 100644 gui_data/tkinterdnd2/TkinterDnD.py create mode 100644 gui_data/tkinterdnd2/__init__.py create mode 100644 gui_data/tkinterdnd2/tkdnd/linux64/libtkdnd2.9.2.so create mode 100644 gui_data/tkinterdnd2/tkdnd/linux64/pkgIndex.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/linux64/tkdnd.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_compat.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_generic.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_macosx.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_unix.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_utils.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_windows.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx64/libtkdnd2.9.2.dylib create mode 100644 gui_data/tkinterdnd2/tkdnd/osx64/pkgIndex.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx64/tkdnd.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_compat.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_generic.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_macosx.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_unix.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_utils.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_windows.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx_arm/libtkdnd2.9.3.dylib create mode 100644 gui_data/tkinterdnd2/tkdnd/osx_arm/pkgIndex.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_compat.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_generic.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_macosx.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_unix.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_utils.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_windows.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/win64/libtkdnd2.9.2.dll create mode 100644 gui_data/tkinterdnd2/tkdnd/win64/pkgIndex.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/win64/tkdnd.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/win64/tkdnd2.9.2.lib create mode 100644 gui_data/tkinterdnd2/tkdnd/win64/tkdnd_compat.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/win64/tkdnd_generic.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/win64/tkdnd_macosx.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/win64/tkdnd_unix.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/win64/tkdnd_utils.tcl create mode 100644 gui_data/tkinterdnd2/tkdnd/win64/tkdnd_windows.tcl create mode 100644 install_packages.sh create mode 100644 lib_v5/mdxnet.py create mode 100644 lib_v5/mixer.ckpt create mode 100644 lib_v5/modules.py create mode 100644 lib_v5/pyrb.py create mode 100644 lib_v5/results.py create mode 100644 lib_v5/spec_utils.py create mode 100644 lib_v5/tfc_tdf_v3.py create mode 100644 lib_v5/vr_network/__init__.py create mode 100644 lib_v5/vr_network/layers.py create mode 100644 lib_v5/vr_network/layers_new.py create mode 100644 lib_v5/vr_network/model_param_init.py create mode 100644 lib_v5/vr_network/modelparams/1band_sr16000_hl512.json create mode 100644 lib_v5/vr_network/modelparams/1band_sr32000_hl512.json create mode 100644 lib_v5/vr_network/modelparams/1band_sr33075_hl384.json create mode 100644 lib_v5/vr_network/modelparams/1band_sr44100_hl1024.json create mode 100644 lib_v5/vr_network/modelparams/1band_sr44100_hl256.json create mode 100644 lib_v5/vr_network/modelparams/1band_sr44100_hl512.json create mode 100644 lib_v5/vr_network/modelparams/1band_sr44100_hl512_cut.json create mode 100644 lib_v5/vr_network/modelparams/1band_sr44100_hl512_nf1024.json create mode 100644 lib_v5/vr_network/modelparams/2band_32000.json create mode 100644 lib_v5/vr_network/modelparams/2band_44100_lofi.json create mode 100644 lib_v5/vr_network/modelparams/2band_48000.json create mode 100644 lib_v5/vr_network/modelparams/3band_44100.json create mode 100644 lib_v5/vr_network/modelparams/3band_44100_mid.json create mode 100644 lib_v5/vr_network/modelparams/3band_44100_msb2.json create mode 100644 lib_v5/vr_network/modelparams/4band_44100.json create mode 100644 lib_v5/vr_network/modelparams/4band_44100_mid.json create mode 100644 lib_v5/vr_network/modelparams/4band_44100_msb.json create mode 100644 lib_v5/vr_network/modelparams/4band_44100_msb2.json create mode 100644 lib_v5/vr_network/modelparams/4band_44100_reverse.json create mode 100644 lib_v5/vr_network/modelparams/4band_44100_sw.json create mode 100644 lib_v5/vr_network/modelparams/4band_v2.json create mode 100644 lib_v5/vr_network/modelparams/4band_v2_sn.json create mode 100644 lib_v5/vr_network/modelparams/4band_v3.json create mode 100644 lib_v5/vr_network/modelparams/4band_v3_sn.json create mode 100644 lib_v5/vr_network/modelparams/ensemble.json create mode 100644 lib_v5/vr_network/nets.py create mode 100644 lib_v5/vr_network/nets_new.py create mode 100644 models/Demucs_Models/model_data/model_name_mapper.json create mode 100644 models/Demucs_Models/v3_v4_repo/demucs_models.txt create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/model1.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/model2.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/model3.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/modelA.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/modelB.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_061321.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_2.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_3.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_4.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_8k.yaml create mode 100644 models/MDX_Net_Models/model_data/mdx_c_configs/sndfx.yaml create mode 100644 models/MDX_Net_Models/model_data/model_data.json create mode 100644 models/MDX_Net_Models/model_data/model_name_mapper.json create mode 100644 models/VR_Models/UVR-DeNoise-Lite.pth create mode 100644 models/VR_Models/model_data/model_data.json create mode 100644 requirements.txt create mode 100644 separate.py diff --git a/README.md b/README.md new file mode 100644 index 0000000..6b082d9 --- /dev/null +++ b/README.md @@ -0,0 +1,292 @@ +# Ultimate Vocal Remover GUI v5.6 + + +[![Release](https://img.shields.io/github/release/anjok07/ultimatevocalremovergui.svg)](https://github.com/anjok07/ultimatevocalremovergui/releases/latest) +[![Downloads](https://img.shields.io/github/downloads/anjok07/ultimatevocalremovergui/total.svg)](https://github.com/anjok07/ultimatevocalremovergui/releases) + +## About + +This application uses state-of-the-art source separation models to remove vocals from audio files. UVR's core developers trained all of the models provided in this package (except for the Demucs v3 and v4 4-stem models). + +- **Core Developers** + - [Anjok07](https://github.com/anjok07) + - [aufr33](https://github.com/aufr33) + +- **Support the Project** + - [Donate](https://www.buymeacoffee.com/uvr5) + +## Installation + +These bundles contain the UVR interface, Python, PyTorch, and other dependencies needed to run the application effectively. No prerequisites are required. + +### Windows Installation + +- Please Note: + - This installer is intended for those running Windows 10 or higher. + - Application functionality for systems running Windows 7 or lower is not guaranteed. + - Application functionality for Intel Pentium & Celeron CPUs systems is not guaranteed. + - You must install UVR to the main C:\ drive. Installing UVR to a secondary drive will cause instability. + +- Download the UVR installer for Windows via the link below: + - [Main Download Link](https://github.com/Anjok07/ultimatevocalremovergui/releases/download/v5.6/UVR_v5.6.0_setup.exe) + - [Main Download Link mirror](https://www.mediafire.com/file_premium/jiatpgp0ljou52p/UVR_v5.6.0_setup.exe/file) +- If you use an **AMD Radeon or Intel Arc graphics card**, you can try the DirectML version: + - [DirectML Version - Main Download Link](https://github.com/Anjok07/ultimatevocalremovergui/releases/download/v5.6/UVR_1_15_25_22_30_BETA_full.exe) +- Update Package instructions for those who have UVR already installed: + - If you already have UVR installed you can install this package over it or download it straight from the application or [click here for the patch](https://github.com/Anjok07/ultimatevocalremovergui/releases/download/v5.6/UVR_Patch_10_6_23_4_27.exe). + +
+ Windows Manual Installation + +### Manual Windows Installation + +- Download and extract the repository [here](https://github.com/Anjok07/ultimatevocalremovergui/archive/refs/heads/master.zip) +- Download and install Python [here](https://www.python.org/ftp/python/3.9.8/python-3.9.8-amd64.exe) + - Make sure to check "Add python.exe to PATH" during the install +- Run the following commands from the extracted repo directory: + +``` +python.exe -m pip install -r requirements.txt +``` + +If you have a compatible Nvidia GPU, run the following command: + +``` +python.exe -m pip install --upgrade torch --extra-index-url https://download.pytorch.org/whl/cu117 +``` + +If you do not have FFmpeg or Rubber Band installed and want to avoid going through the process of installing them the long way, follow the instructions below. + +**FFmpeg Installation** + +- Download the precompiled build [here](https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip) +- From the archive, extract the following file to the UVR application directory: + - ```ffmpeg-5.1.2-essentials_build/bin/ffmpeg.exe``` + +**Rubber Band Installation** + +In order to use the Time Stretch or Change Pitch tool, you'll need Rubber Band. + +- Download the precompiled build [here](https://breakfastquay.com/files/releases/rubberband-3.1.2-gpl-executable-windows.zip) +- From the archive, extract the following files to the UVR application directory: + - ```rubberband-3.1.2-gpl-executable-windows/rubberband.exe``` + - ```rubberband-3.1.2-gpl-executable-windows/sndfile.dll``` + +
+ +### MacOS Installation +- Please Note: + - The MacOS Sonoma mouse clicking issue has been fixed. + - MPS (GPU) acceleration for Mac M1 has been expanded to work with Demucs v4 and all MDX-Net models. + - This bundle is intended for those running macOS Big Sur and above. + - Application functionality for systems running macOS Catalina or lower is not guaranteed. + - Application functionality for older or budget Mac systems is not guaranteed. + - Once everything is installed, the application may take up to 5-10 minutes to start for the first time (depending on your Macbook). + +- Download the UVR dmg for MacOS via one of the links below: + - Mac M1 (arm64) users: + - [Main Download Link](https://github.com/Anjok07/ultimatevocalremovergui/releases/download/v5.6/Ultimate_Vocal_Remover_v5_6_MacOS_arm64.dmg) + - [Main Download Link mirror](https://www.mediafire.com/file_premium/u3rk54wsqadpy93/Ultimate_Vocal_Remover_v5_6_MacOS_arm64.dmg/file) + + - Mac Intel (x86_64) users: + - [Main Download Link](https://github.com/Anjok07/ultimatevocalremovergui/releases/download/v5.6/Ultimate_Vocal_Remover_v5_6_MacOS_x86_64.dmg) + - [Main Download Link mirror](https://www.mediafire.com/file_premium/2gf1werx5ly5ylz/Ultimate_Vocal_Remover_v5_6_MacOS_x86_64.dmg/file) + +
+ MacOS Users: Having Trouble Opening UVR? + +> Due to Apples strict application security, you may need to follow these steps to open UVR. +> +> First, run the following command via Terminal.app to allow applications to run from all sources (it's recommended that you re-enable this once UVR opens properly.) +> +> ```bash +> sudo spctl --master-disable +> ``` +> +> Second, run the following command to bypass Notarization: +> +> ```bash +> sudo xattr -rd com.apple.quarantine /Applications/Ultimate\ Vocal\ Remover.app +> ``` + +
+ +
+ Manual MacOS Installation + +### Manual MacOS Installation + +- Download and save this repository [here](https://github.com/Anjok07/ultimatevocalremovergui/archive/refs/heads/master.zip) +- Download and install Python 3.10 [here](https://www.python.org/ftp/python/3.10.9/python-3.10.9-macos11.pkg) +- From the saved directory run the following - + +``` +pip3 install -r requirements.txt +``` + +- If your Mac is running with an M1, please run the following command next. If not, skip this step. - + +``` +cp /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile_arm64.dylib /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib +``` + +**FFmpeg Installation** + +- Once everything is done installing, download the correct FFmpeg binary for your system [here](http://www.osxexperts.net) and place it into the main application directory. + +**Rubber Band Installation** + +In order to use the Time Stretch or Change Pitch tool, you'll need Rubber Band. + +- Download the precompiled build [here](https://breakfastquay.com/files/releases/rubberband-3.1.2-gpl-executable-windows.zip) +- From the archive, extract the following files to the UVR/lib_v5 application directory: + - ```rubberband-3.1.2-gpl-executable-macos/rubberband``` + +This process has been tested on a MacBook Pro 2021 (using M1) and a MacBook Air 2017 and is confirmed to be working on both. + +
+ + +### Linux Installation (Updated Instructions) + +
+ See Linux Installation Instructions + +
+ +**These installation instructions are for Debian & Arch-based Linux systems.** + +--- + +#### **Step 1: Download the Repository** +- Download and save this repository from [GitHub](https://github.com/Anjok07/ultimatevocalremovergui/archive/refs/heads/master.zip). +- Extract the downloaded file to a directory of your choice. + +--- + +#### **Step 2: Install Dependencies** +Use the following commands based on your system type: + +**For Debian-based systems (Ubuntu, Mint, etc.):** +```bash +sudo apt update && sudo apt upgrade +sudo apt-get install -y ffmpeg python3-pip python3-tk +``` + +**For Arch-based systems (EndeavourOS):** +```bash +sudo pacman -Syu +sudo pacman -S ffmpeg python-pip tk +``` + +--- + +#### **Step 3: Set Up a Virtual Environment (Recommended)** +Setting up a virtual environment (venv) ensures that the program's dependencies do not interfere with system-wide Python packages. + +1. **Navigate to the extracted repository directory:** + ```bash + cd /path/to/ultimatevocalremovergui + ``` + +2. **Create a virtual environment:** + ```bash + python3 -m venv venv + ``` + +3. **Activate the virtual environment:** + - For **Debian-based and Arch-based systems:** + ```bash + source venv/bin/activate + ``` + +4. **Install dependencies in the virtual environment:** + ```bash + pip install -r requirements.txt + ``` + +--- + +#### **Step 4: Run the Application** +While the virtual environment is activated, start the application: +```bash +python UVR.py +``` + +--- + +#### **Important Notes** +1. **Avoid Modifying System Files:** + Previous instructions suggested deleting the `/usr/lib/python3.11/EXTERNALLY-MANAGED` file, which is dangerous and can break Python package management. Do **NOT** delete this file. + +2. **Why Use Virtual Environments?** + Virtual environments isolate the program's dependencies, preventing conflicts with system Python packages. More information is available [here](https://stackoverflow.com/questions/75602063/pip-install-r-requirements-txt-is-failing-this-environment-is-externally-mana/75696359#75696359). + +3. **Known Issues and Discussions:** + - [Issue #1578](https://github.com/Anjok07/ultimatevocalremovergui/issues/1578) + - [Pull Request #1068](https://github.com/Anjok07/ultimatevocalremovergui/pull/1068) + +--- + +If you encounter issues, refer to the [GitHub Issues](https://github.com/Anjok07/ultimatevocalremovergui/issues) page for help. + +
+ +### Other Application Notes +- Nvidia GTX 1060 6GB is the minimum requirement for GPU conversions. +- Nvidia GPUs with at least 8GBs of V-RAM are recommended. +- AMD Radeon GPU supported is limited at this time. + - There is currently a working branch for AMD GPU users [here](https://github.com/Anjok07/ultimatevocalremovergui/tree/v5.6-amd-gpu) +- This application is only compatible with 64-bit platforms. +- This application relies on the Rubber Band library for the Time-Stretch and Pitch-Shift options. +- This application relies on FFmpeg to process non-wav audio files. +- The application will automatically remember your settings when closed. +- Conversion times will significantly depend on your hardware. +- These models are computationally intensive. + +### Performance: +- Model load times are faster. +- Importing/exporting audio files is faster. + +## Troubleshooting + +### Common Issues + +- If FFmpeg is not installed, the application will throw an error if the user attempts to convert a non-WAV file. +- Memory allocation errors can usually be resolved by lowering the "Segment" or "Window" sizes. + +#### MacOS Sonoma Left-click Bug +There's a known issue on MacOS Sonoma where left-clicks aren't registering correctly within the app. This was impacting all applications built with Tkinter on Sonoma and has since been resolved. Please download the latest version via the following link if you are still experiencing issues - [link](https://github.com/Anjok07/ultimatevocalremovergui/releases/tag/v5.6) + +This issue was being tracked [here](https://github.com/Anjok07/ultimatevocalremovergui/issues/840). + +### Issue Reporting + +Please be as detailed as possible when posting a new issue. + +If possible, click the "Settings Button" to the left of the "Start Processing" button and click the "Error Log" button for detailed error information that can be provided to us. + +## License + +The **Ultimate Vocal Remover GUI** code is [MIT-licensed](LICENSE). + +- **Please Note:** For all third-party application developers who wish to use our models, please honor the MIT license by providing credit to UVR and its developers. + +## Credits +- [ZFTurbo](https://github.com/ZFTurbo) - Created & trained the weights for the new MDX23C models. +- [DilanBoskan](https://github.com/DilanBoskan) - Your contributions at the start of this project were essential to the success of UVR. Thank you! +- [Bas Curtiz](https://www.youtube.com/user/bascurtiz) - Designed the official UVR logo, icon, banner, and splash screen. +- [tsurumeso](https://github.com/tsurumeso) - Developed the original VR Architecture code. +- [Kuielab & Woosung Choi](https://github.com/kuielab) - Developed the original MDX-Net AI code. +- [Adefossez & Demucs](https://github.com/facebookresearch/demucs) - Developed the original Demucs AI code. +- [KimberleyJSN](https://github.com/KimberleyJensen) - Advised and aided the implementation of the training scripts for MDX-Net and Demucs. Thank you! +- [Hv](https://github.com/NaJeongMo/Colab-for-MDX_B) - Helped implement chunks into the MDX-Net AI code. Thank you! + +## Contributing + +- For anyone interested in the ongoing development of **Ultimate Vocal Remover GUI**, please send us a pull request, and we will review it. +- This project is 100% open-source and free for anyone to use and modify as they wish. +- We only maintain the development and support for the **Ultimate Vocal Remover GUI** and the models provided. + +## References +- [1] Takahashi et al., "Multi-scale Multi-band DenseNets for Audio Source Separation", https://arxiv.org/pdf/1706.09588.pdf diff --git a/README.wehub.md b/README.wehub.md new file mode 100644 index 0000000..8b76197 --- /dev/null +++ b/README.wehub.md @@ -0,0 +1,7 @@ +# WeHub 来源说明 + +- 原始项目:`Anjok07/ultimatevocalremovergui` +- 原始仓库:https://github.com/Anjok07/ultimatevocalremovergui +- 导入方式:上游默认分支的最新快照 +- 原作者、版权和许可证信息以原始仓库及本仓库 LICENSE 为准 +- 本文件仅用于记录来源,不代表 WeHub 是原项目作者 diff --git a/UVR.py b/UVR.py new file mode 100644 index 0000000..65ef926 --- /dev/null +++ b/UVR.py @@ -0,0 +1,7265 @@ +# GUI modules +import time +#start_time = time.time() +import audioread +import gui_data.sv_ttk +import hashlib +import json +import librosa +import math +import natsort +import os +import pickle +import psutil +from pyglet import font as pyglet_font +import pyperclip +import base64 +import queue +import shutil +import subprocess +import soundfile as sf +import torch +import urllib.request +import webbrowser +import wget +import traceback +import matchering as match +import tkinter as tk +import tkinter.ttk as ttk +from tkinter.font import Font +from tkinter import filedialog +from tkinter import messagebox +from collections import Counter +from __version__ import VERSION, PATCH, PATCH_MAC, PATCH_LINUX +from cryptography.fernet import Fernet +from cryptography.hazmat.primitives import hashes +from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC +from datetime import datetime +from gui_data.constants import * +from gui_data.app_size_values import * +from gui_data.error_handling import error_text, error_dialouge +from gui_data.old_data_check import file_check, remove_unneeded_yamls, remove_temps +from gui_data.tkinterdnd2 import TkinterDnD, DND_FILES +from lib_v5.vr_network.model_param_init import ModelParameters +from kthread import KThread +from lib_v5 import spec_utils +from pathlib import Path +from separate import ( + SeperateDemucs, SeperateMDX, SeperateMDXC, SeperateVR, # Model-related + save_format, clear_gpu_cache, # Utility functions + cuda_available, mps_available, #directml_available, +) +from playsound import playsound +from typing import List +import onnx +import re +import sys +import yaml +from ml_collections import ConfigDict +from collections import Counter + +# if not is_macos: +# import torch_directml + +# is_choose_arch = cuda_available and directml_available +# is_opencl_only = not cuda_available and directml_available +# is_cuda_only = cuda_available and not directml_available + +is_gpu_available = cuda_available or mps_available# or directml_available + +# Change the current working directory to the directory +# this file sits in +if getattr(sys, 'frozen', False): + # If the application is run as a bundle, the PyInstaller bootloader + # extends the sys module by a flag frozen=True and sets the app + # path into variable _MEIPASS'. + BASE_PATH = sys._MEIPASS +else: + BASE_PATH = os.path.dirname(os.path.abspath(__file__)) + +os.chdir(BASE_PATH) # Change the current working directory to the base path + +SPLASH_DOC = os.path.join(BASE_PATH, 'tmp', 'splash.txt') + +if os.path.isfile(SPLASH_DOC): + os.remove(SPLASH_DOC) + +def get_execution_time(function, name): + start = time.time() + function() + end = time.time() + time_difference = end - start + print(f'{name} Execution Time: ', time_difference) + +PREVIOUS_PATCH_WIN = 'UVR_Patch_10_6_23_4_27' + +is_dnd_compatible = True +banner_placement = -2 + +if OPERATING_SYSTEM=="Darwin": + OPEN_FILE_func = lambda input_string:subprocess.Popen(["open", input_string]) + dnd_path_check = MAC_DND_CHECK + banner_placement = -8 + current_patch = PATCH_MAC + is_windows = False + is_macos = True + right_click_button = '' + application_extension = ".dmg" +elif OPERATING_SYSTEM=="Linux": + OPEN_FILE_func = lambda input_string:subprocess.Popen(["xdg-open", input_string]) + dnd_path_check = LINUX_DND_CHECK + current_patch = PATCH_LINUX + is_windows = False + is_macos = False + right_click_button = '' + application_extension = ".zip" +elif OPERATING_SYSTEM=="Windows": + OPEN_FILE_func = lambda input_string:os.startfile(input_string) + dnd_path_check = WINDOWS_DND_CHECK + current_patch = PATCH + is_windows = True + is_macos = False + right_click_button = '' + application_extension = ".exe" + +def right_click_release_linux(window, top_win=None): + if OPERATING_SYSTEM=="Linux": + root.bind('', lambda e:window.destroy()) + if top_win: + top_win.bind('', lambda e:window.destroy()) + +if not is_windows: + import ssl + ssl._create_default_https_context = ssl._create_unverified_context +else: + from ctypes import windll, wintypes + +def close_process(q:queue.Queue): + def close_splash(): + name = "UVR_Launcher.exe" + for process in psutil.process_iter(attrs=["name"]): + process_name = process.info.get("name") + + if process_name == name: + try: + process.terminate() + q.put(f"{name} terminated.") # Push message to queue + break + except psutil.NoSuchProcess as e: + q.put(f"Error terminating {name}: {e}") # Push error to queue + + try: + with open(SPLASH_DOC, 'w') as f: + f.write('1') + except: + print('No splash screen.') + + thread = KThread(target=close_splash) + thread.start() + +def save_data(data): + """ + Saves given data as a .pkl (pickle) file + + Paramters: + data(dict): + Dictionary containing all the necessary data to save + """ + # Open data file, create it if it does not exist + with open('data.pkl', 'wb') as data_file: + pickle.dump(data, data_file) + +def load_data() -> dict: + """ + Loads saved pkl file and returns the stored data + + Returns(dict): + Dictionary containing all the saved data + """ + try: + with open('data.pkl', 'rb') as data_file: # Open data file + data = pickle.load(data_file) + + return data + except (ValueError, FileNotFoundError): + # Data File is corrupted or not found so recreate it + + save_data(data=DEFAULT_DATA) + + return load_data() + +def load_model_hash_data(dictionary): + '''Get the model hash dictionary''' + with open(dictionary, 'r') as d: + return json.load(d) + +def font_checker(font_file): + chosen_font_name = None + chosen_font_file = None + + try: + if os.path.isfile(font_file): + with open(font_file, 'r') as d: + chosen_font = json.load(d) + + chosen_font_name = chosen_font["font_name"] + if chosen_font["font_file"]: + chosen_font_file = os.path.join(OTHER_FONT_PATH, chosen_font["font_file"]) + chosen_font_file = chosen_font_file if os.path.isfile(chosen_font_file) else None + except Exception as e: + print(e) + + chosen_font = chosen_font_name, chosen_font_file + + return chosen_font + +debugger = [] + +#--Constants-- +#Models +MODELS_DIR = os.path.join(BASE_PATH, 'models') +VR_MODELS_DIR = os.path.join(MODELS_DIR, 'VR_Models') +MDX_MODELS_DIR = os.path.join(MODELS_DIR, 'MDX_Net_Models') +DEMUCS_MODELS_DIR = os.path.join(MODELS_DIR, 'Demucs_Models') +DEMUCS_NEWER_REPO_DIR = os.path.join(DEMUCS_MODELS_DIR, 'v3_v4_repo') +MDX_MIXER_PATH = os.path.join(BASE_PATH, 'lib_v5', 'mixer.ckpt') + +#Cache & Parameters +VR_HASH_DIR = os.path.join(VR_MODELS_DIR, 'model_data') +VR_HASH_JSON = os.path.join(VR_MODELS_DIR, 'model_data', 'model_data.json') +MDX_HASH_DIR = os.path.join(MDX_MODELS_DIR, 'model_data') +MDX_HASH_JSON = os.path.join(MDX_HASH_DIR, 'model_data.json') +MDX_C_CONFIG_PATH = os.path.join(MDX_HASH_DIR, 'mdx_c_configs') + +DEMUCS_MODEL_NAME_SELECT = os.path.join(DEMUCS_MODELS_DIR, 'model_data', 'model_name_mapper.json') +MDX_MODEL_NAME_SELECT = os.path.join(MDX_MODELS_DIR, 'model_data', 'model_name_mapper.json') +ENSEMBLE_CACHE_DIR = os.path.join(BASE_PATH, 'gui_data', 'saved_ensembles') +SETTINGS_CACHE_DIR = os.path.join(BASE_PATH, 'gui_data', 'saved_settings') +VR_PARAM_DIR = os.path.join(BASE_PATH, 'lib_v5', 'vr_network', 'modelparams') +SAMPLE_CLIP_PATH = os.path.join(BASE_PATH, 'temp_sample_clips') +ENSEMBLE_TEMP_PATH = os.path.join(BASE_PATH, 'ensemble_temps') +DOWNLOAD_MODEL_CACHE = os.path.join(BASE_PATH, 'gui_data', 'model_manual_download.json') + +#CR Text +CR_TEXT = os.path.join(BASE_PATH, 'gui_data', 'cr_text.txt') + +#Style +ICON_IMG_PATH = os.path.join(BASE_PATH, 'gui_data', 'img', 'GUI-Icon.ico') +if not is_windows: + MAIN_ICON_IMG_PATH = os.path.join(BASE_PATH, 'gui_data', 'img', 'GUI-Icon.png') + +OWN_FONT_PATH = os.path.join(BASE_PATH, 'gui_data', 'own_font.json') + +MAIN_FONT_NAME = 'Montserrat' +SEC_FONT_NAME = 'Century Gothic' +FONT_PATH = os.path.join(BASE_PATH, 'gui_data', 'fonts', 'Montserrat', 'Montserrat.ttf')# +SEC_FONT_PATH = os.path.join(BASE_PATH, 'gui_data', 'fonts', 'centurygothic', 'GOTHIC.ttf')# +OTHER_FONT_PATH = os.path.join(BASE_PATH, 'gui_data', 'fonts', 'other')# + +FONT_MAPPER = {MAIN_FONT_NAME:FONT_PATH, + SEC_FONT_NAME:SEC_FONT_PATH} + +#Other +COMPLETE_CHIME = os.path.join(BASE_PATH, 'gui_data', 'complete_chime.wav') +FAIL_CHIME = os.path.join(BASE_PATH, 'gui_data', 'fail_chime.wav') +CHANGE_LOG = os.path.join(BASE_PATH, 'gui_data', 'change_log.txt') + +DENOISER_MODEL_PATH = os.path.join(VR_MODELS_DIR, 'UVR-DeNoise-Lite.pth') +DEVERBER_MODEL_PATH = os.path.join(VR_MODELS_DIR, 'UVR-DeEcho-DeReverb.pth') + +MODEL_DATA_URLS = [VR_MODEL_DATA_LINK, MDX_MODEL_DATA_LINK, MDX_MODEL_NAME_DATA_LINK, DEMUCS_MODEL_NAME_DATA_LINK] +MODEL_DATA_FILES = [VR_HASH_JSON, MDX_HASH_JSON, MDX_MODEL_NAME_SELECT, DEMUCS_MODEL_NAME_SELECT] + +file_check(os.path.join(MODELS_DIR, 'Main_Models'), VR_MODELS_DIR) +file_check(os.path.join(DEMUCS_MODELS_DIR, 'v3_repo'), DEMUCS_NEWER_REPO_DIR) +remove_unneeded_yamls(DEMUCS_MODELS_DIR) + +remove_temps(ENSEMBLE_TEMP_PATH) +remove_temps(SAMPLE_CLIP_PATH) +remove_temps(os.path.join(BASE_PATH, 'img')) + +if not os.path.isdir(ENSEMBLE_TEMP_PATH): + os.mkdir(ENSEMBLE_TEMP_PATH) + +if not os.path.isdir(SAMPLE_CLIP_PATH): + os.mkdir(SAMPLE_CLIP_PATH) + +model_hash_table = {} +data = load_data() + +def drop(event, accept_mode: str = 'files'): + path = event.data + if accept_mode == 'folder': + path = path.replace('{', '').replace('}', '') + if not os.path.isdir(path): + messagebox.showerror(parent=root, + title=INVALID_FOLDER_ERROR_TEXT[0], + message=INVALID_FOLDER_ERROR_TEXT[1]) + return + root.export_path_var.set(path) + elif accept_mode in ['files', FILE_1, FILE_2, FILE_1_LB, FILE_2_LB]: + path = path.replace("{", "").replace("}", "") + for dnd_file in dnd_path_check: + path = path.replace(f" {dnd_file}", f";{dnd_file}") + path = path.split(';') + path[-1] = path[-1].replace(';', '') + + if accept_mode == 'files': + root.inputPaths = tuple(path) + root.process_input_selections() + root.update_inputPaths() + elif accept_mode in [FILE_1, FILE_2]: + if len(path) == 2: + root.select_audiofile(path[0]) + root.select_audiofile(path[1], is_primary=False) + root.DualBatch_inputPaths = [] + root.check_dual_paths() + elif len(path) == 1: + if accept_mode == FILE_1: + root.select_audiofile(path[0]) + else: + root.select_audiofile(path[0], is_primary=False) + + elif accept_mode in [FILE_1_LB, FILE_2_LB]: + return path + else: + return + +class ModelData(): + def __init__(self, model_name: str, + selected_process_method=ENSEMBLE_MODE, + is_secondary_model=False, + primary_model_primary_stem=None, + is_primary_model_primary_stem_only=False, + is_primary_model_secondary_stem_only=False, + is_pre_proc_model=False, + is_dry_check=False, + is_change_def=False, + is_get_hash_dir_only=False, + is_vocal_split_model=False): + + device_set = root.device_set_var.get() + self.DENOISER_MODEL = DENOISER_MODEL_PATH + self.DEVERBER_MODEL = DEVERBER_MODEL_PATH + self.is_deverb_vocals = root.is_deverb_vocals_var.get() if os.path.isfile(DEVERBER_MODEL_PATH) else False + self.deverb_vocal_opt = DEVERB_MAPPER[root.deverb_vocal_opt_var.get()] + self.is_denoise_model = True if root.denoise_option_var.get() == DENOISE_M and os.path.isfile(DENOISER_MODEL_PATH) else False + self.is_gpu_conversion = 0 if root.is_gpu_conversion_var.get() else -1 + self.is_normalization = root.is_normalization_var.get()# + self.is_use_opencl = False#True if is_opencl_only else root.is_use_opencl_var.get() + self.is_primary_stem_only = root.is_primary_stem_only_var.get() + self.is_secondary_stem_only = root.is_secondary_stem_only_var.get() + self.is_denoise = True if not root.denoise_option_var.get() == DENOISE_NONE else False + self.is_mdx_c_seg_def = root.is_mdx_c_seg_def_var.get()# + self.mdx_batch_size = 1 if root.mdx_batch_size_var.get() == DEF_OPT else int(root.mdx_batch_size_var.get()) + self.mdxnet_stem_select = root.mdxnet_stems_var.get() + self.overlap = float(root.overlap_var.get()) if not root.overlap_var.get() == DEFAULT else 0.25 + self.overlap_mdx = float(root.overlap_mdx_var.get()) if not root.overlap_mdx_var.get() == DEFAULT else root.overlap_mdx_var.get() + self.overlap_mdx23 = int(float(root.overlap_mdx23_var.get())) + self.semitone_shift = float(root.semitone_shift_var.get()) + self.is_pitch_change = False if self.semitone_shift == 0 else True + self.is_match_frequency_pitch = root.is_match_frequency_pitch_var.get() + self.is_mdx_ckpt = False + self.is_mdx_c = False + self.is_mdx_combine_stems = root.is_mdx23_combine_stems_var.get()# + self.mdx_c_configs = None + self.mdx_model_stems = [] + self.mdx_dim_f_set = None + self.mdx_dim_t_set = None + self.mdx_stem_count = 1 + self.compensate = None + self.mdx_n_fft_scale_set = None + self.wav_type_set = root.wav_type_set# + self.device_set = device_set.split(':')[-1].strip() if ':' in device_set else device_set + self.mp3_bit_set = root.mp3_bit_set_var.get() + self.save_format = root.save_format_var.get() + self.is_invert_spec = root.is_invert_spec_var.get()# + self.is_mixer_mode = False# + self.demucs_stems = root.demucs_stems_var.get() + self.is_demucs_combine_stems = root.is_demucs_combine_stems_var.get() + self.demucs_source_list = [] + self.demucs_stem_count = 0 + self.mixer_path = MDX_MIXER_PATH + self.model_name = model_name + self.process_method = selected_process_method + self.model_status = False if self.model_name == CHOOSE_MODEL or self.model_name == NO_MODEL else True + self.primary_stem = None + self.secondary_stem = None + self.primary_stem_native = None + self.is_ensemble_mode = False + self.ensemble_primary_stem = None + self.ensemble_secondary_stem = None + self.primary_model_primary_stem = primary_model_primary_stem + self.is_secondary_model = True if is_vocal_split_model else is_secondary_model + self.secondary_model = None + self.secondary_model_scale = None + self.demucs_4_stem_added_count = 0 + self.is_demucs_4_stem_secondaries = False + self.is_4_stem_ensemble = False + self.pre_proc_model = None + self.pre_proc_model_activated = False + self.is_pre_proc_model = is_pre_proc_model + self.is_dry_check = is_dry_check + self.model_samplerate = 44100 + self.model_capacity = 32, 128 + self.is_vr_51_model = False + self.is_demucs_pre_proc_model_inst_mix = False + self.manual_download_Button = None + self.secondary_model_4_stem = [] + self.secondary_model_4_stem_scale = [] + self.secondary_model_4_stem_names = [] + self.secondary_model_4_stem_model_names_list = [] + self.all_models = [] + self.secondary_model_other = None + self.secondary_model_scale_other = None + self.secondary_model_bass = None + self.secondary_model_scale_bass = None + self.secondary_model_drums = None + self.secondary_model_scale_drums = None + self.is_multi_stem_ensemble = False + self.is_karaoke = False + self.is_bv_model = False + self.bv_model_rebalance = 0 + self.is_sec_bv_rebalance = False + self.is_change_def = is_change_def + self.model_hash_dir = None + self.is_get_hash_dir_only = is_get_hash_dir_only + self.is_secondary_model_activated = False + self.vocal_split_model = None + self.is_vocal_split_model = is_vocal_split_model + self.is_vocal_split_model_activated = False + self.is_save_inst_vocal_splitter = root.is_save_inst_set_vocal_splitter_var.get() + self.is_inst_only_voc_splitter = root.check_only_selection_stem(INST_STEM_ONLY) + self.is_save_vocal_only = root.check_only_selection_stem(IS_SAVE_VOC_ONLY) + + if selected_process_method == ENSEMBLE_MODE: + self.process_method, _, self.model_name = model_name.partition(ENSEMBLE_PARTITION) + self.model_and_process_tag = model_name + self.ensemble_primary_stem, self.ensemble_secondary_stem = root.return_ensemble_stems() + + is_not_secondary_or_pre_proc = not is_secondary_model and not is_pre_proc_model + self.is_ensemble_mode = is_not_secondary_or_pre_proc + + if root.ensemble_main_stem_var.get() == FOUR_STEM_ENSEMBLE: + self.is_4_stem_ensemble = self.is_ensemble_mode + elif root.ensemble_main_stem_var.get() == MULTI_STEM_ENSEMBLE and root.chosen_process_method_var.get() == ENSEMBLE_MODE: + self.is_multi_stem_ensemble = True + + is_not_vocal_stem = self.ensemble_primary_stem != VOCAL_STEM + self.pre_proc_model_activated = root.is_demucs_pre_proc_model_activate_var.get() if is_not_vocal_stem else False + + if self.process_method == VR_ARCH_TYPE: + self.is_secondary_model_activated = root.vr_is_secondary_model_activate_var.get() if not is_secondary_model else False + self.aggression_setting = float(int(root.aggression_setting_var.get())/100) + self.is_tta = root.is_tta_var.get() + self.is_post_process = root.is_post_process_var.get() + self.window_size = int(root.window_size_var.get()) + self.batch_size = 1 if root.batch_size_var.get() == DEF_OPT else int(root.batch_size_var.get()) + self.crop_size = int(root.crop_size_var.get()) + self.is_high_end_process = 'mirroring' if root.is_high_end_process_var.get() else 'None' + self.post_process_threshold = float(root.post_process_threshold_var.get()) + self.model_capacity = 32, 128 + self.model_path = os.path.join(VR_MODELS_DIR, f"{self.model_name}.pth") + self.get_model_hash() + if self.model_hash: + self.model_hash_dir = os.path.join(VR_HASH_DIR, f"{self.model_hash}.json") + if is_change_def: + self.model_data = self.change_model_data() + else: + self.model_data = self.get_model_data(VR_HASH_DIR, root.vr_hash_MAPPER) if not self.model_hash == WOOD_INST_MODEL_HASH else WOOD_INST_PARAMS + if self.model_data: + vr_model_param = os.path.join(VR_PARAM_DIR, "{}.json".format(self.model_data["vr_model_param"])) + self.primary_stem = self.model_data["primary_stem"] + self.secondary_stem = secondary_stem(self.primary_stem) + self.vr_model_param = ModelParameters(vr_model_param) + self.model_samplerate = self.vr_model_param.param['sr'] + self.primary_stem_native = self.primary_stem + if "nout" in self.model_data.keys() and "nout_lstm" in self.model_data.keys(): + self.model_capacity = self.model_data["nout"], self.model_data["nout_lstm"] + self.is_vr_51_model = True + self.check_if_karaokee_model() + + else: + self.model_status = False + + if self.process_method == MDX_ARCH_TYPE: + self.is_secondary_model_activated = root.mdx_is_secondary_model_activate_var.get() if not is_secondary_model else False + self.margin = int(root.margin_var.get()) + self.chunks = 0 + self.mdx_segment_size = int(root.mdx_segment_size_var.get()) + self.get_mdx_model_path() + self.get_model_hash() + if self.model_hash: + self.model_hash_dir = os.path.join(MDX_HASH_DIR, f"{self.model_hash}.json") + if is_change_def: + self.model_data = self.change_model_data() + else: + self.model_data = self.get_model_data(MDX_HASH_DIR, root.mdx_hash_MAPPER) + if self.model_data: + + if "config_yaml" in self.model_data: + self.is_mdx_c = True + config_path = os.path.join(MDX_C_CONFIG_PATH, self.model_data["config_yaml"]) + if os.path.isfile(config_path): + with open(config_path) as f: + config = ConfigDict(yaml.load(f, Loader=yaml.FullLoader)) + + self.mdx_c_configs = config + + if self.mdx_c_configs.training.target_instrument: + # Use target_instrument as the primary stem and set 4-stem ensemble to False + target = self.mdx_c_configs.training.target_instrument + self.mdx_model_stems = [target] + self.primary_stem = target + else: + # If no specific target_instrument, use all instruments in the training config + self.mdx_model_stems = self.mdx_c_configs.training.instruments + self.mdx_stem_count = len(self.mdx_model_stems) + + # Set primary stem based on stem count + if self.mdx_stem_count == 2: + self.primary_stem = self.mdx_model_stems[0] + else: + self.primary_stem = self.mdxnet_stem_select + + # Update mdxnet_stem_select based on ensemble mode + if self.is_ensemble_mode: + self.mdxnet_stem_select = self.ensemble_primary_stem + else: + self.model_status = False + else: + self.compensate = self.model_data["compensate"] if root.compensate_var.get() == AUTO_SELECT else float(root.compensate_var.get()) + self.mdx_dim_f_set = self.model_data["mdx_dim_f_set"] + self.mdx_dim_t_set = self.model_data["mdx_dim_t_set"] + self.mdx_n_fft_scale_set = self.model_data["mdx_n_fft_scale_set"] + self.primary_stem = self.model_data["primary_stem"] + self.primary_stem_native = self.model_data["primary_stem"] + self.check_if_karaokee_model() + + self.secondary_stem = secondary_stem(self.primary_stem) + else: + self.model_status = False + + if self.process_method == DEMUCS_ARCH_TYPE: + self.is_secondary_model_activated = root.demucs_is_secondary_model_activate_var.get() if not is_secondary_model else False + if not self.is_ensemble_mode: + self.pre_proc_model_activated = root.is_demucs_pre_proc_model_activate_var.get() if not root.demucs_stems_var.get() in [VOCAL_STEM, INST_STEM] else False + self.margin_demucs = int(root.margin_demucs_var.get()) + self.chunks_demucs = 0 + self.shifts = int(root.shifts_var.get()) + self.is_split_mode = root.is_split_mode_var.get() + self.segment = root.segment_var.get() + self.is_chunk_demucs = root.is_chunk_demucs_var.get() + self.is_primary_stem_only = root.is_primary_stem_only_var.get() if self.is_ensemble_mode else root.is_primary_stem_only_Demucs_var.get() + self.is_secondary_stem_only = root.is_secondary_stem_only_var.get() if self.is_ensemble_mode else root.is_secondary_stem_only_Demucs_var.get() + self.get_demucs_model_data() + self.get_demucs_model_path() + + if self.model_status: + self.model_basename = os.path.splitext(os.path.basename(self.model_path))[0] + else: + self.model_basename = None + + self.pre_proc_model_activated = self.pre_proc_model_activated if not self.is_secondary_model else False + + self.is_primary_model_primary_stem_only = is_primary_model_primary_stem_only + self.is_primary_model_secondary_stem_only = is_primary_model_secondary_stem_only + + is_secondary_activated_and_status = self.is_secondary_model_activated and self.model_status + is_demucs = self.process_method == DEMUCS_ARCH_TYPE + is_all_stems = root.demucs_stems_var.get() == ALL_STEMS + is_valid_ensemble = not self.is_ensemble_mode and is_all_stems and is_demucs + is_multi_stem_ensemble_demucs = self.is_multi_stem_ensemble and is_demucs + + if is_secondary_activated_and_status: + if is_valid_ensemble or self.is_4_stem_ensemble or is_multi_stem_ensemble_demucs: + for key in DEMUCS_4_SOURCE_LIST: + self.secondary_model_data(key) + self.secondary_model_4_stem.append(self.secondary_model) + self.secondary_model_4_stem_scale.append(self.secondary_model_scale) + self.secondary_model_4_stem_names.append(key) + + self.demucs_4_stem_added_count = sum(i is not None for i in self.secondary_model_4_stem) + self.is_secondary_model_activated = any(i is not None for i in self.secondary_model_4_stem) + self.demucs_4_stem_added_count -= 1 if self.is_secondary_model_activated else 0 + + if self.is_secondary_model_activated: + self.secondary_model_4_stem_model_names_list = [i.model_basename if i is not None else None for i in self.secondary_model_4_stem] + self.is_demucs_4_stem_secondaries = True + else: + primary_stem = self.ensemble_primary_stem if self.is_ensemble_mode and is_demucs else self.primary_stem + self.secondary_model_data(primary_stem) + + if self.process_method == DEMUCS_ARCH_TYPE and not is_secondary_model: + if self.demucs_stem_count >= 3 and self.pre_proc_model_activated: + self.pre_proc_model = root.process_determine_demucs_pre_proc_model(self.primary_stem) + self.pre_proc_model_activated = True if self.pre_proc_model else False + self.is_demucs_pre_proc_model_inst_mix = root.is_demucs_pre_proc_model_inst_mix_var.get() if self.pre_proc_model else False + + if self.is_vocal_split_model and self.model_status: + self.is_secondary_model_activated = False + if self.is_bv_model: + primary = BV_VOCAL_STEM if self.primary_stem_native == VOCAL_STEM else LEAD_VOCAL_STEM + else: + primary = LEAD_VOCAL_STEM if self.primary_stem_native == VOCAL_STEM else BV_VOCAL_STEM + self.primary_stem, self.secondary_stem = primary, secondary_stem(primary) + + self.vocal_splitter_model_data() + + def vocal_splitter_model_data(self): + if not self.is_secondary_model and self.model_status: + self.vocal_split_model = root.process_determine_vocal_split_model() + self.is_vocal_split_model_activated = True if self.vocal_split_model else False + + if self.vocal_split_model: + if self.vocal_split_model.bv_model_rebalance: + self.is_sec_bv_rebalance = True + + def secondary_model_data(self, primary_stem): + secondary_model_data = root.process_determine_secondary_model(self.process_method, primary_stem, self.is_primary_stem_only, self.is_secondary_stem_only) + self.secondary_model = secondary_model_data[0] + self.secondary_model_scale = secondary_model_data[1] + self.is_secondary_model_activated = False if not self.secondary_model else True + if self.secondary_model: + self.is_secondary_model_activated = False if self.secondary_model.model_basename == self.model_basename else True + + #print("self.is_secondary_model_activated: ", self.is_secondary_model_activated) + + def check_if_karaokee_model(self): + if IS_KARAOKEE in self.model_data.keys(): + self.is_karaoke = self.model_data[IS_KARAOKEE] + if IS_BV_MODEL in self.model_data.keys(): + self.is_bv_model = self.model_data[IS_BV_MODEL]# + if IS_BV_MODEL_REBAL in self.model_data.keys() and self.is_bv_model: + self.bv_model_rebalance = self.model_data[IS_BV_MODEL_REBAL]# + + def get_mdx_model_path(self): + + if self.model_name.endswith(CKPT): + self.is_mdx_ckpt = True + + ext = '' if self.is_mdx_ckpt else ONNX + + for file_name, chosen_mdx_model in root.mdx_name_select_MAPPER.items(): + if self.model_name in chosen_mdx_model: + if file_name.endswith(CKPT): + ext = '' + self.model_path = os.path.join(MDX_MODELS_DIR, f"{file_name}{ext}") + break + else: + self.model_path = os.path.join(MDX_MODELS_DIR, f"{self.model_name}{ext}") + + self.mixer_path = os.path.join(MDX_MODELS_DIR, f"mixer_val.ckpt") + + def get_demucs_model_path(self): + + demucs_newer = self.demucs_version in {DEMUCS_V3, DEMUCS_V4} + demucs_model_dir = DEMUCS_NEWER_REPO_DIR if demucs_newer else DEMUCS_MODELS_DIR + + for file_name, chosen_model in root.demucs_name_select_MAPPER.items(): + if self.model_name == chosen_model: + self.model_path = os.path.join(demucs_model_dir, file_name) + break + else: + self.model_path = os.path.join(DEMUCS_NEWER_REPO_DIR, f'{self.model_name}.yaml') + + def get_demucs_model_data(self): + + self.demucs_version = DEMUCS_V4 + + for key, value in DEMUCS_VERSION_MAPPER.items(): + if value in self.model_name: + self.demucs_version = key + + if DEMUCS_UVR_MODEL in self.model_name: + self.demucs_source_list, self.demucs_source_map, self.demucs_stem_count = DEMUCS_2_SOURCE, DEMUCS_2_SOURCE_MAPPER, 2 + else: + self.demucs_source_list, self.demucs_source_map, self.demucs_stem_count = DEMUCS_4_SOURCE, DEMUCS_4_SOURCE_MAPPER, 4 + + if not self.is_ensemble_mode: + self.primary_stem = PRIMARY_STEM if self.demucs_stems == ALL_STEMS else self.demucs_stems + self.secondary_stem = secondary_stem(self.primary_stem) + + def get_model_data(self, model_hash_dir, hash_mapper:dict): + model_settings_json = os.path.join(model_hash_dir, f"{self.model_hash}.json") + + if os.path.isfile(model_settings_json): + with open(model_settings_json, 'r') as json_file: + return json.load(json_file) + else: + for hash, settings in hash_mapper.items(): + if self.model_hash in hash: + return settings + + return self.get_model_data_from_popup() + + def change_model_data(self): + if self.is_get_hash_dir_only: + return None + else: + return self.get_model_data_from_popup() + + def get_model_data_from_popup(self): + if self.is_dry_check: + return None + + if not self.is_change_def: + confirm = messagebox.askyesno( + title=UNRECOGNIZED_MODEL[0], + message=f'"{self.model_name}"{UNRECOGNIZED_MODEL[1]}', + parent=root + ) + if not confirm: + return None + + if self.process_method == VR_ARCH_TYPE: + root.pop_up_vr_param(self.model_hash) + return root.vr_model_params + elif self.process_method == MDX_ARCH_TYPE: + root.pop_up_mdx_model(self.model_hash, self.model_path) + return root.mdx_model_params + + def get_model_hash(self): + self.model_hash = None + + if not os.path.isfile(self.model_path): + self.model_status = False + self.model_hash is None + else: + if model_hash_table: + for (key, value) in model_hash_table.items(): + if self.model_path == key: + self.model_hash = value + break + + if not self.model_hash: + try: + with open(self.model_path, 'rb') as f: + f.seek(- 10000 * 1024, 2) + self.model_hash = hashlib.md5(f.read()).hexdigest() + except: + self.model_hash = hashlib.md5(open(self.model_path,'rb').read()).hexdigest() + + table_entry = {self.model_path: self.model_hash} + model_hash_table.update(table_entry) + + #print(self.model_name," - ", self.model_hash) + +class Ensembler(): + def __init__(self, is_manual_ensemble=False): + self.is_save_all_outputs_ensemble = root.is_save_all_outputs_ensemble_var.get() + chosen_ensemble_name = '{}'.format(root.chosen_ensemble_var.get().replace(" ", "_")) if not root.chosen_ensemble_var.get() == CHOOSE_ENSEMBLE_OPTION else 'Ensembled' + ensemble_algorithm = root.ensemble_type_var.get().partition("/") + ensemble_main_stem_pair = root.ensemble_main_stem_var.get().partition("/") + time_stamp = round(time.time()) + self.audio_tool = MANUAL_ENSEMBLE + self.main_export_path = Path(root.export_path_var.get()) + self.chosen_ensemble = f"_{chosen_ensemble_name}" if root.is_append_ensemble_name_var.get() else '' + ensemble_folder_name = self.main_export_path if self.is_save_all_outputs_ensemble else ENSEMBLE_TEMP_PATH + self.ensemble_folder_name = os.path.join(ensemble_folder_name, '{}_Outputs_{}'.format(chosen_ensemble_name, time_stamp)) + self.is_testing_audio = f"{time_stamp}_" if root.is_testing_audio_var.get() else '' + self.primary_algorithm = ensemble_algorithm[0] + self.secondary_algorithm = ensemble_algorithm[2] + self.ensemble_primary_stem = ensemble_main_stem_pair[0] + self.ensemble_secondary_stem = ensemble_main_stem_pair[2] + self.is_normalization = root.is_normalization_var.get() + self.is_wav_ensemble = root.is_wav_ensemble_var.get() + self.wav_type_set = root.wav_type_set + self.mp3_bit_set = root.mp3_bit_set_var.get() + self.save_format = root.save_format_var.get() + if not is_manual_ensemble: + os.mkdir(self.ensemble_folder_name) + + def ensemble_outputs(self, audio_file_base, export_path, stem, is_4_stem=False, is_inst_mix=False): + """Processes the given outputs and ensembles them with the chosen algorithm""" + + if is_4_stem: + algorithm = root.ensemble_type_var.get() + stem_tag = stem + else: + if is_inst_mix: + algorithm = self.secondary_algorithm + stem_tag = f"{self.ensemble_secondary_stem} {INST_STEM}" + else: + algorithm = self.primary_algorithm if stem == PRIMARY_STEM else self.secondary_algorithm + stem_tag = self.ensemble_primary_stem if stem == PRIMARY_STEM else self.ensemble_secondary_stem + + stem_outputs = self.get_files_to_ensemble(folder=export_path, prefix=audio_file_base, suffix=f"_({stem_tag}).wav") + audio_file_output = f"{self.is_testing_audio}{audio_file_base}{self.chosen_ensemble}_({stem_tag})" + stem_save_path = os.path.join('{}'.format(self.main_export_path),'{}.wav'.format(audio_file_output)) + + #print("get_files_to_ensemble: ", stem_outputs) + + if len(stem_outputs) > 1: + spec_utils.ensemble_inputs(stem_outputs, algorithm, self.is_normalization, self.wav_type_set, stem_save_path, is_wave=self.is_wav_ensemble) + save_format(stem_save_path, self.save_format, self.mp3_bit_set) + + if self.is_save_all_outputs_ensemble: + for i in stem_outputs: + save_format(i, self.save_format, self.mp3_bit_set) + else: + for i in stem_outputs: + try: + os.remove(i) + except Exception as e: + print(e) + + def ensemble_manual(self, audio_inputs, audio_file_base, is_bulk=False): + """Processes the given outputs and ensembles them with the chosen algorithm""" + + is_mv_sep = True + + if is_bulk: + number_list = list(set([os.path.basename(i).split("_")[0] for i in audio_inputs])) + for n in number_list: + current_list = [i for i in audio_inputs if os.path.basename(i).startswith(n)] + audio_file_base = os.path.basename(current_list[0]).split('.wav')[0] + stem_testing = "instrum" if "Instrumental" in audio_file_base else "vocals" + if is_mv_sep: + audio_file_base = audio_file_base.split("_") + audio_file_base = f"{audio_file_base[1]}_{audio_file_base[2]}_{stem_testing}" + self.ensemble_manual_process(current_list, audio_file_base, is_bulk) + else: + self.ensemble_manual_process(audio_inputs, audio_file_base, is_bulk) + + def ensemble_manual_process(self, audio_inputs, audio_file_base, is_bulk): + + algorithm = root.choose_algorithm_var.get() + algorithm_text = "" if is_bulk else f"_({root.choose_algorithm_var.get()})" + stem_save_path = os.path.join('{}'.format(self.main_export_path),'{}{}{}.wav'.format(self.is_testing_audio, audio_file_base, algorithm_text)) + spec_utils.ensemble_inputs(audio_inputs, algorithm, self.is_normalization, self.wav_type_set, stem_save_path, is_wave=self.is_wav_ensemble) + save_format(stem_save_path, self.save_format, self.mp3_bit_set) + + def get_files_to_ensemble(self, folder="", prefix="", suffix=""): + """Grab all the files to be ensembled""" + + return [os.path.join(folder, i) for i in os.listdir(folder) if i.startswith(prefix) and i.endswith(suffix)] + + def combine_audio(self, audio_inputs, audio_file_base): + save_format_ = lambda save_path:save_format(save_path, root.save_format_var.get(), root.mp3_bit_set_var.get()) + spec_utils.combine_audio(audio_inputs, + os.path.join(self.main_export_path, f"{self.is_testing_audio}{audio_file_base}"), + self.wav_type_set, + save_format=save_format_) + +class AudioTools(): + def __init__(self, audio_tool): + time_stamp = round(time.time()) + self.audio_tool = audio_tool + self.main_export_path = Path(root.export_path_var.get()) + self.wav_type_set = root.wav_type_set + self.is_normalization = root.is_normalization_var.get() + self.is_testing_audio = f"{time_stamp}_" if root.is_testing_audio_var.get() else '' + self.save_format = lambda save_path:save_format(save_path, root.save_format_var.get(), root.mp3_bit_set_var.get()) + self.align_window = TIME_WINDOW_MAPPER[root.time_window_var.get()] + self.align_intro_val = INTRO_MAPPER[root.intro_analysis_var.get()] + self.db_analysis_val = VOLUME_MAPPER[root.db_analysis_var.get()] + self.is_save_align = root.is_save_align_var.get()# + self.is_match_silence = root.is_match_silence_var.get()# + self.is_spec_match = root.is_spec_match_var.get() + + self.phase_option = root.phase_option_var.get()# + self.phase_shifts = PHASE_SHIFTS_OPT[root.phase_shifts_var.get()] + + def align_inputs(self, audio_inputs, audio_file_base, audio_file_2_base, command_Text, set_progress_bar): + audio_file_base = f"{self.is_testing_audio}{audio_file_base}" + audio_file_2_base = f"{self.is_testing_audio}{audio_file_2_base}" + + aligned_path = os.path.join('{}'.format(self.main_export_path),'{}_(Aligned).wav'.format(audio_file_2_base)) + inverted_path = os.path.join('{}'.format(self.main_export_path),'{}_(Inverted).wav'.format(audio_file_base)) + + spec_utils.align_audio(audio_inputs[0], + audio_inputs[1], + aligned_path, + inverted_path, + self.wav_type_set, + self.is_save_align, + command_Text, + self.save_format, + align_window=self.align_window, + align_intro_val=self.align_intro_val, + db_analysis=self.db_analysis_val, + set_progress_bar=set_progress_bar, + phase_option=self.phase_option, + phase_shifts=self.phase_shifts, + is_match_silence=self.is_match_silence, + is_spec_match=self.is_spec_match) + + def match_inputs(self, audio_inputs, audio_file_base, command_Text): + + target = audio_inputs[0] + reference = audio_inputs[1] + + command_Text(f"Processing... ") + + save_path = os.path.join('{}'.format(self.main_export_path),'{}_(Matched).wav'.format(f"{self.is_testing_audio}{audio_file_base}")) + + match.process( + target=target, + reference=reference, + results=[match.save_audiofile(save_path, wav_set=self.wav_type_set), + ], + ) + + self.save_format(save_path) + + def combine_audio(self, audio_inputs, audio_file_base): + spec_utils.combine_audio(audio_inputs, + os.path.join(self.main_export_path, f"{self.is_testing_audio}{audio_file_base}"), + self.wav_type_set, + save_format=self.save_format) + + def pitch_or_time_shift(self, audio_file, audio_file_base): + is_time_correction = True + rate = float(root.time_stretch_rate_var.get()) if self.audio_tool == TIME_STRETCH else float(root.pitch_rate_var.get()) + is_pitch = False if self.audio_tool == TIME_STRETCH else True + if is_pitch: + is_time_correction = True if root.is_time_correction_var.get() else False + file_text = TIME_TEXT if self.audio_tool == TIME_STRETCH else PITCH_TEXT + save_path = os.path.join(self.main_export_path, f"{self.is_testing_audio}{audio_file_base}{file_text}.wav") + spec_utils.augment_audio(save_path, audio_file, rate, self.is_normalization, self.wav_type_set, self.save_format, is_pitch=is_pitch, is_time_correction=is_time_correction) + +class ToolTip(object): + + def __init__(self, widget): + self.widget = widget + self.tooltip = None + + def showtip(self, text, is_message_box=False, is_success_message=None):# + self.hidetip() + def create_label_config(): + + font_size = FONT_SIZE_3 if is_message_box else FONT_SIZE_2 + + """Helper function to generate label configurations.""" + common_config = { + "text": text, + "relief": tk.SOLID, + "borderwidth": 1, + "font": (MAIN_FONT_NAME, f"{font_size}", "normal") + } + if is_message_box: + background_color = "#03692d" if is_success_message else "#8B0000" + return {**common_config, "background": background_color, "foreground": "#ffffff"} + else: + return {**common_config, "background": "#1C1C1C", "foreground": "#ffffff", + "highlightcolor": "#898b8e", "justify": tk.LEFT} + + if is_message_box: + temp_tooltip = tk.Toplevel(self.widget) + temp_tooltip.wm_overrideredirect(True) + temp_tooltip.withdraw() + label = tk.Label(temp_tooltip, **create_label_config()) + label.pack() + temp_tooltip.update() if is_windows else temp_tooltip.update_idletasks() + + x = self.widget.winfo_rootx() + (self.widget.winfo_width() // 2) - (temp_tooltip.winfo_reqwidth() // 2) + y = self.widget.winfo_rooty() + self.widget.winfo_height() + + temp_tooltip.destroy() + else: + x, y, _, _ = self.widget.bbox("insert") + x += self.widget.winfo_rootx() + 25 + y += self.widget.winfo_rooty() + 25 + + # Create the actual tooltip + self.tooltip = tk.Toplevel(self.widget) + self.tooltip.wm_overrideredirect(True) + self.tooltip.wm_geometry(f"+{x}+{y}") + + label_config = create_label_config() + if not is_message_box: + label_config['padx'] = 10 # horizontal padding + label_config['pady'] = 10 # vertical padding + label_config["wraplength"] = 750 + label = tk.Label(self.tooltip, **label_config) + + label.pack() + + if is_message_box: + self.tooltip.after(3000 if type(is_success_message) is bool else 2000, self.hidetip) + + def hidetip(self): + if self.tooltip: + self.tooltip.destroy() + self.tooltip = None + +class ListboxBatchFrame(tk.Frame): + def __init__(self, master=None, name="Listbox", command=None, image_sel=None, img_mapper=None): + super().__init__(master) + self.master = master + + self.path_list = [] # A list to keep track of the paths + self.basename_to_path = {} # A dict to map basenames to paths + + self.label = tk.Label(self, text=name, font=(MAIN_FONT_NAME, f"{FONT_SIZE_5}"), foreground=FG_COLOR) + self.label.pack(pady=(10, 8)) # add padding between label and listbox + + self.input_button = ttk.Button(self, text=SELECT_INPUTS, command=self.select_input) # create button for selecting files + self.input_button.pack(pady=(0, 10)) # add padding between button and next widget + + self.listbox = tk.Listbox(self, activestyle='dotbox', font=(MAIN_FONT_NAME, f"{FONT_SIZE_4}"), foreground='#cdd3ce', background='#101414', exportselection=0, width=70, height=15) + self.listbox.pack(fill="both", expand=True) + + self.button_frame = tk.Frame(self) + self.button_frame.pack() + + self.up_button = ttk.Button(self.button_frame, image=img_mapper["up"], command=self.move_up) + self.up_button.grid(row=0, column=0) + + self.down_button = ttk.Button(self.button_frame, image=img_mapper["down"], command=self.move_down) + self.down_button.grid(row=0, column=1) + + if command and image_sel: + self.move_button = ttk.Button(self.button_frame, image=image_sel, command=command) + self.move_button.grid(row=0, column=2) + + self.duplicate_button = ttk.Button(self.button_frame, image=img_mapper["copy"], command=self.duplicate_selected) + self.duplicate_button.grid(row=0, column=3) + + self.delete_button = ttk.Button(self.button_frame, image=img_mapper["clear"], command=self.delete_selected) + self.delete_button.grid(row=0, column=4) + + def delete_selected(self): + selected = self.listbox.curselection() + if selected: + basename = self.listbox.get(selected[0]).split(": ", 1)[1] # We get the actual basename here, without the index + path_to_delete = self.basename_to_path[basename] # store the path to delete + del self.basename_to_path[basename] # delete from the dict + self.path_list.remove(path_to_delete) # delete from the list + self.listbox.delete(selected) + self.update_displayed_index() + + def select_input(self, inputs=None): + files = inputs if inputs else root.show_file_dialog(dialoge_type=MULTIPLE_FILE) + for file in files: + if file not in self.path_list: # only add file if it's not already in the list + basename = os.path.basename(file) + self.listbox.insert(tk.END, basename) # insert basename to the listbox + self.path_list.append(file) # append the file path to the list + self.basename_to_path[basename] = file # add to the dict + self.update_displayed_index(is_acc_dupe=False) + + def duplicate_selected(self): + selected = self.listbox.curselection() + if selected: + basename = self.listbox.get(selected[0]).split(": ", 1)[1] # We get the actual basename here, without the index + path_to_duplicate = self.basename_to_path[basename] # store the path to duplicate + self.path_list.append(path_to_duplicate) # add the duplicated path to the list + self.update_displayed_index() # redraw listbox with the duplicated item + + def update_displayed_index(self, inputs=None, is_acc_dupe=True): + self.basename_to_path = {} # reset the dictionary + + if inputs: + self.path_list = inputs + + basename_count = Counter(self.path_list) # count occurrences of each path + + for i in range(len(self.path_list)): + basename = os.path.basename(self.path_list[i]) + + # If the path is not unique or we are adding a duplicate + if basename_count[self.path_list[i]] > 1 and is_acc_dupe: + j = 1 + new_basename = f"{basename} ({j})" + while new_basename in self.basename_to_path: + j += 1 + new_basename = f"{basename} ({j})" + basename = new_basename + + self.basename_to_path[basename] = self.path_list[i] # update the dict with the new order + self.listbox.delete(i) + self.listbox.insert(i, f"{i + 1}: {basename}") + + def move_up(self): + selected = self.listbox.curselection() + if selected and selected[0] > 0: + # Swap items in path_list + self.path_list[selected[0] - 1], self.path_list[selected[0]] = self.path_list[selected[0]], self.path_list[selected[0] - 1] + # Redraw listbox + self.update_displayed_index() + # Reselect item + self.listbox.select_set(selected[0] - 1) + + def move_down(self): + selected = self.listbox.curselection() + if selected and selected[0] < self.listbox.size() - 1: + # Swap items in path_list + self.path_list[selected[0] + 1], self.path_list[selected[0]] = self.path_list[selected[0]], self.path_list[selected[0] + 1] + # Redraw listbox + self.update_displayed_index() + # Reselect item + self.listbox.select_set(selected[0] + 1) + + def get_selected_path(self): + """Returns the path associated with the selected entry.""" + selected = self.listbox.curselection() + if selected: + basename = self.listbox.get(selected[0]).split(": ", 1)[1] # We get the actual basename here, without the index + path = self.basename_to_path[basename] # get the path associated with the basename + return path + return None + +class ComboBoxEditableMenu(ttk.Combobox): + def __init__(self, master=None, pattern=None, default=None, width=None, is_stay_disabled=False, **kw): + + if 'values' in kw: + kw['values'] = tuple(kw['values']) + (OPT_SEPARATOR, USER_INPUT) + else: + kw['values'] = (USER_INPUT) + + super().__init__(master, **kw) + + self.textvariable = kw.get('textvariable', tk.StringVar()) + self.pattern = pattern + self.test = 1 + self.tooltip = ToolTip(self) + self.is_user_input_var = tk.BooleanVar(value=False) + self.is_stay_disabled = is_stay_disabled + + if isinstance(default, (str, int)): + self.default = default + else: + self.default = default[0] + + self.menu_combobox_configure() + self.var_validation(is_start_up=True) + + if width: + self.configure(width=width) + + def menu_combobox_configure(self): + self.bind('<>', self.check_input) + self.bind('', lambda e:self.focus()) + self.bind('', self.focusin) + self.bind('', lambda e: self.var_validation(is_focus_only=True)) + + if is_macos: + self.bind('', lambda e:self.button_released()) + + if not self.is_stay_disabled: + self.configure(state=READ_ONLY) + + def check_input(self, event=None): + if self.textvariable.get() == USER_INPUT: + self.textvariable.set('') + self.configure(state=tk.NORMAL) + self.focus() + self.selection_range(0, 0) + else: + self.var_validation() + + def var_validation(self, is_focus_only=False, is_start_up=False): + if is_focus_only and not self.is_stay_disabled: + self.configure(state=READ_ONLY) + + if re.fullmatch(self.pattern, self.textvariable.get()) is None: + if not is_start_up and not self.textvariable.get() in (OPT_SEPARATOR, USER_INPUT): + self.tooltip.showtip(INVALID_INPUT_E, True) + + self.textvariable.set(self.default) + + def button_released(self, e=None): + self.event_generate('') + self.event_generate('') + + def focusin(self, e): + self.selection_clear() + if is_macos: + self.event_generate('') + +class ComboBoxMenu(ttk.Combobox): + def __init__(self, master=None, dropdown_name=None, offset=185, is_download_menu=False, command=None, width=None, **kw): + super().__init__(master, **kw) + + # Configure the combobox using the menu_combobox_configure method + self.menu_combobox_configure(is_download_menu, width=width) + + # Check if both dropdown_name and 'values' are provided to update dropdown size + if dropdown_name and 'values' in kw: + self.update_dropdown_size(kw['values'], dropdown_name, offset) + + if command: + self.command(command) + + def menu_combobox_configure(self, is_download_menu=False, command=None, width=None): + self.bind('', self.focusin) + self.bind('', lambda e:"break") + + if is_macos: + self.bind('', lambda e:self.button_released()) + + if not is_download_menu: + self.configure(state=READ_ONLY) + + if command: + self.command(command) + + if width: + self.configure(width=width) + + def button_released(self, e=None): + self.event_generate('') + self.event_generate('') + + def command(self, command): + if not self.bind('<>'): + self.bind('<>', command) + + def focusin(self, e): + self.selection_clear() + if is_macos: + self.event_generate('') + + def update_dropdown_size(self, option_list, dropdown_name, offset=185, command=None): + dropdown_style = f"{dropdown_name}.TCombobox" + if option_list: + max_string = max(option_list, key=len) + font = Font(font=self.cget('font')) + width_in_pixels = font.measure(max_string) - offset + width_in_pixels = 0 if width_in_pixels < 0 else width_in_pixels + else: + width_in_pixels = 0 + + style = ttk.Style(self) + style.configure(dropdown_style, padding=(0, 0, 0, 0), postoffset=(0, 0, width_in_pixels, 0)) + self.configure(style=dropdown_style) + + if command: + self.command(command) + +class ThreadSafeConsole(tk.Text): + """ + Text Widget which is thread safe for tkinter + """ + + def __init__(self, master, **options): + tk.Text.__init__(self, master, **options) + self.queue = queue.Queue() + self.update_me() + + def write(self, line): + self.queue.put(line) + + def clear(self): + self.queue.put(None) + + def update_me(self): + self.configure(state=tk.NORMAL) + try: + while 1: + line = self.queue.get_nowait() + if line is None: + self.delete(1.0, tk.END) + else: + self.insert(tk.END, str(line)) + self.see(tk.END) + self.update_idletasks() + except queue.Empty: + pass + self.configure(state=tk.DISABLED) + self.after(100, self.update_me) + + def copy_text(self): + hightlighted_text = self.selection_get() + self.clipboard_clear() + self.clipboard_append(hightlighted_text) + + def select_all_text(self): + self.tag_add('sel', '1.0', 'end') + +class MainWindow(TkinterDnD.Tk if is_dnd_compatible else tk.Tk): + # --Constants-- + # Layout + + IMAGE_HEIGHT = IMAGE_HEIGHT + FILEPATHS_HEIGHT = FILEPATHS_HEIGHT + OPTIONS_HEIGHT = OPTIONS_HEIGHT + CONVERSIONBUTTON_HEIGHT = CONVERSIONBUTTON_HEIGHT + COMMAND_HEIGHT = COMMAND_HEIGHT + PROGRESS_HEIGHT = PROGRESS_HEIGHT + PADDING = PADDING + WIDTH = WIDTH + COL1_ROWS = 11 + COL2_ROWS = 11 + + def __init__(self): + #Run the __init__ method on the tk.Tk class + super().__init__() + + self.set_app_font() + + style = ttk.Style(self) + style.map('TCombobox', selectbackground=[('focus', '#0c0c0c')], selectforeground=[('focus', 'white')]) + style.configure('TCombobox', selectbackground='#0c0c0c') + #style.configure('TCheckbutton', indicatorsize=30) + + # Calculate window height + height = self.IMAGE_HEIGHT + self.FILEPATHS_HEIGHT + self.OPTIONS_HEIGHT + height += self.CONVERSIONBUTTON_HEIGHT + self.COMMAND_HEIGHT + self.PROGRESS_HEIGHT + height += self.PADDING * 5 # Padding + width = self.WIDTH + self.main_window_width = width + self.main_window_height = height + + # --Window Settings-- + self.withdraw() + self.title('Ultimate Vocal Remover') + # Set Geometry and Center Window + self.geometry('{width}x{height}+{xpad}+{ypad}'.format( + width=self.main_window_width, + height=height, + xpad=int(self.winfo_screenwidth()/2 - width/2), + ypad=int(self.winfo_screenheight()/2 - height/2 - 30))) + + self.iconbitmap(ICON_IMG_PATH) if is_windows else self.tk.call('wm', 'iconphoto', self._w, tk.PhotoImage(file=MAIN_ICON_IMG_PATH)) + self.protocol("WM_DELETE_WINDOW", self.save_values) + self.resizable(False, False) + + self.msg_queue = queue.Queue() + # Create a custom style that inherits from the original Combobox style. + + if not is_windows: + self.update() + + #Load Images + img = ImagePath(BASE_PATH) + self.logo_img = img.open_image(path=img.banner_path, size=(width, height)) + self.efile_img = img.efile_img + self.stop_img = img.stop_img + self.help_img = img.help_img + self.download_img = img.download_img + self.donate_img = img.donate_img + self.key_img = img.key_img + self.credits_img = img.credits_img + + self.right_img = img.right_img + self.left_img = img.left_img + self.img_mapper = { + "down":img.down_img, + "up":img.up_img, + "copy":img.copy_img, + "clear":img.clear_img + } + + #Placeholders + self.error_log_var = tk.StringVar(value='') + self.vr_secondary_model_names = [] + self.mdx_secondary_model_names = [] + self.demucs_secondary_model_names = [] + self.vr_primary_model_names = [] + self.mdx_primary_model_names = [] + self.demucs_primary_model_names = [] + + self.vr_cache_source_mapper = {} + self.mdx_cache_source_mapper = {} + self.demucs_cache_source_mapper = {} + + # -Tkinter Value Holders- + + try: + self.load_saved_vars(data) + except Exception as e: + self.error_log_var.set(error_text('Loading Saved Variables', e)) + self.load_saved_vars(DEFAULT_DATA) + + self.cached_sources_clear() + + self.method_mapper = { + VR_ARCH_PM: self.vr_model_var, + MDX_ARCH_TYPE: self.mdx_net_model_var, + DEMUCS_ARCH_TYPE: self.demucs_model_var} + + self.vr_secondary_model_vars = {'voc_inst_secondary_model': self.vr_voc_inst_secondary_model_var, + 'other_secondary_model': self.vr_other_secondary_model_var, + 'bass_secondary_model': self.vr_bass_secondary_model_var, + 'drums_secondary_model': self.vr_drums_secondary_model_var, + 'is_secondary_model_activate': self.vr_is_secondary_model_activate_var, + 'voc_inst_secondary_model_scale': self.vr_voc_inst_secondary_model_scale_var, + 'other_secondary_model_scale': self.vr_other_secondary_model_scale_var, + 'bass_secondary_model_scale': self.vr_bass_secondary_model_scale_var, + 'drums_secondary_model_scale': self.vr_drums_secondary_model_scale_var} + + self.demucs_secondary_model_vars = {'voc_inst_secondary_model': self.demucs_voc_inst_secondary_model_var, + 'other_secondary_model': self.demucs_other_secondary_model_var, + 'bass_secondary_model': self.demucs_bass_secondary_model_var, + 'drums_secondary_model': self.demucs_drums_secondary_model_var, + 'is_secondary_model_activate': self.demucs_is_secondary_model_activate_var, + 'voc_inst_secondary_model_scale': self.demucs_voc_inst_secondary_model_scale_var, + 'other_secondary_model_scale': self.demucs_other_secondary_model_scale_var, + 'bass_secondary_model_scale': self.demucs_bass_secondary_model_scale_var, + 'drums_secondary_model_scale': self.demucs_drums_secondary_model_scale_var} + + self.mdx_secondary_model_vars = {'voc_inst_secondary_model': self.mdx_voc_inst_secondary_model_var, + 'other_secondary_model': self.mdx_other_secondary_model_var, + 'bass_secondary_model': self.mdx_bass_secondary_model_var, + 'drums_secondary_model': self.mdx_drums_secondary_model_var, + 'is_secondary_model_activate': self.mdx_is_secondary_model_activate_var, + 'voc_inst_secondary_model_scale': self.mdx_voc_inst_secondary_model_scale_var, + 'other_secondary_model_scale': self.mdx_other_secondary_model_scale_var, + 'bass_secondary_model_scale': self.mdx_bass_secondary_model_scale_var, + 'drums_secondary_model_scale': self.mdx_drums_secondary_model_scale_var} + + #Main Application Vars + self.progress_bar_main_var = tk.IntVar(value=0) + self.inputPathsEntry_var = tk.StringVar(value='') + self.conversion_Button_Text_var = tk.StringVar(value=START_PROCESSING) + self.chosen_ensemble_var = tk.StringVar(value=CHOOSE_ENSEMBLE_OPTION) + self.ensemble_main_stem_var = tk.StringVar(value=CHOOSE_STEM_PAIR) + self.ensemble_type_var = tk.StringVar(value=MAX_MIN) + self.save_current_settings_var = tk.StringVar(value=SELECT_SAVED_SET) + self.demucs_stems_var = tk.StringVar(value=ALL_STEMS) + self.mdxnet_stems_var = tk.StringVar(value=ALL_STEMS) + self.is_primary_stem_only_Text_var = tk.StringVar(value='') + self.is_secondary_stem_only_Text_var = tk.StringVar(value='') + self.is_primary_stem_only_Demucs_Text_var = tk.StringVar(value='') + self.is_secondary_stem_only_Demucs_Text_var = tk.StringVar(value='') + self.scaling_var = tk.DoubleVar(value=1.0) + self.active_processing_thread = None + self.verification_thread = None + self.is_menu_settings_open = False + self.is_root_defined_var = tk.BooleanVar(value=False) + self.is_check_splash = False + + self.is_open_menu_advanced_vr_options = tk.BooleanVar(value=False) + self.is_open_menu_advanced_demucs_options = tk.BooleanVar(value=False) + self.is_open_menu_advanced_mdx_options = tk.BooleanVar(value=False) + self.is_open_menu_advanced_ensemble_options = tk.BooleanVar(value=False) + self.is_open_menu_view_inputs = tk.BooleanVar(value=False) + self.is_open_menu_help = tk.BooleanVar(value=False) + self.is_open_menu_error_log = tk.BooleanVar(value=False) + self.is_open_menu_advanced_align_options = tk.BooleanVar(value=False) + + self.menu_advanced_vr_options_close_window = None + self.menu_advanced_demucs_options_close_window = None + self.menu_advanced_mdx_options_close_window = None + self.menu_advanced_ensemble_options_close_window = None + self.menu_help_close_window = None + self.menu_error_log_close_window = None + self.menu_view_inputs_close_window = None + self.menu_advanced_align_options_close_window = None + + self.mdx_model_params = None + self.vr_model_params = None + self.current_text_box = None + self.wav_type_set = None + self.is_online_model_menu = None + self.progress_bar_var = tk.IntVar(value=0) + self.is_confirm_error_var = tk.BooleanVar(value=False) + self.clear_cache_torch = False + self.vr_hash_MAPPER = load_model_hash_data(VR_HASH_JSON) + self.mdx_hash_MAPPER = load_model_hash_data(MDX_HASH_JSON) + self.mdx_name_select_MAPPER = load_model_hash_data(MDX_MODEL_NAME_SELECT) + self.demucs_name_select_MAPPER = load_model_hash_data(DEMUCS_MODEL_NAME_SELECT) + self.is_gpu_available = is_gpu_available + self.is_process_stopped = False + self.inputs_from_dir = [] + self.iteration = 0 + self.true_model_count = 0 + self.vr_primary_source = None + self.vr_secondary_source = None + self.mdx_primary_source = None + self.mdx_secondary_source = None + self.demucs_primary_source = None + self.demucs_secondary_source = None + self.toplevels = [] + + #Download Center Vars + self.online_data = {} + self.bulletin_data = INFO_UNAVAILABLE_TEXT + self.is_online = False + self.lastest_version = '' + self.model_download_demucs_var = tk.StringVar(value='') + self.model_download_mdx_var = tk.StringVar(value='') + self.model_download_vr_var = tk.StringVar(value='') + self.selected_download_var = tk.StringVar(value=NO_MODEL) + self.select_download_var = tk.StringVar(value='') + self.download_progress_info_var = tk.StringVar(value='') + self.download_progress_percent_var = tk.StringVar(value='') + self.download_progress_bar_var = tk.IntVar(value=0) + self.download_stop_var = tk.StringVar(value='') + self.app_update_status_Text_var = tk.StringVar(value=LOADING_VERSION_INFO_TEXT) + self.app_update_button_Text_var = tk.StringVar(value=CHECK_FOR_UPDATES_TEXT) + + self.user_code_validation_var = tk.StringVar(value='') + self.download_link_path_var = tk.StringVar(value='') + self.download_save_path_var = tk.StringVar(value='') + self.download_update_link_var = tk.StringVar(value='') + self.download_update_path_var = tk.StringVar(value='') + self.download_demucs_models_list = [] + self.download_demucs_newer_models = [] + self.refresh_list_Button = None + self.stop_download_Button_DISABLE = None + self.enable_tabs = None + self.is_download_thread_active = False + self.is_process_thread_active = False + self.is_active_processing_thread = False + self.active_download_thread = None + self.pre_proc_model_toggle = None + self.change_state_lambda = None + self.file_one_sub_var = tk.StringVar(value=FILE_ONE_MAIN_LABEL) + self.file_two_sub_var = tk.StringVar(value=FILE_TWO_MAIN_LABEL) + self.cuda_device_list = GPU_DEVICE_NUM_OPTS + self.opencl_list = GPU_DEVICE_NUM_OPTS + + #Model Update + self.last_found_ensembles = ENSEMBLE_OPTIONS + self.last_found_settings = ENSEMBLE_OPTIONS + self.last_found_models = () + self.model_data_table = () + self.ensemble_model_list = () + self.default_change_model_list = () + + # --Widgets-- + self.fill_main_frame() + self.bind_widgets() + + # --Update Widgets-- + self.update_available_models() + self.update_main_widget_states() + self.update_loop() + self.update_button_states() + self.download_validate_code() + self.delete_temps(is_start_up=True) + self.ensemble_listbox_Option.configure(state=tk.DISABLED) + self.command_Text.write(f'Ultimate Vocal Remover {VERSION} [{datetime.now().strftime("%Y-%m-%d %H:%M:%S")}]') + self.update_checkbox_text = lambda:self.selection_action_process_method(self.chosen_process_method_var.get()) + self.check_dual_paths() + if not is_windows: + self.update_idletasks() + self.fill_gpu_list() + self.online_data_refresh(user_refresh=False, is_start_up=True) + + # Menu Functions + def main_window_LABEL_SET(self, master, text):return ttk.Label(master=master, text=text, background=BG_COLOR, font=self.font_set, foreground=FG_COLOR, anchor=tk.CENTER) + def main_window_LABEL_SUB_SET(self, master, text_var):return ttk.Label(master=master, textvariable=text_var, background=BG_COLOR, font=self.font_set, foreground=FG_COLOR, anchor=tk.CENTER) + def menu_title_LABEL_SET(self, frame, text, width=35):return ttk.Label(master=frame, text=text, font=(SEC_FONT_NAME, f"{FONT_SIZE_5}", "underline"), justify="center", foreground="#13849f", width=width, anchor=tk.CENTER) + def menu_sub_LABEL_SET(self, frame, text, font_size=FONT_SIZE_2):return ttk.Label(master=frame, text=text, font=(MAIN_FONT_NAME, f"{font_size}"), foreground=FG_COLOR, anchor=tk.CENTER) + def menu_FRAME_SET(self, frame, thickness=20):return tk.Frame(frame, highlightbackground=BG_COLOR, highlightcolor=BG_COLOR, highlightthicknes=thickness) + def check_is_menu_settings_open(self):self.menu_settings() if not self.is_menu_settings_open else None + def spacer_label(self, frame): return tk.Label(frame, text='', font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), foreground='#868687', justify="left").grid() + + #Ensemble Listbox Functions + def ensemble_listbox_get_all_selected_models(self):return [self.ensemble_listbox_Option.get(i) for i in self.ensemble_listbox_Option.curselection()] + def ensemble_listbox_select_from_indexs(self, indexes):return [self.ensemble_listbox_Option.selection_set(i) for i in indexes] + def ensemble_listbox_clear_and_insert_new(self, model_ensemble_updated):return (self.ensemble_listbox_Option.delete(0, 'end'), [self.ensemble_listbox_Option.insert(tk.END, models) for models in model_ensemble_updated]) + def ensemble_listbox_get_indexes_for_files(self, updated, selected):return [updated.index(model) for model in selected if model in updated] + + def set_app_font(self): + chosen_font_name, chosen_font_file = font_checker(OWN_FONT_PATH) + + if chosen_font_name: + gui_data.sv_ttk.set_theme("dark", chosen_font_name, 10) + if chosen_font_file: + pyglet_font.add_file(chosen_font_file) + self.font_set = Font(family=chosen_font_name, size=FONT_SIZE_F2) + self.font_entry = Font(family=chosen_font_name, size=FONT_SIZE_F2) + else: + pyglet_font.add_file(FONT_MAPPER[MAIN_FONT_NAME]) + pyglet_font.add_file(FONT_MAPPER[SEC_FONT_NAME]) + gui_data.sv_ttk.set_theme("dark", MAIN_FONT_NAME, 10) + self.font_set = Font(family=SEC_FONT_NAME, size=FONT_SIZE_F2) + self.font_entry = Font(family=MAIN_FONT_NAME, size=FONT_SIZE_F2) + + def process_iteration(self): + self.iteration = self.iteration + 1 + + def assemble_model_data(self, model=None, arch_type=ENSEMBLE_MODE, is_dry_check=False, is_change_def=False, is_get_hash_dir_only=False): + + if arch_type == ENSEMBLE_STEM_CHECK: + + model_data = self.model_data_table + missing_models = [model.model_status for model in model_data if not model.model_status] + + if missing_models or not model_data: + model_data: List[ModelData] = [ModelData(model_name, is_dry_check=is_dry_check) for model_name in self.ensemble_model_list] + self.model_data_table = model_data + + if arch_type == KARAOKEE_CHECK: + model_list = [] + model_data: List[ModelData] = [ModelData(model_name, is_dry_check=is_dry_check) for model_name in self.default_change_model_list] + for model in model_data: + if model.model_status and model.is_karaoke or model.is_bv_model: + model_list.append(model.model_and_process_tag) + + return model_list + + if arch_type == ENSEMBLE_MODE: + model_data: List[ModelData] = [ModelData(model_name) for model_name in self.ensemble_listbox_get_all_selected_models()] + if arch_type == ENSEMBLE_CHECK: + model_data: List[ModelData] = [ModelData(model, is_change_def=is_change_def, is_get_hash_dir_only=is_get_hash_dir_only)] + if arch_type == VR_ARCH_TYPE or arch_type == VR_ARCH_PM: + model_data: List[ModelData] = [ModelData(model, VR_ARCH_TYPE)] + if arch_type == MDX_ARCH_TYPE: + model_data: List[ModelData] = [ModelData(model, MDX_ARCH_TYPE)] + if arch_type == DEMUCS_ARCH_TYPE: + model_data: List[ModelData] = [ModelData(model, DEMUCS_ARCH_TYPE)]# + + return model_data + + def clear_cache(self, network): + + if network == VR_ARCH_TYPE: + dir = VR_HASH_DIR + if network == MDX_ARCH_TYPE: + dir = MDX_HASH_DIR + + for filename in os.listdir(dir): + filepath = os.path.join(dir, filename) + if filename not in ['model_data.json', 'model_name_mapper.json', 'mdx_c_configs'] and not os.path.isdir(filepath): + os.remove(filepath) + + self.vr_model_var.set(CHOOSE_MODEL) + self.mdx_net_model_var.set(CHOOSE_MODEL) + self.model_data_table.clear() + self.chosen_ensemble_var.set(CHOOSE_ENSEMBLE_OPTION) + self.ensemble_main_stem_var.set(CHOOSE_STEM_PAIR) + self.ensemble_listbox_Option.configure(state=tk.DISABLED) + self.update_checkbox_text() + + def thread_check(self, thread_to_check): + '''Checks if thread is alive''' + + is_running = False + + if type(thread_to_check) is KThread: + if thread_to_check.is_alive(): + is_running = True + + return is_running + + # -Widget Methods-- + + def fill_main_frame(self): + """Creates root window widgets""" + + self.title_Label = tk.Label(master=self, image=self.logo_img, compound=tk.TOP) + self.title_Label.place(x=-2, y=banner_placement) + + self.fill_filePaths_Frame() + self.fill_options_Frame() + + self.conversion_Button = ttk.Button(master=self, textvariable=self.conversion_Button_Text_var, command=self.process_initialize) + self.conversion_Button.place(x=X_CONVERSION_BUTTON_1080P, y=BUTTON_Y_1080P, width=WIDTH_CONVERSION_BUTTON_1080P, height=HEIGHT_GENERIC_BUTTON_1080P, + relx=0, rely=0, relwidth=1, relheight=0) + + self.conversion_Button_enable = lambda:(self.conversion_Button_Text_var.set(START_PROCESSING), self.conversion_Button.configure(state=tk.NORMAL)) + self.conversion_Button_disable = lambda message:(self.conversion_Button_Text_var.set(message), self.conversion_Button.configure(state=tk.DISABLED)) + + self.stop_Button = ttk.Button(master=self, image=self.stop_img, command=self.confirm_stop_process) + self.stop_Button.place(x=X_STOP_BUTTON_1080P, y=BUTTON_Y_1080P, width=HEIGHT_GENERIC_BUTTON_1080P, height=HEIGHT_GENERIC_BUTTON_1080P, + relx=1, rely=0, relwidth=0, relheight=0) + self.help_hints(self.stop_Button, text=STOP_HELP) + + self.settings_Button = ttk.Button(master=self, image=self.help_img, command=self.check_is_menu_settings_open) + self.settings_Button.place(x=X_SETTINGS_BUTTON_1080P, y=BUTTON_Y_1080P, width=HEIGHT_GENERIC_BUTTON_1080P, height=HEIGHT_GENERIC_BUTTON_1080P, + relx=1, rely=0, relwidth=0, relheight=0) + self.help_hints(self.settings_Button, text=SETTINGS_HELP) + + self.progressbar = ttk.Progressbar(master=self, variable=self.progress_bar_main_var) + self.progressbar.place(x=X_PROGRESSBAR_1080P, y=Y_OFFSET_PROGRESS_BAR_1080P, width=WIDTH_PROGRESSBAR_1080P, height=HEIGHT_PROGRESSBAR_1080P, + relx=0, rely=0, relwidth=1, relheight=0) + + # Select Music Files Option + self.console_Frame = tk.Frame(master=self, highlightbackground='#101012', highlightcolor='#101012', highlightthicknes=2) + self.console_Frame.place(x=15, y=self.IMAGE_HEIGHT + self.FILEPATHS_HEIGHT + self.OPTIONS_HEIGHT + self.CONVERSIONBUTTON_HEIGHT + self.PADDING + 5 *3, width=-30, height=self.COMMAND_HEIGHT+7, + relx=0, rely=0, relwidth=1, relheight=0) + + + self.command_Text = ThreadSafeConsole(master=self.console_Frame, background='#0c0c0d',fg='#898b8e', highlightcolor="#0c0c0d", font=(MAIN_FONT_NAME, FONT_SIZE_4), borderwidth=0) + self.command_Text.pack(fill=tk.BOTH, expand=1) + self.command_Text.bind(right_click_button, lambda e:self.right_click_console(e)) + + def fill_filePaths_Frame(self): + """Fill Frame with neccessary widgets""" + + # Select Music Files Option + self.filePaths_Frame = ttk.Frame(master=self) + self.filePaths_Frame.place(x=FILEPATHS_FRAME_X, y=FILEPATHS_FRAME_Y, width=FILEPATHS_FRAME_WIDTH, height=self.FILEPATHS_HEIGHT, relx=0, rely=0, relwidth=1, relheight=0) + + self.filePaths_musicFile_Button = ttk.Button(master=self.filePaths_Frame, text=SELECT_INPUT_TEXT, command=self.input_select_filedialog) + self.filePaths_musicFile_Button.place(x=MUSICFILE_BUTTON_X, y=MUSICFILE_BUTTON_Y, width=MUSICFILE_BUTTON_WIDTH, height=MUSICFILE_BUTTON_HEIGHT, relx=0, rely=0, relwidth=0.3, relheight=0.5) + self.filePaths_musicFile_Entry = ttk.Entry(master=self.filePaths_Frame, textvariable=self.inputPathsEntry_var, font=self.font_entry, state=tk.DISABLED) + self.filePaths_musicFile_Entry.place(x=MUSICFILE_ENTRY_X, y=MUSICFILE_BUTTON_Y, width=MUSICFILE_ENTRY_WIDTH, height=MUSICFILE_ENTRY_HEIGHT, relx=0.3, rely=0, relwidth=0.7, relheight=0.5) + self.filePaths_musicFile_Open = ttk.Button(master=self.filePaths_Frame, image=self.efile_img, command=lambda:OPEN_FILE_func(os.path.dirname(self.inputPaths[0])) if self.inputPaths and os.path.isdir(os.path.dirname(self.inputPaths[0])) else self.error_dialoge(INVALID_INPUT)) + self.filePaths_musicFile_Open.place(x=OPEN_BUTTON_X, y=MUSICFILE_BUTTON_Y, width=OPEN_BUTTON_WIDTH, height=MUSICFILE_ENTRY_HEIGHT, relx=0.3, rely=0, relwidth=0.7, relheight=0.5) + + # Add any additional configurations or method calls here + self.filePaths_musicFile_Entry.configure(cursor="hand2") + self.help_hints(self.filePaths_musicFile_Button, text=INPUT_FOLDER_ENTRY_HELP) + self.help_hints(self.filePaths_musicFile_Entry, text=INPUT_FOLDER_ENTRY_HELP_2) + self.help_hints(self.filePaths_musicFile_Open, text=INPUT_FOLDER_BUTTON_HELP) + + # Save To Option + self.filePaths_saveTo_Button = ttk.Button(master=self.filePaths_Frame, text=SELECT_OUTPUT_TEXT, command=self.export_select_filedialog) + self.filePaths_saveTo_Button.place(x=SAVETO_BUTTON_X, y=SAVETO_BUTTON_Y, width=SAVETO_BUTTON_WIDTH, height=SAVETO_BUTTON_HEIGHT, relx=0, rely=0.5, relwidth=0.3, relheight=0.5) + self.filePaths_saveTo_Entry = ttk.Entry(master=self.filePaths_Frame, textvariable=self.export_path_var, font=self.font_entry, state=tk.DISABLED) + self.filePaths_saveTo_Entry.place(x=SAVETO_ENTRY_X, y=SAVETO_BUTTON_Y, width=SAVETO_ENTRY_WIDTH, height=SAVETO_ENTRY_HEIGHT, relx=0.3, rely=0.5, relwidth=0.7, relheight=0.5) + self.filePaths_saveTo_Open = ttk.Button(master=self.filePaths_Frame, image=self.efile_img, command=lambda:OPEN_FILE_func(Path(self.export_path_var.get())) if os.path.isdir(self.export_path_var.get()) else self.error_dialoge(INVALID_EXPORT)) + self.filePaths_saveTo_Open.place(x=OPEN_BUTTON_X, y=SAVETO_BUTTON_Y, width=OPEN_BUTTON_WIDTH, height=SAVETO_ENTRY_HEIGHT, relx=0.3, rely=0.5, relwidth=0.7, relheight=0.5) + self.help_hints(self.filePaths_saveTo_Button, text=OUTPUT_FOLDER_ENTRY_HELP) + self.help_hints(self.filePaths_saveTo_Open, text=OUTPUT_FOLDER_BUTTON_HELP) + + def fill_options_Frame(self): + """Fill Frame with neccessary widgets""" + + self.options_Frame = ttk.Frame(master=self) + self.options_Frame.place(x=OPTIONS_FRAME_X, y=OPTIONS_FRAME_Y, width=OPTIONS_FRAME_WIDTH, height=self.OPTIONS_HEIGHT, relx=0, rely=0, relwidth=1, relheight=0) + + # -Create Widgets- + + ## Save Format + self.wav_button = ttk.Radiobutton(master=self.options_Frame, text=WAV, variable=self.save_format_var, value=WAV) + self.wav_button.place(x=RADIOBUTTON_X_WAV, y=RADIOBUTTON_Y, width=RADIOBUTTON_WIDTH, height=RADIOBUTTON_HEIGHT, relx=0, rely=0/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.wav_button, text=f'{FORMAT_SETTING_HELP}{WAV}') + + self.flac_button = ttk.Radiobutton(master=self.options_Frame, text=FLAC, variable=self.save_format_var, value=FLAC) + self.flac_button.place(x=RADIOBUTTON_X_FLAC, y=RADIOBUTTON_Y, width=RADIOBUTTON_WIDTH, height=RADIOBUTTON_HEIGHT, relx=1/3, rely=0/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.flac_button, text=f'{FORMAT_SETTING_HELP}{FLAC}') + + self.mp3_button = ttk.Radiobutton(master=self.options_Frame, text=MP3, variable=self.save_format_var, value=MP3) + self.mp3_button.place(x=RADIOBUTTON_X_MP3, y=RADIOBUTTON_Y, width=RADIOBUTTON_WIDTH, height=RADIOBUTTON_HEIGHT, relx=2/3, rely=0/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.mp3_button, text=f'{FORMAT_SETTING_HELP}{MP3}') + + # Choose Conversion Method + self.chosen_process_method_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_PROC_METHOD_MAIN_LABEL) + self.chosen_process_method_Label.place(x=0, y=MAIN_ROW_Y[0], width=LEFT_ROW_WIDTH, height=LABEL_HEIGHT, relx=0, rely=2/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.chosen_process_method_Option = ComboBoxMenu(self.options_Frame, textvariable=self.chosen_process_method_var, values=PROCESS_METHODS, command=lambda e: self.selection_action_process_method(self.chosen_process_method_var.get(), from_widget=True, is_from_conv_menu=True)) + self.chosen_process_method_Option.place(x=0, y=MAIN_ROW_Y[1], width=LEFT_ROW_WIDTH, height=OPTION_HEIGHT, relx=0, rely=3/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + #self.chosen_process_method_var.trace_add('write', lambda *args: self.update_main_widget_states()) + self.help_hints(self.chosen_process_method_Label, text=CHOSEN_PROCESS_METHOD_HELP) + + # Choose Settings Option + self.save_current_settings_Label = self.main_window_LABEL_SET(self.options_Frame, SELECT_SAVED_SETTINGS_MAIN_LABEL) + self.save_current_settings_Label_place = lambda:self.save_current_settings_Label.place(x=MAIN_ROW_2_X[0], y=LOW_MENU_Y[0], width=0, height=LABEL_HEIGHT, relx=2/3, rely=6/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.save_current_settings_Option = ComboBoxMenu(self.options_Frame, textvariable=self.save_current_settings_var, command=lambda e:self.selection_action_saved_settings(self.save_current_settings_var.get())) + self.save_current_settings_Option_place = lambda:self.save_current_settings_Option.place(x=MAIN_ROW_2_X[1], y=LOW_MENU_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=2/3, rely=7/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.help_hints(self.save_current_settings_Label, text=SAVE_CURRENT_SETTINGS_HELP) + + ### MDX-NET ### + + # Choose MDX-Net Model + self.mdx_net_model_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_MDX_MODEL_MAIN_LABEL) + self.mdx_net_model_Label_place = lambda:self.mdx_net_model_Label.place(x=0, y=LOW_MENU_Y[0], width=LEFT_ROW_WIDTH, height=LABEL_HEIGHT, relx=0, rely=6/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.mdx_net_model_Option = ComboBoxMenu(self.options_Frame, textvariable=self.mdx_net_model_var, command=lambda event: self.selection_action(event, self.mdx_net_model_var, is_mdx_net=True)) + self.mdx_net_model_Option_place = lambda:self.mdx_net_model_Option.place(x=0, y=LOW_MENU_Y[1], width=LEFT_ROW_WIDTH, height=OPTION_HEIGHT, relx=0, rely=7/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + #self.mdx_net_model_var.trace_add('write', lambda *args: self.update_main_widget_states_mdx()) + self.help_hints(self.mdx_net_model_Label, text=CHOOSE_MODEL_HELP) + + # MDX-Overlap + self.overlap_mdx_Label = self.main_window_LABEL_SET(self.options_Frame, 'OVERLAP') + self.overlap_mdx_Label_place = lambda:self.overlap_mdx_Label.place(x=MAIN_ROW_2_X[0], y=MAIN_ROW_2_Y[0], width=0, height=LABEL_HEIGHT, relx=2/3, rely=2/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.overlap_mdx_Option = ComboBoxEditableMenu(self.options_Frame, values=MDX_OVERLAP, width=MENU_COMBOBOX_WIDTH, textvariable=self.overlap_mdx_var, pattern=REG_OVERLAP, default=MDX_OVERLAP) + self.overlap_mdx_Option_place = lambda:self.overlap_mdx_Option.place(x=MAIN_ROW_2_X[1], y=MAIN_ROW_2_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=2/3, rely=3/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + + # MDX23-Overlap + self.overlap_mdx23_Option = ComboBoxEditableMenu(self.options_Frame, values=MDX23_OVERLAP, width=MENU_COMBOBOX_WIDTH, textvariable=self.overlap_mdx23_var, pattern=REG_OVERLAP23, default="8") + self.overlap_mdx23_Option_place = lambda:self.overlap_mdx23_Option.place(x=MAIN_ROW_2_X[1], y=MAIN_ROW_2_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=2/3, rely=3/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.overlap_mdx_Label, text=MDX_OVERLAP_HELP) + + # Choose MDX-Net Stems + self.mdxnet_stems_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_STEMS_MAIN_LABEL) + self.mdxnet_stems_Label_place = lambda:self.mdxnet_stems_Label.place(x=MAIN_ROW_X[0], y=MAIN_ROW_Y[0], width=0, height=LABEL_HEIGHT, relx=1/3, rely=2/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + + self.mdxnet_stems_Option = ComboBoxMenu(self.options_Frame, textvariable=self.mdxnet_stems_var) + self.mdxnet_stems_Option_place = lambda:self.mdxnet_stems_Option.place(x=MAIN_ROW_X[1], y=MAIN_ROW_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=3/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.mdxnet_stems_Label, text=DEMUCS_STEMS_HELP) + + # MDX-Segment Size + self.mdx_segment_size_Label = self.main_window_LABEL_SET(self.options_Frame, SEGMENT_MDX_MAIN_LABEL) + self.mdx_segment_size_Label_place = lambda:self.mdx_segment_size_Label.place(x=MAIN_ROW_X[0], y=MAIN_ROW_Y[0], width=0, height=LABEL_HEIGHT, relx=1/3, rely=2/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.mdx_segment_size_Option = ComboBoxEditableMenu(self.options_Frame, values=MDX_SEGMENTS, width=MENU_COMBOBOX_WIDTH, textvariable=self.mdx_segment_size_var, pattern=REG_MDX_SEG, default="256")# + self.mdx_segment_size_Option_place = lambda:self.mdx_segment_size_Option.place(x=MAIN_ROW_X[1], y=MAIN_ROW_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=3/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.mdx_segment_size_Label, text=MDX_SEGMENT_SIZE_HELP) + + ### VR ARCH ### + + # Choose VR Model + self.vr_model_Label = self.main_window_LABEL_SET(self.options_Frame, SELECT_VR_MODEL_MAIN_LABEL) + self.vr_model_Label_place = lambda:self.vr_model_Label.place(x=0, y=LOW_MENU_Y[0], width=LEFT_ROW_WIDTH, height=LABEL_HEIGHT, relx=0, rely=6/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.vr_model_Option = ComboBoxMenu(self.options_Frame, textvariable=self.vr_model_var, command=lambda event: self.selection_action(event, self.vr_model_var)) + self.vr_model_Option_place = lambda:self.vr_model_Option.place(x=0, y=LOW_MENU_Y[1], width=LEFT_ROW_WIDTH, height=OPTION_HEIGHT, relx=0, rely=7/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.help_hints(self.vr_model_Label, text=CHOOSE_MODEL_HELP) + + # Aggression Setting + self.aggression_setting_Label = self.main_window_LABEL_SET(self.options_Frame, AGGRESSION_SETTING_MAIN_LABEL) + self.aggression_setting_Label_place = lambda:self.aggression_setting_Label.place(x=MAIN_ROW_2_X[0], y=MAIN_ROW_2_Y[0], width=0, height=LABEL_HEIGHT, relx=2/3, rely=2/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.aggression_setting_Option = ComboBoxEditableMenu(self.options_Frame, values=VR_AGGRESSION, textvariable=self.aggression_setting_var, pattern=REG_AGGRESSION, default=VR_AGGRESSION[5])# + self.aggression_setting_Option_place = lambda:self.aggression_setting_Option.place(x=MAIN_ROW_2_X[1], y=MAIN_ROW_2_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=2/3, rely=3/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.aggression_setting_Label, text=AGGRESSION_SETTING_HELP) + + # Window Size + self.window_size_Label = self.main_window_LABEL_SET(self.options_Frame, WINDOW_SIZE_MAIN_LABEL) + self.window_size_Label_place = lambda:self.window_size_Label.place(x=MAIN_ROW_X[0], y=MAIN_ROW_Y[0], width=0, height=LABEL_HEIGHT, relx=1/3, rely=2/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.window_size_Option = ComboBoxEditableMenu(self.options_Frame, values=VR_WINDOW, textvariable=self.window_size_var, pattern=REG_WINDOW, default=VR_WINDOW[1])# + self.window_size_Option_place = lambda:self.window_size_Option.place(x=MAIN_ROW_X[1], y=MAIN_ROW_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=3/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.window_size_Label, text=WINDOW_SIZE_HELP) + + ### DEMUCS ### + + # Choose Demucs Models + self.demucs_model_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_DEMUCS_MODEL_MAIN_LABEL) + self.demucs_model_Label_place = lambda:self.demucs_model_Label.place(x=0, y=LOW_MENU_Y[0], width=LEFT_ROW_WIDTH, height=LABEL_HEIGHT, relx=0, rely=6/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.demucs_model_Option = ComboBoxMenu(self.options_Frame, textvariable=self.demucs_model_var, command=lambda event: self.selection_action(event, self.demucs_model_var)) + self.demucs_model_Option_place = lambda:self.demucs_model_Option.place(x=0, y=LOW_MENU_Y[1], width=LEFT_ROW_WIDTH, height=OPTION_HEIGHT, relx=0, rely=7/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.help_hints(self.demucs_model_Label, text=CHOOSE_MODEL_HELP) + + # Choose Demucs Stems + self.demucs_stems_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_STEMS_MAIN_LABEL) + self.demucs_stems_Label_place = lambda:self.demucs_stems_Label.place(x=MAIN_ROW_X[0], y=MAIN_ROW_Y[0], width=0, height=LABEL_HEIGHT, relx=1/3, rely=2/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.demucs_stems_Option = ComboBoxMenu(self.options_Frame, textvariable=self.demucs_stems_var) + self.demucs_stems_Option_place = lambda:self.demucs_stems_Option.place(x=MAIN_ROW_X[1], y=MAIN_ROW_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=3/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.demucs_stems_Label, text=DEMUCS_STEMS_HELP) + + # Demucs-Segment + self.segment_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_SEGMENT_MAIN_LABEL) + self.segment_Label_place = lambda:self.segment_Label.place(x=MAIN_ROW_2_X[0], y=MAIN_ROW_2_Y[0], width=0, height=LABEL_HEIGHT, relx=2/3, rely=2/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.segment_Option = ComboBoxEditableMenu(self.options_Frame, values=DEMUCS_SEGMENTS, textvariable=self.segment_var, pattern=REG_SEGMENTS, default=DEMUCS_SEGMENTS)# + self.segment_Option_place = lambda:self.segment_Option.place(x=MAIN_ROW_2_X[1], y=MAIN_ROW_2_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=2/3, rely=3/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.segment_Label, text=SEGMENT_HELP) + + # Stem A + self.is_primary_stem_only_Demucs_Option = ttk.Checkbutton(master=self.options_Frame, textvariable=self.is_primary_stem_only_Demucs_Text_var, variable=self.is_primary_stem_only_Demucs_var, command=lambda:self.is_primary_stem_only_Demucs_Option_toggle()) + self.is_primary_stem_only_Demucs_Option_place = lambda:self.is_primary_stem_only_Demucs_Option.place(x=CHECK_BOX_X, y=CHECK_BOX_Y, width=CHECK_BOX_WIDTH, height=CHECK_BOX_HEIGHT, relx=1/3, rely=6/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.is_primary_stem_only_Demucs_Option_toggle = lambda:self.is_secondary_stem_only_Demucs_var.set(False) if self.is_primary_stem_only_Demucs_var.get() else self.is_secondary_stem_only_Demucs_Option.configure(state=tk.NORMAL) + self.help_hints(self.is_primary_stem_only_Demucs_Option, text=SAVE_STEM_ONLY_HELP) + + # Stem B + self.is_secondary_stem_only_Demucs_Option = ttk.Checkbutton(master=self.options_Frame, textvariable=self.is_secondary_stem_only_Demucs_Text_var, variable=self.is_secondary_stem_only_Demucs_var, command=lambda:self.is_secondary_stem_only_Demucs_Option_toggle()) + self.is_secondary_stem_only_Demucs_Option_place = lambda:self.is_secondary_stem_only_Demucs_Option.place(x=CHECK_BOX_X, y=CHECK_BOX_Y, width=CHECK_BOX_WIDTH, height=CHECK_BOX_HEIGHT, relx=1/3, rely=7/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.is_secondary_stem_only_Demucs_Option_toggle = lambda:self.is_primary_stem_only_Demucs_var.set(False) if self.is_secondary_stem_only_Demucs_var.get() else self.is_primary_stem_only_Demucs_Option.configure(state=tk.NORMAL) + self.is_stem_only_Demucs_Options_Enable = lambda:(self.is_primary_stem_only_Demucs_Option.configure(state=tk.NORMAL), self.is_secondary_stem_only_Demucs_Option.configure(state=tk.NORMAL)) + self.help_hints(self.is_secondary_stem_only_Demucs_Option, text=SAVE_STEM_ONLY_HELP) + + ### ENSEMBLE MODE ### + + # Ensemble Mode + self.chosen_ensemble_Label = self.main_window_LABEL_SET(self.options_Frame, ENSEMBLE_OPTIONS_MAIN_LABEL) + self.chosen_ensemble_Label_place = lambda:self.chosen_ensemble_Label.place(x=0, y=LOW_MENU_Y[0], width=LEFT_ROW_WIDTH, height=LABEL_HEIGHT, relx=0, rely=6/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.chosen_ensemble_Option = ComboBoxMenu(self.options_Frame, textvariable=self.chosen_ensemble_var, command=lambda e:self.selection_action_chosen_ensemble(self.chosen_ensemble_var.get())) + self.chosen_ensemble_Option_place = lambda:self.chosen_ensemble_Option.place(x=0, y=LOW_MENU_Y[1], width=LEFT_ROW_WIDTH, height=OPTION_HEIGHT, relx=0, rely=7/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.help_hints(self.chosen_ensemble_Label, text=CHOSEN_ENSEMBLE_HELP) + + # Ensemble Main Stems + self.ensemble_main_stem_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_MAIN_PAIR_MAIN_LABEL) + self.ensemble_main_stem_Label_place = lambda:self.ensemble_main_stem_Label.place(x=MAIN_ROW_X[0], y=MAIN_ROW_Y[0], width=0, height=LABEL_HEIGHT, relx=1/3, rely=2/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.ensemble_main_stem_Option = ComboBoxMenu(self.options_Frame, textvariable=self.ensemble_main_stem_var, values=ENSEMBLE_MAIN_STEM, command=lambda e: self.selection_action_ensemble_stems(self.ensemble_main_stem_var.get())) + self.ensemble_main_stem_Option_place = lambda:self.ensemble_main_stem_Option.place(x=MAIN_ROW_X[1], y=MAIN_ROW_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=3/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.help_hints(self.ensemble_main_stem_Label, text=ENSEMBLE_MAIN_STEM_HELP) + + # Ensemble Algorithm + self.ensemble_type_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_ENSEMBLE_ALGORITHM_MAIN_LABEL) + self.ensemble_type_Label_place = lambda:self.ensemble_type_Label.place(x=MAIN_ROW_2_X[0], y=MAIN_ROW_2_Y[0], width=0, height=LABEL_HEIGHT, relx=2/3, rely=2/11, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.ensemble_type_Option = ComboBoxMenu(self.options_Frame, textvariable=self.ensemble_type_var, values=ENSEMBLE_TYPE) + self.ensemble_type_Option_place = lambda:self.ensemble_type_Option.place(x=MAIN_ROW_2_X[1], y=MAIN_ROW_2_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT,relx=2/3, rely=3/11, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.help_hints(self.ensemble_type_Label, text=ENSEMBLE_TYPE_HELP) + + # Select Music Files Option + + # Ensemble Save Ensemble Outputs + self.ensemble_listbox_Label = self.main_window_LABEL_SET(self.options_Frame, AVAILABLE_MODELS_MAIN_LABEL) + self.ensemble_listbox_Label_place = lambda:self.ensemble_listbox_Label.place(x=MAIN_ROW_2_X[0], y=MAIN_ROW_2_Y[1], width=0, height=LABEL_HEIGHT, relx=2/3, rely=5/11, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.ensemble_listbox_Frame = tk.Frame(self.options_Frame, highlightbackground='#04332c', highlightcolor='#04332c', highlightthicknes=1) + self.ensemble_listbox_Option = tk.Listbox(self.ensemble_listbox_Frame, selectmode=tk.MULTIPLE, activestyle='dotbox', font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), background='#070708', exportselection=0, relief=tk.SOLID, borderwidth=0) + self.ensemble_listbox_scroll = ttk.Scrollbar(self.options_Frame, orient=tk.VERTICAL) + self.ensemble_listbox_Option.config(yscrollcommand=self.ensemble_listbox_scroll.set) + self.ensemble_listbox_scroll.configure(command=self.ensemble_listbox_Option.yview) + self.ensemble_listbox_Option_place = lambda: (self.ensemble_listbox_Frame.place(x=ENSEMBLE_LISTBOX_FRAME_X, y=ENSEMBLE_LISTBOX_FRAME_Y, width=ENSEMBLE_LISTBOX_FRAME_WIDTH, height=ENSEMBLE_LISTBOX_FRAME_HEIGHT, relx=2/3, rely=6/11, relwidth=1/3, relheight=1/self.COL1_ROWS), + self.ensemble_listbox_scroll.place(x=ENSEMBLE_LISTBOX_SCROLL_X, y=ENSEMBLE_LISTBOX_SCROLL_Y, width=ENSEMBLE_LISTBOX_SCROLL_WIDTH, height=ENSEMBLE_LISTBOX_SCROLL_HEIGHT, relx=2/3, rely=6/11, relwidth=1/10, relheight=1/self.COL1_ROWS)) + self.ensemble_listbox_Option_pack = lambda:self.ensemble_listbox_Option.pack(fill=tk.BOTH, expand=1) + self.help_hints(self.ensemble_listbox_Label, text=ENSEMBLE_LISTBOX_HELP) + + ### AUDIO TOOLS ### + + # Chosen Audio Tool + self.chosen_audio_tool_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_AUDIO_TOOLS_MAIN_LABEL) + self.chosen_audio_tool_Label_place = lambda:self.chosen_audio_tool_Label.place(x=0, y=LOW_MENU_Y[0], width=LEFT_ROW_WIDTH, height=LABEL_HEIGHT, relx=0, rely=6/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.chosen_audio_tool_Option = ComboBoxMenu(self.options_Frame, textvariable=self.chosen_audio_tool_var, values=AUDIO_TOOL_OPTIONS, command=lambda e: self.update_main_widget_states()) + self.chosen_audio_tool_Option_place = lambda:self.chosen_audio_tool_Option.place(x=0, y=LOW_MENU_Y[1], width=LEFT_ROW_WIDTH, height=OPTION_HEIGHT, relx=0, rely=7/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL1_ROWS) + self.help_hints(self.chosen_audio_tool_Label, text=AUDIO_TOOLS_HELP) + + # Choose Agorithim + self.choose_algorithm_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_MANUAL_ALGORITHM_MAIN_LABEL) + self.choose_algorithm_Label_place = lambda:self.choose_algorithm_Label.place(x=MAIN_ROW_X[0], y=MAIN_ROW_Y[0], width=0, height=LABEL_HEIGHT, relx=1/3, rely=2/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.choose_algorithm_Option = ComboBoxMenu(self.options_Frame, textvariable=self.choose_algorithm_var, values=MANUAL_ENSEMBLE_OPTIONS) + self.choose_algorithm_Option_place = lambda:self.choose_algorithm_Option.place(x=MAIN_ROW_X[1], y=MAIN_ROW_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=3/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + #self.help_hints(self.mdx_segment_size_Label, text=MDX_SEGMENT_SIZE_HELP) + + + # Time Stretch + self.time_stretch_rate_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_RATE_MAIN_LABEL) + self.time_stretch_rate_Label_place = lambda:self.time_stretch_rate_Label.place(x=MAIN_ROW_X[0], y=MAIN_ROW_Y[0], width=0, height=LABEL_HEIGHT, relx=1/3, rely=2/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.time_stretch_rate_Option = ComboBoxEditableMenu(self.options_Frame, values=TIME_PITCH, textvariable=self.time_stretch_rate_var, pattern=REG_TIME, default=TIME_PITCH)# + self.time_stretch_rate_Option_place = lambda:self.time_stretch_rate_Option.place(x=MAIN_ROW_X[1], y=MAIN_ROW_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=3/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + #self.help_hints(self.mdx_segment_size_Label, text=MDX_SEGMENT_SIZE_HELP) + + # Pitch Rate + self.pitch_rate_Label = self.main_window_LABEL_SET(self.options_Frame, CHOOSE_SEMITONES_MAIN_LABEL) + self.pitch_rate_Label_place = lambda:self.pitch_rate_Label.place(x=MAIN_ROW_X[0], y=MAIN_ROW_Y[0], width=0, height=LABEL_HEIGHT, relx=1/3, rely=2/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.pitch_rate_Option = ComboBoxEditableMenu(self.options_Frame, values=TIME_PITCH, textvariable=self.pitch_rate_var, pattern=REG_PITCH, default=TIME_PITCH)# + self.pitch_rate_Option_place = lambda:self.pitch_rate_Option.place(x=MAIN_ROW_X[1], y=MAIN_ROW_Y[1], width=MAIN_ROW_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=3/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + + # Is Time Correction + self.is_time_correction_Option = ttk.Checkbutton(master=self.options_Frame, text=TIME_CORRECTION_TEXT, variable=self.is_time_correction_var) + self.is_time_correction_Option_place = lambda:self.is_time_correction_Option.place(x=CHECK_BOX_X, y=CHECK_BOX_Y, width=CHECK_BOX_WIDTH, height=CHECK_BOX_HEIGHT, relx=1/3, rely=5/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.is_time_correction_Option, text=IS_TIME_CORRECTION_HELP) + + # Is Wav Ensemble + self.is_wav_ensemble_Option = ttk.Checkbutton(master=self.options_Frame, text=ENSEMBLE_WAVFORMS_TEXT, variable=self.is_wav_ensemble_var) + self.is_wav_ensemble_Option_place = lambda:self.is_wav_ensemble_Option.place(x=CHECK_BOX_X, y=CHECK_BOX_Y, width=CHECK_BOX_WIDTH, height=CHECK_BOX_HEIGHT, relx=1/3, rely=5/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.is_wav_ensemble_Option, text=IS_WAV_ENSEMBLE_HELP) + + ## ALIGN TOOL ## + + # Track 1 + self.fileOne_Label = self.main_window_LABEL_SUB_SET(self.options_Frame, self.file_one_sub_var) + self.fileOne_Label_place = lambda: self.fileOne_Label.place(x=FILEONE_LABEL_X, y=LABEL_Y, width=FILEONE_LABEL_WIDTH, height=LABEL_HEIGHT, relx=1/3, rely=2/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + + self.fileOne_Entry = ttk.Entry(master=self.options_Frame, textvariable=self.fileOneEntry_var, font=self.font_entry, state=tk.DISABLED) + self.fileOne_Entry_place = lambda: self.fileOne_Entry.place(x=SUB_ENT_ROW_X, y=ENTRY_Y, width=ENTRY_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=3/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.fileOne_Entry, text=INPUT_SEC_FIELDS_HELP) + self.fileOne_Entry.configure(cursor="hand2") + + self.fileOne_Open = ttk.Button(master=self.options_Frame, image=self.efile_img, command=lambda:OPEN_FILE_func(os.path.dirname(self.fileOneEntry_Full_var.get()))) + self.fileOne_Open_place = lambda:self.fileOne_Open.place(x=ENTRY_OPEN_BUTT_X_OFF, y=ENTRY_Y, width=ENTRY_OPEN_BUTT_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=3/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS)#OPEN_FILE_func(Path(self.export_path_var.get())) if os.path.isdir(self.export_path_var.get()) else self.error_dialoge(INVALID_EXPORT)) + self.help_hints(self.fileOne_Open, text=INPUT_FOLDER_BUTTON_HELP) + + # Track 2 + self.fileTwo_Label = self.main_window_LABEL_SUB_SET(self.options_Frame, self.file_two_sub_var) + self.fileTwo_Label_place = lambda: self.fileTwo_Label.place(x=FILETWO_LABEL_X, y=LABEL_Y, width=FILETWO_LABEL_WIDTH, height=LABEL_HEIGHT, relx=1/3, rely=4.5/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + + self.fileTwo_Entry = ttk.Entry(master=self.options_Frame, textvariable=self.fileTwoEntry_var, font=self.font_entry, state=tk.DISABLED) + self.fileTwo_Entry_place = lambda:self.fileTwo_Entry.place(x=SUB_ENT_ROW_X, y=ENTRY_Y, width=ENTRY_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=5.5/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.fileTwo_Entry, text=INPUT_SEC_FIELDS_HELP) + self.fileTwo_Entry.configure(cursor="hand2") + + self.fileTwo_Open = ttk.Button(master=self.options_Frame, image=self.efile_img, command=lambda:OPEN_FILE_func(os.path.dirname(self.fileTwoEntry_Full_var.get()))) + self.fileTwo_Open_place = lambda:self.fileTwo_Open.place(x=ENTRY_OPEN_BUTT_X_OFF, y=ENTRY_Y, width=ENTRY_OPEN_BUTT_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=5.5/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.fileTwo_Open, text=INPUT_FOLDER_BUTTON_HELP) + + # Time Window + self.time_window_Label = self.main_window_LABEL_SET(self.options_Frame, TIME_WINDOW_MAIN_LABEL) + self.time_window_Label_place = lambda: self.time_window_Label.place(x=TIME_WINDOW_LABEL_X, y=LABEL_Y, width=TIME_WINDOW_LABEL_WIDTH, height=LABEL_HEIGHT, relx=1/3, rely=7.37/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.time_window_Option = ComboBoxMenu(self.options_Frame, textvariable=self.time_window_var, values=tuple(TIME_WINDOW_MAPPER.keys())) + self.time_window_Option_place = lambda: self.time_window_Option.place(x=SUB_ENT_ROW_X, y=ENTRY_Y, width=OPTION_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=8.37/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.time_window_Label, text=TIME_WINDOW_ALIGN_HELP) + + # Align Shifts + self.intro_analysis_Label = self.main_window_LABEL_SET(self.options_Frame, INTRO_ANALYSIS_MAIN_LABEL) + self.intro_analysis_Label_place = lambda: self.intro_analysis_Label.place(x=INTRO_ANALYSIS_LABEL_X, y=LABEL_Y, width=INTRO_ANALYSIS_LABEL_WIDTH, height=LABEL_HEIGHT, relx=2/3, rely=7.37/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.intro_analysis_Option = ComboBoxMenu(self.options_Frame, textvariable=self.intro_analysis_var, values=tuple(INTRO_MAPPER.keys())) + self.intro_analysis_Option_place = lambda: self.intro_analysis_Option.place(x=INTRO_ANALYSIS_OPTION_X, y=ENTRY_Y, width=OPTION_WIDTH, height=OPTION_HEIGHT, relx=2/3, rely=8.37/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.intro_analysis_Label, text=INTRO_ANALYSIS_ALIGN_HELP) + + # Volume Adjustment + self.db_analysis_Label = self.main_window_LABEL_SET(self.options_Frame, VOLUME_ADJUSTMENT_MAIN_LABEL) + self.db_analysis_Label_place = lambda: self.db_analysis_Label.place(x=DB_ANALYSIS_LABEL_X, y=LABEL_Y, width=DB_ANALYSIS_LABEL_WIDTH, height=LABEL_HEIGHT, relx=2/3, rely=7.37/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.db_analysis_Option = ComboBoxMenu(self.options_Frame, textvariable=self.db_analysis_var, values=tuple(VOLUME_MAPPER.keys())) + self.db_analysis_Option_place = lambda: self.db_analysis_Option.place(x=DB_ANALYSIS_OPTION_X, y=ENTRY_Y, width=OPTION_WIDTH, height=OPTION_HEIGHT, relx=2/3, rely=8.37/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.db_analysis_Label, text=VOLUME_ANALYSIS_ALIGN_HELP) + + # Wav-Type + self.wav_type_set_Label = self.main_window_LABEL_SET(self.options_Frame, WAVE_TYPE_TEXT) + self.wav_type_set_Label_place = lambda: self.wav_type_set_Label.place(x=WAV_TYPE_SET_LABEL_X, y=LABEL_Y, width=WAV_TYPE_SET_LABEL_WIDTH, height=LABEL_HEIGHT, relx=1/3, rely=7.37/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.wav_type_set_Option = ComboBoxMenu(self.options_Frame, textvariable=self.wav_type_set_var, values=WAV_TYPE) + self.wav_type_set_Option_place = lambda: self.wav_type_set_Option.place(x=SUB_ENT_ROW_X, y=ENTRY_Y, width=OPTION_WIDTH, height=OPTION_HEIGHT, relx=1/3, rely=8.37/self.COL1_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + + ### SHARED SETTINGS ### + + # GPU Selection + self.is_gpu_conversion_Option = ttk.Checkbutton(master=self.options_Frame, text=GPU_CONVERSION_MAIN_LABEL, variable=self.is_gpu_conversion_var) + self.is_gpu_conversion_Option_place = lambda:self.is_gpu_conversion_Option.place(x=CHECK_BOX_X, y=CHECK_BOX_Y, width=CHECK_BOX_WIDTH, height=CHECK_BOX_HEIGHT, relx=1/3, rely=5/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.is_gpu_conversion_Disable = lambda:(self.is_gpu_conversion_Option.configure(state=tk.DISABLED), self.is_gpu_conversion_var.set(False)) + self.is_gpu_conversion_Enable = lambda:self.is_gpu_conversion_Option.configure(state=tk.NORMAL) + self.help_hints(self.is_gpu_conversion_Option, text=IS_GPU_CONVERSION_HELP) + + # Vocal Only + self.is_primary_stem_only_Option = ttk.Checkbutton(master=self.options_Frame, textvariable=self.is_primary_stem_only_Text_var, variable=self.is_primary_stem_only_var, command=lambda:self.is_primary_stem_only_Option_toggle()) + self.is_primary_stem_only_Option_place = lambda:self.is_primary_stem_only_Option.place(x=CHECK_BOX_X, y=CHECK_BOX_Y, width=CHECK_BOX_WIDTH, height=CHECK_BOX_HEIGHT, relx=1/3, rely=6/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.is_primary_stem_only_Option_toggle = lambda:self.is_secondary_stem_only_var.set(False) if self.is_primary_stem_only_var.get() else self.is_secondary_stem_only_Option.configure(state=tk.NORMAL) + self.help_hints(self.is_primary_stem_only_Option, text=SAVE_STEM_ONLY_HELP) + + # Instrumental Only + self.is_secondary_stem_only_Option = ttk.Checkbutton(master=self.options_Frame, textvariable=self.is_secondary_stem_only_Text_var, variable=self.is_secondary_stem_only_var, command=lambda:self.is_secondary_stem_only_Option_toggle()) + self.is_secondary_stem_only_Option_place = lambda:self.is_secondary_stem_only_Option.place(x=CHECK_BOX_X, y=CHECK_BOX_Y, width=CHECK_BOX_WIDTH, height=CHECK_BOX_HEIGHT, relx=1/3, rely=7/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.is_secondary_stem_only_Option_toggle = lambda:self.is_primary_stem_only_var.set(False) if self.is_secondary_stem_only_var.get() else self.is_primary_stem_only_Option.configure(state=tk.NORMAL) + self.is_stem_only_Options_Enable = lambda:(self.is_primary_stem_only_Option.configure(state=tk.NORMAL), self.is_secondary_stem_only_Option.configure(state=tk.NORMAL)) + self.help_hints(self.is_secondary_stem_only_Option, text=SAVE_STEM_ONLY_HELP) + + # Sample Mode + self.model_sample_mode_Option = ttk.Checkbutton(master=self.options_Frame, textvariable=self.model_sample_mode_duration_checkbox_var, variable=self.model_sample_mode_var)#f'Sample ({self.model_sample_mode_duration_var.get()} Seconds)' + self.model_sample_mode_Option_place = lambda rely=8:self.model_sample_mode_Option.place(x=CHECK_BOX_X, y=CHECK_BOX_Y, width=CHECK_BOX_WIDTH, height=CHECK_BOX_HEIGHT, relx=1/3, rely=rely/self.COL2_ROWS, relwidth=1/3, relheight=1/self.COL2_ROWS) + self.help_hints(self.model_sample_mode_Option, text=MODEL_SAMPLE_MODE_HELP) + + self.GUI_LIST = (self.vr_model_Label, + self.vr_model_Option, + self.aggression_setting_Label, + self.aggression_setting_Option, + self.window_size_Label, + self.window_size_Option, + self.demucs_model_Label, + self.demucs_model_Option, + self.demucs_stems_Label, + self.demucs_stems_Option, + self.segment_Label, + self.segment_Option, + self.mdx_net_model_Label, + self.mdx_net_model_Option, + self.overlap_mdx_Label, + self.overlap_mdx_Option, + self.overlap_mdx23_Option, + self.mdxnet_stems_Label, + self.mdxnet_stems_Option, + self.mdx_segment_size_Label, + self.mdx_segment_size_Option, + self.chosen_ensemble_Label, + self.chosen_ensemble_Option, + self.save_current_settings_Label, + self.save_current_settings_Option, + self.ensemble_main_stem_Label, + self.ensemble_main_stem_Option, + self.ensemble_type_Label, + self.ensemble_type_Option, + self.ensemble_listbox_Label, + self.ensemble_listbox_Frame, + self.ensemble_listbox_Option, + self.ensemble_listbox_scroll, + self.chosen_audio_tool_Label, + self.chosen_audio_tool_Option, + self.choose_algorithm_Label, + self.choose_algorithm_Option, + self.time_stretch_rate_Label, + self.time_stretch_rate_Option, + self.wav_type_set_Label, + self.wav_type_set_Option, + self.pitch_rate_Label, + self.pitch_rate_Option, + self.fileOne_Label, + self.fileOne_Entry, + self.fileOne_Open, + self.fileTwo_Label, + self.fileTwo_Entry, + self.fileTwo_Open, + self.intro_analysis_Label, + self.intro_analysis_Option, + self.time_window_Label, + self.time_window_Option, + self.db_analysis_Label, + self.db_analysis_Option, + self.is_gpu_conversion_Option, + self.is_primary_stem_only_Option, + self.is_secondary_stem_only_Option, + self.is_primary_stem_only_Demucs_Option, + self.is_secondary_stem_only_Demucs_Option, + self.model_sample_mode_Option, + self.is_time_correction_Option, + self.is_wav_ensemble_Option) + + REFRESH_VARS = (self.mdx_net_model_var, + self.vr_model_var, + self.demucs_model_var, + # self.demucs_stems_var, + # self.mdxnet_stems_var, + self.is_chunk_demucs_var, + self.is_chunk_mdxnet_var, + # self.is_primary_stem_only_Demucs_var, + # self.is_secondary_stem_only_Demucs_var, + # self.is_primary_stem_only_var, + # self.is_secondary_stem_only_var, + self.model_download_demucs_var, + self.model_download_mdx_var, + self.model_download_vr_var, + self.select_download_var, + # self.is_primary_stem_only_Demucs_Text_var, + # self.is_secondary_stem_only_Demucs_Text_var, + self.chosen_process_method_var, + self.ensemble_main_stem_var) + + # Change States + for var in REFRESH_VARS: + var.trace_add('write', lambda *args: self.update_button_states()) + + def combo_box_selection_clear(self, frame:tk.Frame): + for option in frame.winfo_children(): + if type(option) is ttk.Combobox or type(option) is ComboBoxEditableMenu: + option.selection_clear() + + def focus_out_widgets(self, all_widgets, frame): + for option in all_widgets: + if not type(option) is ComboBoxEditableMenu: + option.bind('', lambda e:(option.focus(), self.combo_box_selection_clear(frame))) + + def bind_widgets(self): + """Bind widgets to the drag & drop mechanic""" + + self.chosen_audio_tool_align = tk.BooleanVar(value=True) + other_items = [self.options_Frame, self.filePaths_Frame, self.title_Label, self.progressbar, self.conversion_Button, self.settings_Button, self.stop_Button, self.command_Text] + all_widgets = self.options_Frame.winfo_children() + self.filePaths_Frame.winfo_children() + other_items + self.focus_out_widgets(all_widgets, self.options_Frame) + + if is_dnd_compatible: + self.filePaths_saveTo_Button.drop_target_register(DND_FILES) + self.filePaths_saveTo_Entry.drop_target_register(DND_FILES) + self.drop_target_register(DND_FILES) + self.dnd_bind('<>', lambda e: drop(e, accept_mode='files')) + self.filePaths_saveTo_Button.dnd_bind('<>', lambda e: drop(e, accept_mode='folder')) + self.filePaths_saveTo_Entry.dnd_bind('<>', lambda e: drop(e, accept_mode='folder')) + + self.fileOne_Entry.drop_target_register(DND_FILES) + self.fileTwo_Entry.drop_target_register(DND_FILES) + self.fileOne_Entry.dnd_bind('<>', lambda e: drop(e, accept_mode=FILE_1)) + self.fileTwo_Entry.dnd_bind('<>', lambda e: drop(e, accept_mode=FILE_2)) + + self.ensemble_listbox_Option.bind('<>', lambda e: self.chosen_ensemble_var.set(CHOOSE_ENSEMBLE_OPTION)) + self.options_Frame.bind(right_click_button, lambda e:(self.right_click_menu_popup(e, main_menu=True), self.options_Frame.focus())) + self.filePaths_musicFile_Entry.bind(right_click_button, lambda e:(self.input_right_click_menu(e), self.filePaths_musicFile_Entry.focus())) + self.filePaths_musicFile_Entry.bind('', lambda e:(self.check_is_menu_open(INPUTS_MENU), self.filePaths_musicFile_Entry.focus())) + + self.fileOne_Entry.bind('', lambda e:self.menu_batch_dual()) + self.fileTwo_Entry.bind('', lambda e:self.menu_batch_dual()) + self.fileOne_Entry.bind(right_click_button, lambda e:self.input_dual_right_click_menu(e, is_primary=True)) + self.fileTwo_Entry.bind(right_click_button, lambda e:self.input_dual_right_click_menu(e, is_primary=False)) + if not is_macos: + self.bind("", self.adjust_toplevel_positions) + + def auto_save(self): + try: + self.save_values(app_close=False, is_auto_save=True) + except Exception as e: + print(e) + + #--Input/Export Methods-- + + def linux_filebox_fix(self, is_on=True): + fg_color_set = '#575757' if is_on else "#F6F6F7" + style = ttk.Style(self) + style.configure('TButton', foreground='#F6F6F7') + style.configure('TCheckbutton', foreground='#F6F6F7') + style.configure('TCombobox', foreground='#F6F6F7') + style.configure('TEntry', foreground='#F6F6F7') + style.configure('TLabel', foreground='#F6F6F7') + style.configure('TMenubutton', foreground='#F6F6F7') + style.configure('TRadiobutton', foreground='#F6F6F7') + gui_data.sv_ttk.set_theme("dark", MAIN_FONT_NAME, 10, fg_color_set=fg_color_set) + + def show_file_dialog(self, text='Select Audio files', dialoge_type=None): + parent_win = root + is_linux = not is_windows and not is_macos + + if is_linux: + self.linux_filebox_fix() + top = tk.Toplevel(root) + top.withdraw() + top.protocol("WM_DELETE_WINDOW", lambda: None) + parent_win = top + + if dialoge_type == MULTIPLE_FILE: + filenames = filedialog.askopenfilenames(parent=parent_win, + title=text) + elif dialoge_type == MAIN_MULTIPLE_FILE: + filenames = filedialog.askopenfilenames(parent=parent_win, + title=text, + initialfile='', + initialdir=self.lastDir) + elif dialoge_type == SINGLE_FILE: + filenames = filedialog.askopenfilename(parent=parent_win, + title=text) + elif dialoge_type == CHOOSE_EXPORT_FIR: + filenames = filedialog.askdirectory( + parent=parent_win, + title=f'Select Folder',) + + if is_linux: + print("Is Linux") + self.linux_filebox_fix(False) + top.destroy() + + return filenames + + def input_select_filedialog(self): + """Make user select music files""" + + if self.lastDir is not None: + if not os.path.isdir(self.lastDir): + self.lastDir = None + + paths = self.show_file_dialog(dialoge_type=MAIN_MULTIPLE_FILE) + + if paths: # Path selected + self.inputPaths = paths + + self.process_input_selections() + self.update_inputPaths() + + def export_select_filedialog(self): + """Make user select a folder to export the converted files in""" + + export_path = None + + path = self.show_file_dialog(dialoge_type=CHOOSE_EXPORT_FIR) + + if path: # Path selected + self.export_path_var.set(path) + export_path = self.export_path_var.get() + + return export_path + + def update_inputPaths(self): + """Update the music file entry""" + + if self.inputPaths: + if len(self.inputPaths) == 1: + text = self.inputPaths[0] + else: + count = len(self.inputPaths) - 1 + file_text = 'file' if len(self.inputPaths) == 2 else 'files' + text = f"{self.inputPaths[0]}, +{count} {file_text}" + else: + # Empty Selection + text = '' + + self.inputPathsEntry_var.set(text) + + def select_audiofile(self, path=None, is_primary=True): + """Make user select music files""" + + vars = { + True: (self.fileOneEntry_Full_var, self.fileOneEntry_var, self.fileTwoEntry_Full_var, self.fileTwoEntry_var), + False: (self.fileTwoEntry_Full_var, self.fileTwoEntry_var, self.fileOneEntry_Full_var, self.fileOneEntry_var) + } + + file_path_var, file_basename_var, file_path_2_var, file_basename_2_var = vars[is_primary] + + if not path: + path = self.show_file_dialog(text='Select Audio file', dialoge_type=SINGLE_FILE) + + if path: # Path selected + file_path_var.set(path) + file_basename_var.set(os.path.basename(path)) + + if BATCH_MODE_DUAL in file_path_2_var.get(): + file_path_2_var.set("") + file_basename_2_var.set("") + + self.DualBatch_inputPaths = [] + self.check_dual_paths() + + #--Utility Methods-- + + def restart(self): + """Restart the application after asking for confirmation""" + + confirm = messagebox.askyesno(parent=root, + title=CONFIRM_RESTART_TEXT[0], + message=CONFIRM_RESTART_TEXT[1]) + + if confirm: + self.save_values(app_close=True, is_restart=True) + + def delete_temps(self, is_start_up=False): + """Deletes temp files""" + + DIRECTORIES = (BASE_PATH, VR_MODELS_DIR, MDX_MODELS_DIR, DEMUCS_MODELS_DIR, DEMUCS_NEWER_REPO_DIR) + EXTENSIONS = (('.aes', '.txt', '.tmp')) + + try: + if os.path.isfile(f"{current_patch}{application_extension}"): + os.remove(f"{current_patch}{application_extension}") + + if not is_start_up: + if os.path.isfile(SPLASH_DOC): + os.remove(SPLASH_DOC) + + for dir in DIRECTORIES: + for temp_file in os.listdir(dir): + if temp_file.endswith(EXTENSIONS): + if os.path.isfile(os.path.join(dir, temp_file)): + os.remove(os.path.join(dir, temp_file)) + except Exception as e: + self.error_log_var.set(error_text(TEMP_FILE_DELETION_TEXT, e)) + + def get_files_from_dir(self, directory, ext, is_mdxnet=False): + """Gets files from specified directory that ends with specified extention""" + + return tuple( + x if is_mdxnet and x.endswith(CKPT) else os.path.splitext(x)[0] + for x in os.listdir(directory) + if x.endswith(ext) + ) + + def return_ensemble_stems(self, is_primary=False): + """Grabs and returns the chosen ensemble stems.""" + + ensemble_stem = self.ensemble_main_stem_var.get().partition("/") + + if is_primary: + return ensemble_stem[0] + else: + return ensemble_stem[0], ensemble_stem[2] + + def message_box(self, message): + """Template for confirmation box""" + + confirm = messagebox.askyesno(title=message[0], + message=message[1], + parent=root) + + return confirm + + def error_dialoge(self, message): + """Template for messagebox that informs user of error""" + + messagebox.showerror(master=self, + title=message[0], + message=message[1], + parent=root) + + def model_list(self, primary_stem: str, secondary_stem: str, is_4_stem_check=False, is_multi_stem=False, is_dry_check=False, is_no_demucs=False, is_check_vocal_split=False): + + stem_check = self.assemble_model_data(arch_type=ENSEMBLE_STEM_CHECK, is_dry_check=is_dry_check) + + def matches_stem(model: ModelData): + primary_match = model.primary_stem in {primary_stem, secondary_stem} + mdx_stem_match = primary_stem in model.mdx_model_stems and model.mdx_stem_count <= 2 + return primary_match or mdx_stem_match if is_no_demucs else primary_match or primary_stem in model.mdx_model_stems + + result = [] + + for model in stem_check: + if is_multi_stem: + result.append(model.model_and_process_tag) + elif is_4_stem_check and (model.demucs_stem_count == 4 or model.mdx_stem_count == 4): + result.append(model.model_and_process_tag) + elif matches_stem(model) or (not is_no_demucs and primary_stem.lower() in model.demucs_source_list): + if is_check_vocal_split: + model_name = None if model.is_karaoke or not model.vocal_split_model else model.model_basename + else: + model_name = model.model_and_process_tag + + result.append(model_name) + + return result + + def help_hints(self, widget, text): + toolTip = ToolTip(widget) + def enter(event): + if self.help_hints_var.get(): + toolTip.showtip(text) + def leave(event): + toolTip.hidetip() + widget.bind('', enter) + widget.bind('', leave) + widget.bind(right_click_button, lambda e:copy_help_hint(e)) + + def copy_help_hint(event): + if self.help_hints_var.get(): + right_click_menu = tk.Menu(self, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=0) + right_click_menu.add_command(label='Copy Help Hint Text', command=right_click_menu_copy_hint) + + try: + right_click_menu.tk_popup(event.x_root,event.y_root) + right_click_release_linux(right_click_menu) + finally: + right_click_menu.grab_release() + else: + if widget.winfo_toplevel() == root: + self.right_click_menu_popup(event, main_menu=True) + + def right_click_menu_copy_hint(): + pyperclip.copy(text) + + def check_is_menu_open(self, menu): + try: + menu_mapping = { + VR_OPTION: (self.is_open_menu_advanced_vr_options, self.menu_advanced_vr_options, self.menu_advanced_vr_options_close_window), + DEMUCS_OPTION: (self.is_open_menu_advanced_demucs_options, self.menu_advanced_demucs_options, self.menu_advanced_demucs_options_close_window), + MDX_OPTION: (self.is_open_menu_advanced_mdx_options, self.menu_advanced_mdx_options, self.menu_advanced_mdx_options_close_window), + ENSEMBLE_OPTION: (self.is_open_menu_advanced_ensemble_options, self.menu_advanced_ensemble_options, self.menu_advanced_ensemble_options_close_window), + HELP_OPTION: (self.is_open_menu_help, self.menu_help, self.menu_help_close_window), + ERROR_OPTION: (self.is_open_menu_error_log, self.menu_error_log, self.menu_error_log_close_window), + INPUTS_MENU: (self.is_open_menu_view_inputs, self.menu_view_inputs, self.menu_view_inputs_close_window), + ALIGNMENT_TOOL: (self.is_open_menu_advanced_align_options, self.menu_advanced_align_options, self.menu_advanced_align_options_close_window) + } + + is_open, open_method, close_method = menu_mapping.get(menu, (None, None, None)) + if is_open and is_open.get(): + close_method() + open_method() + except Exception as e: + self.error_log_var.set("{}".format(error_text(menu, e))) + + def input_right_click_menu(self, event): + + right_click_menu = tk.Menu(self, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=0) + right_click_menu.add_command(label='See All Inputs', command=lambda:self.check_is_menu_open(INPUTS_MENU)) + + try: + right_click_menu.tk_popup(event.x_root,event.y_root) + right_click_release_linux(right_click_menu) + finally: + right_click_menu.grab_release() + + def input_dual_right_click_menu(self, event, is_primary:bool): + input_path = self.fileOneEntry_Full_var.get() if is_primary else self.fileTwoEntry_Full_var.get() + right_click_menu = tk.Menu(self, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=0) + right_click_menu.add_command(label=CHOOSE_INPUT_TEXT, command=lambda:self.select_audiofile(is_primary=is_primary)) + if input_path and os.path.isdir(os.path.dirname(input_path)): + right_click_menu.add_command(label=OPEN_INPUT_DIR_TEXT, command=lambda:OPEN_FILE_func(os.path.dirname(input_path))) + right_click_menu.add_command(label=BATCH_PROCESS_MENU_TEXT, command=self.menu_batch_dual) + + try: + right_click_menu.tk_popup(event.x_root,event.y_root) + right_click_release_linux(right_click_menu) + finally: + right_click_menu.grab_release() + + def cached_sources_clear(self): + + self.vr_cache_source_mapper = {} + self.mdx_cache_source_mapper = {} + self.demucs_cache_source_mapper = {} + + def cached_source_callback(self, process_method, model_name=None): + + model, sources = None, None + + if process_method == VR_ARCH_TYPE: + mapper = self.vr_cache_source_mapper + if process_method == MDX_ARCH_TYPE: + mapper = self.mdx_cache_source_mapper + if process_method == DEMUCS_ARCH_TYPE: + mapper = self.demucs_cache_source_mapper + + for key, value in mapper.items(): + if model_name in key: + model = key + sources = value + + return model, sources + + def cached_model_source_holder(self, process_method, sources, model_name=None): + + if process_method == VR_ARCH_TYPE: + self.vr_cache_source_mapper = {**self.vr_cache_source_mapper, **{model_name: sources}} + if process_method == MDX_ARCH_TYPE: + self.mdx_cache_source_mapper = {**self.mdx_cache_source_mapper, **{model_name: sources}} + if process_method == DEMUCS_ARCH_TYPE: + self.demucs_cache_source_mapper = {**self.demucs_cache_source_mapper, **{model_name: sources}} + + def cached_source_model_list_check(self, model_list: List[ModelData]): + + model: ModelData + primary_model_names = lambda process_method:[model.model_basename if model.process_method == process_method else None for model in model_list] + secondary_model_names = lambda process_method:[model.secondary_model.model_basename if model.is_secondary_model_activated and model.process_method == process_method else None for model in model_list] + + self.vr_primary_model_names = primary_model_names(VR_ARCH_TYPE) + self.mdx_primary_model_names = primary_model_names(MDX_ARCH_TYPE) + self.demucs_primary_model_names = primary_model_names(DEMUCS_ARCH_TYPE) + self.vr_secondary_model_names = secondary_model_names(VR_ARCH_TYPE) + self.mdx_secondary_model_names = secondary_model_names(MDX_ARCH_TYPE) + self.demucs_secondary_model_names = [model.secondary_model.model_basename if model.is_secondary_model_activated and model.process_method == DEMUCS_ARCH_TYPE and not model.secondary_model is None else None for model in model_list] + self.demucs_pre_proc_model_name = [model.pre_proc_model.model_basename if model.pre_proc_model else None for model in model_list]#list(dict.fromkeys()) + + for model in model_list: + if model.process_method == DEMUCS_ARCH_TYPE and model.is_demucs_4_stem_secondaries: + if not model.is_4_stem_ensemble: + self.demucs_secondary_model_names = model.secondary_model_4_stem_model_names_list + break + else: + for i in model.secondary_model_4_stem_model_names_list: + self.demucs_secondary_model_names.append(i) + + self.all_models = self.vr_primary_model_names + self.mdx_primary_model_names + self.demucs_primary_model_names + self.vr_secondary_model_names + self.mdx_secondary_model_names + self.demucs_secondary_model_names + self.demucs_pre_proc_model_name + + def verify_audio(self, audio_file, is_process=True, sample_path=None): + is_good = False + error_data = '' + + if not type(audio_file) is tuple: + audio_file = [audio_file] + + for i in audio_file: + if os.path.isfile(i): + try: + librosa.load(i, duration=3, mono=False, sr=44100) if not type(sample_path) is str else self.create_sample(i, sample_path) + is_good = True + except Exception as e: + error_name = f'{type(e).__name__}' + traceback_text = ''.join(traceback.format_tb(e.__traceback__)) + message = f'{error_name}: "{e}"\n{traceback_text}"' + if is_process: + audio_base_name = os.path.basename(i) + self.error_log_var.set(f'{ERROR_LOADING_FILE_TEXT[0]}:\n\n\"{audio_base_name}\"\n\n{ERROR_LOADING_FILE_TEXT[1]}:\n\n{message}') + else: + error_data = AUDIO_VERIFICATION_CHECK(i, message) + + if is_process: + return is_good + else: + return is_good, error_data + + def create_sample(self, audio_file, sample_path=SAMPLE_CLIP_PATH): + try: + with audioread.audio_open(audio_file) as f: + track_length = int(f.duration) + except Exception as e: + print('Audioread failed to get duration. Trying Librosa...') + y, sr = librosa.load(audio_file, mono=False, sr=44100) + track_length = int(librosa.get_duration(y=y, sr=sr)) + + clip_duration = int(self.model_sample_mode_duration_var.get()) + + if track_length >= clip_duration: + offset_cut = track_length//3 + off_cut = offset_cut + track_length + if not off_cut >= clip_duration: + offset_cut = 0 + name_apped = f'{clip_duration}_second_' + else: + offset_cut, clip_duration = 0, track_length + name_apped = '' + + sample = librosa.load(audio_file, offset=offset_cut, duration=clip_duration, mono=False, sr=44100)[0].T + audio_sample = os.path.join(sample_path, f'{os.path.splitext(os.path.basename(audio_file))[0]}_{name_apped}sample.wav') + sf.write(audio_sample, sample, 44100) + + return audio_sample + + #--Right Click Menu Pop-Ups-- + + def right_click_select_settings_sub(self, parent_menu, process_method): + saved_settings_sub_menu = tk.Menu(parent_menu, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=False) + settings_options = self.last_found_settings + tuple(SAVE_SET_OPTIONS) + + for settings_options in settings_options: + settings_options = settings_options.replace("_", " ") + saved_settings_sub_menu.add_command(label=settings_options, command=lambda o=settings_options:self.selection_action_saved_settings(o, process_method=process_method)) + + saved_settings_sub_menu.insert_separator(len(self.last_found_settings)) + + return saved_settings_sub_menu + + def right_click_menu_popup(self, event, text_box=False, main_menu=False): + + def add_text_edit_options(menu): + """Add options related to text editing.""" + menu.add_command(label='Copy', command=self.right_click_menu_copy) + menu.add_command(label='Paste', command=lambda: self.right_click_menu_paste(text_box=text_box)) + menu.add_command(label='Delete', command=lambda: self.right_click_menu_delete(text_box=text_box)) + + def add_advanced_settings_options(menu, settings_mapper, var_mapper): + """Add advanced settings options to the menu.""" + current_method = self.chosen_process_method_var.get() + + if current_method in settings_mapper and (var_mapper[current_method] or (current_method == DEMUCS_ARCH_TYPE and self.is_demucs_pre_proc_model_activate_var.get())): + menu.add_cascade(label='Select Saved Settings', menu=saved_settings_sub_load_for_menu) + menu.add_separator() + for method, option in settings_mapper.items(): + if method != ENSEMBLE_MODE or current_method == ENSEMBLE_MODE: + menu.add_command(label=f'Advanced {method} Settings', command=option) + elif current_method in settings_mapper: + menu.add_command(label=f'Advanced {current_method} Settings', command=settings_mapper[current_method]) + + # Create the right-click menu + right_click_menu = tk.Menu(self, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=0) + + # Mappings + settings_mapper = { + ENSEMBLE_MODE: lambda: self.check_is_menu_open(ENSEMBLE_OPTION), + VR_ARCH_PM: lambda: self.check_is_menu_open(VR_OPTION), + MDX_ARCH_TYPE: lambda: self.check_is_menu_open(MDX_OPTION), + DEMUCS_ARCH_TYPE: lambda: self.check_is_menu_open(DEMUCS_OPTION) + } + + var_mapper = { + ENSEMBLE_MODE: True, + VR_ARCH_PM: self.vr_is_secondary_model_activate_var.get(), + MDX_ARCH_TYPE: self.mdx_is_secondary_model_activate_var.get(), + DEMUCS_ARCH_TYPE: self.demucs_is_secondary_model_activate_var.get() + } + + # Submenu for saved settings + saved_settings_sub_load_for_menu = tk.Menu(right_click_menu, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=False) + for label, arch_type in [(VR_ARCH_SETTING_LOAD, VR_ARCH_PM), (MDX_SETTING_LOAD, MDX_ARCH_TYPE), (DEMUCS_SETTING_LOAD, DEMUCS_ARCH_TYPE), (ALL_ARCH_SETTING_LOAD, None)]: + submenu = self.right_click_select_settings_sub(saved_settings_sub_load_for_menu, arch_type) + saved_settings_sub_load_for_menu.add_cascade(label=label, menu=submenu) + + if not main_menu: + add_text_edit_options(right_click_menu) + else: + if self.chosen_process_method_var.get() == AUDIO_TOOLS and self.chosen_audio_tool_var.get() == ALIGN_INPUTS: + right_click_menu.add_command(label='Advanced Align Tool Settings', command=lambda: self.check_is_menu_open(ALIGNMENT_TOOL)) + else: + add_advanced_settings_options(right_click_menu, settings_mapper, var_mapper) + + # Additional Settings and Help Hints + if not self.is_menu_settings_open: + right_click_menu.add_command(label='Additional Settings', command=lambda: self.menu_settings(select_tab_2=True)) + + help_hints_label = 'Enable' if not self.help_hints_var.get() else 'Disable' + right_click_menu.add_command(label=f'{help_hints_label} Help Hints', command=lambda: self.help_hints_var.set(not self.help_hints_var.get())) + + if self.error_log_var.get(): + right_click_menu.add_command(label='Error Log', command=lambda: self.check_is_menu_open(ERROR_OPTION)) + + try: + right_click_menu.tk_popup(event.x_root, event.y_root) + right_click_release_linux(right_click_menu) + finally: + right_click_menu.grab_release() + + def right_click_menu_copy(self): + hightlighted_text = self.current_text_box.selection_get() + self.clipboard_clear() + self.clipboard_append(hightlighted_text) + + def right_click_menu_paste(self, text_box=False): + clipboard = self.clipboard_get() + self.right_click_menu_delete(text_box=True) if text_box else self.right_click_menu_delete() + self.current_text_box.insert(self.current_text_box.index(tk.INSERT), clipboard) + + def right_click_menu_delete(self, text_box=False): + if text_box: + try: + s0 = self.current_text_box.index("sel.first") + s1 = self.current_text_box.index("sel.last") + self.current_text_box.tag_configure('highlight') + self.current_text_box.tag_add("highlight", s0, s1) + start_indexes = self.current_text_box.tag_ranges("highlight")[0::2] + end_indexes = self.current_text_box.tag_ranges("highlight")[1::2] + + for start, end in zip(start_indexes, end_indexes): + self.current_text_box.tag_remove("highlight", start, end) + + for start, end in zip(start_indexes, end_indexes): + self.current_text_box.delete(start, end) + except Exception as e: + print('RIGHT-CLICK-DELETE ERROR: \n', e) + else: + self.current_text_box.delete(0, tk.END) + + def right_click_console(self, event): + right_click_menu = tk.Menu(self, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=0) + right_click_menu.add_command(label='Copy', command=self.command_Text.copy_text) + right_click_menu.add_command(label='Select All', command=self.command_Text.select_all_text) + + try: + right_click_menu.tk_popup(event.x_root,event.y_root) + right_click_release_linux(right_click_menu) + finally: + right_click_menu.grab_release() + + #--Secondary Window Methods-- + + def vocal_splitter_Button_opt(self, top_window, frame, pady, width=15): + vocal_splitter_Button = ttk.Button(frame, text=VOCAL_SPLITTER_OPTIONS_TEXT, command=lambda:self.pop_up_set_vocal_splitter(top_window), width=width)# + vocal_splitter_Button.grid(pady=pady) + + def adjust_toplevel_positions(self, event): + # Copy the list to avoid modifying while iterating + for toplevel in self.toplevels.copy(): + # Check if the toplevel window is still alive + if not toplevel.winfo_exists(): + self.toplevels.remove(toplevel) + else: + menu_offset_x = (root.winfo_width() - toplevel.winfo_width()) // 2 + menu_offset_y = (root.winfo_height() - toplevel.winfo_height()) // 2 + toplevel.geometry("+%d+%d" % (root.winfo_x() + menu_offset_x, root.winfo_y() + menu_offset_y)) + + def menu_placement(self, window: tk.Toplevel, title, pop_up=False, is_help_hints=False, close_function=None, frame_list=None, top_window=None): + """Prepares and centers each secondary window relative to the main window""" + + top_window = top_window if top_window else root + window.withdraw() + window.resizable(False, False) + window.wm_transient(top_window) + window.title(title) + window.iconbitmap(ICON_IMG_PATH) if is_windows else self.tk.call('wm', 'iconphoto', window._w, tk.PhotoImage(file=MAIN_ICON_IMG_PATH)) + + root_location_x = root.winfo_x() + root_location_y = root.winfo_y() + root_x = root.winfo_width() + root_y = root.winfo_height() + window.update() if is_windows else window.update_idletasks() + sub_menu_x = window.winfo_reqwidth() + sub_menu_y = window.winfo_reqheight() + menu_offset_x = (root_x - sub_menu_x) // 2 + menu_offset_y = (root_y - sub_menu_y) // 2 + window.geometry("+%d+%d" %(root_location_x+menu_offset_x, root_location_y+menu_offset_y)) + + window.deiconify() + window.configure(bg=BG_COLOR) + + if not is_macos: + self.toplevels.append(window) + + def right_click_menu(event): + help_hints_label = 'Enable' if self.help_hints_var.get() == False else 'Disable' + help_hints_bool = True if self.help_hints_var.get() == False else False + right_click_menu = tk.Menu(self, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=0) + if is_help_hints: + right_click_menu.add_command(label=f'{help_hints_label} Help Hints', command=lambda:self.help_hints_var.set(help_hints_bool)) + right_click_menu.add_command(label='Exit Window', command=close_function) + + try: + right_click_menu.tk_popup(event.x_root,event.y_root) + right_click_release_linux(right_click_menu, window) + finally: + right_click_menu.grab_release() + + if close_function: + window.bind(right_click_button, lambda e:right_click_menu(e)) + + if frame_list: + for frame in frame_list: + #self.adjust_widget_widths(frame) + self.focus_out_widgets(frame.winfo_children() + [frame], frame) + + if pop_up: + window.attributes('-topmost', 'true') if OPERATING_SYSTEM == "Linux" else None + window.grab_set() + root.wait_window(window) + + def adjust_widget_widths(self, frame): + + def resize_widget(widgets): + max_width = max(wid.winfo_width() for wid in widgets) + for wid in widgets: + if isinstance(wid, (tk.Button, ttk.Combobox)): + # For widgets where width represents characters, not pixels + wid.configure(width=int(max_width / wid.winfo_pixels('1c'))) + else: + # For widgets where width represents pixels + wid.configure(width=max_width) + + resize_widget([widget for widget in frame.winfo_children() if isinstance(widget, tk.Button)]) + resize_widget([widget for widget in frame.winfo_children() if isinstance(widget, ttk.Combobox)]) + + def menu_move_tab(notebook: ttk.Notebook, tab_text, new_position): + # Get the tab ID + tab_id = None + for tab in notebook.tabs(): + if notebook.tab(tab, "text") == tab_text: + tab_id = tab + break + + if tab_id is None: + print(f"No tab named '{tab_text}'") + return + + # remove the tab + notebook.forget(tab_id) + + # add it back in new position + notebook.insert(new_position, tab_id) + + def menu_tab_control(self, toplevel, ai_network_vars, is_demucs=False, is_mdxnet=False): + """Prepares the tabs setup for some windows""" + + tabControl = ttk.Notebook(toplevel) + + tab1 = ttk.Frame(tabControl) + tab2 = ttk.Frame(tabControl) + + tabControl.add(tab1, text=SETTINGS_GUIDE_TEXT) + tabControl.add(tab2, text=SECONDARY_MODEL_TEXT) + + tab1.grid_rowconfigure(0, weight=1) + tab1.grid_columnconfigure(0, weight=1) + + tab2.grid_rowconfigure(0, weight=1) + tab2.grid_columnconfigure(0, weight=1) + + if is_demucs or is_mdxnet: + tab3 = ttk.Frame(tabControl) + tabControl.add(tab3, text=PREPROCESS_MODEL_CHOOSE_TEXT if is_demucs else MDX23C_ONLY_OPTIONS_TEXT) + tab3.grid_rowconfigure(0, weight=1) + tab3.grid_columnconfigure(0, weight=1) + + tabControl.pack(expand=1, fill=tk.BOTH) + + self.tab2_loaded = False + self.tab3_loaded = False + + def on_tab_selected(event): + # Check if it's tab2 (by tab id or tab title) and if it hasn't been loaded before + load_screen = False + if event.widget.tab('current', option='text') == 'Secondary Model' and not self.tab2_loaded: + tab = tab2 + self.tab2_loaded = True + tab_load = lambda:self.menu_secondary_model(tab, ai_network_vars) + load_screen = True + elif event.widget.tab('current', option='text') == PREPROCESS_MODEL_CHOOSE_TEXT and not self.tab3_loaded: + tab = tab3 + self.tab3_loaded = True + tab_load = lambda:self.menu_preproc_model(tab) + load_screen = True + + if load_screen: + # Step 1: Add "Loading..." label + loading_label = ttk.Label(tab, text="Updating model lists...", font=Font(family=MAIN_FONT_NAME, size=14)) + loading_label.place(relx=0.5, rely=0.5, anchor=tk.CENTER) # Assuming you want to center it + + # Step 2: Update the UI to show the label + tab.update_idletasks() + + # Load the content + tab_load() + + # Step 3: Remove or update the "Loading..." label + loading_label.destroy() # Remove the label. Or you can update its text if desired. + + #self.on_tab_changed(tabControl) + + tabControl.bind("<>", on_tab_selected) + + if is_demucs or is_mdxnet: + return tab1, tab3 + else: + return tab1 + + def menu_view_inputs(self): + + menu_view_inputs_top = tk.Toplevel(root) + + self.is_open_menu_view_inputs.set(True) + self.menu_view_inputs_close_window = lambda:close_window() + menu_view_inputs_top.protocol("WM_DELETE_WINDOW", self.menu_view_inputs_close_window) + + input_length_var = tk.StringVar(value='') + input_info_text_var = tk.StringVar(value='') + is_widen_box_var = tk.BooleanVar(value=False) + is_play_file_var = tk.BooleanVar(value=False) + varification_text_var = tk.StringVar(value=VERIFY_INPUTS_TEXT) + + reset_list = lambda:(input_files_listbox_Option.delete(0, 'end'), [input_files_listbox_Option.insert(tk.END, inputs) for inputs in self.inputPaths]) + audio_input_total = lambda:input_length_var.set(f'{AUDIO_INPUT_TOTAL_TEXT}: {len(self.inputPaths)}') + audio_input_total() + + def list_diff(list1, list2): return list(set(list1).symmetric_difference(set(list2))) + + def list_to_string(list1): return '\n'.join(''.join(sub) for sub in list1) + + def close_window(): + self.verification_thread.kill() if self.thread_check(self.verification_thread) else None + self.is_open_menu_view_inputs.set(False) + menu_view_inputs_top.destroy() + + def drag_n_drop(e): + input_info_text_var.set('') + drop(e, accept_mode='files') + reset_list() + audio_input_total() + + def selected_files(is_remove=False): + if not self.thread_check(self.active_processing_thread): + items_list = [input_files_listbox_Option.get(i) for i in input_files_listbox_Option.curselection()] + inputPaths = list(self.inputPaths)# if is_remove else items_list + if is_remove: + [inputPaths.remove(i) for i in items_list if items_list] + else: + [inputPaths.remove(i) for i in self.inputPaths if i not in items_list] + removed_files = list_diff(self.inputPaths, inputPaths) + [input_files_listbox_Option.delete(input_files_listbox_Option.get(0, tk.END).index(i)) for i in removed_files] + starting_len = len(self.inputPaths) + self.inputPaths = tuple(inputPaths) + self.update_inputPaths() + audio_input_total() + input_info_text_var.set(f'{starting_len - len(self.inputPaths)} input(s) removed.') + else: + input_info_text_var.set('You cannot remove inputs during an active process.') + + def box_size(): + input_info_text_var.set('') + input_files_listbox_Option.config(width=230, height=25) if is_widen_box_var.get() else input_files_listbox_Option.config(width=110, height=17) + self.menu_placement(menu_view_inputs_top, 'Selected Inputs', pop_up=True) + + def input_options(is_select_inputs=True): + input_info_text_var.set('') + if is_select_inputs: + self.input_select_filedialog() + else: + self.inputPaths = () + reset_list() + self.update_inputPaths() + audio_input_total() + + def pop_open_file_path(is_play_file=False): + if self.inputPaths: + track_selected = self.inputPaths[input_files_listbox_Option.index(tk.ACTIVE)] + if os.path.isfile(track_selected): + OPEN_FILE_func(track_selected if is_play_file else os.path.dirname(track_selected)) + + def get_export_dir(): + if os.path.isdir(self.export_path_var.get()): + export_dir = self.export_path_var.get() + else: + export_dir = self.export_select_filedialog() + + return export_dir + + def verify_audio(is_create_samples=False): + inputPaths = list(self.inputPaths) + iterated_list = self.inputPaths if not is_create_samples else [input_files_listbox_Option.get(i) for i in input_files_listbox_Option.curselection()] + removed_files = [] + export_dir = None + total_audio_count, current_file = len(iterated_list), 0 + if iterated_list: + for i in iterated_list: + current_file += 1 + input_info_text_var.set(f'{SAMPLE_BEGIN if is_create_samples else VERIFY_BEGIN}{current_file}/{total_audio_count}') + if is_create_samples: + export_dir = get_export_dir() + if not export_dir: + input_info_text_var.set(f'No export directory selected.') + return + is_good, error_data = self.verify_audio(i, is_process=False, sample_path=export_dir) + if not is_good: + inputPaths.remove(i) + removed_files.append(error_data)#sample = self.create_sample(i) + + varification_text_var.set(VERIFY_INPUTS_TEXT) + input_files_listbox_Option.configure(state=tk.NORMAL) + + if removed_files: + input_info_text_var.set(f'{len(removed_files)} {BROKEN_OR_INCOM_TEXT}') + error_text = '' + for i in removed_files: + error_text += i + removed_files = list_diff(self.inputPaths, inputPaths) + [input_files_listbox_Option.delete(input_files_listbox_Option.get(0, tk.END).index(i)) for i in removed_files] + self.error_log_var.set(REMOVED_FILES(list_to_string(removed_files), error_text)) + self.inputPaths = tuple(inputPaths) + self.update_inputPaths() + else: + input_info_text_var.set(f'No errors found!') + + audio_input_total() + else: + input_info_text_var.set(f'{NO_FILES_TEXT} {SELECTED_VER if is_create_samples else DETECTED_VER}') + varification_text_var.set(VERIFY_INPUTS_TEXT) + input_files_listbox_Option.configure(state=tk.NORMAL) + return + + audio_input_total() + + def verify_audio_start_thread(is_create_samples=False): + + if not self.thread_check(self.active_processing_thread): + if not self.thread_check(self.verification_thread): + varification_text_var.set('Stop Progress') + input_files_listbox_Option.configure(state=tk.DISABLED) + self.verification_thread = KThread(target=lambda:verify_audio(is_create_samples=is_create_samples)) + self.verification_thread.start() + else: + input_files_listbox_Option.configure(state=tk.NORMAL) + varification_text_var.set(VERIFY_INPUTS_TEXT) + input_info_text_var.set('Process Stopped') + self.verification_thread.kill() + else: + input_info_text_var.set('You cannot verify inputs during an active process.') + + def right_click_menu(event): + right_click_menu = tk.Menu(self, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=0) + right_click_menu.add_command(label='Remove Selected Items Only', command=lambda:selected_files(is_remove=True)) + right_click_menu.add_command(label='Keep Selected Items Only', command=lambda:selected_files(is_remove=False)) + right_click_menu.add_command(label='Clear All Input(s)', command=lambda:input_options(is_select_inputs=False)) + right_click_menu.add_separator() + right_click_menu_sub = tk.Menu(right_click_menu, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=False) + right_click_menu.add_command(label='Verify and Create Samples of Selected Inputs', command=lambda:verify_audio_start_thread(is_create_samples=True)) + right_click_menu.add_cascade(label='Preferred Double Click Action', menu=right_click_menu_sub) + if is_play_file_var.get(): + right_click_menu_sub.add_command(label='Enable: Open Audio File Directory', command=lambda:(input_files_listbox_Option.bind('', lambda e:pop_open_file_path()), is_play_file_var.set(False))) + else: + right_click_menu_sub.add_command(label='Enable: Open Audio File', command=lambda:(input_files_listbox_Option.bind('', lambda e:pop_open_file_path(is_play_file=True)), is_play_file_var.set(True))) + + try: + right_click_menu.tk_popup(event.x_root,event.y_root) + right_click_release_linux(right_click_menu, menu_view_inputs_top) + finally: + right_click_menu.grab_release() + + menu_view_inputs_Frame = self.menu_FRAME_SET(menu_view_inputs_top) + menu_view_inputs_Frame.grid(row=0) + + self.main_window_LABEL_SET(menu_view_inputs_Frame, SELECTED_INPUTS).grid(row=0,column=0,padx=0,pady=MENU_PADDING_1) + tk.Label(menu_view_inputs_Frame, textvariable=input_length_var, font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), foreground=FG_COLOR).grid(row=1, column=0, padx=0, pady=MENU_PADDING_1) + if not OPERATING_SYSTEM == "Linux": + ttk.Button(menu_view_inputs_Frame, text=SELECT_INPUTS, command=lambda:input_options()).grid(row=2,column=0,padx=0,pady=MENU_PADDING_2) + input_files_listbox_Option = tk.Listbox(menu_view_inputs_Frame, selectmode=tk.EXTENDED, activestyle='dotbox', font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), background='#101414', exportselection=0, width=110, height=17, relief=tk.SOLID, borderwidth=0) + input_files_listbox_vertical_scroll = ttk.Scrollbar(menu_view_inputs_Frame, orient=tk.VERTICAL) + input_files_listbox_Option.config(yscrollcommand=input_files_listbox_vertical_scroll.set) + input_files_listbox_vertical_scroll.configure(command=input_files_listbox_Option.yview) + input_files_listbox_Option.grid(row=4, sticky=tk.W) + input_files_listbox_vertical_scroll.grid(row=4, column=1, sticky=tk.NS) + + tk.Label(menu_view_inputs_Frame, textvariable=input_info_text_var, font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), foreground=FG_COLOR).grid(row=5, column=0, padx=0, pady=0) + ttk.Checkbutton(menu_view_inputs_Frame, text=WIDEN_BOX, variable=is_widen_box_var, command=lambda:box_size()).grid(row=6,column=0,padx=0,pady=0) + verify_audio_Button = ttk.Button(menu_view_inputs_Frame, textvariable=varification_text_var, command=lambda:verify_audio_start_thread()) + verify_audio_Button.grid(row=7,column=0,padx=0,pady=MENU_PADDING_1) + ttk.Button(menu_view_inputs_Frame, text=CLOSE_WINDOW, command=lambda:menu_view_inputs_top.destroy()).grid(row=8,column=0,padx=0,pady=MENU_PADDING_1) + + if is_dnd_compatible: + menu_view_inputs_top.drop_target_register(DND_FILES) + menu_view_inputs_top.dnd_bind('<>', lambda e: drag_n_drop(e)) + input_files_listbox_Option.bind(right_click_button, lambda e:right_click_menu(e)) + input_files_listbox_Option.bind('', lambda e:pop_open_file_path()) + input_files_listbox_Option.bind('', lambda e:selected_files(is_remove=True)) + input_files_listbox_Option.bind('', lambda e:selected_files(is_remove=False)) + + reset_list() + + self.menu_placement(menu_view_inputs_top, 'Selected Inputs', pop_up=True) + + def menu_batch_dual(self): + menu_batch_dual_top = tk.Toplevel(root) + + def drag_n_drop(event, accept_mode): + listbox = left_frame if accept_mode == FILE_1_LB else right_frame + paths = drop(event, accept_mode) + for item in paths: + if item not in listbox.path_list: # only add file if it's not already in the list + basename = os.path.basename(item) + listbox.listbox.insert(tk.END, basename) # insert basename to the listbox + listbox.path_list.append(item) # append the file path to the list + listbox.update_displayed_index() + + def move_entry(is_primary=True): + if is_primary: + selected_frame, other_frame = left_frame, right_frame + else: + selected_frame, other_frame = right_frame, left_frame + + selected = selected_frame.listbox.curselection() + + if selected: + basename = selected_frame.listbox.get(selected[0]).split(': ', 1)[1] # remove displayed index + + if basename in other_frame.basename_to_path: + return + + path = selected_frame.basename_to_path[basename] # Get the actual path + + selected_frame.listbox.delete(selected) + other_frame.listbox.insert(tk.END, basename) + + selected_frame.path_list.remove(path) + del selected_frame.basename_to_path[basename] + + other_frame.path_list.append(path) + other_frame.basename_to_path[basename] = path + + selected_frame.update_displayed_index() + other_frame.update_displayed_index() + + def open_selected_path(lb, is_play_file=False): + selected_frame = left_frame if lb == FILE_1_LB else right_frame + selected_path = selected_frame.get_selected_path() + + if selected_path: + if os.path.isfile(selected_path): + OPEN_FILE_func(selected_path if is_play_file else os.path.dirname(selected_path)) + + def clear_all_data(lb): + selected_frame = left_frame if lb == FILE_1_LB else right_frame + selected_frame.listbox.delete(0, "end") + selected_frame.path_list.clear() + selected_frame.basename_to_path.clear() + + def clear_all(event, lb): + selected_frame = left_frame if lb == FILE_1_LB else right_frame + selected = selected_frame.listbox.curselection() + + right_click_menu = tk.Menu(self, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=0) + if selected: + right_click_menu.add_command(label='Open Location', command=lambda:open_selected_path(lb)) + right_click_menu.add_command(label='Open File', command=lambda:open_selected_path(lb, is_play_file=True)) + right_click_menu.add_command(label='Clear All', command=lambda:clear_all_data(lb)) + + try: + right_click_menu.tk_popup(event.x_root,event.y_root) + right_click_release_linux(right_click_menu, menu_batch_dual_top) + finally: + right_click_menu.grab_release() + + def gather_input_list(): + left_paths = list(left_frame.basename_to_path.values()) + right_paths = list(right_frame.basename_to_path.values()) + + clear_all_data(FILE_1_LB) + clear_all_data(FILE_2_LB) + + if left_paths and right_paths: + left_frame.select_input(left_paths) + right_frame.select_input(right_paths) + + self.DualBatch_inputPaths = list(zip(left_paths, right_paths)) + self.check_dual_paths() + menu_batch_dual_top.destroy() + + menu_view_inputs_Frame = self.menu_FRAME_SET(menu_batch_dual_top) + menu_view_inputs_Frame.grid(row=0) + + left_frame = ListboxBatchFrame(menu_view_inputs_Frame, self.file_one_sub_var.get().title(), move_entry, self.right_img, self.img_mapper) + left_frame.grid(row=0, column=0, sticky="nsew", padx=(0, 5)) + + right_frame = ListboxBatchFrame(menu_view_inputs_Frame, self.file_two_sub_var.get().title(), lambda:move_entry(False), self.left_img, self.img_mapper) + right_frame.grid(row=0, column=1, sticky="nsew", padx=(5, 0)) + + left_frame.listbox.drop_target_register(DND_FILES) + right_frame.listbox.drop_target_register(DND_FILES) + left_frame.listbox.dnd_bind('<>', lambda e: drag_n_drop(e, FILE_1_LB)) + right_frame.listbox.dnd_bind('<>', lambda e: drag_n_drop(e, FILE_2_LB)) + left_frame.listbox.dnd_bind(right_click_button, lambda e: clear_all(e, FILE_1_LB)) + right_frame.listbox.dnd_bind(right_click_button, lambda e: clear_all(e, FILE_2_LB)) + + menu_view_inputs_bottom_Frame = self.menu_FRAME_SET(menu_batch_dual_top) + menu_view_inputs_bottom_Frame.grid(row=1) + + confirm_btn = ttk.Button(menu_view_inputs_bottom_Frame, text=CONFIRM_ENTRIES, command=gather_input_list) + confirm_btn.grid(pady=MENU_PADDING_1) + + close_btn = ttk.Button(menu_view_inputs_bottom_Frame, text=CLOSE_WINDOW, command=lambda:menu_batch_dual_top.destroy()) + close_btn.grid(pady=MENU_PADDING_1) + + if self.check_dual_paths(): + left_frame_pane = [i[0] for i in self.DualBatch_inputPaths] + right_frame_pane = [i[1] for i in self.DualBatch_inputPaths] + left_frame.update_displayed_index(left_frame_pane) + right_frame.update_displayed_index(right_frame_pane) + self.check_dual_paths() + + self.menu_placement(menu_batch_dual_top, DUAL_AUDIO_PROCESSING, pop_up=True) + + def check_dual_paths(self, is_fill_menu=False): + + if self.DualBatch_inputPaths: + first_paths = tuple(self.DualBatch_inputPaths) + first_paths_len = len(first_paths) + first_paths = first_paths[0] + + if first_paths_len == 1: + file1_base_text = os.path.basename(first_paths[0]) + file2_base_text = os.path.basename(first_paths[1]) + else: + first_paths_len = first_paths_len - 1 + file1_base_text = f"{os.path.basename(first_paths[0])}, +{first_paths_len} file(s){BATCH_MODE_DUAL}" + file2_base_text = f"{os.path.basename(first_paths[1])}, +{first_paths_len} file(s){BATCH_MODE_DUAL}" + + self.fileOneEntry_var.set(file1_base_text) + self.fileOneEntry_Full_var.set(f"{first_paths[0]}") + self.fileTwoEntry_var.set(file2_base_text) + self.fileTwoEntry_Full_var.set(f"{first_paths[1]}") + else: + if is_fill_menu: + file_one = self.fileOneEntry_Full_var.get() + file_two = self.fileTwoEntry_Full_var.get() + + if file_one and file_two and BATCH_MODE_DUAL not in file_one and BATCH_MODE_DUAL not in file_two: + self.DualBatch_inputPaths = [(file_one, file_two)] + else: + if BATCH_MODE_DUAL in self.fileOneEntry_var.get(): + self.fileOneEntry_var.set("") + self.fileOneEntry_Full_var.set("") + if BATCH_MODE_DUAL in self.fileTwoEntry_var.get(): + self.fileTwoEntry_var.set("") + self.fileTwoEntry_Full_var.set("") + + return self.DualBatch_inputPaths + + def fill_gpu_list(self): + try: + if cuda_available: + self.cuda_device_list = [f"{torch.cuda.get_device_properties(i).name}:{i}" for i in range(torch.cuda.device_count())] + self.cuda_device_list.insert(0, DEFAULT) + #print(self.cuda_device_list) + + # if directml_available: + # self.opencl_list = [f"{torch_directml.device_name(i)}:{i}" for i in range(torch_directml.device_count())] + # self.opencl_list.insert(0, DEFAULT) + except Exception as e: + print(e) + + # if is_cuda_only: + # self.is_use_opencl_var.set(False) + + check_gpu_list = self.cuda_device_list#self.opencl_list if is_opencl_only or self.is_use_opencl_var.get() else self.cuda_device_list + if not self.device_set_var.get() in check_gpu_list: + self.device_set_var.set(DEFAULT) + + def loop_gpu_list(self, option_menu:ComboBoxMenu, menu_name, option_list): + option_menu['values'] = option_list + option_menu.update_dropdown_size(option_list, menu_name) + + def menu_settings(self, select_tab_2=False, select_tab_3=False):#** + """Open Settings and Download Center""" + + settings_menu = tk.Toplevel() + + option_var = tk.StringVar(value=SELECT_SAVED_SETTING) + self.is_menu_settings_open = True + + tabControl = ttk.Notebook(settings_menu) + + tab1 = ttk.Frame(tabControl) + tab2 = ttk.Frame(tabControl) + tab3 = ttk.Frame(tabControl) + + tabControl.add(tab1, text = SETTINGS_GUIDE_TEXT) + tabControl.add(tab2, text = ADDITIONAL_SETTINGS_TEXT) + tabControl.add(tab3, text = DOWNLOAD_CENTER_TEXT) + + tabControl.pack(expand = 1, fill ="both") + + tab1.grid_rowconfigure(0, weight=1) + tab1.grid_columnconfigure(0, weight=1) + + tab2.grid_rowconfigure(0, weight=1) + tab2.grid_columnconfigure(0, weight=1) + + tab3.grid_rowconfigure(0, weight=1) + tab3.grid_columnconfigure(0, weight=1) + + self.disable_tabs = lambda:(tabControl.tab(0, state="disabled"), tabControl.tab(1, state="disabled")) + self.enable_tabs = lambda:(tabControl.tab(0, state="normal"), tabControl.tab(1, state="normal")) + self.main_menu_var = tk.StringVar(value=CHOOSE_ADVANCED_MENU_TEXT) + + self.download_progress_bar_var.set(0) + self.download_progress_info_var.set('') + self.download_progress_percent_var.set('') + + def set_vars_for_sample_mode(event): + value = int(float(event)) + value = round(value / 5) * 5 + self.model_sample_mode_duration_var.set(value) + self.model_sample_mode_duration_checkbox_var.set(SAMPLE_MODE_CHECKBOX(value)) + self.model_sample_mode_duration_label_var.set(f'{value} {SECONDS_TEXT}') + + #Settings Tab 1 + settings_menu_main_Frame = self.menu_FRAME_SET(tab1) + settings_menu_main_Frame.grid(row=0) + settings_title_Label = self.menu_title_LABEL_SET(settings_menu_main_Frame, GENERAL_MENU_TEXT) + settings_title_Label.grid(pady=MENU_PADDING_2) + + select_Label = self.menu_sub_LABEL_SET(settings_menu_main_Frame, ADDITIONAL_MENUS_INFORMATION_TEXT) + select_Label.grid(pady=MENU_PADDING_1) + + select_Option = ComboBoxMenu(settings_menu_main_Frame, textvariable=self.main_menu_var, values=OPTION_LIST, width=GEN_SETTINGS_WIDTH+3) + select_Option.update_dropdown_size(OPTION_LIST, 'menuchoose', command=lambda e:(self.check_is_menu_open(self.main_menu_var.get()), close_window())) + select_Option.grid(pady=MENU_PADDING_1) + + help_hints_Option = ttk.Checkbutton(settings_menu_main_Frame, text=ENABLE_HELP_HINTS_TEXT, variable=self.help_hints_var, width=HELP_HINT_CHECKBOX_WIDTH) + help_hints_Option.grid(pady=MENU_PADDING_1) + + open_app_dir_Button = ttk.Button(settings_menu_main_Frame, text=OPEN_APPLICATION_DIRECTORY_TEXT, command=lambda:OPEN_FILE_func(BASE_PATH), width=SETTINGS_BUT_WIDTH) + open_app_dir_Button.grid(pady=MENU_PADDING_1) + + reset_all_app_settings_Button = ttk.Button(settings_menu_main_Frame, text=RESET_ALL_SETTINGS_TO_DEFAULT_TEXT, command=lambda:self.load_to_default_confirm(), width=SETTINGS_BUT_WIDTH)#pop_up_change_model_defaults + reset_all_app_settings_Button.grid(pady=MENU_PADDING_1) + + if is_windows: + restart_app_Button = ttk.Button(settings_menu_main_Frame, text=RESTART_APPLICATION_TEXT, command=lambda:self.restart()) + restart_app_Button.grid(pady=MENU_PADDING_1) + + delete_your_settings_Label = self.menu_title_LABEL_SET(settings_menu_main_Frame, DELETE_USER_SAVED_SETTING_TEXT) + delete_your_settings_Label.grid(pady=MENU_PADDING_2) + self.help_hints(delete_your_settings_Label, text=DELETE_YOUR_SETTINGS_HELP) + + delete_your_settings_Option = ComboBoxMenu(settings_menu_main_Frame, textvariable=option_var, width=GEN_SETTINGS_WIDTH+3) + delete_your_settings_Option.grid(padx=20,pady=MENU_PADDING_1) + self.deletion_list_fill(delete_your_settings_Option, option_var, SETTINGS_CACHE_DIR, SELECT_SAVED_SETTING, menu_name='deletesetting') + + app_update_Label = self.menu_title_LABEL_SET(settings_menu_main_Frame, APPLICATION_UPDATES_TEXT) + app_update_Label.grid(pady=MENU_PADDING_2) + + self.app_update_button = ttk.Button(settings_menu_main_Frame, textvariable=self.app_update_button_Text_var, width=SETTINGS_BUT_WIDTH-2, command=lambda:self.pop_up_update_confirmation()) + self.app_update_button.grid(pady=MENU_PADDING_1) + + self.app_update_status_Label = tk.Label(settings_menu_main_Frame, textvariable=self.app_update_status_Text_var, padx=3, pady=3, font=(MAIN_FONT_NAME, f"{FONT_SIZE_4}"), width=UPDATE_LABEL_WIDTH, justify="center", relief="ridge", fg="#13849f") + self.app_update_status_Label.grid(pady=20) + + donate_Button = ttk.Button(settings_menu_main_Frame, image=self.donate_img, command=lambda:webbrowser.open_new_tab(DONATE_LINK_BMAC)) + donate_Button.grid(pady=MENU_PADDING_2) + self.help_hints(donate_Button, text=DONATE_HELP) + + close_settings_win_Button = ttk.Button(settings_menu_main_Frame, text=CLOSE_WINDOW, command=lambda:close_window()) + close_settings_win_Button.grid(pady=MENU_PADDING_1) + + #Settings Tab 2 + settings_menu_format_Frame = self.menu_FRAME_SET(tab2) + settings_menu_format_Frame.grid(row=0) + + audio_format_title_Label = self.menu_title_LABEL_SET(settings_menu_format_Frame, AUDIO_FORMAT_SETTINGS_TEXT, width=20) + audio_format_title_Label.grid(pady=MENU_PADDING_2) + + wav_type_set_Label = self.menu_sub_LABEL_SET(settings_menu_format_Frame, WAV_TYPE_TEXT) + wav_type_set_Label.grid(pady=MENU_PADDING_1) + + wav_type_set_Option = ComboBoxMenu(settings_menu_format_Frame, textvariable=self.wav_type_set_var, values=WAV_TYPE, width=HELP_HINT_CHECKBOX_WIDTH) + wav_type_set_Option.grid(padx=20,pady=MENU_PADDING_1) + + mp3_bit_set_Label = self.menu_sub_LABEL_SET(settings_menu_format_Frame, MP3_BITRATE_TEXT) + mp3_bit_set_Label.grid(pady=MENU_PADDING_1) + + mp3_bit_set_Option = ComboBoxMenu(settings_menu_format_Frame, textvariable=self.mp3_bit_set_var, values=MP3_BIT_RATES, width=HELP_HINT_CHECKBOX_WIDTH) + mp3_bit_set_Option.grid(padx=20,pady=MENU_PADDING_1) + + audio_format_title_Label = self.menu_title_LABEL_SET(settings_menu_format_Frame, GENERAL_PROCESS_SETTINGS_TEXT) + audio_format_title_Label.grid(pady=MENU_PADDING_2) + + is_testing_audio_Option = ttk.Checkbutton(settings_menu_format_Frame, text=SETTINGS_TEST_MODE_TEXT, width=GEN_SETTINGS_WIDTH, variable=self.is_testing_audio_var) + is_testing_audio_Option.grid() + self.help_hints(is_testing_audio_Option, text=IS_TESTING_AUDIO_HELP) + + is_add_model_name_Option = ttk.Checkbutton(settings_menu_format_Frame, text=MODEL_TEST_MODE_TEXT, width=GEN_SETTINGS_WIDTH, variable=self.is_add_model_name_var) + is_add_model_name_Option.grid() + self.help_hints(is_add_model_name_Option, text=IS_MODEL_TESTING_AUDIO_HELP) + + is_create_model_folder_Option = ttk.Checkbutton(settings_menu_format_Frame, text=GENERATE_MODEL_FOLDER_TEXT, width=GEN_SETTINGS_WIDTH, variable=self.is_create_model_folder_var) + is_create_model_folder_Option.grid() + self.help_hints(is_create_model_folder_Option, text=IS_CREATE_MODEL_FOLDER_HELP) + + is_accept_any_input_Option = ttk.Checkbutton(settings_menu_format_Frame, text=ACCEPT_ANY_INPUT_TEXT, width=GEN_SETTINGS_WIDTH, variable=self.is_accept_any_input_var) + is_accept_any_input_Option.grid() + self.help_hints(is_accept_any_input_Option, text=IS_ACCEPT_ANY_INPUT_HELP) + + is_task_complete_Option = ttk.Checkbutton(settings_menu_format_Frame, text=NOTIFICATION_CHIMES_TEXT, width=GEN_SETTINGS_WIDTH, variable=self.is_task_complete_var) + is_task_complete_Option.grid() + self.help_hints(is_task_complete_Option, text=IS_TASK_COMPLETE_HELP) + + is_normalization_Option = ttk.Checkbutton(settings_menu_format_Frame, text=NORMALIZE_OUTPUT_TEXT, width=GEN_SETTINGS_WIDTH, variable=self.is_normalization_var) + is_normalization_Option.grid() + self.help_hints(is_normalization_Option, text=IS_NORMALIZATION_HELP) + + change_model_default_Button = ttk.Button(settings_menu_format_Frame, text=CHANGE_MODEL_DEFAULTS_TEXT, command=lambda:self.pop_up_change_model_defaults(settings_menu), width=SETTINGS_BUT_WIDTH-2)# + change_model_default_Button.grid(pady=MENU_PADDING_4) + + #if not is_choose_arch: + self.vocal_splitter_Button_opt(settings_menu, settings_menu_format_Frame, width=SETTINGS_BUT_WIDTH-2, pady=MENU_PADDING_4) + + if not is_macos and self.is_gpu_available: + gpu_list_options = lambda:self.loop_gpu_list(device_set_Option, 'gpudevice', self.cuda_device_list)#self.opencl_list if is_opencl_only or self.is_use_opencl_var.get() else self.cuda_device_list) + device_set_Label = self.menu_title_LABEL_SET(settings_menu_format_Frame, CUDA_NUM_TEXT) + device_set_Label.grid(pady=MENU_PADDING_2) + + device_set_Option = ComboBoxMenu(settings_menu_format_Frame, textvariable=self.device_set_var, values=GPU_DEVICE_NUM_OPTS, width=GEN_SETTINGS_WIDTH+1) + device_set_Option.grid(padx=20,pady=MENU_PADDING_1) + gpu_list_options() + self.help_hints(device_set_Label, text=IS_CUDA_SELECT_HELP) + + # if is_choose_arch: + # is_use_opencl_Option = ttk.Checkbutton(settings_menu_format_Frame, + # text=USE_OPENCL_TEXT, + # width=9, + # variable=self.is_use_opencl_var, + # command=lambda:(gpu_list_options(), self.device_set_var.set(DEFAULT))) + # is_use_opencl_Option.grid() + # self.help_hints(is_use_opencl_Option, text=IS_NORMALIZATION_HELP) + + model_sample_mode_Label = self.menu_title_LABEL_SET(settings_menu_format_Frame, MODEL_SAMPLE_MODE_SETTINGS_TEXT) + model_sample_mode_Label.grid(pady=MENU_PADDING_2) + + model_sample_mode_duration_Label = self.menu_sub_LABEL_SET(settings_menu_format_Frame, SAMPLE_CLIP_DURATION_TEXT) + model_sample_mode_duration_Label.grid(pady=MENU_PADDING_1) + + tk.Label(settings_menu_format_Frame, textvariable=self.model_sample_mode_duration_label_var, font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), foreground=FG_COLOR).grid(pady=2) + model_sample_mode_duration_Option = ttk.Scale(settings_menu_format_Frame, variable=self.model_sample_mode_duration_var, from_=5, to=120, command=set_vars_for_sample_mode, orient='horizontal') + model_sample_mode_duration_Option.grid(pady=2) + + #Settings Tab 3 + settings_menu_download_center_Frame = self.menu_FRAME_SET(tab3) + settings_menu_download_center_Frame.grid(row=0) + + download_center_title_Label = self.menu_title_LABEL_SET(settings_menu_download_center_Frame, APPLICATION_DOWNLOAD_CENTER_TEXT) + download_center_title_Label.grid(padx=20,pady=MENU_PADDING_2) + + select_download_Label = self.menu_sub_LABEL_SET(settings_menu_download_center_Frame, SELECT_DOWNLOAD_TEXT) + select_download_Label.grid(pady=MENU_PADDING_2) + + self.model_download_vr_Button = ttk.Radiobutton(settings_menu_download_center_Frame, text='VR Arch', width=8, variable=self.select_download_var, value='VR Arc', command=lambda:self.download_list_state()) + self.model_download_vr_Button.grid(pady=MENU_PADDING_1) + self.model_download_vr_Option = ComboBoxMenu(settings_menu_download_center_Frame, textvariable=self.model_download_vr_var, width=READ_ONLY_COMBO_WIDTH) + self.model_download_vr_Option.grid(pady=MENU_PADDING_1) + + self.model_download_mdx_Button = ttk.Radiobutton(settings_menu_download_center_Frame, text='MDX-Net', width=8, variable=self.select_download_var, value='MDX-Net', command=lambda:self.download_list_state()) + self.model_download_mdx_Button.grid(pady=MENU_PADDING_1) + self.model_download_mdx_Option = ComboBoxMenu(settings_menu_download_center_Frame, textvariable=self.model_download_mdx_var, width=READ_ONLY_COMBO_WIDTH) + self.model_download_mdx_Option.grid(pady=MENU_PADDING_1) + + self.model_download_demucs_Button = ttk.Radiobutton(settings_menu_download_center_Frame, text='Demucs', width=8, variable=self.select_download_var, value='Demucs', command=lambda:self.download_list_state()) + self.model_download_demucs_Button.grid(pady=MENU_PADDING_1) + self.model_download_demucs_Option = ComboBoxMenu(settings_menu_download_center_Frame, textvariable=self.model_download_demucs_var, width=READ_ONLY_COMBO_WIDTH) + self.model_download_demucs_Option.grid(pady=MENU_PADDING_1) + + self.download_Button = ttk.Button(settings_menu_download_center_Frame, image=self.download_img, command=lambda:self.download_item())#, command=download_model) + self.download_Button.grid(pady=MENU_PADDING_1) + + self.download_progress_info_Label = tk.Label(settings_menu_download_center_Frame, textvariable=self.download_progress_info_var, font=(MAIN_FONT_NAME, f"{FONT_SIZE_2}"), foreground=FG_COLOR, borderwidth=0) + self.download_progress_info_Label.grid(pady=MENU_PADDING_1) + + self.download_progress_percent_Label = tk.Label(settings_menu_download_center_Frame, textvariable=self.download_progress_percent_var, font=(MAIN_FONT_NAME, f"{FONT_SIZE_2}"), wraplength=350, foreground=FG_COLOR) + self.download_progress_percent_Label.grid(pady=MENU_PADDING_1) + + self.download_progress_bar_Progressbar = ttk.Progressbar(settings_menu_download_center_Frame, variable=self.download_progress_bar_var) + self.download_progress_bar_Progressbar.grid(pady=MENU_PADDING_1) + + self.stop_download_Button = ttk.Button(settings_menu_download_center_Frame, textvariable=self.download_stop_var, width=15, command=lambda:self.download_post_action(DOWNLOAD_STOPPED)) + self.stop_download_Button.grid(pady=MENU_PADDING_1) + self.stop_download_Button_DISABLE = lambda:(self.download_stop_var.set(""), self.stop_download_Button.configure(state=tk.DISABLED)) + self.stop_download_Button_ENABLE = lambda:(self.download_stop_var.set(STOP_DOWNLOAD_TEXT), self.stop_download_Button.configure(state=tk.NORMAL)) + + self.refresh_list_Button = ttk.Button(settings_menu_download_center_Frame, text=REFRESH_LIST_TEXT, command=lambda:self.online_data_refresh(refresh_list_Button=True))#, command=refresh_list) + self.refresh_list_Button.grid(pady=MENU_PADDING_1) + + self.download_key_Button = ttk.Button(settings_menu_download_center_Frame, image=self.key_img, command=lambda:self.pop_up_user_code_input()) + self.download_key_Button.grid(pady=MENU_PADDING_1) + + self.manual_download_Button = ttk.Button(settings_menu_download_center_Frame, text=TRY_MANUAL_DOWNLOAD_TEXT, command=self.menu_manual_downloads) + self.manual_download_Button.grid(pady=MENU_PADDING_1) + + self.download_center_Buttons = (self.model_download_vr_Button, + self.model_download_mdx_Button, + self.model_download_demucs_Button, + self.download_Button, + self.download_key_Button) + + self.download_lists = (self.model_download_vr_Option, + self.model_download_mdx_Option, + self.model_download_demucs_Option) + + self.download_list_vars = (self.model_download_vr_var, + self.model_download_mdx_var, + self.model_download_demucs_var) + + self.online_data_refresh() + + self.menu_placement(settings_menu, SETTINGS_GUIDE_TEXT, is_help_hints=True, close_function=lambda:close_window()) + + if select_tab_2: + tabControl.select(tab2) + settings_menu.update_idletasks() + + if select_tab_3: + tabControl.select(tab3) + settings_menu.update_idletasks() + + def close_window(): + self.active_download_thread.terminate() if self.thread_check(self.active_download_thread) else None + self.is_menu_settings_open = False + self.select_download_var.set('') + settings_menu.destroy() + + #self.update_checkbox_text() + settings_menu.protocol("WM_DELETE_WINDOW", close_window) + + def menu_advanced_vr_options(self):#** + """Open Advanced VR Options""" + + vr_opt = tk.Toplevel() + + tab1 = self.menu_tab_control(vr_opt, self.vr_secondary_model_vars) + + self.is_open_menu_advanced_vr_options.set(True) + self.menu_advanced_vr_options_close_window = lambda:(self.is_open_menu_advanced_vr_options.set(False), vr_opt.destroy()) + vr_opt.protocol("WM_DELETE_WINDOW", self.menu_advanced_vr_options_close_window) + + toggle_post_process = lambda:self.post_process_threshold_Option.configure(state=READ_ONLY) if self.is_post_process_var.get() else self.post_process_threshold_Option.configure(state=tk.DISABLED) + + vr_opt_frame = self.menu_FRAME_SET(tab1) + vr_opt_frame.grid(pady=0 if not self.chosen_process_method_var.get() == VR_ARCH_PM else 70) + + vr_title = self.menu_title_LABEL_SET(vr_opt_frame, ADVANCED_VR_OPTIONS_TEXT) + vr_title.grid(padx=25, pady=MENU_PADDING_2) + + if not self.chosen_process_method_var.get() == VR_ARCH_PM: + window_size_Label = self.menu_sub_LABEL_SET(vr_opt_frame, WINDOW_SIZE_TEXT) + window_size_Label.grid(pady=MENU_PADDING_1) + window_size_Option = ComboBoxEditableMenu(vr_opt_frame, values=VR_WINDOW, width=MENU_COMBOBOX_WIDTH, textvariable=self.window_size_var, pattern=REG_WINDOW, default=VR_WINDOW[1])# + window_size_Option.grid(pady=MENU_PADDING_1) + self.help_hints(window_size_Label, text=WINDOW_SIZE_HELP) + + aggression_setting_Label = self.menu_sub_LABEL_SET(vr_opt_frame, AGGRESSION_SETTING_TEXT) + aggression_setting_Label.grid(pady=MENU_PADDING_1) + aggression_setting_Option = ComboBoxEditableMenu(vr_opt_frame, values=VR_AGGRESSION, width=MENU_COMBOBOX_WIDTH, textvariable=self.aggression_setting_var, pattern=REG_AGGRESSION, default=VR_AGGRESSION[5])# + aggression_setting_Option.grid(pady=MENU_PADDING_1) + self.help_hints(aggression_setting_Label, text=AGGRESSION_SETTING_HELP) + + self.batch_size_Label = self.menu_sub_LABEL_SET(vr_opt_frame, BATCH_SIZE_TEXT) + self.batch_size_Label.grid(pady=MENU_PADDING_1) + self.batch_size_Option = ComboBoxEditableMenu(vr_opt_frame, values=BATCH_SIZE, width=MENU_COMBOBOX_WIDTH, textvariable=self.batch_size_var, pattern=REG_BATCHES, default=BATCH_SIZE)# + self.batch_size_Option.grid(pady=MENU_PADDING_1) + self.help_hints(self.batch_size_Label, text=BATCH_SIZE_HELP) + + self.post_process_threshold_Label = self.menu_sub_LABEL_SET(vr_opt_frame, POST_PROCESS_THRESHOLD_TEXT) + self.post_process_threshold_Label.grid(pady=MENU_PADDING_1) + self.post_process_threshold_Option = ComboBoxEditableMenu(vr_opt_frame, values=POST_PROCESSES_THREASHOLD_VALUES, width=MENU_COMBOBOX_WIDTH, textvariable=self.post_process_threshold_var, pattern=REG_THES_POSTPORCESS, default=POST_PROCESSES_THREASHOLD_VALUES[1])# + self.post_process_threshold_Option.grid(pady=MENU_PADDING_1) + self.help_hints(self.post_process_threshold_Label, text=POST_PROCESS_THREASHOLD_HELP) + + self.is_tta_Option = ttk.Checkbutton(vr_opt_frame, text=ENABLE_TTA_TEXT, width=VR_CHECKBOXS_WIDTH, variable=self.is_tta_var) + self.is_tta_Option.grid(pady=0) + self.help_hints(self.is_tta_Option, text=IS_TTA_HELP) + + self.is_post_process_Option = ttk.Checkbutton(vr_opt_frame, text=POST_PROCESS_TEXT, width=VR_CHECKBOXS_WIDTH, variable=self.is_post_process_var, command=toggle_post_process) + self.is_post_process_Option.grid(pady=0) + self.help_hints(self.is_post_process_Option, text=IS_POST_PROCESS_HELP) + + self.is_high_end_process_Option = ttk.Checkbutton(vr_opt_frame, text=HIGHEND_PROCESS_TEXT, width=VR_CHECKBOXS_WIDTH, variable=self.is_high_end_process_var) + self.is_high_end_process_Option.grid(pady=0) + self.help_hints(self.is_high_end_process_Option, text=IS_HIGH_END_PROCESS_HELP) + + self.vocal_splitter_Button_opt(vr_opt, vr_opt_frame, pady=MENU_PADDING_1, width=VR_BUT_WIDTH) + + self.vr_clear_cache_Button = ttk.Button(vr_opt_frame, text=CLEAR_AUTOSET_CACHE_TEXT, command=lambda:self.clear_cache(VR_ARCH_TYPE), width=VR_BUT_WIDTH) + self.vr_clear_cache_Button.grid(pady=MENU_PADDING_1) + self.help_hints(self.vr_clear_cache_Button, text=CLEAR_CACHE_HELP) + + self.open_vr_model_dir_Button = ttk.Button(vr_opt_frame, text=OPEN_MODELS_FOLDER_TEXT, command=lambda:OPEN_FILE_func(VR_MODELS_DIR), width=VR_BUT_WIDTH) + self.open_vr_model_dir_Button.grid(pady=MENU_PADDING_1) + + self.vr_return_Button=ttk.Button(vr_opt_frame, text=BACK_TO_MAIN_MENU, command=lambda:(self.menu_advanced_vr_options_close_window(), self.check_is_menu_settings_open())) + self.vr_return_Button.grid(pady=MENU_PADDING_1) + + self.vr_close_Button = ttk.Button(vr_opt_frame, text=CLOSE_WINDOW, command=lambda:self.menu_advanced_vr_options_close_window()) + self.vr_close_Button.grid(pady=MENU_PADDING_1) + + toggle_post_process() + + frame_list = [vr_opt_frame] + self.menu_placement(vr_opt, ADVANCED_VR_OPTIONS_TEXT, is_help_hints=True, close_function=self.menu_advanced_vr_options_close_window, frame_list=frame_list) + + def menu_advanced_demucs_options(self):#** + """Open Advanced Demucs Options""" + + demuc_opt = tk.Toplevel() + + self.is_open_menu_advanced_demucs_options.set(True) + self.menu_advanced_demucs_options_close_window = lambda:(self.is_open_menu_advanced_demucs_options.set(False), demuc_opt.destroy()) + demuc_opt.protocol("WM_DELETE_WINDOW", self.menu_advanced_demucs_options_close_window) + + tab1, tab3 = self.menu_tab_control(demuc_opt, self.demucs_secondary_model_vars, is_demucs=True) + + demucs_frame = self.menu_FRAME_SET(tab1) + demucs_frame.grid(pady=0 if not self.chosen_process_method_var.get() == DEMUCS_ARCH_TYPE else 55) + + demucs_pre_model_frame = self.menu_FRAME_SET(tab3) + demucs_pre_model_frame.grid(row=0) + + demucs_title_Label = self.menu_title_LABEL_SET(demucs_frame, ADVANCED_DEMUCS_OPTIONS_TEXT) + demucs_title_Label.grid(pady=MENU_PADDING_2) + + if not self.chosen_process_method_var.get() == DEMUCS_ARCH_TYPE: + segment_Label = self.menu_sub_LABEL_SET(demucs_frame, SEGMENTS_TEXT) + segment_Label.grid(pady=MENU_PADDING_2) + segment_Option = ComboBoxEditableMenu(demucs_frame, values=DEMUCS_SEGMENTS, width=MENU_COMBOBOX_WIDTH, textvariable=self.segment_var, pattern=REG_SEGMENTS, default=DEMUCS_SEGMENTS)# + segment_Option.grid() + self.help_hints(segment_Label, text=SEGMENT_HELP) + + self.shifts_Label = self.menu_sub_LABEL_SET(demucs_frame, SHIFTS_TEXT) + self.shifts_Label.grid(pady=MENU_PADDING_1) + self.shifts_Option = ComboBoxEditableMenu(demucs_frame, values=DEMUCS_SHIFTS, width=MENU_COMBOBOX_WIDTH, textvariable=self.shifts_var, pattern=REG_SHIFTS, default=DEMUCS_SHIFTS[2])# + self.shifts_Option.grid(pady=MENU_PADDING_1) + self.help_hints(self.shifts_Label, text=SHIFTS_HELP) + + self.overlap_Label = self.menu_sub_LABEL_SET(demucs_frame, OVERLAP_TEXT) + self.overlap_Label.grid(pady=MENU_PADDING_1) + self.overlap_Option = ComboBoxEditableMenu(demucs_frame, values=DEMUCS_OVERLAP, width=MENU_COMBOBOX_WIDTH, textvariable=self.overlap_var, pattern=REG_OVERLAP, default=DEMUCS_OVERLAP)# + self.overlap_Option.grid(pady=MENU_PADDING_1) + self.help_hints(self.overlap_Label, text=OVERLAP_HELP) + + pitch_shift_Label = self.menu_sub_LABEL_SET(demucs_frame, SHIFT_CONVERSION_PITCH_TEXT) + pitch_shift_Label.grid(pady=MENU_PADDING_1) + pitch_shift_Option = ComboBoxEditableMenu(demucs_frame, values=SEMITONE_SEL, width=MENU_COMBOBOX_WIDTH, textvariable=self.semitone_shift_var, pattern=REG_SEMITONES, default=SEMI_DEF)# + pitch_shift_Option.grid(pady=MENU_PADDING_1) + self.help_hints(pitch_shift_Label, text=PITCH_SHIFT_HELP) + + self.is_split_mode_Option = ttk.Checkbutton(demucs_frame, text=SPLIT_MODE_TEXT, width=DEMUCS_CHECKBOXS_WIDTH, variable=self.is_split_mode_var) + self.is_split_mode_Option.grid() + self.help_hints(self.is_split_mode_Option, text=IS_SPLIT_MODE_HELP) + + self.is_demucs_combine_stems_Option = ttk.Checkbutton(demucs_frame, text=COMBINE_STEMS_TEXT, width=DEMUCS_CHECKBOXS_WIDTH, variable=self.is_demucs_combine_stems_var) + self.is_demucs_combine_stems_Option.grid() + self.help_hints(self.is_demucs_combine_stems_Option, text=IS_DEMUCS_COMBINE_STEMS_HELP) + + is_invert_spec_Option = ttk.Checkbutton(demucs_frame, text=SPECTRAL_INVERSION_TEXT, width=DEMUCS_CHECKBOXS_WIDTH, variable=self.is_invert_spec_var) + is_invert_spec_Option.grid() + self.help_hints(is_invert_spec_Option, text=IS_INVERT_SPEC_HELP) + + self.vocal_splitter_Button_opt(demuc_opt, demucs_frame, width=VR_BUT_WIDTH, pady=MENU_PADDING_1) + + self.open_demucs_model_dir_Button = ttk.Button(demucs_frame, text=OPEN_MODELS_FOLDER_TEXT, command=lambda:OPEN_FILE_func(DEMUCS_MODELS_DIR), width=VR_BUT_WIDTH) + self.open_demucs_model_dir_Button.grid(pady=MENU_PADDING_1) + + self.demucs_return_Button = ttk.Button(demucs_frame, text=BACK_TO_MAIN_MENU, command=lambda:(self.menu_advanced_demucs_options_close_window(), self.check_is_menu_settings_open())) + self.demucs_return_Button.grid(pady=MENU_PADDING_1) + + self.demucs_close_Button = ttk.Button(demucs_frame, text=CLOSE_WINDOW, command=lambda:self.menu_advanced_demucs_options_close_window()) + self.demucs_close_Button.grid(pady=MENU_PADDING_1) + + frame_list = [demucs_pre_model_frame, demucs_frame] + self.menu_placement(demuc_opt, ADVANCED_DEMUCS_OPTIONS_TEXT, is_help_hints=True, close_function=self.menu_advanced_demucs_options_close_window, frame_list=frame_list) + + def menu_advanced_mdx_options(self):#** + """Open Advanced MDX Options""" + + mdx_net_opt = tk.Toplevel() + + self.is_open_menu_advanced_mdx_options.set(True) + self.menu_advanced_mdx_options_close_window = lambda:(self.is_open_menu_advanced_mdx_options.set(False), mdx_net_opt.destroy()) + mdx_net_opt.protocol("WM_DELETE_WINDOW", self.menu_advanced_mdx_options_close_window) + + tab1, tab3 = self.menu_tab_control(mdx_net_opt, self.mdx_secondary_model_vars, is_mdxnet=True) + + mdx_net_frame = self.menu_FRAME_SET(tab1) + mdx_net_frame.grid(pady=0) + + mdx_net23_frame = self.menu_FRAME_SET(tab3) + mdx_net23_frame.grid(pady=0) + + mdx_opt_title = self.menu_title_LABEL_SET(mdx_net_frame, ADVANCED_MDXNET_OPTIONS_TEXT) + mdx_opt_title.grid(pady=MENU_PADDING_1) + + compensate_Label = self.menu_sub_LABEL_SET(mdx_net_frame, VOLUME_COMPENSATION_TEXT) + compensate_Label.grid(pady=MENU_PADDING_4) + compensate_Option = ComboBoxEditableMenu(mdx_net_frame, values=VOL_COMPENSATION, width=MENU_COMBOBOX_WIDTH, textvariable=self.compensate_var, pattern=REG_COMPENSATION, default=VOL_COMPENSATION)# + compensate_Option.grid(pady=MENU_PADDING_4) + self.help_hints(compensate_Label, text=COMPENSATE_HELP) + + mdx_segment_size_Label = self.menu_sub_LABEL_SET(mdx_net_frame, SEGMENT_SIZE_TEXT) + mdx_segment_size_Label.grid(pady=MENU_PADDING_4) + mdx_segment_size_Option = ComboBoxEditableMenu(mdx_net_frame, values=MDX_SEGMENTS, width=MENU_COMBOBOX_WIDTH, textvariable=self.mdx_segment_size_var, pattern=REG_MDX_SEG, default="256")# + mdx_segment_size_Option.grid(pady=MENU_PADDING_4) + self.help_hints(mdx_segment_size_Label, text=MDX_SEGMENT_SIZE_HELP) + + overlap_mdx_Label = self.menu_sub_LABEL_SET(mdx_net_frame, OVERLAP_TEXT) + overlap_mdx_Label.grid(pady=MENU_PADDING_4) + overlap_mdx_Option = ComboBoxEditableMenu(mdx_net_frame, values=MDX_OVERLAP, width=MENU_COMBOBOX_WIDTH, textvariable=self.overlap_mdx_var, pattern=REG_OVERLAP, default=MDX_OVERLAP)# + overlap_mdx_Option.grid(pady=MENU_PADDING_4) + self.help_hints(overlap_mdx_Label, text=OVERLAP_HELP) + + pitch_shift_Label = self.menu_sub_LABEL_SET(mdx_net_frame, SHIFT_CONVERSION_PITCH_TEXT) + pitch_shift_Label.grid(pady=MENU_PADDING_4) + pitch_shift_Option = ComboBoxEditableMenu(mdx_net_frame, values=SEMITONE_SEL, width=MENU_COMBOBOX_WIDTH, textvariable=self.semitone_shift_var, pattern=REG_SEMITONES, default=SEMI_DEF)# + pitch_shift_Option.grid(pady=MENU_PADDING_4) + self.help_hints(pitch_shift_Label, text=PITCH_SHIFT_HELP) + + if not os.path.isfile(DENOISER_MODEL_PATH): + denoise_options_var_text = self.denoise_option_var.get() + denoise_options = [option for option in MDX_DENOISE_OPTION if option != DENOISE_M] + self.denoise_option_var.set(DENOISE_S if denoise_options_var_text == DENOISE_M else denoise_options_var_text) + else: + denoise_options = MDX_DENOISE_OPTION + + denoise_option_Label = self.menu_sub_LABEL_SET(mdx_net_frame, DENOISE_OUTPUT_TEXT) + denoise_option_Label.grid(pady=MENU_PADDING_4) + denoise_option_Option = ComboBoxMenu(mdx_net_frame, textvariable=self.denoise_option_var, values=denoise_options, width=MENU_COMBOBOX_WIDTH) + denoise_option_Option.grid(pady=MENU_PADDING_4) + self.help_hints(denoise_option_Label, text=IS_DENOISE_HELP) + + is_match_frequency_pitch_Option = ttk.Checkbutton(mdx_net_frame, text=MATCH_FREQ_CUTOFF_TEXT, width=MDX_CHECKBOXS_WIDTH, variable=self.is_match_frequency_pitch_var) + is_match_frequency_pitch_Option.grid(pady=0) + self.help_hints(is_match_frequency_pitch_Option, text=IS_FREQUENCY_MATCH_HELP) + + is_invert_spec_Option = ttk.Checkbutton(mdx_net_frame, text=SPECTRAL_INVERSION_TEXT, width=MDX_CHECKBOXS_WIDTH, variable=self.is_invert_spec_var) + is_invert_spec_Option.grid(pady=0) + self.help_hints(is_invert_spec_Option, text=IS_INVERT_SPEC_HELP) + + self.vocal_splitter_Button_opt(mdx_net_opt, mdx_net_frame, pady=MENU_PADDING_1, width=VR_BUT_WIDTH) + + clear_mdx_cache_Button = ttk.Button(mdx_net_frame, text=CLEAR_AUTOSET_CACHE_TEXT, command=lambda:self.clear_cache(MDX_ARCH_TYPE), width=VR_BUT_WIDTH) + clear_mdx_cache_Button.grid(pady=MENU_PADDING_1) + self.help_hints(clear_mdx_cache_Button, text=CLEAR_CACHE_HELP) + + open_mdx_model_dir_Button = ttk.Button(mdx_net_frame, text=OPEN_MODELS_FOLDER_TEXT, command=lambda:OPEN_FILE_func(MDX_MODELS_DIR), width=VR_BUT_WIDTH) + open_mdx_model_dir_Button.grid(pady=MENU_PADDING_1) + + mdx_return_Button = ttk.Button(mdx_net_frame, text=BACK_TO_MAIN_MENU, command=lambda:(self.menu_advanced_mdx_options_close_window(), self.check_is_menu_settings_open())) + mdx_return_Button.grid(pady=MENU_PADDING_1) + + mdx_close_Button = ttk.Button(mdx_net_frame, text=CLOSE_WINDOW, command=lambda:self.menu_advanced_mdx_options_close_window()) + mdx_close_Button.grid(pady=MENU_PADDING_1) + + mdx23_opt_title = self.menu_title_LABEL_SET(mdx_net23_frame, ADVANCED_MDXNET23_OPTIONS_TEXT) + mdx23_opt_title.grid(pady=MENU_PADDING_2) + + mdx_batch_size_Label = self.menu_sub_LABEL_SET(mdx_net23_frame, BATCH_SIZE_TEXT) + mdx_batch_size_Label.grid(pady=MENU_PADDING_1) + mdx_batch_size_Option = ComboBoxEditableMenu(mdx_net23_frame, values=BATCH_SIZE, width=MENU_COMBOBOX_WIDTH, textvariable=self.mdx_batch_size_var, pattern=REG_BATCHES, default=BATCH_SIZE)# + mdx_batch_size_Option.grid(pady=MENU_PADDING_1) + self.help_hints(mdx_batch_size_Label, text=BATCH_SIZE_HELP) + + overlap_mdx23_Label = self.menu_sub_LABEL_SET(mdx_net23_frame, OVERLAP_TEXT) + overlap_mdx23_Label.grid(pady=MENU_PADDING_1) + overlap_mdx23_Option = ComboBoxEditableMenu(mdx_net23_frame, values=MDX23_OVERLAP, width=MENU_COMBOBOX_WIDTH, textvariable=self.overlap_mdx23_var, pattern=REG_OVERLAP23, default="8")# + overlap_mdx23_Option.grid(pady=MENU_PADDING_1) + self.help_hints(overlap_mdx23_Label, text=OVERLAP_23_HELP) + + is_mdx_c_seg_def_Option = ttk.Checkbutton(mdx_net23_frame, text=SEGMENT_DEFAULT_TEXT, width=MDX_CHECKBOXS_WIDTH, variable=self.is_mdx_c_seg_def_var) + is_mdx_c_seg_def_Option.grid(pady=0) + self.help_hints(is_mdx_c_seg_def_Option, text=IS_SEGMENT_DEFAULT_HELP) + + is_mdx_combine_stems_Option = ttk.Checkbutton(mdx_net23_frame, text=COMBINE_STEMS_TEXT, width=MDX_CHECKBOXS_WIDTH, variable=self.is_mdx23_combine_stems_var) + is_mdx_combine_stems_Option.grid() + self.help_hints(is_mdx_combine_stems_Option, text=IS_DEMUCS_COMBINE_STEMS_HELP) + + mdx23_close_Button = ttk.Button(mdx_net23_frame, text=CLOSE_WINDOW, command=lambda:self.menu_advanced_mdx_options_close_window()) + mdx23_close_Button.grid(pady=MENU_PADDING_2) + + frame_list = [mdx_net_frame, mdx_net23_frame] + self.menu_placement(mdx_net_opt, ADVANCED_MDXNET_OPTIONS_TEXT, is_help_hints=True, close_function=self.menu_advanced_mdx_options_close_window, frame_list=frame_list) + + def menu_advanced_ensemble_options(self):#** + """Open Ensemble Custom""" + + custom_ens_opt = tk.Toplevel() + + self.is_open_menu_advanced_ensemble_options.set(True) + self.menu_advanced_ensemble_options_close_window = lambda:(self.is_open_menu_advanced_ensemble_options.set(False), custom_ens_opt.destroy()) + custom_ens_opt.protocol("WM_DELETE_WINDOW", self.menu_advanced_ensemble_options_close_window) + + option_var = tk.StringVar(value=SELECT_SAVED_ENSEMBLE) + + custom_ens_opt_frame = self.menu_FRAME_SET(custom_ens_opt) + custom_ens_opt_frame.grid(row=0) + + settings_title_Label = self.menu_title_LABEL_SET(custom_ens_opt_frame, ADVANCED_OPTION_MENU_TEXT) + settings_title_Label.grid(pady=MENU_PADDING_2) + + delete_entry_Label = self.menu_sub_LABEL_SET(custom_ens_opt_frame, REMOVE_SAVED_ENSEMBLE_TEXT) + delete_entry_Label.grid(pady=MENU_PADDING_1) + delete_entry_Option = ComboBoxMenu(custom_ens_opt_frame, textvariable=option_var, width=ENSEMBLE_CHECKBOXS_WIDTH+2) + delete_entry_Option.grid(padx=20,pady=MENU_PADDING_1) + + is_save_all_outputs_ensemble_Option = ttk.Checkbutton(custom_ens_opt_frame, text=SAVE_ALL_OUTPUTS_TEXT, width=ENSEMBLE_CHECKBOXS_WIDTH, variable=self.is_save_all_outputs_ensemble_var) + is_save_all_outputs_ensemble_Option.grid(pady=0) + self.help_hints(is_save_all_outputs_ensemble_Option, text=IS_SAVE_ALL_OUTPUTS_ENSEMBLE_HELP) + + is_append_ensemble_name_Option = ttk.Checkbutton(custom_ens_opt_frame, text=APPEND_ENSEMBLE_NAME_TEXT, width=ENSEMBLE_CHECKBOXS_WIDTH, variable=self.is_append_ensemble_name_var) + is_append_ensemble_name_Option.grid(pady=0) + self.help_hints(is_append_ensemble_name_Option, text=IS_APPEND_ENSEMBLE_NAME_HELP) + + is_wav_ensemble_Option = ttk.Checkbutton(custom_ens_opt_frame, text=ENSEMBLE_WAVFORMS_TEXT, width=ENSEMBLE_CHECKBOXS_WIDTH, variable=self.is_wav_ensemble_var) + is_wav_ensemble_Option.grid(pady=0) + self.help_hints(is_wav_ensemble_Option, text=IS_WAV_ENSEMBLE_HELP) + + ensemble_return_Button = ttk.Button(custom_ens_opt_frame, text=BACK_TO_MAIN_MENU, command=lambda:(self.menu_advanced_ensemble_options_close_window(), self.check_is_menu_settings_open())) + ensemble_return_Button.grid(pady=MENU_PADDING_1) + + ensemble_close_Button = ttk.Button(custom_ens_opt_frame, text=CLOSE_WINDOW, command=lambda:self.menu_advanced_ensemble_options_close_window()) + ensemble_close_Button.grid(pady=MENU_PADDING_1) + + self.deletion_list_fill(delete_entry_Option, option_var, ENSEMBLE_CACHE_DIR, SELECT_SAVED_ENSEMBLE, menu_name='deleteensemble') + + self.menu_placement(custom_ens_opt, ADVANCED_ENSEMBLE_OPTIONS_TEXT, is_help_hints=True, close_function=self.menu_advanced_ensemble_options_close_window) + + def menu_advanced_align_options(self):#** + """Open Ensemble Custom""" + + advanced_align_opt = tk.Toplevel() + + self.is_open_menu_advanced_align_options.set(True) + self.menu_advanced_align_options_close_window = lambda:(self.is_open_menu_advanced_align_options.set(False), advanced_align_opt.destroy()) + advanced_align_opt.protocol("WM_DELETE_WINDOW", self.menu_advanced_align_options_close_window) + + advanced_align_opt_frame = self.menu_FRAME_SET(advanced_align_opt) + advanced_align_opt_frame.grid(row=0) + + settings_title_Label = self.menu_title_LABEL_SET(advanced_align_opt_frame, ADVANCED_ALIGN_TOOL_OPTIONS_TEXT) + settings_title_Label.grid(pady=MENU_PADDING_2) + + phase_option_Label = self.menu_sub_LABEL_SET(advanced_align_opt_frame, SECONDARY_PHASE_TEXT) + phase_option_Label.grid(pady=4) + phase_option_Option = ComboBoxMenu(advanced_align_opt_frame, textvariable=self.phase_option_var, values=ALIGN_PHASE_OPTIONS, width=MENU_COMBOBOX_WIDTH) + phase_option_Option.grid(pady=4) + self.help_hints(phase_option_Label, text=IS_PHASE_HELP) + + phase_shifts_Label = self.menu_sub_LABEL_SET(advanced_align_opt_frame, PHASE_SHIFTS_TEXT) + phase_shifts_Label.grid(pady=4)# + phase_shifts_Option = ComboBoxMenu(advanced_align_opt_frame, textvariable=self.phase_shifts_var, values=list(PHASE_SHIFTS_OPT.keys()), width=MENU_COMBOBOX_WIDTH) + phase_shifts_Option.grid(pady=4) + self.help_hints(phase_shifts_Label, text=PHASE_SHIFTS_ALIGN_HELP) + + is_save_align_Option = ttk.Checkbutton(advanced_align_opt_frame, text=SAVE_ALIGNED_TRACK_TEXT, width=MDX_CHECKBOXS_WIDTH, variable=self.is_save_align_var) + is_save_align_Option.grid(pady=0) + self.help_hints(is_save_align_Option, text=IS_ALIGN_TRACK_HELP) + + is_match_silence_Option = ttk.Checkbutton(advanced_align_opt_frame, text=SILENCE_MATCHING_TEXT, width=MDX_CHECKBOXS_WIDTH, variable=self.is_match_silence_var) + is_match_silence_Option.grid(pady=0) + self.help_hints(is_match_silence_Option, text=IS_MATCH_SILENCE_HELP) + + is_spec_match_Option = ttk.Checkbutton(advanced_align_opt_frame, text=SPECTRAL_MATCHING_TEXT, width=MDX_CHECKBOXS_WIDTH, variable=self.is_spec_match_var) + is_spec_match_Option.grid(pady=0) + self.help_hints(is_spec_match_Option, text=IS_MATCH_SPEC_HELP) + + ensemble_return_Button = ttk.Button(advanced_align_opt_frame, text=BACK_TO_MAIN_MENU, command=lambda:(self.menu_advanced_align_options_close_window(), self.check_is_menu_settings_open())) + ensemble_return_Button.grid(pady=MENU_PADDING_1) + + ensemble_close_Button = ttk.Button(advanced_align_opt_frame, text=CLOSE_WINDOW, command=lambda:self.menu_advanced_align_options_close_window()) + ensemble_close_Button.grid(pady=MENU_PADDING_1) + + self.menu_placement(advanced_align_opt, ADVANCED_ALIGN_TOOL_OPTIONS_TEXT, is_help_hints=True, close_function=self.menu_advanced_align_options_close_window) + + def menu_help(self):#** + """Open Help Guide""" + + help_guide_opt = tk.Toplevel() + + self.is_open_menu_help.set(True) + self.menu_help_close_window = lambda:(self.is_open_menu_help.set(False), help_guide_opt.destroy()) + help_guide_opt.protocol("WM_DELETE_WINDOW", self.menu_help_close_window) + + tabControl = ttk.Notebook(help_guide_opt) + + tab1 = ttk.Frame(tabControl) + tab2 = ttk.Frame(tabControl) + tab3 = ttk.Frame(tabControl) + tab4 = ttk.Frame(tabControl) + + tabControl.add(tab1, text ='Credits') + tabControl.add(tab2, text ='Resources') + tabControl.add(tab3, text ='Application License & Version Information') + tabControl.add(tab4, text ='Additional Information') + + tabControl.pack(expand = 1, fill ="both") + + tab1.grid_rowconfigure(0, weight=1) + tab1.grid_columnconfigure(0, weight=1) + + tab2.grid_rowconfigure(0, weight=1) + tab2.grid_columnconfigure(0, weight=1) + + tab3.grid_rowconfigure(0, weight=1) + tab3.grid_columnconfigure(0, weight=1) + + tab4.grid_rowconfigure(0, weight=1) + tab4.grid_columnconfigure(0, weight=1) + + section_title_Label = lambda place, frame, text, font_size=FONT_SIZE_4: tk.Label(master=frame, text=text,font=(MAIN_FONT_NAME, f"{font_size}", "bold"), justify="center", fg="#F4F4F4").grid(row=place,column=0,padx=0,pady=MENU_PADDING_4) + description_Label = lambda place, frame, text, font=FONT_SIZE_2: tk.Label(master=frame, text=text, font=(MAIN_FONT_NAME, f"{font}"), justify="center", fg="#F6F6F7").grid(row=place,column=0,padx=0,pady=MENU_PADDING_4) + + def credit_label(place, frame, text, link=None, message=None, is_link=False, is_top=False): + if is_top: + thank = tk.Label(master=frame, text=text, font=(MAIN_FONT_NAME, f"{FONT_SIZE_3}", "bold"), justify="center", fg="#13849f") + else: + thank = tk.Label(master=frame, text=text, font=(MAIN_FONT_NAME, f"{FONT_SIZE_3}", "underline" if is_link else "normal"), justify="center", fg="#13849f") + thank.configure(cursor="hand2") if is_link else None + thank.grid(row=place,column=0,padx=0,pady=1) + if link: + thank.bind("", lambda e:webbrowser.open_new_tab(link)) + if message: + description_Label(place+1, frame, message) + + def Link(place, frame, text, link, description, font=FONT_SIZE_2): + link_label = tk.Label(master=frame, text=text, font=(MAIN_FONT_NAME, f"{FONT_SIZE_4}", "underline"), foreground=FG_COLOR, justify="center", cursor="hand2") + link_label.grid(row=place,column=0,padx=0,pady=MENU_PADDING_1) + link_label.bind("", lambda e:webbrowser.open_new_tab(link)) + description_Label(place+1, frame, description, font=font) + + def right_click_menu(event): + right_click_menu = tk.Menu(self, font=(MAIN_FONT_NAME, FONT_SIZE_1), tearoff=0) + right_click_menu.add_command(label='Return to Settings Menu', command=lambda:(self.menu_help_close_window(), self.check_is_menu_settings_open())) + right_click_menu.add_command(label='Exit Window', command=lambda:self.menu_help_close_window()) + + try: + right_click_menu.tk_popup(event.x_root,event.y_root) + right_click_release_linux(right_click_menu, help_guide_opt) + finally: + right_click_menu.grab_release() + + help_guide_opt.bind(right_click_button, lambda e:right_click_menu(e)) + credits_Frame = tk.Frame(tab1, highlightthicknes=50) + credits_Frame.grid(row=0, column=0, padx=0, pady=0) + tk.Label(credits_Frame, image=self.credits_img).grid(row=1,column=0,padx=0,pady=MENU_PADDING_1) + + section_title_Label(place=0, + frame=credits_Frame, + text="Core UVR Developers") + + credit_label(place=2, + frame=credits_Frame, + text="Anjok07\nAufr33", + is_top=True) + + section_title_Label(place=3, + frame=credits_Frame, + text="Special Thanks") + + credit_label(place=6, + frame=credits_Frame, + text="Tsurumeso", + message="Developed the original VR Architecture AI code.", + link="https://github.com/tsurumeso/vocal-remover", + is_link=True) + + credit_label(place=8, + frame=credits_Frame, + text="Kuielab & Woosung Choi", + message="Developed the original MDX-Net AI code.", + link="https://github.com/kuielab", + is_link=True) + + credit_label(place=10, + frame=credits_Frame, + text="Adefossez & Demucs", + message="Core developer of Facebook's Demucs Music Source Separation.", + link="https://github.com/facebookresearch/demucs", + is_link=True) + + credit_label(place=12, + frame=credits_Frame, + text="Bas Curtiz", + message="Designed the official UVR logo, icon, banner, splash screen.") + + credit_label(place=14, + frame=credits_Frame, + text="DilanBoskan", + message="Your contributions at the start of this project were essential to the success of UVR. Thank you!") + + credit_label(place=16, + frame=credits_Frame, + text="Audio Separation and CC Karaoke & Friends Discord Communities", + message="Thank you for the support!") + + more_info_tab_Frame = tk.Frame(tab2, highlightthicknes=30) + more_info_tab_Frame.grid(row=0,column=0,padx=0,pady=0) + + section_title_Label(place=3, + frame=more_info_tab_Frame, + text="Resources") + + Link(place=4, + frame=more_info_tab_Frame, + text="Ultimate Vocal Remover (Official GitHub)", + link="https://github.com/Anjok07/ultimatevocalremovergui", + description="You can find updates, report issues, and give us a shout via our official GitHub.", + font=FONT_SIZE_1) + + Link(place=8, + frame=more_info_tab_Frame, + text="X-Minus AI", + link="https://x-minus.pro/ai", + description="Many of the models provided are also on X-Minus.\n" + \ + "X-Minus benefits users without the computing resources to run the GUI or models locally.", + font=FONT_SIZE_1) + + Link(place=12, + frame=more_info_tab_Frame, + text="MVSep", + link="https://mvsep.com/quality_checker/leaderboard.php", + description="Some of our models are also on MVSep.\n" + \ + "Click the link above for a list of some of the best settings \nand model combinations recorded by fellow UVR users.\nSpecial thanks to ZFTurbo for all his work on MVSep!", + font=FONT_SIZE_1) + + Link(place=18, + frame=more_info_tab_Frame, + text="FFmpeg", + link="https://www.wikihow.com/Install-FFmpeg-on-Windows", + description="UVR relies on FFmpeg for processing non-wav audio files.\n" + \ + "If you are missing FFmpeg, please see the installation guide via the link provided.", + font=FONT_SIZE_1) + + Link(place=22, + frame=more_info_tab_Frame, + text="Rubber Band Library", + link="https://breakfastquay.com/rubberband/", + description="UVR uses the Rubber Band library for the sound stretch and pitch shift tool.\n" + \ + "You can get more information on it via the link provided.", + font=FONT_SIZE_1) + + Link(place=26, + frame=more_info_tab_Frame, + text="Matchering", + link="https://github.com/sergree/matchering", + description="UVR uses the Matchering library for the \"Matchering\" Audio Tool.\n" + \ + "You can get more information on it via the link provided.", + font=FONT_SIZE_1) + + Link(place=30, + frame=more_info_tab_Frame, + text="Official UVR BMAC", + link=DONATE_LINK_BMAC, + description="If you wish to support and donate to this project, click the link above!", + font=FONT_SIZE_1) + + appplication_license_tab_Frame = tk.Frame(tab3) + appplication_license_tab_Frame.grid(row=0,column=0,padx=0,pady=0) + + appplication_license_Label = tk.Label(appplication_license_tab_Frame, text='UVR License Information', font=(MAIN_FONT_NAME, f"{FONT_SIZE_6}", "bold"), justify="center", fg="#f4f4f4") + appplication_license_Label.grid(row=0,column=0,padx=0,pady=25) + + appplication_license_Text = tk.Text(appplication_license_tab_Frame, font=(MAIN_FONT_NAME, f"{FONT_SIZE_4}"), fg="white", bg="black", width=72, wrap=tk.WORD, borderwidth=0) + appplication_license_Text.grid(row=1,column=0,padx=0,pady=0) + appplication_license_Text_scroll = ttk.Scrollbar(appplication_license_tab_Frame, orient=tk.VERTICAL) + appplication_license_Text.config(yscrollcommand=appplication_license_Text_scroll.set) + appplication_license_Text_scroll.configure(command=appplication_license_Text.yview) + appplication_license_Text.grid(row=4,sticky=tk.W) + appplication_license_Text_scroll.grid(row=4, column=1, sticky=tk.NS) + appplication_license_Text.insert("insert", LICENSE_TEXT(VERSION, current_patch)) + appplication_license_Text.configure(state=tk.DISABLED) + + application_change_log_tab_Frame = tk.Frame(tab4) + application_change_log_tab_Frame.grid(row=0,column=0,padx=0,pady=0) + + application_change_log_Label = tk.Label(application_change_log_tab_Frame, text='Additional Information', font=(MAIN_FONT_NAME, f"{FONT_SIZE_6}", "bold"), justify="center", fg="#f4f4f4") + application_change_log_Label.grid(row=0,column=0,padx=0,pady=25) + + application_change_log_Text = tk.Text(application_change_log_tab_Frame, font=(MAIN_FONT_NAME, f"{FONT_SIZE_4}"), fg="white", bg="black", width=72, wrap=tk.WORD, borderwidth=0) + application_change_log_Text.grid(row=1,column=0,padx=40 if is_macos else 30,pady=0) + application_change_log_Text_scroll = ttk.Scrollbar(application_change_log_tab_Frame, orient=tk.VERTICAL) + application_change_log_Text.config(yscrollcommand=application_change_log_Text_scroll.set) + application_change_log_Text_scroll.configure(command=application_change_log_Text.yview) + application_change_log_Text.grid(row=4,sticky=tk.W) + application_change_log_Text_scroll.grid(row=4, column=1, sticky=tk.NS) + application_change_log_Text.insert("insert", self.bulletin_data) + auto_hyperlink(application_change_log_Text) + application_change_log_Text.configure(state=tk.DISABLED) + + self.menu_placement(help_guide_opt, "Information Guide") + + def menu_error_log(self):# + """Open Error Log""" + + self.is_confirm_error_var.set(False) + + copied_var = tk.StringVar(value='') + error_log_screen = tk.Toplevel() + + self.is_open_menu_error_log.set(True) + self.menu_error_log_close_window = lambda:(self.is_open_menu_error_log.set(False), error_log_screen.destroy()) + error_log_screen.protocol("WM_DELETE_WINDOW", self.menu_error_log_close_window) + + error_log_frame = self.menu_FRAME_SET(error_log_screen) + error_log_frame.grid(row=0) + + error_consol_title_Label = self.menu_title_LABEL_SET(error_log_frame, ERROR_CONSOLE_TEXT) + error_consol_title_Label.grid(row=1,column=0,padx=20,pady=MENU_PADDING_2) + + error_details_Text = tk.Text(error_log_frame, font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), fg="#D37B7B", bg="black", width=110, wrap=tk.WORD, borderwidth=0) + error_details_Text.grid(row=2,column=0,padx=0,pady=0) + error_details_Text.insert("insert", self.error_log_var.get()) + error_details_Text.bind(right_click_button, lambda e:self.right_click_menu_popup(e, text_box=True)) + self.current_text_box = error_details_Text + error_details_Text_scroll = ttk.Scrollbar(error_log_frame, orient=tk.VERTICAL) + error_details_Text.config(yscrollcommand=error_details_Text_scroll.set) + error_details_Text_scroll.configure(command=error_details_Text.yview) + error_details_Text.grid(row=2,sticky=tk.W) + error_details_Text_scroll.grid(row=2, column=1, sticky=tk.NS) + + copy_text_Label = tk.Label(error_log_frame, textvariable=copied_var, font=(MAIN_FONT_NAME, f"{FONT_SIZE_0}"), justify="center", fg="#f4f4f4") + copy_text_Label.grid(padx=20,pady=0) + + copy_text_Button = ttk.Button(error_log_frame, text=COPY_ALL_TEXT_TEXT, width=14, command=lambda:(pyperclip.copy(error_details_Text.get(1.0, tk.END+"-1c")), copied_var.set('Copied!'))) + copy_text_Button.grid(padx=20,pady=MENU_PADDING_1) + + report_issue_Button = ttk.Button(error_log_frame, text=REPORT_ISSUE_TEXT, width=14, command=lambda:webbrowser.open_new_tab(ISSUE_LINK)) + report_issue_Button.grid(padx=20,pady=MENU_PADDING_1) + + error_log_return_Button = ttk.Button(error_log_frame, text=BACK_TO_MAIN_MENU, command=lambda:(self.menu_error_log_close_window(), self.menu_settings())) + error_log_return_Button.grid(padx=20,pady=MENU_PADDING_1) + + error_log_close_Button = ttk.Button(error_log_frame, text=CLOSE_WINDOW, command=lambda:self.menu_error_log_close_window()) + error_log_close_Button.grid(padx=20,pady=MENU_PADDING_1) + + self.menu_placement(error_log_screen, UVR_ERROR_LOG_TEXT) + + def menu_secondary_model(self, tab, ai_network_vars: dict): + + #Settings Tab 1 + secondary_model_Frame = self.menu_FRAME_SET(tab) + secondary_model_Frame.grid(row=0) + + settings_title_Label = self.menu_title_LABEL_SET(secondary_model_Frame, SECONDARY_MODEL_TEXT) + settings_title_Label.grid(row=0,column=0,padx=0,pady=MENU_PADDING_3) + + voc_inst_list = self.model_list(VOCAL_STEM, INST_STEM, is_dry_check=True) + other_list = self.model_list(OTHER_STEM, NO_OTHER_STEM, is_dry_check=True) + bass_list = self.model_list(BASS_STEM, NO_BASS_STEM, is_dry_check=True) + drum_list = self.model_list(DRUM_STEM, NO_DRUM_STEM, is_dry_check=True) + + voc_inst_secondary_model_var = ai_network_vars["voc_inst_secondary_model"] + other_secondary_model_var = ai_network_vars["other_secondary_model"] + bass_secondary_model_var = ai_network_vars["bass_secondary_model"] + drums_secondary_model_var = ai_network_vars["drums_secondary_model"] + voc_inst_secondary_model_scale_var = ai_network_vars['voc_inst_secondary_model_scale'] + other_secondary_model_scale_var = ai_network_vars['other_secondary_model_scale'] + bass_secondary_model_scale_var = ai_network_vars['bass_secondary_model_scale'] + drums_secondary_model_scale_var = ai_network_vars['drums_secondary_model_scale'] + is_secondary_model_activate_var = ai_network_vars["is_secondary_model_activate"] + + change_state_lambda = lambda:change_state(tk.NORMAL if is_secondary_model_activate_var.get() else tk.DISABLED) + init_convert_to_percentage = lambda raw_value:f"{int(float(raw_value)*100)}%" + + voc_inst_secondary_model_scale_LABEL_var = tk.StringVar(value=init_convert_to_percentage(voc_inst_secondary_model_scale_var.get())) + other_secondary_model_scale_LABEL_var = tk.StringVar(value=init_convert_to_percentage(other_secondary_model_scale_var.get())) + bass_secondary_model_scale_LABEL_var = tk.StringVar(value=init_convert_to_percentage(bass_secondary_model_scale_var.get())) + drums_secondary_model_scale_LABEL_var = tk.StringVar(value=init_convert_to_percentage(drums_secondary_model_scale_var.get())) + + def change_state(change_state): + for child_widget in secondary_model_Frame.winfo_children(): + if type(child_widget) is ComboBoxMenu: + change_state = READ_ONLY if change_state == tk.NORMAL else change_state + child_widget.configure(state=change_state) + elif type(child_widget) is ttk.Scale: + child_widget.configure(state=change_state) + + def convert_to_percentage(raw_value, scale_var: tk.StringVar, label_var: tk.StringVar): + raw_value = '%0.2f' % float(raw_value) + scale_var.set(raw_value) + label_var.set(f"{int(float(raw_value)*100)}%") + + def build_widgets(stem_pair: str, model_list: list, option_var: tk.StringVar, label_var: tk.StringVar, scale_var: tk.DoubleVar): + model_list.insert(0, NO_MODEL) + secondary_model_Label = self.menu_sub_LABEL_SET(secondary_model_Frame, f'{stem_pair}', font_size=FONT_SIZE_3) + secondary_model_Label.grid(pady=MENU_PADDING_1) + secondary_model_Option = ComboBoxMenu(secondary_model_Frame, textvariable=option_var, values=model_list, dropdown_name=stem_pair, offset=310, width=READ_ONLY_COMBO_WIDTH) + secondary_model_Option.grid(pady=MENU_PADDING_1) + secondary_scale_info_Label = tk.Label(secondary_model_Frame, textvariable=label_var, font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), foreground=FG_COLOR) + secondary_scale_info_Label.grid(pady=0) + secondary_model_scale_Option = ttk.Scale(secondary_model_Frame, variable=scale_var, from_=0.01, to=0.99, command=lambda s:convert_to_percentage(s, scale_var, label_var), orient='horizontal') + secondary_model_scale_Option.grid(pady=2) + self.help_hints(secondary_model_Label, text=SECONDARY_MODEL_HELP) + self.help_hints(secondary_scale_info_Label, text=SECONDARY_MODEL_SCALE_HELP) + + build_widgets(stem_pair=VOCAL_PAIR, + model_list=voc_inst_list, + option_var=voc_inst_secondary_model_var, + label_var=voc_inst_secondary_model_scale_LABEL_var, + scale_var=voc_inst_secondary_model_scale_var) + + build_widgets(stem_pair=OTHER_PAIR, + model_list=other_list, + option_var=other_secondary_model_var, + label_var=other_secondary_model_scale_LABEL_var, + scale_var=other_secondary_model_scale_var) + + build_widgets(stem_pair=BASS_PAIR, + model_list=bass_list, + option_var=bass_secondary_model_var, + label_var=bass_secondary_model_scale_LABEL_var, + scale_var=bass_secondary_model_scale_var) + + build_widgets(stem_pair=DRUM_PAIR, + model_list=drum_list, + option_var=drums_secondary_model_var, + label_var=drums_secondary_model_scale_LABEL_var, + scale_var=drums_secondary_model_scale_var) + + is_secondary_model_activate_Option = ttk.Checkbutton(secondary_model_Frame, text=ACTIVATE_SECONDARY_MODEL_TEXT, variable=is_secondary_model_activate_var, command=change_state_lambda) + is_secondary_model_activate_Option.grid(row=21,pady=MENU_PADDING_1) + self.help_hints(is_secondary_model_activate_Option, text=SECONDARY_MODEL_ACTIVATE_HELP) + + change_state_lambda() + + self.change_state_lambda = change_state_lambda + + def menu_preproc_model(self, tab): + + preproc_model_Frame = self.menu_FRAME_SET(tab) + preproc_model_Frame.grid(row=0) + + demucs_pre_proc_model_title_Label = self.menu_title_LABEL_SET(preproc_model_Frame, PREPROCESS_MODEL_CHOOSE_TEXT) + demucs_pre_proc_model_title_Label.grid(pady=MENU_PADDING_3) + + pre_proc_list = self.model_list(VOCAL_STEM, INST_STEM, is_dry_check=True, is_no_demucs=True) + pre_proc_list.insert(0, NO_MODEL) + + enable_pre_proc_model = lambda:(is_demucs_pre_proc_model_inst_mix_Option.configure(state=tk.NORMAL), demucs_pre_proc_model_Option.configure(state=READ_ONLY)) + disable_pre_proc_model = lambda:(is_demucs_pre_proc_model_inst_mix_Option.configure(state=tk.DISABLED), demucs_pre_proc_model_Option.configure(state=tk.DISABLED), self.is_demucs_pre_proc_model_inst_mix_var.set(False)) + pre_proc_model_toggle = lambda:enable_pre_proc_model() if self.is_demucs_pre_proc_model_activate_var.get() else disable_pre_proc_model() + + demucs_pre_proc_model_Label = self.menu_sub_LABEL_SET(preproc_model_Frame, SELECT_MODEL_TEXT, font_size=FONT_SIZE_3) + demucs_pre_proc_model_Label.grid() + demucs_pre_proc_model_Option = ComboBoxMenu(preproc_model_Frame, textvariable=self.demucs_pre_proc_model_var, values=pre_proc_list, dropdown_name='demucspre', offset=310, width=READ_ONLY_COMBO_WIDTH) + demucs_pre_proc_model_Option.grid(pady=MENU_PADDING_2) + + is_demucs_pre_proc_model_inst_mix_Option = ttk.Checkbutton(preproc_model_Frame, text='Save Instrumental Mixture', width=DEMUCS_PRE_CHECKBOXS_WIDTH, variable=self.is_demucs_pre_proc_model_inst_mix_var) + is_demucs_pre_proc_model_inst_mix_Option.grid() + self.help_hints(is_demucs_pre_proc_model_inst_mix_Option, text=PRE_PROC_MODEL_INST_MIX_HELP) + + is_demucs_pre_proc_model_activate_Option = ttk.Checkbutton(preproc_model_Frame, text=ACTIVATE_PRE_PROCESS_MODEL_TEXT, width=DEMUCS_PRE_CHECKBOXS_WIDTH, variable=self.is_demucs_pre_proc_model_activate_var, command=pre_proc_model_toggle) + is_demucs_pre_proc_model_activate_Option.grid() + self.help_hints(is_demucs_pre_proc_model_activate_Option, text=PRE_PROC_MODEL_ACTIVATE_HELP) + + pre_proc_model_toggle() + + def menu_manual_downloads(self): + + manual_downloads_menu = tk.Toplevel() + model_selection_var = tk.StringVar(value=SELECT_MODEL_TEXT) + #info_text_var = tk.StringVar(value='') + + if self.is_online: + model_data = self.online_data + + # Save the data as a JSON file + with open(DOWNLOAD_MODEL_CACHE, 'w') as json_file: + json.dump(model_data, json_file) + + else: + if os.path.isfile(DOWNLOAD_MODEL_CACHE): + with open(DOWNLOAD_MODEL_CACHE, 'r') as json_file: + model_data = json.load(json_file) + + vr_download_list = model_data["vr_download_list"] + mdx_download_list = model_data["mdx_download_list"] + demucs_download_list = model_data["demucs_download_list"] + mdx_download_list.update(model_data["mdx23c_download_list"]) + + def create_link(link): + final_link = lambda:webbrowser.open_new_tab(link) + return final_link + + def get_links(): + for widgets in manual_downloads_link_Frame.winfo_children(): + widgets.destroy() + + main_selection = model_selection_var.get() + + MAIN_ROW = 0 + + self.menu_sub_LABEL_SET(manual_downloads_link_Frame, 'Download Link(s)').grid(row=0,column=0,padx=0,pady=MENU_PADDING_4) + + if VR_ARCH_TYPE in main_selection: + main_selection = vr_download_list[main_selection] + model_dir = VR_MODELS_DIR + elif MDX_ARCH_TYPE in main_selection or MDX_23_NAME in main_selection: + if isinstance(mdx_download_list[main_selection], dict): + main_selection = mdx_download_list[main_selection] + main_selection = list(main_selection.keys())[0] + else: + main_selection = mdx_download_list[main_selection] + + model_dir = MDX_MODELS_DIR + + elif DEMUCS_ARCH_TYPE in main_selection: + model_dir = DEMUCS_NEWER_REPO_DIR if 'v3' in main_selection or 'v4' in main_selection else DEMUCS_MODELS_DIR + main_selection = demucs_download_list[main_selection] + + if type(main_selection) is dict: + for links in main_selection.values(): + MAIN_ROW += 1 + button_text = f" - Item {MAIN_ROW}" if len(main_selection.keys()) >= 2 else '' + link = create_link(links) + link_button = ttk.Button(manual_downloads_link_Frame, text=f"Open Link to Model{button_text}", command=link).grid(row=MAIN_ROW,column=0,padx=0,pady=MENU_PADDING_1) + else: + link = f"{NORMAL_REPO}{main_selection}" + link_button = ttk.Button(manual_downloads_link_Frame, text=OPEN_LINK_TO_MODEL_TEXT, command=lambda:webbrowser.open_new_tab(link)) + link_button.grid(row=1,column=0,padx=0,pady=MENU_PADDING_2) + + self.menu_sub_LABEL_SET(manual_downloads_link_Frame, SELECTED_MODEL_PLACE_PATH_TEXT).grid(row=MAIN_ROW+2,column=0,padx=0,pady=MENU_PADDING_4) + ttk.Button(manual_downloads_link_Frame, text=OPEN_MODEL_DIRECTORY_TEXT, command=lambda:OPEN_FILE_func(model_dir)).grid(row=MAIN_ROW+3,column=0,padx=0,pady=MENU_PADDING_1) + + manual_downloads_menu_Frame = self.menu_FRAME_SET(manual_downloads_menu) + manual_downloads_menu_Frame.grid(row=0) + + manual_downloads_link_Frame = self.menu_FRAME_SET(manual_downloads_menu, thickness=5) + manual_downloads_link_Frame.grid(row=1) + + manual_downloads_menu_title_Label = self.menu_title_LABEL_SET(manual_downloads_menu_Frame, MANUAL_DOWNLOADS_TEXT, width=45) + manual_downloads_menu_title_Label.grid(row=0,column=0,padx=0,pady=MENU_PADDING_3) + + manual_downloads_menu_select_Label = self.menu_sub_LABEL_SET(manual_downloads_menu_Frame, SELECT_MODEL_TEXT) + manual_downloads_menu_select_Label.grid(row=1,column=0,padx=0,pady=MENU_PADDING_1) + + manual_downloads_menu_select_Option = ttk.OptionMenu(manual_downloads_menu_Frame, model_selection_var) + manual_downloads_menu_select_VR_Option = tk.Menu(manual_downloads_menu_select_Option['menu']) + manual_downloads_menu_select_MDX_Option = tk.Menu(manual_downloads_menu_select_Option['menu']) + manual_downloads_menu_select_DEMUCS_Option = tk.Menu(manual_downloads_menu_select_Option['menu']) + manual_downloads_menu_select_Option['menu'].add_cascade(label='VR Models', menu= manual_downloads_menu_select_VR_Option) + manual_downloads_menu_select_Option['menu'].add_cascade(label='MDX-Net Models', menu= manual_downloads_menu_select_MDX_Option) + manual_downloads_menu_select_Option['menu'].add_cascade(label='Demucs Models', menu= manual_downloads_menu_select_DEMUCS_Option) + + for model_selection_vr in vr_download_list.keys(): + if not os.path.isfile(os.path.join(VR_MODELS_DIR, vr_download_list[model_selection_vr])): + manual_downloads_menu_select_VR_Option.add_radiobutton(label=model_selection_vr, variable=model_selection_var, command=get_links) + + for model_selection_mdx in mdx_download_list.keys(): + + model_name = mdx_download_list[model_selection_mdx] + + if isinstance(model_name, dict): + items_list = list(model_name.items()) + model_name, config = items_list[0] + config_link = f"{MDX23_CONFIG_CHECKS}{config}" + config_local = os.path.join(MDX_C_CONFIG_PATH, config) + if not os.path.isfile(config_local): + try: + with urllib.request.urlopen(config_link) as response: + with open(config_local, 'wb') as out_file: + out_file.write(response.read()) + except Exception as e: + model_name = None + + #print(model_name) + + if model_name: + if not os.path.isfile(os.path.join(MDX_MODELS_DIR, model_name)): + manual_downloads_menu_select_MDX_Option.add_radiobutton(label=model_selection_mdx, variable=model_selection_var, command=get_links) + + for model_selection_demucs in demucs_download_list.keys(): + manual_downloads_menu_select_DEMUCS_Option.add_radiobutton(label=model_selection_demucs, variable=model_selection_var, command=get_links) + + manual_downloads_menu_select_Option.grid(row=2,column=0,padx=0,pady=MENU_PADDING_1) + + self.menu_placement(manual_downloads_menu, MANUAL_DOWNLOADS_TEXT, pop_up=True, close_function=lambda:manual_downloads_menu.destroy()) + + def invalid_tooltip(self, widget, pattern=None): + tooltip = ToolTip(widget) + invalid_message = lambda:tooltip.showtip(INVALID_INPUT_E, True) + + def invalid_message_(): + tooltip.showtip(INVALID_INPUT_E, True) + + def validation(value): + if re.fullmatch(modified_pattern, value) is None: + return False + else: + return True + + if not pattern: + pattern = r'^[a-zA-Z0-9 -]{0,25}$' + + modified_pattern = f"({pattern}|)" + + widget.configure( + validate='key', + validatecommand=(self.register(validation), '%P'), + invalidcommand=(self.register(invalid_message)) + ) + + return invalid_message_ + + def pop_up_save_current_settings(self): + """Save current application settings as...""" + + settings_save = tk.Toplevel(root) + + settings_save_var = tk.StringVar(value='') + + settings_save_Frame = self.menu_FRAME_SET(settings_save) + settings_save_Frame.grid(row=1) + + save_func = lambda:(self.pop_up_save_current_settings_sub_json_dump(settings_save_var.get()), settings_save.destroy()) + validation = lambda value:False if re.fullmatch(REG_SAVE_INPUT, value) is None else True + + settings_save_title = self.menu_title_LABEL_SET(settings_save_Frame, SAVE_CURRENT_SETTINGS_TEXT) + settings_save_title.grid() + + settings_save_name_Label = self.menu_sub_LABEL_SET(settings_save_Frame, NAME_SETTINGS_TEXT) + settings_save_name_Label.grid(pady=MENU_PADDING_1) + settings_save_name_Entry = ttk.Entry(settings_save_Frame, textvariable=settings_save_var, justify='center', width=25) + settings_save_name_Entry.grid(pady=MENU_PADDING_1) + invalid_message = self.invalid_tooltip(settings_save_name_Entry) + settings_save_name_Entry.bind(right_click_button, self.right_click_menu_popup) + self.current_text_box = settings_save_name_Entry + settings_save_name_Entry.focus_set() + + self.spacer_label(settings_save_Frame) + + entry_rules_Label = tk.Label(settings_save_Frame, text=ENSEMBLE_INPUT_RULE, font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), foreground='#868687', justify="left") + entry_rules_Label.grid() + + settings_save_Button = ttk.Button(settings_save_Frame, text=SAVE_TEXT, command=lambda:save_func() if validation(settings_save_var.get()) else invalid_message()) + settings_save_Button.grid(pady=MENU_PADDING_1) + + stop_process_Button = ttk.Button(settings_save_Frame, text=CANCEL_TEXT, command=lambda:settings_save.destroy()) + stop_process_Button.grid(pady=MENU_PADDING_1) + + self.menu_placement(settings_save, SAVE_CURRENT_SETTINGS_TEXT, pop_up=True) + + def pop_up_save_current_settings_sub_json_dump(self, settings_save_name: str): + """Dumps current application settings to a json named after user input""" + + if settings_save_name: + self.save_current_settings_var.set(settings_save_name) + settings_save_name = settings_save_name.replace(" ", "_") + current_settings = self.save_values(app_close=False) + + saved_data_dump = json.dumps(current_settings, indent=4) + with open(os.path.join(SETTINGS_CACHE_DIR, f'{settings_save_name}.json'), "w") as outfile: + outfile.write(saved_data_dump) + + def pop_up_update_confirmation(self): + """Ask user is they want to update""" + + is_new_update = self.online_data_refresh(confirmation_box=True) + is_download_in_app_var = tk.BooleanVar(value=False) + + def update_type(): + if is_download_in_app_var.get(): + self.download_item(is_update_app=True) + else: + webbrowser.open_new_tab(self.download_update_link_var.get()) + + update_confirmation_win.destroy() + + if is_new_update: + + update_confirmation_win = tk.Toplevel() + + update_confirmation_Frame = self.menu_FRAME_SET(update_confirmation_win) + update_confirmation_Frame.grid(row=0) + + update_found_label = self.menu_title_LABEL_SET(update_confirmation_Frame, UPDATE_FOUND_TEXT, width=15) + update_found_label.grid(row=0,column=0,padx=0,pady=MENU_PADDING_2) + + confirm_update_label = self.menu_sub_LABEL_SET(update_confirmation_Frame, UPDATE_CONFIRMATION_TEXT, font_size=FONT_SIZE_3) + confirm_update_label.grid(row=1,column=0,padx=0,pady=MENU_PADDING_1) + + yes_button = ttk.Button(update_confirmation_Frame, text=YES_TEXT, command=update_type) + yes_button.grid(row=2,column=0,padx=0,pady=MENU_PADDING_1) + + no_button = ttk.Button(update_confirmation_Frame, text=NO_TEXT, command=lambda:(update_confirmation_win.destroy())) + no_button.grid(row=3,column=0,padx=0,pady=MENU_PADDING_1) + + if is_windows: + download_outside_application_button = ttk.Checkbutton(update_confirmation_Frame, variable=is_download_in_app_var, text='Download Update in Application') + download_outside_application_button.grid(row=4,column=0,padx=0,pady=MENU_PADDING_1) + + self.menu_placement(update_confirmation_win, CONFIRM_UPDATE_TEXT, pop_up=True) + + def pop_up_user_code_input(self): + """Input VIP Code""" + + self.user_code_validation_var.set('') + + self.user_code = tk.Toplevel() + + user_code_Frame = self.menu_FRAME_SET(self.user_code) + user_code_Frame.grid(row=0) + + user_code_title_Label = self.menu_title_LABEL_SET(user_code_Frame, USER_DOWNLOAD_CODES_TEXT, width=20) + user_code_title_Label.grid(row=0,column=0,padx=0,pady=MENU_PADDING_1) + + user_code_Label = self.menu_sub_LABEL_SET(user_code_Frame, DOWNLOAD_CODE_TEXT) + user_code_Label.grid(pady=MENU_PADDING_1) + + self.user_code_Entry = ttk.Entry(user_code_Frame, textvariable=self.user_code_var, justify='center') + self.user_code_Entry.grid(pady=MENU_PADDING_1) + self.user_code_Entry.bind(right_click_button, self.right_click_menu_popup) + self.current_text_box = self.user_code_Entry + + tooltip = ToolTip(self.user_code_Entry) + def invalid_message_(text, is_success_message): + tooltip.hidetip() + tooltip.showtip(text, True, is_success_message) + + self.spacer_label(user_code_Frame) + + user_code_confrim_Button = ttk.Button(user_code_Frame, text=CONFIRM_TEXT, command=lambda:self.download_validate_code(confirm=True, code_message=invalid_message_)) + user_code_confrim_Button.grid(pady=MENU_PADDING_1) + + user_code_cancel_Button = ttk.Button(user_code_Frame, text=CANCEL_TEXT, command=lambda:self.user_code.destroy()) + user_code_cancel_Button.grid(pady=MENU_PADDING_1) + + support_title_Label = self.menu_title_LABEL_SET(user_code_Frame, text=SUPPORT_UVR_TEXT, width=20) + support_title_Label.grid(pady=MENU_PADDING_1) + + support_sub_Label = tk.Label(user_code_Frame, text=GET_DL_VIP_CODE_TEXT, font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), foreground=FG_COLOR) + support_sub_Label.grid(pady=MENU_PADDING_1) + + uvr_patreon_Button = ttk.Button(user_code_Frame, text=UVR_PATREON_LINK_TEXT, command=lambda:webbrowser.open_new_tab(DONATE_LINK_PATREON)) + uvr_patreon_Button.grid(pady=MENU_PADDING_1) + + bmac_patreon_Button=ttk.Button(user_code_Frame, text=BMAC_UVR_TEXT, command=lambda:webbrowser.open_new_tab(DONATE_LINK_BMAC)) + bmac_patreon_Button.grid(pady=MENU_PADDING_1) + + self.menu_placement(self.user_code, INPUT_CODE_TEXT, pop_up=True) + + def pop_up_change_model_defaults(self, top_window): + """ + Change model defaults... + """ + + def message_box_(text, is_success_message): + tooltip.hidetip() + tooltip.showtip(text, True, is_success_message) + + def delete_entry(): + model_data = self.assemble_model_data(model=change_model_defaults_var.get(), arch_type=ENSEMBLE_CHECK, is_change_def=True, is_get_hash_dir_only=True)[0] + hash_file = model_data.model_hash_dir + if hash_file: + if os.path.isfile(hash_file): + os.remove(hash_file) + message_box_("Defined Parameters Deleted", True) + else: + message_box_("No Defined Parameters Found", False) + + self.update_checkbox_text() + + def change_default(): + model_data = self.assemble_model_data(model=change_model_defaults_var.get(), arch_type=ENSEMBLE_CHECK, is_change_def=True)[0] + if model_data.model_status: + message_box_("Model Parameters Changed", True) + self.update_checkbox_text() + + change_model_defaults = tk.Toplevel(root) + change_model_defaults_var = tk.StringVar(value=NO_MODEL) + + default_change_model_list = list(self.default_change_model_list) + default_change_model_list.insert(0, NO_MODEL) + + change_model_defaults_Frame = self.menu_FRAME_SET(change_model_defaults) + change_model_defaults_Frame.grid(row=1) + + change_model_defaults_title = self.menu_title_LABEL_SET(change_model_defaults_Frame, CHANGE_MODEL_DEFAULT_TEXT) + change_model_defaults_title.grid() + + model_param_Label = self.menu_sub_LABEL_SET(change_model_defaults_Frame, SELECT_MODEL_TEXT) + model_param_Label.grid(pady=MENU_PADDING_1) + model_param_Option = ComboBoxMenu(change_model_defaults_Frame, dropdown_name='changemodeldefault', textvariable=change_model_defaults_var, values=default_change_model_list, offset=310, width=READ_ONLY_COMBO_WIDTH) + model_param_Option.grid(pady=MENU_PADDING_1) + tooltip = ToolTip(model_param_Option) + + self.spacer_label(change_model_defaults_Frame) + + change_params_Button = ttk.Button(change_model_defaults_Frame, text=CHANGE_PARAMETERS_TEXT, command=change_default, width=20) + change_params_Button.grid(pady=MENU_PADDING_1) + + delete_params_Button = ttk.Button(change_model_defaults_Frame, text=DELETE_PARAMETERS_TEXT, command=delete_entry, width=20) + delete_params_Button.grid(pady=MENU_PADDING_1) + + cancel_Button = ttk.Button(change_model_defaults_Frame, text=CANCEL_TEXT, command=lambda:change_model_defaults.destroy()) + cancel_Button.grid(pady=MENU_PADDING_1) + + self.menu_placement(change_model_defaults, CHANGE_MODEL_DEFAULT_TEXT, top_window=top_window) + + def pop_up_set_vocal_splitter(self, top_window): + """ + Set vocal splitter + """ + + try: + set_vocal_splitter = tk.Toplevel(root) + + model_list = self.assemble_model_data(arch_type=KARAOKEE_CHECK, is_dry_check=True) + if not model_list: + self.set_vocal_splitter_var.set(NO_MODEL) + model_list.insert(0, NO_MODEL) + + enable_voc_split_model = lambda:(model_select_Option.configure(state=READ_ONLY), save_inst_Button.configure(state=tk.NORMAL)) + disable_voc_split_model = lambda:(model_select_Option.configure(state=tk.DISABLED), save_inst_Button.configure(state=tk.DISABLED), self.is_save_inst_set_vocal_splitter_var.set(False)) + voc_split_model_toggle = lambda:enable_voc_split_model() if self.is_set_vocal_splitter_var.get() else disable_voc_split_model() + + enable_deverb_opt = lambda:(deverb_vocals_Option.configure(state=READ_ONLY)) + disable_deverb_opt= lambda:(deverb_vocals_Option.configure(state=tk.DISABLED)) + deverb_opt_toggle = lambda:enable_deverb_opt() if self.is_deverb_vocals_var.get() else disable_deverb_opt() + + set_vocal_splitter_Frame = self.menu_FRAME_SET(set_vocal_splitter) + set_vocal_splitter_Frame.grid(row=1) + + set_vocal_splitter_title = self.menu_title_LABEL_SET(set_vocal_splitter_Frame, VOCAL_SPLIT_MODE_OPTIONS_TEXT) + set_vocal_splitter_title.grid(pady=MENU_PADDING_2) + + model_select_Label = self.menu_sub_LABEL_SET(set_vocal_splitter_Frame, SELECT_MODEL_TEXT) + model_select_Label.grid(pady=MENU_PADDING_1) + model_select_Option = ComboBoxMenu(set_vocal_splitter_Frame, dropdown_name='setvocalsplit', textvariable=self.set_vocal_splitter_var, values=model_list, offset=310, width=READ_ONLY_COMBO_WIDTH) + model_select_Option.grid(pady=7) + self.help_hints(model_select_Option, text=VOC_SPLIT_MODEL_SELECT_HELP)# + + save_inst_Button = ttk.Checkbutton(set_vocal_splitter_Frame, text=SAVE_SPLIT_VOCAL_INSTRUMENTALS_TEXT, variable=self.is_save_inst_set_vocal_splitter_var, width=SET_VOC_SPLIT_CHECK_WIDTH, command=voc_split_model_toggle) + save_inst_Button.grid()# + self.help_hints(save_inst_Button, text=IS_VOC_SPLIT_INST_SAVE_SELECT_HELP)# + + change_params_Button = ttk.Checkbutton(set_vocal_splitter_Frame, text=ENABLE_VOCAL_SPLIT_MODE_TEXT, variable=self.is_set_vocal_splitter_var, width=SET_VOC_SPLIT_CHECK_WIDTH, command=voc_split_model_toggle) + change_params_Button.grid()# + self.help_hints(change_params_Button, text=IS_VOC_SPLIT_MODEL_SELECT_HELP)# + + set_vocal_splitter_title = self.menu_title_LABEL_SET(set_vocal_splitter_Frame, VOCAL_DEVERB_OPTIONS_TEXT) + set_vocal_splitter_title.grid(pady=MENU_PADDING_2) + + deverb_vocals_Label = self.menu_sub_LABEL_SET(set_vocal_splitter_Frame, 'Select Vocal Type to Deverb') + deverb_vocals_Label.grid(pady=MENU_PADDING_1) + deverb_vocals_Option = ComboBoxMenu(set_vocal_splitter_Frame, dropdown_name='setvocaldeverb', textvariable=self.deverb_vocal_opt_var, values=list(DEVERB_MAPPER.keys()), width=23) + deverb_vocals_Option.grid(pady=7) + self.help_hints(deverb_vocals_Option, text=IS_DEVERB_OPT_HELP)# + + is_deverb_vocals_Option = ttk.Checkbutton(set_vocal_splitter_Frame, text=DEVERB_VOCALS_TEXT, width=15 if is_windows else 11, variable=self.is_deverb_vocals_var, command=deverb_opt_toggle) + is_deverb_vocals_Option.grid(pady=0) + self.help_hints(is_deverb_vocals_Option, text=IS_DEVERB_VOC_HELP)# + + if not os.path.isfile(DEVERBER_MODEL_PATH): + self.is_deverb_vocals_var.set(False) + is_deverb_vocals_Option.configure(state=tk.DISABLED) + disable_deverb_opt() + + cancel_Button = ttk.Button(set_vocal_splitter_Frame, text=CLOSE_WINDOW, command=lambda:set_vocal_splitter.destroy(), width=16) + cancel_Button.grid(pady=MENU_PADDING_3) + + voc_split_model_toggle() + deverb_opt_toggle() + + self.menu_placement(set_vocal_splitter, VOCAL_SPLIT_OPTIONS_TEXT, top_window=top_window, pop_up=True) + except Exception as e: + error_name = f'{type(e).__name__}' + traceback_text = ''.join(traceback.format_tb(e.__traceback__)) + message = f'{error_name}: "{e}"\n{traceback_text}"' + self.error_log_var.set(message) + + def pop_up_mdx_model(self, mdx_model_hash, model_path): + """Opens MDX-Net model settings""" + + is_compatible_model = True + is_ckpt = False + primary_stem = VOCAL_STEM + + try: + if model_path.endswith(ONNX): + model = onnx.load(model_path) + model_shapes = [[d.dim_value for d in _input.type.tensor_type.shape.dim] for _input in model.graph.input][0] + dim_f = model_shapes[2] + dim_t = int(math.log(model_shapes[3], 2)) + n_fft = '6144' + + if model_path.endswith(CKPT): + is_ckpt = True + model_params = torch.load(model_path, map_location=lambda storage, loc: storage) + model_params = model_params['hyper_parameters'] + dim_f = model_params['dim_f'] + dim_t = int(math.log(model_params['dim_t'], 2)) + n_fft = model_params['n_fft'] + + for stem in STEM_SET_MENU: + if model_params['target_name'] == stem.lower(): + primary_stem = INST_STEM if model_params['target_name'] == OTHER_STEM.lower() else stem + + except Exception as e: + error_name = f'{type(e).__name__}' + traceback_text = ''.join(traceback.format_tb(e.__traceback__)) + message = f'{error_name}: "{e}"\n{traceback_text}"' + #self.error_log_var.set(message) + is_compatible_model = False + if is_ckpt: + self.pop_up_mdx_c_param(mdx_model_hash) + else: + dim_f = 0 + dim_t = 0 + self.error_dialoge(INVALID_ONNX_MODEL_ERROR) + self.error_log_var.set("{}".format(error_text('MDX-Net Model Settings', e))) + self.mdx_model_params = None + + if is_compatible_model: + mdx_model_set = tk.Toplevel(root) + mdx_n_fft_scale_set_var = tk.StringVar(value=n_fft) + mdx_dim_f_set_var = tk.StringVar(value=dim_f) + mdx_dim_t_set_var = tk.StringVar(value=dim_t) + primary_stem_var = tk.StringVar(value=primary_stem) + mdx_compensate_var = tk.StringVar(value=1.035) + + balance_value_var = tk.StringVar(value=0) + is_kara_model_var = tk.BooleanVar(value=False) + is_bv_model_var = tk.BooleanVar(value=False) + + def toggle_kara(): + if is_kara_model_var.get(): + is_bv_model_var.set(False) + balance_value_Option.configure(state=tk.DISABLED) + + def toggle_bv(): + if is_bv_model_var.get(): + is_kara_model_var.set(False) + balance_value_Option.configure(state=READ_ONLY) + else: + balance_value_Option.configure(state=tk.DISABLED) + + def opt_menu_selection(selection): + if not selection in [VOCAL_STEM, INST_STEM]: + balance_value_Option.configure(state=tk.DISABLED) + is_kara_model_Option.configure(state=tk.DISABLED) + is_bv_model_Option.configure(state=tk.DISABLED) + is_kara_model_var.set(False) + is_bv_model_var.set(False) + balance_value_var.set(0) + else: + is_kara_model_Option.configure(state=tk.NORMAL) + is_bv_model_Option.configure(state=tk.NORMAL) + + mdx_model_set_Frame = self.menu_FRAME_SET(mdx_model_set) + mdx_model_set_Frame.grid(row=2) + + mdx_model_set_title = self.menu_title_LABEL_SET(mdx_model_set_Frame, SPECIFY_MDX_NET_MODEL_PARAMETERS_TEXT) + mdx_model_set_title.grid(pady=MENU_PADDING_3) + + set_stem_name_Label = self.menu_sub_LABEL_SET(mdx_model_set_Frame, PRIMARY_STEM_TEXT) + set_stem_name_Label.grid(pady=MENU_PADDING_1) + set_stem_name_Option = ttk.OptionMenu(mdx_model_set_Frame, primary_stem_var, None, *STEM_SET_MENU, command=opt_menu_selection) + set_stem_name_Option.configure(width=15) + set_stem_name_Option.grid(pady=MENU_PADDING_1) + set_stem_name_Option['menu'].insert_separator(len(STEM_SET_MENU)) + set_stem_name_Option['menu'].add_radiobutton(label=INPUT_STEM_NAME, command=tk._setit(primary_stem_var, INPUT_STEM_NAME, lambda e:self.pop_up_input_stem_name(primary_stem_var, mdx_model_set))) + self.help_hints(set_stem_name_Label, text=SET_STEM_NAME_HELP) + + is_kara_model_Option = ttk.Checkbutton(mdx_model_set_Frame, text=KARAOKE_MODEL_TEXT, width=SET_MENUS_CHECK_WIDTH, variable=is_kara_model_var, command=toggle_kara) + is_kara_model_Option.grid(pady=0) + + is_bv_model_Option = ttk.Checkbutton(mdx_model_set_Frame, text=BV_MODEL_TEXT, width=SET_MENUS_CHECK_WIDTH, variable=is_bv_model_var, command=toggle_bv) + is_bv_model_Option.grid(pady=0) + + balance_value_Label = self.menu_sub_LABEL_SET(mdx_model_set_Frame, BALANCE_VALUE_TEXT) + balance_value_Label.grid(pady=MENU_PADDING_1) + balance_value_Option = ComboBoxMenu(mdx_model_set_Frame, textvariable=balance_value_var, values=BALANCE_VALUES, width=COMBO_WIDTH) + balance_value_Option.configure(state=tk.DISABLED) + balance_value_Option.grid(pady=MENU_PADDING_1) + #self.help_hints(balance_value_Label, text=balance_value_HELP) + + mdx_dim_t_set_Label = self.menu_sub_LABEL_SET(mdx_model_set_Frame, 'Dim_t') + mdx_dim_t_set_Label.grid(pady=MENU_PADDING_1) + mdx_dim_f_set_Label = self.menu_sub_LABEL_SET(mdx_model_set_Frame, MDX_MENU_WAR_TEXT) + mdx_dim_f_set_Label.grid(pady=MENU_PADDING_1) + mdx_dim_t_set_Option = ComboBoxEditableMenu(mdx_model_set_Frame, values=('7', '8'), textvariable=mdx_dim_t_set_var, pattern=REG_SHIFTS, default=mdx_dim_t_set_var.get(), width=COMBO_WIDTH, is_stay_disabled=is_ckpt) + mdx_dim_t_set_Option.grid(pady=MENU_PADDING_1) + self.help_hints(mdx_dim_t_set_Label, text=MDX_DIM_T_SET_HELP) + + mdx_dim_f_set_Label = self.menu_sub_LABEL_SET(mdx_model_set_Frame, 'Dim_f') + mdx_dim_f_set_Label.grid(pady=MENU_PADDING_1) + mdx_dim_f_set_Label = self.menu_sub_LABEL_SET(mdx_model_set_Frame, MDX_MENU_WAR_TEXT) + mdx_dim_f_set_Label.grid(pady=MENU_PADDING_1) + mdx_dim_f_set_Option = ComboBoxEditableMenu(mdx_model_set_Frame, values=(MDX_POP_DIMF), textvariable=mdx_dim_f_set_var, pattern=REG_SHIFTS, default=mdx_dim_f_set_var.get(), width=COMBO_WIDTH, is_stay_disabled=is_ckpt) + mdx_dim_f_set_Option.grid(pady=MENU_PADDING_1) + self.help_hints(mdx_dim_f_set_Label, text=MDX_DIM_F_SET_HELP) + + mdx_n_fft_scale_set_Label = self.menu_sub_LABEL_SET(mdx_model_set_Frame, 'N_FFT Scale') + mdx_n_fft_scale_set_Label.grid(pady=MENU_PADDING_1) + mdx_n_fft_scale_set_Option = ComboBoxEditableMenu(mdx_model_set_Frame, values=(MDX_POP_NFFT), textvariable=mdx_n_fft_scale_set_var, pattern=REG_SHIFTS, default=mdx_n_fft_scale_set_var.get(), width=COMBO_WIDTH, is_stay_disabled=is_ckpt) + mdx_n_fft_scale_set_Option.grid(pady=MENU_PADDING_1) + self.help_hints(mdx_n_fft_scale_set_Label, text=MDX_N_FFT_SCALE_SET_HELP) + + mdx_compensate_Label = self.menu_sub_LABEL_SET(mdx_model_set_Frame, VOLUME_COMPENSATION_TEXT) + mdx_compensate_Label.grid(pady=MENU_PADDING_1) + mdx_compensate_Entry = ComboBoxEditableMenu(mdx_model_set_Frame, values=('1.035', '1.08'), textvariable=mdx_compensate_var, pattern=REG_VOL_COMP, default=mdx_compensate_var.get(), width=COMBO_WIDTH) + mdx_compensate_Entry.grid(pady=MENU_PADDING_1) + self.help_hints(mdx_compensate_Label, text=POPUP_COMPENSATE_HELP) + + mdx_param_set_Button = ttk.Button(mdx_model_set_Frame, text=CONFIRM_TEXT, command=lambda:pull_data()) + mdx_param_set_Button.grid(pady=MENU_PADDING_2) + + stop_process_Button = ttk.Button(mdx_model_set_Frame, text=CANCEL_TEXT, command=lambda:cancel()) + stop_process_Button.grid(pady=0) + + if is_ckpt: + mdx_dim_t_set_Option.configure(state=tk.DISABLED) + mdx_dim_f_set_Option.configure(state=tk.DISABLED) + mdx_n_fft_scale_set_Option.configure(state=tk.DISABLED) + + def pull_data(): + mdx_model_params = { + 'compensate': float(mdx_compensate_var.get()), + 'mdx_dim_f_set': int(mdx_dim_f_set_var.get()), + 'mdx_dim_t_set': int(mdx_dim_t_set_var.get()), + 'mdx_n_fft_scale_set': int(mdx_n_fft_scale_set_var.get()), + 'primary_stem': primary_stem_var.get(), + IS_KARAOKEE: bool(is_kara_model_var.get()), + IS_BV_MODEL: bool(is_bv_model_var.get()), + IS_BV_MODEL_REBAL: float(balance_value_var.get()) + } + + self.pop_up_mdx_model_sub_json_dump(mdx_model_params, mdx_model_hash) + mdx_model_set.destroy() + + def cancel(): + mdx_model_set.destroy() + + mdx_model_set.protocol("WM_DELETE_WINDOW", cancel) + + frame_list = [mdx_model_set_Frame] + opt_menu_selection(primary_stem_var.get()) + self.menu_placement(mdx_model_set, SPECIFY_PARAMETERS_TEXT, pop_up=False if is_macos else True, frame_list=frame_list) + + def pop_up_mdx_model_sub_json_dump(self, mdx_model_params, mdx_model_hash): + """Dumps current selected MDX-Net model settings to a json named after model hash""" + + self.mdx_model_params = mdx_model_params + + mdx_model_params_dump = json.dumps(mdx_model_params, indent=4) + with open(os.path.join(MDX_HASH_DIR, f'{mdx_model_hash}.json'), "w") as outfile: + outfile.write(mdx_model_params_dump) + + def pop_up_mdx_c_param(self, mdx_model_hash): + """Opens MDX-C param settings""" + + mdx_c_param_menu = tk.Toplevel() + + get_mdx_c_params = lambda dir, ext:tuple(os.path.splitext(x)[0] for x in os.listdir(dir) if x.endswith(ext)) + new_mdx_c_params = get_mdx_c_params(MDX_C_CONFIG_PATH, YAML) + mdx_c_model_param_var = tk.StringVar(value=NONE_SELECTED) + + def pull_data(): + mdx_c_model_params = { + 'config_yaml': f"{mdx_c_model_param_var.get()}{YAML}"} + + if not mdx_c_model_param_var.get() == NONE_SELECTED: + self.pop_up_mdx_model_sub_json_dump(mdx_c_model_params, mdx_model_hash) + mdx_c_param_menu.destroy() + else: + self.mdx_model_params = None + + def cancel(): + self.mdx_model_params = None + mdx_c_param_menu.destroy() + + mdx_c_param_Frame = self.menu_FRAME_SET(mdx_c_param_menu) + mdx_c_param_Frame.grid(row=0) + + mdx_c_param_title_title = self.menu_title_LABEL_SET(mdx_c_param_Frame, MDXNET_C_MODEL_PARAMETERS_TEXT, width=28) + mdx_c_param_title_title.grid(row=0,column=0,padx=0,pady=0) + + mdx_c_model_param_Label = self.menu_sub_LABEL_SET(mdx_c_param_Frame, SELECT_MODEL_PARAM_TEXT) + mdx_c_model_param_Label.grid(pady=MENU_PADDING_1) + mdx_c_model_param_Option = ComboBoxMenu(mdx_c_param_Frame, textvariable=mdx_c_model_param_var, values=new_mdx_c_params, width=30) + mdx_c_model_param_Option.grid(padx=20,pady=MENU_PADDING_1) + self.help_hints(mdx_c_model_param_Label, text=VR_MODEL_PARAM_HELP) + + mdx_c_param_confrim_Button = ttk.Button(mdx_c_param_Frame, text=CONFIRM_TEXT, command=lambda:pull_data()) + mdx_c_param_confrim_Button.grid(pady=MENU_PADDING_1) + + mdx_c_param_cancel_Button = ttk.Button(mdx_c_param_Frame, text=CANCEL_TEXT, command=cancel) + mdx_c_param_cancel_Button.grid(pady=MENU_PADDING_1) + + mdx_c_param_menu.protocol("WM_DELETE_WINDOW", cancel) + + self.menu_placement(mdx_c_param_menu, CHOOSE_MODEL_PARAM_TEXT, pop_up=True) + + def pop_up_vr_param(self, vr_model_hash): + """Opens VR param settings""" + + vr_param_menu = tk.Toplevel() + + get_vr_params = lambda dir, ext:tuple(os.path.splitext(x)[0] for x in os.listdir(dir) if x.endswith(ext)) + new_vr_params = get_vr_params(VR_PARAM_DIR, JSON) + vr_model_param_var = tk.StringVar(value=NONE_SELECTED) + vr_model_stem_var = tk.StringVar(value='Vocals') + vr_model_nout_var = tk.StringVar(value=32) + vr_model_nout_lstm_var = tk.StringVar(value=128) + is_new_vr_model_var = tk.BooleanVar(value=False) + balance_value_var = tk.StringVar(value=0) + is_kara_model_var = tk.BooleanVar(value=False) + is_bv_model_var = tk.BooleanVar(value=False) + + enable_new_vr_op = lambda:(vr_model_nout_Option.configure(state=READ_ONLY), vr_model_nout_lstm_Option.configure(state=READ_ONLY)) + disable_new_vr_op = lambda:(vr_model_nout_Option.configure(state=tk.DISABLED), vr_model_nout_lstm_Option.configure(state=tk.DISABLED)) + vr_new_toggle = lambda:enable_new_vr_op() if is_new_vr_model_var.get() else disable_new_vr_op() + + def pull_data(): + if is_new_vr_model_var.get(): + vr_model_params = { + 'vr_model_param': vr_model_param_var.get(), + 'primary_stem': vr_model_stem_var.get(), + 'nout': int(vr_model_nout_var.get()), + 'nout_lstm': int(vr_model_nout_lstm_var.get()), + IS_KARAOKEE: bool(is_kara_model_var.get()), + IS_BV_MODEL: bool(is_bv_model_var.get()), + IS_BV_MODEL_REBAL: float(balance_value_var.get()) + } + else: + vr_model_params = { + 'vr_model_param': vr_model_param_var.get(), + 'primary_stem': vr_model_stem_var.get(), + IS_KARAOKEE: bool(is_kara_model_var.get()), + IS_BV_MODEL: bool(is_bv_model_var.get()), + IS_BV_MODEL_REBAL: float(balance_value_var.get())} + + if not vr_model_param_var.get() == NONE_SELECTED: + self.pop_up_vr_param_sub_json_dump(vr_model_params, vr_model_hash) + vr_param_menu.destroy() + else: + self.vr_model_params = None + self.error_dialoge(INVALID_PARAM_MODEL_ERROR) + + def cancel(): + self.vr_model_params = None + vr_param_menu.destroy() + + def toggle_kara(): + if is_kara_model_var.get(): + is_bv_model_var.set(False) + balance_value_Option.configure(state=tk.DISABLED) + + def toggle_bv(): + if is_bv_model_var.get(): + is_kara_model_var.set(False) + balance_value_Option.configure(state=READ_ONLY) + else: + balance_value_Option.configure(state=tk.DISABLED) + + def opt_menu_selection(selection): + if not selection in [VOCAL_STEM, INST_STEM]: + balance_value_Option.configure(state=tk.DISABLED) + is_kara_model_Option.configure(state=tk.DISABLED) + is_bv_model_Option.configure(state=tk.DISABLED) + is_kara_model_var.set(False) + is_bv_model_var.set(False) + balance_value_var.set(0) + else: + is_kara_model_Option.configure(state=tk.NORMAL) + is_bv_model_Option.configure(state=tk.NORMAL) + + vr_param_Frame = self.menu_FRAME_SET(vr_param_menu) + vr_param_Frame.grid(row=0, padx=20) + + vr_param_title_title = self.menu_title_LABEL_SET(vr_param_Frame, SPECIFY_VR_MODEL_PARAMETERS_TEXT) + vr_param_title_title.grid() + + vr_model_stem_Label = self.menu_sub_LABEL_SET(vr_param_Frame, PRIMARY_STEM_TEXT) + vr_model_stem_Label.grid(pady=MENU_PADDING_1) + vr_model_stem_Option = ttk.OptionMenu(vr_param_Frame, vr_model_stem_var, None, *STEM_SET_MENU, command=opt_menu_selection) + vr_model_stem_Option.configure(width=15) + vr_model_stem_Option.grid(pady=MENU_PADDING_1) + vr_model_stem_Option['menu'].insert_separator(len(STEM_SET_MENU)) + vr_model_stem_Option['menu'].add_radiobutton(label=INPUT_STEM_NAME, command=tk._setit(vr_model_stem_var, INPUT_STEM_NAME, lambda e:self.pop_up_input_stem_name(vr_model_stem_var, vr_param_menu))) + self.help_hints(vr_model_stem_Label, text=SET_STEM_NAME_HELP) + + is_kara_model_Option = ttk.Checkbutton(vr_param_Frame, text=KARAOKE_MODEL_TEXT, width=SET_MENUS_CHECK_WIDTH, variable=is_kara_model_var, command=toggle_kara) + is_kara_model_Option.grid(pady=0) + + is_bv_model_Option = ttk.Checkbutton(vr_param_Frame, text=BV_MODEL_TEXT, width=SET_MENUS_CHECK_WIDTH, variable=is_bv_model_var, command=toggle_bv) + is_bv_model_Option.grid(pady=0) + + balance_value_Label = self.menu_sub_LABEL_SET(vr_param_Frame, BALANCE_VALUE_TEXT) + balance_value_Label.grid(pady=MENU_PADDING_1) + balance_value_Option = ComboBoxMenu(vr_param_Frame, textvariable=balance_value_var, values=BALANCE_VALUES, width=COMBO_WIDTH) + balance_value_Option.configure(state=tk.DISABLED) + balance_value_Option.grid(pady=MENU_PADDING_1) + + is_new_vr_model_Option = ttk.Checkbutton(vr_param_Frame, text=VR_51_MODEL_TEXT, width=SET_MENUS_CHECK_WIDTH, variable=is_new_vr_model_var, command=vr_new_toggle) + is_new_vr_model_Option.grid(pady=MENU_PADDING_1) + + vr_model_nout_Label = self.menu_sub_LABEL_SET(vr_param_Frame, 'Out Channels') + vr_model_nout_Label.grid(pady=MENU_PADDING_1) + vr_model_nout_Option = ComboBoxEditableMenu(vr_param_Frame, values=NOUT_SEL, textvariable=vr_model_nout_var, pattern=REG_SHIFTS, default='32', width=COMBO_WIDTH) + vr_model_nout_Option.grid(pady=MENU_PADDING_1) + #self.help_hints(vr_model_nout_Label, text=VR_MODEL_NOUT_HELP) + + vr_model_nout_lstm_Label = self.menu_sub_LABEL_SET(vr_param_Frame, 'Out Channels (LSTM layer)') + vr_model_nout_lstm_Label.grid(pady=MENU_PADDING_1) + vr_model_nout_lstm_Option = ComboBoxEditableMenu(vr_param_Frame, values=NOUT_LSTM_SEL, textvariable=vr_model_nout_lstm_var, pattern=REG_SHIFTS, default='128', width=COMBO_WIDTH)# + vr_model_nout_lstm_Option.grid(pady=MENU_PADDING_1) + #self.help_hints(vr_model_param_Label, text=VR_MODEL_NOUT_LSTM_HELP) + + vr_model_param_Label = self.menu_sub_LABEL_SET(vr_param_Frame, SELECT_MODEL_PARAM_TEXT) + vr_model_param_Label.grid(pady=MENU_PADDING_1) + vr_model_param_Option = ComboBoxMenu(vr_param_Frame, textvariable=vr_model_param_var, values=new_vr_params, width=30) + vr_model_param_Option.grid(pady=MENU_PADDING_1) + self.help_hints(vr_model_param_Label, text=VR_MODEL_PARAM_HELP) + + vr_param_confrim_Button = ttk.Button(vr_param_Frame, text=CONFIRM_TEXT, command=lambda:pull_data()) + vr_param_confrim_Button.grid(pady=MENU_PADDING_1) + + vr_param_cancel_Button = ttk.Button(vr_param_Frame, text=CANCEL_TEXT, command=cancel) + vr_param_cancel_Button.grid(pady=MENU_PADDING_1) + + vr_new_toggle() + opt_menu_selection(vr_model_stem_var.get()) + + vr_param_menu.protocol("WM_DELETE_WINDOW", cancel) + + frame_list = [vr_param_Frame] + self.menu_placement(vr_param_menu, CHOOSE_MODEL_PARAM_TEXT, pop_up=False if is_macos else True, frame_list=frame_list) + + def pop_up_vr_param_sub_json_dump(self, vr_model_params, vr_model_hash): + """Dumps current selected VR model settings to a json named after model hash""" + + self.vr_model_params = vr_model_params + + vr_model_params_dump = json.dumps(vr_model_params, indent=4) + + with open(os.path.join(VR_HASH_DIR, f'{vr_model_hash}.json'), "w") as outfile: + outfile.write(vr_model_params_dump) + + def pop_up_input_stem_name(self, stem_var:tk.StringVar, parent_window:tk.Toplevel): + """ + Input Stem Name + """ + + stem_input_save = tk.Toplevel(root) + + def close_window(is_cancel=True): + + if is_cancel or not stem_input_save_var.get(): + stem_var.set(VOCAL_STEM) + else: + stem_input_save_text = stem_input_save_var.get().capitalize() + + if stem_input_save_text == VOCAL_STEM: + stem_text = INST_STEM if is_inverse_stem_var.get() else stem_input_save_text + elif stem_input_save_text == INST_STEM: + stem_text = VOCAL_STEM if is_inverse_stem_var.get() else stem_input_save_text + else: + stem_text = f"{NO_STEM}{stem_input_save_text}" if is_inverse_stem_var.get() else stem_input_save_text + + stem_var.set(stem_text) + + stem_input_save.destroy() + + parent_window.attributes('-topmost', 'true') if OPERATING_SYSTEM == "Linux" else None + parent_window.grab_set() + root.wait_window(parent_window) + + stem_input_save_var = tk.StringVar(value='') + is_inverse_stem_var = tk.BooleanVar(value=False) + + validation = lambda value:False if re.fullmatch(REG_INPUT_STEM_NAME, value) is None else True + stem_input_save_Frame = self.menu_FRAME_SET(stem_input_save) + stem_input_save_Frame.grid(row=1) + + stem_input_save_title = self.menu_title_LABEL_SET(stem_input_save_Frame, INPUT_STEM_NAME_TEXT) + stem_input_save_title.grid(pady=0) + + stem_input_name_Label = self.menu_sub_LABEL_SET(stem_input_save_Frame, STEM_NAME_TEXT) + stem_input_name_Label.grid(pady=MENU_PADDING_1) + stem_input_name_Entry = ttk.Combobox(stem_input_save_Frame, textvariable=stem_input_save_var, values=STEM_SET_MENU_2, justify='center', width=25) + invalid_message = self.invalid_tooltip(stem_input_name_Entry, REG_INPUT_STEM_NAME) + stem_input_name_Entry.grid(pady=MENU_PADDING_1) + stem_input_name_Entry.focus_set() + + self.spacer_label(stem_input_save_Frame) + + is_inverse_stem_Button = ttk.Checkbutton(stem_input_save_Frame, text=IS_INVERSE_STEM_TEXT, variable=is_inverse_stem_var) + is_inverse_stem_Button.grid(pady=0) + + entry_rules_Label = tk.Label(stem_input_save_Frame, text=STEM_INPUT_RULE, font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), foreground='#868687', justify="left") + entry_rules_Label.grid(pady=MENU_PADDING_1) + + mdx_param_set_Button = ttk.Button(stem_input_save_Frame, text=DONE_MENU_TEXT, command=lambda:close_window(is_cancel=False) if validation(stem_input_save_var.get()) else invalid_message()) + mdx_param_set_Button.grid(pady=MENU_PADDING_1) + + stop_process_Button = ttk.Button(stem_input_save_Frame, text=CANCEL_TEXT, command=close_window) + stop_process_Button.grid(pady=MENU_PADDING_1) + + stem_input_save.protocol("WM_DELETE_WINDOW", close_window) + + frame_list = [stem_input_save_Frame] + self.menu_placement(stem_input_save, INPUT_UNIQUE_STEM_NAME_TEXT, pop_up=True, frame_list=frame_list) + + def pop_up_save_ensemble(self): + """ + Save Ensemble as... + """ + + ensemble_save = tk.Toplevel(root) + + ensemble_save_var = tk.StringVar(value='') + + ensemble_save_Frame = self.menu_FRAME_SET(ensemble_save) + ensemble_save_Frame.grid(row=1) + + validation = lambda value:False if re.fullmatch(REG_SAVE_INPUT, value) is None else True + save_func = lambda:(self.pop_up_save_ensemble_sub_json_dump(self.ensemble_listbox_get_all_selected_models(), ensemble_save_var.get()), ensemble_save.destroy()) + + if len(self.ensemble_listbox_get_all_selected_models()) <= 1: + ensemble_save_title = self.menu_title_LABEL_SET(ensemble_save_Frame, ENSEMBLE_WARNING_NOT_ENOUGH_SHORT_TEXT, width=20) + ensemble_save_title.grid() + + ensemble_save_title = self.menu_sub_LABEL_SET(ensemble_save_Frame, ENSEMBLE_WARNING_NOT_ENOUGH_TEXT) + ensemble_save_title.grid(pady=MENU_PADDING_1) + + stop_process_Button = ttk.Button(ensemble_save_Frame, text=OK_TEXT, command=lambda:ensemble_save.destroy()) + stop_process_Button.grid() + else: + ensemble_save_title = self.menu_title_LABEL_SET(ensemble_save_Frame, SAVE_CURRENT_ENSEMBLE_TEXT) + ensemble_save_title.grid() + + ensemble_name_Label = self.menu_sub_LABEL_SET(ensemble_save_Frame, ENSEMBLE_NAME_TEXT) + ensemble_name_Label.grid(pady=MENU_PADDING_1) + ensemble_name_Entry = ttk.Entry(ensemble_save_Frame, textvariable=ensemble_save_var, justify='center', width=25) + ensemble_name_Entry.grid(pady=MENU_PADDING_1) + invalid_message = self.invalid_tooltip(ensemble_name_Entry) + ensemble_name_Entry.focus_set() + self.spacer_label(ensemble_save_Frame) + + entry_rules_Label = tk.Label(ensemble_save_Frame, text=ENSEMBLE_INPUT_RULE, font=(MAIN_FONT_NAME, f"{FONT_SIZE_1}"), foreground='#868687', justify="left") + entry_rules_Label.grid() + + mdx_param_set_Button = ttk.Button(ensemble_save_Frame, text=SAVE_TEXT, command=lambda:save_func() if validation(ensemble_save_var.get()) else invalid_message()) + mdx_param_set_Button.grid(pady=MENU_PADDING_1) + + stop_process_Button = ttk.Button(ensemble_save_Frame, text=CANCEL_TEXT, command=lambda:ensemble_save.destroy()) + stop_process_Button.grid(pady=MENU_PADDING_1) + + self.menu_placement(ensemble_save, SAVE_CURRENT_ENSEMBLE_TEXT, pop_up=True) + + def pop_up_save_ensemble_sub_json_dump(self, selected_ensemble_model, ensemble_save_name: str): + """Dumps current ensemble settings to a json named after user input""" + + if ensemble_save_name: + self.chosen_ensemble_var.set(ensemble_save_name) + ensemble_save_name = ensemble_save_name.replace(" ", "_") + saved_data = { + 'ensemble_main_stem': self.ensemble_main_stem_var.get(), + 'ensemble_type': self.ensemble_type_var.get(), + 'selected_models': selected_ensemble_model, + } + + saved_data_dump = json.dumps(saved_data, indent=4) + with open(os.path.join(ENSEMBLE_CACHE_DIR, f'{ensemble_save_name}.json'), "w") as outfile: + outfile.write(saved_data_dump) + + def deletion_list_fill(self, option_menu: ComboBoxMenu, selection_var: tk.StringVar, selection_dir, var_set, menu_name=None): + """Fills the saved settings menu located in tab 2 of the main settings window""" + + def command_callback(event=None): + self.deletion_entry(selection_var.get(), selection_dir, refresh_menu) + selection_var.set(var_set) + + def refresh_menu(remove=None): + selection_list = self.last_found_ensembles if menu_name == 'deleteensemble' else self.last_found_settings + main_var = self.chosen_ensemble_var if menu_name == 'deleteensemble' else self.save_current_settings_var + + if remove and remove in selection_list: + selection_list = list(selection_list) + selection_list.remove(remove) + main_var.set(CHOOSE_ENSEMBLE_OPTION) + + self.update_menus(option_widget=option_menu, + style_name=menu_name, + command=command_callback, + new_items=selection_list) + + refresh_menu() + + def deletion_entry(self, selection: str, path, callback): + """Deletes selected user saved application settings""" + + if selection not in [SELECT_SAVED_SET, SELECT_SAVED_ENSEMBLE]: + saved_path = os.path.join(path, f'{selection.replace(" ", "_")}.json') + confirm = self.message_box(DELETE_ENS_ENTRY) + if confirm: + if os.path.isfile(saved_path): + os.remove(saved_path) + callback(selection) + + #--Download Center Methods-- + + def online_data_refresh(self, user_refresh=True, confirmation_box=False, refresh_list_Button=False, is_start_up=False, is_download_complete=False): + """Checks for application updates""" + + def online_check(): + if not is_start_up: + self.app_update_status_Text_var.set(LOADING_VERSION_INFO_TEXT) + self.app_update_button_Text_var.set(CHECK_FOR_UPDATES_TEXT) + + is_new_update = False + try: + self.online_data = json.load(urllib.request.urlopen(DOWNLOAD_CHECKS)) + self.is_online = True + + try: + with urllib.request.urlopen(BULLETIN_CHECK) as response: + self.bulletin_data = response.read().decode('utf-8') + + if not is_windows: + self.bulletin_data = read_bulliten_text_mac(CR_TEXT, self.bulletin_data) + else: + self.bulletin_data = self.bulletin_data.replace("~", "•") + + except Exception as e: + self.bulletin_data = INFO_UNAVAILABLE_TEXT + print(e) + + if user_refresh: + self.download_list_state() + for widget in self.download_center_Buttons: + widget.configure(state=tk.NORMAL) + + if refresh_list_Button: + self.download_progress_info_var.set('Download List Refreshed!') + + if OPERATING_SYSTEM=="Darwin": + self.lastest_version = self.online_data["current_version_mac"] + elif OPERATING_SYSTEM=="Linux": + self.lastest_version = self.online_data["current_version_linux"] + else: + self.lastest_version = self.online_data["current_version"] + + if self.lastest_version == current_patch and not is_start_up: + self.app_update_status_Text_var.set('UVR Version Current') + else: + is_new_update = True + is_beta_version = True if self.lastest_version == PREVIOUS_PATCH_WIN and BETA_VERSION in current_patch else False + + if not is_start_up: + if is_beta_version: + self.app_update_status_Text_var.set(f"Roll Back: {self.lastest_version}") + self.app_update_button_Text_var.set(ROLL_BACK_TEXT) + else: + self.app_update_status_Text_var.set(f"Update Found: {self.lastest_version}") + self.app_update_button_Text_var.set('Click Here to Update') + + if OPERATING_SYSTEM == "Windows": + self.download_update_link_var.set('{}{}{}'.format(UPDATE_REPO, self.lastest_version, application_extension)) + self.download_update_path_var.set(os.path.join(BASE_PATH, f'{self.lastest_version}{application_extension}')) + elif OPERATING_SYSTEM == "Darwin": + self.download_update_link_var.set(UPDATE_MAC_ARM_REPO if SYSTEM_PROC == ARM or ARM in SYSTEM_ARCH else UPDATE_MAC_X86_64_REPO) + elif OPERATING_SYSTEM == "Linux": + self.download_update_link_var.set(UPDATE_LINUX_REPO) + + if not user_refresh: + if not is_beta_version and not self.lastest_version == current_patch: + self.command_Text.write(NEW_UPDATE_FOUND_TEXT(self.lastest_version)) + + + is_update_params = self.is_auto_update_model_params if is_start_up else self.is_auto_update_model_params_var.get() + + if is_update_params and is_start_up or is_download_complete: + self.download_model_settings() + + # if is_download_complete: + # self.download_model_settings() + + except Exception as e: + self.offline_state_set(is_start_up) + is_new_update = False + + if user_refresh: + self.download_list_state(disable_only=True) + for widget in self.download_center_Buttons: + widget.configure(state=tk.DISABLED) + + try: + self.error_log_var.set(error_text('Online Data Refresh', e)) + except Exception as e: + print(e) + + return is_new_update + + if confirmation_box: + return online_check() + else: + self.current_thread = KThread(target=online_check) + self.current_thread.setDaemon(True) if not is_windows else None + self.current_thread.start() + + def offline_state_set(self, is_start_up=False): + """Changes relevant settings and "Download Center" buttons if no internet connection is available""" + + if not is_start_up and self.is_menu_settings_open: + self.app_update_status_Text_var.set(f'Version Status: {NO_CONNECTION}') + self.download_progress_info_var.set(NO_CONNECTION) + self.app_update_button_Text_var.set('Refresh') + self.refresh_list_Button.configure(state=tk.NORMAL) + self.stop_download_Button_DISABLE() + self.enable_tabs() + + self.is_online = False + + def download_validate_code(self, confirm=False, code_message=None): + """Verifies the VIP download code""" + + self.decoded_vip_link = vip_downloads(self.user_code_var.get()) + + if confirm: + if not self.decoded_vip_link == NO_CODE: + info_text = 'VIP Models Added!' + is_success_message = True + else: + info_text = 'Incorrect Code' + is_success_message = False + + self.download_progress_info_var.set(info_text) + self.user_code_validation_var.set(info_text) + + if code_message: + code_message(info_text, is_success_message) + + self.download_list_fill() + + def download_list_fill(self, model_type=ALL_TYPES): + """Fills the download lists with the data retrieved from the update check.""" + + self.download_demucs_models_list.clear() + + model_download_mdx_list, model_download_mdx_name = [], "mdxdownload" + model_download_vr_list, model_download_vr_name = [], "vrdownload" + model_download_demucs_list, model_download_demucs_name = [], "demucsmdxdownload" + + self.vr_download_list = self.online_data["vr_download_list"] + self.mdx_download_list = self.online_data["mdx_download_list"] + self.demucs_download_list = self.online_data["demucs_download_list"] + self.mdx_download_list.update(self.online_data["mdx23c_download_list"]) + + if not self.decoded_vip_link is NO_CODE: + self.vr_download_list.update(self.online_data["vr_download_vip_list"]) + self.mdx_download_list.update(self.online_data["mdx_download_vip_list"]) + self.mdx_download_list.update(self.online_data["mdx23c_download_vip_list"]) + + def configure_combobox(combobox:ComboBoxMenu, values:list, variable:tk.StringVar, arch_type, name): + values = [NO_NEW_MODELS] if not values else values + combobox['values'] = values + combobox.update_dropdown_size(values, name, offset=310, + command=lambda s: self.download_model_select(variable.get(), arch_type, variable)) + + if model_type in [VR_ARCH_TYPE, ALL_TYPES]: + for (selectable, model) in self.vr_download_list.items(): + if not os.path.isfile(os.path.join(VR_MODELS_DIR, model)): + model_download_vr_list.append(selectable) + + configure_combobox(self.model_download_vr_Option, model_download_vr_list, self.model_download_vr_var, VR_ARCH_TYPE, model_download_vr_name) + + if model_type in [MDX_ARCH_TYPE, ALL_TYPES]: + for (selectable, model) in self.mdx_download_list.items(): + if isinstance(model, dict): + items_list = list(model.items()) + model_name, config = items_list[0] + config_link = f"{MDX23_CONFIG_CHECKS}{config}" + config_local = os.path.join(MDX_C_CONFIG_PATH, config) + if not os.path.isfile(config_local): + with urllib.request.urlopen(config_link) as response: + with open(config_local, 'wb') as out_file: + out_file.write(response.read()) + else: + model_name = str(model) + + if not os.path.isfile(os.path.join(MDX_MODELS_DIR, model_name)): + model_download_mdx_list.append(selectable) + + configure_combobox(self.model_download_mdx_Option, model_download_mdx_list, self.model_download_mdx_var, MDX_ARCH_TYPE, model_download_mdx_name) + + if model_type in [DEMUCS_ARCH_TYPE, ALL_TYPES]: + for (selectable, model) in self.demucs_download_list.items(): + for name in model.items(): + if [True for x in DEMUCS_NEWER_ARCH_TYPES if x in selectable]: + if not os.path.isfile(os.path.join(DEMUCS_NEWER_REPO_DIR, name[0])): + self.download_demucs_models_list.append(selectable) + else: + if not os.path.isfile(os.path.join(DEMUCS_MODELS_DIR, name[0])): + self.download_demucs_models_list.append(selectable) + + self.download_demucs_models_list = list(dict.fromkeys(self.download_demucs_models_list)) + + for option_name in self.download_demucs_models_list: + model_download_demucs_list.append(option_name) + + configure_combobox(self.model_download_demucs_Option, model_download_demucs_list, self.model_download_demucs_var, DEMUCS_ARCH_TYPE, model_download_demucs_name) + + def download_model_settings(self): + '''Update the newest model settings''' + + try: + self.vr_hash_MAPPER = json.load(urllib.request.urlopen(VR_MODEL_DATA_LINK)) + self.mdx_hash_MAPPER = json.load(urllib.request.urlopen(MDX_MODEL_DATA_LINK)) + self.mdx_name_select_MAPPER = json.load(urllib.request.urlopen(MDX_MODEL_NAME_DATA_LINK)) + self.demucs_name_select_MAPPER = json.load(urllib.request.urlopen(DEMUCS_MODEL_NAME_DATA_LINK)) + + vr_hash_MAPPER_dump = json.dumps(self.vr_hash_MAPPER, indent=4) + with open(VR_HASH_JSON, "w") as outfile: + outfile.write(vr_hash_MAPPER_dump) + + mdx_hash_MAPPER_dump = json.dumps(self.mdx_hash_MAPPER, indent=4) + with open(MDX_HASH_JSON, "w") as outfile: + outfile.write(mdx_hash_MAPPER_dump) + + mdx_name_select_MAPPER_dump = json.dumps(self.mdx_name_select_MAPPER, indent=4) + with open(MDX_MODEL_NAME_SELECT, "w") as outfile: + outfile.write(mdx_name_select_MAPPER_dump) + + demucs_name_select_MAPPER_dump = json.dumps(self.demucs_name_select_MAPPER, indent=4) + with open(DEMUCS_MODEL_NAME_SELECT, "w") as outfile: + outfile.write(demucs_name_select_MAPPER_dump) + + except Exception as e: + self.vr_hash_MAPPER = load_model_hash_data(VR_HASH_JSON) + self.mdx_hash_MAPPER = load_model_hash_data(MDX_HASH_JSON) + self.mdx_name_select_MAPPER = load_model_hash_data(MDX_MODEL_NAME_SELECT) + self.demucs_name_select_MAPPER = load_model_hash_data(DEMUCS_MODEL_NAME_SELECT) + self.error_log_var.set(e) + print(e) + + def download_list_state(self, reset=True, disable_only=False): + """Makes sure only the models from the chosen AI network are selectable.""" + + for widget in self.download_lists: + widget.configure(state=tk.DISABLED) + + if reset: + for download_list_var in self.download_list_vars: + if self.is_online: + download_list_var.set(NO_MODEL) + self.download_Button.configure(state=tk.NORMAL) + else: + download_list_var.set(NO_CONNECTION) + self.download_Button.configure(state=tk.DISABLED) + disable_only = True + + if not disable_only: + self.download_Button.configure(state=tk.NORMAL) + if self.select_download_var.get() == VR_ARCH_TYPE: + self.model_download_vr_Option.configure(state=READ_ONLY) + self.selected_download_var = self.model_download_vr_var + self.download_list_fill(model_type=VR_ARCH_TYPE) + if self.select_download_var.get() == MDX_ARCH_TYPE: + self.model_download_mdx_Option.configure(state=READ_ONLY) + self.selected_download_var = self.model_download_mdx_var + self.download_list_fill(model_type=MDX_ARCH_TYPE) + if self.select_download_var.get() == DEMUCS_ARCH_TYPE: + self.model_download_demucs_Option.configure(state=READ_ONLY) + self.selected_download_var = self.model_download_demucs_var + self.download_list_fill(model_type=DEMUCS_ARCH_TYPE) + + self.stop_download_Button_DISABLE() + + def download_model_select(self, selection, type, var:tk.StringVar): + """Prepares the data needed to download selected model.""" + + self.download_demucs_newer_models.clear() + + if selection == NO_NEW_MODELS: + selection = NO_MODEL + var.set(NO_MODEL) + + model_repo = self.decoded_vip_link if VIP_SELECTION in selection else NORMAL_REPO + is_demucs_newer = [True for x in DEMUCS_NEWER_ARCH_TYPES if x in selection] + + if type == VR_ARCH_TYPE: + for selected_model in self.vr_download_list.items(): + if selection in selected_model: + self.download_link_path_var.set("{}{}".format(model_repo, selected_model[1])) + self.download_save_path_var.set(os.path.join(VR_MODELS_DIR, selected_model[1])) + break + + if type == MDX_ARCH_TYPE: + for selected_model in self.mdx_download_list.items(): + if selection in selected_model: + if isinstance(selected_model[1], dict): + model_name = list(selected_model[1].keys())[0] + else: + model_name = str(selected_model[1]) + self.download_link_path_var.set("{}{}".format(model_repo, model_name)) + self.download_save_path_var.set(os.path.join(MDX_MODELS_DIR, model_name)) + break + + if type == DEMUCS_ARCH_TYPE: + for selected_model, model_data in self.demucs_download_list.items(): + if selection == selected_model: + for key, value in model_data.items(): + if is_demucs_newer: + self.download_demucs_newer_models.append([os.path.join(DEMUCS_NEWER_REPO_DIR, key), value]) + else: + self.download_save_path_var.set(os.path.join(DEMUCS_MODELS_DIR, key)) + self.download_link_path_var.set(value) + + def download_item(self, is_update_app=False): + """Downloads the model selected.""" + + if not is_update_app: + if self.selected_download_var.get() == NO_MODEL: + self.download_progress_info_var.set(NO_MODEL) + return + + for widget in self.download_center_Buttons: + widget.configure(state=tk.DISABLED) + self.refresh_list_Button.configure(state=tk.DISABLED) + self.manual_download_Button.configure(state=tk.DISABLED) + + is_demucs_newer = [True for x in DEMUCS_NEWER_ARCH_TYPES if x in self.selected_download_var.get()] + + self.download_list_state(reset=False, disable_only=True) + self.stop_download_Button_ENABLE() + self.disable_tabs() + + def download_progress_bar(current, total, model=80): + progress = ('%s' % (100 * current // total)) + self.download_progress_bar_var.set(int(progress)) + self.download_progress_percent_var.set(progress + ' %') + + def push_download(): + self.is_download_thread_active = True + try: + if is_update_app: + self.download_progress_info_var.set(DOWNLOADING_UPDATE) + if os.path.isfile(self.download_update_path_var.get()): + self.download_progress_info_var.set(FILE_EXISTS) + else: + wget.download(self.download_update_link_var.get(), self.download_update_path_var.get(), bar=download_progress_bar) + + self.download_post_action(DOWNLOAD_UPDATE_COMPLETE) + else: + if self.select_download_var.get() == DEMUCS_ARCH_TYPE and is_demucs_newer: + for model_num, model_data in enumerate(self.download_demucs_newer_models, start=1): + self.download_progress_info_var.set('{} {}/{}...'.format(DOWNLOADING_ITEM, model_num, len(self.download_demucs_newer_models))) + if os.path.isfile(model_data[0]): + continue + else: + wget.download(model_data[1], model_data[0], bar=download_progress_bar) + else: + self.download_progress_info_var.set(SINGLE_DOWNLOAD) + if os.path.isfile(self.download_save_path_var.get()): + self.download_progress_info_var.set(FILE_EXISTS) + else: + wget.download(self.download_link_path_var.get(), self.download_save_path_var.get(), bar=download_progress_bar) + + self.download_post_action(DOWNLOAD_COMPLETE) + + except Exception as e: + self.error_log_var.set(error_text(DOWNLOADING_ITEM, e)) + self.download_progress_info_var.set(DOWNLOAD_FAILED) + + if type(e).__name__ == 'URLError': + self.offline_state_set() + else: + self.download_progress_percent_var.set(f"{type(e).__name__}") + self.download_post_action(DOWNLOAD_FAILED) + + self.active_download_thread = KThread(target=push_download) + self.active_download_thread.start() + + def download_post_action(self, action): + """Resets the widget variables in the "Download Center" based on the state of the download.""" + + for widget in self.download_center_Buttons: + widget.configure(state=tk.NORMAL) + self.refresh_list_Button.configure(state=tk.NORMAL) + self.manual_download_Button.configure(state=tk.NORMAL) + + self.enable_tabs() + self.stop_download_Button_DISABLE() + + if action == DOWNLOAD_FAILED: + try: + self.active_download_thread.terminate() + finally: + self.download_progress_info_var.set(DOWNLOAD_FAILED) + self.download_list_state(reset=False) + if action == DOWNLOAD_STOPPED: + try: + self.active_download_thread.terminate() + finally: + self.download_progress_info_var.set(DOWNLOAD_STOPPED) + self.download_list_state(reset=False) + if action == DOWNLOAD_COMPLETE: + self.online_data_refresh(is_download_complete=True) + self.download_progress_info_var.set(DOWNLOAD_COMPLETE) + self.download_list_state() + if action == DOWNLOAD_UPDATE_COMPLETE: + self.download_progress_info_var.set(DOWNLOAD_UPDATE_COMPLETE) + if os.path.isfile(self.download_update_path_var.get()): + subprocess.Popen(self.download_update_path_var.get()) + self.download_list_state() + + + self.is_download_thread_active = False + + self.delete_temps() + + #--Refresh/Loop Methods-- + + def update_loop(self): + """Update the model dropdown menus""" + + if self.clear_cache_torch: + clear_gpu_cache() + self.clear_cache_torch = False + + if self.is_process_stopped: + if self.thread_check(self.active_processing_thread): + self.conversion_Button_Text_var.set(STOP_PROCESSING) + self.conversion_Button.configure(state=tk.DISABLED) + self.stop_Button.configure(state=tk.DISABLED) + else: + self.stop_Button.configure(state=tk.NORMAL) + self.conversion_Button_Text_var.set(START_PROCESSING) + self.conversion_Button.configure(state=tk.NORMAL) + self.progress_bar_main_var.set(0) + clear_gpu_cache() + self.is_process_stopped = False + + if self.is_confirm_error_var.get(): + self.check_is_menu_open(ERROR_OPTION) + self.is_confirm_error_var.set(False) + + if self.is_check_splash and is_windows: + + while not self.msg_queue.empty(): + message = self.msg_queue.get_nowait() + print(message) + + close_process(self.msg_queue) + self.is_check_splash = False + + #self.auto_save() + + self.update_available_models() + self.after(600, self.update_loop) + + def update_menus(self, option_widget:ComboBoxMenu, style_name, command, new_items, last_items=None, base_options=None): + + if new_items != last_items: + formatted_items = [item.replace("_", " ") for item in new_items] + if not formatted_items and base_options: + base_options = [option for option in base_options if option != OPT_SEPARATOR_SAVE] + + final_options = formatted_items + base_options if base_options else formatted_items + option_widget['values'] = final_options + option_widget.update_dropdown_size(formatted_items, style_name, command=command) + return new_items + return last_items + + def update_available_models(self): + """ + Loops through all models in each model directory and adds them to the appropriate model menu. + Also updates ensemble listbox and user saved settings list. + """ + + def fix_name(name, mapper:dict): return next((new_name for old_name, new_name in mapper.items() if name in old_name), name) + + new_vr_models = self.get_files_from_dir(VR_MODELS_DIR, PTH) + new_mdx_models = self.get_files_from_dir(MDX_MODELS_DIR, (ONNX, CKPT), is_mdxnet=True) + new_demucs_models = self.get_files_from_dir(DEMUCS_MODELS_DIR, (CKPT, '.gz', '.th')) + self.get_files_from_dir(DEMUCS_NEWER_REPO_DIR, YAML) + new_ensembles_found = self.get_files_from_dir(ENSEMBLE_CACHE_DIR, JSON) + new_settings_found = self.get_files_from_dir(SETTINGS_CACHE_DIR, JSON) + new_models_found = new_vr_models + new_mdx_models + new_demucs_models + is_online = self.is_online_model_menu + + def loop_directories(option_menu:ComboBoxMenu, option_var, model_list, model_type, name_mapper=None): + current_selection = option_menu.get() + option_list = [fix_name(file_name, name_mapper) for file_name in model_list] if name_mapper else model_list + sorted_options = natsort.natsorted(option_list) + option_list_option_menu = sorted_options + [OPT_SEPARATOR, DOWNLOAD_MORE] if self.is_online else sorted_options + + if not option_list and self.is_online: + option_list_option_menu = [option for option in option_list_option_menu if option != OPT_SEPARATOR] + + option_menu['values'] = option_list_option_menu + option_menu.set(current_selection) + option_menu.update_dropdown_size(option_list, model_type) + + if self.is_root_defined_var.get() and model_type == MDX_ARCH_TYPE and self.chosen_process_method_var.get() == MDX_ARCH_TYPE: + self.selection_action_models_sub(current_selection, model_type, option_var) + + return tuple(f"{model_type}{ENSEMBLE_PARTITION}{model_name}" for model_name in sorted_options) + + if new_models_found != self.last_found_models or is_online != self.is_online: + self.model_data_table = [] + + vr_model_list = loop_directories(self.vr_model_Option, self.vr_model_var, new_vr_models, VR_ARCH_TYPE, name_mapper=None) + mdx_model_list = loop_directories(self.mdx_net_model_Option, self.mdx_net_model_var, new_mdx_models, MDX_ARCH_TYPE, name_mapper=self.mdx_name_select_MAPPER) + demucs_model_list = loop_directories(self.demucs_model_Option, self.demucs_model_var, new_demucs_models, DEMUCS_ARCH_TYPE, name_mapper=self.demucs_name_select_MAPPER) + + self.ensemble_model_list = vr_model_list + mdx_model_list + demucs_model_list + self.default_change_model_list = vr_model_list + mdx_model_list + self.last_found_models = new_models_found + self.is_online_model_menu = self.is_online + + if not self.chosen_ensemble_var.get() == CHOOSE_ENSEMBLE_OPTION: + self.selection_action_chosen_ensemble(self.chosen_ensemble_var.get()) + else: + if not self.ensemble_main_stem_var.get() == CHOOSE_STEM_PAIR: + self.selection_action_ensemble_stems(self.ensemble_main_stem_var.get(), auto_update=self.ensemble_listbox_get_all_selected_models()) + else: + self.ensemble_listbox_clear_and_insert_new(self.ensemble_model_list) + + self.last_found_ensembles = self.update_menus(option_widget=self.chosen_ensemble_Option, + style_name='savedensembles', + command=None, + new_items=new_ensembles_found, + last_items=self.last_found_ensembles, + base_options=ENSEMBLE_OPTIONS + ) + + self.last_found_settings = self.update_menus(option_widget=self.save_current_settings_Option, + style_name='savedsettings', + command=None, + new_items=new_settings_found, + last_items=self.last_found_settings, + base_options=SAVE_SET_OPTIONS + ) + + def update_main_widget_states_mdx(self): + if not self.mdx_net_model_var.get() == DOWNLOAD_MORE: + self.update_main_widget_states() + + def move_widget_offscreen(self, widget, step=10): + current_x = widget.winfo_x() + current_y = widget.winfo_y() + if current_x > -1000: # assuming -1000 is your off-screen target + widget.place(x=current_x - step, y=current_y) + widget.after(10, lambda: self.move_widget_offscreen(widget, step)) + + def update_main_widget_states(self): + """Updates main widget states based on chosen process method""" + + def place_widgets(*widgets): + for widget in widgets: + widget() + + def general_shared_buttons(): + place_widgets(self.is_gpu_conversion_Option_place, + self.model_sample_mode_Option_place) + + def stem_save_options(): + place_widgets(self.is_primary_stem_only_Option_place, + self.is_secondary_stem_only_Option_place) + + def stem_save_demucs_options(): + place_widgets(self.is_primary_stem_only_Demucs_Option_place, + self.is_secondary_stem_only_Demucs_Option_place) + + def no_ensemble_shared(): + place_widgets(self.save_current_settings_Label_place, + self.save_current_settings_Option_place) + + process_method = self.chosen_process_method_var.get() + audio_tool = self.chosen_audio_tool_var.get() + + for widget in self.GUI_LIST: + widget.place(x=-1000, y=-1000) + + if process_method == MDX_ARCH_TYPE: + place_widgets(self.mdx_net_model_Label_place, + self.mdx_net_model_Option_place, + general_shared_buttons, + stem_save_options, + no_ensemble_shared) + elif process_method == VR_ARCH_PM: + place_widgets(self.vr_model_Label_place, self.vr_model_Option_place, + self.aggression_setting_Label_place, + self.aggression_setting_Option_place, + self.window_size_Label_place, + self.window_size_Option_place, + general_shared_buttons, + stem_save_options, + no_ensemble_shared) + elif process_method == DEMUCS_ARCH_TYPE: + place_widgets(self.demucs_model_Label_place, + self.demucs_model_Option_place, + self.demucs_stems_Label_place, + self.demucs_stems_Option_place, + self.segment_Label_place, + self.segment_Option_place, + general_shared_buttons, + stem_save_demucs_options, + no_ensemble_shared) + elif process_method == AUDIO_TOOLS: + place_widgets(self.chosen_audio_tool_Label_place, + self.chosen_audio_tool_Option_place) + + if audio_tool == ALIGN_INPUTS: + self.file_one_sub_var.set(FILE_ONE_MAIN_LABEL) + self.file_two_sub_var.set(FILE_TWO_MAIN_LABEL) + elif audio_tool == MATCH_INPUTS: + self.file_one_sub_var.set(FILE_ONE_MATCH_MAIN_LABEL) + self.file_two_sub_var.set(FILE_TWO_MATCH_MAIN_LABEL) + + audio_tool_options = { + MANUAL_ENSEMBLE: [self.choose_algorithm_Label_place, + self.choose_algorithm_Option_place, + self.is_wav_ensemble_Option_place], + TIME_STRETCH: [lambda: self.model_sample_mode_Option_place(rely=5), + self.time_stretch_rate_Label_place, + self.time_stretch_rate_Option_place], + CHANGE_PITCH: [self.is_time_correction_Option_place, + lambda: self.model_sample_mode_Option_place(rely=6), + self.pitch_rate_Label_place, + self.pitch_rate_Option_place], + ALIGN_INPUTS: [self.fileOne_Label_place, + self.fileOne_Entry_place, + self.fileTwo_Label_place, + self.fileTwo_Entry_place, + self.fileOne_Open_place, + self.fileTwo_Open_place, + self.intro_analysis_Label_place, + self.intro_analysis_Option_place, + self.db_analysis_Label_place, + self.db_analysis_Option_place, + self.time_window_Label_place, + self.time_window_Option_place], + MATCH_INPUTS: [self.fileOne_Label_place, + self.fileOne_Entry_place, + self.fileTwo_Label_place, + self.fileTwo_Entry_place, + self.fileOne_Open_place, + self.fileTwo_Open_place, + self.wav_type_set_Label_place, + self.wav_type_set_Option_place], + } + place_widgets(*audio_tool_options.get(audio_tool, [])) + elif process_method == ENSEMBLE_MODE: + place_widgets(self.chosen_ensemble_Label_place, + self.chosen_ensemble_Option_place, + self.ensemble_main_stem_Label_place, + self.ensemble_main_stem_Option_place, + self.ensemble_type_Label_place, + self.ensemble_type_Option_place, + self.ensemble_listbox_Label_place, + self.ensemble_listbox_Option_place, + self.ensemble_listbox_Option_pack, + general_shared_buttons, + stem_save_options) + + if not self.is_gpu_available: + self.is_gpu_conversion_Disable() + + self.update_inputPaths() + + def update_button_states(self): + """Updates the available stems for selected Demucs model""" + + if self.chosen_process_method_var.get() == DEMUCS_ARCH_TYPE: + if self.demucs_stems_var.get() == ALL_STEMS: + self.update_stem_checkbox_labels(PRIMARY_STEM, demucs=True) + elif self.demucs_stems_var.get() == VOCAL_STEM: + self.update_stem_checkbox_labels(VOCAL_STEM, demucs=True, is_disable_demucs_boxes=False) + self.is_stem_only_Demucs_Options_Enable() + else: + self.is_stem_only_Demucs_Options_Enable() + + #self.demucs_stems_Option['menu'].delete(0,'end') + + if not self.demucs_model_var.get() == CHOOSE_MODEL: + if DEMUCS_UVR_MODEL in self.demucs_model_var.get(): + stems = DEMUCS_2_STEM_OPTIONS + elif DEMUCS_6_STEM_MODEL in self.demucs_model_var.get(): + stems = DEMUCS_6_STEM_OPTIONS + else: + stems = DEMUCS_4_STEM_OPTIONS + + self.demucs_stems_Option['values'] = stems + self.demucs_stems_Option.command(lambda e:self.update_stem_checkbox_labels(self.demucs_stems_var.get(), demucs=True)) + + def update_button_states_mdx(self, model_stems): + """Updates the available stems for selected Demucs model""" + + model_stems = [stem for stem in model_stems] + + if len(model_stems) >= 3: + model_stems.insert(0, ALL_STEMS) + self.mdxnet_stems_var.set(ALL_STEMS) + else: + self.mdxnet_stems_var.set(model_stems[0]) + + if self.mdxnet_stems_var.get() == ALL_STEMS: + self.update_stem_checkbox_labels(PRIMARY_STEM, disable_boxes=True) + elif self.mdxnet_stems_var.get() == VOCAL_STEM: + self.update_stem_checkbox_labels(VOCAL_STEM) + self.is_stem_only_Options_Enable() + else: + self.is_stem_only_Options_Enable() + + if not self.mdx_net_model_var.get() == CHOOSE_MODEL: + self.mdxnet_stems_Option['values'] = model_stems + self.mdxnet_stems_Option.command(lambda e:self.update_stem_checkbox_labels(self.mdxnet_stems_var.get())) + + def update_stem_checkbox_labels(self, selection, demucs=False, disable_boxes=False, is_disable_demucs_boxes=True): + """Updates the "save only" checkboxes based on the model selected""" + + stem_text = self.is_primary_stem_only_Text_var, self.is_secondary_stem_only_Text_var + + if selection == ALL_STEMS: + selection = PRIMARY_STEM + else: + self.is_stem_only_Options_Enable() + + if disable_boxes or selection == PRIMARY_STEM: + self.is_primary_stem_only_Option.configure(state=tk.DISABLED) + self.is_secondary_stem_only_Option.configure(state=tk.DISABLED) + self.is_primary_stem_only_var.set(False) + self.is_secondary_stem_only_var.set(False) + else: + self.is_primary_stem_only_Option.configure(state=tk.NORMAL) + self.is_secondary_stem_only_Option.configure(state=tk.NORMAL) + + if demucs: + stem_text = self.is_primary_stem_only_Demucs_Text_var, self.is_secondary_stem_only_Demucs_Text_var + + if is_disable_demucs_boxes: + self.is_primary_stem_only_Demucs_Option.configure(state=tk.DISABLED) + self.is_secondary_stem_only_Demucs_Option.configure(state=tk.DISABLED) + self.is_primary_stem_only_Demucs_var.set(False) + self.is_secondary_stem_only_Demucs_var.set(False) + + if not selection == PRIMARY_STEM: + self.is_primary_stem_only_Demucs_Option.configure(state=tk.NORMAL) + self.is_secondary_stem_only_Demucs_Option.configure(state=tk.NORMAL) + + stem_text[0].set(f"{selection} Only") + stem_text[1].set(f"{secondary_stem(selection)} Only") + + def update_ensemble_algorithm_menu(self, is_4_stem=False): + options = ENSEMBLE_TYPE_4_STEM if is_4_stem else ENSEMBLE_TYPE + + if not "/" in self.ensemble_type_var.get() or is_4_stem: + self.ensemble_type_var.set(options[0]) + + self.ensemble_type_Option["values"] = options + + def selection_action(self, event, option_var, is_mdx_net=False): + selected_value = event.widget.get() + selected_value = CHOOSE_MODEL if selected_value == OPT_SEPARATOR else selected_value + option_var.set(selected_value) + if is_mdx_net: + self.update_main_widget_states_mdx() + self.selection_action_models(selected_value) + + def selection_action_models(self, selection): + """Accepts model names and verifies their state.""" + + # Handle different selections. + if selection in CHOOSE_MODEL: + self.update_stem_checkbox_labels(PRIMARY_STEM, disable_boxes=True) + else: + self.is_stem_only_Options_Enable() + + # Process method matching current selection. + self._handle_model_by_chosen_method(selection) + + # Handle Ensemble mode case. + if self.chosen_process_method_var.get() == ENSEMBLE_MODE: + return self._handle_ensemble_mode_selection(selection) + + if not self.is_menu_settings_open and selection == DOWNLOAD_MORE: + self.update_checkbox_text() + self.menu_settings(select_tab_3=True) + + def _handle_model_by_chosen_method(self, selection): + """Handles model selection based on the currently chosen method.""" + current_method = self.chosen_process_method_var.get() + model_var = self.method_mapper.get(current_method) + if model_var: + self.selection_action_models_sub(selection, current_method, model_var) + + def _handle_ensemble_mode_selection(self, selection): + """Handles the case where the current method is 'ENSEMBLE_MODE'.""" + model_data = self.assemble_model_data(selection, ENSEMBLE_CHECK)[0] + if not model_data.model_status: + return self.model_stems_list.index(selection) + return False + + def selection_action_models_sub(self, selection, ai_type, var: tk.StringVar): + """Takes input directly from the selection_action_models parent function""" + + if selection == DOWNLOAD_MORE: + is_model_status = False + else: + model_data = self.assemble_model_data(selection, ai_type)[0] + is_model_status = model_data.model_status + + if not is_model_status: + var.set(CHOOSE_MODEL) + if ai_type == MDX_ARCH_TYPE: + self.mdx_segment_size_Label_place() + self.mdx_segment_size_Option_place() + self.overlap_mdx_Label_place() + self.overlap_mdx_Option_place() + self.update_stem_checkbox_labels(PRIMARY_STEM, disable_boxes=True) + else: + if ai_type == DEMUCS_ARCH_TYPE: + if not self.demucs_stems_var.get().lower() in model_data.demucs_source_list: + self.demucs_stems_var.set(ALL_STEMS if model_data.demucs_stem_count == 4 else VOCAL_STEM) + + self.update_button_states() + else: + if model_data.is_mdx_c and len(model_data.mdx_model_stems) >= 1: + if len(model_data.mdx_model_stems) >= 3: + self.mdxnet_stems_Label_place() + self.mdxnet_stems_Option_place() + else: + self.mdx_segment_size_Label_place() + self.mdx_segment_size_Option_place() + self.overlap_mdx_Label_place() + self.overlap_mdx23_Option_place() + self.update_button_states_mdx(model_data.mdx_model_stems) + else: + if ai_type == MDX_ARCH_TYPE: + self.mdx_segment_size_Label_place() + self.mdx_segment_size_Option_place() + self.overlap_mdx_Label_place() + self.overlap_mdx_Option_place() + + stem = model_data.primary_stem + self.update_stem_checkbox_labels(stem) + + def selection_action_process_method(self, selection, from_widget=False, is_from_conv_menu=False): + """Checks model and variable status when toggling between process methods""" + + if is_from_conv_menu: + self.update_main_widget_states() + + if from_widget: + self.save_current_settings_var.set(CHOOSE_ENSEMBLE_OPTION) + + if selection == ENSEMBLE_MODE: + ensemble_choice = self.ensemble_main_stem_var.get() + if ensemble_choice in [CHOOSE_STEM_PAIR, FOUR_STEM_ENSEMBLE, MULTI_STEM_ENSEMBLE]: + self.update_stem_checkbox_labels(PRIMARY_STEM, disable_boxes=True) + else: + self.update_stem_checkbox_labels(self.return_ensemble_stems(is_primary=True)) + self.is_stem_only_Options_Enable() + return + + for method_type, model_var in self.method_mapper.items(): + if method_type in selection: + self.selection_action_models(model_var.get()) + break + + def selection_action_chosen_ensemble(self, selection): + """Activates specific actions depending on selected ensemble option""" + + if selection not in ENSEMBLE_OPTIONS: + self.selection_action_chosen_ensemble_load_saved(selection) + elif selection == SAVE_ENSEMBLE: + self.chosen_ensemble_var.set(CHOOSE_ENSEMBLE_OPTION) + self.pop_up_save_ensemble() + elif selection == OPT_SEPARATOR_SAVE: + self.chosen_ensemble_var.set(CHOOSE_ENSEMBLE_OPTION) + elif selection == CLEAR_ENSEMBLE: + self.ensemble_listbox_Option.selection_clear(0, 'end') + self.chosen_ensemble_var.set(CHOOSE_ENSEMBLE_OPTION) + + def selection_action_chosen_ensemble_load_saved(self, saved_ensemble): + """Loads the data from selected saved ensemble""" + + saved_data = None + saved_ensemble = saved_ensemble.replace(" ", "_") + saved_ensemble_path = os.path.join(ENSEMBLE_CACHE_DIR, f'{saved_ensemble}.json') + + if os.path.isfile(saved_ensemble_path): + saved_data = json.load(open(saved_ensemble_path)) + + if saved_data: + self.selection_action_ensemble_stems(saved_data['ensemble_main_stem'], from_menu=False) + self.ensemble_main_stem_var.set(saved_data['ensemble_main_stem']) + self.ensemble_type_var.set(saved_data['ensemble_type']) + self.saved_model_list = saved_data['selected_models'] + + for saved_model in self.saved_model_list: + status = self.assemble_model_data(saved_model, ENSEMBLE_CHECK)[0].model_status + if not status: + self.saved_model_list.remove(saved_model) + + indexes = self.ensemble_listbox_get_indexes_for_files(self.model_stems_list, self.saved_model_list) + + for i in indexes: + self.ensemble_listbox_Option.selection_set(i) + + self.update_checkbox_text() + + def selection_action_ensemble_stems(self, selection: str, from_menu=True, auto_update=None): + """Filters out all models from ensemble listbox that are incompatible with selected ensemble stem""" + + is_multi_stem = False + + if not selection == CHOOSE_STEM_PAIR: + if selection in [FOUR_STEM_ENSEMBLE, MULTI_STEM_ENSEMBLE]: + self.update_stem_checkbox_labels(PRIMARY_STEM, disable_boxes=True) + self.update_ensemble_algorithm_menu(is_4_stem=True) + self.ensemble_primary_stem = PRIMARY_STEM + self.ensemble_secondary_stem = SECONDARY_STEM + is_4_stem_check = True + if selection == MULTI_STEM_ENSEMBLE: + is_multi_stem = True + else: + self.update_ensemble_algorithm_menu() + self.is_stem_only_Options_Enable() + stems = selection.partition("/") + self.update_stem_checkbox_labels(stems[0]) + self.ensemble_primary_stem = stems[0] + self.ensemble_secondary_stem = stems[2] + is_4_stem_check = False + + self.model_stems_list = self.model_list(self.ensemble_primary_stem, self.ensemble_secondary_stem, is_4_stem_check=is_4_stem_check, is_multi_stem=is_multi_stem) + self.ensemble_listbox_Option.configure(state=tk.NORMAL) + self.ensemble_listbox_clear_and_insert_new(self.model_stems_list) + + if auto_update: + indexes = self.ensemble_listbox_get_indexes_for_files(self.model_stems_list, auto_update) + self.ensemble_listbox_select_from_indexs(indexes) + else: + self.ensemble_listbox_Option.configure(state=tk.DISABLED) + self.update_stem_checkbox_labels(PRIMARY_STEM, disable_boxes=True) + self.model_stems_list = () + + if from_menu: + self.chosen_ensemble_var.set(CHOOSE_ENSEMBLE_OPTION) + + def selection_action_saved_settings(self, selection, process_method=None): + """Activates specific action based on the selected settings from the saved settings selections""" + + if self.thread_check(self.active_processing_thread): + self.error_dialoge(SET_TO_ANY_PROCESS_ERROR) + return + + chosen_process_method = self.chosen_process_method_var.get() + if process_method: + chosen_process_method = process_method + + if selection in SAVE_SET_OPTIONS: + self.handle_special_options(selection, chosen_process_method) + else: + self.handle_saved_settings(selection, chosen_process_method) + + self.update_checkbox_text() + + def handle_special_options(self, selection, process_method): + """Handles actions for special options.""" + + if selection == SAVE_SETTINGS: + self.save_current_settings_var.set(SELECT_SAVED_SET) + self.pop_up_save_current_settings() + + elif selection == RESET_TO_DEFAULT: + self.save_current_settings_var.set(SELECT_SAVED_SET) + self.load_saved_settings(DEFAULT_DATA, process_method) + + elif selection == OPT_SEPARATOR_SAVE: + self.save_current_settings_var.set(SELECT_SAVED_SET) + + def handle_saved_settings(self, selection, process_method): + """Handles actions for saved settings.""" + + selection = selection.replace(" ", "_") + saved_ensemble_path = os.path.join(SETTINGS_CACHE_DIR, f'{selection}.json') + + if os.path.isfile(saved_ensemble_path): + with open(saved_ensemble_path, 'r') as file: + saved_data = json.load(file) + + if saved_data: + self.load_saved_settings(saved_data, process_method) + + #--Processing Methods-- + + def process_input_selections(self): + """Grabbing all audio files from selected directories.""" + + input_list = [] + + ext = FFMPEG_EXT if not self.is_accept_any_input_var.get() else ANY_EXT + + for i in self.inputPaths: + if os.path.isfile(i): + if i.endswith(ext): + input_list.append(i) + for root, dirs, files in os.walk(i): + for file in files: + if file.endswith(ext): + file = os.path.join(root, file) + if os.path.isfile(file): + input_list.append(file) + + self.inputPaths = tuple(input_list) + + def process_check_wav_type(self): + if self.wav_type_set_var.get() == '32-bit Float': + self.wav_type_set = 'FLOAT' + elif self.wav_type_set_var.get() == '64-bit Float':# + self.wav_type_set = 'FLOAT' if not self.save_format_var.get() == WAV else 'DOUBLE' + else: + self.wav_type_set = self.wav_type_set_var.get() + + def process_preliminary_checks(self): + """Verifies a valid model is chosen""" + + self.process_check_wav_type() + + if self.chosen_process_method_var.get() == ENSEMBLE_MODE: + continue_process = lambda:False if len(self.ensemble_listbox_get_all_selected_models()) <= 1 else True + if self.chosen_process_method_var.get() == VR_ARCH_PM: + continue_process = lambda:False if self.vr_model_var.get() == CHOOSE_MODEL else True + if self.chosen_process_method_var.get() == MDX_ARCH_TYPE: + continue_process = lambda:False if self.mdx_net_model_var.get() == CHOOSE_MODEL else True + if self.chosen_process_method_var.get() == DEMUCS_ARCH_TYPE: + continue_process = lambda:False if self.demucs_model_var.get() == CHOOSE_MODEL else True + + return continue_process() + + def process_storage_check(self): + """Verifies storage requirments""" + + total, used, free = shutil.disk_usage("/") + + space_details = f'Detected Total Space: {int(total/1.074e+9)} GB\'s\n' +\ + f'Detected Used Space: {int(used/1.074e+9)} GB\'s\n' +\ + f'Detected Free Space: {int(free/1.074e+9)} GB\'s\n' + + appropriate_storage = True + + if int(free/1.074e+9) <= int(2): + self.error_dialoge([STORAGE_ERROR[0], f'{STORAGE_ERROR[1]}{space_details}']) + appropriate_storage = False + + if int(free/1.074e+9) in [3, 4, 5, 6, 7, 8]: + appropriate_storage = self.message_box([STORAGE_WARNING[0], f'{STORAGE_WARNING[1]}{space_details}{CONFIRM_WARNING}']) + + return appropriate_storage + + def process_initialize(self): + """Verifies the input/output directories are valid and prepares to thread the main process.""" + + if not ( + self.chosen_process_method_var.get() == AUDIO_TOOLS + and self.chosen_audio_tool_var.get() in [ALIGN_INPUTS, MATCH_INPUTS] + and self.fileOneEntry_var.get() + and self.fileTwoEntry_var.get() + ) and not ( + self.inputPaths and os.path.isfile(self.inputPaths[0]) + ): + self.error_dialoge(INVALID_INPUT) + return + + + if not os.path.isdir(self.export_path_var.get()): + self.error_dialoge(INVALID_EXPORT) + return + + if not self.process_storage_check(): + return + + if self.chosen_process_method_var.get() != AUDIO_TOOLS: + if not self.process_preliminary_checks(): + error_msg = INVALID_ENSEMBLE if self.chosen_process_method_var.get() == ENSEMBLE_MODE else INVALID_MODEL + self.error_dialoge(error_msg) + return + target_function = self.process_start + else: + target_function = self.process_tool_start + + self.active_processing_thread = KThread(target=target_function) + self.active_processing_thread.start() + + def process_button_init(self): + self.auto_save() + self.conversion_Button_Text_var.set(WAIT_PROCESSING) + self.conversion_Button.configure(state=tk.DISABLED) + self.command_Text.clear() + + def process_get_baseText(self, total_files, file_num, is_dual=False): + """Create the base text for the command widget""" + + init_text = 'Files' if is_dual else 'File' + + text = '{init_text} {file_num}/{total_files} '.format(init_text=init_text, + file_num=file_num, + total_files=total_files) + + return text + + def process_update_progress(self, total_files, step: float = 1): + """Calculate the progress for the progress widget in the GUI""" + + total_count = self.true_model_count * total_files + base = (100 / total_count) + progress = base * self.iteration - base + progress += base * step + + self.progress_bar_main_var.set(progress) + + self.conversion_Button_Text_var.set(f'Process Progress: {int(progress)}%') + + def confirm_stop_process(self): + """Asks for confirmation before halting active process""" + + self.auto_save() + + if self.thread_check(self.active_processing_thread): + confirm = messagebox.askyesno(parent=root, title=STOP_PROCESS_CONFIRM[0], message=STOP_PROCESS_CONFIRM[1]) + + if confirm: + try: + self.active_processing_thread.terminate() + finally: + self.is_process_stopped = True + self.command_Text.write(PROCESS_STOPPED_BY_USER) + else: + self.clear_cache_torch = True + + def process_end(self, error=None): + """End of process actions""" + + self.auto_save() + self.cached_sources_clear() + self.clear_cache_torch = True + self.conversion_Button_Text_var.set(START_PROCESSING) + self.conversion_Button.configure(state=tk.NORMAL) + self.progress_bar_main_var.set(0) + + if error: + error_message_box_text = f'{error_dialouge(error)}{ERROR_OCCURED[1]}' + confirm = messagebox.askyesno(parent=root, + title=ERROR_OCCURED[0], + message=error_message_box_text) + + if confirm: + self.is_confirm_error_var.set(True) + self.clear_cache_torch = True + + self.clear_cache_torch = True + + if MODEL_MISSING_CHECK in error_message_box_text: + self.update_checkbox_text() + + def process_tool_start(self): + """Start the conversion for all the given mp3 and wav files""" + + def time_elapsed(): + return f'Time Elapsed: {time.strftime("%H:%M:%S", time.gmtime(int(time.perf_counter() - stime)))}' + + def get_audio_file_base(audio_file): + if audio_tool.audio_tool == MANUAL_ENSEMBLE: + return f'{os.path.splitext(os.path.basename(inputPaths[0]))[0]}' + elif audio_tool.audio_tool in [ALIGN_INPUTS, MATCH_INPUTS]: + return f'{os.path.splitext(os.path.basename(audio_file[0]))[0]}' + else: + return f'{os.path.splitext(os.path.basename(audio_file))[0]}' + + def handle_ensemble(inputPaths, audio_file_base): + self.progress_bar_main_var.set(50) + if self.choose_algorithm_var.get() == COMBINE_INPUTS: + audio_tool.combine_audio(inputPaths, audio_file_base) + else: + audio_tool.ensemble_manual(inputPaths, audio_file_base) + self.progress_bar_main_var.set(100) + self.command_Text.write(DONE) + + def handle_alignment_match(audio_file, audio_file_base, command_Text, set_progress_bar): + audio_file_2_base = f'{os.path.splitext(os.path.basename(audio_file[1]))[0]}' + if audio_tool.audio_tool == MATCH_INPUTS: + audio_tool.match_inputs(audio_file, audio_file_base, command_Text) + else: + command_Text(f"{PROCESS_STARTING_TEXT}\n") + audio_tool.align_inputs(audio_file, audio_file_base, audio_file_2_base, command_Text, set_progress_bar) + self.progress_bar_main_var.set(base * file_num) + self.command_Text.write(f"{DONE}\n") + + def handle_pitch_time_shift(audio_file, audio_file_base): + audio_tool.pitch_or_time_shift(audio_file, audio_file_base) + self.progress_bar_main_var.set(base * file_num) + self.command_Text.write(DONE) + + multiple_files = False + stime = time.perf_counter() + self.process_button_init() + inputPaths = self.inputPaths + is_verified_audio = True + is_dual = False + is_model_sample_mode = self.model_sample_mode_var.get() + self.iteration = 0 + self.true_model_count = 1 + self.process_check_wav_type() + process_complete_text = PROCESS_COMPLETE + + if self.chosen_audio_tool_var.get() in [ALIGN_INPUTS, MATCH_INPUTS]: + if self.DualBatch_inputPaths: + inputPaths = tuple(self.DualBatch_inputPaths) + else: + if not self.fileOneEntry_Full_var.get() or not self.fileTwoEntry_Full_var.get(): + self.command_Text.write(NOT_ENOUGH_ERROR_TEXT) + self.process_end() + return + else: + inputPaths = [(self.fileOneEntry_Full_var.get(), self.fileTwoEntry_Full_var.get())] + + try: + total_files = len(inputPaths) + if self.chosen_audio_tool_var.get() == TIME_STRETCH: + audio_tool = AudioTools(TIME_STRETCH) + self.progress_bar_main_var.set(2) + elif self.chosen_audio_tool_var.get() == CHANGE_PITCH: + audio_tool = AudioTools(CHANGE_PITCH) + self.progress_bar_main_var.set(2) + elif self.chosen_audio_tool_var.get() == MANUAL_ENSEMBLE: + if self.chosen_audio_tool_var.get() == MANUAL_ENSEMBLE: + audio_tool = Ensembler(is_manual_ensemble=True) + multiple_files = True + if total_files <= 1: + self.command_Text.write(NOT_ENOUGH_ERROR_TEXT) + self.process_end() + return + elif self.chosen_audio_tool_var.get() in [ALIGN_INPUTS, MATCH_INPUTS]: + audio_tool = AudioTools(self.chosen_audio_tool_var.get()) + self.progress_bar_main_var.set(2) + is_dual = True + + for file_num, audio_file in enumerate(inputPaths, start=1): + self.iteration += 1 + base = (100 / total_files) + audio_file_base = get_audio_file_base(audio_file) + self.base_text = self.process_get_baseText(total_files=total_files, file_num=total_files if multiple_files else file_num, is_dual=is_dual) + command_Text = lambda text: self.command_Text.write(self.base_text + text) + + set_progress_bar = lambda step, inference_iterations=0:self.process_update_progress(total_files=total_files, step=(step + (inference_iterations))) + + if not self.verify_audio(audio_file): + error_text_console = f'{self.base_text}"{os.path.basename(audio_file)}\" {MISSING_MESS_TEXT}\n' + if total_files >= 2: + self.command_Text.write(f'\n{error_text_console}') + is_verified_audio = False + continue + + audio_tool_action = audio_tool.audio_tool + if audio_tool_action not in [MANUAL_ENSEMBLE, ALIGN_INPUTS, MATCH_INPUTS]: + audio_file = self.create_sample(audio_file) if is_model_sample_mode else audio_file + self.command_Text.write(f'{NEW_LINE if file_num != 1 else NO_LINE}{self.base_text}"{os.path.basename(audio_file)}\".{NEW_LINES}') + elif audio_tool_action in [ALIGN_INPUTS, MATCH_INPUTS]: + text_write = ("File 1", "File 2") if audio_tool_action == ALIGN_INPUTS else ("Target", "Reference") + if audio_file[0] != audio_file[1]: + self.command_Text.write(f'{self.base_text}{text_write[0]}: "{os.path.basename(audio_file[0])}"{NEW_LINE}') + self.command_Text.write(f'{self.base_text}{text_write[1]}: "{os.path.basename(audio_file[1])}"{NEW_LINES}') + else: + self.command_Text.write(f'{self.base_text}{text_write[0]} & {text_write[1]} {SIMILAR_TEXT}{NEW_LINES}') + continue + elif audio_tool_action == MANUAL_ENSEMBLE: + for n, i in enumerate(inputPaths): + self.command_Text.write(f'File {n+1} "{os.path.basename(i)}"{NEW_LINE}') + self.command_Text.write(NEW_LINE) + + is_verified_audio = True + + if not audio_tool_action in [ALIGN_INPUTS, MATCH_INPUTS]: + command_Text(PROCESS_STARTING_TEXT) + + if audio_tool_action == MANUAL_ENSEMBLE: + handle_ensemble(inputPaths, audio_file_base) + break + if audio_tool_action in [ALIGN_INPUTS, MATCH_INPUTS]: + process_complete_text = PROCESS_COMPLETE_2 + handle_alignment_match(audio_file, audio_file_base, command_Text, set_progress_bar) + if audio_tool_action in [TIME_STRETCH, CHANGE_PITCH]: + handle_pitch_time_shift(audio_file, audio_file_base) + + if total_files == 1 and not is_verified_audio: + self.command_Text.write(f'{error_text_console}\n{PROCESS_FAILED}') + self.command_Text.write(time_elapsed()) + playsound(FAIL_CHIME) if self.is_task_complete_var.get() else None + else: + self.command_Text.write('{}{}'.format(process_complete_text, time_elapsed())) + playsound(COMPLETE_CHIME) if self.is_task_complete_var.get() else None + + self.process_end() + + except Exception as e: + self.error_log_var.set(error_text(self.chosen_audio_tool_var.get(), e)) + self.command_Text.write(f'\n\n{PROCESS_FAILED}') + self.command_Text.write(time_elapsed()) + playsound(FAIL_CHIME) if self.is_task_complete_var.get() else None + self.process_end(error=e) + + def process_determine_secondary_model(self, process_method, main_model_primary_stem, is_primary_stem_only=False, is_secondary_stem_only=False): + """Obtains the correct secondary model data for conversion.""" + + secondary_model_scale = None + secondary_model = tk.StringVar(value=NO_MODEL) + + if process_method == VR_ARCH_TYPE: + secondary_model_vars = self.vr_secondary_model_vars + if process_method == MDX_ARCH_TYPE: + secondary_model_vars = self.mdx_secondary_model_vars + if process_method == DEMUCS_ARCH_TYPE: + secondary_model_vars = self.demucs_secondary_model_vars + + if main_model_primary_stem in [VOCAL_STEM, INST_STEM]: + secondary_model = secondary_model_vars["voc_inst_secondary_model"] + secondary_model_scale = secondary_model_vars["voc_inst_secondary_model_scale"].get() + if main_model_primary_stem in [OTHER_STEM, NO_OTHER_STEM]: + secondary_model = secondary_model_vars["other_secondary_model"] + secondary_model_scale = secondary_model_vars["other_secondary_model_scale"].get() + if main_model_primary_stem in [DRUM_STEM, NO_DRUM_STEM]: + secondary_model = secondary_model_vars["drums_secondary_model"] + secondary_model_scale = secondary_model_vars["drums_secondary_model_scale"].get() + if main_model_primary_stem in [BASS_STEM, NO_BASS_STEM]: + secondary_model = secondary_model_vars["bass_secondary_model"] + secondary_model_scale = secondary_model_vars["bass_secondary_model_scale"].get() + + if secondary_model_scale: + secondary_model_scale = float(secondary_model_scale) + + if not secondary_model.get() == NO_MODEL: + secondary_model = ModelData(secondary_model.get(), + is_secondary_model=True, + primary_model_primary_stem=main_model_primary_stem, + is_primary_model_primary_stem_only=is_primary_stem_only, + is_primary_model_secondary_stem_only=is_secondary_stem_only) + if not secondary_model.model_status: + secondary_model = None + else: + secondary_model = None + + return secondary_model, secondary_model_scale + + def process_determine_demucs_pre_proc_model(self, primary_stem=None): + """Obtains the correct pre-process secondary model data for conversion.""" + + # Check if a pre-process model is set and it's not the 'NO_MODEL' value + if self.demucs_pre_proc_model_var.get() != NO_MODEL and self.is_demucs_pre_proc_model_activate_var.get(): + pre_proc_model = ModelData(self.demucs_pre_proc_model_var.get(), + primary_model_primary_stem=primary_stem, + is_pre_proc_model=True) + + # Return the model if it's valid + if pre_proc_model.model_status: + return pre_proc_model + + return None + + def process_determine_vocal_split_model(self): + """Obtains the correct vocal splitter secondary model data for conversion.""" + + # Check if a vocal splitter model is set and if it's not the 'NO_MODEL' value + if self.set_vocal_splitter_var.get() != NO_MODEL and self.is_set_vocal_splitter_var.get(): + vocal_splitter_model = ModelData(self.set_vocal_splitter_var.get(), is_vocal_split_model=True) + + # Return the model if it's valid + if vocal_splitter_model.model_status: + return vocal_splitter_model + + return None + + def check_only_selection_stem(self, checktype): + + chosen_method = self.chosen_process_method_var.get() + is_demucs = chosen_method == DEMUCS_ARCH_TYPE# + + stem_primary_label = self.is_primary_stem_only_Demucs_Text_var.get() if is_demucs else self.is_primary_stem_only_Text_var.get() + stem_primary_bool = self.is_primary_stem_only_Demucs_var.get() if is_demucs else self.is_primary_stem_only_var.get() + stem_secondary_label = self.is_secondary_stem_only_Demucs_Text_var.get() if is_demucs else self.is_secondary_stem_only_Text_var.get() + stem_secondary_bool = self.is_secondary_stem_only_Demucs_var.get() if is_demucs else self.is_secondary_stem_only_var.get() + + if checktype == VOCAL_STEM_ONLY: + return not ( + (not VOCAL_STEM_ONLY == stem_primary_label and stem_primary_bool) or + (not VOCAL_STEM_ONLY in stem_secondary_label and stem_secondary_bool) + ) + elif checktype == INST_STEM_ONLY: + return ( + (INST_STEM_ONLY == stem_primary_label and stem_primary_bool and self.is_save_inst_set_vocal_splitter_var.get() and self.set_vocal_splitter_var.get() != NO_MODEL) or + (INST_STEM_ONLY == stem_secondary_label and stem_secondary_bool and self.is_save_inst_set_vocal_splitter_var.get() and self.set_vocal_splitter_var.get() != NO_MODEL) + ) + elif checktype == IS_SAVE_VOC_ONLY: + return ( + (VOCAL_STEM_ONLY == stem_primary_label and stem_primary_bool) or + (VOCAL_STEM_ONLY == stem_secondary_label and stem_secondary_bool) + ) + elif checktype == IS_SAVE_INST_ONLY: + return ( + (INST_STEM_ONLY == stem_primary_label and stem_primary_bool) or + (INST_STEM_ONLY == stem_secondary_label and stem_secondary_bool) + ) + + def determine_voc_split(self, models): + is_vocal_active = self.check_only_selection_stem(VOCAL_STEM_ONLY) or self.check_only_selection_stem(INST_STEM_ONLY) + + if self.set_vocal_splitter_var.get() != NO_MODEL and self.is_set_vocal_splitter_var.get() and is_vocal_active: + model_stems_list = self.model_list(VOCAL_STEM, INST_STEM, is_dry_check=True, is_check_vocal_split=True) + if any(model.model_basename in model_stems_list for model in models): + return 1 + + return 0 + + def process_start(self): + """Start the conversion for all the given mp3 and wav files""" + + stime = time.perf_counter() + time_elapsed = lambda:f'Time Elapsed: {time.strftime("%H:%M:%S", time.gmtime(int(time.perf_counter() - stime)))}' + export_path = self.export_path_var.get() + is_ensemble = False + self.true_model_count = 0 + self.iteration = 0 + is_verified_audio = True + self.process_button_init() + inputPaths = self.inputPaths + inputPath_total_len = len(inputPaths) + is_model_sample_mode = self.model_sample_mode_var.get() + + try: + if self.chosen_process_method_var.get() == ENSEMBLE_MODE: + model, ensemble = self.assemble_model_data(), Ensembler() + export_path, is_ensemble = ensemble.ensemble_folder_name, True + if self.chosen_process_method_var.get() == VR_ARCH_PM: + model = self.assemble_model_data(self.vr_model_var.get(), VR_ARCH_TYPE) + if self.chosen_process_method_var.get() == MDX_ARCH_TYPE: + model = self.assemble_model_data(self.mdx_net_model_var.get(), MDX_ARCH_TYPE) + if self.chosen_process_method_var.get() == DEMUCS_ARCH_TYPE: + model = self.assemble_model_data(self.demucs_model_var.get(), DEMUCS_ARCH_TYPE) + + self.cached_source_model_list_check(model) + + true_model_4_stem_count = sum(m.demucs_4_stem_added_count if m.process_method == DEMUCS_ARCH_TYPE else 0 for m in model) + true_model_pre_proc_model_count = sum(2 if m.pre_proc_model_activated else 0 for m in model) + self.true_model_count = sum(2 if m.is_secondary_model_activated else 1 for m in model) + true_model_4_stem_count + true_model_pre_proc_model_count + self.determine_voc_split(model) + + #print("self.true_model_count", self.true_model_count) + + for file_num, audio_file in enumerate(inputPaths, start=1): + self.cached_sources_clear() + base_text = self.process_get_baseText(total_files=inputPath_total_len, file_num=file_num) + + if self.verify_audio(audio_file): + audio_file = self.create_sample(audio_file) if is_model_sample_mode else audio_file + self.command_Text.write(f'{NEW_LINE if not file_num ==1 else NO_LINE}{base_text}"{os.path.basename(audio_file)}\".{NEW_LINES}') + is_verified_audio = True + else: + error_text_console = f'{base_text}"{os.path.basename(audio_file)}\" {MISSING_MESS_TEXT}\n' + self.command_Text.write(f'\n{error_text_console}') if inputPath_total_len >= 2 else None + self.iteration += self.true_model_count + is_verified_audio = False + continue + + for current_model_num, current_model in enumerate(model, start=1): + self.iteration += 1 + + if is_ensemble: + self.command_Text.write(f'Ensemble Mode - {current_model.model_basename} - Model {current_model_num}/{len(model)}{NEW_LINES}') + + model_name_text = f'({current_model.model_basename})' if not is_ensemble else '' + self.command_Text.write(base_text + f'{LOADING_MODEL_TEXT} {model_name_text}...') + + set_progress_bar = lambda step, inference_iterations=0:self.process_update_progress(total_files=inputPath_total_len, step=(step + (inference_iterations))) + write_to_console = lambda progress_text, base_text=base_text:self.command_Text.write(base_text + progress_text) + + audio_file_base = f"{file_num}_{os.path.splitext(os.path.basename(audio_file))[0]}" + audio_file_base = audio_file_base if not self.is_testing_audio_var.get() or is_ensemble else f"{round(time.time())}_{audio_file_base}" + audio_file_base = audio_file_base if not is_ensemble else f"{audio_file_base}_{current_model.model_basename}" + if not is_ensemble: + audio_file_base = audio_file_base if not self.is_add_model_name_var.get() else f"{audio_file_base}_{current_model.model_basename}" + + if self.is_create_model_folder_var.get() and not is_ensemble: + export_path = os.path.join(Path(self.export_path_var.get()), current_model.model_basename, os.path.splitext(os.path.basename(audio_file))[0]) + if not os.path.isdir(export_path):os.makedirs(export_path) + + process_data = { + 'model_data': current_model, + 'export_path': export_path, + 'audio_file_base': audio_file_base, + 'audio_file': audio_file, + 'set_progress_bar': set_progress_bar, + 'write_to_console': write_to_console, + 'process_iteration': self.process_iteration, + 'cached_source_callback': self.cached_source_callback, + 'cached_model_source_holder': self.cached_model_source_holder, + 'list_all_models': self.all_models, + 'is_ensemble_master': is_ensemble, + 'is_4_stem_ensemble': True if self.ensemble_main_stem_var.get() in [FOUR_STEM_ENSEMBLE, MULTI_STEM_ENSEMBLE] and is_ensemble else False} + + if current_model.process_method == VR_ARCH_TYPE: + seperator = SeperateVR(current_model, process_data) + if current_model.process_method == MDX_ARCH_TYPE: + seperator = SeperateMDXC(current_model, process_data) if current_model.is_mdx_c else SeperateMDX(current_model, process_data) + if current_model.process_method == DEMUCS_ARCH_TYPE: + seperator = SeperateDemucs(current_model, process_data) + + seperator.seperate() + + if is_ensemble: + self.command_Text.write('\n') + + if is_ensemble: + + audio_file_base = audio_file_base.replace(f"_{current_model.model_basename}","") + self.command_Text.write(base_text + ENSEMBLING_OUTPUTS) + + if self.ensemble_main_stem_var.get() in [FOUR_STEM_ENSEMBLE, MULTI_STEM_ENSEMBLE]: + stem_list = extract_stems(audio_file_base, export_path) + for output_stem in stem_list: + ensemble.ensemble_outputs(audio_file_base, export_path, output_stem, is_4_stem=True) + else: + if not self.is_secondary_stem_only_var.get(): + ensemble.ensemble_outputs(audio_file_base, export_path, PRIMARY_STEM) + if not self.is_primary_stem_only_var.get(): + ensemble.ensemble_outputs(audio_file_base, export_path, SECONDARY_STEM) + ensemble.ensemble_outputs(audio_file_base, export_path, SECONDARY_STEM, is_inst_mix=True) + + self.command_Text.write(DONE) + + if is_model_sample_mode: + if os.path.isfile(audio_file): + os.remove(audio_file) + + clear_gpu_cache() + + shutil.rmtree(export_path) if is_ensemble and len(os.listdir(export_path)) == 0 else None + + if inputPath_total_len == 1 and not is_verified_audio: + self.command_Text.write(f'{error_text_console}\n{PROCESS_FAILED}') + self.command_Text.write(time_elapsed()) + playsound(FAIL_CHIME) if self.is_task_complete_var.get() else None + else: + set_progress_bar(1.0) + self.command_Text.write(PROCESS_COMPLETE) + self.command_Text.write(time_elapsed()) + playsound(COMPLETE_CHIME) if self.is_task_complete_var.get() else None + + self.process_end() + + except Exception as e: + self.error_log_var.set("{}{}".format(error_text(self.chosen_process_method_var.get(), e), self.get_settings_list())) + self.command_Text.write(f'\n\n{PROCESS_FAILED}') + self.command_Text.write(time_elapsed()) + playsound(FAIL_CHIME) if self.is_task_complete_var.get() else None + self.process_end(error=e) + + #--Varible Methods-- + + def load_to_default_confirm(self): + """Reset settings confirmation after asking for confirmation""" + if self.thread_check(self.active_processing_thread): + self.error_dialogue(SET_TO_DEFAULT_PROCESS_ERROR) + return + + confirm = messagebox.askyesno( + parent=root, + title=RESET_ALL_TO_DEFAULT_WARNING[0], + message=RESET_ALL_TO_DEFAULT_WARNING[1] + ) + if not confirm: + return + + self.load_saved_settings(DEFAULT_DATA, is_default_reset=True) + self.update_checkbox_text() + + if self.pre_proc_model_toggle is not None and self.is_open_menu_advanced_demucs_options.get(): + self.pre_proc_model_toggle() + + if (self.change_state_lambda is not None and ( + self.is_open_menu_advanced_vr_options.get() or + self.is_open_menu_advanced_mdx_options.get() or + self.is_open_menu_advanced_demucs_options.get() + )): + self.change_state_lambda() + + def load_saved_vars(self, data): + """Initializes primary Tkinter vars""" + + for key, value in DEFAULT_DATA.items(): + if not key in data.keys(): + data = {**data, **{key:value}} + data['batch_size'] = DEF_OPT + + ## ADD_BUTTON + self.chosen_process_method_var = tk.StringVar(value=data['chosen_process_method']) + + #VR Architecture Vars + self.vr_model_var = tk.StringVar(value=data['vr_model']) + self.aggression_setting_var = tk.StringVar(value=data['aggression_setting']) + self.window_size_var = tk.StringVar(value=data['window_size']) + self.mdx_segment_size_var = tk.StringVar(value=data['mdx_segment_size']) + self.batch_size_var = tk.StringVar(value=data['batch_size']) + self.crop_size_var = tk.StringVar(value=data['crop_size']) + self.is_tta_var = tk.BooleanVar(value=data['is_tta']) + self.is_output_image_var = tk.BooleanVar(value=data['is_output_image']) + self.is_post_process_var = tk.BooleanVar(value=data['is_post_process']) + self.is_high_end_process_var = tk.BooleanVar(value=data['is_high_end_process']) + self.post_process_threshold_var = tk.StringVar(value=data['post_process_threshold']) + self.vr_voc_inst_secondary_model_var = tk.StringVar(value=data['vr_voc_inst_secondary_model']) + self.vr_other_secondary_model_var = tk.StringVar(value=data['vr_other_secondary_model']) + self.vr_bass_secondary_model_var = tk.StringVar(value=data['vr_bass_secondary_model']) + self.vr_drums_secondary_model_var = tk.StringVar(value=data['vr_drums_secondary_model']) + self.vr_is_secondary_model_activate_var = tk.BooleanVar(value=data['vr_is_secondary_model_activate']) + self.vr_voc_inst_secondary_model_scale_var = tk.StringVar(value=data['vr_voc_inst_secondary_model_scale']) + self.vr_other_secondary_model_scale_var = tk.StringVar(value=data['vr_other_secondary_model_scale']) + self.vr_bass_secondary_model_scale_var = tk.StringVar(value=data['vr_bass_secondary_model_scale']) + self.vr_drums_secondary_model_scale_var = tk.StringVar(value=data['vr_drums_secondary_model_scale']) + + #Demucs Vars + self.demucs_model_var = tk.StringVar(value=data['demucs_model']) + self.segment_var = tk.StringVar(value=data['segment']) + self.overlap_var = tk.StringVar(value=data['overlap']) + self.overlap_mdx_var = tk.StringVar(value=data['overlap_mdx']) + self.overlap_mdx23_var = tk.StringVar(value=data['overlap_mdx23']) + self.shifts_var = tk.StringVar(value=data['shifts']) + self.chunks_demucs_var = tk.StringVar(value=data['chunks_demucs']) + self.margin_demucs_var = tk.StringVar(value=data['margin_demucs']) + self.is_chunk_demucs_var = tk.BooleanVar(value=data['is_chunk_demucs']) + self.is_chunk_mdxnet_var = tk.BooleanVar(value=False) + self.is_primary_stem_only_Demucs_var = tk.BooleanVar(value=data['is_primary_stem_only_Demucs']) + self.is_secondary_stem_only_Demucs_var = tk.BooleanVar(value=data['is_secondary_stem_only_Demucs']) + self.is_split_mode_var = tk.BooleanVar(value=data['is_split_mode']) + self.is_demucs_combine_stems_var = tk.BooleanVar(value=data['is_demucs_combine_stems'])#is_mdx23_combine_stems + self.is_mdx23_combine_stems_var = tk.BooleanVar(value=data['is_mdx23_combine_stems']) + self.demucs_voc_inst_secondary_model_var = tk.StringVar(value=data['demucs_voc_inst_secondary_model']) + self.demucs_other_secondary_model_var = tk.StringVar(value=data['demucs_other_secondary_model']) + self.demucs_bass_secondary_model_var = tk.StringVar(value=data['demucs_bass_secondary_model']) + self.demucs_drums_secondary_model_var = tk.StringVar(value=data['demucs_drums_secondary_model']) + self.demucs_is_secondary_model_activate_var = tk.BooleanVar(value=data['demucs_is_secondary_model_activate']) + self.demucs_voc_inst_secondary_model_scale_var = tk.StringVar(value=data['demucs_voc_inst_secondary_model_scale']) + self.demucs_other_secondary_model_scale_var = tk.StringVar(value=data['demucs_other_secondary_model_scale']) + self.demucs_bass_secondary_model_scale_var = tk.StringVar(value=data['demucs_bass_secondary_model_scale']) + self.demucs_drums_secondary_model_scale_var = tk.StringVar(value=data['demucs_drums_secondary_model_scale']) + self.demucs_pre_proc_model_var = tk.StringVar(value=data['demucs_pre_proc_model']) + self.is_demucs_pre_proc_model_activate_var = tk.BooleanVar(value=data['is_demucs_pre_proc_model_activate']) + self.is_demucs_pre_proc_model_inst_mix_var = tk.BooleanVar(value=data['is_demucs_pre_proc_model_inst_mix']) + + #MDX-Net Vars + self.mdx_net_model_var = tk.StringVar(value=data['mdx_net_model']) + self.chunks_var = tk.StringVar(value=data['chunks']) + self.margin_var = tk.StringVar(value=data['margin']) + self.compensate_var = tk.StringVar(value=data['compensate']) + self.denoise_option_var = tk.StringVar(value=data['denoise_option'])# + self.phase_option_var = tk.StringVar(value=data['phase_option'])# + self.phase_shifts_var = tk.StringVar(value=data['phase_shifts'])# + self.is_save_align_var = tk.BooleanVar(value=data['is_save_align'])#, + self.is_match_silence_var = tk.BooleanVar(value=data['is_match_silence'])# + self.is_spec_match_var = tk.BooleanVar(value=data['is_spec_match'])# + self.is_match_frequency_pitch_var = tk.BooleanVar(value=data['is_match_frequency_pitch'])# + self.is_mdx_c_seg_def_var = tk.BooleanVar(value=data['is_mdx_c_seg_def'])# + self.is_invert_spec_var = tk.BooleanVar(value=data['is_invert_spec'])# + self.is_deverb_vocals_var = tk.BooleanVar(value=data['is_deverb_vocals'])# + self.deverb_vocal_opt_var = tk.StringVar(value=data['deverb_vocal_opt'])# + self.voc_split_save_opt_var = tk.StringVar(value=data['voc_split_save_opt'])# + self.is_mixer_mode_var = tk.BooleanVar(value=data['is_mixer_mode']) + self.mdx_batch_size_var = tk.StringVar(value=data['mdx_batch_size']) + self.mdx_voc_inst_secondary_model_var = tk.StringVar(value=data['mdx_voc_inst_secondary_model']) + self.mdx_other_secondary_model_var = tk.StringVar(value=data['mdx_other_secondary_model']) + self.mdx_bass_secondary_model_var = tk.StringVar(value=data['mdx_bass_secondary_model']) + self.mdx_drums_secondary_model_var = tk.StringVar(value=data['mdx_drums_secondary_model']) + self.mdx_is_secondary_model_activate_var = tk.BooleanVar(value=data['mdx_is_secondary_model_activate']) + self.mdx_voc_inst_secondary_model_scale_var = tk.StringVar(value=data['mdx_voc_inst_secondary_model_scale']) + self.mdx_other_secondary_model_scale_var = tk.StringVar(value=data['mdx_other_secondary_model_scale']) + self.mdx_bass_secondary_model_scale_var = tk.StringVar(value=data['mdx_bass_secondary_model_scale']) + self.mdx_drums_secondary_model_scale_var = tk.StringVar(value=data['mdx_drums_secondary_model_scale']) + self.is_mdxnet_c_model_var = tk.BooleanVar(value=False) + + #Ensemble Vars + self.is_save_all_outputs_ensemble_var = tk.BooleanVar(value=data['is_save_all_outputs_ensemble']) + self.is_append_ensemble_name_var = tk.BooleanVar(value=data['is_append_ensemble_name']) + + #Audio Tool Vars + self.chosen_audio_tool_var = tk.StringVar(value=data['chosen_audio_tool']) + self.choose_algorithm_var = tk.StringVar(value=data['choose_algorithm']) + self.time_stretch_rate_var = tk.StringVar(value=data['time_stretch_rate']) + self.pitch_rate_var = tk.StringVar(value=data['pitch_rate']) + self.is_time_correction_var = tk.BooleanVar(value=data['is_time_correction']) + + #Shared Vars + self.semitone_shift_var = tk.StringVar(value=data['semitone_shift']) + self.mp3_bit_set_var = tk.StringVar(value=data['mp3_bit_set']) + self.save_format_var = tk.StringVar(value=data['save_format']) + self.wav_type_set_var = tk.StringVar(value=data['wav_type_set'])# + self.device_set_var = tk.StringVar(value=data['device_set'])# + self.user_code_var = tk.StringVar(value=data['user_code']) + self.is_gpu_conversion_var = tk.BooleanVar(value=data['is_gpu_conversion']) + self.is_primary_stem_only_var = tk.BooleanVar(value=data['is_primary_stem_only']) + self.is_secondary_stem_only_var = tk.BooleanVar(value=data['is_secondary_stem_only']) + self.is_testing_audio_var = tk.BooleanVar(value=data['is_testing_audio'])# + self.is_auto_update_model_params_var = tk.BooleanVar(value=True)# + self.is_auto_update_model_params = data['is_auto_update_model_params'] + self.is_add_model_name_var = tk.BooleanVar(value=data['is_add_model_name']) + self.is_accept_any_input_var = tk.BooleanVar(value=data['is_accept_any_input']) + self.is_task_complete_var = tk.BooleanVar(value=data['is_task_complete']) + self.is_normalization_var = tk.BooleanVar(value=data['is_normalization'])# + self.is_use_opencl_var = tk.BooleanVar(value=False)#True if is_opencl_only else data['is_use_opencl'])# + self.is_wav_ensemble_var = tk.BooleanVar(value=data['is_wav_ensemble'])# + self.is_create_model_folder_var = tk.BooleanVar(value=data['is_create_model_folder']) + self.help_hints_var = tk.BooleanVar(value=data['help_hints_var']) + self.model_sample_mode_var = tk.BooleanVar(value=data['model_sample_mode']) + self.model_sample_mode_duration_var = tk.StringVar(value=data['model_sample_mode_duration']) + self.model_sample_mode_duration_checkbox_var = tk.StringVar(value=SAMPLE_MODE_CHECKBOX(self.model_sample_mode_duration_var.get())) + self.model_sample_mode_duration_label_var = tk.StringVar(value=f'{self.model_sample_mode_duration_var.get()} Seconds') + self.set_vocal_splitter_var = tk.StringVar(value=data['set_vocal_splitter']) + self.is_set_vocal_splitter_var = tk.BooleanVar(value=data['is_set_vocal_splitter'])# + self.is_save_inst_set_vocal_splitter_var = tk.BooleanVar(value=data['is_save_inst_set_vocal_splitter'])# + + #Path Vars + self.export_path_var = tk.StringVar(value=data['export_path']) + self.inputPaths = data['input_paths'] + self.lastDir = data['lastDir'] + + #DualPaths-Align + self.time_window_var = tk.StringVar(value=data['time_window'])# + self.intro_analysis_var = tk.StringVar(value=data['intro_analysis']) + self.db_analysis_var = tk.StringVar(value=data['db_analysis']) + + self.fileOneEntry_var = tk.StringVar(value=data['fileOneEntry']) + self.fileOneEntry_Full_var = tk.StringVar(value=data['fileOneEntry_Full']) + self.fileTwoEntry_var = tk.StringVar(value=data['fileTwoEntry']) + self.fileTwoEntry_Full_var = tk.StringVar(value=data['fileTwoEntry_Full']) + self.DualBatch_inputPaths = data['DualBatch_inputPaths'] + + def load_saved_settings(self, loaded_setting: dict, process_method=None, is_default_reset=False): + """Loads user saved application settings or resets to default""" + + for key, value in DEFAULT_DATA.items(): + if not key in loaded_setting.keys(): + loaded_setting = {**loaded_setting, **{key:value}} + loaded_setting['batch_size'] = DEF_OPT + + is_default_reset = True if process_method == ENSEMBLE_MODE or is_default_reset else False + + if process_method == VR_ARCH_PM or is_default_reset: + self.vr_model_var.set(loaded_setting['vr_model']) + self.aggression_setting_var.set(loaded_setting['aggression_setting']) + self.window_size_var.set(loaded_setting['window_size']) + self.mdx_segment_size_var.set(loaded_setting['mdx_segment_size']) + self.batch_size_var.set(loaded_setting['batch_size']) + self.crop_size_var.set(loaded_setting['crop_size']) + self.is_tta_var.set(loaded_setting['is_tta']) + self.is_output_image_var.set(loaded_setting['is_output_image']) + self.is_post_process_var.set(loaded_setting['is_post_process']) + self.is_high_end_process_var.set(loaded_setting['is_high_end_process']) + self.post_process_threshold_var.set(loaded_setting['post_process_threshold']) + self.vr_voc_inst_secondary_model_var.set(loaded_setting['vr_voc_inst_secondary_model']) + self.vr_other_secondary_model_var.set(loaded_setting['vr_other_secondary_model']) + self.vr_bass_secondary_model_var.set(loaded_setting['vr_bass_secondary_model']) + self.vr_drums_secondary_model_var.set(loaded_setting['vr_drums_secondary_model']) + self.vr_is_secondary_model_activate_var.set(loaded_setting['vr_is_secondary_model_activate']) + self.vr_voc_inst_secondary_model_scale_var.set(loaded_setting['vr_voc_inst_secondary_model_scale']) + self.vr_other_secondary_model_scale_var.set(loaded_setting['vr_other_secondary_model_scale']) + self.vr_bass_secondary_model_scale_var.set(loaded_setting['vr_bass_secondary_model_scale']) + self.vr_drums_secondary_model_scale_var.set(loaded_setting['vr_drums_secondary_model_scale']) + + if process_method == DEMUCS_ARCH_TYPE or is_default_reset: + self.demucs_model_var.set(loaded_setting['demucs_model']) + self.segment_var.set(loaded_setting['segment']) + self.overlap_var.set(loaded_setting['overlap']) + self.shifts_var.set(loaded_setting['shifts']) + self.chunks_demucs_var.set(loaded_setting['chunks_demucs']) + self.margin_demucs_var.set(loaded_setting['margin_demucs']) + self.is_chunk_demucs_var.set(loaded_setting['is_chunk_demucs']) + self.is_chunk_mdxnet_var.set(loaded_setting['is_chunk_mdxnet']) + self.is_primary_stem_only_Demucs_var.set(loaded_setting['is_primary_stem_only_Demucs']) + self.is_secondary_stem_only_Demucs_var.set(loaded_setting['is_secondary_stem_only_Demucs']) + self.is_split_mode_var.set(loaded_setting['is_split_mode']) + self.is_demucs_combine_stems_var.set(loaded_setting['is_demucs_combine_stems'])# + self.is_mdx23_combine_stems_var.set(loaded_setting['is_mdx23_combine_stems'])# + self.demucs_voc_inst_secondary_model_var.set(loaded_setting['demucs_voc_inst_secondary_model']) + self.demucs_other_secondary_model_var.set(loaded_setting['demucs_other_secondary_model']) + self.demucs_bass_secondary_model_var.set(loaded_setting['demucs_bass_secondary_model']) + self.demucs_drums_secondary_model_var.set(loaded_setting['demucs_drums_secondary_model']) + self.demucs_is_secondary_model_activate_var.set(loaded_setting['demucs_is_secondary_model_activate']) + self.demucs_voc_inst_secondary_model_scale_var.set(loaded_setting['demucs_voc_inst_secondary_model_scale']) + self.demucs_other_secondary_model_scale_var.set(loaded_setting['demucs_other_secondary_model_scale']) + self.demucs_bass_secondary_model_scale_var.set(loaded_setting['demucs_bass_secondary_model_scale']) + self.demucs_drums_secondary_model_scale_var.set(loaded_setting['demucs_drums_secondary_model_scale']) + self.demucs_stems_var.set(loaded_setting['demucs_stems']) + self.mdxnet_stems_var.set(loaded_setting['mdx_stems']) + self.update_stem_checkbox_labels(self.demucs_stems_var.get(), demucs=True) + self.demucs_pre_proc_model_var.set(loaded_setting['demucs_pre_proc_model']) + self.is_demucs_pre_proc_model_activate_var.set(loaded_setting['is_demucs_pre_proc_model_activate']) + self.is_demucs_pre_proc_model_inst_mix_var.set(loaded_setting['is_demucs_pre_proc_model_inst_mix']) + + if process_method == MDX_ARCH_TYPE or is_default_reset: + self.mdx_net_model_var.set(loaded_setting['mdx_net_model']) + self.chunks_var.set(loaded_setting['chunks']) + self.margin_var.set(loaded_setting['margin']) + self.compensate_var.set(loaded_setting['compensate']) + self.denoise_option_var.set(loaded_setting['denoise_option']) + self.is_match_frequency_pitch_var.set(loaded_setting['is_match_frequency_pitch'])# + self.overlap_mdx_var.set(loaded_setting['overlap_mdx']) + self.overlap_mdx23_var.set(loaded_setting['overlap_mdx23']) + self.is_mdx_c_seg_def_var.set(loaded_setting['is_mdx_c_seg_def'])# + self.is_invert_spec_var.set(loaded_setting['is_invert_spec'])# + self.is_mixer_mode_var.set(loaded_setting['is_mixer_mode']) + self.mdx_batch_size_var.set(loaded_setting['mdx_batch_size']) + self.mdx_voc_inst_secondary_model_var.set(loaded_setting['mdx_voc_inst_secondary_model']) + self.mdx_other_secondary_model_var.set(loaded_setting['mdx_other_secondary_model']) + self.mdx_bass_secondary_model_var.set(loaded_setting['mdx_bass_secondary_model']) + self.mdx_drums_secondary_model_var.set(loaded_setting['mdx_drums_secondary_model']) + self.mdx_is_secondary_model_activate_var.set(loaded_setting['mdx_is_secondary_model_activate']) + self.mdx_voc_inst_secondary_model_scale_var.set(loaded_setting['mdx_voc_inst_secondary_model_scale']) + self.mdx_other_secondary_model_scale_var.set(loaded_setting['mdx_other_secondary_model_scale']) + self.mdx_bass_secondary_model_scale_var.set(loaded_setting['mdx_bass_secondary_model_scale']) + self.mdx_drums_secondary_model_scale_var.set(loaded_setting['mdx_drums_secondary_model_scale']) + + if is_default_reset: + self.is_save_all_outputs_ensemble_var.set(loaded_setting['is_save_all_outputs_ensemble']) + self.is_append_ensemble_name_var.set(loaded_setting['is_append_ensemble_name']) + self.choose_algorithm_var.set(loaded_setting['choose_algorithm']) + self.time_stretch_rate_var.set(loaded_setting['time_stretch_rate']) + self.pitch_rate_var.set(loaded_setting['pitch_rate'])# + self.is_time_correction_var.set(loaded_setting['is_time_correction'])# + self.is_primary_stem_only_var.set(loaded_setting['is_primary_stem_only']) + self.is_secondary_stem_only_var.set(loaded_setting['is_secondary_stem_only']) + self.is_testing_audio_var.set(loaded_setting['is_testing_audio'])# + self.is_auto_update_model_params_var.set(loaded_setting['is_auto_update_model_params']) + self.is_add_model_name_var.set(loaded_setting['is_add_model_name']) + self.is_accept_any_input_var.set(loaded_setting["is_accept_any_input"]) + self.is_task_complete_var.set(loaded_setting['is_task_complete']) + self.is_create_model_folder_var.set(loaded_setting['is_create_model_folder']) + self.mp3_bit_set_var.set(loaded_setting['mp3_bit_set']) + self.semitone_shift_var.set(loaded_setting['semitone_shift'])# + self.save_format_var.set(loaded_setting['save_format']) + self.wav_type_set_var.set(loaded_setting['wav_type_set'])# + self.device_set_var.set(loaded_setting['device_set'])# + self.user_code_var.set(loaded_setting['user_code']) + self.phase_option_var.set(loaded_setting['phase_option'])# + self.phase_shifts_var.set(loaded_setting['phase_shifts'])# + self.is_save_align_var.set(loaded_setting['is_save_align'])#i + self.time_window_var.set(loaded_setting['time_window'])# + self.is_match_silence_var.set(loaded_setting['is_match_silence'])# + self.is_spec_match_var.set(loaded_setting['is_spec_match'])# + self.intro_analysis_var.set(loaded_setting['intro_analysis'])# + self.db_analysis_var.set(loaded_setting['db_analysis'])# + self.fileOneEntry_var.set(loaded_setting['fileOneEntry'])# + self.fileOneEntry_Full_var.set(loaded_setting['fileOneEntry_Full'])# + self.fileTwoEntry_var.set(loaded_setting['fileTwoEntry'])# + self.fileTwoEntry_Full_var.set(loaded_setting['fileTwoEntry_Full'])# + self.DualBatch_inputPaths = [] + + self.is_gpu_conversion_var.set(loaded_setting['is_gpu_conversion']) + self.is_normalization_var.set(loaded_setting['is_normalization'])# + self.is_use_opencl_var.set(False)#True if is_opencl_only else loaded_setting['is_use_opencl'])# + self.is_wav_ensemble_var.set(loaded_setting['is_wav_ensemble'])# + self.help_hints_var.set(loaded_setting['help_hints_var']) + self.is_wav_ensemble_var.set(loaded_setting['is_wav_ensemble']) + self.set_vocal_splitter_var.set(loaded_setting['set_vocal_splitter']) + self.is_set_vocal_splitter_var.set(loaded_setting['is_set_vocal_splitter'])# + self.is_save_inst_set_vocal_splitter_var.set(loaded_setting['is_save_inst_set_vocal_splitter'])# + self.deverb_vocal_opt_var.set(loaded_setting['deverb_vocal_opt'])# + self.voc_split_save_opt_var.set(loaded_setting['voc_split_save_opt'])# + self.is_deverb_vocals_var.set(loaded_setting['is_deverb_vocals'])# + + self.model_sample_mode_var.set(loaded_setting['model_sample_mode']) + self.model_sample_mode_duration_var.set(loaded_setting['model_sample_mode_duration']) + self.model_sample_mode_duration_checkbox_var.set(SAMPLE_MODE_CHECKBOX(self.model_sample_mode_duration_var.get())) + self.model_sample_mode_duration_label_var.set(f'{self.model_sample_mode_duration_var.get()} Seconds') + + def save_values(self, app_close=True, is_restart=False, is_auto_save=False): + """Saves application data""" + + # -Save Data- + main_settings={ + 'vr_model': self.vr_model_var.get(), + 'aggression_setting': self.aggression_setting_var.get(), + 'window_size': self.window_size_var.get(), + 'mdx_segment_size': self.mdx_segment_size_var.get(), + 'batch_size': self.batch_size_var.get(), + 'crop_size': self.crop_size_var.get(), + 'is_tta': self.is_tta_var.get(), + 'is_output_image': self.is_output_image_var.get(), + 'is_post_process': self.is_post_process_var.get(), + 'is_high_end_process': self.is_high_end_process_var.get(), + 'post_process_threshold': self.post_process_threshold_var.get(), + 'vr_voc_inst_secondary_model': self.vr_voc_inst_secondary_model_var.get(), + 'vr_other_secondary_model': self.vr_other_secondary_model_var.get(), + 'vr_bass_secondary_model': self.vr_bass_secondary_model_var.get(), + 'vr_drums_secondary_model': self.vr_drums_secondary_model_var.get(), + 'vr_is_secondary_model_activate': self.vr_is_secondary_model_activate_var.get(), + 'vr_voc_inst_secondary_model_scale': self.vr_voc_inst_secondary_model_scale_var.get(), + 'vr_other_secondary_model_scale': self.vr_other_secondary_model_scale_var.get(), + 'vr_bass_secondary_model_scale': self.vr_bass_secondary_model_scale_var.get(), + 'vr_drums_secondary_model_scale': self.vr_drums_secondary_model_scale_var.get(), + 'demucs_model': self.demucs_model_var.get(), + 'segment': self.segment_var.get(), + 'overlap': self.overlap_var.get(), + 'overlap_mdx': self.overlap_mdx_var.get(), + 'overlap_mdx23': self.overlap_mdx23_var.get(), + 'shifts': self.shifts_var.get(), + 'chunks_demucs': self.chunks_demucs_var.get(), + 'margin_demucs': self.margin_demucs_var.get(), + 'is_chunk_demucs': self.is_chunk_demucs_var.get(), + 'is_chunk_mdxnet': self.is_chunk_mdxnet_var.get(), + 'is_primary_stem_only_Demucs': self.is_primary_stem_only_Demucs_var.get(), + 'is_secondary_stem_only_Demucs': self.is_secondary_stem_only_Demucs_var.get(), + 'is_split_mode': self.is_split_mode_var.get(), + 'is_demucs_combine_stems': self.is_demucs_combine_stems_var.get(),# + 'is_mdx23_combine_stems': self.is_mdx23_combine_stems_var.get(),# + 'demucs_voc_inst_secondary_model': self.demucs_voc_inst_secondary_model_var.get(), + 'demucs_other_secondary_model': self.demucs_other_secondary_model_var.get(), + 'demucs_bass_secondary_model': self.demucs_bass_secondary_model_var.get(), + 'demucs_drums_secondary_model': self.demucs_drums_secondary_model_var.get(), + 'demucs_is_secondary_model_activate': self.demucs_is_secondary_model_activate_var.get(), + 'demucs_voc_inst_secondary_model_scale': self.demucs_voc_inst_secondary_model_scale_var.get(), + 'demucs_other_secondary_model_scale': self.demucs_other_secondary_model_scale_var.get(), + 'demucs_bass_secondary_model_scale': self.demucs_bass_secondary_model_scale_var.get(), + 'demucs_drums_secondary_model_scale': self.demucs_drums_secondary_model_scale_var.get(), + 'demucs_pre_proc_model': self.demucs_pre_proc_model_var.get(), + 'is_demucs_pre_proc_model_activate': self.is_demucs_pre_proc_model_activate_var.get(), + 'is_demucs_pre_proc_model_inst_mix': self.is_demucs_pre_proc_model_inst_mix_var.get(), + 'mdx_net_model': self.mdx_net_model_var.get(), + 'chunks': self.chunks_var.get(), + 'margin': self.margin_var.get(), + 'compensate': self.compensate_var.get(), + 'denoise_option': self.denoise_option_var.get(),# + 'is_match_frequency_pitch': self.is_match_frequency_pitch_var.get(),# + 'phase_option': self.phase_option_var.get(),# + 'phase_shifts': self.phase_shifts_var.get(),# + 'is_save_align': self.is_save_align_var.get(),# + 'is_match_silence': self.is_match_silence_var.get(),# + 'is_spec_match': self.is_spec_match_var.get(),# + 'is_mdx_c_seg_def': self.is_mdx_c_seg_def_var.get(),# + 'is_invert_spec': self.is_invert_spec_var.get(),# + 'is_deverb_vocals': self.is_deverb_vocals_var.get(),##, + 'deverb_vocal_opt': self.deverb_vocal_opt_var.get(),# + 'voc_split_save_opt': self.voc_split_save_opt_var.get(),##, + 'is_mixer_mode': self.is_mixer_mode_var.get(), + 'mdx_batch_size':self.mdx_batch_size_var.get(), + 'mdx_voc_inst_secondary_model': self.mdx_voc_inst_secondary_model_var.get(), + 'mdx_other_secondary_model': self.mdx_other_secondary_model_var.get(), + 'mdx_bass_secondary_model': self.mdx_bass_secondary_model_var.get(), + 'mdx_drums_secondary_model': self.mdx_drums_secondary_model_var.get(), + 'mdx_is_secondary_model_activate': self.mdx_is_secondary_model_activate_var.get(), + 'mdx_voc_inst_secondary_model_scale': self.mdx_voc_inst_secondary_model_scale_var.get(), + 'mdx_other_secondary_model_scale': self.mdx_other_secondary_model_scale_var.get(), + 'mdx_bass_secondary_model_scale': self.mdx_bass_secondary_model_scale_var.get(), + 'mdx_drums_secondary_model_scale': self.mdx_drums_secondary_model_scale_var.get(), + 'is_save_all_outputs_ensemble': self.is_save_all_outputs_ensemble_var.get(), + 'is_append_ensemble_name': self.is_append_ensemble_name_var.get(), + 'chosen_audio_tool': self.chosen_audio_tool_var.get(), + 'choose_algorithm': self.choose_algorithm_var.get(), + 'time_stretch_rate': self.time_stretch_rate_var.get(), + 'pitch_rate': self.pitch_rate_var.get(),# + 'is_time_correction': self.is_time_correction_var.get(),# + 'is_gpu_conversion': self.is_gpu_conversion_var.get(), + 'is_primary_stem_only': self.is_primary_stem_only_var.get(), + 'is_secondary_stem_only': self.is_secondary_stem_only_var.get(), + 'is_testing_audio': self.is_testing_audio_var.get(),# + 'is_auto_update_model_params': self.is_auto_update_model_params_var.get(), + 'is_add_model_name': self.is_add_model_name_var.get(), + 'is_accept_any_input': self.is_accept_any_input_var.get(), + 'is_task_complete': self.is_task_complete_var.get(), + 'is_normalization': self.is_normalization_var.get(),# + 'is_use_opencl': self.is_use_opencl_var.get(),# + 'is_wav_ensemble': self.is_wav_ensemble_var.get(),# + 'is_create_model_folder': self.is_create_model_folder_var.get(), + 'mp3_bit_set': self.mp3_bit_set_var.get(), + 'semitone_shift': self.semitone_shift_var.get(),# + 'save_format': self.save_format_var.get(), + 'wav_type_set': self.wav_type_set_var.get(),# + 'device_set': self.device_set_var.get(),# + 'user_code': self.user_code_var.get(), + 'help_hints_var': self.help_hints_var.get(), + 'set_vocal_splitter': self.set_vocal_splitter_var.get(), + 'is_set_vocal_splitter': self.is_set_vocal_splitter_var.get(),# + 'is_save_inst_set_vocal_splitter': self.is_save_inst_set_vocal_splitter_var.get(),# + 'model_sample_mode': self.model_sample_mode_var.get(), + 'model_sample_mode_duration': self.model_sample_mode_duration_var.get() + } + + other_data = { + 'chosen_process_method': self.chosen_process_method_var.get(), + 'input_paths': self.inputPaths, + 'lastDir': self.lastDir, + 'export_path': self.export_path_var.get(), + 'time_window': self.time_window_var.get(), + 'intro_analysis': self.intro_analysis_var.get(), + 'db_analysis': self.db_analysis_var.get(), + 'fileOneEntry': self.fileOneEntry_var.get(), + 'fileOneEntry_Full': self.fileOneEntry_Full_var.get(), + 'fileTwoEntry': self.fileTwoEntry_var.get(), + 'fileTwoEntry_Full': self.fileTwoEntry_Full_var.get(), + 'DualBatch_inputPaths': self.DualBatch_inputPaths, + #'model_hash_table': model_hash_table, + } + + user_saved_extras = { + 'demucs_stems': self.demucs_stems_var.get(), + 'mdx_stems': self.mdxnet_stems_var.get()} + + if app_close: + save_data(data={**main_settings, **other_data}) + + if self.thread_check(self.active_download_thread): + self.error_dialoge(EXIT_DOWNLOAD_ERROR) + return + + if self.thread_check(self.active_processing_thread): + if self.is_process_stopped: + self.error_dialoge(EXIT_HALTED_PROCESS_ERROR) + else: + self.error_dialoge(EXIT_PROCESS_ERROR) + return + + remove_temps(ENSEMBLE_TEMP_PATH) + remove_temps(SAMPLE_CLIP_PATH) + self.delete_temps() + + if is_restart: + try: + subprocess.Popen(f'UVR_Launcher.exe') + except Exception: + subprocess.Popen(f'python "{__file__}"', shell=True) + + self.destroy() + + elif is_auto_save: + save_data(data={**main_settings, **other_data}) + else: + return {**main_settings, **user_saved_extras} + + def get_settings_list(self): + + settings_dict = self.save_values(app_close=False) + settings_list = '\n'.join(''.join(f"{key}: {value}") for key, value in settings_dict.items() if not key == 'user_code') + + return f"\n{FULL_APP_SET_TEXT}:\n\n{settings_list}" + +def read_bulliten_text_mac(path, data): + try: + with open(path, 'w') as f: + f.write(data) + + if os.path.isfile(path): + with open(path, 'r') as file : + data = file.read().replace("~", "•") + except Exception as e: + data = 'No information available.' + + return data + +def open_link(event, link=None): + webbrowser.open(link) + +def auto_hyperlink(text_widget:tk.Text): + content = text_widget.get('1.0', tk.END) + + # Regular expression to identify URLs + urls = re.findall(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\\(\\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', content) + + for url in urls: + start_idx = content.find(url) + end_idx = start_idx + len(url) + + # Convert indices to tk.Text widget format + start_line = content.count('\n', 0, start_idx) + 1 + start_char = start_idx - content.rfind('\n', 0, start_idx) - 1 + end_line = content.count('\n', 0, end_idx) + 1 + end_char = end_idx - content.rfind('\n', 0, end_idx) - 1 + + start_tag = f"{start_line}.{start_char}" + end_tag = f"{end_line}.{end_char}" + + # Tag the hyperlink text and configure it + text_widget.tag_add(url, start_tag, end_tag) + text_widget.tag_configure(url, foreground=FG_COLOR, underline=True) + text_widget.tag_bind(url, "", lambda e, link=url: open_link(e, link)) + text_widget.tag_bind(url, "", lambda e: text_widget.config(cursor="hand2")) + text_widget.tag_bind(url, "", lambda e: text_widget.config(cursor="arrow")) + +def vip_downloads(password, link_type=VIP_REPO): + """Attempts to decrypt VIP model link with given input code""" + + try: + kdf = PBKDF2HMAC( + algorithm=hashes.SHA256(), + length=32, + salt=link_type[0], + iterations=390000,) + + key = base64.urlsafe_b64encode(kdf.derive(bytes(password, 'utf-8'))) + f = Fernet(key) + + return str(f.decrypt(link_type[1]), 'UTF-8') + except Exception: + return NO_CODE + +def extract_stems(audio_file_base, export_path): + + filenames = [file for file in os.listdir(export_path) if file.startswith(audio_file_base)] + + pattern = r'\(([^()]+)\)(?=[^()]*\.wav)' + stem_list = [] + + for filename in filenames: + match = re.search(pattern, filename) + if match: + stem_list.append(match.group(1)) + + counter = Counter(stem_list) + filtered_lst = [item for item in stem_list if counter[item] > 1] + + return list(set(filtered_lst)) + +if __name__ == "__main__": + + try: + windll.user32.SetThreadDpiAwarenessContext(wintypes.HANDLE(-1)) + except Exception as e: + if OPERATING_SYSTEM == 'Windows': + print(e) + + root = MainWindow() + root.update_checkbox_text() + root.is_root_defined_var.set(True) + root.is_check_splash = True + + root.update() if is_windows else root.update_idletasks() + root.deiconify() + root.configure(bg=BG_COLOR) + root.mainloop() diff --git a/__version__.py b/__version__.py new file mode 100644 index 0000000..990c401 --- /dev/null +++ b/__version__.py @@ -0,0 +1,4 @@ +VERSION = 'v5.6.0' +PATCH = 'UVR_Patch_9_29_23_1_39' +PATCH_MAC = 'UVR_Patch_9_29_23_1_39' +PATCH_LINUX = 'UVR_Patch_9_29_23_1_39' diff --git a/demucs/__init__.py b/demucs/__init__.py new file mode 100644 index 0000000..5656d59 --- /dev/null +++ b/demucs/__init__.py @@ -0,0 +1,5 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. diff --git a/demucs/__main__.py b/demucs/__main__.py new file mode 100644 index 0000000..5de878f --- /dev/null +++ b/demucs/__main__.py @@ -0,0 +1,272 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import json +import os +import sys +import time +from dataclasses import dataclass, field +from fractions import Fraction + +import torch as th +from torch import distributed, nn +from torch.nn.parallel.distributed import DistributedDataParallel + +from .augment import FlipChannels, FlipSign, Remix, Shift +from .compressed import StemsSet, build_musdb_metadata, get_musdb_tracks +from .model import Demucs +from .parser import get_name, get_parser +from .raw import Rawset +from .tasnet import ConvTasNet +from .test import evaluate +from .train import train_model, validate_model +from .utils import human_seconds, load_model, save_model, sizeof_fmt + + +@dataclass +class SavedState: + metrics: list = field(default_factory=list) + last_state: dict = None + best_state: dict = None + optimizer: dict = None + + +def main(): + parser = get_parser() + args = parser.parse_args() + name = get_name(parser, args) + print(f"Experiment {name}") + + if args.musdb is None and args.rank == 0: + print( + "You must provide the path to the MusDB dataset with the --musdb flag. " + "To download the MusDB dataset, see https://sigsep.github.io/datasets/musdb.html.", + file=sys.stderr) + sys.exit(1) + + eval_folder = args.evals / name + eval_folder.mkdir(exist_ok=True, parents=True) + args.logs.mkdir(exist_ok=True) + metrics_path = args.logs / f"{name}.json" + eval_folder.mkdir(exist_ok=True, parents=True) + args.checkpoints.mkdir(exist_ok=True, parents=True) + args.models.mkdir(exist_ok=True, parents=True) + + if args.device is None: + device = "cpu" + if th.cuda.is_available(): + device = "cuda" + else: + device = args.device + + th.manual_seed(args.seed) + # Prevents too many threads to be started when running `museval` as it can be quite + # inefficient on NUMA architectures. + os.environ["OMP_NUM_THREADS"] = "1" + + if args.world_size > 1: + if device != "cuda" and args.rank == 0: + print("Error: distributed training is only available with cuda device", file=sys.stderr) + sys.exit(1) + th.cuda.set_device(args.rank % th.cuda.device_count()) + distributed.init_process_group(backend="nccl", + init_method="tcp://" + args.master, + rank=args.rank, + world_size=args.world_size) + + checkpoint = args.checkpoints / f"{name}.th" + checkpoint_tmp = args.checkpoints / f"{name}.th.tmp" + if args.restart and checkpoint.exists(): + checkpoint.unlink() + + if args.test: + args.epochs = 1 + args.repeat = 0 + model = load_model(args.models / args.test) + elif args.tasnet: + model = ConvTasNet(audio_channels=args.audio_channels, samplerate=args.samplerate, X=args.X) + else: + model = Demucs( + audio_channels=args.audio_channels, + channels=args.channels, + context=args.context, + depth=args.depth, + glu=args.glu, + growth=args.growth, + kernel_size=args.kernel_size, + lstm_layers=args.lstm_layers, + rescale=args.rescale, + rewrite=args.rewrite, + sources=4, + stride=args.conv_stride, + upsample=args.upsample, + samplerate=args.samplerate + ) + model.to(device) + if args.show: + print(model) + size = sizeof_fmt(4 * sum(p.numel() for p in model.parameters())) + print(f"Model size {size}") + return + + optimizer = th.optim.Adam(model.parameters(), lr=args.lr) + + try: + saved = th.load(checkpoint, map_location='cpu') + except IOError: + saved = SavedState() + else: + model.load_state_dict(saved.last_state) + optimizer.load_state_dict(saved.optimizer) + + if args.save_model: + if args.rank == 0: + model.to("cpu") + model.load_state_dict(saved.best_state) + save_model(model, args.models / f"{name}.th") + return + + if args.rank == 0: + done = args.logs / f"{name}.done" + if done.exists(): + done.unlink() + + if args.augment: + augment = nn.Sequential(FlipSign(), FlipChannels(), Shift(args.data_stride), + Remix(group_size=args.remix_group_size)).to(device) + else: + augment = Shift(args.data_stride) + + if args.mse: + criterion = nn.MSELoss() + else: + criterion = nn.L1Loss() + + # Setting number of samples so that all convolution windows are full. + # Prevents hard to debug mistake with the prediction being shifted compared + # to the input mixture. + samples = model.valid_length(args.samples) + print(f"Number of training samples adjusted to {samples}") + + if args.raw: + train_set = Rawset(args.raw / "train", + samples=samples + args.data_stride, + channels=args.audio_channels, + streams=[0, 1, 2, 3, 4], + stride=args.data_stride) + + valid_set = Rawset(args.raw / "valid", channels=args.audio_channels) + else: + if not args.metadata.is_file() and args.rank == 0: + build_musdb_metadata(args.metadata, args.musdb, args.workers) + if args.world_size > 1: + distributed.barrier() + metadata = json.load(open(args.metadata)) + duration = Fraction(samples + args.data_stride, args.samplerate) + stride = Fraction(args.data_stride, args.samplerate) + train_set = StemsSet(get_musdb_tracks(args.musdb, subsets=["train"], split="train"), + metadata, + duration=duration, + stride=stride, + samplerate=args.samplerate, + channels=args.audio_channels) + valid_set = StemsSet(get_musdb_tracks(args.musdb, subsets=["train"], split="valid"), + metadata, + samplerate=args.samplerate, + channels=args.audio_channels) + + best_loss = float("inf") + for epoch, metrics in enumerate(saved.metrics): + print(f"Epoch {epoch:03d}: " + f"train={metrics['train']:.8f} " + f"valid={metrics['valid']:.8f} " + f"best={metrics['best']:.4f} " + f"duration={human_seconds(metrics['duration'])}") + best_loss = metrics['best'] + + if args.world_size > 1: + dmodel = DistributedDataParallel(model, + device_ids=[th.cuda.current_device()], + output_device=th.cuda.current_device()) + else: + dmodel = model + + for epoch in range(len(saved.metrics), args.epochs): + begin = time.time() + model.train() + train_loss = train_model(epoch, + train_set, + dmodel, + criterion, + optimizer, + augment, + batch_size=args.batch_size, + device=device, + repeat=args.repeat, + seed=args.seed, + workers=args.workers, + world_size=args.world_size) + model.eval() + valid_loss = validate_model(epoch, + valid_set, + model, + criterion, + device=device, + rank=args.rank, + split=args.split_valid, + world_size=args.world_size) + + duration = time.time() - begin + if valid_loss < best_loss: + best_loss = valid_loss + saved.best_state = { + key: value.to("cpu").clone() + for key, value in model.state_dict().items() + } + saved.metrics.append({ + "train": train_loss, + "valid": valid_loss, + "best": best_loss, + "duration": duration + }) + if args.rank == 0: + json.dump(saved.metrics, open(metrics_path, "w")) + + saved.last_state = model.state_dict() + saved.optimizer = optimizer.state_dict() + if args.rank == 0 and not args.test: + th.save(saved, checkpoint_tmp) + checkpoint_tmp.rename(checkpoint) + + print(f"Epoch {epoch:03d}: " + f"train={train_loss:.8f} valid={valid_loss:.8f} best={best_loss:.4f} " + f"duration={human_seconds(duration)}") + + del dmodel + model.load_state_dict(saved.best_state) + if args.eval_cpu: + device = "cpu" + model.to(device) + model.eval() + evaluate(model, + args.musdb, + eval_folder, + rank=args.rank, + world_size=args.world_size, + device=device, + save=args.save, + split=args.split_valid, + shifts=args.shifts, + workers=args.eval_workers) + model.to("cpu") + save_model(model, args.models / f"{name}.th") + if args.rank == 0: + print("done") + done.write_text("done") + + +if __name__ == "__main__": + main() diff --git a/demucs/apply.py b/demucs/apply.py new file mode 100644 index 0000000..be6d930 --- /dev/null +++ b/demucs/apply.py @@ -0,0 +1,305 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +""" +Code to apply a model to a mix. It will handle chunking with overlaps and +inteprolation between chunks, as well as the "shift trick". +""" +from concurrent.futures import ThreadPoolExecutor +import random +import typing as tp +from multiprocessing import Process,Queue,Pipe + +import torch as th +from torch import nn +from torch.nn import functional as F +import tqdm +import tkinter as tk + +from .demucs import Demucs +from .hdemucs import HDemucs +from .utils import center_trim, DummyPoolExecutor + +Model = tp.Union[Demucs, HDemucs] + +progress_bar_num = 0 + +class BagOfModels(nn.Module): + def __init__(self, models: tp.List[Model], + weights: tp.Optional[tp.List[tp.List[float]]] = None, + segment: tp.Optional[float] = None): + """ + Represents a bag of models with specific weights. + You should call `apply_model` rather than calling directly the forward here for + optimal performance. + + Args: + models (list[nn.Module]): list of Demucs/HDemucs models. + weights (list[list[float]]): list of weights. If None, assumed to + be all ones, otherwise it should be a list of N list (N number of models), + each containing S floats (S number of sources). + segment (None or float): overrides the `segment` attribute of each model + (this is performed inplace, be careful if you reuse the models passed). + """ + + super().__init__() + assert len(models) > 0 + first = models[0] + for other in models: + assert other.sources == first.sources + assert other.samplerate == first.samplerate + assert other.audio_channels == first.audio_channels + if segment is not None: + other.segment = segment + + self.audio_channels = first.audio_channels + self.samplerate = first.samplerate + self.sources = first.sources + self.models = nn.ModuleList(models) + + if weights is None: + weights = [[1. for _ in first.sources] for _ in models] + else: + assert len(weights) == len(models) + for weight in weights: + assert len(weight) == len(first.sources) + self.weights = weights + + def forward(self, x): + raise NotImplementedError("Call `apply_model` on this.") + +class TensorChunk: + def __init__(self, tensor, offset=0, length=None): + total_length = tensor.shape[-1] + assert offset >= 0 + assert offset < total_length + + if length is None: + length = total_length - offset + else: + length = min(total_length - offset, length) + + if isinstance(tensor, TensorChunk): + self.tensor = tensor.tensor + self.offset = offset + tensor.offset + else: + self.tensor = tensor + self.offset = offset + self.length = length + self.device = tensor.device + + @property + def shape(self): + shape = list(self.tensor.shape) + shape[-1] = self.length + return shape + + def padded(self, target_length): + delta = target_length - self.length + total_length = self.tensor.shape[-1] + assert delta >= 0 + + start = self.offset - delta // 2 + end = start + target_length + + correct_start = max(0, start) + correct_end = min(total_length, end) + + pad_left = correct_start - start + pad_right = end - correct_end + + out = F.pad(self.tensor[..., correct_start:correct_end], (pad_left, pad_right)) + assert out.shape[-1] == target_length + return out + +def tensor_chunk(tensor_or_chunk): + if isinstance(tensor_or_chunk, TensorChunk): + return tensor_or_chunk + else: + assert isinstance(tensor_or_chunk, th.Tensor) + return TensorChunk(tensor_or_chunk) + +def apply_model(model, + mix, + shifts=1, + split=True, + overlap=0.25, + transition_power=1., + static_shifts=1, + set_progress_bar=None, + device=None, + progress=False, + num_workers=0, + pool=None): + """ + Apply model to a given mixture. + + Args: + shifts (int): if > 0, will shift in time `mix` by a random amount between 0 and 0.5 sec + and apply the oppositve shift to the output. This is repeated `shifts` time and + all predictions are averaged. This effectively makes the model time equivariant + and improves SDR by up to 0.2 points. + split (bool): if True, the input will be broken down in 8 seconds extracts + and predictions will be performed individually on each and concatenated. + Useful for model with large memory footprint like Tasnet. + progress (bool): if True, show a progress bar (requires split=True) + device (torch.device, str, or None): if provided, device on which to + execute the computation, otherwise `mix.device` is assumed. + When `device` is different from `mix.device`, only local computations will + be on `device`, while the entire tracks will be stored on `mix.device`. + """ + + global fut_length + global bag_num + global prog_bar + + if device is None: + device = mix.device + else: + device = th.device(device) + if pool is None: + if num_workers > 0 and device.type == 'cpu': + pool = ThreadPoolExecutor(num_workers) + else: + pool = DummyPoolExecutor() + + kwargs = { + 'shifts': shifts, + 'split': split, + 'overlap': overlap, + 'transition_power': transition_power, + 'progress': progress, + 'device': device, + 'pool': pool, + 'set_progress_bar': set_progress_bar, + 'static_shifts': static_shifts, + } + + if isinstance(model, BagOfModels): + # Special treatment for bag of model. + # We explicitely apply multiple times `apply_model` so that the random shifts + # are different for each model. + + estimates = 0 + totals = [0] * len(model.sources) + bag_num = len(model.models) + fut_length = 0 + prog_bar = 0 + current_model = 0 #(bag_num + 1) + for sub_model, weight in zip(model.models, model.weights): + original_model_device = next(iter(sub_model.parameters())).device + sub_model.to(device) + fut_length += fut_length + current_model += 1 + out = apply_model(sub_model, mix, **kwargs) + sub_model.to(original_model_device) + for k, inst_weight in enumerate(weight): + out[:, k, :, :] *= inst_weight + totals[k] += inst_weight + estimates += out + del out + + for k in range(estimates.shape[1]): + estimates[:, k, :, :] /= totals[k] + return estimates + + model.to(device) + model.eval() + assert transition_power >= 1, "transition_power < 1 leads to weird behavior." + batch, channels, length = mix.shape + + if shifts: + kwargs['shifts'] = 0 + max_shift = int(0.5 * model.samplerate) + mix = tensor_chunk(mix) + padded_mix = mix.padded(length + 2 * max_shift) + out = 0 + for _ in range(shifts): + offset = random.randint(0, max_shift) + shifted = TensorChunk(padded_mix, offset, length + max_shift - offset) + shifted_out = apply_model(model, shifted, **kwargs) + out += shifted_out[..., max_shift - offset:] + out /= shifts + return out + elif split: + kwargs['split'] = False + out = th.zeros(batch, len(model.sources), channels, length, device=mix.device) + sum_weight = th.zeros(length, device=mix.device) + segment = int(model.samplerate * model.segment) + stride = int((1 - overlap) * segment) + offsets = range(0, length, stride) + scale = float(format(stride / model.samplerate, ".2f")) + # We start from a triangle shaped weight, with maximal weight in the middle + # of the segment. Then we normalize and take to the power `transition_power`. + # Large values of transition power will lead to sharper transitions. + weight = th.cat([th.arange(1, segment // 2 + 1, device=device), + th.arange(segment - segment // 2, 0, -1, device=device)]) + assert len(weight) == segment + # If the overlap < 50%, this will translate to linear transition when + # transition_power is 1. + weight = (weight / weight.max())**transition_power + futures = [] + for offset in offsets: + chunk = TensorChunk(mix, offset, segment) + future = pool.submit(apply_model, model, chunk, **kwargs) + futures.append((future, offset)) + offset += segment + if progress: + futures = tqdm.tqdm(futures, unit_scale=scale, ncols=120, unit='seconds') + for future, offset in futures: + if set_progress_bar: + fut_length = (len(futures) * bag_num * static_shifts) + prog_bar += 1 + set_progress_bar(0.1, (0.8/fut_length*prog_bar)) + chunk_out = future.result() + chunk_length = chunk_out.shape[-1] + out[..., offset:offset + segment] += (weight[:chunk_length] * chunk_out).to(mix.device) + sum_weight[offset:offset + segment] += weight[:chunk_length].to(mix.device) + assert sum_weight.min() > 0 + out /= sum_weight + return out + else: + if hasattr(model, 'valid_length'): + valid_length = model.valid_length(length) + else: + valid_length = length + mix = tensor_chunk(mix) + padded_mix = mix.padded(valid_length).to(device) + with th.no_grad(): + out = model(padded_mix) + return center_trim(out, length) + +def demucs_segments(demucs_segment, demucs_model): + + if demucs_segment == 'Default': + segment = None + if isinstance(demucs_model, BagOfModels): + if segment is not None: + for sub in demucs_model.models: + sub.segment = segment + else: + if segment is not None: + sub.segment = segment + else: + try: + segment = int(demucs_segment) + if isinstance(demucs_model, BagOfModels): + if segment is not None: + for sub in demucs_model.models: + sub.segment = segment + else: + if segment is not None: + sub.segment = segment + except: + segment = None + if isinstance(demucs_model, BagOfModels): + if segment is not None: + for sub in demucs_model.models: + sub.segment = segment + else: + if segment is not None: + sub.segment = segment + + return demucs_model \ No newline at end of file diff --git a/demucs/demucs.py b/demucs/demucs.py new file mode 100644 index 0000000..d2c08e7 --- /dev/null +++ b/demucs/demucs.py @@ -0,0 +1,459 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import math +import typing as tp + +import julius +import torch +from torch import nn +from torch.nn import functional as F + +from .states import capture_init +from .utils import center_trim, unfold + + +class BLSTM(nn.Module): + """ + BiLSTM with same hidden units as input dim. + If `max_steps` is not None, input will be splitting in overlapping + chunks and the LSTM applied separately on each chunk. + """ + def __init__(self, dim, layers=1, max_steps=None, skip=False): + super().__init__() + assert max_steps is None or max_steps % 4 == 0 + self.max_steps = max_steps + self.lstm = nn.LSTM(bidirectional=True, num_layers=layers, hidden_size=dim, input_size=dim) + self.linear = nn.Linear(2 * dim, dim) + self.skip = skip + + def forward(self, x): + B, C, T = x.shape + y = x + framed = False + if self.max_steps is not None and T > self.max_steps: + width = self.max_steps + stride = width // 2 + frames = unfold(x, width, stride) + nframes = frames.shape[2] + framed = True + x = frames.permute(0, 2, 1, 3).reshape(-1, C, width) + + x = x.permute(2, 0, 1) + + x = self.lstm(x)[0] + x = self.linear(x) + x = x.permute(1, 2, 0) + if framed: + out = [] + frames = x.reshape(B, -1, C, width) + limit = stride // 2 + for k in range(nframes): + if k == 0: + out.append(frames[:, k, :, :-limit]) + elif k == nframes - 1: + out.append(frames[:, k, :, limit:]) + else: + out.append(frames[:, k, :, limit:-limit]) + out = torch.cat(out, -1) + out = out[..., :T] + x = out + if self.skip: + x = x + y + return x + + +def rescale_conv(conv, reference): + """Rescale initial weight scale. It is unclear why it helps but it certainly does. + """ + std = conv.weight.std().detach() + scale = (std / reference)**0.5 + conv.weight.data /= scale + if conv.bias is not None: + conv.bias.data /= scale + + +def rescale_module(module, reference): + for sub in module.modules(): + if isinstance(sub, (nn.Conv1d, nn.ConvTranspose1d, nn.Conv2d, nn.ConvTranspose2d)): + rescale_conv(sub, reference) + + +class LayerScale(nn.Module): + """Layer scale from [Touvron et al 2021] (https://arxiv.org/pdf/2103.17239.pdf). + This rescales diagonaly residual outputs close to 0 initially, then learnt. + """ + def __init__(self, channels: int, init: float = 0): + super().__init__() + self.scale = nn.Parameter(torch.zeros(channels, requires_grad=True)) + self.scale.data[:] = init + + def forward(self, x): + return self.scale[:, None] * x + + +class DConv(nn.Module): + """ + New residual branches in each encoder layer. + This alternates dilated convolutions, potentially with LSTMs and attention. + Also before entering each residual branch, dimension is projected on a smaller subspace, + e.g. of dim `channels // compress`. + """ + def __init__(self, channels: int, compress: float = 4, depth: int = 2, init: float = 1e-4, + norm=True, attn=False, heads=4, ndecay=4, lstm=False, gelu=True, + kernel=3, dilate=True): + """ + Args: + channels: input/output channels for residual branch. + compress: amount of channel compression inside the branch. + depth: number of layers in the residual branch. Each layer has its own + projection, and potentially LSTM and attention. + init: initial scale for LayerNorm. + norm: use GroupNorm. + attn: use LocalAttention. + heads: number of heads for the LocalAttention. + ndecay: number of decay controls in the LocalAttention. + lstm: use LSTM. + gelu: Use GELU activation. + kernel: kernel size for the (dilated) convolutions. + dilate: if true, use dilation, increasing with the depth. + """ + + super().__init__() + assert kernel % 2 == 1 + self.channels = channels + self.compress = compress + self.depth = abs(depth) + dilate = depth > 0 + + norm_fn: tp.Callable[[int], nn.Module] + norm_fn = lambda d: nn.Identity() # noqa + if norm: + norm_fn = lambda d: nn.GroupNorm(1, d) # noqa + + hidden = int(channels / compress) + + act: tp.Type[nn.Module] + if gelu: + act = nn.GELU + else: + act = nn.ReLU + + self.layers = nn.ModuleList([]) + for d in range(self.depth): + dilation = 2 ** d if dilate else 1 + padding = dilation * (kernel // 2) + mods = [ + nn.Conv1d(channels, hidden, kernel, dilation=dilation, padding=padding), + norm_fn(hidden), act(), + nn.Conv1d(hidden, 2 * channels, 1), + norm_fn(2 * channels), nn.GLU(1), + LayerScale(channels, init), + ] + if attn: + mods.insert(3, LocalState(hidden, heads=heads, ndecay=ndecay)) + if lstm: + mods.insert(3, BLSTM(hidden, layers=2, max_steps=200, skip=True)) + layer = nn.Sequential(*mods) + self.layers.append(layer) + + def forward(self, x): + for layer in self.layers: + x = x + layer(x) + return x + + +class LocalState(nn.Module): + """Local state allows to have attention based only on data (no positional embedding), + but while setting a constraint on the time window (e.g. decaying penalty term). + + Also a failed experiments with trying to provide some frequency based attention. + """ + def __init__(self, channels: int, heads: int = 4, nfreqs: int = 0, ndecay: int = 4): + super().__init__() + assert channels % heads == 0, (channels, heads) + self.heads = heads + self.nfreqs = nfreqs + self.ndecay = ndecay + self.content = nn.Conv1d(channels, channels, 1) + self.query = nn.Conv1d(channels, channels, 1) + self.key = nn.Conv1d(channels, channels, 1) + if nfreqs: + self.query_freqs = nn.Conv1d(channels, heads * nfreqs, 1) + if ndecay: + self.query_decay = nn.Conv1d(channels, heads * ndecay, 1) + # Initialize decay close to zero (there is a sigmoid), for maximum initial window. + self.query_decay.weight.data *= 0.01 + assert self.query_decay.bias is not None # stupid type checker + self.query_decay.bias.data[:] = -2 + self.proj = nn.Conv1d(channels + heads * nfreqs, channels, 1) + + def forward(self, x): + B, C, T = x.shape + heads = self.heads + indexes = torch.arange(T, device=x.device, dtype=x.dtype) + # left index are keys, right index are queries + delta = indexes[:, None] - indexes[None, :] + + queries = self.query(x).view(B, heads, -1, T) + keys = self.key(x).view(B, heads, -1, T) + # t are keys, s are queries + dots = torch.einsum("bhct,bhcs->bhts", keys, queries) + dots /= keys.shape[2]**0.5 + if self.nfreqs: + periods = torch.arange(1, self.nfreqs + 1, device=x.device, dtype=x.dtype) + freq_kernel = torch.cos(2 * math.pi * delta / periods.view(-1, 1, 1)) + freq_q = self.query_freqs(x).view(B, heads, -1, T) / self.nfreqs ** 0.5 + dots += torch.einsum("fts,bhfs->bhts", freq_kernel, freq_q) + if self.ndecay: + decays = torch.arange(1, self.ndecay + 1, device=x.device, dtype=x.dtype) + decay_q = self.query_decay(x).view(B, heads, -1, T) + decay_q = torch.sigmoid(decay_q) / 2 + decay_kernel = - decays.view(-1, 1, 1) * delta.abs() / self.ndecay**0.5 + dots += torch.einsum("fts,bhfs->bhts", decay_kernel, decay_q) + + # Kill self reference. + dots.masked_fill_(torch.eye(T, device=dots.device, dtype=torch.bool), -100) + weights = torch.softmax(dots, dim=2) + + content = self.content(x).view(B, heads, -1, T) + result = torch.einsum("bhts,bhct->bhcs", weights, content) + if self.nfreqs: + time_sig = torch.einsum("bhts,fts->bhfs", weights, freq_kernel) + result = torch.cat([result, time_sig], 2) + result = result.reshape(B, -1, T) + return x + self.proj(result) + + +class Demucs(nn.Module): + @capture_init + def __init__(self, + sources, + # Channels + audio_channels=2, + channels=64, + growth=2., + # Main structure + depth=6, + rewrite=True, + lstm_layers=0, + # Convolutions + kernel_size=8, + stride=4, + context=1, + # Activations + gelu=True, + glu=True, + # Normalization + norm_starts=4, + norm_groups=4, + # DConv residual branch + dconv_mode=1, + dconv_depth=2, + dconv_comp=4, + dconv_attn=4, + dconv_lstm=4, + dconv_init=1e-4, + # Pre/post processing + normalize=True, + resample=True, + # Weight init + rescale=0.1, + # Metadata + samplerate=44100, + segment=4 * 10): + """ + Args: + sources (list[str]): list of source names + audio_channels (int): stereo or mono + channels (int): first convolution channels + depth (int): number of encoder/decoder layers + growth (float): multiply (resp divide) number of channels by that + for each layer of the encoder (resp decoder) + depth (int): number of layers in the encoder and in the decoder. + rewrite (bool): add 1x1 convolution to each layer. + lstm_layers (int): number of lstm layers, 0 = no lstm. Deactivated + by default, as this is now replaced by the smaller and faster small LSTMs + in the DConv branches. + kernel_size (int): kernel size for convolutions + stride (int): stride for convolutions + context (int): kernel size of the convolution in the + decoder before the transposed convolution. If > 1, + will provide some context from neighboring time steps. + gelu: use GELU activation function. + glu (bool): use glu instead of ReLU for the 1x1 rewrite conv. + norm_starts: layer at which group norm starts being used. + decoder layers are numbered in reverse order. + norm_groups: number of groups for group norm. + dconv_mode: if 1: dconv in encoder only, 2: decoder only, 3: both. + dconv_depth: depth of residual DConv branch. + dconv_comp: compression of DConv branch. + dconv_attn: adds attention layers in DConv branch starting at this layer. + dconv_lstm: adds a LSTM layer in DConv branch starting at this layer. + dconv_init: initial scale for the DConv branch LayerScale. + normalize (bool): normalizes the input audio on the fly, and scales back + the output by the same amount. + resample (bool): upsample x2 the input and downsample /2 the output. + rescale (int): rescale initial weights of convolutions + to get their standard deviation closer to `rescale`. + samplerate (int): stored as meta information for easing + future evaluations of the model. + segment (float): duration of the chunks of audio to ideally evaluate the model on. + This is used by `demucs.apply.apply_model`. + """ + + super().__init__() + self.audio_channels = audio_channels + self.sources = sources + self.kernel_size = kernel_size + self.context = context + self.stride = stride + self.depth = depth + self.resample = resample + self.channels = channels + self.normalize = normalize + self.samplerate = samplerate + self.segment = segment + self.encoder = nn.ModuleList() + self.decoder = nn.ModuleList() + self.skip_scales = nn.ModuleList() + + if glu: + activation = nn.GLU(dim=1) + ch_scale = 2 + else: + activation = nn.ReLU() + ch_scale = 1 + if gelu: + act2 = nn.GELU + else: + act2 = nn.ReLU + + in_channels = audio_channels + padding = 0 + for index in range(depth): + norm_fn = lambda d: nn.Identity() # noqa + if index >= norm_starts: + norm_fn = lambda d: nn.GroupNorm(norm_groups, d) # noqa + + encode = [] + encode += [ + nn.Conv1d(in_channels, channels, kernel_size, stride), + norm_fn(channels), + act2(), + ] + attn = index >= dconv_attn + lstm = index >= dconv_lstm + if dconv_mode & 1: + encode += [DConv(channels, depth=dconv_depth, init=dconv_init, + compress=dconv_comp, attn=attn, lstm=lstm)] + if rewrite: + encode += [ + nn.Conv1d(channels, ch_scale * channels, 1), + norm_fn(ch_scale * channels), activation] + self.encoder.append(nn.Sequential(*encode)) + + decode = [] + if index > 0: + out_channels = in_channels + else: + out_channels = len(self.sources) * audio_channels + if rewrite: + decode += [ + nn.Conv1d(channels, ch_scale * channels, 2 * context + 1, padding=context), + norm_fn(ch_scale * channels), activation] + if dconv_mode & 2: + decode += [DConv(channels, depth=dconv_depth, init=dconv_init, + compress=dconv_comp, attn=attn, lstm=lstm)] + decode += [nn.ConvTranspose1d(channels, out_channels, + kernel_size, stride, padding=padding)] + if index > 0: + decode += [norm_fn(out_channels), act2()] + self.decoder.insert(0, nn.Sequential(*decode)) + in_channels = channels + channels = int(growth * channels) + + channels = in_channels + if lstm_layers: + self.lstm = BLSTM(channels, lstm_layers) + else: + self.lstm = None + + if rescale: + rescale_module(self, reference=rescale) + + def valid_length(self, length): + """ + Return the nearest valid length to use with the model so that + there is no time steps left over in a convolution, e.g. for all + layers, size of the input - kernel_size % stride = 0. + + Note that input are automatically padded if necessary to ensure that the output + has the same length as the input. + """ + if self.resample: + length *= 2 + + for _ in range(self.depth): + length = math.ceil((length - self.kernel_size) / self.stride) + 1 + length = max(1, length) + + for idx in range(self.depth): + length = (length - 1) * self.stride + self.kernel_size + + if self.resample: + length = math.ceil(length / 2) + return int(length) + + def forward(self, mix): + x = mix + length = x.shape[-1] + + if self.normalize: + mono = mix.mean(dim=1, keepdim=True) + mean = mono.mean(dim=-1, keepdim=True) + std = mono.std(dim=-1, keepdim=True) + x = (x - mean) / (1e-5 + std) + else: + mean = 0 + std = 1 + + delta = self.valid_length(length) - length + x = F.pad(x, (delta // 2, delta - delta // 2)) + + if self.resample: + x = julius.resample_frac(x, 1, 2) + + saved = [] + for encode in self.encoder: + x = encode(x) + saved.append(x) + + if self.lstm: + x = self.lstm(x) + + for decode in self.decoder: + skip = saved.pop(-1) + skip = center_trim(skip, x) + x = decode(x + skip) + + if self.resample: + x = julius.resample_frac(x, 2, 1) + x = x * std + mean + x = center_trim(x, length) + x = x.view(x.size(0), len(self.sources), self.audio_channels, x.size(-1)) + return x + + def load_state_dict(self, state, strict=True): + # fix a mismatch with previous generation Demucs models. + for idx in range(self.depth): + for a in ['encoder', 'decoder']: + for b in ['bias', 'weight']: + new = f'{a}.{idx}.3.{b}' + old = f'{a}.{idx}.2.{b}' + if old in state and new not in state: + state[new] = state.pop(old) + super().load_state_dict(state, strict=strict) diff --git a/demucs/filtering.py b/demucs/filtering.py new file mode 100644 index 0000000..08a2c17 --- /dev/null +++ b/demucs/filtering.py @@ -0,0 +1,502 @@ +from typing import Optional +import torch +import torch.nn as nn +from torch import Tensor +from torch.utils.data import DataLoader + +def atan2(y, x): + r"""Element-wise arctangent function of y/x. + Returns a new tensor with signed angles in radians. + It is an alternative implementation of torch.atan2 + + Args: + y (Tensor): First input tensor + x (Tensor): Second input tensor [shape=y.shape] + + Returns: + Tensor: [shape=y.shape]. + """ + pi = 2 * torch.asin(torch.tensor(1.0)) + x += ((x == 0) & (y == 0)) * 1.0 + out = torch.atan(y / x) + out += ((y >= 0) & (x < 0)) * pi + out -= ((y < 0) & (x < 0)) * pi + out *= 1 - ((y > 0) & (x == 0)) * 1.0 + out += ((y > 0) & (x == 0)) * (pi / 2) + out *= 1 - ((y < 0) & (x == 0)) * 1.0 + out += ((y < 0) & (x == 0)) * (-pi / 2) + return out + + +# Define basic complex operations on torch.Tensor objects whose last dimension +# consists in the concatenation of the real and imaginary parts. + + +def _norm(x: torch.Tensor) -> torch.Tensor: + r"""Computes the norm value of a torch Tensor, assuming that it + comes as real and imaginary part in its last dimension. + + Args: + x (Tensor): Input Tensor of shape [shape=(..., 2)] + + Returns: + Tensor: shape as x excluding the last dimension. + """ + return torch.abs(x[..., 0]) ** 2 + torch.abs(x[..., 1]) ** 2 + + +def _mul_add(a: torch.Tensor, b: torch.Tensor, out: Optional[torch.Tensor] = None) -> torch.Tensor: + """Element-wise multiplication of two complex Tensors described + through their real and imaginary parts. + The result is added to the `out` tensor""" + + # check `out` and allocate it if needed + target_shape = torch.Size([max(sa, sb) for (sa, sb) in zip(a.shape, b.shape)]) + if out is None or out.shape != target_shape: + out = torch.zeros(target_shape, dtype=a.dtype, device=a.device) + if out is a: + real_a = a[..., 0] + out[..., 0] = out[..., 0] + (real_a * b[..., 0] - a[..., 1] * b[..., 1]) + out[..., 1] = out[..., 1] + (real_a * b[..., 1] + a[..., 1] * b[..., 0]) + else: + out[..., 0] = out[..., 0] + (a[..., 0] * b[..., 0] - a[..., 1] * b[..., 1]) + out[..., 1] = out[..., 1] + (a[..., 0] * b[..., 1] + a[..., 1] * b[..., 0]) + return out + + +def _mul(a: torch.Tensor, b: torch.Tensor, out: Optional[torch.Tensor] = None) -> torch.Tensor: + """Element-wise multiplication of two complex Tensors described + through their real and imaginary parts + can work in place in case out is a only""" + target_shape = torch.Size([max(sa, sb) for (sa, sb) in zip(a.shape, b.shape)]) + if out is None or out.shape != target_shape: + out = torch.zeros(target_shape, dtype=a.dtype, device=a.device) + if out is a: + real_a = a[..., 0] + out[..., 0] = real_a * b[..., 0] - a[..., 1] * b[..., 1] + out[..., 1] = real_a * b[..., 1] + a[..., 1] * b[..., 0] + else: + out[..., 0] = a[..., 0] * b[..., 0] - a[..., 1] * b[..., 1] + out[..., 1] = a[..., 0] * b[..., 1] + a[..., 1] * b[..., 0] + return out + + +def _inv(z: torch.Tensor, out: Optional[torch.Tensor] = None) -> torch.Tensor: + """Element-wise multiplicative inverse of a Tensor with complex + entries described through their real and imaginary parts. + can work in place in case out is z""" + ez = _norm(z) + if out is None or out.shape != z.shape: + out = torch.zeros_like(z) + out[..., 0] = z[..., 0] / ez + out[..., 1] = -z[..., 1] / ez + return out + + +def _conj(z, out: Optional[torch.Tensor] = None) -> torch.Tensor: + """Element-wise complex conjugate of a Tensor with complex entries + described through their real and imaginary parts. + can work in place in case out is z""" + if out is None or out.shape != z.shape: + out = torch.zeros_like(z) + out[..., 0] = z[..., 0] + out[..., 1] = -z[..., 1] + return out + + +def _invert(M: torch.Tensor, out: Optional[torch.Tensor] = None) -> torch.Tensor: + """ + Invert 1x1 or 2x2 matrices + + Will generate errors if the matrices are singular: user must handle this + through his own regularization schemes. + + Args: + M (Tensor): [shape=(..., nb_channels, nb_channels, 2)] + matrices to invert: must be square along dimensions -3 and -2 + + Returns: + invM (Tensor): [shape=M.shape] + inverses of M + """ + nb_channels = M.shape[-2] + + if out is None or out.shape != M.shape: + out = torch.empty_like(M) + + if nb_channels == 1: + # scalar case + out = _inv(M, out) + elif nb_channels == 2: + # two channels case: analytical expression + + # first compute the determinent + det = _mul(M[..., 0, 0, :], M[..., 1, 1, :]) + det = det - _mul(M[..., 0, 1, :], M[..., 1, 0, :]) + # invert it + invDet = _inv(det) + + # then fill out the matrix with the inverse + out[..., 0, 0, :] = _mul(invDet, M[..., 1, 1, :], out[..., 0, 0, :]) + out[..., 1, 0, :] = _mul(-invDet, M[..., 1, 0, :], out[..., 1, 0, :]) + out[..., 0, 1, :] = _mul(-invDet, M[..., 0, 1, :], out[..., 0, 1, :]) + out[..., 1, 1, :] = _mul(invDet, M[..., 0, 0, :], out[..., 1, 1, :]) + else: + raise Exception("Only 2 channels are supported for the torch version.") + return out + + +# Now define the signal-processing low-level functions used by the Separator + + +def expectation_maximization( + y: torch.Tensor, + x: torch.Tensor, + iterations: int = 2, + eps: float = 1e-10, + batch_size: int = 200, +): + r"""Expectation maximization algorithm, for refining source separation + estimates. + + This algorithm allows to make source separation results better by + enforcing multichannel consistency for the estimates. This usually means + a better perceptual quality in terms of spatial artifacts. + + The implementation follows the details presented in [1]_, taking + inspiration from the original EM algorithm proposed in [2]_ and its + weighted refinement proposed in [3]_, [4]_. + It works by iteratively: + + * Re-estimate source parameters (power spectral densities and spatial + covariance matrices) through :func:`get_local_gaussian_model`. + + * Separate again the mixture with the new parameters by first computing + the new modelled mixture covariance matrices with :func:`get_mix_model`, + prepare the Wiener filters through :func:`wiener_gain` and apply them + with :func:`apply_filter``. + + References + ---------- + .. [1] S. Uhlich and M. Porcu and F. Giron and M. Enenkl and T. Kemp and + N. Takahashi and Y. Mitsufuji, "Improving music source separation based + on deep neural networks through data augmentation and network + blending." 2017 IEEE International Conference on Acoustics, Speech + and Signal Processing (ICASSP). IEEE, 2017. + + .. [2] N.Q. Duong and E. Vincent and R.Gribonval. "Under-determined + reverberant audio source separation using a full-rank spatial + covariance model." IEEE Transactions on Audio, Speech, and Language + Processing 18.7 (2010): 1830-1840. + + .. [3] A. Nugraha and A. Liutkus and E. Vincent. "Multichannel audio source + separation with deep neural networks." IEEE/ACM Transactions on Audio, + Speech, and Language Processing 24.9 (2016): 1652-1664. + + .. [4] A. Nugraha and A. Liutkus and E. Vincent. "Multichannel music + separation with deep neural networks." 2016 24th European Signal + Processing Conference (EUSIPCO). IEEE, 2016. + + .. [5] A. Liutkus and R. Badeau and G. Richard "Kernel additive models for + source separation." IEEE Transactions on Signal Processing + 62.16 (2014): 4298-4310. + + Args: + y (Tensor): [shape=(nb_frames, nb_bins, nb_channels, 2, nb_sources)] + initial estimates for the sources + x (Tensor): [shape=(nb_frames, nb_bins, nb_channels, 2)] + complex STFT of the mixture signal + iterations (int): [scalar] + number of iterations for the EM algorithm. + eps (float or None): [scalar] + The epsilon value to use for regularization and filters. + + Returns: + y (Tensor): [shape=(nb_frames, nb_bins, nb_channels, 2, nb_sources)] + estimated sources after iterations + v (Tensor): [shape=(nb_frames, nb_bins, nb_sources)] + estimated power spectral densities + R (Tensor): [shape=(nb_bins, nb_channels, nb_channels, 2, nb_sources)] + estimated spatial covariance matrices + + Notes: + * You need an initial estimate for the sources to apply this + algorithm. This is precisely what the :func:`wiener` function does. + * This algorithm *is not* an implementation of the "exact" EM + proposed in [1]_. In particular, it does compute the posterior + covariance matrices the same (exact) way. Instead, it uses the + simplified approximate scheme initially proposed in [5]_ and further + refined in [3]_, [4]_, that boils down to just take the empirical + covariance of the recent source estimates, followed by a weighted + average for the update of the spatial covariance matrix. It has been + empirically demonstrated that this simplified algorithm is more + robust for music separation. + + Warning: + It is *very* important to make sure `x.dtype` is `torch.float64` + if you want double precision, because this function will **not** + do such conversion for you from `torch.complex32`, in case you want the + smaller RAM usage on purpose. + + It is usually always better in terms of quality to have double + precision, by e.g. calling :func:`expectation_maximization` + with ``x.to(torch.float64)``. + """ + # dimensions + (nb_frames, nb_bins, nb_channels) = x.shape[:-1] + nb_sources = y.shape[-1] + + regularization = torch.cat( + ( + torch.eye(nb_channels, dtype=x.dtype, device=x.device)[..., None], + torch.zeros((nb_channels, nb_channels, 1), dtype=x.dtype, device=x.device), + ), + dim=2, + ) + regularization = torch.sqrt(torch.as_tensor(eps)) * ( + regularization[None, None, ...].expand((-1, nb_bins, -1, -1, -1)) + ) + + # allocate the spatial covariance matrices + R = [ + torch.zeros((nb_bins, nb_channels, nb_channels, 2), dtype=x.dtype, device=x.device) + for j in range(nb_sources) + ] + weight: torch.Tensor = torch.zeros((nb_bins,), dtype=x.dtype, device=x.device) + + v: torch.Tensor = torch.zeros((nb_frames, nb_bins, nb_sources), dtype=x.dtype, device=x.device) + for it in range(iterations): + # constructing the mixture covariance matrix. Doing it with a loop + # to avoid storing anytime in RAM the whole 6D tensor + + # update the PSD as the average spectrogram over channels + v = torch.mean(torch.abs(y[..., 0, :]) ** 2 + torch.abs(y[..., 1, :]) ** 2, dim=-2) + + # update spatial covariance matrices (weighted update) + for j in range(nb_sources): + R[j] = torch.tensor(0.0, device=x.device) + weight = torch.tensor(eps, device=x.device) + pos: int = 0 + batch_size = batch_size if batch_size else nb_frames + while pos < nb_frames: + t = torch.arange(pos, min(nb_frames, pos + batch_size)) + pos = int(t[-1]) + 1 + + R[j] = R[j] + torch.sum(_covariance(y[t, ..., j]), dim=0) + weight = weight + torch.sum(v[t, ..., j], dim=0) + R[j] = R[j] / weight[..., None, None, None] + weight = torch.zeros_like(weight) + + # cloning y if we track gradient, because we're going to update it + if y.requires_grad: + y = y.clone() + + pos = 0 + while pos < nb_frames: + t = torch.arange(pos, min(nb_frames, pos + batch_size)) + pos = int(t[-1]) + 1 + + y[t, ...] = torch.tensor(0.0, device=x.device, dtype=x.dtype) + + # compute mix covariance matrix + Cxx = regularization + for j in range(nb_sources): + Cxx = Cxx + (v[t, ..., j, None, None, None] * R[j][None, ...].clone()) + + # invert it + inv_Cxx = _invert(Cxx) + + # separate the sources + for j in range(nb_sources): + + # create a wiener gain for this source + gain = torch.zeros_like(inv_Cxx) + + # computes multichannel Wiener gain as v_j R_j inv_Cxx + indices = torch.cartesian_prod( + torch.arange(nb_channels), + torch.arange(nb_channels), + torch.arange(nb_channels), + ) + for index in indices: + gain[:, :, index[0], index[1], :] = _mul_add( + R[j][None, :, index[0], index[2], :].clone(), + inv_Cxx[:, :, index[2], index[1], :], + gain[:, :, index[0], index[1], :], + ) + gain = gain * v[t, ..., None, None, None, j] + + # apply it to the mixture + for i in range(nb_channels): + y[t, ..., j] = _mul_add(gain[..., i, :], x[t, ..., i, None, :], y[t, ..., j]) + + return y, v, R + + +def wiener( + targets_spectrograms: torch.Tensor, + mix_stft: torch.Tensor, + iterations: int = 1, + softmask: bool = False, + residual: bool = False, + scale_factor: float = 10.0, + eps: float = 1e-10, +): + """Wiener-based separation for multichannel audio. + + The method uses the (possibly multichannel) spectrograms of the + sources to separate the (complex) Short Term Fourier Transform of the + mix. Separation is done in a sequential way by: + + * Getting an initial estimate. This can be done in two ways: either by + directly using the spectrograms with the mixture phase, or + by using a softmasking strategy. This initial phase is controlled + by the `softmask` flag. + + * If required, adding an additional residual target as the mix minus + all targets. + + * Refinining these initial estimates through a call to + :func:`expectation_maximization` if the number of iterations is nonzero. + + This implementation also allows to specify the epsilon value used for + regularization. It is based on [1]_, [2]_, [3]_, [4]_. + + References + ---------- + .. [1] S. Uhlich and M. Porcu and F. Giron and M. Enenkl and T. Kemp and + N. Takahashi and Y. Mitsufuji, "Improving music source separation based + on deep neural networks through data augmentation and network + blending." 2017 IEEE International Conference on Acoustics, Speech + and Signal Processing (ICASSP). IEEE, 2017. + + .. [2] A. Nugraha and A. Liutkus and E. Vincent. "Multichannel audio source + separation with deep neural networks." IEEE/ACM Transactions on Audio, + Speech, and Language Processing 24.9 (2016): 1652-1664. + + .. [3] A. Nugraha and A. Liutkus and E. Vincent. "Multichannel music + separation with deep neural networks." 2016 24th European Signal + Processing Conference (EUSIPCO). IEEE, 2016. + + .. [4] A. Liutkus and R. Badeau and G. Richard "Kernel additive models for + source separation." IEEE Transactions on Signal Processing + 62.16 (2014): 4298-4310. + + Args: + targets_spectrograms (Tensor): spectrograms of the sources + [shape=(nb_frames, nb_bins, nb_channels, nb_sources)]. + This is a nonnegative tensor that is + usually the output of the actual separation method of the user. The + spectrograms may be mono, but they need to be 4-dimensional in all + cases. + mix_stft (Tensor): [shape=(nb_frames, nb_bins, nb_channels, complex=2)] + STFT of the mixture signal. + iterations (int): [scalar] + number of iterations for the EM algorithm + softmask (bool): Describes how the initial estimates are obtained. + * if `False`, then the mixture phase will directly be used with the + spectrogram as initial estimates. + * if `True`, initial estimates are obtained by multiplying the + complex mix element-wise with the ratio of each target spectrogram + with the sum of them all. This strategy is better if the model are + not really good, and worse otherwise. + residual (bool): if `True`, an additional target is created, which is + equal to the mixture minus the other targets, before application of + expectation maximization + eps (float): Epsilon value to use for computing the separations. + This is used whenever division with a model energy is + performed, i.e. when softmasking and when iterating the EM. + It can be understood as the energy of the additional white noise + that is taken out when separating. + + Returns: + Tensor: shape=(nb_frames, nb_bins, nb_channels, complex=2, nb_sources) + STFT of estimated sources + + Notes: + * Be careful that you need *magnitude spectrogram estimates* for the + case `softmask==False`. + * `softmask=False` is recommended + * The epsilon value will have a huge impact on performance. If it's + large, only the parts of the signal with a significant energy will + be kept in the sources. This epsilon then directly controls the + energy of the reconstruction error. + + Warning: + As in :func:`expectation_maximization`, we recommend converting the + mixture `x` to double precision `torch.float64` *before* calling + :func:`wiener`. + """ + if softmask: + # if we use softmask, we compute the ratio mask for all targets and + # multiply by the mix stft + y = ( + mix_stft[..., None] + * ( + targets_spectrograms + / (eps + torch.sum(targets_spectrograms, dim=-1, keepdim=True).to(mix_stft.dtype)) + )[..., None, :] + ) + else: + # otherwise, we just multiply the targets spectrograms with mix phase + # we tacitly assume that we have magnitude estimates. + angle = atan2(mix_stft[..., 1], mix_stft[..., 0])[..., None] + nb_sources = targets_spectrograms.shape[-1] + y = torch.zeros( + mix_stft.shape + (nb_sources,), dtype=mix_stft.dtype, device=mix_stft.device + ) + y[..., 0, :] = targets_spectrograms * torch.cos(angle) + y[..., 1, :] = targets_spectrograms * torch.sin(angle) + + if residual: + # if required, adding an additional target as the mix minus + # available targets + y = torch.cat([y, mix_stft[..., None] - y.sum(dim=-1, keepdim=True)], dim=-1) + + if iterations == 0: + return y + + # we need to refine the estimates. Scales down the estimates for + # numerical stability + max_abs = torch.max( + torch.as_tensor(1.0, dtype=mix_stft.dtype, device=mix_stft.device), + torch.sqrt(_norm(mix_stft)).max() / scale_factor, + ) + + mix_stft = mix_stft / max_abs + y = y / max_abs + + # call expectation maximization + y = expectation_maximization(y, mix_stft, iterations, eps=eps)[0] + + # scale estimates up again + y = y * max_abs + return y + + +def _covariance(y_j): + """ + Compute the empirical covariance for a source. + + Args: + y_j (Tensor): complex stft of the source. + [shape=(nb_frames, nb_bins, nb_channels, 2)]. + + Returns: + Cj (Tensor): [shape=(nb_frames, nb_bins, nb_channels, nb_channels, 2)] + just y_j * conj(y_j.T): empirical covariance for each TF bin. + """ + (nb_frames, nb_bins, nb_channels) = y_j.shape[:-1] + Cj = torch.zeros( + (nb_frames, nb_bins, nb_channels, nb_channels, 2), + dtype=y_j.dtype, + device=y_j.device, + ) + indices = torch.cartesian_prod(torch.arange(nb_channels), torch.arange(nb_channels)) + for index in indices: + Cj[:, :, index[0], index[1], :] = _mul_add( + y_j[:, :, index[0], :], + _conj(y_j[:, :, index[1], :]), + Cj[:, :, index[0], index[1], :], + ) + return Cj diff --git a/demucs/hdemucs.py b/demucs/hdemucs.py new file mode 100644 index 0000000..ea4e652 --- /dev/null +++ b/demucs/hdemucs.py @@ -0,0 +1,796 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +""" +This code contains the spectrogram and Hybrid version of Demucs. +""" +from copy import deepcopy +import math +import typing as tp +import torch +from torch import nn +from torch.nn import functional as F +from .filtering import wiener +from .demucs import DConv, rescale_module +from .states import capture_init +from .spec import spectro, ispectro + +def pad1d(x: torch.Tensor, paddings: tp.Tuple[int, int], mode: str = 'constant', value: float = 0.): + """Tiny wrapper around F.pad, just to allow for reflect padding on small input. + If this is the case, we insert extra 0 padding to the right before the reflection happen.""" + x0 = x + length = x.shape[-1] + padding_left, padding_right = paddings + if mode == 'reflect': + max_pad = max(padding_left, padding_right) + if length <= max_pad: + extra_pad = max_pad - length + 1 + extra_pad_right = min(padding_right, extra_pad) + extra_pad_left = extra_pad - extra_pad_right + paddings = (padding_left - extra_pad_left, padding_right - extra_pad_right) + x = F.pad(x, (extra_pad_left, extra_pad_right)) + out = F.pad(x, paddings, mode, value) + assert out.shape[-1] == length + padding_left + padding_right + assert (out[..., padding_left: padding_left + length] == x0).all() + return out + +class ScaledEmbedding(nn.Module): + """ + Boost learning rate for embeddings (with `scale`). + Also, can make embeddings continuous with `smooth`. + """ + def __init__(self, num_embeddings: int, embedding_dim: int, + scale: float = 10., smooth=False): + super().__init__() + self.embedding = nn.Embedding(num_embeddings, embedding_dim) + if smooth: + weight = torch.cumsum(self.embedding.weight.data, dim=0) + # when summing gaussian, overscale raises as sqrt(n), so we nornalize by that. + weight = weight / torch.arange(1, num_embeddings + 1).to(weight).sqrt()[:, None] + self.embedding.weight.data[:] = weight + self.embedding.weight.data /= scale + self.scale = scale + + @property + def weight(self): + return self.embedding.weight * self.scale + + def forward(self, x): + out = self.embedding(x) * self.scale + return out + + +class HEncLayer(nn.Module): + def __init__(self, chin, chout, kernel_size=8, stride=4, norm_groups=1, empty=False, + freq=True, dconv=True, norm=True, context=0, dconv_kw={}, pad=True, + rewrite=True): + """Encoder layer. This used both by the time and the frequency branch. + + Args: + chin: number of input channels. + chout: number of output channels. + norm_groups: number of groups for group norm. + empty: used to make a layer with just the first conv. this is used + before merging the time and freq. branches. + freq: this is acting on frequencies. + dconv: insert DConv residual branches. + norm: use GroupNorm. + context: context size for the 1x1 conv. + dconv_kw: list of kwargs for the DConv class. + pad: pad the input. Padding is done so that the output size is + always the input size / stride. + rewrite: add 1x1 conv at the end of the layer. + """ + super().__init__() + norm_fn = lambda d: nn.Identity() # noqa + if norm: + norm_fn = lambda d: nn.GroupNorm(norm_groups, d) # noqa + if pad: + pad = kernel_size // 4 + else: + pad = 0 + klass = nn.Conv1d + self.freq = freq + self.kernel_size = kernel_size + self.stride = stride + self.empty = empty + self.norm = norm + self.pad = pad + if freq: + kernel_size = [kernel_size, 1] + stride = [stride, 1] + pad = [pad, 0] + klass = nn.Conv2d + self.conv = klass(chin, chout, kernel_size, stride, pad) + if self.empty: + return + self.norm1 = norm_fn(chout) + self.rewrite = None + if rewrite: + self.rewrite = klass(chout, 2 * chout, 1 + 2 * context, 1, context) + self.norm2 = norm_fn(2 * chout) + + self.dconv = None + if dconv: + self.dconv = DConv(chout, **dconv_kw) + + def forward(self, x, inject=None): + """ + `inject` is used to inject the result from the time branch into the frequency branch, + when both have the same stride. + """ + if not self.freq and x.dim() == 4: + B, C, Fr, T = x.shape + x = x.view(B, -1, T) + + if not self.freq: + le = x.shape[-1] + if not le % self.stride == 0: + x = F.pad(x, (0, self.stride - (le % self.stride))) + y = self.conv(x) + if self.empty: + return y + if inject is not None: + assert inject.shape[-1] == y.shape[-1], (inject.shape, y.shape) + if inject.dim() == 3 and y.dim() == 4: + inject = inject[:, :, None] + y = y + inject + y = F.gelu(self.norm1(y)) + if self.dconv: + if self.freq: + B, C, Fr, T = y.shape + y = y.permute(0, 2, 1, 3).reshape(-1, C, T) + y = self.dconv(y) + if self.freq: + y = y.view(B, Fr, C, T).permute(0, 2, 1, 3) + if self.rewrite: + z = self.norm2(self.rewrite(y)) + z = F.glu(z, dim=1) + else: + z = y + return z + + +class MultiWrap(nn.Module): + """ + Takes one layer and replicate it N times. each replica will act + on a frequency band. All is done so that if the N replica have the same weights, + then this is exactly equivalent to applying the original module on all frequencies. + + This is a bit over-engineered to avoid edge artifacts when splitting + the frequency bands, but it is possible the naive implementation would work as well... + """ + def __init__(self, layer, split_ratios): + """ + Args: + layer: module to clone, must be either HEncLayer or HDecLayer. + split_ratios: list of float indicating which ratio to keep for each band. + """ + super().__init__() + self.split_ratios = split_ratios + self.layers = nn.ModuleList() + self.conv = isinstance(layer, HEncLayer) + assert not layer.norm + assert layer.freq + assert layer.pad + if not self.conv: + assert not layer.context_freq + for k in range(len(split_ratios) + 1): + lay = deepcopy(layer) + if self.conv: + lay.conv.padding = (0, 0) + else: + lay.pad = False + for m in lay.modules(): + if hasattr(m, 'reset_parameters'): + m.reset_parameters() + self.layers.append(lay) + + def forward(self, x, skip=None, length=None): + B, C, Fr, T = x.shape + + ratios = list(self.split_ratios) + [1] + start = 0 + outs = [] + for ratio, layer in zip(ratios, self.layers): + if self.conv: + pad = layer.kernel_size // 4 + if ratio == 1: + limit = Fr + frames = -1 + else: + limit = int(round(Fr * ratio)) + le = limit - start + if start == 0: + le += pad + frames = round((le - layer.kernel_size) / layer.stride + 1) + limit = start + (frames - 1) * layer.stride + layer.kernel_size + if start == 0: + limit -= pad + assert limit - start > 0, (limit, start) + assert limit <= Fr, (limit, Fr) + y = x[:, :, start:limit, :] + if start == 0: + y = F.pad(y, (0, 0, pad, 0)) + if ratio == 1: + y = F.pad(y, (0, 0, 0, pad)) + outs.append(layer(y)) + start = limit - layer.kernel_size + layer.stride + else: + if ratio == 1: + limit = Fr + else: + limit = int(round(Fr * ratio)) + last = layer.last + layer.last = True + + y = x[:, :, start:limit] + s = skip[:, :, start:limit] + out, _ = layer(y, s, None) + if outs: + outs[-1][:, :, -layer.stride:] += ( + out[:, :, :layer.stride] - layer.conv_tr.bias.view(1, -1, 1, 1)) + out = out[:, :, layer.stride:] + if ratio == 1: + out = out[:, :, :-layer.stride // 2, :] + if start == 0: + out = out[:, :, layer.stride // 2:, :] + outs.append(out) + layer.last = last + start = limit + out = torch.cat(outs, dim=2) + if not self.conv and not last: + out = F.gelu(out) + if self.conv: + return out + else: + return out, None + + +class HDecLayer(nn.Module): + def __init__(self, chin, chout, last=False, kernel_size=8, stride=4, norm_groups=1, empty=False, + freq=True, dconv=True, norm=True, context=1, dconv_kw={}, pad=True, + context_freq=True, rewrite=True): + """ + Same as HEncLayer but for decoder. See `HEncLayer` for documentation. + """ + super().__init__() + norm_fn = lambda d: nn.Identity() # noqa + if norm: + norm_fn = lambda d: nn.GroupNorm(norm_groups, d) # noqa + if pad: + pad = kernel_size // 4 + else: + pad = 0 + self.pad = pad + self.last = last + self.freq = freq + self.chin = chin + self.empty = empty + self.stride = stride + self.kernel_size = kernel_size + self.norm = norm + self.context_freq = context_freq + klass = nn.Conv1d + klass_tr = nn.ConvTranspose1d + if freq: + kernel_size = [kernel_size, 1] + stride = [stride, 1] + klass = nn.Conv2d + klass_tr = nn.ConvTranspose2d + self.conv_tr = klass_tr(chin, chout, kernel_size, stride) + self.norm2 = norm_fn(chout) + if self.empty: + return + self.rewrite = None + if rewrite: + if context_freq: + self.rewrite = klass(chin, 2 * chin, 1 + 2 * context, 1, context) + else: + self.rewrite = klass(chin, 2 * chin, [1, 1 + 2 * context], 1, + [0, context]) + self.norm1 = norm_fn(2 * chin) + + self.dconv = None + if dconv: + self.dconv = DConv(chin, **dconv_kw) + + def forward(self, x, skip, length): + if self.freq and x.dim() == 3: + B, C, T = x.shape + x = x.view(B, self.chin, -1, T) + + if not self.empty: + x = x + skip + + if self.rewrite: + y = F.glu(self.norm1(self.rewrite(x)), dim=1) + else: + y = x + if self.dconv: + if self.freq: + B, C, Fr, T = y.shape + y = y.permute(0, 2, 1, 3).reshape(-1, C, T) + y = self.dconv(y) + if self.freq: + y = y.view(B, Fr, C, T).permute(0, 2, 1, 3) + else: + y = x + assert skip is None + z = self.norm2(self.conv_tr(y)) + if self.freq: + if self.pad: + z = z[..., self.pad:-self.pad, :] + else: + z = z[..., self.pad:self.pad + length] + assert z.shape[-1] == length, (z.shape[-1], length) + if not self.last: + z = F.gelu(z) + return z, y + + +class HDemucs(nn.Module): + """ + Spectrogram and hybrid Demucs model. + The spectrogram model has the same structure as Demucs, except the first few layers are over the + frequency axis, until there is only 1 frequency, and then it moves to time convolutions. + Frequency layers can still access information across time steps thanks to the DConv residual. + + Hybrid model have a parallel time branch. At some layer, the time branch has the same stride + as the frequency branch and then the two are combined. The opposite happens in the decoder. + + Models can either use naive iSTFT from masking, Wiener filtering ([Ulhih et al. 2017]), + or complex as channels (CaC) [Choi et al. 2020]. Wiener filtering is based on + Open Unmix implementation [Stoter et al. 2019]. + + The loss is always on the temporal domain, by backpropagating through the above + output methods and iSTFT. This allows to define hybrid models nicely. However, this breaks + a bit Wiener filtering, as doing more iteration at test time will change the spectrogram + contribution, without changing the one from the waveform, which will lead to worse performance. + I tried using the residual option in OpenUnmix Wiener implementation, but it didn't improve. + CaC on the other hand provides similar performance for hybrid, and works naturally with + hybrid models. + + This model also uses frequency embeddings are used to improve efficiency on convolutions + over the freq. axis, following [Isik et al. 2020] (https://arxiv.org/pdf/2008.04470.pdf). + + Unlike classic Demucs, there is no resampling here, and normalization is always applied. + """ + @capture_init + def __init__(self, + sources, + # Channels + audio_channels=2, + channels=48, + channels_time=None, + growth=2, + # STFT + nfft=4096, + wiener_iters=0, + end_iters=0, + wiener_residual=False, + cac=True, + # Main structure + depth=6, + rewrite=True, + hybrid=True, + hybrid_old=False, + # Frequency branch + multi_freqs=None, + multi_freqs_depth=2, + freq_emb=0.2, + emb_scale=10, + emb_smooth=True, + # Convolutions + kernel_size=8, + time_stride=2, + stride=4, + context=1, + context_enc=0, + # Normalization + norm_starts=4, + norm_groups=4, + # DConv residual branch + dconv_mode=1, + dconv_depth=2, + dconv_comp=4, + dconv_attn=4, + dconv_lstm=4, + dconv_init=1e-4, + # Weight init + rescale=0.1, + # Metadata + samplerate=44100, + segment=4 * 10): + + """ + Args: + sources (list[str]): list of source names. + audio_channels (int): input/output audio channels. + channels (int): initial number of hidden channels. + channels_time: if not None, use a different `channels` value for the time branch. + growth: increase the number of hidden channels by this factor at each layer. + nfft: number of fft bins. Note that changing this require careful computation of + various shape parameters and will not work out of the box for hybrid models. + wiener_iters: when using Wiener filtering, number of iterations at test time. + end_iters: same but at train time. For a hybrid model, must be equal to `wiener_iters`. + wiener_residual: add residual source before wiener filtering. + cac: uses complex as channels, i.e. complex numbers are 2 channels each + in input and output. no further processing is done before ISTFT. + depth (int): number of layers in the encoder and in the decoder. + rewrite (bool): add 1x1 convolution to each layer. + hybrid (bool): make a hybrid time/frequency domain, otherwise frequency only. + hybrid_old: some models trained for MDX had a padding bug. This replicates + this bug to avoid retraining them. + multi_freqs: list of frequency ratios for splitting frequency bands with `MultiWrap`. + multi_freqs_depth: how many layers to wrap with `MultiWrap`. Only the outermost + layers will be wrapped. + freq_emb: add frequency embedding after the first frequency layer if > 0, + the actual value controls the weight of the embedding. + emb_scale: equivalent to scaling the embedding learning rate + emb_smooth: initialize the embedding with a smooth one (with respect to frequencies). + kernel_size: kernel_size for encoder and decoder layers. + stride: stride for encoder and decoder layers. + time_stride: stride for the final time layer, after the merge. + context: context for 1x1 conv in the decoder. + context_enc: context for 1x1 conv in the encoder. + norm_starts: layer at which group norm starts being used. + decoder layers are numbered in reverse order. + norm_groups: number of groups for group norm. + dconv_mode: if 1: dconv in encoder only, 2: decoder only, 3: both. + dconv_depth: depth of residual DConv branch. + dconv_comp: compression of DConv branch. + dconv_attn: adds attention layers in DConv branch starting at this layer. + dconv_lstm: adds a LSTM layer in DConv branch starting at this layer. + dconv_init: initial scale for the DConv branch LayerScale. + rescale: weight recaling trick + + """ + super().__init__() + + self.cac = cac + self.wiener_residual = wiener_residual + self.audio_channels = audio_channels + self.sources = sources + self.kernel_size = kernel_size + self.context = context + self.stride = stride + self.depth = depth + self.channels = channels + self.samplerate = samplerate + self.segment = segment + + self.nfft = nfft + self.hop_length = nfft // 4 + self.wiener_iters = wiener_iters + self.end_iters = end_iters + self.freq_emb = None + self.hybrid = hybrid + self.hybrid_old = hybrid_old + if hybrid_old: + assert hybrid, "hybrid_old must come with hybrid=True" + if hybrid: + assert wiener_iters == end_iters + + self.encoder = nn.ModuleList() + self.decoder = nn.ModuleList() + + if hybrid: + self.tencoder = nn.ModuleList() + self.tdecoder = nn.ModuleList() + + chin = audio_channels + chin_z = chin # number of channels for the freq branch + if self.cac: + chin_z *= 2 + chout = channels_time or channels + chout_z = channels + freqs = nfft // 2 + + for index in range(depth): + lstm = index >= dconv_lstm + attn = index >= dconv_attn + norm = index >= norm_starts + freq = freqs > 1 + stri = stride + ker = kernel_size + if not freq: + assert freqs == 1 + ker = time_stride * 2 + stri = time_stride + + pad = True + last_freq = False + if freq and freqs <= kernel_size: + ker = freqs + pad = False + last_freq = True + + kw = { + 'kernel_size': ker, + 'stride': stri, + 'freq': freq, + 'pad': pad, + 'norm': norm, + 'rewrite': rewrite, + 'norm_groups': norm_groups, + 'dconv_kw': { + 'lstm': lstm, + 'attn': attn, + 'depth': dconv_depth, + 'compress': dconv_comp, + 'init': dconv_init, + 'gelu': True, + } + } + kwt = dict(kw) + kwt['freq'] = 0 + kwt['kernel_size'] = kernel_size + kwt['stride'] = stride + kwt['pad'] = True + kw_dec = dict(kw) + multi = False + if multi_freqs and index < multi_freqs_depth: + multi = True + kw_dec['context_freq'] = False + + if last_freq: + chout_z = max(chout, chout_z) + chout = chout_z + + enc = HEncLayer(chin_z, chout_z, + dconv=dconv_mode & 1, context=context_enc, **kw) + if hybrid and freq: + tenc = HEncLayer(chin, chout, dconv=dconv_mode & 1, context=context_enc, + empty=last_freq, **kwt) + self.tencoder.append(tenc) + + if multi: + enc = MultiWrap(enc, multi_freqs) + self.encoder.append(enc) + if index == 0: + chin = self.audio_channels * len(self.sources) + chin_z = chin + if self.cac: + chin_z *= 2 + dec = HDecLayer(chout_z, chin_z, dconv=dconv_mode & 2, + last=index == 0, context=context, **kw_dec) + if multi: + dec = MultiWrap(dec, multi_freqs) + if hybrid and freq: + tdec = HDecLayer(chout, chin, dconv=dconv_mode & 2, empty=last_freq, + last=index == 0, context=context, **kwt) + self.tdecoder.insert(0, tdec) + self.decoder.insert(0, dec) + + chin = chout + chin_z = chout_z + chout = int(growth * chout) + chout_z = int(growth * chout_z) + if freq: + if freqs <= kernel_size: + freqs = 1 + else: + freqs //= stride + if index == 0 and freq_emb: + self.freq_emb = ScaledEmbedding( + freqs, chin_z, smooth=emb_smooth, scale=emb_scale) + self.freq_emb_scale = freq_emb + + if rescale: + rescale_module(self, reference=rescale) + + def _spec(self, x): + hl = self.hop_length + nfft = self.nfft + x0 = x # noqa + + if self.hybrid: + # We re-pad the signal in order to keep the property + # that the size of the output is exactly the size of the input + # divided by the stride (here hop_length), when divisible. + # This is achieved by padding by 1/4th of the kernel size (here nfft). + # which is not supported by torch.stft. + # Having all convolution operations follow this convention allow to easily + # align the time and frequency branches later on. + assert hl == nfft // 4 + le = int(math.ceil(x.shape[-1] / hl)) + pad = hl // 2 * 3 + if not self.hybrid_old: + x = pad1d(x, (pad, pad + le * hl - x.shape[-1]), mode='reflect') + else: + x = pad1d(x, (pad, pad + le * hl - x.shape[-1])) + + z = spectro(x, nfft, hl)[..., :-1, :] + if self.hybrid: + assert z.shape[-1] == le + 4, (z.shape, x.shape, le) + z = z[..., 2:2+le] + return z + + def _ispec(self, z, length=None, scale=0): + hl = self.hop_length // (4 ** scale) + z = F.pad(z, (0, 0, 0, 1)) + if self.hybrid: + z = F.pad(z, (2, 2)) + pad = hl // 2 * 3 + if not self.hybrid_old: + le = hl * int(math.ceil(length / hl)) + 2 * pad + else: + le = hl * int(math.ceil(length / hl)) + x = ispectro(z, hl, length=le) + if not self.hybrid_old: + x = x[..., pad:pad + length] + else: + x = x[..., :length] + else: + x = ispectro(z, hl, length) + return x + + def _magnitude(self, z): + # return the magnitude of the spectrogram, except when cac is True, + # in which case we just move the complex dimension to the channel one. + if self.cac: + B, C, Fr, T = z.shape + m = torch.view_as_real(z).permute(0, 1, 4, 2, 3) + m = m.reshape(B, C * 2, Fr, T) + else: + m = z.abs() + return m + + def _mask(self, z, m): + # Apply masking given the mixture spectrogram `z` and the estimated mask `m`. + # If `cac` is True, `m` is actually a full spectrogram and `z` is ignored. + niters = self.wiener_iters + if self.cac: + B, S, C, Fr, T = m.shape + out = m.view(B, S, -1, 2, Fr, T).permute(0, 1, 2, 4, 5, 3) + out = torch.view_as_complex(out.contiguous()) + return out + if self.training: + niters = self.end_iters + if niters < 0: + z = z[:, None] + return z / (1e-8 + z.abs()) * m + else: + return self._wiener(m, z, niters) + + def _wiener(self, mag_out, mix_stft, niters): + # apply wiener filtering from OpenUnmix. + init = mix_stft.dtype + wiener_win_len = 300 + residual = self.wiener_residual + + B, S, C, Fq, T = mag_out.shape + mag_out = mag_out.permute(0, 4, 3, 2, 1) + mix_stft = torch.view_as_real(mix_stft.permute(0, 3, 2, 1)) + + outs = [] + for sample in range(B): + pos = 0 + out = [] + for pos in range(0, T, wiener_win_len): + frame = slice(pos, pos + wiener_win_len) + z_out = wiener( + mag_out[sample, frame], mix_stft[sample, frame], niters, + residual=residual) + out.append(z_out.transpose(-1, -2)) + outs.append(torch.cat(out, dim=0)) + out = torch.view_as_complex(torch.stack(outs, 0)) + out = out.permute(0, 4, 3, 2, 1).contiguous() + if residual: + out = out[:, :-1] + assert list(out.shape) == [B, S, C, Fq, T] + return out.to(init) + + def forward(self, mix): + x = mix + length = x.shape[-1] + + z = self._spec(mix) + mag = self._magnitude(z).to(mix.device) + x = mag + + B, C, Fq, T = x.shape + + # unlike previous Demucs, we always normalize because it is easier. + mean = x.mean(dim=(1, 2, 3), keepdim=True) + std = x.std(dim=(1, 2, 3), keepdim=True) + x = (x - mean) / (1e-5 + std) + # x will be the freq. branch input. + + if self.hybrid: + # Prepare the time branch input. + xt = mix + meant = xt.mean(dim=(1, 2), keepdim=True) + stdt = xt.std(dim=(1, 2), keepdim=True) + xt = (xt - meant) / (1e-5 + stdt) + + # okay, this is a giant mess I know... + saved = [] # skip connections, freq. + saved_t = [] # skip connections, time. + lengths = [] # saved lengths to properly remove padding, freq branch. + lengths_t = [] # saved lengths for time branch. + for idx, encode in enumerate(self.encoder): + lengths.append(x.shape[-1]) + inject = None + if self.hybrid and idx < len(self.tencoder): + # we have not yet merged branches. + lengths_t.append(xt.shape[-1]) + tenc = self.tencoder[idx] + xt = tenc(xt) + if not tenc.empty: + # save for skip connection + saved_t.append(xt) + else: + # tenc contains just the first conv., so that now time and freq. + # branches have the same shape and can be merged. + inject = xt + x = encode(x, inject) + if idx == 0 and self.freq_emb is not None: + # add frequency embedding to allow for non equivariant convolutions + # over the frequency axis. + frs = torch.arange(x.shape[-2], device=x.device) + emb = self.freq_emb(frs).t()[None, :, :, None].expand_as(x) + x = x + self.freq_emb_scale * emb + + saved.append(x) + + x = torch.zeros_like(x) + if self.hybrid: + xt = torch.zeros_like(x) + # initialize everything to zero (signal will go through u-net skips). + + for idx, decode in enumerate(self.decoder): + skip = saved.pop(-1) + x, pre = decode(x, skip, lengths.pop(-1)) + # `pre` contains the output just before final transposed convolution, + # which is used when the freq. and time branch separate. + + if self.hybrid: + offset = self.depth - len(self.tdecoder) + if self.hybrid and idx >= offset: + tdec = self.tdecoder[idx - offset] + length_t = lengths_t.pop(-1) + if tdec.empty: + assert pre.shape[2] == 1, pre.shape + pre = pre[:, :, 0] + xt, _ = tdec(pre, None, length_t) + else: + skip = saved_t.pop(-1) + xt, _ = tdec(xt, skip, length_t) + + # Let's make sure we used all stored skip connections. + assert len(saved) == 0 + assert len(lengths_t) == 0 + assert len(saved_t) == 0 + + S = len(self.sources) + x = x.view(B, S, -1, Fq, T) + x = x * std[:, None] + mean[:, None] + + # to cpu as non-cuda GPUs don't support complex numbers + # demucs issue #435 ##432 + # NOTE: in this case z already is on cpu + # TODO: remove this when mps supports complex numbers + + device_type = x.device.type + device_load = f"{device_type}:{x.device.index}" if not device_type == 'mps' else device_type + x_is_other_gpu = not device_type in ["cuda", "cpu"] + + if x_is_other_gpu: + x = x.cpu() + + zout = self._mask(z, x) + x = self._ispec(zout, length) + + # back to other device + if x_is_other_gpu: + x = x.to(device_load) + + if self.hybrid: + xt = xt.view(B, S, -1, length) + xt = xt * stdt[:, None] + meant[:, None] + x = xt + x + return x \ No newline at end of file diff --git a/demucs/htdemucs.py b/demucs/htdemucs.py new file mode 100644 index 0000000..bad6b11 --- /dev/null +++ b/demucs/htdemucs.py @@ -0,0 +1,664 @@ +# Copyright (c) Meta, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# First author is Simon Rouard. +""" +This code contains the spectrogram and Hybrid version of Demucs. +""" +import math + +from .filtering import wiener +import torch +from torch import nn +from torch.nn import functional as F +from fractions import Fraction +from einops import rearrange + +from .transformer import CrossTransformerEncoder + +from .demucs import rescale_module +from .states import capture_init +from .spec import spectro, ispectro +from .hdemucs import pad1d, ScaledEmbedding, HEncLayer, MultiWrap, HDecLayer + + +class HTDemucs(nn.Module): + """ + Spectrogram and hybrid Demucs model. + The spectrogram model has the same structure as Demucs, except the first few layers are over the + frequency axis, until there is only 1 frequency, and then it moves to time convolutions. + Frequency layers can still access information across time steps thanks to the DConv residual. + + Hybrid model have a parallel time branch. At some layer, the time branch has the same stride + as the frequency branch and then the two are combined. The opposite happens in the decoder. + + Models can either use naive iSTFT from masking, Wiener filtering ([Ulhih et al. 2017]), + or complex as channels (CaC) [Choi et al. 2020]. Wiener filtering is based on + Open Unmix implementation [Stoter et al. 2019]. + + The loss is always on the temporal domain, by backpropagating through the above + output methods and iSTFT. This allows to define hybrid models nicely. However, this breaks + a bit Wiener filtering, as doing more iteration at test time will change the spectrogram + contribution, without changing the one from the waveform, which will lead to worse performance. + I tried using the residual option in OpenUnmix Wiener implementation, but it didn't improve. + CaC on the other hand provides similar performance for hybrid, and works naturally with + hybrid models. + + This model also uses frequency embeddings are used to improve efficiency on convolutions + over the freq. axis, following [Isik et al. 2020] (https://arxiv.org/pdf/2008.04470.pdf). + + Unlike classic Demucs, there is no resampling here, and normalization is always applied. + """ + + @capture_init + def __init__( + self, + sources, + # Channels + audio_channels=2, + channels=48, + channels_time=None, + growth=2, + # STFT + nfft=4096, + wiener_iters=0, + end_iters=0, + wiener_residual=False, + cac=True, + # Main structure + depth=4, + rewrite=True, + # Frequency branch + multi_freqs=None, + multi_freqs_depth=3, + freq_emb=0.2, + emb_scale=10, + emb_smooth=True, + # Convolutions + kernel_size=8, + time_stride=2, + stride=4, + context=1, + context_enc=0, + # Normalization + norm_starts=4, + norm_groups=4, + # DConv residual branch + dconv_mode=1, + dconv_depth=2, + dconv_comp=8, + dconv_init=1e-3, + # Before the Transformer + bottom_channels=0, + # Transformer + t_layers=5, + t_emb="sin", + t_hidden_scale=4.0, + t_heads=8, + t_dropout=0.0, + t_max_positions=10000, + t_norm_in=True, + t_norm_in_group=False, + t_group_norm=False, + t_norm_first=True, + t_norm_out=True, + t_max_period=10000.0, + t_weight_decay=0.0, + t_lr=None, + t_layer_scale=True, + t_gelu=True, + t_weight_pos_embed=1.0, + t_sin_random_shift=0, + t_cape_mean_normalize=True, + t_cape_augment=True, + t_cape_glob_loc_scale=[5000.0, 1.0, 1.4], + t_sparse_self_attn=False, + t_sparse_cross_attn=False, + t_mask_type="diag", + t_mask_random_seed=42, + t_sparse_attn_window=500, + t_global_window=100, + t_sparsity=0.95, + t_auto_sparsity=False, + # ------ Particuliar parameters + t_cross_first=False, + # Weight init + rescale=0.1, + # Metadata + samplerate=44100, + segment=10, + use_train_segment=True, + ): + """ + Args: + sources (list[str]): list of source names. + audio_channels (int): input/output audio channels. + channels (int): initial number of hidden channels. + channels_time: if not None, use a different `channels` value for the time branch. + growth: increase the number of hidden channels by this factor at each layer. + nfft: number of fft bins. Note that changing this require careful computation of + various shape parameters and will not work out of the box for hybrid models. + wiener_iters: when using Wiener filtering, number of iterations at test time. + end_iters: same but at train time. For a hybrid model, must be equal to `wiener_iters`. + wiener_residual: add residual source before wiener filtering. + cac: uses complex as channels, i.e. complex numbers are 2 channels each + in input and output. no further processing is done before ISTFT. + depth (int): number of layers in the encoder and in the decoder. + rewrite (bool): add 1x1 convolution to each layer. + multi_freqs: list of frequency ratios for splitting frequency bands with `MultiWrap`. + multi_freqs_depth: how many layers to wrap with `MultiWrap`. Only the outermost + layers will be wrapped. + freq_emb: add frequency embedding after the first frequency layer if > 0, + the actual value controls the weight of the embedding. + emb_scale: equivalent to scaling the embedding learning rate + emb_smooth: initialize the embedding with a smooth one (with respect to frequencies). + kernel_size: kernel_size for encoder and decoder layers. + stride: stride for encoder and decoder layers. + time_stride: stride for the final time layer, after the merge. + context: context for 1x1 conv in the decoder. + context_enc: context for 1x1 conv in the encoder. + norm_starts: layer at which group norm starts being used. + decoder layers are numbered in reverse order. + norm_groups: number of groups for group norm. + dconv_mode: if 1: dconv in encoder only, 2: decoder only, 3: both. + dconv_depth: depth of residual DConv branch. + dconv_comp: compression of DConv branch. + dconv_attn: adds attention layers in DConv branch starting at this layer. + dconv_lstm: adds a LSTM layer in DConv branch starting at this layer. + dconv_init: initial scale for the DConv branch LayerScale. + bottom_channels: if >0 it adds a linear layer (1x1 Conv) before and after the + transformer in order to change the number of channels + t_layers: number of layers in each branch (waveform and spec) of the transformer + t_emb: "sin", "cape" or "scaled" + t_hidden_scale: the hidden scale of the Feedforward parts of the transformer + for instance if C = 384 (the number of channels in the transformer) and + t_hidden_scale = 4.0 then the intermediate layer of the FFN has dimension + 384 * 4 = 1536 + t_heads: number of heads for the transformer + t_dropout: dropout in the transformer + t_max_positions: max_positions for the "scaled" positional embedding, only + useful if t_emb="scaled" + t_norm_in: (bool) norm before addinf positional embedding and getting into the + transformer layers + t_norm_in_group: (bool) if True while t_norm_in=True, the norm is on all the + timesteps (GroupNorm with group=1) + t_group_norm: (bool) if True, the norms of the Encoder Layers are on all the + timesteps (GroupNorm with group=1) + t_norm_first: (bool) if True the norm is before the attention and before the FFN + t_norm_out: (bool) if True, there is a GroupNorm (group=1) at the end of each layer + t_max_period: (float) denominator in the sinusoidal embedding expression + t_weight_decay: (float) weight decay for the transformer + t_lr: (float) specific learning rate for the transformer + t_layer_scale: (bool) Layer Scale for the transformer + t_gelu: (bool) activations of the transformer are GeLU if True, ReLU else + t_weight_pos_embed: (float) weighting of the positional embedding + t_cape_mean_normalize: (bool) if t_emb="cape", normalisation of positional embeddings + see: https://arxiv.org/abs/2106.03143 + t_cape_augment: (bool) if t_emb="cape", must be True during training and False + during the inference, see: https://arxiv.org/abs/2106.03143 + t_cape_glob_loc_scale: (list of 3 floats) if t_emb="cape", CAPE parameters + see: https://arxiv.org/abs/2106.03143 + t_sparse_self_attn: (bool) if True, the self attentions are sparse + t_sparse_cross_attn: (bool) if True, the cross-attentions are sparse (don't use it + unless you designed really specific masks) + t_mask_type: (str) can be "diag", "jmask", "random", "global" or any combination + with '_' between: i.e. "diag_jmask_random" (note that this is permutation + invariant i.e. "diag_jmask_random" is equivalent to "jmask_random_diag") + t_mask_random_seed: (int) if "random" is in t_mask_type, controls the seed + that generated the random part of the mask + t_sparse_attn_window: (int) if "diag" is in t_mask_type, for a query (i), and + a key (j), the mask is True id |i-j|<=t_sparse_attn_window + t_global_window: (int) if "global" is in t_mask_type, mask[:t_global_window, :] + and mask[:, :t_global_window] will be True + t_sparsity: (float) if "random" is in t_mask_type, t_sparsity is the sparsity + level of the random part of the mask. + t_cross_first: (bool) if True cross attention is the first layer of the + transformer (False seems to be better) + rescale: weight rescaling trick + use_train_segment: (bool) if True, the actual size that is used during the + training is used during inference. + """ + super().__init__() + self.cac = cac + self.wiener_residual = wiener_residual + self.audio_channels = audio_channels + self.sources = sources + self.kernel_size = kernel_size + self.context = context + self.stride = stride + self.depth = depth + self.bottom_channels = bottom_channels + self.channels = channels + self.samplerate = samplerate + self.segment = segment + self.use_train_segment = use_train_segment + self.nfft = nfft + self.hop_length = nfft // 4 + self.wiener_iters = wiener_iters + self.end_iters = end_iters + self.freq_emb = None + assert wiener_iters == end_iters + + self.encoder = nn.ModuleList() + self.decoder = nn.ModuleList() + + self.tencoder = nn.ModuleList() + self.tdecoder = nn.ModuleList() + + chin = audio_channels + chin_z = chin # number of channels for the freq branch + if self.cac: + chin_z *= 2 + chout = channels_time or channels + chout_z = channels + freqs = nfft // 2 + + for index in range(depth): + norm = index >= norm_starts + freq = freqs > 1 + stri = stride + ker = kernel_size + if not freq: + assert freqs == 1 + ker = time_stride * 2 + stri = time_stride + + pad = True + last_freq = False + if freq and freqs <= kernel_size: + ker = freqs + pad = False + last_freq = True + + kw = { + "kernel_size": ker, + "stride": stri, + "freq": freq, + "pad": pad, + "norm": norm, + "rewrite": rewrite, + "norm_groups": norm_groups, + "dconv_kw": { + "depth": dconv_depth, + "compress": dconv_comp, + "init": dconv_init, + "gelu": True, + }, + } + kwt = dict(kw) + kwt["freq"] = 0 + kwt["kernel_size"] = kernel_size + kwt["stride"] = stride + kwt["pad"] = True + kw_dec = dict(kw) + multi = False + if multi_freqs and index < multi_freqs_depth: + multi = True + kw_dec["context_freq"] = False + + if last_freq: + chout_z = max(chout, chout_z) + chout = chout_z + + enc = HEncLayer( + chin_z, chout_z, dconv=dconv_mode & 1, context=context_enc, **kw + ) + if freq: + tenc = HEncLayer( + chin, + chout, + dconv=dconv_mode & 1, + context=context_enc, + empty=last_freq, + **kwt + ) + self.tencoder.append(tenc) + + if multi: + enc = MultiWrap(enc, multi_freqs) + self.encoder.append(enc) + if index == 0: + chin = self.audio_channels * len(self.sources) + chin_z = chin + if self.cac: + chin_z *= 2 + dec = HDecLayer( + chout_z, + chin_z, + dconv=dconv_mode & 2, + last=index == 0, + context=context, + **kw_dec + ) + if multi: + dec = MultiWrap(dec, multi_freqs) + if freq: + tdec = HDecLayer( + chout, + chin, + dconv=dconv_mode & 2, + empty=last_freq, + last=index == 0, + context=context, + **kwt + ) + self.tdecoder.insert(0, tdec) + self.decoder.insert(0, dec) + + chin = chout + chin_z = chout_z + chout = int(growth * chout) + chout_z = int(growth * chout_z) + if freq: + if freqs <= kernel_size: + freqs = 1 + else: + freqs //= stride + if index == 0 and freq_emb: + self.freq_emb = ScaledEmbedding( + freqs, chin_z, smooth=emb_smooth, scale=emb_scale + ) + self.freq_emb_scale = freq_emb + + if rescale: + rescale_module(self, reference=rescale) + + transformer_channels = channels * growth ** (depth - 1) + if bottom_channels: + self.channel_upsampler = nn.Conv1d(transformer_channels, bottom_channels, 1) + self.channel_downsampler = nn.Conv1d( + bottom_channels, transformer_channels, 1 + ) + self.channel_upsampler_t = nn.Conv1d( + transformer_channels, bottom_channels, 1 + ) + self.channel_downsampler_t = nn.Conv1d( + bottom_channels, transformer_channels, 1 + ) + + transformer_channels = bottom_channels + + if t_layers > 0: + self.crosstransformer = CrossTransformerEncoder( + dim=transformer_channels, + emb=t_emb, + hidden_scale=t_hidden_scale, + num_heads=t_heads, + num_layers=t_layers, + cross_first=t_cross_first, + dropout=t_dropout, + max_positions=t_max_positions, + norm_in=t_norm_in, + norm_in_group=t_norm_in_group, + group_norm=t_group_norm, + norm_first=t_norm_first, + norm_out=t_norm_out, + max_period=t_max_period, + weight_decay=t_weight_decay, + lr=t_lr, + layer_scale=t_layer_scale, + gelu=t_gelu, + sin_random_shift=t_sin_random_shift, + weight_pos_embed=t_weight_pos_embed, + cape_mean_normalize=t_cape_mean_normalize, + cape_augment=t_cape_augment, + cape_glob_loc_scale=t_cape_glob_loc_scale, + sparse_self_attn=t_sparse_self_attn, + sparse_cross_attn=t_sparse_cross_attn, + mask_type=t_mask_type, + mask_random_seed=t_mask_random_seed, + sparse_attn_window=t_sparse_attn_window, + global_window=t_global_window, + sparsity=t_sparsity, + auto_sparsity=t_auto_sparsity, + ) + else: + self.crosstransformer = None + + def _spec(self, x): + hl = self.hop_length + nfft = self.nfft + x0 = x # noqa + + # We re-pad the signal in order to keep the property + # that the size of the output is exactly the size of the input + # divided by the stride (here hop_length), when divisible. + # This is achieved by padding by 1/4th of the kernel size (here nfft). + # which is not supported by torch.stft. + # Having all convolution operations follow this convention allow to easily + # align the time and frequency branches later on. + assert hl == nfft // 4 + le = int(math.ceil(x.shape[-1] / hl)) + pad = hl // 2 * 3 + x = pad1d(x, (pad, pad + le * hl - x.shape[-1]), mode="reflect") + + z = spectro(x, nfft, hl)[..., :-1, :] + assert z.shape[-1] == le + 4, (z.shape, x.shape, le) + z = z[..., 2: 2 + le] + return z + + def _ispec(self, z, length=None, scale=0): + hl = self.hop_length // (4**scale) + z = F.pad(z, (0, 0, 0, 1)) + z = F.pad(z, (2, 2)) + pad = hl // 2 * 3 + le = hl * int(math.ceil(length / hl)) + 2 * pad + x = ispectro(z, hl, length=le) + x = x[..., pad: pad + length] + return x + + def _magnitude(self, z): + # return the magnitude of the spectrogram, except when cac is True, + # in which case we just move the complex dimension to the channel one. + if self.cac: + B, C, Fr, T = z.shape + m = torch.view_as_real(z).permute(0, 1, 4, 2, 3) + m = m.reshape(B, C * 2, Fr, T) + else: + m = z.abs() + return m + + def _mask(self, z, m): + # Apply masking given the mixture spectrogram `z` and the estimated mask `m`. + # If `cac` is True, `m` is actually a full spectrogram and `z` is ignored. + niters = self.wiener_iters + if self.cac: + B, S, C, Fr, T = m.shape + out = m.view(B, S, -1, 2, Fr, T).permute(0, 1, 2, 4, 5, 3) + out = torch.view_as_complex(out.contiguous()) + return out + if self.training: + niters = self.end_iters + if niters < 0: + z = z[:, None] + return z / (1e-8 + z.abs()) * m + else: + return self._wiener(m, z, niters) + + def _wiener(self, mag_out, mix_stft, niters): + # apply wiener filtering from OpenUnmix. + init = mix_stft.dtype + wiener_win_len = 300 + residual = self.wiener_residual + + B, S, C, Fq, T = mag_out.shape + mag_out = mag_out.permute(0, 4, 3, 2, 1) + mix_stft = torch.view_as_real(mix_stft.permute(0, 3, 2, 1)) + + outs = [] + for sample in range(B): + pos = 0 + out = [] + for pos in range(0, T, wiener_win_len): + frame = slice(pos, pos + wiener_win_len) + z_out = wiener( + mag_out[sample, frame], + mix_stft[sample, frame], + niters, + residual=residual, + ) + out.append(z_out.transpose(-1, -2)) + outs.append(torch.cat(out, dim=0)) + out = torch.view_as_complex(torch.stack(outs, 0)) + out = out.permute(0, 4, 3, 2, 1).contiguous() + if residual: + out = out[:, :-1] + assert list(out.shape) == [B, S, C, Fq, T] + return out.to(init) + + def valid_length(self, length: int): + """ + Return a length that is appropriate for evaluation. + In our case, always return the training length, unless + it is smaller than the given length, in which case this + raises an error. + """ + if not self.use_train_segment: + return length + training_length = int(self.segment * self.samplerate) + if training_length < length: + raise ValueError( + f"Given length {length} is longer than " + f"training length {training_length}") + return training_length + + def forward(self, mix): + length = mix.shape[-1] + length_pre_pad = None + if self.use_train_segment: + if self.training: + self.segment = Fraction(mix.shape[-1], self.samplerate) + else: + training_length = int(self.segment * self.samplerate) + if mix.shape[-1] < training_length: + length_pre_pad = mix.shape[-1] + mix = F.pad(mix, (0, training_length - length_pre_pad)) + z = self._spec(mix) + mag = self._magnitude(z).to(mix.device) + x = mag + + B, C, Fq, T = x.shape + + # unlike previous Demucs, we always normalize because it is easier. + mean = x.mean(dim=(1, 2, 3), keepdim=True) + std = x.std(dim=(1, 2, 3), keepdim=True) + x = (x - mean) / (1e-5 + std) + # x will be the freq. branch input. + + # Prepare the time branch input. + xt = mix + meant = xt.mean(dim=(1, 2), keepdim=True) + stdt = xt.std(dim=(1, 2), keepdim=True) + xt = (xt - meant) / (1e-5 + stdt) + + # okay, this is a giant mess I know... + saved = [] # skip connections, freq. + saved_t = [] # skip connections, time. + lengths = [] # saved lengths to properly remove padding, freq branch. + lengths_t = [] # saved lengths for time branch. + for idx, encode in enumerate(self.encoder): + lengths.append(x.shape[-1]) + inject = None + if idx < len(self.tencoder): + # we have not yet merged branches. + lengths_t.append(xt.shape[-1]) + tenc = self.tencoder[idx] + xt = tenc(xt) + if not tenc.empty: + # save for skip connection + saved_t.append(xt) + else: + # tenc contains just the first conv., so that now time and freq. + # branches have the same shape and can be merged. + inject = xt + x = encode(x, inject) + if idx == 0 and self.freq_emb is not None: + # add frequency embedding to allow for non equivariant convolutions + # over the frequency axis. + frs = torch.arange(x.shape[-2], device=x.device) + emb = self.freq_emb(frs).t()[None, :, :, None].expand_as(x) + x = x + self.freq_emb_scale * emb + + saved.append(x) + if self.crosstransformer: + if self.bottom_channels: + b, c, f, t = x.shape + x = rearrange(x, "b c f t-> b c (f t)") + x = self.channel_upsampler(x) + x = rearrange(x, "b c (f t)-> b c f t", f=f) + xt = self.channel_upsampler_t(xt) + + x, xt = self.crosstransformer(x, xt) + + if self.bottom_channels: + x = rearrange(x, "b c f t-> b c (f t)") + x = self.channel_downsampler(x) + x = rearrange(x, "b c (f t)-> b c f t", f=f) + xt = self.channel_downsampler_t(xt) + + for idx, decode in enumerate(self.decoder): + skip = saved.pop(-1) + x, pre = decode(x, skip, lengths.pop(-1)) + # `pre` contains the output just before final transposed convolution, + # which is used when the freq. and time branch separate. + + offset = self.depth - len(self.tdecoder) + if idx >= offset: + tdec = self.tdecoder[idx - offset] + length_t = lengths_t.pop(-1) + if tdec.empty: + assert pre.shape[2] == 1, pre.shape + pre = pre[:, :, 0] + xt, _ = tdec(pre, None, length_t) + else: + skip = saved_t.pop(-1) + xt, _ = tdec(xt, skip, length_t) + + # Let's make sure we used all stored skip connections. + assert len(saved) == 0 + assert len(lengths_t) == 0 + assert len(saved_t) == 0 + + S = len(self.sources) + x = x.view(B, S, -1, Fq, T) + x = x * std[:, None] + mean[:, None] + + # to cpu as non-cuda GPUs don't support complex numbers + # demucs issue #435 ##432 + # NOTE: in this case z already is on cpu + # TODO: remove this when mps supports complex numbers + + device_type = x.device.type + device_load = f"{device_type}:{x.device.index}" if not device_type == 'mps' else device_type + x_is_other_gpu = not device_type in ["cuda", "cpu"] + + if x_is_other_gpu: + x = x.cpu() + + zout = self._mask(z, x) + if self.use_train_segment: + if self.training: + x = self._ispec(zout, length) + else: + x = self._ispec(zout, training_length) + else: + x = self._ispec(zout, length) + + # back to other device + if x_is_other_gpu: + x = x.to(device_load) + + if self.use_train_segment: + if self.training: + xt = xt.view(B, S, -1, length) + else: + xt = xt.view(B, S, -1, training_length) + else: + xt = xt.view(B, S, -1, length) + xt = xt * stdt[:, None] + meant[:, None] + x = xt + x + if length_pre_pad: + x = x[..., :length_pre_pad] + return x diff --git a/demucs/model.py b/demucs/model.py new file mode 100644 index 0000000..e2745b8 --- /dev/null +++ b/demucs/model.py @@ -0,0 +1,218 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import math + +import torch as th +from torch import nn + +from .utils import capture_init, center_trim + + +class BLSTM(nn.Module): + def __init__(self, dim, layers=1): + super().__init__() + self.lstm = nn.LSTM(bidirectional=True, num_layers=layers, hidden_size=dim, input_size=dim) + self.linear = nn.Linear(2 * dim, dim) + + def forward(self, x): + x = x.permute(2, 0, 1) + x = self.lstm(x)[0] + x = self.linear(x) + x = x.permute(1, 2, 0) + return x + + +def rescale_conv(conv, reference): + std = conv.weight.std().detach() + scale = (std / reference)**0.5 + conv.weight.data /= scale + if conv.bias is not None: + conv.bias.data /= scale + + +def rescale_module(module, reference): + for sub in module.modules(): + if isinstance(sub, (nn.Conv1d, nn.ConvTranspose1d)): + rescale_conv(sub, reference) + + +def upsample(x, stride): + """ + Linear upsampling, the output will be `stride` times longer. + """ + batch, channels, time = x.size() + weight = th.arange(stride, device=x.device, dtype=th.float) / stride + x = x.view(batch, channels, time, 1) + out = x[..., :-1, :] * (1 - weight) + x[..., 1:, :] * weight + return out.reshape(batch, channels, -1) + + +def downsample(x, stride): + """ + Downsample x by decimation. + """ + return x[:, :, ::stride] + + +class Demucs(nn.Module): + @capture_init + def __init__(self, + sources=4, + audio_channels=2, + channels=64, + depth=6, + rewrite=True, + glu=True, + upsample=False, + rescale=0.1, + kernel_size=8, + stride=4, + growth=2., + lstm_layers=2, + context=3, + samplerate=44100): + """ + Args: + sources (int): number of sources to separate + audio_channels (int): stereo or mono + channels (int): first convolution channels + depth (int): number of encoder/decoder layers + rewrite (bool): add 1x1 convolution to each encoder layer + and a convolution to each decoder layer. + For the decoder layer, `context` gives the kernel size. + glu (bool): use glu instead of ReLU + upsample (bool): use linear upsampling with convolutions + Wave-U-Net style, instead of transposed convolutions + rescale (int): rescale initial weights of convolutions + to get their standard deviation closer to `rescale` + kernel_size (int): kernel size for convolutions + stride (int): stride for convolutions + growth (float): multiply (resp divide) number of channels by that + for each layer of the encoder (resp decoder) + lstm_layers (int): number of lstm layers, 0 = no lstm + context (int): kernel size of the convolution in the + decoder before the transposed convolution. If > 1, + will provide some context from neighboring time + steps. + """ + + super().__init__() + self.audio_channels = audio_channels + self.sources = sources + self.kernel_size = kernel_size + self.context = context + self.stride = stride + self.depth = depth + self.upsample = upsample + self.channels = channels + self.samplerate = samplerate + + self.encoder = nn.ModuleList() + self.decoder = nn.ModuleList() + + self.final = None + if upsample: + self.final = nn.Conv1d(channels + audio_channels, sources * audio_channels, 1) + stride = 1 + + if glu: + activation = nn.GLU(dim=1) + ch_scale = 2 + else: + activation = nn.ReLU() + ch_scale = 1 + in_channels = audio_channels + for index in range(depth): + encode = [] + encode += [nn.Conv1d(in_channels, channels, kernel_size, stride), nn.ReLU()] + if rewrite: + encode += [nn.Conv1d(channels, ch_scale * channels, 1), activation] + self.encoder.append(nn.Sequential(*encode)) + + decode = [] + if index > 0: + out_channels = in_channels + else: + if upsample: + out_channels = channels + else: + out_channels = sources * audio_channels + if rewrite: + decode += [nn.Conv1d(channels, ch_scale * channels, context), activation] + if upsample: + decode += [ + nn.Conv1d(channels, out_channels, kernel_size, stride=1), + ] + else: + decode += [nn.ConvTranspose1d(channels, out_channels, kernel_size, stride)] + if index > 0: + decode.append(nn.ReLU()) + self.decoder.insert(0, nn.Sequential(*decode)) + in_channels = channels + channels = int(growth * channels) + + channels = in_channels + + if lstm_layers: + self.lstm = BLSTM(channels, lstm_layers) + else: + self.lstm = None + + if rescale: + rescale_module(self, reference=rescale) + + def valid_length(self, length): + """ + Return the nearest valid length to use with the model so that + there is no time steps left over in a convolutions, e.g. for all + layers, size of the input - kernel_size % stride = 0. + + If the mixture has a valid length, the estimated sources + will have exactly the same length when context = 1. If context > 1, + the two signals can be center trimmed to match. + + For training, extracts should have a valid length.For evaluation + on full tracks we recommend passing `pad = True` to :method:`forward`. + """ + for _ in range(self.depth): + if self.upsample: + length = math.ceil(length / self.stride) + self.kernel_size - 1 + else: + length = math.ceil((length - self.kernel_size) / self.stride) + 1 + length = max(1, length) + length += self.context - 1 + for _ in range(self.depth): + if self.upsample: + length = length * self.stride + self.kernel_size - 1 + else: + length = (length - 1) * self.stride + self.kernel_size + + return int(length) + + def forward(self, mix): + x = mix + saved = [x] + for encode in self.encoder: + x = encode(x) + saved.append(x) + if self.upsample: + x = downsample(x, self.stride) + if self.lstm: + x = self.lstm(x) + for decode in self.decoder: + if self.upsample: + x = upsample(x, stride=self.stride) + skip = center_trim(saved.pop(-1), x) + x = x + skip + x = decode(x) + if self.final: + skip = center_trim(saved.pop(-1), x) + x = th.cat([x, skip], dim=1) + x = self.final(x) + + x = x.view(x.size(0), self.sources, self.audio_channels, x.size(-1)) + return x diff --git a/demucs/model_v2.py b/demucs/model_v2.py new file mode 100644 index 0000000..db43fc5 --- /dev/null +++ b/demucs/model_v2.py @@ -0,0 +1,218 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +import math + +import julius +from torch import nn +from .tasnet_v2 import ConvTasNet + +from .utils import capture_init, center_trim + + +class BLSTM(nn.Module): + def __init__(self, dim, layers=1): + super().__init__() + self.lstm = nn.LSTM(bidirectional=True, num_layers=layers, hidden_size=dim, input_size=dim) + self.linear = nn.Linear(2 * dim, dim) + + def forward(self, x): + x = x.permute(2, 0, 1) + x = self.lstm(x)[0] + x = self.linear(x) + x = x.permute(1, 2, 0) + return x + + +def rescale_conv(conv, reference): + std = conv.weight.std().detach() + scale = (std / reference)**0.5 + conv.weight.data /= scale + if conv.bias is not None: + conv.bias.data /= scale + + +def rescale_module(module, reference): + for sub in module.modules(): + if isinstance(sub, (nn.Conv1d, nn.ConvTranspose1d)): + rescale_conv(sub, reference) + +def auto_load_demucs_model_v2(sources, demucs_model_name): + + if '48' in demucs_model_name: + channels=48 + elif 'unittest' in demucs_model_name: + channels=4 + else: + channels=64 + + if 'tasnet' in demucs_model_name: + init_demucs_model = ConvTasNet(sources, X=10) + else: + init_demucs_model = Demucs(sources, channels=channels) + + return init_demucs_model + +class Demucs(nn.Module): + @capture_init + def __init__(self, + sources, + audio_channels=2, + channels=64, + depth=6, + rewrite=True, + glu=True, + rescale=0.1, + resample=True, + kernel_size=8, + stride=4, + growth=2., + lstm_layers=2, + context=3, + normalize=False, + samplerate=44100, + segment_length=4 * 10 * 44100): + """ + Args: + sources (list[str]): list of source names + audio_channels (int): stereo or mono + channels (int): first convolution channels + depth (int): number of encoder/decoder layers + rewrite (bool): add 1x1 convolution to each encoder layer + and a convolution to each decoder layer. + For the decoder layer, `context` gives the kernel size. + glu (bool): use glu instead of ReLU + resample_input (bool): upsample x2 the input and downsample /2 the output. + rescale (int): rescale initial weights of convolutions + to get their standard deviation closer to `rescale` + kernel_size (int): kernel size for convolutions + stride (int): stride for convolutions + growth (float): multiply (resp divide) number of channels by that + for each layer of the encoder (resp decoder) + lstm_layers (int): number of lstm layers, 0 = no lstm + context (int): kernel size of the convolution in the + decoder before the transposed convolution. If > 1, + will provide some context from neighboring time + steps. + samplerate (int): stored as meta information for easing + future evaluations of the model. + segment_length (int): stored as meta information for easing + future evaluations of the model. Length of the segments on which + the model was trained. + """ + + super().__init__() + self.audio_channels = audio_channels + self.sources = sources + self.kernel_size = kernel_size + self.context = context + self.stride = stride + self.depth = depth + self.resample = resample + self.channels = channels + self.normalize = normalize + self.samplerate = samplerate + self.segment_length = segment_length + + self.encoder = nn.ModuleList() + self.decoder = nn.ModuleList() + + if glu: + activation = nn.GLU(dim=1) + ch_scale = 2 + else: + activation = nn.ReLU() + ch_scale = 1 + in_channels = audio_channels + for index in range(depth): + encode = [] + encode += [nn.Conv1d(in_channels, channels, kernel_size, stride), nn.ReLU()] + if rewrite: + encode += [nn.Conv1d(channels, ch_scale * channels, 1), activation] + self.encoder.append(nn.Sequential(*encode)) + + decode = [] + if index > 0: + out_channels = in_channels + else: + out_channels = len(self.sources) * audio_channels + if rewrite: + decode += [nn.Conv1d(channels, ch_scale * channels, context), activation] + decode += [nn.ConvTranspose1d(channels, out_channels, kernel_size, stride)] + if index > 0: + decode.append(nn.ReLU()) + self.decoder.insert(0, nn.Sequential(*decode)) + in_channels = channels + channels = int(growth * channels) + + channels = in_channels + + if lstm_layers: + self.lstm = BLSTM(channels, lstm_layers) + else: + self.lstm = None + + if rescale: + rescale_module(self, reference=rescale) + + def valid_length(self, length): + """ + Return the nearest valid length to use with the model so that + there is no time steps left over in a convolutions, e.g. for all + layers, size of the input - kernel_size % stride = 0. + + If the mixture has a valid length, the estimated sources + will have exactly the same length when context = 1. If context > 1, + the two signals can be center trimmed to match. + + For training, extracts should have a valid length.For evaluation + on full tracks we recommend passing `pad = True` to :method:`forward`. + """ + if self.resample: + length *= 2 + for _ in range(self.depth): + length = math.ceil((length - self.kernel_size) / self.stride) + 1 + length = max(1, length) + length += self.context - 1 + for _ in range(self.depth): + length = (length - 1) * self.stride + self.kernel_size + + if self.resample: + length = math.ceil(length / 2) + return int(length) + + def forward(self, mix): + x = mix + + if self.normalize: + mono = mix.mean(dim=1, keepdim=True) + mean = mono.mean(dim=-1, keepdim=True) + std = mono.std(dim=-1, keepdim=True) + else: + mean = 0 + std = 1 + + x = (x - mean) / (1e-5 + std) + + if self.resample: + x = julius.resample_frac(x, 1, 2) + + saved = [] + for encode in self.encoder: + x = encode(x) + saved.append(x) + if self.lstm: + x = self.lstm(x) + for decode in self.decoder: + skip = center_trim(saved.pop(-1), x) + x = x + skip + x = decode(x) + + if self.resample: + x = julius.resample_frac(x, 2, 1) + x = x * std + mean + x = x.view(x.size(0), len(self.sources), self.audio_channels, x.size(-1)) + return x diff --git a/demucs/pretrained.py b/demucs/pretrained.py new file mode 100644 index 0000000..25aa685 --- /dev/null +++ b/demucs/pretrained.py @@ -0,0 +1,180 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Loading pretrained models. +""" + +import logging +from pathlib import Path +import typing as tp + +#from dora.log import fatal + +import logging + +from diffq import DiffQuantizer +import torch.hub + +from .model import Demucs +from .tasnet_v2 import ConvTasNet +from .utils import set_state + +from .hdemucs import HDemucs +from .repo import RemoteRepo, LocalRepo, ModelOnlyRepo, BagOnlyRepo, AnyModelRepo, ModelLoadingError # noqa + +logger = logging.getLogger(__name__) +ROOT_URL = "https://dl.fbaipublicfiles.com/demucs/mdx_final/" +REMOTE_ROOT = Path(__file__).parent / 'remote' + +SOURCES = ["drums", "bass", "other", "vocals"] + + +def demucs_unittest(): + model = HDemucs(channels=4, sources=SOURCES) + return model + + +def add_model_flags(parser): + group = parser.add_mutually_exclusive_group(required=False) + group.add_argument("-s", "--sig", help="Locally trained XP signature.") + group.add_argument("-n", "--name", default="mdx_extra_q", + help="Pretrained model name or signature. Default is mdx_extra_q.") + parser.add_argument("--repo", type=Path, + help="Folder containing all pre-trained models for use with -n.") + + +def _parse_remote_files(remote_file_list) -> tp.Dict[str, str]: + root: str = '' + models: tp.Dict[str, str] = {} + for line in remote_file_list.read_text().split('\n'): + line = line.strip() + if line.startswith('#'): + continue + elif line.startswith('root:'): + root = line.split(':', 1)[1].strip() + else: + sig = line.split('-', 1)[0] + assert sig not in models + models[sig] = ROOT_URL + root + line + return models + +def get_model(name: str, + repo: tp.Optional[Path] = None): + """`name` must be a bag of models name or a pretrained signature + from the remote AWS model repo or the specified local repo if `repo` is not None. + """ + if name == 'demucs_unittest': + return demucs_unittest() + model_repo: ModelOnlyRepo + if repo is None: + models = _parse_remote_files(REMOTE_ROOT / 'files.txt') + model_repo = RemoteRepo(models) + bag_repo = BagOnlyRepo(REMOTE_ROOT, model_repo) + else: + if not repo.is_dir(): + fatal(f"{repo} must exist and be a directory.") + model_repo = LocalRepo(repo) + bag_repo = BagOnlyRepo(repo, model_repo) + any_repo = AnyModelRepo(model_repo, bag_repo) + model = any_repo.get_model(name) + model.eval() + return model + +def get_model_from_args(args): + """ + Load local model package or pre-trained model. + """ + return get_model(name=args.name, repo=args.repo) + +logger = logging.getLogger(__name__) +ROOT = "https://dl.fbaipublicfiles.com/demucs/v3.0/" + +PRETRAINED_MODELS = { + 'demucs': 'e07c671f', + 'demucs48_hq': '28a1282c', + 'demucs_extra': '3646af93', + 'demucs_quantized': '07afea75', + 'tasnet': 'beb46fac', + 'tasnet_extra': 'df3777b2', + 'demucs_unittest': '09ebc15f', +} + +SOURCES = ["drums", "bass", "other", "vocals"] + + +def get_url(name): + sig = PRETRAINED_MODELS[name] + return ROOT + name + "-" + sig[:8] + ".th" + +def is_pretrained(name): + return name in PRETRAINED_MODELS + + +def load_pretrained(name): + if name == "demucs": + return demucs(pretrained=True) + elif name == "demucs48_hq": + return demucs(pretrained=True, hq=True, channels=48) + elif name == "demucs_extra": + return demucs(pretrained=True, extra=True) + elif name == "demucs_quantized": + return demucs(pretrained=True, quantized=True) + elif name == "demucs_unittest": + return demucs_unittest(pretrained=True) + elif name == "tasnet": + return tasnet(pretrained=True) + elif name == "tasnet_extra": + return tasnet(pretrained=True, extra=True) + else: + raise ValueError(f"Invalid pretrained name {name}") + + +def _load_state(name, model, quantizer=None): + url = get_url(name) + state = torch.hub.load_state_dict_from_url(url, map_location='cpu', check_hash=True) + set_state(model, quantizer, state) + if quantizer: + quantizer.detach() + + +def demucs_unittest(pretrained=True): + model = Demucs(channels=4, sources=SOURCES) + if pretrained: + _load_state('demucs_unittest', model) + return model + + +def demucs(pretrained=True, extra=False, quantized=False, hq=False, channels=64): + if not pretrained and (extra or quantized or hq): + raise ValueError("if extra or quantized is True, pretrained must be True.") + model = Demucs(sources=SOURCES, channels=channels) + if pretrained: + name = 'demucs' + if channels != 64: + name += str(channels) + quantizer = None + if sum([extra, quantized, hq]) > 1: + raise ValueError("Only one of extra, quantized, hq, can be True.") + if quantized: + quantizer = DiffQuantizer(model, group_size=8, min_size=1) + name += '_quantized' + if extra: + name += '_extra' + if hq: + name += '_hq' + _load_state(name, model, quantizer) + return model + + +def tasnet(pretrained=True, extra=False): + if not pretrained and extra: + raise ValueError("if extra is True, pretrained must be True.") + model = ConvTasNet(X=10, sources=SOURCES) + if pretrained: + name = 'tasnet' + if extra: + name = 'tasnet_extra' + _load_state(name, model) + return model \ No newline at end of file diff --git a/demucs/repo.py b/demucs/repo.py new file mode 100644 index 0000000..65ff6b3 --- /dev/null +++ b/demucs/repo.py @@ -0,0 +1,148 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Represents a model repository, including pre-trained models and bags of models. +A repo can either be the main remote repository stored in AWS, or a local repository +with your own models. +""" + +from hashlib import sha256 +from pathlib import Path +import typing as tp + +import torch +import yaml + +from .apply import BagOfModels, Model +from .states import load_model + + +AnyModel = tp.Union[Model, BagOfModels] + + +class ModelLoadingError(RuntimeError): + pass + + +def check_checksum(path: Path, checksum: str): + sha = sha256() + with open(path, 'rb') as file: + while True: + buf = file.read(2**20) + if not buf: + break + sha.update(buf) + actual_checksum = sha.hexdigest()[:len(checksum)] + if actual_checksum != checksum: + raise ModelLoadingError(f'Invalid checksum for file {path}, ' + f'expected {checksum} but got {actual_checksum}') + +class ModelOnlyRepo: + """Base class for all model only repos. + """ + def has_model(self, sig: str) -> bool: + raise NotImplementedError() + + def get_model(self, sig: str) -> Model: + raise NotImplementedError() + + +class RemoteRepo(ModelOnlyRepo): + def __init__(self, models: tp.Dict[str, str]): + self._models = models + + def has_model(self, sig: str) -> bool: + return sig in self._models + + def get_model(self, sig: str) -> Model: + try: + url = self._models[sig] + except KeyError: + raise ModelLoadingError(f'Could not find a pre-trained model with signature {sig}.') + pkg = torch.hub.load_state_dict_from_url(url, map_location='cpu', check_hash=True) + return load_model(pkg) + + +class LocalRepo(ModelOnlyRepo): + def __init__(self, root: Path): + self.root = root + self.scan() + + def scan(self): + self._models = {} + self._checksums = {} + for file in self.root.iterdir(): + if file.suffix == '.th': + if '-' in file.stem: + xp_sig, checksum = file.stem.split('-') + self._checksums[xp_sig] = checksum + else: + xp_sig = file.stem + if xp_sig in self._models: + print('Whats xp? ', xp_sig) + raise ModelLoadingError( + f'Duplicate pre-trained model exist for signature {xp_sig}. ' + 'Please delete all but one.') + self._models[xp_sig] = file + + def has_model(self, sig: str) -> bool: + return sig in self._models + + def get_model(self, sig: str) -> Model: + try: + file = self._models[sig] + except KeyError: + raise ModelLoadingError(f'Could not find pre-trained model with signature {sig}.') + if sig in self._checksums: + check_checksum(file, self._checksums[sig]) + return load_model(file) + + +class BagOnlyRepo: + """Handles only YAML files containing bag of models, leaving the actual + model loading to some Repo. + """ + def __init__(self, root: Path, model_repo: ModelOnlyRepo): + self.root = root + self.model_repo = model_repo + self.scan() + + def scan(self): + self._bags = {} + for file in self.root.iterdir(): + if file.suffix == '.yaml': + self._bags[file.stem] = file + + def has_model(self, name: str) -> bool: + return name in self._bags + + def get_model(self, name: str) -> BagOfModels: + try: + yaml_file = self._bags[name] + except KeyError: + raise ModelLoadingError(f'{name} is neither a single pre-trained model or ' + 'a bag of models.') + bag = yaml.safe_load(open(yaml_file)) + signatures = bag['models'] + models = [self.model_repo.get_model(sig) for sig in signatures] + weights = bag.get('weights') + segment = bag.get('segment') + return BagOfModels(models, weights, segment) + + +class AnyModelRepo: + def __init__(self, model_repo: ModelOnlyRepo, bag_repo: BagOnlyRepo): + self.model_repo = model_repo + self.bag_repo = bag_repo + + def has_model(self, name_or_sig: str) -> bool: + return self.model_repo.has_model(name_or_sig) or self.bag_repo.has_model(name_or_sig) + + def get_model(self, name_or_sig: str) -> AnyModel: + print('name_or_sig: ', name_or_sig) + if self.model_repo.has_model(name_or_sig): + return self.model_repo.get_model(name_or_sig) + else: + return self.bag_repo.get_model(name_or_sig) diff --git a/demucs/spec.py b/demucs/spec.py new file mode 100644 index 0000000..9c79cb6 --- /dev/null +++ b/demucs/spec.py @@ -0,0 +1,53 @@ +# Copyright (c) Meta Platforms, Inc. and affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +"""Conveniance wrapper to perform STFT and iSTFT""" + +import torch as th + + +def spectro(x, n_fft=512, hop_length=None, pad=0): + *other, length = x.shape + x = x.reshape(-1, length) + + device_type = x.device.type + is_other_gpu = not device_type in ["cuda", "cpu"] + + if is_other_gpu: + x = x.cpu() + z = th.stft(x, + n_fft * (1 + pad), + hop_length or n_fft // 4, + window=th.hann_window(n_fft).to(x), + win_length=n_fft, + normalized=True, + center=True, + return_complex=True, + pad_mode='reflect') + _, freqs, frame = z.shape + return z.view(*other, freqs, frame) + + +def ispectro(z, hop_length=None, length=None, pad=0): + *other, freqs, frames = z.shape + n_fft = 2 * freqs - 2 + z = z.view(-1, freqs, frames) + win_length = n_fft // (1 + pad) + + device_type = z.device.type + is_other_gpu = not device_type in ["cuda", "cpu"] + + if is_other_gpu: + z = z.cpu() + x = th.istft(z, + n_fft, + hop_length, + window=th.hann_window(win_length).to(z.real), + win_length=win_length, + normalized=True, + length=length, + center=True) + _, length = x.shape + return x.view(*other, length) diff --git a/demucs/states.py b/demucs/states.py new file mode 100644 index 0000000..db17a18 --- /dev/null +++ b/demucs/states.py @@ -0,0 +1,148 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +""" +Utilities to save and load models. +""" +from contextlib import contextmanager + +import functools +import hashlib +import inspect +import io +from pathlib import Path +import warnings + +from omegaconf import OmegaConf +from diffq import DiffQuantizer, UniformQuantizer, restore_quantized_state +import torch + + +def get_quantizer(model, args, optimizer=None): + """Return the quantizer given the XP quantization args.""" + quantizer = None + if args.diffq: + quantizer = DiffQuantizer( + model, min_size=args.min_size, group_size=args.group_size) + if optimizer is not None: + quantizer.setup_optimizer(optimizer) + elif args.qat: + quantizer = UniformQuantizer( + model, bits=args.qat, min_size=args.min_size) + return quantizer + + +def load_model(path_or_package, strict=False): + """Load a model from the given serialized model, either given as a dict (already loaded) + or a path to a file on disk.""" + if isinstance(path_or_package, dict): + package = path_or_package + elif isinstance(path_or_package, (str, Path)): + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + path = path_or_package + package = torch.load(path, 'cpu') + else: + raise ValueError(f"Invalid type for {path_or_package}.") + + klass = package["klass"] + args = package["args"] + kwargs = package["kwargs"] + + if strict: + model = klass(*args, **kwargs) + else: + sig = inspect.signature(klass) + for key in list(kwargs): + if key not in sig.parameters: + warnings.warn("Dropping inexistant parameter " + key) + del kwargs[key] + model = klass(*args, **kwargs) + + state = package["state"] + + set_state(model, state) + return model + + +def get_state(model, quantizer, half=False): + """Get the state from a model, potentially with quantization applied. + If `half` is True, model are stored as half precision, which shouldn't impact performance + but half the state size.""" + if quantizer is None: + dtype = torch.half if half else None + state = {k: p.data.to(device='cpu', dtype=dtype) for k, p in model.state_dict().items()} + else: + state = quantizer.get_quantized_state() + state['__quantized'] = True + return state + + +def set_state(model, state, quantizer=None): + """Set the state on a given model.""" + if state.get('__quantized'): + if quantizer is not None: + quantizer.restore_quantized_state(model, state['quantized']) + else: + restore_quantized_state(model, state) + else: + model.load_state_dict(state) + return state + + +def save_with_checksum(content, path): + """Save the given value on disk, along with a sha256 hash. + Should be used with the output of either `serialize_model` or `get_state`.""" + buf = io.BytesIO() + torch.save(content, buf) + sig = hashlib.sha256(buf.getvalue()).hexdigest()[:8] + + path = path.parent / (path.stem + "-" + sig + path.suffix) + path.write_bytes(buf.getvalue()) + + +def serialize_model(model, training_args, quantizer=None, half=True): + args, kwargs = model._init_args_kwargs + klass = model.__class__ + + state = get_state(model, quantizer, half) + return { + 'klass': klass, + 'args': args, + 'kwargs': kwargs, + 'state': state, + 'training_args': OmegaConf.to_container(training_args, resolve=True), + } + + +def copy_state(state): + return {k: v.cpu().clone() for k, v in state.items()} + + +@contextmanager +def swap_state(model, state): + """ + Context manager that swaps the state of a model, e.g: + + # model is in old state + with swap_state(model, new_state): + # model in new state + # model back to old state + """ + old_state = copy_state(model.state_dict()) + model.load_state_dict(state, strict=False) + try: + yield + finally: + model.load_state_dict(old_state) + + +def capture_init(init): + @functools.wraps(init) + def __init__(self, *args, **kwargs): + self._init_args_kwargs = (args, kwargs) + init(self, *args, **kwargs) + + return __init__ diff --git a/demucs/tasnet.py b/demucs/tasnet.py new file mode 100644 index 0000000..9cb7a95 --- /dev/null +++ b/demucs/tasnet.py @@ -0,0 +1,447 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# +# Created on 2018/12 +# Author: Kaituo XU +# Modified on 2019/11 by Alexandre Defossez, added support for multiple output channels +# Here is the original license: +# The MIT License (MIT) +# +# Copyright (c) 2018 Kaituo XU +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import math + +import torch +import torch.nn as nn +import torch.nn.functional as F + +from .utils import capture_init + +EPS = 1e-8 + + +def overlap_and_add(signal, frame_step): + outer_dimensions = signal.size()[:-2] + frames, frame_length = signal.size()[-2:] + + subframe_length = math.gcd(frame_length, frame_step) # gcd=Greatest Common Divisor + subframe_step = frame_step // subframe_length + subframes_per_frame = frame_length // subframe_length + output_size = frame_step * (frames - 1) + frame_length + output_subframes = output_size // subframe_length + + subframe_signal = signal.view(*outer_dimensions, -1, subframe_length) + + frame = torch.arange(0, output_subframes, + device=signal.device).unfold(0, subframes_per_frame, subframe_step) + frame = frame.long() # signal may in GPU or CPU + frame = frame.contiguous().view(-1) + + result = signal.new_zeros(*outer_dimensions, output_subframes, subframe_length) + result.index_add_(-2, frame, subframe_signal) + result = result.view(*outer_dimensions, -1) + return result + + +class ConvTasNet(nn.Module): + @capture_init + def __init__(self, + N=256, + L=20, + B=256, + H=512, + P=3, + X=8, + R=4, + C=4, + audio_channels=1, + samplerate=44100, + norm_type="gLN", + causal=False, + mask_nonlinear='relu'): + """ + Args: + N: Number of filters in autoencoder + L: Length of the filters (in samples) + B: Number of channels in bottleneck 1 × 1-conv block + H: Number of channels in convolutional blocks + P: Kernel size in convolutional blocks + X: Number of convolutional blocks in each repeat + R: Number of repeats + C: Number of speakers + norm_type: BN, gLN, cLN + causal: causal or non-causal + mask_nonlinear: use which non-linear function to generate mask + """ + super(ConvTasNet, self).__init__() + # Hyper-parameter + self.N, self.L, self.B, self.H, self.P, self.X, self.R, self.C = N, L, B, H, P, X, R, C + self.norm_type = norm_type + self.causal = causal + self.mask_nonlinear = mask_nonlinear + self.audio_channels = audio_channels + self.samplerate = samplerate + # Components + self.encoder = Encoder(L, N, audio_channels) + self.separator = TemporalConvNet(N, B, H, P, X, R, C, norm_type, causal, mask_nonlinear) + self.decoder = Decoder(N, L, audio_channels) + # init + for p in self.parameters(): + if p.dim() > 1: + nn.init.xavier_normal_(p) + + def valid_length(self, length): + return length + + def forward(self, mixture): + """ + Args: + mixture: [M, T], M is batch size, T is #samples + Returns: + est_source: [M, C, T] + """ + mixture_w = self.encoder(mixture) + est_mask = self.separator(mixture_w) + est_source = self.decoder(mixture_w, est_mask) + + # T changed after conv1d in encoder, fix it here + T_origin = mixture.size(-1) + T_conv = est_source.size(-1) + est_source = F.pad(est_source, (0, T_origin - T_conv)) + return est_source + + +class Encoder(nn.Module): + """Estimation of the nonnegative mixture weight by a 1-D conv layer. + """ + def __init__(self, L, N, audio_channels): + super(Encoder, self).__init__() + # Hyper-parameter + self.L, self.N = L, N + # Components + # 50% overlap + self.conv1d_U = nn.Conv1d(audio_channels, N, kernel_size=L, stride=L // 2, bias=False) + + def forward(self, mixture): + """ + Args: + mixture: [M, T], M is batch size, T is #samples + Returns: + mixture_w: [M, N, K], where K = (T-L)/(L/2)+1 = 2T/L-1 + """ + mixture_w = F.relu(self.conv1d_U(mixture)) # [M, N, K] + return mixture_w + + +class Decoder(nn.Module): + def __init__(self, N, L, audio_channels): + super(Decoder, self).__init__() + # Hyper-parameter + self.N, self.L = N, L + self.audio_channels = audio_channels + # Components + self.basis_signals = nn.Linear(N, audio_channels * L, bias=False) + + def forward(self, mixture_w, est_mask): + """ + Args: + mixture_w: [M, N, K] + est_mask: [M, C, N, K] + Returns: + est_source: [M, C, T] + """ + # D = W * M + source_w = torch.unsqueeze(mixture_w, 1) * est_mask # [M, C, N, K] + source_w = torch.transpose(source_w, 2, 3) # [M, C, K, N] + # S = DV + est_source = self.basis_signals(source_w) # [M, C, K, ac * L] + m, c, k, _ = est_source.size() + est_source = est_source.view(m, c, k, self.audio_channels, -1).transpose(2, 3).contiguous() + est_source = overlap_and_add(est_source, self.L // 2) # M x C x ac x T + return est_source + + +class TemporalConvNet(nn.Module): + def __init__(self, N, B, H, P, X, R, C, norm_type="gLN", causal=False, mask_nonlinear='relu'): + """ + Args: + N: Number of filters in autoencoder + B: Number of channels in bottleneck 1 × 1-conv block + H: Number of channels in convolutional blocks + P: Kernel size in convolutional blocks + X: Number of convolutional blocks in each repeat + R: Number of repeats + C: Number of speakers + norm_type: BN, gLN, cLN + causal: causal or non-causal + mask_nonlinear: use which non-linear function to generate mask + """ + super(TemporalConvNet, self).__init__() + # Hyper-parameter + self.C = C + self.mask_nonlinear = mask_nonlinear + # Components + # [M, N, K] -> [M, N, K] + layer_norm = ChannelwiseLayerNorm(N) + # [M, N, K] -> [M, B, K] + bottleneck_conv1x1 = nn.Conv1d(N, B, 1, bias=False) + # [M, B, K] -> [M, B, K] + repeats = [] + for r in range(R): + blocks = [] + for x in range(X): + dilation = 2**x + padding = (P - 1) * dilation if causal else (P - 1) * dilation // 2 + blocks += [ + TemporalBlock(B, + H, + P, + stride=1, + padding=padding, + dilation=dilation, + norm_type=norm_type, + causal=causal) + ] + repeats += [nn.Sequential(*blocks)] + temporal_conv_net = nn.Sequential(*repeats) + # [M, B, K] -> [M, C*N, K] + mask_conv1x1 = nn.Conv1d(B, C * N, 1, bias=False) + # Put together + self.network = nn.Sequential(layer_norm, bottleneck_conv1x1, temporal_conv_net, + mask_conv1x1) + + def forward(self, mixture_w): + """ + Keep this API same with TasNet + Args: + mixture_w: [M, N, K], M is batch size + returns: + est_mask: [M, C, N, K] + """ + M, N, K = mixture_w.size() + score = self.network(mixture_w) # [M, N, K] -> [M, C*N, K] + score = score.view(M, self.C, N, K) # [M, C*N, K] -> [M, C, N, K] + if self.mask_nonlinear == 'softmax': + est_mask = F.softmax(score, dim=1) + elif self.mask_nonlinear == 'relu': + est_mask = F.relu(score) + else: + raise ValueError("Unsupported mask non-linear function") + return est_mask + + +class TemporalBlock(nn.Module): + def __init__(self, + in_channels, + out_channels, + kernel_size, + stride, + padding, + dilation, + norm_type="gLN", + causal=False): + super(TemporalBlock, self).__init__() + # [M, B, K] -> [M, H, K] + conv1x1 = nn.Conv1d(in_channels, out_channels, 1, bias=False) + prelu = nn.PReLU() + norm = chose_norm(norm_type, out_channels) + # [M, H, K] -> [M, B, K] + dsconv = DepthwiseSeparableConv(out_channels, in_channels, kernel_size, stride, padding, + dilation, norm_type, causal) + # Put together + self.net = nn.Sequential(conv1x1, prelu, norm, dsconv) + + def forward(self, x): + """ + Args: + x: [M, B, K] + Returns: + [M, B, K] + """ + residual = x + out = self.net(x) + # TODO: when P = 3 here works fine, but when P = 2 maybe need to pad? + return out + residual # look like w/o F.relu is better than w/ F.relu + # return F.relu(out + residual) + + +class DepthwiseSeparableConv(nn.Module): + def __init__(self, + in_channels, + out_channels, + kernel_size, + stride, + padding, + dilation, + norm_type="gLN", + causal=False): + super(DepthwiseSeparableConv, self).__init__() + # Use `groups` option to implement depthwise convolution + # [M, H, K] -> [M, H, K] + depthwise_conv = nn.Conv1d(in_channels, + in_channels, + kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + groups=in_channels, + bias=False) + if causal: + chomp = Chomp1d(padding) + prelu = nn.PReLU() + norm = chose_norm(norm_type, in_channels) + # [M, H, K] -> [M, B, K] + pointwise_conv = nn.Conv1d(in_channels, out_channels, 1, bias=False) + # Put together + if causal: + self.net = nn.Sequential(depthwise_conv, chomp, prelu, norm, pointwise_conv) + else: + self.net = nn.Sequential(depthwise_conv, prelu, norm, pointwise_conv) + + def forward(self, x): + """ + Args: + x: [M, H, K] + Returns: + result: [M, B, K] + """ + return self.net(x) + + +class Chomp1d(nn.Module): + """To ensure the output length is the same as the input. + """ + def __init__(self, chomp_size): + super(Chomp1d, self).__init__() + self.chomp_size = chomp_size + + def forward(self, x): + """ + Args: + x: [M, H, Kpad] + Returns: + [M, H, K] + """ + return x[:, :, :-self.chomp_size].contiguous() + + +def chose_norm(norm_type, channel_size): + """The input of normlization will be (M, C, K), where M is batch size, + C is channel size and K is sequence length. + """ + if norm_type == "gLN": + return GlobalLayerNorm(channel_size) + elif norm_type == "cLN": + return ChannelwiseLayerNorm(channel_size) + elif norm_type == "id": + return nn.Identity() + else: # norm_type == "BN": + # Given input (M, C, K), nn.BatchNorm1d(C) will accumulate statics + # along M and K, so this BN usage is right. + return nn.BatchNorm1d(channel_size) + + +# TODO: Use nn.LayerNorm to impl cLN to speed up +class ChannelwiseLayerNorm(nn.Module): + """Channel-wise Layer Normalization (cLN)""" + def __init__(self, channel_size): + super(ChannelwiseLayerNorm, self).__init__() + self.gamma = nn.Parameter(torch.Tensor(1, channel_size, 1)) # [1, N, 1] + self.beta = nn.Parameter(torch.Tensor(1, channel_size, 1)) # [1, N, 1] + self.reset_parameters() + + def reset_parameters(self): + self.gamma.data.fill_(1) + self.beta.data.zero_() + + def forward(self, y): + """ + Args: + y: [M, N, K], M is batch size, N is channel size, K is length + Returns: + cLN_y: [M, N, K] + """ + mean = torch.mean(y, dim=1, keepdim=True) # [M, 1, K] + var = torch.var(y, dim=1, keepdim=True, unbiased=False) # [M, 1, K] + cLN_y = self.gamma * (y - mean) / torch.pow(var + EPS, 0.5) + self.beta + return cLN_y + + +class GlobalLayerNorm(nn.Module): + """Global Layer Normalization (gLN)""" + def __init__(self, channel_size): + super(GlobalLayerNorm, self).__init__() + self.gamma = nn.Parameter(torch.Tensor(1, channel_size, 1)) # [1, N, 1] + self.beta = nn.Parameter(torch.Tensor(1, channel_size, 1)) # [1, N, 1] + self.reset_parameters() + + def reset_parameters(self): + self.gamma.data.fill_(1) + self.beta.data.zero_() + + def forward(self, y): + """ + Args: + y: [M, N, K], M is batch size, N is channel size, K is length + Returns: + gLN_y: [M, N, K] + """ + # TODO: in torch 1.0, torch.mean() support dim list + mean = y.mean(dim=1, keepdim=True).mean(dim=2, keepdim=True) # [M, 1, 1] + var = (torch.pow(y - mean, 2)).mean(dim=1, keepdim=True).mean(dim=2, keepdim=True) + gLN_y = self.gamma * (y - mean) / torch.pow(var + EPS, 0.5) + self.beta + return gLN_y + + +if __name__ == "__main__": + torch.manual_seed(123) + M, N, L, T = 2, 3, 4, 12 + K = 2 * T // L - 1 + B, H, P, X, R, C, norm_type, causal = 2, 3, 3, 3, 2, 2, "gLN", False + mixture = torch.randint(3, (M, T)) + # test Encoder + encoder = Encoder(L, N) + encoder.conv1d_U.weight.data = torch.randint(2, encoder.conv1d_U.weight.size()) + mixture_w = encoder(mixture) + print('mixture', mixture) + print('U', encoder.conv1d_U.weight) + print('mixture_w', mixture_w) + print('mixture_w size', mixture_w.size()) + + # test TemporalConvNet + separator = TemporalConvNet(N, B, H, P, X, R, C, norm_type=norm_type, causal=causal) + est_mask = separator(mixture_w) + print('est_mask', est_mask) + + # test Decoder + decoder = Decoder(N, L) + est_mask = torch.randint(2, (B, K, C, N)) + est_source = decoder(mixture_w, est_mask) + print('est_source', est_source) + + # test Conv-TasNet + conv_tasnet = ConvTasNet(N, L, B, H, P, X, R, C, norm_type=norm_type) + est_source = conv_tasnet(mixture) + print('est_source', est_source) + print('est_source size', est_source.size()) diff --git a/demucs/tasnet_v2.py b/demucs/tasnet_v2.py new file mode 100644 index 0000000..ecc1257 --- /dev/null +++ b/demucs/tasnet_v2.py @@ -0,0 +1,452 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# +# Created on 2018/12 +# Author: Kaituo XU +# Modified on 2019/11 by Alexandre Defossez, added support for multiple output channels +# Here is the original license: +# The MIT License (MIT) +# +# Copyright (c) 2018 Kaituo XU +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import math + +import torch +import torch.nn as nn +import torch.nn.functional as F + +from .utils import capture_init + +EPS = 1e-8 + + +def overlap_and_add(signal, frame_step): + outer_dimensions = signal.size()[:-2] + frames, frame_length = signal.size()[-2:] + + subframe_length = math.gcd(frame_length, frame_step) # gcd=Greatest Common Divisor + subframe_step = frame_step // subframe_length + subframes_per_frame = frame_length // subframe_length + output_size = frame_step * (frames - 1) + frame_length + output_subframes = output_size // subframe_length + + subframe_signal = signal.view(*outer_dimensions, -1, subframe_length) + + frame = torch.arange(0, output_subframes, + device=signal.device).unfold(0, subframes_per_frame, subframe_step) + frame = frame.long() # signal may in GPU or CPU + frame = frame.contiguous().view(-1) + + result = signal.new_zeros(*outer_dimensions, output_subframes, subframe_length) + result.index_add_(-2, frame, subframe_signal) + result = result.view(*outer_dimensions, -1) + return result + + +class ConvTasNet(nn.Module): + @capture_init + def __init__(self, + sources, + N=256, + L=20, + B=256, + H=512, + P=3, + X=8, + R=4, + audio_channels=2, + norm_type="gLN", + causal=False, + mask_nonlinear='relu', + samplerate=44100, + segment_length=44100 * 2 * 4): + """ + Args: + sources: list of sources + N: Number of filters in autoencoder + L: Length of the filters (in samples) + B: Number of channels in bottleneck 1 × 1-conv block + H: Number of channels in convolutional blocks + P: Kernel size in convolutional blocks + X: Number of convolutional blocks in each repeat + R: Number of repeats + norm_type: BN, gLN, cLN + causal: causal or non-causal + mask_nonlinear: use which non-linear function to generate mask + """ + super(ConvTasNet, self).__init__() + # Hyper-parameter + self.sources = sources + self.C = len(sources) + self.N, self.L, self.B, self.H, self.P, self.X, self.R = N, L, B, H, P, X, R + self.norm_type = norm_type + self.causal = causal + self.mask_nonlinear = mask_nonlinear + self.audio_channels = audio_channels + self.samplerate = samplerate + self.segment_length = segment_length + # Components + self.encoder = Encoder(L, N, audio_channels) + self.separator = TemporalConvNet( + N, B, H, P, X, R, self.C, norm_type, causal, mask_nonlinear) + self.decoder = Decoder(N, L, audio_channels) + # init + for p in self.parameters(): + if p.dim() > 1: + nn.init.xavier_normal_(p) + + def valid_length(self, length): + return length + + def forward(self, mixture): + """ + Args: + mixture: [M, T], M is batch size, T is #samples + Returns: + est_source: [M, C, T] + """ + mixture_w = self.encoder(mixture) + est_mask = self.separator(mixture_w) + est_source = self.decoder(mixture_w, est_mask) + + # T changed after conv1d in encoder, fix it here + T_origin = mixture.size(-1) + T_conv = est_source.size(-1) + est_source = F.pad(est_source, (0, T_origin - T_conv)) + return est_source + + +class Encoder(nn.Module): + """Estimation of the nonnegative mixture weight by a 1-D conv layer. + """ + def __init__(self, L, N, audio_channels): + super(Encoder, self).__init__() + # Hyper-parameter + self.L, self.N = L, N + # Components + # 50% overlap + self.conv1d_U = nn.Conv1d(audio_channels, N, kernel_size=L, stride=L // 2, bias=False) + + def forward(self, mixture): + """ + Args: + mixture: [M, T], M is batch size, T is #samples + Returns: + mixture_w: [M, N, K], where K = (T-L)/(L/2)+1 = 2T/L-1 + """ + mixture_w = F.relu(self.conv1d_U(mixture)) # [M, N, K] + return mixture_w + + +class Decoder(nn.Module): + def __init__(self, N, L, audio_channels): + super(Decoder, self).__init__() + # Hyper-parameter + self.N, self.L = N, L + self.audio_channels = audio_channels + # Components + self.basis_signals = nn.Linear(N, audio_channels * L, bias=False) + + def forward(self, mixture_w, est_mask): + """ + Args: + mixture_w: [M, N, K] + est_mask: [M, C, N, K] + Returns: + est_source: [M, C, T] + """ + # D = W * M + source_w = torch.unsqueeze(mixture_w, 1) * est_mask # [M, C, N, K] + source_w = torch.transpose(source_w, 2, 3) # [M, C, K, N] + # S = DV + est_source = self.basis_signals(source_w) # [M, C, K, ac * L] + m, c, k, _ = est_source.size() + est_source = est_source.view(m, c, k, self.audio_channels, -1).transpose(2, 3).contiguous() + est_source = overlap_and_add(est_source, self.L // 2) # M x C x ac x T + return est_source + + +class TemporalConvNet(nn.Module): + def __init__(self, N, B, H, P, X, R, C, norm_type="gLN", causal=False, mask_nonlinear='relu'): + """ + Args: + N: Number of filters in autoencoder + B: Number of channels in bottleneck 1 × 1-conv block + H: Number of channels in convolutional blocks + P: Kernel size in convolutional blocks + X: Number of convolutional blocks in each repeat + R: Number of repeats + C: Number of speakers + norm_type: BN, gLN, cLN + causal: causal or non-causal + mask_nonlinear: use which non-linear function to generate mask + """ + super(TemporalConvNet, self).__init__() + # Hyper-parameter + self.C = C + self.mask_nonlinear = mask_nonlinear + # Components + # [M, N, K] -> [M, N, K] + layer_norm = ChannelwiseLayerNorm(N) + # [M, N, K] -> [M, B, K] + bottleneck_conv1x1 = nn.Conv1d(N, B, 1, bias=False) + # [M, B, K] -> [M, B, K] + repeats = [] + for r in range(R): + blocks = [] + for x in range(X): + dilation = 2**x + padding = (P - 1) * dilation if causal else (P - 1) * dilation // 2 + blocks += [ + TemporalBlock(B, + H, + P, + stride=1, + padding=padding, + dilation=dilation, + norm_type=norm_type, + causal=causal) + ] + repeats += [nn.Sequential(*blocks)] + temporal_conv_net = nn.Sequential(*repeats) + # [M, B, K] -> [M, C*N, K] + mask_conv1x1 = nn.Conv1d(B, C * N, 1, bias=False) + # Put together + self.network = nn.Sequential(layer_norm, bottleneck_conv1x1, temporal_conv_net, + mask_conv1x1) + + def forward(self, mixture_w): + """ + Keep this API same with TasNet + Args: + mixture_w: [M, N, K], M is batch size + returns: + est_mask: [M, C, N, K] + """ + M, N, K = mixture_w.size() + score = self.network(mixture_w) # [M, N, K] -> [M, C*N, K] + score = score.view(M, self.C, N, K) # [M, C*N, K] -> [M, C, N, K] + if self.mask_nonlinear == 'softmax': + est_mask = F.softmax(score, dim=1) + elif self.mask_nonlinear == 'relu': + est_mask = F.relu(score) + else: + raise ValueError("Unsupported mask non-linear function") + return est_mask + + +class TemporalBlock(nn.Module): + def __init__(self, + in_channels, + out_channels, + kernel_size, + stride, + padding, + dilation, + norm_type="gLN", + causal=False): + super(TemporalBlock, self).__init__() + # [M, B, K] -> [M, H, K] + conv1x1 = nn.Conv1d(in_channels, out_channels, 1, bias=False) + prelu = nn.PReLU() + norm = chose_norm(norm_type, out_channels) + # [M, H, K] -> [M, B, K] + dsconv = DepthwiseSeparableConv(out_channels, in_channels, kernel_size, stride, padding, + dilation, norm_type, causal) + # Put together + self.net = nn.Sequential(conv1x1, prelu, norm, dsconv) + + def forward(self, x): + """ + Args: + x: [M, B, K] + Returns: + [M, B, K] + """ + residual = x + out = self.net(x) + # TODO: when P = 3 here works fine, but when P = 2 maybe need to pad? + return out + residual # look like w/o F.relu is better than w/ F.relu + # return F.relu(out + residual) + + +class DepthwiseSeparableConv(nn.Module): + def __init__(self, + in_channels, + out_channels, + kernel_size, + stride, + padding, + dilation, + norm_type="gLN", + causal=False): + super(DepthwiseSeparableConv, self).__init__() + # Use `groups` option to implement depthwise convolution + # [M, H, K] -> [M, H, K] + depthwise_conv = nn.Conv1d(in_channels, + in_channels, + kernel_size, + stride=stride, + padding=padding, + dilation=dilation, + groups=in_channels, + bias=False) + if causal: + chomp = Chomp1d(padding) + prelu = nn.PReLU() + norm = chose_norm(norm_type, in_channels) + # [M, H, K] -> [M, B, K] + pointwise_conv = nn.Conv1d(in_channels, out_channels, 1, bias=False) + # Put together + if causal: + self.net = nn.Sequential(depthwise_conv, chomp, prelu, norm, pointwise_conv) + else: + self.net = nn.Sequential(depthwise_conv, prelu, norm, pointwise_conv) + + def forward(self, x): + """ + Args: + x: [M, H, K] + Returns: + result: [M, B, K] + """ + return self.net(x) + + +class Chomp1d(nn.Module): + """To ensure the output length is the same as the input. + """ + def __init__(self, chomp_size): + super(Chomp1d, self).__init__() + self.chomp_size = chomp_size + + def forward(self, x): + """ + Args: + x: [M, H, Kpad] + Returns: + [M, H, K] + """ + return x[:, :, :-self.chomp_size].contiguous() + + +def chose_norm(norm_type, channel_size): + """The input of normlization will be (M, C, K), where M is batch size, + C is channel size and K is sequence length. + """ + if norm_type == "gLN": + return GlobalLayerNorm(channel_size) + elif norm_type == "cLN": + return ChannelwiseLayerNorm(channel_size) + elif norm_type == "id": + return nn.Identity() + else: # norm_type == "BN": + # Given input (M, C, K), nn.BatchNorm1d(C) will accumulate statics + # along M and K, so this BN usage is right. + return nn.BatchNorm1d(channel_size) + + +# TODO: Use nn.LayerNorm to impl cLN to speed up +class ChannelwiseLayerNorm(nn.Module): + """Channel-wise Layer Normalization (cLN)""" + def __init__(self, channel_size): + super(ChannelwiseLayerNorm, self).__init__() + self.gamma = nn.Parameter(torch.Tensor(1, channel_size, 1)) # [1, N, 1] + self.beta = nn.Parameter(torch.Tensor(1, channel_size, 1)) # [1, N, 1] + self.reset_parameters() + + def reset_parameters(self): + self.gamma.data.fill_(1) + self.beta.data.zero_() + + def forward(self, y): + """ + Args: + y: [M, N, K], M is batch size, N is channel size, K is length + Returns: + cLN_y: [M, N, K] + """ + mean = torch.mean(y, dim=1, keepdim=True) # [M, 1, K] + var = torch.var(y, dim=1, keepdim=True, unbiased=False) # [M, 1, K] + cLN_y = self.gamma * (y - mean) / torch.pow(var + EPS, 0.5) + self.beta + return cLN_y + + +class GlobalLayerNorm(nn.Module): + """Global Layer Normalization (gLN)""" + def __init__(self, channel_size): + super(GlobalLayerNorm, self).__init__() + self.gamma = nn.Parameter(torch.Tensor(1, channel_size, 1)) # [1, N, 1] + self.beta = nn.Parameter(torch.Tensor(1, channel_size, 1)) # [1, N, 1] + self.reset_parameters() + + def reset_parameters(self): + self.gamma.data.fill_(1) + self.beta.data.zero_() + + def forward(self, y): + """ + Args: + y: [M, N, K], M is batch size, N is channel size, K is length + Returns: + gLN_y: [M, N, K] + """ + # TODO: in torch 1.0, torch.mean() support dim list + mean = y.mean(dim=1, keepdim=True).mean(dim=2, keepdim=True) # [M, 1, 1] + var = (torch.pow(y - mean, 2)).mean(dim=1, keepdim=True).mean(dim=2, keepdim=True) + gLN_y = self.gamma * (y - mean) / torch.pow(var + EPS, 0.5) + self.beta + return gLN_y + + +if __name__ == "__main__": + torch.manual_seed(123) + M, N, L, T = 2, 3, 4, 12 + K = 2 * T // L - 1 + B, H, P, X, R, C, norm_type, causal = 2, 3, 3, 3, 2, 2, "gLN", False + mixture = torch.randint(3, (M, T)) + # test Encoder + encoder = Encoder(L, N) + encoder.conv1d_U.weight.data = torch.randint(2, encoder.conv1d_U.weight.size()) + mixture_w = encoder(mixture) + print('mixture', mixture) + print('U', encoder.conv1d_U.weight) + print('mixture_w', mixture_w) + print('mixture_w size', mixture_w.size()) + + # test TemporalConvNet + separator = TemporalConvNet(N, B, H, P, X, R, C, norm_type=norm_type, causal=causal) + est_mask = separator(mixture_w) + print('est_mask', est_mask) + + # test Decoder + decoder = Decoder(N, L) + est_mask = torch.randint(2, (B, K, C, N)) + est_source = decoder(mixture_w, est_mask) + print('est_source', est_source) + + # test Conv-TasNet + conv_tasnet = ConvTasNet(N, L, B, H, P, X, R, C, norm_type=norm_type) + est_source = conv_tasnet(mixture) + print('est_source', est_source) + print('est_source size', est_source.size()) diff --git a/demucs/transformer.py b/demucs/transformer.py new file mode 100644 index 0000000..56a465b --- /dev/null +++ b/demucs/transformer.py @@ -0,0 +1,839 @@ +# Copyright (c) 2019-present, Meta, Inc. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. +# First author is Simon Rouard. + +import random +import typing as tp + +import torch +import torch.nn as nn +import torch.nn.functional as F +import numpy as np +import math +from einops import rearrange + + +def create_sin_embedding( + length: int, dim: int, shift: int = 0, device="cpu", max_period=10000 +): + # We aim for TBC format + assert dim % 2 == 0 + pos = shift + torch.arange(length, device=device).view(-1, 1, 1) + half_dim = dim // 2 + adim = torch.arange(dim // 2, device=device).view(1, 1, -1) + phase = pos / (max_period ** (adim / (half_dim - 1))) + return torch.cat( + [ + torch.cos(phase), + torch.sin(phase), + ], + dim=-1, + ) + + +def create_2d_sin_embedding(d_model, height, width, device="cpu", max_period=10000): + """ + :param d_model: dimension of the model + :param height: height of the positions + :param width: width of the positions + :return: d_model*height*width position matrix + """ + if d_model % 4 != 0: + raise ValueError( + "Cannot use sin/cos positional encoding with " + "odd dimension (got dim={:d})".format(d_model) + ) + pe = torch.zeros(d_model, height, width) + # Each dimension use half of d_model + d_model = int(d_model / 2) + div_term = torch.exp( + torch.arange(0.0, d_model, 2) * -(math.log(max_period) / d_model) + ) + pos_w = torch.arange(0.0, width).unsqueeze(1) + pos_h = torch.arange(0.0, height).unsqueeze(1) + pe[0:d_model:2, :, :] = ( + torch.sin(pos_w * div_term).transpose(0, 1).unsqueeze(1).repeat(1, height, 1) + ) + pe[1:d_model:2, :, :] = ( + torch.cos(pos_w * div_term).transpose(0, 1).unsqueeze(1).repeat(1, height, 1) + ) + pe[d_model::2, :, :] = ( + torch.sin(pos_h * div_term).transpose(0, 1).unsqueeze(2).repeat(1, 1, width) + ) + pe[d_model + 1:: 2, :, :] = ( + torch.cos(pos_h * div_term).transpose(0, 1).unsqueeze(2).repeat(1, 1, width) + ) + + return pe[None, :].to(device) + + +def create_sin_embedding_cape( + length: int, + dim: int, + batch_size: int, + mean_normalize: bool, + augment: bool, # True during training + max_global_shift: float = 0.0, # delta max + max_local_shift: float = 0.0, # epsilon max + max_scale: float = 1.0, + device: str = "cpu", + max_period: float = 10000.0, +): + # We aim for TBC format + assert dim % 2 == 0 + pos = 1.0 * torch.arange(length).view(-1, 1, 1) # (length, 1, 1) + pos = pos.repeat(1, batch_size, 1) # (length, batch_size, 1) + if mean_normalize: + pos -= torch.nanmean(pos, dim=0, keepdim=True) + + if augment: + delta = np.random.uniform( + -max_global_shift, +max_global_shift, size=[1, batch_size, 1] + ) + delta_local = np.random.uniform( + -max_local_shift, +max_local_shift, size=[length, batch_size, 1] + ) + log_lambdas = np.random.uniform( + -np.log(max_scale), +np.log(max_scale), size=[1, batch_size, 1] + ) + pos = (pos + delta + delta_local) * np.exp(log_lambdas) + + pos = pos.to(device) + + half_dim = dim // 2 + adim = torch.arange(dim // 2, device=device).view(1, 1, -1) + phase = pos / (max_period ** (adim / (half_dim - 1))) + return torch.cat( + [ + torch.cos(phase), + torch.sin(phase), + ], + dim=-1, + ).float() + + +def get_causal_mask(length): + pos = torch.arange(length) + return pos > pos[:, None] + + +def get_elementary_mask( + T1, + T2, + mask_type, + sparse_attn_window, + global_window, + mask_random_seed, + sparsity, + device, +): + """ + When the input of the Decoder has length T1 and the output T2 + The mask matrix has shape (T2, T1) + """ + assert mask_type in ["diag", "jmask", "random", "global"] + + if mask_type == "global": + mask = torch.zeros(T2, T1, dtype=torch.bool) + mask[:, :global_window] = True + line_window = int(global_window * T2 / T1) + mask[:line_window, :] = True + + if mask_type == "diag": + + mask = torch.zeros(T2, T1, dtype=torch.bool) + rows = torch.arange(T2)[:, None] + cols = ( + (T1 / T2 * rows + torch.arange(-sparse_attn_window, sparse_attn_window + 1)) + .long() + .clamp(0, T1 - 1) + ) + mask.scatter_(1, cols, torch.ones(1, dtype=torch.bool).expand_as(cols)) + + elif mask_type == "jmask": + mask = torch.zeros(T2 + 2, T1 + 2, dtype=torch.bool) + rows = torch.arange(T2 + 2)[:, None] + t = torch.arange(0, int((2 * T1) ** 0.5 + 1)) + t = (t * (t + 1) / 2).int() + t = torch.cat([-t.flip(0)[:-1], t]) + cols = (T1 / T2 * rows + t).long().clamp(0, T1 + 1) + mask.scatter_(1, cols, torch.ones(1, dtype=torch.bool).expand_as(cols)) + mask = mask[1:-1, 1:-1] + + elif mask_type == "random": + gene = torch.Generator(device=device) + gene.manual_seed(mask_random_seed) + mask = ( + torch.rand(T1 * T2, generator=gene, device=device).reshape(T2, T1) + > sparsity + ) + + mask = mask.to(device) + return mask + + +def get_mask( + T1, + T2, + mask_type, + sparse_attn_window, + global_window, + mask_random_seed, + sparsity, + device, +): + """ + Return a SparseCSRTensor mask that is a combination of elementary masks + mask_type can be a combination of multiple masks: for instance "diag_jmask_random" + """ + from xformers.sparse import SparseCSRTensor + # create a list + mask_types = mask_type.split("_") + + all_masks = [ + get_elementary_mask( + T1, + T2, + mask, + sparse_attn_window, + global_window, + mask_random_seed, + sparsity, + device, + ) + for mask in mask_types + ] + + final_mask = torch.stack(all_masks).sum(axis=0) > 0 + + return SparseCSRTensor.from_dense(final_mask[None]) + + +class ScaledEmbedding(nn.Module): + def __init__( + self, + num_embeddings: int, + embedding_dim: int, + scale: float = 1.0, + boost: float = 3.0, + ): + super().__init__() + self.embedding = nn.Embedding(num_embeddings, embedding_dim) + self.embedding.weight.data *= scale / boost + self.boost = boost + + @property + def weight(self): + return self.embedding.weight * self.boost + + def forward(self, x): + return self.embedding(x) * self.boost + + +class LayerScale(nn.Module): + """Layer scale from [Touvron et al 2021] (https://arxiv.org/pdf/2103.17239.pdf). + This rescales diagonaly residual outputs close to 0 initially, then learnt. + """ + + def __init__(self, channels: int, init: float = 0, channel_last=False): + """ + channel_last = False corresponds to (B, C, T) tensors + channel_last = True corresponds to (T, B, C) tensors + """ + super().__init__() + self.channel_last = channel_last + self.scale = nn.Parameter(torch.zeros(channels, requires_grad=True)) + self.scale.data[:] = init + + def forward(self, x): + if self.channel_last: + return self.scale * x + else: + return self.scale[:, None] * x + + +class MyGroupNorm(nn.GroupNorm): + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + def forward(self, x): + """ + x: (B, T, C) + if num_groups=1: Normalisation on all T and C together for each B + """ + x = x.transpose(1, 2) + return super().forward(x).transpose(1, 2) + + +class MyTransformerEncoderLayer(nn.TransformerEncoderLayer): + def __init__( + self, + d_model, + nhead, + dim_feedforward=2048, + dropout=0.1, + activation=F.relu, + group_norm=0, + norm_first=False, + norm_out=False, + layer_norm_eps=1e-5, + layer_scale=False, + init_values=1e-4, + device=None, + dtype=None, + sparse=False, + mask_type="diag", + mask_random_seed=42, + sparse_attn_window=500, + global_window=50, + auto_sparsity=False, + sparsity=0.95, + batch_first=False, + ): + factory_kwargs = {"device": device, "dtype": dtype} + super().__init__( + d_model=d_model, + nhead=nhead, + dim_feedforward=dim_feedforward, + dropout=dropout, + activation=activation, + layer_norm_eps=layer_norm_eps, + batch_first=batch_first, + norm_first=norm_first, + device=device, + dtype=dtype, + ) + self.sparse = sparse + self.auto_sparsity = auto_sparsity + if sparse: + if not auto_sparsity: + self.mask_type = mask_type + self.sparse_attn_window = sparse_attn_window + self.global_window = global_window + self.sparsity = sparsity + if group_norm: + self.norm1 = MyGroupNorm(int(group_norm), d_model, eps=layer_norm_eps, **factory_kwargs) + self.norm2 = MyGroupNorm(int(group_norm), d_model, eps=layer_norm_eps, **factory_kwargs) + + self.norm_out = None + if self.norm_first & norm_out: + self.norm_out = MyGroupNorm(num_groups=int(norm_out), num_channels=d_model) + self.gamma_1 = ( + LayerScale(d_model, init_values, True) if layer_scale else nn.Identity() + ) + self.gamma_2 = ( + LayerScale(d_model, init_values, True) if layer_scale else nn.Identity() + ) + + if sparse: + self.self_attn = MultiheadAttention( + d_model, nhead, dropout=dropout, batch_first=batch_first, + auto_sparsity=sparsity if auto_sparsity else 0, + ) + self.__setattr__("src_mask", torch.zeros(1, 1)) + self.mask_random_seed = mask_random_seed + + def forward(self, src, src_mask=None, src_key_padding_mask=None): + """ + if batch_first = False, src shape is (T, B, C) + the case where batch_first=True is not covered + """ + device = src.device + x = src + T, B, C = x.shape + if self.sparse and not self.auto_sparsity: + assert src_mask is None + src_mask = self.src_mask + if src_mask.shape[-1] != T: + src_mask = get_mask( + T, + T, + self.mask_type, + self.sparse_attn_window, + self.global_window, + self.mask_random_seed, + self.sparsity, + device, + ) + self.__setattr__("src_mask", src_mask) + + if self.norm_first: + x = x + self.gamma_1( + self._sa_block(self.norm1(x), src_mask, src_key_padding_mask) + ) + x = x + self.gamma_2(self._ff_block(self.norm2(x))) + + if self.norm_out: + x = self.norm_out(x) + else: + x = self.norm1( + x + self.gamma_1(self._sa_block(x, src_mask, src_key_padding_mask)) + ) + x = self.norm2(x + self.gamma_2(self._ff_block(x))) + + return x + + +class CrossTransformerEncoderLayer(nn.Module): + def __init__( + self, + d_model: int, + nhead: int, + dim_feedforward: int = 2048, + dropout: float = 0.1, + activation=F.relu, + layer_norm_eps: float = 1e-5, + layer_scale: bool = False, + init_values: float = 1e-4, + norm_first: bool = False, + group_norm: bool = False, + norm_out: bool = False, + sparse=False, + mask_type="diag", + mask_random_seed=42, + sparse_attn_window=500, + global_window=50, + sparsity=0.95, + auto_sparsity=None, + device=None, + dtype=None, + batch_first=False, + ): + factory_kwargs = {"device": device, "dtype": dtype} + super().__init__() + + self.sparse = sparse + self.auto_sparsity = auto_sparsity + if sparse: + if not auto_sparsity: + self.mask_type = mask_type + self.sparse_attn_window = sparse_attn_window + self.global_window = global_window + self.sparsity = sparsity + + self.cross_attn: nn.Module + self.cross_attn = nn.MultiheadAttention( + d_model, nhead, dropout=dropout, batch_first=batch_first) + # Implementation of Feedforward model + self.linear1 = nn.Linear(d_model, dim_feedforward, **factory_kwargs) + self.dropout = nn.Dropout(dropout) + self.linear2 = nn.Linear(dim_feedforward, d_model, **factory_kwargs) + + self.norm_first = norm_first + self.norm1: nn.Module + self.norm2: nn.Module + self.norm3: nn.Module + if group_norm: + self.norm1 = MyGroupNorm(int(group_norm), d_model, eps=layer_norm_eps, **factory_kwargs) + self.norm2 = MyGroupNorm(int(group_norm), d_model, eps=layer_norm_eps, **factory_kwargs) + self.norm3 = MyGroupNorm(int(group_norm), d_model, eps=layer_norm_eps, **factory_kwargs) + else: + self.norm1 = nn.LayerNorm(d_model, eps=layer_norm_eps, **factory_kwargs) + self.norm2 = nn.LayerNorm(d_model, eps=layer_norm_eps, **factory_kwargs) + self.norm3 = nn.LayerNorm(d_model, eps=layer_norm_eps, **factory_kwargs) + + self.norm_out = None + if self.norm_first & norm_out: + self.norm_out = MyGroupNorm(num_groups=int(norm_out), num_channels=d_model) + + self.gamma_1 = ( + LayerScale(d_model, init_values, True) if layer_scale else nn.Identity() + ) + self.gamma_2 = ( + LayerScale(d_model, init_values, True) if layer_scale else nn.Identity() + ) + + self.dropout1 = nn.Dropout(dropout) + self.dropout2 = nn.Dropout(dropout) + + # Legacy string support for activation function. + if isinstance(activation, str): + self.activation = self._get_activation_fn(activation) + else: + self.activation = activation + + if sparse: + self.cross_attn = MultiheadAttention( + d_model, nhead, dropout=dropout, batch_first=batch_first, + auto_sparsity=sparsity if auto_sparsity else 0) + if not auto_sparsity: + self.__setattr__("mask", torch.zeros(1, 1)) + self.mask_random_seed = mask_random_seed + + def forward(self, q, k, mask=None): + """ + Args: + q: tensor of shape (T, B, C) + k: tensor of shape (S, B, C) + mask: tensor of shape (T, S) + + """ + device = q.device + T, B, C = q.shape + S, B, C = k.shape + if self.sparse and not self.auto_sparsity: + assert mask is None + mask = self.mask + if mask.shape[-1] != S or mask.shape[-2] != T: + mask = get_mask( + S, + T, + self.mask_type, + self.sparse_attn_window, + self.global_window, + self.mask_random_seed, + self.sparsity, + device, + ) + self.__setattr__("mask", mask) + + if self.norm_first: + x = q + self.gamma_1(self._ca_block(self.norm1(q), self.norm2(k), mask)) + x = x + self.gamma_2(self._ff_block(self.norm3(x))) + if self.norm_out: + x = self.norm_out(x) + else: + x = self.norm1(q + self.gamma_1(self._ca_block(q, k, mask))) + x = self.norm2(x + self.gamma_2(self._ff_block(x))) + + return x + + # self-attention block + def _ca_block(self, q, k, attn_mask=None): + x = self.cross_attn(q, k, k, attn_mask=attn_mask, need_weights=False)[0] + return self.dropout1(x) + + # feed forward block + def _ff_block(self, x): + x = self.linear2(self.dropout(self.activation(self.linear1(x)))) + return self.dropout2(x) + + def _get_activation_fn(self, activation): + if activation == "relu": + return F.relu + elif activation == "gelu": + return F.gelu + + raise RuntimeError("activation should be relu/gelu, not {}".format(activation)) + + +# ----------------- MULTI-BLOCKS MODELS: ----------------------- + + +class CrossTransformerEncoder(nn.Module): + def __init__( + self, + dim: int, + emb: str = "sin", + hidden_scale: float = 4.0, + num_heads: int = 8, + num_layers: int = 6, + cross_first: bool = False, + dropout: float = 0.0, + max_positions: int = 1000, + norm_in: bool = True, + norm_in_group: bool = False, + group_norm: int = False, + norm_first: bool = False, + norm_out: bool = False, + max_period: float = 10000.0, + weight_decay: float = 0.0, + lr: tp.Optional[float] = None, + layer_scale: bool = False, + gelu: bool = True, + sin_random_shift: int = 0, + weight_pos_embed: float = 1.0, + cape_mean_normalize: bool = True, + cape_augment: bool = True, + cape_glob_loc_scale: list = [5000.0, 1.0, 1.4], + sparse_self_attn: bool = False, + sparse_cross_attn: bool = False, + mask_type: str = "diag", + mask_random_seed: int = 42, + sparse_attn_window: int = 500, + global_window: int = 50, + auto_sparsity: bool = False, + sparsity: float = 0.95, + ): + super().__init__() + """ + """ + assert dim % num_heads == 0 + + hidden_dim = int(dim * hidden_scale) + + self.num_layers = num_layers + # classic parity = 1 means that if idx%2 == 1 there is a + # classical encoder else there is a cross encoder + self.classic_parity = 1 if cross_first else 0 + self.emb = emb + self.max_period = max_period + self.weight_decay = weight_decay + self.weight_pos_embed = weight_pos_embed + self.sin_random_shift = sin_random_shift + if emb == "cape": + self.cape_mean_normalize = cape_mean_normalize + self.cape_augment = cape_augment + self.cape_glob_loc_scale = cape_glob_loc_scale + if emb == "scaled": + self.position_embeddings = ScaledEmbedding(max_positions, dim, scale=0.2) + + self.lr = lr + + activation: tp.Any = F.gelu if gelu else F.relu + + self.norm_in: nn.Module + self.norm_in_t: nn.Module + if norm_in: + self.norm_in = nn.LayerNorm(dim) + self.norm_in_t = nn.LayerNorm(dim) + elif norm_in_group: + self.norm_in = MyGroupNorm(int(norm_in_group), dim) + self.norm_in_t = MyGroupNorm(int(norm_in_group), dim) + else: + self.norm_in = nn.Identity() + self.norm_in_t = nn.Identity() + + # spectrogram layers + self.layers = nn.ModuleList() + # temporal layers + self.layers_t = nn.ModuleList() + + kwargs_common = { + "d_model": dim, + "nhead": num_heads, + "dim_feedforward": hidden_dim, + "dropout": dropout, + "activation": activation, + "group_norm": group_norm, + "norm_first": norm_first, + "norm_out": norm_out, + "layer_scale": layer_scale, + "mask_type": mask_type, + "mask_random_seed": mask_random_seed, + "sparse_attn_window": sparse_attn_window, + "global_window": global_window, + "sparsity": sparsity, + "auto_sparsity": auto_sparsity, + "batch_first": True, + } + + kwargs_classic_encoder = dict(kwargs_common) + kwargs_classic_encoder.update({ + "sparse": sparse_self_attn, + }) + kwargs_cross_encoder = dict(kwargs_common) + kwargs_cross_encoder.update({ + "sparse": sparse_cross_attn, + }) + + for idx in range(num_layers): + if idx % 2 == self.classic_parity: + + self.layers.append(MyTransformerEncoderLayer(**kwargs_classic_encoder)) + self.layers_t.append( + MyTransformerEncoderLayer(**kwargs_classic_encoder) + ) + + else: + self.layers.append(CrossTransformerEncoderLayer(**kwargs_cross_encoder)) + + self.layers_t.append( + CrossTransformerEncoderLayer(**kwargs_cross_encoder) + ) + + def forward(self, x, xt): + B, C, Fr, T1 = x.shape + pos_emb_2d = create_2d_sin_embedding( + C, Fr, T1, x.device, self.max_period + ) # (1, C, Fr, T1) + pos_emb_2d = rearrange(pos_emb_2d, "b c fr t1 -> b (t1 fr) c") + x = rearrange(x, "b c fr t1 -> b (t1 fr) c") + x = self.norm_in(x) + x = x + self.weight_pos_embed * pos_emb_2d + + B, C, T2 = xt.shape + xt = rearrange(xt, "b c t2 -> b t2 c") # now T2, B, C + pos_emb = self._get_pos_embedding(T2, B, C, x.device) + pos_emb = rearrange(pos_emb, "t2 b c -> b t2 c") + xt = self.norm_in_t(xt) + xt = xt + self.weight_pos_embed * pos_emb + + for idx in range(self.num_layers): + if idx % 2 == self.classic_parity: + x = self.layers[idx](x) + xt = self.layers_t[idx](xt) + else: + old_x = x + x = self.layers[idx](x, xt) + xt = self.layers_t[idx](xt, old_x) + + x = rearrange(x, "b (t1 fr) c -> b c fr t1", t1=T1) + xt = rearrange(xt, "b t2 c -> b c t2") + return x, xt + + def _get_pos_embedding(self, T, B, C, device): + if self.emb == "sin": + shift = random.randrange(self.sin_random_shift + 1) + pos_emb = create_sin_embedding( + T, C, shift=shift, device=device, max_period=self.max_period + ) + elif self.emb == "cape": + if self.training: + pos_emb = create_sin_embedding_cape( + T, + C, + B, + device=device, + max_period=self.max_period, + mean_normalize=self.cape_mean_normalize, + augment=self.cape_augment, + max_global_shift=self.cape_glob_loc_scale[0], + max_local_shift=self.cape_glob_loc_scale[1], + max_scale=self.cape_glob_loc_scale[2], + ) + else: + pos_emb = create_sin_embedding_cape( + T, + C, + B, + device=device, + max_period=self.max_period, + mean_normalize=self.cape_mean_normalize, + augment=False, + ) + + elif self.emb == "scaled": + pos = torch.arange(T, device=device) + pos_emb = self.position_embeddings(pos)[:, None] + + return pos_emb + + def make_optim_group(self): + group = {"params": list(self.parameters()), "weight_decay": self.weight_decay} + if self.lr is not None: + group["lr"] = self.lr + return group + + +# Attention Modules + + +class MultiheadAttention(nn.Module): + def __init__( + self, + embed_dim, + num_heads, + dropout=0.0, + bias=True, + add_bias_kv=False, + add_zero_attn=False, + kdim=None, + vdim=None, + batch_first=False, + auto_sparsity=None, + ): + super().__init__() + assert auto_sparsity is not None, "sanity check" + self.num_heads = num_heads + self.q = torch.nn.Linear(embed_dim, embed_dim, bias=bias) + self.k = torch.nn.Linear(embed_dim, embed_dim, bias=bias) + self.v = torch.nn.Linear(embed_dim, embed_dim, bias=bias) + self.attn_drop = torch.nn.Dropout(dropout) + self.proj = torch.nn.Linear(embed_dim, embed_dim, bias) + self.proj_drop = torch.nn.Dropout(dropout) + self.batch_first = batch_first + self.auto_sparsity = auto_sparsity + + def forward( + self, + query, + key, + value, + key_padding_mask=None, + need_weights=True, + attn_mask=None, + average_attn_weights=True, + ): + + if not self.batch_first: # N, B, C + query = query.permute(1, 0, 2) # B, N_q, C + key = key.permute(1, 0, 2) # B, N_k, C + value = value.permute(1, 0, 2) # B, N_k, C + B, N_q, C = query.shape + B, N_k, C = key.shape + + q = ( + self.q(query) + .reshape(B, N_q, self.num_heads, C // self.num_heads) + .permute(0, 2, 1, 3) + ) + q = q.flatten(0, 1) + k = ( + self.k(key) + .reshape(B, N_k, self.num_heads, C // self.num_heads) + .permute(0, 2, 1, 3) + ) + k = k.flatten(0, 1) + v = ( + self.v(value) + .reshape(B, N_k, self.num_heads, C // self.num_heads) + .permute(0, 2, 1, 3) + ) + v = v.flatten(0, 1) + + if self.auto_sparsity: + assert attn_mask is None + x = dynamic_sparse_attention(q, k, v, sparsity=self.auto_sparsity) + else: + x = scaled_dot_product_attention(q, k, v, attn_mask, dropout=self.attn_drop) + x = x.reshape(B, self.num_heads, N_q, C // self.num_heads) + + x = x.transpose(1, 2).reshape(B, N_q, C) + x = self.proj(x) + x = self.proj_drop(x) + if not self.batch_first: + x = x.permute(1, 0, 2) + return x, None + + +def scaled_query_key_softmax(q, k, att_mask): + from xformers.ops import masked_matmul + q = q / (k.size(-1)) ** 0.5 + att = masked_matmul(q, k.transpose(-2, -1), att_mask) + att = torch.nn.functional.softmax(att, -1) + return att + + +def scaled_dot_product_attention(q, k, v, att_mask, dropout): + att = scaled_query_key_softmax(q, k, att_mask=att_mask) + att = dropout(att) + y = att @ v + return y + + +def _compute_buckets(x, R): + qq = torch.einsum('btf,bfhi->bhti', x, R) + qq = torch.cat([qq, -qq], dim=-1) + buckets = qq.argmax(dim=-1) + + return buckets.permute(0, 2, 1).byte().contiguous() + + +def dynamic_sparse_attention(query, key, value, sparsity, infer_sparsity=True, attn_bias=None): + # assert False, "The code for the custom sparse kernel is not ready for release yet." + from xformers.ops import find_locations, sparse_memory_efficient_attention + n_hashes = 32 + proj_size = 4 + query, key, value = [x.contiguous() for x in [query, key, value]] + with torch.no_grad(): + R = torch.randn(1, query.shape[-1], n_hashes, proj_size // 2, device=query.device) + bucket_query = _compute_buckets(query, R) + bucket_key = _compute_buckets(key, R) + row_offsets, column_indices = find_locations( + bucket_query, bucket_key, sparsity, infer_sparsity) + return sparse_memory_efficient_attention( + query, key, value, row_offsets, column_indices, attn_bias) diff --git a/demucs/utils.py b/demucs/utils.py new file mode 100644 index 0000000..94bd323 --- /dev/null +++ b/demucs/utils.py @@ -0,0 +1,502 @@ +# Copyright (c) Facebook, Inc. and its affiliates. +# All rights reserved. +# +# This source code is licensed under the license found in the +# LICENSE file in the root directory of this source tree. + +from collections import defaultdict +from contextlib import contextmanager +import math +import os +import tempfile +import typing as tp + +import errno +import functools +import hashlib +import inspect +import io +import os +import random +import socket +import tempfile +import warnings +import zlib +import tkinter as tk + +from diffq import UniformQuantizer, DiffQuantizer +import torch as th +import tqdm +from torch import distributed +from torch.nn import functional as F + +import torch + +def unfold(a, kernel_size, stride): + """Given input of size [*OT, T], output Tensor of size [*OT, F, K] + with K the kernel size, by extracting frames with the given stride. + + This will pad the input so that `F = ceil(T / K)`. + + see https://github.com/pytorch/pytorch/issues/60466 + """ + *shape, length = a.shape + n_frames = math.ceil(length / stride) + tgt_length = (n_frames - 1) * stride + kernel_size + a = F.pad(a, (0, tgt_length - length)) + strides = list(a.stride()) + assert strides[-1] == 1, 'data should be contiguous' + strides = strides[:-1] + [stride, 1] + return a.as_strided([*shape, n_frames, kernel_size], strides) + + +def center_trim(tensor: torch.Tensor, reference: tp.Union[torch.Tensor, int]): + """ + Center trim `tensor` with respect to `reference`, along the last dimension. + `reference` can also be a number, representing the length to trim to. + If the size difference != 0 mod 2, the extra sample is removed on the right side. + """ + ref_size: int + if isinstance(reference, torch.Tensor): + ref_size = reference.size(-1) + else: + ref_size = reference + delta = tensor.size(-1) - ref_size + if delta < 0: + raise ValueError("tensor must be larger than reference. " f"Delta is {delta}.") + if delta: + tensor = tensor[..., delta // 2:-(delta - delta // 2)] + return tensor + + +def pull_metric(history: tp.List[dict], name: str): + out = [] + for metrics in history: + metric = metrics + for part in name.split("."): + metric = metric[part] + out.append(metric) + return out + + +def EMA(beta: float = 1): + """ + Exponential Moving Average callback. + Returns a single function that can be called to repeatidly update the EMA + with a dict of metrics. The callback will return + the new averaged dict of metrics. + + Note that for `beta=1`, this is just plain averaging. + """ + fix: tp.Dict[str, float] = defaultdict(float) + total: tp.Dict[str, float] = defaultdict(float) + + def _update(metrics: dict, weight: float = 1) -> dict: + nonlocal total, fix + for key, value in metrics.items(): + total[key] = total[key] * beta + weight * float(value) + fix[key] = fix[key] * beta + weight + return {key: tot / fix[key] for key, tot in total.items()} + return _update + + +def sizeof_fmt(num: float, suffix: str = 'B'): + """ + Given `num` bytes, return human readable size. + Taken from https://stackoverflow.com/a/1094933 + """ + for unit in ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi']: + if abs(num) < 1024.0: + return "%3.1f%s%s" % (num, unit, suffix) + num /= 1024.0 + return "%.1f%s%s" % (num, 'Yi', suffix) + + +@contextmanager +def temp_filenames(count: int, delete=True): + names = [] + try: + for _ in range(count): + names.append(tempfile.NamedTemporaryFile(delete=False).name) + yield names + finally: + if delete: + for name in names: + os.unlink(name) + +def average_metric(metric, count=1.): + """ + Average `metric` which should be a float across all hosts. `count` should be + the weight for this particular host (i.e. number of examples). + """ + metric = th.tensor([count, count * metric], dtype=th.float32, device='cuda') + distributed.all_reduce(metric, op=distributed.ReduceOp.SUM) + return metric[1].item() / metric[0].item() + + +def free_port(host='', low=20000, high=40000): + """ + Return a port number that is most likely free. + This could suffer from a race condition although + it should be quite rare. + """ + sock = socket.socket() + while True: + port = random.randint(low, high) + try: + sock.bind((host, port)) + except OSError as error: + if error.errno == errno.EADDRINUSE: + continue + raise + return port + + +def sizeof_fmt(num, suffix='B'): + """ + Given `num` bytes, return human readable size. + Taken from https://stackoverflow.com/a/1094933 + """ + for unit in ['', 'Ki', 'Mi', 'Gi', 'Ti', 'Pi', 'Ei', 'Zi']: + if abs(num) < 1024.0: + return "%3.1f%s%s" % (num, unit, suffix) + num /= 1024.0 + return "%.1f%s%s" % (num, 'Yi', suffix) + + +def human_seconds(seconds, display='.2f'): + """ + Given `seconds` seconds, return human readable duration. + """ + value = seconds * 1e6 + ratios = [1e3, 1e3, 60, 60, 24] + names = ['us', 'ms', 's', 'min', 'hrs', 'days'] + last = names.pop(0) + for name, ratio in zip(names, ratios): + if value / ratio < 0.3: + break + value /= ratio + last = name + return f"{format(value, display)} {last}" + + +class TensorChunk: + def __init__(self, tensor, offset=0, length=None): + total_length = tensor.shape[-1] + assert offset >= 0 + assert offset < total_length + + if length is None: + length = total_length - offset + else: + length = min(total_length - offset, length) + + self.tensor = tensor + self.offset = offset + self.length = length + self.device = tensor.device + + @property + def shape(self): + shape = list(self.tensor.shape) + shape[-1] = self.length + return shape + + def padded(self, target_length): + delta = target_length - self.length + total_length = self.tensor.shape[-1] + assert delta >= 0 + + start = self.offset - delta // 2 + end = start + target_length + + correct_start = max(0, start) + correct_end = min(total_length, end) + + pad_left = correct_start - start + pad_right = end - correct_end + + out = F.pad(self.tensor[..., correct_start:correct_end], (pad_left, pad_right)) + assert out.shape[-1] == target_length + return out + + +def tensor_chunk(tensor_or_chunk): + if isinstance(tensor_or_chunk, TensorChunk): + return tensor_or_chunk + else: + assert isinstance(tensor_or_chunk, th.Tensor) + return TensorChunk(tensor_or_chunk) + + +def apply_model_v1(model, mix, shifts=None, split=False, progress=False, set_progress_bar=None): + """ + Apply model to a given mixture. + + Args: + shifts (int): if > 0, will shift in time `mix` by a random amount between 0 and 0.5 sec + and apply the oppositve shift to the output. This is repeated `shifts` time and + all predictions are averaged. This effectively makes the model time equivariant + and improves SDR by up to 0.2 points. + split (bool): if True, the input will be broken down in 8 seconds extracts + and predictions will be performed individually on each and concatenated. + Useful for model with large memory footprint like Tasnet. + progress (bool): if True, show a progress bar (requires split=True) + """ + + channels, length = mix.size() + device = mix.device + progress_value = 0 + + if split: + out = th.zeros(4, channels, length, device=device) + shift = model.samplerate * 10 + offsets = range(0, length, shift) + scale = 10 + if progress: + offsets = tqdm.tqdm(offsets, unit_scale=scale, ncols=120, unit='seconds') + for offset in offsets: + chunk = mix[..., offset:offset + shift] + if set_progress_bar: + progress_value += 1 + set_progress_bar(0.1, (0.8/len(offsets)*progress_value)) + chunk_out = apply_model_v1(model, chunk, shifts=shifts, set_progress_bar=set_progress_bar) + else: + chunk_out = apply_model_v1(model, chunk, shifts=shifts) + out[..., offset:offset + shift] = chunk_out + offset += shift + return out + elif shifts: + max_shift = int(model.samplerate / 2) + mix = F.pad(mix, (max_shift, max_shift)) + offsets = list(range(max_shift)) + random.shuffle(offsets) + out = 0 + for offset in offsets[:shifts]: + shifted = mix[..., offset:offset + length + max_shift] + if set_progress_bar: + shifted_out = apply_model_v1(model, shifted, set_progress_bar=set_progress_bar) + else: + shifted_out = apply_model_v1(model, shifted) + out += shifted_out[..., max_shift - offset:max_shift - offset + length] + out /= shifts + return out + else: + valid_length = model.valid_length(length) + delta = valid_length - length + padded = F.pad(mix, (delta // 2, delta - delta // 2)) + with th.no_grad(): + out = model(padded.unsqueeze(0))[0] + return center_trim(out, mix) + +def apply_model_v2(model, mix, shifts=None, split=False, + overlap=0.25, transition_power=1., progress=False, set_progress_bar=None): + """ + Apply model to a given mixture. + + Args: + shifts (int): if > 0, will shift in time `mix` by a random amount between 0 and 0.5 sec + and apply the oppositve shift to the output. This is repeated `shifts` time and + all predictions are averaged. This effectively makes the model time equivariant + and improves SDR by up to 0.2 points. + split (bool): if True, the input will be broken down in 8 seconds extracts + and predictions will be performed individually on each and concatenated. + Useful for model with large memory footprint like Tasnet. + progress (bool): if True, show a progress bar (requires split=True) + """ + + assert transition_power >= 1, "transition_power < 1 leads to weird behavior." + device = mix.device + channels, length = mix.shape + progress_value = 0 + + if split: + out = th.zeros(len(model.sources), channels, length, device=device) + sum_weight = th.zeros(length, device=device) + segment = model.segment_length + stride = int((1 - overlap) * segment) + offsets = range(0, length, stride) + scale = stride / model.samplerate + if progress: + offsets = tqdm.tqdm(offsets, unit_scale=scale, ncols=120, unit='seconds') + # We start from a triangle shaped weight, with maximal weight in the middle + # of the segment. Then we normalize and take to the power `transition_power`. + # Large values of transition power will lead to sharper transitions. + weight = th.cat([th.arange(1, segment // 2 + 1), + th.arange(segment - segment // 2, 0, -1)]).to(device) + assert len(weight) == segment + # If the overlap < 50%, this will translate to linear transition when + # transition_power is 1. + weight = (weight / weight.max())**transition_power + for offset in offsets: + chunk = TensorChunk(mix, offset, segment) + if set_progress_bar: + progress_value += 1 + set_progress_bar(0.1, (0.8/len(offsets)*progress_value)) + chunk_out = apply_model_v2(model, chunk, shifts=shifts, set_progress_bar=set_progress_bar) + else: + chunk_out = apply_model_v2(model, chunk, shifts=shifts) + chunk_length = chunk_out.shape[-1] + out[..., offset:offset + segment] += weight[:chunk_length] * chunk_out + sum_weight[offset:offset + segment] += weight[:chunk_length] + offset += segment + assert sum_weight.min() > 0 + out /= sum_weight + return out + elif shifts: + max_shift = int(0.5 * model.samplerate) + mix = tensor_chunk(mix) + padded_mix = mix.padded(length + 2 * max_shift) + out = 0 + for _ in range(shifts): + offset = random.randint(0, max_shift) + shifted = TensorChunk(padded_mix, offset, length + max_shift - offset) + + if set_progress_bar: + progress_value += 1 + shifted_out = apply_model_v2(model, shifted, set_progress_bar=set_progress_bar) + else: + shifted_out = apply_model_v2(model, shifted) + out += shifted_out[..., max_shift - offset:] + out /= shifts + return out + else: + valid_length = model.valid_length(length) + mix = tensor_chunk(mix) + padded_mix = mix.padded(valid_length) + with th.no_grad(): + out = model(padded_mix.unsqueeze(0))[0] + return center_trim(out, length) + + +@contextmanager +def temp_filenames(count, delete=True): + names = [] + try: + for _ in range(count): + names.append(tempfile.NamedTemporaryFile(delete=False).name) + yield names + finally: + if delete: + for name in names: + os.unlink(name) + + +def get_quantizer(model, args, optimizer=None): + quantizer = None + if args.diffq: + quantizer = DiffQuantizer( + model, min_size=args.q_min_size, group_size=8) + if optimizer is not None: + quantizer.setup_optimizer(optimizer) + elif args.qat: + quantizer = UniformQuantizer( + model, bits=args.qat, min_size=args.q_min_size) + return quantizer + + +def load_model(path, strict=False): + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + load_from = path + package = th.load(load_from, 'cpu') + + klass = package["klass"] + args = package["args"] + kwargs = package["kwargs"] + + if strict: + model = klass(*args, **kwargs) + else: + sig = inspect.signature(klass) + for key in list(kwargs): + if key not in sig.parameters: + warnings.warn("Dropping inexistant parameter " + key) + del kwargs[key] + model = klass(*args, **kwargs) + + state = package["state"] + training_args = package["training_args"] + quantizer = get_quantizer(model, training_args) + + set_state(model, quantizer, state) + return model + + +def get_state(model, quantizer): + if quantizer is None: + state = {k: p.data.to('cpu') for k, p in model.state_dict().items()} + else: + state = quantizer.get_quantized_state() + buf = io.BytesIO() + th.save(state, buf) + state = {'compressed': zlib.compress(buf.getvalue())} + return state + + +def set_state(model, quantizer, state): + if quantizer is None: + model.load_state_dict(state) + else: + buf = io.BytesIO(zlib.decompress(state["compressed"])) + state = th.load(buf, "cpu") + quantizer.restore_quantized_state(state) + + return state + + +def save_state(state, path): + buf = io.BytesIO() + th.save(state, buf) + sig = hashlib.sha256(buf.getvalue()).hexdigest()[:8] + + path = path.parent / (path.stem + "-" + sig + path.suffix) + path.write_bytes(buf.getvalue()) + + +def save_model(model, quantizer, training_args, path): + args, kwargs = model._init_args_kwargs + klass = model.__class__ + + state = get_state(model, quantizer) + + save_to = path + package = { + 'klass': klass, + 'args': args, + 'kwargs': kwargs, + 'state': state, + 'training_args': training_args, + } + th.save(package, save_to) + + +def capture_init(init): + @functools.wraps(init) + def __init__(self, *args, **kwargs): + self._init_args_kwargs = (args, kwargs) + init(self, *args, **kwargs) + + return __init__ + +class DummyPoolExecutor: + class DummyResult: + def __init__(self, func, *args, **kwargs): + self.func = func + self.args = args + self.kwargs = kwargs + + def result(self): + return self.func(*self.args, **self.kwargs) + + def __init__(self, workers=0): + pass + + def submit(self, func, *args, **kwargs): + return DummyPoolExecutor.DummyResult(func, *args, **kwargs) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_value, exc_tb): + return diff --git a/gui_data/app_size_values.py b/gui_data/app_size_values.py new file mode 100644 index 0000000..85c3ad4 --- /dev/null +++ b/gui_data/app_size_values.py @@ -0,0 +1,371 @@ +import os +import platform +from screeninfo import get_monitors +from PIL import Image +from PIL import ImageTk + +OPERATING_SYSTEM = platform.system() + +def get_screen_height(): + monitors = get_monitors() + if len(monitors) == 0: + raise Exception("Failed to get screen height") + return monitors[0].height, monitors[0].width + +def scale_values(value): + if not SCALE_WIN_SIZE == 1920: + ratio = SCALE_WIN_SIZE/1920 # Approx. 1.3333 for 2K + return value * ratio + else: + return value + +SCREEN_HIGHT, SCREEN_WIDTH = get_screen_height() +SCALE_WIN_SIZE = 1920 + +SCREEN_SIZE_VALUES = { + "normal": { + "credits_img":(100, 100), + ## App Size + 'IMAGE_HEIGHT': 140, + 'FILEPATHS_HEIGHT': 75, + 'OPTIONS_HEIGHT': 262, + 'CONVERSIONBUTTON_HEIGHT': 30, + 'COMMAND_HEIGHT': 141, + 'PROGRESS_HEIGHT': 25, + 'PADDING': 7, + 'WIDTH': 680 + }, + "small": { + "credits_img":(50, 50), + 'IMAGE_HEIGHT': 140, + 'FILEPATHS_HEIGHT': 75, + 'OPTIONS_HEIGHT': 262, + 'CONVERSIONBUTTON_HEIGHT': 30, + 'COMMAND_HEIGHT': 80, + 'PROGRESS_HEIGHT': 25, + 'PADDING': 5, + 'WIDTH': 680 + }, + "medium": { + "credits_img":(50, 50), + ## App Size + 'IMAGE_HEIGHT': 140, + 'FILEPATHS_HEIGHT': 75, + 'OPTIONS_HEIGHT': 262, + 'CONVERSIONBUTTON_HEIGHT': 30, + 'COMMAND_HEIGHT': 115, + 'PROGRESS_HEIGHT': 25, + 'PADDING': 7, + 'WIDTH': 680 + }, +} + +try: + if SCREEN_HIGHT >= 900: + determined_size = SCREEN_SIZE_VALUES["normal"] + elif SCREEN_HIGHT <= 720: + determined_size = SCREEN_SIZE_VALUES["small"] + else: + determined_size = SCREEN_SIZE_VALUES["medium"] +except: + determined_size = SCREEN_SIZE_VALUES["normal"] + +image_scale_1, image_scale_2 = 20, 30 + +class ImagePath(): + def __init__(self, base_path): + img_path = os.path.join(base_path, 'gui_data', 'img') + credits_path = os.path.join(img_path, 'credits.png') + donate_path = os.path.join(img_path, 'donate.png') + download_path = os.path.join(img_path, 'download.png') + efile_path = os.path.join(img_path, 'File.png') + help_path = os.path.join(img_path, 'help.png') + key_path = os.path.join(img_path, 'key.png') + stop_path = os.path.join(img_path, 'stop.png') + play_path = os.path.join(img_path, 'play.png') + pause_path = os.path.join(img_path, 'pause.png') + up_img_path = os.path.join(img_path, "up.png") + down_img_path = os.path.join(img_path, "down.png") + left_img_path = os.path.join(img_path, "left.png") + right_img_path = os.path.join(img_path, "right.png") + clear_img_path = os.path.join(img_path, "clear.png") + copy_img_path = os.path.join(img_path, "copy.png") + self.banner_path = os.path.join(img_path, 'UVR-banner.png') + + self.efile_img = self.open_image(path=efile_path,size=(image_scale_1, image_scale_1)) + self.stop_img = self.open_image(path=stop_path, size=(image_scale_1, image_scale_1)) + self.play_img = self.open_image(path=play_path, size=(image_scale_1, image_scale_1)) + self.pause_img = self.open_image(path=pause_path, size=(image_scale_1, image_scale_1)) + self.help_img = self.open_image(path=help_path, size=(image_scale_1, image_scale_1)) + self.download_img = self.open_image(path=download_path, size=(image_scale_2, image_scale_2)) + self.donate_img = self.open_image(path=donate_path, size=(image_scale_2, image_scale_2)) + self.key_img = self.open_image(path=key_path, size=(image_scale_2, image_scale_2)) + self.up_img = self.open_image(path=up_img_path, size=(image_scale_2, image_scale_2)) + self.down_img = self.open_image(path=down_img_path, size=(image_scale_2, image_scale_2)) + self.left_img = self.open_image(path=left_img_path, size=(image_scale_2, image_scale_2)) + self.right_img = self.open_image(path=right_img_path, size=(image_scale_2, image_scale_2)) + self.clear_img = self.open_image(path=clear_img_path, size=(image_scale_2, image_scale_2)) + self.copy_img = self.open_image(path=copy_img_path, size=(image_scale_2, image_scale_2)) + self.credits_img = self.open_image(path=credits_path, size=determined_size["credits_img"]) + + def open_image(self, path: str, size: tuple = None, keep_aspect: bool = True, rotate: int = 0) -> ImageTk.PhotoImage: + """ + Open the image on the path and apply given settings\n + Paramaters: + path(str): + Absolute path of the image + size(tuple): + first value - width + second value - height + keep_aspect(bool): + keep aspect ratio of image and resize + to maximum possible width and height + (maxima are given by size) + rotate(int): + clockwise rotation of image + Returns(ImageTk.PhotoImage): + Image of path + """ + img = Image.open(path).convert(mode='RGBA') + ratio = img.height/img.width + img = img.rotate(angle=-rotate) + if size is not None: + size = (int(size[0]), int(size[1])) + if keep_aspect: + img = img.resize((size[0], int(size[0] * ratio)), Image.ANTIALIAS) + else: + img = img.resize(size, Image.ANTIALIAS) + + return ImageTk.PhotoImage(img) + +#All Sizes Below Calibrated to 1080p! + +if OPERATING_SYSTEM=="Darwin": + FONT_SIZE_F1 = 13 + FONT_SIZE_F2 = 11 + FONT_SIZE_F3 = 12 + FONT_SIZE_0 = 9 + FONT_SIZE_1 = 11 + FONT_SIZE_2 = 12 + FONT_SIZE_3 = 13 + FONT_SIZE_4 = 14 + FONT_SIZE_5 = 15 + FONT_SIZE_6 = 17 + HELP_HINT_CHECKBOX_WIDTH = 13 + MDX_CHECKBOXS_WIDTH = 14 + VR_CHECKBOXS_WIDTH = 14 + ENSEMBLE_CHECKBOXS_WIDTH = 18 + DEMUCS_CHECKBOXS_WIDTH = 14 + DEMUCS_PRE_CHECKBOXS_WIDTH = 20 + GEN_SETTINGS_WIDTH = 17 + MENU_COMBOBOX_WIDTH = 16 + MENU_OPTION_WIDTH = 12 + READ_ONLY_COMBO_WIDTH = 35 + SETTINGS_BUT_WIDTH = 19 + VR_BUT_WIDTH = 16 + SET_MENUS_CHECK_WIDTH = 12 + COMBO_WIDTH = 14 + SET_VOC_SPLIT_CHECK_WIDTH = 21 +elif OPERATING_SYSTEM=="Linux": + HELP_HINT_CHECKBOX_WIDTH = 15 + MDX_CHECKBOXS_WIDTH = 16 + VR_CHECKBOXS_WIDTH = 16 + ENSEMBLE_CHECKBOXS_WIDTH = 20 + DEMUCS_CHECKBOXS_WIDTH = 16 + DEMUCS_PRE_CHECKBOXS_WIDTH = 24 + GEN_SETTINGS_WIDTH = 20 + MENU_COMBOBOX_WIDTH = 18 + MENU_OPTION_WIDTH = 12 + READ_ONLY_COMBO_WIDTH = 40 + SETTINGS_BUT_WIDTH = 23 + VR_BUT_WIDTH = 18 + SET_MENUS_CHECK_WIDTH = 13 + COMBO_WIDTH = 16 + SET_VOC_SPLIT_CHECK_WIDTH = 25 + FONT_SIZE_F1 = 10 + FONT_SIZE_F2 = 8 + FONT_SIZE_F3 = 9 + FONT_SIZE_0 = 7 + FONT_SIZE_1 = 8 + FONT_SIZE_2 = 9 + FONT_SIZE_3 = 10 + FONT_SIZE_4 = 11 + FONT_SIZE_5 = 13 + FONT_SIZE_6 = 15 +elif OPERATING_SYSTEM=="Windows": + HELP_HINT_CHECKBOX_WIDTH = 15 + MDX_CHECKBOXS_WIDTH = 14 + VR_CHECKBOXS_WIDTH = 14 + ENSEMBLE_CHECKBOXS_WIDTH = 20 + DEMUCS_CHECKBOXS_WIDTH = 14 + DEMUCS_PRE_CHECKBOXS_WIDTH = 20 + GEN_SETTINGS_WIDTH = 18 + MENU_COMBOBOX_WIDTH = 16 + MENU_OPTION_WIDTH = 12 + READ_ONLY_COMBO_WIDTH = 35 + SETTINGS_BUT_WIDTH = 20 + VR_BUT_WIDTH = 16 + SET_MENUS_CHECK_WIDTH = 13 + COMBO_WIDTH = 14 + SET_VOC_SPLIT_CHECK_WIDTH = 23 + FONT_SIZE_F1 = 10 + FONT_SIZE_F2 = 8 + FONT_SIZE_F3 = 9 + FONT_SIZE_0 = 7 + FONT_SIZE_1 = 8 + FONT_SIZE_2 = 9 + FONT_SIZE_3 = 10 + FONT_SIZE_4 = 11 + FONT_SIZE_5 = 13 + FONT_SIZE_6 = 15 + +#Main Size Values: +IMAGE_HEIGHT = determined_size["IMAGE_HEIGHT"] +FILEPATHS_HEIGHT = determined_size["FILEPATHS_HEIGHT"] +OPTIONS_HEIGHT = determined_size["OPTIONS_HEIGHT"] +CONVERSIONBUTTON_HEIGHT = determined_size["CONVERSIONBUTTON_HEIGHT"] +COMMAND_HEIGHT = determined_size["COMMAND_HEIGHT"] +PROGRESS_HEIGHT = determined_size["PROGRESS_HEIGHT"] +PADDING = determined_size["PADDING"] +WIDTH = determined_size["WIDTH"] + +# IMAGE_HEIGHT = 140 +# FILEPATHS_HEIGHT = 75 +# OPTIONS_HEIGHT = 262 +# CONVERSIONBUTTON_HEIGHT = 30 +# COMMAND_HEIGHT = 141 +# PROGRESS_HEIGHT = 25 +# PADDING = 7 +# WIDTH = 680 + +MENU_PADDING_1 = 3 +MENU_PADDING_2 = 10 +MENU_PADDING_3 = 15 +MENU_PADDING_4 = 3 + +#Main Frame Sizes +X_CONVERSION_BUTTON_1080P = 50 +WIDTH_CONVERSION_BUTTON_1080P = -100 +HEIGHT_GENERIC_BUTTON_1080P = 35 +X_STOP_BUTTON_1080P = -10 - 35 +X_SETTINGS_BUTTON_1080P = -670 +X_PROGRESSBAR_1080P = 25 +WIDTH_PROGRESSBAR_1080P = -50 +X_CONSOLE_FRAME_1080P = 15 +WIDTH_CONSOLE_FRAME_1080P = -30 +HO_S = 7 + +#File Frame Sizes +FILEPATHS_FRAME_X = 10 +FILEPATHS_FRAME_Y = 155 +FILEPATHS_FRAME_WIDTH = -20 +MUSICFILE_BUTTON_X = 0 +MUSICFILE_BUTTON_Y = 5 +MUSICFILE_BUTTON_WIDTH = 0 +MUSICFILE_BUTTON_HEIGHT = -5 +MUSICFILE_ENTRY_X = 7.5 +MUSICFILE_ENTRY_WIDTH = -50 +MUSICFILE_ENTRY_HEIGHT = -5 +MUSICFILE_OPEN_X = -45 +MUSICFILE_OPEN_Y = 160 +MUSICFILE_OPEN_WIDTH = 35 +MUSICFILE_OPEN_HEIGHT = 33 +SAVETO_BUTTON_X = 0 +SAVETO_BUTTON_Y = 5 +SAVETO_BUTTON_WIDTH = 0 +SAVETO_BUTTON_HEIGHT = -5 +SAVETO_ENTRY_X = 7.5 +OPEN_BUTTON_X = 427.1 +OPEN_BUTTON_WIDTH = -427.4 +SAVETO_ENTRY_WIDTH = -50 +SAVETO_ENTRY_HEIGHT = -5 +SAVETO_OPEN_X = -45 +SAVETO_OPEN_Y = 197.5 +SAVETO_OPEN_WIDTH = 35 +SAVETO_OPEN_HEIGHT = 32 + +#Main Option menu +OPTIONS_FRAME_X = 10 +OPTIONS_FRAME_Y = 250 +OPTIONS_FRAME_WIDTH = -20 +FILEONE_LABEL_X = -28 +FILEONE_LABEL_WIDTH = -38 +FILETWO_LABEL_X = -32 +FILETWO_LABEL_WIDTH = -20 +TIME_WINDOW_LABEL_X = -43 +TIME_WINDOW_LABEL_WIDTH = 0 +INTRO_ANALYSIS_LABEL_X = -83 +INTRO_ANALYSIS_LABEL_WIDTH = -50 +INTRO_ANALYSIS_OPTION_X = -68 +DB_ANALYSIS_LABEL_X = 62 +DB_ANALYSIS_LABEL_WIDTH = -34 +DB_ANALYSIS_OPTION_X = 86 +WAV_TYPE_SET_LABEL_X = -43 +WAV_TYPE_SET_LABEL_WIDTH = 0 +ENTRY_WIDTH = 222 + +# Constants for the ensemble_listbox_Frame +ENSEMBLE_LISTBOX_FRAME_X = -25 +ENSEMBLE_LISTBOX_FRAME_Y = -20 +ENSEMBLE_LISTBOX_FRAME_WIDTH = 0 +ENSEMBLE_LISTBOX_FRAME_HEIGHT = 67 + +# Constants for the ensemble_listbox_scroll +ENSEMBLE_LISTBOX_SCROLL_X = 195 +ENSEMBLE_LISTBOX_SCROLL_Y = -20 +ENSEMBLE_LISTBOX_SCROLL_WIDTH = -48 +ENSEMBLE_LISTBOX_SCROLL_HEIGHT = 69 + +# Constants for Radio Buttons +RADIOBUTTON_X_WAV = 457 +RADIOBUTTON_X_FLAC = 300 +RADIOBUTTON_X_MP3 = 143 +RADIOBUTTON_Y = -5 +RADIOBUTTON_WIDTH = 0 +RADIOBUTTON_HEIGHT = 6 +MAIN_ROW_Y_1 = -15 +MAIN_ROW_Y_2 = -17 +MAIN_ROW_X_1 = -4 +MAIN_ROW_X_2 = 21 +MAIN_ROW_2_Y_1 = -15 +MAIN_ROW_2_Y_2 = -17 +MAIN_ROW_2_X_1 = -28 +MAIN_ROW_2_X_2 = 1 +LOW_MENU_Y_1 = 18 +LOW_MENU_Y_2 = 16 +SUB_ENT_ROW_X = -2 +MAIN_ROW_WIDTH = -53 +MAIN_ROW_ALIGN_WIDTH = -86 +CHECK_BOX_Y = 0 +CHECK_BOX_X = 20 +CHECK_BOX_WIDTH = -49 +CHECK_BOX_HEIGHT = 2 +LEFT_ROW_WIDTH = -10 +LABEL_HEIGHT = -5 +OPTION_HEIGHT = 8 +LABEL_X_OFFSET = -28 +LABEL_WIDTH = -38 +ENTRY_WIDTH = 179.5 +ENTRY_OPEN_BUTT_WIDTH = -185 +ENTRY_OPEN_BUTT_X_OFF = 405 +UPDATE_LABEL_WIDTH = 35 if OPERATING_SYSTEM == 'Linux' else 32 + +HEIGHT_CONSOLE_FRAME_1080P = COMMAND_HEIGHT + HO_S +LOW_MENU_Y = LOW_MENU_Y_1, LOW_MENU_Y_2 +MAIN_ROW_Y = MAIN_ROW_Y_1, MAIN_ROW_Y_2 +MAIN_ROW_X = MAIN_ROW_X_1, MAIN_ROW_X_2 +MAIN_ROW_2_Y = MAIN_ROW_2_Y_1, MAIN_ROW_2_Y_2 +MAIN_ROW_2_X = MAIN_ROW_2_X_1, MAIN_ROW_2_X_2 + +LABEL_Y = MAIN_ROW_Y[0] +ENTRY_Y = MAIN_ROW_Y[1] + +BUTTON_Y_1080P = IMAGE_HEIGHT + FILEPATHS_HEIGHT + OPTIONS_HEIGHT - 8 + PADDING*2 +HEIGHT_PROGRESSBAR_1080P = PROGRESS_HEIGHT +Y_OFFSET_PROGRESS_BAR_1080P = IMAGE_HEIGHT + FILEPATHS_HEIGHT + OPTIONS_HEIGHT + CONVERSIONBUTTON_HEIGHT + COMMAND_HEIGHT + PADDING*4 +Y_OFFSET_CONSOLE_FRAME_1080P = IMAGE_HEIGHT + FILEPATHS_HEIGHT + OPTIONS_HEIGHT + CONVERSIONBUTTON_HEIGHT + PADDING + X_PROGRESSBAR_1080P + +LABEL_Y_OFFSET = MAIN_ROW_Y[0] +ENTRY_X_OFFSET = SUB_ENT_ROW_X +ENTRY_Y_OFFSET = MAIN_ROW_Y[1] +OPTION_WIDTH = MAIN_ROW_ALIGN_WIDTH diff --git a/gui_data/change_log.txt b/gui_data/change_log.txt new file mode 100644 index 0000000..be40054 --- /dev/null +++ b/gui_data/change_log.txt @@ -0,0 +1,93 @@ +Most Recent Changes: + +~ Fixed Download Center model list issue. +~ Fixed audio clip in ensemble mode. +~ Fixed output model name issue in ensemble mode. +~ Added "Batch Mode" for MDX-Net to increase performance. + ~ Batch Mode is more memory efficient. + ~ Batch Mode produces the best output, regardless of batch size. +~ Added Batch Mode for VR Architecture. +~ Added Mixer Mode for Demucs. + ~ This option may improve separation for some 4-stem models. + +Fixes & Changes going from UVR v5.4 to v5.5: + +~ The progress bar is now fully synced up with every process in the application. +~ Fixed low-resolution icon. +~ Added the ability to download models manually if the application can't connect + to the internet. +~ Drag-n-drop is functional across all os platforms. +~ Resolved mp3 tag issue in MacOS version. + +Performance: + +~ Model load times are faster. +~ Importing/exporting audio files is faster. + +MacOS M1 Notes: + +~ The GPU Conversion checkbox will enable MPS for GPU acceleration. However, + only the VR Architecture models are currently compatible with it. + +New Options: + +~ Select Saved Settings option - Allows the user to save the current settings + of the whole application. You can also load a saved setting or reset them to + the default. +~ Right-click menu - Allows for quick access to important options. +~ Help Hints option - When enabled, users can hover over options to see a pop-up + text that describes that option. The right-clicking option also allows copying + the "Help Hint" text. +~ Secondary Model Mode - This option is an expanded version of the "Demucs Model" + option that was only available to MDX-Net. Except now, this option is available + in all three AI Networks and for any stem. Any model can now be Secondary, and + the user can choose the amount of influence it has on the final result. +~ Robust caching for ensemble mode, allowing for much faster processing times. +~ Clicking the "Input" field will pop up a window allowing the user to review the selected audio inputs. Within this menu, users can: + ~ Remove inputs. + ~ Verify inputs. + ~ Create samples of chosen inputs. +~ "Sample Mode" option - Allows the user to process only part of a track to sample + settings or a model without running a full conversion. + ~ The number in the parentheses is the current number of seconds the generated + sample will be. + ~ You can choose the number of seconds to extract from the track in the "Additional + Settings" menu. + +VR Architecture: + +~ Ability to toggle "High-End Processing." +~ Ability to change the post-processing threshold. +~ Support for the latest VR architecture + ~ Crop Size and Batch Size are specifically for models using the latest + architecture only. + +MDX-NET: + +~ Denoise Output option results in cleaner results, + but the processing time will be longer. This option has replaced Noise Reduction. +~ Spectral Inversion option uses spectral inversion techniques for a + cleaner secondary stem result. This option may slow down the audio export process. +~ Secondary stem now has the same frequency cut-off as the main stem. + +Demucs: + +~ Demucs v4 models are now supported, including the 6-stem model. +~ Ability to combine remaining stems instead of inverting selected stem with the + mixture only when a user does not select "All Stems". +~ A Pre-process model that allows the user to run an inference through a robust + vocal or instrumental model and separate the remaining stems from its generated + instrumental mix. This option can significantly reduce vocal bleed in other + Demucs-generated non-vocal stems. + ~ The Pre-process model is intended for Demucs separations for all stems except + vocals and instrumentals. + +Ensemble Mode: + +~ Ensemble Mode has been extended to include the following: + ~ Averaging is a new algorithm that averages the final results. + ~ Unlimited models in the ensemble. + ~ Ability to save different ensembles. + ~ Ability to ensemble outputs for all individual stem types. + ~ Ability to choose unique ensemble algorithms. + ~ Ability to ensemble all 4 Demucs stems at once. \ No newline at end of file diff --git a/gui_data/complete_chime.wav b/gui_data/complete_chime.wav new file mode 100644 index 0000000000000000000000000000000000000000..c51ae89cbc82f110d890cd945139fd9dd9dd4640 GIT binary patch literal 357288 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 KWcd%S=94LdoF6}m@y?&5&*#AkjW+7+y$ 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 MN8ot`UVH8T1*`%MCIA2c literal 0 HcmV?d00001 diff --git a/gui_data/constants.py b/gui_data/constants.py new file mode 100644 index 0000000..22c5918 --- /dev/null +++ b/gui_data/constants.py @@ -0,0 +1,1584 @@ +import platform + +#Platform Details +OPERATING_SYSTEM = platform.system() +SYSTEM_ARCH = platform.platform() +SYSTEM_PROC = platform.processor() +ARM = 'arm' + +is_macos = False + +CPU = 'cpu' +CUDA_DEVICE = 'cuda' +DIRECTML_DEVICE = "privateuseone" + +#MAIN_FONT_NAME = "Century Gothic" +OPT_SEPARATOR_SAVE = '─'*25 +BG_COLOR = '#0e0e0f' +FG_COLOR = '#13849f' + +#Model Types +VR_ARCH_TYPE = 'VR Arc' +MDX_ARCH_TYPE = 'MDX-Net' +DEMUCS_ARCH_TYPE = 'Demucs' +VR_ARCH_PM = 'VR Architecture' +ENSEMBLE_MODE = 'Ensemble Mode' +ENSEMBLE_STEM_CHECK = 'Ensemble Stem' +SECONDARY_MODEL = 'Secondary Model' +DEMUCS_6_STEM_MODEL = 'htdemucs_6s' +DEFAULT = "Default" +ALIGNMENT_TOOL = 'Alignment Tool Options' + +SINGLE_FILE = 'SINGLE_FILE' +MULTIPLE_FILE = 'MULTI_FILE' +MAIN_MULTIPLE_FILE = 'MAIN_MULTI_FILE' +CHOOSE_EXPORT_FIR = 'CHOOSE_EXPORT_FIR' + +DUAL = "dual" +FOUR_STEM = "fourstem" +ANY_STEM = "Any Stem" + +DEMUCS_V3_ARCH_TYPE = 'Demucs v3' +DEMUCS_V4_ARCH_TYPE = 'Demucs v4' +DEMUCS_NEWER_ARCH_TYPES = [DEMUCS_V3_ARCH_TYPE, DEMUCS_V4_ARCH_TYPE] + +DEMUCS_V1 = 'v1' +DEMUCS_V2 = 'v2' +DEMUCS_V3 = 'v3' +DEMUCS_V4 = 'v4' + +DEMUCS_V1_TAG = 'v1 | ' +DEMUCS_V2_TAG = 'v2 | ' +DEMUCS_V3_TAG = 'v3 | ' +DEMUCS_V4_TAG = 'v4 | ' +DEMUCS_NEWER_TAGS = [DEMUCS_V3_TAG, DEMUCS_V4_TAG] + +DEMUCS_VERSION_MAPPER = { + DEMUCS_V1:DEMUCS_V1_TAG, + DEMUCS_V2:DEMUCS_V2_TAG, + DEMUCS_V3:DEMUCS_V3_TAG, + DEMUCS_V4:DEMUCS_V4_TAG} + +#Download Center +DOWNLOAD_FAILED = 'Download Failed' +DOWNLOAD_STOPPED = 'Download Stopped' +DOWNLOAD_COMPLETE = 'Download Complete' +DOWNLOAD_UPDATE_COMPLETE = 'Update Download Complete' +SETTINGS_MENU_EXIT = 'exit' +NO_CONNECTION = 'No Internet Connection' +VIP_SELECTION = 'VIP:' +DEVELOPER_SELECTION = 'VIP:' +NO_NEW_MODELS = 'All Available Models Downloaded' +ENSEMBLE_PARTITION = ': ' +NO_MODEL = 'No Model Selected' +CHOOSE_MODEL = 'Choose Model' +SINGLE_DOWNLOAD = 'Downloading Item 1/1...' +DOWNLOADING_ITEM = 'Downloading Item' +FILE_EXISTS = 'File already exists!' +DOWNLOADING_UPDATE = 'Downloading Update...' +DOWNLOAD_MORE = 'Download More Models' +IS_KARAOKEE = "is_karaoke" +IS_BV_MODEL = "is_bv_model" +IS_BV_MODEL_REBAL = "is_bv_model_rebalanced" +INPUT_STEM_NAME = 'Input Stem Name' + +#Menu Options + +AUTO_SELECT = 'Auto' + +#LINKS +DOWNLOAD_CHECKS = "https://raw.githubusercontent.com/TRvlvr/application_data/main/filelists/download_checks.json" +MDX_MODEL_DATA_LINK = "https://raw.githubusercontent.com/TRvlvr/application_data/main/mdx_model_data/model_data_new.json" +VR_MODEL_DATA_LINK = "https://raw.githubusercontent.com/TRvlvr/application_data/main/vr_model_data/model_data_new.json" +MDX23_CONFIG_CHECKS = "https://raw.githubusercontent.com/TRvlvr/application_data/main/mdx_model_data/mdx_c_configs/" +BULLETIN_CHECK = "https://raw.githubusercontent.com/TRvlvr/application_data/main/bulletin.txt" + +DEMUCS_MODEL_NAME_DATA_LINK = "https://raw.githubusercontent.com/TRvlvr/application_data/main/demucs_model_data/model_name_mapper.json" +MDX_MODEL_NAME_DATA_LINK = "https://raw.githubusercontent.com/TRvlvr/application_data/main/mdx_model_data/model_name_mapper.json" + +DONATE_LINK_BMAC = "https://www.buymeacoffee.com/uvr5" +DONATE_LINK_PATREON = "https://www.patreon.com/uvr" + +#DOWNLOAD REPOS +NORMAL_REPO = "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/" +UPDATE_REPO = "https://github.com/TRvlvr/model_repo/releases/download/uvr_update_patches/" + +UPDATE_MAC_ARM_REPO = "https://github.com/Anjok07/ultimatevocalremovergui/releases/download/v5.6/Ultimate_Vocal_Remover_v5_6_MacOS_arm64.dmg" +UPDATE_MAC_X86_64_REPO = "https://github.com/Anjok07/ultimatevocalremovergui/releases/download/v5.6/Ultimate_Vocal_Remover_v5_6_MacOS_x86_64.dmg" +UPDATE_LINUX_REPO = "https://github.com/Anjok07/ultimatevocalremovergui#linux-installation" + +ISSUE_LINK = 'https://github.com/Anjok07/ultimatevocalremovergui/issues/new' +VIP_REPO = b'\xf3\xc2W\x19\x1foI)\xc2\xa9\xcc\xb67(Z\xf5',\ + b'gAAAAABjQAIQ-NpNMMxMedpKHHb7ze_nqB05hw0YhbOy3pFzuzDrfqumn8_qvraxEoUpZC5ZXC0gGvfDxFMqyq9VWbYKlA67SUFI_wZB6QoVyGI581vs7kaGfUqlXHIdDS6tQ_U-BfjbEAK9EU_74-R2zXjz8Xzekw==' +NO_CODE = 'incorrect_code' + +#Extensions +ONNX = '.onnx' +CKPT = '.ckpt' +CKPT_C = '.ckptc' +YAML = '.yaml' +PTH = '.pth' +TH_EXT = '.th' +JSON = '.json' + +#GUI Buttons +START_PROCESSING = 'Start Processing' +WAIT_PROCESSING = 'Please wait...' +STOP_PROCESSING = 'Halting process, please wait...' +LOADING_MODELS = 'Loading models...' + +#---Messages and Logs---- + +MISSING_MODEL = 'missing' +MODEL_PRESENT = 'present' + +ALL_STEMS = 'All Stems' +VOCAL_STEM = 'Vocals' +INST_STEM = 'Instrumental' +OTHER_STEM = 'Other' +BASS_STEM = 'Bass' +DRUM_STEM = 'Drums' +GUITAR_STEM = 'Guitar' +PIANO_STEM = 'Piano' +SYNTH_STEM = 'Synthesizer' +STRINGS_STEM = 'Strings' +WOODWINDS_STEM = 'Woodwinds' +BRASS_STEM = 'Brass' +WIND_INST_STEM = 'Wind Inst' +NO_OTHER_STEM = 'No Other' +NO_BASS_STEM = 'No Bass' +NO_DRUM_STEM = 'No Drums' +NO_GUITAR_STEM = 'No Guitar' +NO_PIANO_STEM = 'No Piano' +NO_SYNTH_STEM = 'No Synthesizer' +NO_STRINGS_STEM = 'No Strings' +NO_WOODWINDS_STEM = 'No Woodwinds' +NO_WIND_INST_STEM = 'No Wind Inst' +NO_BRASS_STEM = 'No Brass' +PRIMARY_STEM = 'Primary Stem' +SECONDARY_STEM = 'Secondary Stem' +LEAD_VOCAL_STEM = 'lead_only' +BV_VOCAL_STEM = 'backing_only' +LEAD_VOCAL_STEM_I = 'with_lead_vocals' +BV_VOCAL_STEM_I = 'with_backing_vocals' +LEAD_VOCAL_STEM_LABEL = 'Lead Vocals' +BV_VOCAL_STEM_LABEL = 'Backing Vocals' + +VOCAL_STEM_ONLY = f'{VOCAL_STEM} Only' +INST_STEM_ONLY = f'{INST_STEM} Only' +PRIMARY_STEM_ONLY = f'{PRIMARY_STEM} Only' + +IS_SAVE_INST_ONLY = f'save_only_inst' +IS_SAVE_VOC_ONLY = f'save_only_voc' + +DEVERB_MAPPER = {'Main Vocals Only':VOCAL_STEM, + 'Lead Vocals Only':LEAD_VOCAL_STEM_LABEL, + 'Backing Vocals Only':BV_VOCAL_STEM_LABEL, + 'All Vocal Types':'ALL'} + +BALANCE_VALUES = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9] + +#Other Constants +DEMUCS_2_SOURCE = ["instrumental", "vocals"] +DEMUCS_4_SOURCE = ["drums", "bass", "other", "vocals"] + +DEMUCS_2_SOURCE_MAPPER = { + INST_STEM: 0, + VOCAL_STEM: 1} + +DEMUCS_4_SOURCE_MAPPER = { + BASS_STEM: 0, + DRUM_STEM: 1, + OTHER_STEM: 2, + VOCAL_STEM: 3} + +DEMUCS_6_SOURCE_MAPPER = { + BASS_STEM:0, + DRUM_STEM:1, + OTHER_STEM:2, + VOCAL_STEM:3, + GUITAR_STEM:4, + PIANO_STEM:5} + +DEMUCS_4_SOURCE_LIST = [BASS_STEM, DRUM_STEM, OTHER_STEM, VOCAL_STEM] +DEMUCS_6_SOURCE_LIST = [BASS_STEM, DRUM_STEM, OTHER_STEM, VOCAL_STEM, GUITAR_STEM, PIANO_STEM] + +DEMUCS_UVR_MODEL = 'UVR_Model' + +CHOOSE_STEM_PAIR = 'Choose Stem Pair' + +STEM_SET_MENU = (VOCAL_STEM, + INST_STEM, + OTHER_STEM, + BASS_STEM, + DRUM_STEM, + GUITAR_STEM, + PIANO_STEM, + SYNTH_STEM, + STRINGS_STEM, + WOODWINDS_STEM, + BRASS_STEM, + WIND_INST_STEM) + +STEM_SET_MENU_ONLY = list(STEM_SET_MENU) + [OPT_SEPARATOR_SAVE, INPUT_STEM_NAME] + +STEM_SET_MENU_2 = ( + OTHER_STEM, + BASS_STEM, + DRUM_STEM, + GUITAR_STEM, + PIANO_STEM, + SYNTH_STEM, + STRINGS_STEM, + WOODWINDS_STEM, + BRASS_STEM, + WIND_INST_STEM, + "Noise", + "Reverb") + +STEM_PAIR_MAPPER = { + VOCAL_STEM: INST_STEM, + INST_STEM: VOCAL_STEM, + LEAD_VOCAL_STEM: BV_VOCAL_STEM, + BV_VOCAL_STEM: LEAD_VOCAL_STEM, + PRIMARY_STEM: SECONDARY_STEM} + +STEM_PAIR_MAPPER_FULL = { + VOCAL_STEM: INST_STEM, + INST_STEM: VOCAL_STEM, + OTHER_STEM: NO_OTHER_STEM, + BASS_STEM: NO_BASS_STEM, + DRUM_STEM: NO_DRUM_STEM, + GUITAR_STEM: NO_GUITAR_STEM, + PIANO_STEM: NO_PIANO_STEM, + SYNTH_STEM: NO_SYNTH_STEM, + STRINGS_STEM: NO_STRINGS_STEM, + WOODWINDS_STEM: NO_WOODWINDS_STEM, + BRASS_STEM: NO_BRASS_STEM, + WIND_INST_STEM: NO_WIND_INST_STEM, + NO_OTHER_STEM: OTHER_STEM, + NO_BASS_STEM: BASS_STEM, + NO_DRUM_STEM: DRUM_STEM, + NO_GUITAR_STEM: GUITAR_STEM, + NO_PIANO_STEM: PIANO_STEM, + NO_SYNTH_STEM: SYNTH_STEM, + NO_STRINGS_STEM: STRINGS_STEM, + NO_WOODWINDS_STEM: WOODWINDS_STEM, + NO_BRASS_STEM: BRASS_STEM, + NO_WIND_INST_STEM: WIND_INST_STEM, + PRIMARY_STEM: SECONDARY_STEM} + +NO_STEM = "No " + +NON_ACCOM_STEMS = ( + VOCAL_STEM, + OTHER_STEM, + BASS_STEM, + DRUM_STEM, + GUITAR_STEM, + PIANO_STEM, + SYNTH_STEM, + STRINGS_STEM, + WOODWINDS_STEM, + BRASS_STEM, + WIND_INST_STEM) + +MDX_NET_FREQ_CUT = [VOCAL_STEM, INST_STEM] + +DEMUCS_4_STEM_OPTIONS = (ALL_STEMS, VOCAL_STEM, OTHER_STEM, BASS_STEM, DRUM_STEM) +DEMUCS_6_STEM_OPTIONS = (ALL_STEMS, VOCAL_STEM, OTHER_STEM, BASS_STEM, DRUM_STEM, GUITAR_STEM, PIANO_STEM) +DEMUCS_2_STEM_OPTIONS = (VOCAL_STEM, INST_STEM) +DEMUCS_4_STEM_CHECK = (OTHER_STEM, BASS_STEM, DRUM_STEM) + +#Menu Dropdowns + +VOCAL_PAIR = f'{VOCAL_STEM}/{INST_STEM}' +INST_PAIR = f'{INST_STEM}/{VOCAL_STEM}' +OTHER_PAIR = f'{OTHER_STEM}/{NO_OTHER_STEM}' +DRUM_PAIR = f'{DRUM_STEM}/{NO_DRUM_STEM}' +BASS_PAIR = f'{BASS_STEM}/{NO_BASS_STEM}' +FOUR_STEM_ENSEMBLE = '4 Stem Ensemble' +MULTI_STEM_ENSEMBLE = 'Multi-stem Ensemble' + +ENSEMBLE_MAIN_STEM = (CHOOSE_STEM_PAIR, VOCAL_PAIR, OTHER_PAIR, DRUM_PAIR, BASS_PAIR, FOUR_STEM_ENSEMBLE, MULTI_STEM_ENSEMBLE) + +MIN_SPEC = 'Min Spec' +MAX_SPEC = 'Max Spec' +AUDIO_AVERAGE = 'Average' + +MAX_MIN = f'{MAX_SPEC}/{MIN_SPEC}' +MAX_MAX = f'{MAX_SPEC}/{MAX_SPEC}' +MAX_AVE = f'{MAX_SPEC}/{AUDIO_AVERAGE}' +MIN_MAX = f'{MIN_SPEC}/{MAX_SPEC}' +MIN_MIX = f'{MIN_SPEC}/{MIN_SPEC}' +MIN_AVE = f'{MIN_SPEC}/{AUDIO_AVERAGE}' +AVE_MAX = f'{AUDIO_AVERAGE}/{MAX_SPEC}' +AVE_MIN = f'{AUDIO_AVERAGE}/{MIN_SPEC}' +AVE_AVE = f'{AUDIO_AVERAGE}/{AUDIO_AVERAGE}' + +ENSEMBLE_TYPE = (MAX_MIN, MAX_MAX, MAX_AVE, MIN_MAX, MIN_MIX, MIN_AVE, AVE_MAX, AVE_MIN, AVE_AVE) +ENSEMBLE_TYPE_4_STEM = (MAX_SPEC, MIN_SPEC, AUDIO_AVERAGE) + +BATCH_MODE = 'Batch Mode' +BETA_VERSION = 'BETA' +DEF_OPT = 'Default' +USER_INPUT = "User Input" +OPT_SEPARATOR = '─'*65 + +CHUNKS = (AUTO_SELECT, '1', '5', '10', '15', '20', + '25', '30', '35', '40', '45', '50', + '55', '60', '65', '70', '75', '80', + '85', '90', '95', 'Full') + +BATCH_SIZE = (DEF_OPT, '2', '3', '4', '5', + '6', '7', '8', '9', '10') + +VOL_COMPENSATION = (AUTO_SELECT, '1.035', '1.08') + +MARGIN_SIZE = ('44100', '22050', '11025') + +AUDIO_TOOLS = 'Audio Tools' + +MANUAL_ENSEMBLE = 'Manual Ensemble' +TIME_STRETCH = 'Time Stretch' +CHANGE_PITCH = 'Change Pitch' +ALIGN_INPUTS = 'Align Inputs' +MATCH_INPUTS = 'Matchering' +COMBINE_INPUTS = 'Combine Inputs' + +if OPERATING_SYSTEM == 'Windows' or OPERATING_SYSTEM == 'Darwin': + AUDIO_TOOL_OPTIONS = (MANUAL_ENSEMBLE, TIME_STRETCH, CHANGE_PITCH, ALIGN_INPUTS, MATCH_INPUTS) +else: + AUDIO_TOOL_OPTIONS = (MANUAL_ENSEMBLE, ALIGN_INPUTS, MATCH_INPUTS) + +MANUAL_ENSEMBLE_OPTIONS = (MIN_SPEC, MAX_SPEC, AUDIO_AVERAGE, COMBINE_INPUTS) + +PROCESS_METHODS = (VR_ARCH_PM, MDX_ARCH_TYPE, DEMUCS_ARCH_TYPE, ENSEMBLE_MODE, AUDIO_TOOLS) + +DEMUCS_SEGMENTS = (DEF_OPT, '1', '5', '10', '15', '20', + '25', '30', '35', '40', '45', '50', + '55', '60', '65', '70', '75', '80', + '85', '90', '95', '100') + +DEMUCS_SHIFTS = (0, 1, 2, 3, 4, 5, + 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, + 18, 19, 20) +SEMI_DEF = ['0'] +SEMITONE_SEL = (-12,-11,-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10,11,12) + +NOUT_SEL = (8, 16, 32, 48, 64) +NOUT_LSTM_SEL = (64, 128) + +DEMUCS_OVERLAP = (0.25, 0.50, 0.75, 0.99) +MDX_OVERLAP = (DEF_OPT, 0.25, 0.50, 0.75, 0.99) +MDX23_OVERLAP = range(2, 51) +VR_AGGRESSION = range(0, 51) + +TIME_WINDOW_MAPPER = { + "None": None, + "1": [0.0625], + "2": [0.125], + "3": [0.25], + "4": [0.5], + "5": [0.75], + "6": [1], + "7": [2], + "Shifts: Low": [0.0625, 0.5], + "Shifts: Medium": [0.0625, 0.125, 0.5], + "Shifts: High": [0.0625, 0.125, 0.25, 0.5] + #"Shifts: Very High": [0.0625, 0.125, 0.25, 0.5, 0.75, 1], +} + +INTRO_MAPPER = { + "Default": [10], + "1": [8], + "2": [6], + "3": [4], + "4": [2], + "Shifts: Low": [1, 10], + "Shifts: Medium": [1, 10, 8], + "Shifts: High": [1, 10, 8, 6, 4] + } + +VOLUME_MAPPER = { + "None": (0, [0]), + "Low": (-4, range(0, 8)), + "Medium": (-6, range(0, 12)), + "High": (-6, [x * 0.5 for x in range(0, 25)]), + "Very High": (-10, [x * 0.5 for x in range(0, 41)])} + #"Max": (-10, [x * 0.3 for x in range(0, int(20 / 0.3) + 1)])} + +PHASE_MAPPER = { + "None": [0], + "Shifts Low": [0, 180], + "Shifts Medium": [0], + "Shifts High": [0], + "Shifts Very High": [0],} + +NONE_P = "None" +VLOW_P = "Shifts: Very Low" +LOW_P = "Shifts: Low" +MED_P = "Shifts: Medium" +HIGH_P = "Shifts: High" +VHIGH_P = "Shifts: Very High" +VMAX_P = "Shifts: Maximum" + +PHASE_SHIFTS_OPT = { + NONE_P:190, + VLOW_P:180, + LOW_P:90, + MED_P:45, + HIGH_P:20, + VHIGH_P:10, + VMAX_P:1,} + +VR_WINDOW = ('320', '512','1024') +VR_CROP = ('256', '512', '1024') +POST_PROCESSES_THREASHOLD_VALUES = ('0.1', '0.2', '0.3') + +MDX_POP_PRO = ('MDX-NET_Noise_Profile_14_kHz', 'MDX-NET_Noise_Profile_17_kHz', 'MDX-NET_Noise_Profile_Full_Band') +MDX_POP_STEMS = ('Vocals', 'Instrumental', 'Other', 'Drums', 'Bass') +MDX_POP_NFFT = ('4096', '5120', '6144', '7680', '8192', '16384') +MDX_POP_DIMF = ('2048', '3072', '4096') +DENOISE_NONE, DENOISE_S, DENOISE_M = 'None', 'Standard', 'Denoise Model' +MDX_DENOISE_OPTION = [DENOISE_NONE, DENOISE_S, DENOISE_M] +MDX_SEGMENTS = list(range(32, 4000+1, 32)) + +SAVE_ENSEMBLE = 'Save Ensemble' +CLEAR_ENSEMBLE = 'Clear Selection(s)' +MENU_SEPARATOR = 35*'•' +CHOOSE_ENSEMBLE_OPTION = 'Choose Option' +ALL_TYPES = 'ALL' +INVALID_ENTRY = 'Invalid Input, Please Try Again' +ENSEMBLE_INPUT_RULE = '1. Only letters, numbers, spaces, and dashes allowed.\n2. No dashes or spaces at the start or end of input.' +STEM_INPUT_RULE = '1. Only words with no spaces are allowed.\n2. No spaces, numbers, or special characters.' + +ENSEMBLE_OPTIONS = [OPT_SEPARATOR_SAVE, SAVE_ENSEMBLE, CLEAR_ENSEMBLE] +ENSEMBLE_CHECK = 'ensemble check' +KARAOKEE_CHECK = 'kara check' + +AUTO_PHASE = "Automatic" +POSITIVE_PHASE = "Positive Phase" +NEGATIVE_PHASE = "Negative Phase" +OFF_PHASE = "Native Phase" + +ALIGN_PHASE_OPTIONS = [AUTO_PHASE, POSITIVE_PHASE, NEGATIVE_PHASE, OFF_PHASE] + +SELECT_SAVED_ENSEMBLE = 'Select Saved Ensemble' +SELECT_SAVED_SETTING = 'Select Saved Setting' +ENSEMBLE_OPTION = "Ensemble Customization Options" +MDX_OPTION = "Advanced MDX-Net Options" +DEMUCS_OPTION = "Advanced Demucs Options" +VR_OPTION = "Advanced VR Options" +HELP_OPTION = "Open Information Guide" +ERROR_OPTION = "Open Error Log" +VERIFY_BEGIN = 'Verifying file ' +SAMPLE_BEGIN = 'Creating Sample ' +MODEL_MISSING_CHECK = 'Model Missing:' +OPTION_LIST = [VR_OPTION, MDX_OPTION, DEMUCS_OPTION, ENSEMBLE_OPTION, ALIGNMENT_TOOL, HELP_OPTION, ERROR_OPTION] + +#Menu Strings +VR_MENU ='VR Menu' +DEMUCS_MENU ='Demucs Menu' +MDX_MENU ='MDX-Net Menu' +ENSEMBLE_MENU ='Ensemble Menu' +HELP_MENU ='Help Menu' +ERROR_MENU ='Error Log' +INPUTS_MENU ='Inputs Menu' +ALIGN_MENU ='Align Menu' + +# Audio Player +PLAYING_SONG = ": Playing" +PAUSE_SONG = ": Paused" +STOP_SONG = ": Stopped" + +SELECTED_VER = 'Selected' +DETECTED_VER = 'Detected' + +SAMPLE_MODE_CHECKBOX = lambda v:f'Sample Mode ({v}s)' +REMOVED_FILES = lambda r, e:f'Audio Input Verification Report:\n\nRemoved Files:\n\n{r}\n\nError Details:\n\n{e}' +ADVANCED_SETTINGS = (ENSEMBLE_OPTION, MDX_OPTION, DEMUCS_OPTION, VR_OPTION, HELP_OPTION, ERROR_OPTION) + +WAV = 'WAV' +FLAC = 'FLAC' +MP3 = 'MP3' + +MP3_BIT_RATES = ('96k', '128k', '160k', '224k', '256k', '320k') +WAV_TYPE = ('PCM_U8', 'PCM_16', 'PCM_24', 'PCM_32', '32-bit Float', '64-bit Float') +GPU_DEVICE_NUM_OPTS = (DEFAULT, '0', '1', '2', '3', '4', '5', '6', '7', '8') + +SELECT_SAVED_SET = 'Choose Option' +SAVE_SETTINGS = 'Save Current Settings' +RESET_TO_DEFAULT = 'Reset to Default' +RESET_FULL_TO_DEFAULT = 'Reset to Default' +RESET_PM_TO_DEFAULT = 'Reset All Application Settings to Default' + +SAVE_SET_OPTIONS = [OPT_SEPARATOR_SAVE, SAVE_SETTINGS, RESET_TO_DEFAULT] + +TIME_PITCH = ('1.0', '2.0', '3.0', '4.0') +TIME_TEXT = '_time_stretched' +PITCH_TEXT = '_pitch_shifted' + +#RegEx Input Validation +REG_PITCH = r'^[-+]?(1[0]|[0-9]([.][0-9]*)?)$' +REG_TIME = r'^[+]?(1[0]|[0-9]([.][0-9]*)?)$' +REG_COMPENSATION = r'\b^(1[0]|[0-9]([.][0-9]*)?|Auto|None)$\b' +REG_THES_POSTPORCESS = r'\b^([0]([.][0-9]{0,6})?)$\b' +REG_CHUNKS = r'\b^(200|1[0-9][0-9]|[1-9][0-9]?|Auto|Full)$\b' +REG_CHUNKS_DEMUCS = r'\b^(200|1[0-9][0-9]|[1-9][0-9]?|Auto|Full)$\b' +REG_MARGIN = r'\b^[0-9]*$\b' +REG_SEGMENTS = r'\b^(200|1[0-9][0-9]|[1-9][0-9]?|Default)$\b' +REG_SAVE_INPUT = r'\b^([a-zA-Z0-9 -]{0,25})$\b' +REG_INPUT_STEM_NAME = r'^(Wind Inst|[a-zA-Z]{1,25})$' +REG_SEMITONES = r'^-?(20\.00|[01]?\d(\.\d{1,2})?|20)$' +REG_AGGRESSION = r'^[-+]?[0-9]\d*?$' +REG_WINDOW = r'\b^[0-9]{0,4}$\b' +REG_SHIFTS = r'\b^[0-9]*$\b' +REG_BATCHES = r'\b^([0-9]*?|Default)$\b' +REG_OVERLAP = r'\b^([0]([.][0-9]{0,6})?|Default)$\b'#r"(Default|[0-9]+(\.[0-9]+)?)"# +REG_OVERLAP23 = r'\b^([1][0-9]|[2-9][0-9]*|Default)$\b'#r'\b^([2-9][0-9]*?|Default)$\b' +REG_MDX_SEG = r'\b(?:' + '|'.join([str(num) for num in range(32, 1000001, 32)]) + r')\b' +REG_ALIGN = r'^[-+]?[0-9]\d*?$' +REG_VOL_COMP = r'^\d+\.\d{1,9}$' + +# Sub Menu +VR_ARCH_SETTING_LOAD = 'Load for VR Arch' +MDX_SETTING_LOAD = 'Load for MDX-Net' +DEMUCS_SETTING_LOAD = 'Load for Demucs' +ALL_ARCH_SETTING_LOAD = 'Load for Full Application' + +# Mappers + +DEFAULT_DATA = { + 'chosen_process_method': MDX_ARCH_TYPE, + 'vr_model': CHOOSE_MODEL, + 'aggression_setting': 5, + 'window_size': 512, + 'mdx_segment_size': 256, + 'batch_size': DEF_OPT, + 'crop_size': 256, + 'is_tta': False, + 'is_output_image': False, + 'is_post_process': False, + 'is_high_end_process': False, + 'post_process_threshold': 0.2, + 'vr_voc_inst_secondary_model': NO_MODEL, + 'vr_other_secondary_model': NO_MODEL, + 'vr_bass_secondary_model': NO_MODEL, + 'vr_drums_secondary_model': NO_MODEL, + 'vr_is_secondary_model_activate': False, + 'vr_voc_inst_secondary_model_scale': 0.9, + 'vr_other_secondary_model_scale': 0.7, + 'vr_bass_secondary_model_scale': 0.5, + 'vr_drums_secondary_model_scale': 0.5, + 'demucs_model': CHOOSE_MODEL, + 'segment': DEMUCS_SEGMENTS[0], + 'overlap': DEMUCS_OVERLAP[0], + 'overlap_mdx': MDX_OVERLAP[0], + 'overlap_mdx23': '8', + 'shifts': 2, + 'chunks_demucs': CHUNKS[0], + 'margin_demucs': 44100, + 'is_chunk_demucs': False, + 'is_chunk_mdxnet': False, + 'is_primary_stem_only_Demucs': False, + 'is_secondary_stem_only_Demucs': False, + 'is_split_mode': True, + 'is_demucs_combine_stems': True,# + 'is_mdx23_combine_stems': True,# + 'demucs_voc_inst_secondary_model': NO_MODEL, + 'demucs_other_secondary_model': NO_MODEL, + 'demucs_bass_secondary_model': NO_MODEL, + 'demucs_drums_secondary_model': NO_MODEL, + 'demucs_is_secondary_model_activate': False, + 'demucs_voc_inst_secondary_model_scale': 0.9, + 'demucs_other_secondary_model_scale': 0.7, + 'demucs_bass_secondary_model_scale': 0.5, + 'demucs_drums_secondary_model_scale': 0.5, + 'demucs_stems': ALL_STEMS, + 'demucs_pre_proc_model': NO_MODEL, + 'is_demucs_pre_proc_model_activate': False, + 'is_demucs_pre_proc_model_inst_mix': False, + 'mdx_net_model': CHOOSE_MODEL, + 'chunks': CHUNKS[0], + 'margin': 44100, + 'compensate': AUTO_SELECT, + 'is_denoise': False,# + 'denoise_option': 'None',# + 'phase_option': AUTO_PHASE, + 'phase_shifts': NONE_P,# + 'is_save_align': False,#, + 'is_match_frequency_pitch': True,# + 'is_match_silence': True,# + 'is_spec_match': False,# + 'is_mdx_c_seg_def': False, + 'is_invert_spec': False, # + 'is_deverb_vocals': False, # + 'deverb_vocal_opt': 'Main Vocals Only', # + 'voc_split_save_opt': 'Lead Only', # + 'is_mixer_mode': False, + 'mdx_batch_size': DEF_OPT, + 'mdx_voc_inst_secondary_model': NO_MODEL, + 'mdx_other_secondary_model': NO_MODEL, + 'mdx_bass_secondary_model': NO_MODEL, + 'mdx_drums_secondary_model': NO_MODEL, + 'mdx_is_secondary_model_activate': False, + 'mdx_voc_inst_secondary_model_scale': 0.9, + 'mdx_other_secondary_model_scale': 0.7, + 'mdx_bass_secondary_model_scale': 0.5, + 'mdx_drums_secondary_model_scale': 0.5, + 'mdx_stems': ALL_STEMS, + 'is_save_all_outputs_ensemble': True, + 'is_append_ensemble_name': False, + 'chosen_audio_tool': AUDIO_TOOL_OPTIONS[0], + 'choose_algorithm': MANUAL_ENSEMBLE_OPTIONS[0], + 'time_stretch_rate': 2.0, + 'pitch_rate': 2.0, + 'is_time_correction': True, + 'is_gpu_conversion': False, + 'is_primary_stem_only': False, + 'is_secondary_stem_only': False, + 'is_testing_audio': False,# + 'is_auto_update_model_params': True,# + 'is_add_model_name': False, + 'is_accept_any_input': False, + 'is_task_complete': False, + 'is_normalization': False, + 'is_use_opencl': False, + 'is_wav_ensemble': False, + 'is_create_model_folder': False, + 'mp3_bit_set': '320k',# + 'semitone_shift': '0',# + 'save_format': WAV, + 'wav_type_set': 'PCM_16', + 'device_set': DEFAULT, + 'user_code': '', + 'export_path': '', + 'input_paths': [], + 'lastDir': None, + 'time_window': "3", + 'intro_analysis': DEFAULT, + 'db_analysis': "Medium", + 'fileOneEntry': '', + 'fileOneEntry_Full': '', + 'fileTwoEntry': '', + 'fileTwoEntry_Full': '', + 'DualBatch_inputPaths': [], + 'model_hash_table': {}, + 'help_hints_var': True, + 'set_vocal_splitter': NO_MODEL, + 'is_set_vocal_splitter': False,# + 'is_save_inst_set_vocal_splitter': False,# + 'model_sample_mode': False, + 'model_sample_mode_duration': 30 +} + +SETTING_CHECK = ('vr_model', + 'aggression_setting', + 'window_size', + 'mdx_segment_size', + 'batch_size', + 'crop_size', + 'is_tta', + 'is_output_image', + 'is_post_process', + 'is_high_end_process', + 'post_process_threshold', + 'vr_voc_inst_secondary_model', + 'vr_other_secondary_model', + 'vr_bass_secondary_model', + 'vr_drums_secondary_model', + 'vr_is_secondary_model_activate', + 'vr_voc_inst_secondary_model_scale', + 'vr_other_secondary_model_scale', + 'vr_bass_secondary_model_scale', + 'vr_drums_secondary_model_scale', + 'demucs_model', + 'segment', + 'overlap', + 'overlap_mdx', + 'shifts', + 'chunks_demucs', + 'margin_demucs', + 'is_chunk_demucs', + 'is_primary_stem_only_Demucs', + 'is_secondary_stem_only_Demucs', + 'is_split_mode', + 'is_demucs_combine_stems',# + 'is_mdx23_combine_stems',# + 'demucs_voc_inst_secondary_model', + 'demucs_other_secondary_model', + 'demucs_bass_secondary_model', + 'demucs_drums_secondary_model', + 'demucs_is_secondary_model_activate', + 'demucs_voc_inst_secondary_model_scale', + 'demucs_other_secondary_model_scale', + 'demucs_bass_secondary_model_scale', + 'demucs_drums_secondary_model_scale', + 'demucs_stems', + 'mdx_net_model', + 'chunks', + 'margin', + 'compensate', + 'is_denoise',# + 'denoise_option',# + 'phase_option',# + 'phase_shifts',# + 'is_save_align',#, + 'is_match_silence', + 'is_spec_match',#, + 'is_match_frequency_pitch',# + 'is_mdx_c_seg_def', + 'is_invert_spec',# + 'is_deverb_vocals',# + 'deverb_vocal_opt',# + 'voc_split_save_opt',# + 'mdx_batch_size', + 'mdx_voc_inst_secondary_model', + 'mdx_other_secondary_model', + 'mdx_bass_secondary_model', + 'mdx_drums_secondary_model', + 'mdx_is_secondary_model_activate', + 'mdx_voc_inst_secondary_model_scale', + 'mdx_other_secondary_model_scale', + 'mdx_bass_secondary_model_scale', + 'mdx_drums_secondary_model_scale', + 'is_save_all_outputs_ensemble', + 'is_append_ensemble_name', + 'chosen_audio_tool', + 'choose_algorithm', + 'time_stretch_rate', + 'pitch_rate', + 'is_time_correction', + 'is_primary_stem_only', + 'is_secondary_stem_only', + 'is_testing_audio',# + 'is_auto_update_model_params',# + 'is_add_model_name', + "is_accept_any_input", + 'is_task_complete', + 'is_create_model_folder', + 'mp3_bit_set',# + 'semitone_shift',# + 'save_format', + 'wav_type_set', + 'device_set', + 'user_code', + 'is_gpu_conversion', + 'is_normalization', + 'is_use_opencl', + 'is_wav_ensemble', + 'help_hints_var', + 'set_vocal_splitter', + 'is_set_vocal_splitter',# + 'is_save_inst_set_vocal_splitter',# + 'model_sample_mode', + 'model_sample_mode_duration', + 'time_window', + 'intro_analysis', + 'db_analysis', + 'fileOneEntry', + 'fileOneEntry_Full', + 'fileTwoEntry', + 'fileTwoEntry_Full', + 'DualBatch_inputPaths' + ) + +NEW_LINES = "\n\n" +NEW_LINE = "\n" +NO_LINE = '' + +FFMPEG_EXT = (".aac", ".aiff", ".alac" ,".flac", ".FLAC", ".mov", ".mp4", ".MP4", + ".m4a", ".M4A", ".mp2", ".mp3", "MP3", ".mpc", ".mpc8", + ".mpeg", ".ogg", ".OGG", ".tta", ".wav", ".wave", ".WAV", ".WAVE", ".wma", ".webm", ".eac3", ".mkv", ".opus", ".OPUS") + +FFMPEG_MORE_EXT = (".aa", ".aac", ".ac3", ".aiff", ".alac", ".avi", ".f4v",".flac", ".flic", ".flv", + ".m4v",".mlv", ".mov", ".mp4", ".m4a", ".mp2", ".mp3", ".mp4", ".mpc", ".mpc8", + ".mpeg", ".ogg", ".tta", ".tty", ".vcd", ".wav", ".wma") +ANY_EXT = "" + +# Secondary Menu Constants + +VOCAL_PAIR_PLACEMENT = 1, 2, 3, 4 +OTHER_PAIR_PLACEMENT = 5, 6, 7, 8 +BASS_PAIR_PLACEMENT = 9, 10, 11, 12 +DRUMS_PAIR_PLACEMENT = 13, 14, 15, 16 + +# Drag n Drop String Checks + +DOUBLE_BRACKET = "} {" +RIGHT_BRACKET = "}" +LEFT_BRACKET = "{" +#DND CONSTS + +MAC_DND_CHECK = ('/Users/', + '/Applications/', + '/Library/', + '/System/') +LINUX_DND_CHECK = ('/home/', + '/usr/') +WINDOWS_DND_CHECK = ('A:', 'B:', 'C:', 'D:', 'E:', 'F:', 'G:', 'H:', 'I:', 'J:', 'K:', 'L:', 'M:', 'N:', 'O:', 'P:', 'Q:', 'R:', 'S:', 'T:', 'U:', 'V:', 'W:', 'X:', 'Y:', 'Z:') + +WOOD_INST_MODEL_HASH = '0ec76fd9e65f81d8b4fbd13af4826ed8' +WOOD_INST_PARAMS = { + "vr_model_param": "4band_v3", + "primary_stem": NO_WIND_INST_STEM + } + +READ_ONLY = 'readonly' + +FILE_1 = 'file1' +FILE_2 = 'file2' + +FILE_1_LB = 'file1_lb' +FILE_2_LB = 'file1_2b' +BATCH_MODE_DUAL = " : Batch Mode" + +CODEC_DICT = { + 'PCM_U8': {"sample_width": 1, "codec": None}, # 8-bit unsigned PCM + 'PCM_16': {"sample_width": 2, "codec": None}, # 16-bit signed PCM + 'PCM_24': {"sample_width": 3, "codec": None}, # 24-bit signed PCM + 'PCM_32': {"sample_width": 4, "codec": None}, # 32-bit signed PCM + 'FLOAT32': {"sample_width": None, "codec": "pcm_f32le"}, # 32-bit float + 'FLOAT64': {"sample_width": None, "codec": "pcm_f64le"} # 64-bit float +} + + +# Manual Downloads +VR_PLACEMENT_TEXT = 'Place models in \"models/VR_Models\" directory.' +MDX_PLACEMENT_TEXT = 'Place models in \"models/MDX_Net_Models\" directory.' +DEMUCS_PLACEMENT_TEXT = 'Place models in \"models/Demucs_Models\" directory.' +DEMUCS_V3_V4_PLACEMENT_TEXT = 'Place items in \"models/Demucs_Models/v3_v4_repo\" directory.' +MDX_23_NAME = "MDX23C Model" + +# Liscense info +if OPERATING_SYSTEM=="Darwin": + is_macos = True + LICENSE_OS_SPECIFIC_TEXT = '• This application is intended for those running macOS Catalina and above.\n' +\ + '• Application functionality for systems running macOS Mojave or lower is not guaranteed.\n' +\ + '• Application functionality for older or budget Mac systems is not guaranteed.\n\n' +elif OPERATING_SYSTEM=="Linux": + LICENSE_OS_SPECIFIC_TEXT = '• This application is intended for those running Linux Ubuntu 18.04+.\n' +\ + '• Application functionality for systems running other Linux platforms is not guaranteed.\n' +\ + '• Application functionality for older or budget systems is not guaranteed.\n\n' +elif OPERATING_SYSTEM=="Windows": + LICENSE_OS_SPECIFIC_TEXT = '• This application is intended for those running Windows 10 or higher.\n' +\ + '• Application functionality for systems running Windows 7 or lower is not guaranteed.\n' +\ + '• Application functionality for Intel Pentium & Celeron CPUs systems is not guaranteed.\n\n' + +LICENSE_TEXT = lambda a, p:f'Current Application Version: Ultimate Vocal Remover {a}\n' +\ + f'Current Patch Version: {p}\n\n' +\ + 'Copyright (c) 2022 Ultimate Vocal Remover\n\n' +\ + 'UVR is free and open-source, but MIT licensed. Please credit us if you use our\n' +\ + f'models or code for projects unrelated to UVR.\n\n{LICENSE_OS_SPECIFIC_TEXT}' +\ + 'This bundle contains the UVR interface, Python, PyTorch, and other\n' +\ + 'dependencies needed to run the application effectively.\n\n' +\ + 'Website Links: This application, System or Service(s) may contain links to\n' +\ + 'other websites and downloads, and they are solely provided to you as an\n' +\ + 'additional convenience. You understand and acknowledge that by clicking\n' +\ + 'or activating such links you are accessing a site or service outside of\n' +\ + 'this application, and that we do not screen, review, approve, or otherwise\n' +\ + 'endorse any content or information contained in these linked websites.\n' +\ + 'You acknowledge and agree that we, our affiliates and partners are not\n' +\ + 'responsible for the contents of any of these linked websites, including\n' +\ + 'the accuracy or availability of information provided by the linked websites,\n' +\ + 'and we make no representations or warranties regarding your use of\n' +\ + 'the linked websites.\n\n' +\ + 'This application is MIT Licensed\n\n' +\ + 'Permission is hereby granted, free of charge, to any person obtaining a copy\n' +\ + 'of this software and associated documentation files (the "Software"), to deal\n' +\ + 'in the Software without restriction, including without limitation the rights\n' +\ + 'to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n' +\ + 'copies of the Software, and to permit persons to whom the Software is\n' +\ + 'furnished to do so, subject to the following conditions:\n\n' +\ + 'The above copyright notice and this permission notice shall be included in all\n' +\ + 'copies or substantial portions of the Software.\n\n' +\ + 'THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n' +\ + 'IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n' +\ + 'FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n' +\ + 'AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n' +\ + 'LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n' +\ + 'OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n' +\ + 'SOFTWARE.' + +# Message Box Text +INVALID_INPUT = 'Invalid Input', 'The input is invalid.\n\nPlease verify the input still exists or is valid and try again.' +INVALID_EXPORT = 'Invalid Export Directory', 'You have selected an invalid export directory.\n\nPlease make sure the selected directory still exists.' +INVALID_ENSEMBLE = 'Not Enough Models', 'You must select 2 or more models to run ensemble.' +INVALID_MODEL = 'No Model Chosen', 'You must select an model to continue.' +MISSING_MODEL = 'Model Missing', 'The selected model is missing or not valid.' +ERROR_OCCURED = 'Error Occured', '\n\nWould you like to open the error log for more details?\n' +PROCESS_COMPLETE = '\nProcess complete\n' +PROCESS_COMPLETE_2 = 'Process complete\n' + +# GUI Text Constants +BACK_TO_MAIN_MENU = 'Back to Main Menu' + +# Help Hint Text +INTERNAL_MODEL_ATT = 'This is an internal model setting. \n\n***Avoid changing it unless you\'re certain about it!***' +STOP_HELP = 'Stops ongoing tasks.\n• A confirmation pop-up will appear before stopping.' +SETTINGS_HELP = 'Accesses the main settings and the "Download Center."' +COMMAND_TEXT_HELP = 'Shows the status and progress of ongoing tasks.' +SAVE_CURRENT_SETTINGS_HELP = 'Load or save the app\'s settings.' +PITCH_SHIFT_HELP = ('Choose the pitch for processing tracks:\n\n' + '• Whole numbers indicate semitones.\n' + '• Using higher pitches may cut the upper bandwidth, even in high-quality models.\n' + '• Upping the pitch can be better for tracks with deeper vocals.\n' + '• Dropping the pitch may take more processing time but works well for tracks with high-pitched vocals.') +AGGRESSION_SETTING_HELP = ('Adjust the intensity of primary stem extraction:\n\n' + '• It ranges from -100 - 100.\n' + '• Bigger values mean deeper extractions.\n' + '• Typically, it\'s set to 5 for vocals & instrumentals. \n' + '• Values beyond 5 might muddy the sound for non-vocal models.') +WINDOW_SIZE_HELP = ('Select window size to balance quality and speed:\n\n' + '• 1024 - Quick but lesser quality.\n' + '• 512 - Medium speed and quality.\n' + '• 320 - Takes longer but may offer better quality.') +MDX_SEGMENT_SIZE_HELP = ('Pick a segment size to balance speed, resource use, and quality:\n' + '• Smaller sizes consume less resources.\n' + '• Bigger sizes consume more resources, but may provide better results.\n' + '• Default size is 256. Quality can change based on your pick.') +DEMUCS_STEMS_HELP = ('Select a stem for extraction with the chosen model:\n\n' + '• All Stems - Extracts all available stems.\n' + '• Vocals - Only the "vocals" stem.\n' + '• Other - Only the "other" stem.\n' + '• Bass - Only the "bass" stem.\n' + '• Drums - Only the "drums" stem.') +SEGMENT_HELP = ('Adjust segments to manage RAM or V-RAM usage:\n\n' + '• Smaller sizes consume less resources.\n' + '• Bigger sizes consume more resources, but may provide better results.\n' + '• "Default" picks the optimal size.') + +ENSEMBLE_MAIN_STEM_HELP = ( + 'Select the stem type for ensembling:\n\n' + + f'• {VOCAL_PAIR}:\n' + ' - Primary Stem: Vocals\n' + ' - Secondary Stem: Instrumental (mixture minus vocals)\n\n' + + f'• {OTHER_PAIR}:\n' + ' - Primary Stem: Other\n' + ' - Secondary Stem: No Other (mixture minus "other")\n\n' + + f'• {BASS_PAIR}:\n' + ' - Primary Stem: Bass\n' + ' - Secondary Stem: No Bass (mixture minus bass)\n\n' + + f'• {DRUM_PAIR}:\n' + ' - Primary Stem: Drums\n' + ' - Secondary Stem: No Drums (mixture minus drums)\n\n' + + f'• {FOUR_STEM_ENSEMBLE}:\n' + ' - Gathers all 4-stem Demucs models and ensembles all outputs.\n\n' + + f'• {MULTI_STEM_ENSEMBLE}:\n' + ' - The "Jungle Ensemble" gathers all models and ensembles any related outputs.' +) + +ENSEMBLE_TYPE_HELP = ( + 'Choose the ensemble algorithm for generating the final output:\n\n' + + f'• {MAX_MIN}:\n' + ' - Primary stem processed with "Max Spec" algorithm.\n' + ' - Secondary stem processed with "Min Spec" algorithm.\n\n' + + 'Note: For the "4 Stem Ensemble" option, only one algorithm will be displayed.\n\n' + + 'Algorithm Details:\n' + + f'• {MAX_SPEC}:\n' + ' - Produces the highest possible output.\n' + ' - Ideal for vocal stems for a fuller sound, but might introduce unwanted artifacts.\n' + ' - Works well with instrumental stems, but avoid using VR Arch models in the ensemble.\n\n' + + f'• {MIN_SPEC}:\n' + ' - Produces the lowest possible output.\n' + ' - Ideal for instrumental stems for a cleaner result. Might result in a "muddy" sound.\n\n' + + f'• {AUDIO_AVERAGE}:\n' + ' - Averages all results together for the final output.' +) + +ENSEMBLE_LISTBOX_HELP = ( + 'Displays all available models for the chosen main stem pair.' +) + +if OPERATING_SYSTEM == 'darwin': + IS_GPU_CONVERSION_HELP = ( + '• Use GPU for Processing (if available):\n' + ' - If checked, the application will attempt to use your GPU for faster processing.\n' + ' - If a GPU is not detected, it will default to CPU processing.\n' + ' - GPU processing for MacOS only works with VR Arch models.\n\n' + '• Please Note:\n' + ' - CPU processing is significantly slower than GPU processing.\n' + ' - Only Macs with M1 chips can be used for GPU processing.' + ) +else: + IS_GPU_CONVERSION_HELP = ( + '• Use GPU for Processing (if available):\n' + ' - If checked, the application will attempt to use your GPU for faster processing.\n' + ' - If a GPU is not detected, it will default to CPU processing.\n\n' + '• Please Note:\n' + ' - CPU processing is significantly slower than GPU processing.\n' + ' - Only Nvidia GPUs can be used for GPU processing.' + ) + +IS_TIME_CORRECTION_HELP = ('When checked, the output will retain the original BPM of the input.') +SAVE_STEM_ONLY_HELP = 'Allows the user to save only the selected stem.' +IS_NORMALIZATION_HELP = 'Normalizes output to prevent clipping.' +IS_CUDA_SELECT_HELP = "If you have more than one GPU, you can pick which one to use for processing." +CROP_SIZE_HELP = '**Only compatible with select models only!**\n\n Setting should match training crop-size value. Leave as is if unsure.' +IS_TTA_HELP = ('This option performs Test-Time-Augmentation to improve the separation quality.\n\n' + 'Note: Having this selected will increase the time it takes to complete a conversion') +IS_POST_PROCESS_HELP = ('This option can potentially identify leftover instrumental artifacts within the vocal outputs. \nThis option may improve the separation of some songs.\n\n' +\ + 'Note: Selecting this option can adversely affect the conversion process, depending on the track. Because of this, it is only recommended as a last resort.') +IS_HIGH_END_PROCESS_HELP = 'The application will mirror the missing frequency range of the output.' +SHIFTS_HELP = ('Performs multiple predictions with random shifts of the input and averages them.\n\n' + '• The higher number of shifts, the longer the prediction will take. \n- Not recommended unless you have a GPU.') +OVERLAP_HELP = ('• This option controls the amount of overlap between prediction windows.\n' + ' - Higher values can provide better results, but will lead to longer processing times.\n' + ' - You can choose between 0.001-0.999') +MDX_OVERLAP_HELP = ('• This option controls the amount of overlap between prediction windows.\n' + ' - Higher values can provide better results, but will lead to longer processing times.\n' + ' - For Non-MDX23C models: You can choose between 0.001-0.999') +OVERLAP_23_HELP = ('• This option controls the amount of overlap between prediction windows.\n' + ' - Higher values can provide better results, but will lead to longer processing times.') +IS_SEGMENT_DEFAULT_HELP = '• The segment size is set based on the value provided in a chosen model\'s associated \nconfig file (yaml).' +IS_SPLIT_MODE_HELP = '• Enables \"Segments\". \n• Deselecting this option is only recommended for those with powerful PCs.' +IS_DEMUCS_COMBINE_STEMS_HELP = 'The application will create the secondary stem by combining the remaining stems \ninstead of inverting the primary stem with the mixture.' +COMPENSATE_HELP = 'Compensates the audio of the primary stems to allow for a better secondary stem.' +IS_DENOISE_HELP = ('• Standard: This setting reduces the noise created by MDX-Net models.\n' + ' - This option only reduces noise in non-MDX23 models.\n' + '• Denoise Model: This setting employs a special denoise model to eliminate noise produced by any MDX-Net model.\n' + ' - This option works on all MDX-Net models.\n' + ' - You must have the "UVR-DeNoise-Lite" VR Arch model installed to use this option.\n' + '• Please Note: Both options will increase separation time.') + +VOC_SPLIT_MODEL_SELECT_HELP = '• Select a model from the list of lead and backing vocal models to run through vocal stems automatically.' +IS_VOC_SPLIT_INST_SAVE_SELECT_HELP = '• When activated, you will receive extra instrumental outputs that include: one with just the lead vocals and another with only the backing vocals.' +IS_VOC_SPLIT_MODEL_SELECT_HELP = ('• When activated, this option auto-processes generated vocal stems, using either a karaoke model to remove lead vocals or another to remove backing vocals.\n' + ' - This option splits the vocal track into two separate parts: lead vocals and backing vocals, providing two extra vocal outputs.\n' + ' - The results will be organized in the same way, whether you use a karaoke model or a background vocal model.\n' + ' - This option does not work in ensemble mode at this time.') +IS_DEVERB_OPT_HELP = ('• Select the vocal type you wish to deverb automatically.\n' + ' - Example: Choosing "Lead Vocals Only" will only remove reverb from a lead vocal stem.') +IS_DEVERB_VOC_HELP = ('• This option removes reverb from a vocal stem.\n' + ' - You must have the "UVR-DeEcho-DeReverb" VR Arch model installed to use this option.\n' + ' - This option does not work in ensemble mode at this time.') +IS_FREQUENCY_MATCH_HELP = 'Matches the frequency cut-off of the primary stem to that of the secondary stem.' +CLEAR_CACHE_HELP = 'Clears settings for unrecognized models chosen by the user.' +IS_SAVE_ALL_OUTPUTS_ENSEMBLE_HELP = 'If enabled, all individual ensemble-generated outputs are retained.' +IS_APPEND_ENSEMBLE_NAME_HELP = 'When enabled, the ensemble name is added to the final output.' +IS_WAV_ENSEMBLE_HELP = ( + 'Processes ensemble algorithms with waveforms instead of spectrograms when activated:\n' + '• Might lead to increased distortion.\n' + '• Waveform ensembling is faster than spectrogram ensembling.' +) +DONATE_HELP = 'Opens official UVR "Buy Me a Coffee" external link for project donations!' +IS_INVERT_SPEC_HELP = ( + 'Potentially enhances the secondary stem quality:\n' + '• Inverts primary stem using spectrograms, instead of waveforms.\n' + '• Slightly slower inversion method.' +) +IS_TESTING_AUDIO_HELP = 'Appends a 10-digit number to saved files to avoid accidental overwrites.' +IS_MODEL_TESTING_AUDIO_HELP = 'Appends the model name to outputs for comparison across different models.' +IS_ACCEPT_ANY_INPUT_HELP = ( + 'Allows all types of inputs when enabled, even non-audio formats.\n' + 'For experimental use only. Not recommended for regular use.' +) +IS_TASK_COMPLETE_HELP = 'Plays a chime upon process completion or failure when activated.' +DELETE_YOUR_SETTINGS_HELP = ( + 'Contains your saved settings. Confirmation will be requested before deleting a selected setting.' +) +SET_STEM_NAME_HELP = 'Select the primary stem for the given model.' +IS_CREATE_MODEL_FOLDER_HELP = ('Two new directories will be generated for the outputs in the export directory after each conversion.\n\n' + '• Example: \n' + '─ Export Directory\n' + ' └── First Directory (Named after the model)\n' + ' └── Second Directory (Named after the track)\n' + ' └── Output File(s)') +MDX_DIM_T_SET_HELP = INTERNAL_MODEL_ATT +MDX_DIM_F_SET_HELP = INTERNAL_MODEL_ATT + +MDX_N_FFT_SCALE_SET_HELP = 'Specify the N_FFT size used during model training.' +POPUP_COMPENSATE_HELP = ( + f'Select the appropriate volume compensation for the chosen model.\n' + f'Reminder: {COMPENSATE_HELP}' +) +VR_MODEL_PARAM_HELP = 'Select the required parameters to run the chosen model.' +CHOSEN_ENSEMBLE_HELP = ( + 'Default Ensemble Selections:\n' + '• Save the current ensemble configuration.\n' + '• Clear all selected models.\n' + 'Note: You can also select previously saved ensembles.' +) +CHOSEN_PROCESS_METHOD_HELP = ( + 'Choose a Processing Method:\n' + 'Select from various AI networks and algorithms to process your track:\n' + '\n' + '• VR Architecture: Uses magnitude spectrograms for source separation.\n' + '• MDX-Net: Employs a Hybrid Spectrogram network for source separation.\n' + '• Demucs v3: Also utilizes a Hybrid Spectrogram network for source separation.\n' + '• Ensemble Mode: Combine results from multiple models and networks for optimal results.\n' + '• Audio Tools: Additional utilities for added convenience.' +) + +INPUT_FOLDER_ENTRY_HELP = ( + 'Select Input:\n' + 'Choose the audio file(s) you want to process.' +) +INPUT_FOLDER_ENTRY_HELP_2 = ( + 'Input Option Menu:\n' + 'Click to access the input option menu.' +) +OUTPUT_FOLDER_ENTRY_HELP = ( + 'Select Output:\n' + 'Choose the directory where the processed files will be saved.' +) +INPUT_FOLDER_BUTTON_HELP = ( + 'Open Input Folder Button:\n' + 'Open the directory containing the selected input audio file(s).' +) +OUTPUT_FOLDER_BUTTON_HELP = ( + 'Open Output Folder Button:\n' + 'Open the selected output folder.' +) +CHOOSE_MODEL_HELP = ( + 'Each processing method has its own set of options and models.\n' + 'Choose the model associated with the selected processing method here.' +) +FORMAT_SETTING_HELP = 'Save Outputs As: ' +SECONDARY_MODEL_ACTIVATE_HELP = ( + 'When enabled, the application will perform an additional inference using the selected model(s) above.' +) +SECONDARY_MODEL_HELP = ( + 'Choose the Secondary Model:\n' + 'Select the secondary model associated with the stem you want to process with the current method.' +) + +INPUT_SEC_FIELDS_HELP = ( + 'Right click here to choose your inputs!' +) + +SECONDARY_MODEL_SCALE_HELP = ('The scale determines how the final audio outputs will be averaged between the primary and secondary models.\n\nFor example:\n\n' + '• 10% - 10 percent of the main model result will be factored into the final result.\n' + '• 50% - The results from the main and secondary models will be averaged evenly.\n' + '• 90% - 90 percent of the main model result will be factored into the final result.') +PRE_PROC_MODEL_ACTIVATE_HELP = ( + 'When enabled, the application will use the selected model to isolate the instrumental stem.\n' + 'Subsequently, all non-vocal stems will be extracted from this generated instrumental.\n' + '\n' + 'Key Points:\n' + '• This feature can significantly reduce vocal bleed in non-vocal stems.\n' + '• Available exclusively in the Demucs tool.\n' + '• Compatible only with non-vocal and non-instrumental stem outputs.\n' + '• Expect an increase in total processing time.\n' + '• Only the VR or MDX-Net Vocal Instrumental/Vocals models can be chosen for this process.' +) + +AUDIO_TOOLS_HELP = ( + 'Select from various audio tools to process your track:\n' + '\n' + '• Manual Ensemble: Requires 2 or more selected files as inputs. This allows tracks to be processed using the algorithms from Ensemble Mode.\n' + '• Time Stretch: Adjust the playback speed of the selected inputs to be faster or slower.\n' + '• Change Pitch: Modify the pitch of the selected inputs.\n' + '• Align Inputs: Choose 2 audio file and the application will align them and provide the difference in alignment.\n' + ' - This tool provides similar functionality to "Utagoe."\n' + ' - Primary Audio: This is usually a mixture.\n' + ' - Secondary Audio: This is usually an instrumental.\n' + '• Matchering: Choose 2 audio files. The matchering algorithm will master the target audio to have the same RMS, FR, peak amplitude, and stereo width as the reference audio.' +) + +PRE_PROC_MODEL_INST_MIX_HELP = 'When enabled, the application will generate a third output without the selected stem and vocals.' +MODEL_SAMPLE_MODE_HELP = ('Allows the user to process only part of a track to sample settings or a model without running a full conversion.\n\nNotes:\n\n' + '• The number in the parentheses is the current number of seconds the generated sample will be.\n' + '• You can choose the number of seconds to extract from the track in the \"Additional Settings\" menu.') + +POST_PROCESS_THREASHOLD_HELP = ('Allows the user to control the intensity of the Post_process option.\n\nNotes:\n\n' + '• Higher values potentially remove more artifacts. However, bleed might increase.\n' + '• Lower values limit artifact removal.') + +BATCH_SIZE_HELP = ('Specify the number of batches to be processed at a time.\n\nNotes:\n\n' + '• Higher values mean more RAM usage but slightly faster processing times.\n' + '• Lower values mean less RAM usage but slightly longer processing times.\n' + '• Batch size value has no effect on output quality.') + +VR_MODEL_NOUT_HELP = "" +VR_MODEL_NOUT_LSTM_HELP = "" + +IS_PHASE_HELP = 'Select the phase for the secondary audio.\n• Note: Using the "Automatic" option is strongly recommended.' +IS_ALIGN_TRACK_HELP = 'Enable this to save the secondary track once aligned.' +IS_MATCH_SILENCE_HELP = ( + 'Aligns the initial silence of the secondary audio with the primary audio.\n' + '• Note: Avoid using this option if the primary audio begins solely with vocals.' +) +IS_MATCH_SPEC_HELP = 'Align the secondary audio based on the primary audio\'s spectrogram.\n• Note: This may enhance alignment in specific cases.' + +TIME_WINDOW_ALIGN_HELP = ( + 'This setting determines the window size for alignment analysis, especially for pairs with minor timing variations:\n' + '\n' + '• None: Disables time window analysis.\n' + '• 1: Analyzes pair by 0.0625-second windows.\n' + '• 2: Analyzes pair by 0.125-second windows.\n' + '• 3: Analyzes pair by 0.25-second windows.\n' + '• 4: Analyzes pair by 0.50-second windows.\n' + '• 5: Analyzes pair by 0.75-second windows.\n' + '• 6: Analyzes pair by 1-second windows.\n' + '• 7: Analyzes pair by 2-second windows.\n' + '\n' + 'Shifts Options:\n' + '• Low: Cycles through 0.0625 and 0.5-second windows to find an optimal match.\n' + '• Medium: Cycles through 0.0625, 0.125, and 0.5-second windows to find an optimal match.\n' + '• High: Cycles through 0.0625, 0.125, 0.25, and 0.5-second windows to find an optimal match.\n' + '\n' + 'Important Points to Consider:\n' + ' - Using the "Shifts" option may require more processing time and might not guarantee better results.\n' + ' - Opting for smaller analysis windows can increase processing times.\n' + ' - The best settings are likely to vary based on the specific tracks being processed.' +) +INTRO_ANALYSIS_ALIGN_HELP = ( + 'This setting determines the portion of the audio input to be analyzed for initial alignment.\n' + '\n' + '• Default: Analyzes 10% (or 1/10th) of the audio\'s total length.\n' + '• 1: Analyzes 12.5% (or 1/8th) of the audio\'s total length.\n' + '• 2: Analyzes 16.67% (or 1/6th) of the audio\'s total length.\n' + '• 3: Analyzes 25% (or 1/4th) of the audio\'s total length.\n' + '• 4: Analyzes 50% (or half) of the audio\'s total length.\n' + '\n' + 'Shifts Options:\n' + '• Low: Cycles through 2 intro analysis values.\n' + '• Medium: Cycles through 3 intro analysis values.\n' + '• High: Cycles through 5 intro analysis values.\n' + '\n' + 'Important Points to Consider:\n' + ' - Using the "Shifts" option will require more processing time and might not guarantee better results.\n' + ' - Optimal settings may vary depending on the specific tracks being processed.' +) + +VOLUME_ANALYSIS_ALIGN_HELP = ( + 'This setting specifies the volume adjustments to be made on the secondary input:\n' + '\n' + '• None: No volume adjustments are made.\n' + '• Low: Analyzes the audio within a 4dB range, adjusting in 1dB increments.\n' + '• Medium: Analyzes the audio within a 6dB range, adjusting in 1dB increments.\n' + '• High: Analyzes the audio within a 6dB range, adjusting in 0.5dB increments.\n' + '• Very High: Analyzes the audio within a 10dB range, adjusting in 0.5dB increments.\n' + '\n' + 'Important Points to Consider:\n' + ' - Selecting more extensive analysis options (e.g., High, Very High) will lead to longer processing times.\n' + ' - Optimal settings might vary based on the specific tracks being processed.' +) + +PHASE_SHIFTS_ALIGN_HELP = ( + 'This setting specifies the phase adjustments to be made on the secondary input:\n' + '\n' + 'Shifts Options:\n' + '• None: No phase adjustments are made.\n' + '• Very Low: Analyzes the audio within range of 2 different phase positions.\n' + '• Low: Analyzes the audio within range of 4 different phase positions.\n' + '• Medium: Analyzes the audio within range of 8 different phase positions.\n' + '• High: Analyzes the audio within range of 18 different phase positions.\n' + '• Very High: Analyzes the audio within range of 36 different phase positions.\n' + '• Maximum: Analyzes the audio in all 360 phase positions.\n' + '\n' + 'Important Points to Consider:\n' + ' - This option only works with time correction.\n' + ' - This option can be helpful if one of the inputs were from an analog source.\n' + ' - Selecting more extensive analysis options (e.g., High, Very High) will lead to longer processing times.\n' + ' - Selecting "Maximum" can take hours to process.\n' + ' - Optimal settings might vary based on the specific tracks being processed.' +) + +# Warning Messages +STORAGE_ERROR = 'Insufficient Storage', 'There is not enough storage on main drive to continue. Your main drive must have at least 3 GB\'s of storage in order for this application function properly. \n\nPlease ensure your main drive has at least 3 GB\'s of storage and try again.\n\n' +STORAGE_WARNING = 'Available Storage Low', 'Your main drive is running low on storage. Your main drive must have at least 3 GB\'s of storage in order for this application function properly.\n\n' +CONFIRM_WARNING = '\nAre you sure you wish to continue?' +PROCESS_FAILED = 'Process failed, please see error log\n' +EXIT_PROCESS_ERROR = 'Active Process', 'Please stop the active process or wait for it to complete before you exit.' +EXIT_HALTED_PROCESS_ERROR = 'Halting Process', 'Please wait for the application to finish halting the process before exiting.' +EXIT_DOWNLOAD_ERROR = 'Active Download', 'Please stop the download or wait for it to complete before you exit.' +SET_TO_DEFAULT_PROCESS_ERROR = 'Active Process', 'You cannot reset all of the application settings during an active process.' +SET_TO_ANY_PROCESS_ERROR = 'Active Process', 'You cannot reset the application settings during an active process.' +RESET_ALL_TO_DEFAULT_WARNING = 'Reset Settings Confirmation', 'All application settings will be set to factory default.\n\nAre you sure you wish to continue?' +AUDIO_VERIFICATION_CHECK = lambda i, e:f'++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nBroken File Removed: \n\n{i}\n\nError Details:\n\n{e}\n++++++++++++++++++++++++++++++++++++++++++++++++++++' +INVALID_ONNX_MODEL_ERROR = 'Invalid Model', 'The file selected is not a valid MDX-Net model. Please see the error log for more information.' +INVALID_PARAM_MODEL_ERROR = 'Select Model Param', 'Please choose a model param or click \'Cancel\'.' +UNRECOGNIZED_MODEL = 'Unrecognized Model Detected', ' is an unrecognized model.\n\n' + \ + 'Would you like to select the correct parameters before continuing?' +STOP_PROCESS_CONFIRM = 'Confirmation', 'You are about to stop all active processes.\n\nAre you sure you wish to continue?' +NO_ENSEMBLE_SELECTED = 'No Models Selected', 'Please select ensemble and try again.' +PICKLE_CORRU = 'File Corrupted', 'Unable to load this ensemble.\n\n' + \ + 'Would you like to remove this ensemble from your list?' +DELETE_ENS_ENTRY = 'Confirm Removal', 'Are you sure you want to remove this entry?' + +# Separation Text +LOADING_MODEL = 'Loading model...' +INFERENCE_STEP_1 = 'Running inference...' +INFERENCE_STEP_1_SEC = 'Running inference (secondary model)...' +INFERENCE_STEP_1_4_STEM = lambda stem:f'Running inference (secondary model for {stem})...' +INFERENCE_STEP_1_PRE = 'Running inference (pre-process model)...' +INFERENCE_STEP_1_VOC_S = 'Splitting vocals...' +INFERENCE_STEP_2_PRE = lambda pm, m:f'Loading pre-process model ({pm}: {m})...' +INFERENCE_STEP_2_SEC = lambda pm, m:f'Loading secondary model ({pm}: {m})...' +INFERENCE_STEP_2_VOC_S = lambda pm, m:f'Loading vocal splitter model ({pm}: {m})...' +INFERENCE_STEP_2_SEC_CACHED_MODOEL = lambda pm, m:f'Secondary model ({pm}: {m}) cache loaded.\n' +INFERENCE_STEP_2_PRE_CACHED_MODOEL = lambda pm, m:f'Pre-process model ({pm}: {m}) cache loaded.\n' +INFERENCE_STEP_2_SEC_CACHED = 'Loading cached secondary model source(s)... Done!\n' +INFERENCE_STEP_2_PRIMARY_CACHED = ' Model cache loaded.\n' +INFERENCE_STEP_2 = 'Inference complete.' +INFERENCE_STEP_DEVERBING = ' Deverbing...' +SAVING_STEM = 'Saving ', ' stem...' +SAVING_ALL_STEMS = 'Saving all stems...' +ENSEMBLING_OUTPUTS = 'Ensembling outputs...' +DONE = ' Done!\n' +ENSEMBLES_SAVED = 'Ensembled outputs saved!\n\n' + +#Additional Text +CHOOSE_PROC_METHOD_MAIN_LABEL = 'CHOOSE PROCESS METHOD' +SELECT_SAVED_SETTINGS_MAIN_LABEL = 'SELECT SAVED SETTINGS' +CHOOSE_MDX_MODEL_MAIN_LABEL = 'CHOOSE MDX-NET MODEL' +BATCHES_MDX_MAIN_LABEL = 'BATCH SIZE' +VOL_COMP_MDX_MAIN_LABEL = 'VOLUME COMPENSATION' +SEGMENT_MDX_MAIN_LABEL = 'SEGMENT SIZE' +SELECT_VR_MODEL_MAIN_LABEL = 'CHOOSE VR MODEL' +AGGRESSION_SETTING_MAIN_LABEL = 'AGGRESSION SETTING' +WINDOW_SIZE_MAIN_LABEL = 'WINDOW SIZE' +CHOOSE_DEMUCS_MODEL_MAIN_LABEL = 'CHOOSE DEMUCS MODEL' +CHOOSE_STEMS_MAIN_LABEL = 'CHOOSE STEM(S)' +CHOOSE_SEGMENT_MAIN_LABEL = 'SEGMENT' +ENSEMBLE_OPTIONS_MAIN_LABEL = 'ENSEMBLE OPTIONS' +CHOOSE_MAIN_PAIR_MAIN_LABEL = 'MAIN STEM PAIR' +CHOOSE_ENSEMBLE_ALGORITHM_MAIN_LABEL = 'ENSEMBLE ALGORITHM' +AVAILABLE_MODELS_MAIN_LABEL = 'AVAILABLE MODELS' +CHOOSE_AUDIO_TOOLS_MAIN_LABEL = 'CHOOSE AUDIO TOOL' +CHOOSE_MANUAL_ALGORITHM_MAIN_LABEL = 'CHOOSE ALGORITHM' +CHOOSE_RATE_MAIN_LABEL = 'RATE' +CHOOSE_SEMITONES_MAIN_LABEL = 'SEMITONES' +GPU_CONVERSION_MAIN_LABEL = 'GPU Conversion' +CHANGE_LOG_HEADER = lambda patch:f"Patch Version:\n\n{patch}" +INVALID_INPUT_E = ' Invalid input! ' +LB_UP = "Move Selection Up" +LB_DOWN = "Move Selection Down" +LB_CLEAR = "Clear Box" +LB_MOVE_OVER_P = "Move Selection to Secondary List" +LB_MOVE_OVER_S = "Move Selection to Primary List" +FILE_ONE_MAIN_LABEL = "PRIMARY AUDIO" +FILE_TWO_MAIN_LABEL = "SECONDARY AUDIO" +FILE_ONE_MATCH_MAIN_LABEL = "TARGET AUDIO" +FILE_TWO_MATCH_MAIN_LABEL = "REFERENCE AUDIO" +TIME_WINDOW_MAIN_LABEL = "TIME ADJUSTMENT" +INTRO_ANALYSIS_MAIN_LABEL = "INTRO ANALYSIS" +VOLUME_ADJUSTMENT_MAIN_LABEL = "VOLUME ADJUSTMENT" +SELECT_INPUTS = "Select Input(s)" +SELECTED_INPUTS = 'Selected Inputs' +WIDEN_BOX = 'Widen Box' +CONFIRM_ENTRIES = 'Confirm Entries' +CLOSE_WINDOW = 'Close Window' +DUAL_AUDIO_PROCESSING = 'Dual Audio Batch Processing' +CANCEL_TEXT = "Cancel" +CONFIRM_TEXT = "Confirm" +SELECT_MODEL_TEXT = 'Select Model' +NONE_SELECTED = 'None Selected' +SAVE_TEXT = 'Save' +OVERLAP_TEXT = 'Overlap' +ACCEPT_ANY_INPUT_TEXT = 'Accept Any Input' +ACTIVATE_PRE_PROCESS_MODEL_TEXT = 'Activate Pre-process Model' +ACTIVATE_SECONDARY_MODEL_TEXT = 'Activate Secondary Model' +ADDITIONAL_MENUS_INFORMATION_TEXT = 'Additional Menus & Information' +ADDITIONAL_SETTINGS_TEXT = 'Additional Settings' +ADVANCED_ALIGN_TOOL_OPTIONS_TEXT = 'Advanced Align Tool Options' +ADVANCED_DEMUCS_OPTIONS_TEXT = 'Advanced Demucs Options' +ADVANCED_ENSEMBLE_OPTIONS_TEXT = 'Advanced Ensemble Options' +ADVANCED_MDXNET23_OPTIONS_TEXT = 'Advanced MDX-NET23 Options' +ADVANCED_MDXNET_OPTIONS_TEXT = 'Advanced MDX-Net Options' +ADVANCED_OPTION_MENU_TEXT = 'Advanced Option Menu' +ADVANCED_VR_OPTIONS_TEXT = 'Advanced VR Options' +AGGRESSION_SETTING_TEXT = 'Aggression Setting' +APPEND_ENSEMBLE_NAME_TEXT = 'Append Ensemble Name' +APPLICATION_DOWNLOAD_CENTER_TEXT = 'Application Download Center' +APPLICATION_UPDATES_TEXT = 'Application Updates' +AUDIO_FORMAT_SETTINGS_TEXT = 'Audio Format Settings' +BALANCE_VALUE_TEXT = 'Balance Value' +BATCH_SIZE_TEXT = 'Batch Size' +BV_MODEL_TEXT = 'BV Model' +CHANGE_MODEL_DEFAULT_TEXT = 'Change Model Default' +CHANGE_MODEL_DEFAULTS_TEXT = 'Change Model Defaults' +CHANGE_PARAMETERS_TEXT = 'Change Parameters' +CHOOSE_ADVANCED_MENU_TEXT = 'Choose Advanced Menu' +CHOOSE_MODEL_PARAM_TEXT = 'Choose Model Param' +CLEAR_AUTOSET_CACHE_TEXT = 'Clear Auto-Set Cache' +COMBINE_STEMS_TEXT = 'Combine Stems' +CONFIRM_UPDATE_TEXT = 'Confirm Update' +COPIED_TEXT = 'Copied!' +COPY_ALL_TEXT_TEXT = 'Copy All Text' +DEFINED_PARAMETERS_DELETED_TEXT = 'Defined Parameters Deleted' +DELETE_PARAMETERS_TEXT = 'Delete Parameters' +DELETE_USER_SAVED_SETTING_TEXT = 'Delete User Saved Setting' +DEMUCS_TEXT = 'Demucs' +DENOISE_OUTPUT_TEXT = 'Denoise Output' +DEVERB_VOCALS_TEXT = 'Deverb Vocals' +DONE_TEXT = 'Done' +DOWNLOAD_CENTER_TEXT = 'Download Center' +DOWNLOAD_CODE_TEXT = 'Download Code' +DOWNLOAD_LINKS_TEXT = 'Download Link(s)' +DOWNLOAD_UPDATE_IN_APPLICATION_TEXT = 'Download Update in Application' +ENABLE_HELP_HINTS_TEXT = 'Enable Help Hints' +ENABLE_TTA_TEXT = 'Enable TTA' +ENABLE_VOCAL_SPLIT_MODE_TEXT = 'Enable Vocal Split Mode' +ENSEMBLE_NAME_TEXT = 'Ensemble Name' +ENSEMBLE_WAVFORMS_TEXT = 'Ensemble Wavforms' +ERROR_CONSOLE_TEXT = 'Error Console' +GENERAL_MENU_TEXT = 'General Menu' +GENERAL_PROCESS_SETTINGS_TEXT = 'General Process Settings' +GENERATE_MODEL_FOLDER_TEXT = 'Generate Model Folder' +HIGHEND_PROCESS_TEXT = 'High-End Process' +INPUT_CODE_TEXT = 'Input Code' +INPUT_STEM_NAME_TEXT = 'Input Stem Name' +INPUT_UNIQUE_STEM_NAME_TEXT = 'Input Unique Stem Name' +IS_INVERSE_STEM_TEXT = 'Is Inverse Stem' +KARAOKE_MODEL_TEXT = 'Karaoke Model' +MANUAL_DOWNLOADS_TEXT = 'Manual Downloads' +MATCH_FREQ_CUTOFF_TEXT = 'Match Freq Cut-off' +MDXNET_C_MODEL_PARAMETERS_TEXT = 'MDX-Net C Model Parameters' +MDXNET_MODEL_SETTINGS_TEXT = 'MDX-Net Model Settings' +MDXNET_TEXT = 'MDX-Net' +MODEL_PARAMETERS_CHANGED_TEXT = 'Model Parameters Changed' +MODEL_SAMPLE_MODE_SETTINGS_TEXT = 'Model Sample Mode Settings' +MODEL_TEST_MODE_TEXT = 'Model Test Mode' +MP3_BITRATE_TEXT = 'Mp3 Bitrate' +NAME_SETTINGS_TEXT = 'Name Settings' +NO_DEFINED_PARAMETERS_FOUND_TEXT = 'No Defined Parameters Found' +NO_TEXT = 'No' +NORMALIZE_OUTPUT_TEXT = 'Normalize Output' +USE_OPENCL_TEXT = 'Use OpenCL' +NOT_ENOUGH_MODELS_TEXT = 'Not Enough Models' +NOTIFICATION_CHIMES_TEXT = 'Notification Chimes' +OPEN_APPLICATION_DIRECTORY_TEXT = 'Open Application Directory' +OPEN_LINK_TO_MODEL_TEXT = 'Open Link to Model' +OPEN_MODEL_DIRECTORY_TEXT = 'Open Model Directory' +OPEN_MODEL_FOLDER_TEXT = 'Open Model Folder' +OPEN_MODELS_FOLDER_TEXT = 'Open Models Folder' +PHASE_SHIFTS_TEXT = 'Phase Shifts' +POST_PROCESS_TEXT = 'Post-Process' +POST_PROCESS_THRESHOLD_TEXT = 'Post-process Threshold' +PREPROCESS_MODEL_CHOOSE_TEXT = 'Pre-process Model' +PRIMARY_STEM_TEXT = 'Primary Stem' +REFRESH_LIST_TEXT = 'Refresh List' +REMOVE_SAVED_ENSEMBLE_TEXT = 'Remove Saved Ensemble' +REPORT_ISSUE_TEXT = 'Report Issue' +RESET_ALL_SETTINGS_TO_DEFAULT_TEXT = 'Reset All Settings to Default' +RESTART_APPLICATION_TEXT = 'Restart Application' +SAMPLE_CLIP_DURATION_TEXT = 'Sample Clip Duration' +SAVE_ALIGNED_TRACK_TEXT = 'Save Aligned Track' +SAVE_ALL_OUTPUTS_TEXT = 'Save All Outputs' +SAVE_CURRENT_ENSEMBLE_TEXT = 'Save Current Ensemble' +SAVE_CURRENT_SETTINGS_TEXT = 'Save Current Settings' +SAVE_INSTRUMENTAL_MIXTURE_TEXT = 'Save Instrumental Mixture' +SAVE_SPLIT_VOCAL_INSTRUMENTALS_TEXT = 'Save Split Vocal Instrumentals' +SECONDARY_MODEL_TEXT = 'Secondary Model' +SECONDARY_PHASE_TEXT = 'Secondary Phase' +SECONDS_TEXT = 'Seconds' +SEGMENT_DEFAULT_TEXT = 'Segment Default' +SEGMENT_SIZE_TEXT = 'Segment Size' +SEGMENTS_TEXT = 'Segments' +SELECT_DOWNLOAD_TEXT = 'Select Download' +SELECT_MODEL_PARAM_TEXT = 'Select Model Param' +SELECT_VOCAL_TYPE_TO_DEVERB_TEXT = 'Select Vocal Type to Deverb' +SELECTED_MODEL_PLACEMENT_PATH_TEXT = 'Selected Model Placement Path' +SETTINGS_GUIDE_TEXT = 'Settings Guide' +SETTINGS_TEST_MODE_TEXT = 'Settings Test Mode' +SHIFT_CONVERSION_PITCH_TEXT = 'Shift Conversion Pitch' +SHIFTS_TEXT = 'Shifts' +SILENCE_MATCHING_TEXT = 'Silence Matching' +SPECIFY_MDX_NET_MODEL_PARAMETERS_TEXT = 'Specify MDX-Net Model Parameters' +SPECIFY_PARAMETERS_TEXT = 'Specify Parameters' +SPECIFY_VR_MODEL_PARAMETERS_TEXT = 'Specify VR Model Parameters' +SPECTRAL_INVERSION_TEXT = 'Spectral Inversion' +SPECTRAL_MATCHING_TEXT = 'Spectral Matching' +SPLIT_MODE_TEXT = 'Split Mode' +STEM_NAME_TEXT = 'Stem Name' +STOP_DOWNLOAD_TEXT = 'Stop Download' +SUPPORT_UVR_TEXT = 'Support UVR' +TRY_MANUAL_DOWNLOAD_TEXT = 'Try Manual Download' +UPDATE_FOUND_TEXT = 'Update Found' +USER_DOWNLOAD_CODES_TEXT = 'User Download Codes' +UVR_BUY_ME_A_COFFEE_LINK_TEXT = 'UVR \'Buy Me a Coffee\' Link' +UVR_ERROR_LOG_TEXT = 'UVR Error Log' +UVR_PATREON_LINK_TEXT = 'UVR Patreon Link' +VOCAL_DEVERB_OPTIONS_TEXT = 'Vocal Deverb Options' +VOCAL_SPLIT_MODE_OPTIONS_TEXT = 'Vocal Split Mode Options' +VOCAL_SPLIT_OPTIONS_TEXT = 'Vocal Split Options' +VOLUME_COMPENSATION_TEXT = 'Volume Compensation' +VR_51_MODEL_TEXT = 'VR 5.1 Model' +VR_ARCH_TEXT = 'VR Arch' +WAV_TYPE_TEXT = 'Wav Type' +CUDA_NUM_TEXT = 'GPU Device' +WINDOW_SIZE_TEXT = 'Window Size' +YES_TEXT = 'Yes' +VERIFY_INPUTS_TEXT = 'Verify Inputs' +AUDIO_INPUT_TOTAL_TEXT = 'Audio Input Total' +MDX23C_ONLY_OPTIONS_TEXT = 'MDXNET23 Only Options' +PROCESS_STARTING_TEXT = 'Process starting... ' +MISSING_MESS_TEXT = 'is missing or currupted.' +SIMILAR_TEXT = "are the same." +LOADING_VERSION_INFO_TEXT = 'Loading version information...' +CHECK_FOR_UPDATES_TEXT = 'Check for Updates' +INFO_UNAVAILABLE_TEXT = "Information unavailable." +UPDATE_CONFIRMATION_TEXT = 'Are you sure you want to continue?\n\nThe application will need to be restarted.\n' +BROKEN_OR_INCOM_TEXT = 'Broken or Incompatible File(s) Removed. Check Error Log for details.' +BMAC_UVR_TEXT = 'UVR \"Buy Me a Coffee\" Link' +MDX_MENU_WAR_TEXT = '(Leave this setting as is if you are unsure.)' +NO_FILES_TEXT = 'No Files' +CHOOSE_INPUT_TEXT = 'Choose Input' +OPEN_INPUT_DIR_TEXT = 'Open Input Directory' +BATCH_PROCESS_MENU_TEXT = 'Batch Process Menu' +TEMP_FILE_DELETION_TEXT = 'Temp File Deletion' +VOCAL_SPLITTER_OPTIONS_TEXT = 'Vocal Splitter Options' +WAVEFORM_ENSEMBLE_TEXT = 'Waveform Ensemble' +SELECT_INPUT_TEXT = 'Select Input' +SELECT_OUTPUT_TEXT = 'Select Output' +TIME_CORRECTION_TEXT = 'Time Correction' +UVR_LIS_INFO_TEXT = 'UVR License Information' +ADDITIONAL_RES_CREDITS_TEXT = 'Additional Resources & Credits' +SAVE_INST_MIXTURE_TEXT = 'Save Instrumental Mixture' +DOWNLOAD_UPDATE_IN_APP_TEXT = 'Download Update in Application' +WAVE_TYPE_TEXT = 'WAVE TYPE' +OPEN_LINK_TO_MODEL_TEXT = "Open Link to Model" +OPEN_MODEL_DIRECTORY = "Open Model Directory" +SELECTED_MODEL_PLACE_PATH_TEXT = 'Selected Model Placement Path' +IS_INVERSE_STEM_TEXT = "Is Inverse Stem" +INPUT_STEM_NAME_TEXT = "Input Stem Name" +INPUT_UNIQUE_STEM_NAME_TEXT = "Input Unique Stem Name" +DONE_MENU_TEXT = "Done" +OK_TEXT = "Ok" +ENSEMBLE_WARNING_NOT_ENOUGH_SHORT_TEXT = "Not Enough Models" +ENSEMBLE_WARNING_NOT_ENOUGH_TEXT = "You must select 2 or more models to save an ensemble." +NOT_ENOUGH_ERROR_TEXT = "Not enough files to process.\n" +INVALID_FOLDER_ERROR_TEXT = 'Invalid Folder', 'Your given export path is not a valid folder!' + +GET_DL_VIP_CODE_TEXT = ("Obtain codes by visiting one of the following links below." + "\nFrom there you can donate, pledge, " + "or just obatain the code!\n (Donations are not required to obtain VIP code)") +CONFIRM_RESTART_TEXT = 'Restart Confirmation', 'This will restart the application and halt any running processes. Your current settings will be saved. \n\n Are you sure you wish to continue?' +ERROR_LOADING_FILE_TEXT = 'Error Loading the Following File', 'Raw Error Details' +LOADING_MODEL_TEXT = 'Loading model' +FULL_APP_SET_TEXT = 'Full Application Settings' +PROCESS_STARTING_TEXT = 'Process starting... ' +PROCESS_STOPPED_BY_USER = '\n\nProcess stopped by user.' +NEW_UPDATE_FOUND_TEXT = lambda version:f"\n\nNew Update Found: {version}\n\nClick the update button in the \"Settings\" menu to download and install!" +ROLL_BACK_TEXT = 'Click Here to Roll Back' + +def secondary_stem(stem:str): + """Determines secondary stem""" + + stem = stem if stem else NO_STEM + + if stem in STEM_PAIR_MAPPER.keys(): + for key, value in STEM_PAIR_MAPPER.items(): + if stem in key: + secondary_stem = value + else: + secondary_stem = stem.replace(NO_STEM, "") if NO_STEM in stem else f"{NO_STEM}{stem}" + + return secondary_stem diff --git a/gui_data/error_handling.py b/gui_data/error_handling.py new file mode 100644 index 0000000..b74d345 --- /dev/null +++ b/gui_data/error_handling.py @@ -0,0 +1,110 @@ +from datetime import datetime +import traceback + +CUDA_MEMORY_ERROR = "CUDA out of memory" +CUDA_RUNTIME_ERROR = "CUDNN error executing cudnnSetTensorNdDescriptor" +DEMUCS_MODEL_MISSING_ERROR = "is neither a single pre-trained model or a bag of models." +ENSEMBLE_MISSING_MODEL_ERROR = "local variable \'enseExport\' referenced before assignment" +FFMPEG_MISSING_ERROR = """audioread\__init__.py", line 116, in audio_open""" +FILE_MISSING_ERROR = "FileNotFoundError" +MDX_MEMORY_ERROR = "onnxruntime::CudaCall CUDA failure 2: out of memory" +MDX_MODEL_MISSING = "[ONNXRuntimeError] : 3 : NO_SUCHFILE" +MDX_MODEL_SETTINGS_ERROR = "Got invalid dimensions for input" +MDX_RUNTIME_ERROR = "onnxruntime::BFCArena::AllocateRawInternal" +MODULE_ERROR = "ModuleNotFoundError" +WINDOW_SIZE_ERROR = "h1_shape[3] must be greater than h2_shape[3]" +SF_WRITE_ERROR = "sf.write" +SYSTEM_MEMORY_ERROR = "DefaultCPUAllocator: not enough memory" +MISSING_MODEL_ERROR = "'NoneType\' object has no attribute \'model_basename\'" +ARRAY_SIZE_ERROR = "ValueError: \"array is too big; `arr.size * arr.dtype.itemsize` is larger than the maximum possible size.\"" +GPU_INCOMPATIBLE_ERROR = "no kernel image is available for execution on the device" +SELECT_CORRECT_GPU = "CUDA kernel errors might be asynchronously reported at some other API call,so the stacktrace below might be incorrect." + +CONTACT_DEV = 'If this error persists, please contact the developers with the error details.' + +ERROR_MAPPER = { + CUDA_MEMORY_ERROR: + ('The application was unable to allocate enough GPU memory to use this model. ' + + 'Please close any GPU intensive applications and try again.\n' + + 'If the error persists, your GPU might not be supported.') , + CUDA_RUNTIME_ERROR: + (f'Your PC cannot process this audio file with the segment size selected. Please lower the segment size and try again.\n\n{CONTACT_DEV}'), + DEMUCS_MODEL_MISSING_ERROR: + ('The selected Demucs model is missing. ' + + 'Please download the model or make sure it is in the correct directory.'), + ENSEMBLE_MISSING_MODEL_ERROR: + ('The application was unable to locate a model you selected for this ensemble.\n\n' + + 'Please do the following to use all compatible models:\n\n1. Navigate to the \"Updates\" tab in the Help Guide.\n2. Download and install the model expansion pack.\n3. Then try again.\n\n' + + 'If the error persists, please verify all models are present.'), + FFMPEG_MISSING_ERROR: + ('The input file type is not supported or FFmpeg is missing. Please select a file type supported by FFmpeg and try again. ' + + 'If FFmpeg is missing or not installed, you will only be able to process \".wav\" files until it is available on this system. ' + + f'See the \"More Info\" tab in the Help Guide.\n\n{CONTACT_DEV}'), + FILE_MISSING_ERROR: + (f'Missing file error raised. Please address the error and try again.\n\n{CONTACT_DEV}'), + MDX_MEMORY_ERROR: + ('The application was unable to allocate enough GPU memory to use this model.\n\n' + + 'Please do the following:\n\n1. Close any GPU intensive applications.\n2. Lower the set segment size.\n3. Then try again.\n\n' + + 'If the error persists, your GPU might not be supported.'), + MDX_MODEL_MISSING: + ('The application could not detect this MDX-Net model on your system. ' + + 'Please make sure all the models are present in the correct directory.\n\n' + + 'If the error persists, please reinstall application or contact the developers.'), + MDX_RUNTIME_ERROR: + ('The application was unable to allocate enough GPU memory to use this model.\n\n' + + 'Please do the following:\n\n1. Close any GPU intensive applications.\n2. Lower the set segment size.\n3. Then try again.\n\n' + + 'If the error persists, your GPU might not be supported.'), + WINDOW_SIZE_ERROR: + ('Invalid window size.\n\n' + + 'The chosen window size is likely not compatible with this model. Please select a different size and try again.'), + SF_WRITE_ERROR: + ('Could not write audio file.\n\n' + + 'This could be due to one of the following:\n\n1. Low storage on target device.\n2. The export directory no longer exists.\n3. A system permissions issue.'), + SYSTEM_MEMORY_ERROR: + ('The application was unable to allocate enough system memory to use this model.\n\n' + + 'Please do the following:\n\n1. Restart this application.\n2. Ensure any CPU intensive applications are closed.\n3. Then try again.\n\n' + + 'Please Note: Intel Pentium and Intel Celeron processors do not work well with this application.\n\n' + + 'If the error persists, the system may not have enough RAM, or your CPU might not be supported.'), + MISSING_MODEL_ERROR: + ('Model Missing: The application was unable to locate the chosen model.\n\n' + + 'If the error persists, please verify any selected models are present.'), + GPU_INCOMPATIBLE_ERROR: + ('This process is not compatible with your GPU.\n\n' + + 'Please uncheck \"GPU Conversion\" and try again'), + SELECT_CORRECT_GPU: + ('Make sure you\'ve chosen the correct GPU.\n\n' + 'Go to the "Settings Guide", click the "Additional Settings" tab and select the correct GPU device.'), + ARRAY_SIZE_ERROR: + ('The application was not able to process the given audiofile. Please convert the audiofile to another format and try again.'), +} + +def error_text(process_method, exception): + + traceback_text = ''.join(traceback.format_tb(exception.__traceback__)) + message = f'{type(exception).__name__}: "{exception}"\nTraceback Error: "\n{traceback_text}"\n' + error_message = f'\n\nRaw Error Details:\n\n{message}\nError Time Stamp [{datetime.now().strftime("%Y-%m-%d %H:%M:%S")}]\n' + process = f'Last Error Received:\n\nProcess: {process_method}\n\n' + + for error_type, full_text in ERROR_MAPPER.items(): + if error_type in message: + final_message = full_text + break + else: + final_message = (CONTACT_DEV) + + return f"{process}{final_message}{error_message}" + +def error_dialouge(exception): + + error_name = f'{type(exception).__name__}' + traceback_text = ''.join(traceback.format_tb(exception.__traceback__)) + message = f'{error_name}: "{exception}"\n{traceback_text}"' + + for error_type, full_text in ERROR_MAPPER.items(): + if error_type in message: + final_message = full_text + break + else: + final_message = (f'An Error Occurred: {error_name}\n\n{CONTACT_DEV}') + + return final_message diff --git a/gui_data/fail_chime.wav b/gui_data/fail_chime.wav new file mode 100644 index 0000000000000000000000000000000000000000..85b23b3110c10458612dc75f97556bfc5b4c89f7 GIT binary patch literal 384692 zcmWh!W0V}(-!8kYu`;o3+cr1aSpV4O1{>Sh*qqpyXo88xY`e=<@4O%GIrX7VpX#o@ z&+pOg)44;33)v_zu=RlUNRk4< zw`3F4NA3gWODBOT5)8o7GWDWZNgXE^D-Ff7N~$n0HQwfWdq%}%54Na z7;%ZvP|W4EVp~2&$Yq0U-Ehrtn*U>9o@a}{jq9=hu(Mt8pzB^3_TJ@Y1+v8vksr!L zVHns=Vc<1j82$y{KwhE;&`bDCY#{jxYfB9;TjS7!Ft>a>KZn_qJ`X})Por&s!eIO#Nl)b^Td_B+6 z$awpP(2Js^V0=N7z=%A*|7vdMK;=9%xGMi{uu-8c6e_wHYFyeT^2m9K8{+FL4hR>> z!-NUIG_?ktjvT~pQrDR6wrRokAI-ewL(&7l)5M@UgW2A{{&MLqao*bX0r)&X0qX4AY|Q-^HEr zFp;@VLoly|@pUi!;l7^t#x*bZifdMG1$WOp-W8oc#_7u|Z*QJAt;CYYtcChdANF{_b zSmG`{RC=pKC|y^aQQEucRO!mX4W-(`PbGB=nin6=n_2igr*c8J?8EuXvX1As&7umH zXPFCkX2%t4^V-^*7VUI5aGnh;4$Nikd^7P3&_a2FG2lqXfIKk_#|3L!YH;jCW_Cgg z?SrKEy3r|D^nA)2eczN6{rse$_H_JL&El9QniaMPbHqH5scD!-4Pc^i9vuc#YQ9>N z>nk<&|INXU(V;i_SA3>F_uWgsFLzeW*kwQV;akb$cVmm+z1duZy%|*8>+Ku+@ehgK zf!}t7p8Vmtrv){o@{Sy(r>{L&B~k$Sg^%z8r5Kq4?!m?(4&ns!s!pdS|kO}{?!_sjUtU;Md! z;6X-F(Dv<4MEdbvSe2asoGto--f3Vu2qIV})495_eaBAJK#SokNd zijkmmZLp2=x39IM$o;pyuXB{$ZExiGVfQ*gXID>c_hH{lFCX|BXcKA79ueYXTwMp( zfB^CuT*RzIWL-8o&s2-pXG^2E#0}ARNhxoMuJkZEt$L*dLtQ?3Zo`YI9h-b8FEwGx zPiWkz+=vDjlVj?(NE%%8-}v0h?W4PUMkN+|?I4*N>c+JaoUY$O#4H>f-x{h$O~w1^n*MI z7$2T1_H<`Qz81|26lM4KT>24oZ2oe$)c3J_>B$eJ_TrBpTwgP)`!;{S9xVPfjumqj zi;NM9msA3=)nHb>_NZ5dNRz{HTV3~oab$YFSq-l+%zNK=E$MQP9p7mAIRBQio zQP!WSRV}s3k2XuG)yyYSTbi}0XH8pERu~#3@|p@Ue^YPGH}PowE0kbrAq|L%kQ1(> zW+?gM8D7V?4?l|R^-m6|?t}jFjzgZQ#RFVt3u-%U`O6%(ybktPIiHG0XN@gjf6mO6 zzAM>hziD!sfB!3Y(vPwE`+uJ;+?I2^Le0CfC&7k1M6-*j5v3jC1fA+E>_oswKJ& zy#gImKd9aK!SdkXZLzs$iLk}~jr*r?O(ZD?4gLIi)gSe(v3KdGQfI?=4@hc!yOJpael|LqpvhEKag4KlxT6SA%Hm!j*ycULl89N>|0TmoJs zcO(7KT`CQ$N*l;HdJA=u9>qM>?9+8G6?5dW=V2x z%*Le3F=WE-sLnAyYgOwyi^aIu)K)|4Wo!z)L%oV6a9g3J{^@FrtBw4mq_23bU=ja5 zCyCqq=R7;(*95NUXNW)cYo?g~`-{{*t3-L9!$409cA(oz*ASiEv#7EDbh=LXqUJqc zpicy%b&WAYVN$^s^jvw#=FnC zJ9|5Os|5D@?}xty>+s?5L5bz!!7=hI{5oXOeZ-$y57MpT-)NAOmb$0qs~UDx-fucl z{h)=eJ*YPc z-S__|9u2Pnj`Dxd&C)Qcu5wZ{PhGC>1->!8geTe7VqolWa!!JSUY{JVZJgRt|DwWo z!^ujY4Hqhv)8DHQr)5&#F`3DonW{-8bj^fy)Qy;BxYjZOPSY$^|DZjjX39Q3ClZLv z_Qr<9l6HO|Pv;%>d#&4?dBa)#i(DG{P`5bs-G7CS*DnhnygpL=^6hE+h7WUG$1-Mk z27R~rQhsImhi2ake#u`HPAK6bfO80U%F|zX7-%D3Vrv0+BmhbWzC$qb3Z9H#MZeK| zi8#X*y1DhMrYL%ewpVONEgBoEjf?56#iDmsj_{#u^>WD_t@3L-Uitn5lFU zIfM9!6dPn4P zV@=a6b0t$N>v!Wq+cV?ts5_m~Y5=BV9s=LvMZEgG)Sr1;4oyLzO+%LUlbru)BMg zuemeItt)+G|6cgM$j*F-&mp z`6r4+g|GwgX{H}`$qY=Jxssu8T@gYuTw^BaQXLL5!de$es$he>1A<0wT8QjFsTk=6yn@d{yP08`cGHg;Aci?#uA_LV~_@HE{_wM@()AfBN1O(|<^=^O+MpH8T79rezid{`+w+eEHV~u6-6Mx^sF;=kuyco$`YsRxm_f zTvQA+b=*g{`|438k$IXPQcwL1u&!w%HqMekowK?$du<){PogFo<71YX_rz|s0`XI# z#>Xc{KZt!{TNmXrm$5oyuDPF~r)9k1nx%_DFr)hJrcBLT!+Cm^ZWVc%Igc$STfn=p zcWOCgr8E?J$nOAyECVizbW!6%&7~K&XWO1hZcDOcGS?EchJV?; zn&NO9`bBszwIEVT@sWD;k;p@8cz7teH#i4h>#v3;cn3faT^-byjz!W=`w*dl!_Loe zW0F2_P|XYPf@*SI5Ku@%H%Vp!0nX5O;rF`Mc!K#U^)w3C?up;0*QZoB?ka!Ic&1|5 z;H}tKzr2D=J3qCmZg9Cj`qXl{1|a2*{$N5m?aAnQbO&>NlGC=u-;%@7wMZPCt;_{V zxXm&UoFuezS7OhU{2R3Ab@kr+-PK8bUtm9B+Funn5VPyumV zS%Kt8H$kg(SKT6nrEjdlEe!PvRras;4)O?&i>@IhlU%_<)ZMEf$=v$IsH`u9A zi8LsQ5(vk6(eHdAIo*}j|NIuXJG%luAn&GE!&%w|gw4>1>27?fJ!NdIUv3QOjYiZk z*f3S^(`V>D7{=@GnheHROB++V`J=I`sj)$4RCS*XzjRJRl771(tlOX$wEeVam>bj? zVjuPkj)Oa>Rv=RVLZ%<*4c=CKs^=bG=+5QRT*o6@9p=!W(sTZ?#XY@S3KQL> z`7NDm^VZw@=RPW_nA5R%QnscT&514HbB~u!FF4?sQA~Pbot=Z<{WbUnyi=|QoCAVL zGBkl$0^gylphI<4@dl;|WUMWjt{3w+y*G9PwL5kvSugf3aVF+(d~)<@bgOL>(#9G> z=3851M{ExSQ`K|C)EiYkUZ)q`zN@*Y_O@uUZTjYQE-Kvs&HNF9o9PdTH{QFCJCvge$tnH2X-b1F8GnH@EocwyWQccYIhJ>g?Q zb?F5=F48_+!M{B4#_92@#YvtC1&5)RxfZXVzCLzaBP6PxG%!TJ)7Yd-eP#TzZa?tp+p6)DeaTaX=1=EEsPw~ zwZJaxHxYs%LIsUF&2H0M?Nf6^pJ}Dc7o#+`uThJls@UANKIS3|r?;7+wNv$HnD^QV zj9yDK2F)3Yp#LFi60fl_=wsAe=4NFB`{A|9SLn8+g%hQta1CiRd_{Z)QbI@>%dQZk zLhsngzI~y#?yG@a&dvUG$59KUC+*czDZ4cn zQq0W8ln6CCWe2r6Whk{VWj}c+IUOIF_!0ROI{|!RBh@SBZOXr<5h`mUfyw49HO8z} zYnmkakKusyOLt#Tn5*1PvLl;~MX~W{40j26#WzQLiCU~w?0|I__o7P$4xz;`+E;cG zJpm^(7Vc&EgmtryqK?G&(EObwYM+wXM8GzQy+yec?LXRezgMnhW#QEotw1n0L-z zHS1t0{L4{V_Xp(|nc3VKo!Q3KJ@b|O@Q?bw&A+MO@th;!YK7_S_tN$J6!%5pv>z9( z;YGq&wl#l*^OSku?O2YF;?9UygwIN4<#*Y%9*SLrmJrwAuOx$Zrqi(ivyqsotxkQ= zoug9>s~Ftag)thPl+7@V_^thp^rdTqRq&0v^P_YXGP5{1Od;R)C4M zAScCqY_M91+zFMZhob|SWc(om5~St=Fr`dwA=NG+EQ%>vy53noh8TMG+qVakpW;gIA5_qh0+9YsyGuU z=F2n*dqdQO@9;6ft6YUZO|IDgkp1Ha*j0Xgq|g@$nSAGi2JhZL2TzZ{Ko1z)SYQWG3A_MhgNu-*aC^K3)}9_gzSI@ctf`Kst<9jR96g_|6MctR zYukZBmh(_YV-4V6-3Dc)22-vxf8^uLD~V#72u-Oftc|D`HsTLMJMi9N55b53rm99J z(L=)x=?cLfq|1w8b6p8gPkX%LE1n}LMZZ{083KK^yVxvOdp_I4^H04dp}nuY(8ZrB z)(93$r^4ga_FNYzLF|C$$)E6`I-6Vq&ZZth0(B1lL)}4+lw~yy=sfa1BQsX*L9Ig* zt$j*sm=t0%`4&#cI;z`|%Ay_0WM_d=XpdU#kCB^tDhhFqRQ5|z|InH|V_;)eU%%(q zwZQaW<-#liD^wo?cv*@#5$YuBg+#k#Zzbd=bv2qP%vTRTa>h`IkdZs!beS#nA5=e$4uiG{U7wM){&7wo?y_nd>c1kV`pkN=kXEYb$a z6`K&_fFf!gEYU?sGDD*heH3|0(+EoouuYSR7R-}MP)l*dt*J-ImjS+BQ#cQ4p{l)@|Z|H@po`P-!ZU|uMr3e$AS*| zQluKxS5w*uUZ>Asb{I1?GtDvDzLq1Jah80h zgC(A+Yne%pv(%xRSXa`&Y|R->%nrs8+k@^97fn2hxd0c~rl=9~1Sx2IBvdpi{5a!3 zykPvs!KNuJXV@LCqgR4GwVwksn3jR>RA!((bv}gA8g?~<@EX`OhbBD|HEcQH6X4=PbCM&WKsDsGnm@3bu@co zRxtlWb)Z=Db&S+6fhJN%6&}eEw*xzbD{?d8r)Uxy3%~fIT>mm%PjO>Ix=2$$5{mLn z3M_YS_1~~}^lvV`=IdUv+IzKVq^DisG>Dg70=|wZK`I6x{FY z6;^|6xNqcExC>hl>d9^kjV|-?^4XF|8mDqz9u(umHqv_WfMgM8NnM525+&S{Ylt+E zCclIza1DAHd52TPBO-;Oi8U08%_V!lOYvVoFLZ$VKX|X=0`JKNAYY7^VIJgfh5Ls1 zK)i3ezrCCFPjNw^eQrJ5z_&#>8hkGMBlp$Xd{dw-B~!->o7D-zSM|5h9ULy*g>#jW z*az?yu?p!){SWI-KgY*2<;mlk71T@ZW4flkzvh9#qWfiRt2dke(o@Dn-4oq<1}?+Z zCsYS)Er}pkNge!|Y7Kv)Z^IG#4NTDu;8fBCDHsg)LstQHk!iqb_#v ziNBX)Wsc9|TSx9hE(N!Qm_W0j-#0HX#y2dG>unj(dAIp%d)E2(xi@=vyG`B$o+I9q zzPA3}!P7x=q*X-E)#Dy;EVqFB#o5`h+%L8R*MwihHy#o}hPxzGuP#Tb0L{E+Ge zz`B*tIb$dIs<{EQ&U{f_Yg{DF&~@hRbYA2paWC8&>k_Vk1Vb&MouS1*FnCSr5VXky zgKMM*q4n|=b|k<^zmPQG2l)-DrA;KJ7}`*%iKH`)In*4(TxySQFm+wChcYv}sJYY& zay(I;c!N68O;A(#tx^DVEmMTwxT)#}_J^uQ6m?8QRi1?oNr(MjPIUDP4KFDu!=Hz) z0a=u@+OJuT?muQa7G$<@FqyJFIn(M$_%X|o^|P;Y_aB>kTkik79gEWZPWy=93-^;C z?mHLg?_1}q?5*bc+x^m&>Kfwi>3ZNTb=M7U_tjt>!TSQimPt;&xza-@P#|%&`cT{k z#L6KMS8eb;U=4g6`~ZyvuL0N8-*S2Rf8xoqjQlsZNa(>ONwxXj$~PfhmBj1nRZ*6o z@e9S*k&gVspo5*@zs0umJ>tgt76=vmQPLlOf?O@|w@e3)$;pA&Wxrx&@J#pv(v`nN z)=^yAZE#~#V}iF#q%F1=jN5vJiMG1vp!pT$GOZz3nKlxmO~-JLaX8k%n29VgjDjl| z{)S!{c0q?t^^wKaRQye}NKKAQ(@ux0(C+BK%5bb-DJSxL7XPt;Ds z>S)R|2c3yrCqKYva2yVxr=hxN5ZZ!LNG#R?t%}8ClhJb64mg5*04_nNZ(z;V z?X)1;!KMXtCp}Lz(KN+n>L%8mO2%pW82%Tt3qP-UjvduTp}aO1darE_f;t@Rtcs^PRgg}$}U3nuz(sRkm4;B9lFX4arud^wh^^r=> z{*i6=Xm){p8aLi?iNEHI70$Zq^0!^v+4ioKNUpP9IL#RfHFS*(FLXDLwDY!OoBA~z zAE?TiLmBM(&<%D>xGi@%lE$ZTangQKRSJ}ypcB-?K^TJ9BiF%iaHcvR3d$6?LP`R{ zVmF|I)Ds*njfUz-06a-F!!?9!P&$_k?PU*vUn70Ny^%5Cn#d4vU|3L_2c}4m-6?EQ zX`KIf;dJMD4bmKspKDr==kpb=JxsO`z{AN2bx7ThaPf0+2P`1 zp}aCuJ_giNtS)sM<(rMbFQ-T_RO(;!r_q9!#OHvoHxo4{bQ2^hDq$oumGs&MN)Lit-`+o;Vnb2(_`jVmth%93s{LYs+wU z20aUHMxVr9kbAN9_=d8ML3tz!sSUfKR*(@~1ngGw~SRpqa zHwsnBTwxiNA^f89_!`vzI44nu{ftkIG{y}P8aG9n;T0p(@YUg0*xleqq>$t0EnxrRo0gcJtu$Nehl*2=C1Ec^1K}DIZRFnYO!?%)JaZ|)Ck$b!)gt3=>t|06l z;-?*>d~Zqz`H$Pr2IE|-BAvWF`R;*j;@(i6lo#$L*Ncplt&y-iJCd$yxeO>*7=sN` zRMHQ&*3?DQb^qa~3oZMr^9`z@Asg(e#lkjdr&*a*vS++Z0=5auC7sc|5YZCFg)*Iy>)=$;dR_J0J# zOv7Wzf6#TP4=N9J1z7cjvOzto>;)=ZqpoUGff*=cNKsBd0nYGiI^ zwwf-Q>Ka-azi7wnr!i->Q>k&9Tf}}QA9K*h5tYKBtK@2R0+BB}ahnoPE&_Tm4Ulj8 zQhbS}EftA+O)ZSMO2)+eg*S;Bk4&=60>>JgsNZy?lBhi(*VW9BZ!sO^flN7>Vg}2V zn7K*=&2M0`ZZdMhIF4v*O{4onf7B4M8r`ngbX~vLJYBb#^}6>_y>!EDGjs#2=XI|w zdv#qbFSYH=lxD7RA7$2;;IlNlP?^#pW-HhB8?zQ;V`@04|1a^n} z1usQng7+fkz|HVKzLH>bFA^y7!2X}!seUxjJXjQRhp)5OxublM&_mEmiNbj4GQU(B z%x6gize=9R1>_y<4|!Cin*22MLA((-&%gBbWY2hyhYx#OhoAX|Mt%owa!KKJV#mm0 zc~f|q+$FfJY`>o1CVG6~=58QlcRdb_b$1J#_S^{!_nipV4IB(r2ptWtjMQPz@PGK{ z@@+XC`WLEBU_=3vqA}|4>em?h8jl;g8cD-ALvMWz{bb!%ZC&jm#->?FRbws_b?Ap! z4eBm3nKZ#sWDGRFjA#C$8o~w#s{H22fK{fG7NB)f5>cN&b%9Tu;kT z6_?^$<1~4nx+;0oyzTv`gS$hw*-qRj@sHR_`K^ov7_b@i7;1_vLi%8Rv5WX7d?!8} z=g{+LE%-6?S~aNar3qr3u#fx9HDR;3vn(zg=U0hcq+^m#aY_KFkxIas!aFdPe*}8D zi_jXrA0qSj(2IO!Y#O%=Js1hYk3)WNZZHAp9qgm-3dI01>_n)Oa0%@tTgWBq2YMP% zN7D+RHD6RSqXBx;g+MNq2@a!PLKn!T@CAZ}$KW@RwwMJwf|`kw=xu5b_E9sN$k0Ea zj3ztt#Z*b#-8fUTN4t`GL`Go((h3xTv(guNCf8M58|uP`eOK8l?mm&Vj;`S|B_BeQ zii$&U;id4~0+h`tY{M-qKFobBS;La0r$RG|SzlVgM9;;%=kBPy#~x1}?za>shH8}z zWzRUq2v(0#F7NNF?hV!lcZW-$#q1^IEPo8EC$%H)D>sQD!2j?bz;k51as+%NnpG2j zNN&sal($7XDRo#BaB!DETKo>B$Rpsp3Ji}{{a|nP4q#KatLe($NGv=E?^pgHkwwikz-_r+$8lUKT9j90g911 z2h7$qghy$wp?$S$@jJ|KypX(xWnn*&tweu-v+zKgcJUe$il{nGuV%g}Gt{$p66(HX5wFXKaUufd3o*6jgdrj6W)zy$^I zbNgYFFahZyt;Vh>spNIwEe%6f?FJ}I*9%HC%m6bCwE@|nQ-g*+O3-jvzGN67t<;|s zCTVN%1aqIONM-Zu$m`N{YB4aK>5n+InfMmNc`C>Bjd^VOM?2iMRX40`A`OiSYxmij zYxh`FG)*iVWC)1`Q^yIdlamnR4&sX3om z<}R*aUxXfpuKV`~WKTzbZFgl~f%Ac9jicD*Dn*>#OO`o`ix;}=rBi+Ru5#hW{)_yR z$iMO+aXx^kNzepvJTw!U3RZ+NRX1=**{%*(T#8pQsrS^mYD?f>buiFQ9SdYD#xh-W z8Y&0OLvq3Q=qq?WwioS%ea2)&z@|b@^tG}Ho+K2h?IL+%kKhCDslOm%@O#1=d_BTb zy`4e}-LnI0oD+Ss9gw%LV~*#U$^{JcL{_&TZ7BJV?w*Vn?o7iDWTT> z>fynm!|ZKtvba%xt2#jtX^AewzvBa_o)oM(!)((H)t)pY>wXv`+7HIhn(1ZzfuQys zv4`%14#AIu`^!4H>y&J{z4Sxj#X>-mBGBJT3uL~!68WVjB2U%+@G{i}hLkLoQWnT= z$uFD|hjR^u_u(sCYA`o4!gnsz(eo)lcs2wC?|{(U;9J%oIUt6(p-Kn-yt;)`)Mad5 znQ}d%{uS=3=7$(HHjJy5$WS$n)d5HN$ACpl2Wm^b0k=G*I+v#JFs0G5iDa`;WqGkJ`*pM0lFKwl4%HMFu&mO%vN|a z{SN9v{Q{R0yMfkNp5lZ-ITvgtCIN@|smgEmmqbLe#A~7IQd)>qrbT)IpSix^0AUT# zLBNzzTx}sYL`Q!3mIsEoe|jG~j2?IC26yGsL!QD?v)}IM8QSc=zz*;+V%MOl%(G~N zz|u?d6IfeI;AiybsXm7J%s2gE#;touH`Aq28XZ7Y)%`_w(_J9m>jn~x;U%%dxPg3W zlF4~yk&Ls1$o1CC)PbmW3>tG@^E=8tVC^N)E7IbXjTJ!NeJ!o3*B9mJ6mi=KiLx z#`A`%x?kF8CY#PCx053YH{KLKfo;NgG=lBMW)uG-0^}B|J@t~7iOuv%jG^AbI$|l< z1-qfvMMo-skR~K7s_dMi~Lw>BqO3z zI>U#>Fgr)68!5+A;j!GF&^>l=sCi^}aC-2Rf0cKrXRdRVgSHDL73?J?vCbU3(=ED+ zd~?L%V7z?MA@sd&0Ti^##U#WuWrFn3w z_z0XUjsTlVpUTdt`~&Th_rbfA6m+3_8S9`nC_AT70lOuH;h*e8uwK}u+zf1$^1Ljs zb&ZbvRdUdup1;C1KBs4CW>$KUkmV|j%4t)C=UpjoTe!kLu5^mKmTSBp@*WOp{V4lA zK=8$(>f%iHiHr*?0Ec)M`XF6~2g(@osO-J017BlibP~CbNMSb9bG0R!*7{7{6~p_o z^D9yM1_n?&Q`>`nMqMVtSP0|bu2^sAei%63Fh z4kJ6%O-MT+6W$C&z~|~$<$xR%rU=zoB{C({FEl#%SMYMs7P=nH3T+Ln4UP1d1iSfD zLQ?}H!_7jetS-WFd2E(YPpBy0kmjl56dwSn4Zv$kXW)_CU#Tb0lWHkdr4_(g`8RY= z?Sym(W6}9gA54L1A{QMP4A`*MXg}FfxivA-Xbasfk*azN}lpw9z+YjQU;l zFx_uzp*EWwr&&OJpu3l$=V15|k_?^&bl`I3FG!MS!l&h(@LlN-)Kc65_TyixPa_rN z7Qt&g?nLWYLCTpcLF?+E0THg53<6@qB zdx?PuoEl6_xOeAByksPz&`eXKNR77D$`Xizbe_uye=yzrBbrTdyfI?}2!Ewz0$lTqs|3vK!4PnMs? zuxYG5)%acWTeqHCu1UkDGj4c+rZ?O`{~jqZ7Geb^H$Kbs34dVhjlVK1#OmrzXpFWs z{6Crn`V(!GKIlo&16}76z*SrybrM@%ei~jS&I++&%kU&+B-aF7F3C`HzzI!(CV>uU zySf{?DL(>9X*&=U=BXovIm!y*mE2UCt*laC07iH%jAHxIvqV*#r3aE5^&w`UrLAFM z)N%8K=+V}9QFpA(ZH1PWmfq%QQ$OPqeW|Xs)~cbH&eR8LI6={7!bg7~is@|PER}~( zB5@oi+v2Us*+e^%C#MprW%=__`X%x|`fq4I@WBVmxmMz z^YH|^CbdxcL$6kIm^I)k?Ipx$D8Rp)s#5XRDs(@aOm((3qUKpgl9Me?VyD?kCYg7T zPfaJNXQpILBg=WcA!?*)U5sin#Qrdzjh6KdY+ZFb%vUtohVk@iZ3=OYvLTu1x-xcN zPxP0~l(muK(EWhN4|>OWzdHZ&jB(WQHgg{J^>F)rH$88>?>yB!Z9Q(+WA`N&?D@~V z!)x`v^SAar4p#TK47UhejN}IQad;#m{AB+~(Y(IQiO*5HC>>xF+J-+t8q&AX6iqd> znMRK^VyeKesbkPMvOCm?I0It%NT361P;bNkC{@bV060#m3l~Yvpi3eFE)$;tw6q5N zB|?x*NCCr<7fN10D^BrDiOeo*0Z%CD3cW zLGL7DG$*NE+NE?SZ8f@p$)|eKjp=dJY5EVjlujXQQG4;B_-W){cp+c~DoI!6=Ui=R zYs4*Nh0gMwf@Xeq;3z*WI7*O0@q)dKiQWt6Mv(C0@U1eQUo+e$WQ;5dh9cMe26mBW zVVHFk2ELW1_-B>|eGToI{)l6F5b|`390=?d;<$&ZU#gDifpjb%{Dr5&W}-3@O{Ac+ z%90olF%7*shrWiH$0$Zr~g!;$7Ra1m+s6eEk5=8dCA&8 z8IDgmr#)&xQD9r?Pqx%8OXq{tz;oOmI7#Y()=?^9o752Y0yuydgD3D!&?l@v)EV^w z-{3FGU3ihaAC=|h#4puGe*+=SNcf8O3u4jt#Rlp9*hlRx^f&zj>PA#nUm^X)OCZk{ zDV@Tf#Y=%WZn3v#D9zc;U#s+qH(0dC+p8$gJH2Rxub}9lze350;1K({aJDlL$#A!2 z-+B->)=RP5ya@NhXA(vRuS%s6M4cjdfe!L8*bFql3*m;$C!(U^lcuWWtzk&ib@P*$ zJJwIJf7uMNHLbUz>X}AaeA{ZA2N)CP8t6{8HC`@ z))>TKyN9sW4@hV0C4@H*M{XO(!tHg#z-v?oO?LLh!@RZ z2e~5%t7KU&%D`>lb8rap!6Y^w!SM=c0%1q3Egj z8Kue8r|A<+lByLp85t!0&Mwe_g2nRTo6q4|z^l<}bPmTsyZ(%{-wl$LIWH^ldp zWhT?q*QzMaRdx%rl_uhGrBFJplqeS!6IiUwfvc!*&1-`* zP-HN6J&fT-tkjt3#`LSGr%XoFP0i7$rJ8!S%ght=3}&V=S(9vlw3GFqwvp~J6JWMc z56E=<8@dk}0cHb}q-|0ZtLNVM%awJ(w)*=z7Wg{Z^}fyaQC{9Y+XFdTdd52Xc>~UE z{y(06p+kX>k-?E|+y?##FN=x7MOiQGQik*Ql;&IqWg`1X{>CONp)!qUlh45=Y8?In zoJqZW9 zHTe>DpKv`~LpTxW!fo`v3x9Pj4_NZ!7a5lEih;M4>#?Pawb=LXonam&6rinLl3E7Ml>R76d~L{I!Dby@5bG zZ?|AYUv6k<0N_HQ0x=kAuR`1u@C0`PI?R8DP2xOsn$!lbB3~iOTBPJoX(HJ|g2*)K z4*@IPNE0xZ(!)I%5dTxwUg}~Tsdrjtnd(IKF*8x~OgAhU2HdFCJ2Z8*ugS;sd~`Z- z2Uv=%5ElWO2qw$E=|aS{o^#q;vO7xnNc-X}c6M z&y%0vxt{yX^*LvjYi#aQ*X=yJ`)EO`Z%}cQpwIpw66@(L^bZ8&nGqLQAegZnbvd~b zX-=QP0s0&_G_$ROD{D+J%0U==@5-QO}6HHtv|*rtW^ZTRjc( z{k{`LCxZ{{l_MwI-?$lmUOW-*pf(pQ&`ISCEQ0sptFRu9Lvo>N$Zz;55<(|n&k2ew zrQ@02x-Pnl#!kk;mIG#|HP_PKcGGgt+R$9bI^5XBs_OSy{klQc&D#H?=$yjrI=DW* z?PH7?8*R{}jcq%PZ8grD#XJ$@7_3(q5)OyvG=MG-i!djcM*0I^FW9hOg&*i*u^oO;_L3eo!o(O=BBM`W z_aTp5`|y{sm8k^@`6HzqqCD6-5 zde0ZHFU1P)m7oQOOOp#Dp1LIk{%+n+p$)-9(Zf*}-&H6Un#-s(R$V21*0QAxeXnc+ zk0=MBZfYVjQ>}`wQ8UpLZ8dgUe~CARTvQb_%B;XwS+alM6iG+k=*&jWAxD}kLt zPGEs}F}PE@6&|8gj$E`#e=&| zXRxCbf@b5_pbLmc?+jYhkowusKQqJ%hW=eDRF(lLU0E&9Q*J1rVp9vG4az!kk1XKl{k1hlnQQe?M zrgzYJ^F64tWdmfh)Q7g3n?n`MUEm?+%4o8s9xhoR@{+Y3rCAAjzV#qI%CeOiZH}4> zO@k~qO}wR=i8nW(8ylaFVZ?ICjyzHh>QA{Pa*fa=VVU<|&QG$T1bPv;Psu4Zc$Tk$9 zPRtFf@M$0gPS<-H3SmQJfi@g<=}~l|UK9OOOMsJ=vA}m>t=f!TDlH9F_Xid$uJ&PIQxEX)I z^-rQH=49f(?&O4S&Rel-t%>fc%o>N0&#=*m#c~y>W(uk+=reK_`AKXRCZ8rE42z^`NrI9*&~_-a>`Pi&5SfGwvSg?w$0 zdgZ}VAE z+X-8y^_JakJL>3f6CI;$Zygp}qN9>^m94jVy2VfLGd(4PG(!AC!q{AF9{e->5||Bi zFuc28l%Lf~GGWj|9;?R`UE8PC2Oa?`a2u)u_Cf9debF=eF0_T#8y%tcL^r9mu>|cL zK2H0U{72hDq+@XuJ`5l zIiIC}vTsg_vBf5~vh0X0Wx`GeRng|e6HOX?frtY;AhG%>pt@F9D^yo0Wol>Ht9Fsr zsV&6?%16GNw1Ca$*pMxf=?eu~mmTu$Do*ky6cu{<6n*z1C2jpR%klzSy#=8qfhAFM zWC71}(M|J|96S?|gB1^wRR06h=uYh}0FYp{a z7~~E0DU+TH-ldO$i|M~X57i%xrA`AHF-M<)cUEhlS>jc2J8M#hg^KxruS%r0Cp};< zjq^S)9#m#4o=`fz=xoW4!g|KjvSd`z%aZEFf0uSHd0WPnZuCYxU;J;3go!P%J+dxP zm3X>!&Tb=JX9yC zx1?tx$&cYCMs`Q01($|~_~k%--#`9!-g!RK`_g;Z)5gnqM9+${lioU>DgME}O~DSq ziQx{B;z$Fo0xJnT+feSwy;eSQH8hKmp%;r`(5Xy9x@!nt7x<0b2cDzeK*MPYxkSG~ z$1+n1$rMjNwp?JIS)Hb{))vfIi%Om{T-_bS2IvDUYxVV(${2a5bW4a8Yx2#6q1o{VUoumNgK;zj(-mDT+BqIkB9TAD zR>3x0n)h`0K=I5#+kDo$BzvLf<&R;WE8q8cr~jY=g;`*@W8R=>x5D@A=;AkAM#*{J zS$07f?m;BUds2o1lhjV3o7#{_ADv|1=)1W6Kz-p3m@8g}TPQdl))VMW$Wt>+R=2fd z9@s9K4qDrp=9v%B59!(@M~pSxPX(TYra={v4#0my#EwG^MYzTk<^T_N4PpBx#D%ocP3kBksB->asCiY}JWM%zC5-o(fHY6~GD( z1^Vc3_3NrnE0Tw*yTn#B-F?J+?Zv&P!o$A>Sr$1P0V7YHE~6F2KQu_ z>LbH<<(q-wLU~^ec79nj^rQG+|KP&5o~8K{ORDGBEuK_xulQootkOrNc5ho>kHF~Q zAK_hLm^~l4$3-HK`Kr-(f}Pzjo#R@lnZj0}i(CyErgq0OwC!Y`&QS$G2HhVjW7;D< z&3|B@EH8->wjlM$uFzE-%W2xqk$WsZ@L5a&I-5LUynU09L0Axu!H&Tyx(p)F2|zKF zqV)ls$~U#C^r!q*SRrzJ1z`-|gg?QJ=4!A~^kMi$m<{|CwD|V=Mi@ko%Ox>o?Mv2` zoiB;?jxH_rA!TC&hsw4EZ+pbhMBk&xvOp=@D11>E%O)%BgWKTAEA2i zG-nA=oX0nJa6L-V=)c!qo4!ZY3I84-$tgML22hgf*ZiBPZ~WkN`(P4^RO5 zH36KV&IgalwSc9*)#0N|Y|PzZel!SLKF4bV4B=i z8^~8x&PGSby(07FAK?u7TKJXxYd9+X2rd>6`ZIaXvz1$0TA8a_vY%6n5AtVAWC191 zOT9gvB*gnxY~h`5kcqrvg8!YI6Kt&i#vXv5OTQ4$fEr8!mTCS-_O=G;0_!8D%zB*> zt!tRYwwKIb_N^w-vBFHcRC6!aDszf!p-FH~VVb&5)6Lw6X>ZI*W_jEdQ_()qE{IfZv9iw;3<*AM0baIuDLHui^fmd-Iuw-@z@=v5D+&5eo8WDN` z)(u6#)bL>FN@O8ahb5tOjt73{F6v2~RjHRY#r!6YKx8S=QtXtI`_oaaIcB)>h2L2=lUt;vVF7jkR`@`gPCs4pnR5w zR2%DD>bCVewZi%@)z5N-d}V4zjAou=?diqneku>CNqt9_k|NTI$UrJ$7*Y;y1Fg|> zbU|LAwieAwD`B=`5-(|G5&+rM6R4)8lKp^Bba`->=`ncH{5Q1Lk^$c_cHimt4)}g& ze^Pc6^t)J{-W@lRSsVA5=@IwYbTp2&e2c$qUzV8U`k1uA-7oo_`%%&p*X@M+j`6W$ zY*U=&EaR+krWec*`V)DF?25m|4K>zd{6TIfy)K1hlsN0ctIN0vMs4u5tI(RcxL-+i0Af3tr!vW(fbDX=E|8`L?n9ex=} zM5;w|;Z4!*@J6;j{EUB#{35TwX?+sa82Xo~hCDW9A(u>kL}W0u4$~7|OTR_q=nmLd zsxdZ#>WlUu55X(&hF~r-K-*YVisGkHVk)IR%G(+Y2W6ZWXTb?=!d`Z@pXCB_XS{ zk^QFHgkOLdu@%@`Tn>&Dw}a0_82TZlz@wE6L-mYcopqgvF|;8X=uOqv>yh!=c6^n( z97DB9SS9^7CK(xsEBY0b*8T_glP3dfg_&w!E>(807sPAP&f?4H5iu`1O?ndTB$Lru za_{gK$rWrN*7Eld`uKVZ?|icj3P5E!F1S+Z6RfEo4`AwWe^;fu@4DRB=aXmn+p7Mc zs!xpu;a$Qy;;QnP3F%8Mnczrk7;0?g;ecf<>an!J8(F!FDYX zBg2ZSgqIYI4@UBu2A<}o2L|T04pz)t9`0Olf;~~(R($Rmsr(TDv{j*atwMOHY7hUV zxWk*3{P1=4W%R5*hJOG$rEYLr1woFf^^t+vEaa+2qVak)%nHbO2&_i+Kxk$dcArVb zuhPY6Wik;K3~Hwd{zpj!XG(p65#k4ZnQ&f9;6utU>>Vj1{ErYHY|QWUcKi(bPW(r@LcC6Wh;@^RF;}qDuB*r+XMeboa~3q%u>m|~`>LNXS5UL5Sg8g+ znjenrX1_z;=y<3GdlqWJwSq(Z7I?DQ98QvULP^pO@S!*W+$3HETT9j8ib^ANuhtls zfvv#ci+E88`~+0NO| zanml_d0Rh+YWv_Y*?&0p82kMMYd2dLb8QR55az2?J@XW5kVU3GS?e*6ZNp7RYJmQ031MleK;%ZRix&)hEPawFj|6?MHl9iwIonORiUI zkiRK)2w3Wdjp0p53$_VVHQE&XBU%YO!ma@a8QrB1Y>wU_+E)d`CE}w1!;$_yVZqxv zc*XmBpt{sW`e6AU2&kEGIc*`jQk!lxND45sX2t)|X5gIOkH`my z8fh1RDuOe~pWy>UFE9l=sa=Kc%GLCSVjn{*xFv!BI688i zXToE+o}rm68@wHz8APMq16+8$Z*8c%=Tbl}+2X5N{KYf9sF$aF@iOo1(&Yig`y%oq zI7;XhU9Mc<_UL!{bzpfR3%Vy*knds-w5$9cJEx2w2B>pMM7>OYluL*hsXjhj7=(`F zYapw64t^*+M!rccF;v}x_tIGWH?0DWsYB4G@>;mJJP?{F-vYPD%fM;!QgDY<6Fe?Z zKqgyTyAY05z62&nasF@OC*LuN^{-LLP>~i6-vM?+Mu35E25>vHL4O-G2%^EW>aI{r z4UK%%Uq=(6!`u#}oNxl`A^t+ll>Q{2%O2{zTEsj9=20Q2VOXQl`kg#c|Rlu8wp(YL+`hdMKr# z+sgUCZF#l#tPz9i%g-*H%U;e~6-~^28BNZe&SCjJp;1vA`FyEEedGOEYZch7MS=&k zT47TED>556!@h$$2=VAP=@;y^>_flFYmo2K7O0W<19->R1LpG2fQ3ST=$_OX*{kND zm4H{+Tkr|i3wns21{WbifnvC#ULUD%BnUz8d4;# zM%GCv;+MSeEcrCDN-;Wz+8zP}tJ0t0&!*K_#Il;WWUWPZw4Nj`805KomS*@hYYV)o zJrh6dct%WeZX>5UOUQkWUF3ZG4ZE%FmF8B73`Z4g zrgbq?*JPMtR5fKfSx4GNumVoZ6lUPPgfmz>p&0Ef>_Pt(>S4RY(|9deG&1~@Nz~g~ zCqNtRDDsf&Kvo%xKR*m>z5UM}Wv!FleG-y228-8S3i@q}} zIB0oK_AuX~ET&gfC%PupmTW|x! ztAEFDf)T0;GQ`+5&)aqpN1c7C0{2Gxx7ePHKQ`U;N8BcJTKstHi}+VITY}lXBc8H# zj5AqA#Jpfyxa!ag98alj_QCW5dq3v3y@KhceT=Ep_JjFiX-O|;&Jrz%7wCWRJflC6 z2>oKTFfWP2fZcqqwv$a$%OY20EgU14gxAYkBVna5`bj&>9R(H$KJbA!AL=GKAcwRX zs38v10O6wY8{bEn%%`bag)v%pX|di#Dbj7)0==((T^j_n(H4P!XnrVGzlxmFk7C7o zb>fg-M6A_z5S;wG#TP3-}xP z*84;Ln}KP;#8556rAiGAi(C%2k3I?BV9P>Q;g@Jb8R8#kjm1K6jATdtk&;n|REoS5 zF2i;BU!WXT0*0|Ifm>{IU>bMG*kS{~G0q3@>}jAkyTztF$JCn+P=Mp~fl*mR&Ptf(>iX(>Uf#3!(=qMw4d!XJEGc#`*@ zXg}{G?xeS|u+=+Nc;b1*uPSTJ&nTV83nhbvn9`-<`O-DghO*z}Zl0m?dCyL1qX!fz z&rJS$*=MevXDff)`=6K+IHfcWkJgjf>wuXb1LX0few#NuUVgH&lv^WEDdMi4)P+s?n`b_?r;9@0#ClCs0_7zP6Cw70sVELDTzF3HXn@Xm0Q zed({jUh^JhDQ_G8sJE}^@imdV2E59<;6!b7SkS3xbEq+Q1Fa)oB|9jn>8_S(t^@pH zSpgh0NA$O*Y^{pvmYT(Qm4>EwN@rE0p(3|NIuTVhjY~q_U7X8Pz4MZ#_wGE~cWufVRN?)^89dAj}I$Hbd3#`q6 z%a(D#N^@gCH?;s3m?r~-#R42N=V(8fTq;NxN*jsoLQm`u?h#^P#~}sLWvH3+;S&Xr zJ}f7hUHV_vH0XnEBvNGaqR(xO@n7tFi3CR$ne7Nt>CU(GTE|aJWqXt!X&pn~G5e_- zrq9$H)Bk9vg=H$+vdyC%_pD*3$A%lJjei`Qt=nwp%!IXsIb?L5(yf!}u=N7{kL`En zouL7bvMn_2G;$r6EnUrtmW$>}mSvXjmTT4**6X&#wwm^4whY@E%OWddT42_wSC`$8g{L^@YsfTQL$^A|-|ANN~8VG$>qN+8${tjb*P$BtJ^_ z^5vB{p;YOs zxeqKia^@c*7xiY*Z~BI48{l~qGzdfAz{cz`=m9$s-paX=>HJ?vBf*JY6}q8ajcH;l z=Yl^*P62etqV)-UmeT{1B_(iAq(VK#+o9Kj+t3;thLeRc#`mclZXlG4J`*mn55%2( zx_nD~YdGjlH9&c%iP8qmEf%Tqd~@|Vo1kuIU#T6rhK4dV70oh~tPT7J92NGGt%W4I zjgUhZ@K@XyBa8hx=$a zhk;(cGQ3Xcjf@mdA%1>^F~<%@R`LsxEBrd72Oohyv3sGZk?%lmFiCd>eyE52Q`AcV zQANVtbx+g=ZstQ!2XQar7k3#Q(qm|@;6i2oXJi!L7jDKMfpqR5XyXu|G~8iJsP+$Xb0kbU{x7 z9%>0{RrQm&U*@CwenL1Z{^Cej1Kqp#s*(O;03(KPr>cpR`ga9io; z*)R4l&fy0ZB=H0D9&;mdi@CeG7x@eMgT=|kQF*u5s#gf7KyLmCQd|Cn9oJxD3m8NE z4Zp^QBRsqcwgLmdm5QWABtbnbf7UY9D?lH^BW?`!K`^)@>V+PotD(DS3KT`ogLB|j zUKM0Kzw9@ zx-|4m9vG}FuMgCf-}$@CexF6Y?5!pB_Z$-}Wed5@C23Ki=t;O{(dGzUyoUQ<=>y5{ z)wOZK0uYLvg<40SgA=2*fvm_)Ef}7!?GOK}w~tH*heTV$f3qOkhTn#b6{`}Z@MHx6>5m-E(=Rx3Q*YakrmVN^NXfB&P0hESPiJg%%9FNl z6_RZ$Dh{+QtoX<_pyC$$sfyW-pDGP?&8;-rJ-5soOIq@lpQxke7=O@IaE=?#&T^*04y^O1oRw15D=M!SfuTM^@R6q4x zmG>#9s$Na%RFz2BROOG@;>!138!GLz-z`7dBBj1(IwiHFXUF%YD#bG79M?JQu5BqC zVb%i|@JAW~chuJF6}5B92L%=1i}BG^j`vrL$YrNOQ%kmmz87^4uP<~(Yz1#3H}Wn= zp}fiL(cBa4#N6BLg4~XrJ+G8Ml5dl#;wC!eJq_IoX2QE7hoLdiSGq4UTS<#t7XJ#r z=Ld$TbMfJMY&2Az-4T|fA0pMGo~R}AiS>n+bCwX!Lm^7=hZ3at$Y$kAWUaP1a#J51 zW(_REzxuIYroKIN9T*q+7o5j7fU59mP-9^icu#PGijV_z6ib0z(F8t_I)e2T4P2;A zg5$wvXdl>*eL=brGtk!LSo9rP6RkjfL+VlekPqZu7$Da|CAb&(fN@$ItcAJ~dnC)4 zEOOXx{#R^sbS4rLIsnf1wbR0-Z>14Mb@&T;V}=pt%yeK?Ok046nXUPp%ca-WL(y!i#D^kG$=~Xe{3PK^ zPWQ;8EY-g*vz}*n=97}!S?&@?&ajeuIde;Fxt&VV@;;P|E7)Gf7v1*8mAv$wEjr`% z=glr7n6jPia1K5;{tbC9g8g%nQulZS}2#T(j&|<3>AsC1S1h_e^(nlacQ!FnfV!rZ;*u3Q_%Nf$>R6i8fb81&;BkCoPg! z6!O>1|Kd5CgOshvu3g$Edt#}Oy{&9wZb#37ylG{p^IjEC%+1fQn(fPe`s2lq&)<%I z>-_cU*EJdEzxDarIrH`R|8m^fEAvZpyA|Hd|GkJUs9G!)&M*13c(`YEX@%fCUp9L< zTvPtY$Loj^0ITXjq&&2P=!yQp3@4^r`_ZGEZO!*%3atN&ujII!__M1?@>}FQm{&f~Y3!U5GACBvAeOor@Vz#MiSRY{rh)3t@OG1)f z6zl{o3-O3KoPw8x>XD~Hx9IfnP;;ZmN9(d^7e_uj(fx{l9`BH~ls$UK@`dn&3Py{s z{5fnxS`DmRN)YXyEMZMk#*tT2-OQM@Y}5Xr5{e5l6EceR!ZH(dP#D8hxie3Z(`zO54eHY*Y1?KhcRd39dY#%d&VzLs+X`c z`Aouvl=OtIspn#UPif_xk=V=pZ_G3Njx7bM&cIqG4jGEa6QLv2pWg|*=bq^6`0l_U zF=9A>!whwqLB6Tykhc0>v@x&(8wi;2`oRD2jldY<4JeUKk$KE;{Gp{Q)yz?z!QIoD z=`lm-%`tt+hwf7Bf3Al}7w2^NxT7nw4;?kZa5~cgu0-vFw-IBJ5+j|TPE;Vek)7yr^dWPI*=-wWZs6Eq-fIst zQ>-wBn_pq)m@Y_jQ!lu(Wd)pV=pp-TBjIJX1JHEqe6YJYq|cxsEuGjSzeOSj%b^Ze zUvow3OQ!?x*jnDV#$}3sJOc`j7Prm4U3fdYa^X+ebqX41ZOXm#eNrZq(faGjkAY8< z-a9^o-ky5vf8%&F`OUG{yWcE(Gx=?;ckAB;-*0(8=3|u)r$4p-aQ(}>4@-X>`aHUz z?~lp8G5IpvtZaiiGS~uX%#EOWDyJH~psi$o@Ehp@nv!D; zXQG;7LBiqzK;YY|iCnsLEBZITJ35>jz@_t$q=^sIiRxqRqqbZ5Ppu^`lJBz(#IxZ~ zM!vRrv|=D5)ICrT@C3K{xyS_n8KHJ?ul77L9Kj7L8lem{dG+QtE3(L$K%}|9Qrlg# z=sz7hDA?AX{L2gzy_suR5|xDR!e2uuS^?+-JG4BgruqV^uO2ZJ^2^#$`Lm>pWB7UE zzGw}pQh1|`1>2}$-ve!!=MOzntZFUuiJ&(?jD&pM~Kjv1SqJOD}kog*CBva=g z0D8~3kanMnvA?jqi>c&15TE8g6<_L_9QVfgDQ1sjs{4rD>KR3WxHWcH zoZB`xc8bLjJImZQwx78}TwBYKgtfL=$qv`}v>&mz(t9T)qz4n$8q?V9l(7kQQnC{q zDQSs+CQnJoOY9i;B5sCjhpUD4l(ibQh<*f*$A@VpXhpd{K1?#xd*qguc51e5n_Axv zDFba=#F5tC{87s)_JetU=9RaPtwZ>NJ4O7G zun8EH(hc91I*W->zD074q)RDm@|e`z=`tNc%;_j3jom1a)JyZP--ruR$VuNOW){ahh~{_@+88(;Hs&t!HjX=8YwgNuXg zEN_fFGI&sp4}VefLe13fp(X0e&`SM#q#rz-zlaZ(KTu<|SSA6e#GpnZ)CHYlOvq<5 zfa|udR7clXQ+~`V3mz9R?iCQy+J4<7_58Z;8j88$|!Oft3I;W17CJG7c z*Dw*v_Mh^{`9i)5z90UZek8Ov#6o<-sQp6Ow;r(M|L z0mExNk3w6$XF|37S|~Lrh10@|qs0*m*MV)x58)DpuiQ{UWw-Lhk%#QnP{^Q4){c-N zKH`knIgooP_=O(we5tweOnfcH3lju@&*gsSs&S=JAv!f233muC2ptQ&4b=`#iQEV# zvfqNgbDx4s_`={r!4Xo#!68(>7Rr+=h4(7n@MQIJ)TOr-Izx8#wsFgCAGHn|#FT-( znN>g;Jy;LYS=w~wy7rb)RhX%!+$IaeJZz|tjZ77`Bm2aS=xk{Vc10SD?~nnqtGbvD ztIwJ9vYq~qyMnzAz6JYx$7+4bV0CAips=14)$3iRkiJfGvhRS@$Db`L!Pa^tG6$~0 zLHHDY9~m#4rGF8+nkw?Dse5#wsY%eptntpHzn2|gN<9-Sul;-MJwtVzcS2nq2ZKqr zCBX!1mB%7>Y<%#RN+2S~AM(v%fwH%x5oO6gls#s~WJI0&x%{o4gtOd1$zbnJl z^}-0D6+12ZGCV9)Ar$m?3V!x34s0p=>U&%~&GW6`Ldn3qXkqu9v-w-Iz&tv0TF$WV zXS4c#ee)yox$5`zAFqBhefaf9oe%f3e){-1=kdoOd9OcKEFeGaC_4ISdFhf$%i!Ubq1o ziQGT{?mRkNjNs|oKx!O3fL@8eAZwE^&>@5u=#G_Bw;}2BNqC|Z1GkZWgL+5+cvxcf zE%Il*j#>j8r++hYT;=iJ2DvE->&kS&SDEhP?@jlx#f%;Kl{^AK=mISZTw}Czw!lr{ zT;nRHi_+k1G6Sebd{w4kYs5|HW!{Qz;X-gpv<7rI90#NaMRlX^yZp6mfLKtxiE|Wg zkG9U=7VVt>ovT&2Px`r}x(0dP826u6>tW9*9rld|8;0s)n}yv>AF!+4M(%TUFz;~> zvek1t9a+x59MA0K95<}crpE_=KHlXA?%I z_fLFTZe$WvVR_Q?@;eg#m)&J+ZHeOR&;y6O*agiEGIzi51BICAK9uCO#&y z#A{?qd?RANdm`G&J`5UUF4ITTE-i)Zr0l>vVmr8uJEUhuJ}cis)8vhzH`3^Eb7@^< zgm@xa&FE8C;?wxr{4nufVU1E>?gvEFE=YOcD*g!^N^O8IFxAl|=B?;#b4w(FfuPYu zMc@>&(;yHTMKvG_ywI*ecQp_C7jTG5L$(>-933;)^gMBcZDr~w$HlaVjvJ}}*nG(+ z%~z6oFk6#MbbRtU>PT{bYEd#r)=f$wiG;eu@3GtPI<9i~Zrer7Y_5xaq!y$9;eQ#r z4+A&TdjqmqPF=~W(x`}CrlV8U!(2n~tympRR3i9D+lPBWT9+kyE^XQ-8FE8N#K3trA#hGx^tAd+4Rcc-hPhv?y$N_E8ogn~4{M!_`@ zKU5weks;Vsv=`YE6RDR-N2(6E5uc}AG*~2pE=MYJ$5~Q*%DD=Ucd-QF|_{h}K^yo}aL3D<%cXX=1ak!PgN}#gul&6c4 zxq4f2qaawQK1?}GO-;irORV>7T^xNJHkabK>3Z)-ay_xfIY`@2){2&< zrlls4YR^m|s~J>>HDrCvj1PuCz^n8+z%<#a4iU~93gSfNKdy^bj|=H5qjQ0bP&t4K z1oidawZPP}LeO9G31&(F?APLx_{BmEkK|3njKLf}_3gcO?(=79+lQ6>mvWUolT(t9Ycp1*2Av%tf` z?STfx-~6r;+Gx*t%W4$gDtS-%Qqo3_oxR(6~u*$Yd zA7I<6Z?|m#9@%z*Yi*67OV&-$R0|B(Han3Ja~(~jJK%$fazrr#6Ggxb%wk*tsmF!Y zynw(HWo^UT3JE`+FL}1)HSwkvjP`3q>q9fjYOy{1v&0VJR@z}!gAVeyF_kYPI`9|B zr`$ub8NZo4Ep#GFq+aBHHDGjUob+kvKZClz*}NK`U@auy*))2Q{hq0*y_}_@t%>z- zOS;W#I%^BllkFC&q4O1y=LU&gah-5q!cnYe(k;}LWI-wb(;9cYYAiQz~dFlpcpgQI%XWC!i$ zQ($+?RCt?h7dG5^jVf|KHrI*WVA~wi-2T*g%sR~4!1RpnPktc&!DbLQ(JGV^%VZv4 zMV1BlYI`o8@92ZSbNJDkj>gDN`&y`y{SNTlc1de!OI3zgzY3W39sAg-MyA=XM^aoX z*qqodVqPMl6{h?O1yXMzuTo-BE%7ZpCQbpLxrPB3>^=2$RzzQG*`P1C>;{T06G6Z_ z8=P)A4|F!q*KyNftt}&IGnhR{{oZ zm={jFD{Sv-8)d0yQmAfZFYF+?3v38AR6putBwT+dHq$Rj8}wp%gnmbvt>q}&6->zx z`$_A$6k$!+%&zzS6~s!Eva0#L3xCZi%h{LxXV!w8ADLHjhi1LV`<}f%zkHsO|D|Ak zL0<8L!XBPg#b5llN`DH^@$P5u1V)HcB8%0={3-CG(Fmz$a9&@7)0lhcNlS0Cqy0F2 z!T61zIJz-5M}6i`doFX@zTLdfQQel~%y2w){p70ds^@HFwACh=8Zuq+Vb~Gi2{2h& zr%YpeN(td4$zWQ^vB3q(*x>)vs-ec(^6(RFRdlNE;#&i^#6`edd8NKk-lk@We#yA4 z!9R~!*mQr1{1Veb>g!s<_jb%=H`uV~G0U!SB@-U1O)U!a#YG>8uJ*QqCwd?# zt86e>$Fl-l=IsNm^RIxTK^)y1`Hc19UK8a+JKaZdm=WNnZ3S#~-9j(ASyXhT8N7rH zV3S!_PLTJ-$>PNKYnY z;=XYoBvXF@)s*Jz%c66XWr2XW%ah3ir7gLA#o5sxMeYb$v@Pf_=-`{3->mdvZhk>_ zHj%p_>r&Rbto>Q(ISX@6=Z(srT6nXlc8OYguB^XzwRe&4wy)6l)<4ewd+<%*M7VQ! zBs-6F2?NAzsioolPlRuS890t^p)JHF^EzsY6=o*d8ZmQh)#z{5B(kFQ40gftCo+Q}b7sa+FOLn&a*5+H&H9W?M8z5J={=k2elVt zpou~NS|~(eO=yA47B|4TVmWAl2AB7(Qcr8IEY>`7qW-7y7MP)3 zG_E(0cn0hzzo8IQ4o@&mH0~)Z!*AYuDslDOKqt)Kvp)q5A*r zjBdto@yz$LqI+m1$#Y0?d%Ws5&rAIu-(2WJ@D|#g4G>$T({w%HsObng)ZCH^n2g>g zQ)=;0)vV|7LFR!lOh4B;;LYWQ$OrLHgJLrRsi_{uegN5|4_RV@iCNYzBx#4pt_B}; zq3s~*vtUSf^ESA(sR#)$$8nYUN&%+ZrY{D|?*wz-Hk+AYFQOaR?@_gEeuLqaj@@RK zK|jd7S}ZP0?~yDXg*&hhz=@IO;JWZ)aAnv5T@S}YE5i(UF{EgHgTE;!{4>RozFvHi zZzAXSkvtRx#NQ&@<@ekLHQ%6(xRfr2nz?wJt`3vyV~>NzWPaO4W&O@)4q;l1fI@4pbEQok>F{S#%O~yf#mBS9F|=yYK!x zk&Zi_yd|z}%DULq$@AQ+6Q4Pn#KqfQIiH)STCOqINu4_Ue-xbqkX%_ChOgc3ab{xM zwzV548*S`tY-eKIHaFfF8{5u?!#1z=pTDNMrfO>3GxwhJo%ekn>@Ix;Do6J)rhz2v zV5XN5VbaX`Of@i(Txql>fw>Z&pj|{Ks_&3@N&&Q@nvdPoEL2hR8T$mTWvhX;aq#$M zhnIM3uS(Xo8N>)nCnCuHiN9njVo&G;h=VQyzoT%#*{^ICp(lgA&ry91wMN@cLh1p+ zA|Jw^3&XJH@wdqJNEWm$BpJhlul4Q0%X%=>(AX0>2F__K8S`R0v?{R|^6|)F{&Dc1 zaI%l}&(2$(|2+G4?vkvRx!$Z=o_)E`0$yLm*tIAjA<8SYGW^tFsWLEU{SOd=uArk5 zexZvJPoV1(%b@QPHX~2n7m#J{cj%CW{kWL;i2RZ4r~gT9!|qFK#}-dZX6C2ZDOXYy zpYFba&2^r`td5O<++Ks+X3e5V%TRg_Q-jioQy?`x3mIe14|&4X;?4P0;z7U&uK>&*lJ-W4=oghE%8R|L~JkM>Xao1Ba<)$$w2xeE1(p#pLqps z1v2_G^+(uHZ8KU>Sq?oB619@CEa7peXmk!RzP#|8fti81K|f$BObLf0HzF@%FQX&) zd$In)@c0SgR{Wv>fevnM{-c=B6UuZkT|XzEfHJjdm>a4?Rl}aLd#KK~3YPKC!j9JN z8Lpx3$1c%X(>dDS&vw~Th?~RaQ36d6OX<4U1_s9RxMuiA+e&hhlVjev1on&zw`4iO z++6EQb|=%Gu1&5bo?%_H%qjRm=m1_4c?~j< z1qd9kO+3Y05q*g~0<1o%Oj=?Jac!)*AW!ddEOnK2_I5XP#$DqaGo5bxH2V(g5$kNr zGfM?as`Zt{w1%xdo5S82B$DRXw%JQq#@OBhGfxqs9=jIlO&u}^;DdBqBbEN3 zk?z#Xsyhuz&w+oKlZY1Re)bK)Ino&>u?KfD#o+FwmF2b-n8!RWK+>hs*HKL}+S6#E zLTrN~cPtl+&9$eNoZ#e3wRY7j)6eB9JI-~qY!P=xxv>d#%cUm;%9cuLRd#mT%rfqb zVCfTu9+j4hyefUa*uBy@#aowlmiSOIsd%H}c+ppd=|b<)+ZI@vax(d7LcPRq&OQnC z9Cs52+A|Yd+mAv z^ano7Ob<1K#zkL2>d)5S09FmZ~eirtLj@+4SSPU2_u3e0V&g7qw# z1}N99oZZRpj&yQ?wJUytS&PVk!BYmy(yJmzw9}9V95}z!9Y#kjM=z;Q)vFqH^wQ=P zZJv2veQk77{s1nf_i7DEQ0hrV)XMTkO;<{pi}WeTYN$L>3!O>>KNT>3rm{;QfwE}} zL8i$I--(IF*2sO$4EIxiMm{Q=Vu(7HzoXj35_$>gn=x8y2Zco*{D&NcNWPo-AzDpu z6z;4f24)M-J-rmcbzbfS~ z`}Nf`E&G>W&r`$6{&~C+DzCJUJvL7AIY_Dq$b4d)sw6#NhDs;cOTZCRQT8(jL7K3R z@_|ZKFH^0wX7m9)jd@|LXLRE*JwzWx1Y`wj3HVT>!l|(le#u|ldm!KRbj`i!dy(@b z_&xV>w6sMxGj)mUlhUJpXKLgD0Dx>ia{g5NxIL5!jT3Luf?%PRYny zOJOR<5n%7Ti&_UIF1MaaOt)-INM+ovw!}sok3`t2a7nrkAksyV8sr;{AY*t6K@%C+ zBzy|I2^(Xq1N7M)$WQSZ{3G5D?jG$9e+=Wu>u^ET7A=eYie13Y^T)6vq7U?GP~@99 z$yg)QmXF4MM!Sag_&0mKc~5c==6uTjm=nsrls7Ur**i49gnzMjN#K>=5o{EC5ZDv> z?%x&*`Z)fguZl3y-&pho>PV+TZn8l7L*adLS>uH;7ZC7a(HY+y-_LXL zZSrxxrYTG9aZ3Nhe1!_yE}};qZu~E2KK9753T5mA;5C+GMu^$29;W`1Bw`vL!mY7^ zc(ur9>|y9Tx+?e=@>gIH)Xs0{-@LjK%TJZArNCs$o&JH^R3J!t)6Nj_G>DK2u!Jw;1<}878uh&BZJH`^nY~-`rDZ~?@wR_T z=GcxDe`(!bq$}sicusjzpJR^`??acIaV^F6RPMli5%)54#mDqWNv0mj9myxk5{y(y z_?*%goSaa~R%MMiQf(z{*J=nBz|H-~Tq~`B>nrQg-RgY2t@e>9r;Q@Fs~bsHy+KY> z-jWC9x#SJ$B*99Zab2`wb>(dInED-iZ;T>pAbDh6{0TLOl&A>xocc{yu zY~hBpH>@ix{Xn`T-{o~)O~4X1B$iG*m^dNvVM0dY30I|rKkb>WhTJ#%KV(tMW;Bb+ zgF54i`3Jfm&^E>(HL=&22OmMcAa~HCL3TAt_n;#b;DZ5Tc>>l6Sqoo*?tnJyYvXTo zoB=~!jiXR$V+s68AB*hMuOTb-pCG*hLxZ&Qx&!!>H^{0yKpGYw# z@q?MN5Gj<5vG~)o>SGAR?fI& ze-1TwHO7u43gm#)ne6lQx7II(3OOGZO--0yqDWG`QV)_Qlxm(-wPZ%3x7d1jVv$2m zIb)W6McPWMHF=rEk)T+bxK7!Cao1Vg?Q+wJSKK|5bl3i*QO=4<^X)wocUZ?H2;5xv zR(81S9W&Kggze@LN~(;GH>xXy&DHCU2Hiu8Epi33McSt2!s_umLlbleQ+Am z5O^ps_$~YjdIHacn!!8GbLJ!cly*j`AypRG*st)Epv}M3r{}9TCTWgbaO3ELZ6o&Jza(F2~#YN=Em2pNGHrsz+`I+s8IU=Yey??|^)Yq%d5r0xf3FlvlBxte>Dm~KOsN*gY*Fzf(QEs!VX`#{HI^` z=8~UhWOw+O@N3S8DnA;29Qpn9=ORBwep~r#-LHzdLvssxPkKHFM)=D|UIvrnaOAY` zDf$THhOG+BuTf+^0#>Du)!Xt=eW$j-oMWzlTOf;23ises$s5!&swF#sTF7lAs&bF8 z27uxCnb`@}%>?D;PBMR4zjK3a^{ta^udGk4bFBL;&$z`bu$hu8u$>5N_Rvnq)dhmD z6=@Jz6_^x!;iUrE`HceQ@^gYe@>@j?c&o<-`ey^KBNC1JgwRUwg`nnn8w_|$hpmBn z(RHCaaUyy_oFD&Nae!R;AUU9$fRwpey{vUm$EZV;sLaa0Nu$Jb!d`wm|2TGs9}&$F zmq#(}Tf8l-NHd5PdKU(V+j0+(C){YX5w{3^%albKdNVQ(uwMrdZDA4jLvQhmP;0y< z=!r4r2XGx(XSP=7={MwA>Q;%B>xq8|!}-GT!7(QGAhInsIuhpT*kO6L5YWFVuVKRM zjR~+HD}z2mRlrJukW%K~5TkE5pQts>Ug{#Vv6==Z)BU0Aif$HHUK%}Qo8Ck!tZo6*mI32H<6yS7U1 zWK>cPnT1pxDyMZss_HY*#zrq}sQDc`3>C*ia5G#%9Qb^6Jhlm4gHAxNA+^!MNCdeF z2a)aYV{rP|ff$6U%rc^gqb92)BKC)=tzDtC#%?<8H&@-1=?+U$8(RzaL@vkvfZ6~W z>TTG~a3(X(3^P59FYI&u7WbzuUqq0v!=O*c&YnRuNBV9Q-8M!yFjM(q8(0$@e@yL1Z-2JysUqDJ-OpDDT;+ zhQ|s>29A5!Th~bPoSOuljBM(wqYe3wtryzfVMaf%3-TxBqUezh3roZ*LK|ToKb$`nf6Z@=e;42Kssc-OjP^<#DyH2+8tL89 zvHBV0pjH(w2b?(nf|)Y|2!q+uO7oWlQmWE=sv-aR+%X@iI9)Q6Ul%mf+dWUub>%Qe>@VIZU&2pR$_A~NdQNYwwll74cg&Fxg|5IK z0E@{zuD12Dowud9OxtM}Z7T<|0dc^axoDHgE!+lt6Fn1KOL~Bj?k~bheJ3sSDylZE zQz9_YHm2)v+n8C_OzyPpoW*HNv$VGqVBfO!>5=R_>Mr|$O61zom)QRFXeLV4q997Z z+7g4I>F7;mooVBns{6t>#72PDe>RZCqd`FH3$~Q11|_LUu(ccy0;+DfxjG=4qTh;b zGv38=3~#ieQ8W5L-yL0N5bjPZ%$cZZ<<=g_8?^p_is`@_0WA5&vy()uh<~KJDdX> zoCc5OcA-x>D{js$zivYQhaipFR^-kCav z&Z4>@7pakOC#nrpnLJ=L#an5Ekt*_A;}qXr9Uc8BRSrKBCxz@%#qcNTPUL_*KbEN! z=Xa>bh3 zWEnOcr|1ZInLA2PwXJ5KJH}Y&xe@1qq+SUJQa2{;FEB3IEMQNWSKvtMtODKwW`Tb) zN~EV0Y+B%Ax|x!fx-xM}(s?KDHmytTtyq_3ELokQu&We;e5ZcE6X<`DWz;tWc!l5} z&@Uqj=pkd2$tokeRF4=?<_hZ+DK5!BV#DRju^IBp_(Wv}ze4TFFH%3naOH61zSuZ4 zjUVL~qPh7mLPACiEZ+_XVm7eK2BYbo7ss!HW_YS`Blnedg%M2F{T4QS? z9fToqaEBLg)hCqFE{YBG!t&onw$cTxRv*J%^ju_#J`ugA)dd{j9>`4TJ%saPjhc~m zDiQ1~jq)E7a{PYbNN|xHQLo`8@@LnID2gGa+JfElTfvD2)nH8sjB33_8`uXaf&tiR)n z8e93(#uPpkxQ6d)TVr3<7tuzVJ$70z9QPPF|HSwZZv>jJozuT~J>qu&>bv8ZT z>SK;ri*qxq4Y{foH~XDAP0yx4qkv3d&JlxHCz;N5BEPa8VhGy+P^c>s`z#n4v9+Rx zI|S;xJ(a3pU5HO+iXa(enzJwOK$IuJ?>r0e=k< z;Zs12*YPcgKleP1*YO~{kspYo9+aQtiSf(4RittL5o&&Lg#kq}p>L6UP=m-Yb6Du6 zb``j8M|po^vMaIH|!Fs$r6a<~WFT`GCK79eL&(_6ia5FKUdyXBkB;X~$E})q8DOTGOLHDxn zk{5NWv6n z+2o4uZ)x_#Jq52Mc?#D{zFoLh(u#tG6V?{E>#UOc-JX+t%GM!SvZ_gQt!t9vmdA-U z%O44+SU_^7Us)FbC*&&R6!yWG2yfP|L({aP$Y7%()*8;iO*Db*3*5Iqs0g!~t!KGr z8DQOEU2C~%$!0dQO-Tp64Sh;1fs*ktMr-Vnz8$-4aKvbM22~4R#2%)aTl+Bo*;+9b z?7iq~HV-w}_L=@^tIRcYl(z}a4Cg*~3=sOCCiPE#mU=IBcRHRP%XpdYN$*|YO)8!; zE^)oPqvKy&K3kZ5PLv~WA-%AzPzm%lv;{qhka$yk2Qi%7Oa4whAaSY}=_WrA9I>02 zh*u;>;{B;id_KJvug!$;An->&WOtDhxgpeE(8jpLJ|v3JYtUr8saYGErdZV{d`&@! zOpERa4GyP<+J@(Zi$;@U4jynt#IWd-4M|rFzs zn8Q1u%HnS1g0hvkZ{z|N=sN36ly+1>+c+1)Bb|xn6320^j-6A7+ak()+gt64V;AH| z_#OYAJfBW0FoUa@(axGsaHg$X!Hf3vf}FERLDNYVl%4Z31jnxQzwL(#Xtw;cQTA17 zCml`F&N%y|UU!~MzT@~K@t19?tDGgn9-t3$--s=A27ZCOgzqQcP`}Z=EuY!7j^O>y-7Z<1P2ywurf6`9Zz~?WmgMX*d%N7=MDRVnt()=Fu)`9ku>?Va;Y# z0jG6swUfquwV3fm-lT02nkuDZPN`Z%5MD+mh*#rXG!6**4_X1IBL|V2 zNImozQXjnv&p`@9Fg(wwY`)exW0}#^=nP#o&m&&=FT5MppSl4^bC;+pmOJz|%O1KO zH;sBsBjk4S58@tC2Kblj(?04kJDowS$Jjx(Ke@1NDEH9z7t32~(nBp*@WO0sxD+)| z+m4MDuR*WDItdN+RYv-KQX$_B$?7{N`+bwuu)n=tEl|s-&D zaxMzfbAJej^Tvq9J%n`J+eJ$Cmz8=2_KVemcZ7DqvHaw~=~xF}{mAt^e_(!A2k*`A z?ej)_ot5MKnvwJQ+wk0pzeak}^G*f!`D#a_L6u(=?k!yppOvqNL&~Da1FduHPje?f z0IbnQ;G^ZL)G}oX(@@2^^Xfm`Lv;YxNG-q`vXhnpiFh3U0R0gi1iud-GarYx81=)0 zj0vF0{F8qIt(GCAqn3_%wLK7`uGQCyo8;v9E`DjGUepm@8tM|7AMgg#{8xhAd|!hV zeWgOJedR-ieOrS4yuAViJR5y8^Tv7(=D73z%Q~37^g?WU{2Tuvt_qz&I^#yHi}YtKB9)F!le@+!rD^=F0t;DcY00K1D+P@a z>SJ)eJreXyA89A$2}*70nz&tf9(VDjqb=jp!!EvOI0-a~^R;Gt2jr&&lb_UNrn}ym zP16x}n|hSqE-wV>;J-09zYTsHm5oA?-g>q0FHH_Hx;@-hZxPPa4~O^Y&d6_iiAcJ3 zEc{ts8@eon1LI;P{6r++Z5JkdQvg{k82cL9AUI;vrCEF}`G)XGdMd0H-|-9ivT;we zY&0ocDm*hVBRI~tDDb=Yk3d!L$v_X^l3-%6R=9EWcC?)MlmDq=@&t3KIsz`Hrz6S6 zJmek7AOy|fcmzI36~qs7Dm5KgWRhI9Y#&{n>;b3EuG{xp=UPj1H`&s3B0ZV-KEWP5VIEPq&CHq@4Ci(AfFKC+A1AM|!wrN&WD>2g$i zZYSWjG^XD>r_yiTekv_tBzeOX#cDcs!=EgZbe=vhr4Y`zA88rB4Xp_*Ht+i!<~#3v z^QX5M{L}Xa9UsUeLcwwL8Ywg>j3vgYx4K3qkL;h3Jo972}b4^W*Fn_5ez z4R>azS9KT6Smx?eK(QZ6>1X+xc#=NrzDH!baJ;^&2DZfY8nwEoqubpq`qSMB8R=G_ z_fEf2*FI0HX=$KzX9i2>$%xPaf61Rg|K!J`kZ=h*FPcPgWjOs*i!+jOjd^JvqY!f- z`1+UNRmu>fxAau?3SPOZa10PK1+lg`L3By~2}h*Kf++PDV0j22r!E&3OV@;dq%A@X zxr`8%1Hdh`4NxXs@&I#(UJb2+&II?4YHWbrZkb?dXFbPNw{&10G9$^KWF>qw-UBny zZ0tJPpE!#3rp^+Rm<@D$ZZCJ%Qp$GUnq$9W(;U0(XPo66DXy}P%C41muXBTKsxxRE z;;drBT<7hB+)tf(35o8ZiAP;s66!dvIrBKbwHeuwX#+3BomvgJjr3l33A@xH{Cp*a zudaOH*DF@Bky=LDrRGT!)patau2Oa?r`6KRB(0--Tk9$z`VaB8o(cBt)s=1VWUU-_ z!Kg&khkg+&AO~^MG*Q%O0hiVe7;lvu+FS+K<^mI_8!%#uBkj?2@)p^eYss~BRJ1=! z_{Ui=WvAM4*g|B4w76+d>nS z>Tq*)3;b4n4p-M+!Ql1*jZ;p8_vO_6v0cK7P={!S|84M>XSu(k=Ym#2d4dO%M4M01jn^;_YBCZmPNRP#%QaP!Id{Z*yoAOuXoVrZgViYzZ(v{}#^2zVkh!^Wz=EZ=)XqKf{%M7lLQ=Z}>muZt*qB-Q;uS z&GU!ze+Jt628K=rUWA{7_{fmRiD)0-mHapQA&SSGv1h<|Ifc&zQ}gR* z^{ZwpV*va&xF_v5+8|5y{m@|b8(=|oS9#+-|J%pO>8GYkEx%g8ph zD!f@5Wt8H#EAt{{gqMMY=s|C#(4qVn0av~p_?AB?^uYUPq7s7auj#*7o%XR5-H-iD_F)E+S80m+ zM$e_^G3D7ZfVQ=kZ2$~5Gc1{GHITQh#@(Z5F!RY?R68t@*b2Qs^Ry?R5s?Xn0F!97 zcoE(%4Z}VuICVphuxp@pw$s4W-3?XkX-Iurrg@N?pnaid$z{lg!a=N2{CDKPNIxhN zN-({_*2c}?LERC`*QSIp?N}(LYzy6#dxx$|wop^a8(bpQ1|*fPVMLn~b(nkj@kmK| z9o|NJ2|9w0D7(3n0#tf(roM(4q^-plt6Q-v$`UkNK9BU2CFHgI2m_N1GSzs&+=sea z6vS^`g3YuI!Tr`Q_-@NcY&O>oZNNQ58d<8NyKLVu%r%kRpP0&YO37ubrZ(dmr?^>n z(lx5R`v%^@u>`4TonXFVPHF?l*~)mVgFFqXC~ty&@@=@Mx(g|;FGueiWii35jm?Bw zp+2(#{2MU-{;qw|HY=62MRK;*Ql4X+kqM}tG6xy~GN69Bu6{!5rFewtqAw0G;L)Se z@{u{=1);S;cd%bzaDWKh3JeP*g~kE%3m5JfD-@l@_m1}xD+tG>bg_e6S==d?5X&lg z;xyH+JkpQpR&bi}6g*d>snYcCpi7ZzX~sUbbY#|8Mo>4oI6j%3ibm)s@G)u*TmzVA zvZ(FYQl>2Vox_nc_kHDKHi$^*Q&4cNJK6E4g=v77;}@rBk_j$ZbUPQN3? z{mS{=?RUO)X8~&H2^;KmS#oVJnKWyA`T>_h7v-KX`?>bk?$#XVPy5QGqb@w{PQr)+ zJrd8PRZf_Ya?80i@rmu4E5r?T%wRU#R!|+S1IbmEIwWR!LQdcggI(=l`Z2SceoA+u zKU4Rq7+HX_lD$cq*g}LcFP?!d!JXhWiPs~~66thH>O1q6dd)s253}|0<$z0`O+D6K z*g@k9mj}- zw|L=%B=S^3gnF2`g6)%h05J19Ii{tZbiPX)Hk^sqe$ zf3#)6jqS_P%Z`48*R_NmnAn5^W@~HJ)bloL+6KEf^&$AU_Vy-89c>-l2dpO@oUNLD zoITf8$JyR~)%C+Z#$Clhy6=FM*d*IU`*@4n`kwj1m}Eb)GtOcdx*i@0&xPJXAYTM! zLk;0F@FW;q*Wf46O!&2Ffeqa-1qCr`i(S;OvE|auNF||l;ITdjH%FPLxI*C=b-OeJyVpQ zXcL9F9F4XSUE!*H$>7IW{Xmu2(7?dhwBUsJ-cXp2g%ZW|(0K9BKw+`HZ;i0gQ(U-~ z?-1VRHx(9mCJ5cUorJ2sRAH-sneZ;iiz6a8<>fJ1xgD>nM&r|zM)5S+63n;_PB|=nd9P6v>3-jXjpiOuXsKrZx^E?`& z#V+BQ(x%8}d49Bn@)P8PUVu6DxaeB>X9NNa{6D0=;b~%tP(z_-uqOXGNbqaI2l#)Z zmxLYh9I+O^U!vpVq=}KXV1M6-_j>7A-F!a0G52_=Z03q38qZ>9 z^=Q+KXS;F%gMo&Q%LBma$mMShb1W4`JAkl)8MAU}}XGVe^* z$(%wzqFISwxBlAlrT4Ff|DDcS`OTTT>*uZfA~~CUKk}ys=lSbIs)uXD?eWFpNO7=o zUQW~`WxkfFO6nK2pt?kRpp4TCs(lSYn*q{!*P&tNXSf`^5gCm9i@Zm=fqcVTScQY| z6ZjRdru~Hp$YvslZU@wh3e4}=I<^LOfoqQ?SQ=t|xl8C;W+U>9JONF^5{$8Mdv%2= zNW;u`VjfghYKrcVpWruCnWT(P^grfAx-c{fFyKFcqGV zS7TZ7HauMsh`*G*R7kNfz0{FRJ+&L%Q@Kp6mSp4;U)6jV9i`dBcC~V_fx0qqS8E=G zOd(Vm<|EgUEwOrNm-quDH6Dh$#=5|hqC?=^NNwa@q#>$B1T-W1H?}frC$7d?Q0IA; zttRDJvK7)^RsU@N+vshtVScopF;XnMbb|X&OX37=vL(YPX>Sc(cU41cCKVx;r*xod zr;euwr>vl#B*ApY#J<#^1TU$%uackLPsxjJgPh~8Np*5hr^>nCQ@35o^lc|h^Y+G6 zHS1>LJd=VwC5pk1k&;GL^M?9T+on_mNy*Oo0qwI{&HRbrNM*bbmQJAf3;Ypw3HuN2 zj2=bq!JXhV2sDX|Btz3WX*IydBx${sOl_Z1O+TVO(oLDgW6oCrz_8O7K_& zXDi@3u(ItO|1iHCMcFk@3-{7l%K|$KT6fv3)+_7*EXhHRp`bk-!l4_E647fX5 zn2VuG$Yu07aKEl6-qUq~{UMjA0L~WgvSaZC_8lH$rhvC8w9Ng-eY5tleYPL7*K(e- zpK{8!QO&MZDfCXC(X+|!`y3>CU z*-TS%GfR`rz~^=`6R@pR4BbU~u}x$$IgolypQh(>wLxZT1$W+7+Oos;iyLcw$^OPA zGb?F=x<-h=jMoB#(Jtshq#e2uNx+iPO?VmX0l5ip%6uW(a9hdImW|{x%Ua?fcLF2W z?nrsM5_E)oXyg)A44!Zsv%ub^2(`xeP6dr^blhmoY&J~hj=r2ds=Z_1sBZ4Lx`}(P zEw|h^D%vvP(~e2leRo+>N!mo)(pIyZ(;srSf|V>y3(8#Ij2_(m0()3Itr)u|g=04* zPi4y{58zrQAGI7#u4XHga>>3sWs2im%3ZrRd7rgo(gn7D!gES>9w2=7OL!mK2;!pk z0#)CZ!(OyIZA+ZH9qH~0F2UW~HQUWPhdVdgoVG<=3HCR-0a=sCN2{X4;a1Q?^M+2C z*{W{bReG7_ln>@9xeD}LDg#XxF9I%Ls_Etj8>`|w^^b8#r-esavc%~jC0DOuR544! z(;x$>1-C-e;SkK5^d< zu9hMeYa5B*H9K)gjRHsg9Q2&>8wmkv6_9(VjjeuKJ4e+5YML=|D5SdoVA~g%-uLLUjCKxNnSzERJS}r$(BF z%Y=u9ZU#>UF9%i!KLs*F3qr>t>!WAlnF12t{!1^SU($PPTlM+sZT*ze7!d2*nnmTpupsS3 z$I4}ip-Kg6hT4H{rA?(rYWt~OYGE=W|AAi;w}ZKBM`V8N2Ye#h9f4x2(6;f4czIzp zp^0_L!XW3nRrV6=WDDVzqgZF@77Cn+NOj?N_*;Acv^!>+|3(KxE20zOg0X!_?f3w6 zBHss{CbU4Zg=A>5&`AG_AFp(auaTa_I!kThujCNFLmMsifM%%wKX+tk4Q4Ev*lK%I zV!5k4=}G8A&P&Q6swaQI3nq`l79|nry~KRDOkzJ+NmvP|CRRbpCO$yo34Ww;!cgR? z%MBlLR5E|JmC?Ifda89fyHbZ+FXwO{&a%6Cg=wUZ@FJ;i3JCFxdb22o#mg9M~? z<}C4mR!pd)l;IaiUO-UV!uJB{sA>I-#>>`E;rwvd_lW#STMC+cCJ z@N~?;dtr5mT;SSSf@k16@x91&EZ?A!lgc&Yn$SkoV#g&iwn=;+OOrhO8+n^lPphV$ zG0Nz>pmD}0_;+&_0z3^B_WD}4@w$R_qW8`M-H1SZ`OPp3NlMd|)J>ICu)rSvSAD{>A|Kc7;6>_+< z0@ciUo!Sn#4Fl~0dCM9lGAuIwk*$K4We;Gb*%{b#_CEHBtByaitj6nE58}Tpf8wXO zIEI4WWDi=yGN_8gRdNvErq^b>(+#XknKZ{nwjW4yuXk7Grnt+psjhVTrM(?tvDQIb zux+7i>VsZ}tg00yR;hFFJoN*nX(6{?n( z&}PMU8pq-KL(#IYUq9Zm_d0$GPQ} z`P?3E6B}n{G0F4+dLP-97Ks&fG8v$Ela-h%RD0$Fq3t>!(%guh@5u^+@I+gum!jd*T>$N zgVC}^d$gtQMJwv>u=V;rJk3z?b;cCnVtI~6^m6bl(8cYbv{TNCiqMc>83&xWSmD^7 zSSa>1evPj#!*w1>d*_}F4|Zd zN)CcrGZ3n?)v%siMeKKW5L%b+fIJ~8!%MJQ&WZh?2f1^%a@m;TlfBDglXAjHJ_hDSu% z@TKsQV29vu{;$3YUeohF|G)gf`8D(R?_VUPdsSl!TK zp=9KiG$qeTS8OzHV|D_?a8}>kCc&P(1EC7+K{z6zb%w zAMEJ+Gcd#F_22h>@i+2U4*30W@MEBF$Qh~=ITl_Mdm1e%^yBAAAH-tH7WswJRhg?W zN@tk^&lV<~5>AS5h4xZ&X{UTx$xtWg3$%HVp`Sr718deOxEB2YDZ}nTw{s}=w}rtL zS#P6%*h-=;>>ZH?j>)jac>~(&tPH(z9x}H$9~!3|b@ZU^i_*^$5t}kD{u6OKdJO$7 zQW8EI9&9cRw>R#EAL%_Kpgj`pYRrj!GXOoZFnf$?8XvsJ?mD~?NIT*Tvy3b39qSciKFQvNjdc8q~T0z zvdolAe##~$m$Os>d%Nw)haJf&Zuh7ZHgR!E>!iUckCHwm?@BtJbS3d=bpy-ib5mOp07&?M+Rx(8N>*T@C>Uvxd|#D;Ol z&^p{NtrcqMHuRlg!ui1C zooOT+C5$AkoUu>2X}A^9oUOct&!{9eP%ll4GYe5qV47jElk5rn8aIk4W*J407KoU~ zjmD3&B6fx0F&ncLPh#$X)msTF#Ezvu0t+r@>B|)3uG6)cC)76*r49pL*h};dIRJ4` z&EfIXP$-K!YyL)mH^$S~bee9hJtwy)i}1Y?aKH+a^vkiz(zo!(C=x`1n|)2aMZMPi z;@&ZN`+U#x)Ii((4&lc6RCGoj8f%g}ELJe*U~F1;vG|(o^8Co0cf$2tk5nh$tse2@ zYXNUb!|s1#qy$K_Xt0J^EHoWtoYt5(Lyb%{w8)@>JN0=1Qg;P=>RkAZ(JIyuE+!^m zH(1 z#ir8pIAD!~J=vb%+~{_1Zs_mac7a`4jeY#j7T!-kCwSdiGkm}22>x*1pkNbk^UxRH zjL=4Z!O$Xq$DrJ=~08E@gCRQxeFm@;O zB3dBKN6Ln|NX_ur@WJq?@PkN`$b* z&9HPe)JS?20gdYTZ^}U6V|XNYQ5UFpK+9o^?9fdyRmX*^fP?j)Iy^F1fkHE-z5Z3g zaBp#bVg8|ble|>^U2b)uUS6hHHh;8a^9+}Id1{MK^6T?w@|wh+MEk5nf1Lg#Mu4m8Tx(XXvN+mSz)S zEWAuCjLnw^kh$tJCe65G*=gRlHGmG;J3^1_OQ0|IA#e!?fo^tmzzaGVYOC`D^U&GA zGQ;V&Zg!lr5%yKKSC$=C2g_Mhl4jq4Z2c8@1aZw6hOruk!pbTnOLC#Nq$*f5xfTB5 ze-xc%cobI~hG%zYcGg|uo&X6_+}&MEafjj**WwPvi%X%nyB2pRXdofJ?&Ch+d_VTe z-&~W;oO9muJoioCh2GH}AQ#0+T+lrETfB`lTi-2|pso1+Xk+dNa*~~k?3WC=&)HDS z%btvdrDt=K&5Y$qp2Ae-baW0?Cwh`N5t)lmkMzX9M}8$Nu@lr7G{){FMu`RVMEQ8` zH5lSYDMtuX;U+?7m0Yr#(mW=aDUWM%1dTS#tF&|Z`x=g$rP;-G(zN2%N-X8(S|?wm z{Y7}Kb&4-FzlvSel#s4kC=|m}g;T1k;yBG4;Hl20uo|mCf0)vhV@&rTy|F8(&`*}5 zlFh!Ox~HgBH5asSUp`*Bh%-YsSyDkV%@wDZUlog(UZ6DPfZB04l=FEroF^<)2Kf%q zOO8;qW%UY>LFN1CkBV&RX0I-5g5$X`+??AF&u6_7oy{iln6X5L9ZwF{&ab8~10 zctf5lx5=hSchlE|dg2PMjQ>a%vnFx{U5OnaPoVdSmS~jNj6NqPW3Q;@cn7*RzLxq2 zZ9^=IUPaag&xafMMh8B7zWEM#8~D%pivxyGt#D@KY;;}p9g-O9fnAT<@qv;0_|8yG zym@dFemKyMxF1L&p9U9Du5g5jM{Wweh!2X!?0;%noNb(}D6vMsxsD6q-_AFRL2)rf zZo+!Vl>8B{lh#JlGV`=9A?LecYSlkX->M~=HMt*5>D4r*k5yI~qd8t4_qcNtF-R%G-~(q(*4T9$?Q!Z{3bcZ1oc6BTuTE0CmCKa*^4;=p zf?LpX+qiqo3w8@bv2JNj)`9KE_h&2kBaGCWqLy)W@c?az?I!Xg3Z=Jjql779DWC!7%2o&pnZRBHP&x$Mpiapsl9yj5 zD?k~wUpbhhBh;Q>6RBDdxS(F6LgUWYZMYQ+*EHLc0@MrH+CZrBu>>=|*9ax>Chy9%y&yZW*TQo0@a< zUoA4--`4kv$IPhcj)-=8fr^uoix9_M`*&+2p|$Annr`_N$)a%$N2u1(r$VF5#eirOyq9(BS9edn4?lsatZl_Vz7VFN6`UcW2mz~F7VOw z)F0>Z21a?Wh35w#bhN}u{EW2b?qm7FQ;9@(5w(a3=x<^cR!w$*NCa=v2KXdbQ;iD! zH6H*%^FY2=>wvcEHo>#>8g(`OHdUpjw-ScCD|X2z0i%Vt{1m1yJCvwJ4@aV8^+4w2(Fk+wMqGWuHcV?eyjI_uXHQ z7VY>3mV7TbTITtoaTWY*;mavo8H!Xqjn;D)A^W^but5P0kr7@(64IT*pIB!Wp!*44 zDTkOPPXfPzQ=xOvaHtTpfnK>!_7!+1ngO*qTQ(9n3ieTysmhfu{X@-KtI^mX{+zW# zO7*zxjEcnWS?MX;v(~1VGWE$d)2bwVPI5W0_(3*BT&cz5$g<=){x);AMW$nxiPC-B z9j#N>T)k7h1ZLnl%9U_4C8%C2wI*k34CY(2hjI0;$M(PSHB5E!x(wv?UzKzqt zv#|pInov9M6W<)yF8A{C(uyG^jmzXk{}z`PP(|Wb+s}k=DJ8YO|6bm)=#$G)veRoV z`^`VHe5e0;dAcuD_SHSB)au$&GOzMu3FJyG`{`a~Eko=5@zKqpp2*k8-&j1d zTgo$~vv0{J!oTzY0Ay;(6Pf)`8dqO?3z%lEqFm&ds2LW&T4zt#p-Yc%ug!JNP(QU@ zfR|V%E0fKgl`G8{T*LN6yCklWSxkbQ4bt8vc1wSglARVzt(Uwk^=SO`lw*$b$y01O z$r~&!lhVx%5;0R+;$+K>qyx5^sk}WQ{k#26`U%_2bc6M4T6Z&@I>UG=Wv8A>(&*|Y z*3({(XEg2N?rZuvvNf-*D)oKSXt5 z0@Xw<2anavk)}SIz;((I@@}9O7$A4?*8mkK7wa;q{6K0Y`-zA#O^LtRBgAdVH@TJ{ zM{eXRi0fPd-ikeoO{6!Xf07%K@A&7~N$iiBmLft-#yq;&oB7!etU+>6?=gGdT_ z4Ij?}%xu6WZjj7vwEB%|fPSRzu(8CTGfy_fS$;RSxAwNUZ0oEVXNG-SJm4IdlpNnU zb$a6W^h?RH%sr_)vumUiIg2xjs`SoGsk%NhRAoly&MK2KJ61W98OlL3yX1V%Y?Ymv z$z(b*I%lj(JCa(F>`$zk@XTp-WZ1S^KAMM`s!BUavt^M9!;Ljb!K97CT}oFlKua|w;SF0POt!~T$a z(MR%?$YS}C=tCJDt}Ba$Qe@d7K&A;c1Qz%o3TwS(+z5AoSzkGqzFpCTZeBTzx#t?r zJ@M=je(_^KtI&BxLG-k8I5tn+p1h#lLl4y3xC~z++cs9lsU(#rpKjf zoC#Ll-ozRD?}^)>U=|HqO@EtDn8w+9n#Vc&T5=Nf)|-iEEv`h^ ztW7*VXK4x zAT$oWq?xA2G}dR1(;5G?a!|+sAQOXOlceUv(hBj zsM1~)(UKQs)l1c78_V*_;wv5HO+4c&?)e&3p7wvK@c5>eXL#S1s@(faN-8uZYs#J! z>q`z5_xstXr2bEH+00^B#o*Fh&!O@Qe!j9wSmB9A7kCdNQ+*B4LH=Io;^1^_Ks1k3 z;8&Rty+!Z}+vWc%CMiF`F7+5Kr0;L|WPE2DZ)s?)Vb?nr#LbBxkW`u!pY})Uw~W8i z99hlMlvx?6-7{Y#|DLfbXe7v+>hf5rqkLc~Se9OrS(05``=_%wSm-SIR+w4V z^=JFa)}^z(11o!mf?gfcHYDI|v?kpe8^S##Apl`*;9{VQ>LWNsw_DZ7bW%IWTC9I* zZ()4mOgGJpcbje}95D||jJM2B>|*&Z@rdPi(q`+_lq&YwY3-fMGM>i|$r_Y&HhWZx zGiOL@AiH1c*K9PUTMn0^uQDmMYZd9Vk<%fiM%MkrvFU%rT}h#B;ly9e`{EE?p53P2 zX4#_r&HNJj-MnAf&@xF?VyUCqWwB^6(|(QJz)1|HugdGnzrZbWk1W8S5gO3#*&+B2 zY7jb)oQ&3>CS#}Rx7Zvef?60Aa*4Vdc|q{fSz%%55M~QEzz0R{O9PVDV z;A5ykSOT>MeLyWkn=zv>T560o<_+WkelA&udq`w4di*N+5V7HL(mJRLoeH1zHIN$J z3%$9OQbw=hlDnkhjOUoEneU@#tN)}gJMh7O#%~Guyd(X0T!*|_Wd~hv3SX7g_%@^X zz~{F`!#;CGkuUR$&llV-y;E4bVq)%ojnK|O3eq&zg2ISD zC6+A=z7ZFw*30i`8-btoX;QlU8#L31E9IsWDup>;`sSGQ3vHhb)g9lAO`Xe3WzJpZ z{J06$ehD@0#}Z5J&lAtt6^V=O%@h3gr}6cjm*Z>3lksthSUj6}F>Ym|&)zj*tffWTe`{DCh(y*0p2u1TYhvv~ z8D#Y^LWALLY~SD+cC)XPS>;wR4J-Y0Ma2%bqx&!Mhrb?FJDROc!+V(osr0mO8I#fNBcRklt zV`pA`%@w(is*k8j=FZ9~sP<2`Jhy93ySy4zuU2o9n^~i6UU}Zu+#1!^RaNA)$r+cq zJu964D)U4-pV=>?R`!O>tK9j4={yh)OI*_+EV`bjZw41q2lTTJP#9Oir zwoYkx4N&53wKTX! zG}x}J#(!1*#f^c6F;(R&NvF_JYI2;!?olQ9RBD1mQ)tW1rBCpG(7U8I(p(ut_f!NZ z54e`9fR2+pq38G&#Y5x+;D~(W4+I9XZtpYt7taRzi95phJm>gj{tDo1Xp$m1`WS2< z+Xtx-6Z{$7uWm!O(ObB;=EJg~j!Na~_|=*k30t)t<63I$b{d{(nV{StrMI27 zV@)4Ncm3aSCru|3Y_^3-3ndp`ae^w%lZ>WaNwufVNNt-8Cl8Bn7C+CPV;^a`V?J+s zXxwR9WqfCTWvXpmV(DicYu#-wwA3*an>=cpfrajB^A%2Q5_nqIS^2=YOLfIES)F8? zr8;eGul!-YrI>9zBum#10kXBL#d_)y!hgyqT)x7=nq?npz1WR*2!|!x`cP)KID`2Y zs6tNx+7W96Bhrf9652(IzNHxB8ILUU%!sx19*F(r8-i@|7b8%h2W0_r$7sPsR*hE_TghLt1+3BWBNA zH{j2pUy-rU+UOSL!>C z>?_@ud+(z^a=$(((-kFpdzZqY{PIrGK9%DT%+&zv;H^ObfzH&1P(5aDjmPgjE~ zLN!aJk<1I*lzZStkY1GqP1ES%5rzet1s1(wi~W$v=G(%(TH+)?=8Z&~))jXZ&UK!G#yOH9i(@Br%068A)`lsY zTC-u;Oe&Wf<|%Jz*Fdmpo8pGNP$b#0i~_HP$s+y2C;dl#N4%ul>AT}L1ZsIJgBN^z zLMDITP#d2nYsmum z4sa6vMD>tY>s!muo0=#YORD;cHKbW%&Cs2*uGGJV7un+ux~dZ`X3 z>{9hih`_WjFI?Rf46zT4`ymPLhZv&y5wTj)ofQ z^E#ipqqdHAuO_6+*UU4F&{j1r)IOIwAY1hd)sM9O;d$!mV39ISRt0>>PnKk<_$q@X zPIqSc0Z)EqZQowcpul(kj&Mo%9WoUiPF9jL+57AXK`v&QV4-nj7#W$u_3a&sWbiKGI&c@P^)w)0P+ULmf|(d=eMDdUBuiV5%!aouSRzoB1m1 zZC0&pWzJvO)2mo=-c+5Lv#gper$e6d}$i){GMiU z2GX88uB6>`)J=QjSeyFEu_I-vBa)P2k56cAA?!{AZ0@6Oq$>j_sm{t0m34rg&`{t6 z^sj8Ha=7BM@+DXV&4QHRQfQB?F7!?~42IZyQhM;2d=?p!ZNlSaebFpnYm^s8g`V-< z{3RUc+0E^8`?>wD&iua09{l@?9{iPxH~hd#N|@ui4t#ba@~PgPP@ykLwZi{io#^ka zVZCm(%-d59d$ZM7eYe$ZL+!Qgkd68qq|7v*dtp8)S}m7koy|uSznQGc3&#Ic8Aeev z(6C3>O@Bde)J-(p(G(b@38`V1s+zH*w7;%YQ1}cFx!7ohEIz{cqI|b3AlXpCvo4-XN`v)!F0FNah>#g4wU!!q$Y7xF&F4DS2w* z@}Op{Mj;#qb2{-jO54b!T(mUdYXO;WBJKtUAs_WU{I_C+v{`A)LpuS2Zu=_|M;Y6e48KgZ`ANif?f&52RM~Bnzu+hv{;w^iO>cGFIhY6RNMq(~E7WhvX zEUzt3fKEd^+)$OMIj_#uPL+5t3pIVU_td>L<5d?_kCm^Lawq`)spziQDz70i&9}-P z%NNP^DQHQj@{iP)x&~`Zoy@~cwDFbkwSh3C8QL1^7?g%W!yH3_agz}<<(Vy(rPle@8;x8^y#6=SR(+cJtNx_a#wfHcGmUY6vrJ9+YHyt~ zH-1Y-o8;>`%hT%Sp3Zn#eQ)N7n#(hTHP>gfuX#0XLiIrMifXkJ5_3>HoS9^ir~hL_ zQg0cMloN(I$WvrT2di_%ieYx(l`e6G2qIU-3fLSHS^K6&+>C&@(xz`~YrKwN=7u zNSP_&@P;V?*(XI`eml^Mw(*_u7=18yNNT~&By6Fh5_G^zjt{S;w@Y28FUVHzDfX){ zkGKdlq|PZEj0~pP37T?#mHw+3FrJl7H`^4oE$(Y#5I&0T62Xx!n&W05Jh;g^j-LzK}j9@HNJ?yC8c>@ zhe0wW)Cd0>T#3C8{fRA)G{6VPz7SbxdpZf15?kaNK1yNyXF834M9*dsswKUjTua=- zSEAF<2~l6PX{c9N?e_#Ycfi-6a+0@y`D;&l`6Tc5ibQ{N_pD%NpF8|2P!g>b`WBlU zx)v)4o|7D5hDgmoJYQ??2Hyv7Xa8S*WpHMwF#K!m8d8Q& zCWkPqIg;-$>jl(-#>>9ICuCdH%VoDTSueE{q^Z|IG5!XyImFQZS1br)GZQ~3BZ`x~UWj$%!ZcjJwa~`&^anG## z;#=C#_|~=!36pHy5({kC6Akw5iLY#dg!;BC@l&lO&heH-_OR)q#cMcWoS@6l{h_`M z7eT}2t7N^o#asZ-A>T%7BL)6x;Y*&W!5Quj!K>~Kp{t(Bk&|9aEYH^gsV2?i_IiWp zd`}&Wa9Odjl`b?~E}|RC24Razd2B>!4za2XCI74F$-Hzo<{SGr0|P=&70)7_m6u}- zJP%D(XW_j15OGxVjl?v^sQsD;R4a8Sstx=L^#YntKZJU54d7M43-wco)xFTpHEAuP z^{BJDlT2J6Z%&O%?2_Ij>0U-oa`Vg&$uBahru>zjmvS=oN^<|?Pf2iMT2fYgQqmV^ zK@#jVrd)TdN_9Div_G8nGU~+*%rwNW$l~I!WpfEdIiC}+RKXM9R=JaKFsIo0A#~2q9xIp zYB^%RY8q;NVHjt6qKnrzmzrR|X-2|D>R+LC>cfg0byT)mr3VV6M%8Bc5r@E9&Z%zC zUDJ%>+vviAS#Jk2bsHtV%w#TIQICAY)sNjK-UVz(ocDI*w7WFY&Xb8$_t^*_Sd*O) zks1K#Mx~dyr@g>b7#+eX%R#_mGt2AS4$2!_x603$JISk<4Dxcx4t_kO%RfpJWxJf_R{(dIG-08{Z)LG5bOhZ&9mSf{4~SmuYC2hBd|d#F`5N-C zyhCo}`U7F=7oNiU)1GK0K09<3RRmrj&wW>sfbTc7P2e2XIJAa{lQKxZMZYmOqvyHm z(HH#R;g`HK_<$SaYtHIDQclM8lFF!jLq0EGOQ_0jV_%BfAUletMT&ns2=@5#$^UC% zEx)QbFHl&vA+*bt6`k(&##Z@vA;p1sq-Stllnu=KKcgwwGLRNH9vJH{4NmvBiA)T< zMRG#9yy^;q%_ZO9a-}AluSO3>zpPGK@{xSOb`Nu6^SA5y_ zqwkM1rISl5JSW|;a4_%`+Yot4HHdv+u17yJsbL#k-QR#nch^M+R79g&%8MdzD}ISC za=(pT_F1vb!5YN*@HMh#^g7i$Hi-TMVd;0Mm-!1H!i^&9N#28qxQoJp=41fKz!}jY zab&N>+VC@Dlem7!5YB|9@~epbLM440SSYMlq<|o-)124D8xQGQTja)u)^mofmTvk6 z=KITAv$lC&=k7M;N`M8|8dO1F#6G+m%nl~H~Hx-V`~EETHAS^hWK z5Pm-JoINl2sYPr$ZYOKRGLZbxoY0)WZeQ59%5C&zRwntbl@Id&TYe{Ks7#9b+?}vD z{v}jVcnj-5R&poNy6hyh2ZhCqcxH4dvOnA=Rv7vt)+YQHayoJbZ5m_IRHPc}j?I>G z(SJrXky>FmJUTohY>9S>{*L@W`eQZlM)+c)0Gm%NN5|kLv0`*fbPCcidLfn;YkTt!^R?w_zqy`qgyg1m#I3VEb&R&wwT?EG8{E1v+98^)>KW>m zYEivW-A#L3y95nytaOrq&+u zYb_V!PMPmJf11uZoTh>H9OFZ)ORuwB)EzKQ()BQ@4WQ+S`MEvMu{yz$a5qJsR5g8c zVqW^bI9uvv+mpn5rfPBX_2srY+K!e2^+@Ri^wDqyHt0*C^P07a8}LHeX^G3TP+lMt zWPgHP6mQ^t&~Z%(+)($cdadre+M+wAF4SC6jaHph?f|DtbhGYaef9;@S@KPj*beLw zHXr*$Tp{uqFY{VV0tSN-&9T7a$dVZ zeqQ%o)>@~RHP*^x2Q?$*{k1cp$NCh_EwkQq-?71AOgf(QChcDO!mO{^^{WJ{DykLc zo~||{kFPpE7s+u{eU_P&oskA-wn`>5(vtWrJ}FX#O<9)vKFyUkA^p!hLt49P{-kf& z-{Kl)2)2~eYLZe$T zqJUcT1VuL{L-~wpDLHdnsOQt2)R!rPdM}l$9xC}@ZZjt}L%I9fGJdVDT=++qEEZ`0 z5^89+^9B{b&z2J3zbkhE-6Zz&8EvZOgmH}VZ)=84?mX{Y6Ms1VeZr&oJqc-X`Eh`K zjXfrv7#`@>>)NPytJLskXs~i2m;?_3Z>fsFd71{&bn`ygT-QZnzYLO%(LELG==+Jc z3>|^Jrq=SYmQ~mIr2kv7&{T`BF>;T$TPXcpi5xEet;It1n$Y|2*ZT;%n{}z(SdA+ zUc!z?V~9EOB$gHa5#12Vie`tdMDXC2NUroV8fp_AA6XZB8oQ2m!7mdo8lx+OhulcX zsI^J?iT?(7Vr#&C$uuY%Jt?OmH-RbP*W%3ZNAYpw1kea+As>&o0*_IEayCmSB|fXN zy$C5$u{x*+-pg76uf!PeL1-;ckl1Qzz)PrxY&cvf?JJ69f+`A>sRoHxR3z_GZRW42 zM+(1be+A0)H5Cf;I%UwhQ$5X|qdjUHt!Za=N~g!qvi3@hohJK96!BHjRQ9aYWr>dr zAUcM-VvWLgkZ^c^%o3dvbww|P%c28?nPF+o1jc!7`;1&= zwnpcXvG8gvGZK$d(Jb^b>cCzSCvcL!M~WQ4NG2TijcftGS}|341ils)Lq7yanIhg& z>Vb0jt!$gR3b;`Fm(r~NLxt+Ms7v+V)ZcZZrK!ML)jIV{_^rwfpHwea57yn+EjNuY zC)&3;-o}{{$0S@%9vSaX9_3Ibt+PCcyKML%HTk}nSh$lOf<|fD$TL)&xKO!H7y#w- zW5M6~9EFUZBRjwy6FYKxA&m=htGKJ&EB+pTQ@kr~mYtDF?09)6d8YgUum~XeS9~L8 z1k;rO$gb!iEEIc)c1E^gMvNzB5HpzGR3U$X`XQ!}bH#V)dhTK*Np;oh#b z{=4NLJxOKP+-&K3&!Te1SI?Cf8td&89UFKfO&kibZn1&nB0PzG#n^!Tz+9+?a-_zm zX=+$*_-y)Us$n^7u5Ec}dSyCp=w$dqw^ln*dqzD#w^Qvj{;oY|nPvE5zi)o(Tx^>k zH_*{BuBNk{^PS^Qd#=5@^}6MtDa~XsywE?@BHDCKxn#MSsadMJudV^hR6U`Q&v zxmCUcm?jZxUP&~YtrA_eLRn3s71%X(3}*dvV{5}W<97WJ{a|ffjY&0FDJn+D_lODN z1GbfvKfE+SKffzsV|>)29;2q)6o@GWXb z_%AvuDl%w{XYJ^B=~K!qLQKpGWGs_}sksK^V8O}W0F+V}=ajrYI1TCuUQ`~DTb2FA zGm41RU#LxNXWz$C$<5&@s4CPi)*;j*b~{`L?G!D?jWIXLMYmBsrQBd{B$0R!nu87w zZi==I=)<40kPzD)_!|4Aq6AA49`%#wg>ewisE40XUF%T%v2*}D|$^HC1)U`4k zS?unMeDVH?9q`}4>js|SSNvK$?CXR*^wq&G`BnJ-;6&m?_$cX$*eP#hrgR2Ja8Ixf z)=c7+@AUJ?tUwFwN9a#tWGtTk74O6rQuR0$dyw78y66i`T`4Kk8r9>G5EylPTKc<| z+g<&N=`x`RFKb_Xy)wD1$UCu;kj#ncQN7=cJPSNT<^*RVZG)#{Hv?5;s{&hM=|KRU z88YHq!*_{B;W8paVg$_f)kM#GRLBv}Ur1ZuHmo=>n|u;J!Ca47h1=Lg*)B2zs-S**b8a0KbHN3^rrJsCEbD8#N;uHd7T(1Gl2`hOw~)}Da|#w zx6YzkXBen9S*qv;IVz1a6AoB^Pu}2|nF7T9ntZ_7IANu|$Uem~z&y%$O5ao8L%T(n zt@*Cot)8LJRsYmKQ)L>as5%*b!l-_ia-&WSE?0jQ{{d@DodKVM4J1r zg!2L?A{n7EvH6j<=+hXAokCj?UM!8=i&v7prJMH~|8}67($B486-OM$hv)thMOGhs$Upptw#iSN`A*sy2%k)gJ&(WdL%O zwWV36o^1#XiISuj9JoA1C2F5w|NoE#XVz zprn6NeoKu{?~x&s5aDOi&Swrwo{(NAJ}sq*{Xv3Ye(79e9ArPNUu?DOT3DRg&*s|N zla>RzXSO?rAqAL7pF>p1FZR$Km4UN^J`A8ThSMrnQrPij^uquPk7 ziyqgQ4GLXM@6~#ABea*a`?W*0Df;fZ@y3{blX;Ob-!jsKT7EZaEPqHGsVaIxcT{~$ z{Tg~KG0oS43jju5N6eBR5EA6qh3bmk;zMY-?2`JGqEa7$uA2rZ%SPQ|sr+`{?f|zUk*mU4-T;ow=H>hINK% zyzPUPwsx_TlDo8qF=*+at7}@THtQ9zpxy#@hRyOkNEEAr>qH*>RrU$~0shniYR>pr z*TlNQ2->AQx7}raV_RS;u&%X^v@Wn)ZHaN8?G*_zXWQhP@e5N1C%j6Ii~lvz?r_Al zu(YtBGwiZf*VVFyHJhwAG#XoiHqQ31c9FGE+to5id&{KOJT~Z59VAo72sJ8SB<-|B zML?)6uPLmO?H4x6=K^-dDWU=#$XOnbZetfmytFwSpk{<1x?gw!^FFHQDfFz^oVW`-A{K}r@C96VjHHI4 zHHlX!f$hRa;lEKf@&bF4t}WiJFOs+bGR1iJz%5E3c5hCeI&&g=kGbWkM8bK*6L ze5s|Jz&7d?KvVBzGMbm(e|cal(gy9p*GRwBD<}?~u3V0K;0Ab(<^}nm?lDtgn9b)K z^?de$169U*sOh|c%HuW@pBX!z#te~CN3XC4Y<*$`?B~73weWiPW{3m%zi=S6XY9ZdCGa zEPq74MgSGLz)f(!d;(ktYNg4Qc)2MmnI4B5>GmqWsOy3@WoOwv*-YUnpUr(_jx%X= zb!G!~g}F=xSQTBJe@=biCy+n*NqCeGqeq3q(yiG-tf{;@F#&8#@lZo%ta2&a4Z6ne zlCNe~3Lf$qJp${8d!h?}4B$G5pO_!Qf6Otl zgzYMO%2!o<7Po@EWeVtpY%n-RW>?$=Qsu*d2J!{K6h(E}I%vFHuezj2(@X+AnkC>s z%{*|t#BZNY4NESu~@Of76jbzRI3RgV5w#cb6# z;j5yIxh~!&Cvc_s6y_7&nb}Adu``$j!alyP%mSn-8ptjxSO8KKi=SjC1hp*2x0U7d z)8s{bf#M4P0qn%bL;bkX;6i4++(oXI)`aQYStLlekFB8$QugVr#1-Cwxao1|bT)<> zcmj0@NoWb*GB%#O7oN;i3$CZ!J_R|^n@&vfj*#4FYHD&=WImxkgj4hvxl16R3i$T`Lrdp`(q1mL}tvhYt4Y$q9O>?ZzOdG5{O@}R4jf2cpjh~D!47Cjb1EG^T zF}lNMt6`eeXgXl~Zg$yb>esYM-XPDqFi7dZzwQ zhA5lx0~ImKCBDap@<~_`I}_Eif1?Dm91BYv-HTGXd%T!M4g%&A)qzs%yU-Ka!F>;3 zqXqwc;-hCJHp+buwRv`6Z+t%qI@E}{fye~|IZalLxvO}?-UY94eW0KGzsmJufvSzH zmG+!`uzsJS&`_Z0Ct2Bh8GZuOv@3W@8KB*=7}0{y#qZFMv7_W#JSe4b*O8~`Ui2&O zIhzI475wto;wUgjx`ml3Hda&-q6y``~v%6etd1s+HI7wRHeu$;Y zW8zLYDnwwb&|dW)|4P+MNK_9HSF0+;S<1#@kwj=2BE(C~yQRc9d>`^Hb|E|{Qa2!m zPI#|}#(S2AcX(PxKYF(!3;hP%8XQmd3}wV2=8zM7pQTRZR&0;kgbj3` z#Oiz66M#?J6Z#v`DZ$0`+TcR^TF_0`3sFpi@MP|Aq>LXE(}+vZ72+y9P9%sjex;N` z4HDz%Dfks)2#TQj(U~!Q_;%z*z!4ehpB1U=e;#ceu%bgldIE|@sWk||&c!aV|KYEh zVZ?3fBr%xCAtzwD)NklnIt!h^jzEq4-{=V8G}=hqkB$+SqnPjrT`BCtjtk}ZSm~V8 z2Ph^n>Ei)-f)M-SIa0#o9NQ-LnR*Z*@CV`HX!Y=rShaA|Xk27KbWyAdGF!6R{lVnZ z+r|I*s^A;o0_>N6S62luXwHGFG>0W~buF-oYMo-I^0Pc2RLO72e*kHKTAiM(s^F;=`~`1qkB=8h(mZ&Yzev< zX@uZ0Uu-xsA6bJIqU|MX*Cw(P#nHbq@!TGE50A0yg&S;laX8xwXe5#O>##fJF=mv) z#LQC+rY_5ac$};?>JgG+d${!I9pNF#E|7oRh61_7ciuH1JaqkrQAx z*a*4~7Jx4$LfBeqJ~kB0mluJJ75$Yrz|*R*a26y`0^Eb*w4 z6JNn|fCZ|9z%tblptedO%T^`JZ>sJouBk^uS0$&(LhT6nhxU!Kzjg`uyZVwue{aco zWzDEt{3*OGQwvX{)<|sd1Jq!07IT5T&ZbgVxtG*A{sBEvxWH@|>}*w`m{~5h;#%=F zSwHXL_KW94SdPk%OVpvJ@FP`N{j2u1&Z}Q#tYtc5er3+K`Ya1=eQdoQ2OLM@R>xmR zsFJik@p|&cgd54{oyMf=)+X^qMzuqx&#+F`zB6^y_BI~XIgM$?#->C|PfMQth>dm5 za@Z4kIXfmcaz0C3;<%PL&t92O$5t)=wB>@Min-F7ZfYuZHe80u#yh%uhP9fp`eCXi z+H=Z%Y7*+EYNXr`r^0>VeX8Z~4ow%;FFJ?1hfYw<*DQn8@FDQ6G!1wu9N`$Y9!)Z} zBtz+2g5qzI=Yiq$a)o5LQ_6&N^;E#54K*I`fbMP zxOT_{BWVzLlEn=a@>Cq_1+_>81Qo ziswZF5`Mv_@Hj%TyP~J)yJ3lF7w(LoiD>Yn$S7hx@tRu93}bKb!}$l|df^TLi=;H4 zSOH8EMv1NX626jM!l_w5J3#VzI(b;s0>8_zDwZm*!UdWQ5)opdp{rSDT4{+lJ+O>4 z?zJ3|{;O36)>Ko^8{TPK=?c|PRJrhWQ1U!WeaUk6EyGb+1A9?E=6`z{0O~MEYS2+l^dSu7FrfdX*{RZY@cj#s>eX@v2yUNaNzEH&N5lvzPKrI^z znB-XiE(?gYWVM0aKxf%cAX8zNcZ41(bZ~!&hPNpHPnZ4;z5>@#_Jl8hNlHrIAM7jp zQ?3RQWXr{^Kx3e}Y>IrK!VBF|S~d4IRSbVi->v25cNWA_&obL`&=_ZWsa>nv0Pj|v zQh?A$DL0ZKJ^{?a8PUwolxCeDxRWf)C^_j{z)z&AiB9SlS##=<{7-6)VhOcMQIk?D z&XWD)@#I)pKOzIj#Fq-&(Q8}+Qk88NtI7I863T#`D|7&rE`Vke&JF_*d>9WD-{``k1wZUooG9k7z2`j@}Z!O~=Jl zYz6w0>rRvlEO{FM>3Z@zbSFh?CZHI}Ac{|PuHsK>iR?VlO#F&{;D)1Lm|{fE97K0Y zZ-g$~U}~w5z%B$BZjWp&zgqT$%LDS*@B9q94Vy`2(A}hN)hQy6^x(yW2b)fW(G&Q5 z^fBf~J7Dec=~y;d3pdfNh^x#(l9%40a(=o*3+>1KBh(UbVVK0gZ7R;<*6=XBk~x7D z5@VyY(TSmkvDv|YqpKu0VI*=3eTkTeUXp9VNS>E`rfsO1$!{I_G>CAQPr@F9YXB9sCh&D6r)OH9N~ z%smvNFCuaDgqWYyMLQG!qv$N7qq@2pSc?Y6LP=!o8+?oA-MznQtq?7 z5B{uRD6cP=pnjEtp=zoiEY`=$k=7C|9lUE+0A5@O?T5sp6%Zfv+j(vbHs=CTYLYlv zP77a>>Ih5Zhhj4Dp_1XRQh`7--sS0?e z63rL`m+4A`pSFo4rVnK^ zHJRUR8SV^sg^%VZyK=dzuJ&94e~5j^j$tn_1{=>50b7o7u6cAHcM3Jx-HKfAnuh!M zH|QbYW(+YM(OGO3Hj3{~4)GZDdfzejOw=IuNmM-j#&-%|;h~Tq_tL&ecQJdC`}CLi zISs=vXfkH$@A2!_E%E|9p79Zh{B=6l^@|`Zni-P}T zFYF?F3PPy=EEsQZ4n@Hy4SLpEjm1IW^&{=5KKL5CF_}d-pjy%{>KeHbP&$2B3X%g= zgtl9_ovn{Be`}QKGn!knmF9E&pim?JPedj|fkaG}-XpXGHw;z;%k+axuY#`B{JO?JzD(PW5kZH_* zA_Kg8EAk7;u7JjT5*R=4^Bw7ztUxBx-Ef$=4_`#iT6>*iVE**CoMOa@i;d;N0&|c! z*p852Lt&*ex>B2f@6wMFtg(xDr&qw=0~VE6ZRmWH+L)TKM$ab<*H;UZjcoCmSyJ8y zQX#LcfOOjW3=*Z+g|H=rAKLfAg`nobV|a+z7(E~*V#DP&SUveI`b~U-Ob+jcp9U^K z2mGa>cDZGtv>Xv?n0o~2;qQzW2|S>dhmyGpVvKvFJkaw@x#g~{#`5o!AJi{754|B( zbDoMjjVaJII- zu0r{&7EmX%gp&-o6{6P5=%DhTb(o-xlgh}d*hbzi)mJ7c7u50kHhnCxC*&Yqp;TfF z+Jjz?mtzJHE9q#$Lsi535UsE`*fw-N8iNi8eDdM&KzKNG$eHU*u)f(fjU#q}>d)brG<>dO&5gg|;TE=1M8QnIpb1Qp8QhQ4u#T zh_V(GSE<9LvPzU(QT{GJkzOmLjA(iCQhgvu;Zk~peZgo8t+p;BqnsUB1~d~)=^Em0 zq%?L1aOGnGM|(Te7WoOX99uMI2?j98N!V~sA^0e`io)Rv~ z-HdJE!s#=7SJLL{5P9rTd7tMH+EG&Wsri@cL-KpTMb>8ofO=Rj87BlXj~fJ}5lxvD+Z ze(8q|(}=Kkn-%O_)3OU%Eu1cvVs8X&0``ZW&k&ao98OxdhF={%pc3#$&sC1mm}A)FMZv}1>Vw# z+f~SFzzoz1kSR)YJW0*M&g$E6K!+mU!zOtfdqs61EUG_n;8en!lNHcg_;rvL_Sm)I z9!3}Yy*k;rDhJgHk}NkAFGw$dkK~vDOVPcn{FjjpQB_%N&l+Fb2iB52f7$J<2#>-Jk z9nfW)VC~iaarPVOj%oaVhdtSXj6ue2t%~MS3n;O2St(8&Ce#Rj4lNI^3>FFu3;gSE zoafDr^7GlnbMs|>&3TnRJ9lk*eBShoBtm7HGv(98p$myGj<*m$G736Xzg?Hr62B@FQLS|kMVNhU0cvN6q zhzM}OZh4FI4*IR!{Qj*ue{!?4`}kYuY|NXOiv)B01w$hPuR?`F^TR!b-$D(!vOG=u zOFLnfGg~>A?Z;3HaI07d&9XZ>pLE<>DOb`@h3A3O-(U#}km8U)d*KqWcy$j)f;nN5 z&{29S^pn?#F-kjWm-1bzq>hk3t0k0ST8z3{i_qe4dK*wnhwkQv^=YpbDSHQn@OHEQM8>>wQJY_bcQQ)Wb4>g@h0)D01WG7|-T9CSKC*iI2Bt(`cIt`?X zR$1wS(M0~CKT}5Q9xX~gtL@P~X^fVwO;d{l5BC)PjdBEVc(;LBUt2w1eW@K*J>WHR zYBTMD{1|YlPAHp%rgFz{eTf9@-5=qSa*k*yP1Qa6Ez@s}gA?K6cwbZ_N@ItKwdg_2 zi~NBbL;an#_ARTN<+VzfQPwJBr!~!3Z1d((r-=0luy~@7jm~oP9n>1Hhg2XxqhG1L zcrjprs0Q3eg}5&4OOE7+@s(UUztuIsl^*|Cu_=Z<;c z`Zu<;M~Kb#jEs5ZsU7*qje8PYKiLu7Rw|n9OjKoXK*Ao0odVO(NAzmW!y{NE-;ZqRYRG1~hr9fqEcY|dKkiNL%KUa-rAxENiOrN3t46FqI$$Ic zg%$>ujJb#g!{||X7up7%1i*J!a4)=)ya(T=eds*416F~vv3RaKexC)se|8kXvkBy3 zW<43ttRV-{CCQD{egdU>6NSNFljt?%X|^_<;NAfo&`GXWQ7b*kF`v8%F>J)?sCnMo zz7&t?g*>Z0!`&_2-(5ENes18B`G#y?ZW{A1@M`a5VGiepxU#uJ-Y%|xqWXGD<@*v* zCa!uEQP7CKSdfeDS8!x(@%a3)MGIgtQ(}$C_^8+38s4k?3VsE6g-OIZup!#b=A!%g zrq~hpH7vsu#Jt{bSZ&Wj?1L){oyE6A_izeQmxIy#TvPNTyAUPVVdxh6F_KF@gx3;)ujpbOCV|%OhXm!>HZF7-}@xkLpiVqPha&bs=T~v4VMp z9bi1@JZ2qSo4E;nqgCh-T>{xoUqUC*g>aUxPYkCDk-Nws`I`s=qA176L=N*08Nqe| z%Y>+Q{z+I%gaYRRkR%D_(5QN+alVj-c4bRzsteja|OP88h6 zGO?PaNbl`cN;~I=`nNquJ8bM%Q_z{n>LHXqCL%-3L$SU~m}uyj{%Ee`E__q_7Y5sJ zxV>Bq0y0|%7T;Khg8-RzdRH^a=<5(xDqPYjjp8tbittW272Xdr zFITOKP!DsNbI54!v@wc1e*L)JO+R3r)#{l&w6FRN?Y+hteY8f_ajh!!T%UVNh z?Ss@z=K@^{+D;dOW>IsUO~eG7!9>%Ba`gAs5VeKzPWnrKFJ$PrFu^(?6op4g->^H% zW-_R4r+OIQ$%BT7>-tVq*CxPCwQCNg4Y3o!oM(Vm$=s=xHMVGd^{yJPSJVdR^Rx~| z4}H72#=vdO9OEpuFF;j}D*H5OJB_UfFCqdU2m!9%scsZOkf817oV4s{d_|G+x**OxYP^4~JJd&yb(aCA6axMC;hQPyhl$+nLjm zhroT(&e#Qg&?`9u^a)lw{iIRFn5y@&dg_~@1x6|CqE(!11C68lBfZE{s2f`f?v&}! zD*d6oM}A`t7OxtF_`!&i@=U)x+di)rgNo^w;dw?ww4MdwGo1wTJ=~c-hL&XaU|qR8 zSeP4#CGZ4RikHx4ynuG&hoC`DgSWBIoFqEQsz?0Rzay=*7r-)d*BYlM0_WXp3v((t z4WT~JZf6-3V~uvkX!EU0(gfo~_>`6soTfevWGG_-DN4)0A!Srxhf*S#u3Qg&Rf~xm z^dIs;v$8hNUaVhtPU%IUAKG{4wA#)&r#!IZlwS5)`I$9Knr^NU1WgJylgH)7h4cHz zfm2vjaO%3BGg8RPeJ(3`F&Yutr8NonR7V4I?9I@=@U`IKz@NYn|J(qPyCl#k=Nzz> zJ_#(zeiQhZO$M3VqrrB0_d~NoO$1bW1voEnrS`yZ{?OParJ04KKh_5^*M2Jk>a*C} zIVQHTIN`d+1pU&|TvnK!l@~gkK?^G~^2^n-8tT!x)$KZgx6rfD47i6-2l^^(xAqEM zbxz=wvEe8&BeXU&Ftk4KE?6S3dT^ZoR^X8TX+X_87;GM@5zZ&N#GUdIV0)m};!3-GrqPbB^ABXSsi(GRNI@i35t}x=z zUix!*nD!5ps7-TjYXzM+FpOE7_9~|XUW6VM|>=K z6dOt6_yvj}7csx+J?uCxz#QS-6vwYZ^Oy&A6ACp75KmPKmlXsrp&r9aYX1_?fmzlt zN7DP8ICd>klplh3a&ICVd(TlbBeqk!BF2!@y!-GG?$>BNej+lR1+9FhE&PD8p#o$V z$iezM^N`E74=V3Ww0pw??Fx7)=qz0mox=AeX1Nbj?cB2gvGN<0Lw6zX5~=tJtPW0M z*YSNAMaB?YsCrZalgM6T!4{QIjX3AVW6+30`QgaK_|j1cAibCt-!{^S%ZzZxE%0_K zFvRmT{}Fes{AJt?^DTAFjj73hkCd59UN`m7)d`Q}KcM~ij@VlFRpMGi3+8B)$ajpn z?&%g&1X#`+My&I#@Y#9C|Vrq%VT(&k8n`FUuYG4CE7h zt6WkgIS*I&fey>vvGVF+#}++ZR{1c72TZ) z;~z;5*^X_o*TCz*hP=L+XIHaoIf`8s!r;m98)N}OVo~S{ECQX5%|blbad-hZYv{;k zXc`g=5>m~aN=ULDK=xT3u(g(fLv|N(hOLnc?SteKYXs5H{0w%s#{kc|2Kqs3fO2{) znyA-BE^4cwEow>ol-$5TM4y@#EFz`(s|(+A#PFt^AtLX$J&T`lJhPGKKY;L9rD)zCq_B=I`{&( zR~jormGk;~eGM=+?{JFSU!ZgLNN~!Y1cNybOaLSJOk1?)SUFaAv$ZwR$Pe!Fq;*N( zZPNN?^kopH@OC%B(su{$DpPXZ(yZ*of|NB+IGp`JWOGyG+5S7~ro54Q zRA996C-00Q_-hzVa~VB<_867R^eOMtkIJ9ZlNDFy3YE*guT9KN(UHI`V|A#735g}G z3Ub)8mAUpv?Tfug&+q(W40lSKigVap3C%R`LrF#*h|%8JedKhrrdYseFXYo@p|x&H zFAYX(ZSMiEsU=hcTY#=1Zh{#!OqQSyk!7e1vLHoJ1*uWgaB2=+4zN9&0;2YCHqn#B z^@&)|6^Jaxm5KU`ofDN!my0?;O^fVJ-u6``YWe!(&m$1LRs@5W_twShxp6$i9zr{i zZa5Jk?V%v6AOQlJsr=NtD2q&5?db%yD0HM5BF@|On5NJv?inQWn)8M?tS#I)!^_5K z>GXP~3SC}#LtR#OQ8(44RH`GR~0^CPJMwPf&BLBXleK zHgnb9#r|VoVT)P28QN$`?NB@52jm0D4GDr1tm8{zx$zONP;p6#r+(KqJbA)_Kw#RRR^K>fK9?OqM6QhW+ z^lb`pU1I|g$6SqKzIdwT|LN^gV2k%={t1(1eK9CL8s(gD4*61ZUqeLDAXRAfj&h7_%ozB z$sj+-_s~@8rV~T6z@&4?b}_weht9O}(>gFF?KF~cmky&zYH!Fb&$T9i(H0;zka5b{ZsWvz03mXy>f@-3=3ui8VWzcqs3-o z2XUIXM$m;>;bB78&@y3H@R_(HSWamf+Nz%nud+9Z6_L^Mb!@4E6AzRw#0tel)Kj|S zlu`^!m75{+q!O3vB zX3L*7Lw*Djj%~ECl&!Z)N^0MgS`-$iOv zq??KW$&oElcgVd_t;onIi0BzP3d{BlK;Qa6*WH(hzVNxx3BJq7?TE(6XRihaJh2Gr zIfN8(PeVt!=3yOOzwz?!i{w7fMtZOJIP;gc0i(ORQZLwBcm}lx?MI$Nc91I4mPW8& zY;*jQYaJ2oy-3!J=uTbs#!)-neqs?<6nE1J=yALhyagHKd~;m(1Te3hW!S(Az0d*) zGy5qp3#!UcXt|sT-4zGIJ%tI#k8pErw6Kgw6>n0n)h8{)kvnx|uVTT%p4xmx2F1-X@LRCQ8kX4{>`1IB^c!1=oWr zkI5WjKB3~b@Bls;FGxPeSJJ0IGiWoJ=6XlAbKfV%^K~(m{sIjo-dSJJRAUr!RzC}8 zXvuIJEgEziD7e0cz+U|-*uxIPt$=3nJbDfMAL~cR%$mq_*W73-0*d|S`y5+1@@_2V z+ZWTzn-f*R(?62(4D;Rcyao*Eq7h3XGCaE?65WF$TJX&xp0P<0dw~OaD1FouAYZuV z6EXZld=od8xXmA@aL+onTf|RZ^;y6;gt=QrCcD%Kj6d%w&icSctuR-G+{Tt5rgD$) zTz&@r$+Z=m;`)fZ;if{18PzIJ9XDc$omw00lyV>WC{2J{i{l|+eQ>UXUpi~Ud!6Co zFLqj}lXW-vx6v<br0wum?Gyj|n$0Uxtrb-GuS>7onK#7hai@g-S*qXi~flH`N*oO|({G zw)R<4^*bPuAJod(HOxj-q`>^$&xm16tJ75pzReIb-Dh#UCCf2ZWyTCn+RHs<#ymY&@qMyVPcY5L(+bNxt zvhp5dp|D#k5rWl=fm+HwFxwau8m>9wN^_1@78+*NLXSEH@xqXRcXWKfk9`3jW~O2; zVLQ6w?h-^@Zz?g-_k-LWRf8@P zvz=)jGms5MRb`j>>M%zsqVx$k~zTspr5xE0WS7E z2{Y|*52JM`V5|@Iw+{$4k=1e)qM}xq-m6b!rs;K=yN^fj341U`aj_f+Nlt&mJ5B6M};oS^TOAZ zY@vsyh{yHHlB2H@N9$9B7l7^jMMJ}x`u=b=a4sqdKh+KpADma*9lUGA6FLx8ku4N6 zkr@;{fa()@4&UnSjb^xpBVh83F6N5i>0D8&uxkSgvYoEs5rw>qBNs;KQ4zjP(Wq}w z^ooc@QMbKiA_Jb!z#U#MqN8_g#Hff55j}jzBF6hhcxy%kU60(y*sA;w>K1#B{J=&~ zZTWe$0(L0vd@?^U`jguq)5nt@{m#`1kOY!lJBV2N8N46cXtjmg>WK~s`c9kV!Img3 z0q+)V|vYLqy@;Iz4pX7xue!hrLGhRHOv3Dp8AOZEp@a>4iu$x<&l zsdBviOB!c=lD1njV39Q~RLB_t=4iV_7@8t}vaW=GX?Fri(!tzep#j-sU{qFzylYv7 z0$R2iOwCOaus~S}4ZW5Mg`bI1=%4V_V2i->JTYf%?)^+BDSNav3vFMjC zllrqQt5e3PoO4;Uzhce}|CF3z{-m5tU|j6)KL(u689_ogCq9*HsQ0uKy@k=s_@ckk z7N{w5oYX{k5gHS$8wls6`2P-U_g4yq^S%qELJQ<|!hZFF6wsO%E}mZ&uc4X^HcHFb?%Pdx+LfYBhy zJ_N1~JptLgdL$1BKoNK;@-SeP^?-lD|Ji43zZo{Fm@&FwHq+eBN=<+->HlKYfvI<> zH3OK^Fmjkx7k_PZMA~Xsz!deTUP)}Bj0x`$Cx-e714GM&=Rvy(1CkeU)`;8r$JZ<_Od_8(~$<(!l4v3q7i}M*Zpy)K&vnS$!+f z)oew*wI|YVpyTvMSOq%rGs3kG`qBcgi zi>w+M@*-ZweU4A$Qkix1EkNC0Larl*lWD{_YAoet)-cQ1uG}!LGe4M{%2#9`ajDcg zHiS20>Z0Z7mhcLy1+BisLX+sjfacHyDn-_F9$>aL6{%olK|QU3&}lH$Fd+n) zhbE(c17_R>ygv2|3!t%Rb#y%R9FDMnTNGH=zDZy7LBb-fZMXqQb%sH!Z=!)HD=kC2 z?3^~c!3XVf$UbKp^1``=9Cjw4r=6R?89SM116QW5Ae(77HiWr{^<+k473t1s9kMGh zGZ#QMW2wju>;(1_A55+T{*Gm|!IfoSxN2~(+}F8$p0C^^_hb%pcVcb+I34DAswG#1 zJirYld%2!b<-GfuUXiu9S}`s8DfzN_v_NB5UV-th8F48tSNur#*Z4~wf5CPU5rxlz z%6Q$#776=&cMDtIsf8Z8)8aStd*V#CZ(K9BUi@(OX~9@-Xkmjpn2^dhPh8}3CmwNq zC@k@73wGk_7x+Y1j!7rtd~R%y`y6a?EHsxL;f!SeIO{nP>gM_Z^Pc)hB`=8_^=^cZ z0LSPeFN;j^mO^)Uhhgu%)A48C1R}=E5L4ViEQbGsv|)Nfdq~n=g^veqz86MCOf&9b z_skPGW=|#-I=_kHut8)aM*+p=G-zhr2U!_ER1m*vEyF+}6>F*;##gJ~iHoXAuGJn; zfAqiU-oSu<+v-mHoC@@MXe~V*2{V_mXdWi(x;^v*&m5+{_ZHL0bCAyE|0NOj2400q z1mF9vs0W*kRsrVaCTKREAA1PefA8s$2+Se+5CN#S$a+vPe7Ss{K+dV&cMJ{XwXy_9eJW?G&7+P6|qD>(CQzRCu*sRXC!T z6kdXPU^8`CXt#VZSX>$q%m8^|NN5v0749F*4L1n(6E*~12yOF9iFb0(iaT>|O6zi_ zDlc#<^%!H;)7fsiMA<`zo*H!^#Im0y(D-dL84q`P)S7TJ~GJoYTa);B<5zIZ@6^=ab#o(d;;9 ziIZttP91xtlV$=cjP5nYszIfa+(0@jt`h2rM)$^axsErK=F4SawxlC%t(`fO|fe1^Y>bS)7(sq)Bqr3chb`Nv6DmO3}IpU_UT zDEiWwgRepwkb|*uR8@R9<--%H5?CX0GuXH8f!rAAI3ZiCKX6IwHRy&EK)PC+K+CQf zdep9or8$XsEIbdl;kNh!ga9p~8h8p?jktncA&20vsIvHR>N#3~Yz~jdP`f{TRlj4G zP)k`$l5L;O#G66 z2A+}o53c5h@u2?~(KfJ`+!(w}-U*c@^9kLE4dOC9pKM|elnm^u)*ruMlp~5+=ZQI1 zIbxUDAG@pHgxjeB`1C%;yMJY;JB^(bg z3%da)ZG3QM*c-Yh{0YC7MoU%H@4!m2R=Z*h)@PZA^;~nG-r5?jAGNZzS5{%|rqw}B zwSFtp?L1|fQ$}3@HBdP?PIaIxL4 z+7z;dPSW-DkMv4yHC;h%P7RQU5o5&i*n;qF_-=5GGdqxEmk3m`KL!Y=Qm6{FGu#8d zF0@8gh(8ce-a%yXBr;P>Kt2e~;W9!bG(UXOP7U?38il}CC3xM~9c*DF2e0Z|0@>R3 zJOuQ5Td0HmG3p)v6E!g~PahKcZiaP*Yq3+g&+##w8r z-U+aW@0w4Q(&j$-rJ+j?jo%Vvj+CbY%S>}CP3vV3G$%Tb?N-ov=oN$_5%6LJg6|{rOA?1!#S1vD3l*S1gq_@H{xttWIGD<-6 zt9y+}I%0J+EUSw#&)%qSvm0rH>|F|H{{~6$WD!uAgv!>6uxhRjUjp2f!{$0MV78EZ zTVItuR+hTKYNa)|Jla!pIv_i6>PaI(-D8|mL&k9JZ<7UC`((YZSyV4(Ue#V23p8-k z(2AM0j2LUGHObx$HHFGzwUMo)if(86;tn?*>;fB;gWSi+$?kKc;2KE!Tz;Y&zk+xM zEXaxcF(Sz|n9S$7NL7j$$Y?%^{S~QlZzG%W(UESxknaT7G@>7O+1r2{;;qc(_ww9W z&q=ni+s&Tm+cO^S9DRxzLI0xH(%)#BnZlf8da=oDQ|<)o=Z=8;UVo6{pxBArcBTg4 z0am0}0P^NIA_;wu4uk5$L&1~gwDrp>Wp}nZIL)lB&|qsFNO(vvNDaYvOcipOpjB_w zggP4Qp@T*&T*({`pEsMsnzj@nY-KsHkohBz2v*`-CPr0uzRBWg1dmHwx_bEpXXn&0Y}~6++AHK-3Gq} zkY;AN3%M$~7rV~5lH5gIb3EVp5)q|c?|dI!&ms%B2SnC(&5nrWR=bPRZMi&r1&yJp zidpK#-B*{dFnQ1(1HR5BrrL#x zPIf$=2pnT+)>&k!H3lwY)rTINwVe*;Qv0dV(e7>Bwg(t#PH}S%e8;MeraSF0KU@u~ zgWgA$p`9QfdeoYLY%p3N`}Az&qh1j^YNUYEVsSFv97HkJblNt%FyGCG%xm)|6KySI zzF7Sk$xdQmhy>Q%y>wl806hRUs6ucZY77)d4srg)E7}b)pLGoxV|ItHfn8k_`z(|R zy@wfW2kIvV<3Fes#2k7T@gKDoA4Fb8@8hfBL)d0#1eR#?cs0vMY%x=bfB}>FjcY_R zeLitnyFv`ol1V~S$bZy@)OCfSt12t#3^|j&CUeYES*6>^t7uj}N?nthl2xS@ct`Oj z8ZT5sK80GtVz4LtGB_PM5h{Jn>KPjIbbBL8uklC|nM|6qkcLYf-s^s>rpp+j3v+ zf%H+jrAYuWc8!cK^`i1 z7d;X#v=;Y-XNkpxdr~d&r_xob3X(#lOpmW{XNE~B>C5io-);r*mo;;VF*m?6iJJ(N1+C3OLLSMN;?v!2sap!4i?G=qOaIBuLC z>Xqq#y{l;2TbkPD9!WgsQ5@mAVP~0cpo?%BE6voy&ocM$acpU#8rPn<#w8J7xXwfh zx1AWniG&EA#a{L^@rW)*%%CdZ2gxX`Et!C}ASVHS=Lh%?AdSl)6!{FR;1C!nEu)K_ zQ`kP}HU2M*kt2~H_|=En2qyrNMsf0xwG?k_Y)5-(AKI`ruDFO8d zJicuClD$nHU_X*m?dM8GXs`A+^29iTow6PhpY4`Z9j81k*;D9Rb{yTtDoTwt-w@Z0 z#dr&2KUT%)iOn_kfOOFR8}K&1)D987pgeLma)r8p#nK0eFhv6ns76Ilr|EoDD`o@r zgegbIvJ>f&Y+2f5dQf+nD&%LTG%<@kfM4V;;e%XFiI$!OvUEf_>bb8D{a<7*ofr8Z zO+^N&jS&+_pZ5m7*R7ycTpf^9t|)wyJqtDsA~cUV2v28bA*oDLv_Jb6eaNC%kbQ@K zW#^$I+3M(g21Wm-2~-Dm*+ax8v=+V&eT^1CS0hc3esE2=9+U)41vi(z&UPomv7O`4 zO{hJv1>T0!fWg&=ZGvHZAJhoPoh?|_>Hj>nPHqpe(2FiJH0skTdN0c z(iS<>v|~4JPwew0_F_yJ(wld z(KExzYILZA%mng_rTn$RDLE&CpR>0FHe^>0{F}WhP%3A6@M2C5=-&^$>~{n4uF z3V>2qBEB;ES(r+HKSfzu?*t)*(p#z{s7#{m4F;_orn9oxvgkcmRf9a#hMp_opSvi1Dm42dx_!rVc zK;cb73baHl2B%8}kYUOoG*>-@4but0xhj= zMn-BKkm{gk6Js#QIO8vn(^&2J^yA>%Oqr-!5*UYj86(t{<{GV~y-gRK!Uh2sGe*L1 z^;Ym8{Ss70f8@;7-`b;%!uE5}U)X3f;1#{L=b|i>Oss?pfNbCiHUm4t_aff7W|Ae` zwWw6rBC4Tl6{P`h`Wnz+#yyvq7v4u~Q(p~E@_k}|`_cec?*To-7fFBdIn?&Zk@VcC zIHpZ>Dsv@z6gxF~3p+om8VekK%-9H<5v_9*-U|&0RHHAV}TRY8`%3a z!5phLF@J+SWihpeWvH4JskgNo7}f0==2z>6HQY)C&A!9VAd`UJf-P`KqrNjj?`_}I zW>}rH2WA(olX(wh_vh%#%!x*QtCv~ZzG)V5>X`c-$hhKc(at*uRomI8`k~cY59F?X z1RV>q(;%{F)kyEn1V8AP4{$?8e)Y`PdSfO(31 zV_Kk(n025JbOx2E)96g{AS&YT(Y4qzY%2N$zl}5{fd_=DjQmX_NHTo}UPXD~3SCOqG8D^1Eb>RnivdrmoVMRQt!}Z3XrKfGp2Ms4D)2_V3tU8h56#jt0DmOYE~mNe zZ(0ZIjlRuXWq|$#AU35LKXeJS?vu@P#shPc>9smo+2%s4qRCtFMolvxIA6`zcIc}# zS*xhe(wYOt6X?Znn8qD+OeYcwIS};4 zxd#{=*PMcIrZWV|4}C%_LQU|p&@{ls8BE4N#i?ZI9(4n%N|%8L(Uaf`^eVU~)d_w^ zoB-*swaz}Iv0V|)Zyko3nIE9LMr(Myu@L?X{G?sct3nlY2;9wctz%ksi_w3Xm-Kt! zowDEj%dBl4Fozh=%qIF(vyui<$|?hzygRHHYH8b}^|ym+4SR;_SOwHLyRdrMUa3BE zd|Eu*Uh9fbS^`>1?T`MD8=#Y=XGjOpgr5pOAfNceDJQYcWBHJstoE~OX`;1K>tp?= zspc=et!0?|>`hK@=okD59)K=Kii0WtDl7rjuyg2Qd^uK}m9&h87`B8XZzA~Q85617f-r!5z5b?>q5MSgTgFSS0M5A2yk$3zDgmtlK zV^MzC!H~50t8Ml(0lwcBw_<0&^~dRp|N%sq_x^IZ9W|%0^i`7c_J#nbjcHyb3%4HQ_^` z-}A4LilAmHpc>u8E}Db!SLRN9xY-b2VRXgL>lM&(U?PqgYvF3<0C=J`2rh0X!?Ya> z548NyRx=BbT@>iLAws{6k5Dgj7erW{p&M2~XefAoWY`GQ#)*IefDGh;XTqD2%Lt0y zLZ4!-v3poEtSgp-da>hZ0qhxC1&hN-tR~hM4WliPrYHmVMNp6*nB#1N);o8czrcUZ z1IOAFGS)hU$mV5au2~2XjiT@%qa38`yFkidrL$W z2HNKQR->R4tsAsdZv~YzazW>{vEw#-*elHLpanU_+;6=ydfC+hzpSqwbP~1B&=#c; zln5GPe@hdcK2k%cfn43`qm*&FtMQRw0 z=@K$#Q!s3D2Dcdz2lZDp7SLB78E;!n~71zo=1ijY& zxRcI~xa7{5xXj@Q@JxopUWD7#&DcFL31XMUjEGqulQ`yT%&*_YV_8gWY|QU}<3{~X z5@A0wSe;34+Bo_R)*nfX_jQjq3Mlfm2ico== zZsBqpfe9M%@ ziVB9t>nkCjUL888#)ht|^`Tt4X84fq?4&c%ZaOo=yQJI73A&)#p%dvg=BaK@dYkU_ zjOmL>Pd7fDG!p%3GHVMvZY33c?O9d^-z8*h&h_2*CH80ZAM~&Dj|@}?ivBb3XT;2i z*Ad^LSoj&iBGE@h91UCvNPm*RU;f_ye*Ra!UH(zNY=Ppw1A&6RI?%U1im30;9T^!& zA2};?E^-e96Y8un$YuRD_cbruSjFWC%VE~$COopr?R&pIVi}VSUJU3__J@Z z#)zPGK{U26ifVRIvB@gH4-4Q+{9js+zoTjRUo0^u+}~Lev4NctJy>0<4jX0VVCk$Q zw59k>psgVqISB9Aa9y4^!%lKRpAd)4a*NWA_E7fAzQUXN?uq%n@z#3ZO>3F&jWydR ztwp|S_CDVM`-3m9uQ0rp|Mche&-PFB7eFeINzWrsKb6^fmVNv?kimcy{|UD{Jp&1MH8ivz>qDzmwFf zRasJU9$V<64L8e1$yXr9@Z!}JwFh4j}Hh&iIKr8@YZh13k1KhPQgFe z{on<v!i%9E;bEU_F-3wra(W;X*_?KUJyyoB^0FCMEXui`}Z z*cCWTUzJr@CmBmedY5TI%wsQx8_^k|;`C&&FC7+qK?ek@v+lvZtY)w(%O3ni^9Q%n zIlm-gw*jT^WWx{$AZxq~fgO>@{F5S1`abv@ z*rk1sp{zU0JBuVd2j9%{vj%JxwB(a%G5V0sAWc}R*2IM&B7 zx{Do$Kj0Q~nHJETu9tmCXRik4;48^cw*uYk-lC~Jo2~HP(qeKieU9p=pLz{_dop0@ zh1g3~3mI^uSq1$DI9+FcMK44)R{{PD|9zAyOY6dwx2;-frmNKEvbw9Y>4$ow&T1-{ zRc4EMZx)-WCa39-RIISfspoiuRVR0p?BWdariIVBpF@}7ushY85xOkrgi63~V2T+V z+ClnmzDdB|HAK??CSGb+%6b|x=;l4Z^n$AXt3emH{IVLXdh3X&I0G^u6g9nm(1is2; zL)D#Gp*7C^P(8PBnBlX{_Vz-#@K3n8jCB6z{*zJn^opBoDh;`)S7O)SOU{rHQ*s z`*L&evTPVkt!4$+sKOzk1L1f&%6SNl_6~K%+o1BQ-KrH>F?CEx6(A#YPTI<3hr`|r zwvyUB8{5q+puh8JJe*HKx|2MnmBGPv%@L~1Z(5&pVi(9=Rv2#U4QWmuOY-qzBroq} zlJU3tI@_;1BI|*$v-$(Qq|37h+Tu3Q{Bp($PEW5T{%HCurv{&0Vt#bBM>rX4a)me-eQT!<1MX@WA73_l9!2ULZ zKSXzuiWEm8(+{!H?6U%9ls#GJ@Zp5?RnWJ5f9RjSFFKe1gqiKXK|KE}3MCe+5@^74 z2Ilh&fh{~oU@K1^SjF%9xAOshm&fTmb3S6S2TccQ0VUMOoN?`B#2 zwuol!MK_j7Y-dG9b3PrN;46{C`XMZPGfsfqqML6U|KS^mWZ>PL1R9EFfhem_;GESq zFxV~~NbLLQ@9wLE#NO^u=eDswTm7v>)+IPjHxSLxakdtmj}i^p9`Trl#0*;5szgUx zZ^(G71F3G^GT%jib4&Cx8Lda=p|zKswQtd*zJ&ZQe`7%c(N_Mz3A!_)`U% z28soefCG6qA~RAf4n!P|%oq73a(ZMia%1F!$QF^Sk&)giaz@}=L}P!)h@8Infzoz# zV5yZekk!(>W9RG=tc2Zxj<(v9&7z@+;Y0KiuG9f8RS_iPeh^>uYAc^9 zYX{5$`>0Oso1!Q9ChFV175aYM?dw;ia}AU)hkrc*dm)sFB_IXt{jP7M#2 zhr)l#AK~>fkMjT?9dG1lU|Ca~d~%F)(Hr8d_QpD!yd};hZ@J@>-JGuSW%#bl6K=11 zgube&!J2wXTpK+mwxFI96H-5Zzf)^}8@2d%Uj68I7d=1bus$1G6b>e*&9P8XQpV{+ z=D8inAuk!ZE03Ct`fr2!0#1`%$)D^b8OUFfGy;4iv4bSE>X8=KA=BTAXF6GbAV2V% zN@@*Jj!3J12(CVf^y<1OqUH*}$|T0g!F-iBiA`{a(}vDCQayarEC~H+3Wuf{f9Qe9 z5UNdP!eKRgn9|+hoHV`DjLvoD(Mb0aUFUjqgqML0mMK{+_?leD%sh#X!GwAM(2e(| zkFIWV={aCz-&2`XX-p#S%a?MM%%i#jtBdmv!2NNVD(_ZNnVoC!L#rZFg*JKZgSPi8 zZWhwTo4Qf(k?Iv3=pGNQ2F8CLnc#Qb)4?b1Q+!XQP+#vs=$F?nJV_o1mr)PHsrAM1 zM?F70+B6BjG0DRDpwRA0wuc6jiJ@9#7>0`5LN`sG@Hg`|+??!k?vp>@|-~S;zR!g|ATV5Ugz$>X+%LaO@T%@)1^mH}Yw9#SH-b^9w!I3OL zZvh#c$x5)I$W%YZ-?B0yH@_x&@jlizp4k4yx7d|M2Kdk|@$C{h{42!~e_N3^@QU{d zWaGU91z5pA8hYEGg*5R`H2;E`QO390e77@@d-g8!)Gke9?87v@FAwYK+r^&x>hi&U z&F#P?F(k0n+8vl~9|{!pEecHX^$bk&6$*6rJ@J?Hwe_d;UGv4+wc+~r-X3l*v5VSG z>@;?EJ2igAA{A|-)zCgAy4e5n-1bsbsT1i*v74k4mB~N60vW{@klZ{Iz0LlibKz+| zf^}z0*nIYpJ%?X%7yc6Yqus=7@j~>m;Ln2IYp1otnrh9nN?X0H8}Ku&Ev8tf_++aJ z?_#|I!)_7FZ}nr9tl_MWwGTD8X1A;y{I})jHaf#pb_bTv?!n62uUS3&6#Q{siW;`h zM*HtuZyoYwunPOPi5dR!;-vo|5P?)y+Q3L_DH4z?M*OnwMZ{Q{BX3$+B8OW)Bd&|} z5s!J{h!bpjU?*MUKSpNyp5PoJX1i5M=d|{#%c6s7FG{NWJdeu4Q>iMLa5bivJAU)nm*< z6>UDt3Ff}n%ItSDnI*_KoD^QCCxtrb4Z&jCiz}_S#&y&8<2L9%!Eeas$O}xchp8A^ zX`TfinLmTM!9~S1IoOtt4y9)8;Iv!O`G=)<`?9e6i(Usx{vRoJi|?pTaGVyTxw!zS~G=?(q$>p$S_b_X%*F(IkExY1y*Mh zIl+4GO|Zv$g?xFvzkHs%+oxRVgOjI!qSq>L-YXn&-MbMn$qPn&a<@k$bBjh)aV`fo zhnoi)hj;nQhHv{igg@IG!zpd*)VF#&1H>_B4!`Q$X7io=ER8dqjt|c#uR`-p|Ii9u zDfB^A32j!bL$PX6=#&=WM`l(yhNO1x(%sHrR>uvp&q#~d;)OZf*u_!BtOfc{OY6P3 zCRn?*-zuyB5Lb{O(@$07+0+Im$XC3jYM6lYKwXPbA(+3HnuPk2Y&u=f$JUC-SY!2OS?V%~H86us9$IgQR& zr&(>ip5K5c0bEab9W#nIHy>D4)0QPLKk070lor(8&_N8L>CnUN0=hg!)@FNUW|kOJ z+JPz`-KlnxJE{)xR3vGqf0@K427BjEW5{dc02#W^7Ms4jf!Tz*a2o%JT(BhOA2!i6 zWyy%48_0GVBE{%uGKCBR&b!jMda53!JFBF+xm=+pcwAAhxBTM%^zwOoyzSmUUJc-n zkK_nhO1+aUR4G+e^@av^f-0jnyw!497fmhkW4g;oiy?ITXUCxGM&U{b6+GP zrLD>ECoMzgT1nWS)(ckC>cZcN;k*`dtLN|@>>_5jQ7jrr`$qGMywN#HH{HZk#h*G# zSJAKW6zZBadXpjM4bBQds+cUe+5wq9Mh3#?=B{~8yOE(Rg1%v!X#$>`{a`EETE=(_ zR-Kn+!+B?R2@X)z#7TZkTo8`fW=XJAZ;IshSTO<$k5TxYn!E~k={&Xv_4qRL2-D-l zq>i3ois*V~jGkkD=`5t7xkv_?sua$Jw2s+ME8}Yw(-k#-9Xi#Np=V73`qAtrcT6EN z3LRBY2X${^%Ag4$aXoWD)V)EGw%k}APXrX!epT! zEV)&dPq4;|)mF4Mz^Y~w_)%98#IC~qR%!N|H>QdC1Tv4Eh8`vne6PCceteb6E)K|p z;*l2;)x57Fg|}8z^m2$5-gxepds!d(k{*|3XoUJihAKwm=|AaSxI&gUbJ$9Ahwa8S z)EsBTJZ61$C4NhN;f2&H(N{)T?YuW4jhjk558q+OLwV_)U~^LeF30hLePqhud8Cd_ z@Tv!gc{PGd;C=bZYZNRcrv*pJaBzuS9a*vZ*qj{E}tsbYp-LxkGg}bWwh*IhN|Rdkm{??%8}s3^pvli5nj#kOLS8Q z+_!P>-BxiGymE1`k!N!+W8v{2~&oDA7*sV+mD|-@OPv%wu!A4DjIhu*ebX@I2|teGs8cFb)9;l z>&})?A~!Bn*)0{`;f@Fo^VWpN%AMiKDmq+Cmk6)aJ44fTmQV}*J~%?B3Y9V|LUTx- za1OR8yo#R;Zx^e=xvXm83|36&p!gX|F6x9E@$cb&?5Yz@uee{xNpA^RDA$pODuRMB zKxgQkSmzsgQqn=Br#nPV=%J?YPU46tEKXZl#ZtSfDBv3|y7>BttiA_)oPCxpwWiUn zVkQXz(b~lOlV$MD9K+i%8+xtGY!45SEBusM!Qp$#v*`ECulutm`T>2Y^Uwii70`kH zWC`#Ahm3_&=>S%Q4&;q!b1{bg7Ml?Qc^f<|LmvXw|4+KpA92V6~R_n9rU|lACtflA>1I!UA;nS|^Uh$hwhi__8(TnZlUy<6=jNhPj zcwsVwRoA&_13AsCbEEWppdYoI8*-hKP8D2w2R1e`TS4<@NiKAIS)1jV^z^jn(ToTVMjW9pf%@B(bZ zOJhP%iM|zAFo};b4|xncEFzIF5UqBRqiPZv1g6SxGmH)+X;^mpKU}K@kERB$rnkg5 zI@#)ldzT74iVu98wO8yDL#*e#rrnKa@eSqYeUG^D6&LS(olxzz6eWB)#4Gz9)EyW2 zaXYaHV&~58J7lHyjk5Q`XZ^l4)1E1&S;=^O@fA)DJ?U&Zg9fONy(6oEzUJf4$a0>T zzT#V`5DQo#v5qemi$rBBhn3OJg&EaWQNSPOxdMH8Y@i6AA5ouw0psIl#1Wn+VgZty z(!&LM9J73cjkUkiq4po_xZRP5?56l!??r$6t=Mlh6W5Tf{(%ok?H_Jrp(pDq|i8UF4U-i)Y$P46Z)KM*2H~Exh@gA|0PFMC<_yXMu%{&?~YmjgxChIhBvB zQpUja(Ue5eLVWnAwpGh@by-mrMpDmscdgsP{poCWFFLh7;U%e~G})zqzoe1SA(x)(*-%XCQ9PQ-RXw{;$w4SPunpuFi&=fo$o zSR*4@9@CspGu^o$k-Rj4KajaeyPJ{pxgJZm=sQSwXw5R1FYtFS%tx7T%+*QQNA;U5 zlJ89q^u!C?gFq%X>(|a>{R-^OH%?je!Wm`~xev@~w<>wAI)WrVzaDhzQ?K~ zW>_PUvXD?b6cwQy2SXH9OdNlUefk&H_76Ij9;5|G5xPcCCdm~=4k9NByv1aPJBRjj zS2F_d_zKPkUN-!R7Ym)>-GV##%eXUq33z(L;_maIabx(hxF0MOHur5x9BU=Ni zL^2A#Xbns}_7@q>4$_ruA?}%GQ&}Wm%7W|$d(RT`=d2#C(flbJ#t*ZUyd`VH&e5JU zC!WMnl9g;G^$Dk8RHU!z0(OP9ga7MqUJ-N3&*H53+p2AqweMIvfvSG6Pr;r3KPUzt z^C`Xu?3yntOXdGShx-$-`|t^k3an!!@Hac>Z_J`G;hyCGgYNPZ8t30eN(2Ux+JT}Z zUf_)B<0oc{FS%ZC*HOZLDlb@X-lcNe)%7Cl4bb6g<{s~7KC$U05j$l%(2V2- zS&U93MBbb1G!b;8@6{91N%qBa|7=pg>)%_Dy%C)y(?^cIyQ2iJFT)R3kxjZGksg6w#?fJZ*uU z7+(Z*5z$h27Z3C@(Zd`RpUgT@j?~AFeVA7#@A0Popic}#e^H8fW{Rmn{?oh3c%6e* z)jMegU5iEQFshXq+%+foNYat_!6fb!`hm5&A*ru=nbdNdF73TmE8I`;zq{u3b~d?J z!ZV!;;YHzZp;w{Lp}#_dDSoZF%1juYzXM1@;8BAmr}8F~^v6^ag@2sIBs z4;2Wf4@ZXo4F4AjINw6ZUkX2U&p>H)1jwj#=c^`QhxAkFw1)SdQ8UzDRYCPtIaD{5 zQB6^Ca;2IoC#eTsIc0g@Wj*(@yn{rarA|q;!r82zI$3oScNNYCY6gIn^voM*a>_}j zE;MHiWHnPwCNQPseVs$D)CuLEaA{u(JS&|^r}C0KdIL>u^70K(#GEn(t-sActG%ge z6*P}T0nptJRG@*i*?!46GgA?0M z?}zCMc3LI1ffm+tSyt182hB@9lav!rNEh)89G5L5w-`twL^DE=!<|+{(rO|JtBk2Z z9HzT}V4m=h*>-8x)!s~Jg3r9gjsp&Nmb|e0lkxT^AV^ir60uXS;3f1^c0pBSZPW#7 zsp0e*IBv(}0;*(cwne#Yj^?7Td58IO2XxWhksax?mXmh)Tc`6*WD9FXJ|MGX96b-0 z=+?QG`mekz~}Nc@Sx1-$Oe#H>Zw^E zYhZ=!(=~BYu91sX6tbi0st&RVFzD{;u(wfdf}{0uZeT}_ULkK;v{5YqEVs)VGt11onJ>0F_`NYY1BmZ_f1Kv3%wu2$H=13hC=?s@NPfE5949aII8t1XAsZEHKQ)h>lv99p&qp8skaUpEkkI^# z9+eZ=Px+0NQziKxHJLZm-#9b%#8T5=yfN9uY5YxfQ8PT#0d`79vKW1YRWtwcMP|2n zW?ESZ$a*U$Ji$tl=2k=UQS`x2HIl65gNS6!@pOui^o)|v^qjd$7n;L#rrAYznmhEZ zDa+E3=d2Eyh+Z6wC?t-Lr_V)u_%+q#m#h?m*-OR07LZY(vNQNUJQMnib>q!raMJctcq-IgZE3hN6pFg4sz$(OypAg}tq;kQ+x& zI0I>nW6`ag3olGjFGcR#73s67WbFXdn1{BmBXmv=dM&}|&d z>t+bvMyPJoq z-N!ktHiy%w^P#;m5PBqM1!t=~!BP55Tsu=gt}yu#Ytc)wm+AA^fviZJ$1cWo;(rFm z@qD53{BGzTn-Ctx$~c*rbpEC1+*)+5cab!bMaXwK&(u{?4^>O_D)pyMsL$$ey1&Uv znvnrC6CICAF)L3%JMbvdnqSq0fs_QHc0bLA$Te)X9LuiBvdonaXiC+EmR2?$4MoFa zqzmQHTSzrMkmSc?A*kA$lj?>3S8df6FuEc7m%gNJ^8tw3V;!we=%V_Z4yw%f&akPc z%TQ*{GG&?y3#t`(=-VxrV@0!a)*jYYJY#ElYMu>zu}7=})_+qzoz>^lSZBVLt>*7p zV$qmy7sq%F>m$Eu-Qm^j&HMneK2rHs@G-vgoce8X&|h72473nO0`bMVz)kzS; z?c|Nw1LW6P>=Nw`-Bc8PPd}0*>|ba-`jN$ykvMY1bU}5NmgFEw$pMmpRHskPZra$~ zqi`an&D2oZUFM~)y(s$Ct4znqb9Aig$#&}?0}}{mdM|#8wBox+Io^+?;OWVA_SCds zhtU~t#d=?4%95#O115!)49Cvd9|@$FNk%x~R>9T4Tm@n{3y9%Z^35C|XGvNh?8C7` z_oB7N2BpK)+(i`32d~oQmU{+a3A2kWL7Xho6*Da8U0Ib zViR?5KGM7gZt#lFAT{|oQj--VrRf7Rn5;6%$!y%K3HUkcnI9ymCm?SI2fUvg>TmW+7Qx$anKqMSX$#qpu0hshlzIX_Oo*-m|7pD%L1(KU zWV9Mgreg|oU(E&MCO4kV51I>I*hQS5-$^b^cWcwZq!kk4W*SBu{oHKE9i5>wA%9_^ z{#zH;H*{8boAlJX;ct=?YWu!qk7-OEn!Dzn$pYVzar&w80Uy4q7Lt=n(7mc2)=>?b z5RO8B$j;=BC(S_bry1wfB0=vFSuQ)!{Avdsr`FN7sv$?5jf zZ=K!h2y)VwIj@lsQQW%$_rtvIPd6G)CQsZn-goz-yVo6s9B#k+(YfY4aNZ%ir-(bz z?eD&DJG#;fvkY!p>8T+XqoyiI7r|gPVHG)6y1?(}&?1wCuJ(KzEf(+rHl-ZAf{lsH= ze0|t=-(E0=ce2O+j_ij2E1lsVOq=@i($46GcKP>E5-7t`1QxRM{%K75QZR6!=u+z? zsR8wb#nX~+G!?p@w%{6GB)Lpc+ETBdYooBVxa~7q}V*b;Q9fx-Fqq~(> zb=Oe~jDV8vPIlOxz)N@q#4K-yIPEPIp7)n%AZLp=@`kvhs#{XOv{I06_BXP~?hbF1 z@$|UW0C*;+xy2bWj?W<;YxBRf5b{6fc5Nm|X;vOzFOk7)8ZflRY%Wu*9P7q+0uA*r z#Vtbaup#Cm!|LQdbCH)a14L)@8=X@QtAz1c5A^0xPvI0?Pj}v4YEhX}!7D@6yY>;NRqu5US8VlJC z_%pi$Zw#jIG;2MO&>pOc7y=7~YwRbl%|G(Bd_7;o1H28d$y^pqccM;N%g&LnNPO(U zThhn;1kDcYw3hfm8;Vo3o)|>S3qhk$K_BKnO?5uroMQP56eifwvYU07L2=dz>mnCD z%O3)Pt^9?fJAr~9qnq^Grm z03{}Etn{=M7^20kFz$R6wor@!yJ#6(hch!ipU7IU@@zQHtUkb<8=0iE2dbyf>KM2( zlJwDk;M07>G^sdFfeLI3_^2z$diodX0c@ZbPJkV#y^^!nbR?^cIM2-hb|0wn zSvrLNN1M~qtOus<%jqiy4LA2=4wi$R;Q3iVq-C|l3)&j&$Q)t{*~jOY6nwQF!tN;# zbKTdNgO+6})o<1qOv`C%kyxn`SQAuwE3bM6Kdz}_imV~#O24=yxAFKYJ+BIOVI7qf zQ_CmjmRzsL%XO*&m?#ZpOF2c_^1Hn4jYl7lO<(q|=p?{aCdgant7IgH`erhz#pa1j zYI@13I_#y=m%N~glqK~Uc>_$k(dHti<10*6l9QApgNY3l=n-=Rr&J+20ncj*D%&Y$ z0WyESlZiSL*`d0doAQxPAcyH8UM?Nsy-+vYXt3y;sVi=MmED`AE}YZM! z-s|IPBJwBBs5R=PT%Z!l{c55Yr5kz&bZ>8_ndLPlCA#w>=wNr&P11iC(;7C?VMq0vf>&ZE>222 zD@i3+k}6(inm~Rf(XsY5}ho>BA&c!I69&AuuNy9#<_uz`=syL78$ELP5C z3)N_F`lkp29@7Yu&^~IK+9ymUd!mW5^O^|TGPUq^w>{k?@%;wJt2R78#*w1FvE-s% zmo&1|kr47J4qGG1|5$9vtqQb{7)!hIx#&WN(NClb`VB$-W)~@lPh1{prR8KiWD;)F zpWMazoBLJw@xa!W4M`&PoE%XJsii*?t)`RHDiIl|)|;ZLgGr+rm}IJ_iB$8=3%SpX z#}y%?%|WlX+3)o;#@lNKgR}WnULv zmRnq=e$kAc$3&qE`mOh@4ED=rq#)afy7LopsE65(CNpUU+Jg25f_j-cBrRKmoi!Dy z!+MyUY>Q3+6;?@h8M}Lo+RTSRQ<22nw-%YB_E%HWmy|5>rGSPul6>@eCd&WA|0&1e^qpF%iDxEPZG3M7P zOeNI)iS=QVHO;jpB6G+ev5&;A-roHj|vfP&YO zM=&4$fOkKo$PE-PKW!$WXd!Wuyx|SV7_e9Zd>=ZoJtlxj?O2)yQ{vfV7RgPkl2^d5 zH?j<*J1b zRUFGDG*4eK3uU5`RYu&m{t%_?*`kjf4MyKsk=kwvC0Qy_)VjoP0@a)%lJe$a9e6Z3 zSRZkL{wG$@$JTM0!k3dx@E>FM0)_d*h)%p`WHlZg8D`xh*RhDmE^J*yP1Yo$2}=>t zm)!}BXQKl1Sfao_HsAl45r2>k_a)_t;gNFB-om%qT=cLD2+zs}PN2)ri4)w1$x}rh z#O!1Qdj=oeA~ZK$PkNH>l{TF(81J?{<0IvM|T@Z0_HiHtRIq+SVNh$hw~~MZJ-;{F}f2ysGC6- zTM~KQep<@>Ln@-nEdw4>0n^u%GyyZ$#OOAp8YbNz!ChZL&hfHzkJv@CS#N24>kW+- zmoRreNHgQ=z>d@9^feQ|b7gLHmgCG+=>y~BxqhP@ozzq}&5*{{oxXtP;HR0v z9+?$vzxk7`Hg$1j#N`97V6lECf@L-oILCXMLtmmB)h*yi0rpaMXLIFU)>2mI<>g^s zLKYBJ=WF-UMg~L3RDZq=G)u>OBf{Qj6HCq76yMCmpIS!{!zxh}91U~gc71tXT)w9$S zwNzbHC)H`C)K%3{|58C+P#=UYr3;D1+x`a-R-$j4rb_EWa9(L6zp0w=jp!|-^gh{E zCsLdBKy_aqP$%_$)k%L=uT=uwTQ$@Szq3{LxVv>D@4RMG>sPWl&WE$+jm}0+nl_{==|JjX3i!@E#ab9;M(doIl?RNc z@|YahyV{~!8v<@~PyNIc22=Z~`eFvC7(6RKS&I6jDlRIOIp!TU9lb{8hkH*CaqEHo z^GGd2j$TEliuw_@)mCuY7l!Z1*Wrw6v$IQ`bZhJD-dR0X#_GM8$BdP;by`_d|LdjK zle`2v+DoS2cm;JwXj;A?39h^9qR**X+7A??Chp;4-55CFa;RUv05Qs9GLZ^qK0%EI zPTN*G(v*hkZWEhe9Qufo0fcnkJ296 zyq)BycLwfx2S^s^_Y28|q=1YjN##)T!mB{GV4l9mOH1;|aU?yMvn}-vWGA*|!-3z# zkb^9eu40eKST=?9U?oXQV3_sUV^fpeHsyfUr2%{O5wh@R(_}a?JCR285GLJmP=uzW z(coQ2qf?p&Ol>Un&^Og#9qAxe4%}Bi4b$tSD_umckgiB^u14YkpDl;^_$Q!mujw+d zn!muA?>F+lj?zlJJ0=x5X;+qz5|)52p+4|wKa-WHW-5{+=<`pK#N;;C%?~nzq^4I% zYia>MuT8VEt#l46%)YXptUSNPNAV?M8jo*v;;Dc^92KLOEpF0Mya=7aP6MqPMGCQ2 zWCg0uYP>c1f>WxQNKb}}E2gy=Y_fzb$YN+G%pgc~~%dK>bH-tWLv(nP;6|&dqO6od4 zO*Ut=Ddi+G1Ds=ew=+Y3aQ@V(+|hcJJ6Tus4(h(>18=CmOd-5iZP4q*hc+rdJ!0OG zwx%=C)%)hW?qJsGyto>f;~H-FaQbaBL~d7s>Xtl%}33%oV*zV|^& zFRMz7dODY!uj)%URYSM`TwVr?_9XbTXOUNbU%gPD)gkP3M^s*&Tu;z1^cVdWdWe@` zw=ThZ`5$`Qck~|6*q-_U_~Je?8*Hs|*vXQrMmkEBM7`S#?o*rfO_|GFkeAFoyg4Bm z4;W*2+5;$PG=7Gysyw}{ic=2$c3oW+OuOWCzg|bK>yO~JGTiYjdWM;xLZ+sgLMEwd zG?7jYPQ<@po}`9XL}`9c=jLtoFSZ}d!mwNdP3U^I!21{ePS@B5_aWQlhEbOk!|+MnUmfQ(9iS5J50@`Vu9$hm=mMmH zzG<$j0cILHuW9NR5QYErH=N6!qUNo#(PyMaAJNdux5Qyf0+AN2!3*XdC%~{4MX2ZSpu7CAXkv zUqT*wQ^*4^nv|Ajh?FU5Nd18>=@j@2QEVysgEfJ#oFD4=6KoS7&lRsM%0YY4S`@G< zi}==8{+AfS_wwKDC>zc0&|EAXbO7r}V(5!=uo0vddqM^QuUg28u+^9g&IOJ&lH~-B zH$+roGobmJCX%tK!llcAEj`Ab)zo@MUCX0O?ZhmeFN(GHd32L6NR#_hvAzBltV>`v z;}I*^u!!+&Lqs7qC}IP>6ZlFV_%o3$z7A%reNa!ais+l-xoR%9t7Kw|iWKdkODm)P z6q(dDAyiO&l#j$?_{HCm>-cH;57_eW;VfC5axh6csLAMR3X!b(ycw@cmf2c<+>{+edu@mPRILEVxDm|S_RvCga#bl=}FC5B%XO@?z} zHK{~PV_yp!2izfvNkS63$P}TYO%=?g3eZR-`EEi@Swe3^HyWcisPa$?%~sP?j9iQU z{FYiEQ=pC+ssA_KTds?kL1vuENp66hl#IN^X%mB4Ml2afTrwBk$^r5mXV7YL5cBkr zWC*@^%`cb8@K@w1FCodN3JwfpL6+ zT84D9e!PiF3(W8YyNFcAb+R$rCR?!^as=j?yI2-w^9rgDFR#w?yh`&#ii#hoGjGV6 z{2#fJ?Z&fRFB{N}(ob*5G?;&mr08>@w{FEsg6AIz<1tk3KIrJ{nl@}6 z_(q4#WO~S)CTq-d^A~o!?m*O#xT>a^r0R;fB9oEB=o91Q2{IA8e6)?1V2qbvKe#}n@h*B58y$M zWF5gIsld*{QzMIbPK$`;^f#|ZhjK+8vmHRa8j|I}XbON`aGU<9f>kM&8lsO*=hN ze^JTc`TrG6q_1iNuE#j%(m+qs9Qa93{aRMjwWX!kc-P>~zg7KkRw@ZBDQ$SO8XdZ( ziiZ;D#-Wb-c<7j}hg`#l;Z~-sGu;ev_9FGj7Zkumr9o~{T<}hZv8|f_BjpUtyzO-hN z?~NYj+oenR`svelcAd+9t)^M4lqdQDKkthDYqH7)AGk12s_*gM`XJw|m-3VF^1G_L z@`pMT$GeO*`-oo9k@TpZK2;AkcRpScc+VG~GBehBs72cQ^~ z*5x)WglA&dH?j#+P3*#?9xVb-i|cSr>R)`4PlxE>0;XqRbj9$+Ou z0qS-U`_NXb^x;^q<;-T16sufm*Zl9wV(MboxPeZm25pV0`bBbxW~aO8I68+uqy1RX*qv;M+&?A?g$REZ@Rw(ZDaPDDNRh@~!e1&#b=j z+bV@vtE-7_rib`yx{4H}BKYK%SZ_}8#%3HZ1ol;PQw>TWLar&N|ge)zySuwnkOt|N2I&+K zkPbykk?vGb0cnt$nR|Bpum9t7ynx6I_nx!&UhDh5cZpNsa`{VmPc9FSL$YlmlaN&1 z9W5aGMGw0#m}s4wY3v@A;e~{rB$gjQcWY}VCftSII6|*Y_)MQmNQ%erNmvD+--PHq zl3?Y-BhfR_)zL4a1EM<D2 zdY0LUSMLzXk=bOfnrf{J>(jb`-mEL?r6`;W^-#S`Pu5gb=$^fVWV%Dc68T{ z(dqnvy|TG|&Ruevs&*n*9XE+xbD4E^9S)M&cC77fi`&L@R~uT~cy^qbX@{CiycTwI z=-aO&*ZZrP0R7@G>cG@EEwamg_I+8-J`(55K2g-nMFAg6jW=6l)MrJ1onL04i~S6R z;t2Vk-tIG4o#nmvsCLrf<oTEWd&bNcVmbvB@6IW+_AUBQZ%!{^iYP_q;i$* zMX%-wC+1P!yCRo*D$e6BZssS3d-Se(4P)Z<7|)i2__hrv#-BOZo7{B&Lw z|7W>bb&wxIX|t>jLq4|`!*ucFc#=Y3}f zd8f>951*KK8LrA1eEgwK@M@SuYQ0ISUgP@tm>sRUZQ}K@&*XeNo%~a7`J>$`ezsY~ z56~1>*ca6FjqMa@w0&$}Q^gj+1Df4vQ^hE|gpNld2p^s44zIP;pthq}$=RYM{-9*G zkvj@gbQ~*lE4-rhnCRTq9MJ2`KK;fV)P?MR-OcXSo9zzR7~6CbW*QZAd-VW!ULSGK z(C(6$+@heVD0-SkXg0lZA1x76?H}Scd*`QAE(=`}FDFTux2#Mg|Ilb3s`1RdZA{|s zc<@l&38tu{K}Izv_|EGQeD1Xk;$*+zFgp2M`E$@t-U+fv8{81NBlATQD9@dl=-eps z)D?_ubtdTSjs(fw#9*s!8Z@$>2C-Jc*WBxW!`$rw(C@~Z(dt)IUlpMbyVu@PCEYZC zv#TDwBmNHRi+qv6A_v#4pdET`C2=3xaa))`zpJEh%u)$Y~m6j8NANmWXeRmou%?WbE(*9}o|b`y0|R5{zs zpWuG*8;dwUugn%)lX*~-(*=XP$9_9F8F_HT|0`dx2k%#l<$N6V)6{%kkKnA2aMEt= ztydSl9jdANiPZFA)!N_7eY-^U3;L;#BIVUT5usMctney8G~2`!(W9}+<*3-NMUvR} z#lo0hU6q*G?xUENE`LlBS34$yYZ4P@bHnNXIWp9yk7Tn&gDq$fADic#$2QA~x`TKX z=45S5X1@+|m@Z*g5)tRa9$}MkO86>zHk=zRu0M~iV^W6IIii)AOEMmQ=s{CEd~6Pe zN$hKwwRgjOc3Jqjtr_;QDZ&j_gtu*uFb!OlYVJbV!{yUM+?To&{h?g$2YtjY;Y=`w z+PFJ3#2Px(+4T3?goE|tu$F!n7Shr16YcAwI)$#TGis>+OuHzgKfq`DwfRZ^X=Eo;4xhXANH~xtUsg|HO!6B_uY58skp9xrczGExuA+n zZMvgi52D)dCo^;9GGmzRu#OJEd341mRL_$63%Ti}^z^3Ko!$m&;bS(NdQPq^C!hCl z_NqXX$HkOQm89c5kaJW+`I393y&NiTiKwIAb9Y=_rW93n&0K3&5ZX?1x7$6XTejC0 zq!Mf`a@$ejnVByRuu6_KUqVS}hI&y&I9-_2X(nNHjL2gCcJ<9NH`~;pvP{mdo*c!b zDU%#;hS2nn#Q6^2_aW&};Czr3?Ly?1iT`zG-{LE_x`M2mx zKWdLGE+4R`C&EdQ&6_LBaJBYU$w}T3)~+Ww2~v1ced49YMUY1&_o}ILvJLlYABD43 zRgvq}0QnoKj^EV??~Y2%+>A+TmpY;bsy*sm)fw*TJt#-bIb~kLH`)vrLmNGq1Q+qc-LJxb#)ggDkELshg@CesGWXeEz%#G8hTsCu&+UOs=%8B5|6&E>N zSF&;o#Y6U??KWOeU&;-(u}rWNWG}ak+TpMqEH=m|qMfXQGCUS`)JmB|d@pD5UvqQ5 zyl!X7g?6GGU>C@~_}host8#*UEoV`M&cgvb$67fPEq@l%Kc;c#4YP+l$Pv^#9)9=B zp0qu@-^~f!Zh>scYMj-~c1BD0TraY(nCcm8D%(uxq92&2CXrdjjF{3;+fV9hx-QO) zzryR`nD9tghAVS;l|+;Y+ranT1QjSo-_zZ76>~cv(-c2i_fHWe=*z_e?hNNRQ(4$jDuJ+qOrKSZMaz^X8xp zIGg3>D#caSZsvWOY%|$bR@gEYH!~|)KKnlXz}n39nPx|rn>MQ{L2Wq0tjsa!l`zJeyg|Y-}Mzvzk%tg^O#Tc z7v>q~;tFzj-dJON;9h=gAhPFS&ed5lN*s<=U`$+hru_#WmZ7AK4 z2co&0g+r>Xmz#=rx|g6HddvMHDp$}^%?bvnTR~??nl)9ENHMi2k^}cyDzwRn${izA zs+a`tcI2tIH1e0%I&#tbD00Yq8f^0p27A0E!S8s)QmU#!IrYY`NiVG=S&;Ws8Fkm| zNY-M4+=b8dI12ttblu$CIek<&cUpbr@^UU1=8q+RG}8UyPjY{w*B*tO@U34?jPy5( z4t{cG{osc6N8(KxFK?@Xavphl81vG3Y2yIa{ z1c|eMnS{Imm7$!hL0X}JcUI&>tE|Y`W)RmQZ>C73)^TdtDh8>gVlGwIdR0suMC-Y$ zF1U~U^{%Hs&29I`xLf{czRQW6WM;s3n91~&xm0QE-3RK1``gRS-*6h|rsraYSDEi- zlq~GcmjUFw%W(Ub%e}Id+$Ph=rSf+%i_FSAc~PvEFT_5Xm|8NOwDNsam*?Uqc@QW3 zbX*`^#3`Q6v7)*_=MY&$8{7+>#dtRmisx(*+MmQpn;=%>@0?Ehc)I;bZnB?x_t32J zxZY}jOXqKNYv~zV|B}ldTq5)F3(2JQu4ORN%?!HH9U01ba;+N|`P==Br|D9pnD{YL zP|S+t7R@4gL`r_VkMm)RptFegCyM$022t3*AP%Vn@i89#9^U(qDO1bcc)OpuJn{?I zf(o89gEg|4ZSG~Ff1b=HSJqTiw@hp17Y$YY&0JN_e9v`UwT2$k&)inun3w9b`M`(6 z;WxD-{3&*dzuJ!Vzq8%R303uX+uZ&go7~Uq64VrTQ$2P&$f%7|i$qm*Qy7nVW=sPs zg7O6SQGP3j%V9VRo6A;SQF#e1tFk&PHma%Ofhr>`l*(6Xth=DnqZ9pLThl%INM&T* z(q^&u(iG!5CLhDAxnSmrg{XLq=xFCQBWwnfU^18)q{^zAqRgwxW6o>eOwzY>75$Tb zmzwluI8Sd5XXu4^Vzz}>Ik#oTZPeWi)f>$Yea#%xcVQ=-HDlRRI_r+6rcPoCan8$$ z1F4|yNR8WHSH+!F2#QrK*QId2o*hop<->9MpXf-vAUaNWjn3C?qr3H&(Hl_R1Ct~y zW*UZ_&Cqa~8ObcQeyj;i!~3RU_>L_ZR<>osiT3mGIG*CSHeL9RyT{D!)lq9(;8jT< zJ!Bsz%&?~t>evGb?_1_En$rpU%-;#iO?<)(BclV&{e&83MM73nIw97ajJLW+yfUTZ zQ=1a;*-fqZET&t0teF{qU!RQsNoP!0pa&-m)|V4n>Y~wFdTq3c&J=#7r-YmIBlMuk zI;&Zt>zR9c7!;KiW{BB|5_FKA^`_~|YX8KxvlE!4SzZ)!0e!VC@;&-&ZN*}!0iH@h zCS({skvsA=e%FTnPVcy%Q56Y>sueIn!yp^}jrxAwNDIGCq=sKT@)@bAyi6j^=YJKc z;_rzJ^mSy3pDSjaUp{8JUpHo=Un`~oKTqVpjO_HE;&0nrQ_RpxfDo!O)S^PO(9lxMA$cJ1CgLuCG4@&S$In!5OUq8kx$J8$2?~yyz zXxta|WHFUXW>AS>fEa<6L}K_uS&}nydAf;tI5+yLh`i}#m3#2L%=LWPlh?9d9@5g) z@q2WYhvZnf3Z-@eDs3OxPJL#%926Ds=j5ahF6mia zp#!$YRdl`FhcGU)GwHk{z2BDZDjNM+JJbDYH@S^C3x=TAmqr(OX$Io`s^dDCLau_z z>PurkxkGUI}MZfl#Z z^yr(jt3NRV>|k@wrlCXfHY*1`#8GS^^R_E zyP`u}7%k??gdw%xReLAAU>oXx>~$TuW+pA_Y${j4hE!I6*nRvH;at|*^|n8{CN_ik zg7i^I=BMSQHo-vpP(Y7u}9JTugSIcU-^o4HNUg;cr=wjg1qD&$q2-a!eX-QEvm|` z!k3T4E-ISNq7vEBcBJ6iLm(_G|F&;LeLGw1HXrd-_fvJYg2S53Wz&~zQvIDxrYG9` zx;0*s+<1dunB96mO6@l$f$H)d{3zMY8CJclc9ZBaWbiguDH75O41$3tCqO*YJ!X4y?*3vbSH2t zZ1NoGn!>OEdXTqUBFMdojqf<4XD(s@OU)33`7ydrd_6OfHz8#8NUs-AzL(%T)B@=(L$bt`pZ{ za~URV)ZI6^P?;Nx1T&axib#P#nFx%fxMQf)n)b zoS^@!;|_7I-bf9%QY;Z0IFD}@Z#jJxrw$rMRl1TYZY6&AN%9`vfl17A_}o^N8Sz;q zwH>67qgmRoWOAyZ{Pwi0YSViSsBl_SZx6Ck&9XJsW;;vWv1e2smz;A`GyjTP>}M8N zed^?3G&}Wju`W0(!XP7*@_zDkuxsLf*lcI^MOICS2s~W12E~vZhx%rnvVa zlEs@Dfh-hB36~^=w>n7YwF>es%Ey%G zm*jre^E;Y*-;x3T**_`&@u$j^FqSF=d6|Ri%kP4R;!*HGd=Pm}-$}^y5h))AkHz9( zzbG6G5J&y&5Tvi-8(ipKs$TAls_8bXylyH}8hWTlww1ch#D)v((DF~HhdQA?C0Jc zK997x%Nn`m-Xgcvy9Z(HQ}Giz@ef{KPJV4g1FxD;NS)Z4nMxJ7QekCrT zeV*rJcUt7+1eize_%At21=p4oS}Ioaz4R#RyDsvPog%-sTe%BP$~)$yoMqNRwr+*; z>d9?-iGm6)*v{6I%mkgv^w2wX4c&*HQ4LNPm2?GW zR=3ujH1l{#C#<9rKBO0zi~51N##4V)x3o9(C?+Z_K#yB(OX58pV5Zu&^tex(3iOdu zQ=L6BvGxdVjiu(U`O2JUQqgg8_xsE!(gU;j*(^>-W6Uny7r#emJh&aqchoAw!?C7Y zxWV)%jW8?BWRHgZY(!tNH6TLI)-#z={g8^duxMqvi@9bo&*?FqyX&Hwy%m*ZRe zwb*Q{@C-_N497^PEh3#ZjJ3C=`@xoBCRrXbh#$B)PEn8jWiyNYsE1?hYF6T>;)JO| zD((oKt)@2>79_KM=&cS3 zX4?V^$9@^axE8@jE>}>&{pE2!zRgsK3Jq?w@JBHUjjw&Uue^qw!_sK;ljfef= z@(;fQeD%iio?l;{$JM#ZFDSq9mFxg_=u>}+@claCPnBI9QE9|}Xk@>r65@)gFCMFI zBH|BYZuU6wOwAHo)gCcWy%D8USs71?`Fk&w*TY-miEoL67%S5)HlUl zc5~hu-N~NU&&@jB!;IE{kb)pSjMR!(7p>@WuLsn-cnl z?Gk#y6C4~)jb9MP#-9ww#6`3hS3!UCcD%0e_M%pAKQyP`v@=WJEHVS%95ZzxV;6aI z*A(Wp!<(z-=$q@N&f7aizkOy7#U-*+;&U<2w-jFevbIaKw7nTEfX6DMT|rkjDNo5v zornrNF&UdgOtVW2t1gKh~E+p%QmCWzT~j5uP4;lJuF8liJ43B z_Xx_}W<1*iQM+r9Z!O?1i)`+V$W3>ytSe6bwJPg;O<9f3T@_bQR>tX2(Y>NWa8s0U z=lK1nIOU$h1$qNl**~b2@$k8mKsn0F&Q=tUTzM&Eby-HXK-23dx8mNpBY(n`@_^Y6 zA^D~!GB2LmEbs$!<8JvJ|6MmPkgKUb-*~@^TI#r1skV!k>O0sCTSPyu8C29O{dIV* zH*ml1fKzi$9QG|!G4sodRN23fVOi`ikX7*TUQoYMH$8#K{vrBBL%zxsFGl|8tww=u zjt=<=$>8MFU`(k)H8`VEi<_k6ZgcP5Rr|Qo(FYwT&qDX##S<_^J%jerM#ZRO>J&3K zmU*?vgN^s=k!t(YOTw;GJ$NXm;HUmAm?6WUn@kibFP{VfnX(h2N3cYsBWrWeuP0jh zS%g;4+;p{vGsIB$y;smRf_L%0x5hrFhj^cR@)gx*Qm=r`<>g{;$Y`5-foNDh{nrhSo^kW=Iqi?`b_r1&yYDPBMKJ;ztC~+AH9+ly1%>4ssAzkN(~t$DK4(}%yH65SD>I=<+(r3waTS8{amam z?c(%%T$<#9wZ(CM^&v^J&P*X`vWuj~QTG?GH_TLiUdjDpUfPr7^lwuGI^4RS&}D6B zGuS2cv#!{8ZAzCE6*eVL=f`A_tJpiPGiU9os0DlN3fzwuNG-p{gO-HzaawuKW{`7j zCRxdTMC!GmT!^;On*LxTvk+3iS!M-<(l9TexXl0sKDqa$jhAEXA9A!kP8WI?XYI8z zubl+xwS&B6O3H&KiCkgMh^d?#N1Cdl7yh8;{Ozll#x5rvzL1>WFQn8cPwlGwQL zS9l-8O}ntP`4sgi6R+9Bex?+)dCTyXSwxQLP1w`c;r?2p*Tdf5MW_0(b^5H0m>V{! z`G@YHvB}K`yt5Tu8PmaW>W0_91b5$RH{Py5Frr` zM?OK!=e)dxy>|od(nGcrY>$c}aCum}J{Dh-Bl-)6YE>}|XYV5Mx!f;K$s3|J8t`$? zq6oew7ji?)WF=Ur=F?Z}FFsd&P^A}>rM)4Ft5i(ksVTdvu_z}yAqd`*3)uljt9V&o zJ(Wq+Z*o1ovvOW1c)VrgO8E{e;YIO6EQM7#7$0(Lm;#N&F4uu<{Zp#|(U6?y%(W!=cUF<1*ZMoDkGfI^=7gb`D+Yj{!cK+Rdesk6DZvOCh zK{bxG-}-HBXMdl~?x%1!RC_lG|3y)yafKHrFWgo{@B?m_kWKJE)|XJKSgV`M2y1j> zIa%(f)0fxVE|+<``Fm`T{UQIIqidOloxF};L{9fJ$=iN9SvtrrR|dso@<>(rRivT3 z#g#Lrx@;3uT8?5u)99EOIheVrU&j0*M#roZqsSiikEtnY$Gj&}#+-A%MP|BDkyfrq zq@a5eBysD4e{B2Uu>B}lV4XkEKJ^>gGky-cz(*VOSCF|HVg{);CeCYWhIm~ONv7jE zIBZIjJT%mXC-4ccgL$)1WW+aG1OLw;_lH>IEZ(kU5E9;(PhD#6u@n-tqm1RVNQHKm z7bT$>E`3#TuCpf;k$ol9$Z6T|65Siez6!!{>lFXAU=-qJny`5Bs-{5f= z>gqx^>g2U{xUJk6ZwP$Ul_WXOyUO?;a(FrLKQt6)c(13^W2_7r;SDG0mBP^ty)ROW z)#8RLj^eR{r=gH5;(oN5a5|@O|E(Fz`gp9Th ze@+FH-&Qm^Z6i+B156UUj)A>n;`qL3b=Oophmb2VhvfM-yAwTpGHQ~opnTE7>@1KX&g;Scvfr5z9dAas~hrw z`p|o>T9OK#?sfGyd#n5d-WmT0gwW%j2+n#k_!Ebn_8$6~6te)-M!&53#;>L3_|3^% zHRs0-)pWl;IzbcF6aPsK@>RM0nJVJ{s{T;P{O?p_zn@y_f2JPz#w!~9jJhzHj$9ka zk)^z%kq^A)ku*%g%Ha)<6!*qNKKBMj>Um8gZM^)ECf>84JZ$vbuu9W=NrS*U%Ix%h z{$82hpF^sBfb69j%ap3J{K2b=Z>pJ$qWLbB<77#?Y`5s9j21U#Zpc#C9lbqwnLfrk zS=4oqiQEU&Wq*pBb{{M0I&qz6ykERD7Hl-5PuW(&K1d=k}Qpck-RSmisg+kF9ts_`<}7Y3x?cwcVl>ZJuad`#Pb4J(5t(E>9?Jr*ifkoA8Al zl+ehwNoZy3CiJz96Xx133ESeIGCK;Gvz4pH`b6 zU0>VQJ+QH^x!Y$CxE@yEQO_gJm|D~d{Y6)L>z~v8%1lQl)W3==`WU^yJz}Ze2oZO= zSb;lgm;OrpLNfeMwEtN1(&aIWT|Ih;U*Q(rL@M&O`J6d?c_2)eLS-Fd4{};~#ru{K zA7%l3d!M>LMIKU%d0ZB+G%4o}5XWb`6#jlU-M`~R5G%R{`NW~17L&evic*pBqG@Cr z9-Hx^G~Squk-qdTdWvs?_Tqz}1)S%`oIC4_1~~kdc{RjKSwl49w0;&^WP5g{ckvpZ z4-y;0u8^Xdh)iKQ@qjMn z!RRx3^E+YL_NEh=grcWa z`bl(<-X8r1W#FK$7=5WzM)R3}6M8U(b%QyXaNnFr$ce(=7R7(8Z5o|omqv%%JJI$w zOZbItcBt`*XDHk*Ej1Qj$T-Oy@1kM-#)ACW z5jdK&$Ohb$XWe7Y8j5*hIYe@l$HZa=XA@i|u+5*iN8*nA3k~ZWXO=zm>K1c?=m}FY zCq1)E?g#OuJBs`A7oMbpq7Sse26(C(Qh^PyL&Q!ykP2+z|M@eU+501+tY|56Ly3H! zR8eAjgek;SdY;#0I+4vIzvIP-^PUhz)hl$KzhDesbd$*mB@WKJk-=kkFL+0ki4+p! zBhAIe$SAQsvPw*joD%gSjLr={l&gaxvT;yTeh_qmU(rvV_4~jf?j~pXO=TCqm@Mii zl2%=$@?IpmqZy`A&CwE@iRPRT{-e@$m&4erX43`SM1JaoNZ@{0hr-?hWg`Q8;Rp2p zj@Ta{lcErk)t_m%dwofDRJ4Uva@$PZGdt>uGtG-BDcWn@0xn| zT{=>qm*gh)#;2S?GD20(N5%NQ{8wCIcb zSu2Ly`LJ}q#=S69G__xfMs|d#%2g7=LNVKx*Ak*4o`Z(=l>5@obE|DPcgB`=FKvut z+AqGFsn*z<_8MCKN+@=1?PHV9J~yY#OEcWWn?gpA6;Eu>>9qLiKCx?b2|Gnsv_m*6 z57l+-Lfyt*hNqYpf6@%{+joucvalM~#Gl^JE@s~21-F5e`&C;S4?{=(4quB0FqeAL zS=F38rpkk4?~bFno}ePV!dX*`SE{HiPWPm71T)~)K`4M=+a&q z&NET>id@}J+(g6Z+zLIhe6oegoI(r~M|4cIPg81J1n?3c3kocBk z`O_k53GCZ$B0HL7OO;M+QVH}}Zn#SRUf0)O!o51(E%j%)E%cc7`up5|?%%EcUAF{> z@OTo>6xWT<4 zXjP^D&+a`juc_=d(`~OOBkbjH;{H=;sIFRaB6?+4nzeQ&G|rLixn1#X)WJtu7FTfv za{`~}7BiWD_L=791zdq#_Age*_4-S4sPk+G5@=2ICRWbPoUzu}ReCl()p59wW^lUO zX|I?^wg?{dX`Bk~kkrZs=dq@H<~q0!L@!re^uRsR$_?P;-CdM-O-OH*hM$&!^)4Q_ z+%;Ft?Q*%?To>Xj`PmM3V|gvdGx^H=;HXbw>RofMN${=G`yhBOg;zS-Wu;nAuWR#~ zpP#36&6vG2THmwZ>2u6t_z73|20X5lnL6LaeyXe4KOx2}3We<$UNx1%oiMNGm@H_^ zNx}l=b@a9Vlbz*abg}+5I#=(BF4L=`+w@dessqrXTSV{bO3@d(Of-?H8O_B!*Ggsq z7&#A|9z{1D|>-?Vb7UT?q4&?Df=^-59(N3NxX08uxH+a zZjnh&u}$SoTw(>>QF5=Z8s#t`hU z&coxWDkq3`RG1J;>F%u)iP@nXJ!M0cEL<@t@wG{^H<#^QW4^oUay#9=3$6w$LklTz z6($wqZRin6O9)UjlEd0&r2pU;^^)fLkiF44~G_yD=o44F!_>K+zE)vu?>|EQ`RV3-0@PFccLpi~`kZqZ~SP5!t zA=95{^o}ZIO8LdiNWZ9A>*u4&&TNkOY0PCmlX(r}@`IqEsTB+{LxM$Sad6P=4*oF5 z17nT_AKL9fH9I~SWXl9AU}~MTZCPniPRM9rE>|uWvb!-Pw$SNoqtDVO@lcyvSZ<{0Z`evdGb>(bbo%2mm z?#5hp7S-1RYO$5(s`>b@WS{ORu$o{?$IAp1KvrlIPCvAnLkI zdKJ&tBloS&DIUPrDMi0%0X(ZXb5GR!f4}7;`GR$@40p*i$35*@p$9gS<4H#SBeKD> zdLx*6!+us*^!8rCQ&{K@dR5&4FL3L;Gj=@v&6?hD>qEsjC^N$~H>QyM6DInvW*6M2 zp<<>f2LUmqXv$f+Do)L^W{)dD(yf#k=}MX^WP3fA0S{iR8OyF*&)y}sc0=d0zw7e$ z1=??5Cfbx{5B|gZbfA*Dz~pgGSEJw8ndJUxmlzs&O0&qNpwE|x{+-}!BLVXnEq!|fs$9>Eh;Gng%=p=%xw zzL3v@btpq@HRuHr=SmpT^|gx|@m9cHjD3gZ2)LD3*j zFd(?=?+BJMtGczHH&V!N6iMR`jHK`!G!PL`38rGD?o1HWUWOwc;AAZQkO6f}(F zi&STdW6{Vrk(A7UcpCi3RLKL8Ey32v#9(=(T`((BIhY*D7fg+$3g$-Q{WX#E{(;E1 z{_l}aev+8HeigDElViS9Cu4f4B(Y^wmDsduVC*YzR_t%yn%G6&ez<<8V$;C)J1HN> zPLwK9U70>nW|=RM7L^h`5RDVv70tM+C%P@NC;DAHjr~Wgj(sW0#Xg7KbYB#SxhTzY6mX*tvh$SMeu1Wk2cP~C72JpQE(L7>NG(SY% zqT+m5O>{t!y{jj(R<0sLxs5pzo5dEh3@*=Xrr>@pVyR(@uoAVWOEAv9Bfham$*&A{ zTWt|EOyRz@=j=eb110SwQcENp=`wXTjhVky*ZQnbw|PoW@Wh_dneAi!9**W1+nv+N z8QfFF@ft5}l})Q4-dQ8Sb?B-YIzoh3X}| z(sbfqSx%Jlx>7T-W_cUQ(Ve2k4aEd6Hy*mmxZ&%|o3bSeR2NxC_Q3Ji4aQkpd6cBx zDp7#Ucv^aW$z*wvMrMW%^oBqAkn1H!y2-LI>Akylja)=;y)j;vj7$uEjL+qaSs{;` zk@BjkPbxpVtZd^TZy&VTurD6 z26~C9$JwtGyIWqe1ex42Ts;I0HUhb+ z=7F9Lv2U5V3FYdh{)YrpCO8PKAVqD&tLSWLcI%EP6$?#*yKKsfROpzEsjTPQ=Wq|w z$+xzGOy#;mTAT&pXAcDA=kgC*#DhccjkLdewW&mN+F>fzZd6aresvXI+hH=yTTN=5 zoLju_O=<5S?3^>EKOTjwxRq`}w%;K*k;11rD$>~Bx#L5=<~wq@O(fUw<4b()Q_yviJJ}NIMs*k*ZDlOdQ zlwL_vyKlVL^x4nDEm?fBg9Iwv7_8X+}#uTuBYKET1Mt! z4;{eMVgeOJA^Wemiic|?tlbjkKI!k@nOSz3j@B>iircso=fQa!Dn@aaUN@Ea{rP$R zGq4LK7KNE#H=EAMQ@7QX5mVi8m=~Kw8_3BGsn$Oy3t!k7`dFEu4VOesZYD>#;qoWa zWr;Y!HYaO$K^Wd0%p) z^>9RIm$yCoG2R-O=q&^;S*F2%ho_}3J@|ms_*q+uiOVU->0OgsIDa3oW#u*d7!BxK zH0)-aj5DAx-E!~2$ZsP0I=r}i&pFTt1W*6(_>p(xVwz$1lYqRACi_-$V)fodbxSZg zz0ef)5;2b@1MJ3pB>YO*MqWAFfN4(kJeXw0^)?JVy0eVnTPCKH{6Jb6)dk)F#e()v}+Zz@5DoU5}#dn)h8>U#c_u!X-p zY~Zg5OZn@<)c%j*19dOlsWR&kQ3v`jU-j^nas%c6wSF@B#X+Bm?N7Pdi#CKt! z-`C%IkM%HSPd4$AnBrb)>f`JNCcVk(^`^dEZgP3o`L&cbqgNAkbAnag&-RUshjsOl zJBI^dk8I->l6C%yQ)nj=rHy$1>dBq1Ew#%ih+r!vITJY(_TV^pS;NU)4{_DJzOJ>` z9{yl$w1HCaaPrWF%HsBW8QpU)15DgBuDyEKEmcX}DW=LiQdw|nSD>HK6Oa6SRJ7f2 zu+F&|>K~F~QD!8*BX*FEY{>KXlIL@}tRk|@PsM)mA7$vVd*d#+1#Txjf!Xev?an?~ z$u+PU(RJeO1#%AGkm_wp{rEBaq@`~CLw~@&_|}}zx6N-{NAX$j(09zY`il8lA2t2; zX46hDgvvVE6w{+jYCX{03p=6H)-xT$qNYHY$@pO`^DX1_iReH2K=cyc>cjfS=nj27 z`h#}Sy*g+3i>?*^4mI+Ho)^aJLt#|E3AN6r6UYh0;o=T;l+;Eo$ffHHBP_UT!lqeZ zGn&6`2?&ZEObfEu6Ww96!^P8cC~Duhp(Lq(LNiFP$$55?i&`!vx?6Iwz{R4wDf*@H zE=K%~?s|rv=Wf=bd8`oK-32l}N=94-dBTpDW7t!R@PyEP^R~dt8)51~#_Z~qFax}F zTnW01cTG3+_UfWgClYycnf5sqmH%s9Qx4aG>__LlzwRTZaEjlhuez78)yl#0T1xK5 zCz&(Iet|#c13Q)sQ!;ucGg#*piRGU1Uwl=@cyxSJsL3Q zX^|VL?l`8Bi)(5CuB2Z?Nk5gW>$j2hm{C!Z=dfrQ@CemLfv-+(`Qs-dK-ZLhU><}ICqWlD9^zP8W4?tcc>-0$xF;wi>va$2 zY^)-=dX;)9ka=-IUyF8>bD}e4tLRo)Ci;^s6eZ&rT`j+e&X8@$Kz$kQEhj~r%DK^U za#1v^oEHt`crsHRqrZ#d(MuvWdQ#jbz z?87*{4lm|fT*+%iKCWVBC7H#=qPCfgH@Y*Pz@k*N+BL+rTn~Txf9%VVRI>X}fg(&v zZN%NVj+_|X80Mztv$JuD9B`TKbqFW-Tvq#s%MA~yI9FAYTa9fJ(S{nZjopD~IlpXf zcXKMOz(mf|td-5xPJ3THrQeXpo%Z{Znc3|+1&Xd{Be65sAkGA@#2-N(`59J|5t zK78x*!3w#P`fp*di8=DSWv$?tOcvlX@h`~6{!RHvJ)$f1ue4sA{2Jd@toK}wmlvcD zMPfWFUt%V|E~i^mo6b=T?u{e(SZ3N+^yTlu54Z*!>5TZ({K{OxgLqI@ampRRoVo@g zllfRAGH-C(9CjbTY^}=bGTeOZHsPi@O_hHS{rIgJWVLC@RT=MQAvkzBNLi#tGZVaH z_stNzoXhQOJbSH73RlE5ajDG$YWgz{b{C$XY>fo-cz3vH_;&>FdknY%PQalfol2^z} zY*!tam@plB{dTewSL84+z@=811lU}9XZOA9qL}In={*^fxc89v8R!c5WnFhaxm)8u zuz&i$*=)gfSfp$0reLML$7{;SdRrp$ooyc3Y==g+*g266c5P&>-NEbr$ZoqUa?ySl zNwBjcSzIgpR_P4f6c)uzYkUD}SY4M@xOv8(A$?ju)vn(yE${O3PN&)(()am6-Z z6>UegO%+V%X*rIvRpgC+u;blDI}F}SCpzrqT?6JykK}#+&dp=hsApfH#%IKnT!p*7 zr>KU8o6?-X8Rx`JT|i#ejpd(upmfZwD!^2WzGg43nnUtK_T(=){hqd4WLi#D?cEGm zJ3Vk$l$FJBYmFo?@Qav0)m(}s&kKIXa?%`i=sOA5&D&*Hc-?UsR<+F$RS~XkS*HG0q1W2d99ARHK-QUt)M+s)5vSS`IMsXEbo31m%Nw}a zVo@GHbsKS<*5D)>k1Oneo6ZSqs~bQK(#*XkBa~cxfKMzW*?b*sW;?EiA-EfI*%{(D z)}Ai#OA?#QVzZ7DjUZ4ZVLtKsu%28IwwL`$-c$?+%e3KWX~@+kMCZvA;c8hT{9bkp zH_2(?3b{3$F0Y4uV7}Lpb#z|2P{+ty`j*H@hp;7mpCxn%Z@}P6kAu4fJ(5}0x!vr7 zm+YUM1OIR_JQE+g>#iQjrU`t{``sCMMaM|F?!$?@o`mysXtw>B%u*K*eJ=82zI#gd z;Un)jWV5x@7!z!5ue~kdm9$yC)a1)wo9FVfxh8j;qjHJ)L4Ix4$U!&-dz;C!7ksV$ zumgvhoUjo87OUwmoMat*V={=0a05%*LuA0eb=;qBJ-hNLJRC2$Qt`Z&cO6}SRPmJ# zI+VM|NiGKyR(gsisFnjs;*Q15G!lMPUwSXCL}hZ;^Sr9!hF3$RQguZQd=?WjGlEmh4A>;@1T#gl$O!RSq`zno>Bgz5f^dyFI88e@n@1bR7>WWFO&|uY2UF{FIWBd-VTN>Crel7b})w8>xcXe0uZ6>H)7n#sH$?M0oqbp1esSI&r51HnV zWqanC7LqTdlvTY;^b&&w^@%}7@pxoZpg0fJ6 zIf^OB9lkOnaNQL%d(Bh5)GXH{O?}Pm$2@lm&^G|e_xfp$D z&PH?CE71;k=)SeLqgP=dr*yZX4c*Ns%*5y|_nKZ^O8h#7!>>hyaI5GO-V~F=7`ZC^ zR2~Q$v$lDEiL!}qD?7uj?xX)Dt@DFu$@#aME-gOO$whAc3~lxt zDZE|qV7_%F^l(>!oMk1Qk5}c&kj^WoSKF$3m~DV!(;Bs=tA5}1(E^ssV>3?QG7I%3 zvrS)wQ*jx3zzvfgwYn@$#TK{_yPJE4d^H}%>!vShop!hpKPPjW(X8b6PBW*dgSY8U zW~pv#=D?kqPd4{^UB}$uHJPc4|FMRdZ7P~e5HOOVWPf2JXh*O0KDv^RaW1EICzy`; zD^oHrqJBN#-00AQ(wJB`lL>TJ zkJxzJBu7|Prn?ocH9e(b?j8J7#pzr(gZ0!;K-i*-*k91ChoMzPd~LGQYkS34+>H;i zrz@sEaF4@lc%&BCUST6!CQNNJg_q1b;VhFhtYgxI5K+QIx@y=@cMLyXrj62fB}eKGtV3QwGtx~NI1>9Xj>rXn=k zUcB?G^?iD<&q+PKG!4zakSd>=-+1?v;^eGjak$g3*u#1J3NF5foQLAMH$7%4Byp?o zrhY?>J(cs;c+HPbn}{X(}k5WCD5%(tE+-nI8d1-i6f+4XWC6O2PrD2T1LjQx_DAHV858-#REYd(MC5O?FL*%K>a|H0D7)QH3(2vxjq&^210)^s=GbZ~ z73)MDmqN{SzBRI_D|vUU}u;k7tl$r1B2{c z`l8pF7_mbn^A?Gm-bC0{gGG6-izw~2=Bh8sctyl#o-guwr(9NVKApwR5aP=?&&%XO zP7u%Jb2^xR{{IxURbH{HU{EgP^*^2q8^(wEv7b^1^=gE=4l%sh{_HpxQnpztE|z%nqar<0u;?zEf3h&vxPaPi?n z_Yu9Ex}>egpv?ZL`{JV9AljS9oMQ68qw5Z3&;J`n4e(m0$*8F0Y5m0z){Hcg%a&YfmQ0^G?fk zawlH+m9Q=r;Mtzedp}gp5}hF%wDamR zLsKl}B`4FAg5G`-T)J;Xd+#E%Kh}$--Y9Vl2KWmvA7>jWs;irBjN0Y)s;TaoYU?ul z1zjyaYKOCnZSu$2D}D{;PNcH2!5#Bnu-9Y^)|q_4Ci8jlqiGzRHC=*RW>oOlEDJol zFUV$(1hws+;A^`u_}O*|gv%3DhDtKa&G2v1zsbRQY>=3af2#s}Zj@8UR&TFt?XQr(s9sR@LyJMC2v)i^%KG7Nh-k;ul<634SV4OooYJaa>Yl3{s2OpqO~+w-q=2 z8DbB!$tL@+nXsEuzUQZx=OG@He+;IxZl0a-2d;xr`TUCyfV1Pc#i(kt8Bdf z%O;_3k=68dmCZ5Nm)+xAGZCloKd5`9@s7%rP12y>UZO za=MU5s|3jtHy%d(TlpU={srmZOXjpZYWBz-W|3S=O|X(Y=}Piri_LX9 zGKFpM(kI&R)FxhAnW09RxmTHhYjzU??rHk!li)(IqTOW4I`g8kN9w`*`_Y&GLZ zPCbO^UI$kNGdj^H+v1h_%6 zqSevMh0@U6{6p2Wf}C_?l)&WjIa#T9>^C_0+TkfJhRz)kcj#Gs#+=Z3Fq8guU0qdF zw0R<@yCjk@CF?nTxLdY9>QZ-JzmoUqXup8>{+2X+XlqJmv!W^eH>u4H~tn{iriqn_O%s-wu2bt7cAI;qt zP%+qfaf+{UN!=+pu>v-9Ii_pOWCqG3@w=%&<+p$w_;cnrmGVmJao)4=oVO!Pt-cQH zs!ri(RX1FtYJ`VW%kVtEc3vF{_bRC;sv5eITC6#9>kZx~rZ&pVzjBwEE3GL-F739! zaVJjLH1GuWK*8$*i}oYehuO3vp>d3bCh?UkV*B7#YKKp$7F2>_ZZ8Rt?f90yC&{v& znQbeX3G%JU?w0e^Fu#PZ-=|``nJV@$3+rd|E}z6F@-LH5MomVU&PKUA&ci8NF8bTf zVx-N@Gye>(=`OBOgI@L$cl}mKTz#OYOGe`?8n|kctNl2Brgq_`eN=p`TCb$50s*z?n5<>`RY?#J~e|M zf8#=LxjRmVXcT0L0^WzDHTsCbco7u4$3$jU#IiC@K+8_yK8E053rA{e?~G}Uu2#p( zk2>-~zvum^AL9!+hWfEm_R^ze4^HVrb$R)X&MJ55B=RoZoy;Z*Lp`3=C{El$;mwHB z+lnb|%lQQVvKMhApFpoUBKniHn}WNW39@pNYYAujKU!-Xnp!Co)h^yVR;gjo)w{Zm zUK%FMvj6{ex(R4>xG3Bj z6wP(G7U!V-_L76>9nOLgxDD?4Wzq*45xVmQ9!yIl+K|Wl#uR{ zF6of&E{Qp3ulTO_`(yvkfC4k;?7h~rp69-=`x5WxB2!ECH5Ju&rjRORGOENVBVKDO z|J6d>&`H&QI*a;(RiYk~so$9s-8TQr-#9Dh+b#5?rpex}y}Su?t~{UKJp5#jaFJz_ zzvHX>NsN|l#4h=Rc+U5j6wPNb^|PRZ1BZVWUDR0gpHswI^$VKp>f(w@C0?M3cWO5$ z$~m~ye|5RNmiYE+xyoJzSKs@}wL!`CvzOJ4@xE|#xTs#-A+Maf%fxus%bhN!<{(yGHT+vK^J@8p%3*WzZ(WUl<;TFg;*KBlAF8WQJ1I&RLK+#d%M8gDq4#n@3Sg+SIBOF1t zSX1&ADu`sdm`H#&G@i~TbdXlu4-!M_NhrqfS|Lax-b50LMG-0LM&39Px#{+YFSx1U z^KMZ1q8k;y>6V8dyDQ;0E@|XHS0nPtjfhx$(7t%jpD7T$avg$`Zho-XT?>A}dx2y>-tBaWw%rd)zlLlF|`37y(BFF_=&ttZXSBpNmvb9__R^>r< zm0J!GdN+Od)AZXP!XJ+3szPDwCEC+<{GX!gPxq1eY;ti8 ztU8}UK@_P;Wo=fG9QGu7uqCKx`=Jl5Pn|<8%LMo<=mU-IF*lg5;u<>C=jkTCKrMPmI{e?om^3s+H#*L&Aa$uM)255&dsOrb zZ3Kq$7@gZCf*ti6=aOW>MYlNeIT@g>#hdUN@kjWX=oii`n}wUodf_RuLHK~|9)2lj zh7+qj;jHRT_)Bu+OQ@Jgait;!)vIteb&3CWB>Y~U4BwEq!-vTRUMnjy*PI>c3%$IJ zoD$TRU+A)OiB1ps|9@@*yfUmfT?x=gs6Wm0MWcO*u{J#b(b5WO9rG-foWVfuZMlifNxn-jgAsw4cLvR-{JAza%lYKu2do%WimvtBy2$Ga?-FpV4TRYZmV zQk3&%io*1+%Rz_ufiwG9Z$9U*8~Y7ZsMYMliM$c^CvO=vs1v+@ zuWT(p0W;2wZm^#R|4<<}#V_e*`xT&RR^^kgkC&)D9LvGbHs_#Y-tIPYrd{bvxFGpN z2Y4?T{r+NyH;2z{o7kZ)33Buxi=p)31l5ca)J+HjebBFGblv0?&Si`Fj{4XKd28m)v;40sfrSM-Rh6r$9X}M7u`ICxBos6#G6?!)FBGR;i6`qUhQ#fSKgg-ZH!==sd;UCSA z@KiG*yw}VNzc&ZN1?-z}N1HwZX)5x}wvXg>!z1n8+{je?p!CHf7n}^Pd^z?ow%SIp?+;G`jX=HH?K)-V=C4vVlDH_x2PY!q`%tM)o~;7Zccab zCtOLpkTb?&HwK+(F*N;8^kFw&Uv_o%OVWj-#Ks_v=p1AgSppP`?9LM-_gv-3E~mqD z-0pB6H!R%H)eKj3nZm_fD4feh;y$MZEL`I716wG3!nO|YuuH>haVF2O)g!%07_4U> zNAf_XbY>QvD;=yc9rQ4Bo-TAHde*y4Q&ZZufq>k{lqFALJ9Fs#Wb?#|#60muZ9`el z&gF!DMz*n^WD}cS)j&m9)V8A{9j-o^#p=2_jIQ9l+HSI=QmyO7;tHE?CXm20k1G~! z-(=|czp}f1&jdBEmx*bqV0U|@_oyp+20E#3>XojdGMEgi9e2TYb5W+Zt6{bEBPs4{ z*~6ugkK9Y9^?RUs4WXY8cW{8?7{$8CHczmZ>r ze7ml$2u#;<{!>@V&nj{;14>LD;VbW;I0)fss)t_NYeOExT=@^Gh@a6!q*8U%5jl-H z&|OuSB=mdCyC#UmUVd@hJLw*Iom`xU#L$~TPaqTOm(Av~*AzDE=S-Pj>ha{5wfA12 zZA@h{dX15Ktu^;mJSNk<>}GY(&PEZ~TWv-mm{_F2`TAI{Yzq3v*Ld$n_*YE|{{WxxN~6^j(~>%7 zpB!v*%Au%mN0}se&u9L>+TkY3gm`uUj=aLQ6?*%z_JH{lCCphU)o(cOCLj$jo!bRp zVS+B>I_pNR8MB#Ybiz98r?AlTi`BZHxTyc80!k!FDuI)~kdDxGdCa6Bb-bPm%uw}_ z`|$y3Pv^|P>Y(|+JsIO|qO$r6KkrUcmUP^&y|<=@m&R7{s*@Mf8=n3G>v?UMef$Ec?;D6SLfWw8`~wSjQ9fNi&{|p7aQPy|+Tb=h$bnqC9|r zjpOp8NhWuhuoy;Pptji}vZ37zu`;}%dcTHm=e)M=3eWm&eTQfNGTihNWLWJ$RkRGR z&?NE!e}RA7%AqK9YtZ`KfCQQX6b zUmKIw*jkLh6@3z#L;@;;3SKST()H+|Hib*pRh;xjiyLIxJYb6X&`T(N);yPoNd;85$FQ9hV!%Sk@ z%6FV=61pWK3#r~^Is3Fl(K4A-+P!#YU%B)yhlsNs=s~W6hyPkUhH>t+aZ5~xZ0MKi3U`s)!dJyFmcXt$6P%aD;=p!$8bhl!~FUv9EIzy z7CMrYmP868#Azl(o5I4iF< z`*AwHhw7LL7g1jNe_z4fDrAq_WcHQ4LAu5~QxdXYC)|Gv=%$7 zeHA2kEyuZIxDAG)l-Y@Iy0D(AB-q*e5bmrxd}}Ufsm; z=da)`*rIluxyrW_RV(VABlahi-_^r0nn}fH4;}$~Nw6XgWNm!SR}IxM@rU|dykgp! zm0FoeuN%Pxc^xy=Yg7Qzui?^jX2|Eqa9Vu9RNykxfy4F%YRpaEa+I0B*%V$^G-Xw6 zE0uvsv_au^iu&@*fudId#wA(sZ?oDR0|DSmJ}gZyG#&|K6B zhKa<%Jn>Itt(X(pO*+{X(L55S$COFdChx9Aq?a5MnJtf@b50$cmc4?@@_cYh7Sb=} z2n6{jbV6JcX;n>=jc#O4#V4$?;BomGhs1GvUS@TF;(8bZ%f2~em)vqc9F0tJC!N%> zVh=>CPdLZ3sf(m5Pv@N9#PvY|GnzB%Y}Wa8Y8*V;COAp5*l6~FqTXK9!W%{oQ)Md8 zMC=pyaB1(?6TOwXi#MB3d5#Y8^2q;;>&+JY_-}Ka`DJ?PQ`A)6tos z5AGDYClh+&az?#yUq{8c=220iMN|T`QcJc%^2D zBwh>&gCku9bjS^wc3*}bnB>E*}W{z^9?k+Y;XnR!@u{f-sntSYG2s3dxr z61u5Ux`axpQ>#+?z5GR=k$dpgr!*sEKl6ip0_(d86RpF{>vFiKVt~5Z_DrFajve@`h$!*K1 zgmzw33cEWhhus@h%&v|iIW?-HZOc`fD-qY#PIM$&Rj?NIuQj!Wt91vKHp!iwdsPVB{yo~7j`_= z^G4>Hw@nh8$nK^4*T?(}L--F;nxEod&F!L0XJ$gHTz+$p{Uig`cyqA}Ci+`W*jeaE z)}bTTlg`*^yOY`Fc@lu`$cfNA2jg7&(cYBb+snA5&eK6VF6-LAWJfy*w?s>rg*oVI zKEy$@fNp04@f8!lZ`}^pi*%ML=y}&d+c@NA*$dRH*HJP5i^BN^`{*4!@lWxvzeU4j zaP21&gLN8qwltzRUnkOGcR#pI2G}k)E|}z?G`TN>EG`thu@54D+w+n6_C%zwJr=3K zmBJp6Tp$5#lzAD+XHo>mbfuuF?jJk}_67ZdL^^)Zg6xJ3I&VZkVX9_&hliM=;VtH~ z@LS`DOW4HWu{K}$mi;zd#Ptu4bc^Vd9}K4z_wZY&$O4fWKSrrYYFRTpBe~c7XZ6YmHqsSmtB{E6nj{K%Ri%d|T!jskA@J#xn)6~-NI5jx@t7;lEy`dOAdj_-c^;NgdJ0 zRa$nhzNWT!%XIgu;wfEW2YM0C$5rvxPjUmii*6vQ#6Dg((b+pB8hROIVecoYylrSx zKay~nTUAjtaZa>{3OR&K!5Qiwu?+prdiB(8#htd5zUL+!gX>u>H>hJ~C)2(&sPrSw%6cd>}30eczx&#d)N=me4f=VoOO%%x5-nzVK#Gh@~&|@KW{Fo<2<|jIDPJ5 zcRR?u?SIH* zFTp(V3vTMVCZQ~0s>(d3x6H*Ew>aJZdQfzJG+(Ix5VgmfpVWM_5a;4qb;3CH$mH|l z*@j*LKIKMK?c?lU-a&i9)1(mQXU5jV1(5#}_#0eG|2Xf!Mcf&d$Fl0-ZiD(VQ_^!+(a z^{1{LLR~$<-J)t;VRpFg=DsUyQgX8Th77sE;dcrnAgP+I4Mn6wUVo zIo*6j!LO)sV(4hbLp>qXc@z~nn12pJ4R+4ml)0Ivju7+FO8>uXDGcX z8;WOYgd)05=%cR2>z5(VBn>4r5kH-I?H4yM$sT|2|7HyRm8j5L{##a?F4Wv+4$Z|& zbA$6+HkX`Cp^yF_?zsPo{&N9*el5j)ZzvqtMeO?r|NkAi1|N2v%0Q}K4U}d>WDT{4 zM0%lK^0O_KBUO3y%16Z`oT2gHu4eGE<04#O^Lkn6jqEb1z3%2SuQ*BBi8!~u(l^yL zy_f1~KJ_%I&bp?`$(`TYe8!p9qTG2e6Wf>U9gpN<_K*MATWTIJk9dl-Nn4y^apnGT})@c z?8=>A!E8_|&1h!djnp}vTW!^EKA}Fq&%i9Ua`afpg&? z?4tD>_XXsV($Je)>s54|db+=KUNp7;!eto+ucZJQq8sE6O){lSHFT!&;F4a@Q_XU{ z0mAxu(^V`0gr{S4_n8v&`hyKwi{inMaymhfbA<;7E1Z!}hbM>!;m&X_Dv_R&6h9zrvdCg)wH-+W&hM&3 z;%v>xQQILBYiC4y*=v!nZ6VTy7sGhUOHF@RFEbs@2$ZnxIH!Jtj^#^pi!(tR9Pw9R zI_8(#b$j`n9*;VDzO1I_%Dj5COhLCp>bmlIkW*eD`(<}<3wb7yW|?Vq&n7Gu=zN;AN!Jv*cGgpyFz;_UZE~9p|_abbRATml|Nd@+Gs8(ex4% zkvTD4+(2b_%by_6`$q2fe^e{|V`{XY*=qxfv?STM@%`7{RWF_Yhga4g3y-v&*Bz4S zVE?Te?#HSjbx5_U5m$J3LRy6gq;ryEIDl>s8#A=?}_pR~9ntNVibKHy7>%D^d zH}6Ey$@?j&>}3d2d#54~)US~>Drcmtx*pD@7KZQ0A>mlrFWf|q3@4RK!bilV@Gy}v zQdJC&Bo?pe{dW(3qbvV4)k*@WKL4OEo@)n^NBjls(9JG8E4Q%wa0})mt#g9hVxGyB zIDwb58?H0yygj6ET{JgH)-CI&wbT4c_~3rx*=eq(RWgI@FuOx2O{6Wl8c?O5sXK7JzJd}xMTSxNZjy!7FStLdFfB@p zEASn}zRR3<|EBA>nPl#z`0%E~pcyOHdIQ8^n2neDn{LpJyy}&KV4s=UmlO-U>u$8S zfhpBU*NB~{j912GMJb}Z^zOV$;pVX`wNeVEDDz5r+s4ZC^q`L0BJ^FOnety3uvOV# z2Sa%HhM9W;bZa=2m`YY+{?d*q{aC25n;>c4Ltl^>WqfJ$?43k2W*jBWDSVx8$q4$4 z^u+A)3kXj+O-X!ZOd0S_7BuzPhreeZZY1+^mE!uA-t#Y}shn?G%LD9W=Q))#QIMNV zCpm)uR>f42R%a(Q#E3TfA2O#Gi910@u{y}X6LiN=Xcs*y@|m6%*%qvfbPM)I3IvxU?;;-~TO+xG;gNPhlgQGbNaS9SAd+4` z2{$AQe60REyj~v)pV6no5A?n8d+kL6U4ZFVTPols5zjn{D5!7|-Gj<<0~52?!5LD} zHj@>xK#$fF^d{Y3U)9~o|L%r%qZh9F{<^Q3gtLB?zHg4el6(e>D}_02tDu7GXU3q8 zdrNjt6EyQXMP8c(KYRhQe@4z^M=wC`{cc@K)zHngNsWLwKcn5T31Wg@RogM@6}iQU-RIF2 zT-WGf?pX8%mnmK$(JtO}F*BYOyW;hd$K$<_yW+J`Gvi%W&EtIyu6wgLIy#O2A*!F> zDC(@gK9njXLUlro{Q;r9-n>vTZ+&Q++CmET`p|vIr<3K3P-QtbWW|8cA<;4PyQmpz zByxn(3FF_!C$z?`_WQfxemznU*$Hsf7WDtKS^Qfzt$)oX_3vBX58JoU+OG2C{N)vA z-dl!z;IG{0UN%U)(GVn_p*Xn+`QnH@fbw<}UHCfCl{3h+OflNKW8#=wg#vAYSSvb< zjIs)o`ZUzgFI-Qx&s|beT~Yd06TFJ<0y%yO{r9$#f64au_gb(;X` zLV0c3D9?_>cW@|by@`wJYtlv+H~FI9>93;y)D@yT>zdJpb;D?1w}`$Iw1_?#d>?&0 zs2F`I$Q=DT_!#xMJ`zGa96d!Lwo z*LMTeU(n5ykv-f?Bw&tCJw`^yC{o?dFu_Quz9yHlh-#vekWu+Sj#BHGjCIDtoCOct zO;JS67mBmZd6`SBl7Sm3uS4fJjHYO>`<&|y6Q85vh+8fW!9(2uJ8J?-z~8}%h`|@R z%`SKC?N3y{McpxGS;I(Hs0vR!je)Lcwwe!keO{0-`b2NkugC*(I+;#vPC~$#1X;L6 zklBN|Pf<0s%5U?t*xxYmmq+BF*qdP}!u>eN1EW!RA1A{TEkKI;Lk0(EN-t z>!6meq-(s8(Ed|qkU}!gLacRZxyR&P0sJ*!JnNa=Khe8&E`FY$ zjF0|$ZxG*(3hG*tzNuz**o473`!aGJiuw(EJ#vv0nZvllcH8@rgZ34_j*C3DDu~!5 zL9|OBB!+^3k3LB4Y6N**XOg~W20yvO!2A~_X-NaRNWe`^#JB@6X>T*!4*Fi zM+V$Ul-&7j4ph@`-DtbrZQ%^_*p^1g@&X;&EZoW!albt>ukZ_HV9sBc>D>@9LT?a- z^&L*#iRGZ6yiAD?cUfdEtcQd0X!wO}A5N}5WBocB*F;T@8>%|REmn2nwy8>SM^%lu zYpP@1Q#CE_J^wwTys%MK!XMQ5@GW&Ud|2gYZ5$mLuI@z|tEwdKtq**aS^q0z^>&$^ z6Vom-!ke@E`RI_=l8aW4B(^uy(<7mRac&ZWRA+IYo^vU$91hD|;!l!_&Ui`0bvkV4 zaW5U95B&%G?R4+38|1BV-SKdA@_LdE+XQAv6@I?}+>qp?eSWmtyxUyo?4RCoJHtCh z@8G;`=G{Uo^prI;0u3{@i>T5}Xvij1=)m8SEEgnw7#d^*`y7{&k(i zKd5heTlET$3fMcPvwH9JL(VOWR0p);YfPN{V3x@$wjRv12(zm{L~C*`&cFpI%BqN; z1deu9cu+~*Xf#o0(U_%Gi+ zX#(8Wobn^yMUuncUn^J7UH9ibK%Qvu7lGtHrwl|AEp>hp1 zMdc5W=IWRuB-)2mX;X^xT1zy`eN`9wCBK_F^gI_SVV9_{?Fu#5{>hwYJEW*1^!ab9 z=T3MP$u60~+~lShOl7;+`$29)W3kseFSpYKU&CpAu2(~i_PXGg8m=mPGw=nkRSCWQ z>VZ0|cBpG=s=7<=*JIQek5n;rOJz~#a1HHOVG@?^$XL9(V@L|_N(Eb6RhGF`4Cnl_ z{OpU^2T-k{>s~7dbLY+!i*aW!gZaIV9MJ9b9`GN@t*9;5k$AgM)|BIL-*%HE;K;-> znM_LBa5h*I-^l)=pRB>(l3v_|HxQqF^h*8286*%>gV&Jk z4!eE97v6qKFE&6KP@H6b(m-hT(H=Xn29!81Ckth0F1G<2;VMwTXihc1EzsX3)Li zJ;M$(nb~hYz(4=n2+~HWaoRyX(a)Gly&p)$bO)!Pce~ z6vbR*LcD|VbHL3G=DM=M5ceX|+pUcBaUCNAT(-zycRM^Bt@n8P+B03N@G4g?yvx-I zpK{H^|GGYCz~_Wtx_`niTn1*t10tv0J@T;Xqx(J>Ou*OM$8CjSUCFeE=i0^nh$i~A z9Y$R}m7Iaaa3R;YC#ZOP;D9r7mz$wBxsr4dA9{blTUw2GZ-v`S-gV`uKizitOevyI zxH{4IT!(1mT1V#)Riayn#L-Y4qOOa9Q5j_BsJ3!XXf53TIGF#{Sl=e7T>cSt&{JfW zmGzwJj_P%~S6*%N-pM=O29!&KWNzqCb^KbgC!T?^P}k@Bxj5ryko){Z^0@zz>DB`h z*WgwA=ODIU=N$W5WFS4@iI-I__sTMf`c6u(ty}@ept|ZO@5>Q#sGKgd@F~}O7@fZC^O*( ztswiu5B-jbbXhq^7H8cmA+Ix?4(MQ}Q|WMfCZ+a`&*?pyZhwqiq7unJaDc8QVSK5| z2-N_Zy{ahtq8@9?RZx{CD?Ov!1MP7PE8Mqo2Y31myndaa{}o0R^`A??opHqVf#p)( zm4;IhXP=V5au$ulUYpf!vA3vKW6cu!Q)6r)Dr8Lu?I0Y@@p`%WR<|=5Q5pP)g7aK( zS#J+c=~cnMdTC(w+MuA>AN*+U28&s_u9EQm8I$WOb{>?PGx|3?eRJ^r&9&tqF#SMI zP=Dw*6U-pk(gW;t{DAYQm)FCEJ8st6XJ(I0OodzmQcXv+{EMMwJhabY?YzbT_K_-( zh0^)1oJfpzIiov?!!0?Qm8Lj`7R!owcPqR6P_X-`5^lH3;lgN_3wRf73)Dx$m|M>A zc0=u~X4c^2o9lh6e}z~0jW;n!=6xMpRB3`KN(A4ia6~8>Y?Y~k4x}ijmOlk&QA~^y zZ&=++>x=Gp-H-g|9Ig>OxHD!Zm3?z)wYlv#?mhaH15~4PptlU8d(ji_YHL%IYP=6q zg5T*r%$G%(KV&ys<>#>CLgteEkE!S*okiW^Bz_GA#0~vIz0eiBXfw^rWA3BB$mfq^ z#&M7eO4(ih*Y<=z&7St}+2d#+cl%@98cw0pnHLX2``E$1Nl&T(>6t_6OP!HtV1thI z>Z$DBIJJ@eHII6YC-*Zvw0PS^L2nwq`ImHazonadglvs(Oe61sZtKn0{k)!fs@FiT z_NwZGUO9c!E3MynC3S>X=@-|YpF@9wuYSi%qK|ut^(HTwp5>+EJcTJ|0oNSxjm{KeYgd)LoNGrDdM^HGb>=xh^=J;ulXKFXAHeacERdup`EhqnG#Dx|~cv{U+%MK^zhIPR0766y$# zx`}v;{;FP7S+P2*u+UL?S>tkwA<-Gd`eV(?{@p5XSi9>U0uuQaxP_b zVs|v^jvX4c#a51*Y?DOwvoAxv?Tyf2doeW0{u5eePlpcMgP|98WhfOX5LI1`P=7es z8^}L>=xX6?eoSX>jMo#s$0Bx;bK+0sLn1B2dAF&|p@z$lT1I~5Zn|`*<#2h09qF>P z;yAU;U#KglqqpcOi;|;}6~#pk@t*f#zo-lqt114BZX!F>oEJ=eR=O6VAs*%c2Tm+c zMtOV1J>edl2|eK(^F0Y!N!|x zKbvHnhV#)~s-s~gq9t0yb&0Q2;2vs?I_01_jt4S{U2R*yx%vYi&<7GKijla7P7X@u zYTR*26|7@*f#>fYbb@CtGpCy3-YZughe!o-;s`}0iQmJtZ-p0eb!WL6qp`aGPC;8g!BoSi({k~%K{$65= zT`G>~CM2gP6^-;UmkEvP8+i2p1b5L-O|iR!a`puM_~*eK^9Aga#<;W>=s)!n-AWhb zXCG+(4tD>4l2jHt_h%!e?2yQ}wos&veID*>w}hwK$>B|QQ23hd7Y@0R;lfO&Te-90 zNiH5$R@KNQHy(G_wMdl66Qrg;pGVvd%7|}JqW?jS7!PMt8_u+QAas1`x7V5z%;eA3zHqvKbDWZc|F_S5F7Cj86VmFcB{J<=?6A|)Y6&c1YJdbquW7?87L!s=dXeh@^#QonjoJ{&56FW9!=*Wvsi{6_pxq( zaw2T|vR@r0n09o){zB})qc;b>VsCv})YmbvXo|~} zOrktJKz;}&@Gs4iAA^lDsXiqu=!bF`QJWft$bzwC}=T|@KLaMATu2OKl35uz6Tswk-YE_VxOo^0g0qVLnfv5Hbaq@C- zmw$6VKj}hQUk@f@qM^L1^U5N|m&?sf_+p#Lcbb5Urz3pa|IwFI(?@s=!)q%n{$Z}D zs!Yew!4=(WQ_(AJ=2f<_o^KzZ&n@AvL`Of-JoN{ds^m$m2#qmb)DrV;)KN1vDlq$_ z%G!%j!|eH}!**X(LKhp=z;%y`B{%V&6H)oZrBGj(Ooz}AC6Q!(aqW|_p)6`aXsDVQ zx~9g5@_Kzjy}SmYzr6gR|Gel>A^*PL887Huf0e(_pXy)r2l!9@=KeGPEB^{E(ZBo` z@J7$WDBb0K?l1Q4c_TRqxAMAs#l0`#n*N8Hd5apa`l#}%xQZixZl~N&%{N9ik>64u zWtD}$X)ooa|0IF?G0znBHqv7p|)0O?^3_u5#luJB?TqYAIj)j}*r zg}v2n6_@${q-Y_FFxPC0muI{fuKvU+dxn|FBUoT>#Vqd=o;FRcSx9F0lgXMePJ8-Q zJ^o1`3_c*3_72z z>M{6%x_DDjvrQ*eYk|0}Hi=m1A9a<$Nl;WSW%gYiy2wiu=2Jz0{~|Sskp)P_s(=fw zo;pY`q?_%lve`*=440v0+QZ$9KhL~lGMvzBWU_hHO)(Ue<-GK!g6E_4e2Vh&j27M& zeMK$Qf1<`5ss>V@^wbqq7w-5@IXX5;~u1&6ZRVB$6 zP7m3#khw!Aas$1F;j$(^$%agFn4OC*=Aam4CZq3dD%P5eBm>+;Pd|U0+oC9eKuE=oUQN^F$?Bm-Pt9kv)vSZ$9y}^-5}2;ojd9p z!2tXXV$?pA-p`>%B@<;h0ThMho*kD?5|T+@yKeN#yND^Q$gOxS%nI#sT_ojurEMqr z;*+Xq%Zq56S)4UKE|CW)+;%v6;y5EZy5+jI>!~Zi<6`gPJN+1BbGL&`?riY6I~62k zzcu!1@XS7-Tl_lMWeq4=LlfPM&|!By6z5V$Z>;6Wa`I> zuqG$N{A2{Dkn>d-vfo|Swo{yQ$qiKNMMp?EE!8;D7&<^b$N^PUUGWvl)I2H=vzWB# zc%#I16d;H2`L2`6M6Aq@TJ?J|MUwU|4~WT#y--t^nsF(4H4>r*2%_o%q*IgI08$Q?)w*aQ@R$SJk zd%HuX49wQNZZmFx)wr%_Qyq+kjXuyEv4c=!jyBWmH1i9ovbF3cI#CB8lbwPra~Ze% zU2<$+P~(0y_t4F6L6bd0XSYLi3EPDyyn$|uiUj{FPkl9gnae<+%K%BLq-#Z*SbyD? zl(F7C8ADul(}!&D7Muag<6z0^29lj|)84ZsaX7#hWyamv7J^~+E1vhAA_Ey8*=%lR zv$gSzcEJxniu}V^c>!myfKH#^y_St#5;cS!e>rZtLl6P4k$Lsf?N^H46jTBFQx<2o z@15Y{1cIm3sgbyaU&9jq&a75j^dOZ%S69=5#OjOSirg1jCdDvf(guD*#RSt1O z%on@hZu}0Rq6NK~yrMOEO`Fm7MO0t+rB@o&u(Q3q{q{GW&DESV_j}pxRnMCL&<&-= z?^lVrVOM{1+Hbyd_AXJ`CE z)x+)of*kZE%*?vsaIIjf;g3%(W8gf5^&as^|3-D%jx?uAq&a1W^%_si#q%~!pLD&2YHmcTb#WdGvzhF**E z|1bL;*GjG=c847g%iuGJ3X5R#Ru&H-r^Qk6Cv@Md47`{5-88QhJg;hQAs)b_aMXKo z9Sk*eI#kXpQs<`Z~ z#>x8Xyev(}KEEofvNF5Ppt`EG%x{ycj!bmx!rLsWLi|pc8s&++Auq|jav$r)N_eHe zQQ7@MSH6jiFU!aqA}2Gbbh5ulMQUU!dVA?)5`OQAE5&s8J2}n$1ea=({2C^3LAL?l z*cO=tXM(Zw@V<|bH*6=SruCSdmm}+}IDCO(oRW&m-nIl!RVi75D+|B=3{8sUvd}z~ z%_n1c@;QJdDq;%S*G=aK<&)wPi+L=n_+VKEX_`gSJp zFX>3+LizXu)%Zk+S%1jKxUUw%<@&)sBDO7(_cCBR+9gj z1TqdSYM3mgcc!*@Zlri@HoAwnOCI4-dS`Z92?I2#O=q*&tDM;9qd@NnA*2);3>i!_ zo7nsayRskII8%6C2R-DJO>5rTJb1dRneSX@Gs69DHbZ87P3H2KBFgq;7W;>&5AWw! zn_Vu!gMWTGzNvatlnGLu6}Q%8KM z@arhijNFzQ@QI3&3z!<##7B{dw9q`LgiDC_)GN6~2l0@KewN!v2md~Nme1vPBw-#! z*He^kS}Z<5gRiAk@KBzKL}ZnSr;dh=Y#x3lW%#t*6}MbYkLxWb#Z{Ec;}Xg1asP^Z z;Z>Y(d!r+-A_hc~i6HXO4X0lpPcLzFN$|P$pw?*$VXB5p1)aAWB#{F)ol60evn%A0 zBk1STiQPEpCPOS~0!J#Hea{3SnOp-YW)PoF0~ATc_zu&Xk5UJ(4U97(QW~1-yP6|ue#Ot6ElGnFwl!|Pc$Y4ZwTx5QgW#GiH~F$9>kya zyB4x7nTC})0~gfa$y~aN%&&*Y;`9s3>Q$)Jx67jXZ<$Y@lUei)nM&WImVPLGE~#(v ze*c5Aa4)~N8g=4Cm?A&Q0=k^6sgubr`hggw{}S`{K=KkRv2MnLmVeeI!}(OobfkJK z=|;0RZ!nMTL$pd6;F33@mo&r9vRCbJo5A(4?HyU~coQ_!{i<+LhmjDpQ53fqsYsua z9QZ-}Xf?bpCl=#?=RTL$NE7^IQ^{0JM89IqXheQXU+%rRZU*<=9{G~4a2n>_)u=vt zQH?C1CW15$%V9Q*%q4WuS16KS)EK^ALVnUVrjLiYE>c%Llxxu2Z-BJ$7i-yiXbY>= zmud-ml^Lp%8VO;)2bEYeRUZvYLsqj$K38S<6ZzB!nTo%`(Aj$;PsxAe0XqMi zHbaF6UiGlKg7)S?jID6?tNKeyQ3uo}rPm!mX_%4EhHN^Fi zEqRX0!RyQF>Y)NJFCW@3Q4HnbnanLm;dAcH^Z6~mF3*}*kjf$(9o8IlTED_M(wJ3g ztgWIB*d9v3bE(BXy@0vyTXzQD_Gza42UJ9CKr=WOea*-B;SC#(-ad9cc> zRzbErt6s>D%xE)vb7UQ_7iZWyauM$Jqqx@}qw{v&E}ZzYMH>HCkrusTa=#*k<{X@? zX@x_)5FGIpm}LjQjf=QG=Cvg!te#Gw-`iS1KNR2i-wj2vO`I z=p|4Q9N|5>4)OCD9)Nc;itDX;Des_lzreG4*qn!dewOF?AGv_9Cz&gd?;gsYti(Nx zP`_{ugoH2&irq4P{{X(ANBHWK*p;%B9S(`1Hcp&`D0hyElaTH1Q}O+0A3JB69l9S} zH0s9$@WE5Mqx4Yc+QO_c)m#PJjMH3Ccb%Gc0luJ?uy50t+wP+N;HK*M@a5Bs47#9r z6qFZ#2KB^%;0MtV{c`D`58cM`cuVKOVqPo~(XUGy%n+G^F=X*|7T*RH(KUW9HUv+} z<^0Q)(EXW^e(et7LJaHIWCk6v-=k6*LHg$=rZSIA51Sf#G^zo30OgqwWrnjPn7~{! z-QenNbwf#5`JUvioa{ayq17MNSs(&-kpuN6w9Eg=W;&;8s_UvBNZIMAf1zj4gWf?K z`U4HsT3roaXho3vg2Cdp6K8dK`-C%al=(y^_%+Cu`^;vu(!@cRE{kq#FrUUwJY;dq#wv57iFN;w zS@(oAfWU0zRGwHSwY_9!s*SHu4c50SRd*YYC#RLS%5L_Kz{z-FtNW>4f4?&M*qu-( za!>iI+(`eFYvsR3otRp@g_OL`t4Zc=Q%;#}#9P&aXMZ5v{ZXPD^xMj6rAV$0iF?#% z8+m63%NSV)RS+Bn=mOtzBJ4rt;dpsnERttnT$~oC+9 zk=E|vbh!`B>26uTZNlNc8kXREIfp%UuNxvClb4oM^pfRZ{r6=3T?z&8su+PCI(5`_p@34|o@$ z5goD@+0oB?EA3Id8=LV^&i5wSkhl!OI(kqPe-SW3NM z!dG<7NTEs39($WwZ>5>^|8B&u;jm^fb(!%AmlKP6oxxl3Y- zx{Br-H;`GRJwpDbA?0OnzS33OI~LyAJkmm)Zt&qzdAZYALdkRrD_zS_|Mj zb<>GtU7b^Yt*OT8@b|*aut>Ke=c1oXXJ#@P-GIaBi2TRgkO?7#RkR67yUVI(!?xXS ztE!W@e9zkNIIGo%URez_P64PC30276l}8MjK}=RFnlc28X|Y>x7Q=NXQCH`{UGj{Y zZXJ%2K3uiv-F@kD)4yw|9hR}?e3%)<8Fu_I2D(43Aq2V z%lB~QZrKj<6m+OvC_2~KH*y)L&RBkuS+=K|Z)4R4drY0OZ&3iJ=Ja0CD~9fm6bN$S z_M;`Z?OBv{CCShEg&lMaKH)p;t|{evuPTa*o^ro8TTZ9L+{U{G&E|!C$$lM67rhMm zN>?CA_rwd3kj~X+G_*eoLCV}q@<>n13vLZv^RcAdbwaCH8xK$kIg9Uj46KIUob6kq zmZ?q6UDjO|1>Ff|?T4Y$9ujZup8waXF19O0XFEd_qL=Z3m1!%))qW;MRH2KT#z6nm zgWUsqv=4MXI+rmHjXTQNQ?{(xL{94hsIB8+st&N#YrZm+|S(T5eOlng^ zCF2B@0oG<|oO$iwaKe#bZ@(iAdwLmrk_^t1)Q{&_A1+Z(otMA5V{(JrDPOZTe3{)O$#=l%<|!60g}@qGUa@ucjQf0%#S`##FPCb8RXE<$IxMWytTyV!B^N+xsjvo+yo93v~s^~|GB z%kuIOvloFoEsctjdFk&JXWuNx{Gp;+#Oq|bh~v4Yit_9hRj8_~s`u<11-Sb-Rp22{ ztFFozCFufWP*3<9uAuuqCcjYIQS&XAFX^UUklmSr*OIH)S*G)j4n&{T3YA}ZcIMQw zpm-qSV3{0p&6w+?z~y+x)#c1n2n|b0QfcGpn*2+h^0%#mf+dArVPBy#`GtqJy;;^o9+=ykv2HF`?)@5 zx*N&8JjU#Y_;Uu=Wvp!`cGzj+Hkl6zm|0bHSH)0wfL{IYB4GV4&iuEhh(+sLhjm!dhS?|U@cTv6#p2^9wbrIr4uRqvY%i zW8!D#e0`bu4G?+dKs1~E{-5TXojy@ED88AX_NJ#&NQKHN0VH25b_l#x)CXbi=nQg| zs18B5HxscXaw42x)H@^$B~=i4I0aT!?db(JrXyZkG{IZhL>1&@m{Qc{BveKncIn~Q zeB|VC0!>k@Ohb0_8`$dysOl#}J8s9*RF({m^qf$AJWKzXs}O6JyF1X%FLD2zHfgC3 zU)p2lfIW%w=?b%}=P0V8sj73@3Km8iF15OL8Z+ySc91>H3V0S~=^6Xp9w2df3!Kxx zY(KZ%{^9o7+wLUUPq)aR`VS&vd`RBe-7Hu-TSQmxpsDoCcTfR6aL+|5bRsnbQxWkQ z{O9zNXO`!BjWOUw_PHqa1!B@xjV|d|xBU&6vP@ zG==MTP7`C$>UZWh8ruJsOvH_9e~^P zpXbVwsvhsMhSj`CjN+s{gP#3-)QWS}FHlRWz)VW-#wcS4tCtY6UO?!Mvo%x#6v>%M z_buukqHEhpb^ANrjdrpV-j|_tf~L6$Q}5GalZzEc-B02=waQBph>g33+HavtD>{$` zmKz@EE1MrhK_M{!J$OZndd_|)9-3cZqc0-g;4Iw!2#FlfvT@Z7#3?t4SuHvOc&syE zrv1jAHJHw32e@F>ICZC`2Ya9X(^5`LEx7ZNiS**Q`wq?42vOPnA)?$r)Ch0H0!}Ku z=(N_r(~`q>rSm!w68myF3ng_662`Kblk$Z=F1P6Ya*W=|>2W(X;{UO97Eo0+TO6O6 zbFsU-ySuv!y8{cm16xt-#_kpa^|K2V1G_u1yIYZaX6F5Lz4g|4fFB0;p0j7~f9<{W zi`&petY(s&C40Jq<#4x|oZuFbQ|ToqlLI!&ji9ewF1orSL^re@z2PYa!vT+XrC9F1 zCa3Nkx{r0tx5MZ~>e!N`#W!Rg>!>44KRw?BvL|o0F2Px#%mIB#U)PKEJKb4pT|g%` zUN^V7v!20e)sb|mGR)cOsIqaXwTq7sr>1# zhnuu&iLo-mME;wdsg_J9I`O2(d-4B#`FzTI~bNMOlQUS=>y{Tn!Qz5*pC(t z>bliT02w()7JmY|%x0pY*&r$y!MxiVJbx$sn?tf{WBdt!&z5JZtI6mD;u~CRy5NWD z<$T~{0^5>=g<4K+TLF}*lrtVKY6FS+r(w!o*k{TSVd#PvFo_OQW2pS0Os994N`0u4 z#pMDV1U=;(s%97)#UIM}^wQBHhWaQHp%YKe$HWS@Njdb_N#$Fa4Thr-97kC?nL7Nw zwqSgHWoveumPDbESe`(Y`w+z8H@^DBuu!?tXq3fQUrW`rO_UG183CHrDpMjhL8ZflcetLpdM?`2ux=e-$1b*b>UaK zkP5KC)8u~9uO}n* zDZRO-;5b!YvlPGDU~)<8sNOhpR`OFl11T%YnL3H2`v>HN7ll8ZDT2uDuMN+VKn#Z~ z*iW9=8!BBKwjX5X^(l%wvVz*g70Bz;lzWy-82w>s6GDqe6=6pgOr3)n>LS{BdKd z`b;KkbsY5t<#im58?-1 z3=S|zbqA?sQx7R7r{pv$a$~ZRGH5HlyT`;Wo~zSt6LHMV#K*7pp?eXvCwo!#0yy#@ z6rjWCK?bprb|~4(lX$*X*&+Odi_Js&3)fy@-^Obchz6!HDN3nq)Rg?x@FHv@DPqf# z2AP|$lY_6iAPEobZ?hjJd!CH|QP^mj+v(&r_cg`YL!K9;K9?;ELRkLa=lRKqFGAu7 zIe9$EZAr)M4r(yeG$SFi1If;Vz|^L*yLE%D&X%*O>`pw-tQ{L%rzYBz@nWe6C!sP* z#HLHB%u_gAE<*W#mLB1oOo&Ic7#MqVc*o&{3iM$QRt;2B8JUlNl4f$*?qVJe zVj`?Bo8aRs&NhpTY*E46#%mQ{q+#zYN!vE3&0`DNXLu4~hlZq}Z9dgd`!&(&nCtR!<`!lS%mbdBo|!hDyux|> zMt>1L=7Y%2_LV9mHTse3IF^lCn?S!Wkq-5qGdZ?hDs#b!R=206zkM!wUAdcbs@E{w zDe*egK?f2j<}3&;pxfU--6ew3eRz2xm4%mna>0>nuJVnElQ(G=x+{--R#kGQ83lC zMZo@D@-B~~pBziST#Ekqy{X8ijoGC9KjL@gWD80!Hg;^mH~R+XTSlj~uIV(^eq3Fg z=DM}hQI~TD>qO2R{YZuBO+3pz*`AU^1*2X64fENHT?VggLfHXy@|u_|N}x@j33q)H zbxVA8(1Loh?oAkYY%y6mYct_S&d&5v0H(MM+ahc8U)!1VW*|wx z6U=XBWOAm>Eu74!^bY!@LuRW!Z`Po{TY@@oF&Otk@Uyw>Or8%Gz8?L}5$53gXvDnw zC|KHWTZV44sTmGqcUAWQL4y#J+{hlUV_l$_fQSHOCo02o87>N=sNumhi{@jh@`ZXyN z8QDD561-|5Q{w}Z9^Ur1=mYMuhfe)Bs@@{#`Fqf(uVlCNZLxxTXt1p<8{%!x58fNw z`j91E19k62wagr)Bl|{@Vk&lmmvAzgdZfR$ax`g*(QG$X_%;&Zw9jfZ=gfKXFXt$d zh++7WDVKb>5_T3jTs38g^^v#1?;I*@KF-;OocX=PJ+!eaVc0v^K+@v6id!hI=9pY; zm-LWA7l{t@KYJR4V=eFQIQ^ULBLA6|bk8kyO1kM2>=o&+C+gffguSAd^)c6r{xL7k zA3v_?X0^N1Y;~`jaQC~p4VwG~3^tCgi%O~sILj#Tlm)gSL7O8 z_A|0UzQg!<#4eixy<%R0a|2C4d+_ezV6MUFp*Mw#>}@(WFt_z z_V_;g%G#VA4MCJT!mb9OTbqdXBv=lCd+kS;=KpUa;sp?{=X7^Qz7^@zaZs(f=;b=F zSFeP4q*90+__F&u?`)X!2(8gwG)I?hCr<=4AHeJ$qiwzk%X!(7_DQ!N2~+is`{}#ABmUTXXzg!sH(dbNJHvI6 zukUl8edd*mC7;@CC{?P-Sv=#?j*`G@wa30ACAvsrgP0M zcMfw3gz|A2&h-Vh0nWHopazlZi(L)|-4y&K4%-Wlk&QkCWHm4E%nLR#triaH*hN)* z(MBD%W7r|G0vFeQ^@uxrfw_xX>kTTJpX#}eR=d$qOw~9ANm(n;j+XTLol2x1!Yf9A z`z~i2TW?iTmmu9VT6V@IF+vZO^XTNZaju@$q#x_fY@5j=(ivmxqMjIIcGx{;n*E3d zA-gTl{?&wbGJDW=+V%X`?rdev34-^AeSEuh5iv(s5uBjmof?(|scv zxxKKM$F;%XkOp3(q&%;EIj!2F?eD_Bpcg8UUeaH8lhw(;%!DHPms^u8*2;37TTTX{ zTkh&+kWJheXe!=``tCW=(p}G-JBqm%MLYf8A-Ij#?sl6&_d`=rfF$w{)awo4b)Bf| zIl&yGs9Trm0=I%xF8r5}kW}>JXKk%ZiCVfmeMo7MfmtCY)$*5{Q+#x@aAgobnWAG* zJu@&nlt=l?c1#zU(Cws=pA=<4NCTKNL-E60;o}?b_}}&rb!?GHDEf+wqM~5)lJLbpY@MKTbk z%wj%sb~}29Lbd_BcU$4GYA@b#-32+hV5;C`DIm_`vcJF<<_qSsy^0qq5-;u>y1*Zt zz%ft^W#MeD1WMhOj|0K0gKT~~&DO9}Y$rY+Ye(YQ9bixJ)k9G2&wQ_oGcy(#N=nfZ z{&^Vc?X{$M->^;5Hnd?YPdhP$k2^(c@m91D>Cns7lC?x1n8E3?k_h2C%I6QHulR+2 zB(@4*TAju=mo+?Bhs7Vb+;39J_h@;a%NFthHSq>d^=T&FeSEc6{-8c41pUgb#=xJC zW^?v_Pum)$Ww( z&^vxGbL3t#L5_qss%%C{Ix~4s&zHOO7C8gfv^V;RmL&Vtg)b^cK4TvG=k)B9OGf{k zfYgjQ%)@bYWzw_aFgaco1=#ygL$@WDI+vJ7cNC$|;8_i3LTtu!oesq5oe43A!JvXo zOghNowj7#=WQHBR^i7Z1#`KuV@lFq=a&8x~=(;nR__8dj%BH3E zNl(?@RtCQxKu5g-_0LiH6~)9G^Bnx)rF_T?aL?ReZ_hEVwR}C4SGx*Ifmo! z0Xd~!G4ExxcWhj?O#L8p=C|AGX}(Mmyf# z?vsnj^uLS})3r@y29ZaWgC%K>uA&#)y@rZ$aM`W+SWNU6@kM9xl(gVIwl0`@b>$kU>CN7Tp87Ra<)qVHuXTFqAZL*7=#0g0HJ>cPP5KiVwV)R0Ltjw) z44if<_M{a>Gtj`S;^_$@{kaD&>1Of?3fR%{zOG({CPU zW;0H=G^in;lSj0h=WiMcz|JV&Dw?aPp)d0co|j4Sk)~y5Rc^CRmZ#FRLeV>t=U^qz zaRg}pJAQ8*kl(C$P%H3fbwpt~6~FyHls0eePmvkMt(kbuL~)-x>Y}&-^Y)u}AsKvJ z9vO^3Z;D(oVQu28Yw`h3_D|=G1Za{Y4);*cq0tmYV!xkols(uMg;|F#sIXve{(SK*)%0{Mg4)owT(227x zl&?F3oenm!)ie_&H&eqdm^0KfQgcyUS0eGF7hTO#n^9ikeTicGO(ro%ROe~$0S7RP znPCUd^=0_xH+TxjoP=5KZt}}qu**Mm2VSRsoGAfR;vt;1gJd`zY9t-22dt?Ge2>5R z2%B>R7IG$gMLM!KvlNqAVrGpG)X4Mj5dYDu&9^`3SyJIyDZ<=YLngD0_%}9_SJ_i_ z5afQN@ngR&U6|>}eFn0J=Vb_cZwGSE4KjgzJ(>SDi|<*?&$tnF26@-~oKL9RUNUP_ z*{`y+jglSMLqDC52l)Ce+*o#jihxX@aI%0BqF?Zn-ND>z(a~g+4tmy1WN#Eu3q?-6 zPcaqyMyZIa|Ec%4;5wSh+|=C;0}syt@_Edrryq+?|EA4$^9DrZIy(A;=89eq=CKeL z+HAA}Q^{HkGC$o3=BYc&+;LZO?Zwk^-8^!?@-aUAQ*ImSR)_BZmvbl43y0d5XrW(_ zZuUduoXl4^2VaTnTCj0D177b6D0|!U9FL(RScq~h z1i#c4-s?~%xe%tf#qt!2`y1Q?ujpc>X>*ka3_>^~K+(H48s?J^7du z;WB#t^Jrdfv#0B)&7v|h>$PNa_+l}E6w#F`pWLU0$#d#BJLO`kmuQ-QsIf|;fR@fp z<>P!-v2eM@#`EgK{zHIu=cjtBKB%*N?<(~eAINQ0Nu2{*JOBb4N+-Eem4Yw*0oSq} z4_Z(7kDMry-rD1N2mm#c=<`xX%1&Q z3FY(=5~9ANTF8o8vVmx!h6ps_A~ipqmS@CE`9xfWT|OjZ$@QovXZ>U0n}JIVgo~di zGlM<2+=n-WE4QIWox;Es;y+T^@9Z{X4fcTH>zuBJlC+jd;pndRm~>Y zmCg7ax2Sh|qq?CNv;8DUu{n+o79|dSV5mMTcY>Qn=tA*Z3-Duu>l~iFqvoc0N^cN_jwT_!L3SJt#Zg97CpEFD zJ!kyTH+G1p71%(D@ifU&?eSFZ(Yg8vBhmtn~!HY2Y6{#oD%7&(@FnMS#Uj; zIqe7B#ak-)3lx$s=}6wdK)yBi&3jZCUr=X6F;QDH6(8SlzN07pEOZ>U0pD5O{6Wis z!q5ByJN^3##<%TEW_sw7c0O3_LDPsowKa2J7wbz#(**FWJ$9IVV#hG!O=7;AV=I#J z&=l>uKL}5M;o*tR%}m<_P3IVDcZjGYF2l6`5ed+{{IC_|Jx=2j+`0She7VPNlDoNk zcUiWJ*psOEj)C$WmTT-m*o&R=Kf8)Md_2#2NBNNF>Zf&NQgMcUZxUQzSuqmkp64B8 zDHB?fqg3}U=7dOLj`1GuLtVB>jMNJRIw;WucCm`i%@&(zn^Ru`cUT9WI>N@&&1_s< z!p7HWZDMeMv}j&(u`9R)40jE^+O(if_RvGj2;B)ab6rl=LgpabA|th{W18ojua|UR z&e*Lcgk;Wzx)f+~5WLBG5RHT)9CYQ5p3au^2+}5gz+q;Tz0gyxzN=G~N{}XambU?*K104TB>@?laO!h&J<1`3G`*TeM;s9Ajm$zA^ zBO$pc`Cq>9Md03S5Df?Nf$a1L?8CVLLweMNtDR;( zs@Cpm1v|tSp=u3Ai#VC7Dadr=BrHzX=FlzN5X-1}8}P#HF|FWl^V9!o?$q;~QZu=; z>(FV$utVYIHrUbV)l0!<{s7qt!&yI*=eCDFNV4WDu$P4J@`dG7x4t~;b_H)5LF&dd zIoe$$M}V_WLczZdZ_ictJX7O+ocbT=23%O^*s2RTq^C_>m6sD^4vv~%%ot5XnA{-N zf#J_lgGm|AcF-s1_CBO0VCB{OVk85js4M_yt96>5vC3uLW* zwSPArRaDhQ5!IhFZ8`YU8C({hNo-6acc7r320G7H8*~!W(WZsSm!MUr#T~gGP4ZZ} zf%fPsD$u265~Y+!{6(cvMc7_yqYY9ML4vz*x6~k=Ew`1Vpr&(T+QRH4s_dj;gGgz1 z+WUbsj{{X&X^WCcN~S#dLk~!8duG?GhjsvIaplll`KSfxpNG;n`!S8wre`i&@KWc!%&%U~fZv<}zszs$v%fpZHD6iY zRck&n&%WlpeP%M*d!`_s-imlx>e}7R!kajs)`Jpm=04p6nh=4)=K;!di^?aL4Yy4} z1A~|zcA=|!41yJdG@XJXooEZnISr-x9&sGS+gy4Xf2P0+Xt#6Oo-j;7G9S}aC3>0; z^odjX{2<=cZ=3*y#bDHLe)52*Mm}6lTxT)x??0jc2oqV=GSOR&$Me-64@f8Ss+x*! zP8G6Ha*(MNLwqB>DLp>xYMx`Zt7jV?l2v$0=Gv{E@nl^E;4SIF4uLjyoTrZM!Y=FD zp7iWZ^I@aO2lLXoVGcUS&17c}tkp&n2XA8pIQ|gyMd{UA6DGGa9h^1aU}k5-t`{Il z=#~vY-@6I?{ed;04QEXmv6y`1epJ7DsF@3JPNkwVjAvp}mkKf|Hp9U+6l81({(%GZ z%-6v7o}oAUNJi2(CYFCTD(5F3Z^@vZ;*&7iYkyK8tNk?&ra=U-0`CzJjd6pVPhxr+y95 zO_bpbE5tdSL(FEX4`#lf!M!k%nQIjN?I8BlbY-e+#ynP@x|de;F`q%A4%sLw+({H~ z3v?pe9j3M-`ADht05om2%qur1`P2!y1XGLFuh}y9(T&RSIPYyf@U= zT_}S`P*bbu%pw72(L*$PJKTC=GJ3tPuD@sqXIq)81oKZ}x2-72uh-&g<2DzA(6vm5 z>)62epLVOm>z2oDR+z+?4C1g>A|;yGF=iiIn`hcybXPAeIuoAYi%i+2@Pe;mz7?>b zZE%uoQ%%fwRlyW;3gfmZVpchoaN#s1oufPZ{6=%lGmqIBe%9G;HaQ2(7$@A+a!zqZ zUo|JxOEU_eWD!)DPk9Gt%ho6_N8mMDVpoU*wlQc+EI77s8$%4{NzIEZ_nB$IiPTqA zGZVl_m!dZM57qt=6d&h!9qyyuVdthB6WwDbT*0N#K-NX6)EZu>o4msmo&oHo3$yWN z(*$>Q8JPo}XE*Sc_2|JLalfPysAK69mvgT?rkBfxQmZqb>P5_SC+G!VFd14o-X>Ii zxSEr+QQkhHI&25k94Zw(q!+9_3U8v9*-6@ZRJ>$-{=$AUC+LK?u#sUoC)+Hrx-mA4 z`m~d?X$$I}&Gf+A&2tn45u9M5<^j_K`{}86bLh?&av!WV#q57*eg6Kg2s4%reZD;p zK6?so_bAzoVdfO4^Ig9FhNdww`lI4P8$a&k$)Xs2Xnin*9y}L8@I1@VYwYEDx(oyQ z63*ur=!JpZbm6dn;Q4&dGxywXW3JnX=5-Cz-cpg4Gp@RrPw%{xGjAih@G#L7o$oTZ z-TP9)Y^0K9R3Y@c?B*n0bh=u|=B#6QT|bhWl9tJ}np&s2s11Mj-?7DGHTt5(YMGkJ z|Bp~}RBIKa3aTE;lHzv>H^XAkg&y)6-OeHymA33VN{2V(zQ~M%xiH;PMfArtWjGbO zFINT_{%au2letH$n*#V)(({hTpu_qkW^iW=)fYq`dfndogcwA2hvsFvtp@(L5>3~4@dE_s7^wy` z!28;OF%?FK7T0uEZ`sFuO)pTVbSN3}N7)f}9WBOl^+$hI8O?7+;s%?ZzSHx)L$mgb z6n`?C?K#fSy-JF;DzBKSYKbArkF<}0Br;B>yIaZZ8%9EFBpbjTFqpignWB&(7i6tC zj!H(Mu&T<59K>eM{qz?PRXUP$o*5r!Cwb*FxcZ|aY>kSrwsGnIqER$x5U`l|<5M_A zO;(=Y{5;2noI>=`MNAT>B*=JWb41lO6VL?KLj90H^#?7QYSxqGFc8IlWqIEuX4BCV z5f2t9n;ppp+UhvF5|UVW9|mr-4JH$HGo9N>+_^8fH)Dt~q|TRQd(2PWoF2Lt`$)#J zk7TwerRSq9nJW~Ze{`pdNOy|3=*~dnI*)Aqg<_gJSM=rAo4P@wD*Ldjkekww`qqzH zw$iPN9=5bdMICF;EVWr@`lrw=XJU)d#!^FnGJk%gZ~SOW+h4HH65cbum_?d*2sq*a zPREOIl22?Q^u7gP`|}DP6!AXzon4!b=OGHoRZvo$W_Gh7Nm{&Bqhp0(D;yr@=P5<42qf$(gq6qLd4y zgW72`F#o1Qou0uK6Ztq#D|4c?vGc@Gp5dkRV8>B9y}_xJ5LaC(R8?KY6Dr;p=2jkH z`pC-U!HuVvJcmmufog;rp}m}s2LB=&{V0W3!`UhGIVWXavdB|8ccoX|W@fv9*6ko0 z!_btgKy>`JnKGLHtMoxDaj*7ar)eqt0g}7-I(XD(aw>vARsBd|tPGc&n<|vb z9uTp3vc8+C;(-Z-1s(^YJ6&utE5M_6q9Z;253>q2_sL&>PxtZ%#@GkeDIpy}YCNb} z*xFWrj;#`@wdC93=kEoAH_0B6>!{Nw>>v5m#-sa9i6bSo>d4%*2rl;q$)E}FNmQrS z45f$L4Ayxc2TV*-{0ovp)rc&hKI)sDfSO~W+Q($I*zQn6P?|NhYZWLv3bWCiWNp=F zQ&_#`bo@de6bFO=_c`ZFX}JL%_j^vz5}YiPz##6>jr=`Z`pI|b3r{iet+7efSX+uN zyoK`pHxrCjiBPhBhqJxGzSq6G$t+IM4JswnAN} zf4l>#5J^AzoUEx&Xnl=XO{KU3J|At0aqd<{InazdpgZWwD0z$1{|#>9H@q76c(;z* zGrVRO+HZRcmeWvsC8Xu;ek~n@ll7$k4n|LwP%W5Xo zrRagD@ILfFvsKZ&w~0{FJO#PgOKqEpx}>MB%l6~WqLLm>?Zg2Nu2e{07u{iFYBA_@XBQU!&Q|dH;j$( zoUXOySDvaga8c#)fVIP)I|5(s0<=*(LD#OKos5Dj%tAI0ndJW%Xnck+CpU2(@6fAp zqXf$7x(S?77CwGP#d8!@%1jhIe&QzSV;|{aeb`8!ik+!>>9H%}QEkq=)(4JqG8o@l zQ8~K4lIi_H_{(piKi6>iMNGthKM$AsDpYVA z`hnNxfSt*a95W9=&-)o18Tx9EXz|p)C#4(bSBL%3q zue?Bic!J6C2<*aPdw^H=5YPQ?(DJpY^k`b~eBmyYs_$OW876#wQQ_Bi-wd|X$}loE@0?(V1*DA%&G!=k8|?o<-{Ng=-F zG$*&Yop|qb5HFn0Y^dxZb~ydSSf{_J$9}Z5PH*u|brV;?>JQ-J+MI)%f|%9hx+E? zJ^W<%QWIBz;j@Jp)#g(CoipuJJprBWShDfP!PHN(?@)cDPvkvxt(@RNw-r>EaZ+Q1=dqXEh zyZXyJk=)8i^T=DwzVJ>ZKl-6H-hv{LJ6>cbL#eEr9dBAc>F@3VGyNtPxjEHAx3PNS z4p8y*WK|JG`*1d>gmFnTk3M=DZvQ~_20uq(+l4c^Ip=dtHg^>REz6`Tp@SrSLyi}B zc|DKw8iwM7oP`g&H%M7+87gz&kd!i`Vn3w{6C)L!27J+BvO2D_sp2)vlOYQ|xzk7F zaXO01P7`+fRUy}-uo&cI6C>C|FxE*WCOB!hGIQkS#qIifp zVznxX?lK?g9cjd6`k;9{-yNwOC2$%hlwFy7E8y(QNL`I%r!l#;7MA>KcoRrPLr`7L#UZ=_9%wgQQW%OvvecN5d!hLmf+l7r zj>P{sw;zy_os9mwB{^0oLYPvsknWL=Suh3tNg}ZrBs+P>!Bn~=#Q zzp}O}dmrlKDfZ=Tt-vdtO?|csw(c&qAcXJhM_*GEmDXS9(LN@|0iZ59=rnJ`6;1;4 zDGs0g8YjVO@(sG<0jh{&DjVHi8uC%oo5m<$N|8*Jk-i}gF8klyrEly^n6>qW+J;Z& z0u%HjGm2-lIa?NTkzn%;hucATqaaQQU$DZopoAYao9j?+qR+&M{@K*R8<<-^B#Z4j zC-w!dGkku5gr0{u)Gb-p`AN>|YQN}ER8T+cI8%X*VSiOhcf>T38$Q|I_*}O#fxTf8 zO;1nktHQ~gcbH|_l%WQY{J&TwcfwU==am`^dmHLxCylurTRj^%O+BrgX`L_e`|FVo(-7fT63OtMe8sCJxTy)Tz?eK-E2FQp2J{; z=7WQRIMbiywC~}~W7DZ-V{1ow_}msS4FlB!^7pR6s9wf}as{v2Z5$~$0MsX#nP~iN z4i!8Wvu+&t-nj6*@vI+zMhW`p*eWL#yBuA6E6&#-{{B7o7BkB{T(Aw%!z2=Pob(+F z@LD$KY)oUPqhN?2{{e;>rB+FBsRU*msa7l0RlQ3cArEdh+qrk>YwRUG%e9BE=kV(t z)CHYEJtFHOiXJ6BGk0ewqu1Q6KTUixkG{F_>^+zF*v)GXqIuZkc4TAkNW0rz z#MgW6Niv#mxZmv?H$Lj(?C?-!$Q`K1hK%;$dDJf*3|=G-51RkC^w?*}3&ODuX1Z3?!yk|dy~9^#<`d{?=Yr#R zvU|CY=Aq~q3?|haHCkzAh|D%QNd8@(td%4i^uX;=O0&a=C-IB>(cE+4*WBl9KzTxD z(=&6#eQEZ)@62}hhuQ4npLElb`dWmKb?kqxpAC2W@G}nQXB=+@{?;sLq3hu>8KLLe z?VQ2y;Y))G2)4!_ zkmy$N#r-G8qTwx~4zp+Gk_?njdF_6~zQn`*mJY92ZWV#Yasc%*2fMN#oBEtuO;vlY z+{RZ$>q@w#3ZO5*4XQt*UO$B&YZ;yT06c8f(buPu0kHqm>Fzf$X`R(8@ukjX&%sPl zi|Way7iN|9=rj(4lHRAwiw3Jo$yAkJ#zZGpiVN<6%@>*2&6R*Oso$hLMUrO_juS8h z^~!ACSO$;-G8|R%XfUZ!pfv;O?^=NF-YOOFBn z>jRtIk_oaLN}CLz4+b9T0ee>VqY|6PUD%&KuMrB-(#)(mc-m5kmNE`qog$CWC56gM zpQ<@WEovDh(yAEnxryM9GNBnN$@Z)!YzL%oB&mLovzN`px7j89i|nFgGOH)QEK8Pt zJx@#7#M4bS_VklAJ%eOnPk))n(_OxE+R6y0Az4P{Wg91(OzXsuw{cp}A#tVws+z<& zO>UA2vy{ZJE;1n;=3^T}Zi5LM0TNsX*LwzD!zjGs_i^r?HtE4%qQRhUa>i_fbDPBH zery9R#@!GbeEYF^W)8q)%m=?7N|)JzQ^yw!yF3ciqTDw*K)sWJU>Q9WK4UhTn9bC~ z6DSkz(nr6gr)I7oceSH-sAWo2=kuc4ppE!}$LWQQc5kvH=%jt>?jQwVmA&T9vlm=Y zb@GBwkrZ&+U0~0+Yq@ri?tYlsamGG#ui}xqX*KmSK7UU}ecKk)SIC+9sOrrAr5U!MbBL{2pHM|)5TQ(2C!G=8 z73;)v=Ztvjyg*sY{st$tT;UXvL!8>OrsF3Qktul-??EumqgtSL2L5v z@)5l9G6Y_2L^8B%dDT0(=YybI!M303$!T4aM2$Rl3Hzzna_VnVztKy5;(CpK>ZMsi zH$H*=e%;Yl)lx}q4pa>unB`Zpi@gkUx(_YQ3g+P{@&hPCa_;}iqA!^=z0kCFm%Ev8 zu8AH@;{(YG7)!4;7p=oaI`$)Ms~{Db+FA-+u`sCsdE^VUUbkQc4#+rk^}l(Zo-z$x zWZFN7T6YsT=Tfo5&IF|x4!spsjPuTU1*w%$<&@fWcju; zL#WGxNbl-Fjc!g|t0>;`x7|UNb&mBIYGy92Y(lNJf8lI(MTrJo!G{)S+ zsdpD-`6h0?%jhM~a>Aam_2D1-lTzSSL@MlR_781kyHpr^i7t!u&RbE;i7Bg6mFhTEWG%;ER&b`0wzg9y z2VwpWA9RL<)Oo6gYNa~BBL%2P8KhQ_1JhQHBpJU4vzsq}YIbywzhr3?qwd5uJJ%RuqW5)I9H<}?9YCo>Y!w4Nh|wI*6(R|7+zeIH?FVjlCY!XfxaD=kY40(6z&pZj^Oj)iJz_R9SMTyRGRM7{%`NXwHej67 zaoiO;uRBmTb8G3zZh9T&eqjf5gqvM2a{ZXf7wRgwN>elI|M8YH&%FK24ewgR{y7ur zjbT4~3){GED_hJBWCO?wyV~7D3c@)$uSnYi*Y6%OGcC2RE*qAYGIzWKB`L`i5d>#@ z3C1=B7)L8qV~hEC3$%!xA)I&#L@TDlAzZUKWmb_=9V&mb72yf5*I7=$9aM&;^!}hJ zvLDk;8~nAksDCBVS%6nC>9hx}tpfL-0oLg!bL1J)z7}#S;RxbXx?=9zi#(l|;Yn|s zSa3cU@IcHp$e@1i2}U1(Np>|ZD(Up< zJZQc^lT!>0PIq*?OHsF+u}^Rz?c!e_DD&crtwa~y5U#kb*ep7U!OXdps5}XANjw8% zJBaS^ua;qm9n4HM6z|zcG!LWcJBCyF`%;rSk{;KL&aEb|U>UCbqzPr_q)moK!iVYq zH~OddAOMeT0iOJlV0;zq9!pv~dU(z&W|AJZryXNE*u_jK`?&7&xuUx%$O+O;Ot&*Q zO%91Ly8dh6w6AS*`i!Z(6JauocqL1U_-qC%fI6s-8i+=A68_X>q60laOY}v)xHu}X zA(34cBrVmIe@JcN=_6}-q1;MUUP0n=FlWbPPLT1WU`06MgCU^}9qw)Q(tc2@xPh9oRUsysF$eISc40D1fNpP}o=;YRpNfNHC(L~! z1Kj1LXSbFK-1PFT_pP|*4dW@8E6#fRi#y&X;;Xm3Nap4j72K?-8`7hMNQDw02_DN> zVm3;Nx2SDvgP`v;FJZ@?;Sywb8doRYqjP_|LRg_`@+Ij2@4=0}!sSHS{(pP7oE3!d{2_(SN6_F+m((Zf}Hp`@>1g2%^>1~2;HT7 zTMCNV2=s*PR?yxv%+j0CM9qYkAA(NRA8xcA?2JF`pQ`Gx2@x7g} zpX49=jjXOOvX^+l#CMG|@_>vYhcPp0i#1^Ux}v9^$mzRY4y1w>5|22YKf%HLM(^as z5o1t=3Z@o~e&RdMnV0B;uJX6JTcqJm^sfA^xiaKbEO}MbvMxe{vh7NQ38zvd73T+ zl_(z*>|fpQD6rDyd>sZCaEnRjBTufx*_lXYA{R}=NZv&kvK#E-uMVsa2@#dRLlWTf zc!H{9ujxe6Pe~Fq;|shi%>DadXs3b=w_~m^j>0wxxbRop{8!NF{%5l4x$r|n$R%!t zZ@;whchi{sF8&zrQ_$42dY*Te?(SW!D|&-mtS?(c`+;uFF;S?8TA+d44nrbf_3BY27J^qi=Df-VFW@gektLRu z8r7N;dM;J?BwnG9RO0xu6}gc0>8Z-#=O7V|d!Q!MVFj@0Li7oL9k7nfM=ueJ`Tso{ zlA9otCwO)D+bS>*>G=4EigX{wA>977A!uEKsXKuvB>LhO^yfP}QT@8v5uzVeZ#3@( zoEGoNY}8qcNPb-l&bU=%7JKm-A0dC>6zY;|%%4xiF{aa(c=T~r((9GMbyCpDIdPd}DPO1n!xdjaOouO5vPS*_>x8AHIqFP7EiHlhn!Lq;pd6 z|1q6>&L36Md9Nxs_rU6osTxj*s?U_)#u=dcI4x9=QN=^wV+j^0%^vv(%DltY#lCIPKSv6MGAdRcv&w ze6w%{?qBq7u)n= zi!A~FQlFF8ABEvi)NH82KmihoZ6FcHnD%bcy}uQxV(B7M%g%JyqeLCp?5^^>7*F!X zdZwK-a22ock9$Z8%BsA0$1|xGY)R;bbEvQK<*J2ls*Ljcw@DxlI;%JA0k@l_5x~?m2T-F2{uc~)of=@ z=v=5${^*$~R>tZOJ%XK1f#mst#;{2&x1O&P>O}-ZFCnF5Av>OC>PR<;D?mSVyXwbo zOa0uft3S9Eb(C8~`{-;su}-1W>$v0r`snIhoppRYm0vla3+s2fp3Z3c>K0~!UPwaB zP4fnfG$~4#varG((YZ~A?+qmn`#hcJYmg+tzda?HV!3da6|;-biTAQqY-M!&scd8L z?hf?w0pL-y*cY`8wDu~KT@*Nf7I94bf+dZBCD|Zq>PsRQ%y|Nsa{*Uv+29d}oU@F& zIeAI`vODU*g=DXu2MO|!v{T)*!9P$1%~@u0&!b5cxJ+i|GG0-Ck(l?jAys$ozu6#| zDWpICF}gEZk7SU#Y|UOmxy#IT9dFbrPWRpL*{hlH z=2P`&ip*RIna7OS#l&`-{|R|iFkLed&fxSPKyGJq6yxRTRI;EkkBQ#=y=_O9-bi(b zd4DV1!#Z|(ud+YjV3VK(FX*gA9Ug)QVcCzDWFFAonP>f%& zvB-G2O#;{|l>kgD4}W$|kw$eCQ8ECv%~aA#R+6!>9k%l@dX7_^Kv%&jBgGERfp$D2 z63^Xg5+%yphp2;Yh*9RG$ZB>l!!HuEz`0xCXko(+9`H}(V~0`eCg2bB#V42&?B^wW z4Z}u%<`{X?|Q;Sd?fPl() zyqjl0go12ZSpgk@hN(YodgIqCBznU@)HLK)nH6*-0aoiqpyFh!=}h1Z@&Bd^@HD?S z9uvtf?Q5o$IY*s7$#c$j6MKy5_ZaoWOO0WRSRy1@pgJK&lR@$f&V-+OJM zxiW(CR94STM>w6a>J_<#UrZSJh1XRIHoO;On^qgrho_Q49AttEUv30Z)tqS zxtRwVQPl%@eHQXM?E-r_%kPQ=rToO7q*2kv7oX`Zb5gxKQoWZmDg0$Gli={E56UtT zch`QjBro8j;^ToTOf7AQf}<}A;R$jqIwfCb*z{b#(b7cXF28^l{shUO;cSr!M+<)x zm;DJ`mS;hUE}7~ujmgCwRKk(u;XLKNc!PuR3x0=a(!>m-alE9$dfUi8-YIgammS#NNEyddJH2 ziMrNI3`Y}En)$^`9gaW;IUAi)M{^i0(>9yftS7;M^j5u;)Pf~ki`jIw7_@7ll_(gK z!rx{m!JrtZaXE5W%bRM{_wu$lQ+hre9XaqzW;ca7b4%L%I1S60`fy6^VGjnP`!|?D9#+%!Pqn4w7h(*3sfGnV%k~q^qrC0m;_oQ~d%R%63 z$JuJ2JZoif&rG`7AUWIj7l2TrCx7e#3uY>WyI{FJLI>~zUNSq{-bN^UhA;&#B(G!-tk?xK@R8_t z-!jYn26OR|=kSnhL@7SiWS4zNx@pX|r!sIsIk{5td3;>_5>?=D-i4363r~3mZjv5( z9yShLB-_Tn;H3P@=U+hiKcHxPL4s@~-h``YAdi7FZ$`^7UDRhYcSlo441nnx%~U^$ z{(L5=Z?M_RR6CcRs~;VTFFNJ?aB7M1%|^kXKEuy+m9FOmoPHQj*gj>+~I=paCQ4J!;@uh{x`eOEBd# zOhHwTr#>E8jaS)@u!1z80I~sFkqA^rKb5ugaoEQtbUuCLcy@q<=vZh4uY;744F%qo z!(?ZB*cU42VN`p;%o;sxBU6KFl?#t?LKJ+~Ohk3Cp6e2yYm!L{gJXB0E1PTKmGB{5 z$A|Qasqq&YGY3^+B6^YxBBjg^K3$#-T`f?`jA5V69`+#oAjz!+yM~6!IchhKf|qhF z2}$eO7`9&3QETXk7jsQf^_T=pF%hO$d6WxcbqD5P2hPdK@C9vA`xWH*cVsGR+F{UJ ze>(t_tr&dPC)|gts9g2PTls~nb}fu`V-tmkC(OO5$GHo1eb--Sa?9!{Z+d;#8-soJ z-`xY=NA4c)S$CgzryJp2;@TYnj@!U>bXzyS4se@; zz>d*J-Hmj`S9MzL)phAZM(QRgzo(h|=tN^OITfSsb;PY0Y)+$qjEV25Cfb<^Vi0KF zF8e`zv#DhPu=}o5v?XE*Z1V}+pl|3aVv`b;MX|3#Tp{3s#E+F@l_Q6=5x47mXLteOFmH*Wt2)T zmGemm2TzjvPdtacJjbNC8HRKsDSK^IQvSuCxZlsfo2|CtwjaYT|?$%E#4kD@VB-Z;2w{5p_B3yYX=X9qB5rec};G ziEl_{`2+KjknS$0d?sqhC-7L0+3ovK>}3+Y%l-BXjwBBFX9~58es>kTF1r;}S6lO!cMdSV{B!#i&a!&G>lJpLU-d?o(5~s&EWYZ8$KslwQ+>SnP7T004?yuxq-of~|c}t*4>#71~FEZ z;v(r#`I8Pgn)Ht4DA-S;68wgrJ{z4wbCNYDgU{_I?cy#^`8U*zQdOZUddRmp3$Hp8 z%%mCTe^#`(zyHmoDdaBmoqZ?|#4IvCg4pvjn$zg-H68?Hnh66_+6HI21ny=uzKZ6c zvpG-ze?h%-03F>pI<0#2!|9oqf0#<WQ?zip>R#}HVY{lH7Ca>GT6mff-s_rz?!9_3No;CluZ_Qn_O-dKC zd37t>0M50y4q+$EDe$Vt=xqPk>+rL`NLI{X$}x4-CFiyUY-@XZ<}OS>y->UKA&IaD z&u}MF_*;^hUza~ZKA7xi8#%59Dl4 z#aZw?3wejulEl7)^pO)}2;U}8_>(=OVzH|uv-rRiu2my8hW8Q~obe*Rvj{E5HufSP z7xkU%Xqcahs?Jv!14m|XlAsJqCts*+sDtv6ZBRhYAlY*;mAR8jOwylW)7dMww_O&6 zIo&dnlr{b zB2uFQj|-;m@H$v3gh9(~@Y`CFhe$?pB zU{B3aQq{uUR}QaV5w%z4B>Os*icoRYaV5#Rjw1KwBPkG1cs(w&7xVz>5G&+%HAe1L zelko|AZa`;UZNkc#OK6dc&J+Fr;?%Ky(N>;v%kbOvJX|_RJ%doE(hmN#7}+AKF6^V zjw4{1sRG860VkHr%nLw@6vmff@z!0Hk1cqH`=;TRL9FDNq%xFT-pjUb+^da z)VT9}$3#3*6-78&paXaW{*&X#lWkxp%k1>h4l}|VI@P}^R~LAO&*JI6026ToCgKrV zs&{A+qQJJ|q729alTr@Na2wLH0_lf0*je_59S@&4!j?hP*_TA7HJ}z(L6BXpEV7*~ zkNegajH)>o>B``yP58Q=t&BUXuq*~AlFKGSha%86eFk%T$lrJY&NU3r#U>F7DzXfI zX8{`Cze+UjXm~-QksNslvAiod5>u%%8JI}8j;9tFlYsNp1UbG!*UXibH zkqLYou8(P85nY&tE0YS45nRt0fBNAiV0jnW+@q<<`A`u5{hI>0Hc`KBfbJTxjoqw! zarYj<&vVKwW%Aw+3x5d|<35x4efij&1IgGZU$8Ii1sNAF%m?uTMEC_g^-B{?o!`RW z+QB}g_C=y%dIYcX!c4%6>rW5sYmzdH=43`KYtvC7dcptnBLBkQZqc|y zbp^XbXQhsLYzSJ;{rVCaSNqL7JVBE5$HZogNoV@7{nO86VOLQ`QyJBAQIi^dQA(4B zD-mDE=D)|}SK^s`)ZG#$7fIulO*_+(yLl4%;@hancgXRPoV-RYP`4a z(dXfAAi1{-JbP7K>e+P+@YR=8{4=OHLv1XSUunT%N|8>~p6$iKIxW1sAo1}Xc|W(! zV)Rze%pQ{umDvcp3MO#5Nyk0YUu-s~=-5-sGo+N>HHYK}GE^KkeWWGTsgS*i+95xFfv=&SbIVc@WpReE~zMqs6r(V>Uq4*3q2kOTIv89mS#)KY6;^^V{Rxgig6 zlB|L0rCXK$xErhTJF?&?87?&eB7%37zc7+w=&haSiU{t_vZhb1tkw5L4d}ILJQq3_VF^>BW24 zoA|uD8%S?-RY;2O%bE5*UiTT?3;!K}Wp@Ro_-p9zuDZx1(P^_&=8J z1m33ddjt61`x;Y8Q4~c8B}$npWl9nmGS3+jDPzi5=4g;I4~6n0l{9EjAw?3(P-##^ zBD0Ec_TK;R_4$AL?C!aPd(YYDeb>9zv!3T!_V$;M!XNzHetZ2i|9!QXyyO(Wgn#4m zcw~Ig^pRp-%Q>;|3nqM~l2QJKsX#hhW1+;a(n5X?Pu<1OHBQRl%-0U@z^Cs5&m4mZ zw>X{6Vc?DMWV%8RdOf7dRAkOEOLXji2@;uKUds9cQ47l2L8_uj5S@9D9TS@=Z_Am8 zbw%_UC-KjrRbPbLUCX#_J}qbNX2K4)M$GPc;h(`%m|YLSXzt+~c`fIX^RU1Vi2+-K zm*nQX)7OLBff(m?|p;!V6`t{{!OB0Fq@9^^)ykVZt|cxj-8-3&ChX(JI9rAL`noD;(Xk*kDE^a zy-vZ$*rW^6RhfzDTbakw1)1LI^h^(#L63BF2Gd4{Fg!CT9fg7ae8!xa%n%IIejK^G zn}*dYy*qATnqf`+s9V()x6@ZOLiMcL#4(j?rn5N&uln+x0#+Yom_ygpQhElcl^mzyK^P2fyJ)D&)e(sv|Yuu(8X&J>HC-}A!cuv^s*Cl7n!*bv=_+uKgBN@h*2IW^7`t+E zxC>f&$lCdbcl9Y;pW`OO{BG*=W?%Ur45QiMC9=PAx{7sp4z`U7%l^&;Bcolx^Y}uu z@P_8eWfw%FgZWV(yyZ^89M#QBQ7v67jBRS_718y<7j#gYeB7#9-{O1gqkDC?TIp(a zPziP9P6XY;OWFwqS_BOmC>O4S*H<_^mYTGvhFpo4{7O1UE;ts8rjK3UT1Ha?@1v-y z{$zR|p5A@wYt(L|$=m>Vk-|V5!**7f!E6kTpl3Oftea>Oj{0cqW0&v3%IT+;D z#XFOX&|iGsE|~7DnJK%NF4K5HwKUQBGYS$n%=ZUF;RZwDhVted9xTE#H1Sc!J`R@k z6bFHE-ro`4+kQb~{D!vBg>J#M6ySL%DgH1Gd$pgQC0g->QYSyeW4ndyswyo{etu*- zapxE4#@?^5Q%ukD2UEnSCIjQPN#*#u zOqHZzrf$+xH9yhRh@~p9?U~`&C}xw$M4HKjN5;FTPjZNGWg+hO!oVKIft;T1v13bO zJ9eQdec2uQLDhRc_QoCXr@m^gx#H`W)M`hAizp4;GaRAEWCyQ@cflIFrx){atgELv zAX=Bsj`mS+=AjBL8ytx0opVAu7!CFLG)m8RgGu)F{m~IDw1VM(qSb0qYm5x}PPuWe zaHHwtYFvH77JSx=!cu-$uf3LDMEhAFszEoOk3;yc9GX|S<|KupG0AyR|Kubd-!J^k zJ_tJ}V_kQ79JJ@-%eiA>F`x z?PPqL^y2vC^lv_+-)A!EXPI)ryBV6W%&_2{%*(+SnKh8@y}|i$mWevW%^|og{3LD> zo-tkLX4z;@eW01Lq|a#u_EAdbOuK|v$+2&iU)Q2$y34(+kB?R#Tc^GiaTgb&x@nW( zcB{H_dVNqP!+?9e<~vVzbSKfR9Q(OZ)PG=?STLm}k%MzfuSATK=E6$gvyA z>br{ngYh<=)@z(?2Q07~76eO^Il6Bz&{~YNL;3{oLWP(4`PUP>or>>eeaRUj{`1a? zi7J5!*7U?AO`p}VdqKZ#1}4RP>ujl><;OGx>pkP|lQ!~;25Onw_+NGG*!psSmh#$1 zwGL|2 ziq_BinSQP5 zZLId|C-a@{J=h@2NRoQqyF%vn{wBMBB|U^iSU$LxW}A1hy6k{=>{{Nxz4_d}LEpbm zhJFQK^F~oK{^nhiH=-fQ577*6Fe{Q`S-&RLv$E1gS>@6WSxwTOS&yaV}asp6kzoutBsOQ}hcus4d}a9>Fbf z^e=FttPcJT2kNbr(PP_zQTVhItTt|9tS0+7SsRY>44XmD%Hvk#*8@AP)3QI_grPIV z4CW5pPs<0JQ8Kq<1ds8eWK`Yv|uQb^+>NYmWlYUlawd=gsX0r#T!d6W)z zaBvB<^Mqc*=Cph8Kis(Cve#y+@v?SyYJdDl3-tlk?`+OZ<5b6kWT(B8|8%wY^J(9n z_D)vGsFvVTP1O+?D@G5|6Uv_U_6WSSSDF*+h?+Fw2wXih`hO{JicQ(&W;}i z0Ue%R?`xO&YJkuFmuUYzcGhS5HOuszUKIuBsB>qixu)`;dQtZNJdfC?U1Q858Jg^n z#s4H<{}GI@z#8~w=Y{ySJe<+?TP9LBiy#dU6P z4?YXqm^(Zm*yvUU)b+2x zS{AB|vS)g{D%*Mm^Y>NW46kt5%ntTt z_6Ixs=8ZJ+U+@%No!J_i|K#I&(fZ7#(GQs`qGOq2rt}nz>c)kmVJ4q{5@$s@lYdRj z`jbP<4`wxdhF8BB0{R>#ILG9m8BW-ZxM3Hl9}m!VtieE=hHKKz-K=yj6a69FC_A6d zR5Gi|qKfaA;+VSDf)X8j7!ZH>BhbMT4x_8@PL zOQNjsCJ5@?Q89h3GCD;!a4EWll9QKuRL`t|d%`$uB9FZ&bCz%5iVeX{a1#!iwRUu$;(VnmVeq>Z_dJTtT<{ zrtprade~eSst1Jhv8awNc+K!dx$r#I$ZOEkrLf(1VY|y=yYELIyO#O*!fa6lW>Xq&&HbKYe($7!>Z3i7A9nMYv@{(O(~sCh}XwU$@z!JvJd&otyx z;jFldsWY|04E04d4l)Ci`r#WKjCLg^mE!qS!P{&_xzNwbm|*ttTxy18@XIy&c3bpc zew7m)f{JG_KX8;G;fwX0Mx`b2@k;6rl+Yz827N3@`ISQ@e#E4yZ6;@a=vB;x^N-xDEtR*XcnB(Z2bQ`2~3)Rb(q&^IE zLa-y*BquB2d1w0yP6>}C+nj6#WTs7`V(GISUcZcL(i7YZlj`71?QM3~6X{o3Q`2Kv zOVj*0Hl|nSIFy#nfhU!N8)=S4L7p5B1P8JP2Wzs%!K|JR+GS1Dbr`P`F^0p+SeX4p z9mVOv&lJ52!}S;!`|&#SIcsm!cWf)hjpn)a26oc6@Qkx|ja>O@TD(>i4rMS9aipRz zb^oX7$M*6}Yne%0jEiS%7Q`N%|4qDmK8c55^EcsjUfg`3Kh@2zV?OlPd%P9$ku$j1 zU8s!L+dk>1PO0xay4t-8(o&Gxw${)yGP@P{I(uQexn`M%W%E^!9`6}QK`?aB?P zJO9S}t&&_-%@#8T6pT%{1=f0|`m`LpIH&X4nB@fD^oEsl>=HqD>hfKyc2yM3E?yEZ;= zy|kHU-on++HaFM3Mc;BIA|K62&TpFg{&@}+EI>$M?7Ss9|Y%IISd8e%F z5nd6~T_5}WS9w{Y!;Di8J8cO&y&tOHldn%-zGsiSM(RI}<6khIYHU2U@K`_p1a``x zbS3T1Lj8>w&DVNL6)=kWV5Cmtn4p?n4<+?`XQ&WfmOm_n-oF92dEdWX0|EP%T6?FO z@&JVFANfWgE6x{|z$~spzh_FS8tNV#sCJdIt@` zkKx8(yT_a0k)Mg(%do3v_-%u&&{knd=W>-W;?}>}Su@phYR%E6kQ#qudIttw4XW2$ z!#_B5PET$P8zr@9T<$gPtrO*3|8QtL%G}`zVGZX?>3Ezukt3+I2bodwu!(P-!W(sD z8t~?SFfI^I!p>P0Z?j(C3$B;x^?(Jv3K7I$qzx|#N|~ttW;)suEuy zGy9rOm&^~}Raw59tkY@T z#Dey4=}O{2PW`v^#FVjSF0D^ZL_{pWLt*iShBu{kP*<-Xejd!HF|r>^KK>?^$M@0wz-*`S6zH$KC-+49yZ^$oAb4eXxh*jdz-lpabCreJsoJMDzK98)0W#Xc*{HN1@1T}@}Dp$Xz$-J8M5hv754fal2U zmn8Gtw<&7hr^3z2Q1`Q!cehn|Lbo8m%ea`!{55>Es;38K1KS`uE9``MG*aWJ8y@0S z+62~H#f*t7c~6`NJ;~U2CsaF!DKQV~`W~U7<}9EZ9E`s)P9{FdHBDtW$Mq@|;*x-) zTaa5`kqmGgoZ@C+Iu4%3Ww@?211K-{&|tiE6A* zynqA#L<-mk?c-XU=`J;)>!67Ut2u&BqsZuM8e{{`K&2tZSullN6xg4NyED}>1MJqu zkc;xzCFhBf`;&Dl;#{1G@21>*hI{?y@DXg*&T8FO$#^Q8PojIdnKn`9w$g#=WQu(+ z&e?;Kxmjb9rCf?X%=%yQN!AM27LN}n%S={&C96{ULRK5h_K|Ah*V3w4-=w)|0JrGG z&?8evnku17y+T#dNA6rIEJP=LD`d5^SUZ~cM)n+-byQ?~_*|X|E1I{S1+V%QM)jF9 z_jNPY=Om}NM(hr!n8c%x8NSI)c0IQ6k)#=Kn;Os>&VS zfh~~k4Oa3RGon5W{tR9ZPVj1peJ5`?*-CyYxH^0S!~aqG?uV@0`!P@3>Kd7WVMRYI z_kS4Epl4W4v@h=Kmk0NSMMUJQg4%Rnw}iE<{PuRjV83S?^mUoj#C%?VZLdn5FybYkA2`+7d@C41`tlWpz{YZ#PN_fqic%G{>sdb8}Q zEUc*r3@L}|{1Df*Z(Z*=d8gy51p1OklQ-hd$#nBG zo{Vocf2e5EB#zA3*n^k%d7Kr$8XwP$kN0LCp=fCv@5o@eWGZ`nt*@1dPh_$+EH&by zar3xJJRrW0muo*Ptmopt@nXuGe$|_P(dzV$=qF6O;~W?A1Vf;nPe99u>xJ}#mUpHFX$04*3SGYfLn78I z`dP2<11gT^!xx?GbL4_cyk9H4Gn=v4{=nW&@V1M{2P=m;yvz9Px=vH<^bf4D?;(-L zWv#iQl`zx^CP%lB86NA;sN+{tG`C^gqIwya`uX}eqHvG!O#ZTfj;YaZ=;ivHlpXXGG7miNGWmM%i znPyQVYE4bYrz2XF+!cMB+#$=oAu5p;#;Q9d8gIgsn(bA04Oge7sLXbYp);vAaC)2# zC3F%i>LXMSE~bcj-#OVvwwme@{V%>IxHm3jqF@N=J(%{*Y)h-E;m^;!#=&kDC%Z}M zpJyker_YW{i)O~B_hjf;&pDAy#F|3m0+#@_M4ap(~?JmF&G|0^$!QR9|O6C40LJ?g8mJ{?HL4l9gMj(oR;=UxYk(A z;HROg&r`}y#VMX++QDL+T+=P#J44lfgYb&`*-a1m_<;R#zpInayQM!Redq)~g|ZPsgW8x?DHqPj{ne(3Kp^&X z_~TTXFZ=)NT)RIAXTb7jsKckxx4a0+e=b~$%l45vd~w(xBfgt@{JyXk%)eP!Rww&X znPm?7=D%XtpZ@zrgxl^fZlT)U5=JAC2iF&bFco!V`wrC<`VJ?K>bsE2SF>v40!(B@Kv%o!i zkuvB>y^!A6L#=fXRgyoKJRn6FIYihti*BFS}glK3o3J<+MgspwFiV9^HE_!ZSpGxU|71Mgo zh-zDGlN9z>l_O#H?8ybrpdH)=FADeK$bE12>(}bs&r}^Nc-FiFOId`gJd>}{IIOk- z)Nvhyhxmy;qSx3L<8lC9+W_8$eRzuY!t?7Ez0Q4Z8t2HdW_3T#>){a*xVQ6qAhsO- z1>9>WWzRhj$SZW{51&(R){$HG3DySiFoG~N|Huj(8p;~Z*kOtdrqiLe^jr2s;fFT*r{WRJ1lBl zOA&E~4s$(S(-gC`JEi}Nucey*FX_ztyl(t5r{u@ECbvlPn457nQwkgTlH?#p>A_4u z$#*u6GiT!S<1{Woy?1MTwRsvf%+qLZoetysIL8UUA_<_>#ghGy=(9Lh`S1eqAR%AR zy5@TPCgf{{udhpTiG&Gd+~0osPwW+3HSzJ{bPX2DN3eo-@femuiWXx8&!ZBUhV?K} ztuz=i--{l#qdm|Lzo8R^=^;MzBgAqzx_`TaSLH@H+$WHOCGh!~x~UVXm4;((_EW#` z`-W9L!DDNl{AdOIU~_OO93V*d=q~@E`@CC^?Ps0m?V|i<{zB_9Sk`bc`dAP19jcN= z!GpTf1NG*{p5wyx(>LzMvQRVcB z9Qq9?!rXM9jO|kEt6n(V+8PQKf5I%P2^`60+7(N&_1C8NM8Bl1DLFew`SoqD#ka4= zJ+&K;pV2|t=#?OEv{uLVATCk?5&tGps~K*_BjHXM{H$QE4D{`=Sn!2dz1_arg8_3? zejJCjU5?Cy~Ji3&JZ$Z~(uB&JTDyC(kI&kOKY0c{RR8?<+QgMNe|%c zw!^G$K&N^`v@*TWzWyUzhex@=jxjGZ+@6-zcRGPP@KNx+PW@J=+9uqlb@-C2%qaK( zlCv~DLbtY94%t;Nq6EgqUVdP&#U0_9jrk4Uk(S3*E*M`8k1v#_nVhb_If?F0F68xa zc}(5M@1c4;KWPw8PujMZMB$t&|#`?M&%GmpyXW~#E zQ}e8qFL+G;sq>!0YPdozT;4Q=Tj{eK*tae1Vc3l-w-vOhxjuYT%!ej8(2dgvVHWpW zMXiH7Rg1UFu&cp@D|^?gK{@W=+uXoe-YzYye_xO<-Nn2c3Ss*d#ZxFPepL+m1h?s4 z-HmVD+PV4wPJVxWfg_wX6LnW7i@Z~u`IF_5&pMgMYs4CL9*4%MXhC zYA&braaH?oX(!yGrYiS4a1F0@zYF0Srg+N-p|v}3ExzQ)^nvGZP6QO@UF&ZLR!0!N zkz#SC&A43;fn3gq3Vr1rJjRvoQcSqpqSI-YC@*J#V!`65YOppktA|tX-|)~JSu27| zvVID#$~widH-C6jRvCU$xAK;1fT`Cqyg#c;*gLCN*gva}tDnaMaQ_B{O|yoE)w9Ni zmuJ1mbLtg6&A0KMSK=A1$9Vb1dAx;E=36KJM#%hn9%XCg2w#T1DU@o_5Ecpk!K}L= z;yp`r9e@Ytn-wYKv&C9@1wzv7eiuw80GG?M}+ z6HeRLrp;lZ+zb~w&Ncc?IAc$p@KP$?pY_R}m$TK;^*a?m&iis~+ADrBy)e&)@z zXXc}HYG!S^DYGTLDE=jFAODfQ5g+83bO>+jfWF-C@FAXgkk20JyIjcT({N2nH;ZMz zrM<0MN($Zj1K7I1>qYJm^}bfAt<-5;W@XQZq&}y!H(15ig-)cNua`;BaA`Wa_9Wvrju)5{^C6-3ZFw5V-Gw!S*6 z<8T9}Lq8YLlr4glEVL?Lk})gD9p0-7JkIK8V^K*!PBz{r&KBROT)~0_UuZ+X1!`x97 zjK4eiCpE$}xHl{j-OYDcj*R(s9#5vT;Q?x|4N%uNFw38JEg{?^5yKoSmP` zMsmZq4q%n672RL*+y|tyVan4mccx&Hycm3^%E+Gc`n>FIU@{c`$c^3kQIpc58lK;c zY9NYSzJ(=BbGVG+?_yuSD7YP$qqYu6Jv^F55W{xxnLfz|mG|4;v6=ePPox>|b14jy zyD`#xrMy7Y>vPgC@Vj42KGJtujjQsx^K-2Z!k5dQVcNyrti@A$=p=gU@veTQraNqlgtzHW-adH2_M~2?kN0 z7tM88qIuI-VGp0`@_&!da>(?v7(SXeEDkS?M^+2!0oKyeR%Hm=}L#8msvu z@eI>1M)4(m#Po{}{KJ~@1!ySOu21b**Zs+^8LMNo--w@ojlWY=WWLaIIcqML!|AkJwGLfl=QNy%x)PxH|bCUzx z(hqeOQF_W=2Z}DEox{_p=iYQOu61hu>=Zp}npPO_i_|ACq2qnMet4CjhwSYhE3Z68 z-FdRP{UZGu?1brdLQhPE>h?!&Iqmo9+j}MF%~vpPedS@Mc=#TzT66ABNdBp|-1{_ABn$=Y?#X zkc9@dRD1?s%pqkH;nW z8f5eM4neqnPR_>P$})5>lZ}`c+th74`Ir7lJ8(Q1CLf-a6T}F76tP_X~n= z)M(2&y3Gi;$R0kYLH`ij`W+d?GLr(|g%NzDH})APk#EH9->sR`>FcVWDRiDgoC)o) zb*jpQ@>_p@>PLKT7rc^I!dPk=4o>@;HuelP#Q)$)pYkaD*6RONU3NfSc2u5xTa7IUA`rDF9~w`-e1^C-z4+Z2eZ`&&&&TunpOBPU*(oTtpry~ zomIx#xhlz}gYzG~;}Ko^1J=)e9sGm*LXM|h)M2BN5MM8s3O)w}E+hLqk~T?yv?o@I ztP6M=jZ-x|qW{v)j%o(kZRRv-qs!S%&!!)3&?r%0s(fv+HSm#Yc`b**_3880#Uwf0 z1h09hd-0&3YpNd2j(Nq!yj)zLj>}DVIm@@{a(-p!eqpby_e!^^SoX?g|MR^I!^#wU z*ZCVIMVza=qgPQxWvd;pGl!+JI;EDYAq=&(s|%0%o@(sg=}7O>_^>OUOB?m`y=v{6 z>ggL@CDhaf_)F$eOXtwvIA8r-jJlM@GKk}PHlN~mJ!8kWmx)w#&gRym-J`d+E_qk&`xY+c0;t|| z>NZiq8CwAoe5o0eIj}nalW`r3zqW^$x}Hyu#{JBkyw~ina@0mS^xAhpUp}E5nw?Cb zrTAac6ZfiJvYVD7_OURw*iFvNhHB6IQm%^Jk!wGLwyi;BN6`s>_)zN|^OJ%e%^JMZureD%J z(=92MX_xFd+cJ5>_4wHiNrSTwCMC`eN|H09lRamiOSYexmV9$&R`UIsImutHyk}=5 zmCjB|x||)IO!sr&p6#7nnCX!;%XCksWgbX=f?*Xmm-B)6vE%^QNT`L?Aa}W5~nz---C*wjU zVKl}=8YgCb1aaDrYkG-^Y1Qa&+H&d|hC}ocHNt8g@O_l|7h#{?9^FY_lV~QpM`N&|UY9R^#n}2{ZR6!@BeY_hDIe_j7}N?KvvuS7E^`s5Q1i zgAay(&~u-b&E}#U&Bw(dcT_n#6IPD?@Z7%&OGS%0yN$)d>V!*rD=hg6zataek4tc) zep?tWRe?^|?HaAx>@SD!7F?rp&Ee4>>dp0OrGWo0G@~eHexcw2Rc~uoL;f(eeC<|K zPi}U;Ugx|mncl#WwW3q5yxvr4e9Xd5@4Q@P&BGKk7bkyM*SmCX_MAg`>WHP~oyS+` zTU{v6Gbz_~gBYe&dB2Ep4O#>DQf z*6#?7Xpuf1+%3Z2njUi2W>2zfAvTQ<|JA2GfV=m5QZU-Ba@?PEicaG1=A(5hoxT~> zN}v@B8_UIFHI8{ItE%aI8I{hJ z&yRJ!48mi3#PjF{0qdFOg?Zi~miMJ~nd|v}A%5=<>(Rl~ga+Lr->pg!R~6z@0~*vo zwcR0Y8$Ajac+O1g#VYQV^z~a!f7?yXeJGt2{mZrdO!{<`F%2%^D;3$1`CwO9P@7bu zxo^gmVK5c;!r-rPtExVMDwnltn^^z-!|ScS1W$BRu#`9Y+hGqM&8O1;r!jTH%}xi% z4B9x+Zgsj8_RbyS(efp2?i}o}M`VPz!9R1TJJ#!5j!*v;Gn3?e@zktV?B&ZT=Sr%7 z%8BwfKt`+cNUBQ-*%-&J9jE1P>iq}#jP^1&y=VG^&%ce^rQhI)ZjH02L|!Ee4Attt zCq*glY9tF~dJ~fIG!09r8oo{%Qf1ZPV16Sf^D=r*S7JI9!FRh}`yoz#PSxyAlh2?NZ_}KWl{<)c956EVoK36fXr83(h^ZFTIVXw7!Fm0?>>27kEnTyWq3xhH0fKlO{5dDW# z$J2r~dMS5=XE0K)wewqH5)IeYoE;8#|L?;(Dvxy}YoU_b6s{Dd=ja$bP6gGR0;*E_ zwiAA#KKe8m%Xlt7gTnDi7b=Xq!+R+3Zook;oNNiQu)hC^AL7qmCHN!G!a3NMo``8v z-G?&z&zyTOCA(rsci=_a(ka@=>#gMstpvro3aWKp+QS^!1>W5sRDF5Ek90eiCT+1F zhEd1P#1C4I7la#?{Dm8sglF|a@~4+YSHe@vz_ZGw`J!tu;)_8n3wQ-G2L9F~@P=C8 z##|fbOHYgPNHILG{c$eoS+MyG&bc zn|U_qpBWiEo9RR0(lYoKclmUtFptC&w7MKHp-%g_HdIN9!qb0-o6msgw1#0`Zq{n{ zM2^Mrc+(I*GrQqLa3w`>7+2+U-Z0#sX%`;IbPtbb9tty=N5Z_=OGRQFg!q11`j)1i zWHX+s;fI#RYAO`Ir4rw2n!;JrPp(Pc5AI85VKI%6O?B39sui4qOcaD=U$4Th1qrnY<{d0VBUo?r=$TA} zjtiTrdTtbb3OZNM=&|g@(%6onv7Xc1XMAQ>>C3Ff(D+J!^9LUf+9|ohyYx?+VGnoq zoBF^jN9ZC>lAFv9f744m8ZJ~{E!1ON$QN`GoyO}>rDb7-=zXl_Pq?}t^q z9#({lV4%zW?CNMb5B~9{z&;*+L*4QXABc@n2hJ89LvtwnOfQZO1H+lo$aB6BgQEFi zXMN0i(Yml~^u4<74}bq(T*2JYXkE^x^n+J$C(^}@7Esl6m6ep#N!XiqjTS;W9)x&Y z5Bc~PH+3b)>2X~2n{Xg3mORXbtBN_zXZT@%8ax`0;QCktt2jxo<>_8Lp5*G7mV?sY z66a2v#lI(gXxt{pFVVOS=U~%;Z%GY3p)08r0=^J`#G}mkn47#$oByhcc}l!L8IMmo z7-#h1xFQa7owP;Vf~vD?dVAa_tpancgztPauaaBwQ5(bq?S>wHz74&9eRH2G>lu{f z3y@zNk44_UXeYjxseexOuq@e=yp$x#v&m&*$_;XZ1||e{r;HtikvdOKv0CKcB_5|D zf3YBmtMmG~Pi*RG#?52S-QmI4@vvZR{3z_Hr-^UveSR+o%$mV&JcYmG>nWPc*(KKo zcgjh6(Qi$GP<){mbee9r68*^|u;tf9k-uEms&pT6y{Ya!rtfz%w103oQr~8*ymo>< z_0z#H*L%3ee?;RspNtGD;w0ad^+?bn>wXz)i=abRgP>Jbt>B)l+hnu1;V9P%(x{P% zcU>qwpTJdq#U$3R<(emh^3m1&d+w3X^$p*0o{r@5(}Xse*ER;}n=-luFw7U>>7&%~ z1I=*g!GEB=YOFb|sYzHI%5WxW%*)}va7EH8eATp_7qK$O={66i?;CZo8B67?{;noY-M-tKDgDJDD}6`)BTGx4PCLQSuTKZ2r{Vf*IhjoMFm@WSepAf8jN8(0V&dvwl8>R57gVig?v`h?7l%3q-LJyd|qZ zb?>1=@0=`z?wTZdPCd3o?A$53{fWPRRCRj7yn%l(5C4HxWqX|;)Mxqwqj)!bXQwm! zhahLb6+HOND_Iu2FYEpXo>wt!hdWUf>iliY z&IRF>vd-ezgx5icZdJM8iyPThH9sV+rh{Evmpo_qrN8O2&)SE#9P46X{G zMrnJUqyCV-@fiLyA!Li8Bkx1}RtLl6uaDCQ43IbWhCFtKAGG#c?!m;q4Qg_|bF&!q zp3)%*ROSE3LJzw)fAK0Y`zdKioyO&F=uN2V09*U@KGj*D_8JYCQqf$G$>*1`GZ` z+ArQ>n%r{k1XE;sdU$fTT4Kn<$pt3S?Z<2T9J*)5GVc2AvNo7z@{$UCGxQ(>87xCR zcdyyOeS=x?gkX3)(`==ALEU&R&s@EKsCJs^5gf_f8SKdvHGBPtnR6ez#+driFx`{6 zC_R+fn*5u2AqnHA=D6iguI2|_jc;?)xL*7)rra~}n#|I8oJpU}=#a~1N+x+T_a>** z=SR=Za((FWR$tqnl+2t??$kZ)oynihG}-R!%vEU^Un8Pkmp&$TzaQV6{wtE+1W)Lv zL%K}9dK{CF?!;+cHT@#3k)B5z+t7*pl)7mZbRPo|wl)CcXQ=rKW7JL)aYiPKAam^Y z*VPd#F><%TjSl#F3ae5F!kekYg3D#|x$x(X1@kZ)KMvOE0lnume+9?n1-@?MoUz04 zZU$pe4h?FG8&z>Uufy=Ul4`1eUSLk_&oglKe{n!h1T}PVTJqcO<5V6ivds*C3>M2} zmxXW1T&McTv4RGFt_*fkcpiNIfakV>N8MX?#0+fVak|y=7G6!cUH{^0?6uy%g9?6y zRk=FYj8S1?kqqPu*x^P9)DPmzUcK0VgCAk(xy96~bWA;E1G90nz6mFbyl;m$N1MY= z(LT;iC%GpE(F*e`H%5sW?k70w{TlA!x%YeYnvc(f2ckaVk?6kgA6UbwsCalXIxjpH z{TJ+|SK11-{W$v7tkm6DiTkKgj&YyP@FUB^DWDMi<7zSfhOmyPSOj8lBIxBVVMoi} zX@+%_zX^v02g82qtp`lV>%ax8x%}uJzo|A=)GhS7H}ZM7h6_{?AM*vhOdjo^hHIpj zyG5o@8b9*y!TSoT41R~BzKd5s9){XUOsTF5RR}8h z4;IIEad&xAFr4YM8sX%6AZaAaX<-sT>#(fT?NX0(CQT_}8)5U;chwEgs;YA)HN%S& z=Zve8$MrbAwRieG?%z*Iny5D#Q!O^Yt*-?`xJggxYLPY{Z2D-hRE*pP!#^bs7I7L? z4=P(bc{yhM#7E&Znv+Mx-ddvN`RPuW6R$Y$>{C$qE&Q~WIg6%XT0H>;?t6||H6`o} z(eGsSbQUGLK!JPcclA+u4K{&ooc_`bPB}|;?Y_ht*@IzWDhw33pkCB}FpJ+{;$JzN z-ltbx2sN2b&GD>$$>_8zU%DplXf(qbLNiv*^;8UuV>3aN&;XKh{J;k5mrXqJIb6&br(+1<_IC+4hH#Hzjt6aOChM3;b{fv&={5U<&MZ(cR)WpVIlyvX#% z1;IW#zeDkCiks=CGQMD?JR4kTmUwwJ+bvMoj^}~vGRiC&9 zW^om2mWp8qx#RNWD%JR<*1-kgrZf_%PwGSN_uuzUg4JUBV*RX19Q+0ZW31QDc@3P2 zO7l6tm?L1889+)bw){Uk{Hws#2J!~rUBzf{X!P)4$;JfG)W$2|Q znpL7Iz1Pf!p6ayG@XncV)1|QF&%(3+@91PwjSlWf-QA4SBGIA9=yaUaEk0zY|BAo; z71VkeyPkLRy(P` zOmjen3iBze5$l)Y4}C1}+X!d+&3XB^ z*`E2F&ZYFcYhsGF$MPNQJf2D?zD(R$7aYJI&8-S8747vt?&iI@L;Trc`u&u?`aZo=jLobvZQO5m5HwocZ*>V(ni=_z5s z=vDr@@2L;gLB@ZiF+NP&8`At1f-;uoSbJl1dr%#V?sg~I?WR9ei)L^O9Sq^@>~y;a zYyDR5>ka(aWwAa!CM-l3L zJ*zv;#t~!eY-dpML zcy-!cU#p2YbVvN1shiu?>08qR@i(bi+-WBBC0CWtWtg9FV_aowgPD36bDuM>r&}{R z`&dgq$V7k33`h@Tx|r_JD9s&L;~jT3SC;eBd+P1tDQY~*dteD?ot>)g{IY;sq51cVxTBrq^HtL;f`jol zP{H3+*N1~$@hKkz%Dg;O4Ht2_D;Qo#8+bJj@#@KiVRQPU{>d5l=P#Uq@A05N2~OB? z7djWp>hs=?g>bL6-v%?Pi@@?sI!^1{}7J3b4M|d<|?McXB_4 zbq9!V`*eK_<%9lifI{qyC-T6UXYYQ*U+Q~%_FsCwg1QGc+7C)x2q zeDwfYRRmMJG8DZzyx~!rr0FoSkHU&HELZY6yErH=->XIU(lN^I%+JO1D@QOz{x>6X zibsdx_`k#UxAO>F2Pwkb>uW4+Ltm`0c5smTlroj=o)Y*b=LNs$>7K@CDWr>igG%D=aD@B- zV&QOpv+?GU&-9(w zQ>uMkge~bQDE&SRk?lJ9Yjs#wBwk^1J$Bbku1X%4_qF1bhXt?(VqB^}{I&I1TK`M) zrcXNeTjIc!O>gwKYhk`Lw-$SF6&jjW$J@)tU**^MeG|^UN}q~%QeFS8UdtO?9(&I+ z6@x!BHG=Om^@EL>rooq)*4$A$sBb%~B)d3=y9YVq9>LXemAY`NhdiDUcQMDh6(_yB zaLaBEI(cR<=(%O9PfzPDlyiStIU7c%&!vmZ#oJ)d9FU#l)U_+Bp1;wZtjn#aIfS+g z9HYP2JQ62oGHhcWHp5aX*A*OyzVPv@U}3UBPO;8CSV?jDcJP&b`90nKZfv(h_&e0_ z-l;;e-hcTeZKH#E8w=tEh(q0}8l`UKTwOSjQI)q}*ez}N1Ldp052;a&OH^va82Qx!SiHKb1J zAxE{QxEOT}UV?`$3Qy@m)pCM7<=P-0$PKf-U4`~A{B~;ezwjN`I=#{@zP=q!^)3IM zwS2PQ@o|RFANRdxres|cO*7TvS=q#BJ{XVNy$`9(I`TwmDp#%>4hpK^(3H0OF43I{ zaAy9(@Y$*x_Yp?MTqw$u+!VX$kJh%Hi@RGH_u=RCBFy$;vc(%r?yCoL?<7APj8pIe z&fgO2YL(Uet;}|(&e0z@qzCleVUMl{J#MdxXyNP4+{LCIx5P^6f|W85E9Dv8vc=-^ zS8~t8NhuhA#X!`SOV@_LH+04~hY+>X^X-DS_5h#uoxPl|f8MZ0Cu3r_Q?!NzEoS(FQc-=d`u&Q-zwXq%6JK`*nQ+~(k_edkl@ zjD>o4*Nv_f&EvHAad=EDT*EQsMRBnkmgdcR?m5D1<#RXbx!=NxSsmNnWYLbeQr(>PJ<|7Nb_;!cQSJ7m9%yeq z7;PY!^>i3-k_B8P8^{-yp}H-u)-A@1tvFUtIlZ>(nAc75#rve?bieZi%VAeL(>2tx z^Ypogt6$ovV<>@ej91YJ{A%}Pcn=kUm&%P*k7JStRiq1XSFER>AR!m<2e=jf(OuW#sqoEUAqM#; zkd&|CE#K+j{U|T{Ufkal77bQ%_j@h;8)s;zPU>3t%$q8(8CK#LT%dkD(Yna@TIrMD ztCp;1kJgYe-b|@>y{J`AZ?25Fy=7&mG{Nwq%hWUb@#0p+4bxe1YY2Upv|ap=DR_PL z2OxJICz+0Njz;OPnd)+llJbn)@{Ik-p3M5>WafX|p}E_{-I6x(oml+k^bl0NaS~sV zoQRw7k{-_ieRXm&J|ok(8EW50$8CujM0-Td%OQc;o};69k7oPB?~w!K*T=4|?(Iw+ zGa5&3KJ4eC@FuUnZSa%Tx|>dHkJ@54rNmF+fBHuk*{`MT`f8XHck1Re!iH#qi_w@{ z{@waQH7KFV(SsFmXHU^%@30>}#GsrOlrf98fO9QPZ^A(?Na1tJZv9Daz0z4RU#D=a ztEa1x&nwBhFZEr|QzdBbo&EQ|XuQztnC0AV-V}_*YkiA`)=r4SqjZ67a7enz(Z zOxP_NrwSSp&Waukmqblu)Hj76Mi=u8KgyNuOa75&c4DzSrP6u~ho-v>KxCtoeI&gu zs?7tis4nW+WGAM?M_dM;w_dx-UT<)n!Ps2mSx>aqn+1C05STy3ulJmuqnx76oO>li z`{VlWE0e2bvV|ZTIZOjNZX(#v$&7d%72L9<3?0Yu%xH5DA55OlG&BRTVscleKvE&| zPkec1M|^(f(>Th!8pmg!iO-&WG|rs8KTgj!iF0IX#d$I}o5@_p49}wR1(}QEi!yoQ zLYdG+kxb_L%&E-nnd6!JGKVq`XZB~F&is*iBeO5FEpxzkkNH=pGtJ^C9vWX@0$<_y z8&mYo#y41#_!g#&j-y(BhX(2wd2p_DP+UQ+-y(e_9-6L^BmNby(ck~gEBZGbmt;?C zGUoy!Q3tnlj99+TiJD9GaHouCq!qIQcm5b(ol+D!E$zo~cu(&-nRbTX;6HtnmW#d> z&$j5+ZA~BZakQ^J6q2{5Vm9@J)jo+~KU@Fyqu{RShoDdNH<#1%tIl7Q3G}lB&I8%M1-#HPxsSW4AvSCqGe=ckKpx?g9d9@T8 z{473+GZ{-e3$}a=pL#bw_4n97--_^?p}$*oH-0u}?tsq6S<&7EZTtKM`~69$;6q$R zn+2mdGQ1EJllSL1uaU+Y$;Tx+hM{{oZfa>6Y&U6tGs;)@Y z3;O(w$hAlW`$P`&b@+>jze>bk;2P_3FR!~X4hK&@EcLm1NE5v70pV#X$>Z?1LtHTr z@I5$y3G|m7oMuQx|2wtzFJ9SCoUnG{d+qhw4`G%6D|3&78F2XJoDaTLYwU;UpP^OC z1BcHqo@P&~&j+oK!i9eNgZUu`?b$i}#8U)wtpetIJ^5c4cp^z?=B%ZJ0 zDK*;(eTQRo28Vf3AC&DJP`w?%h&&|kIRW9!h#`6Of-d9Id5t`&iahBqJg3&O%Lkpa zgK>W*!c=F=zF(8)zAqE~41@gZ;O%6q8OA$&{0Soblg``^xVT$owwtjVzIIN3jZ37a+#+>I`#TQD`~elCN`&Z4p(zu;?=g0A$|cwj+CkK6lNJKt;T=dwR` z3MTuxi8%cuaPJ=Ro7?)mkXuz%f8Hz)SaB_bmz>r;#g__nc7G>7P(!|zKFQ~^LDJc2 zd7JaOnDaS+5&X%qX&d*2wPM((N%MF`($dw{68e0R%FcbdoSR7Ng<>A@g`LN8^8N+ zIPB%Lcy-bddL~Z?({uw?ahm#5M<74##!Zl==3+{JnyP2*ng8KGe-gZfg}FS~O)YiA zXaBhZ)qS4ueLHR$2a?xx*XEfdJ=HZaxI#p|T#vu7JpEExV8O7n+@)P`A+Mba!WJI4 zpp$AIln9&Y%r%A|G!R|xbg%E=X;wYxBu3tkUDG+FI;ALR9-0v6<1Icf3!^Op`U0W(5>OBTf6C8Oi7t=rF%78oRV#hh>9PBr66 z&g4=2l^?T)`_d)%NoL0b>5_-Z8lS?@o54L(Zm4Jb0qzvVMpD8F*Ggw8#w1v;Vb>E}K^{9WpQk z7q5dzRTIWk%A@nVy1$)~yX3}OWvuJ;R6pg?o;`JLnY{UR+0SA*^kRtbYjEHtNfBSW z*p=7gI9Y7({V&;RqT5%=0#5y};!-byue}LdTTWfFDyc|qa*3ZfjrF}d&TD>hsq}-m zCJk)|jIrT%`n+^5_Siyh>+j$!tcmXlcEm$qZLb9dM8KPp++iydu!kod%~2VnkF^l0 z@;Q&>U&06JKj%Qazex@MG6Cskz9$c;@TNJVKX z?U+^9gzI6iyzrn*d#O>rajl@+Tqx6io>SRy5u%ssq_ryKuHXf{hR3a|j=Ur4h$Q90 zoYvb2aj~va2XfQkL)kmF|;SA4xxgDZB#je!=@R z7RE5bdpZJ+J%-cM3nFE9&*&5TY`e4haJs>nv&X7E!x_Fn*il73L_RVVevPjkuF=){ z9xw6$w2f{N>-r9i>k47b@N%y-%Pani#@YmRuWgw+Y*qN2*EK{X@nEpk9@`q;t@C<2 z*VJkd@XBiBs($8n4o3BZ_hdaw?a4)cey+~OB>nB7{4efzZr62sUX6d2v8%Q@c^5;* zMmS+w*!>mE+d4n^Sj>IHtDhs!cvj6h0?Vk6I=wR5WS7 zfKFADxz_xCed;vxMS|0x`Wb}KTqMztXe@p+Qo;nLB%V&QTwqLG>#FaDI z;(8yi*R8!S{nIIa#BTWyw=*la0te(WS@NZ6Rp>`kHTENXYM#d{c~5@ybI_e8WF&{C zSMUwi)3|U>3$MnXYA(a!N(Bu)i3ya1*WtR~@0uDW;aWJ%ao9nT=x5F!8^X5cAPt1# zJQKYTz7(1LdyY|8Km0hlUY1$F$A5Gmwgs<4W?zC|JWWq9AmYsym4-A#@Qqy%gq3vk zbFsUJ>V&tWY^gyJldY7=N^cLd=LT&`PC~!F3T7tL%yHsCrn_kfz<4Vtn(?p&qx zR#PWy=={`$n>S0k`md(xxz|umT*AjUPx2-Iq6M9N}$PwiR9FJieB%&<)8U7~2kb+ow*pm;Bra zCuln-=`GOs%gwJigMa^X`XT?YRh})RQ2xMQB%wJH=e`o#){Da%k`*RZ&M|*vgg!y{ zWUsq$jK^_o>dyK6BCpilxH-LFhhs2weky(Pav9B!)>dS1SFoo$SRc=c46AXb{+78? z--q3TZs)LfcppE6&ALE;(L;oKLxt!Zu2w5thlO#YTA@-@!qnJODuxo#<)b5Iz5=?{XqbKceODy)9m}}QS^YYo5M>#-$XOjFUR?s5T z1E=C&j!%xoL%1OHN%q7KCcnj9lV4rC;Vk>&9?6l|B0uh7f>}AkDp^pctiEB#te3;CSsTI* zS;s@lrKn=ojnR2o_e49R&e4*nZ`3~;8dZs&j82Cm;G_eiC*V5u!baj)g=klhFM2P? zp5?F#PBlk*5G&3 z+<(HF_%ZIUuQxV0f~$}dmQ^}gCBl41p?BDHgRJn6q^KxbIn17oHl6Bu8@=HLoc(G; zmR8^dn^1QFEgpcLNBul8D5816h%BH{M#k1UbyFm8+tUlgjsJ@<<7zgZnWn=ZQ}t*R!w-BmyN z(Ovpkj{BR)w$~|ph~oYvydR@B6b#~ey|pU#QcVob2In-A)m4=>`7dxrq;=H^QA@P8liK2yw&PNV;py6= z0^hIh_hGMnw>O}K3(S!YPRd2HJBm5=7<0-~QkCxCcIxl` z#wK?ME)mT444%>PdmOK{yDY0&@SY5MvTnk|PWJjZoTWsHRCSc?z-AVMeYYNt{Ju#4 zs(bUIF7c?em~7)hu7Xk01=pk<-F0)g8fGMnc_+@|ck$)vMz!qc`p}<1g_lDL-<9(( zhZKJrS4=j?mtdR6aaM9LE+gVK#zr5Sd>1cCeuUcXi7)aS?@Y6jAyhd_ou|9t$QN;| zz1=C++X*%kA7(8?-~{BZ7)EV9jOgAJN2Yc2?tI_L|3msCEzLe1oWm-hV|a~6RjP-= z@pjx|+3qGYrB2EIO3Q>>gsWu8%l)?m20Mpp@EN$&kg&eoqiuAT8I{+B9itR$dmE*~ zLLJ!wI48B`$puUd!i5c2>PF1b6MfPt_aLTlGw4wb>aB8motM$y3Y}omCt{1?YGO0`WbUKJbuUu?e2S>&aK+n zPR}tA_CBtTuEwr9D&*?EUdhTf!#XHub(glPOZbV)T^Cv1IeqQ4-E+wE+39S8r^=Zx z!5=##6W-~ZUFi&)?JOGv{cNIkD~I(IiFLm?7nUbAoCy`}>5@8Umtpx{AoI=b${~k~ zWW2BoGZOiSR=Se?S!)=qr9LCeg3-vA|X5J~!?Jn;fqmPoU1O6nv!%1W+ zhwsF?%@@gWOF5~kzy#~#L1%Z49ysSa)R>CkZaIEkuGGBJon(`^icGZ%=7{mm(*AZP!Z;cd-e1${)dr|tiRcJ(TIb%&Gogk7J{nNU(aa*Gv=?=N#I zfFTfyxX03GISag~Gc+w+>YD2D5Uam4bh@4%d_`TOBD(##^ymMf3HUv^NA-9|xGK5P z)PoY?%e+0FPyWMY{8jEN;!teetz%qSpO)G#$jjH{c>EWh#TuB@taJ%w$LzRCIyt^R zeHO=La(o01wIx|*<$Y-e(;l^bPAjy$Y`LAfcan9u!IZ|la^icT?b9LAzl*XJsl12d z-{Yt!mxPm@xBR6%t1VOvIif>mum@?==n~!@Wnk&InG1X$ZDMb_&GBg`YMA=b7rGmN z@WjijH&jt=(TZx}Ne+ZdxEgMOs{HHD6{G{I0B5Nk4uzGphLco6OKo-&}pI1x{A zh?`~?%%`zkqV8L2J-;ogE~AE8iktt2oN9?Ye=&q|3H`tuc==25AK!Mphr6}H*D>dy znQ!xX+RP#6Fh|?`o_!^bHLW2zPw+1FuOYbq6RXzga_v*S=Zreh1CI#n@<{9weHuOy z?F{Ecari-WMYJiRBZ?YFhoi31$!I`yCK}-yADxPxjZQ?9qeIb@XixNF^mFul^i4D& zS`&?m-irpC8Q;fOyGBn$_eBpzwf%-0=#PsBm!&Fbo5?f`0HOjOnR6{@`}!V%t$0j?e}uD0;41~9PdK@N(rlUyG5xKkV5sdu69 zCW+DC440L5a1Pxrzqv|xE|hEko{SbNTidf0^=k6k$A2b`t*ol>mXb2Pi{;R{thT@v za~3-j&yp`MNdDt4c1nlp6ddYw{E6?aN^+RWa=y&)GR&uv$xKt5$6Bp@MAx>-Kw0&R zzOvkm(O;8-qDWrIP!?8bMERLZ6>E`{vO%u1Wfb ze{rt5%&MwyRSm_aU4~`52TQFW5V}Ho zUJ93TX!w9T&S)3iVfd73(T1j%YnTTr$EBeNmHg%Sf&cV>zr)mj_G&ZLAnTx}%T;>| zl7RAKJLSPFnV}anppN{0rR#`kiDmGtvF>blNL(`=U~L`n9Z5m?w>oC2y@)!(1n3gZ zfrlX1xoy6xN<-5gia!GP`I)`TyMwB#{^lI~U&QTBq(A?h5@;7~^95dy*E)swKv155 zR1SoqOm{C<>B@F-8$TtRT#7j<2$e1a553d#Qa3EAf6D^fJm4Oz@Hb4dA+opo(3A?` zHrJJzC_~aU+?KTCsQyqm1!q45cTX_^F^0%sn;*o^)=fG=j_=hI7ZT_Ac_d%k#`u<> zq$AC5HJ%@NYy&y2D_eWjX)aG>BfVQqV z%=&R3JNk7OR}Y`RsOsp;#iTEHD^Bpfc1hZq2CuF6sY4k4IzI z;A?s0bLjl1aFyA~B`UVVp0(BKWa_GSlHoo+pH5BMrnBVmdG7x*{oQJ_vm5yDY?8CL zdh&MKzO=`?@Uzd3*sk=ubAR6Z6F@9-s%cEhsGhb!YJSpXA4(d!Pwmqf26MTtyr4;g z67u)Wn9a)i-Wr^b?(<3?<;MLa)~E-b^;N9e7=6riXLb=>^&7gAeQBZSEcIy)v+$Yj zs1>PXY6gR%hQX^*yWj2GUP0`yy6wOuzeqmDY2Z%$a7Xu$A+JpJJmM&`X za%ymUQlXlEssw(4m~BzD+L%rE^pxlF77FkSaSQB34RcY&g8pW%+r~%Ix^!i?#-F66 z;tA=E@vG)JyO^?Umez(IKNj;8iSwp|;{TFq@nNprKd7LW;De^94qr~*TW12Yk8gJuHGG={TXl0S77~~?43X6Ncr+q4}a4f`aFv_xzC%%iF zeosIuo8hFqmo%Y#U*w;k2a{oh^n>16 zn-9au?&B-?kM`d6+N#W=IQjE*uIoh%E_2jr#kem0?Vfx~VL35?!UyH4OaH|*u8+UN z?7Wk{U`o1`N$7fUsq`*&bJh57eAvod)XoTU)G+hoQ-n><&CPn!zwo>YwbC9R?%$;;8$x5MP+T!emET;bxU8Sy=xz>NNdsK6^<^|BbN;Dys(_s zp1SU;xtC?-VV=v;>fAT=B%}0l!=VD- z{C;a!LsxCxWo5s210_^G?`#aWI;Owd0-s!lvwk1GI)YxZmx;zF(wtD%gYv?X>KkP4 zw;g4^Y=~*iS8VX==QQ+j^}-Z&^|g*L(UvBt9+IW2!Lmy0i1VjeAsq+kbr#EX!&DS) z<;go_z`SziX-~|yWK*)-(=#*Ks)pN^yaH+N;`5d=XI;NvLFO!^0uGbUF}4foxIV$a z&gH}VQ8Lpt#WgAZm^bgo*x66~dLBl19v^`D$qe5=GhXWBYQNs%>xX5Y%Hseh}{$hA~`zQ~PvyokIYF))z*QucgL*>ftjT@!|NyL;RM_Rv>f{Em+6b6?p8sXys=FAFcxcU+(Z zJ>y*dj(s}jjB?yiHc&q&JI^N6Z{wfC1zV2g7TgmQ)K-{+&SLIMlouoY`Dx}K7UPh<=ZklkiX!&RUQJe_W08pDHGor?9Y`T8h%FJf8e^cuZAQa&-~4M)W$wyaQ#e?w^^O`r4usGlklEMF+yF}N4MEgFWZRvwmJugQj|M+ zOi%v9zj2=q?aLG{kmgJJ>)f03E~+FVT@J@Olx&Jua2$V||6Z?TTig`ab|>zw7`1XP zRdO8P!6~$f*w_m)Js~+P-W{iP{WFfahZdz5s+nG`zbHeob+>5HoO<#_tiXH8b-_k6 zn*VW{yaku`q-S=bShm?anpI?~0sVNM)A1Y~?H=bd2S%ha&2KBb<;z%+sW_4qSdm?n z8K*CL!mQw?u_i3XEv8zunrqC`u)gVrN1{=-33sIpeuyJn37X0CCYQe9`T6!m{ory= zwjYF7%HAi$yfwCIPr=gkR^v4^U3@c_smrnRCzEp~v5wN(?XuZ-gFa+AMe{t@4EJ*i z_0t5%`dh(H*I&sv_4Fj}5AQ=VGm)#MW`Eb1D*ORbyCX={+(lKicjNpxo2$Fl;$@bo zVP`_g#zM<75ui?TW@D$JIy9q{bCU;>`H#t={kA!+Q_+9oT#x5f@UmC;jLAK|QsUwv z*>4|(-%rlJzuo=p;%Vsbbc{CBI9*=&%n7keo#tmaO;%quV;6Pi6Dp6Us?CQ~D7AxX z{;TJSZ74f8^X#^k{U67lJ;CSnNgVqVkT>&IX={_o&A84r*4I9ykEkct-lMLg3V~RD zq|+X0&bym@@F)(b3jV054nI2#;e0%k@6(WUPyAH617op^!slRospsw(gnlCwbU|_# z4!s#X;duyuCSy4VrcaBlzH22*G*QjehgR2-NvdISE8^8lQ5_Z4*A{Y03nUN1P@Bm( z9sIf*=A|!mci~Op&pNwxp6fZ`pXM62m@EARwlgfaUVoIRvv#Y77OVS5Q|oqu zi`Edi^5GtSfi=uapA=&nnvTB*>QMo@aXqDd9x*8}5px>raVV*%i!F*9xsqp49(V3a zbxskRlgp`(?{$A$QC#)W?M{XVeno@zoBF4qs_{Y0-K##Xy;+BFOox!j(*-b^b_0a9U9Iq+&zn;i&i!F(I5S*qZs9u&)1mMS8iwUzE>lTG zO)1?Hy=_-|Kj*rId728&d?JgjmCc4h7q~adbZf#N;L~ra2AV?Ciqf$BVUBq<{l~k> zev{%~VaDF~Y!2q%)e$;*KW~C^e7y4T82p>&`+!*gy?eTnc5Q*W@k2TLgS3zsf4BO$ zy=$-wBFHans%SrjCh2X;t!;+abGK>80(g?6ewszRu?KKVc>r@$09W^msgDKJP6N$vHS;W% zH_MenA97rW@vZJ-E|m05oyd!rrVjKzjddG!OeI!JTH`gkVMSke_NKZ%cZN4%lliYX zhxPSsZLlfblWT+5MUrV;43;~WJI&Yrh0n}oeycPbu9mFc+P&^23XK+xW~=^J%J|!K z4w>#$JOOo3L%Al664~C;TTIZqysaO58*?;XH#1fY9<8H!gD&lL2=gFW=Vdr@ANQ@h zE~XP_mA3q(n$onXpH-CWMdj^s?|vH6Bk<;L?n`aGuv4z+ygC|mmHLTSNiEDi;4O`D%~^u7PiOvf@Sd^_APC|70ohhG}y-4j{4vS zc#xG(AC66v#A(u)ZnUlKA6<17uj?>o#2?T#kK<1}n1bU)oaeJn@{_bJt=;<;)HE&C zj%`HV4zvs1V4l>|9KAjlp^tL)${qg9Yw$wC%SMfOn^)YxPNB{;Xs=*)#`!5`Vs<{m z>~PA5^)(jvs&K2k#^)I{O8bK)vfEr-%``Lg<2@ZC-1{LqxYyLAgD+}k9#LuCFJs*6 zd+vmC-0aU?XAvH~d6&mQ8-qrhPxE_*6A6D5uq^5oVI$H-e zZ|90x&sA!eMSh~Wo|Ku%X_0ETssbwoEBydg`mtH)WuCGPBHBJr-C0~n&a@=7xTr3o zu%6k}t?O-F??OE059#&L+8gQh%6cUgyw2ObcJ&_o^9?xfES2V0ILX~!;a_5LHpqIB za0joTQzFY{@T($pl@+;J)%Mghr5W#}zvvGo885znYHoU?I{3Is<5KfVH-`PNLC?`| zwBoH-7dBOvHY*p`hLb_I=sSA6S=8k(QSSdpeicl z>)EkOsowTK)#AV0^8WLA690xdI;TdwME>Oo;_lyt2WTW8ca~oUCGYWs;Iu$jdDO0> z%f-&}@>^p*JH1U9PLl6dc-Qws$wF0gv7ncVX^>jvEiB>;r}nepV_4v7(QaFC0IF~d zC-f`D%TfQ|ucF?nzFI^1vOpGn&siUC`rt*?_ftVvDA?noK_hDPI{xN6sn%{$36(I% zQ&4@AD_H2&Owk(*71eveKsxH(IGjLN#-??6N>opuNvqI8SEjG7jN`t|6LlNCb!FZn zmG!B2$jNu5WzyQ7sRp8AJ2CNj-QOFY!a3=0$p#(6DScic3Y$7A^X{JN_bwu0r;#)IQ>A%L-GQ;ei}N3!>0Evm_7kN?i`X;hnOD$i?Bd1ncluXYkdC=(a9Y26 zBJ6AaZ?Y)0OtjiXnR`|rmMhHkVjg97?&a`7b#!a>^s{tC{rD@r5muxvx=uBcL$*Du zQ{JazUg!Em#-5;S9suLxrbAQzDo4s^Ri(|vy}DtjZ#$(Y+bes0%j;$_hG3eCbfgUT zQhLnn??Kq{Ue)PNIb(~Sd7~4xPDad}_QT@KVgs?gld%2^R6F0nc#grIL+?`&?-sv! zom2gwJ@2?a7vp$A?`9Si^T~@$=r1D2KlB*6MBJh>Rr#gw@B>Yg26;5AJ#dAaW68DgX@cA3` zZRgU`kP3XSSKQGnucl|aQgwbxFR?{rUaA(E$#3y(yyNI38#kL{d~?^T$Yww^Uvp|Y zq@OxTEBRz>qTM(MH8_*}4K4Y@Ir|lwU{_gs0wAKB7r9xGQ~w;p1rRL)nmA~|I#d`+wx+s_+*HQck3}86bqXM zFY5%})j!y;6zqkBr0Sd!FsFJ{W}RWqBb?Lu-m9&qhR!;-`KgF1n%j6-h5J<4B+J(!k}!jF(>~)(h3fBt2lQ#HSuA-+bcz$$#kXtZCGpXdf4YxeC-BX zUh}1|C83Jdb4l!wd-6fOvEp6B0eyE^_F_>H63CvOnxVMvz?sT zT%LSPe#~?kZv{PQPe;>DetcCF8V^;VN=jGY7&nVZ2h-27q4Q;|IllWnY~;A~Hke0k z8qtPowN@AZ#)i6wny}RJRMSO#%&I#2D|y2H)E27x1}1UuwfCWtDyta1a~}L}%G34_ z?CpNKpe?GgwJ?H}BKH?*`(zpH;|toW<#y|?kRw)l>Xv(wmSJU=h=hwgU!SUrXH)x5 zO~3Y<55QAmPg!9n{Z6RaV}8EgG(i(YgJm-OUau}gC0P)oQbGN3uk%^oyZR_r{xR%I z6Ma`hHS&XDPCFH@(3xK;=Uxl%D=XsE5OE&Goj+p-#Oo^5S@iVZh%%YmigJkmH{puv zVl~>T^m@q|!_~@D)X4Lop#apiB*;Lf9;*a%Vi)nre0zQ?5@FFbK{$GhX#bjI&z1NPccyIlAPgw+u#4?K9$dXDuZ#ko3@}4PrLRi z`CfXAAsm0`uwjGL19}bKIWU2vBJU2J{+H%Q-p51?be`M7=kI_9pnwv8|Ae0acVkp*QWEe44Z|DbUEIQ0-&}CB?L)RPs(z(0Av62gLCJh*M99Q)gQ5 zcF?A#(5CvnUQeG}D=A~TudWG%j;>)o|J2uZB=?!Rs-KjjYHP(CViYuQtr{ez;J97Y z)6Hr47-IWtP*Em(65BVC{$xw~x#_&Uv={&A1ajbSuZmXcFn0w7ak#mo|Ma+*hG%8W zLmcCN471ZiUK-BDJWdGzRrj6cw)`jT=A;$P2$$TigD1^sda$<4GUs50VS>O z_A+z46+_-%@Hu=VH;X+~=089jRzVx)a{L=_l6*jVN7O-G{18^IB1iwL`98Sh4bhwvL(A;QaX+3}I(^$`;L0_!!n>d|W$sx#M2FCa*+xyCM#<(9t`h>crPxu7P zeh}BLx#?1M-ga`Ai|_%!)=r01p2Mg62rtF%>B z_1C)Jssyc8T&NB`#Sm}3u-de z``i!0n5mh4#`U<*9}8-F-Y89Aj&<-=^~?>|_q&NSv$P3pE?Cgk_4U=N!TKVj14 zPkO<#0snv?r_*)B&&03Gzi>dOu|>7H3hVx%p5QJ0Kz~ZaPBL>-cxT;<9bzfEyAt?> z61tWf(rY;%Uk#PWXId$jsvxVJ8~MHr7|D74!D)TLNqxZy-NJFXl4FgSNs-HcWT*P< zNA+2zo5p(l>uR;x7qml*(pSu24uLU^q|O;9vrbOC`&A3mz;|PRi~IZ%$kP!${yNOk zY)@t;e%DjvZKnf%gxB8Pp43W7J9uX+u4*mPJV{IJTWfq{rV5?+U)()CW3KYAc$mwE zns~OaE%AHnZ3p`aBVf~}See(1aS>g2Ssi$F9A#r}#m^)!Lo>#xwx&}r&E-TiA4d48 zj(v7;2Nb*!ujMXk#33q@ch!&cs2je-DF2|A+3hE@6T&^|3ha#B5-g-_Ji_+W&dE*j z!$}1@r|*ofwFlV#i}>HTMSL`FAOFZ@cv;*lelLDG9>{IDQ#>(l5YLIL#>?Zm~fb`yb#x?M&7d#-q~-`Z#^HsP;bYgY!N5sF7ddv z4AIY7n*>Q%D1NWS*liKhck1r8LzCf$(F!wrv$+C|q^N>VL=AZV-OL$1yG;OxIhcK| zJDirzp;>uV$Ji47S((>ZF5S*y=;N~Bx^$$TqaAPAN;t~QxrH5a_iUAZrV6Z~jSDJ(O0f>wsn`X#i%i#xxU<$-m{xvxs66U z!r#M_yyBxMa|7!l3gGvA*ATezv*r{U;fQVz8$^X&0j}t{El1mJGg{}qe&N0@bdTq9 zV44McnT{cy%mZq?>rKBN?&Dxz8|Ytu+56F-8(x3vwpUaLgZOd`yXX|K32!$K6Z)o3 zyu105CbTovqCF6I7 z3Oyfv$!l-1>rcC)?Ox$egT9+b=cxz%Qxzw@tehfwbG!3 zd_w`XCOj?DpWz#H-m8ltn_1rKnR)?2)fL;;!B-y(CxvzBsLF?* znlf6V!dWGnenT6yS=9YWPj?6|dO~e+Iy?%ESVk52hCJQIJ9?{KDmkco4<+5gm7Inr zLmgk@QPD<@txfk>K}5M;pO&9$GY5=4;=2;Z)kL7Iu5C$1{2s0HGZ3XJX8N+yBkzp! zCLhLEB`@<)Y8GFg+#Z)qu8zwlX~wO#d*7A(oN-^WBjd4T8;_kG8GZfw&E$B-9Nyz! z+O@nhDd-$mFlqB(oEOSkG##qup6fhsj&J3Yf4eh$r)Rr553yS56nXs{XW*2$Spf5L zhj`UQ|J+4qHqigaiP;~(6X!eGE7Ll>W-4>~xWV+`mDu0N89##qJAw<_qXO8fmdL~} z*P9pk+RwdQ|Fy`e`H1dwieHbwpS|dNp3q_5@1ERj_A0Ns<2>)(pW>-p`(K3-ci^8_ zH|^?Gx4_fZi%%t0;_XR!n(cD&OcCqNq;lL()Ov=ePYeD55AqMFPNh;YS!QzRApSNN zcBn>DTpv;v6Lgo}<5BKcJ>-fB&i5+p$L}V#t`WEIH=og4MfL%t;s^agCW3JlSkfTNfFL#Q)gib5_-PE?E|4a6`)mUn=M-3ty^f%Rx&uUN8Gw z$6~D(z~HxFU^v(6NIR(c9)s&W5WY$YFq?+rdlBR>Y5}|=JTF_=LVwWPoqf}(o}=Sf zVZLCK`?%j3JxRBB0Wy_UgvdwjQCRG{A?gWVZi_Rk7gUftDnxmMo1=4TX-_V7Tj2=X z7>!J`MlYG@e3om%N zj0=R@YzX^~llq4Eme96gh?M;`oaUId~!mas!%UJCA*p)#M9RH#FZC=uM+$Iy{I;*CsxKGdYqB!OM1}n7==ni;ta#o1LV89dD{{OtMe4u{j=|ti$K5i2El?C@U7J zX+DeFIJ*sK9&4HStL%HrCYL+E6|uUllWR=d7p7G!nq**sZcWRYq^>|;e=AO{vgw5? zB1#o5LU&S{SEX2}4yCx4zw86@a+4&$4&u*T$GgMepWU-mgq?JbXUU; zZh{$9gSFJVs5RIQ$N9oM*AyqCpR2jgO{`I_Hc{2u?aAwM1XT?r7BZg6xZI;lx(hCF zr|44IeW;{TEw7>|2UofYGgw+BaU%w>czUyW`jW}DG%43%>#xTi+@PW=1B)sTo66jF zU(FL#%ag=+&Sb$qx~}3d`3Io&-O>SkONOYPM^g5TRZ(UtYu~=eKRxU7xA;eV0l_#7 zp}xYiQN{ImIP&6j$U?gIJ#-aWBAYIwckR5Jns$z+r>{oS(y`H$bV@WaogR%&--}*L z-%^(hj5^t++=_!-BW%pWX&xQu2`6E-2sAP5#^H4sbaFPF>O1Z}=Q8~jReAMwxc#8p z+~tE^x}nP`vThBpgCyq(hJ{&dHu#52+V5V)&nlix93NMukK=t_h$h=YH!PhP^-ia$ zjHX8o(|4m9>6`W(y&PTZmFD7P8z&X;K{=z{xS;jPavtPwhA?AuYj=jPCb>BL{}S{_ zmS6(y=7Ix0FAw#C`@IP5?F-X;*_`DN{%E6Qy-7(~cuj7eOXuNJ2h9|0PR^Qg$>A%- zAb@w8Fn`q56|ytJuV+&stoD0*V5TQc{>GT395P-3+JT}J&^N(Ys_?_8hX;QQBhZ<0 zbAb0^0!(y1-;WLS4u@!6FSti}beK2j;cge}>dF)i!)rMO*EDt7K5P&U!kNtotA?v7 z2M(C<`Y+6>zWX;Q9UV~#{h(@Eq>dX;mG->r5fzfj<0uF!MZ42t(PuVek4yi>Y5xKd z`!;Nxeu4pb6Q2CM>NArusA?Li$VFtaJ(Q!D95B?h|2x>^k1)(j(yHQr0jSxZ`k3#i z`#wsyd)jyNCqJN@wx!8lQthT?y&f z4*xun>9!#oUV~|_z*{_X?^mHa1j9K`Hd^3hERvm;c(RwdS6^@r{le7$GQ9TZaL^^; z0UPSJCJRkM%%idRNS!w$T%Nq=;{@2~DBdAM!d*!}5v7Mr_%vNrOF8yoEKIeqj*7x& zSbDyHA?W)}{bk2ZL(MYl{t~U!<^ApT7=Ca$R?fTW_`?7{P-@{KFI7L{o1c- z7td~QYNh@-y4QHj4zj=CHQ)Dg@}(26H;_n8#iN)@qI^j=J< zG!t_=Mz`LFW~yy^iB62)zPk8=T=64@bq-bX0M&34xMw-hKZ1Skj;qKN_uD~c4m$3g zw3ktu&?7%ce{6@IE5Dle4%09#)2HJBY5#ayI^MME{P;lneSE<*dTv`tufMqc>s~pd zC4Ff(XZJO||2QhH>6n2}-Opt>Ofz2)-j77|Dfp&wI>=FGv_?QXMu`7oye~LC`k2+2 zfs^UR^eX&n4N>q(=<*PF;~a|eZ-a{Tk9P)_>K%%?s>#kx#KY&{PJ_bBxgwl~e*K7* z`xNszl!Ij3^g}GcJF2Ha;Xc`ap&8u~vQ%eI3lAoH?5keLrD3>@5&j+OrOT3nKAzE; zZ*o69MadBN_zAhDI%KYp`TX-qS6Zn7^iiYfq27ncFE$ss5qkVfGL$O!4T$|1nP(Cu z!E`$}EBOp*om5|dAQ@E%TwhLc5fOspC}T!kLMt*zXcoVmlwcQ zr(j7&Lt}^f_3KdY5!jQrsfA~YLd(^^TV?zcnAC{=w4e&r2BLmDj=Qn0wkyw@H^OGTZ(325 zwGB7B4r0Pj`PzSe?@|iqE24XB6uv#YHYyVqkFMc*oh>Zo-6$=p-b725tmIzn}l0nvSwFYG7VK+6&|_k3;La=ym(38wsR(||eO}s&`^bO2(m7KXSl~rso7y;+%>F3SFQ17JPx=O|PCm-GQ(DA8I#up$; z4WQ;_oUkk^*aLBGbM)8op#3))4hQIMZoZR<)<#X-EN-1V7T=e&q(JTft?L;V_dP|E zIX-@`HvU^AEQ$ANZkA)D6TS}1l&G`sP^)xH*U(|?kROid%+K(dN|O#8PhO|spG8am z6=ZCuUmwHqo~6ggptBETt(1~F!`IIFz7u-meYDHp<1m-e<;_t2kC4xMx)ZJF&+ZlJ zO5xBh7v27#mEEG!S$wgE_*$2^A7lBS`*5XPT828IDweJu#`6)~Vk3R(BiOrocCp;4 zM=cc|=I?$Gvv(jl?E0Sf@M3tvRNLo*1m)&#d(2d;NJEpBPJb744jZcJd z@o#}ygtx<=XfHBrorIn_Kc!+hm_R+co%S&PLBVYQjm0SpG!xoeUg%0Q&;`2C6;jnb z_>r144trhfVegB&+Az`4lxd4#65Zz~QT1S@>C^Akdq0UZhg~P5GQk;NJ0IO?|9Ne{ zt{)swRc(x(;Nkv1ZoEB$PSJ}n)P8uh0r-%Y&9Dvd@AVZ+dqXX{(-%F9Iesb_0H1w? zeyAv|^q&_|fQtHw>w~A8I)@wdY}<7@2V|&|I-v_RQ#pc~PRRWxYnoDpJgs8yhn1S3U;fNf zup`;z**r`mdM>!vhM`V!&L|$?i*daBxc_E44wi?xw4f^=OyRgtCfINGBAc$a0(_te ze4sacc^q}xr!aywdf%-g=w9*tfM~iOg0tIw*h)jXKI}+I^f-Khdn+EOzsTF3CNk4o z^Cnzl_V5-AN>OZkE^N=gG~$PCEBPV)NB;kk8eoVg>Jd7qg0Qk9a_JK4ixJ{Z=cE9B z>@xSo7G8R?{Q8U>s;Eol;80H+V1@(Ta_Gu*BgpP7=kfamX*7x_|EYbh#1NFDE3GG^ zXDT~hHK{R8U1lSB@{62JEyPdmdnnsc_b+w-uBO$fpy#N^an)WF&-GzijFZ6xxXoFZV1K4jKn#F{F2yQ>!0vxe7iL=Y~_$w@asr;|r;F*HCk9 zh3OrD<(=Sm@RwQozttuG2G=GRY=`-eOH>B;)eLn>2F&vU$EbgCj^}BSPX}F~AH$NL zxu$P2Q?P=jWtNHck@g4opu(Zj=OW0No*MXXirXE|^XKmDWKsE5l~!l0(xZIj?xCc- zi7qxj?j_dg9Z6=JF#pygucIt>wfHK%_IkBybM^uul!=S z!VAowB-3CtgM$Y6o>u(mJ5$xXK)d$3dhi`ld!9OIL$VIPLHi||Tub#)&1-6oO?UzN zGl70?u?l^M9Aft#t%~gfx}wH%KzH|Sw4diw@5cA|vJbds3)A~RxM^o6$k$YC_A@=*X zFX+(nn-?pm%eWU}^%#_|vsnLS;-O;YDhp^<&h&o~+T`_{!-fajB5I_J!e z`9Z(F&DXD`F3Lu!bza^)t{(mwU$Rpjye+*>CaG!Pm8Lt zJekXUDChK`au9o(?%*BT)p?r(;X4q1i|aXtTL^8BEnp*ZaZ^|&`8bx~63&q?x-8sh zy5L~6RTcG_cs4%xIeH=3tD4*u-EFJX4Yo{Ou3J2#n%WO9_}<2wm0V#Kr5#}jjiQfC z>wlEq6n%_cna^4MGgIqJ)1Bc;NaPy#_Ipu%m-*)-s@HQAb$l#M)%}a7+NwjJOIb6J zYO;m;y*zcuCBbdZN>!(!mWiuJoToOBz^-EAAW!T>`ScT0f@@^1pX@R?Nu?F&4*BvY z#bHh5eXQo!bwi4za7WUT+vL-DpQb1mrr=XObZ_}Yw#Fm<8i)fPlu0S zU@EB%^M&0p!q3A?dy9d6!?Bp+zPj+-Z7d^pK zptN7fUuJr^tAQKFUF_Q) z!uesc`u9_{@N%1m%#g-wZTtEuT^=syN^F@6O@Swkr9_%v)ByVl}Ac^U1yLT1Qi! zBhu>Wr|E0ddK+}WI&1odYpKr4Q>ER_-QXepSrhMnOFdRw2v=KuRVzJQQ$5zhI+}ZQ zG?_jQ*V0{F<{9~eu68?|eR;Z^5@#|5^F>u>Q;b7Jk&M@bs;!dx?neJ=K~eY$)m_%i zoq1GwiFf`#Du91n=UwN_d!N1dd23&5=Jy+=m%&i-s`!hF-xbqaaam+I-n%FGQCyi%k2E?M#Sdh*`}8Fjv|V!U zNql)EMqMQe+!Vf~dTb*{)Pdku5c{vQ5hAZVk(F9Hlo!(EL#Jht&sX@`I(g%Jd14z@ zW+&EVr@DKaKf6(fzDjhN7xqslLw^T_^C*PBhfQVnz}ZZz-bfcxE7)#MZW#snRNhsu z(-!uCT(tA9m|hR>#wXlDF;hfj$Zitkyoh=Tld_p2X{9|DbJOQx%7dbz>8R)hSaPRy zOw=+R4m0i--IG2O-Ig|u%1|v`pB9e_nxV>%#mZ~8Dlfz%pR9MapRB0a=F&Di-OhdD zK6rc^6Rc^>HmZ)R)&}K#M)=e}wjb)ZhkNz3-jhkT2|I#?#5Vpo^G!fe#6vys0 zom&N$R-R^{bZ~1_JZKnQZ)0w;U|>|z#`W@crQ8`Th-_7h8U@Rv$Ae|jbGEqKaI2#q zheH|wh3tUmu7?A^Q7@dR(YLA(-=}r%0xziS+5Ly6Y>6(Yr|PLZg>a_-=KKEN22NMl ze#bp9wRd4DPl!6@oR^IFrS!)bZxpvk-_YB3)w?#w%ibRscZRP{@5FXii36?>=P5f* zU^i{5p!n?pN`CYJQ$)bY1&ag(#Z9ZqU z0Eeb4^$R)S_cqMY!%wGEn`KgS4%})6_1hFGt~W6P{k>})sM70(RYdfX@Xjk$m?0MB z53VwM@xL2%q{~#TA5&ONhcv!J#WTU{91s7q<=2c$QJ8!_D0?V9w$!Z=ciR z`5(#M=}8)&KWI))!{g5CF)pZs6PSGD+-5bIo|A$z9}Rcm^l6C0AU*7R!5yBRdqwPr zJWG#3C!V-C?R7lpqX!=1^YQ9qJ2pk0!`wQLsELnaK98yfpe(^YCv>~+=v!K?&#ApW zaC(RPRad=6LnpeT?jw(L^r!5#i7Id&ymzeaAAKl!+e64qQP8JUQM=tmV|%x=Sv$N@ zR4_de7PdX+YFP1=6#RM3@#S&lwcmsCTEE=LJ*?}`+yS${F>I*wd7QUMH=X&ba?n^^ z`E=}c=Dg~cFqTc`j1EAF|DvPL2GzfwZo9gB(OP}XKb;z3ybSd`2bU%ZUR7OEOc$Pu zPgxv49iEQ6hQGzn+ucYz7I(3~@u@H)ZV~3-pml9>S9mMFtiJg73?=X=D#FYy90%0g zxiE#*VFUC6^pA~$%{ufzCsEOi1CLT37Q0OKtylXl_gpRHV(^juoHMYOnO@v)>7a+% zOqi*0?2$H)o=#tk+Sp>)L|ylAx<0Ct{uEKnM0chqqC3(*E?(7qUNb!wJ&+!Z9!+;g z?b6K=O_ZduoPM?gEo4hQZ6mX`59oU8&@k7evaD_z=}z?_wXrGU2$NhA({3Lq z=wZHeMjhLHj@@yt;W5P_OFsU_ilIL0a3pZr;?^R|HtH~ z#yY?Uyn{8kvfQH6EyArTyU1|vVvRo+elnIy{{`quYg#Yo7LN9oY&=Hh9b=+utmhyX(4_DwTlK2p9*`Jhe3H3+LU~^nJ_%<#btc&k( z)eSbpO@b|P`(RJpJvbf@;G#29hdCuEPJ>rfrS+)yqLX}nC){ExWD-MzK3yqj-{LyY{XOkF3V;2Je1JmSAo*p53PC3cR#Mq?HsO^ zb3c;B$LP=cTvV&};f>T=UhSq|>*$QO2(we}2hR2d8u`DI+~IlsZYE+8Q-#@At$LU( zBE6}%?IRXGp)-HLoWiXl({*~m9Qwq+%}`-xWQ+b--AN`3ma0Z}n}fa}kJzmMc`Rd2 zERSmFtZHhcTccnV$ZtNyj8^|_C5ufGFJP&~Og%;TJ9@oN5!uL{q_S?omr%^sBR z?4bS-_wibArRVYn6>k;l8?Gc=bXKTDC*d||41si4-MRtF1WK{dfWFY^OuNQYr}TxkY^xd zJ=G$8@NNUB7G85-hw5iXdrl`o-DaBT|4dB#2IjDb2KBT~HU||-as6ynQy-1!PM&u6 z`auOpn**5U9(<}-UG6zpXD z5A>+-;=sqJtuXIhqT#lKy`BznjrRFlzBU0XKOvgwTAYrHzEN52((C@34vqf7&|ebt ziE;&9qI@>N7Qmzyzyar{;Li_3%n#qXijJ*N@UF`31)NhO)BI3>3jJci4p`PlPI=}8 zakJnG^~+_>dkjZCuU0tir})G4=&AJeG}A@oKUMN&u+jXmz~b^}W(83f*V`O6{0s!P zzkYb6I5yey`Vqg!&*_8Kdcrr`in&J)J`4r<-Pg}TNB&dIM>1Jf6+;d^Z%$R|!l<%|RK-=r)%mDArb6x>EYe%dc6R@Nw&iEF-vxEwRVvhq=9M4d2loU9 zhJGe<}Dfo*b-= zhx=L|yOle6rkmSN{vc1j8W-`YakK_snP@r%r@EFR`vH-JD=8-VU;WW36~JM9i`|v&U2V59UHGIbPaHHq+fS>a(SC;5= zY~I4Openxz-Be*ZjVq(KeEki%dmznJAN*xE_q-z?rM7CEW|Sulz3UG+%XMrxsRh%k zWsasEUi%TTjhe=c-i`L@o^_7a^Qg$=u6xl4d6)x78FNLK(R&}lCa?u1Q|vB>5(^;6rujTB`DcPB|4DebXOwPDLP&518KV zqZgg6vf7S0NY%|ZhTP9}c~6C_FrXVDIXl$F``wSj^aMwIJfue6uh!Y?{`@3|>@d@} zRnFMrdDOdT2|KSM_}l3_4`n-@E}=M^4BdN0H15bB z?O~DTHm9_pxRb!#4`bjr!r>Rf+$YPkgCGsh!RlJ7w(FT7uS~B}lE;6cB)=SbEtIxo zkcxX5@m+R#-%pd)3~JkvKJ7(&zK6*X6UEfo6s(Kr*jCcQuL=B}b|b8ZW~?>Ok+~Ul zF|OznSnLO4^E+z5F;or1^lPu$sn=ITd0t$3R=?Zc$!LLNsP9DAG+$9k9J&DpP{907 zHlBpByl~FB{8MN7yDssBIhWtlcCP+De@DDqffoK(qGkpTg21PJgXC;rD;#!|48&Ftx<0N>=pSzH06WXhkN5xyvy3) z`tVm(UrxSFH;1aYupP}OH++cT9PidTyv}}|^Lbr#wx~QbG3UjJ^b*mgq*$~txh9%u z`sU>%BjiFHKALO}YbBqDw2uW1+VDidpe_?(tpIK5^CTF z)ymIBb#>o0(+{H>=~u3;K0oMdC!z-FX*Km3HS($GW%qAvx<@|Q5G`?!zM-*#;YRy( z@rTnY(J|VgU!DCEV&Ms~RL2;e#Od01Dj$!+`Zb0zU#-I5EgwutbIAqyRWsM92#Qhp z-lW#8gbk>s=BOR4it7h&c&^&SPXxEe{|oXv%l~HB@|V#!*qPBM*pksR_%Y*u!LE#! z!7my0g1<7#2bVh2*E-Wx;yr1zc$Gwr{zY7Wud#Q=g~{*O=+~Ngg>FERK_4 zSez?t9~TPmjf;mj#AU+E}PtiywUumW;8u{Hky!(jYcJlqT$I8(Xiy8 z&rkZ=ndtrGbhIe>Eu!{{OmIgToIDFT?{`4gnx=KAHH(OOr^C-htUWNAM1N8YMs+WJ zj9m`8o_BcWbQFOrsihLt%eNP2w08!Nr$4FFcEdP#i|M=cr#pgy>Xmlt>6+sGjp9@; zek%XQ^Ml{wIl=yTy1g)yU2pr`Qy-6!KSs&fZ}35XT_5}kP1Q@>!+Lr~yU-szjU#!S zBSI$6Uf&Z{Q}vXI4ixoHX4iFQ?i<|Y-mKsu_Pz>n81%0P?6Wm2#0CZZ);o~F&+ud4 z>$!e`kDL#$@N8Y-*~-f!q=2|}O7!y^-DsnYyZbVuczS7cAw3RzUJt*Sf$w-3)6z05NmWx0o>RfB+^sNz+i(`t&oWtK zulN?7WDfoFG5E?FagVQ@pDSC?0zZC-%Ku6c=g;KZ^m}~aY&m(Lez|I%=p4q|m;FRyaM7FystfjuGfNL!3y~qQHiqtLt*nNJA zo6d=(i5Y|DdcIav|82rJY3rG81~1p(x5!V0=qi(7bb3G+w+cq}j@qVY zP>{}`hCA6oCK(QM`6S>zKr{M#&{Tveqtebu%7vRKM5ZM*!(Og6WE8|I+rB?ZOJ3}^EYmz*DH z_^1^z35#TkU(Fa^uP$!k9*hshs_))1Nj@GnH&LHDCEc#h%NNr{rw+f4%Wf@4$+BbxrooaWnQ!?ROXt@c}@3cw$stw{kdD;bcK2M zpLN>{)D^EM^||0Q!)><>OW5X}&2>6%8}5yphU?>c;b(E>@csC@aBO^OI4C|5ycll| zy2Oiur{YP$fiFyTbzpr$f{^`o6E0WDRx9pS_eXLzh|?)KDDvFwV9r^wW{oK z)sfvZ)V)d2$@gXY6?XGyUT~6L!C!FM@igrXrt)q0SQcHbH|DK}t)J+14Dot;>2sgb z=Qh=c--k=63X{B9w_7yW7UbbA64L0L!HOKAo7$!R`(ADGHK!Jv+4O5WJe$9}XF)W| zGdf5;_!70gJp@rF&sRGeQkv1uH%xm(52k&hdTPDeu6yAOHL*6e{9ax0@}cx$b!1g_ zV)3Z6xtLz!;y}4%w3#A%I8?#);TG5H&`;?pmvOgxMFm(-wVFfS^PRfkjWnjD%cf?@ z59Pm}%Hw9apb7;@ZTrI>mMb3(hNuOf)YsK<-5fU!iojm-#rFky;~H{orQpW6L{LTj z*C-By?(s?5UD$E_r7g&_(<|ZqcfN%hffW};C-S7+^r+Oj1E3ix!OE@Mt*tOvo^-PobDWcO4;>=x_YfX z1W%i~+k_7!!Xa^k}6B1=wlmN;hSZNCY) z-N}SxSHj)XS9Vhq{jA45NF{ifis)FfmAd&dom^F!`dR+?Qz-(sK)XZw6C4n3A}`FU zu(MbaPI8;+)mrI)?p@C4f3_kFG;c7)Gq=>o9rE!xSV6uZz^|R6o!U)PwZ>G}C)}Fe z=IL(-yzc4{9{6wWpV`8jDQXLb#X~zPDHCqtEp&7EjVf^q@TVCI$#vmcI->1-M~)_m zzxxlh`d)q8M!42e72PcV_FHf;b&r@L+Cy0$@-$S_+25oyxCXkG!->u?M|H}!i6c(_ zUb%3a$goK?*?=qh#`#(cSI*o&v;ix+$#Z6}JskQH{ck~7UzsSY8QiN)0+%)!T+JLv z1GRF;pm_AMxwpx-{n{@b?xqgOpxwBZuLeh5I^Zth3#M@2bcbiV&&&DEZloRA&bw{5 z-2{6fgu6Y}+s*N8gyO7%etl}{VY2z z@j)l`! zGSM^-#{9nXGER>+)H^u&(iMla}T{nk7$EmZ&n9x6X$lq0`|}b?T5P_7B7#hB~QWt zPg8iF6AS)PyIfGSWcasZ?`-S|vt!~S4s$yF90t>$&Z#c7*A-CG9azjvN4{t99#xZm zX-+#&52@$A!t2hAOQmDY-wxr4J}5qt3^k+hmI>Am;@Qd4czp6>{F+UkJ(8T<49g~u znU>4k(NT|%w@xyhvUgR|AlXCR`!{?lUpjzld34f%p(U;Ss(C16=1;wea?h$?4 z>BI+^1e@ZiTMjADbX7eMS;%cGLJ2r;=2o$qJmc=CF?iUis&7X10lLOIH1O3;vEIhv zuQdLnuyc8Zz9E2%oK^=O!isM9tgbiBvy$3wF%9lK9pguk#t;45A9@XQy?gV_s$@Dt zucV0k2Ai>k3UVKQ=!EMZ*CozJZd$~vUDv6VOQ`c~xOLU>dF8aIuBf2gkq5hQnW&wi zxBttG%5hs4_wmo%%A;XDOm9{CO}se$nC4|tJS!a;Pg6rrcD;>HAE!1RYkGKWy2$6> zij#-pDdOP_eA8Tec^0JqOP0zVtLUTGQi#|NPREw1+$Fo5XMI{s z&zy<8#55|UF$}$DSccO^60B<0+SBQ_ zqgiVe9E+L-e?*U(YHHxB@AHR(qdxAA8q%>fwY#`=Fxj6O5Iyhjc`c|MjpN8O+sRx; z6Z{?B++ID&?-Z^VD2TI#LusdIZ763lCmC*#v5G;b3#mn}P_v&;p}SFccb;k83tZ!FHm@fP^|7Lzuc;HDd4qibNJU%=X0Pq^>&yQ zQkmCON?}}2v0yEnWSu&BwQGgvb)kNChOdwJ`vd7Xx=`>mg|}9RwcZf^qLSUFru#VwEq`1 z(NQqXLT_@CKkm*Xt8;cqI^XqPaw)BHRx@Tfalv`%VG7#ZQ52_U0wdujNh^H^HC$y= zua%QJKCf$9tS-K|uJd14%~#i-tq0ex2Vc1_-R;Uq?x#b20RQ{|*MbN2au2zy4~ana z-P1;*4u5R#`faN6hOnzH?(5KtRsI5qq*3`)J-C3Pe329Mna*mFI`{vt z%+Cw^T7DPjNFBgp_{0)_ZmBwQ1r%kqd$vKI*a{on2YosY|2xOw^O7K&eX9H5xu3%B z2FPl>(JuDmnNtnR=mv(vRNBB;DklfwD}Uj)gYcV}V|JW392w^iUvxd~^Hy=ru&Lgy zN&H{XBK}j~b|~l-Z`G%L9n6U5;X@_|hvK2Q-JW{h$6;O%!=b7<_cw{7*Qn}ps#Q`s z>#SUx$szm#iQMbl?l8fzRrRz5bN8dpWLp};VJhpnp7C5vhkI_jh{ykv-t4?Sif4Qw zDnvVVW3Vu)WWL}Yn%qakvev;r;$CdVAcHr^*=Urxgo$F`^kBY;uhI0ooujWVZeS=7 z?dNsyhi5Y3JDiJ8XXcE5neZ1G=M%I4FWGK%AJtKT;2y7_ifa58S^s*7VjdM}MsOlI zM#r)V-nkggIT`NpDtxaq9^+B>?;iZ^EozhN-ID@p=_~MP+3`f#@V(h_!8v_T9ynG3 z_q#9+!S%GIH#)ziX$Z>EjF%G=%JN_?jlC}c(=M!I&0}ISi&J=(`uwoFx0S-^Yw>OY z_upwM&@pi2*K~}%+GiR$I90Vrsl@FxX9#0iGQ@8jTO!RBIzKwAFAGvRC z$Fpt60c{J9^R!7b^?P({<<-n}gO&7bi^J~X++fpS6KQnk((JAZI&v4UZ?>Tlr;{ty zdS^Is{-{=7KubGDKIjpYl$lD&=q269;^BGjkvl|=B^bZAbt-+_$JXhYpr+omv{#)+ zE&C7N{E%mH6K-d@dU$TK6iz(fJ^7FZ`~$IVDttLpD?W*?exiBFiJsp{W+tb2&Zfhm zX9ufwS3686{_eSsoQfiUX0szuin3daT2onK$8Mzu*=-Tkkbd&o)BM_L_UzU+>n}eeJ7X z?T71q#eEz^T{zS|9qm4kcTK){zc=}_-|Lybb*|T#1ze%#UJ(A^S>K7D+s`%isMvba zQ+LLl`Uf7CAs)tRsSK*J3%I~@7`IGEr^6!NF8OdHH)hz+#i_1oe5S^xU&lkziFAH1 z>d#;+X?<8~X z6EF9--%A(wf~xsrbL;y>!Q3WfsyX2ubSlHW8}m3+ZS_u_^^RQ`&P^(YUnCEQ_Irds zB?HVOzs3J!R`?%QDx$;4>b~S~FEX#}>38M}z6!I*(`oXq@5yxWc#@9gZdXBCjz7#@ zeH~n;yUAm&t%zJuR=4MFp6QzSQP*wh zYID7-?Bg7<*2a$c>gTD+9(v{D@nF+%{plfJpqqX^smf=unGNuLk{5YTyh0H< z%oNQy6ExH4f$g%8K{n|?vO~M?rC)hT?`tz3%}!3Iq)1weZsi#~#waMy$2jdZo~iBd zfdk)pQ2)DX=8O zZgXyy>x^ckGxWXh%E%LGFeZpo6EIqD2RG3kn6T6XPtl`JRqIT57WoNd5$!lu7rsw{ zGz}jAE?vgk{>+O)N zNmS0HY?)w-Yj;#uy;nXs;`fe3RegT1+VG)Zle+oq=qY)mm-_g1+TF?io&|iXzSZ~s zg3skE2tnZa&(Y~YGq6vFrNT_7m|>cHEa zzM9Fq>c`=5g_mFq&vG|zEAKYO)z!l`R)rnj3=_OQ7>CXOGR+1piy>s^%!;3Mmyekb z;&clQ-0!-SmamN3?m@h(ort){0OpxfE+}N;qZI$C%6{hB?rTHaH`LXRwF4bk6NC(0XvueBR5wd~0XuaJ#5g zD#I%5t=bYy}=X}5SeT~ocxvu-VztrV) zS@3%BvGd1fsI-{mjE*sE-20fS!Fq5E&?7}%hSA9AY_IGf(ceUD^L*85>mbOzDhki& zx^XLZjP73LxnuM<6Et5~wLw*q-5iGL3!6=V)zn+F^KbAMUG4W7BcD50AEgxuG084A ze>2~)7PlGtk_C2a&QbF>Q*L*WyOI{1U zvOiLnT6Hj&;wP|sL->R4PSS2E?_Ce)_nLVv$A{Rhz-Ls5&(4pek5$q~w+6paKmLy0 z!G8w*<1eZYKWlgJDfaP{&ar3M!(W1;!S9%b>vophG5fLL2Oi~~DwpiBd}6p4`LU`v z`$n;^;QG_*aRMAnZkV_VNexe#7%L85#`o>ztuJD!W04o3jB565G_aqeox1Q|a%O|= zm$a)@pR`S6?i+O#-#gjpM|SUr=-2SfcjA(tbYi=p&f~hyvG;VQjOcEXEc!$=H6)V( zvUw_M_aQ5iT~wDVdQ4=pNELN2%ozQVRVpmgR7l5{g3%>v8^;7$qutanH_{cMI_zBD zi6<|K&C0+Z<$}5P^9_sCQOnXQsEP9{4libjd`70f4Q^mg&Z!3Yp8wt{TG)WESj~Ga zm#tlb0a$D`7h>%eTIoRn#}#I`N{jC+!NoNqNfNykc_LBMNcu!=Bk2-#iKI%@JMvhf0g?aWhDNT!%g5|B z*rD6W(zuTzAH*$)^wRaNz7BXV#chn_h})qH@3%Uo9J15vC`)z{k9tlm{%_{+GT!D- z9L{ySH2&fx{)(KE0ombX%Oz@=C#atbclI_`zg~fr&ad(&Ee7bJySXe2^An4+8~*zu zc3H%CE%K4f^hA;1aE}8>e;>c=E;rm&{aQCz&OFhsdAi<@^`73cv`s{ay1LnGxEyo0 zUW~Cl_NRJ>6C#U!5YiTL?HZiQG8xB(I;_uE(J&W3HHUo7laX8?Yrhy?5*Z|S+n3er;xAh`8KDk_pn@vs=SlXHtZsmXyd(p7I5vPhyyd6o zRBObkcsvy}XLV}WrS+nIDtYvQOrytWypzPQ>r!=EFOvPi3}=G%vsbHW{QRJjlS&H5 zPqC+JVvyb*swd!+RPnR)+x$4l62CZj)_$r|dTqWQzh2k6O}f@?4L*wB9&E6$;{;su zAU-@D>StVF$lG7X13rWZQ>ehrqGsedHNh|IyHyhoeLGgb%CxbAVK&D3kd^q){DwQ} zDvFxk7N_=tZ{L?E8qem1r#XE{Zl@&Fv>dkw=p>tWQccToJsx&F!0M97`Fz<(#WpxT&gmgYs%|%cyZH4k16UV((d4JdYfU&RTYJRrA={Nzaqa z*?QgC&crIS#P!7G9qim3B;NgyL@!m{zuBA}l2!>=n(f8uy+G)1Qs?D#~Yx6yH-B*hw{XLp}AXv3I4^vFEo6PpP^| zW`*ywZCAuyr^USA+pD}==jM$(V3^V#+upd#SiN8HR6nzb2XFP19LoB35LqG0GU>xpTJVaSIv6@i=9SS4n;yKE4et z7~pTFvScfH39&Pq`GffSH;mB({wtl1dj;)sd{xB$w(c_hj1N^|uT*EaPn7VRD}JOq zTG*Yhi2JBUcAB||UV0Xch;Gu+S$r*)Snc$+&2rs)V7~);RUg3-9E%o~>nV;SF5|I^ z=XLqqmSU1_P8jFU+Z$?b20wpKbJY#!Y;E5Xp%1NwO+VgFide0#H4Z}_h{-K?#arMl-;<6C%a z4G*?~58L>CYutQuoO~0VPU_M3H}zzxt`7CpSPePc9>FX4_*ckbMLTm}lhLSSuWnNe zUI*5Cw*0HJ_ugG5xndifvWcW)#EYRIlX8gbT<`CzlxkrEQ&pDC5zzt z>hQn4RLV^j;eF1If8!K{({fyYsbdaUn#bXYO!mO!lK&|{GK(6e;fo4RJFnsO2I9N6 zBGo=3(~)#+hJOA_M5tdG-#~CbiDoarA=mYHzN@}B-d>|P&yv7*$@C_7o|KPeB4VgTXrJ^usgt!9R6Z+t^Vr z=2r3-4RH!JBe&G8{3_3QTXff2?=#An`4L7P5&cL|0JHLEU(d0ZfX?N@;SV7l)gVuA%p>iA`V5~ zPl)I5LRoeI;xo(JW8ck~?b$cZHu%fV{0wmqBBkPP>UQ-zY^`XaB2MccE^{V|-TUxMb1S<1$1G#^sDA zXA>{89DAcLL>KE(^}ffq`5b$h^gGUnAYaZRCGA#A zv{;sJ94Y86!_Wf$t0OC2mDjH*`k|R>Dp$zS&6DGv9BGUv=wJ>8$a7D^2rb2e?qUls z*b9;%7P*sELi(*}A3B!Puf z;Ehv??~}v7N#fSYXK!}G;tqXq_lSG<>N|xyH1;~TX+4=+=yxBmk?-nd(A*u0-N^7T z-`7Qr=v&y9GFB;vox+J#pkISIf5zx;x2m7Vwqe1?iG1q&KbIZsf9t8T&GSO)Xb{@iELYNqyfS zGS-2N)z*`slzqSUo6CJv7wI+-leH3sbq@9hy=8d&)86-jU2?wr>GaPcc zifvb^aWu%KvZatJ<}!TqtNyPQYbaiOSJq`ltefhR{&uVnXSFAYTc*jb&P|A2N{i?# zLFLtr8oXO|qq3jN8b#pooK`Ni_dMj`FYB%Hv$$tZY!Pg^&?^hr-Faqbru|HlWT-}& zp#dtqy80$n4l-Fo;Jf~I(DxEWb%M28!l(6UOjY|ON*noAHD~f#QdsQYAh(z+zo@;4 zd{8NUG%LuN*U%lcz8*HM>0WO=8;0w*J{4cMP%dZ{z1*lz&^B0ayIjzgScPD%{z742 z_9=YEK)t+L!!R}U*eT(2bFjvb$1j?e%2& z09&?}q#qIC+~Da`L_daK^!I`T!@OE2`y_|jD>XA(KC%jK!T;&HF`KM@5lKuZGt%MQ zaaZ&czGGi`yqb*1oV}Yu=gCxhbf%8RvjZ3C{x%)Yr}6G>RJIh+G47s7Wt;kyq4p1B z3nMC==uRW}q8xq8gMCaHIR=L2OMQ~gRyPLVpO(NJhhdM~{6xCAXLNDT zDYxTnd*ki6+>y3%1#xsGjjB%DZsN6`a!2DL)nVmV*u3KU%;jUpp3?UvJTW$iz8bx$ z@9A&Rw$AnF3D*tK$>cqp-f&&pN9f%-%>RQ`vAoN+cE#|uh&G0fX@J@AXcBr>6SsndI7N@`p6J07PEegGN)z8VlpU@unNz8P{wX?^ESNRCam}RSZ7tBjc|Qc;LGCdV|I*4GMvRNT)>IgT+z?$ zgnwbr&o{mHEPELrd=@)muhpk&C;B@ztR{WUgVT$rbEl1M>J~qZ->M(sm$Bh=ctHGu zSYNvOF79-YxOW7OZ!$c*K&{Xh=H$EhEc7)cj2$05=?uyjf=hZkoOL$zF?{I}464)F zFsA?M?~qOXUIkvOEt@wEySO@5F!mGw@BlB6Q?{)doY&obOm~l)A^Wot^;YI0NAw^2 z^YFTITOB?2ljj@qH?gG3%SGL85*UIyn+HJ~SS zijc!&Cs)C6%Y&KL!>$V+U;)3fK$pcue8n>LENj$_Zs8riHI8|H$?N}Onv<(pewtS+ zsxx3^>)MbGbcULT$dgYtql@tN8^nkQNXL2X!ClqNDQSH!R;4t1UX#SN!m;(mzl|4p zehdMx!)NYgkxt3d{slqD>B#h?9-PmyUgg=a+Bz|{V9&b9RlMWh0CsOsw6n)H(Y^^a zdkv%Qon84hJ6A{bUS+wBQbvJ05D_D9CNgs~c>?;0k#MW2EV!sFl2|L!_V%b_Hc#rx}et5RgGIM3m zsmi6rVh8zNyl@Y7P1AIz-vGxQgXwPJh*R>dx#H}$;3F!-#kJ$sI~ioPPO;9WjdSK= z+}w!$F_E5e(;~fL#Xfqo^wyiDN8CWZrW-$_{|mnLB{`(r_7OdXm;H@h-A0}#lig;~ zg(C7v_G}F!X}X(>hu*+yX7PBL46IkpGD^JJ$p3}lsU+%iE(RZ|BA!ovmdL=akdau; zf3AaBzF@P~>ZSa-Y(==oV-{XzjQ90r!&<2etO_i{$BD6YVPUsw+}aw-$MtuS&$LU1Lp;%UJ9d z?XOe8w@6*%44nwZ#`37_x)<~k*S4cejbXG}`lnV9)0Tioo)yn#gNvQq9iI#~)(wtb zKN^3_+b{=?BuN$d>Xt7MK@+8 z+wo9N)0Q8v2wAqH`4d=$wY2>hDZX#cGs}LKj1&;9ye6ODL2cxC+0WH7q{raFc)lU* z*IZlNFn~5YlY`g(O9XS9PX8x%3UnAs6fKHrDoy`h7Uh+r(>e%8OXx8ETr^YEd4$fZ zcpQh5h}Pf3w}*M(6HfBo4IO+&8$vwMOKeh?*DcOgrd6|c%kD5cfq9{{k=dB?VVJhA zB9*2h_F6coihN)x9U}^>I>~3%vKvqFhw1snRM31p|OlRT+azNWem&aj`zg2A~lDo)AkDt-yxhRZW8ZIsu z_e}H^U7lZxtL1#6=Fw;4y5RKsMq{krAG$p6hwoOhev_ho)GK#p^;+m;vAP*`X|rFd*V!RpV{NS zG(Vg4Sl%X%*nv;p<#D%M`8QtM=XVF4k$o6HdIVqk6Ylh9byGj#{f@wQhhV$C_P}h_ zV{a9{W*%N|oNMU=W4_JOR+brg9#YB>c}#{wmAQQghgmmgTJdj%#dN7X`!{IMzSR|D zmeao8uQ=UytwyWtYD>O*-IZ~W4MUUC})^C;l&)aF` z5vb*&aaRRyGF3sDVe#j9*q7BAysrA7k$x3nfAucj(M#UEFFe;@9o_(X{4Tr(q4RK) ze44%@R?)qu-Tam?m;WYL0Lkqjco_430Sr$K0aP8O>Ko z*th}v-xqeChIv~f);S>h`Q0lqa_p1@O!RE^0_w4%%ft;U)U>QpMWNmVqFEXJ0uQ}j zJ=#V+(6->FchLWDWHb)=nA4(A{%*pmgl*vT5>n0c8aV^OL*`F zwI|8okqc_~z7Fc><5EgZSvF_pMD^tVL#%(mX((&$kC}l77=%M zvxmkygJ`^7D<9zBr$lzDzgSBrKM{j{X#R%t$G!RGHs-3XxvHRkuP}YinlNAIeD|;X z%^%j{n%w10DCsUAeIJMRK$P}K6#B?YJrY$u5Ut(kHSY2nccATm?Bl%2o8QDq-gGCo zWKD0YK)u5*-i7x6jok2f*XybjB1wHuTG3|~nbJJIsURMrh;NeBVBx!ps+xGL;dxo3 zke_q2vzeiWv|f3f1}3wEAPMV|*tI0~&c}GmB(5zvo1D^h$^^2KJtI%@pjll1)8aFA zFOYJW!~NXPo4mHyXa3|pzp9V@TRi;0ND@tFzilRSVjn;>KUva4zmf#;Yvr8WC%4r_ z9PbnedYX?OmZ5*u@gEI%%T`X#>ZHb^hs@(U#=Ay8{765%d>_B-7QIdufA`+gqKEIv z;&%M~Y7#YHK7Ddzg_Ro?c{kFKrz>PdL$r8C-=+0z@+4Nbt1GD)dmkPd3xiCCJ7(Bj zH(NE`95tXHsehlQ)?&PB#33>#-PK++RYO`$m11#^Sv^lAPkAl2IQU7gl5Kp?QV4A- zU41W>633XEm3;{ktz%6($#=gmoBRwNc5)8C)~GKz+QwxIF!O_-wQ_5)As_Rv{yuHb!8;ls+#BvtBr!y zrpp{Ig4mopExzjr!_|&_PY;e^8qSgW-{_g1QgmvwT8U4Lv7Yx5%Qh9uR#oF#LN4PO zHF!@t;U$Gi`UuIpZx7lHJuR{-l`` zR_c0uO%1{;=BgyVv#=O8pZDevmt@jACyjhXQhjdYVc^@m_GSN{W(f}kPw>xA`-DQ+ z)|YvvnzF%7p!p6WmcFX+hq0CuJ${rB!3+`Mjm5go-3%?N0 ziY7P5nMIKW#Q*jS#%i$Y!j%y#i>wUlD`hJ85H%BY# zYh28kK2JxxM3d-gd|kcdVYqw^$(?BBI$5hKkp(QxC}_SbnXPAi%DLKnq#~{Auz2zP zb((b!LirJMvQM15i~ro=PIs!!+G{QkTa(k|@v8FyA3!sYtyW>x>i5(svK=2wyO&? z`yO905l=TqZ~7(t!D{sb`nlpi(?z$4C$@-Qj<#<-h=`4}=o-5jz98E6Q^DiC0 z5NRxSR`Vgwo5hX}wE~?YI^#v=K&!o>ry4TedCbTo7Dd-8(O$S$YX)pK5SP`QX1$83 zFJRwBYO8(Ep0f+V0Tysuu$hfo=HE_h>=)ZRxC;B@c1`JXv#;tKhnts=yO@;ztmLj9Y4jPlW8kGF#S zbVbr>4>q~&#DDaPEEV5{XHuLKO{pN_308==Hewof%c>pVL4J&k5qZplSeAISGZix0 zugYMzEWjo`$XCkBeWEk&bm#}O3^jd&gW5*Q*I_J{@yK&{aROG_<#D;soeV4Wf!Z3d9A(63+2Ejf`yS65JE3&l1nsm+!jC-Q z^{&ZjoyH^WWt-NLj5*@hk#a*l)a5pnC#$X|qiifAoSTeKh`_w@@pk&ySMV6gN+VLs zVH6`()r^*W#$b{+$9uQ&3ctvf#qp#0Ra?Bl4)6)s?NR1ruGr`cS8+g{>qQaT19OrV z8psD1lqDy%*tllc&#pY=09Jn#UTF$@7oL;83^rM(`fwZmV;_C|$v)Hb=I1($@}E_I zjQvj|)1!WqEqlif@P2aE@8VQ?M$1Gycx>W%b$rT;(VWrj?BHYAlxwi=VUfibk%RE$ zMkiG)hE}JD3*YCHd&4O0$w@PebVD@+Z^?4jl?i>z?i{^8R2hzU2NR4be*Y1_un6p&p*SIS#3l2uF`gJl@wh_$?9nI6Ar3p0VX3pie}Zv+!<{@bM!ff3QS<;m_~H z+L_}fk(jGW%wi=MyQiY9sofiSf|HZ^KOS3nn;-j=j9jD_7#$hym>BP#YRkW^+eH!n zG4@?wW*V|ktUn97{Xn$+zWAq)Rc=eF>dSan;nPcC`SOTf(_ud1ppcuo;QbQpv|nNe z%fBO766_8pi#Pl826_QOzDJ$Lc?@@V+}S0^gMXY@^s7D1KgAz{Zodt7#P5WMH#yOB zjj`0vbG$Yw*cbo4{VlzNv+?clf(?U*PU}q-R8;p;+P~seePX1hv+B@p<8=ol4S9dwR;&G}pfSb`K#*;9#A z)7UGJ2G^d}`5Ssx+gF=P?Q-I{R5+$oxT+`AF{WX`GdeFPE32PN{a8VLHDBOk%hBW4 z67ceMp5!phyf)HV1le7*(9+7Fd(n!%)3oP^723v@e_74RKk{EUf}e3u->RJ09^56B4{;!I5O4|zI6dwu zhts^C<0DJQF5{x^Ld%IsM|yTXw;GA!>J?sP>+7>?9Yy_var{$w?4_|IDnKscfbNo{ z6m%{pOI#XKsKd5(abKhHdyCxJHulWESQzdQ_VKLz@}J_Zd$KKwF_UTG(rmIi&qiB8 zrX3*Mt|Y4m>(vuJ?Lor2MVmT*qosdsqYa{+WN*4TpQ9HR`CZkE16BMDB}*ekXX7x& zlSF0HRCmvW1ZO+xZm!(U979)0Ou{i(`k2)?8tG21-OO4Ihw$ba z-*s5ba9zeJWu#@K0H&!5-_ep^?T>rN?#QPjd~HZ+>znBI1GjbPi_ zw5+oCy?|eN8Yh!T9pmqi%x>uRV>s_!ykISzr1IFie~)e)vf4TWKt`R#k+pdK;w;`% zbSjFi{EHNw2^O$x7-%)$t@czs3Z9fI^h6M2c6&SfgkX1#!idsa^4 zX(L1MU;GnJsZ1Uu63eGz4WE*=&|5QjF?d4vh79U_vL)2)4Pe_o@TtyNhozffQoD%x z-&5H=jU0al`|X1BPMg0wBEHnH%yXnO?33Cyb_FY+lK&|rijkGTZC;nJh{M}u;sp!1 z|FYuNns}3Dut+y^GuZr%*9UhtZe*GG{wwqNjd2uT@~g90ZsLlg(URmgFX>Cm&;I9? zb7psk*`6<>G*DEcDgd(SsRFu(tZ-M6a|acbt?YtpqLQ+%{TRHnF5?+>21{hOjLeE% zhAE=I1pnzNc*XwNW5zB&uhN5MmfrKjbpP)x0(eVaw`?RMRFThV9;NKit^sK@qm4b; zf?=^$GHxGRw@DE7`*sh!Vvn&@yoLGwOg+i_jjbsJ{Xc9Jd2(AHT2(5(xL)ec}pdLS2(ERioX_ zP{_WYeHA^S-%fB@OT1NmXsw3-U*XS-$1}KiI@0;{IKD`ma2$_IwrOw-#T& zQMLRYoimTx(eRth_p{aE@PPxd$RFSWKc;(YumC&xfFrD@eIv3F18M14()kgM{mhJQixd|-yrky2 z0w$_5e_TzCVs%k&ji^3gBHgMiX+@~747*s^oaSV0Q~R3-5an;s-hMImD%Ay3%wcbw zW_=#743w6We@$w&Z_)H$L`R45c)P{!o5izV%3H6Mk6oL9p$~aHBp>txw&Q2}uFeLF zc#hdD*d%^uI4juK{(%mps;Ma9P1fU8-svU&wm6Sbh}X)`zT|@upT!6i5MLF+1e6j* zR)p)`;D4LJe%;lbysr{`8YXtR`kt*gsKfg3pT|Aj(3?Nr9@FG_OMR~FN^Bs0Xr!L1 zk(i=^dfU3{ZEMlODtPF!(e7A|L1b+#96g<6Euizu#T9E*&VFe|)y(ed46}3HIkP$ zWsu)bLhc^guXZQ+&KzyzVV8M6%j;vzRewm*IqdQd<@u3X39}Y@@+|y&QgPN@Reit7 z!|Hp(pL|RXmx^`Qs`%cDrT(H&h> z4}Vvd#U4}sFj2IKtZ5|(p&pHEZwJBvR(`yk;XIaoH9mL;RQ#iT2InCQwJW@V^Vy^0 z)Gm$@ca4-hpZkTrVHRelk<9{C7UKLoSwbR9Nj9R2Pt7OU%y zO0v|M#l;WRC!A;d_TW{P)5IyHY#>IYQ!Ekri&*72yi0QWnjY(ti;pN~R5I$3&JMA1 zq_qsG)ypPkC%7ty&*6bDe8NV5y_JM-k6p!m{z5LDa1GlWWiQX@dUJ^_y%k#*#K>H# z1SV*$y{GGgqE2CWNr$mYPJF8Yz3c3w(_~^1rXHAVLw%J^wRJeEuEXjp*x{lw``KCb zuWYDth^luvDgX47oLw*=lM%}M?v?TlV{5Uu{}jbvij>>BGcz|RSfya zD(0phf7;fk_rXn$fU{LF(dkMe&hqSH8MwQsN|I-EZ^|eZNhDJEn-@80>?CE&ed`n& zG7#Qq!`HsSYL@kzf<{*ImfDp)1|tRu^(y-E2Nz?Hg1>Ps56pBD5lp&BPV8u5oKrbh zQ_D9u!wGj~Sq3NUj_IzVp&uz9Cht1l)l8LPo#QGN@_NhFj;$6U=on%D^S^qsM0t?Z zkv*c`z3NWCg%kIQ^7n};_Cbw%MgCaQ$aXBiCdhmZ#$gEyI9DVxncs0<8{XzL`**=# z{Q(*2mB|miz<)doWvU1g*(AdlCKnkci|YOwy@-1{q3->A9R400)E2DdS|?mCcU24c z=9#L6C%J>sGRi~5Ywx(z&TM0IwGwr8?|GF6EdlH1v1(~$8YBGb4YhjbgVp|@B%Z`jvvzv9~b%?fLIP zL0)`nVVq$pG0&@_!#dWaISuHZz&h3u4R__WN0I6IBx*wf0{&5ibIQKs3ncCmn|>9~ zagDrOBav5eAeY&pi@eu4DCneJAxGqOzO&;M5;F&**`x7L(_{#0ItiYG@mL^ltA^Cd zCFkkx!*^GWb9${F4^~8u=!Nt{u*BnHHF}HmSXzWvT^#w#YxjfYdJ(K7F>Cbs`ci&m zgFMM*@$eRP8(Siy{5(Il5eE7Sr|~5&W-W$nHN3GBgZ??cFBh$X<}zobd_U_c5z8C%QqTwKX!8 z9h?X!kHw>h{RxN2rS*%RfPjCAbP(k?gPZF_A3`ii*|7Amb6Dq75c+!oFZGg`ti0@Q zMc+_9`hn-Y*|x^6s)D^21x1V*?X^hE&i$)5=rxGocU9--<&MtD8J$xLdEWlMi}qYx zCV$uT9KEUfE41SG@dp3NBmHO2@5iR$N8hI<-TbbJ@tW64LS}hsO?u2?R6WcMKH+Ta zX=w5p`WEhJD{N+q!6Pr|Xj;NfjuJXVlz_lrOkf^v%DP`*!;S{8=$KvEIfXUtD6FTO zOEcYa+c^)ho5wz$_mkBdfC2C4J$+P;+jVOf&S|@Ft^`f2Zav*5-f&9NYbs|d^RgAx zvX!$-P9TtOBwTRstLF;Pt!YaX6Cq-V7(^F!9; z4m%cBs{M*T_!&0YOOC%}59dRuWALLrNVxto5bPH?l8;&QanQg!I$O4k{UqbH7wQf3 zW$S_r_B+OjW^c=9T#~~$MMHm7(Xt=kv{xj!M_l%e-+UMRtL7yc#F!0oEUx0Q2AysV z&kTYpXTW~?IkB0q!OBhf;hrq(X!o+f4wx-8>Nsn0o7SWzodww{yH3=Shq=WV2~G#U zI;)nem?EXz#M=tLfHj7VXGIegzt41tpei7p1>qWj5c^btAqh-HV4i$YrZ zORJe|ZYG+W{T47wYks67yVDap*`I$H#zTc1>W8jq7T)w@8om%RS_C02l&AgJ9@3fi z*W>h}!*Ex9b$jZdlU-9CcHi`RRVM+yVpnBpD6NEk{l#cZQJPYOwJsvtT7>^7$|@Dd zu)Ro2UQz>80sH$JYgbnld2<%KE7obSTE~g3_5y481x{!m7UT@Sd&`w4W8a?k>BZI8 zRZ*ML5HHt3{Q8bFb7g^pG0rxasMr2vy+o(TYfp53?l?aWQ@heXvW%vD5wu9CW!WE8 zWdDlMtXxh6P3LnG>D_;q*St!K&dF9B#p{2E@7h6TH^4HhMRE4)kY9a7&E-ThI9fC| z%~sf8lx_G$ViVd?|UdLab_Smb4GMI16{a1p+vmz?al^_3a`hFdc71C%eK= z^-|bmpTq&aLFOWX)xD{9@1D%of4I>9?ESfG5AzMRKv!_6zsho*vhPA~MUnmvnz$7c zw~;=7!H=x;S)byoX8YU;a=Qa$#M(srxa$@?LN&8jIHB%k6Kg)v{>zpyQ3;+l8CLWh zeOjN8n<^`Uc~;Dlk$xqCQtt}qZ( zBA*!!t3-?8TS}9w3M@wr*IM5m($=EL-fHhgr~sL%T7L!I+s>mO<*_c=seVr{!DOT+ zlc@cf$YnD3C)<7~k+nMM@esacD;xQl-_4L;8|rse9;i{H-ya_qG!T;kmOKae3;e^`KD37=gZV0K-%vHYR4a2j0Gl+$SmNi+ z=J}xcJ`Dk1Rcn72DvrU*NuirmSk*L8Pul20k25`=00X}VkMzVOw3Jt?WkpK+>zs5w z2~2&>N{S6&z`1mBB0U@mJ@gjMv=x7-_F`3T$%~&3a;W!7&Mw}LO&6IDk*Dl{Td9pt zd0C#afPK(U1 zfIM#_@uzv?|73!)U~gZh3C-!n@C0jFodtc{O7tWJBdx(l(D_Poxs(6>S)_d#AM?N* zKMp-UEl*JhTT%{N^18<+B8c!Lj6T?;_sQM_vp6HNz`xmW`xrTYr)5kPv9!7k&UI)|V!6tY%!aepEQ+2hnE!ds9Dg~>MjM5P4b2#_xut-|` zQer&QJ^eqf>pOKJR>vNo`uM6w(S7=(@3I%|YyCmOv+K4xD{Py*(hhw>_Nb@Yue0C} z{B?L{>^Z3Rcl(U~)CJ)t|9;1g;d^qN4^)jka5oS5;{V{%d$O0e;ij8dnQQ#kW%Ucc z;Wf^)>}L{UQ{52xv>)US_KQ^QrDE65*y(y26LNy@KFSjw;sd|o9k(VhqK!ndRoSc( zev^y+dYresFPHH<+;${rpbn}AOZbZX#S6M)d%|BFK z`#_D$1G}ys$_&KYaUa1uJ*GcZ3UOF!BcqYc$YT`pIb{+$la34;; zuw|!d$w3xsD|T`@y`HIRZbam5@n3B*MP(XPCSjjJ4z+73)yCZ8fi8+`4`Tv0^BGH2 zQcU&QFy5j!FVT*NXhs_w$|u+7n;SxX&7iDy-qp)$4TS?I@oV$(^lMq|-Pnkq@dH=j zvqvJ#G>~due7pV?qV?PE?s2{{51&~&p$>TkY`jHAV!wFoxH{Tj`P6GNVRzIXKM>nR zqEqly6EMjmqABoGsbtsEV5QRAU-hJYR!^xe$m)N6%kfxYXOP1_X=x1+$c@sTt zgY!1CgPXBLo7IkO!%pskr@vFLaa7j&7r6O)&<$_e8un|7(`i6b>xv-iuxE9#2ldEo zBS@~9S!xTxbR+BiFg3$5Hj~u!%wgY_l9{!v?-mjJ?u1BvEdMi|rJhe_miYOz$bLR# zpRt!e*<*!w>G-!3ixHmhvV-5*X~lQ>n>{SYw<3i7e9|F4Tz?o|btuc#UnJU-{I#d2 zO?d-d!g=QB$XO)_s);OVUlj=-lFrp)w1Zahig!L1y{-TBt%Q!k4OMRSGRAxUiPtx< zEc^9BIZZaN$VA_fS9*kpiNs|zhIP4D;_It?~Ehh_7 zR5mWRokMB-KJ4**nWg@Lr(e(ae8ig%wTqMFL#e&N0+Ox*v?B1RDq;{95(Y+vx&ZT+n z9xtxTL3v#cYU%dZ#A8QY4*JHn#*frdLl;clGal;DnT3>>3!G*c{Ao8$%;~Wi?9eP= z7yB#XG`)79g$X>}I^Ig(A&kW|`aTPyn=L18mjRF40D@`8SG9oqn(+uvD;% zx+uBJ&aWj`&v}>6IL~Jsz>IFR!b@ZeXR!HW*_k2!^|iukqTuIO{Z!n@<>$26vBZA& zZ}6Tdethg#m9D2`41Tglmo{cRVF+p^tB=yWEv7tcDw?nUuhdHboVvC=hhRd49s z{U+@AhK>O>*vx8tctt4fC3jX#7nNs4TG{YvPw;R7tN9n4d>Z%iE!N@-oWTF;hnmVR zv^FOlWgoggQr)n)-7vbk!Lk2Qb9GPjcmtQB*3VVcQc+#iV|mY=VlSHfHz>#oQ@B`y){}d>x&^(@#$rk9$n!d7SYuGF`4? z8k_0lXXA(~*@N}@lI2>&mQFJIlY|!Lt#V|nTHMicb))Q|8OgT~w@+o56&&V7&|!F$ zVIt!ZxcJdnhw-fG6g#wL>h>_7k6vn5%^F=1HtPVwm6Zp|B*IIFMNDNR!zAjx!H0~A-qB?!?1B}d zsGsGJ_Std0Q3h}+o^KjVC|;FongZYT#ove3u$B1Pg7}7vRydJd`E7Up2gGpJeypF( zzz?zy-_x$|@mPmtBz`2jKk+HYoiXNI8s61uwkkL-K|ojO{@*;aQ-!R4n8p1<_q~1Q z`>Yu07E71J{bpmoio?V;XjU8X*VwC!89j_1tBKhR{7=vzExE1BD#BK=`1 z1*WMXSQ4ox#%(HIZlxZkt-8JrELKPUw*&sF4J+0hH`)M)RV!LTHupvUO33RLReM#? zyPomxtg=n%u&YUBpPW^~)_o;{S+3G%UgSI81t08c2CBf(iPkkvRIxhBnhdrk@3^|I z^3QFcSiRW1T8gD8jpcvIy_9o*72M^k*wL!iw>n9$$+N%7Pu4XP4M=(uHa(2H+e6Yi zW!V?9h40%8Q9By~Px*<=$qHC(J+%F`*!&yOrL)4tVEO=yEKg!2PSfMF^w_C@Mn)sz z`E^}kPX#CNqet+i2UHI4!Vqn+<6(u}5A*DBny5qUV4br&V~`r@+ExwUS~7C@|0}=} z)92juw;~_a(#j6irE0Kn1}gxW3GZ7!;|ZNz$5?4 z0^bRvP*HFWoK{H^5lTkK$Z+w_SQX4VU_>T~mYr3~zof(R6xIQ^Msyr$9id`;FkS7f zF1fufX^nKxcn!l-TF1Y9k$+%~2Xr}rTLKvRp~&W+=yy6kZ__P%or-k%>*ze)6Q{=7 zMaRkg4zshQKVH8l$>>bC+d@(;q55X#v?+aS;tt-%Of_elTf5tia&6sX?bW6=u)44F z)K%PnCHGzhhgB0J*g!1QhBo(M%SYn!X0Q%RS&5D0_FI_bC*N>hYq*sqSD*&;U6+Or$|kR0e6W#oZJRY zw8lTwm$k0ud&?R{=z$Ytzdq$} zkMZL_;;9art#5hton&zf-@o3oH7wuf^kuo34zF=JBxo-I-F@A4)~Dai=zCipuA6!5 z3*Qcbnntq=lVQ2pJmX^Xw-Rz(uex@NdD&s?F`s)OtbGvXK6vk2^?`e#&fUgNKX3Kg zM!(lHoQ6H}84oZe53rUG%;O`mTg-PQVx^Mf<8?^oBpD^mwAYb{OvF7%o%!lDwd9Qc@&&f38PyY zuM+0HzqA6&>`+=D=Q}6Re^33zY*=r;F2+l(*jlT%%}O2!;-RWInZP7i?iBFJ6BzV# zJX=QiBs1nH8_mdp^~ePsb&`Jm#~qL{TPgd->bwd8i)S#Swy z#3M=IsRyF|zsSG^GIvB~dXJpNm+a!F#&lyOEBTIlY%Aid=RH+$`!B+a`7i~USkYu+ z*av**-@zd{j{Pd0!1yyVhK6N)A858_G$ZK8Yj+(l=*U4>JeN3N|4SL#6 zj5MlR9#d=ZFyW`1c8nL76{+ggX6CRjzILJt1hpVEq@;P(2ZBDQkPpu#_fc9l=1uWd zduVL1)%lQ2EED@~wc3Yq@W1kTxA?yZ&!|J249^`=tG<{bgIr?S?EL3b{OA*EG2-MO z?_je3FpjCM`i7nRlDA$Yf}Uze_;A_L-jNj1Ha@LBTUZ4PTM~nqH*yr47)rQ)bFt4c zHy_iG$+UmC)#=OPbjGN)fGX=lOEuZBDtt`^KB63d^D-0_BK%5f5JJA-4PLOJm2M^L z*OmY1#|DnTZ%xDw&-7XIY2~LXwU^Vt&*9`%v}Toz28hx--4T*w+FOaSrx1qnd=2zAKIn--n}b zu`X9x!r!2JdP5?sK@~McHg6hrM9*)zqPM(W-(NRiW$b)rv2U_Kcg^KPRyD>Fg?lLz z)6>M(J4(ABi2(lP!~b?wm;C;$dHl)W9PqbcZ?MfiZ=KKm+;=Q7*9%#;`M!G|Oh3m} z&*5k0(3*LewNGf<5^U(_qJj0a{eQif&$G<-sMDRhv?j6p%xI1t5QyI#X?H-dlK z`?kKmb-25jjK!Qo51kfZ&hyGBmcuwfPVCe^wK?*3{K{6o=BRO*+&=JH%IH3smEB}- zTjaT@zE`sB#bxD-t1B%cPx%}_oHsg#G!NyI`$Csp><|f=?0RrtHI}tBnRu2QWW>CN z*7F9rI!(^@y1%tJ_<7inv7-8ZtX2p5-2}RQ6Khfp+N}tSyn;V@MOCCuCE~#RUJvsc zPheOQv33t+gzp3$q2``;_zv(m-1CWE|H$u`c;6TDAG9;({{dRN5Em^y_*z#(!I^}rG5+Va^JFfFu@C?h9hsDdwk`-X}iW+4^!IfiYf;a8| zXv%(d`2Vc#`|>{@z-P0}!D975t9{RAwIzF1*6AS3!;AD_vb%h4)T*Q;OBu*iHux;J zYtGN-K2N3!`(4;)urO(TUgVQso#jp!iFp3RXjj#*G z05d&S4dhJTFg(d+wbk3i=I!#=2VC_LvwVVHon<9{Az$aA{Bz>`(=x`#BJK4)Z!H37 zfiu+!-1yX(<@tD5IN0yHvv)1zn%;C*ui*3x$+2e>C8Tht_puME7BSg_pp~Jxi{a*N z6qy|h+fE?2lhip+_1jtAHP2XRp2K|#t3|>a{C=l*9Pr!Y5Z3Sh)=9Wza*MgyYc77| zPtGP(^EAc6btOlG)Hw(dJ@?F6L>Vc^W5rnF}+l zX79rN4kygl-&Q3tS;(e}xdisEhKR8ho70zOjukV`fyzFkwHy3qC!e&>tm)d#!igO{ zKj`(nBx@UOUgz(YkhEDoOWZ}qGO_8Ypt3~%>OcPBCcAu@ES$GWr%CV6Z1az<;(OA4 zKrH?pB>k{EU#QCKa?i=_W$IoYsxLru80K5x{*Uv+Y|@6ey2Je=-5 zB>O5~dWmnn01uxb`6qCmN7Y#zwv%Z;&De_>4^Iu)sbXn+>=Hfv-MC2i&*PZSxRc|q z^hbBQUu?0{Rc`RPD}B#G-#wGP8}I7gV>f%dvJPal8O?o5#9q_vS2fF(aD(NIa(*tS z+WTd%hdN!(d&>Fk%T}wbQO3JU)A*7`3BM`k)goSb-reT+OlL}Klh=ypus)g1OIkBw zXO{a<%-+UBly@P@Yp~_7aN}{hb%+-3q<3H86IY1E7LvM;V7V!BO5IWnDg^~Nf$i3`U>u&#iXIQx%-m0|-r@5NFW@_)7!qm-V16qiL+F&F*k@{XT zCKt!au^X)PU$Dhh2HfNgO@RW@$=K6bgcfsA=rL8GwOHP)#6d8SkPt;|a9V^X3RikC~ zq0}}Q@SZHx5LKNzw#aWjaKDl0au#Q;?9E1Fo1b@h&AtlydzUx9!OMo7XwE?~KSPlR z?U34yc~jg`Ys3vlB3d;Wa$k2Ku|5?taIk z{lwFshsLh+kpGGFlaSeTVuEZ&UgLRoyojHQvFSyj=0al7XX$HBaZx5ZnHoY&imi=c zTOW|7yD-Zw@^mACLn=ywa`HfF;J=8N@1Nj;oai}N;FOAxW1^fR7{)_ly?t_(yX_U( z>T$hX!ROe`5_6oDNZDlfmY;)I$ma>>#)M@)u;?+p{KIWpLyKLVjuVV zb-zy}hn7k0PC&e`3gU)cbF08hT58+79_EmOmtJWpqVud`L}j(S9mVYJ7VPbJdX1mN+8o0@eWsf z?%!njU$JG(Z`Q)j?gdv`j?7de%e6^RBhuZROtp0%9sI8Xz`rg=H+R_G z9ro~>a35uFXuA);)7RhjW8DU_Z%zp#|4(~N<9Q;wf0s|ag26sRKY!p`_d)_&%yWpm zmXobT?8ZFO@e%o)&dPo0jwZ>ge_)Nqi=M~P*Kw@QIIoUpg(kou6CsuC6w=nI$qh zA{sivA{}+NN8!MuzVj&0c$BaINz8WK`k!{k7yP?S8gH>Tk4Qptb}y5tC$BxZCCt&Q za7i5zp{fb;IKvf9Rk1Kd1QedU`XQ`0jVGMV6WVX<{YPYU&bh;@H1CeP3FK9hMw6I8tVVI8x>;{!_6M**AuG0oTy0ILI7%e{m{N?E z(S76;+dZe|uOzPFRoL%MIIwBt&1eTZ3wz5543_mAt)gzCs@CcDK+jfHGFQAe&#t98 z{(hz!g|J#_EGzyVYu*Q+)lvN4%skj%&$|!AUv*~dny_}S)8?{t`+5E>J6oHYyvOlr z&M2Y9@m4jS?}*_AqcBNg2r5KNPgvdbxTVZwF}s*Pw|UCP$`mjP8qaxNzzT-3Zyt6t zJ1d;Y-=^giQ<9s+&}uxXzGt>>(V6S)m)u|QWAJp3&$JGvV+?<_lj74t<4Lf7f&#Fq~g4%j- zSAX}ecMQinPllQ2#hfn27jL5Ddwt?j8hjoz{U@({*DDbklmhZg4>x2Zfq6(`L6vt! zNahRH=tXv^1Y1>{WpW-0D>oj(ataQQoJvo*C#)c*-9>f(S932_WeKW5{ME$(HDwZN8}<2_ zrgnbMx;63=woY)0YlRMzq-_m>k7^{lIY zo-ZlHrxtdH&$G48Ko=#{@oE#^rxoez2%B_=kKbXN2GB)yv24?NT*+eAVk&(cX7uuN zOLnV{d#~huc7@pG+SSgTb~w@I>g^liM{CP2SC`MNBv({cZubQz+7|S4E<0pZ6$Ghu z?@SW;FL)##cLFIJ_BdaYku}RM{w^TKDS_9i$n(6Z;@7z<S?2n9l?K?KM);)0{BkpoEm_odVwcV$>Yn7fzxTh- zPK<*xrjgmOif1{kSjR(dHLts2xbSSC!{XW>Nzsp_=`g7}K$^edC%(2O8(@P~R$?h1 zx_|`Ec6BqX@-)Aj#@kHyN|?!??K9?CuZ8qlt`vT{=WkVdkj4E8I4O*!%8;xotU%b& zrm3}S57qZ%F9yIzBly}0B8KT?bUvPZ8LzsA_uQz$Z#y~N3-uk6U;GKCJi`KClykfa zCEk)3xz8fS*yqQ@y2(`N_uq)1H~Y(#K7Sq_ z{sZ4Rhz4|G;TrJMm07rAe0xq;5@rArdG($Q0tyN`5}iezu6S}d|PbP+$Xf~ueG~w>ytaU^Ul5{>_*z#efBj57=w+W#&DH?BfT=3 zWevL-jAnO7(%E6W&Jb5Qz%}=wyH5G`i8FovOy50|?VU~wK6LdTxcbpJz@d=tyRc0+ zKDRX++khvm!CRK2$3>vJ9GH*PIGY&lyTLl0XPJJ)!0onEZv(AdL2nm`3TDyS5812_ z=>0g7I);pl@#;AC?E_X|lBnlH(lZTTIg>5?h)tYLhUbvEc|LhQTN!p_Ut)Z2tTQ$l zJB|IAk)P=JFYMS=vU8WL#)*KQFtQkV*`*@9br~yA3HEp$#t7Nk#w>FSIHe6PxdYtN znZ4@5FNC9$(cbg$6x1ekzAo#nVwt}^BDz10*E&Zse`DGIsr2oX`p7dP~JW4~`owwwB-xA~i9&`>j1+1w|#kfm!$-dnl) zHaG>!+@jgVYj$a12CONJFL06$S z6}(cK)`VUwuZS(PnMq})Vy^y{EB}>^IpS(}lFn7E&0N}_hEH4#tyUr-5qT-BK@HAV7uMMjN{mU2qshy-R?HaHlj>S~<4(}(_kjtDv8jO!Q5T-?-n$0-#iEAJ(0CYN&{2UL~JM&)XE)nf`fXwn|@|w zh?N`WE=Rj#C-#LhcyfyQpDsq5?eFKhv-xo40+RO$S^Y$8v%q@IBagGK^)%l& z!S|04efJZ8hvzoRse9Jib+qTFJDC%G?%BY*{Os>ygs}h39=`WWKKN7qct>nH|TA zxko=Y=bzv5d+3RO?&@TtmNHj$JXZ9)sMoXeh$*nS_sH|_7}_IvjGgS#TGnNewVL5K zAK>mr()yufcZmBQ;+}`m&oL~f zSl9M1gy~U=+w(pD)>jPU3q9r5YjEOMoOnCAW8vnW3 zl23&{eq_Uc5lvsC^Y>WBI9@O%2})*X-t$C#&S ze9s5`hcns5{WHa|(~S^+i1myy2{>ei|7UsE9JBbbyI5f57qeSS&GZVhzQ#SQw<24u z&>r7^NbDHq{eH2wI0Wn4n?4N0&J1&>vRu4pK^j&X>ZnRH>l^LJbzhn~ipEa&o=@4Y zFX`h>Qhb=^op#^4vWg4;SABMu6}X4xwC4>_XzqJaj2!UNf=@Vb&=X9ZQ)o#(NxN&WC$#Fx?Dm ze7lp=_SUKyMy{SUsv!=jzz&r3SS(^)K&VWLv@QmZ(hfyM`V%S#$Ni4D2Oa1$dG^~<)S;tdtgdw(*mv8Cs z570~K{V(C2Zn8~}RB|LYqZvi$dF)iOKh^A~ioUJ_u94c~c6M*|mdAWgK6AWk-x`B3K!>py`_8_K`+VQ)KFpSR6k zUF%le`d0GIFJraB-fzYEfx;xJAS;>=BFN=RvzgmWkU}~ml_)J4+u;-;l6e#My2pn^ z{6(0rPH#1`8TpK`s-mpdtH76U(x=8`w6*o_YK_CLNkjSBvA%t>^_=NC!mRrzu5B^N zT;h6{v&x_0N?*@a|5!5QP;acTc&_#Qeq$9`d9p zZkPW*ONcMFvT&=&!hCViWEN?dXs{1HJ?uTwlpU;tr+m$01<%XMAeCe%Ul2tW_pBI9 zTAY7>LHzV087ocZ%CchR+5A_1T6LEGP4d%#HE3?MXBm315BwH|!Ja%w4P?5So9{Lj=W1&cWky&2CXZ>%E zn$pG2=3^jxJkFkP{{Q@@FM4rBemv)h`Z&Fxom;6XhCvYk-N5Lv?G?IJ73+`3=iSy zN8>;~^mp^Tdqo0vZ0}n-L5y8k$8MPCo;1D>eSa689+-eh!W|5yF)WqH!t40o`dF`K zEO1x>*F~(+leKt0f1cUmNOcYF68_1mU@`J=}S3cix9p?89U9 zW|w*xAwusUN^MO)n~GHH`;<4lzbegrMUGA%5I&-Tziw%^I`I;{{q?{E|B{R?NMf#& zShJ+;Msn+x${M6$B{Q%snT>2lb~Yv_8}xrv-3hpkWfwPmJIa(uq#}_LQlc`GM1}|% z!Zv4kjFAlOLc~TMLx>EKWXPNpB4Z+nL=r-VG^h-TWO#q;_I%&*zK7$q@8Ppa)F z)_?uiIwy0u`JLGHe4;W|8Ku0g45by$wt*gn__U(#|B#+7saGqi;gecXSDTv9m*;Sd zuF$m)PdE_LjZok5?morS-qnt|YOsJr7Q>nk__8GsXOZ$g#x~R6X;9NTdr!~Eb7zH? zR{X2w5VaV>7Y`Ldy-sGMNpZYq*?kS(H&*-R?%f)8#y*K1_=A|q*IDVRbo1T{6S7%E zy7Or195oEoou(~Q=-~uqtTNL3h}U1!zE@n^+ixTG??~I9yicr~Pmc5U1cRB1Q@+NsI@6v8b^)kBg9~9#Ice4P_E@`c<$JT__K0xe zWQ!=f60iUCnUlw0*Z1a^>|^u$vB3kh_kf(-0eXFaHtshnzaKL0gAn_SgzY!y=m0kO zga7SwA(wTEjbFfF(}= zJ>(DAa)PfoBAfdI{u^`P_TuD`&-fOr+l`~|f;l@e!5#i?Q?`naHv4>&@0}(mn^Id= zr6x>zQU*R|HCIT?L|ZC5vzQN>kGIUm24~RF$$Y?gJvx%tABqJ!8H?wguS`?Mct4mN z`(pRqplv&Gd~^NWh(E2zo5Ws5wPh%4lW!fm*Fc=zgvV?x$1gIHx5_HM$|cUalUFQ& zo5r|65w(0k3!I&%{I2}#eFhel6Z+?;jYVl=DY#QfsR4uP(%44+#<)du-?em2E7!Ji zWlLz&l1y8XW@}P?j&$2Wq7Lw>6Pb5~l+LhV&9Q%cJ+JG)ho|&RRXtNt&y-3q!}9K1 zETJ8DsE6?wzUUGu#fpv-H0K}>u!ntrO?qFl_08JznatBhS(Xinh$X)sh!N-8@$wvc z>LyvI;E!qb>J@(MqFn0*BOw<^<6m4Nb_>0M-@D24Z&R}Zbg`KBRnU&7=uNUVbcH|z z)OV~`k!@Y2Y{x5q^qCVVjKy~_E3hqA+}em(3$sz18Wn4VA=fiTU)##n>gL5gA(L9c zioTLGxEPOcAAHUW@p5=V1`_yJ#AnZb^^L5Nb!IX+Gg;9Xmfj!Abn&VgFI$Uut%%jd zu3rVQ!8`rSDR#X{9Ggj8o8B7C^w2DmdF5H0qcfkfmNbS(AyZD0X{%lXZ=wYh#UDjnUST(D8LhnM!X5vVfOa zKyNkZuFaj)tgUZa_@pV$`z+0FKmrZ4y@3&e2GGl{2R^-xY_j1Q88L_?S6;l*87_4v zi{51M3ONk6I&h>J+!L%jdPkXWcEHE>fLZUmZHXD-r>`6}v-wX_yhuJ~DA1EiTH8R@ zqLVSN*j;n7RxH!1?J}jmB<8tx)r-A(+yV4ERbP&TJmVnPME-3ue>W9=O*NZp3YInn zLz^U0nj{ZDNq#+c^op}coXiH#zK3rI#ZX6ax}Wj5Kg{GfH@ z@TFMbhcxkH+YsMQywynNCtIbcC_XF#C^GbanS#NyD3T>a~ z@qG^HmIePy2PG~ivVjl4lRGivEWE@e8KB?zx_z{Fi`>k$m76hpU>l9zOq16`>`&Ew|wUa=SHl~>KV??+ct*lP-%e3|_Y;ExB}t#7#R$GC2i>u31g zJfmbw+3#vz{WHk_70ur*dOE;U9A(45vf)$Wj=!;me|eUxq#yfcT}K8M||9 zDD!?!hW)g0yg$rG_{~hHpN+krzy*IYLjIF%fiWtdU7L&ktG~Z`|Eteq{@hR2gB-OU z)r_U`rpp`n=waS!Aq;3jUs_{1o&4=hF9vJ4CBGmL91p0QJV_p;qX zo^}Gd#B9h5VumDM>qeNH3)d>ZYZX(<^I$c2oQ6J$HCA0j;=S~Bf09b2H6#6M92rfb zNpI7rcinLo4Vz=kcP>USkM`LOPT7t_f9dlt%%s?CU7ay!SUKL`5j1}gf7FLuI`Lc0 z`LDWuUzue*>Yjy-h~?$uveT^_Fr$BYx>G#YaUOeL!qeUEj<=I$uEY%FCE7J#_I5Vj z;ACFh>MynwV@E&0${ix9b$G&Jm>Jw*1c~*<8rnnA1`xC|hEPHbRzOsHD?QAF-KOC^ zoTg~r({(iPqJ2sJx^mP`B}cC~`@;?;C;WfXyR*tAuhYZIoUSZ@JwGg$>MY(X4e-Bq zBKzL%I!tzA5`HCaHsN>vV||+03TQR&VF(t zlJo9zmbd*AM*X5kkBVfzhtS(u_d49<16c454H)U^FVToVh{)8IVDI*@z}`<{^9Quz zE84b}RG0CX&O)V)9oS-1QE;s2t4<%E5Z_m#nH61A0cusCn-ytgC0h9eba;}E)`S#K zvw&yVWMloj*ZP}N@h9D^>=fb#bg%M#8`3g&3ZJc zHZ7_yu6TlFSHzV{)8rDE>;rgJ=yg5}=60xjvleI4^0YX|WwT!{Sgm}HZk{oIaLPD; zWOYv)&G^d`F3`_Q{CN^ib^{d5%rdgEiX5V>+aO17G0dIpDlZ+)i;?9~k2~<-T=X;t zR*(%N$YOLNBR1gt8h!qbwoZYP6L|TtFli+GhG_KRPn_dV79oJG?(+h4xa=CX zm*B=R!zb>QN!w%gOXR`hJczWOorXom4l6MpdCpT#`Nc_B{cQB&818qNwfvy$Q=H|i zrdcugtbTp%uX93uo(<=UTw@MccAMYk(YpL>{yw(SR(vr9PkxWbSdfT=d-CS}`Te2%{b+f?3B37K^U&X+&+p=pGmX&4 z-*`X8=M!l5DB3>6^(lTA8J<>HK|R`B+116diu~*>TWq>t|rMRg~J;4Zd`OH6372 zdmODDu4X2@{PYf4k-f4a$7F%y)S0xrbq>04ulkn8L~39m$?n}13mKr^V=$3-WSEw) zqP1*rn;E8iSyeET-+XdLInRDB;xw_Y`4YBr2{*Wi*Vtp!Jg}WO${yG5v+m`P)*Zze zeqzPHxYzHlKIM*Q-2X33;&1J~;F%Y-`Jy&o)aHL!;@>p*45>R&1@kHDUU}GU7SA=O zh_9NeO{p-po7ue$AWLbZQ?#8fH0M{U@edEvqr2GYO?d9*E4eY?^HA(t`-y#YJVnKiNJBJ~kee>`3{e7-`(4L8@=ufo$PzgF84`x!@0?c0eQ?az2BP7vc^nn$|5xJ^RvhU*qD-yh5 z44*yCDD46>H&?3lCOW+nSBf3Cj%!KS*g2YbNo12o{<(HZanlSZ2p9DTsf*7^4a&k`^I%~j{OF| zU17vA7{DwM!&J{02Pa0bxFM|cRrTnnJ~7(fU;PHD>ri+wO2qM|GR^DRK3lB*E3|6^ z7V{-5-z|naNKO$Ep29CLsCN>~%Ro=EvB6xd^iKMGHw!H&PgaCZ6=k6hu$TuSeKFQk zoIfZ*^GmYDa(qr@Huw}@(FmVy!wR}9{krS!kR%~(uKDnGdEf7<_1Bu6a`Vh70t7aXcbTWIb1(zz|3`LEy$pPxY@lb4_{8Trd zrn!EL_0bjNk00Vy?jeiZ65CyZ6wp) zL5b1Pkuvhr#Yanc{q?+m_@cuisXxSgm*j3^m*zN=`7U$D3hC40V&c+JE>;*-(UKaF zEY6&%OL`4Rps}_!6VJ3Jhjvh*BiruA(qCY!y;y%=wwsbDfBSoie17rkL)g`Bd4bJ- z|A~yiJid0aUKvi8`>^SD{L(XKlvJW!55VX~3cQU2PU24{ z@FnBTtQjX0cWsu{K$03Lig-;Fk%}3O;G^Hb7T@yw>EepnnE7Hnd^syv&lm!sQN`LQr(UHz#j#jR1z;9HeCuQl$18_Y*$>-v)v+&n9 zu=FHWeu>@wqh^2Wv$L`SPR&u*{doPZ1nb?WEj#5PH*4!^R^!BHd^uISQ^=q@9@s&) zy%pVQf(JH)LC;{?b-b&MgTx%fC{OvUrYO25{i^PoDAklFm8yvnvn`t`O^qDI?;2u0 z&)}7Dr`U(5nw;Yko>j?{Dtc}?Pc5qsWqJ2S?)+x#`+|Q$x6)$Fi`Z311m@k<_C#Tch3Ce$!f!_C~&saJ;-lYFl(*OBb z&{Tahg3o_RpSQOYbGta`20D9Ie;lDV-^iM5q*)(B-T4q}rs!m^C9{y=7M)KVBsuL()&>1+8T1b`;KReac<%i5&b(xbZ6Vqbb;MU zm!;{Hw95XS8`GpFeQAHtorzO<-V*UokPR49Cp4`(z4s$uxXv zCgFPi*^ZbjdO4mw)$<0jg!ZhWmY#T+hUX^7>*@GumgF>PEF}~Fa+M{XW0fb_)O=zk13EUMAMoAM(`wIN@Gdoo})3UAW#i?0YA#w3CdS-ib`>ov9+v#!%8IO}fc zvRm!GRnI+%HpRUCBi`?4&AYWTB8^QDX*KOx=KuNre~)~o!Y`}LdB=$?I~yFt&W}OW-`w>aP7r=3GYrhdqV9!;aW->|UOj`=wx+?)v+q~vZYtd! z&F@YSjZgAw5~e+oj*VrJBlw=R&I3Nr0HQ)aktzXUx=COup`sfWBpQ^u7^mOcS-Hw(t z7r!=Sn|1VcO&Inh8C0QFmBqb})6hyZ^f6McNM_|pq%1uxMLLhlLzE!l;?VvfnX2N- z!(Ny4SvlW5ZvJ$2-n$+@kxb?tNb*H9lww3{EX{ovqJD@Kea13&L)qh)QuJw(zRjXF zxwI-Tj&%>o-bb>9w6PGm+)GaRp>-Z35x0_MHZnI$obAS51?}izXV%?=PWItjULlWx zI8ds;uj{k_^86z`VWgOM1W!E7Q-K5NYXH^NTiYWttkg=D{OgbCDhr&tYIMc-D`mnHFwVrn1jTk~PK zk(0=dLk9Z|7Mw;*dkJs(M_*hZn)=`j-^Un84ycry^*NPUFaL&n#@_U& zfIioAH=068IITX*G9E3)Y6%nNr!|NW=_OjacI3`h@cGRUQP1sEvmS^51KUxjLe;P+M&qNPR z)l;+e*b*xxVhm`r-rVJ?!+7rRu8jCKgI$MnB#pCDe2SS=Gp!<8V9(hP?dhVl)^I+Q^r_WG%lYIFtVW+Je>FXktNH=PeZi+Mqcv~St0DBJtGYBK?eetZ z9{PPFjfhh`58?1%>ha}flf;^WH(_roE9ncHjM|dUD%iD*%`RkPbJ*$(_BoY(zQy*& zDKWEX1RETR!wq)bAUHQb*0mod_c9Aj5uf$-Z67_;+x>gVH}+!bJ>BUA=o$0UV!Y;g zr5o?JtsLTB!$tff`Jmu~lc3sk_B-2i7kYm1AFIuM`kNj+ z%?AFV=Si$RBPMe*&AkIQ6-Zd|Nf!JEzjE3*^IyiNFUSpEF+1^kdYY9M-);>2US6~W z4XVU<*5x@{8dvXTo?CzHaHKJusn(4+vz4xW=GABT;s#lowPM;;Vzy=C+l7hMBwxGo zOFnob-CW84E~NL<>E~$JH-HcB4#8T%vB0pH9TVQE2vp7|p2?*~S*>`@kjPZnaV){) zu4O4sYWpuN`-E~_A0PAnn0`KvQ=GsheuV~qxFWb+>^+%=y{2ccSs?H&(D61Hp9d1< z^XypBWc3dp5T`(gHOF{vLw+=Nq>6doRb5%ht8$PxR-Kd}sbb{u0OnCtJBnf+4`@>{ zk}4rDR#Nm|mV7FRd+oTTWsBWokusl8nWaqg`c0q5%>7qbXE)xvC4c<18dQKOMf5^0 ztxrb=r?lVzl-t60Ez{5MveP$U^+3ATQ?GZR$<670LsnGBw>8;mby`~8RW)ho(=@XI z?MwEHwluGc(%b6+J{#t{vFvy<-}|251ZP~%LN~bASKfV3SC9MTtmh=b!mRN3PI31A zGCXCl(`uMXLosg~INeo0#rYnu(x_BEU<8jj3Z{>S?W0KF-s&_eBOS_&>BlPltPmtjce>0~n2h*2sGOMzuQ@CrLT zLBbkh)#{?w8e-q4{QtDr_8ExS2>La}URwAYC!2S`Y&!Wx7vDbbn;xY7B24RJWy8y4 zJ&=rt;wPgM`GplQ@N-Yz4QY?k;xk?)87a!9&G`~p5U|rkLmFqs7^1 zZjx80>Bq4|E+p)8Kb(rF_7ey^k9JL=TO;B2K>zn9=QzWo9S+xue3D72iPAVB`~F@J zrqd(!#YA$Am3)i+W;M;-s=s2t$5>%~2JT<=l+1~-ggC+V6wOS+Z*OL+`C&@%;8^ow z2YEGbh(k3N`8G}X#xV*1+)Py8TsvE6bxTMVIjZLpxw-FP)P5fHAij2p&psq}_`wR3 zeI&3)-2AmDV>8QNqkO11uRyLVX0X5JidXg4D{@pXd16oetgC)&r#{WFvu9+1s?qv# zEZ{-bke_AbU?uS{W}E!398vZt+jyUiJXEaET&A@P$@hJTFpDR8mtDq8scBGuDh@P- zR3^j0Nr`gY-xJEOKKorc?Rz`V<4kcv&I1g3TAzj=3DL3FP@l6_os@FomONF>pJ5=!SMdj*T}pZQoXyHK zXP3#i`lj)prE!A0)$;qRl;(Zc0b*udOrK2*7j3a&0BIj~^VtxH*_FUR-H}Sog?_vA+oxqfTSI&BU-g!^|+FR|4 zYp%NXs=bLXTdR5z)}1rwPET6%e%8AR97x$9h=R!Jv2A1B;oaF@(- z`q|96%xMNw9!&fmzUBeB)Y6bL&X}sp^ECI2PCQLt*g2TCkKx^>u=QE`B+dX@PLtQF zpEDfw*C9;lH+^&-qlj$RO>FfJ$YZBhR{ghjUew+zd}$KQx}JVzgkd+~hS_nrTS@E= z-sMgupORm>n{T?C{PO!gzn+W}m11R{9lyx3OG2J^@cOy2r`&WkPNvUCb0eowFu{DP zLBmQIR2hD*IPO(A5s8;&7qPmoj2gu1x>EQ>Nt#>|Gbkk!Q6_;+Ul>VR4^>u*KbK(& zarWmzvn?0uy+zpV5)5G(rtpcs=GI^a!4{fg$gvw?BT-QUv1)yY9P8WbiJt4>aluRL z@gDWq)idf|pXaNujSXpOBbw8ge@qr_*)x%4&Si}Yv^dsQe?USXT1~W!W-a3rK9uGB zKz@Ibzw`WZme1d&apT?Xb&~2&+j_XqbMD)KZ?EdfCAGI8zn_a-Gx$G7?oPt(gEa1I zz2{U${&lbZ-Jz$q(6x;+dh7VpHDahW=FL0F*=Nmt*VHvlL<+IDX)?dig5P*f?|0-= zp63U8yLUf+U@-I@K@-M`wuDzspU)6iDqu40^Z@fOAq^)n0;tW!p$p_E!i&=@k z&Ae~w^H{N7&vmt2Uya-<`+Yf@_NYwCgS4t3O}a~;+)83uNGzRCF3J;}rqw_5d53BG zUiu!Ww2h=TL#d5;*m`!dR_oW0&RUFZ9cH&4le2R_#4Zcv%CeMluCJ&(;dM=))l-_d zCQfndqV)BW_~p0KU$T>kFMtd*U?Qgm-twF)*5gB#CZD( zWx3bOeYTu_t|Y(JP-ne7%4T}KUBtGBr#wvFk&B7-k!jgaR(2ROzYDR=hiOUV3#*fU zJyz0~4{pg*x255+hh|5=?#yC3%cgXa>FJ>N+UmvD#tUMeNF#o^j(E2kfBcw?Zb|2% z6r~Y&+v6&iegAH>KYJ3)JFopG$t`xu-Ny@lLw;W-WK&0*Yr~n?_o^1%e2PS#;!SJe zEw%ZXI=D-HQEOw;YJt1h3k(mmGL*j@pl61|tZ~XzC34q`#U#sl>2NCD|t!&CCH1I=ydLFcTSDEPb z2=+RFZ|mWyZQ$TDdgpOmub7^?lSO3W1JC<+Ox<_kYwO|f5{Nv5c8;TYL$#(q-qA;f zpr>zMz;a$By}thT_deC`=ImvI*1H1IZ5qR(?P7(84GH63~&&rKc7LfNT z3_*)Q(h_tgGK8@gTxsu0!d0hV`mUN}S{1(`w-*73gVT{as2n1%t-u=_h0&alkZo%ZmHkQ@%u^c zH3F}GnVommnkJZVHP-hi%q$>td^4;{LqktNiden$ z6Z9=kaIebxs__*y`Gq?EHS}pRZqgPv>4KZ|GCQvy4q~PZZk>xI+C?8PS!|BMN;9c9 zy5=j_eg`d&xYJ45hCm2=FsQ++#)L-m8`I6|SfqD9)%I=B=>Wtz34Jb;bCv{CNTGuR z=)r5Wa3~FY9nT%%n-K{Q`I^s$`EDdn>D*mjw1?8s>()MN>gsx~sObvQpk1*`USFF1 zBF*c;CcDzYPBc7bV6|0Rv)|@EYpOKzee6K~v{KXis!AoLoNFQ@^^j781>FN>?_> zfah-tK;6hw<)OimtI4k1==JqJyOLOEniEU8jZWv*uX*+M-TJm5wo*jAT8w_jTIsU> zR`R|YHuAIxt0C{6Oe=zSc4Td_-`k7s{F0~k_v}GXK9!V)iws7n`6wt8JC(eFbByI* z$CAVw{vRV29mR)^z(^uK9W1^bAWQc$1nVt!?IA~Jh8GLpM;80Y;ybd~Wh`l%yKaC2 zE0p$iIWaqG=>&Ci}cX~Grig3ei6kka@r=Yjd=lU*kt6Bmhuw|$>M!BISbCs zfPT|SbSnQi*2!8wfo$LhX0&`HH?`9BtGtU9>T5*1pZfJ` zw!9K%d?emoq9^9-r&)Sx8r_`;ciw2RNy6Jm2e%%{w%F*DFYC@-^Bi#eUvznY=}=s_?y-&z9YQPPP=oHowd~1rqeP-LFMtks(SfpJs79SwSsjr!tn4Ixy8Pm zXIRMv)^f?-&}rCKTJh=)W|n1OzZuzEW+jUf=bhio!fs)qIpv&kx%PIJmYWsl#$Ix> z?A(0!?Ie?nXU<7x>;{);B&w^0RaADb*aJAwFrRzoaL)|B|5wfbB&nmgaLgUr=6#IP zEQ6Krivgyww{fz)PJZVtPw|$&z_TOrMEgl$H+0*sY=(2|6CSi1{p$_aVlC-2ICi<=`$Jd6LBsYNr$?(Kwp?jxT^Azo!TSr=Y5qc#7bH7|NK z0N;B(kwqv^n#D=Ipg1g#+)H+7X?_3%juU{E;b7NRARQCq9k$x$fR#Dls|kj|?&EaF zm)U*~rGwJU`#7`WNu`|k#gu#WeC(%lqnf56Fq?#? z$^ggiIm7v+fqX{_57g6mP*<|=D5Kg=#^pKh+xWbVZ=Z8jJ6Ct~t8RY%qPx88ZiD44 zBBwKnkC~;nmg=?j@b7EB<}f`z?O%ACoZ4B4G=&_7k>+?>GmX~F zp*4$X%}2EH6LMOktXJanqtE_VHvI3i_%5zlrYv&(9KV~UjCYUM-D?1??B%{4-M^){ zwm#oc!?P=@LkSs}LO5YwvGgrs>I~xSD{S{KwfA8i!_Dk42MOkaSb5lI?5t22 z;zfjC3X)aek*oN=hU@Ck$ygcK$h)R+ESWAgbLVEBn=A`;Ez`J`kC@MIPJ+xs=~!P` z%1)5F1!h^Fzo^N7R>scCr_WocrM!Fe(O@vY<6u zxt$k{QQOnlLCovPNpkn$b!Fg}orB0Gn`j~f30^fv>YOaXNh<@7STVOZfe7!*OU>gm z=ZT!>h#cP&eNV?oC-H1!vDeq3$pGln6Y8{wG>ypgNuKZ#CBI@X3LGO&bc!_-Z)){a zC^i!(o)5cXR>r3+?{ikTL+txKIUV62e#86DlIXwuMp|vnn5KrFsKNSc(dIg$mS8x^ zV%atrL+l3H6Km)P_lEKOFYpt+S{77_gRcWG$)zXBG~6xSzAo7E$nN@KeuDq?dfNG-*jMk9cWxfzO)mB z?95lh4p&_<=&oYKu9#+LvhSE+oyB?I2mK=U&b-er3i!oc;@#XBV4Mt?)zukXnWRqt zu-{YUc!Ea6u1b6Gw;d$1nVrS1-mBT&3JCNu99%}m%UE}mkChd)YL(H*IAdoc-QB|P zY$w&->@??24ADD~$iR|76|6;cHPH4B6e?BN`KI)D?k=W0k{WHn@Om}~Rb;s2IFt2rhKiGr! z?VzKZdA79}#4^@k)SRCg%293D*VW(t-j8ALGhOpB-QGgS_q)$Y;{caoLT1+MBzJc_ z=}wV--tAXk_;sx0U+UL$eHJI#ya~HTCTuT{w%#hH&j#Z%L5Or>hRYD?Jim9Ehx-Nl z`q3!u_Ymr9)@OfF+R~l|wPT&_SZRAvRtI+a9~Rt+AM7IP?T(rB@_&k74)pDC%w-(A zoeue8Wxz@+4K|C}_9#EG<@4l~UKDbhQb=(oCOk@pXU$|QTCmAh;@dWOaC<$}2@~j! zr}S0^cs&24ki6%sr2GnB*#}a-;I5tdu;V+;!LYK?8>exwB{sl@Dtv4m`B)$hwR3fx0B))B}RAG zDyw|9+;_`dvow)qpTw6;BgL7##QXlmX%s7zmn!ZR|`atuSL_jHgMC=vaPfXGux(uLMuWJ23;~KBg zxY&g+)<6w`2Sdno2$>FM|AXM-0Ja``{qz+V_hi@IM6_`(U~6%36C9-;yRL?5SMc{? zNKgoyw2z5C7z^M2OWuR=f>-$E7xZLDGHyY>4al~JUaqL759{&5;@-R1Gro@Zy~E<1 z?Myy@Va30bl=B!xo*!c#5vy)wrCaIqPK+e}#mQpFN$n)Qayo&0u|_BmbQ_D<$}%?7 z%T0Q6Bdgg+h8tMZ2AQIbd`X;Eu$hj1nV8Acn0%V4X)AF@8zZ#NLnhnnpx#aJ?+)$0 zk2ie;GFFyJsSEpCVklinE(NN_UWVgg>^t;pKHd6A%)17c-J}-VJZYz=eyi=@>5;u` zdau8GlwIP8?M9zAtI;~wSye3qzKwt0fjjTAbEthcAVpU_XKzM)=4UlO$;x8Z?rAu1 znueUl!(yG`udMMnX&j%6>EZr|l{%`J&uYr*~-B>3_bQRW4`?~HgodkYy} zFP6KYhQF!lK{bw%oz2?H!{Ei+wK-P%xYI%QB=t(LaU}O_k zS;L5a89A^*j?8Ga@*%Mu%ahEhNVV_-Sek-+U=-Qgl z=5e(wL+6UK*ZXQT;NCO*Z3D>AkgOW>n@u5ea~wBzh;Pfg z|A!@X#YTHV@R!)^Ks6q&_T!+<+ww1SVP5Qyzm|{r67&6z9POw}eyQ>ZgCNu^SWqwi zqzemfL+={nX0>tV$}GGTohwR;`LUAQ=v6k7%>Ws%GahhBZ&)p_7v3bxiLw*13&j-g zr$P*~{*)vbnE@7N)kASY-<^8s9zAqFR4wj)u`ZzkpHuJahkSu0FWW)|Lv$(8k9J4}ls^jfy zlt&zvkBnl!DW^b_({rwfQOC}hZ8uVU0f+0QJ$?Cz6wz8g9CCmwV>Qrg$`Co1A+U6a z?*_B-*J$UfutR4kE_P=x^CWtT;TydtW8ZY@~O$ z);!84W2I0sIdasc_2z|{3JJimq$E%m%sOTU)blx`PnjR`~+rD z8w+cqmhCWu9`4s)?M7fa^ ziY3Gj_76k!n6FX{3Kf+ZD#U^d@CkSFh`GGV#!55Nn6xbPvL3oXC(dbi?89`HjLwn8 z1-*5JT&}H8h;uFeLu>UAt*Z#HBIb>iF0t!cPo+QP9OnBmuA9K$PNBzBS$633WVrSw zUo(o&83Hp>@XCmkTk%IR-|Gn@P!IF>u?8+DZ=T+h{vr3@wfYFu|DIj%l%Ls313rgd z8}-L}9$_6_y>=d9CL?1vU~ftA;F4ZB&xf31@nL_*@sL9}be!$B)3;yJpG|sm4cVG$ zN`7%BPjRxWfPvPaEzc_Lyzl9ABS7XNtQJ*9W@LwRkM?0^C!8gC)?9=no_$1Bq;aQ5)dZMm%Q|E8dLH1;_iEuI{0u2W6sv!evg0 z0WY%e>!C(AvypQ9d#`xyLHb#eZpN7#R#dRCv1B)y&Cc|9q4&#K(FT4hM%&{wq9fwm z=+QX6IIa3;!B}#UVm{I=OsXYZSw^o^f>+MjgBp{}*s?a3{Uv)^3*No8b4;I;0kc=N z(%$P1KI_P)yXdv2ete(Md8^EMS zWY*Y|VsFRf#7fNb;^hl?&OajTiz4fPai2?A&}DXh*$BZ^S?jA1BaK=n@zqJZSDck~ z9o>vM=xNC@9qmttrKKaObYz(pyT6W~PD7rT{rZAW&q9npAmq<9JLa?;fP=Au?;A4S zPV!%31YeNJ7V_Q#8Mf%fFX+fth_Ov?ZpZ0%=&hZ6>NjM#TlrSmlPKl=EvuAKO8NW| z-aU zr4W1>Px3JoUjb8Bi9FWO&h`Fn;;Xmng|B`39h^PH%l_iZv&t2B%`Ae9UAOM>l;WON z!BcB^dP9iNO07DnX-~1-%Xsr^BBf!_Wh8Dh1`;}#Tq$DqMoB){ND4$s#rI+#$v*yd zQ_gvm={hGyJ8p*39%r&`@prW|WtcAeREuNx+U2{t<#RGIQ|lp zCg%0G*Wx%CtT}%k^G~1AQ?;=9s`Rp=R+eIq53!2EtmJO3Gh!zKSdh@K%vzRStI}$5 z8c{*)I}|f$|E5cPoOcUzq{w> zOYf$|1+cCHtl(a}rC?&ras;+Hl-{M%^dV|CL^Pg?g$yI}U|*y3(^&m7QQl=Lk2aH~ zyf0_CgzhbutFq3MKE4jA{!1rELb{Rq_P=m&IGY|qq628xOQNgpB-Vijv@p-CzKEkb zep22zW-)v@zbmt2($`@nr+N58a>m=-X*qP5=_#Yw=u4h#E{f<=G)SJsjn3So*0*cP z&9L=GV_g}^EhEdi5yQBdrQL>g+zrbfqzC0$Wi4nH>jY!fZJe_`nY}K?`!->V`^<0o zlP^fii{0u3?}%;7cv=lM`K-B8ZSml4X&z&L<>l(iX?HmYQeMPq)jpO!#xWu|5xJz7PMJ*ZjF^94{ZRh|G zTl(9```Xai&M%(xA%C%ihQw)3^TlfKtI_-X!aVYuPq!A)x}_xaF@#&?)q3A-=C!wz z-?un)ocaC}Uwuk8^&-ESPH)}B%il(C@@dBxq*z@fCf zLk2uI3-*?SP3DG*akfbjaa##7S{b@l364FWcqkC&OpGZsN0Kd4yzMCs|w< zv2jxj`B{3}fSuQ6+coKK6`ZnyXT=<@2fZo?QSYSVIUzt6PrP1DFYDdEN#jpm@n<@D zZMU00dDq`a^aOr)j8{F(tL}$Zd-;xC@_pNtFL>BZv^7S2SM$ItePhpE-ufs%6Fa}0 z!;oSfTt>Z?gFN%Il zkmM_nytg`cSND#j)f(zG)~33mi)t*j0-Jq=Ok?h7KJv_oA!jB>=L++=6ZF>GkbEW- zn#*n%iU}60#RqEi0bN|eb1jlPo<~P#(}s6g!X)#l#?s$m^tiv`tPlD*j;_B+H|>Ps zx`+O^^5SM%lLW<1L-#m|dncK!$32#iX{?MJi^~lr>E0};6C`LsXByDzS~R0723v^@ zm*Y!HyL(9t^-3vJqtq3pt@_sEFs!>9MN(;wtX50TX&8Nb7_2Z!UCMs%k7E13 z!P2vs=S9~hVJaEquwqBu9PITDpXQU7yB8z4AMVG_8rRl4|8D-+@9g;`w(vU){DU_C z358FQ%^6z#7um*q+keO__H>HaI1S$%=RsY^Vy|PLNpv>w;IiJo1Z6JLgbVuTJOuvR zbN(jR^DO3q=U&7pE-A5Q^QwNl>a!?UluJrn^Ow*6@cjvzby$DwWpO)b+GcH7tF_DF z=LcH3fd8J$I%l)_Sx_-@?i7(wio z-P9esu%do+ZltG7@wC`K_d~k3ie#>>&=866v0p;SFX7J@eC#Hew2p`UgglnwC3AV- zY4B_u{x(zwAjO)$t~g-qj#=M4NEi$gH{oiV+4dH;y;(nP(*6x(^r<$lz^Rw;$)aRC z9Ph@Rck=E#)NBX6{aW0&i%iht`kBMbY(u8xoz!h@Hpl5GZ=R4s0-S}M*7E+uo zmFC%kVOQoWsx-4XN@UeWDU;P`PC}Md>E;t^TZwa!twV+aIEC7)DQG*r7IgZ5u-9z}cKz?jCn?_2D1 zD)gETQQpI!=d$fM6M6~%vP@lKcEf5ou$~5g4i~n;hn-5CwR8|h9QXN2-=BpOv7cBH z`D9?DS@n1hR)0I0<)uTBWr!S7VR9^*u(gW`y9@g(>AF&EyA-*WN_hSQYPp++Y{N=7 z(iW#<@FV%vERR~=N*dYZA~KW2^(1i>qWy!xos|duUF80=a#T6!v+s>*#MtlG*h#D` zy0-3Z3cos??ah?+i@go!Y3o9~CiYH=UHq5HL@bAyD`k^c<2dVO4L|qmn2Ep3-S)d{ zoW}fzg5~0iBWSucuK3Q~`lzTJ|0DXXJb7N*-+v{Y-2lP1>6blx$&dQzcbxj7{z}iQ z=2Qyc8pZLCija#|d-XJ~5i_eQ^R?yp+J|wJBE~WE%i!f=(KpIBC5g?>8ISzgjKTfp z1{o70v&oQS0(p&Rv^Vr+p`mB z7`t!Z%1`8hZTZ#iUcFj~wFD0?%4ZZ+^ZWIB>@if(>W>06;V!L;)wnrnNbG@<5t^qX zudCi&oQJu`2xX+#*GdxJ zmqzSiA2(S4ntS*2+dkyl-Mu=vXRIG=2-9lvW)-2w!*sQv+T~Vm^7=aEJR69S)L4BM zGxB!O$j$6%jc=CIlO@VLnmUs--&Q6nW0jH0aAk-xP>K9riqglmy_BAQ*TX$}xYrBf z)t>I%+cQ!;Z2;RFOxB@~WBKw)wEkTY&wPEbOfA;nNLygcH+cF1mhh8u%Ikl8o>t~6 z3rXJ!uk&eJ5&rEFGKih1s>8r~@USU;i(Q>MiQRk9#XdfL#is-Ljv=&jD0cliRy@MD z*H$UTN~ITl){~rjxTc$YO()stcJdG{jfKPxUUl*E8nnF~)EuF{~+`$gw z1fQ(_#o2Bd^+x!Q^dz00*UiBHW#oM_>?jCNMh&Zor-&&nCM5N}xF5D1hkkz;>9w0V#7-s8{`_-q^6Snv zJCR)nOsB0Hv=L#q=5N~YH*M9j1G#mPC40d*xY?CPVS4f_PK#CSY9(^)PUfAlq36i6 zDeoBbAD_^7u~xkhtGb=_X6AP<%R`>lbFp9l{sd!;ym%qK@gR9T;tpl?QYC+@dH=NW zgob)4Sr4_rH)4)*SDMhnZ|zB<*N*75V|wL;Vug^NdWlZ=fgU~C?(_UhCpBoRH22(w z%2QrfPWYYQp--Hk_%qoaSG$-)8~Z{3KuY`B%=hH^9gEt-diJpEJy32B4!4(me^0Xe z`0WGA56U6$fAslL-yav@U7L5YQ!aY9-uW(Z$J4Gl%kQ7}?M0|@nN21^n;7E_jLSkk zv6F3_X_@;ixu@VQXMO4hAAVw9_6#qz8m8g zquK9hdN@+NI)aypotlQoR}I8_`qRsppV3R?*PUPK%>LS8l&$!erqDKa1b7-QR)eXJ zlUJOv9-{|w;?6yKIFJ6wsqeC4s2NyP5>&s)Z=Rudzd^p3AG9AD?ZRrdDRKVl8lSE3 zeVh!i#3u`VGtU)sT{#Dq#q6ROQ;ewZeVRTWn^?%U;{>RsbThIRD{04SwOT_v*7L0! z+4bj%{9#MF*P0#M!G^AWi;?Z4F^82CN}N9Yx6dy7{swXGO(KR{;Zk1FLP4H4B>afH zR9XJE68x(Q2Wyf^9k^JZ92(J^CUh;C{x$cMmY&=i`m|QFR%+T3Yl~A%pT(@K*@rrD zde1l(Fc!wfjsoMz>P<{*5+t8S58l)A*dZm(rCp=Vm_C*@iY#IdOK-C14EtM>Y6I3@ z19DfSD-XlN!X$o|a;tKal3qztE?vox=ASDW)11GONy+TBy&jb$-YPxZ%*y(5(Y5?I z-~I0QC>?y9SE%hdO=x2Wy4nkq8muqgoScCf`rMz~7`tZ$jsZbjhg~WK|SbiT%zC`Q3eq zo?Zs`K2g>wpVPH3A^X>O$!@l~m+#+CmIqy`U9w3Qjt`m&sjkhAg=}Ax25!T&yBWF|Qv{V&|-izOU@M*ni+jHHcNJ zaY}nNT&1drr-~;(j;~aZ&n}A{l!Q7ZAk4M#-V5$`Nvo3NlCM`Xvg535FQ;fNH*L$$ z9t+X9hvbz@v+zoEubO;Iodgp!E5PeE_+JO#c6MFlnqTnS7invsgzesmAKuQ6bDEEE zGYp7RSTeEkI7{(*+$MNV68lf1T$Q1`BAUD`Lwgx7yoB>ylm!yoL!g*{*+cC+X+`X2 zmQ2qZkY((=UR9~6l=8lqmKK7Uce8~!M>ePXX7juo`L_(RbFu%#b#Uq`nOr8Tf7$0n zz9Sgf-+b*kKJ=^^h-YLk&tR!BQzvHV{3A0IXDX%>p~jk_oMtBHGrChmDXBc}eJ!6q zYhFfc^DjD^+1SgdMt`G0sgQ28%-uw&HjQLvlhh(n+%mSk+OIaiz%SHkySjZtUf-(i z9yR>d(|2j>4*IkeVrdg^6nfZ!=V_y~P?{m9I#vFxTamV9$WXyOy06)U}f5ZEK1!cED z*p0mZS~XjxRxAAKBehwo7E7SPBDS+o^b+xv6Ou$NPS;eNHH(wvX1}*7F$Xlel2ys< z{SC@>X3Jf|XwNIB6lWW0dF)a3uJ&I$hjzUv>JzWye5%-wHdc+kD=L@<@hAIag7L@L z$8wCijl@)5SKFbo^@Cx|KyB#HT2tJyw|4a;*>2j{iC1Z_y=}Cng|;WN?Z#@*h^!kJ zDR~B#J)>rET1l_SFogy@tI|G zF)~HVSlCDGG)DR3WVzMQEB1`oq}Fk==T7#yR|^l(o)b|1519Bjbi7O_u7_t?T$R%k z?)1xh-T46s{0MERKntpnNi7InA5u4k*sUSAStV*aQH>_6;WWH>78IE;%3LNhvIeqz z0b#y{G)F|Br7m+=Mc{IVF+q2|Y-O*oEFr0+OlGqeTI1?t$!=0Cq z?nk8jiMgX|#RVH++9rsyneBc7hrWQmUy#>k^7>3~#a!K0YVi?yERs>1B_}skCTJ{u zPNlyoYTQkWTC2UY86f#oNFVd}XC!n#yOvzfkHy(*r{q(AqK}8zcFbwsP2avI!5wUI zJGpHq-N*v&gao_sl0AIEUf#}Z1iYhxS~XT;7D!XR;@VzIhp>nr$@3T#If03uulmG8M zA{(n&Q(o&@vHy|RjeOQXuh-Q>wGy@658n^Lvm3tVYY#b6tXqpMXav)!2F!eRl#roTU3_^x=8faEaZgNyM8myD}@eXG{Fc z>HpY|E_TQ+;PdE_SbbXDRgdygu~Tzdzb@x4<@I1WJz1KJ9wp1-uD7mN6z6ptq^=^VVf3hssJEFYV z@Nto{+?=3w$~I-M_s5m9zE3NPjP<cP0y*k^Zk+n>h&H?fjzF6&rg zl;#urwS0Eb`9OSQ$Y3a|Rg5P+}lYH<=+2UV}mK|fQKZx*m$p>uadt*KR z9J#6S);zz;b~`JL5;h#CmAplRV>a|S_Bw`sjih(OA;b`PHjqqSA(KAP<^?v|1(LK^ zf=4&T{_C>c8f^G+*Oei|;t;tIJd8OsxmaARVZWX=UDB&(;My;8ByryFZoW27yjsUb zKjz^Uu+w*W>Pgt@7}hfkz75i2{lup)Vd=fe=S9}h)02CO8(zeMVqIS!h?^pc><5(x z%JQZvBfX9htI5857aGrp#>=4bry_#Q3G1q(R@Jn$qIly`+EEk(E5L&9V9#O8W@wYg zgFY>dAytB9HAuU@E0dL2-O$zhUOw+fzXoGPuO~QMS`v=^32sQt$C#{lqD)fayzKEx z>@*u^Xb*P(eo8ObcYzyil-R%hX-HhfGs|FQ#XRF)-Yhp3cC*+n13bBk_s2SgQ?xTy z2^_=y5AhPQUt>hUv2$bWv-FL!)8}9R|K-{_&R@$xeeD-J{eG8U?{>d9v04qyy{b>H$AvSqs_gjg?P9RIc!zt%WcTB5#br`T(ztRmDUaiIPh!9| zwX80l*Fb5kG*epp%-#&H>gwNr#ItSql~}J|->63ox>||XiBre!mzTu~T$(=*sw`yROGHZ_(dSj{e7#=XLg#kS>Am#tFs=Gotxqfecz+$a zX2OHx#Jk+28vFgnPSeF{Wf{8j7@ep}W1nJAb=g+^gf_2a6)+hKXd-@n);zxYvOh69 zsTwx=7#wVB;2=Qc6c+ zadMFzq}X6{w%CTowv{Vw$N#pa#clY;mN365zt{-w*P}nRSbueQt)e`plv7G8u|wb^ zN(pSBxKb=p_UpZUE-Mu~8yr9?mlhZIPbd2KUVsY&kR&Z~-x`5mkyY@pp{}I-@oXl46ip$;eBO13< z1iwg2=E@Yr%DpLUavUUlo&F6Zlb1-byZ<}D_m;4}5#Rc>E34tj70qNW$rC?d4&Ob- zbaUI!zDp>6EBM}8+P5BC+X&Y-L%FR`FLo9GhDCpeuN=Tlj)>!8mi`~& zxU=H8i){R=ST3DdjCRoI|Iq9XcgcalZ1$P(1dMjU6xMdwSsbod31`J!~%4roGDs z|GyINXZrj-wmA!zjTJAmNbNnpy|&J86(+dSQzj*)=HWZ?%bpg* zi;M8!F^3{{zrqvU`8ZB|5K?@HyM;%Jy{|WjbXK`z>@c`Und|*bpHK7sB-dRV;jX~X zlu_eS$|FXrAM*YIjH{6Gk$be_E)3S*F*x;GbaK-FG$PKWn5-|Sir1zmM#8?uli8fU zTS}6j(1;B*VjG$7aphr*+c`D#D3u<@{x|(tdJ3!WOD28UbPCVk4-*^2GKS;JVSf}(Z z6nICOu1xbj=Bmc&0h4_aS4{MaiS97by(Ykj2{2`XCrzo_9>gGej(WN!$MB=l+EEC!ob4GWZq)*ajiOc4HKE(f{)L zQ~Vw0{Rp2A_I*Fs^`&DyvH9+P-xcz7a_5e)wj*SUQ`0)Jyx1{4c4mGN%S+MrSG9AP zI==zyrr?3IVb}-0`4ltU;>z8AamX$RzuFZc*0f!=$KeflT~@^ot#BaSKq_3Buj>}@?gj}Cv#KgSy0o#M7bSpM&H_YzBq2;f%i!rC%=H%LtXDm{Az zAL-3@yWt~kX=@XjTZB@5_!56?mRaU9d;Kfb}{GTKO)Jt zYS&VYn_#8&vD4aE>XX>&WA?i#jky+A3YlS?&+MjLzPrh;jOkqaj}-)eklPVna}VFN zm0w!JJA9~D=hB~PJnuMtKZ3U!4Ac5Sz`nA4y&&TY_+1Zj37Pbu-91@LZ?#Ba5d-j) zSottY`<)uVCk)2>2J7M1^z^Hu>sPSSzO3m5+Rzz-v=u)z!>;PH*|X+~$*`Q1%k#|68*jI@2Y;jd)cpE(nApm#{7iX^QD9PwQ=8O?%&9B zVi)t8P_L?ISJY>5=1mE4cv1B%sBZc6d~Ws3slHj2Ov?32l5&ZMiP4R-n0M@AdJ-pz zY}ik9F3toyiUS^@?LW%M{YcI~vKD(3`7W|@3IZ>sujO(;^A3>!hLW{|55tn47x z=nNa5_oP@EA1iD7s$GiM_hq&1M<4sE;{YufsJ@|_L)1MLCJv>eL$xPWiwBeEK$7c6 zme=yBElHxCf1OFR2PyO+=~u{iAT~LKY=*hh2zMUoX(RRKNS=KJL>~^xNPk5kv$LM7FT+36KB@Nl3{1{r(Pj{=xdp`+3Rd@ZWyh zJ@@SA+;cyM#=99G_ZoCBS!G7`UF74PSQ2-FiSHm6zXwPD0ITk9_}so5_rbLfWR{LQ zF+PH{`+a8LJjW5si1FLgr4Cx%n^|CAfL=d~t@0VJ^cnE`Iq>>LuKrc<`3IdXE2FxVF@F;N{4_G&UA#Vvr2Ycf_%h@EUvTdKX569^K<1x?Z^Z;STP*m8;cpw~gF+ z9Y?Lj3s?gl?X&nQI5Muk9KN@f*yMkXXgT428Qvzirj90{9)_x3(;5|XtQQ`_8>gF2TivXo^@xc zHPCXdf6f%F{jtntHF=_Pqq;?8s`gt&hDQzv^x%`rqNNZ*t`S0=@*; zt@yK8PoIIeJ_{Xv9;|+e^Q`6j22}rluomy+sy~Exe+qT}9J;eZ`+tGo$H4kCP^Iyj z<@n5NxN99go}F77up5suC+*O89`n`{>=rW%rObkRJ@;i6SgFTnSA)2A>_MKy%9-Eu z1i$C$f5+W_2haVMS+pMgcij2+-1(32oNIjk3vO`j=cC-+s=+6i`=^-wXLtfvdb*y# z)hJ8gx@Fj~%Q<2NN3P@yE6iTShJBSQtwf5gzz<%|)!mhEDX!x46~tc7>S;|ZJrr_8`xJrDhTK6Gjq zpSgGd@4~yd1U|k5n_w!=6QkJ%?@T)*1`O zVAcJqtqEI+%yWiV_#oYBpo?r=cxdi)XDO_Nl?-eBAN}hE!-qTvdI|#^1NGgTIIE_8;^m_$f7bKf@OMCAEIPXCI1(umc~%4txf? zkM2TXcqVu_7wt3$N&Zgg`BEhQRq*hQ@bE`@%G;pjuOZLwK%V^wKITf$@D)g#Sc9+; zFLWP1aVt=Sv>FKSj)aaTLv!aqtrtR{mqR_*LI>~18~HFt+yZrc5{mdVym=dZ`7dbn z+tBQ{Ass%2y>}~DkDYtwVRt-)RrDZt`#qfTTln+WaMZ7`7k`Bv{VQz6-+;&8@w9&e zcj~QqaO4wEm$BvN;oGIiv=vw%tNB}xMzOAT7c#v8{2c}xZD@o%vQoXdOFwvY5V^4$ zU^MToAe@Z+n#!1GP^on`SDwYw**(zwm|YdzT_v(H_Ga13@du%kqgY1m%x)eWQUrID z@>hXe8qBzd!v$lYBB|+2IR9+q(%Yc03%~iTQ-YD2$Y@Ff56GkINPeWHshAXEc8_ojfv*7G=iEq6PsW2NU@iykfSeVtnGx6G{ zLz(U=a5}Rx9_k#0B{K{P9n4)^XII9P_CCq49oWAuaBCyB@;)q$9bmDJ|6O;q3fdI2 z=8R$uDqZoww%YRp_a zD5D+&)+Xae&jf?+aXl9q^B$h}S|t8WJo^Xnxs3zf!dO0uCwd!{_8I8#bMV?17}*!0 zzAwX#UqK>$6O{SiBKhc4zRLpyc<1 zznj3>OEd=2fo7TVkhZEl4&wdER+U`OEEHl&&wx+iqm2Pg+Bq0b@E=P+p3 zb@}ck=B_@cBT1&9U#3B$XJs_{3VJB*H)#}o7amsw6nBL0JBW-IGNv-8_=i!1egCaXMGY1{};I4&h1}-Zoi0x`~qYB96bCPG}@;a?=3{L zKZI_*ktZi+r5je-RcW<_Xc_ZUCezu7D@{`>Ik&Zi2cz3HtVtC_d+AP z!OJf2vJ<>)N4{-`>b8NKZRojecmdnMk2_{=&v647y1sKU=Py6$_#UzEj*dM_461u^ zZgw&++nC2K%t>7)*{3ir`xuRaPOE_dKp(($Pj<{Wie-2JyzPcswnA$gp<<&1uR(t+ zh$Os>o>>Y7EkT&JFH_~H*vRZXp24ExdHp* zFi+76f4d({5tu1MnpJ|GVMw&G$i_2}YBQ1d=Og1UfqSn(!nuFxM}bcRpXa-;@tYm8 zZ|9slIN$i)zk|nr2Y25>{{I^|`vy3(qxR>(+b6lhM}eDwYxsN#bM(I+fw_x!mC?{Y3$S`BWM?}I= zZDiKB(WBpHoOdG6zKb6I0XVoDdN)hwI&tmoKOqa%+fP7=3y>2pLeDF}_gbjeN~1l@ z#35wLF=nF+TJ8mX_Tz~LAqj_p<F|3ZZD!Kwcp_H7UIq5vc+D_iPnRt8?@~MHkmVM;F-LGQ@@%gPp{Wg>7 z*qHfZcfhB&!=u(Y-;U(E9cAS@0M7Ox z;kN^IykEz6tNGtJ)pBsFW_F$OV#Z|c{UW&h1tgz*yM!yg#MSlvS0Z~?!>4PRM|ULK zf@a&v-0p{VU8i;oIKk&4_^TgOW0$^K{w6>-)8HfX8TLA|=h5|y-CatoaQPgg{TgHc zCi2QXCw>V082C@%e&83t1N`;?$NU2L8E_Au@8 ztP3Qn1y?ph)6Gz$J6|5d;%$Yy+8LF3yH0R*f)RItr#$#MAN?T)jl6b&sV;EU3B`3H z{X4)}I~36h9OJ$9%!m1{5&3rz?52q6Zt$$1w}bz!2i(fFT}88%Gu2KzxbIG+;4bEG z4_MvHGg&jdA02B4mwI@#9)7Gxn$$Cf2E1i@vSEwd1jl_4EoiOdE$Ep~FlN`=-v&Nz z1DCfUyWBJP)5xn&G7omm{V3S~5L)H^$i*9&fvd5SFXR7<`Sf;dzgbw+c0`7HT09WB|0=DwqPJXl3 zpAo5pne?-#)A9`a$GDb#5?i5Vdmp!PbUPTAH#?ZsPQE$8bGQb&02~!UbG^V(2{^J& zygxV^2#yAWfg1G02=v8hbjLVwH39A7ZhmKgr73)OCKP-o*qVYyaKE8R{Hec3XS$&V z>aOBi?&a4P8ClHztdY)x@;Z2$R>p9Y*>~5GpcQ);*k}4V=wUu1eT?U~{`yZ?$-e~y z4=}EuF}{1i%8$X0w%c7`>MqXuA$YqBeB1@@?grfd^C#fuUby*wj(dP}tk?J>l=u)h znFsb>1;S~y`7`o>)b)x8Jc>BI1`>#sVo=zB0m_ack6SL49ZXf&rC z>#MRj(KPB|9GgjmN^`JQj-@$r}@lVJL9%H{-b!iFGL>HUIN2tlPP)Q@famz(pscf$v0qU68?TVBnMB;TGV-z|FvQeD@w; zF7M|6XY>DLt~v%xS7S@Mn@?}>)s<`E780ClvQRu5=f; z{|WqmA6Nb*c7|(u|AH0rI5fBb{(TY5t~_apY(oO>M*<$c8};tc{f zgED?UjqgVT;j5YbujFdV(?LjpDrDYZYykbW>P*uf=4lQR8`_88zLVMCf{s{+jCl<% zc^O;b1+e`r@Hp>Xr~F5LbIaW^CSK74v-<_8y2G1E!h?-_pov!_Cwq~4JBdwfMLKNGq{I|#=m|)S(NNp)OuoH_tb3KQui#0S zGxnF@)g{otVrb%dXyotE%rnr>(~Ry3=<9LD>q_x?eDet3gvD$1ym_Gn=84P~nLnDJ zS;LQTwMV(KtIhugO+E=n&xfPczKg)~Qgp`(bmC`@ZP1+))mm&Rs3Dc-}T6`8sDZmZ?82hh!(Tnzc#uy`Kr`=K z`L2_haF>dn%xN*SUItG3bC-cg`N7<=8tQPZhO5v<^EBGVa#2+MjD=z*BcEq7hIjDP zm%(Y*0UrcD!ROEO{l9X|?Hu)8MspX^{HI*!UdDMp6!vql{d1`7ey$pJac}Hm`?M5L z>0j_Q@77_IOdle{|m-`KRCD#d*?oM=)K_QK6vy#q}2V;&@VEXwjr}g zeh-g62sJ%~9Ml8*8U6@7t~c1v=(b`9u46=W zFM}`t1SdwP|G#pKz5XABSN{mVTOq`*;egp*i3d_LL3i#b#{%iSlJ-Dp{*IW74 zT9G}-je0&Ef{KrzSB}Bo9bhpZ`Y3`5O5x@TB$wSIheKa_bCWW@s)4`k`Be+gjYJQR z0yFMwG76p?38#(#JHz19YF>>QSMptde(TFIB^+CX4CsNan8!6bk$ln9>U8YIG5EDL zV9y9&DV)>;ESfoM0v~(ez%Bg$I?uZt?t6hzJcHf*I98hd4F3$c&(QCH-|+pf`Tf@% z_Z!anE$2q&{vgLSftjP=t`*F5aE(0t6ys9GP)8Xuw*s24WX^^#cY0+bc#4rc)oA8+ z47@y+CzoSJqg6*UD%YCUGE$>@TF2}p0-nx*Qf2_>0_XGV#lXA4p?f=B3)~18tNRe} z5p?Irz|$?j$B|oB`?`zg$C-g!fPV%)0(=l~Z$N$LtNC4>?fz?XxW+8*b7pq$h%Hw0 zBmsXt$lv`R;6Fz*HpU zB;?yz&Ktq`L%=}=GuVgmyBmc2E4RU4N5IfQsCpl^-A=TbT5Th?-8!!LI#*u}7rY8L ztiHi*EyW z=Yjci8SgpB$8#8`k->BL^&IrhIbi4pg*A8w@NM8beEvS){|A3R!GgJu|9{CjzsGv~FC^zY ztQmQHA=iA7Z(iYUtC5-;_;xFDVK>~+0LLH3K5gZBI^lGm)T*^U;H@us>(3|#!q=5h zLlt~j1!c(FRm`BV=}KTAd|JWha;Vz4m9eN|j_(D&3z_G9DCh)tXh*gm0|)L2atM8B z2QRyY=r7d)c3NId#N!oyTLQSs>KWj1;9=lT{Pr7;xt}wC3K;MEE^r6%P2lUm*MP6U z_h07sFLUfyILCD`|H?i8AMWjX-S1!v-Np0V10O$t_WlE-euPn5>9Yu4euYuL0WWWZ zX6>wK=d*m~v?Sw=G0gQC=6wu0(7o42W1)>iHr0~D9ge)JL58{4WEFf@i5D?|I7)x` zv>&f!@M9l%*ZoV?0PGh6FSw7X`w?9Nyc3wsceD6y8ppUw({<49TQM9gn+tF+(SGo3 z3EvcP-+W}K@}(6!_z0YI2)?Vwi`)Z8?SK!r5L4ZhW!h%IQ8VyBXTU+zv7@IUztkyq z{+mP$`ZTK5#$Z?1W)*Am!NGiV%zUW9N~i_k>hIv~IVeWk&Xqq)nYm?XiWTUaReV~* zteMZ;$gEl8WUb7pI`>oZ*5`5cC%DT3?q-+fnvb4{CqyYUC5`4GYfA9w&OHl3NRTAPek*a#&2Ue zW;Dmva!w6r4CUx5jvT;Iwr6dy_P{e?~S-0M3XjxtHWT#74fZn+rd@b|I7GqZ+JyJ$|$cp#SZ6*#_)8L zcv3BjSv=d@vr)}K3S9`zTmqe4fz^8rG<5?q|0ZI0|AZIo8r**-0{3z96Q3YH`YG%{ zcPP2-B*bndU+1@fMN51Ys-y!i=UD%39r%@edns4B5Ir-SE1%6Bra;^7n>7ksvj#j5 zLfZ8QQ>Dy6Z=O;+FrRNak#_Cq-&V%f%-<2l-Na}c@i^?%auDo9mFO~FUj&{<5-i~N zr#a5vEq~*zzrvsMz|f=M`4ObXBV0`zXCCkvlH_r)=8g*UfoJ*r9N#bIn57(RjCD2F zFoNyAC&nkDXXY-fOYQY7&|4iA=muy_kI62GufYXcSS!$QuDw`>-dT$7Sb`2=e{XES z$WOkQokl8ZZ;JD3j;zn>76^C}ewoA=2Fy`vjH+WZv^(;s4NBUaV z+k$@R;HZ2oog$<|DVAq{ppwtkNQ@Eit7~S*BS|JPW;=3B1F!1vnP~r6S!~W4@aVL0 z9v0BK(2Bbg%!1lyLNR9}&$M@pqE3O5+|TkfsLC}CQhyEKR6%L-WnbPKQ!M1SF63Q1 zn6~3-BiL@>srK@8J9$d`7S=J-8=#FhGT-wkqdf?|_aUWrGU6?acq3kf6&9<3mB4bq zzomS?gilM*LrXb!Y4)okUR=ACKk05?~RqkRulGn>@RKaV}tV3mNP4(4KX> zOBnAI>bY8ug1&FGsBD5rq27BkLrp0Eo4bp)2y zIG%Viqo0AaQLbNr^qY(Hxtw=bGqUTk&)yGw2(Sxe)b^dv>W;^U~GUHA z@896}I*#4JIr})*XodUjv~tbJT^eW41Alg!wD-6>pf_{2J8~Xk?p@1c2iINDfH{LL zz(yp<8@#RtR`UJJ9J2(k;Cb%&ER^{q(sLe9{}9w^e}>;ea}O}upMi&a;JhEhiFYHt z?g9@#K%4vkP4Im*!Vj=-e~32u5Ag9Lw8=e4z59S)@cuV^r}z61$IQb{c@m2zsvZ|Z zxAMBH2+eS=2FGuJ^^H)x9VE5j_kzy@;4;QuPCTSC(|uYBdUO@gMU!caGbUt{Q)!SR={<-pepO&jEJ^^#bz*i7`)pzqyZ|~ z&$H}B!t7?gcY>LnXqD}J+MfMcE4Cgmd%FtIdtU~%EM-J5BH>?P9E+f>MV!5et4MQ; zx#|*dzKr=>&fKkJ-do8yxJUAXuwoS#iJPRzH3zyGfr0+y-Xx6Z-&=y25%n# zzaIc+H^ZwpWxU!G`=kJV?ZOA_!1rrIU$aJsCpw>)z`4K--cRPcap16)V}@{Se{8K{ zY{>#-qS$1m4r|GUfijakI>J-l89TmoFgOq>s<&*K=a!818xB9eFv zzYgPCRb10-UT>({%8zz@h$GOAI@wJ17ASTDcFGzg(n|Q)S|9zp7ofxEpx6b_=X`kV zDR}w`B;4QN>&Kwnc~I^=&Uh3}?EY-?;LyKv=3`Lm6P*1tTIX40-*fP=vA<<}S_x0D z;niLVu_9p+62rTBSMxBh^AsDgY3y5R9M?LCsG=OmOjV(!_1uTS+qKZjNMJPY$MW4c zW^p{DGs|h!!gy%QiX$T&#xO>r*+#$_u2>ulB@E;qj=lu#=gwuFNbr`-0$$CiS7AB4 zn#me%u;&=#6Ud&w0Kel|?PT*K#_KNHw*y~i3||305Bv-8Dc}=)e=En_%JHAz8lU2N z_Udxw>Q}(y*TLz(f!jOb`MZz~_ke{5;Q2qm^LE905}o}Vysr(q8mI$yA?4hu=@`do zxmaOZ#@GfjwjogVaAwq1nBy7OB*t|Hl3^+m!oASs4sB>7l{3+L?2P~{0-gul$zvhE z3HBUbga^8W^Neb);5w_}n00VW9oOCgPOWP&19bGH4D14@g-~`eTw}lLfpG5-Xl^*) zj)v~WGegns{uo!bE5c#2gpF9|2Z>7^Kq8nsX&_crPc*3EB$!n_1T^vc5squ-cz3L5 zgU8*8!d!M9GO7T%6wz*bZW`g}$^E;)O*@+EDD!Oez8=kGUB(XRXe;=tgBCVG6YHRj zwQ$86=w(f28Cdf=nfGTPMb6~6so+sBeH!OYhjy$Go6b{C=epB*vgth4bZB!rv^bro zna2I6@e~n%F6ULf;_hGe7a9eOgHI=-S0?i}1-Yx#^;`Q8g{57C47TEa0Me%)=a%r! zXnsEbTYq50<_L6f5bd%b`myeG8+xP;&1jeA*Li18Dl5ld23`WJZe9ZCy~r{4WnKcM zzXS&^N8f16yaorX<+|3$xDI|799R$b+`-@&7*pdppGG|@cydQH0;!{?e>&1{8j^1o z63KmX-iiEq7ZUF>{;oupy%&jhJ@1rY=6(K&_a6d2%x@p&xQ}r3N0C<_L7Lg))t!z% z$Q3`pecWs3ecXkeTCp!jamGmGX)SlE<>-;f-;v1TQCQsiC)(;pY>kzU24kbpCL_Vy zNbok2aTxa@o<(uzksvmG6R?LlvnVSSMrqhRJsa!yb8L!k~>`iUth{o&c&L2Cr>a3I46r9 zEr;Wl!>h0G`kmu#nj!32Sg(_KQc{&yhdN&ak77yPdD$ z%=OsNn|U&`1bc{~T5aBxMJb-<$^Xt%E&}7$tS@I4tnFBX99Yi`)q(eI;A9sww~tvo z2pqwdJI1SaNItY3G1W?}0qcK^q#9K%!PG^Za}noW z1g0)T4(g|!kK{Oy>(2yRA-T0gj)A44V52G1V`f`Bp_>+F(;U`b=*NosO}y9IH)>~% z?8}VIYBAS5xt4J;w78hjXd}M}u9h&GrCiZY>?^?WDrS5QGrkV|Z)AqIFfTiqr@ipD ztC*V5X70SC1(BcSRwnV}#u}#}xu=4M8JV0LgLIpKEj5`@8`V4;?_K|Q4sZc*F<{;D zWx#v*?J9n~CbR2iW!BjZV9gGGH*kd;kZCud7p?Wa4mox$bo5^A>8ru-mEiJn?rg91 zxxfXypA8sWRgc&$do=WC&!K@lSs%{t0kmgh8Hx8%3k}txu|^;z+@V+rFdS{3WY}*RvyF>KZ{5});G?P1?%{i`0 zIt%N42D~~APMFG_r!Zsod!5AHwe__7#_$AY;zvMd?uR!N+O5J4utwjCTyr1R@09{p z?^?xM2owM(;4@=CuIoF@I1a*R^4JbI#ERQ>@X0D@%?crXv*(~k>-rvtDvj6u1x@=P zl=%mw((kYnf6bBBso3!$UfPcJO(edFcSO)VhE?cs)M@_ZGA|e0*kYh3`9pV{15XFz0I> z^y40VxOWj)%;%Xp;NWB6%&3)7UUx@Ixuo@c@9rzEky(L!TE>yahh15e_}G=J?uBhP z@uf&@qaC4N2SXu4(9zXUM>QJJxJAg=CPo}~$`Gibin$)d+*k7dK1a*uC!tu6hIGy8#?u56-VcqF)OwUV}8h z5{|eWYPl3zzZkfH_pVT~25tuPbOsv0O6pO}iM1-$K3e}>%zb)5uS#BPGpzhR2tV0f zn7ul=QgtS$HZgk}G7i#86-Hr|jywsqd>#%iYS3y!!N*{@trDCJBe3IZc!I&m#Y(8IBAcbDaPl;; zq*d*XJg!+i3o4$$OiTw~ArW>#t=o|-)~?rqn+@P(9r$%5s`HgW7mXmtbUu7`ft zL&xi(=M5R>Zh&X)tl_%geemlcuGP$S)xCMle@{kJ0=>CHU;y~C!gwgS83tZzGud8! z5*y;E8hJ0ijI>vxkt%?GKp()`Mx#1<_MKp$J>%=q@L??&ss=+<$cYN*(8{h}P((g( z9DRBeu<9vt9y@vZ9Y`@(^Vxf03*)UrHqjfAU;d2t{R1QW4P5&G^67ry-prPZKGQ$K zp8OH=>TbsWBhGPe#h-AEd$`uU!2MkJ0l*rLKZ28oxbHmR37$dxx*lCWWF_)-E!NDY zld@tTvg6Q6i^kQP){Ybdu8*h$?L?kD)0i}SsT037?5y2fwEV%~XL490{Y_o%NE%7}0 zc|=CPdZ*^NcR|C}>4pHAo=s z=}IWs)y4hbjM7Xxc7nI#jIfol9)oI|;T+d<909LQ8FZjQa?r$kzdr(AJg$Xvj&W{O z(c0n1{e=2tvacui=?&lY;htIuHM{!Io z$J#|KWxFdm%9UyTxvTXBeR--fKDnYO_5_ca~_8F9zvJ=8SZ%y4fP-vz@Om;_Y?mMT=WQ3@>k#qU_PJ!&i9M? z-Tmp@^YsnRQQq!`%8ahHaJ>^yUJ>(Y1xgjT9KrLmA2l*c+9?Acc2+3CrtOWM=!Fg` z!shKsT%eG+fE9N=h#&XB=Pw{Wkb@8Kot?rw<_3;82XqzJxB}X=Tf>FW%-gyCIoxMD zxKewJqIRgJRWV|(mF$_j`Rv{58;Xyk!^=F*@u!l?G(_-+} zi+oT|aMuG|vp2g{&Laxt;>RhoOotGNW4b~F5Po#UU*C8u5AR*WC zZZ(o{B~ouWl5QC^?9O?!S};CriNJ?!Z}r0uIOoI-R#vuMzRR%SVE-tW$xpOr!_qFI`}2lEn6!Qy(|v$ z#P%m|Mv}L3L_3ndgQs@AlxKD!5xaQ$6F?`>0UQU~fmWae&|YrB8a~9a*0?G)kf!^m4a3?HfI)P6Ta?I?q^oCjpyiK zPEIhYd}zZwS0S`f1Z}uhrv%!t;;ApRp${+s`q18SZ~JN>eA{w3(5e#YMvt#QoNDg7 zKYUyP&Dw>%0{W_eSG8vbKyL~3cLx&d8pv-0;o$+<@t&s*HJN*z#(hU}fAa`NMYX(q zK7FRv%v!epdr$bN5P9DNpREU)%6NP}d?v0>pkF$nCG)rKco43^Jq9%MULW`{y0eL6 zw57GF-PN!Wt!+h%RSk{cu?dVe@y>{$*lW(DV=tbd3@JMh+hGXOQ7_V7{H_l@lV_D@ z{Ojvypo8M7?=JJ&S&5H?y1rv2zE3pTTJCq4@jN zP%46`v~kWdJ%u z%I%AWEyYSKX4ZN^aqgth11io#*K~r}oi{U<- zTag?)`F1bR05tOXDBrj8dk4pf;U3^d%~i}(l)(l4m}U1vbf1+fo^lAbN;OiLP197!@*JwP|auKeS?4j99Pac z>=1`n){Y$3f{0v;mPRY`=qRIT%qYRt1J;zdUfYfX`xtZVZMX_sHP+2Hfup1FXbb$> zid}6zQ72$zG9Owizy>Tt->LZ_m9Vc)th=>Ivl(f*E@t6o8F(;f6HPErK zD0RB~XDG?6V|E9&vg~=R<{83R%PRm@BUPf`XbZRJ_J?zJHqjBFiZyza!g8;ak~__kznuOIj*L87=?u?uc; z=j;|d6ZhD)c27OK7uXH#JPFY~(hiaaVQ4SdoFXr2ehq&yGZ|bG&xV2Kaar*V=*>-^M+5;_JC9w*GHDe+T%pvbc%A zBbgqu-uM`F+=?D=V!DucI>ww{fXC!Ttt8huFNUjLMDHv` z2HN>Xuh6yfuOX3MXFk?Jcbk}-t>_c;M|+{o2I#qwc{>WdMr3k4)H0sA9S;SLgG$Ch zC1aU)SKEz*N@}tA?HgaiFGJzi!BBxUckV$_jy=&AUX?GcA1K1!rMDHdcMVs)7W%yo znzRRqv}%m%IX41Dowf$mD50w#U43-|x^dr1^+7)*1U=-D9`19w7A&s;qpzVm!*{p;g>mE@ zyo{E687=oR+_W5SS`Ih4e)kn-X9c=oCDOx)xLps{Fq3b9gALrn)yLa1z0)5_Wi+lI zI4T3TrQo>_c#pdI5+q4q=G1O5%9|=?UWSr00CYjC9Y7l#a|~QqE#xkphrxXl7-`Bl<}k0;|F!a)>)%~{UdSD_Ag$;s=lKRA zJ=A0FI5`q(8;dNTfOMIR?KYL?H11|sw{xMl*&N}@i1VSkcVMB0FKS;J{n9h|Zb}B{ z^P1r8eE)WSpMwmWg9ez*d9J8`8+SSnTjX45*_9Tvcmmh0Sg~#W=vmplU59I2G1XL+ za)VWkYeuRaMW!8vKJ|?3Gjx>u9ECE? zwOci<+;a85c7gNI%rhGMZqA~tRxIV>@b2o=1QiI4|DWKoYRiG}=>V?NpKIECsFZnj z_wOQbQ2@oA;Li3fZU!@rJb}H&_F%1S=Sk|&59@fEHBjzKo+x%BE{8`e;L8Dcg9Gs_ zEAbAiuzLre^epu*hjxP@+4uhLaZfV}&-466Jk=7O%00(da<4VqbA3k7=1lUCgD1dK z2Y6}+%dLE}hQ5X8cPvM_O6(ut+M-cFtcnPkbOxW@XW-0};CsJQUQGnX16D7MX>$KCdG{d(@$zJ+J=cT*C&AoEyszeaVJOGB*Pr!ogE&9(Xnpv$gm1L- zdUJI>Y<=w_?pz4h8j~#G$sC!SVHX{LbuiLVC`!h(#`EcS>oDr~rxaxYoTSuIA9X!3B$83WC-IvlDn4MWXVF#RR zw}%7F$YGx981tZ=kq_RAc;*uRcTD=`Rt<|Qb0HBE=#Px*j}%mf8v86qrj;W{&5!g$ z-U)sG8?2ib&IV@i{WL%e?+oB{KzTflIT^*hh6B}rd3J4QGn270t2om%v0B5tq`t2a zUMsy4{q}?ItoBt?RX~%{v$>-Id~Y?_K#20z08y zJEfvs^7@#h7@p%EDMpIk>T+%-JzUT*Z<0xv&dm z#PZDdxqk65;JyTr@u&h9^6fx)x&r+hH5TgM&5UjnT(^O7uY*q4!j-Q>6|13-*Ps&D z0J@8(>kwXnu9oxb%Y3_xPj=5(3Z>Z>VhI{#3DmcQh@TzzUV<8}aa_)O`@XK^w^dNF zJ^1V=v7RHP(9K+DD|WRz0@`KGHM{ID2`6lWS9WEZzd7R=JIu;O$_jfLNw0;_h`eY2 zsd6ZCAb-YMqXS(vSR4*EYoW4{=x1Z@qoKSp=n;`1$!R=x=vb~Y3f_-( zudx%v5U%fzt5w{~IO-toJBZma5^aXv*!@sIX)_FP_M#ranuI>wp_JFM3`RiXMl*(S z9VL@E#34qlZr}Ld_oTl*mnLu=tE5pu^ z_i}I+$IRgPfD(SUF0Yv5UDZ$wZx(Yc?T})wU5uq(oY_uRxs3!Ik#ckh*L3986Sym? zk-T1f@0!^zc&a_)n%?kPFF2qG`m=tn0E^PTQ(ermzKDHj+Mo+FO4=#S(3Y{3CTPe= z@FBqUm9FWi2lny(9)7nz+#LY6KwH-J+0VrYi+#V`f$~+pjg>QI@LVTkFOz-Hohtzk z0tm?+|4q7TB5?EMA2cQv&up5F$X z!?m;=?e<`{a}pF`e+4PQ*%-nMDGRJr692ttB->l?V*Uaq>6S=RX+{Y&WCE}Lubzb&mtxN4k+E82VMYP1eOBJfaSmn;8kEX|GWR<8^C&C zBi~8ATRA`Nh`NXC8##*|i8q4t%{<*!o^l6x-31Q!F@or(Yv=9KY{dFJcKGc9KNdkJ z?o<yIBmd?hl7Yb;FrpQBUM7&X@^y&jHQ_=Vqs7bEVl}->Q%~ z;C>D~ZWpZC8T5ocdvdI+4(FcL0LEz6Us9jC%2s98WXdSJqXUwXVpM-wA zYRw4l;M<2|+?Bf+oZExhokP{vy*axV*Oi8Qa)kLAD_;tjKi8gX3!AakYCaAX*yk;H zY&-mBT zJ2Ku2OUv~pJ%L_4Yj6J7s_nx!a%9xX$ae)9l=Et4LdqKmxWY)A#A;FJTkCr`FoLVp zX87oX+$se(t`bksm-hk6G_ynMNwtmZ*u|mI|FDR{D|Q|E2rK||tk#;=FaoQuoXsJ~ zfhuNJPr*toy`l2Vf@?vNhj*&<(O>KYZ?V!pJlRHYXrGY%z+P~;JHvfjCf}?z+r=5X zz~vt1$&NVkqPynEj|ahHBY12=>L`Kq@4RyxPtcy}iAtVUUp_20yK+l!Vyq{0Cf^o; z$zIS@Z}5?Pir#!{x6POxE2SbD--q$(WtV1m(;l|2$tX?q4ek#ogdMEi7k-=moiUgI z{k`~p;7OZV8@eyhhjV)avGQVe5$dag}oPKsoWI{y;?rn|a;L=goY-nPWCH z{w?6tmDgLrwR&Sa*V_Ruv|n~-v);wX)oh)N+538b>By&vxJ+bZBPJ4&iKARWo;w0& zk8owHS6n0K%tgJTm1*`nHP#kzfLEb`Cp>Tx^k5DFslL&bi&Fb>ppzLjUL;NRg1$=N zM16cCs~R+RC-)2lqL!1EMu5!Z5xwDr>!p)wV-8 zXD~uOyOtkw@O=I5IJiVRNhsy+x9&)*j881NJ-us8VMm`?^>N!S>NbAV1o!dFu z*yd(HNxlJC2T#4hneH_u7;jUuug%~Xzgd~k%CUB542f<`U#Y&GC)>$WN|)B@MkQ<^ z6jTU>xcajvGD1ts>L{z*dw>P&1M-kQUHlT2MS8$`!evNG<5I@$`e!s|Cvw+RH2`|j z5h)tT9S6W!6p`nLi*=K<{I8hQZk_YfYy37*=V zR6dff0PNar!!C|RP@Y{x!nV+^FGE5oDXc!zhtd-ci%Tgplv%A|wud8y^yH)N%xbz+ zdo~%rCvYFRow5<&Y^a5uHp`MIk4N6a&ibq zDlx11MxSmt&sU4A8wpsqHON|(0pWvf=5MHxg z+wu7rn8-;2V*>UcND?X8%=)gox$+)nFjj6^rCAK^Im>$MWzd`b8o~~;hW7|yK2|%r zmGAZN-Ni=Ttrcu9B6~U*tL=pHI(X{HnYZ)A(ZwrlGi|hkKm*^allKG4DDyLRN{CAE z9%v^ul<_L_8M&tmuIP923Cq!5VX3)JAw8u}Xg>+9i!MfFRlA;)UX-3*RD$F&bJ{7! zjoRS5W7urXC;7Gsemn$Uy8h0Ua`LL(DCAW$r~!7Uu#R0A#Br4zZ%o>rg67NIm9{dI z2kubY4pjhY6-xrGU&!}?r=rR`B7ppIPF#WSJz}Wu=bM^iB&YeukGqAU~ zF$KGQMOBvjnhZcnM%=;w;|}IcjF1}N9}GtH5Ql)1*!?7*S9ex2XKN(80~yxN_}Uns zwyom`8K<1HilzctXI?RZ-AIL)jW@q)&qQ8dPcTPM&en0jdLg^r7)>&=B!|g`rGUE` z1fGojCat8Fux@(@vR^HtHmOF&S0nEe4CTEm6$bOYoh2*LNmei$Gtl4Fztt};0`FE{ zY3CRTu>w)AQL1l-mX1K}hoQwL=+gY=At*gr5Yas{);j8&S=YD^9^D7EyT)h_lpZSw zcf*mpkXUx>-;VUMDrGB@EdDkl9o@0*t^WLF3$T@Aw)4)e{~`ajb9F0I?ZOkCgwzZz znS2QU%)D^q_{`9D!2ezFe^jRy!5wzqGsY0!t}*0(Kn35s*K))YdVrVw3_oW0Vr^*$ zQJmvIJJ1TGb*8Q=a^EET)h6voETwZkxG02XjQ1Kfjn%3~0FA>KSrBj1RaEv#W7^Ml z&bCM3aL%=}l28NZnL&-!z8xoN(Ea_|z?)UE#u}`!Fk-8BdPr7YTY0b<4A|SoJtkteqb6ui zYdB)p` zeictS7>NI?_$KmRTH+oVnQ>)(WThgL-k0C3=#Hvx^Izt{0+jZG5!LPxu~6foMqCGH z(34kVhr#cTDxzgZH98n^JAABMRL|I;l7Oq(^lH|&TSf^A5MfSJ*)pgZ*7DI$(wwyFfspN-m&h$$Fb(bJ8(X=|b)?q}tVapFTr9oH)# zI0@l%>30dnAB4!BnnAT=hEW~i5V&s4z@1kMGRl|w4>LE$R0N|@&Z#=X9+%eJL{(|T ztc<)^H+pJx@^D6X=51X`-3KtP92U7zN25WF&{kNQRoqdJGina(7SReAhwlWezE*E5 zm3ksedI7~i37~v1GU<9Z`?+X?npZb_8Y|BR@-8y%TBjcES=C&jhAUa$6Wu2Acr^=P z2l{rPl^jw_mPZ=KlhrVi8lJWWoaqM(+Sk@^M0G^i&8fyr4hvr+`58vs^O;@alf4*+ zE0wkFwHC{fQTkI>8xCU3QHNnQQa}y-I4pZApDcl$qy_gB@M&9lIx|sr?zg%rau>=u zvj=uPjC^`ja~Z>vck{TPmVi4unKyFvk8w)lX~vynb)eD6sK826v4JD&Ino?Q*fh=P zP9q@9A?Ll@qZi7W+XrMRSI4TYr&lL zVXoGlL(KIw@dPRR5}cBY9&J0_dIE(N9k`G7QER20;799*jkpsR}#BXqDD`f4C&Ffks{P;B0rd4C~T*Jtc&a z!YX0G-VAon7z7@o-m{UXI*5KS_u-2DSg&n1-*{{>kUGHF7tMHrxj1v5GZC2wSJRlqFr#72#d&hR3c#6lgJy&6_7@Q%d(ar~i@b$4pxWHn!2s^6 zzI2Z_y+w0C!hn;Y_b9lRUiiEAq=?zKrZT!8xIdh$$s(3goKcKVmB%yqRH4x#L(_}T zk&DzywP#3VDUDP12V7a=PN0JTZ9VH!LRu@aBM%(8U{`YW%KYAuT=UJKKP-&knBl-M z!1K+Y+e6LhfprAdyr|#%b058RD+Wse!l(A_6*#ph7+b`Z)V*7Lm z<&gn8h@*w)mXpw~-&V4y zy(1%kDAVvpU3;C>{$>u$An3Ci6E&+~hQS^6`e9A=!z#;VAX3kyZ5+Feb0U9f?Tgk} zWKqo*#qNCO3-n~84s{QFvKM|)a+}q)M~Uwa@l6xI7+tmUJ2DPCIMa;5Rv`Jeb&OMR zrOC#VV3k)6PVjvWHu1g=*bHm|wsNdbW_H4up<2PrnH`;im)m)gHuQ&F9R8+$=W#|5 zxi{CuM_yn5)GVI9s@c6_z-nmqXfAsgJQ?0q$`Bfz%Y&wrZvoagm@^Wz0j*lG2B{P< zG9U51-X|@CT$Vm0uXnZgY)M8pM|lFHIqD6qtAoG+o~QvZ!uWrKh>f~mNSqgS26{fd zp&})hBQ=L*4Rz3=5oaw0Mrlckr?u+R+ar-T*;>Q5gBwd>gJ-2xkR=( zw3C|3S{?0;!GKnQ)nGz3G&d9oA0t@`v2w!buTonpN}NkH~mW)MzyE z6ju1y2ksDZB@;?!$VG$f^0AeOaEzSm#zipMEo-e{W|NcQ?21@&>N5 zf$MJM`o<8f-E%KpV^>>{Sh1ohY9`H;+7H<*gnKKvO2Vpv@Y}36uoqp#OU;T$yj1(Z zh-px0#7td%pw;Efr~V!K#X%>oSP;U;>IeNrccW^4k64x~B7)Xpl|<-j=`(?Ql&g28 zWp%qg_5f&9uiSgaE-GbwqebwK)tM=VWn`@bI1WVaGVGG1gVnXp+*a=#3N$jj9Xi3WY27K)NceX^SE!UnzYV9>7oy%q>KtwC4w|*rGL&M zFftJx#G;GXAU?Z7P;jqyX;si?3uuRi&A4bQ8-p>LVdO65+{`dUtTq=nC`2MeErJ~z z@_{a%O8Y+I2Sr?6`5yHNMlB=a72_8Vc4@QMcVtLo1x`I9w9djfj+IK*OhuF_?BXW4 z^Dx}t3NE`K_|6q|QA=fCndJRgxuk}PRgv;-tjaN3<5-Oso3)A6)~;BKSaTuvTe9P{ z|Li;-b@4UOiS(!cFMWngb9IB#tejt@ETygfL|?9wI@Fm1H(OZ(ew5#?hwGiqVyfS< z%0R0s`mW_cCwhGP1Yt|)ak`Sz`aa|Ndl>m1Fwh92|2Mg|y zodcs45wXysb#9`H$J#*s87%}UM(?!;TxA8eH5n-?5OGrbD7&7|75)0?u1rojknr3a zpcW&Rk!5N|c14|}IpF<_F)}ETT{XiRAl?I<1Ld4>2p((%lzFb+54mTTqKIF#f-zS% zhYSo`AlWcszv%U9zsM=!M@99xR=yQp+IC7Cy`}D+lJuH`LHuTH+1QQIbZd<&u>>Mh z+7mfv%ut;#HCm$*d!3i?jd95$jwsB0-B<(Am2pGdA>}Qt%TRh4F*~)6%2jj~=vjL^ zxEn}0U`wGuIC+f{~1_Xb@?HKLT+eWhIiG!$|# zA_{#NyM6HbF?Ma<$R8CV>&<;=wZ@wc}qo);W z)=nP<7vbs4pDDT%5gxsV?opnI^h7)$=RbJm7WmY=guSBO8h(Viu!za|WD!@9Z=rFL)! z_MugD=79ByUA=B@GwSuj_H(aQ*UlWyVyxyZcf+l&#I%c!{$slV${K6w z^n~B4KE>*p-kH^Id_WJ<^^mUVwGKSiH%0^_D$yhQ6BRV6YF0U!Xf)PsMQxHfWus71 zm$MgQ)1+P`->ecWcUH4?=uzS23r;jxYQD0@g$83`RTI7mc zZ7P)FTM61D;b(=f6>ItiaZDu;RWsVyW~0LPRjTy`jDJRLv;UW7ws2VHTIbruu3Snv z-r(wL)yhl^XFRb)h;jEQ*NrhgTJ~$*vm_+5l?=#7N|&%uk02TJ$Lu3){mPrcD)8- zsgvRa-6f4uM#&**!I@kV8<8MNraB6dyyQJWERMoU#5v-*4h zU|d*x*_}ITfXH6O4j%5}5j%P05d+Q7U<6~eZX;@hdZ333p;h&>mPaAx5)nGq>x*1xEXRO$%&m5DziRuwVe z9`I?%NM9o^7q}Py3EFrcV4nER5Nor?kU&d zY^aU2qO8PGQ$?mKV)Q9Kpk`CU#a=JQP|cy6GdF4;K5+QHIonvBV!i4CG^-wt(I4w{ zqn7y)x+VM{HIJQj?b%_Com_6#-Ke6`#K?!oY8~TF#-Ab{8Z{Zo7U>=Xh&<2@C3;J=fvdii>aTK*%>fVUAM=Y;}d%0IaXx^wBQBN3EF&C{4);fsQ6k!ocg}JzL z*kIaX`e@;&Y4ZtM{Q(iNG`HTJ<`S(Hz{ApKKxB99M5NA_$|I&78dN!)_%^4})QOHk z4?XsN=zuEp7ot{C{~@9u5s!-~h;?Psms8Zy~gm8Y{qhJ#RF2%CSo2ICgOR zNwD70n(?%f#2U+p%NT#L(@;HNWu_4dEBai+euP;w59E5gh%sxIMCMJo9k|NRWSerR zA6V4$Og3P|>#fNP8!&n}M2tPfP3`YseYD_yCj-Dr1rRISjJ~@Et{!g%`XnqvvjdS4 z?e6F1R;%Z6h8|&XK=jfw`lDZ^kEP~|SXQjsvJaWD%J<{irs~>CK#1?%IL`;i1cu@@L{zc{hBBG#Yt4s`Dee5)}(k zwIEjJ(TKGXu8;5uLn6j=hfm_zVyuq2d%RD+ zjm*1s8O9FY4BcZ1@jm&mYRQOxcDGwX%O~47`E2^$TFd$tDOx6HD4UX;vOdjhoVje{ zDpo?6Q`CBoD#TuBz9KZ>KgOA3HBO2%2fwGTPlw=lqm0q{Ddt3ZEAGUZUP$06^oBN< zzIo~bq5UD(7$NG<7_@U;AuUuw!RFU;IX3eXx%$#nA7CENTEK|o6>%Nw`|MX2RkkJY zL(&`S40Dj`GXI=UpVMb{?xlmnfb+r6XJ#U62m(tTmC1*ss zl0DSjdY6FHH7=-NWpnC^Z1WBWfd;@zKq36uT5(z!p96tKXi&X=+6JXS0)(G>JAZk&B>4? zOMDG0CA|jS=l%~~4i70fA*x#J@z77g1># zvG!cN{W!lz_XT5I$~<#PDbH=5Bjq+C@)@0FtYU~5XlNWYk1{^dn9^1~5gGc3p+sMX zh|7n~8@+PEwmaU5x(V`Ao@Xo2aO6xp8 z%gI_MA*}a!wQBdxkjtcmg`ev>kuujYy4c?(?khdIGD8a_R^UeNDxzv3hvWa2lOu7w zX7L4U<-&$dwr`^TMD3?ieAJyt^^vWPJVf{`_7B_+RPqKT0E`v6s zrqym^(VfKq{Zz^mgfvYalG0o4oxGsPG)G1yI4A0B^~6KtMa^i+#;Z3X2UnPBO8w>T zxy$fntZLNK3$V7poX2s%=!JG)WXD4;CHo}VCSj9UIUKwgew+1-;n&-*Nl5;kIw-~Q zf?tgXCOa@@Qu!A8Hjk?s5mnzNi5v0n#4S;U8S#>w{b8l6G4r%`C03ZFNuHMuNhaY8~zG)k{F&AM@ofanPC`knBD^*K{sM=wf9 zQMi;1GYXP;v^#(PquxzAH|ecYtPG@|E5;8OK#0oPM%rI=R&Jkr4G&5tq$%JXUJU%Q36YW^M)}LznVuK4+4$fz!wY=4dwJHX#|! z^WvN^8JWnpvga?zvU=b#9w zA}GT-$wk?=l?~!LU`(W=V^WC{FTw&oy zo+Nh1v(_wpKWhO4qAoJlx%xihR^cDMId&B>z$BG(HGa|Az-qPNgy>)%t3tHzv;nOZ ziW(tTo|xH+&Sl0;1B@R;jnJEOl3K*-5b+;08nh`rD(zE`7HxWCkSRW@2GM?qo-JVu zNA%4pR4ZIBaZ$`Y5je!`YKgnz4dFHmpp1Kw30-QH3YF*Dr&XNcm5;9 zaj6a@myJypMB8Cuxbzpam||MF zTwN|>k>Xy_kGPe;cp}NPY)WH#(N-F8P<9+TSKSbW57LK5U^^0my3kfdmdbuZofYo4W8Lvo%PWzb(U4jT}4QmGy#YEqJ29Cb3GtNzh84#^g))xtWI zl7fnSLM^JqFHl{#xSch|&fwyW4#c(T<2tT4~S-we5!y^$v&#qNDg)=IKAlBJ<_k)vMeH~#dY zauM^SgQB7>S&)f#a~@3C)B4D%yKU^#)4gUU7o~`3g)4ERKKFlmO*EXN;}q9QoF25S zm!ACM#97jGj-F5T%R-9g>hu!zC29WVG3FvKQ8N*;C!+sGeeG-&F;Z6+2jn8Lxw@g0 z&yH+t;>KJ(K*+72@u(ck(QZzYBuO7$nDZ5XIr{4E0qeJ$vq=!Obm?>aN;nArG#IM3zvy>{W+%ou@2lSsLW3?2$8I%>mg?&pEcahj|0#)vy~tRYFV+ zj}IPus4BkfX7$&#SL4;_U{p}p7JqE1uvi`1+Q^dNi~4-aKdZ8XJ?L2Mu`*_|5gwh9 zvu>!hBdsWD<+0?`aUj{dV4in7Wf^(4=Oz2ANI+k$|5nVP=!y74`(&uIsuo&0ExqR5 zM@v?|&ru$-WL*()c^JQ^L42$jIpbunSF2*E{bHHFkw-uWRW``e3hIwD)H__i&~739 zc7M*d=2?+v*)J-kijlPsm)KY_gyLey!S!aczFNDj_1pX^yZ683wUyf{ZYCme>|ASU zs>FLWMU*r(6|166`b`S?vy#)kt^!|GrIW?y9D5xk=aO|a+7TJvlDNjPj#t(yW}H>gLK_^-gk9OO>$hQ}uQYy5OAO(#5`;F)ORsR#CIE z`HF)babU9r9hDGM3;KRn_OS8lmAKl~zLMhNhjd8Njt9#~uHq`MCCMr}1H92phf@rQve4Q=(%2$y~MloYMx#9Ob76sB9HK$ybqgk>Oy!3Kr&A8N46!B_Hn<0QM>9*JAa% zTh5Tll-WO}47&DFRaH;l@hw$iX5wZ`l6W;nrRjUI0;`&i>pS@26-?iimSpsCcaJl3 zo;fS~U=LcogUQN+k}bngL*jSm0O%nQnMVgo8<3lnLbMaBY1=p2$kfH&?)hETq|_UE z9#*rUsUx`tH{px+kfCHIlkzKV#3Gjc%RfA=y>EHt%cDzIjz8h+7LHpW>b*u&i(Asjiaqt@IlG22ypfw#+&!yI->8KeSPtDNf{W z2=*J~9)xOZ6;^xT)K*>BYk#WuD(i8?K zt;^I%vy{h?B1N6?`Y6-N6v$~bmU)Q;SSr9%akS(Z&zXJ*e^hY(%d0$%M-9caqyE0QJ3(;5*r%le7W1(H=5 zQg_Pg9kHTet^arpsOXY3u~mUfSXrPnwKTRqWE@;As3+xpR3YsA?J`pin3qbf|nG){Z%eA=QC))ET2$t zC6jm#^Mn>xigTDs*F&B(_17|O{`h+lK9?&@}y(~nLUiQin$l; zd9AU~duNF)Gsx&wUe6IndOO8&_ITLw^muBQP19HFni-F%ZA(dhVR}mv%0A2=NA6wv z>%2eoFzOq;y#n2v#*`1O9AZ@uCwjU9M+>Gtb3VquV@f@%p!MfktDaD_VD1vHW1VJO zgdI+6h*u=fTlv`TUnQ?dvesX{2J1X+6)m78 zcqP?W&ZXpEZ`%j%Jt?_oLEGiAEvY}3@Qg*0gT0NOAI-ea(le=6Y9^K@VV~11uU$&B z=0uws{s>t+u{>LbiO>ygE5;eu?D(L2cqRM}5dY&k%qY9^Idg7@uMwnDhK@tw%`-vvwdsX{*T! zT~oHSE6#v!*ei`lP7Eafb7i(9Kp$k`7^(;O*rB<}ygKZfG#`P<3JNRv*V((S`B-P+ zbVB(a=9#0FT&9LAY8WljSW9)>s2I}zr)&H1`Prw*dJwtW56a#^+tI>jTu1(Dh$jOo z^GxaK_EM6EH8Bo_m5yw=Gw!f_N@ja(%&s+!Zv8H-QhTr>juznk%+GGaQZK8Q?6tR( zUL!3zhSnqOoY2)S*Ih%fdufAH{_eK3zqy^5q*SNPfr~(K6Tg+P%V(EOo-XJ=s3j_b zpXZ1M5;doGCx2y1S3WSB^1WjtXUg zrulixyxPq>&vzQwb0s$CZFmn9g*Y1Fj?%01iBWIoEZjb)PnQ$VZN!pebNjOv{T<2c z73}*x=62d{+NKNnai4w3mno2KW4pI-NB6idWEj}-|HTm_0s9P%HTDV5Vu(e$2GhRD z4(ugGqay>rnJeJFgPN1)GIMEr)yr=bU4S*H9k=r%^?_svg28v8=HQV`tr^RaSB?rZhB$6_j$YxbM(tKiSf*sn z?c@&aHSM?xG%x2~<$n^JwKPJj{Z&)Cj{+72dk$y)Tt!j){OIh8EnHeLwbv9|olU&6 zeMHTpYuSh86J6+6I|Yw=y?5=oF0Y>C+&Q-6?CN;_tnMoMSh8r(y385m^bX|NJ=D0J zYcu}eJTuZld}jVDxX1p^l~vE{bDbJGn!V9DkE_SCT(7Z^Y}}b)-h0$1*JkOyI)~ML z=X_+`#Bo|yVvL0_BqTL-5UY=e+D~F>1OG8#=Y?=b8Q~WSp7m*X9~<1jAuN1<2|4A9FOiAuN_O?jBQfq=<4U! zMk-u6o~bgp)m7_mt zi&}Rr*flCY!RP<;%pE!X7FD`@uJ!Gk_dLaWrp=jz&Jy`_?5ocm(dlX*?|m-?UJCq{ z0!Mm!bnUlTy}iE_cq#Bw;HAJzftLa=1zrlg6nH7{QsAY)OM#aHF9lu-ycBpT@KWHV Pz)OLb0xt!AOM$-uvIqrf literal 0 HcmV?d00001 diff --git a/gui_data/fonts/Montserrat/Montserrat.ttf b/gui_data/fonts/Montserrat/Montserrat.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2a2b2aaa67884c57c8e83921345ce852b7c7dbea GIT binary patch literal 263192 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 DbIr9L literal 0 HcmV?d00001 diff --git a/gui_data/fonts/centurygothic/GOTHIC.ttf b/gui_data/fonts/centurygothic/GOTHIC.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c60a324123eaaeab58c400c139bcabbc6d0d2a9f GIT binary patch literal 137568 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

}5xfb(7(8H=D&naVVHFIy3zG;M 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

$zCgT7S$c3BUY-5$eB^G&p_ICze{8PPye-yD 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
8D}F+9))5*fuOQ{k7`4#DFMCjdgU#x86Y5 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 z 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 ADgXcg literal 0 HcmV?d00001 diff --git a/gui_data/img/UVR_v5.6.png b/gui_data/img/UVR_v5.6.png new file mode 100644 index 0000000000000000000000000000000000000000..217176894e017b98f56ec22fa0f00e608d1628e7 GIT binary patch literal 132699 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%0AHGD4b0kxxVeFqS68#8grO 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
Mc_ISE|dCs8)=;qAo4*QXy42|^=t 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 literal 0 HcmV?d00001 diff --git a/gui_data/img/copy.png b/gui_data/img/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..40438723cf602bac52e81fe918d9a0b481d720c7 GIT binary patch literal 18609 zcmeIaXINBA(5F|+&q7ozr$zUKS0m)$u zsALckken5UB$6b|>0$5vzWX`PJ-_asbD#V92WPGBs_IHz)m6R1bhTBesaU8W2%=U~ zRn~_fIQTCdLQ;S~zdgVHfglW|rmSe_X|bGfY~R+Pj+i$}E%cIWA;w!zkgvw9LscNL zG`FAW6=NN*;YAl=nefpl*YNHK!olsl8K_u8?WjmDDkjdlNE@?xqSw%$p0gW!zS|b| zt8QN7dz+6eEd446Z}dD;=((}CVLs6`==TjlgTz8`G!8;6d9tI|ALN& zW{;*Kv3O1x0{1?<|IXit;5fFwpdzJtaFFxKhxNz*f{le@$o@w77=eapg0z!4|ALK# zT>gTJnT&zp_?x{y&y&ak0AW~~zn8;CkA3oQov{1;T*|A!V6qes)3Dq#<+ zt5muzyx32;Qt|4JhD27+z=F?tS&!F|qo0_NUsWgR+!kTOzFiAJf5aOsx0r{uDp;*s zV#odz+sZAivvBt2T?DeAZ@tF67k2N_*vD^Q7KE+s#hJI1E&9$NFlek*X#4oklYpg7 znQQK^l;2K}Exr^$JmSVdKd6_}nWUKaMSc%e1O^RDLhLz+bRR+*F>>+}%5UgRH*De}!viuqu z4U&fw2R(^2XFixSoTI7m_-w%)^uYR~A!UF%ajE_|z?Qu)Ka znpgWJcVyeD+$W^=c8#R}dg3s?C76> zA@KdvuZ|HnHuK)!A#w%jnCwQ@px2b~nJ0H52?D49lgx|SmNV!{_@MLGkcsO)s_yv? zZPK0v~-)@Nw1Gh$(UAqdTS<-3z@h`60b7_Q^OHp4ark8TqHL!6oRN+1lAxx5l2xvM(5oiw)ZhFrKTGM5NV zF8{(4Q2ow`h7XPEha?-4bDF)1x8SSdl%kkFktBX-C=5MZuc_Jb6`?k|5d!Fl5eZ0} z9llBr^RQXsjG|V`R)=Lr5F4(nGA12RwsEoqK!|p3t38CnM;paCa?#vR11Lae4LxQA z6~TIV%ZAEL5rV&=EBE@<)u>ipT^==_Rfqs$iT}FE(SCyUG|W~Bu)|ryN(Y4#YglgD zh%)8|Bv@W~U8Q1{^nl%n?hXWrAawi3@@}Eiom!I(9!$ zB=IXEhm78q0r7jpe6!PCKz1QMr% z40Qbc9(Lqs$4~@L*jnOBtDp%>z;kl!h6~5unE%@^_~^;ihZ!6G6~x40*M^$*`^jV6 z4W^PoDxO!fKMSIfm~0svPNtf)@GNdqr7igIV#NT9ccOe2Yp=5Q6~}H9gN=3(8JQ5V z13CdC$j<6}cICu@y;sR9*>54}!*#Ka7-sSM zbIRy!bi3!630P7DaFJuLwCs&&NlnCNaHbUoNL5Bwz10BBxsMQ+5-DkEF_64s6V03K zIW!I}B>j+ol3#fOt6%Kc29t=1lcAs_N&%h>ZW zjTvu=Rp`45$SH4p^*i05`C18?AOLBf7};iiH#nNkD{H=&ysa6nHGJP3>2 z#i&F_w%6aA3oEj?ExXePn8z19uy;{fN;aV{DZ(9h{7z*T=>* zX@pgyhOPFeWY=&{lD!?xo@1I)x+zUS90I@c?vXXj&i@RD$Jgw-63Fra9UQHyob467 zhLvb(Aq^vuTE+f;rO2R+5O+)yWXGQK+KE^vFTcUMD``SD`>ow2Xa!6lqwh7_)|c?e zA+(Z7%BmaCF1=)u_%tTd-j;4a6F`r^ONCq*l-2VWov8kXuPsWCnISm`VOSXM+H6|W z#E1Lzoj-RX=j+7gXVJ~U44-d6;z4hl4@Ue(>P|Cv+r`kK;>E&0-&i;Ogw-;Y9 zH-}l&_o6=o9fyXDTKr?QI?vn~{G8RbGoNK*=u8Pur0Zqd@p5ZpXXu>UNu6(sUYI`a z2dFWD*s@nnGmf|BOAJx_v))DT^WG~l1bYm2@-8CP7fxWBO0$7~%5=XGmDr>CobK(@ zGvwIHrHPUx2f9Bei>Mm0zt={)Z}j*zPZvYA^FOPhQ0Yn33am7n7Hx5<4E0 z$BkDn%^vNH0s-^nO38(NT9l5SD^JJr6vRq)d&e2@deQ*|1h#T{b+uI@S%v7}L=+hs zuUXUls@A%ns>4sd$!URj(m zt>0OF_8s;8F(Bov6r3K~Dx4g-bBu@QVaa^k8-{9~emdkV52V?bTA}6Jcq7cQXT*hM zji2Li%D5&`&yC>j;itF=`_d|NeHkj=n0TmsP_s1c*^D9Y@7yroY%kK*c$+>38q(os zOF!99l`7`gFBzqTvgU+RCx}F$P{HJ?Gr_AyN<@#G*B=}~4uFDnr7RT`8S|~ISdT}? zNy7uW7Pufu0|ke&rG!sS_k2t;9kouuzk}%gDraxwxq=q>4qa6x=U7 zjl+tI2t4~mg}Dax?!olC(N3<6>Xxd{ zNKnO_UFT|_SeNZs_hi8`*UNS0$)?@_9^rz9iVAzAXhv7_q_)rT{yO&`Vi;ne@~58q zD<ZR?@Xc&GAkGC zLiZ6o(7ZvLN<(6l{^A1^v=Q(^7cPUuZM3dDMeQ!X;E}&{b5EQaxSwnZ7z%gA@U!1L zO}Eb8(YrUMG4ey76Yv?Hr%2AWqL);fh+hZd_D&VwcxQO zKI@&5mGEdj3#dA+ilKyAmBIY(TPY}okDS178HpVEy;gJ#w8Jm6w--z^QCjD^8@$~A z5EHR&lB~|(IBA-y0!MJLC;Y1bKycsodPjOT<7JQ`(7>IB#DIq%U3AS@Tswh?T{DbtA6J$u$$zXKg_@3Rhz z4|k=8a|Dc(BjPOg#Z$PU(5GH{C4zDUuI4a@_rsz)!iy~nVujq&fZ)h0c%z$6vBMEl z_hZaC(}eV_ZUwyH2PuFN^hmwr{=j0O)5Q2-a+7v-Z0FXK>)ED`34suTif^sfr)D6a z<4*Et(Jv1(Tqc47^}5I05D*;Wr7tBW;g!th)zCTKfv?${)q4v=TC3pwxXPc-bjKXj zqh1-aanExuDN{gei;;K*7|D<`LeSOVj)$)&ad zkrmR|n$Dls)tUYFLWu$MBYy1%92d86w}6YZK@j*Zn=(n8^zRO&>?XaD1%vSzRN=9f zgUps_hcrc&mvq3*aKjqB*3N1zEqD=pM&!96H00=-JFr{7Hqzx|8B;P?h~X!h(hu#) zWT8h-I{nyH|GYHW7X58W4+H6G=AHT>BqQoWniciaB>A#(u4!74 zklMYs`%np@{HI<~v5x0%(P;;fJcLw0$5(u5>Pp#CLr&bH3OLqzK5M_Re`rxi=s&;m zBU&j@9RPcRaH!0=eTUNSdyB%YrdFd62n!+j%R~=H3ggP!2+P(-8IlX%8ox|US?;0J zJOP9poM06h8=B0A%tdQ$6@wn7!GWY`{0q8PwaX8ijFbH$p4EH}$R*q0grvuIR^dCb zABM0H()q|seyax5VT35zgvM(78aoC+Dyh(B_8ZCd@E?X%*wzSjwvk}{;bHvY=D!f?x6J2d9>_e%;4Zf}wUW}OrqbX)fi(ysEYNoFa4 z_(7h67Kp|j@RYw0J;t20@W?xw4npD{R9Qy(>*&G!{@7@`u^z5NFaU>Sg;Hr!U*_a=CuwuRe zWjh^Z?ilB)Lq`vDKK8O$dN>4Ii)_5V@>{`zXjQg6N7^JOQ*d%C4twO6^jQ&rJyuca z-$2g0K&am69Xxtwbn+mzgJX{%p0B$SFdi?-J zc-0Z=Ya(<=0uJK87w3n^BNH!igmdUU1iVs@lM zIczLqC2`PR1F@f@x;iHg$N!|lZWI%V0+gPwbqZcEw*VLV6(Jf=mX`d-69dPWLFFQ% zMRjQsn`f|lXdKQIPPugcR+*|82%V)Fp{~_K=Gk(%;pmgMH%SX}r7w33tPx$O4n#t> zaNNW}N&`vJl=;_~2kf@VM(LX7*@cy%9R|pKaB<1IvmmFa*__&fKaFqiDdB2LQ~w_4 zu;sD=XQoV*K@}xz74iGdZN+oX1iUjH&ZUewG!{BYfD};Tj#%lFep>OtA%knJY)D82 zjwSnby1lbMysf)V_EGeq&ufB;4b_Cxu~piY%Xkr3ml_{ZGTu?tJHw&v-OWZV*SIE) zS5L@blgc3b5GjppRIE0mOOeTo-=ZEj5_PD2?z(%`(hBk56nqA4XLOuzsY_D|LF@i-6hIljEz^ zvEKcbrJq*khGZE7v*s5ue!#}P=wp!OVv>0sM&14I`5P-v!&|b7{EsFisyA+)*J@sE zEAv1R4^sX-HU-)^kKlo4ax?eDIHnX7DfF==FCQC3Ly1%n^>LsOahjB^1;3Wal$@jv zjvUPo&1|pApQysggAC!HHIp`}ONV(AeDwoSP`)u_R+vzJy4ppS;L$J^GG>wemUQxf zd4_duiEo;EST@-{ZR{L2-*BeJQUx*;fW%Mo2|jk+H$PCFIyBs0zw(siH28*Q0_*O3 zN~*a|^teRO!Lzkt&W-e4D{);vcf@2agg70_gdi+2y37GKypz_Oi@qtFgr(Fy`P390 z20%9oqQ-?JTKgvqv(~!E5JFp|Hq!h>r|`7MuNqj_N%-QJ*Lm+UtmtFMJI%%OSZ{(% z8W~JC3mQ@!zT?q4?=pHu#X_XhzoV6N9}u(1hoM_D+gw|yNVfjkUvrOrU;FA|IXoN3 z!>o9YK`G3s=U`-mD8rWPE`^@9oSi%_4=m6RX(wu?($u7s)L}~A(`Q!et4*isw{8#< zw~}ZU524k)?Z2HqZwl|28oK5a-Sw8v2VmN#>rJ^mg~D_H$A{&&Aq#PqdwrbFaHL0OX9oH3bMg zHqUeTNt{#ai158Zt)dNr_FD`w$m^HgzBlj7>@%+2?ur<0OkslQhC#Ya+ob_t~|++m?Q1{E-B9uuDvUWPI0kP>xwpMTw#OhMnj%K^d0Oq8or~VltxV7 z9vjFi0lx$xB0==4>^l@bTX70KtiCZ5a%$(T9Q0-sk&jSNLcOu2PrrRIC-ZwgSI%W*enF8k4$Rs^c$W}f zNA?lAZ*`!qT;?siHlMKgdzMpG%q~ag7N4VV^X&(7UzzD; zx1N2syx}_M8+Kqto*l{r@ouIis@n2v^EK49Wq!+elP( z(oEOfs>pI>*u!od?SVWPn3bhrw|eByhEy?w2s8rA3&*oNneg6J8mVXzA&&GwM;@et z7XvGgNw3U;={KL-yxNsqlo$Fz2MQq~vaPEpDjW>Lb{Y8k@4nk91;MX4De#F!*^OT^ z;BRr9g|F*WZNoLcHr~x@qd{PI;rQyheYc9^k1D1zLe_&n$oF14ngHTnA7%brKfU35 zsZ#OxlcOL3OK5ftffst`*{{kS9ZzyiJbZwVRI_JELr-UQ;25Z#8FJ_UnS)~3b>}pb z|8MRP26?+ZYA*@c{x*77$C+0a4b2_HF(k@ys3$2tBI3}wesIp4+jm(&JP`{tV|#Af z2<5Aw=enSc8d(s;eaV9B(vQrX5zJ~KhM)Y-K61o`aL(+yjfq*pebi}rW7oWc;4}hY z?LHIaUGz1n?Y!N)VDsR$oqss+4WtnAg-V~QNNLers;nhzS^bs-Cy8WZ0Rn3kt#1{* zDRSyn-@O-HB$XxuX@qA+YMm!8cYff5cvr?2qj3c=|7K_>vBI{*`jq(1cO4;X_5X%% zQK&R{ly+r-Bt^i&ZP{K4N)Uqxn@Pe)@P(H28F`Kc!;UreR+^gZ8(f~Ox_3MjUN5ZeOfnFU5#kz?!#8w^;qJQa9|B9*1y z)#Nr&Vi*g_ZVMMX_neumH^| zLp1he6+`84wD^_@4Eat4#3L9`TEr^t6hp!9w=?lmhyq~x{}%zA3dQkFhyCesv`+i{ zEmlO#TXCbuV{t=rSfZk!Vk6Om7Dfxt0hP`i1X+hSEfym`{t8VM^Ggk7w_nCXxfQ1s zD{}Gqg?_hj!3u63#C`VH$MX~?PazsD{jVQ!_6A@tGHc{rswcDF0&T)Fr)fF&lN2G3 zmjuk*)cey*+0SkR*?f4r&5qOEUpvODx|@R%ur)SHvu(FHRj_P-t%rslCUvDS`d&JE zP2Rr(j;F%*>e`ZkHoQx9w#?PGJ$-`QMe3>`|^eC*5o)QTsCJ16&BsRc+5V~Tq&dRa`g~C!&i4%ByYdbf71PK zDXBL1;q9;gFi;*Ppx~i@HOHi-|BN$$NV%3u0S9|AoT(mt3wVkM>BBSyYWmQO%Dte z1m>|*C{~R6Ha=UU`8;a;)jq+#KS$a8`S3HKK&qeRUA*VGKi{sKtw4J?tzhj{dQ`;qcK#mgsQ=-{$H@5cFu7Rk&!DVrAf zL1u*(52ic9|3Ab3hcjaTqXhq>1plK1|M&Yyo#}q%^LiX3pCw~UxJ@m#;3mJ$onW-0 zO4hbYy6Buo_&W@dxX&Tfbo<=C3iKiSr0(Nw2$Ai*`0h5@rQs=aNWkBie!t1uz&e8O z7=rq;)kAo{+aicY#QmJuo38uXK59ASA-Ye4?e;R2Uk;)nk$L-y;VO35TGps?y}t%S@hoqkH>d&?G-DJ7?hmIX3=dd!TzRAyIKn;CR3#q?xdkd++sT zL0XT{4LIy9+frTi?B5%Cxw+T6Uy8aJk7>2JT6ZY+8)7BSBc2zodAwHUKVjjJTnS`X zab2;zG;X-dmkpi&6hF4u`zO-~9LSiq}^Pr*Ub#CHx4Cz>dq$+;XKY6 zjhQ@jYuj8+PCu*u-g0lyq{!%OSHQEwrq6ErtYWS+hGI`4Xa;M?^Nt(8Z&ZeY*N=%V z1L`0UW;pNv>iR-_dNID?;M1qpQ*#WS%I4SKzvmA8CuB)2y;Ka@#Yrp1$g?5B-=PH} z@L?^BvDFEs$2^8VibVG1=?d9t0Eh2idhzhQ?>_!u9uF1pV#&AO9 ze*yx-Wnm~4fh{Zyb48rEU2j@1sZ2SED+TIcTVpfs+%y% zKMgmbm$ragC7+Rtm`(T(sJI{|oG`gv6Gj!RF$Gcjb!R+Vb5Lc21$LGtZ@iln`;>#= zQF?_6*QDl{;%A!UjI6XSKxSdm+WLhC!0x=FgVy6_9)&5mTn_h=E= z>E1`QSOLGC5PCKbatPKdcI#eGGB~YX7ji|yOjjidM^VY+}p`tvRwl?DXT z7G%2gD|PrKiXqqQ20dA%s)BBKp7tbWK}DeRDwZ2Nop1wHPN&-wt0m`u6!rXr{;Vl1 z8feNr9=s8rO!+^^y^fH7c-MH`PFXkIhyi9nA&wRQ2XyLRpwEmp(s-t7TiSi#N~Z{j zLk%tAj0cAf&D%0gwtB2a>yc^^FCyc;GG`Q_>kATkY`M`*K~^Nup{31c9%Y?3qu!v0 zp+Ab%R)IVU9&9P_wy!;+a`}n-|E8$0|7S(*Eru6o_Y_%QTa9KKrbt5ie>5W@ zj|rEDz5C_53DNhzW;%3bB6HVcqszbg^(EmuNd3QAe0anMGAa$kndj4#?OQSH)p#h0 zQR}Kz?hSc;_n43C@7o$xht3K^s43I_aWZr`2k;p0+arkTg*U~98HbiNTu@|8UvtlySea{XnLXHU=Ugmxn( z4nf0<-AzZGZFY^KY4+;TK|l&HL>GJ?@jtQf|I4s{9#l*O9-q*BrgChF%SN8j%Ts5P zD`@`n-CzBB<;Mtx+xwl0&}d1ciO|iJGa@i&op)P7sau(Nup^Ah!hThHd=N)t@!oy_ z&V9XoBjl5tc74gJ&@W_1)=rk)=5-X#oS~ZIYt=S_CQxN+92Jw*#GM-e!N)f)P{N#xr?+EqCqqvh#3JzX zIf*ZYR^HE|@7 zC^N%ywu>5m7mq(uG~de1szc%~BwldRNSESBhIVe;;BH zl6bV?lNYE~TRzf0SYpvhfQAa(3Y5tKb}oXrEEmuVus0+Hlk`FjDlR*|qZW7OS!JKf zX3G))>O|2TxfHmKU}r}2^YCK*_*!*lX3%SyS)glYm#N6xTEjZ#O>)QMr@U~RJChyH zM1h@*&diJ{{Ob3nm>u&6e18g+i|d_jei6NVK`mul4f5e;u$=!Hx{c_TlOI3eR%o)t zjvs6TrlW8*LgwA=Ja-Pc6f8LD*77v>Q;Jx}8Kf76CPx^a%l{Ng{pe)m$|e)bOp@oo zr0&@hhL863stx(>p1qgY}DJkzoLYnxJs=wz%7yyRngR^BeR~ zR>$Wo88e_Dbsx!FGJ#KxLmiEip~4Lc+$?PuxXYd_Hll_wi;2}CI=6bm7fv$x{2?Mf z>r`;slB6yR>-Dj(Rm>`~O^~MTNFLNcn8n8G_`GiyIk~fO96ru}U7yQ|G|(6p(~*m< zv@Mf+ZWm2)crh;lI0%_mxMijqZl6ckg^#2fOpuu2mwoM|KVy(i&)CT3V-a4sLkL&I zdvCZc9U}c1KkQfh?B^7cc=RE01u~y&SsWc_y$*%4s=MYEpjA}*O~1)64uHHbf01Vk zD{rJ<;7gHXc{Z{h!}h2_8NaPBI}gluBk$lfFmG$sZjx41gZ5@}X|*hlPVoSTAO_P{ zI|;$KCIw8}lw3eOHm@%h4CQ_?{Q*H5yaKo4o%Svj?%=odj-wq9${zKQeChOhr4jnkGqDC{=cpn2f(kP}#*3$z?4j;qWFioO; zS4Jd0lO=mAFZ&v}=Ldscm!Ty6k7+(17}!lCPiGFGf>`>xS-=!V5l zhEqQ)-t!cmeov;Ae z+mb)z0&Z8lEZqUXcQgymv6FyDLUzh{uRo)F7CV$>ZGP-KufY`q+B*ugzQMiTa9Van z7KbaieTR^UcuJC(H5edaA%)W9x#}yo9Jjsk^D1zJCwQUMYq+sZFY6j-10hKmDq-41K$2`RO$xTkaHcL6{Mj`b zoh`wo^elX??vQ=sp{WCzlxUA%Szf-#%tL^w6c`*|DEO7Ev{j_gj*IAxgaaIy0kPLvv z{XdriBehi^SWJ{JO2j+MO5;haEl1OW?N2yv4@Mtt0YYcUdc1KPCAqOy>(K*NAwpV3 z>+icgUv*rvx=`T2kRB_RuLiIy=D7R>yXhGV685{k7NV8Rln;)B%Q|N<1bEsn`L`!d zo;Mct?&%RiV7cKI#XZ8-#95&r29Fc47-=X)stol_vO;~6ujf>IPsjz8VDG=q>Z8Z1 z0_$=YtN6(>nH%merpbblEHDmNf#7)5+AuLSs-pq4&eQbA& zu8k9V_D2c`@@?@U#%1fCuj;L$3AxgxhJN>Bp5Od_CJ4NWlz#I|U(xp|l^Mpg@S39b zeJzk2u%r~hSt33ayqD!){Jq}ZV^04@tCAdzg&5H$oA%<09yaWf65mZNo#KP{@UY35>DQ>nlKi}8I@;jBBedRC@l8{5rR+Bo|6fj1Ht z7&O@GMn1}}c2VnNQE&s~bK?{Oi+Dm)*jrmk?Nv%TN%#2QPSUdjG1bd~fro5~GHP4Z z)pun4wLz=b`CEqYE*+Th&;4e}g*sEWvaV`9KUhHRsH^|^?052R1X08YJLKlmTguFa|Q=P&rshZ<@(Whqn9o_P+3G4=Pvz#;!K z9eb`niz~yx7s(1O>!r_0$#QO$*-d(D|1HN*&zvgxstLh#T_2L|ee;nWHXdj+{^pi) zzBi&Vf*bl3MLP~!AU61L5JvVRZ#K_sCvNX{2U&x?<+vA|;2{$zlIa6QQh#a&Z%I5; z&9keRa$r&S2+mw#PY;VRS9L~$HqKZGZUtfmN&bL&FB=BZd3)`SJNJ}O#X`pkCx>&s-#fxP2~H*oeor9Gdr%?#Yf)@|3W|7dcsvEE z@(i{Td4KsLVd?fc(!&Kh@<#Afod;Axl%a%YZz^{QaskI^IaZG9exMjg2chD{uJ(gC zgyQld80td;zy(qDc!RjnbH|wj+#*l~wZJe)^_kB(QW9|Pq&}(BCLWYQ7+|`dY;>QZWdDeK#A?S4Hm`x~NuXj92=8%*rORS@)>*H3um!TO)tb(A)Ly0;p(i z@H_a!;TYZnq@!@ys-A?#)%-$xCJn)`)#V${Tu95&M}rpCkt&6R=gYZWq=G4*1F%eb zzsTyu4>kFjOt-!cypCc5|93y5agJ2%RYTgXRMpgur@UO}XFVvI?@q8BM?lZ> z96lK=&C+T!I+7Q)To+hSBP!6#V2&4#yz3!_wjC$k+=^$o)u(4JCcQdIs=@Oh#64CD zLtBzaR5fY3E`0pg43olzl5>lT*FWj0Pmjs|YX*Bss6r-bhMbD)!q&fLgcUAaKAN$e z_`%fUUn}1aV988BnxW{r(EYC&?q#~(#=83N^*8gk=KH$cQ>A(|ev{I40idT-o1b(gzdWDJNq9rC@RMdA{Eb61rpS3BYyrHT?v)iX<# z{cM9*bjeA~8b?_>Z~W$7oK@~h+e#sTlJjMbvYWh>1)r}?4-D1wjZp1eX=KQjkfH(< zk*>wm#iZ_666(mLUhHpLK(7Rh0$%#V@KIERR^A8jIt;k86KE>VT4krwS)08F+lwZ&n(s z!*gE01}-(GtX!Q-w+LC#7NAJoOFIa0=F*}{(Vid2^xPX>aX}w@UOeyqY@M|< z40aUahEN#Ppcs49=)Q_b?dtQ(2{j@#z3yZ6jF^90siM$Cyg&yXTwt#Xnb$J**MHH& zS~c~WwNk~Rdd@N6)D?s=MprOkp6MrZzIRzieuPQ$IVM<)Ug!sxD`b<>18-c5|8Nbs zrY?F#E8}Nk7hkZDRK^u;cmL0x&cS+9N{)qKeF?guSg9XU^^0t+JEut(?iSEjnC z7vf0wXfyr+Qa`X~Aa1_dzyH(yQ`6UtU9%hqGY8&MVU4DqEJRWS%7xZ=HL|=Iu+|~> ziA%)UT`EArS5V>;`^#^BRF65`|J0hgTHV!#XSlXqx8aN<0(Gs7!Lf2EsQXKI(Bj=ip?VI zRKxABl)x%4V_nn72tJ`_@>maTR`=&pXDnooKiw+9K;JJ2=LS=Jl62W>j68i9RNzh> zBYa_tZV-5j<0v~nQk!T4HPxS=`6z@`h>ZH@ZRZO`$ z4$2Se9kU3mE*>BfbA=$J6{#11kq9u0BT||7*j{{d9Uk#NgC4P$m*uA}=(}-+bkILk z$@0dh;9~h*SVnnCP>bk@CD}p%e82SyXv~4&sh>_O6Bc&Ad52MTjZ)sqEi&LL?-Nz5>)@@zZb^yCPkR<8 zUoXlRRU{uaRs;`dBCuI^WAw&YRNWO146lkloepo3SP~e1z@oVwsgH97H2*@`HQ%_= zG<0PPm2%*r_UUG7*_O!Ln+PmQFMRR^#n4d8mGHHr zw4(+6`N`M~c7~C&w&4V=3i_l!Su}H!2UD+7U$7IBjnco%bQ{d1PyAtL>kZr}pNCeDF?T5Lz2o6_NT)R^wQEjwQ zQ@q#vu5R^iv)Ap2jrgo^NR>VC=ILHs73*EX?pOW$`KL~xOGuh;r!y(aWMT@(H^(pn zc7&s@T~gtNSL-`&H4|(<6(y#UTH$JWtjeToP7@uxH=cvOI=!jzg<@qqXJN?`*=sYK zsYhc#V>P+?K5eAM62!y>QQ*>VGtfgD9byfYelOS#NEQIW$|Bs~v=tAL7cQS$*vwLJv5<7dPFFZU=jXJ)HFXBibabn#Zwyje>DsV{lr(AS*vS+G zO<${j%MCmRx))|0>?dAEBd>PN7o+56NZQo0`QUkl7goCtm|7fh+|c)47w1xC+}Lr? zBnMf_u~!kKnC&X3bCmXXMP{OkicDPsIR1U5d=IO@3!gV|{nREeZdEBxPHGTVfp4Ao zLc2IkRE_Em*$IY_ImQo$=NE82g%LJKU4fVArEg>$T5EM2R#MWzCeOVx{cWN&$#8LO z#dD7C?TJxoCeUPY%D~*9Iky9fSpZ*$SfgrqTUhQio#x;&Eequ#n70il?-*|c8 z{R>>nN-BaLQjzW(PJUY4Z*W_0d4CLnz$L4yEZS}a<6(u}k$Z5i2d{uT#+-ufHBGoH zj#Yk?J^1t-XkwD<9jP-Q8+c@;fNCr!WKPO~*!dZ*sjo+JdpAIZ0trRyMSryo!`-Vlqj^F;;`}pBHv0s;Z{u>P(Q}cxJM|3d0x{Ln10`m`f(g!`7k^6dM z2UXxp2NZ^blyJP;&WxJ{mzCZ?bq)2I;lTBKxqKu=)I$zw`+>&wvIruX-n}!8^a$(} zth37(6>x2?|6Il3+&n9|2LZp28ajQ*F%Uw0RD+oR@&Ex1qcgCTPuI3`tM1sVIN_*B zkw)azNtO)va>D41nvK)c??-!-py1vYgjxg-h2$5ttmI(>vLoSzVw^)*WHjC7nGd~Y zu0qFS!>i8a(82eRt&)?ZP@(ZeZ;cw?2!@TI)AJ2Gc() zpc0MCxSM;7_&$f}(V1vab=>UybLL!mg4v@y!g9qXnk4Ax%gf;xI6qJ46yuS3@ zX<}anPWocSq@K8ZfQ>=`wPEGhrP>?^hErvnQPHU^oH4QipJpfDoZmAix(tWZ|Cq>X z=;z&i3<(I{pz%$_ct+JXJ>W(f4dxApKY>4P!zSDFS*88n*Ot_BzwP>#_*!(wzo@Ri zU@sI>Jq`Qrq=kKsH$rG4o}Ij|Rb4?KKffn<^KQzRncYICm}#RM86)7&ExPj4+w6(M z5+2D9J!du#~k1!ZKB9wqf@gV({}EC?t9_>Ku_Y_={qCr~1LJaR-K z6o3Xl(T@^Hmo~v`Ms<+O+f6#N{(NFNjV|IuRi Z6;3zLXiVUV!VvhUc12scRLLsve*uYnz^?!R literal 0 HcmV?d00001 diff --git a/gui_data/img/credits.png b/gui_data/img/credits.png new file mode 100644 index 0000000000000000000000000000000000000000..f32a49465093d4217e9e6625151da7a34ed09684 GIT binary patch literal 240829 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�OFb@Ky91wqKp7+rt@Zd||L0U!%>;}fS^Cpp zGQmOFDo$bh(-y2)xlHa(E-Jjs1e;|iTjZ)iPggG{hbCwr6A?ro>q5{A@O8(`)F3<|W?i(E<<7F6tQaV7n!6l#*f zES9ZWg0H^*8rj~C&ndaPnp=^an8W}GB;a)8^TQ`;yF792+C!8Rh%v9FwW-8sl-ETi zOa?3MG2eGis33lp05%sYUt#+M=;%l`HmZOd_lh_KPI-1qEHEsv4ZUQ)efvHoyOyJ* zq!1{d+ZOryB;&v83MYMu_4NeKE}k<6hg_y=^5$p zr-fFK5JU}OCD~r>s)OC?L{vm5%1R&6+E$VP2N0L+4Zk4v*X#(vK>^i*32hAy#$q!( z-D8lKu^O-JeU3yiO?BFYKfm=SoW58DEt7v{W&*2M1z_jy9GJ{Z3P(TtLq+8nh%-m4 z(AMI__rL#RytwxnJ{n(E-Fp1hE}Twx9jSZ?O`qBZ(Y4c3B=}X(cHcbxQ2owu>>`gNl+y#=j2Yh7`Y0 z4>WbP5Qt}(1v=VA9hII=o`DmaE4yiVL?QQOY@1fAg%_R1C!cHvBx{e% ze^Dd3<+Bgq!2mEQm6ZLoLL!*OkdsyI3rI$*HR!Hc~R zsMpKuGagmcATuW&ocyAAXrHp;llKoGB_WNU5rgjTeyrcLiE+)qQd2C`hV`{}F#rzA z{&Lc{U%z`-;J_F2T>_K|z;fdt)v4G662SKS^rt@}IL6?}r~8>0wQ$$E$%)?-D!Gij zbliVbgn~OY40La_wfB*YJ8+dYab#qIvRV{;7gCe?#RL|>rX(N`QJ|;&5yiE{n1~h5 zSaHW00Wl>dMb3}u76vCEBnJ|l z>@pDzIwRG&H}2o+hhi=W3DNm@@!1y<7$B4_722K4IB?_~?IM4lcGBBNft@>I5g+e{ zDQgQA&NMttakK{xv^CD*7eD(wpD_d~qbLbBhvw!!loZwA#)X@B=MR6wy^B{c-P#5- z`@}?^yngE;E&ok9J>cf%jY9|aA<)l_szbv;n}wG}M<)C&dX|$PDZx}?U+!3qBNYHVCSHMpJU&PlDT3+SrCFKM^P$+3xRHDxC7wmQR^i^7#A$I6I z2kaV^j9AeUZzDGLiNvDL;JP zjgD%Jua8eomJ^!`w0qGp-jtmY$j{9~e*SW_wuse_284%3&~6zZZm*b}oMeK#AUrHs z)-D#eA3Sd0T`Pdg+|o1F?*9iOt^me zww(V+PKv?dg9qrBlaQ8_K}(}Sw*Zv=`^gkfur1=0`8ZauT?;drP^@ws_~2u_{kuP+ ztFsdi3kzl4oa*W-OiznvSIUGGU*b;}0SX2;{OHHuhbZtZ_BNfTw7z}+5ga2^v_ze# zYOFzIVhn*P9Cxl4$-PZxcTalrZVZkLOU4s>JcOkcw>@}ydCHO(^K)XOrCqLwY~8pK z3j~LW@lpKefBYB`5u)#m67=rfdx-b`{vmd3e-iNt@l50dTs(IHm8Io)^~F~R*k+~? zP+n7oz_1Xsb+)14!2`KHA}TVP@8Ke^@iEf=MvEjGRvEH^gTX`*K8qsYY3x z&M|LC_97o_+8D_(8>NaEhgRhY+n6s7eOkb7`vR;4GO=bZIDlvaClf^|yTRcJ zM1_YCK*W7=N;!#NTwI8mNh=zgyYTFbPeIN65ZgcwA3iFrny7o7!0{1#&cu~MVmZ99 zs1ToidXQ}?m!)<$Z`?!yV4%{u1AlKbQj(MK(YqhPWb$U;q_VFm3aHkd93v&4Ej=R! zD_1TexXrWuk1;ejim{O~TJ3&hJoPU&2bP`O2gUphR7`wv2FUJkNTowOA=5jlQ5K+e zb%B9T?IbYFFc8IHi%NT>7Y3u)U+~3wEuGjGGB}LUk#RCn5{yhjh0-13Y7kMfV4edG zg4Uyll_)K#mKStQ&eFTmQaENsg+2Zs+a(e}R^%hHi>qbC31of%EEX>*FWuPbF3xFM z6b`<(4tH)|r_Xdy3I-At$qWQ5y-`nJ+llhByXfudMx8j`-#%?shLFnl1MQCgg?5-j} z)f{|1B0}Tn-@Q;@Q$vN5j)uAles&uNn?UI0g~_oAS-Nu5`mH#7?kX1NFQX#MhK6e6 z$k9Xil#>1F&D-$AmM!u+6LHeFo($GZH7J(<=jI%8Q($UJhEyBRzxW)U+Ow0%Z6u&8 zaP91Q^fk6oa(lx`R;+DlgNLstR;*eY&9N$m^iINF0j=e8sv)w9&)Hp4(hOy*_JC{4~@J*)mZy#W;-->1F*+`0wCx~dNwgxdP<^~z7Gfaa~+Z=QzA9(tQ zpt`LJD>uX@V!}jf~NXFv&BykVeklc9J z+aul_g3|CIdVe17}X3lJhi6mM?~y zpx8geo%kFP%_7`x)YuTaWjhjK|#F$(V8MqbV$eCz99!?MMB>?arIZy)~rhyOz! zmCWY#8yQ<(IDYUnI$8#3y++vrs#5U2@-|^Nr@52%g)3&Nwk=RtuuNdVaLBv zI_ilQ=qOi8n%bcxn|qi|atX{aW0N&@)cieHn~i3O56q4dJ477}=5eYYb}5`hCsB=G zTtKH#XrNQ;P*Tc7>u5#J%2j-CZ&>+&V(a>XI0E4$fN9M*b^0=r(^8SoPU|HqiXE1s z5}r75EiDA!Tb#BP(>#L%!?=0-J{j^plA>b~zyQ^&?3DgiGVwg(W5V(NJ0~gU6X|sg zaue3*L?3}e2T>}*P8-7F5<&AvPt7fGsBa1n3&%)gMt2F|bXK(`F4J zJ1Y+RJ~_>29LDk``4r49vKDecKp3TV30`^ab@)=1&9NVk9X|r+=s0$)-6$2G$=w63 z9qqVNP(b#ZWWP|2g-7AP{^P&!!|#7z#2)e%FG6Topxj2FRjF{5(!Z#r1OeWDd>$sm z%p}4SB4|mHX)D9X${;XQN;M;H3Ki#O1YmsU+uy;qZMzU3mxLg{U{qIC;ri9fSh_S1 z=gywSmtK8|p!B+&j}g1OMU_LN$&5WuKa0y3F3G(ovGH+~_WKdfXr=@%z!;F@PWZ;Lqsm*O8#Y z7>E7H&edYwx&X$G*rPH74?`rJGyeF;pUz5~lfN_xHb*<&`{-SK_St1*ihHc0(;0Vh zjB_XIy4o>sa)Ws zIDf7fwN)Kx?`XqMe*8_w>HvI#+~MP=!McrkB$-f@RTQDQwUflAXWzKNKFfg?2_Y&Y zik;sg*GS64wDV%VXw53-8A&fV&>#1yv|2lRkwr@_&W?!+1FKf9K}JRv$Fy4RE*5$A z?mPd$jaxVHtvA1n=bqe5JLpXSp5y1K<${4Y=lH@4&&$tAN=l^5n8v&BAAr^nfPJ5z zqW$ZWB{jsEKv9#~IysF%pFkwCzeF+q=8g`8Z+hmRgHC__J-OM{ia*IM)kD8j1n3K(f zh@s5WQr6B$2__~8M+avZoJWzJlS5{GL!Pd#t!;oPRxK2hn9LN*!X$2fi4GUr$(3ZE zF)7_5fu=quJg8uN{X*F>G04kX#$ewllU7(0 zQC>hCk0>oG!C-$seSQER&rI~z5y=U5v}R^6J%KSs0;AZTUrWVeGMNAKjQYx3>Fnp*Kv{=7>C6?0$Kl|*nR4+Sd1q`&L z0dj-q@Zb>s_=n#iHYNg*v_v&EmH3aJ{E%ayVjtAu<_&SwL&2akW9!y!9M2)XZ;+e- zK6dmNp4sy>JZTfiFnlgo42%up+TClYYiq*hZBHN|Fo0^)Cg-f`t7{O!z>N$KC*$VG zm67_II$XJUnF_~D(97bOv40u-A|X@+B~fr)>1x8o3y;XWb^>PhL`@)ej&%(u>bEhJLD? zxp`q{U62r#fDpY0L_w{R=4K4qZTQwte}t6$Y%E!~0vUN(@)E-a{@a+fA5XlHhLC6@ zG)5(~ZblL(b3)EpnbFfZjbHrl+gQD717>H&@ze`XW8X*b%eqPyi=O>A3ol<+sZ1Ko_%*%`P9J4og3n)EMrB==Wd zhfZmyqzt4ajNu13QC?jy6^FOC1>=;~VvmlnKH?@ov83%_L+l!gK0f`dSYl^$#cGO! zfjCEWcdA`6NapP(J8#$I-4GAc4i zfZWC}N@<8Hc$3qU3=k?kD!7`OD#Q@Tf&)VZLNd4+JZzhXCshw+uY$nhN7*gPY8*Ut z1Sd|Nz`X|#Q2Mxn?HQ354w|SgUCChg?%qP#od;0a7O2z+7;KZ0;4e0m3CZ^#|M3%S z-msCtN*kzmLui1gxqAsd0pirZ2gJ1};w;qU*fjfc9ud)zWLGKdz= z)D>l=2&dIbh>1pse;|xZ)U#*KQiV(*GcyItS1cvaXkjv1C>rzxZY7LHZ>rWlls|5x zLW;+_HBaG{S6}6LJE)!<{9H27tR1b*eK>LEGOV^qjLp7^2&A8GO3>Z(q5!5&W72S)5F4t$E@st4GxGYfeu!l+uONrobfscz;JFuMm(^||8*-}(iT+24!Ol2BV+jdiQn zQh7fn$d6;?%9WUy9Aq5K(8A4P`SJ{^FgH|`)RO$!WQC0YAo547Ue3$OcVS&e#>VAt z`c0eG$(->p8)cEWmi8{b=W2qDieqZQ^t6qHa1IIbIzciX$1r1eKKfs*UUl3(4Ko43%}oa-nIwHtHoOD<&@(uQuAW|KbZU8aNK7!h zvm+G@Kyh27gMmLU^!+@$K}^FC46F>YNuu0{!VayU1wEsa1PTwtB*d{pzEBTNTAjOB z3sCjA9_u!2!2JjJ(APJNaWb@+C>GXA6xtHU5#+)-|62f$EW*Xl3<(X98_EWUM`*W7 zQBl=`(NW52n~R(*T~KM!*42m7ih3q?6Kdm4+Z-)Va~dY2`i}cfA@pv?#HWez47qpsAyefTF}46-8@92UN74 zo}TXVQZto~Emwio(kPXazh4k7Tnxe@LNG;1*4IyoOB-6-(1_&ZG^wQK*snF!6{vYw zid8vFY3ssh^W5asF=Ffaw(Z;T>MO4>*>xOP2A|zduCMGOfGXNwPm3>;K_PFR*tY#iGOVZEwOstD2#fRcsz6Z%Fn{S1 zghxa(Y5ZU@`_py_!=^R{Tip0D8{xYmLegE_JS(ORU|W&#pI|G9qof` ze;G!pFib&#Shi^`a+WM1_$g3VRfJcI*juL6

UOSBI?{jTsK_JIcLj!OB$&;NVOKXQijg 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

By3`YnxkJx$~)a-Ml;*-TM_y@9OBq)Yt@gO2Ke( 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 literal 0 HcmV?d00001 diff --git a/gui_data/img/donate.png b/gui_data/img/donate.png new file mode 100644 index 0000000000000000000000000000000000000000..75341dfbc8afaae6be9121ab3d1e6aecbde841fb GIT binary patch literal 20539 zcmdqI=Ut;zXJoqd*{t z)A8>K7NDiw``HBWpWjjTP9do4;ioZogS>qMyiSKiV!Td!MfiGyKoMih*;mr$&Tu46 zYrhu(BTw9)L!Y}EoS=WWkDj$|_6hg)+w!Ws@dYU z&hkYs`6a4et2?{_J-yeUBK6}ZLrnF<0#lpRjtX00ZTu4h>B6Pq&!ukj&m}qHbS~~9 zl^cZP!p?>p@9SLubB>|jdox6Qu62q~^61h0wJQqW|DH=ogrSs{-aPVdl77bP!G{3j zkFTM&CO^*J=lRr!$>cQnBFEI!2D{igz(nf5B~thQfS z#Vr)Iszj{rR)3n^aDMI2$d6ZfEK9Qb`>LHn*MHEz_fI|?d1r!Q@#}s6ARFcP({`rp zox}TGw*Jm!k;N~P;$hoYQpRiz6x9QpoHra?mM4nmp8aZa-Exo8m&@0Z8wjE2*ytXd z^${&2Nl0>vMvkssF>Naktne5Uw|#B(n7_Pf;I`ivmfB?2+@AZ^-lsp@zc3*KKBZ>k z{Z&r7;D=1DlR(}j!HaZH9v!P27oJ()5Dlr_JH6#Pv8MRPbzohx0rpTsad_?78T4KM${KSv!Bg4^p@!#6Xq%oESuD~6tqf<78>OG+C`LR#+&ATp$y!WsxM)1NO;!k*&S@Rj2grv*!bzbsSsH3CrF7m7S znxouAm`DCi5Px_T#_w}Y)Q$P#8npXsFY>F2#l8pX7JRPrj^Wf~^h6uZr?7zJ~M}@sNGi zyS+c;aZhi8dCO8o47bJiSBCp+tQ(P?XTI#*7#Ekkfabq76tK59S}!b%JrZmjbUCyT zeYPXjHaz&w?82%B=Fa5c4}IEQm_Wp!w9#EDLo10w*c9bg-rEb)ieK91H-{&B7NMyn zgsdQJf)Tpz!uKVy)fK~YNhjAc7?A@I}{YR+)AFmyktAUHfUnPRFs{X zYCsY9pD9ic9+=wu?Yt4$;l7Z#6-moyT%e*vSn)AXbLE;eM{%sAk3i=NE zI=WrwazE@5(>&Nzb34*Ip~tkZk4V#(5AB~&1v#B^YCd#kb1EtDHx2vx z(g3FC3M0gi1ozpI4Y57g9>lDAv^~q&wsB+4^F%lOUPX6Ug=XCRZS$NO$kvcy_=q95 zNw=CAc4$-E8?E0{1*vj5sxl5WYhgV+FddEhMoAz;;VNI@r=bpl7yZ=H-=p3}&lPU) zjY-*Iqj9d-JlvAxEVJ2zp@k-IYqSwsA3dpanNz+_yMSc{CI&imI$GW1bZ0sHQ@^*L zy^6ES?kJeo`*%(v%8GdfL|`_BHkftW=b7x1o4hglJpqtM6^0)<-+E1bi>PS%)c|f7 z4(>m%@eph|solw0WhhNxuezFCVG@vIAP9Q|CP0)P;^V(d4aU#sC*lIJ{a6OhIWW^8 zvWm;C;mYLI4rN5i_*s^-p>cQFD;5MysfJ6Su7I5SU15wiMi7$_-e5nPfBwWMXjEwQ z0UaDlqHOB~JSN1iY?_Edv&J+#`#X;&{}pGB>2_GuJOT}{3_QRm2XLuJOgW2N*JbH%JaA`uLAc3A8S{RL8#Gvohp)3$_*;9Gh~9Gbel=7RJ0;6!rJQ zq}NFdCq@F}Yup-;Etu;|n_(N#;h(Ud`*mQmuH#Z7X1A9shDasaTEUj!{Icyp>afZcuc{ zDrD38q}^Yvv?H*Oardd?-i18lefAVbQE;E{!?O3LP>&S6;rCNf**iY!G^dJdVnq&7 zeB0o)*Z60*f(3{=`c2CxV)!-nuSQ$FbkSPNBMeqWtvLU)EkhNGf(F7#UyaCc_?<+n z>tuTOkNT4s2zB5Os`N4_r8H{kOY)V^`O)6RQ6K2%&}E9RxSH9vZy4*{vJ)VVsWd6t zd(gt(whcWgD2aMHI|6?ikb;;mz>y`$BN$y_M&Y8pD>nA~<7G~#>f8yIEBZc+tLS@* zuaxeHVw{X8g6!0y4xI(H;7*ib+w6#!TzjRa-D<}h9PbU3u2}GJAgK=}mVlf^F)5!S74<)y{_iObrs^@B| zUn*(xZX2vI@XtH}Nf_L^>&l}g>NGHHYgz&|WNx3mg!?|AFIiTwG0~&#oYRy{znx|I zsrBLP>R?euQb|Ti>DcRDOtA=Mh63KAx)z_Q+3``J#i2dAGF9u?FlH8u&!V{9+mK&n zLo9qvXnJVh-61264~T(N$@1B*N1MEZiLH7ty{N5xF_(+N#IEe`VUYnGaP zTEUh1thXa+F=)Y_4z_hIqKEOLdb!=umG39DIG+KclsGhIWX?zyYg|zAfR|*1mF!x4 z!4#*R<#0-AMjp3Xr*eC=Tm~qbrj3$(b|K| zka3Mw4rtto-%l)+&4U{M8Eq+AcqPjSG~V6_-9W{?Ro|u9$>-lccbyugE=-h8m-k-0IEekt?P^HH8U9TXi?|S5Lj6 z1kJ6Wi!;KQ23V4`vWf*&bLqne=^7?A^Z6#_?v@@s!>QgMBhaPz#)@7O4LX;Dg|8z` zGfAP`%oH5nM70L`1(r=&Yq%lL-{zyuW(?M|RO!hyE04_h5pO!u-$Y_7?JP=5GWM~5 zIyd^y$`yNnJD~G*CPiYxZ2KC;A!s}HzC(p~87R;ZyU5RoOqbc)XveKn(G+bT6PjDh zu!Udd9AfrY2`}}YuG6%-8&Z)Zk1;#Ydp#vY*d)Wg7dz<67ys=q;mu@-R%Hx^V{5cD zT87nVytJRYh2N(C9%*tt+f_R1w?%tb)I=G&9c^b`JDtvRHn^EQxPGwsz#D|K_fb)H&sIhSV(6p#47A_+NGlG1`a}O*CWr zUbq@H*wL?TWJ;~6O{G&Gvag76|NZXGIT0sOC%|*jvF8q`WX#<-!fQ1UF$_VPXGKee zUv(+g6{ovYXlUA9c}~gTeAvk?jUK2)ntBPp^9o$Kk#K;a!BRT1B7_slrIoBDxtvH;DL_CcoA_$kUI zl|C?^%SdijFI!0}e`3WhatdB5MAXrI#{D8nrn}}|)a{d)y*%huW4$Y6QT&UjThadL z%H4R~xZQaTbT)q5(Ws}-49kwC{-zt`a7~zyyuSa0uP-3dE?TgU;FkJde*T#dr5U%G zg7*+6jv3x+C~^t@06XO~ah}Y}pr}_zB}r`b2F0OuX?FG=vO@Jy3(n{Ud?Vrd+#HX6 z<=gm=N-GSLbs3rnEe#*>L0h(;E5IS1yvIby8|F#J^-JD(1g?yQhVWLjG5dtJ#=bD5 z;^?Zh0sOPu>8%TmE=61}g%Ag#NmPK)+Ev;p-aO|?BA7gaJ9_ytx~~4azCF8s;rNhl zo}!Qs6i1>HNxam87g6!b(4`;SX;z-+PV*P-`uQ95e2%ao5U*e-FA&f&&ELJRDB3;+O>N=koRz2QSp5Ob3MEx0~m7 zpm)e(JNeEqpKfK`@APY04spA$=!s^vVNrxi9&R3D3N@@+DDX_L3v}ZuUnpoRTd5fE ztlaN;&k#v}|5|xcgc!#pLXUvZ3hgcJ@&(~Fqavc>4=q8-wry_>`}iU~zG072@N>=k zw>w90H8Yl6;+}dKowYf9MBn_cZKvn#qooD$d_)t_wzcto1GsW4!B3agU>!FB+sD(t zSKKdfJTOpNfVDHl@bL@mpO%Gs;PK_xBEo613=_-MK(|S2!@pK!f-79H>OcQM~lc|OB$>WIC#i)w$9p%s~9oIOj{6|_# z`LW_q*)YqFMa7$1Wny_d5Tb9VrbGeMVR=*2;q_-0N}s)}Y?T`go5PmRydPw&H*25v z-cwU#TaOy-Ldg5OBF0qzdo_7_DfxR%H$VT>>c0$q+NqJxpS=&A`L>lSyu2;kTz+Vv z5Ae@!kaORFH}ay08J;IG@|YM_g-XqkSHdj6xkVoDoo>(L$BFJP&1_{1@{uFS0b%cT z^_XMQ={wdQxxK-M&W&6yd!Ph1g`*7oc0PD10oGfJJI^jGk_|C4={BqfHoe0F*S!9JH=V6|LlvypiAk6~E(?*lc4Ny%7hn{zoih3VM^Z zA`@#FiP`3(t>GKL`M!M0GntH)Tq6EVJg~BY#wZ}#zv2u8E|7|_L5L2jF-@yNcRr4H zv~S19h_*+TPt4e7Bi=CH|Au9(@XUl}ycz!T(B4Dx`3j$g$>osGBZX%)8`P&}J!wSz zv*D7k!ux&_m#0s~R8C)+REZxgxwSuW{)Ee;>L{JpLEWZwP0MrM2%&T(AGm+ zec`(2)nI%7saOP}VCiPd0J~e_URL{z9v~r`u~QY4r`ote=(t8>-y8cq-mv$QS_e&G zAFgn6Io3c5Q}8x|guhufYVadGeirF|yLfFURi;%DVd`#+ zfx(mw_#06Sh{|Vf_4iH%iM8c*|DGIDnR$Yp<2D*L&GmaW*C7|Tffk^~MVNu0>_I8< zc7gHhrDF9nWA+~GS?ynz)Myd3JotLEPqqQA)fv(Vaw^CDv;t)TLD}Ce+}{z=s#SG0 zx98vh&&ENHxL5iAz|HIeBi9?=<=qscjb#k_={K5J8Ig3N7iZ|#D|oA)Xt?>ZEEJgG z7-eENeRHpq!<%O==!g+f7OqfN%_<{V=$=V;yETUX-ZNaEx@l{u+$uNEWLlar{0tZQ z?avl4bX!uA6B-*4qut43fv$a-naftTH8?@hndQ^N)m=PsK@$-lO|JPV1sJ zk%f{JNSLXnM87wyGWr!nt%H4Xbk7Q!8ninx{o?*Qw|z}^$FIe5jeKRW$R$SWjq>X^ z^oXIxkIKhAH+Jndzg!x>3BlYl&R-FHrO~e|iL3M-=vu7-TW*aAlb&-p@q={Li@qs= z!vY!dLxU~(nwECezV`H!OzF65*o$Os^5w+(E`3J+2Hq!eOmCqN6`%UONJ9Dmf!OsL zuli-1Tz!f3f`(-Y$(pfvUa;oml;5>-LYG_B$0;sW9)+HGqNr5uWiFl6Lw zr{b2&t&_xC#(LBN!@(3?r(_=?0w_h(tz4o|Rs4ku;-{bMYybTedZa>EX70J3N8q@$ z#Tjm}!Stqv-36ZjgPf>=m?5G~4zzsuv(CHWUmdqW?VK@^Knh31@5{a_ zJ4QKjcD}`^G%Ds* zU`H$OVyFPsG_|RC#1L8uB;st~yqouf&tO>AoG1*p^9}xV+1@owG4uON zLn8(;`ZMLb!(``}N*9KCZ8}MTclUlUg4%v#x?bHSI2PP~622!$u>X~>%DnBDlx%Qv zv_iC_@haGVi$gf{va#EY@5_H>yHCMAm<=8W32eSMM)%;ghD&T`fHKG66eOFamgo@!yA^U8g|v1PMjqebSmfVWUPko4VcXdIWkoYerzZ zxfJ&|<^G+sM4h!~)$2Gh@Gu^4IC^SOS0sH#r9toW-^Jr|*e4tMQVNom?*<#k^sOtm zEkx=oW2A|1tJev)q4g{R}gSPXnSv&)_SRZ6>nzMRX>emm*>ap)atc5g_s6gqca zXUZAN*(`w$EEtzsWRhdZds?xCRVSGGS~G3l>4B9y2KOkCzvqaCeST|IGmW?`rw=}x zicFA3=innoC6pPv`QlE=Rr+jlJNC3-1BcTL-zlfWR`+L-rx98H@0EqVd}eW#c#UDk zJfE?kZ#(3w?}$0^k-*Qnl}50E3zvCRmgv3 zwO`qZS0L?*(ZPoqMUvOxWpXEZhx5$BW!kw_H>CSR9Gt9r04ENAE_+%~k_(a)dj0>j{Mrz$5>r&mMY)JI zDyM&l<5#I~acHc`2iuxC-+SovcD{|C6NztNu-V6mvEUl8y(B3QQQ~?AoIg5-o zr)xTbn_^mqO8d@t9ZUTgUlsdTi3Y%E1O00xmcSK?vd!0DPLE)#5wj}Mru31>8R$Y%h{NX@3CRGJN3c)2IG>R2d*nRw5U}X8y{J%)D zxT^L<%0#D&MEZxuZ!-#^%iU2j)Pz+V(mF+tD?kX&KQ@aRX_ic%3s^nQ=D3kRUKX0; zPH`=-G#b8zmZqt>L~Hu10^T6Xc*4`t(!J6Z{WW8dSkHVGy?$BfMwDr}lf1U4zBn9a zt9bASx*KM;#7b)+r@`;sGH$)WZpl*RVC6`D)po#bXlvnXLvs{V>xRPLSA8**}5Y#Q9@&C2urWpYaNxI;u6Gv`lWozs~Xgg7won8k}Sf zeoiXL88IHpH4GaDU2ZqRXW@dEgsyFp>+atWSBk02ATFY z#J|J)GMp%d{A8yzvX;eCbv@_QLGGMgTG82`cR34-Gr|5c-)jEfS+MF;|L4O5^)ldZ zwk*sx5AnYLO{FHCK6iG7YuLW0L<-4Ll@D>?3MX;^0`rnblt9Ysus=lsAr0Nu)}z}^ zoOe2w*q^Mfk$Y2}z!j)-?~KdTAU3lr{1sF*8~8>s*+240`-lA(Sat1$e|^H-fW?zu z3X05i4?>1*dy1uykrr~CIXJz+M&K(WAE=#0g6J#YL%HnOCmumw;hIt#l8u53|U(#n*QYr$qFh;{tclmst*z5Kvq>JFej4tJZv8h&yO z8|9qp_!rQ+qN*Qvmk<4QA;VojOaA|9fh~0w9Kz23MLSz8nxIpZl;h;jMH{!S0N5yR zDbAQLNv?dom5wA=!Bt4IM_;jm`&(kYFTgBde=ScyVc+TGh%CI;=XBI(b=vYCJh7zf zE{*(?J9%kqYu+&TE0(cvS?IccPo)&nz1HAAqwqltnFA zL6}&f>-6pXt$WVr>F1DX79>7u?Kdx26<&Z_FAHf@HP;BNr?NV)_m1`JY<2?oug;FV z&m;H5!zV1#evq1(SDxVSFLOCHcn%8W0nUR?m^6}ZAXlu7ed2Yuv2DNrSe~ZOpg=7| zSmz$_Ckxk9%7$Y@C<1*TD3Faz2w2_*xWGST1eo#JaJJ#l_3@&NcPeL*s4a6j&XVSY z%!GwsUF>ntsO{B-KO)0NIzC?iTMMvHmgn+9rZs=+!Oi4|ECs@!>hKb8e=6f?2obRa z7T1)0_$B+Ou@t=IfW9QdSzA5llvcE2YuH?CWtu!u+Vd*v6cKUbBxl9qx;i75 zv?2nLk9bR_M~Anu_9nP8EY$RQQ^TC|al4IaPZV%I!;9F^KvT{-GYj7rH-Qfh(@{b! zztg@-czhr6_>zZZfYw$o3*CzQk{_vZ6#9y@Vwfi#$+6^M3;40L0U=IJ{3~%TmSB%!{u69*KeZWuUfcNh_MxIip z?tvacq9fSM(}wt9UVH@5fG)^7nyd;}>EF1RR%Eb% zy>3s@e$w~*OT%NlrR#yEYtznbWRCi;lVq-flW9_ zs0eFdWzllQ667m_V!MmL%|a#A!B~&uQGeBSM<#=x!1Pt=4MOW4wmnz{UNSY)t|P5Q;vE7 z%%b4Yf6fh@KRDn4koDCXg;3L^$1$E3zU~w_GR@n~!dJVZSn%$~IqIdwNT#YWU;AnQ zc~1wLYk_>46yxI&Btcbg#ZD4I+TgDH$=RGSxQY!__5bZlmWSUdTzDvj6pyGDXLie* zdHDp!hsS4+@0hXFEp8R0T~FXf3;i~Ku11GGyoa%`6Ld^P76p*NLl*MPz7RX3d z@p>Mi-&pXwYOvO1}J8`#k##u&HKB4v>BCKkR|XcYVC&G}z5 zySw_NZ}E+i!2K>KZ^zShfxKkDYsvsgvpPa?wW?f>Adi(N80s7B)s`ab&ZaS$;=0n( ze5vw(JXnSYwzqpib~`sUA6g&2$rw~3M+$}yv)eZa9W6)7BK<0Mt2%wl`3v%M@6Arx>Wi78NYKF>-ib_>>-DvD7O=7VryrdX}hlUg;e>= z6c&e1+uNmJkLA^bU)j1Ua>WW*8_$VI9vlfVODRYO$j@9Zki*TWz;&W+rVg+5Vh9Ud zZ2HWLZZGI~TK&z)kWxSG7K`^IZ6>NJ&4r?SformOaq|wQe0-y@mj1?@#*>(|(juvH z@Qi#}mZ#I14OHA0&Kb5{fJP>BHm)dwH2mkEH(46H(H7;9pR~}TZ2M<6R12V45AfN| zGw9uAg=TyNn^p;U?hn6Qak0L>G%_ctl7w5;e32p9EbVsDaH_LHH`JR3MnCP-WhkL1 z@y~vj%OgLXaqDN^arT zg9B1jPYRmTij=qvi;n?eB#G`&oftJ@r19kq`z)!@ucR<<8Xr27B_mjpc-^?@ zwq7H_8QB)66=;Y?L3LtJttr}gAyL`dB#9Y6d5n2OQYC@SDfDBM!1f&@mi4c4#npP* z(#Xlv#dYFDAEQq@&YA|Jhgp}uB|^~xYy31xP63cI)Ze)Kb-`F#QCw?10m;Z5OJ&K} z&>~(kezY{7@VmJ`OY#O}&H1!C`kzOjI9KH#GDuYXy~;@JL!py|lhj5t|LBJ$g7tAB17NG%F zs`4lXJTuK1KRy~gDY253Y~7SpSp{(reJch^xi#AKMt$vJ#vrJa6^Y{RqMil{PWqEF zH;Z?33#&hdT(|}a7$N*o+`h`$!Bj2OYH!>IDB?CJrw zvC@c?(6LmhellrIi}o=olc7aT<4|63H_!60H0ib^7pVDUZfVBI7S|a9WO3uEK;mtf41cfI5Hr^=c$>kJyj@o_p?ST}pIAIt@@I^P~a{ZpF!%*?q ztI1VM*dX<_{9Ib~w{9f+VlgATiErc~JZt{zP>pzY1 z#dR;frAnzQxhY;|1Pp#m%8IZs&Ud}!VVVG2yi6vMcR3Z;ebE^dPbBIl!S(aVNOh!; z%j{!DsDA}m;iyw5%`bE`5okG2mXV(D%PdOrsBw7Zvf#Ipl(nslX5b@AG7Ln&{FtSu zOb9+3{c>_TLdIXaR2KP3!>xLB4Wka<_C(H9tb;4LoWnsa(DIkk1JH?ll*_oUMcP|- z$0g8BVG%+JG}^ekx|p$yJ^A1fei|};8*^V0>u+ZvtbGlM(wOl(MSWg5!>P3455IHe z{(&$v=MT^TbC@qChX=cim~|;tLelB}gWlx#gv>d8|kx=PzfRE0$N-ZC(mJ zf^Y1WyPVei$E6O6;X2pY=`{rc)Wwd&=_kkUM4Ybg3gk8@9XDywrl^3t7Q;CP)#4Et zrKujVRq?`=GbTo$77AJjvC=VXpSua4ML6=aQM+~Da->478h0;)XXsw&rNOSNPmlMh z3H7)Ykpsn@M_KIYR3lLx$(2UfZ^B}LN84iDZL}Hj^0-$isPxpA4ns>h(RthKqBwTP zWT;`u&Xb=azbqYsJ_#mr?@HJU`w_nVMd2uB-Mw6qNcykPd3G{4TjSKB6oRY1htnxY zY~O0ydZAxp=_6ii>bf#gw5dIYdD|LX>~7B3+*OO7#4{!UdpDjt!1d2v4wfoz0|^6b(yNtJpchbh4Wvii(_Eqy1wr{7B2E{Y8X$Q< z`YrnKIm;+h=-?v(_TN^)TW4cxDd5s!9vt9K&(P~Gy`vhDHIfvd!;g}xf^k8-sFg!< z4G`-8238*2D8!V{nL$(=Fa)%<4Nd8=DIu~>-AQA@@DW`lq>oOHjwJI)m)p$HvlHDk z-I+D;_~_q}P=_GvEF5s zU|IvCR0TP>mt1+B{66uX0@er!o%`S#ov;F9$+E1V?OPJk(~yAU8jiiRzl4!QZm1)) zGSl|9D8c$IFz+&(vm@016zb0;*&Dvz3d|bRB-VG;gWEx_=tr02EK~FpmO7B`7ZHo9 zb~f+jw$<<3t^<0dqH?(fIM3Rd_nH}ZZ!Pak0SgnfdPQ~g&I1>>>c2UAPNrC`qfNON zlgS7AaOxBxMa7MwqB+W>Z_qmr6c_n3E?LB-(yfQ>HroOBk{U`*14MMgSj3OA^*Edu zm1{2P4l!VHvo-Ji3~B&^$A&FwUI9WD^U9esZm|@M7nx2;1;BZVnp7a|bfQtNxDHr+ z`3npQg3&)0Bq3c05%HoloKYBMiZuXpL*s1ConrY$)ewgP6idJDiNh-u{CV?dihdM= zVaCR9w>X_9Ll9!1{h}ACB&6|#KhWt{emfhrwmz5-^(P2tW7=&W-4VL~fXFMSK5Ji5 z!%=$5c4dM*nlY%e*;>SsRQVX2$HwO918ET;a5znhyd5YVb1A*YnVt+CDatVYzL6$$ ziU8c&xMH#{Ss1X6$|6d>@3B}Xe=Z+PZ=hCn^?g}|L@m>|c1IeQsX{sk2ldn`C*uM(}YJHjjyaJ=C%XuEKZfmW1 zvi^h^TFb?D7Gw{-pP^flx#eyueq1E`NY0jS0@a%LC6**A4%m;}%|Gs5w^;NCM5e^y z*aPX|KY7e5X5EXMF-LA3)Fz&2i3-v0mfy8@8u40Vz-ZFJYj?;`6Ek#KN3{`3wSdYN z=hHSouW>&C`E292-|8!ui!V&RaIxPA2C7wbh&PS*r=~Q~nPG3A6pbzTy}x8}D2Krq zUj`H?G@@P9mU3|q0GU780eA?#~ktfoWK&=tnS4f70F_1)Cqq0ZPiR0lk>fwNa6$1&KhigSj!o@5Du zvn0s|uogfx2-(myu;r?%9LLKsZvXL17VY3spsKxgOPX{`>^Wy+zTcgNlX~Ds5AbHc zW1(47@plC{_E|>Xq^1SEiW>iU6_{6ifigqpB{u`}3IMjJXZc{|hsDZdMwp}ww2&$8 zs(G(Clwc_r`*A9JC>f(Ji;2BBLyx1~1o$s2itlX+c+Ylu&HZ00?kj^y4hiJrHXxdi zN&pIN_ThwrdH^riE!ZvdQIGQZSACc*oxdj|ejw7d3c3T_L|o%-Cb1o@aS7wvjfa!LP*a#@+|e z(Fh1&N~Y*(Z1JYmSr}B7Z!m~5R5-d)yC6*srdfp2p0%W=DT581JFXM@wt25x`)UE@ zOQ&A|2sDFe7G)UtQ7kRws*wy5T5g7Z2@TXFgDs!4JC{O$5~hG>`x3O=j6s*pR{M}f z7g(dvGeB=BOkt1la>tu}>v}jRr~Q$4Hh9_l|uj$bP`#_`0l}PsH847r18|`ph`9 z;7_tjWpvl7W5DN%uyHuKcA1VlvSq0FqXg0z82vVSYOePdN zi{!Bll;k_=Ok!dsl*18tX~O$<1#G~jclA;enN_Y>`TGWHc!ut8FFc<8&;Q__vb;0z z@nWct)n5*+M!X;)9e*Ctew||Zz5i+t#0;>(Qs{+UP7Hvp^=^{6=vzL8q8~t6@vUh0 zPdDP&fEyxsVul`kR0Tn(19Z~wgH-)#j406--s@0blY(xXR>IcC)J6bC%zL;?_W1O}qP#&$2&%Xuf2O;$I992{30T;ydv3Fx!^z7gE&&&eTLu=#2c(A9E83Jvv2i=+s8eN?yr@6W{{b`e z?M%C{=9Fg~zd7;&W>|uZjPP_6Z6;PWVf_I;+X4#<5KO1#X2*aB=&d1@#En4#yufkH3qh-vikyz@pqp4PfGIU9iUr)?Zh4Uh zqZ6x`MA-5H`)&!BWD)KC$Or^L?zBSzTF13>p*V;EN|U}I*$oQY&5hVUprylq_0(@-u*2|r-q z?LGJjfI6N(MHnvGtq4c~ltG$U8J+hDTkMcnRS1FcoqRhFA|U0eZ&EB*g$WwRu?3)h zg&Z*@adR$!ws}b``H;oPLy%9R?#We;mm?Ribx~#PquB=lvB`o8Yo_b6IGp?*Gt*4MegfdSy5RZB?&LaM0Od#yvNS|SZ{&j%nbb-Ig&ZCQW7YJ+F%UI z*ec6TJb`9IYk6%~)X*Jxt#1X6xP@H>hzS)~+xYh#6%5qV{nqj2DSN`RRzaqc^QAM`V^k2<#D%NmrUPkObfTMV z2_%}TykV|5BYKvh_|j~Gvx-~q+DBNLcu7XPAEgplnGHuIJl4k;3y#vbq>CRw5p5OUVUI0)cz;maPvAs{f^q#Y7v5yv~ zrWL|89s_PaplBHzKlEW3UZN?Wq9CBA)$Vt!7bcFYcx=<}GcYfk056<-Y!A>5*7R)* zZHqkif8zt{`-Pu<Fog&C1AHBS41-*?916sZEx_KqSJSrb`QO~O8YMk(pVwpa z^f>?;PND>{hU0zk$TEOHfLsEM$3yfoepI_fHCdR!RJ2qr0V@7Fv@z=46d*gRf(aOO z0XzY9C!Lffs?O7?*c?ecn(3n?{i6$%(zpWm?zSi`3)3xhG;p0sqbNn%E;&bj7x zBJx0xFwcDZ>>0O7)~cXJ05H-?RUW|T^2gqA%x3$poLfKlBXE{t(U0-6tQ!%%$1@fu zR{4?*$b!Hq9GF-OUvRVskP~|d0q_nif&o;qwg()a7s_Zj1b6}01N1wEv9s`10s681 zUpJsQDmol+^r2Z6|KnF20A$2;>{q;-a?I~ws|3g>duYb*-{Wrf$yInQ$hNnH zw6b}qtUq(KMC=CI{}Q?G!DjKyU{ z@enj#k1YiQ5yD}Zam>p&q$#j8eUAT}3OgWNbOL<;Hw)A*3@KKW;C+mD$=S-yRt_iB z^rhiQGS>yxAQ&fD$y{z3P4Q>xqKc83$uz+J%OBf+FLIg-&s!x}JD91#dIp@k3et799$oYkDp9k6Q=gx3A9eLd2BNz?e0H7jIRam+WAKb@;3K4gVD%+$ zJZPIPyQ6o{FLbjS&;JZ}r;L)sPDA|xY^>sd`rFWG!=*cbng|jvN=O^B1c<<&j34W5rdzG7U4s(CI>>th( z0CL*`1Gy2va_0_I-yQ0+;ezvEtIJkAGtv6A-Q9ny_1*y`y~^GhCkZP|8t2@~pDm?Y zy-4!tW`Qn%bOEUpmbpj94@|An?`Vrtt(iUpP0Ii@0OMVQihx=6A2PvJ1V15k@_GHgwp!-=nvTSLidQgU3%wp_X(5!q&# zX2Xd&39HcM_+ZIV_C3QWWE)X^-#h2~{TIHUAK#DH=ly!`^?tveuh*WR*ZU=U>rw-F zZ-s2I)v`?6;Xy)eh!^M?U?J}d;OzCgYsg0Jg_9GodsqC&n_(pnZaT0KJFVJ4ru;Ug|Zsf{+8=&=< zduqY~-YCxp;0^+mgxfq4o!XtUU*oQ(x>Y59Vj{=sX?e+bS(vt0{I_oHM1@8-yCzan z6nvmQEAxvkQwlDdGOr}q8#?h4P;wN@X6z)*k%rZN09{x-y#5uI-ZA`s#%@A%^+hef z05drTMDi#XHnEt>4k|sHcWbR#Jy=4dcl7?l6HF%NS@J$=FKkUe4bF4MdTc~yL8hMf z4|>ahD7ZAcVxak7p1@qrfvre?+dE06Rm(aHnW}h=7l4!Mb?<&9T~o=XSE*Xc>}l*b zJ%FrG@Q#rnh*%n?RRqG&Cy(v`>6&ZLA((|i1#pc-Ua@u}^|38jeo8351kO~H=NTs- zo_?CDz^8pzfgM0d!GKWAmIj#QE^8n_yE0O-aDKFqPfwC zmFY(*LoQZp)1nsej*t5d{3}$D=H}F0mCAg0Se^}t(K>+ZGg^xMTg&1pV8eD1K9 zky`9#?a3`;6~QpE?(2$w5TLvt7;UB{ZxQ65JP+V_7DGGNY#kWJqUttpPK?RdWsC4P zIcWpUAu-mRXJp(08U?OJ*eCb`xYpseXd->r%Si%V9p+gThrM_-@Ugc?pertsp&-wt z!yTb6q%6VyfSqzkOJT>>BNFz+^YT`p@|j7bZw=0N`gah?b@flG+{8Z_y3gz9ow&L* z$_^X^T{sNn!Se25NGCj)R@CX;sFRRv7?`9cPYU|6)rB2j3>%3V9E^M}n@C?pse&Ka zJ9mI#*5m*#s1{ux^007!+qw~ysrmVAFJ&uBQK3C3`JXTb9(R~G;=(q;TjAA$n3>GwBIZO*-5 zVuJ}dmY|@6s`<$t0iW5R=<$J47`?8By!Xn(y}7vRM=vYCrYDYb!@G)aIlo<98FP5N zeBhIFRENmtFE>8oUF}0&W7ub3*pcstF8xAjSQ4(tj#1vwVp6*A7*_~Y(3(^HC$YYI zOT3(ACAI9Y%$k{JND*puC~MNFR9FKE>df-#Z}u#2F-t_Ke`1d-*|Ch*qRu2VFdn!$ zeY}p0uct|lj4#h3hs{T8wY2Jx^mdYp#|w)PJ6ftEX4t~nm50&{A&gC;2c|C@>TlZL zbvdB(d0m?&-vHero8Yb@S3C%Fih26M#vcRl{U~Q|d?pW`VvOY=op+&)J4hVL#X7ah ztJmq?6viAH?{-_bM8k;;l;CPHT`X{ z)ooPNh3pL;3N1GT6Rx;J&naWY!t-E44wXTp^?o0;@uuQSB7gQzIlrCXgdyIDLaeh2 z|It)@H8j%j71ivLBmXTu<|A5~=AkUpaD8BrzE+t>FDTal(_JlKh*HUt*X7$*dXUfQ zGfft=2?r@#DR=*%8akkyYiJ)oTfs6BR(_F&#X<}8=^?7wpA=y~hW*&}`=QV@YcYT2 zQbm_Vuq=HkiwDCER?qq+1^N$Uq*5G%hR)o$upxxhhf{Ah zxQJa6rzeg7`SUz~sA8YsP`JXA0!9`k_Sm8_!KWw;>D)wXDTSNgX?T{2z8DqAw$BPH z>&HdJtnJMTQ_J1CA%wTijBrX1yOptP;mn@pFL&x|z%ujqvy8l1`}h|KJ`9aeeB2(n zAugH{JSm$E#zyb*S^L{t|I`CNdm)EWh7Llt_H5ZSc?unLE>j%{=9`H_(H*e`O{qjm zYRa%WP*Um{%u6%R=#*!qwf|xnaupX5@B-!B zPJ?d2m2_V=^to8_Wz^aD0)!-5IV>ZYYI!hR;cGtQXY^U0B*6W5OOa85L%>8zx=XIC z>wZbelqg)pX(PYgCo!p|@C_jcafAln#VX_=tLM$)aSD|_Ba#cxSCAz$HZ0Aip3~>; z_zM_fi6yY|tPSh*tw;xcGNZ}U=vY!L=3Rs;(C5DyYwMqMit?m>;pVqeVJS@zEgw$b zh_#(D6+eYW>U~4;@1p)5+k~~9G8LnsWm{QFBC*qwRQth|Px_uAvR{`|MIDPPxYX*( zfAv8Xm=qOS0s+9+o4S8fivf7Y}HH*WG_*cv9}(7WM*k%2w|BFXyqYWY4Y9L|G_VXHX0#(n>vQ`C^pDzUsY$*r;L-p)**>;*k3)BJO zTt_W}cuqSu!6NkWD(23n{N{>z|2x!J8Z9me4tibvAD-~kZ|g7Y5yTykuJp>)q22wC JG7pDe{tv-S2eAME literal 0 HcmV?d00001 diff --git a/gui_data/img/down.png b/gui_data/img/down.png new file mode 100644 index 0000000000000000000000000000000000000000..56a900c7e77d713b796e273e7ba4bac14da5a511 GIT binary patch literal 614 zcmV-s0-61ZP)7v&wD2rh$fG1FOUlB^!qQ4&YhkMtOR-YkuN13EDGM9f$VL(i z8cJsT&UB`3Gal#MId_u2sek9(d(XM&`~A;%zq`2O<@}SM7dA&c9*?j_%=5gKFxSck zNL&E`66#u^-dq8&BLZTRin1f7Zb@pHI;F=+YMB})sb%Vvq?V;ql3JFAN!2nnOj66# zDXChPPDyH68YWfC)G$dcQ>UbASvn=DWoejHEmOlJwM?Cos%7bvq?V;&QngGClhiVG zN~)HnQ-40S2=El9Le$4swY%^5Oh6b@&iqXjp zUTSA9{egT3!udMA6P2`QsE4_aK_D_pt>l6PR78JWL7;ooML-w6>uFzgnN!d815|-d zkb2IZgF-j~(L0k*yN3GF6Y3=}^+$oU&(lCOaC#4wpjedI0ex#xwK1Y1VzyR+Sh@0&~Bh&w2Fp-cy|He9K;8+ zNPiS5w+nQz$^J6OV?cbkf(Qjf!>ISuJeo)ec7fw@AYv{dLIX(#$uluae@Y+E(M|%9 zsA8^vf#2+=fdDg;aLn_jP3Hs|7dl9gpn}Z#1Roe5LTxzGL;wH)07*qoM6N<$g4-k! A%m4rY literal 0 HcmV?d00001 diff --git a/gui_data/img/download.png b/gui_data/img/download.png new file mode 100644 index 0000000000000000000000000000000000000000..3e9e3f642ae1124bd8ffe4baf68cacebd827b507 GIT binary patch literal 13223 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 P6-ioLL99~5AmD!iH8KEG literal 0 HcmV?d00001 diff --git a/gui_data/img/help.png b/gui_data/img/help.png new file mode 100644 index 0000000000000000000000000000000000000000..fb576bb21e10a263cccf77c413ae807e7e317bf7 GIT binary patch literal 8867 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 SEPz`zNJqm^y++kG;=ci?id!WB literal 0 HcmV?d00001 diff --git a/gui_data/img/key.png b/gui_data/img/key.png new file mode 100644 index 0000000000000000000000000000000000000000..35a5a19520d7bf1f78d3e9f65fd61ff292b56490 GIT binary patch literal 11265 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 z zYxtkke~10lR`~cF(L#6y%AOSzqn(^&TgXRO)t-{Q8)JDW9{gDo{;84e{I|hgwWo6VCNup~Ow<9jI#FlDHtT%n1fgk{KhlVI(r{dBm)TBkl?b*NbE4&%cHLHavSE@t;{0fGo5 z<-38##nSlN$^Ei){$NepinM)AeW3#8hYbXP6GhXd?Hok+Qf<2GdG4uW6RcA-vZUyU zt|gFcXcDA#A(%pTGo3kg6eAm&-**X1j1zB^JyV=uX`Ifmv=SMNa`|9-BG@KvG&Nm~ z=fso@d>z_be#&53daWu=zeGHLg@U;feT|~jY{SuqX~fa-rVB&yn9{?BCsYf^C*Idk zdX{kKms8L(Q=~hdiWOODHt7a>e^iT%V{fKL4wm-m0SqyeO2y}Blnd6hhN<{2!nAXa zkBrj=<6PdTNdXMgN5j(9a_Qu|_VIKh_vWR#iqe!S9OH%Sds|G1M~4d)icb2`Fq;$w zcCWiK>s&!O)~I&_A(Cr>;ZHnj8g_ez7}*La8~mM$nt7^n{OvIDf^*+mz~YTeb(||R zyK@%`F3;N=f-?&#gCex7Zsb2Y(&*wSh=8}QOz_wD?7Y*?4-tB^bL{i+a5K@{K2vU7 zdxH-du0_sU>8R#I@6>|Si3rI?;klyc7WKUigImILN3JFVR7!j}#m_~V(8zbyKB~UQ zU&qWx8%Vo1LOE5~ifg3{p1;8sPNdi6o&t&9Ol*g1Jw~?0@PL686sz}CMfQ{ZpH%T44hrbySU&VuJ5WnBQoZw8M6f zquk6&PtInti~DC)*sivI-?e__=YGQWb4~FJbYYT%z_mK&yr*Li`X{JfaJ8~--b|M% z-O#;EXqp~+S~915G32199UvDav*0o93XY9r5oH7Nc4mAb%#J2_kN*;le(`jI+HQPx=|}2lMt(@mW)V zX7}cH#sg3kXPN|Ko+i#8Sp|2yo$?D#aRbKrO!Xv`tkOc~k_;I9S#YyVOwJe${ zdmBY^Y&2q)4+J{j^|FaI-nRITdnf&MS-S;)20Jm%f@bvO#Bz6cunt_D+K1b*aN;o+ zh(h~x`xzl%;nnBfQ%tbk#)xGCpoL=M)SF?W#8j%R^Zvqh{@_kJY5wDr2WG>yT$|yz za?@#j{wZv4b3v++;c&3g6oZV1KheG>Jy4Zi`vFmknX_+8IR?{3#_ zD?WV|v*B<{>lK@A0AWmVh0-wHqFfcZ(tN|AdCh$F12}#3rmNeA_j*&}6-L$iEPE9j zAz$p}=ry&Pf{XAC&5e;1L?gg%Xd5B2Zvbm;=Be2Ze1p4sTA%n#PK8oB`DA071h$q9 z|3v9=uCp7AW@DlW zPIOGPout0k*s^J+<5wk~1xm$B*(74jv0TQDPZ+1Wd8ahz?j<&7ECon!vB*_orfikK z64M`j(><2$V7xtb*?Fzlyk{A8NBQg7Ac7^j`O?4Q`sdWAPkaL@cZ_PKq+YJ-By*ps3O1UdZ`#w8_W4wF_8l03+!))1c#`}y$D=K z`ot1^>`M68n7HCuF(POPYbKb|MWH|niksMLb#tmo`!rmHcOwB|4v-lGFOS~ejT zNK-IJ4Bm;IuT8Tuf@xdT_v+U7f7a=UatXWSGpyaw_bHUM*p=o~mqZI)Kv~j|)Y{{x zl1%j2BVV}IlG72@G*j(T?ALBm@|}6Unrn0!bB%PjJWEJ>W+f!0PE47Ov8Z?$-`ZtB z?(rPQi8oXex3kb_b%u&0XzTRMmvM*e?ut=Dj3^amcGFIG z!;8dBQ2DgN(x|W}`Tq0GD${sG{jPR+=x*!yB#zKMC=TME)n5th7#F-GT1$GrpW5&l zc0S>p#CqgPV9Rr>Igtmo!X_XpU*wwfEVnOG(@cse9_<~K!4CYPyeD6PCl zmN+`~xKn~#Fy#_P!80`Vh_Jep*^8zVZ9*HZ@>t$l<}2b}F=h$L%xere6B>_wTn~>h u$u`e0JgM|S0(7UIR-G08yT{o2fF}H)7he>1_0Hjct8_FCG|JU%um2ZO8w!&E literal 0 HcmV?d00001 diff --git a/gui_data/img/left.png b/gui_data/img/left.png new file mode 100644 index 0000000000000000000000000000000000000000..9dca0f7eacd3559f2553e18dc77948b8f5777a3a GIT binary patch literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!25(On$B+!?x6}7)yB10uJHPXjwr9$Q6N^Ne zH{Cg?&|L3rI4j32b+bf@!Hfxyj>#|J@tQQnWz)}JHpi>Q{x{sKvirL8`MvM4^Ojdz zeXr9_?lC+jk$fiJOY?C>>vO|X><^EB5IS1gQ|$Oba8HKTl%nq7ji;CwvVU~peIU0y zc`CaT|AU262ZYZZ)8cP=cbM61Z z#6rI1x^T9;?*rNC$y50cm2as1v+rThnoo`ue-+-X=G^n32FU(VXA>k`ab#!2)8-G( z6>HQ!G#GCLI=%g4i0=cw&wqRK75`{_yTVc=wrb0i96s+`T3B1wIkAA7(1YRYCw*?SLp<@F-^QnNKK!2N`Tb7L zdCv2BYI3Y6@ns?az%xEB`W*luYzqMo0=B$&`Sw`=NXO%&qtZ%wE90lDa|)<2r!M5z z)JB~=>60}fORv32$fn6{_T`X-Q%KEWp+&)dCR^XC^oBhK4wg1HP3b*oYn5=3n+N&D zRM4dfkAR74Pg-aq7a}usOCG@>994%x_)xj9B|r+M0Nmx~rCwYAvKobpaL+yHjE%2C z9P_40v6#eS?nsM^Q2W;lQt8CmV`$y#2nT-@wKi0g;ty~g?56=-vNdhD=ASw(Abx)_2zSm_ z=62oYS5*k;WrU%1`cq$S)X#(YfX*iz*kDl~gX~SRbUx=hCR%Z!u^(hB$+U&?kY?z? zk}p@&5myNCzaRe^dLZ=W4p=hZ!kv4<+->4N@?&Vj>W`&_p_>@L?$sv9D{V3nlPLgU zx-%xSGzQ~W#zf$PZ@1sTWHca8**ojYt-|<)RUZ;kQ!g?xnR=*ODDGjRR2J4Q)j$<*&n&M}Fz&vHHDG)`vf9Qsh`vGL2A*nWY+o>H zCWX4*z|xlj>5^gj%;=r#JP#9d%N*DEN2Fksp|%fWpv`ShRWcX4%SUak7|38ggfyXW zrV4DNV4z`RxIF^G|A0UXk{~I#H72lL!8jc704It2+zLB!qrOdv0R_u#Sda$sG0D+w ICvq$P25yiCw*UYD literal 0 HcmV?d00001 diff --git a/gui_data/img/play.png b/gui_data/img/play.png new file mode 100644 index 0000000000000000000000000000000000000000..d01b06a835795ffe7c0980930364108069b30614 GIT binary patch literal 4269 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 Pco{rh{an^LB{Ts5=KZ%c literal 0 HcmV?d00001 diff --git a/gui_data/img/splash.bmp b/gui_data/img/splash.bmp new file mode 100644 index 0000000000000000000000000000000000000000..a86423ef339e4d17ee08aa142c1bbc016e2b98a5 GIT binary patch literal 282296 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 z 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 z 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 HDWM4fBrlu= literal 0 HcmV?d00001 diff --git a/gui_data/img/stop_player.png b/gui_data/img/stop_player.png new file mode 100644 index 0000000000000000000000000000000000000000..8eccf6bd82b0e2a4b9674ef9e4939da106a9a22b GIT binary patch literal 2598 zcmeHJ?N3v86#m^yue7(bpzU~@7Gy#@t;(2&77G*sD_dwm1#}>Ey7@K&Rfp{aq;*Q8 zFzOO~!D!oP1Q!%aAX3I?uizjC1!o*Es&KK<4hOcVwRJ7MtN(%fvQKJAV1_1J<5Fjt`h5Uopb^}0}Nl#7QDleEB%c!l(4nZVGB2$-D z8N${No(MI^=>6%#y5-o`B#vUK2)A1Np(6HryQzeo&4 znF8y9QOTrz=_Lg$4S26+_%&40VXojszCFx0hN*{cr{Kp)<27xbc&2)2a8MII&`B!* zmbA)45)YT@tVMoflA_6;*ydSD-7Oov*`Ynh-3!$O69K#0N@x^(j6~zud)Z2rYHTtB zi79YtYy3=0)Miz@;qS%VNM&{FK(I<47t;;;s)<(zMsqEn&W#BfhHUb$YxExxmKSX0 z$Y=W+jN}&MOOxY?HnjEI4=K}M;KO%ia2pkmD{)sB3!9i5@SP0o()M6Y4mgU(t=v4q zgOoNQg@55d?I(!T(PW&8!92zi%nL7;MM1g@jGmVJ1@K} z2b!)lyxUZGL<}lx>2(OxJ!`n!GHej<)n@*v;RbT zlf*Htv)mvG-J(^BCK;qvt6Sfqj;))ekAX`{K)@nega;{?O9!VwTa{Ne;_?gl-j&Oa_nCZE#GPY literal 0 HcmV?d00001 diff --git a/gui_data/img/up.png b/gui_data/img/up.png new file mode 100644 index 0000000000000000000000000000000000000000..44fc7d8bd4db1d66dbbb171f85005002bc8260fe GIT binary patch literal 491 zcmeAS@N?(olHy`uVBq!ia0vp^Mj*_=1|;R|J2nC-#^NA%Cx&(BWL^R}Ea{HEjtmSN z`?>!lvI6;>1s;*b3=DjSL74G){)!Z!h6Ya;$B+!?xBX|eT@ppwpDV|EDs|uVG4t9O zU?wKE=|lU*Et@t6mzjxe+OWYX%jXZ{DJRcKlRTy!FTVGk=WZGow{iL_o3ADJtIyru zyFXs@hpN)1b+@wrJN_`rOX}v0{>tC7?m<~sdf^&Br76{s0D*4dT zy-iCb&_eHFu~e7Lg9&S^xE+sua0xzWd+w&z#N+o}MdHLi80xz86t0 s=l7|1RVb5&{xq_geK!2j81zz@J9Mom!|#8$fDy#t>FVdQ&MBb@07V4TQ2+n{ literal 0 HcmV?d00001 diff --git a/gui_data/model_manual_download.json b/gui_data/model_manual_download.json new file mode 100644 index 0000000..3ae9be9 --- /dev/null +++ b/gui_data/model_manual_download.json @@ -0,0 +1 @@ +{"current_version": "UVR_Patch_3_31_23_5_5", "current_version_mac": "UVR_Patch_3_31_23_5_5", "current_version_linux": "UVR_Patch_3_31_23_5_5", "vr_download_list": {"VR Arch Single Model v5: 1_HP-UVR": "1_HP-UVR.pth", "VR Arch Single Model v5: 2_HP-UVR": "2_HP-UVR.pth", "VR Arch Single Model v5: 3_HP-Vocal-UVR": "3_HP-Vocal-UVR.pth", "VR Arch Single Model v5: 4_HP-Vocal-UVR": "4_HP-Vocal-UVR.pth", "VR Arch Single Model v5: 5_HP-Karaoke-UVR": "5_HP-Karaoke-UVR.pth", "VR Arch Single Model v5: 6_HP-Karaoke-UVR": "6_HP-Karaoke-UVR.pth", "VR Arch Single Model v5: 7_HP2-UVR": "7_HP2-UVR.pth", "VR Arch Single Model v5: 8_HP2-UVR": "8_HP2-UVR.pth", "VR Arch Single Model v5: 9_HP2-UVR": "9_HP2-UVR.pth", "VR Arch Single Model v5: 10_SP-UVR-2B-32000-1": "10_SP-UVR-2B-32000-1.pth", "VR Arch Single Model v5: 11_SP-UVR-2B-32000-2": "11_SP-UVR-2B-32000-2.pth", "VR Arch Single Model v5: 12_SP-UVR-3B-44100": "12_SP-UVR-3B-44100.pth", "VR Arch Single Model v5: 13_SP-UVR-4B-44100-1": "13_SP-UVR-4B-44100-1.pth", "VR Arch Single Model v5: 14_SP-UVR-4B-44100-2": "14_SP-UVR-4B-44100-2.pth", "VR Arch Single Model v5: 15_SP-UVR-MID-44100-1": "15_SP-UVR-MID-44100-1.pth", "VR Arch Single Model v5: 16_SP-UVR-MID-44100-2": "16_SP-UVR-MID-44100-2.pth", "VR Arch Single Model v5: 17_HP-Wind_Inst-UVR": "17_HP-Wind_Inst-UVR.pth", "VR Arch Single Model v5: UVR-De-Echo-Aggressive by FoxJoy": "UVR-De-Echo-Aggressive.pth", "VR Arch Single Model v5: UVR-De-Echo-Normal by FoxJoy": "UVR-De-Echo-Normal.pth", "VR Arch Single Model v5: UVR-DeEcho-DeReverb by FoxJoy": "UVR-DeEcho-DeReverb.pth", "VR Arch Single Model v5: UVR-DeNoise-Lite by FoxJoy": "UVR-DeNoise-Lite.pth", "VR Arch Single Model v5: UVR-DeNoise by FoxJoy": "UVR-DeNoise.pth", "VR Arch Single Model v5: UVR-BVE-4B_SN-44100-1": "UVR-BVE-4B_SN-44100-1.pth", "VR Arch Single Model v4: MGM_HIGHEND_v4": "MGM_HIGHEND_v4.pth", "VR Arch Single Model v4: MGM_LOWEND_A_v4": "MGM_LOWEND_A_v4.pth", "VR Arch Single Model v4: MGM_LOWEND_B_v4": "MGM_LOWEND_B_v4.pth", "VR Arch Single Model v4: MGM_MAIN_v4": "MGM_MAIN_v4.pth"}, "mdx_download_list": {"MDX-Net Model: UVR-MDX-NET Inst HQ 1": "UVR-MDX-NET-Inst_HQ_1.onnx", "MDX-Net Model: UVR-MDX-NET Inst HQ 2": "UVR-MDX-NET-Inst_HQ_2.onnx", "MDX-Net Model: UVR-MDX-NET Inst HQ 3": "UVR-MDX-NET-Inst_HQ_3.onnx", "MDX-Net Model: UVR-MDX-NET Main": "UVR_MDXNET_Main.onnx", "MDX-Net Model: UVR-MDX-NET Inst Main": "UVR-MDX-NET-Inst_Main.onnx", "MDX-Net Model: UVR-MDX-NET 1": "UVR_MDXNET_1_9703.onnx", "MDX-Net Model: UVR-MDX-NET 2": "UVR_MDXNET_2_9682.onnx", "MDX-Net Model: UVR-MDX-NET 3": "UVR_MDXNET_3_9662.onnx", "MDX-Net Model: UVR-MDX-NET Inst 1": "UVR-MDX-NET-Inst_1.onnx", "MDX-Net Model: UVR-MDX-NET Inst 2": "UVR-MDX-NET-Inst_2.onnx", "MDX-Net Model: UVR-MDX-NET Inst 3": "UVR-MDX-NET-Inst_3.onnx", "MDX-Net Model: UVR-MDX-NET Karaoke": "UVR_MDXNET_KARA.onnx", "MDX-Net Model: UVR-MDX-NET Karaoke 2": "UVR_MDXNET_KARA_2.onnx", "MDX-Net Model: UVR_MDXNET_9482": "UVR_MDXNET_9482.onnx", "MDX-Net Model: UVR-MDX-NET Voc FT": "UVR-MDX-NET-Voc_FT.onnx", "MDX-Net Model: Kim Vocal 1": "Kim_Vocal_1.onnx", "MDX-Net Model: Kim Vocal 2": "Kim_Vocal_2.onnx", "MDX-Net Model: Kim Inst": "Kim_Inst.onnx", "MDX-Net Model: Reverb HQ By FoxJoy": "Reverb_HQ_By_FoxJoy.onnx", "MDX-Net Model: kuielab_a_vocals": "kuielab_a_vocals.onnx", "MDX-Net Model: kuielab_a_other": "kuielab_a_other.onnx", "MDX-Net Model: kuielab_a_bass": "kuielab_a_bass.onnx", "MDX-Net Model: kuielab_a_drums": "kuielab_a_drums.onnx", "MDX-Net Model: kuielab_b_vocals": "kuielab_b_vocals.onnx", "MDX-Net Model: kuielab_b_other": "kuielab_b_other.onnx", "MDX-Net Model: kuielab_b_bass": "kuielab_b_bass.onnx", "MDX-Net Model: kuielab_b_drums": "kuielab_b_drums.onnx"}, "demucs_download_list": {"Demucs v4: htdemucs_ft": {"f7e0c4bc-ba3fe64a.th": "https://dl.fbaipublicfiles.com/demucs/hybrid_transformer/f7e0c4bc-ba3fe64a.th", "d12395a8-e57c48e6.th": "https://dl.fbaipublicfiles.com/demucs/hybrid_transformer/d12395a8-e57c48e6.th", "92cfc3b6-ef3bcb9c.th": "https://dl.fbaipublicfiles.com/demucs/hybrid_transformer/92cfc3b6-ef3bcb9c.th", "04573f0d-f3cf25b2.th": "https://dl.fbaipublicfiles.com/demucs/hybrid_transformer/04573f0d-f3cf25b2.th", "htdemucs_ft.yaml": "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/htdemucs_ft.yaml"}, "Demucs v4: htdemucs": {"955717e8-8726e21a.th": "https://dl.fbaipublicfiles.com/demucs/hybrid_transformer/955717e8-8726e21a.th", "htdemucs.yaml": "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/htdemucs.yaml"}, "Demucs v4: hdemucs_mmi": {"75fc33f5-1941ce65.th": "https://dl.fbaipublicfiles.com/demucs/hybrid_transformer/75fc33f5-1941ce65.th", "hdemucs_mmi.yaml": "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/hdemucs_mmi.yaml"}, "Demucs v4: htdemucs_6s": {"5c90dfd2-34c22ccb.th": "https://dl.fbaipublicfiles.com/demucs/hybrid_transformer/5c90dfd2-34c22ccb.th", "htdemucs_6s.yaml": "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/htdemucs_6s.yaml"}, "Demucs v3: mdx": {"0d19c1c6-0f06f20e.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/0d19c1c6-0f06f20e.th", "7ecf8ec1-70f50cc9.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/7ecf8ec1-70f50cc9.th", "c511e2ab-fe698775.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/c511e2ab-fe698775.th", "7d865c68-3d5dd56b.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/7d865c68-3d5dd56b.th", "mdx.yaml": "https://raw.githubusercontent.com/facebookresearch/demucs/main/demucs/remote/mdx.yaml"}, "Demucs v3: mdx_q": {"6b9c2ca1-3fd82607.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/6b9c2ca1-3fd82607.th", "b72baf4e-8778635e.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/b72baf4e-8778635e.th", "42e558d4-196e0e1b.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/42e558d4-196e0e1b.th", "305bc58f-18378783.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/305bc58f-18378783.th", "mdx_q.yaml": "https://raw.githubusercontent.com/facebookresearch/demucs/main/demucs/remote/mdx_q.yaml"}, "Demucs v3: mdx_extra": {"e51eebcc-c1b80bdd.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/e51eebcc-c1b80bdd.th", "a1d90b5c-ae9d2452.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/a1d90b5c-ae9d2452.th", "5d2d6c55-db83574e.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/5d2d6c55-db83574e.th", "cfa93e08-61801ae1.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/cfa93e08-61801ae1.th", "mdx_extra.yaml": "https://raw.githubusercontent.com/facebookresearch/demucs/main/demucs/remote/mdx_extra.yaml"}, "Demucs v3: mdx_extra_q": {"83fc094f-4a16d450.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/83fc094f-4a16d450.th", "464b36d7-e5a9386e.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/464b36d7-e5a9386e.th", "14fc6a69-a89dd0ee.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/14fc6a69-a89dd0ee.th", "7fd6ef75-a905dd85.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/7fd6ef75-a905dd85.th", "mdx_extra_q.yaml": "https://raw.githubusercontent.com/facebookresearch/demucs/main/demucs/remote/mdx_extra_q.yaml"}, "Demucs v3: UVR Model": {"ebf34a2db.th": "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/ebf34a2db.th", "UVR_Demucs_Model_1.yaml": "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/UVR_Demucs_Model_1.yaml"}, "Demucs v3: repro_mdx_a": {"9a6b4851-03af0aa6.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/9a6b4851-03af0aa6.th", "1ef250f1-592467ce.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/1ef250f1-592467ce.th", "fa0cb7f9-100d8bf4.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/fa0cb7f9-100d8bf4.th", "902315c2-b39ce9c9.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/902315c2-b39ce9c9.th", "repro_mdx_a.yaml": "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/repro_mdx_a.yaml"}, "Demucs v3: repro_mdx_a_time_only": {"9a6b4851-03af0aa6.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/9a6b4851-03af0aa6.th", "1ef250f1-592467ce.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/1ef250f1-592467ce.th", "repro_mdx_a_time_only.yaml": "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/repro_mdx_a_time_only.yaml"}, "Demucs v3: repro_mdx_a_hybrid_only": {"fa0cb7f9-100d8bf4.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/fa0cb7f9-100d8bf4.th", "902315c2-b39ce9c9.th": "https://dl.fbaipublicfiles.com/demucs/mdx_final/902315c2-b39ce9c9.th", "repro_mdx_a_hybrid_only.yaml": "https://github.com/TRvlvr/model_repo/releases/download/all_public_uvr_models/repro_mdx_a_hybrid_only.yaml"}, "Demucs v2: demucs": {"demucs-e07c671f.th": "https://dl.fbaipublicfiles.com/demucs/v3.0/demucs-e07c671f.th"}, "Demucs v2: demucs_extra": {"demucs_extra-3646af93.th": "https://dl.fbaipublicfiles.com/demucs/v3.0/demucs_extra-3646af93.th"}, "Demucs v2: demucs48_hq": {"demucs48_hq-28a1282c.th": "https://dl.fbaipublicfiles.com/demucs/v3.0/demucs48_hq-28a1282c.th"}, "Demucs v2: tasnet": {"tasnet-beb46fac.th": "https://dl.fbaipublicfiles.com/demucs/v3.0/tasnet-beb46fac.th"}, "Demucs v2: tasnet_extra": {"tasnet_extra-df3777b2.th": "https://dl.fbaipublicfiles.com/demucs/v3.0/tasnet_extra-df3777b2.th"}, "Demucs v2: demucs_unittest": {"demucs_unittest-09ebc15f.th": "https://dl.fbaipublicfiles.com/demucs/v3.0/demucs_unittest-09ebc15f.th"}, "Demucs v1: demucs": {"demucs.th": "https://dl.fbaipublicfiles.com/demucs/v2.0/demucs.th"}, "Demucs v1: demucs_extra": {"demucs_extra.th": "https://dl.fbaipublicfiles.com/demucs/v2.0/demucs_extra.th"}, "Demucs v1: light": {"light.th": "https://dl.fbaipublicfiles.com/demucs/v2.0/light.th"}, "Demucs v1: light_extra": {"light_extra.th": "https://dl.fbaipublicfiles.com/demucs/v2.0/light_extra.th"}, "Demucs v1: tasnet": {"tasnet.th": "https://dl.fbaipublicfiles.com/demucs/v2.0/tasnet.th"}, "Demucs v1: tasnet_extra": {"tasnet_extra.th": "https://dl.fbaipublicfiles.com/demucs/v2.0/tasnet_extra.th"}}, "mdx_download_vip_list": {"MDX-Net Model VIP: UVR-MDX-NET_Main_340": "UVR-MDX-NET_Main_340.onnx", "MDX-Net Model VIP: UVR-MDX-NET_Main_390": "UVR-MDX-NET_Main_390.onnx", "MDX-Net Model VIP: UVR-MDX-NET_Main_406": "UVR-MDX-NET_Main_406.onnx", "MDX-Net Model VIP: UVR-MDX-NET_Main_427": "UVR-MDX-NET_Main_427.onnx", "MDX-Net Model VIP: UVR-MDX-NET_Main_438": "UVR-MDX-NET_Main_438.onnx", "MDX-Net Model VIP: UVR-MDX-NET_Inst_82_beta": "UVR-MDX-NET_Inst_82_beta.onnx", "MDX-Net Model VIP: UVR-MDX-NET_Inst_90_beta": "UVR-MDX-NET_Inst_90_beta.onnx", "MDX-Net Model VIP: UVR-MDX-NET_Inst_187_beta": "UVR-MDX-NET_Inst_187_beta.onnx", "MDX-Net Model VIP: UVR-MDX-NET-Inst_full_292": "UVR-MDX-NET-Inst_full_292.onnx"}, "mdx23_download_list": {"MDX23 Model: MDX23C_D1581": {"MDX23C_D1581.ckpt": "model_2_stem_061321.yaml"}}, "vr_download_vip_list": [], "demucs_download_vip_list": []} \ No newline at end of file diff --git a/gui_data/old_data_check.py b/gui_data/old_data_check.py new file mode 100644 index 0000000..8c69cb2 --- /dev/null +++ b/gui_data/old_data_check.py @@ -0,0 +1,27 @@ +import os +import shutil + +def file_check(original_dir, new_dir): + + if os.path.isdir(original_dir): + for file in os.listdir(original_dir): + shutil.move(os.path.join(original_dir, file), os.path.join(new_dir, file)) + + if len(os.listdir(original_dir)) == 0: + shutil.rmtree(original_dir) + +def remove_unneeded_yamls(demucs_dir): + + for file in os.listdir(demucs_dir): + if file.endswith('.yaml'): + if os.path.isfile(os.path.join(demucs_dir, file)): + os.remove(os.path.join(demucs_dir, file)) + +def remove_temps(remove_dir): + + if os.path.isdir(remove_dir): + try: + shutil.rmtree(remove_dir) + except Exception as e: + print(e) + \ No newline at end of file diff --git a/gui_data/own_font.json b/gui_data/own_font.json new file mode 100644 index 0000000..dd81c36 --- /dev/null +++ b/gui_data/own_font.json @@ -0,0 +1,4 @@ +{ + "font_name": null, + "font_file": null +} \ No newline at end of file diff --git a/gui_data/saved_ensembles/saved_ensembles_go_here.txt b/gui_data/saved_ensembles/saved_ensembles_go_here.txt new file mode 100644 index 0000000..92b9d07 --- /dev/null +++ b/gui_data/saved_ensembles/saved_ensembles_go_here.txt @@ -0,0 +1 @@ +saved_ensembles_go_here \ No newline at end of file diff --git a/gui_data/saved_settings/saved_settings_go_here.txt b/gui_data/saved_settings/saved_settings_go_here.txt new file mode 100644 index 0000000..b213857 --- /dev/null +++ b/gui_data/saved_settings/saved_settings_go_here.txt @@ -0,0 +1 @@ +saved_settings_go_here \ No newline at end of file diff --git a/gui_data/sv_ttk/__init__.py b/gui_data/sv_ttk/__init__.py new file mode 100644 index 0000000..8d62495 --- /dev/null +++ b/gui_data/sv_ttk/__init__.py @@ -0,0 +1,69 @@ +from pathlib import Path +import platform + +if platform.system() == "Darwin": + sun_valley_tcl = "sun-valley_darwin.tcl" +else: + sun_valley_tcl = "sun-valley.tcl" + +inited = False +root = None + + +def init(func): + def wrapper(*args, **kwargs): + global inited + global root + + if not inited: + from tkinter import _default_root + + path = (Path(__file__).parent / sun_valley_tcl).resolve() + + try: + _default_root.tk.call("source", str(path)) + except AttributeError: + raise RuntimeError( + "can't set theme. " + "Tk is not initialized. " + "Please first create a tkinter.Tk instance, then set the theme." + ) from None + else: + inited = True + root = _default_root + + return func(*args, **kwargs) + + return wrapper + + +@init +def set_theme(theme, font_name="Century Gothic", f_size=10, fg_color_set="#F6F6F7"): + if theme not in {"dark", "light"}: + raise RuntimeError(f"not a valid theme name: {theme}") + + root.globalsetvar("fontName", (font_name, f_size)) + root.globalsetvar("fgcolorset", (fg_color_set)) + root.tk.call("set_theme", theme) + + +@init +def get_theme(): + theme = root.tk.call("ttk::style", "theme", "use") + + try: + return {"sun-valley-dark": "dark", "sun-valley-light": "light"}[theme] + except KeyError: + return theme + + +@init +def toggle_theme(): + if get_theme() == "dark": + use_light_theme() + else: + use_dark_theme() + + +use_dark_theme = lambda: set_theme("dark") +use_light_theme = lambda: set_theme("light") diff --git a/gui_data/sv_ttk/sun-valley.tcl b/gui_data/sv_ttk/sun-valley.tcl new file mode 100644 index 0000000..094ed13 --- /dev/null +++ b/gui_data/sv_ttk/sun-valley.tcl @@ -0,0 +1,52 @@ +# Copyright © 2021 rdbende + +source [file join [file dirname [info script]] theme dark.tcl] + +option add *tearOff 0 + +proc set_theme {mode} { + if {$mode == "dark"} { + ttk::style theme use "sun-valley-dark" + + set fontString "$::fontName" + set fgSet "$::fgcolorset" + + array set colors { + -fg "#F6F6F7" + -bg "#0e0e0f" + -disabledfg "#F6F6F7" + -selectfg "#F6F6F7" + -selectbg "#003b50" + } + + ttk::style configure . \ + -background $colors(-bg) \ + -foreground $fgSet \ + -troughcolor $colors(-bg) \ + -focuscolor $colors(-selectbg) \ + -selectbackground $colors(-selectbg) \ + -selectforeground $colors(-selectfg) \ + -insertwidth 0 \ + -insertcolor $colors(-fg) \ + -fieldbackground $colors(-selectbg) \ + -font $fontString \ + -borderwidth 0 \ + -relief flat + + tk_setPalette \ + background [ttk::style lookup . -background] \ + foreground [ttk::style lookup . -foreground] \ + highlightColor [ttk::style lookup . -focuscolor] \ + selectBackground [ttk::style lookup . -selectbackground] \ + selectForeground [ttk::style lookup . -selectforeground] \ + activeBackground [ttk::style lookup . -selectbackground] \ + activeForeground [ttk::style lookup . -selectforeground] + + ttk::style map . -foreground [list disabled $colors(-disabledfg)] + + option add *font [ttk::style lookup . -font] + option add *Menu.selectcolor $colors(-fg) + option add *Menu.background #0e0e0f + + } +} diff --git a/gui_data/sv_ttk/sun-valley_darwin.tcl b/gui_data/sv_ttk/sun-valley_darwin.tcl new file mode 100644 index 0000000..f76c535 --- /dev/null +++ b/gui_data/sv_ttk/sun-valley_darwin.tcl @@ -0,0 +1,49 @@ +# Copyright © 2021 rdbende + +source [file join [file dirname [info script]] theme dark.tcl] + +option add *tearOff 0 + +proc set_theme {mode} { + if {$mode == "dark"} { + ttk::style theme use "sun-valley-dark" + + array set colors { + -fg "#F6F6F7" + -bg "#0e0e0f" + -disabledfg "#F6F6F7" + -selectfg "#F6F6F7" + -selectbg "#003b50" + } + + ttk::style configure . \ + -background $colors(-bg) \ + -foreground $colors(-fg) \ + -troughcolor $colors(-bg) \ + -focuscolor $colors(-selectbg) \ + -selectbackground $colors(-selectbg) \ + -selectforeground $colors(-selectfg) \ + -insertwidth 0 \ + -insertcolor $colors(-fg) \ + -fieldbackground $colors(-selectbg) \ + -font {"Century Gothic" 13} \ + -borderwidth 0 \ + -relief flat + + tk_setPalette \ + background [ttk::style lookup . -background] \ + foreground [ttk::style lookup . -foreground] \ + highlightColor [ttk::style lookup . -focuscolor] \ + selectBackground [ttk::style lookup . -selectbackground] \ + selectForeground [ttk::style lookup . -selectforeground] \ + activeBackground [ttk::style lookup . -selectbackground] \ + activeForeground [ttk::style lookup . -selectforeground] + + ttk::style map . -foreground [list disabled $colors(-disabledfg)] + + option add *font [ttk::style lookup . -font] + option add *Menu.selectcolor $colors(-fg) + option add *Menu.background #0e0e0f + + } +} diff --git a/gui_data/sv_ttk/theme/dark.tcl b/gui_data/sv_ttk/theme/dark.tcl new file mode 100644 index 0000000..cd6e388 --- /dev/null +++ b/gui_data/sv_ttk/theme/dark.tcl @@ -0,0 +1,563 @@ +# Copyright © 2021 rdbende + +# A stunning dark theme for ttk based on Microsoft's Sun Valley visual style + +package require Tk 8.6 + +namespace eval ttk::theme::sun-valley-dark { + variable version 1.0 + package provide ttk::theme::sun-valley-dark $version + + ttk::style theme create sun-valley-dark -parent clam -settings { + proc load_images {imgdir} { + variable images + foreach file [glob -directory $imgdir *.png] { + set images([file tail [file rootname $file]]) \ + [image create photo -file $file -format png] + } + } + + load_images [file join [file dirname [info script]] dark] + + array set colors { + -fg "#F6F6F7" + -bg "#0e0e0f" + -disabledfg "#F6F6F7" + -selectfg "#ffffff" + -selectbg "#2f60d8" + } + + ttk::style layout TButton { + Button.button -children { + Button.padding -children { + Button.label -side left -expand 1 + } + } + } + + ttk::style layout Toolbutton { + Toolbutton.button -children { + Toolbutton.padding -children { + Toolbutton.label -side left -expand 1 + } + } + } + + ttk::style layout TMenubutton { + Menubutton.button -children { + Menubutton.padding -children { + Menubutton.label -side left -expand 1 + Menubutton.indicator -side right -sticky nsew + } + } + } + + ttk::style layout TOptionMenu { + OptionMenu.button -children { + OptionMenu.padding -children { + OptionMenu.label -side left -expand 0 + OptionMenu.indicator -side right -sticky nsew + } + } + } + + ttk::style layout Accent.TButton { + AccentButton.button -children { + AccentButton.padding -children { + AccentButton.label -side left -expand 1 + } + } + } + + ttk::style layout Titlebar.TButton { + TitlebarButton.button -children { + TitlebarButton.padding -children { + TitlebarButton.label -side left -expand 1 + } + } + } + + ttk::style layout Close.Titlebar.TButton { + CloseButton.button -children { + CloseButton.padding -children { + CloseButton.label -side left -expand 1 + } + } + } + + ttk::style layout TCheckbutton { + Checkbutton.button -children { + Checkbutton.padding -children { + Checkbutton.indicator -side left + Checkbutton.label -side right -expand 1 + } + } + } + + ttk::style layout Switch.TCheckbutton { + Switch.button -children { + Switch.padding -children { + Switch.indicator -side left + Switch.label -side right -expand 1 + } + } + } + + ttk::style layout Toggle.TButton { + ToggleButton.button -children { + ToggleButton.padding -children { + ToggleButton.label -side left -expand 1 + } + } + } + + ttk::style layout TRadiobutton { + Radiobutton.button -children { + Radiobutton.padding -children { + Radiobutton.indicator -side left + Radiobutton.label -side right -expand 1 + } + } + } + + ttk::style layout Vertical.TScrollbar { + Vertical.Scrollbar.trough -sticky ns -children { + Vertical.Scrollbar.uparrow -side top + Vertical.Scrollbar.downarrow -side bottom + Vertical.Scrollbar.thumb -expand 1 + } + } + + ttk::style layout Horizontal.TScrollbar { + Horizontal.Scrollbar.trough -sticky ew -children { + Horizontal.Scrollbar.leftarrow -side left + Horizontal.Scrollbar.rightarrow -side right + Horizontal.Scrollbar.thumb -expand 1 + } + } + + ttk::style layout TSeparator { + TSeparator.separator -sticky nsew + } + + + # # Modify the TCombobox style + # ttk::style configure TCombobox -borderwidth 3 + + # # Define the layout of the ThickBorder.TCombobox + # ttk::style layout ThickBorder.TCombobox { + # Combobox.field -sticky nsew -children { + # Combobox.padding -expand 1 -sticky nsew -children { + # Combobox.textarea -sticky nsew + # } + # } + # null -side right -sticky ns -children { + # Combobox.arrow -sticky nsew + # } + # } + + # # Use a canvas as the parent of the combobox and create a custom border + # canvas .c -width 200 -height 30 -highlightthickness 0 + # canvas .c create rectangle 2 2 198 28 -width 3 -outline black + # pack .c + # ttk::combobox .c.cbox -values {"Option 1" "Option 2" "Option 3"} -style ThickBorder.TCombobox + # .c create window 100 15 -window .c.cbox + + ttk::style layout TCombobox { + Combobox.field -sticky nsew -children { + Combobox.padding -expand 1 -sticky nsew -children { + Combobox.textarea -sticky nsew + } + } + null -side right -sticky ns -children { + Combobox.arrow -sticky nsew + } + } + + ttk::style layout TSpinbox { + Spinbox.field -sticky nsew -children { + Spinbox.padding -expand 1 -sticky nsew -children { + Spinbox.textarea -sticky nsew + } + + } + null -side right -sticky nsew -children { + Spinbox.uparrow -side left -sticky nsew + Spinbox.downarrow -side right -sticky nsew + } + } + + ttk::style layout Card.TFrame { + Card.field { + Card.padding -expand 1 + } + } + + ttk::style layout TLabelframe { + Labelframe.border { + Labelframe.padding -expand 1 -children { + Labelframe.label -side left + } + } + } + + ttk::style layout TNotebook { + Notebook.border -children { + TNotebook.Tab -expand 1 + Notebook.client -sticky nsew + } + } + + ttk::style layout Treeview.Item { + Treeitem.padding -sticky nsew -children { + Treeitem.image -side left -sticky {} + Treeitem.indicator -side left -sticky {} + Treeitem.text -side left -sticky {} + } + } + + # Button + ttk::style configure TButton -padding {8 4} -anchor center -foreground $colors(-fg) + + ttk::style map TButton -foreground \ + [list disabled #7a7a7a \ + pressed #d0d0d0] + + ttk::style element create Button.button image \ + [list $images(button-rest) \ + {selected disabled} $images(button-disabled) \ + disabled $images(button-disabled) \ + selected $images(button-rest) \ + pressed $images(button-pressed) \ + active $images(button-hover) \ + ] -border 4 -sticky nsew + + # Toolbutton + ttk::style configure Toolbutton -padding {8 4} -anchor center + + ttk::style element create Toolbutton.button image \ + [list $images(empty) \ + {selected disabled} $images(button-disabled) \ + selected $images(button-rest) \ + pressed $images(button-pressed) \ + active $images(button-hover) \ + ] -border 4 -sticky nsew + + # Menubutton + ttk::style configure TMenubutton -padding {8 4 0 4} + + ttk::style element create Menubutton.button \ + image [list $images(button-rest) \ + disabled $images(button-disabled) \ + pressed $images(button-pressed) \ + active $images(button-hover) \ + ] -border 4 -sticky nsew + + ttk::style element create Menubutton.indicator image $images(arrow-down) -width 28 -sticky {} + + # OptionMenu + ttk::style configure TOptionMenu -padding {8 4 0 4} + ttk::style configure OptionMenudropdown -borderwidth 0 -relief ridge + + ttk::style element create OptionMenu.button \ + image [list $images(button-rest) \ + disabled $images(button-disabled) \ + pressed $images(button-pressed) \ + active $images(button-hover) \ + ] -border 0 -sticky nsew + + ttk::style element create OptionMenu.indicator image $images(arrow-down) -width 28 -sticky {} + + # Accent.TButton + ttk::style configure Accent.TButton -padding {8 4} -anchor center -foreground #ffffff + + ttk::style map Accent.TButton -foreground \ + [list pressed #25536a \ + disabled #a5a5a5] + + ttk::style element create AccentButton.button image \ + [list $images(button-accent-rest) \ + {selected disabled} $images(button-accent-disabled) \ + disabled $images(button-accent-disabled) \ + selected $images(button-accent-rest) \ + pressed $images(button-accent-pressed) \ + active $images(button-accent-hover) \ + ] -border 4 -sticky nsew + + # Titlebar.TButton + ttk::style configure Titlebar.TButton -padding {8 4} -anchor center -foreground #ffffff + + ttk::style map Titlebar.TButton -foreground \ + [list disabled #6f6f6f \ + pressed #d1d1d1 \ + active #ffffff] + + ttk::style element create TitlebarButton.button image \ + [list $images(empty) \ + disabled $images(empty) \ + pressed $images(button-titlebar-pressed) \ + active $images(button-titlebar-hover) \ + ] -border 4 -sticky nsew + + # Close.Titlebar.TButton + ttk::style configure Close.Titlebar.TButton -padding {8 4} -anchor center -foreground #ffffff + + ttk::style map Close.Titlebar.TButton -foreground \ + [list disabled #6f6f6f \ + pressed #e8bfbb \ + active #ffffff] + + ttk::style element create CloseButton.button image \ + [list $images(empty) \ + disabled $images(empty) \ + pressed $images(button-close-pressed) \ + active $images(button-close-hover) \ + ] -border 4 -sticky nsew + + # Checkbutton + ttk::style configure TCheckbutton -padding 2 + + ttk::style element create Checkbutton.indicator image \ + [list $images(check-unsel-rest) \ + {alternate disabled} $images(check-tri-disabled) \ + {selected disabled} $images(check-disabled) \ + disabled $images(check-unsel-disabled) \ + {pressed alternate} $images(check-tri-hover) \ + {active alternate} $images(check-tri-hover) \ + alternate $images(check-tri-rest) \ + {pressed selected} $images(check-hover) \ + {active selected} $images(check-hover) \ + selected $images(check-rest) \ + {pressed !selected} $images(check-unsel-pressed) \ + active $images(check-unsel-hover) \ + ] -width 26 -sticky w + + # Switch.TCheckbutton + ttk::style element create Switch.indicator image \ + [list $images(switch-off-rest) \ + {selected disabled} $images(switch-on-disabled) \ + disabled $images(switch-off-disabled) \ + {pressed selected} $images(switch-on-pressed) \ + {active selected} $images(switch-on-hover) \ + selected $images(switch-on-rest) \ + {pressed !selected} $images(switch-off-pressed) \ + active $images(switch-off-hover) \ + ] -width 46 -sticky w + + # Toggle.TButton + ttk::style configure Toggle.TButton -padding {8 4 8 4} -anchor center -foreground $colors(-fg) + + ttk::style map Toggle.TButton -foreground \ + [list {selected disabled} #a5a5a5 \ + {selected pressed} #d0d0d0 \ + selected #ffffff \ + pressed #25536a \ + disabled #7a7a7a + ] + + + ttk::style element create ToggleButton.button image \ + [list $images(button-rest) \ + {selected disabled} $images(button-accent-disabled) \ + disabled $images(button-disabled) \ + {pressed selected} $images(button-rest) \ + {active selected} $images(button-accent-hover) \ + selected $images(button-accent-rest) \ + {pressed !selected} $images(button-accent-rest) \ + active $images(button-hover) \ + ] -border 4 -sticky nsew + + # Radiobutton + ttk::style configure TRadiobutton -padding 0 + + ttk::style element create Radiobutton.indicator image \ + [list $images(radio-unsel-rest) \ + {selected disabled} $images(radio-disabled) \ + disabled $images(radio-unsel-disabled) \ + {pressed selected} $images(radio-pressed) \ + {active selected} $images(radio-hover) \ + selected $images(radio-rest) \ + {pressed !selected} $images(radio-unsel-pressed) \ + active $images(radio-unsel-hover) \ + ] -width 20 -sticky w + + ttk::style configure Menu.TRadiobutton -padding 0 + + ttk::style element create Menu.Radiobutton.indicator image \ + [list $images(radio-unsel-rest) \ + {selected disabled} $images(radio-disabled) \ + disabled $images(radio-unsel-disabled) \ + {pressed selected} $images(radio-pressed) \ + {active selected} $images(radio-hover) \ + selected $images(radio-rest) \ + {pressed !selected} $images(radio-unsel-pressed) \ + active $images(radio-unsel-hover) \ + ] -width 20 -sticky w + + # Scrollbar + + #ttk::style layout Vertical.TScrollbar + + ttk::style element create Horizontal.Scrollbar.trough image $images(scroll-hor-trough) -sticky ew -border 0 + ttk::style element create Horizontal.Scrollbar.thumb image $images(scroll-hor-thumb) -sticky ew -border 3 + + ttk::style element create Horizontal.Scrollbar.rightarrow image $images(scroll-right) -sticky {} -width 13 + ttk::style element create Horizontal.Scrollbar.leftarrow image $images(scroll-left) -sticky {} -width 13 + + ttk::style element create Vertical.Scrollbar.trough image $images(scroll-vert-trough) -sticky ns -border 0 + ttk::style element create Vertical.Scrollbar.thumb image $images(scroll-vert-thumb) -sticky ns -border 3 + + ttk::style element create Vertical.Scrollbar.uparrow image $images(scroll-up) -sticky {} -height 13 + ttk::style element create Vertical.Scrollbar.downarrow image $images(scroll-down) -sticky {} -height 13 + + # Scale + ttk::style element create Horizontal.Scale.trough image $images(scale-trough-hor) \ + -border 5 -padding 0 + + ttk::style element create Vertical.Scale.trough image $images(scale-trough-vert) \ + -border 5 -padding 0 + + ttk::style element create Scale.slider \ + image [list $images(scale-thumb-rest) \ + disabled $images(scale-thumb-disabled) \ + pressed $images(scale-thumb-pressed) \ + active $images(scale-thumb-hover) \ + ] -sticky {} + + # Progressbar + ttk::style element create Horizontal.Progressbar.trough image $images(progress-trough-hor) \ + -border 1 -sticky ew + + ttk::style element create Horizontal.Progressbar.pbar image $images(progress-pbar-hor) \ + -border 2 -sticky ew + + ttk::style element create Vertical.Progressbar.trough image $images(progress-trough-vert) \ + -border 1 -sticky ns + + ttk::style element create Vertical.Progressbar.pbar image $images(progress-pbar-vert) \ + -border 2 -sticky ns + + # Entry + ttk::style configure TEntry -foreground $colors(-fg) + + ttk::style map TEntry -foreground \ + [list disabled #757575 \ + pressed #cfcfcf + ] + + ttk::style element create Entry.field \ + image [list $images(entry-rest) \ + {focus hover !invalid} $images(entry-focus) \ + invalid $images(entry-invalid) \ + disabled $images(entry-disabled) \ + {focus !invalid} $images(entry-focus) \ + hover $images(entry-hover) \ + ] -border 5 -padding 8 -sticky nsew + + # Combobox + ttk::style configure TCombobox -foreground $colors(-fg) + + ttk::style map TCombobox -foreground \ + [list disabled #757575 \ + pressed #cfcfcf + ] + + ttk::style configure TCombobox -foreground $colors(-fg) + ttk::style configure ComboboxPopdownFrame -borderwidth 3 -relief solid + + ttk::style map TCombobox -selectbackground [list \ + {readonly hover} $colors(-selectbg) \ + {readonly focus} $colors(-selectbg) \ + ] -selectforeground [list \ + {readonly hover} $colors(-selectfg) \ + {readonly focus} $colors(-selectfg) \ + ] + + ttk::style element create Combobox.field \ + image [list $images(button-rest) \ + {readonly disabled} $images(button-disabled) \ + {readonly pressed} $images(button-rest) \ + {readonly hover} $images(button-hover) \ + readonly $images(button-rest) \ + invalid $images(entry-invalid) \ + disabled $images(combo-disabled) \ + focus $images(entry-focus) \ + hover $images(button-hover) \ + ] -border 5 -padding 8 -sticky nsew + + ttk::style element create Combobox.arrow image $images(arrow-down) -width 35 -sticky {} + + # Spinbox + ttk::style configure TSpinbox -foreground $colors(-fg) + + ttk::style map TSpinbox -foreground \ + [list disabled #757575 \ + pressed #cfcfcf + ] + + ttk::style element create Spinbox.field \ + image [list $images(entry-rest) \ + invalid $images(entry-invalid) \ + disabled $images(entry-disabled) \ + focus $images(entry-focus) \ + hover $images(entry-hover) \ + ] -border 5 -padding {8 8 54 8} -sticky nsew + + ttk::style element create Spinbox.uparrow image $images(arrow-up) -width 35 -sticky {} + ttk::style element create Spinbox.downarrow image $images(arrow-down) -width 35 -sticky {} + + # Sizegrip + ttk::style element create Sizegrip.sizegrip image $images(sizegrip) \ + -sticky nsew + + # Separator + ttk::style element create TSeparator.separator image $images(separator) + + # Card + ttk::style element create Card.field image $images(card) \ + -border 10 -padding 4 -sticky nsew + + # Labelframe + ttk::style element create Labelframe.border image $images(card) \ + -border 5 -padding 4 -sticky nsew + + # Notebook + ttk::style configure TNotebook -padding 1 + + ttk::style element create Notebook.border \ + image $images(notebook-border) -border 5 -padding 5 + + ttk::style element create Notebook.client image $images(notebook) + + ttk::style element create Notebook.tab \ + image [list $images(tab-rest) \ + selected $images(tab-selected) \ + active $images(tab-hover) \ + ] -border 13 -padding {16 14 16 6} -height 32 + + # Treeview + ttk::style element create Treeview.field image $images(card) \ + -border 5 + + ttk::style element create Treeheading.cell \ + image [list $images(treeheading-rest) \ + pressed $images(treeheading-pressed) \ + active $images(treeheading-hover) + ] -border 5 -padding 15 -sticky nsew + + ttk::style element create Treeitem.indicator \ + image [list $images(arrow-right) \ + user2 $images(empty) \ + user1 $images(arrow-down) \ + ] -width 26 -sticky {} + + ttk::style configure Treeview -background $colors(-bg) -rowheight [expr {[font metrics font -linespace] + 2}] + ttk::style map Treeview \ + -background [list selected #292929] \ + -foreground [list selected $colors(-selectfg)] + + # Panedwindow + # Insane hack to remove clam's ugly sash + ttk::style configure Sash -gripcount 0 + } +} \ No newline at end of file diff --git a/gui_data/sv_ttk/theme/dark/arrow-down.png b/gui_data/sv_ttk/theme/dark/arrow-down.png new file mode 100644 index 0000000000000000000000000000000000000000..2b0a9d8d4da574230214360781df04f68754ddd5 GIT binary patch literal 2897 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 literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/arrow-right.png b/gui_data/sv_ttk/theme/dark/arrow-right.png new file mode 100644 index 0000000000000000000000000000000000000000..2638d885eb9be2833b009ef5b88081a4b22b34b2 GIT binary patch literal 261 zcmeAS@N?(olHy`uVBq!ia0vp^tU%1g!3HF2ETDGVhgXJ?3QcUSGUi&$t1y1Z}2x(bF22!HCMuQ zI$p3OWUj4!E%8|9z|yT|74PF25?r3-^xU+1J}>zd^VQSFKbf9auLQb|!PC{xWt~$( F697n>UrPW0 literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/arrow-up.png b/gui_data/sv_ttk/theme/dark/arrow-up.png new file mode 100644 index 0000000000000000000000000000000000000000..f935a0d32a699308758f10b1ccee21c92e7c6b64 GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^AT}!p8<4C?sm%aVoCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt=OCT^vI=X2$jzavgFIVSTQi z*}{5|xk5}oLD5M{aRSQ`Y(kAvd{KEfjKk-)x RB?6tw;OXk;vd$@?2>=XyVnF}^ literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/button-accent-disabled.png b/gui_data/sv_ttk/theme/dark/button-accent-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7bd9ba70f9371a9c3d98b8f97039e611018479 GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC@5Lt z8c`CQpH@mmtT}V`<;yxP|;*h7sn8b-nZur`3@@xxLiDW z!YS&7&*{JVX}8u2I5|~J?otbV6Yxv^!OQ(YUir^ul6nLLCmfl2hG(tm3azU5H|7+3 zXvVgssR%kXbSOOMIVO>xeE-9~_X|4y^q$@G{Xy4mNzXNx)qXYb|7h6XkhYD-*m%R% zZ9HqXHm&Lso&LPiDfHky>!Ncjw%%(x%d=EO=6Itao1J61{YF2TkV2sI7(8A5T-G@y GGywpYLS~o% literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/button-accent-hover.png b/gui_data/sv_ttk/theme/dark/button-accent-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..8aea9dd682773a2a5ed32f6a9c14a4db8f2c00ac GIT binary patch literal 373 zcmV-*0gC>KP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10Rl-x zK~y-6?bN+W!%!TC@#mZrlbRw0K~Ro^QncWv1YEoUXX)bTF1-OKZ$JkJXGg`wJ8*C) z4h}*mv5QFkz*dZslX(8l-Avjs&jtK=r&k$cB%EKO(P~p~MpUXHdCGobKDr$q&X0(n zd#KfDOEwP9aDENz1j)sL0;aUWOJZ&hchQYj8|T+Z3Sa;NBu>bJkma3ybiEm2r3f`z z>V(;~O?0IiG64?}@PZIMJ~dhimS73~3$*bkY66f_kbVu(Z}&HN?sxoUE~9^UjqY8Z zkPco@nWfO}h@dh{`rha9;uvL&kzj6-h3!3NR@Tw}bS}>&-weAQo~}-@gIE3l45nSi T5+#gb00000NkvXXu0mjf@z|C; literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/button-accent-pressed.png b/gui_data/sv_ttk/theme/dark/button-accent-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..edc1114e5e03094ebe8796dd528ca5fb932ec9eb GIT binary patch literal 363 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC@5Lt z8c`CQpH@mmtT}V`<;yxP|*)h7sn8b-nUn6{g@nO+CDzF zx9*;udEr#r)!YL?N^{c#^cI$c$sIY?*5W;(fLphNmz7r~>{yG(qSJL}`&z|jMeIn} zd7iQEWb|I4wuQ#O+g`s687wYMU0!lt z4%JQPuG`#;Tf8_<{9(Jro53Y5417}iTRn$ z_kpST7yD~>(}-r%AL<)ClBVSFb0$nKzmjF$cdf6(yaQPpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10R~A# zK~y-6?bN+W13?sq;df?N$>0*f%3{PuB$bt@SXo&HyaDk7(pq>0iU@Z0f>_yDiC`o6 zgBBKIBg7`4kOXx#8{C~uW-P1}3)iIF_W~Y1PH}|R+68)o$>lXhrsnZgK$bcm5ihsr z-0!Z_etbZb<`&%S<{`FFB(>l&aUg&J310lpGEAgY~T(%)uP|6KJA0L?0jlm{y2v-kc)4Y0sdvDfR0U zWOaWF^IS)m1l&KKqO*`DB+VzPdm9L?wNsmmtT}V`<;yxP||PQeIruR^2&q!!i^gZ;ubuSeW1DTk+ISuZ}w2O*5*3` zQ^PZ=R#;nnPcYNI_*W)v;)U|Hhu*PmJJpsf(38uxt>ExR|JN)zZ_@UkVzibMpLKw9 z&Vl_7>mMhsZOZ-i@xW!_oV%=*8R4ymWqUea9CDoMG_!@f>m>7W_XB$R70j*T>ISDz Sf8_%@mBG{1&t;ucLK6Vt7;0ev literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/button-close-pressed.png b/gui_data/sv_ttk/theme/dark/button-close-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..6023dc1435a0288cf824533d496312b237fdf8b8 GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC@5Lt z8c`CQpH@mmtT}V`<;yxP|Ya0=^f37C6--m5nQu|q!)78&qol`;+0K4&D_W%F@ literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/button-disabled.png b/gui_data/sv_ttk/theme/dark/button-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..71bb0a8f261f00a67737cc58c47511c236d80c41 GIT binary patch literal 2917 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 literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/button-hover.png b/gui_data/sv_ttk/theme/dark/button-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..20413753ca1b8d669bd5594a9c82da521a95b65d GIT binary patch literal 2915 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 N002ovPDHLkV1h*}Yo!1H literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/button-pressed.png b/gui_data/sv_ttk/theme/dark/button-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..42701498d18f5361bf3cff92033cabc845565217 GIT binary patch literal 2887 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 literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/button-rest.png b/gui_data/sv_ttk/theme/dark/button-rest.png new file mode 100644 index 0000000000000000000000000000000000000000..128f5f68e4a2d4902842c4e73999094247c8f28f GIT binary patch literal 2945 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 literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/button-titlebar-pressed.png b/gui_data/sv_ttk/theme/dark/button-titlebar-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..2ed0623e8d5bed5e8a24d960b49a3a9e7c6f5ddd GIT binary patch literal 238 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 AaR2}S literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/check-tri-rest.png b/gui_data/sv_ttk/theme/dark/check-tri-rest.png new file mode 100644 index 0000000000000000000000000000000000000000..26edcdb13c66fa429b933f7af6a8ae04a2cc17a2 GIT binary patch literal 363 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 Vz$kX=awbrQ!PC{xWt~$(699LkAlU!_ literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/entry-disabled.png b/gui_data/sv_ttk/theme/dark/entry-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..1d9bce84ddb0c228a3ed5e90364601f5b1eefed2 GIT binary patch literal 2973 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 DDldhb literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/entry-hover.png b/gui_data/sv_ttk/theme/dark/entry-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..6b93830ab5908d7af96c755acd111761524e0f4e GIT binary patch literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC@5Lt z8c`CQpH@mmtT}V`<;yxP|++;7sn8b-nUmaiZ&bYv^<>L zs&QolLx1LsTc<17q(oob^b(#GQuyf7e}?{99(~(L!!-< zWzueb=J&tdjEs9CZbmiFOkBCOX=dR(^}fdr@9lS4dug7qT)eeSyndef6wjY#F+f)` Nc)I$ztaD0e0suTIW;6f* literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/entry-invalid.png b/gui_data/sv_ttk/theme/dark/entry-invalid.png new file mode 100644 index 0000000000000000000000000000000000000000..7304b247cd136a2042d9ef347406655172be6537 GIT binary patch literal 324 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VXMsm#F#`kNVGw3Kp1&dmC@5Lt z8c`CQpH@mmtT}V`<;yxP|-zC7sn8b-nUl{`W`V5aC>OJ zEx9tX`*fT|M2Lg`76;iY4#86x+4%%El_jO`SSR2yBjz*Lk1yv_RhBNf7UjfY@mxT# zDkwB-?UOl~Yag!JdPL%+rLnK@s#~mG9QUe|dU_sra4SwIUN+?tYpkBmQU#?J0fTdv z&no|kmqlu}CQ2A6U8;SS@6C87?Pav}j%Mp0>H(p<>mT$_FkGRv>{{3NI^!36(<8<1 zyi9)b@oDesYi5m$x7ys9Ghxc4d+Sd9{jFXe{A|Oz*b6r$=Jm7BTi3sbtA_D~anSBl Ths@^zJ;&hb>gTe~DWM4f{>_9> literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/entry-rest-combo.png b/gui_data/sv_ttk/theme/dark/entry-rest-combo.png new file mode 100644 index 0000000000000000000000000000000000000000..3f32bba56213a1da4122229c5269abf4ceaa82c6 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc1|)ksWqE-VV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}c0*}aI1_r((Aj~*bn@<`jC|TkfQ4*Y=R#Ki=l*&+EUaps!mtCBkSdglh zUz9%kosASwQGln5V~BmmtT}V`<;yxP|-F|7sn8b-nUma_O>|iv_4Fi zR`<(bxX5RFna6a3#es^NlZt|K{H%9Ne|rA;WhT>Q6JJ#&1LGB19UQiyqDoBf`pz6t zP?9(a0>V{Rj@*l(t3a;Xk5lr}3qhb8mf^Wm_=9!90`MP`gbOaCHHB3=+VL81i pVP5)*EO80J8{2qa?^?9AP2QBpXKBq|V~{r)JYD@<);T3K0RWGPZ215H literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/notebook-border.png b/gui_data/sv_ttk/theme/dark/notebook-border.png new file mode 100644 index 0000000000000000000000000000000000000000..0827a074e2330c873964133f877788a1fb4cbeb1 GIT binary patch literal 337 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 Dj5ILM literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/radio-disabled.png b/gui_data/sv_ttk/theme/dark/radio-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..b724f3a2229656060532fab32c3c6fc908bdaa5d GIT binary patch literal 279 zcmV+y0qFjTP)kotirB0<+2v*)E=aP#{#BFkoS8cH~vpX}p%rs37 ziNhYkpWQt5aN9O0ih?i<;W&;EVT^%uj$s&3Rh3xNp3nIjN}8qu)b~B6X%aZYFyOi_ zmSsUv6hh<@A)U;!EVOM4P16n_2@sj@`xwU&bzNU0%(4t!*I`}PQ%_Y@h39$5^ZYtt zS(eas{giN?XT)**XF{o04uSx-ZKG)#IiXORNs@@3NvRDLn>rRn(NXMII=72`_YFSZ d*Inn{xE&%Bl1UFRcP9V<002ovPDHLkV1hLOZjJx| literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/radio-hover.png b/gui_data/sv_ttk/theme/dark/radio-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..982334519f74e3784c04e96014b954959ad0a1b8 GIT binary patch literal 3091 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 literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/radio-rest.png b/gui_data/sv_ttk/theme/dark/radio-rest.png new file mode 100644 index 0000000000000000000000000000000000000000..ef891d151a4807c35408bfbf52c00528b62378d5 GIT binary patch literal 3092 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 literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/scale-thumb-disabled.png b/gui_data/sv_ttk/theme/dark/scale-thumb-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..329e2630ccf0f3c63c91ac9b0fc72067c90a72ac GIT binary patch literal 531 zcmV+u0_^>XP)zb79FH>|RjRO|IFQ`OW`kXLdOYSeZ;_yxD9nbvhjb-wfy6f%_xAhgd9j zT`U&ss&Fnd5YV!$J-}9AA5#QdNOXb(`?3TB;AAp6kAO=+^`O7;*y`bMc(q(E-+TRi z;8ZHL0pRhFK(Ct<3Wai&O65Xq_Q0eRoB1C=y&(&=TCG4EF1TCMw{QHuG(SpcYMM4t zDwRH5FiLO===z9i-EhFqs?}72!f-%tV7uLBtyYUch)TyNIwipk z!`N~h=Sb#7&}cNua4f=O+VVp6Rr#VvsYr;WhAIc}19AWrJHIp_hZvAu7u;1%-4P!VUWeK#x<-3Po=&G{ z(VKSw`=?>}Ob(`VPF$b9UcwZv;ZV+pXZ1Yk+FZu9c_nuK=b{(c{^V)$mSL2~^b6RY V?*buZr1Ag&002ovPDHLkV1i5F@>c)= literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/scale-thumb-hover.png b/gui_data/sv_ttk/theme/dark/scale-thumb-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..84e3d18a5b3ebb5f8ec1ecdfdba948b1ed1ad35c GIT binary patch literal 504 zcmVT)jx|9K^(^M&y2Z+L_u3`Z#WyU=zG|@EC7#E9YiSV;m`qkE@;6)}XIy zXwGGmZs3_t_uOcBy6HGMeg7B0COuIWAAW(;o_=-t<>&Mr_m#!BSaw+SA>vSyY7os4&26JOFI0`x<020%rj#@ zTDi*omUN?<6|4M`^NwM+C0)~I%>%jmd=)IBboVphm>f5?dCZpKEJ}gWtZ85tlJnIz z3u!E`lZb&7C=IG1vo+`}$mLhf8pJx8`uWL2IvL9?sJ23(uPnyPjXIW6>Z%&oED4-k zANkX_-mZldpJP^Ib2R*-(>=$de}ukJ7VnlFzvuC2c&gL=goiGl$zwcUg>Hfq{IgE? u4esDU<2y+cyv9>yv2ho+e%`D6On(CIM2(zzm94@60000Tm9c6YK@f(&J*{PY1OhRbYg`R1HVpp* zl$tRFP<6I9cpDi^76k#94jS{yc$6 zJ|aoK0TmAy*DKoG}&o5YV(Pes8_8zD{5-oht1uuweFMz8fX z4xiu}8w)#$C@ACsd;vL-L*%$dLBS$;B5L%^Sxm(H*o~im*djBVUuI`#CWXZRi@Z4)E)zj{XCDMZ*0Cifz4-P-UlG7UBKfXy1z%+hvYbA!_KR`(sMF5pV zdxa^l&k@uv;jS*vqa!dq1^s;{_zN&;A$6*UMiHD{K>Z$+l2yMKTNIhVy}+7<6u(|K zw_sZmUF)(f@tHO6ART2mRKtAamqr?R)?ubq^21lOdNG zW`5rJrBOaGJEK zRG;wNabQlnO)1HzU5U|YC0%;ZUwPIv^hR`}TE7c1; z_ZnFEC3GD>*#9uJ7h|P*iszmIIle!WLtwQP+6@-?Ii9-%i~uv*J)%dT1T5nRanMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt(B@E{-7HKKbo$Pw?#jYb+z^;UtvYqx^#{;HXxUHx3v IIVCg!0NgxI_W%F@ literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/scroll-down.png b/gui_data/sv_ttk/theme/dark/scroll-down.png new file mode 100644 index 0000000000000000000000000000000000000000..4c0e24fa06c2478235e21ac90290d52cbe893c0a GIT binary patch literal 226 zcmeAS@N?(olHy`uVBq!ia0vp^96-#*!3HG%vEKg;q&N#aB8wRq_zr_G1(%kFERZ*H}=vaekL7T zsTuPK4U5vV2y0-MR<@)j{#s;mWYtHOBA<(qDxmJDYlVy1)&gck!oWZK} zC|dC1;VA7r-;YTYuQU{#o7@xrzE=Ey`5S%)T|KpL{*DuX&SLO%^>bP0l+XkKH`8Hy literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/scroll-hor-trough.png b/gui_data/sv_ttk/theme/dark/scroll-hor-trough.png new file mode 100644 index 0000000000000000000000000000000000000000..89d04035b472f791ab57dc0443a8b7f70b39d3e1 GIT binary patch literal 338 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W;!3HFgc;@~FQk(@Ik;M!Qe1}1p@p%4<6riAF ziEBhjaDG}zd16s2LwR|*US?i)adKios$PCk`s{Z$Qb0xbJzX3_G$yV+W9Y@~DAMro z|K6FZ8=@mlCfI9Lv+@fb^jcfYtFIK1uiRnTP%crxGlQF>*>{3S)9;+1j*iBZx*xaw zZ-^w%sd&HMB_%8ExWnoHYa7E8-p!FNIyawz>B9HFf(7Ym%cCdQ3r}oab*|`KzEJWU z6W`Apw7+rh4S0U%>pqEwnO`4U#I0K8_x)(yg6COj8^t*0WVrGqga}54u}sfO>)&c3 zICFJzp1?#`*7r+uZy%f*w9kpd|A1t{4((@q=P#WS#$3n-oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt*MqE{-7_Gjsbk@*Xk}VSRs7 zFnfpNDFzRdH3uZ_HK;8;D%1C*jdw{vzN_rIIuoH)YEsP b2Ojgjc&2X4#`4$+=mG{$S3j3^P6$3n-oCO|{#S9F5he4R}c>anMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt%nyqq^H$w5`ut?h?T-$MEVZ9F z4@76D3tH}b6eqNF&gT<97Ot{2)}LCjl0|T7(5VYGyM!CekDXB}GGPc~xcmPdYv^6o V(3_U06oGa#c)I$ztaD0e0su$+QKSF> literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/scroll-up.png b/gui_data/sv_ttk/theme/dark/scroll-up.png new file mode 100644 index 0000000000000000000000000000000000000000..7ddba7fff7796e7f279467b5fc1acbfbe765ad53 GIT binary patch literal 236 zcmeAS@N?(olHy`uVBq!ia0vp^96-#*!3HG%vEKg;q&N#aB8wRq_zr_GX%tdV$$gfy*IINX}`O{#?QQcXpFYCW`F+o~!wk zErDU{HN~YRlT6sf(#rDIK7DV{_t;M9+MhK==d2la{=Rf(ox`*H!IzGmd1E2S*w$eo f@nJ@X{CDw5#j>p3*0Usmj$rU~^>bP0l+XkKK4()N literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/scroll-vert-thumb.png b/gui_data/sv_ttk/theme/dark/scroll-vert-thumb.png new file mode 100644 index 0000000000000000000000000000000000000000..0c3f067a3b3092053057dddee1566fd9c65a8fbf GIT binary patch literal 283 zcmeAS@N?(olHy`uVBq!ia0vp^Ahrkx8<5=cZcP}FVk{1FcVbv~PUa<$!;&U>c zv7h@-A}f&3S>O>_%)lVq2EvT7i-a42f|4b!5hcO-X(i=}MX3zs<>h*rdD+Fui3O>8 z`9MIEGmGzwI&PVpbGztxr;YA$jE7vDcB$qvV`*T(1P*;OOkSIaPO( z-IIgUpPxz3W0+?voXpcAaM@e4;M~C|>;K<>mbrOqvUwKJ+jPD!>0ISaPp?c#hblQ|i{}b04Tf#kq?|ZD+*3YwWBUQ_ Yh%YL0&juWF20Dwu)78&qol`;+06Dp7XaE2J literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/scroll-vert-trough.png b/gui_data/sv_ttk/theme/dark/scroll-vert-trough.png new file mode 100644 index 0000000000000000000000000000000000000000..52fd58f3049e992f600fa9c37d5cc3768c83493d GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^JU}eM!3HFEez+qDq!^2X+?^QKos)S9a~60+7Beu&wt+BX>>}YtprB-lYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TM zUVc&f>~}U&Kt)QPE{-7<{>dT&0)NgsFeNlya%m3aJ<lHuk|nMY zCBgY=CFO}lsSM@i<$9TU*~Q6;1*v-ZMd`EO*+>Bu@p`&AhH%VGzHt5ee|`q0)r`GU TeO=c8B^W$i{an^LB{Ts5>Ixx& literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/sizegrip.png b/gui_data/sv_ttk/theme/dark/sizegrip.png new file mode 100644 index 0000000000000000000000000000000000000000..7080c04c67807e08452264809cbacf35b89a0503 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4aTa()7BevL9R^{>lpinR(g8$%zH2dih1^v)|cB0TnIuba4!km|A<@H|v-IPs_vW zM}Hmco}=*Het~&k%Ix*smmD-!UOQ~OxM<$<_UXmtQQ0mm@%f4jp-ZPU%?$j{-Dk*f z;>`X<9Sc@5tl8SZVf0zEi{p49!-eYOcLPJe-Sgi#<&)K8#Wc0OpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10%}P_ zK~zYI#g<)fqCgaeA4ZHY4wVa>-=DddQ`#X-vvMiKRSeC_bIK(iFV`+b_-EK$IG*neZp68Thc{I;F2IhGlhGCGV zDNz*BG!1RrUKLOX!EiXlwrxDmW4GI}*=(q)>LAbf+(FlMab1@vipcZ)sz85|QVP%W zcz=IqyWRHR`wqIUi{m(~*K4%a-wFqiWf@gf@$m3~VHm`5{1Z@0$z(ENy0r?%Cf`=f?yW}0Z|n7gKFD0&(F_H zCX=Iu;y7lpSp0Ud|5Z{-JkMjbS|OyAXs!F72_a6x!G0W`o}Lgw+yt;F3bfWpDG^F3 zvMlR^^ZEQF+-JzyY<3esfHX}RkH?77XmoH?K@gl>WICPRf(?MOEU_#LVVWjQ)AWJv zLY$*ZaxazE8q+ipz}2_JHPkVQjz@T#|dK zq?FWkjmWYL$8q{V7>4~TeoAp16Ncf<0K3;k6h*;cFhEKPK-;z~7K@XR-9vqgZ36r5 znWjlm6nnEErR4tp{>!SH&1Oue)Bd(@w_8@L)y-BN>}M|s0^Z)<_N%UQGp_5Rl;ZXE z^}m<}0Mj&ie0(HHlHSquyDE-j(lo{QeUwt)4yTmD_x%Gn_{9$bj7B3o&qD}7nx>Rx zd2_?+I1X*wve|5?>-r$?3t%VPwi%Dd*tU&nnm4ihT5F1;AkXtJPP)?%6C*4`N&^#H P00000NkvXXu0mjf=LlB> literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/switch-off-hover.png b/gui_data/sv_ttk/theme/dark/switch-off-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..5a136bd3f4c6fd280134f300e5cf50136e217b05 GIT binary patch literal 945 zcmV;i15W&jP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H113pPa zK~zYIy_QW&a$6XNuf023+x%!)<`lSP_n@SJa?RGpK4=$Gr zlgWf$ujl3ErB~^<)z{ZYr_-U)XizSf$>;M_tJR*h!biZ-(NR`bR_O2V=j!T;N~J=* zUg!DwSrfQ7>2x|Q77I?N6Q9pVyWJ+4Od`wj?*ZrL<_H7=93LNZb8~~L_H3@^5(I&X zi3x(iAZKT1TwY$j@BQ_*n4h0#YHEu8{e2Wg!D6ux4u|pk{fvx^03gdUnM{U6B0;@g z*9=fqRj#kEk!6|n^>sv14n1@7T4j2A8l6tp)1cXGvbVSQ{$FY-gTcVs+8XhAoLa3$pV@5wS*z6m2nK_c zN+pWLBB@l0Znw+8zyOjY(d~A*y}c!sO0m1UOR-qg9L{Jovazv2I-Mq)%>p0d*6i#o zi;Ih#oSaZ76#i)3a=YCuEiG|+diu-5`xIEMRx8WP%Se($KA)#tE>o}9>2x}pLh1E- zhK7c4I-Pht9$Kvy$z<}=*!l$cCcE9vj~_p9xm=jdX3ZmiyWRdJ^55Ov^{o9H?WJ3w Tsq6+i00000NkvXXu0mjfS6H?B literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/switch-off-pressed.png b/gui_data/sv_ttk/theme/dark/switch-off-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..040e2ea30c96c8fcf103abdb749a706ec9b01975 GIT binary patch literal 963 zcmV;!13dhRP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H115ims zK~zYIy_QW&GHn=!562|6Mq7oJMv;@!rcWw2(MEI;En4&sY}JqGPecoULIlw&anT1A zMr5sGWOA}n3n9p68q2_W7cV`~lkdw@%5$y;=Hi%RxVgDbi_hmXX%N5PPcRsyzrP<* z6mdG8SS*%Cqu-8cniz(GuIpT1Uz5#dxx2e-IBWS`u&1YoNF+i>M+b_caCdjd^Yb&+ zY8BIL_%Gj%#bUwXa3G2zeSLjMlEll)3#n9!QmORcf|HYz%+AhoczB4SC@mBE6X9Sm zNH`qk;NXC>v$J3C+CCnpr>7YoA7^7@15ML#yWPZMF-Av6@pwG6x3_-*zrDS2e}B)# z#RbV^l1ioWBSF(Nk!6`usl@#JJc1x_dV2b=ywB$|2L=XMSXf|la}!Fu)up8+j*gBfm&=61VOCaFu-R%#UBgSYBe-XV{UGaOeTX62n49rYUJ~I+-^7Vc>Kq=)nc)*yu6Id z<@&K8fU2t0YBd6Z0K)L_Fp8o85R1jWb*zoza5#uYqfIdYuCA^Kg+d5kulLuHjE#*o z4Q>^uP$z6k^_Fl<(?rlTjgF2E z0LtZZOTew*bar;4>pDWIRKn-;0g%aLng#=$pPx6)@cDcc3I&AA%S$9l0w9@8Qms~- z0vm?G&dyHLf|4X5%Q8YPm&0bWF)%PdrBWf0Nc?yQo2E%3kwDY5rsM_(2eDeM)~!$|#LUbL`}_N!F6)=V>h*ewL?Vcyh@vRm z+}xn+I)-7iw6HpzPFyY*e!m|{l6Zc8CY4I@@bK_?_WvsX(9qDQ$}b2)O9bonI)-7O lX&U)_o@_Qtp-^Zz`wvZHY;hpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10}M$- zK~zYIz1Gi5Dr+3a@welhTr?v^t1Pq0q@<=*SWBZIqeZJATn7Ce=^xQbXjz-qB^cx` z`mqTMG0Y#CQjj3ygycxx#ktz);PH03&iSl{`96H-#RJbXU(4v|Xp;_cI-N{SP2qC6 zu-om3qR7X`N2jI#If5Wy7zUcAk$2i3I6%no6ZY zyJDwTc@^!a=&E-rF%azZMVqS@@Yxjm1?VqtoE znm{1H`T03lS6A)YU#*9Qg#~73XNg22=(_$#V68NpO_IqZg+hT~Fo+-sTwGjy0w*RW zn4h0#e}BJ?6Gf3gAb{WR$K`SXkk99d$Kyn!Q4GWAIaJqm4h|03-rnZr<%L`>hh=PR zthuwZLo^yClgR)uG&Dpg6hcvyj*T*z4B>E?a=F}dB!HqQtgWpPi9`@Q9uJzPwQ-^- zcE!Pu9pByEMHEF-fZ1%8YPE{n?MCo=y(AKeb}O zpzAu4B(-1u?w8XkkB^ULxB!r48C};AN~O}5LveO?_U$I|c-#cqkBpCxQ!Ew{lF1~h zs&0uh*$ot7NlT?(gq;dV1=(_HUD! VO;&6PK$8Ff002ovPDHLkV1k-`qrU(E literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/switch-on-disabled.png b/gui_data/sv_ttk/theme/dark/switch-on-disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..c0d67c567752d96e322b3f3dcea9cd95bbf8efec GIT binary patch literal 623 zcmV-#0+9WQP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10sKis zK~zYI&6cr}qCgZy4^0bI(;cV~5I9Cyg@2-d?4OWmFp&xE7|>HHC>vO^qEqh7j=i-v z;$2=9r=TD2dZW>(;YOb4p_D>vO%Mb~DG@^4w*5$_(}}vSIUEj@Wr?+xrny5w-WpnK z;y6aiyIW6{5P~2G2!a5uHC0t%jG-*cZr|m?^E~1>CP@yac0aUA1$-aTLx zMfCgqe-3u5e!ou?MQttN{8?SY`MytN}R$|;=h`w!vZe7t6}8NTng zo|F=$6hdq53=Sa6vWIXNMNveSWgSl`g$TpY6&nDP$>htuX_|KGFbombuhoUVGkk-= zpi@gJdG2~}AW_$~(+6y~+b{RNzrT0tx~>t2!{OOX9W9s3zwX`d_lVow_iW{Pjxpws zea0B_Jnwkc+B0BPRj&9r9*-;*i-(YxANA>UYQ3teu-4*@Mx#b+O_C(eAmN-|rqd~D znzqw=z3Q&v0M_gEZ$N-Jj{l3W0O!FfiUPPwGsc*2O`I!jx7*HfXoFwVG!#X_ZnqpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H111w2I zK~zYIwU$k66lEC4fA2dVrQ7agw-gIyT5W*1y=eJJ)FQE!EFLff1aFlCM!eO=)B^`2 z37m)^+5>4w2pSU-KGNXLqAew+=>=8~S`LcAPJvo*pl!BYXJ=jxv)jZiUmIutr^%cD zfAX6r&-=_HY};0pNN5Jh^_?U)yh*I-Ma*OavZ}h&_P-S5=K0s1BKy~M+{`d;W*Fsr zOMIdfux?YDrrkZ5^^K7NJx#g0lQ`#(^Uu{E9t|j@hP|hUmFcdE0BAy>OVEWti117) z$SZ~CD}sV=>e9DNoIj2Vd;s*~3n~RC5SSVSGxzv)pr6UHOUz9E0f1$%#eOACYS(^D ztDXfvpdsCbQi_Rl$HKgA+p2C;nl&FDsR&%PE^w|~Wb|k^UUu%0J|k93dv721>pRH$ zVJ&|@(TjWSN2JgU?032&hXbh6z`1gfk;Csl77oD6&M|UmAI?wTQKd-$n&15xp&Q8L z`cA4=*pb6&Lg3HbWAtcu*lbUeQjC7yO)z^GDZs36B-z%1Om5s7IUIm4VSJ$fiIppr zm!0MMz)1`l-l9ZXC$grwwK9N0;EWBHopZ(p(F=ez&$l9VYkAac07wC|xBe_UH+$;_ zqR|%Nq>$c&=}5tfQb2rFOWC=2V++MAm2>|_W^ay13RYBJ zDePCbm7TL+dy9M!B4%&?hIBK-QL_Qy`HIx8{TQ*@XU>>47Ogu!z$*aW|78T}W`@X3 zJCOqhfM(Ux-rEPy(u+dS{z)GqUPqw9<-yHdMk+s#bK%R#0Ra~LfYn=e@W!X7FkAn3UGJ6|C*_xGeGIOwfiGhZhJ3sNC@YmAqBb=i?b~# ze1I1y3T?-o!EbObe6_f4Em>HT8@AH4r>7$S=O-yQ?J#lf3*5}mf6kWxLUHBqAko%I ztT~05Y(QHUixkLT$QD-qaqee^aeuyy^7Bi44*@HzBP+<;3C;ij002ovPDHLkV1m(s Bw9^0p literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/switch-on-pressed.png b/gui_data/sv_ttk/theme/dark/switch-on-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..00e87c68a1b37cde51142d964e4ac1374a69de4f GIT binary patch literal 936 zcmV;Z16TZsP)pF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H112suR zK~zYIt(HG*6K5F4f8Td!J6Aio1W3V-qk?h^I*HjWdzO86QJ=?vgrD z3)sA|kHpSF!YymG0=-Y=XOGB_oMQUsrMCkLX%HXyh7bF8YkQ~=U74|JiwhVE?zey7LD<>#6SI< z&i=g^jVq{lKCN4JgHq(qpA23ynM|tYjeV@$vtJvWWlC~aGF(4#0Jk*v-g?uD(!K8x ziJl#lTpxh@!v}H3$B@D>N%ViM4K88|a#u2BkNvnTH~_aeOZMmxg=@bPF(m+PyS_u1 zA*7v36J8nD0w;vPd-0s>Ck}vGG92D5rMPx{Kih`*N#8$U2{$FKh3OSeiO9NV< ziVulRTkGnP*t8Y5x~&u+-bFeSSsiQuxW1yZe=nvL{a^QotQegGd#L!quy$@=MNZ$k zOnIuH1<+Rt*|>u4eTRaL_`gU9y1ze+h_;|q5FVU~EE3-%pE<1s5TNY&Bzks`9y+>g zCqq_@^w2Tlo3~T;0{3#~Pog{*qp7Lsr_$qpFdCvnKl)e;r0Xl}_6|C>eTfl{;1=g_ zOSAZHWwFL=_yD`TgZ10KqUVPrG_LDn-V4^=lhI$896JZp#I3}@Agz60Xn}+vT$zTz z5Tg3U-;7&If#(NtYhkoJ8U2+)=FDQ;S`t|8RGPM(-)h^Rm#gwrf!u|kamL5qIKKoC zs*%5|7rUz$t8D`zdlg2+(hB6w7pXXt6m$1*CbCSAXQAra>v{!PR4Lbkib03~0000< KMNUMnLSTZP*s$RM literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/switch-on-rest.png b/gui_data/sv_ttk/theme/dark/switch-on-rest.png new file mode 100644 index 0000000000000000000000000000000000000000..52a19ea658446caede4fb410192b05bdc78353ef GIT binary patch literal 859 zcmV-h1ElpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H10_aIZ zK~zYIz1B@g6k#04@$d7@zUAtYPFj}YYA>1@NRowg=#*<2gjel_Adl4{2$aG@MMpc8 zc&qGK6qYU>f(XK;pce@(Enl$OXjYR}cGlgQ4(rRhnhH7nU>N4%cla=G&tK%_<(Z^J z*zBm4KGc0a+}>R{)Lax-T59c|5|2y~)xHt_(u)@GqXoJ#W7CUzA{DrysupiU6V9Cc zH3hAdNN|MVyVv;n^6}C@Ar%UaH?!sFng0q)&DYL$hHhWQG~xg#9*?I5z;@YR^sde9EMKc{Wb==?hzX71t4o{8QW^= zDXD8DsyLaRk#0WP$YkFuw4N?RzPHfabK@DVjRltB%+MI!=Z>I#e7j^vEiT8`+KEuN z%pvt3qr5(Q5UE!BEW?SJJGUGTKn)8c~bOSL~|A<&@MlqQ~dgLa&}8wVo~_ z!C^~)rU_BSiLbSDS>)`GT9*!HZ(t-if)?3h|7Xe{*!B{s45B2apG5)R_PP002ovPDHLkV1jPWmj3_% literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/tab-hover.png b/gui_data/sv_ttk/theme/dark/tab-hover.png new file mode 100644 index 0000000000000000000000000000000000000000..43a113b35c4019897390acd452cda5aab135512a GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4j!ywFfJby(BP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXprUD>E{-7)t#7Y+3msPAVGc;# z;s37Q{Pe47lYDL&d7eBJb;zmzyup;*+byjdr#|JZU|BHNcbBz_Ko>H2y85}S Ib4q9e0C6#5TmS$7 literal 0 HcmV?d00001 diff --git a/gui_data/sv_ttk/theme/dark/tab-rest.png b/gui_data/sv_ttk/theme/dark/tab-rest.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a6f3f61bb7a3aa8bcca71abd5cdefa87f9f801 GIT binary patch literal 2944 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 R;|9=Y44$rjF6*2UngA+#iNF8= literal 0 HcmV?d00001 diff --git a/gui_data/tkinterdnd2/TkinterDnD.py b/gui_data/tkinterdnd2/TkinterDnD.py new file mode 100644 index 0000000..8bae5c2 --- /dev/null +++ b/gui_data/tkinterdnd2/TkinterDnD.py @@ -0,0 +1,294 @@ +'''Python wrapper for the tkdnd tk extension. + +The tkdnd extension provides an interface to native, platform specific +drag and drop mechanisms. Under Unix the drag & drop protocol in use is +the XDND protocol version 5 (also used by the Qt toolkit, and the KDE and +GNOME desktops). Under Windows, the OLE2 drag & drop interfaces are used. +Under Macintosh, the Cocoa drag and drop interfaces are used. + +Once the TkinterDnD2 package is installed, it is safe to do: + +from TkinterDnD2 import * + +This will add the classes TkinterDnD.Tk and TkinterDnD.TixTk to the global +namespace, plus the following constants: +PRIVATE, NONE, ASK, COPY, MOVE, LINK, REFUSE_DROP, +DND_TEXT, DND_FILES, DND_ALL, CF_UNICODETEXT, CF_TEXT, CF_HDROP, +FileGroupDescriptor, FileGroupDescriptorW + +Drag and drop for the application can then be enabled by using one of the +classes TkinterDnD.Tk() or (in case the tix extension shall be used) +TkinterDnD.TixTk() as application main window instead of a regular +tkinter.Tk() window. This will add the drag-and-drop specific methods to the +Tk window and all its descendants. +''' + + +import tkinter +from tkinter import tix + +TkdndVersion = None +ARM = 'arm' + +def _require(tkroot): + '''Internal function.''' + global TkdndVersion + try: + import os.path + import platform + + if platform.system()=="Darwin": + tkdnd_platform_rep = "osx_arm" if platform.processor() == ARM or ARM in platform.platform() else "osx64" + elif platform.system()=="Linux": + tkdnd_platform_rep = "linux64" + elif platform.system()=="Windows": + tkdnd_platform_rep = "win64" + else: + raise RuntimeError('Plaform not supported.') + + module_path = os.path.join(os.path.dirname(__file__), 'tkdnd', tkdnd_platform_rep) + tkroot.tk.call('lappend', 'auto_path', module_path) + TkdndVersion = tkroot.tk.call('package', 'require', 'tkdnd') + except tkinter.TclError: + raise RuntimeError('Unable to load tkdnd library.') + return TkdndVersion + +class DnDEvent: + """Internal class. + Container for the properties of a drag-and-drop event, similar to a + normal tkinter.Event. + An instance of the DnDEvent class has the following attributes: + action (string) + actions (tuple) + button (int) + code (string) + codes (tuple) + commonsourcetypes (tuple) + commontargettypes (tuple) + data (string) + name (string) + types (tuple) + modifiers (tuple) + supportedsourcetypes (tuple) + sourcetypes (tuple) + type (string) + supportedtargettypes (tuple) + widget (widget instance) + x_root (int) + y_root (int) + Depending on the type of DnD event however, not all attributes may be set. + """ + pass + +class DnDWrapper: + '''Internal class.''' + # some of the percent substitutions need to be enclosed in braces + # so we can use splitlist() to convert them into tuples + _subst_format_dnd = ('%A', '%a', '%b', '%C', '%c', '%CST', + '%CTT', '%D', '%e', '%L', '%m', '%ST', + '%T', '%t', '%TT', '%W', '%X', '%Y') + _subst_format_str_dnd = " ".join(_subst_format_dnd) + #print('_subst_format_dnd: ', _subst_format_dnd) + tkinter.BaseWidget._subst_format_dnd = _subst_format_dnd + tkinter.BaseWidget._subst_format_str_dnd = _subst_format_str_dnd + + def _substitute_dnd(self, *args): + """Internal function.""" + if len(args) != len(self._subst_format_dnd): + return args + def getint_event(s): + try: + return int(s) + except ValueError: + return s + def splitlist_event(s): + try: + return self.tk.splitlist(s) + except ValueError: + return s + # valid percent substitutions for DnD event types + # (tested with tkdnd-2.8 on debian jessie): + # <> : %W, %X, %Y %e, %t + # <> : %A, %W, %e + # <> : all except : %D (always empty) + # <> : all except %D (always empty) + # <> :all except %D (always empty) + # <> : all + A, a, b, C, c, CST, CTT, D, e, L, m, ST, T, t, TT, W, X, Y = args + ev = DnDEvent() + ev.action = A + ev.actions = splitlist_event(a) + ev.button = getint_event(b) + ev.code = C + ev.codes = splitlist_event(c) + ev.commonsourcetypes = splitlist_event(CST) + ev.commontargettypes = splitlist_event(CTT) + ev.data = D + ev.name = e + ev.types = splitlist_event(L) + ev.modifiers = splitlist_event(m) + ev.supportedsourcetypes = splitlist_event(ST) + ev.sourcetypes = splitlist_event(t) + ev.type = T + ev.supportedtargettypes = splitlist_event(TT) + try: + ev.widget = self.nametowidget(W) + except KeyError: + ev.widget = W + ev.x_root = getint_event(X) + ev.y_root = getint_event(Y) + + + + return (ev,) + tkinter.BaseWidget._substitute_dnd = _substitute_dnd + + def _dnd_bind(self, what, sequence, func, add, needcleanup=True): + """Internal function.""" + if isinstance(func, str): + self.tk.call(what + (sequence, func)) + elif func: + funcid = self._register(func, self._substitute_dnd, needcleanup) + # FIXME: why doesn't the "return 'break'" mechanism work here?? + #cmd = ('%sif {"[%s %s]" == "break"} break\n' % (add and '+' or '', + # funcid, self._subst_format_str_dnd)) + cmd = '%s%s %s' %(add and '+' or '', funcid, + self._subst_format_str_dnd) + self.tk.call(what + (sequence, cmd)) + return funcid + elif sequence: + return self.tk.call(what + (sequence,)) + else: + return self.tk.splitlist(self.tk.call(what)) + tkinter.BaseWidget._dnd_bind = _dnd_bind + + def dnd_bind(self, sequence=None, func=None, add=None): + '''Bind to this widget at drag and drop event SEQUENCE a call + to function FUNC. + SEQUENCE may be one of the following: + <>, <>, <>, <>, + <>, <>, <> . + The callbacks for the > events, with the exception of + <>, should always return an action (i.e. one of COPY, + MOVE, LINK, ASK or PRIVATE). + The callback for the <> event must return a tuple + containing three elements: the drop action(s) supported by the + drag source, the format type(s) that the data can be dropped as and + finally the data that shall be dropped. Each of these three elements + may be a tuple of strings or a single string.''' + return self._dnd_bind(('bind', self._w), sequence, func, add) + tkinter.BaseWidget.dnd_bind = dnd_bind + + def drag_source_register(self, button=None, *dndtypes): + '''This command will register SELF as a drag source. + A drag source is a widget than can start a drag action. This command + can be executed multiple times on a widget. + When SELF is registered as a drag source, optional DNDTYPES can be + provided. These DNDTYPES will be provided during a drag action, and + it can contain platform independent or platform specific types. + Platform independent are DND_Text for dropping text portions and + DND_Files for dropping a list of files (which can contain one or + multiple files) on SELF. However, these types are + indicative/informative. SELF can initiate a drag action with even a + different type list. Finally, button is the mouse button that will be + used for starting the drag action. It can have any of the values 1 + (left mouse button), 2 (middle mouse button - wheel) and 3 + (right mouse button). If button is not specified, it defaults to 1.''' + # hack to fix a design bug from the first version + if button is None: + button = 1 + else: + try: + button = int(button) + except ValueError: + # no button defined, button is actually + # something like DND_TEXT + dndtypes = (button,) + dndtypes + button = 1 + self.tk.call( + 'tkdnd::drag_source', 'register', self._w, dndtypes, button) + tkinter.BaseWidget.drag_source_register = drag_source_register + + def drag_source_unregister(self): + '''This command will stop SELF from being a drag source. Thus, window + will stop receiving events related to drag operations. It is an error + to use this command for a window that has not been registered as a + drag source with drag_source_register().''' + self.tk.call('tkdnd::drag_source', 'unregister', self._w) + tkinter.BaseWidget.drag_source_unregister = drag_source_unregister + + def drop_target_register(self, *dndtypes): + '''This command will register SELF as a drop target. A drop target is + a widget than can accept a drop action. This command can be executed + multiple times on a widget. When SELF is registered as a drop target, + optional DNDTYPES can be provided. These types list can contain one or + more types that SELF will accept during a drop action, and it can + contain platform independent or platform specific types. Platform + independent are DND_Text for dropping text portions and DND_Files for + dropping a list of files (which can contain one or multiple files) on + SELF.''' + self.tk.call('tkdnd::drop_target', 'register', self._w, dndtypes) + tkinter.BaseWidget.drop_target_register = drop_target_register + + def drop_target_unregister(self): + '''This command will stop SELF from being a drop target. Thus, SELF + will stop receiving events related to drop operations. It is an error + to use this command for a window that has not been registered as a + drop target with drop_target_register().''' + self.tk.call('tkdnd::drop_target', 'unregister', self._w) + tkinter.BaseWidget.drop_target_unregister = drop_target_unregister + + def platform_independent_types(self, *dndtypes): + '''This command will accept a list of types that can contain platform + independnent or platform specific types. A new list will be returned, + where each platform specific type in DNDTYPES will be substituted by + one or more platform independent types. Thus, the returned list may + have more elements than DNDTYPES.''' + return self.tk.split(self.tk.call( + 'tkdnd::platform_independent_types', dndtypes)) + tkinter.BaseWidget.platform_independent_types = platform_independent_types + + def platform_specific_types(self, *dndtypes): + '''This command will accept a list of types that can contain platform + independnent or platform specific types. A new list will be returned, + where each platform independent type in DNDTYPES will be substituted + by one or more platform specific types. Thus, the returned list may + have more elements than DNDTYPES.''' + return self.tk.split(self.tk.call( + 'tkdnd::platform_specific_types', dndtypes)) + tkinter.BaseWidget.platform_specific_types = platform_specific_types + + def get_dropfile_tempdir(self): + '''This command will return the temporary directory used by TkDND for + storing temporary files. When the package is loaded, this temporary + directory will be initialised to a proper directory according to the + operating system. This default initial value can be changed to be the + value of the following environmental variables: + TKDND_TEMP_DIR, TEMP, TMP.''' + return self.tk.call('tkdnd::GetDropFileTempDirectory') + tkinter.BaseWidget.get_dropfile_tempdir = get_dropfile_tempdir + + def set_dropfile_tempdir(self, tempdir): + '''This command will change the temporary directory used by TkDND for + storing temporary files to TEMPDIR.''' + self.tk.call('tkdnd::SetDropFileTempDirectory', tempdir) + tkinter.BaseWidget.set_dropfile_tempdir = set_dropfile_tempdir + +####################################################################### +#### The main window classes that enable Drag & Drop for #### +#### themselves and all their descendant widgets: #### +####################################################################### + +class Tk(tkinter.Tk, DnDWrapper): + '''Creates a new instance of a tkinter.Tk() window; all methods of the + DnDWrapper class apply to this window and all its descendants.''' + def __init__(self, *args, **kw): + tkinter.Tk.__init__(self, *args, **kw) + self.TkdndVersion = _require(self) + +class TixTk(tix.Tk, DnDWrapper): + '''Creates a new instance of a tix.Tk() window; all methods of the + DnDWrapper class apply to this window and all its descendants.''' + def __init__(self, *args, **kw): + tix.Tk.__init__(self, *args, **kw) + self.TkdndVersion = _require(self) diff --git a/gui_data/tkinterdnd2/__init__.py b/gui_data/tkinterdnd2/__init__.py new file mode 100644 index 0000000..17f037d --- /dev/null +++ b/gui_data/tkinterdnd2/__init__.py @@ -0,0 +1,25 @@ +# dnd actions +PRIVATE = 'private' +NONE = 'none' +ASK = 'ask' +COPY = 'copy' +MOVE = 'move' +LINK = 'link' +REFUSE_DROP = 'refuse_drop' + +# dnd types +DND_TEXT = 'DND_Text' +DND_FILES = 'DND_Files' +DND_ALL = '*' +CF_UNICODETEXT = 'CF_UNICODETEXT' +CF_TEXT = 'CF_TEXT' +CF_HDROP = 'CF_HDROP' + +FileGroupDescriptor = 'FileGroupDescriptor - FileContents'# ?? +FileGroupDescriptorW = 'FileGroupDescriptorW - FileContents'# ?? + +from . import TkinterDnD +from .TkinterDnD import Tk +from .TkinterDnD import TixTk + + diff --git a/gui_data/tkinterdnd2/tkdnd/linux64/libtkdnd2.9.2.so b/gui_data/tkinterdnd2/tkdnd/linux64/libtkdnd2.9.2.so new file mode 100644 index 0000000000000000000000000000000000000000..03dbd1bb1f3ed549879f17db070a3d3b6f42538c GIT binary patch literal 55135 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 literal 0 HcmV?d00001 diff --git a/gui_data/tkinterdnd2/tkdnd/linux64/pkgIndex.tcl b/gui_data/tkinterdnd2/tkdnd/linux64/pkgIndex.tcl new file mode 100644 index 0000000..9edcc8f --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/linux64/pkgIndex.tcl @@ -0,0 +1,10 @@ +# +# Tcl package index file +# +package ifneeded tkdnd 2.9.2 \ + "source \{$dir/tkdnd.tcl\} ; \ + tkdnd::initialise \{$dir\} libtkdnd2.9.2.so tkdnd" + +package ifneeded tkdnd::utils 2.9.2 \ + "source \{$dir/tkdnd_utils.tcl\} ; \ + package provide tkdnd::utils 2.9.2" diff --git a/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd.tcl b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd.tcl new file mode 100644 index 0000000..12d1dd2 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd.tcl @@ -0,0 +1,469 @@ +# +# tkdnd.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +package require Tk + +namespace eval ::tkdnd { + variable _topw ".drag" + variable _tabops + variable _state + variable _x0 + variable _y0 + variable _platform_namespace + variable _drop_file_temp_dir + variable _auto_update 1 + variable _dx 3 ;# The difference in pixels before a drag is initiated. + variable _dy 3 ;# The difference in pixels before a drag is initiated. + + variable _windowingsystem + + bind TkDND_Drag1 {tkdnd::_begin_drag press 1 %W %s %X %Y %x %y} + bind TkDND_Drag1 {tkdnd::_begin_drag motion 1 %W %s %X %Y %x %y} + bind TkDND_Drag2 {tkdnd::_begin_drag press 2 %W %s %X %Y %x %y} + bind TkDND_Drag2 {tkdnd::_begin_drag motion 2 %W %s %X %Y %x %y} + bind TkDND_Drag3 {tkdnd::_begin_drag press 3 %W %s %X %Y %x %y} + bind TkDND_Drag3 {tkdnd::_begin_drag motion 3 %W %s %X %Y %x %y} + + # ---------------------------------------------------------------------------- + # Command tkdnd::initialise: Initialise the TkDND package. + # ---------------------------------------------------------------------------- + proc initialise { dir PKG_LIB_FILE PACKAGE_NAME} { + variable _platform_namespace + variable _drop_file_temp_dir + variable _windowingsystem + global env + + switch [tk windowingsystem] { + x11 { + set _windowingsystem x11 + } + win32 - + windows { + set _windowingsystem windows + } + aqua { + set _windowingsystem aqua + } + default { + error "unknown Tk windowing system" + } + } + + ## Get User's home directory: We try to locate the proper path from a set of + ## environmental variables... + foreach var {HOME HOMEPATH USERPROFILE ALLUSERSPROFILE APPDATA} { + if {[info exists env($var)]} { + if {[file isdirectory $env($var)]} { + set UserHomeDir $env($var) + break + } + } + } + + ## Should use [tk windowingsystem] instead of tcl platform array: + ## OS X returns "unix," but that's not useful because it has its own + ## windowing system, aqua + ## Under windows we have to also combine HOMEDRIVE & HOMEPATH... + if {![info exists UserHomeDir] && + [string equal $_windowingsystem windows] && + [info exists env(HOMEDRIVE)] && [info exists env(HOMEPATH)]} { + if {[file isdirectory $env(HOMEDRIVE)$env(HOMEPATH)]} { + set UserHomeDir $env(HOMEDRIVE)$env(HOMEPATH) + } + } + ## Have we located the needed path? + if {![info exists UserHomeDir]} { + set UserHomeDir [pwd] + } + set UserHomeDir [file normalize $UserHomeDir] + + ## Try to locate a temporary directory... + foreach var {TKDND_TEMP_DIR TEMP TMP} { + if {[info exists env($var)]} { + if {[file isdirectory $env($var)] && [file writable $env($var)]} { + set _drop_file_temp_dir $env($var) + break + } + } + } + if {![info exists _drop_file_temp_dir]} { + foreach _dir [list "$UserHomeDir/Local Settings/Temp" \ + "$UserHomeDir/AppData/Local/Temp" \ + /tmp \ + C:/WINDOWS/Temp C:/Temp C:/tmp \ + D:/WINDOWS/Temp D:/Temp D:/tmp] { + if {[file isdirectory $_dir] && [file writable $_dir]} { + set _drop_file_temp_dir $_dir + break + } + } + } + if {![info exists _drop_file_temp_dir]} { + set _drop_file_temp_dir $UserHomeDir + } + set _drop_file_temp_dir [file native $_drop_file_temp_dir] + + source $dir/tkdnd_generic.tcl + switch $_windowingsystem { + x11 { + source $dir/tkdnd_unix.tcl + set _platform_namespace xdnd + } + win32 - + windows { + source $dir/tkdnd_windows.tcl + set _platform_namespace olednd + } + aqua { + source $dir/tkdnd_macosx.tcl + set _platform_namespace macdnd + } + default { + error "unknown Tk windowing system" + } + } + load $dir/$PKG_LIB_FILE $PACKAGE_NAME + source $dir/tkdnd_compat.tcl + ${_platform_namespace}::initialise + };# initialise + + proc GetDropFileTempDirectory { } { + variable _drop_file_temp_dir + return $_drop_file_temp_dir + } + proc SetDropFileTempDirectory { dir } { + variable _drop_file_temp_dir + set _drop_file_temp_dir $dir + } + +};# namespace ::tkdnd + +# ---------------------------------------------------------------------------- +# Command tkdnd::drag_source +# ---------------------------------------------------------------------------- +proc ::tkdnd::drag_source { mode path { types {} } { event 1 } + { tagprefix TkDND_Drag } } { + set tags [bindtags $path] + set idx [lsearch $tags ${tagprefix}$event] + switch -- $mode { + register { + if { $idx != -1 } { + ## No need to do anything! + # bindtags $path [lreplace $tags $idx $idx ${tagprefix}$event] + } else { + bindtags $path [linsert $tags 1 ${tagprefix}$event] + } + _drag_source_update_types $path $types + } + unregister { + if { $idx != -1 } { + bindtags $path [lreplace $tags $idx $idx] + } + } + } +};# tkdnd::drag_source + +proc ::tkdnd::_drag_source_update_types { path types } { + set types [platform_specific_types $types] + set old_types [bind $path <>] + foreach type $types { + if {[lsearch $old_types $type] < 0} {lappend old_types $type} + } + bind $path <> $old_types +};# ::tkdnd::_drag_source_update_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::drop_target +# ---------------------------------------------------------------------------- +proc ::tkdnd::drop_target { mode path { types {} } } { + variable _windowingsystem + set types [platform_specific_types $types] + switch -- $mode { + register { + switch $_windowingsystem { + x11 { + _register_types $path [winfo toplevel $path] $types + } + win32 - + windows { + _RegisterDragDrop $path + bind $path {+ tkdnd::_RevokeDragDrop %W} + } + aqua { + macdnd::registerdragwidget [winfo toplevel $path] $types + } + default { + error "unknown Tk windowing system" + } + } + set old_types [bind $path <>] + set new_types {} + foreach type $types { + if {[lsearch -exact $old_types $type] < 0} {lappend new_types $type} + } + if {[llength $new_types]} { + bind $path <> [concat $old_types $new_types] + } + } + unregister { + switch $_windowingsystem { + x11 { + } + win32 - + windows { + _RevokeDragDrop $path + } + aqua { + error todo + } + default { + error "unknown Tk windowing system" + } + } + bind $path <> {} + } + } +};# tkdnd::drop_target + +# ---------------------------------------------------------------------------- +# Command tkdnd::_begin_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_begin_drag { event button source state X Y x y } { + variable _x0 + variable _y0 + variable _state + + switch -- $event { + press { + set _x0 $X + set _y0 $Y + set _state "press" + } + motion { + if { ![info exists _state] } { + # This is just extra protection. There seem to be + # rare cases where the motion comes before the press. + return + } + if { [string equal $_state "press"] } { + variable _dx + variable _dy + if { abs($_x0-$X) > ${_dx} || abs($_y0-$Y) > ${_dy} } { + set _state "done" + _init_drag $button $source $state $X $Y $x $y + } + } + } + } +};# tkdnd::_begin_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::_init_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_init_drag { button source state rootX rootY X Y } { + # Call the <> binding. + set cmd [bind $source <>] + # puts "CMD: $cmd" + if {[string length $cmd]} { + set cmd [string map [list %W $source %X $rootX %Y $rootY %x $X %y $Y \ + %S $state %e <> %A \{\} %% % \ + %t [bind $source <>]] $cmd] + set code [catch {uplevel \#0 $cmd} info options] + # puts "CODE: $code ---- $info" + switch -exact -- $code { + 0 {} + 3 - 4 { + # FRINK: nocheck + return + } + default { + return -options $options $info + } + } + + set len [llength $info] + if {$len == 3} { + foreach { actions types _data } $info { break } + set types [platform_specific_types $types] + set data [list] + foreach type $types { + lappend data $_data + } + unset _data + } elseif {$len == 2} { + foreach { actions _data } $info { break } + set data [list]; set types [list] + foreach {t d} $_data { + foreach t [platform_specific_types $t] { + lappend types $t; lappend data $d + } + } + unset _data t d + } else { + if {$len == 1 && [string equal [lindex $actions 0] "refuse_drop"]} { + return + } + error "not enough items in the result of the <>\ + event binding. Either 2 or 3 items are expected. The command + executed was: \"$cmd\"\nResult was: \"$info\"" + } + set action refuse_drop + variable _windowingsystem + # puts "Source: \"$source\"" + # puts "Types: \"[join $types {", "}]\"" + # puts "Actions: \"[join $actions {", "}]\"" + # puts "Button: \"$button\"" + # puts "Data: \"[string range $data 0 100]\"" + switch $_windowingsystem { + x11 { + set action [xdnd::_dodragdrop $source $actions $types $data $button] + } + win32 - + windows { + set action [_DoDragDrop $source $actions $types $data $button] + } + aqua { + set action [macdnd::dodragdrop $source $actions $types $data $button] + } + default { + error "unknown Tk windowing system" + } + } + ## Call _end_drag to notify the widget of the result of the drag + ## operation... + _end_drag $button $source {} $action {} $data {} $state $rootX $rootY $X $Y + } +};# tkdnd::_init_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::_end_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_end_drag { button source target action type data result + state rootX rootY X Y } { + set rootX 0 + set rootY 0 + # Call the <> binding. + set cmd [bind $source <>] + if {[string length $cmd]} { + set cmd [string map [list %W $source %X $rootX %Y $rootY %x $X %y $Y %% % \ + %S $state %e <> %A \{$action\}] $cmd] + set info [uplevel \#0 $cmd] + # if { $info != "" } { + # variable _windowingsystem + # foreach { actions types data } $info { break } + # set types [platform_specific_types $types] + # switch $_windowingsystem { + # x11 { + # error "dragging from Tk widgets not yet supported" + # } + # win32 - + # windows { + # set action [_DoDragDrop $source $actions $types $data $button] + # } + # aqua { + # macdnd::dodragdrop $source $actions $types $data + # } + # default { + # error "unknown Tk windowing system" + # } + # } + # ## Call _end_drag to notify the widget of the result of the drag + # ## operation... + # _end_drag $button $source {} $action {} $data {} $state $rootX $rootY + # } + } +};# tkdnd::_end_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_specific_types { types } { + variable _platform_namespace + ${_platform_namespace}::platform_specific_types $types +}; # tkdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + variable _platform_namespace + ${_platform_namespace}::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_specific_type { type } { + variable _platform_namespace + ${_platform_namespace}::platform_specific_type $type +}; # tkdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_type { type } { + variable _platform_namespace + ${_platform_namespace}::platform_independent_type $type +}; # tkdnd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::bytes_to_string +# ---------------------------------------------------------------------------- +proc ::tkdnd::bytes_to_string { bytes } { + set string {} + foreach byte $bytes { + append string [binary format c $byte] + } + return $string +};# tkdnd::bytes_to_string + +# ---------------------------------------------------------------------------- +# Command tkdnd::urn_unquote +# ---------------------------------------------------------------------------- +proc ::tkdnd::urn_unquote {url} { + set result "" + set start 0 + while {[regexp -start $start -indices {%[0-9a-fA-F]{2}} $url match]} { + foreach {first last} $match break + append result [string range $url $start [expr {$first - 1}]] + append result [format %c 0x[string range $url [incr first] $last]] + set start [incr last] + } + append result [string range $url $start end] + return [encoding convertfrom utf-8 $result] +};# tkdnd::urn_unquote diff --git a/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_compat.tcl b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_compat.tcl new file mode 100644 index 0000000..efc96f7 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_compat.tcl @@ -0,0 +1,160 @@ +# +# tkdnd_compat.tcl -- +# +# This file implements some utility procedures, to support older versions +# of the TkDND package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval compat { + +};# namespace compat + +# ---------------------------------------------------------------------------- +# Command ::dnd +# ---------------------------------------------------------------------------- +proc ::dnd {method window args} { + switch $method { + bindtarget { + switch [llength $args] { + 0 {return [tkdnd::compat::bindtarget0 $window]} + 1 {return [tkdnd::compat::bindtarget1 $window [lindex $args 0]]} + 2 {return [tkdnd::compat::bindtarget2 $window [lindex $args 0] \ + [lindex $args 1]]} + 3 {return [tkdnd::compat::bindtarget3 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2]]} + 4 {return [tkdnd::compat::bindtarget4 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2] [lindex $args 3]]} + } + } + cleartarget { + return [tkdnd::compat::cleartarget $window] + } + bindsource { + switch [llength $args] { + 0 {return [tkdnd::compat::bindsource0 $window]} + 1 {return [tkdnd::compat::bindsource1 $window [lindex $args 0]]} + 2 {return [tkdnd::compat::bindsource2 $window [lindex $args 0] \ + [lindex $args 1]]} + 3 {return [tkdnd::compat::bindsource3 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2]]} + } + } + clearsource { + return [tkdnd::compat::clearsource $window] + } + drag { + return [tkdnd::_init_drag 1 $window "press" 0 0 0 0] + } + } + error "invalid number of arguments!" +};# ::dnd + +# ---------------------------------------------------------------------------- +# Command compat::bindtarget +# ---------------------------------------------------------------------------- +proc compat::bindtarget0 {window} { + return [bind $window <>] +};# compat::bindtarget0 + +proc compat::bindtarget1 {window type} { + return [bindtarget2 $window $type ] +};# compat::bindtarget1 + +proc compat::bindtarget2 {window type event} { + switch $event { + {return [bind $window <>]} + {return [bind $window <>]} + {return [bind $window <>]} + {return [bind $window <>]} + } +};# compat::bindtarget2 + +proc compat::bindtarget3 {window type event script} { + set type [normalise_type $type] + ::tkdnd::drop_target register $window [list $type] + switch $event { + {return [bind $window <> $script]} + {return [bind $window <> $script]} + {return [bind $window <> $script]} + {return [bind $window <> $script]} + } +};# compat::bindtarget3 + +proc compat::bindtarget4 {window type event script priority} { + return [bindtarget3 $window $type $event $script] +};# compat::bindtarget4 + +proc compat::normalise_type { type } { + switch $type { + text/plain - + {text/plain;charset=UTF-8} - + Text {return DND_Text} + text/uri-list - + Files {return DND_Files} + default {return $type} + } +};# compat::normalise_type + +# ---------------------------------------------------------------------------- +# Command compat::bindsource +# ---------------------------------------------------------------------------- +proc compat::bindsource0 {window} { + return [bind $window <>] +};# compat::bindsource0 + +proc compat::bindsource1 {window type} { + return [bindsource2 $window $type ] +};# compat::bindsource1 + +proc compat::bindsource2 {window type script} { + set type [normalise_type $type] + ::tkdnd::drag_source register $window $type + bind $window <> "list {copy} {%t} \[$script\]" +};# compat::bindsource2 + +proc compat::bindsource3 {window type script priority} { + return [bindsource2 $window $type $script] +};# compat::bindsource3 + +# ---------------------------------------------------------------------------- +# Command compat::cleartarget +# ---------------------------------------------------------------------------- +proc compat::cleartarget {window} { +};# compat::cleartarget + +# ---------------------------------------------------------------------------- +# Command compat::clearsource +# ---------------------------------------------------------------------------- +proc compat::clearsource {window} { +};# compat::clearsource diff --git a/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_generic.tcl b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_generic.tcl new file mode 100644 index 0000000..698b464 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_generic.tcl @@ -0,0 +1,520 @@ +# +# tkdnd_generic.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval generic { + variable _types {} + variable _typelist {} + variable _codelist {} + variable _actionlist {} + variable _pressedkeys {} + variable _action {} + variable _common_drag_source_types {} + variable _common_drop_target_types {} + variable _drag_source {} + variable _drop_target {} + + variable _last_mouse_root_x 0 + variable _last_mouse_root_y 0 + + variable _tkdnd2platform + variable _platform2tkdnd + + proc debug {msg} { + puts $msg + };# debug + + proc initialise { } { + };# initialise + + proc initialise_platform_to_tkdnd_types { types } { + variable _platform2tkdnd + variable _tkdnd2platform + set _platform2tkdnd [dict create {*}$types] + set _tkdnd2platform [dict create] + foreach type [dict keys $_platform2tkdnd] { + dict lappend _tkdnd2platform [dict get $_platform2tkdnd $type] $type + } + };# initialise_platform_to_tkdnd_types + + proc initialise_tkdnd_to_platform_types { types } { + variable _tkdnd2platform + set _tkdnd2platform [dict create {*}$types] + };# initialise_tkdnd_to_platform_types + +};# namespace generic + +# ---------------------------------------------------------------------------- +# Command generic::HandleEnter +# ---------------------------------------------------------------------------- +proc generic::HandleEnter { drop_target drag_source typelist codelist + actionlist pressedkeys } { + variable _typelist; set _typelist $typelist + variable _pressedkeys; set _pressedkeys $pressedkeys + variable _action; set _action refuse_drop + variable _common_drag_source_types; set _common_drag_source_types {} + variable _common_drop_target_types; set _common_drop_target_types {} + variable _actionlist + variable _drag_source; set _drag_source $drag_source + variable _drop_target; set _drop_target {} + variable _actionlist; set _actionlist $actionlist + variable _codelist set _codelist $codelist + + variable _last_mouse_root_x; set _last_mouse_root_x 0 + variable _last_mouse_root_y; set _last_mouse_root_y 0 + # debug "\n===============================================================" + # debug "generic::HandleEnter: drop_target=$drop_target,\ + # drag_source=$drag_source,\ + # typelist=$typelist" + # debug "generic::HandleEnter: ACTION: default" + return default +};# generic::HandleEnter + +# ---------------------------------------------------------------------------- +# Command generic::HandlePosition +# ---------------------------------------------------------------------------- +proc generic::HandlePosition { drop_target drag_source pressedkeys + rootX rootY { time 0 } } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + + # debug "generic::HandlePosition: drop_target=$drop_target,\ + # _drop_target=$_drop_target, rootX=$rootX, rootY=$rootY" + + if {![info exists _drag_source] && ![string length $_drag_source]} { + # debug "generic::HandlePosition: no or empty _drag_source:\ + # return refuse_drop" + return refuse_drop + } + + if {$drag_source ne "" && $drag_source ne $_drag_source} { + debug "generic position event from unexpected source: $_drag_source\ + != $drag_source" + return refuse_drop + } + + set _pressedkeys $pressedkeys + + ## Does the new drop target support any of our new types? + # foreach {common_drag_source_types common_drop_target_types} \ + # [GetWindowCommonTypes $drop_target $_typelist] {break} + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [FindWindowWithCommonTypes $drop_target $_typelist] {break} + set data [GetDroppedData $time] + + # debug "\t($_drop_target) -> ($drop_target)" + if {$drop_target != $_drop_target} { + if {[string length $_drop_target]} { + ## Call the <> event. + # debug "\t<> on $_drop_target" + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A \{$_action\} %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D \{\} %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + uplevel \#0 $cmd + } + } + set _drop_target $drop_target + set _action refuse_drop + + if {[llength $common_drag_source_types]} { + set _action [lindex $_actionlist 0] + set _common_drag_source_types $common_drag_source_types + set _common_drop_target_types $common_drop_target_types + ## Drop target supports at least one type. Send a <>. + # puts "<> -> $drop_target" + set cmd [bind $drop_target <>] + if {[string length $cmd]} { + focus $drop_target + set cmd [string map [list %W $drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + } + } + } + + set _drop_target {} + if {[llength $common_drag_source_types]} { + set _common_drag_source_types $common_drag_source_types + set _common_drop_target_types $common_drop_target_types + set _drop_target $drop_target + ## Drop target supports at least one type. Send a <>. + set cmd [bind $drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + } + # Return values: copy, move, link, ask, private, refuse_drop, default + # debug "generic::HandlePosition: ACTION: $_action" + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action +};# generic::HandlePosition + +# ---------------------------------------------------------------------------- +# Command generic::HandleLeave +# ---------------------------------------------------------------------------- +proc generic::HandleLeave { } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + variable _last_mouse_root_x + variable _last_mouse_root_y + if {![info exists _drop_target]} {set _drop_target {}} + # debug "generic::HandleLeave: _drop_target=$_drop_target" + if {[info exists _drop_target] && [string length $_drop_target]} { + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target \ + %X $_last_mouse_root_x %Y $_last_mouse_root_y \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A \{$_action\} %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D \{\} %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + } + foreach var {_types _typelist _actionlist _pressedkeys _action + _common_drag_source_types _common_drop_target_types + _drag_source _drop_target} { + set $var {} + } +};# generic::HandleLeave + +# ---------------------------------------------------------------------------- +# Command generic::HandleDrop +# ---------------------------------------------------------------------------- +proc generic::HandleDrop {drop_target drag_source pressedkeys rootX rootY time } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + variable _last_mouse_root_x + variable _last_mouse_root_y + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + + set _pressedkeys $pressedkeys + + # puts "generic::HandleDrop: $time" + + if {![info exists _drag_source] && ![string length $_drag_source]} { + return refuse_drop + } + if {![info exists _drop_target] && ![string length $_drop_target]} { + return refuse_drop + } + if {![llength $_common_drag_source_types]} {return refuse_drop} + ## Get the dropped data. + set data [GetDroppedData $time] + ## Try to select the most specific <> event. + foreach type [concat $_common_drag_source_types $_common_drop_target_types] { + set type [platform_independent_type $type] + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + # Return values: copy, move, link, ask, private, refuse_drop + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action + } + } + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + # Return values: copy, move, link, ask, private, refuse_drop + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action +};# generic::HandleDrop + +# ---------------------------------------------------------------------------- +# Command generic::GetWindowCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetWindowCommonTypes { win typelist } { + set types [bind $win <>] + # debug ">> Accepted types: $win $_types" + set common_drag_source_types {} + set common_drop_target_types {} + if {[llength $types]} { + ## Examine the drop target types, to find at least one match with the drag + ## source types... + set supported_types [supported_types $typelist] + foreach type $types { + foreach matched [lsearch -glob -all -inline $supported_types $type] { + ## Drop target supports this type. + lappend common_drag_source_types $matched + lappend common_drop_target_types $type + } + } + } + list $common_drag_source_types $common_drop_target_types +};# generic::GetWindowCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::FindWindowWithCommonTypes +# ---------------------------------------------------------------------------- +proc generic::FindWindowWithCommonTypes { win typelist } { + set toplevel [winfo toplevel $win] + while {![string equal $win $toplevel]} { + foreach {common_drag_source_types common_drop_target_types} \ + [GetWindowCommonTypes $win $typelist] {break} + if {[llength $common_drag_source_types]} { + return [list $win $common_drag_source_types $common_drop_target_types] + } + set win [winfo parent $win] + } + ## We have reached the toplevel, which may be also a target (SF Bug #30) + foreach {common_drag_source_types common_drop_target_types} \ + [GetWindowCommonTypes $win $typelist] {break} + if {[llength $common_drag_source_types]} { + return [list $win $common_drag_source_types $common_drop_target_types] + } + return { {} {} {} } +};# generic::FindWindowWithCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::GetDroppedData +# ---------------------------------------------------------------------------- +proc generic::GetDroppedData { time } { + variable _dropped_data + return $_dropped_data +};# generic::GetDroppedData + +# ---------------------------------------------------------------------------- +# Command generic::SetDroppedData +# ---------------------------------------------------------------------------- +proc generic::SetDroppedData { data } { + variable _dropped_data + set _dropped_data $data +};# generic::SetDroppedData + +# ---------------------------------------------------------------------------- +# Command generic::GetDragSource +# ---------------------------------------------------------------------------- +proc generic::GetDragSource { } { + variable _drag_source + return $_drag_source +};# generic::GetDragSource + +# ---------------------------------------------------------------------------- +# Command generic::GetDropTarget +# ---------------------------------------------------------------------------- +proc generic::GetDropTarget { } { + variable _drop_target + return $_drop_target +};# generic::GetDropTarget + +# ---------------------------------------------------------------------------- +# Command generic::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetDragSourceCommonTypes { } { + variable _common_drag_source_types + return $_common_drag_source_types +};# generic::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::GetDropTargetCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetDropTargetCommonTypes { } { + variable _common_drag_source_types + return $_common_drag_source_types +};# generic::GetDropTargetCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::platform_specific_types +# ---------------------------------------------------------------------------- +proc generic::platform_specific_types { types } { + set new_types {} + foreach type $types { + set new_types [concat $new_types [platform_specific_type $type]] + } + return $new_types +}; # generic::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command generic::platform_specific_type +# ---------------------------------------------------------------------------- +proc generic::platform_specific_type { type } { + variable _tkdnd2platform + if {[dict exists $_tkdnd2platform $type]} { + return [dict get $_tkdnd2platform $type] + } + list $type +}; # generic::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + set new_types {} + foreach type $types { + set new_types [concat $new_types [platform_independent_type $type]] + } + return $new_types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command generic::platform_independent_type +# ---------------------------------------------------------------------------- +proc generic::platform_independent_type { type } { + variable _platform2tkdnd + if {[dict exists $_platform2tkdnd $type]} { + return [dict get $_platform2tkdnd $type] + } + return $type +}; # generic::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command generic::supported_types +# ---------------------------------------------------------------------------- +proc generic::supported_types { types } { + set new_types {} + foreach type $types { + if {[supported_type $type]} {lappend new_types $type} + } + return $new_types +}; # generic::supported_types + +# ---------------------------------------------------------------------------- +# Command generic::supported_type +# ---------------------------------------------------------------------------- +proc generic::supported_type { type } { + variable _platform2tkdnd + if {[dict exists $_platform2tkdnd $type]} { + return 1 + } + return 0 +}; # generic::supported_type diff --git a/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_macosx.tcl b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_macosx.tcl new file mode 100644 index 0000000..307f6da --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_macosx.tcl @@ -0,0 +1,144 @@ +# +# tkdnd_macosx.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. + +# This software is copyrighted by: +# Georgios Petasis, Athens, Greece. +# e-mail: petasisg@yahoo.gr, petasis@iit.demokritos.gr +# +# Mac portions (c) 2009 Kevin Walzer/WordTech Communications LLC, +# kw@codebykevin.com +# +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +#basic API for Mac Drag and Drop + +#two data types supported: strings and file paths + +#two commands at C level: ::tkdnd::macdnd::registerdragwidget, ::tkdnd::macdnd::unregisterdragwidget + +#data retrieval mechanism: text or file paths are copied from drag clipboard to system clipboard and retrieved via [clipboard get]; array of file paths is converted to single tab-separated string, can be split into Tcl list + +if {[tk windowingsystem] eq "aqua" && "AppKit" ni [winfo server .]} { + error {TkAqua Cocoa required} +} + +namespace eval macdnd { + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + NSPasteboardTypeString DND_Text \ + NSFilenamesPboardType DND_Files \ + NSPasteboardTypeHTML DND_HTML \ + ] + };# initialise + +};# namespace macdnd + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleEnter +# ---------------------------------------------------------------------------- +proc macdnd::HandleEnter { path drag_source typelist { data {} } } { + variable _pressedkeys + variable _actionlist + set _pressedkeys 1 + set _actionlist { copy move link ask private } + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \ + $_actionlist $_pressedkeys +};# macdnd::HandleEnter + +# ---------------------------------------------------------------------------- +# Command macdnd::HandlePosition +# ---------------------------------------------------------------------------- +proc macdnd::HandlePosition { drop_target rootX rootY {drag_source {}} } { + variable _pressedkeys + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + ::tkdnd::generic::HandlePosition $drop_target $drag_source \ + $_pressedkeys $rootX $rootY +};# macdnd::HandlePosition + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleLeave +# ---------------------------------------------------------------------------- +proc macdnd::HandleLeave { args } { + ::tkdnd::generic::HandleLeave +};# macdnd::HandleLeave + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleDrop +# ---------------------------------------------------------------------------- +proc macdnd::HandleDrop { drop_target data args } { + variable _pressedkeys + variable _last_mouse_root_x + variable _last_mouse_root_y + ## Get the dropped data... + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \ + $_last_mouse_root_x $_last_mouse_root_y 0 +};# macdnd::HandleDrop + +# ---------------------------------------------------------------------------- +# Command macdnd::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc macdnd::GetDragSourceCommonTypes { } { + ::tkdnd::generic::GetDragSourceCommonTypes +};# macdnd::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc macdnd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # macdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc macdnd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # macdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc macdnd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # macdnd::platform_independent_type diff --git a/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_unix.tcl b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_unix.tcl new file mode 100644 index 0000000..56d17c4 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_unix.tcl @@ -0,0 +1,810 @@ +# +# tkdnd_unix.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval xdnd { + variable _dragging 0 + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + text/plain\;charset=utf-8 DND_Text \ + UTF8_STRING DND_Text \ + text/plain DND_Text \ + STRING DND_Text \ + TEXT DND_Text \ + COMPOUND_TEXT DND_Text \ + text/uri-list DND_Files \ + text/html\;charset=utf-8 DND_HTML \ + text/html DND_HTML \ + application/x-color DND_Color \ + ] + };# initialise + +};# namespace xdnd + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndEnter +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndEnter { path drag_source typelist time { data {} } } { + variable _pressedkeys + variable _actionlist + variable _typelist + set _pressedkeys 1 + set _actionlist { copy move link ask private } + set _typelist $typelist + # puts "xdnd::HandleXdndEnter: $time" + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \ + $_actionlist $_pressedkeys +};# xdnd::HandleXdndEnter + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndPosition +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndPosition { drop_target rootX rootY time {drag_source {}} } { + variable _pressedkeys + variable _typelist + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + # puts "xdnd::HandleXdndPosition: $time" + ## Get the dropped data... + catch { + ::tkdnd::generic::SetDroppedData [GetPositionData $drop_target $_typelist $time] + } + ::tkdnd::generic::HandlePosition $drop_target $drag_source \ + $_pressedkeys $rootX $rootY +};# xdnd::HandleXdndPosition + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndLeave +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndLeave { } { + ::tkdnd::generic::HandleLeave +};# xdnd::HandleXdndLeave + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndDrop +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndDrop { time } { + variable _pressedkeys + variable _last_mouse_root_x + variable _last_mouse_root_y + ## Get the dropped data... + ::tkdnd::generic::SetDroppedData [GetDroppedData \ + [::tkdnd::generic::GetDragSource] [::tkdnd::generic::GetDropTarget] \ + [::tkdnd::generic::GetDragSourceCommonTypes] $time] + ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \ + $_last_mouse_root_x $_last_mouse_root_y $time +};# xdnd::HandleXdndDrop + +# ---------------------------------------------------------------------------- +# Command xdnd::GetPositionData +# ---------------------------------------------------------------------------- +proc xdnd::GetPositionData { drop_target typelist time } { + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [::tkdnd::generic::FindWindowWithCommonTypes $drop_target $typelist] {break} + GetDroppedData [::tkdnd::generic::GetDragSource] $drop_target \ + $common_drag_source_types $time +};# xdnd::GetPositionData + +# ---------------------------------------------------------------------------- +# Command xdnd::GetDroppedData +# ---------------------------------------------------------------------------- +proc xdnd::GetDroppedData { _drag_source _drop_target _common_drag_source_types time } { + if {![llength $_common_drag_source_types]} { + error "no common data types between the drag source and drop target widgets" + } + ## Is drag source in this application? + if {[catch {winfo pathname -displayof $_drop_target $_drag_source} p]} { + set _use_tk_selection 0 + } else { + set _use_tk_selection 1 + } + foreach type $_common_drag_source_types { + # puts "TYPE: $type ($_drop_target)" + # _get_selection $_drop_target $time $type + if {$_use_tk_selection} { + if {![catch { + selection get -displayof $_drop_target -selection XdndSelection \ + -type $type + } result options]} { + return [normalise_data $type $result] + } + } else { + # puts "_selection_get -displayof $_drop_target -selection XdndSelection \ + # -type $type -time $time" + #after 100 [list focus -force $_drop_target] + #after 50 [list raise [winfo toplevel $_drop_target]] + if {![catch { + _selection_get -displayof $_drop_target -selection XdndSelection \ + -type $type -time $time + } result options]} { + return [normalise_data $type $result] + } + } + } + return -options $options $result +};# xdnd::GetDroppedData + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc xdnd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # xdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc xdnd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # xdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc xdnd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # xdnd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command xdnd::_normalise_data +# ---------------------------------------------------------------------------- +proc xdnd::normalise_data { type data } { + # Tk knows how to interpret the following types: + # STRING, TEXT, COMPOUND_TEXT + # UTF8_STRING + # Else, it returns a list of 8 or 32 bit numbers... + switch -glob $type { + STRING - UTF8_STRING - TEXT - COMPOUND_TEXT {return $data} + text/html { + if {[catch { + encoding convertfrom unicode $data + } string]} { + set string $data + } + return [string map {\r\n \n} $string] + } + text/html\;charset=utf-8 - + text/plain\;charset=utf-8 - + text/plain { + if {[catch { + encoding convertfrom utf-8 [tkdnd::bytes_to_string $data] + } string]} { + set string $data + } + return [string map {\r\n \n} $string] + } + text/uri-list* { + if {[catch { + encoding convertfrom utf-8 [tkdnd::bytes_to_string $data] + } string]} { + set string $data + } + ## Get rid of \r\n + set string [string trim [string map {\r\n \n} $string]] + set files {} + foreach quoted_file [split $string] { + set file [tkdnd::urn_unquote $quoted_file] + switch -glob $file { + \#* {} + file://* {lappend files [string range $file 7 end]} + ftp://* - + https://* - + http://* {lappend files $quoted_file} + default {lappend files $file} + } + } + return $files + } + application/x-color { + return $data + } + text/x-moz-url - + application/q-iconlist - + default {return $data} + } +}; # xdnd::normalise_data + +############################################################################# +## +## XDND drag implementation +## +############################################################################# + +# ---------------------------------------------------------------------------- +# Command xdnd::_selection_ownership_lost +# ---------------------------------------------------------------------------- +proc xdnd::_selection_ownership_lost {} { + variable _dragging + set _dragging 0 +};# _selection_ownership_lost + +# ---------------------------------------------------------------------------- +# Command xdnd::_dodragdrop +# ---------------------------------------------------------------------------- +proc xdnd::_dodragdrop { source actions types data button } { + variable _dragging + + # puts "xdnd::_dodragdrop: source: $source, actions: $actions, types: $types,\ + # data: \"$data\", button: $button" + if {$_dragging} { + ## We are in the middle of another drag operation... + error "another drag operation in progress" + } + + variable _dodragdrop_drag_source $source + variable _dodragdrop_drop_target 0 + variable _dodragdrop_drop_target_proxy 0 + variable _dodragdrop_actions $actions + variable _dodragdrop_action_descriptions $actions + variable _dodragdrop_actions_len [llength $actions] + variable _dodragdrop_types $types + variable _dodragdrop_types_len [llength $types] + variable _dodragdrop_data $data + variable _dodragdrop_transfer_data {} + variable _dodragdrop_button $button + variable _dodragdrop_time 0 + variable _dodragdrop_default_action refuse_drop + variable _dodragdrop_waiting_status 0 + variable _dodragdrop_drop_target_accepts_drop 0 + variable _dodragdrop_drop_target_accepts_action refuse_drop + variable _dodragdrop_current_cursor $_dodragdrop_default_action + variable _dodragdrop_drop_occured 0 + variable _dodragdrop_selection_requestor 0 + + ## + ## If we have more than 3 types, the property XdndTypeList must be set on + ## the drag source widget... + ## + if {$_dodragdrop_types_len > 3} { + _announce_type_list $_dodragdrop_drag_source $_dodragdrop_types + } + + ## + ## Announce the actions & their descriptions on the XdndActionList & + ## XdndActionDescription properties... + ## + _announce_action_list $_dodragdrop_drag_source $_dodragdrop_actions \ + $_dodragdrop_action_descriptions + + ## + ## Arrange selection handlers for our drag source, and all the supported types + ## + registerSelectionHandler $source $types + + ## + ## Step 1: When a drag begins, the source takes ownership of XdndSelection. + ## + selection own -command ::tkdnd::xdnd::_selection_ownership_lost \ + -selection XdndSelection $source + set _dragging 1 + + ## Grab the mouse pointer... + _grab_pointer $source $_dodragdrop_default_action + + ## Register our generic event handler... + # The generic event callback will report events by modifying variable + # ::xdnd::_dodragdrop_event: a dict with event information will be set as + # the value of the variable... + _register_generic_event_handler + + ## Set a timeout for debugging purposes... + # after 60000 {set ::tkdnd::xdnd::_dragging 0} + + tkwait variable ::tkdnd::xdnd::_dragging + _SendXdndLeave + + set _dragging 0 + _ungrab_pointer $source + _unregister_generic_event_handler + catch {selection clear -selection XdndSelection} + unregisterSelectionHandler $source $types + return $_dodragdrop_drop_target_accepts_action +};# xdnd::_dodragdrop + +# ---------------------------------------------------------------------------- +# Command xdnd::_process_drag_events +# ---------------------------------------------------------------------------- +proc xdnd::_process_drag_events {event} { + # The return value from proc is normally 0. A non-zero return value indicates + # that the event is not to be handled further; that is, proc has done all + # processing that is to be allowed for the event + variable _dragging + if {!$_dragging} {return 0} + # puts $event + + variable _dodragdrop_time + set time [dict get $event time] + set type [dict get $event type] + if {$time < $_dodragdrop_time && ![string equal $type SelectionRequest]} { + return 0 + } + set _dodragdrop_time $time + + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_default_action + switch $type { + MotionNotify { + set rootx [dict get $event x_root] + set rooty [dict get $event y_root] + set window [_find_drop_target_window $_dodragdrop_drag_source \ + $rootx $rooty] + if {[string length $window]} { + ## Examine the modifiers to suggest an action... + set _dodragdrop_default_action [_default_action $event] + ## Is it a Tk widget? + # set path [winfo containing $rootx $rooty] + # puts "Window under mouse: $window ($path)" + if {$_dodragdrop_drop_target != $window} { + ## Send XdndLeave to $_dodragdrop_drop_target + _SendXdndLeave + ## Is there a proxy? If not, _find_drop_target_proxy returns the + ## target window, so we always get a valid "proxy". + set proxy [_find_drop_target_proxy $_dodragdrop_drag_source $window] + ## Send XdndEnter to $window + _SendXdndEnter $window $proxy + ## Send XdndPosition to $_dodragdrop_drop_target + _SendXdndPosition $rootx $rooty $_dodragdrop_default_action + } else { + ## Send XdndPosition to $_dodragdrop_drop_target + _SendXdndPosition $rootx $rooty $_dodragdrop_default_action + } + } else { + ## No window under the mouse. Send XdndLeave to $_dodragdrop_drop_target + _SendXdndLeave + } + } + ButtonPress { + } + ButtonRelease { + variable _dodragdrop_button + set button [dict get $event button] + if {$button == $_dodragdrop_button} { + ## The button that initiated the drag was released. Trigger drop... + _SendXdndDrop + } + return 1 + } + KeyPress { + } + KeyRelease { + set keysym [dict get $event keysym] + switch $keysym { + Escape { + ## The user has pressed escape. Abort... + if {$_dragging} {set _dragging 0} + } + } + } + SelectionRequest { + variable _dodragdrop_selection_requestor + variable _dodragdrop_selection_property + variable _dodragdrop_selection_selection + variable _dodragdrop_selection_target + variable _dodragdrop_selection_time + set _dodragdrop_selection_requestor [dict get $event requestor] + set _dodragdrop_selection_property [dict get $event property] + set _dodragdrop_selection_selection [dict get $event selection] + set _dodragdrop_selection_target [dict get $event target] + set _dodragdrop_selection_time $time + return 0 + } + default { + return 0 + } + } + return 0 +};# _process_drag_events + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndEnter +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndEnter {window proxy} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_types + variable _dodragdrop_waiting_status + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_target > 0} _SendXdndLeave + if {$_dodragdrop_drop_occured} return + set _dodragdrop_drop_target $window + set _dodragdrop_drop_target_proxy $proxy + set _dodragdrop_waiting_status 0 + if {$_dodragdrop_drop_target < 1} return + # puts "XdndEnter: $_dodragdrop_drop_target $_dodragdrop_drop_target_proxy" + _send_XdndEnter $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy $_dodragdrop_types +};# xdnd::_SendXdndEnter + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndPosition +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndPosition {rootx rooty action} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_waiting_status + ## Arrange a new XdndPosition, to be send periodically... + variable _dodragdrop_xdnd_position_heartbeat + catch {after cancel $_dodragdrop_xdnd_position_heartbeat} + set _dodragdrop_xdnd_position_heartbeat [after 200 \ + [list ::tkdnd::xdnd::_SendXdndPosition $rootx $rooty $action]] + if {$_dodragdrop_waiting_status} {return} + # puts "XdndPosition: $_dodragdrop_drop_target $rootx $rooty $action" + _send_XdndPosition $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy $rootx $rooty $action + set _dodragdrop_waiting_status 1 +};# xdnd::_SendXdndPosition + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndStatus +# ---------------------------------------------------------------------------- +proc xdnd::_HandleXdndStatus {event} { + variable _dodragdrop_drop_target + variable _dodragdrop_waiting_status + + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + set _dodragdrop_waiting_status 0 + foreach key {target accept want_position action x y w h} { + set $key [dict get $event $key] + } + set _dodragdrop_drop_target_accepts_drop $accept + set _dodragdrop_drop_target_accepts_action $action + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + _update_cursor + # puts "XdndStatus: $event" +};# xdnd::_HandleXdndStatus + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndFinished +# ---------------------------------------------------------------------------- +proc xdnd::_HandleXdndFinished {event} { + variable _dodragdrop_xdnd_finished_event_after_id + catch {after cancel $_dodragdrop_xdnd_finished_event_after_id} + set _dodragdrop_xdnd_finished_event_after_id {} + variable _dodragdrop_drop_target + set _dodragdrop_drop_target 0 + variable _dragging + if {$_dragging} {set _dragging 0} + + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + if {[dict size $event]} { + foreach key {target accept action} { + set $key [dict get $event $key] + } + set _dodragdrop_drop_target_accepts_drop $accept + set _dodragdrop_drop_target_accepts_action $action + } else { + set _dodragdrop_drop_target_accepts_drop 0 + } + if {!$_dodragdrop_drop_target_accepts_drop} { + set _dodragdrop_drop_target_accepts_action refuse_drop + } + # puts "XdndFinished: $event" +};# xdnd::_HandleXdndFinished + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndLeave +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndLeave {} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_target_proxy + # puts "XdndLeave: $_dodragdrop_drop_target" + _send_XdndLeave $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy + set _dodragdrop_drop_target 0 + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + set _dodragdrop_drop_target_accepts_drop 0 + set _dodragdrop_drop_target_accepts_action refuse_drop + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + _update_cursor +};# xdnd::_SendXdndLeave + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndDrop +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndDrop {} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} { + ## The mouse has been released over a widget that does not accept drops. + _HandleXdndFinished {} + return + } + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} {return} + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + + set _dodragdrop_drop_occured 1 + _update_cursor clock + + if {!$_dodragdrop_drop_target_accepts_drop} { + _SendXdndLeave + _HandleXdndFinished {} + return + } + # puts "XdndDrop: $_dodragdrop_drop_target" + variable _dodragdrop_drop_timestamp + set _dodragdrop_drop_timestamp [_send_XdndDrop \ + $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy] + set _dodragdrop_drop_target 0 + # puts "XdndDrop: $_dodragdrop_drop_target" + ## Arrange a timeout for receiving XdndFinished... + variable _dodragdrop_xdnd_finished_event_after_id + set _dodragdrop_xdnd_finished_event_after_id \ + [after 10000 [list ::tkdnd::xdnd::_HandleXdndFinished {}]] +};# xdnd::_SendXdndDrop + +# ---------------------------------------------------------------------------- +# Command xdnd::_update_cursor +# ---------------------------------------------------------------------------- +proc xdnd::_update_cursor { {cursor {}}} { + # puts "_update_cursor $cursor" + variable _dodragdrop_current_cursor + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + + if {![string length $cursor]} { + set cursor refuse_drop + if {$_dodragdrop_drop_target_accepts_drop} { + set cursor $_dodragdrop_drop_target_accepts_action + } + } + if {![string equal $cursor $_dodragdrop_current_cursor]} { + _set_pointer_cursor $_dodragdrop_drag_source $cursor + set _dodragdrop_current_cursor $cursor + } +};# xdnd::_update_cursor + +# ---------------------------------------------------------------------------- +# Command xdnd::_default_action +# ---------------------------------------------------------------------------- +proc xdnd::_default_action {event} { + variable _dodragdrop_actions + variable _dodragdrop_actions_len + if {$_dodragdrop_actions_len == 1} {return [lindex $_dodragdrop_actions 0]} + + set alt [dict get $event Alt] + set shift [dict get $event Shift] + set control [dict get $event Control] + + if {$shift && $control && [lsearch $_dodragdrop_actions link] != -1} { + return link + } elseif {$control && [lsearch $_dodragdrop_actions copy] != -1} { + return copy + } elseif {$shift && [lsearch $_dodragdrop_actions move] != -1} { + return move + } elseif {$alt && [lsearch $_dodragdrop_actions link] != -1} { + return link + } + return default +};# xdnd::_default_action + +# ---------------------------------------------------------------------------- +# Command xdnd::getFormatForType +# ---------------------------------------------------------------------------- +proc xdnd::getFormatForType {type} { + switch -glob [string tolower $type] { + text/plain\;charset=utf-8 - + text/html\;charset=utf-8 - + utf8_string {set format UTF8_STRING} + text/html - + text/plain - + string - + text - + compound_text {set format STRING} + text/uri-list* {set format UTF8_STRING} + application/x-color {set format $type} + default {set format $type} + } + return $format +};# xdnd::getFormatForType + +# ---------------------------------------------------------------------------- +# Command xdnd::registerSelectionHandler +# ---------------------------------------------------------------------------- +proc xdnd::registerSelectionHandler {source types} { + foreach type $types { + selection handle -selection XdndSelection \ + -type $type \ + -format [getFormatForType $type] \ + $source [list ::tkdnd::xdnd::_SendData $type] + } +};# xdnd::registerSelectionHandler + +# ---------------------------------------------------------------------------- +# Command xdnd::unregisterSelectionHandler +# ---------------------------------------------------------------------------- +proc xdnd::unregisterSelectionHandler {source types} { + foreach type $types { + catch { + selection handle -selection XdndSelection \ + -type $type \ + -format [getFormatForType $type] \ + $source {} + } + } +};# xdnd::unregisterSelectionHandler + +# ---------------------------------------------------------------------------- +# Command xdnd::_convert_to_unsigned +# ---------------------------------------------------------------------------- +proc xdnd::_convert_to_unsigned {data format} { + switch $format { + 8 { set mask 0xff } + 16 { set mask 0xffff } + 32 { set mask 0xffffff } + default {error "unsupported format $format"} + } + ## Convert signed integer into unsigned... + set d [list] + foreach num $data { + lappend d [expr { $num & $mask }] + } + return $d +};# xdnd::_convert_to_unsigned + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendData +# ---------------------------------------------------------------------------- +proc xdnd::_SendData {type offset bytes args} { + variable _dodragdrop_drag_source + variable _dodragdrop_types + variable _dodragdrop_data + variable _dodragdrop_transfer_data + + ## The variable _dodragdrop_data contains a list of data, one for each + ## type in the _dodragdrop_types variable. We have to search types, and find + ## the corresponding entry in the _dodragdrop_data list. + set index [lsearch $_dodragdrop_types $type] + if {$index < 0} { + error "unable to locate data suitable for type \"$type\"" + } + set typed_data [lindex $_dodragdrop_data $index] + set format 8 + if {$offset == 0} { + ## Prepare the data to be transferred... + switch -glob $type { + text/plain* - UTF8_STRING - STRING - TEXT - COMPOUND_TEXT { + binary scan [encoding convertto utf-8 $typed_data] \ + c* _dodragdrop_transfer_data + set _dodragdrop_transfer_data \ + [_convert_to_unsigned $_dodragdrop_transfer_data $format] + } + text/uri-list* { + set files [list] + foreach file $typed_data { + switch -glob $file { + *://* {lappend files $file} + default {lappend files file://$file} + } + } + binary scan [encoding convertto utf-8 "[join $files \r\n]\r\n"] \ + c* _dodragdrop_transfer_data + set _dodragdrop_transfer_data \ + [_convert_to_unsigned $_dodragdrop_transfer_data $format] + } + application/x-color { + set format 16 + ## Try to understand the provided data: we accept a standard Tk colour, + ## or a list of 3 values (red green blue) or a list of 4 values + ## (red green blue opacity). + switch [llength $typed_data] { + 1 { set color [winfo rgb $_dodragdrop_drag_source $typed_data] + lappend color 65535 } + 3 { set color $typed_data; lappend color 65535 } + 4 { set color $typed_data } + default {error "unknown color data: \"$typed_data\""} + } + ## Convert the 4 elements into 16 bit values... + set _dodragdrop_transfer_data [list] + foreach c $color { + lappend _dodragdrop_transfer_data [format 0x%04X $c] + } + } + default { + set format 32 + binary scan $typed_data c* _dodragdrop_transfer_data + } + } + } + + ## + ## Data has been split into bytes. Count the bytes requested, and return them + ## + set data [lrange $_dodragdrop_transfer_data $offset [expr {$offset+$bytes-1}]] + switch $format { + 8 { + set data [encoding convertfrom utf-8 [binary format c* $data]] + } + 16 { + variable _dodragdrop_selection_requestor + if {$_dodragdrop_selection_requestor} { + ## Tk selection cannot process this format (only 8 & 32 supported). + ## Call our XChangeProperty... + set numItems [llength $data] + variable _dodragdrop_selection_property + variable _dodragdrop_selection_selection + variable _dodragdrop_selection_target + variable _dodragdrop_selection_time + XChangeProperty $_dodragdrop_drag_source \ + $_dodragdrop_selection_requestor \ + $_dodragdrop_selection_property \ + $_dodragdrop_selection_target \ + $format \ + $_dodragdrop_selection_time \ + $data $numItems + return -code break + } + } + 32 { + } + default { + error "unsupported format $format" + } + } + # puts "SendData: $type $offset $bytes $args ($typed_data)" + # puts " $data" + return $data +};# xdnd::_SendData diff --git a/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_utils.tcl b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_utils.tcl new file mode 100644 index 0000000..ee961dd --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_utils.tcl @@ -0,0 +1,252 @@ +# +# tkdnd_utils.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +package require tkdnd +namespace eval ::tkdnd { + namespace eval utils { + };# namespace ::tkdnd::utils + namespace eval text { + variable _drag_tag tkdnd::drag::selection::tag + variable _state {} + variable _drag_source_widget {} + variable _drop_target_widget {} + variable _now_dragging 0 + };# namespace ::tkdnd::text +};# namespace ::tkdnd + +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag clear 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag motion 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_TextAutoScan %W %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag reset 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag clear 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag motion 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag reset 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag clear 3 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag motion 3 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag reset 3 %W %s %X %Y %x %y} + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::drag_source +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::drag_source { mode path { types DND_Text } { event 1 } { tagprefix TkDND_Drag_Text } { tag sel } } { + switch -exact -- $mode { + register { + $path tag bind $tag \ + "tkdnd::text::_begin_drag press ${event} %W %s %X %Y %x %y" + ## Set a binding to the widget, to put selection as data... + bind $path <> "::tkdnd::text::DragInitCmd $path {%t} $tag" + ## Set a binding to the widget, to remove selection if action is move... + bind $path <> "::tkdnd::text::DragEndCmd $path %A $tag" + } + unregister { + $path tag bind $tag {} + bind $path <> {} + bind $path <> {} + } + } + ::tkdnd::drag_source $mode $path $types $event $tagprefix +};# ::tkdnd::text::drag_source + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::drop_target +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::drop_target { mode path { types DND_Text } } { + switch -exact -- $mode { + register { + bind $path <> "::tkdnd::text::DropPosition $path %X %Y %A %a %m" + bind $path <> "::tkdnd::text::Drop $path %D %X %Y %A %a %m" + } + unregister { + bind $path <> {} + bind $path <> {} + bind $path <> {} + bind $path <> {} + } + } + ::tkdnd::drop_target $mode $path $types +};# ::tkdnd::text::drop_target + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DragInitCmd +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DragInitCmd { path { types DND_Text } { tag sel } { actions { copy move } } } { + ## Save the selection indices... + variable _drag_source_widget + variable _drop_target_widget + set _drag_source_widget $path + set _drop_target_widget {} + _save_selection $path $tag + list $actions $types [$path get $tag.first $tag.last] +};# ::tkdnd::text::DragInitCmd + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DragEndCmd +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DragEndCmd { path action { tag sel } } { + variable _drag_source_widget + variable _drop_target_widget + set _drag_source_widget {} + set _drop_target_widget {} + _restore_selection $path $tag + switch -exact -- $action { + move { + ## Delete the original selected text... + variable _selection_first + variable _selection_last + $path delete $_selection_first $_selection_last + } + } +};# ::tkdnd::text::DragEndCmd + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DropPosition +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DropPosition { path X Y action actions keys} { + variable _drag_source_widget + variable _drop_target_widget + set _drop_target_widget $path + ## This check is primitive, a more accurate one is needed! + if {$path eq $_drag_source_widget} { + ## This is a drag within the same widget! Set action to move... + if {"move" in $actions} {set action move} + } + incr X -[winfo rootx $path] + incr Y -[winfo rooty $path] + $path mark set insert @$X,$Y; update + return $action +};# ::tkdnd::text::DropPosition + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::Drop +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::Drop { path data X Y action actions keys } { + incr X -[winfo rootx $path] + incr Y -[winfo rooty $path] + $path mark set insert @$X,$Y + $path insert [$path index insert] $data + return $action +};# ::tkdnd::text::Drop + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_save_selection +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_save_selection { path tag} { + variable _drag_tag + variable _selection_first + variable _selection_last + variable _selection_tag $tag + set _selection_first [$path index $tag.first] + set _selection_last [$path index $tag.last] + $path tag add $_drag_tag $_selection_first $_selection_last + $path tag configure $_drag_tag \ + -background [$path tag cget $tag -background] \ + -foreground [$path tag cget $tag -foreground] +};# tkdnd::text::_save_selection + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_restore_selection +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_restore_selection { path tag} { + variable _drag_tag + variable _selection_first + variable _selection_last + $path tag delete $_drag_tag + $path tag remove $tag 0.0 end + #$path tag add $tag $_selection_first $_selection_last +};# tkdnd::text::_restore_selection + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_begin_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_begin_drag { event button source state X Y x y } { + variable _drop_target_widget + variable _state + # puts "::tkdnd::text::_begin_drag $event $button $source $state $X $Y $x $y" + + switch -exact -- $event { + clear { + switch -exact -- $_state { + press { + ## Do not execute other bindings, as they will erase selection... + return -code break + } + } + set _state clear + } + motion { + variable _now_dragging + if {$_now_dragging} {return -code break} + if { [string equal $_state "press"] } { + variable _x0; variable _y0 + if { abs($_x0-$X) > ${::tkdnd::_dx} || abs($_y0-$Y) > ${::tkdnd::_dy} } { + set _state "done" + set _drop_target_widget {} + set _now_dragging 1 + set code [catch { + ::tkdnd::_init_drag $button $source $state $X $Y $x $y + } info options] + set _drop_target_widget {} + set _now_dragging 0 + if {$code != 0} { + ## Something strange occurred... + return -options $options $info + } + } + return -code break + } + set _state clear + } + press { + variable _x0; variable _y0 + set _x0 $X + set _y0 $Y + set _state "press" + } + reset { + set _state {} + } + } + if {$source eq $_drop_target_widget} {return -code break} + return -code continue +};# tkdnd::text::_begin_drag + +proc tkdnd::text::_TextAutoScan {w x y} { + variable _now_dragging + if {$_now_dragging} {return -code break} + return -code continue +};# tkdnd::text::_TextAutoScan diff --git a/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_windows.tcl b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_windows.tcl new file mode 100644 index 0000000..a1d01f3 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/linux64/tkdnd_windows.tcl @@ -0,0 +1,167 @@ +# +# tkdnd_windows.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval olednd { + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + CF_UNICODETEXT DND_Text \ + CF_TEXT DND_Text \ + CF_HDROP DND_Files \ + UniformResourceLocator DND_URL \ + CF_HTML DND_HTML \ + {HTML Format} DND_HTML \ + CF_RTF DND_RTF \ + CF_RTFTEXT DND_RTF \ + {Rich Text Format} DND_RTF \ + ] + # FileGroupDescriptorW DND_Files \ + # FileGroupDescriptor DND_Files \ + + ## Mapping from TkDND types to platform types... + ::tkdnd::generic::initialise_tkdnd_to_platform_types [list \ + DND_Text {CF_UNICODETEXT CF_TEXT} \ + DND_Files {CF_HDROP} \ + DND_URL {UniformResourceLocator UniformResourceLocatorW} \ + DND_HTML {CF_HTML {HTML Format}} \ + DND_RTF {CF_RTF CF_RTFTEXT {Rich Text Format}} \ + ] + };# initialise + +};# namespace olednd + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragEnter +# ---------------------------------------------------------------------------- +proc olednd::HandleDragEnter { drop_target typelist actionlist pressedkeys + rootX rootY codelist { data {} } } { + ::tkdnd::generic::SetDroppedData $data + focus $drop_target + ::tkdnd::generic::HandleEnter $drop_target 0 $typelist \ + $codelist $actionlist $pressedkeys + set action [::tkdnd::generic::HandlePosition $drop_target {} \ + $pressedkeys $rootX $rootY] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDragEnter + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragOver +# ---------------------------------------------------------------------------- +proc olednd::HandleDragOver { drop_target pressedkeys rootX rootY } { + set action [::tkdnd::generic::HandlePosition $drop_target {} \ + $pressedkeys $rootX $rootY] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDragOver + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragLeave +# ---------------------------------------------------------------------------- +proc olednd::HandleDragLeave { drop_target } { + ::tkdnd::generic::HandleLeave + if {$::tkdnd::_auto_update} {update idletasks} +};# olednd::HandleDragLeave + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDrop +# ---------------------------------------------------------------------------- +proc olednd::HandleDrop { drop_target pressedkeys rootX rootY type data } { + ::tkdnd::generic::SetDroppedData [normalise_data $type $data] + set action [::tkdnd::generic::HandleDrop $drop_target {} \ + $pressedkeys $rootX $rootY 0] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDrop + +# ---------------------------------------------------------------------------- +# Command olednd::GetDataType +# ---------------------------------------------------------------------------- +proc olednd::GetDataType { drop_target typelist } { + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [::tkdnd::generic::FindWindowWithCommonTypes $drop_target $typelist] {break} + lindex $common_drag_source_types 0 +};# olednd::GetDataType + +# ---------------------------------------------------------------------------- +# Command olednd::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc olednd::GetDragSourceCommonTypes { drop_target } { + ::tkdnd::generic::GetDragSourceCommonTypes +};# olednd::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command olednd::platform_specific_types +# ---------------------------------------------------------------------------- +proc olednd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # olednd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command olednd::platform_specific_type +# ---------------------------------------------------------------------------- +proc olednd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # olednd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command olednd::platform_independent_type +# ---------------------------------------------------------------------------- +proc olednd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # olednd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command olednd::normalise_data +# ---------------------------------------------------------------------------- +proc olednd::normalise_data { type data } { + switch [lindex [::tkdnd::generic::platform_independent_type $type] 0] { + DND_Text {return $data} + DND_Files {return $data} + DND_HTML {return [encoding convertfrom utf-8 $data]} + default {return $data} + } +}; # olednd::normalise_data diff --git a/gui_data/tkinterdnd2/tkdnd/osx64/libtkdnd2.9.2.dylib b/gui_data/tkinterdnd2/tkdnd/osx64/libtkdnd2.9.2.dylib new file mode 100644 index 0000000000000000000000000000000000000000..2f511c423e109f80e7511c768cfb81d16a1cd65a GIT binary patch literal 40176 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 a#5j! {tkdnd::_begin_drag press 1 %W %s %X %Y %x %y} + bind TkDND_Drag1 {tkdnd::_begin_drag motion 1 %W %s %X %Y %x %y} + bind TkDND_Drag2 {tkdnd::_begin_drag press 2 %W %s %X %Y %x %y} + bind TkDND_Drag2 {tkdnd::_begin_drag motion 2 %W %s %X %Y %x %y} + bind TkDND_Drag3 {tkdnd::_begin_drag press 3 %W %s %X %Y %x %y} + bind TkDND_Drag3 {tkdnd::_begin_drag motion 3 %W %s %X %Y %x %y} + + # ---------------------------------------------------------------------------- + # Command tkdnd::initialise: Initialise the TkDND package. + # ---------------------------------------------------------------------------- + proc initialise { dir PKG_LIB_FILE PACKAGE_NAME} { + variable _platform_namespace + variable _drop_file_temp_dir + variable _windowingsystem + global env + + switch [tk windowingsystem] { + x11 { + set _windowingsystem x11 + } + win32 - + windows { + set _windowingsystem windows + } + aqua { + set _windowingsystem aqua + } + default { + error "unknown Tk windowing system" + } + } + + ## Get User's home directory: We try to locate the proper path from a set of + ## environmental variables... + foreach var {HOME HOMEPATH USERPROFILE ALLUSERSPROFILE APPDATA} { + if {[info exists env($var)]} { + if {[file isdirectory $env($var)]} { + set UserHomeDir $env($var) + break + } + } + } + + ## Should use [tk windowingsystem] instead of tcl platform array: + ## OS X returns "unix," but that's not useful because it has its own + ## windowing system, aqua + ## Under windows we have to also combine HOMEDRIVE & HOMEPATH... + if {![info exists UserHomeDir] && + [string equal $_windowingsystem windows] && + [info exists env(HOMEDRIVE)] && [info exists env(HOMEPATH)]} { + if {[file isdirectory $env(HOMEDRIVE)$env(HOMEPATH)]} { + set UserHomeDir $env(HOMEDRIVE)$env(HOMEPATH) + } + } + ## Have we located the needed path? + if {![info exists UserHomeDir]} { + set UserHomeDir [pwd] + } + set UserHomeDir [file normalize $UserHomeDir] + + ## Try to locate a temporary directory... + foreach var {TKDND_TEMP_DIR TEMP TMP} { + if {[info exists env($var)]} { + if {[file isdirectory $env($var)] && [file writable $env($var)]} { + set _drop_file_temp_dir $env($var) + break + } + } + } + if {![info exists _drop_file_temp_dir]} { + foreach _dir [list "$UserHomeDir/Local Settings/Temp" \ + "$UserHomeDir/AppData/Local/Temp" \ + /tmp \ + C:/WINDOWS/Temp C:/Temp C:/tmp \ + D:/WINDOWS/Temp D:/Temp D:/tmp] { + if {[file isdirectory $_dir] && [file writable $_dir]} { + set _drop_file_temp_dir $_dir + break + } + } + } + if {![info exists _drop_file_temp_dir]} { + set _drop_file_temp_dir $UserHomeDir + } + set _drop_file_temp_dir [file native $_drop_file_temp_dir] + + source $dir/tkdnd_generic.tcl + switch $_windowingsystem { + x11 { + source $dir/tkdnd_unix.tcl + set _platform_namespace xdnd + } + win32 - + windows { + source $dir/tkdnd_windows.tcl + set _platform_namespace olednd + } + aqua { + source $dir/tkdnd_macosx.tcl + set _platform_namespace macdnd + } + default { + error "unknown Tk windowing system" + } + } + load $dir/$PKG_LIB_FILE $PACKAGE_NAME + source $dir/tkdnd_compat.tcl + ${_platform_namespace}::initialise + };# initialise + + proc GetDropFileTempDirectory { } { + variable _drop_file_temp_dir + return $_drop_file_temp_dir + } + proc SetDropFileTempDirectory { dir } { + variable _drop_file_temp_dir + set _drop_file_temp_dir $dir + } + +};# namespace ::tkdnd + +# ---------------------------------------------------------------------------- +# Command tkdnd::drag_source +# ---------------------------------------------------------------------------- +proc ::tkdnd::drag_source { mode path { types {} } { event 1 } + { tagprefix TkDND_Drag } } { + set tags [bindtags $path] + set idx [lsearch $tags ${tagprefix}$event] + switch -- $mode { + register { + if { $idx != -1 } { + ## No need to do anything! + # bindtags $path [lreplace $tags $idx $idx ${tagprefix}$event] + } else { + bindtags $path [linsert $tags 1 ${tagprefix}$event] + } + _drag_source_update_types $path $types + } + unregister { + if { $idx != -1 } { + bindtags $path [lreplace $tags $idx $idx] + } + } + } +};# tkdnd::drag_source + +proc ::tkdnd::_drag_source_update_types { path types } { + set types [platform_specific_types $types] + set old_types [bind $path <>] + foreach type $types { + if {[lsearch $old_types $type] < 0} {lappend old_types $type} + } + bind $path <> $old_types +};# ::tkdnd::_drag_source_update_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::drop_target +# ---------------------------------------------------------------------------- +proc ::tkdnd::drop_target { mode path { types {} } } { + variable _windowingsystem + set types [platform_specific_types $types] + switch -- $mode { + register { + switch $_windowingsystem { + x11 { + _register_types $path [winfo toplevel $path] $types + } + win32 - + windows { + _RegisterDragDrop $path + bind $path {+ tkdnd::_RevokeDragDrop %W} + } + aqua { + macdnd::registerdragwidget [winfo toplevel $path] $types + } + default { + error "unknown Tk windowing system" + } + } + set old_types [bind $path <>] + set new_types {} + foreach type $types { + if {[lsearch -exact $old_types $type] < 0} {lappend new_types $type} + } + if {[llength $new_types]} { + bind $path <> [concat $old_types $new_types] + } + } + unregister { + switch $_windowingsystem { + x11 { + } + win32 - + windows { + _RevokeDragDrop $path + } + aqua { + error todo + } + default { + error "unknown Tk windowing system" + } + } + bind $path <> {} + } + } +};# tkdnd::drop_target + +# ---------------------------------------------------------------------------- +# Command tkdnd::_begin_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_begin_drag { event button source state X Y x y } { + variable _x0 + variable _y0 + variable _state + + switch -- $event { + press { + set _x0 $X + set _y0 $Y + set _state "press" + } + motion { + if { ![info exists _state] } { + # This is just extra protection. There seem to be + # rare cases where the motion comes before the press. + return + } + if { [string equal $_state "press"] } { + variable _dx + variable _dy + if { abs($_x0-$X) > ${_dx} || abs($_y0-$Y) > ${_dy} } { + set _state "done" + _init_drag $button $source $state $X $Y $x $y + } + } + } + } +};# tkdnd::_begin_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::_init_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_init_drag { button source state rootX rootY X Y } { + # Call the <> binding. + set cmd [bind $source <>] + # puts "CMD: $cmd" + if {[string length $cmd]} { + set cmd [string map [list %W $source %X $rootX %Y $rootY %x $X %y $Y \ + %S $state %e <> %A \{\} %% % \ + %t [bind $source <>]] $cmd] + set code [catch {uplevel \#0 $cmd} info options] + # puts "CODE: $code ---- $info" + switch -exact -- $code { + 0 {} + 3 - 4 { + # FRINK: nocheck + return + } + default { + return -options $options $info + } + } + + set len [llength $info] + if {$len == 3} { + foreach { actions types _data } $info { break } + set types [platform_specific_types $types] + set data [list] + foreach type $types { + lappend data $_data + } + unset _data + } elseif {$len == 2} { + foreach { actions _data } $info { break } + set data [list]; set types [list] + foreach {t d} $_data { + foreach t [platform_specific_types $t] { + lappend types $t; lappend data $d + } + } + unset _data t d + } else { + if {$len == 1 && [string equal [lindex $actions 0] "refuse_drop"]} { + return + } + error "not enough items in the result of the <>\ + event binding. Either 2 or 3 items are expected. The command + executed was: \"$cmd\"\nResult was: \"$info\"" + } + set action refuse_drop + variable _windowingsystem + # puts "Source: \"$source\"" + # puts "Types: \"[join $types {", "}]\"" + # puts "Actions: \"[join $actions {", "}]\"" + # puts "Button: \"$button\"" + # puts "Data: \"[string range $data 0 100]\"" + switch $_windowingsystem { + x11 { + set action [xdnd::_dodragdrop $source $actions $types $data $button] + } + win32 - + windows { + set action [_DoDragDrop $source $actions $types $data $button] + } + aqua { + set action [macdnd::dodragdrop $source $actions $types $data $button] + } + default { + error "unknown Tk windowing system" + } + } + ## Call _end_drag to notify the widget of the result of the drag + ## operation... + _end_drag $button $source {} $action {} $data {} $state $rootX $rootY $X $Y + } +};# tkdnd::_init_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::_end_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_end_drag { button source target action type data result + state rootX rootY X Y } { + set rootX 0 + set rootY 0 + # Call the <> binding. + set cmd [bind $source <>] + if {[string length $cmd]} { + set cmd [string map [list %W $source %X $rootX %Y $rootY %x $X %y $Y %% % \ + %S $state %e <> %A \{$action\}] $cmd] + set info [uplevel \#0 $cmd] + # if { $info != "" } { + # variable _windowingsystem + # foreach { actions types data } $info { break } + # set types [platform_specific_types $types] + # switch $_windowingsystem { + # x11 { + # error "dragging from Tk widgets not yet supported" + # } + # win32 - + # windows { + # set action [_DoDragDrop $source $actions $types $data $button] + # } + # aqua { + # macdnd::dodragdrop $source $actions $types $data + # } + # default { + # error "unknown Tk windowing system" + # } + # } + # ## Call _end_drag to notify the widget of the result of the drag + # ## operation... + # _end_drag $button $source {} $action {} $data {} $state $rootX $rootY + # } + } +};# tkdnd::_end_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_specific_types { types } { + variable _platform_namespace + ${_platform_namespace}::platform_specific_types $types +}; # tkdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + variable _platform_namespace + ${_platform_namespace}::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_specific_type { type } { + variable _platform_namespace + ${_platform_namespace}::platform_specific_type $type +}; # tkdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_type { type } { + variable _platform_namespace + ${_platform_namespace}::platform_independent_type $type +}; # tkdnd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::bytes_to_string +# ---------------------------------------------------------------------------- +proc ::tkdnd::bytes_to_string { bytes } { + set string {} + foreach byte $bytes { + append string [binary format c $byte] + } + return $string +};# tkdnd::bytes_to_string + +# ---------------------------------------------------------------------------- +# Command tkdnd::urn_unquote +# ---------------------------------------------------------------------------- +proc ::tkdnd::urn_unquote {url} { + set result "" + set start 0 + while {[regexp -start $start -indices {%[0-9a-fA-F]{2}} $url match]} { + foreach {first last} $match break + append result [string range $url $start [expr {$first - 1}]] + append result [format %c 0x[string range $url [incr first] $last]] + set start [incr last] + } + append result [string range $url $start end] + return [encoding convertfrom utf-8 $result] +};# tkdnd::urn_unquote diff --git a/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_compat.tcl b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_compat.tcl new file mode 100644 index 0000000..efc96f7 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_compat.tcl @@ -0,0 +1,160 @@ +# +# tkdnd_compat.tcl -- +# +# This file implements some utility procedures, to support older versions +# of the TkDND package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval compat { + +};# namespace compat + +# ---------------------------------------------------------------------------- +# Command ::dnd +# ---------------------------------------------------------------------------- +proc ::dnd {method window args} { + switch $method { + bindtarget { + switch [llength $args] { + 0 {return [tkdnd::compat::bindtarget0 $window]} + 1 {return [tkdnd::compat::bindtarget1 $window [lindex $args 0]]} + 2 {return [tkdnd::compat::bindtarget2 $window [lindex $args 0] \ + [lindex $args 1]]} + 3 {return [tkdnd::compat::bindtarget3 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2]]} + 4 {return [tkdnd::compat::bindtarget4 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2] [lindex $args 3]]} + } + } + cleartarget { + return [tkdnd::compat::cleartarget $window] + } + bindsource { + switch [llength $args] { + 0 {return [tkdnd::compat::bindsource0 $window]} + 1 {return [tkdnd::compat::bindsource1 $window [lindex $args 0]]} + 2 {return [tkdnd::compat::bindsource2 $window [lindex $args 0] \ + [lindex $args 1]]} + 3 {return [tkdnd::compat::bindsource3 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2]]} + } + } + clearsource { + return [tkdnd::compat::clearsource $window] + } + drag { + return [tkdnd::_init_drag 1 $window "press" 0 0 0 0] + } + } + error "invalid number of arguments!" +};# ::dnd + +# ---------------------------------------------------------------------------- +# Command compat::bindtarget +# ---------------------------------------------------------------------------- +proc compat::bindtarget0 {window} { + return [bind $window <>] +};# compat::bindtarget0 + +proc compat::bindtarget1 {window type} { + return [bindtarget2 $window $type ] +};# compat::bindtarget1 + +proc compat::bindtarget2 {window type event} { + switch $event { + {return [bind $window <>]} + {return [bind $window <>]} + {return [bind $window <>]} + {return [bind $window <>]} + } +};# compat::bindtarget2 + +proc compat::bindtarget3 {window type event script} { + set type [normalise_type $type] + ::tkdnd::drop_target register $window [list $type] + switch $event { + {return [bind $window <> $script]} + {return [bind $window <> $script]} + {return [bind $window <> $script]} + {return [bind $window <> $script]} + } +};# compat::bindtarget3 + +proc compat::bindtarget4 {window type event script priority} { + return [bindtarget3 $window $type $event $script] +};# compat::bindtarget4 + +proc compat::normalise_type { type } { + switch $type { + text/plain - + {text/plain;charset=UTF-8} - + Text {return DND_Text} + text/uri-list - + Files {return DND_Files} + default {return $type} + } +};# compat::normalise_type + +# ---------------------------------------------------------------------------- +# Command compat::bindsource +# ---------------------------------------------------------------------------- +proc compat::bindsource0 {window} { + return [bind $window <>] +};# compat::bindsource0 + +proc compat::bindsource1 {window type} { + return [bindsource2 $window $type ] +};# compat::bindsource1 + +proc compat::bindsource2 {window type script} { + set type [normalise_type $type] + ::tkdnd::drag_source register $window $type + bind $window <> "list {copy} {%t} \[$script\]" +};# compat::bindsource2 + +proc compat::bindsource3 {window type script priority} { + return [bindsource2 $window $type $script] +};# compat::bindsource3 + +# ---------------------------------------------------------------------------- +# Command compat::cleartarget +# ---------------------------------------------------------------------------- +proc compat::cleartarget {window} { +};# compat::cleartarget + +# ---------------------------------------------------------------------------- +# Command compat::clearsource +# ---------------------------------------------------------------------------- +proc compat::clearsource {window} { +};# compat::clearsource diff --git a/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_generic.tcl b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_generic.tcl new file mode 100644 index 0000000..698b464 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_generic.tcl @@ -0,0 +1,520 @@ +# +# tkdnd_generic.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval generic { + variable _types {} + variable _typelist {} + variable _codelist {} + variable _actionlist {} + variable _pressedkeys {} + variable _action {} + variable _common_drag_source_types {} + variable _common_drop_target_types {} + variable _drag_source {} + variable _drop_target {} + + variable _last_mouse_root_x 0 + variable _last_mouse_root_y 0 + + variable _tkdnd2platform + variable _platform2tkdnd + + proc debug {msg} { + puts $msg + };# debug + + proc initialise { } { + };# initialise + + proc initialise_platform_to_tkdnd_types { types } { + variable _platform2tkdnd + variable _tkdnd2platform + set _platform2tkdnd [dict create {*}$types] + set _tkdnd2platform [dict create] + foreach type [dict keys $_platform2tkdnd] { + dict lappend _tkdnd2platform [dict get $_platform2tkdnd $type] $type + } + };# initialise_platform_to_tkdnd_types + + proc initialise_tkdnd_to_platform_types { types } { + variable _tkdnd2platform + set _tkdnd2platform [dict create {*}$types] + };# initialise_tkdnd_to_platform_types + +};# namespace generic + +# ---------------------------------------------------------------------------- +# Command generic::HandleEnter +# ---------------------------------------------------------------------------- +proc generic::HandleEnter { drop_target drag_source typelist codelist + actionlist pressedkeys } { + variable _typelist; set _typelist $typelist + variable _pressedkeys; set _pressedkeys $pressedkeys + variable _action; set _action refuse_drop + variable _common_drag_source_types; set _common_drag_source_types {} + variable _common_drop_target_types; set _common_drop_target_types {} + variable _actionlist + variable _drag_source; set _drag_source $drag_source + variable _drop_target; set _drop_target {} + variable _actionlist; set _actionlist $actionlist + variable _codelist set _codelist $codelist + + variable _last_mouse_root_x; set _last_mouse_root_x 0 + variable _last_mouse_root_y; set _last_mouse_root_y 0 + # debug "\n===============================================================" + # debug "generic::HandleEnter: drop_target=$drop_target,\ + # drag_source=$drag_source,\ + # typelist=$typelist" + # debug "generic::HandleEnter: ACTION: default" + return default +};# generic::HandleEnter + +# ---------------------------------------------------------------------------- +# Command generic::HandlePosition +# ---------------------------------------------------------------------------- +proc generic::HandlePosition { drop_target drag_source pressedkeys + rootX rootY { time 0 } } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + + # debug "generic::HandlePosition: drop_target=$drop_target,\ + # _drop_target=$_drop_target, rootX=$rootX, rootY=$rootY" + + if {![info exists _drag_source] && ![string length $_drag_source]} { + # debug "generic::HandlePosition: no or empty _drag_source:\ + # return refuse_drop" + return refuse_drop + } + + if {$drag_source ne "" && $drag_source ne $_drag_source} { + debug "generic position event from unexpected source: $_drag_source\ + != $drag_source" + return refuse_drop + } + + set _pressedkeys $pressedkeys + + ## Does the new drop target support any of our new types? + # foreach {common_drag_source_types common_drop_target_types} \ + # [GetWindowCommonTypes $drop_target $_typelist] {break} + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [FindWindowWithCommonTypes $drop_target $_typelist] {break} + set data [GetDroppedData $time] + + # debug "\t($_drop_target) -> ($drop_target)" + if {$drop_target != $_drop_target} { + if {[string length $_drop_target]} { + ## Call the <> event. + # debug "\t<> on $_drop_target" + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A \{$_action\} %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D \{\} %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + uplevel \#0 $cmd + } + } + set _drop_target $drop_target + set _action refuse_drop + + if {[llength $common_drag_source_types]} { + set _action [lindex $_actionlist 0] + set _common_drag_source_types $common_drag_source_types + set _common_drop_target_types $common_drop_target_types + ## Drop target supports at least one type. Send a <>. + # puts "<> -> $drop_target" + set cmd [bind $drop_target <>] + if {[string length $cmd]} { + focus $drop_target + set cmd [string map [list %W $drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + } + } + } + + set _drop_target {} + if {[llength $common_drag_source_types]} { + set _common_drag_source_types $common_drag_source_types + set _common_drop_target_types $common_drop_target_types + set _drop_target $drop_target + ## Drop target supports at least one type. Send a <>. + set cmd [bind $drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + } + # Return values: copy, move, link, ask, private, refuse_drop, default + # debug "generic::HandlePosition: ACTION: $_action" + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action +};# generic::HandlePosition + +# ---------------------------------------------------------------------------- +# Command generic::HandleLeave +# ---------------------------------------------------------------------------- +proc generic::HandleLeave { } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + variable _last_mouse_root_x + variable _last_mouse_root_y + if {![info exists _drop_target]} {set _drop_target {}} + # debug "generic::HandleLeave: _drop_target=$_drop_target" + if {[info exists _drop_target] && [string length $_drop_target]} { + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target \ + %X $_last_mouse_root_x %Y $_last_mouse_root_y \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A \{$_action\} %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D \{\} %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + } + foreach var {_types _typelist _actionlist _pressedkeys _action + _common_drag_source_types _common_drop_target_types + _drag_source _drop_target} { + set $var {} + } +};# generic::HandleLeave + +# ---------------------------------------------------------------------------- +# Command generic::HandleDrop +# ---------------------------------------------------------------------------- +proc generic::HandleDrop {drop_target drag_source pressedkeys rootX rootY time } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + variable _last_mouse_root_x + variable _last_mouse_root_y + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + + set _pressedkeys $pressedkeys + + # puts "generic::HandleDrop: $time" + + if {![info exists _drag_source] && ![string length $_drag_source]} { + return refuse_drop + } + if {![info exists _drop_target] && ![string length $_drop_target]} { + return refuse_drop + } + if {![llength $_common_drag_source_types]} {return refuse_drop} + ## Get the dropped data. + set data [GetDroppedData $time] + ## Try to select the most specific <> event. + foreach type [concat $_common_drag_source_types $_common_drop_target_types] { + set type [platform_independent_type $type] + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + # Return values: copy, move, link, ask, private, refuse_drop + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action + } + } + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + # Return values: copy, move, link, ask, private, refuse_drop + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action +};# generic::HandleDrop + +# ---------------------------------------------------------------------------- +# Command generic::GetWindowCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetWindowCommonTypes { win typelist } { + set types [bind $win <>] + # debug ">> Accepted types: $win $_types" + set common_drag_source_types {} + set common_drop_target_types {} + if {[llength $types]} { + ## Examine the drop target types, to find at least one match with the drag + ## source types... + set supported_types [supported_types $typelist] + foreach type $types { + foreach matched [lsearch -glob -all -inline $supported_types $type] { + ## Drop target supports this type. + lappend common_drag_source_types $matched + lappend common_drop_target_types $type + } + } + } + list $common_drag_source_types $common_drop_target_types +};# generic::GetWindowCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::FindWindowWithCommonTypes +# ---------------------------------------------------------------------------- +proc generic::FindWindowWithCommonTypes { win typelist } { + set toplevel [winfo toplevel $win] + while {![string equal $win $toplevel]} { + foreach {common_drag_source_types common_drop_target_types} \ + [GetWindowCommonTypes $win $typelist] {break} + if {[llength $common_drag_source_types]} { + return [list $win $common_drag_source_types $common_drop_target_types] + } + set win [winfo parent $win] + } + ## We have reached the toplevel, which may be also a target (SF Bug #30) + foreach {common_drag_source_types common_drop_target_types} \ + [GetWindowCommonTypes $win $typelist] {break} + if {[llength $common_drag_source_types]} { + return [list $win $common_drag_source_types $common_drop_target_types] + } + return { {} {} {} } +};# generic::FindWindowWithCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::GetDroppedData +# ---------------------------------------------------------------------------- +proc generic::GetDroppedData { time } { + variable _dropped_data + return $_dropped_data +};# generic::GetDroppedData + +# ---------------------------------------------------------------------------- +# Command generic::SetDroppedData +# ---------------------------------------------------------------------------- +proc generic::SetDroppedData { data } { + variable _dropped_data + set _dropped_data $data +};# generic::SetDroppedData + +# ---------------------------------------------------------------------------- +# Command generic::GetDragSource +# ---------------------------------------------------------------------------- +proc generic::GetDragSource { } { + variable _drag_source + return $_drag_source +};# generic::GetDragSource + +# ---------------------------------------------------------------------------- +# Command generic::GetDropTarget +# ---------------------------------------------------------------------------- +proc generic::GetDropTarget { } { + variable _drop_target + return $_drop_target +};# generic::GetDropTarget + +# ---------------------------------------------------------------------------- +# Command generic::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetDragSourceCommonTypes { } { + variable _common_drag_source_types + return $_common_drag_source_types +};# generic::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::GetDropTargetCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetDropTargetCommonTypes { } { + variable _common_drag_source_types + return $_common_drag_source_types +};# generic::GetDropTargetCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::platform_specific_types +# ---------------------------------------------------------------------------- +proc generic::platform_specific_types { types } { + set new_types {} + foreach type $types { + set new_types [concat $new_types [platform_specific_type $type]] + } + return $new_types +}; # generic::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command generic::platform_specific_type +# ---------------------------------------------------------------------------- +proc generic::platform_specific_type { type } { + variable _tkdnd2platform + if {[dict exists $_tkdnd2platform $type]} { + return [dict get $_tkdnd2platform $type] + } + list $type +}; # generic::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + set new_types {} + foreach type $types { + set new_types [concat $new_types [platform_independent_type $type]] + } + return $new_types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command generic::platform_independent_type +# ---------------------------------------------------------------------------- +proc generic::platform_independent_type { type } { + variable _platform2tkdnd + if {[dict exists $_platform2tkdnd $type]} { + return [dict get $_platform2tkdnd $type] + } + return $type +}; # generic::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command generic::supported_types +# ---------------------------------------------------------------------------- +proc generic::supported_types { types } { + set new_types {} + foreach type $types { + if {[supported_type $type]} {lappend new_types $type} + } + return $new_types +}; # generic::supported_types + +# ---------------------------------------------------------------------------- +# Command generic::supported_type +# ---------------------------------------------------------------------------- +proc generic::supported_type { type } { + variable _platform2tkdnd + if {[dict exists $_platform2tkdnd $type]} { + return 1 + } + return 0 +}; # generic::supported_type diff --git a/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_macosx.tcl b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_macosx.tcl new file mode 100644 index 0000000..307f6da --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_macosx.tcl @@ -0,0 +1,144 @@ +# +# tkdnd_macosx.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. + +# This software is copyrighted by: +# Georgios Petasis, Athens, Greece. +# e-mail: petasisg@yahoo.gr, petasis@iit.demokritos.gr +# +# Mac portions (c) 2009 Kevin Walzer/WordTech Communications LLC, +# kw@codebykevin.com +# +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +#basic API for Mac Drag and Drop + +#two data types supported: strings and file paths + +#two commands at C level: ::tkdnd::macdnd::registerdragwidget, ::tkdnd::macdnd::unregisterdragwidget + +#data retrieval mechanism: text or file paths are copied from drag clipboard to system clipboard and retrieved via [clipboard get]; array of file paths is converted to single tab-separated string, can be split into Tcl list + +if {[tk windowingsystem] eq "aqua" && "AppKit" ni [winfo server .]} { + error {TkAqua Cocoa required} +} + +namespace eval macdnd { + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + NSPasteboardTypeString DND_Text \ + NSFilenamesPboardType DND_Files \ + NSPasteboardTypeHTML DND_HTML \ + ] + };# initialise + +};# namespace macdnd + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleEnter +# ---------------------------------------------------------------------------- +proc macdnd::HandleEnter { path drag_source typelist { data {} } } { + variable _pressedkeys + variable _actionlist + set _pressedkeys 1 + set _actionlist { copy move link ask private } + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \ + $_actionlist $_pressedkeys +};# macdnd::HandleEnter + +# ---------------------------------------------------------------------------- +# Command macdnd::HandlePosition +# ---------------------------------------------------------------------------- +proc macdnd::HandlePosition { drop_target rootX rootY {drag_source {}} } { + variable _pressedkeys + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + ::tkdnd::generic::HandlePosition $drop_target $drag_source \ + $_pressedkeys $rootX $rootY +};# macdnd::HandlePosition + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleLeave +# ---------------------------------------------------------------------------- +proc macdnd::HandleLeave { args } { + ::tkdnd::generic::HandleLeave +};# macdnd::HandleLeave + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleDrop +# ---------------------------------------------------------------------------- +proc macdnd::HandleDrop { drop_target data args } { + variable _pressedkeys + variable _last_mouse_root_x + variable _last_mouse_root_y + ## Get the dropped data... + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \ + $_last_mouse_root_x $_last_mouse_root_y 0 +};# macdnd::HandleDrop + +# ---------------------------------------------------------------------------- +# Command macdnd::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc macdnd::GetDragSourceCommonTypes { } { + ::tkdnd::generic::GetDragSourceCommonTypes +};# macdnd::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc macdnd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # macdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc macdnd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # macdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc macdnd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # macdnd::platform_independent_type diff --git a/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_unix.tcl b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_unix.tcl new file mode 100644 index 0000000..56d17c4 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_unix.tcl @@ -0,0 +1,810 @@ +# +# tkdnd_unix.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval xdnd { + variable _dragging 0 + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + text/plain\;charset=utf-8 DND_Text \ + UTF8_STRING DND_Text \ + text/plain DND_Text \ + STRING DND_Text \ + TEXT DND_Text \ + COMPOUND_TEXT DND_Text \ + text/uri-list DND_Files \ + text/html\;charset=utf-8 DND_HTML \ + text/html DND_HTML \ + application/x-color DND_Color \ + ] + };# initialise + +};# namespace xdnd + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndEnter +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndEnter { path drag_source typelist time { data {} } } { + variable _pressedkeys + variable _actionlist + variable _typelist + set _pressedkeys 1 + set _actionlist { copy move link ask private } + set _typelist $typelist + # puts "xdnd::HandleXdndEnter: $time" + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \ + $_actionlist $_pressedkeys +};# xdnd::HandleXdndEnter + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndPosition +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndPosition { drop_target rootX rootY time {drag_source {}} } { + variable _pressedkeys + variable _typelist + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + # puts "xdnd::HandleXdndPosition: $time" + ## Get the dropped data... + catch { + ::tkdnd::generic::SetDroppedData [GetPositionData $drop_target $_typelist $time] + } + ::tkdnd::generic::HandlePosition $drop_target $drag_source \ + $_pressedkeys $rootX $rootY +};# xdnd::HandleXdndPosition + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndLeave +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndLeave { } { + ::tkdnd::generic::HandleLeave +};# xdnd::HandleXdndLeave + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndDrop +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndDrop { time } { + variable _pressedkeys + variable _last_mouse_root_x + variable _last_mouse_root_y + ## Get the dropped data... + ::tkdnd::generic::SetDroppedData [GetDroppedData \ + [::tkdnd::generic::GetDragSource] [::tkdnd::generic::GetDropTarget] \ + [::tkdnd::generic::GetDragSourceCommonTypes] $time] + ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \ + $_last_mouse_root_x $_last_mouse_root_y $time +};# xdnd::HandleXdndDrop + +# ---------------------------------------------------------------------------- +# Command xdnd::GetPositionData +# ---------------------------------------------------------------------------- +proc xdnd::GetPositionData { drop_target typelist time } { + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [::tkdnd::generic::FindWindowWithCommonTypes $drop_target $typelist] {break} + GetDroppedData [::tkdnd::generic::GetDragSource] $drop_target \ + $common_drag_source_types $time +};# xdnd::GetPositionData + +# ---------------------------------------------------------------------------- +# Command xdnd::GetDroppedData +# ---------------------------------------------------------------------------- +proc xdnd::GetDroppedData { _drag_source _drop_target _common_drag_source_types time } { + if {![llength $_common_drag_source_types]} { + error "no common data types between the drag source and drop target widgets" + } + ## Is drag source in this application? + if {[catch {winfo pathname -displayof $_drop_target $_drag_source} p]} { + set _use_tk_selection 0 + } else { + set _use_tk_selection 1 + } + foreach type $_common_drag_source_types { + # puts "TYPE: $type ($_drop_target)" + # _get_selection $_drop_target $time $type + if {$_use_tk_selection} { + if {![catch { + selection get -displayof $_drop_target -selection XdndSelection \ + -type $type + } result options]} { + return [normalise_data $type $result] + } + } else { + # puts "_selection_get -displayof $_drop_target -selection XdndSelection \ + # -type $type -time $time" + #after 100 [list focus -force $_drop_target] + #after 50 [list raise [winfo toplevel $_drop_target]] + if {![catch { + _selection_get -displayof $_drop_target -selection XdndSelection \ + -type $type -time $time + } result options]} { + return [normalise_data $type $result] + } + } + } + return -options $options $result +};# xdnd::GetDroppedData + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc xdnd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # xdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc xdnd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # xdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc xdnd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # xdnd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command xdnd::_normalise_data +# ---------------------------------------------------------------------------- +proc xdnd::normalise_data { type data } { + # Tk knows how to interpret the following types: + # STRING, TEXT, COMPOUND_TEXT + # UTF8_STRING + # Else, it returns a list of 8 or 32 bit numbers... + switch -glob $type { + STRING - UTF8_STRING - TEXT - COMPOUND_TEXT {return $data} + text/html { + if {[catch { + encoding convertfrom unicode $data + } string]} { + set string $data + } + return [string map {\r\n \n} $string] + } + text/html\;charset=utf-8 - + text/plain\;charset=utf-8 - + text/plain { + if {[catch { + encoding convertfrom utf-8 [tkdnd::bytes_to_string $data] + } string]} { + set string $data + } + return [string map {\r\n \n} $string] + } + text/uri-list* { + if {[catch { + encoding convertfrom utf-8 [tkdnd::bytes_to_string $data] + } string]} { + set string $data + } + ## Get rid of \r\n + set string [string trim [string map {\r\n \n} $string]] + set files {} + foreach quoted_file [split $string] { + set file [tkdnd::urn_unquote $quoted_file] + switch -glob $file { + \#* {} + file://* {lappend files [string range $file 7 end]} + ftp://* - + https://* - + http://* {lappend files $quoted_file} + default {lappend files $file} + } + } + return $files + } + application/x-color { + return $data + } + text/x-moz-url - + application/q-iconlist - + default {return $data} + } +}; # xdnd::normalise_data + +############################################################################# +## +## XDND drag implementation +## +############################################################################# + +# ---------------------------------------------------------------------------- +# Command xdnd::_selection_ownership_lost +# ---------------------------------------------------------------------------- +proc xdnd::_selection_ownership_lost {} { + variable _dragging + set _dragging 0 +};# _selection_ownership_lost + +# ---------------------------------------------------------------------------- +# Command xdnd::_dodragdrop +# ---------------------------------------------------------------------------- +proc xdnd::_dodragdrop { source actions types data button } { + variable _dragging + + # puts "xdnd::_dodragdrop: source: $source, actions: $actions, types: $types,\ + # data: \"$data\", button: $button" + if {$_dragging} { + ## We are in the middle of another drag operation... + error "another drag operation in progress" + } + + variable _dodragdrop_drag_source $source + variable _dodragdrop_drop_target 0 + variable _dodragdrop_drop_target_proxy 0 + variable _dodragdrop_actions $actions + variable _dodragdrop_action_descriptions $actions + variable _dodragdrop_actions_len [llength $actions] + variable _dodragdrop_types $types + variable _dodragdrop_types_len [llength $types] + variable _dodragdrop_data $data + variable _dodragdrop_transfer_data {} + variable _dodragdrop_button $button + variable _dodragdrop_time 0 + variable _dodragdrop_default_action refuse_drop + variable _dodragdrop_waiting_status 0 + variable _dodragdrop_drop_target_accepts_drop 0 + variable _dodragdrop_drop_target_accepts_action refuse_drop + variable _dodragdrop_current_cursor $_dodragdrop_default_action + variable _dodragdrop_drop_occured 0 + variable _dodragdrop_selection_requestor 0 + + ## + ## If we have more than 3 types, the property XdndTypeList must be set on + ## the drag source widget... + ## + if {$_dodragdrop_types_len > 3} { + _announce_type_list $_dodragdrop_drag_source $_dodragdrop_types + } + + ## + ## Announce the actions & their descriptions on the XdndActionList & + ## XdndActionDescription properties... + ## + _announce_action_list $_dodragdrop_drag_source $_dodragdrop_actions \ + $_dodragdrop_action_descriptions + + ## + ## Arrange selection handlers for our drag source, and all the supported types + ## + registerSelectionHandler $source $types + + ## + ## Step 1: When a drag begins, the source takes ownership of XdndSelection. + ## + selection own -command ::tkdnd::xdnd::_selection_ownership_lost \ + -selection XdndSelection $source + set _dragging 1 + + ## Grab the mouse pointer... + _grab_pointer $source $_dodragdrop_default_action + + ## Register our generic event handler... + # The generic event callback will report events by modifying variable + # ::xdnd::_dodragdrop_event: a dict with event information will be set as + # the value of the variable... + _register_generic_event_handler + + ## Set a timeout for debugging purposes... + # after 60000 {set ::tkdnd::xdnd::_dragging 0} + + tkwait variable ::tkdnd::xdnd::_dragging + _SendXdndLeave + + set _dragging 0 + _ungrab_pointer $source + _unregister_generic_event_handler + catch {selection clear -selection XdndSelection} + unregisterSelectionHandler $source $types + return $_dodragdrop_drop_target_accepts_action +};# xdnd::_dodragdrop + +# ---------------------------------------------------------------------------- +# Command xdnd::_process_drag_events +# ---------------------------------------------------------------------------- +proc xdnd::_process_drag_events {event} { + # The return value from proc is normally 0. A non-zero return value indicates + # that the event is not to be handled further; that is, proc has done all + # processing that is to be allowed for the event + variable _dragging + if {!$_dragging} {return 0} + # puts $event + + variable _dodragdrop_time + set time [dict get $event time] + set type [dict get $event type] + if {$time < $_dodragdrop_time && ![string equal $type SelectionRequest]} { + return 0 + } + set _dodragdrop_time $time + + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_default_action + switch $type { + MotionNotify { + set rootx [dict get $event x_root] + set rooty [dict get $event y_root] + set window [_find_drop_target_window $_dodragdrop_drag_source \ + $rootx $rooty] + if {[string length $window]} { + ## Examine the modifiers to suggest an action... + set _dodragdrop_default_action [_default_action $event] + ## Is it a Tk widget? + # set path [winfo containing $rootx $rooty] + # puts "Window under mouse: $window ($path)" + if {$_dodragdrop_drop_target != $window} { + ## Send XdndLeave to $_dodragdrop_drop_target + _SendXdndLeave + ## Is there a proxy? If not, _find_drop_target_proxy returns the + ## target window, so we always get a valid "proxy". + set proxy [_find_drop_target_proxy $_dodragdrop_drag_source $window] + ## Send XdndEnter to $window + _SendXdndEnter $window $proxy + ## Send XdndPosition to $_dodragdrop_drop_target + _SendXdndPosition $rootx $rooty $_dodragdrop_default_action + } else { + ## Send XdndPosition to $_dodragdrop_drop_target + _SendXdndPosition $rootx $rooty $_dodragdrop_default_action + } + } else { + ## No window under the mouse. Send XdndLeave to $_dodragdrop_drop_target + _SendXdndLeave + } + } + ButtonPress { + } + ButtonRelease { + variable _dodragdrop_button + set button [dict get $event button] + if {$button == $_dodragdrop_button} { + ## The button that initiated the drag was released. Trigger drop... + _SendXdndDrop + } + return 1 + } + KeyPress { + } + KeyRelease { + set keysym [dict get $event keysym] + switch $keysym { + Escape { + ## The user has pressed escape. Abort... + if {$_dragging} {set _dragging 0} + } + } + } + SelectionRequest { + variable _dodragdrop_selection_requestor + variable _dodragdrop_selection_property + variable _dodragdrop_selection_selection + variable _dodragdrop_selection_target + variable _dodragdrop_selection_time + set _dodragdrop_selection_requestor [dict get $event requestor] + set _dodragdrop_selection_property [dict get $event property] + set _dodragdrop_selection_selection [dict get $event selection] + set _dodragdrop_selection_target [dict get $event target] + set _dodragdrop_selection_time $time + return 0 + } + default { + return 0 + } + } + return 0 +};# _process_drag_events + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndEnter +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndEnter {window proxy} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_types + variable _dodragdrop_waiting_status + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_target > 0} _SendXdndLeave + if {$_dodragdrop_drop_occured} return + set _dodragdrop_drop_target $window + set _dodragdrop_drop_target_proxy $proxy + set _dodragdrop_waiting_status 0 + if {$_dodragdrop_drop_target < 1} return + # puts "XdndEnter: $_dodragdrop_drop_target $_dodragdrop_drop_target_proxy" + _send_XdndEnter $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy $_dodragdrop_types +};# xdnd::_SendXdndEnter + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndPosition +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndPosition {rootx rooty action} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_waiting_status + ## Arrange a new XdndPosition, to be send periodically... + variable _dodragdrop_xdnd_position_heartbeat + catch {after cancel $_dodragdrop_xdnd_position_heartbeat} + set _dodragdrop_xdnd_position_heartbeat [after 200 \ + [list ::tkdnd::xdnd::_SendXdndPosition $rootx $rooty $action]] + if {$_dodragdrop_waiting_status} {return} + # puts "XdndPosition: $_dodragdrop_drop_target $rootx $rooty $action" + _send_XdndPosition $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy $rootx $rooty $action + set _dodragdrop_waiting_status 1 +};# xdnd::_SendXdndPosition + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndStatus +# ---------------------------------------------------------------------------- +proc xdnd::_HandleXdndStatus {event} { + variable _dodragdrop_drop_target + variable _dodragdrop_waiting_status + + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + set _dodragdrop_waiting_status 0 + foreach key {target accept want_position action x y w h} { + set $key [dict get $event $key] + } + set _dodragdrop_drop_target_accepts_drop $accept + set _dodragdrop_drop_target_accepts_action $action + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + _update_cursor + # puts "XdndStatus: $event" +};# xdnd::_HandleXdndStatus + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndFinished +# ---------------------------------------------------------------------------- +proc xdnd::_HandleXdndFinished {event} { + variable _dodragdrop_xdnd_finished_event_after_id + catch {after cancel $_dodragdrop_xdnd_finished_event_after_id} + set _dodragdrop_xdnd_finished_event_after_id {} + variable _dodragdrop_drop_target + set _dodragdrop_drop_target 0 + variable _dragging + if {$_dragging} {set _dragging 0} + + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + if {[dict size $event]} { + foreach key {target accept action} { + set $key [dict get $event $key] + } + set _dodragdrop_drop_target_accepts_drop $accept + set _dodragdrop_drop_target_accepts_action $action + } else { + set _dodragdrop_drop_target_accepts_drop 0 + } + if {!$_dodragdrop_drop_target_accepts_drop} { + set _dodragdrop_drop_target_accepts_action refuse_drop + } + # puts "XdndFinished: $event" +};# xdnd::_HandleXdndFinished + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndLeave +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndLeave {} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_target_proxy + # puts "XdndLeave: $_dodragdrop_drop_target" + _send_XdndLeave $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy + set _dodragdrop_drop_target 0 + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + set _dodragdrop_drop_target_accepts_drop 0 + set _dodragdrop_drop_target_accepts_action refuse_drop + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + _update_cursor +};# xdnd::_SendXdndLeave + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndDrop +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndDrop {} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} { + ## The mouse has been released over a widget that does not accept drops. + _HandleXdndFinished {} + return + } + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} {return} + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + + set _dodragdrop_drop_occured 1 + _update_cursor clock + + if {!$_dodragdrop_drop_target_accepts_drop} { + _SendXdndLeave + _HandleXdndFinished {} + return + } + # puts "XdndDrop: $_dodragdrop_drop_target" + variable _dodragdrop_drop_timestamp + set _dodragdrop_drop_timestamp [_send_XdndDrop \ + $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy] + set _dodragdrop_drop_target 0 + # puts "XdndDrop: $_dodragdrop_drop_target" + ## Arrange a timeout for receiving XdndFinished... + variable _dodragdrop_xdnd_finished_event_after_id + set _dodragdrop_xdnd_finished_event_after_id \ + [after 10000 [list ::tkdnd::xdnd::_HandleXdndFinished {}]] +};# xdnd::_SendXdndDrop + +# ---------------------------------------------------------------------------- +# Command xdnd::_update_cursor +# ---------------------------------------------------------------------------- +proc xdnd::_update_cursor { {cursor {}}} { + # puts "_update_cursor $cursor" + variable _dodragdrop_current_cursor + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + + if {![string length $cursor]} { + set cursor refuse_drop + if {$_dodragdrop_drop_target_accepts_drop} { + set cursor $_dodragdrop_drop_target_accepts_action + } + } + if {![string equal $cursor $_dodragdrop_current_cursor]} { + _set_pointer_cursor $_dodragdrop_drag_source $cursor + set _dodragdrop_current_cursor $cursor + } +};# xdnd::_update_cursor + +# ---------------------------------------------------------------------------- +# Command xdnd::_default_action +# ---------------------------------------------------------------------------- +proc xdnd::_default_action {event} { + variable _dodragdrop_actions + variable _dodragdrop_actions_len + if {$_dodragdrop_actions_len == 1} {return [lindex $_dodragdrop_actions 0]} + + set alt [dict get $event Alt] + set shift [dict get $event Shift] + set control [dict get $event Control] + + if {$shift && $control && [lsearch $_dodragdrop_actions link] != -1} { + return link + } elseif {$control && [lsearch $_dodragdrop_actions copy] != -1} { + return copy + } elseif {$shift && [lsearch $_dodragdrop_actions move] != -1} { + return move + } elseif {$alt && [lsearch $_dodragdrop_actions link] != -1} { + return link + } + return default +};# xdnd::_default_action + +# ---------------------------------------------------------------------------- +# Command xdnd::getFormatForType +# ---------------------------------------------------------------------------- +proc xdnd::getFormatForType {type} { + switch -glob [string tolower $type] { + text/plain\;charset=utf-8 - + text/html\;charset=utf-8 - + utf8_string {set format UTF8_STRING} + text/html - + text/plain - + string - + text - + compound_text {set format STRING} + text/uri-list* {set format UTF8_STRING} + application/x-color {set format $type} + default {set format $type} + } + return $format +};# xdnd::getFormatForType + +# ---------------------------------------------------------------------------- +# Command xdnd::registerSelectionHandler +# ---------------------------------------------------------------------------- +proc xdnd::registerSelectionHandler {source types} { + foreach type $types { + selection handle -selection XdndSelection \ + -type $type \ + -format [getFormatForType $type] \ + $source [list ::tkdnd::xdnd::_SendData $type] + } +};# xdnd::registerSelectionHandler + +# ---------------------------------------------------------------------------- +# Command xdnd::unregisterSelectionHandler +# ---------------------------------------------------------------------------- +proc xdnd::unregisterSelectionHandler {source types} { + foreach type $types { + catch { + selection handle -selection XdndSelection \ + -type $type \ + -format [getFormatForType $type] \ + $source {} + } + } +};# xdnd::unregisterSelectionHandler + +# ---------------------------------------------------------------------------- +# Command xdnd::_convert_to_unsigned +# ---------------------------------------------------------------------------- +proc xdnd::_convert_to_unsigned {data format} { + switch $format { + 8 { set mask 0xff } + 16 { set mask 0xffff } + 32 { set mask 0xffffff } + default {error "unsupported format $format"} + } + ## Convert signed integer into unsigned... + set d [list] + foreach num $data { + lappend d [expr { $num & $mask }] + } + return $d +};# xdnd::_convert_to_unsigned + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendData +# ---------------------------------------------------------------------------- +proc xdnd::_SendData {type offset bytes args} { + variable _dodragdrop_drag_source + variable _dodragdrop_types + variable _dodragdrop_data + variable _dodragdrop_transfer_data + + ## The variable _dodragdrop_data contains a list of data, one for each + ## type in the _dodragdrop_types variable. We have to search types, and find + ## the corresponding entry in the _dodragdrop_data list. + set index [lsearch $_dodragdrop_types $type] + if {$index < 0} { + error "unable to locate data suitable for type \"$type\"" + } + set typed_data [lindex $_dodragdrop_data $index] + set format 8 + if {$offset == 0} { + ## Prepare the data to be transferred... + switch -glob $type { + text/plain* - UTF8_STRING - STRING - TEXT - COMPOUND_TEXT { + binary scan [encoding convertto utf-8 $typed_data] \ + c* _dodragdrop_transfer_data + set _dodragdrop_transfer_data \ + [_convert_to_unsigned $_dodragdrop_transfer_data $format] + } + text/uri-list* { + set files [list] + foreach file $typed_data { + switch -glob $file { + *://* {lappend files $file} + default {lappend files file://$file} + } + } + binary scan [encoding convertto utf-8 "[join $files \r\n]\r\n"] \ + c* _dodragdrop_transfer_data + set _dodragdrop_transfer_data \ + [_convert_to_unsigned $_dodragdrop_transfer_data $format] + } + application/x-color { + set format 16 + ## Try to understand the provided data: we accept a standard Tk colour, + ## or a list of 3 values (red green blue) or a list of 4 values + ## (red green blue opacity). + switch [llength $typed_data] { + 1 { set color [winfo rgb $_dodragdrop_drag_source $typed_data] + lappend color 65535 } + 3 { set color $typed_data; lappend color 65535 } + 4 { set color $typed_data } + default {error "unknown color data: \"$typed_data\""} + } + ## Convert the 4 elements into 16 bit values... + set _dodragdrop_transfer_data [list] + foreach c $color { + lappend _dodragdrop_transfer_data [format 0x%04X $c] + } + } + default { + set format 32 + binary scan $typed_data c* _dodragdrop_transfer_data + } + } + } + + ## + ## Data has been split into bytes. Count the bytes requested, and return them + ## + set data [lrange $_dodragdrop_transfer_data $offset [expr {$offset+$bytes-1}]] + switch $format { + 8 { + set data [encoding convertfrom utf-8 [binary format c* $data]] + } + 16 { + variable _dodragdrop_selection_requestor + if {$_dodragdrop_selection_requestor} { + ## Tk selection cannot process this format (only 8 & 32 supported). + ## Call our XChangeProperty... + set numItems [llength $data] + variable _dodragdrop_selection_property + variable _dodragdrop_selection_selection + variable _dodragdrop_selection_target + variable _dodragdrop_selection_time + XChangeProperty $_dodragdrop_drag_source \ + $_dodragdrop_selection_requestor \ + $_dodragdrop_selection_property \ + $_dodragdrop_selection_target \ + $format \ + $_dodragdrop_selection_time \ + $data $numItems + return -code break + } + } + 32 { + } + default { + error "unsupported format $format" + } + } + # puts "SendData: $type $offset $bytes $args ($typed_data)" + # puts " $data" + return $data +};# xdnd::_SendData diff --git a/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_utils.tcl b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_utils.tcl new file mode 100644 index 0000000..ee961dd --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_utils.tcl @@ -0,0 +1,252 @@ +# +# tkdnd_utils.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +package require tkdnd +namespace eval ::tkdnd { + namespace eval utils { + };# namespace ::tkdnd::utils + namespace eval text { + variable _drag_tag tkdnd::drag::selection::tag + variable _state {} + variable _drag_source_widget {} + variable _drop_target_widget {} + variable _now_dragging 0 + };# namespace ::tkdnd::text +};# namespace ::tkdnd + +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag clear 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag motion 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_TextAutoScan %W %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag reset 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag clear 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag motion 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag reset 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag clear 3 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag motion 3 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag reset 3 %W %s %X %Y %x %y} + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::drag_source +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::drag_source { mode path { types DND_Text } { event 1 } { tagprefix TkDND_Drag_Text } { tag sel } } { + switch -exact -- $mode { + register { + $path tag bind $tag \ + "tkdnd::text::_begin_drag press ${event} %W %s %X %Y %x %y" + ## Set a binding to the widget, to put selection as data... + bind $path <> "::tkdnd::text::DragInitCmd $path {%t} $tag" + ## Set a binding to the widget, to remove selection if action is move... + bind $path <> "::tkdnd::text::DragEndCmd $path %A $tag" + } + unregister { + $path tag bind $tag {} + bind $path <> {} + bind $path <> {} + } + } + ::tkdnd::drag_source $mode $path $types $event $tagprefix +};# ::tkdnd::text::drag_source + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::drop_target +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::drop_target { mode path { types DND_Text } } { + switch -exact -- $mode { + register { + bind $path <> "::tkdnd::text::DropPosition $path %X %Y %A %a %m" + bind $path <> "::tkdnd::text::Drop $path %D %X %Y %A %a %m" + } + unregister { + bind $path <> {} + bind $path <> {} + bind $path <> {} + bind $path <> {} + } + } + ::tkdnd::drop_target $mode $path $types +};# ::tkdnd::text::drop_target + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DragInitCmd +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DragInitCmd { path { types DND_Text } { tag sel } { actions { copy move } } } { + ## Save the selection indices... + variable _drag_source_widget + variable _drop_target_widget + set _drag_source_widget $path + set _drop_target_widget {} + _save_selection $path $tag + list $actions $types [$path get $tag.first $tag.last] +};# ::tkdnd::text::DragInitCmd + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DragEndCmd +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DragEndCmd { path action { tag sel } } { + variable _drag_source_widget + variable _drop_target_widget + set _drag_source_widget {} + set _drop_target_widget {} + _restore_selection $path $tag + switch -exact -- $action { + move { + ## Delete the original selected text... + variable _selection_first + variable _selection_last + $path delete $_selection_first $_selection_last + } + } +};# ::tkdnd::text::DragEndCmd + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DropPosition +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DropPosition { path X Y action actions keys} { + variable _drag_source_widget + variable _drop_target_widget + set _drop_target_widget $path + ## This check is primitive, a more accurate one is needed! + if {$path eq $_drag_source_widget} { + ## This is a drag within the same widget! Set action to move... + if {"move" in $actions} {set action move} + } + incr X -[winfo rootx $path] + incr Y -[winfo rooty $path] + $path mark set insert @$X,$Y; update + return $action +};# ::tkdnd::text::DropPosition + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::Drop +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::Drop { path data X Y action actions keys } { + incr X -[winfo rootx $path] + incr Y -[winfo rooty $path] + $path mark set insert @$X,$Y + $path insert [$path index insert] $data + return $action +};# ::tkdnd::text::Drop + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_save_selection +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_save_selection { path tag} { + variable _drag_tag + variable _selection_first + variable _selection_last + variable _selection_tag $tag + set _selection_first [$path index $tag.first] + set _selection_last [$path index $tag.last] + $path tag add $_drag_tag $_selection_first $_selection_last + $path tag configure $_drag_tag \ + -background [$path tag cget $tag -background] \ + -foreground [$path tag cget $tag -foreground] +};# tkdnd::text::_save_selection + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_restore_selection +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_restore_selection { path tag} { + variable _drag_tag + variable _selection_first + variable _selection_last + $path tag delete $_drag_tag + $path tag remove $tag 0.0 end + #$path tag add $tag $_selection_first $_selection_last +};# tkdnd::text::_restore_selection + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_begin_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_begin_drag { event button source state X Y x y } { + variable _drop_target_widget + variable _state + # puts "::tkdnd::text::_begin_drag $event $button $source $state $X $Y $x $y" + + switch -exact -- $event { + clear { + switch -exact -- $_state { + press { + ## Do not execute other bindings, as they will erase selection... + return -code break + } + } + set _state clear + } + motion { + variable _now_dragging + if {$_now_dragging} {return -code break} + if { [string equal $_state "press"] } { + variable _x0; variable _y0 + if { abs($_x0-$X) > ${::tkdnd::_dx} || abs($_y0-$Y) > ${::tkdnd::_dy} } { + set _state "done" + set _drop_target_widget {} + set _now_dragging 1 + set code [catch { + ::tkdnd::_init_drag $button $source $state $X $Y $x $y + } info options] + set _drop_target_widget {} + set _now_dragging 0 + if {$code != 0} { + ## Something strange occurred... + return -options $options $info + } + } + return -code break + } + set _state clear + } + press { + variable _x0; variable _y0 + set _x0 $X + set _y0 $Y + set _state "press" + } + reset { + set _state {} + } + } + if {$source eq $_drop_target_widget} {return -code break} + return -code continue +};# tkdnd::text::_begin_drag + +proc tkdnd::text::_TextAutoScan {w x y} { + variable _now_dragging + if {$_now_dragging} {return -code break} + return -code continue +};# tkdnd::text::_TextAutoScan diff --git a/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_windows.tcl b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_windows.tcl new file mode 100644 index 0000000..a1d01f3 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx64/tkdnd_windows.tcl @@ -0,0 +1,167 @@ +# +# tkdnd_windows.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval olednd { + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + CF_UNICODETEXT DND_Text \ + CF_TEXT DND_Text \ + CF_HDROP DND_Files \ + UniformResourceLocator DND_URL \ + CF_HTML DND_HTML \ + {HTML Format} DND_HTML \ + CF_RTF DND_RTF \ + CF_RTFTEXT DND_RTF \ + {Rich Text Format} DND_RTF \ + ] + # FileGroupDescriptorW DND_Files \ + # FileGroupDescriptor DND_Files \ + + ## Mapping from TkDND types to platform types... + ::tkdnd::generic::initialise_tkdnd_to_platform_types [list \ + DND_Text {CF_UNICODETEXT CF_TEXT} \ + DND_Files {CF_HDROP} \ + DND_URL {UniformResourceLocator UniformResourceLocatorW} \ + DND_HTML {CF_HTML {HTML Format}} \ + DND_RTF {CF_RTF CF_RTFTEXT {Rich Text Format}} \ + ] + };# initialise + +};# namespace olednd + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragEnter +# ---------------------------------------------------------------------------- +proc olednd::HandleDragEnter { drop_target typelist actionlist pressedkeys + rootX rootY codelist { data {} } } { + ::tkdnd::generic::SetDroppedData $data + focus $drop_target + ::tkdnd::generic::HandleEnter $drop_target 0 $typelist \ + $codelist $actionlist $pressedkeys + set action [::tkdnd::generic::HandlePosition $drop_target {} \ + $pressedkeys $rootX $rootY] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDragEnter + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragOver +# ---------------------------------------------------------------------------- +proc olednd::HandleDragOver { drop_target pressedkeys rootX rootY } { + set action [::tkdnd::generic::HandlePosition $drop_target {} \ + $pressedkeys $rootX $rootY] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDragOver + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragLeave +# ---------------------------------------------------------------------------- +proc olednd::HandleDragLeave { drop_target } { + ::tkdnd::generic::HandleLeave + if {$::tkdnd::_auto_update} {update idletasks} +};# olednd::HandleDragLeave + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDrop +# ---------------------------------------------------------------------------- +proc olednd::HandleDrop { drop_target pressedkeys rootX rootY type data } { + ::tkdnd::generic::SetDroppedData [normalise_data $type $data] + set action [::tkdnd::generic::HandleDrop $drop_target {} \ + $pressedkeys $rootX $rootY 0] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDrop + +# ---------------------------------------------------------------------------- +# Command olednd::GetDataType +# ---------------------------------------------------------------------------- +proc olednd::GetDataType { drop_target typelist } { + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [::tkdnd::generic::FindWindowWithCommonTypes $drop_target $typelist] {break} + lindex $common_drag_source_types 0 +};# olednd::GetDataType + +# ---------------------------------------------------------------------------- +# Command olednd::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc olednd::GetDragSourceCommonTypes { drop_target } { + ::tkdnd::generic::GetDragSourceCommonTypes +};# olednd::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command olednd::platform_specific_types +# ---------------------------------------------------------------------------- +proc olednd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # olednd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command olednd::platform_specific_type +# ---------------------------------------------------------------------------- +proc olednd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # olednd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command olednd::platform_independent_type +# ---------------------------------------------------------------------------- +proc olednd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # olednd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command olednd::normalise_data +# ---------------------------------------------------------------------------- +proc olednd::normalise_data { type data } { + switch [lindex [::tkdnd::generic::platform_independent_type $type] 0] { + DND_Text {return $data} + DND_Files {return $data} + DND_HTML {return [encoding convertfrom utf-8 $data]} + default {return $data} + } +}; # olednd::normalise_data diff --git a/gui_data/tkinterdnd2/tkdnd/osx_arm/libtkdnd2.9.3.dylib b/gui_data/tkinterdnd2/tkdnd/osx_arm/libtkdnd2.9.3.dylib new file mode 100644 index 0000000000000000000000000000000000000000..9efdec82229fc40f474900a00c93a862f7038262 GIT binary patch literal 74608 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 {tkdnd::_begin_drag press 1 %W %s %X %Y %x %y} + bind TkDND_Drag1 {tkdnd::_begin_drag motion 1 %W %s %X %Y %x %y} + bind TkDND_Drag2 {tkdnd::_begin_drag press 2 %W %s %X %Y %x %y} + bind TkDND_Drag2 {tkdnd::_begin_drag motion 2 %W %s %X %Y %x %y} + bind TkDND_Drag3 {tkdnd::_begin_drag press 3 %W %s %X %Y %x %y} + bind TkDND_Drag3 {tkdnd::_begin_drag motion 3 %W %s %X %Y %x %y} + + # ---------------------------------------------------------------------------- + # Command tkdnd::debug_enabled: returns the requested debug level (0 = no debug). + # ---------------------------------------------------------------------------- + proc debug_enabled { {level {}} } { + variable _debug_level + if {$level != {}} { + if {[string is integer -strict $level]} { + set _debug_level $level + } elseif {[string is true $level]} { + set _debug_level 1 + } + } + return $_debug_level + };# debug_enabled + + # ---------------------------------------------------------------------------- + # Command tkdnd::source: source a Tcl fileInitialise the TkDND package. + # ---------------------------------------------------------------------------- + proc source { filename { encoding utf-8 } } { + variable _package_dir + # If in debug mode, enable debug statements... + set dbg_lvl [debug_enabled] + if {$dbg_lvl} { + puts "tkdnd::source (debug level $dbg_lvl) $filename" + set fd [open $filename r] + fconfigure $fd -encoding $encoding + set script [read $fd] + close $fd + set map {} + for {set lvl 0} {$lvl <= $dbg_lvl} {incr lvl} { + lappend map "\#\D\B\G$lvl " {} ;# Do not remove these \\ + } + lappend map "\#\D\B\G\ " {} ;# Do not remove these \\ + set script [string map $map $script] + return [eval $script] + } + ::source -encoding $encoding $filename + };# source + + # ---------------------------------------------------------------------------- + # Command tkdnd::initialise: Initialise the TkDND package. + # ---------------------------------------------------------------------------- + proc initialise { dir PKG_LIB_FILE PACKAGE_NAME} { + variable _package_dir + variable _platform_namespace + variable _drop_file_temp_dir + variable _windowingsystem + global env + + set _package_dir $dir + + switch [tk windowingsystem] { + x11 { + set _windowingsystem x11 + } + win32 - + windows { + set _windowingsystem windows + } + aqua { + set _windowingsystem aqua + } + default { + error "unknown Tk windowing system" + } + } + + ## Get User's home directory: We try to locate the proper path from a set of + ## environmental variables... + foreach var {HOME HOMEPATH USERPROFILE ALLUSERSPROFILE APPDATA} { + if {[info exists env($var)]} { + if {[file isdirectory $env($var)]} { + set UserHomeDir $env($var) + break + } + } + } + + ## Should use [tk windowingsystem] instead of tcl platform array: + ## OS X returns "unix," but that's not useful because it has its own + ## windowing system, aqua + ## Under windows we have to also combine HOMEDRIVE & HOMEPATH... + if {![info exists UserHomeDir] && + [string equal $_windowingsystem windows] && + [info exists env(HOMEDRIVE)] && [info exists env(HOMEPATH)]} { + if {[file isdirectory $env(HOMEDRIVE)$env(HOMEPATH)]} { + set UserHomeDir $env(HOMEDRIVE)$env(HOMEPATH) + } + } + ## Have we located the needed path? + if {![info exists UserHomeDir]} { + set UserHomeDir [pwd] + } + set UserHomeDir [file normalize $UserHomeDir] + + ## Try to locate a temporary directory... + foreach var {TKDND_TEMP_DIR TEMP TMP} { + if {[info exists env($var)]} { + if {[file isdirectory $env($var)] && [file writable $env($var)]} { + set _drop_file_temp_dir $env($var) + break + } + } + } + if {![info exists _drop_file_temp_dir]} { + foreach _dir [list "$UserHomeDir/Local Settings/Temp" \ + "$UserHomeDir/AppData/Local/Temp" \ + /tmp \ + C:/WINDOWS/Temp C:/Temp C:/tmp \ + D:/WINDOWS/Temp D:/Temp D:/tmp] { + if {[file isdirectory $_dir] && [file writable $_dir]} { + set _drop_file_temp_dir $_dir + break + } + } + } + if {![info exists _drop_file_temp_dir]} { + set _drop_file_temp_dir $UserHomeDir + } + set _drop_file_temp_dir [file native $_drop_file_temp_dir] + + source $dir/tkdnd_generic.tcl + switch $_windowingsystem { + x11 { + source $dir/tkdnd_unix.tcl + set _platform_namespace xdnd + } + win32 - + windows { + source $dir/tkdnd_windows.tcl + set _platform_namespace olednd + } + aqua { + source $dir/tkdnd_macosx.tcl + set _platform_namespace macdnd + } + default { + error "unknown Tk windowing system" + } + } + load $dir/$PKG_LIB_FILE $PACKAGE_NAME + source $dir/tkdnd_compat.tcl + ${_platform_namespace}::initialise + };# initialise + + proc GetDropFileTempDirectory { } { + variable _drop_file_temp_dir + return $_drop_file_temp_dir + } + proc SetDropFileTempDirectory { dir } { + variable _drop_file_temp_dir + set _drop_file_temp_dir $dir + } + + proc debug {msg} { + puts $msg + };# debug + +};# namespace ::tkdnd + +# ---------------------------------------------------------------------------- +# Command tkdnd::drag_source +# ---------------------------------------------------------------------------- +proc ::tkdnd::drag_source { mode path { types {} } { event 1 } + { tagprefix TkDND_Drag } } { + #DBG debug "::tkdnd::drag_source $mode $path $types $event $tagprefix" + foreach single_event $event { + set tags [bindtags $path] + set idx [lsearch $tags ${tagprefix}$single_event] + switch -- $mode { + register { + if { $idx != -1 } { + ## No need to do anything! + # bindtags $path [lreplace $tags $idx $idx ${tagprefix}$single_event] + } else { + bindtags $path [linsert $tags 1 ${tagprefix}$single_event] + } + _drag_source_update_types $path $types + } + unregister { + if { $idx != -1 } { + bindtags $path [lreplace $tags $idx $idx] + } + } + } + } +};# tkdnd::drag_source + +proc ::tkdnd::_drag_source_update_types { path types } { + set types [platform_specific_types $types] + set old_types [bind $path <>] + foreach type $types { + if {[lsearch $old_types $type] < 0} {lappend old_types $type} + } + bind $path <> $old_types +};# ::tkdnd::_drag_source_update_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::drop_target +# ---------------------------------------------------------------------------- +proc ::tkdnd::drop_target { mode path { types {} } } { + variable _windowingsystem + set types [platform_specific_types $types] + switch -- $mode { + register { + switch $_windowingsystem { + x11 { + _register_types $path [winfo toplevel $path] $types + } + win32 - + windows { + _RegisterDragDrop $path + bind $path {+ tkdnd::_RevokeDragDrop %W} + } + aqua { + macdnd::registerdragwidget [winfo toplevel $path] $types + } + default { + error "unknown Tk windowing system" + } + } + set old_types [bind $path <>] + set new_types {} + foreach type $types { + if {[lsearch -exact $old_types $type] < 0} {lappend new_types $type} + } + if {[llength $new_types]} { + bind $path <> [concat $old_types $new_types] + } + } + unregister { + switch $_windowingsystem { + x11 { + } + win32 - + windows { + _RevokeDragDrop $path + } + aqua { + error todo + } + default { + error "unknown Tk windowing system" + } + } + bind $path <> {} + } + } +};# tkdnd::drop_target + +# ---------------------------------------------------------------------------- +# Command tkdnd::_begin_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_begin_drag { event button source state X Y x y } { + variable _x0 + variable _y0 + variable _state + + switch -- $event { + press { + set _x0 $X + set _y0 $Y + set _state "press" + } + motion { + if { ![info exists _state] } { + # This is just extra protection. There seem to be + # rare cases where the motion comes before the press. + return + } + if { [string equal $_state "press"] } { + variable _dx + variable _dy + if { abs($_x0-$X) > ${_dx} || abs($_y0-$Y) > ${_dy} } { + set _state "done" + _init_drag $button $source $state $X $Y $x $y + } + } + } + } +};# tkdnd::_begin_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::_init_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_init_drag { button source state rootX rootY X Y } { + #DBG debug "::tkdnd::_init_drag $button $source $state $rootX $rootY $X $Y" + # Call the <> binding. + set cmd [bind $source <>] + #DBG debug "CMD: $cmd" + if {[string length $cmd]} { + set cmd [string map [list %W [list $source] \ + %X $rootX %Y $rootY %x $X %y $Y \ + %S $state %e <> %A \{\} %% % \ + %b \{$button\} \ + %t \{[bind $source <>]\}] $cmd] + set code [catch {uplevel \#0 $cmd} info options] + #DBG debug "CODE: $code ---- $info" + switch -exact -- $code { + 0 {} + 3 - 4 { + # FRINK: nocheck + return + } + default { + return -options $options $info + } + } + + set len [llength $info] + if {$len == 3} { + foreach { actions types _data } $info { break } + set types [platform_specific_types $types] + set data [list] + foreach type $types { + lappend data $_data + } + unset _data + } elseif {$len == 2} { + foreach { actions _data } $info { break } + set data [list]; set types [list] + foreach {t d} $_data { + foreach t [platform_specific_types $t] { + lappend types $t; lappend data $d + } + } + unset _data t d + } else { + foreach { actions } $info { break } + if {$len == 1 && [string equal [lindex $actions 0] "refuse_drop"]} { + return + } + error "not enough items in the result of the <>\ + event binding. Either 2 or 3 items are expected. The command + executed was: \"$cmd\"\nResult was: \"$info\"" + } + set action refuse_drop + + ## Custom Cursors... + # Call the <> binding. + set cursor_map [bind $source <>] + + variable _windowingsystem + #DBG debug "Source: \"$source\"" + #DBG debug "Types: \"[join $types {", "}]\"" + #DBG debug "Actions: \"[join $actions {", "}]\"" + #DBG debug "Button: \"$button\"" + #DBG debug "Data: \"[string range $data 0 100]\"" + #DBG debug "CursorMap: \"[string range $cursor_map 0 100]\"" + switch $_windowingsystem { + x11 { + set action [xdnd::_dodragdrop $source $actions $types $data $button $cursor_map] + } + win32 - + windows { + set action [_DoDragDrop $source $actions $types $data $button] + } + aqua { + set action [macdnd::dodragdrop $source $actions $types $data $button] + } + default { + error "unknown Tk windowing system" + } + } + ## Call _end_drag to notify the widget of the result of the drag + ## operation... + _end_drag $button $source {} $action {} $data {} $state $rootX $rootY $X $Y + } +};# tkdnd::_init_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::_end_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_end_drag { button source target action type data result + state rootX rootY X Y } { + set rootX 0 + set rootY 0 + # Call the <> binding. + set cmd [bind $source <>] + if {[string length $cmd]} { + set cmd [string map [list %W [list $source] \ + %X $rootX %Y $rootY %x $X %y $Y %% % \ + %b \{$button\} \ + %S $state %e <> %A \{$action\}] $cmd] + set info [uplevel \#0 $cmd] + # if { $info != "" } { + # variable _windowingsystem + # foreach { actions types data } $info { break } + # set types [platform_specific_types $types] + # switch $_windowingsystem { + # x11 { + # error "dragging from Tk widgets not yet supported" + # } + # win32 - + # windows { + # set action [_DoDragDrop $source $actions $types $data $button] + # } + # aqua { + # macdnd::dodragdrop $source $actions $types $data + # } + # default { + # error "unknown Tk windowing system" + # } + # } + # ## Call _end_drag to notify the widget of the result of the drag + # ## operation... + # _end_drag $button $source {} $action {} $data {} $state $rootX $rootY + # } + } +};# tkdnd::_end_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_specific_types { types } { + variable _platform_namespace + ${_platform_namespace}::platform_specific_types $types +}; # tkdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + variable _platform_namespace + ${_platform_namespace}::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_specific_type { type } { + variable _platform_namespace + ${_platform_namespace}::platform_specific_type $type +}; # tkdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_type { type } { + variable _platform_namespace + ${_platform_namespace}::platform_independent_type $type +}; # tkdnd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::bytes_to_string +# ---------------------------------------------------------------------------- +proc ::tkdnd::bytes_to_string { bytes } { + set string {} + foreach byte $bytes { + append string [binary format c $byte] + } + return $string +};# tkdnd::bytes_to_string + +# ---------------------------------------------------------------------------- +# Command tkdnd::urn_unquote +# ---------------------------------------------------------------------------- +proc ::tkdnd::urn_unquote {url} { + set result "" + set start 0 + while {[regexp -start $start -indices {%[0-9a-fA-F]{2}} $url match]} { + foreach {first last} $match break + append result [string range $url $start [expr {$first - 1}]] + append result [format %c 0x[string range $url [incr first] $last]] + set start [incr last] + } + append result [string range $url $start end] + return [encoding convertfrom utf-8 $result] +};# tkdnd::urn_unquote diff --git a/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_compat.tcl b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_compat.tcl new file mode 100644 index 0000000..efc96f7 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_compat.tcl @@ -0,0 +1,160 @@ +# +# tkdnd_compat.tcl -- +# +# This file implements some utility procedures, to support older versions +# of the TkDND package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval compat { + +};# namespace compat + +# ---------------------------------------------------------------------------- +# Command ::dnd +# ---------------------------------------------------------------------------- +proc ::dnd {method window args} { + switch $method { + bindtarget { + switch [llength $args] { + 0 {return [tkdnd::compat::bindtarget0 $window]} + 1 {return [tkdnd::compat::bindtarget1 $window [lindex $args 0]]} + 2 {return [tkdnd::compat::bindtarget2 $window [lindex $args 0] \ + [lindex $args 1]]} + 3 {return [tkdnd::compat::bindtarget3 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2]]} + 4 {return [tkdnd::compat::bindtarget4 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2] [lindex $args 3]]} + } + } + cleartarget { + return [tkdnd::compat::cleartarget $window] + } + bindsource { + switch [llength $args] { + 0 {return [tkdnd::compat::bindsource0 $window]} + 1 {return [tkdnd::compat::bindsource1 $window [lindex $args 0]]} + 2 {return [tkdnd::compat::bindsource2 $window [lindex $args 0] \ + [lindex $args 1]]} + 3 {return [tkdnd::compat::bindsource3 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2]]} + } + } + clearsource { + return [tkdnd::compat::clearsource $window] + } + drag { + return [tkdnd::_init_drag 1 $window "press" 0 0 0 0] + } + } + error "invalid number of arguments!" +};# ::dnd + +# ---------------------------------------------------------------------------- +# Command compat::bindtarget +# ---------------------------------------------------------------------------- +proc compat::bindtarget0 {window} { + return [bind $window <>] +};# compat::bindtarget0 + +proc compat::bindtarget1 {window type} { + return [bindtarget2 $window $type ] +};# compat::bindtarget1 + +proc compat::bindtarget2 {window type event} { + switch $event { + {return [bind $window <>]} + {return [bind $window <>]} + {return [bind $window <>]} + {return [bind $window <>]} + } +};# compat::bindtarget2 + +proc compat::bindtarget3 {window type event script} { + set type [normalise_type $type] + ::tkdnd::drop_target register $window [list $type] + switch $event { + {return [bind $window <> $script]} + {return [bind $window <> $script]} + {return [bind $window <> $script]} + {return [bind $window <> $script]} + } +};# compat::bindtarget3 + +proc compat::bindtarget4 {window type event script priority} { + return [bindtarget3 $window $type $event $script] +};# compat::bindtarget4 + +proc compat::normalise_type { type } { + switch $type { + text/plain - + {text/plain;charset=UTF-8} - + Text {return DND_Text} + text/uri-list - + Files {return DND_Files} + default {return $type} + } +};# compat::normalise_type + +# ---------------------------------------------------------------------------- +# Command compat::bindsource +# ---------------------------------------------------------------------------- +proc compat::bindsource0 {window} { + return [bind $window <>] +};# compat::bindsource0 + +proc compat::bindsource1 {window type} { + return [bindsource2 $window $type ] +};# compat::bindsource1 + +proc compat::bindsource2 {window type script} { + set type [normalise_type $type] + ::tkdnd::drag_source register $window $type + bind $window <> "list {copy} {%t} \[$script\]" +};# compat::bindsource2 + +proc compat::bindsource3 {window type script priority} { + return [bindsource2 $window $type $script] +};# compat::bindsource3 + +# ---------------------------------------------------------------------------- +# Command compat::cleartarget +# ---------------------------------------------------------------------------- +proc compat::cleartarget {window} { +};# compat::cleartarget + +# ---------------------------------------------------------------------------- +# Command compat::clearsource +# ---------------------------------------------------------------------------- +proc compat::clearsource {window} { +};# compat::clearsource diff --git a/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_generic.tcl b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_generic.tcl new file mode 100644 index 0000000..2ffcb98 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_generic.tcl @@ -0,0 +1,587 @@ +# +# tkdnd_generic.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval generic { + variable _types {} + variable _typelist {} + variable _codelist {} + variable _actionlist {} + variable _pressedkeys {} + variable _pressedmods {} + variable _action {} + variable _common_drag_source_types {} + variable _common_drop_target_types {} + variable _drag_source {} + variable _drop_target {} + + variable _last_mouse_root_x 0 + variable _last_mouse_root_y 0 + + variable _tkdnd2platform + variable _platform2tkdnd + + variable _integer_test entier + if {[catch {string is entier 1234}]} { + set _integer_test integer + } + + proc debug { msg } { + tkdnd::debug $msg + };# debug + + proc initialise { } { + };# initialise + + proc initialise_platform_to_tkdnd_types { types } { + variable _platform2tkdnd + variable _tkdnd2platform + # set _platform2tkdnd [dict create {*}$types] ;# {*} not available in 8.4 + set _platform2tkdnd [dict create] + foreach {p t} $types { + dict set _platform2tkdnd $p $t + } + set _tkdnd2platform [dict create] + foreach type [dict keys $_platform2tkdnd] { + dict lappend _tkdnd2platform [dict get $_platform2tkdnd $type] $type + } + };# initialise_platform_to_tkdnd_types + + proc initialise_tkdnd_to_platform_types { types } { + variable _tkdnd2platform + # set _tkdnd2platform [dict create {*}$types] ;# {*} not available in 8.4 + set _tkdnd2platform [dict create] + foreach {t p} $types { + dict set _tkdnd2platform $t $p + } + };# initialise_tkdnd_to_platform_types + +};# namespace generic + +# ---------------------------------------------------------------------------- +# Command generic::SetPressedKeys +# ---------------------------------------------------------------------------- +proc generic::SetPressedKeys { pressedkeys } { + variable _pressedkeys + variable _pressedmods + variable _integer_test + set keys {} + set mods {} + foreach {b} $pressedkeys { + if {[string is $_integer_test -strict $b]} { + lappend keys $b + } else { + lappend mods $b + } + } + set _pressedkeys $keys + set _pressedmods $mods +};# generic::SetPressedKeys + +# ---------------------------------------------------------------------------- +# Command generic::HandleEnter +# ---------------------------------------------------------------------------- +proc generic::HandleEnter { drop_target drag_source typelist codelist + actionlist pressedkeys } { + variable _typelist; set _typelist $typelist + variable _action; set _action refuse_drop + variable _common_drag_source_types; set _common_drag_source_types {} + variable _common_drop_target_types; set _common_drop_target_types {} + variable _actionlist + variable _drag_source; set _drag_source $drag_source + variable _drop_target; set _drop_target {} + variable _actionlist; set _actionlist $actionlist + variable _codelist set _codelist $codelist + + variable _last_mouse_root_x; set _last_mouse_root_x 0 + variable _last_mouse_root_y; set _last_mouse_root_y 0 + SetPressedKeys $pressedkeys + #DBG debug "\n===============================================================" + #DBG debug "generic::HandleEnter: drop_target=$drop_target,\ + #DBG drag_source=$drag_source,\ + #DBG typelist=$typelist" + #DBG debug "generic::HandleEnter: ACTION: default" + return default +};# generic::HandleEnter + +# ---------------------------------------------------------------------------- +# Command generic::HandlePosition +# ---------------------------------------------------------------------------- +proc generic::HandlePosition { drop_target drag_source pressedkeys + rootX rootY { action {} } { time 0 } } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _pressedmods + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + + #DBG debug "generic::HandlePosition: drop_target=$drop_target,\ + #DBG _drop_target=$_drop_target, rootX=$rootX, rootY=$rootY" + + if {![info exists _drag_source] || ![string length $_drag_source]} { + #DBG debug "generic::HandlePosition: no or empty _drag_source:\ + #DBG return refuse_drop" + return refuse_drop + } + + if {$drag_source ne "" && $drag_source ne $_drag_source} { + #DBG debug "generic position event from unexpected source: $_drag_source\ + #DBG != $drag_source" + return refuse_drop + } + + SetPressedKeys $pressedkeys + + ## Does the new drop target support any of our new types? + # foreach {common_drag_source_types common_drop_target_types} \ + # [GetWindowCommonTypes $drop_target $_typelist] {break} + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [FindWindowWithCommonTypes $drop_target $_typelist] {break} + set data [GetDroppedData $time] + + #DBG debug "\t($_drop_target) -> ($drop_target)" + if {$drop_target != $_drop_target} { + if {[string length $_drop_target]} { + ## Call the <> event. + #DBG debug "\t<> on $_drop_target" + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set widgetX 0; set widgetY 0 + catch {set widgetX [expr {$rootX - [winfo rootx $_drop_target]}]} + catch {set widgetY [expr {$rootY - [winfo rooty $_drop_target]}]} + set cmd [string map [list %W [list $_drop_target] \ + %X $rootX %Y $rootY %x $widgetX %y $widgetY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A \{$_action\} %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedmods\} \ + %D \{\} %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + uplevel \#0 $cmd + } + } + set _drop_target $drop_target + set _action refuse_drop + + if {[llength $common_drag_source_types]} { + switch -exact -- $action { + default - {} { set _action [lindex $_actionlist 0] } + default { set _action $action } + } + set _common_drag_source_types $common_drag_source_types + set _common_drop_target_types $common_drop_target_types + ## Drop target supports at least one type. Send a <>. + #DBG debug "<> -> $drop_target" + set cmd [bind $drop_target <>] + if {[string length $cmd]} { + set widgetX 0; set widgetY 0 + catch {set widgetX [expr {$rootX - [winfo rootx $drop_target]}]} + catch {set widgetY [expr {$rootY - [winfo rooty $drop_target]}]} + focus $drop_target + set cmd [string map [list %W [list $drop_target] \ + %X $rootX %Y $rootY %x $widgetX %y $widgetY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedmods\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + } + } + } + + set _drop_target {} + if {[llength $common_drag_source_types]} { + set _common_drag_source_types $common_drag_source_types + set _common_drop_target_types $common_drop_target_types + set _drop_target $drop_target + ## Drop target supports at least one type. Send a <>. + set cmd [bind $drop_target <>] + if {[string length $cmd]} { + switch -exact -- $action { + default - {} { set _action [lindex $_actionlist 0] } + default { set _action $action } + } + set widgetX 0; set widgetY 0 + catch {set widgetX [expr {$rootX - [winfo rootx $drop_target]}]} + catch {set widgetY [expr {$rootY - [winfo rooty $drop_target]}]} + set cmd [string map [list %W [list $drop_target] \ + %X $rootX %Y $rootY %x $widgetX %y $widgetY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedmods\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + } + # Return values: copy, move, link, ask, private, refuse_drop, default + #DBG debug "generic::HandlePosition: ACTION: $_action" + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action +};# generic::HandlePosition + +# ---------------------------------------------------------------------------- +# Command generic::HandleLeave +# ---------------------------------------------------------------------------- +proc generic::HandleLeave { } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _pressedmods + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + variable _last_mouse_root_x + variable _last_mouse_root_y + if {![info exists _drop_target]} {set _drop_target {}} + #DBG debug "generic::HandleLeave: _drop_target=$_drop_target" + if {[info exists _drop_target] && [string length $_drop_target]} { + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set widgetX 0; set widgetY 0 + catch {set widgetX [expr {$_last_mouse_root_x - [winfo rootx $_drop_target]}]} + catch {set widgetY [expr {$_last_mouse_root_y - [winfo rooty $_drop_target]}]} + set cmd [string map [list %W [list $_drop_target] \ + %X $_last_mouse_root_x %Y $_last_mouse_root_y %x $widgetX %y $widgetY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A \{$_action\} %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedmods\} \ + %D \{\} %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + } + foreach var {_types _typelist _actionlist _pressedkeys _pressedmods _action + _common_drag_source_types _common_drop_target_types + _drag_source _drop_target} { + set $var {} + } +};# generic::HandleLeave + +# ---------------------------------------------------------------------------- +# Command generic::HandleDrop +# ---------------------------------------------------------------------------- +proc generic::HandleDrop {drop_target drag_source pressedkeys rootX rootY time } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _pressedmods + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + variable _last_mouse_root_x + variable _last_mouse_root_y + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + + SetPressedKeys $pressedkeys + + #DBG debug "generic::HandleDrop: $time" + + if {![info exists _drag_source] && ![string length $_drag_source]} { + return refuse_drop + } + if {![info exists _drop_target] && ![string length $_drop_target]} { + return refuse_drop + } + if {![llength $_common_drag_source_types]} {return refuse_drop} + ## Get the dropped data. + set data [GetDroppedData $time] + ## Try to select the most specific <> event. + foreach type [concat $_common_drag_source_types $_common_drop_target_types] { + set type [platform_independent_type $type] + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set widgetX 0; set widgetY 0 + catch {set widgetX [expr {$rootX - [winfo rootx $_drop_target]}]} + catch {set widgetY [expr {$rootY - [winfo rooty $_drop_target]}]} + set cmd [string map [list %W [list $_drop_target] \ + %X $rootX %Y $rootY %x $widgetX %y $widgetY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedmods\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + # Return values: copy, move, link, ask, private, refuse_drop + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action + } + } + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set widgetX 0; set widgetY 0 + catch {set widgetX [expr {$rootX - [winfo rootx $_drop_target]}]} + catch {set widgetY [expr {$rootY - [winfo rooty $_drop_target]}]} + set cmd [string map [list %W [list $_drop_target] \ + %X $rootX %Y $rootY %x $widgetX %y $widgetY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedmods\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + # Return values: copy, move, link, ask, private, refuse_drop + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action +};# generic::HandleDrop + +# ---------------------------------------------------------------------------- +# Command generic::GetWindowCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetWindowCommonTypes { win typelist } { + set types [bind $win <>] + #DBG debug ">> Accepted types: $win $_types" + set common_drag_source_types {} + set common_drop_target_types {} + if {[llength $types]} { + ## Examine the drop target types, to find at least one match with the drag + ## source types... + set supported_types [supported_types $typelist] + foreach type $types { + foreach matched [lsearch -glob -all -inline $supported_types $type] { + ## Drop target supports this type. + lappend common_drag_source_types $matched + lappend common_drop_target_types $type + } + } + } + list $common_drag_source_types $common_drop_target_types +};# generic::GetWindowCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::FindWindowWithCommonTypes +# ---------------------------------------------------------------------------- +proc generic::FindWindowWithCommonTypes { win typelist } { + set toplevel [winfo toplevel $win] + while {![string equal $win $toplevel]} { + foreach {common_drag_source_types common_drop_target_types} \ + [GetWindowCommonTypes $win $typelist] {break} + if {[llength $common_drag_source_types]} { + return [list $win $common_drag_source_types $common_drop_target_types] + } + set win [winfo parent $win] + } + ## We have reached the toplevel, which may be also a target (SF Bug #30) + foreach {common_drag_source_types common_drop_target_types} \ + [GetWindowCommonTypes $win $typelist] {break} + if {[llength $common_drag_source_types]} { + return [list $win $common_drag_source_types $common_drop_target_types] + } + return { {} {} {} } +};# generic::FindWindowWithCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::GetDroppedData +# ---------------------------------------------------------------------------- +proc generic::GetDroppedData { time } { + variable _dropped_data + return $_dropped_data +};# generic::GetDroppedData + +# ---------------------------------------------------------------------------- +# Command generic::SetDroppedData +# ---------------------------------------------------------------------------- +proc generic::SetDroppedData { data } { + variable _dropped_data + set _dropped_data $data +};# generic::SetDroppedData + +# ---------------------------------------------------------------------------- +# Command generic::GetDragSource +# ---------------------------------------------------------------------------- +proc generic::GetDragSource { } { + variable _drag_source + return $_drag_source +};# generic::GetDragSource + +# ---------------------------------------------------------------------------- +# Command generic::GetDropTarget +# ---------------------------------------------------------------------------- +proc generic::GetDropTarget { } { + variable _drop_target + return $_drop_target +};# generic::GetDropTarget + +# ---------------------------------------------------------------------------- +# Command generic::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetDragSourceCommonTypes { } { + variable _common_drag_source_types + return $_common_drag_source_types +};# generic::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::GetDropTargetCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetDropTargetCommonTypes { } { + variable _common_drag_source_types + return $_common_drag_source_types +};# generic::GetDropTargetCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::platform_specific_types +# ---------------------------------------------------------------------------- +proc generic::platform_specific_types { types } { + set new_types {} + foreach type $types { + set new_types [concat $new_types [platform_specific_type $type]] + } + return $new_types +}; # generic::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command generic::platform_specific_type +# ---------------------------------------------------------------------------- +proc generic::platform_specific_type { type } { + variable _tkdnd2platform + if {[dict exists $_tkdnd2platform $type]} { + return [dict get $_tkdnd2platform $type] + } + list $type +}; # generic::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command generic::platform_independent_types +# ---------------------------------------------------------------------------- +proc generic::platform_independent_types { types } { + set new_types {} + foreach type $types { + set new_types [concat $new_types [platform_independent_type $type]] + } + return $new_types +}; # generic::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command generic::platform_independent_type +# ---------------------------------------------------------------------------- +proc generic::platform_independent_type { type } { + variable _platform2tkdnd + if {[dict exists $_platform2tkdnd $type]} { + return [dict get $_platform2tkdnd $type] + } + return $type +}; # generic::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command generic::supported_types +# ---------------------------------------------------------------------------- +proc generic::supported_types { types } { + set new_types {} + foreach type $types { + if {[supported_type $type]} {lappend new_types $type} + } + return $new_types +}; # generic::supported_types + +# ---------------------------------------------------------------------------- +# Command generic::supported_type +# ---------------------------------------------------------------------------- +proc generic::supported_type { type } { + variable _platform2tkdnd + if {[dict exists $_platform2tkdnd $type]} { + return 1 + } + return 0 +}; # generic::supported_type diff --git a/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_macosx.tcl b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_macosx.tcl new file mode 100644 index 0000000..307f6da --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_macosx.tcl @@ -0,0 +1,144 @@ +# +# tkdnd_macosx.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. + +# This software is copyrighted by: +# Georgios Petasis, Athens, Greece. +# e-mail: petasisg@yahoo.gr, petasis@iit.demokritos.gr +# +# Mac portions (c) 2009 Kevin Walzer/WordTech Communications LLC, +# kw@codebykevin.com +# +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +#basic API for Mac Drag and Drop + +#two data types supported: strings and file paths + +#two commands at C level: ::tkdnd::macdnd::registerdragwidget, ::tkdnd::macdnd::unregisterdragwidget + +#data retrieval mechanism: text or file paths are copied from drag clipboard to system clipboard and retrieved via [clipboard get]; array of file paths is converted to single tab-separated string, can be split into Tcl list + +if {[tk windowingsystem] eq "aqua" && "AppKit" ni [winfo server .]} { + error {TkAqua Cocoa required} +} + +namespace eval macdnd { + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + NSPasteboardTypeString DND_Text \ + NSFilenamesPboardType DND_Files \ + NSPasteboardTypeHTML DND_HTML \ + ] + };# initialise + +};# namespace macdnd + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleEnter +# ---------------------------------------------------------------------------- +proc macdnd::HandleEnter { path drag_source typelist { data {} } } { + variable _pressedkeys + variable _actionlist + set _pressedkeys 1 + set _actionlist { copy move link ask private } + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \ + $_actionlist $_pressedkeys +};# macdnd::HandleEnter + +# ---------------------------------------------------------------------------- +# Command macdnd::HandlePosition +# ---------------------------------------------------------------------------- +proc macdnd::HandlePosition { drop_target rootX rootY {drag_source {}} } { + variable _pressedkeys + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + ::tkdnd::generic::HandlePosition $drop_target $drag_source \ + $_pressedkeys $rootX $rootY +};# macdnd::HandlePosition + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleLeave +# ---------------------------------------------------------------------------- +proc macdnd::HandleLeave { args } { + ::tkdnd::generic::HandleLeave +};# macdnd::HandleLeave + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleDrop +# ---------------------------------------------------------------------------- +proc macdnd::HandleDrop { drop_target data args } { + variable _pressedkeys + variable _last_mouse_root_x + variable _last_mouse_root_y + ## Get the dropped data... + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \ + $_last_mouse_root_x $_last_mouse_root_y 0 +};# macdnd::HandleDrop + +# ---------------------------------------------------------------------------- +# Command macdnd::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc macdnd::GetDragSourceCommonTypes { } { + ::tkdnd::generic::GetDragSourceCommonTypes +};# macdnd::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc macdnd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # macdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc macdnd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # macdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc macdnd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # macdnd::platform_independent_type diff --git a/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_unix.tcl b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_unix.tcl new file mode 100644 index 0000000..4446f21 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_unix.tcl @@ -0,0 +1,883 @@ +# +# tkdnd_unix.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval xdnd { + variable _dragging 0 + + proc debug { msg } { + tkdnd::debug $msg + };# debug + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + text/plain\;charset=utf-8 DND_Text \ + UTF8_STRING DND_Text \ + text/plain DND_Text \ + STRING DND_Text \ + TEXT DND_Text \ + COMPOUND_TEXT DND_Text \ + text/uri-list DND_Files \ + text/html\;charset=utf-8 DND_HTML \ + text/html DND_HTML \ + application/x-color DND_Color \ + ] + };# initialise + +};# namespace xdnd + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndEnter +# ---------------------------------------------------------------------------- +proc xdnd::GetPressedKeys { drop_target } { + #DBG debug "xdnd::GetPressedKeys: $drop_target" + if {[catch {set dict [_keyboard_get_state $drop_target]}]} { + return {} + } + set pressedkeys {} + for {set b 1} {$b <= 5} {incr b} { + if {[dict get $dict $b]} {lappend pressedkeys $b} + } + foreach {k l} {Alt alt Shift shift Control ctrl Lock caps_lock + Mod1 mod1 Mod2 mod2 Mod3 mod3 Mod4 mod4 Mod5 mod5} { + if {[dict get $dict $k]} {lappend pressedkeys $l} + } + #DBG debug "xdnd::GetPressedKeys: $drop_target -> $pressedkeys" + return $pressedkeys +};# xdnd::GetPressedKeys + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndEnter +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndEnter { drop_target drag_source typelist time + { data {} } } { + variable _pressedkeys + variable _actionlist + variable _typelist + set _pressedkeys [GetPressedKeys $drop_target] + set _actionlist { copy move link ask private } + set _typelist $typelist + #DBG debug "xdnd::HandleXdndEnter: $time" + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleEnter $drop_target $drag_source $typelist $typelist \ + $_actionlist $_pressedkeys +};# xdnd::HandleXdndEnter + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndPosition +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndPosition { drop_target rootX rootY time + { drag_source {} } { action default } } { + variable _pressedkeys + variable _typelist + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + set _pressedkeys [GetPressedKeys $drop_target] + #DBG debug "xdnd::HandleXdndPosition: $time" + ## Get the dropped data... + catch { + ::tkdnd::generic::SetDroppedData [GetPositionData $drop_target $_typelist $time] + } + ::tkdnd::generic::HandlePosition $drop_target $drag_source \ + $_pressedkeys $rootX $rootY $action +};# xdnd::HandleXdndPosition + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndLeave +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndLeave { } { + #DBG debug "xdnd::HandleXdndLeave" + ::tkdnd::generic::HandleLeave +};# xdnd::HandleXdndLeave + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndDrop +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndDrop { time } { + variable _pressedkeys + variable _last_mouse_root_x + variable _last_mouse_root_y + set _pressedkeys [GetPressedKeys [::tkdnd::generic::GetDropTarget]] + #DBG debug "xdnd::HandleXdndDrop: $time" + ## Get the dropped data... + ::tkdnd::generic::SetDroppedData [GetDroppedData \ + [::tkdnd::generic::GetDragSource] [::tkdnd::generic::GetDropTarget] \ + [::tkdnd::generic::GetDragSourceCommonTypes] $time] + ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \ + $_last_mouse_root_x $_last_mouse_root_y $time +};# xdnd::HandleXdndDrop + +# ---------------------------------------------------------------------------- +# Command xdnd::GetPositionData +# ---------------------------------------------------------------------------- +proc xdnd::GetPositionData { drop_target typelist time } { + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [::tkdnd::generic::FindWindowWithCommonTypes $drop_target $typelist] {break} + GetDroppedData [::tkdnd::generic::GetDragSource] $drop_target \ + $common_drag_source_types $time +};# xdnd::GetPositionData + +# ---------------------------------------------------------------------------- +# Command xdnd::GetDroppedData +# ---------------------------------------------------------------------------- +proc xdnd::GetDroppedData { _drag_source _drop_target _common_drag_source_types time } { + if {![llength $_common_drag_source_types]} { + return -code error "no common data types between the drag source and drop target widgets" + } + ## Is drag source in this application? + if {[catch {winfo pathname -displayof $_drop_target $_drag_source} p]} { + set _use_tk_selection 0 + } else { + set _use_tk_selection 1 + } + foreach type $_common_drag_source_types { + #DBG debug "TYPE: $type ($_drop_target)" + # _get_selection $_drop_target $time $type + if {$_use_tk_selection} { + if {![catch { + selection get -displayof $_drop_target -selection XdndSelection \ + -type $type + } result options]} { + return [normalise_data $type $result] + } + } else { + #DBG debug "_selection_get -displayof $_drop_target -selection XdndSelection \ + # -type $type -time $time" + #after 100 [list focus -force $_drop_target] + #after 50 [list raise [winfo toplevel $_drop_target]] + if {![catch { + _selection_get -displayof $_drop_target -selection XdndSelection \ + -type $type -time $time + } result options]} { + return [normalise_data $type $result] + } + } + } + return -options $options $result +};# xdnd::GetDroppedData + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc xdnd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # xdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc xdnd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # xdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc xdnd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # xdnd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command xdnd::_normalise_data +# ---------------------------------------------------------------------------- +proc xdnd::normalise_data { type data } { + # Tk knows how to interpret the following types: + # STRING, TEXT, COMPOUND_TEXT + # UTF8_STRING + # Else, it returns a list of 8 or 32 bit numbers... + switch -glob $type { + STRING - UTF8_STRING - TEXT - COMPOUND_TEXT {return $data} + text/html { + if {[catch { + encoding convertfrom unicode $data + } string]} { + set string $data + } + return [string map {\r\n \n} $string] + } + text/html\;charset=utf-8 - + text/plain\;charset=utf-8 - + text/plain { + if {[catch { + encoding convertfrom utf-8 [tkdnd::bytes_to_string $data] + } string]} { + set string $data + } + return [string map {\r\n \n} $string] + } + text/uri-list* { + if {[catch { + encoding convertfrom utf-8 [tkdnd::bytes_to_string $data] + } string]} { + set string $data + } + ## Get rid of \r\n + set string [string trim [string map {\r\n \n} $string]] + set files {} + foreach quoted_file [split $string] { + set file [tkdnd::urn_unquote $quoted_file] + switch -glob $file { + \#* {} + file://* {lappend files [string range $file 7 end]} + ftp://* - + https://* - + http://* {lappend files $quoted_file} + default {lappend files $file} + } + } + return $files + } + application/x-color { + return $data + } + text/x-moz-url - + application/q-iconlist - + default {return $data} + } +}; # xdnd::normalise_data + +############################################################################# +## +## XDND drag implementation +## +############################################################################# + +# ---------------------------------------------------------------------------- +# Command xdnd::_selection_ownership_lost +# ---------------------------------------------------------------------------- +proc xdnd::_selection_ownership_lost {} { + variable _dragging + set _dragging 0 +};# _selection_ownership_lost + +# ---------------------------------------------------------------------------- +# Command xdnd::_dodragdrop +# ---------------------------------------------------------------------------- +proc xdnd::_dodragdrop { source actions types data button { cursor_map {} } } { + variable _dragging + + #DBG debug "xdnd::_dodragdrop: source: $source, actions: $actions, types: $types,\ + #DBG data: \"$data\", button: $button" + if {$_dragging} { + ## We are in the middle of another drag operation... + error "another drag operation in progress" + } + + variable _dodragdrop_drag_source $source + variable _dodragdrop_drop_target 0 + variable _dodragdrop_drop_target_proxy 0 + variable _dodragdrop_actions $actions + variable _dodragdrop_action_descriptions $actions + variable _dodragdrop_actions_len [llength $actions] + variable _dodragdrop_types $types + variable _dodragdrop_types_len [llength $types] + variable _dodragdrop_data $data + variable _dodragdrop_transfer_data {} + variable _dodragdrop_button $button + variable _dodragdrop_time 0 + variable _dodragdrop_default_action refuse_drop + variable _dodragdrop_waiting_status 0 + variable _dodragdrop_drop_target_accepts_drop 0 + variable _dodragdrop_drop_target_accepts_action refuse_drop + variable _dodragdrop_current_cursor $_dodragdrop_default_action + variable _dodragdrop_drop_occured 0 + variable _dodragdrop_selection_requestor 0 + variable _dodragdrop_cursor_map $cursor_map + + ## + ## If we have more than 3 types, the property XdndTypeList must be set on + ## the drag source widget... + ## + if {$_dodragdrop_types_len > 3} { + _announce_type_list $_dodragdrop_drag_source $_dodragdrop_types + } + + ## + ## Announce the actions & their descriptions on the XdndActionList & + ## XdndActionDescription properties... + ## + _announce_action_list $_dodragdrop_drag_source $_dodragdrop_actions \ + $_dodragdrop_action_descriptions + + ## + ## Arrange selection handlers for our drag source, and all the supported types + ## + #DBG debug "xdnd::_dodragdrop: registerSelectionHandler $source $types" + registerSelectionHandler $source $types + + ## + ## Step 1: When a drag begins, the source takes ownership of XdndSelection. + ## + #DBG debug "xdnd::_dodragdrop: selection own $source" + selection own -command ::tkdnd::xdnd::_selection_ownership_lost \ + -selection XdndSelection $source + set _dragging 1 + + ## Grab the mouse pointer... + #DBG debug "xdnd::_dodragdrop: _grab_pointer $source [_get_mapped_cursor $_dodragdrop_default_action]" + _grab_pointer $source [_get_mapped_cursor $_dodragdrop_default_action] + + ## Register our generic event handler... + # The generic event callback will report events by modifying variable + # ::xdnd::_dodragdrop_event: a dict with event information will be set as + # the value of the variable... + #DBG debug "xdnd::_dodragdrop: _register_generic_event_handler" + _register_generic_event_handler + + ## Set a timeout for debugging purposes... + # after 60000 {set ::tkdnd::xdnd::_dragging 0} + + #DBG debug "xdnd::_dodragdrop: waiting drag action to finish..." + tkwait variable ::tkdnd::xdnd::_dragging + #DBG debug "xdnd::_dodragdrop: drag action finished!" + _SendXdndLeave + + set _dragging 0 + #DBG debug "xdnd::_dodragdrop: _ungrab_pointer $source" + _ungrab_pointer $source + #DBG debug "xdnd::_dodragdrop: _unregister_generic_event_handler" + _unregister_generic_event_handler + catch {selection clear -selection XdndSelection} + #DBG debug "xdnd::_dodragdrop: unregisterSelectionHandler $source $types" + unregisterSelectionHandler $source $types + return $_dodragdrop_drop_target_accepts_action +};# xdnd::_dodragdrop + +# ---------------------------------------------------------------------------- +# Command xdnd::_process_drag_events +# ---------------------------------------------------------------------------- +proc xdnd::_process_drag_events {event} { + # The return value from proc is normally 0. A non-zero return value indicates + # that the event is not to be handled further; that is, proc has done all + # processing that is to be allowed for the event + variable _dragging + if {!$_dragging} {return 0} + #DBG debug "xdnd::_process_drag_events: $event" + + variable _dodragdrop_time + set time [dict get $event time] + set type [dict get $event type] + if {$time < $_dodragdrop_time && ![string equal $type SelectionRequest]} { + #DBG debug "xdnd::_process_drag_events: return 0 (1)" + return 0 + } + set _dodragdrop_time $time + + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_default_action + switch $type { + MotionNotify { + set rootx [dict get $event x_root] + set rooty [dict get $event y_root] + set window [_find_drop_target_window $_dodragdrop_drag_source \ + $rootx $rooty] + if {[string length $window]} { + ## Examine the modifiers to suggest an action... + set _dodragdrop_default_action [_default_action $event] + ## Is it a Tk widget? + #DBG set path [winfo containing $rootx $rooty] + #DBG debug "Window under mouse: $window ($path)" + if {$_dodragdrop_drop_target != $window} { + ## Send XdndLeave to $_dodragdrop_drop_target + _SendXdndLeave + ## Is there a proxy? If not, _find_drop_target_proxy returns the + ## target window, so we always get a valid "proxy". + set proxy [_find_drop_target_proxy $_dodragdrop_drag_source $window] + ## Send XdndEnter to $window + _SendXdndEnter $window $proxy + ## Send XdndPosition to $_dodragdrop_drop_target + _SendXdndPosition $rootx $rooty $_dodragdrop_default_action + } else { + ## Send XdndPosition to $_dodragdrop_drop_target + _SendXdndPosition $rootx $rooty $_dodragdrop_default_action + } + } else { + ## No window under the mouse. Send XdndLeave to $_dodragdrop_drop_target + _SendXdndLeave + } + } + ButtonPress { + } + ButtonRelease { + variable _dodragdrop_button + set button [dict get $event button] + if {$button == $_dodragdrop_button} { + ## The button that initiated the drag was released. Trigger drop... + #DBG debug "xdnd::_process_drag_events: _SendXdndDrop" + _SendXdndDrop + } + #DBG debug "xdnd::_process_drag_events: return 1 (2)" + # return 1 ;# Returning non-zero is not a good idea... + return 0 + } + KeyPress { + } + KeyRelease { + set keysym [dict get $event keysym] + switch $keysym { + Escape { + ## The user has pressed escape. Abort... + if {$_dragging} {set _dragging 0} + } + } + } + SelectionRequest { + variable _dodragdrop_selection_requestor + variable _dodragdrop_selection_property + variable _dodragdrop_selection_selection + variable _dodragdrop_selection_target + variable _dodragdrop_selection_time + set _dodragdrop_selection_requestor [dict get $event requestor] + set _dodragdrop_selection_property [dict get $event property] + set _dodragdrop_selection_selection [dict get $event selection] + set _dodragdrop_selection_target [dict get $event target] + set _dodragdrop_selection_time $time + #DBG debug "xdnd::_process_drag_events: return 0 (3)" + return 0 + } + default { + #DBG debug "xdnd::_process_drag_events: return 0 (4)" + return 0 + } + } + #DBG debug "xdnd::_process_drag_events: return 0 (5)" + return 0 +};# _process_drag_events + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndEnter +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndEnter {window proxy} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_types + variable _dodragdrop_waiting_status + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_target > 0} _SendXdndLeave + if {$_dodragdrop_drop_occured} return + set _dodragdrop_drop_target $window + set _dodragdrop_drop_target_proxy $proxy + set _dodragdrop_waiting_status 0 + if {$_dodragdrop_drop_target < 1} return + #DBG debug "XdndEnter: $_dodragdrop_drop_target $_dodragdrop_drop_target_proxy" + _send_XdndEnter $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy $_dodragdrop_types +};# xdnd::_SendXdndEnter + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndPosition +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndPosition {rootx rooty action} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_waiting_status + ## Arrange a new XdndPosition, to be send periodically... + variable _dodragdrop_xdnd_position_heartbeat + catch {after cancel $_dodragdrop_xdnd_position_heartbeat} + set _dodragdrop_xdnd_position_heartbeat [after 200 \ + [list ::tkdnd::xdnd::_SendXdndPosition $rootx $rooty $action]] + if {$_dodragdrop_waiting_status} {return} + #DBG debug "XdndPosition: $_dodragdrop_drop_target $rootx $rooty $action" + _send_XdndPosition $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy $rootx $rooty $action + set _dodragdrop_waiting_status 1 +};# xdnd::_SendXdndPosition + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndStatus +# ---------------------------------------------------------------------------- +proc xdnd::_HandleXdndStatus {event} { + variable _dodragdrop_drop_target + variable _dodragdrop_waiting_status + + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + set _dodragdrop_waiting_status 0 + foreach key {target accept want_position action x y w h} { + set $key [dict get $event $key] + } + set _dodragdrop_drop_target_accepts_drop $accept + set _dodragdrop_drop_target_accepts_action $action + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + _update_cursor + #DBG debug "XdndStatus: $event" +};# xdnd::_HandleXdndStatus + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndFinished +# ---------------------------------------------------------------------------- +proc xdnd::_HandleXdndFinished {event} { + variable _dodragdrop_xdnd_finished_event_after_id + catch {after cancel $_dodragdrop_xdnd_finished_event_after_id} + set _dodragdrop_xdnd_finished_event_after_id {} + variable _dodragdrop_drop_target + set _dodragdrop_drop_target 0 + variable _dragging + if {$_dragging} {set _dragging 0} + + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + if {[dict size $event]} { + foreach key {target accept action} { + set $key [dict get $event $key] + } + set _dodragdrop_drop_target_accepts_drop $accept + set _dodragdrop_drop_target_accepts_action $action + } else { + set _dodragdrop_drop_target_accepts_drop 0 + } + if {!$_dodragdrop_drop_target_accepts_drop} { + set _dodragdrop_drop_target_accepts_action refuse_drop + } + #DBG debug "XdndFinished: $event" +};# xdnd::_HandleXdndFinished + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndLeave +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndLeave {} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_target_proxy + #DBG debug "XdndLeave: $_dodragdrop_drop_target" + _send_XdndLeave $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy + set _dodragdrop_drop_target 0 + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + set _dodragdrop_drop_target_accepts_drop 0 + set _dodragdrop_drop_target_accepts_action refuse_drop + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + _update_cursor +};# xdnd::_SendXdndLeave + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndDrop +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndDrop {} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} { + ## The mouse has been released over a widget that does not accept drops. + _HandleXdndFinished {} + return + } + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} {return} + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + + set _dodragdrop_drop_occured 1 + _update_cursor clock + + if {!$_dodragdrop_drop_target_accepts_drop} { + _SendXdndLeave + _HandleXdndFinished {} + return + } + #DBG debug "XdndDrop: $_dodragdrop_drop_target" + variable _dodragdrop_drop_timestamp + set _dodragdrop_drop_timestamp [_send_XdndDrop \ + $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy] + set _dodragdrop_drop_target 0 + #DBG debug "XdndDrop: $_dodragdrop_drop_target" + ## Arrange a timeout for receiving XdndFinished... + variable _dodragdrop_xdnd_finished_event_after_id + set _dodragdrop_xdnd_finished_event_after_id \ + [after 10000 [list ::tkdnd::xdnd::_HandleXdndFinished {}]] +};# xdnd::_SendXdndDrop + +# ---------------------------------------------------------------------------- +# Command xdnd::_update_cursor +# ---------------------------------------------------------------------------- +proc xdnd::_update_cursor { {cursor {}}} { + #DBG debug "_update_cursor $cursor" + variable _dodragdrop_current_cursor + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + + if {![string length $cursor]} { + set cursor refuse_drop + if {$_dodragdrop_drop_target_accepts_drop} { + set cursor $_dodragdrop_drop_target_accepts_action + } + } + if {![string equal $cursor $_dodragdrop_current_cursor]} { + _set_pointer_cursor $_dodragdrop_drag_source [_get_mapped_cursor $cursor] + set _dodragdrop_current_cursor $cursor + } +};# xdnd::_update_cursor + +# ---------------------------------------------------------------------------- +# Command xdnd::_get_mapped_cursor +# ---------------------------------------------------------------------------- +proc xdnd::_get_mapped_cursor { cursor } { + variable _dodragdrop_cursor_map + variable _dodragdrop_drag_source + ## Is there a custom cursor map? + if {[catch {dict get $_dodragdrop_cursor_map $cursor} mapped]} { + ## Do not report the error, ignore the mapping. + set mapped $cursor + } + ## Is there a cursor feedback command? + set cmd [bind $_dodragdrop_drag_source <>] + if {$cmd ne ""} { + set code [catch {uplevel \#0 $cmd \{$_dodragdrop_drag_source\} \{$cursor\} \{$mapped\}} info options] + #DBG debug "CODE: $code ---- $info" + switch -exact -- $code { + 0 {if {$info ne ""} {set mapped $info}} + default { + return -options $options $info + } + } + } + return $mapped +};# xdnd::_get_mapped_cursor + +# ---------------------------------------------------------------------------- +# Command xdnd::_default_action +# ---------------------------------------------------------------------------- +proc xdnd::_default_action {event} { + variable _dodragdrop_actions + variable _dodragdrop_actions_len + if {$_dodragdrop_actions_len == 1} {return [lindex $_dodragdrop_actions 0]} + + set alt [dict get $event Alt] + set shift [dict get $event Shift] + set control [dict get $event Control] + + if {$shift && $control && [lsearch $_dodragdrop_actions link] != -1} { + return link + } elseif {$control && [lsearch $_dodragdrop_actions copy] != -1} { + return copy + } elseif {$shift && [lsearch $_dodragdrop_actions move] != -1} { + return move + } elseif {$alt && [lsearch $_dodragdrop_actions link] != -1} { + return link + } + return default +};# xdnd::_default_action + +# ---------------------------------------------------------------------------- +# Command xdnd::getFormatForType +# ---------------------------------------------------------------------------- +proc xdnd::getFormatForType {type} { + switch -glob [string tolower $type] { + text/plain\;charset=utf-8 - + text/html\;charset=utf-8 - + utf8_string {set format UTF8_STRING} + text/html - + text/plain - + string - + text - + compound_text {set format STRING} + text/uri-list* {set format UTF8_STRING} + application/x-color {set format $type} + default {set format $type} + } + return $format +};# xdnd::getFormatForType + +# ---------------------------------------------------------------------------- +# Command xdnd::registerSelectionHandler +# ---------------------------------------------------------------------------- +proc xdnd::registerSelectionHandler {source types} { + foreach type $types { + selection handle -selection XdndSelection \ + -type $type \ + -format [getFormatForType $type] \ + $source [list ::tkdnd::xdnd::_SendData $type] + } +};# xdnd::registerSelectionHandler + +# ---------------------------------------------------------------------------- +# Command xdnd::unregisterSelectionHandler +# ---------------------------------------------------------------------------- +proc xdnd::unregisterSelectionHandler {source types} { + foreach type $types { + catch { + selection handle -selection XdndSelection \ + -type $type \ + -format [getFormatForType $type] \ + $source {} + } + } +};# xdnd::unregisterSelectionHandler + +# ---------------------------------------------------------------------------- +# Command xdnd::_convert_to_unsigned +# ---------------------------------------------------------------------------- +proc xdnd::_convert_to_unsigned {data format} { + switch $format { + 8 { set mask 0xff } + 16 { set mask 0xffff } + 32 { set mask 0xffffff } + default {error "unsupported format $format"} + } + ## Convert signed integer into unsigned... + set d [list] + foreach num $data { + lappend d [expr { $num & $mask }] + } + return $d +};# xdnd::_convert_to_unsigned + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendData +# ---------------------------------------------------------------------------- +proc xdnd::_SendData {type offset bytes args} { + variable _dodragdrop_drag_source + variable _dodragdrop_types + variable _dodragdrop_data + variable _dodragdrop_transfer_data + + ## The variable _dodragdrop_data contains a list of data, one for each + ## type in the _dodragdrop_types variable. We have to search types, and find + ## the corresponding entry in the _dodragdrop_data list. + set index [lsearch $_dodragdrop_types $type] + if {$index < 0} { + error "unable to locate data suitable for type \"$type\"" + } + set typed_data [lindex $_dodragdrop_data $index] + set format 8 + if {$offset == 0} { + ## Prepare the data to be transferred... + switch -glob $type { + text/plain* - UTF8_STRING - STRING - TEXT - COMPOUND_TEXT { + binary scan [encoding convertto utf-8 $typed_data] \ + c* _dodragdrop_transfer_data + set _dodragdrop_transfer_data \ + [_convert_to_unsigned $_dodragdrop_transfer_data $format] + } + text/uri-list* { + set files [list] + foreach file $typed_data { + switch -glob $file { + *://* {lappend files $file} + default {lappend files file://$file} + } + } + binary scan [encoding convertto utf-8 "[join $files \r\n]\r\n"] \ + c* _dodragdrop_transfer_data + set _dodragdrop_transfer_data \ + [_convert_to_unsigned $_dodragdrop_transfer_data $format] + } + application/x-color { + set format 16 + ## Try to understand the provided data: we accept a standard Tk colour, + ## or a list of 3 values (red green blue) or a list of 4 values + ## (red green blue opacity). + switch [llength $typed_data] { + 1 { set color [winfo rgb $_dodragdrop_drag_source $typed_data] + lappend color 65535 } + 3 { set color $typed_data; lappend color 65535 } + 4 { set color $typed_data } + default {error "unknown color data: \"$typed_data\""} + } + ## Convert the 4 elements into 16 bit values... + set _dodragdrop_transfer_data [list] + foreach c $color { + lappend _dodragdrop_transfer_data [format 0x%04X $c] + } + } + default { + set format 32 + binary scan $typed_data c* _dodragdrop_transfer_data + } + } + } + + ## + ## Data has been split into bytes. Count the bytes requested, and return them + ## + set data [lrange $_dodragdrop_transfer_data $offset [expr {$offset+$bytes-1}]] + switch $format { + 8 { + set data [encoding convertfrom utf-8 [binary format c* $data]] + } + 16 { + variable _dodragdrop_selection_requestor + if {$_dodragdrop_selection_requestor} { + ## Tk selection cannot process this format (only 8 & 32 supported). + ## Call our XChangeProperty... + set numItems [llength $data] + variable _dodragdrop_selection_property + variable _dodragdrop_selection_selection + variable _dodragdrop_selection_target + variable _dodragdrop_selection_time + XChangeProperty $_dodragdrop_drag_source \ + $_dodragdrop_selection_requestor \ + $_dodragdrop_selection_property \ + $_dodragdrop_selection_target \ + $format \ + $_dodragdrop_selection_time \ + $data $numItems + return -code break + } + } + 32 { + } + default { + error "unsupported format $format" + } + } + #DBG debug "SendData: $type $offset $bytes $args ($typed_data)" + #DBG debug " $data" + return $data +};# xdnd::_SendData diff --git a/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_utils.tcl b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_utils.tcl new file mode 100644 index 0000000..ef1e502 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_utils.tcl @@ -0,0 +1,256 @@ +# +# tkdnd_utils.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +package require tkdnd +namespace eval ::tkdnd { + namespace eval utils { + };# namespace ::tkdnd::utils + namespace eval text { + variable _drag_tag tkdnd::drag::selection::tag + variable _state {} + variable _drag_source_widget {} + variable _drop_target_widget {} + variable _now_dragging 0 + };# namespace ::tkdnd::text +};# namespace ::tkdnd + +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag clear 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag motion 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_TextAutoScan %W %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag reset 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag clear 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag motion 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag reset 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag clear 3 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag motion 3 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag reset 3 %W %s %X %Y %x %y} + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::drag_source +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::drag_source { mode path { types DND_Text } { event 1 } { tagprefix TkDND_Drag_Text } { tag sel } } { + switch -exact -- $mode { + register { + $path tag bind $tag \ + [list tkdnd::text::_begin_drag press ${event} %W %s %X %Y %x %y] + ## Set a binding to the widget, to put selection as data... + bind $path <> \ + [list ::tkdnd::text::DragInitCmd $path %t $tag] + ## Set a binding to the widget, to remove selection if action is move... + bind $path <> \ + [list ::tkdnd::text::DragEndCmd $path %A $tag] + } + unregister { + $path tag bind $tag {} + bind $path <> {} + bind $path <> {} + } + } + ::tkdnd::drag_source $mode $path $types $event $tagprefix +};# ::tkdnd::text::drag_source + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::drop_target +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::drop_target { mode path { types DND_Text } } { + switch -exact -- $mode { + register { + bind $path <> \ + [list ::tkdnd::text::DropPosition $path %X %Y %A %a %m] + bind $path <> \ + [list ::tkdnd::text::Drop $path %D %X %Y %A %a %m] + } + unregister { + bind $path <> {} + bind $path <> {} + bind $path <> {} + bind $path <> {} + } + } + ::tkdnd::drop_target $mode $path $types +};# ::tkdnd::text::drop_target + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DragInitCmd +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DragInitCmd { path { types DND_Text } { tag sel } { actions { copy move } } } { + ## Save the selection indices... + variable _drag_source_widget + variable _drop_target_widget + set _drag_source_widget $path + set _drop_target_widget {} + _save_selection $path $tag + list $actions $types [$path get $tag.first $tag.last] +};# ::tkdnd::text::DragInitCmd + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DragEndCmd +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DragEndCmd { path action { tag sel } } { + variable _drag_source_widget + variable _drop_target_widget + set _drag_source_widget {} + set _drop_target_widget {} + _restore_selection $path $tag + switch -exact -- $action { + move { + ## Delete the original selected text... + variable _selection_first + variable _selection_last + $path delete $_selection_first $_selection_last + } + } +};# ::tkdnd::text::DragEndCmd + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DropPosition +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DropPosition { path X Y action actions keys} { + variable _drag_source_widget + variable _drop_target_widget + set _drop_target_widget $path + ## This check is primitive, a more accurate one is needed! + if {$path eq $_drag_source_widget} { + ## This is a drag within the same widget! Set action to move... + if {"move" in $actions} {set action move} + } + incr X -[winfo rootx $path] + incr Y -[winfo rooty $path] + $path mark set insert @$X,$Y; update + return $action +};# ::tkdnd::text::DropPosition + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::Drop +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::Drop { path data X Y action actions keys } { + incr X -[winfo rootx $path] + incr Y -[winfo rooty $path] + $path mark set insert @$X,$Y + $path insert [$path index insert] $data + return $action +};# ::tkdnd::text::Drop + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_save_selection +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_save_selection { path tag} { + variable _drag_tag + variable _selection_first + variable _selection_last + variable _selection_tag $tag + set _selection_first [$path index $tag.first] + set _selection_last [$path index $tag.last] + $path tag add $_drag_tag $_selection_first $_selection_last + $path tag configure $_drag_tag \ + -background [$path tag cget $tag -background] \ + -foreground [$path tag cget $tag -foreground] +};# tkdnd::text::_save_selection + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_restore_selection +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_restore_selection { path tag} { + variable _drag_tag + variable _selection_first + variable _selection_last + $path tag delete $_drag_tag + $path tag remove $tag 0.0 end + #$path tag add $tag $_selection_first $_selection_last +};# tkdnd::text::_restore_selection + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_begin_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_begin_drag { event button source state X Y x y } { + variable _drop_target_widget + variable _state + # puts "::tkdnd::text::_begin_drag $event $button $source $state $X $Y $x $y" + + switch -exact -- $event { + clear { + switch -exact -- $_state { + press { + ## Do not execute other bindings, as they will erase selection... + return -code break + } + } + set _state clear + } + motion { + variable _now_dragging + if {$_now_dragging} {return -code break} + if { [string equal $_state "press"] } { + variable _x0; variable _y0 + if { abs($_x0-$X) > ${::tkdnd::_dx} || abs($_y0-$Y) > ${::tkdnd::_dy} } { + set _state "done" + set _drop_target_widget {} + set _now_dragging 1 + set code [catch { + ::tkdnd::_init_drag $button $source $state $X $Y $x $y + } info options] + set _drop_target_widget {} + set _now_dragging 0 + if {$code != 0} { + ## Something strange occurred... + return -options $options $info + } + } + return -code break + } + set _state clear + } + press { + variable _x0; variable _y0 + set _x0 $X + set _y0 $Y + set _state "press" + } + reset { + set _state {} + } + } + if {$source eq $_drop_target_widget} {return -code break} + return -code continue +};# tkdnd::text::_begin_drag + +proc ::tkdnd::text::_TextAutoScan {w x y} { + variable _now_dragging + if {$_now_dragging} {return -code break} + return -code continue +};# tkdnd::text::_TextAutoScan diff --git a/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_windows.tcl b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_windows.tcl new file mode 100644 index 0000000..a1d01f3 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/osx_arm/tkdnd_windows.tcl @@ -0,0 +1,167 @@ +# +# tkdnd_windows.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval olednd { + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + CF_UNICODETEXT DND_Text \ + CF_TEXT DND_Text \ + CF_HDROP DND_Files \ + UniformResourceLocator DND_URL \ + CF_HTML DND_HTML \ + {HTML Format} DND_HTML \ + CF_RTF DND_RTF \ + CF_RTFTEXT DND_RTF \ + {Rich Text Format} DND_RTF \ + ] + # FileGroupDescriptorW DND_Files \ + # FileGroupDescriptor DND_Files \ + + ## Mapping from TkDND types to platform types... + ::tkdnd::generic::initialise_tkdnd_to_platform_types [list \ + DND_Text {CF_UNICODETEXT CF_TEXT} \ + DND_Files {CF_HDROP} \ + DND_URL {UniformResourceLocator UniformResourceLocatorW} \ + DND_HTML {CF_HTML {HTML Format}} \ + DND_RTF {CF_RTF CF_RTFTEXT {Rich Text Format}} \ + ] + };# initialise + +};# namespace olednd + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragEnter +# ---------------------------------------------------------------------------- +proc olednd::HandleDragEnter { drop_target typelist actionlist pressedkeys + rootX rootY codelist { data {} } } { + ::tkdnd::generic::SetDroppedData $data + focus $drop_target + ::tkdnd::generic::HandleEnter $drop_target 0 $typelist \ + $codelist $actionlist $pressedkeys + set action [::tkdnd::generic::HandlePosition $drop_target {} \ + $pressedkeys $rootX $rootY] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDragEnter + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragOver +# ---------------------------------------------------------------------------- +proc olednd::HandleDragOver { drop_target pressedkeys rootX rootY } { + set action [::tkdnd::generic::HandlePosition $drop_target {} \ + $pressedkeys $rootX $rootY] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDragOver + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragLeave +# ---------------------------------------------------------------------------- +proc olednd::HandleDragLeave { drop_target } { + ::tkdnd::generic::HandleLeave + if {$::tkdnd::_auto_update} {update idletasks} +};# olednd::HandleDragLeave + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDrop +# ---------------------------------------------------------------------------- +proc olednd::HandleDrop { drop_target pressedkeys rootX rootY type data } { + ::tkdnd::generic::SetDroppedData [normalise_data $type $data] + set action [::tkdnd::generic::HandleDrop $drop_target {} \ + $pressedkeys $rootX $rootY 0] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDrop + +# ---------------------------------------------------------------------------- +# Command olednd::GetDataType +# ---------------------------------------------------------------------------- +proc olednd::GetDataType { drop_target typelist } { + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [::tkdnd::generic::FindWindowWithCommonTypes $drop_target $typelist] {break} + lindex $common_drag_source_types 0 +};# olednd::GetDataType + +# ---------------------------------------------------------------------------- +# Command olednd::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc olednd::GetDragSourceCommonTypes { drop_target } { + ::tkdnd::generic::GetDragSourceCommonTypes +};# olednd::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command olednd::platform_specific_types +# ---------------------------------------------------------------------------- +proc olednd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # olednd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command olednd::platform_specific_type +# ---------------------------------------------------------------------------- +proc olednd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # olednd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command olednd::platform_independent_type +# ---------------------------------------------------------------------------- +proc olednd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # olednd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command olednd::normalise_data +# ---------------------------------------------------------------------------- +proc olednd::normalise_data { type data } { + switch [lindex [::tkdnd::generic::platform_independent_type $type] 0] { + DND_Text {return $data} + DND_Files {return $data} + DND_HTML {return [encoding convertfrom utf-8 $data]} + default {return $data} + } +}; # olednd::normalise_data diff --git a/gui_data/tkinterdnd2/tkdnd/win64/libtkdnd2.9.2.dll b/gui_data/tkinterdnd2/tkdnd/win64/libtkdnd2.9.2.dll new file mode 100644 index 0000000000000000000000000000000000000000..c9cc5abbed923f273a5d22ca7590e45e771b11b5 GIT binary patch literal 153600 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Ξ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 {tkdnd::_begin_drag press 1 %W %s %X %Y %x %y} + bind TkDND_Drag1 {tkdnd::_begin_drag motion 1 %W %s %X %Y %x %y} + bind TkDND_Drag2 {tkdnd::_begin_drag press 2 %W %s %X %Y %x %y} + bind TkDND_Drag2 {tkdnd::_begin_drag motion 2 %W %s %X %Y %x %y} + bind TkDND_Drag3 {tkdnd::_begin_drag press 3 %W %s %X %Y %x %y} + bind TkDND_Drag3 {tkdnd::_begin_drag motion 3 %W %s %X %Y %x %y} + + # ---------------------------------------------------------------------------- + # Command tkdnd::initialise: Initialise the TkDND package. + # ---------------------------------------------------------------------------- + proc initialise { dir PKG_LIB_FILE PACKAGE_NAME} { + variable _platform_namespace + variable _drop_file_temp_dir + variable _windowingsystem + global env + + switch [tk windowingsystem] { + x11 { + set _windowingsystem x11 + } + win32 - + windows { + set _windowingsystem windows + } + aqua { + set _windowingsystem aqua + } + default { + error "unknown Tk windowing system" + } + } + + ## Get User's home directory: We try to locate the proper path from a set of + ## environmental variables... + foreach var {HOME HOMEPATH USERPROFILE ALLUSERSPROFILE APPDATA} { + if {[info exists env($var)]} { + if {[file isdirectory $env($var)]} { + set UserHomeDir $env($var) + break + } + } + } + + ## Should use [tk windowingsystem] instead of tcl platform array: + ## OS X returns "unix," but that's not useful because it has its own + ## windowing system, aqua + ## Under windows we have to also combine HOMEDRIVE & HOMEPATH... + if {![info exists UserHomeDir] && + [string equal $_windowingsystem windows] && + [info exists env(HOMEDRIVE)] && [info exists env(HOMEPATH)]} { + if {[file isdirectory $env(HOMEDRIVE)$env(HOMEPATH)]} { + set UserHomeDir $env(HOMEDRIVE)$env(HOMEPATH) + } + } + ## Have we located the needed path? + if {![info exists UserHomeDir]} { + set UserHomeDir [pwd] + } + set UserHomeDir [file normalize $UserHomeDir] + + ## Try to locate a temporary directory... + foreach var {TKDND_TEMP_DIR TEMP TMP} { + if {[info exists env($var)]} { + if {[file isdirectory $env($var)] && [file writable $env($var)]} { + set _drop_file_temp_dir $env($var) + break + } + } + } + if {![info exists _drop_file_temp_dir]} { + foreach _dir [list "$UserHomeDir/Local Settings/Temp" \ + "$UserHomeDir/AppData/Local/Temp" \ + /tmp \ + C:/WINDOWS/Temp C:/Temp C:/tmp \ + D:/WINDOWS/Temp D:/Temp D:/tmp] { + if {[file isdirectory $_dir] && [file writable $_dir]} { + set _drop_file_temp_dir $_dir + break + } + } + } + if {![info exists _drop_file_temp_dir]} { + set _drop_file_temp_dir $UserHomeDir + } + set _drop_file_temp_dir [file native $_drop_file_temp_dir] + + source $dir/tkdnd_generic.tcl + switch $_windowingsystem { + x11 { + source $dir/tkdnd_unix.tcl + set _platform_namespace xdnd + } + win32 - + windows { + source $dir/tkdnd_windows.tcl + set _platform_namespace olednd + } + aqua { + source $dir/tkdnd_macosx.tcl + set _platform_namespace macdnd + } + default { + error "unknown Tk windowing system" + } + } + load $dir/$PKG_LIB_FILE $PACKAGE_NAME + source $dir/tkdnd_compat.tcl + ${_platform_namespace}::initialise + };# initialise + + proc GetDropFileTempDirectory { } { + variable _drop_file_temp_dir + return $_drop_file_temp_dir + } + proc SetDropFileTempDirectory { dir } { + variable _drop_file_temp_dir + set _drop_file_temp_dir $dir + } + +};# namespace ::tkdnd + +# ---------------------------------------------------------------------------- +# Command tkdnd::drag_source +# ---------------------------------------------------------------------------- +proc ::tkdnd::drag_source { mode path { types {} } { event 1 } + { tagprefix TkDND_Drag } } { + set tags [bindtags $path] + set idx [lsearch $tags ${tagprefix}$event] + switch -- $mode { + register { + if { $idx != -1 } { + ## No need to do anything! + # bindtags $path [lreplace $tags $idx $idx ${tagprefix}$event] + } else { + bindtags $path [linsert $tags 1 ${tagprefix}$event] + } + _drag_source_update_types $path $types + } + unregister { + if { $idx != -1 } { + bindtags $path [lreplace $tags $idx $idx] + } + } + } +};# tkdnd::drag_source + +proc ::tkdnd::_drag_source_update_types { path types } { + set types [platform_specific_types $types] + set old_types [bind $path <>] + foreach type $types { + if {[lsearch $old_types $type] < 0} {lappend old_types $type} + } + bind $path <> $old_types +};# ::tkdnd::_drag_source_update_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::drop_target +# ---------------------------------------------------------------------------- +proc ::tkdnd::drop_target { mode path { types {} } } { + variable _windowingsystem + set types [platform_specific_types $types] + switch -- $mode { + register { + switch $_windowingsystem { + x11 { + _register_types $path [winfo toplevel $path] $types + } + win32 - + windows { + _RegisterDragDrop $path + bind $path {+ tkdnd::_RevokeDragDrop %W} + } + aqua { + macdnd::registerdragwidget [winfo toplevel $path] $types + } + default { + error "unknown Tk windowing system" + } + } + set old_types [bind $path <>] + set new_types {} + foreach type $types { + if {[lsearch -exact $old_types $type] < 0} {lappend new_types $type} + } + if {[llength $new_types]} { + bind $path <> [concat $old_types $new_types] + } + } + unregister { + switch $_windowingsystem { + x11 { + } + win32 - + windows { + _RevokeDragDrop $path + } + aqua { + error todo + } + default { + error "unknown Tk windowing system" + } + } + bind $path <> {} + } + } +};# tkdnd::drop_target + +# ---------------------------------------------------------------------------- +# Command tkdnd::_begin_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_begin_drag { event button source state X Y x y } { + variable _x0 + variable _y0 + variable _state + + switch -- $event { + press { + set _x0 $X + set _y0 $Y + set _state "press" + } + motion { + if { ![info exists _state] } { + # This is just extra protection. There seem to be + # rare cases where the motion comes before the press. + return + } + if { [string equal $_state "press"] } { + variable _dx + variable _dy + if { abs($_x0-$X) > ${_dx} || abs($_y0-$Y) > ${_dy} } { + set _state "done" + _init_drag $button $source $state $X $Y $x $y + } + } + } + } +};# tkdnd::_begin_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::_init_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_init_drag { button source state rootX rootY X Y } { + # Call the <> binding. + set cmd [bind $source <>] + # puts "CMD: $cmd" + if {[string length $cmd]} { + set cmd [string map [list %W $source %X $rootX %Y $rootY %x $X %y $Y \ + %S $state %e <> %A \{\} %% % \ + %t [bind $source <>]] $cmd] + set code [catch {uplevel \#0 $cmd} info options] + # puts "CODE: $code ---- $info" + switch -exact -- $code { + 0 {} + 3 - 4 { + # FRINK: nocheck + return + } + default { + return -options $options $info + } + } + + set len [llength $info] + if {$len == 3} { + foreach { actions types _data } $info { break } + set types [platform_specific_types $types] + set data [list] + foreach type $types { + lappend data $_data + } + unset _data + } elseif {$len == 2} { + foreach { actions _data } $info { break } + set data [list]; set types [list] + foreach {t d} $_data { + foreach t [platform_specific_types $t] { + lappend types $t; lappend data $d + } + } + unset _data t d + } else { + if {$len == 1 && [string equal [lindex $actions 0] "refuse_drop"]} { + return + } + error "not enough items in the result of the <>\ + event binding. Either 2 or 3 items are expected. The command + executed was: \"$cmd\"\nResult was: \"$info\"" + } + set action refuse_drop + variable _windowingsystem + # puts "Source: \"$source\"" + # puts "Types: \"[join $types {", "}]\"" + # puts "Actions: \"[join $actions {", "}]\"" + # puts "Button: \"$button\"" + # puts "Data: \"[string range $data 0 100]\"" + switch $_windowingsystem { + x11 { + set action [xdnd::_dodragdrop $source $actions $types $data $button] + } + win32 - + windows { + set action [_DoDragDrop $source $actions $types $data $button] + } + aqua { + set action [macdnd::dodragdrop $source $actions $types $data $button] + } + default { + error "unknown Tk windowing system" + } + } + ## Call _end_drag to notify the widget of the result of the drag + ## operation... + _end_drag $button $source {} $action {} $data {} $state $rootX $rootY $X $Y + } +};# tkdnd::_init_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::_end_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::_end_drag { button source target action type data result + state rootX rootY X Y } { + set rootX 0 + set rootY 0 + # Call the <> binding. + set cmd [bind $source <>] + if {[string length $cmd]} { + set cmd [string map [list %W $source %X $rootX %Y $rootY %x $X %y $Y %% % \ + %S $state %e <> %A \{$action\}] $cmd] + set info [uplevel \#0 $cmd] + # if { $info != "" } { + # variable _windowingsystem + # foreach { actions types data } $info { break } + # set types [platform_specific_types $types] + # switch $_windowingsystem { + # x11 { + # error "dragging from Tk widgets not yet supported" + # } + # win32 - + # windows { + # set action [_DoDragDrop $source $actions $types $data $button] + # } + # aqua { + # macdnd::dodragdrop $source $actions $types $data + # } + # default { + # error "unknown Tk windowing system" + # } + # } + # ## Call _end_drag to notify the widget of the result of the drag + # ## operation... + # _end_drag $button $source {} $action {} $data {} $state $rootX $rootY + # } + } +};# tkdnd::_end_drag + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_specific_types { types } { + variable _platform_namespace + ${_platform_namespace}::platform_specific_types $types +}; # tkdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + variable _platform_namespace + ${_platform_namespace}::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_specific_type { type } { + variable _platform_namespace + ${_platform_namespace}::platform_specific_type $type +}; # tkdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_type { type } { + variable _platform_namespace + ${_platform_namespace}::platform_independent_type $type +}; # tkdnd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::bytes_to_string +# ---------------------------------------------------------------------------- +proc ::tkdnd::bytes_to_string { bytes } { + set string {} + foreach byte $bytes { + append string [binary format c $byte] + } + return $string +};# tkdnd::bytes_to_string + +# ---------------------------------------------------------------------------- +# Command tkdnd::urn_unquote +# ---------------------------------------------------------------------------- +proc ::tkdnd::urn_unquote {url} { + set result "" + set start 0 + while {[regexp -start $start -indices {%[0-9a-fA-F]{2}} $url match]} { + foreach {first last} $match break + append result [string range $url $start [expr {$first - 1}]] + append result [format %c 0x[string range $url [incr first] $last]] + set start [incr last] + } + append result [string range $url $start end] + return [encoding convertfrom utf-8 $result] +};# tkdnd::urn_unquote diff --git a/gui_data/tkinterdnd2/tkdnd/win64/tkdnd2.9.2.lib b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd2.9.2.lib new file mode 100644 index 0000000000000000000000000000000000000000..c5a956bfdf01319ce0574a1ae86e13454ce22a5f GIT binary patch literal 2064 zcmcIl&2G~`5dQ2W0wRP$L82F=R8;&NaDE!MjZ}dPMG)0ZtHiz5P2-kYq)k=Axwo89 z4}E~V01rXWJt1-A$brWQGxn}y<3MVptg<^hv*Vq=Z#Hu)t<(15i)4!8jP@sA=74|ab)PH9t7H?P(1UMmog+CH7x#|)JyV*!(G^f)+ zL4rdlO}b4lEd>~I`Y8-)JWzm}ltCVvv%mN0{e08sfVZ^yEEz!!vp^p&g=pzZsAM+vx-wwPK91|5gv`(*`vq=$D)<^y5^i>Z* zUp+_J-SG%={G(tEA!tDg89`qpBPb(iipaQ5r5}%O04z%Tpw-2J2b zbeS&hUhcl|Fkr~;t4KNP{g8~HtT&|`Unjqh$c;%aX2LhFQXRdRAbbK&pWityB|iY6 aKdgB7C+-J*VZ60DvZVypf`5lG7Jmcz8jGp` literal 0 HcmV?d00001 diff --git a/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_compat.tcl b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_compat.tcl new file mode 100644 index 0000000..efc96f7 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_compat.tcl @@ -0,0 +1,160 @@ +# +# tkdnd_compat.tcl -- +# +# This file implements some utility procedures, to support older versions +# of the TkDND package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval compat { + +};# namespace compat + +# ---------------------------------------------------------------------------- +# Command ::dnd +# ---------------------------------------------------------------------------- +proc ::dnd {method window args} { + switch $method { + bindtarget { + switch [llength $args] { + 0 {return [tkdnd::compat::bindtarget0 $window]} + 1 {return [tkdnd::compat::bindtarget1 $window [lindex $args 0]]} + 2 {return [tkdnd::compat::bindtarget2 $window [lindex $args 0] \ + [lindex $args 1]]} + 3 {return [tkdnd::compat::bindtarget3 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2]]} + 4 {return [tkdnd::compat::bindtarget4 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2] [lindex $args 3]]} + } + } + cleartarget { + return [tkdnd::compat::cleartarget $window] + } + bindsource { + switch [llength $args] { + 0 {return [tkdnd::compat::bindsource0 $window]} + 1 {return [tkdnd::compat::bindsource1 $window [lindex $args 0]]} + 2 {return [tkdnd::compat::bindsource2 $window [lindex $args 0] \ + [lindex $args 1]]} + 3 {return [tkdnd::compat::bindsource3 $window [lindex $args 0] \ + [lindex $args 1] [lindex $args 2]]} + } + } + clearsource { + return [tkdnd::compat::clearsource $window] + } + drag { + return [tkdnd::_init_drag 1 $window "press" 0 0 0 0] + } + } + error "invalid number of arguments!" +};# ::dnd + +# ---------------------------------------------------------------------------- +# Command compat::bindtarget +# ---------------------------------------------------------------------------- +proc compat::bindtarget0 {window} { + return [bind $window <>] +};# compat::bindtarget0 + +proc compat::bindtarget1 {window type} { + return [bindtarget2 $window $type ] +};# compat::bindtarget1 + +proc compat::bindtarget2 {window type event} { + switch $event { + {return [bind $window <>]} + {return [bind $window <>]} + {return [bind $window <>]} + {return [bind $window <>]} + } +};# compat::bindtarget2 + +proc compat::bindtarget3 {window type event script} { + set type [normalise_type $type] + ::tkdnd::drop_target register $window [list $type] + switch $event { + {return [bind $window <> $script]} + {return [bind $window <> $script]} + {return [bind $window <> $script]} + {return [bind $window <> $script]} + } +};# compat::bindtarget3 + +proc compat::bindtarget4 {window type event script priority} { + return [bindtarget3 $window $type $event $script] +};# compat::bindtarget4 + +proc compat::normalise_type { type } { + switch $type { + text/plain - + {text/plain;charset=UTF-8} - + Text {return DND_Text} + text/uri-list - + Files {return DND_Files} + default {return $type} + } +};# compat::normalise_type + +# ---------------------------------------------------------------------------- +# Command compat::bindsource +# ---------------------------------------------------------------------------- +proc compat::bindsource0 {window} { + return [bind $window <>] +};# compat::bindsource0 + +proc compat::bindsource1 {window type} { + return [bindsource2 $window $type ] +};# compat::bindsource1 + +proc compat::bindsource2 {window type script} { + set type [normalise_type $type] + ::tkdnd::drag_source register $window $type + bind $window <> "list {copy} {%t} \[$script\]" +};# compat::bindsource2 + +proc compat::bindsource3 {window type script priority} { + return [bindsource2 $window $type $script] +};# compat::bindsource3 + +# ---------------------------------------------------------------------------- +# Command compat::cleartarget +# ---------------------------------------------------------------------------- +proc compat::cleartarget {window} { +};# compat::cleartarget + +# ---------------------------------------------------------------------------- +# Command compat::clearsource +# ---------------------------------------------------------------------------- +proc compat::clearsource {window} { +};# compat::clearsource diff --git a/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_generic.tcl b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_generic.tcl new file mode 100644 index 0000000..698b464 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_generic.tcl @@ -0,0 +1,520 @@ +# +# tkdnd_generic.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval generic { + variable _types {} + variable _typelist {} + variable _codelist {} + variable _actionlist {} + variable _pressedkeys {} + variable _action {} + variable _common_drag_source_types {} + variable _common_drop_target_types {} + variable _drag_source {} + variable _drop_target {} + + variable _last_mouse_root_x 0 + variable _last_mouse_root_y 0 + + variable _tkdnd2platform + variable _platform2tkdnd + + proc debug {msg} { + puts $msg + };# debug + + proc initialise { } { + };# initialise + + proc initialise_platform_to_tkdnd_types { types } { + variable _platform2tkdnd + variable _tkdnd2platform + set _platform2tkdnd [dict create {*}$types] + set _tkdnd2platform [dict create] + foreach type [dict keys $_platform2tkdnd] { + dict lappend _tkdnd2platform [dict get $_platform2tkdnd $type] $type + } + };# initialise_platform_to_tkdnd_types + + proc initialise_tkdnd_to_platform_types { types } { + variable _tkdnd2platform + set _tkdnd2platform [dict create {*}$types] + };# initialise_tkdnd_to_platform_types + +};# namespace generic + +# ---------------------------------------------------------------------------- +# Command generic::HandleEnter +# ---------------------------------------------------------------------------- +proc generic::HandleEnter { drop_target drag_source typelist codelist + actionlist pressedkeys } { + variable _typelist; set _typelist $typelist + variable _pressedkeys; set _pressedkeys $pressedkeys + variable _action; set _action refuse_drop + variable _common_drag_source_types; set _common_drag_source_types {} + variable _common_drop_target_types; set _common_drop_target_types {} + variable _actionlist + variable _drag_source; set _drag_source $drag_source + variable _drop_target; set _drop_target {} + variable _actionlist; set _actionlist $actionlist + variable _codelist set _codelist $codelist + + variable _last_mouse_root_x; set _last_mouse_root_x 0 + variable _last_mouse_root_y; set _last_mouse_root_y 0 + # debug "\n===============================================================" + # debug "generic::HandleEnter: drop_target=$drop_target,\ + # drag_source=$drag_source,\ + # typelist=$typelist" + # debug "generic::HandleEnter: ACTION: default" + return default +};# generic::HandleEnter + +# ---------------------------------------------------------------------------- +# Command generic::HandlePosition +# ---------------------------------------------------------------------------- +proc generic::HandlePosition { drop_target drag_source pressedkeys + rootX rootY { time 0 } } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + + # debug "generic::HandlePosition: drop_target=$drop_target,\ + # _drop_target=$_drop_target, rootX=$rootX, rootY=$rootY" + + if {![info exists _drag_source] && ![string length $_drag_source]} { + # debug "generic::HandlePosition: no or empty _drag_source:\ + # return refuse_drop" + return refuse_drop + } + + if {$drag_source ne "" && $drag_source ne $_drag_source} { + debug "generic position event from unexpected source: $_drag_source\ + != $drag_source" + return refuse_drop + } + + set _pressedkeys $pressedkeys + + ## Does the new drop target support any of our new types? + # foreach {common_drag_source_types common_drop_target_types} \ + # [GetWindowCommonTypes $drop_target $_typelist] {break} + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [FindWindowWithCommonTypes $drop_target $_typelist] {break} + set data [GetDroppedData $time] + + # debug "\t($_drop_target) -> ($drop_target)" + if {$drop_target != $_drop_target} { + if {[string length $_drop_target]} { + ## Call the <> event. + # debug "\t<> on $_drop_target" + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A \{$_action\} %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D \{\} %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + uplevel \#0 $cmd + } + } + set _drop_target $drop_target + set _action refuse_drop + + if {[llength $common_drag_source_types]} { + set _action [lindex $_actionlist 0] + set _common_drag_source_types $common_drag_source_types + set _common_drop_target_types $common_drop_target_types + ## Drop target supports at least one type. Send a <>. + # puts "<> -> $drop_target" + set cmd [bind $drop_target <>] + if {[string length $cmd]} { + focus $drop_target + set cmd [string map [list %W $drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + } + } + } + + set _drop_target {} + if {[llength $common_drag_source_types]} { + set _common_drag_source_types $common_drag_source_types + set _common_drop_target_types $common_drop_target_types + set _drop_target $drop_target + ## Drop target supports at least one type. Send a <>. + set cmd [bind $drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + } + # Return values: copy, move, link, ask, private, refuse_drop, default + # debug "generic::HandlePosition: ACTION: $_action" + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action +};# generic::HandlePosition + +# ---------------------------------------------------------------------------- +# Command generic::HandleLeave +# ---------------------------------------------------------------------------- +proc generic::HandleLeave { } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + variable _last_mouse_root_x + variable _last_mouse_root_y + if {![info exists _drop_target]} {set _drop_target {}} + # debug "generic::HandleLeave: _drop_target=$_drop_target" + if {[info exists _drop_target] && [string length $_drop_target]} { + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target \ + %X $_last_mouse_root_x %Y $_last_mouse_root_y \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A \{$_action\} %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D \{\} %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + } + foreach var {_types _typelist _actionlist _pressedkeys _action + _common_drag_source_types _common_drop_target_types + _drag_source _drop_target} { + set $var {} + } +};# generic::HandleLeave + +# ---------------------------------------------------------------------------- +# Command generic::HandleDrop +# ---------------------------------------------------------------------------- +proc generic::HandleDrop {drop_target drag_source pressedkeys rootX rootY time } { + variable _types + variable _typelist + variable _codelist + variable _actionlist + variable _pressedkeys + variable _action + variable _common_drag_source_types + variable _common_drop_target_types + variable _drag_source + variable _drop_target + variable _last_mouse_root_x + variable _last_mouse_root_y + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + + set _pressedkeys $pressedkeys + + # puts "generic::HandleDrop: $time" + + if {![info exists _drag_source] && ![string length $_drag_source]} { + return refuse_drop + } + if {![info exists _drop_target] && ![string length $_drop_target]} { + return refuse_drop + } + if {![llength $_common_drag_source_types]} {return refuse_drop} + ## Get the dropped data. + set data [GetDroppedData $time] + ## Try to select the most specific <> event. + foreach type [concat $_common_drag_source_types $_common_drop_target_types] { + set type [platform_independent_type $type] + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + # Return values: copy, move, link, ask, private, refuse_drop + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action + } + } + set cmd [bind $_drop_target <>] + if {[string length $cmd]} { + set cmd [string map [list %W $_drop_target %X $rootX %Y $rootY \ + %CST \{$_common_drag_source_types\} \ + %CTT \{$_common_drop_target_types\} \ + %CPT \{[lindex [platform_independent_type [lindex $_common_drag_source_types 0]] 0]\} \ + %ST \{$_typelist\} %TT \{$_types\} \ + %A $_action %a \{$_actionlist\} \ + %b \{$_pressedkeys\} %m \{$_pressedkeys\} \ + %D [list $data] %e <> \ + %L \{$_typelist\} %% % \ + %t \{$_typelist\} %T \{[lindex $_common_drag_source_types 0]\} \ + %c \{$_codelist\} %C \{[lindex $_codelist 0]\} \ + ] $cmd] + set _action [uplevel \#0 $cmd] + } + # Return values: copy, move, link, ask, private, refuse_drop + switch -exact -- $_action { + copy - move - link - ask - private - refuse_drop - default {} + default {set _action copy} + } + return $_action +};# generic::HandleDrop + +# ---------------------------------------------------------------------------- +# Command generic::GetWindowCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetWindowCommonTypes { win typelist } { + set types [bind $win <>] + # debug ">> Accepted types: $win $_types" + set common_drag_source_types {} + set common_drop_target_types {} + if {[llength $types]} { + ## Examine the drop target types, to find at least one match with the drag + ## source types... + set supported_types [supported_types $typelist] + foreach type $types { + foreach matched [lsearch -glob -all -inline $supported_types $type] { + ## Drop target supports this type. + lappend common_drag_source_types $matched + lappend common_drop_target_types $type + } + } + } + list $common_drag_source_types $common_drop_target_types +};# generic::GetWindowCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::FindWindowWithCommonTypes +# ---------------------------------------------------------------------------- +proc generic::FindWindowWithCommonTypes { win typelist } { + set toplevel [winfo toplevel $win] + while {![string equal $win $toplevel]} { + foreach {common_drag_source_types common_drop_target_types} \ + [GetWindowCommonTypes $win $typelist] {break} + if {[llength $common_drag_source_types]} { + return [list $win $common_drag_source_types $common_drop_target_types] + } + set win [winfo parent $win] + } + ## We have reached the toplevel, which may be also a target (SF Bug #30) + foreach {common_drag_source_types common_drop_target_types} \ + [GetWindowCommonTypes $win $typelist] {break} + if {[llength $common_drag_source_types]} { + return [list $win $common_drag_source_types $common_drop_target_types] + } + return { {} {} {} } +};# generic::FindWindowWithCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::GetDroppedData +# ---------------------------------------------------------------------------- +proc generic::GetDroppedData { time } { + variable _dropped_data + return $_dropped_data +};# generic::GetDroppedData + +# ---------------------------------------------------------------------------- +# Command generic::SetDroppedData +# ---------------------------------------------------------------------------- +proc generic::SetDroppedData { data } { + variable _dropped_data + set _dropped_data $data +};# generic::SetDroppedData + +# ---------------------------------------------------------------------------- +# Command generic::GetDragSource +# ---------------------------------------------------------------------------- +proc generic::GetDragSource { } { + variable _drag_source + return $_drag_source +};# generic::GetDragSource + +# ---------------------------------------------------------------------------- +# Command generic::GetDropTarget +# ---------------------------------------------------------------------------- +proc generic::GetDropTarget { } { + variable _drop_target + return $_drop_target +};# generic::GetDropTarget + +# ---------------------------------------------------------------------------- +# Command generic::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetDragSourceCommonTypes { } { + variable _common_drag_source_types + return $_common_drag_source_types +};# generic::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::GetDropTargetCommonTypes +# ---------------------------------------------------------------------------- +proc generic::GetDropTargetCommonTypes { } { + variable _common_drag_source_types + return $_common_drag_source_types +};# generic::GetDropTargetCommonTypes + +# ---------------------------------------------------------------------------- +# Command generic::platform_specific_types +# ---------------------------------------------------------------------------- +proc generic::platform_specific_types { types } { + set new_types {} + foreach type $types { + set new_types [concat $new_types [platform_specific_type $type]] + } + return $new_types +}; # generic::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command generic::platform_specific_type +# ---------------------------------------------------------------------------- +proc generic::platform_specific_type { type } { + variable _tkdnd2platform + if {[dict exists $_tkdnd2platform $type]} { + return [dict get $_tkdnd2platform $type] + } + list $type +}; # generic::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + set new_types {} + foreach type $types { + set new_types [concat $new_types [platform_independent_type $type]] + } + return $new_types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command generic::platform_independent_type +# ---------------------------------------------------------------------------- +proc generic::platform_independent_type { type } { + variable _platform2tkdnd + if {[dict exists $_platform2tkdnd $type]} { + return [dict get $_platform2tkdnd $type] + } + return $type +}; # generic::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command generic::supported_types +# ---------------------------------------------------------------------------- +proc generic::supported_types { types } { + set new_types {} + foreach type $types { + if {[supported_type $type]} {lappend new_types $type} + } + return $new_types +}; # generic::supported_types + +# ---------------------------------------------------------------------------- +# Command generic::supported_type +# ---------------------------------------------------------------------------- +proc generic::supported_type { type } { + variable _platform2tkdnd + if {[dict exists $_platform2tkdnd $type]} { + return 1 + } + return 0 +}; # generic::supported_type diff --git a/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_macosx.tcl b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_macosx.tcl new file mode 100644 index 0000000..307f6da --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_macosx.tcl @@ -0,0 +1,144 @@ +# +# tkdnd_macosx.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. + +# This software is copyrighted by: +# Georgios Petasis, Athens, Greece. +# e-mail: petasisg@yahoo.gr, petasis@iit.demokritos.gr +# +# Mac portions (c) 2009 Kevin Walzer/WordTech Communications LLC, +# kw@codebykevin.com +# +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +#basic API for Mac Drag and Drop + +#two data types supported: strings and file paths + +#two commands at C level: ::tkdnd::macdnd::registerdragwidget, ::tkdnd::macdnd::unregisterdragwidget + +#data retrieval mechanism: text or file paths are copied from drag clipboard to system clipboard and retrieved via [clipboard get]; array of file paths is converted to single tab-separated string, can be split into Tcl list + +if {[tk windowingsystem] eq "aqua" && "AppKit" ni [winfo server .]} { + error {TkAqua Cocoa required} +} + +namespace eval macdnd { + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + NSPasteboardTypeString DND_Text \ + NSFilenamesPboardType DND_Files \ + NSPasteboardTypeHTML DND_HTML \ + ] + };# initialise + +};# namespace macdnd + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleEnter +# ---------------------------------------------------------------------------- +proc macdnd::HandleEnter { path drag_source typelist { data {} } } { + variable _pressedkeys + variable _actionlist + set _pressedkeys 1 + set _actionlist { copy move link ask private } + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \ + $_actionlist $_pressedkeys +};# macdnd::HandleEnter + +# ---------------------------------------------------------------------------- +# Command macdnd::HandlePosition +# ---------------------------------------------------------------------------- +proc macdnd::HandlePosition { drop_target rootX rootY {drag_source {}} } { + variable _pressedkeys + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + ::tkdnd::generic::HandlePosition $drop_target $drag_source \ + $_pressedkeys $rootX $rootY +};# macdnd::HandlePosition + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleLeave +# ---------------------------------------------------------------------------- +proc macdnd::HandleLeave { args } { + ::tkdnd::generic::HandleLeave +};# macdnd::HandleLeave + +# ---------------------------------------------------------------------------- +# Command macdnd::HandleDrop +# ---------------------------------------------------------------------------- +proc macdnd::HandleDrop { drop_target data args } { + variable _pressedkeys + variable _last_mouse_root_x + variable _last_mouse_root_y + ## Get the dropped data... + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \ + $_last_mouse_root_x $_last_mouse_root_y 0 +};# macdnd::HandleDrop + +# ---------------------------------------------------------------------------- +# Command macdnd::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc macdnd::GetDragSourceCommonTypes { } { + ::tkdnd::generic::GetDragSourceCommonTypes +};# macdnd::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc macdnd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # macdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc macdnd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # macdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command macdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc macdnd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # macdnd::platform_independent_type diff --git a/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_unix.tcl b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_unix.tcl new file mode 100644 index 0000000..56d17c4 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_unix.tcl @@ -0,0 +1,810 @@ +# +# tkdnd_unix.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval xdnd { + variable _dragging 0 + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + text/plain\;charset=utf-8 DND_Text \ + UTF8_STRING DND_Text \ + text/plain DND_Text \ + STRING DND_Text \ + TEXT DND_Text \ + COMPOUND_TEXT DND_Text \ + text/uri-list DND_Files \ + text/html\;charset=utf-8 DND_HTML \ + text/html DND_HTML \ + application/x-color DND_Color \ + ] + };# initialise + +};# namespace xdnd + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndEnter +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndEnter { path drag_source typelist time { data {} } } { + variable _pressedkeys + variable _actionlist + variable _typelist + set _pressedkeys 1 + set _actionlist { copy move link ask private } + set _typelist $typelist + # puts "xdnd::HandleXdndEnter: $time" + ::tkdnd::generic::SetDroppedData $data + ::tkdnd::generic::HandleEnter $path $drag_source $typelist $typelist \ + $_actionlist $_pressedkeys +};# xdnd::HandleXdndEnter + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndPosition +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndPosition { drop_target rootX rootY time {drag_source {}} } { + variable _pressedkeys + variable _typelist + variable _last_mouse_root_x; set _last_mouse_root_x $rootX + variable _last_mouse_root_y; set _last_mouse_root_y $rootY + # puts "xdnd::HandleXdndPosition: $time" + ## Get the dropped data... + catch { + ::tkdnd::generic::SetDroppedData [GetPositionData $drop_target $_typelist $time] + } + ::tkdnd::generic::HandlePosition $drop_target $drag_source \ + $_pressedkeys $rootX $rootY +};# xdnd::HandleXdndPosition + +# ---------------------------------------------------------------------------- +# Command xdnd::HandleXdndLeave +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndLeave { } { + ::tkdnd::generic::HandleLeave +};# xdnd::HandleXdndLeave + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndDrop +# ---------------------------------------------------------------------------- +proc xdnd::HandleXdndDrop { time } { + variable _pressedkeys + variable _last_mouse_root_x + variable _last_mouse_root_y + ## Get the dropped data... + ::tkdnd::generic::SetDroppedData [GetDroppedData \ + [::tkdnd::generic::GetDragSource] [::tkdnd::generic::GetDropTarget] \ + [::tkdnd::generic::GetDragSourceCommonTypes] $time] + ::tkdnd::generic::HandleDrop {} {} $_pressedkeys \ + $_last_mouse_root_x $_last_mouse_root_y $time +};# xdnd::HandleXdndDrop + +# ---------------------------------------------------------------------------- +# Command xdnd::GetPositionData +# ---------------------------------------------------------------------------- +proc xdnd::GetPositionData { drop_target typelist time } { + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [::tkdnd::generic::FindWindowWithCommonTypes $drop_target $typelist] {break} + GetDroppedData [::tkdnd::generic::GetDragSource] $drop_target \ + $common_drag_source_types $time +};# xdnd::GetPositionData + +# ---------------------------------------------------------------------------- +# Command xdnd::GetDroppedData +# ---------------------------------------------------------------------------- +proc xdnd::GetDroppedData { _drag_source _drop_target _common_drag_source_types time } { + if {![llength $_common_drag_source_types]} { + error "no common data types between the drag source and drop target widgets" + } + ## Is drag source in this application? + if {[catch {winfo pathname -displayof $_drop_target $_drag_source} p]} { + set _use_tk_selection 0 + } else { + set _use_tk_selection 1 + } + foreach type $_common_drag_source_types { + # puts "TYPE: $type ($_drop_target)" + # _get_selection $_drop_target $time $type + if {$_use_tk_selection} { + if {![catch { + selection get -displayof $_drop_target -selection XdndSelection \ + -type $type + } result options]} { + return [normalise_data $type $result] + } + } else { + # puts "_selection_get -displayof $_drop_target -selection XdndSelection \ + # -type $type -time $time" + #after 100 [list focus -force $_drop_target] + #after 50 [list raise [winfo toplevel $_drop_target]] + if {![catch { + _selection_get -displayof $_drop_target -selection XdndSelection \ + -type $type -time $time + } result options]} { + return [normalise_data $type $result] + } + } + } + return -options $options $result +};# xdnd::GetDroppedData + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_specific_types +# ---------------------------------------------------------------------------- +proc xdnd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # xdnd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_specific_type +# ---------------------------------------------------------------------------- +proc xdnd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # xdnd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command xdnd::platform_independent_type +# ---------------------------------------------------------------------------- +proc xdnd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # xdnd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command xdnd::_normalise_data +# ---------------------------------------------------------------------------- +proc xdnd::normalise_data { type data } { + # Tk knows how to interpret the following types: + # STRING, TEXT, COMPOUND_TEXT + # UTF8_STRING + # Else, it returns a list of 8 or 32 bit numbers... + switch -glob $type { + STRING - UTF8_STRING - TEXT - COMPOUND_TEXT {return $data} + text/html { + if {[catch { + encoding convertfrom unicode $data + } string]} { + set string $data + } + return [string map {\r\n \n} $string] + } + text/html\;charset=utf-8 - + text/plain\;charset=utf-8 - + text/plain { + if {[catch { + encoding convertfrom utf-8 [tkdnd::bytes_to_string $data] + } string]} { + set string $data + } + return [string map {\r\n \n} $string] + } + text/uri-list* { + if {[catch { + encoding convertfrom utf-8 [tkdnd::bytes_to_string $data] + } string]} { + set string $data + } + ## Get rid of \r\n + set string [string trim [string map {\r\n \n} $string]] + set files {} + foreach quoted_file [split $string] { + set file [tkdnd::urn_unquote $quoted_file] + switch -glob $file { + \#* {} + file://* {lappend files [string range $file 7 end]} + ftp://* - + https://* - + http://* {lappend files $quoted_file} + default {lappend files $file} + } + } + return $files + } + application/x-color { + return $data + } + text/x-moz-url - + application/q-iconlist - + default {return $data} + } +}; # xdnd::normalise_data + +############################################################################# +## +## XDND drag implementation +## +############################################################################# + +# ---------------------------------------------------------------------------- +# Command xdnd::_selection_ownership_lost +# ---------------------------------------------------------------------------- +proc xdnd::_selection_ownership_lost {} { + variable _dragging + set _dragging 0 +};# _selection_ownership_lost + +# ---------------------------------------------------------------------------- +# Command xdnd::_dodragdrop +# ---------------------------------------------------------------------------- +proc xdnd::_dodragdrop { source actions types data button } { + variable _dragging + + # puts "xdnd::_dodragdrop: source: $source, actions: $actions, types: $types,\ + # data: \"$data\", button: $button" + if {$_dragging} { + ## We are in the middle of another drag operation... + error "another drag operation in progress" + } + + variable _dodragdrop_drag_source $source + variable _dodragdrop_drop_target 0 + variable _dodragdrop_drop_target_proxy 0 + variable _dodragdrop_actions $actions + variable _dodragdrop_action_descriptions $actions + variable _dodragdrop_actions_len [llength $actions] + variable _dodragdrop_types $types + variable _dodragdrop_types_len [llength $types] + variable _dodragdrop_data $data + variable _dodragdrop_transfer_data {} + variable _dodragdrop_button $button + variable _dodragdrop_time 0 + variable _dodragdrop_default_action refuse_drop + variable _dodragdrop_waiting_status 0 + variable _dodragdrop_drop_target_accepts_drop 0 + variable _dodragdrop_drop_target_accepts_action refuse_drop + variable _dodragdrop_current_cursor $_dodragdrop_default_action + variable _dodragdrop_drop_occured 0 + variable _dodragdrop_selection_requestor 0 + + ## + ## If we have more than 3 types, the property XdndTypeList must be set on + ## the drag source widget... + ## + if {$_dodragdrop_types_len > 3} { + _announce_type_list $_dodragdrop_drag_source $_dodragdrop_types + } + + ## + ## Announce the actions & their descriptions on the XdndActionList & + ## XdndActionDescription properties... + ## + _announce_action_list $_dodragdrop_drag_source $_dodragdrop_actions \ + $_dodragdrop_action_descriptions + + ## + ## Arrange selection handlers for our drag source, and all the supported types + ## + registerSelectionHandler $source $types + + ## + ## Step 1: When a drag begins, the source takes ownership of XdndSelection. + ## + selection own -command ::tkdnd::xdnd::_selection_ownership_lost \ + -selection XdndSelection $source + set _dragging 1 + + ## Grab the mouse pointer... + _grab_pointer $source $_dodragdrop_default_action + + ## Register our generic event handler... + # The generic event callback will report events by modifying variable + # ::xdnd::_dodragdrop_event: a dict with event information will be set as + # the value of the variable... + _register_generic_event_handler + + ## Set a timeout for debugging purposes... + # after 60000 {set ::tkdnd::xdnd::_dragging 0} + + tkwait variable ::tkdnd::xdnd::_dragging + _SendXdndLeave + + set _dragging 0 + _ungrab_pointer $source + _unregister_generic_event_handler + catch {selection clear -selection XdndSelection} + unregisterSelectionHandler $source $types + return $_dodragdrop_drop_target_accepts_action +};# xdnd::_dodragdrop + +# ---------------------------------------------------------------------------- +# Command xdnd::_process_drag_events +# ---------------------------------------------------------------------------- +proc xdnd::_process_drag_events {event} { + # The return value from proc is normally 0. A non-zero return value indicates + # that the event is not to be handled further; that is, proc has done all + # processing that is to be allowed for the event + variable _dragging + if {!$_dragging} {return 0} + # puts $event + + variable _dodragdrop_time + set time [dict get $event time] + set type [dict get $event type] + if {$time < $_dodragdrop_time && ![string equal $type SelectionRequest]} { + return 0 + } + set _dodragdrop_time $time + + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_default_action + switch $type { + MotionNotify { + set rootx [dict get $event x_root] + set rooty [dict get $event y_root] + set window [_find_drop_target_window $_dodragdrop_drag_source \ + $rootx $rooty] + if {[string length $window]} { + ## Examine the modifiers to suggest an action... + set _dodragdrop_default_action [_default_action $event] + ## Is it a Tk widget? + # set path [winfo containing $rootx $rooty] + # puts "Window under mouse: $window ($path)" + if {$_dodragdrop_drop_target != $window} { + ## Send XdndLeave to $_dodragdrop_drop_target + _SendXdndLeave + ## Is there a proxy? If not, _find_drop_target_proxy returns the + ## target window, so we always get a valid "proxy". + set proxy [_find_drop_target_proxy $_dodragdrop_drag_source $window] + ## Send XdndEnter to $window + _SendXdndEnter $window $proxy + ## Send XdndPosition to $_dodragdrop_drop_target + _SendXdndPosition $rootx $rooty $_dodragdrop_default_action + } else { + ## Send XdndPosition to $_dodragdrop_drop_target + _SendXdndPosition $rootx $rooty $_dodragdrop_default_action + } + } else { + ## No window under the mouse. Send XdndLeave to $_dodragdrop_drop_target + _SendXdndLeave + } + } + ButtonPress { + } + ButtonRelease { + variable _dodragdrop_button + set button [dict get $event button] + if {$button == $_dodragdrop_button} { + ## The button that initiated the drag was released. Trigger drop... + _SendXdndDrop + } + return 1 + } + KeyPress { + } + KeyRelease { + set keysym [dict get $event keysym] + switch $keysym { + Escape { + ## The user has pressed escape. Abort... + if {$_dragging} {set _dragging 0} + } + } + } + SelectionRequest { + variable _dodragdrop_selection_requestor + variable _dodragdrop_selection_property + variable _dodragdrop_selection_selection + variable _dodragdrop_selection_target + variable _dodragdrop_selection_time + set _dodragdrop_selection_requestor [dict get $event requestor] + set _dodragdrop_selection_property [dict get $event property] + set _dodragdrop_selection_selection [dict get $event selection] + set _dodragdrop_selection_target [dict get $event target] + set _dodragdrop_selection_time $time + return 0 + } + default { + return 0 + } + } + return 0 +};# _process_drag_events + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndEnter +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndEnter {window proxy} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_types + variable _dodragdrop_waiting_status + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_target > 0} _SendXdndLeave + if {$_dodragdrop_drop_occured} return + set _dodragdrop_drop_target $window + set _dodragdrop_drop_target_proxy $proxy + set _dodragdrop_waiting_status 0 + if {$_dodragdrop_drop_target < 1} return + # puts "XdndEnter: $_dodragdrop_drop_target $_dodragdrop_drop_target_proxy" + _send_XdndEnter $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy $_dodragdrop_types +};# xdnd::_SendXdndEnter + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndPosition +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndPosition {rootx rooty action} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_waiting_status + ## Arrange a new XdndPosition, to be send periodically... + variable _dodragdrop_xdnd_position_heartbeat + catch {after cancel $_dodragdrop_xdnd_position_heartbeat} + set _dodragdrop_xdnd_position_heartbeat [after 200 \ + [list ::tkdnd::xdnd::_SendXdndPosition $rootx $rooty $action]] + if {$_dodragdrop_waiting_status} {return} + # puts "XdndPosition: $_dodragdrop_drop_target $rootx $rooty $action" + _send_XdndPosition $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy $rootx $rooty $action + set _dodragdrop_waiting_status 1 +};# xdnd::_SendXdndPosition + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndStatus +# ---------------------------------------------------------------------------- +proc xdnd::_HandleXdndStatus {event} { + variable _dodragdrop_drop_target + variable _dodragdrop_waiting_status + + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + set _dodragdrop_waiting_status 0 + foreach key {target accept want_position action x y w h} { + set $key [dict get $event $key] + } + set _dodragdrop_drop_target_accepts_drop $accept + set _dodragdrop_drop_target_accepts_action $action + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + _update_cursor + # puts "XdndStatus: $event" +};# xdnd::_HandleXdndStatus + +# ---------------------------------------------------------------------------- +# Command xdnd::_HandleXdndFinished +# ---------------------------------------------------------------------------- +proc xdnd::_HandleXdndFinished {event} { + variable _dodragdrop_xdnd_finished_event_after_id + catch {after cancel $_dodragdrop_xdnd_finished_event_after_id} + set _dodragdrop_xdnd_finished_event_after_id {} + variable _dodragdrop_drop_target + set _dodragdrop_drop_target 0 + variable _dragging + if {$_dragging} {set _dragging 0} + + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + if {[dict size $event]} { + foreach key {target accept action} { + set $key [dict get $event $key] + } + set _dodragdrop_drop_target_accepts_drop $accept + set _dodragdrop_drop_target_accepts_action $action + } else { + set _dodragdrop_drop_target_accepts_drop 0 + } + if {!$_dodragdrop_drop_target_accepts_drop} { + set _dodragdrop_drop_target_accepts_action refuse_drop + } + # puts "XdndFinished: $event" +};# xdnd::_HandleXdndFinished + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndLeave +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndLeave {} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} return + variable _dodragdrop_drop_target_proxy + # puts "XdndLeave: $_dodragdrop_drop_target" + _send_XdndLeave $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy + set _dodragdrop_drop_target 0 + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + set _dodragdrop_drop_target_accepts_drop 0 + set _dodragdrop_drop_target_accepts_action refuse_drop + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} return + _update_cursor +};# xdnd::_SendXdndLeave + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendXdndDrop +# ---------------------------------------------------------------------------- +proc xdnd::_SendXdndDrop {} { + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target + if {$_dodragdrop_drop_target < 1} { + ## The mouse has been released over a widget that does not accept drops. + _HandleXdndFinished {} + return + } + variable _dodragdrop_drop_occured + if {$_dodragdrop_drop_occured} {return} + variable _dodragdrop_drop_target_proxy + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + + set _dodragdrop_drop_occured 1 + _update_cursor clock + + if {!$_dodragdrop_drop_target_accepts_drop} { + _SendXdndLeave + _HandleXdndFinished {} + return + } + # puts "XdndDrop: $_dodragdrop_drop_target" + variable _dodragdrop_drop_timestamp + set _dodragdrop_drop_timestamp [_send_XdndDrop \ + $_dodragdrop_drag_source $_dodragdrop_drop_target \ + $_dodragdrop_drop_target_proxy] + set _dodragdrop_drop_target 0 + # puts "XdndDrop: $_dodragdrop_drop_target" + ## Arrange a timeout for receiving XdndFinished... + variable _dodragdrop_xdnd_finished_event_after_id + set _dodragdrop_xdnd_finished_event_after_id \ + [after 10000 [list ::tkdnd::xdnd::_HandleXdndFinished {}]] +};# xdnd::_SendXdndDrop + +# ---------------------------------------------------------------------------- +# Command xdnd::_update_cursor +# ---------------------------------------------------------------------------- +proc xdnd::_update_cursor { {cursor {}}} { + # puts "_update_cursor $cursor" + variable _dodragdrop_current_cursor + variable _dodragdrop_drag_source + variable _dodragdrop_drop_target_accepts_drop + variable _dodragdrop_drop_target_accepts_action + + if {![string length $cursor]} { + set cursor refuse_drop + if {$_dodragdrop_drop_target_accepts_drop} { + set cursor $_dodragdrop_drop_target_accepts_action + } + } + if {![string equal $cursor $_dodragdrop_current_cursor]} { + _set_pointer_cursor $_dodragdrop_drag_source $cursor + set _dodragdrop_current_cursor $cursor + } +};# xdnd::_update_cursor + +# ---------------------------------------------------------------------------- +# Command xdnd::_default_action +# ---------------------------------------------------------------------------- +proc xdnd::_default_action {event} { + variable _dodragdrop_actions + variable _dodragdrop_actions_len + if {$_dodragdrop_actions_len == 1} {return [lindex $_dodragdrop_actions 0]} + + set alt [dict get $event Alt] + set shift [dict get $event Shift] + set control [dict get $event Control] + + if {$shift && $control && [lsearch $_dodragdrop_actions link] != -1} { + return link + } elseif {$control && [lsearch $_dodragdrop_actions copy] != -1} { + return copy + } elseif {$shift && [lsearch $_dodragdrop_actions move] != -1} { + return move + } elseif {$alt && [lsearch $_dodragdrop_actions link] != -1} { + return link + } + return default +};# xdnd::_default_action + +# ---------------------------------------------------------------------------- +# Command xdnd::getFormatForType +# ---------------------------------------------------------------------------- +proc xdnd::getFormatForType {type} { + switch -glob [string tolower $type] { + text/plain\;charset=utf-8 - + text/html\;charset=utf-8 - + utf8_string {set format UTF8_STRING} + text/html - + text/plain - + string - + text - + compound_text {set format STRING} + text/uri-list* {set format UTF8_STRING} + application/x-color {set format $type} + default {set format $type} + } + return $format +};# xdnd::getFormatForType + +# ---------------------------------------------------------------------------- +# Command xdnd::registerSelectionHandler +# ---------------------------------------------------------------------------- +proc xdnd::registerSelectionHandler {source types} { + foreach type $types { + selection handle -selection XdndSelection \ + -type $type \ + -format [getFormatForType $type] \ + $source [list ::tkdnd::xdnd::_SendData $type] + } +};# xdnd::registerSelectionHandler + +# ---------------------------------------------------------------------------- +# Command xdnd::unregisterSelectionHandler +# ---------------------------------------------------------------------------- +proc xdnd::unregisterSelectionHandler {source types} { + foreach type $types { + catch { + selection handle -selection XdndSelection \ + -type $type \ + -format [getFormatForType $type] \ + $source {} + } + } +};# xdnd::unregisterSelectionHandler + +# ---------------------------------------------------------------------------- +# Command xdnd::_convert_to_unsigned +# ---------------------------------------------------------------------------- +proc xdnd::_convert_to_unsigned {data format} { + switch $format { + 8 { set mask 0xff } + 16 { set mask 0xffff } + 32 { set mask 0xffffff } + default {error "unsupported format $format"} + } + ## Convert signed integer into unsigned... + set d [list] + foreach num $data { + lappend d [expr { $num & $mask }] + } + return $d +};# xdnd::_convert_to_unsigned + +# ---------------------------------------------------------------------------- +# Command xdnd::_SendData +# ---------------------------------------------------------------------------- +proc xdnd::_SendData {type offset bytes args} { + variable _dodragdrop_drag_source + variable _dodragdrop_types + variable _dodragdrop_data + variable _dodragdrop_transfer_data + + ## The variable _dodragdrop_data contains a list of data, one for each + ## type in the _dodragdrop_types variable. We have to search types, and find + ## the corresponding entry in the _dodragdrop_data list. + set index [lsearch $_dodragdrop_types $type] + if {$index < 0} { + error "unable to locate data suitable for type \"$type\"" + } + set typed_data [lindex $_dodragdrop_data $index] + set format 8 + if {$offset == 0} { + ## Prepare the data to be transferred... + switch -glob $type { + text/plain* - UTF8_STRING - STRING - TEXT - COMPOUND_TEXT { + binary scan [encoding convertto utf-8 $typed_data] \ + c* _dodragdrop_transfer_data + set _dodragdrop_transfer_data \ + [_convert_to_unsigned $_dodragdrop_transfer_data $format] + } + text/uri-list* { + set files [list] + foreach file $typed_data { + switch -glob $file { + *://* {lappend files $file} + default {lappend files file://$file} + } + } + binary scan [encoding convertto utf-8 "[join $files \r\n]\r\n"] \ + c* _dodragdrop_transfer_data + set _dodragdrop_transfer_data \ + [_convert_to_unsigned $_dodragdrop_transfer_data $format] + } + application/x-color { + set format 16 + ## Try to understand the provided data: we accept a standard Tk colour, + ## or a list of 3 values (red green blue) or a list of 4 values + ## (red green blue opacity). + switch [llength $typed_data] { + 1 { set color [winfo rgb $_dodragdrop_drag_source $typed_data] + lappend color 65535 } + 3 { set color $typed_data; lappend color 65535 } + 4 { set color $typed_data } + default {error "unknown color data: \"$typed_data\""} + } + ## Convert the 4 elements into 16 bit values... + set _dodragdrop_transfer_data [list] + foreach c $color { + lappend _dodragdrop_transfer_data [format 0x%04X $c] + } + } + default { + set format 32 + binary scan $typed_data c* _dodragdrop_transfer_data + } + } + } + + ## + ## Data has been split into bytes. Count the bytes requested, and return them + ## + set data [lrange $_dodragdrop_transfer_data $offset [expr {$offset+$bytes-1}]] + switch $format { + 8 { + set data [encoding convertfrom utf-8 [binary format c* $data]] + } + 16 { + variable _dodragdrop_selection_requestor + if {$_dodragdrop_selection_requestor} { + ## Tk selection cannot process this format (only 8 & 32 supported). + ## Call our XChangeProperty... + set numItems [llength $data] + variable _dodragdrop_selection_property + variable _dodragdrop_selection_selection + variable _dodragdrop_selection_target + variable _dodragdrop_selection_time + XChangeProperty $_dodragdrop_drag_source \ + $_dodragdrop_selection_requestor \ + $_dodragdrop_selection_property \ + $_dodragdrop_selection_target \ + $format \ + $_dodragdrop_selection_time \ + $data $numItems + return -code break + } + } + 32 { + } + default { + error "unsupported format $format" + } + } + # puts "SendData: $type $offset $bytes $args ($typed_data)" + # puts " $data" + return $data +};# xdnd::_SendData diff --git a/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_utils.tcl b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_utils.tcl new file mode 100644 index 0000000..ee961dd --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_utils.tcl @@ -0,0 +1,252 @@ +# +# tkdnd_utils.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +package require tkdnd +namespace eval ::tkdnd { + namespace eval utils { + };# namespace ::tkdnd::utils + namespace eval text { + variable _drag_tag tkdnd::drag::selection::tag + variable _state {} + variable _drag_source_widget {} + variable _drop_target_widget {} + variable _now_dragging 0 + };# namespace ::tkdnd::text +};# namespace ::tkdnd + +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag clear 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag motion 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_TextAutoScan %W %x %y} +bind TkDND_Drag_Text1 {tkdnd::text::_begin_drag reset 1 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag clear 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag motion 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text2 {tkdnd::text::_begin_drag reset 2 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag clear 3 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag motion 3 %W %s %X %Y %x %y} +bind TkDND_Drag_Text3 {tkdnd::text::_begin_drag reset 3 %W %s %X %Y %x %y} + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::drag_source +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::drag_source { mode path { types DND_Text } { event 1 } { tagprefix TkDND_Drag_Text } { tag sel } } { + switch -exact -- $mode { + register { + $path tag bind $tag \ + "tkdnd::text::_begin_drag press ${event} %W %s %X %Y %x %y" + ## Set a binding to the widget, to put selection as data... + bind $path <> "::tkdnd::text::DragInitCmd $path {%t} $tag" + ## Set a binding to the widget, to remove selection if action is move... + bind $path <> "::tkdnd::text::DragEndCmd $path %A $tag" + } + unregister { + $path tag bind $tag {} + bind $path <> {} + bind $path <> {} + } + } + ::tkdnd::drag_source $mode $path $types $event $tagprefix +};# ::tkdnd::text::drag_source + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::drop_target +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::drop_target { mode path { types DND_Text } } { + switch -exact -- $mode { + register { + bind $path <> "::tkdnd::text::DropPosition $path %X %Y %A %a %m" + bind $path <> "::tkdnd::text::Drop $path %D %X %Y %A %a %m" + } + unregister { + bind $path <> {} + bind $path <> {} + bind $path <> {} + bind $path <> {} + } + } + ::tkdnd::drop_target $mode $path $types +};# ::tkdnd::text::drop_target + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DragInitCmd +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DragInitCmd { path { types DND_Text } { tag sel } { actions { copy move } } } { + ## Save the selection indices... + variable _drag_source_widget + variable _drop_target_widget + set _drag_source_widget $path + set _drop_target_widget {} + _save_selection $path $tag + list $actions $types [$path get $tag.first $tag.last] +};# ::tkdnd::text::DragInitCmd + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DragEndCmd +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DragEndCmd { path action { tag sel } } { + variable _drag_source_widget + variable _drop_target_widget + set _drag_source_widget {} + set _drop_target_widget {} + _restore_selection $path $tag + switch -exact -- $action { + move { + ## Delete the original selected text... + variable _selection_first + variable _selection_last + $path delete $_selection_first $_selection_last + } + } +};# ::tkdnd::text::DragEndCmd + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::DropPosition +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::DropPosition { path X Y action actions keys} { + variable _drag_source_widget + variable _drop_target_widget + set _drop_target_widget $path + ## This check is primitive, a more accurate one is needed! + if {$path eq $_drag_source_widget} { + ## This is a drag within the same widget! Set action to move... + if {"move" in $actions} {set action move} + } + incr X -[winfo rootx $path] + incr Y -[winfo rooty $path] + $path mark set insert @$X,$Y; update + return $action +};# ::tkdnd::text::DropPosition + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::Drop +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::Drop { path data X Y action actions keys } { + incr X -[winfo rootx $path] + incr Y -[winfo rooty $path] + $path mark set insert @$X,$Y + $path insert [$path index insert] $data + return $action +};# ::tkdnd::text::Drop + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_save_selection +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_save_selection { path tag} { + variable _drag_tag + variable _selection_first + variable _selection_last + variable _selection_tag $tag + set _selection_first [$path index $tag.first] + set _selection_last [$path index $tag.last] + $path tag add $_drag_tag $_selection_first $_selection_last + $path tag configure $_drag_tag \ + -background [$path tag cget $tag -background] \ + -foreground [$path tag cget $tag -foreground] +};# tkdnd::text::_save_selection + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_restore_selection +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_restore_selection { path tag} { + variable _drag_tag + variable _selection_first + variable _selection_last + $path tag delete $_drag_tag + $path tag remove $tag 0.0 end + #$path tag add $tag $_selection_first $_selection_last +};# tkdnd::text::_restore_selection + +# ---------------------------------------------------------------------------- +# Command tkdnd::text::_begin_drag +# ---------------------------------------------------------------------------- +proc ::tkdnd::text::_begin_drag { event button source state X Y x y } { + variable _drop_target_widget + variable _state + # puts "::tkdnd::text::_begin_drag $event $button $source $state $X $Y $x $y" + + switch -exact -- $event { + clear { + switch -exact -- $_state { + press { + ## Do not execute other bindings, as they will erase selection... + return -code break + } + } + set _state clear + } + motion { + variable _now_dragging + if {$_now_dragging} {return -code break} + if { [string equal $_state "press"] } { + variable _x0; variable _y0 + if { abs($_x0-$X) > ${::tkdnd::_dx} || abs($_y0-$Y) > ${::tkdnd::_dy} } { + set _state "done" + set _drop_target_widget {} + set _now_dragging 1 + set code [catch { + ::tkdnd::_init_drag $button $source $state $X $Y $x $y + } info options] + set _drop_target_widget {} + set _now_dragging 0 + if {$code != 0} { + ## Something strange occurred... + return -options $options $info + } + } + return -code break + } + set _state clear + } + press { + variable _x0; variable _y0 + set _x0 $X + set _y0 $Y + set _state "press" + } + reset { + set _state {} + } + } + if {$source eq $_drop_target_widget} {return -code break} + return -code continue +};# tkdnd::text::_begin_drag + +proc tkdnd::text::_TextAutoScan {w x y} { + variable _now_dragging + if {$_now_dragging} {return -code break} + return -code continue +};# tkdnd::text::_TextAutoScan diff --git a/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_windows.tcl b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_windows.tcl new file mode 100644 index 0000000..a1d01f3 --- /dev/null +++ b/gui_data/tkinterdnd2/tkdnd/win64/tkdnd_windows.tcl @@ -0,0 +1,167 @@ +# +# tkdnd_windows.tcl -- +# +# This file implements some utility procedures that are used by the TkDND +# package. +# +# This software is copyrighted by: +# George Petasis, National Centre for Scientific Research "Demokritos", +# Aghia Paraskevi, Athens, Greece. +# e-mail: petasis@iit.demokritos.gr +# +# The following terms apply to all files associated +# with the software unless explicitly disclaimed in individual files. +# +# The authors hereby grant permission to use, copy, modify, distribute, +# and license this software and its documentation for any purpose, provided +# that existing copyright notices are retained in all copies and that this +# notice is included verbatim in any distributions. No written agreement, +# license, or royalty fee is required for any of the authorized uses. +# Modifications to this software may be copyrighted by their authors +# and need not follow the licensing terms described here, provided that +# the new terms are clearly indicated on the first page of each file where +# they apply. +# +# IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +# ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +# DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +# IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +# NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +# MODIFICATIONS. +# + +namespace eval olednd { + + proc initialise { } { + ## Mapping from platform types to TkDND types... + ::tkdnd::generic::initialise_platform_to_tkdnd_types [list \ + CF_UNICODETEXT DND_Text \ + CF_TEXT DND_Text \ + CF_HDROP DND_Files \ + UniformResourceLocator DND_URL \ + CF_HTML DND_HTML \ + {HTML Format} DND_HTML \ + CF_RTF DND_RTF \ + CF_RTFTEXT DND_RTF \ + {Rich Text Format} DND_RTF \ + ] + # FileGroupDescriptorW DND_Files \ + # FileGroupDescriptor DND_Files \ + + ## Mapping from TkDND types to platform types... + ::tkdnd::generic::initialise_tkdnd_to_platform_types [list \ + DND_Text {CF_UNICODETEXT CF_TEXT} \ + DND_Files {CF_HDROP} \ + DND_URL {UniformResourceLocator UniformResourceLocatorW} \ + DND_HTML {CF_HTML {HTML Format}} \ + DND_RTF {CF_RTF CF_RTFTEXT {Rich Text Format}} \ + ] + };# initialise + +};# namespace olednd + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragEnter +# ---------------------------------------------------------------------------- +proc olednd::HandleDragEnter { drop_target typelist actionlist pressedkeys + rootX rootY codelist { data {} } } { + ::tkdnd::generic::SetDroppedData $data + focus $drop_target + ::tkdnd::generic::HandleEnter $drop_target 0 $typelist \ + $codelist $actionlist $pressedkeys + set action [::tkdnd::generic::HandlePosition $drop_target {} \ + $pressedkeys $rootX $rootY] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDragEnter + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragOver +# ---------------------------------------------------------------------------- +proc olednd::HandleDragOver { drop_target pressedkeys rootX rootY } { + set action [::tkdnd::generic::HandlePosition $drop_target {} \ + $pressedkeys $rootX $rootY] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDragOver + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDragLeave +# ---------------------------------------------------------------------------- +proc olednd::HandleDragLeave { drop_target } { + ::tkdnd::generic::HandleLeave + if {$::tkdnd::_auto_update} {update idletasks} +};# olednd::HandleDragLeave + +# ---------------------------------------------------------------------------- +# Command olednd::HandleDrop +# ---------------------------------------------------------------------------- +proc olednd::HandleDrop { drop_target pressedkeys rootX rootY type data } { + ::tkdnd::generic::SetDroppedData [normalise_data $type $data] + set action [::tkdnd::generic::HandleDrop $drop_target {} \ + $pressedkeys $rootX $rootY 0] + if {$::tkdnd::_auto_update} {update idletasks} + return $action +};# olednd::HandleDrop + +# ---------------------------------------------------------------------------- +# Command olednd::GetDataType +# ---------------------------------------------------------------------------- +proc olednd::GetDataType { drop_target typelist } { + foreach {drop_target common_drag_source_types common_drop_target_types} \ + [::tkdnd::generic::FindWindowWithCommonTypes $drop_target $typelist] {break} + lindex $common_drag_source_types 0 +};# olednd::GetDataType + +# ---------------------------------------------------------------------------- +# Command olednd::GetDragSourceCommonTypes +# ---------------------------------------------------------------------------- +proc olednd::GetDragSourceCommonTypes { drop_target } { + ::tkdnd::generic::GetDragSourceCommonTypes +};# olednd::GetDragSourceCommonTypes + +# ---------------------------------------------------------------------------- +# Command olednd::platform_specific_types +# ---------------------------------------------------------------------------- +proc olednd::platform_specific_types { types } { + ::tkdnd::generic::platform_specific_types $types +}; # olednd::platform_specific_types + +# ---------------------------------------------------------------------------- +# Command olednd::platform_specific_type +# ---------------------------------------------------------------------------- +proc olednd::platform_specific_type { type } { + ::tkdnd::generic::platform_specific_type $type +}; # olednd::platform_specific_type + +# ---------------------------------------------------------------------------- +# Command tkdnd::platform_independent_types +# ---------------------------------------------------------------------------- +proc ::tkdnd::platform_independent_types { types } { + ::tkdnd::generic::platform_independent_types $types +}; # tkdnd::platform_independent_types + +# ---------------------------------------------------------------------------- +# Command olednd::platform_independent_type +# ---------------------------------------------------------------------------- +proc olednd::platform_independent_type { type } { + ::tkdnd::generic::platform_independent_type $type +}; # olednd::platform_independent_type + +# ---------------------------------------------------------------------------- +# Command olednd::normalise_data +# ---------------------------------------------------------------------------- +proc olednd::normalise_data { type data } { + switch [lindex [::tkdnd::generic::platform_independent_type $type] 0] { + DND_Text {return $data} + DND_Files {return $data} + DND_HTML {return [encoding convertfrom utf-8 $data]} + default {return $data} + } +}; # olednd::normalise_data diff --git a/install_packages.sh b/install_packages.sh new file mode 100644 index 0000000..6419399 --- /dev/null +++ b/install_packages.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +while read package; do + pip install "$package" +done < requirements.txt diff --git a/lib_v5/mdxnet.py b/lib_v5/mdxnet.py new file mode 100644 index 0000000..3293c89 --- /dev/null +++ b/lib_v5/mdxnet.py @@ -0,0 +1,136 @@ +import torch +import torch.nn as nn +from .modules import TFC_TDF +from pytorch_lightning import LightningModule + +dim_s = 4 + +class AbstractMDXNet(LightningModule): + def __init__(self, target_name, lr, optimizer, dim_c, dim_f, dim_t, n_fft, hop_length, overlap): + super().__init__() + self.target_name = target_name + self.lr = lr + self.optimizer = optimizer + self.dim_c = dim_c + self.dim_f = dim_f + self.dim_t = dim_t + self.n_fft = n_fft + self.n_bins = n_fft // 2 + 1 + self.hop_length = hop_length + self.window = nn.Parameter(torch.hann_window(window_length=self.n_fft, periodic=True), requires_grad=False) + self.freq_pad = nn.Parameter(torch.zeros([1, dim_c, self.n_bins - self.dim_f, self.dim_t]), requires_grad=False) + + def get_optimizer(self): + if self.optimizer == 'rmsprop': + return torch.optim.RMSprop(self.parameters(), self.lr) + + if self.optimizer == 'adamw': + return torch.optim.AdamW(self.parameters(), self.lr) + +class ConvTDFNet(AbstractMDXNet): + def __init__(self, target_name, lr, optimizer, dim_c, dim_f, dim_t, n_fft, hop_length, + num_blocks, l, g, k, bn, bias, overlap): + + super(ConvTDFNet, self).__init__( + target_name, lr, optimizer, dim_c, dim_f, dim_t, n_fft, hop_length, overlap) + #self.save_hyperparameters() + + self.num_blocks = num_blocks + self.l = l + self.g = g + self.k = k + self.bn = bn + self.bias = bias + + if optimizer == 'rmsprop': + norm = nn.BatchNorm2d + + if optimizer == 'adamw': + norm = lambda input:nn.GroupNorm(2, input) + + self.n = num_blocks // 2 + scale = (2, 2) + + self.first_conv = nn.Sequential( + nn.Conv2d(in_channels=self.dim_c, out_channels=g, kernel_size=(1, 1)), + norm(g), + nn.ReLU(), + ) + + f = self.dim_f + c = g + self.encoding_blocks = nn.ModuleList() + self.ds = nn.ModuleList() + for i in range(self.n): + self.encoding_blocks.append(TFC_TDF(c, l, f, k, bn, bias=bias, norm=norm)) + self.ds.append( + nn.Sequential( + nn.Conv2d(in_channels=c, out_channels=c + g, kernel_size=scale, stride=scale), + norm(c + g), + nn.ReLU() + ) + ) + f = f // 2 + c += g + + self.bottleneck_block = TFC_TDF(c, l, f, k, bn, bias=bias, norm=norm) + + self.decoding_blocks = nn.ModuleList() + self.us = nn.ModuleList() + for i in range(self.n): + self.us.append( + nn.Sequential( + nn.ConvTranspose2d(in_channels=c, out_channels=c - g, kernel_size=scale, stride=scale), + norm(c - g), + nn.ReLU() + ) + ) + f = f * 2 + c -= g + + self.decoding_blocks.append(TFC_TDF(c, l, f, k, bn, bias=bias, norm=norm)) + + self.final_conv = nn.Sequential( + nn.Conv2d(in_channels=c, out_channels=self.dim_c, kernel_size=(1, 1)), + ) + + def forward(self, x): + + x = self.first_conv(x) + + x = x.transpose(-1, -2) + + ds_outputs = [] + for i in range(self.n): + x = self.encoding_blocks[i](x) + ds_outputs.append(x) + x = self.ds[i](x) + + x = self.bottleneck_block(x) + + for i in range(self.n): + x = self.us[i](x) + x *= ds_outputs[-i - 1] + x = self.decoding_blocks[i](x) + + x = x.transpose(-1, -2) + + x = self.final_conv(x) + + return x + +class Mixer(nn.Module): + def __init__(self, device, mixer_path): + + super(Mixer, self).__init__() + + self.linear = nn.Linear((dim_s+1)*2, dim_s*2, bias=False) + + self.load_state_dict( + torch.load(mixer_path, map_location=device) + ) + + def forward(self, x): + x = x.reshape(1,(dim_s+1)*2,-1).transpose(-1,-2) + x = self.linear(x) + return x.transpose(-1,-2).reshape(dim_s,2,-1) \ No newline at end of file diff --git a/lib_v5/mixer.ckpt b/lib_v5/mixer.ckpt new file mode 100644 index 0000000000000000000000000000000000000000..986cc4df50332460d78fda0436e8427a1728bf0e GIT binary patch literal 1208 zcmWIWW@cev;NW1u00Im`42ea_8JT6N`YDMeiFyUuIc`pT3{fbcfhjpTKPM+Oxg;|` zub9ifC?&NhHN_<}xrD2bK{Ke3F@hIpa!zJmYGRRId1_{QMoA%4a!EeWV7>U#lFXc9 zuK1$Vq|(fsl=za=yyE<#_%b7|LS_w(2zH>xVxY>z^wdHYh!!rloczR+V2B`BA!`I5 zP>rRDg_#A2FfcN=Fezk3InHI8p2b2_Y1bQ=gb9i&L6>@rWc{8>Za&=~a z+{Rr}$P-k^TU=Yn7r_bC6Q7$}k_hr@AwO7NKqCSu%1|g+TPOr}O<8JDG0>ZZ!rqL< zU|S&mDioTV znZCQyK1gcr-YdbI_b!g<+WT8~$KC+m>b)yBZri&(w{5T5?aj8Uom*{LRc7u@SW<4! zalC17*o)13>%VsHeO9w_uilaFy(;h5?#*>-w|$km!S-uf?Y^zeQu}(iH-k1Oq)aX810C0W8QWwz2j$psbr-Y*y3m*nhZ&o0HeuX0n(zLjhe z`-Fcs?-Q&LvQwU1ZWq;(x$m7Z!@lpK{`*#oKi+%yPJsQUY?gg8A#wX6MBnd~y5w(H za`3tBZTEkBg=fX>TO9vm?=C6FeO2?h_N5Ah*axm<+2@uRxbMa3AGYW89PDmb*X(`h zzhIB*^uE19R~q&xD$Lot;K`Ide%TfF-y06@-n6>gcDhxMP5rCcdp0YS?G@DT-t+xq z>)yjb6ZcFjow?Wa0RNr{wMzT`+F3SN_&RMtv9&XQb+ZF7ra%~XZ1FQV!($7Y5Zs*X z3C9qYNJA1b<^s9k;=J@wCSXzn;Q((&5CzYZ$Z1IcB!L3Zb11rQWWPzH=u86o7Fjo1 z>O(gO*@^rp1_>}D41xwsfHxbP4pfmGvo2gYP$d|^=p#`6B&YyTA1K!|gaOMW5CA$6 R7#^&k49&m{gdp`0wE#91U8?{9 literal 0 HcmV?d00001 diff --git a/lib_v5/modules.py b/lib_v5/modules.py new file mode 100644 index 0000000..4e77d2f --- /dev/null +++ b/lib_v5/modules.py @@ -0,0 +1,74 @@ +import torch +import torch.nn as nn + + +class TFC(nn.Module): + def __init__(self, c, l, k, norm): + super(TFC, self).__init__() + + self.H = nn.ModuleList() + for i in range(l): + self.H.append( + nn.Sequential( + nn.Conv2d(in_channels=c, out_channels=c, kernel_size=k, stride=1, padding=k // 2), + norm(c), + nn.ReLU(), + ) + ) + + def forward(self, x): + for h in self.H: + x = h(x) + return x + + +class DenseTFC(nn.Module): + def __init__(self, c, l, k, norm): + super(DenseTFC, self).__init__() + + self.conv = nn.ModuleList() + for i in range(l): + self.conv.append( + nn.Sequential( + nn.Conv2d(in_channels=c, out_channels=c, kernel_size=k, stride=1, padding=k // 2), + norm(c), + nn.ReLU(), + ) + ) + + def forward(self, x): + for layer in self.conv[:-1]: + x = torch.cat([layer(x), x], 1) + return self.conv[-1](x) + + +class TFC_TDF(nn.Module): + def __init__(self, c, l, f, k, bn, dense=False, bias=True, norm=nn.BatchNorm2d): + + super(TFC_TDF, self).__init__() + + self.use_tdf = bn is not None + + self.tfc = DenseTFC(c, l, k, norm) if dense else TFC(c, l, k, norm) + + if self.use_tdf: + if bn == 0: + self.tdf = nn.Sequential( + nn.Linear(f, f, bias=bias), + norm(c), + nn.ReLU() + ) + else: + self.tdf = nn.Sequential( + nn.Linear(f, f // bn, bias=bias), + norm(c), + nn.ReLU(), + nn.Linear(f // bn, f, bias=bias), + norm(c), + nn.ReLU() + ) + + def forward(self, x): + x = self.tfc(x) + return x + self.tdf(x) if self.use_tdf else x + diff --git a/lib_v5/pyrb.py b/lib_v5/pyrb.py new file mode 100644 index 0000000..883a525 --- /dev/null +++ b/lib_v5/pyrb.py @@ -0,0 +1,92 @@ +import os +import subprocess +import tempfile +import six +import numpy as np +import soundfile as sf +import sys + +if getattr(sys, 'frozen', False): + BASE_PATH_RUB = sys._MEIPASS +else: + BASE_PATH_RUB = os.path.dirname(os.path.abspath(__file__)) + +__all__ = ['time_stretch', 'pitch_shift'] + +__RUBBERBAND_UTIL = os.path.join(BASE_PATH_RUB, 'rubberband') + +if six.PY2: + DEVNULL = open(os.devnull, 'w') +else: + DEVNULL = subprocess.DEVNULL + +def __rubberband(y, sr, **kwargs): + + assert sr > 0 + + # Get the input and output tempfile + fd, infile = tempfile.mkstemp(suffix='.wav') + os.close(fd) + fd, outfile = tempfile.mkstemp(suffix='.wav') + os.close(fd) + + # dump the audio + sf.write(infile, y, sr) + + try: + # Execute rubberband + arguments = [__RUBBERBAND_UTIL, '-q'] + + for key, value in six.iteritems(kwargs): + arguments.append(str(key)) + arguments.append(str(value)) + + arguments.extend([infile, outfile]) + + subprocess.check_call(arguments, stdout=DEVNULL, stderr=DEVNULL) + + # Load the processed audio. + y_out, _ = sf.read(outfile, always_2d=True) + + # make sure that output dimensions matches input + if y.ndim == 1: + y_out = np.squeeze(y_out) + + except OSError as exc: + six.raise_from(RuntimeError('Failed to execute rubberband. ' + 'Please verify that rubberband-cli ' + 'is installed.'), + exc) + + finally: + # Remove temp files + os.unlink(infile) + os.unlink(outfile) + + return y_out + +def time_stretch(y, sr, rate, rbargs=None): + if rate <= 0: + raise ValueError('rate must be strictly positive') + + if rate == 1.0: + return y + + if rbargs is None: + rbargs = dict() + + rbargs.setdefault('--tempo', rate) + + return __rubberband(y, sr, **rbargs) + +def pitch_shift(y, sr, n_steps, rbargs=None): + + if n_steps == 0: + return y + + if rbargs is None: + rbargs = dict() + + rbargs.setdefault('--pitch', n_steps) + + return __rubberband(y, sr, **rbargs) diff --git a/lib_v5/results.py b/lib_v5/results.py new file mode 100644 index 0000000..476f2d1 --- /dev/null +++ b/lib_v5/results.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- + +""" +Matchering - Audio Matching and Mastering Python Library +Copyright (C) 2016-2022 Sergree + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + +import os +import soundfile as sf + + +class Result: + def __init__( + self, file: str, subtype: str, use_limiter: bool = True, normalize: bool = True + ): + _, file_ext = os.path.splitext(file) + file_ext = file_ext[1:].upper() + if not sf.check_format(file_ext): + raise TypeError(f"{file_ext} format is not supported") + if not sf.check_format(file_ext, subtype): + raise TypeError(f"{file_ext} format does not have {subtype} subtype") + self.file = file + self.subtype = subtype + self.use_limiter = use_limiter + self.normalize = normalize + + +def pcm16(file: str) -> Result: + return Result(file, "PCM_16") + +def pcm24(file: str) -> Result: + return Result(file, "FLOAT") + +def save_audiofile(file: str, wav_set="PCM_16") -> Result: + return Result(file, wav_set) diff --git a/lib_v5/spec_utils.py b/lib_v5/spec_utils.py new file mode 100644 index 0000000..8ec520d --- /dev/null +++ b/lib_v5/spec_utils.py @@ -0,0 +1,1241 @@ +import audioread +import librosa +import numpy as np +import soundfile as sf +import math +import platform +import traceback +from . import pyrb +from scipy.signal import correlate, hilbert +import io + +OPERATING_SYSTEM = platform.system() +SYSTEM_ARCH = platform.platform() +SYSTEM_PROC = platform.processor() +ARM = 'arm' + +AUTO_PHASE = "Automatic" +POSITIVE_PHASE = "Positive Phase" +NEGATIVE_PHASE = "Negative Phase" +NONE_P = "None", +LOW_P = "Shifts: Low", +MED_P = "Shifts: Medium", +HIGH_P = "Shifts: High", +VHIGH_P = "Shifts: Very High" +MAXIMUM_P = "Shifts: Maximum" + +progress_value = 0 +last_update_time = 0 +is_macos = False + +if OPERATING_SYSTEM == 'Windows': + from pyrubberband import pyrb +else: + from . import pyrb + +if OPERATING_SYSTEM == 'Darwin': + wav_resolution = "polyphase" if SYSTEM_PROC == ARM or ARM in SYSTEM_ARCH else "sinc_fastest" + wav_resolution_float_resampling = "kaiser_best" if SYSTEM_PROC == ARM or ARM in SYSTEM_ARCH else wav_resolution + is_macos = True +else: + wav_resolution = "sinc_fastest" + wav_resolution_float_resampling = wav_resolution + +MAX_SPEC = 'Max Spec' +MIN_SPEC = 'Min Spec' +LIN_ENSE = 'Linear Ensemble' + +MAX_WAV = MAX_SPEC +MIN_WAV = MIN_SPEC + +AVERAGE = 'Average' + +def crop_center(h1, h2): + h1_shape = h1.size() + h2_shape = h2.size() + + if h1_shape[3] == h2_shape[3]: + return h1 + elif h1_shape[3] < h2_shape[3]: + raise ValueError('h1_shape[3] must be greater than h2_shape[3]') + + s_time = (h1_shape[3] - h2_shape[3]) // 2 + e_time = s_time + h2_shape[3] + h1 = h1[:, :, :, s_time:e_time] + + return h1 + +def preprocess(X_spec): + X_mag = np.abs(X_spec) + X_phase = np.angle(X_spec) + + return X_mag, X_phase + +def make_padding(width, cropsize, offset): + left = offset + roi_size = cropsize - offset * 2 + if roi_size == 0: + roi_size = cropsize + right = roi_size - (width % roi_size) + left + + return left, right, roi_size + +def normalize(wave, is_normalize=False): + """Normalize audio""" + + maxv = np.abs(wave).max() + if maxv > 1.0: + if is_normalize: + print("Above clipping threshold.") + wave /= maxv + + return wave + +def auto_transpose(audio_array:np.ndarray): + """ + Ensure that the audio array is in the (channels, samples) format. + + Parameters: + audio_array (ndarray): Input audio array. + + Returns: + ndarray: Transposed audio array if necessary. + """ + + # If the second dimension is 2 (indicating stereo channels), transpose the array + if audio_array.shape[1] == 2: + return audio_array.T + return audio_array + +def write_array_to_mem(audio_data, subtype): + if isinstance(audio_data, np.ndarray): + audio_buffer = io.BytesIO() + sf.write(audio_buffer, audio_data, 44100, subtype=subtype, format='WAV') + audio_buffer.seek(0) + return audio_buffer + else: + return audio_data + +def spectrogram_to_image(spec, mode='magnitude'): + if mode == 'magnitude': + if np.iscomplexobj(spec): + y = np.abs(spec) + else: + y = spec + y = np.log10(y ** 2 + 1e-8) + elif mode == 'phase': + if np.iscomplexobj(spec): + y = np.angle(spec) + else: + y = spec + + y -= y.min() + y *= 255 / y.max() + img = np.uint8(y) + + if y.ndim == 3: + img = img.transpose(1, 2, 0) + img = np.concatenate([ + np.max(img, axis=2, keepdims=True), img + ], axis=2) + + return img + +def reduce_vocal_aggressively(X, y, softmask): + v = X - y + y_mag_tmp = np.abs(y) + v_mag_tmp = np.abs(v) + + v_mask = v_mag_tmp > y_mag_tmp + y_mag = np.clip(y_mag_tmp - v_mag_tmp * v_mask * softmask, 0, np.inf) + + return y_mag * np.exp(1.j * np.angle(y)) + +def merge_artifacts(y_mask, thres=0.01, min_range=64, fade_size=32): + mask = y_mask + + try: + if min_range < fade_size * 2: + raise ValueError('min_range must be >= fade_size * 2') + + idx = np.where(y_mask.min(axis=(0, 1)) > thres)[0] + start_idx = np.insert(idx[np.where(np.diff(idx) != 1)[0] + 1], 0, idx[0]) + end_idx = np.append(idx[np.where(np.diff(idx) != 1)[0]], idx[-1]) + artifact_idx = np.where(end_idx - start_idx > min_range)[0] + weight = np.zeros_like(y_mask) + if len(artifact_idx) > 0: + start_idx = start_idx[artifact_idx] + end_idx = end_idx[artifact_idx] + old_e = None + for s, e in zip(start_idx, end_idx): + if old_e is not None and s - old_e < fade_size: + s = old_e - fade_size * 2 + + if s != 0: + weight[:, :, s:s + fade_size] = np.linspace(0, 1, fade_size) + else: + s -= fade_size + + if e != y_mask.shape[2]: + weight[:, :, e - fade_size:e] = np.linspace(1, 0, fade_size) + else: + e += fade_size + + weight[:, :, s + fade_size:e - fade_size] = 1 + old_e = e + + v_mask = 1 - y_mask + y_mask += weight * v_mask + + mask = y_mask + except Exception as e: + error_name = f'{type(e).__name__}' + traceback_text = ''.join(traceback.format_tb(e.__traceback__)) + message = f'{error_name}: "{e}"\n{traceback_text}"' + print('Post Process Failed: ', message) + + return mask + +def align_wave_head_and_tail(a, b): + l = min([a[0].size, b[0].size]) + + return a[:l,:l], b[:l,:l] + +def convert_channels(spec, mp, band): + cc = mp.param['band'][band].get('convert_channels') + + if 'mid_side_c' == cc: + spec_left = np.add(spec[0], spec[1] * .25) + spec_right = np.subtract(spec[1], spec[0] * .25) + elif 'mid_side' == cc: + spec_left = np.add(spec[0], spec[1]) / 2 + spec_right = np.subtract(spec[0], spec[1]) + elif 'stereo_n' == cc: + spec_left = np.add(spec[0], spec[1] * .25) / 0.9375 + spec_right = np.add(spec[1], spec[0] * .25) / 0.9375 + else: + return spec + + return np.asfortranarray([spec_left, spec_right]) + +def combine_spectrograms(specs, mp, is_v51_model=False): + l = min([specs[i].shape[2] for i in specs]) + spec_c = np.zeros(shape=(2, mp.param['bins'] + 1, l), dtype=np.complex64) + offset = 0 + bands_n = len(mp.param['band']) + + for d in range(1, bands_n + 1): + h = mp.param['band'][d]['crop_stop'] - mp.param['band'][d]['crop_start'] + spec_c[:, offset:offset+h, :l] = specs[d][:, mp.param['band'][d]['crop_start']:mp.param['band'][d]['crop_stop'], :l] + offset += h + + if offset > mp.param['bins']: + raise ValueError('Too much bins') + + # lowpass fiter + + if mp.param['pre_filter_start'] > 0: + if is_v51_model: + spec_c *= get_lp_filter_mask(spec_c.shape[1], mp.param['pre_filter_start'], mp.param['pre_filter_stop']) + else: + if bands_n == 1: + spec_c = fft_lp_filter(spec_c, mp.param['pre_filter_start'], mp.param['pre_filter_stop']) + else: + gp = 1 + for b in range(mp.param['pre_filter_start'] + 1, mp.param['pre_filter_stop']): + g = math.pow(10, -(b - mp.param['pre_filter_start']) * (3.5 - gp) / 20.0) + gp = g + spec_c[:, b, :] *= g + + return np.asfortranarray(spec_c) + +def wave_to_spectrogram(wave, hop_length, n_fft, mp, band, is_v51_model=False): + + if wave.ndim == 1: + wave = np.asfortranarray([wave,wave]) + + if not is_v51_model: + if mp.param['reverse']: + wave_left = np.flip(np.asfortranarray(wave[0])) + wave_right = np.flip(np.asfortranarray(wave[1])) + elif mp.param['mid_side']: + wave_left = np.asfortranarray(np.add(wave[0], wave[1]) / 2) + wave_right = np.asfortranarray(np.subtract(wave[0], wave[1])) + elif mp.param['mid_side_b2']: + wave_left = np.asfortranarray(np.add(wave[1], wave[0] * .5)) + wave_right = np.asfortranarray(np.subtract(wave[0], wave[1] * .5)) + else: + wave_left = np.asfortranarray(wave[0]) + wave_right = np.asfortranarray(wave[1]) + else: + wave_left = np.asfortranarray(wave[0]) + wave_right = np.asfortranarray(wave[1]) + + spec_left = librosa.stft(wave_left, n_fft, hop_length=hop_length) + spec_right = librosa.stft(wave_right, n_fft, hop_length=hop_length) + + spec = np.asfortranarray([spec_left, spec_right]) + + if is_v51_model: + spec = convert_channels(spec, mp, band) + + return spec + +def spectrogram_to_wave(spec, hop_length=1024, mp={}, band=0, is_v51_model=True): + spec_left = np.asfortranarray(spec[0]) + spec_right = np.asfortranarray(spec[1]) + + wave_left = librosa.istft(spec_left, hop_length=hop_length) + wave_right = librosa.istft(spec_right, hop_length=hop_length) + + if is_v51_model: + cc = mp.param['band'][band].get('convert_channels') + if 'mid_side_c' == cc: + return np.asfortranarray([np.subtract(wave_left / 1.0625, wave_right / 4.25), np.add(wave_right / 1.0625, wave_left / 4.25)]) + elif 'mid_side' == cc: + return np.asfortranarray([np.add(wave_left, wave_right / 2), np.subtract(wave_left, wave_right / 2)]) + elif 'stereo_n' == cc: + return np.asfortranarray([np.subtract(wave_left, wave_right * .25), np.subtract(wave_right, wave_left * .25)]) + else: + if mp.param['reverse']: + return np.asfortranarray([np.flip(wave_left), np.flip(wave_right)]) + elif mp.param['mid_side']: + return np.asfortranarray([np.add(wave_left, wave_right / 2), np.subtract(wave_left, wave_right / 2)]) + elif mp.param['mid_side_b2']: + return np.asfortranarray([np.add(wave_right / 1.25, .4 * wave_left), np.subtract(wave_left / 1.25, .4 * wave_right)]) + + return np.asfortranarray([wave_left, wave_right]) + +def cmb_spectrogram_to_wave(spec_m, mp, extra_bins_h=None, extra_bins=None, is_v51_model=False): + bands_n = len(mp.param['band']) + offset = 0 + + for d in range(1, bands_n + 1): + bp = mp.param['band'][d] + spec_s = np.ndarray(shape=(2, bp['n_fft'] // 2 + 1, spec_m.shape[2]), dtype=complex) + h = bp['crop_stop'] - bp['crop_start'] + spec_s[:, bp['crop_start']:bp['crop_stop'], :] = spec_m[:, offset:offset+h, :] + + offset += h + if d == bands_n: # higher + if extra_bins_h: # if --high_end_process bypass + max_bin = bp['n_fft'] // 2 + spec_s[:, max_bin-extra_bins_h:max_bin, :] = extra_bins[:, :extra_bins_h, :] + if bp['hpf_start'] > 0: + if is_v51_model: + spec_s *= get_hp_filter_mask(spec_s.shape[1], bp['hpf_start'], bp['hpf_stop'] - 1) + else: + spec_s = fft_hp_filter(spec_s, bp['hpf_start'], bp['hpf_stop'] - 1) + if bands_n == 1: + wave = spectrogram_to_wave(spec_s, bp['hl'], mp, d, is_v51_model) + else: + wave = np.add(wave, spectrogram_to_wave(spec_s, bp['hl'], mp, d, is_v51_model)) + else: + sr = mp.param['band'][d+1]['sr'] + if d == 1: # lower + if is_v51_model: + spec_s *= get_lp_filter_mask(spec_s.shape[1], bp['lpf_start'], bp['lpf_stop']) + else: + spec_s = fft_lp_filter(spec_s, bp['lpf_start'], bp['lpf_stop']) + wave = librosa.resample(spectrogram_to_wave(spec_s, bp['hl'], mp, d, is_v51_model), bp['sr'], sr, res_type=wav_resolution) + else: # mid + if is_v51_model: + spec_s *= get_hp_filter_mask(spec_s.shape[1], bp['hpf_start'], bp['hpf_stop'] - 1) + spec_s *= get_lp_filter_mask(spec_s.shape[1], bp['lpf_start'], bp['lpf_stop']) + else: + spec_s = fft_hp_filter(spec_s, bp['hpf_start'], bp['hpf_stop'] - 1) + spec_s = fft_lp_filter(spec_s, bp['lpf_start'], bp['lpf_stop']) + + wave2 = np.add(wave, spectrogram_to_wave(spec_s, bp['hl'], mp, d, is_v51_model)) + wave = librosa.resample(wave2, bp['sr'], sr, res_type=wav_resolution) + + return wave + +def get_lp_filter_mask(n_bins, bin_start, bin_stop): + mask = np.concatenate([ + np.ones((bin_start - 1, 1)), + np.linspace(1, 0, bin_stop - bin_start + 1)[:, None], + np.zeros((n_bins - bin_stop, 1)) + ], axis=0) + + return mask + +def get_hp_filter_mask(n_bins, bin_start, bin_stop): + mask = np.concatenate([ + np.zeros((bin_stop + 1, 1)), + np.linspace(0, 1, 1 + bin_start - bin_stop)[:, None], + np.ones((n_bins - bin_start - 2, 1)) + ], axis=0) + + return mask + +def fft_lp_filter(spec, bin_start, bin_stop): + g = 1.0 + for b in range(bin_start, bin_stop): + g -= 1 / (bin_stop - bin_start) + spec[:, b, :] = g * spec[:, b, :] + + spec[:, bin_stop:, :] *= 0 + + return spec + +def fft_hp_filter(spec, bin_start, bin_stop): + g = 1.0 + for b in range(bin_start, bin_stop, -1): + g -= 1 / (bin_start - bin_stop) + spec[:, b, :] = g * spec[:, b, :] + + spec[:, 0:bin_stop+1, :] *= 0 + + return spec + +def spectrogram_to_wave_old(spec, hop_length=1024): + if spec.ndim == 2: + wave = librosa.istft(spec, hop_length=hop_length) + elif spec.ndim == 3: + spec_left = np.asfortranarray(spec[0]) + spec_right = np.asfortranarray(spec[1]) + + wave_left = librosa.istft(spec_left, hop_length=hop_length) + wave_right = librosa.istft(spec_right, hop_length=hop_length) + wave = np.asfortranarray([wave_left, wave_right]) + + return wave + +def wave_to_spectrogram_old(wave, hop_length, n_fft): + wave_left = np.asfortranarray(wave[0]) + wave_right = np.asfortranarray(wave[1]) + + spec_left = librosa.stft(wave_left, n_fft, hop_length=hop_length) + spec_right = librosa.stft(wave_right, n_fft, hop_length=hop_length) + + spec = np.asfortranarray([spec_left, spec_right]) + + return spec + +def mirroring(a, spec_m, input_high_end, mp): + if 'mirroring' == a: + mirror = np.flip(np.abs(spec_m[:, mp.param['pre_filter_start']-10-input_high_end.shape[1]:mp.param['pre_filter_start']-10, :]), 1) + mirror = mirror * np.exp(1.j * np.angle(input_high_end)) + + return np.where(np.abs(input_high_end) <= np.abs(mirror), input_high_end, mirror) + + if 'mirroring2' == a: + mirror = np.flip(np.abs(spec_m[:, mp.param['pre_filter_start']-10-input_high_end.shape[1]:mp.param['pre_filter_start']-10, :]), 1) + mi = np.multiply(mirror, input_high_end * 1.7) + + return np.where(np.abs(input_high_end) <= np.abs(mi), input_high_end, mi) + +def adjust_aggr(mask, is_non_accom_stem, aggressiveness): + aggr = aggressiveness['value'] * 2 + + if aggr != 0: + if is_non_accom_stem: + aggr = 1 - aggr + + aggr = [aggr, aggr] + + if aggressiveness['aggr_correction'] is not None: + aggr[0] += aggressiveness['aggr_correction']['left'] + aggr[1] += aggressiveness['aggr_correction']['right'] + + for ch in range(2): + mask[ch, :aggressiveness['split_bin']] = np.power(mask[ch, :aggressiveness['split_bin']], 1 + aggr[ch] / 3) + mask[ch, aggressiveness['split_bin']:] = np.power(mask[ch, aggressiveness['split_bin']:], 1 + aggr[ch]) + + return mask + +def stft(wave, nfft, hl): + wave_left = np.asfortranarray(wave[0]) + wave_right = np.asfortranarray(wave[1]) + spec_left = librosa.stft(wave_left, nfft, hop_length=hl) + spec_right = librosa.stft(wave_right, nfft, hop_length=hl) + spec = np.asfortranarray([spec_left, spec_right]) + + return spec + +def istft(spec, hl): + spec_left = np.asfortranarray(spec[0]) + spec_right = np.asfortranarray(spec[1]) + wave_left = librosa.istft(spec_left, hop_length=hl) + wave_right = librosa.istft(spec_right, hop_length=hl) + wave = np.asfortranarray([wave_left, wave_right]) + + return wave + +def spec_effects(wave, algorithm='Default', value=None): + spec = [stft(wave[0],2048,1024), stft(wave[1],2048,1024)] + if algorithm == 'Min_Mag': + v_spec_m = np.where(np.abs(spec[1]) <= np.abs(spec[0]), spec[1], spec[0]) + wave = istft(v_spec_m,1024) + elif algorithm == 'Max_Mag': + v_spec_m = np.where(np.abs(spec[1]) >= np.abs(spec[0]), spec[1], spec[0]) + wave = istft(v_spec_m,1024) + elif algorithm == 'Default': + wave = (wave[1] * value) + (wave[0] * (1-value)) + elif algorithm == 'Invert_p': + X_mag = np.abs(spec[0]) + y_mag = np.abs(spec[1]) + max_mag = np.where(X_mag >= y_mag, X_mag, y_mag) + v_spec = spec[1] - max_mag * np.exp(1.j * np.angle(spec[0])) + wave = istft(v_spec,1024) + + return wave + +def spectrogram_to_wave_no_mp(spec, n_fft=2048, hop_length=1024): + wave = librosa.istft(spec, n_fft=n_fft, hop_length=hop_length) + + if wave.ndim == 1: + wave = np.asfortranarray([wave,wave]) + + return wave + +def wave_to_spectrogram_no_mp(wave): + + spec = librosa.stft(wave, n_fft=2048, hop_length=1024) + + if spec.ndim == 1: + spec = np.asfortranarray([spec,spec]) + + return spec + +def invert_audio(specs, invert_p=True): + + ln = min([specs[0].shape[2], specs[1].shape[2]]) + specs[0] = specs[0][:,:,:ln] + specs[1] = specs[1][:,:,:ln] + + if invert_p: + X_mag = np.abs(specs[0]) + y_mag = np.abs(specs[1]) + max_mag = np.where(X_mag >= y_mag, X_mag, y_mag) + v_spec = specs[1] - max_mag * np.exp(1.j * np.angle(specs[0])) + else: + specs[1] = reduce_vocal_aggressively(specs[0], specs[1], 0.2) + v_spec = specs[0] - specs[1] + + return v_spec + +def invert_stem(mixture, stem): + mixture = wave_to_spectrogram_no_mp(mixture) + stem = wave_to_spectrogram_no_mp(stem) + output = spectrogram_to_wave_no_mp(invert_audio([mixture, stem])) + + return -output.T + +def ensembling(a, inputs, is_wavs=False): + + for i in range(1, len(inputs)): + if i == 1: + input = inputs[0] + + if is_wavs: + ln = min([input.shape[1], inputs[i].shape[1]]) + input = input[:,:ln] + inputs[i] = inputs[i][:,:ln] + else: + ln = min([input.shape[2], inputs[i].shape[2]]) + input = input[:,:,:ln] + inputs[i] = inputs[i][:,:,:ln] + + if MIN_SPEC == a: + input = np.where(np.abs(inputs[i]) <= np.abs(input), inputs[i], input) + if MAX_SPEC == a: + input = np.where(np.abs(inputs[i]) >= np.abs(input), inputs[i], input) + + #linear_ensemble + #input = ensemble_wav(inputs, split_size=1) + + return input + +def ensemble_for_align(waves): + + specs = [] + + for wav in waves: + spec = wave_to_spectrogram_no_mp(wav.T) + specs.append(spec) + + wav_aligned = spectrogram_to_wave_no_mp(ensembling(MIN_SPEC, specs)).T + wav_aligned = match_array_shapes(wav_aligned, waves[1], is_swap=True) + + return wav_aligned + +def ensemble_inputs(audio_input, algorithm, is_normalization, wav_type_set, save_path, is_wave=False, is_array=False): + + wavs_ = [] + + if algorithm == AVERAGE: + output = average_audio(audio_input) + samplerate = 44100 + else: + specs = [] + + for i in range(len(audio_input)): + wave, samplerate = librosa.load(audio_input[i], mono=False, sr=44100) + wavs_.append(wave) + spec = wave if is_wave else wave_to_spectrogram_no_mp(wave) + specs.append(spec) + + wave_shapes = [w.shape[1] for w in wavs_] + target_shape = wavs_[wave_shapes.index(max(wave_shapes))] + + if is_wave: + output = ensembling(algorithm, specs, is_wavs=True) + else: + output = spectrogram_to_wave_no_mp(ensembling(algorithm, specs)) + + output = to_shape(output, target_shape.shape) + + sf.write(save_path, normalize(output.T, is_normalization), samplerate, subtype=wav_type_set) + +def to_shape(x, target_shape): + padding_list = [] + for x_dim, target_dim in zip(x.shape, target_shape): + pad_value = (target_dim - x_dim) + pad_tuple = ((0, pad_value)) + padding_list.append(pad_tuple) + + return np.pad(x, tuple(padding_list), mode='constant') + +def to_shape_minimize(x: np.ndarray, target_shape): + + padding_list = [] + for x_dim, target_dim in zip(x.shape, target_shape): + pad_value = (target_dim - x_dim) + pad_tuple = ((0, pad_value)) + padding_list.append(pad_tuple) + + return np.pad(x, tuple(padding_list), mode='constant') + +def detect_leading_silence(audio, sr, silence_threshold=0.007, frame_length=1024): + """ + Detect silence at the beginning of an audio signal. + + :param audio: np.array, audio signal + :param sr: int, sample rate + :param silence_threshold: float, magnitude threshold below which is considered silence + :param frame_length: int, the number of samples to consider for each check + + :return: float, duration of the leading silence in milliseconds + """ + + if len(audio.shape) == 2: + # If stereo, pick the channel with more energy to determine the silence + channel = np.argmax(np.sum(np.abs(audio), axis=1)) + audio = audio[channel] + + for i in range(0, len(audio), frame_length): + if np.max(np.abs(audio[i:i+frame_length])) > silence_threshold: + return (i / sr) * 1000 + + return (len(audio) / sr) * 1000 + +def adjust_leading_silence(target_audio, reference_audio, silence_threshold=0.01, frame_length=1024): + """ + Adjust the leading silence of the target_audio to match the leading silence of the reference_audio. + + :param target_audio: np.array, audio signal that will have its silence adjusted + :param reference_audio: np.array, audio signal used as a reference + :param sr: int, sample rate + :param silence_threshold: float, magnitude threshold below which is considered silence + :param frame_length: int, the number of samples to consider for each check + + :return: np.array, target_audio adjusted to have the same leading silence as reference_audio + """ + + def find_silence_end(audio): + if len(audio.shape) == 2: + # If stereo, pick the channel with more energy to determine the silence + channel = np.argmax(np.sum(np.abs(audio), axis=1)) + audio_mono = audio[channel] + else: + audio_mono = audio + + for i in range(0, len(audio_mono), frame_length): + if np.max(np.abs(audio_mono[i:i+frame_length])) > silence_threshold: + return i + return len(audio_mono) + + ref_silence_end = find_silence_end(reference_audio) + target_silence_end = find_silence_end(target_audio) + silence_difference = ref_silence_end - target_silence_end + + try: + ref_silence_end_p = (ref_silence_end / 44100) * 1000 + target_silence_end_p = (target_silence_end / 44100) * 1000 + silence_difference_p = ref_silence_end_p - target_silence_end_p + print("silence_difference: ", silence_difference_p) + except Exception as e: + pass + + if silence_difference > 0: # Add silence to target_audio + if len(target_audio.shape) == 2: # stereo + silence_to_add = np.zeros((target_audio.shape[0], silence_difference)) + else: # mono + silence_to_add = np.zeros(silence_difference) + return np.hstack((silence_to_add, target_audio)) + elif silence_difference < 0: # Remove silence from target_audio + if len(target_audio.shape) == 2: # stereo + return target_audio[:, -silence_difference:] + else: # mono + return target_audio[-silence_difference:] + else: # No adjustment needed + return target_audio + +def match_array_shapes(array_1:np.ndarray, array_2:np.ndarray, is_swap=False): + + if is_swap: + array_1, array_2 = array_1.T, array_2.T + + #print("before", array_1.shape, array_2.shape) + if array_1.shape[1] > array_2.shape[1]: + array_1 = array_1[:,:array_2.shape[1]] + elif array_1.shape[1] < array_2.shape[1]: + padding = array_2.shape[1] - array_1.shape[1] + array_1 = np.pad(array_1, ((0,0), (0,padding)), 'constant', constant_values=0) + + #print("after", array_1.shape, array_2.shape) + + if is_swap: + array_1, array_2 = array_1.T, array_2.T + + return array_1 + +def match_mono_array_shapes(array_1: np.ndarray, array_2: np.ndarray): + + if len(array_1) > len(array_2): + array_1 = array_1[:len(array_2)] + elif len(array_1) < len(array_2): + padding = len(array_2) - len(array_1) + array_1 = np.pad(array_1, (0, padding), 'constant', constant_values=0) + + return array_1 + +def change_pitch_semitones(y, sr, semitone_shift): + factor = 2 ** (semitone_shift / 12) # Convert semitone shift to factor for resampling + y_pitch_tuned = [] + for y_channel in y: + y_pitch_tuned.append(librosa.resample(y_channel, sr, sr*factor, res_type=wav_resolution_float_resampling)) + y_pitch_tuned = np.array(y_pitch_tuned) + new_sr = sr * factor + return y_pitch_tuned, new_sr + +def augment_audio(export_path, audio_file, rate, is_normalization, wav_type_set, save_format=None, is_pitch=False, is_time_correction=True): + + wav, sr = librosa.load(audio_file, sr=44100, mono=False) + + if wav.ndim == 1: + wav = np.asfortranarray([wav,wav]) + + if not is_time_correction: + wav_mix = change_pitch_semitones(wav, 44100, semitone_shift=-rate)[0] + else: + if is_pitch: + wav_1 = pyrb.pitch_shift(wav[0], sr, rate, rbargs=None) + wav_2 = pyrb.pitch_shift(wav[1], sr, rate, rbargs=None) + else: + wav_1 = pyrb.time_stretch(wav[0], sr, rate, rbargs=None) + wav_2 = pyrb.time_stretch(wav[1], sr, rate, rbargs=None) + + if wav_1.shape > wav_2.shape: + wav_2 = to_shape(wav_2, wav_1.shape) + if wav_1.shape < wav_2.shape: + wav_1 = to_shape(wav_1, wav_2.shape) + + wav_mix = np.asfortranarray([wav_1, wav_2]) + + sf.write(export_path, normalize(wav_mix.T, is_normalization), sr, subtype=wav_type_set) + save_format(export_path) + +def average_audio(audio): + + waves = [] + wave_shapes = [] + final_waves = [] + + for i in range(len(audio)): + wave = librosa.load(audio[i], sr=44100, mono=False) + waves.append(wave[0]) + wave_shapes.append(wave[0].shape[1]) + + wave_shapes_index = wave_shapes.index(max(wave_shapes)) + target_shape = waves[wave_shapes_index] + waves.pop(wave_shapes_index) + final_waves.append(target_shape) + + for n_array in waves: + wav_target = to_shape(n_array, target_shape.shape) + final_waves.append(wav_target) + + waves = sum(final_waves) + waves = waves/len(audio) + + return waves + +def average_dual_sources(wav_1, wav_2, value): + + if wav_1.shape > wav_2.shape: + wav_2 = to_shape(wav_2, wav_1.shape) + if wav_1.shape < wav_2.shape: + wav_1 = to_shape(wav_1, wav_2.shape) + + wave = (wav_1 * value) + (wav_2 * (1-value)) + + return wave + +def reshape_sources(wav_1: np.ndarray, wav_2: np.ndarray): + + if wav_1.shape > wav_2.shape: + wav_2 = to_shape(wav_2, wav_1.shape) + if wav_1.shape < wav_2.shape: + ln = min([wav_1.shape[1], wav_2.shape[1]]) + wav_2 = wav_2[:,:ln] + + ln = min([wav_1.shape[1], wav_2.shape[1]]) + wav_1 = wav_1[:,:ln] + wav_2 = wav_2[:,:ln] + + return wav_2 + +def reshape_sources_ref(wav_1_shape, wav_2: np.ndarray): + + if wav_1_shape > wav_2.shape: + wav_2 = to_shape(wav_2, wav_1_shape) + + return wav_2 + +def combine_arrarys(audio_sources, is_swap=False): + source = np.zeros_like(max(audio_sources, key=np.size)) + + for v in audio_sources: + v = match_array_shapes(v, source, is_swap=is_swap) + source += v + + return source + +def combine_audio(paths: list, audio_file_base=None, wav_type_set='FLOAT', save_format=None): + + source = combine_arrarys([load_audio(i) for i in paths]) + save_path = f"{audio_file_base}_combined.wav" + sf.write(save_path, source.T, 44100, subtype=wav_type_set) + save_format(save_path) + +def reduce_mix_bv(inst_source, voc_source, reduction_rate=0.9): + # Reduce the volume + inst_source = inst_source * (1 - reduction_rate) + + mix_reduced = combine_arrarys([inst_source, voc_source], is_swap=True) + + return mix_reduced + +def organize_inputs(inputs): + input_list = { + "target":None, + "reference":None, + "reverb":None, + "inst":None + } + + for i in inputs: + if i.endswith("_(Vocals).wav"): + input_list["reference"] = i + elif "_RVC_" in i: + input_list["target"] = i + elif i.endswith("reverbed_stem.wav"): + input_list["reverb"] = i + elif i.endswith("_(Instrumental).wav"): + input_list["inst"] = i + + return input_list + +def check_if_phase_inverted(wav1, wav2, is_mono=False): + # Load the audio files + if not is_mono: + wav1 = np.mean(wav1, axis=0) + wav2 = np.mean(wav2, axis=0) + + # Compute the correlation + correlation = np.corrcoef(wav1[:1000], wav2[:1000]) + + return correlation[0,1] < 0 + +def align_audio(file1, + file2, + file2_aligned, + file_subtracted, + wav_type_set, + is_save_aligned, + command_Text, + save_format, + align_window:list, + align_intro_val:list, + db_analysis:tuple, + set_progress_bar, + phase_option, + phase_shifts, + is_match_silence, + is_spec_match): + + global progress_value + progress_value = 0 + is_mono = False + + def get_diff(a, b): + corr = np.correlate(a, b, "full") + diff = corr.argmax() - (b.shape[0] - 1) + + return diff + + def progress_bar(length): + global progress_value + progress_value += 1 + + if (0.90/length*progress_value) >= 0.9: + length = progress_value + 1 + + set_progress_bar(0.1, (0.9/length*progress_value)) + + # read tracks + + if file1.endswith(".mp3") and is_macos: + length1 = rerun_mp3(file1) + wav1, sr1 = librosa.load(file1, duration=length1, sr=44100, mono=False) + else: + wav1, sr1 = librosa.load(file1, sr=44100, mono=False) + + if file2.endswith(".mp3") and is_macos: + length2 = rerun_mp3(file2) + wav2, sr2 = librosa.load(file2, duration=length2, sr=44100, mono=False) + else: + wav2, sr2 = librosa.load(file2, sr=44100, mono=False) + + if wav1.ndim == 1 and wav2.ndim == 1: + is_mono = True + elif wav1.ndim == 1: + wav1 = np.asfortranarray([wav1,wav1]) + elif wav2.ndim == 1: + wav2 = np.asfortranarray([wav2,wav2]) + + # Check if phase is inverted + if phase_option == AUTO_PHASE: + if check_if_phase_inverted(wav1, wav2, is_mono=is_mono): + wav2 = -wav2 + elif phase_option == POSITIVE_PHASE: + wav2 = +wav2 + elif phase_option == NEGATIVE_PHASE: + wav2 = -wav2 + + if is_match_silence: + wav2 = adjust_leading_silence(wav2, wav1) + + wav1_length = int(librosa.get_duration(y=wav1, sr=44100)) + wav2_length = int(librosa.get_duration(y=wav2, sr=44100)) + + if not is_mono: + wav1 = wav1.transpose() + wav2 = wav2.transpose() + + wav2_org = wav2.copy() + + command_Text("Processing files... \n") + seconds_length = min(wav1_length, wav2_length) + + wav2_aligned_sources = [] + + for sec_len in align_intro_val: + # pick a position at 1 second in and get diff + sec_seg = 1 if sec_len == 1 else int(seconds_length // sec_len) + index = sr1*sec_seg # 1 second in, assuming sr1 = sr2 = 44100 + + if is_mono: + samp1, samp2 = wav1[index : index + sr1], wav2[index : index + sr1] + diff = get_diff(samp1, samp2) + #print(f"Estimated difference: {diff}\n") + else: + index = sr1*sec_seg # 1 second in, assuming sr1 = sr2 = 44100 + samp1, samp2 = wav1[index : index + sr1, 0], wav2[index : index + sr1, 0] + samp1_r, samp2_r = wav1[index : index + sr1, 1], wav2[index : index + sr1, 1] + diff, diff_r = get_diff(samp1, samp2), get_diff(samp1_r, samp2_r) + #print(f"Estimated difference Left Channel: {diff}\nEstimated difference Right Channel: {diff_r}\n") + + # make aligned track 2 + if diff > 0: + zeros_to_append = np.zeros(diff) if is_mono else np.zeros((diff, 2)) + wav2_aligned = np.append(zeros_to_append, wav2_org, axis=0) + elif diff < 0: + wav2_aligned = wav2_org[-diff:] + else: + wav2_aligned = wav2_org + #command_Text(f"Audio files already aligned.\n") + + if not any(np.array_equal(wav2_aligned, source) for source in wav2_aligned_sources): + wav2_aligned_sources.append(wav2_aligned) + + #print("Unique Sources: ", len(wav2_aligned_sources)) + + unique_sources = len(wav2_aligned_sources) + + sub_mapper_big_mapper = {} + + for s in wav2_aligned_sources: + wav2_aligned = match_mono_array_shapes(s, wav1) if is_mono else match_array_shapes(s, wav1, is_swap=True) + + if align_window: + wav_sub = time_correction(wav1, wav2_aligned, seconds_length, align_window=align_window, db_analysis=db_analysis, progress_bar=progress_bar, unique_sources=unique_sources, phase_shifts=phase_shifts) + wav_sub_size = np.abs(wav_sub).mean() + sub_mapper_big_mapper = {**sub_mapper_big_mapper, **{wav_sub_size:wav_sub}} + else: + wav2_aligned = wav2_aligned * np.power(10, db_analysis[0] / 20) + db_range = db_analysis[1] + + for db_adjustment in db_range: + # Adjust the dB of track2 + s_adjusted = wav2_aligned * (10 ** (db_adjustment / 20)) + wav_sub = wav1 - s_adjusted + wav_sub_size = np.abs(wav_sub).mean() + sub_mapper_big_mapper = {**sub_mapper_big_mapper, **{wav_sub_size:wav_sub}} + + #print(sub_mapper_big_mapper.keys(), min(sub_mapper_big_mapper.keys())) + + sub_mapper_value_list = list(sub_mapper_big_mapper.values()) + + if is_spec_match and len(sub_mapper_value_list) >= 2: + #print("using spec ensemble with align") + wav_sub = ensemble_for_align(list(sub_mapper_big_mapper.values())) + else: + #print("using linear ensemble with align") + wav_sub = ensemble_wav(list(sub_mapper_big_mapper.values())) + + #print(f"Mix Mean: {np.abs(wav1).mean()}\nInst Mean: {np.abs(wav2).mean()}") + #print('Final: ', np.abs(wav_sub).mean()) + wav_sub = np.clip(wav_sub, -1, +1) + + command_Text(f"Saving inverted track... ") + + if is_save_aligned or is_spec_match: + wav1 = match_mono_array_shapes(wav1, wav_sub) if is_mono else match_array_shapes(wav1, wav_sub, is_swap=True) + wav2_aligned = wav1 - wav_sub + + if is_spec_match: + if wav1.ndim == 1 and wav2.ndim == 1: + wav2_aligned = np.asfortranarray([wav2_aligned, wav2_aligned]).T + wav1 = np.asfortranarray([wav1, wav1]).T + + wav2_aligned = ensemble_for_align([wav2_aligned, wav1]) + wav_sub = wav1 - wav2_aligned + + if is_save_aligned: + sf.write(file2_aligned, wav2_aligned, sr1, subtype=wav_type_set) + save_format(file2_aligned) + + sf.write(file_subtracted, wav_sub, sr1, subtype=wav_type_set) + save_format(file_subtracted) + +def phase_shift_hilbert(signal, degree): + analytic_signal = hilbert(signal) + return np.cos(np.radians(degree)) * analytic_signal.real - np.sin(np.radians(degree)) * analytic_signal.imag + +def get_phase_shifted_tracks(track, phase_shift): + if phase_shift == 180: + return [track, -track] + + step = phase_shift + end = 180 - (180 % step) if 180 % step == 0 else 181 + phase_range = range(step, end, step) + + flipped_list = [track, -track] + for i in phase_range: + flipped_list.extend([phase_shift_hilbert(track, i), phase_shift_hilbert(track, -i)]) + + return flipped_list + +def time_correction(mix:np.ndarray, instrumental:np.ndarray, seconds_length, align_window, db_analysis, sr=44100, progress_bar=None, unique_sources=None, phase_shifts=NONE_P): + # Function to align two tracks using cross-correlation + + def align_tracks(track1, track2): + # A dictionary to store each version of track2_shifted and its mean absolute value + shifted_tracks = {} + + # Loop to adjust dB of track2 + track2 = track2 * np.power(10, db_analysis[0] / 20) + db_range = db_analysis[1] + + if phase_shifts == 190: + track2_flipped = [track2] + else: + track2_flipped = get_phase_shifted_tracks(track2, phase_shifts) + + for db_adjustment in db_range: + for t in track2_flipped: + # Adjust the dB of track2 + track2_adjusted = t * (10 ** (db_adjustment / 20)) + corr = correlate(track1, track2_adjusted) + delay = np.argmax(np.abs(corr)) - (len(track1) - 1) + track2_shifted = np.roll(track2_adjusted, shift=delay) + + # Compute the mean absolute value of track2_shifted + track2_shifted_sub = track1 - track2_shifted + mean_abs_value = np.abs(track2_shifted_sub).mean() + + # Store track2_shifted and its mean absolute value in the dictionary + shifted_tracks[mean_abs_value] = track2_shifted + + # Return the version of track2_shifted with the smallest mean absolute value + + return shifted_tracks[min(shifted_tracks.keys())] + + # Make sure the audio files have the same shape + + assert mix.shape == instrumental.shape, f"Audio files must have the same shape - Mix: {mix.shape}, Inst: {instrumental.shape}" + + seconds_length = seconds_length // 2 + + sub_mapper = {} + + progress_update_interval = 120 + total_iterations = 0 + + if len(align_window) > 2: + progress_update_interval = 320 + + for secs in align_window: + step = secs / 2 + window_size = int(sr * secs) + step_size = int(sr * step) + + if len(mix.shape) == 1: + total_mono = (len(range(0, len(mix) - window_size, step_size))//progress_update_interval)*unique_sources + total_iterations += total_mono + else: + total_stereo_ = len(range(0, len(mix[:, 0]) - window_size, step_size))*2 + total_stereo = (total_stereo_//progress_update_interval) * unique_sources + total_iterations += total_stereo + + #print(total_iterations) + + for secs in align_window: + sub = np.zeros_like(mix) + divider = np.zeros_like(mix) + step = secs / 2 + window_size = int(sr * secs) + step_size = int(sr * step) + window = np.hanning(window_size) + + # For the mono case: + if len(mix.shape) == 1: + # The files are mono + counter = 0 + for i in range(0, len(mix) - window_size, step_size): + counter += 1 + if counter % progress_update_interval == 0: + progress_bar(total_iterations) + window_mix = mix[i:i+window_size] * window + window_instrumental = instrumental[i:i+window_size] * window + window_instrumental_aligned = align_tracks(window_mix, window_instrumental) + sub[i:i+window_size] += window_mix - window_instrumental_aligned + divider[i:i+window_size] += window + else: + # The files are stereo + counter = 0 + for ch in range(mix.shape[1]): + for i in range(0, len(mix[:, ch]) - window_size, step_size): + counter += 1 + if counter % progress_update_interval == 0: + progress_bar(total_iterations) + window_mix = mix[i:i+window_size, ch] * window + window_instrumental = instrumental[i:i+window_size, ch] * window + window_instrumental_aligned = align_tracks(window_mix, window_instrumental) + sub[i:i+window_size, ch] += window_mix - window_instrumental_aligned + divider[i:i+window_size, ch] += window + + # Normalize the result by the overlap count + sub = np.where(divider > 1e-6, sub / divider, sub) + sub_size = np.abs(sub).mean() + sub_mapper = {**sub_mapper, **{sub_size: sub}} + + #print("SUB_LEN", len(list(sub_mapper.values()))) + + sub = ensemble_wav(list(sub_mapper.values()), split_size=12) + + return sub + +def ensemble_wav(waveforms, split_size=240): + # Create a dictionary to hold the thirds of each waveform and their mean absolute values + waveform_thirds = {i: np.array_split(waveform, split_size) for i, waveform in enumerate(waveforms)} + + # Initialize the final waveform + final_waveform = [] + + # For chunk + for third_idx in range(split_size): + # Compute the mean absolute value of each third from each waveform + means = [np.abs(waveform_thirds[i][third_idx]).mean() for i in range(len(waveforms))] + + # Find the index of the waveform with the lowest mean absolute value for this third + min_index = np.argmin(means) + + # Add the least noisy third to the final waveform + final_waveform.append(waveform_thirds[min_index][third_idx]) + + # Concatenate all the thirds to create the final waveform + final_waveform = np.concatenate(final_waveform) + + return final_waveform + +def ensemble_wav_min(waveforms): + for i in range(1, len(waveforms)): + if i == 1: + wave = waveforms[0] + + ln = min(len(wave), len(waveforms[i])) + wave = wave[:ln] + waveforms[i] = waveforms[i][:ln] + + wave = np.where(np.abs(waveforms[i]) <= np.abs(wave), waveforms[i], wave) + + return wave + +def align_audio_test(wav1, wav2, sr1=44100): + def get_diff(a, b): + corr = np.correlate(a, b, "full") + diff = corr.argmax() - (b.shape[0] - 1) + return diff + + # read tracks + wav1 = wav1.transpose() + wav2 = wav2.transpose() + + #print(f"Audio file shapes: {wav1.shape} / {wav2.shape}\n") + + wav2_org = wav2.copy() + + # pick a position at 1 second in and get diff + index = sr1#*seconds_length # 1 second in, assuming sr1 = sr2 = 44100 + samp1 = wav1[index : index + sr1, 0] # currently use left channel + samp2 = wav2[index : index + sr1, 0] + diff = get_diff(samp1, samp2) + + # make aligned track 2 + if diff > 0: + wav2_aligned = np.append(np.zeros((diff, 1)), wav2_org, axis=0) + elif diff < 0: + wav2_aligned = wav2_org[-diff:] + else: + wav2_aligned = wav2_org + + return wav2_aligned + +def load_audio(audio_file): + wav, sr = librosa.load(audio_file, sr=44100, mono=False) + + if wav.ndim == 1: + wav = np.asfortranarray([wav,wav]) + + return wav + +def rerun_mp3(audio_file): + with audioread.audio_open(audio_file) as f: + track_length = int(f.duration) + + return track_length diff --git a/lib_v5/tfc_tdf_v3.py b/lib_v5/tfc_tdf_v3.py new file mode 100644 index 0000000..eba006c --- /dev/null +++ b/lib_v5/tfc_tdf_v3.py @@ -0,0 +1,253 @@ +import torch +import torch.nn as nn +from functools import partial + +class STFT: + def __init__(self, n_fft, hop_length, dim_f, device): + self.n_fft = n_fft + self.hop_length = hop_length + self.window = torch.hann_window(window_length=self.n_fft, periodic=True) + self.dim_f = dim_f + self.device = device + + def __call__(self, x): + + x_is_mps = not x.device.type in ["cuda", "cpu"] + if x_is_mps: + x = x.cpu() + + window = self.window.to(x.device) + batch_dims = x.shape[:-2] + c, t = x.shape[-2:] + x = x.reshape([-1, t]) + x = torch.stft(x, n_fft=self.n_fft, hop_length=self.hop_length, window=window, center=True,return_complex=False) + x = x.permute([0, 3, 1, 2]) + x = x.reshape([*batch_dims, c, 2, -1, x.shape[-1]]).reshape([*batch_dims, c * 2, -1, x.shape[-1]]) + + if x_is_mps: + x = x.to(self.device) + + return x[..., :self.dim_f, :] + + def inverse(self, x): + + x_is_mps = not x.device.type in ["cuda", "cpu"] + if x_is_mps: + x = x.cpu() + + window = self.window.to(x.device) + batch_dims = x.shape[:-3] + c, f, t = x.shape[-3:] + n = self.n_fft // 2 + 1 + f_pad = torch.zeros([*batch_dims, c, n - f, t]).to(x.device) + x = torch.cat([x, f_pad], -2) + x = x.reshape([*batch_dims, c // 2, 2, n, t]).reshape([-1, 2, n, t]) + x = x.permute([0, 2, 3, 1]) + x = x[..., 0] + x[..., 1] * 1.j + x = torch.istft(x, n_fft=self.n_fft, hop_length=self.hop_length, window=window, center=True) + x = x.reshape([*batch_dims, 2, -1]) + + if x_is_mps: + x = x.to(self.device) + + return x + +def get_norm(norm_type): + def norm(c, norm_type): + if norm_type == 'BatchNorm': + return nn.BatchNorm2d(c) + elif norm_type == 'InstanceNorm': + return nn.InstanceNorm2d(c, affine=True) + elif 'GroupNorm' in norm_type: + g = int(norm_type.replace('GroupNorm', '')) + return nn.GroupNorm(num_groups=g, num_channels=c) + else: + return nn.Identity() + + return partial(norm, norm_type=norm_type) + + +def get_act(act_type): + if act_type == 'gelu': + return nn.GELU() + elif act_type == 'relu': + return nn.ReLU() + elif act_type[:3] == 'elu': + alpha = float(act_type.replace('elu', '')) + return nn.ELU(alpha) + else: + raise Exception + + +class Upscale(nn.Module): + def __init__(self, in_c, out_c, scale, norm, act): + super().__init__() + self.conv = nn.Sequential( + norm(in_c), + act, + nn.ConvTranspose2d(in_channels=in_c, out_channels=out_c, kernel_size=scale, stride=scale, bias=False) + ) + + def forward(self, x): + return self.conv(x) + + +class Downscale(nn.Module): + def __init__(self, in_c, out_c, scale, norm, act): + super().__init__() + self.conv = nn.Sequential( + norm(in_c), + act, + nn.Conv2d(in_channels=in_c, out_channels=out_c, kernel_size=scale, stride=scale, bias=False) + ) + + def forward(self, x): + return self.conv(x) + + +class TFC_TDF(nn.Module): + def __init__(self, in_c, c, l, f, bn, norm, act): + super().__init__() + + self.blocks = nn.ModuleList() + for i in range(l): + block = nn.Module() + + block.tfc1 = nn.Sequential( + norm(in_c), + act, + nn.Conv2d(in_c, c, 3, 1, 1, bias=False), + ) + block.tdf = nn.Sequential( + norm(c), + act, + nn.Linear(f, f // bn, bias=False), + norm(c), + act, + nn.Linear(f // bn, f, bias=False), + ) + block.tfc2 = nn.Sequential( + norm(c), + act, + nn.Conv2d(c, c, 3, 1, 1, bias=False), + ) + block.shortcut = nn.Conv2d(in_c, c, 1, 1, 0, bias=False) + + self.blocks.append(block) + in_c = c + + def forward(self, x): + for block in self.blocks: + s = block.shortcut(x) + x = block.tfc1(x) + x = x + block.tdf(x) + x = block.tfc2(x) + x = x + s + return x + + +class TFC_TDF_net(nn.Module): + def __init__(self, config, device): + super().__init__() + self.config = config + self.device = device + + norm = get_norm(norm_type=config.model.norm) + act = get_act(act_type=config.model.act) + + self.num_target_instruments = 1 if config.training.target_instrument else len(config.training.instruments) + self.num_subbands = config.model.num_subbands + + dim_c = self.num_subbands * config.audio.num_channels * 2 + n = config.model.num_scales + scale = config.model.scale + l = config.model.num_blocks_per_scale + c = config.model.num_channels + g = config.model.growth + bn = config.model.bottleneck_factor + f = config.audio.dim_f // self.num_subbands + + self.first_conv = nn.Conv2d(dim_c, c, 1, 1, 0, bias=False) + + self.encoder_blocks = nn.ModuleList() + for i in range(n): + block = nn.Module() + block.tfc_tdf = TFC_TDF(c, c, l, f, bn, norm, act) + block.downscale = Downscale(c, c + g, scale, norm, act) + f = f // scale[1] + c += g + self.encoder_blocks.append(block) + + self.bottleneck_block = TFC_TDF(c, c, l, f, bn, norm, act) + + self.decoder_blocks = nn.ModuleList() + for i in range(n): + block = nn.Module() + block.upscale = Upscale(c, c - g, scale, norm, act) + f = f * scale[1] + c -= g + block.tfc_tdf = TFC_TDF(2 * c, c, l, f, bn, norm, act) + self.decoder_blocks.append(block) + + self.final_conv = nn.Sequential( + nn.Conv2d(c + dim_c, c, 1, 1, 0, bias=False), + act, + nn.Conv2d(c, self.num_target_instruments * dim_c, 1, 1, 0, bias=False) + ) + + self.stft = STFT(config.audio.n_fft, config.audio.hop_length, config.audio.dim_f, self.device) + + def cac2cws(self, x): + k = self.num_subbands + b, c, f, t = x.shape + x = x.reshape(b, c, k, f // k, t) + x = x.reshape(b, c * k, f // k, t) + return x + + def cws2cac(self, x): + k = self.num_subbands + b, c, f, t = x.shape + x = x.reshape(b, c // k, k, f, t) + x = x.reshape(b, c // k, f * k, t) + return x + + def forward(self, x): + + x = self.stft(x) + + mix = x = self.cac2cws(x) + + first_conv_out = x = self.first_conv(x) + + x = x.transpose(-1, -2) + + encoder_outputs = [] + for block in self.encoder_blocks: + x = block.tfc_tdf(x) + encoder_outputs.append(x) + x = block.downscale(x) + + x = self.bottleneck_block(x) + + for block in self.decoder_blocks: + x = block.upscale(x) + x = torch.cat([x, encoder_outputs.pop()], 1) + x = block.tfc_tdf(x) + + x = x.transpose(-1, -2) + + x = x * first_conv_out # reduce artifacts + + x = self.final_conv(torch.cat([mix, x], 1)) + + x = self.cws2cac(x) + + if self.num_target_instruments > 1: + b, c, f, t = x.shape + x = x.reshape(b, self.num_target_instruments, -1, f, t) + + x = self.stft.inverse(x) + + return x + + diff --git a/lib_v5/vr_network/__init__.py b/lib_v5/vr_network/__init__.py new file mode 100644 index 0000000..361b708 --- /dev/null +++ b/lib_v5/vr_network/__init__.py @@ -0,0 +1 @@ +# VR init. diff --git a/lib_v5/vr_network/layers.py b/lib_v5/vr_network/layers.py new file mode 100644 index 0000000..0120a34 --- /dev/null +++ b/lib_v5/vr_network/layers.py @@ -0,0 +1,143 @@ +import torch +from torch import nn +import torch.nn.functional as F + +from lib_v5 import spec_utils + +class Conv2DBNActiv(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU): + super(Conv2DBNActiv, self).__init__() + self.conv = nn.Sequential( + nn.Conv2d( + nin, nout, + kernel_size=ksize, + stride=stride, + padding=pad, + dilation=dilation, + bias=False), + nn.BatchNorm2d(nout), + activ() + ) + + def __call__(self, x): + return self.conv(x) + +class SeperableConv2DBNActiv(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU): + super(SeperableConv2DBNActiv, self).__init__() + self.conv = nn.Sequential( + nn.Conv2d( + nin, nin, + kernel_size=ksize, + stride=stride, + padding=pad, + dilation=dilation, + groups=nin, + bias=False), + nn.Conv2d( + nin, nout, + kernel_size=1, + bias=False), + nn.BatchNorm2d(nout), + activ() + ) + + def __call__(self, x): + return self.conv(x) + + +class Encoder(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.LeakyReLU): + super(Encoder, self).__init__() + self.conv1 = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ) + self.conv2 = Conv2DBNActiv(nout, nout, ksize, stride, pad, activ=activ) + + def __call__(self, x): + skip = self.conv1(x) + h = self.conv2(skip) + + return h, skip + + +class Decoder(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.ReLU, dropout=False): + super(Decoder, self).__init__() + self.conv = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ) + self.dropout = nn.Dropout2d(0.1) if dropout else None + + def __call__(self, x, skip=None): + x = F.interpolate(x, scale_factor=2, mode='bilinear', align_corners=True) + if skip is not None: + skip = spec_utils.crop_center(skip, x) + x = torch.cat([x, skip], dim=1) + h = self.conv(x) + + if self.dropout is not None: + h = self.dropout(h) + + return h + + +class ASPPModule(nn.Module): + + def __init__(self, nn_architecture, nin, nout, dilations=(4, 8, 16), activ=nn.ReLU): + super(ASPPModule, self).__init__() + self.conv1 = nn.Sequential( + nn.AdaptiveAvgPool2d((1, None)), + Conv2DBNActiv(nin, nin, 1, 1, 0, activ=activ) + ) + + self.nn_architecture = nn_architecture + self.six_layer = [129605] + self.seven_layer = [537238, 537227, 33966] + + extra_conv = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[2], dilations[2], activ=activ) + + self.conv2 = Conv2DBNActiv(nin, nin, 1, 1, 0, activ=activ) + self.conv3 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[0], dilations[0], activ=activ) + self.conv4 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[1], dilations[1], activ=activ) + self.conv5 = SeperableConv2DBNActiv( + nin, nin, 3, 1, dilations[2], dilations[2], activ=activ) + + if self.nn_architecture in self.six_layer: + self.conv6 = extra_conv + nin_x = 6 + elif self.nn_architecture in self.seven_layer: + self.conv6 = extra_conv + self.conv7 = extra_conv + nin_x = 7 + else: + nin_x = 5 + + self.bottleneck = nn.Sequential( + Conv2DBNActiv(nin * nin_x, nout, 1, 1, 0, activ=activ), + nn.Dropout2d(0.1) + ) + + def forward(self, x): + _, _, h, w = x.size() + feat1 = F.interpolate(self.conv1(x), size=(h, w), mode='bilinear', align_corners=True) + feat2 = self.conv2(x) + feat3 = self.conv3(x) + feat4 = self.conv4(x) + feat5 = self.conv5(x) + + if self.nn_architecture in self.six_layer: + feat6 = self.conv6(x) + out = torch.cat((feat1, feat2, feat3, feat4, feat5, feat6), dim=1) + elif self.nn_architecture in self.seven_layer: + feat6 = self.conv6(x) + feat7 = self.conv7(x) + out = torch.cat((feat1, feat2, feat3, feat4, feat5, feat6, feat7), dim=1) + else: + out = torch.cat((feat1, feat2, feat3, feat4, feat5), dim=1) + + bottle = self.bottleneck(out) + return bottle diff --git a/lib_v5/vr_network/layers_new.py b/lib_v5/vr_network/layers_new.py new file mode 100644 index 0000000..33181dd --- /dev/null +++ b/lib_v5/vr_network/layers_new.py @@ -0,0 +1,126 @@ +import torch +from torch import nn +import torch.nn.functional as F + +from lib_v5 import spec_utils + +class Conv2DBNActiv(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, dilation=1, activ=nn.ReLU): + super(Conv2DBNActiv, self).__init__() + self.conv = nn.Sequential( + nn.Conv2d( + nin, nout, + kernel_size=ksize, + stride=stride, + padding=pad, + dilation=dilation, + bias=False), + nn.BatchNorm2d(nout), + activ() + ) + + def __call__(self, x): + return self.conv(x) + +class Encoder(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.LeakyReLU): + super(Encoder, self).__init__() + self.conv1 = Conv2DBNActiv(nin, nout, ksize, stride, pad, activ=activ) + self.conv2 = Conv2DBNActiv(nout, nout, ksize, 1, pad, activ=activ) + + def __call__(self, x): + h = self.conv1(x) + h = self.conv2(h) + + return h + + +class Decoder(nn.Module): + + def __init__(self, nin, nout, ksize=3, stride=1, pad=1, activ=nn.ReLU, dropout=False): + super(Decoder, self).__init__() + self.conv1 = Conv2DBNActiv(nin, nout, ksize, 1, pad, activ=activ) + # self.conv2 = Conv2DBNActiv(nout, nout, ksize, 1, pad, activ=activ) + self.dropout = nn.Dropout2d(0.1) if dropout else None + + def __call__(self, x, skip=None): + x = F.interpolate(x, scale_factor=2, mode='bilinear', align_corners=True) + + if skip is not None: + skip = spec_utils.crop_center(skip, x) + x = torch.cat([x, skip], dim=1) + + h = self.conv1(x) + # h = self.conv2(h) + + if self.dropout is not None: + h = self.dropout(h) + + return h + + +class ASPPModule(nn.Module): + + def __init__(self, nin, nout, dilations=(4, 8, 12), activ=nn.ReLU, dropout=False): + super(ASPPModule, self).__init__() + self.conv1 = nn.Sequential( + nn.AdaptiveAvgPool2d((1, None)), + Conv2DBNActiv(nin, nout, 1, 1, 0, activ=activ) + ) + self.conv2 = Conv2DBNActiv(nin, nout, 1, 1, 0, activ=activ) + self.conv3 = Conv2DBNActiv( + nin, nout, 3, 1, dilations[0], dilations[0], activ=activ + ) + self.conv4 = Conv2DBNActiv( + nin, nout, 3, 1, dilations[1], dilations[1], activ=activ + ) + self.conv5 = Conv2DBNActiv( + nin, nout, 3, 1, dilations[2], dilations[2], activ=activ + ) + self.bottleneck = Conv2DBNActiv(nout * 5, nout, 1, 1, 0, activ=activ) + self.dropout = nn.Dropout2d(0.1) if dropout else None + + def forward(self, x): + _, _, h, w = x.size() + feat1 = F.interpolate(self.conv1(x), size=(h, w), mode='bilinear', align_corners=True) + feat2 = self.conv2(x) + feat3 = self.conv3(x) + feat4 = self.conv4(x) + feat5 = self.conv5(x) + out = torch.cat((feat1, feat2, feat3, feat4, feat5), dim=1) + out = self.bottleneck(out) + + if self.dropout is not None: + out = self.dropout(out) + + return out + + +class LSTMModule(nn.Module): + + def __init__(self, nin_conv, nin_lstm, nout_lstm): + super(LSTMModule, self).__init__() + self.conv = Conv2DBNActiv(nin_conv, 1, 1, 1, 0) + self.lstm = nn.LSTM( + input_size=nin_lstm, + hidden_size=nout_lstm // 2, + bidirectional=True + ) + self.dense = nn.Sequential( + nn.Linear(nout_lstm, nin_lstm), + nn.BatchNorm1d(nin_lstm), + nn.ReLU() + ) + + def forward(self, x): + N, _, nbins, nframes = x.size() + h = self.conv(x)[:, 0] # N, nbins, nframes + h = h.permute(2, 0, 1) # nframes, N, nbins + h, _ = self.lstm(h) + h = self.dense(h.reshape(-1, h.size()[-1])) # nframes * N, nbins + h = h.reshape(nframes, N, 1, nbins) + h = h.permute(1, 2, 3, 0) + + return h diff --git a/lib_v5/vr_network/model_param_init.py b/lib_v5/vr_network/model_param_init.py new file mode 100644 index 0000000..a562207 --- /dev/null +++ b/lib_v5/vr_network/model_param_init.py @@ -0,0 +1,32 @@ +import json + +default_param = {} +default_param['bins'] = -1 +default_param['unstable_bins'] = -1 # training only +default_param['stable_bins'] = -1 # training only +default_param['sr'] = 44100 +default_param['pre_filter_start'] = -1 +default_param['pre_filter_stop'] = -1 +default_param['band'] = {} + +N_BINS = 'n_bins' + +def int_keys(d): + r = {} + for k, v in d: + if k.isdigit(): + k = int(k) + r[k] = v + return r + +class ModelParameters(object): + def __init__(self, config_path=''): + with open(config_path, 'r') as f: + self.param = json.loads(f.read(), object_pairs_hook=int_keys) + + for k in ['mid_side', 'mid_side_b', 'mid_side_b2', 'stereo_w', 'stereo_n', 'reverse']: + if not k in self.param: + self.param[k] = False + + if N_BINS in self.param: + self.param['bins'] = self.param[N_BINS] \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/1band_sr16000_hl512.json b/lib_v5/vr_network/modelparams/1band_sr16000_hl512.json new file mode 100644 index 0000000..72cb449 --- /dev/null +++ b/lib_v5/vr_network/modelparams/1band_sr16000_hl512.json @@ -0,0 +1,19 @@ +{ + "bins": 1024, + "unstable_bins": 0, + "reduction_bins": 0, + "band": { + "1": { + "sr": 16000, + "hl": 512, + "n_fft": 2048, + "crop_start": 0, + "crop_stop": 1024, + "hpf_start": -1, + "res_type": "sinc_best" + } + }, + "sr": 16000, + "pre_filter_start": 1023, + "pre_filter_stop": 1024 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/1band_sr32000_hl512.json b/lib_v5/vr_network/modelparams/1band_sr32000_hl512.json new file mode 100644 index 0000000..3c00ecf --- /dev/null +++ b/lib_v5/vr_network/modelparams/1band_sr32000_hl512.json @@ -0,0 +1,19 @@ +{ + "bins": 1024, + "unstable_bins": 0, + "reduction_bins": 0, + "band": { + "1": { + "sr": 32000, + "hl": 512, + "n_fft": 2048, + "crop_start": 0, + "crop_stop": 1024, + "hpf_start": -1, + "res_type": "kaiser_fast" + } + }, + "sr": 32000, + "pre_filter_start": 1000, + "pre_filter_stop": 1021 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/1band_sr33075_hl384.json b/lib_v5/vr_network/modelparams/1band_sr33075_hl384.json new file mode 100644 index 0000000..55666ac --- /dev/null +++ b/lib_v5/vr_network/modelparams/1band_sr33075_hl384.json @@ -0,0 +1,19 @@ +{ + "bins": 1024, + "unstable_bins": 0, + "reduction_bins": 0, + "band": { + "1": { + "sr": 33075, + "hl": 384, + "n_fft": 2048, + "crop_start": 0, + "crop_stop": 1024, + "hpf_start": -1, + "res_type": "sinc_best" + } + }, + "sr": 33075, + "pre_filter_start": 1000, + "pre_filter_stop": 1021 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/1band_sr44100_hl1024.json b/lib_v5/vr_network/modelparams/1band_sr44100_hl1024.json new file mode 100644 index 0000000..665abe2 --- /dev/null +++ b/lib_v5/vr_network/modelparams/1band_sr44100_hl1024.json @@ -0,0 +1,19 @@ +{ + "bins": 1024, + "unstable_bins": 0, + "reduction_bins": 0, + "band": { + "1": { + "sr": 44100, + "hl": 1024, + "n_fft": 2048, + "crop_start": 0, + "crop_stop": 1024, + "hpf_start": -1, + "res_type": "sinc_best" + } + }, + "sr": 44100, + "pre_filter_start": 1023, + "pre_filter_stop": 1024 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/1band_sr44100_hl256.json b/lib_v5/vr_network/modelparams/1band_sr44100_hl256.json new file mode 100644 index 0000000..0e8b16f --- /dev/null +++ b/lib_v5/vr_network/modelparams/1band_sr44100_hl256.json @@ -0,0 +1,19 @@ +{ + "bins": 256, + "unstable_bins": 0, + "reduction_bins": 0, + "band": { + "1": { + "sr": 44100, + "hl": 256, + "n_fft": 512, + "crop_start": 0, + "crop_stop": 256, + "hpf_start": -1, + "res_type": "sinc_best" + } + }, + "sr": 44100, + "pre_filter_start": 256, + "pre_filter_stop": 256 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/1band_sr44100_hl512.json b/lib_v5/vr_network/modelparams/1band_sr44100_hl512.json new file mode 100644 index 0000000..3b38fca --- /dev/null +++ b/lib_v5/vr_network/modelparams/1band_sr44100_hl512.json @@ -0,0 +1,19 @@ +{ + "bins": 1024, + "unstable_bins": 0, + "reduction_bins": 0, + "band": { + "1": { + "sr": 44100, + "hl": 512, + "n_fft": 2048, + "crop_start": 0, + "crop_stop": 1024, + "hpf_start": -1, + "res_type": "sinc_best" + } + }, + "sr": 44100, + "pre_filter_start": 1023, + "pre_filter_stop": 1024 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/1band_sr44100_hl512_cut.json b/lib_v5/vr_network/modelparams/1band_sr44100_hl512_cut.json new file mode 100644 index 0000000..630df35 --- /dev/null +++ b/lib_v5/vr_network/modelparams/1band_sr44100_hl512_cut.json @@ -0,0 +1,19 @@ +{ + "bins": 1024, + "unstable_bins": 0, + "reduction_bins": 0, + "band": { + "1": { + "sr": 44100, + "hl": 512, + "n_fft": 2048, + "crop_start": 0, + "crop_stop": 700, + "hpf_start": -1, + "res_type": "sinc_best" + } + }, + "sr": 44100, + "pre_filter_start": 1023, + "pre_filter_stop": 700 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/1band_sr44100_hl512_nf1024.json b/lib_v5/vr_network/modelparams/1band_sr44100_hl512_nf1024.json new file mode 100644 index 0000000..120ef1a --- /dev/null +++ b/lib_v5/vr_network/modelparams/1band_sr44100_hl512_nf1024.json @@ -0,0 +1,19 @@ +{ + "bins": 512, + "unstable_bins": 0, + "reduction_bins": 0, + "band": { + "1": { + "sr": 44100, + "hl": 512, + "n_fft": 1024, + "crop_start": 0, + "crop_stop": 512, + "hpf_start": -1, + "res_type": "sinc_best" + } + }, + "sr": 44100, + "pre_filter_start": 511, + "pre_filter_stop": 512 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/2band_32000.json b/lib_v5/vr_network/modelparams/2band_32000.json new file mode 100644 index 0000000..ab9cf11 --- /dev/null +++ b/lib_v5/vr_network/modelparams/2band_32000.json @@ -0,0 +1,30 @@ +{ + "bins": 768, + "unstable_bins": 7, + "reduction_bins": 705, + "band": { + "1": { + "sr": 6000, + "hl": 66, + "n_fft": 512, + "crop_start": 0, + "crop_stop": 240, + "lpf_start": 60, + "lpf_stop": 118, + "res_type": "sinc_fastest" + }, + "2": { + "sr": 32000, + "hl": 352, + "n_fft": 1024, + "crop_start": 22, + "crop_stop": 505, + "hpf_start": 44, + "hpf_stop": 23, + "res_type": "sinc_medium" + } + }, + "sr": 32000, + "pre_filter_start": 710, + "pre_filter_stop": 731 +} diff --git a/lib_v5/vr_network/modelparams/2band_44100_lofi.json b/lib_v5/vr_network/modelparams/2band_44100_lofi.json new file mode 100644 index 0000000..7faa216 --- /dev/null +++ b/lib_v5/vr_network/modelparams/2band_44100_lofi.json @@ -0,0 +1,30 @@ +{ + "bins": 512, + "unstable_bins": 7, + "reduction_bins": 510, + "band": { + "1": { + "sr": 11025, + "hl": 160, + "n_fft": 768, + "crop_start": 0, + "crop_stop": 192, + "lpf_start": 41, + "lpf_stop": 139, + "res_type": "sinc_fastest" + }, + "2": { + "sr": 44100, + "hl": 640, + "n_fft": 1024, + "crop_start": 10, + "crop_stop": 320, + "hpf_start": 47, + "hpf_stop": 15, + "res_type": "sinc_medium" + } + }, + "sr": 44100, + "pre_filter_start": 510, + "pre_filter_stop": 512 +} diff --git a/lib_v5/vr_network/modelparams/2band_48000.json b/lib_v5/vr_network/modelparams/2band_48000.json new file mode 100644 index 0000000..be075f5 --- /dev/null +++ b/lib_v5/vr_network/modelparams/2band_48000.json @@ -0,0 +1,30 @@ +{ + "bins": 768, + "unstable_bins": 7, + "reduction_bins": 705, + "band": { + "1": { + "sr": 6000, + "hl": 66, + "n_fft": 512, + "crop_start": 0, + "crop_stop": 240, + "lpf_start": 60, + "lpf_stop": 240, + "res_type": "sinc_fastest" + }, + "2": { + "sr": 48000, + "hl": 528, + "n_fft": 1536, + "crop_start": 22, + "crop_stop": 505, + "hpf_start": 82, + "hpf_stop": 22, + "res_type": "sinc_medium" + } + }, + "sr": 48000, + "pre_filter_start": 710, + "pre_filter_stop": 731 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/3band_44100.json b/lib_v5/vr_network/modelparams/3band_44100.json new file mode 100644 index 0000000..d99e239 --- /dev/null +++ b/lib_v5/vr_network/modelparams/3band_44100.json @@ -0,0 +1,42 @@ +{ + "bins": 768, + "unstable_bins": 5, + "reduction_bins": 733, + "band": { + "1": { + "sr": 11025, + "hl": 128, + "n_fft": 768, + "crop_start": 0, + "crop_stop": 278, + "lpf_start": 28, + "lpf_stop": 140, + "res_type": "polyphase" + }, + "2": { + "sr": 22050, + "hl": 256, + "n_fft": 768, + "crop_start": 14, + "crop_stop": 322, + "hpf_start": 70, + "hpf_stop": 14, + "lpf_start": 283, + "lpf_stop": 314, + "res_type": "polyphase" + }, + "3": { + "sr": 44100, + "hl": 512, + "n_fft": 768, + "crop_start": 131, + "crop_stop": 313, + "hpf_start": 154, + "hpf_stop": 141, + "res_type": "sinc_medium" + } + }, + "sr": 44100, + "pre_filter_start": 757, + "pre_filter_stop": 768 +} diff --git a/lib_v5/vr_network/modelparams/3band_44100_mid.json b/lib_v5/vr_network/modelparams/3band_44100_mid.json new file mode 100644 index 0000000..fc2c487 --- /dev/null +++ b/lib_v5/vr_network/modelparams/3band_44100_mid.json @@ -0,0 +1,43 @@ +{ + "mid_side": true, + "bins": 768, + "unstable_bins": 5, + "reduction_bins": 733, + "band": { + "1": { + "sr": 11025, + "hl": 128, + "n_fft": 768, + "crop_start": 0, + "crop_stop": 278, + "lpf_start": 28, + "lpf_stop": 140, + "res_type": "polyphase" + }, + "2": { + "sr": 22050, + "hl": 256, + "n_fft": 768, + "crop_start": 14, + "crop_stop": 322, + "hpf_start": 70, + "hpf_stop": 14, + "lpf_start": 283, + "lpf_stop": 314, + "res_type": "polyphase" + }, + "3": { + "sr": 44100, + "hl": 512, + "n_fft": 768, + "crop_start": 131, + "crop_stop": 313, + "hpf_start": 154, + "hpf_stop": 141, + "res_type": "sinc_medium" + } + }, + "sr": 44100, + "pre_filter_start": 757, + "pre_filter_stop": 768 +} diff --git a/lib_v5/vr_network/modelparams/3band_44100_msb2.json b/lib_v5/vr_network/modelparams/3band_44100_msb2.json new file mode 100644 index 0000000..33b0877 --- /dev/null +++ b/lib_v5/vr_network/modelparams/3band_44100_msb2.json @@ -0,0 +1,43 @@ +{ + "mid_side_b2": true, + "bins": 640, + "unstable_bins": 7, + "reduction_bins": 565, + "band": { + "1": { + "sr": 11025, + "hl": 108, + "n_fft": 1024, + "crop_start": 0, + "crop_stop": 187, + "lpf_start": 92, + "lpf_stop": 186, + "res_type": "polyphase" + }, + "2": { + "sr": 22050, + "hl": 216, + "n_fft": 768, + "crop_start": 0, + "crop_stop": 212, + "hpf_start": 68, + "hpf_stop": 34, + "lpf_start": 174, + "lpf_stop": 209, + "res_type": "polyphase" + }, + "3": { + "sr": 44100, + "hl": 432, + "n_fft": 640, + "crop_start": 66, + "crop_stop": 307, + "hpf_start": 86, + "hpf_stop": 72, + "res_type": "kaiser_fast" + } + }, + "sr": 44100, + "pre_filter_start": 639, + "pre_filter_stop": 640 +} diff --git a/lib_v5/vr_network/modelparams/4band_44100.json b/lib_v5/vr_network/modelparams/4band_44100.json new file mode 100644 index 0000000..4ae850a --- /dev/null +++ b/lib_v5/vr_network/modelparams/4band_44100.json @@ -0,0 +1,54 @@ +{ + "bins": 768, + "unstable_bins": 7, + "reduction_bins": 668, + "band": { + "1": { + "sr": 11025, + "hl": 128, + "n_fft": 1024, + "crop_start": 0, + "crop_stop": 186, + "lpf_start": 37, + "lpf_stop": 73, + "res_type": "polyphase" + }, + "2": { + "sr": 11025, + "hl": 128, + "n_fft": 512, + "crop_start": 4, + "crop_stop": 185, + "hpf_start": 36, + "hpf_stop": 18, + "lpf_start": 93, + "lpf_stop": 185, + "res_type": "polyphase" + }, + "3": { + "sr": 22050, + "hl": 256, + "n_fft": 512, + "crop_start": 46, + "crop_stop": 186, + "hpf_start": 93, + "hpf_stop": 46, + "lpf_start": 164, + "lpf_stop": 186, + "res_type": "polyphase" + }, + "4": { + "sr": 44100, + "hl": 512, + "n_fft": 768, + "crop_start": 121, + "crop_stop": 382, + "hpf_start": 138, + "hpf_stop": 123, + "res_type": "sinc_medium" + } + }, + "sr": 44100, + "pre_filter_start": 740, + "pre_filter_stop": 768 +} diff --git a/lib_v5/vr_network/modelparams/4band_44100_mid.json b/lib_v5/vr_network/modelparams/4band_44100_mid.json new file mode 100644 index 0000000..6346701 --- /dev/null +++ b/lib_v5/vr_network/modelparams/4band_44100_mid.json @@ -0,0 +1,55 @@ +{ + "bins": 768, + "unstable_bins": 7, + "mid_side": true, + "reduction_bins": 668, + "band": { + "1": { + "sr": 11025, + "hl": 128, + "n_fft": 1024, + "crop_start": 0, + "crop_stop": 186, + "lpf_start": 37, + "lpf_stop": 73, + "res_type": "polyphase" + }, + "2": { + "sr": 11025, + "hl": 128, + "n_fft": 512, + "crop_start": 4, + "crop_stop": 185, + "hpf_start": 36, + "hpf_stop": 18, + "lpf_start": 93, + "lpf_stop": 185, + "res_type": "polyphase" + }, + "3": { + "sr": 22050, + "hl": 256, + "n_fft": 512, + "crop_start": 46, + "crop_stop": 186, + "hpf_start": 93, + "hpf_stop": 46, + "lpf_start": 164, + "lpf_stop": 186, + "res_type": "polyphase" + }, + "4": { + "sr": 44100, + "hl": 512, + "n_fft": 768, + "crop_start": 121, + "crop_stop": 382, + "hpf_start": 138, + "hpf_stop": 123, + "res_type": "sinc_medium" + } + }, + "sr": 44100, + "pre_filter_start": 740, + "pre_filter_stop": 768 +} diff --git a/lib_v5/vr_network/modelparams/4band_44100_msb.json b/lib_v5/vr_network/modelparams/4band_44100_msb.json new file mode 100644 index 0000000..0bf4771 --- /dev/null +++ b/lib_v5/vr_network/modelparams/4band_44100_msb.json @@ -0,0 +1,55 @@ +{ + "mid_side_b": true, + "bins": 768, + "unstable_bins": 7, + "reduction_bins": 668, + "band": { + "1": { + "sr": 11025, + "hl": 128, + "n_fft": 1024, + "crop_start": 0, + "crop_stop": 186, + "lpf_start": 37, + "lpf_stop": 73, + "res_type": "polyphase" + }, + "2": { + "sr": 11025, + "hl": 128, + "n_fft": 512, + "crop_start": 4, + "crop_stop": 185, + "hpf_start": 36, + "hpf_stop": 18, + "lpf_start": 93, + "lpf_stop": 185, + "res_type": "polyphase" + }, + "3": { + "sr": 22050, + "hl": 256, + "n_fft": 512, + "crop_start": 46, + "crop_stop": 186, + "hpf_start": 93, + "hpf_stop": 46, + "lpf_start": 164, + "lpf_stop": 186, + "res_type": "polyphase" + }, + "4": { + "sr": 44100, + "hl": 512, + "n_fft": 768, + "crop_start": 121, + "crop_stop": 382, + "hpf_start": 138, + "hpf_stop": 123, + "res_type": "sinc_medium" + } + }, + "sr": 44100, + "pre_filter_start": 740, + "pre_filter_stop": 768 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/4band_44100_msb2.json b/lib_v5/vr_network/modelparams/4band_44100_msb2.json new file mode 100644 index 0000000..0bf4771 --- /dev/null +++ b/lib_v5/vr_network/modelparams/4band_44100_msb2.json @@ -0,0 +1,55 @@ +{ + "mid_side_b": true, + "bins": 768, + "unstable_bins": 7, + "reduction_bins": 668, + "band": { + "1": { + "sr": 11025, + "hl": 128, + "n_fft": 1024, + "crop_start": 0, + "crop_stop": 186, + "lpf_start": 37, + "lpf_stop": 73, + "res_type": "polyphase" + }, + "2": { + "sr": 11025, + "hl": 128, + "n_fft": 512, + "crop_start": 4, + "crop_stop": 185, + "hpf_start": 36, + "hpf_stop": 18, + "lpf_start": 93, + "lpf_stop": 185, + "res_type": "polyphase" + }, + "3": { + "sr": 22050, + "hl": 256, + "n_fft": 512, + "crop_start": 46, + "crop_stop": 186, + "hpf_start": 93, + "hpf_stop": 46, + "lpf_start": 164, + "lpf_stop": 186, + "res_type": "polyphase" + }, + "4": { + "sr": 44100, + "hl": 512, + "n_fft": 768, + "crop_start": 121, + "crop_stop": 382, + "hpf_start": 138, + "hpf_stop": 123, + "res_type": "sinc_medium" + } + }, + "sr": 44100, + "pre_filter_start": 740, + "pre_filter_stop": 768 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/4band_44100_reverse.json b/lib_v5/vr_network/modelparams/4band_44100_reverse.json new file mode 100644 index 0000000..779a1c9 --- /dev/null +++ b/lib_v5/vr_network/modelparams/4band_44100_reverse.json @@ -0,0 +1,55 @@ +{ + "reverse": true, + "bins": 768, + "unstable_bins": 7, + "reduction_bins": 668, + "band": { + "1": { + "sr": 11025, + "hl": 128, + "n_fft": 1024, + "crop_start": 0, + "crop_stop": 186, + "lpf_start": 37, + "lpf_stop": 73, + "res_type": "polyphase" + }, + "2": { + "sr": 11025, + "hl": 128, + "n_fft": 512, + "crop_start": 4, + "crop_stop": 185, + "hpf_start": 36, + "hpf_stop": 18, + "lpf_start": 93, + "lpf_stop": 185, + "res_type": "polyphase" + }, + "3": { + "sr": 22050, + "hl": 256, + "n_fft": 512, + "crop_start": 46, + "crop_stop": 186, + "hpf_start": 93, + "hpf_stop": 46, + "lpf_start": 164, + "lpf_stop": 186, + "res_type": "polyphase" + }, + "4": { + "sr": 44100, + "hl": 512, + "n_fft": 768, + "crop_start": 121, + "crop_stop": 382, + "hpf_start": 138, + "hpf_stop": 123, + "res_type": "sinc_medium" + } + }, + "sr": 44100, + "pre_filter_start": 740, + "pre_filter_stop": 768 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/4band_44100_sw.json b/lib_v5/vr_network/modelparams/4band_44100_sw.json new file mode 100644 index 0000000..1fefd4a --- /dev/null +++ b/lib_v5/vr_network/modelparams/4band_44100_sw.json @@ -0,0 +1,55 @@ +{ + "stereo_w": true, + "bins": 768, + "unstable_bins": 7, + "reduction_bins": 668, + "band": { + "1": { + "sr": 11025, + "hl": 128, + "n_fft": 1024, + "crop_start": 0, + "crop_stop": 186, + "lpf_start": 37, + "lpf_stop": 73, + "res_type": "polyphase" + }, + "2": { + "sr": 11025, + "hl": 128, + "n_fft": 512, + "crop_start": 4, + "crop_stop": 185, + "hpf_start": 36, + "hpf_stop": 18, + "lpf_start": 93, + "lpf_stop": 185, + "res_type": "polyphase" + }, + "3": { + "sr": 22050, + "hl": 256, + "n_fft": 512, + "crop_start": 46, + "crop_stop": 186, + "hpf_start": 93, + "hpf_stop": 46, + "lpf_start": 164, + "lpf_stop": 186, + "res_type": "polyphase" + }, + "4": { + "sr": 44100, + "hl": 512, + "n_fft": 768, + "crop_start": 121, + "crop_stop": 382, + "hpf_start": 138, + "hpf_stop": 123, + "res_type": "sinc_medium" + } + }, + "sr": 44100, + "pre_filter_start": 740, + "pre_filter_stop": 768 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/4band_v2.json b/lib_v5/vr_network/modelparams/4band_v2.json new file mode 100644 index 0000000..af79810 --- /dev/null +++ b/lib_v5/vr_network/modelparams/4band_v2.json @@ -0,0 +1,54 @@ +{ + "bins": 672, + "unstable_bins": 8, + "reduction_bins": 637, + "band": { + "1": { + "sr": 7350, + "hl": 80, + "n_fft": 640, + "crop_start": 0, + "crop_stop": 85, + "lpf_start": 25, + "lpf_stop": 53, + "res_type": "polyphase" + }, + "2": { + "sr": 7350, + "hl": 80, + "n_fft": 320, + "crop_start": 4, + "crop_stop": 87, + "hpf_start": 25, + "hpf_stop": 12, + "lpf_start": 31, + "lpf_stop": 62, + "res_type": "polyphase" + }, + "3": { + "sr": 14700, + "hl": 160, + "n_fft": 512, + "crop_start": 17, + "crop_stop": 216, + "hpf_start": 48, + "hpf_stop": 24, + "lpf_start": 139, + "lpf_stop": 210, + "res_type": "polyphase" + }, + "4": { + "sr": 44100, + "hl": 480, + "n_fft": 960, + "crop_start": 78, + "crop_stop": 383, + "hpf_start": 130, + "hpf_stop": 86, + "res_type": "kaiser_fast" + } + }, + "sr": 44100, + "pre_filter_start": 668, + "pre_filter_stop": 672 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/4band_v2_sn.json b/lib_v5/vr_network/modelparams/4band_v2_sn.json new file mode 100644 index 0000000..319b998 --- /dev/null +++ b/lib_v5/vr_network/modelparams/4band_v2_sn.json @@ -0,0 +1,55 @@ +{ + "bins": 672, + "unstable_bins": 8, + "reduction_bins": 637, + "band": { + "1": { + "sr": 7350, + "hl": 80, + "n_fft": 640, + "crop_start": 0, + "crop_stop": 85, + "lpf_start": 25, + "lpf_stop": 53, + "res_type": "polyphase" + }, + "2": { + "sr": 7350, + "hl": 80, + "n_fft": 320, + "crop_start": 4, + "crop_stop": 87, + "hpf_start": 25, + "hpf_stop": 12, + "lpf_start": 31, + "lpf_stop": 62, + "res_type": "polyphase" + }, + "3": { + "sr": 14700, + "hl": 160, + "n_fft": 512, + "crop_start": 17, + "crop_stop": 216, + "hpf_start": 48, + "hpf_stop": 24, + "lpf_start": 139, + "lpf_stop": 210, + "res_type": "polyphase" + }, + "4": { + "sr": 44100, + "hl": 480, + "n_fft": 960, + "crop_start": 78, + "crop_stop": 383, + "hpf_start": 130, + "hpf_stop": 86, + "convert_channels": "stereo_n", + "res_type": "kaiser_fast" + } + }, + "sr": 44100, + "pre_filter_start": 668, + "pre_filter_stop": 672 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/4band_v3.json b/lib_v5/vr_network/modelparams/4band_v3.json new file mode 100644 index 0000000..2a73bc9 --- /dev/null +++ b/lib_v5/vr_network/modelparams/4band_v3.json @@ -0,0 +1,54 @@ +{ + "bins": 672, + "unstable_bins": 8, + "reduction_bins": 530, + "band": { + "1": { + "sr": 7350, + "hl": 80, + "n_fft": 640, + "crop_start": 0, + "crop_stop": 85, + "lpf_start": 25, + "lpf_stop": 53, + "res_type": "polyphase" + }, + "2": { + "sr": 7350, + "hl": 80, + "n_fft": 320, + "crop_start": 4, + "crop_stop": 87, + "hpf_start": 25, + "hpf_stop": 12, + "lpf_start": 31, + "lpf_stop": 62, + "res_type": "polyphase" + }, + "3": { + "sr": 14700, + "hl": 160, + "n_fft": 512, + "crop_start": 17, + "crop_stop": 216, + "hpf_start": 48, + "hpf_stop": 24, + "lpf_start": 139, + "lpf_stop": 210, + "res_type": "polyphase" + }, + "4": { + "sr": 44100, + "hl": 480, + "n_fft": 960, + "crop_start": 78, + "crop_stop": 383, + "hpf_start": 130, + "hpf_stop": 86, + "res_type": "kaiser_fast" + } + }, + "sr": 44100, + "pre_filter_start": 668, + "pre_filter_stop": 672 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/4band_v3_sn.json b/lib_v5/vr_network/modelparams/4band_v3_sn.json new file mode 100644 index 0000000..6680a06 --- /dev/null +++ b/lib_v5/vr_network/modelparams/4band_v3_sn.json @@ -0,0 +1,55 @@ +{ + "n_bins": 672, + "unstable_bins": 8, + "stable_bins": 530, + "band": { + "1": { + "sr": 7350, + "hl": 80, + "n_fft": 640, + "crop_start": 0, + "crop_stop": 85, + "lpf_start": 25, + "lpf_stop": 53, + "res_type": "polyphase" + }, + "2": { + "sr": 7350, + "hl": 80, + "n_fft": 320, + "crop_start": 4, + "crop_stop": 87, + "hpf_start": 25, + "hpf_stop": 12, + "lpf_start": 31, + "lpf_stop": 62, + "res_type": "polyphase" + }, + "3": { + "sr": 14700, + "hl": 160, + "n_fft": 512, + "crop_start": 17, + "crop_stop": 216, + "hpf_start": 48, + "hpf_stop": 24, + "lpf_start": 139, + "lpf_stop": 210, + "res_type": "polyphase" + }, + "4": { + "sr": 44100, + "hl": 480, + "n_fft": 960, + "crop_start": 78, + "crop_stop": 383, + "hpf_start": 130, + "hpf_stop": 86, + "convert_channels": "stereo_n", + "res_type": "kaiser_fast" + } + }, + "sr": 44100, + "pre_filter_start": 668, + "pre_filter_stop": 672 +} \ No newline at end of file diff --git a/lib_v5/vr_network/modelparams/ensemble.json b/lib_v5/vr_network/modelparams/ensemble.json new file mode 100644 index 0000000..ca96bf1 --- /dev/null +++ b/lib_v5/vr_network/modelparams/ensemble.json @@ -0,0 +1,43 @@ +{ + "mid_side_b2": true, + "bins": 1280, + "unstable_bins": 7, + "reduction_bins": 565, + "band": { + "1": { + "sr": 11025, + "hl": 108, + "n_fft": 2048, + "crop_start": 0, + "crop_stop": 374, + "lpf_start": 92, + "lpf_stop": 186, + "res_type": "polyphase" + }, + "2": { + "sr": 22050, + "hl": 216, + "n_fft": 1536, + "crop_start": 0, + "crop_stop": 424, + "hpf_start": 68, + "hpf_stop": 34, + "lpf_start": 348, + "lpf_stop": 418, + "res_type": "polyphase" + }, + "3": { + "sr": 44100, + "hl": 432, + "n_fft": 1280, + "crop_start": 132, + "crop_stop": 614, + "hpf_start": 172, + "hpf_stop": 144, + "res_type": "polyphase" + } + }, + "sr": 44100, + "pre_filter_start": 1280, + "pre_filter_stop": 1280 +} \ No newline at end of file diff --git a/lib_v5/vr_network/nets.py b/lib_v5/vr_network/nets.py new file mode 100644 index 0000000..3896fce --- /dev/null +++ b/lib_v5/vr_network/nets.py @@ -0,0 +1,166 @@ +import torch +from torch import nn +import torch.nn.functional as F + +from . import layers + +class BaseASPPNet(nn.Module): + + def __init__(self, nn_architecture, nin, ch, dilations=(4, 8, 16)): + super(BaseASPPNet, self).__init__() + self.nn_architecture = nn_architecture + self.enc1 = layers.Encoder(nin, ch, 3, 2, 1) + self.enc2 = layers.Encoder(ch, ch * 2, 3, 2, 1) + self.enc3 = layers.Encoder(ch * 2, ch * 4, 3, 2, 1) + self.enc4 = layers.Encoder(ch * 4, ch * 8, 3, 2, 1) + + if self.nn_architecture == 129605: + self.enc5 = layers.Encoder(ch * 8, ch * 16, 3, 2, 1) + self.aspp = layers.ASPPModule(nn_architecture, ch * 16, ch * 32, dilations) + self.dec5 = layers.Decoder(ch * (16 + 32), ch * 16, 3, 1, 1) + else: + self.aspp = layers.ASPPModule(nn_architecture, ch * 8, ch * 16, dilations) + + self.dec4 = layers.Decoder(ch * (8 + 16), ch * 8, 3, 1, 1) + self.dec3 = layers.Decoder(ch * (4 + 8), ch * 4, 3, 1, 1) + self.dec2 = layers.Decoder(ch * (2 + 4), ch * 2, 3, 1, 1) + self.dec1 = layers.Decoder(ch * (1 + 2), ch, 3, 1, 1) + + def __call__(self, x): + h, e1 = self.enc1(x) + h, e2 = self.enc2(h) + h, e3 = self.enc3(h) + h, e4 = self.enc4(h) + + if self.nn_architecture == 129605: + h, e5 = self.enc5(h) + h = self.aspp(h) + h = self.dec5(h, e5) + else: + h = self.aspp(h) + + h = self.dec4(h, e4) + h = self.dec3(h, e3) + h = self.dec2(h, e2) + h = self.dec1(h, e1) + + return h + +def determine_model_capacity(n_fft_bins, nn_architecture): + + sp_model_arch = [31191, 33966, 129605] + hp_model_arch = [123821, 123812] + hp2_model_arch = [537238, 537227] + + if nn_architecture in sp_model_arch: + model_capacity_data = [ + (2, 16), + (2, 16), + (18, 8, 1, 1, 0), + (8, 16), + (34, 16, 1, 1, 0), + (16, 32), + (32, 2, 1), + (16, 2, 1), + (16, 2, 1), + ] + + if nn_architecture in hp_model_arch: + model_capacity_data = [ + (2, 32), + (2, 32), + (34, 16, 1, 1, 0), + (16, 32), + (66, 32, 1, 1, 0), + (32, 64), + (64, 2, 1), + (32, 2, 1), + (32, 2, 1), + ] + + if nn_architecture in hp2_model_arch: + model_capacity_data = [ + (2, 64), + (2, 64), + (66, 32, 1, 1, 0), + (32, 64), + (130, 64, 1, 1, 0), + (64, 128), + (128, 2, 1), + (64, 2, 1), + (64, 2, 1), + ] + + cascaded = CascadedASPPNet + model = cascaded(n_fft_bins, model_capacity_data, nn_architecture) + + return model + +class CascadedASPPNet(nn.Module): + + def __init__(self, n_fft, model_capacity_data, nn_architecture): + super(CascadedASPPNet, self).__init__() + self.stg1_low_band_net = BaseASPPNet(nn_architecture, *model_capacity_data[0]) + self.stg1_high_band_net = BaseASPPNet(nn_architecture, *model_capacity_data[1]) + + self.stg2_bridge = layers.Conv2DBNActiv(*model_capacity_data[2]) + self.stg2_full_band_net = BaseASPPNet(nn_architecture, *model_capacity_data[3]) + + self.stg3_bridge = layers.Conv2DBNActiv(*model_capacity_data[4]) + self.stg3_full_band_net = BaseASPPNet(nn_architecture, *model_capacity_data[5]) + + self.out = nn.Conv2d(*model_capacity_data[6], bias=False) + self.aux1_out = nn.Conv2d(*model_capacity_data[7], bias=False) + self.aux2_out = nn.Conv2d(*model_capacity_data[8], bias=False) + + self.max_bin = n_fft // 2 + self.output_bin = n_fft // 2 + 1 + + self.offset = 128 + + def forward(self, x): + mix = x.detach() + x = x.clone() + + x = x[:, :, :self.max_bin] + + bandw = x.size()[2] // 2 + aux1 = torch.cat([ + self.stg1_low_band_net(x[:, :, :bandw]), + self.stg1_high_band_net(x[:, :, bandw:]) + ], dim=2) + + h = torch.cat([x, aux1], dim=1) + aux2 = self.stg2_full_band_net(self.stg2_bridge(h)) + + h = torch.cat([x, aux1, aux2], dim=1) + h = self.stg3_full_band_net(self.stg3_bridge(h)) + + mask = torch.sigmoid(self.out(h)) + mask = F.pad( + input=mask, + pad=(0, 0, 0, self.output_bin - mask.size()[2]), + mode='replicate') + + if self.training: + aux1 = torch.sigmoid(self.aux1_out(aux1)) + aux1 = F.pad( + input=aux1, + pad=(0, 0, 0, self.output_bin - aux1.size()[2]), + mode='replicate') + aux2 = torch.sigmoid(self.aux2_out(aux2)) + aux2 = F.pad( + input=aux2, + pad=(0, 0, 0, self.output_bin - aux2.size()[2]), + mode='replicate') + return mask * mix, aux1 * mix, aux2 * mix + else: + return mask# * mix + + def predict_mask(self, x): + mask = self.forward(x) + + if self.offset > 0: + mask = mask[:, :, :, self.offset:-self.offset] + + return mask \ No newline at end of file diff --git a/lib_v5/vr_network/nets_new.py b/lib_v5/vr_network/nets_new.py new file mode 100644 index 0000000..6777274 --- /dev/null +++ b/lib_v5/vr_network/nets_new.py @@ -0,0 +1,125 @@ +import torch +from torch import nn +import torch.nn.functional as F +from . import layers_new as layers + +class BaseNet(nn.Module): + + def __init__(self, nin, nout, nin_lstm, nout_lstm, dilations=((4, 2), (8, 4), (12, 6))): + super(BaseNet, self).__init__() + self.enc1 = layers.Conv2DBNActiv(nin, nout, 3, 1, 1) + self.enc2 = layers.Encoder(nout, nout * 2, 3, 2, 1) + self.enc3 = layers.Encoder(nout * 2, nout * 4, 3, 2, 1) + self.enc4 = layers.Encoder(nout * 4, nout * 6, 3, 2, 1) + self.enc5 = layers.Encoder(nout * 6, nout * 8, 3, 2, 1) + + self.aspp = layers.ASPPModule(nout * 8, nout * 8, dilations, dropout=True) + + self.dec4 = layers.Decoder(nout * (6 + 8), nout * 6, 3, 1, 1) + self.dec3 = layers.Decoder(nout * (4 + 6), nout * 4, 3, 1, 1) + self.dec2 = layers.Decoder(nout * (2 + 4), nout * 2, 3, 1, 1) + self.lstm_dec2 = layers.LSTMModule(nout * 2, nin_lstm, nout_lstm) + self.dec1 = layers.Decoder(nout * (1 + 2) + 1, nout * 1, 3, 1, 1) + + def __call__(self, x): + e1 = self.enc1(x) + e2 = self.enc2(e1) + e3 = self.enc3(e2) + e4 = self.enc4(e3) + e5 = self.enc5(e4) + + h = self.aspp(e5) + + h = self.dec4(h, e4) + h = self.dec3(h, e3) + h = self.dec2(h, e2) + h = torch.cat([h, self.lstm_dec2(h)], dim=1) + h = self.dec1(h, e1) + + return h + +class CascadedNet(nn.Module): + + def __init__(self, n_fft, nn_arch_size=51000, nout=32, nout_lstm=128): + super(CascadedNet, self).__init__() + self.max_bin = n_fft // 2 + self.output_bin = n_fft // 2 + 1 + self.nin_lstm = self.max_bin // 2 + self.offset = 64 + nout = 64 if nn_arch_size == 218409 else nout + + #print(nout, nout_lstm, n_fft) + + self.stg1_low_band_net = nn.Sequential( + BaseNet(2, nout // 2, self.nin_lstm // 2, nout_lstm), + layers.Conv2DBNActiv(nout // 2, nout // 4, 1, 1, 0) + ) + self.stg1_high_band_net = BaseNet(2, nout // 4, self.nin_lstm // 2, nout_lstm // 2) + + self.stg2_low_band_net = nn.Sequential( + BaseNet(nout // 4 + 2, nout, self.nin_lstm // 2, nout_lstm), + layers.Conv2DBNActiv(nout, nout // 2, 1, 1, 0) + ) + self.stg2_high_band_net = BaseNet(nout // 4 + 2, nout // 2, self.nin_lstm // 2, nout_lstm // 2) + + self.stg3_full_band_net = BaseNet(3 * nout // 4 + 2, nout, self.nin_lstm, nout_lstm) + + self.out = nn.Conv2d(nout, 2, 1, bias=False) + self.aux_out = nn.Conv2d(3 * nout // 4, 2, 1, bias=False) + + def forward(self, x): + x = x[:, :, :self.max_bin] + + bandw = x.size()[2] // 2 + l1_in = x[:, :, :bandw] + h1_in = x[:, :, bandw:] + l1 = self.stg1_low_band_net(l1_in) + h1 = self.stg1_high_band_net(h1_in) + aux1 = torch.cat([l1, h1], dim=2) + + l2_in = torch.cat([l1_in, l1], dim=1) + h2_in = torch.cat([h1_in, h1], dim=1) + l2 = self.stg2_low_band_net(l2_in) + h2 = self.stg2_high_band_net(h2_in) + aux2 = torch.cat([l2, h2], dim=2) + + f3_in = torch.cat([x, aux1, aux2], dim=1) + f3 = self.stg3_full_band_net(f3_in) + + mask = torch.sigmoid(self.out(f3)) + mask = F.pad( + input=mask, + pad=(0, 0, 0, self.output_bin - mask.size()[2]), + mode='replicate' + ) + + if self.training: + aux = torch.cat([aux1, aux2], dim=1) + aux = torch.sigmoid(self.aux_out(aux)) + aux = F.pad( + input=aux, + pad=(0, 0, 0, self.output_bin - aux.size()[2]), + mode='replicate' + ) + return mask, aux + else: + return mask + + def predict_mask(self, x): + mask = self.forward(x) + + if self.offset > 0: + mask = mask[:, :, :, self.offset:-self.offset] + assert mask.size()[3] > 0 + + return mask + + def predict(self, x): + mask = self.forward(x) + pred_mag = x * mask + + if self.offset > 0: + pred_mag = pred_mag[:, :, :, self.offset:-self.offset] + assert pred_mag.size()[3] > 0 + + return pred_mag diff --git a/models/Demucs_Models/model_data/model_name_mapper.json b/models/Demucs_Models/model_data/model_name_mapper.json new file mode 100644 index 0000000..8456ca5 --- /dev/null +++ b/models/Demucs_Models/model_data/model_name_mapper.json @@ -0,0 +1,34 @@ +{ + "tasnet.th": "v1 | Tasnet", + "tasnet_extra.th": "v1 | Tasnet_extra", + "demucs.th": "v1 | Demucs", + "demucs_extra.th": "v1 | Demucs_extra", + "light.th": "v1 | Light", + "light_extra.th": "v1 | Light_extra", + "tasnet.th.gz": "v1 | Tasnet.gz", + "tasnet_extra.th.gz": "v1 | Tasnet_extra.gz", + "demucs.th.gz": "v1 | Demucs_extra.gz", + "light.th.gz": "v1 | Light.gz", + "light_extra.th.gz": "v1 | Light_extra.gz", + "tasnet-beb46fac.th": "v2 | Tasnet", + "tasnet_extra-df3777b2.th": "v2 | Tasnet_extra", + "demucs48_hq-28a1282c.th": "v2 | Demucs48_hq", + "demucs-e07c671f.th": "v2 | Demucs", + "demucs_extra-3646af93.th": "v2 | Demucs_extra", + "demucs_unittest-09ebc15f.th": "v2 | Demucs_unittest", + "mdx.yaml": "v3 | mdx", + "mdx_extra.yaml": "v3 | mdx_extra", + "mdx_extra_q.yaml": "v3 | mdx_extra_q", + "mdx_q.yaml": "v3 | mdx_q", + "repro_mdx_a.yaml": "v3 | repro_mdx_a", + "repro_mdx_a_hybrid_only.yaml": "v3 | repro_mdx_a_hybrid", + "repro_mdx_a_time_only.yaml": "v3 | repro_mdx_a_time", + "UVR_Demucs_Model_1.yaml": "v3 | UVR_Model_1", + "UVR_Demucs_Model_2.yaml": "v3 | UVR_Model_2", + "UVR_Demucs_Model_Bag.yaml": "v3 | UVR_Model_Bag", + "hdemucs_mmi.yaml": "v4 | hdemucs_mmi", + "htdemucs.yaml": "v4 | htdemucs", + "htdemucs_ft.yaml": "v4 | htdemucs_ft", + "htdemucs_6s.yaml": "v4 | htdemucs_6s", + "UVR_Demucs_Model_ht.yaml": "v4 | UVR_Model_ht" +} \ No newline at end of file diff --git a/models/Demucs_Models/v3_v4_repo/demucs_models.txt b/models/Demucs_Models/v3_v4_repo/demucs_models.txt new file mode 100644 index 0000000..584c89e --- /dev/null +++ b/models/Demucs_Models/v3_v4_repo/demucs_models.txt @@ -0,0 +1 @@ +Demucs v3 and v4 models go here. \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/model1.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/model1.yaml new file mode 100644 index 0000000..4a0af14 --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/model1.yaml @@ -0,0 +1,34 @@ +audio: + chunk_size: 260096 + dim_f: 4096 + dim_t: 128 + hop_length: 2048 + n_fft: 8192 + num_channels: 2 + sample_rate: 44100 +model: + act: gelu + bottleneck_factor: 4 + growth: 64 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 128 + num_scales: 5 + num_subbands: 4 + scale: + - 2 + - 2 +training: + batch_size: 8 + grad_clip: 0 + instruments: + - Vocals + - Drums + - Bass + - Other + lr: 5.0e-05 + target_instrument: null +inference: + batch_size: 1 + dim_t: 256 + num_overlap: 8 \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/model2.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/model2.yaml new file mode 100644 index 0000000..304777a --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/model2.yaml @@ -0,0 +1,34 @@ +audio: + chunk_size: 260096 + dim_f: 4096 + dim_t: 128 + hop_length: 2048 + n_fft: 8192 + num_channels: 2 + sample_rate: 44100 +model: + act: gelu + bottleneck_factor: 4 + growth: 64 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 256 + num_scales: 5 + num_subbands: 4 + scale: + - 2 + - 2 +training: + batch_size: 8 + grad_clip: 0 + instruments: + - Vocals + - Drums + - Bass + - Other + lr: 3.0e-05 + target_instrument: null +inference: + batch_size: 1 + dim_t: 256 + num_overlap: 8 \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/model3.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/model3.yaml new file mode 100644 index 0000000..491f6d3 --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/model3.yaml @@ -0,0 +1,34 @@ +audio: + chunk_size: 260096 + dim_f: 4096 + dim_t: 128 + hop_length: 2048 + n_fft: 12288 + num_channels: 2 + sample_rate: 44100 +model: + act: gelu + bottleneck_factor: 4 + growth: 64 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 128 + num_scales: 5 + num_subbands: 4 + scale: + - 2 + - 2 +training: + batch_size: 8 + grad_clip: 0 + instruments: + - Vocals + - Drums + - Bass + - Other + lr: 5.0e-05 + target_instrument: Vocals +inference: + batch_size: 1 + dim_t: 256 + num_overlap: 8 \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/modelA.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/modelA.yaml new file mode 100644 index 0000000..a687be7 --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/modelA.yaml @@ -0,0 +1,39 @@ +audio: + chunk_size: 261120 + dim_f: 4096 + dim_t: 256 + hop_length: 1024 + min_mean_abs: 0.01 + n_fft: 8192 + num_channels: 2 + sample_rate: 44100 +model: + act: gelu + bottleneck_factor: 4 + growth: 64 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 64 + num_scales: 5 + num_subbands: 4 + scale: + - 2 + - 2 +training: + batch_size: 6 + coarse_loss_clip: true + ema_momentum: 0.999 + grad_clip: null + instruments: + - Vocals + - Drums + - Bass + - Other + lr: 0.0001 + num_steps: 100000 + q: 0.4 + target_instrument: null +inference: + batch_size: 2 + dim_t: 256 + num_overlap: 8 diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/modelB.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/modelB.yaml new file mode 100644 index 0000000..a20f26e --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/modelB.yaml @@ -0,0 +1,41 @@ +audio: + chunk_size: 261120 + dim_f: 4096 + dim_t: 256 + hop_length: 1024 + min_mean_abs: 0.01 + n_fft: 8192 + num_channels: 2 + sample_rate: 44100 +model: + act: gelu + bottleneck_factor: 4 + growth: 64 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 64 + num_scales: 5 + num_subbands: 4 + scale: + - 2 + - 2 +training: + batch_size: 6 + coarse_loss_clip: false + datasets: + - ../data/moises/bleeding + ema_momentum: 0.999 + grad_clip: null + instruments: + - Vocals + - Drums + - Bass + - Other + lr: 0.0001 + num_steps: 150000 + q: 0.93 + target_instrument: null +inference: + batch_size: 2 + dim_t: 256 + num_overlap: 8 \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_061321.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_061321.yaml new file mode 100644 index 0000000..d5412e0 --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_061321.yaml @@ -0,0 +1,36 @@ +audio: + chunk_size: 260096 + dim_f: 4096 + dim_t: 256 + hop_length: 2048 + n_fft: 12288 + num_channels: 2 + sample_rate: 44100 + min_mean_abs: 0.001 +model: + act: gelu + bottleneck_factor: 4 + growth: 64 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 128 + num_scales: 5 + num_subbands: 4 + scale: + - 2 + - 2 + name: epoch_10.ckpt +training: + batch_size: 16 + grad_clip: 0 + instruments: + - Vocals + - Instrumental + lr: 5.0e-05 + target_instrument: null + num_epochs: 100 + num_steps: 1000 +inference: + batch_size: 1 + dim_t: 256 + num_overlap: 8 diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band.yaml new file mode 100644 index 0000000..af253ed --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band.yaml @@ -0,0 +1,36 @@ +audio: + chunk_size: 260096 + dim_f: 6144 + dim_t: 128 + hop_length: 2048 + n_fft: 12288 + num_channels: 2 + sample_rate: 44100 + min_mean_abs: 0.001 +model: + act: gelu + bottleneck_factor: 4 + growth: 64 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 128 + num_scales: 5 + num_subbands: 6 + scale: + - 2 + - 2 +training: + batch_size: 14 + grad_clip: 0 + instruments: + - Vocals + - Instrumental + lr: 3.0e-05 + target_instrument: null + num_epochs: 1000 + num_steps: 1000 + augmentation: 1 +inference: + batch_size: 1 + dim_t: 256 + num_overlap: 8 \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_2.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_2.yaml new file mode 100644 index 0000000..8d8dfb7 --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_2.yaml @@ -0,0 +1,36 @@ +audio: + chunk_size: 260096 + dim_f: 6144 + dim_t: 128 + hop_length: 2048 + n_fft: 12288 + num_channels: 2 + sample_rate: 44100 + min_mean_abs: 0.001 +model: + act: gelu + bottleneck_factor: 4 + growth: 128 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 128 + num_scales: 5 + num_subbands: 6 + scale: + - 2 + - 2 +training: + batch_size: 14 + grad_clip: 0 + instruments: + - Vocals + - Instrumental + lr: 2.0e-05 + target_instrument: null + num_epochs: 1000 + num_steps: 1000 + augmentation: 1 +inference: + batch_size: 1 + dim_t: 256 + num_overlap: 8 \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_3.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_3.yaml new file mode 100644 index 0000000..c139474 --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_3.yaml @@ -0,0 +1,39 @@ +audio: + chunk_size: 261120 + dim_f: 6144 + dim_t: 256 + hop_length: 1024 + n_fft: 12288 + num_channels: 2 + sample_rate: 44100 + min_mean_abs: 0.001 +model: + act: gelu + bottleneck_factor: 4 + growth: 128 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 128 + num_scales: 5 + num_subbands: 6 + scale: + - 2 + - 2 +training: + batch_size: 6 + grad_clip: 0 + instruments: + - Vocals + - Instrumental + lr: 1.0e-05 + target_instrument: null + num_epochs: 1000 + num_steps: 1000 + augmentation: 1 + q: 0.95 + coarse_loss_clip: true + ema_momentum: 0.999 +inference: + batch_size: 1 + dim_t: 256 + num_overlap: 8 \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_4.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_4.yaml new file mode 100644 index 0000000..783d622 --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_4.yaml @@ -0,0 +1,40 @@ +audio: + chunk_size: 261120 + dim_f: 6144 + dim_t: 256 + hop_length: 1024 + n_fft: 12288 + num_channels: 2 + sample_rate: 44100 + min_mean_abs: 0.001 +model: + act: gelu + bottleneck_factor: 4 + growth: 128 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 128 + num_scales: 5 + num_subbands: 6 + scale: + - 2 + - 2 +training: + batch_size: 6 + grad_clip: 0 + instruments: + - Vocals + - Instrumental + lr: 0.7e-05 + patience: 2 + target_instrument: null + num_epochs: 1000 + num_steps: 1000 + augmentation: 1 + q: 0.95 + coarse_loss_clip: true + ema_momentum: 0.999 +inference: + batch_size: 1 + dim_t: 256 + num_overlap: 8 \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_8k.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_8k.yaml new file mode 100644 index 0000000..207aa71 --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/model_2_stem_full_band_8k.yaml @@ -0,0 +1,43 @@ +audio: + chunk_size: 261120 + dim_f: 4096 + dim_t: 256 + hop_length: 1024 + n_fft: 8192 + num_channels: 2 + sample_rate: 44100 + min_mean_abs: 0.001 +model: + act: gelu + bottleneck_factor: 4 + growth: 128 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 128 + num_scales: 5 + num_subbands: 4 + scale: + - 2 + - 2 +training: + batch_size: 6 + grad_clip: 0 + instruments: + - Vocals + - Instrumental + lr: 1.0e-05 + patience: 2 + reduce_factor: 0.95 + target_instrument: null + num_epochs: 1000 + num_steps: 1000 + augmentation: 1 + augmentation_type: simple1 + augmentation_mix: true + q: 0.95 + coarse_loss_clip: true + ema_momentum: 0.999 +inference: + batch_size: 1 + dim_t: 256 + num_overlap: 8 \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/mdx_c_configs/sndfx.yaml b/models/MDX_Net_Models/model_data/mdx_c_configs/sndfx.yaml new file mode 100644 index 0000000..75fccad --- /dev/null +++ b/models/MDX_Net_Models/model_data/mdx_c_configs/sndfx.yaml @@ -0,0 +1,41 @@ +audio: + chunk_size: 261120 + dim_f: 1024 + dim_t: 256 + hop_length: 1024 + min_mean_abs: 0.01 + n_fft: 2048 + num_channels: 2 + sample_rate: 44100 + stereo_prob: 0.7 +model: + act: gelu + bottleneck_factor: 4 + growth: 64 + norm: InstanceNorm + num_blocks_per_scale: 2 + num_channels: 64 + num_scales: 5 + num_subbands: 4 + scale: + - 2 + - 2 +training: + batch_size: 8 + ema_momentum: 0.999 + grad_clip: null + instruments: + - Music + - Speech + - SFX + lr: 0.0001 + num_steps: 30000 + target_instrument: null +inference: + batch_size: 8 + dim_t: 256 + instruments: + - Music + - Dialog + - Effect + num_overlap: 8 diff --git a/models/MDX_Net_Models/model_data/model_data.json b/models/MDX_Net_Models/model_data/model_data.json new file mode 100644 index 0000000..dc33f4d --- /dev/null +++ b/models/MDX_Net_Models/model_data/model_data.json @@ -0,0 +1,351 @@ +{ + "0ddfc0eb5792638ad5dc27850236c246": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Vocals" + }, + "26d308f91f3423a67dc69a6d12a8793d": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 9, + "mdx_n_fft_scale_set": 8192, + "primary_stem": "Other" + }, + "2cdd429caac38f0194b133884160f2c6": { + "compensate": 1.045, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Instrumental" + }, + "2f5501189a2f6db6349916fabe8c90de": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Vocals", + "is_karaoke": true + }, + "398580b6d5d973af3120df54cee6759d": { + "compensate": 1.75, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Vocals" + }, + "488b3e6f8bd3717d9d7c428476be2d75": { + "compensate": 1.035, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Instrumental" + }, + "4910e7827f335048bdac11fa967772f9": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 7, + "mdx_n_fft_scale_set": 4096, + "primary_stem": "Drums" + }, + "53c4baf4d12c3e6c3831bb8f5b532b93": { + "compensate": 1.043, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Vocals" + }, + "5d343409ef0df48c7d78cce9f0106781": { + "compensate": 1.075, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Vocals" + }, + "5f6483271e1efb9bfb59e4a3e6d4d098": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 9, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Vocals" + }, + "65ab5919372a128e4167f5e01a8fda85": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 8192, + "primary_stem": "Other" + }, + "6703e39f36f18aa7855ee1047765621d": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 9, + "mdx_n_fft_scale_set": 16384, + "primary_stem": "Bass" + }, + "6b31de20e84392859a3d09d43f089515": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Vocals" + }, + "867595e9de46f6ab699008295df62798": { + "compensate": 1.03, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Vocals" + }, + "a3cd63058945e777505c01d2507daf37": { + "compensate": 1.03, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Vocals" + }, + "b33d9b3950b6cbf5fe90a32608924700": { + "compensate": 1.03, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Vocals" + }, + "c3b29bdce8c4fa17ec609e16220330ab": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 16384, + "primary_stem": "Bass" + }, + "ceed671467c1f64ebdfac8a2490d0d52": { + "compensate": 1.035, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Instrumental" + }, + "d2a1376f310e4f7fa37fb9b5774eb701": { + "compensate": 1.035, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Instrumental" + }, + "d7bff498db9324db933d913388cba6be": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Vocals" + }, + "d94058f8c7f1fae4164868ae8ae66b20": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Vocals" + }, + "dc41ede5961d50f277eb846db17f5319": { + "compensate": 1.035, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 9, + "mdx_n_fft_scale_set": 4096, + "primary_stem": "Drums" + }, + "e5572e58abf111f80d8241d2e44e7fa4": { + "compensate": 1.028, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Instrumental" + }, + "e7324c873b1f615c35c1967f912db92a": { + "compensate": 1.03, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Vocals" + }, + "1c56ec0224f1d559c42fd6fd2a67b154": { + "compensate": 1.025, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 5120, + "primary_stem": "Instrumental" + }, + "f2df6d6863d8f435436d8b561594ff49": { + "compensate": 1.035, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Instrumental" + }, + "b06327a00d5e5fbc7d96e1781bbdb596": { + "compensate": 1.035, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Instrumental" + }, + "94ff780b977d3ca07c7a343dab2e25dd": { + "compensate": 1.039, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Instrumental" + }, + "73492b58195c3b52d34590d5474452f6": { + "compensate": 1.043, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Vocals" + }, + "970b3f9492014d18fefeedfe4773cb42": { + "compensate": 1.009, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Vocals" + }, + "1d64a6d2c30f709b8c9b4ce1366d96ee": { + "compensate": 1.065, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 5120, + "primary_stem": "Instrumental", + "is_karaoke": true + }, + "203f2a3955221b64df85a41af87cf8f0": { + "compensate": 1.035, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Instrumental" + }, + "291c2049608edb52648b96e27eb80e95": { + "compensate": 1.035, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Instrumental" + }, + "ead8d05dab12ec571d67549b3aab03fc": { + "compensate": 1.035, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Instrumental" + }, + "cc63408db3d80b4d85b0287d1d7c9632": { + "compensate": 1.033, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Instrumental" + }, + "cd5b2989ad863f116c855db1dfe24e39": { + "compensate": 1.035, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 9, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Reverb" + }, + "55657dd70583b0fedfba5f67df11d711": { + "compensate": 1.022, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 6144, + "primary_stem": "Instrumental" + }, + "b6bccda408a436db8500083ef3491e8b": { + "compensate": 1.02, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Instrumental" + }, + "8a88db95c7fb5dbe6a095ff2ffb428b1": { + "compensate": 1.026, + "mdx_dim_f_set": 2048, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 5120, + "primary_stem": "Instrumental" + }, + "b78da4afc6512f98e4756f5977f5c6b9": { + "compensate": 1.021, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Instrumental" + }, + "77d07b2667ddf05b9e3175941b4454a0": { + "compensate": 1.021, + "mdx_dim_f_set": 3072, + "mdx_dim_t_set": 8, + "mdx_n_fft_scale_set": 7680, + "primary_stem": "Vocals" + }, + "2154254ee89b2945b97a7efed6e88820": { + "config_yaml": "model_2_stem_061321.yaml" + }, + "063aadd735d58150722926dcbf5852a9": { + "config_yaml": "model_2_stem_061321.yaml" + }, + "c09f714d978b41d718facfe3427e6001": { + "config_yaml": "model_2_stem_061321.yaml" + }, + "fe96801369f6a148df2720f5ced88c19": { + "config_yaml": "model3.yaml" + }, + "02e8b226f85fb566e5db894b9931c640": { + "config_yaml": "model2.yaml" + }, + "e3de6d861635ab9c1d766149edd680d6": { + "config_yaml": "model1.yaml" + }, + "3f2936c554ab73ce2e396d54636bd373": { + "config_yaml": "modelB.yaml" + }, + "890d0f6f82d7574bca741a9e8bcb8168": { + "config_yaml": "modelB.yaml" + }, + "63a3cb8c37c474681049be4ad1ba8815": { + "config_yaml": "modelB.yaml" + }, + "a7fc5d719743c7fd6b61bd2b4d48b9f0": { + "config_yaml": "modelA.yaml" + }, + "3567f3dee6e77bf366fcb1c7b8bc3745": { + "config_yaml": "modelA.yaml" + }, + "a28f4d717bd0d34cd2ff7a3b0a3d065e": { + "config_yaml": "modelA.yaml" + }, + "c9971a18da20911822593dc81caa8be9": { + "config_yaml": "sndfx.yaml" + }, + "57d94d5ed705460d21c75a5ac829a605": { + "config_yaml": "sndfx.yaml" + }, + "e7a25f8764f25a52c1b96c4946e66ba2": { + "config_yaml": "sndfx.yaml" + }, + "104081d24e37217086ce5fde09147ee1": { + "config_yaml": "model_2_stem_061321.yaml" + }, + "1e6165b601539f38d0a9330f3facffeb": { + "config_yaml": "model_2_stem_061321.yaml" + }, + "fe0108464ce0d8271be5ab810891bd7c": { + "config_yaml": "model_2_stem_full_band.yaml" + }, + "e9b82ec90ee56c507a3a982f1555714c": { + "config_yaml": "model_2_stem_full_band_2.yaml" + }, + "99b6ceaae542265a3b6d657bf9fde79f": { + "config_yaml": "model_2_stem_full_band_8k.yaml" + } +} \ No newline at end of file diff --git a/models/MDX_Net_Models/model_data/model_name_mapper.json b/models/MDX_Net_Models/model_data/model_name_mapper.json new file mode 100644 index 0000000..1476ad0 --- /dev/null +++ b/models/MDX_Net_Models/model_data/model_name_mapper.json @@ -0,0 +1,22 @@ +{ + "UVR_MDXNET_1_9703": "UVR-MDX-NET 1", + "UVR_MDXNET_2_9682": "UVR-MDX-NET 2", + "UVR_MDXNET_3_9662": "UVR-MDX-NET 3", + "UVR_MDXNET_KARA": "UVR-MDX-NET Karaoke", + "UVR_MDXNET_Main": "UVR-MDX-NET Main", + "UVR-MDX-NET-Inst_1": "UVR-MDX-NET Inst 1", + "UVR-MDX-NET-Inst_2": "UVR-MDX-NET Inst 2", + "UVR-MDX-NET-Inst_3": "UVR-MDX-NET Inst 3", + "UVR-MDX-NET-Inst_4": "UVR-MDX-NET Inst 4", + "UVR-MDX-NET-Inst_Main": "UVR-MDX-NET Inst Main", + "UVR-MDX-NET-Inst_Main_2": "UVR-MDX-NET Inst Main 2", + "UVR-MDX-NET-Inst_HQ_1": "UVR-MDX-NET Inst HQ 1", + "UVR-MDX-NET-Inst_HQ_2": "UVR-MDX-NET Inst HQ 2", + "UVR-MDX-NET-Inst_HQ_3": "UVR-MDX-NET Inst HQ 3", + "UVR_MDXNET_KARA_2": "UVR-MDX-NET Karaoke 2", + "Kim_Vocal_1": "Kim Vocal 1", + "Kim_Vocal_2": "Kim Vocal 2", + "Kim_Inst": "Kim Inst", + "MDX23C-8KFFT-InstVoc_HQ.ckpt": "MDX23C-InstVoc HQ", + "Reverb_HQ_By_FoxJoy": "Reverb HQ" +} \ No newline at end of file diff --git a/models/VR_Models/UVR-DeNoise-Lite.pth b/models/VR_Models/UVR-DeNoise-Lite.pth new file mode 100644 index 0000000000000000000000000000000000000000..195c1931812269d952ef69ccbadc75ad56f79e9c GIT binary patch literal 17922277 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�DSMT3!JH&_;a$BD=(rbQs*(s^ANmH-rA45@KLT#0 z&p@}uhckRLA7)IE!9~7%Kzyk^=ZpGF(l6VJpFTeYNtre<{PTlxlA`gg(j2nlf)Jdq zV0_Q>E_7f=0qk8BK%~9i^Ix`I)JQUz{zUx5Q#Q_jMnolkm3gh{)B)layMl>(FpkC8V{II!|o`G#7 zXyXmIsX7El-#DPr(jWL@^=0nIzTJ#(af2Ru{2Bw4+|aS;1FEgcr#pQPD1!|7nBGr9UkP~6 zvc*q}g?LQ^@~jIr1q5nzxG%K+fY00s$WfTeS@YyE9thZkCHgw_qKy-Z7&MabMs2G7 zFQ3}PpN3@{!(oALBvDb?fuWik!B%iN%eidjg57Zl*)4|)t({OuIT1$M+~Lm_5foAW zLDSvRQG)Fq%V!3`+FE@&EXt>45cUNump;r<$vQ)2N>k`|K_A-o=mi!jxpAh?_d{di z%;vFyFz@II^xks-eQr#m$HF#Hn<=m0u&6S%YFvpkt{uRaS|d9N^mcMp*sQ z6?m%ead2q^Tvg)3>(6gOQpSH&ijQ!eE@;B6h@UXUZ#@p*7sEtzwxdofKe+#8QbQez%??+>6Ftyz$(8ceb~gducPj@;fYjkcnL5LNkur0S;NPV-)PdZ!-` z-3XzI?0h84y$08Zis(h{ARM-<#_4^DQ1a~!0sl2ftpC6Q!vHLvmWamVL1gew8oe*K z0^D-a@w^t>do65%qRd6;8TS#dnRnCfifqz(QJDsuPJ`N?cX6_YKWUic!fhL?p(NTL zbZ#c&CB7=uQ>7S@ItaOkyT|l4-Ay%TWw6ppQPKf~^yww)Tl;^0oZxRmZ*T69qGx$C^iL-G^53TLq!~HvZ5PBnT zq3Yf+T6Log*I$r=DZkIslf_clq@#%Q1Fs-`(27s&cjFUjF8ki)!H(_i;FHq;pS&EX zlxG@=amd4pmQGypEf$Mv9YOs^96Gg@-IFWDFVyPFC;r$5N|sz z#5i69toeI|o>tleuPhT_*iQ%UXx6~4m_Vqw_ZgNXJjFhkgn?@p!ocf9u;(qN!$C1b z;Y|TFDtrWci!9vt?LC;PAHA)! z+AM+kfGAK8pT=@i66m|-DVzUZ!=6oiT1gv+(SPzN35XwoN?Q*wU0XnVcbB0|{u`7q zc7*Zv419k19p>7V;j_K^FfY>uo!8BWMSQ1VSo0tlCxme8S)XgEofQ6eT?FSXSWfD` zQ{1h-7WL(~>DM{I9Mif-N7`P%9QVZ_`y&BAM94y)VkQ2t>4Dpdwm2L=34dkI z=egdQ3CE6}g>~)0psKZj?HVfZ|Os$U5 z-YL1FCRz$-C5N2#Yec?oaZ>sAWm7A-ZMRdQ`h8gW|rQz(;-<<y+Y2t~s(?WIFP1JqQACc)*={2hV7kaP$;k(3E4U#5VIZ zY8{maqx{<(*?k}A_Pk8gIQSJi7$-%kJ`C@My<(m}OH9gcgQVYm7-QfIvodXAk^5=}-Rl3-fwhpTT|p7qHgb1$u5(5V?Ipa4NZv_GYd_zUfnVo7IGP zZiCs-F))V8R@<37&>a-6*P();Ahy+o!t*+Q-pUhlF#BdEMDs$hdzULr$lBmr@1Nwx z)p+=Hu8`(>SwQFMR*++SqPY#BAnB@xR+az;m*>KevHzu)y9o;EVD5Hz4frL$qxZM1t&3M{U3v`Q^r!~O`N`H>w*RW-9C)pQeEKXry?L&0z z^`hI$%rQ6a61rw?hfpU65I;W^@(l!dJ4_s~Gp`W;Zto<{=FcHvaW#yt%z(1ZIk+pi zon>KJmTO<4@oh>W z`lxupydIVTI~@aiqTdtg+DyD%t4z|SC~_1F)o`M4JNx~(ja~una8<|{XKZ_j3E3f7 zENu&Qi@$@|#3!OPkPPu*?LeFOv~C<<1V$QO@M_LYR9~Bk>2GJl%Z*RCC)f_K!8wUG zw7=)fkoXOylDA-@C7<}Oa!0=>PB>@wMiSS;+=_ZbIQxk+ylt*0lXw2cbk|-`?A1rL z&>}o{%Nl}rn4|k}DDboH&K~PqILqugWX?&ZzXdkq?WXTkJ8msmaQOrE+uDkzO^Nv6 zQ7-Oe8Ln?%}hU1}@KvpcbO3qNRT zZ9`AP2;_@r8FzNyU6PYVPw*{;XIleXz`y?bjD)!!5@i)UBC;yM;<%j*%ZMTmBP1EqCUmFb=#;KXc&r zR?;Qnj%Z|`55*%ZNQcWeST-#dW3L9Gv2rPu(7X7}@IZ65(0~;d4aQK@X@>x6Ly&Y;G zcg-8abHcEYusJci1Lhu{4+n4ZIJ5RWhny?#AyWPq$o!EdmYa+?)8@Uy4U;sCgbb3Tm@P4G|arw zfHQP;(Zt=KKDlg#yB^gb?{_KoJ(9zv6Jtc~Y#vdB)#Rj+Jg!-B9v-WGft-+WI4ke0 z`TF*IRMRxUyRqYRwq+;dEj)wRsr|%E=LRuSD8gltk8!?_28K-xp?loy7xj zirHqcpR^q(Rl7r}Q?+x6RY{#8^LyVWnr!}eMHt5B8aMoBbPVJyMt}QPm34PmO zRaGu#N;aXtnm2eYjmB%q#hewgStwlp36Gc6KbD`Syk(FK3imUP-}B4^P@!SIilD(o z(fCJg7mcf_fTPG*CXBU_UpXC1gx*poGgVyn{U1a-)#bcPzYGz&d0>7z3f0?f$kh5O z{8?j%yA~_c2%9{v_2WT^_ADnQ5w~HjK?_P~9YW0hF1c2d9#n={_+Bl6r9q zPS3O@5f>JMWkn?3ydVbwzh${K8&tTnFLy#BH zPL(p$Z0PT&H|#yotIZ8|vYFn->8yXO+KdO@DBsQcFoo+fSNxHV*BjnCms_H$HQ0XWq|roVDjGj-7}^$yyye%sOv&sU-y3f+` z1$tC%ZyiLHh-vA{#o-!m5PaEX#CZ3gp~=!7y-U5I`nMmII&&Ut;#$a?xAM$|@s66N zKY^~}9vBNHoLQ4Pz%EiA+)Xb+;==oQ<}$z5D%Jfkb&n9eCzcPv@=8QY!WzeJw~+Tw zZSZ_-G;|*n!#C?{VToKb#4YcqzgD(j<&`azta68z$qS&sY$496njpvb@?nJ0O*m5$ z0H-ePKm`R?uH`068az@73(ETO&EP`_+!6~%w>v=Rymt8cWdb5w!x?X{gZzE<6-&~J znJ42bDpbvbuvyE<)+d6v__Q=6&fH5+MHWB?%RI&1ZGbmNYe~ux513yhNqKV_%PbbC z{IzUq(OnGpDkrGuqDMHe%p5+7u*}(RYgpjaPJ0)cP${E9(B4*uit-OZX5%_oC&<_k zi!Vc>Cjs$*d+2h~35PrGpxj$eyyEbc_}(t$KCHV8w>)fcTBHtcz4ev`2R+336|MAe ze;(eCyGF7{qqs?n5mTP~gStW%==%(C!d1OFesxbUNKuVeIgO)^TR7ejVoVdW6=eGA zT2wt+jdyel@m7Q@9_rObyZX7PIlBe}|5Rbd9v9rSxPaFEIu2)8fA#uuZ#<R+vc;xA!HTrZ;K26foFr5bT=GTi$1iSE;pCOt9Q*g0d2n0fMP zRVsIZlzK1;6n#aCk2-^my*G@68E5-n?V@v}+u-Z57o4!}k03m+2Sq-bQR9C?ph{lT z|9b1eVQDw&CT@ce(^=eB{s?eil?6+;n32Sml|=K=C+M>7fxz7F^zJ=E;(|Vd1lbrVW405`ldc9;mmKg5Dw7 zoQAqc*k4df9Hv>p=CAd5y~c&jiatQ($Cu<-=xgBaV=j_22Wh6KFdmPkxG=^CJukFT zy`pKr^WO;?W6e+-uMaB^DdXu?eq8^lxVCYZk8i)C2ddL)ZLtC7 zo6IEr7S>?eEC8JPvv6+9H!A7x0ME=u;Ia2xSRI`ShR;Ue4@a1My*LXKypF=F4=jtu z?v0cDr+}5rQjE~)!uRq`EP0WEx0N2@(f6z$dZ7oEJS6dtw*VZF8G;Yd%=ha12g)-} zQcFu8Tw1ysrq*4fjz@|$CD-w33A>yJgTwk*Y1Nj~{&OWsurh+Mbwg;+XM-z!lHu2+ zG0d9p2yqWL0B3UqWJe@{#IFdn$%%zNa}FN$OxH}m;Y+_vk_Y3mT$maEmlInw0r$<~ z5JR`Z=eH^FLGua>w(`TU`#qxi54yi+qEj>v-#vZ<`MNz= ztt5qJ%FJXViV%>LMu*I^K+8829OjqNKBY03cwNp|E&D+-F%92(TtO$_E2M^Jfp)L@ z7^k=a-yYt|6X#O*ZoyMLED+jVBHEkI}7i{&P!;fk3j z;In!=2I&+7pU5NlI1zw7kpSAw60rCV^Q9ZUz?&|ixU*ma>@U3_a*wa)d{Og-vki50 zUv3aw>J`-rIklO-p79b4JC?(72LUbr#jC+I?=Q%_I6|zi&c`#8gGkq*2=rVcOI&ju zu`~1|zDW6q{(WY+T}?!5(z$AES@#|;J)4V11=C3&_XaMQ*X z3X5B4&Vq+7>TUWPI2vT3lx<#2N9Gr)P zYq;>A%nzFEGz~QlNx|fiDr|Z@O>03*C7vve#l4$y*p4y;Hy;m!#GBusDJKftRt>_7 zD@V}sI5O9kBTQ2rfPaF?=xE4;qUFTr|&|KZ`~VHn?pY z7cK3%AiFOG-_7(y!}c!_JmQGo)fvyaK9F3UrVE8}78v^j>3O=7bN^u!q}h1j!GTIl z<2b;cKaNlre})s)K19?z1z@kMJ*Ka`gM2E#!0xsL`p6Z6#Yic7YUZPg1V2%F7X`BG zCrCxp{2VX#vlbMNh6Cb^x5V2GCp%S$MS~gS#ffVDQOF`|viIVYn^6$^ZV~9e`v}X* zIzfE8E9-6UKy&K?LC)*t+7U!Tz{U1qnK|i=JJD0yAMSOPpxF%{u+p%F6&-tsSj$e- zJMxZ_+*Wckn2Q1T^5{gIq}BqhiVY+2MQ}qw1Hp}XQD$XhjKT$cx4;u6_5^}iW*qJ| zSD=@aggEQ=_JZxyC{(gG?_~K$KahW}24-4jDDg3Ze9{#`J~9f*8={HAY=3w<_bIqbd9t|_(sP4Z zRD5zGc|W`udQTq*Z}U;+iTZ?%8!ti8*9Xwy$p-9p!0yZ}OW%mksm@O>{3HM9sYvWni-L487Rkx6Y*FSJG*Meo7`yr1u!!5xQ%rT9_ zO09A1*qZ^3{b$iKV3cJ_lHe6b5e_(VHGf#2MxKB-=e)ND)@}Zc+se`b+Wc{zwFlVU zE5t;%=inZD7Oj4k!5)EL61>qLUAnr+wMWlT>ceF?Ip-Vc@cxaaFHb`(1bj8esC!id^xbPl!CDWhspw4gFXj<{)44eD^eNQdQ--u+9-S6B3yx1y#^eW% zIO13Z!%w+5m+dBsj=7=y(N`eheHXb4T%bIEn3P-TV7X8!=pKt?{gVu;Yx56JZ(M+y z=LNMM=T%@ps1j_{8G-7mZS>l}bDY079>d@J(Lo;@wwJvD>nFE?(9&wq_Z7ee_wS(n z$5O1Ea)$f=_9i~ru)lQzrmytFsgs$rPbLiu)|HhhFycXZ%y6XQ0S ze}=CdOIp#}1o^=^c#qEn#Ufc(`m--cZC-@B=lIa#XewsyQKf(8C&1dJ5jo`>j$w_r zATCU9K|bkFI4o2TdRI1p@<&Zv-*p&x#*MUQsWurq<%6c;b=;KDB4}TAmvL>BV0GPM zdfZVHSG~`K+}~lSQ!WQdWwG$te0P@8wfW~z~Br?_qh7&5mdjA`cT(+F^ zcH0EJ2&@39{U`DMtad!-ZUI$p^WkcUKS!v?22X3Hk_Aq)(fGV4{a#WG*@2_@@u@2} za_li#EIx*PSMBglTt9dF%YU%@^EkYl(~9;bvM3f9M)(<2sZDo~L{ATf#n=m0t4)a7 zN*S0seHnUqg`wA#IJ6KC#p-p%Fg-C4-8MOEN=?;(`@)4_<5Gs2Va=TT<9Dg4>?II< zR}SagD{(MC3sSx#i26wrFQb#>vgSA$`W?u2fo7P0brP5y-bP)f9DS)c>=WJWp{#ZqZg8`%w#Dmo1_v7e7I3iC6gRLkym)RzS|q zS~#s_OUCX$f^+*`qCw9GV(D-Mj*o@nL`rzhBixB%M=Npf?9cG{!76aD*b0|Yk8{tZ z=)%(*8?fQZcbHSM70!AW;``BPJdBTFcTXg(F7%`CS1Q8i)+j2JB7~m4d+-*&JN7LG z*sN+!Z>TSa%*8uUxw#KGIhP=%DVFW5?{g|!yXoZXEi|+z7_LbDfklnZ*kJ1k_w1zb z>xLA@>up3nH)j&P?*n5J`k>+PdMddhg_vE^BAp4NI4?VpEPdpF?eg~cIM0e036#U5 zcP+?&_XE3kdy$`iuHq5iB;aP5!4{+cQFPw%RDXXQM+z-e+EHnV_7L~Hr9sh9X{XW< zrJ?zamJ!)|XGeBcgnQoC-ZLW^*)u95BBkH?J^H_)dq1D|d7szo`TUO4glBPcCVO*7 zHb>ARelcqF;Q`F#FTia}^J$<)J}Ox7&}@GWDBS1cEp1~N8%{l(DM-id*F!;XVF4P% zG{KvhY<}(K=c$`4!Lc@bkh>{~vDNp{a#H|4k#0xT(OCLjY(Ad);zIb{n6n`HBz-(K z0~RjoAS+uk;P)@a<5bGxjCD9drZqd$*Vtj=+!KIXo8Zo_Mlds_*k1mCj>Ws+&oLJ= zUzvh}q%O28=cm>i#K6m&FEE?!;U$F(a3}kIDGt7*GdC}TInbM`bzcWiXc*z%Qa%S_ z>#otiRSO`ld=YGSEdbd%=1?wWKKSbSn4q#4z6%YLyH(3M(HCQp%w-OvEfVzFiALD? z-XAnd3qfMAmuAj;g%1`ozENfb$WGpgzJ0lHZ>K%pdFYM{7`HI@=Vy2|yB0$^0;VvvKOc zbZTPMgyva|aHMo5T)z7grSnbTc3%hlD9$GSipNlQybH!07qMK}}n&u&wDm z47xGaq>KbM6#1j0Q4ubY_`Tzi>v1r4al*o+Njw4FA#{%aji=?)VYzlDaqWJ^=20EI zyF3;+8B z`|ubfrW~P1-F;~UW9lYkmvMGmc7w%!7g+ZnbFg1i1kW38%p=wh#{HH=>1zefrEJfLGnR0eh^5F}j}pY}KD&>b^-- zv{?v7o6AzAuR3G<5qbQbXbEEXE%2!}o0(U-D6Y+%ealE*h1D&cD^vEyfn3 z)5hSOq$@qCw+VE_;$g|(ttesa!&UHB1~*S@jLBESe2HH;J4q0oKlbDCA~{f%_Jyqr zOCfYSdv2Pp!={I!_&WL=%N-fuuDg`J2#X{>FU3J>-G8{tnt98uAH$8tuk=_9a}VrM zhBM9IVepPT+qeHg5AF|^#b(|C>4)gPw;SJ{na=_9I2bwLhLU&_hP%2!-#HylG6v&L zS3x{DKbKUctAX09E^vO5f|vX=VX2%H`e*lmuF*0)8}S#amE|yCej3~^R0d<$Opw@V z2*+*&!irgXG&Sh~nR26?vp_lvPs+1ALHAd%zh48_T_@wS4e_8>IUg0a_*A3EL@>gfzl(fU^U|< z$hg^&o3jIO;|ncnH`NjALsYQt!z5hTI|Ki$e2=TlW65Y)0d7ALMLa}4(w-|#q}tz# zUJPG^XE&Ln=!O#Th)6??H>I4`Ys>J6`WWZp(TAKE##cA^5<}7q0;qg&dr_P?=461}q>JQvv?CnpI1cKEOz^-~4&l!!<4XT? z!rTq=++VA`@rrLdwwqqV=fzssHIWUTeBo$PVhq>g2kTygt7VX!0CW@Az-U z6=eo!9kl=pnfI#yA3K+NXn@~5G4i|8fP3+*8`&%(&-x)L+*ucZ^=J*iNVoaE6 zJ`-4ft(T_2IOk~%7ccDcgmlKO4yk*AT6v#g(1#B@kGum9z6CfgX^nq23-F4S_k(A7 z3Y-z0%!`$6LDwZWag}%%2z|Q)Sw<6*(24wv3OrWSt5uw1}r$^147!gmtoZuc0D>O=Qf&pDz9Kj(k;Ffw7h?==gjt z3Jn*5%DEUS4stm6lq?=yw}hNgOas@lpG02A6E8S;qU6IYqA-6u)TsHU7RN_nnBXOH z(#V-cylAG=S99_CRS(Xjq8c=s5r|6qWq40$7yMSe3x9G2h+m`yc@;QL{3@P;!pKzQ zFrLxa>5tSd>j!El97L_Ld}#W64fn{fY-GYiy1TgmcT4&}#AUl=vzBvkVK(I)IQ0(S zng7PQA8LtN;0+op>kNTXr%^rR4Srtx5gRnM=#kehFtn=<^}YFdsSCnj@n2Es+I<}! zzPwG6J|=*Ma5~O4s)a{v8b5w8n7LDUP^07wBQqRO&hsTUy-|W0=~-m;wHZWv<0mxa zKMAQib{Lv<9b*MOsl1v1?}XwRsMh?A;u_4m_{yH73bdiwt~6B2vR7of5D@uzn~rnL zQGJBvgB<^I_QYRA-w`W}R!QRI=v?QTDF{Nj%Rg#!N}4LxvFBRpVf=b=2MpeJrq?DX zkpsWjzK`z+WN~Nlw8PU;d7cC)N6tX2tKvMKf;rfEUID|jX|QV>>yys?i}6)DnBM=3 zei=OkdJ0Bxccw9JvaEo%L!RX5baSqhHlTkR8X=BZLK6<}Kp~Z2$S@8> z8~4wc#GlKly&?iNEDN>b<11pDxfjR(&E|#6FM_?6`5Ymi?^rc%foDHP;`0+3u=%Vg z*=#dHW*Rh5@q|`%G18}}v}dEP)KjP%HUc+w3wnKEJxs2PLa+HQIPqQ@(s)L&_CqWl zwr1Jgk}qg1WChucY(C36L0jMDg0v;ev~=pCajN3p`0PI=(5MzcY^2 zfyeQ6Vg;ELwFJd`)^nnMNWk81=Ec;sA#pQvaYMWSPkrHBz_lwu*j52*_Lh*Po1(b- zJ=IW?mxJ#+9UxS9kn(NmXTD)$@KV?Yes8ysX`NH?y6tZwd$b+=44UztoGpG>H-qXG zyTF-`9&k}$8`|7v{P)HRXntY^i}}LgN!bs&V@3(6-?c#(@erwE)J0AH{I#?FA8aD911^#8FAlsXR+jd%@&lMN=T{#0|51a+QBn#xm zyn+Q)ogiA!MUQCOV3(3DHH&x&D?eJ2{gIxiw%{aG6U7rPTObzG40kVU!%4|6=yf0&p8a&h2{U`NzhX_M zJAWhh+JAs!{~#XLJ_Dn#YRI~74xTb#i^FkkF1M9&cK@qExCD;g?jWk`-+{TWD-<|H zf{)t}TwA;aANK6va&B$IVA%oiQx}EfPcyLS(nV;BT8r^7auknv1>?$~bnq5(<{CNF z!@WJTaAXG;n>UrC>ce;R@ZMe2*HR3HnEO3&SQzaNkKz8z&%{_|A@&!K;`-?i@T=Em z!YQdxEZEo%lSYHMYv~>mko=hhXfxBN45dtNJt@xpoc}6cc;$)UzJsI-}CNx5^&1n)Ua2@E1F;z~= z?GCuurG?8xqfqSfW4PP)7cXzp#l43j@h{5;XdK)I+h2I%<9}&f?dyvnMdvoYU}v|^ zQ;%?B^=?d1dyW^Uhd@-c05#oegmiKjSw8m)#s^+P~ zCqdA>2FclQv`z}*B<>RADLB3%QPJ883l0r~mRKxD?#ODg>uEK7svD-l3yZKdUziqu z^T0Z=z{PDgWa)hs5G;LxmYshg&LW%R{&WTQPh@7FZ+0GCADH{n&mE8ORvBa9i;LxjMFqrT7wZ)P7Q zvSOXg#c`K8E0bXB?mBod*%^4&S#Y$EVYKQO?N_aBfw?*_K2!$gVgmtyrdf%3yJmS0Gxn&zIYbM_0BPBvoxf-ZP!P)dvj3Ta?& z1ZU&QD#BS2k57eu5LxD)sfgPF8jo(_-OpRWB+!W7Ij_ zOmgEZ=rj95Z2iObfRdH;!+a}*<^U9UH46_<>x9T<4xkwK0h4{~P%K#*eOo+1EbKM) zJ9!PKJs-vy5qq8&tU~c=T)H{U6MavYQ_0D@m_AV;q%yP~{vqfiNi~lIvxo?6S+j7YKE*J0# z&%uSFNAdcyXbj*A@oe2E^R@+7lKhKD!F$PD$f({2HI`8r^}Ykn-}i%s7h_?Y>;-yR zuL?Gq$b)ApZ^T2J-PLf^MPpx*@t) zd=nJaY=Ah{O_j>|3&s+!F+Ybf!xKM2S9Bz~_f4NJm97Qbh8)Pr-c5bY<4}M5cGRNl z;i#-B7M=SA@sF)p?`{a+?%W2?8-J3YpMr3wD08NVtf12Zj7jE04t!c!jcR2R;4zwk z;veS_t2tfdrjrp}T=fx-yp@Ob-s^$mS&2)Rdcy((FM2aQ7wYbh;FXYBbVEQ6_=fvH z?B#q^dUzK<@bmD{qiXW#brGhV5T_-)3|Pc`0R}09~Y=WcbP(=KgvOFIu) zzn##f>nF^U7Q*>@cTsU!IKDRNZ!bpU`8rs$aDZ{z z%s4{-K44*t1=J;<0;S=7F!Jd$G5lbLC2^LJK9PvhSvjO}%nSE82jBtfMDHs;<=hYU z;S|Tc!@7SP!QrtPyp}qFgEuRvV?#6daQ=JEt>`{lSw;3~Qubc5P7U+|Tkfln-| zQ;d9GfJ(j_idbEueJVxZbv}>gw06Vpc}{RsXdgtZG)Lh$PfChnaqgLUwDe^o%eb@7 z!;}tmxpEy3Ez{?2y&Q*AgVVVcfx&3-pC$dlIvdya|KS7{nt-dGBl=a{gtWE`ploh{ zZec!DBy%>5Xa>+%VWD_UK9A!rcLdYhMQF192+GA&z=v4_r2j%G-EJ0vN|H-(sbVuO z6L&z{Kh3bXYAfCd+6IS3B?_*l=z7eXY>EE|4=wtz^`eVn+3TO6``m<#>UNOem{|19 zZGo2AuBmMy+IW1aA`IwoPd7O!{EkPFi&5b)8m1gh+gbgGO~v8T4!vAJO>$QrKzyC z+Y`(VrhwXqcKrC&hjcCUWjyE>@=LK4lNBWJ((D8rxgLa(Y**60#T7*&Ug6^MT6p|? z1g_{-;f|Urn0hS+=%R(Ve$jV~eejExi#vgS&`Uh;(vMrhzSDEpxOjVc2i$ee#JrjY zoEIU$v-(#+_FPTIX%j3e`wdsRt=X=VpEq{X2`iRq!IZ?y zEXOFoyXmDy9xX6ou9$03+sLwIfs=WMAF}Si#`SnduL9n6-UkE5qN-@grYrIueVsAxzj6;#_ZM>5HwAo&1$)lZuSKOce@egm({S= zEe#~Mb>rX)U$Fc35hP=@A#74D6oM(G=9*x(WDaaPp$*!J_An#&6TZJ{4kcx6WHkE> zxi!m_d+LxaOjRM!5?P9(I}#xwGK4!YmIFsj+hFJE6r3LG1$wd`xL?$tyn8;M%~mb2 zJg=Ww0KxAsNW+y%ux$HEK<^aQ|58OV#9CP=eL9?~bw}Sw#=N}|iOS|} z@NlOR&JC7=<_%X-qQ?`pIRkL+MKQb(%|X#+;b3!lA%@6Q;3I`1$QC+@|KFt?>T<>i zHE)ivHQSjQ{3cVzR&f9BF{M*4mcr1(VE7_nhxV#+xFbUdK4+-GEY)7L|L+K#4^5;W zk9@)+nPi~WQt*40A?wN7aq~u=)5VMU3sV=;3BMA_n;v=$go9Ohnh?BsSya6#d$4cV?!j_%TN zn6K3aKBC_+<<(`Vei4n!vc{lc;xH7o2$Uo+Aw| zE{DNvM_hgMKVsLF2L)n@(6X!_7uNqm$KP$_I>VC048BCuYw55zQvv^3y@J_i1F-aZ z16VP3+P`}ZpgEz6&cVj?+h$AnFP*^Vm|E;y?SY%0E`vh`{4|#_cy14Ffz|f|Vdfkg zc=c!szOm^d&g>)hW0Ex-ld!_vWwwwPe-(}YzTw{P%A`xm7vaFtU9k0Y85Ll6lEyBF zxFsuHP%EYk^t`>%`q2y&NlYgP=by*-^H;zU$wb-|wTHOXPT}nMlLRYkexd2$7`=ZY z1j$}g5ceHPU3H?B_{@DoWE2y?YHc!HaLa~Qoux!{<6OM2nM1nWcVn=QJCKSm1-VRCN!N){yrIe7iU6rPZ!#??8mu^JWTA~0-=xjNM7+D+UBtjYpeZfb9x(2zY~vT zf|LwBeuuhG{vas%Vk?`O8;^~m^pr3ft$rVyk1pkGc8|oT`GsiT;)T_Hu!#=GBa8va~>sxi;|E(LlHQ8O* zh!aH2@dBwtGq`Q>6P`OC;#_jg#Y|amI8-zX>z;Z*LP#3j?^#K1N$7IPz$@+}`&D>) zXaX;-Y^1N%1o6;qH(1kd3W`|W`*uW$1!?mv=Q0yfH(4#2Y#la$uGWI6N z=7$=cm3|;|0EQ>hB_NqWgD$7DY zZ-(1@JUHEV-qF&sXk2kD83fOj)A}vn2~~??`J54`xza}O?%4;BGDamCJ9U(7h1tie zQ2B8vvCA*Q?$Hp~mtTpAF)181kL@5j$RnFGV<2qSTI4Ty1-o+CY!i0{pT(Jg>f>Jc z=p~>uoMTK)4MGtPm&5v^evbGI3A&)N8hZPY z+dn1!`bH*s*+5iqKa?0afk(vvyH7QRH$RR+)wnX5{aA|F#987q(~Yq9*CO~Rs0P@D^gG&c?~=B3w*-3aec{ zapEt3$MY7e(BNJTQB#_W9&%-rwm`wpUJ z*Z>|=H~Z!oIC4?&FhcR%fjy=|2fOU%XNZ5o(k=G`vm@p%EIXo_I{aB2G^JR zLROF=MlDUCGS7d}j;FQgZ}A>C$zNpq`UaTU&*nJ&aH_QG6+T(;kdv9mdi=@9Ky*VZ z78_XOSvls|eZ%(kG07-Um(Nie6X3~yddpe)sSIYsPNGrO24HEXiecpqAb)I}@=344 z$%jJFbiOUItr&n)tkc_hbrY&4g`!lmC@1rb8#=EF0EJ73FtEOr94TCl+#N?#WPDbV z_6^(cV{jVho8}v8u+amSXO*J>@u5MQYrs7@8NBC(Q~ygzcz>xNeAY=pzSKu()vH4E zJYu2dyk_dj5lu)icfs}hGsr2acH9>;0uk|gSgGtl)t%;WGIwZzP>~uOJTVg=rN05s z^ZIDx7EZXTX=o{ahTeYr9d17FLK40JM0``RLHaEW{s|>bJ1L476q1FEX?p&B8!QoR zVXiJ8__@`Tw)b&i_3Z-eS;nXI>wP<}S5HRqQ|TbS;wyPnwg+CCtONtyR_^WN7I5;; zF}&A(l{h4>!g-H+(OhH-YVSzIl^6Q(b;~fcKb8mo6M?9wq6QNlXW%-!*Y!Wx0+tgm zV5}evXR%*bx>kW^^cc6ltsT=EgK;X$y{+dng=q!fk#qhtJ?CDB*I5s!tLH3U>wVAe zD7v8_b1Q^ae1UBu5hN>p8+u4oU{E#Hje14vICj{VC{|zaxO%YEP>fw6U0YR+?@L0@_ z@s)p(pX=EF7rzVF<~HlD{~Q8yy*qgJ^I3Xng*7=hsSYpA{{)}*?m(W_S)7&;Lb8fa zlCCUaD82NGY7kW_-K+sW`2V5gF&Dh6C5HaVK5#E>DFz*W&C#6m2NR@MkrTUh;M_hF z&^^Y5k>zvHkln|}$iz|2@0Y;eBo^8?G+>lrCLI2O<@oP>GWs$ z%TM%Feh!>}#`so(8E`M~2~Ntt2!{Itsqpw?%vs4g1p95spG$AB_E{lys3}FVtr#36#BkOfDg3?L6_Ql5m`mt5id|2H#F8YEoKlR7 z#-G7{|BvXsG>WV7b4eLyan71ZZh5uU3u1+9(=Qp(=L1xNCGSxmx&&8XhRbO_IBad#@hu5#!_45(lid>*R#I4OFy$ z?Ew!@TR`08&+w8aqgEL^qyF0ri5Gt}SMUlN8QTp{dwLmDWDe|FJVD-v7=!+ay(In; z#mv?LIISZNYl99z$AV>4mSs?em!)Hu-8p(%P6eL6bHK=|Jnrwzx0omS8w7@v*h`Z}525E^Dv3>qCsy6pVE-FH3!@`oRQ~`DEB4Tq{tm@+*0XVw zLm}Cx7Y!%(8gn~rMacdO@em+znfx_B40~5y!ky(osB$!ce7Jm^I(+oSgnU0dRFh7* zl`8b#4nJfP4KR^v0-gB9IN_R(>T!kW>+22v%EIs<^B8+iheOwc+1Q}k2#2H2q0Q;j zFzu`|h(B>BGEO7-z267E##CaVawJ`FZ!^rS*9N1>8SH+1AxLN52MzH8whP@3MwdG| z-t!K?S3Q=K@>hkWopIc={3Y=1$$UI$)xf;Qa;VR;WX<<{pfaY4?z_OxIy{c`C&~YXL06D2q$Lr$oqcwnFMkU5ESuEWs)x}+v#{Cs5hjV&z|XuNL}tAS zm3`@omku5Sjs1Su|11+!Rh^*c$V#-Yam7zB{AkMTNg&plfu5f?kW_8V&dnis zuptR`wHskxR1a=C6hgut1Y`HBIvl6AxW{5O=4+q8g4u6i`e9eahy@R!Png{!xWv;J zReDhQld<56A7Na^YsS82{F*CC5I#MJjKwq(qx?3=KRKDR`>+$`<|{z9TnAva1a9(3 zz_#oc(4?$HPTh@wxbVq%-=iGYtZ~Aq4Q4R9UXaI;%Le~*5%AQ4aV%aZ!G=UL`a83s{EO> zF`x$b*+HxG-E)K%kC#l^PTUcCioW6TGM7HaF2ZzXde6#K!U1}9e49o|K z;M{n;{n{S`g7@J5i0xGACMAVYko~?Y z%kkdP)rvmnJ7Jm>>)7u}z$x;dFyitkdGhiV4Cplw%MuMJESsQxkCh?r#VhhXB8LvL z7QL~rC*#CUqc`mApg+fh?%SP&dkP&u?ayyI#LjPOOP(V2Tnv?So1x^vbnc1HUfkMg zPp)suXYc&?Sedblen~k6rq||?rlUGs4@t&7uebxeg&batA6#v2J>sMFG~p)1!bYkGZ~N;6atZqGjxYz zH-`UngogXC;bvb0rkJ+iESBxqteV8tGkJllbi8rPxw%Stwfn$lRyPf(<#KG!IDpQ) z45%MX0d2bhi7db^4@a5uV_WQm1WtI)N} zl@t%HgN*2haL&C6f{D- z&n(ujG_HopG8f^vb{@FMd_$!>l6dZx8EU*U1Ffm7Co{i>7QRiU`nFz*MyWrkr%)vN zUIC73Ipekp4B)BAK)9B}W`UkSEMFu7^4<-2Rks~J9}K{}r>yg~XOPZl>4$aI1*pDf z05y$%VOa57^tu~MOZJQ)H)s={z1jmFJU{T&{0f0Ou5gkw7Yt?Dtn-t@?!z0gse-W} zR8m35XaGOO41(CG1kSS_#0d6IjNJ1KA51KSy;^)cKM8;2sA?jg(m~FQ6is-mUrOhh zu)XfwBv>lhnUYp+2cL#KLEuXUC$N_T!`FN0Aw|ZpvoS^k-b~&)na|iu{P9CwB5t~9 zfM;xdK{hoTR+{kh?96&G)tWgO@BctM>O&S!JBw*vtML8NWq`TYvG-9JXWkJbyjL|& zhn{7@>CGRQi|jeLEWHEV)55$whcN83oq`8$bVJ>`H5euH2)=%3=f0f16!(UJ+YK^s^X|d+(%4! zW&z7yy(SZelS!0k2HLXD-Nf-vq}#WE%%47l_M)pWO(hTZm{d`HD@DdzW(+494wD_P zqF=ipl@DHvekBvsRm}=Lx3zIB!@^;zv7plRw>v;t{0NpE(SQl{zeKgZo}LYTfE|nr zt3PQo4bjg*)%7eN;G_fNzXjpwFMX<{b_sS5B}41}V{ol!4VUB5&Grac9QQ^CyqmNb z2Y$OkqJ%#8j%@%~91X?91Y;PmV@~l|mAKEb42z^ca)!>-pr-L`Dyy504{GEf!FW;=oe|N*l?QQi5 zL@&og&_2#Mqc=<8-w|QZ{CO0gO`N1ILn5@*Gmf73D4-eqrBtT8gv9=wq|~yi3VT?$ z=td9ollCtq@jE_IiL7ayzyE?cVGT*7*u<5L9^_LhxKx97Y{!ypr3?35?vR@FZX!^# z6Mj_{Kug7MP;d^zbu3eSCO((`msLv^R~h4X?@4KL9o>SJtd1tIsA8ty6pu^`OTsR-Z&&c7K93M0>aiwD6AJHx7Hf$f}(hHtX zxce%mB8-WFjRJEsiGBj#x*4F6aSU1>j$&2$CQkD43z+gbpLR?�?K7DQ$QY1?RQK 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

#5`k75PUATsMC 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%0AW*fCO#KuFzGtHF*y9TjbvYi^j6`C9 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%0AQ=scL22nL+4(5MLf=P$|KuWm| zF8ykYk3v6TsL5~KTr~_gzD-tb$Q6Su(m{SD{~`u5?=kaQ3h)K8Z|7Sv*rHWOwU=L| z`tfUkGrtnO7`vPvQ-O1HGC_m$9L^kK9GfPl#=1Cy-Oa3*RFV(7=N97JLLPo)JB6&= z0@QkJ0!hQdn7i;KEj*zMo<&vgIC2d2@=M9>)DK*3c^9lsH*^gdm#Pu!hdR(TJB#?eyhrTZZ_$BAQ&j(Is{=<@4_3chLjG1Gea*K7E$&U= z3&Z_zmoYC4j{SkSou2S>umZi}@O=0_QZ04?Recj_YVL3DC4CXzF~$Zz(wGWX#?#^Vg<+N1 z4TU(k;t1~PbX4vuoeRZIS6L3ypPK#n$g*y2D5zLZZH~-_$&JjB<2DSDHkOboyA94Z zet`q3UD%!?4#)qz#m#vtAa8$<9QhCjgI8_vwD&#Ye~2-kmN%pB`SSgVUx;qnS`XUW-uQL!IZWSc+i!Z{gM`QR%Ru=`@Yf&wu6?9B)fn!Gn z_`KGli$f?1)il$yY(8+>*_RA&nN6=>Z^EvEI+T1;j_s{{WMXPHl!Pi{b+|8e6ttNt+LNs=C1bfSqvt zU_HmR@GB7%DdXt$y1*n^83?GgpnnHvsod|?$8OglOg&Qq{5pPcYxf(R%xA@NXZ*Z@ zo`cX55rvJ5Tj5*(KKS+5AD`zT+!Q*8)q1}8RI?I-OUkkJfDyfZ!Vmjn#_`P2WEd2! zhDyzQxNP=IuwuE#w$WyY&{>c1H-a#v`wi&-DF>~!AK+ zpL;%^?KXE8(*eFruF}L(j#OqlEK|`U8@($qu9b(~rfuk)WW&z78hC$#2aWa!d$04W z)`i}Ng5(w)Z=Va(rk{hN72TNY^8lXMC8J$*I&N~zfh%D=bpH2;T)4j*E-u!c*viD^WONg0p_{eGs&b<*M>0x|jGvWNqk z3>;xxn(Pe_9CDB@W;@@jRT`vgx-BdylfZ@NQ*rv4m)N#A58t*lV(RDH^pS8Dq}DZa z8;2rL>m_@S6U_LOj4Iu^1B}C53j7hLG2~ze`su&KO{=3w!(b>}%o2vUD@ z*!I?n9PRaI>|5qa56Q-`t}Jq~WXvQLz3{3ja5cc-JkDix~X zb)Rut6czY-Wot!1bTxyqRg=Pkf_3x)d^Gm<7T$~U*O+JH_8`(WO(;8IV zWypW?9^-tODPV3^dcZ3EI)$F^k;~b7Zwa z;11j2ewwZ_@aQ9RiN=6he?M+s%BL!~eVH8b8t z5^UM=4PWQ2=NeCKp*n}=<2%QG2-)qc%Su=Mtqon0-bs^Q!j)W^ZtVJOic`|w&Vs0PJ$^0EZeZ!l)f5005{(K zfhDG9blVJmD88e`t>knD4A^oE!;HPsCu0WesB|y~h`ur!z-Y9$ob27Z$MRY+5J#&bqk3 zqtDkN5qDyk)m01=PlwC3%dq9xb~KC92cz0@7*SaTmbp*SbO{fCE-of$H3<*8KY-}o zArQVCMftUy!R_U0sPE(Fta{G+;c?d7Y5%&&|6SD+;Y+c5!CsI#kqDv|CZyfcnylLq z1Mz(w%%kDN99=nhrTPR(ULnERDjf;k>h@T6!w>ug>}ZP&#n}2l+|r-|C#1u`B!2>L zviH!V`j7DS+7wlfo6k_*?gf^be1WNVyve+8>+$&-O&pdQgqG-hoEN!($Q-PtCDNJT z(qD+f|BgWWzLQj`_5)-#OM~`}lX(32WYwtu>@nD2J?XpI0M!~5BxjEvu9t9yH;3b( zL(YN(i`8SjayE?GF&|p99eMieDJ)Oxgu%4H*ys@s(TKs=soO)}NnQlHW2%tt>xc}Am8{6sy~H&klN zDtfzSJ6hgLhnSeZxM9i#*lKQ%151l(Rfrb2uztw9(qTCD;4=5{s{;_#aRC(Ozr{W$ z_CDYqR8jWMg=L%D8N-<+G|M}OUDc8M6VAdoIfNx_^Cr-&-MOnp|FPxr{YWcQjq zkSJ5jW@;4fvF9MPDGbXsKH+R1PmDD(A%C76g-TvHR?QfM&r+dqZ~8&(ICTOS&fSmk zKK0OR_L?U7MpN%R))(!mAqNzSV9ESivUWC`NBB?TZB%5Oy3c9&$Rm}OK8{5A@fGaV zIp{wtnzP3}pKLao%v*HP1Npn^x!R4&@Jrc&-oKDRedV9Qhpz!}S|JkdnP~!E{z>^B zw9+|q0b)cZV0ru|>MR=qmG>W!Z32t%0kYA8+aCzKP?9k%)`|9Hu)OH28KhM^1g?IX z1y|Yz;B;6b1b=@AgO!CK#+)%DL4mL^z73-ei^AigiVS*b3qxIU@UEoEzz`j!AO{u=T?hvP^=_AIE<}{9$Fdapxf} z=P;(}iW#s|=NlZ_NJ0JCERIY~5GN^~F{b|6f|N-Z@ei@VfAN!e#vI1vUwa?Ecf7#8 z?>gbrweNUv>uubqz`Q(fLcqCI1iUxez+)Ts{)m~xJNfK5^quGd-Kqz$sxO^!*mclI zH4(G!*pQYfT~x|0mx`>8LGI#@s9t0WJ<&aMX}KVXuP!6QvjlhrVS02#F$p3}GtkFp zn8Q_^i5ZXPaSNmZ;n>gs4qk7EMeQ6Cp1BP5Wg9U$HFKoKjy71+JxEiRHNb)Q?A_FqNkg@d!p}u{Y)4dz#*eKqXvHjS zvns>D`L=N5b}#(vV@`ot5wLN}S{gLZ8U?cV;Bc`eS#Nn4#`L0bxncsb6RqJs`y>Qw zX6LK;cz2Upvv`vxfY9lOzES_AglGnd$= zuO!LB946Up290_T{MW;}?}^jkcKlv;CVzpUyfa{}X#t(FL3ked*?pY#0P{}b6h05` zzDbOAdZQjcZ|}#4rAt6rY7}NjKF9B0E4ho@##y%C4?o7Ykg+$N@F%X1`M~zWUWq2G zI8l#}kDP^jSs5(j7>M?Bov`RXcbH~;lq*;92wfl7p{3ksurHSf&f*eSB^U(Do@8Cf+QII5;RvjYv+sBcxtaM8ULSM>sWis5^)H8yB5s`3i~2!eq!7*<`jY|X z!HKQjg7O0X(9(@~DE>JruyDUsdj}r4V1c|TKG^J=%I>M-Dq+qPWPV*oyUr}A^&G&D zowj&Xd^hXs?IL=aPVngd2+XN`OD@@u(4s%@!AU#Q4WXC;Tttpxq(3izwo=;Zk%x}o2Uu$sSYlmhI>qPxVyAn(2XX;{K`jUo_PRt z^`w%Z_^GfuXD>t!7QmH9ft%z^NMR za*spqtWXHdKM1a+nZ!`}73>RVzP#O0IIydd?A9J9a?1e+x_huKhjF3pG8yNrg8cNG zj+1BnfR6L>u*5zRW7ge<>Nz2FRoe$FP87wb6HnnpXcxFg3aGxedjW&*nGb2)9@m?& z&RV}Btd&TCs3Z9}Ew~S2#+^u;2lLTSKLMVbexXV36R7?>fWi+KptfEhR?qgM`=!!o z=1Lc!k@HaUKOXl%NGY8-?!+?k;WX)!BS@Tl2~%~msOGpm=$?Os9%sh6`&PJcV@?%g zs?S!C51$UUaYAugoP*pUQ% zI|7nB(#fT1C9r*t11@UfgRRg6SM4UjTd$RPCE_F9t9=ip_ptM8coBZO^@&!yCPDbr z*WmlH0PD|OhjND~Du0zZC3A=A_L63dN>l)`Q#;`EU4Qf}$fPG#Qy{DLDOr)cjTI;j z(OS#{A`FLcz$6P^xurnv!T?B~W(lYf0dKf7P}07g-jc26ypOBEHK&(@xH{p!S;4r1 zhFq9pTR>*XI)b|E9w-vJMT}%~Ac>ug;@0bdv*-(K*k8!0Q~5{YH)g?Cqw8E*#Um*4 zsv4&q@B*2#r+9)rccMqX!Y!6fN$OoeqIAaS?T#M$U5&j9y5hM;iZ|g%w?6r|*AfJ4 zKGGGV_i;uhyAypWV>^Tj5c%W<8vb+f-0ciptLP3>WEK$Zj{9_k&V+v!?02#3KB)5- z;1ix7ZF%wv4fT}4`G*_imU2;Kx-t%64gK$43nyk}JaE%$KwPntiCZVB)_zeWA6REE z)~cCQ*RJ9$_v{6ot=?#J-IiqD{>0@|3x}XL%mw3fz(du5=}6b}mIn ziy#o_am4*1qhRarj7Dwtm?S%sLqbVcvPTC%mB=4t6YgjNYz{@#52g8u$Lwym3G2ub2&}Tip*n0emV7EsRw_Y;Cfv|im-`m5Tnd^@`7=vJ8tu>0Z_`!)Te_Sn{1JLu33>52Q z+kR_!FXV&!({{p~a(}Q>w162>)-c1q0B6n7<($)UfI>-qvfoz+r+2fnl=Wlk8mJ8~ zW`2g}2WnL`Z?auP=RN$wu?LN#QS{T2ejJK!0u2R*<~)mNGFcz?Wu>Dq$Cm41?TRPn zildi-C#f(g!Iwfd>7O=tka#=hhB?L@OiJgVBxx5~iMG&vD{6rjtifxiCCHakiO}KF z1WC7?;l)G}hCK*?s2zf^e*F`?rF#YLb;`ra?=R8ZyotMNtsi83=)~2rauhXf>shPV77NpA`|Fz74YeeSxyIL8QR7ANtu}6e^8{!85)5+7=1AW3WPQqdG++Fl?qduLZ@~)8P9DHTzdW&mWz%06sd7o88dO)j zLY-a0XnedB&t?~5y!U*_+@Az*`8zV8eFjGMC)2Zii_tJL3!iia;LNr0Sol>LSKYk= zKgUf$Wot2%Cb>bgeH;F~`4YIA_N@1L8SQ7J!Sf{KZtT1a$#a)5*NzpG?rp@&tNo#* zeFy`Ov-wqYJW76!fMK2&o>em?^Xrdb;K^Lv-n9_sbUMQRB>|{7Z$w!y<}-Vq-O*Rw zjE3)fge3R?ZZUPmd%XelP6r>nvEB`DC(GcGR2#DP?K5l*+0KD;pJF1v=5KxdyuA+2rpjd;zjRJn5Df2 z8eQ!$(X;>$%vlYED#a)%V~&y|Zwb%mKXiVdkBJ_s;55?%oh(v_oRcO)EnYy)Pyc9$ zu`BKy7D7M!Sgc(34$iJ+o$@E|sAtn1{IKHy)Jgw>Kb^i1S!;`B%?Y?ZECw3d^C0@H zIc9%$!o{*7*s|vcN^#pT_vUo&59KMUnYTBQzmv>42aauqScgRzna9IZUs9oZz>|hN zjfQ&%S@g>7E&etbhO<4t;O~@gI5FnAwwK2Lw-NWMb#Q(@=0cSFZSIa=uFR|Y7lM+Dz)s@<#EDKtZY@Er z;8076Zp~AGww*F2gAK z!%5mcfiwF{;LAlB{N@mjVKO2(Z@n^C&DDlBKHrd`)X6*svxDgx^KzUlG8cG$VZcpn zq}Tr|r%q+IG;Wz8?442zhcfgC?=IljoCJ)0IgUow>*xXZFtAha1Ix4`cy8{5-;(~~ z{Lw|AvPcy^zHe*Lz0yri49=%BKi>N_nU;>Gd=ah4u&f{wBT_~_i!mf4K=A4S zzP-2#MlZaAm?-vLoF@edGF;B$%Uj^j_Ck(nsUb*5KOr|3Cg8HG4tRtyUDLYfbG1tI zpkl!w3cpCk7sLY}raZ^^{ria0zeFfATMZ>Tb5!mO&w)gXaVp~61(!ctz&*oi5D+uK zy8%zQN+18Cgh~p`P@4m*9@&7}gX4IwTrR^vcrF!h%7m;fH&JN5EqNz2PLKWPkL#O)-Kp$N%Af1oL6sjhXZT2ko*@Kep`p(1DmJb?YahrE)pbiOBdGFSkU$1KJ=o*Oc)*uCaoHkaMyYa8he@Z zZ8Vyg@g8vNj_4r&@q2KF7fZ}~Z1B-bJ$gC=TvPw zHroz7-CR&s$r_J%_oM6fA%wduKfN*lY=l;meH{s4R5Xvg&i(RcvJ{7OX%}eM=T|kjun{%V z-w_45eB4vzk9DFZcw}J*qEs9SooIvF-95M|A_dOg`j@e2>m^Y9{Sq?=T&VHzbb9qi zlZw2|Yxq3(9IZ&Bts7{&bca!{$2M&)}IpqC*fI&1 z$)94KoBV;QibEEKMro1jG2Ab!lQh2OGI ziMPXMke-`B=Jn~Z-;pOq*GkjBd*;DC{ya>v4pE7iCr886y@b>PI}LFT`$Oyyn$LFDW^;BeK7nv2)54rv28u9k!Lq#_6Ng?ua+>+Egh1U1X08I_juxw0Jb@wzzZU=tb09y9a-h%LA58oalH$| zww5@l&I}%Y;^5Owp&;>fCCl(6(&WZ((C}3oe`#)pTRANdo7)0upNfFHGK@StQ;M4I z%Q#;)heAwH7kA?$9fw%5%?e+UO@IW zm?$U*26pc_)eSlLHO7|geCUh!HO;Wt_awG%;s?>QFY&I;6gU@NO7`qegP3b}?AvIM zew9(&<9g4)nspsUwXf3!y;gWY^gPa9;7AVZv6+>ZF8ZwMf@R{FxHe`zOdDzSz9g=wwvQJ?-U>OMfR2 zW1(wkHNF96i|&Ny>wW^U$%T9Su8{?!@^I|EE8d^RJcLJH5bbkFj6C;~sN6H~?Nkko z&i5osmjSe}JJ_^=0oE^5V^N22+Tw3dYT3@Grl^-ae;u^F^$?jcKMOC+?825!OK^6Z z8)P0y#OXzQu-SGunjcdJ-^26C*K5D&($-$EoxcU2PR|2HVR5Q7Js6upBVlk#G+217 z#UCQYFfq6g{oP!lZ^VrboVJHUQya<3n|twKW>$vyffDq}52w*@OUb4;h2%haF#HIT z#5r+x^tBbAYQ=U_^e|w3-kpBjp*}wqo_Di~`{jH%%I-?sg&WA4hB|~Rb76}1D0#E0 z8?|DxFvw^H$2_MS4lEPkan!dm2GJFWlDY_nKd0lTzn9=oPB4n-T)-&SH@94=!Wk6P z#3zNGVE1<;*h#y?Y=gHDef=)^b?^*1OWm+qrvm(>9Pp0FZxW)Ufa%-_%$4kgbCM&} zUfU5)J-&(8&RL@=+fDvuxrr6aQqjig3%R#39=?6(frbAL!90m{m4v}T(p9?)vsS#t zAC;+aW7ix^qQfX9oK0zjHgKZ%(>wOr^xMP+yi-4l2bVu48%^Gl+T-%r5~+Zpw+-;Z z#>o(Q`yVXL$c4eJx-=uI3LpPhOUpuLf{u?9T}5*TdCgjAyj! zIgNSs8Z<^Oa~I#YgQaVm(R6Sh$M}9VtOyx^o8nVccU)bGh0c-CR zR~f6KQb~1-I``HL#z0J$WIwMktiR}t=5H>6S8XUhocS8S!2_RM`+=&uqhvyqadl(* z&~i&E=H3}+t}bi*9_tN@Mw0M?PcaeJ4kU*A+)02sziQ9DA;?|R3nud382)DgiWN`B z*YRp7)nG$^qz&WT%rPqD+>KZ4tO3&d@w%fu?LTac8WO)an?e^*>~n^BJ@0V8^DppV zy;Na)4V?1r1e#o{f&hn9`mXI3Gzx#F35F6Vd45SoQB?sfTAK>7l71+%n1ZGa^F7aC zUDzFFuuh>Deh=x89U~>U>h}pWtvAHed)A=-#5n%5nxtxHo{wJEpP_VS1&D5wgid)a zB$>-IW>hX`E_Z1#YpDU#CqsC!I{}76HbLXTV(4}7%dm7$MKQ}_ju%EFemMu1TWUc^ zsvDI5q|lWL!}v$>Gn}ZBriiYn|MGvyQ|lhFkVK91}&2vfg_{&%xnFRJu`p>H>*03xVQPOH z9g%*H5-Cn-CJ~OwipPn-b4Mt+_=mCF63L$0dU~6^(;kO(GDda@2KLGkqLYZlrg1Pg z)Do=5eYjy5#r2{@@FCsY?g+?H64N;nwg+5(SQv)O3?H~9h^4D zLigluIJ!9q9#5YP8EXYqqn9`l$5(}D{qz>&UR2^f;Rq=D{2jUfHDQWqH)NOj;o|du zVE?EUmA|;1hW?aHx+4-f&$s0f%q>q{C+_an0ruRLKaV zDHW}(ultF%YsW#ETP6BTwWBv~2&yXF1Bj?z2veMMFuH=xC8pfOmF0{(WtIeAEatjQq;=L1{}!qC(HIMjF&cioq#p%VV!GM^v!7`4LMW6X`K@)DlQK88KNiXeqd zV4~M4Sbog`9Je!%!u|;Qv!e+t*31E&mzTH)*?YB=rW zQRT)pOVH|}Darp7NluQwfzPMg@qxl&Y^f{9-@1L=sMn_8;=sDEVdh}Umx0ndtzhf4 zFEDgw3H);T1XjygcYR_73e63rxk=49cV!>Y(}`-jIHU*O~;&)~qcM&{1mfHy~jz@qUm2=1K?o))gS z;ky@}+A9d0c_-k)(FAlow~Z^%`WRd8o<(n=ujIt+*>pqJbG*AT4dfnsKr|-=@?;<4 zLKn8@ww()712y!u+(oo;{7BVCqEUa>SBy3{!^+LfX|a6^d|Ww)xOcp!^XDyvzk&Q2 z|Mt#-3xCgWg&f7e&FL3cQoI-T3H`>?+5?!K$hcnIW=!G8Lula)Snd*v_1S5-bLn#` z&wGLEzcVK2^mVZKSs5q|wSu4GrL8BY3^6AAU08Ln4Zoi4R^A*QgSWo2Y=ERK{B%me zqf+&>z`6=w>k{funBnj4JXC1kLjAV|(;dRB$GIVp_?61zZiOXuz>Ikk6@hM>0x0-0`vrr$wpFXRoJ0ZGwNV%5 ziu}M;>nR%WzM-*3FuYtPjQe??$oeQ#ZfTeqD&|X*<>r^*^{gd$enTiddO!|M9z=1< zU0N`{^D2zL+koK%Y&U<~6V7esgPNJ!&|+pRN#5}m{}T(qu=o);KR~cpIv2s!24hP0 z;NKUTxITV4?$3zA+o@bIU08?gYK)zQ-Z*E~8_+hAgY%a)IGiPudDlndp^YzyI=+$M z%+=IkJpOe2GaL_jBi8UCzMm*ZDTBkaFi_NF??f9VG&p^SzFsg0vCcP8>%lLk!7%`# zjs(==2=P=D|A2{I9(FZH!uL0sM3SHFa<{co<73Rp2o#Ecx>L(eZKyswgJq&w{)iLG zNv+d|#Lb5IdxH;&ozzY&HA|q{svJ}g8(^ZtY!LLkfXXYAAVZ>9<}p4{U~dAW3ir_`g4fw}g~w)vE=tVsRR3e|-zteNShJ&K zb^}SJA}Z3PJ-O#~X=rH=(GU$qi$tG7Q3?&RiO41^vhR6aJDbX`NJdsh5)$=0-`~Ie zliYXjd(P|id_Ep~4?KgPV)vo&;3LqC_>4cg6iK+-8*KT$2M|92W89@v zs3Q0f?DVID-N(!Lp}z%>-9?PwEXvOonn}K_e~U_Ym(jWh-JFgFRU+F~Pv^RRgF(YJ z@a^^(#CeGYZAK{-TjpFnVj8gFT(T#Cdi$xXw~Q<>pqF-K)ft6B+kSKMoC8 zkLzxn3A)ssqw?Fu@we3#m{41fS2n&TIiWhlCoz$#U2&!DbL^?DTX_6; zp6FTsi7rvLg_!pn;ctm3eH+MfX!%cYk4zE9%oK$k)ge3vn}kcXC*VH+9}XO0&f(G~ zlqgjK@y0PC^JWOnKPv$ZO9z}RHJhFPL-Br*9=sEhg#3~!(vW%%ACA3+^bH;OF0TU{ zl`BCbWfboxO@<%i;k-#Gh^1qG>9P90KyNlfa$E~6%rJyk9&9G!yB?k_bin?3FLsYo#s|U;Ul~~`4LZVv@H2KGX z_nXJ8KfySg8+0&#`6Tizq6EE8>JWpi_aHnd4iuaLTm602cWex1uCH@g;V}(w?WzQU z)2{eBMj3vnbTW2PIo-c21lqkLsq&f!c=*6aC>kk&9s9k|sP!fdT=<+w>PNymla06r zzVOCQ9S5PtLTX%m9g~g+f}=zSy3RNNm1FTVaMlwlxcE5wcq~KxGkGMkM+NSiwsYit z&GF;DMAXUNs2426?!F1%1 z0Jo^77JdkXphZv?UA3(Wh)N2KBzvON@+8>svoRy`L@m742||xlcN|&p8s+_i{@=0U z+w4tdW*ve>Z!_TX(HY>HmCZQ1p=u=j-niWPpwQH$w9?JS| ze!IYIV*?!7RDwJGGLQpnVUGR_knjq`mdJVV^0xqY-u@|A?3n|HRA1rSphYNVDS`5f zPqM5^JKS0P3sR$gK!}M04%GLcS=?39_c51du;+4iSt7Pes)7DaQQ-dZLit~Lux-H% z&XOhnVaDYYDEjs}-6Y72@zsa$_TxBsE#!+fFLR(cQNGt# z3)(~r@%*PX(7`-Tqw-&f@RLT)keefF^%r7jU=xj%ZG+pz+pwo{8+r0HlV{CXqHCSr zft(1-^z6}A*Pqpj`fGlpA>SSx?8W#I-bpy4wFsX)aE2LrMWAp*6c#+lBcsV3@KpP5nsYJixtB^0mhaErmssASTP z^72UGtfx@tH<7oipb{PzKBaZ{E|V>>1@JJ=6*pFe!9QD5-pa-d^n3Y$o=W6#4$L|O z2EQAjQZ@yJ+I?ZxyC|wKVVHAe&MRo&xsKe}n}K^-Z&~BjS9G7+4OiTj(Kq`M8f{`A zR%;?;FuzQPzbJG^bW?3{OY+`%9`P_RdwI=w&z~CBobCK2kf>dT5zEH7cMM#fZi%0&@ibDs?>Gpt+TJ-v~CXPXy^?rpDD`S zeb*F@=b6JBqxZ~bn}W9t8`)0vD=2M#jV$cT4Lr6Fu5Og1A7&Q7&%TKC1#hxZZB8!y zsHwm&%M|Ep*D!jC&pdhE$KkG14c#C03{q#j2mP445Io0)+N53u=VjAbmYNT>9-b(; zI-K5_l*(Bk@RgjPpMcXZ0<}hcwDb5dej_K~jFA9W$kzxSop8Zb?c+pezyxMaNQ8f1 z&i!wG2j`UnXwx|lI@0M3SJk3HmA$wAG|VS{)0dF4t!p{Y8_)3;2DfCKxc3wrE>uC7 z-U+y7QiF0)AFy;?C2kQbft8x9<1XfoXM5MewV^>QN+mqr<610NkHS@bOF?%^1FYIS z9Tn9(aG)y$#v2J76MG2>;lg|`hl{wYO%-0~HNxDDPB31$4&%2U!4<|Ul5;n#A>qo(3Izx;QGLH+WY`1Wf$&24$|=f$}U%#;S9N ze=eTnhC~?TedU66M-P}5q=A{<40NBfp8829f}4atRVp3Bt6av?Gx5Xj3(>qYv(w>3 z^L1=d+>92fq2Si;52tFcFqYL4bXq;cJH&hmiE;1X(!S-WnGi^pNtn~4kN@F?<>7e5 z-yPo^U_K^xUsRtt4dTAIz(RdBE_8*-EBa5{m?rs$XmrR7j^{??0F9`%3tvQ+5 z?Qmwp5xf)<2^EuX1259Ht1_jb9&fJb&_tE*keek|s z07I63qm3)$soE;GKL{AYm$r-X=e;Rp+39RDjqNq3Y)geQWKN>ir=Z&nbp40VAe6;s z`~`E6>-~>>o>8CSVXzo%dgU;sY6m7ZvDxII7${m*g8$LEbo%Q_u&sIwwu|h>hkL_$ zev^N|l=b>(@uiKuQ^N7b0zoooelMtO&j(%!!ri3 z#4TXIKp84be+hTKDUWYVws6GLF{)MCqo_we#F_zhoEL;2ZpS<37z zXDXcE*3Wo*g`BZNBK+jC$DraifCp;yu_hy)esOC@`%YDGkC=dchUMhl0CP3QpM%iu z9GvfW5v{xhxjVgm;Hx5IzvrpKACFcjXS<+2;!Uh?dcoB=Q53RlAU_3j@x_Bsa=m*N z_Wg{6x2xFhVe2HI6P00Q+cmiC>dzUFPlC#QKj84?Szwpw2_fR5XkMF$ix~&-PnA5R zTHfOA{Te}1>@W0@%oJvVw1z>Qe_SBUWh_Q_clyuuA!%^ zhhV*}KS<|>!Mjbd$YsI0ExCUn%-jq9Y^{Uj!6@vD{)Z=}=AcqZ3qI-L!Qj!i_-M%j zyqo-mtTQXeP4>Fb!7>o1o1WnBy#=77(Tsso6RFGcuV}tKpWHh368^hbj=o+Ebf&T$ z#-zT+%!=taYuzL0yBY*{d@tg>kR4ddyt#h6>Y)5|B#6J6#I3UYPF&L-@YbwU1&tOq zvrUbF`tw;l;j(UU`xycnZ)%}zvmk!kw1A!2592z+8k`f&hlIv#6p-?OcLN9E@U&8} z$_oN>?jWv`^+f+JMVMX`2wG>I@s8^moX>VxQ#5`xzr- zD`4Av8JPF05dXY9#u%}h_&V?_80)k!uH+~>pPo!h{}3=dJx)S*e4{ht){|#GFG=s~ zA+oA48fp4dHZL#1xGg_O*s2OR+`k^Bi<-#IM>41#YDlKBU0%%U3XFf#f%Y;#d2qZ0 zWhDL*-is69*p8rNH$XcH9=?+ z_79dxwUW9Wj%;`G3K{hRoew9GgyouWY49_O$&|tJ?{#!I_Zyz>mBocGUP5MJ08ign zA5>J=VV`>|7HZBzvt&Wc`x8bk9N3FTBYTMYifD4Z&jRiUa8Z1HD(DP72EW#gxNb`V z^dY=PqSj?j*;XQ0Hd4$!!PCO$%|aRVwTxtw zi6(`~Vhz`U@QrQY1oIaC%t-?GX~FQSESI?^`%qL&!@063`xN0y@9D%%@j3MKhFvs78uwsYiWSJEtw7r{J&ewmAZOHq>CWvvXfwkI zR=yrWndl~(QTqx~%7U=l%n~v;uY&*GmG>U9$KUf@fxkYE2+G)?sNr%{bIB#6hZll? zeJ~E+k;F%4j5~VyCpubafW?G~be)q5J-ONp6)!JBm8k@a9wmdBbtsU(t4WE|GxAl) z7ox+j;)i;B#xFXGk8TCy>48Av8Kr{r6O-|4j46>j6^-Y_8H;~8;%pBWdomv92PlF1hAS{o3QyiGaQ_KbJbH3T`ER3IGadl{jT`XX9KFxQrN9z#yn-d*x2?7`er@AkB;K}%L|U- zav57BNrmwE@^P3@w-Gs$7UGiH0J7G&Xk?U6nh z5xHGS=qdCZ1LzuP^3%lH#$VVcZe~q zZ;5cfyI13(4>yQ_(g3)b55SXMFR-zsl3XzV4u%WcVao337%qPw4=$}hTdO~0{kw^L z?mz$*sVU;b1+!_|XMbFL!VlI;m(gU^hb%{v!P}cI1{}^g_58!i`;>yfK%_@X7KC>dt(DCXCTD`hy2QMrUGwSvJ(=GhfJ# zpQOq{fN$x?_$W&a(cE_;+4kZ&6;kbIO!<1?C0VQU77W9EamKqHyN`F)U&c>g|M1Sq z^`Rm%hP%rR@+_z!V~#`#1f3ef8QB4#G&>jL*j&O_k?mx5+F@m7CR(bD((}Vrs5;3V zt0%XD-o%f%#H|jb=TqEpy%$ARF$ZV@>(^v75uaff(m8HPdS?2wY}a)->|;r07jJ`_ zzGgCWN;y^7{{t3hT7$>VOx$E%4^>+qlm9F()73LnIbZa*;M_U>(77iHdS;x2n6LJz zl#m8Vm)v3Y-WX7=as|0J7I^-m3*;cvk=+TdJp z9K+-aP@}LP)PH}1`1Hr%Q0{?7FW=x(274@|-8qZ-X%+1GMIm5l(!22WM(k;kLDB;Q7%{c(wO0 z22C)fiK_WzeR2=1VGP}A^Tw!T#x6WL`W_!!x8uv0ulPm%Hw;fy2Q8h8D1Ivzw=@aj z;=3-m-TVn!UpP%W9<9LaSpyibcMi@e9RkN?6_AtVgiW&ESg|7!hRSylwFWjjJpYl+ z+WMe#!EZ45_nQ3dcZBQPnPa|$iv|r>4^7gR-mlAN+Tpb_Ka*ZS# z+TKBicmRcYJ>EDLq?}Tv0b(W_b$i4gP=09vjh(?V$IDjZ6-Ni$a{mO6w<;TAQwMlmk6SQva1cLyHv)T73nnjq z()yj7$@{(t(EH>H$#Q1A2jXwx+=3{a`s4%rl-Y;xG*`mh9VQt<_7`F4xdL!J)PTF! zheMo@5EQN$R!iS-pI*_LgB#|0WCR`v#*;rE;xz7FV2(Pp(qs8P9p;43$j2Ooxp;?h z1(H&>z&zuBaGUVR9bgIgNS4WF6W9na= zDd!K*-uDqlqb$n*dI6#}LU4obJJh}+nDKYj1p2ulnRTM%=)#8yxcm#t#hk5%#R9YF zg>vRG5M#NdbIBwxwE*t14%V!}FA%e=k6eG)1@AK0Ou#)P!+wP?W}XS8yPhn9hXtK5 zlzt7f^C&6bG=cA>mrEWs-^UEyQ>0Eg0RMRXM!{`E#INEWnG$>r%}z}LBNI=?Ju9Y~ zog5IAyh{h!J16vHKCjR2EiYo~0l1b}085r>;)d@gxXRj$M!VQRsai9LWag8j2eRP3 z!%L_AmH#=u{gG+TUYwyLu9$*G2Zcts@bSdQi-8Zif4h zJoKABOcM2PFlKZBk+QMJ$QQy`WsnJPZYJT?Gd%LWH4av0pM|g48C1)qjT+db&|hxb zAar9bJKJgVWOrth6V^7crd<|YHhd?&+N;j{Y)H;QR0OEY9&W! zl;C6aa4Nl~86VXL(5bTu@L6L6ZTR~K)z%7fk6m-c(zHK#`wZKu?oLIiz1%~Atmw5E|7_m98?sR~36k9lUl zL5F)K6p0K|`3dVVulP%bedQgjtVjI)ei=^oV13s4kMNPvQuuRu5;{%Xj8^*+NZPFw z{P*<`?A&RI(wApK^xS_u|0`8IiLWzoQu#Q%8e$%+o;tYU;g0hByI8C-7cK;Rf`5^L zI5jF2Z)@sf)Ls$rv%ZMwRvGv?K8aq;FoQP#WNdz1f-xGR^g#44_{#PM=1<1Rsl06< zrPEEP7={ylQ4_S;D#)EOa~phZBQ%fK10x?}VeC^s=eMUZZ{B=c&}!z= zSm?o=rB?Gu#(PcNVJOOvo%{f|-wcAu^_?K3l#Lf&%j2}FBJ3*a%2y=CRvEC5tz8-7bHKlK%tsFkXwEdgqp9@x#dI19To<-U=LJP2q)^W+1%mD zXuR2&r_W}T15dP3k@2PV4+Me4fo#T)xsJV`Y{+5ZU%2l-9${ZAVw&lbh%ryuZq zMFI9mKcbqVx_Bxx2d>q(VrxYZ$T$p76ZY9L(yUAEIYR{hOIB-2W6@O2+rT8Zv!hYuA(tJ*cwXE-7HJ>$Wdy^wsl zj@GyJ0e{kZ{KW41+~yQG@GTVg>ura-ygIP)$;93qN9uD~3mO&WaW~dd%fE?mmT_^O z^%kSk#`7@kc{yp+i`Qae11F0I@k)s_n1>&(}7wZtii1l@55@FadP|h z1WXsUL+?wI;NR8tSX40ppM83<&Y=!{tGdzb!Zr9;5QUY$zOwHHwu9EnN5@zT_%mn> zN0<5Fg{nX>H_*qCj>Brb3g&*07l%vq0Sn|wjoc?<1Z*p4l( zq0n3Sj<+%-5P!U9jHt#y>^Sm`O0i6UgztX!Llb9{=HF|;?dcv=ca-M7GF<{qxyh71 z9e}8z$#C7Vg?$dpO?V*|LKnS(U%f)y(}__qwzLt%My~UGZl%I!%KGF{hai_@2#21C zb45yWu%@>e(lik=La z52lW}^n!j7zMPSZznwMN*})0#1+2omLHlvr&sUHIW$ANl&S6JU5e(Rdf$`?YaM>`A zu|Cr=X8K=_>5&95JM0Wg5=VJ^G(2FJus1ZUjlf}@T!_9EOfuCFyv^5A+rea9|6!0E zR(p$L%ww~sdJ?~9i!S6-39R>LPGqf5u%@k?$qlNd>ylwG&xlZ`z>SPgea~WAx8u* z!L2RNaF@L_zs%$(+!=a7&lU%8Qsx`M{XN3`+;=aCb7T^78_uEbxHt3_2g2JsrLb=J zGC5W~Mx9>WSJz#>6-_#Zc%Cx(*zh+R+`GG}X;>Xc+2cM@cwdGSw(Z3F-c97q)-bH- z%z>|Rkx=fP4#n}4q5i)_GKMcQW@&7hX4` zboK7{yq|L)f~eOy=oVUlvQm|JZ*LPUS;+&#cmu49bb~?HOCa7Y!hOQB?7_G4;QMSr zeun!I+_gFcpI)q`@l_x3Ksw9H|J{UII0IKc?4_I1C&IaDP1xC*gr9<*!j{b4B&cgL z{LywH|4Gi~%`mIRPp(F2u-X$|U$Y}RD@^cbdjT0qY2~~Sb$}qJK#UU6W_PWLaO__# z9$Kl1tCvl{hvrFY`&@gV!TAc6+K@m_P4^==4p^dT(NylqrT;)?-xt{UUJ3nM$_GA7 z8{cETPhTOSe^win+m^QxvGzyvPChPL+*#ofwj}- zl33PFYnN5zXs~(Sr9%>6V*DF2_9w!p-7&P%QjpO_OV_dN!a4~v_eU;9rXtfzOx>-T|9dleg z@h-Xt+2Yf$|A7FR4>DaHkmtOd=31A6ntl#C?!JLn0xHRwVi9g~>qQu}72r!(RHOf- zH-yvk9}F(+gu7ie&>^%6+ShW370aNWGnBxSV}ks!CBN};IpYhR=tH3=PrzKY9f~gH z;FpM2s8f^!*F}YNQ}f}B>x!&zw48P3U;2|%#c9aj-v$HEeL?@{4(96$V!qXXsA**f zE%OpkyGRT6oz{iZeS<`^+X*{Xh0zM|g=4?%(A7wiU-0ogtbblkJ>E3)_6wcI3zG4) z^)c%|NcEv)=}fd%Z$g<5S1{@t^4vbRfYSy$a@eXCLA{x}gnftQ@+z>S@jFDG@qyj) zl3c|~VU+)n2dkcCLQnKJ99$Dl6JOMVVm0Gf1Xl7Aw?o(j4dePmMJbe_8TFxVu9!i42p$%C40D3E7> z1>=R(HdvDQSO7l1s|Y)aqhMh0Jy!fMC*0Yo)Ns*mPOOC|vDFU)z3zH6TAK&TDiQR+ z=1}S%u$TAsVjCK2iSS2r0@0-ZD&A}H#w|%9#GGYn`+CG+#qCkfBL#P8a1nxBdJOtq zk8mz2so~jsdNj4PnLZ5+2Zd&Bh;f<9*9{(`0b)a9a7)s{-=JSD_59QaxQM`f8>){}Xt5jgxNEm2yR>EGopSH<=$ArL_^m-$EZUs|-&SpG{SIZ&o zU=kjvSim*Vjl>cj!i!_hD5UfhB8Cld@`g_Ox?&MVG)m$HyA#-|#JDa#%kb9ENb<*G z7!RxbB$Im%0nyz6y-8j$&FnFZxmkeAJwr0WUj|w>{t%$Zx)46XTtB@wy7Njgw9l-D zg3Z>%c;96_(y50AnGW=CR5u*dFyUC%`hr6AXJFG#`ZF#F#|=t&>*ma68KaMQ)=-%H z_oE+vJXOO{d(1Km*Cn|RG%RtTqyitDmY@L*r7-k<5*l?obHo!?!}-A`;&^E@womtl zp}c8iLqjiIy~x-#rvG^BUDC0C(F0Ikl1V)555c^)<0$xG3g2(KA1qM$4{L7h1(V99 zs6KF?tOyZjg! z2wUM%m$^e|(L|Y>)E|SyZ$s9$Rltpx##w9+`qJK> z#D3d`!C9BUFU1F)#eW0joQAu*rc?bpiF8eXCoK`NB?Xd&xc&TLC@?6)Em~Rl$S;r6 zckLF0X1_%T&1RyrZj5t9{T-@0dqO#Jhc^3c*yba`)h$r~>r8LdpvmyjRR}8zM&bA} zVQyDkFSMuiZD=P&L&u!w653^BpFG9iD`RO6b0c7Q$QMjn! zMq=~DxlWJ7L1jh_nhnR}xwBg^vf>Xs_kW~ra90cs7Ur=Y6LZm|K0=MLLu8U(0yzBF z15I!3K-990h;l_hdCN=q#(Ga@HCIDCUxX&yC?JPDweY6FYwDq63FBUjpH!N`e93}b z#WVf9O~d&p#O}t66-Bt6Qd5a{;to7=@g!`1W(eWuzR{877BrZ72+xGB$8OUwsDJH& zo*f@x8JlxGUb_(fF3#X7T#A5rsSdpLT#r3F+riF4fquW|3F~>KAS&aEMOHTV++S-9@A zCXL-F34hhI(LXB#rzy5(h=@d@*M(X*t|*1K*HbKTeu|1*0q*Ugd${YhFyB-yg)z-c zaDnJ#vU=xdkSa=oqr7fx@fk$bMV(;3U6ojj%BuG+l);_}uVK-D*U_aj9KNa5;?duI z^y)b)(0(_7-PK=dW_mU!B5pqVK@u7`bOWd89_?ukz&RR0Am#WD)fT(LChjTpit5MG zTSxIzq$^s;zob#u1-T(_7NPPM36MR_Lpy#YNcb0F_55H`HTNty9%&_UXVYLI%U5YF z38iPxRD#XJE3hEB1{Nq-z>XcqAuf*Mhb$d-+=l)c{mn(5ftX+gLLX7 z?oGWq3`;J8^UQ}8@x%+wZjS;#coJUx(hfn(Df~7TLFHEFX`UJl$6gMTA-UtU?%_vx z@uV3)$Y$a9ox=QO8Jck9!Wi#w@k`dbQ3KqU00z5aQQl`J98md!rXlRU)DcehT4d1= zn_l3)iG8fID!{d?xJadg&XYH{*7ClTW%BwLz9gPIM(BGZN$xJ5C@Jx~hMOXfLTKMg z%%7K!f(HL+$*?!*OHQEmQ>rk2#Q}Ua5QGVL+(^#NtLSc+j)(3Kf{ni=EwcQJKVFz( z_?~FS)SZNTW~?MHG&LEEuLVo}>p92jf8umi9=4@r!_@J0+>XLoWRKx;Nc?kx)ZAJR z`PY}gx4JJV`Qr$lziZ3UIrfUtz0;w?HJN#JJlsr?Pn|bDd~iNl09Gn>$rF5`;cQ@+b|O3;M%E0@IAVi zEdQ%Qx!+HNgvJ4$VA(uqW}o2pTVm`kR*lV1!-?GzQ9jB&hWXDs8Amjj=KH;&vu+Xe z6B#2>mmMKh)*Xz0_VP?5M4VLs{d$|%Yu&IEZI!!Qi^BC`x*FAK6v=6Qy zy$`&F;@nvW7`ysL4+gZaCEog8oC5bZ@RsoqKksFo^BoEB(RdR7QH&vzQ;4E|)G6GW zeGm>Hcz(+i>jMIzki(-Al5 zd1FrcN<8Gh9k;ayp#4BDY|nTOCe}Lm{iHUI{!ZullmcE@6bBc=Cv$6}1-T}_MYyK| zOYz#WFC5$Ttz@!UD_k`Ez!>T*yHFZHt(+d?g0#u#*ENH@dzb{rM^jODm?x4*(i5$Z;EKgBl9DQb zQu~`wGcgRs{a!F;$3Ivww}|sQ#VcdC)oq@OcRhBD3GuH?`b|HcdB)l3as-w?tA-Al zVdmv}g?Z=Pd8a2j@D4lwM1|Fp==tj-c>Sj=2HRBQpHDk+-;gIf5v_v-CyYs+)=cDR zzeDpo&%t9O;*AtrQkL${+ixHTT&+U%Qhh+BzfR`vH(msPvUh;M6>l`3U!EbIV++%- zcA@C(2oP9)7;e2RBTBqeFk?wMb=NZ`ORwL9vl~-E!q5cXh{uqv-&VrOt?WHvvksnG z^+SE0F*dZ#0{f$ykZ@6$d*Vs}TukW!jctvfdpZI_54PeH?N*?lCvzXa>&LSdS)f|V zvd8nA;DuQSd9v*o7WHkznwqJgCcm8HCgqJ~5raI#34ZwR=^)N2+JimSwK!1umUfQo zLxNo?y6HW|fnDEbKiKjG~L4mgA;+T`2eII4N>bk z1~|LZ2$VX$z|&85WRa5_XW6``G<@+SZnEPG{5 zDE^uTA|(>^;>&m z@i`qzE~V3T(+lD7TQ86i5axcb+s&MD(YWN50(ezX3{I&6hgMfqD6_yt=J$!PS}SZ_ zQ3B@G$|&trgf4z}(d6a`gr7fwg>qH!_173pe&ocnK7I_R%-PF${@s}Qz8Gp2>;})D zOK`^!V!invmXj&Q94*GTvnXXVgqVzP{-(T;HJ4!Yjx5wZEyPbcaWuC)op;$xhe{re zB~rnzV7pC{-}+o0R=yL)>#R3%fnUbBcz*aG_yH-6?L$w~;~34if)On%`ssBhv9)F2 zcW4jRS6$F=xSckxo5WYUJC!5)@exd5d{N`hS5W$3DMYZ0!v6D9xJ$6 zZvT*gT+Tu&4sJZ#4e!WzqX3ln@d1>p0x37#nyl@tp*>kmP?~Z8O|3)V;IB@YT&}FP zW#wi#p>Ky8Q!8K%n_W0Ky5Ra_Avm`8B-qwjqVa7m&C&Ixc|p%+__ z^4*~OQw~T;`(u4T5B5!ahE~g!@bHZJDBU5$_CuL)Ts9P6$o>Vpqp~pjLo!_E<>6(a z=R92_X)J;exEx>z#%ErV2O&yeeTs)I1?#X%a1!^g_b!Z(_zekG8T9XoG%|QThi>T| zV&B6Vkk1$bC!XCv6{RH1`&x*m)gs(U#;Z`oBNp#XaDYS&QU0@?RT$Y>q<(DLRT7vs zjZ3@Bu*G%>brZh|4|LOD&*w_KbtVSFPclB>Y-<`V=K~qFEou&zkAP)DJ5KCpF8Z;p zsHdy|Z_4+BV7Cpd4=%w6R&P-Fsx0JWmV)|61-giR9=G?`;o5a~Fl0-Vy7W}fG`Hgx z#Nya6yw6#Hanr`3E-H>}T^5boz1Vy}n}ZK;DB`Id4{+9}A9U?MHdiZO1wZmzv2CR< z$q`wGM*_xRA-F?J@L5ReE<(<*2FO%Z!u_=p^sVt-G>utTD~SL{7UQ86%@p3rawpQfGU(O5kQ+^!_1lRVgrpE2p;n={s{ zv7Xb&MNWfPD7@Nt99BxKgY}kb(39l~^(=c^bK?-GXa|z5kBaEAv5P>C335Ako#gSu zbWvjT3{237LD|a7C^~l;r=d%W?iUP2551QVVw8+c*hsvauE7)bbH&LdV@9=SH)2$vnc%U zeK?Al#9`;fQn(eAf&2d?;Nqt_c=+r+nB~MFoVgY7=x#M^d}hP3clZaP)&&r8x|Eml zjEg(Nn#uHIuaTdq3!3l8IKc;4u6@d5$oD01pd=3TQudNdd99%0@(ttTUx8NRWqef} z02@a&U_-bXN*{g&ejoN?yR;na+}?uW9(|xv^#CI8GoP8|2t&8$Q!n`^a4}4Pd-gbU znnu3{UDqN!=u}S^YX`u>dY03-dk9}HIK$w-a}aW|2x7E_`NupM_x@-eC-ej#f;T$A z%sXrF$$~V_n}8n3T3Lk>N(p#U^dW9@Wc;IL8&Dn#u|jHuJe9al4y_M_N!HsKmufn> ze^-^*Y%2lB`bZeCk>SRje})kwJaA+CPHi(Ssz3gYeEVyNCfkcJ>{k+gE^mjPmpN!L zjrqC1cr&+80v_R8)4tZZSik)aO4*JjkM$u+qyZ}|Yv@Ln zc{CgE1o>IBV3XnyULJ{p+l!Q0W~~a=yD*25Es^DEWzp zg*WYS{wE*Ud&UvxW#wX>Kp)2=B9$yT;EP?|U-3z~B7PS22e~RYVzNvH+qxzY+YljMBQ*Aa{NU{tTI7)s7I@ z%kIjF$DC=v3K@91wHCvL8EbVGftS;)X|nVm@V&x%W!Hn?igOBFOJIJO?}_A=*G+I9 ziGjcJF?g+O0=tKDz*VOZ*Q)yPR!*c4K5h&-7atMNf-MmCbp|}9#gGyjPU(6J+`cml zujsxcb32pq(b+PzGB`zoZTqofv=1iCe8oAbJxWDiCc~oeQj)c$1bprKiA9_@o%V7n z3@OHAM4$)x^H3RvzZ;9Y`shX2S{vBs*?X)8LCnW|Ks0;Fodum|6j|(Q~ABBXL zqcHoH80<1xgT{5@{5j&9FnxBl`u%c!PWYW3oPCqXJ3j*5rL31yzMa!I+{;_9&i1eo5n#OB72Vg0 z^FOgOdwcm+)O^97nUGBIaoZ1H=TBjOW`$as68L;h8Yr&MK%2>jaqgrDT3^dWdM}KG zAAAB)dS^gOBpF@m-O*T07XHrm1Nkq{>4_4?{mAX5s>Wi_ACQXItv=HQD(~U;fn8*Q zL^K?-j6$XGD2zPt9hRPdg{vC1aR#ppT^3nFc2^w)mziTpWeY8%fn;oF2d%0tCwYof z;EwEl+;zegbu4;_hwuoz(3uU^(j3+idq*4b(X-P zP-vNQ5Xv&9Aq{_sQYUxd6c>GJUsDIq^%Lm)LvNwBaw8S1b^_T^Td2~? z!+rNRXu8R%dfteEt@b!kLx?}o!Vvt-8!>z6G8*r0<8>X~iI=kS zQS)>y)Q@D7xOpS=hL{F8CHR6^$_7}h980$~e+KsnJQDb)6pdUS;e*{`+%f(u`rO?f z6or%FRXe-Gh1X)7upY6|WcLI%=TzO%iRvv?)NN#d3`T`(;Z>P_JU9IT^*El7bG9Dhytrut*+El@*tyj>HU2O?H6+A0)Sk@Mp6`S* z4)2N0H52%F=n>Hl3 zqvIu5`yv>bh2v6nM-;g^nXVEILs>UvqVOsK3bQ_w^dwf!sr^fCu>NwRL>bKcdKX3K z6=T}kW3b7w8V*nHgQ2=ZL|g10a>E>OHfCUB?=kxD{UmPMB^R<}p6vfobRPaxe}5cD zRA`V&X&MnqG*s?+U#f3I3hh#9Xzw%?W$!&hh>GkY^PcxbRw%MZ5y?zSHjUr;{RJM^ z{oM08=e%F9=aYDwy<}_i2p*Xb#Cx@KIjyO$z!_=Yu=;KrhzS{x;bIT4Xui#I&vR+& zfzNO|QW*548qn&dA&fjU#anOo;R~bd5EbG9=}wjKTeAy(zV8Ly@AoM$$OoN0tFS&t z2i*g!P~wmnefv=db{>#}qo%B@#PZ%B4NCBca}hchsRDSh?BtX$#3kh_hG~7%suQ?Q z?{69d_o=hBnuJ*gDl(dE`Y5Ny?gqMskbnz!X>`o;m{c4~m5TP{^jV?NL&8{pZmMKCko zmiV&Vz`Q{oWa|rZYtzr-;{2PO*g8+nGM|3P{ObYErLTxw&jh~KsZ4t7R6ZVRa)f_9 zQfQy$fo1BG$w8Hi@S|%Z`|MU6Glx)W# zqM@zLIN?A!^xpmp+n+eVX|_jylrKxIi{oJEgcx@3T}G2LLhm&t~Jr#IlBhA%o?TYwqI!ZWX`TcF>|E4cNhGv%(gWuAZ?7&kNve$DW~ zHTqXz?4LUc>iUZU*ZOdMY9@IqS4ESD67kDDHovu!;9O}WoH!z?T?j{WXM!uspI)6WM6yF2z@RM#Pu!QIMds%Cz^Dc-bu&;`Hh_}E z|8TzrCk^~{AUB+EQq4q9h)%iyF;ENPkf8RsYZ zP`}6lbaaYA(cV_jPl~`-%9hakD$q z`jWn=)_DMD$m^32!$)x}*Avtxd13kyZ&W-_ndkQ@O%y1>LygI(@v;qjTZ>@DMs2cs zjS9H3ef(>72NDza95SP;nR5%_F?@xF$)Rw(N|+lv!v^d--0+{yJN&I71Sc%I8L!$A zK1VOZx4L(EQ<55K{o3{TskNGn%8AgeVpnmNh$-kv946Ca(&^Hm6PWa^k+x(cLGGvm z#=2~Wjh)Y7wOcnBvH8t;hdt}pU+{z)n>IX{ECAO|mSH4s0OZ0;Ao8Ofpqwo3%PgU$ z>l1hfyWW$`(8r*--wV_Ho#;XBVf?C{kK=+-pvBHD>PeZT{^~PWXebILvLj^Y4ln%S zK9?MmGQ`qV!XUf*Dlu-}g?pA|p;uf99QiPSxMmV}=c7^%$BdoFXRuCEcQ_#bB+1#? z3vnkuQ{i9pp;ys}zD!&R@#|{vug!5dP!~>vdQ?Cz(3wPx{)BbOu^g}2UpN{oQ=zX~ zhLjQZT3-*vDBqei%F!g`twkY_tshjdRTs zV9Dzv@FAcGlQz8|GpAG|Mi*d@;}D)x*+bmBn^E;>59m#=AQ=HKNc8spOu4iqqPpoj zE|pD#Kzl^Vz-~C@5dw{`+A(;RFP&Ps5)V!J!t|woFm+-9xjxzm_wI(^_Ph$nDk`F$ z$9yp3(JnYEoQnC8$6-p|7*S7L!!dRX0`If#7%yo@HxVCv5W1YidA#8KkyAid{|ugO z?nVrex(fHBOL_b5PQv`(P4v*QpD3oK0q5Lrpkd5wI5iLpX2s0o=u`ui#(q#%Gy~?n z@x~#;F_bZTj>gRwI3EgM;pTgK;D7Ko>RhcOX-{^dJg&o$o4@Fz(sa6WTPkgm4yB%| z?o?MI1+Q#91pC#mVsfKAb_TNVuHG5S*_o}}`yJ@&_QS0SikQ-o0;YK%=t0}%5SM!y zCh~&uE}OmG{#1_H%}XJ5LmYNVNWqnlPf*gj9JXpl!UE4+%-VOJYR!9v@+FK5lxGBz zdTyLkLVqw&Es`TY*#keU5kf<@KiVPq9o6|eNrznuxHFf*?+ah>r*18p@{`e8*c{&* zb#kmG{el(Acj0EPInkBvf;YLEIO3QCwW=R+b$lwQ%hf~M-Yz`Y{2ilp6ftzcU(WX7 zDtP@p6UV;a;A#I|2IptWfaV+E8L~C&U`O z#}BdNR6f2Q{fq)RF`Dx-@8yW1*47}b`~C*seN4ytLys`K`z9?IY$f*L;hs4awlpK=P;PGpO8F z#h76poV@iMZ0=Qn$YV>?x)9FOSw5NT<soe9v zeE6pxk4kmvP;Wg8w;C)$$JY)ZpppsSTy;U;X9i?g{sgzI9-1`S5`!JfaY?f?86A`1 zz7tx89TOb!$wM2UC5d#!i#zZvTA2HvfE)z9%K%y{j#h;miDu;m`oX!5e$Kl|r?;F1 zKfz9FpMDe1-e>(z$tE`Qw8E_6j~Fyb4)tag(m82|Sr*irYz^Iu)^lR<`dBBq+Ngt^ z_I4oqPhf4rWNh?Qh94{|;{34*CW}qtpDY}uAvZek*zgZXER_U@HOV-?K=b86sp1C{aqqtW{(R0#34%A1LL=Cz}t#G zaJQc2Jgf3?S=JcQj)+2MyQvVA{gg;;a)#+4ACR{`m~(LUeaJ9#z%xU2^c7bGCluPF z|0QSi`p*Sb@5jT)CkI^ncoWv;QZlI6iyQ09pds85{=~8_PtyhXl0JgLPRe9T%PG8Y z^*uIRYlL%>VFVt3r=1%tVWcNbtM=SeuoGv_qaj9CcA1Q|3ny^XwTIAMPL*n=Mxopn zf6zX`$7w#ZVHcafoztu5MC(1pyT@BVx@!WrE9^c_YHr4QMb^)_wVWC@dSJ&pb*zjN zLt$f6eB)?GSEM%ul+=y%^WpvOe$UNT?FG#+55J;l87`j88p@n`)B> z^I!aceEm?!ntT-k*KWZb$IoUwC>qBzQ+hczSs#e<#&KAF{WJ#K`Qx&X1Tgqdn9rB~ zK<89iEee`yq6nAPxFA4YO!}>yL>?_+2TDb-IWY;9V_yJ{N z{e2==4dbDy^gS&J73a}UH{iQ>IkZ*U5Z@;`WMtqVj_k^V7jND0JL`2_^y88#O2^Ue zPb~c*Yma@VcY&(>#&r|R;ZM0Za_6|gM{X_5seg})b?aexP9CWuj6)oIjJmwaWqbN5 z+)cA%K<8pToDuZJ-eo3`be&~A%nwq-&Jbc+ILnFo1qx=nEYyml0o`~vQLY1o)Io3w~_W5~h|$T)GC1b6&K zqTY?Z(^Uyak8!rsLh;JZ%(&O38lM#j>jYE`IPrBp2KtrlP2B1W&=tm*)PR zOU}pmkarM=+F~h0%kwhXwmEB2e?M3yNIM6bWVhr&2uk&l!lqJ$*7vQY+JZz{u3K}v|By;Ar%+f~=nBC9(oQatb{ks;N1O?fNqS9*yT<~QNfwfS&tXew}z@4~st*Ex5N znnSc|6D*(h43u6*P?cblIQJUYd`_+e(eM^2FFpKzZX_I z7Q%{@-FR-=WSU~8Vw#`Xwb`v^a+ zNyE-qVHDkOO<=(in4l)cuZj7KGhF}R=_x#_xjvEVu3ZJ?1@7>p`78RW`od}pY4)s_ zVq=;TI_dT?EuM`I3K=9aS6nS2Q zN)DE2G2jmaKQb~>`3IOFkf3I8rLrsA(Cr*@QtSmE-nkem+!2ZcefrR z+6<`B9xFJoW{_jh@&gyGujAe0ie-GBT?}IadLZ`q3hr>(&E{2X4{v-1-Z;OZ?Qbdi zn(v@4&R_8L_&?T1YN6SF=A?C|1{@D%G-$7vpz13_uh?jy_^UxI+_js$+n54YltCUD57hs@kQ9deM3ZHVPrd?;1IOW3svV3gDw7BmH~jpS2OHF)GEH1^K|7y0Rh{qQ16v{J zd7ww+cYK7fx_pY$j55zoJU=Qj_3YUOM5(^U>UQAxu!N zf`)fPFk9m__6(JQ!?e%j$TtU==5`k^3VJfH{98JHJQe0#3no8K`$8u_91j`{&`)Xt zj1MaS%Ll$t$&oCqeo+l45>&yM=7CNXA?M5T@$c5_`01z}Ob)${`xC(xVB$?~L>9C;CW5!%f72C-MCH4-A5+P%`n&2gw2x@oY(b3hId|X}t z0gZ_u!*b&)mu}z{!>ya%_#{q4cgZth^Kr3(w_%-;W7Uon^+6uyrD5h3CQIN#$_a%bM+hKcS^l zCCQiki^~mjIrDGvK!(j8=cT1X*!ovcFhI%1CvQ=Gn>$I0ssqtgFHvOLSIG7INi=^5 zgL_8+){gvxBBAMUJR{(v2WpH=FdKkJFP7hDg!WqLGP;G=DUQNY-b*bP- z6>;T;36R&&1^nYVShZIU?XJy5g`2eyy4DIk8_n>qSw4BtbZ4+)8Nt6;hfZ3R zoT~zjI5Wi^WY6p3wI9DB@O3giuyBW-sa$w#MyTqheBf@1K=G4pWY^7^Q1|fi$xo%U#$=F)QoZoC7HvKFZIJTmDuPPe0FJ%65K0Y|okAmDv-aeINayFf1nL8KJ zY=b}K`7}P3$U4Eo-G+F;#vWaGPSBT=gSDr9Xz{Ha?(~ia z%Ms4>Cfls0!mOhoQL$y1=o%%%d+YtwYs?u&ZI?oLg$qe#=XSI2{|Nu5DJN0f30#7G zK<05f*zru@v=7UO*ge7$nPiZYWghtJS>XP5D!0GU4x(qR#Qjp+LHTDDG@I!oyJ^RI z-a-i8%oy|%Iy~L{yPO*rh4@aev z&1-MwL(~>6*a4~Zq0l_^SBXYtwh;J#{0y_Z*5Rh|8Vp@Cmpiv88+?s!qO){AIbGGo znX=Fryc@*1d&c)Lu4*O;=A9xgS6*XF+YB(BV21o60es)-2~U$I(_E>CSa2c~5^NVy z%@xbRt;&a3?v}wz_j9mbV;E|r>#(n;mbzY;%&)b)j4~~UAtHJL-%P;}w7nA6Z@jmF z#Or;>GIJZ)91xC!k=?krx*x};8nV6FbZ*p=Z@9rO6Vy(wLuKwXzME<)F7k-N;}2Uo z0eYUO)9(oz?>xg_0?wf8I6{ciFccMEg1-+UIU}Y*aH#18?LLu)4HJjhJ?IcoQCy5i zV&_8dy7tWJ=D{dbl0#z_<}zRLHN4;KhoZuc(94g5ydQ;-E*b*oTEe08)_yQZZG}|^ zr5NdVgbx2z0*#gn&lB z4@!iLfbjzMdvc9Mzw{$CLwOpTwGEM%v5GL{76sX^xeyogiKFUe47Rx{_(tpju1~1M zOE1U+602ePigMC^DboLo)M13&lWZh5(lr``P`PeyZCmAA+Fu`2rL%g zf=HMMpF%aA$zv(Kwxid_@L|JOslFSEy|zK?Nk+dHUh7{uVe6Yv)2 zInDALBs-ork>ATU<315NJhmzqSFs+x#MDzL^=1W#9^Hf|&rZea#I;y7;V$F+U7?!J z8nj~Na*A3FSj@U?4HGg+<-t78m2}2?;l`5}YLXZ=d=siWj-cKrJ_t(>Q?p4PkT5L( zTY6qV;DbuiuwN1W#=3&=_eY@8{*?Eyz6!UWb-_9Oe$YN|i3Y{Lsg+VVS9Xg{ByWlwy>dQotDqD;_5Qazd{BTRd20T1BgtyCkJ`TckGB3oI^MbRT9DZVk znhJ^_QvHkiU!Dm86$6|#%OrR{T5?h^YKZUGkr8Uf>>{P0JE1pfXUK1c*5%| zDc`yq?>jH$y;f_!qwCx=4#C0!6()rIngGTdItZ!|eH9>3qU#GaMjIR8%( zp4gKP%0;X2Yo`I+J|u`|L{37)!erv~%?5wpp2KZDx&x)pBvY9^x2aLs12V5uihDI^ zCHeQJ9{#XB-6hWgdSrGrj!9Wz%B4Jz$91^VIs6}q5&{Xg_onvajz{BYmK*N{BPiyj%t#7)cDrM{6n9<-db^h3!QN0@ZLGwP z+4}>Y8O`Q5U0ugZd1%ecs5^q|tf%5kH8Y5)j3Ih6(y(;LWFq@%2*vcL@COg%WATS1 zXuQh$wwHIp6*qr8Cb@<4XP}X$o4UZ>aUqa?*arKGjlpbKfO)uTae<#ZMDre#68RsT zj+zLV$g)W}mVf9pS8)vJxekTrGVs@iRMd{yObXjK6Q_^MuusDXg>Fp83ZoqQH)<9A zAl%M+NLJAJvJs-Ue5U3m7hr?wD9k)bA6(ISu|J3`OoOXMPCQu& zA#TQ;9`L!GgUz+^;Axu=X98;Bx|9s4&fY|)-uOaaYvx1g3lVzg>i|mY9maoOl5oWY zCz7=x0?%#WLHVZ?cq2T4&mU(0Bg$9?MiYT}3iB=Q8Uk0-6%463Kj7gD^qHOnskhqD zCFLjhjorgx(KtxXe1f7;;qe1F*UU>Gf5 z-zCuY9?#h|kkSe@q7fbg89IqL+oT*N54<79D`vo^t$%TgvM$&Sf2Y4g=b-RaX;eRz zKw=i#z{-W;c$DvogZUqjvi#n!6)7ld6^BzbE<(h{c9NS^3FEYaN`F|4(@*!}y`gNB zlk3CgquGp$lLO@`*>Gu|GAd0G;wOZ@AvNjN91Ml+PN!_*!ZtQmnb?q-n1a&(VtpW{EjGmxEWlU3h(Z=P?KsalXt;B3bwsW3p;U3Cm0UH?o#m z{VvB(>%O9r#2^kfZ$n4^Fqr?2MS;g>&}73Sbe0N%opsuHro$2DTR*{dBDp9RRe-KC zd{93h1T`%GwcxA(nAq5WSVt8+5?7#it}%z>nKmM6KfrnkLokoujut1TeYKu<%vGT<8(Vw49z4NW>zp`G=wv49^jT?1?+pu8166XnIBgKy&_!bVz)P(g!PuN zdtwyCX>P=US!KBBhB|&dbOCfnn{eLABF?o_dTbu#2&lajMN8hn#eR05JDLimoJim` zW`RoAeVF5Sj@YkwkGsY8kmwov;jZle`Pq?>(GgFg+M21FF%aj^$&|BOje6Gp0QIuT zRAk?CbYyunQbV5pLub*& z7^3nPjvg`x8{LyU7nApJ@2n#v4A{cD7l|Y~bPQa&J4t$(I4xWsj2lm~tR|;%eMpcZ zSiEe+HEv39X+u0Xs~4cA<8`Q-6-jjuH-Kx3B*tC}B~>rWAk@qrGXK+tOTw0TLVk>_ zx4jSZ77$p$vh!ME~lE*Jw5@41_vOA zqeDA#TY1UcB%CpjhuedKNPGV|oM-@BB!tmD9 zIOq_Vi|3r0;N8eee7wL5NA36H>|Ivm!pZeG;FHAIfLp-BD3+QpIE+5&mejP0M-2S- z!B6!8ylhfK_Dcq?-#9Z6g#PnFn{|IkFY8~AM6vU)awo2M)CKLUkHRL?rL^=zJl%4s z0A~gG5Kj#&)SckVi9Df#>b;h5yT}4l4c|eB<8eHGx{+KRWU~>qbP)dK0-5t_v_gNi zaQOB|aYg$MH2E7unq|td^Icg2^`=;ahw@ zu6~*V7hGydM95>Z%EOMf^s2*#o^{wK8HLu)KXK_S#$oM_h1ex^;4`tD-T&8uiS$wW zB6uEXm%Jt)H?q!Nmn+Uqut1;kKw{AD0E;aTfZDoTkkz)NORF1j!M3k3xkMbsc7B7= zFX8BM>moWHSb)zi`9g7X4`pF_+mC9wbf2|eC@C%+Gh&jNQFX^w38K?0oKm&hMFjFJ24Xs}k_A-AxiA<-p77wxUbI z{5kSh(_rz(>(E$ag9>p;ymilBVZ}vXxGlr_J`WB+`FlUOU%MOEnMA{zX})-?QGmn- zY{q*Ev&e{7GrCk&pwOBmvZXnW3Lo>stqmibu79jw(iNQP!B4TOLlyFObm9%I`*1>NJ5f-s zM5%IL5`D)W@A`Gpa~I6PO*)r2C2fXn7GtPAzYLE(e}bEj?*fhJQ5^qZ193C9gUgXR z5~T11zXqR1bC%_uYZ#iTZ7~MFC;h~GW0jbnz6=g*EkMeB0TG-Av<|om9aisn(RO7p zTOyP7RpJ;cMI5T!`arYyGc3-V#rmFaup-h59St6^E^z}5%>INYm5qo}Ry97opN^jG zPVoGS2pGOL!k_=7(e+Y?minu8q~PFWvM8#UEIx1pY!+lev}HFO&VP#$LD`sb?kTo+ zi-GT&TR0)im_FW8iyr55V1Ua!z<0{md%Y|sJ50Z_ytyQl=vxwHE}H{-2y!KpzTm6_ zHTc?)wcRJI=>oH8t4F982GtywJDy3Rukuh9^mVAUg0CDsFCt!l7|!yY&J_BJQ!X z`4q^tw?pwG*C4A>2Irqah?%$o#Eyz^pX%O$eKJxw{xcF>*ItAFZWl_{-qbY4JY$tWt4eG_L!klYdPb4Rzs^~ z4eG0~9`Q04G9VvK+t*6K=FP1vFW(27kMePMgglyT&x0np8Mx}dJlv_)MNdB551dEC zoKrEQG<&lRw9kBtwf++5>hl)kiq2=w-Tw*gW=7*03m4GLbb!qbiWubc2ZGjnLQ7>I zwx|V>t1AS#XAUV-4R&8W$N2|L*7w9_>%Xw$umQR}n+kWYsnfetPG(e$RpZ6nJ}Tng zhD6#A92SLxdvhMH`d*CghSfBClOFyF=mGad=ZNlm{(7^@4KULq5^gaza&Mv^J}i5M zyAnOH{(e2=441&p-(G-swnJzH>(2GJQ`5#woU&U2S9b`3Q2r;lHnIh-W*#Q1+rB`~ zfHpqZ+kx|zN<-e>Obk@Whw(|a=)0Qra+8bUp@RhEi!fg8Ej+N$PIHlNKm*qLI9iUwphouT*l`(TjDFItr8!wZlLLyfzOu|jMY%r5%L zc{uM4m1vg6vYl>Z_!Pj=k#J1(&VuF_CFHj8ICl70&@ViIOK}IG{ZT52u1Tg3s#4J1 zlDXFO!(r6}ecakH7mm!zfUCW)$eMQsnRc5+p|9&EDLPVyM}JY6_I(6Wy0XXu(Nl0; zFdUwmxDyc#=2d+^Mz;k@(@ie9Xz2C~vW~HgsbmPcy&HqNbCNjg)9(zi(w7tuH-YG+ zHxOk03@*=t zj8UOQMr4b4I4zpXLvx9{a75k!_q}lh@gIz<9eR;sk|I7ysMI=nzz@F77sRWF{o(9= z5Ax{72rh_DCc~@7AR;!EN=v0tf!i}U2~}^<&8QzF3~cEPW?H*5-48Nja$v%nAJFhf z6y2o1;eYfe*|t21{pS2}>!f99m9i9tRVx{1)EzFh2N98+R8088fyxW&a9ceLKq8%v zw+V0y)=tH+BzyGz9zvo5C9&9{AMZV?0CT%RJQ3f6SuNY4a8)lz&G?F`Cs@AlF%R#* zw4xUW>+!&&5?r_OHRq6h1}};2O(m5lbL6G^Vd3%slrjiKQ>j1XY{w9(f9j7Ffy1yw z{4MS1y+O_?*x()ED6PxQY`y*?fZgnDWBa3>xSZ?;o3vE?utS{M->|{I-JX#1AcXeM z&?Ao5c5(_CyY=ycL)b?x(=987@WiTA^5ec8xK(GspIe16dG29&f6Imju#ARrhz)ey zm4HvjerM{w*24-Cw4BOwmq8tC3!1J+O9QKaDzE5tj;?yfz9I=Bq7Dj?1 z&k^=4dx{=s7>nnGwU$TWE4-9_he$1)07cSaxV$+L-`&0skpbSg<46?Q>t_hBCXJ!g z@E9b!jL~R*KRxEE19kcVcv^zxEAsX6T0{vv{WA!+d~D!P^asYey@2D=p3wHo8}iS0 zLdt)JFfOKz9+8&#IK2n*6Vu76(pPvch6^WN*x{)u9yC~@l~n&Xi#zq_Tas724L|5#E>7dl^Z2HF2_lmHi2Q~X*g)Z^1sr|tt#XS1AJ+ejIAXH zr@jPIlLh+IU!sYq#(U=UzGjw&=%P ze4oNA>0HLU<0l6YHOqc@GIW8Od>AHaZ_IGU*;UY8-ix0WOu!`@b2#h$#pv3-VptgS z8`fNDgDqQgpl7E9sL!+D$uPcgcvcE_$kn4`;T!t$);m(tDM%xA{LyT-Dh@TLVs&Q~ z(b2GjwF2I-<(MUH-P4OdPIB3Zob~m;mtnNj2e=lM2n7Z8bZ7HhTPB(8k#n%VDol6uo7{1vvB%_AMR5+S^6shA1CqJWIeAo+99> z`igbk2GM$o3O#r68@S!or-2!t@U;?;?&4Qa^KKVRabS1&>yLn(;xMjpG=aur(zq`3 zJ|-0QcA6|sn3&wae+&_?1d388D@CB#s z?n1Kx2`pIq4a^5*AjWn8=GExHv+3ucs4^I%`UM$pTOOs@dhD_HCQNL701MZrz&By$ zdd*Ydbll<={(#rF zPRGBC573L!EARt7pON4+5f8WYK*!&Yc*DP$zBG!$Ki*BSs__@SxQ!2g-Z8)4CZeUc zMHwfm>5#`8tza@5;FJlk;j~c+oE-6m;9rtpch??!j80~#4v#~Z-Y(9~Nqk=6H+#Au z)Cr=Jn&`jYO>|9WCn%g-14q0A*gjnkKRAqG&DIh~$bXh0Rk;`2*D|ir57sG*{s>Qx zCJ=}HN3bGd28au7f&PFK^z_O$IJ+!_NQrh(b=ywzF<}l_=~akdqvJqn(4M!rVh8>e z{SLEtI>Oqx7j$B-E6%x+4Eq|xV7Y?}N;iIlLf=?iY%rVr7ycDLPI-&`Y(H$#aU`b) zM9IZYgY|;*!a+6P8Do~zk+OZ4VCB13;H9^sF=0J2D``jzatD_xYx>|~9T}e^*(95sU=iX)v92W$SiIZr2;y?7B69X|uU(x6x(*5l(;74Q` zs*En6YctL9@R0Ai^JQ23W&M=oXzc?V$z;K(2pDh=>!*wR$Va5I}mnAE8tD~ z3tjVMa0zpHF5R685;FtveB}=ekN*tTE^;t>se#0|Nuf(vCEgr!!}Kx^_#FNQ2gL2k z_GS&7p4<%gOWdJO)q@JJSH#55b4|Z z<}k-n+Y8=n^3c6>glxqal<_;moB7rarmP)9^@o{gzQdBX8Oq_Q(cjSUMG4buBk-?+ zGE}K}LZ<2zcwXlXd;B}#Sy&b^SnLe}S})<5z9YW;v=y`HnZq;2DA=GA zNmgd>qq?C<_&v;v^Qyv-6Qxv0-z~I+$N&0ayx$Y|S&Q-NJUU>`>KIu3?Gt3ywSsZd zdnntahUdixv3<5Dgh%}(g)Q!Ih`9uYPSn7{UMre7c^u;x3i7WteFbIbt?06~0dL?b zJfP`-qnc?D`Ti$<@tX}=b&+(_$J1EG7rz^TcNs65{=W=Eb zCAUhkV&YxsyVOQ+Z4bc>_p8CTcQa|KYRBY20ltsRLu#9xiJ5UP&d(-cm!Tm8_{QbC&o?>gdUD3bDF=!@RZdMyfT&;nRv6D;2n&Z zD!~24H6fD@o`w6JabvK2Fw`Z|T>}<@-uLBpI0yNgSgy#QxpsV*M6z}$d z;^cm+-C~aa9T}n7;_VPqw}X~QXA+-*3H){5-sIlXAehg(#V1(a#haf;<(R{epFN5t z3%23LSIiMUVG~#hNx_AG&S1gVIrp^fNs;vjckW#ELRkOkJOZ3oE{I7TX}w=nOcX)0!wVza8}7-(k;3(0l36fA-rF2~>&@}ST#AEOh(!2MY=C^Xwc zWuZ8FSl+@1N&i9Hv4f~lFwUuLzXu{F&iL)*BJ3JXgK1`NxZUsqI&O5wNht#)G+`P3 zx~s?7_mgnSa>k~1&cI8LS>LTa8OncbBzHu!VR}R)^sI8D>d#pg?4b~URYNrF$vIE= zmG7f>67#`hngCa0sTk@W+z403azUy158CpxF}8d&>yCZFXLm+HP-g69UjJ8FF|{0Ln83)HoiI~m}zwO7Hn^2 zJfz8Ia9i>k$Uf7J^0(}8(lX|fcFqRl+oAMe&P4u3&6BwD;wZ<w4^@i<`e{c(~oga>8>f_K+mYo->hwu%{Ca-(^j`O#Q&1THv;K!W> zaCrZ25MKEL78f?~Jm2_`R1Aj7aC7GW$YrCz>#!xZ3Ksd7f>xR)e2V@|Z?oCZ{3*ta z`P>5kMGIo7@l_nm@I+w^0zaE;aG`MoZ0$&d%oUd~QC<bD3XpK&1N{_BCq&3i$6vK7u;&UzkWq2Sm)09D4#L?`7n#O!~B zuWRqZ6~QN@)vyV|EPkO{n;0+QtuX)e+AKUXXD*&)oDqdMIZTVUp^lAp82yGv5BTkZ z$Y~0|Kw%iVkmDhLRwwd4I^6^YE@o+D`Y;VHrW!Eq`@ht8) z90D1!6@Z#bDA{cYT1OIa^DZ?qwp|k{1ii6fg(T;$^)I{`;0_%(1Xw3riqgR((o&!R zW2@rHXBSuW3poHY&CH46_$ZydK1l23=nCko7{()OCPC1&W0*Yf9%imN4IX8g&r^z+J)rb)qB-h3Bl5`>qda^-Ain&_T-_qw5wm4vJi&k%4vG!3L>9*>^t9_?n z=3pI|JP5?krujIy^%pGJ?2jcs57V(7GcYpB0#r>rG5(V~InKH*IhjvbuR#xnQkv*Y z-5D64q>e%3+PK2Ff%${QK;|b86CW2r92XYB^)p)U^yaw9lL^3^lsWil{(h8TBB=@j%& zSBB{dDR4d^811Kokkdsi&|0?w-p_ppCfq!{Ar%H@OX6vdQZx#Z0(|ktpJu12;ij+` zaHMF6lP8i5`_2A?@lXvSvOEG;u?&PL|1z)moh2F9Ov0H#6>u+*2X_j+q0-|y8YqO( zI}Z%t!=W0|vb7vNB648#`3)kki>QC|IS5)r)7CaQUi*%Bu*13tP4!kmrRb+562D>mFrs1o6ZCyo0780f?cO5FH&*Y&$5qFnS5E;89RHA}g#je@KQ~m2+ijLF)Gho6grD$9?4o=@T8X?GYe-AGqB|AfxqVtD%7f;rQf z%l=I$Ox=C~{SB&Nxl=zrT+RCK&Y!{SL;-p7C>U?u6eo3BzOX;U7V4LMKySg1^ya*2 zSYbVl|5GpnPtRu0+yWom_QM`kEo*33=Ppj}1}}K&Z%IDNs$kDzYvyUwfGmYrxTf*| zpRkNszZoBI%xZ@TCmo>T%3s5xcK$Ca0e~M=9fE>~}5$vzu|8wwzCl zgW?CRLqUwSHx8Yjc42=*IfQAc;{CJHoazy4a#qI;7U!nH4ZD1p5M>Kprq#f^WPvMe zGf12Nd)Rcn6y{iz((Gf_r0};it{zNbY#KgHU_GGJs0a{bGnsR-KViVxm)$FEKo>do zeXY&}2h9@9*!GnUm$_r*kGB}OrH8Ei8H#BuW)gq-ESPdo6)i92f$Ys2P}_NmtXb&* z>FH}x&>|RW3<<5I$En(xd2p?jJx6<7G4dOqT9?EV@w25U!C!!m>M7J#!<8Jqa2?)Q z=fVSdL%96j3Q{g_hazV`I``9kYHz!gl=$4j?64yIC~}6L`|<#`soTQ|MJ}w&X@D(d zw)E^Kic)6ns3;uC)9YK01$PzMJ)%A2l-`3O@l5)M<#$Gx$wI!r5eQs*%KS=WDVwkz30gDDa(a~C-*hmQQ|Bh;*(Yg<4vRoEV2+u^n%mBQn zCeOKKxD2v1ZsS(97<@md22XDep{axg89ZSI0s|F1J%LCpFy-T5StUk%PsTYPJ7K?( zHzYnx0QY&f;Ywd0*?6IwYOKg5HL^;Ml9Z@FAH`>FmrGcvh$i6C1w3x*c_xJ7fyw>5dp` zJdRU^tBA{SQ|JtsPRA!bX=eR&)Rgvw#jlO9>5>cZJNq+la2uvOz2EWj%{vI%R0@}O zUqqfuVKB|=1H{U{hX$GFu=Cp?94*O$f+!;nPrx+t&fN~`wAD~@Yc4c~zrw)*FW6dp zj5^ruMDe*D@J4Jq1j#3*){_EQuYH_y3fSE|o^m*4Cy2?Ocywvq%N^`JOJuhd;)grw z=p)~Tf^vq~$T|y$72a@v{!1sVHyTO7$U{7sqmIh&?^4GYM{HhG0;1Dj({6D~5~0tS z9v%-sV@)IuMn0s9fBZmmObiyT-bfsSJz4LGJ4d8V9vgI|Fuu~(i9gv(0Ng>am_|OoYyd$zKrjKqyIHiPM$w|)<(gj#~Mup z#X)yJprvFgZnzbXifes2U2b!s!BGw_PVB<@q=5U~Hy^$VzQd64MzUf{0G3N9LnmJm zuH1TtG{50j;`mtMPme6jY04!jS8Gv0GnQz&hoGtaBI>*$0k-Sh#e`RFP#t(2!`#{_ zb2Q=#As6gY=U4hMq(e5fq+wc-EH->g0R5xPJ7stX1%5bT$+k}LwIAZ#zGwvx^-Ey) zW~LjYD! zg1|D_i%4^_y$6(ksV0~VbzzbkKg0^}#j7PLXf?7A zSI~AMw^0(U#By=fxe^R?e9T}BcUWiRNvv(pLDg$*_~l(J$ZJkjx}d=Ybg2PD-7fs_ z#u_c2H$ucHMgPikpfx2Haz7=3wpJ8M$b40lo8OC~@!fDC#tq~ayr#&7p9s7{_8V2(MR(6T5)ZIK}1}=7jW8-V7NO z8n^=6-umN|H`l3}ydBOz!1VFAnXtLg3PT`|ep<2~;tKRIZi*#P>3q2gzO##l_T@9`*j36TNB8yv+O-7Urg<%Pzb*0$W8qGoIdoB#mg7g6L9Av zZ$jIlOZx~e84-ls2c9V4E}Zso=Sk#|lZCln*-(*?&$-8CvuWNdy6g0`v@7xK*->qz z>K3hdOU@YijQipKJbqA4{D$)c6F_xF7wF^^L480mCa;&p7l-)qjfpE~RDCycwDjQH zKXr`%oQOfQOsH5~1J1Uo$DZZs_~o7n z%gLC17O@$pio(T-I3!gLMyKC`^}IOzb)ycJZTm*QJz(7q)d{%CF%EWV^lUs!y$*E`)+`pr7u^ZNI zWK5NVR`i%i16A9t2!m#oXz+^t4b$9kuIeaR_k_cJXfFcAQFX-Vj4E7T8x3inHnE-~ z{xs8S9dcE$4%fYNr4oHlz|P1Ar>hlETSHO&Q8yJW%|6rVGecpQRURxAuu#muH$v}Q z&u4z$UvQ$|9jCtchHmRR@C*n>7mo^f%xleAd6XZXuZqXb4py8dPY0aeyC3A5wIIOW zmwVAF78k~;QVoYrkZ;?F{L^Kr{#YqU-5jH~XV2iR9jsGy-2?h9Nssd^hKsK_-@v`O z9sTnK;IvLF{ww{=$sC?Q=`|r(sKS#L{QD#9IGsmi8d>*3q&@8DPyu5NAIN%{mol0E z3m39ntnB68SpD`Xwz$3~GXwE{d$U2Ku#8_;Rx$cwVcb*$I{O+JRqW*NaWqXFRAl zZQujQo_fG^XEl7Z?i-w3zm-!QzaGz(hogtLGa2YTMGc+~VxG|s+&OATBbHU-;O|IW zR&$IfSw*AKpKcg%eF8&l|E`&G6R$0g!^F3djLonfcRrq;wz}Gzp6;$7%k-SFDQW-) z*Gpk3+fA9RWL!e81agl3J>PE?!t0QWkT~lXI#XBZ>no-wn9tT*KMvHd>;)CRVy=zF zQ|!7t!o50fjHf3&$iD<#E|2plXVwA_;-&Ky6<5y$XP%{0fd4i6>!hQeLk5IA@PT5B zE>yd70@DPOQ7B*&Xzi(h=PGLW{(cZX_sr&=t-Xb>muy5?*EiUD@D}`Bs*lGt`e+fB zqkQrK%suW8<)4p|xYT>_TD6QccFjhc1wZhOd?>CxA(*Bd)QfZGS)#GLH!RuJ3d)b% z=n1neIJne<#&-Ln!hu{AvMk1Z0)b>+$0pddl7o7eOz5<+aB#0Jp#5gkly)p+UiQ#C z^kc0hoHgq~lNAC=p^n8Ms5D7(`XbRMXB@O*8lmY*EqW=W!7#e-__HdP^VX%4p1x`V zyyI3lZkJ1Sp0wiV#-kutkqFz`dEp^R0kxZ=WQ)vi+#_KN5xT6mV7Q9qC8k5Wg%l`H zs&lIqUeSrNnHXx(0JEK~vF&IycUk90*gO&lL3_?{pOz-0>$e|psdf}2mbvXvF-Szk zNew93@DKU>`SJb48Bja0nO^poi<}r+dVAJdTv4_NX5M&;mhKDjjF}ED`jie65sw+0 z?+=>X^1`;h6Wk*2k2qIM9-J-}psD^K-RPV}KZb_E%EtBJHgN=_OPPQ6XEAbJvoUB) z7PnhmL6SL1HyxRdpHjgX`NE@mYiO~rpqyG0WbDbo1IX6Ok{Znk6=!7?c z%gF<^PB`in1Z%CTL90R@{C4bNTuV8c!SeK#ORK^8dJe9g7mm4Ho-~CDJE)m!jQzDU z@Z<5%G*PP#ZMY4@FyD=|M%mM->@Mz%QA_9#D#3x1j#S*d0bG{-!m9%g^ylL|Jl^#l z?Hm7)`Zf`e;qyQni!jn8pb4oDKak^hZ&HVO(J24yF2=RRks=fYj^#0yL#l-9K@^QV zZesZDsra$X4btAm6EhLZ)c6^0m|8goUUj8#Fz6?)ZZ*fs2z#9D{Ecfb-N)4z0&z;$ z15RXLBU-*WhkL@~(DvSC;;}dvX5Wy*iE;y!Ru>2e2c$r1PT8$&n)?a|4 zvz@@)R2FBv?*+q>a@=+DB$}C9qM67f_SixHxv2$PGqP=0TAub#K; z*i&+!>7wgCvh2eQ9@O+NCOoWX#a@z^?Bv^na_YtOiIpf2Z9k^R3}8vwV|@9~9;XRi zgyn2*b`M>H5;~sv%(W7Wv@=F`(i*UUuPPgF-4}yX14VhXXJ; z?GWX>8-^)v$sFy8^El4(1)MYw940&mQf?uOZrf5vP65!7>QJ~?V#yQA0Gk?;msqNt53r+MXF zs1-=U6oXh)&)q^zTQs3|#E~rRd=6QEhiP#s54`(oOLEeS(9u%@%VXPM!}Lnn`Jxu@ z3tr@i@9$xIofmMcasfRuXoDIjH$wgTjTm7-!1v-5V%8VNHD>w82{wCAa4fLaqZXT; z5NFh+<8PiOoK|-gPk()d9W$cw(Y*`YtW@5#hJZrUIorYMTssK0W6!Yrh5<PlmyB{JRKEwF2`RLqS3-w<{ zN#nh6$mL=A(n#xccow-Ahbw~dOQ8-< zwOkCEBag7Gmj{AhbrVk!TX33t2&a_}lNpb{VZh1;Sig4~c+7mScr79vCZ@iDbSH6c z(Dl>c%4OrsIre$@EQk5Uz39bfMe5wciA&ZP-kvaKoy7()S#Sx%#uTXq+XZIL*n;A1 z2e?}O&B#~e4Bo#M;JcHoXS;0${&SrNW~* zf!^Xs$_cLkBYOw#^Y_kBd_WmnWBAeNEqTGZrDA-m8A|b8dtH81-65-g`JwnVZp3}`!{m9m}im-g8 zT z7;7S6rtt$Zsx+w0W;GgIn}R#DpP}vTF*MjL1twPnVEuQ-5%<-GOy)`Wu*?YsZy4iU z{Wes1GmI}H`e4QAIHoOIjKkvpfu{*SeLJ2ERRTvKO(Y4Q9qlC^p{AI!B$)JVtAN1T ztK3;<98o8?2uxhv$p-6p#3V>aY1vRZV>7Wn+!<9ccXlf&zI6mUWO-3n(;m^$mLvIW zH5m8Wq!yj-C-#bx5WP*AgoHMuZHWfuzg|QRmX{s5dRPh z!Mf(#k1lwG*FWuo_lN($jr5BsI+_ao@oMOJ&jjx@WuV`O^Z2yY1}#>&qVo?gIGGiM zW*d4*J{LGT?y2=9lj3v>=%kFq@@KJXQC>>UUiHQlSGnT}-j**c6K9+1& zS_%uAY@kx@Etb9e1I`1ZDEKZ5YvxAMdlRRz^|C)VHr0#fhm50;+jda9#DSejIh?MB z7jWt~AGG}X3J(sH;Fm)?Ic3`Q@TtBB*AE=Q0^2gOdeIg5{6z$}^8AI;6;fy-xdU}X zLrC5tZ&==Rmoz{8go*}Zq+(4dIrw2FUhen=hRgo3pX-R)y>Y0QWBoFmPuvwXm8tLa zzd?hWG^qqT6kZ^Of^8LG(qByVyM6!<%|M|R3&sn1!|pYH(EN^h1;qc7Ukjh0xSS>q zY)m2Tzuc&tIpgtL_p#lsCv9Th>Bf`M0R8e1_?oUrVVRGzS7<8%oFs$n}K@%q0W^AdT{z% z@UTl{y*aG+-FPc)sHw(}-O?z~E|^xixfn#(#o@{G-(aXH7x&%yM{+J?;jy{jxj&@B zF{;QG7x=#=hJ(zfyt)O~yQC8_DP;4r9b9}^i!xKZ==0slic_Xm;-!N9plVZxqwKqQ zJ46TzTUXO#BW;j#;W-qz{i9OJ39!ld9+Vm=g7$_i+})l_MJBY-a(6lF0e9f`PfilK z$MK4VO)V_P`5DIy9m&gyUpTR@n0svz+rgjMi1eHz2z#ADE8#b=;lxxtb|4*NW5$Tt znoOcB4Egx$-jgYvpGgNKHoB&2zvtc{gaYorZ8+A-!AF ziyE_^;l5r|#%Qp{>phvYcu5xb#&+h1zHbO>Ltmh+fN>6{+`;a+6CC&B5v&uS8BP~} zgRVy{xMj+F3=wMq;~B|V#4;pKm!_lmmhE_0p%Y(=&fp%&X$Q&IGokQdA8DIa0sBhh zIpam+m?Kq%GbK`SuT48?kq8C>{Rwc9pk!O(e%MqR%-CN|=({Wv&rE$vW*q8Aso`l# zzB4WmyF+S(dztMQ6{9e2J^OAyP=~u)mx1<^DhT0Y`RotPFsgZwEDV^Irqr5@d~6OV zUaZeLTW^5;dBJ${sVseUE$a&+&42 zxG)MV)NRSsg$wceR5K_l;=_zD2f*!hIz({ha$Wl>uZ83}Me>b2|H98-mmgnALX?UM~HKosXh81w!rcyl|S* z+ny|X(rOs9?l+>x*a#WOp8?Cv8ldU+K78gE#cc|B4ReEsz~#3sdNN;XK)yHry!jT= zJ4?afR{};}dPs)9Pa@BY=kUAp89cg{L=>`Ga9-LdImWw=yxwX-AALTE{?oq0amiDt zd(Rn~`3<1LEd_jcl)!9`9Im*_o3{F;8#!2QfIg=;;x73hEXrv|k*pXJP+1O(YeJxJ ze{X8-+z8mQ=mkAge4S_=T#IK~x1*EyW2$l>1y|Okz$SM`x?9;EEsZi!Uhx^RGk62v zlxo>7(i~RL+{x-emSebC6{Kvri+2Q?>C~rdz+LttI_jR{Ou2u81To~}deanm6+vN3 zAP?I^X5rOvKW^W9KfIvi2D0WCQ&nfL=lbPNAw;naR30%O)I}bp1BL94d4^?wESw;5 z^AqITcpW}XmSIW>>kSKgiRHiUfm5F*Dw&RgG#!WA-q-Pxv?-(+l!91JBnbRC#!+7- zl;(M=8^f+l;<3;^h_*_{>N!JjW>YqtEBk}rbOcaNZ69oSW6z0odj)#ur=-o7H=>&w z!a!6m60?U+kw3*D=&0#_ujeK)9)Sz0{^7y$AHA?Ewt+54q;!hb0KbEFpP>fDh#?Yn7eCP}AV^}E5tVuJzs8KUM-y#pW zy-e?TCIu1E2%ni&CT+sOD~924$2qAH+kfCG%?AAUf9}!DQIInl zCMG$(bZNR1DD2TEe6Rh$)S3CC^}b_Nf(67adP@(eTSBMieo)4Gv^$?dYpPwir5}3G zXp1L)seH`&?dS)Yl`pWOX9~zDmBZTub4gFK9SW^K0rPnV@s$MYj(ebjjn)s?u6{N; ziYqdW>K)vhwG<}B?=l{}16MU84}bDf?v%LiT(v8=NXXu99Bui>IdLNo)q^{jH|-t_ z4Yk6h+y8KNaRALO-VJf)TsT=Cf?f?qpgR7Ls@?mIQ#9^_cCRO#-p#zu_f<*3i*^k9 zWCN|{+IaW;BxIkSiFZ#r;<+n(aQd~|WZdINQt1Lc)X6H;gCF&kluw3Q2kl#?zp3ha5uY_4-I%ibr z5DuzM(90&$)a)vkb)PPWc?a1}?NdArN2OAKJeCx} zRb?Dk!NfW|E7nbF+k`p7AZdb{D3T_MDs*o!w^H=y>9bQ-+P z9$L(tA$V2_k@zu4ek_^;?}zW=HDAWv-zI>UWzyl0R{g273i+p#Cdi1lEBpd-|t|@n+ny)r7I%mUz(oH^Fc*^E#Mpj;H5Ut?<9P z$<$+7pE!r?SdVLtC$9W$z&)QGPV~2xb9gHqpvparq|1$y2Zgq9Ev*RDD|ul0El+T} z=?-fTPKRy3LospjDlEz4hec+!7-e@C&x(YiU-lf7U^)uVsZmmvoI#obc%Z+k7`5(e zqjvfoTycLPvEy_Rsr!3Ls-p}1ySo^6B>TaU&Iq{9U4{d*h86jYoFMh)5ayhT;O<-X zoz~qO#qR7&pc5@jM!NcNNy~4plEXzb__G_TUJl@L)k!!mbcXCW)&ci*t>|N?5_0~? zF-Va1!jl@l5Sz0Dre6OIrcE`eXHwG8PN@=vU&sS@u^%jS+($+l?%`4mLpl_A6=7`w zblq{In(T}*J>0;_Z{p`JOjHMBJ3m@-d?PpSR2_M^Di}st2CZ1{EfkLexfIKnCbsh< z#HKbuQb#6uKInudwu{s(AHuD7J5XG!YZ@k6#mt)%4$n9#g!qpLTxY@ld2wMv^MtTG zTQK&XXWX;63C?9Mvz?61KF#~Ao&b@F9Dhup=%uyy818p3aiIw$loa)1}> z0;{Q#dIN?mIt@KPc;RYcD&y03Vb7f9jCaF)s2xA?TK+WJ*P99$nS_fve?c|IDh|C) z!c!qR@a3NsOx*B--umOjB1jOTqZ+XJ;x%w-c?x@Cld*6?0tzfzi*4)op!h}^nq9w` zUMdg9A9=^={DL(4U#kiv^r%ur@)$4rN5O11OE`7AV9PW|LNhjyBLVLqLh31SH%Z|a zIZZej-9cuo2!pW$H}Q?oA8c8E~kKH!+_DvX;W z1??XuaK&DJ6q(QZ-?MU1=43F*T$m0!%flH8X7{Ga7ojNdpHM+auPFIc+%>eDrunOM-1C_4Cw1}xbk}e zOcri}#^Dbb9k_z(yq+Za7lN@Qkq^aq<3ViO1bxG`1BvEkAP{kt?o-tvf1=-_+vzeq zy=0W~h&6%vwrSX~^cH9^ZiJe3EakkHVYzcr?vYpf=s9WT6HZ6E^IIeyHMvJ)-$lZ2 z#eKAK-w@#+Z9?UyYR-)QOpu)FfR28(7`|wn^2M&hH%8~^OQ}-)^~(qH_xEF%iyO;k zXTU(TH57}lOD#W{32Dc5$y9BArrGZY?MP)@YwtsBKL>%4ZXVH=oQAsT9gub5Em_lb z5sKr)y z$p5fbcP8i+WMYbM7!2w7vmNm`3O_JF3Df%|M?McbIF&dM|B8O{Y{%?vL);P>b|=q! z3{4ODxGOJLz{R6?X~rvOR9YNPUk}9)L)&xMs4u`eMm}NstsoL8A&z31m0-}?j9Z@= zaHRYB(zwk_@%mSBGV`Ysw!B*gv(i7~%Iuf0QbrNpJ3S&DXQQC%^#C64jl#e$Q{cf~ zQBtJi!gTs7JQc7D1J}DldA}vu!@^z%mKy<=F%eD57Qnna`B1mY5*~I{&}GZ`;BwAq z;ENeSef{n5i~k;-ycvZxw|Bzq7$f#9&q43+%xh)L%i#@a#Bgm7xb1r%@9Oqq#f_QN zQ(1+cbbJY?bGmWqP1YNI`w`0NXTq3nBIyh@XRP!Vu-%}sefElOV!dcP#?9-&OHw5m zycJ>R@G!9z?j~{h-V$0y~lC;PzkwIF)En$Zb~h9KYs~{;fbW(X9VLf zDC1%uzBFmCF2ohyWLwG#@btb4LJkqQUg<6O+yzm%aglWxa)$AXkp-IzUxM)=o;0JA zVrl;=1%u?9YY@AAI`gGcaQK-Tc)e&=#mb z!gfA|Q0hwZ4qM}YJjm5>y8>3fGvMJ(KQ?P@h8x}PEECf}o~>)dDBgHXf)HG-aTS&g zAH-`(s;o=#BXME8#vRR9sj;mW4gbTq$rfMml9?Pw{L&J1>rjRKBOVak^bD-_)X)ur z9-uOf<&VZ|KxN@!B4s;9+WWb{E1x92ZCcTRqVQE?gX8j1F^{>yMuB-=c{(FLE z>u1uBCqJbIK5xgbjD3+e-3f$`cZ1=BA!>bZ59jkhKjG}Dfn3>@^vJSSY?`=+!hgPE zjNn`<*8iY&euB#h-*H~ z4NbsXbKZjg`(o1UQ$yPJ?1QBvpYVZYENA0OdzvfekH)tV_zqg*8t0$n#nBpiVa*5F zEqwswizjfC(H-DDT?G#Fnz3>X+cUpP2TPvgSX#ySQN#h8m7^eCqy;+u$#dnSST^8E z8V!FbkmfrXgqzRrgNV68X?G?%sKJbE+)?%#yT6q{;@k|_mFb2}k3V8YTLx+ksbYe! zVA`2)ro<|bp!^rc+TBn`bG7HdU56xetBl3Hu0wdAW~0*^eXjV+Bv4;I4}_#L;n{pQ z%v}(V?YpAULyHd_q?9?b=><5){3L9%F@@;`yO3W!8jdg>#A=fj797o_S9P=C4I8PtSl5vjo#JhepuH?Y0ydDAy| z^g|kCnZ}~FcNI0^wI}ocV?62REcmp;4Fj88(6j0`<3F`Q`mA4|dY}n{RSwd`dS48$ z^;X>3!wnN z^K=fUP~|DLl!?Hv@3*6Q>PoQS_~F%nA0!SPQSZVl;%*rT;k#eJ95FtnsZV5Zy6kO^ z^`sH1yX_?_l((X5%@3I2R-bFEH&PW}duV)NxYifdD8)WjHB1F}lTLQyf5Fk5(+c^^ z)yTP-B(+PqfU3OyNGH!Pr>Y+*nlB%PSE*kiBEe7J$4xFg7fjezu&R?R|-m|eI>&N9`M~&jqL|#akFe+p|J4_ z7$^xq*OW21Bsv`gB4faMd?83K9|LS|#Fe6tVb{w&@YiTNNb4(Lknus}XM5Kw?Oxzj z-9jJNufjY0FLCf(D}Hr6fk#xHLrH5TX=xi^d90;)cd0nNof-mEJ`b{W_(^E!T3q(< zt77<%T6h916Fm}0jC8MH8jmWz+$4Y{Le`j^oQrNb>};OYBrWrL$hU|w*ng@CP4lMU zM3g$b^^)YcRemIT#(RL8^nmEw0&Exg3Wmku(3rOd#O(WM9lOK-3>L?4gLU-2U=s?e z$)JwLIh=HJ0Ij)CG0=Me0$atDVqPNoE$9s!ewI+(f>B6F{11L}o!{%Mv%~ZxQ8d`kNpnNu_g^%7go_z z*Zn|ro;KT~+R=tf>8VMTo1yJN1@oOeA^D$Ag4xuwsWmpKWcPpBbj!3;Sa1E1jLhXH zM|BV3{wq^3+ZRD^r*N*W8MGDcIKkfaIPXde_uZrj=**Y|qlh=K>3$QZUwsD( zv(71LqiPy((4RJWYeK>)Il7HEhxLW;quz6lVUMK@tUGd*M&J1ZCF+SBo0~Z(lKBA* zA``)_FOn9?PD7PGSMcDQ4HY%@u+Y#0T*8K_bP=zTM5r$c7JS4pwU5YsyqWwmY@sIR zjR+xH@K(kM6KfRVZO%y`(SB$nF+<7yg$FKJ_7nugdMSU;IQ@O!8GID}aMpXIK#`_1 zjou{yy6;!O$+#5k>AeNNE7+O-=mg%qvlV48)?@ZZH~iwh9@KAX;5vl_Jffk2o6mhh z^ZJkAw(T<-UH$?q9tPlX#xxR@?%OfLr38)~BL3QP zU@qy0Dv}O#&#<7e zPhe9{6|D*4Q#z?` z@(|fES;{yYl%8qbO~dTFsK(Dy=C3G$H9HlcF}MaC<6hFPTdOd~tOk|^Il?dIYkC#= z6BHSvM0|rfMysu&!NQsNbHh74dPN6JVgsRf4a-B$H^(WH`*HDwS=8xB931eugxy3n<0$c;GyCrXJa{4u$M5;O!No(DSz(F67?i%HKbNHnJVGLwHKs&gbzo$b)sZ z>jmSq$hi>my$3W$uVLu?K#1Mz08@4M(WBxgVNsneNcn2ukN-@uPx(9~rIez~or~~y z$uM@B_&~^z3-TUl2f6VUXx`!sD-&zM#IFsy*EYkC_%(Q^st}to3-$gmzJ!1>hTm<5 z=oSH37%GOQTYi(EE!#ms=sxjPsiR(sHQZ#+4m_=O7_v!!N60)w!3g{b5?ACu~*jhlfiyfC*!JubV@0ZNen(EqB5-gA-KDk~eMSc{C_)?uXI- zHBkL}HfRaVL%v~I($qTv1#P1AUAq}7L}r1pnHQc*yoTQukAkQL>t=aA3}UO(FfVi) z7eD!-?vNHd-ZscN52@B`IMI|!0l0S7e@7YB^uo1i;_2y z#&#Rdm+R?pk=su;RRp4b^m2Ssu@x=;G7Um90u3(QhgO*`y0s;q+?!lW+%;K$JNG(W z9v%UVAXgGzOxU#2;$TvZj1twoJc{gKSM5c(spt=~P{b z?yg}HIDIp827iWW!Gf6Z;3JBe4x!tO!?Y-A24^Y14fs#l0Tybr*;zME4Ybcg=<#fb z+}BMnw~vEdC+h{ha|gHkA^B*sOr28TW@(_`wSn5Ym~?6 z72SCKs3Xe1y~uJ*g&5>>5kulW)0FA+Q77gZ{`WJ4!=tzv7gf~5*(LMgzeX4E8*Ilm zU0vKSV~?#j*z;lMhHEadd~fDa%=wp%Cpp0|v&)6l+r0(O`d1MD)fKeunU6H#6E^>? z#^&BsP0u0E%tU(F@CPP|yg}YgEuh-Sz-#515T@}M%342?+n>Tg!nqkmnD6VMnKSNB z4W_~~gE_~yeng5*jMothdzc6Om`p#tHnR@$4^LAvx3nPh=L;z*T};M;ea5&;x)__k z`H`kS4XE8;h=M8|M9Pg16kKe$Do+$(>BXyb?1Le0d^;P$jXx5V=&cZ@*NJbfYhc2A zgytJ9L(MrRaA{R2chqHsc(nw;1>Ioy6`KL$*Yd%=FBCjBt_2YEYZwN7a`!lQ(=bh^$BZ!1|pl>RL|^`MiMZ(U8Zw8xQa zQV!n*?IBv^Hq9{fCzzpI7RswskIaHGQCTb_~hdN+9dc7AU~|$n!i99*8oJ=gR^V|7-~fA(c3F z+iI8@=7~@JJTOF#33mn=#OPHSN*r4ZLEq}&TbdHY@3{?He7Cuebk@T7xxe`DVH8#0 zc?kx+Tw(2k7dUHfKg}QgjroiA5~DwX@barKW*!+vX?-u$GacY2*8jw2O@9o$=mnl4 zfy+ z?eU8+X75~#q@Ao|T@t0g$6<9k%SsniK;QEuTqRNs+aqJ}y@3T>p!T2!jhO1a86-{w zKwuR6)6!5VO}~VO;Y(<-gb?afvDsW+kErlWprl_h^MSO&@8l9FXIc5d z)a%@f0M%@44c8MjBYnceS%NfU) zd9@hR6(;VOlBZ#zsSdg6VC`_3%-PTaFE&=d2jMVuuzClXGUIgXJ#CO+x`w&#Nlfo( zfa3k}Ao-^Q+vnS`Gx{qYib%uq+MhsP1Yuc0Fkb8&#DDMk)9xk)qD}Z;l$Bac4n%ar z9(Ol%T%C&K(0d%)Sj*8@=?1mpc2xMa49>^xg1ft;vC8!q#0EA&OX&myRYil^{6yv_ zP6O+|Tnt;$01DN8B#Ln<#oDFm_49$CTq6ToH(7tK^>%LRHD4_I@)EZ`aDQ0@dISYQUQ0e& zyGenhxFc7zv4XhN7DJU{61*u+g5ooXE*n^;$0{Gp96jK4Z5^9QMyQi%AZJb-Ki*B^ zOMA-P6QzOckX?|itqV16&OwqC`+vS`#Sb^eux(Thxp6OW zOJ4vSOFaduA0A>v(YRv8$Ww^5cfgDMuc1CL1-9Ss0YTk^P+!_lW_D^*E6#7!8Lx)o zLtp6}jtdAMO~l~;7J}ctGPtG9dX>MkjGdz@$`l5`p>M5R3#WwyWg_v1?Q3+K;{k); zj>2-Gc=$B68GHjSfm~2ObS`7s5YH%nS-uG6^tOT2Ugq1&@x{Q!kDzJ}Z(4moGRSIr z!5Lvn2R41-Pr>6rF6VK-BWy`u3Y#1j z!Hm-DVDZ`(!@aw3&HiD+c0RCm9Uu5RSKyiD2bdSyg7f`v8$Ghd6=qqWHsJC`pl$RZlKyw;$~^gLyczuYqR{ywU(3Z;1#GOc16xwE&E*<2@J zaj_p*N8962z#u9t_aPe${cw>i1#jhi)?;=L8gBn1BCf}n&vYE4C0H*@OdaXW{Yj@D ztmiB#j)(c=A@;V`W1%#cI0e?>lU)L79`7Ph=Fxc!=vs@R5}EMxM-eo@S5S}Eq34p> z7DCtxq))ek-Qq!r+4c#lC5K_g^-?0Szm_qRJizj1CJ9SD3>ykYu*y6G3Lm`0>ram2 zHVa;yyRHt-v}S{a!U|62sswB}Qx5ZVGch;e7ddJygPltzz?b(b*nk5F?9IaId9f&$ zvlpH9j-bhDC3uw33kfx2FeyI={uEKnSmj9`%pao4<4O4Mzir%xh%WA{vreR33zPlRXp{zK1zy^Nxb!hcc=koC9&&pFniNOgdb-0Me`-sP3{Td=|w*Uhke_ zLsAGba}~+{8G)BHzNaj{ZjTo{HWRJ>LUN?s0XJS?z4MY)G)e6T3RY%O`DJggy4wib z8g=k+_74&sI)r+=?Z8H9mM?uQiA@+(0PaT z_=RD-fk={M7iBh#^h5MLPe_r3BofM2M7FH7wYAeyskBRbeb3XTp}k3(T0~Q3e&_G5 ztE;Q)yzl#*`?>GWO}jdKFuJ*jQ+0M6h68`VdX-@O9@NX&$WGkG*^KGs^OQusUyI?l zE%DN_LFg}TLk(F6I<0&wuKRct{O0`yi>_Zx+lt{%G2qD&7N`c@X}VB$;SKam3jhP? zg%f5wIib`W{XI4!PHV@`jsDo7A3^VXgwe?@Irwvxi1M|;5U!R?E)@@Yg=gmSC_C02 zU|AlDDjLPyogPKBOHmN_pHxKAlJ%r>Q4JVR4Z(uMBeeTpB<5@=gDH#OfwTe_8|Np3 zjgUOq(K!kcUWsraIF&nVRU=J}dVxjpTr|AsM8Dm5fkrMu$_lY7z|+_b)1H`sWOxBM zpDZV7Hukjjq#UtXpUdueb5N=742=}wfhi@0NNO3^vJ?`Gk{Nj&uU}L;7yjahLwTZ1LsdkZh&aQ#!y_?{q z*aA7VX((Qj0G`64(Bys&?=`;0N0I3`-+mZ773#oR{VKLar@;9AVsK120VaDi!A94X znw1s6zE~Bgw&hnoaGZUAf;SPK_w981bwRjsya@&kETCj-F=|M-bGR#Pz`C4uF>hkV zo%6!5_@^BjCg_3n&|do3Y8QIQ`w`!xF2qKOfXL!-6b^C3?LpUZT~s>Oe%SzF?O!ne zjy#_J*nopVEa!CH3~vj@qH<0PXt4LM(@%Slsn;Rfe0pHx{AdVJZbzkpN%+_pft_o6 zlyrQ`xEqJfP~@r!>mP21gdO_iqHrMP4QI^ZTg|X+?Plyd=gYpI2f)kB0aYR{DK$M7 z#0w3_U^C;^MSdTK2}fS#Wa~VvpIQ&ROvAtLQco&F8_>F}1rKMWWoxtf^8JjZm~p)i zgDyt`N!g9nR!mQV<ERFUe@8GlMLVPyF*OO zWg;=AhgA(9(P0r|=}g*z5;qzON1o6Y?c1DtGrTeEXa|(;&COPSH3aW2c;f8Hw`8gE zcdp$>wv&^H!$*$KAY?`|ezX=;4tS<+_*%l**By6jRvRnh6XGSCsn z3nAfpC?6tAC;QTA|JEazZR(Eaem=vOo)etfEj<|Wu@1KGT+JDro&}=I#vt)r5H%Y4 zN4y*gAy}WWmX)25bKDNT&^)qpp&Ke(DJ5zNh79633YcAnUuB12{AUOrcwYfOUK!zL z!PmsON(=p&-s*0Cf_)E@$mG8!W(xTuajc0 z4e)cKoboVzb4KJxvMOx`=q*1^&8Zm!NX z)GfG1kFN|srKB)uW8UqrG#qEekHGqjdd|QlSL|OHNLvN}pnv>L&>PFAHLHKa%bpL= z?wd`H)q+vtV=vO@=@==QYsCv zI=Nzx^%5w2T+7)pw-D6He#YyK!bK@x$iHbkIje%F!&xC&*ribn2`vezyz)MjR*8UR z#1Md17n$;I0uv+RpzB%}hO2izL*2;RY|0E8(tLBIfOH0-3YvAT*s{ zdCg+B3mI#`!dGwcsc8_n(>yd`9Xy6pKEvX3d*Nhf1==tAjAG2Ed(TE6{oI_O)&3&< zi56#ElkdpV3aqza5#7sskxuC|#A{>aSSp@Nyhg6U%T#Gj%Bs!utJO+K5-LYo`G24; z7ft+5?u7L*y4*`4b?{hb5Hyuy;jWq;c)b|MdA*b&Q-g@DX&N5u{Q%p^Qo7aXA5A?b zK`L!S2;^6Q-t8}NQ74;xi}--ET{7{H!dVb)!zEGjZXhfuO<`W282T`=8xnMWk@Rvx2kX znhA+~tHRx)o&&FLnQ~=R*Wu{Y4aDqnDQrvB!2FlR+vE?a!bmbgBHK0lGLL12qYdkk z`31wfp2Bp4d1Pw22TZTq21e6g!PTqF{hUgh1CH|GOm2ug&- zk_55ycv^Ov-)UZ3kkX=Wp6l%BL)Sbvp!2;lOQ~A86HV zjOT?LA>6Z!YOVc=f{!NQ;gLL;)l`kIpZ*5b)4ocsaxdUtM<9+h?c~Pu--2o$5wO=) z#uA@7M7k@H^#PYb#$pFb-DB|e*eYyn@TSK(m5^|t6LnTNqGjk&I{Q~54s1IIYqVC< zFR6`~(@$OP3X00Hwyy%{MfyV5BxJb@M8Zx@EXp;BhABjVP-S(9udISybb8v zsD~4y%fZoWDlLqx2EW}!(0CJpFQNi6dhVg)hZFc|$Qc{mCfO|0je4TFCx3!Pu7kP2^dVSb8dJK+;DuTnA7<^M#fb&FtbEfD@6FMgYoqD(8kY6S4 zy_=V<@Q8W05B(ss94O0XJ!5>2BpOs&goicC$eto6;<9=z^04= zKgLbU-SAc*71JxdF)HCLM!%QGunWuK%A9J-d(H@k7h7Q0>tPsNdjLH%(y`=5K7?0x z(&2Y}q+=kK&I&JtzPyVd6`F@(cdO9Gi+O<3GHB;J%ral|if+-4#j@P<^umuY7+u(g zzYKSyruIG7mp(ubaFkGPRyokh#UP^-LdwrX;gG-^((af757SD?(*x}|U$uyqG3}r% z#-2QTlMKZpQRJ!XckcIX?@(qW4F7)Zfwh8Q3QQX*WwP3Sdv_J9fp57<3($hncEtSn*GrrtH-^IT}AtB%tX^C)EA# z3|>Dx2GfnEC?_c=U`s#)4HmG(lOi2hdLSPzuhk>u_-lBn@eduoZ^r$Td^wW4$7qj8 z2`EPzlCvXA(53Y`yo~Q=&yNizS2Za~J;{KZCwG9EXdAT?XTMwKC0gBPJ_MPkn4xNf z(Eb|?SI3~YxD^D%bin;3XYrP03RM5+0Vjp;!-b$2<`=R7o+3MN6z?KcODn-h@CT9C zHN&$PchSM9Zz#A3Nvmu-M|Zb9Hs)G`;ii$Zo+k zJa!zlJ9|-W(QYanug$q6DGq1Po`nOi(#S+&23|Ga1~(*=Ih;0@rTqCA@^mOzp6dm1 zbt_n$I7TH#8kMBi^ni5KRgfEdM&aZOTy3h3vCsO@I7E>ZVe2S4f)=!y`@!4l2K3-s zLGHC^{Ie^S{&`yj$@8Wt7jvJY%?c5?&F)x=@4n-WAcO@W!T7HKBWJBu0emu)h8ZXN zz%id+*;)BBS9+%&W5+DUyP?}bw7v)zve~}nCo9HMc>#OQ{Dz0yC1Bs6FDLm=F?NJX zIOj(wL0$q%U_8_R(>rPtz756vsDbwoT5CqCF z)9Mr5->(kW77KF3XGcN)p0nil&0bVhWm=%T7rr|*L4Vn^Z>euL?q@U3o8cU~k8$-# z?*TgZWOYJu((0@ySzt_+;4Pb zdnef2I>YA`!??e^fOR4ALjUnBYGw5jlkTyuQ&)K;zBSl={6Ek)Oou@0DX@G)1vDyL zhm*%`F+5lqUaZi;yDcp^#C$Q1s(bM8rB-gLe-ZQcSfc*sZPY+(953rWfd9VC#0uxr z*qavx*VNX-!`41nEBFl+Bn*i9-&Xu@X8|UaWaE5xXW^*#v*)-DUxaVMH*cTe?&@tCW2n^W;ZB?_C*6I!nOImjduMAP9`p*jbpl9-Ow_!biPkSk=t# zaXZ`bLfT4N(CbRumTfTI}aDVm;%BgX<$~JL4K|%g1E;?P_jcD$1aYL zh&&&V>+qmXGXyc>PDqxo^fQpNGbWGKE`#Xw6EM?Q43|cVqK@|@*?5ojDbPXsVlS_9 zv40CBDc*$ES((7^u?C*6djkd~!RT>2llV=y$sV6qO88Eh46oOFDJDgb80CH=h@ptZH5S=d%{>7EhC02|j8hzlpXpCgNR>a^SPq42kK;C92 zIPjf^F1=-do6iJc4EGgDx|M?mKJ%d1?J>sAdjS=P&w%o|de(8`3@f4<;N)gcEH3Rt z)ra9I@SzQP#CS2L>k!6enQ=A3|H8E=jiBs!A3j{rq^h!=n6asi$Tl;c?1QIxb(a>| z|8W?_#rbKpVFS{MRQxTH1vfu20j=Ti7E&niAZiM{AQJ86Bs+6K<3LVEXA;mTmr}f`}@g*yW&6E}7;F4)M8XpS4 zmp!8s2gktdls8^3e~T&y58;{mSun0S4RnLv!kQ~IyR%6b&7LdLv8nfA;NdWyzN`=D zvSyMRnPzyX^^tsERtByyft<(Dy>R}}2N378LHj)?vm+k0lhpJid>Sgp`kInq#X&zb z>a3=U!nbjci6OS>#vwe;0^f-Nf?r?4gu5E7*=B=r6Q)r9ZKZAdiL2hLzQ zZc3VN@j2-CCxL5x--Dhx_m$)3UydtRdgA5x0l4SSbhvdphEDLi!QrAV zj9c{#zn!Xw3_3(DW=26*QwU>t2H^&$D@dA*>E<+H+{x~&Dh)GpG%vVA#|J%9e)t!* z@yDRZF%7CTXvsM=Vnsl(3`0eYAzw}yQ^Tbo>c@X{!#+C{t{sQP);Z)-+){ir`5SFG z{IKHtSD2yy3VSU1$dcoC;rYKxB{AWh^u}QeEYCHA**&>X;;Bayb{LXGA!WG9AY$CF zA8`9i9Wr*FadnT5qKDlREVLU3>ww4T7NQ2rU^U(^+W~LqIzxzKI6PV5i=nc?G~xDV zSo7}>+~H?Bgp4ZiRol}m!dD7nB8W7{g?q#^41EbKf| zi|jTlXlUA^DM|+#$Wfxcai zIQOUnEnM1(ywNjrl9;CnWQ@u4_;PwK zmS3{P8>e2w(mOTO)Tk0HHwWT%rh!eUZ6R$^!bE7g9p)*d<6><$4qupVABQL2P0fjk4h0SSXV@^TN%SI0(9zSCj;r5*jrIQ+tBAsPLBSk3 z4Nma=A4_1lDQIWSt@Wan=EVC#Fe}OD8jzYXvl|&^9jG!)}94|^8$H;Ar zOE&l!SKPA)j+qP$biaT(sSWV=pDQ|?*{8I=@iNYQvkgZJQgLSSEZFfqfU9Y3xAo|~ z9Z-;6MPA%lgj(yj0F(Z4rNmq)-Jb&6(_X=H(S_8A-7_5Dk7Gx=JMNnkh8GH768pcI z)VZ$|I|hQ-U913mU3a6#)`w6P8VLuxy6B3xPtiT;IetCjiHp9BV~F!QTEVho3%9%k zk7#2|n;i)4EtV|beHd$e`ta*J7c#J;n*1;$uy0NUu9`Lt7u~BRS9QJ7=MxuS%}|7g z)!)#$e+LLWP=|(q%h0#n4xfJrMf)W~kkyxf1_8xfv%z*0dg%ZsR+Mo5oH zg|lNgL{=btw!!ZBSeWM>MtKCk zkmcKVW472naG5$q*=h2<(kho+*#B|>PW?&8!pGVuth1U-eO-<>AD7^T1&!QI+#x*H z5`r~%3*b?C7O-M%em@lWZpM?^VbCBo=>3Us2etZeh#hLRjB>a9{ey8DvpiQ+U)`GJlc2sdaUmV&tbwvU>B#Xea>=*R#A&t2%fr|zC==aP6+zrc9aOGR}ei?3{ zSNRgCi`pgdvk(GhRHtT+85p>>lvG5q4h?LDzMv$yw`(ifCkSBA%wd!@^P@_A({b)# z0u&7M@PvXmKLrT2X=Xgt=#MT09aUuzWmADo4|7P2sI8iVpo~yYuS7T!9DROadQ-(1>IRHJsYQr?yP}X7mf^Ku&2_gF* zq2~vGa9m{vGYS*9Z}Y_QGw&NHWQ;QV{iXO=@+GXC9*kj(g%_~k3Mza8cw|Grk`3ypwTu4j$W+=Wq(Pf z$_<)id;B0KgquUeT{Api9SYBG4dGUQ#-maih2(=A;CEYx=`8QpVvr4v!p)GodIY1Q zUxH2$>+!gI6nILK$+EZ%TVLM-dTls!@+}&)Ta}-{|4!$ zWQvlc1u|9gP$oTu>Q)XAAMZiDu|yX7GBcQeEe_9pW8KM7^*CGi4n4M^8;ajr(~4(R z$Yor%pvn$Ry57!mKtJI`;Z(dmJPu}4KW^KulS;w{_>>Dw1Hf$NLQG2e1@*qMIBIqS zZ|ZmB-;KYawPhO=mh-{vyPnxW+kxiHf5YC%F=Wf`G$emtquSz7PMWq7B)2_*)j`4> zqv2ZeD0~$5Mm-`tbvbb3!)er4y+GsH&N4gB9G*JOq{961;4#~m4BS=3nBOL-z4Sj? zEZ$32#p~h`=>}|A^ALFp8TYe91=fDBCjP^RpflDTVzncX3^zdW5iwk1VFXP-v*4~5 z>z)i6M&B7{sF-0P~G&;EWEIl2=$M}e=$h4JbITO|gpv=FBvq2;rPe`+H+htoQ zYt4p_jB~N(Kri zL5C^Mxv?2SK5$|2Z&YeEsX_jzN|0<8X8!GDTz!8XxStcqNiYn7vwC`X;ae7{`iF!5 zKqIxC(Lx{Hn8x~`++q5)P_P*#;iAQ ziQux;Fia!Rj@@yGMLf7QpG!g0FanhgGZ=?@Dm-7(%S|dvfW`d2Oc+~3ZVywbM7wd+Iu$lsOW=#J zT+-oNNY7olg|mGS9y0E4R$m*4H1UF;^b!bn|AL{Zwp3h90v~K@N9*BfAR#FW899DL zQY8hS`MiY*t4@fwk*CLOWzn!l3N{`u1d~s^DD&|zzw?gTUgI~ZVB8{=2%c#tu4B+?nz<|19 za9=coFnNeRmzSlQ*+m#K>5WrA#^DRGR?vE$jcT=tkXvd2^vY6>)I;Dq}ToPKPQBu^=&Q&djSw(0Jad$b6{rB4w#-7Fa0=Yyt) zb5LoC17=>)hXWlup)}hIZg6g*?T{VH&G?QbdKNe-Fw7m)`Ho|k6fiO^kABb1WBU+Z zZsd|m$c=vjk^QdR0}>ttec!+*BO5yVsV#_2R)X_HE}TpJ3QHqZ(aA9oZw#~CMY0-I z{SZRt=6~nb)JtKCVFf()mV`^|*Kw}euqLLsOK9Na2Au)Ic<9J{T&)m<FrxGc(|JPCJ@GsiOnk*E-2gl=bOmC(7c)ld5xURpH~n1F&AR%Iod&G9P_D}$l$UDQy?VjVL5K!hxC>hx5)B0Lj| zgq}jAYZol9Ya;#2|3PZ1ImAUD2aApq*m>TGY~I|3-kz$odjEG6%B_X3+w7^Q)n}0Z zI0%cs9HzSVL6COfFqXHlot~#Unorns4G-i&X_PBiq?VGQe|e5Y63_Amvjk zh>dZ9@6}iEewc}coJF7z(hT?Stb;XYV~O??QBKl|e8zWM1jl=PsM^*(@M8D(6MHHl zv*1_nosLwj4IG z?@i3%l^D|EjT?8kfT1EKe#`Rl^z&HOpY{txe?`%=C;YH}VJl~&LN`h)H^FF55`GFW zWGoOD_}Y9D9Dlgb!rFVdn43%b(F62f#6e%lA8c*yfmurZxHfzb>@*U?$v@%fWv&MM zhF75eZ5yg~^C{6+|Aosp-^To{e_?OLU+OAjkHass@#bM6C6V^eH1JS4%z2$h1?JVl zfxCW?(lkk2MbE?Sz&T{enkulg2vl-}loq(AE_eQ3=xf#1-4 zY!gh+7r_GyxcGQ(05)ZIfIKb1A6I2SUCp07+VTl4_LR~yVu($OzcKK{X!eE7EL?cL z2Az)Gz+(3?2wqwSJkv@^*X@sJVs@1X95%)e!qs$_K>&1SJwlPO`8ZkUK(ir`ao*o^ z&T3jyi6eo8-uFR9KR~;>M66iVz|H&h0ivgSfNW|xRcx+6twm-K`=$zS{gr|&T~}^Y zbSEiHX$8@i6(}lm4F8^TLt~2M+qt*2VN)?~G|7ZbkF?;hk~fO1^1}u*_AZNYg5NbB zMBd#Fz6HL)@zqx_JL)=q^AkeTEya@PPSdqKukR$Tjq!r-%1@0=aB;QOEAy!3NBvP0v-KT_~{vA_RBnguCgImp=gX@ z$%*LDABL}j>$$GD_22FjZ<`m@kQsX;X5UA<_)#okH#61NaK5piI)vadST`Tb1 z;RRfkPE7JBK#@a3Xt!Ap>Yg8f^2iG2;i@EFgF|>uBomem1fbYFdswGSxS<~mh}Tvp z2tMXW6?7$_{kxlz?*bj*Su4z0S$qr>S1klilo0E87~`y#@dNo??;%}hkSyJD613Jy z!saw*2zt8!jYf)L(?xgqgYoo%`YN33av5#H^C2*34K9>-LOv-8V%Z)?Kh+}sOMisL z6aBz{i9ctJUjiN=GjcvW;ee~MFg*Kbh)E${xO@3999|X!%6142<0EMGdJ3dVXyKv1 zwRmEC53V`73v2Wg(EXMae4Ks`3`Wc#NH_&oeX`ir`qlv@o_3)9crKiBIgS_PEbxnY zI0}gk;l4L{WO!o{%)0CWXEjUl*Q#_p@OM4=ob?Bee)58ChOt~@v3T5FDGlu-Y=8IG zitH3IPE|?1Prm~N@o!?t+j-!CcUs-zMA9Um`yZc2zPCMiWf{G*?dz# zKlI(e8EsqP2eD$TlqQ&K`j2&R$UyX?H{{F-D^###{KYp5@vTHM+B;Z5QcN4FJetI& zUt>65iOr&w>p4~_O@K@X{~I%kM;%9CVdG*XAHqr9`xfkxDd*}h5ryynZeufk1qD~; zW8a~I=HK)1>@O{x#=L7@^Jh})jeO|7YdOsAV4a!!Yfx5r1JU}xG;6^Y^grwl#hD5) zG}Q_8OP^rG)NlC5FptDuug7m{nGg}_gLnE@AfE)wpNYO;dwF+`LepA$yR8D-HswRd zhIIIB5KULiT}eky{ouM9Q1o3s6CQhp;tS~*94Qmd5q!y^T~38Wx&98kFVBXgh)QxJ zP>Qiq{K@QzDC(P327lIvgMh|5D3Dens?IH(g_~SxRw9A$<_Pdns6y3)?hyW66LNx1 zLeIM*lo;8H6ERk_v&$HcZwsg1H(!HEt~6MhZG>}uO%SV@MtREy@#vi8=x1ULKCktm z{Q{RU=%|T1 zJS(^klN{zxyy&$QLbptiSHsVMS92pAkZ~ZZ;}2uIK^Dp$-3v?SKcT1Bi{fZmHs;;Q zz~6OZV0D(|WT)Oi#~aGq9`_#hY{d=2v`w+XheS=Wz}`eL^HlEUBw) z9n2J9ECR_fdhdKM=vO~Q?U{>U2%ch#S~ESg)tBY(gW+<(D7>18!^&*G$BWZssY5mv<#pn~uNYcbq>kJ(PncHw1$f45@N!uR=IzLaslj#d zV)bTv_8$-I+vP((%Lc&0z#gnJT11w)Y(@X^QPf#rh#Rl#V~xUn#x7$Wz+!h$)@cL= z>(an~APv;76u|hHKYnE1{^|wZWI>8J#2uG{9gOW#d~pJPb$H>PRiLs2xR{|FYpu;S&mrb0E@J21d1> za?NdTpxYk_@XHFs$)~bpdS@8+yq*tH4;ARFdT;KQbL-Jce?QJqK7@OC>{$0t6c(_1 z){YW&yw|RUVZW;AT$SrssZhyT;>EIuqrb`KZ7y`jRRd^Sn}_}`<9)-$f5tRs$L7*Qc_X%t{6sZu7dc=JxnXFAXei(_7H9<%5T5KFt zCOU%uwX5LzNfv(y*fY(y9jEg)fjs{+j=V^hQqQcXIBKz#DrHF1+6{`#`|u1Czlx9! z7kMC4&g1#n%OI_$9A)NolKDt!~yE&DmAOCgx%dpYCv_FP;dwUB#B zx(ft?n_x1nn4~*p!3@^bt$DQouiK78TbC;|oJ&As&!gm@++i9go{l1S?I7BWqH4|s zI35)UCzMWN`ke|K?+C&BCT4Khypm+hH)5UlH{qUvD@=Wv1|L1&!_;bIKI$xNT3n8Q zewN~f;Q@GLA%qi?GO#E$f^b$opsP9rlta7%P}4U?sdkD5Xq=r#eP`QKZ|?@U(fbA4 zMRYlu9j8!awia}@XVTp8rPOzWE%V}>+N$@2fcyfcml)Wi%e82j;t+(NN-pA29d8^E zW7-p6Ef!r?0m&(y@Q>}PojH9t@_i;+#do4fvJEsQ`on@>Hr#)T%kZ1eA=K6#qS7nB zL38#Y=7sr2JfdyTn6SG}vILzEf5U%$Ox}8`r%o_zH&oXv{F-IM2F{9QQ?b_Ai#dk%1ymSMBibC}zZ4_CKH z!>jjEusSXe)Wud{y-_tT7WKrTrUx98)6dzCpaCK>dBDEn5qe45L8Zi9*b)~El~do+ zNsS8fO>8Sj{Pzt1c^%u<;q61$6*!X6&#&pOdA#uL>L91_)f{foXeb7pP62!E8941k z3%KT{LaJ0W01+d-R$}y(z8YDpo<%zUmZERSY8v?FC=3Xkgwc_9qHY*Xx0VOMp_|Hh z=vz1zCvCt}Lq_mNx*!|O3gBeR4LY2s^caLSmls0YL=8%FHE|kO3y*()2vJp0nTcWQepK|EW zCeBD4zw&&h&n?G1>~3hsX$Gs&R_Y)WjcRf?=SZNoiYLs|{|lWe6*NJlm)I}3500k4 zvj<$%Ag$ym2n*{?s6T0 zSIxC>B;y-B*7pi8IrVY{f3xp8x}(|Nd2npH4+J$QYu$Hyk$P`IRvtYrJo5T|xd{S<`1Sw^V;;2bA;wF$gA zXbYjj3H1Ji55zC`gY}ZCH1lU4^*4Eg(RuxhpOX!V_5CnYvl`|!RC7anhj38J5#jd>P64E?~l2#I^gu&wn^CoQ-q(u>3Uhj46z2JW^P$7a(`==p{uTCY&T$wi<;Z;HJcTZHWtIF^LAW;`d3&p+KYE3tMTjQ5EM@P!WGDn zgRfQpL6>Sg=?kkRzRuNfTy+-bw8#%kWB&HR&vxkXB^+#LrDEKFZE(fY2F-rvd@?`yvxQU@pi#SW1E>YDJ`!Tg}GdTA7VD|JQD88u>+D(q) zz~&}m?5vIRwN1&m;YWNum4{yISw)Y`jOLc4s^a5SVIc0vi@Uzfz)M?8iQJ29s=u!k zi_b;V|9r);o$-zB6?5UjhSS((>V~0J_B42LI&@pw!NdD4FcfKnwKCSsj~Wb;*76t_ z-v{TDpON($I@tVi5>K@qgG2tFSeUvIDy`D6TlP98%}A?<4w7ukI*ZWcB;m$5#Pz^kF8{GlO|}#Gk)Oi2Gj~K;AS^nX6$7-d@Xnm zL|+e)Uqjt!+OC9>Dn6L}(hWy`WyEEpF z?tmYmUm$sVGSP0y!)Hbm=l>2SYVpk|m^+ERJ>%rm{c`Z0_<<_Hhy{yNQ zVoNf+k8iMG`P!$rZdn0%tqBF^fn9i6-vzfUsD@o@ui#joC2?@}g8i;f(GJg%`a@H5 zPTBv)#<5W3@hO2PLvzV~%ODQ#jya@;KN*c5|3oEoD{j0B5A@$#KxO-r@o)JYA}ZMk zf+DiG&haJp*3O3PEljsPXtfo5zva_qd)PZgq@41t$pr1^@i>FA(2E_Cp>xy{r8SxE z)$5N>9FiTI@i-L z1m7KWri*_}C7q00(X#6&TBx6(o052Qrs>WFah-PD_qP|hos99&o(4ic?1@9h9k{)Y z=@KacsM|-7k7p5Ha%VjA9ee49c_(o!@;9o@m;@6=8x-5jn5#n#bdhx!2ER-NXVaaq zbN4zJeAi1v*7GahO>P2-Tm!soupcTXg+Wgw8YZ$RZk!o`Cd1jp`^Ce^v;h(P;xG;4i}-SSeVLy!;w1gMs2#`Ri($ic zD|Atq#I#&Wug_qN$R|0FP(Brg1gmk3-Lc<&63AJo{Ru4Ns^Dv86NtidNPag-VsdA} zPPNatQo0&9JuHSTLQ62;Y#ti^K1Zf5wBo*#?8FlyGjX$K5MxWXqxdUvvS;Q@+P|j- z6^!p=mvjnb*m|Sk5uTjkFl(qiVheqf`_O{-6#a5rm#A%-LtQ_JavxuBhx3o?iDvD7 z@}?=5R0%kfjvd?R(LLR8l*6O^U1$(pJ6Ay?+qGF;k0w_dOW?o_EliogpCfcs4Sbe< z0sG5Gz*#zg{xLDaE$si-Gi@zy)TyD3pF+{%ViR@dB6qIiR_a#ciH1_VIZr17;QCHS z%4bwXu65tUq9>=wX?FE}vcU}=KDUAsR=wGOx3a8ipbN(_Jq5Q6U~P{eaWiqDiyFGH&TB5L z4&~3W4EF~2`b8MNIuXWY62Vuan{0Yimo2}4Gg@R1(srG9(456XJX z!@I9vXe&fPtWz4fx7>+bz8{YHPfw#5+PTCH((V7l z)ia;KK?_~1JSIdXEYgUeuOKKNdC$>4tD|)9elyH}WC}~p-^7vny%@{-TI>4lA!+Op zE`9C|56?C-?pPY`+~EoTiA_^>b3ToMCmHL@cRu^}B%<10FOu-u2P;PQ;g5SCP+*xi z*dOeJuFW1`=TJiBBC9b+`!gKb#QdU-6wU66!>6$h^z?CKa&-nMwH{hQ&usC>#4vyGuhzqrXS`v}xq3vl z)2*)MVAVxqh_XqC5-AT{Pcp%HZ8oknNJi&lJRr~$N7XCmz{&l8QU2n5e8%NtI@Tn# z-jaaB{jHesAD{BUP0wI{tr@!O)zd14Os+xB5}fOI6IL{;fadUT=!rZ;tN(L^Q|;wA zbj%Mo_(f60cUQ3B!Xx+`{|M$Pj=|6`KfEJ#60ff7M#~RVlpokLA4o_cUK~in!)$K) zowtqHX)q0K!T_vht1|xWNw$-<#@*?T@IOW89gpSP#$hud(IOGrNuj0kTqh~*l(e@{ zQAt|lSIW%J%B+mCw}?E~`Pi8uL}X-#s6^3xulIjG*6qHp`#itj4S161aZ$fh!cYrHw*OC+fSH0FUH?Jb&ifyKfci6QalaHGY@$vW+ z1bE?-r16D~6&a0uO@7Q}S%Z)yqVl#1R_q+4w{nwNU$TYm;^Ogenhx6&d_rNnJvi-6 z19JX;!B;|eu%~J>aab`9rPZfk)|HiT!t)VT6Ru@lo<@%Nj4tB!icf32(*~kDL_jwA zGtnMqoJFAzp#R@Jj^vRf&TSb%?7Z3x6V;pXYH%IgmF~dRE634G{|(hW_!Zn2T?fy1 zt>9n%lyy#{nad-Z&S~>SgP%Fjtu4Uwy0f1iv=QW0vo5EJ(mXtKD;^r}tzwQOe%^`k zeT-f&1!}CL)f#IJhEM?$JA`0^Yc}SEyoQr!#?XA%GZg$YhG#1S*{)L$)mU!lw7^{0 zW;F+MlCML_hxgFJjPI-yy965l+lL;-{xnL3pLgk9 zJSy9WgXwI>juF~}6%)fb8{R*F!k$*JMI{`G?tlv~d^rvEVG!~6J9qxE-4K1_DGLAX zM@5#A`R`>0tSG2K`&oWiIZy&FvRg>{olN-J@EL~mmJ(aRSzr-=k8T(7fZ}PDM7&dp zs)-zCoUs;abxI0XURVTcM|&Xem<%3DdH@0)m!R-eA3tHAx}LG$j+ioUAmftG&BgtDbu`^1 zy0QB?W9j?w@k$16;JL3uD67Z?qn`8}J{c=ufd!ag=j6Bl-s7aAXzVr3p}R%79LpDc zTK)4=ptGc$BfsEJwk$E!P3Cq#I(R9x5&`|oN)s-{_Ny6rSXU@fq z%*RwyzXFio)1?E+pP7kWE9{6!v za87|TJyb`r`Cbu+s&JbzPul>@ zQ_n!2y(EOq8s`3;*#Ngy&ryC)DOzmy5)Vv?#y=m2K;zv6f&E^1xD6rs4Tt+LgJpat zD_~KiGrDQ)Vx7ovD9PGHPMn*IIsA-6Hee6C=3WN}Lw>9~KMjAz27<-664V+C##KEr zB=2E8Of`QDlg`dXrxQ0plz$5e^~u1fd%rk$cGh68Vj3s+TqI*2cEggm%P68F3=1s` zXi(7#T;4GgjWWDI&8ro*J22i{Z8<-{8An18igLNo(!3%)bzUEK@J7mW=(DbbQhsIptp13cNl=F# z?I<`U#xh(M&G2$O1a@hhfrn?#q1dKuuy2vZ3Dp>gne-D=Y6h|R%M18)P6tb8cG6dD z&RwqF#4YN|ruiRtvg#*Kp4)?&bJ@-%{sghL7=oE51u&T32)TD9wF18j zYMI48hV4=sU~nw~J*OTeRtA=A2VDRMpKwuIpbg)w>4W$~T|h30!}udF;HU;ew*vFR z2l|s9n;x1`!H=sSPl4)TDN?JX;oX2}r|^Omn(E<{NS) zDzI2r6s8(^aZ4peL2jcW%l|HcbFCftW|t*Izhrr%>3-zKyAyb|dw^TB;5l5l{DABd zT7ZH=tUr?F1H}drV5w6Mf|uF(d0G-YFZe{(Sh&N*U-g)%=nULI3t}f)i*ej<_`Uuy z95idCF$VlRr{eFh<>en-Qm_%0gtfutWef1U_#k}9jf7=q7m^LijH$;m`AW+rxt^!4 zaB^Qg#)2?UFtF{yFXmn}_)jqCi6z0$6BFEt-N!h2S$%j+xD{vWE#=DYR)n0V?=k4| zKKh*Xr>}|}2AyZea7v6Te%56FhfZ;fKpj8DFTVq$}pPO~Ekh7>JVC%-%I~vGd4Lh`(md zFuhkq!_Su7t{DHym5VcogVKg*#HIV!>_dXZp4MjAQa~@G> z88Hj%?5N6x@%@Ky!-%_$+Y^LUILo-(;fknAlF-zgz)Uu5!aPRc(66 zCM=VMuT!VYN^6B>YBk@S67iwx0tWjFrF{YCf1I>AQ2KPdI|5e8im;cd9k2kyNR=w)M%hV!1_ zX7!!KY5Gn`*#84Bc{`z_Tr~3PEV;?r2Vw2GBD7k3A6;Zz@YA)`RQ%mjoViUOtFYBo%8>Lv1(Pk z%2;d4qUEH|RT$LQP6ZQXMH=%f9+#!cp+OJZr8SP>+8dcr%{_!Ekb@;jP8|QupShkk zEwE@S7q4GbgYx>7bjfsE=H94A!{i8*>|+`8#N8M##*b>NzroJZ({OgXBDfisGMB>_ z5HU)C`u(BsbKct=kAW}HzsLcP=EdT44=vh1`59-cssK-UzB_uD9Kdy7OF(hUU)(c! z7DRHN!ZBq>QlLISs+9e3*P95ogUTm~uKt<1sFbAGVcrXDNXJs>e<3jM3(jVEnCVrI}0bWY?0 zty+qQOgr(hKq5HHxRcO}Dxi2l3%a5WS!bo3+<*Q8m#dCK0H+z?tO-8+RZF7IdC@!v zee!d?G#u$$3bQ5s@uKQO>Y`l;eQjd+EA%lv{I-c>B^?DBkwah;+KBRRUX!Zy&ESwr zh`zxq`XurLN}2HS2H6=_IJg{BRvn=~6GhNQb_Fz6-$2L5k$6ir3YUhe!<~>GSSCFM zi)zn;!9iJwYiQbV=I&k8R?xxb&Q^RGZ;$5M$I$&A3vZqAftQXJm>`!4Yjm#?iABSp z)%*eamQBX&+qszZ_ZLcNF@E}`T4*e3!0r$g+77MmYVp?4hLV~oNqgrh7Y)hv&_=KNTzm_r(G zIB_=(YQQ;}a!~r!L;D5_@$G?^@VNdX7`;is+C5nieC;L}ov()CQ9-ih$Ou*+=%sOf zuGp>;1Xo11vfS@$xbo*XwhC9$X*sXJY1VG+{gFXk4lIYe*$tHE381Ol0k6efF(5n; z9qkLD*5VPGx80^|YpQS>J|Kl6gYf96U5-a`C)ekwfYyS5T2x%T59Plu!X#5SD#3Lv>s-FEr8k}4!5@^Q&x-^>QnH_H)FTjod$N|f zh&vpMRKdl4<(RW09#&B={58!8B$L^Bk9P|$eH7x&$&-Yoi+#yL&sYo>xQvEgj<`mb z%}V2+Vq2sL&qO4XlR1gYSpNCM?1T&4y~kLLbD}`u;T<@~zV7X$Q<{^FVzJZ~$zb7n z_;T6~gU^0LcNcqby!8a${RJ>pJ%~G#n$iFA7)NT231)guri%*$aNkolLpnMMdDibC zJZ3LkFbIT-i(6^Hh$uF(UgQ=ZNhlWh2ttKrc&DHc&+mARl83nDXU1A8mH7*E-_=s* z;G zf|w6o_}^L{?29Oe6zL3Ceyo0P$EGOt|RA*>%_oE5}?Q z_s&-IHJ2shayLOJl%E$hR*duFda>JbjMf;$!A8du812Ku!2=UyWq2jTY+`;RpBb3g zErJ2t?CI>^VkCXG6K9cf208J|79TY@VmquSOMMs9H=S;1xHbf)etL-0FF(V_*JUy2 z#w~m#vmdYfOM$no+=g2km1yvN5vD2Z-H@XZ2)m>Epg7MC1!v5IVLlmDtn)!q$3xvq ze%NwK0^HsQg6@Aypxng}#q55ehLjDdyq5sgv-cDGm$HOs{061cmT{tXpJtsfahlHN zBwxjb@v}=s&eWTTdutAZs7OAnuxkR-mv3?P^jnx*Z%qVW^6`#)UuD@90p6!2`_S;? zYcy$^MW$!9U~pFss9jBh+re@8F3}g%ojssF<{WH15D(MKU&9?wPh6Mh0pHnu|HG zc9rin=YRi$$5)qO`hiID%qSF$+Gc^l41WlI%w{NoNAYK{0(Y+W3-}l^f`4|Or@|sR z;A!56!8%rK#`uhrzP1xHNj`3yx*I+l7sJiPFJN(!DX|Z9Bv;sb=?_x@o~*qe?4Nmr z9uvF=wcq!nuIXfmKk^J_4*iG6ud$q(O*Di}5#&*|P^!O96KZk`VWIjb{M360=LLyC z*%<-euY$91&ozVGs3XvArHLB7Ti|=j0Sp}F!*0JOj6384k5XTt;;F|RNlC_#vl)OJ ziR*B&$2hGid`xn)rokuMy)eBS;1Am!b6rV4hGEX@>XPHsfvq zVa7lWMDZySylWvZAnooPTv{T|^TOFQ#8nr(_3fwxn;$66KFYb;>d4WS`+*9n@cn+^j_{a{{W+}??8uUBJOePhG=s$)Y1>YHCH=O z@c0rcy6P3SZ|K1f`*Jw_zM>$%zll58%*7Xb))U`(PC&#ZaBGk^SIqPiT$L=v;WJ8L zU$0F$`nAaSV+J0%kx2TM{Gy42WptOqVa!~09v_eP)23K05|^C}9V1!X0fT7HN4;3h zpp-`Z=JgQlvSvcmHh0|i_;uF7@69CONfR-xw}b-!`}EC-54CV-oiu$rBpNPcp42e9 ze&m6)^JBU|ZU&x;W8KDC4xFTadvLd{1>XIeOd88vaQwdz)ZH-`WFZ-k&+W&Uzpr4& z)i(0)jSjpVn2GD#_hJ=eYVJxr37y;5(6((0$+q3QQM9ZP6`KE`=xtw|sAI0mh0DnC zDS?=?^ad!hEVga&JA5jU0?uVy;J&?Aj!o1pAZxCm`k^+=I<1O}oMh?3%%8ZYKA9>h z$dD!TonRCHVfx0n5Mve=VT$Q2P(N)Cd&NdI{U@nnU}-vh*!Z1$TsZ@-AQ$WZ+M-U# zf6#EhfT;RT!?J6LQmrC*+Nugpr}p8?dGql2e0|KRcnHTVBw=tYo?7|YV6xmR5cpUD z8rxj)-{w=;Ys7jD*Q;TMzZl*Vox;--Rl;Gxo8UYrj!KjckmK8;Q6kn0`+cv#-sL>Z zFJt%N@7ef^vOvYTMCzRSk;q51!pX)TnjEcksMDah)$|PFkp>J@&c*otOmLd1iu+D@ zK%`b0-b(C*dSxqm^1=e<9OdWPDN^Vtz6Q4n?~{FcYp@{A1Lh5}8A7l&xQA!a!)0o~ z)3(N0<@T7*p1q@uPI!8*A_`3Q!>$>Vc#`%*;4t|MrVR{Z$;5p6$y}QC0zHV@p+f3- z>?Jz2`r!10Y|1~UlnQP9NuQ`^^aOrv{NJP&>E020Cv{8ZB;XGVF z{GN8F>ciO0HvD;FHtrA1<59wc|NLx@`l+U6kUVwW4z!=;W8T6JsF%bZxicB zbx?da95?dn$VIgUc+CGD&b>H@`<4EIp2%~qjqP9Pmak)+er*Wf<_(x+K&@SJ$VKzx z9@>7Lp$zZx83oQ7iT zYW(q>#d|z9c`>dV&|^HPk0fGz8fr{S#Uk~17|h^uCzLnfpo9Zwl7TgGG|VCNFJq;! z45V+*7gV@t1HT^pBjI{QaJong2IR)kdVeFjthK}M#W`pmG)~k=EbiM{NR9Z8(5~DS z$UEf&z56<`YEuRNR!1mB5k;>4 zgkS7EYOOEhyu5l({B@bP?Q=fbakcRMt^0T_-yRJv)>EMaA2i*6E5OX#-$3T(DAkq_ z(0VnujddYjLy&(g&1m=w3KCb~yKM)&i@S$jL4}ZG&pde|AmeF~xM+ij@#9i@pOi=eBp0S9LEYEH>l1oNR7sATM{W_BH~J0uGEL02ID z=5#o?c^RzQ7LQ^#9dPsHdi=7!1-6^n!okn2sJ!_BHhMfmN%=c4nlla_%#*Z0do#6* zV|$@()39KF2j0{8i;nJ$XYbI418in=-;Z(hA{0ToEDW!dy@l(;(_zvAGb(!^1IDLR zbB6R4ar4$Y+|pomFp~I6i#EMPuYtGZh_*A`t{)Dogsbq>yjQTkLy)&Qvm94jrb2-b z2Wl6+#1p#j;h2#Z`cL`~D*m!=&9k+zMQbU(-Tw`)3KiqE>nSv0t3B2&{lq=F+7F9O zq~MHwJH}Z|;N;hDVD;;lq*u|MsN6q9UDdi^^W=>+UjCvUWU)oo|$WRXsTz`g1?LoNfNjkK?aHWI7A&}^H6MPr8 z;wRA#{MJ*2Tdvii=N=ha>gi5CZfK*YPiWBWPPB)$!NSML8t34nXH;g|f@@VSwdOBNbi2WXR;#cDs)Lgm+jV9En{Cq*m zUlzhV+5Y%%W;e^PZ>H&c5uV&pK>NBjFgzIw8^+Wj(q$JW)?UIHzOgv*_7O?B+=Gs@ zR)N#}80y`D+zYRtz$e!~EKl|Z7L;2-#2y2z{4E3 zKNM!R!8*n*6M!hXa`{5YPD_T{U43}DF_#_)%tgyDD(Grf0xze$0Go|>;lBr=FePgP zZuV!+lBzW7o}Y~G(o6AGKmn)j;VxKTRgQCyr=ogm6u6%f)RIUFrwwbKv2OiuXxz|& zLZMY?AJGA^dn@6N+B-D-vW7|r@$-&Hwqg3^4^T4c4=Vfe;EFoqv@lPwsFp7n>>R`j z$2KY^`5r^vdtlY4F`63m9H&O9!D-b&cr&L7L#AHWe8j(w`!Ihh^A?og&)NTQ_|_Ge zHC=+bB;>=$`5Kb{zLaw|Aq1tShT-%(tFfQ(@p8J#&@U`C=SPenHeStOog68+cTkuo ztLo25_VdBrm13muqaVEYo)4BXC$VOmH#$$fh&eYmV!n7Cd|a6b<5dy(uC|!@%YER7 z#{g`3^ockb^+Ss4MzrQH!r-HiIM*{T;t+FzryZ04MRi|#=#V?fK7RxG)rx5D+|O|T z+0Ser%@D|1@*JNGGv>f8LAa2*7-c10VTxriR*3wB5{oJLurm(#yy~PU{NF&oydOLq zT?jnS^<-TG>sp8XhH)!NEx~6OiT1R&82)@c4h!sHd7WH*QTG9Uht|N{m5y-oa5=tz z@E-j}ev@|_AF{IGFjw7L0sHwnF@1ax^LJZ=NnQ!QDD5Cg>Qivdl{P%PCLEQV0;PfS-3O@XqNPQn%R^s+uDgm?mrN`Q%DuQ z_i*0iGfruTJ#?MCM>tKR=v@>+?^Zno51E-Xnzm!`)9I)>?1U`w4HDs#v2cDY8jZ@~ z#=^NIfA%{V-5mrP?P{=Yp*K0DJc@rtg>XdcBQ9F31TR#lpD_U{u;3&K+W%$U^~;5PFV&d`Ljm^(oG`4I_uw zGB#{>5bU118rEN$!SeYQD7*Uu>Msn#-uii(_A?V8J~taebq6pB7LtI4(I}O20YvIK zC}&ZEwx>!kDQNl0V!W>$4MG(=7|VW)`I!xg*&B-C z=AXGyJrQt5lQA5tno&c#234frlOVaTkZ{MDa?Z>K0n0-i{YB@{{Ni)cgeXA?`Xz4TO8DL zMS5RXbMkWzOxn8urqy+TX^tkhB6R{Yc7(#w+fuNkAs?lG4&pN*HHf%j4_=F=;F8Ii zaLO?fyv(oS$qI@`7^_Qcr6|7Zs3n_n8zEvf0ngJ6Sz7LVT1AtDqoQadY9rgpO0pO z^1}_B9I4Z=^uh<&EPoyn`ljPUt18TjVvf&kb0OrcI^IpVji<~*@m10R5_Iba_Fs2J z8$%x$*^x-LJVcnj+81kSE-Vaf#pJ#O%zSniYc=1&OMHqU>yG0A|2z1^lDPp}18_F$ znXi%iLl>(=!I17l#(0iGyWfbI`WSv!PoU4;`6!n733j_o!&%WTg!p$-47A0I2XDZ) zjCy=a`gB74z3!;V5cJo zHm5h^0OWxAqF+S7!WVBe29e%R%P}a`gf@?LfQfK1EL1Y12Tgp?(Vz)-27M=A@4Ujq z*Wu8*ZVLQY7>Z;s^F+6OK-c6l5^~WL>TjvxgNIMx_`E96xWibeB}y3G{~5>5oCU8x zuW9)}4|U5?O+NZpAo7XcVO?XVck}wBTU1An$^>8p;Z4;^>T4 zTpZX4BOfx+`Q&~Kl-+_uO{Uz0Jq}z`oiNQ;dXHd_6Jul5Kfv`e4{@=)C+5v9qz12E zAm8s=e3;IGY4fVc#VtcP@X!DQhPk-^Ml{*QcIJw5TR~svIXZN1f&X@N(s?}}pnB<5 z^q4#Yv{=5@A;JwUjM`D3+eY`ZF4uo*$zUE}1Qrb|Fy8kORvznzoqFdXWOgmS@~}iL z(`fXTm&7i=26!Hjh+EzdqPMpk>+oxm_NFE9ds!bf{qY=DooU9A^IhE4AA8~cpe=HX zn(=jE6z#Bg;vT5+Bc9>rsQNMrABzQ0N8w6x!}|p${3?UzuKiFEph7rVDmWCeiMlP& zfu%3LaG$Qs#O&!DY%TtRTw5o+@XHe}zx{+MWnPhj8Fj0nt&}%;^0*Ba zJRgH+EVD75_z^O}gZNCFjr@~TIf`HPWk`T&z0is+-ssa(SY z0hpQ%+%&0ZNIAa|=AIuWlWsG16aOpZdv1$j5D0VRwNTt&lkR{18DzE0h)Tc^6y~zb zvrh`}hYZ5*XFDLhG>vv`zJ=SrJwh!H_8gr19F$tVBmc}C_)8vP_f2;gzrGjCFSV0N z%`0KHyd>kSu+Al8k*g@1=9Ks@h0UhjF!+848S7`ez3>NwUp5z&`b%I*PzK;=2WLaM zCp3Ls2(Q^3^!4mST++&~HOFBQn7S0=*!i6x)D}#92j76)bZ^{oD+KALG_;DV#MipM zWcgn`hzfZE_m7@{tgd;SwrhqQvFOXNdC&!p1h8vwgC~ahEukYH2f2j~-rS zE`YdjAG|-s8kQ#wK$UbOne^i=-c=TZU$+O*t-KL_4$I*`*V&~0#|YYLKB1X++Ss16 z5B`oiq2lm5{Bo=c*7bU0&H6Q<^WQ^!vAzf8J->hp>+U~!XoQjGp4f2t4AIjr()=d& z38qKh!L+hk2+LyG2oDo<%Q%2@t14mpc4g9dX(qhaVf~2j8=yZt9XBXE!Gi80a!pwe zc|X{k^PV#}kKaW}p#hMNXMHNGbX4<>L{;Zb60nv%Gs@qff0jGPSlXKmvHeB22jjT8 zxX|8{<)m`jO8jMcgIo~11)tj^aE?zgV+BOvtfDVq5?PC$XA41FUmpiKUt!LMJMi=9 zPjb|2HQwxfhTnGFhsHEd(EfRVd**~3CWw`wYv46FHKiSo%@xPZ0;zCYG6yqKufP+p z_t418M>XFc^zMpQw3m*go}s}Y?YRSCv=m=1>4vWw{WLbVACp()b1uGPEbhV)wv$po z%|(U4Uvm=DBR%oxpc^iGQAQ*RS8^-#Eur4Wg?ztSi*=<*_~;j6oO~CQ2ZiCCo%4at ziGdb@JlIym+^Hh|&?@c;GtV~Ttgo`LJGB?hXP9#LsCLsplSjax{5$7Uo`6;o=s~7K zA(8X(CftM%cv)AEo9^(%6p-_?)JXiMT+G*%fD$hm+?`Q^y3Zo;Z<-VS_Vj~9yHoJ$aSHPC1TeEj6i+UF zk7CLnb5?DAOkJ)A)8pe#xaDyIE_8fE9ged5Xc#}-Z4Tr}>M4WqpXZQ}GR7S|E1>oL zNEYgAzMz4VD`3sL*s}WZRRkZySD>t z&nzM`OL$zXU5?;dW{-1j$7A4s+i9p|3)HIVqT~7x#4E!O9ftPflAkfG8~>Nifp*TO6>qTqpAV!v zG8b665-tq1BZX~EP@)OAH`^N8kAy>(?h9D6RfRMiv%{uTX}V;uDk&Fz1FdsDQukza zwl;nMtA_Wm_ZDXyd}Ifg)8>$g-OLGj=_V>j-ylyL45*AmG|Jz)4>>{RXd^16RbiZf zMV>V3)?( zPkKbsp`Cm2@EpeWzvzd3tZVouWeU_Wm~YsKDAf-s#(mooiH#RSVD3=I6=nNr`#S=4 z_u`@AryiuU`$A}L0#4)yL(lSRa!6Vf4*ph$7YZ>j*M2YlblMG;jNh@!go{@l59793 zvq)=+ELiM(4CY5`Io_A^IoU)EB#tA!JF$^?4Zb4X8F~0#-vd3NLg zNM)a;0+VAn<1dQAxV{v1FFwUD62Ix0mak|(^%Ph>(}H5BG{P;M1NTfqvE#2rj;692 z92WS2%`_ySiLr|_%NdG3ovKk)3_Y^uD&7(1euFwT1oV=eFG1Z?AR zd$!yM{!v1*LVj}}?RUb7JQ+^4q&65^X2JJX4~$azgsbxJ6XgU&crtVZpX5ZLNQMkv zlpjMr=~1%&kT(tN{mV@Y3?%x!R{>;p!7N=MYflUi^S&R<70J&tHS+++0BOv1T#sgb z(I~RTALl>i!e8BV$|;_ShB8W;_HMqg^p*vLUhw4jSlNSH`74Ok-Ad-{>P4wrk~rdD z3TN)Ij=uOp=A)g5c?0fnQy_{etP$iTtiDX={qjI7=`>W_C5WHneq;88kXEdpJFGvF zO1Bs`(+{b_TAd2ZVTF1Z>@QHloaur@*d_@ctu==GN0xzbV-$J`4wJaMyI|nZZBD9D z1U<%;qwD1-V|wsGEKPMr+ijO2mju9{OVygoH_Jou%6P70h7}qGMw6wvXW?*O7zo_R z2Aypmz`pJq{#Tkq?nah?x;A6+v6+Oms4f&uF^1nEpE-pi#UL-&3>%D1(7SX5{HL(& zz;+L|TS!1M;KbhRH$%qquc*(9%upCf-SHR6&;T^I`I*UHlhMk#k=NPYhZ#vYEMknsnwf!DaCDvPX{S4fV^2VjR# zHAL5`!SxG4q_Al=Sbq-T?q8G*d=CpiXWmjOvt0&1ub6=9pMNNS9^3tv4%0;OY0Mcf z2d!7fNT**BzP3q)%PSh;DLdP36Z!^g$4ybOn{i5&PLR^mPEb=iL9QID9%eka3(V2#4XIL9_~qVp+~=v?$aNzhH5bFPr?US zi8@|Rc${_1kH7aMtGec6=?({M={tircT1t!p(UU!?SP6OpEHib99(f}5=<@Ig^#3H z((e+|oPDR)5{HK$U?jBxcka23))y9FkAXi_OAbQf<_w4n_JJv_X&{(350YHK( zooca=EuRZ3?PqAtJ?Tno?~c=iz0(*oTn3HfY0iUPleDTt^qK1_mGtfk#R0=sn9(c? zE)j3JHGYv;xvmlBwRA(Mg$v1?xgX+e^YFaD17bRy4iXj@abg|C=he@l!gvWf-e~7u zklRXp9@T@hRW)e$F%Ec$6}t0(LYq4skj?mB5&IQE?CBUWTRK3ZQ`BI-zBt|nb2!}e z7DK(0X-J?wBSQps|X?7o>r&k8FtaRZ_R5?7IISb1DSE2_e46dz5Y_1Gr-nK$W7#xBdMFp_J z)&SD~se#Yl`*>Ze2K0K41G&5$&$|L1PAp*A2y2vRd4PYO1fUY93wJcTV}AG$=VJ6q z9G&wFZ&|#Bt{+Ru42e!4S{LAkd<8ybnzZFd>vQH?pNEsAkIHQF0(rhP5*Rpun`XE{ z#KjPFUH%QI!YwRmV~pPeN+d&_%@4+Uh=m068lIJdZ&GUX^6)zhw%iDolG8v{-4n%U zlz`p=CG?r*ho<%2Q2nxxOi!tU?Faa>H?VBj-#$K`Wqlw{-fs%4-?h;-Cr04vOuE+t{I&DU`iE6r4uac9sPk`>JXO66!k@(Wc9$pQl zkw%jbL_#oHX47t{7yC!CsYjn9v7!)wFuAyG7i^F@|o()>s; z7L_! zk0V^%U#RI9la3O*H-l61F8pTTozoncg1-qtp^{|i(ih+r1&U$hS4RjC+zM9*oIzM2 z3-=7mW7MgsjM?BtCkwVghB3uCH;mDAt0HcB?E*itOK>6czh&vHhKjxi+|+^1#Pzi# z4ovR?qb-5-%FZxU8eakT+I>+ZSB&LxK0?YCSMa?T46|0MK=Il~xPH=es;Fa3l}=CM z$uDmsx950bjru2u>tSx29o7)hn*&2So){Q&9uqTaNL%oIT=(B$^i#-Z_dp)#)Q+Ki zzZXa*v3HY`(wqgE{n*je1Vg1Q_>rTBdu4@rX8F$G@u!%Z^5YaoU)TW@Cb+oAd6NsH+Dco%SoF4q8R<#rf{Xtcp^Wq z7%%TFrt>wJTkJs--npKI<#ocm-j)gC>Ftisg(UH5L^SvG-ZD68vy0;N09^y=5|p&vru?F`3m%UZAa-SMeMMfg}dj)lb+Z~D0<)< zUcden_W6Y1o;ewG>)+R82hRt~Ul^c-fFIoT;n&h{SOwocRgl%f^3>^uGjN!T%rw0f z6WBYXtDrIzXeU#?XFs`e5B$-gxCKrvRltvU6gS820e!;DH$FrO6%w(Ox z%2CjXc#9F%Gok$eKTmK$704SM07H)>gm3sB*_%}g*Y%fz#JTN|crO|y?Fy;LrU|wm z-Ui%@lOSlQgq-#4#^W~ips7CwbN^c7KEE~WOn3-t_TGZvjv+Xh^ne(#9_Q!f+v$~w zyUh2y0}2Sqw&b2oE8ddff^oAdsQf(!34gp`p!pQQK6QkH$~A_$e$B*Hz6S zf-1Gx&9ahV{Wd7Pa+sj1E(mI{UcTuY*utLE#|L)8gAe84HWJU-Efa(B)vm~wW(Dre z8_14HiNvDv4QlVqq4|-A$i)1&cszGDu8wv`DBw-Q}7$l+1rEqOFleo@|ieDf5XEb7od94 zPu!;~Mtb6U;l~YrUZKuoG;e+Y5_w^0>EBM`0|W5-)_6P`$_J0VTS-*-ZG2m74OVrP zG5S;XW9ufVWeZ8VGTmLG6Gvo(B2%t#11yM*qAvC zA7`P0;m+K7n(7I+#z)#RW51AD}80CVB719KUQ(`Thj1 zXoq3ZY7HoT{DWGv{K~cb$JD@9A2;6Kjo&p5Xyy0y z!~Aic^nq{?NY69N8E5;r>3cUo(xD-&{P+PHYPL}uhre{Bx&to?Cg4ZON={(J9Z;EI zoh8Kq?40|EtWB?l_<(=(hI$V@A@UFF`Rq7P5>Mmt*S_%YNdZL3eMc;)qZgL_fR$Z; z>HQNOC?>*Kr_r%kd?f}93p|MQ#9y47c?9>&R>O=X9v~M{3;jQ{vD@_}O;3_#+(s=3 zVn36_3JturCd9c=$?~ZK-(lK_E0#LVgI8f%kX+k} z*4pJq;w4Q9UNhCODOUWjpIz8LD+UD7Psv= zgtA-2Id8>s>0tj<&atX@P^&?SXyijk;OoHCIvF5d@fl0EHG*kF5}05a_x0~5oT6z0 zlrycAQ+=U{T3mLA3DsnZ+dGi+W--1#i)h%)ctzh%!LZyHl%9=W<^wey9Dv9)AK1V##@*v`*i(KTbkB!E%x5>8n=%#iw_bv5$v4=ca-A+?b0Nw2 z6|m?&W8E99gB$-C7hq@(3dlMVGl?7sCZEWl>IkM3&cHvJUT6&|^eI_HnJUci`g%7 z^Th+wyypQXXP?I-VTu^3k)?UuS^^5W$yiqFiJnpVI@^-eQ!t%76ih6a@Y(%CS;{h;`OvRp53_soG8En5i zip>I&WS-F*99M0@j){I+Vz`TY!DBw=VmI`^t*19xhC{nwkiPqwj#+Qb@Wfp{v@5&= zw=THD<~2rSZoqY%x@;cIuq?)2OEGxv=t~aVPy=uOOt3rh0q4^^Dwt=F_g+&p5uVTT z?;O~-<2e{>pTTKeovfeFvX+kX!P!0swu*G(CBgS#ex3&p7e_$z_l?9Q+XSC$SD;XG zHdrdW1KyAx_G~>wPsD6vpYH@a9#z1G9wQjqG8I|`UD@AdCa52|gpb~NVdn5_jGng> zqvM3M=7~l_j&mT&t{bIB^-pmP^XaBml@OtM_UQf0A8X9FK+U~mJbN+>Z#(dzg-b2^ z?>SE+EK_KPXC73Z)`ZVXmU7!qJ%vr&652lA2DbzXIQ5o~Ve)Ro&=b1kuSN}S9#{Y} zm*?ZFEx5BPHqgV{n;GE!FynZF7k%*PG*epf?gfd&Zn)#B|VAHe(aOYl*7j7#Jsft-2| zLXvh6)FKY0_y;`GL+S4;FTl6s5xmMbr$jZb*9_rVwK)3v zPaxlD0`6eXcoVsw+&|@|AiVNEJnHSGPO^sN-;QOd`C5&!+*R>nSUuzm70|u~#!x&z z5mIl>fwdWDP+ywBCFZsJwo;u2w6HmDcp~f0F(>I)KNvkwhx1w2i3;-Z8Xnfu8<7Z7 zE$pn?UxOd!rC>vo1NxT{+&btB>kkJ*dv!FMDThF~_cu`beTyv3;ekp-032N40&k8+ zk^p@V8j#RID;}?*X?eml)^QJ>7#ZON2|kAKN(ZXnlLP9NpNUc0Hr#%1m}s9pO;PC^%Bm*IM- zjOE9`Z3eh}EE*OSj52po4VAtsOxDM=qr2~Xcr*Jb^|_2FpLz)*tTd^tlOuG8GH2Q< ziigYc!7GjnO~wLWzHnvkQ3N0VEhEe@}JV^MT!sCVMRcx; zBr7{YRwP?Sh%%mYKgdXA?~$32mFy^f=lcBzE-vSD&V9e%uUFT(TFj}ih4DZ|mV>&D ztM2-t$Vm@$wJ*mpH)n+Z*qiswa&XaDhq71w@YRzlaIwFQRP-BM{GJD?yn3h{-a{4I zC-9NJXjT&t~aY0&%bX z3_LtJjjlE9MTcddvEk}8?8$G2BjV0f;_vw(Ad zFOcZJmgq>f;iM%eL7L4hzg&BZHhS#c{y+yFq@BaXrP5&I{24vhzQ)My<+LJI6XD1^ zlnYHH&uzCL->Z|9$hK7F!ZgEI|Hof8xL#Yq)o5n03eU zFf5{;?iCJ(jeFw2!u1^R>$rp7?mx*#Q{Us|6vRJq_Eg{F5^i2hu$t}F)`<+^oLx`x z_Od@vw)`To46enQe2%y$xdwDP`l0M^A1|MpWCfV;vtf?+=^M9bj?smFPf0*?62B9B&^Bm5Q z!ivhr@Far^n#nHM_dFSHFwd1`nUG4PZ!1|H6OOg9HlUK{hZ-K0sNUc~H5OLj@Wog7 z_Udt1kYGq^qoiOO#{%9tE`cvrF?2@n5h7=H1wwlpa7q3E9_T8^?=M^ErIKG9Blo#* z^SU6fDK{K7RhL4F(0urE@e-X_>xUEn&BoCuX}FhV@LR7}qt~KR3>@ereKZs#1&*`3 zY${sa7vuKE<=~wg8pKwz50(ksf>iz(NX>jqYtP8wCX-L#dD5E1yo{zM5e0Pd-f|F= zzXM;35zjfXHxhEm&$W%PA?XXWEWC)9=hUME`#nUc{Y1H!?etf1Eap~d)8XxIkP+R4 zU$ZRf;rQKj&t@T>+{#Qc72X9=)`=y9wXy9#D>6Zvm&-x8ndh;trKm)U4>m z&3$2T=7$MP3pU3n-FT8w_>EXeXA}RXzod=2pSJg5ao1By8PNjkPSWreRt-AL&aM>J9j4Q4%kxb6{+y? z<~kJS-6V5nzrfx@dSuF*_@uhG8F=&UZH!bHgPm-5UhiLo@k_j+NBk)AycP}U*6Nxr*8z;B*0=R;pB zO2kH!e4{+Fe8)%B|HZ}gw?;8N#vQH%dctRqL^vOtgthEGeDi$~xhtpuX$fhfL|!hgDf|RC`J_v95Z6=e6BI$zcUJRjtP#I~n(R zWQ@AAu4;ju8q_S*hwAPOluj&1EBzxFroEQc<}2~w!~3}OnhZ?4z%oPc8*zjA7+g+g z?1{7xaMbK3wSZurs(voD2_XA9p$J8lAxr*04)J_HFNKfyRC9?rFng1_r(qINX_ zF7B#^?V)Dmhv!A^tGVWoWR{L6g!jUNjW>y{QYHMy_G8@McH9+GPxeWOLyKAmRn+Lj z)M!DfU#G>b;Y$Yd+cnC`8!F*%QvzqMXETZiZAO>UHXNHK2{WF*#DzJk*mATVmn;ng zqh1wgSXYnl^PJH*SslMtk3wjaH^jy!qPjc}Q`h>!X(dIj*V-W3rC@@tJN)Sh#vWBk zenw26<-nKNHh9#DsN}9o1!7#muktCj1bgEy$5!%CdNy9zDNf`^gjG^5`=ZiICp=Wo zyjvGV;lDxF|K&SMrzuL)O4Bg-d8LCEo^ONvOTH+OsY*V|zlQA2N4QOPgkC-rPa4Y~ zA)ZzTmu3F2Yh-ele)wXzy6H8$f8R;g{k8@+ zJz4_0>vzFo0WL&bbBB48`tZ!;gD5-v4n}p~l0xyb_^!GHvv>A_gUv(SZm3)WmW#_spo!clRBQF`gZO_7A(`s>x z!CSODEJFvM_QAoDg=nO(nm8RyqYL)7pvtv6kkn5@|4RuNJG6-&lD-V76I)=-ngn!I zo`5&82Iy;DkNbCeLyoK)iYQs4&-ow>^-qVcmQ8d6`)-xHI+Kh$nw%C=2{vcqA+Yox zY>j@1(bKl!nJXojnDrS7F8Scrw^cN6#G5Yv_ZbgeZ>7fGn%u;O%^)ns0|Qq_?D;$g zT1hAROWkF6@8w{#*&p<#gL!$alI8 zx*LjciJS*CD%c?}*a_Aw9VCVV&TyvF11+9t<66-?Ff&euuR;B&^IZ@WRa)`X2Oh*2 z`{U6|mAJ0p3W*tVCV}y_D5mR-X6@#1DE~Pm?C`*0kY$Xf;V1%?6ZmJ)hUgZH@Dx`Bb0lm$l^sh5XzlM2 zQo$Q%9*I^Alu@DkIwMgsO`0*uzf-$*)}=ET!ui=fB>d1>To_*o9ah;Gka7?NpG4xO zS>?!or-=FoN>Cjw_IEy%2^tR#akrK%j%zjGj09V>ikQi}RQ#H&*6;z}xw_zpg9Tp6 zb)|{{%%2kdNVy@rn}q5X!kse#IIZ$7^1Q@(T3VvmTbTkMOb+9jB_rf${zm+Hv=FSb zonWudCU_mjh24g3cu_YW4&PJ)Q>j>`Q%ld|;?7_YJ#hy-SpHUDAP|2~|A!a zSPoj;N`WGQXI$%?*LX|EmxQo8(6PKcSnV$bL;nfk))zM9;8lKJYXN)i9inby%aA1ZbYQ@-D%-@qYfH(I<&|>XO)M)FWCDWqur}QoK6ch#N`Xv~*`3G}6Edle( z%6MQP4rHhszN~x7+yu6G^;Z$dE-2(IjvwKk`1=QK+6!szjSqO%_6Th|Tfmk1Gamvo zvXIr}1}OoVO%rBm4Vm?*rxWtMH;Y8z$@W zIDQom@w?nCkeuHFcUYeAWxNrtx^{ zI$h-j%wMnoD~fzjMgY)FwFQz7Uc@Zf46^S{2&60uql0!G@MxVZYDk?$t+CahJh&6G z_VmE(sv6?1p2G3x){%u}N5OuWu{Ju>@RIl)xLFs6%&ZC?N5XMuun-tj$>Ge(ec05X z&0K3K;56L?r6pd$wJva({bL-5vJTR&Ay)|4b2Is%3qQ}UzZk*{9B`qQ3BBqQbO;Kd&8o!9(48pfF^n!pnvofz2Wo&PJREWTljFtX_C$D^hZB|e4W0wqecz?xD z0nbQWSSpyIFU#^fNl{8iaoLyh6;l2QJm&SacVPq)o>;CT+Czst5Guxj~ar6RhaJiE_3l zSl{d?iMo*jM%h*H=$kc)$;{;TSZJW2e>)^OwGcJK5S${yW~d7z;R$1e9WQr;FAv>F zM}Iurn{$$gZa+>ncfUZsl6@#2S_zZCcaT)m*SIr$3EdKP59cH#WBzO-n7I8B=a_n< zq2qj<&94oe2UFNQ`Xza|bsq-RIZ~J0MCxatj$uk$=#PCLQQVWgZ@CF5a&a7aLLR8J zeiLk2a2U&C*tfBD0ORee!63&Oozi?@^D`UVI`s)YXWx>nxKHp>wuC5dKS+;0KMQuM z4={6KE9w0=iaTIBCU6CK2C@FIcwQ&^ZpxrnyerZ3XDYlGjX<%_4xE*-btLX5^G2FR z!S$nSSbkNQNAA5Roy}|ERhIzIeO(hBc9ev-o@1mWDhz^FX_4lAnQ;5d64YTEa(ekC zEGn4?p+|1B+{9OSn9_)K5BRXgZ6CJ1F{Se1%dtt%fcbL^X#D~o!oRv6?dH;V5 z;%B^mo!@k1u06-uG7JwMSqF1-xVY=mFvsG$J8XS$4<`lM5@)+5@I0I4bSpy$cTW(s z&UC{&{I;k*a}I7iqlMFBmct~CL|FLmE=sR_#xY`kP^AY0DB@ECSJcg*ZiPwm;p!!H zl4>M+$qdug{yFHiq7?_sG}z3+9@<&YW@d&Rjtt4b@y1h}kiHaL^RE>8Q!I(w?ALhC zb22CF9^yWqd{AWH@zGf$a3$9eX7)bBC+~cy9r;bhr@La781rIl90m39z4Y1)K9ywW zK{6ctf~2`+qNZg(^F(SwM(#D#ZeW4e(|vereL6X$8w=55+p$6=9p;2azzV6o0HVKP z-;o6BIw1rucP((?MK>aPw-(Z`EqpNMF#75uWYLe^ z9?o&ghnxayy6mhPXn*X)cQ5zjc`IqK<7ZhCtuC6(=9X%ckAr8-Ju0ca04I4@)2!nU zKvr)SCW+Z%mZ<>Q8ubZJmfeQuVh5;PtT&q@DPpbmGYoeNfFtAQ$^XlZ%<&qWk2rdwZkMcX{=uxg7MLp!1skGth}#4 zo#yA0+#PO^mD~OmV zLBAW|);oR`^jHkibpo98;mkvl$GoP|pJ0_jDSX`OL2lA_WRDbc+YS0cNT3uLRy5P8 zJF}5La}oq7s)Kx8JUo(JNN2=agGrDnal-+6B_ox(cCfR6xPZc`L@=B$fOUUGIL1y{ zbfK{n^{`}fV)lN@UHTFm+8>e%J9X$`9nyP+5!f?+9i^u+PK8V>6bG(=t@aj>e%P5V z)i?|GsS8kFegPa85Ks|#=K<{v$lfgf5wE~vPUL$t+^Tnigq`?=Zmi3R75)LK zY-c>xe>cYS^`dj|bJ)pqf&UIiF$P};EI(pNW*8M6%33xD=#0<-@>|VQebPqz`wjBZV&` z=*Zo+_TkH>B8alZ6t3PJmDg>pCesFVHI<}ay`OQpW zEPK$3^Y(Fpvt^XNjZcPDdDf|ZDi4VcK46FC+`kp)!Dx*ax1(+m2yYt2MzNLP_|^-3 z)R6RiQ6&;{eKD{52KQ3HO>8Th#B09OfimM6(6Qz<1h>UPTD%T}pvj|0x&#jDc!TxX z@2Ix=JHDEh2`7$M!?J|gFuFJu1oy7N>R(kb5S#}CM+3p&cMY~R{{p#z_3&D!5ME2n zL1T@XaO&-P*wle=QSUOU#B*@Ep?UJ#1BHO8JLl!=oWQSjGvOUSHHxT+^8-8Z|?#t_Z z;r&X+0=IC0bGEl(XjM9`p81g+T)qGmQ@L05D#oJ9 zkye<^i2?C|O@OZ}VbQ5BViuc9o;0k7l>Ki&LaGvrVklPslBF3m^9kF8b%3~7hs_BllYr6XXS+kOqNZ-mM4QmgYD4F2gULC?Gjx6avU$8 z7i4d_2A0Dthm=q6U?IzNt93H()2#bkj-DQUqx%dSj%IN;UHt%p%U@9Ec~ewg{Cki6 zv#Ln=NDcMo%OtW>=RrY40mk2UA^)BFiAVQ{;H6(viH6u^oTk*tW&wd%^*fww?R*Wt zIwx`cs`zm2j}$n?G7WoC7HUGfFl8hkou)LPRbece9X3Ud&1XCsFogR|!>Ou@H@$)S zF!VJV6n!6od!|2&PD0jPn8`4`y)K1r+wX_Y` zwnadWH!Bbg$3f2E4XkwzgGmzI=+U#1TWuRd4m_F;3zfD(z|%@Zza&`NWP^IMc%VGf zf$kg2rMJ9lx!a4(pj$Ya>^*Ib&vRN~eOUtp1eigQM-El6NJH}{=}<`ZxocS7@lkL* zEeQU>X6$TVcio8H(N#e8Y!_`v?`AVvZ>qMl1TE5&!A?z!>D;98W=9{S`u1V>kQ3Qn zR|38VJ8`a_CmFZwgtFQGD7)@ErWX9gtf~(nuiFQCNq#tW(sdeXU5)ngF;uZ*J6@}} zjscZ3@sZyu*kDu$F;Y3;+p`f$%HIM{Zx1NwKSWV$XV@_BAfAp6=e$`MiMs_umFsj) z!X*J;GIePfM2>Q4-rzHAxmX5=Sr*JCv5%bdTu&8ucLL|>TC5pbh{sGjV0Bg%<&8#j zeV-|T5ZR9oJ$CTs4;Qk(WutPEHH``OhQCRNK-RR6Wkz4();=!0|02kn6ukm|G$ztg znI#bMWj>vAJQlIFlNJ`s|u+S@S9w-H5S zJ(#!0oclbq5;dGQL(HkkybpH1ROg2v*tcC!3f@g6wT)7%&f1u)~Z|E-C2#fUkaSg8kk93UC%)v_Xs)a(2oF!w7^-!zca(ujC3OsBs z2G3?bmQ4-k?pQgBG0{n|D=8H|8U7;bW~21_p>S}M{RPd-jp44_FEHNj1)kDe)GRkA z1(u1(|Bi>QIaO56m+jnYUf_~c3%Itb5tNJOLGDBn*u0g2>czv!k4P}oJWRq@ZqIST zHIIhK9-2gMZ44QSZ3Osn<*^72@di>>l;&%F0ds%b@}W*Yz|5<1$d)JT;QI^ zF69F^9I)n`7vml%6K`(e>V}mi@7xR zxCfiz`Qu>!2TWgKgBByI(7N{(w3=n()T~CBD}s zL@|GgE+oD%1#gK$d~kmjEV@<>E{gUfK3W?t*UZM!(kNJWcZ9S0_bgQ2C<$U+mLT}y z0vx~QN(i47SU2?HQFcy68{ENBt@jvn)EXOCq~I>y5lmUhw6Yo%xb$uwT)muuMr+0J zdVe~M&(VUO;XP#LmQQ%?_jh_>yE<&}TZgCTIFOI$Y*BRiJ{)a&M_+q3CXJpWXmPd& z-9N7bHoo$ADYS)0R zv?P4x>mY{}(m-W)3d|Z%z>J0;crN7~=xr#3@oY2L{n$=Stp{f% zGEh^6y{l5Zpr9y+7>M{|^>;^zn3oR28Y@wGIb+#IoP#U#KcKnY2VyvF9GyzWaQ&)e zVic#3gIBZAM&=YPQ?A0N?)Ff-%oVbFr^Afg$M9LCiTJEy%-_&Jyd4sO#g6$j;eZm= z4Y|wNT$o3T)5Y<#(KiSa+=N8yBtH4_1NkRhp|i6V)^G5EO+_ix;F}oF{_zL!l@aDm z`(?@4+d?R9q{sbc+DBIGAEv|3%R$arpB`Hx%G-B42aX)OM*=no@s!U5fxCANId71H5n~-l3h{w6+bFh*@5OYZ?~t;|nkGw@V~>7<@{t%7+*#Gc@@Yl?XQ}jh zr?Ndz6J330oLoC>$QYgOP;yTLUhj2zZW)J-Et3+i!F65|Q_hZF689XP#-`4uJSfPeEC z1bMT$Xyq`Tw2T00PCY0HcHstvOE5Rv2OG|%0B_QzU6Q$ zK$aypUBGBs3i|tJ5ibE(Y83yR7M%Kuk4?VfB!lPh#m)?O?k~lSAq{BaUrNX&1H4~- znDrN*pip))WTZH8c{ALJRnT$xKFJn;NKzEfI3w4 z?D2wT2`rmgN}9JgL$QS>3@!{q?JdciL*K1YYIgoPiRVLa$IsX?`R1#|`qs`%I@Cy%8| z)1_gtIHqNcr(B;a>$1B~;EiW!xLknOeKrfr#uwn7l0R5b&jaiG>2PXA5;!*4g4*A9 zn6|VU9v|Ps@zJq#x3AE#Q3XLOg%%6Y$P+z+-j@RGMVt z{E!%q_@!;6S-2kbRr_J>F+!#1}2J3iq{#MZlGFrOA&i3p;pN4{`|n}0&D{7)?1RDmGF z_!F7G;6QaWtYb;k*`iwklT`8a>>M(-*dIkMyvECO+o%iI2dDU@K=X4WXn0=&$7bl^ zZ@)x1AQ%9*+pJI~%^ycg!XaKd5mp=a0DpP~2;@=}9!rPwo0*G#F273rnr6_3Id~=U z1*%^u2AHRWa(hf+Q;81 zI0fl1>EfGd*xmMrysoI?thZwCvCY?5_I5scv3$fgTR(K%+k+!9EYtYoBXpdMLi?69 zxOF8CCQI`;W>U|Qr(TO^XJ#ekI54!I$hh;?`=pb$nhy7=B z&%Eo!Mc-B6`ideTLp! zlwSvze%qkb``y^TC7JBdeTkK=d2o5a84g>;<9u03aw|v-uWfXKdJA(El(_Ir{tU6Pi5#z}aMIh7tOH*gPBn zPmCAi-OA-~=b;LgwoU>WA#c=K5eK&H-S}d1FOAbu!?MbqAZgqR=WQiWsM8mg>DeF` zif|y_3TA8g(Drxv$jdOL$E8}Ciyzqq`vk z_a%p6tUv)g`O-&~1M{G8a2;+F^Pm|MY!>Rx$6L-=ezI)?_zmYmw16wdcFL2^Wx6;? zv>Q@>_j3y@EpgFhRWM$}gN5v8P|>TVa^F6~*PX*)#@m7ggP*D8`f$u){QCc5rlOuz z3az&^fddPC;m-rs1yG}?=KKJThPgoVqhw-ZM#;tLr!iW86qcn7Ld#+^m@f1P&SjXP z$0B}};CXWpt^D!I!_Uyyw-Ri0CGfw>Q}Bec!W5RDrJMf)y5$*F2(&@j_h)gr zQ#gn`-Hea+7Gcvf6$sm90}=tTTxDBxNYOLk*r*neqO9G-eX9<kds#2M)MP$whYR@5-Vd+dXvVGe?Rd&$6~sPx1ut%Rp??n#%qFV> z-&V$dt}cOqHa*;Fv<=NwtU*0&7yi*a%h>U<%*#58=O0F+UjlQR%r8ffn@)UspVG-& zH_<+iK_KdTqpbJLw!^AwwoNCES!Bh2{;9H}v zRB~z!-n0#2%+D_%l&OfDdUt}bDpO$iZ-dhYlzcds16_&CN51bL3U9LG7SB6FA6@4p zoo1QV(kY{OTlX}K>6dddmv&OI>lfJr!T?w9+=O1Lk#t?zarl~YFxlENi@N21#lp0& zWdGnVc$_DL^>gOq@2YTUTrv!KEq8IG{2#usw+Dx(9VlRLfm3#jfqjlP^DBhXwo6iE zS4KKcmGVZB@N!c1?|@Q9ml-ZeoJomrKg?~Jhco@kNZ<1=vT(+AP;l%AkFE1j|H(np zQMVM`1(UdyV>yss&AK+$FQD*=Ctfr3z&W?dL1(ESREdm{gzH08mu~>Lx18~r{tm{m zn#A0Ae@T`2V-RdN$F0pT@ZWw(TvYlKPiO>zU#1%_r?;r4Z#r2alMj)?k>tL7AiMkY zB%E&P=7{_ohp9uBq&jb$c_<#>*PYFvweBj~v*_|i+bE2eS0qzBtw7VH6|ZTIVV)!7 z>h5_6I}dx~6wx-Qis&M9|Ab)3mI;`*LJ_w7y@hk1@T)j(XRdWyAK>`<())a2FnyZ} zT+Dn$hrT33_A5z_W$txS{dWnyd9nf0ircU-r52&2#XNqy52 z>gOB|_TTGawNNUS2NwYQ4+A%7CtJ$p!S1{Wo%-M{94+)E7x)lo@H=C$;v5WrABMjQ zUXo!sPrBQ#jy6smr?)PgNlslJ2`VBUXy~~Jy8^^e_Vh(uIxC86CRj#_WUX<87Y+67 zcXmuD5VakZLFD%VI4h(GChr$OrSdzj?jIL?TH*-4b6&t=iLbD}c?bmE2;*{l;#Qdi za;=`_lO;r9F`FIuD<;CW0B@R*Bnbb_8HDxKI~eCY0=zns=(gN_!0*8Wsgg60Uoih!L8m&H0kONHrJgE@Ap5(;aSVz!~JHQYm^0LyAMNZ zk2lA9p*72a7qL9ZN3z8r1cDb&W4W#^AipD!^U!%E8v13!FO9{p$;z25K7WdADABYY+;A zx?ovb2jnc`QWvXyxLnDl)T4|TJorjm3anx3;aYC`Dg~%H-VC|g&N#f-1Pc1yY4(~| z7&nnmd%0{D)8T;R;y4^rdxq-_Zs3=ILQoyehHyRR_jx79E$r)oeUdToU1k)sh25c{ zqykEGF5xqG8MGf!zlqa#_mSkYPF}@bsg<>}a;G4}| zxV%FbZUhHn#_(n+`|Jy^rbLsJX(!0#^It*z^dl5u`NffWZBVhM4$egugT#~fFyliJ ztl_C*qU|945w8F_etEFost1Lt@4@;U0TMfJ9dZ+9z#}yu)~7#44bD!&>kY49;<*Q0 zZ2kiu@)b~f<}lUSxEjuEd{4H-MAEB=8llHK6tu+GlTQmG@H--?8)>7biaSj(jKP1u z%CUZ5DGs>_@UFNOV}C&k2nS{3n@Bc0sMP~GgHjCLy&mS4UWf6Q0Wiohp~rHU$ow5vS~H1PLVx*ijpbx@jNq$Hz!I`MDW6V(gbZ zRa4xCSnQ~A7B0IuzI=NuHD2dXpMpv=k=L(Yfc z&wC|kQs;*w-ELr^)<-%tg?NQ5+hpu5r~D-5DeAmTp)0bU<1yuN;!*wqf)b8`yTxZn zmHLN*Mp8H}u9r-?If=@2HlmLCI#f}NBL@wW>G7l^^mp-ZymIpav6D&$(aCw-uj{@M zg**$O`Qbojy{6mJ9Z=7$6-6yC!N%?wB7N8kO5K{sKg~H9VVK2z*t!z3ic`7M&&eTZ z_LJz3J^1V?AHF~F5sY~n;9z)uLt3;-ZfZN zAB4*{T!w)oeN;p9J4Q9WA;C?L;p504M|!;yJUPD)!=|wr@ftU1+|!GjI=-{cmOVU~ z`wsS}p5h#s*9RM3wqc-JJ-vSI2acJ_VSucO< zz@-MRD&W!}iNgBMXfL)D`hwap#;*)!UACngXDgwyRWCQ=%qnn+se#{z-SCg6ElvBv z&m)S{v59?`br;rw^5qhoqbC4AKRkn+{zq8!HWWS`Fa&`)v(bA+HJXmy#Zb>Uvg)83 zZq{;xVZU@3xu5};wASNLKFcB;x{Mdb`(V29E&R0cCbS(7hOggTV8FVCyec`1dLzjo zU6c$a=aP|s?jBU%nhYxMKSNnX4L-Ji1#ceKeUsHl>EtN7 zB+naGE%nC&B|nVQd5eE9KP0JsO|V$o6@JCKu|57%<&##5_+&fd+uL14c_&SX(iMl~ ztSnd>6V8!!xQn*^{Jg&%#+Z=Xg^Og5kaJ5-l*fd!amOJcUfx|_@Z8%)-2Y0VXrd2n zc(@wE?v_E`mJDUibrpK7T8+@D8}Xu1Af4(c0m&r~U_awg-4)#j*6ylk_hBvEw2h|& z$9};}k9@Fuvlk=yBVp)>7lvM40%!b-pz+BNXbXB^iXh9d?zUh%!(colZjJ56NAbUp zqPS(j7)=g;2%!RXa9KoxZrTul-3lR4e9?rvck5xS;FH21q2|!zQ9@5ImjUszWhhiQ zg`-@&8MjOxLk+RHyxFR9=r8&Pvck;3C;luPz19W%mRC_Ta)d1B9Rwq7Iouc*N+pg? zVB;+dvTFYdtT@m^Bc^5{hwg;$OC;e;kv=#a$-<^ES=`sH5BY@^xXh{x^*4yJtaA*R zT=|kKJhvVe)jcC>*)F)gzlW2Wd61Sl-bUHpAGphZ7@wy4;AiDN(xe^+&rar&r8myQ zj)XXL-rP_brTcvP1Q%BQ=rWX3V%BrasUpaM9N`2}lyGw{7r8^*Jo z;<_GR7)da|wf*(9yqk|#R^mfHt}4I+$5xELF9wgS#o_!SJurQu1?%5=v8*}cm?sUO z#=3uW<$>61_ZdR7W_S}St2G{Yw_P2EFH+BXauLH}Q7eI#-4;v$+G1A5uI^5sl zj}3d^`?H@I?=_3IZipq~9$!I9VkSDLB*1+B9ISZ0lZ0?<@cb-MtPSqNS6&C;>-JW- zT(lIuor{wGyWxu&N-wzIUlfBrd&34Q_$e(9vrzi8Ehg^G08Qf&u9sXeX4ov|X86Ry zvVoJFwEP%47SM@eo+QbuC%A4eR>RJ%3V2G~id-z^VvzYg`0ckAo|n|( zZn1+fu;>RSdX|$o{u87wgP%y~)|2!^E0A;7!PL-u(0HCPuPi@cb(bXQcBddGBbqxW z(HWON41(VlNtjU82+_LC(_S?VOHaupUfL7LIzJzA<-#z?z4C@*8vB;@V?-dK${(lZ zby3rO_8jd;LcD_}Y1DM928K?2!#lP^m||8AGO1H|52Vs)#>Hh=ug;IBJNGDu&pQck z?%hR?s2b@0sSNY;4^v4QSNP9c3G%mi(8J3|aCk;9d@~VL`8xa!rTqixOy4{>FQvmV z&>as~X@@BluCQJ?4_=}@PLWKf8$$l!n?4S2lEv-I zmGHMwHh!8~jUNAfhB{eIa=!Z+J(c|nrg+*y=#Cb+HZ=k?ohP$9BA3la_<6OzHge7i zJw~}H;c%s*3mc{DnTwmfZ(pf$PV9S210|Vv)w36>r;LJ(3HXI zBi)x(L602EK{K60AYOF@tq!stQ)3i}2`a+@i9fJ@lQl@JL=fy=24P}`@YKMbuAU=7 zA6@Dv#t$B%ao{Pgw)1mPEq@0217Wy#(hKxfkAQc9XW{M;<0KiaqaPcJ5GPV_{%lQ> zFjWj}6M{fbP9EOy7t#|l;jqOc6;H6xz{MqbT(keCpu}cJVsc}MEbYj{lRn>(|7rtG z%A3GRs|Gk4`z^s{eIa+ASRk%7U5IJ>9I4kB>*RMbN@DN`UX0U*EX`_s@N_BEc{YKp zWf9m}CUZ_FbLmfRI2Z@d0b6e!Y`xQnBDepbeg8kQ;NoN4^kO~aAAAQ_dR{;)%gd*! zUIvbOKN^YL0Of65IB4yF`U`)fPh>nUOyo;GSab-4{d>Xgr%&?RWA+%8;sU{JS3K)X zB-K&RMd6`Tc9^%_)84dsg0i-TFR71=HJo+SU( zhrJ)2IMb&O5x0LOblOQC$JFsHXfb}x$)a~?`)fI@Tr&XM4t>Po@A;7ZO9@PV&4iT> z|FBRr9Ja4$2Tyr-qQDqWN0WZxL%l1U+5`&jMUGH+${ck={7|r}0}QkpnA1}Rnp_;= zeED>`=xi7c?~VZ}J`TJTOre)~V#*rFUPAq{7c5_wNzzXAq4@3-&>5ToQ?Es0>_9G^ zwJa3O9O|Kpb;i<%g?YC3vO%j$1)G(e(0*eEc=F__@MUAR3zMhIIx;}##yTttW0{pB ze&G0c1O7W;hWK0_Kb1S-GIrl=s{eqJoMl*`&;a!(_XB5v0?eDX2tF({0rxOIUS_#9 zW;Y$Di^d(`L=cVfXH<8QbEU{37AF{=`D547-Y?JW{>+ddX&xRRy z|H8ca&(Qf|30U0s29q<1#72{X)+s)foBpGu%y2K(ePunU4Q3#@>IC(je+=`^^D!oB z5J#ah9dbF}FmA&}97(g}ydP;oyIL1iee8snW~yV>_+xl_uNa0jKhV`IS7Mizh{^H@ zx95(b`kK>JVNpMBmI?%8$bui?zT{SA4{Uf!F`8Qj6P|p$#o4*|{X`&!d4B;tz7dil zGY#FvoA5?%DsDZ=g~S6tsB~u^{>2>b20<%093g<=L)fsxcy5ZLKsBN342XW1J z-ob|f53zam7mO)*MQ@nBq`71Ka4zZw%hIJo{Il@nnx+tV^p8o9N@Yoa;C|TlqJ*6X z(?C^YJz3oQ9uGN8h5F~27$8HzMIw{2H1ePc?~~$H9m%_J6#5IAV8?uZmCXBWc9|ST z-}1l3p%uv>bC-u6xf2kaB^3QuF}flTGM%*#-GrU!$Lx zGRafxNB({*e7!yt^V41MUXm%e=2*j6|64Nl^Z?68MUiQWqp;#*0W{uw025PYV|dsg zHb418)%V?pzNG0Y%AME1aBV0iPat1^CH}Wz65Jopf!f)u z*QR?H%s%Aej1o7bn-<`%$Nd<2O^I`TT|ekTCQg;qpf9WvF+Hme4v2BV*KP&`@9tuG z$7+t+|2R7Dc&xwoj~gMBXh_jgsnF8oK9^D&+NiW?_i3tV8=2XZ84)3SX5>ECZDo@Y zBAd!gB(loye1Cs?@bI|r_xqe{yk5^&d@6nJ;Y@Ys4a10M0G)PAR9)QR6gugp{@9A4kjsTI}-%d>ptbf2g_o#EB1oODt^*Bzk{3`NW?*#2zb21oxF`t#JAV)kflAN zG;MSijW|CD(@JvisDB&wEf|NFxm+UV{~B9byzqcR1Jm`oK-Ap1_;tE3)VU;(@3!Yq zHp(AQPH6-?o;4&qOU8XuE~5YAQmoKr&+Oef5Zo6JLmw_fk&heJDo3C)dZJnDTaeWZ z0Vj_@>?>}Dj&OjEZ&oZnJBke3#-wewL=rVzgcVGl_&~M}%6Ar`PM-woD`eA;_ETWu z$8$^w3P1rZ9}wZ*1ocgRq-NBIgx>Xl(5?qyb5BieNTM8eda{h#ok{33w;uH#Mbg`A za=^DB6EC@nLDo^|G3!_**s~s5ATKbvw+1h-$n4@*<$ z$%)uvcLd8z^UzHMP=P&r$3Iq}#h@|e+RucO3oFrclRxr$>c}#&c1%#MgkPfNFfFqk zdv5N9KNV$oCn*OS_Iq(A-w zb44ma{)rOt@0pHTX>aMviU$1SW{zEJFLJ9L@-QG+6Q-L;@UDp2f{SK3ifWyM7=>*7 zxVDj0zf8s_v41gKZ!&6SRe(B)f`U9Ql}<@!{I%`yvt=o6&~%`hJ6YcOs(QNOj1A~z z`l_Xed!mq{GYWMzL&?MMcx!PX{!9B!KTH`Sra7N+Fmx2S^UbkVQW$o3$8%mQT4HhK zLGG^f=geDCfUiupapNU2@QM0u+_@+UH<*jV#?30QL0bUtoO6KLmy5WP&SOw*lZk4R zw}2TiU1XdSEZ*o0*Joa*|M3fh`CD%sxn2a3VoHQxBoK#lPhgdvI;aaBg{H=@a4T{xp*1)4q{OvI4|VHwk`cEu_V_c(74KjJN!47yeGZ2cBKU zuy4;j7&mxOmnVht_G}i|$lNP~3#3&!V{9nFe^%ScJFH zMh#KT%J-Gkd3QRj>0WUUp;=jxsLSM^c`SLyZJ|i2eO)g{i7A?#+6XxBX zJ{5dA5R=Q+Q85cssG73?xUXJu=VWMs%DvTG{#Jz3W#YVn4X%LRS8>PfNxYhx$-Jmh zQMkT;n08e?gOa_OIPa?qoJh%q{O$9osZ=U$KHZNGW4j?jV>Zz~HW@B_dJm_*&%^`f z`N01t56UCQv5r?nEZOM*=NIj&H(HfZO4E~%ki8_Gj2H|%I4{HxO)2voVB_d z({@~dOTNL})km^v)jvIO_?!c0O!8@`Nig#fPlMG-C+HtvH|*SW3qAQ}Lt)?=*eGO6 z7jBLLUF!iNVweJE?v=RO{}ZfoO^2i5UpTe}Y-S=Fp(ge?9Lt3#P}1!^1s`jwsceC} zT|VN}6Xh6i-UcJSzQA2ccgf$TV5-mNAJ2j&6 zA8cAwhl^~czW3W#2p{8%@#T9Sb-BQHm;0n)k81&Z(tbfj_N-XA!4K?SeJ2I0Qf z99R*(2ZX9W;gGC0eRH~zoIb|%YjP@JTk`=d^e31fwHS*OQekLH4eDHIBh{yesHjmB z3;?4;sd8<)84_qzmxK*a9{k+k&BA zSwAVb2;S5-#%%P41eRBou&)#H{jK3st{`u~$B+BGG6yAwPT=3BDo`_!!XRTw zd@cG37T@lJjlW*vHnvl8bBu>a0cv#c@+CBPoWeV`$qczKZ-VSmRXF~y8Yk}j#ON#W z@cX+Syd2HN)BaP?e8VeT+7=GmT1TO?)fYT51&!r<@nxGN=RmV9^C>9c`?V!#Un7UR zHpLUIdJZ0G?ZMACn?O~{4DIhkfke?)SfF?wGIOi3wPgwx6@+tZ-eux?yBT!6z7TJ4 zZ{W*kad_|I0+9=cTtmFQHi?GGsx>sJIv^N3)!=*$(DQ-&dIyU6tka8QH z{?-kArmlg3@lhhL`5n|0Wk4g_0dsYxC# z(+ffGivXNR&A>Uj(lK29INiwD`?ock@HqQE>j&m=9m7u$dMb;Gn5KiRn;4vZ*Frv%R+jTu zL{t*_>0Ne@CTI9VWQ;ZFM0Dbg?+0;2ZXXqq{Qv@!96{2+ocb+}HEC#$3y_M3HgHf_!Yp< zZ!zV<8!#!AN4{;jv{#vn^LW2#ch*n(t@0+OZ9E2Z=^|>Q+z(DK<3LO3Fx(%UPiKYa zaL-*BM<0!Hbnsb-e6NRac6;z7sh@*qUL_y8ZJ3!eqP z;H);#lZmH)lN{0H@pNnuNP(r11qiLm5T2K(HYT!;Y2o}p_^vO}?EQ@rGNp{Y=8QUu zx?txz4mZ_HQK_{Bv{!6EuJ9R5-yRH2^=dfeDZwq%)5P-4$&fv70@CH2>GkFP5HNi$ zM2udbL$iahf4(JzdSAj&-yIy~wmQ^s{|<-tIfF=I5-2`j2o;CraAe+9xRfr$GnH;9 z>YjV?Y0G+gNT?8|-)e(Xvno(Z>?dYSX~Hn&ySUEP28SA+qaV}vOiykEb9x5&`|II{ zS~xCr)#2XFYJiIw<>;E5N;gQvp_G>wL^JQr=&yR3bKx2H;hajG>u*h_?SBowx3JpQ zr5LUEu^e3I4CV(AuUWPUVy!#D|Ir*wY!Qe3+&J8yT?Do< z4Y<(5oWx8$!4WnUL*Lnw(0a0+^|@*I#I+fh84l7X$)Y&VqXP<;PXXQDC^Rk}Kx3D7 z*sd6h&c{m7zov|sylEiEX6%CnjIY?VyEmjW zM>+KJqR58_N1=2@EKHmogU0Xm*d(?U>eFuGs`zub%c%=~us(Ovl`F6(?j?L2%p-e) zIuQ@~fvMy?_~Q1F{^AS9?lrOScTEN4T-k+6_D3;CP!SBLAEsKft>0H_@WJ?EQQFa` z&9VPyjN|4d`0eR*JX0@#zj#tW>?_E3=0mMgs3JYKwN$$;M@?64DRvj^V|j#|SvJ`g zoN~wj5I-(f74{fjW{*A`T`lLqgOTR`aX$=ol;tEgWxWA*WSf$FwSRu{a(|9rYg z>|rY~vSK^I3OD>X-iB8Uli*0>1Ki*G0^E)*C1nnGaP9DS+MgqZ&hQS8os@ywHjCk+ zYB=PZT_@dn(*$DAo!2ky;z0ex|uLDW)-YkQiMlEt6+^O)vgsJ0r_dy-ny(@#C z8)t&2t_?o^yaHQxNps@)+G)V4Z+NvL5v-NG(Rf-siAx$M0j2ZNW6TE2L%Fz(<3yIK z+u$0DQruQqM?`c#fxmP)Zr*ehCv1X<-ik92qag}OkMf|0vmC;*DM-z5#jU?oPTsR$SL}IEj|VCw(W$E%r8*_OS&S>@0Q4pEM_;aCdb^pu^qsvbXdk)?Hzd2UH>VwsmI?5xoZG;3GGmu55#*JV zpLo697jJ&Z!9|lFq13K*Y=75^QhUA7q`4JrC*OjRXAfc9f*3d|6N*xzJ~IFG}15+Wmblo272V!_04#_3Jo9y!wY) zsYlSmGm;Lf^5M^fcVPJT5PaA1W84)pXzdHYaf9oayR#2xnf)Zq-@5SfTt1r8Ccu+( zae^~fA4ARTOw4We!k7=1AUn_ntHoyG(&|v$`)V<~>DY~@YmJ?(L0XBK$w}dxQ-yM!#cUV@6u?)(54#zW=lDJusVi(_2 zoIjQas!pqMN6M&b(b=uAb<$?=Gt|NpoqvFH`Zwj?YUk{1uz>DFQwaM{lDPahO+yR+ zqTUV0Gi-bd@~bFR9vg$oS*)%SF2LKj?a=B$I;q;BhDld1BLC(v95>-`GFQlfzLF8% z`IZWU>)cSr)fR?2w6KqO;r_!<@J2>8R-XQYk{g`R^>aTM-L&^a$4=z~|IBrqcRAHJ3*aG^mG4Dyd)(g}MsKmQeC?U=q*GzmNgl%c_XgapjF zie2@+kojB|ZofYTmvZ|sbHf94j!?r5>qEf$*L*U~>oZtHeZa#do?Q8lim00=1b-Li z;Bw7bBq*tBfQsM> zSQcXsIT<7L!T}eyZ zi{}!>Oiw5)VcFMfK63+kQz4@=l#Uqg!b?~B+01w@-fjNP4R+2#tr-(UF35|!j=W;e zZ3egJ@)~F{`G_^_elBufPQ}3qHfe~%-_L3IHNX$nY@5J@Q4ciW|Bhq#I&jwc7vNJ> z1xBU!(I@*GSYJwp+ta^5@Ss?l9q%idIIde%z|=-66(E85TYNP!nVfA zJRheqoS+m_M9xBZj|Pl*nc(~L<(Ti&4dd>Xgcw}_>&tAG?xu~6&wkQtx{gr0)Drnl zGp_4*7cjN5#S_ktXh(%A+Dx2sNp&YD-~~W<(g(H@Al+zptlYh^{FCBrPpeg1oOe@b~jIwG7pp3gWHjJ|y%TREA0-A{jQ{}?Ryxb$V@ztsW5On?;mh37c zvo@z9$~&Uiv+a2Mkq^*&mNfWTC>;5lj)LM_U}xGeUVER8H)c%c zBjtv*Xv0ayu*y_CA}~RY&HN0eN~u7VQ&1_g6Sa;H;+F2SAQ$+Bo=A8BCl|}(>;hZ# z+2xGQyIBsr)B{vg66Gyhe+6tE2C+1{2)h;pf$bW58sruaudaK7Y?Lf)6BXp8AFE?M z%S$RHmkCC8`7oLBy(@GapwX13+M175bbB-mj!g(_9z;Q12 z%L>8VX&vxnO(L{CXW0(POWmcs|J;V0dAJs0P&htI! zH03>Li_~C2LN=b1kc3O|Aux|=vCHdkLHyPx;O?4(X3Oev)vI32)%QV}P0Wkdu$YuV z55^x(qfadtATNe#Q&YP^{HGm(@ZIoZN(j1K{Z8#Ux!`Fi#yws&7mmoiLVxiL#xe@T z=K&?mi#LczH#3b$AwOPLUW;+J{J37XqrpDqG0C6q$t`}!?%rMQ=yT&MG|c)A{3oL@ z?aDX29g|7cJe><+)6dd?lu(dt^i+MOJw|H%7@s|7G48$IOh$T!fp5Sa?%fpU-rrS; zr+xEb*TNhy!BO?!BwG9pxly(a19`6y9tiRL zeR7dZ9>9s~PocmphAXM*L>8UWqmzZ%>~wuKYF&;;)kwtIXI|l4wqp;zyAstu-5`I| z=VMp=AYP29q6@z}LmKtMxd%Le_u2$D-#!Ks?*?g8_dVDj84d$!l{inPi_Xf3hLEUM zD9$qHgfQ(D8XgJVfBR8AmhnnuRbkY~ z94E2)O~S!mP_piTpp(xzo%0=G(a=>mn=XUrKYXXKcZ};8x(5S9598&wJD_;#H!e;; zhVNR#@w`_fPTElcn)>x5F1i$rYd4qUn?cK` zl)ep~Lbn&FlV1}2JdXmvP`fDfSNVb)PGo}OM{y2(3PUc_E{I9yQo}<=;Hh*Q-W&IT ze(-NtlOF-wc6^7pkFM-auVR-l`8usxp{?QHKD|&;+?zQ8=|2VK( zz>9vC?T53Q-{G_e+v(0L2VqD-6=%j+aW#|?Hwpd3fU8d-=XDiIb_L;s=`54xgKt`Z zpEs0hhG1ym8vL|6398Ztq5hEx-Y>VJy$2Zc^HCx?t$#`+i+q5@c!Ev5H=YxlO37^j zp6NC=Q?xt|wcA(X^86N#!B7=&gRVpNm6g=@PZIMHgfj-kHFD`)H#q7|;@QqkfgM93 zbnIj$xqf6J7PEcfyM^uG;U7){j8<@ha<{SXs{pPT3~*xKwli%e<3Uce;o2GMYMixs zaD0I>N!BtUgNNA6ZV}@e^Wre{*-ZGdC6C^Ob#QPK^MFj>Nmj?&k%WnDs5Sg1Bp)7%N?@d0ARb^l zVbbUgOCpjEUl>hzsT^L;D5?NYSf7{=09` zV@ovrPMSe%m76gBfi~Hzc?v(Sa)I0Dy@;EF3()p6_<}cpv%>4S{Kjo?!#o)_ElxmT zrWtrVB8@XgwJ~_QH+=Iy0%vDbL&!)i>ijHWY=V6lsuY1jDsp)0PXS&xWTJCVoUbV)0G zTvP_FVGmKZ?lPYK(FehCviLgDi+a`#g8W0KEo622Rky96Y#0WfwH^Q48xX$+cPNk& zrQwx#ajM`dOqjb1?L%0G(5h7!@+=D;`xU_#r(rrXzZE=G%V@w^#bpp{|WF zY1PqKP)TV0TO}T@H6r%E!fwDd|^&twDTW5 zuq*+>@?5Z2{U2H{xk~!8{9(MyAH=6dfRy$SzO#J8V#gA&_wHtJg89#skT-#X4X9DEVWuNMA<_L5Wr?=7msl;Zj%x&eVB*~TCYQa-#O5k+=ZE2tATSlk`T;q;j<+iZ=%1em7AVf6l!(gj+Av`S&AkqP)sBy87-e^%v zU3POe_WDKvv2EZ!zh)1<4pBJt&7Uf@l+i8)A@#{qoG>!V6N^@>5baM!KmtcNt-inD z+WsSWh|PqBGE!me?qv08*)K?OG@tsWycX^}LwWM>(F2fU z>OIo^aGx=FMul7{FER|jE)5}Du1J8kv>iTloCCSGKS6QkC^s}O9{wK4#G22K@aNrO zD$zU@b2BeN_w5>R%6|UJqH%7<=rvpgOHD1o@M5uvFs< zwXF?MuE6JY+l%~a&E zp!!|Q91IWC0JpRMpgzW*^PgKSwMo{)_z-dR6*m)6e4`a-{KHgCD7+3ilT)#8yB6#n zUV?@n?bEak7NW}M1pNK;70Mquh{g|v@J^&7{u&>ne>U}VR(#urA0=(5<-u<>At;71 zwa=n04aH)AN9Z`802}%Q)ypr=gNh(?(3~ZYb}|>pmL31#T(Ok8V%Qoe(fPyiWSqVG z*bglWvq9qdHtab+1$}v?_rM@b362xAsgK_oi^vvlDY={#>qp4gF;b(Wr!ygdpH4e@@Kj58Bv*ExN33cwJ z1R7mX1%7s~(CfZ5`MW0%yO>Y7Y{_?`QjiD5A}`R`%mFVSV2mVWnIN;|VV>+Uc+)!# zceR*9Ti{P>J9z@<8B~%dS~^&w@R{B`8wE40!V&&DlD7tL>8(mdSehqHq(8pE@l67} z>}{4Pl^Bj!RZqambJO76i~#c3Wd=-dx&+Ve_e1ZDaT;KmOkS2Jf&X+j`m(G7&#rTY zRkDi6+g^^ANA_Yu-zjSAU5xQ3Lm`PV&F}FHaH~lz{WszZI*RIa!|QsW-&k&%NjDsL zBt`5v7E~|B3|9wy;)XY^XYZj0k<@z0`N1)SIUnpXIw2SgJe;9cJRQ!aRAc?qGq5*F zfC|M`K!|f6+&&VCQTqZQG(QRF-Tw`-VLf}9kmS3BXZ(BdX z`iZ;nTA&q$9*Mz>+8`JY;KH8EXJER28a@563u2U;SWTqMS;YFi*uF6kNomEmT?N$i zWDe6S^}&ML5BRQn5Q}d!uY~p^kXTy{CkvZtfl&ay-uZ!ej$9ymJ-11$!VFxV*~4nh zkKArye{lR0OFtg|3xiG)sI*KNO5(0yNRmaGS;|hXp2`nQXl&;$s*a^E&*b0^(}fgF zPvVlNLFhJl6P%y-A3YJ1i%wgQp#HWqc<7N5l++b*KI|zb|2f=&OWFl6AQJ$EhPH5F zu>kq@BM$79WvM_^6B_Jl#YswEFv0B~1T9>LkvF2?G|PkX97;HH z?r`D?(~c}>yQTHsu*STe=&yAoPqmZtQJBnbIExqLt3!7S3pz9fy zyZ5FX_pWzjnuQZ6uxJ?xxKIeUmOZ1bjN{~xv=c6_(#MDKBOuoCoBmhHuRgfHkks^j z#{abYF)%rZD_6hxyNgjL~9{Wb?lzHh=J4PA=7d>V>8;^B~_n9A&aiDvM#HK9J0`mQwzFh86#kwF+Sfp z19<5V@x6NiOzC@qe}`@99MyODI&&%(2zQ}#Mj@!r%cs5-KUuEy1B~n7Sv6B z0|GqxZE~=~^e*{0djW`6zM>o6#j-mi7OHfF;qwUtx;lC?ge|H1eNa1rKdvK{TdLxc3;tLx|()qxwS0ePdBgnNDT zpxZ5iNPI{Ek4?@nMc@GHxG{ajymYJ;u!ktEDmG6XsqZnw?{kW|OzccQU*Bmvf18DgB~8r-w}EA+=@ z5cgC;o>AjglB@Tgn=vU1n#FW*Zh4+AuCtnxq%iN%VK>+;$n+;yy9o~kt@ua$HF^kI40_bY2E6d6f!?45=yq~rL9HxCokMwkudT5EBVXtBD2~+$TCy(N> zbI`N98HisXhDg=H>i}6eq>+#FIxERbO&@Ue+X0=;<K0$fdLM$86P0K^YXL0R zI0-dAlTbZ;3K5NFv&-A<_~2?aOv`BkBi3u)yXysx1HVzb#0zddP9;_zzHn<}IIeE4 zrX=7MMt{;nDQ8*Cs;z^LL^e-vj^Y~3F9OH2-oyvvL7RDh_ZXSs=kLF;VrCeIY1ZJH zaw{@1TMV~g7#N4Baz+lD;o#|R+8r)LLr0OIpD$wx5Jn4dUlr zr}0?VOdR7yQuU+|GP9$HE{Nk-Uv+1-?(6!7qS;y)qSwtCkk(fm!R3q4%qNy7$UOeo=gdDd+IDFlWawu7blQP^Q}gZ0G=!0cQCRKEB~xPGh;NKS)3BS~DY z>%o|Vu^?HsnX6njL=W%31Cq0QP_X(HepNaQoprM80({eL79dbR zXhk!A{4a`L?(G1nK2cmgY)aOh5mEmTI|4qxw!^aGc6fF8Cv5Mqqc07cpzEFzyz)zh zYtV%$e&b;Lcp1LDybqGw;vhz|7-o&EfZB`tEJwwKX4h{ggHv6JN}vno+HHY0=btE0 zsZZ0!3)%j5IsE)1fsL#E@KbsaSuGcc{5oI2f&73~2}WQ$bOh87KS2E*^KtJzi~rS% zRIa%ba-U6sNt2PzIsOB(Cw-+2y?fE7Bn2JC1`v%D&`RSOjLf+PMR79fHJZ1b4@nWM13_a?4>V6wfcEL9TCL$ZP+r395J;IyQ$1b^SQS_yu5m$?>JK2ec@ULF_R^@~A)K;37%!zL zVEDdqJT+ep_N1S|U2ML0=iMRDWcpwQ1t;XMlmIXG|JyH3!*CvBdWP-?r-#F2Q%^7q zVkIoxumDe9i+~Je4ak_mr*^Jw1>86Pg0f1jDC=beXdZ+L8Fi?2U5p-Dw+hDgm|**r zI4F;f#-kb5|Ide4(hUW@l2}OD97|)I|Dc{t1?TJ8Ow6x~#a)b%U$|%|s+=;!Yez%q z-?FzPCM}5GnfUFUw`Su)xjLd8?}&Zly(FV_9zJU*!i6qY7(RE5{Ee?e^>u?FC(2lT5?(ND z=z-3UzQW!@M>zS8?PZN-VCf^q9eq-ZzEp?%^}95Ped@*owJeji<^Y6Sb-}yAsnEEs zlN_4wL1(H~f!OMYaQ5v36wTsCbyFH(A%ySRj6vu~o z!}WM!wF*2rS&H_%GHBxPN?LB7j8~YJNF)B8>gIA`T(b8sC>80$WoLx4;|oFV`4*-z zS&Be23U;TZ!CL7uwM$Q;@u_+|ZX67USL41+b9xd3=CIsWmmc)Dj>Dwihsb=} zSb8UPCas(%4~t9#vANhD-^6Icjfd{=oAU<`&VG)YqE~=SloLK#Zoulf>u~h^4hsD9 z;q6U6b)os&&}il`^^at{T;1<*w3qD$bUfgxv7kEt6D$1vs$Dg0-4T?m^2TiWTQFTF z0)+IQ!SgN)h}!;&zSvcOi&kFYdO5wK?qoeaJlYO&{0&es$BATZQ&zjqW)}(jG+}es zX6kjv2@CXf=&AKPK!Ba2qtQz+^KJ|#7t5gdyY&zqEKJ94xpPfsIKz^4Yv6)~Jj(B} z1HBKe&{2I2CE|?Xp79$xR_lyqjG5hPUx*rf<)E{EA$p57;^B&AB&TdWN2n#5_LN27 zDT7WpzMtuX-fbki8%N&zv-&nr&kp3|O0g&?4>sC`z$&TzI9D$Z{yFtxkViXgP#oiK z_m9Q@E*Ic|gA1?fP`-VO@62y0-Uto<`HqLc(#9W>?h{V3do{zU?8*t<$LMza2Ncz6a0bhl#7D59Aq@0I${xC5oodEBiH3cBd%sp{gJ+d5bry+?>M8 z3KZsz$Uh-(9t2RmiG_Gp#vObGb_!@zTCk(QbZsOkJ`c_}ty_LRlU-X7-`xgAd?7AzrFe#x*;=QOc2V zJH7@1-{W4ioK(+Uzil!vefCXQeKmuQ&&kAhQ|$3nM=KUjs6uSxJ`6Yc!ntJ4I0Zdv zn92RkRhoVjw=T$lIfwPBh>S5=dBTONUk28Hm%zlqcyfA)3knz6B6lzWZGP~hcC$OY zQfcDe?v8^sl0$gRNQgIM6VuSHb%lV~=V1Ih4myl-AmGs^Ou8`>cjf)SntVQ9o{J*2 zN;rz62i}td@zGSd#~-5eQqd%MNKM&(5IQ0+LDNt^>~q9Qy~zCSk2FFyg#T*}5Vr#{-dAPJW`WkderHZD2diwZuQVTHXmHqUVfgWf6Vcqswr zdT2uLCKr$wmPMKLVLY~ZGCs)vrRK9D9mI>{@NQQNfRqK)m78(Relh;WQ-W51AK@&6 zAJl{O1J%rXI5C_HOY}!!sJR{!4RUGh^epaz#R)|3ts`#u!9@#;Fj%%j2cDa4Llp-B z-WoMul9OA3wKI)TVV*N_4Ezs&h%U$6fjNl(xxjS2RNO8#K#;6!+y;O92474EVOQQq`ouaFG){bgoxWCtJFx{-4?e=RU!t++`W`yM zJZ=SeM(ulK3AxF*_H`X2`0im4K8^_`imL+|!)!V{^>~9zc*5|2$8rU@?$G$9h0TG4 z;bBrd%aTgM&;x~Fh&xF8oHRHQ52-AvXFC z0u*Bu>v`8pq?1@y2EUvs1&c4P1WSVs=vZY%hW39W3sU}~E3b}wSu2*B*jbT_i`rq+ z-8Zn2`O5|d!!b={6qQv!Vv9l@Xq`$#4TCf`SI(hdpR<|S(@4;*bHRs)WpMfXuMkl( z4ZqFeW0?l&DE`d^w;r#fjjv+p`KUKoDSj7**VdxQ%~rVcx|z-le8m`VU*YHQIcW0r z!El-FxZU~{T%7Zpe9JV$GAOb!|O;&RxG2W^kFsbFpz`?2Ux}$ z?;Gf9HG{tD225Icp2#w0dOh1aMdbHEec>XQHZuU1oZ;Z7KsGZRU&8d<()ewGD-@S+ z!u*WUv_rK$c-`6tJJ%%Q%GW(GdMgObl}d5G^kx)w19-@Phsaqof5yFRP_%ghuU+SI zoA*e=t-cYk^R6WqZQjAxz7M#DK831#d1$_06c>X+?>-HXED{iow;e3sg% zHPa1pPt=1@ULcH*K7l+j#G^A=JuRGwTeug{TVn^U4LvKse3_0+(IBSB@+vMSB3EWLq$9_v1=fdeNS)ycmm$R&v;Tx(H=TR^qii zlhLWtAATJk!8Dt8aL9JTgU^r(r1(MXtf#R5tp%uW{RU;%I>@7qA<%zl1ul_RM2&?v zh-*a*{GC&Ww{N-8m1o-E+Ok(5P$LfoS&MOKxiRNu%yW8)hAcR{I49vt&Yh4<3O zNat7?n2(DwhQRH8$9XV({n@`q(Og+9h>k80QUm z)OZueZS$dHSum=Z+`{npNf42z0B=KoQinOKNJDu&C|}N^YA+h_?12(4lkVbXB?p|h zE)ONv=fHt8e>v^_JZO6AgujoB0_}PRUM!m=w|hI}J}sgF?#{AEK>KmRGZ{U1f=;gI9^hVe>^kd+lBJDDN$o;z6$ ziue){36)V&W~nq3l_(`?X=tF*(0tGRYD!v4duUJXQbzPUzrR4}d7g9b`?@|K#};tX z>LwZcR-=dTG}vxnj2&kKKp`X&ZAwESwqpnf9z~LqhHUq}%ZJWOYlGc8rjd^^v(WH6 z%Z;yK@6PF~@y>%pI!|UYoM3h@i(XTAZ;jh-kFq7RMiU00;Zyaj9?9Z}H- z&UahzZ=e}1FGz;dzaO)E;Una3$;O82EpUHNBIT6(bE_Ettak@@&%RBm@{i_G^7S_=c_jT}Ybtb;9R>zsL!a-Lsel&<{O2+#ba;8FB1aQfbj zRz}l7>XtM%FVVye{~|z~xd>)x=c2}rY!L77;GV9Y3tMJzpgqF@MpT{P=(Ana-t#TY zv|I*V{txKp1*#YpJQJ*EzQ$|p=jHA6rsZJ;xLD^34e6t3rJuq5CpbiI+K++^ehqzW$B6oUlbsObmuz2%_0@ z{cx2{GuVEP1fLD|;C@p;iD&VQcreck-_;cS77h`*?QXPw+y#$UZdYtQkd5lD zA^1IP49e%5f?=vNu25zi>#FC#-<|@WpW4Fm#@85Hw*^Y8b2yhu{=@wyK~Oif7>{T~ zqQJ3W==*6v?>8pkie;C9cTWfV)_LHZRclapn6Y4vY+`-ux6sAh4;!je(Ovff?OpAO zDd&$|0#GbJe_MRtOTMxJ(%SF4~$U8cz9w$$f6{)gqZlwkAMPpbPFkH3UMw zb*TIDF!HzVheo9~<{5KCUSu%y)n0*Y0ZE#p*O^)`{RiBR`J&59GaL|`fc}{(FzjCp z(%%N~Y|;?jtFRRk#5+j|>x^G-V65nq$`EH($j-9A=(Rr)_v1@2A|TB6!wg{3F6!zH5j~*d3Fp{cPy6SgL`gUach|{+_3S)R&x#}9J0Wa zHcReH{)c3%x2EaeNyYG#`;#MEqwy~DuZzELkJ{#M&sv# zO6)VV!1>QNvA?SpjtsfMRvTyXK)egjr}bdz*fa?4-i1cjHHf~~0CY~404h2iRc1wl z($ZpRT@aLZyh|G|ZET}2KV76=58FX5LygnA`VJ&p7NC9XIBj2U2EF2sQDo^O_@%TM z@89jl9&HxZm{{W_Ciu{v%c;1~N5+zxF>uurvQ4;wD4mdC?wWj3XvxEG#|L5Zk9=&me9ZbO7m4w6 zC0yJ;4BZz0Xk^(vPSKuOpq(-Ym&xrxn<@LTw`~I$zTAzo_4J|T>`yRW>I_Y;%&k@x zMMu3)LhG&u$oZawh5oISBi{@uJDuV1iEN1FcgE$uwP4$Fmx^r&#JL^A@XDZ;n^hkN z)`1`3clRKi-K#|lMf~wU##&N%X4+na?r{P!RvL1Sv z571WQFJ|fnfyDLg5q;6*G(-++jX5T?ebLTot~>qPTN z#M2DAA+ntF)jb|7=Jvrs-7l~(d=L5J9nHP7Xbns|ok4aH#*VEDqf;+8am2udUR&Qp z*ZWZ1GZ6`bSzIbNdlK&lyMOYujdv_9PlW8LZ4f*V4pXc`iJr(gXpUG2a#7D=Ctov( zp+c}|S0v+-kKw2O3d~vSK(=2}!vynWZiv-e*j0TL{_s_By><#Kt?;(P!f;O%RtThj ztgl1W%M);%J;QraZi9AC0JQx}TWDKj~Ge%%rCcyK{cmgXA zy~n78F8s{yiu=XKh*fqf)+^hS@Tzc@J5^>li_cI@{*sv!({QoUEBJS43Ec2WhEaic zV5#B_GC{&*rKUahExu2Eq+Ll_33iUs5pAnx@ zrt>hky&Pq|hYd)tKZDk;HpP_5jBVcKjpxlzV&r5|_~z9CKMOz5KhF?UD>eb#^n`4Q z9N2}gX`^`rWGcLdm>01;Pvj*hOn+}&=gAw~WH%&{|v+MEI~uuR6~ za;>=CWFv@=xnS4yPxw741g@GTfn&o{cwhY+w-=gl8!WBRYF-3ZRw~mMm)tNcdMiGk zgb-1aitY&ubj&z}{I=oc8`9 zIQ(igS1VfwRw@la)L%`SYlisY;27RsGR#@fQpWvVCWy6jY(X=(1cz8p%6JiT+ka;7 z!L$~bv+fZd5>J5HE-d4u{tnD!n($^?5-v0JC+Fvi;+l+5*0&0x6@HB0Rn`QX{8i95 z*OK{5JfKy62%Q#|v(5sCeqwt}m+ve~01j~2O@J4cC5bUV5W-l`!R@FRypt@W)2k|Q z=eo_z7imT|Z+r;u3mLa|(2drx{Em|fyMO5RF~&hVXBOKJ&DxrW8Xr2a|J-kGckT;# zKUo+AOpoE!CuR7iBcH5SnveO{<3M_GJ;rRTL{pcS*k#0KsrO!EzT;D9oT-nenjayD z_YK`lN73-LJ$S6oh7-e6*d0t6SBpx(s=H6%ioOf99#F-7cPeN^@)6YA>p^*L9OeLB z%Ps%T$D4Ys8`@pCXt3H5t!gj9w+(Le#_}8Z$uTbN_#f39> zCz}trPKIUIb7|^T7hJ7ym-=5XMU&8jcy9GD<-eB$QYSCKRpo9-*XV_s)(P}3-pSb{ zSb|=Ok+^(3m%KN>kMhSfQFrPu*sz<;#`xXf=e%|{Q|m`nZYZ|MY{ZPyz4+ZEHc5Ik z9}_e~&^Eyk3$iT0)_4(i+5~gPqD5eZD09GGWOE$(ukh(y9$cFK3XApq!0UJ~;{yLC zKMKOZIBOCfo{|R_e%axs+m>*KJ+q^{OX#O&1eYh?DXR4Q!^`)b%(bNsMtuCB*$|>Q z<)#`g3VHyccUMB(=`W=JZYZoe^8`2THY4e$zo9jah0VMkkPmzYQc9MZ}}RsCfhz%0^dUy`3;!ZubF%{7b;zQVRlvt5NuI3-x~V5=5-G;azZt zb)msq3;15aFe5NrOqY$*6ev0OhY?U8<23@X-dCUIJou=D}*6wk?}|8}$8UQH(0X4pWyb0UnF zHiLbPGfv!Y!VDcRxECqLdsjb!&o`A~`r}E6Z+63ip9a|BkOCiPIK#KjrC1&&$a6L3 z=j|&m0@09N*nK|{?r03-<~O+z*SOWOEZfa%Z#X7zGeHR|7QP>o!?v2(N)@lCMBh^cY6{ngZ(L<>25@OH6;VXLUy;sAWvTt1j#=s4heH zn7Tn~`VqJw=mvePf9!v-0jFiHgT`z>>T;$NZnb`dnSNK$A$S2jR0b$j`yJN}R->v( zAa#Fa0G(e%c`i-Hsh0kQs4_l+Yd^Np{<_EP9?8Xqsjm^Ez5wTs9}F6=L(SHQ;M8AB zk4j&M;13FLYE%Z*njeAZTU+w;*-el&+D(UN2%>f39&qaOC!5?=A-QiISZ`AVC!zOb zuYm@xU(SKs3hwaJd>zV9FDG2>3JgnDgufo;aL-{nI<-ls@%OsGgG1u@?T!hNek#pa zTy7{TnS_u1qo}Of8?ZIni~4L&yAsJV3Z3v|qdk6B{Yj#? zAUjLGrWXYpuzKM!2)=EJFN7Vb!-9713JXn`!}d#a6(6ykN;>`xnFUf`BDuw8%fMWf zWr|YRJM5JJbEMwF+I(9@t%l9GR4NM-HizLsh=gYYUm)~sET%P{2FX$9og(-0lH6R%$Rrm(u!4zwnqzGahBRi?GR~I2N0azs=;~$3Hi+r^JUa4l|wA zB?vc;M}nJo2|km5N(5e2;GZwcA&9Sv`>4Sl&$4sCg9=4Fn7)=O@#{cP@oMt4u$`2B zdrhya-vae_7NB-m9yToGlG}DqA&<(E2RjO}*>Vz3#qSd+=s&?FNB3cJB^SS_e8SY3 zevm95O5eI>g0T53dV&_?Re={fzSYctKWTit?;cU`(o`QSZc8v0IJ@&&l_8(gZ#s2S zAZd<^h1c~BxU9p6@l5hSS)>hiEI$rn7oEYNDIA)Pd(yLU{@7RNfwc|q&_TM8vDCTX zyn2jg?PU4eFL&^5b{l?TKU+z&5byOhmM172ry-|Uwwp1#`cFDRRdzTysqdoc*B*m@ zW;tVp^6>;0+QW?1`gGK!h8X@D;Dk+`#=bu;pq<%;s|xIq_oV~o52V4HEyK7x&jm(g zmOpPQO&&?jAes}(w)U{rsoyTp1&R6y>Um&-*@4}OgE60IEb^uy6JbPV{E6D z3=b#gq-H3`!Pm1==+oRz#f>$g@R}g6Kj0P2mUxa6W97JQs}M?rXyKRV-)Wz~6b$lg zqnq0wv%S|I_}OlaPW~G~BjG7gwi`#cGr=fyZUhcKbpyeh8F10eA23c1*Q!3l5BI&{ zr$`6<4*rI-6{FGX@-95xZ4B<49MSp@W3)^#-@txPNGf&$+pAka^kgG>5@C*dGG|Cz z%rtmiCr+g*u8@dD)0rE`2PR@3f?VPy9Gs8z(4A`fpH?gcrmIt{34Y$B$tf5#wjR&* zmV@Y|1=v5l8Ioll;f^D5Z11<9TKVt7BYAm>#@g)MS{Dkp_cVb-#Yb2>`#L%|Jp+%$ znK)j12M<15gPrUhTh~5Bhr|0|$C78*Ra>lh6dwD1r9r_28i++iBkg zOEi)1AO%O=V8C!G?79?5!sopqrA6<-^y-zgS>I1$oYyhT{+SM}*#?}^k7zwEs8sO9 z7}bPk!;bU6$oBv>0M=bz{t!|0$X+}udJz^WmD2k5*ARTi0(O}3@rXela{%h%Il)%N zfy%4+22Q~C80KiA{zQNDAq_R3q*N~+z?qOXCYxM7pjW&%EoD#r{B?&r{pG z0!shMK82Lkk)WRJkCN(3IOi^XgiOs+%sKamXs-MQ(*8-%{oiBkD%FL-NS3|c&_Uf~ zUXh!JUxAZFIn{9KqnZJq!CqpJO0IFl8T}a$KkNg#*Xs$>Jb{1d2Q+q&f%mr@QKmNn z3vPtMi#T6UkGum(@rYBTD2b}>!`8h|X}G8w2n7|4R35Jt%J+2 z8B@b_GB#U0z~=vqXkQ-U_mz{C*6&WBf(P!SMPfe3#<~aZRf$01+y5|NoDcR-W*HZs zI>^l%C7t5aIOcvypj9iNWOgVIwrTm`o*S;XRGG~pc)P)HQ7|l$pQIF`br=-($N^=2 zt8)vZQMRWMv-T}a6}ZQ~gCAK>(C8eTJ^2UT4uz(bzhM5ZFWDqnwt-GxDi7)EEwJRf zH28YkqXhj6T3h}?{i`eZd#W7U*QKMM(i8}atHPs;yWoJ45(=%&heIm@@m^;r+%Hxk z5?5@9P{|0aed-R9!H!hNeL6gmc#XNPzv+>>O5)B~oiXnVXyuvZ)W50;MlvYXPbvlD z3`blkx`NbA-iD3a&2VUo1JyfffVFZmB*O3&)C;uI)8!xGYe5Ey~>L%TvH1e&_xdd*mzb2A#n`Eo&j!bC5P`{{-wm#p9;v*X1<=8-<`>;HKyMR)lcO~=ky~VVUZg@WIf&JMouxRI2 z+A2K>n)MTDjCd|iypKlR>_0Sbj-g^r;$=K-oCtiM{=u?P55|^J0XlUfnil$@oroVA z?M{QVVn3RDq5=rtKC;zvgyc2c24m}$&~G#oEJF1-c`XIpasyikc)teZymrxR`mVTD z>;No(?24KpVW4H|Lf4*=B1=|N3>YPt5MU23wYSi2XCr{vawv9=0g?JiIKgK3cTOgw z`xv|1s(Z2Dp(x}j6k)sm7EC&F0+QzBGS2@R%#;{p9hN!dreQ2i%gsl7%2=T%+4)$e zg0`G*=4$%%v;BJ)IsRE2)@^x5GF_j;3CG=V%K97R{pp69w zB<-AOCNy8TMqY?eGfqSAHD`K;WzEbMYXi@S zi|Rp#@!b7vBG>#BRJUBf2-!KX;PnnXC+iLeJQy#$bu#3#KW|@ICEOFzAkF8*7&m$$ zEQ-s*vknjF{BuoUNj}3=|6-h4|6cL$T;@$N8dnrA`yr>So%m?=4Y)VzX2HCah z8`M&LJhskN7GyPU9zhnkIBMa#B^$A43P7qp$lj&29m$drYcN(?37wde? z2uC^ruDq8eIf`#VS@t`c^k~CO#z1ii3&*%s%(?sVAKc@ydFaf3$oMeKX|1^pwE{`F zaoItXj=M|@f`V}I@l>po{04Qhd`iX(TVNOSjSf%$fdOruC@5slQMO@osTrZrZrut( zm($>yh8vZ4&8KD3-!PlE7HSoRsiIR9^%%U#-S*4~^7e0s@6Y3DiNjyWJXoK$MBq7G zd-NSlDjdjSg+rKf$qaRP4%m5mf>xPqpnImC#nJ0OIJtU~pcpy@3eT|F{@-cD0t4Z& zMi4i?JPD7M$C7o4@@QqN4#uUj;Gt8B4b4T=ZI&V)kvj=D^)G{RjRzRz-au7{t2q1L z0o*nt2cAUBg6+!>INQ($JxxM!;$IEO$7bMtW@mfxwGHcJ9e}GfiVM?5I8<;UST6Gf zi(@zNgFziUSSZe0Z@Ln7Lk4O5>`VAY>NPFo>wxI3t@!ouW_*?w!Ftc4$R~J{%C)D1 zltUR@mX#uDR{}^~Rta-TZN)dX{$MteLY8lQr8q-12x1!uc<~JqU8^AOhPYR-DbyLC zR@Gy~YJVIP@P(>p^=M7Lg5r!j@bZ8d`+o1|gx`6IGv*sm*ZV;@Q|Lbay_W)M%OAt7 z19LGqE({$DpF(iVUrc?bg)LV#I3XIDIQl6R*Y0Vdwc&--mCcA<9W+5B(Gt(U{018> z{*oi+Y?mmhj#BOt)MutW9xxsH|Nkp=7guoC>}f(f)k5@}XeKTDMaiUoDXyZB81tX^ zgUtpW>Rm9vrs11AP71rhz5V*Y`{_itFUy8G{7V&&oo~S$S2Z&7)(<`i6YF(=5RK= zHHKx&>TtEzRhV=llRP-3PV!EE0|UDWYB0MWTg=mm>#=Xpn!peH-CvV^J!!Og<$buf zk7bCzHeu1g5hQ}E!2U2}d-(NoDzrU8>H0xb+3bUJ-z@?E&bRPO$_Z=6UgHVRJ9NdR zdz|nhPp<35a{Mi=1BqsAE@iWuK00(6qE-G7BeMgze&sLby!A!C7ow>2YaQJF9Ec09 z$I{|zSJYqo0%t4~`O) zeg7re6W0a*X>Lu^OXZ@_?-)|6xDie^WuTs95B)9K&z_gxv_xk+)J;jl%=(A8%8sje zM(zP_^9)2O-G_M4wGV<^M&Lo~FCd#t(exafUCA#8wWm|@E|;C1vii6yEk1(B?tipW zXg-_}tmX2#ro!&8LwL(M8FsaY;n8&u&?O`u*E&7LxzlFB$hCL)Ym+ZMvF0Q4f(KEw zjQJ_=S%PQ%9_pu(M>2DTz)-0QrU=Xf&P6c@n{yYU)=lLIRWfHtdJGNU)C5&}Z^4{8 zaVJMo$m^I3lJA0`W|AA~&X%FN>>E5_=LTee@hCjJV7o~gl<4tc{Z%#QD}4+*S0KoF z4Aa1$4;hawSyAY%IXXZJ1l%oE+-4q+m5UuX*Kg;8-4V8HT#^ZLtA3O2AO1M|@;W@* z!sg=5$Jy`HapXlifsDfl?0EN-TC~~0GxN(3>%1M;ymAGTKOgAz4~#=U`6m`xvL2?R zJpPkAKq7P!QB*t^?i&oFbVVwaji`W5&3O8e-a`8iM-<=e%s?e6A*J>C-!R~XDwv)e zhfsS$mVp#2Q9EHUPg~1KsPj7~8EJU>?f~3`^UwSx_#S zeef=gPIiK2EAC^CjeE+A2f47}Vj9e{SAcxAeV8}vH`@J)#O~9B9{5g_fQ;iJtZbUVo6RfeiQW*n&H>)NfcGLdV=m-BH%?0Kd*9uI%LiXfT=DK;Gt9u#TxIiTkJb^vt-Pm$bTs)3%LZQHr1m4^DfA|m<%r8O6c-wY0xd1j}qc@ z;7Uvv_{|)lVGBfflYP!Wowg$em2H4?{A@S;s~#tO_mZlWw_$cpJQUAUSByG5liaO2 zPG_86O;kP1fCyiwNwW#jn>YfB^G#6t{snMl-x7(G7tr-2nVL!L$14ZZ(U{$zhYj6; z&m#$Zti!lsPu^haNg1dSTMzYOrm&;y2|gkk*gCZy&vl5S-U?|>b&nKC3b(?)lvLKY zhytkt0=(VnlX-r^nXI2(#9dNr3mVpsagRzMcaoMW7(RRiMY%O-e*YN!Jm>^&EaUsy zIu>?cn?iT~V;_x*6L-$QJ9zm}ROq+)`h zEvcHH$DALr_-H&G&#Tk1t!HhKmmt=r6+EvBFBc3;x{up@3sq5ttfq5{}lr zg|?zUxae;I#QhQg?-eV^jm3MhvN4yvM@4yg6AOs*l2Rh`G7v-+K9EVaPf@b$F3O~Q zK-mH2w|LKbw?@*a*vlBXW2xl&=lfW<%osZdkANr3eI`at!LZ}=;B~<=P-+vV24dpG zc*OzEs`WYOY!*dFJ_pm1y^QB+`3u&ZiH1dNe=tLzPwCCWyI8O_4X$`QlkyoZC@+u+ zsT0*0ee5rMIaL7%tok9{-~gJp&L-wV^*Ex-oW@-&#~Sb+tn#mNH<3PgOYG>GCv|uc z^RW*Zmt}De+aoBzA0s(P(|!Vrt{;P2%|~c6%R5ewy^lLzrqI7jt7ycX6{yd$EHl1s zgKEJCu!`-A_gLqG@>^5X(b^8Nm5(9+4L=4oFg_Hg2l3-G2)O(J?gu#Ft}U7Ha8ode z-QxvoZfv9De^j7RQIt#ELO}RL0y!C41Km?upOYH_Yq!J`&9>dtrTzg_4K?Dqg_rT9 z>_f;|(u_X!tOxnLfxNO#BHvw}fnRwXB*+eu@%nlAZM=>~O_joNmvKegg@Wr(>JlMXGrcb;iffFNWzWEx&hno{?$){<$FKj?r?Ip_XHAiLfPOM86 zg3}X2X!F{^3J^lv8GT2-# zJe5Q*xkwK_qwrmy3oSuDP-c~gt0$i!w^l{r8l`-Ux%e6GMm56Z`5ovMTS^xC7va@S zgV-S@#_7@9M3>p@;QAX);)(3*roF8rie5%iG{Qd@l%78$>8zW7=3W%;n(ze0#sRvJ zbu>nAKY)^hf2qKfJJ{sDl(^Q!;H)zVG$^PTVQ41zd+a6b+Nl9UGOSnR8w#EQLnyhI zIUJ+jv2Wpbn18$o_Ws=fY6W3fI#UCO*qO98%L6QK)xkvk0C`&WgmPbxVMwMAYKL3E zsEi$aFdQbQUTTvUE7G99D+L3x?I6GDDa;!2Px-0pPG`;202hyH&}(o55k+qdNqqo3 z*<@V#<}C)WIqW&DSCC~|lxDUu48lqqq3x3+*ER1K{I)v}%}Nv^445bDKVz)d@W655 zm*6?Q294f-#UFboLDeNUkZMsUmY*b`d#w`qJKZLAn|M&rUWc1>VqxtFkGtES(yh{# zaCi3zJXD?z-|BXO;ax}k;nzYAM@PW>b>aB4-9w7@>tB+yU+iK2I zsZq=;cn9a>8nKhl3XS-R7#Fq(dUAPKUtRzgpNoK!-9s3-|A;Q1Yfl%)n9`lAvO#jw z6j-Iyj_p~Q#C2XMT~w8VF8lJpItHOqDgfqYIKsb>eC}NPeAL}+fbtjF?!NakD#ztR zV~sO@IrR}MY@Q*fJ|CtZFQQY6+4tEj8U4qSVD-P3_yQMRz57bkrZ&UvML+3raRZLIT@Kt% z{|*W^OKEl13p}InhgeDd15JH@yaCRjy)PP9^AC~YqU+H1g&*QKd!XIIFLa?OE9u=7 za`0wMq>AraRKucQi1(qASxeB)mWMir3G<5s0fbQz?f@|m6=-qV}@V5OL_!27u zQ>t^RP?9)YE8C{H!Z!;OYj1$uZ7(n}m4?UHl0a&uj-&H`-j2}~mbd#1GCjkX zb-5dkI6njF=V@S`*GJ?}@4!@#S14zoi$~)OaXN;f!ZUHKyPpq&a=+3N4qwI{N2@{Q zTs@w+-2rFE60rSI0LvcRq2=us@Ys_IeUl2P7&je9xxw zciKXHIR;p;BpSy=;z55;7G8HPChkir!0Cl!LRkvpmtbI&9qI zj9tsiz-s9X82kDG%C*fw_qaV|54VEeyFB9U&JcUqaAP^FJ(;{E3&2o&*lx4Lmx?xcIjIXt^aF`EPfF{WK#qO$;EJ0-s@6$_BoQ zMZ-g@L|A3GjIpI<;PpT^PE6#%uk>|v)s{$dcsGT~4?8g1Xb3WW7Qo_j56Sb60vsM> ze6t-aAN}(ags&08qRk4pZSe){RrJS>iM<#*C78SL!$-(f?!r8wcjT121&z(xLGIoz z<)rH#2GhN>Y3s-PbkK1tG$sdumtPG0YW|ouo}ZYZUYysnapi}3fk5_q(|m1 zCZQ%XkbkZL?ESSDrug2c7bRVo5AGeg)#i&&+mArX&;(BWHh~xGr|^`1C1U)(b$GXK z6W;tW7xcd*f{>mcdq4B>{;BY=;qVg@y1ts$RUE+R4s+H=6(+O3J2LmcIOpTI5O3uP zbJpD*!BZX!aJlAJxV~d6*nVIvrc=2vU1l5Zok370E1%7(>rij&HJI)^KrHV0z`Kcu zc+Gqmi|+1a{!U-e5=ny?4;`{hQx5{8#8J1`p6fPxm|L6kg>GC@OZj{XaQ~WS+?)Fs z&kH2N)tH_5Po4ElJ=~|=I(WNK2W&S_C$X~b+gy>O$H@J$uH~S-lkZ)WLl^72sQKA<+^shqI zcR`-WdQs>yx5OFVxoD*23HkhCD3wMr)VmDqR$T%&z0WxNAP2uWRN-59V~&u9Gn>;6 zg4kUrR2j;^w(@x_BX7>wO#4B;u7a9{-9Yzq^We;!d9Y)8B}nDnBnvo+a8s-bW$w3Q zeYicx$VLOBZ>a&%aHZxZlGxlKqLeQA8M|hkh6rvSlx(%;O8+cnE+A2Q+xHU0rfr9U z)LQcOLJh|+$pIynByfJ7k;I3Rws1yn3vFUO=G&^tcx}c3ST|UzczID89DVeh%6Kcl z-7S20e^><_m-Ny}#u?oCjyG{{gb$X8@UTuZn}|L51s+#l(@KG!w7T^Xi0%2fYI`e6 z8NY+RosQt`h!Ef>0m&?9dbMwyJ)61YS)4NV%g)8&`f@68=oidhSBZ9Sl~KB=4`+Xi zLY;L+kfqy?k6J^pec>iLes3?X|Fn_JS+^C|Wb^Y(H4oC~yUuXVO-{w~vh$qt!@scj z`A=MPLILHUz9P!4agbB_3uHb`BNsSnB$1upf{y#Z5Ay&xZe5GQp`8#C=SCg|d;p(s zowV{z8k|?~LV5l~>|b#g!svXsX!{jX*f-no%L<&^y9`FFY%x~Vkdw981a;r!VZFy< z+%6%D1u0kQch(QOsK>ALU-JW~o4pRkM)Dw}P#7g9iQ}U?UNA)?0-lCH2aCZXQnN!E z9SOz1p949MR~&%pTY-*ic|(!p1jL(fA?q3AVq}p&j#vfYXU$VM|64rD@2I5(zuQpl z+91hG&PQ9%%~%z%4kY4*l+M|%!FMlOVFl&F6s=z*m@f}sbQ_?hzdObShC;8Y92u;e z0BzeI5bgg55BAhxl@R-;h`TEetdBvy&Hq7A#9D4o2-`KBNW`s@jE|#R0Zz|~=tA8; zaBDSlbe}gt%{d9!b+#4bV~=BAS~G1LE2Vd9ZP4UY6enur2{>XD@y|A<}g%hs%2Nz!L;Fue`khu3(P<>4t-JB}O<2bM525k2rYTsj+myYEQe8uo; z(M~+>{EYM-O2m?sF5>Ps0$=;?Vdl47^5sk*zO`|t-a3LXT}~IaM$d$(%Poq!!Ap_x zAMoU}7Mij}6&{?O1C5m@uxQQ>IJ!H5SpTepyo7w{w5~?Jx_qeIRR}vhH6iDbCyF>2 z)3rKQY=1gVZnge}4SVz9hTB2pvA*QYi?>0R`I9cnT^ zgjpmkv0ubyXj9;f-%cp~A05Des5Q;dz)hc@tJOG4@t!HW_j_3JZ@k z;KxgM=y>-iG-yP^tg|Di=|VBJt{SsH8<3GFzi`VIHC%9I8vYxciL-9CpopX(3}0k< z%EoMr7n_HdU#38Lh7;H9^==|+=SpvOg(3geetKtm6W9(WqtC^4T;Cs;>B#mH=v26i z8ulNtYCGeNYzze7gqLvYo-d?V+vDwf>6j{c7yS9up|I^O^lFu3+p%A0Hq{!+|2CmY zO(I^4DS~mk4v0$}M$J$sn#9gymprpkD>)7q-wJ|hYs{eFEW(MQaXd5e8;?!TC;3{b zzf6vZ4#%VR{bK%1^=GV;Cp^H^aL4ERMUirMK zytNtSc$M*)@S`!Ey6zL`g!WNrJjLY(VQ5pJi|RE_Qb=A*~4X2xg}#G7vY*sJW%&U0aKGocJmO^btj^O@LiJSiC7D`6*^XjD8-k&|Ye-6i^+dCheW?@Jsf`veB=7u!Cv1QbY zajm}$$igAh^VG&EiFSuDe!aIlv;?+czPbi|DmGb3{E#~o#Wvy4G7~fu%i%swe~a%{ zzQC)8lIV<^mUy_*gX*is;Gn@;?ml+zwD4Gq?*z9asN}+?Yj)7)@E2uLKVVz!2-a`v zr(1dki664%^7e=Ruc`nl7M&W5Jr``;!yV_%scxP1eOYe>9#PO zaB!oi)E6@6&TslY(HWnMS7M98KGu2ahG3Tci?o_cAADbj8cRaBg=x;D&^ZKy?zF?1 z1ZkAx3&P7M2H0*}pD1ZC=i>2&CG5)X^v;;E}e%a^IMZ2M2U zNZQd*h1{u*D4(lJhlK)Z53h+T=9S{_!xm}F9)zOzR25vK8jnlnN#Wa165N$%$2iNr zxkJQ>{a|5$a7fG@l#@kxdcL--_qP)|yDI4L+ADC1_XGc(KaD&w72?ksMDgKJto!$y z+W30G36B)`R^|i#rV=nOtB)*In+u+~VeqDE9a&aAgg<13c`8z(kT-cMP8l60E^D13 z?A1Knlj9AO-`oMUt3eo`dJ#@f5#r^$_mJ#A4*1t50g^AJ(W$T5_f`HhrrfTC9uW@8 ziD;4|sR&7%K48s)&G2vH56zyFiG@QVY0P1MkEgJ}Tny3_w?XQ|aLf$d%vt|53`;bkutCL# zyWuKxU&l-*UMm)&!2VR4_$v*TRyJ`@n1w^Vc{6f1c)@$YN^G9-9K6P+@e(Dw@f6!< z;DiZX)zeQk*nZOY_cWeuRSD#eFb<}mJT>qOhSTnwp~CS21j;Q#!Nw?*X}t#@m-wP# z<4f+g95-5_bDfcuy}VdywF?Bq)~I ziRIt-!Zy46SdwqSne=%pq?UZf6Nh3zaN-}@{E#NL?;ptQ`Bf>&l`O9U?bjiI1VT0dc)^gkyP&Sb5x_l+^lIV z6S^QBTq(f5SpvNORQF;?r8eiM$!TI(HWjehj$@;x~Jjyx5aR0a2Np)lpZP4H_T!bLm3 zgZMxI_B}|0>eesJYq1N0{#D}dXdle3(tt~k+Mw%H98KLOMpKg;vBqZ<7hRA*C6QU= zuxTiKIjo9H4&B3#1jPz(0$`TCi;aG)FXb<8nyVekj&rM zTr~qGvw42itykPDtAp{TYcTR=j-kRXd5E~|L6Y|61Al83>PcwP9l{+@_xLQ?m+4Gt zWeb*Zk7I$NSioB`?aRCv7fF>VYKhbgg#=+z@V@M^dQp_IAyHdv8^dn$0dc`7+O>H^-dd=l& zB@p!s@%U`|3z}s-9oJjmf(ivy_{?TV%G!2d>@^!N%f5%3x3eJfJ1=eDpe_*-Ze(6( z3%KS)LG!c|R^D7qgZ7qT^Tj{7?q3Q%dzXP<16v{TrwPhzh=UR#A>NYLIw*bNCs?kk zK^*~W436bsa6}NI$_T_;bU|dhA(UTxi$8BwfV=z>xZLy%eUBlwO&7wnXDxWgYazBR ziNkoE0(xeO4l25ZBIni(gwf}WDc#RKZG4tCZvF%zWe>P2@&veS;Ng1|Yag z7Z?3F3JU@S(C0Z1yB2OI05>Xjk;QPmvEsEVhn$hKk|1=005W*^CHk{KJv95_n-)gVq}~FvxKl*u)9( zGPjm626rn4RL(_Rryz`8!?OHhDX?9&4rjR;%gPWwfqu@e zfXVRRF@OBxHHK{g)foSEc!y=>O5kkR!l@M>!s}0d(SKep@Y6Ag=gzT`Nto_%HKSBg~oqC_p^6pyjOY@@#1bXqJHy8KqlA!vs zqdPS2cH$C~ePB>9j<2m87^A@%XIbcx^pp`A{v!bNOcrpY%pOA7ZB;bWxdP5oh7fe} zD}28E5)$&&nJ4ZwzA1OYz8Np@z>;y!rY?#(=LLCV$*VBzZx_y(A_CnPI$`BLSKO6r z%=Uie^rJ!)3Hl{ZppFaolv(GeX8_Zdts|Rv2Gf7d%pd3K4x;b{_-;PLh373{hUZff z@hT5@{q99&`|a3vrW-vkIYW=c7b-ur1I=RBaJo}xVQj1shW|I0WvmvExl6sF|Lc1U zJR@PmGO z0pwi};wCD1Oib|UYZGXk>kET( zM)AH=4qi~y0i(+i)KOy;9yIxqCK=}Bc2=R%iUD9WZifFB^uQ(SV)AojHYa-Qcy$ohv)=2T`Ut50`vzP)1#rIGR@Q~Bh9fG8U~XCqUn3$===o_78GlMP(t|EdLW}(CrIY>D14#u^{z{;|pjHhJKfGP2Kym24cjRQ1%bVkA2 z9Qt)w7*+*^;?Zf&Ft)H1g-`Whp0GMr%pD-t8mEB0fh_*8dQDW=Y(8X`A3c1H`HM@K zPryDCKb-UgH5FO(%IN}2%QEC<%!+pLd|a((2-h#+X;d18u9h3W)yMVMy{Jt z@D-Trnv4+^LF50Qm)y||X>QC{ zdoh}vy>J+2`L5!6tZUO1jPk5P=D+d(PlX@=Vkijzeo0v`b30RZ*~X9 zp4iZpjsL;%g**^G{}CoVY=LQ0z3D5%SNLUW8m#+X#7(k$j4@kFAoy zZAvp>;WrF$Y210JrVl3y?fjkHYh8@y*qE{Nkhmsks`o>-jtE zx<8j28x@2>Q<-aJ&Oe&qYzgnjys)^rT)djm6)kD(oPg|UuC{L~fAx@|sqVWBNK7E%J`F^$+UR+TCJd_8w{ z0zjqAItVD^;)>MoaNwIW`0oyb*`qd)E1!k2fp=i%qiK}KnDLw1H{$uABnYp8}cSsLtJPXV|;((XnjqCpo>QMrn?cfi6QmUUVpJ?S7X|lE zzl6`<-=WIlD*V9F!J>tp@OnxVG_I8-%_@I!TQ~FXnE%SsFDV1>TR+fBX%V^&XTW&6 zBaXEP;7;));8vIp3r-61rssL$%fWNt!{4h)BYl)ZjQ<_zr1$0Ik zzMa+p0fpOWKwoOsk%2cveSrWkPFoTiD-S{aGY1TKoeC+w^C40AG@2~`g|T@h7@NBg zV`ukb=gx2__h>-FW*blszX801{-E-CH$&m3fvB(p%cmqm;iOTz{q`NG+~+`s3mRbS zxG2ML*1|jfKk)mS5BuFbB=cE@^s>1RK2muH6MR9q_AsBC;!Ou^-4=^Q?`*O0oHZCa zmSXC_Ly(fW2c6Q@N6#TZJ;3T-gbdY8$z4hn{m@J;)--d4p6z zB@>(1RDxsnK1#<1;Y#9s+;rzX+WlBaxP4+6Bm0J|H=IDXB3F=0{tlNhTXm_J0%R&X zlQUk=Fxl4_NB(rezFpgK=iwx%`<)CC7ngwek34!j&7Cp06ktEgRi>I$;&`6KYUu>WKJUfDSaV>|MGHj2!KQ&M8OWT0YBhwMrs*)N#q|Y4ES-2NpZnGTtxC z8ow~d-!uBCtXC|p{#=nI>*51hYX&%iI&W2Vn^F z)jaltzIVR?Uv3@wG{~onqUAM;kGE#yLY;2afR#^hi-HwM7uRx{ zj=X`cud88=uqg4eh(`zUH@Nh6DC1S`rWr8_Q2d>_ybdg*788i0YN43xz8{J^r3Ma?AiqTg|hJ05#js9*^FmcqE+&uafmT!~9(v`=c z=5sZkZgv5?%eT?Y;vA&zTms5$ub`;WNFOSP;KeyU;4@PZLSYD%mwcyX?~bBdxgRW8 zn+wygEJDMQFSuscdvGc6gcrrjQFO&kc)8aR`Rd-{%=ZIm5`GW$t}cMHG7)fbiW^ws zXPT{DhI&&csoi+-30Ld3f<(>-oR(`tWjmYkP;E2_Sto+PxfopdY%?sd*g);`8AJP_ z3;J~NsiiD8M4L~4Ncd1C1`BCs@m#-yqy&3!|FMMtSC(7WeGBClyHThi9M$GZKu$X2 zN``L6srOspUgjNgRk{{(j{8B*>|pr&HUdvau7W~|M9%7ai8x6<79Z|3BQ|4=)T=mv z`7CaNkmXwNkRFE4$s*{;81yO*te@&HMQ{E{2gmR@;uSB6Cwvz|d-pF~UKfa#++C>r zuL%};y3s|qu*PLd|D#g8QHYM;f z3Y9l7H^E$gj30dsmJ^YXs{a$mbBAy_W0Y=r*Nk~rKZC?&bzEOv$L=AX5PYx!Z~8u= z=?BM=-}?nNsBeNn{w`3c+6H2Mm&sbYO=#mZO2(cyqS{yhc3HBnptT1qYtjJqE&LdH z78pmW|beb=m%ns+))b@~v68R`m9SgPL<@n6} z4aX!}n+j@tg+@un1hZoM+G1~Fv%(Hi7aP#*t43= z3AcWn+LcOr*>mW4MiTfgaEIe2lVM+SD}2dH;

u0^6VOp^Sa5duGcKO)EY%pSKNg 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�gY%CrjL`zAj6gJ#y@1o|Trk5q3q9@cVEklzI$nC5r(1dm?`I0r zjD!(C?}hD0IOG;{W>_~biQLtTp-;x*>8c;upzNf5`5XQin!{IA3#CeCT-^7-osirimcY*dl)ZZfFI;;|y+jF-U929(jMM0XlHG7<;}v2Ra*3?lqYU@-rtx<5eI|1m_iK}n2~3(Xm%Zx1bcXMj z3_4pTV}Efrvh&%{>|RGs$wy$al{F5vHnBopbIIFV=Co}zmbO1TK>p^ZkklQ)Xljs( z1@4pCTjF1X#&u)%+1Xs)2~8mqcv1{!->$+<*5{yLa{}%*OJEIsX2JC+31aP$0Z)8O zS$0tcptgJoj2{gr<}TXMY~&B+ohJYlgsE`L7+v9@MIWD!h5Pksuv9Ay>ZT5}1dES= zHq-lgqxy>c-0X&vzFL{?Yup33Rs=%Oo-^>MISBhCw$WFX*I0X}YtX;^okVMB9d1i! zV{6)Rytt0s<$m*54r z#}E`;2COV8^60=J$p0||<~?dAu73XXFf*&E&~(LBH`=gI$_Ta9n2yUHP1v|T8g@NY zg&SADkZ)t9%&d9`5gaKbmIIm){hV6a5~eMH%Peg1gg6h=w)IjG=KS53 z5)9=r!*J)x6nrRV1^SogL-(#y=Cc}zea3PSE3SmMFCIhR`Iab>_LFR3ymi5eHE1(Q z3(FM(alv(0{A|?*5fgvuU1JFO-63vpL-gh|y%G*~6B zH9dTZ$w~`8X1$wn8PXG@;bcb&d=YTQ;LSl)W7HK6>{&o`j$Ox54N8Q9)8Og370`V( z02bHts5a{yw6q9dhg8;c?b)cxn|aNA6}>7eDJq9gtOE%pp&%`u6I9SgaX7WD?IUX0Ur0#0>!!|DAC)(vKg{Nq2qT*UR)Ra<2zYRUGo9BheBJuFI=`)cV+=}%F_0dq`9JYT=r@iOW5M$<; zqQ^DJ{Vo96N1veZ+MCp6fjGoH`+zE%OF+3)2v6Dz(;<&WQgoyoO__7-i?+2)cWfU> z)Jo&BQX>%RjHX9FiSo6!MbSkYN2wn-k*ZG&Q@iRDJgGtrjF?wXw!dp9U5u|U!=)Lg zDz0Oxby~n1?QpRE?g&E4N3h-OAKk35k-VPiiGObF!WGd%XcMJQuLayEL8Y3sNTnEW zE!qoR;gUG^@jOd9AOj0c%`3(1whwXtrJl-|~Xb+OalAk$9;-1o;cc)1F)ktu=}J+5BK;p z9@^h3~ZF@{U)lV*d-;FkI#gMg06)XzF!F#1V3@*3}e{NV~!~PhM z{wIcE#|#L^App%La0pd3R=TjFHyeWfsL3{Cg6PMVukI{snTqge`OI?lr z(vF{t>2o&%zTSr9i~0c1XzF$5-EcYzjmhw5nv}5iw58$US0T_W>d7uMQRbv$ra%6JRDQ*?Bsq-)WOFerPvw=oWW~{3#8OOXH_I# zBP#2sqTXN%4y4C0J3>oSE6W+6%8DR&b~{4-AzQj(P6YJ-QvwTLTfB1m6^r{V1}29d zh4_FkJTZd_5_lyK2G_ZOr?x7vTnAaMU$`L8drgF^BcgS+ruXNRj67uS#Sw0(> zjLOtxEH{3F;ZiQ(|F{4Wv+BU}Z!$DT2(VI}N{F138YmW3)3A~+VB&QglDtZYr&u?w z`*<8`(!ycUs|3hxamB$OTgV0Da8sS&KfJW>e~4Rs13c|8fLB+VDN8B?_THO@9idC% zZhJQ@Pc}zG)m>=H_+Er#Y-xB;3br0C;0;_{i|_7ipg(@9;f`D_c-dlvkCx7atsa1H zBxC3Rhe!KU9^jS5%ILT~5VzOfqwHS^7#jMWPE1`zb;;Nn8C(e z)eLy=bc;OyJ3)>poWb`ZHDsbd9&$c3W31UN)Hy?m&sTNIYMnxAwKx#FQx)pv8t_m? zIv#p)oXqIognjdm;lqLzW?k4Ym( z2%nAT(obb}D3+K3M~;f(9nGz^C#NXmBZotfY&k+IUmPU?yYBF+&j!(iw?g21>lsdW z{*IQS16&_dKKbJyNq2<#lT$AhF-Xgj3Ka$5l~HvvdPo*%K?>H!P4Lc$rodk&8{f|4 zuo};N0{*!~l>ZzF*=}LHi~HU2O8f?vc0es?BnP3ebOu)3A#MJ zAjMgYqQe!e)`MzrVHLLCy~WxaSj2HyRt^?E-Nmw&5gEDvwNeW;_FV5#ap_p!Kl?es0?UYsN+R zyAQ9YbLmm2(Yc8a3ufU^`Wm$Vkc(^IdZV}aWbjU%Mt{Bafq*&o_?#^ds`?!2^`niv z8vg*be-?vZ&qb&z3ZM^^iyU1SZuy9_&%~E->z4h74*ME%bV?34 zvP+uX?%)e+j$H-Smt&-SLn1yf4uZm!TNy{RHN4*Hh>^^`Zq6cil$Mjl;A^vZ!q1qq zwNL@NEw^Ba7H)>$qrUiDt$;L0Gfb1hJrL7nfjz~0!7;l7WxQpS_|-55)a%lWTz~D_V{-yH}eYqQ|02C z?5S*lTShSHbb(G_=(_317oQu%f0FSE(tnuHDSXo$CTo=g)S$ZjnQ!BX}56 zD9PI@`WZhK^$`8qWYq9}NGmTC;Xh91edN z0{$&M1V-QUA!&^j>NX@|Zv7$X7?XuWn@Cb6Z_iS(x5iDeQh06gOguJJjOr&9Fmb&E z>vQ}S7+6q*##~#NZwL4(XBt@a97G+)N8$5$kXTRIj<(V@!M@!@A@@XI)p2~|E%K@JveRvaKfqElPD6u*MPWM%*#DQs$53ZPR zUIW*B6;XYh#j_c_hWv65m?zvpw)Q$>?W1EP<9aM^c-)MKJH_B`>m#_eKby<5x(JIs z_Tot|4OsJj1N>s^5!>x2xyyYokhsT2u*x|e?KE6qe8w&mG7&>_ULY+F*iAi*H?wLp z%^0_^4Ly*32{){j##gUIsl4)3JgHkkwM&nq*B(opw?Kv;GFzT(&G*I}jtE&8{|;Af z>!R{;o5^n<#_^`V0>#efLDJko^27KYk^gp&e$thvFHPSgvDt|eQ8!`MgEOF7QUSwh zQeaxy0KOj#pV>%-G=`qzgDQ+kCXBx znA0{RfV1cOX-;uWFo(U{kMlhwfWv#?%UN_Pkn_AcoTD-k%Bkz~N)|0nD_89vb|KK4H_Bx+RhJjko{@{G|KmGH`5;ERd7&++1e%Il{-jcO|lf7ylXT!Y__6>y#9HA#a*b{|QIQ>tjabmq&IK6S9?C8dB z_WPzncA~~OJ8@Ksv%FL9Kli_Fai#wM{QCdP{OtZGn5|#zC(}0OJhN zCzqC-gh_J}=&#P>F#jgA7gS7!_gaTR@=z_lyrzR?17(=5KMUU0hQazf{$RaJ2zT~L z^PHSF!k>vw`fm~ zZ?8l#h8GH_*9&0k%LWY9xn?R?avN;yd%=F$W|A`fEcHJ>&XS7VLUTPAkdoPv)YV^w zJU>wmy9%@5Sm9|{CjOFk!%4_7`b&H)U!dZPDxzRsN4jPjqGUT8#mbr9p_L-et2>DW zlJ+=x>n;dCUjjyq3qm7K7$!!mNWfR715`WYzBm zC8x?ap-~p&1pFKVUAr#fGTsGD337yDrkcP9=OU&HV77hz3}Da2l%4!#p! zq{o_2xUe1uuUg=u-K!yWH+)i-++Y;(?CSt0GC`5 z(ulA4LAZgox}*{v-Vmlw$ph}j{fLf{c;)^L`eBI=5eYPb(R5$f_Njxly|)m*5)C-~ z`~fWaaT=n=%2_{ucaf5X%{(umaw-%!1&aB}bG4J%Q{DTa62C(Dm=TeBbOKd0LP`9K z5#Ib3e~`VLPHN&EX>+PAk&QZt$E_#hHysvhr{P8D`Ps@HVAw)3^S_y{RR-jRvLHdt z5I4Qq0*9*3q22=%)~~0k*!kKOK;9Pvo^K%LjXmVAdkk7MZKB<+mr-dBlc2qRf#%Il zq9ZnaaKzFCDy6(x3*6Ho^|usCmiL0Qb_c}RrQ3^da9!qp~U;CaF}##0)Kd(y8{|}b4l}#Xn>ERkaYAExj$|IA^mlbvhO>qb#e@S`eiqS z6~CuvM>NnOkJ^^~0h$z(m z8>4<>2Jqsf5vI;lhxCkC+`TxO=@45`lGlO#OH}FB?>A6aa~WlgAD}a=*7D?(_}F~% z7whq_IpAT~L%4Of=*l-d*6MqTxTz-vX7y*oZ%1VupNJyo#WP62yGA-?e>Zp^EQ7SA zr%|TE7_LoHM*X0NxRbf}VmSq{P>;ZkTifCNN@JX~{{qez94FINH!!XyJ}7*;N|p9B z!kwNmqSjW2$CLP!yEc?{FkxCAsWnn5`8eV%E)1`H;E;jTK-rJQzN081UG>Pds! z&=h>SlHo9=x8eP(qP&MzXXu(KUu#V&H-hl(FbEyiB~_1=Xxn6_$7)|hmv&sh=;V7S zBVGgY9_P`(<~+3RS_rYTe^RI0jBD_YH0?fl5cfRr!1?b}NXc+4EMY!BEkS2k7Ar1e zhPWVZ@|nV(YJCDE%P#Xe%k9{Fsg>-}C7U4dYd-`JCX%o7_>h&p7*q@$U{c0Q_%TVI zr8%<-BO;GtMVbw;G=CARfEp@ToeT$FTp~lM(Gch>i+Z^m(0X?@on*NX{Z%eNmyH-? z>pmu1TOL!To_)lBsUFXrdmJXL>rnCBJ8UWpBwYvhK5_ZLxAP{y9N z?Hwh@w(W%JAKsEJOb($)G#lQ1{Xx5350h`dm*c85A2L(N1=JptLu}!0l=`56{*Nca z>Eh$$p-VijHCTZMlu|)SDH5eJ3!u0DHTf`q4V6=pLf1#koM}Tixs=jFCRz_;BP)?i zO#4K2?%hD;M=vq>vju)tm_&VlJ2C_IXjpHM3%edXr91WOz|VLHtoeVsTTO*Y#_LG^rFtP0n)KL21Rvc=%>3OSm^MP zUaISZ~+dzlHU8*~>tN|&R{u3(4?O=dWVQt)r5GOb=X3(lcF+I0z{e()pKcjmcv zOPJ{>xT)eC#l2WokqQ1>Md$(*x;ny#o;RL?NuA99xw(&|oD8ZP4+~(OmU=}}-uLiy z`_6$+b{VXQU&u}RwGh;7&VY&WRRT>$xx zhUDu{J|5ofMFV8Z@oKsn4tC$b+qy^}S8AE=uWX>td@mE>`6VRXZ63Y!$P{fwZ?GPf zrQ#c>Dk|=jh2xoirnz0m(POZatW=&L;ZLG@qFW=dY^V@(p$yk6xx+rUSoC<6h`lx) z_$Qql(X@X^j^jnu7^rSQ?Ri`3FO?w!7*$raaSq8*~>rD1sg)~VUin8slLFPw$2?S z8s_5%v9rKa3c{LM*O6moi@sm{d6P@l!aU=brp39YXm+On-)y-+td?)YzoAUNK3Fw3967N^VF0{2T0+PyNP zns<`$^l?FGnKc_5C$lis&INZ*=_TaVQ5?-FV#fG8c~VslxPkdjmDejG?e!fz@A~;r z(UweD3C>_4mWxecjd08?8cLXa@CB(>;(N>oUOWw?Qxp`S&TclomiDKH59`UUrQLL@ z_<8KkaKg2pT;NcrG3&*tWav^^25THSqgjiDxGdVCX3&g z-cZ5|3)ngyf;yW|(;wB1s45}=Yt9GYf%G7}84*cm)8BMrcMkq;i-E*FO0-O7HQG6b z;opDh@SxrprUId#}CMec$JGo}cse0bF(} z3qAydG7;h4Jd1VFm-el6MZZiRR5mOln=B4;dweg57C+7kO5MZ<_cG}2aT)C8)&d31 z<(PdSlb4(}PTGH`P+7eKEV%lE6!pYo?UNGp+@XRe#a&4r*@t3358*TOM7aE<1@jBJ zuH5n;)V#|Q5;z@pJSY-rdoU=BC1K0Wy)-Jc0;dTm;oST6cym0F7+pP$*~W%+fvGv3 z{2L69J2JrZ?0K}{z!kPWhhTH(0^nEb1G%|%;Ov@7BWJ6^o`^2`yDSQhB+WAJetrq! z*Jv?f$sF(2`zrBYoIz|{_k*5Q39uJ_(S=nN^wEXh#9NdR8dj`^@8lBrUwI9^;+J5CWf{gM z+u^!zvRGkfNnS;I)hp?lGV>vCd zq~n{8Q9q7Zu}GaC&N*MDS2m=PGOg>-IaCDc_0MVf<5<>!zY7Gr{c+~oBs_4=3v7<& zL$RzM-iY0e`#3IxNzpQ{ladFX%l1Q~cMg>UJt}Lfhn5-^Fzs;70}5^phzKHTWj38Ad0c$92b~@pRL3vOTC6 z$+2d7f$tfK^(Z6rr9RT%X5*w(U^0`hWe86~FEPfqB+%>nCY-9V4}S3^nMu+q%vJ>* z&}@yRODd{KhwT!4XF5cFG#sTG!$bSGP8{;%*+fBzgq?_<4g<<~ka{KLaI4!?0s@0_jWK4ZlRKAn>z2d^q08 z`G^i9ub~N*UT`dkP<pU!;@gHe;AJy@2@o z3z3Xd)+D(y4zBYb#KFx1bWlzZN~T)lz1d%=+o8))c54-x!gZY-^2(s`?;7Z-4^4DM zAP2;GAB|@ouEtyKtJw9mHXzWv5PkL+V2FAqxMYZs_c7LVbZ<1*Q`>+?R?h$#!3#{g z_GTvabtrQ|P8fDAkcQPF>1Y-5guIo>Bby@6gLKwwYQ^oCUOvz1R~FG2AZVM~fre}}%_%-Yo7ODDyXKWRaD}oP^H7iWvbwe);w1qaBLPcdtzqV z02W(bk(Fno=)s~eDq3?GU8`dmt4Ay|^GXsc$!U6wbTzqsdW7a~O9ZzQmN2>_h=jHt zfR^l=g9l8SdnW7#oD9h|9d zMrNyO`QP_LLa2^+KEo} zARJopo$Wcjk8u@Jq!)U7FsNh^R0z02_K`erJeUNos$nGP?>=1j?Jx=datantD1-yy zS>QJ2iT4GIpk+ZSy8N_6CBqcLO02|RLYa`d^BA-SOhTO<#dJ>jdNe+hioVw8@S0sJ zd{KT(Ue>3Q>(7hnl6GyJ_Vy#a|0)6^_94yaxl1Fe)4_P#4QNw1fW5yx;ImRX4S9Bp zY^`2Lo#$l3yb&JiYF)uAQX-I%P)X#z&1l;F?-Orgp(^AKd1IIKQt&%97mg~Kp#Jss z^TS*B(KO#k=0@^v zc>S1<6-rB>WnyQswR@a6jvPQCr&bK;_&{?mMbi~Oj?rDyE4k+oC9*+t@k>)F#&;Y; z)HzP3^D6PMQVzMNZi5p_xxDy#Pg>>`icw+0)Dq4FfG-&lc{ zWH-RwLOvLGT7s*x3-QRZCs-maOJqYD=?LdlZ60-_r?zs>cg}026J5-7_kU#70+z$| zyZMYwI>$jgkcVe;M#$+GzOZRv1s>zNA9hxoLd%0HT)n*#hf>{8Ts;!*vx9_@K1x4( zah<(a&ePtoX_#zupH{x%`fd9%h@Z1AhJWMkS?q0Evs$sqtWgKFUT=X<$5v2BPU~$b z<>ur)%GjM615t{KR5{rZt7T^6p>;W+pnnz&MfKqHzXW_`{f7$5a9-z^-gsX@5ML{s z67T$8GS96Ls|x?Ij9Vml3LnF}<4>uo)O^^p`vj5`k`PZ=5>Ouoyd6u>E_w%kwQD60 zV<&J~dyY+0lL{dmle2154h^c6#<#*JP=D?fyw#uvmY-XUyxjS*%dwvFIF5gL$__T% zOcL3RBSt=F5)kB~V6U$ieUxTG?5CZ<+ZUFA!CN;-?{3D=dFr_2dNt9JRf2PtwRB8e z20a$eBO5-9(RW%=+)B#r;QHcFWFAiSQ7%XcV4Ae8=D(9U8n-Nc#5{!`_b%B zCs7Rq)R2vY&KcqGFeMhsr%nNd%L3qhVh*lc?S>CMzfi+#M{&aNQPRDzoK`65!_~Z4 zxNK*_oi(H3Wyu)0bN(?0zi#@ibvMT@Oyrn&ogfn71f!gPe&j|g(B#`t7vE0?`_GWL z3q{m$;(j{iW*wCX5M&>CM537I8WcH@1$!QDC+RQL$i}eOv{fk%liRjKnr$d~ZfpQi zJ^(8_Q{nP-bG$W81+_-3ft}=mdyjj8d(&AaXWovdO?t4;WjEPmn+(~}gRs>;4-~iigT3BI zD)&+q%r9SojSnM1L@62yUroaT<20-uSV5jgc_$mfm{K}y=&!5nQHPlTsfI8)H__!$&#@R8(sURLF;vwMoYQZ_B zTQF)_IPOt7h=Okp>>4r5IKaV1*eI^hH!9`I!B+_8R0l03p35Dfw|A{fwZ2m~1QzJ0&x*U}5<~&kga>%8%Ye9R}I}&p@ z9mJ}qV$~@={HS-1G|l`#-@Xil>!BCv+tPW|-tZ!sJ1YSvmb|6uoh!ljRy}jC@F=7C zGm`B~Pe510^>oYmwWO~^9d3DA!CB!TxDxG8zC?#Z<*_wzX2(U+{Hp*2YB`T}>nD1e zcM~kE7b1BQ4?j7NtZ#@f8C#o$55f}A?7@D#!HQxm<4@){DO0&=dRTi&lhd!0U~CfS zIVvmy$(fJg<@B%QceEMg=B|e^4UYRfA_cZqCvhlgA*%B)Ltf4t61JuU6>rth2|JcS z;~{s%u*vez1zC>ykzk^_2e z-)P}u1LpPhd?;xZG(Nq-6cdv5h-+y+Sgx(%d?zc&IqHaeX8}ALIZgT8bx^e60S%K7 zz(b#M=*DMd==MGj1UrI=n|B#}IXwegn_2L;-^liFy+`hpoQFlPSTL`R!}+(%k*E8S zdD_jQj)Erjoba1Iicdv>l`FAwL>aHY^I#pUb6|h54^;zMdSzNTC@swave1bPhK0~N zH6i*-uox|TuaLy?C=lD836-Kz7@uv9^5fAUl#3pnG|21p zgt#ni*z=F`eDh~Q`pjfp9dAJA)viH3J9~IAiR%Px%m$-iU#fhwg7*Cuq4UeKVO&88 z1*Xg3$M;Rdu_6;yP9B8A^{;5k{OM@dlm?G;T5*=T9=!XM&FwELuyg1yS)R2UL#P$| z+9aD)&GUx-#9;g-Vv1*qE|M7zYw=3NN!)0cg%P#WN#7_RiSu6o&%TG@Ouc+6c*zVH z)naBy>mYvLv4wFFJOg|3;?OH757$TM<5!*S+&w8m_JbM89(Bi8rzOyT<|BF}*$F3a z&t}J6tI#6J0#_ZGhjl$XXzD1VpN))xuT2ZBy2_BPPeZTe@u=D@fqgnn(3si8rVqS_ z{qkvWQ>KHoZ*+yA_2-F(a|JBgd=zyLgn;?4c;11ENi>X^OYN0fpw~hLJ%|`e35DUC zYpbBkLj)+twCE{X2*+F6LFfGm2yoOUdV}K3W{&}C`YoM;ml>HRmy3b1Da_ydxp>e! z9_aQ4dfbJ9++iP_8&!dWIrpg9vT?e}O&0vF-zCyhTxn{0FusV@gDp49KsTctm8}v42X7&>+H$E^exyW@& zN@81d6vW591PPf49NxAFO270oqQwHtdE3pXvfG13$IJl>^NG0Iq7p9iCvkI*snGl3 zHt~C#h7YVFaU`{i-YK%jmKJ5aQRIM9<4vS~r#;(zO$vSPwqSX_0IU}MN1{|kKnv!; zU;k)q*rpCwOY7<3N%_o2*Z{5GVX#=U7s7wVV&BRGxH#K`s+vqeh4;E};KnfQ6nK~) zXXdt+(jALDVdv9SZckH9Y@!08_W4KJ(MoWd`CgEkYu0$+lLL-8M1rs3DdPTWJJAg3 zWEK=Wq8WN3O*UG+D5J)m-4A#Y<&;zSO5To*`gM{RY^@_F{$3;k0gW)bG8VUNPegSt zqsyAakkKPs+1AgMxTToO#Oy1l?heOE+@d_3*P#caIl}1jA)g6ay&KK*;$U02H;rF+ zp6eiWglk=U;n&@HOwigzROsh0oVxIpC~0m2?Nm(+-1U@FjVn0kuo{^(*M_M76@bTC zl{oc{6&g(lL%|<=c{dgfk!IKP_*`l~tLV;R!)8}Fvi$}Q9Z91Xt2mB+y(^4ptih;9 zRk&z!4|_sm5L11tQAuhK-k;opqw{t^-wb2?eIys`=Bxqt3{QCdEdZj4E3Out2btbY z`19&@=4guI(%i(m=sk|Pu`yUgtVmVxF%i{MJ&9o&y39m=5XG|suz%bWoGoE(} z9)%r*NPR)@&ixB&!-MPxqCuJV)38wJAv^ixRr>RbB^5X+#nY;Bgk3Xs;;6TZwMngW*?N$Ct$Y|nH2D=>nGFZ(ewH0>}{MI2Xfy6-y&I>k;lbLxODI1&1q1$NpriRrIB0Z( zck`wRT3oV4_4{=+%Q6FtFPT&IpaH6PU;&n=rH~~3P^h@rMfZv{P<-=&wm3_Yk&s28 zvvCg9DnCl=RLr4nYdFekTS1)pIg*(*K)!0Qcq-``*8U9ygYiG~s#hYjxb__#Up5hT zcP+v6@2=#A-98kI@23W_)6iheEUbCw1TRhPK?s8IQHMG_oB5o4z1;&^=MKX<#d!Q> zw+p{5yGB+t%fh==m9)u(hxJ{zX_21-oT~`L^;4pGHg?5CHt9Z5wzDGbV<})TAWlf< z1=tbZ2H~5HfH+5zy%!yM?X4Ef-GQ|r@W36q9#cB@Q5?e^bZ6_6`-sVM7U>#0Efz zkq1=&w8b?C_aWb(C`j7zl<=$MLEh*skead;4N^Sd{Lv>MaOn`P;Cv09Ru!~bt%II& zTR}ZQ9Z$9Nuyf_BaO>Y(h+EEOsJACWYF{dbRpdhCrX{@LumVsTI}3f!yP%Kb{NG>h z1}{V=!$Zz@BehH#Dd+LMn|z=6e>TR@myf8-+XDJ?_hIUEE)Rzd4pH;8osA`4TBzQ= z9gb^;O#c8A99eJ8DxL!0_9wxtmc8-_085Sc6NjfUT^k8(Ay1;ZqiWI zx`bZsD#iCl#F775A%0cursAUq=#}S}aDH7iz7S8QtDZFzs%1*McOE2XIo&GtPdo5~ zA5@l!L7Z1N@P1puf)A0fcUS}u+-o3HT=?2gz9_ zKJw^IBR<|8fm5uEAm`Z(`cm=+Y0>4la1N3%Riu;nPOBwy+QQJYagcpm7DZ0xZy}O# zsc3wmp6qa5idznE$D-&!)ELR+W)T;N)9x}Tx?IV=UtU4mz8?g(Jd$W`j-fxEajZ4b z>7c$ifyHiP(7g5(?1auku3ZN$QPIFIhX@ccy#PM8B`|i%0#tRQvB>Qx+%8tckhBEs za~+~ZwRR}D-iDp~%$98ZodVn65YWsxPnZh^?0!qcV2=M~KAw(p0xQ6zI2V>>t|laT z4~{;T#0w{V$z!(>qISvy&b(};=S7QXO_CNi(+8}P@d3!XE6{YR*#TE2>>vYD+B9y{ z337KEH?My>z*r^h!!rINdUdG~Dte{hyi-|JeQpI#*mVGv_T)jqj9{q!#7`&mDxgKt z0&FtRW-gXl;6IsEm}#O41tCCt<`rXUV!u%vzbsq7O&*J%WMSWCImU4OHo7KqELq1J zyc`Lx_o37qw57yAb|Zl)QBmx{<=t@RswOVp5lvS=&;yr%)%aWLG!!vTpd+irbR8pD z>Nf>{G@7!zwT-dSyAnh`Y2l>jU&)@0>SUhsU!H}sFIE{X2hW?QuzIH+9q0BpN?#jM z&qx{Qj(^m=?lXxTy-6eTe^9ACGPvgCez;ekNqK8C(Y|aOeeyOQ&RSc-+9gS-<#&&k z8P|Z}6J6Z0Bp?1IO@MIq%Z%e(9|#|kB4ZqbMStljl63YwBQJIkS93gMJUs_IuPcN4 z^!@OBbt_wAK;XK$5KNZwMoSo=9?h|EbcQY$}=XwoV z6rio87JD>Hsr}GHOyWJl*#~;@!{QTU&z@8q@VUi=E%`$=1&`5p=!h#^s?q#C_sj{M zjNiYd5c5cGEn77a?X17hZ$6x6Vr~vuUO(y6tRrmjxmcVS82~q4hhR1v#Mn4A!Q%dQ zYBY43@z?>Rw@{SrKN18xqqSJ?1+jQbL7KJwvH<@&tHQq=FOvK$3}@#yVBdb0PL!Vt zV*`}Ab?PmNkT(LAv=3DF$VSZ16reiW#)(AN0W?{y#GDt>!fa00l5TCo8xMu4X9OXd zyaJTlV#H$3Dd?Hj%(j_vJZ#=+a#`~j)_QwEM9P}~Xw2kUXdCJt+eydXE`k~NT`+22 zAbYR87&E&=NQliA+$xlXac)U;U_KAu?-zut=0#voX9HV1A{*BUYLOzpn`En&Bvf4C ze2Wzq$;FV%^tvgF5poXrfy?$mIoH?Jsz?qha*SiKhjgRhN$lBM2p3mW!*$1dn7%>> z=efAU?kNT2Z*~ON)mn{^+fA3o#-q)64&x`q>F#bTVAT#~_FtYPypb=XVRwshzWG-2 zHN^m{-xuK)CKA4PIaoe>V$%rP{Dl zxsIeIOLEcp^*5R}HLEfCdoZ=jkEYk#ZgR|m3HZr58&@BfM%3L2uYV|Gw$FWL;-Ugn z5EWv}d2#4R&yyFX<{)p;MbzfagMis*FhGIx5k9NLNwUqbK*O9J%1OZWXS!M29i`-+ z{0e+;D+Lyll)<&%6}?0A@yv)K<|%DPU-2@iO3tTW{)u4i;2IEr&_ETJg<;D^PjJ;+ zL#E6srFYs#AUrV&&iZM9oC?Qgz2=D;i!&kNP$5{~yTLxUN`#M>Q^>QD;~3_;s}YzM zdbK*3G>v7Es=5@86XTBaYK366jRQKMIi6>WV0^VYnJ_U7Rc|iDb^ed3{@Ixz7+!^g zk8~id@&q3GCrNddde8y6A+l)cCa^S{0Fykzpez#baX>z5ddYIxxPE5->bvwqOdPMP zF$Ld>6kx-bK$IRmM=bdLs9vENI8Hmm>KbkZBQ77CBYqnW-_|3Q{##+_!xPA#S`X>x zFJe*N2B7W}am}q+;I-%nZ|?7>T-?PGR!J~C!?!osiJOez$ro!>Qy8OPH)HeN9M?0CkNQc;=We%6Gk|jN%cxv{eEw);B}Br!;*ZauUv+XlG&vH*nox4n%cN zPouLq*X#VO8T$=2&~Hl=mRYTWu$hsx{!bG2Cf+3;B0fYWotxFw#FE0kG~7Dh6W3YJ z!xc%v(4SfZJ1lOIDZD0nWR^P^jj?FGRS>6rj6mMVJPet&4fXsznJ}d!+*W*(up?)1 zDS1QAYd>fI97v`+2bN)rX%taD;lO^h3dKZ)O)wOE1MU`x5`q3wocf8y&3Sd0zb2Gw zN2lW6utIX;bsR>08KcsLrm#D!4Yq`)K<0`e#_6s;UK6`R{rk;e*7*+la#WUF*)>EL zotMEH-4(cft~{9UT}q97{PEbzY?XHwgxRe`8S%?lKG_LhNF-3x`#+g0 zV$0D{B^_s{C4<=K?Hr@C6+}GLFmT>IdbLvmm(DYQ+us5~W9kidWXEbW-xi7~6@9ey zLo!Y`-;Gw4e`vgHDDJE%CT^#Sv9Z1gX5UQ5V^43eR!*mJ^mZ+Ydpehx2^uuoh!4?l zoi^h2dW_teImnFPI)Q#RDRj}tV>qQF28T6{W5~Cs#KkfebD9b;%KH{Plq-dso?Wbf zWG4O_t^rGOhJLM^1gF>Qz&G(;hFtHEK+z%Wp4+k)u*9Uu8}O2|hYGKb5t ziaP4BZwBfS7yd$*TN13D*-Lu$+6i<`l12q#F)$j4!Sm1cARzV(SgWUjPfr^DT%3T< zJ@u(c_kon0x?0lw-36Yc zZ*SNaQ;&1k6oBh&2h87k2d3C;1eukBaPg0@vAzMfm#)-=IY(UB9P59e)A5UT6uS^% zja&$6PGxPErc?9jBUJWBA)9Kc0+Dkhr$DM_mzD&n5>b2v?>46o)76I)#|YI|Q6%h#FU#=6b)m1r%lE!qy9uO6X< zV*uWll1C9$ZxmCk!$~``nFHr{qkV8F@oD@)`XnW}uCiS;zIqoe8@WPq)YVZa!jBwR zRmbR0w}{kW7K%IX!V?*Z^t*{B?mdx?vZGmePUsGqt}}sj5NVoc{+7(zy%Cw$>FoVg z$H-XEeUjfi8)JM0so8Bs(44y&e^}fm>GIQ1a^MN;zUdIChS{>C{=;nj6KTjZNW@*r zBJ^IBG%9Z#qf@>r6E`%%;}Rvfm{B5oiZ#I)Z(FH$?<2T}(8>jH@#b8cP`$(q*QhGUPKV8w(3C?3x z5O<8zv|H3jK&=K?d^3Y-aY^X?i1Sw_7sKb)S~@e$h&vM%gXUsW$~cvQ>;`@CeY}PQ zJ-G}EJ!Z0>W5e+8uG8?dJd%C+Jc($YU5PtSpTt=lU(ee92+T??K`TZGrVaP7ei8h5 zK;Z<029&{^Q>)0k90um5IKu*;G0OMt8Bv7eboEIwOoO{{?yV2pF_u7mc{BV_B8|5< zq~heDV03Su4o7DtbKFD%g1kbwQT~|Bs=5u`vocA0a})U})l63w5-@0+fwWSa*xb<~ ztB*~9O39<>plk$<{VY$-sfU?RcMRH>79z7N2HJF1gY4ci^ju?r8WHnwdqxsw?MS~6MJQL8+U7lB%Y=AS*eqf(f zjS4zES_x<9vPxJve@Pl4Zo!LX%$6Uo*s zfn;rM3>n(M@s~|-h7QMpoWko4v2^ z3Crx3gW#udjJhL4r*&L`z2Sva#NsV`)g}WbRSAQ=zM!$8osjX^)$#wyAO3Y^3i%B9 z`2O?yzv{0r`2X3Tuvj$GL}+28$!5nG6ZxxwCMWb`O~m;kO>#}+P24BPn`CuInrKNx znj~i&Fd-sQCWXw+&7)< zdLc}-x6dRWG&#@R2~~J-{Q~TN6iS~C?PUTr7lPwbaXM?=d1BOYgm&%`B6oT#nU;ch zdOYnB-Ep5|m8E9#{_4JE7MJDH|MWw|JSrjo=hx5mEBxpBV-%#}<08g*x&CY8v8YQ; zyBe-GN!g?{y}DJ2wJL{#RPwGCx2Xs*opH<+ag)3L2TU$><{IZuzi)gvXu661TX7SO@9HK}Vjcf;{l8zYY570D{{PoM z{om(57w{?m7ddS1HqZLsa@ha<`)l$k{5S8<<*4QUmkUTRs{vcvEc!re6}<940RuPk zpyqiZ{8}o4C#CO@#3dF`ez=_-@jrkr5*7HQwv~vvIim6H_2||+3-fi&;9k!G(k>v1 zv;68&Fe?+qU8G>ahAHHl{3o`Ntwt@E2&yq-HL2(sAVJ11ppg2S9*^g|I-0pCcJ>;2 z9rQt;gnz`*bS|u#E=sH)yAjt@FNv8O$AbDeLJJ-8X_D|ZI>W;lRRtHp3-weoZ=D_R z54tk>M_*ADXD>Ks*9Ri9?^)y38DvS9jPaA8Mfk2?7`vM1Qu#y%!#2Mmhm`q=bB7yl ztJZ`V!9YACoR7C2Mw8`Nq~S8RZ`WJOGxGaE(1K$D8PqKS4aJo(ap)HFv)usAjLlF` zCmn4cJg0JQifA%>Kd#%=OQG>Dd*_`29r?Wz(iva+WAX($K}P|r?*3(;?1+RCHD78} zAPlDmyt>f(D)8%epyZzZJz_Zlkd>KnF_etR2z5IHj{AW37E4l9tTSc zh(z^L@+oK?$$x2$cl{{oD0)L0ExOomt}`)B-I#vZFdJsJzF?<1`7s^jDyZ>YabvJxsDhl%Ug&hj0;{F~rZ7r>0`7r41W%^BNtx;17pdTA0RI zTUg*-PHhHflX=>X7_eOlo@EQcoZx?~Ci{r`VtDqLC1Z z#|Qi%B7X)HX)il^d%J=`3o=N;`2dqll|f1sJw+MFw;Grj44fL(`38wdf_~3xi13uRW{>Y7b9qqe@bs_t;A!?TWRs^ zII1--7u*%!GQzI>;CMe5vagjv&;84==xGtW5QrsO%3NM%cqiJPn+(gn1;B>m5wo1` zZg;+ttQt1pSno0@HklL#|dni8kE~ zNjxW@>i`>ibi@*%{q8~~nB2LhwCx5bUb)(@A zGeX+$X2RRURv^CODbbsg2>0ZjP%ucHUD$Jvv9hjZpDg2{Vn`%Si5Z|iA@=Y@ZvpXX zT}kTtiipy*ae7f=CltDyH12D;z(!@ck|mugbloS8Yx{XKU|v4P z44Hz!kxghSV2O==>GcVKY-%Xq6(4xn{g-Bj&4+>UVrIRT0xl@=f>DjbT#wHb zVyR>df~ghsJD)Vp()>cxqy(VsPb1VEvxnueN5}@-LGo<>TUuP|f<5(qY^Jj(oEyJG z=ebOV(Fn@gekdhB&$^*UkSUCMeZmkZUg|G}U$rHf+nwWZC0R5V*7eAAAy`=3@Vdvq}&S$2dTnO+9tg-32caav0;e z)$FI>#l(HCEq$eShJ7cZheLcBkhN3}4lAV4(mPY3<((WTxPPGH-P>{7I*wT?CPQ(^ z9IoMdW`Us?_O~A-JI*)5J+B_dN4$Z|H1q)LU8^7kQ^4<=EBiKU3NFvESAEu{?^_LAfaTZWn%OmxP0{hVYxq_*tq6K<%t5EUP?-0!`H@B7PiM zji(I%-#iQs%EYuAO;pC?B$}Lhgmp*B1 zd(VCzuwgqjWpGe`Gd=zq@M3Ee@w7Ti0>UDRfyrrn@xB=^NyuWps|{_4tm7G<6y*h4 zcoD0i{aC(i636gAh<0_UbhLUYww+GKSN|4szS1aaBq~BwRv!Tq%Xh@?l|K=;PUd`& zC&~F55v&_oPwr@BqvjR|vN|dQoj5O<^@?L;hiM<{(XWULy_%_4Lmm^CdYW`4YtxzS zc5v}w5St!y0dEEHVc9xMPHUge%`QvO>32QWPS(RiT@O%A_zC4z&qqi8XZU#WL>L~7 zN7<>yMD|M)=G&>@Jl%6-?wWa+aP%_Csyu^Vq*;#BScPp}nwTEx2E`K(G*OAXtAG0vF$=GUZyR`>2XN znza}D@4h2kdKyQ@I@w`^B~UgyhSN9=F$G`ICfTcyRKn@s50qi&x0g(ygS7D;u9Nrs zhJ(zkU*6=4^#}T~=@7Pi7{b=$T(`n_C??Gbpn=m*bKM(-Si|Y^9aa9IkSPYQtMyUE z{v<1Bc7auEA7@u`-QQvvT9`NtWKryTa9d{t?ypwBpR!&U6Ws%sKKt^_=Pjm9iAwAh zzA5CBxI#YFhpb!Nu%CipbR5oUhnvUQu=!L9lnd^N41(_4HACf)(Z z^ZIaR<0R@BAPo1ouAg0Aitx)u3?tsogr4DDXe4u&wY3?f>lApTfLn*|d`>6p!mhy_ zaWUphKrpKOSE(DR>w<}u>NWD-X)!7s zcOvocv+(bb47In5rvaxoak=0=&b!mf&BJ48Z-f#x_q;+Bh8MFcyz}@#vXr%6b%V(0 za=q*Vbr{2WvOPzw>E-cU8lsy81&b3P_Pr~_oNfmn)fO}o<~-%;>15GSFEr@8$7Olv z;+)A`PPCQl2YwNa=7+W6@Te|Mo+<|C_btGu+^@#`n-zX&jKxmNWmJ4g7}jr?Nn(z0 zy$99lq%@Ym=d6vWYB&qxlq|sJeKuO9@S&cH9(^#9ghFrl@OkDPq9(HmoJ>yBpz)pX z=VTr#6izaV&!@V)-izRYwB=S42>!m;jhpT*zP(XF34De_mT~yV62CTbDXQq z7cY_Gt~D^InFI?CJ7NCwKa@Fnmr4nrXOD{M;7##^aM|@UGk9Px(Tbb~L$WcDnHtN^ zyfuf!Nr~d?=?)k%>oAE9`c4bvUeln14TLq9B_WuOIZjLIrP*H4(@}&>34nphE_^k+ zipoAnMVl=}`1~%V|C%~T!2I7tCSoI0NOtocMoz|gP7`qOk}dh6Adg2EmE!Zg&!}#I zJ#@*$;bVhwx{`a=I+W)!6@2{o;Bpj7)}Cj7s5Y@JZ+GImA6am5u@;)Yj)lkW`=Ki= z0m|<aW+nJj!T=8Rv9qc(y_5!$2 zJRM9DOySNz3Ur-wXADl}0g2=TsqvL$P}c(6>?&Y%LLM4rgt9YZcHrR|)>!2z3sC!n z2n$xx&DKKP8E8GE_-2!FlS1I5+`9f+77P6a$yA?Ca?suYbIxSpnM0h9T1^&Z@2?{* ze4p9nAD>aD>oFK(Y>Qh*#c{(EA9iZAIdSKnH`@L+%oE8#T*5It4vlKz+TC0SmexX; zdqWPQBppcF^E6N)xl}w!sv)?23OyCkN~%UHnG)3kOe^|HwsPKK;r`hq-XSSiD;5V3A4aT5|TyUF%d2vY(iiFO7!@9JG{eXP3pam5C?-* zRMfr-jvJcc$dt*%#~~hPA5`V?@c)SWj(3z_UJ>%yNHXEGB);2}PnL_CLz6StIdD=K z-`T{VonSF2hQ=`U?iWbtN@0$f6o#Q6*O5B$KJv>ZihZSj7#i+eZ+ISFLFucPq`oR+KrLXJZx9$ zXAYc=zz-(*(EOY0`f<&|^5JVd=FM7M6i|*w#?{!S@=dV$?PK<4h7;sY%?DA%G(5L= z5BbMGO1``tpb00dc#bLls5WOAQU2+|^$H$>tDBP0ztb0F*sbh0t5tY3pjly7c)0sC&#W7fwM{-nKyAg4Di;%-{_Ng zr`sKKV)jAXnjz|JlnC2j#e(zO5+<)P6YyOlnAJ_h$8B!7^V4ZCnNvZQ6)s{Nkz+MY zIS8spkjvQT;?X=~W0kyZ)q6pV^tzzoUwL(J>&GeRE)jmpzJ4TMl*{ z>tgS|OsX|8pZtE~hQ|A{Y1FzebUtTd+y1}-?Ru5DESC`3&h5i2gF|qgavYY=^FrfO z{)b&vS99HNbyBG2ss!v|ckV1Dg}0PGk@W5p zU{igJoa=3Y4yj~n#`zzMr261R`&nvqcNe>xJHPxZxd69IqQKcE0Mz8(vo9WQ1v&HG zus?er6uw`KiYZ(dpt2vzc}|6$ss_|@h9lfkX$I@PiX_T+EoOE2Q`>RM8hX32YyY@G z>*+|`G`$Lg^+w6lQzcxcdKz4;}IyuLZ|R>8U5xs}G^~t? z0Q(pjX!h2It~vw!GrFkJWY7n{xormd`7!j*z+$r4hocO>tOV1ST{K%O2`ZJXFm>-b zR5_jq?@w66HZqy~xweH~zS=>KZ(N1f`B;)4y@bn|d?yX+*VrsUOI#LshQu`bfcHwS z%PWf8Z^(ZjulASltZk1&=V%;iw`XC+>Y1Q8Uy$27ZbisCOLq%Yt$Z!R1Tq&NeRo-BD1M0R zh$i}QeHp$sT}M^DmSL`X6!^W;<1*_BY|f@}CboJJoQT+kMZ8q}T;qTT)~~?ol|mpt zxCJgt2tjiA3i$tMJMU;N!~g#)*_1spQW2FA%DS%?vZX;Oqew;>870yndxlVikWeJ6 zQgL4|nI-M5v`b1F+S2&lpYQkg_xGINIp3di{OjD_F8B2s&*$TrUKI#S$Mo^-N?%x5 zm4X3k@97gwVLa6(h@v6qan4jNi2nG9Wd@7zkVhdUe`RaeN|_W300YB}BxvcpyN)@|Vr z=R>^T9U@?*M%fWVQjp2euf^tggS$KTSaV*rS{^!TC4v26F?j#{4y>)OC-c|k;GMOy z@Z?fCF&EXunNRdURK*Y7n)u=RgM8ez$;kBEK5;yIWD?l&V6PEpEl9m8SW_HB*^}j%mv=_8-agrCOn?UPv$o)gqoA> zWWL8?c(FVT?mmyChfCB*V#y)8@}xLzt*QVqoz-ojU1<=-t52%mXCr@g2`+Kt=AK?Z z$?g!20tlKsVh^IgWNBnP%E-fFUo0s7LG&c=vZ>o|(CeFz;h{SZ8UM~C)L7k1FCWPv zEk#B&)VGY@-Ex->4bUns$6j!SWGi3?09dZ2f-GMS=qiMjo92P{6S0qyZoV0z&U z^lgj*!&9>8JKc&DGET5TQwh#=55oHk&j|6^248#wu`WFpb+*?tyzPA?{2DJ#b_&4k z@L)_j(9gPZGXBOi3&fb<2j-g6dMB$-2@ z+YxLVpNC3Ig9v}f4piF+B-n8#7*%BBst}~2##Ydg(n?xto|5qBM97HU2Ju3zpnY2w z#(gbFTyl0><(ac6lkSWQqK@H@SBqdto*qH^i-3oGwaJ$3OdIVCQQd zYax^j?Rekd5#?mHqp0*TA)WqoZ!G3ys#!h@}x0S}p=|R-@uSEPUAMEwmjgmfx zxxU>Mk`*PuRq+|M2>wJ~EZKnzdOR>^x-phl3t}_B6#6>Zu|8)snYoEusNOauqS8|c zJ@PBCu_+CI8qdH1jbhBG3Wf_;1fhG74{{W@f-zqP+&$F*4<0weP}P2jDqMwp=TA|0 zF?0CP`M8yLd@#`24<+@RK+11Ed3z*@F8)=^4&=?pSC3_w#xe%(uI7cu z@q_f(!bM;)$rm1aad``~{*VhUp3r7^iHNVWLh_eIMCez#5cd7nQWen23M$i0JrrG8TFm9y*tk2@d#&AN$3WGuUR{@cD*{5QT zSz--*P8s;9rI+1XRRi-5WfMQn2mj+^71*47&zd=Fv*FM@b^A0n*xmgqRofu*Ol_x?`nHtqrbH*;a3{&^a($_SD_c;n_NAF2H1Cc0wf1-j|A z0c>9@jO{ji+2A+=yB|fDNe8SSoe<$jxdGb1dJ#Bjkl!CjK*9gYs)a+no7AVfOW0l>ecI zZIhSazk`0{;28^g&xp$dn}ekAYygc2Ee6tP1rHV0g0`F?z_$}LZ0S)_Fg_dF?r>bq za}l`s=Si5~J47yy2+%K!UeXs;3ox_Q6n)}(L5^3K)UTH(mNOd2{_Q)_-BlZe#H(ng z`%!kTz;v+xtjuUU{!Pv&T_W*+1+a+g!!q0}Sx>H49F9=OX`L6yxi6>SSO70NasE`P zj~wr%ES`Ll(m_jZhh0|uoVvX?hW)?wNFSGp8>#USuCTFSIdBBrU;Tw1Lk+w-RBl@C z5CQ#m`dn6v8a?#Rjd@U>2s4c1Al{zAC}BlxI=h5M#c(rH^-*T#>mM|ldf_@jPngTk zM{d~o;i~Kes=v*E^5_`=?>iF+_}M|EN~E}ar(pOs;Er4LMTy^n8+0n4C|s6D8hdpz z42Zc?<1~G7^g;uvdFBPCExEFfK@|GoG=x znOtm%F2%L`opG4UjJ&^F1JtEs!Kg-t#2bsjQp*8SSZqKY;vLc2N`~Z#7t=$#tT_GR zAL4YL`?>W_XyL2C)sQXpk!=9#r!aI$Kn4z!$M1kX@7rGrq!_g1Sxfz$~ zy;NmbuX~lu_GU2XZ5ibjvV?E7E6j1w##G_8&{Nq(6ASlI-)=jYc#=zH%%(uxNHlim zUZ$?O=TJs08btHsanf9BDz$wj+V5Echad{NhTqW8lxCuKd@0#-xe)k*rSN9!au`*a z3&;2(ahHZP;rXQk{r9FY_1cQ~$uk0+1a-*w_Z84Qg%7fqP9ld7b2(%ho5-!0NV;6K ziDbQ0rTo96P_;83e@Hwa-4YzHA}fms%clU}q{*;pXb+kl%OH-IL)(@&%D|DIvuTz6 z5=y@s;G=s!9AmtI@q!mez%8 zX!CW)>S|fIQ??#Q`kpe5sy*!T*b!pZW`}EI-w>15UNUKLI=g!HRU-9D4nt=a(unRo z)V#fk*sKacLGIJI*JqfCJ?Qx>h0hqs!Nsq%4 zaxYRFGw%jsVRaR8sZoToQ2=r@4|be2f~}gX(K%%@OtG_~yQ>oE^Xlv5B3CoiiiN|> zS@Ad&APdtAPH_H_jU;I>tyR7vkjRhLleYO&phbF^h8_7x;*3u!@ zywm9xwF|V=a|^Lf+DC8XO5q8wpWF`B8x+#7lg^!Gbfs%~*a-8fmCRNYMX-0`GA zozvi0<8u=8N|^hfHiY?Zwjlbuhn_S>y76)V2J7aU+y?{IsFFdnE> z;|RrvnR~w_Pf2}RycYp9`!p?Lu9Bdm)6Hi!17QZs4KZkgoKt-{)IZI&c6n? zKVOAYmYLz{=ToTdDM@(S*$l~~nZ4D|`SI2lwy}N%hxb=Hr;?oM) znqkRk8yuh~-j360gX(O-_h^DS(X=aGjot~f#pIvz#ES0>J&}2XsnK2rNxR}u(ZV4I z9A51Mc$|b=I=tZgj?%U_k*A4PQ#GSLFNOAf93@*RmvOPEg-ADdFj7%@aORHyv`T#@ zr@M`zKH&((CqmG0XC|5P`X5-+YgFQs2(G!54hioQxh(s2crA61NW^)=)^*QJo}0|a zc@+!5czrxus@X@%A4rjA|HCwTw+%*m6@l){1EBZ47>@{;fyZ|Z8nTOJ0`m@{?Y6z3 z4|(W5=@^aabVRw6$@IN<9-Fe}G}`Sp!__w;7#D-DFXt~o&=(6P4QOp9#GCvZgnxaOMY(+z>|V$ z7$dM0XC+AB#>GOoN5z#SDT)GL9}h-e@ZfYGo6w`eky(-93fBr+;Cq2B=G_&*x#~Hv zw=EKO+j4ng4yRyE^a&<>wG1TpF9yLI=joc-NH%oM1U;t^g}E!{px?C&dUkmh9M%bk zmF0)wdGk4{eD^3=AHGX0cgbV*zht^jCLK^=Ayz)>1;z3CCZO@0aI7 zUq%XEe6a%^8-svnR}lWt(}qkpF>LlKA!~1C)3|%DX>@K1u}dw(xrsjL`0y!_yrpnwiwK+mHGxyM+9a`9Vyi-LN6~6Onjugt*)< z1C18|fAuGW%CA9sHC7qN?wH}MoU3GMx*pyC!4R$c=8$LHp04Mb7D!da(kV$h36+e& zj4s4mR@6aw63m!uLx-{j;b4IqZtXjQzd8QGsUT_i zyj2I^E>0#VH#xx(B|l7=JOkq0F4LVgCrxWY!ik=WGAItcB4&bziEwHz=yF;=hZV-O ze4YqTK2rjC(a6Nvp0A;@>Hh~0CbjyfzBfe}MHvTS!NsjvUeR`07JGgZv-M0yWh z^v#5|vzpCpdL9PmoQKXjvH+uaZP{?*$v&}`#w?d=a&Oiw{Ek4Z9?8#cPg+o8LkEb*#|M zeFY7>-AyE97&MmB$89PFSeqt^k6+2+T9GPh6Ui}V6MDhYf#b)R8R79Cj-=4an|yY+ z!Th@gM10Z-@YtJ$rvi`Rrekt&Qc4t0wR|BmYEMA^Xfkw;aC3}z58(ap1w{32Ci*B8 zL&NE9^t0PJMt%4dnfSOEe}2A-$K$-2Kbae7>oB)#o6m=H>MPm5eQUtdW+QF>bd>l# z3x@p<ALRdDvnr^;$pS=4a1o6x)8pCCc zn%yXe!@Nl-xaZr6@ zKnL?zxqnh#Me;vo4r2sSUM1kK1%rY>0yzujyzE!>(!XDO{?#JpqSxU1`~ zkb8l?pLk3SD>FGwTq`S5ew+1KDn=A%Sy9V{mUvt08u8o|fvXb^KukzIY|$-8Q*P(5 zpm8B|Q3d$+JrRs|5Qxz@fGY=;(Kh`g-LqgWvB^6~I(A%RbH3`++@Y0Z-EWSK?Ii|T zEfKhj^9sw`ba6X6@O4l|I~zrNe|3?A}Ut zqfHe)&zB%8w4_bCCND>c_Hrt>Zaq8qxHiHQ=1Id2U?r8f*k93A0;%{S^FxEqu5{J>+86gy^6N?$DWWqKV| z=zJR$;IQa$=L#P&D_W0duP%fG4Zjv5#TrC~`oYAOKg129q;rg4qP2BD8as_19o3{kn>uLs z3~d;8n#tV}wz%lia}{p(cC{Ux|lAe8^yN8~m{oC%?v6n$kNR z!ruhp?|KFnURt0}26hdWPh&}R`@I4>-k%rDKRje4J`fk`sH z{J0%$j;yAkW5KXzvL5tY=Q5aAWU)R~;kfWi2H18Lka~M9(!gah%d9y@g36}Bw)CAi zl@Wt?5;au&g$tDYs$j#sI>{COEyVBae7d7+6GU9#I83L5;cBEG_#Zq%Lubr|ugeUH zCz+rDKeF)J(%qO~wTX3AOo60p9aJUF4DEW(5`%-9IITbeCF9$u_21_-Az})9nwx|D z*=azezt><$K|lL>*FkWqIzWt5{ZVRm1DPg3>B79dK&KugftAj1=7w$ zZKQnJB78Qjp2}(&q0#3AoZ2`l>lf$4{`bXXb$+$AH>CaE|@=MhMF{ zJ*GAyJ;Z}MXBr_K_Bj7G3I5}Ut#%u@eB?SdqU<>CO|u8Spsd!k-#tWe=}P3OvBA4f z8C+!&!N@!hg&=NLRJgB`x>w6VQj0+AQu~>p+U5WvVyj8hp5-L()CCgdc8V1g9dmW14OR)T{l5B7b=h)#F9^qn~NTG)3AzH6C3P6yeWe zRk*%O7e5xraJ`NQ>^W4$l)qlau8>WEmUBa}V#tp<#y`S5-m(k$s~hR+Hy*TmQ##7O zO@=2?67)ep5KXY*hwtor8vZaH_GctPW=bc1kl9NuWMgsa6D8UoBZZoe65-a3nOJ)? zmzgmoiHwC>!SUluG4$98Q`dn5*!5u&^zTW*vJD|b_Ch`*`_=$2d2qTTj{VQ8CPFGQ z?eO;}S$L$ch2xsV__O?XTYz>K_8kE{(5OVsH-Di6^NWe{cnbYt?+5Zv^s%_I+{EV3 zbeI=mLG?z4=@jEZvfu3%xn~;69G(7+cwgB&xXH6k@pB{tkQ4ihVOscVE-#=MjpEYr^dOhTw$m48iS9zl*}tgEr)+%b zy%YFX0v=sZNB45vuEL}(Q2Ls|t>Nd0uagBE<7$Tu`z<*}vI@lXO%S(SNBEcNMKe6+ z5GHyFT=Y$X($D8HM#u?Q90b_6ISy2J<j&Za4LNYOZ1N^Es!Y4_Jt&aM$LHJe@Y&UDB z9|pIRpi}``t`!HJe~;7k3mssWS%>L;o?URWVkSK^xB_cxW`S&pPg}`uf6}rh2blFd zpf>IcRXY-iMV%j5UD^g>GgX;+&xKIEDvd_sd-BlbFd#&GALYq2(1psVg6~ZpDs#8zI7QazrQqW)0>Nm z0YbP~a~UYf?uFr^03tLk9-2?tf@e`MDKmRTyD5OxmlSBa9)}&k11Emi64x<1;yJH_ z%4sGs4x1aX`h*1pu<7`>CAsyvj1im}kpQhNsU$H#7K3L_C6_oK+j99A*q;0rc*xg8EK3 zkQ7SA14{hFpYto!`p;-@^U=a!!}By=Z&tfb`a;MUN~9x4hUn=9?QDjZAoQ8-hJ{{S zPKwJtYL?MLLq$0~wO=nC=q&_+H};XAi6 zB_W~E8b1v*G7h6m@LKvclz>;T9{rJRK|G(7kzd=+(i2M@!Msq7KGJMN=bJi^yKpmo zpU9oxD|w`Q=NybWd4o!Qo{7HoI&|U3av~GKLi{ByaP3)3&!)D6g0!9Kjn-^@{agU} zS3RdriVb+^tSGFs@5iT?)UkPp((k(kF?Q2ZoG*8ZIXNi_jK;ZpuSNw#S|+3N*;oua zupeeQ3gf(hH_VnB<%(W&F0Og3F&I{Lw6kD#0rBdWs*;OsOV;!c)Mxd3&4X zd9n638*`Fc8jJsgi}B8u5@OK7X#}i9Fu1Cm{^H(AKUW=xX79ZyRIw3O2LEBAQ&Zat zvh7UPh&9tS1|Bp@Bo|Wg5&Rp>!oPPqsK4}Nv-ioiXyu;_R}hib1$woE%gs)PQ-bV!1uhN%G-V35oOA1b8We-u$8nJd-EEbcLDd zw<`&jwh3{c#UFP0xGGj0>miRKAFvbI^XT|50kcy>Rc&DriC9t4MZRrvWqG*Wmt*H! z8b5Tq?M;d>JpC!ac{ca5_j&!OYUx4pD@cvLPr1kK(dx+4_C zD%vTu3)i|`p$6h&cvtx-sSUVKDm-_AxuiG<3A(|`Kufqeb0h3(=N2;m(qLP-G?aSW zf?czd=%M`nGiRoIL9Gryd86z|dG1ewib<+)=wvW_Jh%^fI{%QEWUKTS+VMu5=BF3XNdte#x0VbT#s_S(VJ0+)xI(t=1`L|D3^$DD!g=+zQ2TWY zm~%VlP;Td!)KU(CO37@~^c3RgaF_n_8f6Y{*$nsIhQPn1c4$BNr|rYMK~@<(VBu>= zG~Q89clQ1xT`R0e`D-6E5|kjnH8n3jI0 zf=REa$>sfMr*ILP0Gp8;`z6&_GBO&%;q@!mrU?RsyKFB3qxnc42;VZh67_7M4b(w z7fYAJ>r084HGex=9$kf9f+?7kC5}H^#>v#kEUq4B>GLFASpK6Qf8tlN#l{+2j$JZs zDs_YpEl$jvbB7?%N*?YQ$CGz~PigNE=jU7T3UuBFz-)s-j{TRyvFjGYZsI{Soo}$i zX0mu-EO2OBU=jhqsMA$yLgKBK=M~8)4#Nn?3Ii+rbE`hT_ zs;nG?rMu~_H+^kG(wqnQJjcC{lQ8S{$^!SFC+X9OYcNHskeh9oLY!Vu+teo>`-1xRdfLBB6QQRBQj_8m6G=cSGGrl39K zaqqXj?5R*G-GY+7HlW1$X)HEL;hD9++wO7xx?ibB=nQ{byyv|YRnIhmt^k*DaDdCE zoEZV_Yj#6zU=w~X@}$vB1&v&HldhVm2b*)FWcT!3+*K|MtNm|c)_sn1#QBRHbw z^eUZfUybIsevnBEBGBXWHzE{u6UVbIp;LS!BQnZ)x%=0_I}4W3_ljtBb_u#lbdbC_ zSyuFZE?g*?2VFzE@#CX(xbb<6J$!sN2%N7ry_#kO_j_$&TfZ*GH%VZCXgOL)isF?i z5_n;L6=9a;V^X37ol{`VZtRXoLMysD&XMjUM6Me5eC0+0IL@b3W)v@`q6 z2w&c4;Cyuxhsf4@X^h2&g?J>h z7Ju&DiCxPJXmRWTG^EkooNfm^h<;}Lxg{R?3gBh)G6!`T|Q|hcDXvks)1}QTYnKR-*Cm%f3D-nC{dFu0!ieizyMWU zX@@V1Y_Y6pKht#O6IIMufR{}&IF83&sHz@?{immZaZw{aHC+I6t4_A9JG%^h3y;w^ z?0iry@gusHYk~hrI=+%hqFSjuIKC0^UQ8kp2}@`T+nfil<)q0B_XM=uvym=PQpUWo ze3LOlejJua!gt?h(bF8O;~yx@KfT zBBzCtzixyrJz~VW?Ep5>d8iv@4gKi{v8F`>c&iE_S}YXX&!pj#2T7ZdRa-J4;d^%WDm5wb>Mp{W7G-U2<_m5vjL$BIHayiN7`r!oAl@__g*p zxm}fw#u+iNETj?*zuh2%p4reL%4M+}y3b@k-9evf?519eSK+>iQCiFCwCzTdXie|} zTp$pSW!Gcr=N}rdZeJh6mwka6=p1K1=ec2a(r==@=QMn@J4a-8XJM&9BkgrN$g0fy zLU?_GNtB8twtibf4+^{BK(rb-KXc&D!CPACE(FVzuaei5fZ4KnoX6D@!^WJk_C3dp zSx)fCEnVo4RmbPwS3+axK?tf+;dUur?EM{62+t~U9IZ;gZbfg@pK*;E&J#m<&f_1i z-P@M`L7%X{Y+*`LHJNyC1CBF~;4%kYm>I2!LP`E~TUQWxccnru%a3_ex1p-WYIb0m zId)cBk%{g8SS`zg6uYgiU0N?YQ!!oaOxGJYXJMNZ| z)Tlc|^{6~uZMF-2B+4N~_Bs6`vkuQKRv>38dTE%B2za~Vzs`Cz;`T1~x*_oL)J8_L@euufW-8loKNcfeifF^< z5C~??aTAG09ycwFIrNU1I(3+;(-JCBlM5He)Nx-OV8^0CdVFdczKY7D85QMpU&00Y zN@hAu=E+2ZEAD8&Efbz79bwhgPtmh?d6=RRPVYEdANiZMz=RJ zqL3u8UvGhOa1fiX&Vij08DwrxE%uFWL%Og8++NkuIkst}TTBJiWGx}_WF@x8RI^)* z3gGb7Rwlpo5z)=C1_i6P)Tw(XL>|2jZvJ^V-KCv5yd(^s8Q79(+`DRCR0H++oC96_ zZ%FMsV_a!1K)1c(W)+uag1=iGyWdiRN?(Z}yFa&+1F>uIca#ZsPL3e=`*;{>3sOvOK#<@Am?QyA#8>iz6wZyii@H6HeVAY zU0 zrdTJw8lbJ2cI-ALx>fh6ai9Qx{IUSz`$Om~$IY^F4x*X)q25bN)p46WE=c0LsOaXm|AqjOpp5mbzRYbIK943Ib`rgA?ZTIl$KnE~`i4 zC|=$6hYs4=u|s!z@SJB7Xpfk}EzaLM=eHC(uiJ`NV<}WTZIG;(=0|xJ?I+_$%Spq| z2F6HKlvaxSgAk_)RZuR)&9mRPT}s&xZ?8>8Gl$@Rwzsb#o{NvHBobj<3bl0QP>K&}H!6-~jCmjCq4 z%HaI=A~l>UieoX{8P3#%M~e@V&G*+}+CLBYc)}LDkeBXRlFQB>JBSI~UU%YjCitjb zr$W9*seJ#DHunYwhf|J{6YEM~nWQyb?qSIXFL&B2R7{&2LOE7(9-W!e&v@vu%%A)j zWURc(^pEmxVyuuwUbIw^8PD^GK)x_aC2WTCywYgqQcrr{9m5@ln>c1#7+41^#!Y_m zv~g=TZgkYgituH)Bxfe-E6G!L|7PaHhr9Hc+Ftk~!%Hqj)}h3H0Q1*pLumg;Ql%FPAJy$~`|A0S8GfA% zrj*e;-UgiJxC)Go1{v$Q0%*L5Q_fcv>U=%*?jQ1&=YZT**!-VOg4_c&R)*lIHIpNK-W zE8F1xuWEEsl!d*8M=2Y1nO<4o1|EJ%*kBwZdr?_PH-u3L(&raRcN$~%x{7ix`aI!055_xm6ZKTcg*W5<3{eCfaZ~(6y@PPN?XN>Ei zcGFYejbNr*I{BAuh%3g;(bw-C`IqHIV{dU9&$3BqEj2)+Hc8NT@6zy@fg`^0Ud3z) zkH@GFX>7ju0hlZnk1r|@lj}X%9Dp?msHul>y%M5&slg@!37$t^e*V(`X9K99{=}i@#9!?(WnIT+biPCRoADOf4;HD{NKkU^X(Jy z=1!|)%;lSs%uk+)H*as=Wu9XjXFh3OththAg8BQJIP>xFJ>~<~x0tKfrRVxIME!Z5QhpM^ zltNLZiCOe>4>Jvyspp>$Q!|4}&mrCSqG{zB1y~>V+AKKC+{|6=%dxokG^i1)wFPp;kRng8q0&+&=>!@vFi z&OhZi!T%HgG{V;lc5NxAM6tNH8P$Pr=|XY(+{D}jSV=Wc^E$LQ-X6XGr(PA0j9p` zf;Bu`&9cM|cpn`iDM{6E#$1l``?u4fwlb5dx4ck1QH(xsB;n15a?_mY$#~R91$TY) z0bWZTIH40uPoJ|xHPLGFAYdOZ+_@4AZS`SwRU}H6M1bSxjc~q_vcA?<5O)2X=~&|| zkXs~zAw9lOGqRCJ4BntdftpM_mXu`$^RS@>B4XPanXvsx$xLw)^54ip-X-6ZytT@KBm97WJpsmEW z(gHNJwnC>lr^Cf~+-|(N)l{>D{t>pujv76X-&4h9hz!thaSc3_tU|}j^-#Gh5f@Ae zg>|NP8Nte!qkN#0G#NDd_S0ER5NH&w1+|Z!C^~kRF5&8m znEn8qxS5ARyf^Ugqe0r)AA}nooWPcLe%7FJH>&7MQoWjVsxK~xfW?N=_ENEG1#-8_7)T#og@vD9lRgSr}p zSOOl<@cSC$aeabLQgC8Qy4PdP@)S3$H>JVtj$t3b-FytaL|ugKzc-K?9%YpSf8 zfq~P+;oY=eGWAguX(&$sy{3M4LwGYRb>KAfLt?F{SEB8AbpZ;Q$$zA#bMpC78H@71SijflteEoV>G%TJYW? z?(+*x+ogoi?CB2hd+LX?SMy*;mw?%*bpV{ycf)VLPBSY=FxVV&ATM{Xg!hl{l9Es1 z5UrGgbJWL}&0;>-lhsG^`qE)oh6k)&=d&ezg78{j7sh7nf=T|-pyIKNXO}elS0takwLDz?nS{|J+Lj0CaX%Xk;LJ8vM{@s(Yb7a-hQvh zvPZ2{)omrntq;J3Bg)YJR*ktSP|Lo$mw-2m7&`E`5xu{gaHY?-H0F4dpA~R9r zZX;R0I2k{rkCQX4mxutDd!_rnn%qflV^x3cfNg?j+32%HaJkJCO}Dksmex-+B{+_1 z_lv`sL6iT=H9e%0hz^`D=GIMr^cxLAi6h%+V{#-qa2X~eZ-?ltuTI!>+5i@R6hN)A zJPdP_!m$Uucs^`ByqjH3#I}e+bIyMUUI*@F90tIcCMio)j{ZR0s!KuO@iPTMi$> zjX_W+7)o=8$z(5k)cK-=<=?N8%ta?y#r=VJ=fQ6HYE}ZXg?M0}Y6WxGG#o!J_lJ9b zQqZ+Cn+gTUfS)H1)bW^4Q7hG8=K?8Ksd64;+qxdLuWYB`HHsX2 z%OC2SZ_rg2yioOkIhG~0(PWjE^!|yxC@-H3cT+gFX>~p~e-xuKYN9aDs*(nk2ExCu zH)-cQ4Q%8z?VjqlOr3e|(ibk1Auw@_#v5|^;Z1_%=WiqO^y6)2wQ~yi&dP(?Tvpgk zE_c{kv;bR<-lMKhb70>mKQxs+jlWmEBs;#{pqJgN@wj;_8Ij_$8g}ic6K*Z=gD(p% zC03E+^KOAhrZls>xrR2JO-JY3_UM=Xos~SiiO!S{qkhgW$k3xwPR}q*kN%Yd-{u+Q zxY}AAerf=b-;bk6LK@z_E=o2pdra0}Rs;LdCDi&=7*4mmMBmldlE}xCP{_>;^p-ti z{+;9)eMw>XHRK?8HTgn@Crb-N>T#d$O0Wt4MDY)x1aZNu6Hsc@MGxmL#|!;Gn8!(;M5MVG8XLb*d2MsLTE`UkMuxzYeVl&! z`aRO~e<(Wdc&y$xj$5UYk&zu`l#!7T=f03pRA?*NEiJ1^kx+K_$d0l{$qMJb8fZ`v z@=YqGJr$)re&_c$FP<0AInRBr>+^ZPRiBgKf)4WThyhLYh{WUH7T|3zx8%g*h1SWt za3bymksFCYsT4){cp{v>TpI_!_UoF)ulr-PHq*rg=QiVlL$`?6MH%v>oZCs+ zr;}Z2Cg2(NoW3{Up1t*hX!U1tXq23fb*s0sZmrftdc#W0{oKk%&Z=VFW{F~=N+_;$ zUP4S}hN2?ZA*#8T2ku)2fWP7-GZ}sx{%rXO5<3#1Jm#nAoX7((!Oc%%wn(DR;g4iO z{3EL$9|Ze$)SC1+h(WB51=F}H2=YHn!Sfvd_vk<_>2*sXjmg*GlA97J=Xhg9@NtmV z*bn?p#t>A&<+y5na2ekZ>apb(vwaiydAhKX9(20N^hC!qwg-_E8#fnTg!=sC#czB)w-rb)7=aWLQ@BvE&>`sxE!f3qVr4PLO(@33> z2ijzxpuGAKTt6ZfhYSJ;1hW=J;Mk5@y0Bn6{80$QGv^*r zhfTWp_}*4*$XJbm;tJUL!H9OeHN(@>R};zM**Hz|9lh4QiiVtz;@rEU5KyR1=DymD zIpZ8-`HTf~?&WqySg(LSQT>lh{0V`)(=1&Xwifay(3McrxImaXC zMmh3=*x8=K$$5KQ10O5UoFFayaMhaxWZx#AmTV$5zq^QZeh%3tVGK>*V(Er6Tfsc7 z3P$XAaa{^QFjRj-_gDr|&#rV>(WH)>Ztuo7RrhFe`eoGEzYk7m9-(3HW%1r!Vcf5y zK@&IR;j`9su%1+e1b1O9dN4{($gIMGjjH&%d6+q_{+RAAKPmJ2EF++nfE(l*>2g>Fk3N}7(NpM!nYT{y*-Yvq&zXM zm(q5J8q(>Sh^K}*$AGsR7T&JLk#P%bG)cs(!7H(j+kb}Hb&#N0PncgEdw2_P0jeGx zCBe$A$d{)91AE;WD{(*eS^^)b`*4qx4eDSpm+vv{e@yK06uiri16gfbcq1DFI&>BnNyt(8XS z+p~;5PXe=il@`XeL~;4MYG~IBW}c63KqI*fBV4tZXEbaV3obRN7-II-+6a6n8cT0h{5i`gm zU3YkrCjj?MYBYkATae^ECDSWysk-gYc@yQBMEN=&qiJ(Tp1yNadi8 zPG#%d;u_+pzmgOPE{B2&2{`n83;cN;f-&aR^wx?7NJvwFTCpWS?KhxdpBc^K`pYSyZ^-;1 zK8VrWOn>YdrNz8P)Z5YkMT2U{)YFOat?OISQ@EJEy09NS<#nLBOd0K5gmJTJ6rR5S zgnZU4pdW5!p=HJ%+?(}*^CN7>@2_R>tb7Y|wlq zk0w7OaHw_SI5arpMx26fL*g_Pn*rpAyD|M+v!t%fyZ z4H}}9ho>W!tiYpO1MuHJ(h)kLkGiL;zMAEy7>DfGkOJYO z%#FGK(Kd%Ic;I^{TD_~I_d-rmtGoglc%cH7wR^Gm!7#3m)r90-tLaVNcH-$TjPKu% zlhkfM7?58Msa!^8-{YtBY<3Ab!t=4sYVk{~u%*3r_?Rb4!K2*Lv#TUK5i9W9b9;$dnyl*^0?T92ix?dW3$wn;s?g1^0>u5x#1S&Dd~&FHl?UR#mJ{uwJ7mR*3f#&e%Omee(dPN{ zNwsMWPPUx@p(Ag}n^7_3o0SFUo<-3sn|v7JbI$bqmndl5`-5@&vKyjmVzA^UaCzMm zv|qvtKMA=&$&@!_Bt-xQ%KcG3$N`@&(&WBRhNj+Ux!yx9E4-4D&+VbioVV-gjJT8d zfa@C$nDi5Ur6Cmjk9)5QnbZG%*>lc!AKGEuL*5$BK$qZ5x^Zn1F1RB_H(&kDrXOly zLMGOs)6{f)cBCEU?!F}|{g;UO*L2dDnTiRahv8~sKIh0$qrMBpamCnE8pM}|u`+Y; z#TqAEq^pXbpU$GwZLHv)>>PGMb~X|BQU`z;4z9mmn^X)m{5-AZ^PZxH1VuSn~iDb!Q8l6kty5rgd(;Oezp4*rcO-1jbJ z=a%@g=Evt_X}=9U$jy{Ij^=Rp_BC)d(h!$%{+pt*-}HRWTl%MEoGgm4rtb_{l+sfp zEk?$$k7K1%7Y>~u6AOE5FSE*Aw&e1~Kv=HBby#Do={lYxL_;kBkA5+srrl?8@%O!0 zGix?C>(E9AH;y53?le8>U=NjPuZVm15*Qb*Av`O8Q?d3)%t%uQ_vH7aQsEsj-^f7X zE~Fy;zTA%Z4Uw`7!3Vs0WZMya*fAN45hC3*f5ST(`!XBmKk|X|jeR6r(*^&X?*M;2 z&I9=|0xty|fO;nzYI^S|Rf*4oUk5$lL2e}8eH4U8Gv3j^xiO$7m`s)`CgOJg8+7-W zHJ-n00vTUj(a*pSZfSfZyQeQ<*2Ny=l?z1~oNngweH@6lza8_4;KoV(!n zHhi#Ph!rk60y+Llcz*5|a%h18cV>Oh@jHY`+mI5@h!Xo$tH@Da73NfQI!1nU1~<`@Wbesd z!W7+S(>#jEoqPN7-((6#|N6>&E^)xz_6Yort$S<8hx}%6O<|;nGKe zAf0SLXN?7d!VVW`)2^g1TU@dGsXys|Zx0^ZMd7Sfb*F75yyX z>{V&FuY8PzT(%>+o8-yY0|uz9_M5c+(}y`$f5<^MABbuMREVgeM>ob1ftpKncrqHD z+nWjBk74q{dp9oO2|&jp5r{lD7h--5vwNd+NC>wB_e)MQ9V4GDDA^uTF9n>c2089h}pd@jM-tBwB`kY;iO<$9-{i_x^WfMuiMN4y8 zw7DeDaXaX(DTHc2U6>whMlAl^Cnnxok?*}cO7MMc?aY2j2V+X;=cvPEid`tG`tOD{ zQ884xDjIY2t}<`-If9E#6h;ppM4x@jsgGh3z86=8f#rI5C1WEUZM%TQr8Y1#;VE4i zupAeh(V-tt^01i`b-2@I8H^k(#Lg+&+&v@;c=rlGkw*?Av&xJX_!eSa@C^7{I2)yn z3W*FO1@5)pjHpl&{0dKi>zTRqzomuX{+(eXUNW#g=q&i|o`8QA!(ce81g3624i8^* zowocXV0GXgDG=(WmujNu&fs!7k2`nT%$x#}i%+8Otgkd^G#6L8h{1nbYp}}J9{&}t z=e(tx@S*}gm}uREW6yFxnLnF6I3qZdN6o$IrO=M*-$ARcn1nZe;DEwX& zJ+6Nx?OP*IbdX~>hPtARLK4k5BEk3;Ed;~vZS>hGdorWr2i#YPq6Dzve^ zSA<-CHN=RYK8nSg?CI{&?d)X@Q_`Yk2%AnXg&m6==+?P2+7g$9VDPIQxbd$(T6?y$ z+Rd4?ZDkn?8T)X4_7uEO>VniA91x=Usb80_}Zp_^}qwXrScXl4SgHw2hJXwxcDb{d9+VHJ%qX zMV)wQqV0DR+v94YJcN%N$Lo+EK4BiS$GGB9NEJhM5{^ zXt})_A3l(Szlv+Hl)KJ`FYwW~D}1pzQUsk2`cSp7=j6da1jc%3ljrM0k!`LfDsvZN z#+3<^$KM>Wd~Xj?Jjl(;YrfOBe7i8R^ErLNJyZ6XUSQ1hCYZigqo(X^ML3gx2nqgU z`z{%C?2b%Oo{1i1pRL$k=iQ*#5Hp*q|1LHJ3l|B!$Zf=aOp`7}Um;zp z$Kl4}9uhKpA^JU?iXk}#IH=dlIo#Gk&U^+t3_c9q{vgz{I->p-fI1TpO{3 zOJChl^s^aGTCD{>{lkpWa(j*&!h>>|&*=1r=i%+dEv9PD6sRyg4ttVxVE#HJ_TMzg z?*2ubZ}BrZZ8AYurLIORq3OW?(gi#}Wzl(#3*fwDFZp>!1cD3)iI0L8u4&s%__~J9&RgW0fph|gcGJQmzEy~=CB|RMb(gm$G70K z?OTrjj4NZ#i?yqsoUHVG8UsVqnS9kYF^tPk$L31YBX-790#nu z03KaygN3_RoH5efqDHQ5&d7? zrPU{OQ8u!kvAw2;8~w&VTe!&oX?}{=_uU*&J8?x(hUNAaMXK(z7jUZ?=PLewzZigc-rDw zHybFn;suFE+_RIF35Gv;NUASIbN;3&pi`+x7A{&!uTFR}->9IR`bn#?AF)vhO>;5&; zuZyyncYQi^_e%>{{vZd|SIof&zt>XXzlxaBxB@#Jc4KOk8J*+261svU;hab~TFZ1Z zf@3G}6NCNS2X4Tiy1rB@%2mx)Td6Ib=K}I9Dl`o8Hw0n-6jL zo^$QEieoUEy@|zhulHc@jSa9xI-3Z3a(>Ri89>+Mu@64gV|c^?5;(^Vf_kH{qbna2 zD+R&F{SWz)okS)Z7GYPlFIv{_CW{t`!ITNXwy7p{Fvlp6_KO=+?fxT7=c@$n^%arb z7uu=GvV8P1$mBXNhwUv&AsvQH2(gPZ%@L^JGdd*ALCtre9L^ATlTe zrghzeeAlUTO-u}F&N)LK-XXBsq60cae#2k80GcTy$Xwx3YSn+pv3t4$;o}&0Z%jPjFjc4n5NoL3m#j(>~WASTd>(QIbW!B11CIC=LFx@zuuoS-3!NA|_@<1lwv(b`_tQbq zl9x^>eI~*=KgdJ-k+xr4hmglB5AIlKz^OVtuy;`aW3818!}Fam?#1A!Gs0B-7J+q{ zlKAV*Ui8p9MOSK$wtZKfiq9>%J%p1yR!wb%Gu#~JN;W@uT3n-_jpyKqSOqi9I0XN- zW@6^HJG9B)7)a7$xc+z#RL&NLk@70?j>GW3_ef$MT$>JWjTa-EkPWleO~*0+TGst; z66IxL&|@NlthjoVy`w9H)#@B4IIzexMso`aEaSybh0SdP&KhWbSOHG3_N{AQr{GXA z_dKw>oTeUT5L9KkA6s+A(o?<%w zVh0WQI|Co_ilFJ~d8oi628>u1q@A4yd*68wi+2pFeZEXh9LCwlRzB27LkKsur+~QS z94g^B4Wu;>V$+lfvh-2}R<*`qb+$PQ|KzxmcCAEV{XFcj;#lqW@fcS8g2=Bsg|Y@4 z=+yWADEK*>a~AqQe5o|*Ts@6PF0N!+8WgF1s6P9O>v}%Qv;sZvOJtU40$AUOg?BY} z$Ro-1ul&pyy8{gVV>X!PHFDjoK}GuK(-i1D9!_sI?#7$LX)x_*46=+a5!T*CT~oEN zAYQ>V;;;zPzdms2)g06g@*|Q8!R+L2Nqm<5l+NM<{17}$1Z@9sUJe3J)3J(6svjV|c3zet52jtMf~trY#r_hj)<&*#a;gS%?o-`XDBx!PF~G zsNUU*m62;vCp#O%hACYh{g8P~uH(ehYP>0wiROx-D9u_jjR#iI&GSp!>fF!b*vl<6 zz>g25O-HDs=R?!RC9<@&E}3y_8z&p`D&g8U<)sHY z5Bsz{84HJ7C#Jj~ODh+QBFTyKA(da1#Bt3T-{^h$wU5Z1Q+IjkTp!XPD zT5^v*jT2`dV-)D`%;x-Whwz}3KhCVufr8*7?643*-tsj3tlNQ4_)FpL1#etCLxkbK zP)C-mT?%oI?R0LwE3Vrr4sl#Qpp^F<{oT8k)*Xo?mo-1q&cl4zWn+vJm9`M}C7v$+ zvKLLCRpFAy!SLs<95xxW;;DW|IL2!Q+MF}4DJ>UXKP+Z0*uSG0E&RCdf&)5@*ug>0 zWe0utSZ{%G`eCH8_0j7qCGNKS=WPAkck4|X7KKMh0on1ZZ% zHG9kY8MPg}&rH)7g8LnoBwI=h)@IIT9?yJc`nhr&7@h1P-X*R~;5Sc@Y)B&w*vff& z*U-gMwxFf30v0_xk2LokP1fvX9;RHUTT2q@W@B%V{cwW(<9o^qIBPXBabdEA}8L2(uvrt-f z08}o?5f6{2uqA8(C@jpT={=fExnMqBtk=)I<}nB<)8jJj2KY)n3G6ogXd6&Eird1U z)3L50a<$5k9G4j&h3luH4%e6aaXFs;WOuRh=5DyT#U0$Wg6YRm6Ij;e0tw%Zu_Zwa z7k<3KjB?y?rM>akY%9iI+ayfyJv@ejaq7tX0qLw&tH9{UeWJt!;B2jhbfVx0B&U_b zxTZT9SjA6=*BQd}|K5|-OR+F%B8Ar2WxCco0#;beLzRaC=v6ZhPQH)Fi{sqRLAj1q z<=uh3IjitPw>1b{*2l?LIyCrN9{XR71KwN^LuBXHqxKt3c&}UvU!4cY#r8R1RI`W< znO`O9DsgQ6$?x>xJ!d!}x|s=c?<5i4a?n?_h^u;>0Z}ivNRGi7YBE5mZ#3^VQ3h$30TilG`+Bq5gQ18O_K6OVepIc~T zU4*ZFJ@8RvJ85w}OsbylMy+xwuoQShzuk8LvRV(7o@+9HN}{Rh^ySdHN&zeRZZm>5 zq9`MF4EuCc*}yA>>~&L)*Ihafb+*J}$MK`6Tqg{CLn~o%{UsQ%nud3yw@|Y43S8~c zf$i*B+&p51vdpcv%7aaW@zq7`YJlH$)6hWEhHf$bOQ!s~PUPfO=+R@f_&0~+;pQ!Y zj<*LX&-~qVQ}05Ywv~_SRP~VC{KBCBXbX`Yk)d-lmC*OgaXR<2EixuTFyc}|jC$)> zHSITKN5l&%YBdLrOe8RQ+uI4=)BDTT{5M@KUn2@*3L2EGP0_tMNu!DaONo zoXhWtJ8sXw=#owFUbv5Zi><_@!$ByXlmmN>mq62M4>n}@FBujaqKCCx$gQoOXexG$ zsNP(NPh@QAv6Zp7b>lr^-Zc%!JazEhHw(Np5JRWk6^FlH7h<6Q7SKI=8gG8>WCJ0N zDtqQKub&>r?Ix+{_3Z$zYMFxP_ASNt&g-%2c@7?wyg|>5oWa=Q&A4Z_6q;A4;C;Pj z6jhXfj`HtRsH=hUpYJ6_>PI>Db_HBAe@td}MZ?_>d9eML2+Z~8yxebeiGO)3c`TEK ztA4fM@2q*isE#n7)qL=|y$VtIB!Q{t9Z^PI9M>B1fW|CY7-@B)6{mveXT=>gHwpqf?W6>k-lKG0*D_4g_sT;1)HMllxBg6-eU8a|Pi3a|bj`L{XpMB-5Us zBG{f=zy|3q!Fz#8RIG3_s7X9)bLDMeyU$M2*&GY?MUgBDCa*>>8LkhyQy(n@wzu)k zcftdg>@m5)93oPFkjkeK82oDvRVWXHlhZDl)~nnl2L|U5naM*?KIsT+6mKwOfd*=3 zOTztlUql~{7xMQdd#s~`=)^y!HwG@!C#!>D>EI)_bL>2})a@fPYMpWYnrs|dlup-H zmtkLg9!la)u#RlTb2@P-Db2a|`Vvsz#t+v`--T6NuVGue4lFwnj~llL68(z1Ox~3g zT6KooS8xm-J)10=u9-t#udasm^41g|R)N^lMWEU#4MvhHiK!$Xc`Lw+KTR6I|EoUC zxSb3FU+nQAsb!C(j*^C{OW~!nBXrrHfKQjRiBtt8e`Xls?UThcY1)1)RJ3WcDdny~ zNde~Vw2ySplOlS!>>RoJ^#EPCZ96{ssZHDulws|c1!P%v0=WkMFi`W6xKG^$YaUwQ zd-}~`UY%JALN5&&4@Eop?0*vW z-qOa6s($3HMg@7RAd1(vEkP}bdn7+d6?~3uL9_NEWa@-*!TK`l6a*yZYZ0@$VH4Hg zrh>T<2~=gD6bFiwG>I$QjZZVO|h z%AowQ70Xqnu&>#XTq_+W3Jt0Bnr|eG-kAyVWh*H5SE6c1L<$JY(ERDDVeb-Oac zq}n{7U?M`AqUW{+ZCD2TUF6VeXDDW?slhysV_iEOgClV|_%zppa~VmKF~|9||N2$( zWW_QP=97yiT_;=1o+olywkWjaze!xQm*cl+TQpqMLl(T+gZbJ&$>7RZvT{p4b*mGE zL6gOhz{cWAAx*IDGh>hNd?T3)bLn#?kQSIY-~-oG(mLA>pDmgL*Pkd8)r{ZtJ1c|f zac*dHaRnUvdkmXo<-pDD9|c!=h`*-V_Gb@ezue8_GBxtJD{}@q@TB6gYl$?l<^rC& zrU5)lMX|}MjJe?)&zd$m!}gtB^oVN|Yabj(h+I0IyYDnqMmS>B?9I6MMG3VZGsHSg z8BCq3ODoD5G=H=W4%s&xoGDVi_1fLnc>s~ zY~^x4O0zs^SVJ;Zx^4?IZq^h1{FCr3W+#2yF_#^3abi_!ZFF2hgf#RuK zFfx3CcnFKp+|da-{dXL+_LmX6-#p}XXF22d(+2G&6|mOB1d{kZQvdRN44SqV$DJ+l z!Ve=7KAgZ@xl%yxuc)R;e}9v4fyFr4e2dYV^hXWP6v{VS2yOZnVOSiCyN$faz1KQ0 z)OLnyNt-e6cw;fy?>xy0YMjKA9R>LP z&@yzd-cPPG5e@P5q7sll6Ixn1h?&lo9Q>n*AXv#9v%xDGdIy-2~YUY z(#D=&Q%j?ZrEv4>pJd|UHCkNNM3s_Np>&cD9cD|>$Hl8*(BBEfLJLtrd4R~OI>T;p zONd(bj%@cDr|&{3%|B$$J1 zf4Ce5p+#5el~7%4F$vrL@+!WCIA>10j{Z~mfd8|>WeihO`YhicyE*P}@k31W^g+={M zczWm^ebUOYmFJf;ai6B3Z;CUGxcZ9Js(mIGrp^OeyNSyQby2(KeyY-yi=ltd;>4&t z9#>PuKt*22h>MJYAi*2CWdCp^3{~xl>XE)aw*2Zw%acYrYhy3dDxcyH&<>fLAS565rp^APa zM!*9*(G2c~Xtf=E>W~>I8m^`~ zvYW6mSC*>%;>S^QZ?tUjg}})yoQzmc7OZHX)-u28>Bc_VYBd0Ew?A|2E>l?3D~NUx zhq1Od7^fOgSo>L)4L^Q@Sfs8bJFQ)*(z?ThP3t2!xO?XJIuA^&x{p8VKIC(sSK*B zvbfae1by*B5+{v)iGl1m37ot~E|grSzJo4c5$Og~_D*HOGvjEwuPfgLkB5}d5=B*N)u)3$ULy%v89>*%4KdncHMFVI2aM=mSXAMM zpSpP2`P=8iCrcmBrLKVv&*y?R$MAptD3Pi-4za5W>*+Ho4P^H6(UyZ}_6$C5lf;fK(QVNSlMyTph*K zP0%&b9MtE_1xEMd6afNxXv-GEHLHmT4H%e z8`L?sbwy|bt~*jhq`7NvNJzD0|rl%bAyx-qNKW!lDbu~DW!>N+s3Kyys!APISuzGWe_K`T--EO3Z#B8xpLa9lAOstf%<@=pSjALW8a%3slc z_Fi=G^&-6RFc7v0oSi zf?;<_48NcXAyeK zy5j=3`^z^$XCGmfZ^RCt1jK{Z+(CLs;2%}+-cAL1cEZL&&L#U|I{Syq``?{0Na}i` zNJ;Thlt5vmvZV2hX@ z%=VZLi*DsYWvwlir(}@1Clet0xHX-p98K2lj>hTg8dOwt5H>HE#tH}uvVFs;u(T)w zMQXk2Z-rPduZ0m|zT}@o zI(k2~#j=ZfxO3JFj-MP&T6>(Z?tCA5`oCvKXP1!0)dd`fx{+GvU!g)T6LGJxhn%qt7*okd0nu`}v z-OWTNAB2)2E<-k}n#%rNjx94gi0xIt&%t{1jzv7#muQacJa?>JbB#$o7ehX|E27%Z zDR|o_3{UuPByx-eHA>;ZgjWaQ`oameH^dxsyKk|fMMczP=>{lISO|BwpQlgTE16GY z+}x{_pP2p~roxGWsAa7RQ`Txw@9&y0@#q7!?K#OR+zzIjkNzXUH{x(`l*_3G%fS;5 zA=o#(gLIsm4#V~0aNqA1`Ni_WQEhW@D~TX^{JX$!S{bU>L~&iEMp9(LoxiT9qdxaP zk>U15M)_T=2A7+b`z}wr)-1q!fhY8K>rT}9>JJ+paUSQuKp55wqUQ>-;Yo-!E$EAc z1-k^P|JWm9{5J_ch%F#J15)%{##%V|o14`ySO$0hjoHTPl#pbYbL*I4H5%I zl<9LIuMgKSHScbb+V7PBx8h+-iw%7B4PxKc2@$G$3amGFk#ntn5Er%r-orP#+V(bm zwlSBSmR^s-Co-Vd!wt^tU4;dlH$5Xeh%TPfOwOzrr1sn{YISW4mL9g{I%M036OAKv zIVo6V@5Mb!bL{*NE6FfbL+5X9=+W6}y0D}cm9mqupri%-XK`oTn?fMx9tk6P+_l}B z24~BU1Bviu^*^s5k-_nd=ODD133pQgF*CTIHUMwDS zr9XRysMumTllA*$;9UI%>Y%WLUot_&g=h2(VLW3C0;> ztmV`-sL^(lrZB5es%JS2`p|RcHyg)a+@)vSf70R^&iMBEc61S_ zBNlfp>Gz}jAlbG7e|*sy_0<4@{tnj8KzZ!ZOlWhyX1Pk3R|RF#}<~BLLc!YOa&_j);;+f8WUMkVxrDo;Dg_Q2uwv&dcV{cR-+6UhcH zvp!p0gmdsp;|{-5nDd`5HnmFQdeTVK4|;=uEDs5*;X|6n&=W$T)R3EbeX(+4FX^qJ zZ=Hpya6o-q@{8#g=hw@(4TMj}#btrGsM8hWO=QsWj~58@eWew~b3iTs1{twE31hdX zfKl0PDivQs+-0J%x!@p9@lC|URe@-AdjWJ_TL?o=yacOzxHt=w7@Ee{%B;C;hj?N8Swbgho!1eU8`3-l#SznxaCgW-macrEg3+ zKYU>ydFFtpbQS14m!w87TyTaw1#=62a^Z+MzReQ_qsAjx)^-Zdym5w5WkcA-oyRja zhCusP78J>MV)Jqv)qnY(>lGZO3vA|a^Ufn;`1T{iHXCHYWV$eH`jSLnj|Y?NFfNmvlTJUhoy2S_HyDf;YDGPH z_Hg!ee46%+x@51RPR$uqN^JogOX2e;6t;|LS|aQPeCO& z5FZ6@Br7U9A@X4+DK1w+hfnt0dvPUg$Pk70R5@Y_(PSHY5`2p(`OD>HMMv(DitDdv zcX=h*b^j1JNlMd(KppD)sENe>cEbzPUQzYR!{{e$NnZZP^$BFGA?e*#(&i@6);uE# z#g|>8(uSMx_l<{a_$f1(&3T`qJ>%L^lCxl2$^&+)&T=@p^B7K^=fRK{r|@G=1=qU* z^sqmVp605!;^r*+zz5jYdOnP9$)`dBT!-{>0iOO?fsS3qz)xmi^*SS%u+T)sXPm1f znTMSdCl5Mjis*$Oi@`c0p54RE<<7md0*}QfiI(wd>^2Xlp7S3<&Wtx?amW&kD%c4l zsoo5$*MtpP8jSJ9OVoDW9#fOPRysYt+%%vq2t?lr5I!*rP+U<<=boO1D>4f1q* z$zMbtJzI|*y6Mcg&S4xsl!=?trjU{K&FCauh$oipfcZVQ;BZwl`K=Pl1RCsxnkB2) zMFA(#cFRV%S`q^ zy{F^~SN^!rf-=rktl~p7$5y}_E(c=QQUMQpa_L}cK4qeu@m~<3({o#il(IR#J7z}i zm~ot}O_}gtCM6$V*pRIAABka1Gm0$9fX%bdL-c`TxYP9-oT#m#^1UYbPV6ANNu!0# zU24SbMC4$8)MH}6uA496BcnE*x4Bi;ih*u?mn{z+(REQJ0upM z<(1!rIrWuQ=2%$GpCjp;!PUg!usEK|&7zIfIUs(j5Qn%kX3({#q(Yy=Yy6X z^m4HxDZ0KDl1`anNoWup!#dCs;fJpD=fr48AICm4k<$T|xNbe?sNuMy?Zz1>{9z+) z={^9;>Y}jt?s8I9xC$Bta!m3VPgHTLrGB4AsEO=4E;FDH<5>|Hxwn_9p3+B&3v%e8 ztqD~N)_~0PD|GC!G5ub@3GSW`CQI##XrXv^%m+fM$!Z-(Mxh)g&aW=+iNkhoFS@i7l z7!)X6g%`JEFtOkKI0fQ4P_EX6{bLe%@sR`LX>A0w4L42|*qk9PY!>1j zgF!mpW76p1sB7d*U@97BWZ+}n4#rC=9%s;_xHS4DQ>1;IUKU6Mza9&wy0DKnFPDRi zi09PdWI6ljeUpjEyw|j(j>~XuR);6wa_Q`31vYsKLw9|T!IP59h~LCUh~eI2ubNCv zr{xHM=>~1!*(i!JO}^M0GfG~I4U=@kTqgDEB=hOWELbcO1`DEm;gs!9|&Dt-xe#(pzlG)a$SFZl)FC6#`H#-87At6M)YvOb)vUB0=bq58O<=oVS5|)MurkLhVRA~0^2b@ zGLI=J@x$+rJu!Ki7kGPEqRF(~5L=&!Wv+LKlY~8bT-rc}5iFmK=>iWa?Q1C0b|zvnj6a=n?@>zm`gqFi+0c(Lj_<22H# zlL|VRVTkPs^a_)P!Tcj=ob-;06s;j6XU~!oiXuSI2Efc0L#R4sEzS4ILB|JoiKY8- z^0U4O58YHp(amv~F*Sy4k9H!9S-_jAG4#5LAy_GdptfE%b#UeK!gnli&w`J{?$vX4 z%QPD}tQLs*n!C|vO$EKwm`MH}I)ba`IKi2uIoPr?i8v`g=k}|eWND}nxNsbe(Sp_J zbZ7%ilzKBMHwl^Tm-cNa08ibUchU#g-G6agtD*`ruU@{VVm7_(>K2e zy6k>qT))DKs<+kPcaxm|vG(5oSpMPvzXlSe6p<*>LeW63^LdyV6=kQqGBe63BO1uc zmK8$w&Pv(m^Dv4^X(-yew3JfOuFv`Y`~%&a5&Hy^`;*LHPbbk%WOrd=CxW_{eBM2E;vVO zb9=x~JBI7>B%yNdR7{sIVH0LWLp#?|yXzzbvqC51)YCdhXO%F4@~g=3)n?o^9t#oE z`EW<}eYSMl9d?W2Gh%Y3gQ)w5;}MnVxSG98-}!zcPHjHSfh|dN)p#~9r8k^O5OsxZ z!p+q1=Hvg-QRBn?xg_YdJ^J3-iX(9hdM5;;BsUi{_xVlc$|vJBOFtt0+kmX@(ZYJ} ztQzj5Pt4v`la;E4#4h?K)Eg>dSA-8U#iO*Xb7C*nJzPwEZC^sMmCJ|nk#=3!z(0Q6`5 zAu3CSKsnhF)i=E(3xnf{$G#L4)?ALI4IU`a>`Q;O@k83r%cQd`i1|~L$SxU(#LeEx zjPayJp!rz}7KtK(dlA4VnHqubVWq-YIgyW}o7O?(E0xsTnm6f%5OK$s)k+%xd znfdl(%u8*5e0lFOogR`vT=GUq*>kQxevRvy8E(QZNpC0=YKCOdA9UV?HHfT?pc$(# z0&A4bI#~PTMp;!v2`O&YumOYDFG7<~lE@CK;^LK`NcHnJddze(y*dU#4VSK)+3Bx4j54=viFDC8uK&ORy3%5zm5JG~MQo7j`{8Pm`; zip$~82uAxAoS)+PA(Wcj#oCMK5dm(#Xr`xx#(QM(l(HLs`7X)%8yYaXDF;K07U8uL zcRKe%8o8g~h*9qE=#QhVWOo0~cBw=u`Y#0A2K!pL?y@xoHfQ3Vqh;u8_nf&aaG1Sz z@+`NPn-6acPNVOO82U=R0IPCp=`CXijMQF%Di!(E+vGhn!1>*^2NKBrx!cKTrZkq> zoy414x!hUAMU)-la`UqR+oMk5wSo!eWl0x~E}qJ$8obAzpSff#;c?$UAFI#je< zNvh{h$LA|QQnk@fWX9i7+9Y!v15Tf&TlpGs>`D@r#-(Fr@*>Qc7KY!8BtgiJ^P+4N zhuJ=-c(3LEutUAaG1N4d#H`fCv<;C|Xl4Yfc|DT5#xSs+!Fd7mBv}Ouf7-F6n)Wp5 zGI~1{fC@ih?>0C=+-(c0*ON=zWOJFXyKWNeW+gBqsnU~GD`LZ!RC4B<7E97vwkh9q6kJQ9zi209S4RxogVpmKJ z(RgMC&#{a4Hd5*nnT}F@@x=2>CcR~;0=E0p$)@>E%(v}3P}+P32$M~4?5P4I3m!(} z>LOgI=Y(^gpJqOIso||~C7k#ED&ze<3#ob-I?Je#Q#(+@$8Rpi&hRA}r_wO$!wjr> zM(GY!F=*i22FKS5;pQMkjCojtM1L)O8Z#kMy_~Cc+ae4#+X|U8`EiwUIk%tDfG@d1 zM7ZY+^FZMy&0o6`k`A4xd$c5g$J+!W{ZHA9TYl93eE}}J9SoVFQz7NwRg$zR4wi3! z%l!Ns!Sy(Y$m=TtX#UZIZn?i4Jzz{0NST8=|;FtlqjJlImt4o0oV@8>JY!lF3RaeF6N zxqqWd{7NLdL!4?nSq%0M3mC@96n*RzG5MYwE=f}&Q!+DnPp^-%AwOI&dd+>Zv?~SH zPh9~KH+G_XwGcaot}s-^`PM!f!_o!sXrh`7adriajL-v{`8%j#^mLM*@4z^u^P`%F z3;7rNkZ>GZ@Xvck(gefdZCWpBkZvY^e+f)}w~PLlr;mcG!l|FXA4Uc)g|m(E^xJ)T z@Vy*CH2N1)rB^@65%Zsnm4O^=xuQao#oy5>Ht7U&_Mq?NV^rJvAN5et0;`xqP_BB6 z6>T%dqP?dWozqju!1w@!%wLNhtDS*QW{5Ybk00$?2B@R(Gct6W!7#mDB*dtTMos?3 zR!4B`@c;7AKUp0PELn~5X%^^js)z#iF67l?OI)DWPJa(p;SQ#Yr<59tlO~nov9&YF z@dY(BxZ43ged;7Be*cjUX(zlpFMv5`(@riq?qYWiOvkOSqu}%AD*8!x6`30wO7^df z#&5YwAP|n^s?1c*XEg;J%;uxUVn|{KXJ- zub1BbXpJs8ZM-K3V>w3m8Ito%5+?_pC7@}-?ah*Kw^ltF%$;!9gijDk@=|{BmZR?=^ZnoBYsyPvGEby{qlw^XzYd7zC=LHNErT*1~Y7OVO)MO zD1-`t+OG&?mHMga6HD0B<%cWO_ToFCN9?g`C#H=pK#c@1_OWRS^FnePakD*vBEfg* zA5~pk*Y8IMN~Lf>DG>**`;meXSM1c(Ba?dUk)yfdl4%*t&^A5HUbXc3SRMlT%P`wDJE&fVywmm-i+WlRI->3Z&e(b$Ifc7w=fZ1mLI{P z;Sem{n85j?d+6I|ebnNZAc~E+fS33?ru(uf&VS-f1gHO_o0iLChpQomh$zv!HKEir z$qe3gN0AGj-wAIOfp=Mt==H44@alsW6JQ{~w}W^IAnvTD#Pu$+kf6UO44blRdj z4fD)@($t|!=$Lwu*vJ1ON^?$9Yx#UyXZwQYcr?@fXIxn_-5OqqtOfyoW9FqpB&aRd zftZ7$@chL!I;arJIK}@Z2b*W1*6vTFRPh2a-Qf#yTFFEp~B(#*}aXzZZwm;0$;~a~5p9w2$ zeu;iDTn3XjWCKYmB&A|aB-_^xpBSH~YCmJZu;>?E{Xh^VoEMU7R?$2Si$!RYVF(Eq zgTa7YqU8@K78dkWNGi_tpR z;%!UjjvuAF(=35!zX&DNRiN{jof%ZY*5u5_Ii_SvH zOeNIwoq>+7reG`-4~=i**sF%C=>4XCV)r8qE%t^`i+XUO3-k}Vd|qI40iTeWT(ec6kjtH?5AkL%aKNuj$DaL?!G75f$0SPD?%xY z3MyzN3dh~#n1}6v4*D9*FzbvlL(68tM|GU*-!F6VD zUn+wS>W4wz+Z5I}yOB%Ul3;&(gv_j zXU9W&`b^NZ-HZbTQsCOW0H+*JCW&KQk9@a35MD0Re8rJy3mR})<$7}GmoI4lOJTT` z0=_$an5uC1uAHbZG?iR{2PZY@^Y5DY;-EU*>UvAPS$Sl9&Y;ZkM3NgcL1u`lQRpzo zfG2t+`D-G&rnS*D(GmzX_rsPitt2;vrA+k~QWME}KjqZuzp-sFd9DXc+jEPIhR){5 zQzyybV+OC))M1RH2fIK&7cZkfnp$b#tfGC)soWL#jyDgwxcl0-ohI0R#0KSe8^H0u zg^XB?}hA(a%ih&=TXMM0e z7HYZfZ=;((n4MQg(Y%|qOU4IE3~jMs$90tJOozgU_vrSe33z983DQWTf`e){P>J z@?m%MOA#dNY>e>bJi_BENQD9a)wn4<4Qw@+@zjj(kb*bKAgdBX+81P!hc83fU)==4 zK6lXCGoIk%m>x;WYEp%urzle(jAys-R zmCsZA9YFo94AIKu2I=hkLoe8#!FQ6y^wh&p@>r*bo7J5pDT%6Np4()u2RF)&9^|;G z&)Yd4&k8ElAO-_mU%_d3Htb7&#BPu&COsW3tlT#>xVdc|SS~nEFJ6tS6O&nSw)sgJ*8?EiZp$93+b!Rfc15&uzYh9*=`E3TABVpP)U^=M7#w<{PdHZsqzuAZJU-Fr`wBbK)j`1HxbNTRq zJ6q}Xa7`Z5tq2}-8;R_XdyrogL%gT3R7-I_WG#q=hjJ3MT?25Bj2N!b4dXImv6!Qv z2Tv8l$p4(*3MSja->>S__-QKsCwZJa&J?7l_qkCk`#oGwa20V6xI`K8qcBfk37GJU zQ|-<|#%il5j)!vWw-@VR*B3hs{?~>oL5U#V??#&+Zo(JFVVF0i63;!*!+`PSaACIq zZW~L$YnK!0J#KdTOYJ2lWQZ{csb%h3UL}D$n@Rrca4OE4aQh5~`Qsgf8gd7TmQgy5 zRT^WnV~2>J!fkfr&j{L}7mImz6{O+V2zfb20YU>UA+qy0yRzpTJ=y{|_uLaQPfQR! zPYzLyFY)+vr!M-&C*kSO%7jn!H{G<@k=86)4NI2IB&}&%xXipW{*w2E7hCpH?XEls zC_6)}7g{s&d!^}LlUX3T`w*ixu^AH{C8F-xzock&Jz7mv!`EC3VEFHn)qz=Lo7FVj zaPI`Ucs&A2Gy?IsZQCJ8D!8L-TPk&{8k*_ zsEkuZvLQO9oz&Z#f#-NVjj1xgu?%A}X(mgTn)TAB%7XZFvK4#sXDJ<=ycYL9`$D*U z2bC_C121K149Om(3x3%1q)fNrQQ-%KOi4p71_gV`SH|sU2Rl=0E_q;^3I6Wqs9r?~ zPWZ2*nsryn1G^M*Q{*Fw$xg!Qev@gzuOi-v7U@Aqlq$4OUxIwf`%q=pC%Q43GB1phsZp~GTJtvJt9SZ1^t_zw z6*SW$(!Ov)#1L!~H-gcZEP7^s1szV}dXg%;NXu9%x`@S+7k!F&ZtxN*babLMimo)J z)&RO25=ic=Af++e;1hR-6rKN*%yZ<BdC>$NF%+u?BQU>h1*8f4VQj4eQ{ZWX^+89`RFuI_ z!R>TS1#5O0L6~;sIC*n_7Wuecf#XeFrrXc(f!fC?9GHkC>z*%#Ru&->wYK{<8Z=S+L_ zVrd*M#d9%zWYw9sw9S4wmw}PQeYfoKj*KAh&>U`8uCffh`y=3x!Y=k(@Ijc`G(j5X z+d`v+1So8|$$oz}Natm)g7fL8Nn&s_%{SMhdo8WujfOA;+LVG&)@!P!W=Bn~ardO( zbMU8yIvDY)IQDNS-v6@{XPYwEeL4Y;zZOGdvK$ZYC(zmAhKnDBfZxrR2 z16v;MkY^2*P~c+%?Uv$i-VyFxI6`NgIzrA`hqk+k0}hU@#qCbL zw03Pek!?|>ehtdtQBee)4%}WV)QRK&EP?*zEpUIyBd`(`p?_!D;|+mrYE+v@49Q zJ)ScnuYQqej>&6YV~>{&mgBcI-gvETLA%#RA-MH40^$qx@kO5tp7@=FS{>2gl|9bO z7f`||Jxj_j>w@J{Ur6QV*)VraENg4tLW682c|m;^sOQFm%njA}d!80}e45R>t2>$8 zkd222y!F64qeRqt#Nhj}*X)|CKJrvi9+Zpvh$r7JGMa8r_O!1=`JN24&OVN&Vgkmk5zX>%&c}$OjA&%lj|y?aM4Il#4<0c^o^$!5RwJ$1nrjx!~7W z5^qRr4~jLPz~o0>x^ikimfA7_#2B zxxIdy8Xc6J=iXjM9APB*@P-fFL+=v4Inp3(R82#gf!kY)qQ~-Z)I0Nzn^UUO4Zj#LWYj@@ek*Tb z+)LtqHkuV6C+R26#TY+nF07l-#7~b_LV2nU=J_mvZQYY$G}IW@{dbh?=Jr$aySHQP zrAQ1g6UEB;w@KzBWisDkE6nt3r|z$|!2G~AqBXh`P9L7j6u&WtbCnvHZPG&jt2~Cw zKnV|)RMY0a1S9RlF}`3HE|cGZVw*0oap%QQ;`bWzz)B1EM7$-(EUwU#`vb|7RYOF! zOaWizbN%ty63n*ehv?4{j1SkJtIKO=wYpDXRJST_^ou0cokv;g8M$0HX$tzb_u!;T zOOX3j$J~17jUSuaXoHvzxuu_sk?&O?{~2K)_#5D#?5Q~Qb2Q$*X~gA_P4L?XdjJb3 zFxL}>r<#N8p12KYWn>SRWOu=>@-3t|rw+Q_P69rOadK^(pN?{SWo7#@dVRwk7T%wN z81B5_%ojwMJ0Hnl>=^Zq*TY*jjHT@5gmRpL1A(uJ zs)GY-cxML=Tvdb5@6)itP?x?q%Ethmjx{+TLOw`qfQ#xc2%2-WQ$VM z*_-i`at(D>ZX$zK5+J|+2qE`by6nRc$#K~L%T_nGU*!MLuA;Jtdh2hXA8Nm`k_RH_ z=@fU+Zs;ThuGM7bqD8RZdj~nVT@FsZm_`liFOexOz2wq#8S*lLfsg(XBtl$}y~Op7 zejiUnb+u|Dpr?foM7MxaXB^(W5KhJ7ro#N&jYO=1pDvJXYcCew$vL~-akW)D)wEcR z#~Ew9_~Qv{tzV5HALEI@*X@un*PpfSenNICjuPE1HXs`Mjp-`ci+{BfaospStncfB zpfiE6cxx;(!>gLR#~Guk@h=kF5(O?%TVZ-p9hp(J5{2X*JUv%;HGxF9a{hCT<4u_=5y& z&k*Fe+5sf=+jX)`)DF;f2H5yyf~fg%P%Y{r12+eVN@xLN^CO$_>8xe9(MfR2p@dB5 zm5?p!Hy9s9HIkZ9LHfqOH7^u$3328r=7kw z7;V?>NOTGAc(iLK%=>N8`CpfG=N+~6ofgIGI+L`Z^Y0Pmj=#>wIwspWb|~Ks)N))I z)%kGGvX0AP!=1m1A46}Loz|-TURrh4H(=`Q#T`onHn+FtuI&6FGoAd;_ur$~tMvc- z`jz;W{r~V^av%TV|Aqc?hxFO!%p<`iXcZYpwkFi${Taq!H-49j*Hyv}F<~up-N$4@ zmmaKdE2Vqh|0ZT*9J9DKoV7hMMt<51(M;7CntZvP?5bWzzVE!l%UZ-ap>J?!?co!c zUA6}|EAw~!%Pqte#1s$T`9U>Gwm_t>CV2jqhYx`OCBK~EoYOS&XGa^IB%4InH(p@# z)8)ZFV=`G;)kK4PBiM_+3qiFs4rjl)#9S>6#?@N2Y?0|H)L(Cdmk$O(@TY6c*P&8c zaVwe(@A5_MtYLC<_f?3ndcuf{9;HSR_i1JEdEB;z(jz60SReB>Ah04BAKO$RR|sP! z+#XYJzY#pRZW6jZ7VencyOW$a{u$1jeTC%vCtzYwimu#Y0}t!Z3ow`Uz{i(@(OY2-5va+;BPKgwiJ2j^ z*n6T%)hBv;HNkR`I7YViB)ncVNWQJOgEQwm!37U?5<%ZE{JSTb`4<_%_IvGcN#bKDsvL}NMS)p?gPRLoH&!?m4=NXPq&>QEs8^OF$j?*qJ zg!`k)QCFCOTMzAV#lt}ixqh0~<}HQWm2Kclo5=9}N5nsW5gt>FWC!3lxg4xW3}%lK z^<_>t|GY395f#u%E7!o;BV}CXZ3gtVej=8&t@vb10+u*>;}4&UD8eU=YKJCuc>R3M zlE&#c_G~@=4!w?=58jjPO#`IOSPpDcFJZ>mEhfKd51I979r|35L)C! z;yZ*<#cDNVX_ZiM=!aL~5?DTO6>Y7rMSJ!zcxue)cz)z9T2Exrt}iX*V&@u6cvwsO zzb2sWmLw?RypY@6|FS=7?l9(2=I|@9AGbeqqQiC9@vfjabbjtf-QUebrXq=^eHH}0 z>|glZyqQRButv+8INZO`pMGD+LiOnf5Wcq?V)h2Z0{?i}Y}J5GvBxm!3+Fz}Od+Q? z3=qvDLKt^Aj{JT)ox<}ZhDfZY=Gxtu5|c;Qs$YYVqtjsGj~uMskOkJ42<$3R!ae5q z*k2#Sfv;!+Jv?(rOqvSwt*wJ9ihZPZb}=9k84k1di^8Wv+o4@8nzg?1n;8x|1!;TI zuwd>75}cSpZW?@Hjk?3o;n^B2zitoR@`hY(_dGF7ON1KTH8fD^I@tfqq`4n_$w10~ z_-d6huJKf$W~=q!2ghX~{}!N_k2uXawgL=Bb2#>hFg{#bO|S6I;0)P6w03?f20pOF zL8DM|@!}SED?LvB`|ku*Fw{bqXugizy@zpy=FE;u^R}T^9Ov+QwgGMK=a6BJ5hQc| zC>B=45}|_?Oy@);ln#ZX^EpHGlS+r;`Y4=ef7o{E4fp-t_K5CP+5*=Ux^cJ0H}aD& zgB&o`3i6Y{aN(Zome~=-?aaKs{siixk9Vek>_en&{#5e+5wQoS%EnnCv zTg>XMF9Ox}DVXj32?M{b2T{eB`1$01Rw6u%3F^sZji!6yNRTI79V~;ev>5Oj5GEPp zb##^?!Jns{@Zg+G(5h#-9dkO*`|MGyyXQk9(zoJ*_%}4?LIJzaDxh8OTqUXXwT81* zQ(>2QA+{~r2a~k!(yU8U@Z+^+)cjsgu8$ON}i3gTdb`$5b8?pawJkEKs28rfM=0-XX zN>aDs?O)rWqA~%Cex1aO`C)i_cP8iUTZu+v67-n(E~@f)cO2a^sWVu$UY)LJ9goq+3h zAtJv21%07%0f$Xopg2vPoyx=z2di&nr%VUOaa6$f?WOE9Zs(pqT>?(riKMp{s^P~2 zL3BV}5pFu2!1FH!!3!+cAU8RU zrl~V15po)Oww2*^?tgWN`y3y(lo4~$02tdDhl>n0;N#v3e5#xPaaqIoIV2W@n+_t+ zFa%YW+Q0{44@eE@z!_IkaIVuPlzy@ohoTh0G24JWY+8r{T{~g!m^;Z@vmB0QJ3?{J zA;Kqb0+&5M(F3~1;AMTE^6iO)1F~V{m(t`8wVqLu{)1y=dOgRDXQp#A*eLeGCxl-C ziLMa|d2w`P8r_jCbTe(RtiI%DnpRi0F|Zy1&*T!**c zC+M5P_l%ChQRvnQg5+aOK#a=a_x0!0nqzg3?pOk4aYr%U_bQc=0q7nmfaatMaI-?9 zeP=c#ZC;KIT&^K$UJuhW%N;)qb(2kD+OT7&mRPD;P$#7T3+@%* zz^AENHZKi8;j<0-tgBCrN{_K4uM0Weaz5$=b8d!p%TY@+0k(haVE#1DB!_0jKn8y? zI&Re9-k&CPk(P#oza>HE-)yM%D5JY_-qGbuEo#=*V59pvc72{0v+(0p`u@RN^3d89 z2il#e$R-8&Iw_JB*OI_4_XJS-ewStz?}or|O%8hWEL6K9Shjhi6;b`pHo7sE;0eL(ST5&2xQ2<6Hu zFum0Zg_<(C`=%4Qrk6n)_1mz~_5yBnSqwjuKQo5QK2vwY&73Q1KVw|aIgvJ7q_#eI)o-K}TbL_l? zE=|_($kGQNpDm;j$?ut*CpO@y+Sl&Dv5B3vl<>$uRdi@gLEQ%|HqLTp8YX`u_7D0X zZpvAxnCK?A+NI#~zHHL>pA;meq@Y{#3%WPC0@pkGg5T+-^xw1}bdsPq6de^KdLxan z>tQ2wotp$HSM)(K`Y5>FI>k0U+6^bJb>YrbGYI~>AJxAe#I2<+oM%oHLd3U&SXLR1 z9bOCHplMaSpT`H~&j zo^y7GHiY{z#1QwhubqwLwIf%eXDVZ#3ZbP;Y#|guaS;WW!zVOosMg>Xc_K{^&kD<>V9F?Aw>&QGVaqMiB(`Oy%{S~U5S-{ z5?OI}w$`4Rb8vLFIAl&5q0>F@(fM~5lc{Q4zc-TG|M}KIy>KKwW)Ta5AyXKGKz;oE zy$%-H*h2A*+0d38Ng?|*=D*M;wmDrW<*d&=qbM?d`6sBciWU01u15neXF5N4CeE{3 z3YI>TKqg5GOFo~$jzb2pF+H5ICl^W7dl|eTCqrNRJZ$q_(}{d7JMp$*HSQ14!k!~Y zT;sW2`>YmxY;8|e<6Tg}cqXQBxhB6q9i)caqwR4Nf-(&|IHAS4);#-lr~%-_#(VCzp}^D`Swa zyA9M&WI%2GI^0(=Oj^4iL+!QaVAx8~=Vumdl6y>+x|zU%`x-FwnJV3V^Dr!fHoDX* zho*0G#|z9Kni45Z%M}K({8R~f^=mqQNz8!Z;umB|UKbuz4M9IHJ96K2996ufU?p8n z{yV4vS0|)8@`G~e-^2m#3~mkUTa`g`4(BbNa{^nhrjZRVJ`iT1Id;mmd7qJ(cxc+)G7E|XjS74+wl59HFbOx}azA)vm+8x4m&>Dee1 z7=O7CJly4AL;5vrJ*ZATgeak1tD+97b6+FK%B?WM^vd5j<|;UhfscY>-f8^Bm+h1RC?*-+(`3DV03K~GN? z`Z{#jJyIu7YhW|RiyS6)>mQNs%Ss4uOYvx@BylZB(oA0^2j8EaqIwz~#3lR@-KUuY zE3bx=L9;=KY)XW0w})u_m2;HkWuotwI#PMM71}fE!PzgH7iG2&J>^|_-%tOhSGdmE zT%$M`6OMxJi0vRzlm_*Ch&OZgdv9=#M#X7X-Ef@VDaotbiBb9y^by7de4(Es~d@GqcR2Ys^1z|4MwuI{l z1e+HlpBQ&OtD1x#O$0Hdauzf-mZNQv9p>>O=zgCV@_hI%N*9jf=k}e@u2@e)(}o$Z zXYp-b_cF2fS0(R@XDl|F?j;f#!RTjJN3H^JnWXGVbJd(19?GX<{vVR$%O@>mXFuMQmpF z;&Zh1R zw+nQBtOir=`xok11W(>Rp+43LaNx#Wa`&7#xL)`|_kTTxZ-hOt>Wnw+2s}uIYcJs7 zun6SI-o#Z|sgTu^PrmIkgzX!fu_NUY?O8aRJ-Cift0zzlua?F^z?>m4Q2q)rN$$`x z?GX7_q6oJ35%gy1752Z>Qq1~Y3!gL2!`Y>u+4h1qXxgg>t_w8L;`$1#=}n{WR+q8+ z*80$ji`?wSVS;@4tkN-!&3drtEWgup>I3JQJ{lSL29Fvs=+9ot<_ zp=b@HRUSu+k6HAl+a2m5!!cYflZkJA1AfWPgH;3ZXuD)1D%R!D`C32PHB7iOdF@3q zTk!zCr1iv9vJ?(*nV_6St$6CSGaXnrNIJtsX;yd}d2#0!eG=MDNqq%)yyZbrh&t9r zJL1>)$@G}a0Y)+?l}PbTf$BSPC}-tQ!nvHWWUsxAf#qm-Kna7yX9-mbR z3)iQ^c7bp7S@9#}-_AKYWtHh^K?&$trcQOnW)R1BBSd7gGm2Y1qGE+rM8>-wgL#S6 z#J`wXTA7V`%RAvyYc}bR??d@DsxZBon~^-=$G)*?n8C**>3-Aj$E+~;WT8dRoLY%* zEWe`Wn<(7-Q?32O#fK7BWt%Z11%fYkV&uJATPBHFHYxtvwHPdr*DTs zFQdSxIhDO{kV3l~3rXMaKR9=92nNXOP5>Sr%Q#r=Y>b z867WLCv`Z@G2>Vs((Lout*HEIe|zBlYhWai4f@0OL`U&DMs4JW5&t?oGg6EeEZ5CB zQVI)mAJZephsf1T8|;0Ni?#vj7)Do$lW=lE1=j>B;j)x8P%F$Q`_45&wRH+QI%nbC_8IN1w|*1F2{nkfafO{rmckW& z4>+P7htodK!KDdLaP;v_blRoLtjOTu)Jg}S`!+$_3vXg1*$9g zHvJ5zC07=~;mb#G(34}g8g}7@@dK!CF^I?Q&N720dbnDl63e=lGq$_3@W-?o{8V&~ ze()Hkv3s787V&pv^j0JMzRTqTZe@`VBeppC6xS(Qup1Ni=HiNJw`pUZ6)s#T35%Sa zVamw^$l5HT=09ejTS+9`6AmSs#fV=-2bnXPR=B6a1RvMNfZUBm^qs2`Zs=MG^~OS^ z&f_03e{aO~gAe1bId-VOTMdP9G5z@79!v_>qKWZ)a!cp{xiq*I+D#?MO=IqUv^|q8 z{*u_PF5FGj_&cys(gTujoS}W1=kQq2Yuv3a*%7W;!SQK3a9O$&UUsWRT0f;jw?qP$ zddA_S4N4GjGMQsel)=WB*F;u*0XptqhZm#kpizYoqswEEWA*^9PHsZ0nuYjAnq&R= z9;NZGqVbmIB(|~SB!;-pgZnp&G1^N8=6=a+6HHtUKSvHQ!-wvYx0!-y^ePMtIX1(~ zn1itR@HHx+7|G?Pc2Yh0W^8=u2YXIlqJxz^h9kP_p)Cd)B>=w5wnzthBL#l5A%%coT#I#jzk=FNL%I?m>R8 z^H>>{1WL`SFncrwAMrn@^6YpuR;f#{&~QDBL`49B1~fAPs8=TPIz-S1vD!E(4aFP*pT<)WUl`Y z^1Gbt3l*2Q{a47%NXDbssrRzrp9<2}$--KTEGi)~Km_+%^3d0jrTfIrL#|>s$zS({ z+=`2UZGRHM>d+3lIINL8uBpYC1sr$aZ8>iKc%A(=;mL$*2!iz+E+@3UlJ@mR!P3L# z-26`n17Eqo<~t`yYhMq!Vd;)*{=Omq8YAh{4;+K^Pc&M8K1-sUOUT%6S?HEXWYYAx z_a!O`o{Gr8Ol?0{@F#}sI%|xF>juDo(FlCsqRCVc5wPzpgQ}fZVSYv+_}|ONl-fk_ zx)+HJ-0p1Vs5!nDx8-I!RX9(&gER|xVMQiiN8qn3%!FbHF1_u?^;2fjruCWhuXP@V z^uEM1%Q<%L&mMey`4!zY?=dx!KZznnhuP3MC-H5>amcRI!r?|6c5Zn*_MP7a-H*I+ zZmk~V9X3MK9&w`flaN>oGg78pN{iJR@#eNZHuxV8u3E)X!!UiA()x}DpDD-Iyv5x7 zH3?5Ho**f2G$2tyhA6u)g`yY5_;ctA?syr2A$MAFRDL7w(366p6Opk0;#6pzHy6A_ zi|I$bX7WHm1TMTgPa>@rf~Cg}_~)@2o*)mDGz3`P3nlR5%n8g9szk|ZIWqU#Yx>o@ z9S>fz08wpc$e5#sQP13=Dn1{Ygl*xUt1t92h@Zc4zhNtC*#?`L9dQlPXj%6kQ7Uc5 zpQg{*T-hkH_0M_Ywr3EHm7mZ_meOEfXNm<}r&wLh9G<6&LQBvBTt8SwHVJORH0Lm` zS7d>P$ETss(^8PkN(09^>)6!ntyq_00D*?L=$glZ7%9u6`$n?CLoEt*XQ#lOMKN^r zz8!jI&8GHe*OH?4ZSaae0oO{8wU1k!U@Z@I(_G0Xq&z2*;Pd+(P~RUXd-m z+;h#_6JW_@fiAXg#2W)VE-W5L9|=td*J)Ku&5US{XTs&=b+n06q8Zc_i9z~lW4cel z3%%YAvZ5Cw*tTG8Dx}m-WbLCt_yU7h&aVNZ0uR!*wg?nhh6JBo&^~)> zI*J&aqD)u{j0W}4>9>n9N;C%F*6krJC329|9!~##Hv@-kH}Jf30I5zjQE@9_dsHMK zF@*DJ&zp)l`<>XdrYx|VxgGn0*1)O}Pt;C&O?Ot#MD4%LH2bwWOz&61_&Pm^O_n2W z)3XR)yEv|Nu5EL*n?d|N%aD_cLbA6q^gFL-qzq;<9}a$?FCVp1H%S?Cm#%_SBkNG= zNjb<}HlbEM_F$Y=O^memLZf{lDlQcvmp}Iae`OLmP?~@%j5pJ_JJ!O26>@l4P7W>& zy@CMu&16~lB4`LWO$$s@G1%@DwmF33QYi`a%=}DV1;o%{{KMN{=K`_zO=SP36XcV{ zGkh{ujG3u|z{6HDu9i&Mqn03XGy?iBAAx}a8TfqS48$G{ppNr*V)fpc^zY{-nCPL3 zmVT~O?*FiMCQdc~(f_YhT1gAqDJ_zuw7y@bT_RCRX%`YLlC^|S3vJq^l&EM=p_01q z*GUngRFowuJBjSF^Lu~)f!{LoGjnH*X_|Z0eckgq=XoBF9oGqyk%n)+t1~xS=0VKL z9{90H5jSvkRA)*DMEqAwJV`lR|E!7ImHTk7(i!afuaRzWyU6GUpNBVbnW!nf5)Zv5 zP{8fI-a6Y%s^;t`Vn?pfYus*X^;cwV?w!KOo@MZ&U^?7;_lJt^oI)#qTX76de+a1G zL+7b}#;d2#lQnSyxNCMdqjyJ$w!YzS-OB4WtBNiGba+Aa6kZZPujiz=UlabOse;If zU~-;s56%i3VrT3=$$mK+$JSRE;M-dwV4;=_Hd_`mzhicRYV~gT7+6eve>lU(1%7aY zdp!bP++C#pB)qA~0}o+)gr0Uhube=Wzs!Kw+YiIDQfn&tU_X3MnGM&gLfPlM7Wz@B z028_^N!fdD#=r0Z&3GF^4)#T2MdNyMZnYB%ZPlVB3Rxg+9|6n6p}+J}J(=W*Wi6mXwF`lC+B;)>2re66?+Q&N5C zH>iZPEkz*2?SR~wtp0kk@%P7^IGSi!MJsNSW7kK0nv^Xm@SDK`LlF0rt>Y9*J$t-#B{XW)q}51Uxd z5p$-K$|WQEuD8S=>gH(dR!JwjAEySA?W|?)Dm*PxjnTblP;?Rx<%2Y!;Hn4=ZwW!g zukN5wmIU*-b0E)65G9pHnY;Lxs+8BVpE(Apy|Wv%w^x$Df_bn$wwGPa)We@kocHCP zG+pD7K^H}3W4CxU{#H4Tr+EhW=Q%e!S1H3h>1;@FbulkLS&D<@Nw8q#I^M1iqi1S9 zkhB;3$WAgHC0E}^&CQpl@~*+<_vbi-HL1-G2i z=;`7~7J9!u=#*eJG<*~XX&t^0Qp&lY+|o$UG=f1VtB8-DFnsAcg+HxK;I7dl_EJGXPZwTZMmOmiqPBw$7XSeA@^o7bpJAjZs885*7pG&^MB83s^+4&N(=nFG8t|S?q+)hzCyq*F1vll z5=G=4p}owNUb&HqH%{%qe#5h9qu_?qF605>7lykv{SX;nhIQI6px0akgolpcuFjui z)zqh?Z^llX6+1?kRIp$)vx=nW%_2QTMc~_DO$|?_lhnCfmRO71GYM}ao7JL0H>Hh^4Q(-h>B8}_%j2PKrU@%I%+0Wm zl)^l39f;;Q73F8nvP+WYL$5uT$(hE$V>fQ+Wx*CWv^EZ!rI(YsZEkSBs2qVm7Ka~} z5Wan8@VG3Kx;+Vm7pLvQ z@Y@`Qcen!$9RSjl#u;s!8|2)BF{&xuj1nQw2@$Qq*z9BYK{kdC>^%xgo=J0Gn@x7_ z+mCV4#q_9$F)98eLM0pR|2lw3^Lgt=Q; zB#Y1BM?OOm+|_`xDVJ%^^4SpPQ$io^ZiU*(%^+BA)6%wA66>t0VOPQ$unF@6%gOSv z!+$>*RO~=o_ewnBsfTe3E?~++aiAl+p%HUobR5Z9&Joe2#<^qutHFZp%^0mEfoCTj z!`Yfo7}ttg&I87|iSHah+4vG_*=~+UOC}Qy=PHu%Sd90{hXJb?c?e3aqE5nJm<@kU zut^Elpr5vs+x@yqRSLza#&Mz61ALvxpSuAqRqw;cuku7YGan}nbU@zTIuP=mjv2d3 zpfsZml2&`LtMmBqgnI_0#C#{7j^|;*DFp(w(;+Oln0?S#3L4^1s8K1fD#Lm>=bAK$ zyPwH)Ivj$eeM;E2B>>;9zQjm$Ce!kjrF3Xj0z8x)A{UpH!-oJW6kUDaX@lz4W_uCwX|M7~gKz!9KG?9EUvt)&3352X^ihm1v-wA)N;4o}{X*z`a+L60nhU35 zy@+dcA({5Lh-SIyplyl^?C2^*-An#VwD%0?lDNm7ok)hcN-*KWSz)8x@eUk(LKWP`B(p>ON!NDW?d8w`AlK^r+JtZxqxE_&Ih}zoVUc% zA5Q6YgQ=D`dPSc{?LQ1JV2cb`T6Qx_@;>4wb+OjV% z#`8e?bq8#C*n}mgtmsjrKzJk~1wZD`0@X|b3;vJmVfN)vd}(Y;`Pfn_KYs>XbC}Y) zq2~`ahDt&4k|`i{=O*4;+eD)DCO6Zz<09^TK*5$DOHTw_RBS&#ouK)guA;s5}sh-p7OV;yP-TIY@I8h2b7% z;dk!+n7>C09@7M}R?Qvmb{jyRVG_E&$f3+GMJgYu4L_oEU`F>t_#V%|oh`1U=t(s1 zzaOpm&M*PqSE<3KE8SQ&34pfp!8v7L*fxF~x|STowW-?p>VX|~;_@`NNe5*7%qDX+ zIrj6e8Tcx{jM=87iw|XrK3RmPy}gZj>~nzd<=1g% z%U{^JLfXRAbU!qX6+w1xG8ANZgWidUP@;qEKA##)Fx^jPa{TwZrCOkCUx&iA8sNBm zJ^N$47e}T8llp5aJ@4p>H|qwdNJJS<7jMP<&x0g#l|buCzF17+iQ=#92biiNi2{i( z_@zY-<(MHVb1fErO7xSJ6TR>)fny}RyZ{a>v!HWNI&76GL;mFzU?pk|B6k;ITACUO zu-}f8q)l;O!+o&Z;)s^x4X{*@bDAY)W81_|lwKqcO6Et=i<{R4L|wx&?yk0me-pmw z6edSS(ou+Q!LC9Nwo6R{9QVJX{edBH`JvkAM0IM#8X%fX@9*%1jDNl05E)8TKc&F)F@U@ag@k|N4meJ{pvOn-@rjl!OzJ1_)~6L$ zU$zG?kukDs<`%47A&HX@=uyMn>mZu@T=$RdW`ynHpgg;mG0bzrE4qVbVcfhc&HDrq zh(1E|ov%W1!xrKnmIWj0ByjiR5_n#?2lbeh;PvSSXcaFYTA#J(6q{J8px}%{uOeXz zp91WQdQJR?^l(Uk!R2vg+-$f3$D=zzUS^6#wZ~b|9&v>|@?Bte#~<`6*1`1$s?>Uu zIf!0cK(qj6T!}sxLu-oV)$UOQ&_j<-b>+-L(I!6|}k0oJhUK8ofQpD0Q{?-r8L)712~Lakjo<(M7)nuI>| zgV^t#AUQS#vSTWt<(e)i)Nl;Ks86KNd4h)OoWl#7b5Mo5cb)mD&Fo%Oi^o#L;p;0v z!Nw*Wkms0^Z7CefdMX?mDI@BK%wYHL2uM4$2#d@%p}vC|I9P6nbzvo-P%%N&!=A9~ zxEX(!;~V0A^D)g`avZdm&LEzjl0j|DIuH`9rVV407{O9xHIyUDC7QL>cD#Wkm#;r7i*FkL7Oa<#|F?M@9;W41y(*@tDW*)YXh z6Y8}IJgUD$-+u4I(96yE%%dM;om6oaiHAdZMj-axjBE}+$K^@^&dPRx-0k()u)7BT z&DW;JKLW6>Rsd!;Oo#j%av-e3`DD^#cw-u0cpLdc;J*zAv2pq|7%TB4!x81=RKg@Q9o3i@w>7tDaxrITmquw_{4?@eM^d%V93E z_Q_Z@a-1jsJ`Oq1I%B-Tl3Z2Hfw@((yf=4CXqE623|Ogy`SFH0<3SjPYMdvF44TN8 z;~#dqw*wSE4<_&0oiXBPEGaRJ11+YH&MZ#uXw1(|t!h{VzG)~I40@nvO7%P!gaDM0%`E6Hjekj<84E_8;gVt_^j^xjfQ}4;u26Qx`{RBTBjZ`&bm3dB?`57^`Wku59ufFBGm;&5ac zm-i0Gg!BgDC};}d(p+DLFCD&pRD)^_3ix5w1Q3id(sEWXkc$ZJ(P}+GR_0IvT5$$6?yP})v)e7f;|IaNT@!2MHIaG8NI z&Z@gl-rZV;rc<7S1o!!*7jP6V)C7UFSS88VzCfzVjB%xxEp{`ykXT;L=37-j&1eJs zytf$w_CF!=8HZun6gkjLDn{PLZhRlN7arQ!V~p)*R9NVZ3$lyQ&#aZQaa#1Zdq0UC zJVZqQiqay75=N@}0hESLu)&`MU=iO};v^M9!iwEc@1F;ZJTF2R8NroXR^!4IH&DWo z%M$;dOa+2xqd>VL)@@C~Z-VVieLx`Yd42?gEQT4e#fPw}X(J<;b`T8P#h8m9?-S{p zDfoS29&4JpgA}i`$0;@Sc;sX;)VD0bsh6&!+yIxsj?JJ0lIiSxCo|)w?CY@HbSlJj zpMoM=?#}k*EljTzw2;v-#fa1A=$_ZTu;b4JF%LdN=Hw4h{tvb2&Hlrv=ruSxZ;+|a zSpw7#+2A>BrQsq;dGCrUrE#QlvjdqJ6vZ3XELJBy;Fzhy^vm-q zI()JcZ!4|D)xTqa@4`D8JasL8Dos!*bUYNj5r<^2;NCm$NR7-8s<_-|{WKqA#Wy`ncrYC`e*3|XY#~_M7Y~O;E@0Aq zO9)bG#bxQuxZ`IQ1o_2a_B#VE>&8b-_RhkeQ;X1MR9ZWUy)~1|j^tdRXHzcmCXaIY`jSmBDNK%3RK;NJbpF;O)<3AJsyhC8dI>k# zW}>gt0Aru20Blegt6dg{{To72%=HBw(hh}^JNuzUcqy)!rwWm8-qK3Xix^g0jPm9x zs8er``-WHG){uwH`rb&83u$A$?H0hXvlVzXc>?u64&d#RH?WM4hl++NMD6h^SY2w0 zR=@hmYJqcfXs0O(Hsqn0vj^S7ame?*`pnF?vBN(-TC7TaF5-SSNR}N&`M_Zs(wNCe z9XyJ%nT6n?oJTr>(@^@GB-M5m#N`54uvVLg|1>s0^E*3K`RPV&PyB}#so&`mYk9o+ zcO{Gk)#G$k6O47A#r%7pjbc$nxXC^jYggXI?7;+jA;6Q^-;IYy)r;__>KGLAPq2I+ z0)g@UOQR%5iAd25kXv4eQ5V|jtH$MU;*lMs{b)e#T4&UKsfvr0m!rvO5&CPMz*m=? zn4#tlD5(8GABXb5WZ`*ucWZ=R=${GAUK_|Or+-ZHr2_0SmnE7K-sCQGg$Td1h5Cv> zP>!2HLhEZ#L}ed7NUa8Ci)xe=t|mc-!{|EdjH=#;Vdj(daCeI%Y1Q9|-4iCLu+1H+Y`zk? z9rmo6^JW-1P)ncn@L*qkCFF%{g}Yo}|QcKW(*KPB!Gx}H&<^|lEuL#L< zoy@(rZ6GsH0QW@OK>Wx&^fyceS&oA$>T-})KMvyDdV;v%dM=cFeoJ>w6Q*k0-;?{L zT#mY94vf4FfuPVG^i1P(T+%%YxAiWk^$%v!=Rv~cX?ZoYO;~}VsffjfN!UH24^TzBfxoO{nIs*65mKTCoOIdR7yEsm68KVw%S@7XT z6ntAYMtQ1&_;pGJJvjF`4lB(}@yp`x++MJ@yZ5hsE zI-4w&5W?gO7ub%;@gUlG6zX%%Liw=?@^b;llKQPhckJR()l~`{=dOo1tep*>(UKUi zT1wt@U&V@+t2p-(i?62ULdKsvBrsT?Ip5HSB3Z|<$7DYKjnTpM(3>cg8H~RY&(O<` z{hZJHEj^rFj)6h`m?M&aLj$D{cz!oDlq=B3P5}_TyN&3|euJ!4!?b<9H7dAugR_)u~-{OvEJEx)J2 zXw(mm+OrdtFQ&lLxhqicyCL5A@Qj4JJA>Ey?Womp28~mU>FobX;KijlxN!O{t$$n9 zGT0VJrd$+f+Eb39VCV#$R;hzkT4_Y;x-c=y-)PqBmqeztP;?3FL(fS~C^fPeFCM!^ zXVw>>wSO8K8r&q8x||`t=`m(?egqG*>Eu&=1qg<=!TMF^@L13sPPX&le%mxuyO2yH zyDo8#;Kk^0NdbTCKZ@1E_1OM&CAr1r?u>N4n@1*&;%lYt=zVb-?keuU_c0v%bCVxw zmCT{BM=oG2uN`+?xj=UqX~Ar}KKd>p3Pw4`TFS#`sI|tG$gY>6BiV`A@u(17`6}?k z>|6AmyD69BlWhIjvk5l5+l^;uC1AF24J-Ae2@SsQg5-50gy{k(nJ_|+>iO`GJ&Qj- z_(4RS3OuyuYqcDY!)phoLCUElboMe~4s=a?l+U{jTl4=94%lt%SG#0|xicNzrxv5hY8_h9e4Uj^f6iW97=$zUcLD!G zQ+W1z5+*3NV*-s#=d(=U<(kvg3-1x#OM2WkOwZ)bMbKG>>15qv=Bk#pw zI2P0S?J?$mw>jgN%mYw5#8y25BR)=S;Nl$1COJU1Oq zp1(&_0xC#VLKMCbIZRGAM`QoGD)d{Wf=z1=lDkjrDEaC@?A{mB1!95lEy4+IR*#b6 zIi_5lz8H6&IzpcxIYvwb;~@FCe5-M+2~~eNgV`n=k5MAOc^6Ei;JV;BMCP&LYKKr@*g#6;!?{!A{177em|F0kbj~2tvAIT^CLnQsFW_ z1vEz63{U<#kD4bgP?eQ+u>3|W%#F>(-&TK#$&pT&A$^s2Eu4nUTs}rWFB*?jWs&eV z73i`1B>G>Bf!eQ)=9^w{^Zl>$*a-ENr2f$cd@WUqN6I%*1y+{cZ#jsPqx*>CSQFin zPa%874p?JeLEV;>;(ILye=aa%H47y1c4{HE7Y|b5=RBNbxD|F9*mEulCEWZ}5XUu& zNKt1NIGZnmD<|{GVT}-+Bi09=JqqZXZ2(atD?r@!1c;rIglGo=5MO;5oV%Jp;!qa6 zZSurl8%3#ZP$1iDK1}KpsxYxu0Jm{|;HI$vlu66Mc%B=oo%#Zyul~Ywza3zv-U$^6 z3y7#p7c3u~0*Z&+}`^I!u z;Mp_sXu&4zy*vj~n-5}n?E$u7t2tEuID(C%X3+MXt0nqW;Qb^y?0dHplRc+{%eF1h z92kca`?ClgKTh~1u0UCJ4T!FHhJc+Zc$7aMo*ngOZO)cpkf{rJeNe{ai}7ggI~5~5 zcM_k@C0KvG0NeE&QL9Q7l&7x8;~c9h?Pd*Le{l;tkNxF*7#nf%ng!_Q_Xb|jF?wep z0rsAIL4E!)xPNIotRJf)eJ$6?^5wluCAS+ee$bH^ongRXh+`QnT8@*i<%9CkG|a7^ z2XnZY-HxXBG=CmHE)n4PMTeea?{AI^ymBp`e_u!KmEvJXd;sS8ZieF2G$@W%0X@5D z;G0oLi&f6TXI~8nQoT;SW79BYB%U;KGmhi+`%sv=!1w*(ROoLh^Yq{zoV;=`z9gdX zPW&D-5Foh;H?Z-te2id^xi{$UEv{eqz4X`NHe{vpFC1 zG8pT1gmo)z(cAiu`J53|_?20O-cvS!{8|Ne;Cw5!Q_#iheVfUv*DUq6u)$5!YRJ{q z0c3mOQqZhVqH>91Eh!qF5dU-v@L6ipo$Iy0QQ#0fc-M*%qm5YT*GZHSvzE zxaJg?y-|yENbO(_J&AzrHooj3TSF|~m3o&iZ)ddd7;ad`b$5VwviLCTK@!2fRzUj0uA5*~NZ1yjxNyKgsnv-t_@%ZV0c`qg4R`+~!>jM2aO%rxdiY`i zsoxNZUw#CVmkNJr&BkSTVq`lW+8u{Q9Iv}6xDLnSx-eJm92L}8Kq=YdSZ6*D3ObT8 z(T^WrP2t!G3Y+1<;}Dn>Yz$uy6=S4K34|-y;*Zcqa#PNce5~+5>R(KQvMX`Xh1pQ; zB1<$TB{KiRANuVx{Ry7~2cO~||G)TCruzSP{G~a|rd#GGys{|!9$=|*>4(L44;#xr zez}$(?@)^XB>}6L3kxmt65A{XLVYYJH>q3xJLGM-e#Jctw-Oo4gJUx-b%iHc+SkQd zs_hf7TxPS&vgBO8WqHg2%et0d7R%!vS-SXXSSB#}mK~}qETxRzS@hafSY-d_U^y@N zlZA{0Yw6<+4eZ?iUS_%RzT5yjvvS|(Oq+NaPMXze5jS#ay-Hm z->n(qavl=!@1HXi@ujmbxVq}YdPR7&O@aOD+eii~rRaY#S4q2gJMib!QL&XO^ICjv`2f5ZAT%2z1@6180J`&92f8+lQ%#;^Kz-z=kJ8tdSLRE(@fcU zHx!5xg>bRsSSjX(O@{9D(iLY|QjSDwt)O}O?|9Tyh@qLYT`_*02cwhCIn*DXWx3K%J^T_v! zZ*;6&hPOfCKQ5bpjR-icWRv5Dsc-8!I$GyMk6JIl$mYf9zjd7XT!Q4atP|yJR%b2^ zpCm_SX5p(gWpcZ*2!&RDK<)h&V@S}10yL29Av;TT!ZeLYKSpw zmg4X6Wh8#k2q*LM$;;qtgi6L@?7fX-%VRa%V_^!%_9~%U&|>sz@a4{QC0OwEH%T1x zgf~rAv0<#JClC<6OU^?ohFl66-e_%R)|rAr4te~Y>fgO z3tfbFWP~76y@xDJqQu2}6};=+irWkv@Z_vAdPqYA#A@vE&sk&mTWy0jNh!GY^+Phy z{*7e5X=Fc+s^Z}0<)n(M0qT5p7{dcXoO{6&TI1C+rEk*5&0T4B_;POiAam~+M_@^Py>ev{8ZlMTvs5hEFDzpRRsylQ?niMRu zlR?Ld>1ImIIs68*?n~_G_S}9uL>1xFRx*hBfLP;rGaRTs$rkf zDYz)CVYYt3d@@ho1&LKSnnfHlUxoR;Z~>?fe4!t?ovo!7ktqK9IT??i1EB(xWDid!o|`r@ zZIW4_t$vf1IFymp&9;#1m4apRe`wp=TeL82J?_mk=Xf!#v|!s|M&d~+otnEJ-)Jqx zgsTzk*=JHH>#B#@--L*6>nymYS47OxM7UnCGsfT0r`L15aFOX_^TU@?8N1BAg!JyDncXIIO=Lcsl@vov=56CL#@v4O4STq;cmX(%)X|%&u{`zf8K4?(iSL(k z*@AyDa4t|69_)1@pA=^@GdrZhPj!9X-Bo1y1Te zMOTEU{5MJ#oq10M{w1T4hBp@5m63q;2hd-b>x-U# zPBggt?z+QMuyc+$eb8%x{q5QyIPVD*4ummyuB-NOiM8?#nLyZ0wkhnfTr2b8ZbM?l|c`mb5=r9-7 zJkcgIzZl`#SwNmSkF#G)!=Np(f%ZM*@>+FYXrA~j3dZ)x`?Za1l#DaGQkX*JjuEi* zenYlA+6UgTF`OUjCp-Iu4Ap-pj=n~(8Gk+(qPD(-9=K)?jCc}0%bklG7YQSAo`;_% zeI+Z?Trn=?EHzm*4XlJun=Ru%&9+F-X5)`ElV#uDu|aDxn8dLez^l9w!?0;lbWl~oN-i< z505cEKYU=B_9%Taa~Te#`q3*~hG}s($9%|AVJn{G;=A43=!>mO>2OnznQG5tws1m- zSjt=`Rtq`4e0U)pes!2mGv9&c+P!3a9+$0Mp8#1M$DmWShV0$H1_pO$L8H9}j4Df_ zlcWy%p1H+4a%+f6e~$%=i`;uVBp!YQ34TxYL*|(^C|@_k-~bDrVqh}( z-Qz1Q=>la&YqDnUdKtACq&08J>@!k4#ZNxV!6?G7W^#xH1 z+#uoNBVx011+TO)m8px0G^GI@q$ogS)S7h2?#Nbm*xv>cze!)vM$f1>GW=abOqPjm_mv z(cVdN7Fj?=MhAO`V;;BPNye>CKDhPWUi|Ux8af&0;YJIj)2}tKIVUgkrmRV!zeufl z4xb_z1)o8a+ke@?GBM&WS5GarH?hIiK>1Eq(gzD>;#=-K334$Yx*`Q6f1@92jOSv_ zK6UiXNW{&*pAfy$2UI)H4(8a-WruE>Vesc3a{PN8F+REt15`P$O_DO4SW-pptewHt z>>Sl^nuZsR>#4)-Ue+oonAT`yU={ybJW(}B778r}F^+xyrsXE>z9~k{+STwrw*&P= z{s@$0CBX>+aahyQ#kN(a5n8K4GIj<+N2(DnkFOxHP*jnZe#+58F*&C0xQJ> zP*>XtPP8iElzS#vhU`dZwTBV``m2s==C-tZeor6*EqJJj{W{n~9v4{u5g^OO9Roqn6rDQ>AC(wV73KvOr5%4$VG? zkSjAJAkgFmP23s>7t3UEj_oYMz6+&Ksy2gHh!(5eC=3e~l(5U@Ec0lW4T?V)GT$NJ zN6voo0#Cs+uxNpRkTL9-D(ST{P-oau6xPWw_r#fKMT!x$3XEm^o3Hj`sddT1PMK)qbf(RS4s zN6vgCEMQo&J#@QT1eeNET}c=8@B}U&-G&wM6vCAG1xTj=-FeR60KL zoVsuIU{=Y@gHOgO(Bo`__OE4eRg@2PvaO}RMq0`HJ0IxY+(LMmCJH$k@uYv|S9(lU z5yBo+!-V5XxM=DMf6o;|zpI?Z#GP^o*mw+z{`(8H>=7^=j76^(oVVC{A8tM;NUg)_ z@QMsz*1RjUe$O_XDp`jE4;-NU{ccq3&1VPGbJ+V9kBP0jC)_-|5=3JJ!PqGS7T?}W z+01G@c$eGjz3B#ZoDX2s)`On=;f%m}8B{i8;I0F@@av*2YLJuM4vaL`Coji!t5i{6 zrHShGb9GaQ2YS8{Kx2&_Ix;bU?x%){Kj-t{wb-D~#CtaEbp+9HjKQdh9#ZWqG&&N zC~S$3gyOM0_ScXH`sDnjzrW;g`_{o2cta4&##GVNG6erQr=jB}X$<;ikK13LBH!m| z;o|yW#%#YfHe6hScV<Yxcx+b~_}6y2v7ORr7hp6g3) z&haq`u1`;fa3e#;`NTrvlB3J?PuD^J0U@lgl*A^xt8|NP3`W)o;M7Ax7_NSpKImv? zcW5}H_?}nfPtiN#V!aW+L_B1-R7~Z3a8`I_SOva>xtT3<4CVMTK<~>;!oHhv^vn6X zBwsO~K9c0Jm8;F*zpb5Q_KL0M;pcR*cE=a7U~Q=lloQs~!TxXhR70eC{U)t+$hVK3Ay!AqQyty8;#~ zhR~$h=V(&93$5m#22|!Yfahp`maZD&fTD`Dw!A#P4*D3-K#l!=wU6!MIcnI}V&Sj50*8v%e3?fw5!MzIyMO<&DA zK#Qdu>9&J|)I3TQGqqPh=a5^X*>$5;hb@0t?jOQNLh0Ox2=-insooJh0r0Q&UbCEfam>7PbD zqB+x(D2UF0s~cX?9lNz4{+$cGt$vRrNtvMbp1oxF^K~M1p^lVRex=(oq{vIp0g~!` zpO_v{#{Y`eLIITmIazDAMd1t;>bOK^HN9mM+|AKM;3ZS)UP_7d5ll+hPJ%LYK-E?f zQ&l@@*5G+=|9Taa?Gnd{H(TL#&{wd#*~=>oO#runZ}i7?Z}#fjHX^z<9LiT`vduG; z$?BLJWLbkC*iI8Bvp(6QjQ=N|=Cv&Px0LIb%yC7dm$F!_7DE1vn-MM1OUwfONmvxj z&6X_p5ldff^y^&7mRU@NTRzUTYt9aG*()8Lrb*$w%C+><+oM?dP6SEGF&O6dZk4;s zcn%M;2-N(hmpseaSt|~+cfLu{SC_JI)a?V=#rfZVW^Tc&s}3;&69Yuiy_#+re8yy} zUu1_ekC2m_46sXVEef2;CrcOiu?05VZ0J@NhP&Tn{91g7W_BV?-pQ$mrKE__dvR2a zRYT40Y|tAhK)ZiuXl9!oq+6C^$^|L(VSV6kxGrw|mrUo(N@YUMJEDKoKVs*m4d>*- z@Y{4No`uG4+Oq6Dj^r}05A`@_haL!X@5$0HklxE2b9+Jwj2~EI z?z&m@=w*H=d%py1(~R)^f^jze#y)8O`kDM#i|A#TixxiwVc&vVH2HK2`V8{n6pwMd zUp_$c$4`U!$#}+WuPLKBdlUSO)B>|Rdr#PWW1CUU3jLt)gh#I)7SQvj?tzb4HK%smyYxIFeu(M=KY;rM{Q6(QMT> z!fxzf?L>^Z8ABYY^kYbYSrE=LO=b-b^@Ci@6llFNOn&_RO+Egl;o!T)pfT=9q}?)D z-o6*+c{LKWE54NOoO+rB%N(StoUi1g%t9jPDUE+WK0!C{>vU|%6NWe03HRwJn=g=` zP3P~cBbTO40q0r@ClCH1IX2D2uu2QQJ|3e%9P{zgjoElnE0tx^i;0td1?$_~O?L_^ zW7GA?5I8g!y4{pno=7B}EYiy)r&N+~n>KQ_FqYn0_=eV7RuZ4drKEwaWdZ}G(5}S; zKe(P}QiQJaHYW>GuZ;^JXOaYbd=SPK6{@4f-B{AKKMdZ4uBUYSClagO$pq<{;EBPt zRKG!%&TbO~%P+s^u08KrAE`XL$2*^0_dOkGcrsJ&`hZkCOd`XnM``?|Mk;TTOcfae znC!-&AD8K$VsOy>-19?pPO%fYFVe=8O_4^?00q3f<2Y#u5XBF_FOlPAG0<$8$izjL z5S8LrJpb>0%+3^U$F|Q5G*5cdf8qNHznV2YQ{{y7(;}IvZzPyKX{T`U=n#&*&7=E* z1W?q;0XK|aA^I-^(A8LstDRKg(Nh7`v%SfB>T!Jbpdh$?Fdy|a-ct$h1!z3=A(>gR z3XWG%(o=c?yZ&X6wvB6O(Cax+D}9DJH%v+R_&;WvmmC_OSO%vCU(lC_w}X6TA9=86 zF|pO{BQJiRV#@fEz_Ql_=D1ELn!{Xw{oZU?ap)JVyi#M`xiHd!cRw1I)S*?=+F{P&Vr^nNv0mCS^N1*&BF-%R`$$x!)$+wev5 zHuKYE3NDqbfoP3gsACky{CCO-;sSOMfe3Eq|6?if2|S27b)&3Hy8|}uxW|UayA$sr zNmkTeA1yg&ow#igJ?!w4dDA8V(aQ_XZykR_O8$D1?!u$wXR|r!Ece1s=nq{d0EQNt zo>J}26VUa_NAhS&;~@{?g zvpnjWyq(HcY!EAb?h=@f!}rG@(*!L!K4qQ^EnWI^t^Z!qUKoO1L%s07*Rk}|=PIm; zs}gjS0>SZJDVy}~&DI6$xz_$4DY}k?1S@^%yj6rCjTtcLup-ZMdM|cK@!`iCbcBAr za$&@XKrEI#vA6Xtv3A95D$D;&S4?~JnxCQY$?%03`=|?-cqhV_i{tsw`zA8d?~XG9 zq}{;Hfu!ZT7%Tf&;tq#_*z@@_*gB*aM|JPTyS&Xf^q2HMHd*2Ov4g?y??d5()FmIO z&9FY({fTKH5qS)6pLYej5D61@$X2TNSEpfs!rzPp80Ec&R8 z>WSS@Zp(b?``=VPdNUF9`$+rCcbi$RB!Ul5%jCh?)iip6l>JP24xNUM!<(O`@#Vg= z@b=Ex75SF?D8twvjjs>JMxz2+;~oclHda92^I4E1ozHSd(CZSx z$}5I!l%@#(#Y9tca2$?K87Z;k`rsP%Q}iiwy5PL58|>fE8MWps;Gz9?+$6EJN>58v z6XQv^A}WVGKdpqru6;-;b%)qnYabrnL*fthdl1ss3^k^_gvFoCSvNWaOf)obs)p22 zZ7{~&2@CO1fm51(tlMxboM0E%Dc=TH6 zwCo0~zTttoU6s*tYIm$TJs%$)84jPCgK7JSco=;bVA_jt=#=*#4I0~-P2WqstFgOK z)x?4Sc)Re#eMwlg?lN3?30!9#3;JvHu%!J3oXB1Z{fnywpJrvYd8WfX4of{`Jy#yp zKbX(%3?;WNo%mh)R*n=rdHXzfj*_xmyVg$TK?jsjac6JdCOHyD_qZl{SFGnHjq~{F z76odH-N;|Y_k)mqM)>954PnI>n@Y_sW#s>E4;L);Lc92C8l3$EHcxpa>`b@e@L{>s za(gB(53$B>$5k++^pE&Y#RnrDL>lpJH0zvn#|M{Iq35wd@bh*&$0Ql!TInvTukXqi zeyC%y$!0O8peLjZh?hCtTFNhW6Ma3OjE4;Bpr4sH>v;9Xgprr1aCj*#9-AR3uT6(% zWrqqAM|kTof)Cdxqt3ue=rdY3tKD9W_zaKf^8l8T8 z^@JQaV@;wX%G8p)#FhoOq@1_{CT4vWPAb~Nd%qxB zDgTfzPY>ok<5!6WUfp5J>0GgR@L-;s=#ESJeWL{CWDj>kh=64_|VCVFY4h05F8VSD-r@N|?sGYN{c@%Axj z6MxVqb5$;@E2ZxboWv7-KSOp>JiFYyRk{7K)Pa6l$*02?(HWENu>IS0QFnj>ciNSS z-28*S%<;%5q;VMPPVX7FigCNkEP*cgGEVD76M5ZP&~OucLg z4>)j@O4{y#=eTUv>DB;yI$eg)heodta*#;j9l4n3*34ioJINdI0p_Bw2axX^+xT-3l19x>3g z$(ARcB--;R7$e)e-~`FFExVosCAurH`uhg{#&xuG@l&i^b%7=xiAU3JPJB$WK{!*c zOHycEaK3KIM;{nt@3gjx4;9X`W7S>I=4W4wp4LT--G3Qo*CpV4e+Nu11xAfPHdqT7 z+a-pLd(074l7EOdZMSjDT*;?AX-!3iyEG#VS%wo^wo0y6D_*8y&p-Sdso%bA)^6Mk z=M^{c$-}D7huNS60g;*p`EIU(Dz44i_en0Fw{Sv_jcQ;})D1E+ z26MV)F@!AaM-I`kJmvRK*s3KH^X^H%mpBh1GZT2cG97=eQ08wvrs1kp?ik?IL9OvM zBwpG_d$+FOJh^M4RoPf!;qOM_T|$49vTE?3r3nWA+5k0Yi=k~>nox5(L;CithoUGs z-1I1c&J_O^woC778wLik>Es^pedGe{_h>cjy|kH)6u!WDi#4pRkOQxKmcl`!2D(|X zgu+JTRsOAuMXPfgxn&ICH)}VT`Vi^pRC6@kIF0Acm=Aj&1qr&fO1wOLCcL>K@!tIB z@!oyoiCVXD(w8JWYv2PKp53YH=x?!2u7tM!Is$#hq{1NY)l%j;3Ko=BL);!U)*NMs zom~2%?BYs#_;w$wHSfZ58*3bTehaVMby?h|n~t^1HDGA{KzcUZSn6I%o{-N3*PHFA zc|bfTG^Vk!^mi$LTMTYL`bg~18QjHNm6Tt($XcC;u>FFM;`sNA`BeK`l7AP+1%eg3 z9zRb{XGrJnAum3^uazi7V&Jt(Y|6(I(B`N-PcPiS>5U_~eeyw=NLS$c8Ffn4io)Yv zvbpwcJ#3jSgYb~A(AKw%4#(<|PQyA*&0a_86V32|+*K~_a22eJN8_yJfQ|-nc)!CF z`rZCnP~O_++a$7~agPR_+)hv&iEsd>CU#0!0*Mv`*xbM&M03wRl6iRmM| zaY6bKA+Ie}U~uf)Mny3gU!^AU`^e zqufn+?5`_S6Zwe>N|MFaQ${><%TW9|#U2(8xJ3(%c2JJlLU!3T9&?h;LUHf;(hg@D zD9-uh{MLCSR?m4=xu)tqINRvLh?QHh_pEWKx7Q4>TB>u;zy-WR>MO;hJK*kWc|L2U z!(|Iv$oADaGF@+q?Hle(%w#K^vEdo@9#9Jjn>?`c@l?L-Du);6C&Glm1a^i-qEcup zG@c2d1y$3fzTtbY-&zQR`~mx1HNpPBe5CunDtEG}6e>2Rvd8Mq7!)-aPqr8G;L!#! zxR)mun62Uy!}Wx3ua~k)^*B8D(iYDxJjm(Cf;qNC0p7Ib2$SqLQ-seBsJqCtZM5V* zF}H!;UzIRFXfni>cY;G(C-benIot`t@$TMKa=fUGrE8Ci9Z7%0uLCrM;h(y2O5s-8 zwk3@1GwZ|y39~uURoWxQ#h}S+ceYD8PQj|{K>hVQy145v*<8$nRf7g|m~jfeIxv9y zkNiQ}c@rfL_)GEU&n*xr{f0T$m{xzNAj_H+T(&{V{K|arr2GzcJ?x5kV^;F^{6-qx z)JVVMxA5+*>t#bMuE6w1C6)Vx!Sr8&8m^wSohKLd=eJ3pY4Z?G5Jel_A?2qPiY2G$ zt!&|~iy&7$bX%{0ECZp$qb zc7X4l=g@EMA8}&cXDalX4#RVGgnfH1ihbmVfQD^0TvXm6IC}Kqv%Tv?nKV~!{CAi3 zop!;rL5tDLP#2G$8ILdTOB~y=QRs3?q&_Ruu-k`jsA#xO=wz7l&lVs{Su`7$BHTL-h(3o{sIH@VkU-ySe%-e3*=e7X_TLY%J|8dPKUp@4#f# zDf&KDn}$DL%o|Mv(XxRy=n{s0_4Z358v-=xi->kj7ZqOZg*?&2gA994W%{j38R4Qj4 z&f=DVbNN8OAsqFyK$M*rkCWewrD;8S;P~09eEr(t%3D+K3n2%+I5jYm9pC!$mHU>J zdT#H8BWg={Rl^|oaM*!Of>M~gg5m1^wLGL@Jh#M-f~bDI@U+9?$`w&gAj?bQtR<@a zc6JWvXiuOyH|_Ci{4~)1u$x`mi|E>yiF|g}P@W`vLWiXN$=mP_ifUJ;kXC!F96t(m z4EIA#Ut8>@orVz_7lCj0miat2!(;#E3Hyfi=3dhMysv`?*52{wqUuRPtZh5(bG%*Q zyZH^o&FjS=y~#~b(?*|2Wt^gSM!Y*l7w!L~Qdax`KDuEv>*=X-%#J9wXbJ*(ooKc= z^&J*Xs{zZG+U%xq2I?{gqRxab6!7yT?1iMPgg!L zvW||FuHeKCk`sLJ4Dm_3484X6+@9KvOYV8#?QnavihV}9Yxlv|utd7O@id(r=_NR6 zEZ|e%#`R|&KodMAt^P?AY8^}CVshEI%SYkv34fR`&H4G}S@g1NIYr}FN*gMdZ6`Adk& zoX%mdRCv8r6zlyPiu;evLA~dyyyeU&hIPJhOHjxAGYzrcS>iM;i$$|!6IPjCB=IQi zgx`S*JT6BAJ+GVcCt)Y=*_BQwr8{C}fGgKcH$|(VCLAK&ISp!WP(adMm@B!Bs=8Y7 zl!!4De=&i@Q7K&T=|08zNPRT92h^u!z0AROikLZP0w{}7w04}6#NkcG%8e7D^t&;3 z>~%+lFDvlIiA)Sw_y81rY`Jvod2+p9C5%*6;=xxm`GlDXF7MihFL;cjR(27vyubL& zxKNzy-3RAAXretomY~hXL7*b#44VTbj`?;e`*W}l9={XMgQLS)T6*%xtespeh_qgs zOYZIt=dO#>Ft=nRovT}lCIh;{`@k*O6X&CgToLfNIke_+GI;k-63*=($!ZTb3T_VF zaQ2>z%9V>oW7p$m`0t%Bj=5q%AC#BT61`D;_TNMJVlj;?mVTp!p?kU1-Ab_6h{EI@ zi?Q5j5l?fOhj*U_!N>KEvN8E-u&U4=kEjQub|-%*eQSh;?5hE5 zAG5=$2RHKhsFC8(E_S&4ZyA}4xJfeWMw*)Yhf+P4bL>$o#-K`3zJ3u5=n~3e{3D2$ z@`SHCnb0Vuu3RqdKr81B#NhU6LR!u_!Q;{jTw|z?4U5D1M0Pi*nckm2Jd^S;1FW#2 zU?Dbzq*Lt8M^q88U;Hnw2o=}d0E3=OA#BbQ@~$i9|85uyYC|T_ZSOEn(GKBv2iDS@ zkM0!t#aDLb)@cZ6cp%KH*+i%Aqq>j;))%~pzpR7^zX*V z4qcvy9Se+b;wKG0W*&z#@3@e4qU2Eao&oLee$oc>|AZR~T^&=Jr*NUf7fl|zj{D_b zpz_Qt{?g$gPWMY7+spOR-mE{XuNsQ=b3^g?$~3I$7bhl-Oh*5x$-?_@=g7JB3T(|v zqO*M$;fTKrD0qGk4w?N$cz>Y?ZkgNRJnzmp?)L=Tm|IC7r`Y0zo+)f~_>^qz-bPqH zt{)a&xJUgI({bSQvt;=)fUl144i`>Xp`FqW=)CYHe7fEuUJths%U8OB&?f>DtG1xA z)y+zSIV*)ni@REst)#LwxL>l;vswj}lM5_Ov%y#rmSzx$~Sj zYdon0bcd(5rPOgQAJU43;RT6za>B+EFOA-T`!)yR@jqIUhiN3wA3p(yO01J-bw}AF z*af@n-_Exp&hf_V0X%ZpJ=*@@h@f9^Ny@+=#tbNx-rp*yeehGE;O1B^I`)OGd_Tc^ z#Pz)Wo(9cuna1;1dGG+4H7m>Sp}(0I;QIAw80$8V<6cX%?(=EIp?I*A%mm1WkjQRylolIr5^Ow{12Vj5sg#S zcH^x>fjnx4d*#+cwo-R&Al?kVAViCvIAF{Ju*%xZ7N)6mIw71xwHnDgahgyYcLUzU zw8DiOp?u+~R9b<;<>e!+|JWMTvR94puI|K9-3{Z;*Nzoq78BOK?`K#%~LT@dV3>JpE%l zt3H;B@p3{@mIK zO%nT|^svCg-e|G+qjo5alI|u`>_Fv}Dz|k0MDMn!aZ}HBF-R$sclr*e@~=hUKirAm zG`y!a*S@U&@dDRZN?x4#&B8ISyO4KR5q~y}fTa2}w8dTr!*qIayO}v(8oo!IqOyY~ z4zUy0Rh5W8VuEmY>R3MJ;?9YV*M%&3E!-3y#NW>3V7QetP5)IzlY6d#V-b7cszVs( zUlT01r&7#{5h!X5<1H27i2%#}gNAcQ8wP z2OabGi3WT2u$Nx|cCDDl#~-Kj>&VVjO>tcAX3oZ-zeVTV97TG7dEI_#joG&*!NISxLOLqx1KLfe;eh@D(+saeS`(U}| zKWKIB$2nzBASx}L4USCa!iLW9-{UwKu(FA|O!4GBnY$op=6G5a?a%m09?e1)k%?^_ z>@q7vtEy}+NK9b$kZyeU${GG$l*Er;<&slBRX+RV6uLReK z-Fa|?Og_;)2BJ(N#dBvQ&TN*I_^ZxPoLHd5w?7!dK*PTLII0i6X!T%)@GvZD&wxJ1 zVx>HGB}Ad*)73TN&sa^mi~VHnH|^l(NB2tQ=lfy%ofFV`|4K-xJ_Vce9>F`?iMZ`HQo8t(3|B`YZ+1lTG2RtPIqL8=y|(QoQ(|J=!)H^2&)fps+ZLmNctP z<-WP#g@_<%lK2J(9bdu&`Kx3*xC<^1t^)aDV?3HRohC<^@W6}rX?1A~@4xedc4c{E zZ~Hfbzj3DI6`X+nzUmzL;sVK!@{$}U524YpKfbo?D$D$mfTvD7q3T*M!Z=6#dw(}2 z2A9F&n^~agSw;$(Haw*I zYDaeIkX!@{uT$(VE3A+5`iN7wDae#=r+RY_rLNd_mj-TE?2dt#`ccW6 zc%EEwi_%Nx($E{5S$eGEXObH+^J%*1GdV#pJ>Ctg>U8jELm`~&you;a0T}D%(&HpM z4!9i0dj>ufm9K`tgvBdCvHXK*m<9|QNX`#5VCro

GY>}E2 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

dS4PFcBtg$b<;#1w(EaMhFstI$Qe2J6~q4 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 literal 0 HcmV?d00001 diff --git a/gui_data/fonts/other/own_font_goes_here.txt b/gui_data/fonts/other/own_font_goes_here.txt new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/gui_data/fonts/other/own_font_goes_here.txt @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/gui_data/img/File.png b/gui_data/img/File.png new file mode 100644 index 0000000000000000000000000000000000000000..f0efc7d4547a3c85cae3630c2765bf4cf5c90af7 GIT binary patch literal 3697 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 E03h@^2LJ#7 literal 0 HcmV?d00001 diff --git a/gui_data/img/UVR-banner.png b/gui_data/img/UVR-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..a1eea2b7ceac6f50d421cf028f1dbdc60bf9541d GIT binary patch literal 110965 zcmaHSb97`)w|B=*Cbn(cwrzH7+vZH{%*3`Pn%K_7wrziT-uu4yyMNqud-dwBQ)lB> zyY{ZNYu7nZN(zz)usE;)002Q+N=yX+0Nwg(KSG0k{mxyvt9|`pyNYYMsydjvdKfzc z0m5buCO{%-J7Wu=3eech%V`A22LOQiTB&KdYRSv-m^#=o82>}V;A!Xh#SH-P33@sj zo7wfj6{VrO8bH)UdG zCgR{=U}j_I;9#aBVqs!tVPyLHa?mrg@vw97uy7Ln`$O`j&DqSHM@3BH-@3l8_(?2X zT^)HC89h8a7(7@R9Goo}nYp>S|B=DMLjOfU@8V_eYV1jG??Ue_+@{@ca{jVX|Im*lbw_tmhe;ew{WQ?B1j*QFV;N732pYf_AD#T-oC?11*J(qjB1 zUw0VHtju^=S=mg?nYh0!#tt;2=VE7LrZ+a`GN#Vo=k!6C*XD#FCVCc!51A6{vD7gu9@Q{aDeTYc&NH!sWo$;%_^ z3^aCia8`40u>Fr0C|NqVI=EOmI1-7fau88zTG^X9c(_piGe!S3Vlkkzl{?T(!r8%& z=wCMGvHIWii?OnDuyIO=ejyMSXJ!`W78c`T;pULwWaVUM7G)**H?P_Mu-kw6=U2}c ze#ig7;NfIuHf3UB<)$|_V>h8^W@7s?ATzruJu|ZzGYdN>yP3I}842STJjQ=q=6|@* zf4aW>@}K5^2gKLKe}@#%{wt20zXE1&^2i7PQk5VrCamVUa@Glx4%AksXnPds!zX2F zpt1Ss312i^sziili4Mv_MMQ)K0l^Wc5}4l{yw38Zv+~e1MOm;C891y2-;6qC{z63& z7A`@BjU&?|ArTZ@K1xh-;TqoQ@%g#JX}=cP`gjn>Ov*Y%92ANBIPPo&Q>^ zfT%$tvjEFV*4$fsxgBEVA96l^S0s%;35I=BxB__(?+5`aH1T;(jm%;-et!^>&;OPzy(Hn`yS&K^DmFeJB1EkC!l8OB&Xug5{ZV+m=_edybgltJYhLs_ z+S#_JKqTP-zB@>~=ls4`{2E(yc~}W$}w6O}{!V zZOXYfn9Io8 znX%Rn4gvFkPkWhj()5<0vshH+>w}NdfWj-RnM?hR91Au5bD^)@R3 z&3%r7tp&$zZ3H>(H&T3Rrbmuf@^z}*Azyu;(uxm`Af8H+w162c4{V6VodRy?In~V} zf`#`d&GY&Pl1N!d0`}>hn_|rJgSMDzC0+ey{g3X1es=uu!aV ze<44Q=iYn(N18GtQQb=(Hl6HP%H2ts3kw>&^wq33s@Rvc?kX>}UacteD?a_{`1JRr zl9&z_qHt#s(j7QnQMK~0nX+k}Y0etsJ}AtQc3=-9G#(H(H{HjlK03!>3n`Q#zn|fG ztqbh1pYK=TJDY@yeVmw8+~v~b+J%P|&b|haGnL%&d_U(bxU{Zlw&o=Q05d;^I40}W zTWgCzi@eG`&Gph(FjhSzf@a}e>$gDSm@Yz>;}naxU+d0U{u2f5368wm?Y73olN4UcU|6jrwPCn9rf zd6_v6_0PUN$FaIU^7yixt9ZagYOV^{UN1Y7dW%~5q6;ifie`s_K00oGAp|>zu$zI~ zY(X33P~Z_HSwl~DX|sLK#Z=S4DgveAt!+rrUV{;t2~t0@AW5*U;9zgya?cD~y?Ras zJt%1`Lk$yh7qRCrn#j#DU!ikh`P1=k?%9~p!B>~>8DX}8ZJd}R)fqRmGzpY71V$cg z%H2bk+v&HOM#?lslc-X@dX6Eujz=P^9XDsk7>65$KHQ1nramphlAubr>WYYztl5Z$ zpC-2mwuRYU+07@5jbyiQSI@AlmFpE#Uk)J7;`potgroTqrhc&T`y@_nCRtTS#*K!ag}+%oDK76J?0J65 z{dADiOp$_WxXR!7wnzaSJd2t=i#Byga4iacJr%IVu{GAOdL}v4lT+4s?tQKprhKqA z8H|>Ycct2N4*rWualSna!e!&Re6yjG0K$Cq2F)A($pIznHldvK5U!Z|Y&NkxQh46I zJmp1iL93#<^FgnZOYbgcr=Pc?yhlS^sr)>)38Mma)iP5@LST zIGj4JXqSNsGZAIWQCPv@D-c)8`*CXyUNHFAmXpw;LeaMG*WWd(%=gCrf&sbt*`xf` zqXNuQHs#I>4!jcn^Ig?nN!Yr2{K3n+t9cbI7ff*t<5*SoeKbzC&U@?B?#=|Qp@hHlHOPJy$Np1B(;8~l<^Spbv2D4%E$I?Vw`&o4F zW7}!C6+0VkpmR8V|H={Bg7RL>TH3>!KZY2ty_eNFD*tA@fx20vi$BHly`Y+IQ%-Z; z(TiU~fcl?#*q_;DA)f4x`AMPsO%thxJje0t&I+bz>M8b`tKey_@t2;cvutx7D|F=? zGC$7>OV;gEAmq`6R!4;Y-kHrE_)hn)5B+K2er@2kXjDh&tlBtG(4u>-FRW=NYr&m1 zdmGV|&ihglug)c%-xuN65GGxjs!;BN_fu_^TLAw}r(9KI?|0=NY1MgyLM6kJ-TELL z;M*HD-6-D;khSurdh=CGe`PtX(7e22LWt%oB1u4iA7iV5R?Q&0=0~k(x)HtjPue!w zt;qHpG-w;#6=f?lf%Wf1u!B|2lO8^Jz3&?ju(OjWgxU#HAQa`E^j%?uAya zPmu{Ee>(QO`T0%dYRhkHyC%rhhF&h@Pg1ki3wLU2XA@-T7c@RqpZjn7(o_fG-FI@P zz*s0i)1vTJu|XfQ1T(bMSW1%5#r!WGa%Y?KPCkYR-l}^GXxzX2d9DebmdBUVPm;WD zH0BvyZAzgwzoh~E?CSYcVvdgPDWB|dU(f#o3a;Izp|+H*+ywz^)-~!seO9#QDb+w>eZ@v-ifiI#5#=Ldktj zm(OGVb~m)%77ng!^?E4&nM4o)NiZ5M+ra`vqrAtHh(atKCI>xWt_2%MTRUSN7$uI{ z*)_?cKyYYI3C#|0st5}z@!`)y0KLl~6wR)Gzl5~uM8N5ZjU9*AVg*wuqxPm@MG=~- zd=*0+J*sXIgUy)RQAko)rh(db9Z+k&GecDPRtidW_`-1!o!uaQLlHH<-S={ZtnTo1 zG1>)^+;n`A&Fe0QnW%T_QDN)_*m}9zZ{>R&ve##4T5<4n!j-Q?D(BuF!!@6MdSjU= z{yjmCvwQx;>@z3dMR#W{y#9c9s=t>x9wKt^c`8Q7p4G~uh&`!M5oZpb*UU!XZeM62 zb#plY$c<|$uL7mAK-A*4a9Gpf$5KkNn-=5;H>Sf{M?4-e2)(7vshLAs8Bt z$+d^)=&fd$9C)Pflr{TplpFBPb2M`gN%ZF+vKv8$yc_UJgpa?n<7)g$nrlf`bV|Dq z&7(NyKNU}SuguX53DPyV>CD||Th3aqw}|lnw4Hcb_K`pHE})pvR9wD0O#U088g9VR zxSJ6!elUJh%1;}*oR{m%dxW8G_u39i&%mG|zCO<}vvHr6INV~F?TIh$R^ zS_Rz3J?!>isk`w)aBhdeB|j;rFL@o7V!|t18RVf_>PmgJ%eD)YYM!HO5Mg3$kR(nY zpBOjk>bzONRcik?uUGHk0LDvKHl!;{p{f*UNL1_(fK!tl*y&N7F=Z<0QmiUb)H0;G zONX(^g{dHV3x!C86?a)wq#1!|`+RhI6lV8zRb0F&u*yZ_(h095lMg(%^&sH3NEYJ>ZxkDosj$h#z+ej4fn1gu z*7gvh&ncZv!Xq6+i;!iz;YlSvC;MPx{=sux+7Cgn=JM#06@|xf5Vqs{(hc6x^dm5z zrp#Uw>HPX2UM~^g^73ae#j*R@J+{X+oy$V`cmY0(1@*LT+_Rlv(8RE5bM*!Fm>EUx z0PmRcy0(+7?5>;dZRFeJ=MIOjOCFr{!@ZvAr^47t`N9aI7k@I~yKG{KfA=pPbm6k* zIlNTpvDHFFq@S<*Yd495u!x3cOiD>=!{v616Vmg1?wcH>do){@)@GMGFU3gR%V0wR zF7JK9c^~TNicRXP8onrhMk*=~rU*z9RY8-j*avsp6>SN*1n)8y{2VJJ(;IMi#NMA& z4W7?>3E81yfPC@WiwU;;`>(fnpFeqUbt`H#So69Y8Ama-jt|3~;5t9yFj{oh8!@wK z-$$dHi&nJg+#NSn{=sU!I+oA> zIg!N42?u|dO`k$b2risVza7PI!E0rQfpn~)3(U~v`6cVqMgSU*i_dMs(4nlW+c8?g$2Ej&twnB0S9j=#T9l5hHSANSIQs^p{4-3HVDW zkpDUh(J*&ylSBBxnH>DfgalK3v=+T0X+Yz($%bp#q3$b6n=OcnI;G-Ji`M8{O6@7B z=Bg#B`hMH$*fqzDL3S-B2@KBf@;0PhdX>i<8ooac|6beJw`)zeT25V_@OCHPV?yFv z5pVaAVe_I$9XwM`m4Tu|VajH^BaozgJyG_uGOF(&!xzXg)D~zkQ2B~5yPAV8ZLOc6 zS-0LySMT=ewWrxl-&CaMj)LLdcZk=_eyO)c%KO*<*Zlp;1t4#P;b_;T%5} z^M_v0o{lAT(?oFM&VLk~y^D1sv#v0wSFraET`>u-1cWE9oj}MTu9hAd=Hy;O}4cAK<7=H&(a3go21{yHH?%F6omi><+i%asqCXo837g zOd*fadD9W_lAD;@9*m#j4e?XG8|!cX42p$sl>D?{t=}J%`Zk@=28CUKKM|PPhA>5{ z!`n~J$0Pb~txjT-h@Yvv$Xd^CilWHYZT-@`r4kS(MG}f zOWuU&eGhEa8VyeHjLYc1A13$1E+2zz17%?IVSjIO8UHOBccRf~+S zX`r}`Ho2|Vebhw6Eu9u%wex#`~4VZeV9|=&-pz% zPdb=0rD^L4i0k*3uZ(`a89c_QVS6sKdJ(CyxNgJ9W3n{D*Zhg3{Ve1BB|giGem5D7 ze?WbHm-u@elpYv|Gjxp{_|I;4h`_TZo)5YpLHmyuQ$#qq%1f;C2@O=#7A=~ta_PN3O(N_65#e-_J0WSbU4I7OiQYup< zB^Cv5Hm-D z(7M<6q`EI308dennysmO9tWPOjPF2SF>$M%8_@P8HfEe|DRiz%7cQb&m25JC#W~v- zGV%+Mi)ff%SRsu?7?q;_u`b)vJh~{R+`mpzi)dxN#0(TqCb=HS7ReJSsIcOIRvtyO zo|n+g4RDJsPRqCt{9DZF`rEmA&Fm#RUoJt6CN!;80~tXX6k@&VH7%(qX<%{O=^!5F zQsI5oXI~+05|1}yHQ~Wy?-eB%FFmc8p#D4dfgS7CYGRiYY39RMyi%13{y6$)9=RxSg9D=QGiQRpm|8-$eXX|tXTj4nEd`N=%7*qv#55|jl*;OeY3k&iRBMk^O*i*(Eh8(8Z< zQB1smEq2di%Gs)@XZIrs!j%3a!+U+_tSR$WVHYwc*jL|9CL7|@5Dj1esvyH?LAF^z z7pdl`o7e{$i4EGWZgbv|hru?JODFsz&w!D<%@%m2gArirTq#s6GN@V1#@j&SX>O-MLMR(AR*3VqsOPGzI z1wFTLIpTpt0?Mg$Q#*5IQ2-EgmL^(9v);NZWCK8eHvk0P>mWMV7gf@z2ZvCv{H>wG zyr{qvy5Y*^YVun54-#J}VPzlv%p6e?=3_+@yRwx`_Aq>ErG|3c2vHUpL|0GyG`N`% zQ|l1hKv@$F=u70>S9!5)KA9}QlqlCgb00uUekEfR@*ItzVOQc)@s(_#m!Pm*9a!)lPx^T8e+io>pQ$Le9;T?JzxbnVv zR~;lRZNWisUToT`xP22UTs4L#m6z8$yvGbXccb4@N)+p6m?$1;klMjOd`t(Lg`$BX zO0CWJ9?qB36{Zh=Cyo)_w)fH3i|TcwK_|Bo7zR|OPe(OcwS+iJ6Q8AOrL=yOF4OIR zzk+0za>XZ#As2kpLl5Vt3fu@y-c_%VuXj`dtKM--1xlG$p#O-)d|p`7JSxS=+naL~I6^Y4j-?^fUe*?6Q#$-=PeVNVQz$B$i5)4Tey3>|^$ePDC3|aMd zC@NA>D4U(Q`HsaXA8M1J_HCpU4X9h87qK(m^8!%1hCyVc%#I(6#D;e&%4ZyfP`Fq; zVxvs8W=uik;TbE`WHO*vK&j(S^DREm;Q6{iZdu2PG zb=K>Jcy59#q+72AU?p^;-((|hGoXhIwf?q#NT5zZC8TjtL$^^?En3o;a``1qu5wI& z92p8BqlQW>_#OToHXX!L<(;HDxA3 zrklcB&z_ebvnfYw?M;Wcm1Td9^m42g6%lW%BWPz19+l2JpF_01I{kR1qlGkSxTbu= zbjSZ`ETrv}ZVdGeY*z;@2wO)ds~f&gixcOJE#}e^49}!TlwB?%Sso^L0gHTbC>F{w zFpyjWnz_|85Iq)e3ybt67bjqh#Smj5F|Y#Q?wGX^#UZ20#5iXw`7U6LU8_`M zVa>iJ0&kT~Yt=F)UK2P436^!Z3we_q&F&)i3+BLGF5SLn2OBk`;g--kA@gbcwy+%f zpNMrg`ZyM)MD>le`jM!wD=k3|U#kxkmi*J;96z1lQI9vZ-WN4?SE+)z{8>9zh7MYvd$-mhCzWvO9Dj#{8}boQ7N$@}OgH5v$OWJ%~0N zFWc$I6@(Cq?@syDPp5f|*L zv2XbW6wy=z;>clJ!OT!B74y%v&bgBS$S8wshUmnoyxH3CQpxtx=Rol$#wux)S!dBx zr6FFQxq}88i2P`B*Wf5H*=j589!8H@xS*1@%h$*S>`xp zHqm{6T{qcF!d*`8(LOC{LE%yeiWbXo#Jm)Eb*wK5w)sT{`J}DFsVx z3WG%wUmzjcggM-YP=K` z-BAbti)x2yfTiz?OY?XK6|6jo9;i~}S#I}8N{;F?Hfb)ap!R*ecG%7!#&>#c4_2BH zn}Ho5JtVAvM4#;US~m7_83}F_f=b7M~_lJD^j}KG?gx7;S@vE5Z$H5u>J59 zr?l`70-SojcOMK$hX3a*ixUh{qzk#NoenFEP#`^ze&&M)ElM1_Zg;hXa;EoLWC#p7 zIi|7~LFYLCxOIg*ezH>a>?!)YKo?jjf&1H zyWbitOMiD0iPacN={v1izi`cvr#(8fA_M2o1A0U-Ed~oErTt_ki|O;A-L5v_MF?E zj4}%55Payx8)3~m3}do!E08W!t&q$&I=unq1j@$zk@n%0(3LTs=hBrp7azOJU~JH9 zLRq)B(F@c-X6V`snKz?&dk5Sr(r)w!*LjCGU2H_MZ@R$f{FvbD}* zcaGKZRNdDh6{1YjIfc-51?o}-b8&DZW0ZASB2zuaMQ$Gs!m4NhGm^e%uU_)9lpCEO zmQ)M}@*3#hKuqXH5DU0~;79n!IM?3Be&#teS?CHHt=Dd{HY8;~7$qC)K$ZKLY)P6> zSn6+*K{*X(l(mD#Yj%04KV#R|_S~+{ax``6r!tyf!xgB6CqkFwyhVFj6IZO(Mqv%+ zY9}!ahgr&NQh@?Tix@~SVIn;Z9$u4|Y&cgRAR<@JcFLJ-P9d?sAhyEE7P#mt%tK}2 zShLBHi6FX=wrI{^b9oM=!L;hcdxX_>5No++y$tG6DDOL~s~ggn5g_qw0kmwl>{!Pv zQz%+~dhh^*Y516=n8Ic7QJ6E-h%uw3{#pv`+CVR=nmINFm0+t_7gXl;BnpgO*0F5h zLR4NOrde^a&R=b&+#n>G@~_iE;(1O;k`@)zeq;D?l?q%*E1kgyHdfYFVLneOLxHxIochm!mXNXxQ<$;iQ_cQ&CF&}R^>Stef#oavceKEI zuYI3>QiALBp|`*I7mg7{MMb#wt=n-9zPmR!GVIxZd8(rfid=3ETjy`i!y=`U@t_j< zjC;ePP{_0kL?evpv~g5*jNq1RTN=si`J?h?dO-(6^bMR*G>J-@4JfU^+;x&{L|!PV zNx7*>?=x#Ssny!+$C<;4VZhd`=jbop=*OI%^Y*Tc5j%wcj9Yz5sR!kB15l;?Bu?W(~TZLU1Ge~tKvj`eOZU1@@^bfl3!A>dD0W6{HHEghj`)dT`nF6Q*ttGC?9hWYH8Fn zffJo#>{PaBdbpGCIBL4>>KIrUtQ=84B{2cOo~EYT&X@^EG=i}Uca_|gf#p;~*(TXN zC#9?3Loz#S(wJop5j^qc_gz*7jWHk<=L3!qRR-oj`@VtM2#%eIYx^N3G-a? z*QhB69Y@nQsZz_StzDn`9Rl9&dx%KhM&hlpok~qiqHn)9VfM(Z(_^JpS%uC7G)M=(S5!g$YLl8zjB7|NMx2eVwz6` zI*YSQ4nTFsLYG>B_XlL6YRSSN$7?7td2kJqz>n$BmqhA?!ibBJJisjIv+%_S`2#?y zSv3-OdT!-b&O26#pCw{2zmYq2YIHBj77&p{x$BxpW$cN{f9rSAHV=2#^m1atibrX# z<9mRl_mhfY5iJ0`FpDmuM*@Yn`>Az#FjW-7kdEY;I)b21gFa=Ho150;8YVokoMNBw zxTJlQtxIC4_8yihA{ULsS2o8MlhODZ1mNa$+PDYfAdRpVLGZ9pHG<3F>F$5Ce0PzP zU_C9D0gy(mB>u)*2oi>@46ksudHywzH{&}pYOGt(Cpmt85%^;_fzW01g@Qcl5%OoO zMN22)RJuB#Xk~JNZQ?~(psdiLsUj*gew)u2{o9OVpU4DVL%m8mkLi|hz*nUSzSusk z5QL6gYhs%T=;y6-CGbqEUe)>&>VveP-|yORUktvGRidg_h5RTqZnZwhl|xz28u73nk;7>OE?{8s_ZHJ7(4b`iF8s&SK{6Gh`A_IN#sgN zy&6;O{U(T&XgwF=9^4S0ew^gFAs|dhUZel8drSNJ`(wao3Z}lRaw;(Ish{$K3RfUt zpVsiXn6vX)PlAl}MA7m=wj9d9GE+iZV`Y|2*Pp4DB&4{M4rSRt!Lw+7Fc%LCfYGSH zEXWvLIFA?zM&QML6vLZq^ps&9qW4W%42Z61glFsvdoH@4F(D34UI;PLXk;diB3 zPMxB5bjN5wmw?A2z^2EN1)s3Ylu^8gya21WK#|Ja#ON27oEDs|tsxI4ZM3sxkY2`y z5*F*+t!*)q(qmaUFG^!gAHHm4jGQDu@_mdNVi+YqQPhez?t0ukgvFz=5yNDWnA&4! zley5TBze9iKhMVKvOogvr&2I@wkzUgsm88p^09aeaXuNoO$^|-T>mL^@`gpQ+^i@` z3CY{Fxoi?kqSbcjNPyU0+It{$Io1u?WCicI@C&30PFz;aJUb$ggiku>DgFK6UJRvp|Zbm*;3NPw9+Zu`8>D&}D zSAP0S6aAzkPf78wWhNYhniiHKp39KEdY@DN;NT#GwuYdSP!1}fh-4&}lsl8U&u_j9 zl0ZP)Jl9DRl1a`iDU_byy3AR0r^9R^h}gMWn79f4(77}YAG^9F-UScQI1aB51(A?X z$oO#E(!iQlMAD~{%h8~zsIe$YRSTYR7B2S6NBakAqFQYmM4sHjQKq~J9c^XoHw(7G zS&Sh^Mbk3XpQ3sdxJjN|x^lKz+c>C;YNW+n<`e@s{fe$>C}*qZ61nn<>95F)Yt!_m z&DqSUTy-G^N?kh^F%hFw9OCvyL=8cX&}){R-#()R_1%{{0~N0N#tc8AJvw&rTmHPC z8{Q;tw$J5U+)YOa+_jx<>}0Pt9gk%qwg2d$$+&b6wE-QFk!Gl00Fo;_xufgAKASE1yzBz5jCOj(HnsOps%q%i{@Ip)LV0Dn+< z3?+Shy=dojiiDK3j8{``vUB5&07MID4o%Yd*xYYurc~TZ4FzH!u_bX?R=@fsFy71EE_R96p0eDx=-CX-daKd&F%Fa^j9<=@hGe zg=Q-W>OePmDSk8q`}+4%niu6qbLHYOe?+ReRuhT04iB!9ger5S{vZrf+{Jw$R-+Me z#cyAm+(;|@6^`OKs;!C0>i&GcNI}-OEE8!?h2X=x6WArb)#ED+$E)se>OD}t8CmJ@ zxS|lmQ`%oX3|CqVytG2frspRMy&a!7jGroK1Dt=JCz2=?cNV=nyJC*S*v8K3Th_9H z%SW}nKskc9EvSI!vCsN*(p^i!muaX==d^Y%4Qcowh}eY+!`rsa=gzeFNrROgLc!Mz z(U=I(WSGsE*yo+JuDdHq0c(5!;)=~|#u9ivjR9WAb_#k2oNq8Q~2fv`#Iy$NQZKZGBzG=Wq$>))J02Y~G@9-cno6GB_ z{#CGh5$EyuB7eZ^=SN)o`aJ`A(`=wc8|f$4-IdqNTwZSRv7qlZA;M%lCI)ns+{>`b zegK3RxHHtRaD+h7nvZYLnz;T8ryBSz91x* zPK6F?GF6LKs`_tpAz`WQE^UdQYONHy?04zt|+I5JE1pC zPfZ39%R`MO)Nv;A?Bq~Ivs`^p0m{WrA}}Ta zfjskYab{L2W;R&m{gp#51b0=Oj+9h}tAtEuBq?ISeQaelj z2nUpjg0_Ge<}vbxteC$OgYZ1L3iom7JFpowWn)3PVp0&U?45qp*m-H+w_nxiC7OI- z2vOFRZl@%+Lf#~ihkfUzoFgyel;I2N0h}T>xsy!~IDyS{G$oHqIB)ePCR^x1kr(vXx>|&R zBqmPG8{O;I$f|Vhu7L5L^Nf*BFcQWyDBoYs3TjJGzM5VH_?0?w#_>Y zc(O@-?3|h4q$VEZNI4)hb)b>w3f7Kb^lR*WDLLSx3R-sQ zsHNJyZNx3{D3rmXuNBiS5i!< zUV!hndZdsYJPNgYVQYfuzL!AvIW(q4sE<+myQePRsY0$^`QpjI$zs1WhsQ?{;Zv6^ zS0KT_hmE{A4|Oq0p261!Avg!W@2S5^`1tL9(Nvr(rx1xKLiYMKDvzRRj}5;jX=0Wfu*H(F3@LOzD57Vd zsRx&lg<>yYP$S1)3uVCb?UhR?cEgmVijs`Q10rM^pO}i$r_Fg|cwKl-~1Vd~vQlB!$;4P|^Bbr_aO~f(Uw`@2j3z+QTI% z1Qr;Ue6p>`U>2|xRW&Kct$;QR(ra0#hiYn+G(4*rGpmE$)>x-r3B03-^J~$S@rU)u zEOdi=6P_gP`_#I@5>}{-m+(qtI*$VmESFMMrh_k@&al&lnZ`gcnC;gMaz~BEbfu;O zLeLEV)_LCEI3_%OJ)H0v#A|qun(!1wThrQi?m%eJjjs82w4b)gxUDk^?W<{b_lwaFO$`Gm{pJ=lqIc}t?kIen6ymTBsL65 zXHdrb=C|Y$ks9H9>PvH!naFKJhdNV}AkWNQafU}HZQT~2(X1g`Gb48@Y zbxnemmwKrFf!L=}#a&F*Vo#z2!C%SNAFNB))D+v?Erb}Z(pU;1-zB^BWi37lNTwy5 z(*Do+6N!E^FKQLDLUF08?+hY+*{BaYe6Hqdc2HEiHi?g}d&QZ<80n&e9y}7g74Q}^ zAov3ovL`v7##uM$jXLR|#Po1KrB8Fonl~-BLf?x{E4x#Vpo{s|a#`pYxlBp$-1)A$ zC4Xf9_--miGHCY_sm++-14&NJ<(p`W+q{}eimw3JXM*k^%p9vffOLWiLudy4$raKy0Xe#jOurGlvK#5 z`1)qhTA`FD{Wfh8MRr6ZIxZj1;|4K(Bb0c(PJ?T;$^YT z@);vTuH(}|bk_XukbHt(Ow6hCQg|0{d(xn!2R0;u=ucBcQtVolRe??--2JQx)HxY5 zG&rsq54aaGyUvLddAO#pUK$hD!z zkK_CZ;*fjyMX}FISp)BRbxr!_ReOH=gCWA3@1hYHnyIOAdoo()Mc5do4{;p_JgGh_ zfdk^RO7)e)ZJv^9dSTKRmC3;8ia#&35Zvfr?=gj>y>*>#Dt57UsC#Ztgd6D4gf2Bc zb7y<(4c~sOGaixj?H=<2hkiDTYCqIlLG^%JP;63_X5G%CT%E4EJdgvscC) zOmz%Z)ej~HX=y~;4p0g`$NX$zxMR!-G@1o$ofj=CI_wbXm>Ae@WEk75i6q&HaA;YPO#izjld!e_u2L(c~ zC0fRs;3ky_*d)a*C(-DWdqYRIfzs$5_^CXmTnH?Q%Mkk7CTOTolBM&#+K#Z5HeFYB z%=@D<%LYGn1OuIGEU=cYLn%59Kv{zt%t&le>u`kJ+NBGOxBJX0PwHnEbsAk(6j+>u z6dW@GJ@dUqWj3#I&b~S9b3+6G_av=)jaa**)j-1uqwDL*mfXJN6`Y#hZ>oGMci=~#mi40ogmD&{;({*d03^MrcIG5~?23lRCkua;M zp*WNKg;{@*yzpK_=G1g(jqi9E1tapm42lz3 z#6g#p7>O!{_;RsAB$-!@u|>-spXWT-(XB#NOa=7IPSP=>O`!L@$8 zFB;w!Qm)oP!{)kcqy72lF!Z^;{HXqgQT~fYg7`$YD)so@h!WoC6t9?Rke(COBeD>I zcirereC7ungYQ!xf%#&C;#Ku6U%>L1;Uph0W}lcK#-I32jMWOCGW!8H{@X}^WPKr^ zE$`#bV)Lz8Fa`gYWbZA#~$984 z?5*DHxF*eWq^;TqwB#y3hlva;z4333D%vY{EvBOOih(8sEcfX|s1&WBsx79GkYiNx zrjjCdJcw)rQ1* zZg>xyJkJ|FXHuB=j;9(%dU!m$M!azYfjH)GwH@L}JXtzzQxQTgx;;zYSaK8OHM)3; zSRzsyUoGx}0r7wvGK{H6WzvIYv`O_Eryu>IMA_1g--P%VSWWYpQ778$+`-TrEqwSH z+1^mDpbfk2FvicA24dR{w4jBOrfb!_jc4*ax~OGtPBWk{ysVbkEG+$k8Ft#Hy}$M_ zLZi@r@&23me^P$*B~iMg2wW#cf|@2C$Vd{`<&WIKOQ#NVU6X}7n?0#iF?3F_U=Cty zSXY8(9I;5xVh$!nhX#@+SH*KN^Ncl9fh|vRKEK1?l1&3TDJhMPLsP}aWotvdOfoHk zj^O>0&PK4LhdXKkH8v87l}_2o;xLvq$0*vB*Xeo6{k9eR{xT`g!XlCV19Nsve8^;KE@)?WnM#KUo9Vl8Sdsj{v1buz1 zr~&SUcz*%ex+>fYDo`no?7d6ckCN+@i zV*6Hh3jyy#5R%_f!sp&S*T9&;jSr@w=eDHa$Ms_8@kDDc?w^~c7>2eZNya~$4)23- zdAGDvek-hb_vw;?CsvC7vybc7@rqu(s06P`g3pu=eygt^{||UThrjM4w|wurY$1!a zEYC&h(<*TjxrtjQMcU<%&=E)a{G+-kXCUXz275x#PmiyWeqK~AQMpjI{fbw;<_VAc zX};D~G{6^P?Gv8x_*cH}wI`RBVOC6zhZteR0*2ZwBOH;o!(IX*#GP4Isv{08UP$*jP#@_HB#kL$9hbyDw=D(DaE74zBW>J*RxVQf|W=* zfw{8M8yW8xK7A;>k`rl3tndlT>On$rQP@TUL%j_BggvK;ry|j?7D>x&a=3-idQi&c zRJV({BedUeUJ+!gH->t(m_byLR~TnppkSNXE`VkAv9L*)f??Vh6P8gLtXlMlL>~pS zjImERIYfeR7z$>iypJ^lLRbnVDM(Q`*kdw3sI6j{^oiMYD3UL8d7%}Gz4UP;fXFG7 z=R`GtCB{o9$utTDM|esZgQPz2=ima#^NvU@(o7!VV){K(Dkr%xE;#*uBxLp>ZyA%f z-z7dPD8fYbBkYbvLu+7Yn-?6SScL`|K6J9A7m|W3F)DDV@Fpc|gN2UZ*h&|Ld>~F* z!h4aW&q*gs;w`DA_MMLKYU`vN)azz(k(x0$yQN~D6{+9Vpxp@L`l&5LRw+>xK-o7S zvQAlYB23xF`ylK4rte?@b3yWaHV&HA`a6{DsUThykT_eH!F3>6U0d;lNcg}c^vcGp zQZad^x+_Es_ztF%bA72QB#yz{qc&y1063QVM$1Si4iR9AsB;Q`ofZF@!4;M{Bv}5X zFYB@uV2Uc*oIA@oWQse!qw#Nm+m0)0>}!L2s+yjjP~ zdBuc?q)W*B$7MH~ma|BSh85dqm~2pr@PMd+YbtMImd3(3VYm8}p$IrGOjj51EuvJ4 zcYv#ytf2;)qV`FqC<$5!1<&VjAD5Sv6arA-vfc=cHgXHF>Xlg}33bZL)>1ZSVX}z{ z@}S$M0tmw^zyoB4o`GxJzJ+JwHXdBdbc}XdPh9}uYUQ)RK@`#5%^v*wUr{_NVSyw;ir{3_U>puSXe}Bs@w*b-|J$m$>ce(SCBS(() zdY}L2|9#^4G3hHy4j>VdP%&7 z)suS7w%cMjHCEx1z3$(C>V^kid4*daL;=FM_Nh;O`Kw<8$V>`@&|NX!s39gj@JKP1 zWM8qo!~xlCdW^;s$ID*tCm!*L4dD|hBZ~j+m`-fQ0z5#!+Ktv&nio$$A*M zW>QK;uT}*iGP2Ovs*n}(n!0eD>Y@1#<^|>Ooxx1jG%UA zVSG?C5oxv1n#YO;BbPP2O-56&4#fWCNit5nBx$L3Q)dV>5Hdu!jl}bIJECriE7@5( zNKBK}t0dnoijG!-5WobPWso@W&6Ip~=VC$-{38wvK8-1u^JY{SyEt-GTtpH-)?_9b z@fZ!OrsI=KW@)*UvK=fYSQdZ*Stw*8xOurPspgV6GI*Tm4B%3`U24;{+CtG2N?gvW zJ$y)&-r=Mop+0Fe3!&~h+#OXGN@=(uWMt;T`Zh%7n3a>{9iCN-Wz3QYvuuHBsWr?N zOQFZdFrTxEjg{Xp=6nTE_G@E93VIb7Sg;LaoYoy}QdqbFf#{j2Cj@GT-{Y*~)FQW| zM#d$5an@{zY(p*_cu5A6j^$NZXMLJsGj}2t5AP7eof**5!-YH4aDm`}@r}izl?LTz zTw#%s(C%f4q*7D2Yr-@pFO{~X6fOnR8F*0bHq57%9;8x}$J`JLRq74m6`ZcdPz0N` zifbhSjG9|niDaSo(zcY+mROgyEV*$a1t~t4ei2y1zROW*lm*K8D=^2PAI50BQw&dWlp$``T--x%%ouhZgbq^78Uu{PjCt|Asf-<6if?>T!>I z)WaV}I!m6v=K~*j_lG|G>Cb-7WEtkteeQGbYaaj8_|qT1=Cxn`=YQrPF^oRlc;k)O z{aMfWxu-tmDIfXl=RSMmKjMPl@aF5@_3rmP_HmDW^iMqEj<>)4Z@%aSU%2rf-}2x7 z{Nx~e)>E&!-+k^K2IN0{?sKns>)XEY#eXhgJbDb#>mc?o#WquLgo&Fi%T6eX6Nt=d z#l+vR##M)~d{_r11E|@b$g;O>k(cH4BA|Ag!MTWhNv7nbbmDhj@yZWA_(A1ZkTNh) zo^n0O79NLgQyi4SK=%s^3^Q5kg;0+l zSGKS?tg<0*m)fq3KIVlLJfWqop297y7RG|mmI+p{u$UHWpl}w8y#vz)fDZ@3y^zN1 z44YCErq^|%oukt_j?WB{3{YH>57k4A36Z&?57$k=;!acw@W15RHQ_R2|S|`9yxFmstPDCVG_A}_mzGlg(73C*K>08mjWq}pYab!j9MkG(*#l?+= z6&HvpLRL8EB<#1^MXwV=Ud(!TyZBmZDP|M$_$8KwMuWK_CsHw(ZW!>P2HR2H-(|Uw z;Zla9*k~yd(c2QY5NC|3TaoG?soZYR*c_#Y^qQz#1yJ^a&4G1f@sPgw5-b5m4se731yO7Cc4avT zSx7W84gD_+TweAE5v8_%&vm+?+YTkYG4b#O#NRTKerDLF({W<5JH4#29}H*h@$xjJt{eluURJV27KA5mFM8rPyl%ELC>}Gq`Z}V`hbgvct+o zc|OtvWSBy-)KKB8TV8U*z&JUZ76`cC6P2onHIO)z^nBs6YbddgW%|iay87pzdF^P( zEG{lS^XGo{2k&;bJKgC{M~|M5Pu}z1_rCL;@A}l|K4+wh3I=e!-G1&b{o+Eq{fSR~ z>YdkL&$3B8w;Gd2@Vc(M?z;Ql`?7oA``*9&^r!#(=f7ZS(8mZle*E~KzU|Nc_GAC^ zAy@q9)2?~a5B=ahe&@Gd+*w&Ua^%S9)c3vYvKJjX^uphK@mK!!Tg*W$9>OT(yzQ*` zlP9JClvu+om4wA{v#HyQj82JM3SDhr5$~j95d#rXK5%tD(gG%1-iwq?k>yz3@-PGv$Jf2(EwmziCrE4MTDaTQp;GGK!F}!;WFo zfIeem)ZC++L7>*>zA78m#z#^@=mn4&$#*MJT61yYh5R0DKZa-&%AtEbhAJfJLPRpi zDC@$0UH~X$@+P$5{K3{6G0r8#VL~ARB~dN)y=5)ko?R#@z~JmsKmjkB?-zRqvLH^e zuxNsFMNg~5qDn4Qa7P1(#zkcV_I;E>D)9v(jH{?YzO(NSA_mX6=rT|ji(s8AT}C)U zxjJB=tcQuo0`Vlp+UxKzDSP80z#7&|E4H(?<){gw9w`kCVT;=#KjNUNg~fY!4_ieS zUYc9Vn~q1Rm2E$`iP;-H%q0trg9*_@M@dw#l{GfA4&q=wl+|E}2bwxlh)yf=(c*%0 zmCZciqhtekLcZRJj$RNgEV_O#zx5U>hJ`Ms-iOv3jPgmFQ@^|td=4*C@k&VDMQG89 z@z-km_JV4+Fu}M^t&k_7rG~J?zSK=(k1ie@7M>hcC&Qe2tiV;wBrGg)p#+4g*KpD# zB&Ut^mI^A3bQalxf~ioh6qyhSA~sB4Jj759T&TQcK`vkc?s0jU&bl;}r6Ufcf|=HA zI_aoa@=hbB7@Q9dx(N`9?sdd+L|eupU=S)22`RL7apYK=qlXzHOg|IIIx)RQ&&(8? zsj`=;1h%mt;#py(Ycxf-9t##F92r0gu`5k662itP3IbM2)L>O;xx%)_5o<=sD2#`! zNB|U?L%OQ;L2LEUhJL8=C7|lZAM)U5UrTgy%dNM*{8g{c`n?yw@C5)34|u@+@!<`h z`Rr@n_@;mQ^8X%mnOuh*k`f8?Z=d$GyWj0@*yXjaeO>SPF=^o}imtHuandWwSG@L5 z{`3!j|GxLR_mi)F;_LtP4boG$#07u(OJDq#FMR$3@4x=)tFHQ)r(6@z$-Ce4-naeP ze|yr^S3Ul5kNf^hF9kgMjo*ARrM|Pw2os3ao8%Es-byi(bd=K?TN5~MPaX%Rp{_=+ zR|c>kE-Bg8@+gKkpm= ztSR#^gAqUq|Ldh?ASHZ4&+S%=!4>$pRtS%5K-kbCmJ|3)LmF(oL5Ki!B5d@buWQNL zW`-1ireM9XlWd@JZk1%9Me;`k!Pr2`FiZjuzF=w0+7d?zSHnb)kZoB8n8r-?_WPuj zNZTJi-wZH|Q!579=JR-r@AiJmS=g*@%GcjYzX#10!Z(9CI8jBwQ6uiCNPtA!O`U zPaK^VAcoknnvU3!9YgW%;y7YMP|{<4=+T4uTNW`fh%Q*aV=16gV{pYvIRZmClJkn& z?NZ7S;t<1jJTH|OjvUdHw6^423(eoa1;Z3$?K>;@*pbmu3MFZ`t;i6VfQJBP0OmsT zNQ$N~WgJObnPnMxdUTQK{$X^*SSX~n+z8E1tt>krV`lM+P{u5AYc{@i#O`G046+>S zEsKD<sYU}9?OhmTZ<6IVE@rG%_zr1DH7}tevRt zh)WT>h`h*HQY~y}CD}o`Akuh63*(ifDy4Hq9gQmc4nxp+rc?m24I5%`ofLIL-er$v zilnw-HOGL<*m0CpdfH3F@GS5$SHl>~4P~J)&1|W%zHc%|BlC@}FD48jMJypjS=lgH zrEghmQxS2;EKQQ4+mRkInHqBCbYPEjuv&IB9m+A`W<|UbAgt*1%;CD0UhT9>MNx)2 zVNN;|;WDt?u(=-T@r>ldycYY1Hv9oHPasv<#;3 zI-Ow~Ra^!hI98vvcu5_G!HW(APZ1}!C|$qHmOaw-LyK&KTGcaWj-#~qyvGkNQhrVS z_xHT_z3;ysc<#=Z-tjrV@C$>%;CEm4iub>eXn~y?Ps2fUH#>;+OQ|VJ!|HJJk2c=)|AC@X1fU;mz0m!n2+UfbyvuZn*J_U$S+g2P-Ng-}w61 zU-puh965UQQ4fFE*T4RaH(vLauYK!Vz%&o~u^&6{$dMnq``smI#7rpT|AM#lbiEWf zzD{6YiP4S$gprML(r3e(0{<&A7$JxyvGL5T_HJXC%DNe`PW+LX#)MXi9&M4sh`jgx z@BhUwe(_Fsy3=?N1?Rl`-R^q7`&@Rzr$0j$vn0HfEfR@4GSN=c)z4+#&|36*|Mn@@ zl&mgx>p(^vfApgt<&F%?pa6L?A4Q2mHKYsh}{ zn4wk*bg7yeMTK z*SXHn7aH{F_GALKh=CFYcUjIR`X#_LnD_#zxwHyGidbsSbfjvuRG&P3SanUF4dr?$ zV<*eoo#z+!=k!JESCU~>=4G_HgO{S*aAz1lxKFw$lh zEFT1#OI$mAMA}*ou?CiY+;b#Y)dxv(QThuYQ43d}xnu#biTGYDZ4Goqp&~PGF92Dp zKlG|<(Xbun*z&Qi`BvzpU~joO5J%Kd49ZX8txl_{oREfN7y(cft53b*+AWS(ahJ8w zQ+SplV@VtC3w}174|v#A_z(s65b2d5K>%JvPNF`-Kxj6g@5LVIIb#MSxkE8@;l^)kLre*ElvfE!j0*I?E7` z14b;L#L}jvOoOC3JO?a-fJe9hfjddGsA1_vLXi&{9wDAEWiE$CjIkL2tZZP1&3}Eu zBv+4D%d!iq&a=-2JU_9DK9Ko2uIS%r0dqQ#aJe{|&?v-8i!TnyfeI0VAP%8K2UC(n zBp~ZhAuRWcH_0$ez^N=QV7`q~F?=sZC216L{Lp3H4;d)vjuL$1}n z-KCd`ziR8PW^191Mb-)iGGd0)B>Bak|M^Cv@%bBXeCylZ#^-?d#eznm4GJ@kf$^gJ zv%mTOA8`5Qm)+~0&-~e^|N8S^$fq4Bhs;c+hYufVQN2{P+pYiWwwHYEt6#m-Z7*qx zd`qv}b9E*}ya>a{D=w9tQkzD-^ITT&g5DvPIZRUg3}e>q80kM^rGum56i=LVGvP}R z#jW7SPGO2M*})7E$qJ>ZrxeFwCpP_&kA3W}cfIR4xmD_o%U^irGe7y6U!r-IrjLwB zDm_eMIH~cLL}Zx_F8#hcQk+e)65|Y#jg>{r=su-SYd-}hLNkKoWg7(Bh&=euq0#(!x;!2 zYVZaz%Q0m}(ce&tlO!w{32YTvF?bg5LQIj;Z4#hWfp;$zdFJpTvv`;_HK7I=gQ2}( zq*`7m;bhJ#;cetX)EFAEKs&=E6)0)*9({_%MON_y5)5mFoC~3Xpkr2VaG}J~(OF@X z3)lklORTnAUMBTNLZ0-~9I2`Nu-W9(O^383MoD{^zjcZuB!=M=5>dU4tY26ZE|nt( zMfw#RvS@n__v>Vlgn7=%cP=HkNHVXZe2XI0m-DiL}k{_FLkdW{2HR!cHu z8H_3;IESz@n0id#6CVRA;a$)N3j&C2F_K4VjS7?!g!6JV$)}TtOQ{#CC>Hbp#bXhj z8>f$)$9naG+-DM*Ij>k)?n0{&8XXy~(&SkxoV}9B&1&dnT?pa;aZucO=jqS{yeu43 z@-;$NCO8;v6q#h9B?rvTHQYzRdk7MXSSD(uTlRW3>xU(eZcV#Qt5BD;OQ?})x3S7cl2r}$ zt5^rAOCdFi%nD0VKnaDVls01~2(AD$;7ws2kw?drElY1y$XH9KVxe0uE_!)fwDg$& z_+L-AKt~A;V9wA*A#j$u1)Y_WT#$&4TFfEAJS*l~gZ#u*neSi4gmtFSAhdnfrrbCYqR&2Y~deQTq`{P$$@i*^$*T+8jsZPn(9hmb!ckMGS zyX>-Fum6fyy}F-CiH#L+Mv@@5N8%1ICW$*)@#;5U_ln>Ctt+p*@(E9T!rTAq9ay*E zv9%T!9(d)IkAM8*?{~lZVy~k|kG|;nzkdH8dBB4o_`o{5ez%+r~9pfn6T*kcS*@wN`rFL<_pmhGcVgW|34$n8K1^`j0Po!3OrpsJa+N zF48O=4{>`XUI)1+9Bg)#LAV~Eh$Hcqzx+$nY{k?Q^7KqF3_=yFm<Yx+9mO0{TKrw!*mPxM}2{)0lmew(w3Jj`Y(}sv-vNUB4omd?o;uEm+WLgYt zFB|5UqXrdy_%kI_8ON>HRM%1|q$sSY#10z>%lElrB-C>Yql@_n^605YKrcT|=`9Eu z6ZaAzOT-2=qDyNc-S1kA8G(i|KnV~t>uCo}DD!llDYKMn^wdg-m|Nk>Zz-`~2>o1| z43nS(prG=BmXaJRXJL*TkAh{u1I`IdPyyt=_HdkYKEUW+`-g3jZ zk=#*SV|Oqy$hOl7beXu-Vk%17k+R!>V|Pg**07b2>vUMjD5|(P1f#a}YUmEx&dO@C zMqEfhsAgl>MpOku=0tgxiA#F#A*P7u@6!a2MHu=+zZ^DE%GxnD=&MMc0rNU()SaMP z&Poh6EXWu_n0Et8=?g(qGX#Y(yu8GIRhY;CxMX2dQkYskxa(9p9SYse$5QfHYZy_T zVai+la13-KwSiP2D#{_kmQ>?`04U}1(lBj<5mWTk@nb{PKaRy%t*qD(`InAsvCN7r z&<;|`S2n4!~!5cZsgEnBz$#=CFpW_nba`03-(+nnXjRky${69 zdXuh3QD9-fi1XGUa2xwXKG7D|m+LApS%4vqiF^3bXx(y34q~V_!Z%b+a|d) zL$B(Z$lXwHurPu56C#Td#dWM2hEhx|C7lzNyGOTM8VpLpR0J4pw;OI;t&(^+J22mw z8KTSyF$Zhnq)VUB%!3^wUzNpfiuoFx4vUfxtp}y{N4j|saZ2$E-}}O1EK~+c!sP?Z zGFNXHNocYZB_@(!J7Qy)>J5jIu$+Yn429;Bn!(Uf3yVZ~5nB)huRz*$DFPr3_bkPD zP{J_v%T#lr9xGN+Y9e%rrG%bkB?d!o3YN8oR31=jmIN#oAHhd$wHX7JM5Gh-MeL&5 z3np|$z-Ua8GD%{A9T){xbpP29r$^s|h1QFQu(BD)o=ib{glVb8Lt%_@B4h($?5eok zCeMR{Z%pM_AqGY5HiIYrw z)@m`YMrDVXYZ@2WR62WzlsJr+@Qv8)p-VH>U$7)^tdFj5I^WlkO4P=vZpz!GLXi-Qw0I1m zB$XiqQ6JIWPAQ|7oN!#8pcA}S>sjc?`UqT%h$az!;Ueqxz|iK*AFzx~!;y+2Y4|~z zqmUxi(mU5nZ3U@S!qDU>Sy+%3>aM`oq%O_~s&f%}7+wfsFpRJ^j^r!=PiUX4 z&@*wgveOA&IT-72)^I?*vMdUTgCHRvg1Ux~QNfszu!2PtfKNi%Sfhb&EHycLiF8SI zqNT>^A(4rY4oz4cQ;0(#)Q2DiK{qmW67? zi;kXu=+L1LfB0{&d()d}+k0J3SLT(m@GUUej3t949u@Ee-q)Mn_@=ww<*rv;@uR=} z{9j*QT7Jlbek_>tSH0%7-~7&Z{?iMdUlhexzVXdQv$53aUjKI=dFQ*|-C0?|n$9|f zcH2uV&B;1AIT3?bl;eqti1npCoEHQXQ{_tT;AdaPzC+N+K zQdtbkiqYaIfB_^CNUvjSu`tTWGf=_VAWXqT=y9}AIm1v`h=W#AKTNV-GN+ZSMiDSy|qDuVk6cxDd)Poo?EeaFJj~1a+(Bh64oIgy%@JZrSc6I+W_E z9qeKS+k%>%N6U^e4I*Q9VHWc3W_>~0#fb0IVt7FUH>@YCrQfw6>eZ;U8!yGDLp)k~ z|I8xoJhZCM@*7I|Nf-$}LdyjxXk5U%ai^YYu$-g(m)P$u-QAGZ)G!x+Fhvk{M%F=^ z)DH(!6=;YtTGnE3**<@Dl>{+OQ_{zbG}rb5NVPx?rwLS4lvZ>B`D$WNNR|HqZNZI; zyZ4!cUtu&FW)`F-Q&%DKS*bk=!leKr4Vu&Lw3F77Y-q-Z6*wV!KN=Y~N{lW?G{1mB zn7$_xi`z2bJei2&6!XedmC>97_#ZQ%7z{W|g$rg5B@@J!m4C&=m5ouCP&o~7r_?l& z))zEMF4CS$mL;9}WWz?b#%L(ibFpU75*`Lm*+!Ny)c@_E74&4>S)gUnE^U{X7XbcB zlv6jhRoI0@*lpuwg%wMdyKq+9{T-|hOW_Jm1s0n}7EqF%5zRx49>@_a*Ha$mRC`K_ zs+v0dEMqmJKVfS{{#Erth0T2&**C?4v&8O_U@6qZQa?$2s?$TIva}c~HwU*OrbBXI zFG-_r4G3xWII;nGk2DEFAyi=Nn8JaIh51WI#`2Z1(k2GIQb5vJRLB#18kS~SjBl#> zpc$kL#7C%8fCEk857TI&?E&D@HgF*^duGRWg&Q_D_YfO~}o zz>pxk=c_^KdL-|JQr1iU2&UWE>DIzG*zMJ}%wPXi!+QnFv(aKpRb z_r47?vpJS^<@^5O^g|9h=$L0d^X>0==LP4V|EgEN>ZB7-JVv>N{qxgnt{FotFL5{% z0+cI4f^$+!(uOpv*MmJYGi#^g)z@8X3CbY{9;hi|@vr~-Z)cu)=8d=i`h%yRHak1} zgDb9l%SS$D$L?e_TD<-C7&I;zCT4|n^}uf1>VG6YFivciG-&C9Viq>YHm_BzmDWJK zwhQc_)S1#=11d|2EPq605kU(p?_o1<30CwsZ7}=a@@oJ53odx>)~yd0ZF}u2U;f^I z_&_D`z32gQK4l*!x@Gm8tqTt=-}OViQ>5NUn?=NHZrVa16lWw(GO7(3K5Nl51ANciL$3U-1nX{)g$6Nra*ZGlNz zow0hK7Fg{dg3AfP&nZZNv5G$Op7t9F0ha1nU1~|HsOh!ZU}3%VSnHkq|Jy-HdNT}P zq+yCE9$DLl1fdHN>Ftfm$AsWyH%xuQ58>b-B5M>ks)7nj8(lnrTaYCzIf`c0Qp6&^ zE8Qx^SEm}C-lg}1rWy>L?1%gYA+|{RON`>|aA{?hCyCaN843rMt=jP@mpBrz49Qee zj@U)ohDoGINME<&P)2PmgZ9?ob0rd>`j4@c)>f+GQaV7)n-DT`{V1Ljhhrq^=+u>S z?1-=vmQ^lo5>2lZ4hmo*2&hmz;=Py2Y10B{1}v`B__LM?p9|jCj>(!%GfA6N(rWkl zdNE;Qo$&kAP81Ouj+xBIIheB;9D7+!;Rlcz@xb}{nsi5(2SC>15Z=F2#~?$#=yug3 z9XPp>1Z`$kr;jp1`_3_DA5j|=WHdLI<+=nTb?tauSc$h~xKv`ixIL@rfs%c*6BJ-uRg_&Uo{i-}2q>|HoruPzu)|G~UPSXo@Ow6)vH4m{Raob;orUE zUFThVksbE0`=dWR{29-*un5<2YGG0hC*8Y}>>5rxQv zECsahv!o%TVNCr7XAtx{%>W=H^rrz`qF<8R&aKCV_zv_@61pQj@+yXgZe(a_O-^S8 zkF%&AkMrRGQ=TpeU%507IMeKR&CbPxK5Ap2N(B(n%~nY71D1F2xW8F;pREV1k8^;x zwh-rLEpbUk<6<-@8Ro~NR_N))(ehF$JweJi3-+$iy1HTqkw2MO4OD0ZgF!7?U#|Ip zB^DfgIea4fPKT}3J|mOBG5M0MH`xnB0Cy(vlRG#TB_dN%IRi?l?dv7HeF3wkRCkK$LS!ODge~v1(0Q8u7 zA>j?#&BBKjM5A%i7DT$#n7%iYY)C-a+v1TDadLwgqQp zCA@02#}WCErKH`ko7!vH*)qxns6oO@bLd*Wl(woYre>8py)rBU&aK{t&r>V6($xTn zyPeQzsqICs89msuqlU6_**0WBxdW38e(9)ksF#H|%J5QZ^Rx$IxoBeh+ro>F5jFf? zu}L*6LAK?e3imdODk%WT^x^3JFRt86(nCq=!n z<7wzlr#WKqfb1|OwhYgu?i~rlJl>L|5giLDH&9Q&#G7JyW!tr*TE}ue+rv8hgeg~r zEd|Efl{0{*=1tXt!U03jIAH`+AxSh-DF*OpT>Ljit5H!eXZ3X2h5a7er5!qC@HXSv z-lcEjs+igd$P`Jm1*eP=iIJBr8#Hw$?7bv3obMgFqDt{VYz?<0m%_viIJN}VFzsX3 z9(>&Yiz_bw#6NxN4X^vXSG?@Ee)yB0{Nk2dpMBhMb~iu2=9+7-z3v%Lf7*VJ-}im* zc>86SU;c?teDe0&ZhOgZ{pQPF`qE7K?v+@0Bm#f4}`uSh?pO%WwAI z|4I8i?r~3h${`nAa>)}9Ipk$8ILZF%3t#&3; zP_8_Zx_jN7p|@0O87g&fA&pwkr|_Ycm263St!7x0O{I7Jh%{qf$Y`=YfMFxq3YXAu zf-hjW{?~V`i?(g6D!Xyx##jC3OFr|NGZH<|S`Dtcf~#!D&hcBfZdaV`>~qdZ@sVgX zlR{iOT!# zEmv39nagV)!6UqlG+?U&&uT(YR6uGtS#kS6t;;AOm?s zpinmzJ&{+FK!@(-Lc1V9CjtRZ0uvzBcsrw!Eo83!)fmltXQ7kXZ`gox?r2y^%^gQT z`=xeP^jAG?WzpL?zq(RO+z6Z;VDM?J%E3ZAV+Ap%;;E~;trQhIcZT~=2s$pA9K%UZ!@T9y`5`+OJXr=Xpn zNJ&qn70>tTi*0c*xEGbi-S7&f&X=@G!hRD_8z9%5yzPB0g2>1J7`IMRKD8yuzG_GtG|SxbaCyJDEqxApa1_PvC4Hr_{uSc%!kDyHiqR z3(XUlp#|DDL9Fi}hvy)YGc{yBl{r-XFmH$dt`X0#Z+D&Vpz#fng@9CQWDo8-Sel|R ztRa05h~sFe{)e#TmUQR%uNLm6(4yY8uaqO1f^rCEQMbbpxk?9B`baH0PPQ?`Ph+OD zFfZ6_UO{qWa3^<$5(oAKs0vg`KkC$Gq$geh@Wu=?Qx%R2s1ykzd45_l(U&b>Ae{%5 zgyfWN0fR}#Nd;8zyXX&}r)&T&Gz$evfWiKFqy8z7&c!>gyhLvUSmlT4)-h4^*22Au){w1w!eGs@msIC_0}T}eaZ|( z<*UE+<$s9t<~$fp=0AsvaYvCQ!{o;@a=l>*w?SV>S|lVA(`V8j+E9& zQ`J_!_t;fSU>yMSwvQKt1=@J?=GJN}@At!l1gqBM${ws@^^hWREjw8o#;^ZG?OH7r z+`;`1Y5(BjsyEA#G918&EW{U;*1k)k0c1|F(9@W}c|D44c6m~j^pQt_P`U^*Z2|k7 z#ob@2h5i;Kh3y>6Vh~kz|02@zGLZmeFe-E^st;vJPiA|{XHE^ZxYxr#m>eQgca&$y z(z5beo#Pn%;xwuU43WLE8Vm|o>2-gum1Tw|sYLMFZ8<{4_=HFs(>+AXDVa*szU3r&&weuwHb?6=|=WYZoEia#&D_wHJ(^N$NDh1+clib9} z16qET3(!@2ZQ+xLWKLWyLQg|w6=qht0D5r_1JZd?$v8Ha(nLNU$7K%G-BQeUhfgil z>VY9KvEP*rN0NTAnvMQWv$-DZ+qY!}DUBJ@Q}q=!O4lCD^nSuGnFcph}A( z_UeS0MG%-sff-LbP}viAOt4gdXh$tquGt!)0%Wgkgupzwft@ z%0+^)w`47(LggLNn4GaBA8a(}teCd!yWjUIe5C3x>2>+T7~x9_eGnlqcfciStw&N& zrLob&w1UjE$StIZiix5OR(X?2E*w&-l$P}hN~1#tuzC;eZ3%0 zXvI?Hgp2DvUVF3)8wlr?`%e&i6}hABNEh&NIdmJ+qp}VgHWmT`ko;OKnKEUsM+0h? z(5NtBU}2}E9TxUm)ZeS+)`7uI4COmg7M0A+0|M}Y{giXT1+RD%vvVXX&HxuBp(=CV zVpgSrlGd}YCD~HXy1EH)89FY~+6jJNe&s;z04i#>n4%NV?KN4l`Z7Q~ZQTxr?%qd6 z>Ec}u&tz0j5?qB*kW7nx6cr3lDRFQ2EKSM@{iGOPU~F%sknAj@POm9#^V{*QKhz>H z+x_;(qmO**)9-xCo1b^$i6@+J0!nV@eCtV7e8}LF?sW$Pkrq^Pma4`G?{$$oUeW7yBA+^^)-0@KLZ-VrKN0Me-lL0j8vV!B5f5!tD_y!;61N#%Ov%tk3S zT28;>q;n3A&_8Ho*|EY(*d_%*duIAyc-vU;tX$uPhben%fA1w|JA0e|e(rg%d+ozS z+p226$3OnCgATs*^2<~2h_podEvwg`dg>#IvyqTVVG}XH(RkaVixbw?34H1LVI&@< zI3X2ymeKSkr(64+ugW-w}X*ZjgmOaUKmVjLc( z663~#(Sr>A*0lJYkZ9N1nVs&wS8~U#+_FS{{0M;3k5l(7efYX^oHb{USGt}eC}ly@ zR{nfkswHsJ7pMfJEnTfKW!K1NZ(7OOPW_q|_6sQ_gJRH!IM)UjY)L18+$@C@&HxuJ z|H74HIdCL~Yp1S=Fogys$-)M)8Bn1GD9Xu0qF;~3w%+LC0A4IDG-9-5ry1h2?!ZUk z8@0PY3tXfQaW>1wT8Ua{x&3yF+-=wiB798&uAw^L0=`Q1TiC~v7QmiOGduG&C{$3W zN~agevrxE`D&&(&Lkil}c2#x_mcERJ+1x_VD2EWkI6GzT%ufdTSoS0=qsqFtw2HQ! zT6!@%OSRzr$RXxOc5G%dGmK_Zp*bPSH56YaO>&2BT79sBJB46C>)wB2WduOk+en-z zv$K}LiD9so0AuLWL!hrH*72#8qINzQJdi;LDQ}ewe_dsxmLe4AfYfGd&C_9H2*sF` z(s7a4cdM0^jWkDWrGO=iWL>0afK3t0wgc9xVgVY#7)bT1lq4=KfH`o}Xx2e@8aMhB z{~fM0sh8|z+?oJ}KzY9lvN0^O*{hNbv>(v1HU{j|JkJtp`&fZL8mzh$4Ch*JhG?|9 zES!7giW+LJPEgabqrsk?3S0;HAgUA7vB00gQg_)uGQ1>yw}`INZesKff3H)d;*~iG zS^Dnau#g~QSL5u8pGY30%GYr7GHGtQ$t}4cZk(Vjb2U-L2V>A}i)k_RI?rAh{Cy&p4H*=!o#0F`Y4DBr8Tbc>{SG zwZu+JsmHpxBUOdF4Lh5_AaP}Mvw>rs1wj@$0!n9<0zCI1Z+E871r0p)oPiKZ z3%rbdqgzsC%LdmZG9=(^7P=%oe#wt7`R6Zu@%8`nwP})EcKH<_{nV#mOU*A>*=@If z#hrKk*VdaI0kU1?KBf#nA4#Z9A&R_# z7K=nCIDGA>9gj<|_?_?8(m*E;+oJMA{a-l);|5n1j!vaXCI}uqC)$2BNnxjx^jE*T zUD37z(Y9Cr?(dQzp)mqQ^Rc__`h+JuVLRe%i;M3*{rwgoNvtWgGw-ggPk@*!0f)?E z8CGw%gR;E1XrGX_GIDD$iFx6kbM~>l8PHUsz;NRhV8ob>SLr;V6g;q_;8AO0vj1<{ z$peOdYmE~xl()@Js`Z{qU2oVD-FDM@;|F-$nuL5kBo!zn{sgBI+CjHqoM+cRL1jB- zK|)}WtrD45QRE8tP=ZmHr@oKI!mVqh3)vNbOF^kH|T5wTAMTm`} zT3NDiAnzL*!iDGyV0!20CC5XJSK4zZar}rkY(&5s2J*y8&0J0Qv@-`q)U{X!6F*&B zb93dwLdo%1qK7MZO%>Yl{057ov=$^P5euT=d#AD#w%txFnZtl^1dyONYrhe3YKdsq zaxkEqC58LkYb_W~-J)@13$-7E8f!P90X5mQ5`;FWN#lNG>Fm6mjT`Y&%AxK|DQFkL zMW6x_h}l*-Zu>{6*a$NIYza&mJ3f^Tt7WSQ3|6u0GTR2XoYE>%h>Fd{R7xmAqaYe5 zt{rFV2ep++Bq^8L*1Q#sS!TIk_-@Qt*(H% zRL;Qbw!^TPQQu)8t>>^N_g+6p2QEBd(!4Hx8^Sgn7kyvq7MkVCO6)C6dz$37Ba|o| zIt;%iE1QOAO=t;7$NtQ*F=L&d3LrLAPQDM&OWHP0A9{q?uX% zb9s@T2bOih`h&)`GBPV94e2t>d_$TR^7jJGpa@zi+5yC~OKr{qR3;hCO54;ef&nB8 z5X+*^Fw9gER;_tMs$XgsEP2*C)(lzvD^BhHY7)6DTj9Jx(t!S|5BxyY*flVyvgc%F zL7CMJ$dKjOWq>k;2qy|$EC3?C**5JTDHCTbCP6bT+#>QlaO|$YB~_3-8XalZ0F8ld zmhDy|C$rSktccRe8wNqmr=Wg@Q!E?|2x`p5^vHXVVygk;PUE>b%d6@^pFXhduEBsL z($8Nh<^?Ix2hniEaTrB&bL5mFha=x&>4M9R=zdFSJ_ILfHd?wCM8ODaKY);~-63{n zCb8lGy(xh-rSyubX=o-IiEP<{2)OgGo!S;lRFqILGmEXW*%|dwl+!R>MkawnD(N+C zfVMo%)sYV9$@Ul+>l(?(!3!(O3gQEnO}wpIHpuEKwK&{q4oP>Z-J=I%N1j&5z01p$ zrgf{6@v_+3mKH;6?=YygQwV9bT8qT@S}7G#`6pPI!K6*_WR`1WNB3Z*@9r?sop;|8 zi*CTk&Cyb5P$W_;WW*+Pa9s;z9i$_<{RRpWRYN`Y*lkXoXAx_XNC_+AfSoBw^6IMve*>nHg=?*134L@72qct0E=$(UGF>nMGqHkE6bygIqGry?0xgix1_j2 zw(`mNZ~o@5w=d52t#1JiKy_bFLu#Je+FyXL^rYN@Dcj3X(7aX(TPnMy(6XeKH2^FC zL=L=DaNLpOlhVws%Y(F-!+lHj!h94OxrztdchvQ^LwBD*uNk+wp7NTZnEnKQp=qM< z*RylA1ajyv;#w!PoB&Uy8Xf>}>_v1i=i_AS_k9qPbh}j83Hmx=G%Rxsj%R06nLl{> zUiVi~G*RW|#4+*=i_qBQYRuQte3pkx3#X89Gu?=p8HmmPsI5L0dXK+a=-P=9oSDMN zj9xN*O$%)O0lnD{fZSSba&-4wZGkHh8li=-upvmfyLQiT+tH3|&dC4}!ndSnrqfKB z?2B@VSB2R_qM8nFQH(|cyP)p^*m>(f>H6?TQxVU~jDg&kI4W@l%KZaULyjIm4XMe9jW_f zwJn}puu*)^mzRJf+FI3dAv8jfNsWd%K%Q4{?lNQyp+_VzIydbQ$umn%&alk5cr6m9AiAH z6w7&i4iu%Bpv~w!CTu6w7zBSLyo<7R>^uNE*qTEwi`flLik7S~tY8&mCCKf7L*Mo@ zEaEXXekjWcOoOBwdO=fLXWsjDxRX7!ZYMA>p41}pRmGGYI4tDtIo6~k=CRwB^X9NZ zuhc1&o_|- z0x1@|A4&$+nD}j#nQKniWhWACY^rl-=y}wJupsfhnH}tb?6cRSU;SIZnF@RK^n(w6 z*-0mT{wrVMg73d?!{#jqKk135zWP;`)h_E|?Bys&vV9zAxC zJwEf6|MQ76zi`=Qm-l_NT34sM@C8R7ad<-o`u*2mcGXq)-*b=mnGzq7Bs4kd48_vg zjlrZ7T0Pi1;sK*9rO7xoGPEK}16XldihadSe*vu|WS24fC?7cT#A8owr_9XEJUrmv zcmMt9A6mLrhzQnUn4NUm8YY&SK+`HoNRP|yh_+F66t8~y%ir|Yw{gZzCL1PH;6gkmYrL!eFPkW9jve9Q^YnU+N#@-YejP*`%HI)2QKb|-W&V&hqnrey8813X z^T|XNRu}m)dyrN=4hFeSA(+8!LHedshpKqN60eJ5=LKF=h{Cm!c@Z|{^H+`F0VO1^ zR!`!45HvT%BHP`X$dEcvdn97Z;8+Ms`(30ODzr#edmsTwfS^7k7FjueCgVD%=|~=9 zZx*Yd(zz!=hIv-vBY4_w;Y#gv3O)AFX7Wp4Sui*|pjgdz8MAYoQ5pfWhU6O%ce-IV zIH9+m475}D2Z?P#siM?*MQC(0YS=azV z#o-Dq7pPSe#iF6mFv{~F9Tn`&Ry3FB{6Q{OFd8m1>vbzRD%Wm$MI=q1D*3Z)?SpqzWa%1Tv)}grT4Y6$V>xY<3V6FB%zz zPP>kKY2=d~E56~3g%ZUJ%inG3w2-?f@?1bX2dUIv-Bz|{y6ARTD79T}wV*|j)SE+i zRTq{qkias|0QZ1s7-F54!BujyR*qE1qhTRxS?qqlx==2$*R>-m8jeU}QyTs#GTQ3l zqe6_qqjE79DY4H~M084(+t{KF8pJbF@=3}pumwb4-1I0<#TF?<%1>OZzSM~jYplb< zg~?(iRm2QZ&bqY(6|$COk1hU9Cyk0mos_odgVG#H%{D&i!nhz}X2}f@Ji(xxrEL2! zPB1Z#8VDo$_qHj=#*Ey^d;Z>kN>!9 zY3bNwj(O=xC++|EeeL((dgq-t-*M+No_xTDcKiI7zS>sWU^Ken=3CmW)_(i!bNZX# zbm^5>e(~(HzyBXU*m2XQ*Sz8t_9D*u>Q@hV(v$YxXP-ZP{pw}>ko!#Se24|+W$}p51s`=hvS@$W2R?A}3r^Cgw%(R+e9FlupLY7`ORKAP zNpJjvH*8m&?O)D1YiTgBzw&D(%?)KEd?FaBC;gF+?FFoPm^o!3%Wqu z5Q-K1Pe{MRlsMOMn^_t*g)Dn;S|~wr#yD06xMkbRPQrtMCfkm9wn3lpv-HzQO!S9_ z(NoK6XWH+FwSQu1tg)}Bij?Z3z!?sW;2Q*Ei{-PkjrgPdSmPnO95q!lSY`JDk2!eGm@bL{}Wh;%^ zEqk^F*ml|#j2o;-u-}MqWy(mJct4OPo-&O7s)S!jG%a$MI106@(IRF#q8TD{Kt7Q& z=*JR|6oj4!WBP&0>mqT~t(`5Ff2gBIz_tnsxfhLr>{yn7f~0`v)WyNef)^?fJ;{Vr z-3W6QerM+KOkQ2(2Q~O3aE?di(jt;SSynMu&6zHhBPnFg#Fo2=+$yH&a4?bBsX?N#zS#>)8lym$S2U`=qSV zEW_26tT&Up<>%UW3c+SI!^9h?k$Vz#dtq*lPKH&sF?k^^d7AMPxt9p^rjC9&S&53F zctA8!?EIWgMeMQwnabup%d;&HGRTe|Ai+FF{FYoV405laKrnh9;aeL2@0I zfu&u9^QcsWlfrc!W8sc^P-0IYm89MvR4{5H3A#1CC|nHP28=e z)haFR82fLFabCyU36%g!WzeGTx)Ko@Kaq@rnE|N3v3B$G)b?O`=!0Cpq| z)}&TLvW}H(*>5T2Sr}GUIHd3^Pu&=(_W7KBX2D39u$Sj(9*0=|Sg~pdnwiLTmyHx& z%S))q6wi01$z*BvU}51-o7sBGdo0$f1eb(hs)B1SJ=ey5%mT?|-0(u<;6;P$x)Lli z>e@mjV<@TZ;9a-7j*Ta-D5b*u&u-IR7A?U%&GXWu2=kq|A)<7IsZG`7j65~KmOzY^VYw&|2*Y|FWh#%(}=TW*{47A8H6i*fGvk=U|V^y4fZso zLci6nR#I($B!vS`5~~M^gir0{1^HdrPG@okf??pYHvm&GQyc)85Sg}p^|j&W*VT?v z=gCms@t~~ah{e>f$GfsDKPg#?T4o?;CEGrP4V6qJTzqX=UPZ5!?2Y=ZMD9r}tkAdm2jgEwA0bhYPMKfurb{VUZYAUy z$Og-Puw%1?11~TNV9TW=(_miowEF++&O0tq^3FLNAgU}mYUn;Sur-Pa{d`;V@mB_+O zM?f?h3vN=x!eFqv&@CfE*$0yR4hN~!TqBWJXh~RBH=PtY%?tM6+*~CEPJVVYa^85- zP9-ZEX~vXVxtl@`ol3z8!HH6jAhhffE#BJ+m31UBF5@N8@>4NRFsZMX7MX59hl!Gw zC0vtuvML0qZ3fB7+iL6foMm3Ft`Ilo=9wA00jd3COAuk%khncyn2jWlSgVwgn{n;Z zZ6RMF{lt0{5qC@5YmqqoO$$+#&~I=GmT;g!^dBOe1$CH^(jitFfpu+(+>4zEC9^v8 zC9#vRtu-g0hM&=qpnv|ijl-EM9Tds1&v~1~l|vERWK?cm6Ep~sTwA4?N1D}vxTKw_1!^a%bYMwLGP+qbPGq{q#EtvS zEa!}ssZ`<|1|JIO>5*#4inH#ourYw7sDJBz%SuXO&EPaJ0u5su58$_L=^8RimDulU z*BN~dnjaDxNe2Dk8Y+=QcU>ICPDwjeh2eE|Cc2B2kLlIT(nFRffYia{^Bl{hDRL14 z)X?Sa>6Fwgb#7#sjAPgE&H&HC9n;7InF{(J!tPL*AP}6vLk8($!4t7XM^Z<53bg>@$ye z-qx+h9etFC(pzu2#eU+V|NPHyp8xIV9{23m{?2b-{qt*Xzx7s20i}l>mBJ@hE{s4v zhu55KnS{7An46n>$dqTl{r3CDdEc%b%N7`lW3bR4)^7A(%lxU8kphG1sn%p6k*tt` z%XG&bcO0tTeIVF}aLu*X0(DoV#iq8!X<^)830oxB!7M?zO!04UN_xwk0@$2P+3u^2>(_)C~=pIR>`DPU9pk9>cGswvZ8JmXn!g`i!9|S@Ki&h_<-(h+MMU8^o~d`W@xB1 z!>=(4@if})mCnw3zTghHq?lwaG@n>1^2%+r)GanyptS3EReM^ueSG?&Mz>*iQ^_mQ5|bH z5-W`hYyCd^HXMI6W(}J4JL!)G6*fc6d`TsH40bE;{*6Z&jRX6UH58g11$K1EGF`E9 z%Imghr9>)NvS>MqC5Tf_*vS4*h5ZG@^eTpKp znBfX2lS$6mkw%T0SEE46AVyxqjS9P9wzZHJ_Tm$T4Nr0GUJ5%9p^}diml<#qSW&A4 zsP6k+$)B(-LX8rofowh2N4Q{PB} zohKMs#9oT?jdLBxT`X*Tg6QPAx(zQeYB^n=gsD*(^3hTd zbBBgdCC|DNy(7!lp~+y;B1BsYucZl1Khk2MYS8eoml(MPOjfDKW;Hwjiy(hpiesu+ zbdxNb0ckHdq3?LR;1*d|R3rf0hHzUVDgFgTTrfEH<73!r%!93Th?B=3aDYX#>wbCN zYfe3N%a$#d{Oqa^eeui3AARJjPdUX>mUYkGx4!=a7his*ELd@zrditQ-g)o6ci(wu zK-#3%0e znpeH@gCF|v&b#iqH0a-Y$DI_WQX38qHU^2T(M^%xb=O_H?6S*4FesL?NSrOH9Y88Y z+O*qN1|L9YO9MtdT(*wO8c9QlM&>^I?o&NPSwy{!`|iCLA6LhN>J(Nlos$Sau|x1I z?De|*(z3eomRr7a;e|&We)xk#+p22grVXdO@CDB~?zruXv;EsSNt!rYL6}^L97=*{ zO*AhwvS^?(RTxC^_O}QllIa7zKG{(o>;*{2r2t*9Fg z83j=*LItQ)NZ1LaPDUEsk;|?@hQs3V_6p|8@_3qv;(^SG^0`4j_J`(mT8;j-Wu+v_ zW3jcR6w=75a>`Ab(Gnewf@Nbxv+eN?vY$M8B>9))nYmcB!Qf_aQW*h&wXgwHN-;$m zAK}fklmeEe5ojMvV-RkKSlPi&b$JBxofw$3yuz`PNz_8r@S<)9EqVDevTU$c#?928 zlEphqXo`gmK`MC)+L@hcq@kk`A2_DarDyEW>4~LrRod&8K8(&hQ>iRHO-1;y6i_o3 z*`Q9#Aph;4sWI`z4INYLR9$b~H$XK7LhFXf4e-ex37wS=%TI@s7V{*eJt~c&Y&<$@ z{F#$XGu*mf6ZT@G$!bG_vo24v+P9Re%<*k*D#coZh!p-oGx?QSEE$QL>!gXpKrIEK zl(aZiIh>4@iEsmgs3jT@$Yivt3cOUUqJ&ykvZ8=PR#zFZSpwHz1t=nqXj#dM{(`Vg zJ8|11OUuylDyx+hHf!xpF%nGz?TI!Qx^w926k|CNWG-^RvrF5F_vG!GN_snR^BhSe zZl}^bJWi$J!W#|l;B4oEt%jAQ%BN)l;xU4i;8J40ZJg(-A#5vJR$DRl8`6uG{)!z= zl{^9>&q7^8eL|D75|xAGNl7$&xEMR9uaukul?rw_16G4NGxi6Bi2~f}IT$~v_>cGB?8oD|AXL%@_|G<2nB zsg6u#@yx zKsNLfB3tv*{g~-t5L~#`_1PsQdtH;!b~@B#oLC*jySy4YT1u`@B80>?*~7$xVT8CUDPM% zF0#M!;*LA+I7k%bZNy%yefHTW5;7q8L511pn4Ct5QsnqrArqsbXh5cx){~mI^OdD% zKJUc!xy*X|WHcHr4~A`9Y4lS82}&wVj9mXV88+3Dk#GqIO9j4q&ex7U>Zpf^w%JYn z;qU*!mMxnf0*_53&i1vheGTstnLjI>0~*6~ZX4DN9dkP+kaMioh`ifNQPybll;(vU zSy(`qlD~}H`-Xfy#nq_HWAz#O6L=|k1?MVot%e`tlffMEu+Zc9^iS#I&7mi|~*J}aZ$~@d>g$dIT7Oan;IYH)PjyKO{ zW?dDcVF)>Rxzh4m+oTk1b_NbdB6aF3_PS+auPQ0w7Z>Q>+6v^H_okPHV5!Vm7~|tt zR~hcuyRukNi5VjkBKd@qm&BH)U}W7!KEK^|r8IPaWTB9Z$3?%-DT6MB{nkF7ld)`W zq{OC3OnD)If}0jjrVNTY81YmV98ovoiMSgd#zmtcQ+&%*BtW7_%s-aI2zp;-?xbM5 z*HWCU)v|4FIhy^a!iL>Xt;iH4)P|p*z$g&mkXu!2SIz%|PpG_PmmoC4%%!UhR$`Wl zREcu4)eU(rwN{#wk?=t>)f~n7G|^gzwV#SMED!66W)1O#4sb&;w9|)EjQOr?&*8lA z+N`AL^n%dWcxjF&e#=bq%0kG&o;sF;;7+C(g5Y&bwc!{Sw>fktWI@Of`LK=W4R&?5 zP+r6aOH&WKagpH3EsC5DiIRQ6hB!Cbz?Rr)4y94L@Yqu0sn<2MtA_qiifP58?l$bI zM*cZg2e3`c5pH&*Q@ioIm4kU2946Bk8i;vbYa0+T;;9c@X>#!B;yPo}3Z&Zw1Qw~vC~v{L$&NY)zEm8|<1 z7$-43e5=wTKDH8{ypZX<8WLb>Bd5vOtBGUF58nOPf3aBA2byYq2 zfCIKo9sI3df78tkm)4!I1YL)IRh63ZM3r)#Acx!a=XTCH=e+KJ{_ft7ecVHkC_C)1 zY1X0FsxFG%8fZ4?`eOPX@$_?$UK=SVi%dvoDtL_zO(R@v!9K<*$+y3l^RoyN}=S`I9;rGhy&s)qI#l= zA(sF;Ov8cXkz@+ygN&J36=P)>%RK-I%2ip5#}rylXt#Ku7hVAP#Xjq2OwDkL0>+F@hr0DraPhIF#cI))IDR02a{)57<7p zEwL<}nIbu&SjU>J>RQbINL&Phn*G(ng77-jenGW8F~fcrV3c^x&4J3_Q`lNS0-7{= z&Rdh#3&kXOhA9InyB#kWlxvqo49W@-{Q$5msB9aw^>po|hZ zz9NhJrH8_4Myl5nQ%s)WNo$8KK|_aHbp|yD$?w$tHhGXtd$$Wwn}oobLBorj zeIOa#!~;3p$TAU+m-1AxDi(E0GhnfV=)|;W{b?M)YxXv>tNu~qPc{7#veH(7rE>Ns ztzcK}^g$9l4m(He5wXW|cOK^SR|lAfYu8T;1beOED1kOchQhv~)ESBE4_LJ<1s+J8 z$w^))_JI?=^)TC{fzur3r@9mXLCPwVo`HSqRNEtl$ti@9-PO#D&auLhrqsto{BV`k@+rS?|9#Y*Ds%y5@oHw6SqCxRdOQ&5T{ANgGF*?|5~ev5qS zB-wk3@RrGR;ua*fHyGYeg_1)Ef9kSDjO4-b&Wr(wD6aT3lMX;Npufz2XYHo?Um@r7Mq>pImzBIsg83dz1FzJ8s_G%hK;&cu_M} zlllzQt;yJ~@I|Mb@{n0cyWQ@uEMIon<+P@xp;8a&wMOpiNoRtFv!pyrhrc?RtY9)( z{oR}1)M~Z1?QPft{P86}`Np~50wUm44$W317FUV@9HW}wn+Y;&Os({g(M&A?)1#jG z%m-yW+ndH%R9;?Qe%+tEv1Lzh^Ohj6ZGHcJl+L!gByXy6v+248r>CmDv)5jGov?N5 z`mb2$Du42GpHJE?32h~k*jMuBkX{|fEN}49a5#l%i&XK@$h7aP&?<*V2C&L<7t3}0 zWMBZ=agp`JT|C{HNNAg&0URy5xp|z2X{De!7Iu0}ly)NDFSguo|5+_1Ts557uvR@o z`bbj{qa)M$0vskg?^4e%fD2n%Y$O@M z3aner7a|SBMTg-FP6&Q4en45OYI%w454oG{cpSUxS_>3NrDK`bZ5f8GilwE_?RF}2AC6^&Cy*+&OgFVt8^Wqz~jJ4}Ze46ml7s@o40LVfbYL6LUrd^C( z@Bq#GL~bT7m4m63#7Wh|U@8fT1{{5cpslyy9H`-Kf5+J7V(llE2+KCr9$ZHn$&*Q< zCYzAcMO-3RPigJ~R=6?AZz4%!F(88EcWDwxlh=(UgQSxpP4wx1O2&r`WV=yZBuueu zX!YE?9S5%bR&nozEP|2V*MaLOYq0bJsRT>HWVx)KN-5`*0+En*Taziu4r=kK43_h< zIcHtZElW$8P{i5PvH=)dg4ZxLUs(e8r&f(f7vv?pCQgvrMG|9q0#N5EBvf!5hRKu>=A@E8mjmuc>hLNn#f#zfko?|EGp%;hse9UA&YT@kD zR*FMx1Q%=>Pl-TviTMblv=km`<+Va3DWL`wrp(En&od7@bdOzkwJSRJqKi*E<8$^2 z5OAJ%;&3$j$j3i%&V?6&fU-)fi&T#-uaAA~;|K1$@1DEw{>DG}{lEO*e`R?YsT&mK zD)Pl(S2Lv3p0!%9dG)Jy+jZCLZ@lqyXaB2kPO!-=&AR%^pI&w4Pv_tB?qiQW>YjV< zdG~wX`>X4(|N1w-`S~+GGe19n_~D1g|M-zeNc&J(G1`I_kfzuE;@YvDbXvFTEehL% zuYBbz|LKg+#+HZ7GUgB4^j8|VM}xZ)_t!(a#px*i`@j9$O`A47g!*fraOG83k+XJM zF-SLAntPwzip+B4P;X@4K>tlxElM3)X?n)z&wRtFrvi)Fo^Z>y?Ba93^{rI0>!kGo ztZr~Vt$WSLj#PWOh)QnWl~Ng;RNDv1GG%ayAO=Q-BmN?JNCg){>;xv3WufiIF;?Zp z8h4p&g^r$3J5q{Zl3DxF?1Do|mm1e&F?}kh7J9vFo5lA2+?++yWs zx0QC1Qn8bgKOWz&V^)b zro@@;kS$KsK>YY`4@gr89)3gY6VgWR(Xvzk_rWIjce(eqemHe9(Z(N^y~9 z@L(8jzqOXcHrbV24{_I%IBy*HDgm@5(2!F$s2Px|GeHB`4qiJ3>{wo1AvUXhf&_pi zA2M36WKEBEm}R7LStkz=JXvy9;=9^8EaPa#i=A%l*4#zT`7exoaPXh_l6F0VSk%_2u+hl!J6c#%QhizH-7h(f>@X;vN_y(W7W)q>0%=kva zwMxF!mZ-{^0eHNN49<#CCnpT6P&Ui7Qp`@covYwcByK zWjSAP)eL*`9n0Y|7ir{LkU_63*RS0PveDwJcV6uEi8oG1!!p@5qCthbdKfUQTo7`nDEjo>T~4VDE-Zdu56FMF!=acRA?S zl5S(gbZF(({Z(#2sB(+FmHS^f{?!)KctkTw)M9Q!@N#!kWChtxI}P%_-E$@PEK;CE7hR2SOq|1G+?@%qWS=eRz*fFi3Jcjp$P-AP}Y^Mp>kfC zD{bIV+9hR4ByH+iLzQF?EM>#UP3gOgWg~f86U&1uu&FWQ<)bW2xpBLILi2U^Sa+!$ zhDQk|QG&L(2rM}S7G=X&4QdxDkF~X$98NX2x{;ddr77ETZjJ^IR_2mp5&$NQCh<&{ z&MhNC@eT@&jV-Uur$xW-s24sbqkF`~D=QDKse>FGLC8o}$X zCpwqqh~y`f@0!vzsYb(G{DsM6a`PQ`BKkD7j4cW)%a&kSRdwgR_k8r@AOHKeyyaQP z9JBSLlg>TwJm4MF%8QqjRaaeg;DHA|$eFJ!ci(;Yx4rpIfBWXQ*j~uw zX!C$vO6?(5=9+OUTC?cQCzHoK`cW@@81*++2jwegpPg7iG8r`-E1o?1L!~F*QV@w0 z2|}`_q-v>Bi8%MUF5318O_T@3+1~#F8O05w+ee^cnPe5B+hCmTD3zeJxC)ZGw}VK( zJjC%MSQ}=ER(NPi#duAzgnKfLnOPr$GMX$wcA>u<+F84uQ?5h~;I)Mm z4+NK!p_&A^ww00qXBRY*;dp|gGkb}b8~jW^I%pCl_ep?Y}J4JG8PGrdl&9Y2Lv&s!a5TaE> z1vaRatH38}%N)c*q?Kan0Uwn`sw?OY$oW|~*)gtRm1A!^sqB-8M(`&VHbgoeNaUw^ z(!euEsBybVeXkeWL-7N*w7^ZL5iq&tufROJJ$7#n$|1qIpd+uNkvBQKI1b~X*fd$( z>V#q{Jv96Ul%!AbJ#lI-o#8h8vC&9YEW+NZZjRs+$xWO770Nu^4A=tw!@*^l6Vfp* z10WA7AS{uzt1X2`Qr&r~5+aPmVi$=-ppY&)lC_dJVzydJk!1CwRu)TqmUIW&If0f= zT3scwk>g~s4Q~m)!Y9YG4}gGW5#>B#sl5$Ii?SU#CdLjiH3sA$*sd({*=1PeyjZS1Hst}?B z0&t9dI4lepUnoPUdXB|cteR7D%8%Hq>G!K;(@Xcc#pz&4doy4)L+=H!f`8I9pl5D+JtJD-l8nQh=0#rGwNE zIcOk}H|IKb0rasFCL^)_h}(9iR}Qz_v_sgqDM;tdeKdlk>e9LSDs2_R!T$U1yK%#Y zz4qL5)55~j4?gIm=RUXHZgo4I1NVQ@eRth`!?o8&>bPd=@mT(J!;LrYvD>cu?7jD+ z_t@h{mtMNMyj*Dz&=~9~ecx@To!q}2L zd8XH!ot@ox@5k-1dGqi5_N({UZ8uw@U;E~{KfK}!`utFq)I@bp%6$6R$Lw|Jp-*`T zq{IF>=%9nzt?YY0_)+cnq;39n&4W^!-z5XGX+9cnm|r;O?6276Jp{X&rs<`ZUH-X$ z`ATN_qVV8O$hXj2N|8yTOkmC3o6}#P6e$`=<7HP~@#>eotm)c3>>nrZ{L5KqoqPVb zt@NZ}DPWVk#cF1cj-en)jb@8Q37#4%AaK?m^XNyPaQyKPAMt$rQ=gWYQ|$PsHCKCO zdm@jMPs{HYdT4BUDh*RV{TP0z#qx%NZ!M0vefE!NCQz$U$D>Kj@{l?RV_D%0!U!QY86? zO;&~hgp8FSMYvfOG1_3Qn6@IS6jC>d6#@BTkaViZFGYhe zb8jr}OXA?}*DXKf)IPRUU~~fzdy?`;6cf`;xX=TO6kat)u7ab_^J$_12)C2OjTw;r zt&~Ju{-c2bDGBx$>huWaZe6B|K{_TfD-9$J_&XxfU5SgtdTvW}Sd{x%nGMVp`(Jl{ zL4|2i30{ug z6x+#GC97K=dW(<`I}3n=_95~|vDYjXu~5kcWi45b$%K)%Jthm`y&mliK~U4)Oz9mR z5#$)?NCSWgoSi#!b3t0mK^7bG_iYel5)lX1RyS7NiB~-E(FLQc9Ej?SM3yz3t4ica zUQ(+KF+|8*=2pt7W2sBn{muq_Ws zvv`AtFJf;IEFYC|4D*iE#pOmrXUe%#T9DCF>oPn2$wGPma1D^CGOJ&}5+G%~uitK0;C#N+# zd+<}9^3J!t?IkC_(6W=2mDP5;z0*!R9rlz%cHRka?xmMqcG_w0o9OOr(@R()WsD_L z^^1S-gIE66Z*|=L^}&4Or#|(mTQ+X^_Ql@?dS*qc1rpmVwl!vEJ@AuKXdL;p!w&u8 znV(-+SlHHB*du+r)q3Z9-uug6{z@VTo-`!Y+#JJvJ3(754|tWddYP(#pMYT}X&D5O zhojNXJ8n5(|NS4HMLBuL?)Ojr{LhzH`y44acOV<(xO{OPQwy_EBa7)1a?&79Jzyj0 zUY4M24}yna3NX;K{p%w_~m*;9$D+XLoVM5m=tr~q<6 zjlU9Z2RT>EL9iLU#gcWe)QFN6EvG_QXMx|(~XFQQyFw=F>z+`H7{8V^ab?)D(1m=Z)n;ZZR%7Lm>4 zj$Qank!ok-jeL}f}0gEmCLDJJ$axisFc6r5Jw7&>T#?g zEo>}m;I_mGoit%Dx5IQ_$)j{H^g2n_!c324F4=tQ1?BqNhx16HodF_mu1C%<2{ zTm?|#c?nx=2`pH@@yPkWDH=q!{vt12=(edubLO`oY__*s7=ha3_O6K~RrVV-)I=N6 z-VKqyNBNG5JXyBn2-|75XDM({zoB6k$0=P6`=Z_N!a{9zx&3Q73P!<&=Qnf$h0>I+G!`Tb^Q&!~}Fa zi6yWZbnxAD+pV|VzqtD@J7-D4WapM!PW#A5Kl)Ff+BiSIWy_XF@44smj^Fy2NAG#} z;^IAvi$QIP{_@iO%gaX|am3z_d+c>L-*WR^cf)~hwGbd4jh=tP3BUdFm)Qb5?E@dY z{8!hz3WXJF2On_28{hEy-+%3EcHF%A{-vdJzWL45Km3oDC2ZWV!Jf%|i;F+{$)#_9 z=ezE^e^E0NS(jPFn&yIDP2FgI)25Aw9d_75#7jI!Iq<*(w?6Ax*I#?>&A=4zAu|CVZQQ$4#-&uy${7OLKSHMgG)Nc`3n1`M39^z7iZcb=ti<>Bw#}+9z?^tizOjO3Q$Mq^fy-;Tg`0onE-d9H2s)L>i zXhnI9)K0Z^LpRH4NkNn?MY2=1dU$D3>@8QUprHDF&CrxWs z#-)*0#makPL6T$Fn3rZZzg2xZ>EtwS1w3^-E_z)&#$3imT5Lk=i`hQtN1{#W-$`&c z8H;F6#Ek?O1#XPR&w6`9Sm4C_9Igk;u^%G!NHRwglT!+wShYIfZOO&a4vu_$-|o6t ze$WvbxdKgw-XJSG(Go+m4I^lo<|4C6{vnz%6~5L6t4631AVJ+uJU16_*cepws#5|j z1M0Poec9GYX2Qbw2D|{1zX>1Y^%xIM5c_F>gnygtAjNqk6;)z%(t;1Ac3j(qD z^o|Y*N}}O$sSIKT&=4tO{Yd0(RprOEkG|ZMO;Z&%fV<7xtCSK(iJeeKT|u>iEk70J z*$=te$CH*oNd2%Dlh&@E^g@7`TEcF%D;uKyJR5AIT3laVE*I}lq$0dNM-;iSEmmRf zin_Jeg0_vT+7+_b8|xM=BA3#a_qz9WBsPVGjVO6ohctNmf*yXBW~e3zl?Ka;b4s-f zY#{l%3cIb@ajVkIppN$KkwKhk4!bE`^s0p`mOW7ed*OduV!XCy_vr{ z^>?55>}TI_<4te)^FO<5aXAv6ap(EDPrUyhcH4E=b1%5?FW>t2#GpJs?4Sdm`>bcZ z;KUQ8Zk2!MyWczet6#nJCzl45m5+PuV|U+m*E^P$e({TIgR@us6!#+AB7sYO$#u^n z+P|Fn`GXER$fEML8HR^yQCQMjZn@=q-}~N=FS+ELbHAloUjB|Zzp2;jz2F5eDD=-m zFd{zOu`fRVMK8YohMSTKm4^m4p>7!}jxYrpnlV(ePFIEuRU?|IY$BOKgK|0<|I^1l zdc@&}=R(PCD;;Y!(o0|diXUHjMb<%GwAT38PtPDnXZoP|v})Yv{ePO$(&}K2eDqOA ze)#?GpU4Yv9dg_6_YXb#SgzO-L@K#r-OVpJ=tpyRS-Vw^VquJH_egt>Z=5_~zxq*o zg*E+>$mNyXrC92Fh!@LaM_*Tau9ART^SAngR1c!EmRd!nuUK}KMt5DveRbM2Ce?eW zgq@6)dAKWNCCMK@fr|;ADeFoBwab^mkE1WE!lH_#Um}nd``f57n29uhdNOkVN2nJ63oxy1~q~ze+I46S<5n56^sT2jdEq#t+1oU z*#jHJ0!)3=h;j2J#y7MOCJpRVt31}gGEL z&J2TZMi8z!t^j92Q*sz#UAoY@JTh^UGM49Z=(Li2Vt4HP4uwAa0RW~rTTOXbFYLNI zY3p!M-F;WoU-ecZ>5*P*1Fvz3R5}q!JyKogxCK`D0=}L&R^Aunf3l&_Jjbb~WFwn)-JS22jxTzu0muT{K8^7nW2(Y}gz^vjTYMdX zxQ-)tq=w*>rIT@v9WL~ZLShoN(hGXNV0vNhP?})5L?+=qw^-H&kw$=-+KE0Z@lk7{ zG{2B~4249B&r_k@Sb6>~9#}g?j{02zs&T#hjnrmRiX@3rrl6g^Kh_4m}Gm5=thd)L|XGor{XGT{cG`H_yrRxXE3*j0&~w=DT+x4rcjytt{v zO3+8y1;PEJRMN>Vln?1Svq-g2^D^#s3dixO=tStHjR3CKtQ2Id^CYpvS1@7Z4Rrs7 z{HG{kA>~%}+NpH-QAeHdoa3H-%PTA2`OhDIB>*DZ+r+&PTz78wUnt{fqg{o4@^yug}lVZ#$#eHceUo zM^%8cJH2C4RgE=r{SaDByWM{4JKy!`Gr!mluFhDxR=(>G6~mEW;9yY!aNAaxU$CRY zo4`(1BvtKp>SSK?1=7-;Z`oj~Hryg;nWX;fq!b>k&BRZ)A0i@L4X_7PzcvaXC zH^w7(AIzWdgnG}%2z$5Y{3i)pg0CD@`F~GYsRe8s2b5=PsIHJ6)y|?(53|VoO>+EUBH765c>9$-Zd8Ly~kJ zl!}fxrO0pcX^uO##K^XT54&9}R%-DbOCJ;3^)x1Gr?FT-8V;bF+Btx!7dY48e7ZvT zGu+t(6S4gZ2LvHFH1y;HMR0Xug!HJK@zA7MGjkwwC70Jc8(T=0qm0LH7tA)87R*g# z4B5;n>}Xn}t*Z=6HMkCIyDJhhvXJ?114!4f8z-;PXiei)hh&=B5m!q2 z*R_Qr^?SI0@dRe86G4Q=L*xyWmz;H@#s}jt`B}R6!kXe5X%@X|iEOu@n=VQtfl*bX(+aKgF6pQaiv)=pZm{Ex9A_9Pt=-L6&jFFDlp%m?ONI@*>=s;h!mha0&Z$fC zFrCOyMol?t;z?08viXUW)a6H*QRPXp?|Uv^9aN4*v-NO|#ER zGKHy^%k~PTZc@4ak_uBxMGL)YI4!ms5Ym=3i~0dU(m-qetFenrNSUB{Uu+>}BBk^* zYFEpxyoAc9?pQ%}PPm28sJF%EC+g8jEHxzZob=PF(a4WA?obTlj2ExOC%&;2L-0#W zmt#>3sQk?Je6Uf%71&CM;7pz8GFlG|&g-dEE;u|z@gSD)B3jow?F2%KSfky$P^&*?E??*4pQsd+-1E zJgC)!)UByol4T^zlLUAG4;Yh*O~Oo)3M7z9fTS1#1SqJ0D})L~0yrkbIK-rIa45`> z#0icK*p>}8NTy|DTVuDRR;veftB3!;_nu*|mGwUFxAwVhk*Hd#)*a40XYaMw`o8yj z2XcZ`1=GD%W{^0SNTr#eVl{l7MgQ;nKF~|E0StQtbHwY-5;YSHDb579YRt3)o=V0W zA+}4uLy5ghtib9gO~z_1LfVY`*@RKiZgPXRY$Jrk^xSif5y0x&HKk+&5>CEc>@tFL zfY5q7rPhS4^Kf$3@1Wnj|8=AC&HHdxh3(-JVTOIOLWUEG9yQjvg8yh{*=1BKXw1--}}37d&^t)LnR~; z(aFho{8xYWd;iw=PZ5JB7IUdFxlabSdSNPiq+oXVeM^e@$}4Uwzww*C>A(L={~844 zeP8$W5@9e5Qt_(ionu=Cw@6*>{D!>~7g$0EIA&z_dKjy!OUut4lC=o6#-qtQ4o-FeakI%w;v(YBtK0u@e*l4K;|LG zaxG2>QRIuM=<1Cbmk7kV49_70)oWum=V1)ZvDNQRFQ$e4@PL@cqz?7knf5NBec7?5 z?#8jgu5KH2E6Msm+LoQ)1lGjn%uFqTl6u;t%c&|;e;UHyM(lfA9AP4AV++p~#1}CI z>Ox_P&88K^&}M?-b%yl)Q>n;oU}x9VYb8?^YHU3O+bJ2>axiZ`Ko11ODjU*eoYoj> z&|ZP%+g|?w94_WK*iXhEC7yHDT!uF)kqQ+feYMvXg>N?TZhCovIhnG@BW^5+M)9FBbJYNQrTs4)X2RHlx~C zJP4;j3{*=;+T5#+MAm3(&Y9Dvu7sW=&aMza`olo-5UdReVNj@W z#7cI{)ulc?nRdGasJ>5D$Y?2sTpDD+yyLe-=0_{kU=C#m`P#WF>uAx(b95Y43-}p9 z9!BlVp|N}#grD@$+3Z*E!^-07oA1TN!9H?Gh26hv=5k>5o8<>0C2j%M0@@bGnc1(N zgud6V+nh}>6-K?QzMahnSWWWRQhB-&kKK0K4k>H~wEJJg0a*>PesjHoM7AbNs6SMY z=pY|RwSU>Dp2Hxu--Vku8&5vPGr$!#RuvgnazM9&e5vqiyXE%Vzw#Y#|GmHKKYZhZ z5B5*+si&U$o8SMpzxCIA^LyU)C0FZ%C!TonfB%R7@VEYkfBW8h?&<&c6QBI#cm37> z@n3xKgEwy8bbPe<)2-tPR+)`O3nDh4$4YF5s;YQ0aIrtK>)zva!3^cv-% zhaOTG)ED6*|Ns9P+lWR&C!5WG`5oW!KmD!0Ez30_vAdvdRNTq>Q_MOiCM`w!F<^k~ zr%Z?j3R1%)&k3p4`>Oc&e*16z6MyuN?zUT;ZFLI1`s%A+{wuzg3_VTa30@il7vtLY z*HY@o%2Q4kDS~o|W$1tC8^7jjzVpBR3tR17HK0`rl&|{QuPgmzlFZE<6krU~9R$er z)94lB;n_nanH6Eo!>jDx|266Q?Za9PnS&4gI;s=ClH)6{Elu>GG6_0h$6MRF3u0QyY5uyV|kO!C+!j>1 zVTy)Me(;+Z8_}zH_Xv8jQF9ohF{wYyOXMC7jhn)ZuTnEL5=abV%2%nZ_bh znhgN>Z7XE-WP)xy+sSysNV`7~n0Kq44vuQFWq?E(#7!`lr2jWRLnQ*yj2`7%B>)%1 z>ri7MydP(9qi8R<=C=HR=8pK7vHI;iPA@XEYtssch*(A4#(Igiu---S|-l1LCh|Yx2G){)Wc!jH{X7`$f$oOMH#YEU_>7)z zTVc_CKbR+d{F$u2P)+kZXji>?Q}-PnL&K+7^7~$@YSYA+neta8&_tq2KUtwVg%q}b z{X}-)YQNU&-~5|?<8S+ozv=au;vf1~R;w3Yc;Ux?@+Tj8_~9@8k}nw!jp@^$dFuPV z|NDR7@BMuN2?8m5ZL!*)-}I7NsxU~$_0hdWsl3S9)(i(A2>Bg%bTW$CIfBu0VzxCEz9dX>tp#R~o zeb1l&OMiLAQH>9wJS&TRP3(P{^(cXA$h|YH&3l!2%dLl3UU7Z)&EN7Z-}M*&;&$+F zyx3oT^~P6x&DY2fqwg&fdZCZb!igO zcl?_-vP0T2*DBWG_YZExALZ>z9lvk_PYUFu&_5~3H7adR6zJ`IM~w?jc90vEkn#mY zQ;zP%M0+#mlH$tDF_*e2MJ`+JM?ulvCnCaRxB4B!x+eFhrhTmT|F5C zl+D#@VkhTTNMV3I_0&wZ1&lws__W@`VAO`!suM=taDuPXq~Vod5qQJpyaGO1SsfM_ zj)qnD9~*BoezStU6ONH701lJwNU(|$$5e6o#1N%K?QZV|kBp&?9>ycrOnVXq(rwg;iRR{h%?tU`6~-i~CLUSzB6tJzg(;sibdg4ig4R&Nnue0i zQ4teGL7Q^zG8oBBLj#$~hjr8=oa5qM%qnOK(|~;U!*A-fvy5U?BxB8Wq70NyrS(Rl>9=Z{r<*fIf}DtFTf{cBe>H_G|?*zk;(TGRbxV0$r+!W zE$3Bm(2#=E-%_9}9-!kHuyJ6D(}J2y3X|9=a&?vZL)6!Ough}ymurf#+u9RH1^>w@ z;}wvr0LD{19^L^t>S9bM?c?d(pDVgmC)eY6y&{rcCNpj*D@5ovKtEmO-L{7FkDA|t z;Ha-QnFW!e40{Jzym%bcp8I`?>eyC)j5+#KcX5ttPMHq)v`&2^Q^l?MF(|sdOy*wU z$!}4B)`b$%6W+tk=20G;^<(C8o7~#MYtalz@k25>Eu%_MjgRx2kQ=#^MJ%UH2(=%b z>96?8XD)lfX07$hD=;He53&W7Q%B;|CMYL%|@EA=!%qxiBhs%p*kz{L8y1}c#t9tm2f+1PdM7af)dsyTPi?)@^1FG%<_Rbr zB=zh?5*`KzPhv1NA)4vh_4(qQ<~JYMn&0~7H~-$>^B;fPw|%?EJ^x>5iU&G_n=<|U z&;R`2`8$8-d;aIYF`cZ}s|_i&GB~D7YvUHCeCw?fpjTs%YGcg=_vmnbGnj*JTl+1z zc1@B8{&e3x{_r3C1OL(Q`dxc~*uGJ|@9Vz)l~->}P?#;tti+4PPVM;)3=Gp>5GfQ> z1-<3<1@LeD+Hd{N|L!mB0kp>BJH7Ps%U}B5uPDt2p~6apJ=Er*eZ&bVrVjUH@aKw7 z;b56YzqD_8OMAncZMe5M!2Z$^kL8A6JmQ(-C)s`46;?`aH=bDC_~_g>x_)o5s50_9 z>ymE{OdeH@^(T703Aafj?ds_nh0yP!GuQCfDT76Um$*q&D})NGf2gg5T2S?*$CL zGd)Zz^gS^out@R#?=_=)A-;~F?{KVvsHbZvG`)G#o(THUZ(V9{JcwTu37y&G`onD4 zI7e*DNy2?!@6gdDKBO>_Yrx?K5ArA+L5Q1&@=Q!b4Xcp>!V4D!_I>Sal?G$q{em#C zjZ~H#&jg}2onjYx!I1c9dQ4F2E#51M;aX|I;aeCav&eiRk+eJR5M}V?ml}}f(j)&Y@Gy~)k2Se%XTvSz4SOq%NH z>FW3CFjGtRlML-RRyMs~Za65U{Z`HWwd+#W!P!ncWx2)7PiRur=fp2HWsKvH?0W~$ zL1j)g2A9k!A=Y4IzU)K)nmED3A0d#Rvn6^|Z=rlImOtfhurD$Y9 za)0~XV!IKA7O?=N0W~MZ;FWlG)Yx&#QZX1Y+9@H0Ju2Hi()C25@(n^CrA|YQlEHY4 zF=ieH;c>KI@*(gnvwuXvn=&gCQiY-$ZHO)_n2JVVYk^5C^<=u;Qz%3xJYoAXwU&X6 zTO=|l-w;coud6njO)7^2&m9jAn8TXQ{OE1bew=HLb(GJFW_;f7t9$SW#F7p+AWT-| zN~U=YASz$UIMm9NG~iOZ1N_A19HLX<+d&g^pV7bE_o~wqK@oK};!{yr(Pl&j>jJP%N_Dw=;kcEo;_FvZ z$wab#GCsqX(hjN#;7*z%_LqGG;U?!d|tGw?RwG7 zD6@ZvJ8rw}r#|rGoBp0l`CtC#_x-Uy{T=INDo(prM(Q7>pBP;Eq7hF{7thrjk59n<6}6p?F{p>C0Q)0zfIelhtN-P;+bUV| zg04jc$Y$3v8^s@Tx3gilp5Kk;wlR!Lkbk|!ITsz~9JKe+Y{=$tF8njh-Y|b6vTP)X zg^Io^wmKAaZ`Wz=#k87Sc1V6D_kn#x0UR*S=IoyxL6>M_YFKPnNM@Bl0Q;4>Z zj?USgCz0vmIjxB7(4*RK8P#w?kX&KA`=x?5j&K?imkpWB3M0#7=p&_Gztl35oLy}i zAW=WC4PY{%LCMI+w5reT*B()+GqYELvcv))(Q7CfD>b$f)GePN@XZ z8>0%mPt1GuPN>Tzp*8(>*a>D_a1bjU$|Bpbq+jyVYW%Xoht=J`dCttR_|(vY$zzpa zcq}NCaIbzLoGIaKLG7Ps`ThsQYU=Od>8H{wuN1I$!o@hehEsLMjfTOC#Gw%dVR*a0 z&uiBw=o2XpFJ~T>+H2D)OMZ{7ed4M>ER%~Nd*rI%BQ#ex_x9J{uZw$jtzsPzO_oeG zR+%v~XW`UOh}o1+qC*-AV8@F_Ge`_=Oyq7hs>hmF2-O-u zO#UmVW@POm>ZRne=Qj_GDx@;+uXd>l(K6r(nnFcE=hWY3QOw>%kY;s{1=-rZ8Ac@E zOscVr8)jNkBWpOVWvklUtZ>Z|6dcV7W_0j=fSEZmbky)AS^@~h!VRm<*_mc?A8g2Fh$g)zV zA?gPDWxSNiI+deuvdn5J^B2V(29ztM!1EC@4*f&p-A}BIZp3~+xT9$ZA2#!DPdW-~ zL-WX*Fs%{Y0i%ehPRNZik+}_@bD0pH$SPj4K>3VKOV#Lco{&atf)WbgfJ2=x!{&}f zUXA&wt9d!cG>2lm|I6R|=l=K~yMA`|(I=kx2mk1wJofM#zxivw=47+^fq(cz-|=04 zB|9j904s5edm*@okc*72p*T7KbUW>0s4 z();t99?V&)EgMOX|LZ(3ZNMrUHuT0w3iiexjU(LkYeL<6NyJT@)wassv7X2--R_eZ zW@z`yryKD(E3qKer8{;V{mH$!j6xr*K~Tb^Av7*+Q$B2|C(@dVHXgmPl@{CKoS!>5 z!rf6d4NjGWAk5)z*(Oq`X6S@YM|0Dn)!R?;)#O6d4$+zVvbcPPHP!Fv`t0m*dFcah z|LB*rdtRpi9Z!XrP%dm)$g}?4bX4eEQ6uMN2INLV?c+=3=EsJIn_8*a4JBo0#rVNd?l9jz!Cn3QOAN+XplL$0tL;Mwm!bj!84&QsV;R5 z{x=|SYl^*%$xCe)!{1Px*x?=r7hMsLqU7hj5|I-uWVWY6uOa$AK$D}%j+NL*)ojct zx2?Xw`X;QtXw}Q=gxVnU^9UzpVy5&y6`Jd`In`h6=Q`Fq)mc{nEqxDZm>7xcVCoF! zF1X8|+eM}g1%~6vly`fW4arwjwOI~nb2Hv(O9qau(qF;-iqtEzkRdabR9(B-2Sr9% z%__)R4U&!bxwR-00+@qj)8ak!yNS&~p_r)Q6e3l;O%cQ4MsS+wJB3=LS-GPV7Fc&^ znEMi{8-_2?Y-3<#uND03^kf-9x244CnIjLQaPj7G$DQfUyG40?_L=Oqa3aKQ6=?Ak z=36az%4gU51wHIgGW*)HTNW#19f;^F%+WbrzusR#*m z$D7`Q?jewtFoveYD*! zUvcOYXpHq8jMk(U_L2aR~t%A06T zn<(T;*GFtSc}clB%QlIUq%bSexi49aI!fFpIlEu4OoAt3VFsyIUUvNo&;78$Cq52T z$A4VYj@($gL5c&0D@+81GgX-$HfD+%bysokC5OJeJeWUh=lB3V7?DuSW!z<$m&r|X z0#eFMc80c1*gvMY(n%;r&gGF%&4UqyWZn#cnMA5qugv7h zCE2Yy#RKtd$tf^CfhcFKHkz0WHV>X{sl-)RHZmEfkO7swtgtSaJ=LRVM6-HtJGji* zCg8Io7pPyYw^xnN7+y!we#coBg;&2m878<^W47J@>7V*TfACws@f%_!%x!t`rI&u^ zfA;&I{NyJyX;Z@2DfJFce?8^q;X6XS6LR8WIH^Zy{hR==I=@Q=gZBZY|NnVY2N? zWA(O3@KG$3Q(U|tCPh&uT-&*)hsorK)ihsjO}(F>I8?<#ZIXqW)Qb=fwY+EAKe!Y* zTr_=>IUUL#mAz^KoLHCXV6Fxng%}+7zln}UJFwAo)CM3N%`A9rIF#wlPBvbt6NXq2 zJ2;2LE>o7)#nujNmZv8`yV*8zKJ%zt?NR2rR-<@!i%(>9spmKF1}T~k;^nAQ>iR9v z>GtMcxFT^DdUYWp#6xHzw(4pudn3K)N-C=b4o#f8eb+@{isFyz-Ntt^NUbWVTOF}{ zEo2`93Zg3@nE`(=2e)ZEk{|jtZ8GOK9XJJIBqP^CyCv>d$)SPQ@PjngO9iY3)4&(D zH>>><*%cFJ=`g=%m_?l$-34p}F=`n}=RpjYe|P_&cI+H8_regcEi?2PqY6Vx_8}Xb zzy2vEj8ejRn7wJ8R|dT8{LbG$_x?nu;NK*i6^n8z%sehtCh7&&V%y| zD>JereRB_os~AU{fK-iAwDDQgX4kc!DRMeg-` zrVrY@3WF+nk?D$9H_H@F-8L44o~5ZwvGmK%A2Q6@J7fnt(aGt%9#9KB>=*Si%(6;9 zo`HyyIU?)}dNaGNQgk4ziqk~;NrIGG43$gatZ?w*aF=5)a^j%4%VP=?je>j;7@i&D z)4cBGa(FpVlSQ7scDx*mc(Ms$*h}|?OTK_s=Ke5&Qp++9xj}E^0;5~xks4!NvkQ~Q zbwP55ZC>ch@gO-wyr0X4zFZ7-pwN%%WL8R%5H=-u9|k{nWd|um)%U`r-)REj%x%mp zHMNo=gk^-!VuwYWhAvK}fJ3@- zq_~m%r%lIBCoa4^{VY-g$rC+|?!S?f*P8?FlEIhswUQL5k}D zWeqI8m2G3ZhiWn{pnkSVab~O4C$Ulq){e9#6P7#q(qBY_`LJSBA$8mBs;*x8!r|qYnLU?CHb9e8{H(PYepW{wvfg3}mcyY|05t=e zbo}{bp-SB^MKIXqTDg*KH^z43!DLT757J4zN?xCxR=XM50h1$2#HrpDT$~qg%~0^{ zM1J78j@rp1sk1XOp=L}lTX1ef2$KRoyJ*PC{)9>!_J+wY&cte++?ppI4B+5Y+e`NA z2TvaR|Fsy9uFuJHHiei;%Jp!0!o@$2QKxzgl<;gAvYe4{lAs?a&-=_VOEH<_uhTL7 z{Ugp?Ltr$z4i#UADpcuAbqJ3<^~weUsVm4(I3A zMm1{-P=@A%W5g3y(OMg`JmndeR{v(a{8b8|*=g*Pn8YhOTZ-I%JgtVjpNynxQcGWW>;MG-SoP;Q zMXJs0J;?4mFm;2?!WtrmMD~m1nYa#S_ve-!Fz$g}G{+;dR*;+qLlER+B0`2hgPjwE z)4qBELfR7WX->&nt~M50E(s5bTFq*pA=FH+HBA6D7s`-uBVsQ+W{k~S7l!&ty*+*+ z!T;_5LQ1x5MS(EuBc!nKeG#X9wMx#l4cvPQAGFT-F8vKARo0)O@nGSW+2) zM@AIeOB2N_u!QeTIn$X@Y@1tSdcr(XJa8Ryt1v4}JQ!N(W(RL+U*hB~Fh!TUTCZ`L!ye-ORIgGF>O zzMW*Q`amuhnBJx+2O&6D9KP+^)NB>HS`&~v+fQAvkoS>`b0;Topz0ac@&<0zsen3B z5Q_kYy*B-ri+}}e7(%rp{U(fnuU&uOzWaX5xBZ(B+<*V&cKbs={KNnF$9_!a2VgM3 zs@3kj{w>9Tsb``Dr2l9XOlX~`sD$>f@*42b)1Q(ro7g-A#0ZVBNEi!@hb? z&uCD5oOwdQ<9u>Dp9f8ZVMjCXSV!CCr8(N#_in!wYnYW-^gf|E@Nj#(PGsi08c&^hhr~cdkC{8BjkjEeI*`& zWZkeNo-x)V7PQ^CLBoS0TDp?eq(R}%@2ELIL(-B>v(Uh{`YQga>qY&!Ru`R}wT+eS zD4Qn;SzgK2!l=lX;iHH=q*4Y+e+qM7ZC{F5PabeUn&vR;kJUjl?lc`En(YbM>uf44uvm@5)DLnYj#zirS_g^|-}rP1zYLM_xZBalSVlk0|bV#}#$L3P&OxGAtL z;C@b0Q|S>33^ph{F{^L-h3&6XR_0ashI+qEhnm(aad&)Y^Rj)Y0Z8WmhD?%uT&#cb zeoQ;F`SE16Iki-BR4;l}ArqpmscM;l zDOqMdm>PCa)HJj2GF#S)sNIXub(^QM*~pp?I&DZPowMuGXH3IIH$27BM4f8(KQK*C z#UWSD=wTU!H#E-~>yQFV&#*?KUYuz2v=C}c1GCFt27iqiQ(QOXrGmul+~KF2DQ&h# zFip6H){24>UFlHU*fHz_uB-{oWaS=m=Nlf@LB2VqY}~tfg4aWUmicb|eq3H!`&4au zcG&lC%y`q{zRKufCfZ5{YdYn6d3(T1$J((%z+0n&6KbM&NeWkATHCERAPwqdE3^>+ z*zd|gdMUyP1Y_tc;G99d>Hl-aXzkMUpI8BQoU6EQctiIoP>|JC-|Xc-=$&L5jVtBg zIi#S<%FbvvXsT+j8)G)@0#se3v>)Qc#2=-vzr&^KiQo^$G*_m@bin(3oarzKHx&lD zQ(h9c37*i!>CXfExMzVr+MUG}g)JZ|zPjeCo+z(?Rya;v7~^7lvDrc)B&^k$v}7G? zt@H;2du-vc_zqP&DbcCS?&%Y%Z}2xA*s~Ch;fm|hRq0&$ayt&BKo`r|wFA{ji|zm& zpdD_^4dOMa{8a}_R=pgeX2lX-rLBBKzEw=~di^9_E8-``Xw?}PrqhF63n>j7C}1-= ziKtJa$b|7$PfSzf&8nGz{NbEfAE+A0ujTGjy-|wsZm~iYsZ*A2hlq&r^ntIpIVz#! z_31lse|nAdSR)z;zPjN=3zbJ;ROp}(>mJ~0nEhwuMxK?W%omr&-hx@h-ls(i8}#7( z?P-d@L8BE3p8FFobGmCHGy2_ieY!ak9VL=blY3zF@my zXNV}WaZU07nE8~34(miL`{V#^^Py*qNphArXb9(W{BMrd%ED5LDW8%*4%?RJdM7(!8V>-xA@q{{Ko^Uzp?e60<9wk{p|2`*!)R*(MBu{ndKX7M*q(~IitEV50Xq+;AjGaRytXwUgN6v;=BY> zO)&3t(C(By;j&F-1#L>w_ib%VmltWe{mP(R7=9W!9l7oSLxM@TBF8OV=m>Tu-nBge z)Ekv$R|*dvH!WbgR+Ykc)&3R}1|I4Om9-HH=J4vh6-mg5?cjHkrDI4f7#o$8#83+& zU=DcLHvFqKkL}RKSU$bdK#eI|*ixv5_Aw#tkB#nXfLH)Fs`V4eME)&XXmamN#EJPG za>(&aN?*xzof>gk#k6F%i^|5nB>h+9!nb#L))ZloNrX91o%Fn|m7_v(f@g(>#>twV z4GSe$mAYen{cPl9ns0yCyFGy$$(%(vJj>m*P>m|2pSEPP8Q36YSMV8_d3MO*%&DW9 z)JtwjL%!cXg`lp!bEg?Xdf2$4u;TTVq^9i z;T_GEI0dm5iQ9uMY~Q`vrHtD|VRnKvtxU<`K%c^!ZxY?9LiimKW#grKQ(I*cpO^lX z*0!P*ik)uq-3QFL$cm=Ed?ysWN&=1FEy!>Dqjrzs+6pD2&kin^U)}J z!B$eQxQSL%OGcRH%WYmVW2v?km52FbvAE8C4K;OQ#@w9EC9v_NjA>eQGn@zBhoSb=_!#;4xzQQBOqeX!NYe$wja72#M zN1Qp5(21V5c#~0U-NNVVxyPpkb*Lr~>R)ixg z$lqDp2M;re7{CJo%EY7>PfMpF9)m*dB@k1%?-l?o6scekfH_!Kb#fgW9!@qR>0U&jwJ)&ZSVPDbE zG3@u+M+n?@W_uO=zqXyEH?Dw{(=$|!?POE1pD{XF0WXD)A7+!{3GIS+qGzzpRwEWM zXB(M5Bhn@^)H1kH4(KAZp3LRXl7mrml+a;wqDtD;ss%g63za}-owB(OW-GKRw4D1O zm}dr98Uk)LCP11ho`ZwZOs4cF?Y%dYwKTXF;=1Yi+V@LJNN=geP=|phS#p?Q(K=|U zh$V^x>_m=WgL%m(ofLW24pwQoJ+m*|Sl$xSgMu$`X7P~D41^Ny;n^UfVLY&{?0D_y zx{LX#u;^?DUigsNt!DUN!^^~qY;UGew%IOx{4~67y(uvZ*0~&5cwh~yeCK2DOav=n zo+H|U?7eAsbcNi88okE{ox@V@Hu|ytL#uVcmJO4~*}5h)4wS~=KB^*by|uUF(h8p6 zEZ*B#JvF>S@Bx%New0_So{G3dQp_*s?jZW} zM9cWpfi0W8MXj31{0#5Qqc*JN{)XjXyAP74VL;CXwE>OIJ@9H#cC?3Xck0edIeJJV z7t})8Ue4pwmBG5uC@p8tMDq|ii->B`AYNz7>Tf_1lb!u!HKEna=od_qFi7CR1!jp# z)JA#5tHio0m2u*4)|k|g=)O_iV*?Pq04>X_mn!RX-W)oxx-zw;SHNwI@S(lnn5+fwYZAn=QjG2l+e(+<6|$jb4mm(p3{fX@<7yZrHoLp(6%MmCb4*nZszoFb z*fz%rRb1rFw?MyU&qnvbvYq^G+q^On8f4} z0-&er+I1U$B~!4i4|4b@HEYKHuEgY}MOL{hPTQyEfMA<_a^Pn~8E0CF28cBwi?v~^ zzon;GMirX3;c?0FFOJ(v#$OVvM$U*npwmMsJ7AXNXls=+ws(H432L;9sIp^pu8$s5 z%9FKf2tK&I+i9r;8> zzEE_|eD)LhWa=JO^9r!LJkx?cKd&B}GAkcyZ3ts<&)w6CqXX$G6E)!Y?J;{b>!pP* zvJE_vz-QYoTR&CZiS4PYa*0uO*a~T5j}dAM260{K_RR#v6mNbgYVk@rggLKwIo@`m zhj)=%Y%%Kj8pRn(6kJ{U07XE$zsplv&GxU_vS3QMMbv&~QMrl=;^x1<^V2hoGjgK5 zR_Ag1!*5z3AYfPtK(z9QRlb~Cgm`NwFrefxu*5VMYwFpO)bQ|dW(rw_8Qx;;UDrcz zOxJH|H(s5ef3Cdxs^21(fynAaGOJ-yLPHi+MVUxJ)N~U~rbTW-+rk|y+=5d~Lz#yK z-EuKC!KGLZHtw9Fa)eb-@MHEBY2G)eD$cOavxF>~HkffF8t6~s%G!eGKN*OV8uKuZ zSz|Ris}`iM4&#K!xsn9i{pc0K9G+$#W2+UD#(R5-%y?SNo3)N%wzr`SG!e-r$Ne*E z(y{zek9+!~a&}gz^b;)lu*pyX27qySQ9>*>a!(YhdCf68HrZ&tn~mEctCjOH`$!=K zSg$RzkmKQ?(3+FvYcd9E=I&sV4+3ObTp4Y0IoW_$q4h6A58pqRct~iwCOf+7!)l?j zKWYP9Az63Iu7Jnjz1yHg0wdSRbIpc) zrJ=wMcz7oA3+olIN?1C&Bt>H;qskrJm~FF(t?7$y!vE zB|A{P3*<3nl3nuI=a_q#lBw)ZyzeZ1^!rB->3MKc%w$xW^4}HuvewpFLaZLTdYepO zoD)+3Mx3K`K8ps_SZqI!tb||5^Clzwj`i2D6ZH&q{CZsRzBVqmf#ePJKxG81-td+f zY*wW}j2UjV9fhr%l!UNdR<&amnwKarTeF#%efkZx4p0;N&Z;>kV(^H=GVb&=vZa`W zngyk*#mH0h9PA*Y$tLxmTGB(j_SydQS^5RUboBZZ-bN8~fc_QBCHa~u?XVFrsz zsowN*5P8DGL)Yi>as;qX&OS_oh=%KK2?rE4uPj+D zy=IiRYzi8Bg5g|c!lLZsMmV$2UyZ2XnOfj>e5~2ED(LBA)Dfj&FXeCE%;61_!!Yes zuIEVY7c-jaShy)#`5Dp)7PLGII#Bvord4?4 zyASWTNG7v8xeCxlYCe!B*Qqemhb68&vG7f>*(385v^={Q=rB1ED21D-i6c22_w}-- zZ#P$0;m0hrwGdQPZ6R%T+WMrLowD66mQ@AWv$;18toGDWpMoPNqsa(S=e$R|SCT4J z&DL3ghX}YRD-mW$MaXx)^Ie3|lc4C|VF4f0Gd*a@gRq-FRafC#f{ zTeUWP8WJ8J*RHpFU)S5C_UbF?*=L;-UD=@ZbX78qBU%aPBROlGR%hn%V;(Z-8l0W= z4ouwU!MStuwd$=58`EghgAg!TXoD&>4S@k|@tM?*vYMU@T1JLb|JbKzvv*_y@Gt@> z20S1lT=?mVuwJb4FJY`n%R5o6mzYM@0fE=zd*L%RP(Yr3 zq6*xBS&pI6GO2r5neEyTaN19=;ImZG#Co#0IMHd^wcg+oJI48rAIeju7l{$K-ms7W z9qgwYt(EOAz%3hL^_MzX_r)|{p6k}f;f^WnOd3fPVvQ)G(#YCm z?mcLYl7xYZpeRW+q%vYBB6H=s1?NjMQPKDO!P8)7_->T-G_4T9S@!k_ac!FqN zBs1QP$wCVk4Gbh~y3k^iO=0;UO7+$($lSuR7SqoSdENV^ZjJ|=M2Hd&5M%G7Yt;1; zO_(~#gw0m74Jb#aUZxVOT0}8P?M8k=96h~>3=hy@w^Q9D02f)`6!ZRgIz*(Ot&lWe zlcbEzlQHeBgQ)C*WTBaeflQ#o5RoU`OxIWO^U4YN%c7r|VP38{c#r;hj26!=O{8Gc2oVfY|cS6L`dfbHc-!yf)h z*RR{?%x!3Mx6{uHu{RD^yBfB|X}{asPdN>}m@p~fjYV!tC&aNq}Vm`G`s$UL;Bm)KWMjvjL`*0et9AF7_8r-7Myo#^78%H+Z`m)63k zN>&toqw9a)69;buE!4UFQ|D+H#{3W~IZY2Px33{Qv2j(q<>v9Eo2TLgR_Os-Kqemg zps+! zF3XsN2od0U39uCLO7+P;WXy@(HOdbDiAqi8C6Wk)kbWq7RABXX7sSW`TNJ}uIhrKw zc3yrV3PYUlD1gfI3TTq%n9lp@!^uLdlE@XWV6;KQxZ}~c>!+RdfT9x8{%T%B zcUK-B7C>MnuJUvnFysli4@rmeRw&{EFvn_B9R~6(UzAGXU38oPBnevhGNjjzE0(f| zmTeexT3Rom*G6vT46f?J%oLIEc#0e~y$wBjI0uh>6Cc&8ehU4c;r)d-2ZBA@8Emwz z*>T63p_GcT2ToI#=ShB9a22dzgKZQV)(IDy+Wv&)t2<5qU3mvxc(xspWBxpd&;;}q zTUvp8Bcs*G)(*cdxU?REBxWW0)5};9p3-!UVA8AF2QSSNadCRh)Jh-&JxEErlO8ibpzp$juPv&NeHuDI`xK8 zVJY4@Ba|hoN3}_hOQqQ%jwzp=P_VYexhD^?eN^OmkQRMllY_W~c%@(_ zv4vf`j;rAa@!}Qw0aCA>0X@_lhUHMWEKk7rp?cn5qz@<9i1f;#MXaMK%{IZaa%5QQ z>!NN>X12??K9TANU7d8?6n5$Qxc1+RXq9GqDH$lHNJsot3wjfYHc%s59z?4E1#KDb zTm@<_0aUU!K*Iu+(z$LjIc4BGAHv?d0p$2_f}l1zPf-}*rS!wbjVeE%apiIdL*TSH zzE4*d($M-!c64E|q%D~_=JUyO2&<~#*jH(MWWYTHkLETOTYK*Swy`a77Hk|&I3>EK zn9*a3I)>&}qZ#Xs!=I1~Y_mr@!X@H9$Xy3wR1COZTLxU`H%&$fnAVR06Cc@ObL|aL zPOdE1F#=B3b+K91gF|7VyI;J|T=vgN?r9QIjp|_dw$1I-O>Vum|3IuxCRvAC}rrAszT+WQ9;1H!_>depY#ba5GwZ|UCE-daMeC=+6v+W2U8?F*j?dvm?UuR}x!%pyaO;7PEq4C0+ayF9*|9Fw8) zk?isa@9>#%a^m!|;qZ}T5OZ?M7PFY}=16GjtKHsfq0?@$R5U&k=eM+_tK`aO2en)d z#&LWDhUuvw>sFnLmm~VNi5U%mDu!7|NNNPjk*ngljBi}zm=I2Bz|}$+E8dyoPaPO=G|n zw&J3eSI_TiNluxIv8+pq{$ZUo6yOq%{OOs_Y;z!lQOlWWcI9dkDC#Ox&{te`yOqzu zo@uL-Q~W1%w6u}TLfDFws4?NC5%;FA-Qx-vtd~IXm*+^aX~78vriBWV$Em4a5mG9t zfvcD=a45}q;&@1S`|lXZ?(4Hc`;>D$J>b$o<)=dLTD6jp>D;0xq%00Qm>i= z0v42!hNZaRw#!(DllMbg@k7fEB(PFad(HRv45K_B&Gj&_2T?mZ_YcT1`6Bf9gBUZ9 z50<<2a!LUY!}8e zHO5%JmuF|%b07s5@6o*?T#IIlslmL^Ed?KfDA>A*nCKPPu+8=~hZ_)}CfG?ZCRfP3 z_xs?HFnbagjiw@sY3~)`M%X0F)z@eFOKeogExxk?9j`Czfw}-F@K`=V-vibA2kF)SAtpSsE4n zBHYzpv|fvZgV*?IOH6v7VolgK*fotcu>wdm7qm3o$~wd83dfq+$A>~S&Peg^6tox( z;@Ga`MFSbd2VMYp+F#bTku}O!ywA8{R!~K6;&)E0fjTq*ePT9WgPquRTFzz-?fc4n zH)mc5sMPK(XR}2YvrsJxszP%Sd;lbS(e$$iD~>#LBGDNN>aQN$rg4P(0PyI|WXUqf zgPHD4W&Rv?nO@Vg*{>2ZZ1YvJrzSp_+r}Kq4=Ng3#Oomo^29VQz5vonRbkWTIQMAU zdZ}Cjf{r`YtH`ohNs-2#aukX232WOp>Z+50Z3s)qcn!?P9a#Tiv46H@Yz(t%2+d6k z=2{vE7AyT|2i*YK0|vhwsZ#q(Z7&cF#h}U{uuZHN`VLbkoLj>LEFbqH4|nL!O=U$5 zqWws`7S)&Au}8IVs2lJ}iLvA2^{6Ug9&Ul7!^+j-9bl3aDn2)+?dYxY8kkw};Kebn8DE!rClxjd;O|h5$Mg08&sF<_Hc0vbE1d zh$dn@nlKf7P1IEIC9{38^C&;P`tUsby;1Bu;S8BBmamPGdP-7>@--vvcvKZp{Q?Ir6 z8e%U?q2|;u$x9Du94ljZ-6D#M-f!fHff*Kp zHcjc1bQ5Qv(O5@3r&ZC8;B@ZGr!P-gWQ_%qu-ngiBv{h0$90Jg2bU2|8zT6b^k2PiQa?!t6mvpO{`VnPe!Nk`>_@= z$1KtA3wnn>|CWU`P^)@W#4MvhXo-79zx1Pli1Zy{!;t0pr@gY99@Hqu^HIstA4wPt z?2Ks;VnTh8VWnkXv1JMQpxtWt=om~-#}htRqSJD&SRBg*RESB#`epPKTh*KPicNqQX_&+XO$zT@*f=IUh=3kT*s)U2X~iQL?~c z_`cg}hE%gtA}J(*cUo2qgZg$)aiMyGw3-%}w52~gVDR8uaRFfp z%eMl?VHxTfj0e$YAj)f3LbpIYK_EO$2)-48<28u@SAMK6@9;D4Wq`^CFB)L=zzy@Tr3}W=mujP=TV_+FK zct!~ALvhCnX*4~snLDOun~5fXhb6l~rDzajvTGo>={7e*$iTR91TW=C&IxJL;RYD;G6K1v6 zS-0CSKN*q%N9>MH*pJ-A&RfyHEhbc^qgLN*jR2+qW=tZB2YUD$22MM9I?O3^}zlGkD9w1G%#i_=Y)*VGe}Gw5}- ztCXQ~g1!ght+Z#w5fsTGBe^LPE)To^2#gU0pzlVi!}4F4iM-)vt%TQ-Jgg@$oBrsm zakKDDWb)c@Bijf$(g(kGy~K$gq*`alDD9rIV2-hr8jW9W|FZhfmcJCKu*J{SC`!fr23JbFv-+?OVj~324nd{c(>9+Ygf) z#yB!$bMgfx>j$H`E5E_!3~=idi($)Y`-Yr@PG`rWF2eN!=27;Y7*e4$Tx}eS^UcrM&VM}2dv*$Rdi_3rTgqIdqTW*QDcleHaY!ua^hqFNgg97Y9#yr>2!-SuW`%l-7%T7h~-fB%0 zk(jwHE(~c_*1FdbE*)>)SY6)!C=un?W5SQ?t#`q&2aYPP%TbKF(J32PAg3+5~OZ&!@Do7;Oto!aR z)?v({Vv4aK!>VCdF6PE`VK|Y~skf`foxnnQq*8^Oi$&<>+<^p?E0DO>38E4V)2c5x zk;qfFoHFX&0DFZkUz#f#pkMH$1n*yABQbGQ*-BW0N=7ZS$p&{QHg_$yhH%r0i3u@y zONwNG^URncez}dYr49^zy}+qjm^al}jw|WbuBJH2_RxMdOQpPgi!dPihWwgw4KW<9 zLW1n&X41p#r79gRp6FCp^LCfgRp(xQ1~znF-qM(|i#%=`>=Y5BnP3V_h3D>j-6$F`Ln%U5X1n``^Cq`gwTl}^v`ZomJ7Nt_cR54Y2feXQ z$YizEqy+@JxdVY{!=|P8?EO|9wy%|wz<(0UIOQw6L7XQ@QcL#o#%x9(6VZDZzv958 zfero$`Zb$(dlYD)snaA7z1uA}%>2%= zkKuq1eSodkB3116OH&TpxE^|oi1je)kZ_`-rF%V ziK=lrlfu(OqN5`@gm6((z)nJyKp7;A{`5=~>+N=$!!r!wR*Mu$dfy18yiy?zR@#2Z ze@X->oSx{`+IMJ)w>75X%*kl#V=?FW`tCI&Do!sgsonNid_X2bzQ3w5v98h6hfk;q z1@*W~7Z&Uxk&!baiRD`P0S^Di2#CVF$z{Xfe$ljG4{Ys7})s$Jw)?$k~*wlVk-$d0vK^RCC z3=>ntsng+ZIb6cb0m(&j!u`R`Q|O$>?Zav!lD!RpnFN!_wZWaN*p{a^T^YR|^N}zc zl|M(n8nWt9{zxf-7}18I*9d^DxqoFwu(K}P+pEX+bAJF2!2?UU?J#B3_?I*^P;Mo5aRjt^^;159|!5VM#qS zRT1QP-tN&?zDCEb4nZ_IhE`)=w=yxC`#BH2i76KeUSq$22Lj_lvC}+2v6)*vW|$R-1Qt?p1w)IL}cpl@eAEd5i1`CLIt+J@qo6&SAbId7t~LOeU}+plWE@S7YU4Ob zgbhU+kt)u~kN44(P$T?Ihj)mWmZ2V3)2}@4-O=FOGhJ6jI{9jdqFN}rHGX1nU|FC& z`0a)wkaH?aRTT8{2@OcBih)Up2P3!pSPxgWT3v*>`Cu3)_sGqf;sj0Zx>}sAvMt)1 z;Ia%}jA=O;brJ6jFDgH1gPL;{a>-EnQmAdOOn&-qel@3N2qTljY(pv;)1{bfiT%d| z#er(y2+#7zUtikO0WTvK8&aSOg?2LWCL6=^Mz$C|8|6~*#}3u&1H#jda*)Pf~(L?fW?MGsAsQ|(i|}8i%M63xj~}=hoQx*Uh|X`oV8vx#$(`g zmq71vKrW0eh*oHBG=;1*U!Oyrmz2ls4w$=U<)^Dj)A!uzO#tIFHeC7xl0QsbOnkiv zY8i8`Ie0vjP;6@(LI-ObayB!`u+cm4*GYHBqgDz7ti6Y3&_y-;`gsmKpoTF7nR6U( zc3QKmvp_QD?<9~AyO>=ij#+&SP=+in zKFe_BV3cMnc5bO%)GFQq%YNwb@swkD=V#fPrnS8CvX4=7!iLYUy5dL?Y91N@?LavX zWAx!z4FJ)YvzT2PC0k(;CSeeHu4ySrH1A^pIR|&yrVOYU3-W_Aj3>1E1>#%$ns_B%^&aCCh!>wV7ElfDvr!lCGg~G0#f^@Pd!ddYmkpvJD`+?m6N+%@pj$6jzXQ;#k}yGRN|+m`oZjI~sC4rI1D`cP(( zaRa-`Ha=-_hk&pwCe0O7*I@#ZBeAkBuWu%u)&_|IW$@v{m`+2VIgO{~*eQCx@Y-BD zM?xfb&sR_=-%gEV=jLaxS+U|ZfT75EaB{jz@;Q~;X{uLJ?rbSWvpb;je3g@)Fx?5S z@uLP^39B(V&H1Xp82{qn!;js=uJnqowVz>Bx8Y~b2yZHFXx|nM3jy7$ygf!NVRU3- z``SB3xb01mZmLbW0YPJN&NU&tSGLrr?aH;Tu~6>)^*sp@$qbFC~W^H~!vWX@=e z#%Vf&*!Tt^BWi=b>NBqxtXH?DD2BEK?x^~LvZo?I7j||YxP|%+FUk_Jw?1e`D641$ z%9j}jDvUi#qMTP1Q~j70w#CJm5@2#@mm}6aisjF_#IZMMq_6QHSPzVkb}`exVlw8x zHB|J>FGw)f#j>WdgwLI#KRjdVd)~+~5)Zp`8F(|U5U=8PD;~B|b7;L$RHhia|ws7h1?1gqDgxS)t*`Z?$ z8OFCDkikA#xRSxMVt5*I0Tz=aGpleXZ}xv%FnaGoHWCY?1h;=WnPPwN)$>wZt*itN z!;*GINP$$xFtcTwF25>cq!h%{Y#v+VBWp2WWMXkO{0&LDBD%bW3bBm@X1xy&0Y;x^ z+hR||!j;kwb-?+epGOSP2rbv8zx{RhP&gO``*|^z_*eZ_$ zq8b|xV8vtpVRn*-NWpeheJ`jc;m6rg@SZvh=aMjVpV%ET+NG$zS;{hg(8Td@)E3qd zn9K*9RnyTd+iE>#PrD^~z>QiC=hNL0pX4wk8NgiT!>|V(FDa0$rUeZi=EB8Z9X_iT zi&*)rpXdj#X6^(%8FchWd1=S-&U#aa0BV6R%s&WOL`yNYC?kGFu-4w}_oE0XwYnsK zj?~5@!J9rTbNG%*qEaD(zp}+FPJYe>A>_f}>tB&KwI3zYu zR9cN=by^%b?ITz6GH|grst}^)&MXou10=%&vD)i>I-)z?rgAttD_yn4nZ4|RTAsp; ztB>tv9WuToS2hAYBCaNbYCw0&i|1ne%t!++aWmQ6P2ut9%GenIT1YdovWrX!iub^? zBXCkVFTNf}N^|8ra66~Xi$q}1GTLxbP#0vmO1?rTw-5SqO>?m8 zg79SS>heUm!Qa5Bjiz+;+px16O0IOpVJlqoH)7X$Ps>B4Z+N$DFs)zqb z4ig?1=0dFHMv?55az&8T9N@PLEl753kpI_G9av()0Mm&hPRs$J{$x8I`jD!GmTWf= zmuT7&8KB!G)!Mf@lA7!#=+FambgZfm6N9HNZv909y%_1-{KUp44UhKkk(xdPk;SN}^G;yF1YL8~G4m?J( zy1wNd=EV;*_CdR9ddd)J$8b*QmqsouI}f4qGDAUxrrW9`;)1G1F@o4RAm~)Jt3d{e42bOJIZjeBdbt$EzskVnFfy3cvpZQxi*j zMwVYha{08dW1H(=Z^O>h8j%@`pSm;ERP%DX!JzJvK3?y*r@r^=%7^|* z{`|A)RGP;5SN&V*sgF+|eSDeY^!=zl^3L?ex2^us4_v`+xGkI2{MdW*^G}!0efla% zcK)W{aI9wf+x^TZ%EunpOa1C!f2Hus>GMxdKl{(379ldUzv2CTZ)}gfXZ4T&Zd;sT zSL^+o-jQDS(CR0Ca1pw?} z&Ui1+em4KBpC;=_tdtR9C^Tmb^8>Sk; ziq;Ch;ce~FU$*dd(q}%t`o#~0nBboK+n4={-N5HT>bO^hi+${-~N^9);o`VH-PG-7g8 zz5*E2uZ!ksH#_>nf@gU#k3I*ImL1U?jrdBADP<`{Muee@caT)uWtc zp|4$l9-;!Uf_m7Uw{R6dwi?j|IhiZ9#fUsv&_0lf#kgTaj+cn$TKE=AV`nIIY*ynJ z;#(=G70G`h2ur;flDchw)tttY=w>EBIJofMY-B0~QHM*3v=A=rWFBj{0DB3-|63P> zo%*M`Of-lf1TQT0s3z?|y_!N*kOs#u!Vu)a6Ohc}>qApfDDIQH+;Iw2?9Fs#4Ztrr z0_T1Kh)OXp<6N_C<4Cs3OY{-ynF`mWIdWu7-gRd6PrW$O_HtuzO7N>EcrfFNQ9T=8 z0C17>i(V0gLu+(hhAD}JrmBGYMjW`w~i|@FHs3gzgzjmz>-*dQJS(LQ@@) zG`KV}NfjheaV|-v4bc104^bfC$b}G-qhYtaI5H8|lc5?M{6RLGXwnJro16Wbm1eR8 zJ-YF#HkAo^=U@v?F?H6A-w7tM$y3niug}3B8Vn=VMw=7O^|>#lMLmqoCovFg3Y>=r zrU?qDSsB)13+N5CKoIyMdpm}051vspJib;x@&n4$eBZB0Pd_m|`4JW0nr;k5AM~cf zt#>Fc{+|2u$9~q!JxsOlf1{q6TW>F~z8q==-TGBMxt8vIpq-qhXFhYpje0ZxeZJP8(lk;pB72T2&s2c^T`EpA4(OxVJ|eU z-rVfW)?fX_&u{u);SoE0^*7JwH_KBWOAw6O<@xlJ|2L^psU3!=r;(n12HgKpd-d~! z_}u2rE&2945@xRi{AxJadMWehyYpv0F@5+0javWk=$F;6`sVz>AIrP**h!xJNPXn( zt6tV5277(UyzQOobDyd=Zz!J0eeEZHu6*tZxBIGK)+5g1w7mPy0&d z4(C$|)`6Ny9yF%a?I`a*D2G?)lm5NGyDQeNJJffiBPC~pAI4-?>4s|+5-|Z-#GaUH zNS43XN4C=2j=+Zq2Z+;sG3JH}iLV4Ezu`}xodDTTjpcCB2?C=2yQ{&3wMntbEcmpF z@k_u$Im`<{3l%{ZN03{@9S;NP?XLEk=0pR>6w)_zF8$iCR{`XBSJV#D?<1!h-g2{H zIf>F4J}T96*rWN;S60-aQ<2&B(fMiJ`d7I@HKBBh+3XFtuqW{MF;1 z(Eh*MJ0n8%1~xFk=_HnALZ>9LLTI5?s&olAtA&(?}3 zCvEB1fnySuL{q=wCxsIpSPA`}4t}$mnL4#4m1+fx-s;>|N90DN-D=Y57|9ePxe!7d zi4Fbg0AlQ)yTHq?0{A$xB5<50r**`;Iby;*HG2I4i8BJ%0iZOsJQhKWd-Pd0&T`64tawgD$j=ojAP>!OQ_w@AHy})_qRJ_Q1EVgo1O=@n?t)g zI*Lr5Ts^^wV|%zNL_R9z*J?VRAK@&Q({Oq5{an_R1_XEB%f7NdJo4!3iC@&GSg+>? z-jr^ZgWw!F#7O~G&-`VN>)%F^? zO!5;Q&V)7<{ru>9)@!3$A5hPrSIRp>0RZCf7OsOO5WQ4 z#G_xK9z5|UE8s`TfjDfALz;R%0mhs4b=~h{|w1OxLNdmE`x?)Fw#&~3&L7-N|`EJOp)^wW4Ap)4!W>t@|BQ)w2ZD||x8&y<<#HGW0goSdm)F9I=<&jbv zE^5w;I9*{?jHD6uR=eCPwOBO@M9gr1PCihWQTF4qdREZXF7^)si)B6-T)J9! z#3!jdD0pQB)}R%)Yw~^WrSO=*q`aE3vClDVGAe_xyuTo1ESv4-I)+?TO6dm46`|l# z84PKJW^Y!>z)`O_VtFcvKUImUlm1Bz6*3?)IZrI?d5jg{CD~9FKtkb74kUvzqVftc zs*W{=RjB0qn_BB0Uu;7&;-ybwUqUD~CThhiqLHqw^B%&-$Z%(QIazz?PU~=>5);MS zdVd4fLvqXUa@IRw8g(%J&>=<@3_laOS*)iBGrGv8u^)rIq0)lePU|354T@_TqGItd zlJTm!4mD69hg4wM+^s=w(%OZpIXRon@u&K`8;8TilskjPNr$O1ZN^$kAKXso%%q4% z2`*VU7C6f-K)PY6ok2m6M(tU5tPyAea=U1oo2?sNOsh1R+vvl8ss~`Obhlk(Z-tgA+{L@aL)#l6b zwlKo;kO=9bSmPb+7g=i1?v#S5TK1Ir$zR+*_(*@*)e}Fjt8~xn)6-8v=alNE-hH1= zi(Z{@*H-S5`@cW`)ZxYF+5?ZYkG-VD_P`_Q#m|=)p0=6tNZHM+fBAvQ1-fLGGu>C} zXZiX^|K9wD$Lb?*FE4*yWnPUioFVkg*4Gr5HPWiAn*-HKusDV(TTTx>l0Wrv{4Q;l zl@=ETX3UA3aF|TI|)+@Fk!jnz~7HgEH1lV(S67EMHooBFwd0S=cQt)LkgiF`b z|9S}&Bu5O^psn=xxgxd~1;PFYp8kbz>}Z%{*}HD7jXpkWi)zbfNFS2+#^Rr@o(rILP9`g4Yc91 zRk2*!>?7m1+TEyE6=j970RtV9%$!N+e41cWXHrRVXZJO%vHfOi^V9^y=P59?qDP+` z(hHceqM!4wRB~iM>v7o|Rht4iRD-_mZ-1tSu!^!>%@MSe|8R_tN=^guysdA_eoDhw z6ek(i7TfJ)W{^kUF%T(cm79R32{-$rOji}8xihbRY=x6OXWL=Wuk0P-7G$Cn6JMte z0$_6-xt)Ca@@%0C4^el-%&G$G{~p3LvjT&3l1J>V;Rnn-68vWmnC)`Q!LR+RGRqK6 zX)3eFF?9r+aE6IZY+qoe(As94zmU_Be2UwZGI6xOZ1JQs$%s*@7Lkk`j;bi9ei@RP z4`IAheXEnY2dO6xrB^LET_wXZjn3wZmUQ%wGn`m#oO7`o45eVSIsR1KBqvnIVHYZ* ze1eg-w!A>6#;c~lcy{}IMO=^vch4@K(-o7-2wYvM+gQ++3B6nlTnj2hZ-cAVLbi`n zGh0ch@R9QL6ZPRo>+N@!%Nz5pcM1CL2mkJ(onG%RGNYW-N_gX=y_AtqxuYW^&>f`fWuTR%+ zEg$?RP)E6~x8Id+-k1jMtA@8dNZk1=?c~}#lqUWEMm|WzPAZ4GqK=xQ*XaEv=XZW( zdgfDFIG_53_Qto?+wWPw^qd24lYMD1y zuCG>rF3i|wZEYCNj^mIvy>BvQUC+*r!5V`(TRD1d7nJK_`JJp=wC6|Lx9E}lkU2Ma zy~5V{if5g{m;PNm<|(0KBS8-#`~b~xL_AhQDdCT>NsIr2kBxp!R{DBA1SirVX{suS z<{gPY$rN}}ex|waocl2?_OzmxFDvET)`*VMgh4N|$G!7p)rMWYC1wq~#cWg4B@jRh za&NkYY;YH71kXm@$Mt%$?aCZkmB}^7W@FQE>#(eaNp)8(E3pa6!al}Fs@bGpjNuvv zU46f_^Pa=j+lIM*zkoBc4o#Nxf~gXdrw^st=E0P=n+Ne(1a zBRZ|o$xf<=G9PlbKV$e(=r^0Us{MXy@zh1FYo<&8{JYu9D37^`N@Ly8d9e&{VJlrc z3(Pp5`g{sipd&^l!F4FW$jSl3uK>}JZ;6jcoU9YQ4r-<=2|E-nQx4n}4u1|a0hK}8 zdJc!l+e$o5?ph2NwGhzxy{%M7%Y0=RD271P=AHx@css+!Lmcu9ak$znCk5Pf@SZ|N zcrbhfC{hosq?Mbt z#ka6mB(Hy@e(YbiyB|o;eirYI%ZM7lzp|}1z17wm>ScsmkT<+_dgTCEK&QV2EI=$B z8VNo)dDt3KH})U@{gT2EmMfNP->HnUN6LY|H+|yg=KCL>@4BzO{*CE{XAAyjAgMW@ zpSL&M!qduXOv9$L|J$|O^6qjnn_+w2|8JZX_UX=LVfVHXJgFDC?+qe<-2ZT}O&@uC z{h4PSN*Yy#Lv&LeMzShRs%!T!uT1Tw7xIhG3W+h_B^DfeQExUr@P9B_SZC{X)!{Vg z>igU;+Ptq1y){4e@%F&Of=~SHpPaVcP0jc&&g*S=gxJsLUkzDvzV){B+5HrODXE;l ze0b@F`H{CLXb}0;7wpnWmB3o~$m98$Cl^ISTr^RPUrMih{{Lm~U7u}RuKKVZz1BYG z3h=qom4r+jV=EXenHY#mDeSl?JHb_{czJmscLcSSlz-t4jI2ogt%HYy<$qk|y31={syq~U{?`6*>cnE#NWs*gXW5G%F$ zvFI*hN#%8mUg!H8MKDAzm8bzKucv6C4+oHkfr^G7ru+RPJKU(vDlfJvXIPRh4_U8A zwyn~B%Y2j&U*56bt9b(D%YOea_h0(rsFGT#@5#OC6c}+dr7^!+OV%w?9Z8{~B=bZN z7xmo5p~y+`K{0g=l~BmlMtM~+Pu;mqMgpJH8_8Ocza;GTKtYC_C#*U>31rScq9a$0 zDv{U7VLA7&?*CI3xI7b4>O0NwQC!ZbIEZgV^OB>YSX#w8^Bh+cGvN=FtjJtoPLHRs zJ*jCp+2;)ba%_Yz>FBh-J!SkOGdmB!DigWL+H;9fNw|F8`3cPB)R9;zMttOJD25mJ z3;3H8Sh~yWH+&apVLcg+Ooe8KelzE0IY={zAx~y39I|*y3guZPM=uT(xc+SmTdzFb)Y6?Cbk6x~;ro&xFn2*ya7jn0`*`SYpOC+Kwk96sjz zl~T${7O66CgT>*L>A+NaLL4$FBv%TwHUv&5S(u*2Zvy+uL}A_twxLFfffcYEGb?e& zk(K3zb99H|mDGo!#DFng$||B`Sdk$iGRekNv0sYIT# zVv}D*(6yf>l=;qPLSw_AQk+)9Hgr2An5i-Z68kvx$wfIxI7L;D>*{ zWN!RHV?hWI`qS@F@lF(`SF;kUJnrCW{46|J^UafByc9Z~R*p zLZ1HiFNQz*{o`-{Yo19nN$DT_%JP{n!2kEX`@3+sBg#}T4+?q_gD?eIs+NrlxF_+= zuPrY=_2zH>o#WSjonKNks-c*G=xmE7RCUo8Lhk4Sp< zF@EaD@V>&h|E_QRJNTdear)6uAOHOO#f{_sZT)Y4_Ws>Je(&3Sr-fAcjjv_;@O^di z&EKW~jVPwzZx(^*h?tp}B`O|?vj);XQXDeivl7mk`t+4PnY>F~e`2C>_T z>g~q5bV}ffVo`4GPUJ{6_RkQE1o$SAU2;~NMzk3o0KeA`ouhg z9Z5!1tLq6O%Hdkfw_|86D5HHjWkMUTpvEMlooS{b+^NY2Z|1p4{)WuTbFb%()KvyP zzD_LjHV7O`HdcPZvl;iBMQFCB6T8KQGpEuSgv-kS_-M_!`_r)Bm zH$CX+w1(uqhanH{Ef*DNJEQR)GibS2JBkb*ipj!+f+@yEj3pi-1# z+K!BKGcm6;)rp16v&T={U_r6Hv0a4XYDj0&y@XrpjYKU3iU|$n5ersw27K# ziMZbqOqVE6FUKh6Z5c&jMF|TH)Dc9=h|d*3kVemeEG~#f^jgSPtSqP7#zyky$4Ukh z2Xdh%vrJLR0;#?uN2rLG6#E?=iIMm5$F%C8Op7^&g8~8A-JkA0P+u^gHMMCXqlfn= zNO8&>GK?%76ro7q@P)q`a~C6WcR!!ncfNr?`O`o#9Nd&-q=KO- zOlTx0Vp9e-WH=pd*RRjEay@kveG+|C@fQA|Es^A ze(vw4zw{Ab)#Xe7J^uXP3*Y$dnAbwbJ2BXW*o-oE4A{gwR8XYq?a1OM@x{G0d}Kgh2+^?&m# z@b!O#zxc~~`ASYjhLrN?JqDlyRRCIhxCIcLpK830-X37gSbRwa-qPz=&XbZ81Y_0;o ziM+{XrU>g0U%p6OUy7eEvcD?1q|lF8H-JI{%_7bF_xgD7x!p2O*&sEl;E|j13(YkP zTj}tRNMjg}FY@Mx_|EJZ6YXKh=}1}cazFVV?sx4VdD!YONM0aB{Yi$43x}9+yzDY^ zr*U+k4jJ@Uw2q<}6X$bY_{`OFjGl}9Z%Nw}3wP2fuQ;(&6tipZ*TH2uX4~0=6@}uX zLmowfz8@Kc$?co_^E$Hrl(U5sUr$PM{on)IkRU04k*R)peZOBp?ytj})8Vw-A9t1^ zo7k4A-%cxKl(WDA5L$M1lKRR zl$tJ_z@HPFR|>+#53+D9s4@k1I+yk*u#Y1ny%{p0MKo~q5$J9>F@BJW^G{T-OxpU0 zZ@1weEFb4Ab;3*3mkwwa1A$C3JL#lO9x{)KMGv)RP!f_Qm5L!XPS9ZGy=;k@0>a^H z)H>zVx%-1ai%U=+0`^SHMRMe_l#C-^FDAw@9d*8juir3fz`9pl;VudtlW}LDmR7F7 za??S4qggd_kUa-V1OVG;W;7)N=lZhhid$xZp_(O`AyVcr17)qzByk`xki#L79f1{} z;FlqgnSFlA&7p`lRGBIaB68Nv4cq#2YUTYix1d@RfEq}%xlUH2fiyS+1rbCT)ug2hK`cY6dA7) z<89=b>i#JH?|+uQ@;~A~_?7&P|K-o(um7sZ2WU4RKJ}^PAN~rHGr~81>+sFrl*G*g z*GWfa@+NC>F+b*T$9CQMgZ|{Z;lKVV_}#BX_HnuYwGV!jqi{}t?Mvai-_Gn#Hjv?m z{kz}J&5;j3f*<@DM*uRxkPHIDPf-JO3vAr$4$s zD*WYt%19af;kS>!@z2$4_plIrBD^QyU3`e&{LMFi<7dT`jF!*kAN^CQT)+P(FTVP# z>?4U}iKJdqTE(Dqy}yQnej_z%0U8e)xLuluyo3VL4WKV~G?AObX5$3<8^@+~$l5Swxfppb0Nqccc|%Hz%A$;Hl!Z4;9cJGOP7&}*R_c`$LO5kzFd3#rnoop6qOMyBH`v` zn==zgfzP>moR}@1inQgRiQ>R*8g~8#QCTKZP~N{GnY9@YqDmom%KLIK%k`NLM{4j$ zWPp6d4z#^TG{qA+S&$#&A|xJx$4F?INs6a@yQ64-maHMqY1J`zS2atRYxj)anYM_1 zdo}1Mk-2Er&olSMT-P(;mu;vH**aOBQ9x)e@R`qlo-y|PY~-Z^goSRdmeVZL@%5+_M>h zMsJ|>a(K&5?Gn--s=YkVZhRu-7suAlCE}cnFc{DqXDyDfh zHyL%5lc;=-Bh_uWJHu~m(i}hDC~%p`w(BnDuo!gmhMT$cr5K79NnPemb3}^KykwxH zXoyrkutA7Q%C*5u*r~~woxQBFp@r-gp&-NZP(e`hz@UALz``psfG-qRY>OxD)|D)Eyeol%L7I}>h}5rRa$1mO zNn<70n4jK0IGub@fLH_^jusg&wG(flng5<=CoDBCi1#aT%z4A%mT`s{&3;MaIl0zl zmm^>*KqMd&Rc>~7lueg=I?>ssBQp&x0m=-%d8?WhixLEu@`+bM%q472EQ-?QNlH>6 zY?7f7dw5BC5Sd_?fB&?2i{xObSa;08Kvd&eP1DFpL%b~nbJkYV9TH9l-Y%9ZnQvXj zgt#?>-lr{a5ExLa$e1OX#gR!T9CK4<0TCfkvLK43EG;PIs*2gkNliMVSu#?La1!f% zOp;0igw>L^RE^r8L=Und)9cp|x^W=Yr^|v+Yc`30W_)^Rn{}*ja;O4Ac-D;4A40`76hC?1d(cDEaerD_`6NP83SSwqZ>d zK|TlOBr$bKb0Q_2nGhn2E|b}lU2Vh(LS9=5jmr6^6zAd%xHIg1L{bT;8Egr{1Olps z)u0pgeSz|YMC(K(B_~0$>J86YQ>%|y%gU;K*0!--2QTXCd&5sNFsjemjbQd;#PQHt z0nMxz%CaSEo-}JRkf3bb$i}t&jz*r5C9zHal<|g?j1eunep-QmKaA_-L%Etr(70Y~i%Yu8zU@r^A zeP$1E!-7q3ki0D7L#C)+cF602bU@!&K`2uU892tIM!GyJ zMUF9|wa3Z}_P>{$#bA%S#8#0zaPB>^uG>kXIN~yc{OmlPR7J@P0MGRj7%LiKD-)%X zpl3!NR|5;^$w_>hk~v7qBLcJp3QJBHB)U8>hIx`bkcETgi+y*L*f7m@Dg0=gPu(IU zoGrF_IGy}H%mRw@LQa*j`Q%n_HNRi7omDpo($Pd}4_k_unj-@PY5b$Iyh>(g_PflR za>?i_X$%TM(L815gjSSu==YLJ!B+l`NKV{4*PsTO5Lj-`j&}aCXfJFg0quC$;?2V*0bz@VtWN9-T#uXPEzk056($7qS=a>+82 zAh#-_YK(=8!?^DqOG_-=1A{U}GNmBMiy17=PSfor`~jT;z&N>->LqOPQlMlXi}0f4 zc$ZW$qVdu*Nisd9uav+}YMkebfwXYsDq3_pjcgnu)_iEOKs>R(Ab(3T zUP4)hWGP|N3Fx~fd=MrAv;AX2S2_fVFeJrtU7pahcSj2W8)~>ZMf@c1DA}7crL9Qf zX`BlSX8TY+9iJ~*O-ghW8cmRwW7#eWplzwVOgB}M#Q;x`#1<4C2Nz5W;x*dsfkwkWb!U`*dmv6dLJaB z8B4MUV*$kG$@SKUKmM25WlufvMK8w}Y7v=eGP1Y^BT*}d(nnFvDp2>hq=-XMQnydC z(JQf9xXI9Tx^+Q%gRcfySz z_W;KC*#9_)?u93rOj!t-hl?CBBmEO(Hm*R{i*P|?Ge`UhDLiF%L(hy0G zkid%DM!ij{7R4*O61k+H%%?UwvrUVb1J}s z?FR4e7|*m&*&-QWr5n4dgT9SHjw+K3c->-zLjtDh@9vK3+o&+HVwr5fll2^c zTo`$COTmgdVTo}tl&6>FCuq}43@-5#XiHaa8K~Vkxj&ogCwOWD2~)x6tg^)!(-IQ~ zXQF8JAFT(A7?h&+GBhhVB@3TJD085Mp0F4V!Nn?p$k>p=D8$7(ca8|dV>Pd#J5~>| zG=m-zS;j2xO3U;>5uQuQ9~H8*a6&UphpSi!^-dp|%t1b_yi)lGp7RC8F*Z1Gl;?#P zS@NpL99W25K1rgMqxx@`krIbdC+)}=Q=3$n+5P!kl{v=B``Z!owli=ePt;72ImsM8w^_11%I zd9#};R}Vt>Q43G9bYKRFd1sf3lQ(0`41ri8ir7VhjRtskis~eu7H(hx=lOBb&wk$} z2^nQ?N%pvj$-HhKm9Hm-Cv(|a;!ep0i-brg@Zbj{OoWXQ$`VKfF7X0+2gSr#Gwion zmieYs!H6}!ZbfL*o=You_4yw+Kg!6>O~>+<5O`>po!@v|aG@U;0jiPGn6-|`5B7=4%{jy-fz?oP|R?^jxppii8O+;1o3mTL=n6`I` zP;wAi_(L=ly%f0?X8)SF2==A)TMA9&;w&jD$`nKD;UTN0@*7MP{oJQy$0V{*i?YYz zMAO{<6g>{z4)#`I&8KMTk^(Bgb0u>dxnP%-gO?Egkp+yCtpd}|1P^3ZfmZ0E(@9Gu zw-M-@7Al4-06Z!fnI1?@Ne?7Sxx)=H@*oA{Jdp?}9>l7_Ej)rxA>%Pzvs${Ly;n5X z7gW5gwJ71zNf7Md%oPN{*N89m1uYd7TJI(oj7!XSp>lhy!&)Dvjav~soN&blm%pqw_#A89tA z9KB(&GlD{!1%6seD3Lxbg4lPBe_@<3dO;|+D`_~~IItF7xBEINbJtZ2LW-BBl$Ep- zvprEsGvOK_C3`ePNY83XYVTSWF8O~HEL#nnwQASvoR2)a4WU4`+}t?`bqs zdq+B&3{HrsNtRp2TCgO3gB4)9#Um=)Lahxb1+LC*84#1QLl!1cX+V6A)X+(Us!HMvSHVQ%2-d*zrI*AelK@J#&}b^N z{J0X2o1L|7x{xi$fn`&ROm~VAxb(LA5mE_MZD@`u&|oab5~ z7A}shm_EqXP9RY3Y;Xh(`F$^p+Ij$jlw4eIfiaD=(NC5wjO93ln>NOgZfmmsyDhEv zhyLpGUr>TM&1|_@1Z!37Rb>$ayzhU34DB@wzhKqT234+5!F-|!_$B@i_O06Z`+_NfD1dYlAEty>wp`_9C z7Qz`M*@Of`2UX-rvz#w%6zCsS6AK!Uc#v>l-^G_306}RD;&d)ta$?knq=Xx8wljsB z8bkEH9T*~xOd3VCSY^}%B4zCYId5ViI0)!RKCKd7sShxB(-y&^rR>i_L~@f;0$soY z;c{A}#&U{9zZ8B)GR}}9qin*E`xhdalRywKQ&-uC5z{%=ZX$UpIwtlh51wzJ_lw>@ zQKi|zNXLX|0ohBjOuFg@l{M0e=No?{uql=(v01QVj1-{)aDMd(61v$_S0H91VOvEp z-72s#w$evTA}9NIg8roQ#kCT1c6LxvR;fJ}R$?oYWMrTf65Lh%s`P&l3xAhjfyZtd1+4z4q_2Fm|s zrV4*jZp>8@<1B0hHSz9lQ6gZ&eibV=_YMa2h@dy(NXg`~IWA;T@~%bQ!-Qs2 za!38U*RRnUB8A{`%&)aEPpx4`wC>2RCmcIq=g60ZJu0Quil`uZRR3#8sZfk^-Ap|} zV&F#W{2KWzY7yX?s?>Z}6$MqamdtFb2wLn4W}~rdSuDwRu?_%I7fAMJPvY2S^FY4x z6wS-etetH+sW&{MYO9_2mw*auISZX|6wV(oh--nYM|y~Jky)w=eU+FLg;;P$jb=RZ zK236rUDO+}pB6<0EmZs~EX30wZIU(3Smp`%@C!e|qMLkhfabOtxrrm(X=Pmr!bv*^ zV3Fujk-#~^hR@Jq9#PV|qvi;z6>&24vv{0HYd~5djz|&pxrw~J2r_|MXf`nGMZRjO zHgK|uVV;NS-y~!U3Q0#AJ&xcB61Qr!MCpME79B)MQOILV#*|=pD0^i^*IAmckQypE zj_u=Bs!9wa?AXk(Zh=ymhTZ6LHe&n8I< z29)gn2uBZh$&^n616L>o=Eie zy?7~@B8WW(H<(cT6@!2!r9DK~nfe0y%78r;B9fpPL!MHPMzGwPwTiC)BA5*+P|SwM zh%>BUM`Li?2}Jh9Vq?Za#FpoeF$sNbMZN|S6i@0gsRO__6v^o>otCOt;|Gb->zdg|+g`tI}OMrNeUX*~&K zVRI}IBzSS;ELDxqmKK%#2(i!^HHMm|wZsCKd_JH4%twL;7QBSAc#@c&D2k=VFZ>$F zw5Y8+F1UD6r*{CWiBBpFVXiJGIhusrrimdWZ*{D#0ahUjsLy376hfA!0!fBA3kL*t zi&2*r(f5mfjJ>+q44CE}d1EDGNYXWP)yS=xj8CvJjBzqRD7X{}W*uP0nPh*<4V|cK z1Ggu24qe zgZlMl0c509YSeu^uZzfm=DbrB$LnfR%w#T5ioQXG0_lUOLL^AiW&P0Ua)M9x3&8@Z z@wv0xBe~Lv-YVD(k7SgD+HtQp?&JkbEp2ONyF-3)=NQu=6qtwlipPV?#loJHbNV0$`F(oNLlU}GSOJ|d&zvF=o z%}VnQb&e;|O1`$>z7ACa15T`$ir5g?28oecwq`(s0NJkNB#hL6=Jsnc)g;rDc^QM) zTQAAT+Unn$U(d*CrYSiEGL?ARZY%o@dlZ!c8nEqnir~?*%v?uXw*9)t0}lh{771%Y z(e_8ok)rhY>4pW_8qDZW_##>6$OyCGR`QL(EYn3rv|-iJ|B zY#!$)OWPAlv%n}O2SKzmj@!uiO=3;I{uLH_l6F3$1jgka-^RUI1ApqcGX-< zYAizjxg2y@T9ipm+4Z3Sl-WF&K5$Wl!_7gaUUPDbvaL8ABy__Td%FdM0Hf?etS@eR zL}Hu1K0&M(Lro4s5lo>G4Nd_H?|^mM3p37+sF{wqY0W4o54{Tzc`qD+`CMC^*6It-ShY1|Mpb#Hw zI>(gSB@q=pVnK)cm06oIf2I+A019CwF}nycrDlm$xjxC=F}QGWP2?c&K0htk=|?eJ zs!hQPZZEFoz^nDC;*J>KjtQhJVMXKkaI2YnJ-h@ckfs*xx=|u^?&Q!3ZszWP`s9|>y9xHGBY*yjivVWluFOJB z{}M6wks$=Fd(50Hhx<}Cdy=W#yb?(F5Ry3m)hg)7yh*NIWSQoE#v!ki>`N(KDrR!B z=+$vo<(g|$T#r=kPNkTDG5`)G41PQRUj8jH01$rWR zWN@BEx*X<{i|k-iu27zoHOh+?cs)&%^Qc-el!{Wj9yafrxU=vaqgHT9dsSsl*S-T2 zG8_*E%!tCEDJg`-$R90T-I8~d(+4KXLVoh70mSOr(uIs--_F(x{slO2(ON`OysH(= zMyws2%Zunl?y_;&l0wlK>&}VRX6yL)_Du=0a@%oE1`6DdGXooIyE3UwLJ9mkP~HQH zOgb&LmK7NV2RFWc1J&%J%QkynQ6JNbqU5)Zrj#jdmS77$F%!}5JJg()Y(Bey^Z^~B z4#CbPs3DxNaS1gs6YI88kcp2xZTlZGN+fx?&`NfhUdm~^X}|V^zs~YAQYHCkYOIoGl&OX6wyjCc36=d@B1I*H5_NxnqWqBA>)W|Rb%5kray58o-$qU>8 z%ou`m*4QVEp;ob1Nh%i8CYWv@6R*+gkw!q&L6E?_D%B0qC=pI&l`+;PWyFGs`Q1|j zpZ@%htJ(rM(Z~7)yhKH_)r)2N6Rwx8e=4j$NK2Q%sOV&AU{#BdB&27Sgg*uBcrEp^ z)AtuCJcv(81%Cwzg$hMfZEFAq#eT$tT$UdbHs=LI;}4bpQS?*?(+5Jcjf>Ic9xYH3 zViX)=&!|+uB$2Fhq@T(=gEsPkcZA#;EAR|$FSs|v)Juu83YzCkRt(C3F^Vx)o6HSz z8eg`T)o3Vt_Y7JzK*b`0>1G*;Jrw>J8^IIxEUD48-!QRYhmv3mdJzg5m-kE@zF-C# z;^|7AonU1Rw!3lit1#fl7epXD`K4$;j2Of{Q6^(*TSgaAu1@as9E0I~#&e~t`K4_1 zJ>Qh(!Mq#88iW=_?m-^fez8>iS+=El|Kni1%9(FP#vV+ln=WP_NA zjL)I5l~n~TdTh5_FY|ux@0>!9O7rAG&ZN*blxUNbH>}BvM#`saAe4eY9`gW(a~Lo8 zb}VSIT(-ml*!qpc=;XaAcnV5Xb`zzGH!u$hOF=;?ELesd8|$-_@e01BLSf&1$RD z%09W|7QIP%2doJtA+PQNR&bNj4w@fWloiF)DbvwENm1}QOlY2mQlVN*3jNl2kl2k&dq}iy51xnc) zW6|HKip`b))-!wB22&f6d8o=`P@mNULrcNtRTgLDBEcPo^)yuooNLFWum#}NN1t_^ z&?t2pb7o~l6!Wp5uD~IQ-;rPp7Bvo(gv?wjN3s&b@}#{wRM>+9?uc;8op>L$g6twbXq&m}or7sS<%S<>v8jqVLsuioGuFTcYB+us*vq^s@7 z0A4Lh>s`F0+NQ#x^=*;67jkOO-VYF(~Mr z`t2q=Pe{MkA?8Mtl4-78)X_-t;wNiuKD)xS?KY<`h*0JWX8iD8$6p^o`)JzDZmrk> zGi)9j*vl3DRu;rDLV?MSMw5>xsu_m!G*UG|V2+WsY2*n~>j6*lEmj%UR$mH(&(kxH zhfs-omGmu6k6Oh-+aHV+bkgW;6a}U0^X60`Qs5W>=5$b#vXSGEPA5mKb-+BRZ=0)$ zgSMx0!K8#`<~CJoh(qR9dpWv$OfnioB=OR3ENURyNlKmJ?C%u4$eZTjcAs#aSnf-0 z^vMrcakBRwF9O0HnJ+o;RAtMJqzy!WdHFiAyQ?`-`NBP#V6Bo%i8kwS^r#Pb{y~&l zwlww8b$kx8*RKj9xeb}wou6BUlgrUk6AgWXHK>;w;Rhs(O(m(&io}Dszjz;Zoed7a z!8gq=hwfu8Klvb=xAqX(l&F%M>84AKQXEf3S-W9tvrYNigIJ%5{lG(W2Va@}`z$S4yY^Cx6W(-DtI* zZRw)e&qJtoT^e=EEx{ z&|o?xuYm;a1a*lGraI$_+vv(BNDX$)oy)tt1B|(q2PkN;bCk_=v6`^?jC4Ig-F3ai zp&IXkadE6hve~5ynpm_5GxcfS5)KY%s!@&XLJ-zxzHNM z1VsZ^iW_OGFN^q~`%VF63@ywV428lb8f;#ZL;uGJ%yTG!SShGe4wRLJxKn5*QMUaT(Beql zpPDIRMnM1uh=$6#6BT;t7EhHfi>kT0a6!D7LEP0E^$&~T(`jjBD!fOPE>Eh6bYQ-w zY-B8^=EPOR+Rc_7FCp|2^iYsLDCIsl{%Jrbfv(OcsFx2I@~TnE{HU1tzD30}I&{1bJE=K%aG}Kz6&Wnh;XxWl2Ksv!D zRn=MV!0omCx{8F{9~gp2OJQ3Y!4?8)qcb=hk?VeL@kmY?%Xzd(!j}G|OXg@F-vD4h zf)umpt<`u(E?eP6HBK5P7d8A)LO#2mw7sI5Y3CUDQFNZnV8vRIFaFb@!m8wY*KExo zcmN>!7P?ydMWgZ7V%Au62V6-w^j`w}n2;zbJYeMTpw2dsoQH*av4}vFSyNzDSwvy3 zq~aH%hand-VXy!|sey>{>Ll!(HsMS177hZ5u^KbgdP4EdKggx9 zt*sT0n$#nV@le6Xktr!^QwxO=$*#|yPV3iQ63esa)l%yi^(Ii!ws;y{iHPAM?6i~? zuJ1*&ZQYwUjQ=+!imL)SfC1vmSkK72A69DaR^t4wwAUK>KIXrc!5zmHLk$wQ4(tEky`-9oYCEmiZ+LI z9QB+m{YUT?E=tKSXh+?Gq*sHFxzKLRf|k)iZsHfJ4w}|l*cCQ))YpW!6J`Y$qCyHT9s;0yn+3uyWbOMqT(aM&7(x`|55(o#?QAPY7B$KtdJTr)9)iMPIvi4E+355eLwO-6)TU}4D>E5cH) z_@q~*sSu{$j;zx|cM7P??W2Iwh%PyTJ4B3O;??YWnbc{`X)Gkcvc=)DQZ;%-(7`*XK82?IZEg=AlVobvlQ-|+txxZNXwIbMB!(41&&$6v)3CMPS0;p5 z^*H;Z;y}cmwc%=nC~jkj&8%*igdrKIO9LA7tYM`3B{IvtP<#2#=T~RdP@CUWUv7al zwa%z4R3jp%ZWGzHwkVRT6|O2!oS7`AS{nZ3fDACLsh%mQhk`Et8bR7rvV6sjZv;?b zHk@20Q1MdHIU{%?l&iO}`Y7IUE5$;r0a35 z`39v0y5XAz%q{0<9XM0mv zQCd~TQ702qVBL>by%4WlI;EAa>U3H0iOQW|WWtq`a^t1@g_XyHH|aEA1Xb~Y z67@w``Ccea#nOn4+K2MO$Tj{9Z%$Q#on?&W^6(_X-- zT`IKjW#yr5O3*SN^sAM6qVhuS-CC`tlW*&wK$BN8B4K0e$qSo{v$xj))uV`AEdARl zmYW>v*D)s|aABwRMb7ZNLy+N5A zy>YF=1;*xXUId1Clj|Frn;^Y%+1kJxu{*}9l})x_b987KUCcw`b&xRrWQr8lHlCN?-6%kO!uER!dC@@VNp1in0pmY#{zl3>9=d4_6Tqezr#Lt+F zH}Jz-y|hxrO8^ktb)$1ZEpQ74Lx7+tNi;Y&Ve*-CV5cL_b-C2l=uy=+p?2ol&n)(l z#VQyDa5@y!q^jJ(Aa~iDGJl!(afarJzOJI63X`KGwy2y;7!}%*3w4U4iTmY>6*>xp zLT1E@B&iQD|5S|~D?w>~38N{;RHI)UYvjeYrO|V*=mjppJ?=IaII1`+V5@?WzE4f3 zfKctFmei%x2(}qqG3_ z;&b#|E);wr>#O`AP1T0wz038h8}KHB*=9J~WIKV8-V>R!)ZbO)%3&-5_Z2~9=TV)KTsX$_x zXN5S39VA~RFYE?ibaNGDjG3~GF{jm8p*LPPCilWZ$Q9>rEhE}ZT7*J+@})64gF;Mw zJtvQs^C;{tj#X^X63|%MpzIK@sa7&}3{5N0&8iXs=sj|b7{De0gPouH1eo8VL#K;Q zpX-3p+6LlOHo6p{n2m-slI=)?KxJPQJgqxF#%3#@4ONF7V}6qypP<^Jad^|>8n>y0 z#1=XvguybV?n$8s`MELVh+>t>iQROZa>^R>XqJvXQ=%^BgqFXg5gL!OJFkwpNqNM= zbE~)Z$=l*9oSJW95$m<6AXGH2hr>LvniaL7+h9H zaZ;AqJOViJlrK=2=g#I9#qy-K+iAp5O+9x!Dg{linEwDv{;Dg4;?7rMhaGi2l#LCp z5n1f4Yh_&UZ=w=Ps@u#@wfW|OC043jHi8)!m73c(JYuO}295+0+nK7_)jgR7Dz5hl zN)gLZcz#_ki7VXp3f2mU1rnAksb6Xv6)74-HeZZ#)OC>0G^Hxk#&JHPML4-or{ti- z(j@>(Jm!Vi=6u_2vIds)v&ohckKCz^Dq2#v6V+N@Li!K>y>-3F;DuDAC*budc`G@? z(RK4ru~t=!E&uq#+~O%QPQ0u#Ab{w$K41yX(r`g7oP)P6RjPz@S+Ki%5Cnqr|EyNh z(u64{CB(=qM=erlNoWaJ$|F&9A$Z|sQENxV63rf02_v8_B)6D3fxcxd`FtF38H`5A z@Kd&@1tr1C(D8A}`=qA4$kkIJu|}&qJIYe6dGNXy@JfYt9j){aUjlV z>YQ$%aB&(IyuJ2pUW_hW5Np~KEnUH9%3#$CD_)B|$u?>ny1&KXNgJ_(Ishu^IBC2? zRX2;}BYXUaT}pelzV@wR?5*WbCxxN8Vpt$FX-_ob7i$(D)ugLNvC7Ko_3#v*K|f*w zjdJ)#vSJY`F1jpvmW_FBFDq_@Tv`=xUo<~32}Y2n^XSPmbU$^>Dov`A4r%aVxJl?=ZDhtrCZzqy#2WoXo#e5XtR2?f0iX!VW$i$Zs1VwN0zLU9OVg$5^I z1!WBeXU$@iCUIxU|H=FksGC6`^$m)_hxrT2H^!1)Ql4|gwq@^uwlfztFUDAeMZWnS zY{5mb3o)-qr}%SzRC;N1fx^fHxym%!8TsZYR!D%F8&Y(qWy4p;!J{yDnEojXYr7Fw zy^p6L)#<+Wiq>0RZ3BtRt=r33%(B?4NP>@Um;`GP9SvfrB!5Etu==;zCA;cUmB6A$ zF!7hlDVwEFMLkxQdNRKud)kpf&l<6^Z?t{Ea;U-gDS{eJU1eNUeG>(dkXAsD6p)Zc zSh`a{Qo2Jzx*McX8Y$_L?p#=!rMqL7UAkGi5qOQ~!@HmM)7<&rIdjg;{oOmWZxXC+ zjjx;haI7DtJ<^|RMrx`tLtNjN9=zxW1XQguz4B+)vjk*c+?n}-*y6Vj${1U%n>k5WhcHnew9e`P7b(X{gB>3Lwv9%g>*%0*U0NdMs=HMDR2Q&-I$SkZ zzCsahr({fI2qzL8#~^--(kJqkUdEb+H1pGxlk=pf1S!e3oWr6rDz52FSkkrFhLFnQ zNmqFGT`O9CJ~3*b+dTKX>RQTq_Ypq|qU4#O?Q$u`1FiW-6$Q4{0d1u$yN9G}wT5~- znc1m#T;5CsJ|cO`W1wHmGsmL#GH_dg*#}~ z)x^q&@#iM5$=g?Im zAM}a~0L4gVUFdTtJXnSh0Z6PWG8B2A_Jnp2k}-KSCr8n*U_*i}dEWtQN_gBkkOjvN zFR($%vu1OI1E0!RtwKyV0J$IDM;hoWDVXh5Hn;K_7QzWLP0!KC5cp)LP2*orh^lq{ z`%4ebs)S1=#TAs@yLn^vc}Tv?1U+T$b&W_aO7xY=DC1BkY5i5NF*86o6mGdHzY@aL z;|#D_i7fspB=F9#XE!;@ELEk*X-;iliJ?lX0%OYSsHDy-37=Xg2u zK^Z%4+=)^d9MFaZqsPQRJ4{T|pf#57YT);bLkCRFopxK8q53ug#mCkLFiC3lU?-KJ zptxMRA)l3DN_`ySuk`*(F>hAgWajphHuY}~CvENS{mTS&@U-WCHe&SIKZ~YPKUTG~ zX$vcz!*v@7of|=cS)I*Yw0MEBp$_3R$9ZYd-!^{e4rZtG_R zB`I`T5Od{Ldb$~Uk>m!Yb<7lU>oqC%eBS$Yba)MKnISip2-#?$Nee1YqlgIXZ2*0D-MJhq68bSU>q5fjD~-2xV-G2|V_X3gX4r6?6cha3EM zsz~u??=-yLSQx)GgflWQF}GXGV=!3+Y3hTr3j_RNYRCB+$AX`Ut+vgZn(H+SG>{C6 zzCnYtAiJ&ENo(_<-fQ8&b(z8VA_>XLIZxU2EA4vTF}#Mvwp4-0AXF^22oq291&4{Z ziq;uH0G}VE3;J#yQ+HHgXuNRA2w7>^i`LWO&FyCYAoud}56|3+rdEnM7FdfD)Fi)^ zH>*@iiG};`*SB9cD(CAJKJzzAMYnZ7gZ~1$DeTWdhFry$?An?-k%8 z!s9(%-Z_!djE2|iNp@Gzia_p4v3docsCqq59h#L|r?qj*0b?7_!cKA97j=U4rFfhk z;nsBW`U*|O`7v?yh`c-r#>pmlDNwAKw!Wv6waHL?^GISmR(e|#!5tsQct4}CB(;Gp zL8CZI6r}v+eDUW&#|uTBJF}Os6l##eyc42UfH1mwUc#dHJ*3YVGo?C7LmXYrKd*RM zmhPB_>?gs6eRaR4cDXZ#ShvN`ZcV-Qj#^A0ovBe*2*qD#rK5-nTlmt*te-eck`bMg z6SQE-G=kD1CS3N1Q4IVFdqO!|-na}a9bV(Lk zZ%J4%@X3hEmR|d~^i;e7_3()W8ejNX8NW!Sz(p(7K)XHt2%%(Eu=<>#!l? z(`M8r8Z~)u-leuK#>Wh6ZtYRFsW+f__&M0Ce6-Otvc8ona6IRTxhj!K zSaTPlf8Z>##V~@`EeCU3+ml!%2f8pv&FAt_<0MhOl>BM`Y5JVO2eI>wqWG#eO*TX9|;So@f3>PX{#4gDO=vqfIb^d7s*z zy_f(}lT#Wp)XG;C!Q_f&9Le680QM5sDx@HklGh}__ZoZW{Pjqd~kR_4p^l)W!@$DdYs z%jX58q~D7CI1HnBrjj2v@f=Lx9r@Nz6f5{=LzzcNl)z-=T1}o8VwOoI`@PnM4Y%5R zqlAsJyYK0!0TjW=dvxUc(LPoQYF)&^2m#IhdAU(rx2}*jfYpk?DYj(@39$ zP;5)?=fmY}M1^xS_JP5xk)g*kZcBa8LQ~z+n1kPMPld`G@$tCu*Ku<+^c7wXcyl(+ zYnNW*_U}Yq4&YXMIpLPxgy*sh3htvXV?G=5a5wzAjytK%MWY}DdeW;^UI3UAN^aAx zy7fKw86O(K(WS{p>8qx3zVo+oEXixA5g7L33u(Mq3a$+YS6*m}F!yn+={Dc8RL(U} z()Lg*1)9Y57H>RrTQPpAG_7_HNkGmpZY!rOJAQLW($d1^UFS#vsHgYTTXjn7>Kf&T zwLXVs17+?Zv=R_SimJmN zq>TJ@2BnEu6(8X5?tv$7%jlKa}i30KGP)kDUCL zczu%Y@>`ER!nT`&q5By;i7Gn3wkSAd2DB;1!_4IXK zJ>rD6MCSGR=RS_igXRtF6F*dJO;Q`yN^)N?cjZMaUz||HwaQ8a$cN-rWCvVeLh?*Y zS{uI-)pK*Gx(QP4llRU&RG#Zl!fBX5b;@Ss5aYv}zfR&Zo}priKP zXE}<-HQ+AaMu%nr;`(fonlXQUT?2Ffpkj-qUyD7;seMIgImmmNj{M-$0jE`(%|w7@ zAz2k-)$dD1c63<@m4MYm8`bl<`RlX^2);zkSEJH~i38=F7Lm5zY5-Nj3EAG(TRtP0 zNtLWHdm|5?%~HuwNfl6{d+JiUjz;nb!**p2$z1CKoYqtB%~@lUK4*M`PffP*p+Vz4 zLPX;g11HUz-20W+F}n0R?yxSMJQw_`8qcIo3se=>Tz099_%Sh|Hy^_D!f}3of^2>} z8=h?s%+ejv>`n&xP+A)!$(NSi%m(R#F0wSc9>|#p%(GPpLU-qO--X;yTmf>rSTn%N z2~E^de&x?xmCjTb3Ui@dPnq=z@vEX<=p(I8iIGyP8O1;D588u@M?CZ?qyqK(!*X{9~*P?MDGYX7Ei1sv(B)^ zt#~EcqaU#Q`F%l&5uClJoZQcCop@`!Nwk+8Yx)ebyd1Lu{Z)j8rrSFh+WbxkMbezp z6Hu?U_g+Lv+bGcZ+G3Y3RC9%t$woJmuI0(=CQQEHkH#kDUAaojISrxg;Bg)UvJHtzVOs{I?hklhhIa zBZMt`wXZG_6f5_1xY~mN*2=lm^wN>JSgD_%1^9v*ThZ^+u>IsnQs~`rSCNQ$i<;xI z>Z^RB`A?|AJ&|pifyZ!xujslOi-a*G9;GrHpB&%(*zgM^|M=5$b^iQ$HQ0vI9zCn} zdjY6N#iL_MNG&bYowr~^t8NmP?acNCL2O_@>)PuA9!~?bM6aI!A1vEPeYcl6hD0;+ z8~Wd1OT<-4+YZX!^$k(&G|9m(5@nDq4dR!i8-*{$kvxORUEDncf>h$gLK$ONS6^F^ zJaLtIKyfTRtmVzh%EOc?R>Bmr-mabi)jv@w{17hOxkufAK5#rp`uGH?wXl=UH081Q zGNoa(hO37n-Tp)&5v?;ODHosTs%m2WHea5#(?7o5i{w5N`5i4_ zI#(0d6HpytZ!x{TeHffpetD+3F17fIcR?RBUtxQnl|*>EmvLzn9J)+@kl=pEWc`uR z{bH+cRir$rf6sh%O+&OTi&~YPTwR;q_j*z`%javb-lQ-qEUUqUN0N*G*0RP15PfAb z8@ymGDZn)sp`$J)y^M|7U}prp!eBm98073zA12{__Tyl{J~z{=*hPdF6GWAK6;5H(8~U zgubBcf-bQZQs^Poyub#68ykbK-Vuinf1aeD%Qn(uZjc$NY@TZGuEmLnBjXhmCo$Rq znIU}9x~s{kGf9%PvanLVLKlx&TAQ^bv=O`@B_?+D;oR{$C%OY>QQ8azYkmGT&}Ctc zw7z8kmBb6)o_>w4+yV8RV)8Ba^}u1nqvB8hJ}xve5h#@Obe2}Jn&%$xZpX1b8I?Nr zb_vt+@X3A^lP$bm#U)O1ID`uBhaJ4>d~AipXZ)mJlXUxKVp`Lt#od--0k7F@pWF zKBkjWDO=tn(B(&_dfx$uQ!04y9+=>2SEtvqFUiV&ILfjySSd}9I1Sa=5#LGgKz!G^ zqP;LQgsAU;>&TYx!KWoQeP4H>Ml8#K&%{r@;}%>+*3_PM9ymyyVW2ZUgKs`{Fwru) zczV0vs%cGYUok~Y#8}oJr|Y1?GHYiK_<4XGm-kmQ9Y# zXw^D=;VTEN{e=aZ1~01)3qdSsaU^~E9vq9$-F>jMkZ^7RV7oa-_T?@Clppq+I3c*I zVn_Fo06snmEY|zlFQPt=Rr2&oQ(j*)V zQ_`kpN0h6Q_Nld@gd94NP>G?-)i;JvrsA?qKMmi;MPZ5(eXyI(M`XGSqm=RcOGgo|Z==?$V5BXg?D(l?TQHnoTf9YxhP_D)~~~lWjHAgbD08 z-}kDvl(p-PUaeNM!GDlCnuqh~)*dg>Lz$z~I}VA)GsJ_%!2b3YsSiwE-g`3y*KG9eV9_nWB~ayOj|(g zSYqd%=qomVe;K*~F`&@X02r4+s7Mw%i;uf;LPT_a0iLD@d8NTSwC;UU^J*UCgR~&b zhL^dqJ4?pTU1NIOvl^bjbC;Sr5^^k%NgBTrO7ewMP2h>1rA|3Hu=Gjx3!Spgu2$Oc z6&!+^_Bn_T7(>Dv6fPXawCgTJpmNW~Zh4G(uew%h4hI>LEP;LG7*Fm?Md3-6w!=Jn z5-rAq;&L!p)P0V$OUC+OC5pp+aC}$`5W?(W46DbID8^coH^C1pv0Z&8n_!{gRXSfi zJ?0a^3|M^a=i#E%5ulx8PS9zse+EFsw4e2|ak!aSb;U}iayT}@QP3WaAcaSfRXv^a zKDE=gR?c+oLWrJ8U)-)}I8@h0FZz%Au1`5EkYf|c?H5K%BE#v+}w;aQ@JNnttePk-vhvGG`azPf_?sx@NQPONK2vMnOse98UIS% zT+a$u0==g9OapI|YPf^4yCFlKT;RGQ7@|J4L?U#>+CCzK9o!UE9eSmCK|8m$7A^d$ z-p&8+oW>RwuT-?}>tn3#eFg3JCP10UW;uuTwm+4kBJ^)WDs_Cfz~a(vtn~TCIhqE& zVS_ogkI%K`{0odx%ECoji7&;_{wRA{U>o0RD$W|6C9)pD?cz6o#9Yzj1IceX47sfr1wv9skUnq~*(PZFAS409o>^8?J2FQ^Av|Ni)DDUvbBL3+j18C^gmC zYlmOB8ua+V`z3-A(95d@`+d#j8#aD3I}`|EJ4qN>%ibf-Hh`4u*W3Mqf)AqN1{& z2-;hqjKak`D2_t387EX-%h(wIDnAm^!G5ti`@ow&Qk1K(>Mm(~jIC8~tREWPLQ@#a z8!qtLWa--8X~=(?QIWUUG(8ya63U1a_AqfjqSFx&-D%naw-Vmle}X!Xzj~rO+aYZk zm|41{=QmXI2|c`T!rZ)@qK)6|hjIF_nk7o~7lwnh9(MB)p}hc#yLw8AQc0e9h9@`X z7#vS1!D4K1dQIC8bkVbZ3%QO^A0Ia3O7#iYPy^U)z8T=m2;zxQ?2uSTn>%HdxeCQN?6G?G#hp@sJ-5 zdP&@l%0@faT!?_IiTm8^f1a8#r+|O65uC1N=+7mo%S{Ha1P1wE?ac9Q*D~th=B(j~d6~?s>nq$9yT_`MhhntuKo=w4U(j`>03`W) z$K9l$$mLzio9=y)!w;#y=ZND*53?B3G~(=+SJ`=5Gn_`kP*crf__KDW-m!O~%z49- zLhnN`GVrE)>1g#mjjJDkT2zm#o5Lxw7uX1pz`YK3Spui2qu2b}eFhhNvjRorzWj;H zs%H=MTdeCn1?&!{jk+ayxu875a3;+*cgj0Y$8mZH+TqaM5>eMQYhQQS4HtC{d}lM+ zEQ{UZh`@Rc?{C++Ce%X99!!WDKXA!{VF?$7d031E^1LzMc8-Bh?Z2gzZ0de$F|TEC zQbQ|DGM7B)IcyRzWc0>rlI}fG30C4`?*tLA%0oumcI=r`_Ie?m|BpcdL6rp3^Y-PM zNPjYTd^mnqzocRKQP)7nagc*%sLRBsEP6wqw*H!Q&N@)NXg6xNP0_r@(P`Qo=qiyP zGM-BtYQHA()Iks1BJf>5xl5}k-KnFRh+xN6hWHQ9At(z`c6sZOLh{yR(Aj3UuR0|t zx%T%f!9(OOBPZ?A4Wnz2sKxVvaGDQ~&r;kmH9sVF&PwXtU1v_;8&mn7K$^YROc;>@ zBag5|p0?krWS?=!p7L$ZpshH;HcvHG?8KYaOE1S)<8(|1hQ?e@sGwgUEGk<+%wn#* z@PICyXAMEwRc_85Zgz%ueRUgMb(Kw{UCXsUFX&%ABshd0Qk9l2d}&u!>DOKxH*WBk z6==INN?6^rqaS*W67lo(lbo;7v6QO&DSy7NvWbL07TEC27?>MMbil-c3c z%kucCVZOj9B*yRf0anfrKjOqn{DXb|%5q?pBN=OytZ+Vqw$XUj@R48HEY{Hj?I!M{@&4Y6&rE#ja9`W(lX|^$G>xF%hTPg)br0@4-+o8 zT;rxLu1i`RF#Db;f`({((TLK2cr5s!!-gzs7w@y;2CS)l^vH);`J3!aHaiuA z)B31J#-=QlyPPifgw3DbHMV2Gey|_?1CB=tq{(j=gp1Xj$7CJ#aX#vd{RM}^qpO+8 zK0>=(6H42uV>VxTpZ2Qrpw+znmu^{Q<6|pcS&M7IvN9Lwo)hkpzV#2^oWJ8X@-IGS zF*dT(D;Rg!a^t_Z5FB{iRlyf}!bg?DmlvEQ4ZKntNW?sEsG)_J*|GJtjM95%)sI}ek3nRN-rGu<|IG>nY{Mp&C-tk0a zQ6vT3Yk@L}u-31Hf$BfYEdrGa_^pY!&6li#4MUgP;D;Hv%UZJ4PC*JN8|J$M<(q>f zD*4FyxjQJGkj-H|Z{-OvQGWhjj&>5VNQ#xx&neQkD+J`!6Z+$4o!G~$>nkdK9M_WY zd;bixbprd?$!6DhpS762Gus@YDf8^F!%}}!*Tc=$#>pdyk&KnBst%?TbMTlToZWay zeQ($rDCWJAyO?q{c1w2YBq`OOK7lQ$XyZCxcfNt<=_y7?Eu_>p%1Vt?Cy@Ft>B{$` zfVInQc?6RViQ^BelsAK8rsHP_11#_2dr-`pJ(je~gCmXKnu=|C_I@QHDKtB$0=4_Ri1a z3#hAX$&aPGLVQA`eLOkP_{%xfNySVVL59Jc-j6lH*~TdzR^uIY>Yz}*(@(c4I9-!w z!|9^bZrlGL3)CrGQp-Phg!)$q>sdaXA6{@UsXZ(9)<6{Ga{2sHWxEZ@N(0^7kiC4@ zF5?x~dvR0Mpq%`a`}rSN%wqJ!BY}F$<*)qp6A|-BtWaEsyRwAUqb1X4b;xjAl5E?6 z4<@KCr;q{wR@|y`I90o!-g2*+;F4{;12_py*$)k}p4CuU{=^lHoa*8hZ9VL#sAI#;^*2_=Q-^S$nHQ6VNAWY6y zwDAAAy;qR})4IbSdt&~FX4acK8Hiac@c`=%w4C6LG~tfN#>O#T(n=w;Vn?^l^Ox+C z;NfgPn42^+&j#9fNJ3r4X zXL#tdBw_zMT1n`AK4N^A`3DZ`3B=?) zGl%+gawmz$e(sor=bSHg2-BOnHPuo>t(9sdS10E$nimqi^9B8vcNe_W6@#44jw~a? z?k}bv07veAr&%q>bJ5%E!u=i;{y&bN#marp{Nwwqz?K>q8xMt>Ul9DJRhWmt4=dlJ zU(|==o*nwdXr_hVhPvZ~Vf4m++LaBU29>T56?=sT21Qql@% z+lp>fu3|T1oN{BV%uibEeDTPSRAn`H=rGg1H}sSdI^-p{rPgTX)N*+3HYhW(Zh5=?aj!6HA;ER$(dYV3DBzrO}`%l2}S8~ly14QML0qp({1J*WByspE`PUa;-cIw^6~d>*GfUGs!VzZ zlhCc&EvG5pnZ7jPa)UOIv)j+$YQVU${LBJNw2Q78hThbhIX@fdZM!7dNg# zdmq62zy~sS7R9bfvhAx!`1RO@Y?I8ZW|~pYU_a;2O)F!JJq;axq>h{7`g&Vd4x43K zRfW1fe`1ZzxS7}RC;$h~`W5WAJH3C6gC`3iL7T%K&OvmWg1P6e6y3jn0&nX6h$d*B zWWS)G$s04>?Az!4C$CW1kCm6}AU2kX2eUheaM3mh)n#6HrK}ZCK9F%Pn3R z7GK%KBFTT=SA{tFuCv~tFOT`^g*lt``FZcO5>2FAZ5H3q@3B|wEb{+#4%vVqB8lZN zf2Yuf;v#z?md50G_@5qzavS5xPJJk=)LpZ%j_CiBJlV>VfdS`>$`on zCx7|uS5thqGfc)EFK~U){=O>V=74kZs^j2Z>-MOv#)+%nN3;;{Zxzp`Y{H9g>tk5~ z(5eysuz(ZPE4>tH7g>kE+fAiO0WDPUr`T>|9hOs8Dj+Y3d_PY96-l)>Pq{n39P8Kr zUxnE&v#V9ESDGwL1Fx=>YnE04^?x!a`=!mS=)K=)f@naeSnQApSKJ+az+B&(y~XrC zif$Nozj5=KJ=L_X1#0B{zvlkBr2MZ2o-cPbaadEki^CziMi*US_B{utOO2x2gQ-`^ z>+6aJi8Niupfn411os}gymy*u?AZe`)V{iFJv1!Sy zy$bvG2Y7YaK4V@+t%hBYrxGrcRCgBDZKrwYU=ZW4YOtw%>`nz&&OzM&JDjC%;lU%t z5wUZx*1_YM|4BQ9-F~|&vmp4|wDK_lE>lpW+syW1yS#U}I*e>ij0}G4vzK0^-&j@l zj;b1T`*W7@AN#=(lk8-I1#G-ycgh4FK!Ww=N-4d&&dr9fxSV_eunGkO8lca88b{tZ&@o*B>%{+~#^I4J;&D4?c|zsWVx zeKShG2`*;nuL4-@Z{N;Wg}7T>HcS zlr<`zw>Rf99KRyCb(f_)kI!H`>9*x2Hf$y~(z9`4wH;iwMG%r?O=4*|QA3=XGv2B( zlgrrtXuGcMiAwL<|7diQH{M0)9B*syZc;P>-w-J_;qAa<%^yVnqKjV7DnH=$K5C3a=pt zZZ+P3W?)-qJ+|k;QyoWrG&>zfc9#%ozi1X9ti`L(RxtKo6SUrp@?!kh$0Kdi;S;H- zv4+##AWzISxU*F_*%hz04hZ@rndmBgZtRKi)~yNuq4{<<4KU=>3 literal 0 HcmV?d00001 diff --git a/gui_data/img/UVR.icns b/gui_data/img/UVR.icns new file mode 100644 index 0000000000000000000000000000000000000000..458aa26deeb74ad6a25218021cef4a1a12fa6001 GIT binary patch literal 374066 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