From 689fb7a167bebd879d1e36c2b790d3c8ba5277da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Wed, 11 Feb 2026 11:40:01 +0000 Subject: [PATCH 01/19] Adding VX4 Support --- Jenkinsfile | 25 ++++++++++++++--- .../api/mic_array/etc/xcore_compat.h | 2 -- lib_mic_array/src/deinterleave2.S | 23 ++++++++++++++++ tests/unit/CMakeLists.txt | 27 ++++++++++++++++--- tests/unit/src/main.c | 23 ++++++++-------- 5 files changed, 80 insertions(+), 20 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 64056a87..9c8facfd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,6 @@ // This file relates to internal XMOS infrastructure and should be ignored by external users -@Library('xmos_jenkins_shared_library@v0.44.0') _ +@Library('xmos_jenkins_shared_library@0.45.0') _ getApproval() pipeline { @@ -12,6 +12,11 @@ pipeline { defaultValue: '15.3.1', description: 'The XTC tools version' ) + string( + name: 'TOOLS_VX4_VERSION', + defaultValue: '-j --repo arch_vx_slipgate -b master -a XTC 112', + description: 'The XTC Slipgate tools version' + ) string( name: 'XMOSDOC_VERSION', defaultValue: 'v8.0.1', @@ -116,7 +121,7 @@ pipeline { } // parallel } // stage 'Build' - stage('Test') { + stage('Test XS3') { parallel { stage('XCommon build ') { agent { @@ -232,7 +237,8 @@ pipeline { archiveArtifacts artifacts: "**/*.pkl", allowEmptyArchive: true } } - } // stage('Run tests') + } // stage('Run tests') + } // stages post { cleanup { @@ -242,6 +248,19 @@ pipeline { } // stage('HW tests') } // parallel } // stage('Test') + + stage('Test VX4') { + dir("${REPO_NAME}/tests/unit") { + xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_SLIPGATE_VERSION) + sh "xsim bin/tests-unit.xe" + } + post { + cleanup { + xcoreCleanSandbox() + } + } + } + stage('🚀 Release') { when { expression { triggerRelease.isReleasable() } diff --git a/lib_mic_array/api/mic_array/etc/xcore_compat.h b/lib_mic_array/api/mic_array/etc/xcore_compat.h index 2d70e63d..c4c5e9b2 100644 --- a/lib_mic_array/api/mic_array/etc/xcore_compat.h +++ b/lib_mic_array/api/mic_array/etc/xcore_compat.h @@ -32,11 +32,9 @@ extern "C" { #else //__XC__ -#include #include #include #include #include #endif //__XC__ - diff --git a/lib_mic_array/src/deinterleave2.S b/lib_mic_array/src/deinterleave2.S index 6c08f352..682cb4e4 100644 --- a/lib_mic_array/src/deinterleave2.S +++ b/lib_mic_array/src/deinterleave2.S @@ -41,3 +41,26 @@ deinterleave2: .size deinterleave2, .L_end - deinterleave2 #endif // __XS3A__ + +#if defined(__VX4A__) || defined(__VX4B__) + +#define FUNCTION_NAME deinterleave2 +#define NSTACK_BYTES 16 // minimum + +.p2align 1 +.globl FUNCTION_NAME +.type FUNCTION_NAME,@function +FUNCTION_NAME: + xm.entsp NSTACK_BYTES + xm.ldd a1, a2, 0(a0) + xm.unzip a1, a2, 0 //Note: unzip swaps output positions + xm.std a2, a1, 0(a0) + xm.retsp NSTACK_BYTES + +.size FUNCTION_NAME, . -FUNCTION_NAME +.resource_const FUNCTION_NAME, "stack_frame_bytes", NSTACK_BYTES +.resource_list_empty FUNCTION_NAME, "callees" +.resource_list_empty FUNCTION_NAME, "tail_callees" +.resource_list_empty FUNCTION_NAME, "parallel_callees" + +#endif // __VX4A__ || __VX4B__ diff --git a/tests/unit/CMakeLists.txt b/tests/unit/CMakeLists.txt index 557f0416..17bb138c 100644 --- a/tests/unit/CMakeLists.txt +++ b/tests/unit/CMakeLists.txt @@ -4,10 +4,20 @@ include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake) project(tests-unit) set(XMOS_SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) -set(APP_HW_TARGET XK-EVK-XU316) set(APP_INCLUDES src) -set(APP_DEPENDENT_MODULES "lib_mic_array" "lib_unity(2.5.2)") -set(APP_COMPILER_FLAGS -O2 +set(APP_DEPENDENT_MODULES "lib_mic_array" "lib_unity(main)") #TODO release lib_unity + +# conditional depending on target +if(CMAKE_C_COMPILER_VERSION VERSION_EQUAL "3.6.0") + set(__XS3__ ON) # XS3 (XTC 15.3.1) +else() + set(__XS3__ OFF) # VX4 +endif() + + +if(__XS3__) # xs3 + set(APP_HW_TARGET XK-EVK-XU316) + set(APP_COMPILER_FLAGS -O2 -g -report -mcmodel=large @@ -17,5 +27,16 @@ set(APP_COMPILER_FLAGS -O2 -Wno-format -fxscope -DUNITY_INCLUDE_CONFIG_H=1) +else() # vx4 + set(APP_HW_TARGET XK-EVK-XU416) + set(APP_COMPILER_FLAGS + -Os + -g + -Wfptrgroup + -ffunction-sections + -fdata-sections + -Wl,--gc-sections + ) +endif() XMOS_REGISTER_APP() diff --git a/tests/unit/src/main.c b/tests/unit/src/main.c index 88172bff..a176b161 100644 --- a/tests/unit/src/main.c +++ b/tests/unit/src/main.c @@ -8,28 +8,27 @@ int main(int argc, const char* argv[]) { - xscope_config_io(XSCOPE_IO_BASIC); UnityGetCommandLineOptions(argc, argv); UnityBegin(argv[0]); printf("\n\n"); - RUN_TEST_GROUP(dcoe_state_init); - RUN_TEST_GROUP(dcoe_filter); - RUN_TEST_GROUP(DcoeSampleFilter); + // RUN_TEST_GROUP(dcoe_state_init); + // RUN_TEST_GROUP(dcoe_filter); + // RUN_TEST_GROUP(DcoeSampleFilter); - RUN_TEST_GROUP(ma_frame_tx_rx); - RUN_TEST_GROUP(ma_frame_tx_rx_transpose); - RUN_TEST_GROUP(ChannelFrameTransmitter); - RUN_TEST_GROUP(FrameOutputHandler); + // RUN_TEST_GROUP(ma_frame_tx_rx); + // RUN_TEST_GROUP(ma_frame_tx_rx_transpose); + // RUN_TEST_GROUP(ChannelFrameTransmitter); + // RUN_TEST_GROUP(FrameOutputHandler); RUN_TEST_GROUP(deinterleave2); - RUN_TEST_GROUP(deinterleave4); - RUN_TEST_GROUP(deinterleave8); - RUN_TEST_GROUP(deinterleave16); + // RUN_TEST_GROUP(deinterleave4); + // RUN_TEST_GROUP(deinterleave8); + // RUN_TEST_GROUP(deinterleave16); - RUN_TEST_GROUP(deinterleave_pdm_samples); + // RUN_TEST_GROUP(deinterleave_pdm_samples); return UNITY_END(); } From 9eb3a5c63210590ff68a8c4ac14f9dba87662dea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Wed, 11 Feb 2026 11:47:18 +0000 Subject: [PATCH 02/19] Fix library version format in Jenkinsfile --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9c8facfd..dae43408 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,6 @@ // This file relates to internal XMOS infrastructure and should be ignored by external users -@Library('xmos_jenkins_shared_library@0.45.0') _ +@Library('xmos_jenkins_shared_library@v0.45.0') _ getApproval() pipeline { From 9e2b65009b2e93d200371e28ea458aa2b96e73ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Wed, 11 Feb 2026 11:49:19 +0000 Subject: [PATCH 03/19] Add steps block to 'Test VX4' stage in Jenkinsfile --- Jenkinsfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index dae43408..b0987779 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -250,6 +250,7 @@ pipeline { } // stage('Test') stage('Test VX4') { + steps { dir("${REPO_NAME}/tests/unit") { xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_SLIPGATE_VERSION) sh "xsim bin/tests-unit.xe" @@ -259,6 +260,7 @@ pipeline { xcoreCleanSandbox() } } + } } stage('🚀 Release') { From 4bf09c44ed9e847a9564d8c0499fd3cb7007afba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Wed, 11 Feb 2026 11:51:54 +0000 Subject: [PATCH 04/19] Update Jenkinsfile to use the latest shared library version --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index b0987779..eb7bde85 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,6 @@ // This file relates to internal XMOS infrastructure and should be ignored by external users -@Library('xmos_jenkins_shared_library@v0.45.0') _ +@Library('xmos_jenkins_shared_library@develop') _ getApproval() pipeline { From efad02757f7099f20e6be9b7ee0aacdbf8f18291 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Wed, 11 Feb 2026 15:40:04 +0000 Subject: [PATCH 05/19] Refactor 'Test VX4' stage to improve structure and add SCM checkout --- Jenkinsfile | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index eb7bde85..6d2bc14b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -250,18 +250,24 @@ pipeline { } // stage('Test') stage('Test VX4') { - steps { - dir("${REPO_NAME}/tests/unit") { - xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_SLIPGATE_VERSION) - sh "xsim bin/tests-unit.xe" - } - post { - cleanup { - xcoreCleanSandbox() + agent {label "x86_64 && linux"} + steps { + println "Stage running on ${env.NODE_NAME}" + dir(REPO_NAME){ + checkoutScmShallow() + dir("tests/unit") { + xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_SLIPGATE_VERSION) + withTools(params.TOOLS_SLIPGATE_VERSION) {sh "xsim bin/tests-unit.xe"} + } + } } - } - } - } + post { + cleanup { + xcoreCleanSandbox() + } + } //post + } // stage('Test VX4') + stage('🚀 Release') { when { From 1c937c0a37a117bc8353a76e478947da665acf22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Wed, 11 Feb 2026 16:20:39 +0000 Subject: [PATCH 06/19] Update 'Test VX4' stage to use correct tools version for unit tests --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 6d2bc14b..1511f599 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -256,8 +256,8 @@ pipeline { dir(REPO_NAME){ checkoutScmShallow() dir("tests/unit") { - xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_SLIPGATE_VERSION) - withTools(params.TOOLS_SLIPGATE_VERSION) {sh "xsim bin/tests-unit.xe"} + xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_VX4_VERSION) + withTools(params.TOOLS_VX4_VERSION) {sh "xsim bin/tests-unit.xe"} } } } From cb3a10587c27073abb0eb383deb6a761ed83eaba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Wed, 11 Feb 2026 16:42:43 +0000 Subject: [PATCH 07/19] Update dependent module version in lib_build_info.cmake to use 'develop' branch --- lib_mic_array/lib_build_info.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_mic_array/lib_build_info.cmake b/lib_mic_array/lib_build_info.cmake index b4c7e5ba..9a5cd3f2 100644 --- a/lib_mic_array/lib_build_info.cmake +++ b/lib_mic_array/lib_build_info.cmake @@ -1,6 +1,6 @@ set(LIB_NAME lib_mic_array) set(LIB_VERSION 6.0.0) -set(LIB_DEPENDENT_MODULES "lib_xcore_math(2.4.0)") +set(LIB_DEPENDENT_MODULES "lib_xcore_math(develop)") #TODO pin version set(LIB_INCLUDES api api/mic_array From 6a01bca2d4227669cbfcb0c0975b7ca9d99380f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Wed, 11 Feb 2026 17:11:48 +0000 Subject: [PATCH 08/19] Add cleanup step to 'Test' stage for sandbox environment --- Jenkinsfile | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Jenkinsfile b/Jenkinsfile index 1511f599..e7e235bf 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -247,6 +247,11 @@ pipeline { } } // stage('HW tests') } // parallel + post { + cleanup { + xcoreCleanSandbox() + } + } //post } // stage('Test') stage('Test VX4') { From 5dbab524703c4c8c9170b1b4f78477f31ab876e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Thu, 12 Feb 2026 09:14:38 +0000 Subject: [PATCH 09/19] Update Jenkinsfile to revert library version and restructure 'Test VX4' stage --- Jenkinsfile | 59 +++++++++++++++++++++++------------------------------ 1 file changed, 26 insertions(+), 33 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e7e235bf..9b204cd2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,6 @@ // This file relates to internal XMOS infrastructure and should be ignored by external users -@Library('xmos_jenkins_shared_library@develop') _ +@Library('xmos_jenkins_shared_library@v0.45.0') _ getApproval() pipeline { @@ -12,16 +12,16 @@ pipeline { defaultValue: '15.3.1', description: 'The XTC tools version' ) + string( + name: 'XMOSDOC_VERSION', + defaultValue: 'v8.0.1', + description: 'The xmosdoc version' + ) string( name: 'TOOLS_VX4_VERSION', defaultValue: '-j --repo arch_vx_slipgate -b master -a XTC 112', description: 'The XTC Slipgate tools version' ) - string( - name: 'XMOSDOC_VERSION', - defaultValue: 'v8.0.1', - description: 'The xmosdoc version') - string( name: 'INFR_APPS_VERSION', defaultValue: 'v3.3.0', @@ -121,6 +121,25 @@ pipeline { } // parallel } // stage 'Build' + stage('Test VX4') { + agent {label "x86_64 && linux"} + steps { + println "Stage running on ${env.NODE_NAME}" + dir(REPO_NAME){ + checkoutScmShallow() + dir("tests/unit") { + xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_VX4_VERSION) + withTools(params.TOOLS_VX4_VERSION) {sh "xsim bin/tests-unit.xe"} + } + } + } + post { + cleanup { + xcoreCleanSandbox() + } + } //post + } // stage('Test VX4') + stage('Test XS3') { parallel { stage('XCommon build ') { @@ -237,8 +256,7 @@ pipeline { archiveArtifacts artifacts: "**/*.pkl", allowEmptyArchive: true } } - } // stage('Run tests') - + } // stage('Run tests') } // stages post { cleanup { @@ -247,32 +265,7 @@ pipeline { } } // stage('HW tests') } // parallel - post { - cleanup { - xcoreCleanSandbox() - } - } //post } // stage('Test') - - stage('Test VX4') { - agent {label "x86_64 && linux"} - steps { - println "Stage running on ${env.NODE_NAME}" - dir(REPO_NAME){ - checkoutScmShallow() - dir("tests/unit") { - xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_VX4_VERSION) - withTools(params.TOOLS_VX4_VERSION) {sh "xsim bin/tests-unit.xe"} - } - } - } - post { - cleanup { - xcoreCleanSandbox() - } - } //post - } // stage('Test VX4') - stage('🚀 Release') { when { From f0eff4f063ce2b38f0319ee011befd8d50ee06ae Mon Sep 17 00:00:00 2001 From: xalbertoisorna Date: Thu, 12 Feb 2026 10:10:41 +0000 Subject: [PATCH 10/19] removing module build info --- Jenkinsfile | 26 ++------------------------ 1 file changed, 2 insertions(+), 24 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9b204cd2..3d3e9972 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -142,30 +142,7 @@ pipeline { stage('Test XS3') { parallel { - stage('XCommon build ') { - agent { - label "x86_64 && linux" - } - steps { - println "Stage running on ${env.NODE_NAME}" - dir(REPO_NAME){ - checkoutScmShallow() - dir("tests") { - withTools(params.TOOLS_VERSION) { - sh 'cmake -B build -G "Unix Makefiles"' - // Note no -C build so builds the xcommon Makefile - sh "xmake all -j 16" - } - archiveArtifacts artifacts: "**/*.xe", allowEmptyArchive: true - } - } - } - post { - cleanup { - xcoreCleanSandbox() - } - } //post - } // stage('XCommon build') + stage('Custom CMake build') { agent { label "x86_64 && linux" @@ -186,6 +163,7 @@ pipeline { } } } // stage('Custom CMake build') + stage('HW tests') { agent { label 'xcore.ai' From 0456a527787d1de4a9a7ef15287e18f3519084a2 Mon Sep 17 00:00:00 2001 From: xalbertoisorna Date: Thu, 12 Feb 2026 11:11:34 +0000 Subject: [PATCH 11/19] Deprecating Xcommon Support --- CHANGELOG.rst | 5 ++ Jenkinsfile | 79 ++++++------------ lib_mic_array/module_build_info | 18 ---- tests/Makefile | 15 ---- tests/app_xcommon_build/Makefile | 39 --------- tests/app_xcommon_build/src/XVF3610_Q60A.xn | 92 --------------------- tests/app_xcommon_build/src/main.xc | 45 ---------- 7 files changed, 32 insertions(+), 261 deletions(-) delete mode 100644 lib_mic_array/module_build_info delete mode 100644 tests/Makefile delete mode 100644 tests/app_xcommon_build/Makefile delete mode 100644 tests/app_xcommon_build/src/XVF3610_Q60A.xn delete mode 100644 tests/app_xcommon_build/src/main.xc diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 171e4824..0de02d46 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,6 +1,11 @@ lib_mic_array change log ======================== +UNRELEASED +---------- + + * DEPRECATED: Removed XCommon support. + 6.0.0 ----- diff --git a/Jenkinsfile b/Jenkinsfile index 64056a87..13b738c2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,6 @@ // This file relates to internal XMOS infrastructure and should be ignored by external users -@Library('xmos_jenkins_shared_library@v0.44.0') _ +@Library('xmos_jenkins_shared_library@v0.45.0') _ getApproval() pipeline { @@ -116,53 +116,30 @@ pipeline { } // parallel } // stage 'Build' - stage('Test') { - parallel { - stage('XCommon build ') { - agent { - label "x86_64 && linux" - } - steps { - println "Stage running on ${env.NODE_NAME}" - dir(REPO_NAME){ - checkoutScmShallow() - dir("tests") { - withTools(params.TOOLS_VERSION) { - sh 'cmake -B build -G "Unix Makefiles"' - // Note no -C build so builds the xcommon Makefile - sh "xmake all -j 16" - } - archiveArtifacts artifacts: "**/*.xe", allowEmptyArchive: true - } - } - } - post { - cleanup { - xcoreCleanSandbox() - } - } //post - } // stage('XCommon build') - stage('Custom CMake build') { - agent { - label "x86_64 && linux" - } - steps { - sh "git clone git@github.com:xmos/xmos_cmake_toolchain.git --branch v1.0.0" - dir(REPO_NAME) { - checkoutScmShallow() - withTools(params.TOOLS_VERSION) { - sh "cmake -B build.xcore -DDEV_LIB_MIC_ARRAY=1 -DCMAKE_TOOLCHAIN_FILE=../xmos_cmake_toolchain/xs3a.cmake" - sh "cd build.xcore && make all -j 16" - } - } - } - post { - cleanup { - xcoreCleanSandbox() - } + stage('Custom CMake build test') { + agent { + label "x86_64 && linux" + } + steps { + sh "git clone git@github.com:xmos/xmos_cmake_toolchain.git --branch v1.0.0" + dir(REPO_NAME) { + checkoutScmShallow() + withTools(params.TOOLS_VERSION) { + sh "cmake -B build.xcore -DDEV_LIB_MIC_ARRAY=1 -DCMAKE_TOOLCHAIN_FILE=../xmos_cmake_toolchain/xs3a.cmake" + sh "cd build.xcore && make all -j 16" } - } // stage('Custom CMake build') - stage('HW tests') { + } + } + post { + cleanup { + xcoreCleanSandbox() + } + } + } // stage('Custom CMake build') + + stage('Tests') { + parallel { + stage('XS3 tests') { agent { label 'xcore.ai' } @@ -184,8 +161,6 @@ pipeline { dir("${REPO_NAME}/tests") { withTools(params.TOOLS_VERSION) { withVenv { - // Use xtagctl to reset the relevent adapters first, if attached, to be safe. - // sh "xtagctl reset_all XVF3800_INT XVF3600_USB" // This ensures a project for XS2 can be built and runs OK sh "xsim test_xs2_benign/bin/xs2.xe" @@ -217,7 +192,6 @@ pipeline { } } } - dir("signal/TwoStageDecimator") { runPytest('-v --numprocesses=1') } @@ -241,7 +215,8 @@ pipeline { } } // stage('HW tests') } // parallel - } // stage('Test') + } // stage('Tests') + stage('🚀 Release') { when { expression { triggerRelease.isReleasable() } @@ -249,6 +224,6 @@ pipeline { steps { triggerRelease() } - } + } // Release stage } // stages } // pipeline diff --git a/lib_mic_array/module_build_info b/lib_mic_array/module_build_info deleted file mode 100644 index e0fe1db0..00000000 --- a/lib_mic_array/module_build_info +++ /dev/null @@ -1,18 +0,0 @@ -VERSION = 6.0.0 - -DEPENDENT_MODULES = lib_xcore_math(>=2.4.0) - -MODULE_XCC_FLAGS = $(XCC_FLAGS) -g -Os - -# there is no MODULE_XCC_CPP_FLAGS -# MODULE_XCC_CPP_FLAGS = -std=c++11 -XCC_FLAGS_Util.cpp = -std=c++11 $(XCC_FLAGS) -XCC_FLAGS_mic_array_task.cpp = -std=c++11 $(XCC_FLAGS) - -OPTIONAL_HEADERS += mic_array_conf.h - -INCLUDE_DIRS = src api - - -SOURCE_DIRS = src \ - src/etc diff --git a/tests/Makefile b/tests/Makefile deleted file mode 100644 index 30207640..00000000 --- a/tests/Makefile +++ /dev/null @@ -1,15 +0,0 @@ - -# This variable should contain a space separated list of all -# the directories containing buildable applications (usually -# prefixed with the app_ prefix) -# -# If the variable is set to "all" then all directories that start with app_ -# are built. -BUILD_SUBDIRS = all - -include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.toplevel - - -# This folder is for making sure that the module_build_info in the -# library is correct. Not an app that needs to be run, just built. - diff --git a/tests/app_xcommon_build/Makefile b/tests/app_xcommon_build/Makefile deleted file mode 100644 index a8761cc8..00000000 --- a/tests/app_xcommon_build/Makefile +++ /dev/null @@ -1,39 +0,0 @@ -# The TARGET variable determines what target system the application is -# compiled for. It either refers to an XN file in the source directories -# or a valid argument for the --target option when compiling. - -TARGET = XVF3610_Q60A.xn - -# The APP_NAME variable determines the name of the final .xe file. It should -# not include the .xe postfix. If left blank the name will default to -# the project name - -APP_NAME = legacy_build - -SOURCE_DIRS = src - - -# The flags passed to xcc when building the application -# You can also set the following to override flags for a particular language: -# -# XCC_XC_FLAGS, XCC_C_FLAGS, XCC_ASM_FLAGS, XCC_CPP_FLAGS -# -# If the variable XCC_MAP_FLAGS is set it overrides the flags passed to -# xcc for the final link (mapping) stage. - -XCC_FLAGS = -fxscope -g -mcmodel=large \ - -report -Os \ - -DMIC_ARRAY_CONFIG_MIC_COUNT=2 \ - -DMIC_ARRAY_CONFIG_SAMPLES_PER_FRAME=16 - -XCC_CPP_FLAGS = $(XCC_FLAGS) -std=c++11 - -# The USED_MODULES variable lists other module used by the application. - -USED_MODULES = lib_mic_array - -#============================================================================= -# The following part of the Makefile includes the common build infrastructure -# for compiling XMOS applications. You should not need to edit below here. - -include $(XMOS_MAKE_PATH)/xcommon/module_xcommon/build/Makefile.common diff --git a/tests/app_xcommon_build/src/XVF3610_Q60A.xn b/tests/app_xcommon_build/src/XVF3610_Q60A.xn deleted file mode 100644 index a8e645da..00000000 --- a/tests/app_xcommon_build/src/XVF3610_Q60A.xn +++ /dev/null @@ -1,92 +0,0 @@ - - - - tileref tile[2] - tileref usb_tile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tests/app_xcommon_build/src/main.xc b/tests/app_xcommon_build/src/main.xc deleted file mode 100644 index fd2741db..00000000 --- a/tests/app_xcommon_build/src/main.xc +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2022-2026 XMOS LIMITED. -// This Software is subject to the terms of the XMOS Public Licence: Version 1. - - -#include -#include -#include -#include - -#include -#include -#include -#include "mic_array.h" - -///////////////////////////////////////////////////////////////////////////// -// WARNING: This is just a test app to make sure the library's -// module_build_info is correct. This app doesn't actually do -// anything at the moment. -///////////////////////////////////////////////////////////////////////////// -on tile[PORT_PDM_CLK_TILE_NUM] : port p_mclk = PORT_MCLK_IN_OUT; -on tile[PORT_PDM_CLK_TILE_NUM] : port p_pdm_clk = PORT_PDM_CLK; -on tile[PORT_PDM_CLK_TILE_NUM] : port p_pdm_data = PORT_PDM_DATA; -on tile[PORT_PDM_CLK_TILE_NUM] : clock clk_a = XS1_CLKBLK_1; -on tile[PORT_PDM_CLK_TILE_NUM] : clock clk_b = XS1_CLKBLK_2; - -unsafe{ - -int main() { - chan c_audio_frames; - par { - on tile[0]: { - xscope_config_io(XSCOPE_IO_BASIC); - } - on tile[1]: { - xscope_config_io(XSCOPE_IO_BASIC); - pdm_rx_resources_t pdm_res = PDM_RX_RESOURCES_DDR(p_mclk, p_pdm_clk, p_pdm_data, 24576000, 3072000, clk_a, clk_b); - mic_array_init(&pdm_res, null, 16000); - par { mic_array_start((chanend_t) c_audio_frames); } - } - } - - return 0; -} - -} From a73950d5b2523ee220ec72ef9ac21192b43173a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Thu, 12 Feb 2026 11:17:27 +0000 Subject: [PATCH 12/19] Add VX4 Tests stage and correct XS3 Tests casing in Jenkinsfile --- Jenkinsfile | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 8ef63a00..17d7f642 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -144,7 +144,7 @@ pipeline { stage('Tests') { parallel { - stage('XS3 tests') { + stage('XS3 Tests') { agent { label 'xcore.ai' } @@ -218,7 +218,25 @@ pipeline { xcoreCleanSandbox() } } - } // stage('HW tests') + } // XS3 Tests + + stage('VX4 Tests') { + agent {label "x86_64 && linux"} + steps { + println "Stage running on ${env.NODE_NAME}" + dir(REPO_NAME){ + checkoutScmShallow() + dir("tests/unit") { + xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_VX4_VERSION) + withTools(params.TOOLS_VX4_VERSION) {sh "xsim bin/tests-unit.xe"} + } // dir("tests/unit") + } // dir(REPO_NAME) + } // steps + post { + cleanup {xcoreCleanSandbox()} + } //post + } // VX4 Tests + } // parallel } // stage('Tests') From 6ee68b2fb4400d9690e39245c3f41d78e159918e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Thu, 12 Feb 2026 17:37:19 +0000 Subject: [PATCH 13/19] Implement VX4 support in deinterleave4 and update test configurations --- Jenkinsfile | 29 +++++++++++-------------- lib_mic_array/src/deinterleave4.S | 36 +++++++++++++++++++++++++++++++ tests/unit/CMakeLists.txt | 4 ---- tests/unit/src/main.c | 2 +- 4 files changed, 50 insertions(+), 21 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 17d7f642..80c39677 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -145,9 +145,7 @@ pipeline { stage('Tests') { parallel { stage('XS3 Tests') { - agent { - label 'xcore.ai' - } + agent {label 'xcore.ai'} stages { stage("Checkout and Build") { steps { @@ -214,24 +212,23 @@ pipeline { } // stage('Run tests') } // stages post { - cleanup { - xcoreCleanSandbox() - } - } + cleanup {xcoreCleanSandbox()} + } // post } // XS3 Tests stage('VX4 Tests') { agent {label "x86_64 && linux"} - steps { - println "Stage running on ${env.NODE_NAME}" - dir(REPO_NAME){ - checkoutScmShallow() - dir("tests/unit") { + stages { + stage("Checkout and Build") { + dir(REPO_NAME){ + checkoutScmShallow() xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_VX4_VERSION) - withTools(params.TOOLS_VX4_VERSION) {sh "xsim bin/tests-unit.xe"} - } // dir("tests/unit") - } // dir(REPO_NAME) - } // steps + } + } + stage('Run tests') { + withTools(params.TOOLS_VX4_VERSION) {sh "xsim bin/tests-unit.xe"} + } + } // stages post { cleanup {xcoreCleanSandbox()} } //post diff --git a/lib_mic_array/src/deinterleave4.S b/lib_mic_array/src/deinterleave4.S index 0d383e9c..2c0c4f0d 100644 --- a/lib_mic_array/src/deinterleave4.S +++ b/lib_mic_array/src/deinterleave4.S @@ -85,3 +85,39 @@ deinterleave4: .size deinterleave4, .L_end - deinterleave4 #endif // __XS3A__ + +#if defined(__VX4A__) || defined(__VX4B__) + +#define FUNCTION_NAME deinterleave4 +#define NSTACK_WORDS 4 +#define NSTACK_BYTES (NSTACK_WORDS*4) // minimum + +//Note: on vx4 unzip swaps output positions + +.p2align 1 +.globl FUNCTION_NAME +.type FUNCTION_NAME,@function +FUNCTION_NAME: + xm.entsp NSTACK_BYTES + // load 4 words + xm.stdsp s2, s3, 0*8 + xm.ldd a1, a2, 8(a0) + xm.ldd s2, s3, 0(a0) + // deinterleave both registers + xm.unzip a1, a2, 1 + xm.unzip s2, s3, 1 + xm.unzip a1, s2, 0 + xm.unzip a2, s3, 0 + // store back + xm.std s2, a1, 0(a0) + xm.std s3, a2, 8(a0) + xm.lddsp s2, s3, 0*8 + xm.retsp NSTACK_BYTES + +.size FUNCTION_NAME, . -FUNCTION_NAME +.resource_const FUNCTION_NAME, "stack_frame_bytes", NSTACK_BYTES +.resource_list_empty FUNCTION_NAME, "callees" +.resource_list_empty FUNCTION_NAME, "tail_callees" +.resource_list_empty FUNCTION_NAME, "parallel_callees" + +#endif // __VX4A__ || __VX4B__ diff --git a/tests/unit/CMakeLists.txt b/tests/unit/CMakeLists.txt index 17bb138c..cdf3e488 100644 --- a/tests/unit/CMakeLists.txt +++ b/tests/unit/CMakeLists.txt @@ -32,10 +32,6 @@ else() # vx4 set(APP_COMPILER_FLAGS -Os -g - -Wfptrgroup - -ffunction-sections - -fdata-sections - -Wl,--gc-sections ) endif() diff --git a/tests/unit/src/main.c b/tests/unit/src/main.c index a176b161..d37d665b 100644 --- a/tests/unit/src/main.c +++ b/tests/unit/src/main.c @@ -24,7 +24,7 @@ int main(int argc, const char* argv[]) // RUN_TEST_GROUP(FrameOutputHandler); RUN_TEST_GROUP(deinterleave2); - // RUN_TEST_GROUP(deinterleave4); + RUN_TEST_GROUP(deinterleave4); // RUN_TEST_GROUP(deinterleave8); // RUN_TEST_GROUP(deinterleave16); From 512bfb80ff3adeaa1b9c9c55dea8ba45d77de0f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Fri, 13 Feb 2026 10:34:26 +0000 Subject: [PATCH 14/19] Refactor deinterleave4 assembly code to use indexed load/store instructions for improved performance --- Jenkinsfile | 10 +++++++--- lib_mic_array/src/deinterleave4.S | 8 ++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 80c39677..479767ed 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -220,14 +220,18 @@ pipeline { agent {label "x86_64 && linux"} stages { stage("Checkout and Build") { + steps { dir(REPO_NAME){ + dir("tests/unit") { checkoutScmShallow() xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_VX4_VERSION) - } + }}} } stage('Run tests') { - withTools(params.TOOLS_VX4_VERSION) {sh "xsim bin/tests-unit.xe"} - } + steps { + dir("tests/unit") { + withTools(params.TOOLS_VX4_VERSION) {sh "xsim bin/tests-unit.xe"} + }}} } // stages post { cleanup {xcoreCleanSandbox()} diff --git a/lib_mic_array/src/deinterleave4.S b/lib_mic_array/src/deinterleave4.S index 2c0c4f0d..862fc63a 100644 --- a/lib_mic_array/src/deinterleave4.S +++ b/lib_mic_array/src/deinterleave4.S @@ -101,16 +101,16 @@ FUNCTION_NAME: xm.entsp NSTACK_BYTES // load 4 words xm.stdsp s2, s3, 0*8 - xm.ldd a1, a2, 8(a0) - xm.ldd s2, s3, 0(a0) + xm.lddi a1, a2, 8(a0) + xm.lddi s2, s3, 0(a0) // deinterleave both registers xm.unzip a1, a2, 1 xm.unzip s2, s3, 1 xm.unzip a1, s2, 0 xm.unzip a2, s3, 0 // store back - xm.std s2, a1, 0(a0) - xm.std s3, a2, 8(a0) + xm.stdi s2, a1, 0(a0) + xm.stdi s3, a2, 8(a0) xm.lddsp s2, s3, 0*8 xm.retsp NSTACK_BYTES From a1873ab6bbda07eaa1285a10fb3ebf857ded3ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Fri, 13 Feb 2026 14:27:30 +0000 Subject: [PATCH 15/19] Fix VX4 compatibility in deinterleave2 and deinterleave4 assembly code by reversing ldd/std operations and updating unzip logic --- Jenkinsfile | 8 +++---- lib_mic_array/src/deinterleave2.S | 8 ++++--- lib_mic_array/src/deinterleave4.S | 40 +++++++++++++++++++------------ 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 479767ed..a4f63256 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -222,16 +222,16 @@ pipeline { stage("Checkout and Build") { steps { dir(REPO_NAME){ - dir("tests/unit") { checkoutScmShallow() - xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_VX4_VERSION) + dir("tests/unit") { + xcoreBuild(buildTool: "xmake", toolsVersion: params.TOOLS_VX4_VERSION) }}} - } + } // stage("Checkout and Build") stage('Run tests') { steps { dir("tests/unit") { withTools(params.TOOLS_VX4_VERSION) {sh "xsim bin/tests-unit.xe"} - }}} + }}} // stage('Run tests') } // stages post { cleanup {xcoreCleanSandbox()} diff --git a/lib_mic_array/src/deinterleave2.S b/lib_mic_array/src/deinterleave2.S index 682cb4e4..923c5461 100644 --- a/lib_mic_array/src/deinterleave2.S +++ b/lib_mic_array/src/deinterleave2.S @@ -47,14 +47,16 @@ deinterleave2: #define FUNCTION_NAME deinterleave2 #define NSTACK_BYTES 16 // minimum +// Note: ldd and std are reversed in vx4 + .p2align 1 .globl FUNCTION_NAME .type FUNCTION_NAME,@function FUNCTION_NAME: xm.entsp NSTACK_BYTES - xm.ldd a1, a2, 0(a0) - xm.unzip a1, a2, 0 //Note: unzip swaps output positions - xm.std a2, a1, 0(a0) + xm.ldd a2, a1, 0(a0) + xm.unzip a2, a1, 0 + xm.std a1, a2, 0(a0) xm.retsp NSTACK_BYTES .size FUNCTION_NAME, . -FUNCTION_NAME diff --git a/lib_mic_array/src/deinterleave4.S b/lib_mic_array/src/deinterleave4.S index 862fc63a..5a4a8ef9 100644 --- a/lib_mic_array/src/deinterleave4.S +++ b/lib_mic_array/src/deinterleave4.S @@ -90,29 +90,39 @@ deinterleave4: #define FUNCTION_NAME deinterleave4 #define NSTACK_WORDS 4 -#define NSTACK_BYTES (NSTACK_WORDS*4) // minimum +#define NSTACK_BYTES (NSTACK_WORDS*4) -//Note: on vx4 unzip swaps output positions +#define x a0 +#define a a1 +#define b a2 +#define c s2 +#define d s3 + +// Note: ldd and std are reversed in vx4 .p2align 1 .globl FUNCTION_NAME .type FUNCTION_NAME,@function FUNCTION_NAME: xm.entsp NSTACK_BYTES - // load 4 words xm.stdsp s2, s3, 0*8 - xm.lddi a1, a2, 8(a0) - xm.lddi s2, s3, 0(a0) - // deinterleave both registers - xm.unzip a1, a2, 1 - xm.unzip s2, s3, 1 - xm.unzip a1, s2, 0 - xm.unzip a2, s3, 0 - // store back - xm.stdi s2, a1, 0(a0) - xm.stdi s3, a2, 8(a0) + + // Save and Load + xm.ldd b, a, 8(a0) + xm.ldd d, c, 0(a0) + + // Deinterleave + xm.unzip b, a, 1 + xm.unzip d, c, 1 + xm.unzip c, a, 0 + xm.unzip d, b, 0 + + // Store and Restore regs + xm.std a, c, 0(a0) + xm.std b, d, 8(a0) + xm.lddsp s2, s3, 0*8 - xm.retsp NSTACK_BYTES + xm.retsp NSTACK_BYTES .size FUNCTION_NAME, . -FUNCTION_NAME .resource_const FUNCTION_NAME, "stack_frame_bytes", NSTACK_BYTES @@ -120,4 +130,4 @@ FUNCTION_NAME: .resource_list_empty FUNCTION_NAME, "tail_callees" .resource_list_empty FUNCTION_NAME, "parallel_callees" -#endif // __VX4A__ || __VX4B__ +#endif From cd8b3da090029e57f722e3d84cf737906cac2b93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Fri, 13 Feb 2026 14:33:51 +0000 Subject: [PATCH 16/19] Fix indentation in 'Run tests' stage and ensure proper directory context for unit tests --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index a4f63256..083da60b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -229,9 +229,10 @@ pipeline { } // stage("Checkout and Build") stage('Run tests') { steps { + dir(REPO_NAME){ dir("tests/unit") { withTools(params.TOOLS_VX4_VERSION) {sh "xsim bin/tests-unit.xe"} - }}} // stage('Run tests') + }}}} // stage('Run tests') } // stages post { cleanup {xcoreCleanSandbox()} From 614f61cbd443ac05ec2b96bef761019036807b8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Fri, 13 Feb 2026 16:01:18 +0000 Subject: [PATCH 17/19] Fix VX4 compiler flags configuration in CMakeLists.txt --- tests/unit/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/CMakeLists.txt b/tests/unit/CMakeLists.txt index cdf3e488..8c6d209b 100644 --- a/tests/unit/CMakeLists.txt +++ b/tests/unit/CMakeLists.txt @@ -14,7 +14,7 @@ else() set(__XS3__ OFF) # VX4 endif() - +# Target specific compiler flags if(__XS3__) # xs3 set(APP_HW_TARGET XK-EVK-XU316) set(APP_COMPILER_FLAGS -O2 @@ -32,7 +32,7 @@ else() # vx4 set(APP_COMPILER_FLAGS -Os -g - ) + -DUNITY_INCLUDE_CONFIG_H=1) endif() XMOS_REGISTER_APP() From 3f807823647f52f89d37367b8229f8fc6c572324 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Fri, 13 Feb 2026 16:27:37 +0000 Subject: [PATCH 18/19] adding basic example --- examples/app_mic_array_basic/CMakeLists.txt | 24 ++++++ examples/app_mic_array_basic/README.rst | 6 ++ examples/app_mic_array_basic/convert.py | 25 +++++++ .../app_mic_array_basic/mic_array_output.bin | Bin 0 -> 128000 bytes examples/app_mic_array_basic/output.wav | Bin 0 -> 128044 bytes .../src/XK-EVK-XU316-AIV.xn | 66 +++++++++++++++++ .../src/XK-EVK-XU316-AIV.xscope | 18 +++++ examples/app_mic_array_basic/src/app.c | 67 +++++++++++++++++ .../app_mic_array_basic/src/device_pll_ctrl.c | 32 ++++++++ .../app_mic_array_basic/src/device_pll_ctrl.h | 9 +++ examples/app_mic_array_basic/src/main.xc | 28 +++++++ lib_mic_array/src/deinterleave16.S | 26 +++++++ lib_mic_array/src/deinterleave8.S | 70 ++++++++++++++++++ tests/unit/src/main.c | 21 +++--- 14 files changed, 381 insertions(+), 11 deletions(-) create mode 100644 examples/app_mic_array_basic/CMakeLists.txt create mode 100644 examples/app_mic_array_basic/README.rst create mode 100644 examples/app_mic_array_basic/convert.py create mode 100644 examples/app_mic_array_basic/mic_array_output.bin create mode 100644 examples/app_mic_array_basic/output.wav create mode 100644 examples/app_mic_array_basic/src/XK-EVK-XU316-AIV.xn create mode 100644 examples/app_mic_array_basic/src/XK-EVK-XU316-AIV.xscope create mode 100644 examples/app_mic_array_basic/src/app.c create mode 100644 examples/app_mic_array_basic/src/device_pll_ctrl.c create mode 100644 examples/app_mic_array_basic/src/device_pll_ctrl.h create mode 100644 examples/app_mic_array_basic/src/main.xc diff --git a/examples/app_mic_array_basic/CMakeLists.txt b/examples/app_mic_array_basic/CMakeLists.txt new file mode 100644 index 00000000..6b7da34d --- /dev/null +++ b/examples/app_mic_array_basic/CMakeLists.txt @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.21) +include($ENV{XMOS_CMAKE_PATH}/xcommon.cmake) +project(app_mic_array) + +set(XMOS_SANDBOX_DIR ${CMAKE_CURRENT_LIST_DIR}/../../..) + +set(APP_HW_TARGET src/XK-EVK-XU316-AIV.xn) +set(APP_DEPENDENT_MODULES "lib_mic_array") +set(APP_INCLUDES src) + +set(APP_COMPILER_FLAGS + -Os + -g + -report + -Wall + -fxscope + -Wno-xcore-fptrgroup + # Mic array config + -DMIC_ARRAY_CONFIG_SAMPLES_PER_FRAME=320 + -DMIC_ARRAY_CONFIG_MIC_COUNT=1 + -DMIC_ARRAY_CONFIG_USE_PDM_ISR=1 +) + +XMOS_REGISTER_APP() diff --git a/examples/app_mic_array_basic/README.rst b/examples/app_mic_array_basic/README.rst new file mode 100644 index 00000000..578c1584 --- /dev/null +++ b/examples/app_mic_array_basic/README.rst @@ -0,0 +1,6 @@ +xrun --xscope bin/app_mic_array.xe +pyhton convert.py + +output: + +Converted mic_array_output.bin to output.wav with 1 channels, 16000 Hz sample rate, and 32 bits per sample. diff --git a/examples/app_mic_array_basic/convert.py b/examples/app_mic_array_basic/convert.py new file mode 100644 index 00000000..fe7fb9c8 --- /dev/null +++ b/examples/app_mic_array_basic/convert.py @@ -0,0 +1,25 @@ + +import numpy as np +import wave +import soundfile as sf + + +def convert_to_wav( + input_file, output_file, num_channels=1, sample_rate=16000, bits_per_sample=32 +): + with open(input_file, "rb") as inp_f: + data = inp_f.read() + data = np.frombuffer(data, dtype=np.int32) + + sf.write(output_file, data, sample_rate, subtype='PCM_32') + print(f"Converted {input_file} to {output_file} with {num_channels} channels, {sample_rate} Hz sample rate, and {bits_per_sample} bits per sample.") + + +if __name__ == "__main__": + convert_to_wav( + input_file="mic_array_output.bin", + output_file="output.wav", + num_channels=1, + sample_rate=16000, + bits_per_sample=32 + ) diff --git a/examples/app_mic_array_basic/mic_array_output.bin b/examples/app_mic_array_basic/mic_array_output.bin new file mode 100644 index 0000000000000000000000000000000000000000..f3a3f7e75e545804de7e0fed6509f4e09a5822a3 GIT binary patch literal 128000 zcmeEu1DB*(v}~j^3vEo>wr$%sr)}G|ZQJgiwryL}Dy9)H=H8$2?yOa7x~ej>KAf|6 zXn(-}{r7)Y;Qy|`|6PIqKd->IhId#$`8_U~e2?UPJ{s|mC!aiG;-pWRyVx^sOZANJ z-aTW@ug|!A%5zq^_?&UZXB<@Y8BPD=e`ddSN9W7Z~a8LKXLoy zPxN&D#OH55ad+;|T-En8bEf#rh(e!ve$i+8_k8Br&}XLG@rAROex+^EH?}c-=flqb za!KuV#+LT*6-@!%}icaFnd|zu!jk}ZswWi zX0*w}A>ZAsv&6+RaW3A;>|wk09^R_u;qlyVHoEBMOS;+cft#k8`n=U{9)9O$(@`G& zJ=Du)iM+h|*~3H|JS;lb!@^U&+-mf(=R6;qp7k;Dbsu-+^Ye2dKVzEvxnrQ8XJ7kS zvZz zdU$(_huJ54xUQ3zY3KX6_K%O(=la?5l%Js`e!AZH`Rr4Gg|-B_cvFZKv+D0X2r}P| zAYViTSfjI_r8oGv@tco%I{KORh>uUw=v;q#*=wke2~K#~u8o)fj`VWbd@p?iyu8@n z%g=Yc{L{uyi_g!@eFEI0(}kkfRIw{<_0)e14DGFfC8*)1VZN4x*)d!Ww;;O{qN+fl&E7y~NB z8qoJ|BkJcep-y@o;{p@fTsNV^Iuq^`FrjTzBiPu8^E4pcU;6t!47j-6fNMpKm{8G( zR|W%0AwSJnK`8fH3mroP>SbnLGB`SG2P3yT-eJ`i# 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 F{eOFj_|E_U literal 0 HcmV?d00001 diff --git a/examples/app_mic_array_basic/output.wav b/examples/app_mic_array_basic/output.wav new file mode 100644 index 0000000000000000000000000000000000000000..dc80920981ba6954ae510e3574d3c39d2e8637c5 GIT binary patch literal 128044 zcmeEu1G^+yv}}~C4%(QuZQHhOPTRI^+qT_3ZQHh{by!Bcn0tT5yEEVU`k;`Nx%XP3 zm5pmvubwsDfEJaSSL@z)NXA3}4EldUd41yp%*cqYorZLR9`k?y{ofh*zccWEXW;+W zGw`k99oA2Nk4q-sBYB^XMm*%nCy$so=~Lz|_Ke$7J>$D~&sg*8GcKR`jY1lz2cHBui3Hn8}6O*hFyYh_&e)6E`Ixt zgDSn}vfz83-}0Ut*1hM2*!S$Y?*qrx{lwE-KN0Rv+&=jeJ)J-C`I}GNo%=Ia_5IA8 zDLylz&}W`s^qKxWpLsU)ndx?X;q0YfXBp37!9x#YZy;V<0$dxx7V8o7BQlbepr zZu*zI`L2eWV;i`bGK-t_yLxytlb03DUY0oQVFIt4dFHtpZSru)cQ@-Saj{ICi+3`6 z*lxXtw`zHKJhz*TF1q=WZZ>@2rfH^LZ?&6;-?`azl!t#0^|DzaFK>SKFwq7Ni_Z11 z@Ki6i8hz|J&&Q@`eN24a#~u0n{9MS-nC5=&80hEO*M634>ZiT7kJ&r7%K!kHy0LoKZf&O1A#!hebq(^y zq5!LY^E1mSANx%5GHF>K+pP97c*V^_dEGpcQ0J$thbf#M-rnM2_Q@Wu>*QtH`97}w zUrBiYZZhgM$A*P=d;+Zo+z8VnZG=0X~ zx}M2ug&0$rEHaGjmJq0;-T(DH(B}j2_Zzb9C}3rb0hMA6==--3^>dj}C%ukwfeCG{ zo6upM33m#Z(6*@&Y;44N8j$WUy?+k_E^asAT2Uh=R5aq1!GKcvNrx}QH4Q?n{42n; zzkOVFQ`c;*pQdI$PJZC!)5JcOU+QCtN?uOWdM;Jp%c;74qpy1z)ym74Q67HT}KfUDwEHx#_3zvg@=nQf~{UC=1 zwN}dMcT)q*xx>#+x^`j401w>?@@b0@Pw03$b}-=JVXeoCCKT})(W;9H^`@E8$8UyL z>*eQU6XusUp=c%}iX}5*)P5tP&KPlajR{Y0SWvUD6*E0%q(5lFfa6A7%wa^{R7Uie z1ypHjK!r9y)YA|XWD3z%BuK|!A+{SGWb8kF7Rnpo+G;^|s}y9;(|(?+?qlxzK8Bz0 z@vQ1#o)vCp?C#-+41QM1?c>ECZl>?+=G$8y8nSrVys(GeCcC+Omxnoz`q=J~mj$b< z_Ad9*d_#5YFE5*9@N$=a4~L(L^q4fNn={7v8Eoh0?K}aN(|W6S*w0zty&P2E$4g25 z%-+DyF{-2M`}+9I?qmHgURr9XRzLH1qIzaW|6`cd_{cCyzghXV!>#rcWHl zEYD+Tc^%F3g=4sUY7Ad?ie=iWaV)kxo?RBiv&Yjo-ntma9%JH}|4cm3tcqi$#c_0P zie-r$Qi4zj|903TV&6WxG8okASEJjBT@L%iIKyuFW%8w`|7WWd81a&l<{R?ah^ z$28Tb^y8R0a=HJ*moS6Mg7aAUQJ(sDIWUi z)84;-B*5ZVeQc#Ya(9E585(;yuz{OX+q+r!h?^hGZa(boWP&gk`&D+cYBx7?O?0!w z9buW8>a)wdta#MJG8eu4qFQt=CcuW;f9W>(nI~tEqf~#}PYkeHD9DC-{};)jIvZrG zz9Hr-3>ZHH*EfdPRJCl~HQ@ew16~a=;J-fmUOgvoWh1QXjkvYagmx#z*aujU|AZNP z)KkCIQ}6x9g!%(iM}`_O_`Lybn;BtWWyIKECw`N3!GgCI7EF8w`;YEhZqL0-xcqUT_Uc^`-PZeobPQihm$Cpp4I z-Y7#J)mpgmiR{`T#O8dKK(r`$ib?OU!zp#8~VB7 zim+8zA8(FOj}3a5w55;jM|*j5M=OXFgyJ1#ct>SB>) zPTo1?V$t5}H>2ImyTr*gQ{owRB92*0$Ft#~IKI24{e9laBYB;yCyac5yo+}yxOhpm zVDzFmwux|Z^7|$BF;#opV%xVd*lCcZdPyOV&QF0{;ca}{5m(UlymXVt9Vwtp&Fdi#Tnr)I$Tax5`J$u z#YNi}CkNJavg7$U7HI8c1^w<@F(=dHi09-Uacu04=Z3jXew*uJ_1kU^eB$Pefgava z-&rf%8Q;sxvl;y?e>}jMzx=$ESAFERpY>m9joF0LJ_T7>z4q6sAZ;&$wC@PA`YLk& zO#|YF8Bt@Ha9&q2R2ML|suAfv81X2n5t+9D|Lv8<;YPGu2t=kPGgS+5Tv&)X#|9a# ze%^6!fd6W(6#VVyR$=8z>h-}i0X95(-BTy{>R0kHaFil7H|3NX8w|1&dcTIapAJ0>c5kgtIvv4 zEY2@HzrfFBZ@hdw#KSZOFTKJeck&DWE%7n9&d+(`B-^VA!#oVIezp+rJR~>&4Dot& zkk40=)3i?tZvcvJ7JeH|HqE2@&?m(D!jg-%UmH~hhFt>k4g?OC0+v~UacvCvx=Wa3 zs{wU|Ir@JBE}RsWm;q#Y4D7iA{1SGaCCq$zodM~m0hNU9cMG?EerQA>yAc!X8jw$T z_~9gA_hR63e=_%%AR7q}oj)63`I-Sc6{tQ& zFIj;6k&s-eI?+ex#Zo)OJQV`;_{HDo=fj-=M(TYl^bXMcPk^Vc1ZYYYq_tv*6T5}z z((`Io4zX^Y5Dzs9v4VQko2eAG0d53={H={R{m6vKoo38UWkIH=!lGF%cz@l3f_u$q z(%pm|ErrX>Cj66FwKU2A>k9)i2%CmR8Bk*-@Hmq`*U1olJwxn%F34>P_0H(^;*WY}+x7-jENH}9^^`(BBU-c*ALwmDV!y7z3lp-HGvRXv6IvuOVx9W* zb*+t$KC+K`Rox9n>@90V;xHptY%$=R-Y4G}6UOG#8k%IprEvy0(;M(WSanZVkty}v zNs^c6pG|xj(i^E#?x9mS}(S@0oM8NXVrO+es-M+ z@a=>EvsnYQrVj9;YDX6FoTLrJ$uId?<+7KTg;Ad`^s((CA2;k5cb*wwyFPwy{^V!8 z&f)CiLH4PuI>Qjxe^3vZu5}z6;?C^aN9whoPmos{lLr!oSgLA>$&QHwmmQ*9f#-Jk=JBL z>6cdIdTT|#Qx^Obw_ba}f@_s6cq-hqIEfW?j$6<)r4?ODSkd5bD~eCF;_yuij_5fM z4`Z0C50?>6T`S8eanlz-Ztcb4UNUj_5TPD_GK>u56(@%J_1z##i5q2BKYvz8 zI>d_rcb^aNK=A;76!3F_*79*_3D=W~ukQ2mKo2jSLsi%Q_Ob9g@!9HrPCw%3uOJ{|xQ3kjAu6kxGCqG|{ z=L&t5Q7>*+(xv_HWZpjN#s9kaRQ2}d2ld$cE;6r2ds;eDb`Nuzyv!wjVXNTdv;wNP ziqhBW6?{C5k@kgU-K}=&4b_xRyEp5Wc zFzx5nCfr+RMnrK7woEajLoE}M)HdOgj%9+~gqi2`9P!iH@kW%Zsv6K%Ygm6zta>nX zvJv6pw#U>P1mRd#>p#^ya}H^CBZ#NtHSivtZvE>7~J5b#w!vC=>jZXXm^uOSXT$%MJOUY|=C@pGdA z5jvM6g_#?C6vh~9!ub^@G%9Y!-`k96ozs9*P9s*2)Z@RYUZ`hP(eD~cpDK6+Se{9> zH^zucQ6`kqdxRx6pEKv>LNV@M(k2Q`B$8!gOlvt8aP=&*I>R8IrAED;sJ2n zYDDvB^=SEa&m>aaQSUFIKGW@Ni2W*&e(l>)MTDKX@_=B=MSO+K#MJDCl6e_Ob-e1s+vAl8}H{CVWSwM zpPjv4#vIk!TB{o0)<;*kpDBdh3Mce)uG`PVEdop~tv9T>*2#Dszj}ked4Mmo1?W;8 ztJX}~g!cPF^@-2hrSY1@0cQG`*WqKNdPv*xUMA7syJ`(y5jU{k_OfAZ{r--J?kOI2 z=`I~4*2|p3yqvJn%XEjmES1a4`t@`y>f`xR1sMO*&&#oX{`1|(hkr@`SQup5PGtRZ zKxm3IEA_*5Iv>+A0sFTBGxr%##b-eDRrSqpMr0XmMh)@cG%GDgQPhgk^{pu5Q%%^a z`q0;cp3SWoSHX%^Gb}L8uwt7uxx9&O@E5Qm`$G%X_ z(Tp@XtT^JfVn-({Hf+-Kvs;m^uN4Q1+R(A74gb`$;KW&R$}VQK)?P_}+>F|dET~Z3 ziWviJ=+w%F90lwsG1`X1W2N1x*JM=Bso2AUgDtG^G`1no%Ymq4b|floL;fc=?09R3 z<$?nhqz|s?X2-FXc2thDVRjxnvPIcZ?4$#yX4z0Sg^uHv1>WUWtP$oqo63srzpVJQ zz>3HY7L2|m-R!dw1I2|W7BeE|hU&1sUvj~SA`gskX@ADX>XTAYC>a7_qXk5yIx2lyT4q4Ezgbk&~S&?wC6+vm6L;i9gWd{dpML95TYZx*m3&WaL zVOTag9LF+8VCvxrWJ(u-jAJ4Y{UQRbUq|55$VkL@OMv_x6Qb((ggE{o5u&yyLc;Nh z5c@hI4y8(nk_i)HSEGcum^v|jJV>bXngGUgkvMKofWfH};7s`l?7kU+DVM_Wtw$J+ zz7KgStvRAWwI!HrVw*a3USxz5U0Kk zaqNBrMocik^4fs;4&l(~RFnSkKtU*c)EjM%*5f3=O<*`+}|mtLOMfPvCO zjy(x6Vy<|Eu-Yzh{`tFn=AcaTkbk=4Wpox{ljYWKEh;zOUwzfG{8ppC+6apO(y#R@(jx>9sG(En|RzO@TYp$fsk;Pv=QP3o?QF z`^bsF&&0sJss^;mYJkZrj4zpKNME2^aeaN!`{}X&sP?96B0SkN#FY6|A8V^Y_91WX z0vZlBp!_WZ%IqHgP4n0CmB!JCB{iW!jXU-2!K z!M4)PXfnW)Og(C=&aZTtp}RsnZwc}4$skv!3UcP2AV;?jGF%$$;qpPIY!%=ZziLq@ z>DVQL91sy?NogPRZU)&;I^BuCgs;V!{v8u!xe5RKx4eyl{PrTq9dCk6ULnM7Kgivu zfM()}EgS}{s$f7&O(XgVzpi;|LeFX97x_)7Bpoi;#e`Xh<%fuC)GIG;veAT4D-#wb zQP2Eg!VBTxw9=un3cplOW=3Uw*~*&ms*kvP79+l7GGS|R6K={sIr71XT+;c%hY6F2 zgKldj4l~{e_i__5r#EA#YTMXHX5{;6M)z74WU-hrPp{jqkg&~aGkDYtOTdIr<4pK? zQy5Es_em>jxm%jNQ^z7)v_ZV+igdQ>F}ju$g=fkF=cM14uBh64D#U@}vUQ~ue6A+l z>XfvkivdnOD;-IG+2+;(Mjw-=Jy}}UbLj~BeYpD0O7*s8OF|sBJ;W;WL!8uKTxX4X z;L#B84JPYpomS{*z_QB*bWW(x`oV-LyMztH%*drRVbngY*jE@u$6il;fB0_$3K@)e zSy^7&d|^p(tw+KKWAwX9;;c2?LFSjHkyLtHnS9c|Hi(DY<bbT<7Dg zTRsj{k2S@(Ij_8jO;fuWnNga>J~uJk#Z{%H>(WVAMHj2=aIuuZ!@*TN+}Y60@g>|0 zR2OF3pueYZa`-hTzh-d>&pFw0Q#}9m$1&N@cvh|D;>%}FhT1uquXa4ozKi8IozQiC zV_Eub412GQ;gzMaY$x5w;)v%=`Nuo{#Ia$!IHr${V~2L}?332XA@Y$Id-XaSUEI}C zeyP{P7e4uy{e28bw@I2kz&RI!Y$0v1j`s4D>IO8p0CZJ7XrcNsO6zT@uiWIN3$Iet{)%%vmRnzZ*ykJQ~XcUt^dtdo1f#jA5da z(M*snnx$IGf6pJ!1;w4*Rnp0<>EiiUo_MzL$1}-SC(pfiGj&!k?@32W+{ee>qkObV z$E-yCPFOC~%Ex6h{rn(Y61XP}RWQiYB{Tn@YoP5Enc3fKM zK*T^huHLeu%}FateG#t}&rKa~Mo*ft@4X3qRUeGf9(=;WQ(FpqtH&i*FM0UJfU;pG z4A$P6GSYx?^$i$OLu=xr0j(1V|< zK1P;5N_Oa@+C9^NHL-wqrL2Yi(%s&W`}P5+>i}(4lc(wReMJDtgR~z7rZ+a=u+EV? zxAb^vAT?DpOOG(%>N)M(+VYNb8qq=fcZfK|jvT@(AtUYz(^OKwem~cYs)@}wP{NEd z1+ERCns5{gM!(1cUbd+wF%Zy** zv<0Pwn8lymt#u4d&1j+LXZ$38|A-k=`de@{sLv-afABT+1wCe+eCVrZO~@mDI-`>r zrPV`{wiJfxV8#w<9S-5YJP{Ub=xIaBJT_#lYen;RHf&F8!bUCFvf}y)D@s1IVNGEh z_H4EycT?#u!eJS&TQQ)5aBZv=d()cHZkrh^lxJwH)Fsl0_s=zr+zQ;&s> zhWdp$RPRGJVOw#&v#L3T-T{jykdI!4m{@vP*YF@$8Ksj~^7E?dP4Az6X3G-b4)L4& zxq@sgZuPOaIM$#L8)gXd-Q*zs*OfI$;%AXu0sav`r}$y+G69yAu2Z$F@*mX#q%`@F z(rVVLR?IA@-#rR2ORXSN%#&V|H^}|lrH9GiY1AReisEp4H;I!U_w)2+^~Hup}Eo-9-RZ$3cEfKp6aE&|3JLFLv8t9^~}iB(1KU9EVxd6V;!S))F=4gz z7jcU&d!_G)hZK?)xL!K_*|G-Q*biJx5n`>c(hh&<`svyYa)cOApH5pk$Op<79KILe zwSFOnLP0(nALIsUmK(&ouYd5fl)Tn0(zUPj@^MoMWfi^#xWwz@nrA*{lO{4m9N8e> zerq%7SmLY&h5tsX58e3SxRr9i_a!A7{Y!^CsL?t%*3RS`#DOy3~wk zC8a|uuVEBtTQk{;D@UwI7H>zx26oh5=0NR>;(7hTu+A0%-{&yoC=sq4PdHv&cA$kj z46np}%EmkJ@lF^Xc-1p**d+Blwt@5{sQ9LwQ1V!5zG95V}p#5aiNrfz!NXXW-< zIGORByu*yj%+ztyrW~FjrI&I2J#2s8`#<_jtk&4X=K-$Dn_>sV{&O&QyzL4CjPUawU1H9eC%LXKEV=XI@Pf{4W)Cp zBfGZ?aQJHZXMgLuZ}Ib!uI<4-L3)LgI;;#aT6PO+h|QsWv{{+FEPl4_7vScV0lrhs%P#LG!zTTlTYFl5^f`HN!{zZG7$H6goo7WDATKE-%w)#C&OldDRQMZjna#*^IBZ)yFI9>!uxXNyPJ0*|2@}Ogut8w}Eu(*^i9qDD66x)^W9aAvPPQ zT-Z42cFI8A7pI&O@8{tc^7D#`Pbv#FeN&Jtbe@`K3z9Pe>=`SrA+9^;pfXbGMSnL_ zj!k;+DB+$%z5N_MHN^b+$-brl3nW#&E=|Tr=l>uL;m42=FZzRw$Sxf`4Vhf{>0%D) zVLFcZW8&V@G0SI`-%y0CB@X{bIIWs^ceSiQ-*ReA(gmuwG~m84cg8ygBrKuKLS%^3 z)CbHupE=hG1NIU&)aPBdKzKzM=G_wu5=tu{lUiJIj};$Io6uF*rAKZnuBJ01LnZ0o zqoj?!G^5yO6Xr<|`VW8f6jwazv|zP-t+F+(=yS<}jFT;}46z`j-fs_C(N8}=s%FKZ z7V-=i%lnbe=5`zK;kYte7Yvv&4XD|lT%!FyMH)$wnL#$G6yo@`e&$Hv<1qEQeEr<~ zEY%bOO@$}kX`eI<3-F&u^4it!TIJL}UZVVk@)kEN^1xSmImG8<{5&rc zn!OybH^e{EU{gc{XgnWesFQSxcwmf6{&9N)wyAbTN&_iUSsbrlkd`OXpB!WlJ*K4m zl?$VF-rYt_C}Kp@E(UacX2kcS%D@~Fc9f2PQ=IO~9BGp=79<;FLGo;Nj58^tI?;~Y zUOT=Qw_#rbaS`>EHIMA5;ui`2ZN=FnVd!DBWBMnpr(zD= zmyXz9y{^p_3o5Gbn52m`siHM_OvVfS+Rq$Pk(t$}p9RyRgUyN3ZqIs$8I zYJIC`n7aT=FH>1XvYE80C}ozq6$N_E1~SP5ztBQlrx4(#_2-8BO&&|b{3EWQV;MI` zIOA}LEgA^J>=pk1Te+*oA(s44pDiveQyQvklCXX~;X+~ibQyFF^ZVIEIAeHSd86g! zv0e2rc*aMsIlzh9yGOKFo1FJCr*y6ENtM^=>}7Z1)F#41d6c1D{3gI~=`aJ!>viS* zZkG;rW1FA0UFz@Og;86Ia}<@2EDxxfj%)UI>957ehY94P|JQ>n0#B6rs`Zh)+S`EQ zBlP`l^^0}-ET6>D?}}$T#mRRAL+?qmR*&y@UAlz&&LVN1e}%)Ax|D$xrZ~Sfzy=TW z`6r3jh{t4Kq|Bi>&M4~kM=Q9 zBh}lve(ou&j6=#0v))jKNOkw2_H75Ru2r{gmH-E3ZmgfA#yy3CGE6l|SZ@ z$8}l!pn=wayQ`PcQC=n=?B;W2Qb$R9D!I(bF(;iobugY&S3CLYgp;k?IJx12GLqw! z9qZ&}%7Bk$_gXQevVeZZ+tJv&1u!!Uj|E94$W~?E;{-Q+jej z@m=-wYv+x)`cyglN6JU;RW@{|5nU|uRpnKzQGJ?sM^iaHf-Jo&$VKuwqs~cx-KBM< z=blI>tkB$qRN^EK)wPDwaK5V-oGfj|Qt`y|(oYWT7f*ro4(Y;er6FCoF0Xc`342YN zF}SEKO$IYgh{L_!DDQZsK^b&|^eKvGhnT3DdYMstSla#oeU3@W6P}(NWUiN9&XIR` zVuScp86OXdpUu(nMV|I^r?_lZ;pJBQ#Knbqa%%m5&kR^Hgt&CMYE=dCTIo`OZ@}bJ z($Rk_qjS-Ko{>g8lXl{ju2o8&-r%`*yz6K|Y4MqWH1C3^jp)4Ej1&W`XtF`;b*6G! ztqi!N^EyU;cA`ZFbX2YEBCfxvt(OU|csWow`Mo^KG};U82K)J^zK6NPJ+vM1Fy^G2 zUkkf=K%VAv?d8F##T66zIq|rUIfTD^spf8qSLUW&kkjW1557>=JTl1is=@p888b~+ z?OpFd?%5x-evr`u@Bd5qWJ?`e`7H&>z z>E@oI;yS|770LzJXS|MEn4n}|@#BKRnRkGuJ&c&N!-V+WW;8w{&aeD$=e^Q{rrObJ zg*2USVQ5-60`7NVSkYIyjrM5di7*^-BtUc<`E}_d@TR!@v;5+r53R`A&xYI=9q5$I zj>oTUSfYKMLHl#bH!Ex&%{pkm-h5!iO?mV`#|aC{+l&?t>hRfymrd;`_^%Dsh0ka2 zF=N(yBT^~{w&9?(oM&dd6Q*2VQ!_6=jHui|*H_0b%Egn?bh65KI42I+ye*k7!iY|T zr0w`fl}IM~rgd^$e%ER3&Gh0XUioEujXJ9H^`ti!uA_|E33BN?AbX?<*%OMxE>yl* zT0>j;PzyfFtC_A|CjaY^>fOWgs-;Vm zD9k+{$T3CFleXQsk1{SXz?-`A4Yd}R$s6$>|Ifb%0tSi`$isFh2llsg&Bp3y@-mi4 z|NB|XjAdHKPxmWp5i8s!?A%S-d%80=bY2jK*)d_byfGYsV-Xl#FajHEMPNefNc7E| z08{QqqVUs5^x7Q>XYvR%9T5 zuA9$}S5NHN-_eTs$CRroFU@VWw7~AVPJ8TFaZY+rCOfv)(cVcd40zv) zZ^Mf5(htg8uzk3Et2JgMn>1{`cw+<{`6NaoM94H)P!<$jUpZ(;C z7ng^7Hw^XGhhx@IeTI5Abi8T9()BiMI%DHbjf#-TZCAuXHv{?O?^8N>-d) zW`$QXQkNDB(@R4QJhGtKAsadrupvoaE6Vq@p#37%vro!^Co$d#i zP14KcMMqqc54~SFBU1aLiSk(0g^OM(1Ed;$P8hG@G9!*Flap1r?r|j(Y_&C$BTkWX zxdBU*9Vjbf<8Ey;n!nL?jI>~vFjmVRW^|E;URi$P2tBv0`hxwF39Z^$khGW;%l}o@ zvaGUKs>N*!TJfxd4e?HK!s&XhGMLpy>-oveD68I+O8fVhH1~pe^jZFpvgr{nE_;yj zoS*8wn;Vf{(rZPd@^??fn}ugfy$$h;dS*`H?nC*cJ9+c~=|s;)DI?lIdWW=;xpVw% zCjBFztmuk;(qJ_ER9C$ydC<#lPSw_T9)Tw5H~|kADOXisnQ}ExT?~}dJZ5?~o6L8y z?l2e6uW<5ULl=V{H{aA#{%VIblV5K3Qmu}9>Ez6NZr<;$IY#w@Tk7lSg$=Wc>z5Lb z9eF@K#U9{0X~KWJ%7FbPPJc?+Z8{m0A9p=ozG+;5`!qk0&!8+_P#SVDz|W_Y{W<98 zMU&>#lu=5W$;-O+r4`qa?jIr6WT$pYMvMcTcRetQaoH70Wq$V_2kjETiAX zvenjDc9cfv-xtT-N8>qvf|D2LxcK;`W@at&@0JO_&JWUAJIJZh^lzM1u25R6XO?)e zNwuh(GTOtGVUXXm{;{y@0QuU>OxUHlk#fbw@v0foaIpzz*P5}?uUVNCR$NeqXsuUS z;j?C(yC@#<%7iDXdr2n9PZ^+jyqz`_&M6;bgC4U@nPGYH!#;~&?lhs#60K#QvaJ6o zo77gEq=E_7J<7idcOSkS;4$fd&)56eH>K7_56#LZ^Rv6ShE1A4g)P#Cq-(b5;AOcq zJ{HhA{!7?4CNjX57o~;Xkshbo(K4+($eQGb+3GdYp>vDpPky1ig*=h?8=3)-9xz`z zRjw%Mv+^!;57$gjVm+>Zh~BHpmCIkB8XM%S;+pAI{BqAnIXhJ_pwlIKfkE< zz0#~(?3Dng2w$e{Y`}BX&7gS7O5yh1F{+vB$34~WQ%sev4cJlFu{YE5 z5AD3ef@;#niq4YGvq#r)m=W96+cqnYVCbPWkkp1l>y$l9sF}>d%2tREy^K%5FOBk+^e9Y&g?RX?Sg(}L4NmuJJ!h(p-7DStrxtAAzPyBm@Jo>lAOz=tH$)z=T zdy9NYVXmYjg|$?-Z_l@&&?433cQ!1lV?|Zz|J!Z~gXn9g`uO!&BW^3}`9%NL74Pa; zO*LMxGeTIUt+dvq69JQY%QJBZi+aJJ8k)5fkMQg;;Jh-ur;>&^Vv+cU_-h|&YG(Ps z304F1rDKda1dRUxyeq9>dhn6#jy!cc8eYgSqQYZiIt zV-lM&v9}2;?<-roLGuHJ3|KCWv_(?&h#W=~kdM-6wiTU})k|6=j3he zlNUKR3{lg=(BNSh2Ft5D7A_274adil~v z(j~N_>jo>B#fFh~8x9JeWsjC``$)Oo0=hGdaOh3(?dH;=W(<>-Cg10@I9f015$8Al zm-W?GD8zHpci(&?%U#v{M0R;}#l*X=2+tl;zDanq-9q`y<<+;fp6_hbT8z*>Ci{vR3%_mMfPT78Or}y$gI*UteJK^O~abEj+&1#Et<&h43yJL{c z-UYd7X^=+ozaxu78n;$HN?uE9@wAEJ(rJZf)4dkwl8!iYg0zQRS@3w{=qen0cGbR*&F zlIue{24zW4sE=vBY~Ks{1Z&BeiKY2YHsDS<6Ha{-mg;Fh?`xXl8z;@Qsu@M(Px++z z+*d6=KFo@kC@Ts{M=X%Xj-~RtT2HiLcV094z12GTrhLPG&9Fd z0oWeqt@>9utrypGSzP31Q)Am9;v1D!;aCM-xZs|`e zg_|Rj%YTrb(eSJ^W9gy+^@B(K&G;-V6Uu1Bp;N+i;sc3)3L9Tm{z2y^yb|y-iSo$B}xxLq2pFj#xdjrWp9{Zo0rV_nJT%D42Eo*Z4)%M2yF z%&aWAL38sr)x)=>aIr;c-E%@&^SEi!R2m9H$vgazIbNZvvyo*?!Y~H+l%F6kJ8sih9h~01juqb z5$YC92*-(VL~pa>Ucid)SsV!53PYo_;ds?744vYvNb}l?r;BWu@Y#yLil_EuBM})6kVco<5~no!**h5;h&vS@ZG2 zV2iu>c&>xyDznO~*e0Dx`|$Aq-6umC^+S0yt9i#yYi8*tlYRUZ@N?yYAZsYk|LbFj z?Gq{EmMX~gtCY{~E|RDb7)Ulw#3u|WK>m9)+z;sh`9iGy_zR@V7j7xlmMbftv{7Eci7 z`=T0|%*%sWU0iWLo(nZUF+;lT@(r5BsUh!qkTRdMq_0a83`lcb*j?*rB3Yw}X6NRK zlZKh_Zkz?>X61{-|EiDla_D{eQrms(E^R$q8|4{0NW+qjH?oQ}c-3&zKSAdCADo`A7{+ z9jp0*%gV2ulb8NYK8bKgCJ~}SUqwDZYnpO(k%VD_q%prNuC8UkcEEQx4 ztveQ!?)8tnICwbfs+&(c>b?h6e9}|3X2wVto8w`Lavt7k?%}U0(gTINUusP(lD3j* zy9seV)r(C z)9K6mJ&xhFIPS_F&nJ81 zc&?|D7Y2K{!tQ5P~I&e%RIgVd$Sxbtc+@q{1A_S1FTw!32L<8!qG)21#W>MdiVADaX4^+1yde zQ|*whbG4uiXH-LL3t!*=Bdjmo>yz+wcma8Q^-R)2l&{mzc?(LDk~Y;;`}5z9(g!q8 zQF!rx8AlIG>YfF4t9Y41*MCk{?G3H%LXn!SafN6%3&&_pPtt9z3aI2DF&+3jdt#)`{LENC=Hnv0HY{s9|IqpbMW$A-OA9LO9Ofh|K5p+JeG zXf-hr!aGLdge?rCrA2joMh;dzv8by%Psbzr2=W71unTI2zf-KWln$|hZ9vL)qsu`#Ww=`3xtjdFWnkiR? zwQxXLzO2H?%5(iIzu2%_@3Sim?dC+_;V{jB4A*?k3eCj{54?^y;zf30mv_QMJxu>| zpPxzB4d`>+fHU8ftqsW+Q~zlxO}($~h1ImEmy7r69xL+3GU&KGM|58)VYpHzVbw93 zVXLb7ROu=SuS>hg;^l|wnxRzx>orFA3OZ=SD)sCvm#p}mR{4%OW}IxNoM#~;Zsd@z zrTsYDuQ@kymP*lP+)#$JkFb1)+6HX2sFv>x@vZP}cjaQDHMcb7rMxp~P;G?&2Fa(q zP+oc2!OHV~mgk|p`$4s|S|jzf7Mf9bWyGGo%Jw#};p$xFxx}|tcGSLHZ$?)2);ZFz zch(NE^lja9)M>IX70cmue zLaJ9yq+=YKVMKHzGNt^au&(0w`s^pAtJ>d%SVYGe^+w*baux+{s7DMCR!~-|^cJ_~ z*8IHpLLO8F)eY5=y6cnyej$$7F2n^(Rez;J>^`E|`KrR!-3@4yPY ze-JNPqI&=(S6(GdT(^>Xm~gHN2pU$my7vb+!Fd7jlwr`Fx+^vWug6AoJ#;+VYB^E6NJRGxEF@wp-5TZ-X7tpW3jAWsxiuDXphIAO8M7p&Nl%Yp2rta!UivlL-L_7bOBdPm-(u5qL| zZ*lSJbA^H|UPzcs^N2MU2Ko4^@~v9`%Qm{1P+7HM&*ND3o0H4rG1k$2C495uSudT7 z1#~Zl{B1NF_{hhkt2OgdRQgkli(X|(p7)$4sd+;Aipn^2Bx}IP3J?AAkLa+z}{54PtHbh zoHpVV((p@YMj^o~GlC72FZiQ#uAW^ewe)Xcw;S2@zFCxg{cjGhujXCH1sQWtvjGXE z&t6kL1mc*xgXMHU!xl5j2Qv)(;o$XnptcdiUm;aiuxTFCkTS+?=zbdA6l_6+B zRdLq>!m@4p8u0TV#33}tI#xJG8Lxxtz4w%PYxc^=m@Fn7I}?V3Pqh}GsF!OWjrU2L zZl(LgObxPbZh2TkAuJqX7IA^~skEk53rmXwH&*_;sI<;smoy)#{{A2CD^-FV^g+7P zU>m&ataumcK=Z3Mtdn17cFHd~CH~S~_drnA#@<77R3YhMXLV14wRU7IZ^H@I_P}h- zg^0)0dZWL~BkJ?ahM(e9{@&^lssST9D$Ai9*P-1uj5k}+;)8I)R(bOcf;`qo8PB;U zT+q45{ZX?L_53X3_OSdK-T!KTh^N%UdWy>>m-e0~qjchbqM2e}4F8IaXM&V2cGdbE zrTZ#Q(tVcdpZdx7!+tVFcnm|w? zGNYxBuhl)ZG@~&xrvdYnx5%J6GdhWzzjVKsBV}|B7YZxu^Yxk}&Ao%XU18-!pLCz5 zeLmVY1o^IAfG@;%R~Gbgn0n2y#+r3kjcXyDKCQIQd-4dX${(nb$Hg(yqZen6XTpv8 znyY(l=^i$bYvduQ{<)%DoGCA%^{6-wpYw-#8@pKSs*AI;#p^y%9v%p&=Ij18Np@%t zztSAH*8Q7U%_JQbM(F0{W?_oqD}<>BIyvBxn<=DkW?U2GCt)zh5CbNhrDlSZ<>=++ z%y^&i=}-?o9%Q!vo_~-KS*KTZ?AP9f=wQdtFGR= z+{vf=UHtOQ%{dEwJl<4!-hi?bR@HI+{bpYe3#L+EkVeo@na(rHz4X%_{JWU0r7+^* zgPN}!r&;D4UIr%Vo@V+SM)8}@*~x#Evne$U=w4kukuo|zG+S_`j1BFi^;opF!^Fd= z{EtieX}1^?ZmpL-SyEY&MpmSk&RIo%WUVQ}l+rm9ONU+Y-H3a_v?F^<=hwPhEFEoz zbcLqtEr=7|E2Tb_XQmkkg@M-F9H??v+TI4u`^$@bAiTU;jeUbW&HbYyF(E}Hj?8yp z-ZSOeqU{*^%Ze09C%ti9BJR%;S955_-qHJ3I7gG ztQnoPVJOr|uhBmYlXp9iAaxj4y^!8GE==`6dW`Pxm-zp2bly=t`2QEbR?*&jDP=?w zLL?DoeT?iKvPVXCw(Pz4&fXNFXc_H^_TD?$+~4#2`@=b(^EpST*ZcK)j(Z>Xivn7S zc*^~cBGhG9=__+CMd>@8#h;S2KtA`=#4jN`vS0FdxacqUQiKBhEM#x~t10~7OATQz z^RWL~;-rT7C3?!gPjng=r3YCg+NT4HWKQiYGv{8iFI*y=5M`;0oTNsUx9EMGcoOFc zS43*0?J-ReEA>SALwVb!*I9J_45NZa9+B3w{1{$5zX3_>ih0+hgstwrKIu5_U}uk*lhLE;8qK5l_BOa2=n|t>c!wYHBU2 zt>l}`G8QEj zag0t87Z&C5cW4f8duH*a&lj0ZHC%jS1xki=R+L5;WizYrf@=^O5ul9^7p9%ZtpDY zTqWT_oHaoAp{?Llv#95m!;savT(9wk0|R5Y zMTBhUC%)ha-zW~BozCsYD!A)sC3X83)4FX5m)i>eQ2wshMw?-8zs^{q+Y>6@J@KHV zKQj6bm-lcC?#!HkM|PvpqsK@b&KQkeS~JkR*HWZy^TDW%Ubwf@6ZbRRp^-5drSB)< z@*gi;_3^-6JK=jNJZFI2O{x`y%ljn!LvvwCJt}AKhzOo}aG9?LoM7hW`y6PK&k^^O zg_WcMRW0EiD2cYuS{E;uJL6;0aJ=p1A^pD-(skS6)?rIwoY=rF%pN;uI3hRC3b`^n zdi1Z3J*$h@`#?DZ0t@N2GKM?O-Qr{a-Q4Zv$2iliJY#T)zfQd2tWGh^-yO}l)^B*S z^f}Kpf5)Z6i|MKtA1!>yH@v#z1+!MXVS!gH+f{vLaJxK)*B8-2e4FXwMO^ViUpSu~v2C>@ zI=Q%F)4cxTpL4^3pW`sicOELUe9-jJatwA}h@FZvG2y@*wANpYo$-rdFmM5!+j-%3 z`Z&Zj9Shg2eo&D)w&wl_?&)=hjw7BiqA-lM*L&kRpHn&7^k3EV^Mpj15)Mh&xYI({~ku1mT#h#78o3 zeZsPWP!7A3#`Gh?juvg~z%Jsg5+8F5*_-?o)-p%&-r}V zC!L2=)0lfak!vZ&1L@7JT^BjXYGhzj99FWUyE!o z%gg~A7CK^^QeS-Wb%j^Ze<%*{hGqYiFgvjf3AOVPUpyP78dDMdV>Z@BE<(Zn8So4p zk5@xS!(-E6eDG_J{Vu}#JRi*2Hg|b5Hk8`tiEO+~P;Yf=E`%zDDz z+39>L+M$($^zj4wc>K%+H>|or>BLB=ewu`-u@eztG8zVD1F-%_Po!ydL-70V@^*Ab zn+;YNpV$n#=Sz9z`DZ>F5XT0$NalTh!13qK@V_zpn4hzY*XxdPpz<{izJ8akEAH~$ z&|CZ#c#q8-qu9268M{vxzK4Z2j=#}Boy^R7kCMKrS4+HEtb>yc`gr|S6Mg##`|e6P z&+bm=E|Qm8gwaCnEi0P5V{JnMR~<Nsi-WP(-w{*(JWIILFT! zclcpQBKt@kIlO}~FR~5fy=;s8@P1fPKUQ??lVDyo7Ipq3(e?UZoc!4j{c@bK$h2Z;}TOOs7^8xCN-%q>fqkO1!o`cri;KSko zT8+EOv)><3FFAszv&(sRK{IIdQ%A~qRTxJq;D)=*>tdBrWN!dZ7@^^%HuR+?>-MmU z1x{(ArHSUrO;P-GGlGk<<=l1&;?t3Vyl^*|H+7>}ks2#(_9RZt_$2pJ0sqKMZIQbs zR&4K#yEk3nZto%c`=PLUHWJ#yyl|}3a$Fv;4mWSC!Rmn3C{SL7#?C9Due}mAu`6(K z$WrVKnSrbFbBX97Iyk39Dr|YgnJG^g@F0q#gJRgY<*hL99?(PSBD?H8$}TU?Fn04J zZv2wWlcGV1l>YUaEaf(J>WGk0L(#6;G<-FmgmyDW;mXGmP<}Q7lhQ_@%gE92E+3Be z@A~0oyfw<-DxznXdVar_!zlAu_T3dIn(}kh|9OClt~siqt2#!|+)UW^!jiX;UB+c$Yo_`BU>8mCcdysQk6=?AtT#jPH608x7ER^X zT0U!?$I!HNzFVBkgGTSz`Ta{OJ3kR_Z4fPAz2$(JADQwrhA(tt*)TDQ>a}^izCxIm zS2S=yuf6=tdSmAWcbvjdgg+aNYujd_TfQ$``ugF&6hHh8UXO?a>k*^09`}c>!|JPR zU^i+Bp3L(^O*eB?-N9DA&fqDQ;CbZK^y_m=PCx;Z;JbHFLi zR(Q(J7ZdsWYcV4Y|1s~CA$EW4h4Idw7`SIF)=wRR(A%aY6Y<-9x z%?|LB;{{&58OUB+V;NOnN~hm-{L`a>fhJ!$ebgUD3vf34wmFV@o8#?GUDPHE&+Vdc zNk7zb{(=IYUYJQG&1hb0^MV8VJ)n#BefkFnv7lEtU+w-tf1M9}b|IWwilSNXme1?k zL`$A(0R2JMxb@5yx6by&!HI4#@}7ig<_nSXXEi={U5iD1S7WZq27D~?L&@e{Sd+06 z=30K3oVidqlY`*jOBcU23iw~^Xx^xL$4N-w3Y}E(%tbLODUjQD-eS7>Ira-b#q@vx zez_CMV9QL-Y%RTG7Y!5`wuMV$Z@70Fgt7=X47)uT*Gk7=(*-Xq`Lhhc%hq7)>c!CW z8;|#UdSYaTF=j7T#vAc1Ewul^gzJSIq8iPvW975+Zr*Epq<-e<(dELHE2n0=8r~gL&0NtRZeFSj+Xxd>Xjx%})U+2XT0(VR zE7;0z>B3I&cgntI(YkcLj*aI%ok(8X7{%#75_zyDnVp`oBcuBXS??#gPlgvE%Al%v^LF zVISAv)%0<=RMrNwmxzu*qn69>mNHUyN6n1N`OhJNWs5>Nx#bP^)H%f{ixd1AcZMOI zpHbI3mY*jSh)!Kt#IkQ+a?BEMtnILHsV#m@?uqYd1L2o6L43_ikYv9czvF%I*xMWB zvqwoE*ALT;IwLmF674*Uu&-ZB7$}PV$~Tkm>cb=t;swvYe#D*;w;3LGlkKCAk5tgmLj`fN zYacsN8P{bGu5;-(GpBv!)tDkS%r55W`$c>{rigJ1iaGdY78{ObGfFL=muyPewo3fh zZYmfu&=AjT&9NZJ6y|zuvD}~s%saT_z3q6UKAeOG>zNqybPO%u zb9&tkB#42!~2y!+#V}oLZ81Ja-)Vb{mNK(q<~R5=`=bK&)Q{g==$slhn~Je zi|@C%YV!k*{_t8@F5&#QGK}#T-^jfB4JUW`zz~-tZZ49(;a@iU6lU>(LO%QMFXZy~ zWo$9Do=MZ{L_1o;zG`LcvZ|CF#7pe^Lzp6a{_@^!sN_!WVQFg z$K?|d_jLqLFLTEC7#p1QH^4}L9c;K@0AE`ZR7M%XXRkJ5|0uyx<|pSwFVy5}9j9EX z=FVvq44hRVKHLVLbQ3*-=pn|;(7^2@Dmd#PGaAwUB;0A_7-6qe76@;Bq1=N9g>xzW z=m}%s%U0p*$o_dtWfNRe`9-heHOx#Yq1xm^_9!gk>7x~V*`$_Bp4TyEWeq>&mUGSe zQqGfmrhm*fXB75RE99uII z4}FHA$EP8%s~C%=@iQ?`-l6cT6Vdt25UI7C(K)Xl6skSo^VA*2lY7G}zz#dS+M)ZN zj`(G0hhvA#aqgNLJY?pQAY9uNCD|(l$&U3(Q}_=1%eX&fjQE|-@fSaH=7?;rAC$vO z1!=6aiKE-J4}AXi17BArue(e+-~BU}jfo|;C9>b99Hwn3rs~`R4mpv- zsbdRxU1p}f)xy|5D>_)wM|r>h%?rZIzVBPb1cPek-xUtg(Qn)=bHEzJBh9NtmvdEkD2El$EIXl;+59qYF#OC#w?6T;TNZ9|I+ z4@L;fP<9Nb#V6SvKe$1%fEId`N)A#H{nE;1mM=U34cSR`Z(tA25*l{PXP$g7Gm*# zOD07<{f_^mQGX@)R%v6-5+g+QH^tIe3mi$XMJLxD2>#q3_tS>LQ_B;+_h#UU+G5n5 z^Tm>le$X@D0lz7`@q5cA)Eg{?)|*-Q{BSzD$IZakztf@BWFle@jRZFg!rEqz=y=Bl z*LD~qZLSgwn|R`x`inr?5pfh4dvbHTF2qrMSGqt{y%@=whgbN?W00Eh2^mQ zkW4OapUevX_tdU^#lWk9T(I>iSKGW`d3pr5=R|Y#kdM5+J&XlrujtS`gvF*2y!YiJ zFSkr)l71Gux|ed?l15=)Dxktt7u^S#BKfK*T7NgevL2Su4(o)z?1PCrhoD85v6$J% z3(+nM5jWy{CHdTk6)l zlv*H=(-oi7tm|ujm>S9z3}@S6vAp#@ot2Nu=q~)TGNa_SrN@6;1YHQdvwfn8-S zx-wJ+I#!xExk3xR^K~)fxDhrDH;3~{bJ*|KN42Li)))w@RI)eRMHlg2cI3G?Mek(% zowv`(=WSXJHyfpMpPYdl#&EuTKWEzo@zj!gJhS5-cfNSZfv4Vcl|l@Mzl-4B>A`&I z`+^IVLb*6GN@g&U9cG_OpO2ZGd!~pt#S8HGk+3ia>S60dWBKHpU`drJYQI}y-;mBo z+}#_F{XL*PcoZ&bjKS-$@o3k@3q_9>BQt*`x>x%mwCPHu{q=?C7GHcxo+p_P6A*EB z7LR|-$+qA{wLl$uDrHu}gg!?Qz(XSn`#L-?R1miH_2*#ArwH6Bzk zX?z(&FBDUISrNa)m(on9mcLs6;N6v?F%iwtwHVp+tZ#yW4x)eQr-yB2nxYSHfm=2| z`Q}MA3qz`T{I2jzM33TaA(|!mI=1P#{5YeK=Q0X8p?fxS79{ZcfG{pjdd`XO0@*G% zRC3H>`S4i^>r@hXw&DZpTt2YL=s3fVRQ4jy4-9c} zR~x)^wt*koVz$iVs$~Wf>Cq1r1KrW>?QrDX9D~CR6Y=Wx3@mq;k0X1QYcc-je8hd5h+#iRV42xa*;x!k^>!z`Ytsqia;)G}B%h@Z zTKK&{33GOc&vtGNHScHegLe!+b^J(MwK(c8Oyuk6SYDqMNv}I^IZ;1^+WUg3AM}bH zD}wn%;TdP%eMqw&Pr1u0j2os%|2H<9tM})zZA~t%24!>Oy-Zf>$t*Rdl0~5nEcLEu z*!p@dY9>Bl(ak3<){NBapx26+W3HZ zfiHN&J&s?y<#AYP8I7E(X>U@^wo7M9 zaty0AL-?)dBYM1f!U4}iX{ZvzW}oBfFfWE>17qp)GKpoO>1^>Pmjh?#^ZTM)Uc8gd zDSdKTD|tYRM31`qsSYAO8KKE41H>yDAWPc_;m6I9)UOSU6x$&%w*wx|?SMGSK5C^C z^bQV{8hi|{w-_z0=1|Pvlv<;%FfBDTxO8MBP~@1D<`eR*6ElFr>)aWok4 zny1G;y<@k ziwf?3ES^c>1yly8qr+>tFE48&rA80xm4?!DnqcibGvr+{L-ijsyjgFB*nORFR`wvS zJ$u1Jc8vXdbj5MqF0ha9j8UuXG3jAzYE4}+($F29jeS6@Sp9?as^g;J8_So>i8ebpVV9!S@c*UE+f0H)8WRvys zmIeHH&)t9C(DLR7raet&WZ%!6FZ1y$+R1!$H;KS;G}d!ZQgLEtxQ)@(2B7(|L_tF`_A+FP3|1xA=Jdgf-c|lF9ePFr}`D zI8Sp7Kiv*H>`gFlo-+EG)G|o!y^+U0$viui`!W(ZbkbV}WxnQ!6X8tNiRT9s5no(R z;*fxM%+Uy9)T{tr_YdH~BM&(vIFg=nZ>j9h5QuOIZH?<$b6hf-28gHQjPP6cO14Xv z8h%_`#n0QtA9-FGjnggBv8E&3rr2WAinchkyS41WOi}G)gwFqTan?W^!3Q+aE8PHZ zLfT?tn3J%DJkas7JJxFtKu%0wnb}JJblDlhg9jkdaxD7f%tVF3GGV%GLwNl`bli0n zcV^uXEy_)-T6Yl{YW||tnTGBs+M#!vWEpB!@$!xW9+7jj?m`ZK>twT2uXGw-4wJd_ zRc2@%=Y*A;xiW7xHP-sj#(X1h=U(TQP48ILtcJ}GtK)sO1;#~M!FruG9-kFY{82qD z9BqQ>eZ(9-r3)U}y2JIh7Z$CWjmhEDG3n7rJaOxS9)Fuc`#=I)uYJmYt?#ju+C6sn zy2o`@f$Z1qEuE%>a!J`EF7mh{IZuZeSF@h~j26)E!a@$Q+QVh#cNw)Yp0nSUvv84c z4`g1`R(7$k-q!N;{!-q%mB($0x$N`2kPG@W&|$7RPFR?t|N7Rb2{6Ut{jKo7H!fq{ zCpwOdWY$%guNz13{qIt4p#tc61s8+oaLYCy#HB zH}Yq;5>z!TPv{h&whnRxnbI#dRDV8HWXc$wA{wfEJr?zHGs=L_3K^dR-F8t5$= zhC7OyC>}4l2v)B+@X|4=jPm7Wc=1K`RLR5{#llbXxNPH2_IrMgZx4kCwq*unB!0=Ioc?Tht$J( zZTCa&vVSZ!#!E(Cd`HivpQyU%6W{42Gq86oKTQjxk9#1M2Hj&^@@<(zzM$v(Sa$hY z!Y^-B;qk>1gYMd+$3a^({m&9Nx3(6}g)Vxo(uKiH9eloPh`F7tQQFQ9Idl<^x;v~U z4#Mino+x*0k4eofa3M_x4_E8LuFwD{PTD}>MK3ID~$ z-na@+TdYIH!ClDnJ`b;EH_>v!8A3 z8(8UdkdrzeXT^>4ydHjuM#iVOBH#?QjE;&elU1s%Y6w_DsEnaUWR4U)3Mj zCiNkor5)m~Ig1%NdAjt_Q#izbHqU1I(&^@Q{z(bo;IIfbK^hg-l<-ti8EZvM@I@s}%B8ua67~dCm<}A9B_H zJ2HQ`&C#)s7+3X@bKkz<<}2Y;Pl@HTwrTuy>BZ?v{;pbt9$u62`*q{oX-QrE!(F#-7D5Gqb8af?Q!MPiX zIM`f#$6F+;{**A`Zb)u}=$6+Hk<6RjN-!O%i@{A=OU_0oc%OGd)0X{kw&NIKf=C3 zUwmO|f!f=>u=~t-)W^>fw!<1kFW!i1XJ7R6nIrK)BQfu6FDM%6zW zRHFEPoa{pVZZXsA9IqWeO7kYW`NhGX|2k~rphMeOXt#%tMxUX^<;T47JBEgq<(wv; zd5tF0N9x(ZUgmO&E^aXGJrItWE*P<*8$6C#Av-}Ad-^G3xA-~M%g@DOZW%M@X0qkz zBwF2yV&3T2oY(XT-#@#}+1{6_8hVxsa^yU>xXmGlU$f($SpFWF$D8|wLoF=eXOlEB zexwnepKXm_tt`=PjRj7eH-W)0Q#jKMB{N!!AKen6kBqU?RUgAd-*NGV5(0(^8`@X& za<^)zFt3D@&gL`sR{`HvmGWe{^pxhp_WmpW#X`|XPf$UX%zv``nIh>&TWsiSkLg`| z!#`{wa%)DS=CT(iUYd{2ua={guOHH9Y(tjUKD=9X3ib<5A$-9(c=S9aJmj4iTj-A^ z2bW<>lbKk0WC%`QwZi-%;_bbX&eY_`%sp^|p3XbiCuoImpV!m&zvYa&y@5$9k8n=G zRrYBeNyC%`Mu!*ihVbb|j#5Erp#|>w^n$MQ5N!9JfCUX+NIW+atf`6Hj_3y*0cyVKvt zUvb{6aBdHlemYL{4jwsN)1{U-J4)WeT6N4^Y=B2ne>(Y^Au`Miq2o<4Vv;_lL}|e1 zqXGs#mGgYDj%}h#=qWn1+3BB|y*`m!7sqjgTMTXHNYDE=mho-kIoK$P{k+n6pdf>R zw#B?Lt)5Mr3VZT`5`G@gNBx*Ks7tbgqH-^cxZEG%e}}=V$r#zmjzix0$w=-y4G(4h zkvw7v67789ykY~+B>SQ9$#&%L-HMA}x8kAU799P#5<7RUz{$r8P_)GxP4lP2&3Y&- zXZ1o_iZM?07agxcHlLn*&1r*0Uy*!@ZAKkokDLQks60j``%64}F_;HshjO@o0j&%g zn0uxP#=KL5JFi1M#n97*3as#;Bxm7@j*4Cua;o)!bfq zu-OJlgS0TmT69juCG2@To~Z|(((3#bx?MQMfH8;I^UfYlP~1be7l{S4DrU1e?R zW2UW)psRBVb3e-bZ+0nl66)9>45v8Zp#+w+l5j(9{McZGC8?%3r{5Yrnr*RpV|%=w zYz^nu#(33P9h*g)o_n~4j@|S5-uxGRW>r+P5LOA8%LkZ=D9zg7=cfc&nCTGWC~{`rctZnGbi=V<8%KK{)v+} zYSULf6fco>p!j|K)bS$05S?tSP!!z>TgG;W@5SC|n(d12EeB!1mEri+&l5R|$KjL5 zWc06^0E-2a5ch8yG;OBih2?C_h@686(|PFleIYttT8L@q=i}*%nV8*oGX72)hod9@ z!|pg2Y#r4Od+jw4ny0&PHutjv&POx0*fVh$_I9t>i>lN)pH_;Yb zMpz&%RTFpqNuKSupHfrj(>MPe4-I(46NZ<$!R9zkQg`xC!e;*HzJ;+i+u28VKi?^y zXUkDfIAQL4#;SZ_SJ4(U=!oA>ycuOZg?AjLhUev4XzZ;GH>vNh9Mi(IWBPCst<~dq z1~~lO5FVwvNO4vd4^ML(KKzrxL#t@zl*7Xj@hnXWLZ%#~X3U#ExoF~*qI-57S+hFIEK7tOD##UKbO~ZGE`l%c7F+vxN|L!2A1;YV(F{pd%8F;f#v0KRQHbO+_DrZ zyJrcfu#~y0>$zN*8e>Y7@G?*b&00%e?9&F`6K!$*U>8g^al~AR=I32+v}))LYd0qp zdiKWJ`kwfDy$>o>`eK}>E0k5_PWJG?4BMfISv3l2-NxYD$?+%+8jr!no;WaMG-mYv z56u$?py{{%7}u#cwguZ^d2Ac(>8cL*rvGSutb}bgC$Z;>a7MHWV#vumY-M+zcg!!d z{?%>1>->@mh3|Pu_8o?ID!Ecqd@iqqab2VXm;UAmceh2jU3>idD>bfpN6Z`D3309+ z;n~U-_O%_*aj6XsSz97#i3!G)nqiUr+&WxPm7Rw0m@MV}tj=f2+9Y=Q9>&`ff;eI7 zJu3O!PV8lzhoI#~|rM$VNfp^~uvtghjN)9OF z+%FZV=c}URKUEAEC%VfhMRzDA}>Jpi!mM|xvj5{Q+dzwuhC&o!;NaHV-JZOe1K}x6}t_hW{#@M~e z0!JO&VP9K&EDh|Aze>HZws~)8&UM21@h({R$rYLMYsH`eSdcRSZhwb}SAHaX_KZQ= z%83~Ld@?G(O@l|tOjLcEg}Tq)II&?KS{<2*KLt||wRa>GCiKFTG#eCc6#cyHpigIh zqE4T1IygL|kLVoM?!3fc?Q^W!e2I^8KQ*2j!iK`dgLLp zFC7pkTD1F-Y~>h4zvj1j>&_+4c0A2pG9&O=eS%LMF4A}29nPr?=8wzK+_CZt%}$lc zE>Yf=6Rlv^))05*n<4*EYn({6!ZkNb4C~(-wewA|aG4%%C8?vPMhTybS|HO>Sf&=j z<2xX`(MghR@$C=2MbBlNSj#mL#Wd@Z&36k^xa(9jleMGR?rs>vMdPtbW;Oi}yrbFA zX!cqvck1CBo;R-Ip}gqG66CdYA*HUVmS+uGJAa)Ud3UP^a1xSy&*f=8~ob#HuDbz z((OYCo0Y}$;H(_x`q$83>dM`_lo7tiKyoC_Fg42>sl!DhwAdB~ww)y3yFFY|ZP5_c z5zh9VFsH9AT7`7LQ}qrwKFG&YVt@j1MiRKs)PD||CZ5oZ^wVZ=Qx zm|fC=+cKGpJ=BpIvOWT4>LFo@F8Zd@NOK4 zUjICV5i$%mtw-S5NI4fLM`O;@F$fL4AVi#n%5Ik2H2q1Tn)X4 zHZpHX7LWIRCw{X>Y`5StkH0>~oc9O0)$afgM<3zRD(NY8?y%$f*W7zXJRJ5#^nUc6 zM{X)&{t;~)US@`ECDy3j-2uvfI-%JxIqR?6LSuLv{FrTl^Ls5YGs+B`Mwy`b4?{3q z^n(XAF;w^~f5kTxE1v7=XTNfNNU5;kGk9ck97{wep5q(DpAwWi(c}(YpWkA0oqN2q z>Is$1LYUF;k)8W|=6KQPWCaSV?voNmZ_r28%+|PZz8zfmcfxN^sh!%`!ugIh_S~_+ z(_zNg`c-!2b2RWOJXz`MV{ z@I->>FiWC2-!nq|DxvJvKZLQ*-_T5E^y95Ra->=^$H!#Te{BW5lfUs^dtpup`+K&A zI%+>@N|v!EHc2+0oAADGiC^m!|53O14_a-gXNN(R?7O*)({C4ZOy^>@&naTWtrEU& zEaRul3V!KU$6v;hakc0NZ^}F_thF#)66I{qZUQUuYR?R7h6(aD1HzRsuBRpjw>Lui zbxZ8~+7X*(Ibv*8UmRcIj?ROJqnmgywg*kbHRY)&S~N{~SaRr|&p_*mGbBUD3l0?0 z>puB)e+C}Dn*ztX6VUSdNR&@?$Bjcym{i{m^J)z6S5LU56B@bHsgSc@CDW&06c2X_ zrgiCK-d1|Ri(Q2v(DorsMg{V)?8Oo;$~@gSn=dX^akO~WeImpYmZA$)H&bk^wZy+} zHpu>MB{}1k7`4R$iL=ddIl%<27V6`!wKn2@Ne|LPa#qGRgGo=Rp{%}heq@7q^kpyI zv{<-nS+o`Hlk)Qq!h{W@s{2bWZvB+rCXacn>tjAEeadS`g4lfhEBf2Z&(Jo8DHqZh zIbZrRt6J8GhSgTQXKl>2@cEJ-(+-~s8er8XKWeNX?pzq#hjFIEVnut4t8F!g_Y)$SjgXh{au zec{Fq6V_65$%9l@f%9241ZZjDrjZt^SLkAg^h!hDnc+r&4bDAjkKyi}gui4Dr7jLA zUC*FL*}0KIc7N@^0G@9@-ertYy)(i%VvImu#v$DP^*E4IOp}@6k^fpe&a~$IbYb#*W`}WUJmZnd%bqg(&`aPg&3Kyrh-1jqL{6TN z#+z$0=yfrNZDI@9V_p#>ZOb`hObweXm7Ki-VXYth#U`f0%s&2)*W2^|=Oy|pg)uGu z_Lfrrv_15bb`O8@iL+$>h@aPlf4I`+4|@p1YKU;DyZ-x2>pj9e2^Tg|JINLoMvG}r zCA9pdin>5eT)tv}pMA`5c#swDh{l*jcGv|+EG%$>cYv#K=iE`IJ_6Gt#v**n1eAqL zLt(ZTD${1c?!+ANg3Xj(Y&tB}CW{wm1QcJoVp;ocIA+}jp|5msWsT&RXx35hN-h`a zC5cWyiW|R$P;uLHHjjM9_ya+76uo)FyHJikExU)#DU2%36rD#AdmWdZ`lzq`EZGu& zgb|b{%%Jqc8tD612jTLb5AJG+%=U)3cFO>Do%NCBt%JdKTBv)i4u>Twk}s=_o8yHs zWFriAVQ9a+{fEPz$UdX4hGv7yxU_EpGbd(A-a$Is-%aI-nnZq>kSrNF3BpT_Wz|AC z@A}ej4M?WC%(^2@vS}lKFPGNUTqC~dU*f+ut`~-$iYn&J)JDZ513dd|jK)5unA+3? z+Z7DOE2EDq@^|arLUtG&kduv&7sD?{QtEib%!QbnuxO`YG*UG+ZU6-$XDPGIpmnD~2 zxSM4WqRAC@Lq;Fr@ri%dph*kKJW{~(uPsp|{as4GR>B09?7alhP|Mt)+a(P=J1=is zjqG5z2v@mS1!Hqn@Kl&<(fX>`)LR3``f6f?t2WfO>teRlb3NW0!l}{(`u^rH7k%#l zTN{iqwMF43nR)znL`*AR)`g`C~kULg5xx?V`K-5{fVSIjHoY*Jc zsDE8B{+122MVD_R9O#kOl3y*J)l(O9+4E#FpKgibh0GA{zaPZ<<&POP;~{O*AJF;6 zL*ef|<+KkkXxctRcArr!XqOhp#OZ;J-)}&)(}Irlm2K{4_z- z0262w8zI!u2+rH|vBOy(U$*I@aH0-cZP&(rMQyCN(ZH0UDx%kH3A>OMSSXyXO_EjA z=B03OPStbdW%0O*PJh7SB96O}$5~~W>?J$d?bl^D?IAnnl2krDpDL{NRC%|)aI$k2 z)lCa%cA$(pH)Ovo`HfN5zrYp^ z*SQrwZWV^XW#O`QZGi)Gg~R$mxXyw$sS*a_Be@p_-TBU$+Zy@)cmq4mtYd+F9hIcM zT_>L0>piL@7q^@iH6_$xDf7;ibBae5=Z~r4EQ=b^H;b3yR~;MU>zOELYPOE}`imvM z=&fW{$?VTk@(;|`Dd8a`=XjPnddazI)>lJx9hxv%uZ?&|U3eGhqW?=>RBqP8wMbpu zo1lfM3L02qC-qc;8p`f!py;{|Yz+{-nT&GP8*yKx5at4&R7_2kB>oJF>Smf zzAfniH&-W^sPw_P=FWIXXSf;m#hLZJF=K%vOw+sIeryL^*=31jb3+WX*2LWbEip{q z&c;DsxvqO9y>knMzmUnqb7}N_o5Zal2@Eq7ZRewp>?ArGO|=A$D@dXB+Ao|wJ)3@2 zqI2-8;<4xkMoXO+8YX#~$NqBuEMdy^Z-F>@*Y(Y1H+NqZRq5&&(_94*3BE9Q)YQeXV7WY>x&$5mx>+AWSWPx_*BEH*Y!iqX8 z+3)_6ncUCA4hygE#lsAKLHb?kH3z!o{G!ov#DmpQ;$& zOtKMMNM1?EPu47J;mFSs zZtg(g|NfJ=;jao*rRTotp^MlT`Y_j!UGExItbV3}Aaz4@sWQOXH`>@P=YN&lS5p)9 z;hfMKd%a}Va;6=QKW>L6>t*h(U?cn5_Lx`S87TqwP-(P7^@eU3H@pwdPj-fWULPzi zbwYAocTCG^k29++@aK{dHp~3d?V}b-?KH98L1tvzWR}|hC$qcBztN`T6QY$ z%i9(E-zVO)&SC3jg`)Q<<(!Nf{u3U?Q=M=8)?H>#`og7=OxHca#XBer+6(j4@pQR- z?N_?+3pIvUZ`qynH9_(m%YP5Mtd92TD(L>C6()C)e7nw) zfqJVI%GWoC#eaaA;crH-_{vP38eShHd%$)j>?U=?=J$DYXqC@v!MPkaG=uBBQn>7L z0u9|0`K|dU?zYaRy+sbAUyH|fWCm4UX0zd75p9;%v*jDfckq=wMQ`D2Wy$W=TNxeY zt~9n&!PaaQ_{&|CS1O+Umy($%-qOgw3P>ENjQ8Tf8FN7$BZWPCVT`aMB&+qhX$w5g z6yB?qWKf(Erf6Hq94`9KCBjjSPy0z_;bvSDzJ`%7uMbz&@vCs{deztSh4dqC<7;X0 zs*3AJ*71U53|DUd#z48tblwW<`}rS+#L4gd^pl6*3F}Y1HrFl)@7cWx9G)~sl`vgS zbZ&v3M#9|mY7SFP;cFPm4q1AR(LR!WZYnIn8rg$t{9}D9`F)d`;aat12ihv(hNn6P zF4Kk9Q3E{j)fZo-yalPoGP^d%!;H3=`Kk+UjPC(Mm!86v?}1J&?ctMbi62{J@6uEc zz1`H%P}dx7gN3hdRLef%8=aY4%9(1V{5q+KJ3Hj@+<$pAiOHq5RTdx0T<}hII**hH zJK=FTE0>mY>-jPcPOD&sb_JJtR#kl zznr1_kN0Iqw_AFIjl+NOL6oqd`u?Wvl<)j>UNr6Y!i-Q5_M%gB{2tr_7sR`eFZF8T zPtocMt8Kp0S1N3*=a%!eEYGRr=@pf7hN@_!UCF}fWmLUazyh5dc|$YUe_AF#)aS72 z_W~~1Tg1nE${D$;j-{;|*)Xp`@|R_Hsn)=pBa%V<>N_{z{>sAFjkKKpjrEyv_^K-{LaL0l5hOv zD^vb9FkJZRuRR*ME>C*LgOU~9PyETfzH{&eVYhq#VE@I9ESDbc<)k{cjFCU*WCME( zPuzUq3>YsbccqnJw%19lKGc{2yZ&k}G z74$ue%2~j+*J)Hg|GTT{JiG| zX(Q>qCMMoiN5n1-Of?V>UEfx+uWE^2XIo*l_yQrb(-Nu4zDO?Sq9aN&3sXa2vNpPf z%O3Q%+MBaT>P_?J;s;PZ)%Zn z42t+v>Vo3jQf^r*=P|B=Uma`MW<@=%Y`$}aFmszrF3=9i8G51dox6l>Uvsb5uA|?h4Yu;KJ zOZ-)ErLHBElUhJAPdMp!B-_APJWM}i7W27*5B%jE2&2{1Px_w`qSNz}+yc=r_o?{B zyWJ(nYVJSkT&8G@n&7r%q@kzeAxl%+!ab}$pQF-lVd_EHD` zlkAMZx2kgAs^WadmN-91GOACsMBg=PSkqYrqjW@*QYgC@J!Pa^7QckPWG9Z6{Et*c zI2W`+3;7uidfN(X(_13;qhypeRYGo~3XDd#!pa8^9Exr!g5P#qQvwb4Vt z7#Ed|FzkUIzD>|Uk?bb&ba*Y`^H zq-b3xxC_J3S~R|I>m`$@nqI3*xjm(j+80WwP*O%X$~o*W=PtgGoz2P^)TNTg{)kU* zU>&osRrCDMT80hy$_*Yr>2;DEzC*IQpDAMCC{+aKs9@7T$?ARB09Jv}6oDXo*fHtU$_Yt3>ad%uLwV{)wdI}JL4W6 zd}wdJDCHm@X7e2KIZCgwP7?prK^&aXVqId@e%lOEoVwTlXTa<&1x* zlBxCB$+(?|*W5!qErQGig_OTVG`}Es^cJ#8$F~@jFXX=2?7u_Vl#ZCMl zxryCWXBnU0S#G|{Avddg%a`l9#itLw$lrXDzA?W%^T{vuJmEpz$SoH_ykzSbPwDY6 z2OdK?;RJb#H4`mD^wYhw(2MVvtyy@*3}2R@o38!QRr`MFx(?qpcHmb%_xH0}`TeHP zKeWo_Sk1`zp{?EE-Pr%pZVSPA*fCk(?ynZRm7<^bX6PFKObteVdQ1cw^=-{Mv?n?^ z#8`hcLT5d~i?|^>xZ_MZ1#U@AzU$7!;iJ5VWBqKz2d(rL+tGoYWz_=UL#;k$Ydy3m z-{Wgyn?Fm34(4p)tuxNgsQb}1y?iN6JE31VF>i)${Qg%nHY5}GQuS%KEOq^xrSE5C z=*;CATCOzO@6#-rQ3{>Lyl6TXN2k`-MQrIsC*!vjSin^Z(^sstVK(@P8X(+5{(Qj8 ztD!rdBW}{f&sj!wLAMw^xW#x5?EQ@o${M3iUzDW{pQ0`Q%Bqygnt2Xw*7FwKP42I3 zm#s(eqYho3seP*$wHbQd{fil?H}N&kL9cNoU2ie#8u~c{|5>AMtc;&TcN2LA?cwN5 zy|f06KVBy}96zbf1}StCjXxjNerxH|--z4>>q)w4kVHp=yylJ#0s{$S_EYVn;zy5P zF8E9PwoX!$=N!vfojuE0Ze4N0ZwLNr1xImb=Pzn3KFv#Q(bC78tFN=fHo)`T%UyEz zaKVQdUCBI-QmntdB=8!Y58`)8jQ@_tZlxdK%V6N!R=CTKT`p1^o?R$-VdxP!6#V?Y zcJN#uQfk*16&AB-5#rX5S6RAya+dm^L*H>~nx0_Cx(|Ae zGwIz2qNzA{G1`#myuX-&KCHU|-$H||T5l&FDYi0dFTW4w{eX9P;4NhH7mut%`0k=P z_`V~xA+^M+tK=f;jNJX;YLvxa8BO28A$VluAy-9-yc>;2Rw43zAFGZ@HEKRTye|tH zb*Oi?_L^kY9eCpO7oHoRVR8%_qlKt>(UlB6Y|?>vPaejLxP4ur)&sM-f!`Y6X~lBN<%c=tOSqQ=^XFXx za>$2%E;8?st60Ce$c%pU2lHK}b(FJM1DvH`4QDxlA9u(m2Wb#zE6#oJ^LmK?>uH1h zC8#ZV#1745bWh8p(X_>?PwV1?#j_jo4|=qRnfaj8w1gb+xEe9?dbUQRQ(Z0$?OCv4 zr`1`yeOjj8&4ou*Ec&gZ=wlyP^(OiySvmgm62e=!G=4b0@C0_mCv`F22ZQm`ZG$dD zq(vLlH0#amOf8Q-cbe^A4SDoS-z zcoDB#lH#>*CUNLtf)@5lRO6#Wy?p(zx*qte4GyO0zS8(oGkYz8*Fx9wc&P+hHSV;? z3@^TeNPD^Si{ALJql~A<*Inf86ZVo5f8{$Roa6#nrrka6&<9s>*`5P0UAPw~yd4%O)_Yj`xv9~~ZPVf$_i+fnFZ44mp~=1X74>LKyuvRyO88|orjI+w+-Af>^$dNob%$wq!4<6Bgt7!)J{}2Y>G$JQ3M3 zb2Mh_?;dzkIO4s)9@OwcXhV^E;+mixTMb{cE>`*xvmO`f{O4xPCMM)6hL`g;yg&<* zn`Wak+up20;Pm}QgZB{nCe}i!Iu^_%Y` zr8%1xhfMXT#%}c742>9ur!PJB#Xjj;_C~7i2v5}5fB&d2eBX<;|FYYct_y#odx6Jq zzxL^x`6XRHI;ZJ_v46Gq;$+>zY@z!o_KDx7>(@2pgw0+Y_% zY%A%X>?Lb0daw`iz1)N69R0%*^x-pmkzdf8?j7SGQ_i8?Oz$4)?<9TkuJgE$&&g+d z8G#mWQ)e5Mlt{Q4WY;X<<9Q0yF~m0mj!&L|7dr4=AKh_#O4ySF}I{{ z@&TL3BLQga^sDJ5p(i|KWQ2=+YK$lRWBlZq@poQpFI~Rl#lSqR^KwVDb{!;*U5Qwp zeQEA(=V+^X)xkc5T)ntEy=d|OXqn^y@XHr?MQl-Z1z95KK4T8p-FvFJf&wRx)X z*(TabW_w$9J{cE~7qZHrKiu4;p446CXBu@dv%b{{V0~Sw^B3cR@`BoCEwcdPNpcDN zaj5@Rkuy(Gn_V5xF4zvUUM9CUCs+DXFD@T#)XW)1Eqj)nGSP@ew@G`!Wy(Q4xc(g) z(f3XIu_bwTb%x#@nV~KVGPKb+beB({F};h||7p@M-%UE`TekXaLSq*%Mk87~o&TUS z)*r2WHxb94R((SLDL2ld$NBUB^ukinWWIJ4&xN%{J$IVdTSCvW75^Vr5F;}12#diZ ziF#;#dGy-v;-waCkP~PJM|?sf$pMdzTh4Md%tb6`T%~2On=F40CTHU&yN0{UoN?$C zM!Cz=3La9aiHA7#&LOv_=M)3H{pQa+WaU>^c~sj)o~ODIKHUotk?JKDx}_FYQ7DcO3kgQAS;O3XiTQ_$%{l9`!J5 zy>0lN&oW4jM1$OVjsL|N)mv>Wnl#&_?n8{)(+U5imGCN`GS|wZy7jO{ZR?md_vdVV z;Az%?q-_0DfSRZmbp^P4-+TD{jAqO15egBjtl z3=N(e%9&~J*KF`u1&dll>8QQWdwMEr59X%jJ z_rjYfcPUfn=E>5oDMo#h%p8KxJ9KoGI)Ptr9h$C9h&d}KWNQEW8EPPBRx6sN#d8|f zXrzB6KMhGt({d-#l88jVJP?nz^QxvcHZr3GK3w1){cRkjbvtqk9?t>s_%J&%pNPQ2 zc?Q@P7{QNfZnBUww4#EmZv-1xaCZZP>H(S zI?ANqiSI}DS+!;^Jk_`1`!1??SD5v|0+YV|$!tP1^jI1^pWb-I?8?v;FEZ7S9;8lr zI7sE0Lk><+*R|+Y?qjG3m*eMa`os*L$$fmt@X@T4#jMB;?e~;S4TM88_fxvw0LK^{ z!g(%)$1J=VTk>%4ROTk!rwSSPu<`eAXPDFrKF!ubX5H9ZN)G|V3$6Itf+uBM~;-dXNgM478p?C$Wo~lfpTc4lv#*>h^mhHyfTZga9eEbL# z%=#}ghG%n)XhCLa2kw7nx>4Jb>z-6KYt%?^%50IylK6^IH$I(UD@lb!hNRQ~B;b!i zEGyT}qJK`qq3dra@4h-p*Az!_@URz$K>VP=x=+r)J31L{c=A>9e7vDg+Kcmk_#!*t z%uGPDA8vbvmH2b!L4&_0eGN0U%BgsU^&r=8b&@gonD_lj4RD%V-B9&3=g$`pi79t2 znuGqXX^LvBCtgN7z^(D4s6Z~SztW<9^YLO?YSH@Ot^bfGp$WdNPI@HBH|1#U{(aC}fMQ{9ev-SU;yG5woAMEG7t+0{6%Xm!Q!iV}I zerp%VFC&c_-U4rn@kTA$#i(_`(k-*_PI9H@9b=FI>}@Puqxzc95*}~Tj(D-Hyh1HN z4m0rQ!}i%qUvw;A)BlfT#owQ(1b?FjX{CCM^a3DKTEA9Ub_5oH^C>@{S&-AdI zg-0v!h6dZabpkJIJbU}ohgj$#><){Z_{pqjBKR$sMi+3w)qC+cB9@ffr}}TE$g^yjOvrF~W4y%5>gg59+)tg3x z)B$5Jo(M*MfjNK`j~EyH&FkRxQ`ugk@fDbIpS`TQ_==&=mH9xoHm``U|fwUboKbe0;#kHehz7s>Y0JskfvUxPdiRK4HUs{6vhl;~M^6W<%z z^IQ&sDZz>TMvb4n(4tbD*jxr2_=Qo2O*QH0*V!657_J(B*Efit38R+T4Y#pJw)%d+ zpW}jA_w(zBH`=OTi-m5}dv-*xIKZkM$-xfi@nd%5*F%%8>XwZT6c{pjyTMuV_Fg;_ zgG~B{oH81`@!?syEFfm>8R!C>&jW_7U z3@vn;9e^fT+9?Wuk$e_?7={KrUPZmai93t%Wl!X@(Zdv>?sIA^l5&gvV$Rp(HE^;# zY^1>u^vFD{YFcX6!4;XSG~}++{|)rV8|gB>L~7QN*NFvQR_)utqG!iibRGD6hZ1Ie zx{N<7$ZIvR>T7bdc4^+s)E%F;6DjM|5o zznu5pZw#}HZ{WrBWYw4B)%DVjj-*R?B<2Gl2U}`nIIu-|^R|1;)X{ote%a9lb`EbRAFaSGReF z_NM+jaw}6;@GPEC@BF6M-LMWWDZKBvMaf#KRjRf*n4wm1nF(Mkvl8*dX<^pw8%){_ zub5RQ({*0}mdsDT^i8Ngkj$U0kdXC4OIp$*{>){1B-&s7tB43W> zUc-IawwxZSmyN_y`?}3^lgo49f~lvR&6iUiI=P7l`M=K{{A4T!DGGjk$_rnl8_ZSg zoFq?GCvnUT{^HBrk~8gQWaz=`nYz6>Ts!*B8#D3X z?ZY#`Yj^5*@)t4C|2%WnbIfBC;k#YT)CBsNz6Xq2a08y6Nq9*Ifqys0%b3@E3oiC} z1Gx3hENz9hZtQ!LF5gZ)z;_V@{y1YQzEP*`a^v0Qbq6?&RdUGZTxhO3I7vbB zt;q>|0RMziqiw~NI5`9TnnI)9B-q|vvSVE&I08>W_Vv09kQy zo-SDF`bw^HbCiozFADwy7i=h)f7^@b@HDoQFgVBgpF7K(V!SuBwBB`dmr|SY`=zdl zCU@)@3s#hynd~+&g|g%g`imR%z2hsucY4fhnzOp;oJFl*2MvggX|t$}I~sKk+GNQ$ zsH68u@t-9fdcY|4ToSoES{>A;RgSXw@ANI2C8s7u6kue9!iR9I?^d*(b z;DJOe>_z{w4sN4&7v?9++{G^3U8+2yCgz^BqSxvdXpj+CMLJOTHQU4X`e3auosSH}a6`B!5*<}4Qsa^Nf8UOa=7+o>%FF(*l|=z`Z~UABQZ zQJ9=cp7}rxye}v5zZyQPOW|DR-!uQEi=`uHEJ>M z4zg%|@^F@~S<}IImeYSaj|2-M&lcgmHYtklIr+{d%Ay`)vb8fle%mvc2a!ul!|xl( z4ohij^RxWy^;LM4Bg&ax7`-*>?4R^#yZ>QcNgvUsx>57&qoxBxddc^@MY7=&F(-y^ z`vrV^+HJ6dJk_e~rxYj5^yB@Ax)gTv^%L z-4_g_DzThCu$w<#+WWF~KyK<%13NbBd3|b!H!tyc9|7NCU6x+_lcigF;%V%_EYuqe zvkaf8`i})kr18a_kE7<(B+e}29++>v0g`&Y=KQP*1GhD;}B&!PS;cugd5A^wOwBORg|*ako9 zJR;4Xss_^s`d@UA74w`V4Sf6p@on8QcEdNqSzvc+@>t&YDZJ6&z<=0;xAqylu;Fb~ zKW{5j>GKwhAUECub1aapwyWsHLb7$|qHI-Wh`HHuS^!>n%ZofZ0v}XI6FM;DfDdT0 zZp_j_;5&;dWoS&WQM(t$t1e8{pBdU%U*bKxuRC^U>*I8zhCIvEG3B$g6#0L6tXZWT zwL85*J7%dp=2IJiD|*MNuK7hh$;{WpnLfEKTlaIHE1u*1ROkCYitqBtEL{#BwP+ds zxHZ$XzE7IoxR<7}3{Us;Hfl+7#2>iuGXgo+!T8r5GHP@Iqc&kidM=H=_yMz>$;?PX ztjY?mRDUM&lAa)Zm_Z&9E8>`cbo->5yo%nI8vP)AXe;;E?2SiG5d#{)2B|lfm^ja@ z3HR}^yTPvjqh9vM`>!)I!jhaDXRDsSLp*juBd>&2w}7#QqPv}RBvW@rfRTL6z!M=$ zv*F^5cFkrU50?Y1c{_3Fe#Zl}%okG{d% z^&%XKO8Cov!BfUyCu(OWW8u-d`r|*!Y-3Rf-plLgQKs9-O3v1beR$+;q5lHMTwWP} zOZa$~%44@mT;E1-Vj*_b`f1U6Z}9~Ot2}p&?=gyge}z^3FNjoO7TnIsUQVUh%lcyW z;z`fg?i2G9cndD;=v}^ZUYX6mTg?1~n)6O*wyv3kM<#fA2V#-)9p5R@eBwOqqZ}$@)#6RTn7}{!EHLYO`hXlW@veniyOusEgg(|9uNv@I zwP+(^!E~!WBUbdImYZX>=<=(456p?yUJ>cTd3YL(t{=66QZu{)R~tp$_5&@1*H>(0 zxvdSm?##lO0R&g%=fDON58;6uBXWTA%;-|KmBFVMd_1YHjof2@{R|ky+Ih^Sa@tB= z?%wqTgE%Gge(0CnGKekoSzS6=X}Yc2$_UqHJGk_1TbXv;PLdwjiV<(}WgnQO!8dBSS?8f1JRUZnB1QW^Y6Yr^*` zP2B&1_cJwG1abTfci2+dr0dbIIl%oHxYeYRBU`IA$<||ajoMW*wd1ICeF{G+;&GO~ z?Lh4AV$m?p?h?*z@e1tP)o0J472K?A%s7TvG<_U6(nNc_ogAgXb3Ek_JIS0na21XC zDB>MBGXcKuBzv)itGKheqxe2?z)#CT27vLr9b?b_q@5HKI|(QETG`7z08Z6~x*$&l z_QRvCy1Fp_v~N_Gd2&y@RDEtR2X!;+TyV@g#IgPKY`x|&&#Wp^6;JGBD>%+w{+r@t@9SM!gzNH??fB5HPL*JQL3A8b|ar zt-S6<)$%`>A5ts4yQX^T9Pyucc%Qtns53Pe&u`;#)kR}O@_@-X{^Cs4N1rnf{=th? z=aLHo4x;gQN2Kg?JmB5YGk!+jyO18M6EzVvhTl=urR%^wj@wAbX7*AE{9+UHhmjuK zmm^lKvzob2r);f5exH8Hq&ssP^)CMgrdU+|B1Mjgq^V6O;z|Z!O7daPmh%Z^w z%sPuWP`?#Ci+1>w!~GiClbVm5aFzT}>=IaB4SaVi*vVdM*h}*lQD=RD-HPouM@K(%XD+YUeDX||dg4g!qLJp`6ZkEd*9YShO zTjKluIwG;X4br#;e9cdG5<^c=v?BT8jGdg|^EMl6BW8H#dyhDXUy74d8tEb{f?TE4 zNLN|s4CW1*vzV&M zaGP&1Lx!J_!C5Xf&R*{40H1qcC;bx*@}9GlM&3AFkU0r8+0je~smD(Ijk+%K4D!u} zqxO>Y%T9U|hpN1ElHQ?CQgWcZEEr%T%?jIyTL~MvN=$vjouchi>_oH@I9Wr^Ml1Rp zb02$2Mx$|Xtey1Y{Mqv!rq^&3E#o4)OF2vUVsN_7aD7|Cm+Ore#bI<1ih||wOfrdi z@3z>>#S`>KS+?@MFm)qms9AzlC-ltLy7c4W@GO^518ij06Zs!kudSUlxWa3KDSkUg zzORJOGuZ7z&O!yaOcORciO(T8{hys>%{C|bI-Kv+0(QdeXwf5seDt%CP&8n^xWetF zzS+jT?@Z1v``S*TyMjNy#Y>`qS#xq97ZLz+K4wJ57rZX5P6NE$_5+y;lJY&=0AOXBPH4dm)n;wJg84>N9`lq~i6#%wi?ehDn6HuI*->C_K5t$I64^-Oz_(7f#P zfN_*$kLV6PNQ-+$ExpOCDa7FooR@(MxbImOa*ajbA0P+OBRr-b^=SYHXOUSQer0Q^ zXVg~2sOrpd%Ph^(5nD6$8aUdg`I-9Z4t>s=Y^@PN5343kCGHweW$Ki?==Sru8`3il zccyQGV|Rpo^3C*yeXr14(KpqiZm)DWUB{rs}{l6eKbPAg*@In%9xIhati#?6P>(Gobk*^b_C$OT>ju7 zG3C+N*h$Yp-{$vU-#>`@u{kppFf<=Hl_$j@_jjQKFa*vNJe4mcz`)=j9H-~b^$$Ke zBf%s1dk=^WJ?R0ethZ(EV32&xsRwh|ORx)^y;@GPxV(#uDd8eTS2{}+8lUBY_B)?x%K_?9?rhGb%rjb2BT>80*lW=Z-0Noa zhXH-f`eik}Xl)z$%v@#HOzQue_+VGEk?zdU`*p>iy`imyP_GsH3vZ+-egEcceK*OX zy8^+c*@3IaEc_?+Mf*jWYFd<~#f}(N;L6w)hl`H3cQ-hcU#GC&5eCQVALfr+v(<$& z@elX0u@CdB@o=BPAlHM@Z!c@s`^2rUV8T*u8EDq9B#X{_0q+*Psy*j$2YjXq%&W>!yFa6L zd{mnKzN(J+i-Su>Imz@c_}Ra7lqvYz_8Cjv3(j5D-ykvYe*)kkzQ~~GeaUR@3B8XW z{mHa!O<>kxpA(JkR_S_rEPnR9-l1#sPJEW2I@#KWUgLXR>g+*I%zL@NIjMi=GV1}? zFE+%gC9c`Zu+Hq=Y`2xh)TRI7kU2Ml4Np`3HklriIdDPZ(`GP}F`b!@O=m91IT!k! z3Q^R@HL0yu!8NR4QNtFCE?os?OFc{LBQy6HwPzDN#jcvwiJ3u_hV;Kn%v$$-mL6Q2 zp%vhC2f%mz+m~96Gr#dYdyk{Q<(PN$A5Gspj+{LW+_ay)+*;)%ZhhhWvqLhM?=8nI zN2$TgE1SA}fv?EX2jCynJ#DXoV}L&v_{UD{+Sy30LEwb8CT)K{ONS4IyTd)Uhnr^i z8lQD`0+Yd(2UAB39|HaYP7_D2Z{Cx-^Np=M{mBl_W$OB#Zt@3A@=HHExk{XAS{6Km z&(x_6zSJ-6Wn45GQj^i9sc9$qW*OuV80#k9ciKI4@QFbYf%AZs=|$QOFmZ#8VC zC4K7b&g>U3WBjn5+As$ktxk?|sj$8Hf?GNBOeXZt*48JiTDvE61`l>BMmb7w8+$2D zJ*UN(BUW~jBXyjl2k$*EJ*V9`aD|$-lCK>8!*>i)|E04sDF07vJvl7a7$a*Nh%z?Lr+{}6=(locWPI1P!VEA?-K@brY_BZta+RI{#^ib zM59QZT;Lq^t%I4BT|Xo82mEMQdz0?xtX<>m#kaAQcl5|9x!B(~vF8Yu7*5aBh5K6j zi0b=fa0c%D(-g4R2sjZrR6CAlr+_nD39Mnw9^%T2Yz+?vzvLdzTE+L_!_Sq-(%b17 z>R;QW8(%WxB>o?7EK(nQq1Q8$R^#6JIhl0&Sa8RI;62YRI_id1YjG}z@)^3Isk!i( zqgaY^=E@qF_3@r~KWCSKo0uJ>=u~*tk+$NnKy@8;R{z#ug`X{26h1`}dZSBl#(Y!x zwGYl^2D}Y0#q>WSA*EG+(X$?*hO$0}3$=xRj~G@iLUjrFlY#h`K9m`}m6*86q+$E; zE@Zx1bA?d{f};)I3>S{?mIwH7r?6=t@t(!h<2 zFp~hs8X95I(fO&(sMGGp0c?Qh?cqEB4*oU0Ju{*W_#j1rHFUCQZEBQgF!TX%J$l0T z+K|^qj$h?-x)U2Z+ew{JgADINFLIRg(+Lmw6KJKH?8RIU9x8p;!&}svC+YL~oOip6 zG-+rj>BL26?qxhX#f#x?gyrLIZ4mhqW7Q*IUi11emxP!3nD{h>8KE<=u}A^tY2=qy zOo5Zofe6}+|Lr4__MB+ZnPb@3=)?S+S>fFPI1Ry8E%?-=nWNd~%5BmgWr&Z@*d6ml zv+y1HkotXbe@B^n9zOMK_&p{#vCqiaoR9Dl^giT;g?{Kx@jh3$QoGYPHRXK#OYRv& z-LaLqQ)ox{1ohbGBSy5hfy4dPL4L!7Ilk9UhIE2AksChkBDmUBoaO9YN4PW0P@j>n zsDr+IwUwP)*?XAgETK=>arSkTPV}{Fo&V$8*-B`0TbaL*nIHIe+5GT*d9FX{O{Pq@ zm)%8~b$qauLfwgZO>Jcyacp5Q-0+XK;z&^=@@dCvu~De z>&JYS^Vy3$GM71EFkGBKFxk_+EP951X&gItW0<>EH)k>zF=?xVX#K%w%=H&uS>|8r z-xU3onWEcEXXzj25KowCTm}ag>gj7qX1&Rb;of4SKIV1O_WafC*?)Bido;a0;qZ+> z%fMpNK9Mv4i&8bJNty=apr*(H=braj{t7vHv57eW^9SO{VeUbht`@yy%+?Sv@eldn zkj5BwY#OyWcl)N%0#0n!q9$gpU$_enW-ZvAo&c^?MdGlv1hqf2k0@&Uyl^d7z6Xy& zL*P#k@xhXe*=5A!0hnuiv>--?==XEv1>i)@TUQH$@Xs#-UNJI?IG54@`KDB=#a zbDJi1va2%nj2a{Xe6vIwW^CZ#z0CG(t7R&u{u&CEK=0%N-T6jj5I@eFr@t%M6 zdz(b9)GbM?^-R(Bz3{an?*5_9Zj{J8Xg_-?Kk)x?P1O$%{%W{?sy0YY(}wT~EnxOB zeE*Tm9Okeu=|ik~8J(efD#EM(1g}0mO=rA;$DWItlpfSC1-yP47%u(OnknRhyUfJE zq6FU4BDQ*pMfiU+y(RgakF0~kyklT4>3$N8lDM2QvAUNe zqfHc4&`nB!8wI61iqRXarwp}CsI#1Oc9VWdj`%OogHx+DoNv{Sy4t=*}br)r`et^7wz z4UN-9Z+__g+CS7cPb|Auzx0dKPrdggR_8_i(6F|#>i8#CeNV*d@XQ}-^Zc7Osr?-u zPMq56Z~Ey(jVhb0PVbX+$h1WL?VqHfXvO4lPSJh?({u;BdktbUbnyHPEr<^2DmWrn zp2LY@rm&g((ETWw6Z@U-3p>kRz8llzJTm$fJN|J#Xzh8+sQS4j;b=Z_c~wjt-ja+U0+>%q2EqD)b9r(^$uE^YthyBDg9FYPCe7+ z_wWVP`+D%tKN>AJ^}yxpYJ*pkN7Hw@-ws`pW7#^g3tYdPS=uB|svd8fqzMm_bxj0b zxM!Ie6JNSo(CZnQs-C@n>DSCp>XP|Z&j-HN;1*H3V#PZRSsJ6S_r&Su#tC{m2RlW* z&}iKouk*r_)P-HANseeyIQdA?q~emivb;=fSzg-XVN@e`DVepUgiQEVM&_-lCROf+ z$le7FBxl?DvU^lbDg3CiTpd(SHWw}YxzY$O*RG?Y7C z8p!6~b)~?qs&etEr*s(cOY85C(&GiA_0=@?RHwO0g&!W$51ojTk#E%I>2)o5?4q8{ zy00xeeAU~9neQy~5NlE%IqOwG>{b<�mK&35}kJLoO0Fh#r{w=1;1tG~ZN03cfEd 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 literal 0 HcmV?d00001 diff --git a/examples/app_mic_array_basic/src/XK-EVK-XU316-AIV.xn b/examples/app_mic_array_basic/src/XK-EVK-XU316-AIV.xn new file mode 100644 index 00000000..b4eb8fff --- /dev/null +++ b/examples/app_mic_array_basic/src/XK-EVK-XU316-AIV.xn @@ -0,0 +1,66 @@ + + + Board + xcore.ai Vision Development Kit + + + tileref tile[2] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/app_mic_array_basic/src/XK-EVK-XU316-AIV.xscope b/examples/app_mic_array_basic/src/XK-EVK-XU316-AIV.xscope new file mode 100644 index 00000000..d3a3da63 --- /dev/null +++ b/examples/app_mic_array_basic/src/XK-EVK-XU316-AIV.xscope @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/examples/app_mic_array_basic/src/app.c b/examples/app_mic_array_basic/src/app.c new file mode 100644 index 00000000..023beb32 --- /dev/null +++ b/examples/app_mic_array_basic/src/app.c @@ -0,0 +1,67 @@ +#include +#include +#include + +#include +#include + +#include "mic_array.h" +#include "device_pll_ctrl.h" + +// -------------------- Frecuency and Port definitions -------------------- +#define MIC_ARRAY_CONFIG_MCLK_FREQ (24576000) +#define MIC_ARRAY_CONFIG_PDM_FREQ (3072000) +#define MIC_ARRAY_CONFIG_PORT_MCLK XS1_PORT_1D /* X0D11, J14 - Pin 15, '11' */ +#define MIC_ARRAY_CONFIG_PORT_PDM_CLK PORT_MIC_CLK /* X0D00, J14 - Pin 2, '00' */ +#define MIC_ARRAY_CONFIG_PORT_PDM_DATA PORT_MIC_DATA /* X0D14..X0D21 | J14 - Pin 3,5,12,14 and Pin 6,7,10,11 */ +#define MIC_ARRAY_CONFIG_CLOCK_BLOCK_A XS1_CLKBLK_2 +// ------------------------------------------------------------ + +// App defines +#define APP_N_SAMPLES (320) +#define APP_OUT_FREQ_HZ (16000) +#define APP_SAMPLE_SECONDS (2) +#define APP_N_FRAMES (APP_OUT_FREQ_HZ * APP_SAMPLE_SECONDS / APP_N_SAMPLES) +#define APP_BUFF_SIZE (APP_N_FRAMES * APP_N_SAMPLES) +#define APP_FILENAME ("mic_array_output.bin") + +static pdm_rx_resources_t pdm_res = PDM_RX_RESOURCES_SDR( + MIC_ARRAY_CONFIG_PORT_MCLK, + MIC_ARRAY_CONFIG_PORT_PDM_CLK, + MIC_ARRAY_CONFIG_PORT_PDM_DATA, + MIC_ARRAY_CONFIG_MCLK_FREQ, + MIC_ARRAY_CONFIG_PDM_FREQ, + MIC_ARRAY_CONFIG_CLOCK_BLOCK_A); + +void user_mic(chanend_t c_mic_audio) +{ + printf("Mic Init\n"); + device_pll_init(); + mic_array_init(&pdm_res, NULL, APP_OUT_FREQ_HZ); + mic_array_start(c_mic_audio); +} + +void user_audio(chanend_t c_mic_audio) +{ + int32_t WORD_ALIGNED tmp_buff[APP_BUFF_SIZE] = {0}; + int32_t *buff_ptr = &tmp_buff[0]; + unsigned frame_counter = APP_N_FRAMES; + while (frame_counter--) + { + ma_frame_rx(buff_ptr, (chanend_t)c_mic_audio, MIC_ARRAY_CONFIG_MIC_COUNT, APP_N_SAMPLES); + buff_ptr += APP_N_SAMPLES; + for (unsigned i = 0; i < APP_N_SAMPLES; i++) + { + tmp_buff[i] <<= 6; + } + } + + // write samples to a binary file + printf("Writing output to %s\n", APP_FILENAME); + FILE *f = fopen(APP_FILENAME, "wb"); + assert(f != NULL); + fwrite(tmp_buff, sizeof(int32_t), APP_BUFF_SIZE, f); + fclose(f); + printf("Done\n"); + exit(0); +} diff --git a/examples/app_mic_array_basic/src/device_pll_ctrl.c b/examples/app_mic_array_basic/src/device_pll_ctrl.c new file mode 100644 index 00000000..ea32cad7 --- /dev/null +++ b/examples/app_mic_array_basic/src/device_pll_ctrl.c @@ -0,0 +1,32 @@ +// Copyright 2022 XMOS LIMITED. +// This Software is subject to the terms of the XMOS Public Licence: Version 1. + +#include +#include +#include +#include +#include "device_pll_ctrl.h" + + +void device_pll_init(void) +{ + unsigned tileid = get_local_tile_id(); + + const unsigned DEVICE_PLL_DISABLE = 0x0201FF04; + const unsigned DEVICE_PLL_DIV_0 = 0x80000004; + + write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_CTL_NUM, + DEVICE_PLL_DISABLE); + + hwtimer_t tmr = hwtimer_alloc(); + { + xassert(tmr != 0); + hwtimer_delay(tmr, 100000); // 1ms with 100 MHz timer tick + } + hwtimer_free(tmr); + + write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_CTL_NUM, DEVICE_PLL_CTL_VAL); + write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_CTL_NUM, DEVICE_PLL_CTL_VAL); + write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_PLL_FRAC_N_DIVIDER_NUM, DEVICE_PLL_FRAC_NOM); + write_sswitch_reg(tileid, XS1_SSWITCH_SS_APP_CLK_DIVIDER_NUM, DEVICE_PLL_DIV_0); +} diff --git a/examples/app_mic_array_basic/src/device_pll_ctrl.h b/examples/app_mic_array_basic/src/device_pll_ctrl.h new file mode 100644 index 00000000..69cec226 --- /dev/null +++ b/examples/app_mic_array_basic/src/device_pll_ctrl.h @@ -0,0 +1,9 @@ +// Copyright 2022 XMOS LIMITED. +// This Software is subject to the terms of the XMOS Public Licence: Version 1. + +#pragma once + +#define DEVICE_PLL_CTL_VAL 0x0A019803 // Valid for all fractional values +#define DEVICE_PLL_FRAC_NOM 0x800095F9 // 24.576000 MHz + +void device_pll_init(void); diff --git a/examples/app_mic_array_basic/src/main.xc b/examples/app_mic_array_basic/src/main.xc new file mode 100644 index 00000000..344cc9b3 --- /dev/null +++ b/examples/app_mic_array_basic/src/main.xc @@ -0,0 +1,28 @@ +// Copyright 2023-2024 XMOS LIMITED. +// This Software is subject to the terms of the XMOS Public Licence: Version 1. + +#include +#include +#include +#include + +#include +#include + +extern "C" { + void user_mic(chanend c_mic_audio); + void user_audio(chanend c_mic_audio); +} + +int main(void) +{ + // Channel declarations + chan c_mic_audio; + + // Initialize parallel tasks + par{ + on tile[1]: user_mic(c_mic_audio); + on tile[1]: user_audio(c_mic_audio); + } + return 0; +} diff --git a/lib_mic_array/src/deinterleave16.S b/lib_mic_array/src/deinterleave16.S index efebb43e..cfb2a683 100644 --- a/lib_mic_array/src/deinterleave16.S +++ b/lib_mic_array/src/deinterleave16.S @@ -143,3 +143,29 @@ deinterleave16: .size deinterleave16, .L_end - deinterleave16 #endif // __XS3A__ + +#if defined(__VX4A__) || defined(__VX4B__) + +#define FUNCTION_NAME deinterleave16 +#define NSTACK_WORDS 4 +#define NSTACK_BYTES (NSTACK_WORDS*4) + +// Note: ldd and std are reversed in vx4 + +.p2align 1 +.globl FUNCTION_NAME +.type FUNCTION_NAME,@function +FUNCTION_NAME: + xm.entsp NSTACK_BYTES + xm.stdsp s2, s3, 0*8 + //TODO + xm.lddsp s2, s3, 0*8 + xm.retsp NSTACK_BYTES + +.size FUNCTION_NAME, . -FUNCTION_NAME +.resource_const FUNCTION_NAME, "stack_frame_bytes", NSTACK_BYTES +.resource_list_empty FUNCTION_NAME, "callees" +.resource_list_empty FUNCTION_NAME, "tail_callees" +.resource_list_empty FUNCTION_NAME, "parallel_callees" + +#endif diff --git a/lib_mic_array/src/deinterleave8.S b/lib_mic_array/src/deinterleave8.S index c3d6a955..ed0f5f2c 100644 --- a/lib_mic_array/src/deinterleave8.S +++ b/lib_mic_array/src/deinterleave8.S @@ -115,3 +115,73 @@ deinterleave8: .size deinterleave8, .L_end - deinterleave8 #endif // __XS3A__ + + +#if defined(__VX4A__) || defined(__VX4B__) + +#define FUNCTION_NAME deinterleave8 +#define NSTACK_WORDS 8 +#define NSTACK_BYTES (NSTACK_WORDS*4) + +// Note: ldd and std are reversed in vx4 + +#define x a0 +#define a a1 +#define b a2 + +#define c s2 +#define d s3 +#define e s4 +#define f s5 +#define g s6 +#define h s7 + +.p2align 1 +.globl FUNCTION_NAME +.type FUNCTION_NAME,@function +FUNCTION_NAME: + // save regs + xm.entsp NSTACK_BYTES + xm.stdsp c, d, 0*8 + xm.stdsp e, f, 1*8 + xm.stdsp g, h, 2*8 + + // deinterleave + xm.ldd b, a, 24(x) + xm.ldd d, c, 16(x) + xm.ldd f, e, 8(x) + xm.ldd h, g, 0(x) + + xm.unzip b, a, 2 + xm.unzip d, c, 2 + xm.unzip f, e, 2 + xm.unzip h, g, 2 + + xm.unzip c, a, 1 + xm.unzip d, b, 1 + xm.unzip g, e, 1 + xm.unzip h, f, 1 + + xm.unzip e, a, 0 + xm.unzip f, b, 0 + xm.unzip g, c, 0 + xm.unzip h, d, 0 + + xm.std a, e, 0(a0) + xm.std c, g, 8(a0) + xm.std b, f, 16(a0) + xm.std d, h, 24(a0) + + // restore regs + xm.lddsp c, d, 0*8 + xm.lddsp e, f, 1*8 + xm.lddsp g, h, 2*8 + xm.retsp NSTACK_BYTES + +.size FUNCTION_NAME, . -FUNCTION_NAME +.resource_const FUNCTION_NAME, "stack_frame_bytes", NSTACK_BYTES +.resource_list_empty FUNCTION_NAME, "callees" +.resource_list_empty FUNCTION_NAME, "tail_callees" +.resource_list_empty FUNCTION_NAME, "parallel_callees" + +#endif diff --git a/tests/unit/src/main.c b/tests/unit/src/main.c index d37d665b..27da8c36 100644 --- a/tests/unit/src/main.c +++ b/tests/unit/src/main.c @@ -14,21 +14,20 @@ int main(int argc, const char* argv[]) printf("\n\n"); - // RUN_TEST_GROUP(dcoe_state_init); - // RUN_TEST_GROUP(dcoe_filter); - // RUN_TEST_GROUP(DcoeSampleFilter); + RUN_TEST_GROUP(dcoe_state_init); + RUN_TEST_GROUP(dcoe_filter); + RUN_TEST_GROUP(DcoeSampleFilter); - // RUN_TEST_GROUP(ma_frame_tx_rx); - // RUN_TEST_GROUP(ma_frame_tx_rx_transpose); - // RUN_TEST_GROUP(ChannelFrameTransmitter); - // RUN_TEST_GROUP(FrameOutputHandler); + RUN_TEST_GROUP(ma_frame_tx_rx); + RUN_TEST_GROUP(ma_frame_tx_rx_transpose); + RUN_TEST_GROUP(ChannelFrameTransmitter); + RUN_TEST_GROUP(FrameOutputHandler); RUN_TEST_GROUP(deinterleave2); RUN_TEST_GROUP(deinterleave4); - // RUN_TEST_GROUP(deinterleave8); - // RUN_TEST_GROUP(deinterleave16); - - // RUN_TEST_GROUP(deinterleave_pdm_samples); + RUN_TEST_GROUP(deinterleave8); + //RUN_TEST_GROUP(deinterleave16); + RUN_TEST_GROUP(deinterleave_pdm_samples); return UNITY_END(); } From a034b2056f29fd571bae7a19ad7ce350893c668c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?xalbertoisorna=E2=80=9D?= Date: Fri, 13 Feb 2026 17:24:46 +0000 Subject: [PATCH 19/19] Add FIR 1x16-bit implementation and corresponding unit tests --- lib_mic_array/src/deinterleave8.S | 2 +- lib_mic_array/src/fir_1x16_bit.S | 61 ++++++++++++++++++++++ tests/unit/src/main.c | 6 +-- tests/unit/src/test_fir_1x16_bit.c | 82 ++++++++++++++++++++++++++++++ 4 files changed, 147 insertions(+), 4 deletions(-) create mode 100644 tests/unit/src/test_fir_1x16_bit.c diff --git a/lib_mic_array/src/deinterleave8.S b/lib_mic_array/src/deinterleave8.S index ed0f5f2c..cc9a876c 100644 --- a/lib_mic_array/src/deinterleave8.S +++ b/lib_mic_array/src/deinterleave8.S @@ -184,4 +184,4 @@ FUNCTION_NAME: .resource_list_empty FUNCTION_NAME, "tail_callees" .resource_list_empty FUNCTION_NAME, "parallel_callees" -#endif +#endif // __VX4A__ || __VX4B__ diff --git a/lib_mic_array/src/fir_1x16_bit.S b/lib_mic_array/src/fir_1x16_bit.S index 576d4ef9..ea0b85b4 100644 --- a/lib_mic_array/src/fir_1x16_bit.S +++ b/lib_mic_array/src/fir_1x16_bit.S @@ -72,3 +72,64 @@ macc_coeffs: .cc_bottom fir_1x16_bit.func #endif // __XS3A__ + + +#if defined(__VX4A__) || defined(__VX4B__) + +/** + * This function is the optimal FIR on a 1-bit signal with 16-bit coefficients. + * + * NOTE: This version is optimized for the mic array and takes only a single block of coefficients + * + * r0: argument 1, signal (word aligned) + * r1: argument 2, coefficients (arranged as 16 1-bit arrays, word aligned) + * r2: spare + * r3: spare + * r11: spare +*/ + +#define FUNCTION_NAME fir_1x16_bit +#define NSTACK_WORDS 16 +#define NSTACK_BYTES (NSTACK_WORDS*4) + +.p2align 4 +.globl FUNCTION_NAME +.type FUNCTION_NAME,@function +FUNCTION_NAME: + { li a3, 32 ; xm.entsp NSTACK_BYTES} + { slli t3, a3, 3 ; xm.vclrdr } + { xm.nop ; xm.vsetc t3} + { xm.nop ; xm.vldc a0} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { add a1, a1, a3 ; xm.vlmaccrb a1} + { addi t3,sp, 0 ; xm.vlmaccrb a1} + { xm.nop ; xm.vstr t3} + { xm.nop ; xm.vclrdr} + { xm.ldap t3, macc_coeffs ; xm.vldc t3} + { addi a2,sp, 0 ; xm.vlmaccr0 t3} + { addi a2, a2, 4 ; xm.vstr a2} + { xm.nop ; xm.vstd a2} + xm.lddsp a0,a1,0 + xm.zip a1,a0,4 + { xm.retsp NSTACK_BYTES ; slli a0, a0, 8} + +// The order of these coefficients tells us that whatever gets VLMACCR1'ed last is going to be multiplied by +// the largest coefficient. Thus, if the bipolar coefficient matrix B[,] has shape 16x32, then B[0,:] must +// correspond to the LEAST significant bits of each coefficient +macc_coeffs: + .short 0x7fff, 0x4000, 0x2000, 0x1000, 0x0800, 0x0400, 0x0200, 0x0100, 0x0080, 0x0040, 0x0020, 0x0010, 0x0008, 0x0004, 0x0002, 0x0001 + +#endif // __VX4A__ || __VX4B__ diff --git a/tests/unit/src/main.c b/tests/unit/src/main.c index 27da8c36..ade802c9 100644 --- a/tests/unit/src/main.c +++ b/tests/unit/src/main.c @@ -26,8 +26,8 @@ int main(int argc, const char* argv[]) RUN_TEST_GROUP(deinterleave2); RUN_TEST_GROUP(deinterleave4); RUN_TEST_GROUP(deinterleave8); - //RUN_TEST_GROUP(deinterleave16); - RUN_TEST_GROUP(deinterleave_pdm_samples); - + // RUN_TEST_GROUP(deinterleave16); + // RUN_TEST_GROUP(deinterleave_pdm_samples); + RUN_TEST_GROUP(fir_1x16_bit); return UNITY_END(); } diff --git a/tests/unit/src/test_fir_1x16_bit.c b/tests/unit/src/test_fir_1x16_bit.c new file mode 100644 index 00000000..18a94941 --- /dev/null +++ b/tests/unit/src/test_fir_1x16_bit.c @@ -0,0 +1,82 @@ +#include +#include +#include +#include + +#include "unity.h" +#include "unity_fixture.h" + +#include "mic_array/etc/fir_1x16_bit.h" +#include "mic_array/etc/filters_default.h" + +TEST_GROUP_RUNNER(fir_1x16_bit) { + RUN_TEST_CASE(fir_1x16_bit, symmetry_test); + RUN_TEST_CASE(fir_1x16_bit, zero_signal); + RUN_TEST_CASE(fir_1x16_bit, alternating_signal); + RUN_TEST_CASE(fir_1x16_bit, with_stage1_coef); +} + +TEST_GROUP(fir_1x16_bit); +TEST_SETUP(fir_1x16_bit) {} +TEST_TEAR_DOWN(fir_1x16_bit) {} + +// Test that opposite signals produce opposite results +TEST(fir_1x16_bit, symmetry_test) +{ + uint32_t signal_pos[1024]; + uint32_t signal_neg[1024]; + + // Using real stage 1 coefficients + extern uint32_t stage1_coef[STAGE1_WORDS]; + + memset(signal_pos, 0x00, sizeof(signal_pos)); // All +1 + memset(signal_neg, 0xFF, sizeof(signal_neg)); // All -1 + + int result_pos = fir_1x16_bit(signal_pos, stage1_coef); + int result_neg = fir_1x16_bit(signal_neg, stage1_coef); + + // Opposite signals should give opposite results + TEST_ASSERT_EQUAL_INT(-result_pos, result_neg); +} + +// Test that zero-mean signal gives zero-ish result +TEST(fir_1x16_bit, alternating_signal) +{ + uint32_t signal[1024]; + extern uint32_t stage1_coef[STAGE1_WORDS]; + + // Alternating pattern: half +1, half -1 + for(int i = 0; i < 1024; i++) { + signal[i] = 0xAAAAAAAA; // 10101010... + } + + int result = fir_1x16_bit(signal, stage1_coef); + + // Should be close to zero (might not be exactly zero due to filter asymmetry) + // Allow some tolerance + TEST_ASSERT_INT_WITHIN(1000000, 0, result); +} + +// Sanity check: function doesn't crash with zero signal +TEST(fir_1x16_bit, zero_signal) +{ + uint32_t signal[1024]; + extern uint32_t stage1_coef[STAGE1_WORDS]; + + memset(signal, 0, sizeof(signal)); + + int result = fir_1x16_bit(signal, stage1_coef); + + // Just verify it runs and returns something reasonable + TEST_ASSERT_NOT_EQUAL(0, result); // With real coeffs, unlikely to be exactly 0 +} + +TEST(fir_1x16_bit, with_stage1_coef) +{ + uint32_t signal[1024]; + int expected_result = 268435456; + memset(signal, 0, sizeof(signal)); + + int result = fir_1x16_bit(signal, stage1_coef); + TEST_ASSERT_EQUAL_INT(expected_result, result); +}