From 0e1b5a684744fac5235a216da1d76fc039992043 Mon Sep 17 00:00:00 2001 From: prof-spock Date: Mon, 4 Mar 2024 20:29:26 +0100 Subject: [PATCH] changed sample rate handling and library search algorithm --- FluidSynthPlugin-documentation.pdf | Bin 1246900 -> 1247690 bytes buildSetup/CMakeLists.txt | 18 +- buildSetup/CPPCompilerConfiguration.cmake | 48 +- .../FluidSynthPlugin-doxygen-FULL.cfg.in | 142 -- doc/latex/FluidSynthPlugin-documentation.ltx | 28 +- internalDocumentation/html/_assertion_8h.html | 45 +- internalDocumentation/html/_assertion_8h.js | 5 +- .../html/_assertion_8h__dep__incl.map | 100 +- .../html/_assertion_8h__dep__incl.md5 | 2 +- .../html/_assertion_8h__dep__incl.svg | 736 +++++------ .../html/_assertion_8h__dep__incl_org.svg | 736 +++++------ .../html/_assertion_8h__incl.map | 5 +- .../html/_assertion_8h__incl.md5 | 2 +- .../html/_assertion_8h__incl.svg | 35 +- .../html/_assertion_8h_source.html | 48 +- .../html/_audio_sample_8h.html | 4 +- .../html/_audio_sample_8h__dep__incl.map | 34 +- .../html/_audio_sample_8h__dep__incl.md5 | 2 +- .../html/_audio_sample_8h__dep__incl.svg | 156 +-- .../html/_audio_sample_8h__dep__incl_org.svg | 156 +-- .../html/_audio_sample_8h__incl.map | 23 +- .../html/_audio_sample_8h__incl.md5 | 2 +- .../html/_audio_sample_8h__incl.svg | 137 +- .../_audio_sample_fifo_queue_8cpp-inc.html | 2 +- ..._sample_fifo_queue_8cpp-inc__dep__incl.map | 12 +- ..._sample_fifo_queue_8cpp-inc__dep__incl.md5 | 2 +- ..._sample_fifo_queue_8cpp-inc__dep__incl.svg | 52 +- ...audio_sample_fifo_queue_8cpp-inc__incl.map | 49 +- ...audio_sample_fifo_queue_8cpp-inc__incl.md5 | 2 +- ...audio_sample_fifo_queue_8cpp-inc__incl.svg | 457 ++++--- ...o_sample_fifo_queue_8cpp-inc__incl_org.svg | 457 ++++--- .../_audio_sample_fifo_queue_8cpp__incl.map | 59 +- .../_audio_sample_fifo_queue_8cpp__incl.md5 | 2 +- .../_audio_sample_fifo_queue_8cpp__incl.svg | 611 +++++---- ...audio_sample_fifo_queue_8cpp__incl_org.svg | 611 +++++---- .../html/_audio_sample_fifo_queue_8h.html | 2 +- ..._audio_sample_fifo_queue_8h__dep__incl.map | 10 +- ..._audio_sample_fifo_queue_8h__dep__incl.md5 | 2 +- ..._audio_sample_fifo_queue_8h__dep__incl.svg | 44 +- .../_audio_sample_fifo_queue_8h__incl.map | 57 +- .../_audio_sample_fifo_queue_8h__incl.md5 | 2 +- .../_audio_sample_fifo_queue_8h__incl.svg | 603 +++++---- .../_audio_sample_fifo_queue_8h__incl_org.svg | 603 +++++---- .../_audio_sample_fifo_queue_8h_source.html | 6 +- ...dio_sample_fifo_queue_vector_8cpp-inc.html | 14 +- ...audio_sample_fifo_queue_vector_8cpp-inc.js | 4 + ..._fifo_queue_vector_8cpp-inc__dep__incl.map | 8 +- ..._fifo_queue_vector_8cpp-inc__dep__incl.md5 | 2 +- ..._fifo_queue_vector_8cpp-inc__dep__incl.svg | 36 +- ...ample_fifo_queue_vector_8cpp-inc__incl.map | 45 +- ...ample_fifo_queue_vector_8cpp-inc__incl.md5 | 2 +- ...ample_fifo_queue_vector_8cpp-inc__incl.svg | 403 +++--- ...e_fifo_queue_vector_8cpp-inc__incl_org.svg | 403 +++--- ...io_sample_fifo_queue_vector_8cpp__incl.map | 67 +- ...io_sample_fifo_queue_vector_8cpp__incl.md5 | 2 +- ...io_sample_fifo_queue_vector_8cpp__incl.svg | 715 +++++------ ...ample_fifo_queue_vector_8cpp__incl_org.svg | 715 +++++------ .../_audio_sample_fifo_queue_vector_8h.html | 2 +- ...sample_fifo_queue_vector_8h__dep__incl.map | 6 +- ...sample_fifo_queue_vector_8h__dep__incl.md5 | 2 +- ...sample_fifo_queue_vector_8h__dep__incl.svg | 28 +- ...udio_sample_fifo_queue_vector_8h__incl.map | 65 +- ...udio_sample_fifo_queue_vector_8h__incl.md5 | 2 +- ...udio_sample_fifo_queue_vector_8h__incl.svg | 707 +++++----- ..._sample_fifo_queue_vector_8h__incl_org.svg | 707 +++++----- ...io_sample_fifo_queue_vector_8h_source.html | 16 +- .../html/_audio_sample_list_8cpp-inc.html | 4 +- ..._audio_sample_list_8cpp-inc__dep__incl.map | 34 +- ..._audio_sample_list_8cpp-inc__dep__incl.md5 | 2 +- ..._audio_sample_list_8cpp-inc__dep__incl.svg | 156 +-- ...io_sample_list_8cpp-inc__dep__incl_org.svg | 156 +-- .../_audio_sample_list_8cpp-inc__incl.map | 22 +- .../_audio_sample_list_8cpp-inc__incl.md5 | 2 +- .../_audio_sample_list_8cpp-inc__incl.svg | 142 +- .../html/_audio_sample_list_8cpp.html | 2 +- .../html/_audio_sample_list_8cpp__incl.map | 35 +- .../html/_audio_sample_list_8cpp__incl.md5 | 2 +- .../html/_audio_sample_list_8cpp__incl.svg | 229 ++-- .../_audio_sample_list_8cpp__incl_org.svg | 292 +++++ .../html/_audio_sample_list_8h.html | 13 +- .../html/_audio_sample_list_8h.js | 5 + .../html/_audio_sample_list_8h__dep__incl.map | 32 +- .../html/_audio_sample_list_8h__dep__incl.md5 | 2 +- .../html/_audio_sample_list_8h__dep__incl.svg | 148 +-- .../_audio_sample_list_8h__dep__incl_org.svg | 148 +-- .../html/_audio_sample_list_8h__incl.map | 33 +- .../html/_audio_sample_list_8h__incl.md5 | 2 +- .../html/_audio_sample_list_8h__incl.svg | 221 ++-- .../html/_audio_sample_list_8h__incl_org.svg | 277 ++++ .../html/_audio_sample_list_8h_source.html | 75 +- .../_audio_sample_list_vector_8cpp-inc.html | 2 +- ...sample_list_vector_8cpp-inc__dep__incl.map | 26 +- ...sample_list_vector_8cpp-inc__dep__incl.md5 | 2 +- ...sample_list_vector_8cpp-inc__dep__incl.svg | 120 +- ...le_list_vector_8cpp-inc__dep__incl_org.svg | 120 +- .../_audio_sample_list_vector_8cpp__incl.map | 39 +- .../_audio_sample_list_vector_8cpp__incl.md5 | 2 +- .../_audio_sample_list_vector_8cpp__incl.svg | 261 ++-- ...udio_sample_list_vector_8cpp__incl_org.svg | 261 ++-- .../html/_audio_sample_list_vector_8h.html | 4 +- ...audio_sample_list_vector_8h__dep__incl.map | 24 +- ...audio_sample_list_vector_8h__dep__incl.md5 | 2 +- ...audio_sample_list_vector_8h__dep__incl.svg | 112 +- ...o_sample_list_vector_8h__dep__incl_org.svg | 112 +- .../_audio_sample_list_vector_8h__incl.map | 37 +- .../_audio_sample_list_vector_8h__incl.md5 | 2 +- .../_audio_sample_list_vector_8h__incl.svg | 253 ++-- ..._audio_sample_list_vector_8h__incl_org.svg | 307 +++++ internalDocumentation/html/_boolean_8h.html | 2 +- .../html/_boolean_8h__dep__incl.map | 70 +- .../html/_boolean_8h__dep__incl.md5 | 2 +- .../html/_boolean_8h__dep__incl.svg | 464 +++---- .../html/_boolean_8h__dep__incl_org.svg | 464 +++---- .../html/_boolean_8h__incl.map | 8 +- .../html/_boolean_8h__incl.md5 | 2 +- .../html/_boolean_8h__incl.svg | 36 +- internalDocumentation/html/_byte_8h.html | 2 +- .../html/_byte_8h__dep__incl.map | 70 +- .../html/_byte_8h__dep__incl.md5 | 2 +- .../html/_byte_8h__dep__incl.svg | 350 ++--- .../html/_byte_8h__dep__incl_org.svg | 350 ++--- internalDocumentation/html/_byte_8h__incl.map | 18 +- internalDocumentation/html/_byte_8h__incl.md5 | 2 +- internalDocumentation/html/_byte_8h__incl.svg | 130 +- .../html/_byte_8h_source.html | 87 +- .../html/_byte_list_8cpp.html | 2 +- .../html/_byte_list_8cpp__incl.map | 29 +- .../html/_byte_list_8cpp__incl.md5 | 2 +- .../html/_byte_list_8cpp__incl.svg | 243 ++-- internalDocumentation/html/_byte_list_8h.html | 18 +- internalDocumentation/html/_byte_list_8h.js | 5 + .../html/_byte_list_8h__dep__incl.map | 34 +- .../html/_byte_list_8h__dep__incl.md5 | 2 +- .../html/_byte_list_8h__dep__incl.svg | 154 +-- .../html/_byte_list_8h__dep__incl_org.svg | 154 +-- .../html/_byte_list_8h__incl.map | 25 +- .../html/_byte_list_8h__incl.md5 | 2 +- .../html/_byte_list_8h__incl.svg | 227 ++-- .../html/_byte_list_8h_source.html | 74 +- internalDocumentation/html/_character_8h.html | 2 +- .../html/_character_8h__dep__incl.map | 52 +- .../html/_character_8h__dep__incl.md5 | 2 +- .../html/_character_8h__dep__incl.svg | 228 ++-- .../html/_character_8h__dep__incl_org.svg | 228 ++-- .../html/_character_8h__incl.map | 20 +- .../html/_character_8h__incl.md5 | 2 +- .../html/_character_8h__incl.svg | 142 +- .../html/_character_8h_source.html | 12 +- .../html/_command_line_arguments_8cpp.html | 8 + .../html/_command_line_arguments_8cpp.js | 1 + .../_command_line_arguments_8cpp__incl.map | 51 +- .../_command_line_arguments_8cpp__incl.md5 | 2 +- .../_command_line_arguments_8cpp__incl.svg | 483 ++++--- ..._command_line_arguments_8cpp__incl_org.svg | 483 ++++--- .../html/_command_line_arguments_8h.html | 13 +- .../html/_command_line_arguments_8h.js | 7 + .../_command_line_arguments_8h__dep__incl.map | 6 +- .../_command_line_arguments_8h__dep__incl.md5 | 2 +- .../_command_line_arguments_8h__dep__incl.svg | 28 +- .../html/_command_line_arguments_8h__incl.map | 8 +- .../html/_command_line_arguments_8h__incl.md5 | 2 +- .../html/_command_line_arguments_8h__incl.svg | 36 +- .../_command_line_arguments_8h_source.html | 74 +- .../html/_dictionary_8cpp.html | 14 +- .../html/_dictionary_8cpp.js | 4 + .../html/_dictionary_8cpp__incl.map | 11 +- .../html/_dictionary_8cpp__incl.md5 | 2 +- .../html/_dictionary_8cpp__incl.svg | 87 +- .../html/_dictionary_8h.html | 13 +- internalDocumentation/html/_dictionary_8h.js | 5 + .../html/_dictionary_8h__dep__incl.map | 22 +- .../html/_dictionary_8h__dep__incl.md5 | 2 +- .../html/_dictionary_8h__dep__incl.svg | 98 +- .../html/_dictionary_8h__dep__incl_org.svg | 98 +- .../html/_dictionary_8h__incl.map | 4 +- .../html/_dictionary_8h__incl.md5 | 2 +- .../html/_dictionary_8h__incl.svg | 20 +- .../html/_dictionary_8h_source.html | 52 +- .../html/_dynamic_library_8h.html | 4 +- .../html/_dynamic_library_8h__dep__incl.map | 10 +- .../html/_dynamic_library_8h__dep__incl.md5 | 2 +- .../html/_dynamic_library_8h__dep__incl.svg | 154 ++- .../_dynamic_library_8h__dep__incl_org.svg | 97 ++ .../html/_dynamic_library_8h__incl.map | 12 +- .../html/_dynamic_library_8h__incl.md5 | 2 +- .../html/_dynamic_library_8h__incl.svg | 52 +- .../html/_dynamic_library_8h_source.html | 80 +- internalDocumentation/html/_file_8cpp.html | 7 +- internalDocumentation/html/_file_8cpp.js | 3 +- .../html/_file_8cpp__incl.map | 48 +- .../html/_file_8cpp__incl.md5 | 2 +- .../html/_file_8cpp__incl.svg | 518 ++++---- .../html/_file_8cpp__incl_org.svg | 518 ++++---- internalDocumentation/html/_file_8h.html | 4 +- .../html/_file_8h__dep__incl.map | 14 +- .../html/_file_8h__dep__incl.md5 | 2 +- .../html/_file_8h__dep__incl.svg | 62 +- .../html/_file_8h__dep__incl_org.svg | 62 +- internalDocumentation/html/_file_8h__incl.map | 31 +- internalDocumentation/html/_file_8h__incl.md5 | 2 +- internalDocumentation/html/_file_8h__incl.svg | 255 ++-- .../html/_file_8h_source.html | 148 ++- .../html/_fluid_synth_8cpp__incl.map | 55 +- .../html/_fluid_synth_8cpp__incl.md5 | 2 +- .../html/_fluid_synth_8cpp__incl.svg | 447 ++++--- .../html/_fluid_synth_8cpp__incl_org.svg | 447 ++++--- .../html/_fluid_synth_8h.html | 4 +- .../html/_fluid_synth_8h__dep__incl.map | 14 +- .../html/_fluid_synth_8h__dep__incl.md5 | 2 +- .../html/_fluid_synth_8h__dep__incl.svg | 60 +- .../html/_fluid_synth_8h__incl.map | 20 +- .../html/_fluid_synth_8h__incl.md5 | 2 +- .../html/_fluid_synth_8h__incl.svg | 136 +- .../html/_fluid_synth_8h_source.html | 51 +- .../_fluid_synth_file_converter_8cpp.html | 15 +- .../html/_fluid_synth_file_converter_8cpp.js | 2 +- ..._fluid_synth_file_converter_8cpp__incl.map | 86 +- ..._fluid_synth_file_converter_8cpp__incl.md5 | 2 +- ..._fluid_synth_file_converter_8cpp__incl.svg | 982 +++++++------- ...id_synth_file_converter_8cpp__incl_org.svg | 982 +++++++------- .../html/_fluid_synth_file_converter_8h.html | 2 +- ...uid_synth_file_converter_8h__dep__incl.map | 4 +- ...uid_synth_file_converter_8h__dep__incl.md5 | 2 +- ...uid_synth_file_converter_8h__dep__incl.svg | 20 +- ...fluid_synth_plugin___editor_8cpp__incl.map | 81 +- ...fluid_synth_plugin___editor_8cpp__incl.md5 | 2 +- ...fluid_synth_plugin___editor_8cpp__incl.svg | 613 +++++---- ...d_synth_plugin___editor_8cpp__incl_org.svg | 613 +++++---- .../html/_fluid_synth_plugin___editor_8h.html | 4 +- ...id_synth_plugin___editor_8h__dep__incl.map | 6 +- ...id_synth_plugin___editor_8h__dep__incl.md5 | 2 +- ...id_synth_plugin___editor_8h__dep__incl.svg | 28 +- .../_fluid_synth_plugin___editor_8h__incl.map | 36 +- .../_fluid_synth_plugin___editor_8h__incl.md5 | 2 +- .../_fluid_synth_plugin___editor_8h__incl.svg | 170 +-- ...uid_synth_plugin___editor_8h__incl_org.svg | 170 +-- ...d_synth_plugin___event_processor_8cpp.html | 9 + ...uid_synth_plugin___event_processor_8cpp.js | 1 + ...th_plugin___event_processor_8cpp__incl.map | 100 +- ...th_plugin___event_processor_8cpp__incl.md5 | 2 +- ...th_plugin___event_processor_8cpp__incl.svg | 1140 +++++++++-------- ...lugin___event_processor_8cpp__incl_org.svg | 1140 +++++++++-------- ...uid_synth_plugin___event_processor_8h.html | 4 +- ...plugin___event_processor_8h__dep__incl.map | 8 +- ...plugin___event_processor_8h__dep__incl.md5 | 2 +- ...plugin___event_processor_8h__dep__incl.svg | 36 +- ...ynth_plugin___event_processor_8h__incl.map | 34 +- ...ynth_plugin___event_processor_8h__incl.md5 | 2 +- ...ynth_plugin___event_processor_8h__incl.svg | 162 +-- ..._plugin___event_processor_8h__incl_org.svg | 162 +-- ...th_plugin___event_processor_8h_source.html | 46 +- .../html/_fluid_synth_settings_8cpp.html | 4 + .../html/_fluid_synth_settings_8cpp.js | 1 + .../html/_fluid_synth_settings_8cpp__incl.map | 57 +- .../html/_fluid_synth_settings_8cpp__incl.md5 | 2 +- .../html/_fluid_synth_settings_8cpp__incl.svg | 467 ++++--- .../_fluid_synth_settings_8cpp__incl_org.svg | 467 ++++--- .../html/_fluid_synth_settings_8h.html | 4 +- .../_fluid_synth_settings_8h__dep__incl.map | 10 +- .../_fluid_synth_settings_8h__dep__incl.md5 | 2 +- .../_fluid_synth_settings_8h__dep__incl.svg | 44 +- .../html/_fluid_synth_settings_8h__incl.map | 22 +- .../html/_fluid_synth_settings_8h__incl.md5 | 2 +- .../html/_fluid_synth_settings_8h__incl.svg | 144 ++- .../html/_fluid_synth_settings_8h_source.html | 8 +- .../_fluid_synth_synthesizer_8cpp__incl.map | 69 +- .../_fluid_synth_synthesizer_8cpp__incl.md5 | 2 +- .../_fluid_synth_synthesizer_8cpp__incl.svg | 647 +++++----- ...fluid_synth_synthesizer_8cpp__incl_org.svg | 647 +++++----- .../html/_fluid_synth_synthesizer_8h.html | 2 +- ..._fluid_synth_synthesizer_8h__dep__incl.map | 6 +- ..._fluid_synth_synthesizer_8h__dep__incl.md5 | 2 +- ..._fluid_synth_synthesizer_8h__dep__incl.svg | 28 +- .../_fluid_synth_synthesizer_8h__incl.map | 45 +- .../_fluid_synth_synthesizer_8h__incl.md5 | 2 +- .../_fluid_synth_synthesizer_8h__incl.svg | 347 +++-- .../_fluid_synth_synthesizer_8h__incl_org.svg | 347 +++-- .../_fluid_synth_synthesizer_8h_source.html | 141 +- .../html/_global_macros_8h__dep__incl.map | 100 +- .../html/_global_macros_8h__dep__incl.md5 | 2 +- .../html/_global_macros_8h__dep__incl.svg | 742 +++++------ .../html/_global_macros_8h__dep__incl_org.svg | 742 +++++------ internalDocumentation/html/_integer_8h.html | 2 +- .../html/_integer_8h__dep__incl.map | 84 +- .../html/_integer_8h__dep__incl.md5 | 2 +- .../html/_integer_8h__dep__incl.svg | 424 +++--- .../html/_integer_8h__dep__incl_org.svg | 424 +++--- .../html/_integer_8h__incl.map | 19 +- .../html/_integer_8h__incl.md5 | 2 +- .../html/_integer_8h__incl.svg | 117 +- .../html/_integer_8h_source.html | 63 +- .../html/_integer_list_8cpp.html | 2 +- .../html/_integer_list_8cpp__incl.map | 10 +- .../html/_integer_list_8cpp__incl.md5 | 2 +- .../html/_integer_list_8cpp__incl.svg | 44 +- .../html/_integer_list_8h.html | 13 +- .../html/_integer_list_8h.js | 5 + .../html/_integer_list_8h__dep__incl.map | 6 +- .../html/_integer_list_8h__dep__incl.md5 | 2 +- .../html/_integer_list_8h__dep__incl.svg | 28 +- .../html/_integer_list_8h__incl.map | 6 +- .../html/_integer_list_8h__incl.md5 | 2 +- .../html/_integer_list_8h__incl.svg | 28 +- .../html/_integer_list_8h_source.html | 44 +- .../html/_juce_plugin-_standalone_8cpp.html | 2 +- .../_juce_plugin-_standalone_8cpp__incl.map | 6 +- .../_juce_plugin-_standalone_8cpp__incl.md5 | 2 +- .../_juce_plugin-_standalone_8cpp__incl.svg | 32 +- .../html/_juce_plugin-_v_s_t__1_8cpp.html | 4 +- .../_juce_plugin-_v_s_t__1_8cpp__incl.map | 6 +- .../_juce_plugin-_v_s_t__1_8cpp__incl.md5 | 2 +- .../_juce_plugin-_v_s_t__1_8cpp__incl.svg | 31 +- .../html/_juce_plugin-_v_s_t__2_8cpp.html | 2 +- .../_juce_plugin-_v_s_t__2_8cpp__incl.map | 6 +- .../_juce_plugin-_v_s_t__2_8cpp__incl.md5 | 2 +- .../_juce_plugin-_v_s_t__2_8cpp__incl.svg | 32 +- .../html/_juce_plugin-util_8cpp.html | 2 +- .../html/_juce_plugin-util_8cpp__incl.map | 6 +- .../html/_juce_plugin-util_8cpp__incl.md5 | 2 +- .../html/_juce_plugin-util_8cpp__incl.svg | 32 +- .../html/_juce_plugin_defines_8h.html | 2 +- .../_juce_plugin_defines_8h__dep__incl.map | 10 +- .../_juce_plugin_defines_8h__dep__incl.md5 | 2 +- .../_juce_plugin_defines_8h__dep__incl.svg | 44 +- ..._juce_plugin_defines_8h__dep__incl_org.svg | 44 +- internalDocumentation/html/_logging_8h.html | 22 +- internalDocumentation/html/_logging_8h.js | 2 + .../html/_logging_8h__dep__incl.map | 40 +- .../html/_logging_8h__dep__incl.md5 | 2 +- .../html/_logging_8h__dep__incl.svg | 172 +-- .../html/_logging_8h__dep__incl_org.svg | 172 +-- .../html/_logging_8h__incl.map | 43 +- .../html/_logging_8h__incl.md5 | 2 +- .../html/_logging_8h__incl.svg | 297 +++-- .../html/_logging_8h__incl_org.svg | 297 +++-- .../html/_logging_8h_source.html | 299 ++--- .../html/_logging_support_8cpp.html | 72 +- .../html/_logging_support_8cpp.js | 4 +- .../html/_logging_support_8cpp__incl.map | 47 +- .../html/_logging_support_8cpp__incl.md5 | 2 +- .../html/_logging_support_8cpp__incl.svg | 477 +++---- .../html/_logging_support_8cpp__incl_org.svg | 477 +++---- .../html/_logging_support_8h.html | 18 +- .../html/_logging_support_8h.js | 5 + .../html/_logging_support_8h__dep__incl.map | 44 +- .../html/_logging_support_8h__dep__incl.md5 | 2 +- .../html/_logging_support_8h__dep__incl.svg | 192 +-- .../_logging_support_8h__dep__incl_org.svg | 192 +-- .../html/_logging_support_8h__incl.map | 20 +- .../html/_logging_support_8h__incl.md5 | 2 +- .../html/_logging_support_8h__incl.svg | 100 +- .../html/_logging_support_8h_source.html | 157 ++- .../html/_midi_event_8cpp.html | 8 + .../html/_midi_event_8cpp.js | 1 + .../html/_midi_event_8cpp__incl.map | 51 +- .../html/_midi_event_8cpp__incl.md5 | 2 +- .../html/_midi_event_8cpp__incl.svg | 505 ++++---- .../html/_midi_event_8cpp__incl_org.svg | 505 ++++---- .../html/_midi_event_8h.html | 4 +- .../html/_midi_event_8h__dep__incl.map | 20 +- .../html/_midi_event_8h__dep__incl.md5 | 2 +- .../html/_midi_event_8h__dep__incl.svg | 88 +- .../html/_midi_event_8h__dep__incl_org.svg | 88 +- .../html/_midi_event_8h__incl.map | 34 +- .../html/_midi_event_8h__incl.md5 | 2 +- .../html/_midi_event_8h__incl.svg | 338 ++--- .../html/_midi_event_8h__incl_org.svg | 258 ++-- .../html/_midi_event_8h_source.html | 437 +++---- .../html/_midi_event_converter_8cpp.html | 8 + .../html/_midi_event_converter_8cpp.js | 1 + .../html/_midi_event_converter_8cpp__incl.map | 79 +- .../html/_midi_event_converter_8cpp__incl.md5 | 2 +- .../html/_midi_event_converter_8cpp__incl.svg | 807 ++++++------ .../_midi_event_converter_8cpp__incl_org.svg | 807 ++++++------ .../html/_midi_event_converter_8h.html | 2 +- .../_midi_event_converter_8h__dep__incl.map | 8 +- .../_midi_event_converter_8h__dep__incl.md5 | 2 +- .../_midi_event_converter_8h__dep__incl.svg | 124 +- .../html/_midi_event_converter_8h__incl.map | 58 +- .../html/_midi_event_converter_8h__incl.md5 | 2 +- .../html/_midi_event_converter_8h__incl.svg | 520 ++++---- .../_midi_event_converter_8h__incl_org.svg | 520 ++++---- .../html/_midi_event_converter_8h_source.html | 155 ++- .../html/_midi_event_list_8cpp__incl.map | 53 +- .../html/_midi_event_list_8cpp__incl.md5 | 2 +- .../html/_midi_event_list_8cpp__incl.svg | 461 ++++--- .../html/_midi_event_list_8cpp__incl_org.svg | 461 ++++--- .../html/_midi_event_list_8h.html | 13 +- .../html/_midi_event_list_8h.js | 5 + .../html/_midi_event_list_8h__dep__incl.map | 16 +- .../html/_midi_event_list_8h__dep__incl.md5 | 2 +- .../html/_midi_event_list_8h__dep__incl.svg | 72 +- .../_midi_event_list_8h__dep__incl_org.svg | 72 +- .../html/_midi_event_list_8h__incl.map | 36 +- .../html/_midi_event_list_8h__incl.md5 | 2 +- .../html/_midi_event_list_8h__incl.svg | 256 ++-- .../html/_midi_event_list_8h__incl_org.svg | 319 ----- .../html/_midi_event_list_8h_source.html | 67 +- .../html/_midi_file_8cpp.html | 14 +- internalDocumentation/html/_midi_file_8cpp.js | 2 +- .../html/_midi_file_8cpp__incl.map | 61 +- .../html/_midi_file_8cpp__incl.md5 | 2 +- .../html/_midi_file_8cpp__incl.svg | 763 ++++++----- .../html/_midi_file_8cpp__incl_org.svg | 763 ++++++----- internalDocumentation/html/_midi_file_8h.html | 2 +- .../html/_midi_file_8h__dep__incl.map | 6 +- .../html/_midi_file_8h__dep__incl.md5 | 2 +- .../html/_midi_file_8h__dep__incl.svg | 28 +- .../html/_midi_file_8h__incl.map | 38 +- .../html/_midi_file_8h__incl.md5 | 2 +- .../html/_midi_file_8h__incl.svg | 324 ++--- .../html/_midi_file_8h__incl_org.svg | 324 ++--- .../html/_midi_file_8h_source.html | 58 +- internalDocumentation/html/_my_array_8h.html | 2 +- .../html/_my_array_8h__dep__incl.map | 38 +- .../html/_my_array_8h__dep__incl.md5 | 2 +- .../html/_my_array_8h__dep__incl.svg | 184 +-- .../html/_my_array_8h__dep__incl_org.svg | 184 +-- .../html/_my_array_8h__incl.map | 20 +- .../html/_my_array_8h__incl.md5 | 2 +- .../html/_my_array_8h__incl.svg | 134 +- .../html/_my_string_8cpp.html | 2 +- .../html/_my_string_8cpp__incl.map | 8 +- .../html/_my_string_8cpp__incl.md5 | 2 +- .../html/_my_string_8cpp__incl.svg | 36 +- internalDocumentation/html/_my_string_8h.html | 2 +- .../html/_my_string_8h__dep__incl.map | 100 +- .../html/_my_string_8h__dep__incl.md5 | 2 +- .../html/_my_string_8h__dep__incl.svg | 750 +++++------ .../html/_my_string_8h__dep__incl_org.svg | 750 +++++------ .../html/_my_string_8h__incl.map | 6 +- .../html/_my_string_8h__incl.md5 | 2 +- .../html/_my_string_8h__incl.svg | 28 +- .../html/_my_windows_8h.html | 643 ++++++++++ internalDocumentation/html/_my_windows_8h.js | 155 +++ .../html/_my_windows_8h_source.html | 515 ++++++++ internalDocumentation/html/_natural_8h.html | 2 +- .../html/_natural_8h__dep__incl.map | 100 +- .../html/_natural_8h__dep__incl.md5 | 2 +- .../html/_natural_8h__dep__incl.svg | 736 +++++------ .../html/_natural_8h__dep__incl_org.svg | 736 +++++------ .../html/_natural_8h__incl.map | 16 +- .../html/_natural_8h__incl.md5 | 2 +- .../html/_natural_8h__incl.svg | 118 +- .../html/_natural_8h_source.html | 341 ++--- .../html/_natural_list_8cpp.html | 15 +- .../html/_natural_list_8cpp.js | 4 + .../html/_natural_list_8cpp__incl.map | 26 +- .../html/_natural_list_8cpp__incl.md5 | 2 +- .../html/_natural_list_8cpp__incl.svg | 432 ++++++- .../html/_natural_list_8cpp__incl_org.svg | 376 ++++++ .../html/_natural_list_8h.html | 16 +- .../html/_natural_list_8h.js | 5 + .../html/_natural_list_8h__dep__incl.map | 8 +- .../html/_natural_list_8h__dep__incl.md5 | 2 +- .../html/_natural_list_8h__dep__incl.svg | 36 +- .../html/_natural_list_8h__dep__incl_org.svg | 214 ---- .../html/_natural_list_8h__incl.map | 7 +- .../html/_natural_list_8h__incl.md5 | 2 +- .../html/_natural_list_8h__incl.svg | 49 +- .../html/_natural_list_8h_source.html | 88 +- internalDocumentation/html/_object_8h.html | 2 +- .../html/_object_8h__dep__incl.map | 54 +- .../html/_object_8h__dep__incl.md5 | 2 +- .../html/_object_8h__dep__incl.svg | 426 +++--- .../html/_object_8h__dep__incl_org.svg | 426 +++--- .../html/_operating_system_8cpp.html | 50 +- .../html/_operating_system_8cpp.js | 4 +- .../html/_operating_system_8cpp__incl.map | 60 +- .../html/_operating_system_8cpp__incl.md5 | 2 +- .../html/_operating_system_8cpp__incl.svg | 596 +++++---- .../html/_operating_system_8cpp__incl_org.svg | 596 +++++---- .../html/_operating_system_8h.html | 4 +- .../html/_operating_system_8h__dep__incl.map | 13 +- .../html/_operating_system_8h__dep__incl.md5 | 2 +- .../html/_operating_system_8h__dep__incl.svg | 77 +- .../_operating_system_8h__dep__incl_org.svg | 77 +- .../html/_operating_system_8h__incl.map | 20 +- .../html/_operating_system_8h__incl.md5 | 2 +- .../html/_operating_system_8h__incl.svg | 98 +- .../html/_operating_system_8h_source.html | 69 +- .../html/_percentage_8h.html | 2 +- .../html/_percentage_8h__dep__incl.map | 52 +- .../html/_percentage_8h__dep__incl.md5 | 2 +- .../html/_percentage_8h__dep__incl.svg | 228 ++-- .../html/_percentage_8h__dep__incl_org.svg | 228 ++-- .../html/_percentage_8h__incl.map | 23 +- .../html/_percentage_8h__incl.md5 | 2 +- .../html/_percentage_8h__incl.svg | 137 +- .../html/_percentage_8h_source.html | 171 +-- internalDocumentation/html/_radians_8h.html | 2 +- .../html/_radians_8h__incl.map | 23 +- .../html/_radians_8h__incl.md5 | 2 +- .../html/_radians_8h__incl.svg | 137 +- .../html/_radians_8h_source.html | 8 +- internalDocumentation/html/_real_8h.html | 2 +- .../html/_real_8h__dep__incl.map | 76 +- .../html/_real_8h__dep__incl.md5 | 2 +- .../html/_real_8h__dep__incl.svg | 368 +++--- .../html/_real_8h__dep__incl_org.svg | 368 +++--- internalDocumentation/html/_real_8h__incl.map | 21 +- internalDocumentation/html/_real_8h__incl.md5 | 2 +- internalDocumentation/html/_real_8h__incl.svg | 129 +- .../html/_real_8h_source.html | 448 +++---- .../html/_real_list_8cpp.html | 2 +- .../html/_real_list_8cpp__incl.map | 31 +- .../html/_real_list_8cpp__incl.md5 | 2 +- .../html/_real_list_8cpp__incl.svg | 257 ++-- .../html/_real_list_8cpp__incl_org.svg | 259 ---- internalDocumentation/html/_real_list_8h.html | 13 +- internalDocumentation/html/_real_list_8h.js | 5 + .../html/_real_list_8h__dep__incl.map | 6 +- .../html/_real_list_8h__dep__incl.md5 | 2 +- .../html/_real_list_8h__dep__incl.svg | 28 +- .../html/_real_list_8h__incl.map | 27 +- .../html/_real_list_8h__incl.md5 | 2 +- .../html/_real_list_8h__incl.svg | 241 ++-- .../html/_real_list_8h__incl_org.svg | 229 ---- .../html/_real_list_8h_source.html | 52 +- .../html/_string_list_8cpp.html | 14 +- .../html/_string_list_8cpp.js | 4 + .../html/_string_list_8cpp__incl.map | 39 +- .../html/_string_list_8cpp__incl.md5 | 2 +- .../html/_string_list_8cpp__incl.svg | 345 +++-- .../html/_string_list_8cpp__incl_org.svg | 355 ----- .../html/_string_list_8h.html | 11 +- internalDocumentation/html/_string_list_8h.js | 5 + .../html/_string_list_8h__dep__incl.map | 62 +- .../html/_string_list_8h__dep__incl.md5 | 2 +- .../html/_string_list_8h__dep__incl.svg | 446 +++++-- .../html/_string_list_8h__dep__incl_org.svg | 446 +++++-- .../html/_string_list_8h__incl.map | 6 +- .../html/_string_list_8h__incl.md5 | 2 +- .../html/_string_list_8h__incl.svg | 28 +- .../html/_string_list_8h_source.html | 77 +- .../html/_string_set_8cpp.html | 4 +- .../html/_string_set_8cpp__incl.map | 28 +- .../html/_string_set_8cpp__incl.md5 | 2 +- .../html/_string_set_8cpp__incl.svg | 340 +---- .../html/_string_set_8cpp__incl_org.svg | 391 ------ .../html/_string_set_8h.html | 9 +- internalDocumentation/html/_string_set_8h.js | 5 + .../html/_string_set_8h_source.html | 70 +- .../html/_string_util_8cpp.html | 213 ++- .../html/_string_util_8cpp.js | 8 +- .../html/_string_util_8cpp__incl.map | 44 +- .../html/_string_util_8cpp__incl.md5 | 2 +- .../html/_string_util_8cpp__incl.svg | 296 ++--- .../html/_string_util_8cpp__incl_org.svg | 296 ++--- .../html/_string_util_8h__dep__incl.map | 50 +- .../html/_string_util_8h__dep__incl.md5 | 2 +- .../html/_string_util_8h__dep__incl.svg | 216 ++-- .../html/_string_util_8h__dep__incl_org.svg | 216 ++-- .../html/_string_util_8h__incl.map | 37 +- .../html/_string_util_8h__incl.md5 | 2 +- .../html/_string_util_8h__incl.svg | 249 ++-- .../html/_string_util_8h__incl_org.svg | 249 ++-- .../html/_string_util_8h_source.html | 604 +++++---- .../html/_wave_file_8cpp.html | 946 ++++++++++++-- internalDocumentation/html/_wave_file_8cpp.js | 27 +- .../html/_wave_file_8cpp__incl.map | 74 +- .../html/_wave_file_8cpp__incl.md5 | 2 +- .../html/_wave_file_8cpp__incl.svg | 782 +++++------ .../html/_wave_file_8cpp__incl_org.svg | 782 +++++------ internalDocumentation/html/_wave_file_8h.html | 55 +- internalDocumentation/html/_wave_file_8h.js | 9 + .../html/_wave_file_8h__dep__incl.map | 6 +- .../html/_wave_file_8h__dep__incl.md5 | 2 +- .../html/_wave_file_8h__dep__incl.svg | 28 +- .../html/_wave_file_8h__incl.map | 41 +- .../html/_wave_file_8h__incl.md5 | 2 +- .../html/_wave_file_8h__incl.svg | 289 +++-- .../html/_wave_file_8h__incl_org.svg | 289 +++-- .../html/_wave_file_8h_source.html | 110 +- internalDocumentation/html/annotated.html | 85 +- internalDocumentation/html/annotated_dup.js | 13 + ...se_modules_1_1___logging_time-members.html | 21 +- ...class_base_modules_1_1___logging_time.html | 35 + .../class_base_modules_1_1___logging_time.js | 1 + internalDocumentation/html/classes.html | 128 +- .../html/dir_000001_000002.html | 2 +- .../html/dir_000001_000004.html | 8 +- .../html/dir_000001_000005.html | 8 +- ...001_000012.html => dir_000002_000001.html} | 8 +- ...004_000003.html => dir_000003_000001.html} | 2 +- .../html/dir_000003_000002.html | 2 +- .../html/dir_000003_000004.html | 95 -- .../html/dir_000003_000006.html | 95 -- ...005_000003.html => dir_000004_000001.html} | 2 +- .../html/dir_000004_000002.html | 2 +- .../html/dir_000004_000006.html | 95 -- .../html/dir_000004_000007.html | 95 -- ...008_000002.html => dir_000005_000001.html} | 8 +- .../html/dir_000006_000004.html | 95 -- .../html/dir_000006_000007.html | 95 -- .../html/dir_000007_000004.html | 95 -- .../html/dir_000008_000003.html | 95 -- .../html/dir_000008_000004.html | 95 -- .../html/dir_000008_000005.html | 95 -- .../html/dir_000009_000004.html | 95 -- .../html/dir_000009_000005.html | 95 -- ...005_000006.html => dir_000009_000006.html} | 8 +- .../html/dir_000010_000003.html | 95 -- .../html/dir_000010_000004.html | 95 -- ...001_000007.html => dir_000010_000006.html} | 8 +- .../html/dir_000011_000004.html | 95 -- ...002_000012.html => dir_000011_000006.html} | 4 +- .../html/dir_000012_000004.html | 95 -- .../html/dir_000012_000005.html | 95 -- .../dir_018d056de2587569fd8431e71180a6d2.html | 2 +- ...r_018d056de2587569fd8431e71180a6d2_dep.map | 24 +- ...r_018d056de2587569fd8431e71180a6d2_dep.md5 | 2 +- ...r_018d056de2587569fd8431e71180a6d2_dep.svg | 72 +- .../dir_2775abc9b2b3cb3255edf03dcb12241b.html | 2 +- ...r_2775abc9b2b3cb3255edf03dcb12241b_dep.map | 22 +- ...r_2775abc9b2b3cb3255edf03dcb12241b_dep.md5 | 2 +- ...r_2775abc9b2b3cb3255edf03dcb12241b_dep.svg | 64 +- .../dir_4bb77202a85366e5a69049a6555c5ad7.html | 2 +- ...r_4bb77202a85366e5a69049a6555c5ad7_dep.map | 51 +- ...r_4bb77202a85366e5a69049a6555c5ad7_dep.md5 | 2 +- ...r_4bb77202a85366e5a69049a6555c5ad7_dep.svg | 265 ++-- .../dir_56b6cffa00eaacede1dc1d17f40f4527.html | 2 +- ...r_56b6cffa00eaacede1dc1d17f40f4527_dep.map | 27 +- ...r_56b6cffa00eaacede1dc1d17f40f4527_dep.md5 | 2 +- ...r_56b6cffa00eaacede1dc1d17f40f4527_dep.svg | 149 ++- .../dir_663400e38af11bf0bd1f0e16fe6d508b.html | 2 +- ...r_663400e38af11bf0bd1f0e16fe6d508b_dep.map | 34 +- ...r_663400e38af11bf0bd1f0e16fe6d508b_dep.md5 | 2 +- ...r_663400e38af11bf0bd1f0e16fe6d508b_dep.svg | 84 +- .../dir_672501b7110aa1557a3d214f38ed082a.html | 2 +- ...r_672501b7110aa1557a3d214f38ed082a_dep.map | 40 +- ...r_672501b7110aa1557a3d214f38ed082a_dep.md5 | 2 +- ...r_672501b7110aa1557a3d214f38ed082a_dep.svg | 217 ++-- .../dir_68267d1309a1af8e8297ef4c3efbcdba.html | 2 +- ...r_68267d1309a1af8e8297ef4c3efbcdba_dep.map | 45 +- ...r_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 | 2 +- ...r_68267d1309a1af8e8297ef4c3efbcdba_dep.svg | 194 +-- .../dir_74b0edb8dc056f9954be058bc67f17c6.html | 8 +- ...r_74b0edb8dc056f9954be058bc67f17c6_dep.map | 18 +- ...r_74b0edb8dc056f9954be058bc67f17c6_dep.md5 | 2 +- ...r_74b0edb8dc056f9954be058bc67f17c6_dep.svg | 54 +- .../dir_a5e53cdfc4dc3e34218e25b9dcddbbe5.html | 2 +- ...r_a5e53cdfc4dc3e34218e25b9dcddbbe5_dep.map | 28 +- ...r_a5e53cdfc4dc3e34218e25b9dcddbbe5_dep.md5 | 2 +- ...r_a5e53cdfc4dc3e34218e25b9dcddbbe5_dep.svg | 80 +- .../dir_c64386e93f356b78d4612c7b7741707c.html | 2 +- ...r_c64386e93f356b78d4612c7b7741707c_dep.map | 16 +- ...r_c64386e93f356b78d4612c7b7741707c_dep.md5 | 2 +- ...r_c64386e93f356b78d4612c7b7741707c_dep.svg | 50 +- .../dir_d0f5152f7d18308a9d4fae6b6ee892f6.html | 9 +- ...r_d0f5152f7d18308a9d4fae6b6ee892f6_dep.map | 8 +- ...r_d0f5152f7d18308a9d4fae6b6ee892f6_dep.md5 | 2 +- ...r_d0f5152f7d18308a9d4fae6b6ee892f6_dep.svg | 26 +- .../dir_ea754da17e3d11d3201d9d479b786745.html | 2 +- ...r_ea754da17e3d11d3201d9d479b786745_dep.map | 10 +- ...r_ea754da17e3d11d3201d9d479b786745_dep.md5 | 2 +- ...r_ea754da17e3d11d3201d9d479b786745_dep.svg | 32 +- internalDocumentation/html/files.html | 41 +- internalDocumentation/html/files_dup.js | 59 +- internalDocumentation/html/functions.html | 5 +- internalDocumentation/html/functions_a.html | 12 +- internalDocumentation/html/functions_b.html | 5 +- internalDocumentation/html/functions_c.html | 5 +- internalDocumentation/html/functions_d.html | 6 + internalDocumentation/html/functions_e.html | 7 +- internalDocumentation/html/functions_f.html | 12 +- .../html/functions_func.html | 3 + .../html/functions_func_a.html | 8 + .../html/functions_func_b.html | 5 +- .../html/functions_func_c.html | 5 +- .../html/functions_func_d.html | 6 + .../html/functions_func_e.html | 5 +- .../html/functions_func_f.html | 12 +- .../html/functions_func_i.html | 8 +- .../html/functions_func_l.html | 4 +- .../html/functions_func_m.html | 10 +- .../html/functions_func_o.html | 28 +- .../html/functions_func_p.html | 3 + .../html/functions_func_r.html | 8 +- .../html/functions_func_s.html | 16 +- .../html/functions_func_t.html | 33 +- .../html/functions_func_w.html | 2 +- internalDocumentation/html/functions_i.html | 8 +- internalDocumentation/html/functions_l.html | 4 +- internalDocumentation/html/functions_m.html | 10 +- internalDocumentation/html/functions_o.html | 30 +- internalDocumentation/html/functions_p.html | 3 + internalDocumentation/html/functions_r.html | 10 +- ...000012_000008.html => functions_rela.html} | 15 +- internalDocumentation/html/functions_s.html | 16 +- internalDocumentation/html/functions_t.html | 29 +- .../html/functions_vars.html | 2 +- internalDocumentation/html/functions_w.html | 2 +- internalDocumentation/html/globals.html | 36 +- internalDocumentation/html/globals_a.html | 9 + internalDocumentation/html/globals_defs.html | 24 +- internalDocumentation/html/globals_e.html | 8 +- internalDocumentation/html/globals_func.html | 57 +- internalDocumentation/html/globals_l.html | 6 + internalDocumentation/html/globals_s.html | 17 + internalDocumentation/html/globals_t.html | 3 + internalDocumentation/html/globals_type.html | 36 +- internalDocumentation/html/globals_vars.html | 45 +- internalDocumentation/html/globals_w.html | 45 +- internalDocumentation/html/graph_legend.html | 2 +- internalDocumentation/html/graph_legend.md5 | 2 +- internalDocumentation/html/graph_legend.svg | 80 +- internalDocumentation/html/hierarchy.html | 59 +- internalDocumentation/html/hierarchy.js | 14 +- .../html/inherit_graph_0.map | 2 +- .../html/inherit_graph_0.md5 | 2 +- .../html/inherit_graph_0.svg | 12 +- .../html/inherit_graph_1.map | 2 +- .../html/inherit_graph_1.md5 | 2 +- .../html/inherit_graph_1.svg | 12 +- .../html/inherit_graph_10.map | 2 +- .../html/inherit_graph_10.md5 | 2 +- .../html/inherit_graph_10.svg | 12 +- .../html/inherit_graph_11.map | 2 +- .../html/inherit_graph_11.md5 | 2 +- .../html/inherit_graph_11.svg | 12 +- .../html/inherit_graph_12.map | 4 +- .../html/inherit_graph_12.md5 | 2 +- .../html/inherit_graph_12.svg | 30 +- .../html/inherit_graph_13.map | 3 +- .../html/inherit_graph_13.md5 | 2 +- .../html/inherit_graph_13.svg | 33 +- .../html/inherit_graph_14.map | 9 +- .../html/inherit_graph_14.md5 | 2 +- .../html/inherit_graph_14.svg | 129 +- .../html/inherit_graph_15.map | 9 +- .../html/inherit_graph_15.md5 | 2 +- .../html/inherit_graph_15.svg | 128 +- .../html/inherit_graph_16.map | 2 +- .../html/inherit_graph_16.md5 | 2 +- .../html/inherit_graph_16.svg | 15 +- .../html/inherit_graph_17.map | 2 +- .../html/inherit_graph_17.md5 | 2 +- .../html/inherit_graph_17.svg | 16 +- .../html/inherit_graph_18.map | 2 +- .../html/inherit_graph_18.md5 | 2 +- .../html/inherit_graph_18.svg | 16 +- .../html/inherit_graph_19.map | 2 +- .../html/inherit_graph_19.md5 | 2 +- .../html/inherit_graph_19.svg | 16 +- .../html/inherit_graph_2.map | 22 +- .../html/inherit_graph_2.md5 | 2 +- .../html/inherit_graph_2.svg | 186 +-- .../html/inherit_graph_20.map | 2 +- .../html/inherit_graph_20.md5 | 2 +- .../html/inherit_graph_20.svg | 16 +- .../html/inherit_graph_21.map | 2 +- .../html/inherit_graph_21.md5 | 2 +- .../html/inherit_graph_21.svg | 16 +- .../html/inherit_graph_22.map | 2 +- .../html/inherit_graph_22.md5 | 2 +- .../html/inherit_graph_22.svg | 16 +- .../html/inherit_graph_23.map | 4 +- .../html/inherit_graph_23.md5 | 2 +- .../html/inherit_graph_23.svg | 48 +- .../html/inherit_graph_24.map | 5 +- .../html/inherit_graph_24.md5 | 2 +- .../html/inherit_graph_24.svg | 47 +- .../html/inherit_graph_25.map | 4 +- .../html/inherit_graph_25.md5 | 2 +- .../html/inherit_graph_25.svg | 32 +- .../html/inherit_graph_26.map | 3 +- .../html/inherit_graph_26.md5 | 2 +- .../html/inherit_graph_26.svg | 33 +- .../html/inherit_graph_27.map | 2 +- .../html/inherit_graph_27.md5 | 2 +- .../html/inherit_graph_27.svg | 15 +- .../html/inherit_graph_28.map | 2 +- .../html/inherit_graph_28.md5 | 2 +- .../html/inherit_graph_28.svg | 14 +- .../html/inherit_graph_29.map | 2 +- .../html/inherit_graph_29.md5 | 2 +- .../html/inherit_graph_29.svg | 14 +- .../html/inherit_graph_3.map | 2 +- .../html/inherit_graph_3.md5 | 2 +- .../html/inherit_graph_3.svg | 12 +- .../html/inherit_graph_30.map | 2 +- .../html/inherit_graph_30.md5 | 2 +- .../html/inherit_graph_30.svg | 14 +- .../html/inherit_graph_31.map | 2 +- .../html/inherit_graph_31.md5 | 2 +- .../html/inherit_graph_31.svg | 14 +- .../html/inherit_graph_32.map | 2 +- .../html/inherit_graph_32.md5 | 2 +- .../html/inherit_graph_32.svg | 14 +- .../html/inherit_graph_33.map | 2 +- .../html/inherit_graph_33.md5 | 2 +- .../html/inherit_graph_33.svg | 14 +- .../html/inherit_graph_34.map | 2 +- .../html/inherit_graph_34.md5 | 2 +- .../html/inherit_graph_34.svg | 14 +- .../html/inherit_graph_35.map | 3 + .../html/inherit_graph_35.md5 | 1 + .../html/inherit_graph_35.svg | 22 + .../html/inherit_graph_36.map | 3 + .../html/inherit_graph_36.md5 | 1 + .../html/inherit_graph_36.svg | 22 + .../html/inherit_graph_37.map | 3 + .../html/inherit_graph_37.md5 | 1 + .../html/inherit_graph_37.svg | 22 + .../html/inherit_graph_38.map | 3 + .../html/inherit_graph_38.md5 | 1 + .../html/inherit_graph_38.svg | 22 + .../html/inherit_graph_39.map | 3 + .../html/inherit_graph_39.md5 | 1 + .../html/inherit_graph_39.svg | 22 + .../html/inherit_graph_4.map | 2 +- .../html/inherit_graph_4.md5 | 2 +- .../html/inherit_graph_4.svg | 14 +- .../html/inherit_graph_40.map | 3 + .../html/inherit_graph_40.md5 | 1 + .../html/inherit_graph_40.svg | 22 + .../html/inherit_graph_41.map | 3 + .../html/inherit_graph_41.md5 | 1 + .../html/inherit_graph_41.svg | 22 + .../html/inherit_graph_42.map | 3 + .../html/inherit_graph_42.md5 | 1 + .../html/inherit_graph_42.svg | 22 + .../html/inherit_graph_43.map | 3 + .../html/inherit_graph_43.md5 | 1 + .../html/inherit_graph_43.svg | 22 + .../html/inherit_graph_44.map | 3 + .../html/inherit_graph_44.md5 | 1 + .../html/inherit_graph_44.svg | 22 + .../html/inherit_graph_5.map | 2 +- .../html/inherit_graph_5.md5 | 2 +- .../html/inherit_graph_5.svg | 12 +- .../html/inherit_graph_6.map | 2 +- .../html/inherit_graph_6.md5 | 2 +- .../html/inherit_graph_6.svg | 14 +- .../html/inherit_graph_7.map | 2 +- .../html/inherit_graph_7.md5 | 2 +- .../html/inherit_graph_7.svg | 14 +- .../html/inherit_graph_8.map | 2 +- .../html/inherit_graph_8.md5 | 2 +- .../html/inherit_graph_8.svg | 12 +- .../html/inherit_graph_9.map | 2 +- .../html/inherit_graph_9.md5 | 2 +- .../html/inherit_graph_9.svg | 14 +- internalDocumentation/html/inherits.html | 78 +- internalDocumentation/html/menudata.js | 18 +- .../html/namespace_audio.html | 57 +- .../html/namespace_base_modules.html | 48 +- .../html/namespace_base_modules.js | 2 +- .../namespace_base_types_1_1_containers.html | 141 +- .../namespace_base_types_1_1_containers.js | 3 +- .../html/namespace_m_i_d_i.html | 32 +- .../html/namespacemembers.html | 39 + .../html/namespacemembers_enum.html | 3 + .../html/namespacemembers_eval.html | 6 + .../html/namespacemembers_func.html | 27 + .../html/namespacemembers_type.html | 3 + internalDocumentation/html/navtreedata.js | 13 +- internalDocumentation/html/navtreeindex0.js | 134 +- internalDocumentation/html/navtreeindex1.js | 412 +++--- internalDocumentation/html/navtreeindex2.js | 416 +++--- internalDocumentation/html/navtreeindex3.js | 453 +++---- internalDocumentation/html/navtreeindex4.js | 253 ++++ internalDocumentation/html/navtreeindex5.js | 50 + internalDocumentation/html/search/all_0.js | 257 ++-- internalDocumentation/html/search/all_1.js | 67 +- internalDocumentation/html/search/all_10.js | 37 +- internalDocumentation/html/search/all_11.js | 4 +- internalDocumentation/html/search/all_12.js | 33 +- internalDocumentation/html/search/all_13.js | 120 +- internalDocumentation/html/search/all_14.js | 69 +- internalDocumentation/html/search/all_15.js | 2 +- internalDocumentation/html/search/all_16.js | 36 +- internalDocumentation/html/search/all_17.js | 2 +- internalDocumentation/html/search/all_18.js | 34 +- internalDocumentation/html/search/all_2.js | 29 +- internalDocumentation/html/search/all_3.js | 65 +- internalDocumentation/html/search/all_4.js | 16 +- internalDocumentation/html/search/all_5.js | 27 +- internalDocumentation/html/search/all_6.js | 149 +-- internalDocumentation/html/search/all_7.js | 20 +- internalDocumentation/html/search/all_8.js | 20 +- internalDocumentation/html/search/all_9.js | 56 +- internalDocumentation/html/search/all_a.js | 38 +- internalDocumentation/html/search/all_b.js | 6 +- internalDocumentation/html/search/all_c.js | 95 +- internalDocumentation/html/search/all_d.js | 76 +- internalDocumentation/html/search/all_e.js | 16 +- internalDocumentation/html/search/all_f.js | 58 +- .../html/search/classes_0.js | 18 +- .../html/search/classes_1.js | 8 +- .../html/search/classes_2.js | 6 +- .../html/search/classes_3.js | 10 +- .../html/search/classes_4.js | 4 +- .../html/search/classes_5.js | 12 +- .../html/search/classes_6.js | 4 +- .../html/search/classes_7.js | 2 +- .../html/search/classes_8.js | 12 +- .../html/search/classes_9.js | 4 +- .../html/search/classes_a.js | 2 +- .../html/search/classes_b.js | 2 +- .../html/search/classes_c.js | 6 +- .../html/search/classes_d.js | 5 +- .../html/search/classes_e.js | 12 +- .../html/search/classes_f.html | 36 + .../html/search/classes_f.js | 4 + .../html/search/defines_0.js | 18 +- .../html/search/defines_1.js | 6 +- .../html/search/defines_2.js | 10 +- .../html/search/defines_3.js | 2 +- .../html/search/defines_4.js | 4 +- .../html/search/defines_5.js | 16 +- .../html/search/defines_6.js | 44 +- .../html/search/defines_7.js | 30 +- .../html/search/defines_8.js | 2 +- .../html/search/defines_9.js | 2 +- .../html/search/defines_a.js | 14 +- .../html/search/defines_b.js | 14 +- .../html/search/defines_c.js | 2 +- internalDocumentation/html/search/enums_0.js | 2 +- .../html/search/enums_1.html | 36 + internalDocumentation/html/search/enums_1.js | 4 + .../html/search/enumvalues_0.js | 5 +- .../html/search/enumvalues_1.html | 36 + .../html/search/enumvalues_1.js | 7 + .../html/search/enumvalues_2.html | 36 + .../html/search/enumvalues_2.js | 4 + internalDocumentation/html/search/files_0.js | 28 +- internalDocumentation/html/search/files_1.js | 8 +- internalDocumentation/html/search/files_2.js | 6 +- internalDocumentation/html/search/files_3.js | 6 +- internalDocumentation/html/search/files_4.js | 28 +- internalDocumentation/html/search/files_5.js | 2 +- internalDocumentation/html/search/files_6.js | 6 +- internalDocumentation/html/search/files_7.js | 10 +- internalDocumentation/html/search/files_8.js | 6 +- internalDocumentation/html/search/files_9.js | 23 +- internalDocumentation/html/search/files_a.js | 6 +- internalDocumentation/html/search/files_b.js | 6 +- internalDocumentation/html/search/files_c.js | 2 +- internalDocumentation/html/search/files_d.js | 8 +- internalDocumentation/html/search/files_e.js | 10 +- internalDocumentation/html/search/files_f.js | 4 +- .../html/search/functions_0.js | 121 +- .../html/search/functions_1.js | 20 +- .../html/search/functions_10.js | 23 +- .../html/search/functions_11.js | 4 +- .../html/search/functions_12.js | 19 +- .../html/search/functions_13.js | 58 +- .../html/search/functions_14.js | 35 +- .../html/search/functions_15.js | 2 +- .../html/search/functions_16.js | 30 +- .../html/search/functions_17.js | 34 +- .../html/search/functions_2.js | 9 +- .../html/search/functions_3.js | 33 +- .../html/search/functions_4.js | 6 +- .../html/search/functions_5.js | 17 +- .../html/search/functions_6.js | 40 +- .../html/search/functions_7.js | 16 +- .../html/search/functions_8.js | 20 +- .../html/search/functions_9.js | 28 +- .../html/search/functions_a.js | 2 +- .../html/search/functions_b.js | 2 +- .../html/search/functions_c.js | 12 +- .../html/search/functions_d.js | 31 +- .../html/search/functions_e.js | 4 +- .../html/search/functions_f.js | 41 +- .../html/search/namespaces_0.js | 2 +- .../html/search/namespaces_1.js | 8 +- .../html/search/namespaces_2.js | 6 +- .../html/search/namespaces_3.js | 8 +- internalDocumentation/html/search/pages_0.js | 2 +- .../html/search/related_0.html | 36 + .../html/search/related_0.js | 5 + .../html/search/searchdata.js | 23 +- .../html/search/typedefs_0.js | 3 +- .../html/search/typedefs_1.js | 38 +- .../html/search/typedefs_2.js | 2 +- .../html/search/typedefs_3.js | 2 +- .../html/search/typedefs_4.js | 3 +- .../html/search/typedefs_5.html | 36 + .../html/search/typedefs_5.js | 4 + .../html/search/variables_0.js | 122 +- .../html/search/variables_1.js | 4 +- .../html/search/variables_10.js | 23 +- .../html/search/variables_11.js | 2 +- .../html/search/variables_2.js | 2 +- .../html/search/variables_3.js | 10 +- .../html/search/variables_4.js | 2 +- .../html/search/variables_5.js | 12 +- .../html/search/variables_6.js | 40 +- .../html/search/variables_7.js | 6 +- .../html/search/variables_8.js | 4 +- .../html/search/variables_9.js | 8 +- .../html/search/variables_a.js | 14 +- .../html/search/variables_b.js | 4 +- .../html/search/variables_c.js | 4 +- .../html/search/variables_d.js | 12 +- .../html/search/variables_e.js | 2 +- .../html/search/variables_f.js | 22 +- .../struct___f_s_synthesizer_descriptor.js | 5 - ...o_1_1_audio_sample_fifo_queue-members.html | 2 +- ...uct_audio_1_1_audio_sample_fifo_queue.html | 8 +- ...truct_audio_1_1_audio_sample_fifo_queue.js | 2 +- ...io_1_1_audio_sample_fifo_queue_vector.html | 2 +- ...dio_1_1_audio_sample_fifo_queue_vector.png | Bin 0 -> 1158 bytes ...mple_fifo_queue_vector__inherit__graph.map | 4 +- ...mple_fifo_queue_vector__inherit__graph.md5 | 2 +- ...mple_fifo_queue_vector__inherit__graph.svg | 56 +- ...t_audio_1_1_audio_sample_list-members.html | 3 +- .../struct_audio_1_1_audio_sample_list.html | 63 +- .../struct_audio_1_1_audio_sample_list.js | 3 +- .../struct_audio_1_1_audio_sample_list.png | Bin 0 -> 1424 bytes ..._1_1_audio_sample_list__inherit__graph.map | 4 +- ..._1_1_audio_sample_list__inherit__graph.md5 | 2 +- ..._1_1_audio_sample_list__inherit__graph.svg | 45 +- ...ct_audio_1_1_audio_sample_list_vector.html | 2 +- ...uct_audio_1_1_audio_sample_list_vector.png | Bin 0 -> 1036 bytes ...dio_sample_list_vector__inherit__graph.map | 4 +- ...dio_sample_list_vector__inherit__graph.md5 | 2 +- ...dio_sample_list_vector__inherit__graph.svg | 46 +- .../struct_audio_1_1_wave_file-members.html | 7 +- .../html/struct_audio_1_1_wave_file.html | 159 ++- .../html/struct_audio_1_1_wave_file.js | 5 +- ...odules_1_1_command_line_argument_list.html | 36 +- ..._modules_1_1_command_line_argument_list.js | 4 - ...modules_1_1_command_line_argument_list.png | Bin 0 -> 1768 bytes ...and_line_argument_list__inherit__graph.map | 4 +- ...and_line_argument_list__inherit__graph.md5 | 2 +- ...and_line_argument_list__inherit__graph.svg | 42 +- .../struct_base_modules_1_1_file-members.html | 17 +- .../html/struct_base_modules_1_1_file.html | 125 +- .../html/struct_base_modules_1_1_file.js | 5 +- ...ruct_base_modules_1_1_logging-members.html | 13 +- .../html/struct_base_modules_1_1_logging.html | 110 +- .../html/struct_base_modules_1_1_logging.js | 3 + ..._modules_1_1_operating_system-members.html | 6 +- ...uct_base_modules_1_1_operating_system.html | 167 ++- ...truct_base_modules_1_1_operating_system.js | 4 + ..._base_modules_1_1_string_util-members.html | 71 +- .../struct_base_modules_1_1_string_util.html | 832 ++++++++++-- .../struct_base_modules_1_1_string_util.js | 25 +- ..._1_1_containers_1_1_byte_list-members.html | 3 +- ...se_types_1_1_containers_1_1_byte_list.html | 97 +- ...base_types_1_1_containers_1_1_byte_list.js | 5 +- ...ase_types_1_1_containers_1_1_byte_list.png | Bin 0 -> 1300 bytes ...ntainers_1_1_byte_list__inherit__graph.map | 4 +- ...ntainers_1_1_byte_list__inherit__graph.md5 | 2 +- ...ntainers_1_1_byte_list__inherit__graph.svg | 44 +- ...1_1_containers_1_1_dictionary-members.html | 1 - ...e_types_1_1_containers_1_1_dictionary.html | 29 +- ...ase_types_1_1_containers_1_1_dictionary.js | 3 +- ...se_types_1_1_containers_1_1_dictionary.png | Bin 0 -> 1625 bytes ...tainers_1_1_dictionary__inherit__graph.map | 4 +- ...tainers_1_1_dictionary__inherit__graph.md5 | 2 +- ...tainers_1_1_dictionary__inherit__graph.svg | 45 +- ...1_containers_1_1_integer_list-members.html | 3 +- ...types_1_1_containers_1_1_integer_list.html | 41 +- ...e_types_1_1_containers_1_1_integer_list.js | 3 +- ..._types_1_1_containers_1_1_integer_list.png | Bin 0 -> 1441 bytes ...iners_1_1_integer_list__inherit__graph.map | 4 +- ...iners_1_1_integer_list__inherit__graph.md5 | 2 +- ...iners_1_1_integer_list__inherit__graph.svg | 45 +- ...1_containers_1_1_natural_list-members.html | 8 +- ...types_1_1_containers_1_1_natural_list.html | 116 +- ...e_types_1_1_containers_1_1_natural_list.js | 4 +- ..._types_1_1_containers_1_1_natural_list.png | Bin 0 -> 1459 bytes ...iners_1_1_natural_list__inherit__graph.map | 4 +- ...iners_1_1_natural_list__inherit__graph.md5 | 2 +- ...iners_1_1_natural_list__inherit__graph.svg | 48 +- ..._1_1_containers_1_1_real_list-members.html | 1 - ...se_types_1_1_containers_1_1_real_list.html | 25 +- ...base_types_1_1_containers_1_1_real_list.js | 3 +- ...ase_types_1_1_containers_1_1_real_list.png | Bin 0 -> 1279 bytes ...ntainers_1_1_real_list__inherit__graph.map | 4 +- ...ntainers_1_1_real_list__inherit__graph.md5 | 2 +- ...ntainers_1_1_real_list__inherit__graph.svg | 46 +- ..._1_containers_1_1_string_list-members.html | 2 +- ..._types_1_1_containers_1_1_string_list.html | 40 +- ...se_types_1_1_containers_1_1_string_list.js | 2 +- ...e_types_1_1_containers_1_1_string_list.png | Bin 0 -> 1291 bytes ...ainers_1_1_string_list__inherit__graph.map | 4 +- ...ainers_1_1_string_list__inherit__graph.md5 | 2 +- ...ainers_1_1_string_list__inherit__graph.svg | 48 +- ...1_1_containers_1_1_string_set-members.html | 3 +- ...e_types_1_1_containers_1_1_string_set.html | 24 +- ...ase_types_1_1_containers_1_1_string_set.js | 3 +- ...se_types_1_1_containers_1_1_string_set.png | Bin 0 -> 1315 bytes ...tainers_1_1_string_set__inherit__graph.map | 4 +- ...tainers_1_1_string_set__inherit__graph.md5 | 2 +- ...tainers_1_1_string_set__inherit__graph.svg | 43 +- ...types_1_1_primitives_1_1_byte-members.html | 2 + ...ct_base_types_1_1_primitives_1_1_byte.html | 77 +- ...ruct_base_types_1_1_primitives_1_1_byte.js | 2 + ...uct_base_types_1_1_primitives_1_1_byte.png | Bin 0 -> 1041 bytes ..._1_primitives_1_1_byte__inherit__graph.map | 4 +- ..._1_primitives_1_1_byte__inherit__graph.md5 | 2 +- ..._1_primitives_1_1_byte__inherit__graph.svg | 64 +- ..._1_1_primitives_1_1_character-members.html | 1 + ...se_types_1_1_primitives_1_1_character.html | 46 +- ...base_types_1_1_primitives_1_1_character.js | 3 +- ...ase_types_1_1_primitives_1_1_character.png | Bin 0 -> 1090 bytes ...imitives_1_1_character__inherit__graph.map | 4 +- ...imitives_1_1_character__inherit__graph.md5 | 2 +- ...imitives_1_1_character__inherit__graph.svg | 51 +- ...es_1_1_primitives_1_1_integer-members.html | 2 +- ...base_types_1_1_primitives_1_1_integer.html | 16 +- ...t_base_types_1_1_primitives_1_1_integer.js | 2 +- ..._base_types_1_1_primitives_1_1_integer.png | Bin 0 -> 1036 bytes ...primitives_1_1_integer__inherit__graph.map | 4 +- ...primitives_1_1_integer__inherit__graph.md5 | 2 +- ...primitives_1_1_integer__inherit__graph.svg | 172 +-- ...es_1_1_primitives_1_1_natural-members.html | 3 +- ...base_types_1_1_primitives_1_1_natural.html | 73 +- ...t_base_types_1_1_primitives_1_1_natural.js | 3 +- ..._base_types_1_1_primitives_1_1_natural.png | Bin 0 -> 1086 bytes ...primitives_1_1_natural__inherit__graph.map | 4 +- ...primitives_1_1_natural__inherit__graph.md5 | 2 +- ...primitives_1_1_natural__inherit__graph.svg | 168 +-- ...itives_1_1_natural__inherit__graph_org.svg | 69 - ...1_1_primitives_1_1_percentage-members.html | 80 +- ...e_types_1_1_primitives_1_1_percentage.html | 63 +- ...ase_types_1_1_primitives_1_1_percentage.js | 3 +- ...se_types_1_1_primitives_1_1_percentage.png | Bin 0 -> 1532 bytes ...mitives_1_1_percentage__inherit__graph.map | 6 +- ...mitives_1_1_percentage__inherit__graph.md5 | 2 +- ...mitives_1_1_percentage__inherit__graph.svg | 137 +- ...ves_1_1_percentage__inherit__graph_org.svg | 137 +- ...es_1_1_primitives_1_1_radians-members.html | 73 +- ...base_types_1_1_primitives_1_1_radians.html | 11 +- ..._base_types_1_1_primitives_1_1_radians.png | Bin 0 -> 1501 bytes ...primitives_1_1_radians__inherit__graph.map | 6 +- ...primitives_1_1_radians__inherit__graph.md5 | 2 +- ...primitives_1_1_radians__inherit__graph.svg | 116 +- ...itives_1_1_radians__inherit__graph_org.svg | 116 +- ...types_1_1_primitives_1_1_real-members.html | 67 +- ...ct_base_types_1_1_primitives_1_1_real.html | 56 +- ...ruct_base_types_1_1_primitives_1_1_real.js | 3 +- ...uct_base_types_1_1_primitives_1_1_real.png | Bin 0 -> 2183 bytes ..._1_primitives_1_1_real__inherit__graph.map | 8 +- ..._1_primitives_1_1_real__inherit__graph.md5 | 2 +- ..._1_primitives_1_1_real__inherit__graph.svg | 159 +-- ...rimitives_1_1_real__inherit__graph_org.svg | 159 +-- ...libraries_1_1_dynamic_library-members.html | 9 +- .../struct_libraries_1_1_dynamic_library.html | 117 +- .../struct_libraries_1_1_dynamic_library.js | 3 + ...1_fluid_synth_1_1_fluid_synth-members.html | 4 +- ...aries_1_1_fluid_synth_1_1_fluid_synth.html | 77 +- ...braries_1_1_fluid_synth_1_1_fluid_synth.js | 2 + ...h_1_1_fluid_synth_synthesizer-members.html | 22 +- ...uid_synth_1_1_fluid_synth_synthesizer.html | 76 +- ...fluid_synth_1_1_fluid_synth_synthesizer.js | 2 + ...struct_m_i_d_i_1_1_midi_event-members.html | 13 +- .../html/struct_m_i_d_i_1_1_midi_event.html | 29 + .../html/struct_m_i_d_i_1_1_midi_event.js | 1 + ..._d_i_1_1_midi_event_converter-members.html | 2 + ...ruct_m_i_d_i_1_1_midi_event_converter.html | 77 +- ...struct_m_i_d_i_1_1_midi_event_converter.js | 2 + ...t_m_i_d_i_1_1_midi_event_kind-members.html | 4 +- .../struct_m_i_d_i_1_1_midi_event_kind.html | 111 +- .../struct_m_i_d_i_1_1_midi_event_kind.js | 4 +- ...t_m_i_d_i_1_1_midi_event_list-members.html | 1 - .../struct_m_i_d_i_1_1_midi_event_list.html | 25 +- .../struct_m_i_d_i_1_1_midi_event_list.js | 3 +- .../struct_m_i_d_i_1_1_midi_event_list.png | Bin 0 -> 1368 bytes ..._i_1_1_midi_event_list__inherit__graph.map | 4 +- ..._i_1_1_midi_event_list__inherit__graph.md5 | 2 +- ..._i_1_1_midi_event_list__inherit__graph.svg | 45 +- .../struct_m_i_d_i_1_1_midi_file-members.html | 2 + .../html/struct_m_i_d_i_1_1_midi_file.html | 76 +- .../html/struct_m_i_d_i_1_1_midi_file.js | 2 + ...id_synth_plugin_1_1___widget_listener.html | 2 +- ...uid_synth_plugin_1_1___widget_listener.png | Bin 0 -> 923 bytes ..._1_1___widget_listener__inherit__graph.map | 6 +- ..._1_1___widget_listener__inherit__graph.md5 | 2 +- ..._1_1___widget_listener__inherit__graph.svg | 58 +- ...lugin_1_1_fluid_synth_plugin___editor.html | 2 +- ...plugin_1_1_fluid_synth_plugin___editor.png | Bin 0 -> 859 bytes ..._synth_plugin___editor__inherit__graph.map | 4 +- ..._synth_plugin___editor__inherit__graph.md5 | 2 +- ..._synth_plugin___editor__inherit__graph.svg | 44 +- ..._fluid_synth_plugin___event_processor.html | 2 +- ...1_fluid_synth_plugin___event_processor.png | Bin 0 -> 896 bytes ...ugin___event_processor__inherit__graph.map | 4 +- ...ugin___event_processor__inherit__graph.md5 | 2 +- ...ugin___event_processor__inherit__graph.svg | 58 +- ...ct_windows_1_1tag_b_i_t_m_a_p-members.html | 108 ++ .../struct_windows_1_1tag_b_i_t_m_a_p.html | 130 ++ .../html/struct_windows_1_1tag_b_i_t_m_a_p.js | 10 + ...s_1_1tag_b_i_t_m_a_p_i_n_f_o-members.html} | 10 +- ...ct_windows_1_1tag_b_i_t_m_a_p_i_n_f_o.html | 115 ++ ...ruct_windows_1_1tag_b_i_t_m_a_p_i_n_f_o.js | 5 + ...i_t_m_a_p_i_n_f_o_h_e_a_d_e_r-members.html | 112 ++ ..._1tag_b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.html | 142 ++ ..._1_1tag_b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.js | 14 + ...g_d_r_a_w_t_e_x_t_p_a_r_a_m_s-members.html | 106 ++ ...ws_1_1tag_d_r_a_w_t_e_x_t_p_a_r_a_m_s.html | 124 ++ ...dows_1_1tag_d_r_a_w_t_e_x_t_p_a_r_a_m_s.js | 8 + ...indows_1_1tag_l_o_g_f_o_n_t_w-members.html | 115 ++ ...struct_windows_1_1tag_l_o_g_f_o_n_t_w.html | 151 +++ .../struct_windows_1_1tag_l_o_g_f_o_n_t_w.js | 17 + .../struct_windows_1_1tag_m_s_g-members.html | 108 ++ .../html/struct_windows_1_1tag_m_s_g.html | 130 ++ .../html/struct_windows_1_1tag_m_s_g.js | 10 + ..._1_1tag_p_a_i_n_t_s_t_r_u_c_t-members.html | 107 ++ ..._windows_1_1tag_p_a_i_n_t_s_t_r_u_c_t.html | 127 ++ ...ct_windows_1_1tag_p_a_i_n_t_s_t_r_u_c_t.js | 9 + ...uct_windows_1_1tag_p_o_i_n_t-members.html} | 9 +- ...l => struct_windows_1_1tag_p_o_i_n_t.html} | 28 +- .../html/struct_windows_1_1tag_p_o_i_n_t.js | 5 + ...struct_windows_1_1tag_r_e_c_t-members.html | 105 ++ ...tml => struct_windows_1_1tag_r_e_c_t.html} | 34 +- .../html/struct_windows_1_1tag_r_e_c_t.js | 7 + ..._windows_1_1tag_r_g_b_q_u_a_d-members.html | 105 ++ ... struct_windows_1_1tag_r_g_b_q_u_a_d.html} | 39 +- .../struct_windows_1_1tag_r_g_b_q_u_a_d.js | 7 + ..._1_1tag_w_n_d_c_l_a_s_s_e_x_w-members.html | 113 ++ ..._windows_1_1tag_w_n_d_c_l_a_s_s_e_x_w.html | 145 +++ ...ct_windows_1_1tag_w_n_d_c_l_a_s_s_e_x_w.js | 15 + libraries/Darwin-x86_64/libFLAC.8.dylib | Bin 0 -> 190644 bytes libraries/Darwin-x86_64/libffi.8.dylib | Bin 0 -> 38400 bytes libraries/Darwin-x86_64/libfluidsynth.3.dylib | Bin 0 -> 355376 bytes libraries/Darwin-x86_64/libglib-2.0.0.dylib | Bin 0 -> 1292808 bytes .../Darwin-x86_64/libgobject-2.0.0.dylib | Bin 0 -> 390020 bytes .../Darwin-x86_64/libgthread-2.0.0.dylib | Bin 0 -> 17308 bytes libraries/Darwin-x86_64/libiconv.2.dylib | Bin 0 -> 1114932 bytes libraries/Darwin-x86_64/libintl.8.dylib | Bin 0 -> 59172 bytes libraries/Darwin-x86_64/libncurses.6.dylib | Bin 0 -> 317488 bytes libraries/Darwin-x86_64/libogg.0.dylib | Bin 0 -> 32972 bytes libraries/Darwin-x86_64/libopus.0.dylib | Bin 0 -> 331204 bytes libraries/Darwin-x86_64/libpcre.1.dylib | Bin 0 -> 460868 bytes libraries/Darwin-x86_64/libreadline.8.dylib | Bin 0 -> 249732 bytes libraries/Darwin-x86_64/libsndfile.1.dylib | Bin 0 -> 445988 bytes libraries/Darwin-x86_64/libvorbis.0.dylib | Bin 0 -> 179800 bytes libraries/Darwin-x86_64/libvorbisenc.2.dylib | Bin 0 -> 789916 bytes libraries/Linux-x86_64/libfluidsynth.so.3 | Bin 0 -> 551240 bytes libraries/Windows-AMD64/libfluidsynth-3.dll | Bin 0 -> 543744 bytes libraries/Windows-AMD64/libgcc_s_sjlj-1.dll | Bin 0 -> 85504 bytes libraries/Windows-AMD64/libglib-2.0-0.dll | Bin 0 -> 1268114 bytes libraries/Windows-AMD64/libgobject-2.0-0.dll | Bin 0 -> 426582 bytes libraries/Windows-AMD64/libgomp-1.dll | Bin 0 -> 156672 bytes libraries/Windows-AMD64/libgthread-2.0-0.dll | Bin 0 -> 126615 bytes libraries/Windows-AMD64/libinstpatch-2.dll | Bin 0 -> 2445824 bytes libraries/Windows-AMD64/libintl-8.dll | Bin 0 -> 240862 bytes libraries/Windows-AMD64/libsndfile-1.dll | Bin 0 -> 1748992 bytes libraries/Windows-AMD64/libstdc++-6.dll | Bin 0 -> 1739776 bytes libraries/Windows-AMD64/libwinpthread-1.dll | Bin 0 -> 52224 bytes src/Audio/AudioSampleFifoQueue.h | 2 +- src/Audio/AudioSampleFifoQueueVector.cpp-inc | 5 +- src/Audio/AudioSampleList.cpp-inc | 25 +- src/Audio/AudioSampleList.h | 51 +- src/Audio/WaveFile.cpp | 856 +++++++++++-- src/Audio/WaveFile.h | 93 +- src/BaseModules/Assertion.h | 18 +- src/BaseModules/CommandLineArguments.cpp | 49 +- src/BaseModules/CommandLineArguments.h | 22 +- src/BaseModules/File.cpp | 54 +- src/BaseModules/File.h | 46 +- src/BaseModules/Logging.h | 21 +- src/BaseModules/LoggingSupport.cpp | 159 ++- src/BaseModules/LoggingSupport.h | 57 +- src/BaseModules/MyWindows.h | 413 ++++++ src/BaseModules/OperatingSystem.cpp | 171 ++- src/BaseModules/OperatingSystem.h | 53 +- src/BaseModules/StringUtil.cpp | 364 +++++- src/BaseModules/StringUtil.h | 233 +++- src/BaseTypes/Containers/ByteList.cpp | 41 +- src/BaseTypes/Containers/ByteList.h | 49 +- src/BaseTypes/Containers/Dictionary.cpp | 35 +- src/BaseTypes/Containers/Dictionary.h | 28 +- src/BaseTypes/Containers/GenericMatrix.h | 163 --- src/BaseTypes/Containers/GenericSequence.h | 431 ------- src/BaseTypes/Containers/GenericTuple.h | 196 --- src/BaseTypes/Containers/IntegerList.cpp | 36 +- src/BaseTypes/Containers/IntegerList.h | 36 +- src/BaseTypes/Containers/NaturalList.cpp | 57 +- src/BaseTypes/Containers/NaturalList.h | 72 +- src/BaseTypes/Containers/RealList.cpp | 16 +- src/BaseTypes/Containers/RealList.h | 28 +- src/BaseTypes/Containers/StringList.cpp | 66 +- src/BaseTypes/Containers/StringList.h | 51 +- src/BaseTypes/Containers/StringSet.cpp | 82 -- src/BaseTypes/Containers/StringSet.h | 67 - .../GenericTypes/ElementToStringProc.h | 35 + .../GenericTypes/GenericEnumeration.h | 20 +- src/BaseTypes/GenericTypes/GenericList.h | 301 +++-- src/BaseTypes/GenericTypes/GenericMap.h | 218 ++-- src/BaseTypes/GenericTypes/GenericNumber.h | 66 +- src/BaseTypes/GenericTypes/GenericSet.h | 133 +- src/BaseTypes/GenericTypes/GenericTuple.h | 135 +- src/BaseTypes/GenericTypes/StringProc.h | 33 + src/BaseTypes/Primitives/Byte.h | 27 + src/BaseTypes/Primitives/Character.h | 13 + src/BaseTypes/Primitives/GenericEnumeration.h | 94 -- src/BaseTypes/Primitives/GenericNumber.h | 352 ----- src/BaseTypes/Primitives/Integer.h | 11 +- src/BaseTypes/Primitives/Natural.h | 59 +- src/BaseTypes/Primitives/Percentage.h | 30 +- src/BaseTypes/Primitives/Radians.h | 8 +- src/BaseTypes/Primitives/Real.h | 24 +- src/Libraries/DynamicLibrary.cpp | 106 +- src/Libraries/DynamicLibrary.h | 41 + src/Libraries/FluidSynth/FluidSynth.h | 24 + .../FluidSynth/FluidSynthSettings.cpp | 7 +- .../FluidSynth/FluidSynthSynthesizer.h | 27 + .../include_juce_audio_plugin_client_AU.r | 1 + src/MIDI/MidiEvent.cpp | 96 +- src/MIDI/MidiEvent.h | 29 +- src/MIDI/MidiEventConverter.cpp | 35 +- src/MIDI/MidiEventConverter.h | 34 +- src/MIDI/MidiEventList.cpp | 14 +- src/MIDI/MidiEventList.h | 25 +- src/MIDI/MidiFile.cpp | 30 +- src/MIDI/MidiFile.h | 22 + .../FluidSynthFileConverter.cpp | 84 +- .../FluidSynthPlugin_EventProcessor.cpp | 60 +- .../FluidSynthPlugin/JucePlugin-VST_1.cpp | 3 +- test/SimpleTestSoundfont.sf2 | Bin 0 -> 20624670 bytes test/makeTestFiles.bat | 54 + test/makeTestFiles.sh.in | 61 + test/testFluidSynth-44100.rpp | 1048 +++++++++++++++ test/testFluidSynth-48000.rpp | 1048 +++++++++++++++ test/test_bass.mid | Bin 0 -> 658 bytes test/test_drums.mid | Bin 0 -> 813 bytes test/test_keyboard.mid | Bin 0 -> 236 bytes 1325 files changed, 54704 insertions(+), 43215 deletions(-) create mode 100644 internalDocumentation/html/_audio_sample_fifo_queue_vector_8cpp-inc.js create mode 100644 internalDocumentation/html/_audio_sample_list_8cpp__incl_org.svg create mode 100644 internalDocumentation/html/_audio_sample_list_8h.js create mode 100644 internalDocumentation/html/_audio_sample_list_8h__incl_org.svg create mode 100644 internalDocumentation/html/_audio_sample_list_vector_8h__incl_org.svg create mode 100644 internalDocumentation/html/_byte_list_8h.js create mode 100644 internalDocumentation/html/_command_line_arguments_8h.js create mode 100644 internalDocumentation/html/_dictionary_8cpp.js create mode 100644 internalDocumentation/html/_dictionary_8h.js create mode 100644 internalDocumentation/html/_dynamic_library_8h__dep__incl_org.svg create mode 100644 internalDocumentation/html/_integer_list_8h.js create mode 100644 internalDocumentation/html/_logging_support_8h.js create mode 100644 internalDocumentation/html/_midi_event_list_8h.js delete mode 100644 internalDocumentation/html/_midi_event_list_8h__incl_org.svg create mode 100644 internalDocumentation/html/_my_windows_8h.html create mode 100644 internalDocumentation/html/_my_windows_8h.js create mode 100644 internalDocumentation/html/_my_windows_8h_source.html create mode 100644 internalDocumentation/html/_natural_list_8cpp.js create mode 100644 internalDocumentation/html/_natural_list_8cpp__incl_org.svg create mode 100644 internalDocumentation/html/_natural_list_8h.js delete mode 100644 internalDocumentation/html/_natural_list_8h__dep__incl_org.svg delete mode 100644 internalDocumentation/html/_real_list_8cpp__incl_org.svg create mode 100644 internalDocumentation/html/_real_list_8h.js delete mode 100644 internalDocumentation/html/_real_list_8h__incl_org.svg create mode 100644 internalDocumentation/html/_string_list_8cpp.js delete mode 100644 internalDocumentation/html/_string_list_8cpp__incl_org.svg create mode 100644 internalDocumentation/html/_string_list_8h.js delete mode 100644 internalDocumentation/html/_string_set_8cpp__incl_org.svg create mode 100644 internalDocumentation/html/_string_set_8h.js create mode 100644 internalDocumentation/html/_wave_file_8h.js rename internalDocumentation/html/{dir_000001_000012.html => dir_000002_000001.html} (63%) rename internalDocumentation/html/{dir_000004_000003.html => dir_000003_000001.html} (77%) delete mode 100644 internalDocumentation/html/dir_000003_000004.html delete mode 100644 internalDocumentation/html/dir_000003_000006.html rename internalDocumentation/html/{dir_000005_000003.html => dir_000004_000001.html} (89%) delete mode 100644 internalDocumentation/html/dir_000004_000006.html delete mode 100644 internalDocumentation/html/dir_000004_000007.html rename internalDocumentation/html/{dir_000008_000002.html => dir_000005_000001.html} (79%) delete mode 100644 internalDocumentation/html/dir_000006_000004.html delete mode 100644 internalDocumentation/html/dir_000006_000007.html delete mode 100644 internalDocumentation/html/dir_000007_000004.html delete mode 100644 internalDocumentation/html/dir_000008_000003.html delete mode 100644 internalDocumentation/html/dir_000008_000004.html delete mode 100644 internalDocumentation/html/dir_000008_000005.html delete mode 100644 internalDocumentation/html/dir_000009_000004.html delete mode 100644 internalDocumentation/html/dir_000009_000005.html rename internalDocumentation/html/{dir_000005_000006.html => dir_000009_000006.html} (76%) delete mode 100644 internalDocumentation/html/dir_000010_000003.html delete mode 100644 internalDocumentation/html/dir_000010_000004.html rename internalDocumentation/html/{dir_000001_000007.html => dir_000010_000006.html} (81%) delete mode 100644 internalDocumentation/html/dir_000011_000004.html rename internalDocumentation/html/{dir_000002_000012.html => dir_000011_000006.html} (87%) delete mode 100644 internalDocumentation/html/dir_000012_000004.html delete mode 100644 internalDocumentation/html/dir_000012_000005.html rename internalDocumentation/html/{dir_000012_000008.html => functions_rela.html} (79%) create mode 100644 internalDocumentation/html/inherit_graph_35.map create mode 100644 internalDocumentation/html/inherit_graph_35.md5 create mode 100644 internalDocumentation/html/inherit_graph_35.svg create mode 100644 internalDocumentation/html/inherit_graph_36.map create mode 100644 internalDocumentation/html/inherit_graph_36.md5 create mode 100644 internalDocumentation/html/inherit_graph_36.svg create mode 100644 internalDocumentation/html/inherit_graph_37.map create mode 100644 internalDocumentation/html/inherit_graph_37.md5 create mode 100644 internalDocumentation/html/inherit_graph_37.svg create mode 100644 internalDocumentation/html/inherit_graph_38.map create mode 100644 internalDocumentation/html/inherit_graph_38.md5 create mode 100644 internalDocumentation/html/inherit_graph_38.svg create mode 100644 internalDocumentation/html/inherit_graph_39.map create mode 100644 internalDocumentation/html/inherit_graph_39.md5 create mode 100644 internalDocumentation/html/inherit_graph_39.svg create mode 100644 internalDocumentation/html/inherit_graph_40.map create mode 100644 internalDocumentation/html/inherit_graph_40.md5 create mode 100644 internalDocumentation/html/inherit_graph_40.svg create mode 100644 internalDocumentation/html/inherit_graph_41.map create mode 100644 internalDocumentation/html/inherit_graph_41.md5 create mode 100644 internalDocumentation/html/inherit_graph_41.svg create mode 100644 internalDocumentation/html/inherit_graph_42.map create mode 100644 internalDocumentation/html/inherit_graph_42.md5 create mode 100644 internalDocumentation/html/inherit_graph_42.svg create mode 100644 internalDocumentation/html/inherit_graph_43.map create mode 100644 internalDocumentation/html/inherit_graph_43.md5 create mode 100644 internalDocumentation/html/inherit_graph_43.svg create mode 100644 internalDocumentation/html/inherit_graph_44.map create mode 100644 internalDocumentation/html/inherit_graph_44.md5 create mode 100644 internalDocumentation/html/inherit_graph_44.svg create mode 100644 internalDocumentation/html/navtreeindex4.js create mode 100644 internalDocumentation/html/navtreeindex5.js create mode 100644 internalDocumentation/html/search/classes_f.html create mode 100644 internalDocumentation/html/search/classes_f.js create mode 100644 internalDocumentation/html/search/enums_1.html create mode 100644 internalDocumentation/html/search/enums_1.js create mode 100644 internalDocumentation/html/search/enumvalues_1.html create mode 100644 internalDocumentation/html/search/enumvalues_1.js create mode 100644 internalDocumentation/html/search/enumvalues_2.html create mode 100644 internalDocumentation/html/search/enumvalues_2.js create mode 100644 internalDocumentation/html/search/related_0.html create mode 100644 internalDocumentation/html/search/related_0.js create mode 100644 internalDocumentation/html/search/typedefs_5.html create mode 100644 internalDocumentation/html/search/typedefs_5.js delete mode 100644 internalDocumentation/html/struct___f_s_synthesizer_descriptor.js create mode 100644 internalDocumentation/html/struct_audio_1_1_audio_sample_fifo_queue_vector.png create mode 100644 internalDocumentation/html/struct_audio_1_1_audio_sample_list.png create mode 100644 internalDocumentation/html/struct_audio_1_1_audio_sample_list_vector.png delete mode 100644 internalDocumentation/html/struct_base_modules_1_1_command_line_argument_list.js create mode 100644 internalDocumentation/html/struct_base_modules_1_1_command_line_argument_list.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_containers_1_1_byte_list.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_containers_1_1_dictionary.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_containers_1_1_integer_list.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_containers_1_1_natural_list.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_containers_1_1_real_list.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_containers_1_1_string_list.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_containers_1_1_string_set.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_primitives_1_1_byte.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_primitives_1_1_character.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_primitives_1_1_integer.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.png delete mode 100644 internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph_org.svg create mode 100644 internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_primitives_1_1_radians.png create mode 100644 internalDocumentation/html/struct_base_types_1_1_primitives_1_1_real.png create mode 100644 internalDocumentation/html/struct_m_i_d_i_1_1_midi_event_list.png create mode 100644 internalDocumentation/html/struct_main_1_1_fluid_synth_plugin_1_1___widget_listener.png create mode 100644 internalDocumentation/html/struct_main_1_1_fluid_synth_plugin_1_1_fluid_synth_plugin___editor.png create mode 100644 internalDocumentation/html/struct_main_1_1_fluid_synth_plugin_1_1_fluid_synth_plugin___event_processor.png create mode 100644 internalDocumentation/html/struct_windows_1_1tag_b_i_t_m_a_p-members.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_b_i_t_m_a_p.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_b_i_t_m_a_p.js rename internalDocumentation/html/{struct___f_s_synthesizer_descriptor-members.html => struct_windows_1_1tag_b_i_t_m_a_p_i_n_f_o-members.html} (80%) create mode 100644 internalDocumentation/html/struct_windows_1_1tag_b_i_t_m_a_p_i_n_f_o.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_b_i_t_m_a_p_i_n_f_o.js create mode 100644 internalDocumentation/html/struct_windows_1_1tag_b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r-members.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_b_i_t_m_a_p_i_n_f_o_h_e_a_d_e_r.js create mode 100644 internalDocumentation/html/struct_windows_1_1tag_d_r_a_w_t_e_x_t_p_a_r_a_m_s-members.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_d_r_a_w_t_e_x_t_p_a_r_a_m_s.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_d_r_a_w_t_e_x_t_p_a_r_a_m_s.js create mode 100644 internalDocumentation/html/struct_windows_1_1tag_l_o_g_f_o_n_t_w-members.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_l_o_g_f_o_n_t_w.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_l_o_g_f_o_n_t_w.js create mode 100644 internalDocumentation/html/struct_windows_1_1tag_m_s_g-members.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_m_s_g.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_m_s_g.js create mode 100644 internalDocumentation/html/struct_windows_1_1tag_p_a_i_n_t_s_t_r_u_c_t-members.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_p_a_i_n_t_s_t_r_u_c_t.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_p_a_i_n_t_s_t_r_u_c_t.js rename internalDocumentation/html/{struct_base_modules_1_1_command_line_argument_list-members.html => struct_windows_1_1tag_p_o_i_n_t-members.html} (81%) rename internalDocumentation/html/{dir_000003_000005.html => struct_windows_1_1tag_p_o_i_n_t.html} (68%) create mode 100644 internalDocumentation/html/struct_windows_1_1tag_p_o_i_n_t.js create mode 100644 internalDocumentation/html/struct_windows_1_1tag_r_e_c_t-members.html rename internalDocumentation/html/{dir_000005_000004.html => struct_windows_1_1tag_r_e_c_t.html} (60%) create mode 100644 internalDocumentation/html/struct_windows_1_1tag_r_e_c_t.js create mode 100644 internalDocumentation/html/struct_windows_1_1tag_r_g_b_q_u_a_d-members.html rename internalDocumentation/html/{struct___f_s_synthesizer_descriptor.html => struct_windows_1_1tag_r_g_b_q_u_a_d.html} (65%) create mode 100644 internalDocumentation/html/struct_windows_1_1tag_r_g_b_q_u_a_d.js create mode 100644 internalDocumentation/html/struct_windows_1_1tag_w_n_d_c_l_a_s_s_e_x_w-members.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_w_n_d_c_l_a_s_s_e_x_w.html create mode 100644 internalDocumentation/html/struct_windows_1_1tag_w_n_d_c_l_a_s_s_e_x_w.js create mode 100644 libraries/Darwin-x86_64/libFLAC.8.dylib create mode 100644 libraries/Darwin-x86_64/libffi.8.dylib create mode 100644 libraries/Darwin-x86_64/libfluidsynth.3.dylib create mode 100644 libraries/Darwin-x86_64/libglib-2.0.0.dylib create mode 100644 libraries/Darwin-x86_64/libgobject-2.0.0.dylib create mode 100644 libraries/Darwin-x86_64/libgthread-2.0.0.dylib create mode 100644 libraries/Darwin-x86_64/libiconv.2.dylib create mode 100644 libraries/Darwin-x86_64/libintl.8.dylib create mode 100644 libraries/Darwin-x86_64/libncurses.6.dylib create mode 100644 libraries/Darwin-x86_64/libogg.0.dylib create mode 100644 libraries/Darwin-x86_64/libopus.0.dylib create mode 100644 libraries/Darwin-x86_64/libpcre.1.dylib create mode 100644 libraries/Darwin-x86_64/libreadline.8.dylib create mode 100644 libraries/Darwin-x86_64/libsndfile.1.dylib create mode 100644 libraries/Darwin-x86_64/libvorbis.0.dylib create mode 100644 libraries/Darwin-x86_64/libvorbisenc.2.dylib create mode 100644 libraries/Linux-x86_64/libfluidsynth.so.3 create mode 100644 libraries/Windows-AMD64/libfluidsynth-3.dll create mode 100644 libraries/Windows-AMD64/libgcc_s_sjlj-1.dll create mode 100644 libraries/Windows-AMD64/libglib-2.0-0.dll create mode 100644 libraries/Windows-AMD64/libgobject-2.0-0.dll create mode 100644 libraries/Windows-AMD64/libgomp-1.dll create mode 100644 libraries/Windows-AMD64/libgthread-2.0-0.dll create mode 100644 libraries/Windows-AMD64/libinstpatch-2.dll create mode 100644 libraries/Windows-AMD64/libintl-8.dll create mode 100644 libraries/Windows-AMD64/libsndfile-1.dll create mode 100644 libraries/Windows-AMD64/libstdc++-6.dll create mode 100644 libraries/Windows-AMD64/libwinpthread-1.dll create mode 100644 src/BaseModules/MyWindows.h delete mode 100644 src/BaseTypes/Containers/GenericMatrix.h delete mode 100644 src/BaseTypes/Containers/GenericSequence.h delete mode 100644 src/BaseTypes/Containers/GenericTuple.h delete mode 100644 src/BaseTypes/Containers/StringSet.cpp delete mode 100644 src/BaseTypes/Containers/StringSet.h create mode 100644 src/BaseTypes/GenericTypes/ElementToStringProc.h create mode 100644 src/BaseTypes/GenericTypes/StringProc.h delete mode 100644 src/BaseTypes/Primitives/GenericEnumeration.h delete mode 100644 src/BaseTypes/Primitives/GenericNumber.h create mode 100644 src/Libraries/JuceFacade/include_juce_audio_plugin_client_AU.r create mode 100644 test/SimpleTestSoundfont.sf2 create mode 100644 test/makeTestFiles.bat create mode 100644 test/makeTestFiles.sh.in create mode 100644 test/testFluidSynth-44100.rpp create mode 100644 test/testFluidSynth-48000.rpp create mode 100644 test/test_bass.mid create mode 100644 test/test_drums.mid create mode 100644 test/test_keyboard.mid diff --git a/FluidSynthPlugin-documentation.pdf b/FluidSynthPlugin-documentation.pdf index dd70a9af1f22c76437674ce964bdbb4d962b6c42..836d0aab9edaa1a0a44f1bb30b6724e379a2079f 100644 GIT binary patch delta 92170 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

FG z*CIj6K&y^b9%E3y@v&c%?zu1#+4;&ytdQse2+%>}gChyce}f~F%;UsPXw9@_D~dDe z@A@E_t-f5KK02ZU5-<2#+pT+R)kZE}rZTGlRagW{f8zH+5J9XiAsCJz@_O=Y)^0Q0 z8s3>xg}`HiPnDrvgs{00QVXc#3#bWHE4QUGXBy6o6)P*W#Vx;IK@(UmCGjcAA@NCz%RZ`J<81@-8QEEW_Nve zRyZG$Bx{Ik(MBRVdAg+DhvKw}p)~yEE86w8R=sW&#v6$5^|H!(V?jaD8dI)fj+{ZJ z8vSI=Rn``swYvj%NCG8R1^-xkU>A_;W2A*Xp-J#`b~A|%1ede#Y{<4uzhQeO?!g?3m(xx z!yK&L)Nu+;cwKfETM50nHYYDBxLInCdaTABT=KDh(DL09rw3=xS6UroBzV)NLn;{S zgcz9$hv#N-pW?xZ)_K#o)>!E=2%fvQL9~t#+hbW_7KMCYj*=|a72<*;6JDKpEOH& znXH$9o-hLhkBXCQ*i3Tu^zzpe!{y~#yDQ@>DBvp-CMV$TFunmy8XW1x%n(lylA;MF zJ}|l&q`sr~7v9)QW15OooehUQL2@2*h z5HqKSgo_g>Vfp>(A0AQV_DT{NdSy0Zr2B2Z-nx zYR_Ipf;+MyDzh6ehgFXa(8*TF-Ap^f^In#57hn5Jm4L7!x8x4U(y*lSUJj{g|7|zG zggU~f?W*tqYVTrU+18->0MN6wDc%q07gN#_1nmTE_jnu@?;T8AIhn^)(gYh<(;rs^ zd1@tESw5v9<6pQN*iXe#K|qWthPtlF6sg#2N8x=-=7$`P7gcPgpWD|YP((A{F6tRr z(8;(Lvp7OV)^Nptfh8_{{K$hlG_92Z?cr!5?v^mA)X?*^)Borom6XRx@0%q{Jh0tm zW%k=^X<2=`3e@zr?vDaBj1nEmYxr@Z_IU~-;5^<)g)=3O3gu=B^XF{crR;T9-P2~g z_9kn)L|?=Ro78i+*dQ_Miy3M;5O<^X0owis}(!v7{v9IQla z|K+k_=3pUWWBp%h#mxTC;lB;x|1Z+T%*vf!PX$k(&MXd$4$95O{2ymOpf_7Lxw->6 zaQ9U6EwM5heH+|+I!|_1qltI@zKo{Tk`OB!TXk?0m`|0mU!WEiZU`%OCXZ5R?IP`| za(NrY>%M6qX3i6!zy1A=YV0Bm6&+d-v-}vW6kVjmkP_M?#h{Tr;s`8?w#}GYGI&^z zh$#5uLbzb`d_VksTTNI92uAWnH;M;?7Y=;CEbssMI37Oi2k3myd~aY~HR2AQh>Nu8&Y{T8E z^w9ZC0p7QerI{V0*p7pVv8!~X66x}Edrh?i^Wv1qD%nUUm`I4jY`{=d)`@*OEZHJs zywcUAop}`0!k{FNeA_f)N|ehRQvzG=9@-X=y5zzGbOp(dyQC1+vu+i2CxKbdW^UJ% z2qd7U9AvqLNe#myjEx?Xd%0$QGZ4Uv2emXXFa6r+@lXI_^SAEtk!sxd~O7rsCuC(w0@u~E4`MKyXt>;xJC|H5> zRVLufWuGT`;UArHKdYRt+p!tN0I-#i!(Z@hYDdoQd9xG2iswt}PU4OwsBrYS2E`2J zs^L^1syjul=?)9Wsy#n*O>#|U`tS)pxg^CUD?HYG98thb)VJw+(MH*}5<6ER!jijK zZcDs8WlXIAbLc&Nyyy}a_Omp7u*w7~5MGNGCw^nDZE|z${y-5+;M_vp7IgE0EI|SF z#2Z5hpj?^`NTrHkI8A5Zf(8pCJo$!0(NLGWSCW0yF2kEg8f}Y-zoi=pKs?%si-SE) z^tpe~8YpP`=_}biCuH+$ZNs0!G1yEe3+r?>#YhqXSz`xG(NyKv_tS>S2i#M;NOILd zgFO=9j#x}$cs;x`w(iq9DQ4Q0mYsf_Y#+ql%ZO3-yA&9jMA1lLh;YE;R5UV&YBV=~_jW$B*2do#FnaqUu3TF9!i}xY zSey6)fWl$G`cjP|aR>D?C#ZrtA{z}N7q^KStGonToD3>u(=D(T5$IYCaMG~sj#j*^ z>EK$@S3}jye*eMd;2L5?(On41%!Z{|8~v1D>4sZQnfcR!)8ZlcD}+Pa1<_Usa{q#3 z1*~R+t7JHu30P*zdBtc@NJMY&?nyBZnqPo$?mRGux%!SMz z;61zA)Hl%@Gn$CH*m+%Qcac0_ftMH^W*GNdVGvs-dhVbM z3Yl0!?6!uNY~j)}u*#bc2nEe1h7@>-IzkqbyX5!YF^5;2AjyX=v= zN{)IVXJ!=wuVdP=gZol4=;st^8B;L;{AP!YE?IQGElcdX8<@?1{oCx-e)6f^V|k|7 zUg0Im+f^Zlu?5PhMjT$<0px%}9BFtOglj=M+Jt!nBC_291~gmjpG#3}wJH-=FvE?2 zK(Lx4E^J-6!ieAhq48K_V^yErIfP4bsn> zu9|Bb5gAZQLpf-sOrb{4I85v)+ za2AoavLDel&GJlStcf$}kWLYOYnVli*qbZN+)-8Wt^4Jchz$g6sZ1{d0FW_^_c1a@ z1HWQ?MG6Zic>_KW;794YYs@a>43kzDHdEf9%>C5>Dj!L?32iYS1}36w=;R^C`OC+G z&uk2{yOyJX?-$m>vakE^&zXX~vXO>Zi6!mJ2s2P)&#nN?y$C-<*Trj{{4=28Am(~R z62B1;!83#?*f`Qu;4l&sKxBqbUP0eWo~4lpk^BJ?L;*#J)@_fp>0W>QmCj5+TLJlF z*)TYq2{PS~bOdalrSJB6u!3tnzrkMXOVT0uZgb`Hd$59Tr%-eSH6$DfYea8bJOR_* z$T?rcSaxSz-vgHg8+r)HFDikfYe5Ibcg;ik37a97|hov}? z+HJu}=esuftCgq#0F~PSfw0=kkwKZZ#Vrokx$j0$S4&8z!#1y{#0dx=^>2fm?pV>x zzO!P^Q=r^p)r(qdM=QH-m+Z^gBrgEL;sj5QNmX@%$X2Aa)YuCYsN(P~ldcPrs3Iip3h@^x7y%DX?!~+}04SFh9h;v-mA2JZnan2IOXIj4 z=5{w$xA_|x@{iiI^52!q3zWZ5(~lTt2rN+?bDn)}0L@Odtqn_j2%l=KEhWHJ+eywv zWimIwFjWPd4`M_ng`~(VVmrjW1H0vNB$YkQ0i_1&Nu>hNE(GPY?pTj6xbCs!tkG*$ zi&mzJ0{ojOl1f;=C3DLZTtA=Cd`$7(dUjy3e`jsb1uR@#aGo4tw4SSBs*d+%1f#;_VLgibM9Eek zCn=rDk$f$R`b*C&j)<(RYk%*ft%<_0q`LWkQQFSxXSBrsGC!avC}M{x!Uq2%1CBT* zg9Z9h^@u+>ND(~K%bzo$PXgle$KL#YWxjQK1kg{Q`Et#{SWQ8^X-RQH)WVEHL&$d@0IU&g}+U+v+a$lJuc9#eh(jO@esqYm~@8r^D4{Be5?Xz2hnzbPl#<~ zG2n(9%pkvJ@wTTJvXs8r@XJU`lk@%l%R7|&qg#Q)>yV##ok=@_;H40TT~9py+xpXF z-sHEfXJ;?t=+B-%v*Dflr-=c6`b`XSnGvxOV7d~j zpG-5Me^_-5=UfP#{-XJDL0rm)JL>}B^m5$iG7%Me1)sz3@!T_clU+mCrVlPB()pfR z=OcyS7f}Zzni6MlQx(dyr-q;(=WjrG+l$e-xlflOX#U`2*&YUlfo3X5PIjjy)0-c5 z=d+v(h+=^8lXSL~CW&;#4eioHKeyLr^M(0@Y+UByAVoXa#lC^9r%VD(6n|kl!RW?$ zAO>@|$;o%}%V+a6UP-~#<@fwCKut>`fsc6jT`v&6?5!==1IR9+ilW;kE9I)$5UP@H z8p@7ruvI2#s-kmwg=Zc@G%YRUHJg}mnFjF(NbkS-X|FKATRMQG4-7;du=3muj#$VeAAY!Vv7dJO0`;EC%a=TK3u4{IIR6(YjLJ9UR|$ z07b>?I-VQ<#WF;6P){Q05XGVF^wUR!d1t;(+D9n1Lz6zka;t4;^-Gcl3U1>Fwfkid zFg5q9x@%MZ!hsY|lgqt*!e;#oL3|FYkG`7EIMDoYOXPY`&+#iL^jJ zF3%z+RgnP=M#FIob%rj0GyKvm%i?ca65V&+5bG-2o+rM7g?M_v+gF|G^SdVUAC?Uv zow_Es7cDl=#bcX4x?X8D^TA9?7Xzd1f4gzDw5)8MOtE^{+^tpE)_ch3SLm~#09BE( zTv<%(FM}Md^qs{`UQX%&a{n8R{zpp^5}69ozvLbz)y?3&TOQ!6V>6VcsW4v$Zpe10 z`xAEIv>7>*tEFm5j!q#l54Sx(H;D|G9c` zF*mmVPvmG~1H<+obE#u`o;q;Y|DQ&inUj_1pV!y_PXpus+&8iRVN|3}-_-z?0I(o% zSyrx)XgPv1fXT|^kum3#IycOQ)EAm1(Q8W64Kd~u3ixZ)l|&9dGv1~FY5`%Ga%}#@ z@>)q$M0?7+fUgIqpZEU!mHw}n`>BWsMFjJEhu*ioJtuIapdvF0kZ2xbnzX?(9lvi{ z7#EY`9_X%s8+4Cal*uRf!wm%aT< zMDU6Md$F1|udkCrltF(`xUav%i`Dzr%SX=jR{V?2k!*{J&}?U$P7CUdyloh*xc%hE zE&}3WxslG1cB^Dyw*zl2W2V~8f!S%GWVGz;cy`V`^2%o*=m2PbQ39`VGdxE4I zUEh zS(7Hp5B-vCL*e4V^W~$Pm&MsKXE(5l|E|MEZZz<-~x-*1$!B;1>G2_&kfk-bhHT;K*v5XZ!rXM1?;`^@$Cz1szo%N zeVB+U$`$WlyP!+Xf^eRxP*BTqMJsi3#+w_ah|4?MJqEL#n>Cro!)z5$9Nsy12G@=( znp(Q@?Qo!#8ZFRNL&toT@YBO18mhXK%yP$)Qp5^j5c26`MxUizNR}<9EL+bT#1j^p zQUsmFPRoAj9jd?}06th<-IB7nw%X*wdJ+t^K%fp925U#@&o$z@dQHS{qhwe~QA_@A zVfZ`RQhCc|VUOeM?Pn-2Y#+y#teGZMUtNwryA1wr#W0 zwv8ukXQgf1wryvnDs8(u_ul90e&6Ug5hpsLf5N(Btu^L7=QYN>G959AVrt^+h7pt<_Vms~v#l&>_j{h$R6YP_PZ5H(=<&`1 z+K01gI-jm#XP-^F(+5hL-(vGPkn+Q#F{_C(bac-tv;DBWbG{G|oG?eMT;fgJxB=M? zGUAgF0DkkkiTy9+MH9(n_V0Cc1sPgszxSUH?<1JDYd!+(-S|knsS|9%${g6+Sm;8n zbx(P-HcaQsQ%gO%n=+vgX#dDv= zaSOuSV{dR8J(2x@RfNY)4MoVjN((7;F60BtY-dT$EMQ6W>zPX;oyF6U{EJ2}^9boZ zQh1`c^f2GeX8P=|qc#BxdFnL!vTK}*3@CRxi1IvX@_}RDd7Zm3~pGM!~jBn@X?JvAs3zaS+`!-ek>i! z?H?%i=yyN?fL7bDohKL55@w{^kZ=xr8Etiq1XdJhMmpm!ebX*&H9l-NbqdpPDf^VC z3pC+6obfkheE>}%zc#kzN)f<6y`x^W!qC@rMj`K^))9xvot-UYGfg(H35MMiyb*zV@?COz|KHh6Czd6a-&|lYE5~EP3 z`-PI`!QG5xJ(NAO)|Tc>0**ojW#mgr%r1SL0Qj87mA}ksLl@gO7jyXrg>ju=wF};6 z7khPpj4gH7_P~lvGsdZH*x9Nye<#{;Q~yMUzR(q7xIv$C`t8Y<~@B($=_ zMt;Tm8K6y5i3K+~)7b%KT^JekBQbYM%cUDY`6YtB2fqTC-_25d%m`~xsp;*S8RNr_ z*$JAJjqo&abYRaLRoQl-=a$*|Bs=YJn%FkZUwR;)DqZMk96K{{3vqkf2D>f`OFDxb z9Br%C^R9R5-+^!*sv9E!lT<)(iLA^g%U>ae5B-O74Y2PaGgtf8w4pY}f?%%~VgxP* zVDBoEx)9p!GH_vl)p6##)Q;(Lerv7P172rQ_*awtpSAWsS<3(ODR8PHFED26MIx{q zFvoxQ*o!s)hqrv!IH8GAX8r`eX`ecOms2)>7P=?e#+57ir(tYdX z^2fOg`M?;a4R=)GoItjImX9v2M$~Ms#XjI3yQRLDI~R5DV(`!Y!+x$p<^B5I;Gg&5 z(x}tfW&NaAt2=8Hf3PjsF0j~$V9d%iDT~$R!*_+NKa9_*qv?{U*E2O$ya{BoQox@J zooPPl4yD5~n|nh<%CvGtrNZNhqI(Iwqp9(RI%-DSb<8~#B0e#QVk zT#wnOG##4C`h?^_Ed@tSwD^eG2f5!ECao{iF61G1$F`eICW~<)OzSb3t85#{HS|#8 zKTXF5I3c9Mjn~gV_Is|_CmVY6`FgScC^94LQyf$#5LNA#w^sO<*T|(No35OeKp28O zbEN0bEW2Qk`zdk0by#j1Z6`moPGtf*@^%nwJX#%t=pxMChkJDlkl*Vj8{mAltZnv1-K#}re^(^<9;0vCIiAtvHsOyc^$FylW7Kkqjacs*7LEs;h&g#KOh)?CL}~D>0X%g)d-l4vw!(*b*sW7J)RV%!WV7$PTiv<}LtIC$t$*oRB_^ zBE$|R@I9Fb?oYwvRWlK7LcnFPMhiQ0t7>Y88ZgD`%ehVcu)uDTQH zx-8$g%@x8X;EaB#MQ{LM(P2$L1`L2(_fPZBcnyWQ;W7~A5dtM2@(6x8eC~VrIbH}O zTo8FkT*R7YmYSg8)d&$V*5~+>SY!g{fgVw9-0kcz$3nkcTMDi%rp~_8o)VS>a$PWg zx>?_&2ctA8fk^ZS2g-4aGA?a|_s4D;L_iNWsq8 z7f&Co5+eL52qXho+_umvt=wlEQ4CKD0k#4r#wdY9crsJ2=X4_`Ps6jl>zNHCQvE6> zwvS%cE28X~Wk4cU;l-k^H%%~iEnV%z;<7x`k;T3=Hbl8zs7W-)CJQ|4*YbIk^?|@^ zig)Td1&kq$j4@!}FVYLrIIJxU8;ei7>etru2XoKMHHiUsYGE-q&rxLhC1!pdIFW|u z%R$(;`6*wr8VRArv|cp%UiASH5GfUmZ0aWrX>^OZ{RwncP-9W8;--lJaSbbMZsG4} zZSJZoGdiBM(dFDkW+ggM8a51H;ax%|RrG7%6`{L{F)6lZ32L=ooQc^9dbgzL8K0U-z_P-L?Qq@rpV+s*3zCW1K> z6C~%_fp0D41n_4AXWSm{9tt3)3Za$f2@Y7Sn}^K@ijO(mGvS5?iq%(2WmE);a?&*W zG8OxjndW~*iJtW~?xZ2O`r;@O<6Ohcr;N4B$@c&r*|C)WKxWIe=*Xd+n^3j#IKVY) zafz(?kk=zDIQ!4e0fY8PGb#k8k}7T#WeA!L};0R6lZ2-odDU#z6e`<28cVtR!QW}y30b}oXS|SUq)9?*rur700nUAU{m ziK27}xvx0>7wC*LPyAnZ?N*fxU}HJqf2!>NPFR^ZS%}#GbEW=&u~z>htcWMy!pi>N z!aA)XV}HPo)blN@lAuhJsV|&%_ZzesO|DJgkz|^b2{y2GKQs~#u6nQIMJO6LEZrF7 z7!DoA()V~d--Z%B2NLh+XV*_kS?FB{xLhr%6Kzr)h|3zenQ%PhDYO!{kfhM@6{0Z? z?;nSkUp+`d$k#^~Z*`xbSvA?0cH!8>0RaI-Z=0v%VU-vAFBhq^m=vo3JyXIsK=<2$ zOGdVQ_rnP*?kC&61CEQoqZA$JL3zIP31?>!K=m+L@ zf=_-Uk=zB}R7zA((1nU2D2X2`QZ0crW>HSON(1qBje2nuf~>as7-QZR>Xlsx09ct6 zHT*dC^B$`+gmuqOl{$+Nr1Z%IBm9hK3=8*xrCbGqr-NfW zsPB0TTt5_uBg<&xPPr*Ie4y(MKv+sY#)2}{bdTA_^pK7QN_pWxgl~U|?`B>CEBYx1#Gg!v?1G6q z-+o1P<|Tt|HL>+j)|V90(eRiu*&YCUH952_v>bl+9T9^5M3T|~Uq!#gA1y~9Hgjd_i; zYBJQCJV#3S;KG{|#m~_Ozwn07eX5C@h0n>Dl$(0U(T=$aBEt;qgF&=%w;Z3ztQ-Nh z!t2yE`yge-anx$C<$+gvz{%@^L&gN_2(9I$3Hyn+fFIYzmo^!~Q!qk#Vuq7xUqeaY z=#fCs8nb+gpOHyWB}^$u`fA%-WF?LUpFFHd&gHn6>5rON$K_q>NP#PSOGxf8S>qq= z0m;gGThI*%#)Ko((POoPYkTuNNURxE{uF~$fA}Jr9tc1oPffA<0eR?KQ9QV4ID}An z=Yp64Ip7`GH}Al`Fb~Xgf8LjpOjHL`UwbPl4B6C10!_t2jx-fe!;2pu4d8r;gv;)c z4o7v%0$6a1jIlYH%sS79U+bb|cR_ZGB+2In;nEPuYcolG#v94~R401xm%X$IE+2tD zKbiqnK-URnOTulx0KQ>ix!NLhX>Wf8d|;Dm$wZC_(wznjoq|IXUiY0G0Wh%X5IG16 z3l%px$$%L~uVrO#Df;$nXdcphpxn4} zGMlGi$|qriDK5bIbgzZx8<$F=(jxgpxI^P-B+m2`a5CH| z{|j8SZETj>KZ}Bz>UIen$@Ha1{U?d~O$ntswm{LP8eRbl%YBcvBr$xSHE!4` z3-X;6PENeaZk7KKC?s#HPY;PE6V?f$Y||2?TseyR`uzSGPiGtyk9JRz2xgj-dF+r1 zc36dX=)?K?{&6@8D;tt}a|LV(AQ5==3d_Q(`P?VU4Gp+2?O}1ZKzhkivM`^y9IvGq z)2=_iwVa8613{LMJcM*|knZ;-$tl^wAyE_ovXLE|!*bvN-!cr_NDW{%`gX=-X}sIF zD6$X|fA~mm&-P>04ah71n7LcuzzXdLiT*$e(PY94^`jJ#0P4s3Due!__?Rm)oi`6- zJcSgx0W>Go^+^C-gye(C=JkW|K!<^&`fScM7U`*`{=Eh!1{O>uz5&Jp95g-bQ-6|{ z@A!%YV<_eHCBTmvD->mQNv}DV;lQ_{O6!7KLVW!wpYk+*-{e+;Kk^g7)Af6Kcs=@n z%kc2u9rt(#8$^l@AA}MIbHTuiFu;3DM4sF~1?rD-)oOkO%Jd%CFhkWA;&70#fn2UV)yn6^D&x?@_LXx~a6C;XQAu5?GDsqi= zqD3n?^9rDsqnokCl5Y5ncuCl#nBhfH+Q)SWV`#zmOHE;Wh;dT&R8}vi#|7&U=@%h6 zzC(K;0o9NLOhCFjfcU730>9^yHpMcy?(Arreg&qFGn}QA*Cixe*ff-K1)M4?73`D5Gph&cIXh7=l zg(fhB(AaM%W3FA>2Ik0aF)iA~Kx^M%&If~5lbn(FG%yl1 zc=ZPLf>`h)jJAqBGY`I7oEC=gSsy|aDI9O5fkY%Jt-rxkC#Mrr-vx68Zfzh%-wNsk z16(QmJBV-g5nWM5TK)LWLj0=eGPR}b?_P5(j-EiYSyW|(4IuuAB0SPGz_Ndex)OK1z(s`RPhot1F;&|S zP^L4b7(Aa0D$ejq;4=*7u-uqNf4?~~LwP^;RK~Y{JF_xnHA{*hZ?{TK?5e0CpGqS! ze(d<^rRLL02yp{E!Xg})D@QB4~E@-7TQhK%_q59z=cE@20&#?=w}&9HlDCGaGW*t1Nzx|jG7vdDnlhRM`}!v ze<+h6M@;6ko7V^xr63A!yIVNiB4$A?8dl&fU~nf$F%9JYMpD`ksryH>@~f>Pb$l%5 zc)_h-6h^Q2O&MR)wBSHJ!<1jsH?DQgNV7vrX^=~d8Bb+@)5&#CbcWj9pBJmmI_IHT zsY7_~f^6C%L4j?$e37E32y+T+BK{Gb!5|OEVjPMK8@+W+E z(yO3;^Pw+wLR;T4KZg8RZiRs4rn5xA99gO;QMPm|>#En?`)Q%=s+=zOGLdyH|7;@i<}!$MQP&je&ohz;z>Bbj zp%OOeExWxFYH^kIdV=APx=OMcio1w#&3Z#{?^)+3MN6kciR^4`9TO*AW@b3!SxHz1 zcUtz=ZPqGKa7!I98GKXji_adDA~rprMCtjASW2pG)@RsLd@1m@bxEk%fQddNb_>ci z)1yrAu8;}UbVYflrn@k`Uzf85bflV^;?s=iEUvdxf)FefA1CQjII6Oq?vq$AzC6`i ztdyDpS14todezyU5RirOj{sB3U(!X&JL2h9t|6(#czTC&{OWpSTdpK@4B;pA)PLN^ ztv(M{W#-l+7(o8CA_u27a3 z5K~?~0|gZVUz=`?h9Lb5vhi84_CI33`2-v(^e?gh|2p)iOI>^h#{6GHf7BOXIRHAr z2<1_hM`3vww2&hiFI65r#*W4Q_8S@#D_jxLS7~O{r2C*h%3j#tg&78C4lp-LZx8NLd6_Uj-XzM{LDq`TwHM~iD+mAgIE$O zo*0%^5=kPEkiJ<3X-LN)j*#6sXZ96!+$`1zzuQ3R{pGa{%fOMsS?R zG>QnWUxi1!3TmDjMLOh@gGjf&M;j!yNc_ksgyanL*eG=`*@EGs#HwpdTio&NJ)W{i z0ZP-{U}kT6{>Ttb0huwDZyaR2lR=)`QbA23DDMRa@GgpxX94(z)_Kl?EaQ#26^4Qq z7r)V|%YV^XyR@)kL##0@5CfhF!^rN`3@aDmEGITXtk(ds`iDiiC}q{e5pHJ5VB zEE}@a)J^Se@E_h9bPc;#tHcat{g3}ZQp1fBJ)UU76rvz!TVaL#!OvJIf{Nx* z)}~HRfhqMfA}p?;Mgjzz#g5_>l}{(Od);#$ZYh|_JmRXt0PAj7erL-~Ks1nHbKjpH z9*w`{LRP}jC>EwtOPT+1^L)_D!SL+Es`8HBzBAa}4%jjtCk1=*#9zY5MzBc0OeO~Z zn$u!dXQ8aSjNHJqOqykj%ajyiN@2(S#hL^gF1G*~{!|NL)d}cgA9@ITPc+03*%&~8 zV}i@7G8lznq7Ah1UnM@WrWn*uEkA>zc?YqkXacrL)M;qgx^4AGGUQj)$u(oI65L6j zvWfH2YG*CVp4lj)E{vLar|UM_U~Unz913I zu~h(mtCff{p)3NrP$Wd`k-ssfg78A=&oYXXAO1D&1N>^5{|vop+DO(x#9uJ7^Y{=wM>pSkrZt+dHl)YIY zdVE$>kAUu%JwcoPqqA_N1E<`+(DLIcpXuDJ`+R8{whTbW0Z=-zz`jQG)e#*h z4$|Y^Dz%RP{9ZdLbJ`~lF`R`@iGPz37-cLaA?#6|%;I%9)8M7;;`91WvPDM>>1M1$ zCEUKFeg<$VcD*xcMCl^V)UW<6W%j%2QZ%ffbYbO_ zZwTw%{yU7r&ht^P5yP_|E1J+_O}ZcI=(hfFm}p4Gof?bR?M%j;*mJ$Ok}v;qMJ-0z z*-Ay)QdwHa<*N*K$(_K$h6Aa%p_%)j2|uacQ5;Ys;An2%5!X<=LZQ7)-3X}}zfL5a zCRX%EYXw(X)m!+2C#cvfsIz(5dt19njK~l;wBPki8;f{E9$hR>fQpOq{=YaUmvO8h?I?ALcdGHHL->GbL%@wpMQ}m`^6OZNt z3j}bcd;Cm~VEcg0P-^* zn@I$4LgynR$st-B*W$Q1n3t*5BHhm!>`Z~ zQA73>#_Bx%gj3bD%+0Hl8tyol!vX3{Gg7D<4O)I5p$ z6>jjiN$|?=g*Z3!5KA#G6gi+wxdgrs=tkfnwSy_O|Lgx3l#MQR{qOgP?Z2{Q*_ySr zk~YWS{c`p5B`U0jTpAge?ez$)?b~febE;J*b|7PiupQ+RP!sPi4p$*9@~D&xC(D!N zK`$vB z+MbW|!RgK6(&ulZ%GGyog^;6Hx4WnP?KwFZH9S45xGqMG#r$X0Ui;Qh-%pV#^||Lw z*&%8f^Ekglvyuf?c5R`~4Bz&*(PRVqp)_1uvpzwR7;&?K{Rlt=%V{_!IxZlR(e}xe z*wmx^rouxF`c2leNi;^^EIjX4~Ujmk5$Y^pM)~niPp-7e6w3QN;TSd1ij{P zf{pg*I+_^uO;dUy<2P5KZrvV3<;F|G7QW`|jHi>fhET)RId)4ITymG`l9Pb-D13W>as z2;XmpkA73tk7Rp-ia@;#9xtzaW6&Bym8KRI*L;i@fL#3b61`N2awS4Pp6u zPX}rhUDw?gj<7q_rK1obaNO-7Ov7hb3@>1Y3QKrLI;d)Yp7S$$l37~v+ zY%(eWGT8tN30VGba|_EgeHs1Hx1uYdRNhBILpAFwG*({TJA@X4eStM0$2lAZ#=17a z#4BTGkmqs%bgHek8g-U6>%km8e!p80ySXK>IxK6G!;QGW7&%0>o8QB2B z@JAQQ+7(S7>Z0V6vu!%X-eKF#8k;@^^6)ZPO zlZ7#@4@? zRys93yvv_&Sz*D}U`lf4*Ybjx3;gpsB24&*S23WHp37`YciavHlzDlsR^L7(YN!p- zG8U})54A!DFk|1aTU?Bh>KkZ?uzWt2Do_A4USYWsLmfw{1QLBqx5MJeDZBpu{kscS zpX~E9I7qzFpH+NeUT-J?i)r`)#$)616qZY(HBI)L(S`x6LRrl$y|v^_Vj?7!i%abS zk7|n+-uPvlj2|JX*-su2x)1o^$B8GYw!Jz|YqfuTrE{X|PM}0cHdSnmjkD{j32y+& z)Y`|0hw70T24r(R(4=GSgRqcI)?W80dP?srkP24ETbD}8i*`IY7w~w#?ub#+Bn|iK z#`j^Zq$yupKiPP*`A&P0`YiC>Cc08kQifZBr0eC7=e*E5Nlk)lgB)LG%E z5*b=V#q7Q-a;+!lAo_AUhX3Ie(PIH@X+AQUf#XYG(6e?}=x9)G*1V_ZNg5(u*!BQ9 zwCzy=FBQ4u*Bz+Hr9$5Um#6&Y+LzCzK-Dg)N1K|#3aHzR`Mw7N!u^>wnBbL?2K5)JL<-M04IUy#{6E0NFg@POlXnry|5XgX=;I?_^&T+p3L7jXvL%h!&{Ak&n8dlcXm~ia@h}OZ(u7j+Y^sWPUpFZ% z-aANR3ylEOiX2XG;B=N?e$93)t@hZYp=k_ex4!aP{s2QMDv~8dMaC^m12LuNW8qS; zQ4$oE?IhHdP!ZhGY6oY{Oe+aaERVl)yPKpjxG);1H0Fpjg-8%#h9Y<^Xko)O6Mv>H zh7aO?fG=D|%of!*8!PlzK6cHe>%>D?NU`f4pRfUnT;MZm_JIA%fk>q6HEU1Hv)4R@(B$j-pN~y*l6qDR4ZJ@x+CZt+ZTz z>0n`QH@|+GX?QS~x0*ir&iy@ZG3F+EjkVxH&M~GTT3`V~CTj9jWJmKHcNFT{5z%R?Aj;$fve3ULv&tJHg}jb^N!x^$q5 zX8%a-VOg+r)hk7{721AqDgGN|jh)LcrPTb#MS+l3>>&joLOg@;gfHreJ6J}3ehvCn zP~?}=TRBKZ>BSW@ehLH<{K2Gesj(I&(&z(V8{33kTc-p_<|c9^Dpx&JcI4ZizCLpo zXE|t5Dryj-tKd$Odqm&%mrUJC0pi#vqhqQR9V8Sy5>+Bnx>wIY(3E% zlErS|IG67u+&J{iDvl7*#)a5PIHCBWiP8jkaRcEq2N5S_0d01Wv_Z;L-={j#XZR<3 zz+(-~_*r-z4G;svn;V6S;8LVoDocr<`5d?g?Fi#Mz_s$V23tIa8=sUfT*`M2Dvl#I zIe1uaE_KDTKmaBAPo3zn)?Q-eZVwb-#FM3`sZ2?;4xmS}I1lp~v!k}o8GokBXY*U^ zG&_p>BiWX-SsHyUJdAoGc?LNdPu2S>IS8@jU!UoV=bq2fr=)%#ix7lC94Uxf?E^csIW( z!|t$Kwz2Pl+hUd@0ZQMdij(JV1ThsFpLs3DX}*(3S~+*js!dVzr*>03%tFk~j~@N7 zf^Et_VlgK$^bq`qwmnoQNhCrSD)Ks1h`1%*SUw?$nDO=`bKCqO z{=n9)G~gdJAp>)p4pBOofczJJ_mS2ooF8YBcv+5D`murYqzGtfFO0uW7CVOfCU2eSvIBY=ACHZL5Ul#licQuHUg^#J+%8%Ugry}I9 z95BInc7$Y1LdsRLUkV~jG(N%5{GKOu6VN!nWD0t0*l`Jr3ZG4<5l$8-;hX}d0A$T7P0saXN(h%1E&~7 zq4ML!%btI|T^R|j7nx3WBlUr3(mvf@2J*Jcd)(PQ-n%{CRV$Js2PSKgCta$M6q%SB zCT;;$vyQvv`beWsu6ZTlru%s~*Xu?-48A{#7xfC-zkkL3W?0d0>8%0m*l7G#2f?}* z1;QPML9l7avMfy0ZG3wOq3}-oVB3>T7Q1uT+#su<)GR@NI6pLcT#b}C&Do@noAMa> zHFi5@Pg8Qo$k!Y|=^;;A*bwn{=UbSxil6m&6?7&u;_-;!Iw&YE?V1 zLSs^J_ZV8O=tj`1Yns8vm(nB0(H>;s-aE*zP!f|a8O%ScFI@nPz=xF~X27Igk9aBE zH#a&OoqVqz5q18WxP&P1a6gdR{cMY(26u92!#@h&y<&wnx!&l$cWB4-=uE;m`hlt? zwV>gU22xnC8#&o@NwPPw-qSIZ8KQJ-NuU7FjwGDL9Juryp>`bBRXu72aNI-)6F9%^ z;IS0uXkh+r82Tg?JUc&2Fl)a2V#vixQT zClsa!aF|~+^;8BPsGFk2f>$!nqTr%&rgsQ4Q$F&y?q>oS62XG%U))VC?+zUiTx%XI zzwgTjl1TLK1c<7kmCl0X%a)jhZ40_Ur*CYsWF(mOORLQ=EH%e2)sq4#63dRG=3Ad< za8L7r{rC+SSZ_NkA$RX-0@I&$)k~@uhCwMJtdel+2yZL9N7LP_ z_BOk4K(d|@e_stm*L8#&$k>vj2pBUw!8sEuYRv#=p4d+xDGLyC*HPU#q4yxNqF;ul zLsglMSOxxEhhqWUN)VtM$y+=+A~Y7%9jcPhj4#Hhff?7L^q-On#D=SHU1=RZ#N8{roi`v-U{G(Cm)uvQ~;GAvi4Mkr4Uc%cGo= z6u5$rhXK4>b3{}f?j@iwdj`%iL3LARq-LH5EG$uzeR zE|^kLqblTZC@IKceMR-b4gM$+fz=iYo&N-~K<)yCN?opV{JXaMmyuT~X>Z>EJuOGN z-ap5X3j;(Vh1A2?1lLCN)A`4;31+%bPVU8BRw9g3g1S*)F6Q^btg>fFXj}`Voq7Iw z09L(!sgUt=y}2=*t}7ebvgX!vt=Tf`R*B+s$U0gEbUCUd!Y;fRm^{^s(dI!wij*19 zUJ>oCn27dT0gF{(epMxKq2m080pALupN$dq`xML0poDBvlWAVJBF5fhEw{F;Gd#rV z+Ne^v;?MS|sEeV&mbROx@iGuW@v2l1K$S(obH1d;PJ0aDCdNQw5iE7iATv*)szC-i zIHg*E@*kFDZrE5^rW_F+r;<|h-wa_has30}6(kgDyOaaK@J|T)1#dkwc>{1A5+r)l z_2>T6Ki;^KcN>Nly!}m_G|(#Vn9A#XCi3rcrIrg@8}Yj;1;OIuLKe5%Z&tZ}0mi-h zqqaJs+Cz+ugkVL<=GRq}D2ZT7v3{oFfLLJG8U{2h5_NTgpydRDwl&z9#ES+-w50UFsiYF>PoXN7_W4~0HbJnnaexi@ z)k%bFyo>~TDFGKXceXj*4$Pj00ODAT71pIbb4OGBIdXr!Y1X!QpFb-M8rP(QXl7md zJdsLUc?1Hxw!BZcr`biFifI^}aKJ+~mRGVXQ);~PgTX{!vuj!D9R%jC1ZF;vDpmOH zTZMfOoPE~*%&*5nFXC0=dQXKO2F^XhV)BxB=HTF?0--Aii0a(}qQV$gcr=TqkdGf2 z8WK&Z-vt0;@*iF>T3X}~1?5FhNZ?=n{-e@w8;viEM{{f{73(#y=^ZV#DIi~v=FeAn zt-Rh(WF`rpd@ZviIy=KBA~smH{~OvL%0u$+GZhu;Y~|4&}>Kk9&gB)#$T z!!T&3YV!iar@F0z{D(u#*3z=yltl4+uH7XC*Ti$(qke1j=44gNfAJy{1zbZ>1lW@N88W;8zxjDB@Atm# z?)36hdEiYgm&L>4bX-PuJ0K|3=~AQc<+>l&3{@)a(G%YYZ*oQ@;GoVkcP!(o!=bBh znoWPLq<-qQSuhMpamuW^bW!<8b`{f|mv}F);5mCKwC6dSIG0xWJq_a0D*@kMCM;FJ#hNaS#3tO`e^sMhSHNt-amyya+AoIkM0JW z-sY=TC3Ii~YE8AbgHD9dRFwJXsib1QgC^imWv6{shU*2u(3J`5eWj*kb7k+Ca4pPK z@#;S1u`)5WUM1b^?sUwZ>%O;9e`vVjwYqXs%|zQgz$ zvnJ;Abe*-l$Z)VWm7Q=+(M4sFTVG*DxDfAxqPJJ>CDpLI)xWv1*KP;EWDJlBH#)(R zT%`dd+K~Vd0}+WxE|JyVQQs~wU*@`CsBXcL#qwFm6-K^WV!ZFCb5&Ogzizmu447wd z*hFXu<&QVeYM!U_ovhe08#ani;k38&x(N;}V%`G>wG}q)Qq=8lI82r>&F1Eb>{nFQ zWa{7I(vc`Wu$1-$X}X0Tg2VZIo=&|#kNTVSoy9H#sq8F8v1CMT(pIhK?)4iRH9 zF@gpsQa4MZ*uI4PAw^CTmS>oOD7zwve{BH;*S3p;v5X^VwX*pZGckxlv>Wj@-yd<% z@VdzgHiaQQe|4a~SbxOmxH&4}Pqs&pHd@0FH{ax+yOiV7elb>q* zB+~nK*2a+?%MZ;5Taw#eaprea-CObfD_ZuDcMar@%=}7D+HFB;)#dAiE6rx8qeTG3 zkF_KqV$@Te8*``zKLGQ|-q6hvi`*OoG{Wx9O`sqM9@vdZfh#Mq>aJKq-5P7KfLE|2 zjK$BCivs3z#un{s%PCEWa!hC-GH8^S@xNg>jyRn8Fx`qw1if~r22G5ix3oWb*Lh43 z;Vg-VnOm`S>(W_>S{`EswCxmAhQ$FYnfz1o=&-|et~r;Th7FzsGRU*3_kziDmiSKy z;C|gmeqa`Ds>IjGp;@oQ`|pVj!FmyV%9{>BjNH-70ulQ+iX!onUiUC=8zyoH7y0-Y zoQZmfPMcvCB8P;xxoERzp(>>`Za6{=H?|pqX-IQ<3Y^G|C08_dIxr`hU`+t2)q5{+ zbK1uCuyq^Mdb=LyyQl3&dZI&k>0q2WJbHQzVG1ZnbBJ`VuTUJMTM4=tj;S>lk-`THzbp!@3 zi5wpN_0$29MT^C`6uxe5D4>AjsFFsBK4v3l^#k!tR5z1J1NjpDZpO*H70?0Z8&_tp zvyIZ~+C&jX(+8jjy_!bgff)TK#g1P~{d>TJ&+jN{EO;FrCN~Z2xv|OSf&gR5f(VCM z9G9}0ytbryS+=G<*w`Z?$!L}-Jg7fx_dS79d+f$%<455ar(yXjF$jR`HN2hIrjqF7ENd2f%1nln)UYZReU+k zYhMpD z&>sc#{Zk>;!edWRYg$1<3c$H-A~9UDtdt{F)C7vOM|U2bGgam^tZ%afSyT7n zp56>H@abeP$&*T5>`>uvdn$``<{|d|L<%}vX|Qqrwa7P%ZF(b!s?BN5Sj!ynfqAc? zEhT0#RdE12n%&Dx!ncjhyxCyW2D4PUTGPqUyDw}QqvW6rmP4m#d&7BgNA90T&yjU#+DFhVultx@BdJG- z^}fd76ZRG}Puo`;;F zEk{RNS2cW6L_QQYwG~vih6_HB^}AzqreozgCn8Vn4k9KbLoU;+2<2lp5lC+MlK-@q zdm!L*OhOpFVMD$!dvji25TMWbc21Lskj0Y_J@sgBP~%lsA^qxx!TZbTHmsNDzLTT3 z_;vZ{x$!mRfH!8!eyZ_=ri~|*@h{{Z(W$hD!CUmT#?h?AUwoOEJHWwgy~Gzn9DqavY}u7d#k9hwFF(a4lT);M z#+&7xsW@66kA9Cc#PC6I*tu6QM(lh!z9Vw>usBpOHyyY?Gjd;V=9kK~Zc0>GrifOAS z)@gT@k~3qFJ*k=HG(IU<(l4!%)XT_lG*610*|qTjl0AG)+4z4&T`C8Wq#VF^&)a6u#erLtdE?~vMG(M!3lB$bKwP1nd& zb`Pk4-$EGR8-AR4eT1Dgm$xGi(rIQ#Bmpi|D&=4lNRBKNuChkmxd?Xcu}hQJx17~&clr|QDAro~SQYN{qDx=@V5di3-F2`g2RE|8p3zBe2B0Z8UB@OOokNH{ zZ1|7p8tjq;Gf+-OuK|cB^_&-T!mYiEKT(r_cbD`Et_r(-I_}#+2^>xJd_Fv?4HqYK zP-_vLXJcio=1P3Pp1W23^GZ%y~&%5*K<4nvaaYu*Uu%H9v&44mg+c9DQlz=5* zkN(X>aCYyZJp15W+JYV?oO;=_XJqa#C!k^b6Cng26xzmJ$XiEbN;FY-8_>k!Kup*Up zVxFronJ)R(`v``vDK*7oSbBrOm;Z~g za}Lg>+tz(-+vbXG+gY)b7294}d1KqQZQEY4ZQH!rd!JMFow{{y-M4!D)74$|R&~#w zV~%Ic=aaAxopGqbjKptM0W$^Q1-oP5)S{nH1!lSumAykFyH1`7P+8tKjI?OP z5~H{D&>zFsYp8AGruFhnC|BkJ(4}Nm3yF#Vf3VitsTIxOc)l|7WNVrT4M>5r192qB zlNP;)Pwk=;ib!XoNT-7&!z>3r^4lTnpMKNoGn}cO$aJ!z{pw#v0nc7r?Sjx_n`{Bu zwij~AQ1lpjV7%}Dm6AdrE@Km&{q0`IKl+W+Q9E82PYn^_72 zU@+@aWLuzYY9fKJtTa4>C zs&qw|g8?dSn;!BV`C$qz-8bYOVPXJRO*UQ_2vgFJ9*n&rLM_w-x|Kr46oZ~%Hb#~> z808w^`uoz-{){%Jm<}vf5OU`5yd)F_m!PfaSI}kqM)2}`Y5nfIsq+}#kK{u=!15Ys z{_RW@W01T#gx)8AgE5h95B1z+DYC#7Pl2W%N!>Aa9BwmOzz1X06lxIspUB=G@E(F_ zU7qCIr8%86T2~`5wf;dTiwNH*QB>FH0;JBQ-bC(pAyXtzEPn8%Cp&lxeM5CWYV;&^ zJbkSy`#R1Y<5372;Es#;Dk2bVz){3-TP}k<@77Yej5{PIv;M>Bb(4U|sg6^1)IP^o zN(n99INQ=!tuOzVo667SQ@VUE=U;L9F$dJoM4L@KfY|lviJ9~) zrA-Dp9#*=maaCZ2eIe1X$tMl!}KAWQxD<;>0M$1O^BO$g#8m z>-EvUpzE=!4dv~L@G21RNHlvMJI{6%FeK}XbhQY3FR=9H1`f|oPWwgBo}&#vgM%30 zY^JzDO7BD^S+TzB_U0a@fVN0TE9}_&xFfQTi)2v^OT8uY5*N&6U-JPuxZ`b1x>6S6B zm12#)@Z7TjByL#id*z*Us;mYoXBZ4aKeR?X&V1yN>cF8Rvwoq__fq|Y?73DpfLu@j zHj*rv?TK9Q?k$BkOC~-xjiv)6-dj9TOa!TB6U+yPp*nL&72>5J z6!MLR(oxsP#Ud0FB*on5idDQ|0Tw!LGVdMoDUJ!EM}CPO8yuCrjla|fKWd!kpBl)t zE;qUwpMO?^0%lH9ek(Q{*4E?Y6KepeS$W?VrSa@>*@qYD?T9x|w2Qdi{1FRHQ2a5R zEXM_K4|yViIxD-h2cB2#5S^t~8ivp@&iZ}f9%N6?u!d7=LSWqR@B@$e33WIWIVxRl z)3109z=->zyc8;Ht(wxvkpldKk$2BL9n(Qv#U67W+RXBL2TizleT}}G4&GKH!8+{+ zgM$enV*fr%911HqCp8z_-cR`ygSCiY>w6?Xx=+XWeyDXSJ(< zm;j;DD@zDgL9@zrt@+o0DE`w8oS(`S(-%iOUwW@=4OC)`%1JG!nfDd9&r$E2jOH$8 z1wW+iHE^=u94#L?&<>j-U66HJ>llY=v#!-xpqr?ft=ShC2oOJEEWchXb4kt#v0^ZQ zW|p3{3d>le6S7hmto1Gbh5=#z3|emX8Q0c;+z0fa%(h+dFXi^A%oz!?VYxeh5f(Du zeJS`(oNeV?8WMkHD&nuWp+4$ka@+MsT~6Ox#I;C^_Mx`Bs-}jPmI-{g37D4I1tAa! z0s6ziSymv7{u+L^;}#S$f2vgr7FIGq<>~`==9e^(!PW!^&*vOdOdVUSu2ZRC{@`_%!1Fvx}=E}7Ol&ZR)$m+J)FIEu?noq#4M_u<_C`@be_Sz@GcACO9sLZP*)#-bzY`O zaF594aYnWe>o=d<2fh3jS>5sdY2t8Q9n(qG5`S6~O>lLKg0RKsRy)v4XZazeDIuAdw{ z2blgFY$h?NNl+Z{h(oAVLX+)8m791YJk2w4MtiUk^4zNZ?|oSr`kVJnwAL=o95lKR zjc>_3y*!Klf+(UCXyE#7QywPe9S$FN%8NmF35o<$04QjuIfafd#`G!xuJd?zWc8Ii zb$GGSW*~h$(L5|qX#!bbR!rH2L8^^hl}NV9$MT#oRC1lH6n@2*O(Xsj&s&Lk{Wow{gv4#1x2WZ zUyW(n9gE+lVXJVrzh>3|i@O;S@=c%+y1+?yLmjJ5j43VRVS#;6{iA5J43m8U-jn8a z!!DeU?wXo=i4NpIRMWpC9i4YRL7DkD5aWczbwM zsA%RC|6ohUIEaNT7&q{J?-c|;>&X4QQFX<5uc+53nP20U z?KlQCZJg4%F+Q{OdnI_AOOC<8c-nd5F`MP=W=&C_5gJ4L(Qx(s(@g;%{M;xA zEo2t1rfUpD&?mam4!4bv$^HWgQPru#7CuB< zKKHTi_~rGkA}N0ZE*xr*JlADv6lnSIEsCzQ=pXsL;5xCpIv<58<_6kxQ(+Y-pu-bH z+wbWgKN~S!2SZ+!a_B^NEn=Cmf6$1fvc0@wJ519DK8K#u!?g(W+$f+Jfk9jvM{?1t-bKuho42fgYtgBRrB=%+ygn3}uNRbC+Tb>m z#y&3$O=<`Md1)=%CI3P@v_>$ZD*X@$^Nde?92cukMPFcDGnSm>8RA> z_PTn&|C4qm_P|@qbi9>~l?lS{?gW7Lc4y|wsy+2dsC7V#*6t;?O@p3PZ5?`%cpq-E zVN9N&tinq2emdrDQRTGu+(A8-YGaySq~(0*+7MP9T>RD@ZFAQz5~d`~NN~n4;(9Y( z#v`Rtfvqt6*%yttMrJI9^}7}(RjF3jL78<)?L|M*_s+!zywAsYnnrU}iw4jXW!K~b zjFLnY0788uUrDT&0%b$T^G!4TI5CZ7fIlcwML(XnGwHg#x0?*GG~!WC>6h+pR|<(? z!Iy{$cq~&hZM{*!e>u2_S^qh}X?Mi4_IZK)g(6);C10U46aAX(BHgTPI>=c|3r);B zsf6#CMlHy83pO`Ky!(lC6b29rgWA?%$*57q3Z) zN_;To#IHG7qr-!Xko>eizo9b0$^AAqK(k6dIfaH5D z2ocF<;9^o~D0$4QdOBbhDmg&=c!+4fA>(kw?13sL_(idWqtA3>-}Z5dq#g|_DHWgB z_FSXgFq0HkmsuvB|%De=r)O8MQK~<5|Nuk$* zfD?OyqpsK@rb>2Ctd-gnvsvw7saLZ#6%+_5Rysvf)2Nv4)*8UG3UUR?ZnuKQ6dx*s zQ~%DKV0nVngHE0^U$*=#3>?Y2@Ve+~S9RBzo)s(fT3>IW>_vyuAE_xdmcgp{cyDk1}Nx?AV;m8Y01?N@5A7$8$ z*_^VLI;LVe4G2&_fjcaosd*#0q*L^0;+;h*Z8A1Alw0pV~3l>C^1 z1Jog&c_1rnYkt3SJ`$*sjAeFCTw|a>SD?7fNS~qKK@}3&0>91qsE)mWiIt}{_6KKH zD7Xb_#7FumlrYPb-6#{yr9aJXlC*|MkuzB7K2)~6kO{EwRZl0-6N^o~VFCi57 zOof4BQ)b-It%zGTcMLY)%81^1{}okX9aVN*Xj(T~a^JxozvEJ5a}Nvtg_=1Hh(fRB z!h)nO)8I|i41UD4JeudvbrrfuTg@3ud_?|ON0ShJT5}cXpw)&v&fzwFbQvvt6-xq3 zg9d=j{jE2S@PNQpnLsfc>7kN&kx(>{hEa&@^S}aOl|6Fvj5>J<&4PTq<2l8fy9>yY z$dp3mIZ-&xXk>LKdk0{VQh(tY`O#9p*UhoJ7U4vRw-L9$Z4TB0p*!KFI#n1dwbiKm z{{l=?t7`?U?p};xXm@i?IE;X7iVFx#cmVP=&FP5=pzp}g&=kUSBnv*xUb}Lyz#C;O z|H_^RqS@A7(#H111hf6{q(AWx`|Fp*DM+RhQ+)lKSM1#`i-dL0nZ?J;1UzzCnc;4G zoYt1XD$0hPnLoZME5VhIx{y?BH|~$69mciR8cDTz%u}qdpQqR;e>MgMwcJI8=N$k$ z@G8OFq6i|s5+VNsj+vWkCJ(o| z8x>;#hM-HFtrcgnPy<~C!m3F*QELPl;m3fWm@n|t3Z#JlF2a1fdMDEo!b2s8H$p}I z53b`sbDMwWF#pJHn3B)EKG?Y71a_ucg~o$n9D>nyWcv^mw3!B53*V>L6FxKDOjO(>`scEM@k>H0|GM+D_Z^bD-BP1n)G zgZs{m9ih+~!8@gi64aMI!AB1^_j7j;`8sYSeWJrkz&H+G!h!7lZhUlf;b6wDKNc+( z@P4y#g-Mwl56H#%oKbWFIDXzZKD*rhvS-Hj!nM~RzvetnkcEuJ3}#Y}y)PQvezn@3 zG`RN1WK1=`+6=?UnokRq2Fd)b50MS&%kt28@fk;qNxKb`{LXHWi|-O?Le40!i!L4w zx_3wN7)8UleTTY`FaKmN)9PZyA-zBA!nwZpN%|mo! zYly;50+MaoEjOcvkH3A?($xmt10fa`yykPVd)ePIH=`8pT-fm(0FNfhO){9?2C$-B z%EWpwP{aq@hU<$%5#bHKRM=+ZgJZRGfwq@A6CXD*Z!%(3 z^0pPWxG0nL+P`OipA<_Jqtu~OSt+i-K#ge21v`HG=tTS4A)0XI9or!U;hXs`ufZ#9 zPX*4JK*FU^U2|ZtEzJW%HS&l&3|P=uT7e?joi?yVbvN{as1VYIaA7h0M118uM=8tP zJ(PEVAk(;mP|ji_K9!?_7Y9>10n}^SeWkRh(ZaCWz~RmI(H+ai#9aoV@nCN-SLufV z=Mq^!?o{3GMVIXU?VggS2N-7r=v2fRyM3zHgDIIc9e!_&7X{!p0%Iz zIOsK~`8FbNPfS^wsY_&UemQ(TMa#nbgWdL^DkG~Rw($ftAamWHW^@Q?1Ik_G_?|A@jHB}Li}{ToIQjy8XGs&-?KyN=4(6ku zM~DiWqBuaRKZF<7Jbf`(9?7xg9rWJda6jZXEn@&T2lp&4er*lpCIt;1NYhOG$1)N< zCg`sAzOt}apBw2D3MWvX5fc<*Xvvkg-r3f|-W+b*INS1O5iNuX3NTA1ICx!o;r6S0 z$orQ{__r?;@HRFZ9Xq>=QS~Oaj0J7+CKDSvn=+2Ja&^uSo>Hdm!|MVK4ye@R!X-t~ z;_{fc%v&!CXz~Mx)ZWErlyWZegWQrF??e22rVX#e$@Q^XDx)4j}0Q z(Q$5_HzJgQmE+G>L6KaJJK?M7@GS|<>T2kC0%BhbKhOM92@)K}K0fkXc^Ny_o31yz zP2J6isxG*o2x)yV|J=CwuX_(?7pro9KwtB%1n6#ed) z@$g|0@RHw72CAh6kV*3_LBO`dphmS@-Hk+NI!_GnMPL&`2F1mm%Q6%+GY03yF+UkT zpe+@0N4^sn3^!I+QMnZ~{{(EXR+Y9{8G@1rJ@<3Sp-)svnl0JITj~^zbJN{!OgfT- z6fHxiZwz9~3We~(nt=rp;tK^Dfn3D%#sZtoGyhVGP!A^qRPTASSD1K{0Q)^k=gJB3 zDFC@dyzCj)PQ<{E4yRzR31g7iFyjbKQUfi_P`IFU`~3#3W+AX1Ma=kr7Fj z@AQ6@zzCO^JIR-`A4y7r3IRb~AI8>XyydW6dP_{9$@+;i%T}{i$1_LQHwR0-s(7}? z1u4zTu0wSKi2uw$WuA@zI9{KDWncznNWYf$;0mnLB0BQLH-D1a&9T!-^T1Hn@gAcH zHmM~8dBb;2Rq!{lD8v=_I`QJV_V_DHiv0yaRIH}v(Yko;B}Ip<6&?05<4Pq6OGlNu zXhyzY6x7vJ?GXgj9(k>$kH#?ye%5Jibpx`A$ZA@98FpUC*D}(l~~ZaAccZR_9wm> zH&hcI!D6V1(jqoA;u}_5LhS&N{B0;u$Ex7@vpxS3Z&%8?Pt`6?Dr4!yy+5AsU1M+0 z-1~eN09urzk{O6d0#x`Kc-@;4n$ryAc$ZLCk?TN${8uEO*gO&**|J;sB)=8dIwChL zfas~6nSQRIjt@?$#@p!QZKp>Bp4i(hb8;w{a}gH>1DthMgK^b%*(kLRl0f3l7?Xf8 z(C{cn#K(Xs$}@FYI0ywzm0*v+Rq+1rf^!%!U@cyQJ8}Q0c3!c&H%`SnkW(0GbVR{B zAR^TqMVq#O;360t?cM`JQ5GC!YA|yF4ikq_3c3YJm$8xao;5G(XaXV69%gLHKLJiI z-eYRk*ui#l*0S?Fc{D2bE*k8$y%(*EEBz_one}8$zZHVOq;!R6#2MVB`3NHko zp*Z{MK z`D9%x*}T(6948GEcPBjQdTw@scA1%VII-F4VU`Xh%3V0g~soEfYG z@zW`p9Ap!F{|_OGaAeJnhd@jPxi$G>U(l{OP}LfAdvL=vXrqt0&!f;-UVd6S-jP3O zxatq{XeRb$@U+30lb>rYpy3lUydDj@Lk_k)>#6H4>2|8*sA~k;B8Y|wxk@9R>degy zYl-?=&8Cpi$L5^~p!A8ufWGO1t92K65nZD`2dlTPL-*Z9Z*39W#F0OfpdgDufj~+J zeTPgGkzNz@z@)M-#neWo)CHeNdU)9ZmivSa)v~`W$5N?52@_%dIGvPgiC_($xP+8J z|6S)TK1@xc923vy6xvxi#WDwi)y!H)FB zIAgP*d88=#tL2*u1_0!?joaaKW~~8h#1fs#|58eqOK7tDBTrO8*}>8xW!*NC&4jI3 zGcD2wx=H4kCFyy2BaG%pAx07{>Mk?P0}KRot_U+E(c-j-5@uoh4TRJn z`|Q)(mRpzX*y=syv@@-W_j*QiC<_Mxp%9ax=PsT7-B1o62zYEN@xr6%p7l&Yw^GC^ ztASUCD69?(#8svYFC?xqC;5@XKu4@Zzl|ywl$0F&S)6ApKC!ntrSw<1`NOpIlg_-Y z5j>Y&bMyzzG_=N&!DZJqO*0LvTkiH0O*?uCm}}xF3DYp!bAzCzOIAh1({LG_%Mv;) z$NK0+;zyfyD`2wVl24(o5Ep*^bVc!Od+j{f|80(*QNtIPfmnl01v*Rx*cc=6gLxYX zZe2ZbInB^=OG*>td*_wV%TTZ|DDtC?SIIr0U^@-Z==$v#`*4#jsdI_dFo$;f@+xp7 z2z8p`Kwa(gNry|)Co2&w!ahX6RRZ@#YnucLsy}Vb4ZtH7kvOScVe$h#$Es~?_|XwH z{o7%#9eQtsG#-aB!^hH}r(`Uy#c^=eo(RAFyVmame?kIGO`Eh}HzeM05&-pGFWTlz zbbQ>GkQ8}#ct*xTtVI$vI^nE>k1=*i2mm=v5yh|17WXXLK%(T~iJLIS$nXaCyJF^; zn6X#{R%!1D;UGQ#or$9PJ91M1(E?Q$?`A7E%c=KuiXy~$$uaEzLgrWLl% zHo~6rQGPb-+f~_$zN+R5vZJMrrNMb+|4&K+Kl)nwJ7Iiv&Dy`z9<=1hV3;Vgf2N23 zpA11JE)F6lrvEOB{IibozipIaV)_^Pj4ru41O@|?o$WszE~+wi8H`9>cQjsL)ST=? z5S~^E!6>SUWwXk0puh|oS_Vc$(SR)`_H_6a(F@>}tRs%>VNfA9lH)O+@y(2)1L@OlAt^(BF7zqj|H_K{ABXkl7EDtG1# z6kn9AZ4E{hK-1<0pAb5g9a1l?%*>tjDoIjN$}rrc_Wj!1H}m#bf5~NxQ-%qBzQF6g zCZ*9fRSa5=F*};+mn~%2+!?#r5g*X=1F>_<00N@l-+&u8FR`ByMi{xAQcO~)<4c8Q zlyv?vVtvK$+DJnYZTgYH&Q_a=A9JbDA5MdG~`<7AaaIT zoc-640N}+{%((pONI?h!8LH}~byx=m(IQ*YXSuZ4O3igj1~n=DVhw>b5MT=h8#V(7 z98gaW1R_z;J7?uYV3(Bj$8K%eqtxUza|_F?pm%peJF8tAfOGXh4bGM-A8{$&<5>ec z6>P=rodFAD^){?(@ePGXMU2c1xY=I9WF7rQKy8_C;q|eysTEcD#iHvm<7p|Lt`lX@ zf+jCJMvVnE27_GJT%C%4K$IjYAz+ArXJi5;CHxPvysu65@^MKjQF1f(V+1@W?r>g6qD-j6Z?3TemxqfZxO}W zMA6K6gKrV0Bpoh8ylk@mr_z>p0XOZ)ZtsL~zowqQ-i4zg4n0y7gG3|dCP>1;bogYL zce1Ule;s^NZK@I-=Su2u=W%xQ*C;z%{yheRXTo8=1Gaf49PW2K{yzuf|23}uvnKN) zgjWFO{Fknp{7eXs2q=)G%cLCEPNSzbY)+v-g+ohiS~h1Q`%!iGAQD!GKkN_#e`jdh z#+!UpCBC>Wym$=NxOcN(!cs6ng7)egT{$`d!wAQ>bW0UTK)h&dsq1ItkQrvECmufF z%A~QP9zQpUpGka2TTy^T`U+yqMH?`H7;$cLW%YEoZ7DI(25>e%Cb`y>Ob0WtKqV9< z|1#jAzv-b|>m`cL#rT=L_m*sgCXA*y-ixMmiX8$WG|CJXWfdzw*tD(IoxGH?&Bi-@pqvNsm`^{f(5sOg>>3rLn$1Kmru7RW9(W!72`+J96pyK! zb__v8wq5Bw2V|e{e15Xwc&+V?nsgz)lAzY11!ZZc|3o@4b?Eazw>sJX*@gty|M-V< zVEUH z+dqY=Q0nfY-oqIy5H2vft*YpXaGx1m+hY0YdRrG|SVubcZ}~?KV&7Nb2*qNi%SbuC zUMSDOJis)6VXETs&l@rgQW41LAOnX#23aq6U`-`{8716IC`O)gqt>TY6iRAme)1YH zu)uIU-y2eZ$h6!GVHYz*i=_M56;7w^PB~p}&cyz2t-oTQ)~`tS^NGLtD_YZGQ|Ff$ z>Fea53^Ukq=r^V?G>y7&^~J9~27Gj3C_>8^69Kv9H#S-7yKFjK5QU!bJm*9_;X}n? zsmgR|SS-MpTUcezg*H9#kJ?zcnQqXATq zp!Qm1FZxY;rSiYf4ibOJT=Wv9-#&~=ZPjMpQY8PpqXtOf-YL#R7AJ_W$X$Ab!)AOQUvPL5z+iDkrvcf-cUjU(BNv($>Kh}- zp_;pPA4df%AP&VI@gD;#0G0!MH@Cg7H~{E@ng}-8!2NbZ$zmRNerRYhl(SD)+=tu~ zn*&;Oy9@5_M8imBuT+_FYhfu0ll!b=U>pdZv|}30Go!G}vniDl@cOCg%>#H-lUj`f zrFk89+N5grgLiikSLLM?GA5HbA1p%e_%prx#{!>9w9x+$HvWYxO=cv72TKMagO4Kn zM@8o!-;RIC8UNLt!H~R129N$^W7%iEW zWr7NjyEgsTyf>Cn{TQkMOf7bC`THg&OtQy}o$SPEVU5kN4?*fcz|X2S$zA`*z>8>g zN{jcs9_V~PkFOF6^Cjo|HEF2LO4A@rT^t%fkHh4!Z?WYGbFRq7A_%mH;q*nw8i#pg z9(Z{e*urz+H_@hv5OjjI3>le@R6zq-Z5Uo`aZ_bFV*ZTL3V-Dh8OuV+W9!f&tzXe2 zD3sjSM3#hni+8EAe7F#oL1X^1?MKrUDJkBvoUaJrpozc!DaAGIv9HL5P>b?K47#j9=E-66 zqTkC>vKj-)&w5xWYdf!CTvJ(p1Dcwha$P24f+;0S*h)XcP+^kG}9`TD2;Z zqWJ*u-cqPha(%>HU&Ivth@Q#1^Y+6Rn2kRDK`mxGVc7L zyuKvDK#;1@ZpI|mm1_mP)Tf=0(Vn7zlHEs^`^nUWZ#AKOov!~yjz!ClFpb?llpv2# zxIAVcgX`E-7cuEHwpX=R24gu-=HA#r9&wH)r3dZzU)nz=uG04O({mz`tq`^(Vdz~o z11`P2Ir}X>)UCs4SfAin9RP^`Gz`5_!bg+;FSFMFeDi{IagY|Wg_nTeP=xEMK;iG+~Q!MIqs*yD*oDFF>_E;@-@v;4Ad{?69IZSCK`UvnE9 z8$|FRvqT%zrOy5d3C?cP9cxz}S@}orS%57>!WBK1def@b#fsk>FjrEE3s|BP_;S8+ zQ3$qhv=I{>Kpx=W5|9!YrVy$*h3%Q4us(^gsj2uoAHSI}b3)S_^Zi>wabqxh4otxn z0nARIbl_r)EO$g5kdnaoKJ-MzTs`x+IY7=VKc8Gd>VQh*K7q%gs%+tkD5{7!rh8{s zfh9q;NDhzpFAQxg4jy?RaY6g9WV_YFnL&)@Cam%KbZshuDG&~UG{wQiee&`tN6g`K zT%CbZKq_U=X@R0JfLwCe1x4h9RpE&W0c8cb72^F+(iMl7`}@bY0y+cp^K1pjz`G=2 zrzk)<6nuixB61&3ZZ0{XA>HJBf{q71-Y2jiHR28QQ<2!I34tJ&JhcgV_SWo1PqT~^sfMA0Wj$h&@BD>v7<0>It5 z+m=BDv*`tSwgviHcvAfLo$En9X?m~ZfJd~`f$?>GyD_D>KgTT)<4_u)jNRTim|~D@ zyPZ})Xz;dSz&<6gX;7B{i(@o2z7mn4 zYHFH5KTWS*fB&t(|E#4Bp&FBvE-7Uh@rU^9E7Xfz5Cxi_p1dY7(|s2jGVU)P8;;vE zHU?t=0bd&6-_nD0ig4yvAet+ zDA+N$I7di8{>nCwf!>LpL^*~qfB?z_7Gz+dDcU;tOikJ{{XSygKD*?j_Bb5Bx4Wk19ZPw zK<2;jRB)!L+1#9K?jTYCpmaznX!sj~ph6#Cf4SbOwc;*aUBf6I1y8?{?z{J7&nquF zzDRGoNg8~*Ta{?OA6EMENAllQ)!9{8^D65LQ`3j&urKEEmQ){c{ej+D1gO<`fGke8 zLOi~?wNNy{*_Hx55Gd?7o$5sp)xz`)$k_$l{`P$j#82g!p^FIcEoFf-hDwcumz_<2 z2$0?>qy+e<=C?Nbllvt4qZ;h)8tz8+z@>qzAt3lLz?v6K`s#hb!T5yE^v=LHfNk$z z9wOG*I}1H`re@#)QN(T)0f^;+;*SXjz{@@$9Y9kCzK95b;s?5sFgv;(NOR__E@6$XbvTl`kSizD5Bk6@?E( zkcGKtf58XV?^A%)?~Ajhx{(n>!bb_g!dO521sCLm{Ld`Sb}b)g!Hpr>R)Fc& zKbKcNZN8R9pPNBdrq8!R0_H$qfV64wd=|37N>Uzm6P2`flNkcL+y=w)guDQ3d0}Cx4hU^H1+CXBbbJ6< z@0&av3d7wPK8`J4si2CV0D5C}7K!9;4}Z~{XIQ`2+jme+A*s$!znrp7fRN%}egLOG z^9zvf=is(LHrH5p^*X>7^-usY_sawG1+pB_+RC{K(pWJmboC1mNR{Fv-X{}{?TlXI zbDmTE^^x8SKy&{(!g#Z4EGfxPW&q`p`~krpsaNnuawGs(Ig-iC~zZ$S2Pu5zI4hLwV&x+>=6Y%4xD@o_Bn7#ssc%?^R&VQFH*< zYbzp{)aG}vRtpJg)rgcnzSX$7R-avzE+}&x{^(ny0EPhuqe3AudP$4GA?AXS5lYk_ zF-I`DgLN5OHgn>R;|T%AF_JLk)#Z!6sff2bRzER*O~e=A7y6wvQQu(Ly8O$XE_cTb zl~&HpzrB;skbEfhKAd)L3L8`0AbJ$g$NBJ(b24j!R%S)`@M_wm>rFtM6}>raA~9mJ z$54tsrOZc4#WYFrV<~)+#uM^V3(LsHES<}Swp+yrY?O6ZTPiPURkk&6wnEzYJx4qu zj|RgW%5@p#2bf!#ortA^{tTwElks?wz$78pkgu(vZux4wDcVRD-)wc<)*Ta|Z>ai- zg|dBF+kwj4yAq0ihl8U^6QdKPmJ{N3WOOj6Z3pg@;NZw(uw%MdoO-kg1_jlt8%cO6 zGg_X4t~c_){xPE_p-3Wg1Pk~1JdBFsg(5iIgZn8t0#&LY1{NyO@702gk3JZIb4efx z`V1W;HMMMealwKPs)-k)v9=l@+T^#Y0K16Ao1HYHV>+DRc!t~~>Yyn8L|bYy*hMhH zTY&(QI7jcU_LLp+=*924O92@E!{b@+wE$O1l8*o2a9;q$zjcaZO8v!3##rK!6L}V4 z_Ep|erKNqt)-lhn(Cd$ugxO)?DUnJ?KU&X9rGctlqVcqdx1uBKoPP)K1)pPMD$3De zu@eMid&F093LP(N8X7TcZ!AG<^+TVd(SGxT^djGhEk285I2RdAZ;nq%B)x+P;C4WV zc);h-A|6R78{(~qu4<-P=1>+^&pcJ9dp)i-vapn_+6!>&rDRP$%vAeJFAG1_dR(8 z^-`aO3EE;0PQqz&3S(#s3!MDE@NB-D45D5c144qIO^dDJov(XqYgP#uP3A|*ly1|kpZCg{u5j}8Q%-=a3byFkf)xk>qyqN zP+C$FQ&&d7*dygtu_Cb6LQmIwNJAJ z%Z+2iv`LZR9o3I<=OkyL<{vWZl!PO^RxA zA{Y^c-_Z$?u8meg08g-E|VL55;2k9y#KU2+0n;wUfZRj#t}%_&?7WH&j!!jZ*& z0AhF^F-j-e3Y`>FpTzr&hCo8#G3{#P+pkpuiw-RDB>3(GQaGQ?Cu7znDQ0TMJbP$< zPjvT_wr~8YqK2Y^%ku+XQ%TgLB-6cziX{`DXPUaT2+D!-{F@W{Nv(_BndRTdSJ&D( zvxvr*m!L39DHS)@9s_MnUZb zJmv5=s#YRS!VQ`!KS1`hEM}a$-pp3AIVj!xdVCp&;k4z(D+GbdDh^?Yvr@w+E9L%) zyH&?jYi~2_cYs~)N=`hdbDgW^oOy?qz+C|+mutYVxcM-#nbf((=UJFGAn1=t01!1- z4_y=u7t5)8rseD(vPN}%OtIUB8Z%y$iHX2RkJ3?TE^Vynb#~*4a~MT_^9*E$B)6F@ zgzoU=)~1{=%I!ryU;9xyG}e0ovC<|;-SMlX(AK_Js2rI1EQ#X*FJC@Mcv5o4`rJ|R z6Z<@Te|X~Ft&dlKqU*Z7DmRsF0?>+1xe^`PO0snFH1T&{@LZbO{y1UyfevNTiHYEQ z)fJUpUh0yVIegJc>WQiR_+jdzaHAGvz|LO=yGv@k6lytFauYc#o8HZx9xg_2RFgrf zX{};h{lZ;YF0Eww6jpw_@99OBgV(BSV)|n7ta5GIWfE!oB~mBy793K&4^V@rqkt4| zoRea|Q^J~1+9%iY?@V?-UQX_}QCa1A=2+9`bG?rv?@A46K^r84m+po;^=`;ic;X9K}!A5{cZKTgVsKzs(W?WmRsx($OFn zyNv4f#`-Eo3TtgPs&5$^&^}l380Ya`NfR|6C#uuFKQCw($!QpW&1ob)|H4-v|5?-J zGdJdAZKv@Ee(Y!hOZYaoNkzr~N$oFanRL`l@GoLK)vXP%%9Bu4H-NtC{0qDo^dJl1 zg-f7tvXn|F(v-ufJ1H%Q`R1pP0T&L~QTWJXl7JW~>MxJmO)=J?QksUu%q@mza$pgYu(Q%EB}u4ZNflDc(~-dO9tj2j?1|A?lZ&0t!bmN z`WFjy7he%~UvdLt9RQFrMyDS6n`b}Z*ta8?mWueri#P7tmW4_P{5GKH`V!K&ptICW zd2vfsver>zf5ackI<~Y{vY&O51*#40!ECkCsSG-_zPJqGx#?B#X8hVDjhY7iy4d?1 zabDqo;MwKasUuY3=``;11M_PL0y_)8$c?fSVAN}hLR=8?M} zOL+IJn&^g=-E3$kXlHO)iHJlcS(WU6y zaF>`dKYG0KXL5Sv+(&Hfzk*6&pwMZwBA91n{q)qdGKJO0Qu42zg6Y8Ki)dh_ziwh+ zsiqx=(7LO?2m!pVD740QCGP(p06##$zZOPuBj8XcGhDN6Y#RLV!1|SjyN%n{Yj2hS z@nlw_oG|$PMo2n9)|R=9$8Il7Q0py+Lw@Y2#6e+-<;zn_#YVix;7zXnLl1gv_B!ZY zD|asUNPxP9EGB_B-3u+)>soLOA=ZH10V^(l=*w4Ytm=E_#}x?2fA;R?s=JW2!{n-1 z2=$C`M#wH$qDu0#2#ug!w9BAx{L?&hS@p|RLye|m zaw=vasvHLKvmaRIw2dJZV~7L4E=#uie~L3vgHHZBm8GRxmD0bEKq!4`UPQRfu- z=q`=GzMB`P@@+Px{|lc@R~MFBa=~$IO~}ZlVm_an zoXU^IANyC)n|HAWqV5EXYnLs%$53zzOpzRE5m=)7Iy{>F-1tx^iRbNdKPu|Px(01a z_yvMEQEc}gf4eR|VtcfB99iG?*kvYcd(}_h({H~zH0`;fjRizp6%C`cg;;fbE0iMR zXiz7m?wo`$9xw&m-f}&7t;}%92Y3c}T<{DYa&9u0Tg^vOY7}-WN$Ur8KI2Di1>(Hg z&F{>-arx-Z`MoQ};UBBle_{G=UXoLrttT;QlnoO0ejwm=o z#l{jlFg9o%Y37Ntx*!F)^+WfVU?@cgw&m7li0&R*Zz+iBtYOmQ;NoeiXGV{*^jR)K z0$n@CXhop>YsfHbIxJdH5T#%{{l~kN1Ay=$s06yTq1qM%aR;iB(x>u z9kT1J`uls*DahAwZ~0TiGqhu&(wc?E_MziR$ZvEisUJp8kZ?}#Av+4Ntvu4gDlGnQwRwgrYg3fl}eiY+@H^{Ro$1IL36DXVOBjG z8CFobPeJmLK1(KAl6TWmXrt_);*k6&u7Qz0ymQJAlh$C8&Hl$#a4bMhpr>u=>g&rCh*oRj!icwIE>V9hXhWuTjH3Ne56 z^+m^>oTZrh`TMn2k0al9XOSW}?UX+|f7l{fMNzlCjq=a-^E3lt`WI~+lded0dXl&8 z>6;T3`9<#}1QE>-u;G{86iuR;F}uqm?OYw+7WGA;UHvcoH_f}0&O%SalQCn#V{Pg^ z_r!)@Hy!49=^j03q4JxP>QHSsDsfW_IaSu-KSVE>G+BSqhml;QDesU@ah0#wexW&`yy=4v{4npa=-CWtI}xmz2zOy96^_s@RBUCk zM0Xv2neeE@hcNV-!5j3L&rkj7}$&L}1hCmI)5!<{hhVgox^gv#@j4UZYMkH5nWN^5ld^ z{)4_$8yH9p0@98P@9c$@f0=Ye@D!UQ{pyo9Wr@L;74x$nwv1iiUWGqwD4NUS_iCnk zI&6&Z_?<%qOVbak^JtC+ikecdgL3*4K9N8%q$0e23tXw{ZsIy8nYlcofA<*-z`fod zstF(LXVslxbXcr8N9)wrDN{0S!W`R<*4a`pg)fOXD49ANfP43if4>EnJ^$M&MPxoi zMMHmz{PH1bnPO&z)c)_#bia0%R|C-U5wvmW!&~xe2Ufvv1fxydD9+Il)5MPfunG$V%_eGE| z_KK4y{Hm<$>F02leRevE8+K_o(Jz_A$&n z+(S-2r2Nh8om_(2B94J<(nZXuaJYcF!PAy!+p3^tM9Tr+a9DRWqnG*BE@|~pul1m< zqyfHP!}&&ff5A!&`v)>j9JgXK&U&z0vlC%!L}-GAqql*vUgt<22C}zZT^ZVWiZ&|T z_u13*t17X@gVl+Ygs(kf;ZC8%&Jg!9Xu<>ZkeFj}_0F0G7CC7fCB~Y?G`DhGG!XUv zNWvn}?n2KBBYQBRE2f6GO$8JJQ|GhwSkq5Jp_qP zO@!s*%f#_;Jmj(jaYi7=G2(Z^d9FoD+GA zQ-X1>@tS2@AiOV6Fzicnuj}12wq9@qdRz0iD692o!qB*^>uGQ#`8f2ysXa!KI24qOe#vXSDGIP0f-2tErt5jMgK6=EJd9jR!>+GgA=Y=X@9Y&%wduY{o=T2ahk?VuDp}X~G2662^H(DDn?@P);E!_v z5fgY+a_D@VwuJU_Xg12lzcs)a*oYgDM0#*kzoYUqr~6C+|D~V-Pbq}!GqwcZ2N`G> zVcCoiIf+*5$P_IIVjdZ8#mj9Pm5AROw3&znVN52C zFWYhBn$E_@(gIYC=Z}n@W;LQq%-jzfYb`Ax*ZdF)Z|Jr|1dj?3q@dpAu;WB4_&Fb= zwM%Vllf$v(Utp-U)O4@M3GQq5BjJR;%ypPtn+)Q?y4Jd#>iH_dbACuBdA$2Df3MSL zAkkDn3D3iqhERFGra&;e^3?^nNSdq_Md0>{ki7w_Hl=cnqlv3^4IIs+{#@I@Iq9lj zDLea}bIl$!^=S1#^zv&5Y9L$&+>J>Vz8ADgvCN4gA(+j^&+&_d9Ykuby1Z58Z~AXO zi1lA{%n~epl=>Y%X5(B1vwl&Ve_@ntZWPgYz*fupgI2f1F%v_Dl`c z`9~1?= z+9|;07sB93un_ahvs$2YT6>uk{i2lZ^Qk#SkS~8sIFT#4hRsxWbKzO+^j?ss4D>>_ zH45fWZqpFv;a_{rh8U36f3Wr`SPnX->y9`K2XWGlOP`ed!;YwjE-;J=f1Ofs>ruT? zj0{G=vO=;a<0d$)pl@N=`c65kBW|PIkT}Oh$UhYaVC?u##ZX^lU;$Qm)+*eppu?5! zq~OSP>$nX{!uBL{6d3l7Z5^V%uhWN5zW$Zpem+bOn^scdYGN@ff3fSj-G!<-4R#`8 zwi3#4$-TJpLl-~A66*}2`m@NP8c9mT7FziCgtnik`kZ#8ghC?aT^X`@hYtGpJ3n;w zVcbTh?B0`&IE22wiER{opab^3d3rq4&W(qqzt1Hx;;XLu^#pcZK_OSpRb=xHP z{e1zLJrs@pnfK7Pe*>zi%w;z6W4Y&dn=ywk9fdDwpMp?EsqJXRAu~wzJ#mLvYj0ch ze%Sj7q`qcHN4i?Kf}IzVB{lvC##|-f792?owLB?|T#c0PbcscuG6+$~X_J;*)KsAm zjVQ_3frrqPWNaJM1uur|BlU^p3$;mgvzWr`S;f2x2>cXlfA6rfJ5vOpZ2tZ(R4=-h z6UVAZjIPw`mie8=SYXD^QaMjTBD?gY%F4lsx##&wgXOZT*EUI(vcwAp;j(wsBG~&( z>V(2Rf$mIU07jz&JU^|HZ9d{IgAxgq_K7qX%4bD_IirfPTGAf`&$twf$E77T5~2jE zmCU5-+2$Uxe>ksGW&QgI!Vy<0p(_xVV+E2J^}kyPmclM%mg)7;A>84y!=1ByM5$zixiX zepXmTNAP(aD$Of&oPD1NiM2u_WHJXv-HF;Hq}=mRe`v!-27ldY=gNqOMfGe}R_b2k zQw4!XJ%)`}kL+*9qJA_2d`Q~wD!ToK-q8d2a{0j^s9X7p{QX$L54uVd#v<(FgqRQ` zr2T8YErEC}qv%1rGFv)ark{{T?HI9+~JM2Y9{SWT3)5)cSDW?Td8NGIEnQ;PgIU#tFy3j#}&}baE)0yXUwo8{mh>JMITvh6e`Dj47>K~?9qEKY8Er{|nlp{mEUIXs z=t6w(u=oP$TifM*EePBAuKEtEs%DOSZQtQVFI2U{x{Psya;j47B5eJQIN{Omf~&bO!WND4TL!tKMy+GlaxDtBr|5Jy3MRp+HaJVWuTU*zyQNh5{*M&C@^ib4 zl+bRh*M}0W6rsV{+8^sN9fbp&!a?Zj_d#D{gpUa~UfRJQ`Jv<^8z<6gt%Y*V$QEJY z-z%P{dW;b2oSoaRjqHEJF$R`Ej>Q-Wf3o7f8{ixCDq17hDm7J3dsqLRFE!m=J_Tw4Czb&Z0TMk#)p@am#x(9v5p$oYxR|$tX0vm7(y9 zD>e`eS8RrN(?`Af@QR=*V7mRMSQ@ipi%>kN2t}D=$|9|K`ZPm@3Y&G>?7HnPf6V>p zN_XSWxl5u}15xUd)C}=AVS(qf#A2$KX&YN0!Y5IagSWmYabdAHvOyPiny!_j)S>mD zI@%N1xXEMVu^VqUoj4)@UA4}y?|88?S3}wwHHs!yLmIasb^+p_N3Kfm>^+o``*ec! zAr_>B!e?e_NB3zziWDQVN}->gf8FE9aRV`Vy$ap7vyiV0qG0?cr&eFxZy5lrQ+)9w zByG~U>jzzA{G!2YqelMahzou6m8&&K5{#|Bc`b;;2dh8?w8+Dr|Mf~ zZ3@LaJy4Gv&r)Arh;0x;uh|xD#QHv?rIDyDvV{>^NwIhox@p{}*9n9@e`v$MO3407 zC$Wl+fMa^=I<5P;eqVKv#^e8VZP6Z5zn@!wfVvwTD&Nu(qF8%lsWp%~YA$^F4Pf>R zm~6<*5)wZ4nhQB&bNX;Q+@jP|w>+00FeP_8+&iymfh1 z0bXd(h(cC(#yzz(f&_IL^WOT-_aW|tJ9j9Ev1|?IKP|4!UvkREZ8 z4bIu~Li<2N2zOeceWHJLy_SH3sHk7>=edcYCW*NU)KCy#4A*}h&jHd7x<%zNMOuZGeOADV${;OsgnI^`S%Y_)NjK z9xsP-TG6`PH_;r8QoAP%2SV&WrCL1@CJ#;#)(9>bp7Z2>fAV$KkFhU?|G1Y%Jo^n5 zr4=FMI+(r{{xSlwZ;^(&zfuU(}+w>$*&%JE2U*P z*?#Zaf8$XJ>S!FJ5#(ju{;+TEV@63?0`S%SDLmeI%d(?Ea@E{6U%>BLz~_>F{y>L% zBv3D~*BVs`R~&d%26I*el7F$=j-^{)Y-7NURpKbxbVEZho(Uq1GY33c$A$Z6^^D z9ke{q$)k_z-{Fzv{o1>nfb`2PXRvLO?v3fVBzW)iq1_2f)!3&@P5Nxh;BDnST8^}UpbDA@6 ze_h`V-oRrsl1Sk{sADalV7mVxDbOyo4}s^v#&=eNg^W@o)N60FbU08eaYM`%eycU1 zZz~*~M6`&S=!Uj53z)gUpOtJPt|GP+XHN0y_#S{{H3F!;eT7JDY+ zttnFnHR#?XdmA>9+5&08eZ0+Ie?=A;@zpsVcX>au*YYep@mpzZPN=l2g_>&O`Fk0G zb|awgvY%v}?22FM$r;XdLP_Vk)C5L5GRXs_VmQCNxllCfoOE%0+|)V*qDQUrfB6kB zm4NT`Nh*UkM84`AbDWl|9M2~9%W1iEDW6}p*TkTe_cBrSQK3;dSm+nKew%$U5A%wz z?%R)m%^k4NMCVA1Ik)AS#fx%XJDG4&$})|Irr<0VZK!B&=0(IcxIP-$tR8j%wE&NHU4_Q5m zV{|GKu4MnckZ#fg`^f}FE(OY%#V+d2xgLs>>jxL}nfv9WxGT0D)CRj!K5x=nPl-d> zn?}H^iFpD>Q9Ac8(Hb3+e_g0T6D5bU3YN#0IUZsZaWhvx9K@6A4qt)k^|*WHJOz!j3XkvW+kKO7|`e{#r%zC`Aw=57c#gAPVU%y(Vq3({q|Z_k16YvaEoa*F&^ z8vtWgOUQJg*2k4E`Z0C8HaO9&S~UAE!<@NKEyca$t+^7VEeDIb`_AzhStJc^Hq>g- zPr!}GMKBK;QK(?lf4Fehr-%^K`Jvx?eij~kz|IF@J?G(}NPRSrQ%O8o55|v&a z%PG%Qmn4@JUx$cZZ`KB#@-Ovu8&^cHkhkdEe+JQ6num>C=zUIqgoogQ<$ai*U=bDT ze(W2;cc_V*f36yD(DQgvjb$2;ZO7`j8je(Czrarv#Cf25GStHq!MnHDfooTT|A>I| zxt=#igPy_dd$u>3TE=q(SG1a+6X85g=8(nd)|ftEz&h=7F*hV7MKlq6(9GJ5n}vS} z6u4;|PwHT+Ff0e3_8*9(s*05S#|F2l-RML=; z?KPGo!_S0tL{(O&C1dRvILG1N1W@Oh3E@~BRcFrck{%%mQJ;VBJn7iit-|p zEf8NRe~cZakL z!VBW6Xz{`ZmdY5|y(cymV)sObWlmC29e5v$3+h?WAg?W1iQxoRAV33Rnl(&A4PB+9A{8+6JY#Q;i0BDOGN z>}o^=7p$kZqG~ut*CxNr3WHp>s_ZuWd-gFtSQ6kKAKAU+uu3tZ(72!+^W4xelV;Xj}C=3J0#z4M>7U)?*lIR#VF-mSXt z?h<9vpHi01X}|M>Jl{fvxh!O1?(LL=W6^LIBu{Zb%K23tR{sV*j1`%PgcGPifA=G& z5%qR@@f6w}j>)&fblD36)v~P?N!TYwCSsIbkle}|M~j+-X+V=rI*=Z91T5>)IC8J* zR18B-^x~HQW-kL}gNJG49`(;d2iFO3@I3PZH1*v>*&fxkT*9xW0*ya#b~|`r-}}OP z5U(k!zUOd(oNDgZC&s_)y2#4<6>rHIS$h8KAD4?iZ7Dgwzm5uMsr$eNG*JKtSvrTj2&XJ0$L#_}hUXBwj7 zf+TpG%fS&%j%BS$$w^=CPBQlPk{B45f6Lj~e>nMC2eZ^~jGs>up6lPkugo)9n5ou1Rn|FxSlN7;1o!(n+z z*EAL9a&YA65I=E#^xtYchfgOYu@i`3hLmJFkO*w(9+7)AWN$=7m1d|{m7xmw8F>2J z5(ty(MBQA`(GZm@4I=*vXGM1}vQlE5LzmD-H#gyZi(_pglb7D@f9@qqotTMs5Ts)a zKcJ&QJdm@@mSZ?Ky`a)PlEM?Q>6vPTwwPlM=G#QYHAv{EyUPva_vMgit@Uf&KTRGJ zBX{ijiVWx@w5AymN}o%KsPBcz^gynBo?vY=aNMl96P|);B`6w~qkX-TBdkk1bWFo2 z6v?dvyOR$lUV{aPe@EXdtFmqcdyI z39ermsJ`fMuC6WfeBTai3KkwBK7zFr2b`-Uw^uRIrA2odMj4TaCh*$WH>`DW^C0fu zJ$fW)%k9o>lEIJM4xQ61z1$7(8CkO*U&Ko2vGr)y*p}k2e;weezPepZdlCLngRC(l z@F|p5ETvusoI>PJlX6U9sv$LZ!0b;$&e3CG2A3d<`3C%jFKcKQ_vrEd z&Mzf+ZU3}bVseKt$@SMS`+EJe6CG@UceKvXkD@;a8)(Qe(OGJ=P*;>1vqQ@IIz!+K zW#D|DZ-gnffAJf&e0iCCam ztAI2glw^v(Z;s+gC>>d1{8|{@Q}1_{XX`(-K~MsYe|L}Hl{f+Akwni`Vo{<~_X;ocnBGb@6X@jN!D1~Z+=F+pu%lBz zfqJN)f4YXLcHJC7xxCX4__nKeApvI{vyT_iBpPhNU$<4876;X79 zl?L*4e3XMlVqiVT-{cE@3FgT#-2<>E-|F0h1@2or>`YdQZ$6u6zAT}AAlpEiOxzSU zP~}?!E8a4yPqee4$1#xnX0Yu>-hwArHyeiPbOlQwTMag6Q^H?m{N&TFE%tyi1jk+WPSW9&tZae_y7$ zSZOORsltytV5EY%1;>pvlWK19brf;^z#oGlL{g%^$DdomyyaLJ8kQf3+eD!#VwefX zB5#jy$~!KGzH~OKmr^lE(TgZmaW#_nsuePQp<|C+Kg$y%X}Pq0V>zM2dTu*$I>Z{b zqn|`tz615?{y2xhaG7$mUiKeb-if6H{*wXGY#)FL9k2pNU}+u`PVaRBNFaLbuoZ@DlP|G*t$~8 zxN@APbg;<+Xa6)fJ{_)#b|!xG+)+Xd%guWqnpBJ;-Us1{0aebs-0}iyGO$^px)ZT8 zH0Lm9at({+8ymN()Pj%3TS;G~aTpkh5=m(cdb%R)ejW=fg;D+@e>;k7zK%oBVt@M# zm3O7P^X|sj3moflb2GZJL#X-wC&M-gRjbTSv?gi>7DUvs__`r}X zmGxG95IL%g;_L{CRKvg$d$hA zG$uky8{Wroe}RRCU3n@W9c}rT{V;Rbn=CInekl)o_lWZ-5O%dbByt1?WLPVX(>Ne+ ztaHTnY|!0%;v9R!=q-)60XNY19grw&#LO&4?UB35SLs8`zbA(Q-(-z+&`3~I(ZwV? z(ymi?m?iJYFxBA{=dV4It9wm37)#QIe#aM_e2CtVf3u$c`d-rrTM!N$x?sVqoLdy3 zTa|5y`N>z@RnTz&YTmI#DjHGMnLYDYH?kCPbml?gj2Hcl;Da&%N^(7zv4)p!&>2rR z!jA4S37911#DaQ!0{gx4dF~boSF0mq@MMOZ&B#&dyZ4kPEN0_C`g5E2R~qSYKwJ+J z5@8^ze=_N$1&L@)B{f-|bqI_4^oHTJr~Sf5rYy(e&xyDq9{Q$w>mK>>s$x)Ul@Dkw z{X&F3qdW{hzH{P=#p9~=_zCr-oYEpMdDvisn}@q`x3{x79rp?7=R0ZIFZ-n1w6PYh z+Z6udZe+rUxpvX$R7!0N_^hxpm!*mRLDQ9Fe`d#(J1fUVeP|vIz?JA=%ImbxS7A-H zEI!$c6!@9xtsY6v{;=Z{vkCVqtLqBhcKBIinvJZ=ifU+D^+X>N#R_#7WY~8@S3L@p3ZK5Eqbw#o`($IZyRoJmOzh{W5SGIwqSDrUA@|FS5E5yu2J|(Lf39$ ze^}Z{Cp?1_EqiK+_gOP=DHp1YL#tzW49rgXI#y(m#&?y9cE19 zfqediI8S#^CjU}(Ig^COi>F$Jy**wy0l7>gkT5Y~tSV->33cl)@@B}y1ugnOOZCBz zOyuJIQpmu)>=Ra6lAWAR&!US`nrro@PpC0=;JXLr_1uarEoKn~I`d6c?{=jce}wW4 zHW5Fa48A=k$<=|QIm{RAQ`CwmG}*{78c}#P9F?vwuk09jGMJRB!fufcx3D^gUoT9t zN}SO7*lh;L+YCmRD;J*GuCh~zL<7!H;A7-nfs*c|c}t~e=e!=AG0pV04B zt0)h{ZDod*h7*UI#m_Q#o!baI9ak!UlObjg!>Al{zZ(1eVZgLXH2Uqc52`vd&ef7c0OyQh3PVFS-3 z-yU0R(`4D8+7BEEYQOn}fX#|*S{XvwY_;dlxFblCJY(A_TkYy^R82s%d66yDKDxmM zi7LAI+csfXC>^Xna($Rcz%uKSex|=ixBlswLYn?%Z3Xx|e{ZXmSmJ_>_SZlq8n%u8 z(5aHV4Ec=U>mjJ98{n%SwRle`qk?)AVlAbtI7^f$Pc`NAJe>GAC4aU-z;5SLEY^8oeLpwwk#4ua<##U5hM%GU_ zlpn|B!c!-}fKk(hk$DNp63f+{K2n8c>tmXtt=#@|%7f06bf~C&8pERo=D@>etTJWG zoiI25Jr;Om%BUfBBk(k|UtYX4u77g?C$a{`jpWwmf1^-eNl6ZOufCoPiIoUok~^)Y z?qoBDUg%yh{5qJOC(w0wx+yP^3pH@6H}_k|!>qjTxMvsl$BeXF$ImhL=$N;YU+KSo zhi)OWvZ92e(mLICqe)OZYb2?F4%;7}UN6^7P9V7;bLf(&qB(1G&fEOxq4OY-i1x_T zcjE!6V&>kf#? zsF5$HCV@x&9x{X;p?7S$kLZ?nNDXk;4kbpP3w=_UHYM5b?PO;(2HEmp(6RQ8W9*C- zpu9cALId!oR5}OCL6&e7p<+iCC_5TI%Fb~fjM1JfAsj|5qevG#Q5WbE{ggaA9WC|07CFEqtX_>@sG!w2kL|zMPy=i{+|=% z@fjIEX32of2@OI6WJLW(DN~E7Im4(cfBm#d8N*XQ38b@Zrpua7krXk(z0$}OF03;0 zuR2;009IQi}=#&%xin>99tWH`ny$d;cMnuk>z)%Tuhv)|9vBA?d z7m*EX)Yxw!BE>7ef3jL} zz0ZKQ6(oXxIB*GD%@)rl;0)F{yndnPj5JubmSnx8l>wu9hsfDzHq0P5t}ZmEngL2dp7Kiv^9xLBT5?$-is+Yr_UuS`sh%uuLBKMQMieXsy2H#hSdH z=E1x5B#}$~w3^$Fxs(^Xg;^d)f8;I7cG1b&RG~YER7c7!XwO!s>v~`VK3o)r&cGu0 z_eomiUp*YS$#$VoIe;({R*sXuc{>wo0uDl<`PJmFNx3bM;NPSF`P#^sM7>cMO5bP) zJrv07YsV3D>P1dX)vbff~S$F=vFbRpQH4nxIMORyp{O%SHDj9Y@A{HB&|VVKF8hq{46V{ z1d#Iicea>Kh)1LJfrH=%Wbs7lUTWU~QzpB#T3QpS5yiNhL7Igc_dFSRX0BuwLO&oH zd^)}LXoUh}IckeSeLQ`=Hb)z?FieqAyupL*rxJjMeuA?u0WFP6f8>SMscO8@z-@I> z9>0k1b2W7r%*s+pe~=fJ8?KeOgTKsld#C=k>+q|T4|cg6YT;0NME zyfSdn*O%C)F_c(s(HaHjq!u8CjgT_KOX5t`n%vgR^wF0V=qNh>=5Ln=ZQid>v53iC zn?#|d0^tfCs1!7i^DpDgZd0zz zb>|av+0gMiu2a+^*wDkcod!kx#D4c7S32-Y3>iVKDk66}QApo-wEHa>ALp%QE^S_Q zOPWx!l%XY zsz)z3g@*+CJ%k-W!=1M-SWMeUFJ!{SnSIkysEl~dG04dYsKEAepmqsBU5F7Z4vmrJ zGXY)RCn4yLv2nC6sQvl-swC0Iz=xZ>j3jby*e zD#g{WTc>Ia%U~IHLr)ap{7|_VBN-WZ&v;5G08w7?h?+&O2wH>MY# z<5u0)vsp8H{UOVa86`4DY}o4X=^ji9&coD>mAdsVf4L>nZ=_;44gDD+8fl8_yiu4$ zfjl~rf@hYBioHZG{(G+ToaAfzW?ZAma&mKREQ(1x$5n5#`Ee#9dB6W*G8aA+%GHPtMCv`Hy@K|y!Wtu`)Xn*r#d3W6N{w%5BtE6v#!t)jdr!Swyf;PiHbpIk-MwJ zYb>ZrCJ9pD1L&RMQ4@4fbhP;dF=qEb)Uy=(ZS9^QBufw*h5|qp|r0CTHZ@Ef^QuEWaDqCt^Y|FGt${Bv`lq7Hm*^NhFf6lb|I*)JJn8(KbbUvoI4t zzU$Z7joPz3);Tp5mUJ@F&rLNc9T}pm2_vs`R$Z}Gimw3mj!f>AY)?=H{}ni%gwMwF zYM{;z=C~j@T%%_DTn}yPV_OI!%4L8amt5Kr2!9?YFMSXU&oGC3!xbQ?d$Wa)GG>>S zSh2WF=pH^V6gdAZn9u5LC$2Om=?^x@=?U0J-K@d?$M61!5oWPr)>;XM{u^cwHz=l0 zzzme!W>4yn`F_l)JC_+XxVb9+9H|odrKd`ND%hoh+!-GK#dKJW>>d~cLEM#}j`eQU zwSU((LAcJMJEdPu&J}EjZW57#b>V%KLhk2X?S4=+XAhe|8cvy8BVEgcpPq6@s{W4) zuE4wFs%7OADGz?NNB19iF4i{Ln-dN@@n$nQ^v;J6fN9xcZN`BF3Be?{9&v0{3x8{Em`74Cp>u|MG_}$TKUIskvu6#}7NZWw41=sH+qAuMnlDM*&DFqI2S0lMti=;tl>nthED0op`fsYW``)6W z!Ux)~RiFakDFiBPYEoFrj??Eb_=(`=roV-@(^@&Ywg1QDG$&w|w1zVkqlky?RDb91 zbQ2fmSzGiYYGZ-amXcJI!CZkQnGA^rW5;$90}I5V@1?T-Z+u%Si9@e?fV)E~*Au>% z{RyLSUZ#PF!N<`Vn{3Hq>jRRhJ}k@kF>3J%#yC(0;%AQla2IvcHU74_ioF}Cp>C8M z*G`>Kxw0ryc0*5r0vNSgUQC*92Y<{8#PAO0&C0-g8gxfAvy=3Hga1uajuGH@G@P!I z2?e!5yR|57g|aX=W2}drnvYz~cY;WH-uLtVuR=shpeYliEg^y_J97(|fWEKHrSoVS zJ7^YH+PhL3N_14Bql?t4K2VrYmt65<)312!1CPb3PvfI`>7G=-f_zf1d4K$tiz@FK zTH=Ant;8ejiSe{>sEIu#+`ivZSNLVXV|I?yly?m9c6DWShs%mqS#K?1){wj(9Tfrh z#Q!D+He>IeUmWBkw2B>|`ImN=Dt^(&bUC7%S4S?OGzA<9{BqNmWX>4S$NHsk06&KN z=`moTJT8<5PxV2+qgd*Xdw)*fTKe8EWu#>#P zMvl?(&)wBPwP3>Gt0g*{!T6vMs}h>sAnIKZy-8gWQS`eYzW-ok3leLC?Q{IEF~(uA zCc-?Yb8#UhIo}~5pn*x1a~&D9eta+EV6J)E%aw&|0qjJ*4#3U#4}^GOuUhKWY*?rc zJ33)eE@nAC6Qe=!yMOUU^zec<;5)N2ZW!SmfAs!7D&RG?b> z8m7n0``Py)P~InQbi<3oyVw3(6#kd8U$NI{u~l3GsBEDDXMYV#Z27in`KN*#sm-yC zzjjsKui=i~cx?PDVSN5gZd*Wiv^ZogLi;QMlzWNQ;TX6&DF98sH+~_ngCUw#=l$&a zEoPhs-vLh9?6iw*g;^TDffoz&qn%4{BtQ!P8xVaNoLN%nR0u`eS2%E4L4mSMVv9Rm za{~Xwwa}s+)PEI0|H!)wn{+gW;G;vI%7_xeiA5_8ti5KXm}yYHkroA$5^Zd zwyImRX8Z~&2~|`xJa+>HW5Hy}X*zgIcs>4GCZY0ZtbaH`zKnoN5RaYdAqTbX1y|8& z6qWCXB>zr!kSC z{6)D=*Ov>|BILv#2fgaqzy}*T zX(DFaPjvg;P);0d0c^A9>N4<;KFXz`OTwwk9yV2+@lf~dy5X>Nf#=@pFT zG&_bK$Cv^Z&tHA2M7o$OyA0O;{P>(w^@MedX8+$E$l5Li%TqK8Kvb|Ui0kRqQIPRl zcOp0qqGbeMo-wM7y@sm(})|5{A5PkQ0ugaD#0T1=z z`yxPv_g3DD>*(@j34>J;(U`8g{M=k2#o0$G*_dreMOyipp=}mA3{H$h>@{DR@(_JS(0F7)Wlb&uiU zUgSJS4P3p-kupWfX;8?!C*9dakf`fPvFnf!y`Aoa+ws(M#a?E1RIR0Qri&s`QvH+Q zX^fLENJE~_EF^6yJm1sYrjd_NeWVwqWd>7TUMss`kbZZ3Tp^Qp$w=I?EHEIRiL)_E zt?Qa~dnL4Z_{y>{{_4wpr!Ug=1Vf$jSM#h|8+N~+e3v~Xp-SU>5dplt&g)i@cJ%X@ zmv2^v4Z=~aB7R@&Uj-;YH7~l()qc~)ZDJD2=VwN~e2sr+CW;^{BsfcI_W?DjB+qWw zbx0@=%Gg5=?2rWNG&P#fNFZz6;|(;`R$bxxw%dIJ3;L$tO`p?bXtlR&sH8N$(P6pe z8aZ>3DEA((dD=EBe*i&6AEODC#!6XauWdP5b%HVyFQWY7SK4}vFpc*QJubb#7D?P~ zEWO!>OqvDijVNy7t24g%V$YtL){VT0PHuX$J0-sPkfSN=qj_TYa`@v^L&GuZ!P%{A zT4`|1$obRvDRrdL2*T~}r3bpQiS3g$NY?vlW0+O~+kI2TrTk62MK|2*H}G@s5RwHU zj8bcQmfSXVxI-^;zN%plfAyo*Yiy3|X^()rCX(;ws>H<0V<}->1NP^{1$uMbtz>UJ z#-~*U8P(0#RQ2B*aL!mCXo(e9BrXN9-)<;7+DW+g^pFuW^qsZjsz%S6Fe6o5P6Hmf zyN9gnzd%0l#@H-78L5rjEdq>f z(?g_j+FJ@$o@|T8!+Evxc!{_Z@JO`fWNWI+uv6Wg=PRqm$b0WRJwWU6aW4u@=ym7u z91c8v!BQdw1WN|F6wNb1Q=bP`CH-!od>`S)ma9m$^-uGu8RT-X6GXnSvYGD1iDW*>xIrcigP5UxiUs)rR_#UR&>65f)r*f2A!@h_8p3X2~yDP%F z4yizQ&CQFHZTw=47OZZD;ehfZ?vHO(lqXc>zN>!Orh!W&h&95TlzLJvcj9+(n%Weg zGOK5a7Pk~EG+gfUX=W9uv0(SmsrBC{zSE|K%Q6P3Qh$XR_WodChhqO+5D=i7zW=o!pE0nuFEQ^tO{x)Qp ziA*^3xOcbU+F{V^Haemo4=o6H3}5GD3$|@)0&kOLVPKHbU}uLB;oke)w_B_Gbaz3E zrc{aob1?o1yOkqxb!D@Eb05}4pA5kZ`#a5#$vH_UpNr&_8@C$|JZGSK5adhHew~R? z2RVj%*X=pc`K%&9lt=vwzwD_RZRAJ&{?26juzgGqgMdOyt<8w)WZb|o}TBJxW#5=I$@IFm1s z4-RJ9KUbS3Rn^^!9rR0jWq&XAJrkyb_Yy7gN79iE$)&-4$s%xIDDdDS2?}G!YYotNfVCDQ)b+0#)x_44Rip`=(O_zp` zG(S=XFkZjXosJKh$b6uE`;d}nUyn~Vp?>MuF6J(|S9oC!*Wj3LnFnY?giHI`75pv* zWbqM1F>`Q8SZDRQVRcq%73Es1X5@j)^M>k`(?hkMt?*XFXu{LJH)I7hPZ`Ief&>*0 zFfuN{?YB7tBi&mWL`EBDuY?$TY~*H@9#Zkj3yARx#~M`?&u;}jA3Mj|K4ye#+T-6f z87|%AY?gY1;LW)?xg<@%=O{BjUB#pyDtABflecXH^Ko#RX$2+E;-1d@x1X)(eCw+RXo>%1a4Z9{} zijbFTJtYLI3S2yjNv{%_)Z+Z|aKE>Zk$em+nPsf$n z=Z?Ulw!|S{Z-yR3GFN%LB3npJ`KDV|#(u ziWme2b#G#dH5_{0%F*o?d5sET!NZfyJmBaulM2&!JI1q{5bY-)GITRAwEAYF4Jr$N zYhq-T^QCnzI#R*_ zd&bPWv@1#H{`XMr29^r?>*C@xrc6{`x2DEfHNWI(aM!y`X0z}Qkn%Ysrq=52W~G7? zMhi z6nQ>A&E*l1rA+VavBJ@aCx|jWvKvJzv^e4w&f`pEd^P5r&h#a!zE2&RD9_9krmxP; zs&Ofw^5A}T0ridd!K~j)mI@l(#*_niwO>wOkl%EfQtPpH9Ci2o@ZC-ZV&+ZgJInPs7e73rBsdr#D=_C?6!gG+482_J~6r*Zjh$of_9BH4t( zBJ*dkj#NN&EsyP*;MC+$Olomek{902&&}gBXKrYUTwyJC0?TZyU*H-1vZg<)jT6Z7 zM?G3v4Rqixw6A==SO@Vgpi?G#cCBfJBH&&m=m2uGwHL_WLpLkLfZQ*_!j z-ZHeXn3>dfYE!~j$iObJ#11DWZV+i%V`3ceMdwMpJ@Vx~y~Sxgh8}c>yWCwYa;Q7X zE3yus__XlU@JXU#&1-`g#q{XNJ|~RC4DH>`5bKx*t4LF-YjPJ63V!o&*9B{X-Q6bT zuagfXn5S}*5~95)FXs%egIU7AQ-6L;r4#Y`WoFyqE!|C1!_OaeG&_7sQ5{#2UsQCy zdcJpz8cf5Oa@4pSc^r}wTy&j#`iXc<-7}RS!Z@uaO9dR=fCmoiC(J>QPp+oTf^T8=GsG>eLLRfO!FO~S78^PcGb8(*48Y` z!Ws^?uUR%vY%qUa7wPA~xmxOO{vHXjjShbFrKB3`5xuM`ckSUf(akDn)9E~I_2fp; z>v|66)DHBwu#z@2z&u*&5fP`X~7M}Dlshx=(WvdM78 zT7&Ojr)a+D-8JU~Y?qAt4@2Is-;WFdNolb>IS^}&^So$mk}l;x!Ez>Osw`!brPD8dnxo^+B% z=vFu>p&B)1uKy~$-$VI;KGBc|X~uFaNz?hw%{D6WVCQ}czNASZM%*w}+A?&$z5Jnh zzpb&mx!6127gHClJ~D`ZI#ep$_)@5h=rFk#-DX?8)kw(A7{>GPhdJI8n>U^{T-E-B zj|bmo`HSYye+rSEaf#>--2p8y-zJ8W>2KY<+8I z{+UlAw%sk!L8a@-g8_3ydbj4{8gBWzEMdkr{Y#2T_X|X=Sy@$q>sl}6pMG{=z7lNJw`#T4 zH|ppK`{+wdZDlH&o0WXoSCZ^1vh&8hJ5gCVcJH2M=Lz;*d`2)eO=vMg0Uw;b9h(|B z$(;-`?9s*||3rY?Q30#!6t>ggQ1^yi@nUH_Dtn;%)k&lP$yeYuu*rWn^bQfxmDih7 zZ^V7s<*usVJ>1yRI^xwG<#?{~*!J_gHq%Vq$F=gwD-SkXemJKHAXN9=&2J(LZV2za zW&V0d>wRTIu=Q)AgV$P9w+Nz(tvg9T{5~eu!U4@jas$cpolDg2_3rd$_|&q3gWce( zb}4KA71nP)e_wRvDST&=ruFKps1Iq~l_q>Xno&}A-Z|e1iHZ+gA896ioyk<|ZTRsd z$bQh=ns;5ISjD&Cow*wI<2nC^{6VKnMR#G8vIgyr`dcLEbDZe3Q=sRq_-C5^3DLtzX}Fd9Y)ZF0FJ?JQW*-0eQPVx;SOVK{YS zW90aoMg1?*A&76qGT+!ngGh0ou-(hO!5A=Xp7Z(L5hgco6|>gC-&Uy+vdnlC8;(u z<1@*7jIn(Fy!*YC_wGuIZSmYhk|ngcw;m| zhPcB8J}J%_JI!6Otc|dO`&Bh7uQHreQ z2<%f@>c|oGk3vDI;^(T8Q^gOQR84)`SVL-)1(q~F)lR#sAl*Rj*a@*b$kK;an!Os2 z2-_-e3mFq;g&d_n$@}`|%l#Iw9=?%0@Kfv2ppcIkBq$=To9%SmW2?-Z-7>O5YW*#F z64A~v&(+l7R0=_sI$`_dGD=hRRJaygu2a&%B%N;;lJmTZ=Q14PTdgz1E(g>1ABgSq z=PmoVYU8N=%BD5W7FrsVOrx$}u<_x;Liol>J)Gy|ZWf zfu>KN=f1+j0gvaDQS|xjd9;tFX20ICf2O-*r6cGD4ch9z`+^3#{etCU>C0!w7QNRF z`{q9+q`Y$F9c=C#Z%J%x*lNpUb(F#IMX*-d@4TCPdl^HXRGgl1He)0b>471+9jJ)$ zDdd$yv$IULOwNh7OmwT7JBGrT%X?Pbk202_P|B8V_xnUAVijstVaR-hzM_c?uSfbI zZKfo__qy97-6aUhf@=Dh@C58D$ykf`ub4+#N{w6|Sc^PVC>T3bCz)u}jK3A48$9GI z|5)K*YF`(;Xmr!Umi9K)3DViVJHuc@aj^DIg2x`Dz!kR1_D4t7S5lv6-@hk2zOvm&&3&P4eN}hxWf@S=j?)jvTlB9vdO28~ z+31F0iZ?AkEv!a__;A?VZKkK(s9TqKrI^zkDS${PP`q$;-OMQJ6ILAZex6NP5uEx{ zn8^WWY9xK^7aU4D2Yxu;D2JkdjFgM~SDTT7%bh5Nipz10H1xCol3xm|UXq)Y{{UwU0reFQWpK>F z+XOzay;Q}lD&u;0M^0MKY6WIKrtjQ3(m=dl&y7w9&giJSe+$29w_b}>$?V<>(H~;j zpDW6;RUh|^E+uPgdcHiJDXQBlJ0f?a&*>GU++DdlklfD7DwVsdVd{9{9hX&)stVP2 z0tcfcy7)U?l5;54&87Tqq|8WA^{O?lk?CHYPsfL>?VEUP#JlCrW)>Qow|9=7UC9vo zI6XU19Nu~}F3jortB_%gq^DAk2@FC`Bp9g~dH5YjSYKH1V?l4aVbJ0y8aUZ(5hIU?mc7`2QiTgNr^tY zMF4$$O^BaN-tqA)j)cek`x`^|zj;es=O7|w?gxWDoSL^?arP$loW^i$yf95u1d1_T zKJuv|i?|2D!tjklq>0d#wiE7s-wPe474~8^?(h)H-!REo_%3(kNpAMT>O(V<(V>Fd zs3o&wGSsD>|JHJjTBtV?^!=bOh1Eh4Wa(MNk~zD2{y?awz>w zec4iLg;?5W<>=}{VFr^za^Y;U-6yiPp#;%vq?{tj7@MRO!<0}xl1GS;;YhwcC?LKM!2#S6B;Dqsr26_-@yHmHz?zsH-p5SyV8jw^MB1EKHy_q zlTCUdd7(O9KZ^Cu(VzE6rhYIrgV+Ka`d$g~UGJ6*6)y^bKjvrpC?$pDH}!IGbIX?Q z6A!Pg?t|C0*8*>qaqs-(HdNt&6RMcJ9~i>lbZt745`O~QL}t-LZS#(3off8nJr^>5 zA6zpJ|i5whM9!JLwtf|1OL!bDfgH|pH^H5XX}ttip` zkJ#S*#gv=ylWu9kYJa3|Ap%-F)d(mH3I>O)nWaXI?xddO^Yd zD07(d)iH&gxsUQK@@pX)dd)i;vR^|^AdE3ukZWI3D#@;=vj~D~E(qR~ywsog;Q;YO zPVmUFVBd&$?-&w}iCPg0E|IW_{CHeCe3?5-4(yuNy`t}_^0W)Nc4sa!E;eH|m;ynf zSDV?5T;ZiK#7$yM&uM3696!42b$oG*jR6{8)HK-wJ_N2{81Uq*F^&gaEC^H|5|1P+ zy>Fd*nc*YET)c#Euk`740yY93YR{V2-iQ6qA(xiEhwxMlnY-U$|5ld-3etTS!Sd2? z2x}J}fMIj#suBrSxdWfJMPy#ZgQPn)_xFs$50N!$`1%RECSy`!t_>y(45{OVZKJdL zBOEhRokuv3E7V)oqOCkWSdd#62NwHel-_Cx#PnPA7WG%Jbj;Pd*2|VKapYy_v;-Pa z9~2H!P!bvKi+2*QrMr#N3C>#;tJa+obF(YNS+(!=#h1iUh=uVjMm*~M@#26@JHk{{ zwE#IH>Kj=R!RO%;y+XFC(|0={n$9@5L#;q{1~M@oRt5W(5hW2$R2PWP-qcH68-D+l zFCHiG9bfy$eUL%=0(Jh-SF6e_o|*<^>r1AY`Zd*<0dBQ@cM0!)Sx<>pH08I+22%~M z%QWpKlbz<Xg^l@e50& zDkg;;F5MeDN(r&3{IMUje%sU?!tmJ_5leIu#k#_FDnzud|4>kEAybUcx=}t8|8adg(jVNnlIE+ain^7XELi!z54$UUyHs>%~YnC_11uAuz=JR`osG2&`*$Ufv=cKb(u3Re(g*_JpOlYvGFu+Ch#=Z zB6Ah&1ok5~QL54kb;3*RxiH@TkZfq3<4^#1!c(17CR=*@mU~as58~{_Y=p%LZ<;-P znX@1TvI}w2cQ+P~L5|+8lv2K`zM%caJ^zJfNsZ}>F5~z`IgOwf-~mr!@QE|yN&DgF z$5-P;QvJk?XzV2~dNa`zB`fvClRs6R;zNoX5AhAcTx+gw^}Meyv=3AWBNdYDDH;)$ zBU;0KxLBxx@|~Q}>BiQ_Z#MKAqTUKGu;^f0z!`;*-=w1$zhK2G@zuZaZ7VoH&s5su zeZUt(r*u))qxQo4+WLa0TumUZ*3Q0>at5O71n^Ytn7FWb@w(hSjdj{f40BY|S^Y?d zC9EMXb61?~Z}}9PX3BQ=nNw5)91$YyWw(BOEk711m5ld~;>YfA@oIL){5c^S}!w_basDpMMb>t#6V}^>z%Hoh>D!S?HWr#B3x5$C#OMF5fOR zy}!SJyF%51|3VqM@ygNR5?NM$$DX(`a>9`O#=Gevw!vPNp|FrIa#nXMok4ZQPrBI_ zV2)%)mQHvP7u$Q`pJZ~NK71+$3?#k-%ul-aCadHZu~T(vWk6z88%?kEau>p`-%(*4 z4?9(A9U2ktWgU-8S-CzWoFg9Q0wW5F5qx@DL}5~^9BF%t<$|p8TO(zwE?RfYS!DZL zjGake|Mxn=H-p`8o|0ZNkHtFnjkl!p^As&96^Nfw)mCbYy`aHIJWd?EA^L>jMn->_vgIKx0^-TW5+%|U?QLxoG-|W4Vq%fdgMMNd`o|duPwaU zG<|u7A%sJbaPGqus_@URuab|=kQm}3aU3YwTa-A6t}uNlrd-4}0I%Tg^aiFx_kbdQ z)SAoZm=BT~BR-5h;~v17jv|&1qhou|0;hZdTIid}uhg4eZS{j5@d%MwW?nF9h~$6f z>F-CTo$!=iNXqov^kfV~a>s1$!t0bhu>~dySDDK>QC8vtKGE)L$*B3Xno)*J+?~Vr6rR^e(Q9>&A>R>Up_d$W1+ z-`p5er=&RO-CjQ?n0>CM{Dr(_D}h}n&?Ig1A%n5!vTJsolu_|;Ya!FiYWSdi-XPvF9MrFF`;Lmiz;^AsB(57rA&QorSgd@Tj zZN1o{Fh#$IzxE7y@-ELu7p6q|t4`Us%JY66J$*AAyidwode(Blh4 zpz*ATwJQ!lV^&Yu}DH$*V`rs zG7b8LRx*e3Q;)5lBo(m5VCfZ#-WA(cIe9&$ipr?ncz*ka!}ph=re!03QEu+N>bl7_ zH%z;tp|A0CQ|`u#6KJZ-Qzd;LHsGuq``FViuCW$1T+5;uAWn3!q$|E)_C7x-VW`a9 z{$xL0KcM#21_?HWD6Ib@5=@5-J?)SlcUl3;uw=L8OrMF*a%(bQ~Ja&!AAhb+DnmZ*xck6wGQPEgBreTBDSz@wH4`L2VeJK+bl zvA@MjWi^gbWApb#1W%*ar?C-4`-7tKW}OG`W}WY5H9vCF*z;xH%hm#C`rdobhrFXL zkri&==W=KDrnc7jm z!mEuCB>@o;VRcr~)*Gm117sJJETR12WkCupuHuqi*2<5%gWyd|6Samb`5!p)Qp`nf z*i9eOzpKARv?3^_!}q#Fzi?DL`&i(i=ii8_d(e(cRJlWoO(P=1Mtwy2ushB&57JPvv>^ z1^f0F&+o6g3B}hTpK)LT-pkn7g!yF5|3Of+-p7sXF znvp(HBh=A;w%0ByP?mQgvb#%r3djGMF@2)BIBI2;?FPewSknr;5tNIC5lX}uGtJz; zuyXBz_G0+U2?IF0xJPRwwA9jf$WY)1=2+6MPJY?Gv6=!G=mlzhh=LMT8bQvFDlP#$pk;+On;U?Fq{Fl|9@= z5maBkqKcC#Xekqf$g{0n*G>Ke;ftM!Ov8JzH9`I=gE^7Fq+pG!SS9#*&*B;iH@gw!@*^ z3WHO3%*Rbr*}eaYnVpn~Y0ALq(_INE{tizXz$sElikil;YthfhdJ3npZ=xr7&uuSU z%d!LUcN{;S)8{SaC$#n^-8(s$sfMik#^?ZEGN$)Pob63lx)J*`(8Dq-eNc zq3jwdE+K_l6%03qp3!K(r`;}%0ox0%Fw+aJ`wegibQ0A)!g*-ceYmHCoVtB6IFr#%OhQ>ERP5*!EOrx@q* zh0=8g=sI?o$g55EAXYXSC;NNT`kR&(0YsM zl&O~>S#0UW+DlWC9^B2yr6%d4?1ZBNt=#tUTT;%=NIM>V-at~Sw&{zc5m)2cJ00&{ z6X3j*d=s8)Ushv))#XfkL@c#SntTXf-%a+cPgg$1*WUUx3LVR)6(49cn1+ulqrws? zX8v2Tiadu^{9|TZ`X$uy_X%wS%9zMpl{>QLlB0HGyQBVsyE>N4S}xY#m_N58;zH;l zjN8jQdZNKs%APbd1mupwXy`uMI&Q_XxF5UJRZQm&Z#Q}sX7%`Nc+rjB{H_P`X3&8x zRo`r*$d`k!N^9RrY zbEpMupiX-|{zqufCtEs;DG|orc=fe{{0e-==x~CAHk;+8a0|k%sdfoRBG2tKrY+p- zaT69ndzbxIm_>H&r&dLGePojlDBsMdRa@7nfIag4>p79*TIXLsj@nG2=*NPAI;5z2{rF`=v zUjJZfdZvMmn6nHryR%?m2yejqJ_+7idxBXu*)C4|>Ox!j&l&n@{Gc?8>RCQ^4;bDm zUR27simB_@t!h>+{{EwOm6zSqqUJUDv!o9fTMLoug9fkmbLKkMD_ozYITh>V3@jtO zWXDgBcP9FdhM6Sc0;}@b()5=HfY(%tGM0y5EbD2D5|^;jDqVseM- zDfDB8W;WqM$}*J2x&;WY4%^=#~t= zHfQUW9Vrgs4M4xL^CUDFwbgNbAO0LrBBA zj5A==pd|coEBd3&V|hAv>zXpA%dKl7gmg0Zsljr`R*i1Niu#u~*c50pd}0N!Dz_fX z$XwO`R5kNNy8)GtG$iWMZl`53rh1sGa-2x($(BbaV+uI&{KV1|+M}fHUZ#)QNFs5- zlXIcAIp@VqkGaDM0omxnD=@ zkt(-XwydR1xiL&Oe!k)u;9i*fJs_PDUmn6A8+kvqGAyH>Wqv2kk(twHusV|P2b_WY zxh(0ZRqx%9&oYchI2O-FEee z`eTvGPlTcQd2~9iA~u&{His}8zB2tBW4$8G!Sd6t_+WK?S4!7qfT9$k(i$kh$b2<> z;z)mE9Jv;5Dq2emX>~(lx$tyIb|04x`zwCL+@$GI@_~CmY@jjVjtyOn%}A}A&2M(DpfFeoqj4RR>AuVYp` zD7w>oBPq1Ph!|%w2A&{6c1Yhy$=|fiZU)koytQVi>l3k{a4+RyZs|#or2UT~@S3z6 z4ZrjdVSdx&M6=d;&KIK>Q2Xf=9LU3=_=)F-B8 znK=pNqe53^nm&6tTPRc2x2(KN89^d@goSTMRZ)#67?h~2*A%^25a=&IoS8!*j9gC) zDk<_2lTgux)g0V%$m@@mB$+GOj{Y%sK&GeHFXK6Oc;d9`Jy+eaw5}{3A#=E-@}o+p zKhMXr3V-JA_)2$jeQ_PfwdowtNZt66u0a|FP$ z-1SFpBP7Skg5^4kWLi6VkfqN}U}QoF38a>5*y_;c68Hzz7dFZ~o8gy_Zmha6cV6Gv zJY1jI&GQkuv00fQ@uYp)+>7%G?DLk<(ox0oc;7aSvC-_l7ko)fgNyMRb?#=ODrn26 ze#{ecT-ZqZvE#5YFRnH4ZkfznWRUY>oAc>xM&$q@#5O^8=5VDR5pDNzaTf2r9&Vw{ zdtTH?E(Hkro(D2`5uPw;*p~#nZZGqyFixzYFxQaXZU1y)wS*9?o8}hS6><$`r(aCL z)mx({+K~_LkOjRTBI7r0FwL%*`Wrvn^trp$nzbaVp&e@}joZOo1WlMEfDhV@VGZmG`iX|t4T0dAci@L+rT7o~%KxP3(1&3M zP*X*Qj$;{rDgiUSjrW}sq1WhSN(*S4*zXISv6NdSoK{V=B7_4e4@UjAvnOcskpM++ zJW!wK)= zP;^d!p^E?v9r*PT`Nhy(0fsILF!W@Ap(g_jJ?R%i2gFXXXAHf?bWH(Z=xP8%N2>jz z=%`;5{k{a<#SZNN{oCuzwJ}qYJ4W0m>Pjc~82V>UGc!e|B;k;v7w>}-rp^8E5sR4gNv#g*_Dy_ zx`m`QD>kUw94oEkd^Vhz#&3OB0wHPd!(5INt4`9pdc+MP+G@{e zeE;oVEPkaNFMD>pd|%4LT~Y)%uNJ>CF&kZ|upR+yOSibs<5jG4ErIU1Pdspftyw`y z)=<@NB&oc`hOo!-><+;=zt$w_G9`*)Lm;2E7BvH z$bTMEM}b3XU!%dT?QuPnYzf8p|2epm{2T87`D5$9;r^dKmi}kpPCY;FiDG3YrbLyL zQGER;=KrQaJyyf@zr6e9!;ViC+WU^41cimUb(IWyu63@3&db80V>xYUwl7Du^-zfx zy~{nYmo*CsO|P6O7d_P`$96{l;oT?U5psu;M8aPM4mTVB>D`S+c1O>65a8Wif97bA zw4Jiy2`UFJhlPwc{_yUjFw;MhH2eGBV%5`GK$7OCcXtpYUCrFM8Yf9~mVErvyDR@n z(){h+<^S^TXW7W&H(9o$ZbML;uP(OyS{Aix9aZ``g_iZ5KgmC8vl;O2zjBftzjBfT zXE{mwf0>h1@tzIMS)J{1`7PNe<-S zDM-x!ffVF#8A#;+Yzp$v45XJXR+sTv29oK|6eQr?|4c#t;oZF*$3sxZl@zo8Gf4l# zvG2_Jn|iCLO61nvpn7%e&{VNnEoy92HXu>FGW13=JsJuAgU9?#M{X1N`r_ZMw(S;7 zAD^ASCIv8lH{zj(}9Iuho5ESs1Dd;`5Q9vu;?`ikHX!<}ri+-+0Vl`N)6s7$K+sIN|u;%wx{-jeqbM zAmM2LSHiIhNI1UsuW!s7k3rq5J45=f!VuE>ZimeaJ3)lr2gk zxwPc2h71-e;-I=b8E} zpg&TX2i7EG6jvl`lmE^DWt?SzU~2A^ovUqU8KB%kN%Kudm9q>`>RAQ|0;GWUqsIK1 zhyB$zi-x^8#p@Z93Cyjuw1wWTIE_GUMs|w+4g$84KQllssPEgbncTs6SPqdeS6Ro!+qROV`C+G33Q;(Dx7puPWi}SQyRvB~Zn*37r zbXz>f&h~I6+V9WA{gNGn{4cnpj@{PsSI^*%0^n|717AH{`6J<3{cb68e&#yEzv4U@ ze-vDS6D`xIeJ@aOt<>1$lyqkbay`R4bKn5+;fj(T^7HH*3ZsUC=IZbfOKnX`(ob~v zmalmIYl?$fZwAUx|0X#9QH}NgPXwp28F2fAZ4|P^zitrlDk>@2+SsC0swfyx?rjuq z|0F*DhcQoi@QdfKPiT*y)nWyJT5SEuSuOTF&qw?#_9OQf&p#Hc`kUu(h>`qn^8EdO zv!DOwYU}^aEY5$xesBrLU;aAQx^)1VODO1P<`U`rzo0-L(v-;Xeo`PztM+H#e^Mal zFSuP&J9dcbB*r^4{pD?4o$s1L6J^VF#4CI4m@dP3>un<&`|m=8=lmD5nY+shYdc@A z^i9KsFT-*cH|nZZs~1|MR}W2)Hlt6rk!q9r)h9^*vzSnN2sta}#$|Pzokl*#J+4gL zdAWllvtN9`pc%8*8=h@5zZz57uXET?W!o|N*hINe7dvNPcB*i3_>M*njTw>R>!HH< zM>p!b8ms+gx`xdif)0IP*d4DDB=_5Uh3lSoCmNoB-q|c2+;cwGPD&X`iUg9JWI&P= zd6wn0^kDX}A_Yzd^IOT=M=nlhcNMI=K2`PF4_DX&LC-K}`}Va(52}i~pLZ49zv)$2 z_VkyX;ycF_`Mr{QgU@Yv8~Xt^1<4HwGI~Sow>w|)1S6*tu;NLt7-ni{a~jSV&LA+a z;$$@QPz|oZwKNSilGJ=lvVg(?a=;KMmO0)As%C0GqOfk}@L~hC;j_v?UB%Yu(OATT z=QKYn2h>32AjlY#fxOVrPoJ#q0Ue`b4W=^f{fQVy^@*_Q<{m^j?mLE{-l_@br|J$h z7Ye^x_6d{EvDs+JNWnQGvS^y?pcL8UO0;bw}V^V`V=v5#RV#FW&|YFaL1Ef!uoWKTfgIg)42MmLYvS>oM!rJo80jug9HT${T({Nf!EEm(oZqDx)Y?qu7}eBV*1^0;=7 zE$7eM5d&KVqABmfFTWej`}=mpkc#8gsTkB~Gb*=>0`_0M7g5XD{Qr6{Lg{~bFGAqA zdl9W$S$UCX_aa(=dlCP(h4as3WDR#ht2^{;&nemC5?@%Y76$ zR9LV-D#toA6a-*9Qj9PDmQio6gI&zN`SP&W^@Dnq2U!LPX%Qi_vyHn)`Gi*y!g z=d()UNzJBX@?}GG3|hpOv+c>ne~|y6c-UXT-0dJgI7xPVedBm>fq}%e7kFdi3!T#t zQkA*yFNA$=4M@g<`3@JfM}1!+QZX2QS7plx5zeFche%6 zOJO(AnRt^{xowmzc65s&>h@wm?txEYfcepMd^`O6`ohO+Z1+TU)l#gZKW32+Ghi^< z6HOTDI5xCgACgb9XPL_UsMP!<`+D=OyAwvAQ=dU!-$|F#_A?^rGh-=f=i->6eH;;s z3Ww+D6c0yWl5^e-iiuDc$#g>ATu>)rc{R?`0AY*3=$pSxk}5aO)*#CsD0PoBY~Y?{ z;HgV!#p_;*1Bl35&AEoyX)~GZFv|(zX%hHD8CLbVupH&~I0vIRNUX)1ME3~hmBd}o z`GMs_Z~wy;*vX4tWSFn%YrNZ-2qIHaLQ4I*j{8-%W%bipe(SQaqE7^VGa&IZN_Sh zrH7qbVZ2}T8+pjqqc=2@w_1~klJcj0(pVQO1^PN6n`vog2oj&hBWh=Yfm@|cOQnH6 zrnF5ergRx~3Uus)*0c|cknoLfw0jEBi>qyyaK>NC5 zy9i;85XYh-H_AB+xOqf;z|&&7H3j_6x0rgpt=Us#Sf{geU#CNQHiY(Q4Tkot^#b?d z$WuO7)1;)01GncEfVL|wrhBt3rnv$VGWCGClscuv<{EJ2D70r{5U6JNO$mJu>6xzu zYTg18lqutFFN?iwYQ1LX^Qe1DNtr8kaQ&}Z(h)(;uKB06>^;dbvgs0d@r1mL2scSi zg3K)ITAa#P>Cd4zWUS*;UhPdDb|L!A#y1HEkNK(FXh??3qwOpB6vTuVZe*2`Wl#7J z*aq#`OR$CdI1L$`>QAi5ryP-9h@*S_^F~KG(=x>aJm71ke77h#2!%mHAYm{ZBqWSL zm26Sao)h$KQQRPc^MhEp!2H4>enAN8$~Far3JN5efFBkc7J{Gu0f8V;2+C%g;tCQB zMhKnzD_Bqv0t2DTgoL1ALG*S)!on~#nXsS`=zKe1KrjsSn+9OW&v7}NxhzdaXFT@aP9L&1Rs7XqW+pY=o62MhuULeQUuK!CxhtGmF8 zAV3IVw7-Id5Q66w1A*Wm7#xA#PEb(rcNrM`+w(wRA@I4rU_oI)VK4}gA^*7|a1b0w zcLI`sY#vw$hCp8mu%M9O`Dp?YVVE%bAi(AbqALS|K!yIX-Dl$ivl9YV32k7wAOeoQ zZg4ONa=sma9}oz7z8#_=zxI3 zpn~UD0hk;VBJ`WmFvKsVf%*SsCkPM-ab9Z>Fkd0G83QsQ@NbxbBM{KvCIW+_PYw(c zgd+Z_%-Q;b1tB0b6FeJO5Pc@Vz(TO|`*{W=@J}EC&-r5_XEKQ3KL`0a24KDC`vT)a zp%`Ek_yD*IgFstJKqtVC&qD$%hya0qYX=8}= zk$)-=D1`w3w&FriIJ!lGg@mDK69>#pSQv30i)W@Mh_<-E0)YV=|EDqnz_>zi=I(LVPFvWx4v)~ z{QN2a?oJr;ryU{x1Tq9B1cso^4hn}s(A^Wz4%h-T1z~51KQ9C30Yh&G1-1mufRG@- zmk5K-Yj`FTM0ebPGElT-1#pZ&pm~Wi%)o@vRt63Qq6pdw0?GiPABmU zXZdZ$f^D{n^0n2qx8Gv{I z{^LBh02vYv5XBE3$!ghlRw3AawjLLnms$7D0qz=cDJD3?_&s69j{h=qw9R5ZLCw?DMC2o;eV}kDgaX5D4&S zhoUngF9<>JD+m@sUqRr|0|EWS2QdFXmmeVaQ1s;o<_kmLW1ug3dFq)MBG63p76(sq4`2isuMUG1; zZ6pPTBBX(6iVzf%l19Mc&>OHD2w6Em3PMQ1tZ>_c0I^W)Ps!rAZ_spvK zW7ZsF)O|f;++!+Pz9m*ZfgF@MnHZcVQIQ4UcFS{`M>n%TXMA=Uqt7j5*8HkkCe3Tj z!A9*PGN*jPy)>j!uKcrrs%Pt_+W7f5%A`|2Nu)eS-{y^Bb=b#L-)y=pX`bp}D;x-{ z<_d^;5xrZMRD_1cZ5u_4br=!sQ#(YFZ#%ryy8FF3YF`|e|1Jj0n!{A!XihUsL?=3c zc~qKoB0B+sjV3M6+M!w~vDYse!;5Qmq=N5&Z6xtH#VI^RMV&Re3GbJE#6m#^8xlHb z9KV-y%wq*n62&4uw%4-eWyb5(<=f|5oAp#-17fHkwQhLD74NR3(H><6Z7Qk=j!>lR za2SM#`Z>F`P6+1pd#r;H650BrB3%Ul^EPk01tTMLaD8meODj;?NwQ|ZY*|BXW)dVJ zKtXW|l=60(?hgbys}aA^jr9@qfx0JtszV*|FLgzdVZ7@JW_xyy4T<5KHm~o4&8}>6 zZk|~+Nj2$M9ipF^F<-Bg-Y;4lp;SW${lS^g#exueAh^g-wU3a2QSUAg!TqPnpP-}= zX@K{&WHPXH3N|icc4B5?RbnPdb~a*;|2}dObN=^{o0u!zsU3zs86G?gR3dp@PD>r|MSw3rS{&;~2^UjX=Qj zr$t7EJkDDlPJO$hRUh}oQPtJU`xUS^(FHdb%{VPL5RFoa8FjUY^}KyFLm|XD+cdZ4 zFs(pFZg>UCk<)%1sHT?1OGC^zVwllg(iiHQ)BrFPtb5+nW&}(+n``gvemCjX7v57; zUHmRV5(-*p41g0y2pDE`tr70d0_Q_>gdy1NWw*;t#|6P#^s@pyyK)ihg#*;(_l>~$ zcYgr=rI4lvc|1#?3e)EIowjn!$bXUm5Z1BHl(UFM%kQXxKPSt9ckKr*_DdzUkH=(+ zd*MI8kE&0z(?hkE`w>^SW~ur>%weSD1bRDh?EQ_h+U9)VZy*nq@H~n9ipItJcBnd% zAK;T$%dFaD3E#6w0uWllf&f3sqE3B`qeWt!UupQo!2C{?`ITdCVtmbB zO~!5~1bmo^^}blB`5Q!ral;NSA}Yfmjt!t_0Xb9Br7^Y7JXE;Yl_FhK5-*!O(n(Bz z{zf!5GtTknA3YE4-!A#!l;PEo2hV8z6ZO$OQx~SaO|&1sG|;8+7Ay7TQ?!y3ocOFk zk8~#P0i*Uar@%8R&USA4bQWSn^kiPBFx-D9<3DNlzcP@8nJrxf2+EKQ1&y8F$PY@B zED6m5$mQnCJQ_=*jw&I4AfpiU$+=%wy7dI^GVXi=Wim5kGG$^j7=AXZH_)pzlgDY3 z9^0zS^+^(~y|%Sqe@NmIM839<&NIJD4wuNIkNXK|l3r{=d5WvwMD1{Ju*OyO5E^A* z@Jb306U$`4K0>0S->k3wASsCx6e`r)6y$ja#2^Uyqv_2;{HbU~FgBhvwUwSLw?3T; z_uH5Cl>d6W$T12^lOJ%7r$X2`SrY$zyLlXk zmn~hIAvY#H-29-7(>UV&n69W~K+VELeQPZpD?9hb+i05|TTNSmy7}kJDNz@E+ilzd zc1H7BWKb?cD&vkww5z6b^)DVTj$vpm>O8c64#(RFz$c@mUIgM~9hjV3Id8Lg4S)I+ zeUGNLG1+Uczl)k_#@w^%O#YRzQdV=$IF-6RZ9K{<<{+Ys$Uu>1;OC7Ra* z;(gNU8r*i0&b9yiNWggOW{hzEj8wf8w)3&)IWXm!YT$;qU*70ysjVgwLBWsSHA#@_ zb&Ob`eH5h1-BB-aouzb)&CVSp5$GgM=(W3JIsv14)qfmc12SJ_*tV0KQ~y&3F1DWO zr=WDT2bT~x(=p4(&yVX8)4z6S9s=I5lW~64K6onKEUiY_ktsi?D;L#EW?XDzKLAaq z3uSc?!*0dBe7}ML640f`;kK&}V1@*XD%FvvEY63=6oA0}5+AO^I70P9f>w|`$-W*O zaT&mF(<#M8r=(=4yLoeOhh+{s&86JqiT@oQaw{O_sXR@{V|+X~=V=j6G6ZR9ix(ew zjC8Q-cR*_Ay?|rz@2bsrC65R#H`)?3;G8pjd$|}d(SNdjTNL6 zFA&Xf>D>w62%lr+sV$W(IRZ`&kn!Ue*u*Xo7sB@_2Ng2}())oQ?4zXd2OLvyL==aq zstX37zxw<0iSF_znrSp03CKY3C_i~rcv!)emz{tq95-S}FV~{5m@w6(`ogLsF$q-b z@8xyIJvT+poB$$GpC8OZ%vdC<*K$f~XW}R+;M_uLK=qiYkWGC+=;I}hfG}8iGD^FV z;lQ%5)xuT9Vd$xt0xJ#i1cPn}y6iDYU3^fO_ZggnU31XeB8))msqrLNon&bgtYg~b z6H9VDydc17EWD7!WM~5JLWDHTadx*L ze3uGYOR2boQY03y2d=w`McZN?rzH*{Z&PLUzEHchOM+>1D`sYRmA3(?vorf9>G>jY zRJvt&Op!7q#QM^CiPD@#fFtl4MWk7k&$8v+S5L-g?{(vlV;2L-fO(S?ymEo;c&@d9 zj{&4{xB({9w~Rd(V$>WEM4D{(46 z^vpennxn``nH8dC&V%3SzVU^CSlH+XD!#nrLHYiQ+HVR(=id-5-n0`VZWmCYK0YXE z-BzAHg~>6%M!87f*U6{om`4L=vf2S2AOmEmIb*YwpW=h&Y93Y^x%Gm?Af7I_s2He| zVS;Qf2J5Z~*TjD4>(Gdc#xKZ*%Ej_xz+0e&ufU!qq35PAH{;uwPNqmxHq*7+KDrAj zX*_*R2r|JE@yA!MU~2D%mrEC#E8jcPY!Mp#+G}ASw+5tt z1t=(!lPa3r!ld4Bn=7cxv&30jTp90&1A<6wRs09j`n3#TV#rOLSX&eH6N5qm0eDjd zyPxl(QtK33*|U30X!S4}(gM@>ssa7j6@tXjsmYB~!+VdZII&EEyr^W7V*Hl4g!~oP z*MpJ?w=Rf(+vliAVic}U*mr(W8v*)>LSBmrkBr@fOg&40R3x>&v{ZH)TEZ{+uL?<# zmSWGV8Wp4%DHWszQ;R;3$PPSuUJ-#eGDzWpW;?IBN6xCDj^3rBtlYPb=U^Afbau;& zFuCg@Z%K}@Fj^n^l@IsNWIT;TQAgw$Z~YzCM8vg>*clpGx+w3EtN!@A^Z-@g=7#;! z<5_%Sw;6WNEpg~5{VjhHBO<1CYBrQ#Ns$2#uAqU_1(E)bqmAK)5HqWHN8$zuFEoZt zD0M?1+qlci8?gAMpI>^3K3)3!CaPf-#q{J}u1fvOI=S)d;0IxPoo+vTW*pn(PfR%G z8 zNwaVSwGtYxEg=|*S&2dd9?CK0pOnFOWpP%WS`mystx5KeeWL!auzrvJ9{=aVOOJZM z_Ez23)`#z-x69*NY(VOv@BlCEl(81IjFA8)#(VY)U`zxyR|wjvi zqkBUC<(pL`Q3BE4kdO6^Os2E-)t_hZ8j?N}U?WH#W^1k*2>X@^9?L#-k}5y&h&M5QtW|H|_MkB&{2x$z3|-nozC2ttT07OvR35*Z#YV6&nj4)YZX?ynoTS1*`as=sS@ zt>r?w{`OsiT!(X2yJCR1?9%(*u(?y15!AgvAb&noQ9oay-!S285}6f$(GJ^q#)kLD zkEFCCOCY}GxvzD)z2w9k@?z>lhV;aMq|Zi#NKWa#Sa@_PZ;fELewy*r_yS*b!huE{ zrW-FF02Zy5?0&zT>1i+rtthgN-buN?*BwvsxBq0$c213D%znOE`(D@FS!f)W*F|qz@QZrJh z6T;nMrsR>Gl_tDemuEhret@Z=s0v!Wh-oSgu%}Pznv?^&{hNU}BkCXSaz(aw%GW)HNH>MbC=fja^%B_qT(K$tp`E;PAonb>X z8Ozl5Y*KMq5UI>@&X@ZX@jT<~-o32G<0fxLIVj8Kz^SzFAIsS`Y%?aoPFD|?~M=nkfYzZws)Xq@6 zJ9?B84(3eUq$#G>m46=BFVD1iBgt^10mruU<}&*7$eID|Kb6hRJCQ3cOaz=$g=2Ez z1mS2C7A7y5(hx7I#-yr>s{evK__@J)9-1J69D^~CT;nPdF>Pe(W%3050DJKh_^m6v zHq40aD%*%QJyf3DbD;fa1|SR-_+iV!xFl_Ut~&1E9P=8%JG+;pRMuUzDO_tl4zLkn z;uJPO)Kqub!1@9mz5|B}mb}`7eTPkIX!RTr26Y?3Spa(JT^zQH@m`(s_C00xWO%q= zJuD&SIIE{dQ_F;UtfZkY6n=;&JIYrM2g4$~o&>|P^5}Utj^0+VSo$=qBI~~=wgJPY zc*EeBR;QnVljJ0qGXAWu7a-s=0ESP!nv8zVM%iWQiD92G`;53%TTQ9tgcR+hU6HR6 zdg~z}Y4K&0EhC2}Cgv3LvkEr{XjxRa&NcbFkCkL>jFh>6gTHoO&N8;iO^fnq^Mq4- z3ao7){zZ!lQ_@{fvKleu+6z!8a#SEN zk_V}d(?DHIEV3#?A0fdN&vi(hd320-o+0TiYC>5;yr>VaY^+n57rUN@tT7qW%~1Z` zs3m1uMO=xE*_v-X&jdm7i{Dx8z6t}QUfY}6fX0oKEbozl9{M#+_2D%psa(o~m;@#z zAZ19)MJhbub)SIJbydqdDqz z5vPMv-Dt)51i{Y+cl>yot6fjNdBq?(-z-h|;*RCWP$SbluvXw25LHLtcF#fiJH|R& zKm1C=#%U+!&p!VO2h7=>UxR%FSwRM{6bpfJ0hp7?fyKq1E$tx?w3KW(#i9l5t=1Jr z_mzYS^BWXW+I^t_Iwv&;_cf0?v|njR=d3sSlMG}CCR2H#rTgSh#Z9f?!yvrvOSwA| zPqmg4YXirxB?-0wna{I1ec`#Rf6gZW?+)vj+VScjz?hdCr7S?Az&`Iw+U}u~oX3y_ zI5(d@F1H*l?uY^VY!E}~FUtpSrF-CHzsZ{Q8u$vk#Ipz5t*@13-0lmasbyF?SbTqV zguZ7w{VPFxOMEfYSZ0h{^k_zCYg~e1pcgAtg6zBz;hH-j-sKe_-23`ndAnP|E-XoP zS4%Jq-nS+LC3A5%zHTge=g&aQ5FC1EW&;`dEw*X&j((SH*BY)oC`?p`ASldR@!5hb z2zVik{EDW~8RXJn`i>3+t1sL8aT(v|97Lok;r0oA(wlPl>UW&+bx=IIk`_nyI2Btf z*H!(V$~LL#%&%Pj%mI^nNv*)fNSt6p@D;)mM^y*h51VKQ*yP^=Kl&5AQiSy%0Uxkl z`}0ze%0{jsm`Hdyzhta4v+p#B62k%leWoc!%~N6NO)k_Rzo8|OZHoR2F1&t3QnPXs zv+(>kMf`6Kh5r{c{sTbLNi;!elhyIDz}SiZ6E9NnQNTnilFRX#09vG|CM6S15UGaB zs*a@EanAdGp~7aNg!i`oP1N&52Q*3$=Hz)Nq=T9s$6`50z^|+2nx3xy==|x+v!0kf zi5boE2$FL-n79Xes><)W?z8*MqN!bdGFeZO#Y@2^F+JI&(ye^mmKZ_FC#9h$CSgfx zKHCJ0kY$Y2T#Mdq0OSltw@zlg7`IDLWAS{@wKZZ~wEL#|bS|t*hd07fRW$Awijvyg zJ*l2mxz9unU9o||ft8~ovA?-OJ#B~Js^8~G=oxfA3v3kr@I2tqA}_C0+#Kyp31pO$ z5~T@@X{~Xs=LYXIbE}Vnps;F3bSBneQmTSzIa7ybxuq5lKXr9t&`p5m(mJW!{V7Ui54DH?N*y`{3CO49Q zP$IynUBL95YO3>^K&#FkD#AM!{k(VsPTpiZ01&}NkU7PUG0l1pj9Bg96^I(if18TLX(>Z zx?G7NqZMC5xOjt7gvI5RAidJi<7 zB6@F9eM*F0YkQARqdRf|usoz2zEhy6n2@EWc}OE&xzyR z^ZsG^>R|Z2oO7J+BDFC+t~=XKal>K)7h&K)D~<=bB|$WB@{Vp8z(kel7Q@P{$bYij zjWA)ncEs`mTjDy?!E5|fiw(h}ae8z%TLY1t6}LI}Dj8L}?>r>df)XcWIBTgSDC1m%rlkGb>t-}* z$JB0WyNMw`A+kpv(8507yYF605v8xzQ0b@=_*lB%vyJ1e?inRWsnOw54G$P!ldf7q zsrQn2e>AqiGWjkb4lo&gN(ogQH73{I!tG?6t^9?PH#^WkN|5h%apveh-y0<7SZC|Y zxyvgcZmD1*gRa^^!dgisn(@$}c^|km1u=lK?d4hAeb!R~P=&t>D0VR{=C+QxKL`NX zF<@117!l~*$RM&&%l5&q@lmYAJ!MU>g4#`COzID;3aV6(jW?_xtSl2X5Ba;NW2SAZ zDNc$KItXf7ibVGhLkfO7KEI%o+SA!|iFHzB>1)PPowOEehJ<+P@P;mljN!;Y>n(=S z+D2i%-Fb-tM)-r&eMSz}>yakOpwnT=j~PvWII7Y>LRFR#hpKnEclbqE*KX@Vq{Uu2@Yx$CT9qnCJ6X&b(ZKNqc@ttImYj0JCg36r{JBmP=dEy$H%K5yX8X zaihB-)uhx!kk>UMK`+M4n=vhXedIwhyLgwCuYNHfqHDVB!VxRtw@9)YDnxu=-Nq6i ze_J(UAq1_{VlNlNOR%B~15R0FL{Ly3wi9?)5#pYR&kBMOflnFZUFjm>RF;|a8JUle zG-A1=B9r;?^S5FF5*ofv3sQ=2G$rp!URsJ+K~I6N8kd$s&QhHZ;eZR)z30r!5PoEAL`Ji5UmxxS@CPoZ%!t$<&VRo0t+C*=bk<}9 z(A+4iF7U5ivz;P4M`U%>R#=a%uVkpdi@h%vK}(&ohHyc{yS3XlAW)1VTLu{rep|`9 z+*Cc&a@A$BTFyuwhi5Ef#Q*1G8OpXUVZ8p}Y{A|dOANr3bYY?75-T0BN+?(A$X%v> z@ST|RI8=COIk^P0lq!oeg21z12tSlhxhMQ|&k5zbgAQtZCbV^)w>wJ%-8EUOTiDSK`^)d9hlhk%dQf$1rkI{cCn2}Q8C?RDdlUq zBx1xYZj`FB%tr_^$tIPU_CTHtPby^0>LM5$iqZkjn+#`n_CCn1Pan4kNJd*_K<}zQ)qs z1CP4d+8|_aqeQ)s`nArM{q;;lGnMJ&PIyk?orocmD6}-m^{&wO`mCQf_QG}R4isl6 z2|yN5LG)l(gl=Dmj!HF?dCK2d=Q33M{OL@*{<$;fvkP6qe~E>82#Kyor;b35GYqGZ z2r&ta@_jswb17^#)W4P7T)GBy%*B0+cMAEc9)|@x=|oeTy2M7YVheREa zP%kT{_mfs9FtF6PC#mE&;z`wk29$@Jr6J+94_cgxFZp1M1ely$L805J*rhGF6?mad z$fP}qzQTz$-*WT`1nfPY{Be*f?%MMLwDc2dPPD&QmE9b>C5-~)pP%%FLCyAi4}@E%fk|!!$c)!3#HI3>HmVNcRt6H5pF8P%_Dg;r`886X zBpI>|sazKli@DKkVtCp7YgiX)#nvYZy#7;J@rq48hsCFOQ3^eiDq@^IIk}@PTGZ9B zl)JtJmLzMjDwzLZ15*{m8aU_zUXhuK`Q01hbBD&?{&^yyWdOpSg&Zz;^d8^tMx#J3 zMUPHCqy>JEUFpp8b0>35lhYPd?E zTq-^L>{W2{QGj~!MCe5@HJw-)uSn>PZnH^YVl4qCxGN<`o?lkNR_!k$6wyvd$g(o z`R5?8E#*@*i&jL&kC5|X^b6YNsQZMoIeZ$zRBdOlHexa_+cNd2Doqi{4R@rw{-rDH z<`lFVb?aFIq%V88H8;+lfJS+(BxN+-sFi%>zYrTgEK|MXj@UD{62YGS^PM`c+wxiuKu){1XGH3_kOdX}CmZkjrFyt}_ zbal(Et`>jEAIET8UPiVylEs2o=8YtD4U*9t7ngXt2Ny^HP(}>EwwB5@M%c1L)XW7P zwA^r;;4Umu_d*hCi{4&@E}935KwUY-Md zt6Hh)DCzpl%UQ#(U(P`BVPZ68b7}5wV_3g(_m>pe^cKw=RalFcsU)u~Q5y=oYxU)N zB`-W?RFRCZPByJV;w9D^=$a|QZ|NGzD|hEtaxP<*L1uBSzfmk@5(W+p#qJsxMgh`K zMF0?#KkRi&v2ADd#a(&h!mLTmu{iqX)8+V%B5`i62k2HASJF3!Z?&h2X&TBY(cb~b zO1{H|gLJ9dkp=Vcy-y#sm)mPCtw$&~b%Q0MfAaTl^}GueUKkj`nc17VxF$<7rTzc;BuJS<0iIYalFp@`EnAW?E=d-= zvK$M}1Pok@cJwe*ll-gv2EKirua9a;_nxmOw69IR$Ox)}#=;aT1IcgY4&OjuzgFPo z@WYFv551yIQ7a)M(+++58qp5J-Nn_c^Ix~Iy$DH!U$99k0i~*>tr5SUul~ZvaykM9 zi^Pw#U2p4t0}>}#i%J6AFd58=EZ8l5&OK;VA95UT#Qk#!gD`@&N zy*1h0QO7!Txoc!@?9yfb@}rgfU=wkrjq9sIIyS%m19;*)4X89KJEMk>oH`>?eK zRznERX0m7WXiOeGn*HEF8*(n+jI=a8&}0Q(cUu;mZs*y_`?MpCP9)Ef5)?5*XSvDC zT?E;g3*h?bk~k*h{}cq3O}wN33ZrYb>(0u-6r;|U4RWXp!G12h&ZUOKiL4S zS_FbFOL5lRn1W)6&> z;8OV>hbh77@OG7+o5V{5M|{k~!Le?lWbzU#6&Qt3^E>MRC?M2)41(_%v{$TrJn?ti zf=!#9i@P2O^6>|^ijjJ*35*!0{PJ+EK+&Cyb6jaj$THb;D@E3Z6PRC(O?GaM#E{Uz z!fBZOF{CsU7yty$laOV6lW{b}zz~fMI%TMVqzpfqfT6H-h#+^Rmodk5M0 z;WjfDE1bTNF=mWJKl8tpPQTJ2%yrPNT5-~F1CsQbfj{7=JZp@n^>yE2)yAhG-qL<7 z+wqJ7iE5h?jDuG=+E+M0iJ)};-DhIqVkKt#Z(9C0MgM!E`7h9BVgKj-|FJjy8@2z# zgO?td42qp@$`7iL9!QKtlfJVHAo4W%|dBk$T?MxUy6Z>E&dO|?gv`cqyK~ry68PYY$S(*7-PX7uBxTqDUTutP zV;QR}KyTtUqCB5pGNa{@O~zj%0}OLl$aEOijuM1-nY2mBdp4J~)e}r*6R795O zeH3impdm0+Y9c)KY(q^M7B-4F6da`IC}Y5mQvAJw7s*Fgf(*y-vKUK@6&xP7KcUia z28hN8X!EgAQ5cI9stLOI>`_^_S4O!KT45<1g6;FtVaXPTSNrT% z@$;U3L25_&s>v!N1`ed-XPLD}jPO>X6BBN{%f0fj32hM6;K8X1%N}(E&`DMgg#@g2 zFe7GFzWY@jV)?liTEyM1UXbPcCn}(FPR%F#_ol2yjeUPkpzmVy9=38w;M zyuAiw%9~*OLpxv|lJ0hserk$W zm#xM(X}UzNX|jmZiZ^YRR5ySz+SXxu61IES*;&*tcu`OW&k72ziB{dZhPr%5o|f*< z&*@5c_)D^3P%wn|o`E(!#Y*F|u1Yzv4b?QaW;RvfpOddcP z=Wjt;#NF3FWtfxYu~@J1)4Eu6jAp5VrEFg4Szd&4^Yb>bMB4LYO8WqbY<@>7&X;Yo z@9KQN)_l3c7E9D=^xWP;gRGZa(+nLn%7(fBo+C$7kf`kSS52!j zl*)Q`R;xb+j@W&*8%JSH)dfSepD0qyC4e{Qnc1W{S=z!}Z!)xbxmTLsNi_D((G~BB z9Ptys_1GDPW|6s==e7eDrU#K$eO*YJOD-Osc0Q`Rx>92WVhBhA^bw#Kf3+t-14Sjs ztax4S6otjval^v*#58=y)sb*!)&e$SH!8Ctn6N`ozPTj4jb#JygwN>Mn&446*+PJ^ z>I(6h!;(!hGmRj)`1B=RJfg~K+>b&l3Yi$AbCvVD?~@9>46Fc?!YV#8*Knh~!w_VC zB$T)eg@`Db8my6O(KN|<3wbfJwy32MPtc^DhfSS%y!QqJj}1EN zX70OHnC70q1LGRHzHPr zrr!04XfB3a`p$sV;jaxhlsoZT*9saBM_guMzYU!6ZxEpv^43Awhbcy9vN5Edplh1Q z?Iu%J#5mih95FSxl_@mj6vsb@VeU|$md3;b@W*Svw@PHppg21VncUVpX0y9!XaD$n zbi;s2yX5I%Qc4aTg>^MUp=jX^R{#PMy9f;kzQO)_NdqwHY^8>Z$#d_Wf`eDIevfTjoQ8lcck%8fALFbwQ*Ap7O(#JasM&fvkvT z#Ux>2?8o_j-Xb;QfxarmXlH4~63mYW{Y@J)RhJDtS>c?%o>q0SdYNsz>+lji?DIm| z$4@U^o&u=PSAp!QRuQed)>L$Ig#Mn|EowkW=Xsl(8N>UvV}FR8^NtQEyQNIM<;`nC zlH@?@Hg^ez2%3&S1q=)Xo*!l*nJ3W!UPkF5%q?&#^}*N< zRK>c1_Xw}O6lNN=)i9TI`=w*Gp6}Zx`6g3+!~pMH(&B>OyxRPnk%vq)x9NIOmf5&D14M7Zc*WYa zn5Hmz8kICk-qS&a%i(T7F{+4BO17b>(P7wF2V;>@r`VI2fAWRgq`&vbrfD|;D%-#V z6n`FVWoWh?k7OysYHqic>}*po`SsPYoFg(=+D>sV#q3zB!FXYmK5`S#8btu^+hiW= zW$ts1>tQ5+2ME-w6`8=}tnLjfjd|B5WG5ui(_Jg4JM4@Jk{e!&9n_vg*EHQwA__&U zU4GzPS)Zy=7FlqaZ8-eh{{e7nJwE5{oWMnm!{Ia#DNoTXb4*TqcBwZ)Q>ZrK$5)+O z2!DQBZ#x7&@n|?APb!BNaE$@nhb%{k=W@sSjJ}PCrp|8?ur+#!GDPZEk5eogE@7El z4X`qBa*lsX*vLz9ZrC`}YofudA|~BQ9LRYq!yk%BY}7kpuEw;!}*I`DGo;Qt+~QJCXqZROb3_ErXqbhapJbs`z*=gMSd3 zoZ0%Np#E)sMG;2OS(zg50m^LZ=0^sProtufXLMCVq6z*7cl5!MVgIkF!tQ-F%uYcM z70Q&PE;P?CtcyPeN85ln$-w{s5(g3%xf#+zWqr>qR#XPJ1A&;|cT)fusPu7~!wO$A5r$UkcBA z*bMYfzaS9cQKrV(jZ>vo2Kk(Y(S~%osgfW#)t(e){;sx{yl1>)dvZqf-P}4HQ2M9P_|-*P`w%_5nH5sj-t>HgEY5aI} zx@ApB|E>Xiq(xdI`~ynn@rJMj^B9-Ahf1o5YpFkz^`r0H$7;yAH**Bl-I6EDoH!#B^FaB#s6 zd(Vj>Oj>);n?z1VMkTC8%HsIQYD!ouYdgt^2t|OoL_fL!v7k%*XdEg$j~b7wR|R;9m4JUzBvPc8gMy~%~WcR#nY2F*X#aM zj5`1>mO%c@2aT4vVRsoD6-CK#`oH~FN!9IssbYG17{6H~s5oHZ1D((OuS}XyW`!@uV1@G;s~fdS90++0IdDt$Cx|eqUop1z z>r$y`y_e#NGiZ<8WobkXon1yOF;Ut#%Q6Fe)fpxC)p9O0Z0yx--ZA1Qb_OWIkrWLW z8P&@hUQK4d+~pLjUDTe(S^0K5_mAaL+<*DWQe8U6Rn{7tn%sfOlPqDX&No*>hYA0k z{7^{U3MNt~Ij-Hu)j(mY$OM|8FlY4v zuQ;|52wJ*-M*Fv~E*@;zttXGmXzeg=pO~XL1igFTxH#2LHna#ML2J0Mml^@8wo{zS zD5Gxz;Vyn@?ZRN1M`U=p>rpRCyNOmVDbi0a5rW|oU+`i|f`1jnKAI^a=iBp|eI%A! z7^0ypsra_YtytaU8zlLuu9SDLgvW=BOG?2B7@)Htr2Sd=@-iXCrJOh-^22ML)HJe z(3TFS3X1*DUhF>@oi3^hDg$bt9-|663b;fCPPZyCjVMRJ)Zh%gUn!0U9hS&CuXR}S ziRoDmm42r7c}vsGhBfDa=J<8i>p7E>_<&o)>kHI3y;IUf+i8L(E8F{*Rud+H?-o`M zp_mn?cheRkai@xDn&hvI`_xNZxpTuGD`oO;t=o|VLjGg_g@xr$Q@yny=`nD#02DXM%N7%^fA_l}<`{ z4Q=$6pIFS@u$I*slD2a*ezUM4K$Tn2Fs)T?I5T^If_dQr7ivipl^+r3`Q*CrWojT)3mv^DQ<+gBDX9hT3E2lGSQ#{fjQ{VUr; zaSU?=uzDh1w@3kFtG|8<(pUR$#4U7U`;=Mpj1Sh2jl)DZuwc&DkvhLSz{BHV)s1^{ z*Cxz3rsB3;lMZLU*dkk)!!)f@mPM6EHuCa_BQDU?4*eI9lIE*R=QwW@Q5aD%;gNRR@MV9->yhaCg!H)@UromWKSdmB88QmG*Wk1?4!+tODJs0mJNPnGa9iv&;M07_2p&*B}hurtwb!B}b*m#-TiC&PyZ zt#00nvqkU5?(^oBW%k#S%k`Jv&2S(B^~0037fbV_K!4@~Fi{zb5lfC~ zuzEu+CgB)hg0}->9X>s{8X6XU?~O5gT3sxaST=dd71ZjoqpG6f*DNWa%)0qvxc5=7!sGIm^F7URp6N zIgzWS%>*!yPS*0d{pcUe4dE;cSz;A>e-z{>|Gzd@OhP_h4Op5bg}WcME@2V-kE z_W$r|IvA(R{{#*Bzqz=waB>iHu>61eJ^!oT`hypw_g5 zVh5E{A|>I>Epcm|4z4M)PNr3pW9_HUBj*d!YpRayzomOj_y6u6f{)DTOQ58e!9cmI zxE1pE>iGWHRk}3ve+M294^xFVdA1w)8aj5MLE=-(nv)h(pqClr+E$IO^%oIC@70Tp zm|6!}09xTnSmfzoF9EE;9-tp;B5}JvbP}noRtkCG&mi1lg2`L>G)rW{zAxnfxGl+% zsMv7_LR!=0nB68eD&6!mmr~STy`Aa)}|mc7XQvG4JM{vNo<;GqgJh zYMbLcJ=n@jWkpGF(mw9VtJJ;AD3`)OW0l(g)1qO22N_z5GGu2OVcZXkk*EPVDkSn) zxD;l3Fb4z8yD{%uOqyXKGE{x_<1+vrCcD_T3|2^-7FvEIND9w`vMX@*?lC|79U5#! zf0vLBzKq#O2#_<&xXZU7l%Df=hs?juzT>Qf^lOu_^%9j!p|$G_+@i3o!*oO1H2Ll@ zu@)i@X`B!l{wWE{Lpv5b%cS2%a^xxl+ZA-AQG1k;6*P;dIYS=vP)CWrjP&s6oh=E@ znB)>Z0TU_k04wm*@iM^u-lp8}Wi~sjKuIFZ6ZblO0D$i)h^*wffVo;o-_`eL0e#uh zvs-U8v3UToD@A4sEsj+ECf4MiZEh7c{LLO>1>Q{C%wjOEib-x?y}DmE_fLP;@#EVO zC1^5QrmTlZg{+k1hKJWu@GD)A4kKX65=Nnw)toT6P&%8P!nsv&Z-kA(rmasO9cIbHbfu{Q&u3g@c)KM;} zfgLpMofA@XT3MAmkM%K<+x^Ova8q+FjZ8kleZZIn<{srE{eX!3=taVLOeT7lwHphb zJ_|LB%hlZ9l$n687r=bz_tEdnK1ODe4s>jiiGrhghKpzeTVvQ9>9~jnDrd z&fc-P)BW4}jcr>U+qUg=Y}>{!cE`4DcWgTy+qQlB-uwLPtW~@2I#v78^$xB%#~fpP zzKq1}fJx{XA{Nw?0LJ;b9VMt{n~|D|1vPlO<4)JT_XI`D%he0=32v@&D_Q$Z0ehS-$eFp+h0G~7#G(L%G`v`NTZyb%mWGS`=(6^lR zJ)l>freWhXTlcnUFkz>4My$u)XD)Q=*?3_cxX-y<=Le~4;@mGKWEa>d!R2k`TTvSg zTB8F%t`dWA4O(G^arlayQoa}p6j1I|*(kj}gPw{mG?Zq(@~{fbroa;=T~ScgjKg6i z0L$l6vBwwO6{tNjMKvCkDQAf*EO-d}?-B261EGN}+YWD>ztTOW42^#t=q}B3rB(NQ ze#|=NJ?N+?@HFtPCch%WVc94Srox28XA857ELU5lSiFaxx720!x{L2Kk~fVNw9;3+ z^(>S=yEEBBWN6MBt)+TXh~W0DW6RbXpb0iuFofU5F-Ete+Zs}r+{2c&7yGR>3l*hANKQ;I) zp)Fayx#@DIINQ^jmg}k!0N;S$Tv;Z@Cllcy+r9vb&&Iy*wYJ;6Gr+2t;-b2Z1;Gnk zmk%a(En%s_wq@!Bx5xSM=LKZ|P)KaHE3cADp%ag4h-1YQh`87P8$77r#XXCRt8I@f z%-$L?M{nV2iGm5iv`}ax5w_td9CO6Qmi~Dt{`=IKyg>d#ACrN^jFN-FR*MI&M)Q;m z+0M;cyW`Z6<&6}5F23Ahs*ktAxLU+3w{OxABO#{P3DHW%Y2vsfKWMRtCmVr z)=nk%PJI4s;%r@M$1QF_cdbrW)YFS-M%0KaM>%i^Jh5o-$}a%~$bpFd3g2d|&< zq%t>fjW1)wwx!!sOMhsx(T%(h$1tL}2<41;BQ zN;+B8W4JFu+({SER!x22RTkNQov#16asMwI)>OYlVDnVR6%eXagd|`@fS7Xa*4m(D z=R(*z=jN)Vw<0asQ8YmfC0Qn*2S{ir<(!w>yI#^C3>fJJD8rkB;CV}7tD3xa1|;4? zsCS+bZR-ptlqt&dVhDM5epLH#%l-S{$+y`87e#+>!KS;dN+idB~~xt6kM`ms8@Yg30>U zC$eR`VIotp>Uet%zz`kezi1!<)puX$b>IK!o~G_9DK74|YW#^Ais!hq3Hpg{4(*fu zbs($^gfPKowc7M7YF~r+f(Qe0yX2A}F3_fG3Y-FVQ3eqWc^ZI0VjwMEG_=aP%dbmE z7z6WRk4Ym{w3!dwKtZX*qwkmTCt>>*k5A$e>a)an6alLpw3=_IH%NVvh(Y*-Rhrz;i zJ=Xza95_&Fv=F{~^SupU2+)QgTscy<^MV<=TzLFqnjojd_TI9WIOQP#%pL6OG|+5_ z4hK8{u7g_(VA&JFUQ*^ygr{TD$>_;$TLz zxaCjx-c82jFH_&mCS84VUBg5gaUL9%S)>$+rVXV0c@Er4B)RipgaRc$5Z|`8kF=N{ zGa~GL$x_LT^r-W<^6n>3qMWhhDANHe7mCnXnqk)~0Hb3C12b3oL3nCG5yiwO7=3lM zcx!XInjVNTIZbx<4;NpS@agtake9yS$_)DkU7RL6G$T^}|P_6B!@V9ac%Us^vYG!dXmT4X=$jteBnB=g*=n9B( z$Iyx60K-`yC?`cxL$F7KU|h_R^C(mb&hVfE{0N?(wmI`sPHhmbM1$fW6?wMc{=jXe z78Bmy6Py$~J*Ciw3i|wnjV3*kWX>z5Z%TkDAc0C-4_pT8h3y1ci`e8bwb2&fRFiE`Bd)SX*N}KXoG8qV^a;{y`=J4 z!w`6i2Rxt|5iC@w-4TCWCAypEnn4ZD-~xp5W2^LNLN3&Cupn-BepExuah75Ec6E9~ z-tZyp9l4)`=l}~u7e${F_6#roQrq-hD!UY}Nt}y5aIm_;EAa_#UGy-nQ0YNgFbnV^ zK$;{r-o=#a=-x_knu%4@*gHQg2=ZHMXaN(#GqYHPuV(-n?Lpsc1YHzwB~RDZ;i#0# zw$Ydcp-iHOx|<02mK4beLDq=+%z=4tA58IZ=2sX3iMZ#OMvfb_mQZgBJt51R&hsPA zyT}PDej(kRpKjZRUg`=Azf%cLE3Ob6VA~`-^qgW!{s)HWoX5oU+A#v$4ls()0RP%o zBy0B>T|*eX=CdrD$Vf$F0_Chbr z;w83LfIVrYZzgu9uC|-q1Hp!b_oZPcjU0I;t<`Q@h}T3;K;EuwdL5Ail%G5qKu2r` z7k-i1nhC-ICX^Su3A!`OgEQsn;t{?=P#4TZd4JQvoA`Jpl|_&x2QTa6_>{Sg?P?(dZ*_Wx<=fpJsJIds&r*SR~!Pgf@@dwT|&Rojq zZ#wzzU+ihh$B;pCE!uKuxF%Gs03HW~E=?|x6`ztigf(Y>gt|O=5Ie;(hQrd&%O%t&Wvu+xng+ z`GCoKPBX%DLC$>tl4e563Z+2!q!kF5?vNkYVtz!3zdjHJ-tw&fr@UtSZ+UG6!^_)> zlnJaN_m@xc|KE>f;$S0U|BtBt9~q|q&MI}D0LuY${+As*r7q*V&W_Z5u6_eGr9r6& z)@yuL%G|s#E^E%+LLriwG>9FkDm8BP<%_8?T7uRgPw&XkYZS0K#9#L@S|B!9a6eaj zdXmaQZ!^dxx2GX`%DX2#J9su~u|vi!eSZ=vS#jcF)I^k9TdID%AAy!pgju@Z@$kcf z(Ws1==?@kF9HR5&x|D*jX8!bc)jqeBVi}-Yj5(59^TnH8T*^Yh$1NuTh~>;OLx$W> z(1I8?7D-N-8?bV59x1?M7Z8sg9~9RHxS&f}TUL?Is=4sJ84rf?m;0ttqJo0XSB!=S zOP3V5fUC=<4tW#=6K|Sz5h(autaXpZKhIYE)Vu^>rl^|Y$FQGw+ngb+YIdm9*$gA4 zU#2DEw2tGr+oh{U!RIs%lH5z#?-f*{+~pI1zSD%dZbL(8az&%4{~5-})-bnip?)g} zIk-vtBNsc!$7v#^#P(QFg*keTo7IS8?lL@=k%WJ@vquE^wq&~-vaHKpvFK?7a?^K6l@pj=nYUuUHQT5D<#i!bMJy8R+2)E~Gy$()Cy zox_XjI*V;*j#?!5HVX8VG!CxOl@RJeACA|OJhNOTI5cDMRY^{J5k%GkPkywY;U8`LWN^69`m`%(}{vI$4m}!H6Ks_i0U1A-g>=!#{i)ACzq?!-=&$rJ%l$h3hFuZ zTctUqg*e@l0<}58i>lbLDd^}K#(Z)_DNBn%Og8~H`O`jegzotee?Kwf&cc&!%dq!` znCTAiu@FFGU|wm!3tI=S&cO_xTfwo?w+by<>O*sSh_f^L@1+no1QC&R!LWdjw^u}g zmQXFm$8W$32D!RaC@miIVemi_(wW3jBn|XCi^k~6eG?$z=j(IThI8m#dCHnpf7rw$ zSRCzVS|Rog(Je<9L<2T!%0?`UfV2&5s}6OkL>xm6N4#_GF^ZbX#_7lO#&!5}Il~X2 ztxQi7&jeFjS zrqu$t>`)FdzKG;8$z$#)JYF!~@Vp{EV9lAdhnI$`Qdig;PN)&$7R<; zD&%-D(21~ZAo%buRX+nz(N$6LZm#QURRfT&ihBph?BOo>H#o_Qv3@GT6>v7|KmVWq z*9_=CvUaAatp4*TBMZ+RlaIIKI!dJGM${M85WtrUYib>5fZ0`zslnYZ`+q83 z&UcRpTueIeLqh!UpvMZn$HVzTJI>s{XJ9aQ_0~pN=pr)e7iZxm4@Alkf>9I(D{KZ$t25=gN6jZ3@uQs-D z16e#+uf#C*Mx1b;ilH$;flMDts2>!s`SMYnGYE$Bh=DubRuqN-u|O-ZBG74qLC|g} z2(aWH%d?F|T1lxDH^9Wey{VHoz*vC2rkg$H&mUCVz9PX#bL0U(aN|aDB(c4d>y8!K za2zO-+F|D5K4g?L?$@3;)CzDWKSMd&KWuGZkkUBLmO;zCQep6J@XU@W`1!x;-hvW7tahUSohwnLNrwtp4gDeC57mh=^ z@+mKGaSQ&i_7q&dycf0$ly@HwArhwo4bj733jZE9x79BvrmaC7_+{_bg^Dxx`2Ih9hnu%q`Axd z_0|RX1bU8idZrXG)C&a;G<+S?_)Y$z{~!tpj>^Z7vRa(!Dug4V^IDnG`zt@AXnJ*ftg`V zL4gwz4hn%x8LUqO4i?q&il)Rqz7Dl2xFs>8t#XZc1qc%sSKGIW0A#EY$nwy@_n|BT z33jv?<&`O3dp@E}*93S~hW9`(zJ3=)zNB(0E*q}3m6ZYjaC%_Ds!hS&t?gb(;W?AU z;xM;)7!%|XG=0oqRxsrTN-EA?-ilFy3?3;2FGDBHPa51jdj%5)0!G5<3w~odX?)Je z5Bo@-a9GoVL=g+R9Y;F>NiJn7Bdl8hnz0 zhmaE*@K6K5N8K|KT1hW2Z-O$GsJ&FRsvm9=Owqn)Ls{2$!O%4UuN9&kU!21QY$GAv ziOiPPWF!YH%!>IaxXC!~huySR_?xIbV_6{vJS)M{+0qELu4ww@oRqlIQb#dnlCYQ1 z%HV_1Tf>8xC{Y)u4M!Hxr!XFkyaCj9gDc1PiDfuIK*}O_!?3Np6AmC79@x&YjfJ<0eeFr>|O;b$vJ>5_}|vSPmc7_0J-&yplkCb2rw zNwrmgjdB{l_Cc9lVdYPi3P{#wZPFjgFN55omBPvIoh+Kj-QLt??x;%#rf0A+754B5 zF3LN{A)Ly2KR^itCwCxHF z$N~)%OO9vS8=03+*!iP2@roPWU1IDwQ^l_D2=M_^Zz6~8{Q=N(=&#I|#^=G74Y8mSjM~#_) zaTkWDdG4R0JPWJ8DM1JrujJjb2bJ_nqoS&$_SZ)`^>Q(|%EWEuPx{(t`6Lm1qd^t3 z*0j;8_c+^s))P}(-#@|GQ+b|SSEvi@!T9pub)OA!=+su#;L9)y)FFymX9{c7!uOt6 zX`bq0TCBSV%rCN+fzKVfw=;IFH>*G6Wi&7UND7Gwjw-770|^lbQ{Q@iph~SM@n&i3_S3yJ#+>`WB7SyHfoEz+Tq%yL= zk`($-;J{414h1IbC;W6||6uk){2|%EB}^Ni1P7OElcdhd$e!f^5|nwg>rj-GwyAdDoo|sBw-J zN8XDT_B`5z`@#vfldtu)!z#vOBIga@iY&TdrRF5r3!6J43UpKm20Q)RFaT>;@h4dB zjgNld#fjb9vaas&L*O;CStzmGL5q-F`U!I=$FVfxH2phF1TBn-J&PrpMA(2Rz(JPI zQ9X)!sxcKWo>Dwv@7uLxjeN%oz^(+MlBX2wnUE&JWi@@Tn(QvtZrZ>LhrDfGLw5(W zi%NWJc(<283>>u$9W03^9D+Yk4QjogIRb`^wOA!$P;w29WhjW-wwhJ~5b1B^O)E`g zmE<9w!A>-r~l8xT)&u$3}LCcmA1O0>b z&3rlK=varI%GKi*YDV?c(AvpKA5|e@pAi}46Pl)KPs2+>wG8X%OWspjXv1J0dVYER z4sgn`F~yA3$aCePN*Y`F>3maHOR~Ru+kO-mCs>v{oKZX}RaAfgge;Ccs)RDuXwxe> zVnwDuOxEs=htz#_K@Xyvh??e%hrfEfD5Jd&z&3(M;e2V4;wYM4BHh%?4l&vd1Q$MpKjj);dlv;9ElEv4ZMBKe<4^!_s*% zvhhgjdSj-~<+))W%OV{ibG=E{(*tURta7#KqGVabi5|WIqs${M)Esgvt#(*nA|81y zXY4w=i;1VYH4Pu8IuuCD`l!HIwD^7WAP1{YXnEgWO_HI)Fue$mw>#%x0x3p$6v&fQ zB`2z~>64go`WRlhb-L{D`RjY&>~qzdUXOVf5_Z6=<8G>K?!H3JijX3VF^GjRf$9TU z1Q9$q0|~Hz(>9up-zwlfSL>GRn5)xZ_VCI8ebeMLq{(3UIh}4Y+wLKvWExv-BSM@; zyQL2K%}&Nlr5hBlXY5z^3R>GB_`TYR7YouIZ}-fkO~;<^_Rb`P3lqi3)qr{6TBJu2xDBt1Z`meKa_jOglwQ=fo7*DM_1{Y$epe~#*KF4Dn9+SN0b$i>(FO#B zGJ0^roi3$;ea5BTE*J@^y6tPIYj(Pelx(H!#YyDFXrjll?Sj6?0mE*fO4QnwEb{A2 z*tq6^gEv%nw~}|tcPrn5#cF16fADm8l3-0ytsK)XVzFk5!EP3f3XV2y?XKl&F>Npu z49B!4C{ZBd7>ozTBCrNG-CTXiD2^mGx15gas46~9OClOVC%Fxd%(Awor937AlH4WS z^p9@IBW&_?yZwn$@b-HAiWDA-9=P$ z_L5xHnp>h^@`j}yp$?-%Sk5e?-q}k!2Q1S_6a&n$i^Y*4NVwD_|te?VKzD3uu zMZbDD{F-yd*R64_rJFIWo56(ANeCI%Hy#D~A{S$H6H(y6IS~)^Y>trxNo~9d7z^kN zlIyBnBbE3D1vS<08#wacshWR!YX9pL8+~#x2*zKw*8k~(RBLG_u8+d|n^B|F=%T|z z5}PK&AUs^i+o?FjLTs_=j&JU}s;-_}w@d^MKb!}8b@&VvnXL=h zcw24bvt7NxfN%o5d_)iDHHymkzrGy0 zhGIME?%M?h@6q?H;B1tGeioHL-k|;S)@x`mdOT|Gh!!M*tybxq7XVSW*XXe~H!lMXGWlw|E zQIy`lBu@(2UR4RT1KVJ^DbS1 za!A=2nU&Q@Ln7F{GD<Aumxf7M^wS9 zJWU3L>o!)a|9N=o6qpSS0M~_`;j`}@ZeM{Csfu4jT*?H|F0)&&F<8)PgtmYApk#9> z{G)yM2Zz^w|?BZvpE4-{HPoqT6h0hrp@l|`FM^ezIoN_xJNpN{RAs0exMxVD1!y1A_z z4;wG_hg`?@a@;J;QKsYM2pgoMa`o*udWmp8Nn^r*hag`ST)JH|ZkO)}B2;iKOj#cA ziSiY2qHVfI0P481HKRBHi0UDKfM(Xi^63enVmq;zTH3CkdmrcUi>TuCViWpAc#Xo# znzCfSugejLsu@U zcR=fiWJ8PlVytNxJx5L}&u}q5g@hDN_2fpU)cKQDn_$!mek!4VLf)Gx=k1HR$m*K?%9Lr!i(>V|NPzDL47fGIU zWVBKCz)41#BzcdNZepa}o)%2=QWDg84RuyHs)9^SL*h5SWmy-}GhyALT!T(I#I@J} zyQ(*=#y|wB4%lDxYfI?kE$4pZl*(9O-kA(Qcy=DrKx|aHlov0m3#NfSf)$5=n6`!E zF;S9vEWRA`V^{+4pJW%Y%=g+xl`pV)igLHu+t=}_?G}6=w@Gn+J5B8mUN8$@1-vOc zB)-b(fC1pdI~WY5hKvy!nWEjo$g&mup!Bnm%d{oDli(JMYpTyW}$-EM_ve2zR*VI5iJ@j{9MdTOgTS?E_Ff$|xfhLasfOh()sM6Od9Wk zD`-lI37i9ar&&~f{7^6|-moDyhKzn&LtRNuA`u1$|LnH~Rz-6K&^t&w&3@p)kMs*gjabplxhRaRZHja%d9=}28*5&eb9NOKjAW2mzuf32(sg}es-wm%Cb z79*$#_Ei4~$I%`L^d%Vw*{|!MwQog&%OG5PcFGJ?i?XBUganOVW;&;2WT@k^eDs{D zyEs;~m9Tm*^qsp7h&ct?=P5W8^+2fdmz+To_Mbfx8jx+DI5QlizIL|HmFQpNr+~Rw zchm@KlR-#t;GLwC4>4j>j_XR67c;WNOG|k~=E`eR3Gi4M&R7w8Hu(X?B}4CRUNraC zDPB1k*h03D{Ppc;>f@1IU^H=>!mk*4Lgx(|%`7nMjB)7-fJ)BFu7|u63Z*QZRDmQ? zh}bm6p@q-G4o!I{7-=9U3O(&$$+Kx{kp)iJf&YamP!5wGtrCISkiAN{5Hcq&ZD7ln zZYTORsq64gz2v0;X8w`hJ(&xC+{iA^!m$a$2joFTzpH#Hy^0@dGu9Xc&9U1tL*O*X zB%;|oQVYQjXh&knA5?bJK&u8a^>P67W415fs8mL-kiRQB4I4@xRQPGu@FsfEb9R~JsM#fmGN!UE`qQV+aBvBXNW?O)a=iBAwe9gfs z+lmpHgRh0-5DfO}&`EA8>^JhuuD|#A+id@dqr@Ik9FGj>X#cowHT-}{_}6d{n1%o3VMaqXp3>f%YNPk{J+-?uZ?5+h9w z^6-^B>4t4MvXR98%^`J`IB3-Zv#X=<;2|P9^gL*&xEZFLcnXSe=iRkz@t3l$YIw~K z&W^~|QD$H_DM}0fVSV#cxMBOqsYmvQf@g0p09`L~&HVh$B{|`TDP{MX z`?Rfye^A+vbzJ|FFdH!YBeO?%8Dj+~fC(?eSr%SmzXJzhIhGTc`I)VNO#GPj_fI<55Aolz1-t-406`U|*ZFq~zb zMQ=G|JC2;Rd-_0~86mYZ68oGcZR7hY3{fHkFtd1m8=y@|b9u&o&~ zuzr)L`{0~y|KPkCD-2bWFU!+Gc{FWYy+Ok5Vz7SV&lUHifG~*y_{7=ej(vk1!G@ar zx3V#S2Z=QP=Z)?kF@=9*1^@BB*}tBe;AAG^_z#SQi;akb^Z#uSa4`{a{D&UR#Z1J> z_+KdDR8Ituzonhjcmxm{z+aXyQund?ON%@@ve&EFB{)`|S>+ROA~iy! z$*+|26O}5B{-Y?`JAoj>Z zycJUHh4RRsj~5G=1l5Ljwc#vk2Xlx$O);uDjiNLs>T`=1pMS%0IcxHX1HFs1>3*n1Et~wr;xC zpvLoX>5EcJyD#sBnp@Q5navv$fW3Z-Bm+{q2^0>fDj?;A;UJpV#X1Tb-(B~ z%HeR7+2(MKR{^K@zU0nh9Sk+NQwKI;qiCIb23SMm)Eal&221Cr6zqLqL=n-c45w^> zl9I!a=|)pPU402n?X8*LAMT71l`eQN_0njfW+Uq4k+9C{P$ys4^@on{3PbIjroDhX zX;{WQ?jzt`Kvi-~D$n_astHc5%&}{jZ>?QWt~SX79o?0UMt#rdU^-SRs&Bb)qbwy# zApsqT-WGR~AUQu+-6MJ5v_E^9T~HKXRaI6a*vIKfFpp_=yuv9MkOKa7&A7GshHYGF z@si>KIH7iO?(caTlC29_bEV%}gA6>8=+47}W!TBq03hLMlZ?5sgWao2$IG1{gf2hx zpn6zGWndChDQ?3*Vff7B8u5++xU7lHpc?mnyT}9uf=~qBt=rj;uv?9#xm+P*Y@t0$sWsN9B)!(OoeLf3(pn@&GXhZl9%4@&pZBztoEo zV~z~9Ho2I0+@-pTlJ-jPCttSLP5$9XzC2+SM&`}Uc)WqCVBrUMONJVa1YQA#Aatb7 zXC_bP-*OtRe~>Z;eT@SE8^u$E9OiNzQ;_x90bu%H)D(E$9CQ5?1(XkDF%vu9X4P-m zNUigIl$l+c4`n38HK2$`4oePmcd936gsvakt(()1f+|rpd4IT9(<7) zgC15?C`RJ~oygpmRA*r_V7?9-g>ZV>*LNF%ABJ06&l~XD%?(Yu-_Cx>;#gI%+l*vI z0xr`W<^az-zWn2PAd5g@MIL1={+cDiafYR5T4&V}U6`PuNjCWl&5Qh_4Ra8)z@9|l z%d9uT!cju$!`o7}5|uQBHSR=0olF;m?UN7WyyiNGE{PHG3v;wcBhxn4!7!qV%rdP|K!0bppSh0a!VdBM$YgFtV{~X<_m`c-H=W z6TqEJb&u=?U%#!anxbThhGN}3rP;tEBx#rmW*U_eU1#6Bbl_Q`t_^Yxq7^$90D0`^ zvn<4+?6%;KtV@rZQH8=dc8O$R{j^R~!GDlVAZ|i=cS_KF8ZLJQWk_X!cZ()>nMAZS z3RuomMa2F#u<{FBBa1bbJMs}cFIW^jAPJe|=TmZ?gvElFx0{;Mj;!En@?n1v=C?Va zW2DE2Svu@q7Ak@JM{6*EYcRoY0m4XZvzlQ!SmA@oq>j~m;3h7jl>;mjj`LK(rIQs@ z&y*ZUBX8l>0$KRFU-YiEI6PpF%Oayy0}6p4Sv9o7qwd~$1NP?62_ih$CRzwGVIQ0; zx=jPr+!4nPY6yPr5trAwjpv;RBvgplo6~qG2S5=K-j}XB@7A)E#XSaN0)D$+Im3<& z24X--g4kb46etR!#V~O)u!7Bw>+{L%A(jN)FaSbI84_xak)Hbm!0`M=HLS}(o_1e7 zhGHL!xoJCD4%h3uAH+HUP6=UwK*8LRTVz&~NH<>8(2dvoX@4D;lDAO7l}9tgTbNvR zMOteACNuP(@&wP=d{>TUfD=ld@@-FZXpbwY^5-F|Ms~YTPF}MND*vIvYz037Dfn83 zJc7%uHjD*Ze*PmTxX*S7LkzW5FqlKD3F&SH)yo!rAF%sI!Ij~ z;GaYLACvlDRw~A^rme~O&yku4U&at#Qx{w zGT&wpkao*+cer6%YL1`h+iCo@4c@jV;LgnTZo-oYg#xORH8QxdJ*4C=sTL1iL?4Hz za^rQ%_kH*A@a)2>9!~5cbjzsRXt$fE!_V8*5%9bHZ(D%hhkvBhNu6-IZ2x0FHOhVY z`>W}#uJhyN@N=m2eCWDTUt#(u1t15EDBv1Q9%OwmzmVim%A>}eqUZC9hs)=E@wSUm zE{li7={Q(wPmDR(?NlfC<9v`XS6Ci#_cb8RmPnc5p}29a&$C;#)pg-fZRzxmz!crC z6+owD6JnRxoNX7`(@;}J^JXES<|=^?c(9ew_0+XI>(K07y}k|3Qx(V>9cTzv+5vYW zpY&YCe0}s?w6(mtEgU6!D&WkJ?^(A>anij`iKW~1wj?oMgDOfDg|4pC4j;U%G=it7 zVXym%)#eT!4*K^H<*WDSPddjCB3@-?iY)h8XpY$O{EodJrHowmuNtS#lcOX(`?nYz z&DFI>Nq5HDG6!8n@8slR5>DWbtJsslT*A?3KIlkh$g`FVJfy)0!QYp@AuUW4DDkQK zYar+VhrV4?td7dv#2R+D`ZqWB+RZ*>*54A*R)-iK8%*ypM#KpLs1(RqQkwS|)=6&f zMaJMl2U7VZD!J}ehF*I?JfaJy=T#(_+osz}AkO@!E%>7FzC?WuR)yMcDQdreMGm2q zI&5q_7(^fij<;dLH328z3cG?&B&ZQ2yINfUGy)1l4Tiv6kE^m7u@qoM82lGrz>FY% zeZ3z|ygm*ArU}-`z&oXa@u$rrAWal$n;mIhRn}+NeDUyhMo2*9lK6Ut=Le>;Oo@aU z?O}fXSsA}@(p@O)uw9ztu5vrUNg@d1|F+CqFe1QH6GMfU5(GP>MaEXvddr0RSS<6nJ@G|{ly^x8PE~1oG5D7l1uF;6pn6*DFkMSbN zm7#|*7FO9gf7uKxQ%Y3woDnA)Vq*O;Gscp##z8WW3?i&?Aks1~i5iT}UQysRWV%D> z3wJ?+0P;cS8#^fp!qvX}3y|gBPjN&Bcoeik_HU}#u=+!FRB7FdUVvMG16@G92);sP z3k}Xf8;*c{v)Q=J^beB7Z5sKB67f!joD>FRK*i12o ziYR_G+i63YUxz==J9PgBL6jp|`v6&%-s~JL7xH9#KvqI=*Tz-*Q(aPvKO%kxSn{46 zD}8VhfzdYa!XKT;=pExMJZN%&W#yQXK>D(1JC3FHPXI*DLjPu z8;@aaJ{_Q~)SwKlzPH(iPn^2f2>0kt&4?Wb?jb8~*VF@Rev(W5?;z zZd8i=P-H&&#^$Q;xUMX?4VDMrp0iBDX_P+27j1?c?s}gc)Owx6225Nl z8-ghar*#1SI(~JbP2qV6J6{1r5-*?Xm-Dc?8UZqm zsbC)KZ#sB%5rJ#Vd?A_YBwwQ6#Wlfq}M)L3yPkh`~c5B6Ev)Je`%*lOh{_(y==_^ z(Yz~9eeLU{F2nEbE@Qirk}O@}fFo^xuLWoPU*&zFIdqNS>D*X5`#{o0J0P6Z8}}aE z=0G7ZFGjMCIBkEK-;X9f!3e>H`O55R>d)}-K7SuZML_HATQEsN42nU~^bhQ`)>y!& z;K!v4J3B#|{_8F&E_^HjsfTQ+$pT%>cLKOK>P*pIgDooVpi z1Yjm<S>ukVmb*T&)r4(=ETYf;6#9bW7K)taC|p1bx1V8X=(`=uypBwwii7UvUT zPOaSr!T9^$?q!m;mst=j^?6|FAJ@M1g)0%+J-fqC*iBZjr;0Wc9LIN`rdEGWLv)el z5q{iUe~1nGmy(e|!r0DvY<1c&O6eOY#aN%>oC5Ai&njL*XuRQaNKq$}n;MJdnJkvz zHAb~Q7rk{<_9L;vW!=pUL>z(s;)3)gqH1!IbR|G}r$t8z(Az+MGQaCBqaK?iYA+0% z?$ZVkl2w)FIrQpsn14G8MIE_2#fOmD(c_J;f(Ax%?~{o8>w3FvQT-63wY?g zmbS|^W9>;1aF{(tXo|=H6s6R>qyC@7Mc!Z+RYIi{VG0}h!+7L4XvRN_A<$HG2x1jw z4gCSTlU^;th2Ix_qr9Lv1g2X)Xqah+Yuc5%tu_8LL#Eghmo;w3VPs;l(FC{ zH~eZt_YiGD0@6Scc#0y%mN>4L@sYngsV6vxhRxsM%Bb22!8teeIBaz8Q0(y*_=gT) z0%pnw3jB(WERJg-IAX3)5mZ6I(LPuaALDPNeqKBq4T(C2(Rr%6CK$krG2>E!Ozhy`KKKnzFa_YkvK-@goLgm)5_k@kVtA{zh+m6^Mg`R__HJF!$+U2Jrt~ zL9GzJIll0`4-}ZZJ?V*cZ+>x>W)0;2sQ1=B*|8pEl?b!nf{Z}RR|F*CGYyJG!V*1Ym z)PD!Te*@HPisYjjkTTcbf5lPLHToo4XCEos*_}`IBj1V& zCse1DTv6@kA_)2CdmCUbcO~aa5_xbnaM#)i*NyXTgU*%EoDxHUQn`L@xQ|}@iQ{MU zwxmGVkn-^)kk4gOVAvZwsDd#!p(LQyt85ClSeyEX%;QG}C%!v!&Qh`#I&)4Y>f7^g zch+%427wCT;l-{Xh-O=eAiRpaNC9Bo=O{qE5K0v;@$}V&os|St%ct+zLcjhN$;ZTNvFf5g-u!@dZ!ZRy^B{KyYw2LA|Kev?L`5669 zqhL9C7olz#Hr^$qyV6l+DWt` z4!p=RuZU491oH(9;yO`*CU@xQI@AI3f8()Yz+@&c&<$F^{PdZ?#u*)oL|>W+f1+Gz zZK;Jk_&BJ?=z`2v1$XV<0b!43pawP76HAK-;fK)|-TkYHzKw{I$?4Sib9GF_RNoh` zz8{kXV+~0ZzE+2uGP?^O)B(WPC={y1%D~N>6*tY7&u|M!EI$fk@Xb#MPGD!7e(m6z z=gygFAj*`5<)JSFM`;tZLQIRyI4=K=)j`6-KlYkiiI)*Gcp7mG|9=>J%b+m2ZA}<= zcMIXC*Rq=yA_1|EQFoW#M#qH?hpT~RFi2bAX4bB)? z390Q&2Xh^$xtXLHfv|o7K?ql ztJ6>Hnv)ep<&0!dzHF^Lv)=kP8%YO(gsnCRn`ohnEGkG49Cl>XFn9m>6f@l6OofCz zJH$ppz4cog_YY{1KnK&1$Q)lcRlF$>n{=81Y7%YiId7dvx*avh)i*bP5*&pkbbg;3 zrVm0S_^HP-IKrQ*k%|?*W5Nu(8ukbk5-SgO|#` zuEf5{0jP#PLETO)uZrOW)q|$$D2{f!H3g`wULkj)2{`$;p13~WW8NrgFoz5vpxU2; zmV_MvFGAxhBZ2!mc&=A@Wra}1cZOlFjqeA{l^`)?@U{e@6~;+9|FMmm+folnS6v?S*omxs-HXl?$HBW$ftcak%x}exjM5R&JZs%I# znICqodWVi@^U_V&OB9dgI$50qL7iWjX^GBYOb!FhxArbXWubPUGFaC$@UCvUMAIm! zNh7jIS{-GDmymZ4`HhyQ7I6@CK~Arh8l7o?uj7To##|DH9J>6;132!A>_!h#aMRYf zx~28_rck*d+o}%U9}6+}6hA0ZRE#|OuL}3zs3Oo6l5A?wey>hkz>(Gft`qJR_|H3k zZoE6&0^J-)ZoX9`*}t$AOmI9LOZnVHhmFkC={mm=;UC@rRNn~8kHWt!T$6g9rxrv2 zgl&CWqNka88B?9-dT!&6f?`}QIdMe#eHa4Q$hdW{8wwlaz^5+NgCz6%XpP1>_;={e z+Pv!EJJS=SR@SH6g>5^4K8!d{(0N3&_cl`}I(yxvi+L%=h6XETt(~BH`PFd^>m1sXhmiY)jiLSA&{ZzsOy$~NoOKm^vaP* zVXb6;022j3zribfilI|?KSZ@dUPS8IcSf1CLnBz{^VUvjGtDKGt(ofQi@Mi+9+|)e zJdXdn%O|&=fF=B=46Og7`ElMU7#0}wzhXjxxKX=RW)$&<*KjQrc$S|L$5rxs?833U zXl}w-!Tl{@w^F9~wjW&yQe;uqIal9H_^@xd@!;@t90IyDT^bG7KupLr!UMdavaIsH zA*J4HSM@A>?mfD_^;h!bRC+j)$feoF9ktdH#J{b-w;;DM(5CY*^QmdxhNoNz`T1P| zW(~e_W@67R=Tp1rK`RI6zG$)dj~sk_C<7=IK|r%oF0|Ng0?{w3FPOW3hFW*&NK@15 zL%1Vk9)oYF9^fUPj+<03T`%8=-b*tEW{#B4QgeTX#8^pln-M!Ju-bz4iq|hkGsYO7 zs>aFWIvjE4uiB;OW~1RYg>5g{y7j07t?Ta;1|x?kZ%n*B{SBo4 z`$WAII26Y)Dep`*`Ns#oEb@os(&8;K7QR<76_1_A`r6nzYsllAcvxr5Cb$DJo=C{v zBASYU%lO-}wOO5~8PvIqJg00B#tZ;AW%Nn&OHtMPZCLjA2e!yon}_tiq4F+9q;f{8 zkaCR;tIH}a=sVBDHp}TpuUScjQ5FYnFG_S$hK7NRPMsB|C+sfRlk|}2bFj|>|15~l zg8VF~=IC>1%;x_+H1uB)45NiGT40?2_6t)ifK%UW8<0f`Umg za?bO65pWw`AS!7MjPal>wzbNaSYSSgWF zq&E%lEP>#05`%%2!RD*DL*!`D1J#Ocal zHN>p>3MEZBP}qr)UPrqk%$bq+^3f+PjNf+J`G(V;Xl35P8P3ByI zP;#KEAtJkLRIQ(mn#?mWj^1UKNBRDpK}iILbEERoGJ|~&f~D+&XOe%Yt7WF!#YP64 z49Eo>aLW#;p^&KEI_j;j4tPDm<|LRd4`c+#%bkc>Le}F=I&D1371X!YaXVqY8+5n} zOPKWFrmZQCpP1t=LF^7BO-O9xRS*@n`CJTEW7|8bwXGIe5?<{dODCY_PNm`Whrj>< zd1M;#T1XoCqCM&8hkIla)G`Hm?OCd{ok4<`3+rHl)oewtQlzbh=GxWi3p={qWizgV zt_fZeXk-rxo1U-KC%#M)$c0{__*tHlEO-HshK=`wE9$Bj{K$42bF#XJSmJJn^j-GU zxv+&!?n^1)qF@ok73FPxu*`j@6i7fPiTrmz(pgeXDwsds;>!!%+8D}`I!wEiUV_(g zINL2t7!1toZvo5Hr)?9a`(>$mkRe();(ivPO|7UFV&ZK%^4zLlLpTEcJKgjgb+mOI zN|rglDesI45C#uh+qR_NvA`ew69<)fd445Z_5j0-|au9yKLz zn7Qrn2KZleP|H)N!sRH!+aG}CbHwL06JyKt>4U6*sL9n`u*DvnMP>Hb{z)!kGoBSq zBLM;Jg(uunpmWi{8LVhs?45F`<__NZCur3b+s*K_&&g!9%F(C0nt?%q5e^x=9&EzJ zb?M-%rx}RDx*QkX_7tG?ir@2`))sLgs{C#XiBd~MT~+_0^bHT6HpWR1~o~J`lR3O$ZzTwQPE8wSjI%2s}D-i z{1v*OpiOakcca1wD=jkRJ%TeSc_7#hl`gp33}-B-8PQ`Ao3DR1!gcn~nt?zt{3*z? z7+(mI-{9J`N0u)q>N3FeJL20@C>!Lv>)~G8A4P;vQZe+Oq?$OdPiDQ!eYD&){YM-L z`7OKn7^N$+f`2&DJf7hjW5;{<6o|{A0$8bECAPonzl1)9BQD&#KORPhY!@3pKaCo2 zOW^ksXYsE+r87BG>U|JM95k`%a#W?YeY1Md?m|Hsfc^tpm}~(|$%U>{s(D1W8~QMF zJLTK`7-52Hw;v&}3itLrZ`%qe_g6L}m00Q!?1a)#!AGsVmtjs&@H~uGr-oPSgIGF9G)@ zJg!g9=|ny(ZV?yT45L5Ae>g(18t~?Gd5anvAj|?0f?3oE`}I2Jr)`&R3k@4D%IR)0 z`x!ccIzy$=TDaL6)wxv$`b1>C$orFuZ1~4-Vobv}%hPh;tG}{4!UY}{92vjDK#Y$S zp~2x|q`8+$h>5}VjiT{TovEUNgfLQON*6GWnlB+ZJ zuCRdk74>!dyEv+v` zqjy+aQ2N9G|M2#gHI4Xq`jUIOmhv1J}Fl0-l zNhG}oOCSFRP1jfJ8gw+`8gt(ct@ktfmb9{fx8n0(^n40ALL$eNX9xI9OCvR`vKptM z@XZ2+WkE9ihOb~a#{%rBEIz=_v{U5%f3U(sj0m5+Q~~o#;2&$P|1^jA=d|IU9v+|b ziT{dmU`(E_guw)3=KPl{7BH`=W53Fc==sG<*=$rHZ~aQTitHW79Hpz4GqACmaGpbo}`%tEhLvm!y2ms zE5qGZgOD+1Ozg2C>_Cn-Ak3O9!j2DR!=*GuqZ#g9v^SrX<+|H%1dhIOr%zq(&Gk@O z92C#iADt|V)n7W~S#k6AbVb)|K+i7s5J6**{{cm0Kab^C3L^#c?&5dMsU7DB$0o*0w1*F@?t*?=Hpanw}{6Q6Cz zsGdQm`>1S#d+SH9i>Ccs6bH`lnVCxO(D)W&cxq7x%y)Ip)e0xNA<-9%}1~rP1v%49xR!* zSE)IjE|a@vRT^hGaYkJe8+}Ffnv9no_ttDv#XizllWphe*_kwE`JhDzkj;Df=IxIb ziAp;kL+s{$I`@T2gjU4S(BX3TjW;YT%8a;`Qp7!TE#a&Y{T(}h%XpSMn7Ie`@At;P z4HTK%>2zQzAi(r*P^d7u64gJ>ySbU>2LlRfDfY?zBZhW-%Ak{ZnwaSuj|(;>&2}-O zU!veQ4*dHQs8fB>y)-&G2Y(fokyqFaJ}RJzST%2++%q9BVWUTqs~|slF8$8<_FT?7 zI9Qq=mWm^#f~ne$J|Yw6i%QXPM;H~$D3ym<(z?o7Zww@phqb0ECPa(RuJa>$&R!58 zdSM~b0HLY3BlLngzuJ|tLE|nfUisOSn=ZM}6;h-e=Z_X!Ab^7*yM#fWnR z1O(2ZhamRl(2vG&)kC&!@363-M7TRQpDg3h66;99E$k8aF5a(q!1?o z7i@f3O~9~rcwrH0FZtR)PzXJGyU+&tAR?mgCb>KF^@ha11tYNVX996C4~T*@h|EDs z|G;x>s+Rrnp=7UTFSqhsE;Jxpe0$N-(LXppHL23OHHNyzfZ4_EuAa>K^>^-`Mebf9UVA-b<^JK^+MP?FK=}d{G%X&3UfW3^?H+8?3sD{Z?EVP zK7iHeScdt+tUn|rA`uy+iyE{@;m-h;j8s7-SF@eFv!2cC{TQuj3*YGKwd^w9_g7Fl zjdTfhNJknfN~t7jP?g&e$$mx{4%^y$s=9UYUnkYaWo3xR>E<}^@@o=CTnP6G2oD|6 zVt65w5|c~n;WC_O z_o=>K*!E|ctzp1oNqvV*1umXPlh;p@c`K910FbdE6L=b=o5Yc1qDfiV;8Oz45r@p> zXE4>Kq-$9d)d63sG{9PS$W;8@D}ZYJimu zvw~iRTvC9uZET@3f0J#-7O(iH0VTrM2grp|WDYG?{*Ls&vXfKPWT7$PWqO}(@OS1> zkDBZEcV#GUzHBVPi<2X?6>ZiRD&5~ep09ez#cO*Wk-t$szmEh)Yf$<;e_5MpW5aeh z6kAHucj4I@fcqmJIuX!=*->V4IuESw9%YSR$i%j~I;X#7lQL|p3EqGmE{eXqgRr78 zhP?ll4Crx09Lr>k_=@MLJYI~DX>`n;fz@g;Rp zXcC;l??7?{1z(L?t>0ddqScFrst_8T7MHtW&KJNTYd>E6gbxp@?(R;)C$wx#S0t?z zRfE?~rNzCpfERUv3m8ITl$W0D>n3GLZ>E(fUA9pvv#lOC*Ua?$^^;_)+Xy8@(NQEV z*)bt6T%2x<=XW-PuIA%hZ($HVJUAUDZQzTlDuGsqf!jl_v*{Nj-{YlsEowe0IawYy zn;zQlt5r5$W~(zz)K=_f+mHa%7+Q}=ikr;WjOC`Qa&PO^iw8Z__g}^N9_8c^!V_Vd zk=m!qO!Ge`8sRamHK<=r;R|_594kH^uw=&Vm1qeYl)ltwt!Ux-)Sc+G>ua~vU9P3b zzg}p;ooT_nL~DnKdgsQ+4El&q2coAvcl_89DXmRws4r}=mo4=+u*?QZRUYUinjI-* zmPxHheoBn5n3s_<$%~DzSDC-Snys$ATk*)XdkwHUL~Hu3kjy(tonA~TFj`k?+;#CS;M!C=UGmkX+(cvNWVxR;Y&c^NY8Nzby6aXU`z~S6n1=!82EGMNYL#2}3X3SRF!p?@nz z(9wMVd57K`{?wE>{Gp=;`qe44qfv@=)s8pN5`MJ_$-^qT`V@)6kU&q*B8=~dDzbF0fqcfw6p zIuVRjwVysG>Vix`%Pd1 zKN30;Hj2)LpMARtVJ5Ajv~_En5lL*`u%VAxwo z^jwS=9xJ?d0i#chAp;capUOD@^5^P5Kx;#u{uN+IYTc7KC1sGSm!ncRG$C?7TJs(+ zTdBR7=clt8sHlS5QJ_ocGMJRN3b;&&4=$#?7W-2O!>-M%lxAIOBq|Vc=|ZwOy{(5F z7z4^j_aalXFlUz5SEl?sitZ3Hy#h|u#47#Ug0FY$R7!Aul74F$BP(z zcqK?!q}F4B@tM`UoCR^t99C?sjMBQ?vop3T^XCEzooo1*xAh2RyZ9Fc2yYBNA}w6Q z92r(37>h1Ug;>W`WRWCu58hy$FH7@2Bc)=ZYv?O8l*T_4ajGilf9#YU7Qb$dxE`tu%sG8w565nu68o=r%cGs}J&@iY6QTC=cS&Qi!qIKDx5 zMf|*DdbA_P2m!zCn>cwjYgFHJn8xA>RT%#&d94LK!n{Q~$84^#t4J^_c1F>NfQIxW zCGG7L;l=THKZQYKmp>gPGf8!@VtWY^&sm*0eGE1|wZZigyIm~=*F)hCxnlYNJ9*nQ zo4jM+2owr{r5EokP2U7f*k7!JR7Yc2!~{WH$`NfMjbC3rLT-p2K^$gok}eY5LKA5G zHZEsHO~=Q0cOh{=v{tYJcBKant>+sJy0-`QtSm&G#_BdTclv!K+{`vD*bwFqcELHt z7FptCBb*iA_;-Kw^=&D=PIoS_{0SB}T}%VJV_Ahyv6>wo+IT%a{!!;~y>KyFI3~5V z(lQzhwT^s<6M6V>beMfW9gfmH7xb)xgTeU)RIvA^@DVPh++lsA_&BCFNZ?9luIEkz z=3OIbD3|LB-k`yfDd_ij`cR$}rfsNO$EA5yzW(vdErgQleas|&YmpX~T=o=HsX|5d z&NpTt4B|J0EQ1{a!AvjBp`23qL~tA*MWd6pf+^A*Iu^5SzH3dv2{o93ILHx-R|6^Nh~Kh(XvTyL+|t1W<^ zlXJfnbCCF1F_rIf+D(Ro91iDsJbpE)m#1|BAic?SLOT4F+NyPaeME7Hrda0!LZQAH zKVq9EkY6-{G%^FxKjQ<#YJ+fejlo%lGSv(7?doqSp!EY$k;#O0oT1rF?I)sr1ajl0 zP-2Wb9YA8*PQ=m|oM&f9y*LyPQwB*7NB*c25|-?SRA8`R^B(WJS=N9?UD1vfpU8hoE#z!+jt%6@bQDEyil&c>QjZ4ZcP$=m&rb;{Ah@Ny}58*OJD z^Q7tpgJwPyTTFX7GA=%tbz^rNjL>8p1tV#+`MPW?kyTe0G6i!vnu4Y^wI$&VaxQ}G zQ#JZ9#jRHIH{TVHr@vM9iJ^?>M!O9J@kGk$m|GETl%w2#A^;DE4iJUy zGc0jOH*Y*0O#HwVpL}s-!}bcR(r%%VbsvJ>s>3EYH%+!ZK7GMgfV_726}(##>Fo!I znV*tA%!BsBqVRWSQE};^sM;>f+@O5%Z!WIC-@AI;uDgN&@Do{e(tmZr5Zx}AX5B7W z+is5k&<_7EjqWpd@!!6gm_Bep0EcmCdJ31Ku_9%9A3mKTby z9Y}(d-oo|@bUX?k1m3yB2-Kt3yma&T8a`1t#)J{lpRjE;%@tsoapr zp4!1yJS-g4Oh(&-F6K?`Z!_dgcpchkz+Dbc8F$B4SE$_#&q^S1k#lo_Qm99N{+ z+b7YXvh+_ZopMeX!ioG9=O!z8{R_d^f%3>Wj*jank%=PF@4&+b-0-e51Sd{Rn)=>k zYFj!hDI(@X)jDX7VYQZ?F%dG3?D>5o) z%DE@}&O&w){)QncspAx8CmZ#L9Sy=4#6Am#s`Wv8_q_R5u7|?Xv@dF8zmev^>V2PE zK6}(&V|Gd=EeyX9;HsF!D^$%4w1+0zFpxt^_>m|QDY~GB|ui~gA>jdYHm48*+ z!V^EgPMFtsJR-W*+3H$ln4~R6Kf8uXPY_ds*EWj1{>bW zTck45l9Q3boyEOZE*2wSP%U_lMZpwWC3_&7+&8EC-aM8mDiB7ldp8j|)jE(3FX}z7wSKF>Sf)$<0!%d5*=?= zhlrdaQY$+}B2=3q*(qm7VgegXs|bs%L;Ul_AcC_H23xbkU0b>-ymSccDlbkz>TNc4k5MDNm ziK`ut*N0LO=}Fbo4K4xJk&%8M$^FO(Mv}{25)V-W)lXu3Q<*}|!R%q|o488`pW=yMKggYR=o*OH-{v6H>NZSo z?8A*C@L?Ck6Fh@dK(x@|Gn6LlzNih2@Ob~rYRUiINal^?i%;7J9J>>UFV(0MzAtmX zS!)CF%KlF#6>?OJ@k!{umpx+w?BfO3ACMl361 z0_asF{itpA0`QyO9^SiC>`lE#S~YKL$i=ge4UkkBB36!I8N7vt8=c!I{Kkf=y0KD9 zJ7kiaT1f-z<|yx8)sw<1i(k>GwnY^~na8hhCGFPc2Z%=LiCSy#fAnEZ&`CN6!Q^zj zJG@2X(w zI@1>F-zRvu8u80R9RRgS1GAghC(NF~)|VDKdeAP|yujw^60$9gW;sYPaf~xOVBr33 zOCVW!X3Z=t)J*`c>kc+oefjd|q4a`E6B?bFsPk07)LCL@KqEIuy|0b$xqpJFBu691 zgd{SSg_@8e3)d1xNyW^3XpRw08jMc+ z<<;cziOEWx`uy%g&CVz?#&5rOfTg61S64()9g|*J>zl59mwk0d9q?Z=30?cBp!R*n zAf?wQ|#PwOy{uKC<@$2z5PL>@>8!u;eG{qO(YjL9Y0<%k0N{I{G z8txSLVP_^8h^HKJ4nwD+=D9*8>I%`Sv&45Ni`7WnT6=zrh7ES-(0<&|lfcqF2$UfV zeiGFW?G5}J6P{GVrn=D*5Q&NtCTc^vE2FCg-ocrmqUrCX8lX^vE%e^J5Zf2c3Z*Gp z5uo7_X$^^9gEq;{V3M#`fQW1ICbt8BGx#N`@=RuL5@$O7+0=7}khY@x!ERB_5gRaI zD%KDR+g zRP?@~D}V9Wp7v`Po3>e+8F$6NNlInVwN6Nkp~8;Q_fyvH#t$KiXv4MeaLe8aKEs{_ z(V9iP57O44DDM!WX`M2>=({IO@* z-lg?8sW;WE?sskvXthi1Z>q*Ky)F_L^!Zxd_mR9>W#iD3L?*{nXjegqR|#F!kGzdI znD~YmY2z-cMy{_Wm?;})peIzDP@{x8*yD?uJ;LBrtdXly(Mc-kZOSYzEl${Ta@N*@ zr-`YsmxiL7T+K?J@V{8qVt%1Pl-i`ZTX5d3gm8s)NW;DX1pYc9r*?LOVRPzFgq%B} z4=+4W+M#pCP&Kg|Qh=^oowYf|t9NPXz?zB*_GUxI#Ec_Y8a0*pGz;X7Q<+XVu>1cm zO?aT%G{Ng53K0a`6lH{1*5s74h9_Sppvd(rqL^-2Q!M`~+dMWr5k+2~7!-s~Mf@mv zE_m~E#q~Fn+T_d~_IW35SVi8z1VA{$+0MNUg#5^WS9jx7{#-84zE}6mi3?vG=q+$Q zNH1i5J0Dt?Zkxq5w;%7vjPj1g*02jsVpwfMj%O_}c8>o5--D=?{4b1%k!&9d7iIBJ zc=-Qlvc$s8L(IbR-xHI6?sxu^vWc1P-vMW_VQ^UBEIj{ar>M!=7ce7q-F$jYlor5} zkeu3a(w^zg|cO`sxxBD>z4WtX{bL{ zUmQ%rCB&eAE|7O;cL7V=?z^gh zr{>s#S^76vdFJf?l$t$=;MsEZycW0*0_-A zI|N++x?uU6g3@INNivl^m%EAhrkf!m?AivmYGml6&eW3j@IL61n*P(T9i^lZ?>e_; z$yyHr-A-B0_F=a{hA3PyddPRfZY$P$2`eYaqL}Z|x!ZnM)-m0x2blo^jj#jFKg6UgUs59#QJAo+LgQK9Io;rDMDLTMCH-iHS=xz+%YRud!XiQsw-^N zo-2L5I3Yb*x^YcYby4vuA1~RymZr3$!Y$;GQwws~3GVXf`{KsI_BYu-Z7x8HBI+Z( zY`VLl89FvZ>!TrGf=dt8Y7a4DE|zlg>`SuAU(vrTqdf?$3mhmM{&9OS1RAVasaBKf zg5OdpglX#MPURQGY0#Fa1L$q`w8_5mEHd?AG*1z`df?O1j_wUAP|5k@S2p^l5?+g+ zc!!iYGE2lbZaRg+quMQX5@Y~JeDCiZgg&dgVNQ#X;Hg8b$-!AV>1-$k=8mLdsNatc zmD^Bm-}b$i2B*$gBgz*a1)7V({0U8g1$gE7KHq$3xB*hk)_q3mpk-WBPh9mdsZoYh zjIopIx<3_^THmTg(@luSe!a;tneRLW+9y)P&|K`o2v7XXuPEwLTB`=s>A1_SsuM%3 zUa_tv9Vsm0UCS=$@_V#^Nr)wJ0y$gc&t1bpw|P_kFTggqV{Y}kO4=@QFcC6Ob%@n! zF6X1!TxdhWK7sK>BIRB44~NrCrR}WF_Mb})pX#O1YiBi!K6By)Y9N@Mi^QixjQ4rTnffsJbc8pEdr%u`%YT{z$Z@ylU;n zXnb8HN!b;#kN)U0pUJUuJN(CwA-tRQM^?`ZDkwSJ6p6B4j9{Q@rCD5iXwhL0Ct-)< z^fKU--a30^U!k_bWDG*r-K1nDu?dQ6$==B3=f;cA_04SmeEc|Qa47%KRp8SU)!g4l zBLZx#GCa_8&n@H}B{U~Bx2;xN>nQncU5V!Fs>Gm)q-P^2KCwLP@;S?Id3=N{d^nPN&pFWiZ${`y&wVeQn{xK%<~((JNC@3wnr2Vq@G3Eq zSyG$b8_9G+%& z8>r6QT-NiX#V|7y_P;d8k|!tGs>+Mf=o2|Q_a`A7b@KX-rh&tLy5)ZjYm(6^5TnTd zF_8JkkK!MTivN!o!IXSUfrtsl`mZLM%ub0Y0;Wrr>`sZO1#F|{zW*RZ7Z#PY{BdF( z6@S$^NyhJS$YXmUR4)WK>~L*b)^G*hgQ@Uy++mxo&%(e&$1x~o8 zRKpx~Dad7$?tAGQ^MH9Gl@Eq7n}WtuCldzaP2Ofo%Dk-6YVWh33fxDYu50WcXngop zqH2Yi$3Z`I3BV7$klb|5@o`%cZMDue0@IX&=DoviWGtxC@q(#Hesu-`+Sg$2CSZx( zG^P~1CK`O^w(JI^puNu@je0prN~$GJ%1YW8lZRB%R)>p7B7d;XTYFO4yiEDb`B$YD zg!~yaO4@ts*XRs~HZhi_ou-*q`pDv9Ik*|1-enV8ZSl5SknCzAWq zDV9$(ER=D3e3ia$=8ck`In~jrfVv49Zpj6w+k&LJoR1%SHqdCa>IC1Un>RoRvfFN< zeH9Z7R3{1Jah@7)Bcz`v3n=$brmqoCJ{;c3Afzv1@uRuV(s~{_P1w@SDGtGNMqCra zp!;bQcH$o(JnRUn>J&}G{0e_D<#X}xlLt?O7)|jXder|sdLf^joXKI}Q( z+WLCt!1~t~F9$dHb3ArS2blA7q#pZ&^@CH>i;LGzWMuaIGV}Qo7VFB^wr#Rnf7Z;L zuuN2?v5AG$sIaV9cw#a-YYXeaKT^dI?9R2EE)dMKY^-&pKVPX&Vc1=oYU(jrT%epl zxiiK=uLppMoWdL!2?>S3Xb{I7hAGs)?4URvAf|p3!L)?;LX;qd+k!$p6T_(!LsPJS zp;pqgmcUAdWCPDmzY;Kvjb#D{hPnAKnMV)bNj!ZMa%&Sa)8i8%e@`ty5Q{U(BFEG_ zgX1!QB>ZRsACK}!SvC-E=v4KtziP&h16?~@Hf@DUPGQx{&w z%^)PEq#%v~qLvRCT25R3`d$jw0C~lg4>?ro``Uft3kEPHV}3(bn^r?HGk#nL_l4bp zb8)GA)VuF)i48~reOCf!;BalIe<}v?ompF6&WiBs86W?(G1fnvx-l^wxv}v~!#HFCR!*+5sM0Ar*ftztf2i zN+`76CpU!?AP79e_xA_2iQVDtq&6-j+z_)A?@DUK&&xb_Ce( z$?Klts@XCS==#QyexM_=lDyWYf@Xq7g5-dM9NO7TT(++X&R(yM-L4|U^$d<~Ob{A= zw>*Qmt!0Mv*GK8dK+y98v5>^hiC)}{`VfPWBLG2%H?f$?31Gwu1nOj0(pEsZKg^(5 zo(vX0B0=^9v1u_6X*p`^8}C6rSxfS$IDbzwgu#WMJ|8o mJ}lC?qvaV)jF8H%p9eu)hB6!~9|Ae(aF)xzgZ{iyYSW_N-}^_y4_Qaup- zkp!%MaJ+r|@YQC0=Q1{ixHG-RhA0Go_p>2pvZQ@y9D3*L?dhKao~y-)&5HnGC98VD zE8^niiyL$o__t4$+B%DKZA}x@%F-K^eUTyo(E1+Fi%urBASkCPT$kpxln!qD5e~9U z|L#v*$?)Nyv!)IR$8-TJhR}E4-(EhohVc9)diBy#UD_?cmW2&I zUeeD2jK{}=f@kZ-n3&9V>@Rduw7gg`o&@xA-OyR<2ZBj>A18l54hlejy?^X%4l;tk zxIp8P(Z4sa?IYF6S;5iVU^1l8hrAC-11f&Q#Uz->jVS`lejyBT?c!j6nQrZ`Mv0jk z;$ydfnLGLGW`>1FoIsKfZax|4_ydRp$Ze2Hqj7?SoajrU)H$4azR z2K9liy!i}Wzff{`J;}$Gr|(e4`QL**6Xo($H=5$0&(zsR=OWK7-+H`3A)C?djq1?X zp3XqOa*ot!IK+Am5DP*$tHBL)6~l{1P*NBG;=3iQbd7u0C(PS6k8N0VB9!oo%8f!z zGr0P(%Dlp*KTLmsLba&+1O_#JJ1+1W6G;>x@2k<^iFGn2dx|s8NAv4pG7~Xn*q-z> z43YPHbtvXd`oq~^_SGjzQk|YRoiFD zkP>Kfk%(=0^AT^gp9e+D(V}NsyUf8o&=R`C{gpObD*}WvFo?g-LV||k^-bt{(MeE= zU8>YxwawX@NH;uCVuM2lldTus?`RuefNqVR1KI#Hg{_Wb6H12$wxR#jMM4HA~!T2y`_^5n>lwM634LeqK) zG;u5)t^@0ApJUo#t^1JZd*$|5YIW$eZ9pf*NVCg$^z-p13*d{^8 z)3?CJJ&mta*DZIN;n+pJVKn9(MJI`5wH?1krLRp=Ns6kHq4RH0t2&iKk>#wX@l5r@ z1!-u#e@WM!%B1A9Jo`mhNQV`_k>jSL#AaMrw_u z-vlwXQ{14Z=3FwZV(Uq{6~N-?+PWuO;i_{Sp43oq(HA#Cy;^VCk2_taS<6+LDDtUG zGV}4*Cy*%G3`noC?u3!{stn|R?jWV_C1#i!i+w5!se)V;carnQ3P?}#d!~#iu#4L>*cVzc)Z`C#7vDdz(H07rj1O-!*~{6>UTT%g~&_*ZGaZw6en`D=s#8*^n=n zT~9au?cB15xah)~aqTn#x~);$c(R^8JiZpvgN1`(!5{9)_Rw4=;(u6v$UhTv#%J{m z=?1fNS$8aP0b}YvYDS~4ZQJ>92}}?lLmb3gbce#D`!A}Ai`Xgua`VWun7a3<3f z0Mx`w{bEsFeVp43^+8vzLSKcpFV}>+;iX(>5W1&QG(ayC_p`;_d)&#|?ukgTv=$tAMH#O{K!2_!6Xg9pfA# z>eT+Cn|P9bAqfiJluKS4tjK?XM=TLqVimK$3?sb%5UYU5!K4M+nDlFmqM^2NV+4ky zAVp`4O(AlfEF08@ra?svrmzb&=NDvx`p$=88SrTB4PoUxGczwJHwh$|P1fZxRxRR0 zHHyS4dBRAvr^SENCXQ*&n*buEsrA7YTPMvF4yUHvPFgqwT*B3E3RWC3e`p~X)*_$+ z!R8&E%`L|8_8t+~-b0SJIgrqmXlvrso_?+$dM&DYrE_jPl$)bxpAEmWb4W&a|@wB9l6n->yu~G9H>(Qwik`+g_vj;AI zGqMWt7+U=5@2x|ruE*P=N2RsP5WEP_IeR_%)pDWVV&gU^BX?0Qz7mfyB}(^plqbL& zbyP-v0A=gd{PowM6=r{n-9Rhzgt^)hEKn*@Z2hAQ&R9b?Nxq)F%p%J$Dd63~qw{01 zwa!U$*kg_m3RFUDcrtzOYpafQ$I)R8QYigU6nbGWY5@LIDHahXmgKCQCt$@FH&ioa z7tisXs=wvW1O-*lRpX(O5RFRt&fL!K6wT(i%`ENsd$RlL0u#xm^!P~{0`hG+6|hTh z(J#mx9*|f7XWxLc+Ty>sH-W&)}c(h;k<$yGWXHWdZY6z5RuMVf>_Y`>~1xgh+kfNp8 z!mpLcj((+7_e=O8tYM%W{%CvW@mE=7x`dEiqUpu_{yj$RN&`L%sluv7@()U9If zqM_C&?IE=Aa@Mh0^Oi=a^zB3Ka89od+;hKi8NhMXFJVqFo}uucf)tEt6y(=p6|#_j zq*SUCshyQ4{T(tWSsBvI$rSH60iT6GWznh*Vi*5H=GkpdLIWU$_jNws=R<~hxI zrV`duOHr^BpL%2r8F&fw6~|R{8?WoiZQluhPYCS%wLW8OLI8ecsat?D`*9O&(5o>L zUK=>;$rP&i#tfU%sxQ*C0a`2y=O@gWjf7Uf4}<}XY)(DINgOduA8mZs-6=1UF4UV$`8 znNK@)vJW_ad9P$T)qd;w|V*HT8z9qc5{3WI{1m4(sOc(Uy zXWu&IKV8M6d1o68s8BLfiQN)L=0ya&Xq@%p3jk_A9fbF67F#=gThRfZ)ye+?G(gM0 zufW$jsR+T>{rn9mAqY=@3QZKMj{VqUzH>la_TFN~un(KunXidfM93jQCVUg$Z_H$& zttL1A*0V5xzAZ(@y4cNx|6Bh^nC-&q2!9!(9hHWVE8P1>Z-s#@Q6z=O$(~3^HMu5S zBy#Kz1*f}R0w2YTHBUF-XEWAcs#=3B#bz|0< z>}mCKSbz8OmUO}%YevP)-gkCqSGY}w^m*a7?C3yuj?X=gtO^*ul*{3EmR4MuU)jG3 z-?)p^6>`CwU%hPFJ%)mlWe8y;4>q+|h4U#KY^yj%>C6 z&~cH4>DuIaWO3VnWt|$c?Or>1PrLnU+py<^GU^+0RWO9o5@6mokS|WcR;NNt***?o z&}Rg=z2*4jzBI)qEkQp%^(My4aT{D*LaFd6-2%%3KpiwzR`Y* zP-8db{L7IDL?FB!Ev$}EDgNw(7t|@Ku;%Dg)QB;ix{UzSg z?*T*1$*?GXe&l?uv{`pc$3?w+)tDQoBSbXFaOzF^^0VgKMQ~rcq0X`J0<1rrA`G&E z>3g8Kiu|~Ll)Mu@G4Qo$)i%0k#_HTDOfG4`ieIO~;SlU0TohyDAfhfJZIfDK*4f{a zNI<%Vd&`+1oT45Llu*krv-OJ!D&MG$&VXTdzAoBs;QJ;j$IS zS#OP9UTGN9V&wIYE5%_wC5~@WU-;uvFP#>Dy544%6~6had@AU-_RB)`jU@BB zRqV{^Rcx<#Xiy;O{XmlDj>i8E6Q&}vu9-rD^xTKryIIAHlum867-3o^9SN3CqDNNj zfi_JtT#ReOjDNl4pzM%z3tLxT2i_rJ#jx3*D6mYPg(_cEiRhs%R7c_)pi0O*z;b5b z8ygaTNjNDHG9+SC?q(j;`)az)7fbMM2{u*ExJqoL1DwdZsfK;}CF~ThM)gtkG*e=- zXfsN!PxZ4qY^BEe81`-iHNDNB&QlZ5+Gj+w@~;b~Z7t|#u5`6>j38#OzQ1U?kTMlg zKL5N{@3Q0GZZD7nr=IX(1)C=+E9kVbRM={NJx|gVpncK6GVBOdp(T3Tp1e6xl$rO4 zLl9K^0vmkUN!B2g8nL@5*vir7VOm=d*wOpKbJMs>?!f;zG#)YPKiZ3QIxu4MRHbba2~IL)8~EmJe8jS@iUM?h zdb%?36luJKye5+p!auN15;FBDDWogC!LwMLXFtHe(7 zO%uqjuLxf_T-^tVoWAV7&z?N^!UOXWot8zHx*frS0e=^UT=od%LeWYxO=#El$&gbq zI)JX*7+$w)#&Ka|*bsQRTK?)pBg+tfc3riYE3Svf(J(PH=&7(iBvbyvT<%~D&WL*# zD+Xg$Ws+vf6V?P(SNb4sk6?`WVyP^{zCi!2qGAyHHcl@@c1|YO=!obBX6@jc8+wlS z>iN3mY)8hg_e^0$niRF{uza0a2)t#oerU_q+v_SV{G&@A>jl_Pa-I{{BN~K%;C{$_ zj%8)H$foA^Hr$J7>8oI?jC<5XH+gb0a_#%^U7YFLpZQS${FA|Lu#Q;bEgm1LQJ1P_ z9{sw|ptkVHrZn3rL_ar-Y#L&bZ`?6^g$OErISV>x?$&QNR+hxVBaM%F;5q0?w1k0F z#UpOJ@JOFqno5=fPq2*BsXTdqQxNTcSu#0Wv7+w)ch6t3Bx@{*-m9AEYO^%B<8cV& zD^5PB%%(c(D`-f(_RHvv$s>ZIOGJ1b_`Fon*}!p5GkTJ3qrM)S40#^*NUo3Ij7yE92rwN-iXW*19GzX%8tgbgfX7P}? zMUL3D-h-)@*9$7Kss>dTeLuiXpon=}P>E5>dC#n;*S*PYjW2*6Vxea2fbyv~AI-84 z{JXL)L>W7=Iw^z;7a90$_GMecn7hQNc@Zik%J=LLDd$knMu5YBXz9j}_|2c_!_RpL zrbuCI{kQLJJ)ljYQFar5zMGu~h-N1*&8IEh$cXI>$cz!PW&#eUA{XU^fRjV62+3+2 z!WXU23M%8c_n9+Gad#|52#;{m5d7kqsQUP1V3 z=Ef_ij9i4w%Tw}+@l>;rtHm8-fFgjd{^zEehA#g#l*_ z=@{jCEM2L%i--|{U|tp7$4$4EWj?czrUUMwpw3Eqcay7K;>y8pi+(FHU0mAZmTy2?#>F@IT8A z@4*Bv8R^~rct3ov-&_Xc)=kbh&@iJJ+j&P6uL-{8`YSX1ZlZL_f%cG8Sx?JoWMhb9E^RH%Q)Q> z;bUoxUQd!sP4}LG#he|`!-A(tLAgr}hRShGTa_)&)3*0b`5}zho;k^%g=xvnur_zj zWl?)?HF`#WYx}7CTXyqJfv?#hRN=k`P1l1pOp~V}+vTU8w;BRp=wHv z@`uqfw^;QsqZBn|=MF#$_F|DIpVOT_^lY-)xOc#RB}OPes7kyS>882b78Pl)&BD_U z?bQB!?|ONbalHDuNy zZ(*1PI(}~ccH28dY%=h3GZGQWW1V=v)rm-|`ijhb;tqkqk8$oO5qzj(sds|EhOZ@H z*H*885NkVFclHV=TC`roPQ`vy27$xC%3D-x5^OPg>8ig5f;{IR*BF1nkX3%)r zZ}RVDP_37W4AjBtT8iirg}Sm;Vo-RS(0nC>|CU>aBOk!=6;qV^izGCRfKh#_x`@0fBp8X6ttc5(fLfF)R&>x(Cg^Mk!<%k1y8VrPdFoxp>m#x@Q4QD?_ zlYEs7W{>nAr&Ys?j9m`vtIbRySG^JPZ)mmy_>OWB#Gx=USh2!oy&aBGTE(|DNa2`r zE}%qo|8L& z38DOcRTgi0>ANFvo;Y4T49__apS2FEI-z`(t%0L?6&%H|_FO~PA?~VIK0O`7p=uAB za-^~^eDSsI{b#roxEsSXTz6>2Ldg?3d@#%PtsfULJBXAVHQCDw13GV>h_&A{jAP6^ z<$LY2(y^}mnZGGd(Tg?K3#$IYR8D(;!YrT9uZJByX;0zlcy#c3kDQVQR4*_Twy+Ce zd-uW66V=ag>2UD5?EXlL!_qINo~LyWn(sWVlE4qEE&CN-!=;D0Ey0$x^j9Aq85o+O zRYJ3gqJ433Q%|Wbm_~x3#%%cMexPWrS3q(|FK^=UQI>T!aD27VEiq7gAWjp1I?zB) zf6VXH1{qt8u!f&Z1PG0yX7Pb8q8}bMKlpdc9MFWUTTE8&h)lM!p5B~?Y z7*k>IZ1Xu9`_-3mp>Oi(o_UQ4eB3#s0s^ zSD)%@7DV5qy45^?Y3PWKJHjA;EW~kZ4jp3BFFQi6TEHL*+%gI_%cO`22#U9Vt@ThqgNRJ1bf`FwVmh)*nfR zZ3AE5gx7Pw&;Wbh++3fjXMO}Ff6OG(=dP@HdIY;JBa<%WC@^4EaE@x7{5c0q9}GwR z%5`Yf2GvmFI31c*>h{xra@6))TmB15o*(iEr8Tt(WD2p48}=Y`^=*^(ij6mK;%j<% zsFOuA*m*ulT>Xka+A`iJzTwzFvy=SLoSmp)7G{xq( zj2Nn;pHp@gN;zX&=TwGKoDukz0&Pc41ZsHn= z^*T|~yN@6ca-|r5xKy?ftU?q;5S%4?tq1t7DvjjWYn0D3Dp5C(Ts4*Xa>MwGT?b`w z@7Cdc8!Ip7L_mCkqjL$fKbK^o(`oZzn3c7tfm(plkRlXQ>?T_8>&CbAXW3;`1kcyO z;_Q68>5s9H=u1@mhBIK4?e81-6}o=qTe6VAU$1&6uVS;RzToTj$-1} zBKcS|sT>Uhf5q*06xr}WR{WzMtLQ`%?Ux0ZW6A_^QZvUEllQ$Y& zKfE8O#EJ%+VGB|pW4xl@OPQYf-FzoytU2<0neUlt2W9J8CAAml(d=yDjw<)9Dt43$ zyn%YvxV2$_)2oEcZou*9X3FU>c0!%@6UC#*$~5%MAF?RM*aplaogXzXM{Kyc*$?BN ziA;B;_$tnY`Kw?#+&DC{jK3x^1#%UlwKuSC)A6r8iShx5-2RMAgJBAYBpR5XoN zOJfmJ5{I-GFS4Y=#XNopp7S*&v2cj?g`js2x5FTRk2J+W%@~EM6_hoRbs+w7HT?$Z zRo&rn%?DeLQF(`6Q8h!lx^MfU9jH`hQ9{2?K2a`w5w!M381rC#LDGeXf)z7c7_@xi zxKaPs|GAiRxyko*uqm> z8=fkahgWzFzLTw6!byyBP5jZsf@CFj3G>t@$&++tiYyjM(`#0{F!v)%o%LHYmjum! zxv4s>bla^LMggha`gSVbA5dq;hl72^4s*a_j#KASc8tN0+sPSWi z(HjqE%_sr@O{M13Pn<}}t3eIbDmg>*LDky;YhRJC!&k+3Hm(XtJ(~VH5Od=E!Bf-J zBm2}@f`y38;;5%*_qb7?fM{Iq`Oe#aX-HSPVKCm~6U(nIw{!sJ3GV1&q85qFwSx{4 z9wGnL5q+Oh#JL{Y^5v>`qV&yP*-eN;2g? z-R9l8K*QL~JV-(ma+UOXk7~z=N6pi$G4N+QEhFDO1P4Yt2_U&DNXQotT0MB1w3E39+{-( z?9;@;@H?o>h>sR`UcaJFK4lL2(U;7i!e&GF?vPcuCniz*+=;mM(;|+4v%opHU1%Jr z@?%fRwvP2KuT|r*5ft=lZ=D;BpwR`zv>5U>TJh7E=Kc;ZM`L zfe?U}Hu`iuSd*=khTs=}g|X4(RP80>OHFSF5-ALW;bC)X?NEa5 zTp0X~r;8x~Ro&2N0p{0jUeA={51+|zMv*&a1%(R%^|M9`$mLudD zm@dFHY;q-p>+q+4Lwh--Tof}Dr$bY9ReQwoeA>lNBYx^jYK#lQc#X9v6@?&Pv6HQ? zugY(6pP%Wp)M6v-TNg0I%(OPm$yS4!MmSVcoBBEP58tV=VbhlEBfM#&*U-3(PCCV~ zEiLRJGei?~Ojl8$e<_kDe609k?$i7M4do`akz;bpZqqe?26~yhS086lO+nb-YTX!? zd91lZck-}ii81UaEy@ztPd4P%`**F!bAshLU90CrZrU6DsP2)_Qq>=!DX_amobYT~ zz}zIKnxL;!1bH7Uf6f$94wR9LrD&;b8E*GjaE#{-OI8&`*`@Zbj2F2sgm~R_4d&hqS*xK+ zpI1@eA^h6SW;m7;{VBgu)WK%Fo5<6zucF7hsfbd4lkmzH*IKBRh+nAR>_9V{HmrAt zQ;O?*_hQVuC+Cd*mT{UlhT|gtz0+T<_UK9mo+Zi>XPdfjOCKTo#T~&|LzlklW^x+I zJm8D^Tc!7)Tj4dAm&iXb2szb;e)TBvlFPC8wnYArPCvVj#4kLfHucu=Q}+!#G9``} z{)-BK`W!Nv%L-AhM!rn|JR2sigFGx`m@>Y0YrUE6fpU>EVy3`bwIOXw{>V6@Y1mjN zw3)H*)CCsh!b<^E@Q|RbzuEzxzl_h#`leEQ7b6%}oEs8!WKJDpY5_b1i_@En^uFH0 z`-76EA*9#k{9NV_O=0z3)!x;b^yvCmiaJPt($rUreNeu-D@>!2XObRjk~L8ME)7z* zL1T$ckfxuGw|Q!>NIr*rcZkMb+z;(GI}45-D2~hslyEXtR*F6UD9PKZ5A<5}7K@Tv z@-99(!@7X{kgpw|AxcSiiZ)B0=R*zJ4%R;5X}D%Y9*2ld|tF+Yf+^9k9Sy zhtLl*&Wly^7o}R(lEK8}C91y~{L`2;pu#^f)~is%H>DcqmpV>)K6PM~@j6@=%n&QU zqc=K*c0!yoD9GhK(8wk)3)1Va-m&R_c1+xck2E952+|5!78|qwP}9C6n;~cNIb@(| zw`{tjS`?BYWRvdeT{HmGReLU>9lE!$^MZp)FOmqK_SXkx9QD=_UY7q^T@KawkUFuQSrXRcMt%7&7E+6Y$7gz7XB zdz0f|M{)6aw&~E9NL-Yk>Vl1-{gDuJoYuJgw3zN&GvIq#c^O;$ql zVrc1`7N6vW!aSG_|CXU2(;i5(BkQCZMiopO;o%yp`byZxxqLf+*Sx^}eM&RtF?`;T z&*81bf#3R#`sZ&M`s&=(iOy1#6g|Ale+Vo;I2w&b^H$T&psC76R7STCNOLS~};S z=^iA?DbFDs;mY3j__J84gQlmOqdI^-i=?lGpCHM}!UT6f6ZRj#JJ^hzp5ij_^u$^iXo{ zgDxbB{5!gTCIK?*LrAEIv3JqQPOoIVqx|(dkg*DwtcFs+_y&L zun8yF>K)w*ErM>+y$IDtX(-K*RHMBW6v|9*642q`bngB`yJW%-k(iX+GzIf$HTPFN z-y>X;F(cm~4cViiznpq!Q#aILOAn<(kI_*D<8-`#E~nK?*v#yrH%96e{*+D*cC-fr})o1<^>33C%>5CPtvO(oT^v}w-OK9E0P?gepKsBmr_ zU2zob-VKuiv2!fNEF-R<2E2#K@%@=!KbI9rk=_{kXMifi(i;})#myVlEbq1uc#PRy zE#}F8R2G7bM)%vM5N_@zcpIfGY`PE3!u%HUJMxNkOH}e5IbU))0+t{H%t}NANA$-xvnA|>KUcx<8;^Nnp zvyj`vcR!<}!4wh8u7nMbWWt=7g14TvXB?5LJ#wBkUR~O@+4&NZFqU0*cL`EyPsvMW zG%&m&&o|%0T;?+|cDGBzF{!%nktW!_%Xq2`s(k|=LJy67hxJ*NW+kKk{q5xZDYOfJ z9D`Sz(V{!Vd$X46cLJUfk|86ke5B?USn8BS41H=W5}#?`4}+y$8iejuoC<%C7P@%i zMeC*`uX8mD-J{$(v~?N-2hTRiMN!#3l?q5 z8aAXLo$&$k`IG>YC)>Bv)n6Og#~TiRX=MuEPuyjvAtmL91I#CM3kVi-@;J?A-3(5| z_cgnHH={_j1n7)IEOCoa{8w|YjBMFnoKif*-IGZV@+=tf5$u%#!-BnTQrBsBhm0;I zxhGn^;q6&s>`8$%3B9T7^n>=cIc`I_(n^`%AL;ita(2{k`>!Hsy-w#b>$wAe5KDyB z7D6tA>t5hlzpRYKm3<~@N3?HQB56GGX~(!$PgpT&WnDeJM)x6*VHl*~fW&*7$-okd zk7TY&$Vgu7j5F|X7w!8Y^Omu*|Lf#?4a`D=MauPZ)YzJ6GsG_|2*i~^Z8W@uGUGTp zl<#5@)9ur>5J@^jc<(L{HidMGG6?wYFXTpErP z6=Dl(rT13#Ie0QAjulT3EubjXmWX#<>xk5~E`2>DtT;ubqU1fVx2~Iy6`laGX4uUY z4HZGDd_U4tFf*!4fw?^M463LGs)-@jTNHB(iHyW*O;UKfUYI_SPz;x)P2Fn8Cr-ruy9d`84e8yP z4HEd_+re|Hg_pZNZhZ^ZiDZv@D; zaqBgnV*7oMai$c1r{i`J5VNnO^ybZO=2+SZb`uZgaromp-qk~`%bKSr$s|f*#_>FZ z4V(;S8GCI{E+UTWFG>-o2^A;bix0K}7pnrM?2y)T8Li0Q>C7$`h0KwymO+~Ii!nss zH->S>6b~=Zf6ou^s`Wn0w(=QV$14KIxyNltc8p)R=_ZJOGke?1)g1>8wuVfISy=`$ z;1Cxl@RwuF#kcAC0H3fsw3|&ne)&S1jWo8J&h`F?CX&0PJN(C^%OURvwv>Ns_DzrX)5Kf{r8XqJRxPl=4JGBF-*H#KFc)3vv9!pAJfd+XKw#o1++YF8^SFr$n1w?xO z4`1a@sgtv}$2C%=TbUhGAetdYzq_~`PBNhC#;exs`qkJL98$U=}N;A;i zh$jpi@GBlOw(_NR0-qPzXx<|8DQ)?yP)_yPMf77k zK2M!5H({(*8;4?#bmX1K10$;^1mkJ64@9uZTk0>YC7K`O0(y;%X75gal?Icy z{Hx9-zclt{K~SRgMA8JZt_cZ3X?G-ODo9mnz;MBwB zQZ$tK9>sB40;Kb9kFG;}5c5&OY2z~DWxlQ|o)M89Dj{A-ygL5;>EwZEk?sl|WWgm? zruagk1l?ta!;i00VF4b;(6iV%3+`>ZK1N7}&T2}86{(p~mN@Tew? zy)7VA`2)J}gK6fW2PSV_N@l>FW}`aw(YfEnYfMG{{Zw=lv7pP(zF?$;=`8j1zVP$Z ziP&dL6?CoP&*40o6bce974nO-M9dmaPHlB&S>1#4P>e;q`$?|PV^M26-2_EMU z{a^3I?!(v69(9b2TQRNGhWD&Y2r8bYj@w$R4+M<{_Z`w!#rKrI?)t}4XcFC}qjC9_ zI0L(IJPF7I2p3KhPP0si@K4&TCX+rBpY7vD5T;VO>B&gTT}6yoUVNTY9SbO~`xwCi z78G>lrf_t$>1n)wVr;uNURrScQZeaQ4HN5$zlP1E{WEa@kzf$VrkeMx;V1!0+HYe% zkFC;b|C)go+v*n_u58NkH%4NzimKiBH z;GQoe3q9?+446qUCS`()eRH<>{I=qpbLU;}?}VfhvNkYHm@l&`LVkQJ-BdIiI%2pmwKUoO^U(cs;zF@TzaDJs@M3!4b= z92yMLSi#B#h_-)}Mxf$5Mu(*1-74GO;@b&4{?0;OyFx_L3ea7{?0=dcK#i6s!X%1P z&{zV0+*V00s!ibOh$w|Q@||K7%1b~oCz#)e?WdL#!BX`4dE6B=roZ0>1M7=iu~Z(Z z`;6CFwLHA36%}4<5;oq^#3Qv33eiXwGc3FoZ`MPYbwO3aP)ZiN#`Q(_d^GD#)tX;i zP6xeKFU@J5@mxy2kzse$Lg)Yt*-23@B^~mAjNrQsNp~doCIsW>(_8n}K3=5Std4WH zW(L!FG*+>WkL{ify(ZC^rsM)+Nj|&1RasbBk%^}(_sTI9v&C9;!nzGEWbKV~`kciD z)iz^E`=5$#kF?zB+;I@Mz07!d@u>-w?LsTNa2Ly==GOqpf?O^2!zWRi=gPhrZd&kv zWtyuobt*=p#!8bUu@oCF%g#6=N#5b8b8R~yZ%DsWPEFVm znLj1maV!$??!R1wmF#9?A2ahcGsGNVxC9%rs3`=W{}xJ8366fqch9-))&XDI<)-^Pt1RbitIt#!M9l;*hd zw*(T7kd?zT%cI6jmvP~T17h7{gW$Pb?t?HiO_@uJO;!`#by!hIhSj}CN_b_!y9O;B z(%t3=u77@v>1zEx4}a0uIGKd%{a6Xd(5#s9i5`}f8!_AmDz#4s&j>4f_br{tZIDFT zr%6pU06^@k!J9XJ85)`1bVVC~@o?)Y>(^A`2n@dG3w3;1YH|4-d1U?$>x=ku*_Dac zSF?S%7#Dj4w$t|nQabwl>d{XGy?x16)Ss^4A&?EKdn1-oo{*gv*v_{n#Nn#8lc$4b zIJ{Asxvf3J)nu-OmA>HdSn$VaPR|r$kw1OWR^&kQi)yOwfEw7;g1*gvQrkUkefOkR z>2ysVoJHFjlZK7#hjvJ!hW||r<_J69jTj5~F4lL>6{;z0(vl-1BHUKjRPB)JekY#6 ztbVMA1`;O(BB;XgLJVW^i}ZpXxaMGxqSa)D56g~7PVd)I{AR#$unT*m=>$)1)-ewn;y=w! zQOO@2x*U(Q5fX}#j>i-*kttYAM!CgD%u`teIG(%BQrVFe(R*8eidj6+DLlUVlOcC7 zo=jeOwiHzDqh7r4bw)zL1)duY=N9ti9*qQpD9Z! zkTKwi+e*h$@f&exE>h>`iJholKey@#2~}`%+wP$r*?B8U<1lvR$A0Q4VZYK0FFsMN z;$Y%0jQmVxFNj;D88mnCpHM=FQYv>q;~F8Qj#=Z)9H}6GnG=j10z`{Na!SCIyAuGZMPHgJ$OUd^>lG@3y=9(&!tKwe0 zwmgWuxLENvDMQ?g7VBcY_)5$1x!N6rI~;7&%+fd-a~(Ult*ZM1T^(T=zXDczsxvE* zFKjL#@{;;Y9z>XGY2V$sKbN0LzH=QjuzZJ_l*KxK;T%&lZKLGrx;u<1-bj!6v2%Dq zk9NbP+Q zOqZI$yElrW@RRJ}#-up{8JDX+TsX}+#4ujg7mT|6&EzrDjTCyY$Cisrm#BoZaN#O43<;zE96p@tIS1hjU4 zgAfC}KrTA_TVMH@cTA$sP4QE4`??a+%Y_zr-?z7@o~4C8LRcE=4B|ijbzG@ow)6ZG zs?mdYXo_QxhCS*F&Zdv@2?m;I;(|F88`8#70NG{kvQV6*%+Ot>av$S}!zJ^kJ*`b) z{bHfC$w%>S_?^HP)i4-dU224*4LoIkbmFz+({9-bd;E_TispBv`uOB;_BVkfpO=1Q z#O{mx)N^@YH<5%JDsHw|)*@_X#*{0tE@z(q3a_CYkoYL1z&=(AzOX+1QkKlL7QIH- z)^z5Bxa3>LdqGn63x`U1zyCcZBn7&Vdr3Hulq(SK+QZFEqnJ(;8K0rb>{kVUabGG* zmZK3pY1vYTDZO~dQx$SLFiCP=lD|1&2H+u$`4?X55 zByu3MrO_r3k-VkHyaG+cDa~lbL+0bkYSd+jR~C0emY_p&q@v= zvji*3_0(IVeoQIA?UGPdU8iCB4FK<+!0>&Tgi_(OSvPWcu+@m#@RWIfZG4jq=5hg3 zJ;C?2peW5LJup3A>OEx^4e-Mw@Vb)$o$MBsl>W?j@ z2vJ84sb@L33)mf z*Uff!D#`NcHd2P4J1>IvR%kPa?*3!7vptJ!Hc>LPwl;qj=Ls->&C5Zt93UTvAGqq( z;N0b-b>umwyw+K!$LB+$HrK(Z_r~GV&;lKkdI>5Yze$s6l&Z;8t0R@%Jjq?ZnmHJH z!VtpYYfx+vLatIRuqACLDd;GLwF4(s`~9O4;gJn!w$7oO+*oCOVl7aO@QQQHF9fAI z($DX_{{ycc$XRTETzZ!zsIpd?oCtN}=4bYxL(3WD#q z3zi6Ti6A3CU{g*OMQ_WLzL8Io?LQ}1NR!Qm6V@{BFlZl_LAS|7I}k{@+(x)g-n*0K z_AYkGc>XNJMd!ny7|!p6R13qSXZ2V*Op+yT?^j)tjhG^*vVc!ofH=Y<4-%xo+OhYN zK1cI-5R(Oe<)gm+nHp@1mJrg;P!Yzn)@cU3Wa)5}qog3A{}l62 z>*z-DR!8FU=Ffl#_^;7lh{Ggs(1;(aLK)OraT^H8Z|B)GM(?Fybv_KN`SQQDZnQ%Iyd6ujZOmQ7YjuB2_z}?# zN>^iloC3_aSnDQV-k1cf38nQBSN`k*C0(pZ$35K|dwq`E(7`_wd={}TofHTMSnu{_ z{>NGQBLdtSC1$FN?n++`3HnssJA?!nb&LwY4g!U64B1Azi77QGyuAkqn{!wVp zg12el%Lo64v22^F`$?aL*rim*o#+^U@1Te;gpky5)zXnLyGO@wCgy=_n^E&$*1Os6 zz8VJ=BG54^D-Uj61P9DN$Lh$n!$MBNZ)8iNh4j-+YaUQCr;p` zuqoEK>%Qsiqo35q4&WStakoJ^2sSS!iXen*+>OyhU3-#g3}+-|E8bC(){hzRxlV0D)=UoMhpqs*&k8pj9e4(V4XY zZwi34?-6a|i>u$xx8-~QbF=R@&G%z)65X{~RZDR6%x~-L0hym6}zmy)$R!=4^r?9+;lVnM_npiM5b|@mVUJSk_F`2nWP1M z-z^NF=)(6!)-8dA`SnTz&SP!JZQXyaq~gZxEm`Pl(=36Tbd`l_6mfEYSA$jo$H;>E zcagg)hg=QX7^i@SbEw@`zoKaOZ!*gA=0B`>DTVdnRpZkZPjsz46^F*)?G8<%r~CII zep`$VHaENyOmPwIwyMhF2KH#}9{nVAH@WXh5|oD5hDq<2`q+<;T{oq?Id{|fA|Ie< zPg88?1bBwZwX3wdOq)%A;kAJ{K$p?cjJm?m!ZpgUu_0Q4bbF3Zzw7s6D$X85iD^$Hjq#;5I{}HT`%~1Y-#naRAXo=DqOt>Z9i1YN0JOu&00%mj4fSifs>I0GOB9n` zn}z(}x+HP&f}=4N+z%Bug-IAZV`6rh<)`WI*@$V&zxxWCA|9+jYjR;R9IqasDzege zg17-$=wE?2jEQt^pR-ajPp3xr*`nz@(B-$=9#G$gI*^-xkgPg?VfYP5-^heakZ`vZ z{-AoLui@+KpEk?g^}%~?ek={r5$AEOpVWOxZ0wX{D~fGBE0+lY^~?A1}Rm+Pm0Y6^{8Z|AO%<0gCr6s|Q%2E4Yn{v98}hOzDks@i)6nKX-s5b7zAEQ<-Nc2qEle2zJv{X3HXKKh z8OX%3q*dmf*E zk*dvf0(c?-a1k*F)uKBt4K({eUG==D)#kILtloN@8(l9*IekCl`!zqf)L=Ai4Kn_!m!`V8TDGqB0_Mwqo|l+KYzyUoMgr`# z&d&2;Nb>tL@wptKxGyvj8YwMSZXBuV8KDCAd|&=h*HrK}o6_k4Ope@DRVH|SE;}>^ z9T@O?bB>Q(2X4MLPI|>i?`gqcg~=9Bz-&ZK0{R*6QH~DRbI+u~5~_nA z+)x16TWa;SI4G+`B{{A|qlXoL@5J)43kLCsW!eZdV}-j24cT;orBi9e+;!f5$O$LT zj%4BS?Y#w9Ro%BQYyr|O9R?+}H+utnlLC^`AWC-#(jd(iB&9@@O^SqcBhnx(-JnQ! zr*z$g`o8C7`@i>`d+)jT`=0MR`uIG{!CW)O{EabxW30hihvLRQkrUJ0ix}df1)%Mc zMx1ufcf^Lv-LpRZym2@PmjQ!G(K`OF1KryLrzz)rcs&c;xZd4oZo{=XX9V zY!yqy++ec2x~L!exC3UF5`nhq#jfvXQqk>bM&w?7LL=FJ!gYT``v?@Z&%$PU-2%~`=F-JbisR?~bmgnK7)TC6 zqNRUu8aUI~1^af)n60Et#w(XH!n#m`z|Z_4RN%$j47wIq2hEs!G8>j?T<|(PcNoh; zb_B1r@6wi0ieir2osRA{c3Q_Qk}y~LS({Tmg}aP8+NUeyV^4FRcWWBV-u{7n!re|{ z6mZy={fVpWk|hD$ai6DImq*;QkkcW*J_~PkEW13BXK5ti`U+AbA7nSYc#3<_j&P0} zBS!jagDwqst5UmfVsT+aZseARTWIFEXO>kJHVv~jii=D#lNlPSE`ZHAL#FtVi6;#c zUN^vGKlrO<Iq z^Kj{T*ujkScJu^O6Q@gj>aBR}WW=|T|@}MAUfJ z*Uyp;_*G#gVAcDlwIXM<%qTfFT|3kQ|lurBkjy*{PS z64Es)F)-%h}@47lsrpBZDl9E>{`Li^Se)4?2Zu(g%l?qW%Q3zZ7 zJ{!a}=qIWZJbh0gElBcHiDR*g*v;Z9zBGc@%;q15$M;ki_pdYxH%4JC2jl4UG=8MM z8T(uv7bEC%X|C3_dHMz=Oju9ou+#ujlEu7-j-Jix>yv zueh)8y%(Yu$EGZM;d*$lc=oR7c=f6djd8xl!(JZr3Kybv`lbll1?0;Oo9GZU^M>fg znmN5RO-f;NI+Nt7iQ`VBlx)^3gztO1p56v8^QC*_n#EUKS~&G$7jk2rbrIvEl55Zz z87cm;fXR^u5-&Fjh{9tueSHhcAPd5&*`c%6xaV@NIb{V|gcosEc-Ap@irH4mBz9NLYUB)Yu1y zvv?`L=W8$Iuaif7o8BL^OnNSAaPJBogbUMv+*a?kX0juFV`%@tcMS{7p7)5?q<9ke zGP+u_nFgwSRK$8ML~lEZX$xX0TfeysUB?>Kpy~*E7&?x2s|C*xiwIwsaz$SMLCe_P zFg3O>viIzuG$Ag*ZCQAPPB%gsjE-(aDQl6B))zOwPe&A7S9_#j?2}bHtL{V6l5EZZ zv8wn=16l~i%J!amsU3fFEF|VBVjqY037>@s*ALKGq(NdKPCOra)uu;Z-<^9eoIkiZ zWX>jE57-*bxavh2xnJA52)#uiML(yAxlV7e^EA0)l-7lX5^ZAXxg+BA>exNQtdR|c zxZq8eSn%7*TkrBciC;+Gtc}KJ*UkQ%n({n|nOj(G)JRnwM{tvaUKV`?h(8Gj~EUUoi0~Uk#!3*D?d#t&5FLyl7-02&BkfwgSiFAy_fD&^1(xw>cA^9BMC92)% z+adBH++a_CrqO9-g&fntj=Jv%1*Lu?ze3A$5lca}x{=nWcXUkRkU^GXk8r2Y9=*t# zXsNC)%BCx+=mp*XCUEn*?(CN@3fQ0sTCiin8)lK^M~Xcqayus9xO0Mrv9^x-NPV%r zLjxQobLL8Q6F=E5b(p-Nwz_vOzpbbayVrHYSKquO`IGdpuKpqIi7-Yf0#U7*GtqlD z@Gy?bTGLs3DdVGA=927ymoLJ~L`Wh+qO<&JKHlb=QSq1*25!4g8pf&~$KBxyGZo!? zqHa}rc1|;%V1IMBWyn)2Vh8<^{kwi&`u46o49m?C(n~B=;_o1~(Lkr@m(Ahr>K$@G zhV!zm-_X@==ckaC(>>xj7D1#xctIJk^_GB-?&>lWNBJA8vm}exYZ{H(q_aU*>n%UE z)SU#{tuCqx2x6v#+ySk7hVYdB^SV zw7E1s6Wt%_zsv7>g=Lf5Gmp!R_ z`{?tvi6ao!&Qf4={^s4iF)9SSZpL#HBH#nvV3ZC_7^KuDo)!~ruvmLsNd26DMWmax zqb77Pj@000LLD|-?Zi*X1&C#zOZFy+k1AMQjq~f+Rw_L|b)wRFR*tePMT_?apY%6T)e5i21 z@nH;w=S{{2^u!c$z2Hc64blC|d8|fN&P-()_{pnHAz`gvWJm?=^0POv%IBcUl~#7Q zx!z2S;XdB0jGzcJh2X5dFOxkTSGu+u%t`sEv9nVxEs$E`5ql>oMuTZrL>Hn2XqzrM zZG~fVfovgM3Gt2cY1qp@5Eb;1CC5v9my@aOj#q*|5mYB=fgF$9Ui4kZtEC*ScrC49 zrKGu}U*evvO*bQY#zwu||6W2By{bC7i-GH%qmN9z&?Tz5%WZ+*E`O8DG^v(-!R-FNOvps+s9?A==gAj;{M$o zq)1G+M~tO6m-Q-=pt2Al+Z?zZKlRRX{df`%k@{g=ywIF?OFVt(;K}5noZ3@2lX&Eo~}nQv%=xjuXDq` zT#Y)yHjLwN@5evkBCamXd5&*iM+l(=$j#ih44{NINU?dW>V zj1Sr}zi0Vyb?K@tC?N*17_q!Qb!nG^d)aD`nLSsOJ-#EOK($OzIJBNs4lkmW+Yiy7 zda4{@sTomkY(3${+N`?f-O#v-ll$eqJtnEqa0^q<>CLdITb4SA$d2m#)hDJUg3xZY z+5>QkL)fQ!oX{Z6ie(W?KPQqQ?Mo7tmnFMd{WNjrL=R-v`u0^!?yngWXS<{+9z>73pK4}eY5&%xMVYVBN#p_lK7#Eb)ki7r zbywq@H^NEZMJzE|5UooFY%EKyZ&o~fnRItfpTh_rhKC7>s1MC&%g6Q+&%NkhiX2_*Vh4|&H9XoVq>whE=g1lF-9luhlRjOGUl>(ZS{k^= zGJ46Z+AeHi;&qyRA&+$G8V#jP;%Bsm42>uugHFOCYffi9Ul&qqrC7M!UD78W3Dvk! zkH!@147gsszc<~FRU;o>UN<8TX{t->}JGS&m^p_%&|9Ht9FH2$}UJUh`Q zFd4F*^RdkB?>L#s>AzU*oxoq;<1Q1C?DaU=U*+eP(woQ5R!&c#G$rc-6=BlK`ftSh z$(+bUG{EvcxFbyPT#<+tCn@9tPBpF0%Gp#vV+@?rGG-Vdf0kY6HDUzk4x!(PX zYn@iSpQRb{k^xnKZM$T$MEjbnK_<-8Rojx9b+O< z@64{0vQ}{)Q7j}xX<_9zE5NO-yE^8fz|6YgC_21tsDDoi_4=+ml*Ctc=ZbPfQ6BVtCtzN4KvTkohQQdGuv7 z=HqS@1fbP^H}-*t4}5B`rG1+5(5>L$-2?9xIgR(9{1CMG^|xu#99TwJY1)co3cfL{ zYd*b38=ZPhrnk{Mmx-g+KmwdqOvV_V`#p;}mNQI~ztH*Mq%8^hBq7}*ka&pPvPz77 zIK3!J&*3RKu4QhbKu*u(mYxutgPrB(M5FeHSKlqAKfAX2Cml%-mxdE8V9w0N=Z8H~ zuUjYv3K9@{q94(K7fV0Z%I(WFtyJ>ViVU~5rr0@s-9#y2k)%hxHyt{!CpW3Gj()K?*F*LQV!wb@pmmb>qlBrl26&hbG;jX_p;6olKDM zSEHt`G3ZMeUrdaoer(+d!)W~Ua*23yL&k#LG2t>TVxK-y6fVwcb+|4?t0%ahFkt0= zsPdt2_r1nW_FcO<9^E__$+eCy`}WHjdcCeBK?LeoKh2{1TG@^ROoGp9N@v{pM(ETG zmko}t&zX(4aVwq=Xyt3$qZjK#=pSs$MMJ=o4|&jiGVn!AynVC3qS`mg%d#&XTm>aCv7!JlJVp|5{X8q_utje*>ZuapNH zX`W@8GPMxR7PUX}jT%tubHAo56ba z>5(OPI_nX&tCG1d<#^CX93yEu+;8LH@^P-cDx}PK!{Z--fpdtdUYWYpFZpt zMSXLEU8PHU{)F4esP2bKRmtNl4 zefIeSf*dDS`9sn(2%%MtmYJ7)cPQojHN!WPthD$+31oeNEGu0M;?CJMzUJ)tOJmdGBMW7{#(6 zhwJY#E)P~zAQUv}wbpB-;|z`yot&Vj3V!3Ljd0tc(&N%H!%%)kg)nHXAzjtv3CZVI zlVccexg;g>)fCq3qi3}rbLEK~8-l+RSPwKc1HQ=Y zl_JJwy_p2v>t2zcx?s|-A`^wrX=oCNTFQ1{(#Q$D) zTl1|h;zvN>JN0?5j&}DuXUweFQUX0W^Y6$)=GRgppOw8N6`?+T@h~=|T$7w}Xw*8_ zXf87U&f9y&gW5)Rms&OVXl1TER(iySPEdD*Xl)Bw`D~sS#HQyOmSIOco}Z;h%AYu_ z{YD@|wd6#u#Pv27SxOTFNvZd4cgb3 zJrHC~@spA!P7{Nkd7QWKWpRmddTRoxK@M7#SPC3Cl(n|F)im^mi_F(#>jlcQ4k=2^ z2y*35>ab26s2$TxyTUMpXe%ZaM!2L%x_Y}m_MQ0bk;+J)99lxYYITHb60GLcP}xuA zc^gwitUJ!pV~tPpP=PQp)5xaS-aJndAwiUGZ+~G6O=BL$s3B9-y5l~>vEwFR>|x3n z@G?Xtk~(L^u!YPd^J6x5+BU{*tDPQ^lG!o~D!Dp_6sA4(?e#DtRdI!i{iNth6O#@) zU9L92{NAe8_tMMX?sUBE;mGIt*jqHrkh0lAC49o9o1N%Oo_cf8zE%%W^@?E2^+y+C zBq%syAvR3fo%G2Y5&h-)YxJcAX*JGh4fDcdAKB;%6)Ft8nPO_W^xFusZ+KK!C0>KH z*a)~eS+MOb`{iz?=2vvSRm04P4a6(rQJWhuBBL;SvK}d;t6a^W&;}=Cy`f>S`!sd< zgItU94C4u>?x388PNuA#!%+}~a4mQn0j^uZ-|2lVbWh#tN2<_+_8z-hm`WQVj5W3J zt|FxnsMtmEnBo=g!!r7<%l8T1_dnRJBzSmCmFVKDhBjR-0R5yu)t2l?#Yq3`GB@pj zLB7ZA7>=XXCUO2;=^>MiOJ8(UIk8uxD3w3YOzs7=27o=qcPE| zY#|e?mCsvyHscto`qatT0z*y>Zal_x{`~Y^l6yP&d7pPAN!c9(T1{MNqad@v^#fx3 zIQ*IWA2OU1AM!Mo_1k>iQ1S3qz3rol82cKM`N1f6P1V*+_YU^*hP&X#SSi-z#HI_s znRX{hQETOw2liNU+f4~_f#f;O&ktvVi|PH7Z$!+dVG-s*a3+WaA2l7-_9TTYBv*dh zT`!q*SvdmUUt2X2m#(ucO260Fp-5A3S`lDQ++#IxKXB>evbB$za)Txb(_s73YefI& z!IZCkY<%1fighz=!@Z9}SL0<~fj6%tAvc7Va8!tFcvp76$Gy7D`|=r@G)*S-c5(Vi zm*Ts!9D^_lnng_SK&u=_0tWn{5rZhVYcazl$F6pXB+Tj6Z{p+gB!2XLoOfZw@sGH% z-zmNJ>I2#~mvpnisw3-kWKJM~Ba=1a?Y79rDcyAMB*XjzEyDC??Zf5T{vuq!8!q|D zMCERn%~{~J58bIPUZ356gKd4!tW*$892O0II@rW7Y?ZS)JRFoon~Qf4eW~$t$Ru5P zmmnrzXp`{3L;R4aCAPhTc^VFmq=zaPWy9O=PInL_a$d#>iB}HG_AG5lG@--w2)M=V zwo)FkOT)e#W5!amnD$nlX#?oM)5RjpJ9*OGusLt7L*E;Y=^l<-nx9TNh0UwVpXo=L zunT0E-MfSsA=?cVRvvy1)7g#9PRk99u{b7_5}jruzPElgGM_Z}HhED?d}_YMt;D;B zubB@Lp1x26UaM|Ky7J0KRF1txMgXCaYp!yfag$H&x_`lNdW~qm(`B^T!Vx$Eq`KO@ zU@ey^-#hA%@@D+L6;`_kCbXH4@4b~`(%rWSn{n7t-3jWDE7+?aIw6%wS~uP(Q%3b= zW4c77M3lzd&&T4(0568T>`y>{N&ChBWPIv4(ut|M;RKUIs;bkJ!yRu0^colO7QC2c z(}X$yq_|ul!f*LmY|qxqJj>!oizE*=-2^J$xfus_VhwZIv%1>NRUQ=z}-DTC3(3a^xNXuSa+B5*U_FQ6S*M{?=&n z?G=_W!3)o><{+nx=w}(K{n;U)K7_`TeR(6#FAsw7$kIrz+vGdFpy7PDP8Lj-zS@y7 zo-MXOniJpPcU)u(y0`d%0?gAQ(>Zl7j5<6KJyrkycf6C0rjb+|)(%brain-%sn=HA z&WlA+ht0X`rPI7pT*N~322YOdFTL)v7_4oN`Hnl^YWK0)JWXz6Gn$Qe6D-Ob$KQhpK4m2FJ-=RVx|tI{M5-hMv5F~BKan`q|>14 z$Bg%S-cgC^zU~>zfBOuEjs>xecDk3DCd`5RCZlY}6640U_}ud+#T9J(AI%qZ^SEl3 zQdB!}gU0U6^=c_Dknf8sg?%#*yZM1zP%n|U*il!R!PiceC4n%W@q|}V?3M`PCf2b- zdw2s*`aC!$OJgD~%T{|i>_l|lgNBJL@EPj?SpBZ@UPep%*IKp@z0tRLO7Yx0>v#6^ zbhJ2443h{LBp7tEwznPiZyz-&?I-J7c&?8WoqZC`TV3c(x2k?0edm%}zI29;OzPX~ zN5F@^raEjYMVIbaP}&aEV^qL)5!d3AjqGl??+Cr@Ke0%2_{4QUIANH+RoLU1Z2Q(K zCw8Mwb>IXW@3oys9JAZOF%w*}F zAFWJ3@APr;PHux&|BENaU&jLPZ@7Z6lU!Z{uV3*zn%U>8$j#E+l}R^y{X%{w?0ERj z59%KimV?Bkq`gI}O)H+vol!S15mC~mBGuMKRQBM51Q~3OFH<(s`DessOE`2r$3E$Z z?*}=lV#ysvMf18%U6IyJ+HF16%!-4~jX^YC?uG+$LC0uwRsC)_{8U3Z=pM0;1GO> zsw9JHYQcpO-%0Gl`lO8W81kvL3xsCN_DMH(N%v%l%n*%Ce5INXGue-5Zq7Jrg|yFN zFGOGKs!}aOhbiB{?08h~ogpkac3pzPo7qiz_Z>^RpJGCW2nccPYOdP1$P!bgwt69T zV%)y(lv~d14vLx&iGSl3An>+#ejqf!xJfN3Y|vjfYTHu&?moA2i|hItS1cFBL1(|i zYpAC(B^YAtR_Tz0TT|MUU9Qmr`gDW;pvw2#Xcz`=b8x@`GZvDG#Tn7xm-XVvrm2#A zO|S1;jG8erM2h8m%B&lcCi{)bdT`}CQ7Bm~z0#GJh=?axDw(c(bT*#2e&iZ=>mvO& zHJpo0tv#p@CqHecU#hWts;lK#nWig_^r>o#mLSOP>((TH8m-1hqxi+roYioR9C%yd zjS6Y>wMs?muk=f2iq^LgkC=(RB}BtL`Uq0j@V>)T19wXYXVN0KsrQJbwpUeGC}q>8 z#IlU&L!mLqyw%p2_>YE?eG;l+(6srHS6Uo(LH0rm@=0UkW%auK;Ydb==G&yD@4_8p z9Oj>LsFX%SMspv%2xhZ(T)YvI?~`E36%}%9l3RT;GB{{Ye)#G+*;A^ilB?_-BA52t z3`sweA6A{xSv-=&NA|oTyoauOUrAk34he20B0;i-6NZw>a6aIa<&@)8;8f&P=2YQS z<$TDg#`)O4Kb)|nKb*+v`V}Y?Nia>s4jsNnP<8a^DSr6ttNKGtx`d({-yctPGh!(X zuzr2;@){2pJ@;Alkx7#@)vTT~|B=aDM^P0rH-?Du@)}Ywf#@dUhf)dW+E4>`M7`}% zv)P%yFZz)&0`5FGbZs_yNkvs@Sb;Zg&tva>d)44DMx?gpuB5CTUTTtroTNvE#}M8v zY0H}+P@?%>hq&60@6=TcQaUy9oNJ{^&pbd0S&K#E0=j;@$}VKGbpC_5M{5s9J$vW& z28a3J=!0bG{$E9(zF-o2=58*X+(zRT&?L^~CbAdSA(!`!Lk%EAY|mD2pn^ z?Q)%Kxfa5!6w*li_e6XGJs+khX)(63f?ulK1w}%yK_Y?3tG|7Nygo!_rpPvPZqJ0^ zs=GzX6S2~$%Z6+;k(f63OX~t$C8&d{k%$4J8wfhbT8}^#yUI(sU#0t@g!8wo9*c>< z7(yA3z7=2Rq0FTdc`Whl2-aQIjyepdK6T;+`JDyNUrBwGr92Omypph>Wc za@o)Z^XWo;ryfFU0ykxixD6ND)e*tf@a3@DE_Go+G2kMR$@Bzsw(#^?(R{Wr zgV3@!`Um**|GC z{ZTvxIsP~Wv28GIw`w$9D4BvdXlzmxAv8BBs?|56mx8*wtpPb(gXs_U2Gb4fO^Rbt zcfWU{?x|WpGqNejW~1qpsXG@zWCVH<$&|1OO9Mi{-*;bu`#`%uHDWx%dnw>-LUn}I z51+Jo`Z`%CV_T2ySnhhNqdL$3sbE}4?aE_$zRmb1`W9;&N)_H*BbI1hP*Bu4FO&(x-@*| z!`DhyJ3{}>hXllM1$+e);}+d@T+kH_x0S2W&9)t0?HEKLWkhB+F~|-LC@4`jM3&$o^~6 z;6ykpMSXI%f$Yu`PvYt5FXm0%(M6}^9`=KDFA|D8T@ikEgLGmForlD&#wVC2UFrxK z_rU~$1jp2F0PiGwFw=O#*}`++rzH;gd3=g$eAyM%^Rf$^zb{L@Nl}%(A3WdtvTMPj z(R3dG|5QL%)ac7!00(Tq1OUH#(G+BWEFp0m5UU4tEocUGO#mR@_ua=4^xa3umI2K; z8%(Eyx*EFnjp*5!aL)nXt{iaYjEB9MV7^shkil5Pgf>8UR+~}!2#4-&Xfq)PwOpZO z)Ly2BJTqUo4Z(E%rso&lA^i>Dmz=d1RGVF@*GG;p7WxxjiIaJhHRUm=g*k4JF&Tel zz%sTnvUjjE*0(&rvNk|UCK2^rfr5WJcjV_PA{t~@8WAy~Jr*M>i!Q7S@*OYF>c*(~ z&WwD$@zas)<1#_?M~?=&weWI<$N7iKpA8F+W;ENHy&F~6M#h@=In7fkjQ!|1?JW=7 z5zMf$);^OKp>sT$^6b)rdG)mtJv-094VNGgTV?r|3Ttm0iS z$MMMe%Z72@h%zaqZRwHRuC)=M#2?0 zY9;D-ZkvI$gr#ltwLNne;dE*V7MVq-{=&9PdEgCEXEF{^*WT><=dor@QA}@5agi=P zL=1>|e?QsE_ti7L>YtI>dN>{GE#$Puq=uOa+p*;9_thYNopC$O3$Xz7kK=aw_}>5* zu6Bb7iX6)dAh*s#m8qgrpZ#oz?_8W?s&f;3IhYygDDkF^57&cdrKph&@a@5B?x9{k z5x!vDXj+L>bC=L%6{=TY6(W{&M>MUdx%+vt3W=qWCV(qQ6DDIx6EdpzaZUhnr>MKc zxTrgN4M9RJfb<2H2GdrcmD^1rVqJGe&nBj;`tT>92RBa*BSnv!-5v*=sYcY0KHxs! zXGss;$Cq!cGT2wN6$rJNGxxwJJ*S> zCSls<{tfLP<1wCZ9t-x@>gEp*5+mbMiRS|Jf?T2BMM zhI2Sdz=kwGo#9oO-;9TjUEB6Aa5NmM$ym1r@t9C9yN|rjawVcO%D8p2sGLBksKJrWF8dJG+r8~d@@YHapN=j1ApTy z)P%X9Bprh0q`XkL&Sj=xcAM5R7Mmv9srfj~tD2$plG--9Q*Wp_pR+zA;+AVD3!oZQ zB#;kGZt;A^?j7Q{EZMDB>iK%2uKZZ5&mNI2G^A>Jf{&Q$*EO8*-Qdvj`H`aTf0?%@ z7_4x&i;~uOrg(GE^(lG%GMf>OrFsMTP7&HPH^{~EOAwoW@S%EZ6pW$^A2-@r#G?hf z=sBl)EqP4QYp_7;-6qw9IbQHsV73WPJiu^zcuh~h`|#y7CuZQ{$4s_xqSjynLT@*2 zC#?Y>Kbz{NSRL?X+09`4K?)^~pO!#*`1Gr3kUHS(DRTCyuL7=`FrlaIWtTH&&VFz; z0PzI1pB(60&M(BvvkDnL1B`>0RY=8Slj0B%$NK^;0iW-AQ|N_mKv%a)K-U|f)vl;J zWA(o5u|co`dYxUb-nj*^`R<49fR zZV(Y8$+Q0U_pC_rY$7g1G%r5rkuYrnQ!bUx$(^!+r4~B>?XQQ@JN6y{xw%V;g6kfL z^1bTqQR6-5G}`7wk6k85?VP2DHG-qpwlb}q<~wyCk4MOyeOeV}SxC;+JzfvAW~w+b ztH)J*aa1U{dS$-ClGI@7fvi$1r!Z}a7$U7bXOQn&q{ky%w|1LgL~4?l9A_)f_i8Hf zU{~LdUm7yMe_~SasT#$AygEMi6gW7^9LMQ#&rMa(-*%=Pm!6b^dXNK2!XsYC6LEFm z`vG)#{P?6Yl0m*p$BZO6MdNvUI&w8s8!xuDJU8y97VAG;?LL^+A3d}ktvN8u-4X4G zH6c8xKC5TeK!i)+*!79ex^jM~S&1nrN#d!F}zZtLMV zMJGjRr<$K-OM>Y?O2qK^v{8VXdTrlcX7aHJPB(3^UC2@i9r{dRh!JORh4&OLf9!2f zrPpk`pZ;L&LEOt}2AdA~q*Q4bnQc9#OdZ@7`mHOMA-~7wbMu*i9TbXFZj-L1Ozi6C|gv7#LE`rDe2bJ8!pDgV_E>~JGnSbW@j zCvAc(J7Fvlxad~NKMl51NBAMWVGkw{C+wIun8w4QWZ95r2*+bn(Xwm^U?Wc!iu4m` zOl$$Z;xJ{8#dhxZB{-RcrmGyLAcuUL6rOyW(JJ<1btf zV+?v|;$g_zVa+8;bTD~T zH#;f25VzAc4Tfl+rRLU{ZM$_Lr)}5IL)K#D9MI2@^=P#=<6zIw^Oeq6n7r>tp6qN2 z4JSS;Dqg@6$k>W?GK{tJt_+pv?gpnIa|-?rS=)Yvtb;(vI`~(}DyK3N^dxhx>lw-K zkoEDUe}t?e{|h0j{dvf$r4qj*d>r^!$a?GF4O!XA^Zt7wE872`Le_oQOl%wM@UM_{ z-F0vCG9R8Kp;3>xZtkK5fL@woG->eHyU2keqS^m7;J)}T;Qp&z%YOm)e<#=S9|A5B z^H(Y48DlQQMPh`frOkGoBa$n(H=c|IIb0%%l|9b zq*?Eu?&j@U%g$|+D_-0^4>lb-CjSaHkJci*|8mvOV4=x9KoSObx9!w@rnrlUi9>&>sl*aeCF}XS5tS@^Ji3I&f$wK z`+4mB<*R?E7Xe@W+g11c<*F5ax#~qt-glous6LIxVn=G^^%v$o@>(9|{KdnOwarAl zhy`U^+^`qMXcCPqq~sQq-V^`{0hyaP2T!K5Y&Ak3ZkzH4T(0Ks{diN0?KwCSuk9M_ zmX`kgD*8}yT^jq!EAr%;6L0KQCW5CMy5J?~pQ!!A$|tHDSl~LB9Fjcy3>Y?voJ5Rx(XY@-gpxl^pX3J zCV`9*3nX3#5M~MpLye};b{II@uT&eM8Jcy?JT_SMN9RY-v0J-q~WPmObKf%utG`2l1S`2ga5&bG(1f02t4fLz=FngajMGb;eg z7E`$Si(Fv;A{P)LitBCCFVwL%>CUr?@9IU5(_)TuA7{3#ON%%*AZ+fgk=FaaoVNAB zmW)^-oU6)=Bz`G>hq__k#+`br!jG_6MzN#|euSB_( zfF%_#@P5O8V;#l+Q>^2!MEQTQj{ip!llFC6J;cX4OkYNr?pe&md^@!{HT-y1FZ$wS1jr`taElzI zACf$Lv)dPvX0@>Xrffjt=ySPs+vIa;`C6_1^n(=Zp`BIc*ZtVn&>2-NhvJOIYdUH* zy=T%&{*g@lah^<+xC1(Z=XsW$sP&ZjlAn1N zR*S#$ECc_@v!nspL{1=^c%Dp5_z$L8s{YTVSswR!&}9n^{!X);HGjsQ)GocgC|`tk z)hda?@SW-!H&UAh!cftSK!MEfnA5hQ$Y4S#(pq*iWYG7fQLU%r9giS=Xc#G zdb~*i(b$Be-$)3&EtHHTP1w`|JiG_s&4qK$v+4+nBEZA{Oqu|B$MeLZwVHeCArMub zJAUAKk;kuRM&}8|#595gmPbG<-+ftkz|m9ujv#>)%DJcS(!U8rke-j&24?nB-k(R1 zqq7w;HZm% zxEw6`6^it1yhy@ z2b=ChhkT8U!BuzZ_1cr&h5q9su&@;8I#Zgc29?_2j~xDl|DrMfU#2l-g@C`GYatT< zN0C76KPk=sVX&V+I0ZPnr-1X|-g!m91E3;+^SmP90%x~F;QcFJqx3gt7Y_ReXBPK(P#dZE)Q55hW;yTBXUoC#+2Ms#U^Ml;T_kBdH z2s!J2MS1MZh#P-Vo)&cMX|Yp}y^i1r9&@~}*8aQ@YubFbomE>%(dx#ONl%WN!WuNL zxv8Ud{kx%!<3rqzgNegMfBPH@PA3JYC0pv4kl21l7v0glQHSZ4J&z*clC`=+;S8HR z?K2S(pm5}5#k1r5`DtnfWcbYRg9u_RwJOb{R#7Nh$e)zq)L}Y<>X6^qs(4T+f9<;+ zOfO0WL?&YH8D6@4_>AP?5*p=I;>=GLjOsns_8YnMF5AyyMkcGrack`|<`hono=}cU z&C7uhFW*rU^&@`g_?g4qlwy6$ zj_&e4+wY~e-)qYCGInIxmt9Fqt4|z&ta{s89rCmvh-v@(k51c24yL#sZoBcn{67`b z7NpK29(!a1F)in*ugV$K&nlW*DNKJ?(YOr$t16m*CnbqeL?e${L{s(8A{xY>RWzpm ztfDdf*Htub|AQ(TfC2r-i)ai@D(FCe!YEY|aJ~5U_My)?AUQzsb zTmN=b&t`QS@4W2~j7#yHAF~XFfs~}@H5&ihKt8=_+0MvdM-c;YiIQd53R&KJUPSXB zGnM|=xHp>qiVjds#q#X8sf_6Q{WKL7z*KfRW*5pg&rKz*VxE5o_M@XIWU0I|Z>{3Q z888)X`_hkA1}6!sr9&Qj|1cGRHWl#xGL^9~422`_MEA!Yc&swVi+ubNm1Br2nrWGA$i*plsq(7n-I{GYW3yj{~95`5>i z2HoZQ<5iixm_ z`k4s`^M;$_9YzcKNStp%GwaBKQF+D})CO-f20Aj6?#v-WSAZf(CuH#o@Er0OZIE7g zrHeEC$D#*m(2}8&QlGFse06>?mP@yIu%KJc5JIOn{U%%drG{>!;A)yJq2LnX5|QCR zDP5z5*Y%^(8&KDibcru&_6O%lkcMg!fdhZgV=+x z$ak8z{7$kIl6MC7H^!~PgB>(P9Pyr(;f3=VYhAS_clu1xj7G?3Dr+y()E@-P zE`UZ9wb~y~mb=vWK}M@}c}v$kr*+{c&6Li50#PL4RL%iZe$>In96uc*hX88U;_30M9WgllDx+~uagUY)yWUYwIkXpiUU@NC>_>NZ zp(HXP@W4V2X@04PPpN?b{9F{gTVy-(bqes6G$M>8Ub8%s}!EbxvC@Z))|&L z1G*0Ffe8Fc%!5JoiFg)uQ<A$HrZAsxR(>JK^}mqfxOn@I|Huf#mOXfy~c(rKopyQjdQ;7v_VyoO9iP60q zL~s6$+=lYt-e*}&P(pq(Ss+ibv1jBIzOL!oO=z-57pK-<#bauDn9O)*)np;trc}yy zqo?GZ~QO-u7Z0LNi+(eYu|)m+aXEoaOOME6U8`UXdg%TOe8kBET-0)l|KxVX3> zTrgG;m7exk)&kaVAadE-8P-RdsH<;@} zJ77RCFX)dMfVtu4?HDdji#qX^ACs^ zu7Y_$$gk)3U7RB@9T12Mc3~KxFE|_wMG71O8i7IJ5R{*S0TBpA1_SZ_T){sV0O$^a zx_U4d7>qh|FbE8RUg!_Z1qJhPosWU|XNNEl3@AkhB>&hvFa!qrV@bfc7gYgh4g%*v zm2ttjL8wdT=H`L?L+j_`gFr9{7=$`7j0+A!T?q^f;=ZUYV7+iC>>nKhy#bQ}@%(`m zE&vy(lY#Ld0DYmX7{&vFU+nOFf?Uvxzy)Nyz*11}<%L5390bCBQ3h-rFBk96{($xW zZ6`1|{O6tkOZZC$tQX9Sq6IJr0^<5ZTX0_Z9}D5-1*6~yP%}69pOZP)KY#`pD&T;D zL8vPM1_m6!g%zIz2@w7vu2rX21{->^Ei*|E6jP2+-Gsl>h_70KKBfAUr(W7mj3@3!EhL=x&Zggiy{NG&kIJu0&uRuPzUDbfdTt; z5i@`cKn<#lhldM_KoJ5y3Wj14+`J%ORJROt$OFE(lJnC5ei2;2!OP19M{(5vHh2LT z{vH?c`;Z12@}eF@0JK056fN+;xS^=+cmVaIu9yc7oWrR1!hs2)Xb=I+28yB@0EB@4 zFRJj|(ZErBKL`e}2~<-ACIgUyi&_OH13{I+xM4hillpc3`~^ZlsSwb`fq^3t42E4) zH6S~8{}%@Vj!p>5p>uwm{sBUuKPc#LEg*hzB%mP_g(Uzd8!zv_HT=6BH;M{@b}-Zf z=6qmolr1@L$A!YQKrjRk7jWGDu@YX?y#tg5=DN7z^A4dX!~z%?0_MJGc0b#po~Y;T z&JVVq`u{ie|8c;acgV|i!DRxf=K)+R3b+6n?;m^2!wo|96)+xd$UlyJ#7~L}2!Z1X zRSP^I=pO?EnE3+>e|k(94?vnOY73Y&p#DFwg@Ey*9G^f#I2RA<&2WHAp$-g(0O-0n zX*j^%QMV3|@$mf7j{6rD&h`J7`TI349Ebzp7#f=|F`-9 zAwbFhXvhOaH7CHHz^H=&GAQ^WxBxc@tQkcMfNQ+Sw1M$~BNhx`^Wy3N8Jzp#i3PYp zDBzb-+5v$Y4~mQn*eDbN0?ZFEri*?CknuthD3l8j!u|jaKtFhRQ3v4y@&3X4ft&w~ zF9F_(0zxj}F!}9M{^oz@fha(JF0Kx+90-cpopX0659&&Qcol}CYA!A~4+?1o1_i+` zPUf8dLBObIG#~@wY}7#@K)Cydj2raFq#@kE8HlnF2rw7a#Q~8W)aZ|f=Ws>2845&Q zr~^X*tfFoS6hI-W762I>$%IKPstu@HS5qEPxdNTgi*Xz#y(5f%V@2PIjUg diff --git a/buildSetup/CMakeLists.txt b/buildSetup/CMakeLists.txt index 0a47268f..1f501ae6 100644 --- a/buildSetup/CMakeLists.txt +++ b/buildSetup/CMakeLists.txt @@ -4,7 +4,7 @@ # Dr. Thomas Tensi, 2022-04 # ############################################### -CMAKE_MINIMUM_REQUIRED(VERSION 3.0) +CMAKE_MINIMUM_REQUIRED(VERSION 3.5) PROJECT(FluidSynthPlugin VERSION 1.0 @@ -38,7 +38,7 @@ ELSE() ENDIF() # --- compiler --- -SET(CMAKE_CXX_STANDARD 17) +SET(CMAKE_CXX_STANDARD 20) SET(CMAKE_CXX_STANDARD_REQUIRED True) INCLUDE(CPPCompilerConfiguration.cmake) @@ -323,6 +323,9 @@ SET(docDoxygenFileName FluidSynthPlugin-doxygen-FULL.cfg) IF(WINDOWS) SET(regressionTestFileList ${testFileDirectory}/makeTestFiles.bat) ELSE() + CONFIGURE_FILE(${testFileDirectory}/makeTestFiles.sh.in + ${testFileDirectory}/makeTestFiles.sh + @ONLY) SET(regressionTestFileList ${testFileDirectory}/makeTestFiles.sh) ENDIF() @@ -331,7 +334,9 @@ SET(regressionTestFileList ${testFileDirectory}/test_bass.mid ${testFileDirectory}/test_drums.mid ${testFileDirectory}/test_keyboard.mid - ${testFileDirectory}/testFluidSynth.rpp) + ${testFileDirectory}/SimpleTestSoundfont.sf2 + ${testFileDirectory}/testFluidSynth-44100.rpp + ${testFileDirectory}/testFluidSynth-48000.rpp) # --- Windows specific files --- IF(MSVC) @@ -373,6 +378,8 @@ ELSE() "/Applications/Xcode.app/Contents/Developer") SET(appSdkDirectory ${appDevelopDirectory}/Platforms/MacOSX.platform/Developer/SDKs) + SET(audioUnitSdkDirectory + ${appSdkDirectory}/MacOSX.sdk/System/Library/Frameworks/AudioUnit.framework) # make definition string from elements in # manufacturerAndSuiteDefineClauseList @@ -386,13 +393,12 @@ ELSE() SET(rezIncludeDirectoryList -i "/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers" -i ${appDevelopDirectory}/CoreAudio/AudioUnits/AUPublic/AUBase - -i ${appSdkDirectory}/MacOSX.sdk/System/Library/Frameworks/AudioUnit.framework/Headers -i ${juceModulesDirectory}/juce_audio_processors/format_types/VST3_SDK -i ${juceModulesDirectory} -i ${srcFluidSynthPluginDirectory} -i ${srcJuceFacadeDirectory} -i ${juceModulesDirectory}/juce_audio_plugin_client - -isysroot ${appSdkDirectory}/MacOSX10.15.sdk) + -isysroot ${appSdkDirectory}/MacOSX.sdk) ENDIF(NOT MACOSX) # ################# @@ -687,7 +693,7 @@ ENDFUNCTION(makeLaTeXDocumentationTarget) INCLUDE_DIRECTORIES(${standardIncludeDirectoryList}) # compile with logging enabled globally for a debug configuration -# ADD_COMPILE_DEFINITIONS($<$:LOGGING_IS_ACTIVE>) +ADD_COMPILE_DEFINITIONS($<$:LOGGING_IS_ACTIVE>) # ================================== # === intermediate library files === diff --git a/buildSetup/CPPCompilerConfiguration.cmake b/buildSetup/CPPCompilerConfiguration.cmake index 9177209d..59122756 100644 --- a/buildSetup/CPPCompilerConfiguration.cmake +++ b/buildSetup/CPPCompilerConfiguration.cmake @@ -96,7 +96,6 @@ IF(MACOSX) JucePlugin_AUManufacturerCode=JucePlugin_ManufacturerCode) ENABLE_LANGUAGE(OBJC) - SET(CMAKE_CXX_STANDARD_REQUIRED False) ENDIF(MACOSX) IF(LINUX) @@ -121,15 +120,17 @@ SET(cppDefineClauseList # --- define flags per compiler --- IF(MSVC) # --- list of warning number to be ignored - SET(warningNumberList + SET(ignoredWarningNumberList 4100 4180 4244 4505 4723 5105 6011 6255 6297 26439 26451 26495 26498 26812 26819 28182) + SET(ignoredWarningNumberListRelease + 4189) + # select static MSVC library instead of dynamic library # SET(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded") STRING(JOIN " " cppFlagsCommon - /arch:AVX # enable AVX vectorization instructions /bigobj # increase number of addressable sections /diagnostics:column # format of diagnostics message /EHsc # exception handling: stack unwinding @@ -145,8 +146,8 @@ IF(MSVC) /Zc:wchar_t # wchar is native ) - # --- disable all warnings in warningNumberList --- - FOREACH(warningNumber ${warningNumberList}) + # --- disable all warnings in ignoredWarningNumberList --- + FOREACH(warningNumber ${ignoredWarningNumberList}) STRING(APPEND cppFlagsCommon " /wd${warningNumber}") ENDFOREACH() @@ -163,6 +164,10 @@ IF(MSVC) /Gw # global program optimization ) + FOREACH(warningNumber ${ignoredWarningNumberListRelease}) + STRING(APPEND cppFlagsRelease " /wd${warningNumber}") + ENDFOREACH() + STRING(JOIN " " cppFlagsReleaseWithDebugInfo /DDEBUG # debugging /Od # no optimization @@ -178,19 +183,21 @@ IF(MSVC) ) ELSE() STRING(JOIN " " cppFlagsCommon - -ffast-math # fast floating point calculation - -mavx # enable AVX vectorization - # instructions - -O0 # no optimization - -Ofast # favors fast code - -pedantic # set strict standard conformance - -Wall # warning level: all - -Wno-delete-incomplete # remove warning for void deletion - -Wno-ignored-qualifiers # remove warning for const qualifier - # on functions - -Wno-unused-function # remove warning for unused function - -Wno-unused-variable # remove warning for unused variable - -Wno-unused-but-set-variable # remove warning for unused variable + -ffast-math # fast floating point calculation + -O0 # no optimization + -Ofast # favors fast code + -pedantic # set strict standard conformance + -Wall # warning level: all + -Wno-ambiguous-reversed-operator # remove C++20 warning on + # reversed equal operator + -Wno-delete-incomplete # remove warning for void deletion + -Wno-ignored-qualifiers # remove warning for const + # qualifier on functions + -Wno-unused-function # remove warning for + # unused function + -Wno-unused-variable # remove warning for unused variable + # -Wno-unused-but-set-variable # remove warning for + # # unused variable ) # warn about undefined symbols when linking @@ -226,6 +233,7 @@ ELSE() ) ENDIF() + SET(CMAKE_CXX_FLAGS ${cppFlagsCommon} CACHE STRING "" FORCE) SET(CMAKE_CXX_FLAGS_RELEASE ${cppFlagsRelease} CACHE STRING "" FORCE) SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO ${cppFlagsReleaseWithDebugInfo} @@ -233,3 +241,7 @@ SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO ${cppFlagsReleaseWithDebugInfo} SET(CMAKE_CXX_FLAGS_DEBUG ${cppFlagsDebug} CACHE STRING "" FORCE) SET(CMAKE_SHARED_LINKER_FLAGS ${cppLinkerFlagsCommon} CACHE STRING "" FORCE) + +IF(MACOSX) + ADD_COMPILE_DEFINITIONS($,DEBUG,NDEBUG>) +ENDIF(MACOSX) diff --git a/doc/doxygen/FluidSynthPlugin-doxygen-FULL.cfg.in b/doc/doxygen/FluidSynthPlugin-doxygen-FULL.cfg.in index 617eae00..3f4c4160 100644 --- a/doc/doxygen/FluidSynthPlugin-doxygen-FULL.cfg.in +++ b/doc/doxygen/FluidSynthPlugin-doxygen-FULL.cfg.in @@ -93,14 +93,6 @@ ALLOW_UNICODE_NAMES = YES OUTPUT_LANGUAGE = English -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - # If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member # descriptions after the members that are listed in the file and class # documentation (similar to Javadoc). Set to NO to disable this. @@ -1103,38 +1095,6 @@ USE_HTAGS = NO VERBATIM_HEADERS = YES -# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the -# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the -# cost of reduced performance. This can be particularly helpful with template -# rich C++ code for which doxygen's built-in parser lacks the necessary type -# information. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. -# The default value is: NO. - -CLANG_ASSISTED_PARSING = NO - -# If clang assisted parsing is enabled you can provide the compiler with command -# line options that you would normally use when invoking the compiler. Note that -# the include paths will already be set by doxygen for the files and directories -# specified with INPUT and INCLUDE_PATH. -# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. - -CLANG_OPTIONS = - -# If clang assisted parsing is enabled you can provide the clang parser with the -# path to the directory containing a file called compile_commands.json. This -# file is the compilation database (see: -# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the -# options used when the source files were built. This is equivalent to -# specifying the "-p" option to a clang tool, such as clang-check. These options -# will then be passed to the parser. Any options specified with CLANG_OPTIONS -# will be added as well. -# Note: The availability of this option depends on whether or not doxygen was -# generated with the -Duse_libclang=ON option for CMake. - -CLANG_DATABASE_PATH = - #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- @@ -1146,13 +1106,6 @@ CLANG_DATABASE_PATH = ALPHABETICAL_INDEX = YES -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - # In case all classes in a project start with a common prefix, all classes will # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag # can be used to specify a prefix (or a list of prefixes) that should be ignored @@ -1280,15 +1233,6 @@ HTML_COLORSTYLE_SAT = 150 HTML_COLORSTYLE_GAMMA = 80 -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - # If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML # documentation will contain a main index with vertical navigation menus that # are dynamically created via JavaScript. If disabled, the navigation index will @@ -1581,17 +1525,6 @@ HTML_FORMULA_FORMAT = png FORMULA_FONTSIZE = 10 -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - # The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands # to create new LaTeX commands to be used in formulas as building blocks. See # the section "Including formulas" for details. @@ -1892,16 +1825,6 @@ LATEX_BATCHMODE = NO LATEX_HIDE_INDICES = NO -# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source -# code with syntax highlighting in the LaTeX output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_SOURCE_CODE = NO - # The LATEX_BIB_STYLE tag can be used to specify the style to use for the # bibliography, e.g. plainnat, or ieeetr. See # https://en.wikipedia.org/wiki/BibTeX and \cite for more info. @@ -1910,14 +1833,6 @@ LATEX_SOURCE_CODE = NO LATEX_BIB_STYLE = plain -# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated -# page will contain the date and time when the page was generated. Setting this -# to NO can help when comparing the output of multiple runs. -# The default value is: NO. -# This tag requires that the tag GENERATE_LATEX is set to YES. - -LATEX_TIMESTAMP = NO - # The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute) # path from which the emoji images will be read. If a relative path is entered, # it will be relative to the LATEX_OUTPUT directory. If left blank the @@ -1982,16 +1897,6 @@ RTF_STYLESHEET_FILE = RTF_EXTENSIONS_FILE = -# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code -# with syntax highlighting in the RTF output. -# -# Note that which sources are shown also depends on other settings such as -# SOURCE_BROWSER. -# The default value is: NO. -# This tag requires that the tag GENERATE_RTF is set to YES. - -RTF_SOURCE_CODE = NO - #--------------------------------------------------------------------------- # Configuration options related to the man page output #--------------------------------------------------------------------------- @@ -2088,15 +1993,6 @@ GENERATE_DOCBOOK = NO DOCBOOK_OUTPUT = docbook -# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the -# program listings (including syntax highlighting and cross-referencing -# information) to the DOCBOOK output. Note that enabling this will significantly -# increase the size of the DOCBOOK output. -# The default value is: NO. -# This tag requires that the tag GENERATE_DOCBOOK is set to YES. - -DOCBOOK_PROGRAMLISTING = NO - #--------------------------------------------------------------------------- # Configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- @@ -2275,15 +2171,6 @@ EXTERNAL_PAGES = YES # Configuration options related to the dot tool #--------------------------------------------------------------------------- -# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram -# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to -# NO turns the diagrams off. Note that this option also works with HAVE_DOT -# disabled, but it is recommended to install and use dot, since it yields more -# powerful graphs. -# The default value is: YES. - -CLASS_DIAGRAMS = YES - # You can include diagrams made with dia in doxygen documentation. Doxygen will # then run dia to produce the diagram and insert it in the documentation. The # DIA_PATH tag allows you to specify the directory where the dia binary resides. @@ -2316,23 +2203,6 @@ HAVE_DOT = ${DOXYGEN_HAVE_DOT} DOT_NUM_THREADS = 3 -# When you want a differently looking font in the dot files that doxygen -# generates you can specify the font name using DOT_FONTNAME. You need to make -# sure dot is able to find the font, which can be done by putting it in a -# standard location or by setting the DOTFONTPATH environment variable or by -# setting DOT_FONTPATH to the directory containing the font. -# The default value is: Helvetica. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_FONTNAME = Helvetica - -# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of -# dot graphs. -# Minimum value: 4, maximum value: 24, default value: 10. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_FONTSIZE = 11 - # By default doxygen will tell dot to use the default font as specified with # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set # the path where dot can find it using this tag. @@ -2545,18 +2415,6 @@ DOT_GRAPH_MAX_NODES = 50 MAX_DOT_GRAPH_DEPTH = 0 -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent -# background. This is disabled by default, because dot on Windows does not seem -# to support this out of the box. -# -# Warning: Depending on the platform used, enabling this option may lead to -# badly anti-aliased labels on the edges of a graph (i.e. they become hard to -# read). -# The default value is: NO. -# This tag requires that the tag HAVE_DOT is set to YES. - -DOT_TRANSPARENT = NO - # Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) support diff --git a/doc/latex/FluidSynthPlugin-documentation.ltx b/doc/latex/FluidSynthPlugin-documentation.ltx index 2f9a6679..c9e0c6e6 100644 --- a/doc/latex/FluidSynthPlugin-documentation.ltx +++ b/doc/latex/FluidSynthPlugin-documentation.ltx @@ -229,8 +229,8 @@ \large \begin{tabular}{>{\bf}p{2.5cm}p{10.5cm}} Author:&Dr.~Thomas Tensi\\ - Date:&2023-01-09\\ - Version:&0.3\\ + Date:&2024-03-04\\ + Version:&0.5\\ Platforms:&VST3 on Windows~x64,\\ &VST3/AU on MacOSX (x86\_64)\\ &VST3 on Linux (x86\_64)\\ @@ -560,7 +560,10 @@ from~\cite{reference:fsSettingsDocumentation}). {float} \parameterTableALine{synth.sample-rate} {sample rate of the audio generated by the - synthesizer} + synthesizer (only available for the + \FluidSynthConverter, because the + sample rate for the plugin is defined + by the VST host)} {float} \parameterTableALine{synth.verbose} {tells whether synthesizer will print out @@ -1107,7 +1110,8 @@ The steps are as follows: \item Configure the build process via \begin{commandLine} -cmake -S /CMakeList.txt -B . --config Release +cmake -S /CMakeList.txt -B . \ + -DCMAKE_BUILD_TYPE=Release \end{commandLine} \item Build all the plugins via @@ -1122,7 +1126,7 @@ cmake --build . --config Release \embeddedCode{\_DISTRIBUTION} directory via \begin{commandLine} -cmake --build . --config Release --target install +cmake --install . --config Release \end{commandLine} \end{enumerate} @@ -1159,8 +1163,7 @@ available, the generation can be done via the CMAKE chain as target \embeddedCode{doxygenDocumentation} in the build directory: \begin{commandLine} -cmake --build . --config Release \ - --target internalDocumentation +cmake --build . --target internalDocumentation --config Release \end{commandLine} If the command completes, the documentation in the @@ -1219,9 +1222,9 @@ where XXX is the target name. %-------------------- For debugging purposes, for both the \FluidSynthPlugin\ and the -\FluidSynthConverter\ a debugging version is also available that does -an extensive entry-exit-logging into the temp directory. Note that -this debugging slows down processing extremely and produces large log +\FluidSynthConverter\ the executable files build in debug mode do an +extensive entry-exit-logging into some temporary directory. Note that +this logging slows down processing extremely and produces large log files, but it helps to understand problems in case of errors. Figure~\ref{figure:loggingFile} shows how a logging file looks like. @@ -1239,8 +1242,9 @@ intermediate information during the function processing. The logging data is hierarchical, hence you can see the function call structure in this file precisely. -All logging files go to the directory specified by the -\embeddedCode{temp} environment variable. +All logging files go into the directory specified by the environment +variables \embeddedCode{tmp}, \embeddedCode{temp} or into the +directory \embeddedCode{/tmp} (in that order). %=========================================== \begin{thebibliography}{FluidSynthSettings} diff --git a/internalDocumentation/html/_assertion_8h.html b/internalDocumentation/html/_assertion_8h.html index 23d3d386..866e276b 100644 --- a/internalDocumentation/html/_assertion_8h.html +++ b/internalDocumentation/html/_assertion_8h.html @@ -83,7 +83,8 @@

Assertion.h File Reference
@@ -91,13 +92,14 @@

The Assertion specification defines macros for pre- and postconditions in functions or methods. More...

-
#include <cassert>
+
#include <stdexcept>
+#include <string>
+ Include dependency graph for Assertion.h:
+ This graph shows which files directly or indirectly include this file:
@@ -111,26 +113,33 @@ - - - - + + + + - + - + +

Macros

#define _ASSERT_WITH_MESSAGE(condition, message)    assert((condition))
 Checks the condition and exits with message on failure; this is the base routine called by the exported assertion checks --> the DEBUG version does the checking, the RELEASE version does nothing. More...
 
#define Assertion_check(condition, message)    _ASSERT_WITH_MESSAGE(condition, message)
#define _ASSERT_WITH_MESSAGE(condition, prefix, message)    if (!(condition)) { throw AssertionError{std::string(prefix ": ") + std::string(message)}; }
 Checks the condition and exits with message on failure; this is the base routine called by the exported assertion checks --> the DEBUG version does the checking, the RELEASE version does nothing. More...
 
#define Assertion_check(condition, message)    _ASSERT_WITH_MESSAGE(condition, "CHECK", message)
 Checks the condition and exits with message on failure. More...
 
#define Assertion_post(condition, message)    _ASSERT_WITH_MESSAGE(condition, message)
#define Assertion_post(condition, message)    _ASSERT_WITH_MESSAGE(condition, "POST", message)
 Checks postcondition condition and exits with message on failure. More...
 
#define Assertion_pre(condition, message)    _ASSERT_WITH_MESSAGE(condition, message)
#define Assertion_pre(condition, message)    _ASSERT_WITH_MESSAGE(condition, "PRE", message)
 Checks precondition condition and exits with message on failure. More...
 
+ + + +

+Typedefs

+typedef std::logic_error AssertionError
 exception thrown when assertion is violated
 

Detailed Description

The Assertion specification defines macros for pre- and postconditions in functions or methods.

Author
Dr. Thomas Tensi
Date
2020-08

Macro Definition Documentation

- -

◆ _ASSERT_WITH_MESSAGE

+ +

◆ _ASSERT_WITH_MESSAGE

@@ -141,6 +150,12 @@

  condition, + + + +   + prefix, + @@ -150,7 +165,7 @@

AssertionError{std::string(prefix ": ") + std::string(message)}; }

@@ -187,7 +202,7 @@

_ASSERT_WITH_MESSAGE(condition, message) +     _ASSERT_WITH_MESSAGE(condition, "CHECK", message)

@@ -224,7 +239,7 @@

_ASSERT_WITH_MESSAGE(condition, message) +     _ASSERT_WITH_MESSAGE(condition, "POST", message)

@@ -261,7 +276,7 @@

_ASSERT_WITH_MESSAGE(condition, message) +     _ASSERT_WITH_MESSAGE(condition, "PRE", message)

diff --git a/internalDocumentation/html/_assertion_8h.js b/internalDocumentation/html/_assertion_8h.js index 492618a2..247eba12 100644 --- a/internalDocumentation/html/_assertion_8h.js +++ b/internalDocumentation/html/_assertion_8h.js @@ -1,7 +1,8 @@ var _assertion_8h = [ - [ "_ASSERT_WITH_MESSAGE", "_assertion_8h.html#a2efe2db6878c4c0fdd708a8a18650fd6", null ], + [ "_ASSERT_WITH_MESSAGE", "_assertion_8h.html#a982e7f88dc5e0b291490324d3224aee4", null ], [ "Assertion_check", "_assertion_8h.html#ae8be9498d4c4b21c15c381c2ededc826", null ], [ "Assertion_post", "_assertion_8h.html#aa4d7aee6b62950a595301805b2903499", null ], - [ "Assertion_pre", "_assertion_8h.html#a9328921abc0810fcc777e515c52a417c", null ] + [ "Assertion_pre", "_assertion_8h.html#a9328921abc0810fcc777e515c52a417c", null ], + [ "AssertionError", "_assertion_8h.html#ace33005c83d659781ceca910a1e9d4b8", null ] ]; \ No newline at end of file diff --git a/internalDocumentation/html/_assertion_8h__dep__incl.map b/internalDocumentation/html/_assertion_8h__dep__incl.map index 5664ff30..86f51583 100644 --- a/internalDocumentation/html/_assertion_8h__dep__incl.map +++ b/internalDocumentation/html/_assertion_8h__dep__incl.map @@ -1,52 +1,52 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/internalDocumentation/html/_assertion_8h__dep__incl.md5 b/internalDocumentation/html/_assertion_8h__dep__incl.md5 index 248ba80e..65c26f09 100644 --- a/internalDocumentation/html/_assertion_8h__dep__incl.md5 +++ b/internalDocumentation/html/_assertion_8h__dep__incl.md5 @@ -1 +1 @@ -8305db279e26db463a1a3472fb9dcb9a \ No newline at end of file +21e32f9eadf19370ae3def99a0b3877d \ No newline at end of file diff --git a/internalDocumentation/html/_assertion_8h__dep__incl.svg b/internalDocumentation/html/_assertion_8h__dep__incl.svg index 767a2364..1337f43e 100644 --- a/internalDocumentation/html/_assertion_8h__dep__incl.svg +++ b/internalDocumentation/html/_assertion_8h__dep__incl.svg @@ -4,7 +4,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DynamicLibrary.h - + Node1 - -DynamicLibrary.h + +DynamicLibrary.h @@ -22,46 +68,118 @@ Node2 - -FluidSynth.cpp + +FluidSynth.cpp Node1->Node2 - - + + Node3 - -FluidSynthSettings.cpp + +FluidSynthSettings.cpp Node1->Node3 - - + + Node4 - -FluidSynthSynthesizer.cpp + +FluidSynthSynthesizer.cpp Node1->Node4 - - + + + + +Node5 + + +FluidSynthFileConverter.cpp + + + + + +Node1->Node5 + + + + + +Node6 + + +FluidSynthPlugin_EventProcessor.cpp + + + + +Node1->Node6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/internalDocumentation/html/_dynamic_library_8h__dep__incl_org.svg b/internalDocumentation/html/_dynamic_library_8h__dep__incl_org.svg new file mode 100644 index 00000000..2e3fb414 --- /dev/null +++ b/internalDocumentation/html/_dynamic_library_8h__dep__incl_org.svg @@ -0,0 +1,97 @@ + + + + + + +DynamicLibrary.h + + + +Node1 + + +DynamicLibrary.h + + + + + +Node2 + + +FluidSynth.cpp + + + + + +Node1->Node2 + + + + + +Node3 + + +FluidSynthSettings.cpp + + + + + +Node1->Node3 + + + + + +Node4 + + +FluidSynthSynthesizer.cpp + + + + + +Node1->Node4 + + + + + +Node5 + + +FluidSynthFileConverter.cpp + + + + + +Node1->Node5 + + + + + +Node6 + + +FluidSynthPlugin_EventProcessor.cpp + + + + + +Node1->Node6 + + + + + diff --git a/internalDocumentation/html/_dynamic_library_8h__incl.map b/internalDocumentation/html/_dynamic_library_8h__incl.map index 277a1cf1..ea73e2a5 100644 --- a/internalDocumentation/html/_dynamic_library_8h__incl.map +++ b/internalDocumentation/html/_dynamic_library_8h__incl.map @@ -1,8 +1,8 @@ - - - - - - + + + + + + diff --git a/internalDocumentation/html/_dynamic_library_8h__incl.md5 b/internalDocumentation/html/_dynamic_library_8h__incl.md5 index 397bd93d..398ef742 100644 --- a/internalDocumentation/html/_dynamic_library_8h__incl.md5 +++ b/internalDocumentation/html/_dynamic_library_8h__incl.md5 @@ -1 +1 @@ -9a3cd759b54c7df9b97df92c7645a108 \ No newline at end of file +ffa09d98fadcb17d53e3a7b6003c4418 \ No newline at end of file diff --git a/internalDocumentation/html/_dynamic_library_8h__incl.svg b/internalDocumentation/html/_dynamic_library_8h__incl.svg index 975a6c48..5349c054 100644 --- a/internalDocumentation/html/_dynamic_library_8h__incl.svg +++ b/internalDocumentation/html/_dynamic_library_8h__incl.svg @@ -4,17 +4,17 @@ - - + + DynamicLibrary.h - + Node1 - -DynamicLibrary.h + +DynamicLibrary.h @@ -22,76 +22,76 @@ Node2 - -Boolean.h + +Boolean.h Node1->Node2 - - + + Node6 - -Object.h + +Object.h Node1->Node6 - - + + Node3 - -MyString.h + +MyString.h Node2->Node3 - - + + Node4 - -string + +string Node3->Node4 - - + + Node5 - -GlobalMacros.h + +GlobalMacros.h Node3->Node5 - - + + diff --git a/internalDocumentation/html/_dynamic_library_8h_source.html b/internalDocumentation/html/_dynamic_library_8h_source.html index ef21379a..a00f0e7d 100644 --- a/internalDocumentation/html/_dynamic_library_8h_source.html +++ b/internalDocumentation/html/_dynamic_library_8h_source.html @@ -110,33 +110,56 @@
30 
35  struct DynamicLibrary {
36 
-
42  DynamicLibrary (IN String& libraryName);
-
43 
-
44  /*--------------------*/
-
45 
- -
51 
-
52  /*--------------------*/
-
53 
-
59  Boolean isLoaded () const;
-
60 
-
61  /*--------------------*/
-
62 
- +
37  /*--------------------*/
+
38  /* con-/destruction */
+
39  /*--------------------*/
+
40 
+
46  DynamicLibrary (IN String& libraryName);
+
47 
+
48  /*--------------------*/
+
49 
+
56  DynamicLibrary (IN DynamicLibrary& otherLibrary) = delete;
+
57 
+
58  /*--------------------*/
+
59 
+ +
65 
+
66  /*--------------------*/
+
67  /* configuration */
+
68  /*--------------------*/
69 
-
70  /*--------------------*/
-
71 
-
80  Object getFunctionByName (IN String& functionName) const;
-
81 
-
82  /*--------------------*/
-
83 
-
84  private:
-
85 
- -
88 
-
89  };
-
90 
-
91 }
+
76  static void addToSearchPath (IN String& searchPath);
+
77 
+
78  /*--------------------*/
+
79  /* assignment */
+
80  /*--------------------*/
+
81 
+ +
89  = delete;
+
90 
+
91  /*--------------------*/
+
92  /* queries */
+
93  /*--------------------*/
+
94 
+
100  Boolean isLoaded () const;
+
101 
+
102  /*--------------------*/
+
103 
+ +
110 
+
111  /*--------------------*/
+
112 
+
121  Object getFunctionByName (IN String& functionName) const;
+
122 
+
123  /*--------------------*/
+
124 
+
125  private:
+
126 
+ +
129 
+
130  };
+
131 
+
132 }
std::string String
The String type represents (Unicode) character sequences.
Definition: MyString.h:28
@@ -144,15 +167,18 @@
#define IN
(informal) parameter mode for in parameter
Definition: GlobalMacros.h:15
An object-oriented wrapper around the fluidsynth library and also allows its dynamic loading.
Definition: DynamicLibrary.h:35
A Boolean object wraps a value of the associated primitive type bool into a value object.
Definition: Boolean.h:28
-
Object _descriptor
the object managing the internal data
Definition: DynamicLibrary.h:87
+
Object _descriptor
the object managing the internal data
Definition: DynamicLibrary.h:128
Boolean isLoaded() const
Returns whether library has been correctly loaded.
Object getFunctionByName(IN String &functionName) const
Returns a function in the underlying library given by functionName.
The package Libraries provides wrappers around the FluidSynth and JUCE libraries as well as support f...
Definition: Libraries/_NAMESPACE.desc:6
Object underlyingTechnicalLibrary() const
Returns the underlying library.
~DynamicLibrary()
Destroys dynamic library object and unloads the underlying library.
+
static void addToSearchPath(IN String &searchPath)
Adds searchPath to list of search paths for dynamic libraries.
DynamicLibrary(IN String &libraryName)
Constructs a new dynamic library from libraryName
The Object specification and body provides the root object type.
+
DynamicLibrary(IN DynamicLibrary &otherLibrary)=delete
Constructs new dynamic library from otherLibrary (NOT AVAILABLE!)
void * Object
The Object type is the root class for all pointer objects.
Definition: Object.h:22
+
DynamicLibrary & operator=(IN DynamicLibrary &otherLibrary)=delete
Assigns current library from otherLibrary (NOT AVAILABLE!)
@@ -100,14 +101,14 @@
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

@@ -126,6 +127,12 @@  BaseTypes::Containers  The package Containers provides container types like dictionaries, maps from string to objects, lists of string or numbers and string sets.
  + + + + +

+Functions

String BaseTypes::Containers::_realListTypeName ()
 Returns name of real list type. More...
 

Detailed Description

The RealList specification defines lists of real values with zero-based arbitrary indexed access to positions in the list.

diff --git a/internalDocumentation/html/_real_list_8h.js b/internalDocumentation/html/_real_list_8h.js new file mode 100644 index 00000000..e0419969 --- /dev/null +++ b/internalDocumentation/html/_real_list_8h.js @@ -0,0 +1,5 @@ +var _real_list_8h = +[ + [ "RealList", "struct_base_types_1_1_containers_1_1_real_list.html", "struct_base_types_1_1_containers_1_1_real_list" ], + [ "_realListTypeName", "_real_list_8h.html#a9b3def584c6a6d0d9307af0be50abc49", null ] +]; \ No newline at end of file diff --git a/internalDocumentation/html/_real_list_8h__dep__incl.map b/internalDocumentation/html/_real_list_8h__dep__incl.map index 5fa52c7a..719bc920 100644 --- a/internalDocumentation/html/_real_list_8h__dep__incl.map +++ b/internalDocumentation/html/_real_list_8h__dep__incl.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/internalDocumentation/html/_real_list_8h__dep__incl.md5 b/internalDocumentation/html/_real_list_8h__dep__incl.md5 index 6e5a65ec..884365f0 100644 --- a/internalDocumentation/html/_real_list_8h__dep__incl.md5 +++ b/internalDocumentation/html/_real_list_8h__dep__incl.md5 @@ -1 +1 @@ -12e7e413e2a04d91bbfe0d45baabd8ed \ No newline at end of file +6b724d6dd74232fa18b1217d885bcad6 \ No newline at end of file diff --git a/internalDocumentation/html/_real_list_8h__dep__incl.svg b/internalDocumentation/html/_real_list_8h__dep__incl.svg index 58e59819..76441e08 100644 --- a/internalDocumentation/html/_real_list_8h__dep__incl.svg +++ b/internalDocumentation/html/_real_list_8h__dep__incl.svg @@ -4,17 +4,17 @@ - - + + RealList.h - + Node1 - -RealList.h + +RealList.h @@ -22,31 +22,31 @@ Node2 - -WaveFile.cpp + +WaveFile.cpp Node1->Node2 - - + + Node3 - -RealList.cpp + +RealList.cpp Node1->Node3 - - + + diff --git a/internalDocumentation/html/_real_list_8h__incl.map b/internalDocumentation/html/_real_list_8h__incl.map index 4ab1b6c1..b6afea4b 100644 --- a/internalDocumentation/html/_real_list_8h__incl.map +++ b/internalDocumentation/html/_real_list_8h__incl.map @@ -1,16 +1,15 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/internalDocumentation/html/_real_list_8h__incl.md5 b/internalDocumentation/html/_real_list_8h__incl.md5 index a546dc6c..da0d9eac 100644 --- a/internalDocumentation/html/_real_list_8h__incl.md5 +++ b/internalDocumentation/html/_real_list_8h__incl.md5 @@ -1 +1 @@ -07eb01b220ce868312a038454eec44c3 \ No newline at end of file +4f7ad6c23cea97f8eb85fdb80a23e621 \ No newline at end of file diff --git a/internalDocumentation/html/_real_list_8h__incl.svg b/internalDocumentation/html/_real_list_8h__incl.svg index 3ea891a4..ee9f3e2e 100644 --- a/internalDocumentation/html/_real_list_8h__incl.svg +++ b/internalDocumentation/html/_real_list_8h__incl.svg @@ -4,63 +4,17 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + RealList.h - + Node1 - -RealList.h + +RealList.h @@ -68,250 +22,205 @@ var sectionId = 'dynsection-0'; Node2 - -initializer_list + +initializer_list Node1->Node2 - - + + Node3 - -GenericList.h + +GenericList.h Node1->Node3 - - + + Node4 - -Real.h + +Real.h Node1->Node4 - - + + Node5 - -cmath + +cmath Node4->Node5 - - + + Node6 - -Integer.h + +Integer.h Node4->Node6 - - + + Node6->Node5 - - + + Node7 - -stdexcept + +stdexcept Node6->Node7 - - + + Node8 - -Natural.h + +Natural.h Node6->Node8 - - + + Node8->Node5 - - + + Node9 - -Assertion.h + +Assertion.h Node8->Node9 - - + + Node11 - -GenericNumber.h + +GenericNumber.h - + Node8->Node11 - - + + Node12 - -MyString.h + +MyString.h - + Node8->Node12 - - + + + + + +Node9->Node7 + + Node10 - -cassert + +string - + Node9->Node10 - - + + + + + +Node12->Node10 + + Node13 - - -string + + +GlobalMacros.h - + Node12->Node13 - - - - - -Node14 - - -GlobalMacros.h - + + - - -Node12->Node14 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/internalDocumentation/html/_real_list_8h__incl_org.svg b/internalDocumentation/html/_real_list_8h__incl_org.svg deleted file mode 100644 index a7aea292..00000000 --- a/internalDocumentation/html/_real_list_8h__incl_org.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - -RealList.h - - - -Node1 - - -RealList.h - - - - - -Node2 - - -initializer_list - - - - - -Node1->Node2 - - - - - -Node3 - - -GenericList.h - - - - - -Node1->Node3 - - - - - -Node4 - - -Real.h - - - - - -Node1->Node4 - - - - - -Node5 - - -cmath - - - - - -Node4->Node5 - - - - - -Node6 - - -Integer.h - - - - - -Node4->Node6 - - - - - -Node6->Node5 - - - - - -Node7 - - -stdexcept - - - - - -Node6->Node7 - - - - - -Node8 - - -Natural.h - - - - - -Node6->Node8 - - - - - -Node8->Node5 - - - - - -Node9 - - -Assertion.h - - - - - -Node8->Node9 - - - - - -Node11 - - -GenericNumber.h - - - - - -Node8->Node11 - - - - - -Node12 - - -MyString.h - - - - - -Node8->Node12 - - - - - -Node10 - - -cassert - - - - - -Node9->Node10 - - - - - -Node13 - - -string - - - - - -Node12->Node13 - - - - - -Node14 - - -GlobalMacros.h - - - - - -Node12->Node14 - - - - - diff --git a/internalDocumentation/html/_real_list_8h_source.html b/internalDocumentation/html/_real_list_8h_source.html index 6a0e86cd..7983bb32 100644 --- a/internalDocumentation/html/_real_list_8h_source.html +++ b/internalDocumentation/html/_real_list_8h_source.html @@ -109,38 +109,46 @@
30 
31 namespace BaseTypes::Containers {
32 
-
39  struct RealList : public GenericList<Real>
-
40  {
+ +
39 
+
40  /*--------------------*/
41 
-
49  static RealList fromList (IN initializer_list<Real> list);
-
50 
-
51  /*--------------------*/
+
48  struct RealList
+
49  : public GenericList<Real,
+
50  Real::toString,
+
51  &_realListTypeName > {
52 
-
58  String toString () const;
-
59 
-
60  /*--------------------*/
-
61 
-
67  void fill (IN Real value);
-
68 
-
69  /*--------------------*/
-
70 
-
77  void multiply (IN Real value);
+
53  /*--------------------*/
+
54  /* constructors */
+
55  /*--------------------*/
+
56 
+
64  static RealList fromList (IN initializer_list<Real> list);
+
65 
+
66  /*--------------------*/
+
67  /* element change */
+
68  /*--------------------*/
+
69 
+
75  void fill (IN Real value);
+
76 
+
77  /*--------------------*/
78 
-
79  };
-
80 
-
81 }
+
85  void multiply (IN Real value);
+
86 
+
87  };
+
88 
+
89 }
The package Containers provides container types like dictionaries, maps from string to objects,...
Definition: BaseTypes/Containers/_NAMESPACE.desc:7
std::string String
The String type represents (Unicode) character sequences.
Definition: MyString.h:28
#define IN
(informal) parameter mode for in parameter
Definition: GlobalMacros.h:15
-
void multiply(IN Real value)
Multiply list elements by value.
Definition: RealList.cpp:51
-
String toString() const
Returns printable representation of list.
Definition: RealList.cpp:37
-
static RealList fromList(IN initializer_list< Real > list)
Initializes list of reals from initializer list of values.
Definition: RealList.cpp:24
-
void fill(IN Real value)
Fills list with value.
Definition: RealList.cpp:44
+
void multiply(IN Real value)
Multiply list elements by value.
Definition: RealList.cpp:55
+
String _realListTypeName()
Returns name of real list type.
Definition: RealList.cpp:24
+
static RealList fromList(IN initializer_list< Real > list)
Initializes list of reals from initializer list of values.
Definition: RealList.cpp:33
+
void fill(IN Real value)
Fills list with value.
Definition: RealList.cpp:48
The Real specification defines a value object type for real values.
An Real object wraps a value of some associated primitive float point type in an object.
Definition: Real.h:36
-
A RealList object is a list of real values with arbitrary indexed access to positions in the list.
Definition: RealList.h:40
+
A RealList object is a list of real values with arbitrary indexed access to positions in the list.
Definition: RealList.h:51
+
StringList.cpp File Reference
@@ -96,9 +98,17 @@
-

Detailed Description

+ + + + + +

+Typedefs

+using STR = BaseModules::StringUtil
 abbreviation for StringUtil
 
+

Detailed Description

The StringList body implements lists of string values with zero-based arbitrary indexed access to positions in the list.

Author
Dr. Thomas Tensi
Date
2020-08
diff --git a/internalDocumentation/html/_string_list_8cpp.js b/internalDocumentation/html/_string_list_8cpp.js new file mode 100644 index 00000000..805fbbae --- /dev/null +++ b/internalDocumentation/html/_string_list_8cpp.js @@ -0,0 +1,4 @@ +var _string_list_8cpp = +[ + [ "STR", "_string_list_8cpp.html#a5b6f88d1249b396e351c4a85bcb35b2c", null ] +]; \ No newline at end of file diff --git a/internalDocumentation/html/_string_list_8cpp__incl.map b/internalDocumentation/html/_string_list_8cpp__incl.map index 29feba43..062f6e0b 100644 --- a/internalDocumentation/html/_string_list_8cpp__incl.map +++ b/internalDocumentation/html/_string_list_8cpp__incl.map @@ -1,22 +1,21 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + diff --git a/internalDocumentation/html/_string_list_8cpp__incl.md5 b/internalDocumentation/html/_string_list_8cpp__incl.md5 index 74108967..3b6e64d7 100644 --- a/internalDocumentation/html/_string_list_8cpp__incl.md5 +++ b/internalDocumentation/html/_string_list_8cpp__incl.md5 @@ -1 +1 @@ -9112840374e4e3785984da6164f43509 \ No newline at end of file +444f29ac2666bc83e3ebc9642e7820a0 \ No newline at end of file diff --git a/internalDocumentation/html/_string_list_8cpp__incl.svg b/internalDocumentation/html/_string_list_8cpp__incl.svg index 80f8ec7a..9ceb40cb 100644 --- a/internalDocumentation/html/_string_list_8cpp__incl.svg +++ b/internalDocumentation/html/_string_list_8cpp__incl.svg @@ -4,17 +4,17 @@ - - + + StringList.cpp - + Node1 - -StringList.cpp + +StringList.cpp @@ -22,328 +22,325 @@ Node2 - -Assertion.h + +Assertion.h Node1->Node2 - - + + - - -Node4 - - -StringUtil.h + + +Node5 + + +StringUtil.h - - -Node1->Node4 - - + + +Node1->Node5 + + Node3 - -cassert + +stdexcept Node2->Node3 - - + + - - -Node5 - - -Boolean.h + + +Node4 + + +string - - -Node4->Node5 - - + + +Node2->Node4 + + + + + +Node6 + + +Boolean.h + + + + + +Node5->Node6 + + Node9 - -Character.h + +Character.h - - -Node4->Node9 - - + + +Node5->Node9 + + Node14 - -Percentage.h - - - - - -Node4->Node14 - - - - - -Node18 - - -StringList.h + +Percentage.h - - -Node4->Node18 - - + + +Node5->Node14 + + - - -Node6 - - -MyString.h + + +Node17 + + +StringList.h - - -Node5->Node6 - - + + +Node5->Node17 + + Node7 - - -string + + +MyString.h Node6->Node7 - - + + + + + +Node7->Node4 + + Node8 - -GlobalMacros.h + +GlobalMacros.h - - -Node6->Node8 - - + + +Node7->Node8 + + Node10 - -cmath + +cmath - + Node9->Node10 - - + + Node11 - -Byte.h + +Byte.h - + Node9->Node11 - - + + - + Node11->Node10 - - + + Node12 - -Natural.h + +Natural.h - + Node11->Node12 - - + + - + Node12->Node2 - - + + - - -Node12->Node6 - - + + +Node12->Node7 + + - + Node12->Node10 - - + + Node13 - -GenericNumber.h + +GenericNumber.h - + Node12->Node13 - - + + Node15 - -Real.h + +Real.h - + Node14->Node15 - - + + - + Node15->Node10 - - + + Node16 - -Integer.h + +Integer.h - + Node15->Node16 - - + + + + + +Node16->Node3 + + - + Node16->Node10 - - + + - + Node16->Node12 - - + + - - -Node17 - - -stdexcept + + +Node18 + + +initializer_list - - -Node16->Node17 - - + + +Node17->Node18 + + Node19 - -initializer_list + +GenericList.h - - -Node18->Node19 - - - - - -Node20 - - -GenericList.h - - - - - -Node18->Node20 - - + + +Node17->Node19 + + diff --git a/internalDocumentation/html/_string_list_8cpp__incl_org.svg b/internalDocumentation/html/_string_list_8cpp__incl_org.svg deleted file mode 100644 index 71188073..00000000 --- a/internalDocumentation/html/_string_list_8cpp__incl_org.svg +++ /dev/null @@ -1,355 +0,0 @@ - - - - - - -StringList.cpp - - - -Node1 - - -StringList.cpp - - - - - -Node2 - - -Assertion.h - - - - - -Node1->Node2 - - - - - -Node4 - - -StringUtil.h - - - - - -Node1->Node4 - - - - - -Node3 - - -cassert - - - - - -Node2->Node3 - - - - - -Node5 - - -Boolean.h - - - - - -Node4->Node5 - - - - - -Node9 - - -Byte.h - - - - - -Node4->Node9 - - - - - -Node13 - - -Character.h - - - - - -Node4->Node13 - - - - - -Node14 - - -Percentage.h - - - - - -Node4->Node14 - - - - - -Node18 - - -StringList.h - - - - - -Node4->Node18 - - - - - -Node6 - - -MyString.h - - - - - -Node5->Node6 - - - - - -Node7 - - -string - - - - - -Node6->Node7 - - - - - -Node8 - - -GlobalMacros.h - - - - - -Node6->Node8 - - - - - -Node10 - - -cmath - - - - - -Node9->Node10 - - - - - -Node11 - - -Natural.h - - - - - -Node9->Node11 - - - - - -Node11->Node2 - - - - - -Node11->Node6 - - - - - -Node11->Node10 - - - - - -Node12 - - -GenericNumber.h - - - - - -Node11->Node12 - - - - - -Node13->Node10 - - - - - -Node13->Node11 - - - - - -Node15 - - -Real.h - - - - - -Node14->Node15 - - - - - -Node15->Node10 - - - - - -Node16 - - -Integer.h - - - - - -Node15->Node16 - - - - - -Node16->Node10 - - - - - -Node16->Node11 - - - - - -Node17 - - -stdexcept - - - - - -Node16->Node17 - - - - - -Node19 - - -initializer_list - - - - - -Node18->Node19 - - - - - -Node20 - - -GenericList.h - - - - - -Node18->Node20 - - - - - diff --git a/internalDocumentation/html/_string_list_8h.html b/internalDocumentation/html/_string_list_8h.html index fdc1c726..a8006bfe 100644 --- a/internalDocumentation/html/_string_list_8h.html +++ b/internalDocumentation/html/_string_list_8h.html @@ -84,7 +84,8 @@
StringList.h File Reference
@@ -99,7 +100,7 @@
+ This graph shows which files directly or indirectly include this file:
@@ -125,6 +126,12 @@  BaseTypes::Containers  The package Containers provides container types like dictionaries, maps from string to objects, lists of string or numbers and string sets.
  + + + + +

+Functions

String BaseTypes::Containers::_stringListTypeName ()
 Returns name of string list type. More...
 

Detailed Description

The StringList specification defines lists of string values with zero-based arbitrary indexed access to positions in the list.

diff --git a/internalDocumentation/html/_string_list_8h.js b/internalDocumentation/html/_string_list_8h.js new file mode 100644 index 00000000..efc4d6f6 --- /dev/null +++ b/internalDocumentation/html/_string_list_8h.js @@ -0,0 +1,5 @@ +var _string_list_8h = +[ + [ "StringList", "struct_base_types_1_1_containers_1_1_string_list.html", "struct_base_types_1_1_containers_1_1_string_list" ], + [ "_stringListTypeName", "_string_list_8h.html#a56ea6b3111bd60ba54aec39ecefed8e0", null ] +]; \ No newline at end of file diff --git a/internalDocumentation/html/_string_list_8h__dep__incl.map b/internalDocumentation/html/_string_list_8h__dep__incl.map index 8e14a1b7..daae6391 100644 --- a/internalDocumentation/html/_string_list_8h__dep__incl.map +++ b/internalDocumentation/html/_string_list_8h__dep__incl.map @@ -1,29 +1,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/internalDocumentation/html/_string_list_8h__dep__incl.md5 b/internalDocumentation/html/_string_list_8h__dep__incl.md5 index 30216261..2c0717b2 100644 --- a/internalDocumentation/html/_string_list_8h__dep__incl.md5 +++ b/internalDocumentation/html/_string_list_8h__dep__incl.md5 @@ -1 +1 @@ -0ee65cd9d24f4a341e87ed48fd943fc2 \ No newline at end of file +704188162b3fd0485f7955c7388c5ebe \ No newline at end of file diff --git a/internalDocumentation/html/_string_list_8h__dep__incl.svg b/internalDocumentation/html/_string_list_8h__dep__incl.svg index dce0e5ee..132116e7 100644 --- a/internalDocumentation/html/_string_list_8h__dep__incl.svg +++ b/internalDocumentation/html/_string_list_8h__dep__incl.svg @@ -4,7 +4,7 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + BaseTypes::Primitives::Integer - + Node1 - -BaseTypes::Primitives -::Integer - - - -+ Integer() -+ Integer() -+ Integer() -+ toString() -+ operator float() -+ operator double() -+ operator size_t() -+ operator Natural() -+ operator%() -+ operator++() -+ operator++() -+ operator--() -+ operator--() -+ mod() -+ power() -+ ceiling() -+ floor() -+ mod() -+ power() -+ round() -+ toString() -+ toNatural() + +BaseTypes::Primitives +::Integer + + + ++ Integer() ++ Integer() ++ Integer() ++ toString() ++ operator float() ++ operator double() ++ operator size_t() ++ operator Natural() ++ operator%() ++ operator++() ++ operator++() ++ operator--() ++ operator--() ++ mod() ++ power() ++ ceiling() ++ floor() ++ mod() ++ power() ++ round() ++ toString() ++ toNatural() @@ -94,64 +48,22 @@ var sectionId = 'dynsection-0'; Node2 - -BaseTypes::GenericTypes -::GenericNumber< Integer, - int > - - - - + +BaseTypes::GenericTypes +::GenericNumber< Integer, + int > + + + + Node2->Node1 - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural-members.html b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural-members.html index a9e54759..3dba70bf 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural-members.html +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural-members.html @@ -109,8 +109,9 @@
power(IN Natural base, IN Natural exponent)BaseTypes::Primitives::Natural
inlinestatic power(IN Natural exponent)BaseTypes::Primitives::Naturalinline round(IN double r)BaseTypes::Primitives::Naturalinlinestatic - toString(IN Natural precision=0, IN String padCharacter="0") constBaseTypes::Primitives::Naturalinline + toString(IN Natural precision=0, IN String padString="0") constBaseTypes::Primitives::Naturalinline toString(IN Natural &n)BaseTypes::Primitives::Naturalinlinestatic + toStringWithBase(IN Natural base, IN Natural precision=0, IN String padString="0") constBaseTypes::Primitives::Naturalinline
diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.html b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.html index 3965efe2..bb96b7e1 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.html +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.html @@ -100,7 +100,7 @@
- - - + + + + + + @@ -873,8 +876,8 @@

-

◆ toString() [2/2]

+ +

◆ toString() [2/2]

@@ -892,7 +895,7 @@

- + @@ -907,11 +910,63 @@

-

Returns string representation of natural with precision and padding information.

+

Returns string representation of natural with precision and padString information.

Parameters

@@ -115,9 +115,12 @@

 Natural (IN size_t n)
 Initializes natural from unsigned n. More...
 
String toString (IN Natural precision=0, IN String padCharacter="0") const
 Returns string representation of natural with precision and padding information. More...
 
String toStringWithBase (IN Natural base, IN Natural precision=0, IN String padString="0") const
 Returns string representation of natural with precision and padString information relative to base More...
 
String toString (IN Natural precision=0, IN String padString="0") const
 Returns string representation of natural with precision and padString information. More...
 
 operator float () const
 Returns the current value as a floating point value upon explicit conversion. More...
 
IN String padCharacter = "0" padString = "0" 
- + +
[in]precisionminimum number of valid digits
[in]padCharactercharacter to use for left padding
[in]padStringstring to use for left padding
+ + +
Returns
string representation
+ + + +
+

◆ toStringWithBase()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
String BaseTypes::Primitives::Natural::toStringWithBase (IN Natural base,
IN Natural precision = 0,
IN String padString = "0" 
) const
+
+inline
+
+ +

Returns string representation of natural with precision and padString information relative to base

+
Parameters
+ + +
[in]precisionminimum number of valid digits
[in]padStringstring to use for left padding
diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.js b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.js index a5ee9d57..8206a5dd 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.js +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.js @@ -21,5 +21,6 @@ var struct_base_types_1_1_primitives_1_1_natural = [ "power", "struct_base_types_1_1_primitives_1_1_natural.html#a44e366bb3581f12f64dfd420d1e8dc50", null ], [ "round", "struct_base_types_1_1_primitives_1_1_natural.html#ad97822aaef0ee15b6ec03c500d83062f", null ], [ "toString", "struct_base_types_1_1_primitives_1_1_natural.html#a06230fc62cf08c4d2c356fce8d060b44", null ], - [ "toString", "struct_base_types_1_1_primitives_1_1_natural.html#aa031f66ebf2d5cf33c418ddaa64ec0fe", null ] + [ "toString", "struct_base_types_1_1_primitives_1_1_natural.html#a76bca3077eb8da29eb6aad98daeafe72", null ], + [ "toStringWithBase", "struct_base_types_1_1_primitives_1_1_natural.html#a4f570a00378732b8088fe6de71b331a4", null ] ]; \ No newline at end of file diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.png b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural.png new file mode 100644 index 0000000000000000000000000000000000000000..0b043e9d41e493758c44cb33b22584e9a0f369e0 GIT binary patch literal 1086 zcmeAS@N?(olHy`uVBq!ia0y~yV9Wrr12~w0By+0#WFRFG;1lBd|Nnm=^XZEpiKW*j z09jys;J|_2*T?LDT#k|;zhDNSA`rNGD#Qq=`>dynV@L(#+qoBuK5Ox?g`5Aq_rKTw zb%So=qa}a4)y`hLGFy%9MKxfNs%E2*t|#Z4 zMcXF_PCB zu06r;!e4m4YuXY{|IWPI%j%|jd%N8KbzNO)Q3uu@ zzJ9ze+56(A{_NuHPm@1g({q()wyopwbDHh>&uY@#sy_R072D2xEaw;hshTIAQR5)t z^+H5l)U18F{pyQ$hmV|m86RNCbB4dNBVt0y9i_?l^MVeZQSrQBE*UoG(3Vd!e(6h- z<3Hd1x8eS8?Z;;B6&2ai)%OJdc6;`h|LuFBthMLfx;J0id9p9b*J{bSw^w$)*FQh^ zl40>9?VBZkkL_6aJmkxJwOS3UHH9^|EZ@D`E%EKglRvd-?(tV%)SgwpdS?GK|2HWXC?#z*YAGKflo=JG`oh5Du)h|x^GU26y>dW|uNgVK-#$|@nVAhwIWsG6Lix`76&N6UL$!K8lGI3y1 zl~QOF;+^2o$>y=Zg;^zF5hKt%N~QmJUQA1Coq03Lpn)kt70rqbabMn^V70h-KDoi$ z$^8ER&%fU?%_z>c*>%QR|9&3lBK_wd?_6GAWOJ$@dg1@cFScp^UVb|>`n8$Z{b$>D zz23^ZqxO!|o&L(4jO@SPb95i|y1X~rJ6*$Si{y{hyI<{8k zuD$rX=h-6v|9+Owx(j4qzvo$WJdsgHX?w|+T#>W9#qV>IU+xgOYyQsWTZT>dz4uIO zl=qhKNUym6anbX-`NFmNxzCm+e+y_}-Q&`Gul&xEX?EIGI!=aWVUNq?_RM~<*K5n? z?Eeo%%)A$_-7T?JvSqdJ!l%21Z+p2{yLA^Hu42B(z+bqE;ogMn0 - - + + diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph.md5 b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph.md5 index 6509c17a..7c3626c3 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph.md5 +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph.md5 @@ -1 +1 @@ -0de82452e477f7a24b2d12e545b05354 \ No newline at end of file +3e1f97100ae1fe61b9edeee98e8978ca \ No newline at end of file diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph.svg b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph.svg index e6064b65..66497ae2 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph.svg +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph.svg @@ -4,89 +4,39 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + BaseTypes::Primitives::Natural - + Node1 - -BaseTypes::Primitives -::Natural - - - -+ Natural() -+ Natural() -+ Natural() -+ toString() -+ operator float() -+ operator double() -+ operator int() -+ operator%() -+ operator%=() -+ operator++() -+ operator++() -+ operator--() -+ operator--() -+ mod() -+ power() -+ ceiling() -+ floor() -+ forceToInterval() -+ mod() -+ power() -+ round() -+ toString() + +BaseTypes::Primitives +::Natural + + + ++ Natural() ++ Natural() ++ Natural() ++ toStringWithBase() ++ toString() ++ operator float() ++ operator double() ++ operator int() ++ operator%() ++ operator%=() +and 6 more... ++ ceiling() ++ floor() ++ forceToInterval() ++ mod() ++ power() ++ round() ++ toString() @@ -94,64 +44,22 @@ var sectionId = 'dynsection-0'; Node2 - -BaseTypes::GenericTypes -::GenericNumber< Natural, - size_t > - - - - + +BaseTypes::GenericTypes +::GenericNumber< Natural, + size_t > + + + + Node2->Node1 - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph_org.svg b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph_org.svg deleted file mode 100644 index 0cfaeb7d..00000000 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_natural__inherit__graph_org.svg +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - -BaseTypes::Primitives::Natural - - - -Node1 - - -BaseTypes::Primitives -::Natural - - - -+ Natural() -+ Natural() -+ Natural() -+ toString() -+ operator float() -+ operator double() -+ operator int() -+ operator%() -+ operator%=() -+ operator++() -+ operator++() -+ operator--() -+ operator--() -+ mod() -+ power() -+ ceiling() -+ floor() -+ forceToInterval() -+ mod() -+ power() -+ round() -+ toString() - - - - - -Node2 - - -BaseTypes::GenericTypes -::GenericNumber< Natural, - size_t > - - - - - - - - - -Node2->Node1 - - - - - diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage-members.html b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage-members.html index c2515fd6..29e8f5d7 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage-members.html +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage-members.html @@ -107,45 +107,47 @@
fractionalPart() constBaseTypes::Primitives::Real
inline hasDoublePrecision()BaseTypes::Primitives::Realinlinestatic infinityBaseTypes::Primitives::Realinlinestatic - log(IN Real x)BaseTypes::Primitives::Realinlinestatic - log() constBaseTypes::Primitives::Realinline - mod(IN Real x, IN Real d)BaseTypes::Primitives::Realinlinestatic - mod(IN Real d) constBaseTypes::Primitives::Realinline - of(IN T value) constBaseTypes::Primitives::Percentageinline - oneBaseTypes::Primitives::Realinlinestatic - operator double() constBaseTypes::Primitives::Realinlineexplicit - operator float() constBaseTypes::Primitives::Realinlineexplicit - operator int() constBaseTypes::Primitives::Realinlineexplicit - operator Integer() constBaseTypes::Primitives::Realinlineexplicit - operator Natural() constBaseTypes::Primitives::Realinlineexplicit - operator+(IN Percentage other) constBaseTypes::Primitives::Percentageinline - operator-(IN Percentage other) constBaseTypes::Primitives::Percentageinline - Percentage()BaseTypes::Primitives::Percentageinline - Percentage(IN double d)BaseTypes::Primitives::Percentageinline - Percentage(IN float f)BaseTypes::Primitives::Percentageinline - Percentage(IN Real r)BaseTypes::Primitives::Percentageinline - percentOf(IN Percentage percentage, IN Real value)BaseTypes::Primitives::Percentageinlinestatic - percentOf(IN Percentage percentage, IN Integer value)BaseTypes::Primitives::Percentageinlinestatic - percentOf(IN Percentage percentage, IN Natural value)BaseTypes::Primitives::Percentageinlinestatic - piBaseTypes::Primitives::Realinlinestatic - power(IN Real base, IN Real exponent)BaseTypes::Primitives::Realinlinestatic - power(IN Real exponent) constBaseTypes::Primitives::Realinline - Real()BaseTypes::Primitives::Realinline - Real(IN double d)BaseTypes::Primitives::Realinline - Real(IN float f)BaseTypes::Primitives::Realinline - Real(IN Integer i)BaseTypes::Primitives::Realinline - Real(IN Natural n)BaseTypes::Primitives::Realinline - round(IN Real x, IN Natural decimalPlaceCount=0)BaseTypes::Primitives::Realinlinestatic - round(IN Natural decimalPlaceCount=0) constBaseTypes::Primitives::Realinline - sin(IN Real x)BaseTypes::Primitives::Realinlinestatic - sin() constBaseTypes::Primitives::Realinline - sinh(IN Real x)BaseTypes::Primitives::Realinlinestatic - sinh() constBaseTypes::Primitives::Realinline - sqr(IN Real x)BaseTypes::Primitives::Realinlinestatic - sqr() constBaseTypes::Primitives::Realinline - sqrt(IN Real x)BaseTypes::Primitives::Realinlinestatic - sqrt() constBaseTypes::Primitives::Realinline - toString(IN Natural precision=0, IN Natural fractionalDigitCount=0, IN String padCharacter="0") constBaseTypes::Primitives::Percentageinline + integralPart(IN Real x)BaseTypes::Primitives::Realinlinestatic + log(IN Real x)BaseTypes::Primitives::Realinlinestatic + log() constBaseTypes::Primitives::Realinline + mod(IN Real x, IN Real d)BaseTypes::Primitives::Realinlinestatic + mod(IN Real d) constBaseTypes::Primitives::Realinline + of(IN T value) constBaseTypes::Primitives::Percentageinline + oneBaseTypes::Primitives::Realinlinestatic + operator double() constBaseTypes::Primitives::Realinlineexplicit + operator float() constBaseTypes::Primitives::Realinlineexplicit + operator int() constBaseTypes::Primitives::Realinlineexplicit + operator Integer() constBaseTypes::Primitives::Realinlineexplicit + operator Natural() constBaseTypes::Primitives::Realinlineexplicit + operator+(IN Percentage other) constBaseTypes::Primitives::Percentageinline + operator-(IN Percentage other) constBaseTypes::Primitives::Percentageinline + Percentage()BaseTypes::Primitives::Percentageinline + Percentage(IN double d)BaseTypes::Primitives::Percentageinline + Percentage(IN float f)BaseTypes::Primitives::Percentageinline + Percentage(IN Real r)BaseTypes::Primitives::Percentageinline + percentOf(IN Percentage percentage, IN Real value)BaseTypes::Primitives::Percentageinlinestatic + percentOf(IN Percentage percentage, IN Integer value)BaseTypes::Primitives::Percentageinlinestatic + percentOf(IN Percentage percentage, IN Natural value)BaseTypes::Primitives::Percentageinlinestatic + piBaseTypes::Primitives::Realinlinestatic + power(IN Real base, IN Real exponent)BaseTypes::Primitives::Realinlinestatic + power(IN Real exponent) constBaseTypes::Primitives::Realinline + Real()BaseTypes::Primitives::Realinline + Real(IN double d)BaseTypes::Primitives::Realinline + Real(IN float f)BaseTypes::Primitives::Realinline + Real(IN Integer i)BaseTypes::Primitives::Realinline + Real(IN Natural n)BaseTypes::Primitives::Realinline + round(IN Real x, IN Natural decimalPlaceCount=0)BaseTypes::Primitives::Realinlinestatic + round(IN Natural decimalPlaceCount=0) constBaseTypes::Primitives::Realinline + sin(IN Real x)BaseTypes::Primitives::Realinlinestatic + sin() constBaseTypes::Primitives::Realinline + sinh(IN Real x)BaseTypes::Primitives::Realinlinestatic + sinh() constBaseTypes::Primitives::Realinline + sqr(IN Real x)BaseTypes::Primitives::Realinlinestatic + sqr() constBaseTypes::Primitives::Realinline + sqrt(IN Real x)BaseTypes::Primitives::Realinlinestatic + sqrt() constBaseTypes::Primitives::Realinline + toString(IN Natural precision=0, IN Natural fractionalDigitCount=0, IN String padString="0") constBaseTypes::Primitives::Percentageinline + toString(IN Percentage &p)BaseTypes::Primitives::Percentageinlinestatic BaseTypes::Primitives::Real::toString(IN Real &r)BaseTypes::Primitives::Realinlinestatic twoBaseTypes::Primitives::Realinlinestatic twoPiBaseTypes::Primitives::Realinlinestatic diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.html b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.html index cbf4adf5..9eb2b425 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.html +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.html @@ -118,9 +118,9 @@  Percentage (IN Real r)  Initializes percentage from real value r. More...
  -String toString (IN Natural precision=0, IN Natural fractionalDigitCount=0, IN String padCharacter="0") const - Returns string representation of percentage with precision and padding information. More...
-  +String toString (IN Natural precision=0, IN Natural fractionalDigitCount=0, IN String padString="0") const + Returns string representation of percentage with precision and padding information. More...
Percentage operator+ (IN Percentage other) const  Return sum of current value and other. More...
  @@ -151,9 +151,9 @@  Real (IN Natural n)  Initializes real from natural n. More...
  -String toString (IN Natural precision=0, IN Natural fractionalDigitCount=0, IN String padCharacter="0") const - Returns string representation of real with precision and padding information. More...
-  +String toString (IN Natural precision=0, IN Natural fractionalDigitCount=0, IN String padString="0") const + Returns string representation of real with precision and padding information. More...
+   operator double () const  Returns the current value as a double value upon explicit conversion. More...
  @@ -217,6 +217,9 @@ + + + @@ -252,8 +255,11 @@ - + + + + @@ -724,8 +730,8 @@

-

◆ toString()

+ +

◆ toString() [1/2]

@@ -749,7 +755,7 @@

- + @@ -769,7 +775,42 @@

- + +

Static Public Member Functions

static String toString (IN Percentage &p)
 Returns string representation of percentage p. More...
 
static Percentage forceToPercentage (IN Percentage x)
 Forces value x to a percentage between 0 and 100. More...
 
 Forces value x to range between lowerEndPoint and upperEndPoint. More...
 
static Real fractionalPart (IN Real x)
 Strips off integer part from x and only returns digits after the decimal point; for negative x values a negative value is produced. More...
 Strips off integral part from x and only returns digits after the decimal point; for negative x values a negative value is produced. More...
 
static Real integralPart (IN Real x)
 Strips off fractional part from x and only returns digits before the decimal point; for negative x values a negative value is produced. More...
 
static Real log (IN Real x)
 Returns the natural logarithm of x. More...
 
IN String padCharacter = "0" padString = "0" 
[in]precisionminimum number of valid digits
[in]fractionalDigitCountnumber of decimal digits
[in]padCharactercharacter to use for left padding
[in]padStringstring to use for left padding
+ + +
Returns
string representation
+ +
+
+ +

◆ toString() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
static String BaseTypes::Primitives::Percentage::toString (IN Percentagep)
+
+inlinestatic
+
+ +

Returns string representation of percentage p.

+
Parameters
+ +
[in]ppercentage value to be converted to a string
diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.js b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.js index c3f719e7..00efa5a4 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.js +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.js @@ -12,5 +12,6 @@ var struct_base_types_1_1_primitives_1_1_percentage = [ "percentOf", "struct_base_types_1_1_primitives_1_1_percentage.html#a2bc90e7e342dd2a617a689d51d432588", null ], [ "percentOf", "struct_base_types_1_1_primitives_1_1_percentage.html#abbaf2122dd39802e828df59db80534e9", null ], [ "percentOf", "struct_base_types_1_1_primitives_1_1_percentage.html#a6e55705f8463d3aac8b393d081f0d5a8", null ], - [ "toString", "struct_base_types_1_1_primitives_1_1_percentage.html#a0f50c786c94ed6fc17663ebf97bc3236", null ] + [ "toString", "struct_base_types_1_1_primitives_1_1_percentage.html#a0f3426bda6f5d4406fb9e4b960d258ed", null ], + [ "toString", "struct_base_types_1_1_primitives_1_1_percentage.html#a68c407afb294ef038e2f8164e1a54450", null ] ]; \ No newline at end of file diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.png b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage.png new file mode 100644 index 0000000000000000000000000000000000000000..f7d93b6ba7455e9c2dad5cf721e6b4061ac0bed4 GIT binary patch literal 1532 zcmb`HeKga19LIlTLZ~Z>lypSYy%Wnrq^GNS49#<8YfjdQ+~x6CKW%eW7)5cTnW6_| z#JzcLhRVb3GLAgQ=CZWe>_J-F9cy>@{@4F~&iQ^m@7Mc$&iQ=5-*diSa!`Pmf!;Pf z000bpygg9>pn+EFY@K!Le19RSPF+lc{6kKtR4TPx;K{Km<9F2R|JBvibz9JTSdBW# zsDNNV-Sl6K{T1Q}0I*yi&toB1G=vWXshqv~NS9Bi$5uO+edeiMlL-Mzr+6e{X;jxz zqTP-0wX?RXFoqd}vTl|VLer>rFX=}(7wHvY zM#&Jrk?0sif(z}bTN>O!8N7!5CUsAXJYf@9pJU16@kl(67hpB}q8WGS_nj6^GSt}3 z(2arlnCYT?)w}YMBz^ZIcql~*=LBld?&Wg2Bm0UIWkJr+#Nu~*32nW9F&DMEx?*;!}M`DGG$8o6pcWrcRJvY z??TLh^K04cMAZdc^TMg7@HTU+=1!0No`KpxQugNSB@{w#*>IZNnTuYr?QPIe zc9d0t?>$$z@{BkkBP0bobTdq*TIrj#zIIS#{)AM@?!h*m5sdZFzA{^rUXKjBGY5_6!d1U)a9J8#%<=6S5ntTY2H84_4p{K9U2IP zo!Hxu`H?~*L#ts!i>yU@rn2>e|+<44x(Y>oNV`cL_@xnw1o23 zn}NeQqUtG>TcdF}8%`x?nz_p?6T1nJ6w5We0pq7=zyyO?+sI6Ug zTaP07use4ljq_?WtNyOoiy1lNYv*HEVOtLD1||x>9g@(-UhdGE+>faQvO<{AtJ5nH zfTDE!ypM7EzE-q&Zgj{X)tD1`gR^|ZOWa8QIFxX|>5D^h?S?dXBQ$_ln9^_9_YtaS zUMsHeTt%F#LJJ5ud(&S$zyJL+X;=y@nqtEIX=_dV9=-VL%+llC;}2{fnRLZ?Cy5L8 ztU@j%X9tBMKpMZ8H%--1+l6o1(_%4WY`w!J>xj?564|lYuoXpcW2Ex(7nGJO+3nzg z>A0`feBl|7DzFp3W}b>SPv+_aXJ5G|ieE^Z4FU!6BmUv|pY5@#sTud#<+;H++3=O? z6D_2^&|hi(h==n#KHpxn%`?Wg#^eRlfYyS3spcVT9Zfkb+h%18V=O@XihWM41j&$| zTqnV4Mb15ctMPZ4<+rbiQ`zzxssQEtgJfsVp#Fu_r2#kfR}J`_2=J^selFu*1A+Ky literal 0 HcmV?d00001 diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.map b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.map index 7a8f6c72..e710f34d 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.map +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.map @@ -1,5 +1,5 @@ - - - + + + diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.md5 b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.md5 index 81df1911..4834efae 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.md5 +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.md5 @@ -1 +1 @@ -9ef95c8fe8321844f441c091a5abbc93 \ No newline at end of file +3828fea55df6634a36f8b9853f7ca3fd \ No newline at end of file diff --git a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.svg b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.svg index e51edf16..7690c22f 100644 --- a/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.svg +++ b/internalDocumentation/html/struct_base_types_1_1_primitives_1_1_percentage__inherit__graph.svg @@ -4,7 +4,7 @@ - +