From 8245bf8b365c0c10da328743a1c39a60b16804eb Mon Sep 17 00:00:00 2001 From: Zhangfei Gao Date: Thu, 18 Jan 2024 12:45:33 +0000 Subject: [PATCH] uadk_engine: update to 1.3.0 use openssl 1.1 Signed-off-by: Zhangfei Gao --- ...-export-PKG_CONFIG_PATH-on-openEuler.patch | 85 -- ...1-dh-add-iova_map-and-iova_unmap-ops.patch | 29 + ...-use-calloc-to-replace-malloc-memset.patch | 222 ----- 0002-uadk_util-fix-clang-build-error.patch | 36 + ...engine-add-secure-compilation-option.patch | 70 ++ 0003-v1-some-code-clean.patch | 125 --- ...declaration-of-function-OPENSSL_call.patch | 41 - ...uild-uadk_engine-only-if-openssl-1.1.patch | 93 -- 0006-uadk-support-openssl-3.0.patch | 915 ------------------ 0007-README-update-openssl-3.0.patch | 173 ---- 0008-cipher-fix-double-free-error.patch | 29 - 0009-cipher-fix-set-key-error.patch | 56 -- ...r-fix-async-hardware-computing-error.patch | 36 - uadk_engine-1.2.0.tar.gz | Bin 102891 -> 0 bytes uadk_engine-1.3.0.tar.gz | Bin 0 -> 148220 bytes uadk_engine.spec | 23 +- 16 files changed, 145 insertions(+), 1788 deletions(-) delete mode 100644 0001-readme-export-PKG_CONFIG_PATH-on-openEuler.patch create mode 100644 0001-v1-dh-add-iova_map-and-iova_unmap-ops.patch delete mode 100644 0002-uadk_engine-use-calloc-to-replace-malloc-memset.patch create mode 100644 0002-uadk_util-fix-clang-build-error.patch create mode 100644 0003-uadk_engine-add-secure-compilation-option.patch delete mode 100644 0003-v1-some-code-clean.patch delete mode 100644 0004-v1-fix-implicit-declaration-of-function-OPENSSL_call.patch delete mode 100644 0005-uadk-build-uadk_engine-only-if-openssl-1.1.patch delete mode 100644 0006-uadk-support-openssl-3.0.patch delete mode 100644 0007-README-update-openssl-3.0.patch delete mode 100644 0008-cipher-fix-double-free-error.patch delete mode 100644 0009-cipher-fix-set-key-error.patch delete mode 100644 0010-cipher-fix-async-hardware-computing-error.patch delete mode 100644 uadk_engine-1.2.0.tar.gz create mode 100644 uadk_engine-1.3.0.tar.gz diff --git a/0001-readme-export-PKG_CONFIG_PATH-on-openEuler.patch b/0001-readme-export-PKG_CONFIG_PATH-on-openEuler.patch deleted file mode 100644 index fe1a1f9..0000000 --- a/0001-readme-export-PKG_CONFIG_PATH-on-openEuler.patch +++ /dev/null @@ -1,85 +0,0 @@ -From 2f129935991cb3d8e3fdb8b85f5c8e500390ab01 Mon Sep 17 00:00:00 2001 -From: Zhangfei Gao -Date: Tue, 6 Jun 2023 03:44:14 +0000 -Subject: [PATCH 1/7] readme: export PKG_CONFIG_PATH on openEuler - -openEuler requires setting PKG_CONFIG_PATH though /usr/local/lib/pkgconfig - -Signed-off-by: Zhangfei Gao ---- - README.md | 26 +++++++++++++++++++------- - 1 file changed, 19 insertions(+), 7 deletions(-) - -diff --git a/README.md b/README.md -index 2fe165a..ac721e3 100644 ---- a/README.md -+++ b/README.md -@@ -21,21 +21,32 @@ Installation Instruction - ======================== - - Build and install OpenSSL ------------------------- -+------------------------ - - ``` - git clone https://github.com/openssl/openssl.git - cd openssl - git checkout -b OpenSSL_1_1_1f OpenSSL_1_1_1f -- ./config -Wl,-rpath=/usr/local/lib -+ ./config - make -- make test - sudo make install - openssl version - ``` - -+Run pkg-config to ensure env is setup correctly -+----------------------------------------------- -+ -+``` -+ $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ -+ $ pkg-config libcrypto --libs -+ -L/usr/local/lib -lcrypto -+``` -+ -+* export ``PKG_CONFIG_PATH`` is required on openEuler, -+ where /usr/local/lib is not set as the default pkgconfig search path. -+ - Build and install UADK ---------------------- -+---------------------- - - ``` - git clone https://github.com/Linaro/uadk.git -@@ -46,16 +57,17 @@ Build and install UADK - make - sudo make install - ``` -+ - * If get error:"cannot find -lnuma", please install the libnuma-dev - * If get error:"fatal error: zlib.h: No such file or directory", please install zlib. - - Build and install UADK Engine ------------------------------------- -+----------------------------- - ``` - git clone https://github.com/Linaro/uadk_engine.git - cd uadk_engine - autoreconf -i -- ./configure --libdir=/usr/local/lib/engines-1.1/ --enable-kae -+ ./configure --libdir=/usr/local/lib/engines-1.1/ [--enable-kae] - make - sudo make install - -@@ -93,7 +105,7 @@ Install libraries to the temp folder - -L/tmp/build/lib -lwd - - $ cd uadk_engine -- $ autoreconf -+ $ autoreconf -i - $ ./configure --prefix=/tmp/build - $ make; make install - --- -2.25.1 - diff --git a/0001-v1-dh-add-iova_map-and-iova_unmap-ops.patch b/0001-v1-dh-add-iova_map-and-iova_unmap-ops.patch new file mode 100644 index 0000000..42a28b2 --- /dev/null +++ b/0001-v1-dh-add-iova_map-and-iova_unmap-ops.patch @@ -0,0 +1,29 @@ +From 984b503e018ebc6964e47c3784fd0f204b0c28fd Mon Sep 17 00:00:00 2001 +From: Liulongfang +Date: Tue, 9 Jan 2024 17:28:20 +0800 +Subject: [PATCH 1/3] v1/dh: add iova_map and iova_unmap ops + +If iova_map and iova_unmap ops are not registered, +wcrypto_create_dh_ctx() will return fail since parameters check fails. + +Signed-off-by: Weili Qian +--- + src/v1/alg/dh/hpre_dh_wd.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/v1/alg/dh/hpre_dh_wd.c b/src/v1/alg/dh/hpre_dh_wd.c +index b8ca9a1..556e744 100644 +--- a/src/v1/alg/dh/hpre_dh_wd.c ++++ b/src/v1/alg/dh/hpre_dh_wd.c +@@ -314,6 +314,8 @@ static int hpre_dh_init_eng_ctx(hpre_dh_engine_ctx_t *eng_ctx, int bits, bool is + eng_ctx->dh_setup.cb = hpre_dh_cb; + eng_ctx->dh_setup.br.alloc = kae_wd_alloc_blk; + eng_ctx->dh_setup.br.free = kae_wd_free_blk; ++ eng_ctx->dh_setup.br.iova_map = kae_dma_map; ++ eng_ctx->dh_setup.br.iova_unmap = kae_dma_unmap; + eng_ctx->dh_setup.br.usr = pool; + eng_ctx->dh_setup.is_g2 = is_g2; + eng_ctx->ctx = wcrypto_create_dh_ctx(q, &eng_ctx->dh_setup); +-- +2.25.1 + diff --git a/0002-uadk_engine-use-calloc-to-replace-malloc-memset.patch b/0002-uadk_engine-use-calloc-to-replace-malloc-memset.patch deleted file mode 100644 index f84e879..0000000 --- a/0002-uadk_engine-use-calloc-to-replace-malloc-memset.patch +++ /dev/null @@ -1,222 +0,0 @@ -From e6dcaa276f295a5baa6ea5109a943d2299ade757 Mon Sep 17 00:00:00 2001 -From: Zhangfei Gao -Date: Tue, 6 Jun 2023 05:06:32 +0000 -Subject: [PATCH 2/7] uadk_engine: use calloc to replace malloc+memset - -malloc + memset(0) can be replaced by calloc - -Signed-off-by: Zhangfei Gao ---- - src/uadk_async.c | 5 +---- - src/uadk_ecx.c | 6 ++---- - src/uadk_sm2.c | 4 +--- - src/v1/alg/dh/hpre_dh_wd.c | 3 +-- - src/v1/async/async_task_queue.c | 4 +--- - src/v1/utils/engine_log.c | 6 ++---- - src/v1/wdmngr/wd_alg_queue.c | 6 ++---- - src/v1/wdmngr/wd_queue_memory.c | 11 ++++------- - 8 files changed, 14 insertions(+), 31 deletions(-) - -diff --git a/src/uadk_async.c b/src/uadk_async.c -index f21eabb..86aa9e5 100644 ---- a/src/uadk_async.c -+++ b/src/uadk_async.c -@@ -362,13 +362,10 @@ int async_module_init(void) - if (pthread_mutex_init(&(poll_queue.async_task_mutex), NULL) < 0) - return 0; - -- poll_queue.head = malloc(sizeof(struct async_poll_task) * ASYNC_QUEUE_TASK_NUM); -+ poll_queue.head = calloc(ASYNC_QUEUE_TASK_NUM, sizeof(struct async_poll_task)); - if (poll_queue.head == NULL) - return 0; - -- memset(poll_queue.head, 0, -- sizeof(struct async_poll_task) * ASYNC_QUEUE_TASK_NUM); -- - if (sem_init(&poll_queue.empty_sem, 0, ASYNC_QUEUE_TASK_NUM) != 0) - goto err; - -diff --git a/src/uadk_ecx.c b/src/uadk_ecx.c -index 2824a0d..0537890 100644 ---- a/src/uadk_ecx.c -+++ b/src/uadk_ecx.c -@@ -89,12 +89,11 @@ static int x25519_init(EVP_PKEY_CTX *ctx) - return UADK_E_FAIL; - } - -- x25519_ctx = malloc(sizeof(struct ecx_ctx)); -+ x25519_ctx = calloc(1, sizeof(struct ecx_ctx)); - if (!x25519_ctx) { - fprintf(stderr, "failed to alloc x25519 ctx\n"); - return UADK_E_FAIL; - } -- memset(x25519_ctx, 0, sizeof(struct ecx_ctx)); - - setup.alg = "x25519"; - setup.key_bits = X25519_KEYBITS; -@@ -146,13 +145,12 @@ static int x448_init(EVP_PKEY_CTX *ctx) - return UADK_E_FAIL; - } - -- x448_ctx = malloc(sizeof(struct ecx_ctx)); -+ x448_ctx = calloc(1, sizeof(struct ecx_ctx)); - if (!x448_ctx) { - fprintf(stderr, "failed to alloc x448 ctx\n"); - return UADK_E_FAIL; - } - -- memset(x448_ctx, 0, sizeof(struct ecx_ctx)); - setup.alg = "x448"; - setup.key_bits = X448_KEYBITS; - params.numa_id = uadk_e_ecc_get_numa_id(); -diff --git a/src/uadk_sm2.c b/src/uadk_sm2.c -index 01186ef..63d4fdf 100644 ---- a/src/uadk_sm2.c -+++ b/src/uadk_sm2.c -@@ -1157,14 +1157,12 @@ static int sm2_init(EVP_PKEY_CTX *ctx) - struct sm2_ctx *smctx; - int ret; - -- smctx = malloc(sizeof(*smctx)); -+ smctx = calloc(1, sizeof(*smctx)); - if (!smctx) { - fprintf(stderr, "failed to alloc sm2 ctx\n"); - return 0; - } - -- memset(smctx, 0, sizeof(*smctx)); -- - ret = uadk_e_ecc_get_support_state(SM2_SUPPORT); - if (!ret) { - fprintf(stderr, "sm2 is not supported\n"); -diff --git a/src/v1/alg/dh/hpre_dh_wd.c b/src/v1/alg/dh/hpre_dh_wd.c -index 38a3d09..8dbb9b4 100644 ---- a/src/v1/alg/dh/hpre_dh_wd.c -+++ b/src/v1/alg/dh/hpre_dh_wd.c -@@ -265,12 +265,11 @@ static hpre_dh_engine_ctx_t *hpre_dh_new_eng_ctx(DH *alg) - { - hpre_dh_engine_ctx_t *eng_ctx = NULL; - -- eng_ctx = (hpre_dh_engine_ctx_t *)OPENSSL_malloc(sizeof(hpre_dh_engine_ctx_t)); -+ eng_ctx = (hpre_dh_engine_ctx_t *)OPENSSL_calloc(1, sizeof(hpre_dh_engine_ctx_t)); - if (eng_ctx == NULL) { - US_ERR("hpre engine_ctx malloc fail"); - return NULL; - } -- kae_memset(eng_ctx, 0, sizeof(hpre_dh_engine_ctx_t)); - - eng_ctx->priv_ctx.ssl_alg = alg; - eng_ctx->qlist = kae_get_node_from_pool(g_hpre_dh_qnode_pool); -diff --git a/src/v1/async/async_task_queue.c b/src/v1/async/async_task_queue.c -index 2feea7e..0ef1e84 100644 ---- a/src/v1/async/async_task_queue.c -+++ b/src/v1/async/async_task_queue.c -@@ -60,13 +60,11 @@ int async_poll_task_init_v1(void) - kae_memset(&g_async_poll_queue, 0, sizeof(g_async_poll_queue)); - - g_async_poll_queue.async_poll_task_queue_head = -- (async_poll_task *)malloc(sizeof(async_poll_task) * ASYNC_POLL_TASK_NUM); -+ (async_poll_task *)calloc(ASYNC_POLL_TASK_NUM, sizeof(async_poll_task)); - if (g_async_poll_queue.async_poll_task_queue_head == NULL) { - US_ERR("no enough memory for task queue, errno=%d", errno); //lint !e666 - return 0; - } -- kae_memset(g_async_poll_queue.async_poll_task_queue_head, 0, -- sizeof(async_poll_task) * ASYNC_POLL_TASK_NUM); - g_async_poll_queue.left_task = ASYNC_POLL_TASK_NUM; - - ret = sem_init(&g_async_poll_queue.empty_sem, 0, (unsigned int)g_async_poll_queue.left_task); -diff --git a/src/v1/utils/engine_log.c b/src/v1/utils/engine_log.c -index 6e32b97..ef009e5 100644 ---- a/src/v1/utils/engine_log.c -+++ b/src/v1/utils/engine_log.c -@@ -60,12 +60,10 @@ static void kae_set_conf_debuglevel(void) - - if (conf_path == NULL || strlen(conf_path) > MAX_CONFIG_LEN) - goto err; -- file_path = (char *)kae_malloc(strlen(conf_path) + strlen(filename) + 1); -- debuglev = (char *)kae_malloc(MAX_LEVEL_LEN); -+ file_path = (char *)kae_calloc(1, strlen(conf_path) + strlen(filename) + 1); -+ debuglev = (char *)kae_calloc(1, MAX_LEVEL_LEN); - if (!file_path || !debuglev) - goto err; -- memset(debuglev, 0, MAX_LEVEL_LEN); -- memset(file_path, 0, sizeof(conf_path) + sizeof(filename) + 1); - strcat(file_path, conf_path); - strcat(file_path, filename); - ret = kae_drv_get_item(file_path, "LogSection", "debug_level", debuglev); -diff --git a/src/v1/wdmngr/wd_alg_queue.c b/src/v1/wdmngr/wd_alg_queue.c -index 5cd33ae..098231f 100644 ---- a/src/v1/wdmngr/wd_alg_queue.c -+++ b/src/v1/wdmngr/wd_alg_queue.c -@@ -21,16 +21,14 @@ - - struct wd_queue *wd_new_queue(int algtype) - { -- struct wd_queue *queue = (struct wd_queue *)kae_malloc(sizeof(struct wd_queue)); - int ret; -- -+ struct wd_queue *queue = (struct wd_queue *)kae_calloc(1, -+ sizeof(struct wd_queue)); - if (queue == NULL) { - US_ERR("malloc failed"); - return NULL; - } - -- kae_memset(queue, 0, sizeof(struct wd_queue)); -- - switch (algtype) { - case WCRYPTO_RSA: - queue->capa.alg = "rsa"; -diff --git a/src/v1/wdmngr/wd_queue_memory.c b/src/v1/wdmngr/wd_queue_memory.c -index e6e7a2c..5f28357 100644 ---- a/src/v1/wdmngr/wd_queue_memory.c -+++ b/src/v1/wdmngr/wd_queue_memory.c -@@ -62,13 +62,12 @@ struct wd_queue_mempool *wd_queue_mempool_create(struct wd_queue *q, unsigned in - kae_memset(addr, 0, rsv_mm_sz); - - bitmap_sz = (block_num / BLOCKS_PER_BITMAP + 1) * sizeof(unsigned int); -- pool = -- (struct wd_queue_mempool *)kae_malloc(sizeof(struct wd_queue_mempool) + bitmap_sz); -+ pool = (struct wd_queue_mempool *)kae_calloc(1, -+ sizeof(struct wd_queue_mempool) + bitmap_sz); - if (pool == NULL) { - US_ERR("Alloc pool handle fail!"); - return NULL; - } -- kae_memset(pool, 0, sizeof(struct wd_queue_mempool) + bitmap_sz); - - pool->base = addr; - sem_init(&pool->mempool_sem, 0, 1); -@@ -190,13 +189,12 @@ KAE_QUEUE_POOL_HEAD_S *kae_init_queue_pool(int algtype) - - /* malloc a pool */ - kae_pool->kae_queue_pool = (KAE_QUEUE_POOL_NODE_S *) -- kae_malloc(KAE_QUEUE_POOL_MAX_SIZE * sizeof(KAE_QUEUE_POOL_NODE_S)); -+ kae_calloc(KAE_QUEUE_POOL_MAX_SIZE, sizeof(KAE_QUEUE_POOL_NODE_S)); - if (kae_pool->kae_queue_pool == NULL) { - US_ERR("malloc failed"); - kae_free(kae_pool); - return NULL; - } -- kae_memset(kae_pool->kae_queue_pool, 0, KAE_QUEUE_POOL_MAX_SIZE * sizeof(KAE_QUEUE_POOL_NODE_S)); - - pthread_mutex_init(&kae_pool->kae_queue_mutex, NULL); - pthread_mutex_init(&kae_pool->destroy_mutex, NULL); -@@ -271,12 +269,11 @@ static KAE_QUEUE_DATA_NODE_S *kae_new_wd_queue_memory(int algtype) - { - KAE_QUEUE_DATA_NODE_S *queue_node = NULL; - -- queue_node = (KAE_QUEUE_DATA_NODE_S *)kae_malloc(sizeof(KAE_QUEUE_DATA_NODE_S)); -+ queue_node = (KAE_QUEUE_DATA_NODE_S *)kae_calloc(1, sizeof(KAE_QUEUE_DATA_NODE_S)); - if (queue_node == NULL) { - US_ERR("malloc failed"); - return NULL; - } -- kae_memset(queue_node, 0, sizeof(KAE_QUEUE_DATA_NODE_S)); - - queue_node->kae_wd_queue = wd_new_queue(algtype); - if (queue_node->kae_wd_queue == NULL) { --- -2.25.1 - diff --git a/0002-uadk_util-fix-clang-build-error.patch b/0002-uadk_util-fix-clang-build-error.patch new file mode 100644 index 0000000..66198b2 --- /dev/null +++ b/0002-uadk_util-fix-clang-build-error.patch @@ -0,0 +1,36 @@ +From 0f4d9a02e3a2984a48535e6a38107a0f61631e5d Mon Sep 17 00:00:00 2001 +From: Zhangfei Gao +Date: Wed, 17 Jan 2024 14:09:11 +0000 +Subject: [PATCH 2/3] uadk_util: fix clang build error + +autoreconf -i +./configure CC=clang +make -j8 + +reports error: +uadk_utils.c:53:33: error: unknown register name 'q0' in asm +uadk_utils.c:53:39: error: unknown register name 'q1' in asm + +Fix with "v0", "v1", instead of "q0", "q1" + +Signed-off-by: Zhangfei Gao +--- + src/uadk_utils.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/uadk_utils.c b/src/uadk_utils.c +index 275a124..4a50bc4 100644 +--- a/src/uadk_utils.c ++++ b/src/uadk_utils.c +@@ -50,7 +50,7 @@ static void *memcpy_large(void *dstpp, const void *srcpp, size_t len) + + : [res] "+r"(dstpp) + : [src] "r"(srcpp), [count] "r"(len) +- : "x3", "x4", "x5", "x14", "q0", "q1" ++ : "x3", "x4", "x5", "x14", "v0", "v1" + ); + + return dstpp; +-- +2.25.1 + diff --git a/0003-uadk_engine-add-secure-compilation-option.patch b/0003-uadk_engine-add-secure-compilation-option.patch new file mode 100644 index 0000000..78eb436 --- /dev/null +++ b/0003-uadk_engine-add-secure-compilation-option.patch @@ -0,0 +1,70 @@ +From 638ee431907af6e9f4916e95a4f367e14499e819 Mon Sep 17 00:00:00 2001 +From: Qi Tao +Date: Thu, 18 Jan 2024 21:12:11 +0800 +Subject: [PATCH 3/3] uadk_engine: add secure compilation option +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Add PIE, PIC, BIND_NOW, SP, NO Rpath/RunPath, FS, +Ftrapv and Strip compilation options. + +PIC(-fPIC): + Generate position-Independent-Code and andomly load + dynamic libraries. +PIE(-fPIE -pie): + Generate location-independent executables,which + reduces the probability of fixed address attacks + and buffer overflow attacks. +BIND_NOW(-Wl,-z,relro,-z,now): + GOT table redirects all read-only,which defends + against ret2plt attacks. +SP(-fstack-protector-strong/all): + Determine whether an overflow attack occurs. +Strip(-Wl,-s): + Deleting symbol tables defends against hacker + attacks and reduces the file size. +FS(-D_FORTIFY_SOURCE=2 -O2): + Provides access checks for fixed-size buffers + at compile time and at run time. +Ftrapv(-ftrapv): + Detects integer overflow. +NO Rpath/RunPath(hardcode_into_libs=no): + Eliminates dynamic library search paths, + which defense against attacks by replacing + dynamic libraries with the same name. + +Signed-off-by: Qi Tao +--- + configure.ac | 1 + + src/Makefile.am | 2 ++ + 2 files changed, 3 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 6c5369e..99b85e9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -7,6 +7,7 @@ AC_CONFIG_HEADERS([config.h]) + + AC_PROG_CC + LT_INIT ++AC_SUBST([hardcode_into_libs], [no]) + + AC_ARG_ENABLE(kae, + AS_HELP_STRING([--enable-kae],[Enable kae support])) +diff --git a/src/Makefile.am b/src/Makefile.am +index c4b8aa9..e014052 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -18,6 +18,8 @@ uadk_engine_la_LIBADD=-ldl $(WD_LIBS) -lpthread + uadk_engine_la_LDFLAGS=-module -version-number $(VERSION) + uadk_engine_la_CFLAGS=$(WD_CFLAGS) $(libcrypto_CFLAGS) + uadk_engine_la_CFLAGS+=-DCRYPTO ++uadk_engine_la_CFLAGS+=-fPIC -fPIE -pie -fstack-protector-strong -D_FORTIFY_SOURCE=2 \ ++ -O2 -ftrapv -Wl,-z,relro,-z,now -Wl,-s + + AUTOMAKE_OPTIONS = subdir-objects + +-- +2.25.1 + diff --git a/0003-v1-some-code-clean.patch b/0003-v1-some-code-clean.patch deleted file mode 100644 index 922a812..0000000 --- a/0003-v1-some-code-clean.patch +++ /dev/null @@ -1,125 +0,0 @@ -From e6dae9e2197dad6173f9ec7fbc55373adcfbb29e Mon Sep 17 00:00:00 2001 -From: Zhangfei Gao -Date: Tue, 6 Jun 2023 06:12:23 +0000 -Subject: [PATCH 3/7] v1: some code clean - -remove #if 0, print address, etc - -Signed-off-by: Zhangfei Gao ---- - src/v1/alg/ciphers/sec_ciphers_soft.c | 15 ++++----------- - src/v1/alg/pkey/hpre_rsa.c | 20 +------------------- - src/v1/alg/pkey/hpre_rsa_utils.c | 5 ++--- - 3 files changed, 7 insertions(+), 33 deletions(-) - -diff --git a/src/v1/alg/ciphers/sec_ciphers_soft.c b/src/v1/alg/ciphers/sec_ciphers_soft.c -index 71fbb33..9c597b5 100644 ---- a/src/v1/alg/ciphers/sec_ciphers_soft.c -+++ b/src/v1/alg/ciphers/sec_ciphers_soft.c -@@ -110,11 +110,11 @@ int sec_ciphers_sw_impl_init(EVP_CIPHER_CTX *ctx, const unsigned char *key, - - /* allowed iv to be empty. */ - if (unlikely(key == NULL)) { -- US_ERR("kae sw init parameter is NULL. key=%p", key); -+ US_ERR("kae sw init parameter is NULL"); - return KAE_FAIL; - } - if (unlikely(ctx == NULL)) { -- US_ERR("kae sw init parameter is NULL. ctx=%p", ctx); -+ US_ERR("kae sw init parameter is NULL"); - return KAE_FAIL; - } - -@@ -155,11 +155,10 @@ int sec_ciphers_sw_impl_init(EVP_CIPHER_CTX *ctx, const unsigned char *key, - ret = EVP_CIPHER_meth_get_init(sw_cipher)(ctx, key, iv, enc); - EVP_CIPHER_CTX_set_cipher_data(ctx, priv_ctx); - if (ret != OPENSSL_SUCCESS) { -- US_ERR("OPENSSL init key failed. ctx=%p", ctx); -+ US_ERR("OPENSSL init key failed."); - kae_free(priv_ctx->sw_ctx_data); - return KAE_FAIL; - } -- US_DEBUG("kae sw init impl success. ctx=%p", ctx); - - return KAE_SUCCESS; - } -@@ -185,18 +184,14 @@ int sec_ciphers_sw_impl_cleanup(EVP_CIPHER_CTX *ctx) - - kae_free(priv_ctx->sw_ctx_data); - -- US_DEBUG("kae sw cleanup impl success, ctx=%p", ctx); -- - return KAE_SUCCESS; - } - - static int sec_ciphers_sw_impl_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - const unsigned char *in, size_t inl) - { -- if (unlikely((ctx == NULL) || (out == NULL) || (in == NULL))) { -- US_ERR("kae sw cipher parameter is null.ctx=%p, in=%p, out=%p, inl=%d", ctx, out, in, (int)inl); -+ if (unlikely((ctx == NULL) || (out == NULL) || (in == NULL))) - return KAE_FAIL; -- } - - cipher_priv_ctx_t *priv_ctx = (cipher_priv_ctx_t *)EVP_CIPHER_CTX_get_cipher_data(ctx); - -@@ -277,8 +272,6 @@ int sec_ciphers_sw_hw_ctx_sync(EVP_CIPHER_CTX *ctx, sec_cipher_priv_ctx_syncto_t - } - } - -- US_DEBUG("state sync success, direct=%d[1:SW_TO_HW, 2:HW_TO_SW], offset=%d", direction, num); -- - return KAE_SUCCESS; - } - -diff --git a/src/v1/alg/pkey/hpre_rsa.c b/src/v1/alg/pkey/hpre_rsa.c -index 6c1d96d..4e21dde 100644 ---- a/src/v1/alg/pkey/hpre_rsa.c -+++ b/src/v1/alg/pkey/hpre_rsa.c -@@ -67,25 +67,7 @@ RSA_METHOD *hpre_get_rsa_methods(void) - return g_hpre_rsa_method; - if (g_soft_rsa_method != NULL) - return g_soft_rsa_method; --#if 0 -- if (!kae_get_device(g_hpre_device)) { -- const RSA_METHOD *default_soft_method = RSA_PKCS1_OpenSSL(); -- -- g_soft_rsa_method = RSA_meth_new("SOFT RSA METHOD", 0); -- ret &= RSA_meth_set_pub_enc(g_soft_rsa_method, RSA_meth_get_pub_enc(default_soft_method)); -- ret &= RSA_meth_set_priv_enc(g_soft_rsa_method, RSA_meth_get_priv_enc(default_soft_method)); -- ret &= RSA_meth_set_pub_dec(g_soft_rsa_method, RSA_meth_get_pub_dec(default_soft_method)); -- ret &= RSA_meth_set_priv_dec(g_soft_rsa_method, RSA_meth_get_priv_dec(default_soft_method)); -- ret &= RSA_meth_set_keygen(g_soft_rsa_method, hpre_rsa_soft_genkey); -- ret &= RSA_meth_set_mod_exp(g_soft_rsa_method, RSA_meth_get_mod_exp(default_soft_method)); -- ret &= RSA_meth_set_bn_mod_exp(g_soft_rsa_method, RSA_meth_get_bn_mod_exp(default_soft_method)); -- if (ret == 0) { -- US_ERR("Failed to set SOFT RSA methods"); -- return NULL; -- } -- return g_soft_rsa_method; -- } --#endif -+ - g_hpre_rsa_method = RSA_meth_new("HPRE RSA method", 0); - if (g_hpre_rsa_method == NULL) { - KAEerr(KAE_F_HPRE_GET_RSA_METHODS, KAE_R_MALLOC_FAILURE); -diff --git a/src/v1/alg/pkey/hpre_rsa_utils.c b/src/v1/alg/pkey/hpre_rsa_utils.c -index 0630b28..317a5a0 100644 ---- a/src/v1/alg/pkey/hpre_rsa_utils.c -+++ b/src/v1/alg/pkey/hpre_rsa_utils.c -@@ -44,10 +44,9 @@ void hpre_free_bn_ctx_buf(BN_CTX *bn_ctx, unsigned char *in_buf, int num) - int hpre_rsa_check_para(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa) - { -- if ((rsa == NULL || from == NULL || to == NULL || flen <= 0)) { -- US_ERR("RSA key %p, input %p or output %p are NULL, or flen invalid length.\n", rsa, from, to); -+ if ((rsa == NULL || from == NULL || to == NULL || flen <= 0)) - return HPRE_CRYPTO_FAIL; -- } -+ - return HPRE_CRYPTO_SUCC; - } - --- -2.25.1 - diff --git a/0004-v1-fix-implicit-declaration-of-function-OPENSSL_call.patch b/0004-v1-fix-implicit-declaration-of-function-OPENSSL_call.patch deleted file mode 100644 index aac63af..0000000 --- a/0004-v1-fix-implicit-declaration-of-function-OPENSSL_call.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 1d05480962b3110b8da9f467cc3dbd9047f04589 Mon Sep 17 00:00:00 2001 -From: Zhangfei Gao -Date: Fri, 16 Jun 2023 02:09:00 +0000 -Subject: [PATCH 4/7] =?UTF-8?q?v1:=20fix=20implicit=20declaration=20of=20f?= - =?UTF-8?q?unction=20=E2=80=98OPENSSL=5Fcalloc=E2=80=99?= -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Fix implicit declaration of function ‘OPENSSL_calloc’ with calloc - -Signed-off-by: Zhangfei Gao ---- - src/v1/alg/dh/hpre_dh_wd.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/v1/alg/dh/hpre_dh_wd.c b/src/v1/alg/dh/hpre_dh_wd.c -index 8dbb9b4..b8ca9a1 100644 ---- a/src/v1/alg/dh/hpre_dh_wd.c -+++ b/src/v1/alg/dh/hpre_dh_wd.c -@@ -199,7 +199,7 @@ void hpre_dh_free_eng_ctx(hpre_dh_engine_ctx_t *eng_ctx) - eng_ctx->opdata.pri = NULL; - eng_ctx->opdata.x_p = NULL; - eng_ctx->opdata.pv = NULL; -- OPENSSL_free(eng_ctx); -+ free(eng_ctx); - eng_ctx = NULL; - } - -@@ -265,7 +265,7 @@ static hpre_dh_engine_ctx_t *hpre_dh_new_eng_ctx(DH *alg) - { - hpre_dh_engine_ctx_t *eng_ctx = NULL; - -- eng_ctx = (hpre_dh_engine_ctx_t *)OPENSSL_calloc(1, sizeof(hpre_dh_engine_ctx_t)); -+ eng_ctx = (hpre_dh_engine_ctx_t *)calloc(1, sizeof(hpre_dh_engine_ctx_t)); - if (eng_ctx == NULL) { - US_ERR("hpre engine_ctx malloc fail"); - return NULL; --- -2.25.1 - diff --git a/0005-uadk-build-uadk_engine-only-if-openssl-1.1.patch b/0005-uadk-build-uadk_engine-only-if-openssl-1.1.patch deleted file mode 100644 index 07c8f1d..0000000 --- a/0005-uadk-build-uadk_engine-only-if-openssl-1.1.patch +++ /dev/null @@ -1,93 +0,0 @@ -From aa06f50efb5725a99f5ff93cca04c968ec981635 Mon Sep 17 00:00:00 2001 -From: Zhangfei Gao -Date: Fri, 9 Jun 2023 04:52:30 +0000 -Subject: [PATCH 5/7] uadk: build uadk_engine only if openssl 1.1 - -Rename e_uadk.c to uadk_engine_init.c -Build uadk_engine only if openssl 1.1 - -Signed-off-by: Zhangfei Gao ---- - Makefile.am | 2 -- - configure.ac | 7 ++++--- - src/Makefile.am | 11 ++++++++--- - src/{e_uadk.c => uadk_engine_init.c} | 0 - 4 files changed, 12 insertions(+), 8 deletions(-) - rename src/{e_uadk.c => uadk_engine_init.c} (100%) - -diff --git a/Makefile.am b/Makefile.am -index 55fd400..1ade214 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,7 +1,5 @@ - ACLOCAL_AMFLAGS = -I m4 - --if HAVE_CRYPTO - if HAVE_WD - SUBDIRS = src - endif --endif -diff --git a/configure.ac b/configure.ac -index fb03a5b..0fc14ed 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1,6 +1,5 @@ - AC_PREREQ([2.69]) - AC_INIT([uadk_engine], [1.2]) --AC_CONFIG_SRCDIR([src/e_uadk.c]) - AM_INIT_AUTOMAKE([1.10 no-define]) - - AC_CONFIG_MACRO_DIR([m4]) -@@ -15,8 +14,6 @@ AC_ARG_ENABLE(kae, - AC_SUBST(enable_kae) - AM_CONDITIONAL([WD_KAE], [test "$enable_kae" = "yes"]) - --AC_CHECK_HEADERS([openssl/engine.h]) -- - PKG_CHECK_MODULES(WD, libwd libwd_crypto, [with_wd=yes], [with_wd=no]) - AM_CONDITIONAL(HAVE_WD, [test "$with_wd" != "no"]) - -@@ -24,6 +21,10 @@ PKG_CHECK_MODULES(libcrypto, libcrypto < 3.0 libcrypto >= 1.1, - [with_crypto=yes], [with_crypto=no]) - AM_CONDITIONAL(HAVE_CRYPTO, test "$with_crypto" != "no") - -+PKG_CHECK_MODULES(libcrypto, libcrypto >= 3.0, -+ [with_crypto3=yes], [with_crypto3=no]) -+AM_CONDITIONAL(HAVE_CRYPTO3, test "$with_crypto3" != "no") -+ - AC_CONFIG_FILES([ - Makefile - src/Makefile]) -diff --git a/src/Makefile.am b/src/Makefile.am -index 8ced0e8..65afe1d 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -1,13 +1,18 @@ - VERSION = 1:2 - ACLOCAL_AMFLAGS = -I m4 - -+if HAVE_CRYPTO - lib_LTLIBRARIES=uadk_engine.la -+endif #HAVE_CRYPTO -+ -+uadk_engine_la_SOURCES=uadk_utils.c uadk_engine_init.c uadk_cipher.c \ -+ uadk_digest.c uadk_async.c uadk_rsa.c uadk_sm2.c \ -+ uadk_pkey.c uadk_dh.c uadk_ec.c uadk_ecx.c - --uadk_engine_la_SOURCES=uadk_utils.c e_uadk.c uadk_cipher.c uadk_digest.c uadk_async.c \ -- uadk_rsa.c uadk_sm2.c uadk_pkey.c uadk_dh.c uadk_ec.c uadk_ecx.c - uadk_engine_la_LIBADD=-ldl $(WD_LIBS) -lpthread - uadk_engine_la_LDFLAGS=-module -version-number $(VERSION) --uadk_engine_la_CFLAGS=$(WD_CFLAGS) -+uadk_engine_la_CFLAGS=$(WD_CFLAGS) $(libcrypto_CFLAGS) -+uadk_engine_la_CFLAGS+=-DCRYPTO - - AUTOMAKE_OPTIONS = subdir-objects - -diff --git a/src/e_uadk.c b/src/uadk_engine_init.c -similarity index 100% -rename from src/e_uadk.c -rename to src/uadk_engine_init.c --- -2.25.1 - diff --git a/0006-uadk-support-openssl-3.0.patch b/0006-uadk-support-openssl-3.0.patch deleted file mode 100644 index 0a28d7f..0000000 --- a/0006-uadk-support-openssl-3.0.patch +++ /dev/null @@ -1,915 +0,0 @@ -From c6aab5dadf83fad2716b1687366d040303b1301c Mon Sep 17 00:00:00 2001 -From: Zhangfei Gao -Date: Fri, 9 Jun 2023 09:04:30 +0000 -Subject: [PATCH 6/7] uadk: support openssl 3.0 - -Openssl3.0 provoder will be built when libcrypto >= 3.0 - -First step to support digest - -Test with -openssl speed -provider xx/uadk_provider.so -provider default -evp md5 -openssl speed -provider xx/uadk_provider.so -provider default -evp sm3 -openssl speed -provider xx/uadk_provider.so -provider default -evp sha1 -openssl speed -provider xx/uadk_provider.so -provider default -evp sha2-224 -openssl speed -provider xx/uadk_provider.so -provider default -evp sha2-256 -openssl speed -provider xx/uadk_provider.so -provider default -evp sha2-384 -openssl speed -provider xx/uadk_provider.so -provider default -evp sha2-512 - -Signed-off-by: Zhangfei Gao ---- - src/Makefile.am | 11 + - src/uadk_prov.h | 30 ++ - src/uadk_prov_digest.c | 699 +++++++++++++++++++++++++++++++++++++++++ - src/uadk_prov_init.c | 110 +++++++ - 4 files changed, 850 insertions(+) - create mode 100644 src/uadk_prov.h - create mode 100644 src/uadk_prov_digest.c - create mode 100644 src/uadk_prov_init.c - -diff --git a/src/Makefile.am b/src/Makefile.am -index 65afe1d..bfaeb78 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -5,6 +5,10 @@ if HAVE_CRYPTO - lib_LTLIBRARIES=uadk_engine.la - endif #HAVE_CRYPTO - -+if HAVE_CRYPTO3 -+lib_LTLIBRARIES=uadk_provider.la -+endif #HAVE_CRYPTO3 -+ - uadk_engine_la_SOURCES=uadk_utils.c uadk_engine_init.c uadk_cipher.c \ - uadk_digest.c uadk_async.c uadk_rsa.c uadk_sm2.c \ - uadk_pkey.c uadk_dh.c uadk_ec.c uadk_ecx.c -@@ -45,3 +49,10 @@ uadk_engine_la_SOURCES+=v1/alg/ciphers/sec_ciphers.c \ - v1/async/async_poll.c \ - v1/async/async_task_queue.c - endif #WD_KAE -+ -+uadk_provider_la_SOURCES=uadk_prov_init.c uadk_prov_digest.c uadk_async.c uadk_utils.c -+ -+uadk_provider_la_LDFLAGS=-module -version-number $(VERSION) -+uadk_provider_la_LIBADD=$(WD_LIBS) -lpthread -+uadk_provider_la_CFLAGS=$(WD_CFLAGS) $(libcrypto_CFLAGS) -+uadk_provider_la_CFLAGS+=-DCRYPTO3 -diff --git a/src/uadk_prov.h b/src/uadk_prov.h -new file mode 100644 -index 0000000..c63c3fe ---- /dev/null -+++ b/src/uadk_prov.h -@@ -0,0 +1,30 @@ -+/* -+ * Copyright 2023-2024 Huawei Technologies Co.,Ltd. All rights reserved. -+ * Copyright 2023-2024 Linaro ltd. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+#ifndef UADK_PROV_H -+#define UADK_PROV_H -+ -+extern const OSSL_DISPATCH uadk_md5_functions[]; -+extern const OSSL_DISPATCH uadk_sm3_functions[]; -+extern const OSSL_DISPATCH uadk_sha1_functions[]; -+extern const OSSL_DISPATCH uadk_sha224_functions[]; -+extern const OSSL_DISPATCH uadk_sha256_functions[]; -+extern const OSSL_DISPATCH uadk_sha384_functions[]; -+extern const OSSL_DISPATCH uadk_sha512_functions[]; -+ -+void uadk_prov_destroy_digest(void); -+#endif -diff --git a/src/uadk_prov_digest.c b/src/uadk_prov_digest.c -new file mode 100644 -index 0000000..fd05753 ---- /dev/null -+++ b/src/uadk_prov_digest.c -@@ -0,0 +1,699 @@ -+/* -+ * Copyright 2023-2024 Huawei Technologies Co.,Ltd. All rights reserved. -+ * Copyright 2023-2024 Linaro ltd. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include "uadk.h" -+#include "uadk_async.h" -+#include "uadk_utils.h" -+ -+#define UADK_DO_SOFT (-0xE0) -+#define CTX_SYNC 0 -+#define CTX_ASYNC 1 -+#define CTX_NUM 2 -+#define DIGEST_DOING 1 -+#define DIGEST_END 0 -+ -+/* The max BD data length is 16M-512B */ -+#define BUF_LEN 0xFFFE00 -+ -+#define SM3_DIGEST_LENGTH 32 -+#define SM3_CBLOCK 64 -+#define SM3_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT (512) -+#define MD5_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT (8 * 1024) -+#define SHA_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT (512) -+#define MAX_DIGEST_LENGTH 64 -+#define DIGEST_BLOCK_SIZE (512 * 1024) -+#define ALG_NAME_SIZE 128 -+ -+enum sec_digest_state { -+ SEC_DIGEST_INIT, -+ SEC_DIGEST_FIRST_UPDATING, -+ SEC_DIGEST_DOING, -+ SEC_DIGEST_FINAL -+}; -+ -+struct digest_threshold_table { -+ int nid; -+ int threshold; -+}; -+ -+struct digest_prov { -+ int pid; -+}; -+ -+static struct digest_prov prov; -+static pthread_mutex_t digest_mutex = PTHREAD_MUTEX_INITIALIZER; -+ -+struct evp_md_ctx_st { -+ const EVP_MD *digest; -+ /* Functional reference if 'digest' is ENGINE-provided */ -+ ENGINE *engine; -+ unsigned long flags; -+ void *md_data; -+ /* Public key context for sign/verify */ -+ EVP_PKEY_CTX *pctx; -+ /* Update function: usually copied from EVP_MD */ -+ int (*update)(EVP_MD_CTX *ctx, const void *data, size_t count); -+}; -+ -+struct digest_priv_ctx { -+ handle_t sess; -+ struct wd_digest_sess_setup setup; -+ struct wd_digest_req req; -+ unsigned char *data; -+ unsigned char out[MAX_DIGEST_LENGTH]; -+ EVP_MD_CTX *soft_ctx; -+ EVP_MD *soft_md; -+ size_t last_update_bufflen; -+ uint32_t e_nid; -+ uint32_t state; -+ uint32_t switch_threshold; -+ int switch_flag; -+ size_t md_size; -+ size_t blk_size; -+ char alg_name[ALG_NAME_SIZE]; -+}; -+ -+struct digest_info { -+ int nid; -+ enum wd_digest_mode mode; -+ enum wd_digest_type alg; -+ __u32 out_len; -+}; -+ -+static struct digest_threshold_table digest_pkt_threshold_table[] = { -+ { NID_sm3, SM3_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT }, -+ { NID_md5, MD5_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT }, -+ { NID_sha1, SHA_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT }, -+ { NID_sha224, SHA_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT }, -+ { NID_sha256, SHA_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT }, -+ { NID_sha384, SHA_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT }, -+ { NID_sha512, SHA_SMALL_PACKET_OFFLOAD_THRESHOLD_DEFAULT }, -+}; -+ -+static struct digest_info digest_info_table[] = { -+ {NID_md5, WD_DIGEST_NORMAL, WD_DIGEST_MD5, 16}, -+ {NID_sm3, WD_DIGEST_NORMAL, WD_DIGEST_SM3, 32}, -+ {NID_sha1, WD_DIGEST_NORMAL, WD_DIGEST_SHA1, 20}, -+ {NID_sha224, WD_DIGEST_NORMAL, WD_DIGEST_SHA224, 28}, -+ {NID_sha256, WD_DIGEST_NORMAL, WD_DIGEST_SHA256, 32}, -+ {NID_sha384, WD_DIGEST_NORMAL, WD_DIGEST_SHA384, 48}, -+ {NID_sha512, WD_DIGEST_NORMAL, WD_DIGEST_SHA512, 64}, -+}; -+ -+static int uadk_e_digests_soft_md(struct digest_priv_ctx *priv) -+{ -+ if (priv->soft_md) -+ return 1; -+ -+ switch (priv->e_nid) { -+ case NID_sm3: -+ priv->soft_md = EVP_MD_fetch(NULL, OSSL_DIGEST_NAME_SM3, "provider=default"); -+ break; -+ case NID_md5: -+ priv->soft_md = EVP_MD_fetch(NULL, OSSL_DIGEST_NAME_MD5, "provider=default"); -+ break; -+ case NID_sha1: -+ priv->soft_md = EVP_MD_fetch(NULL, OSSL_DIGEST_NAME_SHA1, "provider=default"); -+ break; -+ case NID_sha224: -+ priv->soft_md = EVP_MD_fetch(NULL, OSSL_DIGEST_NAME_SHA3_224, "provider=default"); -+ break; -+ case NID_sha256: -+ priv->soft_md = EVP_MD_fetch(NULL, OSSL_DIGEST_NAME_SHA3_256, "provider=default"); -+ break; -+ case NID_sha384: -+ priv->soft_md = EVP_MD_fetch(NULL, OSSL_DIGEST_NAME_SHA3_384, "provider=default"); -+ break; -+ case NID_sha512: -+ priv->soft_md = EVP_MD_fetch(NULL, OSSL_DIGEST_NAME_SHA3_512, "provider=default"); -+ break; -+ default: -+ break; -+ } -+ -+ if (unlikely(priv->soft_md == NULL)) -+ return 0; -+ -+ return 1; -+} -+ -+static uint32_t sec_digest_get_sw_threshold(int n_id) -+{ -+ int threshold_table_size = ARRAY_SIZE(digest_pkt_threshold_table); -+ int i = 0; -+ -+ do { -+ if (digest_pkt_threshold_table[i].nid == n_id) -+ return digest_pkt_threshold_table[i].threshold; -+ } while (++i < threshold_table_size); -+ -+ fprintf(stderr, "nid %d not found in digest threshold table", n_id); -+ return 0; -+} -+ -+static int digest_soft_init(struct digest_priv_ctx *priv) -+{ -+ return EVP_DigestInit(priv->soft_ctx, priv->soft_md); -+} -+ -+static int digest_soft_update(EVP_MD_CTX *ctx, const void *data, size_t len) -+{ -+ return EVP_DigestUpdate(ctx, data, len); -+} -+ -+static int digest_soft_final(struct digest_priv_ctx *priv, unsigned char *digest) -+{ -+ unsigned int digest_length = EVP_MD_get_size(priv->soft_md); -+ -+ return EVP_DigestFinal(priv->soft_ctx, digest, &digest_length); -+} -+ -+static void digest_soft_cleanup(struct digest_priv_ctx *priv) -+{ -+ EVP_MD_CTX *ctx = priv->soft_ctx; -+ -+ if (ctx != NULL) { -+ if (ctx->md_data) { -+ OPENSSL_free(ctx->md_data); -+ ctx->md_data = NULL; -+ } -+ EVP_MD_CTX_free(ctx); -+ ctx = NULL; -+ } -+ -+ if (priv->soft_md) { -+ EVP_MD_free(priv->soft_md); -+ priv->soft_md = NULL; -+ } -+} -+ -+static int uadk_e_digest_soft_work(struct digest_priv_ctx *priv, int len, -+ unsigned char *digest) -+{ -+ digest_soft_init(priv); -+ -+ if (len != 0) -+ digest_soft_update(priv->soft_ctx, priv->data, len); -+ -+ digest_soft_final(priv, digest); -+ digest_soft_cleanup(priv); -+ -+ return 1; -+} -+ -+static int uadk_e_digest_env_poll(void *ctx) -+{ -+ __u64 rx_cnt = 0; -+ __u32 recv = 0; -+ /* Poll one packet currently */ -+ int expt = 1; -+ int ret; -+ -+ do { -+ ret = wd_digest_poll(expt, &recv); -+ if (ret < 0 || recv == expt) -+ return ret; -+ rx_cnt++; -+ } while (rx_cnt < ENGINE_RECV_MAX_CNT); -+ -+ fprintf(stderr, "failed to poll msg: timeout!\n"); -+ -+ return -ETIMEDOUT; -+} -+ -+static int uadk_digest_init(struct digest_priv_ctx *priv) -+{ -+ int digest_counts = ARRAY_SIZE(digest_info_table); -+ struct sched_params params = {0}; -+ int nid = priv->e_nid; -+ int ret, i; -+ -+ pthread_mutex_lock(&digest_mutex); -+ if (prov.pid != getpid()) { -+ ret = wd_digest_init2(priv->alg_name, 0, 0); -+ if (unlikely(ret)) { -+ priv->switch_flag = UADK_DO_SOFT; -+ goto soft_init; -+ } -+ prov.pid = getpid(); -+ async_register_poll_fn(ASYNC_TASK_DIGEST, uadk_e_digest_env_poll); -+ } -+ pthread_mutex_unlock(&digest_mutex); -+ -+ for (i = 0; i < digest_counts; i++) { -+ if (nid == digest_info_table[i].nid) { -+ priv->setup.alg = digest_info_table[i].alg; -+ priv->setup.mode = digest_info_table[i].mode; -+ priv->req.out_buf_bytes = MAX_DIGEST_LENGTH; -+ priv->req.out_bytes = digest_info_table[i].out_len; -+ break; -+ } -+ } -+ -+ if (unlikely(i == digest_counts)) { -+ fprintf(stderr, "failed to setup the private ctx.\n"); -+ return 0; -+ } -+ -+ /* Use the default numa parameters */ -+ params.numa_id = -1; -+ priv->setup.sched_param = ¶ms; -+ priv->sess = wd_digest_alloc_sess(&priv->setup); -+ if (unlikely(!priv->sess)) -+ return 0; -+ -+ priv->data = malloc(DIGEST_BLOCK_SIZE); -+ if (unlikely(!priv->data)) { -+ wd_digest_free_sess(priv->sess); -+ return 0; -+ } -+ -+ if (uadk_e_digests_soft_md(priv)) -+ priv->switch_threshold = sec_digest_get_sw_threshold(nid); -+ -+ return 1; -+ -+soft_init: -+ pthread_mutex_unlock(&digest_mutex); -+ fprintf(stderr, "uadk failed to initialize digest.\n"); -+ return digest_soft_init(priv); -+} -+ -+static void digest_update_out_length(struct digest_priv_ctx *priv) -+{ -+ /* Sha224 and Sha384 need full length mac buffer as doing long hash */ -+ if (priv->e_nid == NID_sha224) -+ priv->req.out_bytes = WD_DIGEST_SHA224_FULL_LEN; -+ -+ if (priv->e_nid == NID_sha384) -+ priv->req.out_bytes = WD_DIGEST_SHA384_FULL_LEN; -+} -+ -+static int digest_update_inner(struct digest_priv_ctx *priv, const void *data, size_t data_len) -+{ -+ const unsigned char *tmpdata = (const unsigned char *)data; -+ size_t left_len = data_len; -+ int copy_to_bufflen; -+ int ret; -+ -+ digest_update_out_length(priv); -+ -+ priv->req.has_next = DIGEST_DOING; -+ -+ while (priv->last_update_bufflen + left_len > DIGEST_BLOCK_SIZE) { -+ copy_to_bufflen = DIGEST_BLOCK_SIZE - priv->last_update_bufflen; -+ uadk_memcpy(priv->data + priv->last_update_bufflen, tmpdata, -+ copy_to_bufflen); -+ -+ priv->last_update_bufflen = DIGEST_BLOCK_SIZE; -+ priv->req.in_bytes = DIGEST_BLOCK_SIZE; -+ priv->req.in = priv->data; -+ priv->req.out = priv->out; -+ left_len -= copy_to_bufflen; -+ tmpdata += copy_to_bufflen; -+ if (priv->state == SEC_DIGEST_INIT) -+ priv->state = SEC_DIGEST_FIRST_UPDATING; -+ else if (priv->state == SEC_DIGEST_FIRST_UPDATING) -+ priv->state = SEC_DIGEST_DOING; -+ -+ ret = wd_do_digest_sync(priv->sess, &priv->req); -+ if (ret) { -+ fprintf(stderr, "do sec digest sync failed, switch to soft digest.\n"); -+ goto do_soft_digest; -+ } -+ -+ priv->last_update_bufflen = 0; -+ if (left_len <= DIGEST_BLOCK_SIZE) { -+ priv->last_update_bufflen = left_len; -+ uadk_memcpy(priv->data, tmpdata, priv->last_update_bufflen); -+ break; -+ } -+ } -+ -+ return 1; -+ -+do_soft_digest: -+ if (priv->state == SEC_DIGEST_FIRST_UPDATING -+ && priv->data -+ && priv->last_update_bufflen != 0) { -+ priv->switch_flag = UADK_DO_SOFT; -+ digest_soft_init(priv); -+ ret = digest_soft_update(priv->soft_ctx, -+ priv->data, priv->last_update_bufflen); -+ if (ret != 1) -+ return ret; -+ -+ return digest_soft_update(priv->soft_ctx, -+ tmpdata, left_len); -+ } -+ -+ fprintf(stderr, "do soft digest failed during updating!\n"); -+ return 0; -+} -+ -+static int uadk_digest_update(struct digest_priv_ctx *priv, const void *data, size_t data_len) -+{ -+ if (unlikely(priv->switch_flag == UADK_DO_SOFT)) -+ goto soft_update; -+ -+ if (priv->last_update_bufflen + data_len <= DIGEST_BLOCK_SIZE) { -+ uadk_memcpy(priv->data + priv->last_update_bufflen, data, data_len); -+ priv->last_update_bufflen += data_len; -+ return 1; -+ } -+ -+ return digest_update_inner(priv, data, data_len); -+ -+soft_update: -+ return digest_soft_update(priv->soft_ctx, data, data_len); -+} -+ -+static void async_cb(struct wd_digest_req *req, void *data) -+{ -+ struct uadk_e_cb_info *cb_param; -+ struct async_op *op; -+ -+ if (!req) -+ return; -+ -+ cb_param = req->cb_param; -+ if (!cb_param) -+ return; -+ op = cb_param->op; -+ if (op && op->job && !op->done) { -+ op->done = 1; -+ async_free_poll_task(op->idx, 1); -+ async_wake_job(op->job); -+ } -+} -+ -+static int do_digest_sync(struct digest_priv_ctx *priv) -+{ -+ int ret; -+ -+ if (priv->req.in_bytes <= priv->switch_threshold && -+ priv->state == SEC_DIGEST_INIT) -+ return 0; -+ -+ ret = wd_do_digest_sync(priv->sess, &priv->req); -+ if (ret) { -+ fprintf(stderr, "do sec digest sync failed, switch to soft digest.\n"); -+ return 0; -+ } -+ return 1; -+} -+ -+static int do_digest_async(struct digest_priv_ctx *priv, struct async_op *op) -+{ -+ struct uadk_e_cb_info cb_param; -+ int idx, ret; -+ -+ if (unlikely(priv->switch_flag == UADK_DO_SOFT)) { -+ fprintf(stderr, "async cipher init failed.\n"); -+ return 0; -+ } -+ -+ cb_param.op = op; -+ cb_param.priv = priv; -+ priv->req.cb = (void *)async_cb; -+ priv->req.cb_param = &cb_param; -+ -+ ret = async_get_free_task(&idx); -+ if (!ret) -+ return 0; -+ -+ op->idx = idx; -+ -+ do { -+ ret = wd_do_digest_async(priv->sess, &priv->req); -+ if (ret < 0 && ret != -EBUSY) { -+ fprintf(stderr, "do sec digest async failed.\n"); -+ async_free_poll_task(op->idx, 0); -+ return 0; -+ } -+ } while (ret == -EBUSY); -+ -+ ret = async_pause_job(priv, op, ASYNC_TASK_DIGEST, idx); -+ if (!ret) -+ return 0; -+ return 1; -+} -+ -+static int uadk_digest_final(struct digest_priv_ctx *priv, unsigned char *digest) -+{ -+ struct async_op op; -+ int ret; -+ -+ priv->req.has_next = DIGEST_END; -+ priv->req.in = priv->data; -+ priv->req.out = priv->out; -+ priv->req.in_bytes = priv->last_update_bufflen; -+ -+ if (priv->e_nid == NID_sha224) -+ priv->req.out_bytes = WD_DIGEST_SHA224_LEN; -+ -+ if (priv->e_nid == NID_sha384) -+ priv->req.out_bytes = WD_DIGEST_SHA384_LEN; -+ -+ ret = async_setup_async_event_notification(&op); -+ if (unlikely(!ret)) { -+ fprintf(stderr, "failed to setup async event notification.\n"); -+ return 0; -+ } -+ -+ if (op.job == NULL) { -+ /* Synchronous, only the synchronous mode supports soft computing */ -+ if (unlikely(priv->switch_flag == UADK_DO_SOFT)) { -+ ret = digest_soft_final(priv, digest); -+ digest_soft_cleanup(priv); -+ goto clear; -+ } -+ -+ ret = do_digest_sync(priv); -+ if (!ret) -+ goto sync_err; -+ } else { -+ ret = do_digest_async(priv, &op); -+ if (!ret) -+ goto clear; -+ } -+ memcpy(digest, priv->req.out, priv->req.out_bytes); -+ -+ return 1; -+ -+sync_err: -+ if (priv->state == SEC_DIGEST_INIT) { -+ ret = uadk_e_digest_soft_work(priv, priv->req.in_bytes, digest); -+ } else { -+ ret = 0; -+ fprintf(stderr, "do sec digest stream mode failed.\n"); -+ } -+clear: -+ async_clear_async_event_notification(); -+ return ret; -+} -+ -+static int uadk_digest_cleanup(struct digest_priv_ctx *priv) -+{ -+ if (priv->sess) { -+ wd_digest_free_sess(priv->sess); -+ priv->sess = 0; -+ } -+ -+ if (priv->data) -+ OPENSSL_free(priv->data); -+ -+ return 1; -+} -+ -+/* some params related code is copied from OpenSSL v3.0 prov/digestcommon.h */ -+static const OSSL_PARAM uadk_digest_default_known_gettable_params[] = { -+ OSSL_PARAM_size_t(OSSL_DIGEST_PARAM_BLOCK_SIZE, NULL), -+ OSSL_PARAM_size_t(OSSL_DIGEST_PARAM_SIZE, NULL), -+ OSSL_PARAM_int(OSSL_DIGEST_PARAM_XOF, NULL), -+ OSSL_PARAM_int(OSSL_DIGEST_PARAM_ALGID_ABSENT, NULL), -+ OSSL_PARAM_END -+}; -+ -+static const OSSL_PARAM *uadk_prov_gettable_params(void *provctx) -+{ -+ return uadk_digest_default_known_gettable_params; -+} -+ -+static int uadk_digest_default_get_params(OSSL_PARAM params[], size_t blksz, -+ size_t paramsz) -+{ -+ OSSL_PARAM *p = NULL; -+ -+ p = OSSL_PARAM_locate(params, OSSL_DIGEST_PARAM_BLOCK_SIZE); -+ if (p != NULL && !OSSL_PARAM_set_size_t(p, blksz)) { -+ ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER); -+ return 0; -+ } -+ p = OSSL_PARAM_locate(params, OSSL_DIGEST_PARAM_SIZE); -+ if (p != NULL && !OSSL_PARAM_set_size_t(p, paramsz)) { -+ ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER); -+ return 0; -+ } -+ p = OSSL_PARAM_locate(params, OSSL_DIGEST_PARAM_XOF); -+ if (p != NULL -+ && !OSSL_PARAM_set_int(p, 0)) { -+ ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER); -+ return 0; -+ } -+ p = OSSL_PARAM_locate(params, OSSL_DIGEST_PARAM_ALGID_ABSENT); -+ if (p != NULL -+ && !OSSL_PARAM_set_int(p, 0)) { -+ ERR_raise(ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER); -+ return 0; -+ } -+ -+ return 1; -+} -+ -+static void uadk_prov_freectx(void *dctx) -+{ -+ struct digest_priv_ctx *priv = (struct digest_priv_ctx *)dctx; -+ -+ uadk_digest_cleanup(priv); -+ OPENSSL_clear_free(priv, sizeof(*priv)); -+} -+ -+static void *uadk_prov_dupctx(void *dctx) -+{ -+ struct digest_priv_ctx *in; -+ struct digest_priv_ctx *ret; -+ -+ in = (struct digest_priv_ctx *)dctx; -+ ret = OPENSSL_zalloc(sizeof(struct digest_priv_ctx *)); -+ -+ if (ret != NULL) -+ *ret = *in; -+ return ret; -+} -+ -+static int uadk_prov_init(void *dctx, const OSSL_PARAM params[]) -+{ -+ struct digest_priv_ctx *priv = -+ (struct digest_priv_ctx *) dctx; -+ -+ return uadk_digest_init(priv); -+} -+ -+static int uadk_prov_update(void *dctx, const unsigned char *in, size_t inl) -+{ -+ return uadk_digest_update((struct digest_priv_ctx *)dctx, in, inl); -+} -+ -+/* -+ * Note: -+ * The I parameter contains a pointer to the provider side context. -+ * The digest should be written to I<*out> and the length of the digest to I<*outl>. -+ * The digest should not exceed I bytes. -+ */ -+static int uadk_prov_final(void *dctx, unsigned char *out, -+ size_t *outl, size_t outsz) -+{ -+ struct digest_priv_ctx *priv = -+ (struct digest_priv_ctx *) dctx; -+ int ret; -+ -+ if (outsz > 0) { -+ ret = uadk_digest_final(priv, out); -+ if (!ret) -+ return ret; -+ } -+ -+ if (unlikely(outl != NULL)) -+ *outl = priv->md_size; -+ -+ return 1; -+} -+ -+void uadk_prov_destroy_digest(void) -+{ -+ pthread_mutex_lock(&digest_mutex); -+ if (prov.pid == getpid()) { -+ wd_digest_uninit2(); -+ prov.pid = 0; -+ } -+ pthread_mutex_unlock(&digest_mutex); -+} -+ -+static OSSL_FUNC_digest_freectx_fn uadk_prov_freectx; -+static OSSL_FUNC_digest_dupctx_fn uadk_prov_dupctx; -+static OSSL_FUNC_digest_init_fn uadk_prov_init; -+static OSSL_FUNC_digest_update_fn uadk_prov_update; -+static OSSL_FUNC_digest_final_fn uadk_prov_final; -+static OSSL_FUNC_digest_gettable_params_fn -+ uadk_prov_gettable_params; -+ -+#define UADK_PROVIDER_IMPLEMENTATION(name, nid, mdsize, blksize) \ -+static OSSL_FUNC_digest_newctx_fn uadk_##name##_newctx; \ -+static void *uadk_##name##_newctx(void *provctx) \ -+{ \ -+ struct digest_priv_ctx *ctx = OPENSSL_zalloc(sizeof(*ctx)); \ -+ \ -+ if (ctx == NULL) \ -+ return NULL; \ -+ ctx->blk_size = blksize; \ -+ ctx->md_size = mdsize; \ -+ ctx->e_nid = nid; \ -+ ctx->soft_ctx = EVP_MD_CTX_new(); \ -+ if (ctx->soft_ctx == NULL) \ -+ fprintf(stderr, "EVP_MD_CTX_new failed.\n"); \ -+ strncpy(ctx->alg_name, #name, ALG_NAME_SIZE - 1); \ -+ return ctx; \ -+} \ -+static OSSL_FUNC_digest_get_params_fn uadk_##name##_get_params; \ -+static int uadk_##name##_get_params(OSSL_PARAM params[]) \ -+{ \ -+ return uadk_digest_default_get_params(params, blksize, mdsize); \ -+} \ -+const OSSL_DISPATCH uadk_##name##_functions[] = { \ -+ { OSSL_FUNC_DIGEST_NEWCTX, (void (*)(void))uadk_##name##_newctx }, \ -+ { OSSL_FUNC_DIGEST_FREECTX, (void (*)(void))uadk_prov_freectx }, \ -+ { OSSL_FUNC_DIGEST_DUPCTX, (void (*)(void))uadk_prov_dupctx }, \ -+ { OSSL_FUNC_DIGEST_INIT, (void (*)(void))uadk_prov_init }, \ -+ { OSSL_FUNC_DIGEST_UPDATE, (void (*)(void))uadk_prov_update }, \ -+ { OSSL_FUNC_DIGEST_FINAL, (void (*)(void))uadk_prov_final }, \ -+ { OSSL_FUNC_DIGEST_GET_PARAMS, \ -+ (void (*)(void))uadk_##name##_get_params }, \ -+ { OSSL_FUNC_DIGEST_GETTABLE_PARAMS, \ -+ (void (*)(void))uadk_prov_gettable_params }, \ -+ { 0, NULL } \ -+} -+ -+UADK_PROVIDER_IMPLEMENTATION(md5, NID_md5, MD5_DIGEST_LENGTH, MD5_CBLOCK); -+UADK_PROVIDER_IMPLEMENTATION(sm3, NID_sm3, SM3_DIGEST_LENGTH, SM3_CBLOCK); -+UADK_PROVIDER_IMPLEMENTATION(sha1, NID_sha1, 20, 64); -+UADK_PROVIDER_IMPLEMENTATION(sha224, NID_sha224, 28, 64); -+UADK_PROVIDER_IMPLEMENTATION(sha256, NID_sha256, 32, 64); -+UADK_PROVIDER_IMPLEMENTATION(sha384, NID_sha384, 48, 128); -+UADK_PROVIDER_IMPLEMENTATION(sha512, NID_sha512, 64, 128); -diff --git a/src/uadk_prov_init.c b/src/uadk_prov_init.c -new file mode 100644 -index 0000000..e363584 ---- /dev/null -+++ b/src/uadk_prov_init.c -@@ -0,0 +1,110 @@ -+/* -+ * Copyright 2023-2024 Huawei Technologies Co.,Ltd. All rights reserved. -+ * Copyright 2023-2024 Linaro ltd. -+ * -+ * Licensed under the Apache License, Version 2.0 (the "License"); -+ * you may not use this file except in compliance with the License. -+ * You may obtain a copy of the License at -+ * -+ * http://www.apache.org/licenses/LICENSE-2.0 -+ * -+ * Unless required by applicable law or agreed to in writing, software -+ * distributed under the License is distributed on an "AS IS" BASIS, -+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -+ * See the License for the specific language governing permissions and -+ * limitations under the License. -+ * -+ */ -+ -+#include -+#include -+ -+#include -+#include -+#include -+ -+#include "uadk_async.h" -+#include "uadk_prov.h" -+ -+struct p_uadk_ctx { -+ const OSSL_CORE_HANDLE *handle; -+ OSSL_LIB_CTX *libctx; -+}; -+ -+const char *engine_uadk_id = "uadk_provider"; -+static const char UADK_DEFAULT_PROPERTIES[] = "provider=uadk"; -+ -+const OSSL_ALGORITHM uadk_prov_digests[] = { -+ { OSSL_DIGEST_NAME_MD5, UADK_DEFAULT_PROPERTIES, -+ uadk_md5_functions, "uadk_provider md5" }, -+ { OSSL_DIGEST_NAME_SM3, UADK_DEFAULT_PROPERTIES, -+ uadk_sm3_functions, "uadk_provider sm3" }, -+ { OSSL_DIGEST_NAME_SHA1, UADK_DEFAULT_PROPERTIES, -+ uadk_sha1_functions, "uadk_provider sha1" }, -+ { OSSL_DIGEST_NAME_SHA2_224, UADK_DEFAULT_PROPERTIES, -+ uadk_sha224_functions, "uadk_provider sha2-224" }, -+ { OSSL_DIGEST_NAME_SHA2_256, UADK_DEFAULT_PROPERTIES, -+ uadk_sha256_functions, "uadk_provider sha2-256" }, -+ { OSSL_DIGEST_NAME_SHA2_384, UADK_DEFAULT_PROPERTIES, -+ uadk_sha384_functions, "uadk_provider sha2-384" }, -+ { OSSL_DIGEST_NAME_SHA2_512, UADK_DEFAULT_PROPERTIES, -+ uadk_sha512_functions, "uadk_provider sha2-512" }, -+ { NULL, NULL, NULL } -+}; -+ -+static const OSSL_ALGORITHM *p_prov_query(void *provctx, int operation_id, -+ int *no_cache) -+{ -+ *no_cache = 0; -+ -+ switch (operation_id) { -+ case OSSL_OP_DIGEST: -+ return uadk_prov_digests; -+ } -+ return NULL; -+} -+ -+static void p_teardown(void *provctx) -+{ -+ struct p_uadk_ctx *ctx = (struct p_uadk_ctx *)provctx; -+ -+ uadk_prov_destroy_digest(); -+ OPENSSL_free(ctx); -+} -+ -+static const OSSL_DISPATCH p_test_table[] = { -+ { OSSL_FUNC_PROVIDER_QUERY_OPERATION, (void (*)(void))p_prov_query }, -+ { OSSL_FUNC_PROVIDER_TEARDOWN, (void (*)(void))p_teardown }, -+ { 0, NULL } -+}; -+ -+static void provider_init_child_at_fork_handler(void) -+{ -+ int ret; -+ -+ ret = async_module_init(); -+ if (!ret) -+ fprintf(stderr, "async_module_init fail!\n"); -+} -+ -+int OSSL_provider_init(const OSSL_CORE_HANDLE *handle, -+ const OSSL_DISPATCH *oin, -+ const OSSL_DISPATCH **out, -+ void **provctx) -+{ -+ struct p_uadk_ctx *ctx; -+ int ret; -+ -+ ctx = OPENSSL_zalloc(sizeof(*ctx)); -+ if (ctx == NULL) -+ return 0; -+ -+ ret = async_module_init(); -+ if (!ret) -+ fprintf(stderr, "async_module_init fail!\n"); -+ pthread_atfork(NULL, NULL, provider_init_child_at_fork_handler); -+ -+ *provctx = (void *)ctx; -+ *out = p_test_table; -+ return 1; -+} --- -2.25.1 - diff --git a/0007-README-update-openssl-3.0.patch b/0007-README-update-openssl-3.0.patch deleted file mode 100644 index d565bb8..0000000 --- a/0007-README-update-openssl-3.0.patch +++ /dev/null @@ -1,173 +0,0 @@ -From bbf050d5f1eb525e881c7d581f913f2df27d2637 Mon Sep 17 00:00:00 2001 -From: Zhangfei Gao -Date: Tue, 13 Jun 2023 09:24:19 +0000 -Subject: [PATCH 7/7] README: update openssl 3.0 - -Update build steps for openssl 3.0 - -Also update sanity_test.sh -If ./configure --libdir=/usr/local/lib/ossl-modules/ -$ ./test/sanity_test.sh - -If ./configure --prefix=/tmp/build -$ ./test/sanity_test.sh /tmp/build/lib/uadk_provider.so - -Signed-off-by: Zhangfei Gao ---- - README.md | 34 ++++++++++++++++++++++++++------ - test/sanity_test.sh | 48 +++++++++++++++++++++++++++++++++++++++------ - 2 files changed, 70 insertions(+), 12 deletions(-) - -diff --git a/README.md b/README.md -index ac721e3..86676db 100644 ---- a/README.md -+++ b/README.md -@@ -13,7 +13,7 @@ OpenSSL engine for uadk - Prerequisites - ============= - * CPU: aarch64 --* OpenSSL: 1.1.1f -+* OpenSSL: 1.1.1f or 3.0 - * libnuma - * zlib - -@@ -26,24 +26,26 @@ Build and install OpenSSL - ``` - git clone https://github.com/openssl/openssl.git - cd openssl -- git checkout -b OpenSSL_1_1_1f OpenSSL_1_1_1f -+ // For openssl1.1.1f -+ git checkout -b opensssl1.1 OpenSSL_1_1_1f -+ // for openssl 3.0 -+ git checkout -b openssl3.0 openssl-3.0.0 - ./config - make - sudo make install - openssl version - ``` - --Run pkg-config to ensure env is setup correctly -+Setup env on-demand - ----------------------------------------------- - - ``` - $ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ - $ pkg-config libcrypto --libs - -L/usr/local/lib -lcrypto --``` - --* export ``PKG_CONFIG_PATH`` is required on openEuler, -- where /usr/local/lib is not set as the default pkgconfig search path. -+ $ export LD_LIBRARY_PATH=/usr/local/lib -+``` - - Build and install UADK - ---------------------- -@@ -63,6 +65,7 @@ Build and install UADK - - Build and install UADK Engine - ----------------------------- -+For openssl 1.1 - ``` - git clone https://github.com/Linaro/uadk_engine.git - cd uadk_engine -@@ -74,6 +77,20 @@ Build and install UADK Engine - Option --enable-kae can be chosen to enable KAE for non-sva version - ``` - -+For openssl 3.0 -+``` -+ git clone https://github.com/Linaro/uadk_engine.git -+ cd uadk_engine -+ autoreconf -i -+ // openEuler -+ ./configure --libdir=/usr/local/lib/engines-3/ -+ // ubuntu -+ ./configure --libdir=/usr/local/lib/ossl-modules/ -+ make -+ sudo make install -+ -+``` -+ - Testing - ------- - ``` -@@ -109,9 +126,14 @@ Install libraries to the temp folder - $ ./configure --prefix=/tmp/build - $ make; make install - -+ // For openssl 1.1 - $ openssl engine -c /tmp/build/lib/uadk_engine.so - $ ./test/sanity_test.sh /tmp/build/lib/uadk_engine.so - -+ // For openssl 3.0 -+ $ openssl speed -provider /tmp/build/lib/uadk_provider.so -provider default -evp md5 -+ $ ./test/sanity_test.sh /tmp/build/lib/uadk_provider.so -+ - ``` - - Environment variable of uadk engine -diff --git a/test/sanity_test.sh b/test/sanity_test.sh -index bdedc15..899d02c 100755 ---- a/test/sanity_test.sh -+++ b/test/sanity_test.sh -@@ -2,14 +2,50 @@ - - sudo chmod 666 /dev/hisi_* - --if [ ! -n "$1" ]; then -- engine_id=uadk_engine --else -- engine_id=$1 -+ -+version=$(openssl version) -+echo $version -+if [[ $version =~ "3.0" ]]; then -+ echo "openssl 3.0" -+ if [ ! -n "$1" ]; then -+ engine_id=uadk_provider -+ else -+ engine_id=$1 -+ fi -+ -+ digest_algs=$(openssl list -provider $engine_id -digest-algorithms) -+fi -+ -+if [[ $digest_algs =~ "uadk_provider" ]]; then -+ echo "uadk_provider testing digest" -+ openssl speed -provider $engine_id -provider default -evp md5 -+ openssl speed -provider $engine_id -provider default -evp sm3 -+ openssl speed -provider $engine_id -provider default -evp sha1 -+ openssl speed -provider $engine_id -provider default -evp sha2-224 -+ openssl speed -provider $engine_id -provider default -evp sha2-256 -+ openssl speed -provider $engine_id -provider default -evp sha2-384 -+ openssl speed -provider $engine_id -provider default -evp sha2-512 -+ -+ openssl speed -provider $engine_id -provider default -async_jobs 1 -evp md5 -+ openssl speed -provider $engine_id -provider default -async_jobs 1 -evp sm3 -+ openssl speed -provider $engine_id -provider default -async_jobs 1 -evp sha1 -+ openssl speed -provider $engine_id -provider default -async_jobs 1 -evp sha2-224 -+ openssl speed -provider $engine_id -provider default -async_jobs 1 -evp sha2-256 -+ openssl speed -provider $engine_id -provider default -async_jobs 1 -evp sha2-384 -+ openssl speed -provider $engine_id -provider default -async_jobs 1 -evp sha2-512 - fi - --algs=$(openssl engine -c $engine_id) --echo $algs -+if [[ $version =~ "1.1.1" ]]; then -+ echo "openssl 1.1.1" -+ if [ ! -n "$1" ]; then -+ engine_id=uadk_engine -+ else -+ engine_id=$1 -+ fi -+ -+ algs=$(openssl engine -c $engine_id) -+ echo $algs -+fi - - #digest - if [[ $algs =~ "MD5" ]]; then --- -2.25.1 - diff --git a/0008-cipher-fix-double-free-error.patch b/0008-cipher-fix-double-free-error.patch deleted file mode 100644 index e229475..0000000 --- a/0008-cipher-fix-double-free-error.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 516c9a1c8f77e8d1d91c78478425b4df585ec485 Mon Sep 17 00:00:00 2001 -From: taoqi -Date: Tue, 20 Jun 2023 22:38:01 +0800 -Subject: [PATCH 08/10] cipher: fix double free error - -When wd_cipher_set_key() failed, after the handle -is released, the handle should be set to 0 to avoid -reusing. - -Signed-off-by: taoqi ---- - src/uadk_cipher.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/uadk_cipher.c b/src/uadk_cipher.c -index c7be21a..1905e47 100644 ---- a/src/uadk_cipher.c -+++ b/src/uadk_cipher.c -@@ -878,6 +878,7 @@ static void uadk_e_ctx_init(EVP_CIPHER_CTX *ctx, struct cipher_priv_ctx *priv) - ret = wd_cipher_set_key(priv->sess, priv->key, EVP_CIPHER_CTX_key_length(ctx)); - if (ret) { - wd_cipher_free_sess(priv->sess); -+ priv->sess = 0; - fprintf(stderr, "uadk failed to set key!\n"); - } - } --- -2.25.1 - diff --git a/0009-cipher-fix-set-key-error.patch b/0009-cipher-fix-set-key-error.patch deleted file mode 100644 index 4575d1d..0000000 --- a/0009-cipher-fix-set-key-error.patch +++ /dev/null @@ -1,56 +0,0 @@ -From c8f3d1d021f028a9ca500d079c4158038e1b22c9 Mon Sep 17 00:00:00 2001 -From: taoqi -Date: Tue, 20 Jun 2023 23:05:06 +0800 -Subject: [PATCH 09/10] cipher: fix set key error - -Initialize the algorithm type again to prevent -the algorithm type from being changed. - -Signed-off-by: taoqi ---- - src/uadk_cipher.c | 20 +++++++++++++++++++- - 1 file changed, 19 insertions(+), 1 deletion(-) - -diff --git a/src/uadk_cipher.c b/src/uadk_cipher.c -index 1905e47..cc13823 100644 ---- a/src/uadk_cipher.c -+++ b/src/uadk_cipher.c -@@ -840,8 +840,10 @@ static int do_cipher_async(struct cipher_priv_ctx *priv, struct async_op *op) - - static void uadk_e_ctx_init(EVP_CIPHER_CTX *ctx, struct cipher_priv_ctx *priv) - { -+ __u32 cipher_counts = ARRAY_SIZE(cipher_info_table); - struct sched_params params = {0}; -- int ret; -+ int nid, ret; -+ __u32 i; - - priv->req.iv_bytes = EVP_CIPHER_CTX_iv_length(ctx); - priv->req.iv = priv->iv; -@@ -869,7 +871,23 @@ static void uadk_e_ctx_init(EVP_CIPHER_CTX *ctx, struct cipher_priv_ctx *priv) - /* Use the default numa parameters */ - params.numa_id = -1; - priv->setup.sched_param = ¶ms; -+ - if (!priv->sess) { -+ nid = EVP_CIPHER_CTX_nid(ctx); -+ -+ for (i = 0; i < cipher_counts; i++) { -+ if (nid == cipher_info_table[i].nid) { -+ cipher_priv_ctx_setup(priv, cipher_info_table[i].alg, -+ cipher_info_table[i].mode, cipher_info_table[i].out_bytes); -+ break; -+ } -+ } -+ -+ if (i == cipher_counts) { -+ fprintf(stderr, "failed to setup the private ctx.\n"); -+ return; -+ } -+ - priv->sess = wd_cipher_alloc_sess(&priv->setup); - if (!priv->sess) - fprintf(stderr, "uadk failed to alloc session!\n"); --- -2.25.1 - diff --git a/0010-cipher-fix-async-hardware-computing-error.patch b/0010-cipher-fix-async-hardware-computing-error.patch deleted file mode 100644 index 6a91b91..0000000 --- a/0010-cipher-fix-async-hardware-computing-error.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 9fa67d9748d0e8b710bc8a0cdd3f289e3a1b2f8f Mon Sep 17 00:00:00 2001 -From: taoqi -Date: Tue, 20 Jun 2023 23:07:31 +0800 -Subject: [PATCH 10/10] cipher: fix async hardware computing error - -If the length of the input data does not reach to -hardware computing threshold, directly switch to -soft cipher. - -Signed-off-by: taoqi ---- - src/uadk_cipher.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/uadk_cipher.c b/src/uadk_cipher.c -index cc13823..940c26c 100644 ---- a/src/uadk_cipher.c -+++ b/src/uadk_cipher.c -@@ -927,6 +927,14 @@ static int uadk_e_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, - if (!ret) - goto sync_err; - } else { -+ /* -+ * If the length of the input data -+ * does not reach to hardware computing threshold, -+ * directly switch to soft cipher. -+ */ -+ if (priv->req.in_bytes <= priv->switch_threshold) -+ goto sync_err; -+ - ret = do_cipher_async(priv, &op); - if (!ret) - goto out_notify; --- -2.25.1 - diff --git a/uadk_engine-1.2.0.tar.gz b/uadk_engine-1.2.0.tar.gz deleted file mode 100644 index 1f652fe907649ca9bec2b25d697b282842c1f9a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 102891 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
&c8T4GPiB3lR4$krJtEy|N+cEfSD_Q76 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%0D^Nc*G2JgD%cagJ;#(Rh}czrgSjt zp}PVX8W*oB4`P*qU%^@HM1eB6`q0*!cY}}2wd^e3iU}{zX*}MYIX^b1zzC;@&q>=_ zC)SA%z~>QpVf7C+ADWuLQT|2vKLEl&J-^2-hZNV=fv_EJD)bzWKAte}a;w&-2}m&d zmBAb#8K}=5 zij)7bGCrJ^^+Dicumow|1!RMd7QsRckXU>zM%Ll7fwx^{m=T$haiifLr0t9##!J$0 z7EG6NPf2G+pI#&$JtS=V`RYVjs;0D$L;c{Lnuoa8C*kXo;52ndj#Focc#ET!Sx}JP zcvU#9RcnJNfKO?(;S$0y>hwMh`Z2(cc)aHh(tKRIHXPwz(eI>5`v!J4@Hav*A z{=VZ!#+*##)v6-kJo{ep7&mQ7nwaAV2{yB##i#bSZoLR6w2+?`B4)=@c0!b`)W%qR zKGv6VRnNyvjfQ6z5`sZ-yS#Be19Ds2RWYE~Cb$PKX=Dm&h4G?T6 zdXt>DjGh!Mqj}}+K-pEnFMZsi`-II|8H!;o8IM3=>WvkVVaPtijg5GRsa&XG2J?Vv<3X96B&ldWmn-}?bM=mZn2(pc;;l1~a)OTWnNmvdZ zkl28yRxP^`N*p1;Wv9txFUs5pwM;G2xuYx2tTzUwD&l1qvx;x7S+9LQ8VwR4zuuNP zfvHPvz=!niPoMgx6iz5rdd(~`;Ubb>H$IvLV!KD!P_RN3XZL+;%+%};oXw;W^b*Ic zXSnCI{(c=B)wf9PYonXo@lcb?53N>~5l}b$ORCCrHeSapxtQRalw1iKS;(fpn9pOR zxPG`1M1ZJ4#)E=+g6@?gTIMxRgiIN=6(5olF8#iL+KmNq=x!ubaTz^Yg>-&3MMuF3U=6)Emu+YZ_!lhHIicMn z95QayP|VBhWoeGjSoX#&gpqRE!l_+LCBdr;UX_<{JaV;yeT7zAvn;)s4dgP^4H*s1 z{nh0qv`5AA$-B#x%oJ&vqUC4W&B%t3EDP7EB*v4yYQIn5Xfzw7Ty%8d#hpu#JNGjx zZl+utteu@8b3ADzn`n+qAQ-k>(4*ZWsb*jjv)LH!)UyPw=I*0~+-%V&cOMP$?)%k)N^4?F^bTXTpQm&wgr_hVNHTTBGF1A$iz`SY zXk!UlL&0sEU`zy6ir5Ca6k`pNy=m2E<;LZQ|I8U$Q#L3J>vvMtr9 zS-j+>8*t_Uys~5Ki6|hql5+>4(U`;RIU;hy7>B9Z zJ*1M22!KRUx4Lmi?&{rLvs27pbx%B>&B-0_^n9J-lK?F;GIh?j zx#xK~OR7mm&)y&-MIgdSavv1;-3 z(Ttdpzw{VL{s3#RvJ)Yzv2YgduO_dlD!p$RPW!#t2u|dk%h~WPZb5J~8%_9X&FdF5 zUDP&gSDuBv!$kw|RmN>P^zsk@Xuqj@nmfpFP@#OToFom)+h`}gHGH;LZhl_9dmHxmTe?5Ne4B7m_-wCRY zBUKwR!nwk5YC`TKE>uEt4_QP);oO9T440FZoZdOV5BxZ#+pts;wMeM4?Y&iJ?*;oO)Dq?THEgK7Y(-+p1XHCB) z=OKW*6czHz>yE^ZZu4kv7zmAMH~?_&prI#N8x4If1EJ88-n-i|1HVpYbt^R3E)j_ZlQoK-wis!W zT;ypB%18;Pa#l0#7qZtkYnwZEpHhL>S2%ZgW-liL-fX!^-ztkaX1ZE#4 z1T)jFHZ|1dY&ht@O$Q(BlMb1wd}e;mc+$#d%>{_Ipvb5zd1_3!PMU}N)_h9<=5Ltk z83~i}XpDC8_{3doxGW{RFwqn|ZQ38sIG|{uedIbV!wspeBCE5Zh_gF0hQ-g$PJZMo zK0T%5_AFzgN_&b0;%g+HLC2g~R(p_7M0yeVwJKQg^KCF=$ybeqT%|I9q(?&Jug1MN zY~+NnoU|5selr?$Q751t;YjV8e(mLz<~1CDoFS&O0`$%k^KgkwX-#EJwiqofvHQpk z`?$iQuhm(Wi1V;ZVHl%4zkUTQIO3B+p`ud2t;C{Np>ys>jBnRq?jkudv^FCU#fvg} zMH$zHCOmi88)u=e#ADd@THow6cOv#7+V!Y-9>o{TLQ~g0nu8S#`+JSLGrQT2DGXW< z|9f4kICzord+I*9l;|d+c&8ba2b}(q*VD}RSfRS&m`Sm2HODGVQ@}6jkj?UdXA49N zcrfbi1Pb0zp9FY}9Tmn!;CXsPgo(EA9seE(|CC=D#>8c8%=)s;Jqe4v2@@Z-9JsG?(}t3^BUabW`U}15 z;>%BcafsGnXocFD4YW9F7UZ@c_pji!J8}IY4mjssbLo@g&&V);Q@%+22%E#dh9%?g z*arFMVxse~`K(M)y#VmpV|Bi$RaYTnR1c*8b2wxMO94{n@v5uzsxy{{;Nc0s=+?ts zrpEKXu(Tov3?Vs{@VE0J+N`5n)6F|Of9qwsw>q_iV8u&B84h0E(XH- zJ;Kfdig}jE!_gikqF@wx6+>}_^r8*tqTqdMI!LFfDd$gfIP{(koWYV7c2IC9GVeU> zfP`8<=lvnxme-h5B&(^WV$n?CDD1zirMANXVb+)*6e^LLRY3KdtbO2iJ|MTHjUp;sf`u}|R#sBB;^Y4rQ&oBNz|0MoD zW8O6XWDY>nPC@$3IPUE;?Q|A$14>Gkyf0AC3+NA9j~;FQ1Knc3Y91~vJ#cO)e|Y%t zYn%S)aioU0{M30;M_hX za0CTC--HMhA9wzm_YlcukLpsFJSz6{jtVC!P;i#=nJ?7AOh>Kr*@bZ&L09q1xgM-e zuf|v`hcl#GH3-#>3+MeI`HD~YDqk!-{x+jmh{iZz&IKsrSpc6ik&mDhH1|eTdILB} z#e0ksd)$({Cdv9Hk<#2Wd_Xld9!uu;+8SkyTsr-{cMqGvVXAJX`JQQ+gtX>&Z(48g zOl=Nk!=#r6 zof7#y1?o3E5LMrZNhLYjl`g!FYwQM(R{$G}ukYX2b$BsmN`ha-7#F z8S3+L8tL5ve8#JBYc69(_0~Mb0jSJju*zcm#nDR@?qX2N^A>;1qMXGq;`oa0=b~JN zJ2DyMyURfp(eRLejW>-m%JG&}K(bw;*Z1RB6vGc`F~7{5-A#~ja7dAjV(7_DJH0oH zp=pu;F=IYs9N-kt9?n-)S(NYM-WEC(#;nS~DoK}ePBGEoTK$po4a#?VKCd@U1S8wP zXf{n&5g`1)L6@Iq6~FKDJ6}kud6#5TZtmJehlqIIK=anQy%)V+hc628f)M`KK%-VT zdhv@#q#C0tH8@nZ>S1C5-UfUvzIyrc#^#v|mDRB*%12jfpQEE1a8fVNJ(|ixsf*hp zn`69KZ;-ufZ3Q5j&IL`Hfrk>fVOa<)L84(+E(ccq+^11|+RQKbNs3n^a-OXP=i}8? z`DG5B)&@Ls@U&-QEgBdANl`d-zeTr`)>ds&wOvDs&m}!UQz0b2hl`#INQH`MD0`*+ zC9&Y>i7VvvnJ!!T&@avT=J?i+;FAg-#DQIuqrt}Kbg5=XnVo&|z}T5Awv{w+l;OAx zqrE)ldotbc(8}C4o^L5;NU6ACCXZ^(?O(VT%Ma~oKO}9__HwANfdP=}yuI#(oK&iJ zWGelau7Fi;5pY`gcvTRv1Ha=6irU4Z;WS6cw>z?+1RdmaGzP-8tz|O{|1?mTFBRDg zL>YlpecKB4rFRW+68N{S=bY-Z?RD0?%iqr%N!c{}&zFMzuu(ewK5vT;d_V)^5#sD# zxW?^`EXb#U`f`r)4PmkZP9Y^qIL#J{hurSzNFDUxgoJq9X4jr}vngBbX;UEitZ1`W zh0}^1jH7d^)+l;v%-L&C-_t_zJ9>XLIi0kJnKBnlaKpq{KWpi*+iwpMxj}zA9i%3~ znTz^r)f_@OmS1H_Oapx842SB1vS|GbeJI*47U@KOvncL`_?Q4W7yiGE)?rhWA+GSX z%;-WCUH4HYNxEs)ne@-0ss1oIe!iD{_0_|#*|Eq0$cYoWghAJQ9rPrL*D)A00Y`+M zLACMj26;o;gMt|x!ZG9#UKOPT1IXreUittY#~F5TGqV@iH2 zFGdprLXBf#@pgejXP5tw<7x&n7?0|GyqTI3)_7f?Ca+GOnG3y({sagddx8DiAizuE zl>M~vbFu>a`TOTz({ly|@U;UqXjg#b-NB%4Tp)k-JcJCJ^auu}sDaJu4g4D$ct{~c zojdvBkwY0ZH*W7npD=2BRY$F`Q|^9Bb?NI3Pdu|dXlKZ-YP=EYem0Vb7&FQH-;mom zdT^8i3Tf;FTM$l&w>DVaAfsU7ARVfhLD{?3#jrJ=PU->39K41FQV*?XbB7p!iXAg1 zN#-CV+oL&M8Eu1CT8|qaZu%Gu#d&GI;}x$Qpoc8aDu%$y9lgw`*K$3rd)Uaij77&4 zH@0eay&7ncon`0<+Ds6&8QGhKqb7k0m2a@`8bXZ>!KsfuiQ}VfHw}t*)&$Y6GHXfbU>=hJoact z4+oyQyD1f|esCYaYs3NHUI@0Ct^$2XD0?6_o+`w3*wNB<9AjAypUv9d3_yIFD&co1 zKK=J|JA2pqyYM>ANlMurpjE=`oMiij)&1{eb?W-^KZ4Qa@cpx}Ia)UIlFd?gks`84 z{Yc_v$lAtfIx(v8c!`CTlyu5FpIx+aHjI`-E~e{dJ!gL?4}Np`{;gt=*&lKqInVJN zl@@68d_4`!uTqT_X~Og<7OC`p6OA5rNrq+peW=`zVYL&~$a|}F+4i=8CNs>Enw#bx zmz+s?*SP&*O*opZ=-ue{hm|gL2_Q`W+@bg_Zj-rj|2o+`!g2m=cn=27MO0Sha(VCQ z^_#QPCSNe~VE9+epHRRCWN;sPLSLr>Uw7|R9wsS<`yim~dxc>(aP;}`f7GgNpw4BhP8$LE1z4PpW=z*S+ zY{=UZ(2`1Hz5Rm7 zBa4=?;($mEzo~L+K~=g@8j(Agni&SBWBI}zl!vJvs=Sw?+QjncM&2OIS7^E7afO!4 zFV^4dGH)yC@6C?FN)@ZpTJadHao^!&v^L(^y^0Pe*GPd>s+;;${gxien0`x5 zS4Hhp+@ffm4T>@k+01Nrh3NW{OSntaGZtiwIgtCDr<;^UA{!A+*1`?(={9nxiI4AX zZWwlV!pKr2?w*8`;tS_7XmrXym z>4$sG@3-YIbmR7E8~z`0SysB;TR&muWwYEflSeM?50pBLsjQx%pJnf{3<6kgN11t< zd`@SwumE8u*-*Fa(IFubTD760yWmKo-P;ki^K@r9h;wykx|4tstu;xqeG1XCIO)oj z3@OFC0ja{oF`L0KF!96tS^`^&yN`&6c9bN=QmMDl&Nz&f+a zP0l4RxW(%x|AvvDcjapA#JiMtB*;&c|7i9QeKENha{v&3KGuN!x;DsTO$=1fzV#QD~1VF@c$R}|2UqEZd%=b zFU_W(!w=*f|BnwgH$wl9Uu`~m^u_<<@9{6<|M3C(e|&f=|Bq2XuW00w!SsuZ$S*D; zZ{s4;^AXwY2QD2U34?iuiFsd=-N8ktz>VZp_fbX1j@G&4Xp**u?W;74=OYWvxsf!^ zA3OaqjBPwm*zO`uBlG?uIf7Co9np#;&!+uB<~f<9?Qj36b#nClbg8zs@xHlHx0$Gw z!mv?G8(tEHl2X1PG41f|_0p2_P`Q8bqIq%(fDaB|sFIT0Jlsd0k@sCl^=JG1##A(( zKlLdD=R9{`}R^?tTmXK%cxkdbQu$Z$95Wdv%)B03A0r zulFBSuJ|=9flXkMuJ*~x-CH)h`$N!2)fvg4UbapS{%?~i=NjLA^`dpS`?|?R+`rAO zua}q8;p_?@vkHN-oQQ(qNpsJ%jBdUfUdr=>WBBjcoBiEWm~lUkh#)L}xcf@G_>{(w zY!fj78wXxIBPH=aJ0{=w_Pzq<_`YQe(kIAD#Ii*MZB0$xF+@2A9!vG#r7K>Z7j;^eFT$E+lV z>SyCF&f|sPy$ze`tUVYYurV-uwu>@7y}vBaBWF~L-$uUPSJw$VGK{8Z`uGl^Gnx(2 zE-N;-{hJ~;uF51&s4j4=7b_#T06RHS#9oDYtljmSctK8^^$)F*9R9Nmux& z(_E6Zp=}-*^lf?pEDIZh0ei3o*=dU$0=WcQKwbjr4O>XA+2v?p-it~yl7MRrNWgf> z;DqzRThAoDJ?PQ)^pm%!e~wK6#RHYa#W>PhcLPe#_whgZEb>7HZS5FydDH@P&-q*R zrf|&?0_t~biqg?fbdR{a^y}flJ`D6DvL}{VIy^cCCaF_^?E))--J!7n2maU)@Y&Ua za`3PnAovGcjRkfF2mZ3XIS2mB-A!y@YooEi9-tf8+Il#*2`qz+e0}Ri9zCAl2$V5H zb*n}md_BJ>SOyw-c4F{8)P` zRh0T{lV6L|HG>o)_Cku9P8;NLA?odA3cBlnh>8vP+C>VrB|OFvJ{B?~LA(OU9mDj| z4mEiK@jb6sJG ze2KY02jFzl9+cxB8nSSy0*pzYZ7Wd7U(X;XA~ru<7sLK(AoU&3On)P1 zq@_EE@rZ`A@q9`O1a5I1=&&)`eayQf#7(`G#I>h#c#sI%-b+z09~ah=PDz~A4F#Td zsMy+6$urn}3?X6YO6g)Vz1!YC}fIi&IqgFcm03f6-;vLs(lId_VPeZvKC3mF1U zS786PfmMr^CL_iz`D>(LEpP=v69p{V0xw9*l$tsuldewa+&w_HGX zmg^^J=SC9n5DGPu(J)QM?atd2PJ6Qn9DS#Q5BAKMz8_Ed0j0LelGyO}jgXl!LB4zP-*)k9pY-aqf*@+gUfu& zJMTkEW^@w*D}!#vJbej9KdTweMoH$nlT?Xg_Ke$0r(<+zUXM;Ec6v+JxH*?Lk_{8o z-rJwi&`5ZbEIfDoHBV7RElC{81x3YH3~#cyIn*$V@lYP= zqZRlx?iZ&Md_j3R*qaJyXoiP)d z(XOw?kcWA`Cu3G6;iZGI*@cz39vBH2|8%G>%lO_yM9lj-rE&dUw+0Zl&YI{1lDg4(Bf6@TYM|L(rvw% zyNmX(KOCl$IYLOGoQ)qXBWy?gwob3c_UUfaudC=et>At^iw{?rz!sj5*PShn#B||O z-CO4qItG);`U#yFlOf(yUd&)Clna@wb_X3MT%;3p9@-t@Js)YTFWcFrb?>RR8#;2? zBX)hch>e7LtJZT609#^|TnrPCtOyfIdN5rTK)p3YJ^B;xx{9oGS&-ne5ruDZ&kgs} z{Iv@&papR6kUfkCF=7w3$0mxqZF7IXfd}{)`?ZN}G=I%;wykq2WeCFyY4? ze_t+D6;)AlRor)DDnmU{{!G>F(+D*l{yr7oD@>auYveYZp8I7xv{Sld?|EW@S{Ztw z6bd<_hX@;7Rs*qJELC}wlLHb99?mDY&Ur0*>&t-$+~n#PYhv!&Ip^!fRro=2w>vsB z?9mvFoUN5CImyvBnWi4Sthru$s^D=p29E z!Qb7{P=bY;FVURH0hU97;Nf-J&feCrP`~@W0jt)PdDniMwg6~NfZMl@xy9q}HI;M| z6Bls7*VC=6a7?v`RPc>eRfZ=&zf##Q9jNFR+$_tz%iMaa^o~1obZr*Z_T0g?&RH~B zmJqb2Lv$dA1fk|>5pEVAAi^VI(=|Fk$@mnVmJLGdMEpeZHVKgsDQ`!M-kozi)yTU! zZ@~w}+~L{v+t378L7R43D6~daU_8RdY?_*64MA=AZ&WiGOx=8$j1-lyq-9H8Yd$+W z`LUXy)>h=_M6&Y5&$=`{2_)=T-6wX$Vi6A3xIN35T`=j5#*HMW6)PUUN*d-*yTl0> z1G7*s;!ol6t$Dcbkx%~oQFi=@o^VP|XP@uL`-iuxyNYW$88cT1|;j}dzP0@ar zY;tQWqll8pX=vx_)tHV6aH0Vhu?*f4*Ksd=qA#yd7XgqiC!^tL1`BR99DHDNW0%T7 zM&uPs#+(`rz-K5%ay*J#@xdY?JAMzdRCW_%j#ZdEv8O2wKfje(j$&4w2%0owlgWjb&Ehbh|EbC`#>dHNiqm!Tf_+#nDG zoVUqi9GxqPPUA7#kIOV3&;i+h@T+*8s1wR0ABIHts`5pz8aNxrwSw-|(;(|*r4+f# z!L_f-%H0;i%AnP((=G){*AGr4)NzCjka_ZeAOgjcZSFO^>k zK7^5>$D7^b-Phg_iE6#|b~t)B#BH4J0^~}|7zMhzEk3{1wAlz}xTBO9O*E?2E35&N z87cn5(enjL@4k8gynFZAN%QbDS`9WUZ9tYAs#W(wD;OJ*n=s2<-$o8zrNdiBx~3uu zR??tC%S?|wPoEFoX8+HY;Puw z=>wgp^pxW}N1k>Na0o-;^3CJp)}-Cf(i;AHb?~h9=J@ElMuPus9n&kz=6>rGc7~?3 z+dOR^N96xSvA+f0W)S~i%z^H6h%b}&D?}Yv!WbpgKNw@Z_WoGZ;}Ww|bI|fe<_rs2 zmUY*x>9VbZ{LvKT*SlgL6x)xCs9`n+-tg@9V8gKU29;OND6Z6Zh2gT!x#GK7Pj3V4vMxDfmS{{XmiydC?Ztg+rPsR>IM^j>vixAmV4^1(v3eY zig<|rqd0OQ-_)}aC}0Oth&*~(H;{~McR893y2*J;4=SfAdGtN_W)+0ir*xy~`_Y=Z znzr2FX#r4tbBeD_VWAmV6dfTtUwIFrGFOUGfdy{&@!F<^{)u$uYZ;F9YpP) zk&P}W7f9Y*>(?dw@1MnsmaS#uyB1kt)_17BhGh(VjgG|SnDs-lv`Z#4Uh_f>nv;>) z@e9Z@MEjtw%C`BUeWEvFL6$K;b{73;7L4v&>N^3}y0C};KVt`WADVYcx8piQZ3RJg z#)W_7KmLo>HM}9=YBEk{j=BAhdX!5j*b#3)H7;*Q!>~I+q+sj}Rgch5$w^KDGqSHt zuvrUCLtgikc(Q+R@@DsR?`43ac@ipTZo%VMH6rGbM)P}^ALH+?wpwS_T#v1kR7pJd`= z%Stur*_M81i7zNOx4y1Wm0n=!*OT}zlB@pFPHevXyY;`A|EKlK&)Y`1|EG-yn-9JU z{69T>^yu*y|4+Zizli^*4RqVI^%?v>37{|jpT78i`Xv8Pf9+pD-US~3U;5|4mocYJ z#Lm!9l5=h2UQglq%$%^^*OU83wFw_TZTwt!?r@ri-?dIoj}H!Cpj5E51Us$DqZec+ z&BJ~3f^6v@!q37&`kC3%zi)kqZV&M91NLQL&o61~ygxL$lA85d11r+0YSO5lW+w+^ zlC|eTz%m8ZyO;CZzbvYpb~D~3(G_#zqp+5g4; ze_|ks&nE=Vk^de&e)J%a{~kTweDFp7`#t`BUit5faQ8*H`xN1hJk$jeo=Gcr_-SRo zPDMwa;!`v3XcKl{Pki*eVJ_wTVY092y*(5DyY=kg^kix2(bi^3ksnW+Q0DRDd=ZcW z*#d!_XFgUwDYtZ0?ZuMn9_^hrPeo(}De?Wr!#wOaXU`CXgTECiv%9}fAifIoFqZRo zjMmqloZLJ_#o#_56?Pd!(C>C%9qiMvDTkG(K&B@&P~4x^$;$&A+y@RWqH=U_c*=77 z5ao9GFHn{OgUZg=41!8ZJo|AI_q0SW9NH}`e2me|5y>9Yag zcKYL+CIEZnWM`ZpaheViGz{0tuK)c~efp6XFhTiT*KYa(pW?qpyzXaLTRV~Dv=d8x z&+&iq=@JkSo5lsk4THqn9t>LlN++ZEb7TJ%6+hi^)s0(ukd8;d{4TFTnb{MU#TWeq zI7rQ1i>oW}7Cms1o49Ne5t=*aavKM1xi$3*=m_QUfY>S&s^=dF4dNMW-?q;e;U4l~ zn4usDxA+a+Yf-e^w8MdX@({?S=Pdz9P@+oVzfGtwJ)Umrpd(i)3|Kla2OVhm#qrVE zn`E^&8Ic15+cZvFXEwojHL;?NlCH0t@0{#N$JVrxo1=SfUF?;n1XuwHJ#w z;E}~Aw48QK!&Ems65k@a$j+w)QrP*#*hf2`8q`H0Ald{^nV=5;hM&n1KcY{FN8i8# zs7{!+kv;yVXX)tqPyCaAhR_f6ul)S?7!Q5H`S0=O#uxqn@AB`9{{PDn@y~ul{O#jE zxEq7Tf;D`4KnBsmw!7`|6k90>!C-yy7lmSg6WHET5RZY<_nUi5K}?2SS79rXK{XzD z8Fb=XdZ^NlTbo;7!|AQHcXW1m+B{y`eC*}EKH6{MwTT?-Tva@U$@$nFArHReD;5pK zJ65_5nDaB0fBev%l4KxxCX-*aUwE|e1M%&m-%IG{MQ=xE(0px`>6C<-nTo~W$#SR)OWw`M9sZ}H!qvV$!d+{OfFqFVuU&(3LI-z z_-mOfeJNb(N?*zpxzg|7{KQlCb1n;mL903Xc_-$@o(~*205BgemcbsKU6Ks_lNnc% z;xNoPlBc(vaw3el%;)oq_^7yvjZ(3{d$Sk^J@IKDWN1hD&fPtkese=kQ&TB~$L2q_ zEbZv&W{#0&xW?c>+u12E^pCCig|;3&t^f&}n@%b;H?I&iHy08#m*Ug@dCko&gw4%| z1kJslX7eGH7Rs(3mJcKrD8;1<&7|G*K{*&(s#3o?7w7P&!o*c5M{`#N9<)2E*lv|_ z*zUY?H2M|FRDy%_8L)26lQGy0e`M&n&<{#MmT-!Q8`OqMNGRHXE5>B3ig7|vObFQ( zlY|f&^98?ANQgA*7vqFTqh2vdh%^dI!*3K4BG9~IlAwyo8sZ}Ip|bS?;W9cUR?rTa zPKk}#bP|l&bP^jguNWu9#!MHJgh-=Ii+;P17HKzElG7qhhb1K~*5yd+ooMU1lAIRn zc%*f|q+5e-l1I4`ouEV>hMidX2mzQGkdMTVz7g5?)$h40`ulxh8m-;tiT-TvJ!>SJ zj|*1#V%6-5U$8a90Sc?_J==>TS)tnFhXovBv1*oM6juA;^aQP!3phx5wMUy<5tiZ# zoxFZnIvzfoaRndj&lyOc?G#rmo;W1i;-Ne}jtr$?ON&*rY-+*Q6x%ASdGx$s72K|- zW@`(!sn}d`KZ~%vT}{mftJla&da?< zr|x7_yU2M};C~_4v${VwdR?Ff#Kcd@IjNe5HI>0=^5lg_1_xW5gRdURIqNmR9LBlE zPg4VQ6-WPKEQfWh zKV12V^#HOErZ@`(pxjfU^7Z62V!j8oNVa`6EZ+PDS^GA>7-HZj5K*{Fud;NSuR~!v z6l4UfND`a6$xkhi{BT5TS7w;4O;m|2Py9B}m216j-Fm3%cn3>F%CS`JyG$@p8o`WmLVE;wj<8Af<8v4*ThXJp{HttVjWJO6>)_5SMek~j~6PIZYZ^oQda4B!ogQONMV?>rS%HQfyI*3+== zNpKPg3Xv4l>$Hcue3lL_)}a&?cCGmE*+mbNB%o6H_u1*6lrp6_q^8<*#^60TY7rQqt1zm$K0rjLTmHqG7{(b|t+Z_pr9PcGt zJ?H6XF@9>?2X;q(M~fEN0*rm0w=FG28;4jCwpoGgDd#)4zR-%MbYfmZg^^-&#y5pBVz1d3K z12^7s*wuqQ?swjj!(trZS}-9v=75YIb&_y+U!{vxO2kXa;+f##E1d@!X&gKS(H@Ug zpPy(A!r|WWk8jX=L<^OkjRB4&`eu#h?>8}DId8pHTXUMyEd@f8KN09u8~)Spe25dj z5s_pT)A!@F100XPRyo4Ga+4MhR$-Ya6n*!_?tze%iyIlz z5`}U5EWsoRyH5xvX=&)s5w%kj^lu-vGkhsMZ?Hc#a%b9dUBvO$Av|a8P6wY1-z2N> zpD;d#@}uV-0^iljRI;oB=?yBcJ#`O(ZK#T6e}I;AV{Q?WsL;hV=f}QetQrL*rbn!Z zvpKxx43g+;8_6#|Wd*iUDu$vSq1@O8ud?qlkh^L;kmi&@nHrwrIYwl6oNi<#L{4nU zSViK=B%aL~2_*$}=`Y$CJuzl>;UcZa1QDIagz2|{JS)F`Yq5073qU&j>a1~I2E zFN29XaCQU-n4sA!d6@;4&7-+AA1i_2dEd9_Es48&Sme%cq7Ca+3RX)BKf8^K`iD=s z%(gXW27b~aMHCLCSB10txe(g@To^foFiYabVg?y>V(wz&^C?hv%aPe#3{D|B0w)iM zt$Wc^0~EijWyQOZX1TN{&7*3eP}DC5;pEU90GCx*ohy)D@=5+!7u!UL+ZD67Tn+&Z zHk08<=xyOqzc7#b1$a~+{s4DkSFV#3&hS}ET&I*aeqlyKOb<`erMyz% zQ{)JmN7!gbtbf|*Ht6qrIFMoM(a_r33Rzs;hV?Mja@rWsocmiJs_|-D2v^65;}9m; zDIzF(rw82}U_ZTmnE5_#0=H_iM7~2^8Nls#_!WYf>ldgJeecFOiA8TxUU(EFKgNYk7NlF{m17$@mec5Ssm4x6bNB?0k{HM`w-T49bS&g$Gpf z99?8*jdwM1Gi!6Uc9CYt-}5AlgU-g-?8@b5=KtjSma}bf9~rOzXeq06*NGw7QU;Wr;(2+IB>R-|A}fj zl5LeNvKAzpk-~^R_6oyYUsSom$V=niB!)ID%-r)Pj$*&UoHxF5*|&SNDlSoWKpoBI zg&NJ$5u%pzQFv)^6vo`Cim}Bw5&%85M}jJvX^-0n#xl_hCmyRq~c<+t_p8@R)gWuA!H@(_Xr_t z!yGLhN7h#TvqY0!_7UT7VF$y`gbc(ITF$_aYnxkNubublx}uKv)*TfkgN2Fd1bJV7 z*s0B+(AOCJLTVckfOksFeXs@DLps2Pj}Ujbgs#7dL&ZPcM%cP(4`w(FogH^of6~W? z!pK$(;+O3#IZx9eAdW5u@WJvX;;*mU8&p^B;5&5ljywt^Qm&G0n#*?6>Kc!}C{fqe zDD1Myyl1i9{Au_z<+xA00+9aIrGl>e^yw4#x>9RUi-IW&*~|U7S>UBYoYCHGJ_eo{ zM8l-md^bj-HyU2QPr)2r09n$W#_gdEuR-1+=W zVYWd49{y4EaO*(Zp+vOv+s4>-mytoV?O3pFZvu-6BQLIhV@-9VqPzsaCVn1`4=ZO> z4qZGNrxP(=4=mK|9kOkJE-sU&G1t(GHz!w>etQH2~y+kF?a2s^6zYfq(Z&K+G< zobE^)UK2Yp7DSIBqFTb_<@bS=)K1Rkl>+u*n405b9_-lwD$X)v=z7zijD~bdxM@%N zI6E2dKqN-XnlLT{-ByNfZeZJ*^|MQm%%|@_IHy{0c1PC{eR6%%CE;5>uV?8j&1B=^ znO--xTcPl`v+%VtMPK)TZt#gBIm`GgA<_rA6mdGLOrzs2xyiyr%e9J5kq_IDXxehu zotfuowIbqTkv3@oby0{SzK1FB8vvbbXS)TA5vh z^_(8i?DyWA8!d6rVquZ5mEOSS&;p*1-o!{Is;!L1p14s>Pt1}PflD;FvYUs|cpWup z-U}??=_df`685dp3|138rl40EE|u<^67l7jiR^CATFCOHzmbEFXTs<%9(gb(lO4}Y z7I)eTXFx8r@IkQBNsxEcTb%{No<)Ym$^9VlkH!UqgCs|D`hg~IsZ6UCc?)1L*ew~eU;N8K)50QH@m34-S<&fY+s>>W!$)N^uG z#<3ug%kwW5QX2`%g0K_)a~Tg{@MlRy1&qA@z<8ecO#H8ZEe2lSNhH>%2kQx&e?k_r z<~t!|3bk$}XI0bSTAx>&y5iTA-py;)dkg9T@Ga{C=3k!=8JV32Fn_T;7l_;cVvua^ zTsY?Lr34=-G8Yv7ubmAyP0&#fq^e-c;iIxSFnbkY_7qGcT*bcO%bsjE>dVVHpHJc@ z*ccgTKg}ow=<-}fYnzS0OWMl72@9$g^9#`P(z5y3{m(RnifB??5_glmT$qsO{4LOx z2EJTMS~t#KuvH8&xlrrIt6V|r;u5B~b?Y-`Qvy^j(zme|Lk$54BV`E(uEy@h6 z%fW&c3(3K{fLU-6SQmzo2DR6uc&ol&rLTDfd|j=pzHh{`<_kORduRH3p#|tWT`XAy zo#|u_*GD%xo3VM8+p03AkB$k;n0{&F#!=K}jOWj3+_?5EoT-t z*x7ed`N$jpO0mH|dOnx&8_$s?<3AS*VD)kU z#r5^0=xJjCQ*YBNd%0HSF+}d&LePW+#(jjcx; zVf@#x9&Ub#|MPqN`x5`>OZ=bz^!PvdP(Rs+>^@zfT!aB$hcHmxcn}~7(X&V}AKwEm zU!}SdE%v)}*H5{-6SyZAb1O98B5Rez{oL`c#Ct8-V&A6em?}WWT@mx#wsX^(>JRk0 z`jfKUdcFI@&pWZZc2=%iWH=U`-MvM&EkGh};xkgOFM&6mex3%1ssaVSLKqr z$eJ|7^If|?mxFnYGj9Vi|l^WZn z9Lbi#PmCj%yxC^>y2;VxoO@%tgt^oIzoTc#Doo(cqEsn{Ga&W1+TAX6Df1J%=|B=S z{o3Q>@=_Jbj8o;tT&nzJiUjUG?4{H#H$_+*=+&!(!xuCPgacZM%AxfNWUKe$a=~rT>kN_l zK_v_ga`ihNIUrc-z!SB_uU`UmsYID~9MyV$9x;PAn1I)qJRBBJB6Q>AJ zl~g_%v!z$jV(Ha*`T<7ys;tn(42Pb}_}IouN6__+1l=65f)_W;q4c`}BSHW7c zG#|c4afA?ik7As8n58HZcWgnbzOJ~UL=OH0^|O}qtGCSdWceOeS&c<~Byuw7tgIyF zH@^Li>~d;oNE+mLiNKG!;9Kp_v! zh=&T({JnUl_6SE(v9$tKB60y2%_?%yD51XpS)R<#VHw5j!mU=rIJp~0*MR?L;}{!i z-ACM1aeWj--MY7~L!(b2#W@c(Nl#qxKcAKCWlvaqXyuuk8(uye@cD&Pz&dk0k&@jj0gqS)NoSyUr;Wwrc@0BIzw!1a12Lo$$ zFlMytbx}6B=TjgE3`e*=m3QHCr@$b~)3c6??soFGZnDPbplyi}wX75mga|djsscC& z9g=~6HoIaiGwM;lkj<|Hpw|0{!9n|&qFMR zR=i_8YVFhN^ie_v1POn{sUSD?(m_heYl_SiDzPu;j}ZqN7kc|27bN!L&0+#bkIf>`WbhGnT!iuVOWm;lr&UdV=3H(@gwirM{O_T$*6;Y&9R^` z;P#}K&E2uWy~_CT$@xE*1yiOnuRFSkN^N#;;oUoA8EB<&aCmxb9$3QSHehfR>1pj` zHkKeT_LJ1!#I$&MYbK^&NXkwcJpfu}$b~%XkrJUec1QoYX7_vbv@(BeaL$mV3!wufO5oO5?k@9pRPfkdJ+%KAcZ%fL z=hX<`K^Is>OcVLR4z7*YY1gkp-M=eRugArHHnymhNs^)fB>xEk-^?qVg3x0zQ5wA> z72!&%EW=B4(2KRUNPOIt*cph%Cw_1+QnEh&7XmcYOz<}1mCJOBY+e*mDSDc=T(g0i z%_|J;bkk|ObIC0fRC9(id+^^=^!t3eyZ5rWZ--h6^Glf8iX}L7t5E>5fVT>{gyWKj zLgy|;*@16U`}Qr+2dlSk8(++Re!G8B`yZI-oAt}j)<(Jg&*sL12aiJgpT}EUU+jN= zkAD&Sp9g5R^YAm+{|KNj_CH_je?H0n=db+>$h+W2&To#7zH7boA3jUkG75)S5G5}1 z+;`MEZa!!4kYw>fg2*V#XfM0zckz|?6lFt@v7e)3ob&#aeY05q2nY*b61QwL6e8^UjdZ!bTAtBC@iO<>E{P;=n3N4tEThpH>6?2tb|7bpbTL! zO}h;Noelp!C6}WZ4>B|UOW7k5-9OL97%c{t8(`BOyla2R#IZxd=~MPwI+{%tbnE8N z+{CwFcy@^YLHC-+$9A}ev#WE&29H$80m#3E0Ykk^q?_izaCp=L0A|h^Iven1ye5PL zzq@Qt#T$=6>-BG71Da(FHXU~R7t4R;KOD@;6eMakw84v+=KlE^Y81`PP1E+IJ9;-H za!SnCPP8l>k~wZXKTfAAL0VzOpw8Ul9oSdS`vYJ#sjH+D<5e*fEc7YkL~CxGq{HQBqK=R(B3}kveH7BOq$NW6BbCS+Go#?=Mr@9%&s~8in8FzwEL<=wc7E z(G~QR3hGrMQITnY_l}O6t(Uup`>&eNQw}>AZXW%NAmXl4O!1a~GY7@?So^9P+dnvY zvwOPtGFb(A0T^xvIPOQcF~mxZ22BN&?T|nQ%hIfM|KCve)@T5ZiVdX!GaYo+nWp5*xGuy zc%4U&7q0W*>&4r7w7KQinOjM@u~@7%<$+@HisC%t7A>;lhufigtBT@q;dZFLpJumf zap8*Mfnf1U3-?Vs0Jvq%T$^*NPO^3j`E46GNxE38SoLlC;i`8vUA$sD`*3AF>n((F z_wshFay>XAUj_|2t9@d@=DAKD+}lL=5^?UEMZVLyt6WANwoaO-XeY2?(+*Bd+NMpz z_&OL?=7eKwK;8qJcYLzjdVO%nC*!jdiafKl1m^_5#O@FHg#UFDFJqUMyv$AD5L{~s zf9kBQjfY=L7XH*(4>rEqk}UkGvmS2zkW_zcU z_m4Pz%cZ|)o?`jd^Mk{Klb0SO^zrT^a&~xj(%i4TuOk$ey5OVkYt@^rle0bazu@62 zSffdaLv%{KeWn~b2wkjuH?D_ zCh_dm(cz0^)jUO+T4ST`Rr|gC9Hu?_MLK^^StAFJal1cBoNW{Hkk)v1j&F}w`R`6H zd(!7@`Wpk=ONZii-hDU2{nC zkw?SvQ-*m6)cYa`!yJS>%x*4aoJ+aR*SZ>SMiQ^{iT&#?BZS674oY7g#@w7F6~uG(&76^c?X-+HtV8fCx5yK=vmr9i|nL7{X2-9SZsn` z&jB=7O1iTN-B>33q&GMLo`*2_3q<<<#Rmdpv6P!E3Q7Wh>6xiDU;%b{eBQ@!Bc^EXUcg<_4hExlt*dUbo#bw5uX-1okcH&S*`#N`!ovY8LI@_h z(R#g~tX|>r=MSEtt1eFvf$9#)+KDC$K0xyP>Cwi|bjkH*Hc1C)xd~G96%7MmZf<>X zKF95D7srv@$(yUVG13&rGe)FfnW1k?4ja0^(xzPEhyL@7SAbLbN|@S&#(tG`$+5 zW%z~Mp9Hr(Q+nzU%q2Nqr%C*nkbMA3q9+G0aH{gFjg~PmF1f9Hupt{YLc&$jvcYIt zJb-SM^7XctEmrz?pUE%WVMOKn6}{HsxQqAvBJdx9>aw@39*wFQ@DrzYfw~yYs;Y>*1%;1PT`+86?1(9``$Mfs4~6 zZI--))1bN1#+XSNlp+Xt!HssCaBc<$g0%PM+vbn!Npe8u%F^$D0jpT&7GEBmB(Kj- zPLt#2>)nGxNN6U{4~`+>`9bs5zP^6$&aSRLw6HGDZvj6vF+p!wWngzvI(jtW%!^AQ zCF=s15yK&XtS2cDR7yAe7s=nT$lnoT4&b#WH+EfKQj`WV0BOq9emUHU3oqSbL1rls z1OgGj-~4sBzcwu%3Os@08_fk;EC7Gvi^u4?%GS+9qY(hk;k%KLJ*@T29o^AUKfpxY z1Cao6y$c#5v=@Ml-AoNxIWQs2SdG)ao*~-+ZfuN8+@K9wgF*afA@4Z z!FTZOX&Xl%W`@JmYJ#iEnLwgV(UR?u6733TqBpuqCm#}u49i9k&+wRjD35c<0py4_ zlopY2QRcWT^O`fCy*fC=lUK5OKEMlp^atdpUrk#oE4XntmPxeW`;+O178wbBjB{yT z*p9oUH)C~o-~clPJ>_XFK6g z8>a8@!W%6n_~%Z%9R6~aPWG#;v?*9n=7t0>2UC5Q*Kmc)%T3Y_D#CIt==5q3@|6qf zvD_03R+w0!u7rsRYjbji`WGm6=BiU_mD+y2@*3eZ=94Sc&-d8Ns01U|Yn@&VLRhz; z7Cr_r%SL_|!JmyyLH=1#jtr`xU|^W#l8WoG#aF&^m|nD2^DSppTFweuj-=1&^Hn$2 zZJS!9=Q$9OtU3MnLF7`aj6x1X6pN2!um}<<$o+@Ar)S3?!QJ<_4t)jxr`tR5H zE-Aq<9iz|*b8D#zg=HnareZ~Dg%(U9RiUu#yk+mfEnWD!CIjt-JHdR!X>3awcksD2F zS-rs?)9JIJRT63g;X;z2AJH&n*krEES5dORfTrzyZTQbd?oTGJaUom5sUGRnF1!unFa zFkigmS-A2YEsxekRFKV#Xw<(=(SqO?GOE8!J8w;>$9(P3c$yYg#Q54Qt~`XxHuoR? zM)Tpg*SFH0`G}UhYEv+1D0anmz|@z6D~w!8r|R@Q{hW+2K4co&(Hk&*s=#kD=x4Ms zDMc6Gsw^i&YjEql8NDxrE2SJTI>DcGOPCtg2mDw`-se+UMyYY7CFCDR;*i!rL^fxIKM!VinIh)p=*o zM@OAb#pdOrZqjB|(ZllAM2c8-w5Qd_mghxRA8Nai3lP~-pgQ04IFF=a`fs&xvvVXE zHwL7|F}xGsE}?d9zH*9Z8xkZa2;FumC_T%C=^2B0(#2ic+kN%w*)B?Z6ktlcpq#fS zJyv*-OCad~!66w0prfnC^3t2LXRYSpp8VQx(y!wKlLo&y4Gk^!j`o`kZG!KtEpd>< zktapVWD0KByAk%1F$hech0+urV*zHCj`r?Tw@T$7l{R&9lXLbvxFf+X{_*>Px`tvCFPiPTz3zaKso@ZsmoDhOWT>CLEdBf636@B83Hwoxx*hf-06jZo z=L*;i``n@S685?i%v@L_H8pTLQ&*##t06o_>UB*$oN3&!u!vjXn9)G1rsuC-pmo&A z>FL4iCP##)T1F#$?_QCQ(+JgfCPuC-Cw{zwQJ%GOx!0SyDtIqrR{_@d$r%%vqWN}* zOI?Shu5GDnQwjllr6_?)@m)~a0x|q2TqI-n^E$pV#ze-~pJ`=;YSA(Ld(}W z`?{2t$8+dxZ0HQfY#gJraS@$`>^0uNwP^r3?{%z!>*5BgQF4A>6(NUHOSJ155H&o@ zq4;!jEh0diccQW1X6kthJQW@Ejik1S#W}gS<1Bjz>I2^MB%|vRUDM;?2>Dp5)r}?lBjNuC8oL~jWVnO(_ zZmv{KJzHq9J8Ac`w1&U%#Df?%@R@z4?y82ei`H@D39bzsuMFO|U6L_$S4qaeT_qXA z_U&AoViCO~W%HKq+qoQT;;tIV^=>;H4;=^7&-fUb3$~Jgb5#p=lA45lY$OHNtE=?K zokh@A-Ujr64>G&Pv$8vZz)>02(x&sacn8Wsdo=5B)=-9hq}=GnUI3zbD^g_ole+Cg|%=;B#cXQ&k=E+M7UerdcuL6tZP@_ z|1x`Pbe2*7o^1ZRfhI>?a`1DJh&Y^NBlwB>gNzJW+gXB6Sn#iLj!PhF=O3K%c4|%H z9fQ zo~7s_B18LG_C|rkfW}#@rs_jZXd1=MVK5=DO$Vj=L;rq8)Kf6rY9!l_E^dLk~@B|HWW{j;|i~No+ zok;j2IGr0ivi1OoflNwd(!)8I{$-bh7Lv<(Fz;HzMW!&xF8dc#%Wk$Dg8|ON%P(1r zJq*#Js^J#POSDvAWk3pfI37*94z^hcT<9AjLlBDj^C?lEGVw%3B#cqU4&DOn8J;^sbL20&sqrWz!tR^PJgt zmt6dU1QMl_BOo2t&Op0$l(Uz-5GDaUVUEalaW~ApXcE`A)P*Nh z$>D6mDA@Y$JHKs_2Vp76Sh-^OBF*h=CH<2fbCn|pd;JPGPY*ycH)Nj z@WubUHqwSu&|>9Kz}R42ED?rmTY#R-u9tqzHz_AD1mPKq463Op-cb#aXvHYg9l#h? z^!!yW9>DT!4;JY1QsO=Lp$@y0^rj`RfN0bH1xKIaT>rvxu7820K(VZUxp$AL%hge_ z!YP=WbKCEgF@tE=NG_N3E6B`f|AHg!)wtGfoYxbkgG?S2v;h~qNWoGjXM;1KK=12O;>6KKXWg*Rov#~+ zWOdvEDzCZuY8&jS%k3eFX;cvSJHy#R#U0VWnxv_{7O~84v~I}xXiBF z6ZUcLEjtA@rulFKg(lDaA>Ie2GGIeKMA#=2Xmc@};w=M}VyR@5@N=Z(%_Qx>o;mmc z^61o*<$cdofHAq-zH92;MF;tI^fN2+xhc3ixof1UD?F(uwKk3<#zsJUBxbV?I(N2@1zhw9ZfzU3nJt7(!E=ZLsey*YO7#Isrtd+JLus&0&p;;L zga(5dIj_NF2$h>tTESwYNPR#!ILG5OecM7&yG32JF(ok%-$%bXc!oaqDHelKw>&#c zR#sTYXo?*-cTbKEZAskU&~f3x;djmBlV)ACHsjH_H61yc5>}Rz>Z)(}cE2y#7A@29 z-+PBl2jxe{OGd*^>b8g6xiNA=lyjfYZz`VL=N;Xd2Z=D^cG{;;;sTa;a)eBKDDX6t-k^I3_jY@=;%m^h&PU+72tv`9MPBh9$P97sASZmz6u9eCp z#kW=FYszn-gm>UxEr19BM=cIQ9YIjm95p*9O>*OOpo1 zB@!4v%&r-0Al7R7Z^E5W6g&+t%8*-#g1qa(Jkjn;9^$F2a&YWomK*Tdpq2Oh)$WTH zup@fEr&%t01wj}B4%&!XSYZE!ec6({s&`KgH(SU)4~`C7ug_kc9z@~CZ7K-E6_|?^ znw-L$UM|OXG%I{{vSKbj=u%4El&q|H7k>EZUlo~6A-K`Og5I4=v>#@#I^={h-b}dH z%2})Cs2nrIY?!>WNE{=hLg#oWricsCFeH;jyTi_}yH!+IR@I#9v~r3eTvvi{9YQFQ z10Z{Qxh%30UDM!J0bpgjV8Z$5@U99svDQ31dfj{-yItV3C2k=#ccTyr<(8E#doufV zRC8J~>;6LKZ7H`wVoao8H$LvT7lDoBdWH(ft1j&8%*qVuC{X6??>6HNKD!RLt2)Wz<2k5QNlg9r`}n+-6~r(cqvY>Q9e+>8{S+i=(wz=? zxL`&SRu3ij^Fj`i-c{EW_*=99oxl5h{_e+AQIHI$aln=drT;TUyM&Sex}N+G5(Ngn zOt$ftZ!ZqZ0EmXp8OB#Jb_A;9i|!8`Ev_O0Ml3^0+(xyW2Iy(0*}?!07=sTYp^*~^ ziOeKg6iULT1p+f3^XT_F$x@sW1tZh~m0tj@c+wWOEAl0yV(*rsbi_in2#gp9-pXC- z%nlqtOJQ0JTifK2fI0G7;z>-Cdq$<$|9Qt@QF1r5qR^4cpOv9OWGQm9QY05fkqTu) z(fe@)FV>jR>X<3r5cMHibopXo+3X-y*4--3F?@&Kc5rRX3}I*4u!3#NbzqY)JV#Q@ zJ+s;YVu4e;*0EAbF+Ryox@K;Z&7mr=yhiNtg zL0dKI7IlgG&R6X@4R#LuTyv6(`-&tw<*q(|AEbQEX^-{$Ij|Hh(WRG@niwH=&eI!0D6eOPp7}}NY z2F7{(JRe%?4r3Z?bOdc}*4mCdiZKc|avox=>V%}6>H%5LFnqV*^!ir!3V_blBN|A^ z+(RUJ2`KtIO=iBm9p1}HgG01?LYO7jrk)B{5TNRH3aE|s5D(PQVyeC)mUOPQ<5}tD zvZ`LrDh($4oC$_B9K&Gnd>u6+Y_&E<QUgEqb0_d?$>PCd+EbB z;`0s8vwPo>T4V3O@2-xypLm$rO&^quKNha}lLT#4F_eqqCd_*bA}{go9QC z;d>HAHwm>B>rK?Ct(*(e^>LrxVgWV5FB65_8%Atut9BQD-j(RaW*le3LH}(!_&|o1 zk*RYdHMYWOmaO930FIU)`J^$Sxc8p=o=!1eHT;QV^G;m zimS1UTTxqJYR>H6*HL;PoQBe-xIM;j35oM1@1?S=2LED*5J{d?$^IL$WdvffhyNwtkIvNll>kg`;Dp+kImgzKqPsBG-N*8^ zX(XD9K1OS&b>Ll|XqV}$`pd|M<)mUt1;TlM$S2*L%&vKB)G@tV<`Eb3WtpLvb*GR6 z@Hk8BXPpwX(|TP+(Yvhz{GCwA9d`fzTs(wlFQ+za0ZZd1oGbb zaO=E3tm($qo~FV~!gG0Ds<)?YzS)4*=0h8nKpQG(WgORBgX>b0^m;v;boh~;*kkyt zB456nO&2PU_E>Prhtl8g(`&Qun#Tvve~co6tD49*+AN(ujJ0<3p;ca%=4mThi?ng6 zEuq>%D+*SCX1kwbF?wMj%GTR8oRiD)yVs?;<5JjVnWZ(m3$cirPqRvt;DZ>XP!4X! zd9J||nCBXluDAw&SK}IFx}xSatMM1JjPAAk9Xso=gi>%eI8TanOv(aU$y)K`X{9sH$Q;-Ej%1aXF~552_fc>k{S_;8TpwxCBUu2@Gl> z9C}J^CoYN-R~LYy&8R}Ecm4ocEuquc4%e-^!*z@4qGTevRW>#RQgJ_1s-yzdN$Ekv z?syAscysnI^jexLHFsAm-Rp|Cx`otbI)YEl-&8QX%PRb*k=QsfWN={jKAMn{Xh5hS z4b0v!30++Fhml?EZLc+&O_Npp&y%DU&#VJRNF>wTUcnTMuxX+I7u)kqk zZLG4h1XK!=xBuMXjm^W<%$V+QZva`>FPs5&98wFC17e`^I#P+qU`gKWlF^?^-&R$cBst-%+ z4olE3$GNy7GP6E#vtcdD1lN&$ISOkeU9oE^sWi-08qTkT^C|W07gsjswR14NcD3=h zU@Lx5=F}alx?@+De6|?TF7GUiq-PUei!vS7} zQ-(ci84Z(=qH(J%U=bk!oU({6^8v3r$`#S6nEF*-nkUXwLJupE0M4#7vP$N)UPR|0 zs+e^_aB~XZl^3kACBGh{S*Jj*(Cw5B9ZXG;M43T(qE8SOA6FO4oc4{rs&l_Pj!FSg zIF7!m$^~QlNYY=`xxg^L4~_jWKI*Kr3e+e+89~L7A>Yk18HPH^$0@&^;VkV8jY+?j za$!cbfv1aj-Q54F`CCN2AP5Do4dGPS?Yq=y=r057E${6x_wD<@<(j}MheHQcAa)1f z92>YB4zvT6E$v$;>xBm(@$t(QaLOGE)a_w;=3jIRKVL`eTK@34)o|QGJDIh42=j{A zE)>{?tP2xwBa#(PbL;Ro)WgXnKII#y#;)WTU{R;Fl%Iu~IW<~RdbE)5q0q9pFbK5ghNx9CdYaK8 zPfe~r2pk7HuGR_Gu+hl}pRcM4)|dtS`^c|mqA8xsFBnj*1^+)4 zk&u07hZE!aEh+dzJx{=6xJix$lSWU*8 zLu3G1yey#DbjUC;6L@wu7-g%;%PGaXak0_SXGB#Iz3((5fE_arcR91amoP{(E>B z4697RP7xzP?!GCDkFi47HAW#n5A8L!tfF_b5u}&CWW@15rl)wHE55kL^a{VG!~)_+ zmZNvqZSpp#1BeSadLz`><$#kt@~O|LuVKpKR-`gXMKg>4#1YxOE`!bjcw z2@hH&-PDBh1-|%_$uAva&Z&f)b1G&2=;X{;ZloEu0})@|JM9h4Cf=8B!i!U*jbGIF z_v*VDw&tF;ld*b-*Js9WzG|9>;&~MRttej86l^HWYPe(v~ra|=G~JG+&{QB%;>m+b;?*m z+(;I`c{T%~>kGD`hS@q?Uzo|DX4aK>R-GA`?t^#ppf6hV^w?8qim`KdM`NJxMb)IZ zR2aIxDK~Mb07Gq-*Q#d%b>C{mRCg)$m+rbpu|}vz51~aHm1m3EXCO52@^p*e&9V{y z0t1dH?Vn(0S%Y+WY}{N0yn}6C%Wm{1{HuXGSam?Cr?(%bAbqdMCj9Vmxg5x-?T&+lLn+ zk&!LOc0(@J*J8rhO>Y_dry6Qp4ZwXZw%+$-nvn>tpghiB=((Pgp+$lWnX|4jG6+kO z`OGYpZ9)S)U0lwpkJdq==vE8o(Nz&HB$SvNG>ZeaK+e2Fc=bc6T;`+`1X z^1d+Y-u|ATS+cV8FxfHTbW=R}GP`UKuUvztQCkw2_d@ml_W8M5Bww1Jb3?PDhm-H{ za|RUL!c}7!HKtTc49udGXxun!12Nkt-VqWWa?c{%^fSG|h!JXp_ZPj0zSRC=^QT$& z79^ILHkNsIm09#Q*V%pK7DDlXj6Eb0qh>)zvoUaSb|_2#bGHfoCvHNKpn+fGVDja6 z!Q0-+^jiJWTbXESRs^Z4Yj zN!cDmurZPD{=5&1VU+1ujlp_jU9w>%$Hw4`-Cpa@tfO3H^&_5I8`81@lsv~ZQE^^Z zt>5WcHfdjojUHnIFTp>!lVhUi=b|S|%GyoA7WQri+Ay=rW*;29ctAa5G(f7NyC!T2 z%pe=Sb7-I|oPJWqdy_p$*o~AsB63RbY+3_v&+6vUZ+q$1&f7Q5Lu+1J#0JKJ8zW}j~h z{YVU3Dx*TIf<623FwJ?a3BhTd)-ZtjU-iogHCLhE2ClBN@-ygfYl zIpy?b*cUXZ5&plGz^kfkS|}wxP^J?oj3_kZBh>=DP~XjH=%E~L3YwA0?fAF1&2(?` z=%=b3I9!5>+--~sQL+`~nx8NKdZN5D^DuQ-&6oP1kD941BqgHpE zRb+Zj3LMLWnI61t9&R3E2D$wM4FCG}?ZM%3b31)?aF`yy**QvoYW{`@nZ8wP4Q&Av z2)j$>XpAx%t26N`3adw{suV%ZM@zs3Bc!C>Sd=7;c|XYft|-KPAi@$E>a4+-hw>gS zCwr|=-OK4E&NNOC=%s-v*LlRxZ1N==v zV`RbLF$8|78t@&3?O6~mH8`cl#$hoU7$0z{Mva6MOw$SUBEnpTjaoH|9(K`TShU8I z2P0B^ayoX3!xK4n=s*l~Psmi3&!+u!I2l!E#v_>>m&C)TF*k!q?F_d6UVwk7G zlOssv&Nv`M6_DCsvNn@bQl)6c@pM{Tu!cafBT*bWDJBAUC)8wI4l6ieCJsErRd>JA zOK=f^hjM&skF)Gk*2VKD_irvLm%KYoK)Jn}o%9ON=QM-wy+Y<2@ zjDh|$(-K8hD2+!twMQYc_^UMU%1 z_mpU`v;Xtv?#{MxOg`HAKTUH;m%8KRyFaHj!wa&7>6ThB(C~bzrshGl9uOl~x07>Q z&J!a@+TbJ+wqYotU7q2M>xhE|8Ouw|i7~$FK3a_J*WwEJJ7BkoIdynxcPpni>jH9?4KN zLVMD&9X;!kplUfOIRfgHFTdju9oV#%BHf+Qd15Qld330zXi%3NpHEttD4X0 zn7n-~OEAvl$L5LpRc4B2S7YT*Qiu#=+zo?FLH~q{WcZK}V{2c4#yC4VzNUr(1?r}x z4+4Amu;?KU9i6mJdzsPO-zkeb43{dEPA6wSAj`oE8hWfZeJ-%Q^SXI-tkc)lW~&b4 z^0s++ywg0IAH?Q%x_7YMoEyO2>sR&b_Jd&DL}#>?Dh8vuzrFamG1J7R{XyF4o@e99 zJX3r(!1e$yo6N!;YL{ck11)`WnEBisLr4r14K}cE8;l~CFbpOhDCe-tMKuCkIY%Zm z1+L3ZzjZ0kUgd?wne;b-mW-hTajc-jxb3)rU9l|Ls3zJ;@ zY)fIRjY8sdijU71zi11y2_>PkPHuds^duCLvB^-WRqFH8`(z9;A)hnwx zSSX`8xX$o6=3as$W2Z6IOZDHPcW*KOB6F2V8|mZi(|8z98B;+_pF=sL>MMK+(K6dBM|PB?d%NR z!jVKSBr}E)0&#SZ@P|VqiJ=-}V5Clhp^^wNYBk^W2Os-TJIj;>&1EO;Q{G7m?*tfK zF(9Fg=npXAXPZJk0caTFYy?z-S&tDt(uxeu5@%Xg3C2UI1l5%K3P~)@J~^~X?`p~Y zj#MQEv>VnDm{o512Xuo)F}0F$OotuuF`3m>K0> zJ1i_%HxB=v%%>dhQOxH?*82@Ccg30JSnL5p@~**xOC2XYzOp0wg3fdpIZ?}{h_9C8 zi*d$vM9oFkj$xeaE}uAeI?q3Jo3gi9b2IRnK<$~jYa=(SqBS7Y^;}&`tfM!&(Oi4`@UZ=|q%i)5NFj{NoTM=0DiHl1jK{rn+NTX6 z?}+V}GmqQlhN`fwqNe6wXC+29MqR4y0wx<@ZQll;EwR4JFEHN(Q-t^_XDL%)iy6Gj zG7LRSTxd1-w+?@Mdt89D2t4tvAidozgR~5$RB-&(wo~%t?HEqkc2hxlxvNWe``5E0 zpyY85Ch}b3AXE~U#x-s>W;6$&+=J#JS|DN=SvgAq|&Y zNs3~-G?=-n0+ZqV4_dolXZe;~f7e~+Ut#eIJcJREatbSG_T}bwy4&1;ef(xtiys|( z=|7z#h>^Huj_^&L(d_}b%@evDi<0+#3&C5zc}{G#SV_>??h#0RP9bU`g%%Xnhm z)BGF+GrnztDSuJ?O%P1*2Kf2}Lo68gO4xMvUhf@S7`)4_F3&F~p8KO$X)KF2eBZ}b zuj@HK@-yC@JYdTLmT-Oa-;?j7_%);7qX4aZ9#vDSRoZy129%$pMnHn0!bXouJ2+a{ z&+go)a1Gk4iMKLs8Cea-={KT>&ZkXD8P!#2ptRB{M1a~H%|x3Lv}nBH6{Wg!@tz-T zY#@v`1E|O*gWT0b^`bQv(F-hG*^h6W^|H3|4ud5a>!<5@d2bulZ+a!h>R@;rF}{)V92YbpP%^y@xiP1<@2`8 zOh{$v7}pw|S2&SFfSk}i)EFGJhO8C*PCk>>IRjWj2*!IFZNv-K(S&U>0TXGBd2rm^ zKi=7-kYMC_z(DG=0NFVfuF4o^$#5FLuCKg+VUsFs`2hNF4Kl?8Bia#CObX}s3km~6 zO`#TpG&^kjPGik6#7JKev9rerHC5A}$kNzEysz=cVY;`uyL+%jLAg#2Ef;G+JwjQ6 z0g2AC5zq$3&8#=XQ$XV#{3a#+L3;e=u(`RN;zKJnrBU=cm|4d4BTl;zLsz*H@E1dH z7-eN7Ow3YZvqhSqEx_vK=GIRkLZ4?e5lL6$cD@LOs>4Ab7=;StHdD7yw z!@?Q5zVon2j2-1I7Y&7+9 z!gv~s5}Di3QCfT9%zK|)w?1~!kG4_LyIBY;Hk}MBKPp7NVJf9^#-kubpTV` zTL+1dPtx(91&qr+$q8Grl6^x=O3#sjrG;JzdDf9-;bm=J5q3V|bvD73@S9g^wI$Z; ziJvoca4wNESDkBi>#~I!uYk&-E)Nyf)AhME5p(M$2*a5U=5@*iCeWQhNAaQ6>ylSO zu?B{JQm8{>*s~~PX6n7fX@1RwMzU}KU>7Y^(#W&BBTjJyM2tgn+G@Xx%V&AYn;Z$P z%uq4**HqycUGTT65^REzm|3Hf%&XEd+xs#q9dt$yEQpkY!N$8-w4u$=$xdvC4)o1N z&*`Z#?Atp>Z#R#(-sl@H+37QpJY2cUisSODll?8FYu|7F0ureZK$woJ)tJIO`CJP_ zd3D%qmH;Cq(I}iZn@1(UT(rhf2s?Wi|EmNL)*%+aA))sOc|}QhOu$j7s0-NH-zkHi zROscxI%*#Cx+{mHts^Ufe7yN`w>bxRbED5|que0mV!5^3+}uBTTXHyskQ{}$d$74( z0u;)mIasL~(U6ijRwX7QJ`s6vOU=R_a*h&RCfOwlg$#5ykIQfXDF#GgHGeI+etE+v zfFss#S!e~Tce@m&btHwYvETM*^3l%a*hX9sk7sK%w1+q_?XBZqqifOz$?-V|qYy0o z#yqJA9I>NZIE5ghwK*hTF&>6bTv7n61e_ue>0xv00KS&S%MATk7WfQs;~;SZE>997 zv`Ks}fr$aMBHl0cKic>r4yosZkaQ7VFaskhZd)T*Z)~(*KU&}wBnbF=$?Ds|} zE>C_jK?ygWVy@u%Ae8}I8e%Rm;k8o|N7Ln~4A{~TbAgrFaLq7cxxi*%DFGAbBG5Cj zmYCUaZX+|u3jy=nBG9wrACMkIBVwT@yi)a*4PDfAU>_L`t`Ls4?i@}oMj2Y_Pbb+Y zx|^=try~*mR=0)117PrBbqFAzlLBZ+zW#Jq_mR^9PWwot>lMC*bLt4^0;j=g-*58s z;$QAQU+Y8UlJ(EK{p{g*)PAVR2j_OReG_f0!RN`7NBD33>EpWjFMfUebgllE`lH8> z)*i2~KdG<(WvvdS*Z-2N-9+O>pXqqg8YRhJdLU_y2Jv!5@Bd9d50@8{u>;Z zHJB!stt$#MG970CqdQK{y1k5ojttQ*J!uavhrMpA-_8=Wz@T;n6hihl0b_7FX+iN; zLV;WdXJ)~qH4#YT=VCG$K707^et@9CuNf{v0A4lB@B_EUK00^ej#n^hMz%b1* zlPE&Z%>poLt$wn!d6euNEhR5Ek9J^>0U*EZ9KSg@IZl4rJUrao$7p`Z!C|s>u)n>7 zR$TDwRkFGNTk_Kmnwn)@iYb+S8ji3BfMyp*Q_S;GmRTrZA`l8mHO$)Gvu+!@)<2)N z&a>nkPx^ffTQ$r^mt9KSH3kGb2&UJ)>`utgVeI!yP|L%`#lLp@?cTJLB|nZQo$g@u z;)V4HqYmOTsduGywEuEp7P~|-(??$;TO`t-$rYRxGU`G z{r2j`lKY(YPIzozYms*(o69s`ZJz8N8_^g^(AJ(13JU&OYDhSIoppHd^UgLVZ^8l~ zEIeFJUP*yn`Xdm1;tb%J;K-X0NS2|&(rVuHte-5mQ}ez*UPVN()m4-+nwkDn;x7fA zf65TgS)XK}@yB#m(AeWAB^!JEq_DBa zPx2ev_@QLapkPsBP$a*x$MyAcjX}Yp#-NC7j9sks-^5b^gjNTi|BcnLwAnmbsjvUA zvh{LnsRW*_Y@9;zw0+vnK^968P$(tw<%a&YK2t+~TQAcP0CgJz5}2hSB&yfvmayAh;Ak#l8pHWD!GkTH*7+nXPJXNH{u$+G$wrea9lRL* z!N-OXohZ@G#uDfMiX7vr!jDG{jZm%1RGH>T>Li#nHW)FC1jlFEGS55HG@Kf&s1DW; za-Lg5T|)&cnTe#WYQhX9SV{ZoTU88Ada#I-x9{#3Ns79=tXa>Do8U^IIxp}yK@Jp<=oT%Upj56OgRV0|u9+e;!ql;TW zTIrk3{q5amvU~yDq{l4JFg+%{iSX1||Dy&pfzDp~A;m}~+ag zdMpv!t*~xoxq9Ewq^x>{sq9*nn~XJ>^*a^iczMs%3RSp=H4}YtmE`$H{jzzu|BSXX zymVsg?`#5Wha+f^W~yr@t_lUT(wT509YR}W?;&)oH5qgZYQ}Qs60s=l749x+`=Z+V{};Uf9bc~B%*`)(2e}<;z|WSb8^cG9ff4!;-!J$0;Cqy!6H1H*BYu7Upw`##{8pdf)~?A_-6LVa;D z>rXFHq(KWZG%2K@Ah1=e)NB0kWM5bssuD*hTU&HKk#+aBq0|-#eXpC_HTo%jP$}su zC?vFhlFaZ^c12nbk^#_>>3lSp4oOI8Zl$je4^G}vFo2YvH>l1Y5EqgOA2_Kj3yYNX zWgGJkalvh%aG;`TcTB>}PABV6fYLJ9gLjS&9_}=^lKSJnJ$kaTK|rRkOaFkehPzl_ zMh)(y95EN*?esga3Mas^y1d}O?{>cD{8+f4#vl(=>Q$tBWHFVsDhoS(f-@ zItN~dVbpijur-pP3WH)6NO;%gtsV0QLC+hqw=ZGxPWC8vG0d%c48!*JU}ygrUQAE< zg)BK3bx4IF11zR^#+Z(|bC{^7526C_GBL0q$6X9Mst=r)M;8_*>I}oHhOWr4o`JW( zkkn{E)B|H+04T#zxCBUrMu!v#lk5{wj_lD^{ZqsIg}vQ8+OMYvTgOP>$A>%nui?c; zrd3KqG<+t=q>454H%zZGmtAE$W>_|R|3eV&61eB-3+0! zDNymDgi#4Xx!Pp<+-`2|Zo*-VND7Zzv>8@xLaHt<()*+4|2}E%Z#CW5ta0KZJ9}?; z-2$})sJkYx#iXYBMXyR1-KZtrS}3fv9DaCV4>*E$5FhrriDMLLMPrs2Nhr;j_65lK=!LL@ zS%{(*3HKk2u^)@3Z&r|j#zT0(61jCe%y1WYV!vpOFUVV!Vl%+zMNe2wB-A?Up}OPP z-`OU6Btu32%QpJlzaeX;hFxrZ{ZY6eyl{&?eiAAA_=!_=Du{&K)%J6*F_Bm98O`MBt}` zfbaBHhOrorXjW}8P{h|?h(JO8NQXINouQdEQ6~`GL3Iz-m01I; zl(QlE*T2N&oR$8T3vz`1lu|5&3R6--QC2E%sOuclPv?a2)JkGh6Y30WvJFKx$?`&x zZS<3_OlSqf!}n3x4-kf=qy|!G#SvVW$CpwA8(OhgjHFL_(Xz1i>FlhQIDa$miToR@ z5&ugyp04AswGI5+p*K%X@$Y&a|F)md+sE|elxsYuvZqw)>=C{H8~)v(za1+3h-$BI zz+g6%#+i?4G&m^h!y$(L2E_M}IF4KjC*U%>#L#*7scsGLfrNsS9*~BUzOA-;7^QCs z26jo(B~8J~3;45o*^yay;n+Q4iZH}^0RtbeQglCaK{o97uviQ=qSXeLM8riX7tL-( zDLyf%2MRf8F!jh9y{achhas{1HW zYy^)Br`Z`^7N8#)9%F!Gs#huvG`C1SU=J_sDxxL0i18jrME?ZLc)6&je9qN@H|1kG z<$90h42!{DG;RT$xLC~8M5ZbLUaB;0eaQ_~Jv&^MqRx80fxJ!`i?F3r9##j61E@ zY;w=JGPSA4AO)_*Fj?1Q<3i6g8e->?T}s=R!wMCtxh#nR*Z9EZlq-%H`}$zk%|c^Do&{Cui=3#+TE?`=_MP*)epWjh+~tqoOSvQ(Jq@ z<2MH&3`Z^i3lq4Z%Ha*oP)$-_DkVrJq+V!jYnCMvEa^0G&0R* zR5MjR!D9K`jf3kyPa925Ck0N@1p-gwfLDP?khAM5Yfb17JMypTt+D zT>NIKqq)D80FwWn)FDSVNFAzIS^&!OsY8!LS?bUbXQB?2Dpj1XhyWV0OQgD356;i& zWRRX_ql%UxYl+s1bS9_C^2mEKj*wkI)-lZ*QH`ZUz~pc76fgCtUYN|j znOdC}ti2IB9e163*;i_qvbauv*G(pn5*J9vUt#GZ(9U|-Ah-LH-i9?ff>k?NkG~C= z01|jM7?mM4wfrA0C(ZtNids79FoULV;{;RKDv} z)sR)b>rJad9n6z1$Fg8lSm{bkF*Vh(dP+%YF{;SxB29Evxs(KVOpEz5N)u(~%EW3M z$7);#t74{2GR{m`iRlNH)1O|Zr&p6~T*3Y~=+(OaYHSh23w9xFZf&J|o4=B3=;d$6 z%_Afasvj#5>B`B* zFFF;tBRQB|87Gq`?rR%MRqmTD!d86BTe05p+b!5GFhr3!laG^e>nu}Ob8aI_=FQ=l zh#m>CV$~Z`tOL&EeT$;*vw#hz^!2o7L~z9RM%gMGvdUH6kdI;6iN~MJ$DisY8LF0x zUHjr%#58r;nv?*$wfS)=KCDi^bdu-o?Xr{NxHou%b~j-YiIo??6vS@rZRBo2zT#25 z6^dW7mlZbhfZB$CoLWHD@Zx-OkvveAY<7taSwb&C)kZbIa2bayiGzU<;ea>_HX+_# z8E=Wnt?Spaq=&b{szGKK?cr6$SgT$iW6yQZB#@0r;hg6hh+-0md!#Wr0O4X*znD(6 zX%qgcTy~VFoB{(vxhNdjs=9qjOYsawG@&Y$@1`Wnli3G9=#XHpS+^oo+Rk|0>Y2Cp zTJu)V*wHO1%cE<9%UWQKoj4c3l?~uZ0tjE+2}YW=Q?l6RJ_oPjX~`-ZZn5gb7No4R z!;eqx$D&Q$pp4VN&xa}I#*_v?LwTA+>AGe9I5qttiJx}{eVt}ZqR%mtr=t&C@`dBNvrP*PFt#X~(l?K?X8wvJ zrF7PB4?1u(k9ej_tWldHp*kGH#*2qlV-Rycm!oQI?>5(lq91=l?V-BrOe2|B;EYtN?tYHxCjJ9)4yse5liW-8`g4{U8Zd z6n$1TEZhHhEiu8tS}@vjnx!ahR!5QOPgPTT6%0BnOfgR zPqz-aio_Yt5mx|1Z|Y_7rQyEp_W516Z@ogP4*UMkHOjLt!H^vw_60LLQ-9!TMHdSX0=V$DFF>&;x8b>k<@;1YnZ@FJkj@9AD_P)s z;;@+h6JHWc7nc_B59lipB>MM}&_jSk88manphJ=yOJkxO&9)i@RKtqBo%$w;Ja9Qg zLu}Bu;kIjBG~8oqfPLzoX;K?Oh03BH742*Tm&<`QWEk3+=EL_4`(bnkj<&dtuB?fQ zbzylX5{)Jk??Y3GqU?X1897Qrccd8SZ7?re6} zHCYZYJobtN?6Xf<8-2-yIg^Skf?H;L+T(btg5L_5mQC|)28=kXMrOTP&5-Qc^PB;^ z8?h{4!4xk&4x9~4@jomy1I}k!XwD>ET|;I@h=$BOuShIXgDRm|+-2o&C}IX;GOVaynD|7Y-#G75kB&)+f5ZxDFgSM3O6Z@*q~3RXX)tou<61dN=EVPj0@|0i6h%A zl2jIXK8idatLH)K%3=%GlCNAn1x*2>6MBKxcB9o(p}z=^In^yJq67i+J`nBWl(~o5 zA6xtg`U!aomkF7vYHbS-MVG?`QFMaP3P5SoKD&Yx;LNEXC8YIgB@`lRQAAb=c+yj3 z9>ET=y#-yUOi&w8hvx3*lC+A1zZqOiW^pq4##EzL7&@{i*-+LR|5L@w%MK|m&FB!? zwE4eiNXC~Nm1^=Vu?pd!Z4}ukh?}>Z$R`^_6hSQ@Z|o^4;&!%8ovC6K`Zm_N<-~0s zjeUsJq&H2~^du)goQ146&Wwk3qZO)(R<3wO2eQSS60^y?=QtkcdIpL!ZMn6XTpPQz0E+3Eg0OJ*pgRZ|GN%)vInnJ=xY~d-+~h9-X5-oDKSaw!CMm4uu5a zYYx#M?>?H~-EVIgmTJVPfrRLvjd{n(H`2!Du(kGvMK;B{#B1={Z^|AlZ@9iKP3f1C zk>Hv7DeI`V7}`Z-ZrZCydsxl zuBYgJc4;e5d@>hI;Ot9h+`RK|o|>;4hFNFhyhl~6LH|A zi-@R`uHM<^IqM=Gw{X_oZbr|#VOk=w%OobfKb2FZ(EL05nB19wO@((bU4Zv4pSCH5 zid;pNqMNQ_mhO-#5${kKxXO?WhBzfi&=98xRdjO|mZc(=SdOKu?Vv~{i)}d=+vG!=$V?{PMZ#ZIc5trKVxxt?$gX!{FE#h)x@(vaHS41wRLt#eg4USIUzCAcRE@3%`&2`6S z0AzhOw8u9G6Dy<{VbOdqQtU> zoE_=7+dmsi2y&XuiKQUcLgHkoAZNmMDH_XN+-hR^3EC8h zPAz;+@c3*72k%dNy_KD94h%jcSfM%pylB61e8Yz%tXT!dY6r@9JDZGpAuDAWGF{K8 zHJ9^U2zud^yGGWd68wW(5n*d%Ib>zx3B+C}oiGqP+)XjsF(wdw-P}*NP7Z%=ru#eF zm{Y+Bn9TeikKU(O?6R5mTbG$hi=uQsDM}|p0wDzv0mLK6a{JCg=mlUchn4w>WCxAh zA;2r?XQDr0u=(BV56qOLMmXVk-w-iO3YVVsTIaz=)c}>~$lkU@{~i+Of;BpHa!}_3 zQ@7<78d6}01*S%=%QK_xb6GX}vgmVp=nx_Ed7$(&EBzKgHj}u~*l324U(2XtN9j+V z>)c^9)Fp-u-CX>kGv{pC3Cgfs9j+(OJq4(#B@DE4)I6@IJKLJX>|KO+4dgF?0iodH zZsHW~hlDS9Ir4Ce7dk)9P*ypJ3&81abN?BQhSUOh!=N(Q6+qnHdEGoZ#y$KQZw~td zP67-aKFvsDodL3#HVfqwO7TeP!%!K_yNA($kqIWE1RwPhk(j~KC=+8WP$tXqe->58 zKX)V&j0+y2-l{S8R)!On9BsNQC({&dX?XaF+`E|BaCnC^pOBLq2LwTkCnJon#>JK} z{-?;I$Q#0vnJuQv8IXvJU|n>a7TZR5JXwcV6$VZm6$lFx)SXf9VdyFcFaJ9o_e&M) z#fz2Ngd!Xo{s`6=L0mFE!S!^j+$dM}`avxPtC134*Xp^oK5H8FXu_KdWPeN~B5jFa ztMO^X%Rz4j)f+XBqB5a{wLf8|*zQEu#7?M63CE6Da9fs@QGn>!wBy#7@*zyZ{^nkD zo8=R8=ZY=c!m+{@c!<=`YQwtPabenvi_Tv%Wutij;2e(2>T3<7RoEv?`D*2bh}Izl zL{r0b&n%@BD|9TfAhb$BXyrgSEd}8;2g0Y!Z* z9t_Qe#c{Oo9LAJ4w$($PuAcP8sql%TXMTBp*C zA~rSnLH!9n=}&q(fJ;tFvRM3a+O`4x1kjHhRzL{&KQQrIS-crRq!r-rRgMY8@{Lgi&yj44A| z0P)T)HW+pdSvmy%^xEJH^`kU)I&UyFTxR(F@jr!g2w&;((Yk0JjGddOV8M$-Wab^P zRXRy1)fAgO%KFkP{lk+T3|*3U+*$za3VVh(sM9Cgl+w++!+7Pdw3#hY7E3lX}~S0;h%!{UueVfv}D_7f|fiI}m*qMNEX zC#Ny4c20%u-mEitaoTdCCV#SRGdNf5;)3j$R1N&emtx`q)*T3a70W-1sOM7O#aeV@ z+Ms+gM9X`&8bGXOsmar|=!If^!6ThK#7SwC&uMTl%Y&2?N>iu~)VG%Uc3P4hqII05 zBlEDJaS$YtIMIHU?gEN2Z8=jW7r&e#C{%WSplCi$#xOfFx0s?_CX_2I>N&0@lv^}j zZPpeeJ9JTt-Zm3$kvOSCQ1IS1(veTySL zb@LB(SIqa`o}vA$m&Y))LVJ_&sOFrd?|B#NGW9q7NtTn%K5A_^I^HD!!@C^3pH7Z1 z;L9*;lgN82c&a9OsUQZDycfj% zHdT%2RbGpH>A>EGqwK8vDf#}-?@@&^IUOgL*?24y<7lr@S1$RJy+(^}`OxG%l#^C! z$t@X;ZzBKH(dJ|yLUPj3jjhs=%1HeP?af2$utNW<2^{1YAVObe9P zkZC&;=~l?RXxt9m4%^+ihRIQx9>}}vj!n?fUlPmDi&oc!S&&<@;gn+Apt1AFDn*=p z+%|9eowEZj2C|5w{*5v+9i~i?g5c?;${z_Eiu^i5-b(L1KNpr`65z@Uz`L8c~wvnux#O657riG2-TBU6> zxdZlmq0tIYvg>DNV}UoA#2OhB$tf+%Mpe*2Su*NKL9}}_3c}BtWjzqCW=mqazV$rP zqF@0=qx>XXTzanR;->4m^(2C7<^nLi2COGx02F3W*H%F{_0MoU5kE)QG-4~653qKG zBpg;lriY5xbh2JH8?WKhuzHKGt1;fu@aT^PeYT>rWro&42N;@%Zt^U+Rw@KU#adzW$`X{+G4-wiB}q@(THgovh&3-xsx)9=>3v zD~q+pSN*p9F&ekzS6H2ay10C0iOz*;y{*4}3e;+4t&WXW+Um516GYGJB#hDK_V)9Y zUZ%q z2WaJ|&1M){@&IUWJMdae`Ge;l>JMAJ^M^cqv{ErxO|2RvSaoP67tqAp>z{IPS{ zKOezADHKZIPqS$jd`oXqP847ipq3sAS|J5r^yQ#`);*8CJsXUoHG6|-H6h%BP#r7b z4F&QV{+psl)M?8?*?gUS$oiAWyWybMi@d_b2XY`KOBL&G(PFtCJH;0k|FjsR*^`At zSFm|0J+k<&S=L~#T=zn8KNG82`I%Lhd1st$nuTX#e||+|fKnlV2bRO;(NVhHgnzd- zkDJ@KB+$+HapgZ_Q@gP?^5wscjVJ4mT>00UUmlu=eWDCx>qwe{|Bw1fu zUt57c>&csG>tohUj z$v(BSA!*%Fm)q;M`t2+&QfM_Fc}fOi8E;|>D4)<2)3cKv(+ytt39C&O%X*&UDha-!csFg;9> zChjY|ehF%MxcJv@zulX5vgAjxeTuzu_2Px`4%rfH{K1E)HwwQP!z9{umW-Y3V##^# zKVeP?j~D++Io`5F2A@6(RpQv}JEZ;o(ZGQ`%S`Yczn)Qq-FRZI)XyXYp zw@uKu_Kz3pYr2Bae=Q(j%aWdSW|qF}cf|1cx3_rLWfmnpL%-V@|4tFi4edm8t7iN{ zWv21-*L66H|IK>x=+O_0p9wgrOb7!UXaq_(8~B49-Wq1)4=y9WG+Yosh(an$^j(LB zZB)X<$y-~=d2evq>LnMgQHR0?0D!@C)Xq46GBBhBNSrQ!>{bl$fDHPNiDvN%6bpzu zLiRZlKS0!Iv0JW?9@6o!+wTq9@6t(v{{U*T0X^7_RRL?KOQ@ZkD z4_bb}H^)XCIaQ}>nZu{)bYq>s54(VL9|Jo8Fe4t4f)7%f*#f4FOpH`w^bkZb!@J3N zq?E8~F~FD!j}zk!zp!t_IA%<*hkv^5t4QZXM?L{Bn#fj)Ae_N%xnz9A>_9?l+11hJ=nj!*w02`+nOos*a!4NMkluBG6 zVJj3RY(P!CUwL7)$CewXk|xZWx?PODaH_mxM%@n$qeU(ftGe<+d6BB-}OUJ5dm78oif6B~}TKZwBr>VNVm8370D%kiRx^l2yzQq0I3 zoq-VvM}=sD5k)qjR%?xFQ}mej2X%jm!7y;@xb5duM%-Uo7m(Ujj+(*b^qa3YclKpj z!t}udqbxl)E5O<7%`a(llVe}7@qTd5tou)nH;7lb$;S&66f0s>eoUJCuXpyFDV)N7 zmV0Y87@9_3gHbmx$LG%|qu^jVxyP4aioL8fk9YQ(+aPe!G{TOAdUL%6@s2XZq_RB2 zv6U8)dmWA{aE@E(Mq(^-C8UDb3xN&PTS66*vU)2jx46s}(YTx}FtZv^F zVgb|}O#jO7!wD1E9oOe8f2>|iE zg_;SnP&l@{W6Q%4`UzdJ`OC~Kp%UT&Sc?{R*-C^my}#GV0Vq6lo5T=U{1%3_I2Iaz;nm z=G&Rsn1`{r=?G=6c-}rcS8Jea6SH_7iY*m_r_Gy1MPtxbn)?TP%{>{+6&aB@8z6Lr zhWJL7Ey&44a3z>g=jB)_ zKDx&Yan3l|$4Dvm2`#6%iVmk11z8NI`q(zhpd(n^cbog0FL#^UOz6hIi{UV$W*7yG zm)`PmIVrEB8CFVooh*3EBf36ttvN!caL+LZ>{;yi$J647sX9<;xddK9u`?ZyOk#2r z48DFr=??}n6dE0kVZLe!h)jBtxgZE3(_v~{DyIFxM46UX?hl4)7m9~K)N&PpW6%kK zOH6RF;A*TGSVfJ1WnU|Mw@TWC`_v=-5Y-i|d|;68wfcj2j2;^K(hmICK2@*O^zq5j z93VVc5QimI!+jV`>m00uOTkc3bQkCd6oUHjm+)1>x|Fc>_SG2>Ce)IS8LordO#8j= zyR3I5#cdgh$A9Td+AM14%Gx@jjDkgycJe~X)kjUOgO(7z>4$CscrojPA-YoIeU6Z< z)uiiKGvux}>Gr1-TYDj@)>$ReT@$tSC@-)ap-%%+z3}qn=r`in))Wp~(=qFUWDXu! zR5hfhT4Hbcc~dJ-HHuu^&}Igcb0;`3zs4cz#tu!|a^0|W1muBH@vbCn3y6nB*Sr@) z<#aIUC0;(+V1RIrt1kRAJ1R`M@YievWKt~T2ucV9xVbsLXDt}ohUIGt>@M?JEDnv~ z)9kQX+e(h7T$^X$#_I`B9Z|^gwc; z(z)&OP?)}3oJ$0sR+Q5gj}iJYWAvuu1D>x67ps;bdY%+7Lo{8K$#-HIS&1vkY~R+NqcL=RB*tt0mYQOZY1E zhx6f>5hz1?C?UpuUNmvhwDV5qXry6B1%FixdPHRN8_GvmHKtIt5z`{=$_mfvi{~6{ z3o3)~MS|D6szKLlV(7W_j~x0@prwRA8UFuWh-GW(4p6_$(z9;X>r{fgQ_-8ac!JmL zLC2>gtjM8_6?b5-v2-A$f~tuC1L4q}zy2+KvTh<^uM8cOA&6H^ac$#kOJ&rNPfooE zl7Gd+kKEma-6+ZgFPn!L2bWeiBT&Npa}a8&0dun!aR7+c;>+jjHhw$XQm*F zDQT?B_`%S~;>4_^tN68yE<`8D!BAe_l2Suv5=%s4C7F#2-%s6TDz6n=z4O7SJGr>5 zn4yN@sjV*(YT2~cg)+$yX~w7 z!dn6~b(W1Xv_++$+n4JPvvz0P!oL>}KamOD!%vSM{XqAz+-Yk*;1McYp~{jL9J3FR ztr}aT#*@|u*lSQ%3nGI`tRrnp?^$tPpejvC!@N)NH2-p-QmN|~YV>?DNnkVWD||4c zYz!wSeUgKiuY@)4MjJ5&teG*TQO^E`mBZXY&+tG|lSD77`ZW@;a6`{ZHcyHVyf|4f zF^M4(x`hy_pR7d|xSn8Jqllw?*pz;$pQi6b{qK9b9osJdf603&Xz0j54Gbz zl}?^(Q(%LoquKax6eFjiURN7-CKQ>J!cIwWw734uzG3qMIo#K7)U!$a^1haX5+Hz8 zQ{=ZIUo1=VP>roZEqr?lxZq*P#=E)YppE`~H;Z-Fo&)Ku9mg4MuN|y$Te)exX{(wY zbF7wwJ8gq5_Vn<^@h7PB^nfaweaOp>p*R3?5PR8|jh3jyPBg`iXftmz^@dS+q3MDlt9Sd}TkdzQ3A#>-Oql#P(tg$5q%HA-_Q+cD_V~?V zb8|a=dw78RI{dry^X750>Y4-6;NdQ451kkWQ&tu~=nAfP&aM!c3l)Z!*PQ`USYiLZFb%CVy@lXhgO^{dcRxIOtvflYv2iTO+y1JxrQ5odWZHClL zlNOXlK~bo?4Aw00CgH`|ED0gKSB{5@8+(U`WeF#FkaVkRk&P)=f_Lj=TR_$lBTrr+ zGp9kvI=OWj1shgm4I5T=R8Ty`PIF?`=W8dg0aI6E5`QOy6U^YsmbWY-7A1UHPi`pd~VkNGYDvxMlR`1 z?p#FgTtw$_5mj!G>FfOy5v0KI_5>#19oP<_I2iqN`&p-V*6!PnX7xCYd5K2+N!`#c zRNxHyl3@4+T^6H6VDS%iD#AKS)oBvPw)VD#)m^%^^Y%^i5bfU=giwetVVaxKDw`-o zVTFoQ18=#j(Q2G$E>>|pUh(i~lWK*kZRE7~CR*!JycXUP$ErQ9l5@@$3Vp3UFsmtY z9T32PIpC3llI8)$Nx4yZ>6kL3jNL&>O;lVg8Jpx%qo|7X$-y7mTa`;l>2Imwp9+|G z8s2k`u;D)+jaz}j7ydJlGyI2~G*CU4Qq3iBluxOw$i1Rx&?70G@0}bsIf38K<}OI7 zhtL^=&cppm`-Aa^5W*Y)FY*?{$;2vN$TxBUS@UAh#&+}7esa!})4uG0Om@~+UePE$ z##bC_V3y*q$>D0LN!GK-F}J&8`pR9FbDs4-bVq~!WkwD}qb?R%rK$#!7*PaoSel1B zTjW3$#7r*iAYSri3@Z#m^#yR!TqB5;ejUS0gaN*J%miBsq9xwNa00^n5<~SSK1^?N zhv?!9U?Ui55FPO@h7X?Gu8+`~)ES60;^e;Du+VKk4o*#7C?r&!tFs-XiU1ow0=RD zKA`?W83A$}YtDD+4MF#hRoQGUQ3#ki`%o2Y^q~dzER6WInJ0eXu$S9?3PSLM;R^b7 zhk~`F1*4!nQq{mII~h4Twu()vHUi$_*=aZAW2 z?`$-g94tGT%9V^b^o34IcdM4z{i-EP-;KZP;D1Zvu7*BKcszKv z{=ZN?%!6dTt+l-Op7D`E;9_hfTK1UK5)-|8AsoYSJmTCb;^kqOW8;R3OwcfNes2IG zbXWC<4IhTW0-~~fR%HvTDvNMndM$ZYGbWi0pn!CJ~i%{1lNce+moFw`G>N5^v)`>mJFy#wL}DUyOuh`U=@z` zDe$y`U$~_%tb*@aSn+gvp0;~~F~z0C=koC5_N}UiT&l5i`V=TFGG@4436zAVb}^XJ zKrx~2HhUaumh|M(e^q%q0rCmwFps|)oNr_He9b<`(cUZeWX(i&&6HVAd;XUVL=#h49Qoo25 zvloti_ew-*lXU$iN%{=Hjw6@Rbx&S4Zj914NV0epOks3Wb^+1nDBs~bOjxE*UJ;#8 ziy>MWlKnkW<&<5;{BW**0jGGlmAX8Z~$ zI)>T9Wi}GK9kcOxCsE!m?j@p_(@lIG>?cLRV+(+OKWkgs1Kg(%hFSmUXjf{9d)?Df zYjm}`XxzDxuO+W|Q`KPVh$1$w2G8ntDx?H4uk6em$;NIZP8es?ew)1Dvzm2m4A&wF z$E!k#q=MyHjPh&n^KczhslzZOn(Zt!4W*?KyGp{~3Qdh*Walw^`GUXcLOAhui z!g;87E7>*sI7?mdM85Pxo%f&|OTt1K6M!%=ioImP+dqQ6n&Vh>O+*cEK2!R`jA0(3 z7z#MU5d*zd>ZP1kv0@^j#&dZ)sK{$kvM_b7O6Nj@YL-bQzO(msx4GBcKTfxQ+uz*V z*-E$GG`D_AU+q__ftN3L_P6n!nCj}cnPuVI{TMW+?f-;5%T2XWl>h6=Q!oG5(7)EYw+S4+>5Xj;CLh{XfoPKN*ac>nt>MLBl!fg81>bw2 zjqe!n|2}D+G&y7xrfsONtv^!M04n+#Y=T_+zYks}%l{ahin~mVZ7#lYd@v=w8W|9z z@=*kN16blFjRUj?BgJENbScK6L70_g8RWA4A)Qo>P{QcOh$;ZmoRb%_LY6wk*JCy7 z8DB}+&+yXAesXxU=~R1T|Hi1A)`PvxUkP(Ui1hj7S%4UA?;P>n8kK%~u)E8_gXEQ) z`Pdvh=WYN&Io%b>DAb7L4XF>5(q|cIBi#0uFF+6!6U*K$zlZ2XCZ8X7RoqMZMxGpUaX7d+5TG^M4zk==@t*C$HB={`s#C z2SCsN>j|#^yYt_d|G4MB%2pMQZuP&d=AQp@(*JE|IX!B`cg9HSxVsT0K!k zbDhpQz3yqTBbpGxoq|{6hZ*JZ^&jKHICFC!_F)D)5qGxHh!3&K!^~vnmYdq@s-N8$ z(;WtUnzUw61ae%mpDa0+`a&e`&{?2A9SX_$m(87H6?udPCbtl|qdz7-X zjy~N|*Nwan7-RjpP-KV*beJ574l`1fPi4$F>@Ygb!^6tb)?nJ}5YrS)Pt+DX8|p=L z`T|v}Wqd|a{6%s$Y+02HwJsY&^e$RsyfYQ$SEEto?J?s+R!25dOKh60CHGyoW)UiHn%GRC8Na!JG4=kXs8RUmt)AMA?U3a}|hyQvK;= z+Uj(mQ)6N5X}suUJ>$ifST{haYK4Sp^+p!RG3PeNgTtDopQLyve$WF5`g_fQ?N-1D=qO(z|sI>(&Z)(=6WfuUCoFx26 z0An58MbDg8IEKhr%LG)8q)dOWbEDE+i++tub!$?Zm>leC)!KV#KSBuw z30p9hgBZ4BhO{R9$I= zzc&BA?x$e?XN~kV+bG!o>yMwVyZis6NAQENGaEde3vO<;2Aq=59Z2wVlw9hSeQe2-3xwarNc6w}_4F8{0Vw_`lJ+`Hesd z>_67wKb!xruRU46f^^UO zEyoUoRH3t3d)OOO+~k9Pl(P!)H&JEWo;+In0I5J$zuS|=Mb~ORoh0X}XG%|D3|DDm zyljmyt>jvb?9VL&ZCR0iqP6z#nB#JD_ccY-`@=FT@l*EqTE4W=8MZ%j^ z%b6Da=c_IPJTd6AkUWR(RXlfwD#|;9b|o;)s(q(YRbCX#*nZ^hJnIjp=NAbK#b9*B zJVI>+;$Gl62HBHW1WEGnA*uQAWlx?waj%_2gVM{+CfwcUA#&CZy6Aktxk&<0l$Qog zO~p(NSj}tHaiMi?AJKDG#kQd)66LrQ?7h=@N~@M~icxv%ncEHNT0*^8s}`Yz#S1Vh zLP_7|@J^4&@ElVM=rgryUgp5sOF6S?$T32Ck6UZcBWvw-Ay^YuHy5H;Lz8PG@U}f2 z(Km7N2ckd^UXP`Rc_`{vbaiOoozUoGWhVZFgKx8MwHWSad9+~VAETj{cmiz)(9ykE z(7g{AjjwB{EC&aw-q&w`m*D@1@G1kjiu#U0>XYxn%QOT;w!N|vey^4xMmh~mmJFL! ze!7gw;>vSPmtLyS?E;SDH;i>OyO^O-y%^6a{SeF=2s!5R)1+=k3S;!pm`5)u;lTx> zLrV9{gJFux8Ft=f@ipwkHOC4xRv(g`x%zMr@rt|DAXpig6CFnoI>y;ORCeWsmzo|EZGAKK4Dm-TSjYyiy9-LNhD(d^J48j0n z^goA_P)OuFPJ*oF-;9&UO+Ug&tj_Lf^F&=*NEvf-MLn*ltD2x3rUn>I)KGRJe9U1EvSzpW zn)ILjycl;o^$sg!s)GYcUoe5-8sh`v2Sbd<*`clF051!0uH3|4AzUlK0F}ZG7}9z!2p~+bo4m5afKhQ|ZFh87yjf zelHoeMy<;Xb8HLSbIZ*~oO}hKl^18d*17NmQO{t8yJuI2P6 z3#%FG3Z5;TuE|rvHzk3UvH!Ym3gCkM|HV0WUxf08Ir z^7h}87}!47w@M3ydbn|`0HEXRiz<001v1WJNK*)dnF?izRFg;pJF~*Fp*R5+gt|z& zwHNBR*67^y5yYR`jW6fM!BXbQ`#+8`=!+pncE7rIpv%3WaCEb-Zzsqx&7J+@L-7I~ zGbK1&)nsBjnhqz-In+;zwgFsXDiYf*EXd#F-uc;d)gxG}MUu$Oa1}!S)j~}hyLMIa z6S$lynk`Jny(}A6IDegmB|+Br2-dwqL(5$1mA+0`kT(hHT7jIo!#B~q{U~)ST6>V+ zYi~kg;i6266fp;pidHTflp19kKUY|;%VBY)$pznC!7Ng99XP5^_XPQ~Qcz#8+qdyz zX~_Y|K6NM7J-pI%$Co1t1QV?=4p6sc_|v$))r)6nV_>7BIU+K_sF-H|$@;(^gw>@S z+ZLlM&l606-P|@zhU&A~^!Ub8)oS=!i7h$e#x{mtSOhMR*&pTlrjC}pSqfb(-HVwu zRqfN28c@T6N3<1>5P?HR`Pnlujg|XqzGNhd2xFJswS4-;TaCPT0z_bqRq{4ACs)_ZhA^{jpz_Qdy4Lt)5PQ999FFs`$p$$X4huQFN+&;xvk*?4Ldi2Y=QX2Hk=akasYCq?pYrzq z^Lv36#s7cw$kYEnd2|>5|5iTVmjBnC+5g?a|7JbF=rGA~*j*; zZ8&?dk)j|HS05S)+4$rdo7o0`j`c15bZm2#otF4LzL-urgOB}&46d&~e&BumnKuMK ze@tPKLc>exQ2bUh5e#-Lm+Wqm6258E|A?DWu>(Kg${Dq>hQ zlTlSpjQxP8=GWe$zv!o|{l|4;02JAOc=6xS{$u@4{=1FOSC;?oOh4|#zAqv6ZEf!E zzTDjU$rJjF7fzUM+!@A2d7&I(=AS4#iI6e4MWGJ2;XG4HU-N|<7JW1ONT9O{ZB`2b2VC8H)7+AG6vsPz&Ge{=6LFM0P98o? z#u@Aio$=x#FX91GFcSGja!Rg~q+pqRx<8zrzRRvKmoWT8^Mb>7+4=ZOA+V)iwct%L^v-OR&M^#3zHAybvAUjS7x@xO~4Pmj>1e4hyLexva zgoqO4*c~2i>Ym7Gw@(7E<-jK*hLJ3>{U)!zdK;_GNtG=SkHRk*LS_Bw`Z5iRfdVCA zj=->93K&2o0CivjP-^C zx=k9uj*1zmVTXnK-r!+tG;6jL!2o5hNr@M zfdm_`(CWdH;Cng?1mK~C8WGyqeA64iwn%@vu*H2+7n5QH#Em57n$JF1NzA>$T6UiZ zJG;PrV?MtTOFKEAcldLH#v ztj<@B_Lsx&#H|9#mHUVsE&a-S`_rfZw3==}o|4|xTHAvKIe&oAG@)Axq^JYOz;&S705 z>;SSv_ob-~s3krxBi0lJEWbqfO_{r=^2d5>a_pP#hI-AzZ(WlYock@X)&;l=)x0|| zp%<_Kdw1h5aQ9}tgzmt`+`TyWuy?NAznFgEyKxd#F{I?5m!`I|!CS|F?VjP4^8NwZ zw!GZ^iLNdd7c{xWHe+D9=5}jdu9MK$xF2a&oBu_reb3ze6<>pS@d`t zx0PZrr)QM{l=b@6aP&;55=7;nXS#BS*@_IbjVgmF#uS;(JB_Z1fc;wHI_F(FQdv$_ zYg=ZfCW#|biv&5=!&d~i3zk&sd<`>4qtB8XhTY1Q+a4~XlA@R3y*p|es0Lcz$VOIP zh>oLNCya*7w`8xQ#1Q@5v^kPtZJ{xNT}zwz=qmP&dSJw)r9f4vdxi8HF@IEhM-YlP zntuBw?@N^8Swf15$bq0+p~mUGh&<&PR=L$IGb~lf3_=EF*^~>!0~Ri28kJgNoYuwM z{$a+4lFgWbp9%~~xC=;4Y);baj!W2V$lI{4h~XA#!~l-QBAVk3>e1}V3*Pzg$0=!*&L07GW%kw}-VCj2S z3Rr66X>A?C^oqppf7@*J;M%F zN_macJ&}=UtklkjHXbfj#%0C`l^Rl`^)SjtECrx1>==b@OArBgZgY^F*|6+g3{68W zU4--YW*=?K1S6!Tj;L8koOv2JrG3jIz7mTqqE%+=3VBE|q;RJX7W)$t0SD!bay*l@ zNjcGtse8i~zl9|1i)H#Wo|B)s+aFFRoG)Xng*4Rv_ouyHJ_(vl<_e&ub+9p`Mtv;= zg+Yf_xFPEq9=fw^XJbIv6yfrwp+*W^tRXM1LW%N%hY8thQ8{^$_|hYGJ$P~xl^QbE zY&h9ntX*MoGpD6^v8j0c~!diK_DpE z;-JUJi`h;9krVHHCxEXm`G0wdzqH6cldLcOxKOZ#e<~H>-^BvH#Oqp}!a?jNFP_KF zd{top8e}G_4zLb!%@sN}ApbRvzk)1l&Ith+@^_upCI3uN51azb^`o$86dnff^Z-5X z4@AafD#-asYbXyGS|gjhoU>zyF)EZCoeB2_p&2Etqq`s?6ZMde(5P-+vE*aAkjqr_ zan`p;a`+d#F4&{brRHw&GwGA%9FZSm)~S)?+?^<0UQl3B>&lZ?*6dpaL-AYE-$y6h zFc^CTwVn@p_iP1|#N-(kIsMpqxlb4KF)(Fu^CC!}|j#5Ykgr6^nmcKdcsxj@HPXrTT1p?%@)`=B(Pr#6oOs2VfzC71-*XKV;Xr@xyV}PQ~{W z<47*~McK8Ei;C~DqQiID)k72lqp&Xcb?3q>5l`M6cX4!LW}pZxjslcKD>+Zeuz?f@ z?^BWY7bJI1fGHB&?jIbdm;{r22gS9jlshqWC1odK7&24Rm{j)NR(wMtv2DuA{C^{ zQ>l&!bU+ATff95Sx_80|1F#JHt(25Efyde`c*yHwFE6LUMBE$%+KOJXQ#LFl9W#}% zOJ=L8l*%J&W&c*?F+JIPAmG6e4Z3oYe}__a=e0|xd~vI@s1jG}b0n>ko&DE9uE)*8 zpEq}v2B;)dbaUwprpW%OtW*!?YV6>6DY*?@*%4m+R`w9`^CY0CT;1?{;Pw^k|}af8a5CUMrc@dB}|D;a~5(u68VrHuRjgZ zuR(IL6uUl|o0jAM7j{OJ=S+Yi`#TT)s26_=3(B@Ak>`uXLrbD(~hqBYmf<`%nH9>3{e% z@J01MkDqL;yYZja*6#E_xAOT`^glpnPA7oC3 zs&u{{Vrp&ks0vk$(}I9#{4#|rddp6z#*?aBA0&=WHUV-)p*^$8)|A+=1%Hp5AR8WU zg6OfWV$z7hBAkNJbsLQCVlCl585R%`>6!uHg=lLGEaf|Nf(0@r`-uvLz68Msj%4CQ z_TK&bNXcPA2NmieXz5?`Es}U?=gh|K^kK?w1-z|4{*rDXm`ew;ZRN%KLVKs zABmt7y^Kwf(zG?cOw%MyWk%LCt)R|jsnzK$e0o$%zWW_&{(=9t2h;xK4`l3r@Be+W zq)R=` z2Vk9c+Y7pXc0s$vPaC?A05<>&MkMf;-q+R00eVmV@W;(4 zhlr{&CEz{!p%|VjeXF4Rx+$I9&lluMFl z$&^tVnw-mlT$I-vq(O*I|0<%FYQZZRvLASZ*YkG5w~fxu8|SS(32 zA^;;qU}YTX#4aB!d0VIQqVu1~ihZp%3iJPNc=;dJ?(Y9@=ku+c|HgyMETLe86uAbT z2uWPT2EIEK-W>|(O$mvtySe{*XCJusZ*QANMn=fMEA>vQ*N;xNwwgyryuViJRjM?^W@P}*Z%9tUH+fj`FtJz-)H`Bn17k^-;w6-`28KfpI-?$7{cRm?;&QY zwT!joi)=KCy!bG5EV)cZSkjUTt+3F@h5x3*L9bU}$3=+d8gd0+2h7XL+Lp~0#Qr8M z&u-Erj!$+1S-R+LUvzt@q@syRIRN%3{ZJ2HYPW!Y6;?KHw@nPRnM0MXiNo(g@e~bU zvgaXS{<|Dtl6*W!ffq$!VA6t6tmolCkvz;)ns0GfU#V?H%vS)DK=Lw7@dQP62I*-Agp^s-r0DQ-fOv;3^2Txq z(5Ujo_Wwfr|3Uw(dwx9yK;ilS=~FNNYEzmYrmpEo2!dD; zS02g$Qclov;hji$Clb!90(i4?w3BXbZKd+e4w%2%d2MI{;w7%*I-qVFJEIR|jM|-K zcH%l-0x43T)JXG-59x6H=TX+i4&o&v(U4bQXM(9Yj0ZordK3mvXaUGtHQu*E{*Qv- zHIM%V{J;Ka{qbY>{QqeE(H;N4jnB8D|Ahwb%zy6K{1-9*DbKb$tzRmJK}Mk zAC;x;6`c3g&Tcc^-`r~^OAldtSZ(*umdvzm>2CAq<}Uo*S8Cz9mDf!IGDOSz;8ti1Upgyx@>U;EX)rL zE91SB6qBzh$1S<^B}P`WQ#QNqQwe7k})p$ zmqgZouTo(1A=|)R$JYct19<3nRnCKF&@3qzbWq(8K2EG;599;+Om?~|6N3eiw}Dv; zOsNYr63~Tv5{QE-wApS=Dyl5WYyzd=YlU4yCVlqAL8J82?%-U=d}!Yw79$c3{8T74 zRDNhSzOqnU^un77hXG@mRFj8+r@ycLQ8j{|QT*A-sNcRETBW*wXjIh1DBLhyPgSH> zpx`ae+6A<_6o^E{xKiD(+Rx4IIuYDH%XrH^aJtbuJUloQgQSST3f&ZLBu@388JH%K zFf_X>Ijiim?Y~LWOiT~D;yXo|fu($gi*3a?jUw(a&&6o??hxMNG2B1c7x^k9`@$Kj z%*hLdw5rTy-fkYh0lIBHSaSRv-Rf4PsYna3AM>Jvp&Y`AYJ!;(@e#BzC2LKThY*eA zyKxQv`#Ub0AV!|K;i4U3C_Fq59w>TSa5pA;7mk|~oFad|+r7a!n|H!pbXHcBDmOOK z6}JwrQrFMbnFc#j;Ta(vEXm6>+&p1dVxD=Z=NMIShrfFOyUWhr&N0RECwk@}+|*zG zO7f(A)IPg}2dk^AW(LQ}WwMMoPA=1-ktYlv%SG(^jZ@~?X%B>9{gQU-aXP*jOnaS_ zs2E;;Xi=2&1bvR{D6u4K$!EEx@-lqkE==3O5l;2(;gHnTE0{iz1n^~oOeVS&0u9^G zCFLeHV(jHayYr%<)wnyjf77rb4o+_bxUnEV_wA2jfAVXsg=?&=Kx1O>h>brGM5{+g zVvMR0Gh3pP5QVM0pnv*#CNJqKFN!FeD-YMJU{eRRLyeHmY3W8-@{)jHyCXZcxg6!1)nlD(+MX4|nI(MOJg1!vSlGEv#@fv<5^cufhj?a^i7a+G#E)Am;8XKQ>@E=la z(B9UWUJfZVpmz{8lBDxPfbAqsmzK=-(NSeb(4(e(+{GpN_Q~E`kPu!ZZqTSwBcB>IWSR;feWR-TA!%zXjfdGgupwXKS^3ZN0YP0EYh_IaMD!zn?h2 zpR#+43Hwp)aqUU%>7tPz3a9=%HGZS)veiXx*RxI+6{n~bj1DBsPwwD|1&=ewCqkYt zIOr|ffhB3o0UA_1bo5exMkp}&z@E_VI_%DP5e!22MaJCS0 zo=qm*PNkZN@|C0Cj#7T8y-434f?)G@XFK`3=_E7kcAkINsU@(K;Y)8?OXv%x5&-~1 zgj!P(amHEi41de^3uaMrHWQF9v+udqY|UyXryiTZBT>mQ{DuPU5IwIcK){L?VY5Kqt~!-Sz? zGGqId_f=v#X3%R9CJ0_t{Yn(ZIaG;t`Qb`3O%c|!DosXLdG$opXll-?C$A2unyRO4 zC|aG)s49Y)EG~2g$v=Z}PK4eFOB>g0^n5|XX{f>rRPwou;mZ#{harDXgeD9LEfiT? zNcZ@?VVaJ?YwU|w6k4+qg0xKeflzyhUshho$mI6@Mg%I2V?I>Tku)XAo#zdmsW4tL z1sT=N;xeoT+Lb2k-o)p(EbdXtwoGfbRIdg7QX&px_s$f{N)SuVHHcAy8q*qkQa_Czfz7;8gO!(@bp zVdj+-sg%tJsJAu1iz-x1s&r$sEn?t`;At3n3>*G{&J8u|8h|;iC{6`MAsI*KT0wx~ zOIz-ISKX{Aq|@y2jUyhNlkvcgOm#_9;65 z3%_{um!I1WsL20kqwe~D*4H+k+@1e#rX3j(BQ>Zo-#`&CR2O{R+o5ty<;RWVq9+Wu_#|k-DcT z5q#Pnbh3tDfL~Jl0nRuiN?;2|$A@?qfeA`QX_!>nW+!9m{_;=V9SSj(zIl7tOkX#T z)5D|9bgv0hynR$fqrYTHrCY&Qm)YcE&>1f!pKAdqTW>b^Uqdkl!1ejF1Oi|G{BYdb zBLI>5gvHyRn!gbWM+N}K0;7u%3NZv;0@0;!n!9hChi2;t;Is?pii@lV^b@I!{d={u zyPN*h+<)ENhp9T;+#@hc7$yVQLN5gb&a-|>Mk;xoKv-{2UN-l)yiOpj;q(+%FYK%B z(baHL2e0ST1KL)vS?a4T3Aq{|G3y9fjjj0wO5 z!SfX*SG+ZXF+qycv(4m+cTg}UNO6U;%`*)kwzpyF2_S-Gr>7Z)_<`dY`j+JZp;-r6-S;X`=nyBLJ%!Xwk$G7xbS!ac|zKnEgjNw_1C0Kn2} z3GlSlghs#x4?L_Cz-?Gy2Zz7;KwW?$-P3I7vZA}h_;N&~SwL?cAMTa{-JXnkGlJgR z-fq4M0QW#&c2qRk5^!I^a2)xR;ll-p-SG^Rak77O^7ie);c@zA^KcskYz{gq+33;%NJ4zRLTmcLbP|OF)Oy(5`Z+?e@D`X{JL`TZ z9zF@_=ooVhIPgqJaK-_qg4}yLMy^r<@KJL=!d3|I7%fJMz@P+7jI+5d_^1Jpc)j46 zXQRQTJld*f1;Ae&Hk(oCOL!+?aO4?b3o$6gTd1vry|>NXrk-~cUlZU{nn~k%7tgg> zF9UMQg(~*_0B1p{V&j)l&|-ja(@l>L4$|Gt!`CqJ2ZtE4_GI@2W&9;_nV1X)2?a){ zQy?Go$N2zXQ>qG}^EV)^13dE9#)%?;=cKX3vml&f0UqjWqwq-HiFH*Zf^++uHy`+5 zcjsmLazC*8Fy;Ur(qHbQb1E;w!kNX3K^np%+}fphsD^Hg_YH9w0|&dQXTavP_W0+B z0YAgQ0PQx@pEq|;93Z&wBMl@OE7)_m+)w)lzbLxW98Pe#cm2V~z8dIU2FHTQtDT>k zIQ6e#yZ%4T!vi@sESQishwaXjKeN#w3T(gmi@f^}uy&I3vX3eRZNdE0K{N)<+$Zo@ zT55IU&La-yHbh#7xZNOBaXv4E2q%Qyoh>3PoYvhP^R&JsWVnRSgvdII0Kv)S@VB?e z2LaSHkVKqP2W8QNb4LlN;-Fa!6}dYdH?iB^A}6SL;v}GOYQ&XUJkw&5H+M0j$!~x% zhzCtMn&wQmdUzXhB_xebEtxQ{i)c78l1Bm>s&g$$ZA^Jp*L#ROl=9BgY zt&Thb!73XEec~)7lrWi4;ToKmG%lzl>Sv!O;tiA;wMJJJCkLn2U76tnER7a=$1EU3 z!c*cHYPsgAxTQPp!V*~vO+xX`LuiiA4EKL?8vz&P z|9tw$wg0WJ!Rx#Gzgzfx1NOgnSATa`e>WQARfudN*ePx=fiSP3LIv_uqgYmG+}w`a zFik1}P~{9Zzp4Yea)yrX=u)ea(ZCT-|H2R#Rdn7?UP&z#Zm8o`962&|r2#=@e!7K8 zW?-9--x#7~v4+;Kq3gh!Ra4*csprP!oq86$ld~b|tG2*%x>E_3hqFbneC#=0Qu%NA z?#bw~d!^)b+qx-o-dPtw4#>d0POyY^S))oE!Ly^i4N~NK58=SFxvQSKmo@5zSP;K# z+Y|Q6?L4Vw=t$|j5LXhI@Tlfd(e@ijMD{y)?hLW<7&ToswQav)D0JG<^n2KZ1Di#_ z-o1`RyY8)wdK|i3Q7@f)67}4^@~|G8Hy73m_X5ItXi^K5+OCDdZ~4a9=5h}P!qAE_A@BeR^=Hp=qcwM@^-atHp%R~ebYQV3KJ(W7XO{E zcT=wdS~RQc0iBq7?`yc+SFX;=eeY_YEJAbjNP3dr3E zQ*)QF0!nzE1Y*301e>`0Un>9G_1r%T^M7EnH!uI&o&D#ne7=G6-(BvvyF=iO9RgF9 zA7OhoBR|+rXH6c~D4pJ^FYfWd5gXr2r}5{{j2|wfY_Zzn#zR=YO(o|L>AO z-R%vx<{RK=?XdDQ!B){3bMSo`*>3`rcp1;jq?0(H%I^2|$4~yCSa_|`2&h6t!-Jc9v9QBAXk3|EQ1l$S#+Sxc-` zRc42*L;%>(gXiXJ3QI{X5)#nbAKaP|gjL4-H?g*2sf$bsWRy}-!yL$oWw=9Ad)T|b zuYIpaQDKpMuTkb0@J9cQke#YRLsnR>=mv2Fxd|_U!D6VS9Cmqk>yjoXizpz>NItM@ z(CL??J&|Gp{x1NiK2)99*^H4@cIi0>RwgK7LX8^6hIN4b zpy6Bl!wXbt6X(q(eVb)|P0DDfL@m@^7&;zteyakBT6io`##=cjRLl(@DxhGI5Yv=Y zX>l)Q9bh2ileJZqJ87r0ld(VrQ8g9~FL{Q0cmF@fr%e98YpQ<=<^M-(>wf;fyZo=W z^7#hzKX`T5%>p^sb18{?h)%l$wTej&T+=m1N06 z(uwMwBufuJv_=nMiBOtA_;)F)s9lM&DWdfG_-=5YVuVX+{75qwJEALYg zQxW&xh!{a5nNh>+upiknQ*V@BK(8QfJy4t&3`;5B5TnQXxS*F+YN zzy1|#RZW1C?wC`5!-y z{0~2#{3UsOqgX^f|Kaj~Wd7UTA&7V5o1uf*=l{w2+Q!}d-^Qn4{xN)m_%1?$&v6r2 z5dUla(T02fx4!n|F8=qee7@}Ye}({Hh7AY@1n*?69-a&7Z2oc78g@qA4|ghpI~Bpq zDuRd0H~AqMl;|YD9L1!S(t8~>wOOe+|O7`2;)ratZOIIvH zl^2vEjk36THJiYT68@fE4muer2l~SOatc2-)-i!Cy~DeygLDh+Uz>ER0pr%bNGezy z6&7twW4gbyowl-ZT3`Pm&Dy8W+{b@g4?SLg{KS1czI-GeEvV+3TQBjBNL~SX4Yp6) zp#}qwu|elCHpq{3gIh1R@*A9tf(`nQsX_ZOHAs()29FPO8~ijGhamG~4d&P5qaYY; za&UGEkgVbdudH!}(|T*#n>^#hl%(oe>QfZ@q%-J$4+O*^Q;;hHEs5o{iuo$(WF5Su z13_tuy#6zn{a5ni%F3gal^6K$ z5BM)XT6uJOHG#ch1t0xOmQ4~9mUxsTZ3ao-|3w>{n|~b1HBGx8(#arImM&CDXl;;& zf51@9-4A{WO$lElujC450rV%@`8nM>IKebn>Dz-N-1O0}W*ygntpBg)N%zC=;lh73 zbh#gYe4hM3RtUZ93})q`3x9ub;aIwyY9)dL=67X_2F`YmYV7)#YHHnUYW+(!wc$0j zVbCOl6jTY2+9Q&w)l61k4XvDZC)5a%ds}JBOr{5m4~YiqR}_H=5Vb_JJ(~-nty297 z&O2skfJL*iLbfe!H1QF&fA9Z6kJK;B<1U)0wz>3+7jnG#{GkR+HPjEP~?#)f&-kif3H6Yl&L?#o=-j!16o`#g4WZs)pjkBJzIGJ{F?)VP6qIUzrc{x z01BsMRqvcQ zRB-F8GRmFbH~y%?JSQ7<#tJy;0FEdZmlUrG9wQ;(91wX}3xgp{e_#6p0X*3V0(gQc znvIeG#rXB(kCUcEL~AHGl?5;*sOhkS!E7|d(25ZYeLOw&7P`M3$OTSzL~UL-{$e-RIuKGl`7ikI z85>YJ>)yO2s8)=Z50EbPRvE zQ=k+aWV25&)Ue^;^>0mnsd|zn903SZtG6~7Se1_&iOar`(?xceFwRC3J{oX@c*d+p zQ#sVm!ZM#0-U9M{m$r<{)>Vo+g|pt^W2O1?TjAE2ZXN#$3j%4Na6>Vv;Ufl)_DI6n zW2Pf=197N^Z0&N+z&3Iz2&ffAfo$qvb`($kfB&EVKSx6o)A9iLM)pA@oBx0Rpa1(I zEM;iZ#S|(BkT*F{zelj-Zw6Qu(;k?0zn>9-)Z}t133z4g(<|{g0Sa}2{pfW-n4ub3 z%fv{sG=$Ux#3JW9(co8w>8Oqb<=Po@E~2lkp8evV^7{WT7XRnznrr{JzV_tNo&Ddf ze7=(Y-%^Acs{cEs|DDqR-$m)adhzXR`=xaxY8Yhj25lDUJoQtkuxiYZ~I&6(fTh~okDVgh$9yi zi9rceO|U91J2=Q>)*BzzoAo0V+7n=TH54qb6~tbqdN1lk{8c*fGsdIhgif=qNsH3> zO=)ypK^ThwAf*e`??FiB#t?90Q7JW+-(^?p#%~O?x-R^@4Amo^T+Jt1bI~x>>{9u# z_}RkP?~fuA7BFE@y(c&fywi~`wf=|eE!ANP+iNPv+f9n1C7&G z^ydY>#{ie&#S5xNrg-upMJR{af@!7|4`TCR+Uq2gCl59Ziuz7jN*^TL2BRc&y=GtK zEQ>^>G+^>0j*tyWbMi<@hITa4@Z4EKiL-L_G>8uz1RAOZR9zUS4Zk$1K55=XX;OuX zfks{^M~2!$2=QW|}Ry0F|eSEXu0FHI9md1DrMLDwSQ^UfgEdICuWodL)gS<=30!%oSs zRcD1StopDzh0;;NeD*r51t&VDNazWOQSUNZAsC1+Q3V${{iN|(9)BbjK+Ho8^xFY# z&op-E+lj-+ang~p@SK^PW+)<(@O2bw^DJw@NfG3Y1(QEvi-xKW*{9Eqph&89Ae=%t z%+=IN_f!&%#l!LuTk-97ys_Lwgrk<_g&ah69D= zj=aQW#h!QwhXJV?lB32oE8n``|-G@Ij*nfWP z%ozqIU;ndSe_VIG8IPv!d!9t@OTZJhSAkH*VNP@+$SK%akSDP?2>I7y`jbR}|1iIYOc6dhggx-eL% zs(;FhPP?8PS|n6z<%KwetO9?#e?PI`(XnIobhJ7hkN6%i@*cZdiPxB`kdPZyoLX2eSpSuI)SK_>_zv(SDc6sc@y!$?t;__du<{NhlIJ>=f&G!m}M84 z48>G#?a97hQr_2!h{_ZwTa^KSf@_neQh3BK*)ZwgE|LP$q=;K{H38C21?JZRPMOj3 z5n7Cq54X(GgJ3r3XL{Ou*NE1jq>HKovAo>!-NAj0rc zVJ4217g$N{q+)w;t6ID!Z)|ecmb(FlrrvHVLI^ZSx%*<;!KCb%p3i+t%*uz^I-*pJ&l9aybILHeD!PUD zl7J1Zqdg2pgf8bXAo6T+ffZLd5{bjK7i}J+xi#5fX)qLh!2napUWo}y9jB0MfqQ$i zYA#t>t`X8zE*m2n9_p~L!|G8xjGb~}fHMNVqzv3jFFl~6mgxBs4U!xsN}92`vm2ap zra^R{z)gg%7ai>`ysK*3WIeyo+fvS^Pc1yyJWGDrmY0U?n-XeA`1SN?D^!<$W!=A84wYJAuI^it|U{$>~H~f5=_* zp0$ZOQzx+-YvaIo*;TM^aXu3o9zuYbU1s2KC#70i}3h~5-nV@N3uEfrBl4Z;K{_Kk| zGE2;oQD1}UW>u1J;v_Mw%1L}aH!c+H9Kdn$R?4x)X>y?ewq{#63r1dDhv3B~fCE09 ziU9{o&mHcX*n=zsPBCE8hO@*5$HSAeZ&+Idc26!#hcQ#i&2aY&=-9pZ-WHnp;NJP! zKgc_f%WZeoLJH2K(@SGD8GZHEQ}p~8+S?>!>tsEX=Y}c<4t|Pz=bl^D+&?0b5*)t*V+*kpN>?BaWSv1q3HfO7*?RMs<%w|9{SFA=ST5#Wc zTCX%0ZwUeQ&ZMTwz>z-D@`0%uHNRz7BZun6D7_%(G$|L5@VuFfuGsm{@E9n$aA_Cp z3`|+W-~Vh`qjlcu_MZ{&F~lNe%@L6~90^GrR%(on*oP1z%nfu;NE~{lQDdU(FHeqs z!=y^G(}&?kRMFmGQ4MIw z3&c9S_RU|G`Hzy7jRjrgNR*N3#8R(d<4AgikSJ_KT+NVWT837c8<>G@FRt;;qW10n97ZKJ>#Oel+ z5|(YDHGr};^kl|GFfXOgG5A4mO!BuZTq+F6otqkku#c_}7$apt=Zuq8w4zE$J4g;^ zcs4;emZ!5#mh6#+g)dv54F1FKysNPlX@Ci%x4gKJEGPSe2^_-N3{I?G)IjtG?RQDL z)kj-7{dmxCqg5PK6PLTa)_7vPALG3@UYEDv&FDOHA!5~s%rivaa2xP2M@HdxQmPd%MUDa;6w6!A??R(Vo2G|blShAG0Ph=DG7dUOP={YGuVG|45&HUDDeN= zc>LIn|5txnU%Rvax{c4*vHudh!1jNZ>c)waC(gIW?U5z&3cf&?N2`sNVkzW*nv1xudwuBv7i-V@qWliu6hsPlC zIj6aHFKhLu!%&N%T7qMwLhznF2u2W-3wE?Y&%-dpJU>O?Oe2-=&IPVDfECNvX4#6r zqt0fh(=!f_V?99~1x1~Q?|kkGH6vsE++;h-*W%j~5@)mjpDzSNk^Hw&f8yEyKf06u zZsqe0$$xhq0Cy7MznerzOmWsQ5Jg0Olb?uW_{(-gE~FPZQepN9P-V@`OeXI)XrDWe zKxV&l>!;>nL;}=rbHqU9RcU)eN{>jg^p*fIO9us*+Im@AT-bWKg@2DRd+4vnM;N{9 z)ytZW)g^0f?!KnrTzik8$Yv7@Zqwhrbc4QpZhV>euD)6*mYF2Cq?tb=6r!YT)b&tg zkDNHpf#M|trH7EbcIf0g+3Xwt%zFPjPXv&H_#YdO*Zlk6wLAUat$ejHdo>iL> zozFE32&dY*9uSe3>zbHw8n5ej=h{F-im)5#&SZ20-MKChk*w_c-2tKe`j}h`h{!{C zO#s&!3!V1vdNAf&E}t8w19>6ONHJ&yu#K0y2U|bknfD05R|>0D8;V~U<|$5d#v6k@ z1^E*mXN?Cj4y20lgBXvI#l(Xc7cm>f7_$*RVK(X)Q=GtTGyqMmb*s_ID7KodM!jNc zy;_a>(Bz6V8-)k4HD^K-#k^&OWyFurqEW9cWXvTYOTh0C!OPcT-tx%Vp|3Ke>{Kzx zIA(&Ry~Khl7ssrL%x1y{Pkjy$gX!A(y=p+q6E(+@zI0tDU6pUI9uf+=f2;x!v|lG! z+S{vCRm18{r=)uD0Mo0L<1J*GFYV7ymrWo!#>}L9|1?QuW3Hicf%C^f4gKNXF2+PJjJ#6rCFV;E1FD@9P5>jDS z9an8*S@88cdweLBEC&xudu#k{AzGm|KchiJ?EdLOC1O>|J zUerU`49FJ5i6gUp)O!(PZv>pe{(SIB2q5(b#A*~J0ZSooOIrc*EIBZUDrr%E#|$M3 zWGlF|yTGvj6v~ompKO7N2RSW{{Y7ees~TOx5n;Y+fPgkHXps>^*Tlzg$PgR(GuvCw z)VAa6E?t`~hj%BO9tPvCnNVDo>Cz@|N7@_*Dgr@vq%8 zys*TFl+%ymu{QTNU+y+RpqpN@qitoW`(de8K#ZaHd@&{Yr@WlH-Hk#IhhSe=6jwXP zZ{s0a&D%T*2_#AiH!j6Tg&bRs_oB{Nl#=}GUrEIZ)Q1m@AcWOwXe^2-bpEOQLYscR zOg6U|P*M&sH&0~7$bg)U9RNQ6ZU`%@Z3iZD`f)9mti|0BThyeLT)*f@84bK`LiO%qV;Yq=&l^Q2* zqrh^UHfX>pnDi5r(^S4Uc#T1y|`Gh!w1aedEVr2ytC%^ghGL)!U#8MIGY~5{d&?th4#|Xa0iPMlF=p0m9 zh`>hFFe2~}iBVJ0^z_%2zZMpF9^9>MdMQVOHAvG-(hNncpuA+#UTmD_IN$ag$!`P| z7*U|?W1Ag8v;doJia=0O({vAeCLZokJjPFzP`o=ho|#XjUhry|anv#AJqEa|g_e%foaBUm z@8_tj0)sznbvoVtc?8upwWFEcJ0a7$NEJ1<_w~5R(Ul_`?FmCJ(-$ABSKWTA7aw(j z7lukwc-`j-75Lz!jz$CC*un!St0oVgD`F_UZ+saS-8hvJnTiH>qL;Wiq`!or?Z_ zV{|I8`qt?5Yn$=S{V8w%IcM^>zZBVjKHhlr#I^rid-C}4o&D!+e7>;#=d2mvWQ5B* z>(4vu&u`ZHa}L8#gP?B|zesMkIqfz>Y1;gZarsuGK;`XsH=F5gzRYqhJf`#CwB73U zPFrET%yQWWn6;uplh*hh#}>3*q1-5%m|hNugcHm;xthEEvwyKussw~;C>c;v^txD@Qi7@`B>TbQt ztL)$;%Cod9jpOPel#dUKP!?5vjB~3hBf5GB;rv#mVO^-|ugAhU@LvYFlcVE#d2 zI4Tm}6So(o;R%4s7H_uER2F`@gkvJ{YIpOsG(Al>kM`?fpwjR!gwDaM7%eM$9KIN3i=DtQ)xxazCbMcc~oU4QVgFZE-X3H^5qqF@p(k1(EyrLUjJ6>ZnT z@wRK(PvoLwX7$SuFZAF=Qea(_bQx9%>M(jaZ9c%#bzGUViMpNF{ZrFjsAm8Awh` z$wqP>AL$5SmXK61o#Oa4wFD!l4^Sk8vE;8oSL89p2O>E~nySkAq=y{-+`P((8n9X{ z%CS`qNIJeg_xs#Q*wp5)w=WzE{f>DcEe&nq| zrD|mhLK&9cwSHY($YYcGDh$m;-0QJgvecjUdYmRh--|8PbOtAp7eJ(LV&yIzrsSf@)q70MQMU*BsGfO#Fn}`6iE@j*mdrrHH_g&vn%<@VbF{sjn9sH z9hss~+LAJ};xwzLhRiy`^P|a4+`&_(%T~XWU}{a5{t7IxjXrV~%(y`qMIjM(*Jdqj zHChP+l88DbhC`wNqj8YR6V1O8uQl<0bN4mnI9URQKOGJSqlp>k37S>I=H&v?7dVQk z-@l)PFoE-(xV(9oAoGOZ$=l7t%{_}iEP#n~NoZ1v$UdRK$QMi3&|L7kHIvHC z1V!jbD$;@{S{nmC?JFa;@Sg6Q7dWJV(%XZ))qrE=RtgrXD(iiUH>UHtq2Yc?*X7DJ z8-23{4GS0Tqlgux_PlFb-Wi^7p1ZC2W|6?Gm4R)Kw{S;@U9_BiFl>kR+Dx9qh*bD& zUv)6HJyYW*+sgAGWKggOI6Twdp!PYqost=1YGCafBy%*?T#Z57GuTwlqc^9EDd7T1 z(>JHLiSI;U`6xPul6)W}ccYMbq-i>C*qzAZ-@T&qpWT|Q2D5yYjk5m4x0TIl_$xRr zW^Gem4SF*~MkuaR&Gmig(9w4d@oekm)-zw^ zC`xb|KZ4smToJcA)kcDXib@&ZM+=bplNIy{g~KLrR`tc!k z-JkhNQC8F{9xEO-uu--<8eeqJCds44pp7?%u5`2=PMa~S?~3>Afs5SzWbM-#@WSt) z!;Lvc0ZySl0jSgQW>avt5^`MB=zON}vj)(J{b}ff7jAK^KD*;}@QM~ult7JhpD|>H zzS~M#>x!n4a-5)+x-OA{4WTvdO`e%9nYi4af7b#2*Z&@O6Vha?TI^l$1QU|&Aj3>o zYo*1WM50Dqv^ves2BS>HQw7pLEo9fI2AM#uWanoxG9pbChMN)g%4mEv7-l0fL-O=4 zK8w;hkYgGcV0KX@q+%yFH;<-DUh#Ix;J)eNZK;D?Jl#bXac>AN#oSYlKEk@iVyTjI zJTGE*XXtZgQ$Wlw8)shmpCOS+_cQ68hUSd8*o=o{yLg(Jkp~rqv-+OBSwCWGX7ka1 z{kXDHf3n=?5CtnMFX)N=j6N^ilJJB8thgU6$XrNQq<{UA5`(kuXe@i?m0|$Ka2Rjc znh(LiFkZIaWeK53T+A6+cCI4BPk5oYU#rs@0Sg{X;cO^VOCvm4AjJX?1Xo4;U7{CXYDQUG_)ZYW9XAAkTK9(XkQ%>^wZvufMFB20426&NSf0t8 ztIQHTL}uK>G}>zb6SxCk!6amEJh^D~@nD?2pSF5P*MDZCf!l8wdvvI6oo7egKeHE{ z=cbKD%@i@jWz$OLei2G9?u#@36xcnA{z!p=gTE4 zVhU3b$txkgEw6is_!bw~(18xSlIT9vEB6fx2Es=CUIh}Bid@{YD9yICmXKBrRc(d9 zFJNG%!_=@$P5XlhnoHA$j_pA&pNIR(YlLbgROx z{X;ey8R6vw{{h-%n8Vf-PA2#iI$}^jjYlUvI^H~nK|Am8olr<%w`y z-z1tu0(}LmcYJZrupddj8&aS+gLHV!Q#1e}0kp5$=nlY}Jq!EKC@KYqr}!YWT+Cos zZIzCzkTGf0*VqOGLWxv}Ljh45I%8gY$amoRl5Rkc+bEZ{V2x7qGlTy4R?MBE0riZ0 zXVxAqw<;W0v1(*7y^+LDG0*d}uDKgs&CIyA5Sa7OInX}TTEw{!Pe12otCRa{Jn5ZN z!`e?xZLPa$+Gw~b?0h_~yQ0c2so((TEUE=L?Rk1a=d@391x1Ar=YI3JKl2IjMyx08 z1t2Z#+I{&e|C%LCY-l@#ks8SNg>EdxwIy#S$D2n#iKPrBIYZy1b?$((RlV0-NB;Vy z0l)T&nqfg1(PeRTUnF~*zotjc{q6Ml@V9hp|CpDGP!s6|DAt^|Gq%w|3`hhCDzn%S z+gzO>GpziwodP``{braI2qE$#oM#}~I0<3`DLLc@9g=5?U`Qdx z5=s#l+LACv4_-GRV0wT8!#(K&E(dCje@HbO%jOF()DIrGVvaWsP7on@9=vPPqVh*J z=5a$k6*;Bz2*If|9S(Xu_6>tk3NF$bEgDl~x6tTxXn9HDDX-<(*vfUSy=CaOoD1<6 ziM$TC4xCoRyL5MFZ|4{~8;{OZ3unlnh+iy7qV2cSM*aj9qzAK)3QmMRoE9VG6Zv+2 z0I3$xmjG^VmcEeNL9RHYgCLc=doO2{T}!M`k2O0cTO${Y4*AD=in)Loc2)odf5pMv z%tiZbI;OUc{AdSjilfK+o98&C&Qp5mU5!3R;VFCzDu65&gZ-_f&{DxXoLqW>Dzx;DfmJlWvunE-YsTH>?rNxxu`uIQ<-)&7ZLm%5J#=AjBr2! z&f*=7^wfyy0Jtm#lJZ)}89o?}Y1lRNh|Sao zcq$ma4EPwcfmpQLf0j!QmO*7aiFmlSYr1OFkT9VP?LA)LMSGfNnH)2BR7gw-Sm_iS zkIdy@R^DpsR_&R*_`27LtIJlaffsNnjl2<8p%UZZouXFu#;zQL_P_I*{}wc&t$)dY zwzTc z15+y`&^z(2XmqVK8VU}(HF=wC)m(>`3W7P$D4UWt?h6r+B8WNKo9e(i|CS$10W)n+@Z%T?WQ!I|l|w!YBa-3g&=;O}_*T zw&!z+)(Au@g$qHj&HdLq`^{uIliC;)y=BEV=@o)lUdAXX z?E4_+`egs)sJUIC+q5v<+ddBnK_52n-%l#;7D1j6*j>D*t-3OXOpQglZO*48gkod2 zF?@~}TnfySN**pJ`vV==P1byoh$^k5*Bz5*yqJNEa&(Q8)m5Ew%I%I^(^SyHjK?Ar ziN-*)FszNh{YC>tXia=+PP7oi*V2SArELH@=djlhL- zN>$-+BW5VqKXS+j8PveEE26PP#jw->3aS2YQHOBa6UT zy*=37P3h+CnLLp>vqHUjUt>3JB9W0axg+JBhM*-kDJXh|K7w3nIQd}cL~dp~I=zR| zZ?S<&G8uHHJ$7K!E7&;1lUdz+>@DCv=vC;H7v_y*pEJtN#VmKx8RV?h&Jrk)NedQu z4||RniS&%@TfB?wS`ICk$ISY_b-ZWy6N&%a>7Hlf$@t-ow1H8cpFVvYiT_L=JN|S1 z$$EY5FUjK@X}#d{A0Gd?VE%DQi0>Hvb-obb`SHJDvLCtezv~;1AKk_OzKzcpj{iMZ z^lu93n{+Zbr1a0(i1g#AHSECtpWTH7zY7UIYe;ZAn6<&q0)d`Cb}swpqlZ$yN;&`P z{86aqk9xg`it_(`(mZLVZx0T3(>Kk{?er*F=2L|1g_e?3Oh$g?2-eUcS*4$SG_Oc> zGuxZTo9X_+b`zUnX_JK_0g(i7fOXjsmngVg z+^B;hVM~NlV%KwZ?V(bJgJ~btF!nq0-dH^ytxm@y7NH~W>GT+{TT4Xe ztFg98`i>&z-Aac`qS44#>w~=Xi=$@sLMjQoRuPCZ|0=KhEw7HU^eOcp<;Yg{+zw$D zD66#nL9(_^bo@Rs&ZQ!b86NNK+j2DrW;SWF1x_NJi`8O`hPY8qrVSH9Khx9RyGFDI z&cCieEF-skckrPFLpKz4I+ygTp!~FN*P!3=Iza7E*gUJNjYP0%x2m;P^TsB3fo<=+ zZXO+{r0OI$yAT1`jfIGTCt)yTi-|sFQnE};wEGjS#JmN2TV3&@ss;OkrDp03uVd&3 ze`&BoEV@AsaKpozAipI86ms0UJpGCe3hGK?F;<{GdW~pZrIoOXFA86voc+}0n$`lh z%^a?^wIdr0tF;0H=IXWW>{6?FguSI%Wx*23Kqq<2-wz z5E)|-0_5Q2Frke7xfr~wGO8;tkj0%h1Yw}~n|*5Gx#$^LtM6?@c#H@Q`U}NsI7r1} z**`ek+uV&*X`doKN-KC;H6_UQsaNZx9Aj05^=`ThsuS-AnhLK}2`{urKT35hc?5{P z2uqVoz#Qh)MH{?h+?l_Fhqr(FEUQH>cEwP`;uG8St$V#odz3=9=sY?q>I0U$7v7*H zR}mW*cA8EKXQKh{LzUP$LQbKq?@yYv;I$1~RWJlvyfLiGi8($;ER<#(z;TIAif-x@ zvrqupo&$hp*zlTEDvZ&{DR(M{8`e(lVAsSBVO_6T7ePha(&B>TC(Z~sI|6kwhm~7g z+j4rg=}^Q>4-J3;-7&*+cbfoV1oyGe{=v|JTy6)l)>&|-fAFqqc&q zXL8a|#lT@m@#NgooLIER75Q9583O8w?&jgjkrO%tawsi1Ieeqm;BS-B6@|nKnm*)D z9iL_f<|g8ENP81$owvGu@7}B<_v_%~csrl+%p-IRE31IxS;%P*&)urqKR!<$i?Fot zEP0$vx|iA5Vne!%r_=EjrHX-))D_8!BslhzV?mb+5MME3)B3~4T>YLM9K((N5Z`{? z_3AiLmLmxih|tT*SbHqS&nFVbjzD}-tavH;q>7U4>l;0Acr`_`*m!FfE!>GdQJ^(h zi5-VU;&ma&z1rE|1cvcnFb_CM&wvV06b_86>u6n47@uSOkQOg8ptDww&QWxrl5vj2 z%&dxhyBxbH=eVW^;yL%xi6~}_s1*z@Iu|u}68Pp{MW%Fy%$nokL1R-b>9y}h$<&Yx zSL@5xCxhhqop+|?)Y6L!3EE4c!}}4rMGEf_Jcgj5aMEt|F=&^5Jm|NxRjMWw=DpT< zV!R*YT>@S~wBXI?JaZvpRbgc%-Q9uZcqrqfxcw958!C^4Tfl>2T$?*f>vL4U?M#

RC^Ws7$-N6IFO(M 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 literal 0 HcmV?d00001 diff --git a/uadk_engine.spec b/uadk_engine.spec index c72bf53..3cdd1c1 100644 --- a/uadk_engine.spec +++ b/uadk_engine.spec @@ -1,6 +1,6 @@ Name: uadk_engine Summary: UADK Accelerator Engine -Version: 1.2.0 +Version: 1.3.0 Release: 1 License: Apache-2.0 Source: %{name}-%{version}.tar.gz @@ -9,24 +9,18 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root Prefix: /usr/local/lib/engines-1.1 Conflicts: %{name} < %{version}-%{release} Provides: %{name} = %{version}-%{release} -BuildRequires: libwd >= 2.3.21 -BuildRequires: compat-openssl11-devel sed autoconf automake libtool +BuildRequires: libwd >= 2.6.0 +BuildRequires: compat-openssl11-devel sed autoconf automake libtool numactl-devel ExclusiveArch: aarch64 -Patch0001: 0001-readme-export-PKG_CONFIG_PATH-on-openEuler.patch -Patch0002: 0002-uadk_engine-use-calloc-to-replace-malloc-memset.patch -Patch0003: 0003-v1-some-code-clean.patch -Patch0004: 0004-v1-fix-implicit-declaration-of-function-OPENSSL_call.patch -Patch0005: 0005-uadk-build-uadk_engine-only-if-openssl-1.1.patch -Patch0006: 0006-uadk-support-openssl-3.0.patch -Patch0007: 0007-README-update-openssl-3.0.patch -Patch0008: 0008-cipher-fix-double-free-error.patch -Patch0009: 0009-cipher-fix-set-key-error.patch -Patch0010: 0010-cipher-fix-async-hardware-computing-error.patch +Patch0001: 0001-v1-dh-add-iova_map-and-iova_unmap-ops.patch +Patch0002: 0002-uadk_util-fix-clang-build-error.patch +Patch0003: 0003-uadk_engine-add-secure-compilation-option.patch %description This package contains the UADK Accelerator Engine +%global debug_package %{nil} %prep %autosetup -n %{name} -p1 @@ -72,6 +66,9 @@ fi /sbin/ldconfig %changelog +* Mon Jan 22 2024 Zhangfei Gao 1.3.0-1 +- uadk_eingine: update to 1.3.0 + * Tue Aug 22 2023 JiangShui Yang 1.2.0-1 - Backport uadk engine patch form v1.0.1 to 1.2.0