From 48e012e7cbf188b5b5225fb8bf275a2f878d8dc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Chali=C5=84ski?= Date: Thu, 25 Jan 2024 14:11:39 +0100 Subject: [PATCH 1/8] livebooks using core 1.0 --- livebooks/audio_mixer/README.md | 13 ++++++++ livebooks/audio_mixer/audio_mixer.livemd | 20 ++++++------ livebooks/messages_source_and_sink/README.md | 13 ++++++++ .../messages_source_and_sink.livemd | 8 ++--- livebooks/playing_mp3_file/README.md | 13 ++++++++ .../playing_mp3_file/playing_mp3_file.livemd | 18 +++++------ livebooks/rtmp/README.md | 15 +++++++++ livebooks/rtmp/rtmp_receiver.livemd | 22 +++++++------ livebooks/rtmp/rtmp_sender.livemd | 30 ++++++++--------- livebooks/soundwave/README.md | 13 ++++++++ livebooks/soundwave/soundwave.livemd | 32 +++++++++---------- 11 files changed, 132 insertions(+), 65 deletions(-) create mode 100644 livebooks/audio_mixer/README.md create mode 100644 livebooks/messages_source_and_sink/README.md create mode 100644 livebooks/playing_mp3_file/README.md create mode 100644 livebooks/rtmp/README.md create mode 100644 livebooks/soundwave/README.md diff --git a/livebooks/audio_mixer/README.md b/livebooks/audio_mixer/README.md new file mode 100644 index 00000000..fcc8c9d2 --- /dev/null +++ b/livebooks/audio_mixer/README.md @@ -0,0 +1,13 @@ +# Membrane audio mixer + +This livebook shows how to mix a beep sound into background music over a period of time. + +To run the demo, [install Livebook](https://livebook.dev/#install) and open the `rtmp_sender.livemd` file there. + +## Copyright and License + +Copyright 2024, [Software Mansion](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) + +[![Software Mansion](https://docs.membrane.stream/static/logo/swm_logo_readme.png)](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) + +Licensed under the [Apache License, Version 2.0](LICENSE) diff --git a/livebooks/audio_mixer/audio_mixer.livemd b/livebooks/audio_mixer/audio_mixer.livemd index ab740fdb..dd8c963c 100644 --- a/livebooks/audio_mixer/audio_mixer.livemd +++ b/livebooks/audio_mixer/audio_mixer.livemd @@ -5,14 +5,14 @@ File.cd(__DIR__) Logger.configure(level: :error) Mix.install([ - {:membrane_core, "~> 0.11.2"}, - {:membrane_audio_mix_plugin, "~> 0.12.0"}, - {:membrane_file_plugin, "~> 0.13.0"}, - {:membrane_mp3_mad_plugin, "~> 0.14.0"}, - {:membrane_ffmpeg_swresample_plugin, "~> 0.16.1"}, - {:membrane_aac_fdk_plugin, "~> 0.14.0"}, + {:membrane_core, "~> 1.0"}, + {:membrane_audio_mix_plugin, "~> 0.16.0"}, + {:membrane_file_plugin, "~> 0.16.0"}, + {:membrane_mp3_mad_plugin, "~> 0.18.0"}, + {:membrane_ffmpeg_swresample_plugin, "~> 0.19.0"}, + {:membrane_aac_fdk_plugin, "~> 0.18.0"}, {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin"}, - {:membrane_tee_plugin, "~> 0.10.1"} + {:membrane_tee_plugin, "~> 0.12.0"} ]) ``` @@ -111,10 +111,10 @@ structure = beeps_split ++ [beep_audio_input, background_audio_input, mixer_outp ## Playing audio ```elixir -alias Membrane.RemoteControlled, as: RC +alias Membrane.RCPipeline, as: RC -pipeline = RC.Pipeline.start!() -RC.Pipeline.exec_actions(pipeline, spec: structure, playback: :playing) +pipeline = RC.start!() +RC.exec_actions(pipeline, spec: structure) kino ``` diff --git a/livebooks/messages_source_and_sink/README.md b/livebooks/messages_source_and_sink/README.md new file mode 100644 index 00000000..55cced44 --- /dev/null +++ b/livebooks/messages_source_and_sink/README.md @@ -0,0 +1,13 @@ +# Membrane messages source and sink + +This livebook shows how to setup a simple pipeline and send messages through it. + +To run the demo, [install Livebook](https://livebook.dev/#install) and open the `rtmp_sender.livemd` file there. + +## Copyright and License + +Copyright 2024, [Software Mansion](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) + +[![Software Mansion](https://docs.membrane.stream/static/logo/swm_logo_readme.png)](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) + +Licensed under the [Apache License, Version 2.0](LICENSE) diff --git a/livebooks/messages_source_and_sink/messages_source_and_sink.livemd b/livebooks/messages_source_and_sink/messages_source_and_sink.livemd index d3c9fcad..855f632b 100644 --- a/livebooks/messages_source_and_sink/messages_source_and_sink.livemd +++ b/livebooks/messages_source_and_sink/messages_source_and_sink.livemd @@ -5,7 +5,7 @@ File.cd(__DIR__) Logger.configure(level: :error) Mix.install([ - {:membrane_core, "~> 0.12.7"} + {:membrane_core, "~> 1.0"} ]) ``` @@ -18,7 +18,7 @@ defmodule MessageSource do require Membrane.Logger def_output_pad(:output, - mode: :push, + flow_control: :push, accepted_format: _any ) @@ -75,7 +75,7 @@ end defmodule MessageSink do use Membrane.Sink - def_input_pad(:input, mode: :push, accepted_format: _any) + def_input_pad(:input, flow_control: :push, accepted_format: _any) def_options(receiver: [description: "PID of the process that will receive messages from the sink", spec: pid()]) @@ -111,7 +111,7 @@ defmodule MyPipeline do end end -{:ok, _supervisor, pipeline} = MyPipeline.start(receiver: self()) +{:ok, _supervisor, pipeline} = Membrane.Pipeline.start(MyPipeline, receiver: self()) payloads = 1..10 Task.async(fn -> diff --git a/livebooks/playing_mp3_file/README.md b/livebooks/playing_mp3_file/README.md new file mode 100644 index 00000000..2ae04a88 --- /dev/null +++ b/livebooks/playing_mp3_file/README.md @@ -0,0 +1,13 @@ +# Membrane playing mp3 file demo + +This livebook shows how to load `MP3` audio from the file, transcode it to the `AAC` codec, and play it. + +To run the demo, [install Livebook](https://livebook.dev/#install) and open the `rtmp_sender.livemd` file there. + +## Copyright and License + +Copyright 2024, [Software Mansion](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) + +[![Software Mansion](https://docs.membrane.stream/static/logo/swm_logo_readme.png)](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) + +Licensed under the [Apache License, Version 2.0](LICENSE) diff --git a/livebooks/playing_mp3_file/playing_mp3_file.livemd b/livebooks/playing_mp3_file/playing_mp3_file.livemd index bc70bd99..038793bf 100644 --- a/livebooks/playing_mp3_file/playing_mp3_file.livemd +++ b/livebooks/playing_mp3_file/playing_mp3_file.livemd @@ -5,11 +5,11 @@ File.cd(__DIR__) Logger.configure(level: :error) Mix.install([ - {:membrane_core, "~> 0.11.2"}, - {:membrane_file_plugin, "~> 0.13.0"}, - {:membrane_mp3_mad_plugin, "~> 0.14.0"}, - {:membrane_ffmpeg_swresample_plugin, "~> 0.16.1"}, - {:membrane_aac_fdk_plugin, "~> 0.14.0"}, + {:membrane_core, "~> 1.0"}, + {:membrane_file_plugin, "~> 0.16.0"}, + {:membrane_mp3_mad_plugin, "~> 0.18.0"}, + {:membrane_ffmpeg_swresample_plugin, "~> 0.19.0"}, + {:membrane_aac_fdk_plugin, "~> 0.18.0"}, {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin"} ]) ``` @@ -54,7 +54,7 @@ alias Membrane.{ audio_path = "./assets/sample.mp3" kino = Membrane.Kino.Player.new(audio: true) -structure = +spec = child(:file_source, %File.Source{location: audio_path}) |> child(:decoder_mp3, MP3.MAD.Decoder) |> child(:converter, %FFmpeg.SWResample.Converter{ @@ -73,10 +73,10 @@ structure = Run pipeline: ```elixir -alias Membrane.RemoteControlled, as: RC +alias Membrane.RCPipeline, as: RC -pipeline = RC.Pipeline.start!() -RC.Pipeline.exec_actions(pipeline, spec: structure, playback: :playing) +pipeline = RC.start!() +RC.exec_actions(pipeline, spec: spec) kino ``` diff --git a/livebooks/rtmp/README.md b/livebooks/rtmp/README.md new file mode 100644 index 00000000..4b567107 --- /dev/null +++ b/livebooks/rtmp/README.md @@ -0,0 +1,15 @@ +# Membrane RMTP demo + +Sender livebook shows how to download video and audio from web using the `Hackney` plugin, and stream it via `RTMP` to the other, receiver livebook. + +Receiver livebook shows how to receive `RTMP` stream mentioned above and play it in the livebook. + +To run the demo, [install Livebook](https://livebook.dev/#install) and open the `rtmp_sender.livemd` file there. + +## Copyright and License + +Copyright 2024, [Software Mansion](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) + +[![Software Mansion](https://docs.membrane.stream/static/logo/swm_logo_readme.png)](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) + +Licensed under the [Apache License, Version 2.0](LICENSE) diff --git a/livebooks/rtmp/rtmp_receiver.livemd b/livebooks/rtmp/rtmp_receiver.livemd index b8e50fe9..18a375aa 100644 --- a/livebooks/rtmp/rtmp_receiver.livemd +++ b/livebooks/rtmp/rtmp_receiver.livemd @@ -5,10 +5,11 @@ File.cd(__DIR__) Logger.configure(level: :error) Mix.install([ - {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin"}, - {:membrane_core, "~>0.11.2"}, - {:membrane_realtimer_plugin, "~>0.6.1"}, - {:membrane_rtmp_plugin, "~>0.11.0"} + # {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin", tag: "v0.3.0"}, + {:membrane_kino_plugin, path: "/Users/bartekch/Desktop/membrane_kino_plugin"}, + {:membrane_core, "~> 1.0"}, + {:membrane_realtimer_plugin, "~> 0.9.0"}, + {:membrane_rtmp_plugin, "~> 0.19.0"} ]) ``` @@ -45,7 +46,6 @@ defmodule RTMP.Receiver.Pipeline do get_child(:source) |> via_out(:audio) |> child(:audio_parser, %Membrane.AAC.Parser{ - in_encapsulation: :none, out_encapsulation: :ADTS }) |> via_in(:audio) @@ -54,8 +54,9 @@ defmodule RTMP.Receiver.Pipeline do playing_video = get_child(:source) |> via_out(:video) - |> child(:video_parser, %Membrane.H264.FFmpeg.Parser{ - framerate: {25, 1} + |> child(:video_parser, %Membrane.H264.Parser{ + generate_best_effort_timestamps: %{framerate: {25, 1}}, + output_stream_structure: :annexb }) |> via_in(:video) |> get_child(:player) @@ -63,7 +64,7 @@ defmodule RTMP.Receiver.Pipeline do player = child(:player, %Membrane.Kino.Player.Sink{kino: kino}) structure = [source, playing_audio, playing_video, player] - {[spec: structure, playback: :playing], %{}} + {[spec: structure], %{}} end # Once the source initializes, we grant it the control over the tcp socket @@ -133,7 +134,9 @@ defmodule RTMP.Receiver do ], socket_handler: fn socket -> # On new connection a pipeline is started - {:ok, _supervisor, pipeline} = RTMP.Receiver.Pipeline.start(socket: socket, kino: kino) + {:ok, _supervisor, pipeline} = + Membrane.Pipeline.start(RTMP.Receiver.Pipeline, socket: socket, kino: kino) + send(parent, {:pipeline_spawned, pipeline}) {:ok, pipeline} end @@ -171,6 +174,5 @@ port = 1942 kino = Membrane.Kino.Player.new(video: true, audio: true) Kino.render(kino) - RTMP.Receiver.run(port: port, kino: kino) ``` diff --git a/livebooks/rtmp/rtmp_sender.livemd b/livebooks/rtmp/rtmp_sender.livemd index 860738f4..35e19e83 100644 --- a/livebooks/rtmp/rtmp_sender.livemd +++ b/livebooks/rtmp/rtmp_sender.livemd @@ -5,10 +5,10 @@ File.cd(__DIR__) Logger.configure(level: :error) Mix.install([ - {:membrane_core, "~>0.11.2"}, - {:membrane_realtimer_plugin, "~>0.6.1"}, - {:membrane_hackney_plugin, "~>0.9.0"}, - {:membrane_rtmp_plugin, "~>0.11.0"} + {:membrane_core, "~> 1.0"}, + {:membrane_realtimer_plugin, "~> 0.9.0"}, + {:membrane_hackney_plugin, "~> 0.11.0"}, + {:membrane_rtmp_plugin, "~> 0.21.0"} ]) ``` @@ -40,14 +40,13 @@ defmodule RTMP.Sender.Pipeline do location: @video_url, hackney_opts: [follow_redirect: true] }) - |> child(:video_parser, %Membrane.H264.FFmpeg.Parser{ - framerate: {25, 1}, - alignment: :au, - attach_nalus?: true, - skip_until_keyframe?: true + |> child(:video_parser, %Membrane.H264.Parser{ + output_alignment: :au, + skip_until_keyframe: true, + generate_best_effort_timestamps: %{framerate: {25, 1}} }) |> child(:video_realtimer, Membrane.Realtimer) - |> child(:video_payloader, Membrane.MP4.Payloader.H264) + |> child(:video_payloader, %Membrane.H264.Parser{output_stream_structure: :avc1}) audio_source = child(:audio_source, %Membrane.Hackney.Source{ @@ -55,7 +54,6 @@ defmodule RTMP.Sender.Pipeline do hackney_opts: [follow_redirect: true] }) |> child(:audio_parser, %Membrane.AAC.Parser{ - in_encapsulation: :ADTS, out_encapsulation: :ADTS }) |> child(:audio_realtimer, Membrane.Realtimer) @@ -68,15 +66,15 @@ defmodule RTMP.Sender.Pipeline do structure = [ video_source - |> via_in(:video) + |> via_in(Pad.ref(:video, 0)) |> get_child(:rtmp_sink), audio_source - |> via_in(:audio) + |> via_in(Pad.ref(:audio, 0)) |> get_child(:rtmp_sink), rtmp_sink ] - {[spec: structure, playback: :playing], %{streams_to_end: 2}} + {[spec: structure], %{streams_to_end: 2}} end # The rest of the example module is only used for self-termination of the pipeline after processing finishes @@ -116,7 +114,9 @@ defmodule RTMP.Sender do end defp start_tcp_client(destination_url) do - {:ok, _supervisor, pipeline} = RTMP.Sender.Pipeline.start(destination: destination_url) + {:ok, _supervisor, pipeline} = + Membrane.Pipeline.start(RTMP.Sender.Pipeline, destination: destination_url) + {:ok, pipeline} end diff --git a/livebooks/soundwave/README.md b/livebooks/soundwave/README.md new file mode 100644 index 00000000..17d2f960 --- /dev/null +++ b/livebooks/soundwave/README.md @@ -0,0 +1,13 @@ +# Membrane Soundwave demo + +This livebook example shows how to perform real-time soundwave plotting with the use of the [Membrane Framework](https://github.com/membraneframework) and [Vega-Lite](https://vega.github.io/vega-lite/). + +To run the demo, [install Livebook](https://livebook.dev/#install) and open the `soundwave.livemd` file there. + +## Copyright and License + +Copyright 2024, [Software Mansion](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) + +[![Software Mansion](https://docs.membrane.stream/static/logo/swm_logo_readme.png)](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) + +Licensed under the [Apache License, Version 2.0](LICENSE) diff --git a/livebooks/soundwave/soundwave.livemd b/livebooks/soundwave/soundwave.livemd index 8e0f51ae..0ba65196 100644 --- a/livebooks/soundwave/soundwave.livemd +++ b/livebooks/soundwave/soundwave.livemd @@ -1,29 +1,27 @@ # Soundwave plotting example -## Introduction - -This livebook example shows how to perform real-time soundwave plotting with the use of the [Membrane Framework](https://github.com/membraneframework) and [Vega-Lite](https://vega.github.io/vega-lite/). - -By following that example you will learn how to read the audio from the microphone, how is audio represented, and how to create your custom Membrane element that plots the soundwave with the use of the elixir bindings to the Vega-Lite. - -## Installation - -You need to install the following `mix` dependencies: - ```elixir File.cd(__DIR__) Logger.configure(level: :error) Mix.install([ - {:membrane_core, "~> 0.12.7"}, - {:membrane_raw_audio_parser_plugin, "~> 0.2.0"}, - {:membrane_portaudio_plugin, "~>0.16.0"}, - {:vega_lite, "~> 0.1.7"}, - {:kino_vega_lite, "~> 0.1.8"} + {:membrane_core, "~> 1.0"}, + {:membrane_raw_audio_parser_plugin, "~> 0.4.0"}, + {:membrane_portaudio_plugin, "~> 0.18.0"}, + {:vega_lite, "~> 0.1.8"}, + {:kino_vega_lite, "~> 0.1.11"} ]) ``` -Furthermore, you need to have `FFmpeg` installed. For installation details take a look [here](https://www.ffmpeg.org/). +## Installation + +You need to have `FFmpeg` installed. For installation details take a look [here](https://www.ffmpeg.org/). + +## Introduction + +This livebook example shows how to perform real-time soundwave plotting with the use of the [Membrane Framework](https://github.com/membraneframework) and [Vega-Lite](https://vega.github.io/vega-lite/). + +By following that example you will learn how to read the audio from the microphone, how is audio represented, and how to create your custom Membrane element that plots the soundwave with the use of the elixir bindings to the Vega-Lite. ## Soundwave plotting sink @@ -172,7 +170,7 @@ defmodule Visualizer do x = (pts + (chunk_i * samples_per_point + sample_i) * sample_duration - state.initial_pts) - |> Membrane.Time.round_to_milliseconds() + |> Membrane.Time.as_milliseconds(:round) %{x: x, y: value} end) From 85d3f29dc48b72806d4533717944b87b680b6983 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Chali=C5=84ski?= Date: Thu, 25 Jan 2024 14:16:10 +0100 Subject: [PATCH 2/8] vc remove, not done yet --- livebooks/video_compositor/res/input.h264 | Bin 68035 -> 0 bytes .../video_compositor/video_compositor.livemd | 183 ------------------ 2 files changed, 183 deletions(-) delete mode 100644 livebooks/video_compositor/res/input.h264 delete mode 100644 livebooks/video_compositor/video_compositor.livemd diff --git a/livebooks/video_compositor/res/input.h264 b/livebooks/video_compositor/res/input.h264 deleted file mode 100644 index aef03ffba3d250aba6e5f89918027578bd27c4c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68035 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±V5sh5z4x|9|h>$Mp1G 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 0.11.2"}, - {:membrane_file_plugin, "~> 0.13.0"}, - {:membrane_raw_video_format, "~> 0.2"}, - {:membrane_h264_ffmpeg_plugin, "~> 0.25.2"}, - {:membrane_video_compositor_plugin, "~> 0.2.1"}, - {:membrane_hackney_plugin, "~> 0.9.0"}, - {:membrane_realtimer_plugin, "~> 0.6.0"}, - {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin"} -]) -``` - -## Installation - -To run this demo one needs to install native dependencies: - -1. [H264 FFmpeg](https://github.com/membraneframework/membrane_h264_ffmpeg_plugin/#installation) -2. [Video Compositor](https://github.com/membraneframework/membrane_video_compositor_plugin#installation) - -## Pipeline definition - -Defines a video compositor with a `1440x960` output scene, waiting for up to five videos. Each of them is downloaded in real-time from the network using the `Hackney` module, parsed and decoded from the `H264` format, and composed in real-time. After that, they will be displayed using the `Kino.Video` player. - -```elixir -defmodule DynamicVideoComposition do - use Membrane.Pipeline - - alias Membrane.H264.FFmpeg.{Encoder, Parser, Decoder} - alias Membrane.{Pad, RawVideo, Time} - - alias Membrane.{ - Hackney, - Kino, - VideoCompositor - } - - alias Membrane.VideoCompositor.RustStructs.BaseVideoPlacement, as: VideoPlacement - alias Membrane.VideoCompositor.VideoTransformations - - alias Membrane.VideoCompositor.VideoTransformations.TextureTransformations.{ - CornersRounding, - Cropping - } - - @media_url "http://raw.githubusercontent.com/membraneframework/static/gh-pages/samples/big-buck-bunny/bun33s_720x480.h264" - - @framerate {25, 1} - - @output_video_format %RawVideo{ - width: 1440, - height: 960, - framerate: @framerate, - pixel_format: :I420, - aligned: true - } - - @placement %VideoPlacement{ - size: {720, 480}, - position: nil, - z_value: nil - } - - @positions [{0, 0}, {720, 0}, {0, 480}, {720, 480}, {360, 240}] - @z_values [0.0, 0.0, 0.0, 0.0, 1.0] - - @corners_rounding %CornersRounding{border_radius: 75} - @cropping %Cropping{ - crop_top_left_corner: {0.1, 0.1}, - crop_size: {0.8, 0.8} - } - - @transformations [ - %VideoTransformations{texture_transformations: [@corners_rounding]}, - %VideoTransformations{texture_transformations: [@corners_rounding]}, - %VideoTransformations{texture_transformations: [@corners_rounding]}, - %VideoTransformations{texture_transformations: [@corners_rounding]}, - %VideoTransformations{texture_transformations: [@cropping, @corners_rounding]} - ] - - @impl true - def handle_init(_ctx, options) do - structure = - child(:compositor, %VideoCompositor{stream_format: @output_video_format}) - # Kino player requires H264 frames without b-frames - |> child(:encoder, %Encoder{profile: :baseline}) - |> via_in(:video) - |> child(:player, %Kino.Player.Sink{kino: options[:kino]}) - - start_time = Time.vm_time() - state = %{next_video_id: 0, start_time: start_time} - - {[spec: structure, playback: :playing], state} - end - - @impl true - def handle_info(:add_video, _ctx, state) when state.next_video_id >= 5 do - {[], state} - end - - @impl true - def handle_info(:add_video, _ctx, state) do - %{start_time: start_time, next_video_id: next_video_id} = state - - position = Enum.at(@positions, next_video_id) - z_value = Enum.at(@z_values, next_video_id) - placement = %VideoPlacement{@placement | position: position, z_value: z_value} - - transformations = Enum.at(@transformations, next_video_id) - - offset = Time.vm_time() - start_time - - video_id = next_video_id - - video_source = - child({:media_source, video_id}, %Hackney.Source{ - location: @media_url, - hackney_opts: [follow_redirect: true], - max_retries: 3 - }) - |> child({:parser, video_id}, %Parser{framerate: @framerate}) - |> child({:decoder, video_id}, Decoder) - # Hackney source may fetch all frames at once from one source and flood compositor. - # This could cause undefined behaviour if the first source sent the entire stream - # and EOS signal before connecting the other sources. - # To ensure real-time processing, all streams are synchronized by reducing - # processing speed (based on the framerate). - |> child({:realtimer, video_id}, Membrane.Realtimer) - |> via_in(Pad.ref(:input, video_id), - options: [ - initial_placement: placement, - initial_video_transformations: transformations, - timestamp_offset: offset - ] - ) - |> get_child(:compositor) - - {[spec: video_source], %{state | next_video_id: next_video_id + 1}} - end -end - -:ok -``` - -## Playing video - -Activate pipeline and wait for videos: - -```elixir -kino = Membrane.Kino.Player.new(video: true) - -{:ok, _supervisor_pid, pipeline} = - Membrane.Pipeline.start(DynamicVideoComposition, kino: kino) - -kino -``` - -One can add up to five video inputs: - -```elixir -send(pipeline, :add_video) -``` - -```elixir -send(pipeline, :add_video) -``` - -```elixir -send(pipeline, :add_video) -``` - -```elixir -send(pipeline, :add_video) -``` - -```elixir -send(pipeline, :add_video) -``` From 0307a1773e58c6b88f63b90770f645aa9c9783ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Chali=C5=84ski?= Date: Thu, 25 Jan 2024 14:40:24 +0100 Subject: [PATCH 3/8] readme update --- livebooks/README.md | 12 ++++++++++++ livebooks/assets/path_set.png | Bin 0 -> 139607 bytes livebooks/audio_mixer/README.md | 2 +- livebooks/messages_source_and_sink/README.md | 2 +- livebooks/playing_mp3_file/README.md | 2 +- livebooks/rtmp/README.md | 4 ++-- livebooks/soundwave/README.md | 2 +- 7 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 livebooks/README.md create mode 100644 livebooks/assets/path_set.png diff --git a/livebooks/README.md b/livebooks/README.md new file mode 100644 index 00000000..c25d8bfc --- /dev/null +++ b/livebooks/README.md @@ -0,0 +1,12 @@ +# Livebook examples + +This folder contains interactive livebook examples. To launch them you need to install livebook first. + +## Installation + +1. Install Livebook + + It is recommended to install Livebook via command line ([see official installation guide](https://github.com/livebook-dev/livebook#escript)). + + If livebook was installed directly from the official page, one should add `$PATH` variable to the Livebook environment: + ![Setting path](./assets/path_set.png "Title") \ No newline at end of file diff --git a/livebooks/assets/path_set.png b/livebooks/assets/path_set.png new file mode 100644 index 0000000000000000000000000000000000000000..a06d753e585f8e3ecb33ff5f78e1917376bdcf2f GIT binary patch literal 139607 zcmeEuhhJ0K);7`=0XqXqQA7j;lq#VMQU#<)Z%PwFQ96Wxh>D8zCMEPDUFn1p5tUA; z2{l1_2oQRJK==-G$C>NAci#K`0WZH_l9RB{KD(^F_FB(+_Ih()Tb1zy+X)H^3PyD` zWjzWCx_$}@$}jY^z%S47?>&HzV;*{{cPL7GF5!SLzIMjy_F7sL{J=Fm1@$pD3Yw!L zz)SAf#XqlAj$Nmq`u%rG3W`ui3hF<~Xak=|e^J2e=$?OlQe_b-k;r6ch>+>dJ}+zQ>j(=u*#qk0^1Gp6eL} z<$rpM=8d|to_sIt^uKQS{jPs{TNPH|nm{nB{!#fq6+5cw%Kc{w{?u}w$?yL2WBJz8bB0q;}$NqoF!al<(HKJR~>HprbVES`h zQ5?a{uxs4^AcFtaiyaoOs1@uh?tlB~pQPgSbpCs^1Q!_4{}bG! zMfZP#3uuD>)3`@l*db-XKIhagn(?Ypuqua>U=6xJus}aQS{Ab19!f>mUOEAZ0ed*I zP||gdaEb>3a#dZsXQ{Kb@mGBOdK z6d_;W!km4WAv`mg*;3uGGwipW#1tc->TUJ_`;LS6qJ&HJ?5B`lH-M-Hn%|<+8q$SJ zlzuA6D|a%QVKth0_gJS(N@j)4)lk8k_F5}jpETn6bH%{pYOkQ8qw~M9(sP|Mq0HQ2 z)y?)7PY=DHW!y)7JO^Fm5tgH2cL=xL8Vv&W6q#cpzt{o6GlJHKoj3hz;!%GNz>(HD zt(GoSlC6}`mBhZ$uFO?HvxqS?>(5i4ZVK=0>k}c)Tg`s?7PcZIF{J|x?M_9`wO{v? z;MMcM{?UYtkXHTKk5dX<+LWqYo695R_G?na`nA}A^)>~dYP}q_%fgppIZ{Ee zLf)u8t-y7MX6N1OUOJtMzip1rl<(APo__pm@T1JBnK)#waxz`Ils|V#)>}q<{$;27 zMM;#5#Ua;9SHIRCi!Ax8KtC0LS|_1@YuU4BYUL+$@{O)`g+`?&fkT)>bAGm&}ke)klC5~*z4gGl&85rJ1BpZabkP> zt5{5`a+%Qd*ZV;AOeI{dk5t%gIhIE7@8J?(_BYN$We3gCe~V!@&I+$8}<%xS{3ucdRpg z)yx{WGdx#465ho~Xt7E8tTbGb4m39`G2!KIeOFWMa^82zlYlZ2v1^-*<}PU8CE?Ak*z;I#abbk6!YaRXfK>>8lhi ze46H+S^d#c{&YivRo44?s?7QQEcmVZ zZ&Ejwu0Ss@X27ARtuI^E4)YvqySSO;zShq}+$Bpq^5;A!sAtRp{Sa@LwJcI|S+yHt z-MY=bKKt6u4vV0>RMdozfV-oC<+)vK!UKJ^>5iMatM83)#=tG|-b3mWaKx%*!4%2p zeZLK346Z*fzQO_7j)6k#rW0Js{ku&~Dt(itp;C6&Dz}!sT%*U_N}#j-d|9ckifPcj zNlJ?(!J*q{dv+a*~3q6kn1&;XHA+bERoEy%Ib?g&q=CsGKiIS zE90(npN(@iDQ`O@6XiYRTkVJ|jpcy@_PZ^{WoC$5J&7H$yoq9to;3zy%c%MHs0Ify z*lj;OCJwnP5aLqor?dHOt{WrTcYay_r(UNhlpoKT?}=9`6^;_lc&@!`nP>3Sq|sIB zv->6Gzsi1A&j@UU>+S44uU3-Qin>FELnd*JvwOK!Jl9L35&MwPPOUGlfLbk;wk2nM zTPKH7$%fU|fZvOEHikSo-;u}&ib~_R({RLWa;QgNd0DSL(QBRRz-56}DbuUVD!Dfz zl6#2?r){?}*KR}8Pih#_=T9bWXcy@19*S}!j@QbgKZV5cS#-2&;MKvD)_(5uG39m| zn$s#i?eHL!=Aoj}^Aof~qRmDG@Vsd7^s@Z{k=dUp65R2{|F~KIvs~H>;yV+i-BcpB z!;&I4s7q$71oj{T)$)x@G@nKJ3nE`uP}odoteKNR*)@dFe)oyh`V&J91%(a6Rk6ql z^z=8a*0)pN-fA59d)cB=(`|cMTFmolwoJEPbr|*ozw&86e%5p8 zpt)61@J&=NYHM+vKVBe#*km^r$TZ-1CrC!WCsk@{@P~q6!=cvW#-s{cCQwuKM z*1PA)i5xs)0N5ZER>0$J4Q~4W>Gm`OfX2CjX1T#-TI0>%N1Ut4ZrzRB>S}{Y*NhwI z#yBLHOTbRbUAjHI*swl%&>cWt#vxL=l0@o|PxpKX1ko?hm=U!P5`LB~j-*+Z^w?4H zBGRRPWbF90D2q&UlMOVT1yjTmE)d1NeQvDF$Z9308mbUUCGzj{MpO&%ni} z1f^Rm_}D}D-qxdk#kv()Xj%r%(g@U>#6o7OIFQn`eX>aXuvb14eCYwht)kMC+b#B+ z2PtKZwlu3$7xoDmJs&b)+!)-}+vEHB40GqqlD?K#TZpB3dk(Jr;8uk?4Md2JD)PJ^ z+)S%y4-03NZ0EJ2TCqXwYKSc?o>L}DHQO%SU}6h^uGRHuhuU<3HxxYj(yhtM-;9%# zf^#10$0e0mx8-w6(e^dE=}PkzVCx$#x8%+VllDf&ke)exCW_`29$yVUc~7#Ezw!1r zS){ywYuZ{Ripu9i5F}r(7`*ZR%DUQIpH&eW^@}+J*aEz#41+fV{5(<|f7=)~{otoW z*C;G$&;&AlxYM>)?%3%KW|M?TtPKdO)FSyFWPJz_ov|4xl1E7ENLF&d3`O+xG&WQN z-Iwm)C!&%?o(?*!n;iP&^loiCT;f9}cwhO~wy!XC;&D{{oe_~w@W1!a=w6MawMQw1>g>k-c*v%0>=^nok4_gL)>m|S7Yecb+l;7EkBV77D#D>Rfbwh^J z_>rEz_rw$~r3_{S%BG)gyafxYU}Y@g#)W7N6=5EC-(MYWVWx$=eV|R{=H*6m>)4=h z*!Il~OKLi7qTt!*EY$n-JYY>-zEzu*jEqsPVDe-}yD#OZ2W?4Ngk&F0lR;A|Vg7Tw ze!ktocdhCHuM44QxKEWm-$!CTZ=>`CCF z9?#V^5@ApJQhva)^R1N z=B~VUlvWTjHhgX#Nh508@-|&CRG4-<;X5ON9)FF6&!BhFKsWc1R9z9KM8t7s{^10N zE5{!O&ljc7jvdZ06%+I&rZ~1i#Dv4()HZwl%)%!dx%_ya_i_{UQM4Lw&k4=I1R>i8 zU=#(hWFX)AhDfO>!tDDsoM}^}d_Ri7$I@*&31Tx2@*K1BpX#g5^7?j7N|v)xrBcY8 zgR8MO*XCJvQ>drEFTwM&f>~uT?Y9P1I;#d>b?#d?|+6jtgp`Yvp3?wnb zz5P3^wr2hYDBY(2x^nSm=!r7|_z6i%&&c0|Ey~}s9@Fod?+2q?;##E}ZOM=2?4@?WiUAEweEG_4g*H{u95t4KD1*u0*P6Gj8y8B1`{ja1vCawSCv z0~XG+AtQZYsN}=9`yxTXOQJA0aoqJ$Bdf)^flS3n9DJKCXRHbmxk3xu1huF}M00kN zCgYAT;5_?%qvFLiEO>mi{aJ@X2eL^u7Ghd-H}IL~igl=;yl)|8+~l||Nzg&f?&%VFe7 zNZc-FVMLNCevs*$Rrro!9&*3g`#9{%zROu(VUsUJ0v08htbwe-R>U*gtCnrGzD3yL z%H{1ck8i4`c%K(GR7Mq>adzS4?CxZ0vE3%)60K&#%9;{H9guK>uJk3D@wsEF8@yxk zH#RQZ5D6v@tgJsB=?%&j2OD_E48ij=vBRaAFjxO=-{!TX#mZGIlH51nn5SuWTZ^SE z9f2hJPRx5~a)YYg4I{dxo%M6n5&&{0D?de4BQ@< z+IZQbvu>Y$%zdwGNIqFMeOXsjM3HJn7A`AD#G>zu-Nwf`JwWJ!S#UTD_VZPvf#NH()8P0 zEJ0YQu^zFP=fY3$m~)G_By69DIZa@%uQ6V%Q9~zMRy}|$?L76H4fmO0KdU^XeGXFq zxGWLDoB5+P9w*rrug^QA2aVLT_33Vegq}?FnC~$g(1fro?021A&-%n5!IR+ik$85@ zeZamup+`s7Raz@#!3PtVvTqGi-O(K7Ymvsi4l-(`M}Jzp#g1;={oHmcB4%M-5!>PkfZ1f#q42u3EGCE z>M8`s{T#>YfsQyK$1$H}&xK*F&5AG5I0p+-KD@2%VfqN@mLr|e^5EHp#w80D(qDK3 zaHVjSVJDsWrm{gLofomxD4%nz+$EIt$1O#b@DzR<-kvBH%VohKSMU|#MsgFD3tq$r z5}ATErK?qev~mVE+}hqBAF$oraWsS$br1TL4t`QH>+8e)Nb_Xe)FCxGGGyTsPX?8k z3veS+oJ|5m?PHLyUD&_LE>$!=MDIfnIil!By<+M%F0{WWsL0U`YyDEnIDYdFv-)fL zGi{q9#ka#`1LFJU>%;Ycv_$*U0Ve7}#$mqU=YCP08c~Oy85mD%WctVO-@MO%nEXgC z$G@lDd&?p?HR^?M6>E-rpU2|E5;6O|IV5!EO@xJuqGvvTGG?HSZ;VZr?YeJ`{j$6v zYkus(5YE7G!@q%Ct#fMPfnf-?QU15d(W=I|?v&PQ&Vil`;a8*27t&_Md*{WnOoHTt z<`0-tdZ`MkxW?iWpVO!JuhLx*ZB9L`@frVn(0kfLNH>l(}e}FC}l$AB~ zwxdYqV-wX%lAH+3MpCE#@|YTNzH~bWU9jP$u>-3ozIregBuQXAxcnyq`G#*&R=kc_ z<#ldhu?nw@*4@5GrhJG+rg5`#fagsHPYmKd7_r}7hPl?~CQR?O#^wbQEW|L|4&$})cb&(MJ=~8YzDjwO= zV_JlQ*v7JpADCn%h>5#_VUKTa?ySYeeDn0)y4M;3`-sxn?%EhfS&x{AKByu-o@uD_ zfLy4k4!gkTJQ~%*i_k#?D|&s{8SRR=pACn;by|+nEBC!M^3kzErxC;Y#&H?CyfccP z&(TkXMBYS4Fpx1GMDgwA8(HjEucb`p>h~9{t46}C4{o#jbVz$GzSF6eOBv45GOKPw z92dhI>s6^s%Pzb-aVuB&RiL1_E4+_)0fwgjP_@xC@40$wXx6Xc?f^vAr^KZ(-)Apy z=BT@bs=AFi%}x^A7}IQL3c9*X8q&?SfKgAR|6o;Cx)5`P-2eXR*}Fk%zi0{y%BN@P zcTeM7%&_yWBf=XjB3R<2XzhwpA0i1asnFJxg_;GxOrH}|G`{ZS&59^g@B`H^EvO)NL^_)$nN zw8gwoLf^d#LI>IiEw;%M#`0;s(@)C=fCl+|cCWlV0mt`+FFp{ckBq-=IPBd;0ws0B z6H9YkhP*xTo3#sj%b&DH*D|`Pv}UVVq}y9cQr`5?PHMa?MG~5LU99e@ql>|qoZyE2 zebFq!p_8ORT-==I<1>GV`HQ?~w4la(H*dH;OavpnOM-5YOq#$mi*<1CT79SC&pxbI z8_QlI1fTMA2>Z#Cm*jn?;RGR8BWdG3Mq zo^O6ocML~!9?-2VzC!k^>ocDs6|9y&Qol+Y&b6WQ%SQ_sIRS3V`!UyU`c{hFj~IE|Z&)y8ph^C*$uTD* zAEQ`lBPId0;(-^T;PsPpP8S2oTQ$$LaASuae#OfND%t)600Vshm_p4G zQxgyDiD}Sv+e9O~W%-L1CMbM}U`pEtjI(AI7ZK=p%V}WJ#!Y5l{;%Dk(86Aj3y-$yM==VD}y(1vA3^Y*(Rkl>YRw@tEfb&7B$UC@5S zG6(tv+n z&a(1L$%+dyoJ>Fn`J{+1%SyA>M&PeYSaf6b77X3;O38e3pJj6)4nbD9%NBjs?nvV#_)8MwV(v_V4bNwIuzjJMuz#I1aLr@q5o z!323Lj-*?G9|C0kvl<*J5udd9Y;N8CQ58@Shb{ISsem{T>3xx;L0#=CuwfPDzRRf3 zn#>GlJB*`HvOM)CuI?>E_Uu??2lOfsF1pB!Ww5|e~c8X94t zY1=YiCH_!KJEw>1z%`yh%UbfP2M&1m+n>~1wJ$Lj?#w=($0{AbWCHs={SMAUxGbo= zfmx{zzgcQg0pEpw_qmpP%id-Dg$6k=f4eD-HZHXvTZFo8Cq1_-P=x5DiQT4?iud~H za$+u7{lPT|$~huY$h0=fCh%iYlBgBTg|Antz1<)1sd9TtB*&7AD!6=g2$;c#ro=FN z`{(KNf*)b{%Iw30v1(U7JFQUG{Gb-?d2>z7HwKon+0Bd|ttAPXF+U}@!1#3C32ksH z-H@^Vb*TS5>qzMq)_i+uJE#*h_U&`CRY#bG^lqa#V>yd}>DN6+*Su6T-yGU)^hRuc z&#C;roj`%9U+4bWGc&H7`7o5%tmgrMKl0YP)v9MpcdJG3uRxKEjPD@;o*7y7*u92T zYP?&tv$5pZo;P#V6M|04ZtVGDw6MY#sS;D0^e>-gq2V*rM1R`UK-v2cFaFKrSf=&k zS$Ge3Q~lD3knY?()~Xeai{11-g7XHb__8uy?bJ%`K3#2XyRD3(h6uGtu>VxFVKoT4e+^@XuQ{&9-*%!NleBx{+MVQfTzp&=}EX~@AbWw zavyeB?lZ&_G+HA#BUvXAXG~EWL;>_0ZLj)>yNlqtuBL38>6R-J`s1ywTX!-e`k3$< zV23d?F#6*JCOlqXblc0p?j-wN5r>YeSSI!xoDHN`RTm(SsQaLv0Po)|EKG>=^74 z2iRZ6C-YFkbI%tk{sD1|y8zZyydft%NQ4kC-k3*PeVoYiRyMBlO}KZFldKEzLsV%?OO1iH$_^cD2o?k-omA(c>9D2t~buxe2`n zJ$A>99S`@#K}R$3t;NCeWqi+MdV+D%#1LS?4UgBd+5_v>4 zo)1T=U)#SMCL4Bjq~I>>S;&&HEUs(GqawJKKZi@ zD~|WE(4cSK^jnpVP}QrEPmOIRyz~-oB-yoPM0R5z8aXg|ux}6xgHje>&)nBiAIUpB zAiy(BHVJxYY+f4gH}4B)kRDrv_7`f}>3;sOwb*?1)>7ei+KP9^&P^39;~(T1+yXPYpr1kotxDqr)i8_E zJ>{+k*ZQh@SbA99w!WjR{lc9d6hAASud~yzSWbd=y))f|41tg>59>=@{NQ-7h^@6- z(Lw2}g+w|yxq-a7uw4nn<;Ro12d*Y!JHB_1nSXOGgJaw&LIDJJfI3AMOtSU$@sx%q7(+D#wcin>wcAc$-W4d{H;bV zQR94v+EB-NTYQ8?`6lu60AY;ZmhLC0Y&t0|DhmV%SCTv@?Ac8|;6uv0GP3<}z?X2(|=h(mtJ@3VNKP0dS>J6_|%zVxa zQG^i;)TB%CF&EQtZGAT7o+F%TCZ8~tXC?y=4cy(bY4wV}Yw5KGXy<9p zj}^3ReA$!Q8=PLYZ7;{NOTY0=u)Fvdqu}Uj@~wg~b^n&(;Y3gyyBc!pql%SKq$9Ui zWrcQF39k1?wmk?LdxY77vCr_$;1JAB(UdOZ&-aGtQz3JkOkpbBAaq1NjAb#@&%z+a_~QEY1}h?= zCde`Smp69`EA}BsmLv8?QrW%`-U&{-y0>|eEBqp6w!RN)O+3JJ*hvIM=)?tifHa%0R*>t+kNd^@ zi;Nl-U5hOA`Hcz}JgiJr@*#xbAGiES2a%qMKliCW{K8WqN7Lpt*c~31eiQE0Z3=(jvX^1PlL6tSap zz>7*3A|3k0i@e_Y5-ME}h7{l&1LB_$?4l#}#=``Hh*dG}@l!3h#NI(Sn|j4}#vJ2l zyi4|t!9CJiOU@j7_c*wCzRfkgqao~g8(qr!d?&kepR!=h!vRACdZ2HHtS3=Xn(1IV z)hpGqv2zP{y7^u>A2N&`HV2c#TiDg6&-oH^l4|#$$LzYCY%7bsGx$h*TfZJBxR8vf%nCKeN zfEE8HVM`kXtww2;Gd$*fOG=UaWakvB4I}%lR}x%y$=)j;ASu7Ilu9iH*xobD&Q!|z z1z-uAN%Cr~ykld9g8Jn-Vqo`3fPDmTz-;aHHss+Zstgcb3lV`lAQbPRlq(Q4@1LGN zNK&7;W~aBtnEKRJN^G8byEL|qxY3>Z;F?8=X(ZgzlM2Ebzzq_m5$v>*!!m!}+CS=mLL z(7C(FsTCI(ZQ!>K@s)$b^dObR@hQ?vSiOSC@a=$^4*_zXalaE51|M@F1gpv*AA-y! zYo{fAG(~OI2$+cFS45WlPqOlZ9r@~DD=Hnd@X0vOtC|^`C`@u@}z!py+x=pG&QGNby= zoLk(*>6g<3ukzgSd{yxF%}ou+cBFhKPg&nSs1Y(T=0w`*P9lZrq&cV*;+NR1Hit*J zKmz7&C`1ozjN{~1u_RxOQl{2KI)287_GY41Vua3~r%b;Mo;)(ievw4{0hQTPzF-p0YzChJig4j`ygmcY^D*jOyJ;I24o6N zYHm%7|8&;jbwm?tv&Y&>)N&Z-B8w%rHA?uiRa6g01vh?!fIJ9zoI86``O<0cbY?ouSyRT@iZT^bfEZuG$A^`F)$D?&Cagh|H5ku=(FW9?kPqa_0yp zc`^(a;7!kD&})3i8{lp`D6MKFd(ABGc7)K&nL%9Tt0aDl{1TnE9JFOcPYrhs5h34* zP}fH=`wBoVfxa%hUgSS7up_G@ee1FH5XnDKM{R~Gv-g^XPm@);L-GpkJE z@5%0EO@^$nrg2B*SNb&YYg;)56R0|^lnb8KB=8m|L##qv}Lr)Sfw~E#i zg0#!Kl+DH@6xp7bS)LnKU&G8U_sC4N;V|Rj`m`{^L@T$W64r+2?RjrW6Dk~{%W4Tj z9Pf2p9{}jLNwYqrukHHl&Cf2QA}{pw5yxbQ$NhEkv=8Koer)%UHYz#3r4I>mZ9g}M zTACxiIz~euMpE3sc^9 zlgX4mo7o=!nxvk#?b+Am?{i-P5AE$zuDbVK>;09n@XVf*_wx*nI}T22i^8kmIvLt! z8Q>RmqIat{Ccav&)OpPFXt9yH?t``tfoN7Iw#cyaTUg@k{!5Rn0h3mr{)mg`I};g= zm#f*Od3x9H`>$IG7-<$IbO$W@Rm^K{bh| zz7e^Ts|9$eH7XuD2Z4FTJK%Vegvo|D3BvN6{fR)vO6lAQ2(cZAOZtG$6*XX>@-f16 zTg2S}6tQdAt?A4%z4*jCb2LSD&q>{$fbUg)8Fl9b&D+*M^5p#@L96`qLx%%e(Oih5 zSrcua>d9T@rUTc82MF)I-W+U*=VNToiGBzjc58=ngH_{i%td-_t{f^HTw?PDU&Tyc zXlXI01%Rl7J^ep&UwO`$B@j=`4<7gQ>aOIR>#0$xplkijKUa+2Z0ptAm5TyqdA9F@ zH_gCS%Zz2b{t*pi$dp?XAue~RmIvCPTc!?U#yuK{A4*jJSE4uASSS^ zYKrh6Fp_60m|2cIxG!YV_jJ=1;7rZr&WDg->WN)_a5XZ`rtH{83DMRXfsqS-3X3t9 z7Q5}`^rTQ1?>~PKnaafDkLef!&s+-?|1N&hq#hM-SGO5>_DWRKR9U?H_L5Y(LKE+o zO4eJE&X!g7FxH8nuKd`LK$Ogm0)rzo$U`8iG!>x6b^n;Fbm9LPytEwf6OdYG8dYjLR=@6Cw!CPYS zU=A#|>o|}X&lD-=eDK(Tzv_wK&N&IzJvk0hxz*7{?fK}R8{xlYZnu9tPJCX%``gV`5uM~1#TCpDu*CSH<#b9 zlBeCtS$3s)#$}-M=EPE+(RCRgPrNpyG@&q5i$VdH>UrdX7f zLu7onKv4WFgF_ow*pi))_)$(_(N%VhpZ~j$nHTSKav2w4Jfc23?v~4bO zDHhojV^ObUlTeC8usu|PS)FLhKlW85SCi((S#*eI!md@R1_7UMwUqt(z#<>}thw3* zEz{|^x(_!f0Air3k=K?t_tJ>CMp&E++g|tq!GHkq7)5jKu_z%DCYbb>rQ?~e={TI- z@xwf~e!C~=G1tY4Bafy;9J(G_R;hSazfn+6d_sRt8BN3qxHU{02W9w6z4`^)P%c+! zqwBA6!SYlDrp^bdFpD8n=k6UC+P~xE*Z+Pp8XE+=MrhoP8NXkUT7NGiyq_lwFjdlG za}oCv9BmMBxan6N%=%5y`J6#*(9v~-VQ0TQ*_{wN{VL)+@zO-Gi|^tmiS>s z8c|})Cf%D6M6p^6+D)j^wTS&Lws?Y5QDEKbT7HXpefi<%%M}unD#Rvoa4FaeoN-&} z)#l1RQ)G2@TB!X3i{j|+!|)^ttTax{zcgp|6%>VDy!4||=s=iZXpzdRx6Z=Nah;hmJZL(xFui0(nbxcNLs^g!I?)n@at6PB=!4xq;MWH1j z&$T=A*|{nQLLE%kNhgpNz}br5S=C&W)E9(FN}%h$3}n?G3_h2 zsqMEe;m3VX2D~hP5HLQ*EPrri!hf?;CF6Uw9MmvUZo~v&QSnsgUo-YQXxwdgsBdqN z<)yOBHry&a7TLNr`F`!}K^oj?c{C#=76fn9ui?m29IzgU&Tj4MqBwXin6@w*Q?8}i zH9uvjey>M^6})}BjaA;lwb7SutfEu&~*A*=a;m2 zFIzadgkvn{(A6?vHazN(pzJ($*Y794>tB7#q`Bko6Ed!1ZxsRKrZ_g6WGljrp^PQJa+x2i;v8* z>z`y&_LIU{Y@Crh?V@(+yX76CRgiT*ll6_OeQ7Jnn_J6iNHcj5V-TCDY@HADjs8=?ZK~=|sFc`|A|^_ej$A1F&Gx%QFY#5G)euY6+7MnsZJNaC zlc-f3?f~BsYhLFwR6T|k-)a)eSb=FLS0QDkFZyyE4i}4KvmBL(AI`$2pk1rMsO#rp z-blyFrfL%l^*{XnCl3_za5fcUo-EmD zwBjvq?UUZ7 z%6&^s3%=mKCt0*h#vuK>q@{*_5Jc}FwH74&u<78#FS}tPexpPb+f*51Kg+fwuFtD& zyO7wl89BQ?67>URI$IsWB&}WD9FWi@hR-~#_Dqslzb}CI5b|0aWU8|21_jK#-o(qR zd4Bb~>DX2KMg-iW)BodB=dM0?cJ=&U+}^tD3MA)3w2N zY}rHaH#=JitE>0e4(bFSvkxrmq>CGg(G%h}rQWfPVlSln@aOx1-ZpM!BRhb|DfI13 zd%S*N>UN1uMlGS$s%_p}c4V&>f+e^F$$G{?HgaHP&Lp8(|;b1Q?Rd>}m0ND{S+0Szb?sj{t=sld0YxN?G`7JOXFas^p{o?6zd;*qt#!sb%$wTg}l;ucsn_;Jf&~vvxnG z>+V86leC>O6fGI`5C`PX&on?9kfql;%K2l&lUELJ`ZUQLj1N7lDLMm- zX`0uBL7(sN@DD|69){2LdyQClm0)Y{uDEW$#(Ne7kp$OwpZQFXte~=n{=|y_cskyT zTOl;or%B^6q_MHQY9G#<7bOh~xY(sDHx9C~VO0R)Id^Sbg*@_)2g7Um zVB6DbMiHQz!KjBJB)HuLVY7#*kJ9{X?>tKyOX#d1Md|N2pU=f8Kd}7hCUetkxR!?S@y&Q1nU!Z}jiMqNo`lO+xJc=_gcwBOCqv zst|Kxr>7H^Q*)LWhP0~edUs!r2b5)`uO&JQ&`tTu9lFRP(kW2tM?4vXPgV}$;&=`F z@}44trgtWtH#M%^gV`0SqUTfACr@#;?L`1x{KC?rs)>z6&=<BXMS< ze4ij5*!kr5(c!A3rq2mQZA`lU4FUQ2HTdfVuBf!(DRbeG<1?KpW{X1wJP-I2V$Xbg zt5&&-?SVmT0obwJcf{SK!qui6EXsJ~^2XEy%WH=G!jbbIhUt_sAfMKp5kE;Y|23@z zbMQHiG3P&u|Ig9>a|i(L$l6gt53(S||61x_=X##y1L;R}7=PNgzY5H+hitD{0xkZE zpaIgu{2J)`4_{Y-Y#J*C%|A&V|JJyFJ@&7bDSQQTbVTmd02y%pmr{R}PXjt8D?a@H zkxS#X?@_Ll!wVGup>cn2|7U$5vr9hh*#AcZP6N4RWT&u{6#u=g^u9o%65^os-=c#5 zsXbg%N2yZw%_u1TK^g!1O*%lw(%78;X$AaSCzKli8GIeYK=Jo6|7-OByqe?#lIG}# zxcv791iuEdpKz?X9i#ZULjD(NkO4Xdary|H^!~SY{l~HUKcS^Q_1ZVs;I#13vfVjf zD-4bs?73RL9@o~D-RC};h0VJ3FTv&NqY<$RQp&Q5W%!TUAj+I3V%a#&Jmo^Z_i44r zvln?UNA1%rCQQP@*&C)qrmZ~nzf2;K$UuZ9tKUxe z(HEPebO4`)R?RJ=jn+w42M@m$JWlevYMPglv6tYn?J;r`!TDmrrSIg=@RB4tL;l5D z`|BCO;L}`Dfr9?2VG1G_YA-jkLM^`saZOap~VAg;krj>?m!R4AiJ?P! zNd1Te6!jbM^s`Dy;QuJsz}m|c0F;JjI-}1kg&2k$@u!6N_^hiQg<$4qoDzy#CiaU& zR(p#rn%3;u26G5Zo#`thaDt&6$S0BJ%qhtDx0u+U%IohTS)-+cOg9HP#s!4~z@CYUAv zN(u2dEfG}<09xoBzd%(0evIvEVFOyDI zDYN*{;QyKvvP%8iXc z#*XrxoVI(SdeFS%#RLic&%by2>lt83jr+}ia#sGXzv#69)tb3$UMoO-M?*nrA;?he z@@}^nK|MYp{apg9ecWC#cVGFgx!wc~`YuJV8X&?Pd^*WLkI4QH9oIw2SEiX*mAG-) z9asjz0+fAoJT4uN>v;6P=nz(rGK9md83~VrRu5HmZqYk(4*b#C_Of1iK}22^IZAr- zFoi{fIjUEGqbK||OQ${o6BIeDs?&1%HS8H}>0#mfJEfZAtQebyc9;1sH7`*O=&K~k zz}I%&D zk5HlaTZ567CPvWawNCfTAY5K9u|fDKdx^}EDc0&SCG<~PWptl^ocbr7aSUi4_vGaPW$G#Y42y{C zyBSY>Y5HZyg67;SyTqG484HoO%GhjwuL}c|ZM-}DZ>e4WeMhFgq6sJsTUj^Lu+QQQ zIXb5W1q5>A-tm>y6<#fyd~Tu)ZA#jPe%EFHB;>yOCd0k%jsWKC=j0OuKTX6vd6F321$WTFQhk!0J5D#8;IPU8IsGFhz0QX|B^%P z)bXPZ|KJ-?p`J3yuw{#WIjjHGqa;(`qVjlQ*=-(?gV$|0&Kh9dg*;cnr4=cHzXI}| zcDu)%<{u`Q{=w05*|V(`roLlt?Ot%bPRhpi-KZr5G@4AdKtHhZx%QRwWDU@=wWGdT z{#Ni$S>x!x=@DDLhK!J)X5;-$EI0txb^zq8N1_nh(V{U7fLZ^p`8&wQq?xj=HmW$p&s z&#TLBM&=Rd71Mkgy`0>~mByYde@W|0FjGuHMx!F=y)Ug!-VJh*LR)9(_9|;C=>JTQ|J=%eD=U zRB``~%<%why??T>3ArUU`mS zOd03fK)n(wqKp7OeH`N=Bxx?kWGQN9xcV`M3xocjX(azcXQUP2I&&b3d4?QPN2IIC z@!>-e0~2``nm02XKG5#tmT}iB9?$yvLN>%G8aRBoliUBh#QVR0C|(C579IAw)j&24 zo&e$iZXLkeo=SVHjLGJ6$zV`7HT*o;irRmle*gc4&O2*30MXf%9s#n!y}x8=OF8hB z62=RGVuT?#ZEY_9G1N^={3~Ylv=02Qcp-#ovTw-WBvPi0bZ>w9H1&u4Kl;-lU*PUY zPGZMGoFpdANCNAH18lzZET7vC>ohO z{{{;GLPiujd{^p++9?r7bxok(tc9FIOnmbc{7*hNHE~JZNB|1ZKK~*4H#+st5)zBx zl1oa?jiF2ILgtWF7%dAMtyI2T&ZH|zl4`u2Z3w0I^>0vz&oleqJN|!2k{a(E{vF%d z$r$)w?L%rOZ_d&RNK?)pIo^7!?T9bQLM%^@8LqExz}xDM()=!f%tr*N(euH zWE{*s7o?j#hwXo_5=+8s)?oZkO9+CJxMvhP-hdu+7hWvzpT2}T|2~?+13)o0s@H;Xk_VWv z;!Li4uI4J2z)6e(h4FZ|{O2ESGXH4-FA$93k_5ilfxE7v0P;?Ho_keM&6k#1_TsPE zm7m(#IwzaX{ss^Kg9QG^W60m60cFl~T&FxW8*&82*D8E?IADz@rVlnU5r))xhq)&G z2P6asQ^8jdX!2A3MTi}-u8+R?{pe3X$vMw_yPzQzJB-t)^ELm!2hv|i(O1JwLDB90 z5rEz=#1!p&0AV$1Un-Dc{6~?zPM}st> z8<_8pCl>$1i*R}T-t;C^B<4c=)3~fmvr1nBgNT)xS^YxGZ;e6duTuwi zQ)gbjBg$+YGNcKXbS3x|Xtc9$HmlC5ctzQ~-l~f6KIu<`|C5ueuW!>|zW{(6Vs}6H zq0?8+7)VZu&F@w2;IIfx(yY-|1V48w3}aKViL}^bWWo03@!#2ooCvuoR*r}m7<)VE zcdE-{lTw$eP{OtaAT9IFBjcG`Sd&)KOKb0&A)QJ`QfvX zUJm;mr1|)F?_HAbPi$KxS9r4%Gb5Q%$URr5q53|t3`Ag{ipAS&Mp-wU3F`%Ky zUG{qTciGyUT-fEMi2C7GO0nK5BfVJ(TZ8@9rwmbBU4rJ5BMY%r@9JlVnA4t+N-un2 zgUdsF;cAR0mAiAh3+-fC>J~(`!v^BnX}!OcnwW>^Wllh9cy&ZYjP6@cU-PhTm}b!n zqz9sNz%>j+pUB*Nh#-scIz$wuCJh7)e6&0{mq7RQraV3VjUHX$gjl#|zzx+D5+$dH54W-pyyu8o2K0G*I zZxsnx6TBKouK)WUKrRG4-OZ-uSmCg~a_?qUyjnO(xGR9>&#R?g(!rBzzCO0gbI_d= z<+}ds6Meb;XSW29z5v0BceVVFTt3A5`^Szyar{M(Znf{ml9>Y>!E?omSD!jdv>D+Y zQ->P(q#$}#pew&mg&(IE#kqUX%F){IsjmaW3ImLz&+4U~x%U>&Uc2WOJ?)UB&jZ&G z#nZvr`+UD`|JS2ik7PK{)d|-~(OZL&IY%t~j@<(+9`J#2hgZ%?BvZfPC*lX?;UP)= zYylhmPd$?}mv0o7eK*G%ox^_y+ba?!E*BA*>Fp}451V5GKhQkawMqR|H7t~|P4A@B z8eXeO$5kuF1{BwQR;GK5R}FX^Ms3uUshn~4c#%u{tg63K4GNS{Rs-8kyyJuC{Zx|P z7`CnXeqXm*xgnKRNN%6&&>G)8Ih?OCG$NGhy$;CaVK9F0^IaiSnZ9ZEI-`L?{I7hV z-&EEq!VXqePP0IrRvppG+3#tznlyz*e=t;f9MYlT{uFRK&(Hh}+dQ9G-iDkPRtdSn z57i%Oc7spfQ@%@>-X}Ub2i@7*xmK~drP`0y>ouW=B;x^y zWkl`MI=|RqbtU`0BYAc%pp!N7UzX#Kg2`Fz`#IqF_}LivWNmN55-CKUedQ-Mzhgah zjfeRM*TqlQpmX(NXbOJ)iaftKJojA-r_mjly$vZM4I>xy zw}lUL(1)mCsl(JqIw6gB(3i7wK6XuCrpG#IAT3)Fe@RCdvr0g!fvQv)0PSil{fJ^H z@Dig&w?h?pv}xej(-~#I-ehE{Oi75*IwVF7ck<}OPgzA;9FwE9?8X}ICC2-6t->d} z-3tH3c6iT-eNTagm5xZOL;Fgv8DB5eG+lKmxT6`AR!e(IYv)amQ|xY};wnyc-J8ej zeHelHM4rT<`IvPXhkYr4J1w$B@SpJ2|Adb$qzM15Klg_ciulyj<)r7EGY(S+JN-t! zha>}z@$iG6Hm#M9|D1e%Pvd+tL$mzw@ru&)4%8s`&*;pr-N7}+71<7-=eOQ~b+)kn zWdH$;Atr%6Q#YHM2Q{AT>95;(jkr8Ij{fjBp{P(wyfKRiBv=vjiSrtP-I5^)QNTr7 z9gKedw*@U^kdUNB;%W)IhtV!MmMuqm4o~4@mmrzW|LU{*Yi9}GNv6#RxgD7!E~+&D zw`5r0Ndw#z#=Zb*JQ~EH%w;#7?D$lSLt55~Pl9gA{yOSKlf&b#N3Q10V$vHcd~l=i zJwx(wn0Cs@5i_-sNrDX0N1(o4skTRrX`n*g}18cSIN^aIBHTMF$Q_I@|`PUhhw}A8UlY zsisOPU>NHdrxf#l*W$E6y@~yret#;*B`wZoU^hujhf+faH7Xux-%SNR+u*pi{FvaP zja=F?cq^uTIZQTJwkxy5zTX4<3R@~vFT$I)a^C9qIRrIk!MwR%d#%l{b?qN_#Ke=$ z8GG6l^&aU;llzeQK&zQXeb1Adwn|*==`KR0Gl$+@Tps`m$;2OlK z=!%$J!;a!kgAQc;M^#m1d?Za|l;W3CWXMG_A5`%MrDavQxX}Bklkr|696BCyM6I7c zSammg?M+q&)WcHU?%3VV*Pf=cMIh@Mv#|r^gd;ZZAT9FZ-B^1g2DP_dCs`FQr+2qX z_0^(yhyah1iQGs-zb}3~7EtcB!ybtn52&-EA!!%>NBq9AA9Tv3?=gw;Z%BErLLL~v zeLm5t&wRPsPYpjeS-SV8Qv@Y?f*hEPLuiw^-7Jkj>STAHvth>&W1HRYLq^A{q`&FF z@xr&U`=9FGxr}9sp{=*MgmDusb2-d)h?iZbT$qT(DB5*rVscsl zMItiB9lC(7f3rv)YKJRg8s~k#2m(|(Pp$c|k8<9SSSM=2x1OK8X`dIpIcAik~xm zK0GX;gSJ4_#pv-`REht*Mj>N4jT87f-HLcRx0EgtJS&(R_%6K%JwG<15pU^j6?*&C ztGwh`u{}b6lpx6RNK<40B}~Q(6!f(M1RS|@wA}GQo2XOyv3I`5i3u!`&|!y^b|CKt zJniblp0i?X-*<_(m2Phg8VPOS-;lar{ZjLNj>8AD$#;2YTn%qfi}VD+hh7#Zmut*6 zSLz)0-#3clrsDaZY_z$o*H_gF-kztKq&b0J^W;+&pd_PgGPj>s_@)wJo#jj%etXSpO zdV5{qFuUrMerPq$Ub@4yn!Ymf5j_3X74oFp9t-Mm1Ai7Dp$e?vPpMTO_*wf$um{uEIWzF2A743nm|D1||$MdNb75>8rnsnboU}a!$^~Zsc zoC13x*Vmie6Q1Rsv}Cp#_zrJzA+$q^+re34S<$V z;q?k>e)W&m6BM;AG3(12#ah2I4^9O2Jk;bN}zp7`% zo4AvY3b+(?R=j_}fqPRr!59~Pc8%Jcx>rc6>al`PnHM2zU7VJ4v|y0~S+ENNXe&va zmR$QVSy)-WBQ4;kj#d^Y;N_+KvgGF}<3GiOvKBEvici$?QFmFccu*<;DICs#_nZNnjRhPRY_PtKC( zDlbs3Kb%wTIh~slVp(=)?NIPLmk{b%4sD}Nq>P>+qk}6*I6_5N8gO)<(LbSP!>{T`&0)oDW zBLQnZB4(qN;N9vhK+w^liuTFXZ5!OYF_Zu=%?m-Eotx*Ea5UBf;kYBM^3r=Ewv-X=oP7 zGAqdYmMzIuMNO`{3y|hkP5}z0vpZ-=H52Qn!s$2#>#pKwE~DXK@`<9PnHjIYLM1JMMeRyfEH(X?n&ZC~7WHa~{ur=<;~ z$0s7p1VA7~V*BSSkmESkXqb{?qMsyvAiYtz{2qCajpSw<_4cB|MZeUD&bP?NZo7Nw zSo*C->cX%eHmX+)*wA{S(vWcCt`&6pGLq{%@XeArmJa9hD08Jxt#0{hxqJHu%eBMT zAyyAq5|{w;U(6Q6n#piW?|V0@z0kJI%NK)E6KMR@D305r}zFc_GxncLqo26G;LwIZ1>bDgxLiI4)jG)6GYpCD)x$mnHuBGJE z2k~E<68vcxuh^xU&&ogcusuWopUgAOD4@z8r(eMY9u~Vwb1s#s1j{lY1+xG|@n2A~~UIE7kXZ+TSrE z|D_~6)*Gehev|AWctz0cdE6Q+bl<5{rmXN2|nxVr@KdD%eBoH zIE?z;3*)p4`ho;z}+#$~dHSIF!ZACdi?@oq+#HsHgbix|Ca@ym}fy?34 z20cp9WSqYG{`F_8g4N^xhkijCUF7OfZO&VF(*lvjgs`hEr%5h0`M1TZ=Tg@lpqWdf zee^F?5g&gza@C!{=Y4f!Q!#M$P$zH2)d`qZNA8BG&i1$G>Q_7&hYhE;X~=?J$wH^E zdm7Bgb?WM9+-Ak`hw)u=s52J_@;9h~wnsl?#pH36_I$&QOEhBS~ zGD22<=9otb?s(wZVO;sqP89p%im8M#cAYb4)mz=(zD7fs2&wH+(6U{+)U|3OTqMIi z>8if0)1S*9d65f|>m$d6E+v6f0K&ek&LCOQ4-FA&({X%}~odMJ>gg==5__?Uj93I)UQmaW~pHej~xk}67%JdAPHe`V)Qi`*iXQE#dC1<8(tMnSeI2Xd|8peK;veA8f{GSd@aAuB~re}>ezcyucDF} z;oBh=`ye9V#MhMaEh5b6cgylHIcU5Ot5N0JAvQZcwlMq9{mcG+hgJ{Sn{`v34i+j` zVmAG`suB*n<$ileOWg5p>z}S1Gz@i#5ZqWAHZvDs(qi%Wpyl<%obbYO4Av)bvHJWgb+wYxoybuFzayt85 zKziOcUnNxyjePKaPJMox0H5_o7FjXlIgi4TSD(-(qLEWJK-m4uEm7|6pOqdR8 z$V1)q0nSMeo$hN&H^csX`0=6cpZd#5v9{c}3x2^}GhI5!yggjTmDa1nJ(@FZ5x#~C z`-nK@xM!=%rOQ>^RrCkvEEDC@^9GFRRL0LRj6f@ni}VV$tr%ekk{hKe|5&pam@qW!^cj*d0pI2dF@nKh=fR~dhVge*y-}m`!j*t z@SyRN#ei1SSeVsfHi`|ZmtCP_d-u^MKzIDkZINdH0|{q+{NiCITqSRPb$3yXugOm& z4a&7Kq9>xssQX)Y9MQd(g2SXYHgb{7A6F93{a_f8N9FeLmYxsm^kG~yZDB3clWhfT z?noi693A^)w`uIZ--$zRR^#?FlHZ)QcIa-v3$NcI-N_pwsVlQ`y^%NKmT+%hJitWK z|4bV|aYK|T2~sTeO07L8Rx{xEd}Sgs-fQ(V&8uskvnQ4t;)hm5E;~ibOD#j_zHascYf0 zmR2jOjx?>jl%rh|gw`Y2W!;TiBOsw5O@7K+OyI-dOZtnJ>3+zfvF+1?B8S~WJ8$Xo z%STt4P6`sua-Y^q5t+rf0DSOgV4J?Wh4W+JltP3E#h3h$>LjT4pPVF5mMTE6T(Sz+ zP|sz;;@Wf&6Ixbet!{U!>8|{)RA6$}?OE1Q>NH3axCxf;eLypvgzo*%0fUd~z(slXZ6ajk z5LpG2Ve|rG*AaaIt*DK1F3&vg6{gG)%Z)yzO;|10`~aYvj{)ungi40uzu@(Gpss8J z|2TBwEp-2C+OMni={V??J@!VCcv7>6p--C?`GYk+1pF^Y<;MD!bOWGT~e%((+s#GCjNtGf>hdU7*w zPPol~EQ_Zd*S2}6t*R61S3gn zjbNTYbU;5vrvp3DxW&OTx}sLr)s-^vyMGkP_GAON-LhtcJip)~U!wKrduoAAu@E;T zCbR6mAl>7J(gQYoa-*U?I(~q5gO$YA} z!>U9$@$Ef3ekqMg$2iS}+rf3dQV(7>IQh_L94bIX;uB3x&Ks?qdrT&^86*(4Z-+rP ztbfe)4F|EYRv84m*|^)PD08VEUuhL440y~Wy6MZR&G2cdOPFP_k0yTGo7`NWa34Uv zer`c@dyf&qklv{ECG4@!a8*A&v@Wym;&|D<#I<3RDTD~AnZrc94Dy?v*YlD9qcUp(-#Jssiq3^Ej85>FInMARwgZV^rh zp~oQ4cn*2>5{Djwx4Mm+0PK=8*xE|&2yAyasPndmxSM(v0qvXb8Xf3^^O5~eHkX~m zvsG%l#pYkSO9s515g*z7raH5dqKMuvN!?ZJwYmAT8r`VPL={VZ2hHtM=~A|D)~4TD z&*;-(^*oL zP`dm*M4N&G7|*Px@M*Qpo;X3yw;MHhR6t7@Qqg>*Dq&f6ceP(RYWnb^m3KA-2Zv}g zAfRlBlU1o})ds%h29E1aW~s+fM7l{b_&8Moro9ypXEhgISUpwXfq)b$i5d@VQF70& z+m%Xqgs~GDJ4?=kkPFJ6h&dS>~tK&SIMNJUHcOsew}_xKGmxn$^8 z;e14MC7Y6aO2ojR*s5S<+2{e6lk*F0v^d|d*G<}1e9=Ja>$eq|*6q#C1NP`_& z7X3S6?)BEPBps2y5;}wRNI)Ojl8Jy>j!flx_AqvnO5cvgmjNB)!!UF@!}J3t%&ODC zgM9X4KK+1ds(VWF#%g>-k$q-Hu_kkmVOgCD}9%gnc-vpX)SZPC9o zo|^XrL#a`kfIaD#H6N~y^^3kNmWrhRfFG6g4ieA3#4+5xwSnzn^X-TAD#u3J8Ty<3 zVs*?oc!6nY>4D0>)VdjH^!w{}lb}L<@waMAvf;d@i-|08)LwF(P$DKob|Cr*lA%>W zWd$`GlBEk5U_uAr%GA%B&10Kqp{!+NGByEoO@&)p-#E&~!F9QdfNZX&R zYihyUi&jEDHm^DhWRuXq__NjJOA*YyNq9O)KRT_e`#S^W#Lt4->IsayPo4^Rv2!+k zYsZ5Z&+tD{?jO*s)l zihwXlnlJPoQp9&Zmq55XVUmeYabFn7vZLZfqqW%$mGGuizXXI&>FPjEQ&}%^gwWTv zI=LMsy~YC{&!D*Fwgk7(Hix*8obf4H9SUS#Lo0b=CiVW$q>8(kL$~#*4s4sWH}mk% zPD5#GdGjx^W$p)y-qPd|lS3jqTQ4(venJhZ$qcwJ()zmI{JaZC4) zL3m!TH#(SWuG;&Z5?pQizxGCsm<{~WpRNSXVNRVqAEIHsNUb$<+&-< zvcBAsSnevLwO-Y!HPn$~2d$6|pvJBaZ3a5NM@za}6`DU>RGC&y*r)QctI#46_Tb4e zO%gB^_EC?Pa9=$a)L;hThvJx&L;(9kg((cU!SeiZ?;Zfm$N-=(TnDfNdYkX zKS%eLUGI&P`p}S@wW8)9^?IC5K$iJD9-v4xLNMWYh|S#Bz=i7D!jr)KaLgphS|<^^ zrX%FjdsTe44aqiHHOD}w-?{5iACj4^HX=|cvfoD{PqdS2469EIOy1R&%Uw*c-5I~| z4z_;lw*9lVO^4Uhtx$lDyBKRiR_^$6H~q_Xb;k%`W&)wjd4_!`$*4H(gfR_tvqdfssXZ=q}0OMlZ+ zD%+7M)qUHWjXyXgzoH|8J1&wm^xFUCqO_5}d~+O<`3w)f@#K+TWix>BDTh&$tTmR? zGoJW)=j|+&3Mi5t(GmZN&SyF{gKod}(}1z7G?q>-3GUi(m7U2wnL{OJ$=k2X%6tOy zMw2W_Lc$#%r1W`wqJlH-)6$*>sH#;qr|#b+2uJiZ?$(1$Io%g5F&1*-sje@yDw$*= zlvobH80>Cd=2nR(%cQl%Hk@vMe<-yOaJ2Crwl>hh|#};{@gBpTxOuVeGI^2NsH{ z<+)90toOZZoF3}H-d2vOfcBMz)H=w)t6En-7nX8cSqhC!4<)UBu(;j(Qu=vg!(wpX zZ2exJmm*X;WYK_D7{VUZAh*Zoiru`vL77%W+U0|R){ptZw`BSawffLPhO?LVG0h_$ zp&wncdzEI(_Y>>wzYF9D6_ldTb!iv~s!@H>&uk9t`y4Gya{6}B)OcRHp2OE{r&p=Q;oRdq*IRa|6jfBgPB%##Bw zkcIT@66|Vveq^hcQh56tXjE!y z*BJTY0fvU1pUX4$US2d=4%iD;Q5|rosu!zlYbxuWGep9ZO1;wUMm26`Lh|QX>uhaj z@<{hr4d`xi7m;U&*=qOk4X-L`0hvdyoKB`aZ(Ywf-|Akcb2TMgmUc3zIedX(TyH@| zkW61VwMqVxi$hTIVl>|Cqg3FwEI58#y8-EsdkvS1`9~&x#2+in8Ked1`_kSJ`}xa} z>cxPJF(8zqn@=co62Q@p;Fw1-9fyO|q2Nlx-r1)oRI`MN6>WGf_V~YIE3(GG@VwbP z^m9Vw4x&DyUre6OJBO`tW2`#x1X3Ms;v88@I^0D9Aa2P}M`UHX(56CniK(_S)bRqe zS)%pNql+!}2OwBQ4FBX#ztbUdG5G(n?s}72%54PVD_z?iNO?F&90P#_JO;K``kQQr&b5l5GD}IDN#d19^5qs z$~1~JYQ;ETJiYL-T|*TBM1<8G5O%^%6@;dJXlSw(^)s z^SPdF3P;+b!0h@EqSK zh9&upfj}M5+{$JuiQCX-%a5yV6WH$!!xK!ADR-v2vemq(t>^o}Svq8PW3J~e8xN7i z)6*PaNw}?{XuzMg5yu@?-NElT`EmVhCV%4G_xv)OE-mM}Q|9L{aaa)DHi%c+J?N|& zd13>YORsus1)g5sL)mqJFUGd%pm6@1GAMdf=JkebuIxf5Ehwq$NY(ct|hAK3> z+=aqyyjLBTeX@U=b89(q5>~+b7pAN<#!i()?HYcoWa8$^ih(vgWaR6WVp9zZ5reZQH8Z(k#0j&?%>sv*LWS* z7Mv*}#t4dyT*TERBY5WXHsikMq4K^@MR-f$xU;$InU(oPGZKrDqW9I)rnR_!zR7aH zF|RcNvGMr-o&```VY>Abk>=hg3)>q2?;RSJvHdiM{Zwr-rQslP-26L;^si&nY}_~1 z`UKf519!VfCwp&RDhC@-$Su3=(g5OESL%HV$DPJit0pVNJg|pb#b3Hfy!5ExuC(Jj zFGlTt;*g><#0R?;!aO{EUa=U~zzO;H-#Vw?u!1_=+o2u=OnjF2t?g1v9=q1_`RezL zuj1phQrgE4vT86f?xw`%+wgx?76>AG<(Ix@iJew|A@XD)I(DCb_TyTt;>}?Nl{uIe zZR1HpFppzeemr+ObL8{tPvu;#x85wzm)@zesZ^@e4wMshw#$@?zP~jh%X)wLxp)k^ zuJtH6TI`&-m#)|?1w?49QO=FKhTv3lrMrLv_`}o+0f8hRX{=4$WD@sPea>^F zRve^+m#AN;C>@?ewW`#{uN+ZV7yu!`TU(f0Gm19f&3_)`dM-G$>aEk!n{OP|yqPiP z`cTrtAF<*Qv}iuFC61GmFBT_Zz45sk2Akf*?wL7zU@rW@c{9~UbHhS~dK7>#z@fA8 zFub`A_bmX0Co3(>&P2asP#ZZi}1wE(7pM82@w{kVY&FW(oqLgm=D(D_xg;8mZ!W&@{ zth3?68i`N+hTq2n*1t=C5QsU#Jq#6kN}j)#=M7s^395xRpD)(aRVfe3|{CS{SL+dz;|ZIAIRgAPf(1n5j{Q)~^rz&QZ1Nan>kDWDHnohNdT% zRI^|PorGAaz1Mx zPb9oTc806RnVW7}>(&=J#Src>6X{5%M_|{j`3Qq-R(~)mv2MV zp^f3e`t<6)S*-cIrSXiTroUi5S9cQPx7UO9g{l5vU$&@GdV(`C_0PSi`6(JB2^q=* z(orgSuXK=0PB*f(TP5GkZyKk7HY?{>?91r@{}(5zE}c=m(VDqi@bUa9tA8m98v$fI zwDI9x$3NCvO8z(9MvxdstQp~A^2B($I$!kMwa4CQFHYga2Zq1)9sW)tJ>Ff&WT#A} z;w+N?9nPsrVj#ffA$P$2X^k|6eFv0PWl_--da5szLk7Aoh~N1jEKaf=ol6WATNv65 z*z(FK(tZ(p+I?aNB*|h&-R0CBywJkli<-)l$`p~pySw+~;l@$^DT4+k(RYIHH2;dw zC|X@M6o=94iFj6p3GgP`5Bs$fkgx*V`Wuy)e$w>W&j&vWe2=K*j5}IrN4V5 zWij}c%5FJAC0A6wgZkSC$SnqYEo2y1&>5a)xn0(@r(n@7YKv*XKC0B*Rbh=v(uR)|soG%5u)&e*KM65d09@im)0$F`4Ppcm> zC)y~z!9$dq_0Vi6yV+^~nrN>hG0y8_Fy+eR%DL{y2vBgOslb%^<=9s=({DRXI8Y4J zI*?))5?A@zIFRqPT`X&dCx1?P;MlNt_~Lg79S#k>fDWThFz4wqaA+b1LZ13w(qzn( zDk~k)+j8Uq@M|4v(t`wHdLMW4_@y`|&Jm2}yO|<~;wAiyo{CdNm-VI}~*3$nH`?TW8Z>R1VAf%3a|uFSfab$l$R zbTYRbn{piS4VFivde1+250(6iAMCR>&zPXmLhcf%J+4!3+VoY%cD?4u>%} zKhnc2+1$Ty{5CH~%)!-_q5|Y1HBfJsn=da;UITKt;Cke9;s}u{JUH4N-(rkO`2T#wD-vx77P)k~GP>)nB&;q22JIYL4; zVPNi#7&NzTwxL%N@D8{ILyf&h_Z5AYa0p^_9&;_>Qi~)+eSb=yT|1dcW8<@tz7uD8 z#Hk~1Z;@hjtUCbhP_ygi)Da>J_V-;gO2|niAArLyoN%C6!e1eQFKEhqX2~r71J@jt z_YS(E;Hw5wZ$^xf74lf8?tm#&v%h&O##o7fpn`hi2)P%!DQcSAHP7|Cb=XZ;X>v!Y z@WZ82y=ch&K`dJ`rSvgy9Ig2Rl&p*orE36K>?F$TRgR6Hct?Q4$rbt`0rgSP9D^`O1}mSP^T>^@=8+ zM=Ez^-gOMBs0)S~n1c}nR_nOMtXWl*fjT*vFSgQYQ9x$~M3kF&*uv1Puv`TCyLlTY zpbcBFXkT{P0lCP>wd#55;wgoH>xe{xPwRK!wYU-n%4h%yh<76}+qc!P|8oSz1ks&2 zj(}911-v^`?Qc>@zZZT7E$iL$r<*HiW~%P-AE4ptEk}LN@l~of6I~?k34bM85?Kkf zTkYOSmGimK|Ija|FzegB!^t#)BYSQF~MI=ikFASYW0OOB%kDO;V9TcEa_ax#D3P zKQ>J}i*cO#Uv{KWl@2??ZK%zf3ItJ)Q!zQNQFdFiwgWAVsY7ynlu&!G66h7IZJyWU zWc2|1+VKI_wzq9i^n`dSleg>Tuxei}y-BA>V2{7}tm?1hpiHXPX><0+qH7xMWz#4B6(x0MS+u&gsYyd&qqzJfwA;mq|&4ceFR! zlE0)}XO)t1M?@N&biy4qtboj!0@rUjNf12)5U;IF9Y_%&nQ=cJ@0v0)VrFBm85A6mdV>`)9r@+ zuVqPjEJ`90BpfXJempP6Ww`PZq6vd3D-;a-xsHwMec7+Yaf(e@4AuH*8Q@I{9M7}R z>^geaB6)}NPym>x?`y7bVDi)tVN-3b=Dl@yPylYai|*R5dW%9*5Yh~I>F``42vo?i zMdpQK70VS?Tc$coP%>QDQEJS(f}DH9_a$jS*qSP-)0+vT2w?Ljq&=D0)=~ro!ff&x zfC1O2yg2zWw)X9VulpP@mb6aFPhg}clQ&Ll0c^=f)d_b%<JcUf=edz>m-fp6$3 zmU!LM@KMt1wel;h@>@srTlhzUU6Lz5iP0!`Ccm$2AE{&PXKdN{SarM0A5ktQ@#h_= z2c0RwH&iYMxY=hru<83>N&UX5=fb@f4A_!owXiPu9vqOd5y-S;*&RrPbMvpR-bL?q zLz*-VT zTH+_2)4hr8v`4a5EqHJ`m#BbGf>lP>K1T-DDW^Iauy-dEusVo0xq{dTSQxf>zeh~+ zxe>{Yh|37v@)w=Qeq=QSe(!XAbNBSn-Z;@PBd%c?=5oDoX-0|rp_VsHOKs`-6M0!% zAWBmEbJ-wweh_%Vrjd1{NpHpT*lP9{AEqz*@81=?uplo5&KokNbcJXWj^~TO%82$4 zZeHQONkmeP7VOL|k-`ebgVjz5fgxLI zEpnY45ee?RVXt}-49~hynnYwhd3RG~1-}`|3~M005@6|ln(6y_IY<(rXPg~RDW0bg zcd@LoB=a!0%hI`{Cis1eqP6z%^tt7a@nrW8K6Za7TcnW7z&P9g+dRC}{yIGzx!WOVfHm-`k1e!4 zNzqRbRI6uNvW(=(N|MuLLE}AB<$>l$gdS}y8q~*zw#C{OQAe1gHf_4C*GAVWHcIdj zp6{`cq@?XL;=C=X1G`g+YWG;6ORTr>T1@85cSVZL8}~e04&&d=zWH(eXcl^2rCj{A@5uGH zfb1R_(jnofiaUPY4{6??0ckb-<0W7s_P>K5CemZVdr9u_?hd?_W?pv^5GpEr4Uz;7 z>lo7eLUh^q*L;(}!?|0i-IJKa%_`MY1#@i@(wwB-JlTYA8DXD5L@HrsGj0A;6AuXfYGdvT76U2nzx(9RmgqMe;J zWELNbM~T1TRSMxFbl$&ob+6lu%#0XIh}?IeJA{_Y#O0TmcR$}iT5Si_)NxI9*2Eq) z6PNRv2&#s95OMJCcx`+Ui`N48HS~3F+ok_am^Ih0T)%R`b))jk;*P(a00a>JD;gNj z5LLj!~URK(RUjEi+bTBi)kgr`Ed3My)Qvba2@7QPN0!g}GTg#C*6S0DBUC zxQ5q{QNuFFEqW?jXnP5*actXtG2`buCs1?lc;kz}-YWGtkx7<|DMwcmj+52yby_~S z6W8I+3A_E`7b-pUA$?b?7udou+;O)!0YTRvh<3g}k9qO7Zs`#p35{#=yyiJ^%vKb} zN$}Q7brgP=GTSxUD_Z#;k=42ugbA8=JU5fL`hS)+STDYL(|6JZ#5oAiI~cAKxeA^|I3|c5YY0c;Qu3&z!1E1lan8ke>afPD zbbT@se5#*QN0#Q(ZDrYXNxRIEPIS04pwdtiU^u~Kxb>(*<1O3#Jo))SN>Sf9D}Xe2 zjPT@EeX+8JYb4%F#j35Kw$8*=r#pfr%Vm*YOAC>WW9uV6u$ID@R6Z`(dzkh|lzW$8 zwtc^)N@xickbi}zwXr^!k}dtf?d2`M?MkTdrEtM~*R;e^VbrT9Xp+sB^J-cE`wf-Y zvYazk=6>PE{a{1SgIRG3dhOB0ZO374v!%8uE?{QM0MIAWd7I>9^|5q3ZJYF*S)+LG zaki7K&7)Hf4e{%?_#9C_`Pl!**jI+d6)o8YLXhC@uECw)4#9&noC1xb2X2&Ti$ccdM<$8m?U^LO#$XS#z64{mVUhjZzibO`l>UuBuCu=0z!Q zh_F#pBqZD#~p68jTlnXmlJf9Ouzx<_yV8PB%Iv7ylN`-oOfV<9k1U-o-i(hw&by zWIqk!po2@^e;`FaSgdqX6)8bzSVrUI*1J4$3)-Qk?e@jP;kad1-dQVAk9e5Ml{+*r zz%;H<J8j=sQSqug>%JV{#litj(!(`S zK{g&A8vAV#1~s`8s^_)tzaJk@`}swQX{T>@^uect{WDZ`#&=Qo&_NBo~M(E0tq2)ufMYuO0SIs)|%b3uJt_lE~Q(KRObiThtjZ)o42~69Z*VJ0VwYS zlFx$gp^mi^h3lt?=@O=@$YGA_JtO_?e7jdA)4f(L@jZQlu%C}=_A5A4%9R`wP6PNe z>hGE>kaHB3O_B_|9)Am;#*8_#&%!0{cWGCm2TUJnP2cc+7o8$He)%0^KuQ5cY~Ac^~!06^T~3G-%=NpoVQ>Y34H)_G9|sPTumN z2IL&@Uo|AXLr{Lq8l9g{{E-+KxQ<7Ux)%>!X&-QdizoMw52UEQ} zXmTT%+@9mIiw@LxnI@1$Vg2XqKnOcag+&=SYa$+(RjW%?!F0Z^dc)rcx~5tD&HgO8 z)Ng60thc(JRTV@C9_f_pv|DTNC|aZyLpeV4z0hHDRJg2pYo65_MRxhYL3LMh_APJV5v zDm+XaD|#<9ka6mqX+@dq(Qy0eMqpDXpfaoi3gRT)D)~Nng@t&To4e7>7R{qd9p$KY zLDw7TiWjo|ZLKW!onrL0ozOiq1U-e4X*|z2UfVnvZYw#;{Ozsy_<+;$MU5N(fz&KS zP4wb(S)4_W{5?Krl6uJN>YtZd-#5u*k~SsEKPq(KO=H16LW?T5U%DIUtMb9;(`i+UyW^G;if39~Y2iHqLcVUQ!Ix{nNo6SF-EVcTtD=(vWYF~wa*wTK0>8)Yu zV-KP^=<-!)fRhcMcxu+D@tJ@ju=O{~WSg)PvgFb`ENjOe&B(dOi-EW{IQrr`2R3IO%~soELJp4iy)Sk{5Bd!V9K z8vo@};tv$|7OG!2;b~O?ZK7K%pdfR5=&`q+8T`i#?${%D!_KR=77zG%6;9Ic4>#-N z4$TG=g@ZamTD?Iuyet!3&yC5(t!%65E2nn~mpi|VA3$ML*~*kahbY^*7tvAr0!)N- z+u6~1IVV+yE)SHlcD%WE$@!a?&fKt!yR)juro(Q>idHG%+wD>>X?UH4oQ?BO)n^jb z`H*?p%w{HgjNJ^Nypng#;b3IhZJ?|)`M&V#d!WEh!iColVKeR3qhYlDcJ$zL^dNXU zCyIF28+kIfAR2j>o7;k9+#fq}MAL>0m-o3eVGllWLPHrbh^H^Y2F4qnblh+aTclE7 z>@?Ck_>F$eYl);~iRR6Ql0QpD*?t3Z{%t_kIiz+&0s2lM`V`V>bxh{WZ2L?02GK*| z9APp9H5)+SU1HVt^rzp%uF#>+XWX3}`R4`#*qz1FTZj#i=b@tdU$CK= zUMuPi2a3n^{z4=_y;{)~JKSr2NC4!D2}!RdcB%Ki?}q0EocL{bZXVfK*dM;{X6YFF z&c`?D#kQ`E6GofVe)uSE(N8-_26t|5BkKj+QovwTpCpXUS%Y6rv0H$?K6o7OK6f2%CcfOfxA0MU_I?O4*xabcE{as zoGdsaJ?!_`_L%HaM~;dSnBnmNL>LX{kCSoOpg-NLiRo-Rmsdldha0ZV1_SexWe?Eur%YS6aZfAMOP= zdu={rIaT<1^b^xx+=7p7no;oJVu1?7Kxy5iHsWSX#wN(==S!ueBR@Ky`EKYz zSirtRCnp&1u3%t?dExfx2)rj8u0vD8u1OeFE!SU%y`1LNTr%s6N5t~Zf-B-mH0s!+ z0ghFRD^W_5Gc90e4v@f4gy!{$Po^MwyiwxElVaEnH4ptV)@K$!-pwjANAOdj% zbtF;N$k7&NawQz)o&87>HB;JGxxrTYj*SSGXpC8L0vE_&ptrz+ZrgT9dll$PrN!paT%up#(j6)F_skz@By zd&v>>77AO6W0p_AbehVn@Nm+z;VNhF*)=usFQ0C0Hlj}?Kd#XbFpmg@xNMd)%gcyZ zn*B@^bDVSrqZ#ni_?%+j)i_OzTBV@1+;m{L3qKFVw7-G3Sk7J1o@0Ezq!2Q6>LvBz z){32T1f@jQ=5{9bHt)%s_GX2OwFjC6+bDZ^6lk(}2%fgS7?aX^LrJ2s!fN2se5u0I zG4yTs2Rpf9f;y7*S{z(+GUm~{Rex{11)JX91PBUxKOCRlE@d?N|KwVB&jnp^R~-VL z+>%(P5=csJ&TY{nvS=t!*7{Hf0`mdMwQikanSx&os+!rE(YtZZet$wX zSn$`CJ^SMn+eF1c+iLob7@&*_EtLR+uBWidagtV0KP8beLp zf}8_K5M3w8y&j%y|U!zg1i!->-*0^{YMWt7nMe-g+0Q}nUjC6k&FKkU^sbt zJ}%tE^8qc}+TWC9z+|XFWh$2JO$J^{`Gu4}kiSC3{%)H7zW9CwppA@dui%7e3dkvi zyRqSuMyB{#U4&siUXL2V&cziIo4YkH14vCiD-6#ufvK=OsbSquuU+f^HWmVu{zPv0 zYXZ*n$!fE&pZz5>vgMy7G#p~8g*eJp;w2j=Q8IkLU#OHZ1*LD5&9HJmLQ;)uL4g?GXCPhfFY zk5X^7=t3d9wMAqIC@=MpHZS!c1h&(q@;e>v_y2y;zwbaKwm+ZrD)g%Til<8r$&>(` znA=uPg@(lq0U>yoq^DAF3*a19McsQ~7}-Z%Pqj3{-6UCZ(!7E*$bT?MGTH~oc;C$; z$o%U>0)N~mA;H_1+SUA|@apY?IwUR4SFj(>wdoQ0F$k!d%x!j6vxAll%;3SqQ51u5 zw4rSbnBsAhl1deM7612iPNO7p+F=~8)(uRS74Df1Msv``HMNq(6=?*1+a9se&+hB} zJr3j%m}`4j(-dT|z>%kDvHw2!dLBp{1ouFIE-S^b=$s|1X?+RX*T`mKI@#~#aMUjx zbx-li(fD3o4fa=9%Px_x4#y# z;}6<{n{Ch?cpmN+?}kTf{jpTbv|%ntdaP}j%5xNw_s&Gzn3nWTD(MUMYxlfqOjqKc z1^ItpU;p~<4a#@=$RB)cz{+UYMw#!DMxEG7>KMmu5dWj~2{GgOK#zV31DC0))`k00IAWJk3A5Ub( zxEF435oarj>?z_``O`lR9|_Ly-kp>vPOsO|T&y?ow_Qq+V2ohxhp3lCM~XLJsTTEf#>-#p6Zc&`0A6J@#NeYIZ61{nIR*?znaj$K9>JA=X z_RT)&0X9OCjRIUW=!>D*Zd|{C^z8_-IM89lx)jW&3UW~U7iauGJ%xYT7#R^TO36p^ zScuo>U_fTOho`u8Tvc;p@RemsZxCI)0y~mSzkqt@=x5zOH`V`Yo&V+V|MNFUipYT5 z$$j{ms|PFy6c*SH6L)3f{1;o!Uy1u=-y|ktvlU~>Xn#ErvY?Cd(EeY`{J&Pwzf1vY z7!W_nZziPrUMKSdscoF=#Mp6Y9xk;(v{HS`O`hfrO|lw&vJxEI3Y}W?UrgM8j_BXr z>A$?QCIo_%*CC$;ZV})m0&pNI$K6k<@!TnXvA5tGMPvi$O=X^{OQKC&vKe3#_n(j9 zUk3KyJ`~C&0dD@2tJ0(bU?AUdpma?n+~z!49LW7*rw)NV-Kz=o?)9TVeovGlC47xl z|4&2u3o^jjN4;*yt$v-+53s`mQddXiI86lT+~NCLN!fcPlM}HVM!A{vPZfIrl;#L_;&FNbIge=o*#=(RxcMss%L`DApt_VOcq=8XBsktq(ssR`M zgaLK)D04MFtFhQ2d;KZPz$|2^D(Tk1j4ZG3?|lCc*7z?^`=3+o7Yvw^e{kOPU)SUF z1xmis^;WWeEthhaOp=XXkZqzJ$c&7p8VTbm{(A`e-^Tre9u-Bx?UzR>E6wXTL;rS3 zsY*tPw-8^a9g+im;#>)R}={^{HU}GVr(zq4lzT4!{{OTvLpb2gUV4P%%1B^-;(y0oHi5sMCw^QaFV z4@(Z9F-Dp6T!O~>4RV!sJLM+3C+LxvZ&;@cUU1URqAW0elPpDID4!^xt~ls5z)50w z(tgP^eZ-}wB7Qt**&>}9mk#0MBY(ate_u~9=YYC$rLh0>R>BXM{B^e1mK!eZz+Vi7 zkS(fdN|@=_PMXk2r9PL=GQs&;osf{c*=7T?{d>?H{WTn<6!NPVZZ+8~l0?t<7B8Br z6byaYd*YIu1Sz>vRL^&Jmk+vp|y#aBB8A8US`JX4&@A_5pvH@0=MlR+jv(78KlO~ zsGdBN6QVG~F1audQAr|z?kG!emGyPSD>uw|IY9`3UKOqFeZa^|ONuzSWhGo~?@QQ> zmPBDjO?=$A;2}lO&u>nD|8WcO{d-`kM8HEFOpCl?-P_ zLP=v2idO@UF=vU)|C|^uQJVPGCEG&%+UYmb&(7&hc07S^*<_ykT=kHql4ne~#Uy#c zr*Ey39L5gyYdM~wP)9!emS)}%mX<_GQ;hsag%GODi%fhOD1-y4&$|q1qSm-kR4#%SoryvE**0q}!ijs&Z)jW*q0R{BK3Hj;>lAH~ z>H{}!r|F5(v^t z*C#C*SJPbhKy2TPT~8ykv;I!cco(He`Y%_6J-xjzoc=S&rb+;mXaLo>PUj&RJT{x= zPTfa3n1}}F3sBl8fNCb|mtZwl7~^oTbnU6951or<%Syy{uxYJvz4oHyH_A01rB(_L6=A-BE0FnTb)aWH?dbg$l_&hQSIE!Wso6ep=c@Od2hbirhf$?VhFp6c~0LrJ_$GlljQluv2r-Sl=L{~5eC zBuFMWCV>O|0w#0iEW*Kac|)dyzom3paF`un<0>>d`<-{L%ns%`b$=mpp)2jqb5VcJ z>Iwv)_a_UYPj0Y7O zY84Xq@EDm0xU4vh8{UW0MalsJ!|C^M$4kv~G7Qo5fO!tU`NCUroE06ju;*#8^G7qV z;!IaClk>BM86gT_a6`TsFdOaH0KAaTo-dWc=i0>=w#<*;K*S?1U`Kd*%E9;oYOTH$ z7=oGl>Yuu;PCCVFxwu9n@!j)Lx=pq}fl{i3cf}XOJJF}x156qI6EaQvKe>3?>HsrI z32=iSMDvFojt^9uTs8=fSK9)2M%^+pf9e+`JRs!JFZ^1vnF4Syxnz_wDYxEWGtyUN z1e-N729t6+k;m1C!E`n*fOY;VIEj0#_t86k_OUKtz2v4BF@E-&D34d)3%BePRU}!W zipTm->N}D{0YJYRK2J6-8o-lDHP=~XBU-3U?nHPiS;~f|;OW?`=@w~e6WecRIqb73 z$qvi$*j+JiRmVL)+jCg0wRG10Na0nSm{6$~MlW`~^^E1V;FQiF&0$$prjDE-oh3`X z?V;y!-ib|_>}>TE1PB-8;>r?;xqv`qVc~W%l@-r{z*mBz3UFs@v*~QJjn>89&xeSV zWSEe-=cfdqpe)H%t~XV!(KQi11dwWT7H>H-Ws|Bu(+U*6;_x;OKHf3dp%~8RsEw@yJ^VLHZQ*s%{LV1I#>=&Id*8!xh1iN1|$Heq5S$5al%GwQib$LsT8k(O) zAIsN70sF`fZ|OBG*WGY@x*FKJ8uF|7kOc_WVKGQK&)IwumyXRMX#9rX*2t7Dr~q?w zoZCp;u3(~&G3|!x!klU^=gnl?{t_Ry6j!GMMjd|id)96Y$MU`nJV$gdHTu%UHvEGn z=4a69B%o=f>2HTi2*52Hc89#Az0 zIDUy(t)Ch4$_4stjw#r1cPE0YzX&nuJl&TcQfN7Jw)uaj6Miur@Ut=Pi;o~0YL-Fh zyL{gZw)Dsex^-N(`0YtYv}5Dc+F;}KfRK6$t)EWJT@%%Ie7$sQoEt9(z(5&nn1B}xejI{$fabK7?C2>Xt2!P9+Nvg1`au9Whnbe;EaD#I@6Z+Yc+i?@aW+c>v^oS`qov z$;98gRo$Wt4!ge>hi^|lo;{ExIm{>)Oq_G>L*8!W2m~#lIKZ54V0%4%IJJ*#V!sp_ z6E+s0DF54!;t2rq6}m(HCACU0xbYe93Q7cPE!YoBD(2^3RCHY*P1Zl!M1!-lDSAe8s1+I9{%q za^>K~wsBuK$9)MHX6m$&d42wjqcRowLaU4b$$5lqTUL=<3l8^F%q0+&CipGTmfp(cxrg2n> zo~tZOa(747J7guP9y5=pO>ltfUXPzxe5od4M$=gdc>0nM@b{#;xGm1Jo<3SN?hA#= z74)xql<7%t0M%Y*4+t;bU2^Q0fV}$-wR?o=A+pk5f7_meS_0htSJhZRTa#r`NFYrG zj4ZeiipS+1WXzItc)Klls5x92NgVKAiS;e$E_XjR1lNscdpKt7qjqoN7&H0iwJ)IK znt%NWyZhnu_ogfFk#A=O7e2lL?M=v>Spei`LX0c;j8?FG{Il7>4$*{U+O!L>6!q7i z;4Ruco(9AZcEylpCzP^{k-1p8j5hAXa^nu$1D^5_W4kbB&%P% zh>lKZ?{~WCbCAaN6HHmz9y;gk$UKQYwo1C;I*&ovLwo1lrCCnb zynEvFW)uuYzRtGp?!@t58YD#f^-rzUj*p6f+8-xuw2$zcEUd?}`)lk6mjjnL%f{@r z2e4MAEsObTKHK(y-gtCWy;LuczMzYH@raDdZd(we1#CM1^I7`Z&}o0c@b{~PB*T3l zEI5bb28VM$qv43;x+`;N{EsV_LWWqhZ_vInFCY04cDhmBa0ueFDL!Eye72n_n)^;< zwwgRy)e)J-Y9wVfeESNEu03oTPgHMqGlD&E6q?W0JjB-CAr7$q#imSndJIU#0DB#Y zy&g0Iq+RXmcI-IwX(#>M1V;6NJ9z`4T}=(6%OJs`vF}_X+}Y4tnV;;s^jd?HC$UD~ z=9`AY2s5@c^Fv1&cGi&!SP2Fn4@#5SL=(7S_z&*y6 z?iZHtDmo}og`aEl&+GT_jV+&Bi zg$A`+^uHVY1A88tFkQ}X(?);qhCeiE*GwNXB1k^r8a{7>s94)Jc=T(fV;JSnCEHIK zEGu|5?D3EBz{TpWdOhK;ym|8IwLn)$Cu}gN?Ba8igowDc4o6 z`l7h_VWTTelkjP}zo@0OfkZQ!8xkae{P7cecx_8o6*}CNaP~iDhp}r5?#yJoeVmw*`qQMp@Pf_s7b>=S-C!antzQTc z9`01a_=AKT9xd-6?0JE)5^t5=j&HHMbb)VjGyBx(?>m)Dwv(MTH{GBXOL?*~wrSO- zY?3w{hC!cY9hUjNfhqu5g*_fnEIjaKCdcHO01sTvFZ?KwQ_~5%KAatQ2OJ)Lb0$G8 z8w76?8v)T%IU~)bk+>QD}*| z020QX1LS3R9PkcOuTbfF@#?odlUtg1ocXep=fWn$j*Q5Ms-0xPr+3P=yFca_?0*;W zv0taZC``?N;1`7d6`nf0%YX!2#0!=VA@wX>;V`DPG}QTo*N?<qmmS2VUTt?k~O{0*pxR4njm&V1STX!1Cs_?U5i0vjjG|O4Qvc z6A-y8`O?d=e3+4EM@+`Hme$e5sy>pcQBbmi+s+l#(J^(rSsGL%Yo9OYRO8@#Wh)3j zQ}9{a|32jd5V@TV5oT?~oUadWyIYxl3s{feIRoQxYe(VqQbr^YciCN5{Fau%>qADgu&RlL6BIVZpPq!sTqU@r{F`-?lATz!Bv#G%@_ z@~`O2uu>?AXW-;07sz0VyN$Fv@$4{FcQ_d~oAm-qh?||39~qQ8^@o?$Fje~yK}m2?f6D#Cjqf&55`AJkyN?)lkrAvRV@aKo8@O->s2mt2R&b!* z3!0w!7d3%Ss1M>@-)$9a@(ugB6p9MJ7bVz7(Wm*z|I!pehwz}Qy@=WbsmN0VJ9zZy+jfFRcq5|tLa^t6{ zz1yCtF+DmK0L?*XswBFN5G|N?DC}$|}0>)va9R8iA5$l<1 ze$3Cv7OSSKJSj^m0aBHC+?Ng&YE$^KFRiIaY}Ld&5&F`&@emlV^)ryfsM{{0@>JS-!zDSl&aU!ulHEXDFK4*#@5-_ z86Jx#wvGWwt(nE%#Prt5jirydjVlyXeis!t1bgytvB4CB*%mv+Bc&&X1sX4i0;t<)-U zO+EV7p`qeI#jIP>;zTu_olHqLqyhI@5x4O$z27Yt&6OZpA*Qn)Apz~dqVDJt8S|~s%!FQ*OgLC&e z@$a2nw=Q>o6GyG0?zz&N%H8D|5Qct~XNwr%$5HRA0JGXx)EFkvsWr0GK6@r$mom|l zeMFW`Fvb=KqaM4zc8R0O6uoPg(q&1?q*7J%1Vlu zxa7I^2N_HkOAx)ktaGfPUp1-+OEit_*RoL6&&PaY9g~tq8J0f92`u-mKgF$?= z?K5PpXC0SshKXDr@qqHV$2OYWg&B!j%F_gAwYR7#CPJ-i|$`fNoLdg)GX#LKHSA zI~w0^;xs(In^+Ke zEtYpGf!Z70i9<^nvu%w=wx4B$}s#O$Qtv z<=8$2psJNunBO6HO#8*X5od0#|2D9h3C2~s-f9ArV1r!U0_+MQ%c8C5Q?t-}p<=q6 zXjSX7pW;y~^35tlKS3IvNqn>=m^n3quXX|?!{CyCFrQbziokqK?Sc3y7_d8DXQ3y9 zTENM2YU>lw?M_Ldn1-vKjQ{>co(OeP@5{^CrR|H;3t3 zV`-L2omXJaW;Dd_V^HxrptdW-L5E2>DUZt4|iY| zz!L=U^Vxc5TVSAcUmVtpx#rF%$)})4QHWMd5Wmp{#W5Uy zxR&P1K82!o(5)teVUM8(3GxJ}%qzGJ~|4nfiy_Dp*VY-5(y=ASVp ziS81qRdt6fKC7FJdCD|9ARu7|A7PwyySuDVj;lI}`aZRxqw@pnSy|7s6$YE*8eh=5 z;ZO)y1KTAUIAO&T%)P-|@aZ^5MZ2ADHJkvW0hq>Uq~PPh9`z9*%8y+YZ&A#0@slv>wW)meBwLzcmX~ zJX=P=KphUxsMi#^@4?^pY}MM;UjLpA1&G!Y=%xCullr{n>88l;6;rQe`tryRK3Fcw z?%lA)<$SR$uw2+;|6xarXUc=FGX}r2QMA<;E;!vfY5ZP$?9jqRz{0D{NYH=$q)Wh# zjF@CGX|K2(P=PGWv|~`r_X8x(xSz-Lv8i}2dI-%CIXDjN6y}n}2%x4m&PEFQ_sGEl zwJDim4+~S&W{>N-v?X?)S7vnG5D1cY9x71AC4ipetzD1(8*+72q+Q3}rY7Ry!%6Wq zt>WfO-4af2G(hUxB>5m5%G6eLXjuLoM?N|G>Uk+Y>P})>NclxKSA`c!fT$zv_d6NK z11?r1K2>g0@r{N3Ek!dF2aVkOP?+w)fwj!RD2tE1K2CL&65NT?uL_|&oy$J)xqw3G zmI~C`dD}RCx31lgnB;x_m=kj#0t(C}G=eI1^34v-jYa#6tRFPPV;yyXU!&8}O5;eS zR@MUq1fsLU?UUN&wG(2sEg!nGr@gZ`P@SAanl%VQ!A!)?0XsPXeI)wT5m&w672FN# z7dO%kE|kn=N3ss8dw|j+157oFwAu8LX57&w2as`(5l*v~-??VNqZ1B*Z~*ka#*mas zwq+_N(v$H|w7ly=(&3#y_4sQIVmMN)DxOjQs!02Oa=1BZcyU$+fj*&#v9aE$%CA_Wuucy!qKI-# zx=pFpm}2Q?eK=Q=NxxdvBpZ4Z%fRd0cvOjd>Wpi8&50Foe;!TBm!|F(fzog@?-5;aK-PB{NxH2eZScS5DB+n$va?~$yeqKNkkGGRQ4x(WZbUm z#(yh*keMwtpC(-{SH*WL)`UOivYy5XzDx!F8Bz+~m(T#Yb^ka4iN!MZ^Vw%E+6VA)< zAEW5f;xy2TW@d&oZrb`Lz%>-iFUP6KS{@|BQ5{k0+e_5ies0wzca`Qf=*HJli>`aR zOhDk_FTXde(pR2LJs(>Omt7=4mPJgtYz&?AV2^YSLwv9kUHvw&9<25uQRSkoc$T>I z08WhfGt&uXV(i;yLCIDqTP`VIuZ1HKtyimt7uDN7u4^| zqexdntnWoCt>syK&8T`~ged`1-cl&zg-X?J;dqf8JyeYp;c43-zl`;Vk|1+g@lGQH2CB+n++5@O5Rd*zt3pCuG8J9TG=Cl~$H9IA zNLIn6y<&*lWw6jU0MW%6V;Ed3o~R!GXW+8Mq3zr?$OtDcAFj6`PRM`wtv*xfTMA)Y zM!l?$@K~%X8IsGQ8mJf8uDo^lu!y>GBp!h#UAP+r7lmILMfpv*2)>^;x_09w_?e>E zDg~-nA#p@;+b?4qjuRX4bhqCAKt}LGN14Z)-Nj6Zmxttj;kKw>ae$pD*RB&9L&{P& zy^-!peiN^msz`DgSj~AyyE3;X+orpl1l~X9%5LN{IR}-(pA-Fv6}PJ(pZasY*;u{! zpnv7V6)=8wi?k*ZV&*X@aQPDz1a(5*fwwO}0B6?Y*KU4o?iMmvp+_C(>UFfI=&!QZ zO?Dbn76EVYWPrpB8UBVGa100VijCsNcj# zdmh)Z>K{6khkMD7ULTTAj)*gB6OcF#H_R12gx`^*+z|LW^ixK{tQE8f%8^k53dBaA zd1tM03R)ur;$*fs@ey(3U_IQMvqizq`0^&9whZGI{f{KkyfzU0_d)Z2RBD&6(WT!| zRq9)-uBw|BHD?Q5b!xYl?83N`PG_=ib!dN+WY#|lT{jngn3iY*df<(Nc=AKcgyISP9BjU zm*!-9kVK>AAyQB_(B824{zaTo=c5e>;mfw~*?@Ow?L};T#J@>XOUO z>X6nASSfSSN&qO(|G`dg8i_x=BS)mVQLez6@!bjnwhPKYcH$2h<^Hq*&nx7%P94R{ z(}acGwzA#(-z@$lxDN@+Rm%{a*>Cf~27$hs4HB4{)q|&pHFOD#^Jos=6~ zYe(;(X%r_h>LSdl6mAAU-9k;s;#mQPFv?d0E z1qCFOlNGqnh>0;ZYN=GR_l#L`Vd|YoPVJww5I1g+Y#Yaw=*aXEY1Vn0=hRx)^rGB{v^G*4v(e$3Aq(5FFT;>a#eT=nq*;!JiE2$pvK+&0uO^*9>faeqOKnu#rBPnaYj;&C z%**9I$_IU{qdpfjsbN1OpXv_}?+gV&B&Gk=eRlcy5Gr>q)(R0FdFali_hc zpy>SeW_9R$QwsP=wrLwpM!DdzLC zABBbz==0VRUd+cqb4=@RUTxhK%KClal|0yR|83TfD-Wl>h}_R_X_Ss`88MRgLHWeC z<$Sp2BRe-hY!D(7C*fIiFCt1L4qh0B9{Ga%xhu%%!-g_pdx4%0^uRm6g?UQBk(tbjCv1ziTt7+Q>5xOG$!v6E^RFxs_!Y zrA_5m*A>0k@N`E2f*{16e`Cb>o%#9IC7vM$K5#bb3=hP??#xy4ibi-c!i|yqq zw|laU%hr-v0%mOeUY+aP@+QU(s-q^%p)^i@joaUv{%4k)Rx9bnb5;~5KPLiHsx6N4 ziP;(}ZJky+J(~-)R-hmDkGdHA&7r>t>Z8I2RvAyw59Kx+Sl;>Ndou?>M}oy@KEhUO zAj6(U0IJyL?K~057CRTWlE>4_Jo6Lr@!S1|b=r1R-+w~yv=Z{v2!>AYc6!LsEHgFC zyJW9~X-ysRjd_(f{^YN3Rh?#Q!1;Vnc;=fFQT-1K+tk)y0Y_we#Y^CrkTnTB@?do zAs>6|?A#U2YD2OksF}bNY5QWYq@gpAqmlk_l!M9`hBV!3y8ug^u96{R)1EYKeE%)2 zAR(oH?jX$TE*UuSF&lnsz{~JSy-`Bv7zTn!BSEwA%4F!;(f~gL?d_|-?eK&mn6dB+ zM-ce7{N%SRR_0b4v2&BkZy#j6+Mq8#yQzWGHhun1>tV=1=0pCUE@FdoG|EEBiu9}F zWp0(z2}$~)4Kcv)gP;tcplk?Hhp*6K0|mA*X9K($aV7Esf_TthvwFx72#7n5^z#ko z1cXJ|E_#m`>hye;3=bJ`%=Z4(o0sj?Q>EYpcO}NGtO&;&Z;cQ)^> zXl!U&vsX^!xCfNo`dn(1Z-2hE8#YoM(&m_Glrv@Z$sB;UvX`nQYCTm}GfLc8rtQo{ zcqe@es@AI8UYr?XO(cnO#IHw*M-(72O=&R5Zl2@`vFQWOyd_?fxjyXD;k$IBqJ{wS z-I4?*c2mh&>uK2vT)ZDjUkF3MPN&R&X4pc7m`_6%k#K`Db~=eYi$~T@688Y|SLTJA zb6=u{`{C`O`qmCyY?2o2(tI8$ilh1X%1B_i?5*y;P@+X=Vl5f7g?`WW$ZhZEIj*&t zQW}kI`*>&zCR&|#W8gHVWc;$-&kcHX@$}4mIgA;*X-kN%z9IKI5EA7&O*ydK`Lf&i zCHPK@H2WWChAB+sgv9^O@HlH?)B zzgh1(5QAs8V65uh>a(6pIcBJ>p*N{K2CvXcaM!P`>Af%!vU(t4|n~PB1DFxQTvTbN`m-F+&?A`qobueAC z=5c<&a6AWii+fn>`!XF%fwW5FQVyhS1TbagZk(E4SrGd$8 z8`o%Cg%&jBG%Pj*@5ep+72nV9_c9zQm#NBJ;oJ{eKJAnXY})KbOXm6lj~Tq_B6s2k zk-I;&K-({!^DD!8mv(bD34kVY{y!le-CO58v3@}E}Q8EU-|mV@f!V=nZ? z!zjmeI)X<>#>B%eaeHG_FG}KKp_u~?toRaXRQeQsYb7`=zlVs#Pj8!@r(;BoJPr^y zU&H7f#%q{9T_6-Ul#Kkg)Ty5%X&!D;kNXt65mPi}dOw*LG&z<3e;E79fU3f!T~apP zQc{ATh;&G9y1PSKxQ2KMro-%Y#vu648Mi9b|O-nSJ%*VE#ib*#9mn`3}tYM%AzEn27N-l$DNN|&=KIimfZv<;8Z$@4+=R5|8GAdxzYhM!kY~--A$!LBQ zJXU%iXmR9QFXut20$t2$f__RDht{v)JYP&h4n(-k*o$z-^5)>qkd)Lvpw~Wy@A_4U zFZiibc_6kjt6X}BzwYQ}Q*6EKg=IbW?ygLu?Wb21%gEl8(^;Z#EvCLj9CH%O7JbMi z8@@irZFc;Tk&g~>d(&{_wx3e`g6{HgHUO+Ns|#P(viZy9+2+K+Z0og-0Rc%_vdSTM zB4hK+NBMNR$bB33aCdXqpCxw!g~f+-^7I!)E{cJic)@2O%+Zzl*u&EirS;u({&ZC( z7W=nGXg9esr4Q@LDeucVO!~KV)^mjDv_%1)<BatK@&K9|QY ztU{SD?>aW#a_GjpI*&I^+M!8Gob=qa@(A&3xO9)wpOJgqCU|n?JqpKXCA;l(Y`Q|E z;>)SoC@uHTgoW%?Ux5T9%HLX%aauys3i{td?&>C*7|oMuqs2jR5(8=MrD)B(&CQhz zjL^+~xUWB;6O?njwNC25S3g4Q#=JEJa*{B0`1eR_Kv(w1b4}aiN|}=>QEb^mLT=(0 z_YWsG;CEUM;5T!Z-1MCMy^VR{Zro$$0^(uI;FWi$D8FZ>n z$hkC(WNkkMBW4vhSv_1%6-sLlfAd~wRWg2CqS&y$x7cvOTQU}qVTP@6lK;aTX}wrr z7=5SSYPm|T<~8MHdB*OrS9wAqX=F*1WsRP7&=4lhfEpVLh>WXhHu|EMJs0Y*zEM$k zn;%agOo{yd^TUv2+l4-b>2QW}6b~vz)PR-R;3vn3QmDW%?Wd-V$bqEZ!QxGE^u((_ z5+|H1y0th;V<}nXem>o|iB>qMRw5R~<}neyBl$fMl1Y1ULsbbr7OmPL)bnJ$wol)U zy4@=oQqU&IDNmiP%^f^N$~Ub>}QyS5)JWDH90>vINX0F^jrhx znqr^wwDJ@4^h>(H$fZ#9>ybk26o?)Ha^X(0aC`BRz(2H~Kxw(u@J)*CbT%%(Q&V=6 z>8_ezW?k+6(yjOiA+|x0e8g72?UdnCyLp@I0_BG~wKTD!9!c=4yX!?9;r`_n*HJ7^ z@hm&Y_@ifzWH%d&r!egh+eg^Im?}vXz@a5_aCNUAJe)G>1eNGEWLH7A(mTs0rRe3X zl#)=BUw%_KZnYCaI8=YMX@rxhe#DDii3mu@qfT3FGzka~{BAcI*?0>h<5T_C*IYlT zCE@bo+QzndfUL^C82_>Nkrce~ZG~;aWjMOO0W}`dO%DZ9Z=kLQG+@if53WmeFh2e( z!oA~Rl^wFL235ZeY;X*(+V|B*cpX}McS;Wy@*LP9JO`>u!M|e#^xjX$pGFTtb_tZx z^*6IW&f~VLEo4V`HK72$^gCg@|NFCUHqYK6yA!`hIl^R7mdqL>04A;ZeZ@m6r2Q^) zU*uj~E(e40@{8v3!FCwhuKgSPx^@59-~$Hg{7;Zencdm6t=7zNr>}GxhVfi+$Fq^c zBo{PV;L+8+-C>{Q#fRzGwZj()S|1d-4RTt{OHD86tE;PpT1Kyie5#9Z*x=K#>7}*+ z^5y(KLUQ{6n{IWxo%jy#4og{ue0kC=XC~&!i`aBmYB zn7-ftaXPcd3qUimB|H>qHWy3MDT@@!YVU}DUXPYM2ozjz>LOT1o^5l+cFel?wD$Sv z5)_OkNrFmv1#Me-LRZL`yNuO$J#L%UTQ!qL$TueyD8-+|%nU>=C3bUR=^G36okjOjA!yvjJE-PYCX3it=1U~UuYlu0je&5$W+BE1 z-IG2oM}gR!X8#IjL8g(QtNu#A-|LX87B3UTQIpq-h%%VfGhXJ9EA=atH8+hTU6+IQ zmal#PWEw$MPx2ITX}^x2<=~UmZTH(}CYKA~1mg3%<~4EQy8yC#who6tkymh;j&;Pm z1=}vi@to#ceR^+A?@2z~A9_rBetTZ5gW22J0Y|`Uy$DUrpoY9$uVrE-qe|M(7U^I} zGBU$pa(p#4rr5}=V16b)Ld0mn?-g|Nx_baS^xDS0ZSE&IlSL@kJguE74++1)DiM2f zr_5(D`7l%JZ_aPfPsj}0_s6{&Ys%y%@A;hWSez1cIqB(DN*4v9GQsu>`7{o%mvGyv zUw+z|LS~nGHK@k)eL9$9HmUaO6r`eCR=bWiskZ**P^vutt?#;udzlJ?Q5g|2X{SUc zCAremwa&ep+%@7RLI))s@7;BDws9dZo{|Po)_dJG$uWXnu{WBAs%qraN`2N>oW-_i zsq%;Y=8h!!HmnjSFp`9p7e*Gbh zirYK=Q3WidvF<^+_FC5PkQT=oMn)CVd{B&`llB{Bmnlf1yRIZFQ>O21X1MWQnJM;z zB1JDP0?k>5z1Z>%8VyKV!gmo%!$+x~{0ZhSv93q);6?{FZ{9Y?ugmvQwbuF5>0pvfASSYn%4Vp-JfJ-&p)*R;et+(b6{tt z5Ram<`|i*5L|y0dN`pz9R|&-mKuP9Q1142ZptHc>0MPQFpiuZ5X}D<|DtauCZnC#) zg92G7k(^f&;<=b-;Crn-@;*Y12`2k~#`X#U-cO71`zWlL@@VFLK=yO1pMt^)(=5Jv z1|Z5Qn=zSD)DK>`51OjJqY~2uZ#i)EJZ?QK#(#4m4P{!b&I?w-KBSfd%~-2bdf93V zXg%9HX-Q5_tKEKV&5}CwG!)?*y)fzzO|y2^-bPnhSci85u1uRwYU0dt*#*W$Fu!L;y-^Ks@AWT4Kq$|pY3(s*E-E|5KTw&tq@fpHx`FD2WH(T z(t1(y5kVGrWBc~(h#K8!Q$|t{J~Usr$ZPEHiN6|%oAsy3y5@fh_FQtF-+cd+23{;e zyf&*T1o;LZT!|5yzb}lr*1AZu@PM($Nh(Bq8D?<;uBnR?h>+*y)VC@|vuBz+`(@~< zvM(NXnGNpE0uQL%uG6D&DwbH1mgU}}-~Oa*VcZ34w0Ajy+6ATJinFE*QQWvy$kq_N zmcsOhncMG7&M&zcqZ_!!4!gIzkHVy`I095DE=XRC!c1@{BLobuT0IbES}eXF0@QSu zaOa8zzw=R;`f#S#4bgO&a%vR_K@D@_0OIs5QB;X#R4Bv(2dBZ82RgY@O+{ zKymM?Z01v`TdmYGa!l^dwKJR;RWe&9XuZH^r18^c@tZ26Nq>&0O16?H-%7ExX*sDf zt?W#`beF!D(o;d&?AQ!UA9Sz2g0N=#X)v(vne`G~-65{0{%5@oN738UKuP8J zENtkq=?rnj;=}b|RWe#Ht7leS2V?#`EA64E&ztEim$!VnrGm=Ug3BtUJRBT>Rr7>a zTGb!h$3Rve_i)(|N@p!aI0Mu?8|Qwh4*%}|U7=k)MUh7_Sr|biL&cww&$>~qc{is# zY5}(L6kTni`oNw)J^Ogx9JV_;anf-|of~L0^TOqem};YbUQsu8U^tnWBg*RTUMWyX zM6+_65w(}tPO zOPZP3{;#RK5coDOkC*X@nZ~uqx192ZHV>(K7fi_`vW|V5s1LhMNC_#f3?^T!Chc$` z99@|%TOd8lSpI$OcI?d_Vp7gSnBph95l>Uo5{UK^2jx=48kaDSHi~p+mvM-*JoBXF z{`l4xb8`1308w?%R)${sR|$E$oW^?!vt>?U)pvOWMSqoY4&=w*e8rDfR{cD)-qme5 zhrIoH0v7SXEpzAdV=QlS1nf`blcBpZ{Py449o{BbLaM?S`Q&c(LFf;s%J+P5&(sT# zJ&J`JbaPq{H+0e#PSFP4j!W(on)OI#@3NWEr+#m^)I&UPL|Wg9$@cKvK5$Dk!@JxB zsMon9d@n4XCSFsglrWtsiMx2bnnrV#1&tR2&M9B@^U^{Za|4j4fsMQjf?$e;1F_k2 zf-%N$Baq%SzOPz??eau(D6^@FGa1;uGan0M$J#*_dB?nC9k=eBf`T17oLI~BaL31g zcHBe!+@n;b4WrBd(YjhZjNK?S?hR?ivJnt{T`l#RTr7O{7xr5)DP<~Sb%#DIPU&G+ z__iQ|zPdAW*}U5vygsR>&17anyq&@ti-=Oi6BgtTzxuB}8Gma4Ll_FQnaQH>c{gYB zmo8tfy<&{?I`a0(oZJ(In{cA<+}%ILc-#*1^6M}GgO=!hCJA`?Pss;LRQGpH_P*x) zi!l1nnAZg%cV4TW!jR{TFOxKFXS3UULLxEC*8PHrD{4YpXCMyCB0Ms6kI+G(@>Yy= zZj{ONVyN`m;awq@9Wndi<4r0CId@*B_}aJ_IC*}Mmw<(j`dQYC+F8G=d99D@BI}fZat`y&kG5JHiD94b4s}5{N(RbLY#Zj#PQ} zI+*(JoLyym7-M7f0j)7*jCAo+w%T*z2VW$wSprVObo1}z-f`n~nt}QEij}Bh8Y@Wl zw^h{$1zE`<80%mAsh(jWhzbQ@pp;_i$=!Q*Vkseec>gBpEusbudsA*=b{8y9F`t;D zx!Yem^Hal1@gezyYfgeyVtG++-HxyB6J4G`2F;cLbBX-EIY*(1)`Fz3{k8yz5h=#j zG99DtXvJ^ze7G{{6@fES#o1wwJL(i6*o01=^`NV9ZLvE>brD)RF76Dvk7Z@NzavG; ze$6|13UDH%Jld-t{VpTvigqO3^o`+92&cC=D*AYnD3wimSkYj^&5eTQ==cG{b)LEV zo_7>zHR9MgTcWK0-~($pW043cnk6Q!6JQ^CHvRWj(tO#aK@jQQ(z1O?;GfQlj3~>BOWHmbbg^%O90KkwG!{+!2^c3> z(ay#J6tn4v@?R~Qt7D9)FF30eN?l+B+1&4B2rnsbTQG`CR0L&+P;De_gH~h!KpYvuDn1%sHzix0hf_4WjZ& zd=K39D4)J1FhCQ?>LR*t8z_>kvmbnBs=1l&DR1`cHnjHk)Rk5Xa%(6XHdFE;+`tTq zv40=aQ_!L6$z$IBtEac_t@+Yg!v~b)&h$>6N`7%H-!lTy5ZT5qz7{OPtud&**e3!e zgSkbv%^m{=2v>`)?B(u~PxbLy=}d?vVx24~Xn^nQk#Bz3SKAJ;RL(NHP_CWT%EBmG zrXS1LRf_wqr^Q@VZsLi)#QLB}*TNtU{wd2%T#R0gFnJyw9s9$CTPIA8RUab4U}sD% z>kd-Ju6DV#9t+D;-IzDjmOecv&#Ak?uP0*hiCtZEq~`J*Z_2 zXxYB8){oPcCDR}qd?kP29G-{>|HZjN^wY1^ai+GWz)QsbfpfXaQBYI=h4Dy??DJA` z4=(-_k=2<&QRn@;6SJM~igL3ANz#cUsj@)0ruIv6E&&bPACXtKuBl-vQ%;tZXmG1; zF?e@adVP}ERD-s8IQH;*p<_|ec@D^mlDssjTqM7IsbL?^*pYnKG-B^$d*n&g{1#~! zzK!8Kk8SXkZqTQ^(i6)qzs~Ndala2Ef`Du0_-T_Dki#`FLidEpJF9z#^$u?ISED+3 zyHQxgi@7W0Chu+WuRonr(<#*kJ02u38B84)AU*5c$#DK#8dV!KE37-iY6*2@~@ z^lY`@XNNOyE=xZc_3RBym)4%0T(Ci6i5QYsqu6cbMr&=wiCB#%WWtLtHjEC>^9O6~ z?p;&3?P6R*d;Z>J0t5y@IZ;$SZ&cI1#j9^$LpC%`jrPl_s_~{0_+DqjIOKp(yu!PHFbn?i(M+ya zwWE&(5L5X@ddjQ$tbH}Ht0D%KT7MHYx6C>El@`lVlM?>ua=-cgZXofy-S=ypEbpT_ zgYMYQSE>!7>K;&tytc5zF(}?G$1s#D*J}G9j_c*ybnNz&OHde`8u8%)yJOFoP^Cus zbJ5USFX1Ev@EgLgq`u1QF{QwT1pRRKx(9&(gKWf66`M2Nkp$MnUc8kimt5&C8ry|u z<#j;2P$i#kQ8w18mImAGHp4XMTLz4sdt&Ab%j}RuQ9ndD!#2Gy?Uy?kE!{t)4o*-s z2D%{jpGFyw${n1xi+0xsd8`+pU-l;u*UvW^S9hf9MifwXhhp_wTS6@l>1t7v$W}Ty zSB}97&z8dD=+rfnSlVU#FixE4qJvv0ydvexNJ^*5#P=tR$99&fkbb)ur}zB1tFMU9 zw0P+ad1;ugHoK(jdr(nE{{sm1U=29n9-TbH+jGdiYwy>lhyjY8(9W35nl)5~ZVaa^ z0mzc_3oh`}RX9jsjA(y_ef42_?21A08};_v=u8%qAqmrwwCqjssPPrP2j*$h4r39n z&pUZis&vXy>kv~&f!F@rcy7jr5f>s@Kx?0Ze2BYaj?_haUMruE?G}u-VM+60Aa~St zi}2x6VM!n)eI=8qZDJ6kI0a34{j#%|WFC333X|<(#UV&?rDhlLN0^@o8)g*IK$|sJ zQz%{=Gs$dO79*Ifu#f90aQ@Fn{%}C>5n^cLBfCEg)t776=@ngE5A9FZLKA;v&(Pao zKH*nN2oKF-Q=jGOJ=E#L&-2iZdF8 z%SN3bpqpY6Mjzm?;Do!FwvGRVHU2#L_XqC&0x{zfm)N==(12M2Y=UP#kH`LsVMT<) zLvF)p*~9r2iOk`iujQsZz36q?63uL2o&JVE#3&>{ANv!8D_yoHGB22r{&NJu0;5ji z$|5trFm$3KBJvq&BJ3n~5&n+vAHxJ7$YKhBk}0_@XAl0f<5dD{q54wbHrl}FAU%MX zHjPl@r5nOD5W@>yBtFpieEaA95(A(-=}e!P!p4)uEdYr8Vy35}6zF$5@^?L>zhg_p zb4MuC+~jcSOQJlgG+Q4iB6Pgj5fW_1&Q1t<1-M0D%}>rGsn zY7L`&uG|X71 zFqdh%WTLV+#~HYL3JGBufy%3)NQnfeXZip9*pt8l+Yj=QNv3*j+a(bi*)EH8`70+W zDG6c9)rRiRzyI@Lz_cWNJqBAfef;w|9BMf0Z&eKdaX_VTtY@cWz9lR5fwBb(z~z%{+tKO zy?)hQWXKJM@BYF1-wyEqMP}{m$|+lLAvYGBNwG zAmw4`@7rFkKTrId+5VUF@<$Rr1;DUQ=w$co{*}oM&A9_@vmCvzYcm0^=X$-@tV;7?h-Q`!EvBsDPJ}8a2ptCAu?ueWhihk zgGJm~8!i8L?*tNT06mG7)P(c*og8qSh?w`+9@Ws{`KNc{+1ANZ^%Pmp_(yOyWc*Xk z|Njf%8z%4#&zvd{p#k{=&tFLs5E6i)hZ-k_biYZkFahb{9;_P}OwqHBU$=;8+fXBX zY>LPZ7AV=e6sp!-qWLqFKMVK&`j8I{WoI}P26lM*&jLkjU}?C;@2RjU_Q?1aGbGJq zOBm$nM6d*nqj#Y$JM-ab|FlMNc$(>fQ}E&+4gB|n{QE`n_QKW|YxX+Zp7^uf5^*3a z+?18YAC<+Y;u$YRlJ{ZSJqwsn!XonPW^uNy*W|9Br1BQ~14GLHv_d`z-Y~Zk@-Uns zsZTeWaDmq^t3D*T*w)b|Ff1WkckFwd2ToSqWd~C2GCzrX zGz``p^-uw4RA_!~gK%o{$~)8d9x4iEg|sj-O(Fk&zW=%wSnf|tb?4Uk?$7#D2vU7o zt7kfE=Sgr}0$H252K_Q%dl&OsQ^Tx*RS@%;4e!6GlYcA3(GpntVy-WnzAmBv*iTbM`$~3Th0H=lNL<0&x`U8S#kI6yhvhlb<{(< zcjm86o{BQY$h8d(Qr7Z>zu9WHr~Kc{UcgYqdma>WR`EIW&s#w_PcX+`op3eutQa^E zvx9_UU_8`9w0>U%JoUlm{y0{`tdNNn9Z0NB+;4e@82ckP%FgfaRZ|NRp*nv#)+s*W=aB=LS}+7Gh9t((Uc?n`na9;?P4h-aqai#x$+ z7)J5oAZ<|uLQ}6*57+`HaXM#q|5*#b&CwG z2fvO9Qqc3JZE3TLfkdf40{mzyfQUVBOklIxED2nX9g_Q&CByH7t>)3^D|DMBW-E2r z^E5?2>FflTsTEokimtZH0u}mMw&XK-5se4qwdGsf&)}9@J!PX(;hzdi;k{9|=yy61 znQWRY9MXJ$jNl`l!Y_!fU0cxNbUeWb9>K9+BA5I8nFSDY>Msc0KX`Bu%CqJW9wMi> zyS>7_Wf7(>D5Jbmvk>2>re!Kv3+eUTqHsSvyTFg>V(c4fQ`s#R;DxvFXip=U{tQ1J zwYI8byB7dt2_!Jlsm$-mN8S;Y%$ImNYF?lN;DB z6;s0}qeqcV5lyeja=`9PkI$er@vR>)QL~eJo`-x=$x<@TzQk;{fUy@HpFux_LSBH- z5y(mu;&t~qMQn#oJu4>wro)A^5GwCtK9Z_)V?w!!A5ojrtXc~A7B%X2NedJ*<(?Ok zoza8zd#q8g4c%PrD-isCX@%w@oqKc1#55_*tCFF6#HqsQID8Ve-;%6+(a3fB`=?|a zhc)**qHaVWY0GG&+YS}s^Y&YT@=PyHFy!v7?L@uTV}UlO&7S#_gX#0#r*kYMQ+ehW zSKY`9f^O;DAFYGmLDcvNG#(eMK27j9mnYzTh-7Z8)GV$DI4r?6*cF{Px8b4&naUi1 z`CWO7pIwo#oh`ZWTz)<;3vdl0csRv>m-^U7b}0_CDu0cFHxt@UiBNRgwlqRJjnGUE zI9vo9>Iie<&3fzG-Tzp2@6O{?5!qZrkja#A{5c4*3h`A>QLSP!t4iwN(Vw*z5Y9To z9eoe<`0Y6lu&;F=Ym5iTID&VorT0Z>=i^bJJjuk2r&NPSea}^VW|eP|@nOJaGejVTtztF%j6Q)8!VGt3bw#Ma5Q#031v=$4gKM*UK3s3ln4cBZ z%Ik38e?1~ce; zoM)b}&R-y4Tp{}47!N2XW}NI9%MhPBfD0uU;J&KYuxk2)twU2$-% zDVpE5net<3cw?xXbh#m`$U*jL(au;Jbyl$Kwzn?=0+#jkR$AQDC#R%&`L;5g{k*}u zYdhB53P4gt?M~PCtHaScXhE_2JE~|itTj`r@g=Ea5Y-w!+#UJ>zB{D@^Xg!9GwD(i z1qI*{P}M-?5dXrw%soO=0^EqOmVfbo(%ENI;R7TE9oztW?Jm?RT@cyT20;=>mSQkJwt!qik+$AI9NyU{HYa zu{&b1#{M^zb_>~bA{3LGL0j~karl)iTyczp>vFg;!$cVs$hCz7$wc=_2OBNPMh!Ss z23xa+XyW5mh$ExYx}jYKZhHoQ#z-dLJ9(1GK8zNdLP}O~_rT8KRL)wviSzy4eYr1e z@2-x$zMN!ed|~-x-Ty-!BjCe6JVU3u<1bG;$(LW>>c%028E8vwF_j_kb=ish}FL1XI6bggHVCAzN| zG*K;9)dQ20kd!hj=OINe^8L z9dW~dX>k8Bt?!t?v?9oDvYqi)2Nhc1E)@t+cJfca2e8fd{1xadDwr84kGPTf_cKDi zcT;fY-913d9fK*B5tPqG>|YoEJmwASgKAn<_Ypn$eK*LT3C>jhQCv@!#MaDUT*(;C zu2fJZ#{%FK?=EmSN!S__J97{n*bz(H=sv*@_p>P z?|K|Bf@q6UFvoB(T5d*Ai0Av!lzrVLi}pBd&}+Ej$%1^^OpmXj3G~tcu2uk4rJPjl z`oQD31#`6A6#t;v5K19yow#On-TyoN4Z!@2<2MqM%HZW%ZnR6U_|PhF_;{DD#-J^6 z8gUT1Mn$si%@J~w$e2X6@LW*dVNXa@noneZ!gOq;D-n{Bu5Grtp!(&miYd$>=VO12 zV&)|{?~^F5j!E(K8Z(_rnSb~Mfbs6#GV;%CMv&V|$6L-!ZqP=N6+B@cnKdYRgVA5L z9GpX5O2-udO=}fH@!sqwFlD=cTD8%t`vNO^G$+(~12E|=68k{P1CwAvp+rUZr+Zg>#Y1b&1eXj z^FUX^Y)V_laY!+2savQc{NwQ9V;&GEES=}WfNz;ailm;?@kywYT6V?ELERlakko(C z!m1NFv|TclRUpqtZ|Wml z;>|FxG<>$nIc<)zd>{?_O%tIlg-h*TpeMi4&imp9Dx}M?d1czydf6`*u0H~_GrdMa zQl8pTO>D`R%Ztpm7fY~>bnJ)9J$;J`A_-Otjjf&+#H3tUuiO`H$L``*+Z`rhR|)jI zQa|&3lD4}XAtmO#de>n88l{UhUYA!p%f3*4ypSAyw)@JSb5x^ll>j1EwSxF{y)@tpeFwux4gdDWIh8jZPri!tGIsGdP3aF3mHI zy@%=$wLM8)|EthM8e`$)!!l2iz(>V1jN_b$E@8% zGb0Ul52{wk4KMN+ib9^hrjJEFem(Vj6&o@K82Jmx4$S$i?LjZ>s8N+w%DQBAGBn2o767ncvI)ekqbBUHA$=!`SRk-hWB3}z34}Ljh{y7 zGe@T5EvNE(<$2461M9L_QEA%=J6uJ{5UOn6D7T~Fzg9~7W<2_4hOr-kY_`^+`&(vv zE~z#LcieN$95g=2MyYFadL2HCQM(QGj-}-4P?CT+=5eB84>SMK`E-p>U>t*9GMU>s z(Lf3nK|atO%FxJYZ{yk?x*9@N`*~l88>_BoOxIpS2V!W=X}|HBxzBiNW;uUA4ac|u zH}U(#g{3;+J~-5#1~I<5`EA{n1ax{C$KB9=`Ax%|?<5~}_s6X@qsQg7O7$~)_lA9f zJ}PgQmj2iyp#0rJoa7La2CzRM_4ijZ8n?F-&T&!;ttvpuoneLx^no{)floB-g6hN6 z3j)iZq8rJ8m)Sb_ZThnGF0iWw-l#YU>!ZILnFegLCs5X|p|F3x(LuEzpfy|`g^xBQ z)HrH+5`@@&`gFpeRqfnvqSHTLS22Mrv|7I447qVQ<0YG3nS2bjEd(m_a~~Dl@Ge|G zt1B6uv@7K($V$>XvjWmgMY#gJt?8I`s~MVIuVdy2G$cFT-Sp3JtGt`kX_V{PF&rtE z#s*mDmg>Bl&a*o2odO>;c%wM(>lVI&yvn{#hlU25s-~@*AV39%7{*&Epk`K&`D@9_UjFuV*N{iu^c=R+JtHJ9I||{>Y44}MPFkU z;Uu}@Y3ZWQqelvQx=e!NnlS!xtuF)(VXs=7BC_5C; zS$AJUGK+~+v4^{_W>7@Et*HzSd8SuV&HmYwpR#~7bpF=YphcMpe2bo$#rz&B^V0kL z)N-tq{RqdUGpU!RCXa1{3QI=NG|%Rsa5TEVQ-V>gIqfRCwPQb1+UjMaVIFvK+o9yz z3>T?ma!!O!yEx_d?R{eA9>97(FwT($YVkiOiLpckTBpy@S5>RmYw9H*URj)r@T4$% zCix+MPM%$6_QP8HS;(X@b=Mf=@xlqA zd+!=+4xj)x+9K7NN@NtNT`Fd>n0{8StXAF+rZ* zDPDj(KrmzK?HfkM-1MJHVqVpuGuZA{VA71v;w{F>FFgL8mx=`V*BH|#~ zcYM-&7M>xsmnr3Jx_+--Af!rsA%|(*LlQo8$)A?ZEHKrIt@-0t>F!zNwZ`JF^vhwH zi(2D30tm_i!>VEtg2$jbQ_RAbUnWJkM$L`Rnd_HVtc)PBvDsRHKpx23p5Zs$O}Up} zugqsEC!RTEgnv!`+^GG2&=%AcfOoK+vZiprW{xbwyTr(JM1yf+tA9$wP(_6N`@Ihn z(lONxeu*^kyn7=A22%AUfG$P!EB3uEL@TMZyQgjsppBv(CjB7k_^L`A323uGIBSv4 z#uL6P_<`7tXknWnE@!0n3ESXLJfBm+`O#Lhjz48PQbKO6?%Q=(D5`e5<7S<>F8=K9B$mYDXyM?2JE`sV7^vcUX#^4n$}S z^>Ef8_F?9f*Or6GS7LDkFVy8*(ACTDK@NL#J4DQ;C2_nSC`YN(Uh6q3Z8pL; zM*Z%e*+)xH)ZKfmbUOlXB9n@cAB(n4LM7hxTKjX@Frpf4+WEOn{;)shRJfZSx$?9u z_J}b!y2Y{FMH)?$38JXIW9W7R+O~OZztQgVA9FIb{_gf1+!~fzXCn{P!&eW_9esCO z&L4H$E|@;OyWbd(?jpylO}J|kvwH4q%jt2TnZjZbO@n7JvTNSz=w|{IX_50k;bS$% zvSikOX5!*@W)(>^Hz}w;LT>r77Jk)fG{hn31|#|?cCOyNnX1kV@?scANDZKzGXVZ{ z#*%bTKtV8g7O}JaF<4Rv>uq7S8kfmp2Q;vNp2-19!ClKZ5KYUEt>DX2cf#6+5Isna;VRf1~j0)x=lUIUT zURrImFWu?{4ZB7lIW1?xk;O8I_$(^V^Ke` z@R&Qp*qL|=?|P>QX9MhI$pwVbGSy|ro`oS3+f1U-O{}W=PAIBuc(dAeuZtxec4v^xme zDPTR{ZB?rMF1*mXQ)ZKw8!>lP4$vw~ttcHZED_6yfIwHNm{2sPB{qchWBhDvtw2=l z@d;WXkol_(%<-s~=5djVHZ_(nR2T%SReQi~@)UHhHa|Ywy>ggdYZVgs_&u(YK6!8F zu!@X`%`?!42*sdgk~Zp4vy1u}`~rSHw&m!rrekd}q4u|ljNE3?u8R!n7mHj-fk)oV z%71=HDe?Xw);1u&NM=Vl;j961lK>871avZ}>(^(Ymec&3Sf7w*$MW=7`;{vgu3$x} z=XrVEMM83j4FiEpReMiwYHWIMYQ2Sgy6&M7A*WjM8Jd0uIq!pV=_H2v8|8vLA95Lc z{hU-*A*N@>hB8erz3L_tSGD+VFgqSS-mGv|6oph}dEc5R;s~v#)*b6xzQ`WMf;*w= z1$tKWFp&M+m6kbuceWCg`LyZQ-A?j=d@V()LmYOlsAMy#K{^`DJqYD4OB{Xy%9CoaPyjCFlau@ znp23#lbW_5VpGa;fFBkzXE;e-mD{o>{9>v6qOA6;H`>~)o-Ceoe6;N^MJ_^eMX1T>F@qx!tgv5{OP*)|~$;_w7Uv`q8u}(D>%2ew&JPLA;vDNHQ zOX6&$ThK^G5qr)WzWBM3)#K_r7DhI z*;Q`UqykxVM_TFy)Y8b4;W5#+n+x$Q#Fe>ai_5LpB`0vE>47u^Ae;AV0|+}ys3A@m zY&+D-*u;gxG(%IHW6sO<`-}!Q(6UdZiZKIWTx6HBI6Lv4j194hJ>!{>&|j#>*hzuT zkKMnxmLj}EXm0(U@x84Ln_^xcBWAWgK0X zL%yCC4gk#2dOI|9yjUm83J!A+epTHYH%iHIkmMt4AJ-4F?lM3PWlPxe+p zj5HEmtCmIon`eA(eRjjq`OZ9y@=aaC>g=rk9?Z()BFFu^nHje?;uT9ON=YAq<~2bp zn637@M?5O6dahhhb=gi+vsdBv8g)v@CsV^-mDyC?q_T8fOMcUdFMUHIIhwvnU9 zm2ssu>}S!Ko0L7?TgE3z%LkuJSsIsE8oJX8md?>z8NL<)qMsWJ&FZ!6==cPq%rnV2 z;H6AX|4+w@ax3HyR)w6aS{9j<-%aaV{Z2Z)5E4ug60R6ZUYF^?fX4ugQjO7xSPtaT z=LFm9FZIdG+x8Gw9Mk;dZDYPdCZ)z*cPpFajrf6aeRq3rp3d&^vtH(vKJ5ohac#~! zQKw@u%ai<)?g{v%67N%)4r+h1!1n8y^4}?}>uzoFRj!3G^}6^w6YD}$E}>fsPLcrr z?;yy{bn1p|QlV8?Is4N&3i^Ug%!^^1zpT{J_E!DYAR_>1=?Piaf$wHrx+oW%x(z67 zt;fj4H@kuCHVceg6yaRHI99{}H5ePL8>AdIe%l}lsDc6YG1x*2AC@y5ES5zE_clf| zSG5>Qwv`2+V!MKH8KqCk3($3+MAm|<7-ros`ECj{-m6NTXl=}%9dzbFM{wo#V}6Wf z8Tk}PSw0b5FG2cLB|Ev7$q_7^wfMs(C|-95xU#6EXkR3wz>rpWD$=2k(|CmZ-MuK_ zLKE`A8dJG(j$oA?YBrUdc4%#R)W{F}4!gOko3lYQArjLRpY_#7V{H$6Jo2rMcPVdE zE3a)5zmj&-R=dg-Eb}mh{#lWx)>=PO8K*Wr-^D2T8SeR~X2 zZjrYrVk5d;c_13&pM>k5sa~Y$w&w_hUjrGD<5<<}pd$%MeQHC$vU2?!2|5Zw{6?e_ zfE{_LW^o;jwAmn+Ya%C$>&I1T@!kM3O0Z?K0@`-+DSgP~b5I&0SVn_;J%;j&k&R{h z10@lu7Yg|669HIvDfCsIb!1f1O?>-!m?_%OhYS8qUxA^w&X000&LVr#kY$fng!#vk zZN}ITb5XnPDD+0Vw6ZZDp0}0xG5gzo(8hMXN_C5x$H=F^zuDEgtUa5Rl3;|f#AonSvD4r>GJ@%!5pDY zN8k2&OaoDQqJ90l)(O)p-Dd-Re9SGug02+3j0eoP{y)|%ByjHPFplScP*fqQ6G-n2 zKer(+*s~{JYAFhb0@#-YguWLaq;*xXx6X|Yoz%~vf1KaL=pr}@JptekheMt@3JDb4 z4S;$|pEM^1fsC~V%{1e=(gP$OnyLLEwCWXeYz=@$4J*tm@2uXv9ZSu{>B(~J;iv!W z9MQg(OH3!XXh_SYjaIy@@}oy1hRg$HTQlKGd{rJyqWoBqI)u9v$umjMb(6Hm9CVcf zj>#K)N9anbd;BJr9WryMM(?Cyc|a5g<8QEXG(MhP?p*N<4<-104P z96SXK)L@5NXlZ|;CEx9%MW8>rrL$hq^NSd5^dk6; z9t!HK;yRNa;-At&S2o`?!d#?$u4c|_Wz$wWKuZK&r?#XYxc?af*C+9TTy_^tuV~yH zeKt#R5f^XXMk|a$2~;%uc4I9(Ohn`(;wSLdU_#5YHCI{xWlHkix0<=1ibNaNDEQM! z&(3)x(Np;H#mvW}YS3nX#?G;2(%lsc=1Sx651fwgN6tL7e+O9omYqdOzq|B%wne3X zn0FG&UA>|VvDj5H5rtVprQ8CQ4oS` zmbr~6D{VLqKb+HHVOBat-NuCo7$NHi+++T!SII;r>TZ#uaAQip?cI#m!^EgCNaR(q zPjLYv_lI^1^lBphu6@h}?e>>mQ7%>r==dadCOdQsm<4k{IT%R#*lEC zG_5GYfb3{-CHUClsUP;HgUV<83(1@~8!a$sAFmQQY?m_Le;&)KMqleJQcB*#kuh6L zu5&`ge@7{Q*asYbByg~0=v%$-QvB-RXRtJ+laLSb z%J@`RqQo!K3fBc9a9gE!gB=Kx2%Imw4Z~T>%|SxNhbW*x7on;Gh!(gj2@euM-Fi5r z2DjBD5U!`0=*k9`4%-=GVH!7HVSP-`B5zNth=}FuZvO6+Df_jsmMY`y-VmJv*;$aV zEA*6XH0E89C&~<_O6KAF^-{}my8&ytdqq2v) z&CTWL3)>|WzO67uTis2pEG483Hg|)aB8jw=MF7!Lj%b?5z||KCmMLx8&G%y0|8kXs zsleE-50gAg)V@7IF;N^OTQZ7~lu3uH({@!EKZtJ6mq8j|U9qFulT@=-se>OGyL(nP znto9nZqaveK}@_6jF6KKV0K+HEqE$|sf>E95_&SsCYn zQO*2fgO68{DZFc|A;+8?jhUL@o#qVIr6{$+p)XKI^%Jno_gHYf{N7Sn^^v2TNgW+^ zQyib)vtb2m8w85EHU0Q*PMeukOa%FadXzR|CyaMUhyJ9E0r7HZGVNl(uv9!YM#QJL z_75yzjzoe~LPC?k@*$Go&98oLKX#T~3RROijlO-1nEVn;fUoS&T!nljGbXabX`5GM zB)k)HQoVYL%=QqLiPq7-NwUe zuS{TS9j}VJIzxm#s}IzQ26B_M+4(vqP8p<7RKfC*J5p3SVLVs=yrf&<1{o9ncqhXD zh9P)?atJHzG6o-Lf!!b7s+`pFMXaTMW%gIXu1`?%9be^|2ibP_O=paY9m%Dcb^*QS zkStnpql>k7onMVxK%mi)4|_0mnQYmyAMZ&&P#O`z{uD@>XA5Jtb##?7`rc?!c<>wH zI?sVneRl0dSq&7+b550pTPCx`b@tlrj@uFf)cr*-9O^bY=y&K|a?50}W|!qMD^4{} z-X}6U_a85b9>TQNjDNT?&LE!dZnsJlUbn#^V@Ix%Bj)eizD1NdYYSy6G+`HJ+SD1R ziyg~Oxtz;}w}^YdI}|bfq5wLS^7YPHW~QtBDqf>Mv{Y&O-q>cHcnC>9v?W(7ietP+ z;Q#RTmSJ&i%hqrp1b2c53l^N1P$))nh;z=aBbWrXw$efG|t!A z`<(Obd*6HSzxAUZSaYsfRimm#jfvrNC^2tyl7Ci%9!FGnM)W)1yO#o zq3bq@1018v2zNZpRTQAw1|tY=JamS66(8n`sFCtcXkJU_r2eUY%}$Zuia8G&k!z6C&Gi}j# znm4@uw*Z%S~&8IJT)OG?G2=EDH8OX!~%(;y5 zm!fl(I4e2OGR&A0WlI?QEvfr~Nttf;bECr~8-v@Q-bK+x2g_6XOUYf*jtVOibSh{+ zm>;BX;<@s>(9QUC&&3>M6}UkPCLO|ui+IhT>u9uzbYA=QVXVPvdTK4^GkI?pqIEvE zOcjrq+gX;$&NLv*Vd@Jv(_WDEimcR1zpt&gKe9nVAW zHmlClY6bmoi)e<%NqCJl&!mRnHMH1WEj!AoMyZ+>1^(4a7}G}zaZFuWM~H) zi~87qGFSXDM}axUS^M2}3SQCm8nd$d81b`Rj5WUej+sfbgv<8Ae#Pt{GT}p>Mk&!r!zs+T*1$>Cg9!>^4Gi}+E21}3)2 zDLVS*5J9_o1S30V(9ODM<)NP;b$_jCI@2?n2Kdmd)+0)Yxi9~$%eeqt1|Z>g6J^F1 zT#}Hv28yLR3pR^mqz!|Qk^XjJO7Q+}YNwbi*|-53&vmOwU7+v)<}evXh*n2Dr!L2 zdcTz))%XI?3<6h}JtbzS{PbQk0hxI^dxRc?T_fs(Prk)VcFntlW(Kg zB>_Y3$z=+WTu73^qv=1s_?RFs9{_`@zn&d^g2{ZJvS#{2$;Um>Xr6x-YPO2;?Jy}9 zKcIzOf?zDfLU$~zMC?LhZJ6K)B7`~4=19S69?Ch z_f4g@$>hr57o*{b+W4(TTR^41bNcC~6?XZ7oNERC==5GA23Ik7bhkB<@oK}H@?1S` z6ns(UatqiL!oYXjY|Ixnpyc`T#h$i;m3OrDdc{2`tK6LNPro}&5YBR|8^@+ycSq$^ z7X~+rMc6{}@(EbK#KvA#?0jvpS0nviESOsak6WQb3SF+p^~z0%KA+9{l6GVJX(=P#o*XsHG<^f0 z*=T&%gavTgjHD|sk0xHQ^XXy863ycYT&%k-d(;JLh&)%kG%+Wxfx~>C_N=?ZD|+0U zx}8zWvfZ+wq_=q=rVZFb5;PE1nyCelle3}8L^&v&oyeA*h{ zTi6_$tMs9apq{l0Sr(bKy+3I~)vc!fMw337p48w=y#zUG(rq-BqcKM9TF95aE5rm9 z-ekbhL%53+xs=mxpdUVrnBhNqqHIHa*7&=_7DuS!oSGK0=Eb14a zZ=M3&?fsgP68rPpC*iyZ6q~Yq>oPcF$8Fca#kg&M>O(8Xa&cp~iNNTu_mORmqu@kF zWeYX*qvpDrx)Esb3v8Xxsg-UhDbP}s37`bl@9$kOgY|If)uDhql=@^msh8~g`=?sqwSwD zGF4RjUw03v7v{h>UQ6{nuA>7PVNGoZE~q~)yg$_kG{^4v4 z)cznlF1_&Eu3J&{x$jZ z6CpTe{#V&ej{a>YiN>RL=kknC*_#|R>*=t`5d4i9KNr^Qt1j7Q-^K(EOC)?^#0m~K zDCQ##e~kg&iQ4<;NMw@Kvmff)5HV!Pc=Pg1GUEq7)O~xW;lH~?tDJNN;1_*}_nQBB z@P13b7%ttRQP}v)$mzPcUgsSyS2`)*1gf~xdC*~v!7-4qt!<483@12kzpD~PR_Py2 z=e_98N%Qq8qeGyhD|$=SaAcZoLQoS$n9nSyiY|I`!34|ENQ2+_BQPx48ru&0qw9A+F92q|k+ zCrUu(7N(8=mi>Hxu0Qfv^A1pk2Zts#xYRxw_lOHPe^J_ zu}DN`gCntz_I|uq|Gn28;Ca6Aw<@ZQn-!d^?R;?7M|J~Oh=o@@EZ7iFx(k0z{rV#h z+x)G{M?ya$gfQzncPDo{{|et!59XsOu>>j>Y;O2-WJ`HP6fP>iuM`@@Xe2Sv&2;|H zjU~Kdz`y3p;Jo-=+=Za1GKh1x3h}`WSBM*hgSLn&3ERtc_39TrPia1LzS7l>E0l87 zba)>bVwEO7K*PS)WN`J`5CX%qzioK%`E-UjaPJN8Tr2({M@KV9DjCyeOEvy=m`RZ! zCU&$foAZ)k%%}3;cjjcOCpjCV@4+COT7CDHrW^rri#`51rMpG`7Ta{tEa z&J!rGhn180fV!59IMJ>q)1TA?B=D8Ch%+BJnOMirdw5(!iK;(&Takw%Tknuv+Ks2? zPBgH@F69TYrpu3go-2OEf|Vgw{&tF7d~$BWCoQ;1xzjFnwG}QyUG4}A{wnUj`?4*S zVFB3W+V<8=93Ng*@#(p+&r`t$jY~`2F7BA&OxGNu4UI<$3;YI4j19(eIKvLQ{Ue*nF*b`! z(IY^o)WYNTqR9-(BaC2IXbYbr1%0{kSPY>;-QB4kOmrb}nIE)f5&dBI>px^ z=zOlIh_3k;zBs!q`k!JWVO=bU(q@EL-yOZAQqm_n8?4%H_9zfH)=b9r{xcpJEdT6r z%1EwnB3JMIbF-EhG7L1Qo6qz;4F$=5as*%*}Z&)HnnD2)i=onqy%wZVIWVX zc4NWWmX>H~m`+fpw<=G?e7F<|gE+mUCROK%FHqmUMPD~G?7W_CZ_6t+BZeb)F#=|7w4Q=+n{`7=^=F~HQSKyS_9l63$sxnnOkQfpdeLFsk9qBVRygZqlt-(1?H-eC=$Ok zo7OLclHTUqeC{L}i{@0q@kz-Wh91hH^Px3E1TPK$b;UHS~EI zU}Q%jLT$Hj8;VZou^yXX%|cos=6(H%7D8Vr_=cHO)&ks1D_xaqi#>(HhIxTgHokc^~dN{`AfXjwpOwnGMw zJM9LvJq0li$w-E0(*xLU!!q;drK+XgePD~AT8xR`o5dy=6g29j)080iY|PgWnfOah zDMztxa;bm(3;iD={NHnM@RyCY~wsK(LXS$z^@G!qN3w*x@3jlY@w0UDAIUx8&;zj zirMzLeDjk6TuEaxGX^WZvxh+-tz()y;wSlYd9vH;9Ic*;PyBRO#SkEG944HntBD-o zZOnGhTnVdp?jc%|i>pM3qhQ(R{VK(L*{yi>xdDpae98d^R8@S&9Y946dH?3Q#U5!2KSN}bbl+P1(yi_vq98Y2R1X1{!VH?nA=E1qE%88Ku zwUzIqF5?__4XPtfl_cGUXqa1iJnD(2qIoYR|J&(pK>(|!$m8*QPEcGx6LCJJqB%8` zOhiuZ(vow4WA5c&qMJ{kwSZ@G8cqSv#Eqte>FVD})gq#Ygb;qnd;P_PYR*=VH8%w7 zoy>RG+Q^U2(gOWw8X6KW<6rYa)jmonfaXrJ(74kV51qXeSFQMO%uL`{8fFXo1hy@D z@2=hLVR$ZjZPoJujIN#LFnjiO7dyq{?s>M9tE-GFh!SwGM%cFS%AJY#zzVJ zjKG4+_joTK~m`)-W%x+7>)Ts$< zdYr%XndvoOpmZPrs0sjj1wEIa$4y?BgGgg{(r@;+d@w5!JM5&owA!-RZ&@Gsmaj8x z76#MdHzpjm4BK|H=YF*oLJhdJ9m>7^(6Cb&j=WamAdJ#nASOl}{mLVftK(BG!;t@W zpWgb1h5M1Xb&_*l>w=>;T~%=CQ7{^HJY^bzlH@Z)+>a7S=nJb1t!{~#ri%pW-Owr$ zf`HXk8Trq!f^k%!)dU^tOzqDE@m(@(-y;gx&7mq=k8if;?VIX$V}ve;#rJF+qW#_{ z3l%%XK2U*2{9~3OLXfnY*y=X`5zY=#3}m2Ij2kIynu}{M#h>bo%rhklPY8xuW$Uqa ze1sfJegYVD%r0c_Oo$ac)0SR*XEiK<+T;Vnu4X3XyFF$CIRIQR_*XAD8|+gHMf50r zH+6)ZuN7SS5DoR>U0xY>`ky=^91#yo1wGxg>1IQLt+4OJ52n=a8_E3dN}WZMsmxtA zsC-<~Pa_(G=veDNBv$iEKZfBP*P{P&Aos+$xw~=@L{l4jK@lU!3-##aYrFv8mmM+0 zX++IAHQd*A?K+NJHcTX~V<7Uzrpzb1b|MoK>Y5bMIj`P9FNVN3ixOhOo@d-r5x}d7 zxQW-fs?d(50LnKZd@o;#pGdN)lh7IBL}xv#(6tnmF@iE5D#=(&3E+Vz{4SlGS)n5G_a;eiuS(i5ceF+X)1D27< zE@}^wa)yq41O0=DC81Z%0(#8;sF7Z*CxvAfvodt&w`;# zEfySb$}S>q1aV(|uoX-vCxEBmTQ&mZj+_?iuMfuyfh#5;Pq0 zImOx`r%XPQIa%eB-#-H>)u39^9&NB=c~Coyes#D5w1d(}ew?nN-hL^FC4M0yEf|!Z z+jTemO|a71G4PcbT(vOq#;kbYBT}Qa0NAzI$Cq6opw=^eIpBTUPBxbyy0bqZ&i z1Vo&q0=&htzCQd^WOZbBzEzJjwlg5b8@WtO)m~#me&1<1PZ>sK=L2B}p3OF|%<70b z7O8NGN&;s|AqV8=f@b98q{v!N{1vsdX@G#syIHT6@=ju;eImA6mJJ}*ZtqIpFjd8y{Fs*+T_(``8i#;&pNZf4O_?6Hm^_m^wvE2 zFNJUQW2F36YG+KY%bh0Js!Tg&QY#HtlG-w!&yH6Rnx;toWiZ<-Hb4u^-@~@QSe$RW z9DCzHGh_SYxc>}i+JM+t?fk|lSI*3j7jX3{S5Wj@RB$*pRlafFdpnjc@71?wZs)Hw zA4BzWr>JxdYHGc8gxDquX+}~ei(!lt(oX)Pk!97pi>tk;+2&Uci3TE~VPZosCeOv+N(M8lrjhJ=tIYdJE+n_Lm=g%Xq7FMB}v61g9JN@Nkwh{#8E)?|$Od7gXJnHAW};nr;Y(-}3R&WryJgToTRr z5QkpJKBE{Y5p=Lv?#YefG}DC#z-0fO19nfOZo4O8?!ode>B9)Dypk@kO}`!WACK#F zfNYZCJn=uhDWMW9c=}BvB6IG;drUm`g6vk1sw%r(S2<6^k7Pd)ikV=MM*f<22NojH zUI_7`H?HmG(ry8!eCt2WQp?(wH*EQ>l7NKb(sBR6+TcN6j8^1oUw+B4TFB}c{@oR> z(2u_lQCVzDF@orF6-E4004b5Z?Z#O?OM=99C)Hd_pHxT-+E32!)LuP(q_R6@O1rq* z7>O%)tfj@gC>pktO+0DVCGReRTN{_lu{pM388N}&R&~Z84{M#NSWm^t>^{JNl%DI~ zS^y&x3+D!XW(gRmx7Y$DhF>K@3iF-yz6Fs_(dvW|&Y4NLL){n?SGK=b#Dg)6%ANNW zha35CE>w9+o&rz9xQzXk3|pswfKhb{FR^U*Ie@mIp%l@N&mcibe|CXvpaw$_%4D4O z#!N;0I9V)Mw{P0hinwzXK_oF7F`1mWtkGRGG9yTix<| zl?4E5Mh5BJ6X!KD$Hoiwi%!?W-m*5jfY>WksZH3M<8KCL=Q(aNwYm;;#-GN!G$-SMJViqx8xi-FGNs+kUL>doTBgFc2gtPF8C8UwFtjd{#8bmeRU zRo=h1tn4^;T5k^~dc4xAR%2Z1be!F%`<^IC{YwfftdZvV-zJHw^xKhA^z?NOf5!wK zK)PcfQxz&n%pJq!ZHKjg|BeI^_mqv=gSP9ox5z=%d0V;i-u2+7XE{F<#eUOC@9wbs ze5~|D=U|dfK9x#jXV?bBvGzF}drJELxl=t>+rBDv#~$ar?X zc!=-=#=1B!O?wE>*3gIII5<=~a(|?`qtGEp>3E#h$Z1c$f~VT@=fo@C!tJj}9z6kzB?FnE?)SgSOWka`pP?lKokS zZFLQF6PpKZzpAeVYMAU?n1;;b4^A@z#)oXTGc*O32uIh$>RpyPnsmtbqPF&8two96rqTlY>{q#QV}d zkISd`dLzTK;*s}FrE`@vsZ8-XfIVm4gNr~Moas)xM`Ne9rp5~LC(~=;4%l#_L*r6_ zz_P)Sd4n;HXl0+QcwLe<{W|G3BI<*!Em~UVZSVHS*q2z~n#S)%&4aFL=Z4I+S~=^P zy?cG-u*oldK_tT{85(imo5weI^Sgk%z3a@OA4i(0Q2bQLh)CB+?Z*5N(>+Xo8QS~Y z$CWd{v0-&baFbLf6=O0~wc#O}m6(t9+S;a}M=_J`ca=IZCI&{FVb<1v~$wWp_3bRKv_+*S0t?Kclhkq~FsJ2Kv2!l0(9VJn)>ZHq> zb;xqNT0Z$hDh3T-wULhH^1i0T_`zcM!1UGFK>#)_8z`H?h@S~8Fl}k~bBWR@P#=%G z#eManWidbT?Sy8gWwU@jo)}Wqua49{C z(i+!k{A1U^Q1|ii95yEcEJ~xA7%OBKFWU=cGW<+q8b3)0Ew7?G?Q#TBIbB{N{aASi z0)W5(YNr(Hj6h1Aa?99(8QkC*f_<*ZD^uLPn}brBvz391vkO?xOnfbiw=ir1llt=o zuf89bC@+M)HkZlom77(=+>q^yn^8`mxu!r4&O{gnfa1yqr@8hs-_P}w6EE<_| z-ilEI%nm}snrjep!&(RB*y=+ac{Kc8?N@v72g^P2ZNK#o=HQBtLf&2ppogS)Y{#|m zJhnzXZ&moIC)zpZ-}wj`0X&M%Tp}9YsEF9F=qTll%-?k)HE#1Vq~+92k;A%;YVyni z(@c+~h#qbRVXx7UM1k{{OLkbdM{6nTK{seSo0Mj`wANNH0GR6li;SjKtb<>RYCXa2 zR`(sXkf@PC!}ACC)ruWcvz~1iebe=0+mnYohewr)ISRN5)t}9=*sW!qVC8~lJmUQU zYf3JMLq4Vlmr^7Fiy0}>_OB(OLt8ZrXoe#S=xYfg-kNG5W9~F9?Z~ryL*RM&fpwX4 zvcm%x=_MNCf+uhcI8;mp9xQ_HcQNRCQtv$Ca}M0|&GK?9L&OkPvGX5|sS9x`6jOq> zCtcS9AK&JJ3;?T-XO-$nAPO(Q=&U8*j1Sx8b#tvag4X+s*fsHnSu=81y1&5NM~T4~ zb(WE0TN^WN^fIOshGO5=n^sj_POxt53xDCF74@H;W+-T|QS0gZ?9WAk-;Cu)kFqYc z(xg6aP=7N%GR>qD@ATeZiwgg6kO%#;*yhiOV#yzW-#nF+IC@k;RbYZxi~pgPNzvsQ z;6v3)r3H(yA4bi*w!BG`GP#h?k)qSK;ID22wE8NehG-751%vqt#}%`jOoM8}>A+3_ z3vQ4#=@*VOUdoxmkI=*Yg=)rz9l$;}U~TkQD9Rh3S@b}W>(`+|_wn0qBv!NvdGIiR z*ZZ!t!Q^$g6k7VYS1|gP1%VsDu~hHe zF#i*%>Lq*Y4e3~Fkf+)Y*p}!_8>+Y-?DNAHiTpJ4$IsWm+4%>DSHtZMT=l0F#c+WY zHwVkt9>0cN8yzw{?|2bRTuV~){v_y2_f9+@2Sq`XR;`1^qZ=3IuZ_;5#c-L9+gGYe zPX6_4BQFBElC_t!#)o}U+3qQ}a*KnQdhF&evx>&OfsVfSBsy-?O`jt2NlkX3>#a-lcjY1Ii2uQ$ZRg z{*;nO!rr=Jk){_QuHhZLT&Xibu_=&=X_tp@65-{861$bjcV7$r(si`t$fc{ptL!rC z%*J7!_m0<_$F70kuj`nxzsvcixHG2LM1}1s#MQSSI`R`oXV-jwZdK|0uoBY0+f zG`^$4z#+Q#k8fQEBa@Pn3PiAt_-jg4?^lJ5(bgM&(UX&2zK*9PjeBm0@E1C^{t%mfbb()Cck{;PZij|0yTP-k*KBGKgpz=DQ32i>(vkHFo_HC0{6zZGIMf0|Ku zXykCJp~Guk@E`w{{V0t&nYcvXuNgL?=-rtPh<#3qpm=;Fa^8>pC@(IMKl{F9cTB77 zm#N$?JoeYJexvCskblnh`Okj}&Ok!HE`GW<=I@vrQnj^_S^L0%)5xn;x2PI-w8_u& zmqFoCyWTU|PTlAk*JAoV+|v@+^<*TA8PSV!-%)Atb~Qye22;1Hvw!&WI`DUg7bGkQ zNZgM53~^1cxlX`Tzr0zsG5-c}@SkKPNNB&9;y79OqNY;yZkNujbwvb>^fjimWx@Ab zbk0&s?p5a2jl4L4HLo(gM|6}>=HUz*@7KUL6?rox1j$JY$pINt&!av5y#K_^3uXbi zfJ?ao`=eD)ov6Ws^gwxX0(yfL=+CQ?M}>`hnrFdbL?m2?o~?WPne{f&{^n$3S&yV+ z*Z0y+*{#&lf~G#;P&#R^3Z{7YCBk*h;s03!Zdr$fraOAEHP4p)`>P4TRAX7jEWZ@p z^w9v(yG)LH5u$%B_RnW<;K0=hhQ1EZ9=^8maX<0Ej$UXcZVmM(r(|WJ)nZi-8yOj! z#veRpFV*;e~GsCc^B%P=X8EStm^s^h=Org_ z%g_(nTH9MMHWvSq_3yK)dzqBkpttp8h%u7p8?`?mqi<8s;_Akdr{A6ps@q0)rl|=! zViInHFIF~$-|&g$)cJ}zHAMTZO_4uLH<{`F_~!yq3xD3|ttiOjh)y2hbv|yd#*Z!^ zHn>-P`p+Jys!*R7paoKXd`(%?5lsuG$7W1k$krZgdQOPV+_*T1Z&@52P4`-l)Fknh zwAQk%X2It->&JPCiCd8JL(hF8mlEhp7K7$_A^g8i29Ibk*qdOrbx{>N2cK?gs@Q3aA$T2k#|8#5?mhnIKm)_oO7PNodQ=WPf7CfFY#1T^b6>cZW;$cZ;qR?i(Uf zap`0IWux8bP-VK?=E}%A-=#PO%LSMh!utvlM_zxx2u8w@jN`V-af{6-gmJt zbK@m4uel8X_V%Td#JJ4kGs5{h!_qFOW z(OG=;VeX7O>6Z2_%QB*D&KYUhis^6P)~`YGbV$#VCaa%gk@IF5dVw}J)+p)$XG(^5 zyYn+)p?i?XGw4|Nd%qnCG*InvNdgzj6RN(;t^n>|pFk!;Lai!O?7%rc)(vlp+Ju{k zunm%M>CC+C_%nXr3|?)$HQ)e!=aw@*l6DAhiY!7ZmR;q?E+r5L?&Aa4zj>w(xk7eVIM^9+d{*GL3WeTn*Lrz zD->-*jR8~?$q5RgzNVKtjp*+E1M!()lek_%j|YG``Cl(Qqnh{AzMvMT+1?IaqjF(z zKRsvch_t`(a_sk2@|moq!X*o?Z66`#B};7KKO)PYa`FG~sBt4$gUj~6idC4|ep&pM z(AY~qi47n6j&$=3)D4@r6;Du83@;botn z-)c%!Sj}8dub zWpOdgs{*b#vji%jOdlyBV)ow<{>$?Ju@fI95^*EiBZ8@}3ed@`Bh>TXAE(3Y9PqPK zzsd=Z96@azFbO?(Zl*yZk;vKJh=Qs_%pB}AMzSx~KZKtgiIf(`u)aO>JhY~LbMq_F zzF}3({?(^04(^z7mDs`=Z4CNeS;9yvwt^Icu{X4$eXhbT+h>8Wv&OR-0u;@tQA}yk zBSTvN3)z)dB$~*FuH&p$F9+h&x62Lo77OzZ4M^=SoG(O|7rqA^n0w0`z-!uHnIaW1IApza$>$Bnen;d( znw#=fNuHi=LM}WzrBS7*Sxk`UJOpp%q_^8@<9FHTaNj0<6)PQQ8C`CUk+Js-iHj;J z3j#tmGiWnA{T_BEnyflWx)WZn(z=8MQ#2D*lD;yF){<+?d#-9h(hB{)tGeRcMOcJ- z@tWiP>CkPxbUl|fY;vOUbN1Qpc=U$3hq|Cq>a5s)exl|=FT{k_ezQhu_fpQ^nT;K_F_;~57e}3wD*4`Axs+xD_Vsle# z^)E?2qn$B!m^X?JJc=0}7qQD<6?OX1kr8M%BK=*k@f#DsdcI zh};L{l^c~dCVlNsM4|m-NOrFg0F3p@fJ#AcWv(m6VHWA&tpJu9*CV!o(3<;*B zm4uOS8&m_MzMrs-17SgO!A> zHM$T2?0!dv4*rsEPbExFFoFo~F*G5G(j9jL4D?!Zezcq3sPm2Z2|6}K9b)s-mlRKy z^JlAHh(ATnfefXNs@{4s!c>A%neC*3tUD(xG+cc$MOsc|$+IHa?n?~?Y;bbYs_0j& zTj<_iQ}hRwh`7Qzwha57t3zRhV(T5lH4mC(4(-7YDJ9inu4NJE*o2NZVTN{n;P^rC z>!A(Lsm5&o4!*u$)6YHamNl1k-|0)CprikBG}}c;`?C$tt@+doR{=NmZU^uHfFTeM zkMx5C*ZCj!;7B=OA^i<)h#ZsR7Dj*Po=riJlk4Pt!Jvn9)c?Cz|2WJslGN{?L)fu_ zR3h3+I6TUE1aRU;EfU{y$=4P~a-ofDgc)0Sm_EZjVMl?nqzZN==LxQ-W21nQeOvK) zYcUI0WRsG05WJgiTwPaH(O#)g1D zL(bQVqf+*&@l~nXfNQoLDuJS!U!q9VxHO1CXS`yz)gIHfCXq}1v-f`bW@EbuT6>8# z46S~lnStnsLOHh%WU>D$@&0#n|2t=}dx?lA>e{kuUsBD^%{DA9F=E7^IrY^9vi+4& z6BI0e+74E$OV*7K1xx8Ui#)YRJFhsdc6;P0Q)?d|4c8r<3U&JIxxhy`T(hx$T zdHj_Jv)A$L=Td2(L?{N2hq@;>2;jVX15$ObU8x!t+1sxh{p{R$u6k_U#wFf5nrbSj z-s%oINCHfc>2jTYJBA$9*;^XotAZ(m)=z3)xf{n43kKjh!lLg0kD5;M5c|OXq0stv zuvFJtHWSlZQ=<;^GbN`*4-0Wv(fG2Dgb@Wu^rmgw$`SA&^|WTP(7JEW*fT<$ngogB zY2DdErjXPPjI9`gxR*yQ1*k+PQ?>`N4vE51KP~_f0Hm0D19vU8oOL0PxA*S1hVtBA z<$f)(A|myu|7$dcM=IRUh&p&p26R1w0)r)D%n{1%ATu*1G?0Dg)l>Y|H{;MTO(c%)W znia!5KPaKM2n@1y3|ptU(Odnz$Y(+DgiE3ai3qpitN66|D!|Yg`%WizY#JCcymxoKib5-jO0$tF0tNpq1>PF|gnvQyoE{PF;qxg+g4nd#hMtg~_V;L$318d0= zBk=-xMyFz=OYp;GTuSZOueb7-uUlmO3>(yTC7K&d|fz5$gR1ZW1Yv7N}D_5LLawDb_8NA7#qF4RrYJ_-M@D}U;;Zr{ryp9)xE12%D z(jDk)hNZ{&02y|fyvL;xU6>w>n%pqoD^U(IYy?t_bK_yvoqnLd$%;>PX<2} zNqHq!*YrblL#-USlEVIXRmsZkAaDBk@n9bm z4#o_M8S4X2!!9?BOVI*y17Eevsw9%7!ArhIu|Q$iVX3G;&bvyYv6oG2s~&ICon`^U z^pu|G@sGoNHv|103&f8dN+WkhX_p7D_uZ{$SN3`UBt8Kr4j_xwpzB3}`j)QNLV(d) zXQ;NR#f2X_d*D>f?%MwT8wAZV%ey($BLCT6O7PS1vl1W!;DfjPzRIiG=S6BZrnEse zjrkXGW#XzBQ4IgDz@fo`OBn3gHr+ju+%ZMhv!${*X{6`{z0Aj+U6 z!4MbBQfZYhRjE0iOa6A_W`^x8TG9e@xPMM&3!~6{x1=ZJ>v&<4R{OHtE`=_fjG`3h zy~xnh#XkoR}#^Tl5T0lh3>@Xt=5;~K=Q^^|6a5BgUv1eHCW{>Vc+Ec zVK2`Rbr3c16jE`6(?fqSaLY4|CI@>8W z2P$R6gPoeWql3VwVCnj#I8udSas37AV5szc`$g*25x*J@wX*^|b%3Idvb+}ZuZ|Ks zuqjA+dr2_E?%52HI*#n@(-j|x%K3L;^Kao zD|G!8IOTV9b$iyKL77>)Ap{?1Yij zm{5!dT%XC4R@^+6ehvfjShJ@5e*D0dS$ref!B@?NwTuy^j0Ldz12u{D$L2j^^tVbb ztv7;B-fZ#z9GSnU$92ad{kxF%zeWoSJXH4ABqSh5?ZDQmT=NXqq$%2QozXq`PidiWa z!{xCBvapF>PS&&odC9-R9z%9S+q^mJ4FEZ$b0pkOM&!?T`m1HKh3el{3H=lWe}yl3 zk6^)qR>&he^Kp}Me?y7u%WwnvYW>8M1o4KD$o^lo>i_MN@{k6Xp%&?3@0tp}Y{QoU zulaJl^lurFp;yC5KCfQr<}XcVHnwpe{&uu~gfb%-QG+y_ zObL0F{Vw5fLp(7@0a#-4c395{!`v_2Q66EoTdepQrZVp>)c(!fO~(Z` zlSC)vJc0L;inx*xj-u9=-09c`Cr%s^em7$(pRi#GhtMzG&YOfBC7?wza)BW_iD0F}z?JxjGCEe%_HIq?ag`m{nx$ zGBJ0y&g}9898V{KRvFRx{->`W?1vxmMR1DE<~U~jEm{+l6D+ocukT}M$>g=e%5^lh zBM73f+I$u|ZACMZgSD*`Ta8)d;Rf3{=R5A#a{%8=77qxf>as*=qN=BlnUO>?fy8@OV;`u@;72eMqhxcjN)OgXG9c#s{GZ?^wWK2bsjT}GBV zpr=uUd3R%3Ynp)h`SzCjy_^a1oy5*!i5f1l(3leTHg~%f7Jd>n9IqcoK*~In0*n=a4?D(q-HBG8oAN^Os@3ol9wNz`JjsuN6M~?@4l~l~(%~T6b z!dQZ>74w0d0$i~BPe$y;F18$bvn@sn`(l@$f;~N-D8n2AbGl~Y<&oh8P&EY7>Fwic znKmcqjQHyIiy4Sa&gxFd{Ka(#IvSiB!xSH%q#}9?oo}qY0lP4Bu+5(9qnbV|>CXJ@ z9#;>w$*;op`k$+WNKEiB3dOOl$Nn%?~K@-9_s|7TBrY*vTSbtr8-19mi)|LQiIfKi6Xswjhf1= zt8d3I#Eh7=kXwz?>P?fwDiJdq3x5>`-^D>lG0*NO0i5{acwFFc@Y-7TxP)T({`i)1 z6aU#fY$>%dB`HNq^F454Osv3`F(I>-?lSQ9@|9WUcS`tnNCn$^x7ov+zUoc<7ki8i z!oe_D%iebr_;nNhl6g#Mo+qnuHKabZ-oqeOQg!kK zB1y<+WbL_n5xmX(%3HXYj?u05lEl3=%UBAl&!5QI_{PO%yp~8o&)+Kqz`LYrtn;^Z`zAQsbQ>~-MrMt4o?jC4@%9+@-1vM$;o}3^5moJCT8jF z@4seckZx7?JEsUdRutETckc4uq5%BiK`Lmc$Vg1;i4%mEhxgs##}4nPOt2+TQ5^Nhu6g=4SFH_$vqv)(GRYt7p~tr+(m1*)*$%uK0F~GOQ!!nzMeat%K!U_5Fupm zEi202AuA&@n~*)S_Y9#BB75(wtnA93*R|I*vaWgUYx_OY`g}iqe*fIpbJzPh=e*B; zpK~5f2c-k0Cup5hvqH5M1nT@xm9iGzy-xM9B6U27Gd^^VU#kdMVVq+|__te$z_PIp!^+`TA(R09b z?!NGJs4ci*!J{qzz@yEEU-fzBrkCrXRY-_~E)G3R@mrnHo-X~P9!$T*z&!c(L>*aqyxReDw=MARjEzfhZggP zQhFLonJ|b@u#|{2En1H)Bt92|p+xO9GQcX}n=JGB2_T*MEKqGc6GNYm-6`xDk8X`$ z?!6Z$?4xF7cF+EYL;j&u{chmD8WVK~`7t>j3~zL{sHE9KKBf+o_ZV};*DTlU-Cdf7 zlI}UbpoCi>MXTa_;0`XE&lm7n}G*w(;2<9FtWXm`N!esvXU4*4kcHrh~!mj&76E#lJv2Y#euEW2NE92 zaMA`!1y$9x9-r(u5AvjXi6)K|71ZG9hSa*Q6mYNvWhyiy2y(`=YJ<6|A#%^<7WX7< z$aU9-87MNuQFeu7aa!A2!D;hBD%I0oM<)uVU1ljVnB+D2S$VH^oMCAfUWfFH8xwlg zA|L+kWCIS0ygViK^_3Aq++;^X{2CSo``CoMijGGdq;%DGFLfR<$DO;`vy0gijhxvL z>Y&BS*+DuBvvzBdhD`XicuZ+u72g;%NyJfI_Ni&ERZhpzS>9KUf^{sGZq=_mx3`;h z*m~tS(NLBYivC(Wz=4A{S=3$`@!dN$rLZ2y+TCMxC+%0>$3l)G!X$Se0p`(HGzM*b zxjG8Gmb9l}dOtad9>%L?E)|%_*5L#e3x46HhQ@C|?)3Lj%6uZ#;~A?tK=Y{<^w{Zgff(Xe@fOzg zAD-T_fJdj~GqrV_v?WC*wO;p5zeab^SJesclNR%s!J0a)BIg;wLb{0Kp(ytQp-=^p zKJ301b{F}{*dRO{n6dC=F85pKzOz2vVsrBO4Ru_u~ z?1ol0cvtzi>uo2PWqoyYtKH7DO2qc8yo*EhJs)Ohsn!rEYL3=R%0-3AsCKA@ z{x#$<>q2bPAETDY(5>dB>$fhk1E+s|c9;KYn}ekTmgBji{|dg1Qy@fvjsUSMqL&UKfJ@PX3_Z*L*10a=LY*vE}F4?X2aGx;Sp+2mcHpd zZmqC3627xlKS$&E2~ za|&`+^^u975=fr)0V?7Y%A-;257g zVsCM?E2!wXj#^?v%GuB+6kOLOR|U47g5>pfI|UKHT)apW3V@~rW;2||EYB>0kv|IZ zm>=1>24*T0eG$eVNHiHZQzQ(40;LR@xeO3B>jJhNzHQ;8LU_dI_c%%%&b zQ>AJcG;uxb+P5LMAL!XNTpo;b@SdNaFoTUeD`0#vIK9Dkw@WI*5xJ{dglL7yar4!D zgB6wg{+X>A2?#m-s*OSok)On@rAmn@dKoyE#_If zv7_B*97SiQ`SyNU-mdT_f^!9*b8e||`bmxRGXks&-HhS5mWFcJTv|q8FtSGU;L3u% z&%oCi?+hpAIHu-w(<&?RrDhjJr%b1FaH{ zPmYHC;#35$1$OVzCi5cDmL{_A-BJ^0W-`c`U`}2Ydh^(F8szCM0m(+T!%~#Od9fu&Um%thnwnpnKmQC&i)%026;z&gK~3P=HWU-IKq4D`Y!_)V>fB z+Mgv0vX7FPonCTLa38RnYY|I1HW=Ya9Ryi5S?}I3dFtxcm(NtFMnX>S!?iI}C#4(c z@i(WhKMSeAo9}hn;B7&Rjfj{v;zLSvUvs;#D( z?i%0Gk&El}9$xlMwEFHwMIqN*(|479a*=yS`EYg15)32ntp10(oi!xXlA^b~5iS;;0|CKvi9EVr;-K8+_OC1YdFR&42Msy+NxSDuPR z4UxWQR!_X}rk}Z1sjh!NLo!FG_ZgV*F;;e*`>EYf{>a9Lp8L7T;SfpC^rAqO)xz8K zdJ%R-VvY%H3H^gnPxrMNsmcOiZo|W-(=D!Bya!0Nt0UVJ$KW_!@xjdowQi%o);Bz$ z^LvGnML;mNl3GLh*mjOGx4EZbFr+cQ=H;;?^dYk3;uLdWUj5fT%Xg)ps3MDR3};8U z5uvo`pBvD(wtZq6>1vq5Lg}S5V4E~?g?Fj)4b=@XG#EKAkS(B%sjPfvW4N=vXmlrr zF#Lrp!_*4W^NXsdXzxwA*DJ?XBV_D(aIWu10`|NlNygr!mVu`y5ww6 zq|RYC+@Y;-Mh*^{@m!d%k@Qk!iMgIbZnGFj(6O58RWZ3EP~AxSAXS0Eq5r8o&J-LY zE4Z1N)Tv;3)-AO~d`e_%Zw)W?DHrG{yeJX6jbZ~|r9LsO263qFPRl70?^rzVq-c6_ z@kLxFhx94X`_|a;ET|R@{x|PAtrJbcm{OMUMXm{jBE8XJ4f}Ze~+@}yWi_f~%H^Xiq)G!*($Lecy}y3 zpdcPqy}3LU%TgP$M~~j`?U76%qkc3WJz(8CJe&8t0nUC6c^(Z+B(aIheDg4^NU(nE zz#+n|_#qJ4|J&JoAcL?uNhV~jF^zDSg)LKDGF#X-P|_r8I!kB69||_|kA3*Ne9%XQ?55wh^j_3=tbdu-P*=XzZaN^wqB7M|0S8d!^%V_4x!OB^0I=0y}nkHm0rw3ZQ>=}yDj>#r%>4_zHrBUHD_&Ig&?Pr8sTxVu6>FJs*@V4<1uww-6(aDox5+>27z9? zJkX7bq@;wUY8^N8keQ9uwl|gJ2+mRvoCmAA$8L^phh zL1GjgyDncq_s#d{G%P_hmXBF<-8ZZq!D>9)W*CXCwZ4)SX4C8y?6%cfLYsffu!u$z zh*CCmiXdP69e5|iit2dQJAXw!I;mVtz`u#Ppi;QrC0g4Uo^Y^R4RPqO_AzO&ww(S- z__%I^O3vBwfh(b>_)ep8Xe~+3Us{B8w*~iX5Ye* z9?gEeq~_-c+QkUe;9VW!($|d1FH#;DxK(KM%!nzReLc@y&uzSOu5_@DU07js`h|!l zFJlRPSgR}4ulX-2z2=ugYrv`I zg~Y~GoFGs~9}tyMP*bz-G*qF_Tg^aEM^rG=#8XP%da`psc(D7Sy_CcEv6aqnD;feG zT&tx=Ot&dNXs&zM%Y@OB=!TxWmaVtmoLfrz)=jBoi^(&HT*;0{j^J9!D?{M?>GNWGIgz(ck#(0iPeScaeoXIj`X#Fh63OU6`)1 zDA55?b)F^HHhvhojkYrDZN$D&EEJJ;C+s4x%v@O^Rd5Y#i*8&4v|K4!ohMOX9Eoyv zTbjAZYCWPHzAXNv75X%+`qWNIm-Z*=iPy_YXXD}>*F$onR<^J&G>azs@9@ls!+&pZ)YAEc-V`CVUPcta=;IBjVo){~Yh_<0^OXMiQ(A{$GUlDkOCEp7wqPJXk` z&r369pah>MKbV98{r4$?lDbx#gQUhmnu5Z%2z#}joWA<%tCtIWxlYTQ4Tv|h-S5C9g>85u({wEL7M>e^{Id|a~zDqEz9NKBb&w3rB7Tt*Hq$@rp zr=*t34~G_kj&%-L0C@nBd0CB>nM51P&G-e}I#Mz=7Pdt@9EqvjyLV7E^N~qovUOKb zh^)e&96e=mZyy?G!UOt9u4b+YvQODJLw5VJV#g@vs0nW`DK`Vx>+dD5L>1bmuVW@- ztoe815s+uV_1!`@8xIie`N<}V(PTP}g@I>LX@>yWrQiDZ=ViYH61KE0HP!nAcIj&2Ien?t!5U~eqe$?T*AW1sxo zoCVNcb^HwR5=3||rrZMK^YbbzNx0BCXR=T0KH#qsV9`Qc;o{z5ou!*zDCC*%-d@|A zxZ`8_I})RXHn_kQtP3$(z1v&bnb?HIv~%^LBZcg`$FNDWZ-ch|v$#QPJVdc3-beB^ zmKbY$D#V1`lz%;WCa$@Lxbo%{p>5??F5NGOQYq3F1IYyjnOQbxKbq&s4ldE61QJat zSjWU%+8cURK#72i9l(1r6=scPE<2SjQ&QU@A$o}nYbJHVZkr`G=xwS&H)rZRf@_&g zjGu!cDk;N&fwrk#HnbRI3s&Iw!V}tRDRi9LdOICTG~xuEdZ$3<)Ob0zB4w}|a*=1~ zz4xZ3aJYA(VfiTNE8xpm+&U=RT4)iFL7cG&U3LS(+@VZdg^=8xshw(}Ey7!TM~)U? z{={I*Ci!?8UFJ0HNMFzH5o;&QR|m@*+zY^P2bV zDyJFUOZ!#-U;`N9WdT1@djz>VPO{*$2iZK`SqI6rs*@{giqjk)NVs=&YG=DhFm}bY zS@2Dgtp*uDUi*{8&)kj~V9Ms^A2zwP?^Pax!%Ra4xH+HtCoAiq;y>aaXt?dM4^+>3m#C@ zWvljPZaUXMn@3Z?1S+x3b9ch|3%RC@BsFC?8n!wbZaCE3n~Sov;fi4qbc_s`^Qds* zl>DNLCDbe44+oEQ`U{f7g%5DD?bCGRgE7fz2?SOLlcQ5FJA5QKGd_o((kQ7E;V}`kep)_I zYW+2nT?y#73Ub2nEMjEW7-?;7kKXGa&IPLH2P#f%21{;QXs&u}XWCYJJ@?twPdLwq zi&kktfyS%s%VblX(d6?4?m2v?Xy=)1Qwn1E=Lh1pR^yC9v1EeFmG71bBHn}zc6Iwt zZsaUe#4Ghm>N7qaMQQgU9!q&R;hIPf7v}%Ln!-+eleO0*K?1;XFpWarXz^ed9e%8($lr$PZs3*j1X$n)Y3xhRB6u+ir`62mSx7j zNH2<;hN|cvNq2Yq3$o3ZG_{ms{`Q6cFa$tv?T0sWw04+3sSA|P*R;xyRy_c(tk8Fb z+<)>h+h$+#VtTuaDTbHQ8XW#}767E8cPWQYQsLO3DH@YE^P-1%mk4MMFPBx+w%wJ0 zQ#`29`g{n40lC_4-j4AiTJkv111=W#&DA@={5^P~B+aTG8;_b*GJEjOte~^*hMvoPRc#k*3Ift-C@Ul@IGFGuezEfCfsGW63bS3#W9zQ6hJn&YsW%^4U2+2FM(krv!x2 z2_8BOjEOg~?(_=^OWB%VObcB$@5fNpmTOgTCpBs5A&y$cvZu%82#Eq=wX()ZJ=R2w zr4|sM0mHG7E3H$Tn_u$mj)x~t)t#d?zBe5HC@CD_Gm(d0LB6s!%EGW>&e~kvJx}M5 z;gJ(?0tfp{yQa{7(owk?tiiZO>Ns^TifWCnbN*mnBlTD?n-1M4*GN(D9S$b^EvF*y?W*w&(CnnEv{ z(mjxQ1|i6Ka^6^PVN!p#b?M>aGPjM;u6DZ~SOm8xj-shuXSuy4`XdPM>&G zSBUi1X8d_>d|(@20LccL)KN%h((Gj$>Uo1(1)qykWlf5ZVu?wjbIf2iNu~Ly*m#BI ziTcDxs<<6zYd8z>w%ba`bd3i^*OGy=!)6GJUtcmQCFGM$Hs_RwwIb!yL15y}>Qp5| z<(#uL$dp63+9G~LrM7A#^31q+zftN|PD}+xu?srT@uafWe)lpIDreI>_A+^OfT`=Q zlvqW^$jAETvX6AQ8(&4{#oNaBAQM2fcPbs!c;0@sOu8!U^7Y0ahU3>Iwh7?SNsV6* zTKW;(J*1;-uDKW8IrXK|oQ;0;Gb7U_!NC zDWjhuNnVj}Pe?eW`<6QsKJJ^|mSL1H-G*4d?);PMe}!mZ8edWOJwbIdrYp~rG7Hf( zEAgS0zDj`=Z?UMEEEZ4SoxkngB^+k{myYQd6tdhO4U*V?m@iPXMi1iqh4Gy$E1SLl z2KAK%$q)lftC?#||D!A5Lz|AO+*Wz6a?Z#vzMZ+e+A|BE^L z-%l&CfxrykYz+Co(D-M-N?da31;NW&<9~TU|GVO!;P{HN0?uFwGO@GYU%~z7;z037 z8#6%hc`vIM&;PN^fBsns9l?_I;0xQ&UrRLj3fT8i(#Nt$rAixDF0jeCZgm_cwVdiqsQ`pfd^W9>j3KP zD}-PF!MViBl=lA65wM2x`mjqh6L&F{n4Q)Cw=JSv2uK5kZ!fE5E}1c{?54ycY{(Ex z*fW^B|A*`0wjcU=uf~G?`{tLs{mLHrf95HI#O@C?{Lp{}l3CPcUH1hzv$+NnHmW8& z0Gsr^+vV?T0H0DzekNtQB_{AQ#zKt~eTf8K-0OKRjt!}_zWy$PM7)?RvDs-SkKq5~ z8|;c}?pY}EL1e!c3iS1AYd7{Vy8E_>8gF>mhs>r?^ow!9#r(HdKezBNT#M}tpw+DK z`udOW0J{3SXQBsmOBVO8bsU`EU(n&rr80czV1+a&KL1MV=k5NDpu~G%hi)JErtw|f z&aWR$;wiSSLeEOtM-mVQgz3>kdDI-KubIBwe}UtNfXXZ}o*^`jycAP<6>8*U30@cuP+yFyR`HEUk; z2d-wSh{F%--mI=uZyOhc(7Y!P!NQ&RF-hy+t`4LK zmr=e8r@VBU)(n*1ar2f(!SDhAsUZb6DcOHhh76!g2@R$54;v|wEn3-OtD1sL{NH8) zkP_4|fG~!JlG#65?g1BqPGbKM`HLj>zoi&1@$7#O+{(5mg01h?cW@FSMX?R1C_}la zKKG~I4RXP1V6yn#T>W$5pIo4%2;e!2`vCK=fz-dZ5KINAK}SIaGrAv!=KMxg~gZO|cF&8=Ky*i3AlSKs2yl7w&(&E+l z3Blvf0-K@R-={OezygCYXY4UZB<8&dTD=0--q)?o!wul|q=iFDDj z`!`9*sN~sRQ1g;gVIe16O_cZ>%#@gPyv3OQ=4xrbd#LsA zmNTeZ0s>-LzZpVA#$c%KBI|$9@?V#K@sf@(ao;M%e(YUBvMN?8`<(#ilU}oufa?t_kt1p2PQY5gCpsE8NWI?k$e}Wi<)A6^+ z>bqtGRzX60N|VP*WhtxtOc3HZT%+ZMC3wzlJzb^U&9fg^t|%1CIiP}pk*PpJyd&x^ zh?273ZVt(apL_r1`9y`4g1V(iO#6yGa-BeBkHvE{#YFXZ1e5{o=O&S@I()w3Q**xV z{kKpJP(a+=a&lsnLf3fk03)+Xe{Y@=Od*L`Ta_K(Cw>1(uq!SdO%IFu{FQDdgA2 zPT5>9(l}T&<(XPkCRfL?>`@{OQErHE9Zrbh)rKa#nTDp9OUVC?jjtqdRpy!lpeY@* zNS|-{>S=*2yb>Ru(p+?kAFpZrJ)iwk$NuC?(P%u;h&}p)(p2YfqN%2Wr=JiW?2bwb zR~udbu3#QGA*__?4r4*yhp{CVG%j1z6_z}yp8fX$6m~vhud78>Sv)>*%Cq!?GJ4sM zvnNG@>YQqm-0=lP(m56m&kCxfy$~~XFY%$)0h9)+kMG0r`oqJgt5MNKYMOdBnf8fq z22`ToIgJAo0)$xk^7v|uo_&x_ww^S8f&tQRJW-wFJkH9a>Y(&mWMAB{ViaQt7Esr*14P=xF;yhG?UkeM`&a*+ap~Z$~4;6{a%?cUcRSfUH+} zLaqvIlaF?(?qEH4KhZg|cXO)_i~GAi5j{hnWe7Xw!PSnQ>JM zcKkh2l{9b0f9e+rf6-y&&E{vJX3AgLWVt2JVY&OP3w`ggh0qGzh#XMUk>us{>Y9;~Pf!g0kl=tg6R(dBcJRRJi}o)I;>W|@ zaf*E2*K~PTjb&wD^TasRK`zC8PxG2J=lWAnd_HdRaQLSe-E0Ym3j$htO?IcVG-m6_ zxt4{~hfwW=lXiPnn02}jjLq?+38aAtJ>F1=3-i|glr(*|7o7KLOmxQiGJAK6meLkM zZKm3C9My=fO^3Dc!!o2`8g2NxhJL2a7q30^_dV*Na&zeCQ3=uG#3W}7FYo_Ti6xYZ z4#&BpWr(~jg=~4);s$MdtlFphJ%xyGIDT;~Yk?tn&y@m=@~?yuHt#*FYGdMAd5jY` z5vqepGA_51pJ7H(qYF(US`PpkzDl1x(a{UC8D$`9Yxq<#g)J?zJ?71IV*vNtJoN20 zP=1KtyEkm!Jz#WPOv0v&I6EOLg3j}rOtKwobFK0v(z#T!a179b;s%)>(;ycp<#|Ku z{d#mT2AxoW+@5xSGgcg~=)pXjvZ2S^EPE;WPS~$<4EP(VN9X*)zv|8_Yb$$dSr(1f zbn7V`?1+2P*`U=}n{?f&wP{o)0P4>FL|pU%T8G^xZe2UoEAo~A`lkDeuO}58s#Oi% z!zrhf@Bn<-5TcO=+>jorSRrc8M={b1zmYO|oy&Xf_1K$%S)?NI?# zx26b5g*_2_2UKqP!Jd(Od#;5Gc8S<^+{38B*qyF&ik%6PhMCy{-CI;eipMFN$NR^N zK$SUA^~ELx-Z$?6dv$b)xARmk5J|uv;78!c6Lkfm%lF<`22O~e$g2W^I%lrKqtHnL zqVDNQsF!tz)&~+adSj=I3}WO3^oPn}Hh8IhDid1-s8Z$#@78q{CF?X)j=m(zPOs!q zB7rTlBz~y$A07)OBC@f<9$rr%`5q0;^Jl@AUIq}lb=d0eB*vZM(>M8b+8XX8zF%16 z;XEpO?0r9arY{l^7tm6llQJ5IfawXhmhbt1Wm(yq10wi#C0Ip(sT%I{nM431_vcDU zMI{Os>D0wHp1&Y3(rkJ+;A-QrqU*g4HRRH}%_KC*E(F8#Qj75^jTAm#WzeekOy*oZ zOr!C*E1vFwd1Nz|A4^o&ieqP|mwZtl8(c7GWB=q!?x0W33_)?4xFp?BgM$FSOUt&S z1V}-v0jS<)AVTyWFSs?q&vL0+x9(EDFq*HF)e9T0|L86`JUXN!=k+eKN=4u`h!&V5 z%x76AaBvw%VLKs)+ov!j+j5|p<6T^=Lr{{E)EX|fXZDI@xD$<4c+g}}#r*oe^goOv zUhz*;j-fuk(?9^LjI+$7LAY}}OXl{ITo3d!EzZ7bq{kU#^m} zsl5(E3E1bD0JR`I`^q9a!^PTE&Z(K_3ySHaKg-UPHt!gQ~%&;J;di-f`^bf|3 zP&Dt^K0hsvSyOD-%Gtv@R3X2A(&sfaHMQM64{9Kv^xO%o#_``1avAp?qddzCfQRem zY9wfJciNWJ$nQgmr-}lmgHt>uPyIx{>dc}MSdWj{mXP5tX^b`$?N5E%NUVF7+jIzn zQwuHo>^3dGChTcv>#|#{FCk|>P6fwJo*!ii?(A8XJ@fwfESa-Om+fTb2#w}CsoRzw z(h3KiI<{yUFJdRyZ71bh3@t=OIe0Q3o>Pa_{+c~ae6K6SVOW2Rzhwp}Ueg}!Uz;)8KO%d;zjLLS$xCN`w0d5U>Qw>SE>nR+T5XZowmv`lNea zFJXQw{(FN#dj{m`-fx@T54Rr2#?83SM2Q`LAc{75tS0%|K*b~X!Gp@yDgo8QhV(ME zoRQ&22k(yR-%j_zyec@I6&y{V6tt(ut3_1qd!%Ri%laasy)(KZ*2<@wFZU(u7=liG z>UO~|v4z}sYH!K!^y8M$_AHVMJ>LiIlO*Ck+&erzKgO!=9B!(=S7q6_`mR_CJN*2K z`1-X=uyGO2S=BKCiBF7Ri7U0qWYAX z#s(uxm{;5&lhH6KoCTHAS9BX$8D-Gjc9kZO)$n*3zgQx$&cU$ZgFSqQcpt^Yf)_5W z==jjF@B#DwA3OYOuRF?pH+?f^(pOx}kCTbJw-9sI-ZpX+Gwj<9+w+lentvUMR7VNF z?)P?C2n|`h83LRzIhlTf5ZJ^ionsB_EDh#9emqufwRrr}TIiyxdoji!sq^Kw5l$bt zVQi3!MzTlb?Nt0nlR{ z8>~D9+=K)KDWfB=WyT9dHspC(95ttFEK39 zMDjFRrQQ`-;REm6ZC;Y(8sfiR?$!Hx2QTfYOHAjlxLBT%y=hLhny1M@A85MRwUn|d zeqmH-yi(GHD*y{!yPzt3gi33~plxL`x4abE9zE70ayXJtGolQ)Isdwu8b_c9neb@f zw{dm#3aFANGlvaMaeCT1d8JQogzC;D(@Tsp+{#PS1*I2vzbi30S_Lg^z~f9E>pVpS zGJ^}E_wJpp#Ewu|E2(LwY&wQh`T8y*J3dV!H72N@0DtDMAqCTbcW6^@3q_4D_n%}p z-YqXz)=xZ|&dR;_!DGoaQ*dz3QEq&U>22MfwH7D|nz^@N{|`3(vAJvLP{Zl{x{A;c z2Wr^Jjan@_(wk44zG;r!^T{`k#ai0?hDzG#3QD4Igr3(i=+xC@3K)7o``6J>hTAIg zLmH-o$+24A;M{wVMd5Da7SCQnb=-eKV5tq?0X-+`bcJsB^`%(ZfNB6SbMedC<4L7F zURt5R7NP-KBWUx(CE=1FnX~wD&HNIRl6WM~;nn3^!77MC8{c3MtDFoK^}oT4Buk$* zlfB|%aSYK~Ak*%YeKv(+8n;SRO&-G%=(`zmUUO8gOxkHR%Du0Wl`%yi;ARF}t__(t zYF94mN#Ph1U>W9UD9J4mac1Ofa&a=T@_=@6-yfW@gdSy2h4YYTgwHJN zav~gtL~~7(xP2x@Lx?F|UoKeJVHV{34WAJH&36DVI^(=*R0(S|Dp!Hr&$s;cekNY$ z3t!IdF&7XSop9c8^UI5^Y9ATxa|$mwM!Z%vSCWv~jPBx>cKvXj!9ssqp*T0kJXbP8 zPy&Z$P-2s39NAK~mwG?~%=___-F6tk1`Ay1_*s|b!Ssd$6P(0k`LnNny`EwgFK%0e z+NOowBAyXG`+J`Ih16^5N5R^wx$;qm=~GTv7vX&^Pp${m#hzU%5r1C=f0a`g^{;$x zlhUEd4z8{R9t%ajnh?f(+Lutxqc;b})g@XOs%B4k}=sjd6}5Hnv066v66 znB|wgZ#t!6yvr<+b{>f@g}t@?DK4ZQQZ%v-%vkc^tOEHp)TaufO)7)1k)#w(Fl++x ztllWh*4RC(-SVl`S>&0sTpl<;v7RMStv_LN#w(&e(yrI8F+ROT*?FzgW7ca3z+|QjI)=ahuaJp{`J&yr_h_#+cf_=>F z)(uZusxp~#Q|-(iZjnJ!H&udna>-om2AFD5E-rLjwZ5KX#TF@yJ-?2Cw9XQV2Md4w zwwaD*=E30oz2@?xxD_vS4?UUAo7!B1QxIJ}GN!_&2r7vDpcx+CFVhLg-fQ+*`!HA& z+q=*vL8?aBnVz6j5_R#BK!^vZ_1oF1r1E)UVz%eX^>6Q$ZBJ{J9$w0U-)-a!*hmI! z;!*wQM-13m+7)F^inb6VK5w_pVV7?_D#cC5Bf&TrfzR6M<@01vTQVC4GZ~=Er>oz} zO+dQ%5{OQa#53l0iVXh+Nw7-Lndi|yoX$JN5#n)fI&)DA2s##5mZxS`_3>L27#)HB z)}kTIFy?xxph$%^XT4A^6~Nuv$kIX8TCYoEqe7>lG=Ss$mR-qzeH=_dQr ztN0v?*l53fwyyY1*i2?(RY1*le}{P!KlkRC=6AoNhZWna8sBU5`R2qz_1@;`ba)++ zr1mz&B6Y3$Qm~(X-u( z(q_H6-`?}9Ood_Iky@OE8ic>7{8o3!xgxX{Ikc`-3lD>x?{$vp$R| zAETRdbGySki;j-F3Ez{mrL)SNbp2MtgM$exZ^uNN^!YSLu36s5VW?m5h6LtHJG}YQ z3sk>XC3vvD2KXJ;g6C6f8RBM{Y|NuJG1)xRaaFGJtceS@t5_)C2*_e`wK+L-s?%kP zkGq9dY??WcuuF?XyE8w#&LvP7#j4 zuybm6#urUm6t#}nGNdqtd5C#Rt=G#KkXKat!=kNM@ zKlcA(u$)>Ut%??zA=nft9tz>-M$#eiWQ z*vB79*~yNUmIP_&P^jF^Nd`F%Gp%^*owO1L@L%Q9{KHvUx?|Uu#EeWz zxRdOl@Ji?;Xp$oK&D|;E&L&^-TCX7D30;&8{;^?kz$`8c*IPhZw%^u3k`;nK=#)Q6 z(4O4Yhf+^HsRJHaDt~-@Vj^y2`IUlx;rI~nj23oxO{LiMo60mtyhdW~rFs>^7x@9k z2>8r+k?S23m#FZRZfSVBWkm@U{AN7VXw4-A&uVv~M{1hmxjf^Ye^|xHbl=qnm7eW8 z7>a$H4@QN93)3gqHGH0yc%!Rd9Q)XZBh7eHtN}k65CRp569ose04M z3D?~}PY`*{<9`2%FcLQ7$7`^0SN1M2UTG%)oO%$jri6qv3}$;KLiH8AgN z%PQPtXIsfQM=UZMhn*_*C&>Zlx#}^lW*()`;7vEsS($6BCzrE3>_R~AVQM|@B=@l_ zt@LQ%f{RBc&z(i_Ykt%>w^CTSxW(&ooekNq@WRKHCPFdQkn#!>oT9G_#-Cd^T;=Mq z@dmR!jNU^1hh$vyqe9evxJTs?*0}PXLuyJY3CF|cQ;F2WLg8@hM2l9+oE*-~(o3oD zMM5309+_1oxU?&u`w-n^zXZ#_mw%p^L*6XAJ-SM7X&icKNPqjfPeng7`q{c=A9~wK zeiK}+)?wxBx79Pw981uMjJiZQ7T-?0)>#$vhouTag}&ldG^%LN?RBeNjQqOfbHA}? zd@A{x5D9Ca;i|pu71|g~k?r?{w3^ZpDxdi8r!R)a@+2yH$M-!7bNJIP05`kIs1&7N zovg5}>sj*&f0L|G(^VyG@9b3Yt#m8pZ#wIIf8*;L zf}GLBi4WD-f^N(Q-rUO@qfr*R?|d)#4&okZ|0kqBO*2r?V2dd3o=I>#x;odjakgpO z+5jUk3T}oZ55SvC$+tgcF#pe{9Nc^&V*7VUMsK8)fctF0b$?7?`_s<1s+DAcE!#r+e!@#1Xao|OD2?P|XOI1;@TUnp>Dj=G@h zODP1)n!>)K1~Yog1-1Esl29X?y3PI7pnoFaD|!P_FSRS;NSE(Alfri^R~m9ntX7^l z!Qx6|Mf&)qH|dZFJ*Ci^J`J;zx)PmVV9wukrDgHZsLOhM=6>jDDt(M`ZfOM$PeIGp~%hBpd~i_F+g!qb7a&3xi!$>m7JAEezt3}$3M}ynCmj6 zvM9Ks&M!zK%X~5W74x0CYj7dT%S5NiFWmH{!}U2RA?dGeRSt3Gct6w?>$uKqt?)eq z9tu5(p=jXha=!w{MB-9(*#L^$JtMy|WWEq&)T)j1TWRN4`~HJ{MVXMM_(dsTvAguv zxB4>|-)k?$T%@eWrrMxNxNKj^F#rxNDs~owU8&zM$gURs^%n4>$kN#JUv#^yPI0=) zVeP5z^T`CR`0#tGGk>k*zg_wl@-0k_~T3^2YKD025y{Kq1TbOXFR!@72!#UJSURtORHn zL9!fWx)j$5<3#PBhuQb==331g$$oUj9r>Z}43vB+lWh_IS8#sP%6A3H(f2%?72z0W z>S`Ryb0RvmXxDL}BL2DjmmUyDK14IjLj^pH{~^xLw?TLM5stz0Q#%m;xX1h9jU{8Z zjgstj@Le$c!+zp3kn*<;jGIru8?%}GAcO0OOvV=_yM)wL+asiptMDE7ZD|zTp z1&R*hWnYm07Xd}VNIG|!h1K^(eU$e_o2-JW4XE5J9?o#dlu~pN8DyC;@0)dPgACOs*$py=ODq{ zGp{Bm9#58C?M7riV3~51lYTPdzcxwf9zaHlOpi1WvyCsgK9!JXJvfegnCc8=?F+GV6_$s6CszQ`f1<<^Yvw5-p!g1eK7$ppG8{v2nAS6-aKtt7Z!vI}afh_#= z@e2wFX^d^r{@{I~>-QkIy4vRV@vj*6!vXf2RlU1zs{U;XIBIk6QzX zSG-_NZ-w3I7U8rKO7q3$%`PI`Df?3U4{-i0<;;)L)i*(-7%wG3A;rNCxeWaJ-*cvZ zI)KDDJeddT4}PsXfciL*Q>M}W+mpBV5&hD1T;`L3I4f=`v?#dkO;N0^_kK%9cw-|% z%_^wcMyP}Mk8Q!n?mugYAYF@sJ$CMXeCM3ldOZIt6N;L^Vt${}cIc84CLhLd@%3-a zB-h{ixUpLWEfSgg9=+CnN14Sp0j8nTSg0^O`vE0n+fL>biogG+flpt>$%6 zap-Ab5fQV#z~b0z=H(Z4MxzQJ$l|u0l7Ix{&wca-Bky%XGgW=hTRc;Bp1?SaUy*YS zQHjVsN8~?OxZ{UaEmB@*|HCk56HrRCdyyz1{w6^f`r}kB2K_NFhOp77)k{hFv2vuA zK`BbD3i-?kg9fpnXvBztSiH)9LiN#_1B6B(Om7@KD|k#)NxFT%d-=7ih{6?3DHRd9 zFJvecL#J;1#O5-UfD|rhERs*e=HN0s<)iYwn&X$@eKv@#tP1@ts_&W z8x3L0j{GLT=N;RA2u%;FZ9+e+ot3ZU7M#dOMu_Or6(w@#)=R~M7$&U+S9U|^c%1!uru6p;+6KJt3U@X5Ch@Ug{R`;K!D zITJ~@uR>0QKFenjol@QE^y?J0Wd_q$d=G&xcd;-1k~8zuQYo=6KsF6ZRrT8u$6!mN z+09f1ZJ-Y;LCaZj(xf_bJ;HcrtIstBM}7IVW}kVrp?srx$9F#U?44}|h{GseO53zp z>Qa!TaZ1}#k?GaK$bK>#z;=XEvzsX7anp_GPyHIt7mZr8-F=p8*UOjt?B_J~$+;y) z;mN|43Vj#HOcr_v9Oe|b>g)}T_5)8i<@O~af}mh@PvH_$w~oe-29wstbC|noc0LBm zuZltY?n3s*AyS=5nuD2f^j_rkGb#4RGE%u1;7mC0(OC0BeMxGJYIs&+8IZ{Pp?*GN zBl15Jwn>sBR}=rFFWhWdgRM&=(ofD3?{u5y6g>PSxNqhB&E}?L&BTKdN$~8IxBtX% zYGzsz_L<=qPXKsj-9bh2->DYZj7ZM(aHMb<5-Z!VQqRdV9Bp##7cP@?#4h&m7ugvK z+u6beNx9caVYv(1@WCt@BzaW4)z#EHPWj4J+vDtvU+tUfomSWH&VB4~-t#X>vdc@j@X+ncPrv(t1zQ*yB!kTo~2sAuoG7xfYZ!S`0coN@t;37>rkT2go0uB8h5SwnxNrw=2G2KSAHQIhLz)~K>SSrqw> zff?L?$KK&5t$-c9fjr_pk`^R=5y3KHWN6&pC%_U}J)=+Gtx?<=3Vj_N5xze*vKw_V z$6n2VF;kqnt#wvsf3VUnwOJTo4-wGC+E1}LnoP#(_;^RVd*{Q=p(d|B^S7pw9tA!h zpH)tIE(erFo=pd*MzOCqMw2>0&&y2JG}NR`H5AvMxC`$aVd;}jPEUcE;`Cj@4zGu> z(}Dz@LVA*QDfnQ%l6BqMFi+Z|jr?V^2*~R@zrgm(xOD0wITVick^u)(vphmw=?uJl zeS@kd>kGSlh{#9$b}jh2x`_c(`nBfTpUHqWoYEylfi}*Z2Y)cH1k(Bb0(wTk0(9ry zd<3?Tr#p9dCC@YysBy2>$^sUd2y?$jB@r=gx;O#Ks&P_rR9VfSIXQC(geJgrI^3rRuf)v@!jZuxJ@yL@jV-oTauJ zJ`ZZ7j$>(HVmb|PQna;PCf#Ox3;Qz4M(MmowbXQjf4+DrKVRN%%yf@u zX8*EQ1;KGs-9!8J9Rxm?H~Q*W{Ur5!GyJkw*3g#&iEsi!xFO2)+i|d>PV>+eIq2!O zKlBTu=1R#8y08DK+4BhGk>9-j_^Bh-=JtGB$IA)g_y_6gOT8&<`-8bHY;O)wBQ{=X zgAtr77+j||J1kDO)*uk=U`q;jJ$)Y^tGMp?!|GZtqe7#0tqJbJG%p?Cv`BU`r%1de zqC^H`AvmR*`Z#(i>+lGcn)ZDf~ai zzB(+b?faWf2?0fEL_%7TkQ_n*>F!XZB_t(=5ET{aQgW2;ZiYd*lG5EGHPoPV4ZH^g z2Ji2FpXdFD=KyndtX`kB_MQRe?_A>Q(UyvdocqgVCEw$2D`m5{nXRXXx{P;Ce^Q+? zZmAmQe%6S+Wa+az^eL3yt>$wrr#kC+P%`$pjRUX*VGt~{gK0E|`TqNF95VjNrL{aa z2k&Cfero@MA@O$fG#m%=VzQc`4^=EtwC69Qp_Ahutc2_{t%oe#SSsAj$#`=0&eFsz zWrD}Mgze49CxO`Osnyvx=1HMlhFZ~AQaoSM?Im59TnOVh9Gj{#-c6zUI-bqA_kjQD zerW%}ysWpd=>aKNuG4DiP*3_<-DFl$#1r9vMEm)drH{pKQOR z^VhxTJk^y&=ep$Hx~y&>w+r;ddU5wA?XYGgWZ|e?}CI4@@vFiQ7ia#b^Ua zZFpHSfAeMBRVI+tT@5^pEUzov8hAFnS_k#*QF;n*c}jes@+^uz0EAM?CG zzWP242iSHIK}|(ul}(Zhl%{-#uxG5=dPsQJd*UT2c=#Q^Qxi1w;Q`HTchESZ=P0va zUUyIumegRx<50W)Dc87$QC~(J<&Gb+K`=LhSZd5g2s`~JXfL(pJjM{aQkuN`j2d4;>^+S-ej+MWJ6`?Q5ZHbq^5=$lGb`2cpBWhs|I9y^rf< zyi~s%#T-cDH3*bKuZvv8!c$06$zFQ_pvCar;ImVL9-ANca@LIUXkM zvTiQM2JXDaY-dR=V11D6)^$)Wh9HTBSOuyS0NbvWMfOpMrQyGD)={#K{VKH0>d1V& z0>5Y=7s%_2>qALPy$gmg9&9Bk&}??=`Ri4A#CxwVy%XKnYb@Zc|BO&wH!$LNahETj zREHu`+77)|S@@?LWdtL|x5sTMcfWn3Y!+0Oki3fEl~@oGLD>l>N+F01F9>Fg4JYIr zArwn}AnjQw#(iviUDBmT^H7xsoISE_I^R07fE;17m!%0PB)XC}wY{=TrW)tmo#!Zk zF@5U#Q46=PP~a9_(#*xnQI6&#yRl$nDzQo zvUnM{wjyoq-zjWy~}TEUI?CzTL*EO8GV&i)nHa-M_1-IfNb2{c!tXBm`SS_ZQ|2E) zE^(OfQC+0&f&QpK3#(0OJ^YPl`3p$#F__l7=6DMDovi*RzIS<%yz%o*rD691BPJ4} zR}m%zi_YB8EeEHLg{F*4U4rgzEnMzmH-ol@tcMuHu8j%nJ*hS!Lmq;1*Q)1ttYTP` zytK6QM%he6t-=*Q-ep|Se$-!L@omv{ZQF}JdSaq3b$a=nG^BDog$`xX*l@bxiJxL! zI@^J>aV)U0L2)6ls^^s;I%dVr%t!d$e2;(L#Cm#5)kurcGQs6NkZ#}7_C?ms&ehO` zb>t@viEEQOYW8&~`-lV*p4kRdGymIl=+uJ~qFVF@Foo2@_`y2!B&qqT)bQPZEEUPc zcsyk-D{}Q zHP3U>K?JeCu4SbAjg4H5VsI$Mg$+x;_6YSEU+IXv0~!?CBOyIOcbFX;fo#Ri*^*Vy zyVg7UI7F1+UnvaOewt@OoY0Gwi-~Kt3+?{!|eH zk>EZMbj)+)is9~AM8{1Ikwq=VV}2G+Dfx#m75*`wM0Wad&9nPUv?>$^tTLf$g)ac` zver11st2t75C=NB^t;(gc2>c|*)2}pk6}Ej{lO=cbw&v-pm-q|LD@L-pbAgFiJbI% z)kd4*u=Lvui2`)r!2hg1zssQ9Eh0w6X&|N=I>48v)yFz3=?3(U(PDeE%eh}#pCs~x zb;^d>H?4kibY+pFSAKomk%2PZs3$*3tSvP_*%rr&1HO4daDjNr!Aq6f0Z-1ki($ut z?KSZ$^_L6P@NUSkjlXB9af3i7ujFvyyfdJtPZ=Tepuyg@{t)VTO%rJHy`D(jr_hFx z>BFIF>nzbTVfcIA4@RbHX&Q(3nm7d8xAcW&NODMbirOXbE%*BDCU@d>JMT>_{t!}n zo*OWKxnVwm&TuT~L2eTs@i#6m6~MJK5sYpB(jdFULhSyzV$ga|bM|WlU17K8Q<^Y+5b6&rf=`L!akf z`uN1-HQ?pyLXBf4ez^}jtd2jCS`o6gwu_xN@sOs9GYG7DG46JSL9W8KP2;pIb&+?+ zR*W~Ho)SQG#Nx5w4x2A$B5+`}6LuR{KVt@--37ol=x7r8oq&R#lY~5biJFKgTVb3^ zx-GK2__wQ~*9}}iF8pQCY2zk0>&@PZ3`?25L6h7gB^CH@c|r4kOt=hX2ANm|(81d@ zJJ)llk!x16KMSkB2~_m2fA)8d1Boq$b2oSBG$$dhcRQsb-w&{^$kY76tV~^iic!k? zw9T1;JF~>6`(m*4hqBXV<5tVMl}q~7`7qoZ6u_QAC^5F^FvRoK8u8Fjfh2!j z(L!N*0!z|uiS1>l^&wCQF!;T%&#wOu7KP;i$RLk8`X09cUYEfE7IBT<7(y1ez1r0R+JVM!gT3yZqmynmYK4 zZIB{d>4vr1U)gV(gMvqWWNktD+6|QzxOv6~@%^D_V-`fpu9pk*LHF-hE!R1EedGn~ z|A;`#l7laU7!*8^$IIU)4^(_u1-PaDMd`C&A6y+W!iG;4IOm{^^RKnANHAr3a!3r( zMJP}sdwvLdn6sTA%zozBi!33r$0$xVJI7;J!_uY>rv|&DsK&YSW6NB4m@LtA9A2U{ z9`ytY2l5Y}CIPzLeF1TUmv9w#tl6Ms;^yr^^3RmJIgQgN+%KjOI?R+NlX3x95%>Rp zXdEwr|2TWX8nlIbcpOKpi@%q8Tyl4_(XVzir_uQ|gRB36F*|F12W(^1s=kQad(IV`Fuc4de@xC7GfNqpXqgaGkL@+nt{p5E2IW zkVT;on!g58WGxIL?gF9;FU?`ItL<7y#$9O*5S^;?r_)M^sQ~);s5kO;V-&P!)5kL< zKJPxEfw9+ti;k`|;(t^z1jvC<#jXVEG)PmxCAIOuSJ!9nqY1Hr0O*Z<$*OSwF}#_} z;&=?e>A0&%m2H$ybiM%90@=wlzwRG_`)iRW`|iP8R-XzBV)1%X@X%{R&4%RV?CTi6 zJ<2HbbV-%<_8+9jn&hX4MHN3f(<(8^Qo}Q5%<{eV}ZEuubj>I`7J`F!eTlvMt zXSH>P{~+eEiOQ+(m<>SRn-IAE70P-o#$Xh~$w)(0`1-f;ToZ%V;A1)AeGgJmDG=RW zi*KMY7sLnvG{c+x|FY(UUH*@-u4bbly#Om=gyF*fqGqi3Y7|GmD4Z)>P#6^%=l}(h znsU+2|H0(rl-Q^HNrm^PR{rIC+QOs+fwSQuVTL`VVVm!#?9Os6Di)&jIp=U)Cv&WH+( z&Ys$i`4HtWSoMUS8XNB5f;+oSB%Mm%Wke1Y=2|LMYvO78B0`{;q|33t0*zP9q-EvGTUk5caFCOB z&Y``P=}ZNTe^-d+f0zneg5})Tjxb0E7p~?gE6610wLL8T7Q@j~68#djtkX`J>v%vD zj!~UkE7`NEgz%CKmApvW@?=)Q@n^|^qZ1DhaeQZlg#%-B%i`KZl`;O>i2)&}Ci>oH ziKx@IVX~dnhJ~-3PgyrlAomiJOvPqJa_b2YVCBy&OGiQ2opM81b8uge^bI9M*0UC8 z>0jJA{nb<+@Xkwg@F2TBOeoW}n0S2*C$NI5CsRtL20+t^T4 z#u8vH07S2Kdbu2~?*51j?=*KbcbdC%X8Fw{YQ(SP^d=s_NQ15Vi8RqYr;) zLzM64Yp9(J9FDz*dq74U_-#t=aQY4u2Ah;vQxa+r0OY*f+J^mK-2;D&s2>>1ZHx>; z|0D%X41%$-ujS;UCk^V;gr9|qyfUUB>;-_XT%+xYVl!`Kwn%pHdm>Gr)&?+)HwLTp zqg*%v)31FKq@u-uih|cVx-UprSi~G@Nj-z`6$j3u<|=ymZ2Ty9o^R&yT?>F)EU$+* zCC9|uBfXxA_{K zKWrM3`f&`a@+k{HNLTtuk+W(^9WS$LDal|AXpeD#>#3k0OUoJquj}HItn6&6-^$ar zjV-x**NZzRydIiqlo%dNo5(pkD~v2Di~m-*wTk@KKujkfS8&||QBX?q@R=h*pyaXS zUSG>w*WBD(#b@`|xMSO*H4j(H6BWXe6u;4(PSdPjAA(-Z;#nqg6E=J;j0A^OvQs_y ztSceeF9{P_9gm3Eb+&l8vO{HUH=631QV_1n_C(^6O@cPCVlI;7;Ofl9u!VreQ{Or@ zl$VA2z)J*`Ql4jxS#*bsfiR@QD%FQNPN! z1x2LU9-;=pNf&B4^f=M`Ypgn5uQa&$+-Yl*?-*8TE z0A8kyhkx@77nR2EVj5R%mwbe>(Yb70BLgg!31G=wn@Cob2jn~wI~rz7zd5d4x#F~)C-~25M9nG~ zWM9p^X}E;XT72GA5hZ83e<#q}Ho}0Ic8OgL|Ka*junl6}HV)It-9Qx{U>qm#BkN4( zdHnl~jF!zob{Dyj4U(3Q9NVsk&3q2>;to~9LO@VvL z@LWy+kC`1vvqxE^*OWWRS>G^I-VdrBBO@a(?V!(o{Y2g;LDIp-Haqu!3NkG<@!S)( zrbod-e1x2;=zHqaIPmc=g@&UPVc(KB+BUh+e+M;uZA5Jfw24t;t7!u8srEJRiFuP zQrv7V&t=>UjM#P{Xq5yq;Z6Z8nc$y)8c0vJrz(Z+j-T9~a!vpMiiHAU@GDIn9cG~o zpnv=+z4Oe}Psf|Yv%5o)oiZI&I_+gXt#6x{6MUD|0^1@xMPmyKx~QwYs}q>G_ChgE z+cW?#pm~f$n*t(6Kdrbo%-X-JJ+l4OQnft*5v#JFr^x}_S8___4+cPTJ+>mdfLewk zr>e0wi*McBS}NtY9PI-6%>GA#G#?7{0$qLK;Z02Y)zvj=pFYX6s3cK{$Zi`C`j<_v zhOTflwhDIc+1#dU;5${R`o|cfyEINdi3W964QR-+{4m3jAF&l) zv%WkUPZ2@*{+fEp02G^`L-;)@QfIIFg#(R5K1ozxkHY1W_3Uu=3<`w|I-Le-6p z=|(fWik2pp6BCV!z^{xwHa7)jyD6mu*vb38ol!zgn*q_r_(?GwWEY*f<}VCl0O|_;lu!$;-EhGEc_YOEr$0& z7f`Q%f@Ql=>Xpk;*uJc%uB8>N`9;UXOU&BDrAb-DNBj{`wlLYYf$fb*$f`_{pF7 z@EX>FNg@$fDp8$Mo2!VZTPeVI4&@&4B6+dFMw)zT{!~fPMR4I%8{hIF2X1B{afBJ! z#tZK+mAB6Lp?U+DgY3(??u9ve@R!TizrJkvq$)?}vE1?!EG_7{zxSl!b?_a#k-ni% z*{u&hida(X)jc*pZ$<_BBgL`GhkG!Q*Qkl7@{tpZ*O&bdSM4!2yuFhvanGhRy^EgF zO(5fe+7M}BO??NUdsOiq6O4w%vZa6M@op|Fl>Ppvx088Ae0FDMVnv=6)pXFTYFa+X z7^}S9oU&e9oZ4t!>EYCm%ktoj-!`#@!WZeDY38UGy zhKc6SNnfbL7M7z)*BI1*vuMw@2sAcgU;UmOt7;>byPpy&5nbp|NhDUg4>*hF_Y1v` zGj_bihb^`^^{Q-KpC%jQV+G)kejEC=kNo!hQs*h3{Y44BtBZBp%=6608UpPl7Lvhb-A`Z|@CiomvP4qt(L%^uIs)k;@ z=^`&Fn`D-?s!FmT8|AY5hUKoUL)z2#zE)W}Cw4}fM)XAK}Y zwTJMq-ajAc(s6wFqw$l~#redz2k~cL~;JYaJpKiah5=*@o#RmoN`0Y7muo{_}P4Ih~-#~y6kpoA?KyS zdMm(r%W^dTeJJv5U)Ml>Xht%@Ke*i;2%7tW4w0+<)Mt3YF-QNa9ERe}B?extZBX(| z1i8&v`HDXsfU``sOI8`S2h`cuqXkP{MtxL~2O!BFOX|7moUPzEo^Yf1P|OUH=xzjX zmTjQixVDc2^Bz+naS=J3_Y*!B{8wZ^<6;!&_Qf3N%o~6pXh3Ku;r>}cnaW|34j#7| zjDP@$Pn4k72P`O>37`FWH}?>ba*l7AprfHyhkE+Xz&p(3G$B*5g1Hg8C*@==4N6+P z2@-7Bj=6K5x>*3g{n{$q>?~doc@S z=mcU!51d)I{~87F{R0p#d{R^FxQ#w&u(9fyEH9^ECK|GU9kd$!{-?d!`)=<~m8b>> z23Ek8B@9*KozwNg{`?OJGCStO8OK)WAlrdoooo$M^X&+l=S+QqtEeyR;v)fRswMk3 zkN;c|1?YH13Gi^9!Rn{un8)yk*Jyy#eKU~eYm~tRT%kN5w+gMD4X6MC#icu!KTKV@ z2N_|`J1i6(xg60f2b^BE`r!=s7atOua@0Lc8`*gG+Ao(5kGk?38>(T~FA;!uSNcZ! zuKeHq@qViJ0XizDf$xs4*s?WZyl1xQmwBsHsj3STY+C~Dx*nwfRAU|`%TqhsYU!RO zjX-Yl0Z`L#R8foPyhH6yCJSJ{2d0%{m102n06U0;EL9%h2pG(}`ou!Y@y$u7m z@-Y8tS2$T7Co`b%S#zm(Q2RK0^5e&H+3_}1+SAdoRB^n1M{W>(?;blyA{fnR1mn@J zvoq*$fQ%G&GnCUb*ny+$d{Lx@pFw+*4{~+Q7GGX8AE)D*TKUtq(ypasC0%Z-G)Pl$ z<0NUWfi_k~gyqf6_r8~EK^K#tp?B|}uE*Kk<1waJg zlts`rDbP%_`LXPVNLK;0}+=d zD)Eta24O_NAO@~3I?|Ojvo2S9$RROVLSP1Cv;9A} zv>rk-#&4#je>hz(DUV||6(6!P?f{x3tUv@4k7EEE8j`qRxP-T}^TUic*I-4=Y}tIM zdJJ&i4E9D1KNRk6$N3gxcVCJ5ciqzqtW{O@2RUTyG%8+I8P;8h>?GLZv_C6_?NSbX z8e^155*B*@qz+MM^ig9g%c(iYXgIA-7&Iu>)u}372@rPU^;ahaph9X(@Q}3^GQYIc z0zNl_z>z6;TTkG^23;~h{>jCLP(=>jw;%{iLkgY0wkAVy%)FlrJ{<^-yi5D-PkjQk z(Y2tkB=-4%S?B&|%-@tXcj70XJvH<*{zi%*12R_$fmbux4`6pgeO?~aR&WWTsv6A& zem)uLlX(m7Pxp+d6+Q#9`x(~&#c&p~U+xv}9F{45Ybo876I82F(>xI*FGBe8!P<4Y zkBhWOK+$h*=ef1G)%kfRSa3RFY{*nO3UMAS;aoUop z@b(2e6#&ZkWOH82@6ZbXAg1e{&0Qf9jCOU!VTg?8{WX zWz;iXnj02+XA`;*ZofE}@(aajeTaLnepYro{Vp~HxNXUEbO7TFH^U+OmG!newqxTe zzsz922?WC>M$*3%N6JadOch~ALIAbd(LN6vwyvv08Pk<%{1n{Y`He1UFQZAc4oNL@lFb%WoKu`>RP91W-9=s273|)h_#@pM{ z9)A@GH^DQUAXpeJH9mmGD`^tG`%~8P+r(0)U5%Kwd5*2M9J8V>Ju(TzbJUuC6Xe&w zC6Ypi?CRIgr78vQd27>yIT`nAu#NbJ=}noz)gIj*LS9)`vcQB@a3@^ zQSu&2;3pj}Mv)+unhkgUoO{VTv-M+K3V#6E?`(x;RnmxrX>yY5_T6y~$1N1`1f2zT z#F@KOL0h_Xs0hIngzm0awv)~BuI8~}s*9(xi&%n)ST~<7=ZlT+2|{OQgr4360+!&$ zt>CQ4;vx;1;B~sJutV%GlNEXx$Z;|{c(iI)Ct$^`Y-~swrF54SKZ>;<#}?2N1+KidI32a(LQqC&;Dj)%*Cyewr6YTFvH`L0_`W%$2+yz0E@WU zY*}P@q-u^vO&A9^23v5ytlba|mPN_VHGR;g@E{ZK>jO-(4R-}dg+}oAX3fA9YrYp7 z-SB5z=gESfHP!|X@xhvD+}vl#iBhp#6)GILWfH%j#&0UOEyX{*FUD9ULo{`$u9NI3 zWAKTt0em4QDJ%nGlDzoS!ZB(A$4|TDnL4|>X?%UP?}?>04zlc_z1fFhhTWuLzOFCJ z5l_wmu46MnaC|_URNEd!wey^8NC613*VFib5c@uGmu`&1M&RsXy5E7BhU$wc@5#jd z3$E_Jkn8gds`=p$onFym$k@kz{)7Z$h!|;%gaGdB+<@ODQbKvl`7SY$$W<#Ii?sm4F`Xx_b*0_9JJ0Dfo? z!j<6)OVFQ>^f%PX%-8_PX;j+DJkn%<=>4L$Aqt5F=;;9@@SWs0EB+&qS-yE30WXRj zYm<1Kn{PTFTPy(ZG$A)Y^ubJn=czYv%Yp;2CGQ|7iHm#rvzmGw49fm0^JMn9`<-Q3 zlW^izW}w%i1n9MJ=AXIP(Mtd{R2$0~Ay9Rdb8hRZ{_$Pmq++q@$V{G_v4U7LAC)mS z3=b+Vqy_$ufpDHuA#VO}nL82TtE8$aRc&c}qCXvZQ@sS*tF(#6eWHPi13EvYa6qLc zQxkAE+4+P~5BwOQcM+ohm69g1EkrbCtc{SKMSQl$eaqEbwp20`3G8{+&D=S7Ox-BLw#bVOS!(D*1k{Z*sKgx zxJ7t6{-eF->8(Gq_u8Xd*5=^2B|>d#*Ogsnl7?pCX$Z=g0J)SJ5R3(n+=)7~ujhUM zXd8M{A2Lh4+pWoePq?iR1N{nQGG$Hzmfg*xLCmB}8JCE)_VOTGD zgn|~yhEBD#G)d84Vs;hC<}2i+)rtPE{4yk;oK+cn`x5>;y=`C0$-@jprz2hUmooa5 z0c*$`uj@Mp3Q=ol)&~X8amRlD^`_xV7=p?nC2s#98!%M>M){_z>4iEtZ-nc+*gk>nLf4jsIr9OoaN=M;0)O-2{&0B<^Afp3q#Qom>g zPdUhZd8hwwC?}h9%*^luFL;$L&P+d|ko_uSb@#~YHIxc4s9K@>aIly1Zl5PFC`K#Z zI2Jk1tVhN!G^Un~7a~#`A4j&n zzK~1e=>ivhj4yI2B2hFtdjk6Bh_l^VtH|-+1x~$PKKw#a!TZ%qm=Upes zww$93l_s4FP!B=ot?t=~>vYeAKH!SdM$xSu9>`z%oz(Hh>;jo|)qn-O%X^r3HZ4jS z{O@8^2X6AS%hONakWp!%5OEp6idEcxdo7^JDq@(=U0w3 zot|o=?WgCFE=%GW(mp~TjTaW)3!N8c0OQh+wG-T8!}SoA1)lQ(SVBgydrJh>+gZ1fpS$Y##w1~i`&nT8Kjg-&6F;1Ozm8?q zTC8!k*VDYe7mpR$5OUk*>GrD9Rx^pj`n)55>;*MF?iZ!GQdZJnaf@^IJQ;q+$lEBW z`o8Jc`x|&KX`*|k^>0Eu#+l)nx4x2lVEy568l~eaL3t0jYZhKzs??VKz08qYz6lGL z0|Rc4ulEaoa@4IW{mMhX@p{cw0dbZ;ovav#9I#Tl0je~o3}%A@f$_p913fd`jVp$G z`_qPSCoaqOi3szi`62QSJ?4>XL(3KSw?A976x0LxVBO>MjKJA@fEl^=&`&Vx0p{m`g31Twp5(MJI7roCg+&Gy%IRPUwyiZUMfH>IIQPoo6bYN5Q* zBZ$fTho^pi8c4n2V2#xXYXmW7RO8-#yugOFP$kK#oJ0xzLLXZV>2uvj7XkdhXitcd%h`=SLmfZN|Cn_YSxnJ$%5gn(++ZIAO8w@#&k0_J?Wb0_26aQF&EfS9B|r zv+R#{Fa*~>=_f>fj+^gIc$6fKG>}4A4dn$OUh*1XPX+k9-NliMT)>V&~@ zQ0AmHdZVgvj`^7|PR<~uQB))Le z$%LF8m3#wJ>fs5o+gMVrc1D-5UCTJ%SQ^>2X==9q6c78W7)FSOv^H1At2&OSO)dkJ zzwTk!^hAPgijur_{)a#ZJ2@)5K7}c%3I9Y^j$qJzw9phGYN5l2b46DSVf0GL=&LQVQ||)nPqmc-e*da;_`rcG#~+o~%D!6cOQ2@|I6ecr~#P2(Gqz z3D%5=B&J3dz$H3U##Ru^%ikTg5RWGkub&YIl8?`O1Dd}nv~pf}?2&;8F-a)tOPwb9 zZ<6cti}#8Z9v^jz9V9h&CPkbJ1uzN&6pP*W?mg&;f-UOLzz{c6?BYsaTKq8>VM6FW zD&&@((HCMX5JMFU^^-D$857<8bA{T8!TO&+P%EC>M0q* zu@+^8>wV6p6xiX=J_gl$;r*9xp9o{4-_nRaj(a+0NCq^I2&Qzbu<0Zw)3YzG8O*mf zMGC$y&slqb*+|9d)?4YW)5b-@?IO6eyyT^_71>DCh8Z-C;EDPgnbEwb^v!i3;B`iF zeKgbhY`Tg2Gpcfv3YvwONx28c608U!@N{@xPY$F=12IB$-wEzvqO(u6XOuRn7gxT* z7X1Y{vf!q7@!q84)rUE{H5znWkrG>$ru>Ua}KfXqhCw#;NLNL-kU^Y z@MpX$B7kSk>Cmx7QLZjbAB^wT*cT=0Wq{-&Fu4Yx(s257#}V2Gcot? zCtckgArxuL>~`*@zY(lo=`yS0bPpW!KzS#zO>L;xg2H6^#it{sfvsrOB9oS!qIWcEE6Wd*^;p%v!LyM&1 zBBJe5ywet&8B-e z*9X>a!9zt0Uu~>Ja}WW0sYxz~U7fSfajb(j*iXjTrQKO?T07WNZSIyfXss7ldUC+J zB$H9K&D!of#+a8Hs;6MA=xcrCbI&Y@;)-lmt=5|)i6=+t%HYuo>mP>GLDun4Hur9D z=zOcN>8}C@bfH5j@AC6*Z@dkxAWO^#FKv-|AX8k6dp_W#ZP`)F>6BQwZ+A>}X3ULd zm@!>1w+#M8E3pzXSnT2c0&LF9c6Ov0tU4}yKf7Q8cMq*+%0llF6n8Tzkr%9yy4*iv zGQRrR#^`+{%7dIdMLYy-qPi-Xxmpme!|K+v|S@I z{}!k7XY|NN>t*@_4V8O+rTukD26Z?IJhjh4$nUys4;K_j)cRVjuV=;26iakQlO!Wn zvB<_T0YiDS+M)_)Sfz5qV7RbK^jBV!1DzHFld}E1h3gAMhRHp?(iPwJu}ROiLzbQ8 z^xFlwVG>9rtYdCypFkSDGot6tg3FMMVEnqxplig(tNV2sv8}zn<0^3<(5mCzu6SS; z+c?dyR<{kamb<=y*^6(NRaSn-@*jM+rJ%~YHS~yUb}HVhdU!T{|7!DRbBUHn_hpV? z>emHc?XPw}yAFWXhhd3VS{-0TqZwazj!pEa%7!zYkK;a~f^sIPe5&fm;EGe#&c@cA zz1IAQ=(72@fnu+0zz)bJDYXVU`8H&Z_0he{Be3ZV^{T0S?6r}7Ta2K}l|_tsV>c2v z@y8KXv;}+jS+h)d43pz|c)}7{t{uXMW}OBlC~Jlj2U+b`X0bBFMA~2DG#qWJ?i{vJ z3w%jtcHHmBB~)^R9XRJ--#C100og9WIUILc{>CRtA_i}u4n3@jg$G=|KE+Zsd_UOu zHi^~P^VJt!;`>Tk2!$i$M()D=_D@4-Ci=q^V*97cP_TFod`cmx();_xe z?gzD2a$_n@#y5zh4D>veBwDsar9xV{k8##-D#48y-xhPyWM=4GdzPXc^h{&6-_s$EpeZ}fFtCoO#5(&S>Dsa@ePlr z)6DI!&Tpde#R;nSbeDm@zwrMo%>M@YQw%ERTGZCRJwmTxLVW|alPs#j(BF~q zWuZjbilbKvX3bDo9OWRIT$5A53M@0l-<)>A7B_I*OtOGy(ggmVbbC7y2kh&ijZ1#u zz{*PBt&gZIH+aQR9h0%$Yp3HLZIZYG&in@&6XKJ!)@oYC@NmChjh$~H+Zg4*WQt~N?ZcuH=Uu7*}7cE2nX5PrPOaQ7YF)zFIKoDdc~wM z(rb2QU5mf;`s(Uu)i1RuRX+*8*{yyfO;kqDK#T3;tSsA^*}70tA>8XMaoheC zpVNrlx+Jo_bXM(rtQNzWTqNbH_=J1l2;lg|{(p#X$#GkWR_&2kwWu-SJnGVfa-RrSW%HbR^bu&hAQ zXQOqWoL;QKzepHq|KMaMZLOSd-%m#(E)i|rrhT-cBCOztv&^C3ZagR!b$^u~xtSsWaz~B?4U^-s?*D zIi#;j(|Hw$QJO^MxXlWdld{Zu6Z5!=CneE@+Ld7MkYF)L8dtDjqmC%s%g&n;+bHlN z-gzADw(yW16s*q_2=br9PC#B|ht+|s5+oIC#OmU=yZwd7Ys7`N$ZPKRM6JMAX^V$0 zw87RHzP^RpA$7l~7aZYO_oiYeTXD$+hXR@Ej&?isb*}a2+nSm@pWas13s8<{58c7= zyG$4~RUfpy@mmxP@}=2i@*seZ*7J*6q)dU}u%fR$YhuV4@srV}4XB8|R>m%!Q)8(r zl#+9Jp=G2Y_nsZ=5#FPt(tUelqoy%sVX%i%B$bKBXy|7$xLXR?)(j@GdRl1~!d zYI~>1Q=5t+X*0Z%41ZSD;`DM5vgCy0Fv?2Qs(R9GruIgTqks+S!)T2TX5SrSmuwF~YmQ!KY;T*6QrQai9vJM|@b z{Sjuo*E{Iy$Fxr?w<}hcb`M6AKN+Vx04Lz*C8p|Yl6Kaa3<5hsw^(|>*H>u7wBucS zaM|oV96yy4DD)X%(`AS3m3KE1*KSlbp$ahWyu|PWem@ zJ^zKMk0B3xq{8mUb@N>RrV4QbN}F}UY3LWd#2X^&!X1>$eUM!se3V{#>&s`EbMW)^ zy`(G%Q?zTE9_F~Rtsq6)v)J!p+jVRt|8SW=+wg_Ne?1invz#wz^-3)Ec6=1sb*oyt z+;}NCbWnZ)u?EUDUhU(sX#HL_DzzK;F{`d~ze?}}tuUZDLlxR>S1JzK6xywxDd~57 znpfJ!dgn^8o}|r-WaJa85&OCcIh^Wl_Il@v@fDm`*3JKm%Ff7kyVj~8*}FoVB!t1^=^0dez)2RCwZHLCo8~d;T8S)Z?V;N)c5X^k@9U7=_dCP|Q*csUvv;hrGM`t_xJ?YMA?BA7 zy_Cc@(ZfaPOlI!2*GY)s{w)1eqB3;L%5xiYpMMjpRp-Ng1GHdsOeN!KRDmLWB_BnC z+pJ=zrQB*pPmNZ$S$a71f!lfT|p>8JC9yg!^+KC$zG|$?fdU%gHWvrIbCwqX? z)_1$pZjYss*jw?64QR$s-Y**P_x@MT(82_yydHZm;!v4zpQOJn&-d+8&(98hn;J*@ z3;0%B3rS4X>D3YoeZ5;FEmXRFm%m8L%hHT~Nr#9++g+Dks_|QgB@MQRCL1}ou-3V<> zR0)YNA#ZS^#i+!UL+hr}O~p^h6%qq;o$y-iSCQ0u!( zyK3bOIT(>8G38^pDhp&$Fjy3!^>XD~A?c91#rV0=lw zY}aTeivswPs=q*oTa2Vglkc~>vDhzET|kQjmjpF3M;F3lV}|3E9knyS18CJOwB|Xs z*^^6z`ou*8jsxB$b9UQUb1up8E;GNg%kKBw;(318CTC7BiJ=Hbf(g64?0XAex#kDA zF{n0YfpE`&@_iNt@JNx}veD(qCC{Glh>+S~iZN|^k=gwRh7!9Y53AOze^HGJllz5y zckRW_@Ra>3v9;#3ty*U6YUD=yiY|&+qMjP>$f84_`*NkEd;rWO?y%63Rp@I%LCW`l z2;Vp_k3xI=ecaeW1!Kn{EnnR2>0iP z#E3)Wcj>#;_Ejvj^5Bqa!-~7fSEFLjqr+H5Z#5<@yAwo}+%|R72qJ;;ZT% zbG?k3i%Ykf?=i!;#5?!<^>2)7mJ2K$qDz$V3K;F^gJ!|;SM`#f4jT0gm(bcZOxlY$ zq(TbjhO4LLDr1`-4*Q$y zzni(BkJ;~AS~q7WU;h0mVxi=Ptex%D{eeBiZKK@RA6>FN1;g_1Cmv%wVd7n-RnHn6 zc>#6l#x;D=Q`Df}%5RZQNR(jPRn2m11gsbBG_A)9Ma-~~fZzdA!W{k`pCK(tSq;ON zXMJs!YS>zt@BIaM1DMi30HzdK>70o=dI0hyH1rA=G|f$Mo22b6=y_oKOLtIvkUw<1 zulS?jHK?QBbA5ZkP$bpe#4@j1JB3xe4l8tPG0Ve95-}LlU z@mX6&TX>ZIRV7B#0C3qMpP9kU5D)ELa6!txnNrJ+5ryq|%lVxD{6)j_aARoZtGYpo+o7zS7GFPGPh(qP*`KM5oB{D|oG})94X4+|{?qZQ}A5 zH)Al&x3jr7XMY{X&h}RqaZE=N%;=$l8Ff`{kD{81!NRBc*jE?}p23p|y&o;)gbMFxeyonE&d)-qtcrFQNRb+`qUpl2bY0?n!1YqG zk1995Z_V+=FG)bP%WZR%_rOJN0o!$j)M4@DbWr*>MSMh6%bwB9K&Z|I0sxBV4+WrF z@T#Ztg~PR2H2#sq4$Q-PTG!YYoO{dqS3rBkS`(My$8;IvZg!aAxLsT2SmpkYv$5?e z-lk*6n)_iE9NEM%YFts&Tyk}L{K)XeD!8bwxYq``lc6EdO3VkX5=q-C^q(aWzr=m1 zV4=>#_N_M`>)OVT-nZuG644o3HE5YlE-;(j+OI!^>l^@se6DK$?-o-;67Uz=n!#KewW`6*H)k!q!UfsyOF?dJqy&2vEefOnc zMXhpgvS&j^SKAnb6j?DK{73Lq@4_P*sEyN6k%Bu#pUVZGd;EHJwp-wme87XZATJYpbUnu zFJKa`6eL8Tpz_1!F%z@a;-N8Nb{4};Qr~kFcwMeMWy@V%^V`)*TbSuxQV;N*1M$L4 zRShbu$59lp$LFc$1RMyv#H`v{ZF65=wX7xFfuBYeIY3YjH1~jXOw;F!Y85yQfW0YK z)Q-TpjqKGZ?oi#aV7&uBkUDaEx@&Ht*v>E6sW}h>Lz{x*LYqmP6u}fp0eJ|ihG;h0 zenN@UmtaD^-JZ||cn#9MMm=qGu$haTX5!Yv{PmP!WdJ$Pn)`&)s<6z<NX+m`PosFS;zFf$8R zsVrt*8qDHG=WEIl!u=4m z2bR+Jf$H%6Yfu&`#5LYlvw3+i$@VU}=?6&`Dq&q8(?yDM7>*lwTgyhX^FtU&tO6?r z7Mf`;{kD%|>$(hSWdVJ*^@XNqQL`V987s?t%MM5`>JdHzBQ>FD-S0cF?pImwhwY&ndH%@&>ZZ zT{HA9j9bRHO_oZKzT1eH%H2Cdr>7#n-lr%?`{N7D@_J~lD7~H}0EFYp2tojW1r5MH z8`I;c)aVw>GVgSAWJ+&*3tr=#OmOsu+}G9M$!#AqQ*CI(wc(TpCW^1vt?h%q`1ntE z^!KM^XyOAE{IUuDXtI_*tgC;%7aHt}!As%Ub6h_6>W2O6wgi1dANk>Kxgil)5rI0K z+z%i4fD*-D%MTdw#y(YsWY(FPC1uF8FWf6mJ$nIn3B>bTw;^yqa~*0rFS~%x2~%ib z$Dg}03Uxhsn73-Fq!xW;u|vakKr$K+Rds=t4zvvRYMZ;d1KW8+hb9z6&vi^-WNdxj znv(L2{~}%6LyRZ;x+OgIxyJX!z9L;hu`Gm;86a}LHH3AU*e4b4-!(qnH&!u)yhGF@ z{>d_OyPXNW49-9vmu|C^R60zHHn!BXXybr+Jhwx} z6_RhmXL@9Y_c7f6i*?n}fPHEILcn)ImNGN&tcBU5E@jw8l78M*(cT7gf8G%pH9dtOp@uk9R%5;IueX z^G9H1zVf|sanrGfO2(1L1Bq4NGhbg1898P!v*(L>O2U+;&4jMIIk+S#u%#Z)ii@MG zL@0;bn$%pESeUl{W)vmVUNITy=k{tE6d`z-)LCp=83<|Vy=hx?Dbh+X+M?#<)QD#y zxTLaIZ?yeogiN?V(f)-#-fu?J80%II70nh4qRr6&onzAvM#z|oM5 zF4drU4lb=Yw5aeV@nA2A%TPs=s~6mbJn3xX1+^=m<5Z+%;A%5dZ(#LSeP|(VX(GmT zSfdm3g|v%r{U>BQ9C0@&CR1{wy_uEi2`|+?rAZ9pEXSkWsDhY#fa_5c4t*~_KC6$a zd8e@Amr#j@mzlCDv+sG^G+tCowt#frh~q$03#~rZw9Dz9cMYGD1xMD< zA|Uy@S}7jJ<)ohRGZoM8RFy2?j*@;@aQE9)y~?7Ns(jQ1A;PObo4PrbMl4k)^Vk~ais8o zjEI4D<>h|zR87waD@;P_oCH;~e37yJ-Nc?V9LraNKPMFJTDa)>JiXg~ z=(JOs-`TRtN5wR(2i|(bA8=JS1q;hN0y(OEkLYh`pjgP45+UkN? zrI=@H{L- zE8o8C-g*!OB(Tepk@L7?RNVY)U=Eb%pJe|Jg%Cf+!fW(&%rqxpO|PeFnb3Jx@fs!! zdww&s9y$e}VX70>Th0rF6HBUNuZtPeMtskM323wKHhg9;E6^`;ZXOp3q_6Ubqf_$w z;~}XW|MlF^KyFQV&Ccz)tzvKI$kto&3W!h^OGh173zp4eW6^niyS6NGHSJQs#_f;J zZgs+^-l+Hx7f+R(=vrF@fM~nt6?K=DvO*a@jQbxJXIYFDvCA~rw(+Kx z0FY}_$I;HM;5$SlON`EG?NA=`N%7a~aSjib14b#ovv18PSFb=80H9LJ0o~}&m|2Zf zKxJ;Ip``oqEK<3VYZW<_{NH}84$7M`Zo)0$dGgP8t+NUzS?H*IbmpmT{R&f1Bhcc7 z7$XKj8mwtaH6p36g*04rq}EEL_4L8A?I=ZLXR(ohf(S~-Hz{shTFgOoN7o#`$?50M zQO1Z$ll3Dq)!D~<0wk%B$2%|&E*qfYUYn78K<|Q`tps`GKK4jy}5YyT7b| zT_AyQ%_4b`qt#20{LYM>p$ZnDv)Mux;7RNHQeg$udeGj;ZEn_Iv$>Mqpq=WFYtfo7 zu{JNAJlGh2qvzl&vNNM|DkRhNNZsAYfJA}Gnnv8EhGFqjO_;5U7@JjuvhFXcM x!+p~|n_o+6Ba45;yC$Q5#QW2t|3~Xx;oLuX&Up!g>|_FdS2gt1i!a*;{|DJ7gcSe) literal 0 HcmV?d00001 diff --git a/livebooks/audio_mixer/README.md b/livebooks/audio_mixer/README.md index fcc8c9d2..5c259d12 100644 --- a/livebooks/audio_mixer/README.md +++ b/livebooks/audio_mixer/README.md @@ -2,7 +2,7 @@ This livebook shows how to mix a beep sound into background music over a period of time. -To run the demo, [install Livebook](https://livebook.dev/#install) and open the `rtmp_sender.livemd` file there. +To run the demo, [install Livebook](https://github.com/livebook-dev/livebook#escript) and open the `audio_mixer.livemd` file there. ## Copyright and License diff --git a/livebooks/messages_source_and_sink/README.md b/livebooks/messages_source_and_sink/README.md index 55cced44..f3b9c183 100644 --- a/livebooks/messages_source_and_sink/README.md +++ b/livebooks/messages_source_and_sink/README.md @@ -2,7 +2,7 @@ This livebook shows how to setup a simple pipeline and send messages through it. -To run the demo, [install Livebook](https://livebook.dev/#install) and open the `rtmp_sender.livemd` file there. +To run the demo, [install Livebook](https://github.com/livebook-dev/livebook#escript) and open the `messages_source_and_sink.livemd` file there. ## Copyright and License diff --git a/livebooks/playing_mp3_file/README.md b/livebooks/playing_mp3_file/README.md index 2ae04a88..fcee8bb4 100644 --- a/livebooks/playing_mp3_file/README.md +++ b/livebooks/playing_mp3_file/README.md @@ -2,7 +2,7 @@ This livebook shows how to load `MP3` audio from the file, transcode it to the `AAC` codec, and play it. -To run the demo, [install Livebook](https://livebook.dev/#install) and open the `rtmp_sender.livemd` file there. +To run the demo, [install Livebook](https://github.com/livebook-dev/livebook#escript) and open the `playing_mp3_file.livemd` file there. ## Copyright and License diff --git a/livebooks/rtmp/README.md b/livebooks/rtmp/README.md index 4b567107..b9904572 100644 --- a/livebooks/rtmp/README.md +++ b/livebooks/rtmp/README.md @@ -1,10 +1,10 @@ # Membrane RMTP demo -Sender livebook shows how to download video and audio from web using the `Hackney` plugin, and stream it via `RTMP` to the other, receiver livebook. +Sender livebook shows how to download video and audio from the web using the `Hackney` plugin, and stream it via `RTMP` to the other, receiver livebook. Receiver livebook shows how to receive `RTMP` stream mentioned above and play it in the livebook. -To run the demo, [install Livebook](https://livebook.dev/#install) and open the `rtmp_sender.livemd` file there. +To run the demo, [install Livebook](https://github.com/livebook-dev/livebook#escript) and open both `rtmp_sender.livemd` and `rtmp_sender.livemd` files there. ## Copyright and License diff --git a/livebooks/soundwave/README.md b/livebooks/soundwave/README.md index 17d2f960..06095a7f 100644 --- a/livebooks/soundwave/README.md +++ b/livebooks/soundwave/README.md @@ -2,7 +2,7 @@ This livebook example shows how to perform real-time soundwave plotting with the use of the [Membrane Framework](https://github.com/membraneframework) and [Vega-Lite](https://vega.github.io/vega-lite/). -To run the demo, [install Livebook](https://livebook.dev/#install) and open the `soundwave.livemd` file there. +To run the demo, [install Livebook](https://github.com/livebook-dev/livebook#escript) and open the `soundwave.livemd` file there. ## Copyright and License From 15fe2826e8729eca1900253cf7b9930c57a3d909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Chali=C5=84ski?= Date: Thu, 25 Jan 2024 14:48:26 +0100 Subject: [PATCH 4/8] soundwave cosmetic fix --- livebooks/soundwave/soundwave.livemd | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/livebooks/soundwave/soundwave.livemd b/livebooks/soundwave/soundwave.livemd index 0ba65196..4d5b6c28 100644 --- a/livebooks/soundwave/soundwave.livemd +++ b/livebooks/soundwave/soundwave.livemd @@ -1,5 +1,15 @@ # Soundwave plotting example +## Introduction + +This livebook example shows how to perform real-time soundwave plotting with the use of the [Membrane Framework](https://github.com/membraneframework) and [Vega-Lite](https://vega.github.io/vega-lite/). + +By following that example you will learn how to read the audio from the microphone, how is audio represented, and how to create your custom Membrane element that plots the soundwave with the use of the elixir bindings to the Vega-Lite. + +## Installation + +You need to have `FFmpeg` installed. For installation details take a look [here](https://www.ffmpeg.org/). + ```elixir File.cd(__DIR__) Logger.configure(level: :error) @@ -13,16 +23,6 @@ Mix.install([ ]) ``` -## Installation - -You need to have `FFmpeg` installed. For installation details take a look [here](https://www.ffmpeg.org/). - -## Introduction - -This livebook example shows how to perform real-time soundwave plotting with the use of the [Membrane Framework](https://github.com/membraneframework) and [Vega-Lite](https://vega.github.io/vega-lite/). - -By following that example you will learn how to read the audio from the microphone, how is audio represented, and how to create your custom Membrane element that plots the soundwave with the use of the elixir bindings to the Vega-Lite. - ## Soundwave plotting sink Since there is no plugin in the `Membrane Framework`, that already provides an element capable of plotting soundwave, we need to write one on our own. From 0225ea29b659fc011d482738898526bd341d83b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Chali=C5=84ski?= Date: Thu, 25 Jan 2024 15:24:30 +0100 Subject: [PATCH 5/8] kino_plugin deps fix --- livebooks/audio_mixer/audio_mixer.livemd | 2 +- .../playing_mp3_file/playing_mp3_file.livemd | 2 +- livebooks/rtmp/rtmp_receiver.livemd | 5 ++--- livebooks/soundwave/soundwave.livemd | 20 +++++++++---------- 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/livebooks/audio_mixer/audio_mixer.livemd b/livebooks/audio_mixer/audio_mixer.livemd index dd8c963c..71dea2ca 100644 --- a/livebooks/audio_mixer/audio_mixer.livemd +++ b/livebooks/audio_mixer/audio_mixer.livemd @@ -11,7 +11,7 @@ Mix.install([ {:membrane_mp3_mad_plugin, "~> 0.18.0"}, {:membrane_ffmpeg_swresample_plugin, "~> 0.19.0"}, {:membrane_aac_fdk_plugin, "~> 0.18.0"}, - {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin"}, + {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin", tag: "v0.3.1"}, {:membrane_tee_plugin, "~> 0.12.0"} ]) ``` diff --git a/livebooks/playing_mp3_file/playing_mp3_file.livemd b/livebooks/playing_mp3_file/playing_mp3_file.livemd index 038793bf..4017a8af 100644 --- a/livebooks/playing_mp3_file/playing_mp3_file.livemd +++ b/livebooks/playing_mp3_file/playing_mp3_file.livemd @@ -10,7 +10,7 @@ Mix.install([ {:membrane_mp3_mad_plugin, "~> 0.18.0"}, {:membrane_ffmpeg_swresample_plugin, "~> 0.19.0"}, {:membrane_aac_fdk_plugin, "~> 0.18.0"}, - {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin"} + {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin", tag: "v0.3.1"} ]) ``` diff --git a/livebooks/rtmp/rtmp_receiver.livemd b/livebooks/rtmp/rtmp_receiver.livemd index 18a375aa..e5e12e2e 100644 --- a/livebooks/rtmp/rtmp_receiver.livemd +++ b/livebooks/rtmp/rtmp_receiver.livemd @@ -5,11 +5,10 @@ File.cd(__DIR__) Logger.configure(level: :error) Mix.install([ - # {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin", tag: "v0.3.0"}, - {:membrane_kino_plugin, path: "/Users/bartekch/Desktop/membrane_kino_plugin"}, {:membrane_core, "~> 1.0"}, {:membrane_realtimer_plugin, "~> 0.9.0"}, - {:membrane_rtmp_plugin, "~> 0.19.0"} + {:membrane_rtmp_plugin, "~> 0.19.0"}, + {:membrane_kino_plugin, github: "membraneframework-labs/membrane_kino_plugin", tag: "v0.3.1"} ]) ``` diff --git a/livebooks/soundwave/soundwave.livemd b/livebooks/soundwave/soundwave.livemd index 4d5b6c28..e89a8652 100644 --- a/livebooks/soundwave/soundwave.livemd +++ b/livebooks/soundwave/soundwave.livemd @@ -1,15 +1,5 @@ # Soundwave plotting example -## Introduction - -This livebook example shows how to perform real-time soundwave plotting with the use of the [Membrane Framework](https://github.com/membraneframework) and [Vega-Lite](https://vega.github.io/vega-lite/). - -By following that example you will learn how to read the audio from the microphone, how is audio represented, and how to create your custom Membrane element that plots the soundwave with the use of the elixir bindings to the Vega-Lite. - -## Installation - -You need to have `FFmpeg` installed. For installation details take a look [here](https://www.ffmpeg.org/). - ```elixir File.cd(__DIR__) Logger.configure(level: :error) @@ -23,6 +13,16 @@ Mix.install([ ]) ``` +## Introduction + +This livebook example shows how to perform real-time soundwave plotting with the use of the [Membrane Framework](https://github.com/membraneframework) and [Vega-Lite](https://vega.github.io/vega-lite/). + +By following that example you will learn how to read the audio from the microphone, how is audio represented, and how to create your custom Membrane element that plots the soundwave with the use of the elixir bindings to the Vega-Lite. + +## Installation + +You need to have `FFmpeg` installed. For installation details take a look [here](https://www.ffmpeg.org/). + ## Soundwave plotting sink Since there is no plugin in the `Membrane Framework`, that already provides an element capable of plotting soundwave, we need to write one on our own. From 64ec53ca1521ce7638fc4b429e7b63ad364dab03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Chali=C5=84ski?= Date: Thu, 25 Jan 2024 17:25:19 +0100 Subject: [PATCH 6/8] stucture -> spec replace, readme fix --- livebooks/README.md | 8 +++----- livebooks/audio_mixer/audio_mixer.livemd | 4 ++-- livebooks/rtmp/rtmp_receiver.livemd | 4 ++-- livebooks/rtmp/rtmp_sender.livemd | 4 ++-- livebooks/soundwave/soundwave.livemd | 2 +- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/livebooks/README.md b/livebooks/README.md index c25d8bfc..c37d88e9 100644 --- a/livebooks/README.md +++ b/livebooks/README.md @@ -4,9 +4,7 @@ This folder contains interactive livebook examples. To launch them you need to i ## Installation -1. Install Livebook +It is recommended to install Livebook via command line ([see official installation guide](https://github.com/livebook-dev/livebook#escript)). - It is recommended to install Livebook via command line ([see official installation guide](https://github.com/livebook-dev/livebook#escript)). - - If livebook was installed directly from the official page, one should add `$PATH` variable to the Livebook environment: - ![Setting path](./assets/path_set.png "Title") \ No newline at end of file +If livebook was installed directly from the official page, one should add `$PATH` variable to the Livebook environment: +![Setting path](./assets/path_set.png "Title") \ No newline at end of file diff --git a/livebooks/audio_mixer/audio_mixer.livemd b/livebooks/audio_mixer/audio_mixer.livemd index 71dea2ca..121ce3c2 100644 --- a/livebooks/audio_mixer/audio_mixer.livemd +++ b/livebooks/audio_mixer/audio_mixer.livemd @@ -104,7 +104,7 @@ mixer_output = Whole pipeline structure. ```elixir -structure = beeps_split ++ [beep_audio_input, background_audio_input, mixer_output] +spec = beeps_split ++ [beep_audio_input, background_audio_input, mixer_output] :ok ``` @@ -114,7 +114,7 @@ structure = beeps_split ++ [beep_audio_input, background_audio_input, mixer_outp alias Membrane.RCPipeline, as: RC pipeline = RC.start!() -RC.exec_actions(pipeline, spec: structure) +RC.exec_actions(pipeline, spec: spec) kino ``` diff --git a/livebooks/rtmp/rtmp_receiver.livemd b/livebooks/rtmp/rtmp_receiver.livemd index e5e12e2e..b84ff3a0 100644 --- a/livebooks/rtmp/rtmp_receiver.livemd +++ b/livebooks/rtmp/rtmp_receiver.livemd @@ -62,8 +62,8 @@ defmodule RTMP.Receiver.Pipeline do player = child(:player, %Membrane.Kino.Player.Sink{kino: kino}) - structure = [source, playing_audio, playing_video, player] - {[spec: structure], %{}} + spec = [source, playing_audio, playing_video, player] + {[spec: spec], %{}} end # Once the source initializes, we grant it the control over the tcp socket diff --git a/livebooks/rtmp/rtmp_sender.livemd b/livebooks/rtmp/rtmp_sender.livemd index 35e19e83..f429b7e6 100644 --- a/livebooks/rtmp/rtmp_sender.livemd +++ b/livebooks/rtmp/rtmp_sender.livemd @@ -64,7 +64,7 @@ defmodule RTMP.Sender.Pipeline do max_attempts: :infinity }) - structure = [ + spec = [ video_source |> via_in(Pad.ref(:video, 0)) |> get_child(:rtmp_sink), @@ -74,7 +74,7 @@ defmodule RTMP.Sender.Pipeline do rtmp_sink ] - {[spec: structure], %{streams_to_end: 2}} + {[spec: spec], %{streams_to_end: 2}} end # The rest of the example module is only used for self-termination of the pipeline after processing finishes diff --git a/livebooks/soundwave/soundwave.livemd b/livebooks/soundwave/soundwave.livemd index e89a8652..6879bba5 100644 --- a/livebooks/soundwave/soundwave.livemd +++ b/livebooks/soundwave/soundwave.livemd @@ -239,7 +239,7 @@ alias Membrane.RCPipeline pipeline = RCPipeline.start!() ``` -Finally, we can commission `spec` action execution with the previously created `structure`: +Finally, we can commission `spec` action execution with the previously created pipeline stucture: ```elixir RCPipeline.exec_actions(pipeline, spec: spec) From 514450574e8261b06f4a8bac8ac856a8b6cf8714 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Chali=C5=84ski?= Date: Thu, 25 Jan 2024 17:43:05 +0100 Subject: [PATCH 7/8] brackets formatting fix --- .../messages_source_and_sink.livemd | 25 +++++++++++-------- livebooks/soundwave/soundwave.livemd | 3 +-- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/livebooks/messages_source_and_sink/messages_source_and_sink.livemd b/livebooks/messages_source_and_sink/messages_source_and_sink.livemd index 855f632b..9c88f212 100644 --- a/livebooks/messages_source_and_sink/messages_source_and_sink.livemd +++ b/livebooks/messages_source_and_sink/messages_source_and_sink.livemd @@ -17,17 +17,15 @@ defmodule MessageSource do require Membrane.Logger - def_output_pad(:output, + def_output_pad :output, flow_control: :push, accepted_format: _any - ) - def_options( - register_name: [ - description: "The name under which the element's process will be registered", - spec: atom() - ] - ) + def_options register_name: [ + description: "The name under which the element's process will be registered", + spec: atom() + ] + @impl true def handle_init(_ctx, opts) do @@ -75,9 +73,14 @@ end defmodule MessageSink do use Membrane.Sink - def_input_pad(:input, flow_control: :push, accepted_format: _any) - def_options(receiver: [description: "PID of the process that will - receive messages from the sink", spec: pid()]) + def_input_pad :input, + flow_control: :push, + accepted_format: _any + + def_options receiver: [ + description: "PID of the process that will receive messages from the sink", + spec: pid() + ] @impl true def handle_init(_ctx, opts) do diff --git a/livebooks/soundwave/soundwave.livemd b/livebooks/soundwave/soundwave.livemd index 6879bba5..6abdf336 100644 --- a/livebooks/soundwave/soundwave.livemd +++ b/livebooks/soundwave/soundwave.livemd @@ -82,10 +82,9 @@ defmodule Visualizer do @points_per_update @window_size / (@window_duration * @plot_update_frequency) - def_input_pad(:input, + def_input_pad :input, accepted_format: %RawAudio{}, flow_control: :auto - ) @impl true def handle_init(_ctx, _opts) do From 346df7eab2c85a7f748794a4b334107721d44538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Chali=C5=84ski?= Date: Thu, 25 Jan 2024 18:04:57 +0100 Subject: [PATCH 8/8] readme updates, speech_to_text moved to livebooks --- README.md | 13 ++++++++++--- .../speech_to_text}/README.md | 0 .../speech_to_text}/speech_to_text.livemd | 0 3 files changed, 10 insertions(+), 3 deletions(-) rename {speech_to_text => livebooks/speech_to_text}/README.md (100%) rename {speech_to_text => livebooks/speech_to_text}/speech_to_text.livemd (100%) diff --git a/README.md b/README.md index 7f3463ba..c20a7fd4 100644 --- a/README.md +++ b/README.md @@ -12,13 +12,20 @@ In the subdirectories of this repository you can find some examples of using the - [rtp_to_hls](https://github.com/membraneframework/membrane_demo/tree/master/rtp_to_hls) - receiving RTP stream and broadcasting it via HLS - [rtsp_to_hls](https://github.com/membraneframework/membrane_demo/tree/master/rtsp_to_hls) - receiving RTSP stream and converting it to HLS - [video_mixer](https://github.com/membraneframework/membrane_demo/tree/master/video_mixer) - how to mix audio and video files -- [speech_to_text](https://github.com/membraneframework/membrane_demo/tree/master/speech_to_text) - real-time speech recognition using [Whisper](https://github.com/openai/whisper) in [Livebook] - [webrtc_to_hls](https://github.com/jellyfish-dev/membrane_rtc_engine/tree/master/examples/webrtc_to_hls) - converting WebRTC stream into HLS - [webrtc_videoroom](https://github.com/jellyfish-dev/membrane_rtc_engine/tree/master/examples/webrtc_videoroom) - basic example of [Membrane RTC Engine](https://github.com/jellyfish-dev/membrane_rtc_engine.git). It's as simple as possible just to show you how to use our API. -- + +Also there are some livebook examples located in [livebooks](https://github.com/membraneframework/membrane_demo/tree/master/livebooks) directory: + +- [speech_to_text](https://github.com/membraneframework/membrane_demo/tree/master/livebooks/speech_to_text) - real-time speech recognition using [Whisper](https://github.com/openai/whisper) in [Livebook] +- [audio_mixer](https://github.com/membraneframework/membrane_demo/tree/master/livebooks/audio_mixer) - mix a beep sound into background music +- [messages_source_and_sink](https://github.com/membraneframework/membrane_demo/tree/master/livebooks/messages_source_and_sink) - setup a simple pipeline and send messages through it +- [playing_mp3_file](https://github.com/membraneframework/membrane_demo/tree/master/livebooks/playing_mp3_file) - read mp3 file, transcode to acc and play +- [rtmp](https://github.com/membraneframework/membrane_demo/tree/master/livebooks/rtmp) - send and receive `RTMP` stream +- [soundwave](https://github.com/membraneframework/membrane_demo/tree/master/livebooks/soundwave) - plot live audio amplitude on a graph ## Copyright and License -Copyright 2018, [Software Mansion](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) +Copyright 2024, [Software Mansion](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) [![Software Mansion](https://logo.swmansion.com/logo?color=white&variant=desktop&width=200&tag=membrane-github)](https://swmansion.com/?utm_source=git&utm_medium=readme&utm_campaign=membrane) diff --git a/speech_to_text/README.md b/livebooks/speech_to_text/README.md similarity index 100% rename from speech_to_text/README.md rename to livebooks/speech_to_text/README.md diff --git a/speech_to_text/speech_to_text.livemd b/livebooks/speech_to_text/speech_to_text.livemd similarity index 100% rename from speech_to_text/speech_to_text.livemd rename to livebooks/speech_to_text/speech_to_text.livemd