From a894f22ae5ab2b6a57ad41e4d84a6b153f8f401d Mon Sep 17 00:00:00 2001 From: ross <3024454314@qq.com> Date: Thu, 12 Feb 2026 14:59:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=BA=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/CMakeLists.txt | 29 + app/build.gradle | 5 +- .../keywords.txt | 63 +- app/src/main/cpp/opus.h | 981 ++++++++++++++++++ app/src/main/cpp/opus_custom.h | 342 ++++++ app/src/main/cpp/opus_decoder.cpp | 70 ++ app/src/main/cpp/opus_defines.h | 799 ++++++++++++++ app/src/main/cpp/opus_multistream.h | 660 ++++++++++++ app/src/main/cpp/opus_projection.h | 568 ++++++++++ app/src/main/cpp/opus_recorder.cpp | 77 ++ app/src/main/cpp/opus_types.h | 166 +++ .../com/zs/smarthuman/sherpa/VadManager.kt | 40 +- .../zs/smarthuman/sherpa/VoiceController.kt | 210 +--- .../com/zs/smarthuman/sherpa/WakeupManager.kt | 19 +- .../com/zs/smarthuman/utils/OpusDecoder.kt | 76 ++ .../com/zs/smarthuman/utils/OpusEncoder.kt | 75 ++ .../smarthuman/websocket/WebsocketProtocol.kt | 459 ++++++++ .../zs/smarthuman/websocket/WebsocketType.kt | 11 + app/src/main/jniLibs/arm64-v8a/libopus.so | Bin 0 -> 415496 bytes app/src/main/jniLibs/armeabi-v7a/libopus.so | Bin 0 -> 341632 bytes gradle/libs.versions.toml | 4 +- settings.gradle | 7 + 22 files changed, 4477 insertions(+), 184 deletions(-) create mode 100644 app/src/main/cpp/opus.h create mode 100644 app/src/main/cpp/opus_custom.h create mode 100644 app/src/main/cpp/opus_decoder.cpp create mode 100644 app/src/main/cpp/opus_defines.h create mode 100644 app/src/main/cpp/opus_multistream.h create mode 100644 app/src/main/cpp/opus_projection.h create mode 100644 app/src/main/cpp/opus_recorder.cpp create mode 100644 app/src/main/cpp/opus_types.h create mode 100644 app/src/main/java/com/zs/smarthuman/utils/OpusDecoder.kt create mode 100644 app/src/main/java/com/zs/smarthuman/utils/OpusEncoder.kt create mode 100644 app/src/main/java/com/zs/smarthuman/websocket/WebsocketProtocol.kt create mode 100644 app/src/main/java/com/zs/smarthuman/websocket/WebsocketType.kt create mode 100644 app/src/main/jniLibs/arm64-v8a/libopus.so create mode 100644 app/src/main/jniLibs/armeabi-v7a/libopus.so diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt index e69de29..c609155 100644 --- a/app/CMakeLists.txt +++ b/app/CMakeLists.txt @@ -0,0 +1,29 @@ +cmake_minimum_required(VERSION 3.18.1) +project(app CXX) + +# ========== 关键修正1:源码路径(CMAKE_CURRENT_SOURCE_DIR 就是 src/main/cpp,无需重复加路径) ========== +add_library( + app + SHARED + # 直接写文件名即可,否则会找 src/main/cpp/src/main/cpp/xxx.cpp(路径重复) + ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/opus_recorder.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/opus_decoder.cpp +) + +# ========== 关键修正2:正确导入本地 jniLibs 下的 libopus.so ========== +# 1. 声明 opus 为「导入库」(SHARED 对应 .so 动态库) +add_library(opus SHARED IMPORTED) +# 2. 指定 libopus.so 的绝对路径(适配不同架构:arm64-v8a/armeabi-v7a 等) +set_target_properties(opus PROPERTIES + IMPORTED_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/src/main/jniLibs/${ANDROID_ABI}/libopus.so + # 可选:如果需要头文件,添加这行(头文件放 src/main/cpp/include/opus/ 下) + # INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR}/include +) + +# ========== 关键修正3:链接导入的 opus 库(直接写库名,不用 opus:: 前缀) ========== +target_link_libraries( + app + PRIVATE + opus # 链接上面声明的本地 libopus.so + log # Android 日志库 +) \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 374b54f..12569e1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -19,7 +19,8 @@ android { externalNativeBuild { cmake { - cppFlags "" + arguments += "-DANDROID_STL=c++_shared" + cppFlags += "-std=c++17" } } @@ -50,6 +51,7 @@ android { buildFeatures { buildConfig = true // 显式启用 + prefab = true } buildTypes { @@ -182,4 +184,5 @@ dependencies { implementation files('libs/sherpa-onnx-1.12.23.aar') + implementation(libs.opus.v131) } \ No newline at end of file diff --git a/app/src/main/assets/sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01/keywords.txt b/app/src/main/assets/sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01/keywords.txt index 026a219..a7c8d1c 100644 --- a/app/src/main/assets/sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01/keywords.txt +++ b/app/src/main/assets/sherpa-onnx-kws-zipformer-wenetspeech-3.3M-2024-01-01/keywords.txt @@ -1,3 +1,60 @@ -x iǎo z ì t óng x ué @小智同学 -x iǎo zh ì t óng x ué @小智同学 -x iǎo zh ì t óng x ié @小智同学 \ No newline at end of file +x iǎo zh ì t óng x ué +x iǎo z ì t óng x ué +x iǎo j ì t óng x ué +x iǎo ch ì t óng x ué +x iáo zh ì t óng x ué +x iào zh ì t óng x ué +x iǎo zh í t óng x ué +x iǎo zh ǐ t óng x ué +x iǎo zh ì t ōng x ué +x iǎo zh ì t òng x ué +x iǎo zh ì t óng x uē +x iǎo zh ì t óng x uè +x iǎo zh ì t óng y ué +x iǎo zh i t óng x ué +x iǎo zh ì t óng x uè +x iǎo zh ì t óng x ué +x iǎo z ì t óng x ué +x iǎo j ì t óng x ué +x iǎo ch ì t óng x ué +x iáo zh ì t óng x ué +x iǎo zh í t óng x ué +x iǎo zh ì t ōng x ué +x iǎo zh ì t óng x uè + + +x iǎo zh ì d óng x ué +x iǎo z ì d óng x ué +x iǎo j ì d óng x ué +x iǎo ch ì d óng x ué +x iáo zh ì d óng x ué +x iào zh ì d óng x ué +x iǎo zh í d óng x ué +x iǎo zh ǐ d óng x ué +x iǎo zh ì d ōng x ué +x iǎo zh ì d òng x ué +x iǎo zh ì d óng x uē +x iǎo zh ì d óng x uè +x iǎo zh ì d óng y ué +x iǎo zh i d óng x ué +x iǎo zh ì d óng x uè +x iǎo zh ì d óng x ué +x iǎo z ì d óng x ué +x iǎo j ì d óng x ué +x iǎo ch ì d óng x ué +x iáo zh ì d óng x ué +x iǎo zh í d óng x ué +x iǎo zh ì d ōng x ué +x iǎo zh ì d óng x uè + +s iǎo zh ì t óng x ué +sh iǎo zh ì t óng x ué +h iǎo zh ì t óng x ué +s iǎo zh ì t óng x ué +sh iǎo zh ì t óng x ué + +s iǎo zh ì d óng x ué +sh iǎo zh ì d óng x ué +h iǎo zh ì d óng x ué +x iào zh ì t óng x ué +x iào zh ì d óng x ué diff --git a/app/src/main/cpp/opus.h b/app/src/main/cpp/opus.h new file mode 100644 index 0000000..d282f21 --- /dev/null +++ b/app/src/main/cpp/opus.h @@ -0,0 +1,981 @@ +/* Copyright (c) 2010-2011 Xiph.Org Foundation, Skype Limited + Written by Jean-Marc Valin and Koen Vos */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus.h + * @brief Opus reference implementation API + */ + +#ifndef OPUS_H +#define OPUS_H + +#include "opus_types.h" +#include "opus_defines.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @mainpage Opus + * + * The Opus codec is designed for interactive speech and audio transmission over the Internet. + * It is designed by the IETF Codec Working Group and incorporates technology from + * Skype's SILK codec and Xiph.Org's CELT codec. + * + * The Opus codec is designed to handle a wide range of interactive audio applications, + * including Voice over IP, videoconferencing, in-game chat, and even remote live music + * performances. It can scale from low bit-rate narrowband speech to very high quality + * stereo music. Its main features are: + + * @li Sampling rates from 8 to 48 kHz + * @li Bit-rates from 6 kb/s to 510 kb/s + * @li Support for both constant bit-rate (CBR) and variable bit-rate (VBR) + * @li Audio bandwidth from narrowband to full-band + * @li Support for speech and music + * @li Support for mono and stereo + * @li Support for multichannel (up to 255 channels) + * @li Frame sizes from 2.5 ms to 60 ms + * @li Good loss robustness and packet loss concealment (PLC) + * @li Floating point and fixed-point implementation + * + * Documentation sections: + * @li @ref opus_encoder + * @li @ref opus_decoder + * @li @ref opus_repacketizer + * @li @ref opus_multistream + * @li @ref opus_libinfo + * @li @ref opus_custom + */ + +/** @defgroup opus_encoder Opus Encoder + * @{ + * + * @brief This page describes the process and functions used to encode Opus. + * + * Since Opus is a stateful codec, the encoding process starts with creating an encoder + * state. This can be done with: + * + * @code + * int error; + * OpusEncoder *enc; + * enc = opus_encoder_create(Fs, channels, application, &error); + * @endcode + * + * From this point, @c enc can be used for encoding an audio stream. An encoder state + * @b must @b not be used for more than one stream at the same time. Similarly, the encoder + * state @b must @b not be re-initialized for each frame. + * + * While opus_encoder_create() allocates memory for the state, it's also possible + * to initialize pre-allocated memory: + * + * @code + * int size; + * int error; + * OpusEncoder *enc; + * size = opus_encoder_get_size(channels); + * enc = malloc(size); + * error = opus_encoder_init(enc, Fs, channels, application); + * @endcode + * + * where opus_encoder_get_size() returns the required size for the encoder state. Note that + * future versions of this code may change the size, so no assuptions should be made about it. + * + * The encoder state is always continuous in memory and only a shallow copy is sufficient + * to copy it (e.g. memcpy()) + * + * It is possible to change some of the encoder's settings using the opus_encoder_ctl() + * interface. All these settings already default to the recommended value, so they should + * only be changed when necessary. The most common settings one may want to change are: + * + * @code + * opus_encoder_ctl(enc, OPUS_SET_BITRATE(bitrate)); + * opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(complexity)); + * opus_encoder_ctl(enc, OPUS_SET_SIGNAL(signal_type)); + * @endcode + * + * where + * + * @arg bitrate is in bits per second (b/s) + * @arg complexity is a value from 1 to 10, where 1 is the lowest complexity and 10 is the highest + * @arg signal_type is either OPUS_AUTO (default), OPUS_SIGNAL_VOICE, or OPUS_SIGNAL_MUSIC + * + * See @ref opus_encoderctls and @ref opus_genericctls for a complete list of parameters that can be set or queried. Most parameters can be set or changed at any time during a stream. + * + * To encode a frame, opus_encode() or opus_encode_float() must be called with exactly one frame (2.5, 5, 10, 20, 40 or 60 ms) of audio data: + * @code + * len = opus_encode(enc, audio_frame, frame_size, packet, max_packet); + * @endcode + * + * where + * + * + * opus_encode() and opus_encode_float() return the number of bytes actually written to the packet. + * The return value can be negative, which indicates that an error has occurred. If the return value + * is 2 bytes or less, then the packet does not need to be transmitted (DTX). + * + * Once the encoder state if no longer needed, it can be destroyed with + * + * @code + * opus_encoder_destroy(enc); + * @endcode + * + * If the encoder was created with opus_encoder_init() rather than opus_encoder_create(), + * then no action is required aside from potentially freeing the memory that was manually + * allocated for it (calling free(enc) for the example above) + * + */ + +/** Opus encoder state. + * This contains the complete state of an Opus encoder. + * It is position independent and can be freely copied. + * @see opus_encoder_create,opus_encoder_init + */ +typedef struct OpusEncoder OpusEncoder; + +/** Gets the size of an OpusEncoder structure. + * @param[in] channels int: Number of channels. + * This must be 1 or 2. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_encoder_get_size(int channels); + +/** + */ + +/** Allocates and initializes an encoder state. + * There are three coding modes: + * + * @ref OPUS_APPLICATION_VOIP gives best quality at a given bitrate for voice + * signals. It enhances the input signal by high-pass filtering and + * emphasizing formants and harmonics. Optionally it includes in-band + * forward error correction to protect against packet loss. Use this + * mode for typical VoIP applications. Because of the enhancement, + * even at high bitrates the output may sound different from the input. + * + * @ref OPUS_APPLICATION_AUDIO gives best quality at a given bitrate for most + * non-voice signals like music. Use this mode for music and mixed + * (music/voice) content, broadcast, and applications requiring less + * than 15 ms of coding delay. + * + * @ref OPUS_APPLICATION_RESTRICTED_LOWDELAY configures low-delay mode that + * disables the speech-optimized mode in exchange for slightly reduced delay. + * This mode can only be set on an newly initialized or freshly reset encoder + * because it changes the codec delay. + * + * This is useful when the caller knows that the speech-optimized modes will not be needed (use with caution). + * @param [in] Fs opus_int32: Sampling rate of input signal (Hz) + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) in input signal + * @param [in] application int: Coding mode (@ref OPUS_APPLICATION_VOIP/@ref OPUS_APPLICATION_AUDIO/@ref OPUS_APPLICATION_RESTRICTED_LOWDELAY) + * @param [out] error int*: @ref opus_errorcodes + * @note Regardless of the sampling rate and number channels selected, the Opus encoder + * can switch to a lower audio bandwidth or number of channels if the bitrate + * selected is too low. This also means that it is safe to always use 48 kHz stereo input + * and let the encoder optimize the encoding. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusEncoder *opus_encoder_create( + opus_int32 Fs, + int channels, + int application, + int *error +); + +/** Initializes a previously allocated encoder state + * The memory pointed to by st must be at least the size returned by opus_encoder_get_size(). + * This is intended for applications which use their own allocator instead of malloc. + * @see opus_encoder_create(),opus_encoder_get_size() + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] Fs opus_int32: Sampling rate of input signal (Hz) + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) in input signal + * @param [in] application int: Coding mode (OPUS_APPLICATION_VOIP/OPUS_APPLICATION_AUDIO/OPUS_APPLICATION_RESTRICTED_LOWDELAY) + * @retval #OPUS_OK Success or @ref opus_errorcodes + */ +OPUS_EXPORT int opus_encoder_init( + OpusEncoder *st, + opus_int32 Fs, + int channels, + int application +) OPUS_ARG_NONNULL(1); + +/** Encodes an Opus frame. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] pcm opus_int16*: Input signal (interleaved if 2 channels). length is frame_size*channels*sizeof(opus_int16) + * @param [in] frame_size int: Number of samples per channel in the + * input signal. + * This must be an Opus frame size for + * the encoder's sampling rate. + * For example, at 48 kHz the permitted + * values are 120, 240, 480, 960, 1920, + * and 2880. + * Passing in a duration of less than + * 10 ms (480 samples at 48 kHz) will + * prevent the encoder from using the LPC + * or hybrid modes. + * @param [out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_encode( + OpusEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Encodes an Opus frame from floating point input. + * @param [in] st OpusEncoder*: Encoder state + * @param [in] pcm float*: Input in float format (interleaved if 2 channels), with a normal range of +/-1.0. + * Samples with a range beyond +/-1.0 are supported but will + * be clipped by decoders using the integer API and should + * only be used if it is known that the far end supports + * extended dynamic range. + * length is frame_size*channels*sizeof(float) + * @param [in] frame_size int: Number of samples per channel in the + * input signal. + * This must be an Opus frame size for + * the encoder's sampling rate. + * For example, at 48 kHz the permitted + * values are 120, 240, 480, 960, 1920, + * and 2880. + * Passing in a duration of less than + * 10 ms (480 samples at 48 kHz) will + * prevent the encoder from using the LPC + * or hybrid modes. + * @param [out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_encode_float( + OpusEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Frees an OpusEncoder allocated by opus_encoder_create(). + * @param[in] st OpusEncoder*: State to be freed. + */ +OPUS_EXPORT void opus_encoder_destroy(OpusEncoder *st); + +/** Perform a CTL function on an Opus encoder. + * + * Generally the request and subsequent arguments are generated + * by a convenience macro. + * @param st OpusEncoder*: Encoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls or + * @ref opus_encoderctls. + * @see opus_genericctls + * @see opus_encoderctls + */ +OPUS_EXPORT int opus_encoder_ctl(OpusEncoder *st, int request, ...) OPUS_ARG_NONNULL(1); +/**@}*/ + +/** @defgroup opus_decoder Opus Decoder + * @{ + * + * @brief This page describes the process and functions used to decode Opus. + * + * The decoding process also starts with creating a decoder + * state. This can be done with: + * @code + * int error; + * OpusDecoder *dec; + * dec = opus_decoder_create(Fs, channels, &error); + * @endcode + * where + * @li Fs is the sampling rate and must be 8000, 12000, 16000, 24000, or 48000 + * @li channels is the number of channels (1 or 2) + * @li error will hold the error code in case of failure (or #OPUS_OK on success) + * @li the return value is a newly created decoder state to be used for decoding + * + * While opus_decoder_create() allocates memory for the state, it's also possible + * to initialize pre-allocated memory: + * @code + * int size; + * int error; + * OpusDecoder *dec; + * size = opus_decoder_get_size(channels); + * dec = malloc(size); + * error = opus_decoder_init(dec, Fs, channels); + * @endcode + * where opus_decoder_get_size() returns the required size for the decoder state. Note that + * future versions of this code may change the size, so no assuptions should be made about it. + * + * The decoder state is always continuous in memory and only a shallow copy is sufficient + * to copy it (e.g. memcpy()) + * + * To decode a frame, opus_decode() or opus_decode_float() must be called with a packet of compressed audio data: + * @code + * frame_size = opus_decode(dec, packet, len, decoded, max_size, 0); + * @endcode + * where + * + * @li packet is the byte array containing the compressed data + * @li len is the exact number of bytes contained in the packet + * @li decoded is the decoded audio data in opus_int16 (or float for opus_decode_float()) + * @li max_size is the max duration of the frame in samples (per channel) that can fit into the decoded_frame array + * + * opus_decode() and opus_decode_float() return the number of samples (per channel) decoded from the packet. + * If that value is negative, then an error has occurred. This can occur if the packet is corrupted or if the audio + * buffer is too small to hold the decoded audio. + * + * Opus is a stateful codec with overlapping blocks and as a result Opus + * packets are not coded independently of each other. Packets must be + * passed into the decoder serially and in the correct order for a correct + * decode. Lost packets can be replaced with loss concealment by calling + * the decoder with a null pointer and zero length for the missing packet. + * + * A single codec state may only be accessed from a single thread at + * a time and any required locking must be performed by the caller. Separate + * streams must be decoded with separate decoder states and can be decoded + * in parallel unless the library was compiled with NONTHREADSAFE_PSEUDOSTACK + * defined. + * + */ + +/** Opus decoder state. + * This contains the complete state of an Opus decoder. + * It is position independent and can be freely copied. + * @see opus_decoder_create,opus_decoder_init + */ +typedef struct OpusDecoder OpusDecoder; + +/** Gets the size of an OpusDecoder structure. + * @param [in] channels int: Number of channels. + * This must be 1 or 2. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decoder_get_size(int channels); + +/** Allocates and initializes a decoder state. + * @param [in] Fs opus_int32: Sample rate to decode at (Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) to decode + * @param [out] error int*: #OPUS_OK Success or @ref opus_errorcodes + * + * Internally Opus stores data at 48000 Hz, so that should be the default + * value for Fs. However, the decoder can efficiently decode to buffers + * at 8, 12, 16, and 24 kHz so if for some reason the caller cannot use + * data at the full sample rate, or knows the compressed data doesn't + * use the full frequency range, it can request decoding at a reduced + * rate. Likewise, the decoder is capable of filling in either mono or + * interleaved stereo pcm buffers, at the caller's request. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusDecoder *opus_decoder_create( + opus_int32 Fs, + int channels, + int *error +); + +/** Initializes a previously allocated decoder state. + * The state must be at least the size returned by opus_decoder_get_size(). + * This is intended for applications which use their own allocator instead of malloc. @see opus_decoder_create,opus_decoder_get_size + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @param [in] st OpusDecoder*: Decoder state. + * @param [in] Fs opus_int32: Sampling rate to decode to (Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param [in] channels int: Number of channels (1 or 2) to decode + * @retval #OPUS_OK Success or @ref opus_errorcodes + */ +OPUS_EXPORT int opus_decoder_init( + OpusDecoder *st, + opus_int32 Fs, + int channels +) OPUS_ARG_NONNULL(1); + +/** Decode an Opus packet. + * @param [in] st OpusDecoder*: Decoder state + * @param [in] data char*: Input payload. Use a NULL pointer to indicate packet loss + * @param [in] len opus_int32: Number of bytes in payload* + * @param [out] pcm opus_int16*: Output signal (interleaved if 2 channels). length + * is frame_size*channels*sizeof(opus_int16) + * @param [in] frame_size Number of samples per channel of available space in \a pcm. + * If this is less than the maximum packet duration (120ms; 5760 for 48kHz), this function will + * not be capable of decoding some packets. In the case of PLC (data==NULL) or FEC (decode_fec=1), + * then frame_size needs to be exactly the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the next incoming packet. For the PLC and + * FEC cases, frame_size must be a multiple of 2.5 ms. + * @param [in] decode_fec int: Flag (0 or 1) to request that any in-band forward error correction data be + * decoded. If no such data is available, the frame is decoded as if it were lost. + * @returns Number of decoded samples or @ref opus_errorcodes + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decode( + OpusDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Decode an Opus packet with floating point output. + * @param [in] st OpusDecoder*: Decoder state + * @param [in] data char*: Input payload. Use a NULL pointer to indicate packet loss + * @param [in] len opus_int32: Number of bytes in payload + * @param [out] pcm float*: Output signal (interleaved if 2 channels). length + * is frame_size*channels*sizeof(float) + * @param [in] frame_size Number of samples per channel of available space in \a pcm. + * If this is less than the maximum packet duration (120ms; 5760 for 48kHz), this function will + * not be capable of decoding some packets. In the case of PLC (data==NULL) or FEC (decode_fec=1), + * then frame_size needs to be exactly the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the next incoming packet. For the PLC and + * FEC cases, frame_size must be a multiple of 2.5 ms. + * @param [in] decode_fec int: Flag (0 or 1) to request that any in-band forward error correction data be + * decoded. If no such data is available the frame is decoded as if it were lost. + * @returns Number of decoded samples or @ref opus_errorcodes + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decode_float( + OpusDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Perform a CTL function on an Opus decoder. + * + * Generally the request and subsequent arguments are generated + * by a convenience macro. + * @param st OpusDecoder*: Decoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls or + * @ref opus_decoderctls. + * @see opus_genericctls + * @see opus_decoderctls + */ +OPUS_EXPORT int opus_decoder_ctl(OpusDecoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/** Frees an OpusDecoder allocated by opus_decoder_create(). + * @param[in] st OpusDecoder*: State to be freed. + */ +OPUS_EXPORT void opus_decoder_destroy(OpusDecoder *st); + +/** Parse an opus packet into one or more frames. + * Opus_decode will perform this operation internally so most applications do + * not need to use this function. + * This function does not copy the frames, the returned pointers are pointers into + * the input packet. + * @param [in] data char*: Opus packet to be parsed + * @param [in] len opus_int32: size of data + * @param [out] out_toc char*: TOC pointer + * @param [out] frames char*[48] encapsulated frames + * @param [out] size opus_int16[48] sizes of the encapsulated frames + * @param [out] payload_offset int*: returns the position of the payload within the packet (in bytes) + * @returns number of frames + */ +OPUS_EXPORT int opus_packet_parse( + const unsigned char *data, + opus_int32 len, + unsigned char *out_toc, + const unsigned char *frames[48], + opus_int16 size[48], + int *payload_offset +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(5); + +/** Gets the bandwidth of an Opus packet. + * @param [in] data char*: Opus packet + * @retval OPUS_BANDWIDTH_NARROWBAND Narrowband (4kHz bandpass) + * @retval OPUS_BANDWIDTH_MEDIUMBAND Mediumband (6kHz bandpass) + * @retval OPUS_BANDWIDTH_WIDEBAND Wideband (8kHz bandpass) + * @retval OPUS_BANDWIDTH_SUPERWIDEBAND Superwideband (12kHz bandpass) + * @retval OPUS_BANDWIDTH_FULLBAND Fullband (20kHz bandpass) + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_bandwidth(const unsigned char *data) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples per frame from an Opus packet. + * @param [in] data char*: Opus packet. + * This must contain at least one byte of + * data. + * @param [in] Fs opus_int32: Sampling rate in Hz. + * This must be a multiple of 400, or + * inaccurate results will be returned. + * @returns Number of samples per frame. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_samples_per_frame(const unsigned char *data, opus_int32 Fs) OPUS_ARG_NONNULL(1); + +/** Gets the number of channels from an Opus packet. + * @param [in] data char*: Opus packet + * @returns Number of channels + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_channels(const unsigned char *data) OPUS_ARG_NONNULL(1); + +/** Gets the number of frames in an Opus packet. + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @returns Number of frames + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_frames(const unsigned char packet[], opus_int32 len) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples of an Opus packet. + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @param [in] Fs opus_int32: Sampling rate in Hz. + * This must be a multiple of 400, or + * inaccurate results will be returned. + * @returns Number of samples + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_packet_get_nb_samples(const unsigned char packet[], opus_int32 len, opus_int32 Fs) OPUS_ARG_NONNULL(1); + +/** Gets the number of samples of an Opus packet. + * @param [in] dec OpusDecoder*: Decoder state + * @param [in] packet char*: Opus packet + * @param [in] len opus_int32: Length of packet + * @returns Number of samples + * @retval OPUS_BAD_ARG Insufficient data was passed to the function + * @retval OPUS_INVALID_PACKET The compressed data passed is corrupted or of an unsupported type + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_decoder_get_nb_samples(const OpusDecoder *dec, const unsigned char packet[], opus_int32 len) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2); + +/** Applies soft-clipping to bring a float signal within the [-1,1] range. If + * the signal is already in that range, nothing is done. If there are values + * outside of [-1,1], then the signal is clipped as smoothly as possible to + * both fit in the range and avoid creating excessive distortion in the + * process. + * @param [in,out] pcm float*: Input PCM and modified PCM + * @param [in] frame_size int Number of samples per channel to process + * @param [in] channels int: Number of channels + * @param [in,out] softclip_mem float*: State memory for the soft clipping process (one float per channel, initialized to zero) + */ +OPUS_EXPORT void opus_pcm_soft_clip(float *pcm, int frame_size, int channels, float *softclip_mem); + + +/**@}*/ + +/** @defgroup opus_repacketizer Repacketizer + * @{ + * + * The repacketizer can be used to merge multiple Opus packets into a single + * packet or alternatively to split Opus packets that have previously been + * merged. Splitting valid Opus packets is always guaranteed to succeed, + * whereas merging valid packets only succeeds if all frames have the same + * mode, bandwidth, and frame size, and when the total duration of the merged + * packet is no more than 120 ms. The 120 ms limit comes from the + * specification and limits decoder memory requirements at a point where + * framing overhead becomes negligible. + * + * The repacketizer currently only operates on elementary Opus + * streams. It will not manipualte multistream packets successfully, except in + * the degenerate case where they consist of data from a single stream. + * + * The repacketizing process starts with creating a repacketizer state, either + * by calling opus_repacketizer_create() or by allocating the memory yourself, + * e.g., + * @code + * OpusRepacketizer *rp; + * rp = (OpusRepacketizer*)malloc(opus_repacketizer_get_size()); + * if (rp != NULL) + * opus_repacketizer_init(rp); + * @endcode + * + * Then the application should submit packets with opus_repacketizer_cat(), + * extract new packets with opus_repacketizer_out() or + * opus_repacketizer_out_range(), and then reset the state for the next set of + * input packets via opus_repacketizer_init(). + * + * For example, to split a sequence of packets into individual frames: + * @code + * unsigned char *data; + * int len; + * while (get_next_packet(&data, &len)) + * { + * unsigned char out[1276]; + * opus_int32 out_len; + * int nb_frames; + * int err; + * int i; + * err = opus_repacketizer_cat(rp, data, len); + * if (err != OPUS_OK) + * { + * release_packet(data); + * return err; + * } + * nb_frames = opus_repacketizer_get_nb_frames(rp); + * for (i = 0; i < nb_frames; i++) + * { + * out_len = opus_repacketizer_out_range(rp, i, i+1, out, sizeof(out)); + * if (out_len < 0) + * { + * release_packet(data); + * return (int)out_len; + * } + * output_next_packet(out, out_len); + * } + * opus_repacketizer_init(rp); + * release_packet(data); + * } + * @endcode + * + * Alternatively, to combine a sequence of frames into packets that each + * contain up to TARGET_DURATION_MS milliseconds of data: + * @code + * // The maximum number of packets with duration TARGET_DURATION_MS occurs + * // when the frame size is 2.5 ms, for a total of (TARGET_DURATION_MS*2/5) + * // packets. + * unsigned char *data[(TARGET_DURATION_MS*2/5)+1]; + * opus_int32 len[(TARGET_DURATION_MS*2/5)+1]; + * int nb_packets; + * unsigned char out[1277*(TARGET_DURATION_MS*2/2)]; + * opus_int32 out_len; + * int prev_toc; + * nb_packets = 0; + * while (get_next_packet(data+nb_packets, len+nb_packets)) + * { + * int nb_frames; + * int err; + * nb_frames = opus_packet_get_nb_frames(data[nb_packets], len[nb_packets]); + * if (nb_frames < 1) + * { + * release_packets(data, nb_packets+1); + * return nb_frames; + * } + * nb_frames += opus_repacketizer_get_nb_frames(rp); + * // If adding the next packet would exceed our target, or it has an + * // incompatible TOC sequence, output the packets we already have before + * // submitting it. + * // N.B., The nb_packets > 0 check ensures we've submitted at least one + * // packet since the last call to opus_repacketizer_init(). Otherwise a + * // single packet longer than TARGET_DURATION_MS would cause us to try to + * // output an (invalid) empty packet. It also ensures that prev_toc has + * // been set to a valid value. Additionally, len[nb_packets] > 0 is + * // guaranteed by the call to opus_packet_get_nb_frames() above, so the + * // reference to data[nb_packets][0] should be valid. + * if (nb_packets > 0 && ( + * ((prev_toc & 0xFC) != (data[nb_packets][0] & 0xFC)) || + * opus_packet_get_samples_per_frame(data[nb_packets], 48000)*nb_frames > + * TARGET_DURATION_MS*48)) + * { + * out_len = opus_repacketizer_out(rp, out, sizeof(out)); + * if (out_len < 0) + * { + * release_packets(data, nb_packets+1); + * return (int)out_len; + * } + * output_next_packet(out, out_len); + * opus_repacketizer_init(rp); + * release_packets(data, nb_packets); + * data[0] = data[nb_packets]; + * len[0] = len[nb_packets]; + * nb_packets = 0; + * } + * err = opus_repacketizer_cat(rp, data[nb_packets], len[nb_packets]); + * if (err != OPUS_OK) + * { + * release_packets(data, nb_packets+1); + * return err; + * } + * prev_toc = data[nb_packets][0]; + * nb_packets++; + * } + * // Output the final, partial packet. + * if (nb_packets > 0) + * { + * out_len = opus_repacketizer_out(rp, out, sizeof(out)); + * release_packets(data, nb_packets); + * if (out_len < 0) + * return (int)out_len; + * output_next_packet(out, out_len); + * } + * @endcode + * + * An alternate way of merging packets is to simply call opus_repacketizer_cat() + * unconditionally until it fails. At that point, the merged packet can be + * obtained with opus_repacketizer_out() and the input packet for which + * opus_repacketizer_cat() needs to be re-added to a newly reinitialized + * repacketizer state. + */ + +typedef struct OpusRepacketizer OpusRepacketizer; + +/** Gets the size of an OpusRepacketizer structure. + * @returns The size in bytes. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_repacketizer_get_size(void); + +/** (Re)initializes a previously allocated repacketizer state. + * The state must be at least the size returned by opus_repacketizer_get_size(). + * This can be used for applications which use their own allocator instead of + * malloc(). + * It must also be called to reset the queue of packets waiting to be + * repacketized, which is necessary if the maximum packet duration of 120 ms + * is reached or if you wish to submit packets with a different Opus + * configuration (coding mode, audio bandwidth, frame size, or channel count). + * Failure to do so will prevent a new packet from being added with + * opus_repacketizer_cat(). + * @see opus_repacketizer_create + * @see opus_repacketizer_get_size + * @see opus_repacketizer_cat + * @param rp OpusRepacketizer*: The repacketizer state to + * (re)initialize. + * @returns A pointer to the same repacketizer state that was passed in. + */ +OPUS_EXPORT OpusRepacketizer *opus_repacketizer_init(OpusRepacketizer *rp) OPUS_ARG_NONNULL(1); + +/** Allocates memory and initializes the new repacketizer with + * opus_repacketizer_init(). + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusRepacketizer *opus_repacketizer_create(void); + +/** Frees an OpusRepacketizer allocated by + * opus_repacketizer_create(). + * @param[in] rp OpusRepacketizer*: State to be freed. + */ +OPUS_EXPORT void opus_repacketizer_destroy(OpusRepacketizer *rp); + +/** Add a packet to the current repacketizer state. + * This packet must match the configuration of any packets already submitted + * for repacketization since the last call to opus_repacketizer_init(). + * This means that it must have the same coding mode, audio bandwidth, frame + * size, and channel count. + * This can be checked in advance by examining the top 6 bits of the first + * byte of the packet, and ensuring they match the top 6 bits of the first + * byte of any previously submitted packet. + * The total duration of audio in the repacketizer state also must not exceed + * 120 ms, the maximum duration of a single packet, after adding this packet. + * + * The contents of the current repacketizer state can be extracted into new + * packets using opus_repacketizer_out() or opus_repacketizer_out_range(). + * + * In order to add a packet with a different configuration or to add more + * audio beyond 120 ms, you must clear the repacketizer state by calling + * opus_repacketizer_init(). + * If a packet is too large to add to the current repacketizer state, no part + * of it is added, even if it contains multiple frames, some of which might + * fit. + * If you wish to be able to add parts of such packets, you should first use + * another repacketizer to split the packet into pieces and add them + * individually. + * @see opus_repacketizer_out_range + * @see opus_repacketizer_out + * @see opus_repacketizer_init + * @param rp OpusRepacketizer*: The repacketizer state to which to + * add the packet. + * @param[in] data const unsigned char*: The packet data. + * The application must ensure + * this pointer remains valid + * until the next call to + * opus_repacketizer_init() or + * opus_repacketizer_destroy(). + * @param len opus_int32: The number of bytes in the packet data. + * @returns An error code indicating whether or not the operation succeeded. + * @retval #OPUS_OK The packet's contents have been added to the repacketizer + * state. + * @retval #OPUS_INVALID_PACKET The packet did not have a valid TOC sequence, + * the packet's TOC sequence was not compatible + * with previously submitted packets (because + * the coding mode, audio bandwidth, frame size, + * or channel count did not match), or adding + * this packet would increase the total amount of + * audio stored in the repacketizer state to more + * than 120 ms. + */ +OPUS_EXPORT int opus_repacketizer_cat(OpusRepacketizer *rp, const unsigned char *data, opus_int32 len) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2); + + +/** Construct a new packet from data previously submitted to the repacketizer + * state via opus_repacketizer_cat(). + * @param rp OpusRepacketizer*: The repacketizer state from which to + * construct the new packet. + * @param begin int: The index of the first frame in the current + * repacketizer state to include in the output. + * @param end int: One past the index of the last frame in the + * current repacketizer state to include in the + * output. + * @param[out] data const unsigned char*: The buffer in which to + * store the output packet. + * @param maxlen opus_int32: The maximum number of bytes to store in + * the output buffer. In order to guarantee + * success, this should be at least + * 1276 for a single frame, + * or for multiple frames, + * 1277*(end-begin). + * However, 1*(end-begin) plus + * the size of all packet data submitted to + * the repacketizer since the last call to + * opus_repacketizer_init() or + * opus_repacketizer_create() is also + * sufficient, and possibly much smaller. + * @returns The total size of the output packet on success, or an error code + * on failure. + * @retval #OPUS_BAD_ARG [begin,end) was an invalid range of + * frames (begin < 0, begin >= end, or end > + * opus_repacketizer_get_nb_frames()). + * @retval #OPUS_BUFFER_TOO_SMALL \a maxlen was insufficient to contain the + * complete output packet. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_repacketizer_out_range(OpusRepacketizer *rp, int begin, int end, unsigned char *data, opus_int32 maxlen) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Return the total number of frames contained in packet data submitted to + * the repacketizer state so far via opus_repacketizer_cat() since the last + * call to opus_repacketizer_init() or opus_repacketizer_create(). + * This defines the valid range of packets that can be extracted with + * opus_repacketizer_out_range() or opus_repacketizer_out(). + * @param rp OpusRepacketizer*: The repacketizer state containing the + * frames. + * @returns The total number of frames contained in the packet data submitted + * to the repacketizer state. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_repacketizer_get_nb_frames(OpusRepacketizer *rp) OPUS_ARG_NONNULL(1); + +/** Construct a new packet from data previously submitted to the repacketizer + * state via opus_repacketizer_cat(). + * This is a convenience routine that returns all the data submitted so far + * in a single packet. + * It is equivalent to calling + * @code + * opus_repacketizer_out_range(rp, 0, opus_repacketizer_get_nb_frames(rp), + * data, maxlen) + * @endcode + * @param rp OpusRepacketizer*: The repacketizer state from which to + * construct the new packet. + * @param[out] data const unsigned char*: The buffer in which to + * store the output packet. + * @param maxlen opus_int32: The maximum number of bytes to store in + * the output buffer. In order to guarantee + * success, this should be at least + * 1277*opus_repacketizer_get_nb_frames(rp). + * However, + * 1*opus_repacketizer_get_nb_frames(rp) + * plus the size of all packet data + * submitted to the repacketizer since the + * last call to opus_repacketizer_init() or + * opus_repacketizer_create() is also + * sufficient, and possibly much smaller. + * @returns The total size of the output packet on success, or an error code + * on failure. + * @retval #OPUS_BUFFER_TOO_SMALL \a maxlen was insufficient to contain the + * complete output packet. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_repacketizer_out(OpusRepacketizer *rp, unsigned char *data, opus_int32 maxlen) OPUS_ARG_NONNULL(1); + +/** Pads a given Opus packet to a larger size (possibly changing the TOC sequence). + * @param[in,out] data const unsigned char*: The buffer containing the + * packet to pad. + * @param len opus_int32: The size of the packet. + * This must be at least 1. + * @param new_len opus_int32: The desired size of the packet after padding. + * This must be at least as large as len. + * @returns an error code + * @retval #OPUS_OK \a on success. + * @retval #OPUS_BAD_ARG \a len was less than 1 or new_len was less than len. + * @retval #OPUS_INVALID_PACKET \a data did not contain a valid Opus packet. + */ +OPUS_EXPORT int opus_packet_pad(unsigned char *data, opus_int32 len, opus_int32 new_len); + +/** Remove all padding from a given Opus packet and rewrite the TOC sequence to + * minimize space usage. + * @param[in,out] data const unsigned char*: The buffer containing the + * packet to strip. + * @param len opus_int32: The size of the packet. + * This must be at least 1. + * @returns The new size of the output packet on success, or an error code + * on failure. + * @retval #OPUS_BAD_ARG \a len was less than 1. + * @retval #OPUS_INVALID_PACKET \a data did not contain a valid Opus packet. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_packet_unpad(unsigned char *data, opus_int32 len); + +/** Pads a given Opus multi-stream packet to a larger size (possibly changing the TOC sequence). + * @param[in,out] data const unsigned char*: The buffer containing the + * packet to pad. + * @param len opus_int32: The size of the packet. + * This must be at least 1. + * @param new_len opus_int32: The desired size of the packet after padding. + * This must be at least 1. + * @param nb_streams opus_int32: The number of streams (not channels) in the packet. + * This must be at least as large as len. + * @returns an error code + * @retval #OPUS_OK \a on success. + * @retval #OPUS_BAD_ARG \a len was less than 1. + * @retval #OPUS_INVALID_PACKET \a data did not contain a valid Opus packet. + */ +OPUS_EXPORT int opus_multistream_packet_pad(unsigned char *data, opus_int32 len, opus_int32 new_len, int nb_streams); + +/** Remove all padding from a given Opus multi-stream packet and rewrite the TOC sequence to + * minimize space usage. + * @param[in,out] data const unsigned char*: The buffer containing the + * packet to strip. + * @param len opus_int32: The size of the packet. + * This must be at least 1. + * @param nb_streams opus_int32: The number of streams (not channels) in the packet. + * This must be at least 1. + * @returns The new size of the output packet on success, or an error code + * on failure. + * @retval #OPUS_BAD_ARG \a len was less than 1 or new_len was less than len. + * @retval #OPUS_INVALID_PACKET \a data did not contain a valid Opus packet. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_packet_unpad(unsigned char *data, opus_int32 len, int nb_streams); + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_H */ diff --git a/app/src/main/cpp/opus_custom.h b/app/src/main/cpp/opus_custom.h new file mode 100644 index 0000000..41f36bf --- /dev/null +++ b/app/src/main/cpp/opus_custom.h @@ -0,0 +1,342 @@ +/* Copyright (c) 2007-2008 CSIRO + Copyright (c) 2007-2009 Xiph.Org Foundation + Copyright (c) 2008-2012 Gregory Maxwell + Written by Jean-Marc Valin and Gregory Maxwell */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + @file opus_custom.h + @brief Opus-Custom reference implementation API + */ + +#ifndef OPUS_CUSTOM_H +#define OPUS_CUSTOM_H + +#include "opus_defines.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef CUSTOM_MODES +# define OPUS_CUSTOM_EXPORT OPUS_EXPORT +# define OPUS_CUSTOM_EXPORT_STATIC OPUS_EXPORT +#else +# define OPUS_CUSTOM_EXPORT +# ifdef OPUS_BUILD +# define OPUS_CUSTOM_EXPORT_STATIC static OPUS_INLINE +# else +# define OPUS_CUSTOM_EXPORT_STATIC +# endif +#endif + +/** @defgroup opus_custom Opus Custom + * @{ + * Opus Custom is an optional part of the Opus specification and + * reference implementation which uses a distinct API from the regular + * API and supports frame sizes that are not normally supported.\ Use + * of Opus Custom is discouraged for all but very special applications + * for which a frame size different from 2.5, 5, 10, or 20 ms is needed + * (for either complexity or latency reasons) and where interoperability + * is less important. + * + * In addition to the interoperability limitations the use of Opus custom + * disables a substantial chunk of the codec and generally lowers the + * quality available at a given bitrate. Normally when an application needs + * a different frame size from the codec it should buffer to match the + * sizes but this adds a small amount of delay which may be important + * in some very low latency applications. Some transports (especially + * constant rate RF transports) may also work best with frames of + * particular durations. + * + * Libopus only supports custom modes if they are enabled at compile time. + * + * The Opus Custom API is similar to the regular API but the + * @ref opus_encoder_create and @ref opus_decoder_create calls take + * an additional mode parameter which is a structure produced by + * a call to @ref opus_custom_mode_create. Both the encoder and decoder + * must create a mode using the same sample rate (fs) and frame size + * (frame size) so these parameters must either be signaled out of band + * or fixed in a particular implementation. + * + * Similar to regular Opus the custom modes support on the fly frame size + * switching, but the sizes available depend on the particular frame size in + * use. For some initial frame sizes on a single on the fly size is available. + */ + +/** Contains the state of an encoder. One encoder state is needed + for each stream. It is initialized once at the beginning of the + stream. Do *not* re-initialize the state for every frame. + @brief Encoder state + */ +typedef struct OpusCustomEncoder OpusCustomEncoder; + +/** State of the decoder. One decoder state is needed for each stream. + It is initialized once at the beginning of the stream. Do *not* + re-initialize the state for every frame. + @brief Decoder state + */ +typedef struct OpusCustomDecoder OpusCustomDecoder; + +/** The mode contains all the information necessary to create an + encoder. Both the encoder and decoder need to be initialized + with exactly the same mode, otherwise the output will be + corrupted. + @brief Mode configuration + */ +typedef struct OpusCustomMode OpusCustomMode; + +/** Creates a new mode struct. This will be passed to an encoder or + * decoder. The mode MUST NOT BE DESTROYED until the encoders and + * decoders that use it are destroyed as well. + * @param [in] Fs int: Sampling rate (8000 to 96000 Hz) + * @param [in] frame_size int: Number of samples (per channel) to encode in each + * packet (64 - 1024, prime factorization must contain zero or more 2s, 3s, or 5s and no other primes) + * @param [out] error int*: Returned error code (if NULL, no error will be returned) + * @return A newly created mode + */ +OPUS_CUSTOM_EXPORT OPUS_WARN_UNUSED_RESULT OpusCustomMode *opus_custom_mode_create(opus_int32 Fs, int frame_size, int *error); + +/** Destroys a mode struct. Only call this after all encoders and + * decoders using this mode are destroyed as well. + * @param [in] mode OpusCustomMode*: Mode to be freed. + */ +OPUS_CUSTOM_EXPORT void opus_custom_mode_destroy(OpusCustomMode *mode); + + +#if !defined(OPUS_BUILD) || defined(CELT_ENCODER_C) + +/* Encoder */ +/** Gets the size of an OpusCustomEncoder structure. + * @param [in] mode OpusCustomMode *: Mode configuration + * @param [in] channels int: Number of channels + * @returns size + */ +OPUS_CUSTOM_EXPORT_STATIC OPUS_WARN_UNUSED_RESULT int opus_custom_encoder_get_size( + const OpusCustomMode *mode, + int channels +) OPUS_ARG_NONNULL(1); + +# ifdef CUSTOM_MODES +/** Initializes a previously allocated encoder state + * The memory pointed to by st must be the size returned by opus_custom_encoder_get_size. + * This is intended for applications which use their own allocator instead of malloc. + * @see opus_custom_encoder_create(),opus_custom_encoder_get_size() + * To reset a previously initialized state use the OPUS_RESET_STATE CTL. + * @param [in] st OpusCustomEncoder*: Encoder state + * @param [in] mode OpusCustomMode *: Contains all the information about the characteristics of + * the stream (must be the same characteristics as used for the + * decoder) + * @param [in] channels int: Number of channels + * @return OPUS_OK Success or @ref opus_errorcodes + */ +OPUS_CUSTOM_EXPORT int opus_custom_encoder_init( + OpusCustomEncoder *st, + const OpusCustomMode *mode, + int channels +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2); +# endif +#endif + + +/** Creates a new encoder state. Each stream needs its own encoder + * state (can't be shared across simultaneous streams). + * @param [in] mode OpusCustomMode*: Contains all the information about the characteristics of + * the stream (must be the same characteristics as used for the + * decoder) + * @param [in] channels int: Number of channels + * @param [out] error int*: Returns an error code + * @return Newly created encoder state. +*/ +OPUS_CUSTOM_EXPORT OPUS_WARN_UNUSED_RESULT OpusCustomEncoder *opus_custom_encoder_create( + const OpusCustomMode *mode, + int channels, + int *error +) OPUS_ARG_NONNULL(1); + + +/** Destroys a an encoder state. + * @param[in] st OpusCustomEncoder*: State to be freed. + */ +OPUS_CUSTOM_EXPORT void opus_custom_encoder_destroy(OpusCustomEncoder *st); + +/** Encodes a frame of audio. + * @param [in] st OpusCustomEncoder*: Encoder state + * @param [in] pcm float*: PCM audio in float format, with a normal range of +/-1.0. + * Samples with a range beyond +/-1.0 are supported but will + * be clipped by decoders using the integer API and should + * only be used if it is known that the far end supports + * extended dynamic range. There must be exactly + * frame_size samples per channel. + * @param [in] frame_size int: Number of samples per frame of input signal + * @param [out] compressed char *: The compressed data is written here. This may not alias pcm and must be at least maxCompressedBytes long. + * @param [in] maxCompressedBytes int: Maximum number of bytes to use for compressing the frame + * (can change from one frame to another) + * @return Number of bytes written to "compressed". + * If negative, an error has occurred (see error codes). It is IMPORTANT that + * the length returned be somehow transmitted to the decoder. Otherwise, no + * decoding is possible. + */ +OPUS_CUSTOM_EXPORT OPUS_WARN_UNUSED_RESULT int opus_custom_encode_float( + OpusCustomEncoder *st, + const float *pcm, + int frame_size, + unsigned char *compressed, + int maxCompressedBytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Encodes a frame of audio. + * @param [in] st OpusCustomEncoder*: Encoder state + * @param [in] pcm opus_int16*: PCM audio in signed 16-bit format (native endian). + * There must be exactly frame_size samples per channel. + * @param [in] frame_size int: Number of samples per frame of input signal + * @param [out] compressed char *: The compressed data is written here. This may not alias pcm and must be at least maxCompressedBytes long. + * @param [in] maxCompressedBytes int: Maximum number of bytes to use for compressing the frame + * (can change from one frame to another) + * @return Number of bytes written to "compressed". + * If negative, an error has occurred (see error codes). It is IMPORTANT that + * the length returned be somehow transmitted to the decoder. Otherwise, no + * decoding is possible. + */ +OPUS_CUSTOM_EXPORT OPUS_WARN_UNUSED_RESULT int opus_custom_encode( + OpusCustomEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *compressed, + int maxCompressedBytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Perform a CTL function on an Opus custom encoder. + * + * Generally the request and subsequent arguments are generated + * by a convenience macro. + * @see opus_encoderctls + */ +OPUS_CUSTOM_EXPORT int opus_custom_encoder_ctl(OpusCustomEncoder * OPUS_RESTRICT st, int request, ...) OPUS_ARG_NONNULL(1); + + +#if !defined(OPUS_BUILD) || defined(CELT_DECODER_C) +/* Decoder */ + +/** Gets the size of an OpusCustomDecoder structure. + * @param [in] mode OpusCustomMode *: Mode configuration + * @param [in] channels int: Number of channels + * @returns size + */ +OPUS_CUSTOM_EXPORT_STATIC OPUS_WARN_UNUSED_RESULT int opus_custom_decoder_get_size( + const OpusCustomMode *mode, + int channels +) OPUS_ARG_NONNULL(1); + +/** Initializes a previously allocated decoder state + * The memory pointed to by st must be the size returned by opus_custom_decoder_get_size. + * This is intended for applications which use their own allocator instead of malloc. + * @see opus_custom_decoder_create(),opus_custom_decoder_get_size() + * To reset a previously initialized state use the OPUS_RESET_STATE CTL. + * @param [in] st OpusCustomDecoder*: Decoder state + * @param [in] mode OpusCustomMode *: Contains all the information about the characteristics of + * the stream (must be the same characteristics as used for the + * encoder) + * @param [in] channels int: Number of channels + * @return OPUS_OK Success or @ref opus_errorcodes + */ +OPUS_CUSTOM_EXPORT_STATIC int opus_custom_decoder_init( + OpusCustomDecoder *st, + const OpusCustomMode *mode, + int channels +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2); + +#endif + + +/** Creates a new decoder state. Each stream needs its own decoder state (can't + * be shared across simultaneous streams). + * @param [in] mode OpusCustomMode: Contains all the information about the characteristics of the + * stream (must be the same characteristics as used for the encoder) + * @param [in] channels int: Number of channels + * @param [out] error int*: Returns an error code + * @return Newly created decoder state. + */ +OPUS_CUSTOM_EXPORT OPUS_WARN_UNUSED_RESULT OpusCustomDecoder *opus_custom_decoder_create( + const OpusCustomMode *mode, + int channels, + int *error +) OPUS_ARG_NONNULL(1); + +/** Destroys a an decoder state. + * @param[in] st OpusCustomDecoder*: State to be freed. + */ +OPUS_CUSTOM_EXPORT void opus_custom_decoder_destroy(OpusCustomDecoder *st); + +/** Decode an opus custom frame with floating point output + * @param [in] st OpusCustomDecoder*: Decoder state + * @param [in] data char*: Input payload. Use a NULL pointer to indicate packet loss + * @param [in] len int: Number of bytes in payload + * @param [out] pcm float*: Output signal (interleaved if 2 channels). length + * is frame_size*channels*sizeof(float) + * @param [in] frame_size Number of samples per channel of available space in *pcm. + * @returns Number of decoded samples or @ref opus_errorcodes + */ +OPUS_CUSTOM_EXPORT OPUS_WARN_UNUSED_RESULT int opus_custom_decode_float( + OpusCustomDecoder *st, + const unsigned char *data, + int len, + float *pcm, + int frame_size +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Decode an opus custom frame + * @param [in] st OpusCustomDecoder*: Decoder state + * @param [in] data char*: Input payload. Use a NULL pointer to indicate packet loss + * @param [in] len int: Number of bytes in payload + * @param [out] pcm opus_int16*: Output signal (interleaved if 2 channels). length + * is frame_size*channels*sizeof(opus_int16) + * @param [in] frame_size Number of samples per channel of available space in *pcm. + * @returns Number of decoded samples or @ref opus_errorcodes + */ +OPUS_CUSTOM_EXPORT OPUS_WARN_UNUSED_RESULT int opus_custom_decode( + OpusCustomDecoder *st, + const unsigned char *data, + int len, + opus_int16 *pcm, + int frame_size +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Perform a CTL function on an Opus custom decoder. + * + * Generally the request and subsequent arguments are generated + * by a convenience macro. + * @see opus_genericctls + */ +OPUS_CUSTOM_EXPORT int opus_custom_decoder_ctl(OpusCustomDecoder * OPUS_RESTRICT st, int request, ...) OPUS_ARG_NONNULL(1); + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_CUSTOM_H */ diff --git a/app/src/main/cpp/opus_decoder.cpp b/app/src/main/cpp/opus_decoder.cpp new file mode 100644 index 0000000..de94300 --- /dev/null +++ b/app/src/main/cpp/opus_decoder.cpp @@ -0,0 +1,70 @@ +#include +#include +#include +#include "opus.h" + +#define LOG_TAG "OpusJNI" +#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) +#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) + +static OpusDecoder* decoderHandle = nullptr; + +extern "C" { + +JNIEXPORT jlong JNICALL +Java_info_dourok_voicebot_OpusDecoder_nativeInitDecoder(JNIEnv *env, jobject thiz, + jint sample_rate, jint channels) { + int error; + OpusDecoder *decoder = opus_decoder_create(sample_rate, channels, &error); + + if (error != OPUS_OK || decoder == nullptr) { + LOGE("Failed to create decoder: %s", opus_strerror(error)); + return 0; + } + + LOGI("Opus decoder initialized: sample_rate=%d, channels=%d", sample_rate, channels); + return (jlong)(intptr_t)decoder; +} + +JNIEXPORT jint JNICALL +Java_info_dourok_voicebot_OpusDecoder_nativeDecodeBytes(JNIEnv *env, jobject thiz, + jlong decoder_handle, + jbyteArray input_buffer, + jint input_size, + jbyteArray output_buffer, + jint max_output_size) { + OpusDecoder *decoder = (OpusDecoder*)(intptr_t)decoder_handle; + if (decoder == nullptr) { + LOGE("Decoder handle is null"); + return -1; + } + + jbyte *input = env->GetByteArrayElements(input_buffer, nullptr); + jbyte *output = env->GetByteArrayElements(output_buffer, nullptr); + + int frame_size = max_output_size / 2; // 16-bit PCM + int result = opus_decode(decoder, (unsigned char*)input, input_size, + (opus_int16*)output, frame_size, 0); + + env->ReleaseByteArrayElements(input_buffer, input, JNI_ABORT); + env->ReleaseByteArrayElements(output_buffer, output, 0); + + if (result < 0) { + LOGE("Decoding failed: %s", opus_strerror(result)); + return -1; + } + + return result * 2; // 返回字节数(每个样本2字节) +} + +JNIEXPORT void JNICALL +Java_info_dourok_voicebot_OpusDecoder_nativeReleaseDecoder(JNIEnv *env, jobject thiz, + jlong decoder_handle) { + OpusDecoder *decoder = (OpusDecoder*)(intptr_t)decoder_handle; + if (decoder != nullptr) { + opus_decoder_destroy(decoder); + LOGI("Opus decoder released"); + } +} + +} // extern "C" \ No newline at end of file diff --git a/app/src/main/cpp/opus_defines.h b/app/src/main/cpp/opus_defines.h new file mode 100644 index 0000000..d141418 --- /dev/null +++ b/app/src/main/cpp/opus_defines.h @@ -0,0 +1,799 @@ +/* Copyright (c) 2010-2011 Xiph.Org Foundation, Skype Limited + Written by Jean-Marc Valin and Koen Vos */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus_defines.h + * @brief Opus reference implementation constants + */ + +#ifndef OPUS_DEFINES_H +#define OPUS_DEFINES_H + +#include "opus_types.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @defgroup opus_errorcodes Error codes + * @{ + */ +/** No error @hideinitializer*/ +#define OPUS_OK 0 +/** One or more invalid/out of range arguments @hideinitializer*/ +#define OPUS_BAD_ARG -1 +/** Not enough bytes allocated in the buffer @hideinitializer*/ +#define OPUS_BUFFER_TOO_SMALL -2 +/** An internal error was detected @hideinitializer*/ +#define OPUS_INTERNAL_ERROR -3 +/** The compressed data passed is corrupted @hideinitializer*/ +#define OPUS_INVALID_PACKET -4 +/** Invalid/unsupported request number @hideinitializer*/ +#define OPUS_UNIMPLEMENTED -5 +/** An encoder or decoder structure is invalid or already freed @hideinitializer*/ +#define OPUS_INVALID_STATE -6 +/** Memory allocation has failed @hideinitializer*/ +#define OPUS_ALLOC_FAIL -7 +/**@}*/ + +/** @cond OPUS_INTERNAL_DOC */ +/**Export control for opus functions */ + +#ifndef OPUS_EXPORT +# if defined(WIN32) +# if defined(OPUS_BUILD) && defined(DLL_EXPORT) +# define OPUS_EXPORT __declspec(dllexport) +# else +# define OPUS_EXPORT +# endif +# elif defined(__GNUC__) && defined(OPUS_BUILD) +# define OPUS_EXPORT __attribute__ ((visibility ("default"))) +# else +# define OPUS_EXPORT +# endif +#endif + +# if !defined(OPUS_GNUC_PREREQ) +# if defined(__GNUC__)&&defined(__GNUC_MINOR__) +# define OPUS_GNUC_PREREQ(_maj,_min) \ + ((__GNUC__<<16)+__GNUC_MINOR__>=((_maj)<<16)+(_min)) +# else +# define OPUS_GNUC_PREREQ(_maj,_min) 0 +# endif +# endif + +#if (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) ) +# if OPUS_GNUC_PREREQ(3,0) +# define OPUS_RESTRICT __restrict__ +# elif (defined(_MSC_VER) && _MSC_VER >= 1400) +# define OPUS_RESTRICT __restrict +# else +# define OPUS_RESTRICT +# endif +#else +# define OPUS_RESTRICT restrict +#endif + +#if (!defined(__STDC_VERSION__) || (__STDC_VERSION__ < 199901L) ) +# if OPUS_GNUC_PREREQ(2,7) +# define OPUS_INLINE __inline__ +# elif (defined(_MSC_VER)) +# define OPUS_INLINE __inline +# else +# define OPUS_INLINE +# endif +#else +# define OPUS_INLINE inline +#endif + +/**Warning attributes for opus functions + * NONNULL is not used in OPUS_BUILD to avoid the compiler optimizing out + * some paranoid null checks. */ +#if defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4) +# define OPUS_WARN_UNUSED_RESULT __attribute__ ((__warn_unused_result__)) +#else +# define OPUS_WARN_UNUSED_RESULT +#endif +#if !defined(OPUS_BUILD) && defined(__GNUC__) && OPUS_GNUC_PREREQ(3, 4) +# define OPUS_ARG_NONNULL(_x) __attribute__ ((__nonnull__(_x))) +#else +# define OPUS_ARG_NONNULL(_x) +#endif + +/** These are the actual Encoder CTL ID numbers. + * They should not be used directly by applications. + * In general, SETs should be even and GETs should be odd.*/ +#define OPUS_SET_APPLICATION_REQUEST 4000 +#define OPUS_GET_APPLICATION_REQUEST 4001 +#define OPUS_SET_BITRATE_REQUEST 4002 +#define OPUS_GET_BITRATE_REQUEST 4003 +#define OPUS_SET_MAX_BANDWIDTH_REQUEST 4004 +#define OPUS_GET_MAX_BANDWIDTH_REQUEST 4005 +#define OPUS_SET_VBR_REQUEST 4006 +#define OPUS_GET_VBR_REQUEST 4007 +#define OPUS_SET_BANDWIDTH_REQUEST 4008 +#define OPUS_GET_BANDWIDTH_REQUEST 4009 +#define OPUS_SET_COMPLEXITY_REQUEST 4010 +#define OPUS_GET_COMPLEXITY_REQUEST 4011 +#define OPUS_SET_INBAND_FEC_REQUEST 4012 +#define OPUS_GET_INBAND_FEC_REQUEST 4013 +#define OPUS_SET_PACKET_LOSS_PERC_REQUEST 4014 +#define OPUS_GET_PACKET_LOSS_PERC_REQUEST 4015 +#define OPUS_SET_DTX_REQUEST 4016 +#define OPUS_GET_DTX_REQUEST 4017 +#define OPUS_SET_VBR_CONSTRAINT_REQUEST 4020 +#define OPUS_GET_VBR_CONSTRAINT_REQUEST 4021 +#define OPUS_SET_FORCE_CHANNELS_REQUEST 4022 +#define OPUS_GET_FORCE_CHANNELS_REQUEST 4023 +#define OPUS_SET_SIGNAL_REQUEST 4024 +#define OPUS_GET_SIGNAL_REQUEST 4025 +#define OPUS_GET_LOOKAHEAD_REQUEST 4027 +/* #define OPUS_RESET_STATE 4028 */ +#define OPUS_GET_SAMPLE_RATE_REQUEST 4029 +#define OPUS_GET_FINAL_RANGE_REQUEST 4031 +#define OPUS_GET_PITCH_REQUEST 4033 +#define OPUS_SET_GAIN_REQUEST 4034 +#define OPUS_GET_GAIN_REQUEST 4045 /* Should have been 4035 */ +#define OPUS_SET_LSB_DEPTH_REQUEST 4036 +#define OPUS_GET_LSB_DEPTH_REQUEST 4037 +#define OPUS_GET_LAST_PACKET_DURATION_REQUEST 4039 +#define OPUS_SET_EXPERT_FRAME_DURATION_REQUEST 4040 +#define OPUS_GET_EXPERT_FRAME_DURATION_REQUEST 4041 +#define OPUS_SET_PREDICTION_DISABLED_REQUEST 4042 +#define OPUS_GET_PREDICTION_DISABLED_REQUEST 4043 +/* Don't use 4045, it's already taken by OPUS_GET_GAIN_REQUEST */ +#define OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST 4046 +#define OPUS_GET_PHASE_INVERSION_DISABLED_REQUEST 4047 +#define OPUS_GET_IN_DTX_REQUEST 4049 + +/** Defines for the presence of extended APIs. */ +#define OPUS_HAVE_OPUS_PROJECTION_H + +/* Macros to trigger compilation errors when the wrong types are provided to a CTL */ +#define __opus_check_int(x) (((void)((x) == (opus_int32)0)), (opus_int32)(x)) +#define __opus_check_int_ptr(ptr) ((ptr) + ((ptr) - (opus_int32*)(ptr))) +#define __opus_check_uint_ptr(ptr) ((ptr) + ((ptr) - (opus_uint32*)(ptr))) +#define __opus_check_val16_ptr(ptr) ((ptr) + ((ptr) - (opus_val16*)(ptr))) +/** @endcond */ + +/** @defgroup opus_ctlvalues Pre-defined values for CTL interface + * @see opus_genericctls, opus_encoderctls + * @{ + */ +/* Values for the various encoder CTLs */ +#define OPUS_AUTO -1000 /**opus_int32: Allowed values: 0-10, inclusive. + * + * @hideinitializer */ +#define OPUS_SET_COMPLEXITY(x) OPUS_SET_COMPLEXITY_REQUEST, __opus_check_int(x) +/** Gets the encoder's complexity configuration. + * @see OPUS_SET_COMPLEXITY + * @param[out] x opus_int32 *: Returns a value in the range 0-10, + * inclusive. + * @hideinitializer */ +#define OPUS_GET_COMPLEXITY(x) OPUS_GET_COMPLEXITY_REQUEST, __opus_check_int_ptr(x) + +/** Configures the bitrate in the encoder. + * Rates from 500 to 512000 bits per second are meaningful, as well as the + * special values #OPUS_AUTO and #OPUS_BITRATE_MAX. + * The value #OPUS_BITRATE_MAX can be used to cause the codec to use as much + * rate as it can, which is useful for controlling the rate by adjusting the + * output buffer size. + * @see OPUS_GET_BITRATE + * @param[in] x opus_int32: Bitrate in bits per second. The default + * is determined based on the number of + * channels and the input sampling rate. + * @hideinitializer */ +#define OPUS_SET_BITRATE(x) OPUS_SET_BITRATE_REQUEST, __opus_check_int(x) +/** Gets the encoder's bitrate configuration. + * @see OPUS_SET_BITRATE + * @param[out] x opus_int32 *: Returns the bitrate in bits per second. + * The default is determined based on the + * number of channels and the input + * sampling rate. + * @hideinitializer */ +#define OPUS_GET_BITRATE(x) OPUS_GET_BITRATE_REQUEST, __opus_check_int_ptr(x) + +/** Enables or disables variable bitrate (VBR) in the encoder. + * The configured bitrate may not be met exactly because frames must + * be an integer number of bytes in length. + * @see OPUS_GET_VBR + * @see OPUS_SET_VBR_CONSTRAINT + * @param[in] x opus_int32: Allowed values: + *
+ *
0
Hard CBR. For LPC/hybrid modes at very low bit-rate, this can + * cause noticeable quality degradation.
+ *
1
VBR (default). The exact type of VBR is controlled by + * #OPUS_SET_VBR_CONSTRAINT.
+ *
+ * @hideinitializer */ +#define OPUS_SET_VBR(x) OPUS_SET_VBR_REQUEST, __opus_check_int(x) +/** Determine if variable bitrate (VBR) is enabled in the encoder. + * @see OPUS_SET_VBR + * @see OPUS_GET_VBR_CONSTRAINT + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
0
Hard CBR.
+ *
1
VBR (default). The exact type of VBR may be retrieved via + * #OPUS_GET_VBR_CONSTRAINT.
+ *
+ * @hideinitializer */ +#define OPUS_GET_VBR(x) OPUS_GET_VBR_REQUEST, __opus_check_int_ptr(x) + +/** Enables or disables constrained VBR in the encoder. + * This setting is ignored when the encoder is in CBR mode. + * @warning Only the MDCT mode of Opus currently heeds the constraint. + * Speech mode ignores it completely, hybrid mode may fail to obey it + * if the LPC layer uses more bitrate than the constraint would have + * permitted. + * @see OPUS_GET_VBR_CONSTRAINT + * @see OPUS_SET_VBR + * @param[in] x opus_int32: Allowed values: + *
+ *
0
Unconstrained VBR.
+ *
1
Constrained VBR (default). This creates a maximum of one + * frame of buffering delay assuming a transport with a + * serialization speed of the nominal bitrate.
+ *
+ * @hideinitializer */ +#define OPUS_SET_VBR_CONSTRAINT(x) OPUS_SET_VBR_CONSTRAINT_REQUEST, __opus_check_int(x) +/** Determine if constrained VBR is enabled in the encoder. + * @see OPUS_SET_VBR_CONSTRAINT + * @see OPUS_GET_VBR + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
0
Unconstrained VBR.
+ *
1
Constrained VBR (default).
+ *
+ * @hideinitializer */ +#define OPUS_GET_VBR_CONSTRAINT(x) OPUS_GET_VBR_CONSTRAINT_REQUEST, __opus_check_int_ptr(x) + +/** Configures mono/stereo forcing in the encoder. + * This can force the encoder to produce packets encoded as either mono or + * stereo, regardless of the format of the input audio. This is useful when + * the caller knows that the input signal is currently a mono source embedded + * in a stereo stream. + * @see OPUS_GET_FORCE_CHANNELS + * @param[in] x opus_int32: Allowed values: + *
+ *
#OPUS_AUTO
Not forced (default)
+ *
1
Forced mono
+ *
2
Forced stereo
+ *
+ * @hideinitializer */ +#define OPUS_SET_FORCE_CHANNELS(x) OPUS_SET_FORCE_CHANNELS_REQUEST, __opus_check_int(x) +/** Gets the encoder's forced channel configuration. + * @see OPUS_SET_FORCE_CHANNELS + * @param[out] x opus_int32 *: + *
+ *
#OPUS_AUTO
Not forced (default)
+ *
1
Forced mono
+ *
2
Forced stereo
+ *
+ * @hideinitializer */ +#define OPUS_GET_FORCE_CHANNELS(x) OPUS_GET_FORCE_CHANNELS_REQUEST, __opus_check_int_ptr(x) + +/** Configures the maximum bandpass that the encoder will select automatically. + * Applications should normally use this instead of #OPUS_SET_BANDWIDTH + * (leaving that set to the default, #OPUS_AUTO). This allows the + * application to set an upper bound based on the type of input it is + * providing, but still gives the encoder the freedom to reduce the bandpass + * when the bitrate becomes too low, for better overall quality. + * @see OPUS_GET_MAX_BANDWIDTH + * @param[in] x opus_int32: Allowed values: + *
+ *
OPUS_BANDWIDTH_NARROWBAND
4 kHz passband
+ *
OPUS_BANDWIDTH_MEDIUMBAND
6 kHz passband
+ *
OPUS_BANDWIDTH_WIDEBAND
8 kHz passband
+ *
OPUS_BANDWIDTH_SUPERWIDEBAND
12 kHz passband
+ *
OPUS_BANDWIDTH_FULLBAND
20 kHz passband (default)
+ *
+ * @hideinitializer */ +#define OPUS_SET_MAX_BANDWIDTH(x) OPUS_SET_MAX_BANDWIDTH_REQUEST, __opus_check_int(x) + +/** Gets the encoder's configured maximum allowed bandpass. + * @see OPUS_SET_MAX_BANDWIDTH + * @param[out] x opus_int32 *: Allowed values: + *
+ *
#OPUS_BANDWIDTH_NARROWBAND
4 kHz passband
+ *
#OPUS_BANDWIDTH_MEDIUMBAND
6 kHz passband
+ *
#OPUS_BANDWIDTH_WIDEBAND
8 kHz passband
+ *
#OPUS_BANDWIDTH_SUPERWIDEBAND
12 kHz passband
+ *
#OPUS_BANDWIDTH_FULLBAND
20 kHz passband (default)
+ *
+ * @hideinitializer */ +#define OPUS_GET_MAX_BANDWIDTH(x) OPUS_GET_MAX_BANDWIDTH_REQUEST, __opus_check_int_ptr(x) + +/** Sets the encoder's bandpass to a specific value. + * This prevents the encoder from automatically selecting the bandpass based + * on the available bitrate. If an application knows the bandpass of the input + * audio it is providing, it should normally use #OPUS_SET_MAX_BANDWIDTH + * instead, which still gives the encoder the freedom to reduce the bandpass + * when the bitrate becomes too low, for better overall quality. + * @see OPUS_GET_BANDWIDTH + * @param[in] x opus_int32: Allowed values: + *
+ *
#OPUS_AUTO
(default)
+ *
#OPUS_BANDWIDTH_NARROWBAND
4 kHz passband
+ *
#OPUS_BANDWIDTH_MEDIUMBAND
6 kHz passband
+ *
#OPUS_BANDWIDTH_WIDEBAND
8 kHz passband
+ *
#OPUS_BANDWIDTH_SUPERWIDEBAND
12 kHz passband
+ *
#OPUS_BANDWIDTH_FULLBAND
20 kHz passband
+ *
+ * @hideinitializer */ +#define OPUS_SET_BANDWIDTH(x) OPUS_SET_BANDWIDTH_REQUEST, __opus_check_int(x) + +/** Configures the type of signal being encoded. + * This is a hint which helps the encoder's mode selection. + * @see OPUS_GET_SIGNAL + * @param[in] x opus_int32: Allowed values: + *
+ *
#OPUS_AUTO
(default)
+ *
#OPUS_SIGNAL_VOICE
Bias thresholds towards choosing LPC or Hybrid modes.
+ *
#OPUS_SIGNAL_MUSIC
Bias thresholds towards choosing MDCT modes.
+ *
+ * @hideinitializer */ +#define OPUS_SET_SIGNAL(x) OPUS_SET_SIGNAL_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured signal type. + * @see OPUS_SET_SIGNAL + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
#OPUS_AUTO
(default)
+ *
#OPUS_SIGNAL_VOICE
Bias thresholds towards choosing LPC or Hybrid modes.
+ *
#OPUS_SIGNAL_MUSIC
Bias thresholds towards choosing MDCT modes.
+ *
+ * @hideinitializer */ +#define OPUS_GET_SIGNAL(x) OPUS_GET_SIGNAL_REQUEST, __opus_check_int_ptr(x) + + +/** Configures the encoder's intended application. + * The initial value is a mandatory argument to the encoder_create function. + * @see OPUS_GET_APPLICATION + * @param[in] x opus_int32: Returns one of the following values: + *
+ *
#OPUS_APPLICATION_VOIP
+ *
Process signal for improved speech intelligibility.
+ *
#OPUS_APPLICATION_AUDIO
+ *
Favor faithfulness to the original input.
+ *
#OPUS_APPLICATION_RESTRICTED_LOWDELAY
+ *
Configure the minimum possible coding delay by disabling certain modes + * of operation.
+ *
+ * @hideinitializer */ +#define OPUS_SET_APPLICATION(x) OPUS_SET_APPLICATION_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured application. + * @see OPUS_SET_APPLICATION + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
#OPUS_APPLICATION_VOIP
+ *
Process signal for improved speech intelligibility.
+ *
#OPUS_APPLICATION_AUDIO
+ *
Favor faithfulness to the original input.
+ *
#OPUS_APPLICATION_RESTRICTED_LOWDELAY
+ *
Configure the minimum possible coding delay by disabling certain modes + * of operation.
+ *
+ * @hideinitializer */ +#define OPUS_GET_APPLICATION(x) OPUS_GET_APPLICATION_REQUEST, __opus_check_int_ptr(x) + +/** Gets the total samples of delay added by the entire codec. + * This can be queried by the encoder and then the provided number of samples can be + * skipped on from the start of the decoder's output to provide time aligned input + * and output. From the perspective of a decoding application the real data begins this many + * samples late. + * + * The decoder contribution to this delay is identical for all decoders, but the + * encoder portion of the delay may vary from implementation to implementation, + * version to version, or even depend on the encoder's initial configuration. + * Applications needing delay compensation should call this CTL rather than + * hard-coding a value. + * @param[out] x opus_int32 *: Number of lookahead samples + * @hideinitializer */ +#define OPUS_GET_LOOKAHEAD(x) OPUS_GET_LOOKAHEAD_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's use of inband forward error correction (FEC). + * @note This is only applicable to the LPC layer + * @see OPUS_GET_INBAND_FEC + * @param[in] x opus_int32: Allowed values: + *
+ *
0
Disable inband FEC (default).
+ *
1
Enable inband FEC.
+ *
+ * @hideinitializer */ +#define OPUS_SET_INBAND_FEC(x) OPUS_SET_INBAND_FEC_REQUEST, __opus_check_int(x) +/** Gets encoder's configured use of inband forward error correction. + * @see OPUS_SET_INBAND_FEC + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
0
Inband FEC disabled (default).
+ *
1
Inband FEC enabled.
+ *
+ * @hideinitializer */ +#define OPUS_GET_INBAND_FEC(x) OPUS_GET_INBAND_FEC_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's expected packet loss percentage. + * Higher values trigger progressively more loss resistant behavior in the encoder + * at the expense of quality at a given bitrate in the absence of packet loss, but + * greater quality under loss. + * @see OPUS_GET_PACKET_LOSS_PERC + * @param[in] x opus_int32: Loss percentage in the range 0-100, inclusive (default: 0). + * @hideinitializer */ +#define OPUS_SET_PACKET_LOSS_PERC(x) OPUS_SET_PACKET_LOSS_PERC_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured packet loss percentage. + * @see OPUS_SET_PACKET_LOSS_PERC + * @param[out] x opus_int32 *: Returns the configured loss percentage + * in the range 0-100, inclusive (default: 0). + * @hideinitializer */ +#define OPUS_GET_PACKET_LOSS_PERC(x) OPUS_GET_PACKET_LOSS_PERC_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's use of discontinuous transmission (DTX). + * @note This is only applicable to the LPC layer + * @see OPUS_GET_DTX + * @param[in] x opus_int32: Allowed values: + *
+ *
0
Disable DTX (default).
+ *
1
Enabled DTX.
+ *
+ * @hideinitializer */ +#define OPUS_SET_DTX(x) OPUS_SET_DTX_REQUEST, __opus_check_int(x) +/** Gets encoder's configured use of discontinuous transmission. + * @see OPUS_SET_DTX + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
0
DTX disabled (default).
+ *
1
DTX enabled.
+ *
+ * @hideinitializer */ +#define OPUS_GET_DTX(x) OPUS_GET_DTX_REQUEST, __opus_check_int_ptr(x) +/** Configures the depth of signal being encoded. + * + * This is a hint which helps the encoder identify silence and near-silence. + * It represents the number of significant bits of linear intensity below + * which the signal contains ignorable quantization or other noise. + * + * For example, OPUS_SET_LSB_DEPTH(14) would be an appropriate setting + * for G.711 u-law input. OPUS_SET_LSB_DEPTH(16) would be appropriate + * for 16-bit linear pcm input with opus_encode_float(). + * + * When using opus_encode() instead of opus_encode_float(), or when libopus + * is compiled for fixed-point, the encoder uses the minimum of the value + * set here and the value 16. + * + * @see OPUS_GET_LSB_DEPTH + * @param[in] x opus_int32: Input precision in bits, between 8 and 24 + * (default: 24). + * @hideinitializer */ +#define OPUS_SET_LSB_DEPTH(x) OPUS_SET_LSB_DEPTH_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured signal depth. + * @see OPUS_SET_LSB_DEPTH + * @param[out] x opus_int32 *: Input precision in bits, between 8 and + * 24 (default: 24). + * @hideinitializer */ +#define OPUS_GET_LSB_DEPTH(x) OPUS_GET_LSB_DEPTH_REQUEST, __opus_check_int_ptr(x) + +/** Configures the encoder's use of variable duration frames. + * When variable duration is enabled, the encoder is free to use a shorter frame + * size than the one requested in the opus_encode*() call. + * It is then the user's responsibility + * to verify how much audio was encoded by checking the ToC byte of the encoded + * packet. The part of the audio that was not encoded needs to be resent to the + * encoder for the next call. Do not use this option unless you really + * know what you are doing. + * @see OPUS_GET_EXPERT_FRAME_DURATION + * @param[in] x opus_int32: Allowed values: + *
+ *
OPUS_FRAMESIZE_ARG
Select frame size from the argument (default).
+ *
OPUS_FRAMESIZE_2_5_MS
Use 2.5 ms frames.
+ *
OPUS_FRAMESIZE_5_MS
Use 5 ms frames.
+ *
OPUS_FRAMESIZE_10_MS
Use 10 ms frames.
+ *
OPUS_FRAMESIZE_20_MS
Use 20 ms frames.
+ *
OPUS_FRAMESIZE_40_MS
Use 40 ms frames.
+ *
OPUS_FRAMESIZE_60_MS
Use 60 ms frames.
+ *
OPUS_FRAMESIZE_80_MS
Use 80 ms frames.
+ *
OPUS_FRAMESIZE_100_MS
Use 100 ms frames.
+ *
OPUS_FRAMESIZE_120_MS
Use 120 ms frames.
+ *
+ * @hideinitializer */ +#define OPUS_SET_EXPERT_FRAME_DURATION(x) OPUS_SET_EXPERT_FRAME_DURATION_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured use of variable duration frames. + * @see OPUS_SET_EXPERT_FRAME_DURATION + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
OPUS_FRAMESIZE_ARG
Select frame size from the argument (default).
+ *
OPUS_FRAMESIZE_2_5_MS
Use 2.5 ms frames.
+ *
OPUS_FRAMESIZE_5_MS
Use 5 ms frames.
+ *
OPUS_FRAMESIZE_10_MS
Use 10 ms frames.
+ *
OPUS_FRAMESIZE_20_MS
Use 20 ms frames.
+ *
OPUS_FRAMESIZE_40_MS
Use 40 ms frames.
+ *
OPUS_FRAMESIZE_60_MS
Use 60 ms frames.
+ *
OPUS_FRAMESIZE_80_MS
Use 80 ms frames.
+ *
OPUS_FRAMESIZE_100_MS
Use 100 ms frames.
+ *
OPUS_FRAMESIZE_120_MS
Use 120 ms frames.
+ *
+ * @hideinitializer */ +#define OPUS_GET_EXPERT_FRAME_DURATION(x) OPUS_GET_EXPERT_FRAME_DURATION_REQUEST, __opus_check_int_ptr(x) + +/** If set to 1, disables almost all use of prediction, making frames almost + * completely independent. This reduces quality. + * @see OPUS_GET_PREDICTION_DISABLED + * @param[in] x opus_int32: Allowed values: + *
+ *
0
Enable prediction (default).
+ *
1
Disable prediction.
+ *
+ * @hideinitializer */ +#define OPUS_SET_PREDICTION_DISABLED(x) OPUS_SET_PREDICTION_DISABLED_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured prediction status. + * @see OPUS_SET_PREDICTION_DISABLED + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
0
Prediction enabled (default).
+ *
1
Prediction disabled.
+ *
+ * @hideinitializer */ +#define OPUS_GET_PREDICTION_DISABLED(x) OPUS_GET_PREDICTION_DISABLED_REQUEST, __opus_check_int_ptr(x) + +/**@}*/ + +/** @defgroup opus_genericctls Generic CTLs + * + * These macros are used with the \c opus_decoder_ctl and + * \c opus_encoder_ctl calls to generate a particular + * request. + * + * When called on an \c OpusDecoder they apply to that + * particular decoder instance. When called on an + * \c OpusEncoder they apply to the corresponding setting + * on that encoder instance, if present. + * + * Some usage examples: + * + * @code + * int ret; + * opus_int32 pitch; + * ret = opus_decoder_ctl(dec_ctx, OPUS_GET_PITCH(&pitch)); + * if (ret == OPUS_OK) return ret; + * + * opus_encoder_ctl(enc_ctx, OPUS_RESET_STATE); + * opus_decoder_ctl(dec_ctx, OPUS_RESET_STATE); + * + * opus_int32 enc_bw, dec_bw; + * opus_encoder_ctl(enc_ctx, OPUS_GET_BANDWIDTH(&enc_bw)); + * opus_decoder_ctl(dec_ctx, OPUS_GET_BANDWIDTH(&dec_bw)); + * if (enc_bw != dec_bw) { + * printf("packet bandwidth mismatch!\n"); + * } + * @endcode + * + * @see opus_encoder, opus_decoder_ctl, opus_encoder_ctl, opus_decoderctls, opus_encoderctls + * @{ + */ + +/** Resets the codec state to be equivalent to a freshly initialized state. + * This should be called when switching streams in order to prevent + * the back to back decoding from giving different results from + * one at a time decoding. + * @hideinitializer */ +#define OPUS_RESET_STATE 4028 + +/** Gets the final state of the codec's entropy coder. + * This is used for testing purposes, + * The encoder and decoder state should be identical after coding a payload + * (assuming no data corruption or software bugs) + * + * @param[out] x opus_uint32 *: Entropy coder state + * + * @hideinitializer */ +#define OPUS_GET_FINAL_RANGE(x) OPUS_GET_FINAL_RANGE_REQUEST, __opus_check_uint_ptr(x) + +/** Gets the encoder's configured bandpass or the decoder's last bandpass. + * @see OPUS_SET_BANDWIDTH + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
#OPUS_AUTO
(default)
+ *
#OPUS_BANDWIDTH_NARROWBAND
4 kHz passband
+ *
#OPUS_BANDWIDTH_MEDIUMBAND
6 kHz passband
+ *
#OPUS_BANDWIDTH_WIDEBAND
8 kHz passband
+ *
#OPUS_BANDWIDTH_SUPERWIDEBAND
12 kHz passband
+ *
#OPUS_BANDWIDTH_FULLBAND
20 kHz passband
+ *
+ * @hideinitializer */ +#define OPUS_GET_BANDWIDTH(x) OPUS_GET_BANDWIDTH_REQUEST, __opus_check_int_ptr(x) + +/** Gets the sampling rate the encoder or decoder was initialized with. + * This simply returns the Fs value passed to opus_encoder_init() + * or opus_decoder_init(). + * @param[out] x opus_int32 *: Sampling rate of encoder or decoder. + * @hideinitializer + */ +#define OPUS_GET_SAMPLE_RATE(x) OPUS_GET_SAMPLE_RATE_REQUEST, __opus_check_int_ptr(x) + +/** If set to 1, disables the use of phase inversion for intensity stereo, + * improving the quality of mono downmixes, but slightly reducing normal + * stereo quality. Disabling phase inversion in the decoder does not comply + * with RFC 6716, although it does not cause any interoperability issue and + * is expected to become part of the Opus standard once RFC 6716 is updated + * by draft-ietf-codec-opus-update. + * @see OPUS_GET_PHASE_INVERSION_DISABLED + * @param[in] x opus_int32: Allowed values: + *
+ *
0
Enable phase inversion (default).
+ *
1
Disable phase inversion.
+ *
+ * @hideinitializer */ +#define OPUS_SET_PHASE_INVERSION_DISABLED(x) OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST, __opus_check_int(x) +/** Gets the encoder's configured phase inversion status. + * @see OPUS_SET_PHASE_INVERSION_DISABLED + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
0
Stereo phase inversion enabled (default).
+ *
1
Stereo phase inversion disabled.
+ *
+ * @hideinitializer */ +#define OPUS_GET_PHASE_INVERSION_DISABLED(x) OPUS_GET_PHASE_INVERSION_DISABLED_REQUEST, __opus_check_int_ptr(x) +/** Gets the DTX state of the encoder. + * Returns whether the last encoded frame was either a comfort noise update + * during DTX or not encoded because of DTX. + * @param[out] x opus_int32 *: Returns one of the following values: + *
+ *
0
The encoder is not in DTX.
+ *
1
The encoder is in DTX.
+ *
+ * @hideinitializer */ +#define OPUS_GET_IN_DTX(x) OPUS_GET_IN_DTX_REQUEST, __opus_check_int_ptr(x) + +/**@}*/ + +/** @defgroup opus_decoderctls Decoder related CTLs + * @see opus_genericctls, opus_encoderctls, opus_decoder + * @{ + */ + +/** Configures decoder gain adjustment. + * Scales the decoded output by a factor specified in Q8 dB units. + * This has a maximum range of -32768 to 32767 inclusive, and returns + * OPUS_BAD_ARG otherwise. The default is zero indicating no adjustment. + * This setting survives decoder reset. + * + * gain = pow(10, x/(20.0*256)) + * + * @param[in] x opus_int32: Amount to scale PCM signal by in Q8 dB units. + * @hideinitializer */ +#define OPUS_SET_GAIN(x) OPUS_SET_GAIN_REQUEST, __opus_check_int(x) +/** Gets the decoder's configured gain adjustment. @see OPUS_SET_GAIN + * + * @param[out] x opus_int32 *: Amount to scale PCM signal by in Q8 dB units. + * @hideinitializer */ +#define OPUS_GET_GAIN(x) OPUS_GET_GAIN_REQUEST, __opus_check_int_ptr(x) + +/** Gets the duration (in samples) of the last packet successfully decoded or concealed. + * @param[out] x opus_int32 *: Number of samples (at current sampling rate). + * @hideinitializer */ +#define OPUS_GET_LAST_PACKET_DURATION(x) OPUS_GET_LAST_PACKET_DURATION_REQUEST, __opus_check_int_ptr(x) + +/** Gets the pitch of the last decoded frame, if available. + * This can be used for any post-processing algorithm requiring the use of pitch, + * e.g. time stretching/shortening. If the last frame was not voiced, or if the + * pitch was not coded in the frame, then zero is returned. + * + * This CTL is only implemented for decoder instances. + * + * @param[out] x opus_int32 *: pitch period at 48 kHz (or 0 if not available) + * + * @hideinitializer */ +#define OPUS_GET_PITCH(x) OPUS_GET_PITCH_REQUEST, __opus_check_int_ptr(x) + +/**@}*/ + +/** @defgroup opus_libinfo Opus library information functions + * @{ + */ + +/** Converts an opus error code into a human readable string. + * + * @param[in] error int: Error number + * @returns Error string + */ +OPUS_EXPORT const char *opus_strerror(int error); + +/** Gets the libopus version string. + * + * Applications may look for the substring "-fixed" in the version string to + * determine whether they have a fixed-point or floating-point build at + * runtime. + * + * @returns Version string + */ +OPUS_EXPORT const char *opus_get_version_string(void); +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_DEFINES_H */ diff --git a/app/src/main/cpp/opus_multistream.h b/app/src/main/cpp/opus_multistream.h new file mode 100644 index 0000000..babcee6 --- /dev/null +++ b/app/src/main/cpp/opus_multistream.h @@ -0,0 +1,660 @@ +/* Copyright (c) 2011 Xiph.Org Foundation + Written by Jean-Marc Valin */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus_multistream.h + * @brief Opus reference implementation multistream API + */ + +#ifndef OPUS_MULTISTREAM_H +#define OPUS_MULTISTREAM_H + +#include "opus.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @cond OPUS_INTERNAL_DOC */ + +/** Macros to trigger compilation errors when the wrong types are provided to a + * CTL. */ +/**@{*/ +#define __opus_check_encstate_ptr(ptr) ((ptr) + ((ptr) - (OpusEncoder**)(ptr))) +#define __opus_check_decstate_ptr(ptr) ((ptr) + ((ptr) - (OpusDecoder**)(ptr))) +/**@}*/ + +/** These are the actual encoder and decoder CTL ID numbers. + * They should not be used directly by applications. + * In general, SETs should be even and GETs should be odd.*/ +/**@{*/ +#define OPUS_MULTISTREAM_GET_ENCODER_STATE_REQUEST 5120 +#define OPUS_MULTISTREAM_GET_DECODER_STATE_REQUEST 5122 +/**@}*/ + +/** @endcond */ + +/** @defgroup opus_multistream_ctls Multistream specific encoder and decoder CTLs + * + * These are convenience macros that are specific to the + * opus_multistream_encoder_ctl() and opus_multistream_decoder_ctl() + * interface. + * The CTLs from @ref opus_genericctls, @ref opus_encoderctls, and + * @ref opus_decoderctls may be applied to a multistream encoder or decoder as + * well. + * In addition, you may retrieve the encoder or decoder state for an specific + * stream via #OPUS_MULTISTREAM_GET_ENCODER_STATE or + * #OPUS_MULTISTREAM_GET_DECODER_STATE and apply CTLs to it individually. + */ +/**@{*/ + +/** Gets the encoder state for an individual stream of a multistream encoder. + * @param[in] x opus_int32: The index of the stream whose encoder you + * wish to retrieve. + * This must be non-negative and less than + * the streams parameter used + * to initialize the encoder. + * @param[out] y OpusEncoder**: Returns a pointer to the given + * encoder state. + * @retval OPUS_BAD_ARG The index of the requested stream was out of range. + * @hideinitializer + */ +#define OPUS_MULTISTREAM_GET_ENCODER_STATE(x,y) OPUS_MULTISTREAM_GET_ENCODER_STATE_REQUEST, __opus_check_int(x), __opus_check_encstate_ptr(y) + +/** Gets the decoder state for an individual stream of a multistream decoder. + * @param[in] x opus_int32: The index of the stream whose decoder you + * wish to retrieve. + * This must be non-negative and less than + * the streams parameter used + * to initialize the decoder. + * @param[out] y OpusDecoder**: Returns a pointer to the given + * decoder state. + * @retval OPUS_BAD_ARG The index of the requested stream was out of range. + * @hideinitializer + */ +#define OPUS_MULTISTREAM_GET_DECODER_STATE(x,y) OPUS_MULTISTREAM_GET_DECODER_STATE_REQUEST, __opus_check_int(x), __opus_check_decstate_ptr(y) + +/**@}*/ + +/** @defgroup opus_multistream Opus Multistream API + * @{ + * + * The multistream API allows individual Opus streams to be combined into a + * single packet, enabling support for up to 255 channels. Unlike an + * elementary Opus stream, the encoder and decoder must negotiate the channel + * configuration before the decoder can successfully interpret the data in the + * packets produced by the encoder. Some basic information, such as packet + * duration, can be computed without any special negotiation. + * + * The format for multistream Opus packets is defined in + * RFC 7845 + * and is based on the self-delimited Opus framing described in Appendix B of + * RFC 6716. + * Normal Opus packets are just a degenerate case of multistream Opus packets, + * and can be encoded or decoded with the multistream API by setting + * streams to 1 when initializing the encoder or + * decoder. + * + * Multistream Opus streams can contain up to 255 elementary Opus streams. + * These may be either "uncoupled" or "coupled", indicating that the decoder + * is configured to decode them to either 1 or 2 channels, respectively. + * The streams are ordered so that all coupled streams appear at the + * beginning. + * + * A mapping table defines which decoded channel i + * should be used for each input/output (I/O) channel j. This table is + * typically provided as an unsigned char array. + * Let i = mapping[j] be the index for I/O channel j. + * If i < 2*coupled_streams, then I/O channel j is + * encoded as the left channel of stream (i/2) if i + * is even, or as the right channel of stream (i/2) if + * i is odd. Otherwise, I/O channel j is encoded as + * mono in stream (i - coupled_streams), unless it has the special + * value 255, in which case it is omitted from the encoding entirely (the + * decoder will reproduce it as silence). Each value i must either + * be the special value 255 or be less than streams + coupled_streams. + * + * The output channels specified by the encoder + * should use the + * Vorbis + * channel ordering. A decoder may wish to apply an additional permutation + * to the mapping the encoder used to achieve a different output channel + * order (e.g. for outputing in WAV order). + * + * Each multistream packet contains an Opus packet for each stream, and all of + * the Opus packets in a single multistream packet must have the same + * duration. Therefore the duration of a multistream packet can be extracted + * from the TOC sequence of the first stream, which is located at the + * beginning of the packet, just like an elementary Opus stream: + * + * @code + * int nb_samples; + * int nb_frames; + * nb_frames = opus_packet_get_nb_frames(data, len); + * if (nb_frames < 1) + * return nb_frames; + * nb_samples = opus_packet_get_samples_per_frame(data, 48000) * nb_frames; + * @endcode + * + * The general encoding and decoding process proceeds exactly the same as in + * the normal @ref opus_encoder and @ref opus_decoder APIs. + * See their documentation for an overview of how to use the corresponding + * multistream functions. + */ + +/** Opus multistream encoder state. + * This contains the complete state of a multistream Opus encoder. + * It is position independent and can be freely copied. + * @see opus_multistream_encoder_create + * @see opus_multistream_encoder_init + */ +typedef struct OpusMSEncoder OpusMSEncoder; + +/** Opus multistream decoder state. + * This contains the complete state of a multistream Opus decoder. + * It is position independent and can be freely copied. + * @see opus_multistream_decoder_create + * @see opus_multistream_decoder_init + */ +typedef struct OpusMSDecoder OpusMSDecoder; + +/**\name Multistream encoder functions */ +/**@{*/ + +/** Gets the size of an OpusMSEncoder structure. + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than 255. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_encoder_get_size( + int streams, + int coupled_streams +); + +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_surround_encoder_get_size( + int channels, + int mapping_family +); + + +/** Allocates and initializes a multistream encoder state. + * Call opus_multistream_encoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than the number of channels. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than the number of input channels. + * @param[in] mapping const unsigned char[channels]: Mapping from + * encoded channels to input channels, as described in + * @ref opus_multistream. As an extra constraint, the + * multistream encoder does not allow encoding coupled + * streams for which one channel is unused since this + * is never a good idea. + * @param application int: The target encoder application. + * This must be one of the following: + *
+ *
#OPUS_APPLICATION_VOIP
+ *
Process signal for improved speech intelligibility.
+ *
#OPUS_APPLICATION_AUDIO
+ *
Favor faithfulness to the original input.
+ *
#OPUS_APPLICATION_RESTRICTED_LOWDELAY
+ *
Configure the minimum possible coding delay by disabling certain modes + * of operation.
+ *
+ * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSEncoder *opus_multistream_encoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int application, + int *error +) OPUS_ARG_NONNULL(5); + +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSEncoder *opus_multistream_surround_encoder_create( + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + unsigned char *mapping, + int application, + int *error +) OPUS_ARG_NONNULL(4) OPUS_ARG_NONNULL(5) OPUS_ARG_NONNULL(6); + +/** Initialize a previously allocated multistream encoder state. + * The memory pointed to by \a st must be at least the size returned by + * opus_multistream_encoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_multistream_encoder_create + * @see opus_multistream_encoder_get_size + * @param st OpusMSEncoder*: Multistream encoder state to initialize. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than the number of channels. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than the number of input channels. + * @param[in] mapping const unsigned char[channels]: Mapping from + * encoded channels to input channels, as described in + * @ref opus_multistream. As an extra constraint, the + * multistream encoder does not allow encoding coupled + * streams for which one channel is unused since this + * is never a good idea. + * @param application int: The target encoder application. + * This must be one of the following: + *
+ *
#OPUS_APPLICATION_VOIP
+ *
Process signal for improved speech intelligibility.
+ *
#OPUS_APPLICATION_AUDIO
+ *
Favor faithfulness to the original input.
+ *
#OPUS_APPLICATION_RESTRICTED_LOWDELAY
+ *
Configure the minimum possible coding delay by disabling certain modes + * of operation.
+ *
+ * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_multistream_encoder_init( + OpusMSEncoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int application +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +OPUS_EXPORT int opus_multistream_surround_encoder_init( + OpusMSEncoder *st, + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + unsigned char *mapping, + int application +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(5) OPUS_ARG_NONNULL(6) OPUS_ARG_NONNULL(7); + +/** Encodes a multistream Opus frame. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param[in] pcm const opus_int16*: The input signal as interleaved + * samples. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_encode( + OpusMSEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Encodes a multistream Opus frame from floating point input. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param[in] pcm const float*: The input signal as interleaved + * samples with a normal range of + * +/-1.0. + * Samples with a range beyond +/-1.0 + * are supported but will be clipped by + * decoders using the integer API and + * should only be used if it is known + * that the far end supports extended + * dynamic range. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_encode_float( + OpusMSEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + +/** Frees an OpusMSEncoder allocated by + * opus_multistream_encoder_create(). + * @param st OpusMSEncoder*: Multistream encoder state to be freed. + */ +OPUS_EXPORT void opus_multistream_encoder_destroy(OpusMSEncoder *st); + +/** Perform a CTL function on a multistream Opus encoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusMSEncoder*: Multistream encoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_encoderctls, or @ref opus_multistream_ctls. + * @see opus_genericctls + * @see opus_encoderctls + * @see opus_multistream_ctls + */ +OPUS_EXPORT int opus_multistream_encoder_ctl(OpusMSEncoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/**@}*/ + +/**\name Multistream decoder functions */ +/**@{*/ + +/** Gets the size of an OpusMSDecoder structure. + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_multistream_decoder_get_size( + int streams, + int coupled_streams +); + +/** Allocates and initializes a multistream decoder state. + * Call opus_multistream_decoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] mapping const unsigned char[channels]: Mapping from + * coded channels to output channels, as described in + * @ref opus_multistream. + * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSDecoder *opus_multistream_decoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping, + int *error +) OPUS_ARG_NONNULL(5); + +/** Intialize a previously allocated decoder state object. + * The memory pointed to by \a st must be at least the size returned by + * opus_multistream_encoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_multistream_decoder_create + * @see opus_multistream_deocder_get_size + * @param st OpusMSEncoder*: Multistream encoder state to initialize. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] mapping const unsigned char[channels]: Mapping from + * coded channels to output channels, as described in + * @ref opus_multistream. + * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_multistream_decoder_init( + OpusMSDecoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + const unsigned char *mapping +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + +/** Decode a multistream Opus packet. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_decode( + OpusMSDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Decode a multistream Opus packet with floating point output. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_multistream_decode_float( + OpusMSDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + +/** Perform a CTL function on a multistream Opus decoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusMSDecoder*: Multistream decoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_decoderctls, or @ref opus_multistream_ctls. + * @see opus_genericctls + * @see opus_decoderctls + * @see opus_multistream_ctls + */ +OPUS_EXPORT int opus_multistream_decoder_ctl(OpusMSDecoder *st, int request, ...) OPUS_ARG_NONNULL(1); + +/** Frees an OpusMSDecoder allocated by + * opus_multistream_decoder_create(). + * @param st OpusMSDecoder: Multistream decoder state to be freed. + */ +OPUS_EXPORT void opus_multistream_decoder_destroy(OpusMSDecoder *st); + +/**@}*/ + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_MULTISTREAM_H */ diff --git a/app/src/main/cpp/opus_projection.h b/app/src/main/cpp/opus_projection.h new file mode 100644 index 0000000..9dabf4e --- /dev/null +++ b/app/src/main/cpp/opus_projection.h @@ -0,0 +1,568 @@ +/* Copyright (c) 2017 Google Inc. + Written by Andrew Allen */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus_projection.h + * @brief Opus projection reference API + */ + +#ifndef OPUS_PROJECTION_H +#define OPUS_PROJECTION_H + +#include "opus_multistream.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @cond OPUS_INTERNAL_DOC */ + +/** These are the actual encoder and decoder CTL ID numbers. + * They should not be used directly by applications.c + * In general, SETs should be even and GETs should be odd.*/ +/**@{*/ +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN_REQUEST 6001 +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX_SIZE_REQUEST 6003 +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX_REQUEST 6005 +/**@}*/ + + +/** @endcond */ + +/** @defgroup opus_projection_ctls Projection specific encoder and decoder CTLs + * + * These are convenience macros that are specific to the + * opus_projection_encoder_ctl() and opus_projection_decoder_ctl() + * interface. + * The CTLs from @ref opus_genericctls, @ref opus_encoderctls, + * @ref opus_decoderctls, and @ref opus_multistream_ctls may be applied to a + * projection encoder or decoder as well. + */ +/**@{*/ + +/** Gets the gain (in dB. S7.8-format) of the demixing matrix from the encoder. + * @param[out] x opus_int32 *: Returns the gain (in dB. S7.8-format) + * of the demixing matrix. + * @hideinitializer + */ +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN(x) OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN_REQUEST, __opus_check_int_ptr(x) + + +/** Gets the size in bytes of the demixing matrix from the encoder. + * @param[out] x opus_int32 *: Returns the size in bytes of the + * demixing matrix. + * @hideinitializer + */ +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX_SIZE(x) OPUS_PROJECTION_GET_DEMIXING_MATRIX_SIZE_REQUEST, __opus_check_int_ptr(x) + + +/** Copies the demixing matrix to the supplied pointer location. + * @param[out] x unsigned char *: Returns the demixing matrix to the + * supplied pointer location. + * @param y opus_int32: The size in bytes of the reserved memory at the + * pointer location. + * @hideinitializer + */ +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX(x,y) OPUS_PROJECTION_GET_DEMIXING_MATRIX_REQUEST, x, __opus_check_int(y) + + +/**@}*/ + +/** Opus projection encoder state. + * This contains the complete state of a projection Opus encoder. + * It is position independent and can be freely copied. + * @see opus_projection_ambisonics_encoder_create + */ +typedef struct OpusProjectionEncoder OpusProjectionEncoder; + + +/** Opus projection decoder state. + * This contains the complete state of a projection Opus decoder. + * It is position independent and can be freely copied. + * @see opus_projection_decoder_create + * @see opus_projection_decoder_init + */ +typedef struct OpusProjectionDecoder OpusProjectionDecoder; + + +/**\name Projection encoder functions */ +/**@{*/ + +/** Gets the size of an OpusProjectionEncoder structure. + * @param channels int: The total number of input channels to encode. + * This must be no more than 255. + * @param mapping_family int: The mapping family to use for selecting + * the appropriate projection. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_projection_ambisonics_encoder_get_size( + int channels, + int mapping_family +); + + +/** Allocates and initializes a projection encoder state. + * Call opus_projection_encoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param mapping_family int: The mapping family to use for selecting + * the appropriate projection. + * @param[out] streams int *: The total number of streams that will + * be encoded from the input. + * @param[out] coupled_streams int *: Number of coupled (2 channel) + * streams that will be encoded from the input. + * @param application int: The target encoder application. + * This must be one of the following: + *
+ *
#OPUS_APPLICATION_VOIP
+ *
Process signal for improved speech intelligibility.
+ *
#OPUS_APPLICATION_AUDIO
+ *
Favor faithfulness to the original input.
+ *
#OPUS_APPLICATION_RESTRICTED_LOWDELAY
+ *
Configure the minimum possible coding delay by disabling certain modes + * of operation.
+ *
+ * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusProjectionEncoder *opus_projection_ambisonics_encoder_create( + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + int application, + int *error +) OPUS_ARG_NONNULL(4) OPUS_ARG_NONNULL(5); + + +/** Initialize a previously allocated projection encoder state. + * The memory pointed to by \a st must be at least the size returned by + * opus_projection_ambisonics_encoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_projection_ambisonics_encoder_create + * @see opus_projection_ambisonics_encoder_get_size + * @param st OpusProjectionEncoder*: Projection encoder state to initialize. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than the number of channels. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than the number of input channels. + * @param application int: The target encoder application. + * This must be one of the following: + *
+ *
#OPUS_APPLICATION_VOIP
+ *
Process signal for improved speech intelligibility.
+ *
#OPUS_APPLICATION_AUDIO
+ *
Favor faithfulness to the original input.
+ *
#OPUS_APPLICATION_RESTRICTED_LOWDELAY
+ *
Configure the minimum possible coding delay by disabling certain modes + * of operation.
+ *
+ * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_projection_ambisonics_encoder_init( + OpusProjectionEncoder *st, + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + int application +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(5) OPUS_ARG_NONNULL(6); + + +/** Encodes a projection Opus frame. + * @param st OpusProjectionEncoder*: Projection encoder state. + * @param[in] pcm const opus_int16*: The input signal as interleaved + * samples. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_projection_encode( + OpusProjectionEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + + +/** Encodes a projection Opus frame from floating point input. + * @param st OpusProjectionEncoder*: Projection encoder state. + * @param[in] pcm const float*: The input signal as interleaved + * samples with a normal range of + * +/-1.0. + * Samples with a range beyond +/-1.0 + * are supported but will be clipped by + * decoders using the integer API and + * should only be used if it is known + * that the far end supports extended + * dynamic range. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_projection_encode_float( + OpusProjectionEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + + +/** Frees an OpusProjectionEncoder allocated by + * opus_projection_ambisonics_encoder_create(). + * @param st OpusProjectionEncoder*: Projection encoder state to be freed. + */ +OPUS_EXPORT void opus_projection_encoder_destroy(OpusProjectionEncoder *st); + + +/** Perform a CTL function on a projection Opus encoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusProjectionEncoder*: Projection encoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_encoderctls, @ref opus_multistream_ctls, or + * @ref opus_projection_ctls + * @see opus_genericctls + * @see opus_encoderctls + * @see opus_multistream_ctls + * @see opus_projection_ctls + */ +OPUS_EXPORT int opus_projection_encoder_ctl(OpusProjectionEncoder *st, int request, ...) OPUS_ARG_NONNULL(1); + + +/**@}*/ + +/**\name Projection decoder functions */ +/**@{*/ + +/** Gets the size of an OpusProjectionDecoder structure. + * @param channels int: The total number of output channels. + * This must be no more than 255. + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_projection_decoder_get_size( + int channels, + int streams, + int coupled_streams +); + + +/** Allocates and initializes a projection decoder state. + * Call opus_projection_decoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] demixing_matrix const unsigned char[demixing_matrix_size]: Demixing matrix + * that mapping from coded channels to output channels, + * as described in @ref opus_projection and + * @ref opus_projection_ctls. + * @param demixing_matrix_size opus_int32: The size in bytes of the + * demixing matrix, as + * described in @ref + * opus_projection_ctls. + * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusProjectionDecoder *opus_projection_decoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + unsigned char *demixing_matrix, + opus_int32 demixing_matrix_size, + int *error +) OPUS_ARG_NONNULL(5); + + +/** Intialize a previously allocated projection decoder state object. + * The memory pointed to by \a st must be at least the size returned by + * opus_projection_decoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_projection_decoder_create + * @see opus_projection_deocder_get_size + * @param st OpusProjectionDecoder*: Projection encoder state to initialize. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] demixing_matrix const unsigned char[demixing_matrix_size]: Demixing matrix + * that mapping from coded channels to output channels, + * as described in @ref opus_projection and + * @ref opus_projection_ctls. + * @param demixing_matrix_size opus_int32: The size in bytes of the + * demixing matrix, as + * described in @ref + * opus_projection_ctls. + * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_projection_decoder_init( + OpusProjectionDecoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + unsigned char *demixing_matrix, + opus_int32 demixing_matrix_size +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + + +/** Decode a projection Opus packet. + * @param st OpusProjectionDecoder*: Projection decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_projection_decode( + OpusProjectionDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + + +/** Decode a projection Opus packet with floating point output. + * @param st OpusProjectionDecoder*: Projection decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_projection_decode_float( + OpusProjectionDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + + +/** Perform a CTL function on a projection Opus decoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusProjectionDecoder*: Projection decoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_decoderctls, @ref opus_multistream_ctls, or + * @ref opus_projection_ctls. + * @see opus_genericctls + * @see opus_decoderctls + * @see opus_multistream_ctls + * @see opus_projection_ctls + */ +OPUS_EXPORT int opus_projection_decoder_ctl(OpusProjectionDecoder *st, int request, ...) OPUS_ARG_NONNULL(1); + + +/** Frees an OpusProjectionDecoder allocated by + * opus_projection_decoder_create(). + * @param st OpusProjectionDecoder: Projection decoder state to be freed. + */ +OPUS_EXPORT void opus_projection_decoder_destroy(OpusProjectionDecoder *st); + + +/**@}*/ + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_PROJECTION_H */ diff --git a/app/src/main/cpp/opus_recorder.cpp b/app/src/main/cpp/opus_recorder.cpp new file mode 100644 index 0000000..b3cdf8f --- /dev/null +++ b/app/src/main/cpp/opus_recorder.cpp @@ -0,0 +1,77 @@ +#include +#include +#include +#include "opus.h" + +#define LOG_TAG "OpusJNI" +#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__) +#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__) + +// Opus编码器句柄 +static OpusEncoder *encoderHandle = nullptr; + +extern "C" { + +JNIEXPORT jlong JNICALL +Java_info_dourok_voicebot_OpusEncoder_nativeInitEncoder(JNIEnv *env, jobject thiz, + jint sample_rate, jint channels, + jint application) { + int error; + OpusEncoder *encoder = opus_encoder_create(sample_rate, channels, application, &error); + + if (error != OPUS_OK || encoder == nullptr) { + LOGE("Failed to create encoder: %s", opus_strerror(error)); + return 0; + } + + opus_encoder_ctl(encoder, OPUS_SET_BITRATE(64000)); // 64 kbps + opus_encoder_ctl(encoder, OPUS_SET_COMPLEXITY(10)); // 0-10, 10是最高质量 + + LOGI("Opus encoder initialized: sample_rate=%d, channels=%d", sample_rate, channels); + return (jlong) (intptr_t) encoder; +} + +JNIEXPORT jint JNICALL +Java_info_dourok_voicebot_OpusEncoder_nativeEncodeBytes(JNIEnv *env, jobject thiz, + jlong encoder_handle, + jbyteArray input_buffer, + jint input_size, + jbyteArray output_buffer, + jint max_output_size) { + OpusEncoder *encoder = (OpusEncoder *) (intptr_t) encoder_handle; + if (encoder == nullptr) { + LOGE("Encoder handle is null"); + return -1; + } + + jbyte *input = env->GetByteArrayElements(input_buffer, nullptr); + jbyte *output = env->GetByteArrayElements(output_buffer, nullptr); + + opus_int16 *pcm = (opus_int16 *) input; + int frame_size = input_size / 2; // 16位samples的数量 + + int result = opus_encode(encoder, pcm, frame_size, + (unsigned char *) output, max_output_size); + + env->ReleaseByteArrayElements(input_buffer, input, JNI_ABORT); + env->ReleaseByteArrayElements(output_buffer, output, 0); + + if (result < 0) { + LOGE("Encoding failed: %s", opus_strerror(result)); + return -1; + } + + return result; +} + +JNIEXPORT void JNICALL +Java_info_dourok_voicebot_OpusEncoder_nativeReleaseEncoder(JNIEnv *env, jobject thiz, + jlong encoder_handle) { + OpusEncoder *encoder = (OpusEncoder *) (intptr_t) encoder_handle; + if (encoder != nullptr) { + opus_encoder_destroy(encoder); + LOGI("Opus encoder released"); + } +} + +} // extern "C" \ No newline at end of file diff --git a/app/src/main/cpp/opus_types.h b/app/src/main/cpp/opus_types.h new file mode 100644 index 0000000..7cf6755 --- /dev/null +++ b/app/src/main/cpp/opus_types.h @@ -0,0 +1,166 @@ +/* (C) COPYRIGHT 1994-2002 Xiph.Org Foundation */ +/* Modified by Jean-Marc Valin */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +/* opus_types.h based on ogg_types.h from libogg */ + +/** + @file opus_types.h + @brief Opus reference implementation types +*/ +#ifndef OPUS_TYPES_H +#define OPUS_TYPES_H + +#define opus_int int /* used for counters etc; at least 16 bits */ +#define opus_int64 long long +#define opus_int8 signed char + +#define opus_uint unsigned int /* used for counters etc; at least 16 bits */ +#define opus_uint64 unsigned long long +#define opus_uint8 unsigned char + +/* Use the real stdint.h if it's there (taken from Paul Hsieh's pstdint.h) */ +#if (defined(__STDC__) && __STDC__ && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) || defined (HAVE_STDINT_H)) +#include +# undef opus_int64 +# undef opus_int8 +# undef opus_uint64 +# undef opus_uint8 + typedef int8_t opus_int8; + typedef uint8_t opus_uint8; + typedef int16_t opus_int16; + typedef uint16_t opus_uint16; + typedef int32_t opus_int32; + typedef uint32_t opus_uint32; + typedef int64_t opus_int64; + typedef uint64_t opus_uint64; +#elif defined(_WIN32) + +# if defined(__CYGWIN__) +# include <_G_config.h> + typedef _G_int32_t opus_int32; + typedef _G_uint32_t opus_uint32; + typedef _G_int16 opus_int16; + typedef _G_uint16 opus_uint16; +# elif defined(__MINGW32__) + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; +# elif defined(__MWERKS__) + typedef int opus_int32; + typedef unsigned int opus_uint32; + typedef short opus_int16; + typedef unsigned short opus_uint16; +# else + /* MSVC/Borland */ + typedef __int32 opus_int32; + typedef unsigned __int32 opus_uint32; + typedef __int16 opus_int16; + typedef unsigned __int16 opus_uint16; +# endif + +#elif defined(__MACOS__) + +# include + typedef SInt16 opus_int16; + typedef UInt16 opus_uint16; + typedef SInt32 opus_int32; + typedef UInt32 opus_uint32; + +#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ + +# include + typedef int16_t opus_int16; + typedef u_int16_t opus_uint16; + typedef int32_t opus_int32; + typedef u_int32_t opus_uint32; + +#elif defined(__BEOS__) + + /* Be */ +# include + typedef int16 opus_int16; + typedef u_int16 opus_uint16; + typedef int32_t opus_int32; + typedef u_int32_t opus_uint32; + +#elif defined (__EMX__) + + /* OS/2 GCC */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined (DJGPP) + + /* DJGPP */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined(R5900) + + /* PS2 EE */ + typedef int opus_int32; + typedef unsigned opus_uint32; + typedef short opus_int16; + typedef unsigned short opus_uint16; + +#elif defined(__SYMBIAN32__) + + /* Symbian GCC */ + typedef signed short opus_int16; + typedef unsigned short opus_uint16; + typedef signed int opus_int32; + typedef unsigned int opus_uint32; + +#elif defined(CONFIG_TI_C54X) || defined (CONFIG_TI_C55X) + + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef long opus_int32; + typedef unsigned long opus_uint32; + +#elif defined(CONFIG_TI_C6X) + + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#else + + /* Give up, take a reasonable guess */ + typedef short opus_int16; + typedef unsigned short opus_uint16; + typedef int opus_int32; + typedef unsigned int opus_uint32; + +#endif + +#endif /* OPUS_TYPES_H */ diff --git a/app/src/main/java/com/zs/smarthuman/sherpa/VadManager.kt b/app/src/main/java/com/zs/smarthuman/sherpa/VadManager.kt index 7e64636..cadf8ed 100644 --- a/app/src/main/java/com/zs/smarthuman/sherpa/VadManager.kt +++ b/app/src/main/java/com/zs/smarthuman/sherpa/VadManager.kt @@ -25,11 +25,14 @@ class VadManager( private var lastActiveMs = 0L private var speechStartMs = 0L - // 配置参数 - private val MIN_RMS = 0.003f - private val END_SILENCE_MS = 200L - private val SPEECH_START_PROTECT_MS = 90L - private val RESET_IDLE_MS = 3_000L + // 配置参数优化:适配预缓存逻辑,减少开头丢失概率 + private val MIN_RMS = 0.002f // 降低能量阈值,避免弱语音开头被过滤 + private val END_SILENCE_MS = 100L // 保持不变 + private val SPEECH_START_PROTECT_MS = 30L // 缩短语音开始保护时间(从90→50ms),更快触发onSpeechStart + private val RESET_IDLE_MS = 3_000L // 保持不变 + + // 新增:标记是否已触发过语音开始回调,避免重复触发 + private var speechStartTriggered = false init { try { @@ -38,14 +41,14 @@ class VadManager( VadModelConfig( sileroVadModelConfig = SileroVadModelConfig( model = "silero_vad.onnx", - threshold = 0.45F, + threshold = 0.40F, // 降低VAD检测阈值(从0.45→0.40),更灵敏检测开头语音 minSilenceDuration = 0.05F, - minSpeechDuration = 0.1F, + minSpeechDuration = 0.08F, // 缩短最小语音时长(从0.1→0.08s),更快识别短开头 windowSize = 512 ) ) ) - LogUtils.i(TAG, "✅ VAD 初始化完成(线程安全版)") + LogUtils.i(TAG, "✅ VAD 初始化完成(线程安全+开头优化版)") } catch (e: Exception) { LogUtils.e(TAG, "❌ VAD 初始化失败", e) throw e @@ -63,7 +66,7 @@ class VadManager( } val now = System.currentTimeMillis() - // 快速能量检测 + // 快速能量检测:优化采样步长,提高开头检测精度 val rms = fastRms(samples) if (rms < MIN_RMS) { handleSilence(now) @@ -82,11 +85,13 @@ class VadManager( if (hasSpeech) { lastSpeechMs = now lastActiveMs = now - if (!isSpeaking) { + // 优化:避免重复触发onSpeechStart + if (!isSpeaking && !speechStartTriggered) { isSpeaking = true + speechStartTriggered = true // 标记已触发 speechStartMs = now - onSpeechStart() - LogUtils.d(TAG, "🗣 语音开始 | RMS: $rms | 采样数: ${samples.size}") + onSpeechStart() // 立即触发,不延迟 + LogUtils.d(TAG, "🗣 语音开始 | RMS: $rms | 采样数: ${samples.size} | 时间戳: $now") } } else { handleSilence(now) @@ -115,6 +120,7 @@ class VadManager( && now - lastSpeechMs > END_SILENCE_MS ) { isSpeaking = false + speechStartTriggered = false // 重置触发标记 onSpeechEnd() LogUtils.d(TAG, "🔇 语音结束 | 总时长: ${now - speechStartMs}ms") } @@ -123,6 +129,7 @@ class VadManager( if (!isSpeaking && now - lastActiveMs > RESET_IDLE_MS) { try { vad.reset() + speechStartTriggered = false // 重置触发标记 lastActiveMs = now LogUtils.d(TAG, "🔄 VAD 空闲自动重置") } catch (e: Exception) { @@ -131,11 +138,11 @@ class VadManager( } } - // 快速RMS计算逻辑保持不变 + // 优化:调整RMS计算步长,提高开头弱语音的检测精度(从4→2) private fun fastRms(samples: FloatArray): Float { var sum = 0f var count = 0 - val step = 4 + val step = 2 // 缩小采样步长,更精准计算能量 var i = 0 while (i < samples.size) { val v = samples[i] @@ -147,17 +154,18 @@ class VadManager( } /** - * 线程安全的重置方法 + * 线程安全的重置方法:新增重置触发标记 */ suspend fun reset() { vadMutex.withLock { isSpeaking = false + speechStartTriggered = false // 关键:重置触发标记 lastSpeechMs = 0L lastActiveMs = 0L speechStartMs = 0L try { vad.reset() - LogUtils.d(TAG, "🔄 VAD 手动重置完成") + LogUtils.d(TAG, "🔄 VAD 手动重置完成(含触发标记)") } catch (e: Exception) { LogUtils.e(TAG, "❌ VAD 手动重置异常", e) } diff --git a/app/src/main/java/com/zs/smarthuman/sherpa/VoiceController.kt b/app/src/main/java/com/zs/smarthuman/sherpa/VoiceController.kt index 5c90b5e..781a5a5 100644 --- a/app/src/main/java/com/zs/smarthuman/sherpa/VoiceController.kt +++ b/app/src/main/java/com/zs/smarthuman/sherpa/VoiceController.kt @@ -20,14 +20,6 @@ import kotlinx.coroutines.asCoroutineDispatcher import kotlin.math.max import kotlin.math.min -// 1. 封装声纹验证状态(替代零散的Boolean标记) -private data class SpeakerVerifyState( - var job: Job? = null, - var finished: Boolean = false, - var passed: Boolean = true, // fail-open 默认放行 - var failed: Boolean = false -) - // 2. 封装超时相关状态 private data class TimeoutState( var idleTimeoutMs: Long, @@ -54,16 +46,11 @@ class VoiceController( private const val SAMPLE_RATE = 16000 private const val PRE_BUFFER_SIZE = SAMPLE_RATE * 2 private const val INVALID_RESET_DEBOUNCE_MS = 1500L - private const val SPEAKER_THRESHOLD = 0.35f - private const val MIN_VERIFY_MS = 600L + private const val SPEAKER_THRESHOLD = 0.4f + private const val MIN_VERIFY_MS = 650L private const val MAX_VERIFY_MS = 1200L private const val KWS_OBSERVE_MS = 500L private const val SPEECH_COOLDOWN_MS = 680L - - // 声纹验证常量集中管理 - private const val SPEAKER_VERIFY_NEED_SAMPLES_MS = 600L - private const val SPEAKER_VERIFY_MAX_WAIT_MS = 800L - private const val SPEAKER_VERIFY_CHECK_INTERVAL_MS = 20L } // ================= 核心优化:自定义IO线程池(减少调度开销) ================= @@ -85,9 +72,6 @@ class VoiceController( onStateChanged?.invoke(value) } - // 声纹验证状态封装(替代零散的Boolean) - private val speakerVerifyState = SpeakerVerifyState() - // 超时状态封装 private val timeoutState = TimeoutState( idleTimeoutMs = idleTimeoutSeconds * 1000L, @@ -331,7 +315,6 @@ class VoiceController( audioBufferSize += copySize } - startSpeakerVerify() state = VoiceState.RECORDING } @@ -345,84 +328,36 @@ class VoiceController( finishSentence() } - - /* ================= 声纹验证(统一Job管理 + 原生数组优化) ================= */ - private fun startSpeakerVerify() { - // 修复:彻底取消旧任务,防止回调泄漏 - speakerVerifyState.job?.cancel() - speakerVerifyState.job = null - // 修复:强制重置所有声纹状态,无残留 - resetSpeakerVerifyState() - - // 启动新的验证任务,绑定到统一作用域 - speakerVerifyState.job = coroutineScope.launch(customIoDispatcher) { - val needSamples = (SAMPLE_RATE * SPEAKER_VERIFY_NEED_SAMPLES_MS / 1000).toInt() - var waited = 0L - - // 等待足够的音频样本(使用audioBufferSize) - while (audioBufferSize < needSamples && waited < SPEAKER_VERIFY_MAX_WAIT_MS) { - delay(SPEAKER_VERIFY_CHECK_INTERVAL_MS) - waited += SPEAKER_VERIFY_CHECK_INTERVAL_MS - } - - if (audioBufferSize < needSamples) { - speakerVerifyState.finished = true - return@launch - } - - // 优化:直接从原生数组截取,无拷贝 - val startIdx = maxOf(0, audioBufferSize - needSamples) - val input = audioBuffer.copyOfRange(startIdx, audioBufferSize) - val pass = verifySpeaker(input) - - // 更新状态(线程安全) - withContext(Dispatchers.Main) { - speakerVerifyState.passed = pass - speakerVerifyState.failed = !pass - speakerVerifyState.finished = true - } - } - } - - private suspend fun verifySpeaker(audio: FloatArray): Boolean { - if (audio.isEmpty()) return false - - val audioMs = audio.size * 1000L / SAMPLE_RATE - // 修复:严格模式下,短音频直接判定失败,不允许跳过 -// if (audioMs < MIN_VERIFY_MS) { -// return if (ENABLE_STRICT_SPEAKER_VERIFY) { -// LogUtils.w(TAG, "🔴 严格模式:短音频 $audioMs ms,声纹验证失败") -// false -// } else { -// LogUtils.d(TAG, "🟡 非严格模式:短音频 $audioMs ms,跳过声纹") -// true -// } -// } - - val verifyStartMs = System.currentTimeMillis() - - val maxSamples = (SAMPLE_RATE * MAX_VERIFY_MS / 1000).toInt() - val input = if (audio.size > maxSamples) { - audio.copyOfRange(audio.size - maxSamples, audio.size) + private fun verifySpeaker(audio: FloatArray): Boolean { + val verifyStartNs = System.nanoTime() + val totalSamples = audio.size + val tempTarget = min((SAMPLE_RATE * MAX_VERIFY_MS / 1000).toInt(), totalSamples) + val targetSamples = max(tempTarget, (SAMPLE_RATE * MIN_VERIFY_MS / 1000).toInt()) + val midStartIndex = (totalSamples - targetSamples) / 2 + val finalAudio = if (midStartIndex >= 0 && midStartIndex + targetSamples <= totalSamples) { + audio.copyOfRange(midStartIndex, midStartIndex + targetSamples) } else { - audio + val verifyCostMs = (System.nanoTime() - verifyStartNs) / 1_000_000 + LogUtils.d(TAG, "🔍 声纹验证耗时: ${verifyCostMs}ms | 结果: 失败(有效语音过短)") + return false } - return withContext(customIoDispatcher) { + return try { var stream: OnlineStream? = null try { stream = SpeakerRecognition.extractor.createStream() - stream.acceptWaveform(input, SAMPLE_RATE) + stream.acceptWaveform(finalAudio, SAMPLE_RATE) // 用中间段音频验证 stream.inputFinished() if (!SpeakerRecognition.extractor.isReady(stream)) { - LogUtils.w(TAG, "⚠️ stream not ready,验证失败") - return@withContext false + val verifyCostMs = (System.nanoTime() - verifyStartNs) / 1_000_000 + LogUtils.d(TAG, "🔍 声纹验证耗时: ${verifyCostMs}ms | 结果: 失败(Stream未就绪)") + return false } val embedding = SpeakerRecognition.extractor.compute(stream) - val pass = speakerManagerLock.withLock { + val result = speakerManagerLock.withLock { SpeakerRecognition.manager.verify( CURRENT_USER_ID, embedding, @@ -430,76 +365,60 @@ class VoiceController( ) } - val cost = System.currentTimeMillis() - verifyStartMs - LogUtils.d( - TAG, - "📊 声纹 | pass=$pass | 音频=${audioMs}ms | 输入=${input.size} | 耗时=${cost}ms" - ) - - // ================ 核心修复:移除状态判断,声纹失败强制触发终止流程 ================ - if (!pass) { - withContext(Dispatchers.Main.immediate) { - // 标记失败状态 - speakerVerifyState.failed = true - speakerVerifyState.finished = true - LogUtils.d(TAG, "🔴 声纹验证不通过,安全终止录音流程") - - // 核心:主动结束录音,走标准finishSentence闭环,不暴力中断 - finishSentence() - } - } - pass - } catch (e: Exception) { - LogUtils.e(TAG, "❌ 声纹异常,验证失败", e) - false + // 计算总耗时(毫秒级,易读) + val verifyCostMs = (System.nanoTime() - verifyStartNs) / 1_000_000 + LogUtils.d(TAG, "🔍 声纹验证耗时: ${verifyCostMs}ms | 结果: ${if (result) "通过" else "拒绝"}") + return result } finally { stream?.release() } + } catch (e: Exception) { + val verifyCostMs = (System.nanoTime() - verifyStartNs) / 1_000_000 + LogUtils.d(TAG, "🔍 声纹验证耗时: ${verifyCostMs}ms | 结果: 失败(异常)") + return false } } - /* ================= 结束录音(优化:原生数组读取) ================= */ private fun finishSentence() { - // 取消旧任务 - speakerVerifyState.job?.cancel() - speakerVerifyState.job = null - val now = cachedTimeMs val duration = if (recordingStartMs != 0L) now - recordingStartMs else 0L - // 声纹失败优先拦截,直接重置,不上传音频 - if (speakerVerifyState.failed) { - LogUtils.w(TAG, "❌ 声纹标记为失败,强制拒绝本次语音") - timeoutState.hasInvalidSpeech = true - // 重置到可交互状态,用户可以立即重新说话 - resetToWaitSpeech() - return - } + recordingStartMs = 0L + vadStarted = false - // ============ 原有正常逻辑保留 ============ - val isSpeakerVerifyFailed = (ENABLE_STRICT_SPEAKER_VERIFY && speakerVerifyState.finished && !speakerVerifyState.passed) - if (isSpeakerVerifyFailed) { - LogUtils.w(TAG, "❌ 声纹验证未通过,拒绝本次语音") - timeoutState.hasInvalidSpeech = true - resetToWaitSpeech() - return - } - - // 无音频防护 + // 无音频直接拒绝 if (audioBufferSize <= 0) { - LogUtils.w(TAG, "❌ 无有效音频数据,拒绝上传") + LogUtils.w(TAG, "❌ 无有效音频,丢弃") resetToWaitSpeech() return } - // 正常上传逻辑 + // 拷贝最终音频(此时 buffer 不再变化) val audio = audioBuffer.copyOfRange(0, audioBufferSize) clearAudioBuffer() - recordingStartMs = 0L + + // ================= 声纹验证:只在这里做 ================= + if (ENABLE_STRICT_SPEAKER_VERIFY) { + val pass = runCatching { + verifySpeaker(audio) + }.getOrElse { + LogUtils.e(TAG, "❌ 声纹异常,拒绝本次语音", it) + false + } + if (!pass) { + LogUtils.w(TAG, "🔴 声纹验证失败,拒绝上传") + timeoutState.hasInvalidSpeech = true + resetToWaitSpeech() + return + } + } + + // ================= 通过后才上传 ================= + timeoutState.hasInvalidSpeech = false state = VoiceState.UPLOADING onFinalAudio(audio) - timeoutState.hasInvalidSpeech = false - LogUtils.i(TAG, "✅ 语音通过 | 时长: $duration ms") + + LogUtils.i(TAG, "✅ 语音通过 | 时长: ${duration}ms") } /* ================= 播放/上传回调(优化:精简状态判断) ================= */ @@ -560,21 +479,11 @@ class VoiceController( clearAudioBuffer() synchronized(preBufferLock) { preBuffer.clear() } - // 声纹失败场景:全量重置 - if (speakerVerifyState.failed) { - LogUtils.d(TAG, "🛡 声纹失败,跳过防抖,强制全量重置") - resetSpeakerVerifyState() - timeoutState.lastInvalidResetMs = 0 - timeoutState.waitSpeechFailStartMs = now - return - } - // 原有防抖逻辑 if (now - timeoutState.lastInvalidResetMs < INVALID_RESET_DEBOUNCE_MS) { return } - resetSpeakerVerifyState() timeoutState.lastInvalidResetMs = now timeoutState.waitSpeechFailStartMs = now } @@ -599,21 +508,9 @@ class VoiceController( timeoutState.hasInvalidSpeech = false timeoutState.currentType = TimeoutType.IDLE_TIMEOUT - // 重置声纹状态 - resetSpeakerVerifyState() - state = VoiceState.WAIT_WAKEUP } - // 声纹状态重置(统一方法,修复:彻底清空所有标记) - private fun resetSpeakerVerifyState() { - speakerVerifyState.job?.cancel() - speakerVerifyState.job = null - speakerVerifyState.finished = false - speakerVerifyState.passed = true - speakerVerifyState.failed = false - } - /* ================= 资源管理(优化:关闭自定义线程池) ================= */ fun release() { LogUtils.d(TAG, "🔌 释放资源") @@ -634,7 +531,6 @@ class VoiceController( // 重置状态 timeoutState.hasInvalidSpeech = false timeoutState.currentType = TimeoutType.IDLE_TIMEOUT - resetSpeakerVerifyState() try { SpeakerRecognition.extractor.release() diff --git a/app/src/main/java/com/zs/smarthuman/sherpa/WakeupManager.kt b/app/src/main/java/com/zs/smarthuman/sherpa/WakeupManager.kt index 4dbb9ac..3f8a07b 100644 --- a/app/src/main/java/com/zs/smarthuman/sherpa/WakeupManager.kt +++ b/app/src/main/java/com/zs/smarthuman/sherpa/WakeupManager.kt @@ -35,7 +35,7 @@ class WakeupManager(assetManager: AssetManager, function: () -> Unit) { featConfig = featConfig, modelConfig = modelConfig, keywordsFile = keywordsFile, - keywordsThreshold = 0.1f + keywordsThreshold = 0.06f ) kws = KeywordSpotter(assetManager, config) @@ -49,11 +49,8 @@ class WakeupManager(assetManager: AssetManager, function: () -> Unit) { /** ⭐ 永远喂 KWS */ fun acceptAudio(samples: FloatArray) { val s = stream ?: return - for (i in samples.indices) { - samples[i] *= 2.5f - } s.acceptWaveform(samples, sampleRate) - + normalize(samples) while (kws.isReady(s)) { kws.decode(s) val keyword = kws.getResult(s).keyword @@ -73,6 +70,18 @@ class WakeupManager(assetManager: AssetManager, function: () -> Unit) { return r } + private fun normalize(samples: FloatArray, targetRms: Float = 0.05f) { + var sum = 0.0 + for (s in samples) sum += s * s + val rms = kotlin.math.sqrt(sum / samples.size) + if (rms < 1e-6) return + val gain = targetRms / rms + for (i in samples.indices) { + samples[i] = (samples[i] * gain).coerceIn(-1.0, 1.0).toFloat() + } + } + + fun reset() { stream?.let { kws.reset(it) } justWokeUp = false diff --git a/app/src/main/java/com/zs/smarthuman/utils/OpusDecoder.kt b/app/src/main/java/com/zs/smarthuman/utils/OpusDecoder.kt new file mode 100644 index 0000000..b994e46 --- /dev/null +++ b/app/src/main/java/com/zs/smarthuman/utils/OpusDecoder.kt @@ -0,0 +1,76 @@ +package com.zs.smarthuman.utils; + +import android.util.Log +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext + +class OpusDecoder( + private val sampleRate: Int, + private val channels: Int, + frameSizeMs: Int +) { + companion object { + private const val TAG = "OpusDecoder" + + init { + System.loadLibrary("app") + } + } + + private var nativeDecoderHandle: Long = 0 + private val frameSize: Int = (sampleRate * frameSizeMs) / 1000 + + init { + nativeDecoderHandle = nativeInitDecoder(sampleRate, channels) + if (nativeDecoderHandle == 0L) { + throw IllegalStateException("Failed to initialize Opus decoder") + } + } + + // 使用协程进行解码,运行在 IO 线程 + suspend fun decode(opusData: ByteArray): ByteArray? = withContext(Dispatchers.IO) { + val maxPcmSize = frameSize * channels * 2 // 16-bit PCM + val pcmBuffer = ByteArray(maxPcmSize) + + val decodedBytes = nativeDecodeBytes( + nativeDecoderHandle, + opusData, + opusData.size, + pcmBuffer, + maxPcmSize + ) + + if (decodedBytes > 0) { + if (decodedBytes < pcmBuffer.size) { + pcmBuffer.copyOf(decodedBytes) + } else { + pcmBuffer + } + } else { + Log.e(TAG, "Failed to decode frame") + null + } + } + + fun release() { + if (nativeDecoderHandle != 0L) { + nativeReleaseDecoder(nativeDecoderHandle) + nativeDecoderHandle = 0 + } + } + + protected fun finalize() { + release() + } + + private external fun nativeInitDecoder(sampleRate: Int, channels: Int): Long + private external fun nativeDecodeBytes( + decoderHandle: Long, + inputBuffer: ByteArray, + inputSize: Int, + outputBuffer: ByteArray, + maxOutputSize: Int + ): Int + + private external fun nativeReleaseDecoder(decoderHandle: Long) +} \ No newline at end of file diff --git a/app/src/main/java/com/zs/smarthuman/utils/OpusEncoder.kt b/app/src/main/java/com/zs/smarthuman/utils/OpusEncoder.kt new file mode 100644 index 0000000..9ab1105 --- /dev/null +++ b/app/src/main/java/com/zs/smarthuman/utils/OpusEncoder.kt @@ -0,0 +1,75 @@ +package com.zs.smarthuman.utils; + +import android.util.Log +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext + +class OpusEncoder( + private val sampleRate: Int, + private val channels: Int, + frameSizeMs: Int +) { + companion object { + private const val TAG = "OpusEncoder" + + init { + System.loadLibrary("app") + } + } + + private var nativeEncoderHandle: Long = 0 + private val frameSize: Int = (sampleRate * frameSizeMs) / 1000 + + init { + nativeEncoderHandle = nativeInitEncoder(sampleRate, channels, 2048) // OPUS_APPLICATION_VOIP + if (nativeEncoderHandle == 0L) { + throw IllegalStateException("Failed to initialize Opus encoder") + } + } + + suspend fun encode(pcmData: ByteArray): ByteArray? = withContext(Dispatchers.IO) { + val frameBytes = frameSize * channels * 2 // 16-bit PCM + if (pcmData.size != frameBytes) { + Log.e(TAG, "Input buffer size must be $frameBytes bytes (got ${pcmData.size})") + return@withContext null + } + + val outputBuffer = ByteArray(frameBytes) // 分配足够大的缓冲区 + val encodedBytes = nativeEncodeBytes( + nativeEncoderHandle, + pcmData, + pcmData.size, + outputBuffer, + outputBuffer.size + ) + + if (encodedBytes > 0) { + outputBuffer.copyOf(encodedBytes) + } else { + Log.e(TAG, "Failed to encode frame") + null + } + } + + fun release() { + if (nativeEncoderHandle != 0L) { + nativeReleaseEncoder(nativeEncoderHandle) + nativeEncoderHandle = 0 + } + } + + protected fun finalize() { + release() + } + + private external fun nativeInitEncoder(sampleRate: Int, channels: Int, application: Int): Long + private external fun nativeEncodeBytes( + encoderHandle: Long, + inputBuffer: ByteArray, + inputSize: Int, + outputBuffer: ByteArray, + maxOutputSize: Int + ): Int + + private external fun nativeReleaseEncoder(encoderHandle: Long) +} \ No newline at end of file diff --git a/app/src/main/java/com/zs/smarthuman/websocket/WebsocketProtocol.kt b/app/src/main/java/com/zs/smarthuman/websocket/WebsocketProtocol.kt new file mode 100644 index 0000000..2263533 --- /dev/null +++ b/app/src/main/java/com/zs/smarthuman/websocket/WebsocketProtocol.kt @@ -0,0 +1,459 @@ +package com.zs.smarthuman.websocket + +import com.blankj.utilcode.util.LogUtils +import com.blankj.utilcode.util.NetworkUtils +import com.zs.smarthuman.common.UserInfoManager +import com.zs.smarthuman.utils.AESUtils +import kotlinx.coroutines.* +import kotlinx.coroutines.flow.MutableSharedFlow +import okhttp3.* +import okio.ByteString +import org.json.JSONObject +import java.util.UUID +import java.util.concurrent.TimeUnit +import java.util.concurrent.atomic.AtomicBoolean +import java.util.concurrent.atomic.AtomicInteger +import java.util.concurrent.locks.ReentrantLock +import kotlin.concurrent.withLock + +class WebsocketProtocol private constructor() { + companion object { + // 日志TAG + private const val TAG = "WS" + // WebSocket服务地址 + private const val WS_URL = "ws://10.10.4.132:9001/aidialogue" + + // 重连配置 + private const val RECONNECT_DELAY = 3_000L // 重连基础延迟 + private const val MAX_RECONNECT_COUNT = -1 // -1表示无限重连 + private const val NETWORK_CHECK_INTERVAL = 5_000L // 网络检测间隔 + + // 线程安全的单例实现 + val INSTANCE: WebsocketProtocol by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + WebsocketProtocol() + } + } + + // 公开Flow + val incomingJsonFlow = MutableSharedFlow(replay = 0) + val incomingByteArrayFlow = MutableSharedFlow(replay = 0) + val networkErrorFlow = MutableSharedFlow(replay = 0) + + // 公开属性 + var sessionId: String = "your_session_id" + + // 线程安全状态标记(核心:所有标记都要闭环管理) + private val isOpen = AtomicBoolean(false) // 连接是否已打开 + private val isAuthSuccess = AtomicBoolean(false) // 认证是否成功 + private val reconnectCount = AtomicInteger(0) // 重连次数 + private val isReconnecting = AtomicBoolean(false) // 是否正在重连(核心标记) + private val isOpening = AtomicBoolean(false) // 是否正在执行打开操作 + private val connectLock = ReentrantLock() // 连接操作锁 + + // 协程作用域 + private val scope = CoroutineScope(Dispatchers.IO + SupervisorJob() + CoroutineName("WS-Scope")) + + // WebSocket实例(volatile保证可见性) + @Volatile + private var websocket: WebSocket? = null + + // OkHttp客户端 + private val client by lazy { + OkHttpClient.Builder() + .connectTimeout(10, TimeUnit.SECONDS) + .readTimeout(10, TimeUnit.SECONDS) + .writeTimeout(10, TimeUnit.SECONDS) + .pingInterval(3, TimeUnit.SECONDS) + .retryOnConnectionFailure(false) + .build() + } + + /** + * 发送音频数据 + */ + fun sendAudio(data: ByteArray) { + scope.launch { + runCatching { + LogUtils.i(TAG, "Sending audio: ${data.size} bytes") + if (isOpen.get() && isAuthSuccess.get() && websocket != null) { + websocket?.send(ByteString.of(*data)) + } else { + val errorMsg = "WebSocket not ready (open:${isOpen.get()}, auth:${isAuthSuccess.get()})" + LogUtils.eTag(TAG, errorMsg) + networkErrorFlow.emit(errorMsg) + launchReconnect() + } + }.onFailure { e -> + LogUtils.eTag(TAG, "Send audio failed: ${e.message}", e) + networkErrorFlow.emit("Send audio error: ${e.message}") + } + } + } + + /** + * 发送文本数据 + */ + fun sendText(text: String) { + scope.launch { + runCatching { + LogUtils.i(TAG, "Sending text: $text") + if (isOpen.get() && isAuthSuccess.get() && websocket != null) { + websocket?.send(text) + } else { + val errorMsg = "WebSocket not ready (open:${isOpen.get()}, auth:${isAuthSuccess.get()})" + LogUtils.eTag(TAG, errorMsg) + networkErrorFlow.emit(errorMsg) + launchReconnect() + } + }.onFailure { e -> + LogUtils.eTag(TAG, "Send text failed: ${e.message}", e) + networkErrorFlow.emit("Send text error: ${e.message}") + } + } + } + + /** + * 判断通道是否就绪 + */ + fun isAudioChannelOpened(): Boolean { + return websocket != null && isOpen.get() && isAuthSuccess.get() + } + + /** + * 关闭通道 + */ + fun closeAudioChannel() { + scope.launch { + connectLock.withLock { + LogUtils.iTag(TAG, "Close audio channel") + isOpen.set(false) + isAuthSuccess.set(false) + reconnectCount.set(0) + isReconnecting.set(false) // 关闭时重置重连标记 + isOpening.set(false) // 关闭时重置打开标记 + + val ws = websocket + websocket = null + ws?.close(1000, "Normal closure") + } + } + } + + /** + * 打开通道(核心修复:标记闭环) + */ + suspend fun openAudioChannel(): Boolean = withContext(Dispatchers.IO) { + // 1. 防并发:只有未打开时才执行 + if (!isOpening.compareAndSet(false, true)) { + LogUtils.wTag(TAG, "openAudioChannel is running, skip") + return@withContext false + } + + var result = false + connectLock.withLock { + try { + // 2. 如果已有连接,直接返回成功并重置标记 + if (websocket != null && isOpen.get()) { + LogUtils.iTag(TAG, "WebSocket already connected, skip open") + result = true + isReconnecting.set(false) // 关键:重置重连标记 + return@withContext result + } + + // 3. 检查网络 + if (!NetworkUtils.isConnected()) { + val errorMsg = "Network disconnected, can't connect WebSocket" + LogUtils.eTag(TAG, errorMsg) + scope.launch { + networkErrorFlow.emit(errorMsg) + } + result = false + return@withContext result + } + + // 4. 创建新连接(核心:先创建再赋值) + val request = Request.Builder().url(WS_URL).build() + val newWs = client.newWebSocket(request, createWebSocketListener()) + websocket = newWs + LogUtils.iTag(TAG, "WebSocket connecting to: $WS_URL") + result = true + isReconnecting.set(false) // 关键:发起连接后重置重连标记 + + } catch (e: Exception) { + val errorMsg = "Create WebSocket failed: ${e.message}" + LogUtils.eTag(TAG, errorMsg, e) + scope.launch { + networkErrorFlow.emit(errorMsg) + } + websocket = null + result = false + + } finally { + isOpening.set(false) // 无论成败,最终重置打开标记 + } + } + return@withContext result + } + + /** + * 创建WebSocket监听器 + */ + private fun createWebSocketListener(): WebSocketListener { + return object : WebSocketListener() { + override fun onOpen(webSocket: WebSocket, response: Response) { + connectLock.withLock { + if (websocket === webSocket) { + LogUtils.iTag(TAG, "✅ WebSocket connected, start auth") + isOpen.set(true) + isAuthSuccess.set(false) + reconnectCount.set(0) // 连接成功重置重连次数 + isReconnecting.set(false) // 关键:连接成功重置重连标记 + sendAuthMessage(webSocket) + } else { + LogUtils.wTag(TAG, "Ignore onOpen for old WebSocket") + webSocket.close(1001, "New connection exists") + } + } + } + + override fun onMessage(webSocket: WebSocket, text: String) { + if (websocket !== webSocket) { + LogUtils.wTag(TAG, "Ignore text message for old WebSocket") + return + } + + LogUtils.iTag(TAG, "📩 Receive text: $text") + scope.launch { + runCatching { + val json = JSONObject(text) + when (json.optInt("msgContentType")) { + WebsocketType.AUTH.code -> parseAuthResponse(json) + WebsocketType.HEARTBEAT.code -> sendHeartbeat() + else -> incomingJsonFlow.emit(json) + } + }.onFailure { e -> + val errorMsg = "Parse text message error: ${e.message}" + LogUtils.eTag(TAG, errorMsg, e) + networkErrorFlow.emit(errorMsg) + } + } + } + + override fun onMessage(webSocket: WebSocket, bytes: ByteString) { + if (websocket !== webSocket) { + LogUtils.wTag(TAG, "Ignore binary message for old WebSocket") + return + } + + val size = bytes.size + LogUtils.iTag(TAG, "📩 Receive binary: $size bytes") + if (isAuthSuccess.get()) { + scope.launch { incomingByteArrayFlow.emit(bytes.toByteArray()) } + } + } + + override fun onClosed(webSocket: WebSocket, code: Int, reason: String) { + connectLock.withLock { + if (websocket === webSocket) { + LogUtils.wTag(TAG, "🔌 WebSocket closed: $code, reason: $reason") + isOpen.set(false) + isAuthSuccess.set(false) + websocket = null + isReconnecting.set(false) // 关闭时重置重连标记 + } else { + LogUtils.wTag(TAG, "Ignore onClosed for old WebSocket") + } + } + + // 非主动关闭才重连 + val isNormalClose = code == 1000 && reason == "Normal closure" + if (!isNormalClose) { + launchReconnect() + } + } + + override fun onFailure(webSocket: WebSocket, t: Throwable, response: Response?) { + connectLock.withLock { + if (websocket === webSocket) { + LogUtils.eTag(TAG, "❌ WebSocket failure: ${t.message}", t) + isOpen.set(false) + isAuthSuccess.set(false) + websocket = null + } else { + LogUtils.wTag(TAG, "Ignore onFailure for old WebSocket") + } + } + + scope.launch { + networkErrorFlow.emit(t.message ?: "Unknown WebSocket error") + } + launchReconnect() + } + } + } + + /** + * 发送认证消息 + */ + private fun sendAuthMessage(webSocket: WebSocket) { + if (websocket !== webSocket) { + LogUtils.wTag(TAG, "Ignore auth for old WebSocket") + return + } + + scope.launch { + runCatching { + val authData = JSONObject().apply { + put("unionId", AESUtils.encrypt(UserInfoManager.sn)) + } + val authMsg = buildWsMessage(WebsocketType.AUTH, authData) + LogUtils.iTag(TAG, "🔑 Send auth: $authMsg") + webSocket.send(authMsg.toString()) + }.onFailure { e -> + val errorMsg = "Send auth failed: ${e.message}" + LogUtils.eTag(TAG, errorMsg, e) + networkErrorFlow.emit(errorMsg) + } + } + } + + /** + * 发送心跳 + */ + private fun sendHeartbeat() { + scope.launch { + runCatching { + val heartbeatMsg = buildWsMessage(WebsocketType.HEARTBEAT, "pong") + LogUtils.iTag(TAG, "💓 Send heartbeat: $heartbeatMsg") + sendText(heartbeatMsg.toString()) + }.onFailure { e -> + val errorMsg = "Send heartbeat failed: ${e.message}" + LogUtils.eTag(TAG, errorMsg, e) + networkErrorFlow.emit(errorMsg) + } + } + } + + /** + * 构建通用消息 + */ + private fun buildWsMessage(type: WebsocketType, data: Any): JSONObject { + return JSONObject().apply { + put("msgContentType", type.code) + put("timeStamp", System.currentTimeMillis()) + put("msgId", UUID.randomUUID().toString()) + put("data", data) + } + } + + /** + * 解析认证响应 + */ + private fun parseAuthResponse(root: JSONObject) { + scope.launch { + runCatching { + val dataObj = root.optJSONObject("data") + ?: throw IllegalArgumentException("Auth response missing 'data' field") + + val code = dataObj.optInt("code") + val msg = dataObj.optString("msg") + val authResult = dataObj.optString("data") + + if (code == 200 && authResult == "WS_AUTH_SUCCESS") { + isAuthSuccess.set(true) + LogUtils.iTag(TAG, "✅ Auth success") + } else { + isAuthSuccess.set(false) + val errorMsg = "Auth failed: $msg (code:$code)" + LogUtils.eTag(TAG, errorMsg) + networkErrorFlow.emit(errorMsg) + launchReconnect() + } + }.onFailure { e -> + isAuthSuccess.set(false) + val errorMsg = "Parse auth response error: ${e.message}" + LogUtils.eTag(TAG, errorMsg, e) + networkErrorFlow.emit(errorMsg) + launchReconnect() + } + } + } + + /** + * 核心修复:重连逻辑(标记闭环管理) + */ + private fun launchReconnect() { + // 1. 防止重复进入重连 + if (!isReconnecting.compareAndSet(false, true)) { + LogUtils.wTag(TAG, "Already reconnecting, skip launchReconnect") + return + } + + // 2. 协程执行重连 + scope.launch(Dispatchers.IO) { + try { + // 循环重连直到成功/达到最大次数 + while (true) { + // 检查最大重连次数 + if (MAX_RECONNECT_COUNT != -1 && reconnectCount.get() >= MAX_RECONNECT_COUNT) { + val errorMsg = "Reach max reconnect count: $MAX_RECONNECT_COUNT" + LogUtils.eTag(TAG, errorMsg) + networkErrorFlow.emit(errorMsg) + break + } + + val currentCount = reconnectCount.incrementAndGet() + LogUtils.wTag(TAG, "🔄 Reconnect attempt: $currentCount, delay: ${RECONNECT_DELAY}ms") + + // 等待重连延迟 + delay(RECONNECT_DELAY) + + // 检查网络 + if (!NetworkUtils.isConnected()) { + LogUtils.wTag(TAG, "🔌 Network disconnected, wait ${NETWORK_CHECK_INTERVAL}ms") + delay(NETWORK_CHECK_INTERVAL) + continue // 网络未恢复,继续循环 + } + + // 网络恢复,尝试连接 + LogUtils.iTag(TAG, "🔌 Network available, try to connect") + val connectSuccess = openAudioChannel() + + // 连接成功则退出循环 + if (connectSuccess) { + LogUtils.iTag(TAG, "✅ Reconnect success") + break + } + + // 连接失败,继续循环 + LogUtils.wTag(TAG, "❌ Reconnect attempt $currentCount failed") + } + } catch (e: Exception) { + LogUtils.eTag(TAG, "Reconnect loop error: ${e.message}", e) + networkErrorFlow.emit("Reconnect error: ${e.message}") + } finally { + // 最终必须重置重连标记(核心修复) + isReconnecting.set(false) + LogUtils.iTag(TAG, "Reconnect loop finished, reset isReconnecting to false") + } + } + } + + /** + * 释放资源 + */ + fun dispose() { + LogUtils.iTag(TAG, "🗑️ Dispose WebSocketProtocol") + scope.cancel("Dispose called") + + connectLock.withLock { + closeAudioChannel() + websocket = null + isReconnecting.set(false) + isOpening.set(false) + } + + client.dispatcher.executorService.shutdown() + client.connectionPool.evictAll() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/zs/smarthuman/websocket/WebsocketType.kt b/app/src/main/java/com/zs/smarthuman/websocket/WebsocketType.kt new file mode 100644 index 0000000..038455a --- /dev/null +++ b/app/src/main/java/com/zs/smarthuman/websocket/WebsocketType.kt @@ -0,0 +1,11 @@ +package com.zs.smarthuman.websocket + +/** + * @description: + * @author: lrs + * @date: 2026/2/10 18:59 + */ +enum class WebsocketType(val code: Int) { + AUTH(1001), + HEARTBEAT(1002); +} \ No newline at end of file diff --git a/app/src/main/jniLibs/arm64-v8a/libopus.so b/app/src/main/jniLibs/arm64-v8a/libopus.so new file mode 100644 index 0000000000000000000000000000000000000000..c71519fbc8f489e3b4a23a9c852ede02830e2084 GIT binary patch literal 415496 zcmeEvdt6mT7xq5qpdLUGl$5{}@e-h!w~S2lh?fw|3sRX`hr1lP3aEGm(G0~*w2P@J zk)@!P-92W7Wag#JE^k>`5?Y~XVVOy3e9zjmHY`v2e((R^H~z-i&ogVUS+izl&Fp;+ zkUwhdXtT+r8Ofr(r4cH4S}``RD4N)kuQbi3g=tp&-$A=Umu=Bh^Y4oTgVlXTsd+0I zYJ+ORhN=3n@mH4zSk5So`^d8N9N+v&)_sH%4+}QundNQFEZdit#kLxrdkOGj?!F_^q8uCu$ z`+y5jK8ZXMc_FZo+Th|n&P3B$DqCy%8!wU3+u=G9<#y!PkduI0qcmd8O~5|`--g^1`9a{0 z$l=H@18+p8bgL?~3Y1-uUqGIW9Ev;|`6lGE$kE94$j6cMp<@a%rEbWc`qjVx%Y)1T z(Cz+R)x?bFs}zG_y##w39LjluC;AalN0)(&|HEZ#$S3f14z5r0^jIu zaU4p2As3A6j$GG|%O6ob0=^LCy)1jXxQE2zfVa_wNbW+$20obU+H&~>m&>^{ik7&D z<$EtPxrNI+454e3KY`oB{2<()i=2Tx3mok~uIWZ5=8K9jacx|7Vp|B`i9DV0R9qL} zItY0Zb2GW@g1S27ROG*qZ)F~r+SkbQ=mKe>DzukSrU{u*;<^LsK1cq7WvLh>uAR8{ zWcdV?uZlWf;K@SQKd6flScqy>R3`~>orLS%$V+kWm&~6+xrwi-C>Ph2xQ@R@JKey| zWx39{?u=^(&+!q-^Vgk+|Sp`1b4m5bEvqND|?_^z&eNF+6UJUa~&1Q zz(-Mj%Umm#?aO!qV%A|$-{B(N0HQpE z>oCYpK{=55>0GYh@((VlNMyZTP`(J<9{B;6wvtH@>1ObeT=ypM@5o;vw{VdMr42y# zMjnD3DC#?i>j=Ic&1EBGDGddlgz|!pH0>CdeZaf%wNWfGF1Xx`ayGI9vJ+kE2&RCi zG?>dME{UUYqZkv2Onb^5)>7}?anJ0v1}<^)Ke&06ZK*Bto)4b8VN{Tt$#3$lV_Rzl z=I+ByUB_y}gX03b_gH>lWa5+e#6Dp+xsb_tr{R*9SkLtt!A) z|7n}y^)ovi%_!+vdb75+o8~sIOj|SIYxjv(^T+|^_2y+0gJSjt98I#MD{+V1tp>1&tvkA7q*vzQ{KqQw$71rql_U)*~f~UxCQ9FLy`o ziA?c36q)wZKFGHs8*78+iIFHa-GMxq35uC_A=8?(A%`PV8i70tc{Bke+5;(#K^}`d zo&XY!Kg}Z}Q7oVsKx@ND58{I2F{Ou)X_lz9~mUdkC8t?{*1XVxTNAMWLnQ(BU22kMm~vr3i&7GT4YM6kFiI>c(KTIhN6^!G8vg-Tq-i13o?*r zAk(v7F0ygXpyvWQAImfsnD#k3UsEbTxd^!sc?t3($VJGMHsu91yps3epyltZIsM%u zAKm&Nw~o)vbS!#nrO$xcz(X&+diLb_p})3$CF9T^pPXIvr+vlxJ)I8*-nMo5qsPkn zEjYe-YL7o>kBr?`I5qjPFE`jPn|D3vbHr^=t7$(jJMcwHCtG^AXG?b8e{5XtL%%;- z=kXizEyc$Mw<`?4_y?{tCuJA?5VLC2?rr8D2BxRJ+H2OGAM9KC{mY{h-!i{-$kW*} zYTP4Z=kCAwvi3%?JFeexzsr)=&F_S^rGEV@yF)W{%AY3?~gkNUuj(*cj_0}WLE${u#$4h3vw0^+F<(W&ZpFe*3cg_F#y~VbrEf?B-Qd+!Jm%pyh z>y06||9;P|PsiSyH2jZyf18z(FmPqSn%l>2J8{HgxyQ#*ruRB_eyzp3?%-d117{v6rivsHhVju`cyv;NygJ6FyKnBHRT z%U;1>K9td=#oe1LzIR))eu z%d;VY87ZL&Re!wL{+aDh1Z=tSqV?44KNii78S+G0=D9^f5)W+1yxIEry&h)=KQ^w* z;_ACj@6X(NXUtzySHC}SQo*6W`);4+SwFm}^-t60pLU#i=%d)h`v<=9+;Y<`!y^aw z==*xsTRr!89$XzU_oIpPAFui~ue;CE>7K{C9)Infx~h?{J@Dhx-p|dyZNaxgwpBlF zKT`KlV)w1P2Hfy{{c9KBx-IYMk~>elJT2jaUw-fU>X5HW!n-dh8BzH2r|Z6IQJXRE z=+u3qL!XJga`y+@O)n3uoe;7kC*ZN3KdoFpYE{2oVMES%?6~26)3d!E`Fl^1k4NUH z`Fo!KWx9gDe``wL`-b)gd zLqGhmc-y}DbBeQWS^3gWmNzdH%v^DP>nBHBoSOfQ-@>p#U22v-x!kS3_hX@5e&`#} zVsMvH@3=2r9N_2axA(@MHw-&gIP0mMtsYBxd&Dm9#$JQ&sD1eDjQ1|QJ#*K*MZewA zX62gG8#~YHc;vn<0}uOjUDj{L{VVPY_CD1$@Qsy+e%|$-U&x$>0!!MsuM6IOEkAJf zsQP!d7JWAQ7n@(srgd8@a}Ey7@~J(UW$N+y{xj#l%s+12E^YO+pKVWe^t4)64%<1${>I_R)TH^J?9THYvGm-=_V11E zwXNv)o=3;Lc_{W$!yOO&W4Wt#v?*uHKac)%apFkrsaU^9s|H7(-W_Lo=6KcHok~8s zz4(rb8$+L7|BA=W_nke}ZDY5H{sHMfPCb9p-r;7yyqs}&``q%z@EdZz`0e)jDG6s! z%p4W^Vb9AOm;d}&`QGi_kNAY&xU_YzRu8W@KeqRo)gPZfcf;~O4rY}#?w#8qd(0zG z-M;Rb>t=?DyuOzaPEz?I|NY+#Xu9tNZ%< ze{Os7gJ-iX`5)c>R+Ojd^Lcl?@?F@FMfWZ0QGooPo+sxnMmfaihl;i7LCJLeN=%rs zg{z={jsGn;DI4$OWwiw-#t43IZt%2qv@?JxW4m0Nzv(*i2{@czOHb%^re8Y+Q{CDzeJ8i z`oyC6U3(Q_yl*JQ!JOpx4N>w|C9YNJc6w^BN1JtKEbgaNsoUwPU3vfxLF%gtZDbo| zkJ}NYCs41&`L?ane{8-|P|18!OT}-mQu^uqK`Glq@dfWH!Z;7!%l7xSD)}!|p}pNo zwVTTAvN_r)wmA1j{Dd6Yiy%pC9#927bi)=i-5g_}bA*&ndQlcn8H7%~!l}&KiVH4#j zJj~P6PD~QwSG7=lEiDM7MS#S2|6Ca|&|UG-P)qtJe6IA3bE-h*qnWq4@b_}R0*@$rj{B$^LUxp&I6N>psb|$*`fu8rM zUolb2k@f7)wLGuF-c>}?`0_ZGPFD8NxtLN*IF|H$@s*N4%YK{3_G@#L{8}ZhKZlU~ z<@c3>?aX)Nd3!ci&2t;6t8jd0{laI zhVeXMGqoc;Pv-Lc=V8=Vz>TCo@mA%}2o7FObccA~WX0Ri9;HKw8^mu8RSj<7ae0*2 zOKX$rQ75)1i}mbFQhFvRHCi$EH=6qkv-R{H=9Ra0zEO+i0b%|bUN4n@D8(F}w2#po z*^^h#T&>;2<6e76DWGRNN?tr~ zd*>+q#(aLC!YPatA0f&H5!FeYPUNF9(ul`^d0LdVm-!q9b$iK zEtH)bRP&k_?+cfLRl9~i>Dij}uli6ap08`iGdRbqqbIJG?}2zj@?#5>V&mQSSgbSR zhxAeMmsw98`|~&jE+peQ`z?;o$M00~n^}Gl$A_Zt6>s?AD;{6l=c-@bc^r?U!BeVv&CdH^3a<-Rul>dP)8;5< zACHR%$EDnnN{``(P@WGl?D#r8Mw`nB~|{hG{v7yv)(`-RK=9K++1_@$EPZfkKI zmwY)cZRU0@Jb#w({Bc8jlsfZ#zSLedSfI1`yi*^q)>P2BE*-Kt&VyfF{m zq4`i>r{q>~zy5QbxbYKiC;3k70OLyzZQ&pC|Hns_J!no(=eb{r+-@TCc|8BaZdLNe zdB6_`KGKtSOz{{dJ#D>?JtKKub$?#d6_g!G>&RQdy1zc;V1 z(z_IIylWyc>hF?;O22X58+fDQ2mYY+pGCZ;^d}|~>0eu^^r*Y=odjMNLwQ`-9IXci zi1Z)5LrHE>YV>zj#9MiPe1dsjZnwId(r?7Ebl!g>DwO6h9)RQUhdy3slmf&5iQM1T zgOwg5ZqSQsl8@kXl);zrI<4k&ml4N2^m*P|d)sB)-)1{ocT)Nd`{}(Z>2LjvvZs_C z^b+g$o1y#}$PRk@I^+HWuj?@`{w!yE?&f`vw^{vNGqw9VA7m!8KO=d*?cweoKzTf$z_U%-Cu&3tckhxpB*szVF;6JY9Qcpo&1~nRtlyXQPhfd3*1soQ$s2L?1NOh~QDr}GW7;z; zAIS4_EbEzwlKPwXoFWprV~?XG{wM_;B;#E79sBd>0Hr^X?YxiA?PtDJ_F(w*M8`AI zGvrYv{{-tlbe%ZRkLO85p3+0-Z%QHThZuftHR8_{-pAK2Q2JApxb`9-wHxTI6dX|M zw4ZrB_MNBXV_E)pj-Ou)Qi3tekLI{n%5iTX^IojyRG89pmiawA4>$1qDPlg1_wjh1 zKO7#k9qi}U-z!HN^TEX9)%R{?PcZxWVYa8>CdC`}Jj~-VmR>9%m0DH9&+@PGUdj*j`4pv7ET1-%$CvqPwx^cQ3Erw&OF+D$xN*v5zx#sEY1MD4{w`64 z{vA4MchwQ4c!_FOtH*pHJ-IIPa~3A5F3;;Fh2>M&{uKw6o~dl-7Gs|9bB8a>kLEa^ zRig}#VE$INGx%v`;91sln#U{HP5CpB`5tV~r8&xPD^#`i7VnQKygwRt&S(EjaPiL+ zp10n7uD~?Y(=eWIwH#-R=Yj>OB|nVhaW~>y0LOu}!ODK){Oo~llKk=el%3x2FQxa{ zKSwK+{ANXKzo364zn#w;t(o7Bz)s_`>!k9V!H+_{ZqGQSzf=`kElT2d(w9Jxjw3Em zI>zhK+C}Lx-VZ#&>t#u$QV`5~K4<&G+ABMa^Vzf%?Z0;hI22Pg#*9N-$z zHt|zGQ1%RD{VmxK)pn)8h$lN(|Am(oe~IPYc|Hu>qj;O@hPKq04?I7ssk2B2*l+vT zZ$+%<9M9YB!xgcD_593!I9jaqf5Chp#*OUn9l-XeLZioLdLFEId5*5&^V?dEdx5$& z`0g4e4Cy(0QB7E$4%)|(!chM@_!ohFJEW>{TAaw^DU0og|ZgkC4sw0&n}*yBU#V4x*u9=Q5-keJ=$v= zulBGXx~t~3Gz0|FGk>DeyoVcj6aJ@mSFoNTtiPPkdqWzOW~1FW_=)r!b5ndU%NOvx z+7PSw3C#CpJs*ux4JNXo!TcQ8o!iAS(UXnGG0#^G$ac1W9?!!sPACOuIdI&`^JmC= zYF_naJ>Rh3w(~jP#{Bcl7o1XxH?Te90jXbE{JBO1%m2*hinaZeV3=w~D>0tOpHsZ? z9?yb!Nd7#|@2`yc@5|?_;M-Nd+*r>b1Qu#HW{c88=VM9-c^p^qI2!XdisR=Kyzd+F za5ekC?+B%*6Z}PKJfBYvJgN9t_GcK+hh6;qvQLR?53ru8FDgUMs@t?bSkKzW6kpHs zeb~;*Wompsx?NR78*za5o!?l#BhQCj-IaU{ci?@rLw?xGFSK4~d9sW6z8e)0!S+1D z<5IxS9o;bxDE-az!Ec|ka}V01bRQf@dX_9yys^IwLcb`U?Bw@L2n%}3=J}b)^HYr) zeujeM`H+r^IjXv${RK$+JIzx1kF%X^;0NNXhbj5Z?EjTGw-bN%RV8?V4p|xiH={)X%Jnn1R&KA7xhVbVgmCWzs{pj@+ zrN17S(g{8%(A?^_^nD@dkKyrdtTq9^z3ARCi8l%4Oin5!5w}NCCN`c zsRWJqnZx}pAB4N#RcXEF@LJJa##WT&Bpz8WB-S-{CUIy zieoqO`=~PJ`|$iZ7N-;#@u4mIX9z1c=4TJK{}}t(;M-%Klm6CUD~B29tMzQpWqvL@ z%k6&8^U%uc)QEeZ@_f)1ssYSnfBwwz?HIp*4pY_IV&?naqln4u=Zzd!qj|lvd$iF! zjKZ)1H1WiTQsMqOFYlLS%KlV9QMx&_RmO`zruPxV?Bl+YSA2xSIi9M zhhscXrg0q8_`KUMxQ_)?xf)%>10k>zKzeA~~imY;>@sNLEVs@(}J z@6G$;zK`5=#(3^t$$GZ9=%L31(xdTn=yBGg+3g8=arR_KMqHX>ZW6<|+@w55EJJ247+o^v!TDIudtfYk8%xoo}dgiPoEi-Foj(u8Eu6&=8UH6EicK2Fa0-m~8O6 zdX~vaK@U?^4-;nQPY;#~b>u+9EScEC>MDu*Mx*%$Fx zip|czeRjhE`Zf8N=Ab>%F$?odA9wD((FXON7cIOVmyN}vuc$dqtb!aHu$T>L1dAqF zwREU^@s13`|5kc~wC+Jt zZ!l^Mm17WFM4(V3mq!Bu^?C@y;?hG{QeKulJ2O{JtIRBW)~p$r*EFJ#%yFcp+DDAL zyXnFnokXir=f{nmG`jzAb*+rC=QySz#OSrk7|Bqj-7#Y1XeBUV>-<&lwEys`?8#7^2LR?x>jtUE~YoJn#3Ojt8m75J? zZ&w_-&=^SFn)ulm4+J_yDrucQeu|kE=g6R_sdg4!h%^(eJ6CU@xy3B3Y4jv1Pk0{k zIb@=sbVEi>j&Y^16C`D4Wu_@#tH|dnGczL#3(v4OEjO;&m}Zm3O&mtB&&B}gR2ZxA!^J>b*DliT;X)kA4gABOUGUi3N%L> zo?m0HGfpu$9Oqys#c2&9!|fCMhbawLSA;iL#5-U?A`X(d`uQ#~sh_$*U$Z#G$2;_+ zzV3-}lO`H_A6+IU>FeB}Xj^h*&|xvjPV-PjJKigEW~SS5jg4e0jCjfRsww%Mw03prPZGxhpkH|9#BOGS=0 zPIOF5M^ij?jU^j5GtrT$KSs=UB<7~5`|q1*zyF@NT>GdIhJIzJ;X8JMK27eMsP55$ zF)PHx)_JuOlpuEMq-=eb=49f*&5=O|=^Q#7t9eGdKMa_i8L}pG*Ts%c0IEN=z^MS*T zGqHZxzm`gW!!_93^w5s=GA)UvujbVDrSx1?!^3_xC#4-3cyvX-GHH?Gq=<#3A5z$Q zEV^W4%&+TK{W)<~9FBO{ell|V4dR<|s6fD&mPAkM(~{Vfu`aAMCL`XS5D&NN=ir>H zZo>hX9t2@)KYM@si1DLFPg1SOiUHTF78=;E6db+)gPVp#nW^UXj;e!t4YZ@&6+YY>8(vpN*qqVP3AV;W<&kpyB-r#`x|jd??{tX z%}-f52`Mvqo?xULi8Jw(%MZ&`^L!TiV_1{K zPa;rh^f5bW+Dt@FY*_GPb~Z~0cevJ*Vz6a9 z=ruD=7js~W>P`C0v|IlY8k(16(_O~a z@bAG=A>n%b^#)Phb=^TU;*5-Gvg1wl*BV4odHq2&gswY?hQRe*YDhGDQkuwtv1u7! zqmEv&@giqw!CW;e(hpZvTxI@MHCNkxRaMhsbY)evz;=|CMIVWztMgHEW*p`^A}u}Q z{FgdA7JJ;a1g?Lps=4NkWdF4kHucNJ5`7e0INj%T4&oq%7{?Rxe-O+`!PA{{O(%hC`=Yt#nm6YDmsVxnb#K0Qt8}Xz0k!>PXHLf%m|nufrN=vRGBX?rIn5s= ziAaPa>wl4K8mIq3Yx4>cI@Nxu0?WT>8CU*QiQsRM=%P_)bn)8eh>zl~C!i0Aap=N_&N$KFb@BHv#P16B_#@~^VoT;Tb;?w)&=p{t>DuK(K+{A=ly%;2>(SYKF2JgH?q(1kBrr|b!H z;a_Lo=E85FU#x%>;ll4{ezFT+$~e}AuVtL#!uRFxXJ@(adCcdz@NaHV_7u7B`zsW` z%7tIMP4R18_`n^CKkC9CVE&j3U-XKS_hY*ZKU6z@pKgE2k3;#XySuXqq=JQ41>$2GY<|?ZO-KwuhVbki3zO3VHhOxS^-kg*W75g&yO(=2TZN zw?YyGaZg2z|Vn^LLZgPU0VO%}o9M?sp>PQjmU zVsUN}e41#tQt(Ma{(#^^1bw-tP);BPjBQ63O{f#8n{{!yW)TJTE*Un}^gpUHu~ zdcn^W`Y#Fogy7fStM+R%Hqwzof2rX62!5;JBZQuvf~VirZ=_v9?-cw9A-_xT`GT($JpFERBOMTYl|iCBDtMca zKPLEYg0B|*5}~J7@M(gt7ragImjoXv^lOuw=Rf^z8zWf-Uuuvjy#>Ee@P2}SN$`P! z4-)!=1%JDc?<;uYcRf&bnBeJmR2a!7_)`XnGD7gX1V2IWfkMw@!FLeyv4T$#@+pG9 zEabBUKUeU1f>&>5RAqtS`Bzox6-9#IBlN5id=FvITEWxbbTv|`;8z$V%B_NbM({fY z-&gRv1V2RZm4g3D@CO9HK-hCs@V5*8nBY4LzFP1d1z#)p8%4YIg6}QlFA4ruA+J5q zJpUgN@>apu33+e9pBKEJ;L`;kD0t&{?of5G;C~nLeFZ;I@L__dzyD+;o8akplo}~Q z@S%dAAb9*rf~GWC@D?E-EBL}DX}kvze3X#S68v96K2PvgAzvVP{?!ZmT}6T~7kX9+ z{x+d!t>E!1_L@?u;MGX0s;z=gXp+X?h!%XH;CBhWmEbD{Z~V|ee!k$fDb4eLh~TY)$FERnO5TFcXku~x7d-u) zF(U;E{vCrv87%nk1>aZj9R(jI_+JEX6Z~$$M+p8E!A}r;fUtA2;D-u6R`8z*Jt>0! zMDSUH_Y!*Y1iw|t7YN=V_#(ki75pl}j~4pZ3cg6lmkNH4kl!l!u0npN;BOQBF2Pp| zzEbe?H&~2xK=54ze^l@v7{Vxz3I2lMs|Ek6;A;hcR`B(LpCsD7B>2yTy!K%8{0|rM zR>4OI-dphLg7*{rk3xT-;OXyn8!1@u;RcDauiz&LK1}d#LXS=G?+W<{!Sk<{(Q79N zezK6CEciA;f2`nt5b`O4ze~tx3EnRFJi%Lqo&v#tEBGS8dkQ_P1b<1$uNC|n!IuiY zo#3|${#n8A6#RCaxr zmjwT|;I*mE^Z!9%zg6(Y?>3^_yaoTD(Bmigk%A8t{2zi37Cil3O(XRc{BVOr87BCl zg0~62hu|Xw?;-dJf)5exP8PhUkdGDobAnG1e3{_01m9Eed4g{(_yWOq5`2;1pBMZp z!S@pUTEV|4_)@`-6aC#P_+lZyQ}8jnS1;4cY&n$WND=X&(s_-`R^6?}!@y#;@_;Qa(2CHO$Wj}Yw!3x15? z`wIRcp(jl62oN& z!8^P|NuasQmt6ua|1q*&cLa6us!qqB0T&AVC2*O*-vCz${5^1uz%{_;j(S_VzMp`D z1U>^CF7PkF@dEz_Tqy8G;4*>#0iGJ&T6R|)(uaE-w6z~+GF_LG5w1fC8YE^r2L zyujJOg#yn4E)#ezaFxIdfolXV1U7eSZht9okig4Hb0GqosxBnAxkichv!v+2YI9}l2fC~k_ z2wW!cU%*uY{{vhjuz4if4{UC~C2)|y9>C!OdjZD_+zz-<;10lL0{a733EUaDM&KY| zbJynfdjbau910vRa3A1!f%^j&3Ooq7OyI%5RRZ4yTqAHeusNu?{n5Zd0!IRe3p@@u zUf^ipLV@oCE)#ePaFxIh1J?)~4{Yw%+vvz;6PV3A`J)O5k^aYXq(WHur39e?M@Lz=wdt1wH~CFYsr;g#v#G zT-JnF`FsOhCGhvaH3HWFn{PJSU*+=?aFD=ffWrm;1vp;d-+&7Rz6e|<@L#}H0{;VC zBd~cC+7E7Sza?;xz#hQi0($|+3)~L4P~Z;0Wdi#HR|(u1xJKY0U~@=w`#ph!1P%ob z7q|~_yukf|3k4noTqf{f;3|Rd0z~KUC0LKfQ4O}SjEZ{PM=K@y=yb!oX;6h+?@8;kidt4!v#J9953)^z=Z;T30x-dH^5Z_e-B(E za1F5e*5>wq0uB=R3~;!>zW~Pz{2Oqgz!!nb1pW)SO5lHhYXmlrM*Dr6+iwXRB(Mi? zxWHb(@dCF4E)=)}aGAjVz*Pcw2Cfk}2-w`Ox&5BNK>~*YhYQ>XI9}lXz=Z-20xlDH zFmRQ?cLCQ391d*m-`xIa;2?n`fx`tJ2OKYOG;pE7_W_p)JO#K);D>>01dazb4`^;b z88}Gb>A>LvX8^|woDEzk@GRgmf#(8O3A_-vM&LqV^T6izmjVX~yc{@O;FZAf0GCCEyvto>o!Geqf1kKM9CANcw2Eqrwc-rq@FyW=;Ll&h z)LOb!oVHj(L-T6$?9Th&S++NXxh7?XPx$rS7?@+Vu+ZYY&#FO=?CaiuZlJnY!IcSZE+ z)Q!=>meTBlk8R1;x?2Nu+lOfFtqZIH))_ZVvUaukgp4a_cgE7Lzjc9k`)wXeqTNH> z0~|w_d4@nHWKNe!AtW=@yWO@Cd!j>3p5VRPhlHSRLEA~eCTo<|)i#mz276adaYt@F zN}FhfjUg!A0}uKyAGxSq9rT9`)!O$C{K)^Y6N{t!+~N_i0{Eq&D?OLv`rs|@0Tn}+ zLwDQu!M9jF$K297KpVO&iu5+VZ~pXhW{dK_rnM};WN%e|@qTOhh4Jp?SLS(?Us-G} zA%EB0tTp@)pfzms*J8H1X+D1h*cxhwX-;df&ADv8ZOx6XZ4IZ}Y7I0Vr@Ltl z>5eGFwGwOB5Bz_(v?X(fM} zt;Mx%Z4F&4*1FnOwuU!=&vejY{>FWH=jt1*6-1xuW@|X;VRPCo9(8AKwl##L`vv@M z@vn&ZI%HQR#%C_{1kd|BFJ#_dd7L!GZ(HtYqsK#>}i=MWHa*igT0H- zSv)H&xL)#Pe)j7hWt`pQS*O8A8f>bV>)3@qC84kR z$dE7mBQfV~CXaw9_=D^Ua@5ZOC!N>jG z1HbSmUt3>U=8stAGY)g=%DhOdw=r0E5myXx9Io9GI7ITGlLCb)P7L&f#)`6q7c^suX)|+)f{+d56 zEi1kSc3pd4USsWrw$fsL#~QJ~m-%M@x(f8a_U7>NGnRsAtGmrJ^enkcm4YUn(jNSk3j@{dN+JK8a^HcUysBXj3{p$!DH~g31eUa zZ$`ZZa&C}sfiY-_7-=f$2;b8fl()Azf48&@J@d_vd4E_e6&ElTG!C8^k4D7N2$Tib zlcu-%5c`ius`ZuSx=)sAoBYpwb2{%v(7eA*qcj`pTuhyx_+4!;F2$X~tG19203W~94z{s*iF+80aF zc9F#zg}FClzqeMh7rfmPkXqrR#hfu~t4`0In-}@<=!P%%4=GN`x2>sbe7xP+#>b=2 z3HG(O_+wIf#lWNB3q+g6JyoBLPZ2*+Px z_#2QVKjND9rEousr#;ZtFTAqY->$Vz4d1!KzdQO@K16G0*V?4MFu#4ka@d9#A9@)% z5IRS6?=)$et!=>1^SvkiJl_)Vb6%H8KM(Y7_p|2XN!&?r3E&dKyxZZsHlE*x6h_%K zQ|f%wwSlklTWR=fZbi|B*ss=G7W;R@zA@izvHyFTIkjxx691Ey?xEqD#q(h|t>i>E z?R*(x{Lfey_}tu=?zyI17sNu?NpkppnD6_u7pyKoOo>CT!k+h`)l&RrOH1(*=-qGA zN-kjzgs;d??~Yg(4(x|^!Z&-jO+YqpC>v+l@cg*&k(iow7saQeLuAChxYyS_D@>; z^!BOkgurXH{ai-E$mcSQwkfuqu=v##oWHv5cxpTFcvIU;&^GpHXThO6im%KYjkPeU z+-kZp>f-$)u|7s%orGik3@PlnB#>Ez_BP;6NA?Ja0jKUh6z6I^wT7+O zZ|ZTjIE;99Ea-jzTAWq3;{0$2&Sl4OE~{?eq8#@&Y{mJawu{zKL~##inXOdbt~JzB z*-C4`_a}YnyitdH^RZScJK;R(WotNt`_d3=>IUGAp&so$(mPG+ zr4_V`bibh;_Q@zutg$q#v8aBYhh|DkDTbp> zchsN0wMB?^PM3BE5ku+R8Qb-M|Hi)>pFZh1qWshV_;}c;@*nOVSx&K<&T%>6ruOi) zvuM6${no|)mnaVWi5T8!w$vTM-1YP*a5f^&O!w&+Fa~>0FrB}rpU#U!Y{Snc#T09v z#iXtx?rnE z7a!Y?N#~5HM^jjBrO(L9cwx*`OTI9cJA^HQK(tJF9 zyRD(ZGUXED+YIZRQ+cNsy00J8!oAqq^$Y*N4}y!gE}nAfG<;Bty*w4?va>haoOI@+ zGi~aE)&XaG5pLT)HRL1zvlh>&9n(|7jszX@KVfP!oz7G^Px{zReyPjxj3w*nj7fT@ ztnb0WbZI}c&;=R`{!HSQ@xJel4pWk2-d8jrw-?FI^Sy7a(Y#hjvZF1{1yTff-mq&@p&7tLA!v{v2=dz%OL_+O)J4J9VqoL{g8 zB5@zhH}VUfBSKp&w5|Ew(kfKzp^YEjT^nz9a~mInxqmPGLGcAYwqJ6>)S|Ad=3DI1 zMvI|!bkX7yiqF7(hqdaQdS=e-UG*Ps@_*~gP5#4L-IVHG^)$*(sowin`H$)09f0}o z*~QYn?oY(^Quy@}*4wH%m+}tXrM2&1_K5m=VVi(qH)}IG+@-anGtu9c8$)*@P7EHV zwV$4|V72$c{5AB9;)dJ;xg~Ndh#Q zlrMnazvPXKge9+LELrkeh6%RcymZUB50<{GI=KLe~7%S(F$U8%@{M9&&3+*u}9#U$}vkDnjNDUvtJ{4)xp@ zR6KV6!Zr6GE*-%<{uS>T>QR3l&${$ZCdgblr<+ze#~bsoi`l&{e14mNgduGL5;e1D zyk?GCJiqOvaO7^9HYdoe&FQLn756i@E{?)@;0#)#S#h7qqb}85D;bVCK{j2^+zmTT zu-6Q`EwJAWYZqtj5vG#H_q%@jyG1LR7Nj-2i8vN>^v?ezy{I)fAGA3i?_g_qPt(r# zfe-3iZSw!B#Y+D!_!EWOb8OD@9XI*^2<`-)y>@Ee9<#nTIX~$7wg1aFYy5(`L5K@& z&0ZdTFh@4sq|G>s@wsGb?eR%Vui_m6Hs?p*)a3n&Sn&tWeedD?Xxdq52g6C z%B^kj5vr$qAalv&br^ptSH~A|jsEJ_zv4P`u-4FM5_nKE{sr|JowbG&sLu$pHB4J> zYKZ;K>~yrWI5Sq88sZk38jfIozDM(=kHx9aU(J%5-{0a)9c*z<9|XBji!;T;;+%WY z>|DM;i^=uZ%5!V*ZU(kGDzpX%&RLG-TEj9A?NdiIy(_vsw4#fx!Ldg zHs=KNCvLyy{GqQ_lH!4LCG^KVjQ3Ogy@{O$_ z^;Mi{e=#{@%S_Hjv$Zaz^Kj>BOM!o**|Y8=vwM`)q(ynO&?Zjzw>TpaZyk`Iz8m+! zwh&Xt!;#pRhP8q2SBm|YwK?dIXM9iNJVR%(RK%iMoN*||(fKR|ZKd=X?p$i|i%NSD zel=?YQ+|TZc9Y5%J~iAq<9l1f++T+4w%9Q59hfJnurqkhpLroTUt3|j)zmU71SPeT z3YnC5@lFtHFE+q7x3*o8e+qm?d#bBWY9|K1Nd61+8-3l2xK@Pq?V$F_7t`?!VR5T) zpL06TV-C)kXfM=+*ot%TWNH`LeO{MI9wxsiI^W-iH5j-*thnp`JBw>DKR;+_d^-6r zTLblh`jYbfaOWvYr-~x%71LkBdjLE)JCI4%*1}pm9A~p#F87dp%4*ni2KFo+?o9g! z_rb@sH=V&8#9k7b;$?9zYhB<>U21E{`_0x6kN!6z#-84?$-nrO;&qE&Em>zbxli|N zkNFJ0)PnCo=T?k;9_DC#D{Ub9?3~wfxRci5Ws84kh{+mSYY7Mq@zDm3!F%!LIFDy; zv^n!$vN`9zX={i?-y=<(qaxw^`xaDqOpnI9y!o+fA~4rKGI#bIhxd5rurHiO{IAZB zef8*%C-Tl%+Cr~ZyaV&6ZP3^LjX1}ThwpmhOt-?+(i3A>JRa+^uU7e47gNW&U+7-k znuEysCil9Oz01~FO`eBaLv9n^XO!Vy z+Ny0)aT&aSQ1KWK?Y3gbWWGqxb?$X^Uk3F3+ERPt2z0(|^73pn zwMk8FiTHaZ_Vd5-zP}IZp2vE2L%;Jiw>qrzhT*U)+^YE`RxVjLucys9-^keRSO-|EDEv9j?_UR=& zcjt{B?u@PSEV+O)e+}N9owE3a{)BVu&#=3;z2?NAw1 zvA$X$=7pFw-(_-91AJ7{i(B? zmJS%x8$i#fU1q&S@=jQbLw>ThdspRr)IhG)3YK&|Ag z#l3<)e~EuAKYb)Vmr5P3m8`&LE|Dk;3gW$Zr(s`rVPA-geTHpz*yaw~VqqKR_2DSkHyyh1Ia#r% z*|Rtew%vn_{p5UkkJh?G)IP(KL z;;{~62iqDB4W+%iQ$^xR?;X=I_a`r~u6Inw8Mx4AM|@$y&<}8?iXGIv7WUE^3v+HzDiaIR5jz(TD@EE4E#ml7vkK(I$&;aqd#QmoNuJnPFS} zQn&KA|A1bMx8q^RVQk|NH}Eqv4ZiM}m%A&6l8u3;f}sI7;k~HkflH;9V?!KMaE5Z% z8iumqPJQD;Dz`@g@q-u2FI5YY@&&bJ;g^{%~MV$@@~ZL!aTM zV2#jzMX`g+5S=&wbeDq!?O_GjJdHY(D1Wg})FxaPP9z3;LOX;y=wX<4ocj z|BZ7A#r|+j#b(D#SSMJ=MbJTe0F8G@3yKeGm4~JfySD&9IB~r(hk#x3rfh zELU^b(EB&dW9%(--U(&>v~Fn4kZ)7o#2WI)zO>M~e)sg?F!FQhq2RET-Qbt2=Z7v9 z_qu#MkK5oI$6q+3%+1TAcZHkUx~DqIhCBbp^YB5lyXPR>n~Lw=WQ2}z=K9;pkKlb$ zQ3t%YzMXWgxYI9b$!*dpOdiVVT=1JXcT1;2ivgh}I+mLdbcH2v^;Sa1svI%(Ldw9R}BDhAgmaX>{ZJowh zncmf}xZD_nG4qJH+<4nxXwzsb6`#GP;Afkxd#xq3UxuQ+Vh?R#6yCX=#rrmTcm7yg z+v=71ZtdGR(!;zCW`xnZ_hF_RQ}?)gg~sE(^v=+O{^PnH^dGhWeOqXn^a5d-wRLs&nCg@7cM`%uXgVOu}UbNkT+36F?(G)QXuT zULd1ElBg}GzZWoS0|RQn+C&Knf*6<}Mya-?@8PbQ2~qIYq^*Y_tp%g#lxp>~r`%Km z!^ISl;4Sa>*^@!E+S7C1)6e_){jom#zV>?7de*a^`x+bEfnDxBY{l<${{!r3hqQ$7 z9`ty9lugJk+mzJk{Dr!E=s4XyLUZa)&FO!qA+2Km!nBG$ba{IyhZHsVilPNe;FIFQv^M8CaF zO^XUV0>|%x1iku|>ToYUCl0e}p3uyE zI;^?TjSTV5`M7_A=+I9i3w%l+HR$jU-gjNKIrKL)T8D1+(APca_xGn2d&C#xfHoBW zwq)-e@F0hfLq5TmG4@Pgi9MS>@a$vg&_Varp8dvm8Qy*9iQePi?}I;|X-emR@Se~U z=%u&Si4B4Ox4|c!`>z#=%Bpe5+@fO;o1yp@3J(R}i+#WuIIZbkv40+?-uoL=XB51B z?SenK8tDJW)xloTuLxcTIYKK2;qw+gcAqlnVRT$FH}7s(_*gIP!xjd8v;l)7EPDQ{ zDbSUcOy*_P0*iY|uEqTzz7FU;{2Q5*Rg|m2WzqK+GcU8T*T}r2e_I3()~N32?g3r@ zTVihkcQe7spy&+nKM{C5s-;C}V0_MAI{DtqGNB{;>4O-2!vZo-;dffD= zMb7De;lrZXOqwa^T)LOTe?k9ytz!RYjhsD7shtVjX5?=1Z+zR7YfS?e#EvO=)C!)8 z9mI?;j5)DsS`&5{==bwY*lxtP!d#zF!TM7tx?8yhAHAR7|M&f&&ZRLzTkac}+j#>t zCJK#_{`zu@cPk)K{yd=Xrnc<-<@KRQIDjk~^elMEVvT=v2 z<3;$GU+L)b;g^QmeP>RxCZA?KY=Bq#j5TqQ&>VQ61`|4X#;721nM-)4@#t~=gT$vR z#xw1M*Go6}rgX0c&m!Ll-_!%&bQoNi>`)3;FwWv10}levq~(bg$$n8)V^k|--NDe_Wh1Q z3ts;D&#I9jf3^LwpGmuqTArX2%+r zrViD6hLnU3Ra_m~M<2+4L_QFGRDA7_e|;c2BkDd+>ZOf?6?FW?JJ4(n~YDakB7$kxZ5|-$HVoW@8E9& zUdPAH%$UkLFMTO>i@xw9#z@9c`gw=cUGil=n@7X_`fV)^c!ozuB69}K0eB`Kgn9ad^)=p0An6_Bi9~|@%rzleq>XxF(&xm z7aRXQ7bk^A#QIVC?PKXf>iQA=)x^AA1`p!J1|fXSBz$?Rc_wsA*80iJJMnv}PFCs! zcYBZpKfyPjpjEO~ElcXE6aQ}ccCz6kl~y4!60)8xOH%5NFkaQXH|ty8lQj-I zMcp#+6FJN;-wCdYZ-qQ-O7ijCS0_3wsZY*%Pp{^@N80pZf5H1QezZ&4B=;t9Zy)zW zhb6k^3pf`&(d>~*OOPVEBGGS(&%5Yi#rH<^uy_3LhPkEaVMG_(*m#@mWy-Sihf4; z0@2Sz>Bm_U#sAx~IxtaniY}?zqZ@u~;f)WM52FuCm9_HrKXZ`xa%Ji=d=7Pd-pt5HLPKX@XLtl$nZ$Do&&A)^ zd*LouZq81_*I97L$2$-4j?5RG^{a>W1>jRNuR~s;{_8n!dobwgzgDRk3w~^Vu-Rpu zXs>t!+r;kd*IZ5bJ6YhP;D4Ml*N#E2k;$CkA978G5!Z2maT0k`{IIWOTw?ORQ|N!V zQs@zWamY^vck|46m;S6V*@J~9Q}i(O?M8UlOp`OZjPrOs<9YW(#`g~RhKDFVib`2e z$)Ws)l6Zc?lvnWgJw)k64%`Rr+0S||?Z5^)(LpI6zP_x2lK!MU&Hki)O8U>AFSGxA zOWCU8+imH^x0gM#wC2wIrT3hDe#xrm%T^8FST=6ema>ca<{plZaGlS$<<~x0cK52S zWi=chyY{KFa_>x=o#T9tmw0EEU6QcqN+-wskxH+V^ZlP9kDJn>#9&oA(1D#$?cH~q z9KorIBe+jdwZWItO2#B1P42rO&e|#pBKH?8_|pBX_&9b6<0f zyg;c{DcRty^ec0Fyo_xge4y~ULJM!DAB7gC${d0Bnhno|ziQa`AUqfRmeMif&TNYB z!NT@Z_^2XqS8!hRe6y4AZv@vTtISv0br_tR4BspEhZw(lJv@~k-l`NHYcjmnB=l6* z;lCgA3H$sY#qf2qfvqy|)cAl;LpLqtod<0!0 zzJo@cPxHTHs!d1t>{DE$#Hho#;WO|1wou;A#4*dHV|2 z>uQS8c6ojm&!ry)rvH&=^v7Mm9W~cFu>6aJ+R?N(t|#E z1$`jTcO(DL0YAajhMl!@Jc=P%F-%RUSyJVg99uONobieI*{}5?I5Bm0M;nf%u z!7p?6J3q_dAFU?KZ1iiLUC5?llX%>zJnsj-*;n{FC9b!Pm=lTX%_ENFDD}>z&yMqt zH!kqimX6YiQ*+GQlDJ}8nkh~2p!W^dqioir*;j~6XZAi0-0^n*qitSJo5h|$EOUA> zG&TlPruQ;vl-ys+{cd3J&Ofgrz?hbLx@AmtbA6Mw4S9PuV|E(esE;_8YQ~kdtH!*k z$%sK{V2rD`Ho1o5pI50`{JWBd1^1#)_#ySYuPyu88Z9Gm5B+s?0`fNcwGTA6_tT4% z&JJkXr}(q(hv(l3|9u!;qj}U2cQU-UIqy%%zcOEkA^QsNFFI7EbMqJQSK`}Ad;IvG zTajZV4#JhSlbDl1msDpDaYrZM?~L5*Q8RSUO!Ry3YagHwyls2wefTiCa*&7RAMyHQ zI?}vz7spn&X5j<|BzG~V! zi@HRY>hTP5U&z0Swdg!oHkUqlpLnD5cg5t#eSW1=qy6SQ(F4T#AtsX#Hu_=qKtCMD zUsT{X1AhiSMCme)to_vkxE3D3H7~dp1=o&(XXa5>cWQmQll8QB#Q?8U4Q^F2C%(k> zA>Lu&#yik$pcLxKL1;JAb5ap=7G%r13XXyJdh>)*1qZRJigjhR;8CbpmiVD z=G7iT@BFPiP(q9c`osA?g9lnwJ*rmtAcK$mukb*?_EjFp{C~j%B^vzP-@-B)SnLKY z-^c?c#CV`nz#=@*3)L6Y3Lg}QMR*|BiGPd->N*AwwBzsR0kFc)428E5K4@50vFH7~ zgphTp@67Y=SlsL75-*x(3I)!?AJK#lJ$k-1@O*)~GquOC`!0uWZBtWbr{LSxPCd&V z%Uu#@H7nJkH)k}v@|YjZi3vKsul^A9sk9))?OCKuElqt5xzQT%;6qoasx`!Ml*_sB zRv*J>d;))k-6UK{O#eyvtl6w59{y!zjzP~q^jefbfg(%G?C%}H*R-*GR_bK`Wa5!M ztW)qKgTl;bX>YD`(tQOl5Qj@_;DIzXbQ%75qf{Au)s zqWd~_QE{jhUUF7lU561P|ac8f(e$4y#5>FOl9oR|nh^}Om*{uNY6|{3Yd|4o!Sf(rO6+5r8SA-~~ zMdYBUH#yA|;s>3cRCoo-^c>a?XuibY9RcqNFG!`4hg2o@gI2 z%0uBFo=11H4E>nLuwD6TB<`^Ex67xMroQExotNSE*V~-aY4efig05{QYhV)XJ*;`W z?)u64baoFC7 zGvYFxTPL>Yb2#5Tv02YwXm#hK_iC=!-T5PZj%I8nPm|{(|0-fR$@`ISvgys_{%D5p z&ZqAD3&`6+9r@T+o8d9ilr806lhxnMT6Cnys^hyV@tw|Sk@&FMo!5gGcTrldVV-11 zT)iAukPjrlx#-FsCKpIEe5b_0PZ^c!o=bUS;!3@FYDUHD6IbX*SYz7w&+>_-e*Z+j zjt=dNT`^51X2mJrl&at*ac7b@H(HbMZ5jcBbHC zxJFHj;sab6MV4z&?NJZsf_E|xgy-wgu9VnI9o300xG8P@>*4823hiGS0!(ex2LQ`Ni^UUB??>=vw zpvll6;<)um&>x{i{~h|XiuwFQ=+826sP${~#|0che{}jx=ua!OXW4&&{=5wColAGd zFvpL5rzj+KwqcVIdesA+I>38E2Sndg#yiG8vw2<;doHxMIFH!aUqHXmJ<5Bx@!pqX zm#zyQ$haBwgfaYb{L*#76&b&S@V)qKr2EkciY+mlLQF0BWbEPNT3YyJ{IxeEZog9W zykbkd9Xq1L{^v;CKj))3`xdbIq(|z<-)ggKo@4U!Am74R$ z{Q;U;DD%Oj_yy-frgZ;KiU&MLhi%~bxnmQ@^+yN(-*jyZ*QH(UXJH-cZ*cl*;_!CS zum7Sc1(I7Q6+War`)z1`ruQ{yp7??s>3?XDw6R$oV|`6UE@B<403LbY%KN3fe}wc? zuk*f~gF{9Rp|EPTk~gFLRlX6qM|95t)PJl{95Q6HUab01|rNy8WF1Z&6%){f?S)xCwa|1L?W%|M-5$l= zK5>da-(;HFKCw*ChYqw;U)bY7*NT4<>&dK36i>jbdhQ=-^89BxaL%Q}aT*NHo~6Od zsntK)-_k8l*pC61p=e%*?`HX?1&?9-jYv3q0RJrcg#GfMx8$&X-1~YnO z3;JYorQNTGb}EU`05zOBQJJ@I7T(1IUA3qGd&OdH|<6SU>~l$R)9^gjcCmlFP9ih|BBF?0fb&5C#L>$vOuuG)*0 zVZpIi`#KV=zFAgR!z?@bMWAi&UfTJxVhVmxmj=IT55Bn|-E9XpJF!Ccg^tyc1sU!( z#R-3%Rw1-Afc`R{XF@k$Suoh0w@_cb6<>=tv^4)K_^;*DA3{H0xzhJoWPxM#2k@%) zFQ)9-4L$v^ez;rSIZ=O}@s9v@RC!NmY(DSEKYz0zVRg5v>nA44|4pkO{%p#gfa=hX z)LU1l@lF64iYbD1I`I8)d_~^WkoO?)fdQWPp z-gT$@E6-f#3%#dZ6Z&8ZehZ(Lgih}%4xQWvAA|qUF~(x=mC8H?`E!wy>KA)X5WPFO z;k>2TqMDhWmoiq;?)}(*Bo6cdW3lAj*&Wx=?-$T7 zzf%?c$@-+#hv;*B{`6OXEg9QV71xJ2-=rkz2kW)fo0Md|it7!$)4&|9BHvd_EdF^(gE+{z~>kLM+f#1oA)?!{5pK3C8i3Q*04`LVEF5$gmv!WPiDYYgdef- zoH?6|pW-rQm|s!M!9}W>n3IK%eSW{6`B=)loXq^3#5}zYTi~_iJkVP1I3oGhzWupD zAI!)d$lBe|3=46?a}rFt;66Iusbfa@YV}FJGh>MxZX!oxHM;WG*NySFXTOXdR&})3 zYwlM36GV>At@U=8i4g?Ome+|fXPl#cXrl3t;rMBur_?M%FF<~aH;%}8yb82Vt!*T3GBbS9VPu4jKGxErkokur zD$M9r%!xk7;UOa~QARo4CzFf&q`uQ>!}~tIMWv6hh2F1)KHs6Ve2mT!pL}pk37=c1 z_=gRn-o5aIvuLXV{mEr4#5WDPIOsX_{!dVPp7h}dD|YTo@7Mor9yQo4F-;G_hfNY# zd%GrzZ1W?Na^~J?s;7Do@$K9{Z1WM*^T3rv+J4^3b1U-4qSK2Ed(aQdl+NlA#64M+ z&u5{do?WbT{;o&#p6Om3qMktK3?5~At4E4`paj^88ULct>Ex>om_JQ(^?h4TiC;o% z-$frq-Zp&h63`19xuv8(jF^QVn3RHk^g6PJv?loKdQ_!AY}--hmDsf{_%yzX&0N;R zx5;_vzahP%wBF?osKfltYn2Wap8PxXo7D3w+aFyL8@L|7@pv9LAAQpRUB;GZ z@FzXYH7j&o?nO1XcLx8Cw_z4`*Xx-uUR9l8TDWHR4{sLP|?*moLy3FoMhwh}dx%{#jm`W}_% z@{dxU@ACMt3u)mq%r$agJu3JrekJ5X^{!y7XY=kw3rucnb(;6|T}`3_CpaNzRe9<8QvF|3kb}$UE_I-piWW-6iqh z=r{{}orUN!L)0%gU?I=0$3h+;{98qbdITLfKHL6ntnDGz_CkE_WsMy}UfB>ZiO>Go z`hkx+I>HAPqfM4e8p~(%uAYeh6EbfZzE{f|@Yx#mj;rmlq(~_aJDy$2)H`Wg(6igM zxgt3tI-uoT&sHt|wh~k1UdE&CIo0T+TJEK4!AF46YyQmNAvs%RY>NC;iwcI0C3m>N>?hf-g+o^t^lB}##s(Rm+{oXCD3<3rhJyeIDu3lF3II2`gnCv}Ci*f@tvVspCfpcWaGiv5G}AI<+m z^q=6tbTu*XkeaTCyME?6Oq_%Vz62e5i_CG)fN#+T>(Jm%ViG1pcf+(pXa%^`634UU z*hWk1P3}BsiRXQE4B+c@`pgd!vg=yvX}0|vPk z`}-K~tsr-?_#_@5q_o8S5>FsQieKWJ+xON+p#NRuIob{%pJ2Lh#3)L_@RYJqloRAM z{(3&+-P!nQ!P7_^;(3jwEnm-VjNK>QYn!`BMT&j9llVBQMMYk~Pa{Kyl5`TP+nWr@JN`x{^;hSq>N4)51tT>~v1 z1Dv)2Sji9AeUvqJC9rOTri*{bUXHuBt`r-T0qbGS7NZg9O*ex>&EU|Ag(i0!V?O5Y z^D3U!w8-n=U;7R%vH?74-;fk(UYO#(S~CY5=#NeEY=bHC6i2}i$+6e~jzn22in%@) zH!g;zh|W&>3%=GX*Af#umwq~)WDN>_#Bl@o$shH9k00OGSKCzmEM7=EX3$pAH3Yzq zBedlP13yy1j}_oYD)_O&6&UC<^3M2$wgtfP_C1M_z1So4k=?E~`k?LA(ZL^sFFT>L zahegISDUL$ksy884Ud)kJ~q393D7)Qx3tLSoP@}5InPNp-f1gIjtDJs$-Szi$ZZ@m zCzYkq8p4t0O635v(F2UeGgy#(%RE2JK2;FbxJc;x8 zb6Iy;_c~-<6Cfa;s-}tG+-0u$3T7JV? zt9FmWm(z&bFl?6ZYi@iVhT(6Q=^aMS1W#^|VXYxx-@9C3n`5KXSC_0a;@<10Q412hMhoQ^YH|!BXIvp=(y*)hc)v zW}Lpub6JOPk?Vs>WE$7-oZem73wOdBS!e8sgL;T_45KmS#25&GP}7{4cMT=ESv2Qe;6MCwy%TWgg;`#WUa zdlEc)ihhyUKH_HZiy49(Kg|0XF)xSlIZAcJ;>U$owWx2_R^PF-JUl-MKEoUkeq=N2 z^UeeKymKGkF3@cOKJcYU^L2WG(TrZc>jB?OJ%^NMt3NsPS5^JNzbaiLM<`h{N2KDL zD!lOaJAE&)CjJ`PYRhDb>GPt`bJXI`vo~g?WxqqFGL9q7w~kOa&o)<$@MX;y(R0fh zR~ARfn+AX24OJz_`f5+I!3)m7CrfbK4UF0JWh|z~9lq^7aGrm{_jObwx4q0W$zO91 z`urac>Y6rK&G7GMjkPicX6*lF^yT3yHL?hQIKktasV|)(e&!>2SH9f?p03+b(INHT zI#8dC(@Er=*LYS8OvSB(T1p0|q{VP(Qjx?_S^}>z4sqT>U={h+1FQy~fOo{O$WG=> zp8SXLk@<}L(I@yEKbKq+XWKN;mc~>41!4!0_DEZZ9rErZ250(rh#40=_&0D8zEScQ z3cd-S)4D-;^cy=iR3t<;mLx=;oSzUm0G>gwSINIbo{6_j_;_8~RFY)yL#;bvH0~$T zM#d7F)0Zne#;`B>^LRg)e<(hdmOv`-#bGe$*tjJ4J@^d9!y+(o4Xp4>F&HwT6|K-@ z;OW?}HMx2gI?;)cdmbLh4F7XjQ(DNa*4@A{l#>tvr~8C1GpAZ6Ba<$p{lYH^uQUYy zsNbZtd=GimQz&`0V)uu0e+}o=^$urf!vLNxPKXQ<*tG#Vz99iz<$8Xi!4qzW9)~ul zkubDg__UiS;T=g48PAi<)x7!)_bhyxWv<8ne}sSB$9j4*|JzGD#AmTpOQKKheLA-6 z)~ZD4u)VLk3|~cPZ%QL!ce$(2fjf$53=L?r^Ehvl4Zno^*Jh8~d>F;ww8iO#Co>?ci{c%mLab zxFobucx;h}&gc3pJ*A%vdP>_3d5QkXW~?%c#6D{FK7h?6Odo!qZ)ilMQjS###ySwD zPvN1%|H3`7r4-5d)2H&kko>nk!R?~IL_Uzc214|&aemI&lYheK%hsI47~W_mp&fmf zQI~;V+&5@6?Uwn~$~wSW3x3J?a&7cEM`K*MPg`XTjL-enfi_D26N{X_ndf0}-8J8e^An-%4jratK z;q9J1+sH4*e2E6GY1X^RFII${{uOwtV*QlNd^6uLfGc0Y4`*2V;UMi0+<2ck{kuUj zr(^vfIMRSFPI61E8IX~n)7H>pLk_NyKAR~tt7Jgu!T+Q_;VFb}V8;y$j>U0H@alzw z{ZE8S)JQe7>pQ%YiyYmM2Jgt6m-X_nsj<__oQ%$%-GSbx#e-c&;)fcb3$sL~1;;$U zCC3GO034p}?N|gKA^$V}OS{EiA7*UkfNZ@e3B7O0Lbh;tr-&{{cp>nrPk5nrO^vj3e0s4O`3uK6sx>IQ&GKYD*oGayIhnms`j-qUgTGx# z5!-0HYM;7WwIBzuuM2+UCpee;ahXB*Uh}#!`b_%wRhe_NnKi9%aveEr(6vmW?bVE3 zYrG!@`sFY9HOTzGig%?Azmjji-e=Tx7XB-gf-cshNi&f-8Gl)O%<$2|8(v2p{otJ+ znAb8E`%iVTZTgLU5~C$L@-L`g@*Ser^6GPAJ`tmlmsX&=8o5zP)1FFBJD-FdiAxgF zcB^Lp2frczbfPllVhZ^v!a`efz&r8X6TNw}Is_YTM)U+nA3ibi{8sQ=^xY`H(gz`{ zI4S8A2W3C9ir6d;;)9XF_3twi%EpaIC`+dd=6b^Lb!FduuVL;LYo~wqoh;vHSANtm z*Ian3%|o$HsIuizn#b4LR*bK+HJ|6Tm7dpXYd8L(oZRW=-IMq9BUrhT6RCjKM!9}_8-IR%Z5H>PrID*mt@|fOrzXS8JhX) zvdc4HDm%UOsj@2B&%vj(R6fyBcJC9NWqUZD;+W07{eAtFe^~l_*>g*uBNz9xWsm-H zYuS8CKBWPgb))Hm5jB*nCz#%Rk^4W*%+U)QBHk6FImYy!*ES+?DwgWd0mw z?ucwCdtBk?FtwezvPMm1U!<6PXkIs37d^DdeDGs^Qm4$#S-nMdyVdrpYc9S%kDv>?o_1Spue(;>SIvG3s?(9sSU!D` zQd7FM#dTb39K?D4v58ak8=)i5K(A6wDLOfYTG|UVhs1u=2+dLLe&RJ8g{HJXkiL>{ zqI~NoA9+8z?&Z9@pK%g-h<(`3>JX%@;v0wl0J{S@?>VO)a=n{; zC#pde|L07_6ulU`?tu%*iEmP)y&N+Yd-OxOR@G>+;;_oSTXkiE!{o4jNUpbh&Wni8 z8`W3zd1}qVN4ruJY%?jvl#9`6i0;S1{x?@AC~4?7yce9Wq&>v>d(aQNJfoO_%f9s4 zvH44%AG>MEQ??~`rB`(D#PYRdp@&jm-dk(J=As?gTl>P2wPP<)E*w!wF`0%0=b<|) z>DpVXCUw=_JP_;oBc7G)+gm%HXGP4TV&>C}kFT@6uymvCN8Edk^8(%}zvCCSo478& zbA#>2cf4S$T>9eJM{mA3jhy>w<(EEbdx85!%v;9b(nTDzm4vC;FK5;kU6o>EzK=ET zb8g%}kXd^V->%}@ReUS&%k!D>?@UVFBHrEJmwf5W_%}&P-OG$k*3vCDmHo+-CF^Y4 z7+X8~teN10i++(lma)rc?8qJNzY`y!{6q(=CVEG3LEa~~u6_Vo{tRQAJ?lj6MYB)T z7Ak3hi@H|2Vz^;DiyMKj;KrER6Z}7uJu=#`hb=Eic1&lzJ;uLH;J)wz_rSA=?n?Z% zWIqqFrB?G?_)&?Iw6OMMZDbFI_Y;k{>tom}*W)A8jE_w5ZNksZEL$%=FW`M4Z56#! zN)~!~+G?vlX7F)))r6Ye=pJ{2v+|CudQ7dx`_;F*DnhKW!fQ=pj)YiC4PF&m6JJBk z|JFZVc(xJDZSlW5OFL9$LhFtsLmm*_z+B@DsClZ&@!UvVe zDb3)!JN`yqJ2;>pffk8eBXXOC9BFYmPGq=d!Ec zPYV4la0yQ;vc2$#75mQV2ctfFU(do3$c+tOksC)MJ4_ee5FXsnyKodWSBlgDT~6hw1F!H| z(D%Mv`b>Bs(XZyxXPMySN%-(&VEy`cChkf7meULOgjqM@@}%&$6Od_>)FIt_fkCb_ zILFuBIJe1tRrp?X6Z}_X8d<-ZB$g`Q*Et(o$q&X%^01#$guE(e+IJ)vd?xjr5gEwP z4V0K7$MSdvzMyjnvqtra%=jztsU0~=^iMJ-GG3pKQ#yY|ABhaux$=zCO-gNT2566N!Hg@e-Y%pc9J{bA~>%?-o0<><-m{ zM+2S)87u13WQ@Rlu_=xt_OXrj!7F!|mF49jY^~uEMR2!PWHU2*@65~9nr;iaBG#h> z{60nZCi0yjS8PbYCQO?SicCG6dE`XKAY_nxhcvhM6fvboXcKydx=9%Wy0#5T#`=8< z{m~liMmLCzOCMMAjqtYB>?JS@op6O*A5>#{O8QjfJdu5c9|>z}q*#s{5)IkdjGQ~W zu9}?Bo(^>RErqHnDr>3ufqyJ>7n`&23{7%gqDC_KR_3|^1OG5&S;oR8_xYFGIL2&e zt^7mAUu^Gw+A4S`Vh zL*g`|Gx&Cv*&J*&nY+Ev3B&II-=Xb1zmhuSKa$ha&w3oQSKrvT{^NyvWQ~aKXRd1l zeR(k6*Rj5rZ^RzfxUa7i+a}$w8dGAiX@sqP&@JZIsH`VmuZhXum95=Hb&Q%8oj}!BM(I;Aq z{jXZfblFc3x>7=)i<~BSFY?)LN+GG{%<9mf6@7L5Jq=vNzl%H=Y0OhSEIdLs`3e;H zuY7EBYgyxS;GwR9mr8&?N`yDMO-Ts6q9ytttXwh;I$86Z%B9n`eU@4C8nicwe7Ua> z_qT@Y6N&OYemm#JJ#u0ErcfEQ z7+!m^xx}9XKP3A|PRA}KvSb#%X8G`=S@c_trUdaR4Uz|=TVRlUcH+w>c_#Pamv_GK zg0vmKxIk6q;%N>1=P3Wts*lz#p>6T{|4RMK&^I;>A_nd%UuO`#3wvwSh|azFR`$4I zPWI$rW5BK;v_tgf#J+}wE|a6HQ*>d_jSg8q4V{-3)9natG}b?G+Mtb^W~_g*mL2&H zv=CZoc`dZQC{Wumi8c$pbMQ?Q zZC*y3zt8=+e~GkHZ1m#KA#$Irp}VkoNn447s|@GF?u-Baci~fozRP>lESBJ5ZMgRc z@jKGC!@?h3r*sU(56cH#i{GziK2O3HgC5PRs+Lk23t4A{r^`O4Z9CBihe}M5SFvwh z%5z!Mg%_H9ozG}%yiX+;rTjxh9)1D2Me2KD-gReWeb^&99o7ipL6+ku^AzcKXpQJx#qJTyaW>R@n$pDF%)NnJ3bU2YBKl#`%}VD;*^~VFK`k2w z`lWsEmwh7di|r>KZ&uxqyV^1kZ`Ke%kEU953wGjMd{{y|41T9CSA`$TG4zY{Jv4p5 z?g3tP7YbcJJHM3yp3DKx+54P~g^bJd*fu}nyaBrZDSnWmXFxyZ75QN<`5$DSBmsfWDYG*P{P=Q_w=3CAP6b!y_885G?crz+T!HO%y6Oyg!RY~Bq0d}*Z->|<0^o-D!O8!` z|Bd{DXaDQw9l?L$bu!tTcK=hvEWxw+4S3VTogC%9z!IhryPR6@?Y}v2coP82e1>4)Q0GnabIj#@_z$v=7Y=;@&Xiy%`X1l*ZVKlZ^Ew` zcE%2)F9*IQ{DOEMm%-nCZ5+O-o;B#*t7%u$4)Qdh2a4N0RZ=Q8DJ^68x9D;;U??n5diP1JChNO{{QshBdxUYmXe48e&S*4y3?5+)+Toc`P)D!I zo@V5js$#v*`fL58aUYUm=CJsb%uKWg?dWsXoyT6el)315jw6?gF6R7I4RfC)Cz|Lk z@hR$kgc!N4ls_o9*-k09+m>YAVcV4T1KaPpcaoCy%e7?}QkHbAW#7QHWjAtOLwS_) z9A!Iuh3_MG+5_ZJ+ra*U*-N&RDND8@_diSC&gaV7i`bhBT#y`V=r_L1u}1!C@l%pL z*cEiBQ)#>8$7)G%1RqHNjtjbKvniSIB;bgyDXO2yk!j4+n(WF&)24GwRZ?|d~!ICQK&PK)k%4F8o6g^poo(X)3BYAL?k*|Gtdd0ZtPfx z9+m&ph<;dT=gyJJc){B>zgO$l@x4K7ho-k2OWQBqAiN7hJ39@%E~| z&b#nsbHL9uKJ0txeDH5kLhW6J-s`QHQY?ypVE!cK*KLD}-4t2pZ&7d*QEx34vqj}&=8>=g?V z-Ac7GHJkrStfG;_E@g-7LE=`j7AWqbE7_BHLE`FcVpfy|W@jdKXLU8YmMDsU2J=Fp zPCK!vMc3$4A5rXj7VoRjJ-%J7d{(wcsm&ZDdsji<^xdo+a^;~p!|-|>ri zBk?Kho%)mVt^f9mdD*!mN65AD?BrAPaHo*dinQ1-jrtvb9_J-lL59GT2F ziN`!qPdya1pEXoUQ&@K454(q;$%e~~IB<9(#uU%OVpGRy|(DiCk-vr5P zkhgYGc`5Tm;z%zMd>^1$JJGW=AzS4#7aO1LFPI74c#K%Vc)b?in(|ignf0)?0eU5V zWy`^9;mu3$A>OC4v0U)0=!fu>%n#uy1I&lH=mqY?Ka`wbe(8rb(6PLqq1)#C7_|9> zI#^$mt<=am_@S2Kec-3DJr~69c3%R#Huhs_m(0b`W30*T{RN_G}GUxr!1@G2o*DPp(#6`>AaW`OddKw#)K_95A z5SlPXd?!t*0g)SyJ-Y%rLB0@dZSx%~Ty5yGA9n;@ZO{w(_p$@fGy43L6Tit(X*Kxb zR??Ra54kt9imq`q9guu%BfLNPcVe@lgI{QF{A?Ak=(oaEF%@4 zNU?``fJgEz%vMv_UoaKlW|3j6#u^ra9yUGc@VRi@0(=myVL@lf=jv3 zIR6c=-aQHan136(Ot}tgTIAe&gSodC-L0%=QlI#z&A-D{VgFPA z6EgNa#I}o%nXL2Ucvg*Ec?|pzd%Onk>ZL8RR_6he=wzQ}eFMI}-^w*|L26-uWE+?9VA z`hMh-!{|bU|A^`PV{(-E2^~peU)U-Qe?q&VqkGCJdh85u)Gv5DBzzhjbsu^Vauc69 z@{|(#SMa!hvD&hXHc4J$3Ix?)_e(Cndp=IQ$*+fnq##!($OdC#X;-ljZ zdl(P#*^JBfO}D}$K|2gxZ^?ik4ESu=OLh#jSxb!BD1gz>)qoG8`z4RpfG&F|F`sVl zym!IRsu&KOD;p*W-WfVS>;&-i!rz}yX#mf*FxFxCz^32i1{2jaKNGzW&pYg_0n2Wd z`F&$Y5Sq6c-^vxxq=&DX>_KPgf20`Q6YcJye?;dZbsnoC1`Pdx@F_i#(;Ye{b$!g3 ze2iTsi*YghVKw6)%&QFiFC-88Q0dDvVv`Zx?D%}8^F)As)Gt!VZJ!=K#(130QO+Di zFBQ#EI>m-?*r{~hEaRb>TH?B|9>${jK3`{C2a$>WMdZQjnO`ynJtJeXyuc*7AAF7t znKT(XD153x1Ar-J7a5R~&KZN#X_4 z68nYF50P1ih0BHi%rQk|FCF7w2NTGdKO}6_nInGX)O~P32dyQEKCVyn`ZCtjwZVb8 z=umglhmHo@>Nn9b=39pZMQ3sxIq70_9yj#XKbmiHqIYzP|B#`d)yXMwl-v}`M$?pM z(3xC}PS)|E)}n4qnlc^P37ZX~-j}*raxkEqHKChLKsP%)_^R+u1Mh8s-`a5$AF8r<@jmwdQB7*_8cplg zh|g}Y`)aDT1YI2StGb$9>?72hLrzxFeg6f1Gfun3pT37N^uQOOKk(*i%7nc>@jFcN z-U_`DnN;*oMvh?VkNkud<;jF8My_CN1c4%@w{*ZpAa>a-V3?g8&lTVddWbEuDv!o& z1?b+l^Z(YIn5`l-KgpQC)pvs9B}oP@&pJRJ@OwqBiCqiMiCsWwO%`$GyTG-xW4Jgb zL&$oUiM~$kGMSm^bsBt+dZf?Mm(NNb8l0n9(Lp(b&6EJ`X{I!&DbZUmLY`Kw!Py$^ zJ}@>0yTDS)Gr2Eo&g5BVYW-rDfCrNOm&GP9dDi8%{hQNQ3@$;VuQz2k9Z zNbnbwA8Q%ieawkNvUip#IodG$vf9@v$0$XN(QfenUNt%R7UfgsY#+x7rsUwibH2^w zj=oJ@r!T~>MRP?zTA(Ed|Dt9DPjS6h?wf{NWA6-(er()xNBcMqXAh_sOhc@1 zS(FKHnTA?l+@MDOOq*Xks77Aq_`>Pr2`@61?{F^p@lN3%H{*fA_Ipi3gFiA23%*dS z^v-_(ed^M}_WcyWDd|_~gEiQ5PV)YuQ~i~{1cv9p54ry$`0+N!n;5J4!0|`$^&M#| z}{?y6j2`>QKFKEjlEh#MV>-!oD+fOkjAA`5^f$dNu z_C(+k_yjh1#;C;MW*zIVTmeik&|kmi`xof1^&D%sw~etUQF*2Cv~AR10^ZBq5P6_z zU=GX$S8d?^O7Q+}O$*k5*E5(8UjDn8^LC3Zc%1og5%WRlo))dW{5Bk7d5PMp$ z>I!CEoY1m}`hG+a+%JU2kw+90O3dFv=79pv+o9z$A7l=k=6pH$7=KrMZ5{##4}zPC z^uNrbLmZcA3ElI#Uj=TiQMBl`>T$K*lqf}TQ})@AalH-LOPD{`(8d?kMCO|od`L|Q zUaM-s9hAqow~_09B_q0+>-QO>HHtI3R80yBKK4`hi;Roh-^+a&L;2r9<2oby0Y`!9 z<4=+&kRQS-=MQpTr6d{WIh;R7U(0-s?FE+>p21k&4jgyTr%Qb37G*4#FqV|qSf)ka zW8Er3SN99xkT?Y4qlHHiK3LWlv)HN`M~g9rbw&)kL+p5=4N5H5hc}+! zUm<=Yxl@(S&OZ{rdsZm7{gwav1$ll3_-NtJmtVk|P`GB0 z=!=L^uJGJ6e2_=AJ48lRg2ZbbOp06!tYLU}(VI<2E)C9CD%-Uf?S4j!>0d4;ze2mE zu~YfDYvNS+jpM{kW|=blk~2wSCxxFmk*&16Nsgg>?yD&YWoyA*_Sq7i;;c_D@*uWe zg&cUvQDXFhrFR>=gyEC>9`%TCnCNqJh9{IIaNMui;Rn;giNn{HUHkKfxmzl;r#P0b zE4vtdZ2r>qWv`&iJw(}r9yS}kLwo$mvhyE*s!aS^#gBY3y4x!DzQ{D$qBGISzDIrg zpvAueuG^s(ixoZivYOC+eo}(IAwdh?4j)ns-?1nm(M>LW$0GW64|oyU5F6Xc=&>{D zS2MDR*!R7R-C6rS>$mXmf&*=gbpYGG*J2GK7ez|3@3&J2d~o0Oti?8T5affIdPCi@ zT6pKFvKGhvPxq={+WxEIKZ<~(6(54%pi38j5y2yGqB-bCpCEMw_#WOM5M*r!w|bfD z_?jqnVmp>`osMl-a!rtP(R+hMiEQTkXW$Ft{Gj-a2FEEa59cc_AJS%7W4D20!rO^2 z-17(3NF#IVdFcbjkG;_uJ0&Rhm>WSaJdC_AyjL-}Au&p#yGP?zCi|B3GJfnG36ALD zoJShwCjKO*r_UE%|83-&qHLnPLaEBSeJr~Au~oOBo2Se~w=Oz(h4IV=o+7TZ8BcuL zqxp>I0mf5dJd5BdeX6N@QL-9*0J}gA<9Ibikz6rXR#}%^d7BkI-k_?i^Ziu|Hdt#E zhrXZsb}_aBf2&QIYOWvQ&b94yWhUB<{fWdr!`w7%NjAn!{P0E*<0rI0?0a92*D?5~ zJrXCxH>__)%+7`ZpPU@w@kbbbQ1RFd@h2l5&WPI)c~9ahq+XGE413Q(4gV{5SYmQw zwqeN+?Fx%OmH1Uj?8VK{7O_`}ydkkC$ORojcSQCe*DUW2$9FB=d%ehkz$0-zqj^Vc zs3M;kdTi*|Sk4W*+V|l{i-eapdyBsp<0t=ULPnn-i+S-_9s2Y{OF*B4e+{zK>j7|+ zI5eS`i;)cO{W*1owXEvl6zAwb{PAG&n17=Gpf!1A-X-$m5MFn4bG1)4eR5@M%Jip>UGoeoc&q3(2z?79>3ug0QfrYlW8~{ecM%LUgSL|N`OEEBs z4eZ-sQj9sHdA|ymE%-G5+YVe~ssEw@xV8_#m8Hbsx-+$_E^Wae=h4Z{`kQL1-!67M z;roH_Ts`K0AHLLo5`3|7TL*k&&Vg^;*WjD$IA`2|YvtrdU0~bI*uBQs?H(Ar-JE}@ z{a42>1=wu=qhmMLWCJJJSDUe01Z<=$d6x=&cV>6h9aB@GEC1N| z9XN+>3cn$`Sy>BmzZFOS-;SZQF9kT+*Fy zVQm&Rx_s=9BcapN(V6AL|K!2*h%HjVZaF;*f3dDhgXDGeK0tqp+$VLD04lxY?)pdH zOH_jI6GJ0w&j-l6verDnTCw#f{~=Z+e(LQr6CU6P|f5eHESm zQu&dme_h`GQmVU|yf4Hzjei>5?T5tvJFpq-qrdDXn;-hQ z`#SclF~zC6@(ek9$fkzU5zlUEU zw>vRcqW>RD+u!(`wx{{wH;lIT)Alz!Z?I=wtnJ5%#~NE~Gukd~h32pq|{jv~db;5717@8F}t~xhHLxJd)P(<$9F1W53hIM!E)@MYF`TDUXy}ecR^U zaCxdO{nehBs_R|b%AcO>tk{cA@nNy)U!J0u5=S3xXk;&FtG|7+sbV+z3KT&)NF0 z%kVYhyA{aujZ1wmg|LG!3tWM-ukB0cxn_kv8JSPy z&eoqUGU6I?B^MoXh49#72bP?z-0Kkggv1B!%qCaduyb-RAg5i%{aEgWl)&qEd{KGj z$^Idq-StayS*ql;G?Cj-BgbI^`5P0-1u1qL{5{BH{**gEv}s31$9ipO-z4(owJx^z znGM}UdS3`X*)!7k)z?biP>bZm)9igs&=vB4Vb8oYG>Kf66A~NQ zw@RiqkR#x`eNDIA`>08I0H2@9214^Gnt>pHZr6`NJZ;`F}fG-uzWY-RlVw0R+E&m>|<&y5o*pnco0%brh; z)V2Iq>{4s~(Er49i*N25CHKf{wsDUdsk%>MkHlu>^zQvVve=IAc8CvvJX1Le&b96s z+A-=b@|^SC1qXd~u{=K+*h`$=LC82EzIjHwxv%i^w3+~Pcvk~{PkfU{9%|X^yL4QT zy^pMJD>-7#b#`Y1a+k!KHV{{7#Gm4~WoB=#2G))v`2DqMmE79r7cfuw{-Z&v9|;HVaBNDfUHIB7UnneW*hpAX8eLY2fOO_-mcWFC>ZD1 z%-Xbfg;Mh{=X3eyHLk@sfM-*8zt&W~*~qbFGp^;lVclp$A0c#PdUjsm2ylsSS)tfD zb7DvFSrC1XpZ^7J3QlV%7{}aO?&@Z*1&=z^(Z+rY*!S6gByV*db07b;JsxP2mHAf) ztnx1Uh#H-k+at+?FFE|20-vl`PYw(~AoDXS(`qp3gqfl78sgFF(dh+I9ZGDQq%qO`#j*mNWqC8k&g$w zn4u2|s)@dq_wipq=8cHV7u)+Q(JQvier%h>f1Hv1v=jHlN&|n5|$Q;~x^SzI*Nw(J%F#n>Augp(#-Tc1zyi_eigF558 zUMufgN3J^g{&D7zycY`23(317t0kBP+|r(YdA7K+Z$9%@`kLH)Q3G$7vx2j4Gv`*B zhUn8Yi@sKLa*SoGHnk6ZTZaXGm(0D;;;94v(DDqwhuAZ0bI?PBj!nZK!xEi|uC5i_ zKxfmjtwbfa<=^HS{p_w+jQt&DZVIj*W}IbS#^+b=`~3xDXvZSPE zw1@p9J?zUSJ|bd65c-)rKohTo=14x8ZSZwX;I1>V$yLaC?#4w1|AxK3(?6a(+u%kD z{6ib`G)Ug9&CiSr1xu8cw#AOVAmf$Gx33EBYg`vW*RuDx+De9W1jnRQEQgM?l{h}TcOwHQw@(6@U911{s3)h9d}7c;)yOLHbH2; z#C`u*S0XR>Z<}{M{Kfn1cW^q5dBi(r^pI~~o8A&yJh)HRl(os1g$m(cOIa_4*KY;y zg|-ue7i|Uir;)?X=fRG_J8g`s$N>`9+XD=T(SaR72R7y!Uq^d=ijzF^`oqwWmH0cg zB{utCOHB12t2b5jtERw;E%-StVy~sOD-0Xy4FkGYsdr6-5?X`)O7OhUuGFmOKcf4_ z*35r0z3|!Ta+K@1epvKrUhMNS9^zYIzDB9(a>Uvhl%o$HV4j0p;WB|s`yOa&4auk zdgC_g{I=YA4cM`A;n8J}dmnvkRrKy4`4Q%zJII8miuvKEU^8xZm0~j%JA?RFoeN(c z@lDb{-PlZ}Uk-3Qw_i$tE3~*A8auU5_BRop$Ww$}f1~{(_A|LCd!zj>_A$Au>gu(3 zE}>*oiYZmOGi^&KIk_{-uBMc<#B%4Tz!avw>9lOvI}iVJX=8wWAM*zI zr*Y?uN#6et`!|j=i`bJ$`gqHZVI9aiz+WLTHU{pAzA%_<4$c8D0^o@BL32I(NU@h} zAlv6iVZ7k?D`uz|I>7sYXOByG@nwPBT4<1yxSAH}(?aY)ez9LbCk2lspRVL2YMXsT zV%f1}nEe3s{~l zki*ZuDtZol+Q`#PJU{xi`@r3en|hS{g_f*^4tJ#+GS6M_%R61~-^~3T>_I!(D>hes z*P!L=SI#Zp5Sv|2tbycXl!jZ7?@=0vYkiFJ684gBQyPLZH+EcB%Z_n9zkmI+sb8sO z7xr&>wu5uo`B(XmeD}hu8=gH{Tr%-kap^=IzauAdj6Bt@ox*l}2V>dEx2FN~fcegL zqo3@ZGL8y0KGe0J_y!jEmKK-i;lrfUC!PN2^kpIa(D{BH{Rr*%JzK}OL$CUtZ7$X) z&Q;?=!V`Ibf5yM`o8zB)7rxJj(E}yvM~~wtz<&BMvix!Q2)%-Cu+w(6F?F!H>~r|W z4EPbt4dz*?lj6$iq2Upmvxp7;A!vfof6-^b3n5z(epVspkHl{<_#>C-KfAvt@%wra z_e5f=?|K_wn|h^8>;MI?Y&;cO}A<)U6<7r1)%8gg0M zOupH!Z*6)&@I-9rtY1BaKlfV4;l{lWi0{FVXlIj2St9$Y-yGT7v+1|w^!`Wt`bKb4 z&OO)5#c}z7siuDnJa~rW8Zr~x-9&s}CGb(I5=`d|DQlA4aszbekb|?4>@)APNBk8V zL4lE#I$QcdN3`x{HO`X`3|rB|{hVB*)5w!0`;_QU2M$qd;Pb*av0nx#!f*DXd;l+Y zhMb74`0ooZdJdbn5V>-or-Li4sxE({3rU^I?kr88JcR-02i6|BiV!0u__Sb{vPopYAZ1bnmtr_oFIe{lJe zkH9aT?pt}wIOt3T`k2)feFxyXTOfXo7Bxki*PP*t*y!~Mc!8me|8(D`Tga_ZBQ_~( z$RQYD++E+7vCCebKpWGVC6{~uKpMH}^U#ed&!L~Dq>-E6xw2Ddk3EY#QwfZx;VbRc ztUjCB*vlm6Lz|9FBom)Qkp;X9pDBFPJmRuO`!$t*MfjlJp$F+tCeQt&+!TM8Pc@_4 z;#~Y~Irp=k(pLwYHC*~lB zGyO^0kbd`}&!U&CV9tt&-S%^M*n0Rz4}OMze&`&FOQ{npPm&1l`@;!_nWQc zQz!zq!dHv}w!`5eM^ILViN`{Gwk^aETX*!1u!ik{8y@2T@c_0_VzE6qkIwl5@&Jhq z_91!H9{ZvD%R8&L<&U8xJ&z5+^DpNo-8Fh<3ibtKxF*Gop4n4=bN%hMJ~Iz)>w|rP zB{AhkTl2q3`I!IrKl(!cN8Fo5e5`}jyGw6;^u^MH@G2j|r{q*`&u?J94-y+Do!{ak zRslX&f?Lv8>1PSH@D177$zr#;h&{Hfx00OZT~z*rH#G5O{3FQYIA@FtxgBe9j6=~< zRV_5yk>qK}b|)_`9#uY{H6rla0sd_=&uN$Sb_8FNai2WiGX#A)M=XTsxL<;odz(@t z{u*i$xx)D7Uby!+euCuX1Mj6qm`pl9O( zBTu!&wZxRWs$ctZ=<;^<>AifTfp3tHFJL2Y${FxYco9wb9C(mCH4PhUO)rkf0orWv zeKMwcXj47%t8Khn&t5CM#58y$7d%p?ysM7B@?I+Z3w#GMfr!1tR`R{QJlP$TZ-=1k z{>kp}YG7wm9-W<<;5Otgd&ygm|KqH)^e2j!lBdoial*kr;oTP;R2EGgs?3auQD;W- z`B}k32Y5Ij@Buh@kb1gMq_TVhkKb z*URtvIrzs6CdT0qwZ+Ka@J?smjE#!qc_1D&dog^&&K*DSBd2VyXRq-eP+FS7(H-VK zoX@FaZ2*v{-=Cvzk&<%b9ZrXWVBvH;2%1T#Qj#Mkr0c zsoycqpTRSqv4@AT5&S7<=^b0g`hS7UNa(pA-c`vL#|w&<#n)=IXTv^q8aTI(tKd|9RsZ%i;Mxr4PUzXk_^y@mT$>g$^xbsTK^p`*@h*IV{I=h$#y1Gat1`WyJKw=~r_Ea)?i6F=hy)>x_%s}H2l z35@5&reXSduBo(R-~FiL5cL+mpQ;YhL)iPIa{p-Oa|zJF=yU(UJ}JM~cHY~?_q)EU zp^s|gnYyjR^bN26@Tz-qmOb0~elhld(g%5ezfl)~LD#l+5VJ$<(xYuP@;eteYZzKg?zy zMZVCcVBbHlGX|QUGieq!eNE*3lXVm*ZY|d-vbV^1@}M;xtdBr(M!5=&9uBOs%&~eN z^OOnSSP%Uo1{>!+E#M^&s}0`qP3W4$r0``EGdLKy!r#P8xNV3@%7LFv74%g&frhcSP#v>hP_eFK(AKa*&fNyp|rg4A7%dC z?4x3HRbh(Ni^(5d0TskF({bDfuhU8t` z$NJ3z4sOZGOZ3rf?g3rj2EZP!tE z%IFU~5ASl~Uw;=t(^yXPeJAg(nby&jxsc`FkTgPNrPJ z$DG^QLZzzjw z^h01gLQU|=J}vpLR(V5Hs`Sv5_qqQ8$*tQXsnBjtDg@?R^50{Rz8{$10n8uu z?wIneg3&Wq@lGMvdwY$Z`2l5W=X+K6Zq47qJNNRu$gZmO9aC=O8$YDP6^Ewe@J>$5 z=$VhD-IrgTcAxzX$>~eomg+5~h1Byuk(dLe)%R}BFQj}x$&ugitioRwR;MOTtxlbJ z47{kKZ9N;9L%Ren(1Q>*kND(i%zr|&lW_+qA@;R}-m~Q;Ug9v|D=xOCqSIOEby9aW z5(o9FdRKV@vLAc#nes)vBlxp(^KkNr@3b9N6Fm*f8*JoY(Kw6ES?G0@BloCDBA$`R zJY)^!5yNu_`}QK%l*B|kWFj6jcrSTJ&wv*ib0V=4$uq=!B>1rXKsTWUD#7>7;Ju7Z z=nH2;!+$81Jx}myI`8M`<}6XS~JQ=;-B_)RN+Jd^@*LmGJok!m#;^q*gr9qD;P(99Lt|z(z}G!kI?rBySFgl=se|pk zstQLEk9QO?G#5Sfd}IDo#QS|}(9ry+I7dY5eh}9uQR**M|6rutyYxa*;!}^loIift zgZ7m1585xizNu86eNgJ}_*v=3K@XLF|3|OnALsw8oK+qi^l<)0p#`!xs?Y+?z2a|! zUb=lXXKG9R+VNOLpmos$WoZH-q z1FDxL&8g<>S4}R?>TyXus}TcA-74yGsLPp{)N@!yl_!UI7UbOYNt~OOK9fLOsbiEjIj^tP&q(~;IiE3B5AlqOz$-Z~ zjF2-K&uoynV?B#JX`RRxftlF&Ty-CKJigRhzL)3E(jR$Gqb|bht8*S->NM^Jk>iF%w9qV2qZRhb@>UMBVlyfEhe+&L3+V%{& z&-)9b@9;ZXcMdw0fQ`ygo_~`u!yAOM;iGcR5uf|L(~%2c!&AR|H9Sm;zMio!1m1Fn zv#IgTbD6(0_!DiV&mQJ@J#o-C;Q!)<9_(bEkG6=Nlor^$rlO>hed-v`vq#mWZ;Kz5 zLrIf3{MCi|(Y;FcPU(Z2dCPlMsmYW%^m-?**L8z;5n0sE?yQB{)zF-z)ar zNvy3b!OKqkwEXeG^0Vw;!aMwo_>@L0)E>(CU9@@DlHhBG9 z?y@A}CG3VzY!bZPltE0TxBkg1<|=EyQYL4M8H_b)MGvFxlgJ>_X+Q0O zZ;TaPWAg5mjxj6DDep5kqgN!6qjpqn@>dn_Bz-mS9f>26w1PgxC23=bc`7m~8H4m) z&I$f^3|VpGG4%Jl(A~epxFz0zbNR^H4dz6NgX0_1smK4A{*O|VHDVbUaKQJtu}o}# zXe$b<1mH0XScnfo`YpDUjAg`7!B^U<#%mq@*XTZUAu_gXU?cDlxX2!Kjx&|SXgdrn zvSQuX39NS<1~v-u^`fw`r2op1O8i>E%hWfpC4fiX0bJ6T_b|S52Dq5yTjY}G{6*}5 zRSwH?b4v8vd8`fbF%`MAW%-yZF}k2hnu^UrMvSUiN(Nr(>k-Z!XNZ-Mp~ic1RVC;} zmn$;1sLXmF{S~?RKayF?9xr}DB4=cr0WC)Jx%IPC=6lahSx|g-itxr}_y+}^VrVDN zmI$<_lAzoAY(O?gOkYTs$M#o%*l;D4yRq&QTbuZN5^z&=lGbh|D# zAHrWuXD!IOc@q2k{muVa_q|>8xI>zjOhc~de|(JJi5}jjR7*TS&)JTZJyT=dV_rkv z>_-=FMYf-TywHN|$;SE?xzQ)cAjLPSw~B0(GwxpGiWbSM%UM?R(3{Y$Ys7GgUviGK zEwlw=(KT;Hl9^ALk=as*YkU?Dmgm1Pn)7A=X`AZ#}1Ad4N2{D`Tqmr z%UmLco~(=Y_|^sr6=J>O$2wMNxea+m0C|PrO=xT7?1i@`%{jqdMckzU7kZ?4eB^dm zhrG_Y+@7)vefuuXB09LTjv}!z_R-D-^y>bp{TrvTR!4zvdwzbCKYs}MY^L^Z^r8#d zg)Hm>x_iI5cjFrV6K5>opM0a!pRUwg;yl)1#wM$(XZuf)DfI54)L56ams^OfMr_i6 zi}(7gR!{xZZ==J%t9|m2cN`CqXBL=i>2G9UBh@Rg_034m*gfw}@QYr%0vUd*d4S=Q zz?w#Hp6Zgg4ssQ}dw@M$a8LBp;*Tc$a}NF#BFoRqMqUBl6;g7Dr&UOCS4aGJ{p{F+V&1tMP)=Kj<_98i>0RJ+v0TMn_Y!T%=fbOhu+9aiCE_u1}!F362r`@tf z8#qiG@G$f>3*AE+eBB<-v?4o{F^P>y3FF#wU{2%w%y+QC=^fa9I5N)v+!$y7kB`xh zjo)?0ST*O$7^CB}FuqiEpg!>B=NzAHt-D9YDLjzim*lj>rp(q09Yr1Txgd5OJ2)>_ zh#rQ0Da`zdo^2vJ4v8ZdKnAgM>fMcA>}E7z30{{ulYit`BX|f-2~OI8ujLk>mYXg* zw#avX_sY|Jub1A69!=ytVoNnY^N?dO`gOstlv|Y9eb7H*tZ^9Bk>@1LTifQCpNM_?u3RsMxEb8>{p6>v&4kotjKN1 z1$_>E?t1vsDBW75x?ib5@3)0=!EW=tjeg-R@5PC`__jj7Pq8A8bl%C?L7}AcUt-@4 zrY||fy?dGdrnA@QjI#__&+n;9ina~=9qC6Fv2lm&u5zSPm!+8W!JI8NE0OoN)0g!4 zm;qZ0es~XKXxLPJcXHFQjaA1en_q;GEcgi*4s9Rnz^<>v{UqFv&7tA@RjNW?wBLhVnYf z2H^Y>1=()P%gk>&B@12A>7Nm2gPb5)N`l_TZxg&$4W)(oI87OW%~ZBxGv+TxL4G+j zc|bOEC^F&^qZN9J&bHd@iotXbk}6#b0w^;UGeYdQCLV%@2d zKzqjOTW3kE0PDvm{<3o_dNS2iqwgcP+a9H?k~4JR#hd**Uz+64<@{pBciK5Wsb($C z2$@UBw}M>Lt)?EYH`g}SE5xTtCx;4i?>7%<95F@c05U7~ct88P1v}oajpS^GFEix5MI)7<^w(eYPlhbWO`fIKiIJFby1HkEV$o8) z@Us0o`_z*BpX$@mTfU}G*dVvMk;%!~hrUZbG3krff$w|ItNW1FM=AJ;k?-c(@s`|l zZQG1}7BLCRTKTTDS(I~idz*+&`ortAcXaHv?TH=U>dBpLm^wBJ_ z?qtib-kf>d8%^2dNI!xdk0v($y=w)|9?mgmOi9U-2l2>?-UAl$+%$^#6t88SS8;B) zbH)(a-<_)6=RqEogkS9lF<|k*Dex|mR@Ez!5%?bF<>E03L!zmv41q*9ZvF2R1 zq)A-RR96KtH3_yNcP+j9Ji*JN@l*XZpW$I~z^_q5q zsl*X28q$eBw_e?r#HfGyI&C!!`kJ>~-2+ zKk%Bi!?}Zi5$$%4Iox&3CqL;ZcG?o4_~K^1n6S-HmvY# zSwcU!XN=E&b$jlM!~niddnM$X>)u{&-}VVz;dTVtXtaC7)$LZE>o9b$Uxz2>dtcLT zxTufvnyO|un62&xX>Z>CwNvKrUo&OF{?$_o_dhnJD;zhS=_t7AI(=?{wsz}tcy)^M z8vBqjCq?_U_O5NYKk6tLe4V!7-MY6GnUg!N9&6eMoiV7sW*r?(x~7dtKORx8!VTp; z@-h6n`9~lRe3QHyN399IbkNB5{hoQ=NI?VivYwWJTjs#>=Z-zjE^S=8`o6KwGvGPmI739gV~m6Sx(NAhukO#&*CVGo z3dHBL%k$yZ_d50@cBvD6ZI}DO=(;$>x#i|=_bg{R#w+kZUGYT07WKzhKNntowquVG zKj&}o4j($#u}AQ?>$_>c?I>8&<=xUQznAg*lf*&omzS#ev5BlmaVf-~RLd)8OOD4c z4zfROb31Ku)w3@z&GzS7$w9H4T*Ap#A|0y9pY+IS7aIQgcm5svP8&;2@Py)JlEWYkMEkp2T}O%(!KYmzU=7UN-x}0mE11)fm=F=l6&Qi98}D5cwv1Cf~I1O%wZ} z?5T4Obv*O1NeROr?miUf4yGN=x%~a(s&g;r`XZa`Me3J_?8uln&x%}m<)xMERVjg@ z7tGG$uVS2wcwc0Ohv`!)GOBrfl;Fvfx_i3!sp)I_`FHIA55%?1f$uGXj}-ru0r8c= zy~vuZ`1obuYgixKKH)QB?X{a@12;bHcE)AoIDN?FKB7oWR{OZA-g}5S8&cA0!r09g zE+0_4u*U%3ZqBbZi`h4dGp^NyZwNk9FUvd0@xD)i_bT{_-yUu z9K04;*>re-K$XPIR086cCAmF*wcP!r#DJT@{q@{;rT@t>S9R#~I1|*FE&6lBKR-U0 zy!5PZnJXEO;IPOr-AAw&1#Wd0Qp)6B?qQ{1(qZMb`uCKUMB0;heaKYW66E&*wWavi zb@rmk>^B=4J zD1Y(4Wi=!{`d9AZ=&+vPzR)s>4L=uJrod;NRnn5BFVi{q zNj#?uM~3?n+m^p`4A_cZs?LawLEbOyGfc#NNot>HQub_m&qUnSUam&2vzVvIGuUnz@7&3pNLyUZ(l%F~ zlUy#5Z{OK|0+~qBr}+GBHAx@a=QCGX^gC0ogOxJjL+iOGW86V(GmF*avyp#rx~gHL z(3iN2eSJ>gw2qRc#)nQz>?Q8yQE!n#z2K<8+QdD<3;CAV%G=arpOf}7iP7YYB~~NP zXHur|d@-e7!7c;c#B@WJ6|d{~ON!hxvr}(v8N&Gv*|HD4j1|A3TovDePnZwl$9qKX zjLkawaD5Kr3XC%yArSQnKwF~sU!}4{U>Jp+>(s^qSBto=OorJ zGE?i!s;(0&s$yMyc>#@T#a#^AKPxpR2B@a2F z=>F5L=>B6v^Ux92L+d3LZL0CT$W`Qa{sRhmXt4FGGU7P8Zjw537YfYs=#w>DNrrB^ z(DCZnF}a4b$D-#pV3ZGxHX#ey*ZKbuaLt1LF$I5nHA&v<7hwN?#)79@4|HGLL8aTEQJcjh7^_4g#Ea+SHoh)LWz9*GMf?d@dWi?-JR4Blt#f;&d+ zt3oBRCdbNpzOzwcWN(3fd;knT0?!`f`(hU=YoyiuHydHm1NetT)+uzP#zGz`t#b`X zf3BBDYIE{B$Ct=gU0w1>oqbID-m_80vzKcCn|5P;RGG*r#d@JXjo7$Xm~47rs@igo z)D1C{tB-4;x#e!I#lQ?7vqt&$O{&eahIw%zJDJ>>Z^{o01pXS|kZUGa!IPg~2Pb5{ z0xvE0?_`W(dom5$TLCPeMFv(0PxdNyVvr**iw3)cUWYr_PwAKE;Qg++5`ACfvES$1D|w;hoAr!wH8>+N z&aLz-?;qrbisXcPn4C}#PZV5`d6ziF^MRMh{S8~e1F{y`H@G)}Yv9Gj{<%D>^UOHl zly2a7N?@_T3fXUD?f&h#V(6ED)MCF29i5+k39g8pg~e(m{}Z+yz(C+AYh7UJ>5>CV zY;{C#`1f-_eNGOj&#%b=wTb@ipk49Nk{F$N;N;imf%<%6Ci2g0;2(u~6xPwTXEE|X zS@j0+B$x5}H%4fnh4C9}{ZPM}EuC<<893B)U+8mmZ3G#c?04*Mjp!F^WUbu9nMPH6 zH=~QJ5!x+udvg_j==(dKk^BAwX6B-Iv-sS0pdS_7c$zr!D-O^;IG+VSR6j>zibJc1 zNdC8^_OZeJ4J@{zE((5u#8Dj(nTDclG`a-*UTQ2h3$V4 z-^^%Q?O?B+6@`u1u*e)lX`4aQXj^y>gQhh}4ual#0{yP%eg8WVoT!KPNL=OD7{AaH zxq>64N$OW~n&;r}124-Q^1R?k^!fTKQzX~t5G9fe)Rg~CXSuB2 zWYI3M|BAi+R9T0NHM+LWKtB(Y09)4cS!DCy!RA3|r|}Hqaq&&zyV*w#pAdK-Pt-3Y z6J2=)^!g0=hpkI<7Qc-c{Ds86=!9_q80-Q63|@^fZ2RZ||6SZ8R(fOLJw^7I_Rn8b z{Swpig-=W^FPhCQXYhHGwIDbwaSS`=5c|MGnW_ZC_||-E`x9%wm+SR?z;bGY?-PHzF#5qg2UK_p&g|Q< zqZU6@)#0&VGw;BMY||qT(uO0TTKfCG$66I%x(ebg%b7xWQGu!OkmUbp^s}xk%lizF zIT!h;*f2!nolI8ohXPI+6@9Mqp%U2L%suv+n%o}!ePRP^#N1~-X}8gzS>)VtU`}KF z&u()H?Cr1Oe`fBCu|Fg-jy-QJ_MdxD3GS?#9f`5OF%qv|)|Bub0)tlKI@DK1>Lu=o z#Lku614bN1U@c>inAGQW;9N+aNHeh-hbZKCBlbQq_s=m0Uor>64@%tq&}3rn45&97azxa7#YGZW% zWKBvg2BAq3Q~xC2B*qHkNP!3K8yG{I5=;NL@NJeGZzq>A?Sl_;W|MJ5o)>!nV|?NI zs>t}>gJz0-_!;`$n#lMHBlX5u!2x-<72Fe=$oCtCc0^+Ot47@Yt;|2)B2Q{$oVmnq z@>iK!Ci9-(9LY5?Tz(fu+QO#Eh&OTrZ3%C#L2o5qh{V=h4G$_d7H-yBcli8wU~{%9 z0-I^o38wXC^=&CEkevFTsbYk$wt1I+({VHDlh%-O$O$J!s?s#h)j_&qZm@ z7TSrz_=)zg)jbCPe`XwVu7CzNGN;#!qieqfZ)LpVBWu%$!FqssWxi#v_-8pYO^xK;kl62^ zbDsK{nYDIfuG3aG&8Y#)xQ*^5GM8p@dl1*XY%o`|W^sP{$oJcaaz6vV+Sq5@OC*+y z&}8zH2SR-F6W}g5hAuIC8ZNxawj z!hu=v)Jj0&!ALtoCuN)~JKK?X^b!lc8Cx^)N0Tv#|AWxEPZ`6W>yF{6&M`b?j6rB# z_c6$KrT^qTxzhi_&hJKPVkY~pg>medI=j(I|80y%8)9+p+*;_gKBFv&->59H?65kY zW6#mPr3B-tv&>xDNnImy%CHAfn3wNwpe9{}`TrcN*(f0~|8v6@%l3zjU z7t0>m`HaW{qOt*ljvVOB&9PPF3(%Fq$a)sJj?vD0YUKPfHL@NGkO#=x7WytULDp_& zB5|s*Ynb+{x@X1C)e9dg|646FJ`Z&^{CDHQTMIdn^SEjhkq_t;u`gZAb<6D{L+FM4 zfai>QWCzrV?BERTI7ME-J&`-Oyq_8|KSWN$`$q1nRC0s6yyMEn23TYNL8wKJ$zI6A z$V%tCIY; zF$UZ%lfg~q!B$y0`y;*~vTCt?`vSj$4E!%Ekhf^iv@0;;41b^#Mmv-k-wa^%Cj3mX z$oRy@FeAQpCNjGXjQ1i%WKtI?C)C7{DIZ^1?g<>%NufR>Yl#mHo)Ph}7I-z&-cH&U z8H;C`Rx7ZRT-pLZP4Yqn@mt|rCEj!8BayYt+yfs2JQLIe&F~k%Pl~uNp%U-#azo}- z6`AW?5? zo%G=-Jp+5-my>rMn z8yMpvXz6ZXr}JHM`k@bv_f5y9xD@AG)Hub6%RiTXh<~fVTy(g959TsII^R&hZkH#y1@p%lKrxg2O@&z2ulLW*j>x0&B_rB6b5p4><#dD!e1h zXHeEtWDQM(7W$#ra{fADBJTmTC<^nl;Ajp$x&PVqTl`;KzwG~QtJD6!9p9#R9`MJ& z#|@jR)Wppp*E;-kSGlZZl<+%|oI^)?C{LwMM#suCYv8%Bkxw9xlJnkq&baPwdJ*Bt zUJrNlT}{4QL12_<68r{=L{~Lc>a#Yr)}T$YvIDE#ay& z=R%W=b;NZsb+QKtZVO)H_e_omdq`+j8+h8GCWHh>ghthY=ks|+@E5x@1AjZH6THq+ z?4dEH2>q)0O^*rWn6P=c`c%73<0}0*LX0wLOX!lUAE8MG9z&C^!DDFBK8oP6#M(La zR!4#8WTl;jLWdcf&UF#(>5O4L*9~0Pb>g&)N5;8^y2bLFBIA?2O4e&8zt0%svxfxt zWvqMIBi2(tMoqTKJ@zVNY#r3gnB_g8c|wcF{ISOb^1s^7{GrDLFJtv{^|Nlt5^jvs z8EZDi>3lgd&Jcd3Y4GC1S+65luR811$$DMMT9q{$9q0W2=qPAmoEhhrKN&(d<@SEs zE%(T4SLGg2U+*Xw&GWLpL+n|yFXywiABUdh0VAPlLf<@=cwY&7*4r{xfgjg5fz|m~ zViqvhqnLN0X96psw*o7nw9 z(17HVJtp99YLnj$Cj>X3cl`G7TWG^N_N+|koP0-cL-aQC4Z#nIr@`82*Z|xf7a9!Q zMBgU3A^TQ@&S{}jei z74damfIes?GHlsTHobz)26;~}PX1}h`LSwADAQDOW{A1u%SAE7xQ)d|D-NA}4|MYu zboy3o157m?Q!`u8=hrM)WeT=&o^hk&w)Ap`2cv_QeVv$_&Gp2mn1KD!{PAjdvb{2R zc8l8?vXjpkU2yR?)v$gm1zoV{xkbi94A!>d*-AK1O{)=o@C8-*ct85!4d{ct=z|yT zx7C!avegVl7hD)`$$tY~upM16acb<@=zT>O3@%;K2g`lY2a8|w-_r++zW3|&!N=&2 z;N@=a8$1jEhuWIOoGtu*Aqsw=(r#Nk@kFl2tudUx<3VLr)!)14<;iV(h@Vq;e@B)V# zUdR4YtSC1*Z{_(x%D8_9UamovLEsr&I6gb<#U|hfebg{(RbN;UKS1Iltix}o&aCO= z2Ci9uz~?9#L_4g>^UNEu8=DvAso^?RsabeOPB5XVayGxq;@zAB)OEy|K)(kc{ewHQ z!-JtaiSP?U;N@$GGc**M^FeH)uh3%hJxbkn`1<}WYkqA?_NnBce~9~Ad2Smq%eOE*bHa;`U83nVW8TitiI&F_CpNQ+#rA zs)?(}?`p2Zg2WdLfAY>XW$LkVN;YdM)uhs|w6{;KVYQO8jW0SMdWm!KEW3_m{b{!|?9Oa|y3@9KXktz^DLx zm2nq8Unbi}EN$3v z8a(Go#w=rze*D0Z9hUf9-)DW{U=S=~twm(X=)+lS5|3=tBM))*?t?73ukW|NjK=PY z$dbLZkKuTOS(K7A?#o(ovFZV>^ydz2$Bg*5ccG84hSYkon>WF`O@l_}LMy)o&AbEJdAtA1MYs9S z44Dc|&4IRNmt35DWTDtdNt=aVVRr{#c++^|OOqd6bovur#4l#t^G#ZfNm)5tYy~8C z@#p5`z(drv0Kdu{&A5N>1GXB|3zf60W>n5bFYN013v`#yGe7rK&L-xz=Xcm^wlb%S zW@D>^k4n)6C74Cb|Ff)TOC>pcp$q-zJvDm-x+RgFOMI$HQ?@)H`Uh{E8WtUd)Q{hn z)`E{mO#pgQY*NEfokfUy;^SBRg#z7CYNn`ZEoTP1!^O;(oxY!jetV%wGOye(`;h-CpgFA0hO1JwQde7|eZuABxS?6z_%(;9&xa3fKdw#w=dt-@B z4I^&=2a-G=(-yI5LineDZ2dgv^4q_C{8`yo+RUQ@A5k}NfpU4?Z*wj$Vt@Hpd~wcF zcmDmH%Qs@jGoSyo-y;3XZOggb%=gx+sy6b=dGDyi_I#iEy!M>SCjMtB7Jc5oDwivN zpL3aWwsz`8_#s7UJKY0Yef&61%6~Op|A2Rj#-}=0tAjLh0=mc#=sL~46ROfS?;hpy zra$FeexqaFJIT;OZn{p&`@C2DJaeQZYk5+~^LuH#l)jxZ?)T8g;455wvngmX+dVc# zHJ-^bF;3%tKm8bSyo<3DvXOqg?LQ*lyTH9-Y|>pOyQ}!m=oUI8U$fOye6t!p68&vg z!-44Uvr2d^zcV`jqa*zI5=CGuuqgge2^Vt@xw2>8UCQMRXLBxJypVHQ|1#%tW#ztG z?$1%fi`h$-ey)U9^i;y%8>9rwi4T{aebgE2kd`G_jBkmWw!%J=1;ZkVC0_dakPvintRcpr9 z(ucoDI9F@|ez4+6@1w-eBrY3%DdA~jhz0*7x<&pM-AX&qRqq4*$EVf%h!S1{jrML( z!d`ee@69|vEfZO-z1cgSI(g@XSpT$sw6T`|tK8v-*jp^bF~Rma?1abl=3&dJ+I_96 zMH4>7YvUW(i%YI`dA5kXEgHAl_6~auG;<>P3`E{xJ#cG{#ELvZ{4h&4enk7yh^wC~Qa?@(9_@F6R{Q0V&#QVvQm-kG;qSHCS3-CS8F>82k<~#R3?xtXrY*)x|X)>_h6doFU{>{d#PPV?SZtI#7RdJ@O59-CgY-~W7G$ta$aXPnf} zoLD(KrfHjfm|HEqq3H#CBKNAR$0Tm&*@Il=xqGX}%$({rmA=6B_NE5Ah4%`Zb`pbc zOrlb~t+ePXz5|@@<9>Se3#IxoQ*hyN6YwwvOaClmk$#$jO55WG9Er*L*X_71Z z^%~}79P=Xc(f9UoJ`-~yHVx~4j?G36`_w986?FXDY*lRbO-;89g-5$x&OMRyPh!-M zU;L@lDZ~KGucjyz@vp8n@MBB3s5|Vv-yN2-y7(ANuF3yyymXy5uOBacz?FFE^XTJ3 z#$9YCW;!~bh3FS#Z~S{P)2+m4%R-kVWAGr~ccKH&`ZoWO2@4!ToR?($!t-|>zvMUk zzj@pen@;Rb^I|J!qu=$2K8+YJJtaP!j9bSBPUtB)J=zL^f%kd%;7nz_oXO7tE3qYT zQS|Y1oycr7iQ&Kg-B9_4ch4E|De&(~ZXg%aF>)O>3_IjFM#(}Bg#2FH2aiNd<76K+ z(+nJ?9cgba{?55CuXHHzQ4PV4XJWw3B6#=(8{FZ)8n#FHtrLIvENitWCp&ED?>WzT zFSvt?;SI~a61;|{6T{rfxkSz~#23aFGjWd2zH$!yo`Jp35!T)e)uC;8_k8&%^koh3 zft2K9%M?dJM^{97!R>S8q(d2i+oFr?UHMTCO9W;$~i@J zZ}MIF-dS^k>m$};v`^BHqQAJq12lKdJT2LGAN0qvw5UK>&|_=K)?YpMINTipigPIs$&lDa>4tNRgk@Do?H_bheCyVX5U-EX?p zZK3X1x4IXoJJPK#K;6M^b-SqB->vQy>VDa+?x)nf-mUI+>VDd-?w8cP(yeYkb-TLN z9i%SMt?meQFLbLrM%|Wfb-$tR`EGT`se86t-5;s@QMbB3Q^%Q4_WUQn=Q`Hb4sfOf z{Po_P6O7;FoBig2e}7;va+}s0$r+?tT`|Nf%OzH#@E}5O@gwOa&kMcju;uE9IJ56% zy@qZC_i1Bq`rqEoNcr1)TZA4z06hlxUGPx~F=(R^eS!%D4#LsG?pT)ep8lIMOxh8E8*|!nBT5<(+Rcz!d)c(XU{fS{Kuj#HvX+y^7 z;a%xl9d`ZEaam#_^h4IAj0J}zgNDkO*5L2hVY28s>Db_`Q0Jua4VAK^vEvyNv_Q`8 z?{!@KjjVa>D_qU^=y|Erkz<|hcxiTCw#AbL49@_=OjUDDV~u(el<`8dgubmFMMumzPs1>Me`}y zjIo%u(mLa(NKA~mz>NGwqC+hZTC;{&WU|+5?;7xG6FQHr?XQ~>2_R?XL1Jzseb;ic{+TLeeDtWp$(eFI!R*Gx| z8n5%cRXnFuZ_dw#SBb=g(Lyf9rBcMkm-uI{&EztF23fMeQD7*26BtI}=SCL4lJR)C ze+7rovv$Ry)OVeYoD13nhc@%<2Ii&MLEIqD3~3^Vrrnjq?JEJ-O#1mLBA*rBOMPxL zGUzm9&}qbp8?z{XO27P>%Kgs|-j=o~eOub7^n%4Rb0`a{PnXWGK2@3?b0_f}@0?k~ zGuiSSr`7PgwDK@y`-4Fmr$Pv&#^<*noAgi?1wYpKQ=IqM15By z`$yXd$xX=KP|}pp+;Dj@c`Xua8{m6oFHF!!Hm;QQ$39lbTF;X84L{-?2`(VxwcO&~ zD0^`PzilpjmJRuc9;Zz3_Tl#+cTho2tu?!R^Wj|+7;ij9<~<6xA;1q<%@lZyqLfh@ zmaDa^xQ+xCkJF#UTx*s`V6&3n>z12pw*sStPFM+?c5yyt<8t#SeMwC zbx6guNo(3<{1*9jI%m0i-R9E5rY-gy&TI;Ey^7z3T+^8E zsT4T_vA47-=!jTLvo;f-O<-9}AH+vX=p{N{S5s9-!AsD-rjODeX_5SgR%E6X z#4GVvk>?O!$WzFn>#%j&%=IyRjGBkKo!C5;Ay+K0jduGRl*%O+z=Kg1rRHPuezqaY zbTbDlDOyveZyxio0NzXca^^ekW$`J_CZ{ho%{?Za`XSUSO;0$S+?&t6RLHopo7gMd zKY1#(JdJzNI*D&{@^)nJ(ADOlinAHoHjTJx;xFJtCMvN?1UEz;x`RGRpFi(`-3Qm{ z@xOAEAcI*<-2MBOE#LSa_3V@A5mH?eL;NEBuUWQiqvT@zlren97!>gH)UVBpPXF3G z^MJ|h`VsOFGrYs^%ZnTPmlwC!0V5AE5IH_;2%EKpP&zOO5RsX7Ezg5{Nx`d?%Ci==NwAy|hGvE2AZ$*48eqZitoB+RG2aUQhPPu6U?aTW&V*4w; zd|%McU(ta~p^X*hrX@e74U5^}ZBtUy-D52Ko=Ryx?khtm>ru>^F?tmjA5u|m+vvh8e=_SiVuB3`|iJV6dYRasO`7HQ9B7a+Ow*oIm7G@PA+OM zpJYx!7IrYx1sdQoL+*+wij zBgSD>a=R0{5g6+ZN=}29u;<-{KU=`uA0HoL9A>zK{dc;Z0dfFI94E;~kV#y%rO?NP zS@;Kc>N~$=55W&T@F34Ls`1UKtm%X_cW}6IepSlW@{UEVBcInA$34BF!K{mV)#4E! zX+L^w$vgTYzSP9>4C+W#eO zOS|A*&2gjMfj(KM=rDSn07i|(s(k6^qnv@NzK!YVk~@IuDQwsL^jlz(0Zi(#p%>j= z#^DU|K*-or+6AsZ2d-P_TNI}6n?*-w$4_2-)>U%cnghSw(+Oi@#_fws@m0lHeB$#{ zf8aZft+eq%)pwY)?=nCA0y0jKn@Ky;=1ZOLR&>ft#HXra5dM+qnTl4ppLBx9JAkW8 zwfKt3rJHKDg-paPu_4E(BRBY#ei3`eojij+3)2i6YueUq*l4Kee0~?0FJ(O*H$`B+0GQ7OrX%1z zEotCUkFoyO{^?=A;OEZ|e7CU?xQMPm;7tw~*QO3~0GoS~ySI1yFAnr-+)7LW8L#B# zC|aIU>s@ZGO^>no3gL@nK1A0VoeP?1a_%yJ7hi$?@T7eL;wvM$OGNjOZtmwh zfQ~_Epybcgq0NF%nVj=?U>j~lMqop~dKfu@3%x35=YY^CVlY2h^6-i$IXBs}DZ7A8 zMbC(=wg>%>j7!5VO(}@pV}1)R@_r)s-%5ucGA9I169+P>r{t^LM83*R_MC;A?S+)n z>$6HOqW6$9>RvTIbdhK0(YIsPMC`2+o8JaMQ?ctz+P{W8C^qt-taV%jSKkIl(|PBl z(Dka$*l<-5y1tpd{3E(9Yr%&8M*~J;k0d^%Vw1CyJeBi^A1!uC>sA6c@|5LJRPvN9 zkbGrpBC*5wG55k>&L@V=c>3^_;Mo6kthsa7i8VLt>R5BF@K$G3Ww$fCUnH)Zw`k(u zjWu@zYx?R~bK#8P#9t!5TrocW;ydO{IO3>b{tiXs#|=};4iPiW_|DV+@4wTU!FRAR zm2X&8C0NldK3W?77V_P%i+_}mer>;tZlJv!cksUJy_0tBJBNny&JFJ1cX>zRo;`e5 zw%1CWn0c=#HI@^RxM!EpJ!V)XW{kvd>1)Jq5q+cSW%3WPUrOvVkrQz?E|9f)#FSRU z|F#`*y?yz_L`!(1?%6Y}U-5g`o2|4pa}|AzJd@15h0y6S+!q`2m1?r@3GgpnNyMH% zg=>mW!4@fr~>UVSgnyiemS;fVfbc+X6!SeY7`2#Rr1+ z{PO>8Qe$4t&E zUT`5A*K8->G+=>!K-d1KLATEsyyUep4HK@7SrxQ$&d#F!4Azd(Ubh&Dn>ZKz?mF$2 z$liPPIt{kkuZ|;zW-ih$@fW-H^W>+{)9bW5gS{n;@ ztu>-rI%R2h)!dVy zBxn}w;l_N`G2VFocai5`MouPvM2p^7??}97QKQ&Aw9+q$v6~m8Bxe$5cX-n(hv?Z{ zf6&`Af3?ctlJDziEjgvNA zw3$kqhyLhochcrzuK2yVEPp6&bkVkxtHkV*_9doNI{k`;2JE$SUV)DnU4S2&zLp{~ z!FZv?z@}17@T@aw8h$?>Y#Z_yV+5FUbQhqzhj!d2@~u>$hR$+;-$EEe$*?_aqKT3vfTWq*(Na zEmB9EoC1E=G*d6%f0Osl(k8L)adp)^>(Z4LcpcY@NMXC0%xd8%D66Mt?N=lR-Pu7a5C%XL4!7LK_)(bLBnDP$ej^u?)S z;tr0W4+%+|9yo^FU+8b5f?S>cCo%Sm)AWfUbCT<0bE4~sf9W?iey}eY;0 z-Z{s;MBpO*5ZenUd9*83n{H=5q#sqRRn9T4i>xOZx0Z36)600Lt5#j~jaBs13of5! z&f{sLYd;f5PX$NtgQlM&=_m94z{SpfCehCt`k72Wlkyf$JZHuplD@u7KS$8d8AdX@^HU$AER_A2CI$y25}lb9bn^D|~}1bmze{-#HbR&1I(;ua-fZGG6Gd#u#Kioy5AuFMdnPtKQ7zZ zpvG%^`Mz2D$2TM&T;`I#b8PHW8td&4|BZbJm`3)Y0}ku32y8XrlgGSeY_=J&C3Yh= zC7rNMi*ZI_OWb~si)Rd&|1WH>fvthBvUjK!&r0@a!CCC`HQ9r*h&gLZUIUNM-toV% z`&!s#p+Cp~Cq;*t*OcxPyqw-PcOv|PX5Ah?K=#FH{LfR}lZ3}{5vw%{&nq~3X#T|i zUH{i#|DPp(qrGeF=3Mv(iQSwE{~%|<1DwOe{?rEl@NM`s%dp=$R^ISC2mYGLgE?DD ztgy=6*nQoQ;}n{om;O7)T9eC`srJ??eyEh4X6_`OPAPH`v7Zq-xX^CUEYG27!zV68 zj> i?}dlmgSZ?LI-u^nZyPz&EFe^B@v3uCa!en)@gT@Sckq-NN}{xDZnCds=t z_Man4`-EKTBJUrGywBQ_ z`=8GIB|gBB_}~`$V6|jBKLJ08Ll&@Qr~CL8`B+TND&+!ru+b*)&BiZozY){ByIewJ z|FI~$d&biz!LNq|w}$=JvD*1tITL8`6of{!xiXn^;gtk`I5^)_G}0YhZEK$(_EY)| z*-qK-v$(&7Tp&8QC1=Iy;Mc-I?D1aL#3JS}mvg6;HaVjwX8@ZuoYgts_B;!|Xr22$ zyhMTSitPKkO9|$Ii*q?=TiEy4v(HDLJIOv;LLW5t`4Q~%rSteVe{4rZ4BcBaMAt_TUn5UH0mQ;P*nl`6l~3d$_UBFXY`_yi>|MK6nGUkDsio zly_J+Wee#Wc1Nxf-j#j6M81D>w(}T##tFVJ`@Hajvd?Sm^ZLlE$MPn2o2yM$4?#p{ z2`mqN)-k?_ZxmsN^Zk2roF~wQj=+{)a+XQXNa+teNV32c`DhTF_B=h!H4&SjpoKP4 zS+9FmSmsOv*SxY`>62IH#+B`)&X^m)e`_cHAGawznfRLq)3($}JM#VL`-gzVnN*Px zVE@UtJ$zdS7FL-{o|AQ`%eR3=5wMVTSKJ8;!HI<fSRdLnbV*LNw`-a=V`7x{T#?Q2p5(XbUf*Gk zZTWJM9iP%fd`pw?F->Mok#lKjivRL~m>RLKYJE)ci;YzVe7%;7e=cnqc_8D#Gqb5h z&i2?1G?tz^QNHMQH@TC<*55v$0~oGfk|Fx)8qxnbm-}sJh=F4LmCJ_!YF4X;9l*Qm zduqw(a*!LhzNGpy(wml?9Afsjrn#s6=&Tlj=iOPrMtZJdoLi=ZkPif)%%hOk#Wljsh+M!22BZ(8OYc}uo4EjGtFtp5t< zQ{e7eaAPNPyMwiPU<<9f0U-6f^^G@IFhUKGck5OLYJh53(wKo(+Yf==C z*nW!L-~FZ@p6{7@Xye8x&QZNh&UE!w=kQx9oY|Z&IcsVqw4>9WYs4+iv*sS2re&jR z^Jq`OCM}QmH>e6{X+;aspR@EQ{U%j(+GQh0n4QC&SYGg;oQ4jjrZJ7Uu3K@PUNWC2qjTF#&<8m&lAVUGr!CIb84)1 zRIz(rQWEj8jMLI$O~6C}eyVfSB(u}W-0#B{aCMjdMB&{!K?!@%N3@P&Jxvh07vnm2 zBYuY1)tnhS)!z%by6>SubHvwwmX=)7l&X<$pVEM*F#9(VB4rVKPOYh_V6w2e| zD|q5B%iq~m)wg{Ec6H}A#`;^cl<-UDzU>#LTK#AHTKocw^OKcufc4kAQp~$=zgJh@Vy;~BJvG+%!TJjCZU3jjTTiY*;#@pA7Q4NiWxZ-2T+yrc=gZ=1 z-&h`7TZ%1mA-^BRHhJiZnA)}#$+Zuw1AR-eXA_(;5x*tHn&R6I4ir)jQpS8W^PNAO zt?+)lBB^#Me!iC)E4+nDtadxLhB+~nOInm<&;6##B@f0`E~)1EB%Uu>S>a4F#b`q- zVr%bS*1tBV!c==ZzrR=!SNnq%eQV#rhU3`sxLSEWhjIhomv7$9^+DdhM3Mfi;yk=f ziPMIeQ#|jeeYN{dX01?3@yy}ayGt3MJ)@AH*ktl7FePX|{@$9N_mPvF?|R-hDcb98 z>v}Go@OaN0@ahk3)w3U2adYj`Ws_?c>`QGlt(aI_O}l?sKB@NJA1aOa@|?gx`f?A~ zZOew%E-;(4$viiS|F7fMBYl-;?l$)~+OFpN@6zrUwEHgY%6oF(p*XaA%mcK^W|QZy zeCwagG1_0zdyk^M9CM84;_58te%@QOVzA-I*q|oXIbuxP3vEZVk} z?w%nm+DH`5IOE&e{rj=GBovDoTMY=4_j_(qN;|er&-?lO{`viJKey^G&ppq1&U2pg zoK?HT@43Jr@rudJffWAFUVhiMwe(5wDRVN#pm-aWXKfq9J^3%=f(yB~fqtG?k)iwg zqW98HEbsjdpV0QHDcUq(c$50e(|}>0@qzBJ#HUa5Tz*5fdq4Q?q>$K{#lHog+PX}u zQuqJj$9MeKIj&XIB`W%cxuj9wrI7h@j(HPhKAmP>2#ro--Xx*h+0VW8*s6le3zse1nb=;>1>DfrZxK-ppbzr+6)=B zB|hza=5TuCisESzx)OZKn95kE7zSy1%3$pQ=;+6ZPkFZ*$UEF2v}^FDtQ@vYo=s!C zA21Hmy8o2pdg^dVWQ<{;cMSLBn`aCu+IHGrZSb^+@7k-1E%;Fe^>G=O?X z`9!8GDc%FXvguXuifsiu3qI(kXr^KfuEHMt6XG9)UuL)U@`32_US9PnxSa|wdK7$G zhaPiuux?d>-vW-k9LeBZ)-5Y}PLe)e@wO7D1Wn*v#-js1R3J4#I27)8fd5@Q({aCY z`Lp{ymoLEsU%L5D(x?u^el{@tvLQbB>X~}~d(7nsb=6Kk7bx4t|7ZE1xFb;3Vz32Q z^54h*TYn!Y8wwxE4XE4h#*fs+T>fymbK7Hq#BD=X4B2KPcT6VubwSUp6WSquuL0*D zaW-)+Q%Ufe)I{yMe+syqD{tKPFn<5pD>Z2Q#%-}Vn5Q_rGPXXRmvIn$dySg+R&Y)d zPwy4Q#W3TGQbi7slbbB?cvUdOd60z8sh2`+n)>e++fxPY(5tTT1jL z{HjiWN)0LU5_KfvM~_@1w%~Nt9LFP${-vY#_6+*k9;xLMuFL*Nd?MP| zKVv%zuOk-4?JwRx96Uiz1f3`TtZ6Y{*ko-XyKkST@cL>4z!2A)9H zrN*{7JY`i$WGen#KJ2OI$tQEcnB<+ZDm^kaUe$fM1ilRLRc^y?MdUY?I?+7OH@iBq z8%~Bdui|^XKB=kUYt21Rtra+8-$wSDd;Pbm5%53#Hha~U*u0EF6JEaUCch_z4%{_zG^W90R zi~YGlJA=P|PkdD?~lm78aw0rqqK-N(U!fi~qmGp_Td z_{o~9GQFRRygp;OCilc{@8*BHV)12;S??GyV(qN8Y>uSwW^iX1v(91UEc%!Jz#QAZ zkT2IQIvCL%U=MSP?nv|t;0^nvnkr)@{xJpUHQ3{6KF;Z?<~x7;dPns3AUXjWk$BE&2dZSn+~6SBfi@9V)=F%w)FG1js236_Z7Kv z?M2ylSe+6FxB#19g=#O_GhvEGey!Bn6`IpGVTxCL9q^rXF5up}3E+|cQi~jX7E`Of zpDWj6zr^^KIwj99qx;x$M~gfins&tbMp} zkI|e360b>rr_kTv1h1z1dN4-|CU~W`LF#1gdAV2iB`z#~fs6CtVluc$T5d0{m45W$ z!|i(AA$x~|jDd&o(_tJBF7K}{GUeKf+`nAYPhz&EhP?~g7yRz7+FhjMn7Nq^T*Pzt z;-23!Ke8rF(oEyhQ!PrZ-iBF;6q!c=5BE*9Ws=(MjMZ$OlkX|yE;lKWe(8!y$Kfer zcVf8egoe@Efp<04e1kH>&G)seC z90`xw{n)=0)j}8O6E&eLAJ?VM^vGSiihNv`7=5{3E;!}-`RTjK+mzC;4ZPvAp^5$0 zG)|eJj|22O37m=UbT&DibXYw~zsX8Nk<5?uT+iaHRmACxQ+{@eb;T?^U_wf<8J&+= z$3b%HIivkHlgsSPF0AU;Y3z5KiR)oYO_4T&v8Jwl0eBQR3Ybs3^M9wqBD_$(KY0Y> zK>woPNpNH4`f+}ncvf_cvk&#cM6P%J`!eqZMsoOjJNd5G2ZM=kxv%^FZoY3}oXRJx z|C_$Ae;XKt)?Xv`D&x@FS@J#V=l)FcVkz;x|Gz7C?T6@AUc=wg^7;t!=_;({32uo! z@x*&B4`xjpglr;fyagGJY|T{dd&&tJ_B?&6vcT9LI@Vq}~8>RDVg zDs>|RhSX!KsV!Y4UIp1w^7TpFirl*^khl5YRcqTp@^6hocHd|vufcLPRra!b?MnN{ z@Bp#@wxOF`y*zjG;-e#jBk)vro3%>(3TwgDC}j8(sx^3?zFgm~_}h2kZz9jHhn^Q5 z9Zu{fb>hw7MRT+*o>=8?EZZMB^Gdz{s9L4lM>B~Z7P+}*xk29>uR_jU1uTu+KU(>l zNUYzP+^_3B^0;9;J>9l`} zm|}IM4Os2y6Oy+j1Lv4NSVezui9N2(VAB?{7h4D(C71dV_BMh?86VN>2|Paqo@2Vt z@>eqacf}L@XQ=0?FOnVISAMD@;~S9mjmZ3Q=se@eK}tPsWW|B~J(oXapY=(vk78Kn zUiV5hHOk!UAm;0HVxZo6l{iM^*)-;)%s&(JSYhrq@mvqSjBAf)1>eBuR`v!OxOxMf z;+2&K*7yYCzE|pdy_S`^n}0$Mt+rS14vsuFGI-IL)FyuBo1mL9>@$v(@AFSA+vi`z zu^M`aUuoPnjAINj!k5^4iQK#T;}tJ%Vt=?(aL8DT{zt|;lX;y(F3U0Ka~7d{!-f#F zmko_1m)#nP>f>n&4+4KZ#E8f|PXdm;e0!fdILO%A%gD)DYZ**^UZwqUOENr)yz0a; zW%FO^cag`my^67YYiX0ey*#9kt&6>?0oZQg7_(Agd=-6PC~yf(`hL)0&@QpxYkf3O zR;TMYl$JNkcl+NeZ}!7eqs_E0v~1Ad7g||%!8+z_Zhtz}hF_**8zVt(6MCMq#hCk>Oj*6vW|3dn)v3z%AQ~4fU zXU!hRcL3UK1ghhxvV4U5tKMe8^BLXDr?Sm{*yQMV+HfhS*fy%sV-=XLJWtv#*T2K@xl22%Xo99t1kF#E}ny_lYTY8~88r z4&-5Vi=F9S-gl$llw1)Sb2*k1N^*NkUZ@A33{*f{UA|oQ$q()%{%Ds?S+LWVxnP$~ zYzTiX?^B8FZ^=zz~?Jy^!QVWmlK<=55MVp&b9bbGiSPTX{(cc?e%?7(1~XQ zpTH@0An|Kl&tL1I2mgr4ZR`KglKL$uPSn}?~uJu0rFdp)cxSTTdnFRV^c5y z8C$hzPr{dETqLhXlyQ-{Aa(n^@RhE)j854-xn%G!4k3(|a&g0llteN0d=8`o@3vT%5fa`Jm zuVtN-`F0_G1HO0Ug>t>-s92hJ&{|9{4|H0D#c={jj`HxND<1hLT92J(Y`cJ;Mh4i`oG<~gJcXG-u)pJc~V--16 zhDj_M{mh(54mkSOSi|wCa&;B3>V0boxHi%^sXwx~{9(N>7wF>~*Y#2QHVR$2^uMC~ zR= zr!~*Dj$!xqcNkq~H04_B^Sy1KO7vV)N8NX=9-gbTk}sTGb*B@RYZ^FL$kn1i_ivDwcJJ24 zqLlIdZT9h2o5~(6dHfLDiCjff?om>Qa%3(~aw;5CIaY7oS~TXKTKw&r$@Cpk^6Yp z%)1umJN_VQlG8UvMV`#C`|wv6-MWw5$x-ng1>eFmI|qsV(HuR*9J!vyOKm&hw;zFn zZ4! z4q~qUy|VI!drNPM%qYD%@_S{)3$MnleBnTA9Wj^5zUf?>#=Ydj8yz|PzlF1jxftO0 z5`Loti3$x_@MpN0INT2vPvvKEp2|;6o=V{-QT$6Krd4Er@%ioI_<-Z7D}lGultIC* z>Y$*591eGKyb5mL0naaSI1^hd$8+2}D8YH7)>=8^{(;Wv`2(Dn?r}Kp=6_l;d8s+( z4;tuPeE$IF!})`p8*`jai5-7s&;V!q{ezruGIPdz5}3#U%wVGj@MA+QMe=BXA15y00>4$(3=L<0J4WdeXa$ z%56DDqb~-t#yT+=IVYWKw1*Cd^_btsv3-hf&Q|hiUm4!&|0DezG05qB09eM*uUqNY zw4A}t>)$PaJ|zFPJReUV@8elJ{Y;^s(|}ppwGf-N1^W9)>BZfn0|z+k?i=LXl$YSV zG`_!6w|@e!j5mH!J~y#2e}+Z_tj{8g`j|f*MvBnJ^$(g^?=@m#r!ba*j9&jI4Vb6; z$3_B%B%j0)*CLB8In268j&gK6bq(-8d3H6l%lL+6o$Jp#vKCA21X^X zvc6r))%R>&%*(o}s=2nts(Jc49LseTP)*S!=JO@q&p@X97#?P0jhLpU1XGlhpdFl? zChw8tLK!vI?i4xse~WEOe2%b>n4oEosejM_jfx)fADf5;H1uynPuvw^e9Y*D$Ey9Q z*<=n&ZRRB_U$lr$x?n}v(nwoUBY4T-_0Y9B+CabLU1ahudF~MR;eYsS-HUub5jj5} zc|Q-Gel9xwS9QOkZ=0)97f$>ino`H<{tpGq4XNZ`Cs%+`-=|L|KMuO9FLSv_p7+n7 zvr@&NU0#{D*`u1<4iYa;>{6YX{j}?A&(GpMvGsLj?7Lm;2d-}mA2@w)UXp?>9=SD# zn0yyGr=>noOlL1~6z(L?6FEtq|IpB}m89&a+b#OEY-qOi`VqTHAS^qZpbQ1?#()VqV2j$yd zzFoq%t$aJE2A@G+(-!30Q&<-yPJ1EWp3Qd;bNKi+>v`8|zFph*?VyF2D!x5sncI*2 zTqiP|d|UP-GB;(P=?-|FILvR^0}H(hzZV%)&cg5Ok%iVH>j=CB%nx}+)_~apU!Uw| zP5DaB6gn5#?eRk={TtQR%1!vJ)Wx?}9#wC?@dJ*y8?A*SIGS0zzb=0Y-;_K8e@zCJ zHF_j-LFR+Vpn?xAP75xC{_9nnulCU6QYXgOOieTT+b7p0d9Uw-knR6M zcFv?vU&^E8#)!$zF?n4%1=7#~3z$Wz_ zbl8vsYeW|0$m0-sS6~|kOafbVUGE$bxP-q7TpDmq@kRUeC+27^a82=L>u?pLHywhm z?=&_4s3VK4H`pyT2!6Mt=cx~|jqGF(DD?$pbB&W9Y_hTcugTX-#`|XVF z^|MYQr!*{eM_xrPk-5#Dp84&JrXVvPCvU(E_SR#FUClvHa**eCgU1={C-rN{jSJ}e z$xQeK*Ja-;>$>1rXdc}hv7<@!#~PM=!oxNND&n6GRAfRE#QJn8oOiU&vmI@H&^E6R z*K=wb3s=`{FKndUTz*RqX6QCLhPir*_B_lxm3kvb%1`@M4(##7^J~$}_*4vIT z=o>U>K;jt$M^k_$0G;}vQ^AkWf#62sMP#A8YH3F!Z>A{iN7XlGsll#Fnd%A-JvRyFN;; zV?Rye+Q)oDXl1@Zx$P@j><^tf-Qa6W*f=X9`UK$-laPBgVDX_Z6W$R$mi4`Mt9~$AUVv`bIKY?9p6O?hdxG(+;tS`RKx9evK zePgfohKSeCLboV+SN_&qQx|sjJoQO(diODjDWaB;=uoN@iT}ZMVi1W@Ys9baII=lo}Ssx}gb|xxg$H0%pA3)Ynk)zKe>s+8OmwM`pMjLG2F3tvjSw#BlW}F1i>#`L5 z5QV;z-4ciQF?%WMk-4|4W^I_i(?9eNXLQ+O9&;&=z1zIuuQ>ALP>kM5*tOFccN1$v zJ@C&)j}&WPqi=b`PdM_BzvaD~?(u9kLLYg+oQUpX34Sd1jrVN+{qn?Z;-4b^XFY_3 zPel%WnCH4Ccs9R*odO z=YJWSB*xR^ew#jjl9;ROBfnh+HuTECpdAY*p*fm6z~;($3Wm z;;&Q1KIz&;&Ty`Yu2}S}FYbKQ5#WEgI<0#FbGc$?H99OZ2Q#NfqT`y}C;J+XW(OrN zVicM9GWh=;@9re8R4sbV2a$*C74|ytv32x$54o0PuGJ62j|6%b89{s)WL?W(eB>`2H2dR{=nwUrM(!8UT8~Vf5W^VL>G_0Y5PTN4OZszdSqDkbM3m!S{e0o zuS@=49GC30{U*iv=8C#idMBd?IB@g-S5?Ic!7$#(WaCbg|=OXV-1siI6oAMozW8>9S=~GjFYNQk%GnqBT z8fOibKlFIf?yVb&_Ee{K*V0Gv2Uy9Pe-YR%@KLel2kEESq-O!!-euXuMX|Y+oWab#bb%Bt~Vt5g5>ro z(Uh(^;5f9~A6jd$V4pVoCV`6_jX47@W!)COE_Ir3J!Q)Et=7wec8YstqVJ`u9sEn$u@2AY#|JZs-4 z_+|W&V>h&3n%X+6ERb9*bD@CwBeW_s7a~_&q@Qj zT3F~_Wc`2n$mbIJk08&)=0NFnbHKtJSZlb^o6dWtAFQ1vet#YK8ps}7WepD@{~TNC zaGJ=WB``MS7e`D7>K*t+Mno59hAxBT@@cA`8EJdHMz7bD4*xc>uiIVy1D+w%yWBVO z9yFb97vHV5MeLc-^N`Esx^}!BJu@$Iy)dv`rIxN_p?Sh*HeYlZ%EOS`$=WYO=Xri@m z{wC?LOvA4`&-(4K$eh&rVA%&OG8fO&4nFb0B-_b@V>#!6;A0oSp z%wEB7v7`Q1xn2D6kl9tvI z=y@f_WJfA>?u>(@vi{FuOicLOy#^mR$NQ$sC7Xp8h(F#t29tLgdY_ljnLo?r!YfVgx!_Xv2r_5R;Wut(&lcqyKGv@S)-{DZ+oErsgU(0r$Ns)6(=*$a$C0}( zhY|q2`c~*QD)U#`(BCKbA3U?Ifc$@DeYss-y*{PIlgafbyrhFTtgr7+uPrNtKBq#b zQ=nHbbX$N)HE7>4U^_N*pIN{w2SaSj2PiMSN=8T|<71i|xy@biEsWu&3j~ zO$?k}A(!9v@2mzNVrNzGZ8@D_2<8!|JPcb<&3mW(d2#5Z(AU&WH0nI?95gl?xkJT| zJV#N;J(eE!0{1QC_?P*ZabsMetO;G{xK0^U+^4Z`t$sBlIJ7oUF|ohrD?L|+Vvns8 z>UC?@LG(Fxc=H)~pIFpC@;$+^;KfHwL@s@^f(Nf^#XnN~I4nL{FGpgZss$hCyLw&{ z*)YR(WP;e3sQ2L>d6(oP6C2T>@HFfgtI96v^`N2s8R(@850TS97Z^ledHPb%%*Xg< zr*Ry<-KiQfOkEDT(lYRBVVx^rzbyJpu}N8t*!J=3!Z#x-GN#3736kTD{}!piIn%v( z`4bD6JJ_{@L3CqQqm{b8mhf!q@X0)D&SkBnCVDNuWv=A#UIy=3Xx~g*@+YJ6(X?wx0I0ur*@i zomn{E0G#O5Jn7mPkG0R5c;^XKaBFA-l@nNqn5eulLiq z*2-Tbv{tUW+w8n(VokqC!$xRvwomNue8htN(ArwL#MWB*@=cm^-#r%Re(ZN=n-A=4OyO|SWgZy^>sJ73<_9rwFgeI3E6356@hy4A9Jf#nu;ucYY49m9?cFJt6b# zttN7$$7IBFn0JHNSI!&o3Bo=)>W}3jTecU#KP#Z!TKK25Avl%yk2!VOSl^d*8b`XL z#8S1r=M#NfyB-VEXItwbw|FLWPi}Cx$V?XA7d@8DfB7$C?780+jKz{mo?HX-Q}Mo!js*a~DFe)*4ggnl*c&QKF;%OmjE zQskVs@smzd4)$}=?ia}Jk_Y=GbPpk8TKA6V*ib8Vv3vRb5Zz93794$w4Mli9_zDm0 zksPrtFVdm-bGx-Ix=c=6LHQ4@T=7sS?-<}0Tj`DCLxDE{*78!FeXPG{f!<489C z3Np8-`x2ft41Pk+NGtDe;Qe~uuXsWH!_s^Uj%;v9yi-&D;K;~$-X}(ooT-sf_%=v9 z##-KMBJZJ%ci-gQlf1j=1+jsp`4%48=(vdOtEqZ$WVD%g@m<|_w zIY;3O(MEj3KIFFWC<`$R8TJLV6QG?1FVvz-N%Q%R)H?RSpJe>9la$K!3Dl@jt_bAq*;T{ z#36xy_BnMI!T%zEX{0_wS)30Y$iC!b;80lW(hUi|*$1ldC9(SK(BE5!svOh*IL5zd zX>T0A)aej;zJWDA)`rMNVxtis6Yb5!v%%V}SDi`XgnPT2Z>Z~JeY?QQ=Y z?Mpt$*Y4JHd9rpo!i#7>vv2Lx+mFm%7+XJOewOf!L#OdS;TuW#Mo2t+lL1<0{4~aI z0dbHO`1Q&d?n7RbakKZ0+l&L^1El%hI#eh1*A`FzqszY$*;eEhk!|bY8*R*Uu@9M8 zi$$K5{kiyJ94Du5r@`E2B6p4NJ#yB{652 z!^t;TmwocRJ?Q3rjDhcJ&r6-;su%w&@>sNs?0msEFkFZ(cy`&v@!|tYT;U8w>JCXw zRP3V-_{^#L8b2sH2i>;FHNk)S4mp<^K|g_ym*TheDZ13qH^{h`(S`gOej~oGQU~ID z@Ns0vx_op&SK#sZe1w08ZL|$K@4$!701rC_tWvY$xAnbsHjsnEKIT&Ie#_w&`2(u( zpD#b>-w+7swU0&iXKzECS8{P%x!Z5?UGR$@sDSvL0stQXqEC~#Yq_}m#W~F1C^F~Asx_Q~-6 zNZ~wmjmH|t0qu5OLN2?nb*^nLwyA1tQ-}KBxoBtWeA{f!xg1p-r`h-E@;UZa_W8Qb zU^cK><1N7r^s5#>1(5?wRC82nXx4%Y--xN2Z^RTW3NFg<5h%y^w3b8k(d#%$&||p{ ztcO=lUwi~QKFHXJogtgw689%De+Tmv><{?sGhRl%r`z?>L7p@u={eY6N0v;7ryBb5 zu|LjuyZA%*UQ_ib|{}dbd4&d$GIF9gE(s8=C%%_30V*0=={_5Ziky za=;*L?+)w`gWZ4H*7MX@Q}>;HdvJ6>4tLv7)&b_l1)jUeT743pC3`9G?;g#3f4F?1 z%)Pp1=B(_SM4pwH4P<~Bi^@kw8n9!;-YW+`7uj!}Q2T3d@=gz9BC+MdkEK1)sbeE| zD~Cn}yMDgniA-$T55F=hDC0akUI}8)3uZpD;tAPn7=%A>q3#2GIWwczh928n2w#fr z-6fy2@aG2RUpq4STM4#cdxAZ<7u%o$U(Vz}=d<{h@rury+n_bkv5#VIl!-n=`Imko zZ;+E{W)@>>V(l86*nOvq__8wA%YS3eb%LjC`W~P^+xy1UMPEvJztfloFGMfO7@JkI zChx@B+yJeal$}M={%&}b#MsGivAdf7eXZlq8sBmCerJpJm*0_Gozm_!zO#V2p&(DL zS3NIO6tP}1j~dz6%bI}C#=<;~Mrunmv**YKHv#BKVGMP9D?Ux$-gsozk7Eum{C5@4 zq+wGR9u(uD)ZJpuOmlx1A6-zf{E1AFtvQmIZzp7Yun%7XCh>a_7?_7$aVc|c@hS6c zhLpL5#*}%5-{t#q6yKKg!8`VX$Z?7y0( zUElu<*6AVt>pOTiH9DRiY%59rZEwvhdu*c=z3^PK@N z`JEvyc*JN6#u?*+qKnIiJ_Hu#b=|X44~%lh_)kU2)fqg;oR()~-hKk#b@H6d(S{+t za?}U(iP|>dPmDK)x1$3%$~;|ypUbQGx#Y#&kUWp0hGQ2;Ud@A}=he&~?ZH=bPSrfy zE}oeKpNP%h661~0c;>IfH8mh#Jp>>8H~e0nGxQG*Huevu8dBTF-rVYchy9u4#n`ga zn7YOGOYfrt`|GyKx1fb~m3Faz zJqAucL+*avmKWKJulc^SN_$H&xztyeL~7vydyOgGdpFBF)QnyQZ{*$PBQqkkKUZcP z=J(zs^1USAA=)Wq3_GjWIX zVEpBH+1H6a>~8*-a6ZL&Nc`Dvq2Z<@(<7l_O8as4a^L6O&?m@FgrFCUxV>&H@P~|Q z`#8=W3@-`v|K4sLape8R*C*s76I?bJpBPWgt%%@yCT$6ho3Ot&ZC2Zds{M)KO^FDuP3U(7 zuNmNV4m8+c+%g{9VqMb_y*4nV0>r%I`AvFKW0%bH-Ya~?x$xM|2@&=+9vq!0B=p;hrV^o*tqE9Z^0RQ z_!hy%VCnmjug0Pie9M@|#zdZvjfvQnd&gx!xRWvIVH__r9)H(29zq)?Y>R?7!6i00 zsl71s6NA839O*m?nsRz`QL4UFmIL+rc+MlRdyB@xz+eJ0`kb?z)^T-?c`rhYowH#eQQ# z4{k;uZb8?ip`){6zrlu+Z>;+W`^?$u_>i8@&Zu1eE$fDSrv+XAYs5aw-he#-Jl4Qo zCEh1`o}N3E%ct)ohcdinE^}1yM-5r`Q1Ed2PEX4h1C+6)53Mfh2v}TAtV@)c_X!Oh z7aKk6QD}*$G7P_?7Mr_+oMla`$t8Zj($aA|IX2M=bPgiUCf=f%%$}Bycc^up(^UKi zJe#i)Z_=5rT#jeneUj{H5&LjGy4wtNES;&ImMCK>_9U?bml=k5&m~e{kg=;rr!KVG z`M>d{DpnR3t7Z$iUy9bfxXvMVQSm?Lo0r8uZt~^8i=Eh=M6T-Gog3;vHfdZU`u4%$ zEXgBSR(_WOemZQvqj>Jt-u?=V0(&TbR^$@=yWFVS1@?j!iNysjv)5`g`!3vP)?9bo zn7WsJr0b<*=Y^YzeO>He&lA{O`-9q9;j(PM~Wt=s`=DMlKi! z-xj<>b6SA==POL91>`UJi8{zzp6{{$XoWpBlJAJDSG&J=ZV>rmRB9F6;2CqSXG1@U zm6P$vLLLygz?8jKOIxwlBF|?relFyUbN72%>W$=pXT6d*DDkObU*&FPT?Z#E)bsO} z{JrR2(%d7tCVsW1m+^O=ApRweNGp6S@M4g@`;IW$ZvGxi_d+6{Doa!_UF1k z+)LEz5PLn(o7r>V1HV6W#oB`WK03^6x~op!eGJ;)%3RJt=2m%E+9XGecWB>p^2{$7 zzfC-2B5qXvZ{)YgPcmoWpZi_w?y4)$=Pr6qa4LB19QKzq9Yj9V>Dc&{E$SS!SOSc# z27xt}KWQrSZVL0y%RDS#K2F9iH7UgW)a_FB%$**1*wsZU_Y6E^jhA@+J%0=8DQ zPHM^!Pu5b-9{112MD&0O=vd>4t%wVMj@%;oYrc;hR=}Qc=(1(HFQP@pfq6mg!n%Ob z}msmRT zJhr5xj}!Z{V?`5qb-14gerZeEHhY*y4-CBB!uti#XSBTBZ*4tTT6sR__NW6{43*eZP|U`;9hVs5uD_Mn>_HAi#@M5uB^vs0A~iS z8@V6HbMZV6zLq7Dr?VGl1=t-#CT{7Ig=6>pkn^J#_o`jb>RE0c54)=rLLY@uN26!lDPR!7F zUgrAwa-YO>*j@OkBS+fTvsXLE96!$WfB`sk9Ax`7_8%XC=T2vC=p*t2f}^^6=KVS5 zi@<9^Mio7^#53WG5_JQ&T#o{86EP-gx%NcUZS&Wop|x z5|zu7sL$hsPydN~pTcXq&nk6;Rw;H_lUOTS#24)(wLBDJ1Uj*0pDZHZ0c*`M>I)06 zmine53z*nLVtWk3TZ0|D)eySQ{+&B=LlT$Dy>TuM6@ERGb>>I#Dan)P`h4Zv7GGK9 z0yzq0eYpr!61F7 z{%iPHACEdO@+v&4i9Frn+Z)6CiKlw|be!kR{RgHBA2Kbb7NpLTOLaa(EU(Us;Jw;G z!(d-0ebVUD2hi>o!+<`%G$!H2Lh1Yx$ zSkvz!vULYCbprU(dA_OzOOT;IH#mY8>`*t5pW>h2yzlZ=bXL?ycUSzOGI9@kl2Po3 zTbP43!(i_?j)4lcGuOKg*|RrizT+^Fv*DP>L=1mQYSM~Ca;7AwHotN+xus3cW@Msf z@>MnCUqD`t)W5veU%%EQdk>x?7gfJEelW0DY#U88)@p-Qr`9y6^)A+$t}Lg?Yr=-| zE;PT^e~+Ji^vo~e`=aNLaoAlxWgKKKy4mYo85u8kuVy>?y7xCm}mTtMIpI!XEi7`0jw#2CFx;F-N;L-mLf!@$9c?yMS?-%9!l! z9S?U9osE^T_z?Z_oA6B;6ZyW_A6%@dvOg(+4t4%O8!6<6ItVOX$Vt^A1FkeXkF{n6 z7ss1|XVE8Rtj=kk=TW-GtnP(R^zafx)gby(p3OR(72E`TGgN!q7<4{XV%`O|4|Mwb z_O^>%V2cHW_`p*!7`ZJ%)FXYS#UmxWa7mYn_i*gR}YFNZef>=N;&OCt3}* z`87)NnmA>es;I$4uC2ybrjv0$hR^1s*ill}94H*aed7MYPYl^vxUfOTzeR zOA_v$cH5BK3dcV9tHPhHd12wJDN5JOxK-o(VGm7N^IV|{{p1*w=!e+uGT_y#$J=aK zz}{)hbVq@Iqrntx#eSQGulm}6$ypb$Ia9!gjok2afHg~eKpKZqhtRC~GXLoCEml)U zaz2O+(=b8lcZ@yl?!!SxJ^a;_`37=DLTZS;hKyqry*hqaU8afT{UKLWBd|yumyC;T zl&3|VgU{(9a)n?w!CpPHrR2^~7Wr+;RL|w-Hr^3>j9g~P?=JQ4Jo2N+48}>}Xf&pE zAL9C4j(B1#*7QS%h8^No*7x1j{kw&pIJ@wd+c-nlX*TB_(T5x^qYJu z@A8Twfj;`6iBjQV;6&n^HDbs`&zVI#QY%Sg4!w@7lwZ0aax774zZ;yDDVp}~)t)=r zxF+9`bu0(@NZ{#w@yWmVW-a$#XO0WrzK%1&i}YLiB{@{YufPm0C9W^!*W~)6-=p9W z!t;M)Eb5Nj@<{0A$Nn+Yf)4JvjXw`HvG4yCex@=WO^@9fDrK%T8B-z^;7Z0}4&#sn zF1Hg;k#4a0Y_HrE6dPm#_mAQi^y}*B-Ty+3brbeYGh^fBFpaQmvjkRd9(rhK@MHGb zuPc_|VvY=GER+0jXYlnJhR@f0=IA-@ON@Fab3D6T>ToKHe|ku0CsBKq{KJXZ)W}zd z>`3fNsVl<#(ayE5hsK&L2bJV#Dc7p-rTu;7C4W}wqPxr-(T3q)j)~}7G{(inQOdXk z7@wQ^#wS?0C{n7*y47TnSnl`nuWCcKT*q~nnxNf89fbG5yYx?VHj<~J10E$Xql1pz zt}6XsxgH1feKLpiUF++6JAIY@&*sQv?#KE*oOR^-zH6m_Ti@&Z`rd%7^;%!wZ(6!2 zlHEAs%f83x(ew@dJ&7DT0y>m^?e+bYI8*7X^i!t^`uWC<%1oiNY4k0YYsAX$H<))P zSO>B>I{7W}xiWtaRL&;$%b9Kb+BapH(=@N zgC*8R3>Fz99TxVZp4O_rfaTlpVkfWr|1Dl(ZNy-S;Ux!HCIO3#QGSU}OYG7POPMTybtsTdnnu(Swl^?2)|R#9doGzemJ|VG%}Rq2**wiWqFFzlUAjr)9#s|yF$B-_~?a- zJuQ>av!$yRU+73`WCQw#WafAaH8}^OAJ}Ic*d4+aANq+0{lBNBm}{Z@)CgYw_E2?d z1Rdoj7jmCVO>Pr?LWp&^sk&dc$e<`a(N zA-%q*7ElNKtRuuvCv16|w#yG~b)*|DJ}+`lsJb|UuG&|D{w_?KcO19+EX<-O^t~V)*?WJf;nk{(}qTB=PSiPOIBg_KUkBvbJ+Q1RoW9i{Pk6 zp=J`eI|g1&;8pN#0=G?k?|*{RQH=Tj4NgscI86hmr8-VcJ|BA+!G-Ma-=yyu?Du1R z-nZ-*A)%|U_uGqJr>Xh}dcQ^g5_@0p`RmO+PsQ*h_-Mh_C%9@lQXJ9X)%Xm!*OIIK zMeJ?AHqPvpcT4d#nM}OEQ1)BtsskPHGY(Z9=q<(Hr0AFEfVrOx9z(qIBJz*C*X!p- zJz1{D+L=TfDs8;+B(^i2H7NtNELCZdccdTq(h?UqkeIvak$+*|7y_mXN7g#ll5f2N zJbZ?pOzi#wV>9Cy8mx@XGn!hQ~JP+TY5w{vfXU64Ty*FdN zZ3jNtdAF*ghi1&RP2_j}rkv)yDy41}>j*Mg^b~!}WZzI_u@f_4Z)=aY2g!?3Hw-_b zIK|VFho9%1hD`4~WT?!P6sL;3e;S`W71^^Lm^J~EJTG06|G4ydl_D#%L-dViSP}OftLY=;*OPsEuY)<6C z;q4B5F1_*87O7X_eKq?Zbx_|%t64t4S+6AdF2FMlWtovt92H6&{%KmY0X}z_IPFzS zeUT{*BfXC@*GDQz+Ck#c=fH!7?#`CaiM-ETm%Z(C%ZE6tsYNhv`3_4h=i2hjh{R^f z^Q}BPoH37sM&)^lL8`{Kb^WvHd^>{!pS8Lv^f~_u^#^!XU^#^BIgWRBLVx50Yze4w z(f9Ftc^MyDB)JNE3sWl&UP$!|-3S4XG>tpO^ zdaP@F%{;pY+`pbh?O|fKtd-f3`b=eU?SV~>*t50EtB%sz40i<-aN*VtMU~6`7Yb{biP@^ zVZ%4G3g6&lH7QtUNC}=~ZVl!4g_}iYOs2L;O7JYdPpXFK4%KMUuOsVU((fCh7v-!d z(JszAE+^he9H*s%Gqr{+qd0H)bmbFOh=z)NcGJh)XhMj;k}hHX>*`R1%T6G#9b^?(z0iB|gsC7n6ZrS#>|4n!O*@p&MR) zryf7q8=q}*reT*8-@B?Oi03gXZsq$*(F%T_v<>iup-tiA;!|1VpaXl;7i?Q9E4xE$vr&IR4^YtaS@xqIms^w zoQtS?`Y^FVWB5Otedru?fAg4wJMqn2qsF7l5nr+aZiyL~jeaMW!vL)fh40Si*;je) zF?=?S!wu8EM~>tt(ZQx-(-s?$i@BczUNbU*yYJrZ*6urdptq+I1_pOSyI&YQmEya4 z1^wk^j`6p&`j??^NJIab&YJO00gLn5faYAe%;sFS#Nzx@s>i;PV;iyXf8zMQQK|ep z4rG&XCgV7r8kOC|yIm$u%|VQWlQ;{}-=gE3@prT}i?)_8u{oFeEY5ATGmB#x?abnE zCMuPVkJ9~9XeaAR&)9VKjvDe5aS2`X!2KWaO?wwVx~Iu0zBOTRFrE0;!^HKyV@L@8 zlK%7<21fJv-|LGzDEw~ur_?|q*QDMT#rJ)_Jq{RtvdHfI@lQ49QocP-VBp*1INmG2 z!~Y&@$GhZ9{R}&U3LIxY?YZ-_g!mwKX7?Xx?_JvKA&&5KbQKQTOQXHJeRk(v^EBs= zX)8_Iq^&fLcWLik^5g$OZ*Oo|~(PyK>laBBz0zP|&WSphrvwSZskzv9<-hu^6wbreux%!%;@o@&PHbNVMa3@_8a zEA%g&@d9TvdhulkUzTsg*A@DAh5lWpf1iUd>7UTnlYO++0&R)zs~a2o=Nwl?xBACH zTfMfzWZzG8dayaazld>x9%MYe&+%h$x0FNL?S*xaPFtHgd+vM*+WHLIdO4w$+E%TV z_~kFAy&0F$vwgnO<{Zqp4l1!Y@1mX0`!OE0^Eo+62o$P(`NLk?x|=b8M#7&ZBnB^o z*Ad3n3B!G#jz?~;OE)G)pC^87jpU2tyo>XUXP+-jfFtJ{;26^f$F0}Faep5i_x?BFxDPn)zYdPez;XHl{>s4dKhBAn zueARdeSQ}HLNZ4>zagGNa*9hV#i#J*EAXyZJVnRKm7C$gbur({@2jS^fDs)W^S<;b zG8DF&USIlj_s>}qO0bhmmYkQYv2%O*a#(bFSzRlM+cA;DAeFc`r|`>g1NoK__A^mm`L$-cqjJI^|f zY}7xCJbB@v#EIkAOKvPZ?jnyIt8B2l3b3as_-|+8zdZ*yW4^iqZyLV3Vv`CHpDeHn zTxmwLCTmZ+vA=HtF!T@;G6^}hwXE-o-u%JvLw z?T#q>NADZuDa^!Ih{Q6YQnK8=boWx#S_E2Bqk^M#|IP!oa*^_Df z-pxD*F7h7X$H|&IP3=#;0F&274D~7Og`{ZK-lFY|x-74F$GBS^8LX#c?nzIj=73Y= zwiJU+8?!PcRdjQb*Ka#H{SKAS@ek)YBgatHpk*pHEida$#|YNtn&t7%dpYNgPbb${ zJbB7eQuE1I7C_gL)Vjf;um&~-jERsC8lN$`4v3GK9gTT-%km>%m(jf=(-&L2_Jgz7|jre<|VGB zfc!~XdATbRWvpZle;JR!d*3B%-ij>sZE{)Gi%m~_D?6FnvDhj-ZWcdF6S#`; z0DKuFwhI3)l{G^N-wr?c0v>hM7#|K8lsehFOB^UMo5a%$bPwVC&@eujlGA(;I==yK zk?*b`!-+o${@Cu`>qEkJpAF#kQ|&6&mgus{phyesilQX>f+mOUGIa*)}jPLafRj3OUq0l69^-b(5eNgW>H zQxXqw17o^}F_pMviQS+cVBtc>HyK_p`Tah|7Jh_$8zY7^7M@`IQt;=WH}lqM^Wtuu zR>OHdd*xx=tKok&zjsdDP7c%UdJfZh#KOH#e*8=D4T;}4s9N=ycVzUpE6OkUn~5uJ zCiWs}*+_{UuB%sjYyTOLPkZq<0NnNe60fh)U&*6U4(u{t?f~|X<=?1P=GiR$m0YL7 z=Y+ROP4flxOJZ}9@Z~)N-AG&m`;EmH66+n!;H8)5EYSv4aeI*GV$ZIoeX;Req#cPB z<*dh?sqn-%*{dv~#>kl@kHp#3oup5mAq|Cdz(J<)M1HFh2grXl&RQtv0MAGb1&M`G zSZhC~jfa;$EOm(LdgwFtW8C8V@-FLL6Zir zK1N*P3S)FGH2z!YN$6bWh0wUr?OEu32H%oeX+o>mv2{8f0zH|aQ!{i5-}FlTITN|k za{B0W|HhuD%+RSDI-QI@acv)s23R+t@8WXCVgc)?3mRpA-6i$NBqmO1RPsFtjRyN@ zGz0pSy+#EzYU`s>$?3hLk4BrJQHk6ATWItsGOtmi@7dxi{!FdKQtzr^yYuRUN(uv5`A4Zkz7=#XjAgntRsFn zo0v)Fepk6mb2c*XCb90B;k)Oc=^w&p+u*&gEluy|hMw`m@@n{o3g0b(o~4G{)yL7R zvY+-L1B6+lWxxCydG`v4nUxyzR_1jUZBB-^!_c-)*SY_NuHD0hu8AuV-W#Lq4bb%# z^3n+Jm0XW8y1ofM0*!Y46xm;LM#pb?zVK$QC2ZMISk1LW&N?6Fo)OvmC_H!<$A^9V zSn^4~%JC?9n;+uXwY4`cP<$hV<`rn(XVAR0$TaAC7LRmMs}H)b#m7eQ8LMac*#k%P zeDq%*Pmzs>q6?1FP9Q__${O9mb46~G@sk`B+;_{B-p5oLj3NvYoE_sm-wZVOur1{d|3M{_A=CO5n-2Lo<@2b~bi?ku$Rua=LJ! zH)~rD{Zw$E$6!6BwhPBzoW)Zu&eO;(W9dg0G;0C&za~$A6V0ac{TR(= z!-GxuJjLRC*E23cvw~xxTUo0F#}XH)=h^3bf-Cu+;7V{tuB-}OKBK?i^gZdXod$8$zqf>MVZV0&{Mx~y?`8j{sBJ^fQ_NeDXWYm5E&SayKBYLPajb9M zJt@T!JCp$*PX#x(a^JN4_HB~uQu2e*KiyZ|@~<^Tolj}XO&tpUsi%^9J1`{we*i<2?+c7s>>s3- zrn#=RC@X%gH#T>qpP^gUOO8+{`4m%QbICk>atrdyVhukl;Tz|`Q%)}9n{*8Q{a53g zL4ShGi&~Dkms=;);E(05SgywaC*e1yA^$bPON`HMFEl*6v(Wl+PMzc+nurWOpCgZ4 zu$wp@;&`582K-<(*W=uCZ0+!b_c@y3F*~?c*O%K}bZ0^zvL;G?SDpS3Wx9^R04;(a>IuTvAHT2FW|geq7&+i(F!|PHr*J zoK8%V8Wws{gxB6Qxuv8JPm{ru)Y&WnPi0B3>39-Z0h!hT)n|_$m(ll#&OOvMD(ew|~Te9SQ)4G6NlCYZ|ytuamu-_XIA{F9ZJCCwBv_;$E(I`Q`DVfpTq{MAJjl_5Phfqbv|kh`sUg>_pqbtB==TDUN!MH5;D-}s`9 z&C37Fy`Jm^WBKEn?ry9My|Af8+6Ojt^V8v7lNL{Azv0G~QlidYEWX})`~dgKeZezc zYSK@C8{ZdrnaL~j+RON5AzxUKFC<5++oX)mxuz~Ig{HMcY7Wm)W-y1mZgK>>MzlGY zWA3}ak@yq$@;q$t;Kntew>|0e_3f1tODpX)0n1-&Pi%3b^BlujXltDc?HSBL(YXjt zkBCfjUG9|DOl9Ujz%x-k*t0W%X~b~{vXI*~m^y!|@-qwm#%-H^S+vJ->R<7@E2gFk z`!MUaNh6SVu08y=@NW}-`2(r1D|&;kw{v|P(q^oU-Lyx&XuTZ^cLSB4u%KRDl z_i4o)24WD?tBNF-J9S`ul2c<3V;U-&-jajw){FSK3Qg`=v#F?}qP8fCf5L)aH2!SV zk>`HqqJDMZoOPDH$43WGTquy5s9iQ}Te-Zy9saUo?(~+%7jo(v&Z_O9qLh~TwbX+L zSL=+ci`K`lE(#{DE^5MGw4wam_{Q?+cms27M|tOX`EE=80CF&;cArX6o6p#k=9lpS z(TK6!eq^ivd3+s0v>&d1+P@wD&FyEm`giYm+P~+>)BfhOT&o_`z1{eXf3I zzi?Ew?BaXH9C<6^slhq@?fEO5+YXbTa2LPt#kP8;UscObxnI2^b=y3y?NE%`F6ze0 z{rTKKYpH5^oBOY>NZj@+*LEoh+J`HQU;Q>zwIr@gCHKDEOVn;&negTBk5<=5YIrwp zd7R$goAn(1)8F2StxMKm>C+t6<&OrgEW6BFbeg>iIiIM-W+z`%3VEZF$;V_vSCE8$ z*UI{%A&XhUVQjXa%w17-FMSd?Yk+eX{usH3d!5BT`*t}p!@q>o=?4#sE3>f0ep@X7b|A)DA z509!k7yjNeNtjC}7Xk?cB$)&-GZ7U9C05FW2;>5R1k~2kHVILi$pDI%ng}72OEqBv zGSX_x^vF##85jyjXlHtSJ_2byNCchQ+Mf2b+-wU3L~5&v74!YxJsG43y?p09&v*XV z&)$2jwbx$jUGKWQcXXy!2|ofHdgc1Zx^iC6A!clTKnLHW6Tj9!*3nHLMg8Vdt#GLS=Sz;Hy0nDGmzF0voJ@_ zjNq|>c+o=FMQqU&?2a=0)9_vRW!2#M6|_VRI!LmInph8z$9RwG()vafFh7vTMe}4& zG9#LmP^H(%Y;HhOO7m@0I*l zuASc_`90Up|98oM``Y=hNdC!d=Wmz%53ZfRRr2+YyleH(C;7v!oxfi4&DYNNNPgnA z^IIf8<=XixBtPxi`HxEem}}>|BtPTY`PGu2?Z~S+KX}#g{TK2t$Cs_|$$1A}F}5+B zNBdOp>1uc$jj#BOM{NE7A8>sv=Y7tt|1hpQ{tm9gYuPgTAHa3}(K?wYCG_h!c&;15 z^9l6Bps%Pi5>tS4T$!BF4El^ZLpJ4AVt`*!ezcU&zM_0KzUAuW|Gb*=EmxFpq5RgXmp?7#w_Z_xE9HBxUj8>yzUPYaJ(NFr_3~jU zfAWg*Cn=A-{A%$3iImqn>i-)4O1%LchO3niN%>({lt+KTfIr8pl@CaH^A+XIlqUw} z)yi*{@`+cJPo#Xx)yscd%BNgWK85mWS1;c#<l~$waa4Qg40m|<9*Jogm2uq%pQ(a$ z!`Mi^i{A5U0zO@m`ifb5merlAJC7Xcty#kt9;F>pPV6Uc z{B-cPB%Q@BF&sLFkMKs%E?wD5I7dzDcMnqo&525&Gqorrcy6AH&2CmvD1`2*=wR%j zU7ZDK!9vP+o0V`ry2+jTo6#hb!eDwQ*JCv?WE!)`&>ITimmDg73qt)N}o^#)HS zXQeF8O6aS2zXiPz{a+U}bKZYULPyBhS6iqo`XOgRp~sAk`EPI1>%yl~jUFrf1d)g9 zkt=WJZ2y&ZQA4E6x^;tI0W@u_V^JF`;c~+C^eVKXE zn~csqJQ49ZQpK4qLu_H?&igUqf*F(pKPC2PeIfDZw#F6V7wO)9ef_i`!E5&Z&@-h= z##HF8mwQGAKY{izptCA=d1*$aY#nXf2Y&6md(C}EfFZsK%L3Ln(>ta+)*qrT;-heF zLxR9+eXr*0|Eq7i@aex@HDhDsSRe8Kzu@h;QamU2H+CXGl)TC|IOe?XPm(!vL7XRq<1E3VHAIE z2XAUvw*|L5$AMem*NfoS7U;5V=)@boI%-VkYdN0o|G3?w@@+PLeWtO#2V;~yn_C{~ zdb#KBV5jG?E}0_|-_p)F2c({YdxPk-`1i3Eb+PW)(Wg82>0nw#zGHbNd?Kd-T{`l5 zp+yTBcX>Vy9om!?;ScZN`#yYf3x5{<33Dy$&|H^a_+S^{ag=qypXy-F&vn^@R_Gm( zJqc{OXiKzRhU6yvw>s8G+a^A+48&D85c^yD`zp2o(RO%P1N`(|cwf=BY#tSn*9K_I zS$(b@oHwJ(&!x3`d?g*{L zKgcuJJ3{L+9HH&lJ)Bt?hpq=Uq_kaR6#LKvPljI_fQPaVecizB=h8Q^7g}Jw-4Bl> zLrJbpX6=}a@9#;--qedN z->ExKJ1bWzzODN2)-4(B4sFT)PTd1d8-v!Bi9X>~1;GC!lxba=;7g#6YVOOD-JxC8 z->Lf@>&5()@xICMFU~XOljGKyCu7qpFn`GC4o$}9Z`0QA)FrJ-Aod~o*xfag_b`6g zCc^{Ta#GsE+C`d_%^bQrh?f{mt0ZmnQ2M@n@!_hPtNuK=Xt}z|xw!zIS@n18s*@X> z+giR`_tMty)_wh}E1jA2XLHYY>&ob-@ZzMd7vTW~RK+Z9?OCbkIoa$b-MTVOdtT1- zOn5euKAC5^mkr&;S5>l-Y@dPNCu22y@|HE}-zM!w?9b+c;~q7k1U(QfenmWI(l_xf z{pRln_sU$s=A&#U`A1cY>juuAiKOS&HzLm zldsHLGx-xM^4~`Ax#|RZdbHP1dv2i3a-OJFM64(pk*&T|0xKU$(#%2vWEAJab&eJ86}{SE0uD&3D}xOaQJf{#)vr6pYH1@_$7< zTREd~&TLLQDC%qbBY2Yi z`dIWp^;*n?k)w)`IYnY6h+e`*>`nHyj1IclgMS>WOl@9V6q3EUd2xHF&7|`fnj+`N zOar4nE(^Ik{y+UtVi^k>>AEd|DnM zeRGdKEc~Stl)K}p%imM^J{`ZBY4$zrC!dv*^bAc$>SNN|sCVOiNuiC<8Es!n3duRF zjq{U~7kk@C-KknVZO`TAos(}^$J;quKRfx#`F{DEp7$2&5LIZG|kNQN{p-u>TYHoYk~j&IP!(#q=|m&H<}gi z{giDhj*N2?c+dtM+g`}cGYf2A=*yEcMLd0I<{V!kwgK$d6%I`wLX(SKFXhOK=nRk4 z;CC-@xrOwiv&0e2MwgQRDaa&OpBV3TA*b))ItMQ|AAim*=r)O5R`e%3xE{!?N_Yx8 zwd%~O($>tyrQ5!@sq{6jYOYqUZLQ-HU*me9b=>@?xU8)YAp3m~vBwN87EKj%eg^h6 z-L!c%^20v&%Vq8m!{VDN3Wsi_D&{`$TZ2c(k`LjqcXHVN`FYJYzBY8XW|rk1RiHehyJy1+>)DD zvl_penw;$`+IlAbVJ@yH1efRFduw*rN4bsxa9s1hwu-(BzJL7n7<_WYl7Dra$KMvR za~1nb#eWKaoGpqnwdPQk$FQ99*;r-DaoTQOFlQjj)4Q2^70#0e&JC;&!^KyB4QqjO zLvCIbIH8r_^jZ1wl&{R9?L)Nk4$gj7`Y$lC?f^u&E~ZT7%-lTvSS96HHF~JvZ9n(FkSE_8W3dC`+?mVz zt+ip<94!W3{p?(?(DTu{we^f|6l4ON!?iwvWQxwhg* zb@WRp7Y>yB9x$U5~Vvxl+lx zBlG1rcGxm*`}t>0Eo&2LRXl6o{c`rDvEIvfqL-6FA6>w?=2zwQ1_hrV6O=NcPu;9# zm)BcK8y%!;^>lpp|E=iS<^V-OIpX4)VWo)Z&ko_l{h!slM!o~DD!0%tIsemlZ5*DRGhi6&SRaMe{wHhto14K;BmJPjNSN)uU!jwzL~k({e&ZO#Dx1pOaS?vwk;nKGeRr(D)G?vVC!{deTT2C zk9cXXnm%7&&z1EJr@n;G*B837zEtWP{`va8e`S5?)R+4C`nFwJ-#F?^|9pMEE9=Xm zzHy(g&wFKk6R9uj^YuM_Wqo$)oA~+q8m_GGM(VSFzP?AVtnU`;yYch&Ij^kmHtM_O z^Yv9+S>GMhciZRdyZg%ezDRv{e7?StE9%?xMWwz5pIOdYVjPVeZFl0gB#N_5#4tXQ zQegWXcrE93*+)*|OShIea0>b4mGsiZ73HieWvnj?SZC(5-jw3ob6ywgk9N+upMUpP zyh?r~Uf{(QdVKZ5+eZh_l=IX2Y3Ozuw_DA|vBnT~11Zo)a^8SuQqav)UH78TXk|{- z3}+vLf3cr4jm+m7Xq!QNx>#917BHs`4es*FnG?M#KGsfPCnI!AfPXvLSCCy`kCtKo z#&Bb3hC0HvnL481XKKEJJ3y=Hr~SC%l#DpHe93*`lUS=&C&dz%Rif<`FGD5sPV@Pi2SFW z7`(;&qY@fRR~PY}(g=N~$%CMYYO}`Y$^KF!vI<%IR3)IOYT&U1W9W%=Bj?PK_KPbD z7{^F_!v2aMYkJs*TZwb6;CC0;iN59Kawr*}>!{O!JgO2IL^{un2a*OFS6f4k&sjqv zbNa{RP4Qvs@;*2bf4l5Q4`k^ynUnau{);{aolPD7z|#90mnosfTak=(33YR1CQUsK5SB^YUdNq zU9w+JV@$=iI6cW*K9+wS8tw==M!Sbs%!|mxD=y#2 zcX_r$Cso)e2V7h_=nB%DToS)Yo{P9nKWKz*Foq7&&SRt8=*yW>#24_X671-*#nvXh z*3I()d?u@!u6CM#ag+4j9g=-~v@+WKk#4MKpU%*?9UnAL-sqrT_*O>-BXAJei*|fa)H9`dA3TAk1a&Sj2JJ3hw?pO3&pC9SPHf@9J7{0MMp3!?kX z{FV7$2>wOqu_3Reyy!nhhl*GOid;FK6uiNu&y};0fUhWdsVEAmV+H@u42RtfM=8>eC;FvsML#ht zb?fL$wEpGPZ_s}&h+hU|@6F}%FX@*-KQ1W!!baL7e!zZK3P@kkP$7uI2h@-B3_wA}s4fM?f#zOoy&f@+{?$P=27{0`1 z%<}n<%sqLAK3TN#4#&V-;5qG{gt&!;8Kh4E~%^V z>8em0<5R;JN*vZUS52_+X)EunE6n5KF+Z)BHC1$mida_-=;=ErItFrBw|~z6#qYK7 zNrjFzs2ev#brH}_=#@13>2-p~X=?k1npEOiaF(#s_C;gbHJoV2Cx+-{3y(#M(Su%s z)EA9!TgA5$|7az1xoy}8kAZPnnKi6S<`V0ms|z3SGw6@#Ej&h9!Pj)gXa%?_@T{gE z&G@Ad`ofT%?o;w7dTorSv|Ywg+SmmAYUq;zd4<5n%zK0{HNxNbq;rUmhTi)urB3!J z`M2P9^#2(>w!YOeUsu%ie~bQ{xNN+neifOT)Vm*=riMM{V2pBG4dW$kGivLx(G!V( zo95TiHff6@I5yOtT-sAh-=s~&@a3=8roxH^8ZKC&g$lug)#z^&H|2SYhQU7~wy5~e zEd0+JE!Gb5_vHs!6CCJd)-YcRpSOno54dqT3|zw_YeO48Lgc?slP`TJp)c$S{=0i3 zYXQ8c5rUh0b!ncq+BBci!2ZUZfW9Jzf}syxlSLay|I*isLRN53*6hdWqqLy}x=+UI zzV#Elo1UB&{EFUvsf@taCFS&EHCxR;0MqE2Zv>Ywt@)Gh3$?v9I7QAaGA=S7y5AaH zpWyen4Igyh`(XBff*pzM{r9r}Y3l&EQkmeMZlWIs72KeWMsPd2=YE7= z@lpD8ZO<)6S3z(pgZNIJS?NAw183!SV<=;P%s~66gHxPCd0i9Jef9?;b}qt;DMVh< z^y`}b2n{;MKgB!2>!5FK=rqU0D)T4c)2Nk8gD>kuhLtlGGQsE>OLXt661u0Guon^g z7tu{V3qEJHzF3-#jiJ~X>hIdROn287vDe4<(FA1cFO|BmA8CPK+yTE?XnWzO!kJu@ zi{64uRfd~a*n?3%s|&pD0mg!7M$U6$i-L~}@7(*|; z_s->8)?)7x%1b^zw6yakYtmoQTE~&qUQ34Y$wRMc=XJq%CwqmQTZ(=(IJF4eox@q!NI^nDL}J|sSZhw3jH9Go)s;^1CwF9H9e^Xw*Bi`a7w^-lzI@ber! zS4|~deC%p%Y(eh<-6P?pU*5J8jIsESOTR{&Vy@CAJ9|<)_2Ii_%HE;&h@2zZ9`j}G z>Ab8x$)q2rJzL%E(~WI^MN3_2<0>)K#eQB#IXSb4tm)5uACY&Bv}dul8185#X1HQ^ zLvM+nhwDhoj8PKZf3#k#)F~I+kCcU0-_cwy`=a2o)1-vjYis)z{4F{UDE;lfEeknW zU){Q*i^LR8s7&A+Q+ddlMY-YJCvyMoy&z64&$LkE zQ>h^*aQ_r|K_g9R6S)Y!{-ELd^4U9%>Brgkp+kMGm_w(A&CzTO4Ue^zH~xzfS_#Z+ zhB-p*b2t+-4jMfIEmxy6dAjsEP4CabI?>5<)rSj15~pr2 z97=x!o13H1Jsm&Un7*T6L~sW>OdT=G6p@!nJUnUVX2!M){iDp-?&+I|9eL~VGHski z*YOT?9W9jY?9qis@GLq|e*rILzV0V|58u72zqeo3j&xww1Y884AEHkZzYql#ZSK3{ z+|%2Ju{X1)adzqJWlwmuWnsUKzPu3c9zOMtgSWqdud9vd3+%rzxJd9@`Xv4y8X1EC z^njGRe2f*!{e-zJF!MjE4-?Na=)9ii7Jaz!dT4Imi&%S|@UCTzle2#(|C2WVh&B^9 z$v^V4HqWHZg|rcSC3G%FdKzh`tcxAAi=5vG1V%qS4F+>XaA`@{gj?#7+c8 zB@-MWiAPy6K?!-tGjrbjcfOUfr?G!lc^BTrSlSVVZx{8=pllcQ%U#Nf{c{6lqTe0@ z@9KHqN!vwtBA2m`2XDnb_vrNDp`(^5q28k5q2AF`Lg;8*IHJaT@@YG~2=Py{D8P4S z`r0w4xm@=#gw^$dMY?`%(W<@*TX&*;h9Jqw!`P>yj2O0q)i_)rgHXbThLto zL(Y&tq&|V&2h5p`*l4-=htQyHUmNK&hVRwRV2=Vr@DK6rI&Ga#3@rxHQ%GbS!AfJcmBpFbAqRvpA)-Jugr4~eH7a3 z|D`>4VEm7^=VjW{O?+MHpCPY2RCsZ4O0;c#>|57ro6uLXKK%(^&*iwA`Rl<&W#mQR zyC5iQjg*PbGr`f$)PZW{cSq4r>j60UbFhCq4#*t+9%t}pW$4wt3cw*rceeS zoqV4Nj&`Eo+(r!Ub^PPSf<-}zkJ_e7^mJ9LVK4uA&Cj>aF5i>k^yy z6@8?iZMtOotcE4MX>RM#e-%$xj~Z@X@>Ka#_?v7+x9*jb5&i5ool2YaVf~%08*t9evP;? zuuEm)XqOUxlszEw%`p0)3s-*FJw2M%$vRr|asI`0)`jt$wNqu@0QXNhn~LA-&T5H& zyY9|3U@N|6pF_yV#>njW8G~PozO3Ro4V;#Wf^%C}h z+&9bMePQFPT8O)`CVeAo^bY>rF5j@HPh~&&6LKl+TZ4P`!~3nQDNgp08O-%#<;tSH z`tp9+52{$Bx=sSer|${fM4R`qf0R5Rdj$EjB6_2G=6kVOJ9mc%Ra4*0D%Q1Fqo+b| z>N`;xS>sam$_R<=n?fC1@Si6-N*}Q&i_U}0r%rt&)@u{G@{ySGBkffU*gMd-PdQVL z!{55Bky;E@)o9LXOeGd4bo@frDqz6;cX=LWje1n#_!94?MG24NF71}R?G^o^pr7yW z1Fq;Kake1->R4s!zMizYoR)h+()TSXy0F;fv7RK0Uj<_(^9UPciGLRHA(dh8>`9yU zhgIy+l-Jfp_7TB>sq{L?7LUgF9rXQ)%EKX<^&F_!v@gbT;;@OV6f@T?O&k|hIkMXD% zj!wf4J8wKVm90iYJ40poIO{kPUB% zGnt(4e#AVKb;W>vgsf`@;-0sCLF7%N{a@oB&g=r4>qqV7CGlGxv1@$gTwlpW?2axz zxSq3!d3&`Ieu95KiB6K|3-AP0b4jk?l1*9Oj(+r9;+GU#dehf%1}=ei*`an|yTZN~ zYb^N@`*kjBK_fU*Li^)smxXq%r5=gLUc1*chBFX;cM?i$u_j_EsLA%_;G=4CAx9Bf z-t`G*HqloykS_0c;=f5-2f%v==@ReSNc(bBN9dGJ3FY*8HD2Z^<_BOpP{CoXadtZtYIs?tY9v`{|+~6Cp)ZboPGwpTgDA_M%3}-lVru~ZZ z)kNAS_SlBIBWqieM&IbeqC>08jM$-NG$>u2?4|PGBF3zfeN)r1WgU{UuY#k_sw}x`&-x}&XsngPpOKo}N<>e@w%5y5nqhC4ZDa8KPMfw9>NWAZ0-ipEJ z)0qd-=I9*P=8nWf0$-*5k|%wz5f7~kypVVUQpU=ASa6#CfVQAtKiZ$xFmjC0oKkld zb!%`3AK)pWcfUxZf4YF{7s<~j?N*}}a}n9&Xut5jM8>=s-wXIC7oA%4UPs`gakTy9 zlaadQY*z%134fzv#_&)DdlcvBs}CBw zLe|qaI?8V#F4&*?hpA#N-pNX~m z=kWidI8XzQ$okVm{RQ0j%UU%AAL+-Jfr-$10v|u{b267I&|l32Z?dimuhGD3g#Gz{ z5?*K68!xZFiaxK0#&6^-BC!>PjpyTCh7KLl^$c?-OYu7o#yrmMmG zl_7ZV<}Ul7ADou;b9*-DAMpK2@ZGMOJjLu)_hB2f`d;L8;AJuEj*PqiRwaBlIP7Pw z-K#T|_^Xxhy?oOb7+hqR^^!HMiD&8GcJ|;MExK?A`Et$>UKGB1?ZQtleIV8M5PR|w z=lN-o{ojmyJk_&VO|UD(eVIr8PR=!xIBOrJE)VOM__|z2`G`NtguZ~9WS6*=F7|@6 z^hefzIZtNsKVp1nKIhHg%RY1+PQyz$3C_w{vO+QSEk>8CI3{wA)bT9sn`<_CO7I;e zb^$`Wu0DRWZVfU{=Glb~_{4tIWS$34*&kbMuEkf9Dti!e%Hy1Mqi0O~Tyw#{Nn9P!WR_o^t9uVWkuLVoMtH*k zHG!C(>cVsQ8J2U7oP}px988lj^0Swk*wbWv$zrdRHSbTf@e|r2bMsT?S5Q}B`f>VyY3%foJyUpY zPiyC%A8;Ijz$2<>EM?GijMMi$rye{=3oo0kl=S@2JAPjFWLZT$&&JA`l7(GI~S z!Gl%UFWK-BZJR$W^nX4XOta&wFCvf8X}T|)zIk-6i?e^0Qdyd*R3@ln$CnmxsUv1Q zRKS&qzqU$zw7KyY9+Aly`?|3g%3+Qsh@BDt$IgftP!T&L4|-x^XEguJ;ND5(VPj+# z8>8OS_=G+^xVMzFo4L%$Pu~QW6QJ>ys|lX>q3y9{@?_|e`-GNpsfnIGcm@ed0`WS` zeOs|#G9zmh+obca-QY?3@g(ByI0DCwjsRnwe1!4FULiR~sVY^Js)QW5^~OmX5>sI{A}4v?HR&P zW&dR#mh!AK_U%2o@MD6H(3iE$57AW9 z=&rv!U3jd*&tqIQexC3kh0iDNPI!|Z)<40|D%v9QCXrzn;p>^;mx%o9Ec@$5_<9@R z>urRuw-LUc$iX^Plg8KM9I5%h7CyBHp56@)n0(M_#AGq{HZsQ>;pZ8|c9Zf=%!^Lw z8_o^y*HqAsSa)7AcJ=6BrxfCs$54N|uBKWE{S|*|HZ<19gK2*+hIOYFu`$*VV<#uiw?2&jO~Hd5Tz?q{4t#4RDE}zCO?ms$KF8rkFWEs;R$!1*cDh; z>Qf@LXo^3}V(@&(Tr%h#d0L&=6{tpKcr^b!d2PRkr@)v5n6K|pkJu9kk6m?rG%Z>V zy+i-IT3K&MWNCw(q0GRy?UteeBYjh|yYr;%<+cRE@5sWQ;2pkerktKKQCot6YU1tI z^Kbcn$d+wgf^er(dslSD-UeTkn4lydEu~ybTe`rxf%=Y?E6WR{4tSk~*=88?5Z^W185`=3*yNr>qq<{R^~j zyrGB>k%(=|pP3I@{ZCUrHU`o9XGxpDGs%mlwQWcZsUFH<6)b`;uPMDUv=bdk9FkjFgo%A7Dt}6`90R|{T7F9SId`z z8&}wZ)!2+TDkj$(oHf6|8nt`IBewI{{tj|RSPFcE-V(ZHcfq5!BweyO1NtzUF0wwM zL3j0xA{J?){XDv|$AI|-%?DnLeF8Sl`;>UsB+lmJC@XVxSI_8R3D5ggN5G1WdW)+n zsKm^e-yQ3oen8C+Sb45S$74UfJ7@ANc?ZxHZgE+I*>}b#Sn=f>ZSy&BM|5Y#^Pi21 z*%g2;llDgcD{+p;UwXH=s_5%ncwt5SzdJVH22E(@T(89xiRj?q*BLo)w7yBeL}-LJ zXU(+Tq)P-QCav#Mb_{jAHLJiTaZodKCYSJG!s=Z%fdxyAc?N0mq`jrivhCK7#$`vO zoUC18b+&C+!RSln-T=;TsdH?*TRtlnATF2u=QFtKhv52I`*uLbZR+__P)FSr^ncPH z2etmo7@XjW!r?4*os>JFkF_h(4#wnNc%|pDou5oh(qp7Y%0^&x!w0OhN=$An__3cl zIm3F1U)^_v^X{&eQ9%`dVf%E@N7(6XnsKvjDgCrtj2^SIcAD(t#jnrS=8Wi3;BW0Yi-l&^uFhXHxchz>H~<7x7w$0tj^#pNe$ zDQVkDvy7CqNV$$^xzV4M3k;QumWjX4kth5tgOxeM_w%m9c98GSktY9=v<%hmGOz}x zPxho&ptHN<$;M|T&dFNV&O|PWC(-?rMq38wiZ_7CacqLcW0&g@@5i0 zy0W`zgXAsmZr-3Mj=ae_N8S02nNwtpbA^fk6Uv!x8XsA2@jS`i<$^8GktoECwEozhB@H03Prf z?CXF9QSi_&viNmRHQFj@ufQW4cnAyx9<#jg<9MF=bNq1uix<1cdkTPq9y#SJnOiUDWl;J z@YoGJ%2eWfJ`2o&2mFx>f)`29m`A`p!HH;jfkzo_6?jYn9v0Q&k^KaE$u*z((F-kk zc6Y}mm`F?!fyvI#!6f0@F!|3Rm|Um+Lof;a6EHanOwJAA$Xgmr5_%J^0+VnQCcpX& zCNf6^CNdvC2NT*VFcG}C3Ak(r4i@HEfc0n@aCzgu3lpmv!IKC67r-P-y@V%!6DG9v zsxV_pS;S*pSF;x`7Lm$ORm zb;_cjQRZ7ejo5(;jk_1Wk)q3W-@+W9Z?(?5e#JL}=)p`?xku|cp-=a(r;Z4{JF>45 z9)y(p06lgqJmJgBwNvhK;$X`Egpc~y`D6S|yq0_WqyIS$ zU82>a*%6Gy*YhaCfq=Z}*7A-$#s=l4HO{;k)}e_!%%zjpp9$^XK&^N&gXjBDrrl6>)%C%!%^^oBlst}Tk< zhv1g*M;gJQG0EwkUg$oVM>Vbwr~L^zRTNJ~UZv6=sENm*i(vDn&jcmMC02Ty2iL@xYK#*X{lV}F}(v{7Ww z=xu>8DCNV!^?0+GK#jE;FkA%*+%b$eLIgc|l*E>fe|H4OM4l*mLbF~gXKVMz29$hGn2Vq3c_B!b~ z{3qwSPLq+lw821Iqil{#`MR|s!1gZ)MLUrrU>lHUzWHpUj2 zrA$SO4gI_g=_q%lRCwWe!#}qpzb@ikblMJ4rkM3-H8g__IVyTHC55WN9R0u6ciJGl zp*G6E3pGpH!P+OLVWXBDfsZ3E$XH*^$9UA1mYM>BJ6P2tT7lbRwjTEng`UyfL6>bMzW8i24K*-H2RZeF}UO z8~D@kGEF19r@@c8;IJxMydANNkJ`rzTs-i+YTzMnbcp;qMq<|Zvw>AEad1;JtJN`CJ_z${08jC3xJ=M8f7OwY@ zhgJ>w@NzXp{C6EeK33gYwXC&u@v;Yq-9}7j{Htnlo##s&=eX~^L<}e5HWS0?TE4tC zW1AJAKG6pg-M?eNU>@x^D;CdOu1Q=XYxhrZ)UD+bcpL%760bc$;^P`iFUi^kK7+_s zKS)sqqP`!ZahXmfBJ+uNgmMyff#`yHS39?tbFwm6m+ zBZIcKZn_bFhKafOE}SI(VOzIo@ADcgz8l4#A!(cO0b7DE-YR?=dhj3FG148H*O2HF zf3T(at|i`Vf|S`m$d&9EApY^d8Fa72 zE?>$?8TiG!0+j2Z&9$~0d~=PWzvdX&{-3V?v!bWPHzF^~;hSsrlRh@l*US59C z`bi%<=_|W%#wK$t?Xju2+`I`eJD4G-aqU%SAs{=GF0R(b<)lEQ-Iz zpoD(-D0`szHA=)r5quIEtN5GvAO)*G&QpRT_fbaVi67l6{`ZC4fB zBOc^??4vZ9p!n1i|9ja=ci!=A)ho7BA924<{uAe}XJ5Qf-IfpSoG+PEW$WV$v$3<|p(B{HQ_dD6OAVcaC@{Yry~I&ZX0K z)t;LsIR1U);YS*h$7HZCA89b8B;S*|a65D5<_&6@_ym_TV=n*Su5;%t`GKQL`2Nxk zGq}~JnmyZN&7QOPPMyS@iu%M$ayn&Q@gBj~_z}yS=|`?hG9PK!X*voI^aymv+S*BV zOX(Z>+kGXRD?6tv!>h6!13KCxHZ{Lm&i*AfPA!-Fe)~+W^U#jxxl?Zwl3`7s)UJ6>(|o2&p?4Lyc3=NifB1}-vnCJu&gl!thrKd zk6s@>a(wnc3-$qfPU^yL?nM<_n6x!i@!O3Lri z>%yDSk2^O`O?h8c%FnY;Jx%(tB))CYg_r2!Juc$BX>}(zm+!z%;*HlQdA37C^~EaX zfmd|l-Rsrxb~P!8KB@;fNbuo5-s#<4tqX70C-r;qBUs3~=g-!M$?JbuM_!K_E~NcA z_~w(eBnPr3)lioFjZNi#Z0-y?Ly5nD_|?>zGt*ph1N&I*{seU2lT!Qz$-!c9P3%Sj z+31>5rjX}OeR8m7e?pn)n8|l-=tE%R5v<8q%ls)y_)~B{2OCAn6Md`A1u4NDEy=;{ z$Y~_DR66b14t)Le#f9EPF**=Cs#Q(@tge0)cEDe=_l;AA7vr;7Y#M#D?4CwszoNs| z_-Rt;Ykc3tnYlAt)pSWseA5YRM90(5IA*BhYTc|i^6kCQ@S~acg&&lK?#eC?Z9l2g z{%KEkZQPj3pV&QBuh~3$@`xwp{~GhFlYfq*jiR4g!@rBDM|^WT z-%AR06-0DrZ-3m8=kHO%^rQcEd@Lp5Q-3>cD|Ql#oU{sXa-P`Rp<}#OeDhk5q`wJ# z6BC&8;Kuv-)la}*an!HAi|^hiJ>pwGN%O703*Y*O^ApVrI8QNm$`bJ3jDP*%NAM4S ze!?5+;s<{o=Ogg}|GqxK-l07wy57g`BR=bm^e>-B*9ANGV$$yc9`CUSy`jdJ?BM%o zUM*|heDd~Dm&m}D07I$ott;y2<-D_|AtoijdHBXg{B>s|Z^1{R@a9GLZz^@jd~xd* z^uLLH!Y2FmVU`>yznPnt*ei_5xlq^|(q?>e5FxF6smhQ04D;#JMUzp{KU{^Og+ z;=i7&ifb#E_?;Jj@mctN7hm!4`Y-6#%|J}0c=w|pE8{$35Q1mI=8YIqN>D%%6JQo`P%T#x$ zQ#F^M+f|mKT3q1XqGZbNRFiv;T9pg(?OA=YKby18j%s~a))c8H3QO_fye>A`a~3&5 zvLPAUg#X`v@#yfyd!7Nd;ME0u#A^PY z-z1ivz_#92_*L=Jn^h5mFS8$%syaAml_$Kl2O)9w0yLyO@{^hgbt7-LIud ztj9$2_Y3X~#uJ<2F6K!g^Txkb7hXX7B|d|J_zZJd8)W}6u{Pbn954*UYG_jpL$Ml& z`>n-lIGDbJZ`bjy%&(=?w@)=`F&nn?e3a)m_ODKFBi3`YPMMn$r&IDii{XF_{EBj% zM;9&q;{ts6&^P9H2lqAXnF+P{(U!9Y{gGH53AK}gOaHhow2`xg=qsIpcB){F4eCb* z(Sur4`{{zvA%im256;d7XIF!>vQCQZ*2MguPrV*Bv9}SNm4C^ZsQ{X17xSN6OALy9ncH0Wt@r7e_j=~Nd_NvvG!`d=c3RV z_B%(F=F(=B^@|u9i3Z?OeW+)80_lmQJ4kzQ;*Y0Go3*$ZyvzBpm3t~_X_Tpi*1-Rg zPv{kivmr2WKzrOk{sOKt-WO9|;%8W(V@$*-l(-gE_8(7QOnx=_J>(}s!w8&Sq`t~W z3>O_*z45+neCHy4DdkR*b{BPc^Bnok)B0;vL>s#E&r{(<(ZJ{wr4_1h|{|C2kSx!z;PFI z;K$^>#&`I-B7O+5FSr6+Pw}njI7|EqiH9L^VXF_cOs{&aW%}YnEz@gnNu<6+>PwvSc~5zql!iML{=?~C+OI-8ef{-oQ63`Sa4 zOH%*q#A)75OrZI*Zt|GEILcnsuwcEv=k8#aet7><{NJ`f-`Nz_d@j++$JQZvnMvOsUpXFbHo)N({=nw{4MqpoKw2STMZKPZ7q>sdMvaDP{ zUsL+$ux zNwKNMF@ZA6n0>0zWqf5r`ex#QPHHeNl(U!E1x%{Rowii^%UO9Jd!TJw`+e9bn2pI} z&68Mv0u6CmY>!>U_DDkKPFY244`Qw+5!)l_-_S!Mw#P9owudql+hbk&t`_VZp-n!~ z$M`Kz=GMJlss!iNxu7-H0ar_j^Y=+1n{i~xQd5%0c|x8OO1jk8P=I-|DZk(owY4+B zh|XBsFKxli`T9?^@u=yW7O`m<-6#Bmnh%pgm6_OD48_!S4#m?oOf`;?ydzs0old>G zzWb-EoR5PcPb9kQe|e_CxirmPzkl^gr}*h|j&axTSvA6UY?b2s`EOS^1I+ij>)rJa z4-=o=I^Vna>e4li^zH3g6kM6&u9q{m;I!<2#N0JMoZ+rFs0rq^#F5z0nC@Gd9eGb6 z28X1V4o2=Wr;}ExK7(p8OWfe5#x$O>kKjAG+bBOz`^ISA2M=&8<-~68;7d;+)aX2o@ACK2>pih&mGhXPG zyI$ZXa5%1P44zJQ*IQOvF2Q6S`>gc!plUEn>=fy*0lvsQVha&-&DYsv@JKri*Z|1C z{{Y=8y7EG2Ie)({w5)l7wuWrP{>#~%6q=-S*GoSGEsKKk-Cn-&K!5D2c)06J&{M_( z8-oc4GJ@w$Y^)PHXcYDk8T$CX0Q*q_aya8tO7IwUNSg=_YnGV5#+61bcC*xFh9`1F zj~@S%Tk8(<{jwA5Lc6e&vatrr|KxllabUW1My)?1=T{>?RIQybj~AAO)>f@U8>O&(3dmEExt`H z<^A$)v~4!vW{FKQcVTmSGd5@fBk(7sh&d#4Rpy~Bc3nwyzMgA*2Dt_{`uo?UTa;(Y z<@t7KuC9WG!5Oic%e#8M6nr1MJ+b8zJ9eYa=(2Fee4jNZLzlGN{+q!?KcdW@>czHA z`h`K`DpShqzrhweR+-!djeZB~PFJ=P4pJtQ=RK6^{xAGPncU?!Pf%`^`qP0?(Tt>p zN$!2{%8VuaqhuFrRDd(H#0;0UYEwhfm?>Ppz@J%Hfwl$)Gib}9p>`!vhqTB4%fUte z1yAhqHZAzi!P~CYmLBSpeMHv(nnO7r<@KKF>fxU0y8S)V^*`yE-q{nO^FNE>qK3tH zLX`hYNcGk-@=<^)#L*f?_7u_SWH_>BGg?-j;B_A3>d6(Dt(aw?SW2y=M0;hG&(7KReMA z$7fF{<{|X$u>~voz#FQB7o-{to-EGbpDsfe{BoZ}a_(>W`~HZM`0o4{ez5f1t?JUg zT;0;s+4`lQJQRb@b}YKvap-XWHScs#pMYJkLHsK9ceWTJ{JgCOjh`p}cDq{4ny(N| zw%0Q(EIyWGt?z_4(+Q7nS){IF5g1joy&b9Mr}22Qw_aGb&=Q| zqH8>hzKi_Z1AfY$DYoHG_)xXLwGW$vxgJMeV{&W=9Y-_t$nYh`*w7LS*CT}k*r#}x zH0cI9{^$)YF~xg2F5VSdqQ-=xu@5VW5xtlg(GE*~U}o&hK;`77=~dI4rZ3KGnqED% zX?i~T&6Sf#vo%fscIvYsSJ?<}26|{NWI}VXDJWXu&f5onsO`P7kRSfw_LgDcjLpjO zTKZ^;b(iaqxou?q6nZ9~vGM%g8wvoQ-HdgktO3X*pm&xxlP5Ze*D7kco|a31>U2=qsF>*mr{ zE@jEq(wR$MEVV+DDNDALDxJGa(M!R+W8yf`OTF>Qr4rxCd&DCDNZ=o9(E|g=Y?j_Z zmH3`~1K$rGdL-5-a-QC!q@QWgv4$AJCVf(W1@BA$$e9*C*lO%#>fkfsbT|CR-SAuYW*fts;DfHdPEFC$;J5BAFoylF+dW0t9!c8X zg_ME6iQYx|-s;HnF=Rx0x0=Hjpe1+0TP450``H}tUVS{a?iqgVedY-7-t73Wi}Q>2 z-ksIEx5pgzKdRM%-L|e|@7v~xZzy=G{#Q)efA(%2rlq|;UHGTwu(V+^^b!hZdT;A+kX6QvGtR%m^@;4M5& zD|pof9Hfqa;oBK%T&?I`zE9gk-}@zSSe{?xeiYrIg6n zZw#Lmk~92`eD{5HfdkCJL3jqQBO`)m<`tdQqu^^U___mFuBEKt&35=*QWv&v_RaiT zbgd@vzYozds^u>8Z7%k3nvEdq$S&3KZ#QD+E;h>exALCfoa04zybs@t;Y>MWkY9=& z`-S9L=p&o^9MpMiLUCv?Y zpNxr{dIR8=^bZ+rFTNsr*GyG?_-Wb8*)|N#a6$U(02ZFX!96?Ze!JF2Zq4UrS=o%-VhhDg8q%!Tz z{mr3W_(e@5o}0u}d%wY=(FVyww86SvUShSzy3Tj6OP`NT>O;_CN7TDQtk)MFqAw2} zy2(RdlHcRZzZt%Xtf%Ox*t>w)jkK@*k7c3Otn$z|@%?r}KhAGg$CO0*>;_xhm~M^F zp5w`e$M!M#tuFZN;AkA*w(;%F;LgL~<)`R{)v&&FvX;nR{xLrOahyR4` zdF|3*p>t{QxzzGdZ%mx|C^+;cy!JEj0Ly^W1#386WD}XIl2Q!t{uE1hy2K?^?_8?I zB%J)nSD(G0PwrJEM&YNG>nC&0mw0{0;kVy3Q!)R6u~6Z;vmTZi;JF9&i-O6-T;+MV zg74B9I>q%n)_lSLK{eTRT%T+|t34|&b=NcS`;-y#%_;cpB6GOFw^CkWlCaiNUeWmM z@~!pXo=Kmac_{rE;CaXpXC^l6LZu*i;UInL)DH_=n7d}|daT4?v0|@t0=yYyKeA%O zA-s3&g8cKSw{zhz&PT{z3WkaQqyEm5CJnX)?>9XAXLQZ}g6+v^Xrs({L+Qup{Jfi` zc%iHPKY&(kYHM6N41R*}qFRxC32$C_^ijTilxLSm{x`V3!qvt#4c^1R%F(`6+&^5I z>YK;?qg7*l-{XF2rNK9h`vLeyC%HacIm-9Z%5lDPoSpx$a;z@~-h@^E^%qWz8&&%5 z*iohXxo?F>aV4*A8@%KL@aJC};?H-o1`lISL~$q5U(Ry$U-P9ec^cdn^#6c!zl=kp zqU-wvds-QT0sTn7o3ZNLI!wc_nTozQ#;Et4jMIB+#=Glg#wZuCiPh+%w!4P-&@B;M zRPIa~-h7>sq9U7;vzFjz%&c6`%?Zks-?JWcWt+7#Vh*?_G?&N#l92&C{N6fzoDkO) zxtmGjrzW{pGo}TMrAepnt>8Rx1K;#99@)eO=*%{RV`L0J7>2z$V|sEJzDszoHf#SZ z<7^@0DLQm&tlraE5J^AHxVquL=IZnwJ$-r?nSzY3mGKpRk%7y~_+Cr?@+I;oa>*DA zUHx6|6Bxrd_z7R(>MO^0XbdBLXMBOh0B2V0?}Gv#8QU1(FXLOGCii_bG``(3 zw%L)fHR;T~NsynNtWh#nX5{fT$QoqLM!uGHPG&jYQ&cM(mJL$g@w=9`LFeCvvBAVXF7xh9 z(#4*v1vy4^9+fb^jxmoOR^vVK#(3faoBd5gatxV6A~TGxiP1H34(Zuk4{#~SA4PU4 zatz^x-_Kq6;Ip|u&1HbM6P06BF?WRjEpiM!a?TiJ81lW$oyB86lVh~-eC6C}Mvl?Z z6p>>@$E|{MRwghv5Npd`+ZlxK;LXrk`ikKV3oqAB3?Mm&$$UBr%_i$h-@m}O0uJJ{ zQDlvsJ#qMBT6brs-W*N4)+yVe#W6Yf)6La0A~uxZ+pE`^xxUfuAQjTTOg_7I}mYnDjAMBz}0+ z(7qtNZG4zR^L0-@s9M7R-MVH{m)5@h@&E0*q+Nx`j(T^;hr^rW!;!ex3*Ii|3|K>Y z^u306tIl!p;PF`Y*$5o31wSjkp7$Gz13g~`hRd5my^lAA#t+E~W^td1%-})pA{P=_ zOcU2#TrY9`f-8Advd;}nRn9jt$kDd(9JeaY_c(d)@SL_P%_lOZ0xntKN3I&_v$Bp~ zAg*;5@NeNd4&MHl`@5|DzbEf3>*g_V`XuZ8Hr}(?x5tk~KF3uIZ_UNk#CYj>e}F5B zvzib5@Y+bBfcEhVu!adi` z3f#e1XlWB9O$`scoH;*_GFn;@X?k6_XvV10EHcgb{I40WmVS$}oAlqh zvvO!WowP}4P$PHI)rrufYWPl-IXHQC;PvVGfx~$-1K(uq*Yj;xK}`72q&b14ZJF~s zTjIjEQh%3xTdjnfsWXZ93zAn57paRjCzJN9r0L_r_vjyd;STC9l5b8b;o;=%mAszV zNO{^mlC*oZ`eVbJf#C$or;+wct&Uh(7v_)ReTDX2On3~>0^4^ij+Jy`DNMd6zTE7X8oeypwS{#D(^d6Qu}x6b>VjygL~8mU(nLP19|@j@6YgUq+BHJ!%Jlpt;|mF{Kw#nfpzQ$ zw0|x1#D9SYam;1GbK|N}KGUkvz9jzjA?aUdy-MMJj5#j*a17tBA#DoJR=(+C9<=c+ zI5?NO?&EnT>3-&b;ObqZ?*wmtt1kFtC+pKu%6##Qqe{b)4*ocKUqQKQzS-Uq8~%-y z1CLgdc0XnQOWu2Q;ZFYfZN3{pJ1SWZel6+D-%+H!MY;8Sze67z_V8UR?;nwVJ7xEC zzlXbyyR_o~aN4;QnJeX9~nw&zS+73wONW zU;@&G8N5+eVj2VFDohRnww3L!7u*^c#mH(QFQAZtgB97Gb`?!yKul}hovCfb*e#W^ z$nUmW``z`{1tc@N!mh5r_vZ{4xqaJx{a(M{ALn(>dCqhFoagyGpXYO>OcH5Z>C3LF zANOS`k$qdM&|^{Np3Ry;I(^d8+V!2S)Frb1RNBZ>-k$yxWw+ACZe*L6l6HfXEu<{Z z`IKKG<*7?c*Xui_OpBBukDol3am|!6S-Q@f$p4|_=ULLWSK$*lD^O-@lCJYZ_L}F$ z#5%X@=i=A(j$d6)**qyj`qm`;BlB&hB4w0L!O`*HXZf~kFuhRHhc^Tbr0*C^2cLDZ zFO3~YZyihr_jIkcGz1T%%Na$hA3V|pEpy30`p$v$uGMi3!%6FcF46i#`iJa`UhN*! zuuZ!UYiQE$V;aV2c}FyKuO8d*B59*|7d?b)xO?@w&SUI_*8uzpZCPxUa9KC*W?qn^$(r~5rJ+>i5yQ>XXYxmI&Htvr; zFgf=p_fw`y?fe~O@K=0RaG%IBy4dgH$n!33cLSePp1mhE|5SbVQZAOZR#H~JT`S)T z1K)1p+ileKlB0B)d~4=^3O`c%?QIXp`_36**#Cu+sXPF}SroN^O08L`dtATXn7fvuIfBd!_o;zy8$F z`gT!J>z`&CTd~3FJ@Az3Kln@4e;A%&#&+oNs$qfioL+c6bNiYLO`QeYli_cPzC}}& ziI@wVK{=0VXHm{SW8|GP)(E+4=OWI;CkOZ<+Ifj|&T(>P9m*d;em1~MAYJ1v@UETV zc;{RrYV+wV>;qQfTWy8n?{O>sf83_{&lF%Uk)`-Qy$;{DS1JC_k`(xbO8*{3c~oL0 z3(s5ll9x+gk>h;L`CVc~z7~X>5WkYo5DzEq^<>Wmc)B91kU9Ge{Gi{4;7gzXa3g$1 z@#j6rug6v|>i^=+kHs&V@IPPWF1+t}8FhM)6QtZ~Zg7Xq^e?~$$>CAb%<$0X z!gtsLA6fnDoxYFZ`J9G-T~FT6(DUd*hOnW1Tt~|5<2pV;4)P{E?QrA_5y%-nLkA@F zRyk|w%n9h!97pB=|0^$R)r5v6XDf~ro?Wu3Pzf?Gt_hFJ+JcW&d|)izz0Q(ET=*pk znf~fk#)4{ilGW&$-vEz!N!vQol!j{b7w%s*EM`03cJOVV-Jbg4p7oZ^N~HVJw)-th z;4d$MCs3%|p!uh(R)fq-4qfW0gTGv*1pAK<@Rxh_!kFL-87l1{>Ocq%?oGmeXNQ9%hy(SQWo;uOys&5%g$VPXsOu5Ja+qkVW*KbtW#v% zntXSgp0ynbPS9)e-6rt4#xFb~exM_LP3`*5ZB@~nF|fT5+3&WX3$kC4;Wm0I{YLEe z#Ga!o!u~>YA@G^k&)pEmzt7&!yP?8!uUxAO6W)f5c~V z{W}Wq!;O8}uak70+i&9=^02zqAu+92={jR)*f-7Qq7Gl{7sQgNf=1{44R|`wk#?GU z3GdIJgqG6t4ZSYWbrAc8PwAtZ_g(rxjE4ivKe2!4Al;f7?C_xHwUc=khCRfdLhO66 zeQ4&IfZS2|v#omCqm5*EciF4MzK{HCL&f+g9Q~ z93Q-L25>zRT`#dK0o(-w! zs$>Pqx^(7x*|(*h*()m^5&x4~{pi1mZU)c38hOqNJU6w4=Xt*vc($u~-XjCgh1%Te zn~lsw_HDnz-v2vfxLW_(b)AorPF#wuedo6(iBqGvQ7TdRnsHANG! zA)6c?(3SE)--V+qWsR;Z7hQ1K=Y?+(itJ2yXfD-Y7M>;gBOUqlz&3#ANd*2=&qYL zs*zC-vWA}LI*i`Y87}y+4!0WSh`b)V(`k`$bLWg~aP!?g!yLDVwGqkwijI4Xn@f1r zZ?TWM_dIBM5P9fMWY1yXx;Zn$8unoW=tgcTveUPblhZR0=n^j9ssXErN>#|_$LGG{39bUh4 zf@dQBiuZ3 zRfJ|UAoc9Z%JGEnX7m1y|3s&bRFx_b^Ja5_yKes?^*kd&;3ey(G%!A zHlXV$I(ANAAbqMw=kaj)?|o9w8S0llgdunBffpywr%As9-A#Fx^(JFG4K0CBTQmRP z{03=DnIq`YYW_tW)cXMcYH4G&e;@jX%YtY6OSV`0BPv2Q8FwpVdVaNi)3U}Oe}@{; zVXlC7q7JEVC-@Gzy6-f+OzDp`ad`b>wBbOXXD9fJZ+-vNhag*(7~LVwCFypnTd(*Z zKEAoElsbEmWw^OV!ei}yu+leJcL#NsknSF)_)~P@9rdgM(W{j2qO*WKX~S-O8A?9{ z*89}qJ=A3$p$j+5dj2OgYYXe~dDf!r$u}~_Wz@G3_&;RChcaVnq1;CGet(P3Y`$7$ zkFA>9w@ZJs?>g|~^ZbWFUC5MRGrEuYeV;1SZH)8$g4p!d^5wqglN8Mcr%tT~E~6Z~ z^w8tT2LukXM&96DDDzML!>=ggW^TJz>tjUzpAzhGxVL-ee}evEg&OL1@2^AN{ZPL4 z%v#%-mFL@x{^HK|TYR!^(UZWYDFAEct@}+)hf(ZtBTG*mMIWR<5q%Kf&Q0KhDy8!w zd8Vx3hA4CzQ;(gWvh(CX9`b76zX;UVO1|_EB~_uGQ1lufMz2xI%KCV4MnJFej6U2E zt_yd(&3?XXh0@tcz2KA>!84y?+Z(YaDy|D%#GQK077^XXQ1_`JeU79q>Fb8~@!5}# z$Pe}R?f1`L^Fw_-EINp&^RNy9nfE; z$@t>&76$YWlbM6*(Eg&kVpP!q2LIVE#5Gv5$q=l?M=@t_4~_dLXO4~RGeTR){+YsD z{sj7B&iz?F^k&>E@gE^FIKhz%^yZ!n<^s_Zu%!{BQBkg=P{RoeJ=M8~xY` zohA6en_QV+Jk!`9v~*Fbv0*2)n4~-O=8g?UljlbIC4IzS%e)-U`@p)_dR(dB!u#Mi zJ1`$lpC*u3aCIx!c=|Ene!Xw7jQDBS^jG<}UjDcIBWt4F|0c182mh_aa3dy%P5!ae zJ%_R7(3Z4+&;G|OHTX;sdxBr=c|!Z=UUakMpG)28%{ir@G zvRXwodNR0P)fqcpT5|r0Jt@EN$~=~F6H`Si(`BgG_Q9gdyODf5^#Rx-V=7=D zjuLtx2i>L(2UDi*%nH~Mo6vEpE%FlQ3?2^n%ZB}fN9d_w-W3H_&{UhFJrtB7@AL-(oZ^jyE31q_R_gqOh> z!W^^Tv%*IS*rv$8QSjBEU=N|F$~m!D7Cuae7y7MG-`SiM;Gs#`E_9t7s=a@_8sfpf zM5lrIk&>wPJ2;Dan6u--=PBjmeJR{;%vj({L6>2vI@0F|v->BIR=3(1BWGsOdz@el z^RzUw=a4?fX!lFrWf`hJB|8%xv^sN2woa>WJo4;172Y!SJJv4n$s9?^)A_B;PtohT zlsFSIk7Pc{yl|g6Kks4IfQ+k!c`I@``EOmEMXcEL7ZV%M9*k~on7vi{zc2)S-EgIK zMgH)5(PwSi7C7Ss&d39CS*hp0(Sd$zF@CONvw^enSw_aJa|t&n5w#=M zOC{fUcsC`wa1XkAoslDzygYQqDqoxIQ6@8o-fk;b(8E%Edq82Ak4?aja=c=2zsXp- z^eHy6$1p$#8}d>c!aD8chE#k1n^8*n0g1o#{!*Xer?CYt#wLB}Lgx&fjvnUZyoF=4 zMK4i&)8+_37Zn>-Y zonz&p(k?o8?st!sFZ=tk@?_%yOVNpA<}n+))wdbfxd*(hj9A9JAEqtJL8oxUta6a4wv}6M$cNE zTCal-w5kw3&;~nkm5FW7ym93xGG^kKVY^^361TV5*5?AQMK4AAUBCbC9Qi??>foBD zZAz#3NRTtI#;<7)oS$XQoYG5tPVt$gpsR1`GbGgdjj^@hB+i=PW-I3^@taYg67vE5 zZvNU4{y}{=<%E|rsH<<-$^3=C0#Ch zrdJkwr>|#B4>0Cx&h=Xg@MXbyTVy-ivf$e!={ld~Jb0~Md9>-dWmfEleJ$7|)x9*= zzw!69VLfQcv36MERg?SFbDJ$Stf396$>I4KIFvbJjI7LGpz2Dq_t#o(WL1m6~M--hZn@vBT)WN6Qg*_Yo%g}f3 z%LHfC@c*{xiRp+>Es38e|8LA9(rMqtIQMc^wKAt_=!ftcgx08eXJL8my9>)VyuYyA z^Y?}2l1J88?TLlhi^)0PY&J3PByF~8aMb1>FE=so7F>N*Y4cNS^9}4Fz&$#7wIR;J ze2Sue>8tc>4s*w#H0I0NHSDgj7!6yP%X3Q&jJp}0F#2Dz4g&gUtHWa~w9`cUHMh_8 zKQk`d|0MM^JT3ohSd8Ex;-))BV}qEij&_V-4mJ^Ur42aLaH&xv>Z|l499tRx2k@Xj z)Q_@x7oLBj_66+2(M3yV4^FwMcD`#sXU&Sf+IZ;UoUk`6!gIb6zZA8?Hz@rnd_ZHz zjig!6E!3xo%u7_4S|uMK(= z@pWR+D<17IE52y4O_%bb+hyg;{6o%7TwSlUFdc#MV~7Hy{289uQsS* zo;O3nJtd}akLWIm?pI@N#WDr?vFM4kX8hm!kr&&luP6UdJM~m_YsCIq^uA_t4ce%S zu9w)Qi{8u$WKg~6mx^AEZcM;8MdH|4XA;kYx-x_MF=8+ODmq?=*DCeLp-DMo^+3Nj z3l2YUUvt?7oud0}_)o#FAm1JAxizd;Swl@#BYZ9Rxomdi@M4r z&LgqId>+>KPIxw<*kRPEhR(21Ws1asTYJsybL*J<%i&qjJ_+8%o$xRc z!h)QxaZ0Bh-j~?lR?yxdaC6P=5BpE$Rpw`5+uFWb9~Z>D7I}aH9)Gpvo$~uuMHDnw z-Q*J;rR zoTk4LXK^U3ry`g6K3Lxie7|9gqk-?goRz*P;2Zk@@Vzb~?kQj>@O1&-{pdXk3J6u&=Z$_zo#E<-UDwXmh?nD{RNhZN~}4Rm=E|VYKW?g!hhr3Bk1oRNye^M;Co;Q zeEZ;|48qs1!PUTgPAHcco1W<5^$Vd{@fp`z0}d-&CPhIIqq z!OWiAq<^xk4t%sHOX++z>8Uc-RbNxmlVy`<*!`DZ4J|&wj(#_3Sx=Ttyv**O#Mx`@ z1bipKBW)^tvg~(B_#|UqZqe2XX;n{_eF2^K^@^XqFiP2{;rga+PnN}UrvKOZhoZmY zOd`6NP3=$8Ry1-R?t1QeX*-I0USBXct_d7(C`DF-?4;hRbT+;|*_-PHgKEmz*H-ukd5iv1{cO|WJU zk+^1HkTt=dZoTyC2!X<FE zXsh%KueY)NE^i__wKA{7HdwxWM*5_2mHtSbYTo)lsW;V9>CeQENG5p_;Y~{3`c+X4 z@?GX$q{Kd%0N;h!EDq>}J^X`o@bhBUUIzaX{lNS^{EyTS)$@R=b}Z8A9OK?=^d((h zS@v;|(uwUx-r`j{t$wNNiu1$_){Szf5+6A7)h8_Rx>$GQ3r|{9;^Iu!sVO%|Y!IDV z%zw$B{KCVQrTg^LvGklewyl4RY>= zw-de;N;e=k!i6d++)Tj9j zdpy!FKKiDk|7#Ft{Ao~Nj%YZzyZ z9nfsx;0cVywN>cpLl)Q8NY0mh<6X{aOZk?^I&Oxqa*A~1wvO4*R-E^~lP?VV$p*~_ ze<1%x&V9wI_&RDfNu5F~2pwqRJXb{h62ml|G^qnRZ(cIxOq7$@hB=Hs{hV4_L%JFM zk7<#ThkdofhHZfLvJMOUOPi7YNGv_E2^PMR(AsAFwWcKU9h-zA;;_Tlyi52o9S=XA zZyl}R3sx;42Bf9Matyx%=7!nOk|ywh_1v9D2KhNcdz;|*OT8ZIO;NVwXOl-8OW2<* zIkLxsXLCqv0f&S__irSw<^;~5^veTIDM-(-_iiMvW*zWipR14OOxytvtm2}7R!Kab z=YMwoiM|ED1DJqhBrHK(A8i?;@U^*nF68te1COv?z6;+{Nt2H=Z~iBaK6U#cCOpUESdO+F+UFv z{&mo#XU9An{=xmqS(Phe7gf%6uYzSa1U#F+1W2%V7q{0DDPrT-MTQvP8@IKJzE4QIB0gUK5q zv7U`X;3EE(1TJT=)p&LYOo%)49hhwYH<$!#FnJr8y!!tEOsa>#WFatFs>XT*E}S1b zP63mS5cqGvYNSe&Wp*}(PffI+~oW2Er(D+sV_-VlZ>JRx65T2Rfz2r;nMYi!7 zMdPPr7EPR`(k4;fLMT*YTqy%|x=B(VE zr1#2t^{M!HQ^P%7lZZvBjxvjnTmmV1yGAMg-(e^Il5Vv5aco|n$(q&wSDgj=InFHj zCJ7#zxQ~1#H^RJ!NpFWt+T|RX!K1uZKvBD3`B;W1i6a1sK=e}p^ zTGMyG|BUZP2fugRJEWaht(_n9{VV(}h#hdCje_MNZ7W&Y z!p8qX8*chz`);0i$ulVsOCj(-hW2BG*3L-sdV@LS`wd@C>HQ^|K^Fdy};B%d4FbBva6)rEY=p-B#suZHj7 zpYkI7yQGuf6{3_kgO7ygTwzkmvn8GOT;WQ&oFBy}!Afj`uVvqnXORJj{-HdJ98oKG zQGMbIc_ruk1Bbrtr?l^-{e`sQq7Osck@MqxE&sRUmvQ}aU|ceGftB>5g}#2@*d7@i zn|@#nGPaRQ`6=d#)<=s{?!A6s%wq#%ma)uWEZX;r%DLHdF7A_zp-jd=U9;)a(E4P| zd(lHVaOj>3Fi&I*O9#dPU8DW$3H-y++P^8kkWa?CcpzWez*z5tPBsJoi~qOu;b!s* z4DIyUI`|(iSIVKm0%Nrej8*>QM5R2GdSt9+isb9vu;G#Orj5|&H7vJ_z z+MFiirrzYiaSzlz=X=I2gXT9rzbOTkBFE5%^%1(^$~mR2YP!x~* z13j4oJ(&YNdADln*jG5o>c3*Lb+b;XS07gDtMFfZ48EY8AD(7^U-W{crI9vVOZxyH z3Xe+qJCZ(iNcsrdgQRy6JH$vE8;ZNjeYzs%A&_@%XZC__&V!@nvr?w@O~Jmp`PlmoxX8YmrG8b8%jGv}{v5 zcP8mN9|V^ydr2t|gYO{c1@R-4t_yQdx^kmsIXZmOW<0dpe&m!}hy}a+RGwc!-ccex zusLtg&)&{AvwV^3HdxMB-?p5`*G*|rg0F*ldSj=o@Xq_@8A4%`WU4*89QM9 z74V1`-wx)r?;kHC1`BZ_BYGr8^f(BQEasT_2$6oI(hth_4wmoY{Pb=42y+s$xT^P0 zUZ|sxIu;xB-&@BC`mg{y_v6TE7ZV3X>XCS^D!hep)U)pW6Bp`%2N9DMsvD?B|DC=J z)}!M*DRl_UP6Wg2pwBwSba6cyK?C)KWSG62tz|sN=!+hHgrd`%1s3t>WJ_IcVwV=e zH%j{E{N4oD>PKXqoX|(wBwmB?4ys=p=UEqOUslLCG82@j%%Dpm3c2i+i^CUH7KV#& zlfg4S`iwo|yJ-KH==Th1H;8uix(M?^bjky5>$SE$U!9*QyjLBP6F2{sGd2n;{0Cwz?cWed;e>fdbSRX7as*b z*zN+xt7p7xd(Y3?G}tcxLj3^Cd4I5Vn#c=k>H^WCy=9(RbtmYBLFZ;Xf z4b4@z`ij;O!(wrzzd37^Pjrxw>mVyKxyPsC9}9K7Y~vfmeC5oK%ueJsn~}Q|%X=lU zx_B46U-v6FZCZAhU2OQ#3#+lXXK;R3!yHy{$e=E&moq`=v3=1+cPaktu!9!S!LXu} zQM6d`?`pr*w`@KAxV_T9D{CY=VBu!r_qWoAee@y6_@>r}uz^188|XvWg+7=XmeGfj zdjonst@NRlKIDLRw-h;Vad9Qj zBk{cxW|pyTOeGd+n905L-}+$E;4s(+iJdV=`f%TO`+y#$=9hWrfNtFzYN*)+9G2dv z;0x^y;=!2Qb@(D%S_~Yr=KGdCX!kEI0S@>s3&4T6%UU1Mxf|$1=mj{0YJCVDfI}Vp zlREhqYXbU5qWfb24x%$7I*SIr3-26%^3hGI!R%V2_zy5A;^~8dKDbJ-;X#i3Jh=K6 z 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 AHi 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 OB=SPG8q3^x< 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 literal 0 HcmV?d00001 diff --git a/app/src/main/jniLibs/armeabi-v7a/libopus.so b/app/src/main/jniLibs/armeabi-v7a/libopus.so new file mode 100644 index 0000000000000000000000000000000000000000..21a73b8a3e840577d7b8332e68b778a166c41d60 GIT binary patch literal 341632 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ʼ$ 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 KCKM!&1^*YIc1DB% literal 0 HcmV?d00001 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a1596be..1cd9aff 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -35,7 +35,7 @@ immersionbar = "3.2.2" immersionbarKtx = "3.2.2" immersionbarComponents = "3.2.2" lifecycleRuntimeAndroid = "2.9.1" - +opus = "1.3.1" [libraries] android-spinkit = { module = "com.github.ybq:Android-SpinKit", version.ref = "androidSpinkit" } androidautosize = { module = "com.github.JessYanCoding:AndroidAutoSize", version.ref = "androidautosize" } @@ -73,7 +73,7 @@ immersionbar-components = { module = "com.geyifeng.immersionbar:immersionbar-com immersionbar-ktx = { module = "com.geyifeng.immersionbar:immersionbar-ktx", version.ref = "immersionbarKtx" } immersionbar = { module = "com.geyifeng.immersionbar:immersionbar", version.ref = "immersionbar" } androidx-lifecycle-runtime-android = { group = "androidx.lifecycle", name = "lifecycle-runtime-android", version.ref = "lifecycleRuntimeAndroid" } - +opus-v131 = { module = "com.fpliu.ndk.pkg.prefab.android.21:opus", version.ref = "opus" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } diff --git a/settings.gradle b/settings.gradle index f5aa8b0..42b6635 100644 --- a/settings.gradle +++ b/settings.gradle @@ -16,6 +16,10 @@ pluginManagement { maven { setUrl("https://maven.aliyun.com/repository/public") } maven { url "https://jitpack.io" } maven { url "https://s01.oss.sonatype.org/content/groups/public" } + + maven { + url = uri("https://raw.githubusercontent.com/leleliu008/ndk-pkg-prefab-aar-maven-repo/master") + } } resolutionStrategy { @@ -39,6 +43,9 @@ dependencyResolutionManagement { mavenCentral() maven { url "https://jitpack.io" } maven { url "https://s01.oss.sonatype.org/content/groups/public" } + maven { + url = uri("https://raw.githubusercontent.com/leleliu008/ndk-pkg-prefab-aar-maven-repo/master") + } } }