From a8e0c180f5a24bcff7d9b73ea62abeb223ca2939 Mon Sep 17 00:00:00 2001 From: Karen Xie <karenx@xilinx.com> Date: Wed, 12 Dec 2018 10:05:35 -0800 Subject: [PATCH] QDMA Reference Drivers 2018.3 release --- QDMA/DPDK/RELEASE.txt | 42 + .../DPDK/docs/DPDK_qdma_driver_user_guide.pdf | Bin 0 -> 601852 bytes QDMA/DPDK/drivers/net/qdma/Makefile | 78 + QDMA/DPDK/drivers/net/qdma/qdma.h | 488 ++++ QDMA/DPDK/drivers/net/qdma/qdma_common.c | 1380 ++++++++++ QDMA/DPDK/drivers/net/qdma/qdma_devops.c | 1447 ++++++++++ QDMA/DPDK/drivers/net/qdma/qdma_ethdev.c | 966 +++++++ QDMA/DPDK/drivers/net/qdma/qdma_export.h | 68 + QDMA/DPDK/drivers/net/qdma/qdma_regs.h | 367 +++ QDMA/DPDK/drivers/net/qdma/qdma_rxtx.c | 814 ++++++ QDMA/DPDK/drivers/net/qdma/qdma_user.h | 77 + QDMA/DPDK/drivers/net/qdma/qdma_vf_ethdev.c | 968 +++++++ QDMA/DPDK/drivers/net/qdma/qdma_xdebug.c | 1113 ++++++++ .../drivers/net/qdma/rte_pmd_qdma_version.map | 3 + QDMA/DPDK/drivers/net/qdma/version.h | 51 + QDMA/DPDK/examples/qdma_testapp/Makefile | 55 + QDMA/DPDK/examples/qdma_testapp/commands.c | 1532 +++++++++++ QDMA/DPDK/examples/qdma_testapp/commands.h | 38 + .../examples/qdma_testapp/parse_obj_list.c | 196 ++ .../examples/qdma_testapp/parse_obj_list.h | 146 + QDMA/DPDK/examples/qdma_testapp/pcierw.c | 56 + QDMA/DPDK/examples/qdma_testapp/pcierw.h | 42 + QDMA/DPDK/examples/qdma_testapp/qdma_regs.h | 235 ++ QDMA/DPDK/examples/qdma_testapp/testapp.c | 795 ++++++ QDMA/DPDK/examples/qdma_testapp/testapp.h | 86 + ....7-Patch-to-add-Jumbo-packet-support.patch | 302 ++ QDMA/DPDK/tools/README.txt | 7 + LICENSE => QDMA/linux-kernel/COPYING | 39 +- QDMA/linux-kernel/LICENSE | 30 + QDMA/linux-kernel/Makefile | 307 +++ QDMA/linux-kernel/README | 1 + QDMA/linux-kernel/RELEASE | 72 + QDMA/linux-kernel/docs/Doxyfile | 2443 +++++++++++++++++ QDMA/linux-kernel/docs/QDMA_Driver_APIs.pdf | Bin 0 -> 660344 bytes QDMA/linux-kernel/docs/README | 267 ++ QDMA/linux-kernel/docs/dmactl.8.gz | Bin 0 -> 2164 bytes .../docs/linux_qdma_driver_user_guide.pdf | Bin 0 -> 924396 bytes QDMA/linux-kernel/drv/.cache.mk | 63 + QDMA/linux-kernel/drv/Makefile | 83 + QDMA/linux-kernel/drv/cdev.c | 800 ++++++ QDMA/linux-kernel/drv/cdev.h | 182 ++ QDMA/linux-kernel/drv/nl.c | 1862 +++++++++++++ QDMA/linux-kernel/drv/nl.h | 45 + QDMA/linux-kernel/drv/pci_ids.h | 253 ++ QDMA/linux-kernel/drv/qdma_mod.c | 2257 +++++++++++++++ QDMA/linux-kernel/drv/qdma_mod.h | 215 ++ QDMA/linux-kernel/drv/version.h | 40 + QDMA/linux-kernel/etc/30-qdma.rules | 3 + QDMA/linux-kernel/include/qdma_nl.h | 406 +++ QDMA/linux-kernel/include/xdev_regs.h | 240 ++ QDMA/linux-kernel/libqdma/Makefile | 47 + QDMA/linux-kernel/libqdma/libqdma_config.c | 572 ++++ QDMA/linux-kernel/libqdma/libqdma_config.h | 301 ++ QDMA/linux-kernel/libqdma/libqdma_export.c | 2037 ++++++++++++++ QDMA/linux-kernel/libqdma/libqdma_export.h | 1228 +++++++++ QDMA/linux-kernel/libqdma/qdma_compat.h | 97 + QDMA/linux-kernel/libqdma/qdma_context.c | 909 ++++++ QDMA/linux-kernel/libqdma/qdma_context.h | 198 ++ QDMA/linux-kernel/libqdma/qdma_debugfs.c | 74 + QDMA/linux-kernel/libqdma/qdma_debugfs.h | 52 + QDMA/linux-kernel/libqdma/qdma_debugfs_dev.c | 655 +++++ QDMA/linux-kernel/libqdma/qdma_debugfs_dev.h | 29 + .../linux-kernel/libqdma/qdma_debugfs_queue.c | 1190 ++++++++ .../linux-kernel/libqdma/qdma_debugfs_queue.h | 33 + QDMA/linux-kernel/libqdma/qdma_descq.c | 1602 +++++++++++ QDMA/linux-kernel/libqdma/qdma_descq.h | 554 ++++ QDMA/linux-kernel/libqdma/qdma_device.c | 584 ++++ QDMA/linux-kernel/libqdma/qdma_device.h | 276 ++ QDMA/linux-kernel/libqdma/qdma_intr.c | 1007 +++++++ QDMA/linux-kernel/libqdma/qdma_intr.h | 217 ++ QDMA/linux-kernel/libqdma/qdma_mbox.c | 762 +++++ QDMA/linux-kernel/libqdma/qdma_mbox.h | 415 +++ QDMA/linux-kernel/libqdma/qdma_qconf_mgr.c | 608 ++++ QDMA/linux-kernel/libqdma/qdma_qconf_mgr.h | 217 ++ QDMA/linux-kernel/libqdma/qdma_regs.c | 1109 ++++++++ QDMA/linux-kernel/libqdma/qdma_regs.h | 1006 +++++++ QDMA/linux-kernel/libqdma/qdma_sriov.c | 213 ++ QDMA/linux-kernel/libqdma/qdma_st_c2h.c | 699 +++++ QDMA/linux-kernel/libqdma/qdma_st_c2h.h | 232 ++ QDMA/linux-kernel/libqdma/qdma_thread.c | 236 ++ QDMA/linux-kernel/libqdma/qdma_thread.h | 76 + QDMA/linux-kernel/libqdma/thread.c | 193 ++ QDMA/linux-kernel/libqdma/thread.h | 145 + QDMA/linux-kernel/libqdma/version.h | 33 + QDMA/linux-kernel/libqdma/xdev.c | 1017 +++++++ QDMA/linux-kernel/libqdma/xdev.h | 531 ++++ QDMA/linux-kernel/make/common_flags.mk | 9 + QDMA/linux-kernel/make/distro_check.mk | 86 + QDMA/linux-kernel/make/kernel_check.mk | 332 +++ .../scripts/datafile_16bit_pattern.bin | Bin 0 -> 262144 bytes .../scripts/qdma_run_stress_test.sh | 678 +++++ .../scripts/qdma_run_test_mm_vf.sh | 142 + QDMA/linux-kernel/scripts/qdma_run_test_pf.sh | 453 +++ .../scripts/qdma_run_test_st_vf.sh | 209 ++ QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh | 82 + QDMA/linux-kernel/scripts/stress_test_top.sh | 75 + QDMA/linux-kernel/tools/Makefile | 21 + QDMA/linux-kernel/tools/aio_example.aio | 178 ++ QDMA/linux-kernel/tools/aioutility.c | 950 +++++++ QDMA/linux-kernel/tools/aioutility.h | 110 + .../tools/config/dmautils_config/mm-bi.zip | Bin 0 -> 18447 bytes .../tools/config/dmautils_config/mm-c2h.zip | Bin 0 -> 18719 bytes .../tools/config/dmautils_config/mm-h2c.zip | Bin 0 -> 17146 bytes .../tools/config/dmautils_config/st-bi.zip | Bin 0 -> 90077 bytes .../config/dmautils_config/st-c2h-pfetch1.zip | Bin 0 -> 102427 bytes .../tools/config/dmautils_config/st-h2c.zip | Bin 0 -> 83913 bytes QDMA/linux-kernel/tools/dma_from_device.c | 233 ++ .../tools/dma_from_device_w_udd.c | 266 ++ QDMA/linux-kernel/tools/dma_to_device.c | 266 ++ QDMA/linux-kernel/tools/dma_xfer_utils.c | 198 ++ QDMA/linux-kernel/tools/dmautils.c | 1489 ++++++++++ QDMA/linux-kernel/tools/libaio_engine.c | 249 ++ QDMA/linux-kernel/tools/posixaio_engine.c | 224 ++ QDMA/linux-kernel/user/Makefile | 19 + QDMA/linux-kernel/user/bash/decode_hw_ctxt.sh | 42 + .../user/bash/decode_preftch_ctxt.sh | 40 + QDMA/linux-kernel/user/bash/decode_sw_ctxt.sh | 106 + .../linux-kernel/user/bash/decode_wrb_ctxt.sh | 91 + .../user/bash/qdma_run_test_st_vf.sh | 198 ++ QDMA/linux-kernel/user/cli/cmd_parse.c | 1201 ++++++++ QDMA/linux-kernel/user/cli/cmd_parse.h | 40 + QDMA/linux-kernel/user/cli/main.c | 76 + QDMA/linux-kernel/user/cli/nl_user.c | 575 ++++ QDMA/linux-kernel/user/cli/nl_user.h | 95 + QDMA/linux-kernel/user/cli/reg_cmd.c | 401 +++ QDMA/linux-kernel/user/cli/reg_cmd.h | 34 + QDMA/linux-kernel/user/cli/version.h | 19 + README.md | 19 +- 128 files changed, 49300 insertions(+), 20 deletions(-) create mode 100644 QDMA/DPDK/RELEASE.txt create mode 100644 QDMA/DPDK/docs/DPDK_qdma_driver_user_guide.pdf create mode 100644 QDMA/DPDK/drivers/net/qdma/Makefile create mode 100644 QDMA/DPDK/drivers/net/qdma/qdma.h create mode 100644 QDMA/DPDK/drivers/net/qdma/qdma_common.c create mode 100644 QDMA/DPDK/drivers/net/qdma/qdma_devops.c create mode 100644 QDMA/DPDK/drivers/net/qdma/qdma_ethdev.c create mode 100644 QDMA/DPDK/drivers/net/qdma/qdma_export.h create mode 100644 QDMA/DPDK/drivers/net/qdma/qdma_regs.h create mode 100644 QDMA/DPDK/drivers/net/qdma/qdma_rxtx.c create mode 100644 QDMA/DPDK/drivers/net/qdma/qdma_user.h create mode 100644 QDMA/DPDK/drivers/net/qdma/qdma_vf_ethdev.c create mode 100644 QDMA/DPDK/drivers/net/qdma/qdma_xdebug.c create mode 100644 QDMA/DPDK/drivers/net/qdma/rte_pmd_qdma_version.map create mode 100644 QDMA/DPDK/drivers/net/qdma/version.h create mode 100644 QDMA/DPDK/examples/qdma_testapp/Makefile create mode 100644 QDMA/DPDK/examples/qdma_testapp/commands.c create mode 100644 QDMA/DPDK/examples/qdma_testapp/commands.h create mode 100644 QDMA/DPDK/examples/qdma_testapp/parse_obj_list.c create mode 100644 QDMA/DPDK/examples/qdma_testapp/parse_obj_list.h create mode 100644 QDMA/DPDK/examples/qdma_testapp/pcierw.c create mode 100644 QDMA/DPDK/examples/qdma_testapp/pcierw.h create mode 100644 QDMA/DPDK/examples/qdma_testapp/qdma_regs.h create mode 100644 QDMA/DPDK/examples/qdma_testapp/testapp.c create mode 100644 QDMA/DPDK/examples/qdma_testapp/testapp.h create mode 100644 QDMA/DPDK/tools/0001-PKTGEN-3.4.7-Patch-to-add-Jumbo-packet-support.patch create mode 100644 QDMA/DPDK/tools/README.txt rename LICENSE => QDMA/linux-kernel/COPYING (95%) create mode 100644 QDMA/linux-kernel/LICENSE create mode 100644 QDMA/linux-kernel/Makefile create mode 120000 QDMA/linux-kernel/README create mode 100644 QDMA/linux-kernel/RELEASE create mode 100644 QDMA/linux-kernel/docs/Doxyfile create mode 100644 QDMA/linux-kernel/docs/QDMA_Driver_APIs.pdf create mode 100644 QDMA/linux-kernel/docs/README create mode 100644 QDMA/linux-kernel/docs/dmactl.8.gz create mode 100644 QDMA/linux-kernel/docs/linux_qdma_driver_user_guide.pdf create mode 100644 QDMA/linux-kernel/drv/.cache.mk create mode 100644 QDMA/linux-kernel/drv/Makefile create mode 100644 QDMA/linux-kernel/drv/cdev.c create mode 100644 QDMA/linux-kernel/drv/cdev.h create mode 100644 QDMA/linux-kernel/drv/nl.c create mode 100644 QDMA/linux-kernel/drv/nl.h create mode 100644 QDMA/linux-kernel/drv/pci_ids.h create mode 100644 QDMA/linux-kernel/drv/qdma_mod.c create mode 100644 QDMA/linux-kernel/drv/qdma_mod.h create mode 100644 QDMA/linux-kernel/drv/version.h create mode 100644 QDMA/linux-kernel/etc/30-qdma.rules create mode 100644 QDMA/linux-kernel/include/qdma_nl.h create mode 100644 QDMA/linux-kernel/include/xdev_regs.h create mode 100644 QDMA/linux-kernel/libqdma/Makefile create mode 100644 QDMA/linux-kernel/libqdma/libqdma_config.c create mode 100644 QDMA/linux-kernel/libqdma/libqdma_config.h create mode 100644 QDMA/linux-kernel/libqdma/libqdma_export.c create mode 100644 QDMA/linux-kernel/libqdma/libqdma_export.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_compat.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_context.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_context.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_debugfs.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_debugfs.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_debugfs_dev.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_debugfs_dev.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_debugfs_queue.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_debugfs_queue.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_descq.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_descq.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_device.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_device.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_intr.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_intr.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_mbox.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_mbox.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_qconf_mgr.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_qconf_mgr.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_regs.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_regs.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_sriov.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_st_c2h.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_st_c2h.h create mode 100644 QDMA/linux-kernel/libqdma/qdma_thread.c create mode 100644 QDMA/linux-kernel/libqdma/qdma_thread.h create mode 100644 QDMA/linux-kernel/libqdma/thread.c create mode 100644 QDMA/linux-kernel/libqdma/thread.h create mode 100644 QDMA/linux-kernel/libqdma/version.h create mode 100644 QDMA/linux-kernel/libqdma/xdev.c create mode 100644 QDMA/linux-kernel/libqdma/xdev.h create mode 100644 QDMA/linux-kernel/make/common_flags.mk create mode 100644 QDMA/linux-kernel/make/distro_check.mk create mode 100644 QDMA/linux-kernel/make/kernel_check.mk create mode 100755 QDMA/linux-kernel/scripts/datafile_16bit_pattern.bin create mode 100755 QDMA/linux-kernel/scripts/qdma_run_stress_test.sh create mode 100755 QDMA/linux-kernel/scripts/qdma_run_test_mm_vf.sh create mode 100755 QDMA/linux-kernel/scripts/qdma_run_test_pf.sh create mode 100755 QDMA/linux-kernel/scripts/qdma_run_test_st_vf.sh create mode 100644 QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh create mode 100755 QDMA/linux-kernel/scripts/stress_test_top.sh create mode 100644 QDMA/linux-kernel/tools/Makefile create mode 100644 QDMA/linux-kernel/tools/aio_example.aio create mode 100644 QDMA/linux-kernel/tools/aioutility.c create mode 100644 QDMA/linux-kernel/tools/aioutility.h create mode 100644 QDMA/linux-kernel/tools/config/dmautils_config/mm-bi.zip create mode 100644 QDMA/linux-kernel/tools/config/dmautils_config/mm-c2h.zip create mode 100644 QDMA/linux-kernel/tools/config/dmautils_config/mm-h2c.zip create mode 100644 QDMA/linux-kernel/tools/config/dmautils_config/st-bi.zip create mode 100644 QDMA/linux-kernel/tools/config/dmautils_config/st-c2h-pfetch1.zip create mode 100644 QDMA/linux-kernel/tools/config/dmautils_config/st-h2c.zip create mode 100644 QDMA/linux-kernel/tools/dma_from_device.c create mode 100644 QDMA/linux-kernel/tools/dma_from_device_w_udd.c create mode 100644 QDMA/linux-kernel/tools/dma_to_device.c create mode 100644 QDMA/linux-kernel/tools/dma_xfer_utils.c create mode 100644 QDMA/linux-kernel/tools/dmautils.c create mode 100644 QDMA/linux-kernel/tools/libaio_engine.c create mode 100644 QDMA/linux-kernel/tools/posixaio_engine.c create mode 100644 QDMA/linux-kernel/user/Makefile create mode 100755 QDMA/linux-kernel/user/bash/decode_hw_ctxt.sh create mode 100755 QDMA/linux-kernel/user/bash/decode_preftch_ctxt.sh create mode 100755 QDMA/linux-kernel/user/bash/decode_sw_ctxt.sh create mode 100755 QDMA/linux-kernel/user/bash/decode_wrb_ctxt.sh create mode 100755 QDMA/linux-kernel/user/bash/qdma_run_test_st_vf.sh create mode 100644 QDMA/linux-kernel/user/cli/cmd_parse.c create mode 100644 QDMA/linux-kernel/user/cli/cmd_parse.h create mode 100644 QDMA/linux-kernel/user/cli/main.c create mode 100644 QDMA/linux-kernel/user/cli/nl_user.c create mode 100644 QDMA/linux-kernel/user/cli/nl_user.h create mode 100644 QDMA/linux-kernel/user/cli/reg_cmd.c create mode 100644 QDMA/linux-kernel/user/cli/reg_cmd.h create mode 100644 QDMA/linux-kernel/user/cli/version.h diff --git a/QDMA/DPDK/RELEASE.txt b/QDMA/DPDK/RELEASE.txt new file mode 100644 index 0000000..4f45da0 --- /dev/null +++ b/QDMA/DPDK/RELEASE.txt @@ -0,0 +1,42 @@ +Release: 2018.3 +=============== + +This release is based on DPDK v17.11.1 containing QDMA poll mode driver and +QDMA test application. + +This release includes a patch file for dpdk-pktgen v3.4.7 that extends +dpdk-pktgen application to handle packets with packet sizes more than 1518 bytes +and it disables the packet size classification logic in dpdk-pktgen to remove +application overhead in performance measurement. +This patch is used for performance testing with dpdk-pktgen application. + +The driver is validated against dpdk-pktgen and testpmd applications for API compliance. +2018.3 driver is not backward compatible with 2018.2 and earlier QDMA IP. + +SUPPORTED FEATURES: +=================== +- Support for both the AXI4 Memory Mapped(MM) and AXI4 Streaming(ST) Interfaces +- 2048 Queue Sets + - 2048 H2C Descriptor Rings + - 2048 C2H Descriptor Rings + - 2048 C2H Completion Rings +- Supports Polling Mode +- Supports SR-IOV with 4 Physical Functions(PF) and 252 Virtual Functions(VF) +- Allows Only Privileged/Physical functions to program the contexts and registers +- Function Level Reset(FLR) Support +- Mailbox Support +- Supports Descriptor Prefetch +- ST H2C to C2H and C2H to H2C loopback support +- Zero-byte transfer support + +2018.3 Features +- Descriptor (8, 16, 32, 64 bytes) bypass support +- Support for Completion queue descriptors of 64 bytes size +- Support flexible BAR mapping for QDMA configuration register space +- Support disabling overflow check in completion ring +- Indirect programming of FMAP registers + + +KNOWN ISSUES: +============ +- Occasionally, C2H completions are not observed when payload and immediate data transfers are combined \ No newline at end of file diff --git a/QDMA/DPDK/docs/DPDK_qdma_driver_user_guide.pdf b/QDMA/DPDK/docs/DPDK_qdma_driver_user_guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c7951790fbc35f0e30f34fa61c8622772dd6b76c GIT binary patch literal 601852 zcmY!laB<T$)HCPhQr)_B>sDSaLj?nc{G=>iE*l&DkjjEoedolI#GL$e{eZ;u)M5oA z1p|d3eV@d<bdA(J-Oyl71^wWXqSEA&kfPMop#1z21xo|465qt4Y|p&3d>b2m5HmGJ zp`@rZ)y_`eH?<@&C9xz?!O+OS609^VGqpUmD4-}cEwv~$FFCbX!O+MMY>J&7FIQ?_ z3fMg$o52j2!@v&Gcg`=(D^W1C)c4LzDUMb!2AQZ}XaS~-OdymQm@<a&Ou!~9m_T_D zm8K9uQ;47$M1vVb&Kx3V4st+{f;mKqxjEQObFdE-EI^?aq+kISj8#B(HpoF3&ejh| zEK1EQfre&KYH@yPQF3arjg7ureqITPGE^`HS)lJ`qyV-;-_2OT5bOdwJAK!R68GSe z#FA7S8-4d+a|N)q`tHFN3Sbx8+3834CuOB3gG}<wO-xTUG*mDIJ5e9PHCHeM>#?)b z4=Bn{4o)qJ)(>!T(+^3lD1j((f>6#7$`j-#ec#lS%tWXBif9E;h?p4~DVSRt#VY7K z=jWBA=9LsHfP+Tgy(qu502WDLj()IyNKs;5aRJEJ$(8!f!TK(#WtqvTLGDg=cKRWS zNyYlX&~yX|nPLS4<Uj-&3=2fJ%$$<cB7L`<#FA8()a3k>RDGY+y!4U`1w%^%Bap7* zlA_eaTwbn<IeVjW{cn2+{FBrCpSbij`|e#id*1I34egwCs8CnEYH7JgXy{S_rzJ_t z4_^3o|Nfa<YK+HQTAxmEdh<19{>__}@%-Dxp1vumiJ3HAzdbtD(#~%7oC*Gi4=4Sr ztoV^_Cn?vnd~;3AxvrWY4?kshI@kLgQ=fcvb@-F78MABNe>a--aDMWf6qm#Gk1Zm7 ze(kNFKY7pn>e?IcdCMg>noNH3VaxqwhiQUtGfb}tD6>rc@IYoonZ1P3-Ui8&SMJ~Z zmAC!=?<o_$7+e0?e7~Cc^WOL0-|@d$aoN1V(%2+<^$9rxtG<LLD`DB?svfE)shhZ; zYdqDOS?kTNH1p}phL2Cuw}@&j)p&j}?1zQnj2<oSqz98esZTL0Z;HCc_}TF4Nmr{2 zCsn4NR0?gd4mkNvmFK*l+QkY1rUO?e>xV`;&V1caY47E`X?~Mk?o#GR-4d49HV3Tt zRLtI#W7%_PM(onwltnM=);1QZ2)Z-QT(T~g_xvR<o#Y>Sfm#|J;uQ~5k37_C=5OwA zJukriv2FPo-S-oYT(<94b5dhHTOxj2koUMjmW%i~`xR!rS1W{@W-vcmC9XYrfA-y- zOj~C!^;sjd*CW>TN3`zV6G}o}!S_y9x%khs%(C8oC|YdQd6Ts+qQ)&L<qVrUEV};5 z7m2X>Y~)_<&~3F=M_+2um5?%y2|Nj56C3NT*dlkm*rz|qWdHU3*ZUqBA6vOmfXQLf zq?C{-|Egbi&Wjxl%z8fIzeL>ZJvZ;G9q!BdRvI|%Xl1$6?qHFp%tE)q%#Q4Elx6T0 zxVXqjeS1-OvWBp%g!==j??Gvk%U?F!e)Va+@|WJ@E8e<VZSb6D)OM<$lQX4R(n9D2 z&)<xf?#DfT>GExNGRO+m>9jFA6S}*3o}+#06k(agcdBN{o;jTSJ5P^yn&fN2a3iC0 z3aZVk^&9@l+Nr-_JMYNe!><+pXF|;?7hi*R*Xvb!g1?3A%!8immo7QXKEvj9%c87v z*>?VquV%7+xqS3ekMF$~3%71%j5fN(oU}<hTtQM~%N_l;;#GUALqh}I`Zlh+XD#oq z-ZL@KQR>}^4~J{!C};n^U9CKc_kQnZO;5F-3GaQS&WdK8*4#WhCCa#@;4E+V@rG#< zN1Y@e^rtWAEKHbFvp8(4guq9Y1G1*lo14X$jpUdoc;xhb(q#)VVVlA%%W>@b#}9@n z?XMSf9&cb04LHbiBg1Wh%JEN{Qy9Nju(4d3b4lQ+M5xXk{?v;u3Uim~)bK~F(0;Pv zrTJ#&**`^ilICQ3KX`nUCHYm;o20aYpAY0hxx+j(yj;ZJtWEvxe!a)*jb-Egb2^Dr z;=^TgZ?;suG@Cqg!5IP0t9!F&<h(Kso0@HXlsR~TnZ%K_mr)7dFEn0AxNwc}fXhXv zw!?W2`{my{|64wJtw;8edn*L88{}gCZecJni@(jVxcTDk5S5fIGk(f_4?R^9dduau zeeTNIQ(HL?2YxnZig~|m$*IQnge$q5rd-Il_l&n`2kSk9izSYyq@|8WUnrgKY|;Eo zm`PUZ(C#o@g@)G#FD^W|%ej`PuGOKv?X6!1qiKvpNydS9Eoo)}XDc$6ybCgZm$P8j zNB8y@RafsstSS}w@>n^6cdgF0dgld?Lp5U3UL15f@HkX`4)-4}#{Te`AAEGJw|{5u z51(ehJ?mWafyYx-cs_m7;jwYDywsrW7%EWK;<e<U*eUy+_B%QPT1*~12v41`uTx^J zghz<O#W{zKTSVVDdt3=A3Nv+Pw-G+66Y5#l6`OTpS8e{J%_%YGf+S8%Pw_Rrty*d6 z$G+^>U6%EJ1zXgtS4(wHVDc-tBK%M}j4}2|^?a5jHkFjMtZp@vS-3>^vL)`*c(%bw z?QfUb(;ZQU<|p;v{Jq|!Q9FPChjJauER}C(xBm{*vJdny{TRph=;=Scvh+E>^Iiw7 z_&V>wiS;2Vys>c)R&Lur@#OUfN<tbE+bb>{`M|QpDzB;j*v_XLFV||wR88%2%J7)$ z)6K?RxZTKe+D7(^SME53X;mEMZ3(KZ?t7X%=dqgW3&W`CiIK(I-77_!ocCXJvY45; zn}MHG?{DL=lA^V0sezJO88RCDFMQT^J&jykeow{!gv|Tn+#!C2Yu9~PEpHsM)c8HC z-rlgO6?cDd+HCyv%PQXIPvOB<`xAc~^%v>vad+(5^yMAH+q>8PDXl*ze!!>5KKtQ$ zfdadtD-nlsC*Sz&_e^4arpZFDw=2X1x8-J<h6OErzh#!S=ANq|BIQwMizel*-Z?w% zWbf3wVVi62q?*2U5M7vhevQ+!o+W?Urr*_jwpFS5aP+GiB2yo)sadeK)3ngVA!td| z5B)@~pIT8Hnl|ypd+phKqGNsdsaLl1Z*#~zof`Vy-1YD!rrSOKJEhic{E@H7^GI<< z&fRUtW11gkFTJwk!YO69Ghrsv-uv%RU|d)^_e5Bc^p?PgsHZ3D`#E^ODPMQEUMbw$ zu|y#=esgy8hDf`Bhf18ws#m{zaVR~%PQ+Y%(*2{NYzH~#&2;BU3fS`bY}@s3mtX&8 z<I+kDmCuXb^UCJVGcTnL_7@+nK7KpxYsGK-l1A}~;FcP!>V-AhK#dq!#SLyvg4#Fw z!KFzhpr&O=QE4hz)GskNRo~4}-zl*;6|BOsC^Ip~H$>kxFF8LYGcR2~JTuQRuQ(IV z2dQ#NElw`VEGWq@QUEvD^xZOxic6d`5{nd!jr4sIp=?7VBmMBql#+~M1w%tiP<t#0 z)JlLk5u_Evi3p>?Ei$nCU~Y2DNlY&W+2C1{n3I|8n3tZDs$ih+Sey)M(pegq>VtHH z*t$lB2Kvs41s<uH=@}&o=0+C!j%Dd!w<wsH80z~bRzNsLW@e^fi^3r)O$-e5BcQsB zObzsXQWHU;pkQpQA6$}}8>V1l0#@z>ZjI@hnVBkp>{2i?FfagF18S~;;{)t5P*V@g zfHlfoVeLnKCtrQP{G!~%9R1`(1w-Uu0ktFvYI1f&)dXs)qG$p|6RzksLW^!)r~I50 z65<@vMZg*9hDebPYCobxI#@4;OF{7lNl@U>MZ`MHX;g}Ob4%o?H?jcR290`if>Cb{ zRt}4LBMW>{4{r6N_!HVQfJX|rLjVaX1!E&qeQ2sPGtzg?&&e+eE=WvHMYPuSoia;` z15%5e^K%RG^FV3bLLb^7cX1AZHpe~lN>Ymo@<9!BaHkK}J~uToHU}j!SRwKM#{UNl z0$y&OZVZf!j0_bF6$}jjZ!<VEaImqlv$1lpv$Jz@a&Ym8@bYkT^GFH_^NYwz$;-(~ z$;c?E=&36x=_t#{Xqap27#NzEn8>SJ+FBUd=oy<Bfec~f<mBYx=8@p#l`vA2Q8XeM z{6D}T$iZO8=*rBf#K0uT$SlbC{|JLT0|O%~BN#A10V5ML3o9Et2PYTz|04`r1sIqZ znVFebm|0m_SQr=>YZ;lC8CV2ag%k}P*@OcV*_8@Kj2b5{<WP3ncu+Lx;s+Juq@pHH zE-`TlNhwt|bq!4|6H_yD3rj0!7gslT4^OY)kkGL3h{&kql+?8JjLfX!lG3vBipr|y zme#iRj?S)0lc!9bHhsp-S&J4gS-Ncbij}K2ZQinV+x8thcO5!><mj>ECr+Nabot8F zYu9hwy!G(W<0ns_J%91?)yGetzkL1n{m0K=Ab&A3FoS&sA|M_^^Oqn46C)D~3o{El z$X|?1<qV8W%z`YeiiT`Lj)Clng~CckjT|CQ6Blkg$f;}`^g%SK=pvVxipfLOk07ss zeMX$en#l4Q++zrT-D2QjW@KOzWENzwXZXHzS=T-BS?QcoOlQs%Fsv8**x&W!Bk%jk zoZ5-pb#LqU)$hrA-?t}Y)|$7=Zk$_m%IxPI^IzBGFN6y|bN~DG&+F4iuNT)$yzyIR zwsuI+`pD|@ski@eyn1P){4le|wSJew$z(yc@PFTbE8kmDQS3bXNY$)cw>Jo`KdUp> zN&m<7T`zZ)Zkw7YI(JF6Vow6!^E<z<Rm2#t__=iBzWiA_Cbd(|-|s*C>qX%_;}16G zVcwNX4s5&=y&$ZUjirM<zwp=fDH9wIN+@q!zf}9IP341Q>ACUVEgO@6{}3$l{P(Hx z*R>ye%x^b7e{yr{{Hw3`yZ^Gk@OgK1=K8$F+qU<dH0j+MT0QIAea;_A@_a9USjT+| zoVnyb!%g=MtK>L8G`%Q0^y#B>me6|Tf0g`>?_bCE#tHMD*!gtl**VYl-HSUm`Fq&E z`VUN98tWb(U_Nnh{R}&u3hRG@^}<_^ZmGDu{^T?nKEeH+_A9=be)(Ix&+Nk%JG~EQ z&&~QBR+GPd!hZ&q=H(Bn<dYp_;t%>u)MvfuU2ym0?A?qryyfDQ>c0gaztHtH>&Iv3 ztNDMVAMMCzvMDz!7M-Q`Sb4GLub%7IrQ(+6u6|i|t95bv_8mPQEmd;&qZsBrs#u%* zWL~A1#p0lMZz=+;X8lw@_D_BGF*&UrR}AiX+J$bZzw3DUqiwy^*ZsZ!41V*?ly7^h z@}I$DxAZ%&d0_?>@jnFrvhOY2&-O?9@9y>g8M5!W&*rsl3^?4W`o^w#<sS{n*Y@0h z<ZRR*R-Ad+>-1UZj_}orpTQsGSDHSu7vKM6S=M}y{|sMP*RNdtbbj~!PeEV(m(>4a zy1?<hzV-em-!1;X9@T#_TW|k&!GDHl?Ee{Z>%T>P;Ri{TV3T5r{5#+NiR8Na>lypM zh^<dsFNw-uz|^I&fS=*-0{bUPm+W6(-2cTm*8PC~PvKJjU;i2M|B6jLU3WqLlVPU( z*BAGHNv>P|K>SbVuJ*t6+y6C8;a|A$<Nkl1SLT2HD*kmn$A|Q;yc*?47N#0S7t>Qd zGXL9Te5JO!zcB7SlB!vkBvbm_J#J1j+<8L2Bwf<JQ-sOx(&hJWxBA-M`*ki*b<Ybq zbJ>HdO&{2^?kW7neg22rR?foQg4=6l`|nKn&%l1++xK7B_XjAfmjngD6Ul}D8Lns6 zPrAN2yyxGA`cFI;{xiJZvi}#?1=jeR@84(N_o)9?WoPlje8!)^RQVY9DuzFz{}~qk z(fB*>-?zPA+W#}8uTQ_Cll#@y?$NP#hN^o$&Ug}hN6_KdJoXRXNB=Y2oOSp|-8-MC z`(`gVZFKGw{%2s4sdZStF#8F=NQU`5-j5;Qc+RY6Y4Wagm!51HCjWfJ`lWvuAFcQk z`!Krt(c!m&{aP>CGueZ`*w#xi&ULMM_;LQx{|vY56s1hp%wDtQo8pIx%3X$ktm;Z% z|7Q@YiP|UhVaeqq58`9eqyz64zPjJ={L}imHKGq^_e)l+;+EOjv3+)_{`X||XO>@W z?Upsz20y58t~;OePknE{&>5bxguc!{{y)C_;a^*A>YSa+J9UZKwvQbTTbbOtEJB$X zLauOVEb3zTxW4lr!zZ3y|0eUl>%3da#J{V4AN%t4&*OaK<E&OMR$h^s*u?Ql`(T|) z1<wof{kN=2Dlfm2my38UJZDa=t(MB#m0u;@QqSkuhOc-3CDYfqKJG_xSa-n28modA z{->3`2fvN?{84^HEKcQ;^8QWrQ+HIH{JA*q!S&PoQ|JGy*#9(Eyv4?KWkqm!^o&Il z-!3_H$GK0o{z%!1P^DdSE9b?2ol$(S`t-+7cGDNFj)-?&8R1x&=h>FRx1>i#K5KKd zywqjCGa8G!SVRI{89=zg{y0C|PjSsh)f)TD4F&JE%1STV|M<f1$JbWZsQu{9UyvEq zHg&accSUmb?4aW-Ws~LO7Jpn{de!81ZnF2z%j=c-^9v<=ul$mK9WS5#EAYbC-+y&Z zP5L`6t-ng9jp3ui>GI-Nbrv71Jw#5|uJCX1`LOeaT|>RruhobC$!+_vzkO}V>;SGq z`>h|dx!Y`(U%6iEhv38RV$t)RYAKTnj@@Hr5tf%Xv}<`T@AK>WwhIdDr`74#pY*<J zH}OBi3-0*f@YA4-zw{L(<1fg-$mzc_>c3t8&yc#_;YaL$29@hB{~6Y)|7UQ{`uv~a z7XQBli0lH_`8PlRbDZ`3Z&~+$2FI*#Ss&2_7(kK#f&UisKQ~?Fe|x3>GdP=GsbTuh zFws2VKg0TO{~0c3#_WH~_@6;pY~p{0xZeK^3unEuW2`?hdqw^A-}Nsz9ezp4OaEth zGS~AzLwsO;)Mx#sU#08TK9UXh-_zllU%1@LYTkoQ|F*u|kD}^+!~Rc}_x>|npIrYU z+o8l_y;w!j=Y#vyXB~1Ye7b#RzQN<F^rwmM|GL%+emH%s^U;3>-u3ey|Mt4T@h*IK zmHp#CpM8JKeX#Und3)sA3-y_|m{oU|*ID`>|M_TN)rbDh^)`}^GV&jX9Wv~D#C+__ zJO2IkD;Dst&puY4VgHjYqyFoy_$OOm@2XpvyXxh)@860#bC)}O-0_aLQv5CZe+GrK z{Qq`)|C!b(TA#ju@A_KB{|q-@-_bt&p8<)h!B)Bd7(d&8hC{9o&%f37_`D+XRZK#$ zN^E33-{Oy7*Q@*pea!#Ebx+X5n3LQ6_8tj-@}d1l{0IAmre6ganmA6_y4Gy`7<|~E zBK=sgYsSfM*-L-B6s~+`GkNOqWsb+UGE08cKf3nOd(qP>d{KvPe>YoYC3ttg@UNu3 zyC3>Dx3}&w*c@|=ZE+3D=9HrDKbk+vzneb(&%pl2F#nOfc;~yDJW^GiXM8FrZf<>i zLC*i->v+EljIJU93X8flnD)MXyKjEF?$t9*7Rj+^j_t8ODyOpJquip@oTXb*I+DJ~ zEx&WMU%KL^>F#e^x`IWg?w%mHiQC{+M7`IOf46i0GuTf5yk1{4tW;hnc;mO3W|1;B zwOiwR|H*&we7)g=e@k@CF7fRdZu5mp>_1)k#h)K_{6kx>c<0x~EIq-*p8V;&pGChg z|9Q0c-nDDe)){Z#K8|?UTefPwgI2+gaP_mM3(_r@Z|L8+<nQzAoBlHxxwyK7xN@yB zV31+-TeNW3?(G}5Rd=sk+$JKKsgkhDZprmEHEC-n2YPU%vIsan5%hLw>e5)i)TOz} zW1`z7kAs4YX=xS=d|wz(*0_Bvs&GE^ImYer+v^NRv-W-$JYCE1{L}gwU(QMgf8_bz zo63F1n?=9W^8J=lyXUiR|LA=5(kA)Q%seHXoP~Cwi|RN3eN#30{L{GCAGRMneCVEN z*v=karyrc@C!RXWYt=EY-)X}0aeb?t(SL@P=p(E1OV#e0{pfgh@}cyP_|Ff1OZ{qI zabo>+JFN<vAJIqob@!xXem`=Wjh(B$)1IkbN&DJ9{vYT63CZ)<r^TM$9eDYQrcUJ~ z`-l057yhx$V7`=%T>D?Ya`n^sqwjxeRxQ6||CcdC$oBrj@;{Svh5zlC|Ce|5`Tq<V z_CFi{Gu)2<J8dsBNGcYaRD;gH^YcIPT(^I{CH@z8IH<-vKmQXqoF4#6GVBc~75-wR z3V-V9f8e%&J)|vwEQQt<u>HaPpFw%<`@fau|Jt^`h({?5&Z8Cvc3tb|?=$%!|J&+6 z!#|;Dj{O(&qQ$)ycRaB_`X&GQ*Yyjs)-7Eg_3BpX(bhLk(U}*PbX7My^mF~te%$}& z_kD2lAiL=1mNXlc_EmqSfBwx*|JMAUVM1E_e}>ql|GeXTAD!pDS7CnSa^|Pab#I$* zpR>3(H?;BVzeT(BrG8wjiGMJc{VkvUmbGe=tQ+s{3qAbL{)`k`>Hf|4?_J+F;XlKh zukS=3{%1hqig3>Sb#Hz4f*04L=01MgbkFGdm3arMCm*euU0b^H$K#{tHJo+d{`t{o zc+nADPrUzUR&oBfcW^x4P4C&!W_JrhK79IBD^j=L>(&q12k*5cZ33(1&np<-Y?BpV zZ2$N|oe9sUwcKG>Z1^Ajc-Li8E;eb#J4KtkxSr*IeuZDFN?V+}`sK7+t#g{Zt2>T# z9KP_MA?jm(pB>+)r~OC80&6x2iarRu@Fo0T`-c_(I4aJ+x$gV0`=))Vp;45v{I0*3 zKfbd4{Mte8BeZy6K5eJ=gZb^nlj~jv{AXCIaJQJN|7%0Nfc!oAwG|83uitgO?N9iJ z+HL)Xa+{OFEb^AzRADHo5#CWPQ?erCSIm6F+%>lT(|^j<FMU;BWw)63@04Yhk8)PZ z{_Wqmeo2kuquu_ZFS$$kgdQ4fJ~%IM|ABAoXRMAtJWp}&himI)|IRLX<Z<$6O5B4> ze#aNjOi=D>y?$ide+K1Oo~eBj^CD#f1;o;l8yMcl+y8O-cx9gIUNbYl(@PKB*R%LM z`}gtNm$uX?{rHy~c8gc<sLJ+j(?n(!9m%UbtXT2JKI*eo?wv=citf3-ef9qGiLdwD z<m_)HT`<ku@q623%l{0=Ise5^t>&$1;bajga98O1zQ6UJ!H$n?b9GxkZN3}1;_tuu zYwC{ktCW7p{5%%3u*TJP*ZM18v@{m2`T1bI>W}M>?cbbLt+7qj(_0^I&g!ozzWfjO z&$PYvA^T$WJ@@P{(c5-m&(iRfw>Xc#jF-=r+Iqj!^mnh@+t0RFc0T#A^8x<?2@zh| z?FZkp*B^3zWdBxs$LHlQ-^jGdc&dL`|M1E`xvgKeCjM|gJnf$7hpX$R=eKF>UOIvQ zYhR`MpKnL=0+eTdeBPS$vA*@4$tRImjnBGE><=rv{2|x=I^L+FIC|fQ{I0}(E+x}$ zIZZxvCoisN*}jA8=k2rnk#^tby6)E1xvNZN4@DgKXUhESkE49Yf{gELjRUt`{c<|j z>71kL-Xlpai7)Ec)|~uU{m(0I<(K~d3=UCm?N}=2JzT!)!<F0f1bT~^)87>_>tA?o zKYwjuz4-no@b(LTIlfj3fi{fe2kF3#8!wkGEU(PZi^}NgObt2Dds%I7_3wJO{|pQE zw*O;U{^R<wkSTn}Z{ENC%lt3v8~YEc_Q#fOzgqJ8WX<aA-;qy_mAM*iJbppy$GW}B z59<F+asAJ*-m`uwV{-DhhW`u`yFLFitatm*aN%sJJj4DczE|vD|K0zEWnDD7tUW?D zDnOQ(zxO}GC%+~C8P>1Zzqa!E0so&e@9STm-2cUNz4MRz{~1(X`TzRW{p<R?KP>+l zCZ7BLZ_n)i49-!^3%~e^1UmFdKdNsEKYC9#ZM);&<rzHF-uA^`<-h*(`suu0nV!C- zv3`;s2if-BT|al9*^i+69@iFJTg$bis?jdTp=3f)L~Z?CX1DWizJK5Peu@2W+ba1Z z_Tugj`MJ-Q^w`}tOWNvu_k8_=*FVGO)t#@ej{D{OpJDTL-jD7_zRM|poO)^7ldYS| zwl^77B|PlEGV#v}zGdkxHMZrC?Zq6Eciui*tb677q?L0v3%@@9Ec<n|wTF(*!Y$i+ z+*ve~d)XZpB!thak@#>%%Dp8x)H?2c(9fF(ey_07|7_n|70RTQRaLre?XsAc-wQ$g z=wq*H`M<88RQgx$_rZDEv(C<)RPE_}(BN^wxzN_y=D6UGhYy>5zbEZm%C+=vH%oH= zercKH59-Pv7YJUfFg|AXPwhih)*FXe94B_W{$mfE{6p}>uj`U4vck6)--ykc)gn-z z5xMn|tL>L*9}etf3@j7exxrE8`JC%>YP3Ge>@x3G+E{9I<5fzuzgX4t*8Icv6HQ-4 zt-Ut)VXb3HzJROk7lRv~nRyqIb-4`^_sAq(XGjsgY{HoQPfYZF%a-4qrW|?e-j+(R zd^>IYewvJsq+}mA|1L+H2cKP|FYi$n@85De)<1Uc(>9A~(kATBIjlBMY>3@)&f-C! zgZ%%S;9+st2qbI{0KBpSWtbFo;JUIP)c`SC9bB24l#eny;hB<}SCUy$sp|n9`%g*C zD*+i%tY8S9aL^CQ56#O2Emi={L4amOP=}*Iioo_qD;R<Yt78?w4h4&WMZhc@8!WDX z&89eex`3<%O{f?_mhOPK`p%v%A^Gl}F20Ec`Y?CuyM!wk8W<RWB!er9OHy+|OLY_s z!43ltFS{V-Rt!NiBtiP&AeV!t5>Q<Z(gJgve^E+mQD$Dc2FxB!1^uAZ^vvRtqDl?N zl>DSr&~l;Df`XjXT+rAt${G)_H87Jvo<MU4m<t|~hlfA@;dny>)TtOVeZ*9ZnWZse zD#pyf05KkKXlQ5*whB5Pk3JOxnSU`e0IPuv!W)1_;LQ|3Iu*<;jbjzSa&DP9sYakM z0|y^y+#8<SK%t1@Q@n%nrWWu)c}p4$%3GRSfE)+Q5@>_+cNp#rzCn3c#<bBvdGKVz z&>xh)<iIld(w^nV=js10>0cV*`LC~C*u%c(7k}2}kMDcz&aGdP`Kj(}oBCA$JMwqs zzCQiW&|A4<kNb_zua<h@+mu#)iC+;i!BO|jOBRi|Na?H<uYBDYlNeYwS}>HakNsfY z!ZwxZmG}wXH_aML>Q}{oT<2vH8yWHKGf#;@$<BFy1^!AOFbn&|GHv?_m0dexPAa@= z-w?mFa@x*Cu^Cp~w_<quHtw@1{kncZw)l~Ga@#)g&ARrfVY9xWcVFQCLwmVyM4S@q zd+{@etuSb6xz@Um)Bd?PU7Oav=+5g~lcJ*6F+OuY&arRH{u@&L-=2SSpHO#ocb;|f z@B3cg>Un=u-9LOQ>!1Lyak0*hr~N;|#pL;3dB;xtA~`La$5#LD?o-kAGqXJ|t=*Dq zrEML0tHaXv#&`95TQnB!oiZuR{jgWioH<K(i*;!%^Zb1L*nal<)YshWZyxRTzTDX$ zqq6_+^v`G2588|WXGqP?UvT$icl0+lq2n#n|1)fQ`ITw!<s(+I>pQ+kuhn|%*i~|@ z@O$)%#CLqWHNC4cukVw&zI@~SlJK(P1cS#DDiYsb=whp#?OJr7|4+y~-49FmeoXwf z;`r2}eSOydl;<DY<@v1d);-T>1rv`gz1#1=9_-M^|LA)6e};!rA2vtb_Uv`~&tT}@ zd`kVJ`IkT0&(CxHD0_U=PI=3vwFm#cPIH$(&^#^w^dGJJeSZS=yK6#AR|p-t=|4TE z<?oH-{^!>}j=TM#_~8B<c5?r&?(P=<{<z@8GmHH#b++|dY~|Z#)$W_R=y+nrY~8mH zKRph-!5A+U^Pl1PmHY4KKabD$|IZ-zseV`e)SA%Z{|xfM_514QGW2iylK+$O<$s2+ zZ{`0rX&<Z4(EsuCqWzu8KfAuwO8;{xlZQ&!LnWsFT+8HapML)*M|S+zQ})lY@4h~S z!hON8s7r%c`^f!ITG{enADjPc$bS6S`kzzT{I56dzbM8hRLuY9>YMy;PuhQm3%oV; z%j-}0UH-RQ{a=fQl-=e2zd?UlYrcN`{LfvQ|JO(PU((?hHvVT=6~AEpygIx36Au&r zGsG!_MiE(h-nZ;Cx0AfyHosEO<o5H>B7Z@9hx-?<UuI}BvSiz*^nLx}fBY4Xf7iSH zJGO6n+2W-6+J?^}cFV7LP#41U<(I~yMj7*C@;_B??Y}1fS7z#i{XG8}o-BS*|Mla4 zhE21+ukW${<h`|ijr}i6?Spla{~1ntfClLw|7S=w;rV5MTu!|E=sk%Ym*bfVf1fV5 zKdkWb=a)a(Pc>5aUMQV1)!DH+)vTau^~&{IvJcvs|FC|uedCX5=X9Jc1@E@Xm;N?? zeEGuy{)7+nJJ$XQe7M^;jEQlop%VXt!td?Rqf0-xAM6+Z&ye(^aZC12!_*Z5!s;#4 zw?Du9Y5n3C0w+^Ek}6XYHZGc$rry9F9IyVz>0|Vd?MKVSyY9c3Soi8?HH+-O<!h_H zA6qXzSJ~N@?~+gKE3TSL%cpej|NHgw=k-cI${(tKtnW(PQfi;nQn}st-+{MZZ9!8! ztTwWLr!O(vUnwabzF2@wzDPg*hxjL^y=gOLGI=~jvIGU4Ry8&-ywLo@0UDG2`TLQ0 zYyKbe6<eR~+3dMI#w_&Y$=?1C^Iv3l{7yao=Ue@`eQU04`JEf?KkL*d)oGm5vo+<P z&-!`%Se($V56jjh6vSN$^4)XeVf(`GqTS0yFZ_D5+UVQGZ=v#g_6zI#U(+{v{X<`A za>;}prF=$ww%ITKGjLVRJAc&5DK1)elb%?H=QFb}zpAgF5#9c<Ug++R`0&0@H@n?D zgk9&U#QU$cxMeN<tU`XR)9Xjk@_~VoxAZn<u6tSVN-T)IEpUFR?ZNMBrLO$g>3a0j z-V=4F*>CN;{8WAJ_WYTBg)e8#>eATSxb3@Gm&O7|SCIh5IO~u558lt+;4c(;^!M+? zO)nU~FMe~s{gd6*H=&|O_k@RCx_z!&#b~9wn~Z^tpo6?&jpoPlKgx1i9_v(YFTbCp zxv3)fkNyw&3)dId<bG_p{H5i?*Cq2`im%>Pw0vs!<$o;o4%sL6lt0X@QGV3j&BVDq z`B}7w`#tB&A7$;ij?a7bpCRUovhiu%yLV<MIUU!zacISY^w1Cc4?aIyr{P>EX;nH; zb%*Wj-z$IoXHdv~mB7@)*kB#5|3IG0{h>Vf?VGu5uN<G<*&$zfK7YZ>SYIaP`TuO6 z{AVcn&!F{V)$@OLOaC*}{AaNG9ajJ2`{ciu|Ezwrdj5}Jv;Thn^Fqq*%*Fjr*g@Iu z;(vx0N_*13HT`GkpDX<LWc{q`n=|fzV&3qdVSUDbhA)C~hQA%_kDu%O_hkRs3?a$i zcK;bpI7j_wSQq%8!8q=HoFKZ01FJ}&gJhiAe};*{5&s$1OYZ-|950`F|C8{R{|xI+ z{%2Uo^_v}6N#bzv+noAW(_d&mpWi?Klf{kt>l6MnT)4Hb4YLdhPzm@@-ZcH_eLmB+ zM)q%0mtLQlQ@{5U&+^Cp=XT7M4%_$P+D^8GSw7`qmx|UNs}1SDw0HNn`u_|Q^TYl# ztUvglVFA~(eI^ykzl{U_Gqm&_Qqa|#FV3;J<H^787x&M<);RC(!@E_NkL(iNwld{r zU+UB9#pS_YOjpO7{89e6|Bv#l=ig%A?6{mihbiKt$Xw=He&-)m;g=RP8EFU}{*(Bh zVN&eszlr}DE}o3z{&4=EmtFgRhIskkn(M269RAOsvOE0O;r|SaC+!h`IRDR-TK<3g z?7sy&oL}>*Z~fBS*;TIBW>?I9`!3mV$CvMN4?c&lSm1u_pTfnwKl+cf=bAm%Hr+B` zx&M)DX#2x>_aEBFr_DOva64lE43%vhVc%^X1F!#Mv5(W{f9&79f9sdf>p73lKJEDX zBJlLl{|q<2{z}_d-yX1g`=*_n+seJG=k6=Xs;FJAY~Ra#=fX$5ou!Y~3*F5MW=h#H zS<ubCwMwi1(7s7OG9QY5nBKamD@8tk=aKE|7v^>U;J<GAWIvmY?BC7nwr#JJ%lYz+ z&ERmS>f8SeHDCX%esK#l!vmfdQwL2Bb<UbMt7QJ0nTx!;XV#_4e?I+p{o4E=tB+jx zQSPTdwR$C+Vz;gT%5S2N!pn>A$DS-MRQA;A-8o~{qoYZc;yUHFf2QkB&0O{Ql6Jna z@o&BBzt{d}s15qhkb1kmbpQKRJ7d>3?oleuZoQJfSm~VEDQ*6*%l~M%&3ScYx>owt zq}7)W2bHSj{?Y&N^xD*P(>IemW%r)=seAIle}?UEvM*|`S}4NGz+k|zJbWX^r(?&T z?^xq}B(zj&>(NDBT4zAh(h#gY;YatQCm;G-pY3#u-*%2CY?c4ViQo4%uYc+w=lXH` zk#E2DcPzY=8!B1yrc;%9(sRj}U;NKw<l9X9f4KkgUjAyC>eSq2d?yZD%JM(%o3e|q zzxvU7q3D+%HrpP(GP9E3LN>Dh^Sa%S);BEvF!k%&YjdUR)9$zl&nxp-Jm+uKzY?Bb z_Wt{}U-|O8`n4y^w9gABnaLhp9r|!Ti%t60`G>x5`m@|9a<kljh9mQ@)S12u;pjuj z_|yM>`&asH&3}fE@6~@V{~3NX-2UTN{ol`jUNEVhx%fZB31NTaEdQSYoag7C2?rMk zm;W=ozGeTH1vIlA|MByp`knfpqgdMN&hP&uaBctVDfMTr@4nuG!o9!)s!mRQH2>2z z>-gV_v;P?uNd5TF;P;<l!rbM5%l!Xxgx`=uD<xhcmlACKTOR*s2-)u#Z}X?-Kf}aB zhyU$y|JQc)iwSB8(E%zU8kJZ5o&TTVN%YnIuRqkkVA|^)d^xwY*66YS-X70<E0NM~ z{~4q{-M{&t;h*c?=zsf;|7*~`zJmGjd9jMT*N5tqc3jpgDwDnF`Jcg7;7iu``W89! z{|qhNF8@yMoo+R?i-EgznqI^2i5LEf)<2rw)ZT4lbNSXW`z>!8D>!6!efK}UeQ(X< zh1ur&B(LXw)piPcbkBdLzjS-4eH8o7FVk_iNWSHFNIhNNX~%g#Ynl&_aR;a5Nw?3F zwQ3Kpm;90bpFvgL`9H(@{=ZW$uwN?)^zdL-Z_p4t`{VVIYyU()Y`yyBV4PdLmc;Cd z$`cPLU*7pE{KS)|ofc2NiQcOT``G!>y>r&RTRtzZsT}9y=evL8Kf~o0+Sv#1bIp$X z!1`}_!J6scm8~jl67-AzefMH3t!J+B&o5ti^5OT8zE>A!3Ny=P37`C~@SnjjZfCso zi&<OWx7N7l*K?%o*fO18x^M!YB>yYz*S+FlTd$W?$NHW9?pP>M`h58cy9XZ~dbu<f zHGr^P>Bpu2Hs(Hx?)ci_K7Y<a_NSV+^S2h?zs>uf!N&c0yi>*bLuU81FGYzRialoT zXlD2Fi`}t(MORFIuhsjPt$kva=EK}IOTu+FT)Dm5{dQ_)OZKIJDANm<FK_LRe=A+T z{mA{4dp395pWVK<Z|dc^OTJcj-*8EXIV5Rb&d>U3wwL?i{=VCeyJC$4Cd@TU`x)8) zYnttUhPz)^FZUDqCz3qpp;nT@a`81)a^D@7EndB7m%ypR3e5-CoBo*j_~6n5zszRp z|H@h2xg_}C(pvj__Dgf__D?(f@Oj*#<;=zZ#Ps_AGjNuF<E;N?cX9sYGymTIXNbSv z^~UP@iR!*LPo7(z%f9_j^2e8~3Cp@yp8hvm>XBr`e}=VzH~uqhv5)ecx6NMjo5_`z z*}4B2&U|^LArdMl5a=qxa8fq8ckT@>jnhIEO#4E9OnmhGV}4iKEOYzBZEDh?_IJ<g z{`mT5^))+_AE$q-yGilR*|BF|%&Cx16YIN6ex>c1{P23q{iFA^nr>eC+r^}|E5W`+ ze)o?r3)0vA5&cm9&9Cd$*E<n=_QkkxJXQM7@MhOv!`SCtdu;O`_4CEP3}>kOT3`0# zcc0zsy3+MBnLODtS)u~0q09}ec8&6q-m?E0+P;2sin{mjSl!}Pn`ZsmesG?8^U-}$ z+pau1FrjzyG5aRREA{aU*BkzL{NPW=9{+Snl_c#0i?@H+|HZzw@IM3RpOhNIN1<DH zO_$33D0q7EA@dLWzt|mXobQY1$OJ<>GWXBzyE>yeSCQS)x&PEY?VbM_`d9A1Z-1`A z{pKw5KMil}p#@Ui1$co(bnoWb{FXX{OE${oD?L|xt7O|`Y<$zRt-!Zx`5(Q0w)*o= z&;Mhd#qdQ-`~3cgB^Ad1>fY6VkhxTU=*5ThKY#E1XLw+_fNwiS6J{E;GZdS>UGVM? z_28W?lVx_5tZV5zX5?Dajjc=c8Pp}>hINT9B6W!#gW6`!;4V?$YP43%*H@q9VddC< zc5peyuzsGMafR}4<&ggjEltOCBJbJ1zv?b{s`{_=&+8Yyx`$s{Te?^4u^*@`ENGRe zs_rjzkXOA?G3(XoL%X)O-<ZB-->19b_JvokZn9fg_%rlBLtFi)z%TZ{e*9;+>6`Xr z`QhntV%Oi9tX|;R^UTulNJo{yT76_C%yygCoB!DVSpSE6jpg6D*=l#41A@BTBOd=# z`#1G|{Qc<6X~OqoPbhD1<UVnHgXkyw?i%;vNBf0hUKKy#l+H1HZY@xIb%AR?b466V zc*Uao{sFE#>{3tnKkO;}<L`fL-`4HhyDr_bu27D6*y*IC@zCLgcI%J82Ol5yb1(UB z`1Xo^!?c{f!1~sDhT^ZL_b;%YkC(QQ|2uQ_@{U~PqibI$J<$K){rW!x)4znv|2Th~ z{%s$e&lh*fb?eQ$IsPuwcl@cJu|Dr3UuW(kU9R`uyJL<QN(S7$xZB`6`>dbR!I$6H zSgt#tYWHHj&eH>l2U&_F>e?FTr(H8!{AjMY*UsOjcR%SKkTg`9USR7H;30axBL2Ai zhY2;-JFhN2cqM1;9e;`c4D-5nvdguvEf((h(!6Bn?2w9eCM)&dr(V7<bXqNBdh#8f z`O8H(zWSPnZn*k(-{s|ZT?@s^rn#NtU--o&y!Z94d21iqGJAfM308U))jpHwcGr9> zop+u0^H~o)5Pt8<P~BR2{%Ae#je9SQvZZTwpAN7qm9H(n@UJA$^G)f4bd5)er+&>7 zbQKAauc}gS`=^+-E4_LBT87AZH?(e_dOqW@Or6EsxO$UIcYHpdRrXYAFE*B$<iA%W zpeS+0<yOxft79i#emE;Sb5cd@B#+xgo8}0(iUgFJ%-U=>`Gefv;z#=2(f49kbsjX_ zt^ZN<{o7eDUo2WH&)D77Tj^#U6P41tNxddLLtP}$=eeE5N4c$~k7Uc<hwRBYZPVU& z%9`;FYpwW)W~Z%}YIw8DInMlQ`uW*XX5Iq+1^>1LI-L90rLn*@`?qwh*P%zJK&#?j z1i9EA6#aN?bJDK3?X^jLvAN4Du67($5YkxGxcH@g>#eWXc7OO~sn7Q^w>kRf%%_L? zIKLkk{VaO^Pp$92pZ`h%9hBdkmH+2ZRsXlz{XfHku8;F?asRU`@&B&+FWXgwQ%>9S zR+ol`X2zlhyX~|8dG_r8#-9IIDEp}_V!*>ygi}8A_`j8PP5Y{T{QS?L+}i%PlK(I7 zibajeE8y*rH=uS%U6%%U@Z^l0Sw-EY{|twG*BIQaObAbI{62LC)AEm&>!rapy)v|> zzv#;RqN@D(+_HDKjvaPwdDHaT=*)pn2dnfi+x%nN^ZlV)YxcSy@2+Vd+$CLV&Sq2a zw2JxdoVt)ehZ4Kxi@G!f!rN=AFT72bs@o}XyI6a6Wr5ufW`+5Mm%22Vdw=+@xs$oi zY}<wy&+L`*oA0>X<*+>X$9`=U+vYX;htCT-XXuItwdUT__BTCcB525Rtg21&7^mcM zkw6FI<O9D%r*~}GvDN!WbJVIWVP%qP)~ULan>=+qWvltXUc@!?gt5;8w5^$({lO** zMxbrELHcf{3PzOg6sGdlU_;Q>kRU4U4My3h0yY^on*!a7fMs*AktyotgNiw4V{-Fv zTL}G=Q~2L_;4OP5qw%BNTOxEW9LqJoemd{glW$xi-G`>%SlM{YOICI7pWm|=&Utop zNsi^>C`Osno8CNsnDOIGfk)N*qkCrgxh)s{{q_1@@laE%zczNs^56YVo!<Z5FHiq? zwfo}FFLOeCPv5-v@oT-d&DY-*C1&&ff0M4ZyptYZUT!q+VZ5Ts=^3s6*G<T=yLb2J z`SUs3c7OhqQl9>PYl7u@6YH68-f`^ENp9-AQ+Rw%P|RUz@q(+flaHTU|3LcY&ibkP zaeHsx{W)X9m;AC%=kLx9|4{qBto$0gUPYojqxZuKH94hfhawqO5q%lUbCVQ%H^sb= zIM*IBE9IA}?1~gCZ+0iO|H|154cojuuN`_m^I+<oCkbpTcfPrBYg2%YxZsTX<z_p* z*v%xDTg_a~R=}=SS<Jh9d3v%DpBLkfmwQ%Pg~x~p&L}^8MYUb?$K~#l1+Uxq7S475 z!Nq@XnbL0i-eWWFEh(R-`1x-u`=yAcV~nlOjuz$r&|G`gsOdS^+NQQ2to(a=RrZ{E zp!i_o;beaQN8B^J9{m%Id$j(4=b08K?RhsPau4-AW+~Td`z*feZ0!1vu^dT!GqNv6 z%-s|J;~ejfyC$Nq9=h&d;#&LAUhJB(*+iphr!`8QRL^tGbI)&mANj)Wd1kKGDS=6* z4Bk#MhwEEpr#7#XIIOwR-S^cz_qG+f*9Dn3G1ja;<uKpRUTu-Wbvvc(y4ad~VlwxI zC+(JTVu%RZ-1GWQyw%T}_0pXIw-!146IpdOPWIjAy&h)2H?3LqNon4NeR`*}np?^= zrG+jn<Zn>d*tA0D=Hxq9E%icJ9y5D9cGUXxB>tttv#$^3<pZSsFWx>~GC_TF2uDes zkB5Tv83zvq<1gvj^<^#7>lP-ip7LPl!c8ZP569G&2T0~j5A^fwDN3AieMWn5_Vz1$ z?UIQ{*d=F*Oqg`=qPoL>u72Yw2f05mK5ssyUhh>tb%kc&g9X}Wgf^~!_)(+u-<FP& zA8cyp%^tp(HJy8&@UFsH%>Q*(*d$Mt%C*{7c47LQuMIQaykeig#J1&<xtmws-aWIb z0*?6=#?%%VTFG-CY*XExeEeJAgzFFg9h{JQe!AUE>2<7|cRo>y-}La`{EEl_EEwaB zPipTd?>?NoD|&_Tx)`4SCv9Vl8Zt5&IFp2UGQyI?zKX=<T=O~G645oMZ?z8BmcpLO zOLLSShq(pvrCr@);~iSW8|bR`V!z9dLyKg0=gr-~RCGas<B6rDiOgq{eUJJ(dbU`) zotU>FQX|p-M#9g90<$+LDkUgv+Ex0uaG}=m>5FfcCr&&sDz>;-?qgqnXPjd8D%C2F z0<mPCReF+(Rz_bkIsIvVb6$pk4zKdU<)7ZW$1~+Emai>zGSo9snId?l_o>zeE5!|! zhI0}tyCUy?Wz{fx^2ya`wM5Ge`;Sk0*BhVBH~2W;$;<Sgo10gf?~)f%`o@j63RUTw zZO&VZEEQP1=fkAC%3i0QMyz-%teUH9{^;kF6C9GU1zXo0ZaZ?vCVu&Z=I+1<)#uX! z&UIGhb}U;w`E%8gdm7KBr>V_;V$*V~bxwPsQqjMA=kN5Ye|=EF@c!(B6VpqNg_m4n zyJB>CFXxg8cXqT%?_uR^t(YeMcM(gY+p4(0O9l+4g6xsgg?27l|8%XQ>-m!+wmykd z7m2rY`CUnEemZd*>moMK^Ia$YoY=cWyULS)VVUB~#5v{~FX9#c>a7phxjtZv`{!t@ zlIG@z@)x|6E94H|4AWa@tQWIhLvv<v?3b=dV$+_l3ZLSWwjpRYqw1#*8^gA9w(?)x zmM7CMpUAiRQF}&od={62%PYYrH@69iYHyg$G;ifJb(1UC4_h30`qkjX?uUv?ewkHH z)apDP(c;nOet5fqRKnq(SNfUqf)Zb6-sWBYeA?;@Gg<WCY`bdoIr*Hx2{Ep_77T&5 zii=fi^m6{m`yX>q%6wXtl5zS?_Rjc#_S<0-lvBSMFmCp0xqYow%4Nn1cDBrIy7EUS zS3F+uS;W_K&zl8j<Xqk=boM`xS#GuS=$X6A-(UT)C@xjQ=>NGLyZqSob}mt7)={|r zZr??}kBc7m<tZ-RE_B`Od*`Gk#%V97Pu+5=FmH?h6oVp<+igOnTKnVjIokx9R+Y{@ z<!-U2M=3Wu&^NHf!=%aP_O&%qhd4I0Zdq>Fb7A`T<`uCm6Ak#*)y=y5<E+KXmD)d- zuK#4e;``;mjbgT&K8xL+vwF|Nx;(`WiSE?~zg;{tn~Sw;7cH53=&4=pqLd{M)_F=Z zO*wJ+M3k)Bj(hD3g7$GJC-RlKN=(f44)RTG@i1?)xgEAn>QF}$<LfR1C;O!WE^n23 zS_=8RImFW?^bC4@@(SA+`_n33%?TAqwR`+<#@xHU5|3|pe|50P3p}}G&gSTtg4kah zyZ3iYy`OfU-ORmUOT9tbj;a@H?p3kMAAi5{`P{$K?9PWy?L4@bckXPl!WfqHY|*N> z-VU~lQjAV+z0)DIQ(^s6K}W~D=*m9sq8W$19P^@QX9=Y&>Jxn8xnb8!zX_?wjt0H` zuu&nq%8_qjnc|7WIn#FprdF9>{2e=U`qv+K1-68$x9b<=zrJw&dtiEdexT2LZm*{- z_MgvQ|Ly*nx4e&iwRT<Ers8bRIU56c_igCa@;g_2UE3?lI%fM#b*~-H=FgrndOZo+ zKP{PU>AVF8_D=X^&^|Tj{<gL&Dqmgx8lRY)aP#uqE6#lhp_{KrSFHpk`LBs{zF*%g zsdgsr{`rp`q4WRt)d*CW*&H(d+VWQPSaVU+skmC{vwJ`E*BVItp6Vbf{WG%J`%i!2 z<LW%yRqv*~$=|h8YsV2mwi4Ix&w^(jJ=;+D{6^Ea=GPXNwY_%i<_!Mlt0}0p{!_4T z_D<J;O3ti93)FrntE^^qO<7%LyLIhBlamI4;hdjTB5b!zNSu54K%~j(4XV>0DrB)6 z$sD|?pMEtq_we)!fe!nB%s1E}{%m6SE8}hPk3Q!Z9bJ8X{rhaCf}hH~^>gOSKlm<p zQT1r+qgy5U7LgKncxB7GbJwJX-|37CyyW-E$F^T+E64ihQi_6METUIiIo3}TRt)bn zcz7>()jOdlp4)$hL~kz&?O81TP#{ZON#@v3?xmj%SP!PCC;xvfJ5@hXM`cD{TVTcU zH+wdIHGBSJ?VV#j%N_)M>6#S8dadl2i>G({*12|pMu)1tW;u7-%vp0avFTw;%J$WL z-)<d$s1h&g$MJn%P^ZU)^xHxKISY4Rt6cHV*`j}E#7j9wrMOpej*^dbo@uH*x-S0p z{Defe^Y?xy?>|-hDm>cnwB+x-c56;qmA6Z5e#o}!Y3s{dKXZ0Qdwcw-if#$qw&CC2 ze~zc;ZMYbgSeoW+ma_W7YnfzSa}KYx+q<$RI5l^_u=&9~>9m&1j`dSkg|}2>HOb5E zzU<BVZ_hoRkN+7zHLXYiucLykZh<Yq0XLOljYjxlBlxCRw2kQ|h*eik&MvO5uG-Ft zIhjdCnMChTH-enLgKL92@?K?7hX7@X6<9BZTM-Mi^g+wKzzd_$9EX2-l)0$^bg^2A zf-Y#2IbwAbNXikmQQg!CX`{NKxd{=gqfCv!Zi1|i(ls?O23w$DXk=obU~X!FzCa4x zH2|$ag2xW1`-0(PT(M({h#l}2eO*uRzI+mPk{f}R-v!~^Nsc%^z{mjH#X@l_NH2z4 zvBeIW<FLk#uAz}W)`J8LERa^O;XX*f(8Amd9QHU?uMs#%z|_!OLD$H@Lc!43)DrU` z0q}WRD1IfkvkL2?>bt?ZtrQ(=Mdi+_ktz7>E%4b@urm|D9C8k_GD1l$Ad_Jsh`Y0D zXklRt(grKGD(0Mx&IO-j)i>q;hD%?YV>PAU&%VBHl~=3Csj2ra9=aR4N-M?VkZV>F z2jAX*zh_6Pi_E&a$I!%)>qy`1=QlsT`F!TwuC><}uez_Tr}gbq>g&=_QStv})^Cbm zZ`t$flGWe3tGTk`)Bh$0em$M|I;AG=;mYlI7hRU!TXnSTcJ-TG8z+BYsV`EDJQVaJ zxA>&n-DBtM&)?jzadY*p8<}spr+swUd^s-J{Xi<Guusag=(MSir0gUPgtDtoi@kTi ze3N(i6yH8RDeL*lV)cp3_nVj9JMg_W<BbmgoX<A33_7h(J9qTIVK`YhCBSC;6AR-; z6RoFC?FDv6FS-0(Ul{EAH}Q^$(XalTmSYlnsy8|0#o1;TOm>u5^6V4mV%_4S#)1t$ zwfz>)-Z9hdZiM^d8w`1uUD%T??!GTMX`#XT;MvLcRmMkM<r;oo=*#_L*H%*{YhG%5 z!K~-AME{4gyCYQW{gMrSZU1Oul(N(Qq{A$a3n~jP*vy~Hd;XD?4(p$_23isw;y;cZ z^*9vBq|dmXCr;O<lif({XTS2EBeDN`bU>ZdC5pFNgpYIOg>pR4_nG~2O<^#H4f`Qe z$u)g;enrp4F0GU2F8#kqyf7~Q$8D9WBZ@(4PmMh02ArHcC;edb!!)sF=Tl?ayDm9R zvOLfwaQs8OpnGbfR$GDBoWQ+R&n7Cqn)2F#AyRl>sOkcL@%hRVCuhqCnygp<Z+F(R zPEBRIWCVjt(B_ucXJT(vzuVXAqH)>A9n?v^x95KHS_jkJ(P5#M9O7Gkr$(*~yl^hW z*(vG_;|UhmXQw9p4cQ%ax|J)ThAGpg$5l-BsPD|H`Tu{k+^T528F%cgj?^)ygipzi zOji?_oS3FAw2t1nnKka$)V8%jP3dh~O8r}Q{(85-Xo>&JBCkcKe<pt0$hZ7j-b!6P z<3AnWwTv_us5F<SH`MX2=R5U)q3D2Bux0V`FTtW&UQc$s__W#Ojo}`-Dd*CKmmlWe zP~oTCx3bdo;myU-%Og*mpQB|gw({bx>}>Ahlgs!7x?^kkgAO!>?K<djGFW~6vbZT5 zxnsiR`MOT86Ic_wNz?k8m0R5V?|ip)D))Tx<W6W>I`fIr?9PW5A98A3)?6YL@oxSK z^WO>qf`^Tzrtw?dYQ26@de2_<lI>SL_N-;}v%h<N=7J8<=A<-EpIp7GFP7K~TO1V- zd2aAwy`di4EQQNSdk<D`aAjH@B6%oJ=ut$^I`QLIZJGR&?|x45J^Hz^t7mmW!tJN5 zr|wiVlwFs7RMeeVVqaFhbxVTOuFvO0cbli|*|3qNO#FeXc^&6t|4){V{+rhHS;c>F zcJowSDcq2|XbSW619xu-sOGFt`6f8!#Eb`3M_HcbddT>%>v}lX?$q(ui!ZMG$6s)P zn<Z+kheLDDnRN>otTa@zqyN{=nsv^-=TXr%ho7c)kB%?<E@<D!^7+C=Mvd}UZjtvA z1Phx##rEvGJkg-+Tmt7`ZQmUq4(E8xSaNQMS+uL?$|=#iL#J#piOIR%YwYxJRhg^T z6SGZMdOqIlSh!ixzTMSqlF%)ViFrRVqO7DZGM&^*R-San?az%bW{-{^H1)WANGRC- z{zdCKjUjg(_a-V#%2+S+?L(Jc%L5^2gJsFnQf>GJr5DZ>4YfbF!E?I1^P#0p$F_Mh zOfT|G+7VPYr&rfg#Q$tr;3?Mg%#j;5s(Ky@RdAfP*d<TR`{}ClK1No?ABzpR�)I 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ξ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%0Daquy44fyWtksB*xXXlX9B(_Dz0! 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%0Dm&2FOq!^=O<Y+|%{_UWgI>`P`_ zsZZfg)<1~**#4ybz)!)Sf=Vefc$8UxN`Er<@XVVu+r#xc|3s@t_3kmw=Nqr+8nKtT zZZh|n*y!%URMp$;@RN&E<NULC_stLA&9VJBt@gfc-kHsJZ|#52X#Vh|R`iYSCwwc* zrj);_W=ULFop3)n?^<#Z|E{Zd_AI|+`=syLG~4Pw3-#-c$evzX^=hs1I~M(qTlSc~ z@XI^>Wy{YmdrY7Bea^CZ`|k8Rp8P4xgYyg0tGCWO{4V>QP5zwcGyZLhe(swSy-;!c z6HCv_)t7CT-!;D*mcQ)zn(8yL56^y`lfU!ny|-uYm!FS%v+k>uP4$<~JnNRj`Mo=4 z-+TK#Mr-#Yy>H7Z{8-xUe%CBKZx{b!^5>V;Q9m3{pUo;&&N~;JRJvRF;C!w4%AY?L z$@U(6`c!*)z*A-I>HHCL`+j}At$nip<;>#mdmeu}^W*f&^7|^~XD6?^zT<A(=I5)b z51p;dohKb8`(pi<o?ov{+CH`W(Rb7M-Q(TqcVq8Koll9}{+pxxiR|&qr;etJ?|rR) zU$LGq_kZ=1Y7L!7RY!P5<TeUzY%+7WQ~bo_r{R%U^~D;Ed)(_9?N)zVVcYR`sj}^B z?zY};>Ho}AH|W3R%-#`l&HnpE^S`OPR$eQ(c6*=yzW#uS(g@Q-iPeV^!nl4{-MBtc zX^r8T)+vd<4}EL=vbe)N;bhSfqb`Bc%lW?~Z~PKg+<szlepUL0jdlkvZxVG{dSdbZ z6Mtks-7S6UeY{=xO@&OKazXoJ`B*M~<!Hz6c5`>9#c$bp{Ot|%7iBvtIkNA{zRTm- z{P5R`n^70u+P!;sd-|JoCG!^+iZ$<SzqBuE$E&jP*=rT*`<xb?-I~u)vXdot0q2(h zT}Ih=VdYQv#eLWGxF1|_Cnt5K)r+h9qPi2~-|x#PpWC|jis$=XuO_a$RJK{D#{J2K ze7}gBv#bx?=6lGuKu6MC?AXy1H%_Ja4b5`??5`T%ZcqBU`&GH%#Th1QE81UeFk6yh zI^jsxgQvax=Kt)c=)6#s448aVrT=A)Xypbe70)l*<yCBWx9rxK<Thz(%pU>4Jx*Pz zdm@({C}x?cBl%tI#f0U1If{aRaP8B3JkQOmM)rlyosXVB+b4G2<7SdQte#@1cj0n# z^h3YkQ)`)QZSFB=O#R5+7|)(^$keD#>xDUUF1tjEVW7a|gC5<Nml(bf40<f#^}<lb z{N$q-K7S<6K6-2Pu5`sw%M$Lh4<jW1%Y1lQZyR&K<CuM4$OUJ&0Qm=vI&JS7=BJbh z+?{sxjbqlgdJ)+R&DIKYP5QQNuPX66w)pK?HWh9AYxl|wK24p!XYa*-|7}}t{80Y# zvOYdsdx@s{jgPj9>8w2-Tyqyqe)?<O32#@fqZ5*LA5wknro40!zeZS~>eI=`6?#RK zyG|SFt<e$bO^GY?Ds($0@2uszbI}|hja{PdsfLFiJXPJP`b6Y~pIZ8pX%h}Fu=Wyk z?PHC+#I$#r@5E&WCwJ^ltlQz8B^u@0*0bJOD}wQ^($SPqLG5nF|0m0e{1;9sJXn9p zJ?W%G<djbzlP_FmY&pR(bIQ>>t^11R-|+0}vF57EshD%)gqmc%#Fr<NVrn=yD0RPV zjw|U>nNXzkS-jkV%k-UE)~05WQ%P?wgo`!I`oQGLbLu`%*u_7OQ|{=Tcx-g9QD1oG zbql#)j~N1l5*)>x72KNn56>`af4<c4LirT~Kb<7;C6Y%UZ`xt_MMm%V(+sA*yA>S$ zCz9G1$oD+Zd2=Avs80WhX#cN5n}~ZV-I?usUeraa%WN*(sk2UO%gu|mGVPyJ{v^FP zyFF2D2XE%2RKwc~%`XcoboVh>+>vkJxWULl>A1Oe>*l!jL;HljnVmTv&)Y0>_|@T8 z6Rpn3rMaJPwLCn>L-<?ohWrH^49ag<YuK#etx8jQ-CI&B<oEB8{p#G-$XubN6EutX zQzux?co-MHeN}WI<Lu{LH*La?JhPOY{rt>pIYy^`jrX08y%KtUc%Rhx!rU_TvX<^0 zbC*N4x41c;&yt)V!RD;n=4BYd(4i7H%TIL5x3zCnlh^+3*tkvg=#1RwGObnZc7E?Q zq)OFpr^~8-mA#q#Rrc#1W9R7`zVF%VxqO@X%ikqozb7U8f9uH8tX}ePh2Ft^Z!)&< zKmG7c@%fx}*Y>^2SpU2`?Nw#<<$E95dTZmR?75JT-BBcSPR_99@Kx96@7Qt!b|oL{ zI`;ZlSDW^(TWuD{4S$;^um2mB%oU?*<#(f8yws|Fllz>lyqe#B{>r->RJ(n}=NX!J z1@gSEFMZi1ZPZ+HO<GN{Y}3MHcGoAYmR|Kfuk32M_*To=3g0h(oBb>Ax9?%q!%GZr z7hapP?!DPka~+Gjylm_hvo9y+XH~p-B6X(E`&h=@TM~DZG_01bE{!pDdwxY?@z+|{ z=|w>@<~@1NJ1*v4vf?)jvFdv%+k5?MUz@gT|H1aa<oxc#H?l2wr(LyB>rRu>?oNBd z{x+DG&pp{M=Jdrm7S(1y#J`?dy`X4f?A$NYyZ0)_)-9DbdZ%ZVedq2Z{(H}iqhroZ z6f@qOIw$Jco*av}Z?aY-7p`6S*lwBFr6l=GlN;`H=4{^4XkqnzUXI1~?@LynicIw3 z$Pz9($$v+!DeB<nSAQc-|9-rZJNxe^^QyVcy?6bzw>VDTyL~C&gm*rh&s&~)`*)W~ zb-nj8<J)%cCARgyoc1R9-05!%*=9d>sm=D@Uc6#yTct`i>&?|)*IsxQU2OHr`c1Iw zbe~&d`&Mi|nzldf`L}ucvoh_1O%}fw^NO3la`x49vuhhB*|RNWQN0?WJ|*&^k9T{q z#`5N;4<?tq6l$ppDY-G_UeL)uv$yz*^xjsNs(dB5Wog$N!Q@s$DX$BnPn@ULE?9Bb z?!u(kXKq`+Td|#A?CxfMGnvv?-{vg~@16S1@wemhb&c<mS|`dM;Ap?W(RH}&aE4!k z$$zPy$6pPa+7EKvYcks;_~++_^2C(8XWTC9=CJ%@_^v9rzwd{sR^sBal{=bck3UmP zw9AaX9?N%UcGJ?`iQh6AUmM)`s`u1zt~Wy>??XY$%?0llxPDLF6Bxl6aIB?=+t|o& zLg9<zR!ter$Fj{6>SW{QaUV~s*KB`h`E9YM<a(JyhaIk`##p)YpSJiicUn|Q)Uocy z3IEzZ2TtVvek_1XSAN%<Yv#q@E+-$^zu~dS?X62+>+QO?#i-iin74b0e7}O+I}WCp z`{(Lyf2TSgIpsAYwpOlY%T<RLGv{vG=Blu3l5o`Q>F=f;s=a0+a7>CboOA2WLs_DW z+lA~LpI?mKF>6{@!_*jghQ+guc*Ps77$ssSWM;Hj8}eu_k?LFE<r3Z=YsCBI{}t|= zcCFsa6h(Otg)Z$`-fC@BHUH`3+8tpGs$y={^(<2)wy>J9<s|4Tb#3kFUE`Y5B=*qp z{ARI<2cwRxUXx>N{x9qC`U~QbuTOB@v=UjfPFl6@^BHIDRSnntzpGoR)`*^Jv%A3L zQth-@#f|r^8mG;2m+$?#|8{)sk(OV6J%IgHOsU-$g@~!ETWwqZUMVh}R24LrYmb-1 z`uYA>9%k)$-6-NxJNfUi2LC#buK}#dol@^Yuaw!xuY4E!ebuti3%{-eGOSi{-Ti9T zE44$b+!w5lovZ2@ynJ2o+|WkTRhb>DgO9TYt?XOzIn-95STxCJmHMQRm#f4|H*p<H z61}r=)w4f_TBTd8qC!{lg<oZme|I}{abw7;)T?|~7jd~UPURNdA;q<XdH3>A&Q+YE zJ+iBcI_8GS@=s~u5@ELIJ~u7oG$Z#^{*b?3FV<^GXom!^y6M36H210O1L0S#uU5Tk zJF;5rX@^i%&nLzumW!>_H?9u~U1_tj#W18&`cYrN{l6>AH2Ae1+Id_0oDbCtU9A$^ zq~#d7yu=|#|A^X(Q=y?k(!8fcReLPFByJw)*SXr~;PrHlQK;qOJA4~WCnT@YQVdW! z740zbRQ9Qi4qcZ1u!FN5P8D~#K5cj;ctq7v?)j9>UY@!d{aXE6$EL<|&G4S$)nU(7 zmB;4gUg*fUxG#xs%e=6-DIb1|EN`%9`*Zk|F{8YQ>?s{r^CLYDKHZz5g_6UMX)dtU z_H*)CdP(<U=%NN|A6ND#>jIx?o>t8i6P?)=)6x9XZ|0ISycJ7#FpI2i2nv{TVf%$C zoRdPPpIF7@<uK9lyePMqXQsw4(Z5gh8YQC_w%({ay5mvZ0ihQ!OZxLAllZjSM7OJ2 zy*{bX80L{S<Gr#_Z(8e2nZ>&gKCwC?8!~6gl3RXvSkhFArp?oSCBm-ya*^o8C6gRp ztGg?hMI{DZVGWuTv&kWWMZve=pU1>iC-|4N+|-`eBP_AGgSV(BM8)&bx(%|zFPK?= zF+>KfP%T{kQRe01-CQbSTjr^ipV)KcyWgdg-(p1y$|m-(<{W(PsVgT|7T3}IWpZNY zIiWkwJQBy0YM4t(CLCC?L`hPGdHbXg9%U`LmK#-vyo1~xdkOiK8yNoZU)0%og=Njb zof0<7b_*TR*{H(lpCs|WK=re}f~;S;o+9f(bI(04bsT9i68{Z)>L2m(oSwb+tg&x; z{EUqocQ7k2$#B0eko(`@-@`H+MbF^&*B2s7=AFI4vQCdRXrb~1b6MtuKZn)s=zC7> ziz+aR?sn2YIJfcA!HX7Bp^pk&_O^ZGw`N*-!RQv_>TV~qXyGkA-b^oVa5ewi<YN^5 zS<s}{_{fc~Ys>9#-WB^LvW)-Pss8fouDkAklDk`Z{EPOYN5(g&{C?e}tNron%h<b; z&AY9Po*A(juiiH$G;-7F&{DPJZCO(1qE~rq-G1?P-JMmt5A6Pbs^luu)AX>^GvU+I z&!ok!yb~8Yb>iHu0be&%`CpwJzD&D)_3PDBul8PjcvUyDyiE4L(swW4ughL-i~YI# zlJ>N}47DO5^E*Vf)Lk`huX?nqXtl58<|}$tdRx11J=uIb-&@0ah5dqXk8sOBUfHFJ zTVHxdJ_xQZJ)>8=Ec5!uS3h3aUiG{>_v*^4?W?zk%dbAS$|iEJa~Aj2qwhGb+hwl) zY@ZptQ9buz;@ZTu8ckQrRaU?MYF{XFP2=sFskQb=l0WDDWc8N$;C<m*$sD`cDQi7< zx_w&U^GV{R;QS=6a@{XClT^Ok<!G5?El?#Lb?!Dd(~Ymrg4#;+HcYs&PJO!l)0G(q zihg}**%!W``IEy*gJ<0V9_Kc$o!Z(m_p{TUw<44KH>KV>vrTHYH&1ly2kzyqAFf7u z?%{Qc+w-kecG84n<+qCz*HrIhKI9dBSN`Zv=fHQG{$caO?r&M9JpbpNnfEy5o&UvO zs<3Qi?C#La)~x>1Sg<c=PtJ~<O>cs3`rN#_sk(u^pmzNmwh!y4={o&UZVP<SxF^E+ zKI80t-t)gt5;nN4edC1s#wkA~&eilJ`1dQ%?3bR=e{qdzewtm@O!Mf7?vu&iBWIlD z_o#V2>D+=ZozZh!$|G{>!zMnLerf+_^6Rg5Z}*++`_FJ(tfcL#qaDNEl20oSC{|3o zW|cj~^xP|fhnucNY+btfS{MVrA>WR740YzNFK2{)uKqmnTDo1ec7yPHX6qYg?y;0l z-ty(OYD`so&8(|!{oC&a{pEXm|AKPV{9C^bGyYyEUzF3L{D3odEl+n?UH8XVH}zl4 zpY$=OK;8GcLQtGs^|V`RkC$$mxW(_-Wu@s$RQ7FsH_76iK4;Ze`@jdh-S+9n-(OUo z(wUGy{m4DPi}#v^s;ynCqgB3f?XlYCobvVawe0tXGxydX>$5$-=I8+*r8Up?`943K zzGm;74c``7FA>bSy0vlbF0)Nj&oAqrFv;%r?h|P%y?#A8%VRvjQdW_>XZf^(k2RA8 z^5(XEmY686-*TzgTS#H*N!Qua&lEqaEH;#RTM%QUKl}5Uzdg?+9Pg+<(wDV;$yLo@ zaN^Y7?vF2i%a!P9x~Z$&@wxV2R3L3pvyh!^^~>V(7H(yR&mP}?{7cXJ--M@Aj%2m} ztqQG?WB%tO9L@emzo_eLlYvFs<=PGR|2D;~j%#1ccCl9fVVA-Flke+3?!GN@;{V%9 zkEK;Hzvo{nPsxlsZ#&QFtKyD!=fd#3ItRUoFHge%tIB+MwEg{>tq-^F=SjVpUoX)0 zdv^WbhC5q#Hs9H#9r7w(+qqEwqx=MEqvcbD72o=BAC0y9%eXV3ZuMQoSHFu+eA-;= z6@5_s^g`9oaVv}>OzWn6b9>~e_9gbCoRS&8Am<BHJ|;ou=%9+5i>I&kob7Yldvg2< z?dlk-k3sWSt}1!;lq)#Y^XlwevlPqpv-Qe5OSVnfELUsnX2JF6Qe1S($rUR%z9~G} zIm7d@*U3o5sV^t$?pm^H%l#iqQl3q9iq1K?c!`8|yjA|ZO{!D2OyRqA$!p!dFGr>Y zT7_Drbm_aUFPT-g=jMzlQM+Px&6$#QS}(RX`RcTERsF9wOTv6#Ht6mw@hnUE$>pvX z|4`!ySLSuO`EOU6Uf;4Z<>S)VW~DFZJXm}n^7Y~ebFb*HbU**iRm1!so8$5cr?T3< zX75VaZ@M|><Jk|>Ki`|P#cgVwUU1Y_eV&N^=*KOWHcOpqTieOB{7YJ7x9QR?$E(&w z?7pU~czpR9UAs58J_zj+n-Rb5jKPg<vUew?o%Ftwaxt<?H_V$gU}Ng{Z7*|853Jm9 zCF;%XSKDsr`bL+Cm495&dV5=d%_NJRxs8)j%{{I$F#0cO*!HOILO|dh{a33NRIQlS zz~}vO+LqkQ(Iv-z=5lvF-+p(K%$AbejkC8*(>pEb-M>J!P>A*3)xQPzPTf0mRZl7U z<3xY+g<ox}C;eXOw(YFfVbjN37OE?rs<=OcDZ=oc`5CGCGo}diNxYwZXnS97*etV| zNj%KQte2@sO)s!j?3$E#%^*8y)|BYu4t7(W7UdqC!M96{CALj)ReKia3j;fodxlxQ zAJtNwt~~RNJ|3}3{mUr>?u}8-{U7rVeJ%Yp^ITZQqWQCh1C}TrosfBgJw@tF!Mtn( zhBIv?`~MjjIj}kWj~CkUUa{WypH$Vw{u8WARP2@QowJM_>-fz682?P4Fh}jOhRmm^ zCD}DG&3E6}nfI-`v$$Q-;6R$z_ARqk>FmkuUwSws|D~B}RNt&9o#Vc9rx`Cxp2odQ zcv|<HUrRbJPt)$Hzf?5$<N2t(ndhSOX1D2<`%KrlylnNf-OHq>{azM$x+(L{CxItn zK9d!y&wpw;`CH-D<>}Hw8Z-E`%#%-iZeN&_z4^;bzUXs?yI<_QqL(%Kyxe@<g>N#p z&q=Dvw9<0E95maD=jbwaRj>LuyS;~ga(QcSWnDM_Q{Pc{sgv{i(>ADXIbQzujlRX6 z!aWHk>F<vfN~vuTIU};=t;~(E7=vA3AD(M$sxBzANVLAN@yEKBhdZYF-kc&7<*;e( z0^NnWi4jX0wtf85{YB%&tuUXj9Z@c_tdm&}vrgxdd-LYzl)anNquuU!?b*7ZSI#j{ zFln9G9gQ80*S@E*x=B8&H!#dMS2cDKYZcGc>SD~%^3vj}|5z4iqo7$IGU@cL+xu&L zZgRY>%YKv|^qK4P<;78-V=Ju}MP=>?oqd0z{Pgr&yC%HvdVkjVY5C#Esy{A&j$Au) zeo5ZinvM2Zvo3|{dK`OtJh%6DlxC1a^y_nXK~CJ|@RcK~#_H2grQ(TeSLo?$XIbfI zzn&}p`?1`!;}?}r$hOZowP==7)pT{6=KmbYURN}_t}K6T%&qs@`0LE|D<9f~&tHGO z);IRWhu87-Gp}7<?l57xWNyozZ)>C{?sAJg&9-_S>k8p>w@cnOoZIuU|6%31UwbEi zJ;5u>V>ZM08PDf7)x$;i)?Tmfky^}l=-*t=V;YBz&ak~Y<a^8_St($OqU5t_KF<3M zuN!a_i(PpAcl~$i#SK9{JDFIwNQU(uSz)+_YgbQHpnr&i`#s&mGToacgUiw+KlidV z-=2|i;o!v_3ymyEm&U(;`VIcM$fa+1d8~BuF3G#LcbV@ldbd&TrC^I^)mFQp?+)^7 z`>(3MnEW-9RrQxg?KV6Aa{u+0#b2-e#pAV0WkL_jDF!*^&TZ~L%`SZPxWGEgf&cQO z>x@5rHd&ZwNL>woQO<1d8_(^&d!OfpMceCa?zzoL-0-rhWbdwji`;iL&b@54IxoO{ zNAWHVZ}Sk7#nKmgUtB7gUV6R6{PXt%r5p2n%onb{;QKPIG<HhYriL_yW!x1^Kez6! z`}b9N*TL)OyLY**kXv?iJ@cp6sfDX2{Oic`GhZKl>2AvnRoUgyVq0FMU4Q#Fc1`NN zO}6hobjx#@<zC6|O;okMV}0kA_N|z=xeK&^y%7)NN`AN|Ej{W@@7?$15yiIqQl zyXDpAB%vgsLvly*mb0u?+HJ7Sz^u&rX%JV&<@Ai#TedGO<=B-4w%ob;>DFW7VO(O{ zd777P*&un#XiK3X=bGN5Tv3PQ))f2yRX!7*xRz(4{)bspw{F=f&suiy`eteE^WKLA zBrkut6VR}QO|d8Qm&NBxUyNPy=5@*OPf&B^F!!%LvL~z{En#`s<c}K<Oncn5Eq$li z^5-SbW$NpUp2wVPo%7gIym;M{JEttg=kh$?Ui|Kf&+|LyBTqzjZnMA7ROr8H=N#i6 zJ*K-%yJoLG!@GP!#_Q%E+yyDS9E7hjN2yr(J>Bvw=6vOh*;9+vtSrsbirw>S@+O7N zoIPuIY_(DQ`IjdwXZ;TRR%L%Fc5;=>&3zSLFZ(`<``G^FbNTF-(RKd+?9-n!#km%m z{ku8$ZZY2zCMBiT1&o4BE<F-XJ2(Ov1r^%_3>1R$ii}xUj!X%1U|rHNg()a&;<AQm z{yRkjFD`n-s~OcRvM9;Lp(n=K;mhHSb3dQ`Jv(XtpZU|)|CN)g`~7V0&GNK+JKw!~ zGw*!ss%hVMO$qx}v{U-fUEb>lQWcFK?aV*GwIlw^u8k+E*k=hn;ZMvq$=$P^XZPXT zx~}hCCVID=D|}-9z~sisV+Z|g%64_yl^wH9HaYpv>}f@}&CSdir~d5@R;pgVxIW;; z{kOK+Pga~bSF-S&+86$eU%%=@{Z_~s%33gT=O-D<t1Xz>H`iWpx!Il=iFdtQ^%rj4 zAGLnkro;AG#dFtv{~3M6cu`?->i0!<k7AR5Ov;!OvcC1<SEsp+cbp!zzhV`eXI$g` z<(<y@&WZ0Ys@b309#^fr|5T)R>pzhv7YkJXbQ_q6Sle?svwLm~_!7tQw=n6MlDW#- zlqZ%)-n>~l!P)tLPr!S@s*F3oC#Gi`S6P1Uu$*GC`(f3>tT!LTOxLg~pQ{UQ7JbM4 z=hm(_9$L@W-Y~iwQKaX;b#C*gb9016Umg3jZ~knxO}n`&*S%AH%ea%NPEo3yS4Xh- zGRxn}d!lPDophS`HRHyt3qtEBPPu+d@Mdhg4cj~QXL(Od4dk~KR!O8yo^Q56c<0v% z(I2+O@7x~QQF9_og@0DL;N3g}`C8TI^PE4o8ic)^x$(~H$Kq0X-?q=%{BE(EoWl0S z6Q?V!7n^0#y5;BEO~*rCtb4fTT85P83OlbkD;v|abtCT?XE>dyFzM&`t9fGPk$5Kd zq(t^l6`Z{Bo^w<;h>A^1($xwv{3NCy(!SxRSmnID+oE-HkMCwYG01&W^#8e<AN#pi z8K*g_Ig{IWUf=6A&-W#p;pNwN-!8g%QpwtvBUX7~p4}(AC%OfUAGw+K9<gs%<1K6d zx~RxBLaoqeg$?6v=RaZ*83!YeKWskIc}VWU<9C0e3pUg^Iy^sRoE&`lF^_oSawV<Z zNy~+o>xdbBQkhsAWcX3_*_;(UJlRiPUHZauakKLM-BLdpEn<_x?h8JSOwO@O`JRwt z{A6yM#QXT;aScIY_7^s9wz%dmVcUA<U23-PoACRM@*$@0CwIvFjVMbGuNUhw|MW6o zj?Hy}S(1%^&)%y()B0u^ZyHxwVD)C7wR;7QOjQ5(m}zFr%lrwI;WyLGm-ak&tLK?n zyXD?|h5LLP-k+|X;`A%z&5|48Up=4lZ2HvZ==EggBsc!{vl2nIDtA1K<n$a4N3UL} zb4l0Pj#v2M>IvIZoZgu8Z49=w5#O}iO6K96UoD&ZudR2Q$B=#?`l0hBslQ1-+E%`9 zoLF+Wy!GDnLjmp!xougOFQ^ZbsEc_aaNku}(Qk)m%iJ|b>>Xb)?1)=&@pt=#jSt>B ze>T^du2}B;?O|%hrU}c1>$Q3&h1vM1ebF&|@3f9}?bF?z{ww;NKQk}Py;#%wOyX1V z3C<(ynY$No`v-T0ZV)&d6w$Et--J2Uix=va*8Y&2)mk9o(^y%+v83l-?UN(V)*3IZ z<`k0J__KcAh0YV!9_E}o%~hWNGPq`R@r=;5WqnzJ@e>0D_QrMob-j_<yifht%sIb# z%Df)hnEbfET<?z8xm=GImm_w}y|6aI;r()DapmWSi)OUV6BF7UeQV)E=}mPF#u+mY zr}jSlV;SOpYxx(x|FH|dFEzLl_`=EmpyrGDqHXfxR!7P&&Jf$zB(|?<+g_)rHCq*m zc64sl*|h1JU&QQ1h3o>wdjo`D$vdfu=F898Ke0-($UH?pu1$@*((2>#LmEGO+E2F3 zQ+*bDV(WsfHRc~VuNG$1DQwZ5wf=&Pa~+>$<B!q=!4k#CJ-fNY7DaM#Z@4BusW{(c z%hGlH_nkKj@HJ~1@bfiJxwyN3&W$~#%S!Yeos`Y~pBJ_gtYm+wrue<>NsO^v)y#~v zn^sHToqAxmP;z>h0oU4um?%f<c*VDKwzxT-yQ;l$L&ug|3&PFpiu@m)QCXYrv0dbx zvvcjwD|4ee=eD)j^=`e*dAE!8OPy7bVUe9qd*+MG@Qu6At~%Js+cEQ+-0Q<Se`2<* zfAh8NJ9p`%3ytfVWH0hJShsfl;FIdNs1mG_{?F(XeYml}?3Y)H&W^_q1<&ca{8Qe< zt(?&{G2iJOOZvi@?Ba*x9r&YWODj~R>lK+U3}0l~{Y>VQUCNrBi8olSJ~%$Q!)d)> zr)*lnTG2gHXL~P9+itc;+}D2w+v~&I3?#RyKYRZmIN~=?P}X_%bIV)ywbV?w;PPbo z!^JK09JhV_y6eLBuTHX+ZxhUu>Ka<hABw(M?|44)o&AH_4`DyJYNlGa&e<y9t5;O~ z<ZnyV-^nLbH@O+T&Ek0LwL`9~WzB*qSL>Bc)@E?L^)=C+uwT{B>y35f-rJ_SH50|E z=ZP+;y}e1uk|kW|R_Bb@k)C$lb#{iQFK$?L*|}pU4{v@^)%gX9=1U@@yU*-i{LU(( zsa5OA+l!u?_}o92gxouNvpH?j1<6ydz9(#G65VOOF!th-ZkcC$!<I|>97wZ!{%oPA zO8A@krEk|=wtduV@czWFDc3VIidEBh-fgWDUnt%*`{I1@RcpUVDQ2zvH%HQ`eBG1C z`i$$BmRO6WB`)80mbuJM@m%2R`d6y{E3OAG+B;`!;I-$wj!ffwZ@6kkoX*1dTcvhO zZ+QI;n{X<@q@_)x`{O*$ujQP3?Uro4b}h4H{gv*k6T+-2BhE&Ce4-+E`tlmto!1N| z&$*L+U)7}U#=)&;_+I&0Nc%NsHrDBHRfuUzll_!qbCXHz0M|Nqt`nU3=c*2dMwIkj z+4sWt)#{a|8#e^6Sk)Bd(Hp{6_U)3{w?|j^R@_*oG3$Htk7`NF?@2emE$}=N)4ONZ zrB1u1dOk0o_iEL??X7_yG<Tfd_IAPgwacFJEadG_>#jPloPRqv_QJhwLGi9z+IOAk zPkf#mw9;L7fBtXTPiAj)mi>QsNSgOy%9rGob5GuQnHfDj*Y(>jp)&re4Bef@PA@NI zs6Rh(-l<c5)9yWP9jWhCDxdw$e_vR%FCe1(n)Jiij|R53TXZ)V%#||Xk$1EYNr_(= z-`-vxJ$p%NdFAxU=R+>_p4hr-=O@!I&u)l$%qtJLq*M9)o_y+GW_7DnwJn^6;R(wX zKMCA&7QLt8yjkjOQILI;n)vziEsqnGZ?s<!@7&q9`f-p>b;JShfA?SdZhpJMn@`gD zi|LbBb?+qg8nSnE&*<6H|GVq#g!+cd9A{e-O<q6vyHKsocc=7C5nt{nRS^+A%XSCM zZD`Mtd1ADtcU!qpqSSZG>xWKnEa3YqUJzL@J@lH>?;Xo$>3n&eTpYRK&=iZ?&85lZ zEA_)3pJgf&&)+QO#rK9IpZ}@nX%$!g?93;*d@scgbY$$Ydl9eFzVgNO#GiA%vQ684 z=-Py@OR7~D`XAz(vz4KCT76WS+n4pN?k9d6o@(*h#9Y3%Iw;3gYw|^r2YV$x<s`jp z=M3Vyevkdyl&8wk`-@!PZ#&4hy0F&v<Mzj^=bpIP^3BQ5DJ?cP%PXg@`H%POP@U~6 z_PlFz-rG<9Y`dg_<=WyU(H+LjJDIpem+ZcOkJ-Jr=STE}{TrTcD&PEf#uMX=(tgjn zCw$HCG&ap^ej1WAPyJlblbTCW$$w>DDgK>!;blu&aQS=TSq-htVQ&9zzeoEi@NdnH zOR1ITSzLd4Qq&5Ue>|0zI@@#a)kl2N-}GPS&)VGcY3q!Y<q9W#cv}_}-@2@>;CVgU z-n6zm2M@1)8pbzIvuDaRi7lR;mc0AVs&27gnd1`7v~yL_?!&(`|Es^Sj(Po3aoal0 zqt0`F3w+9aayjf-jBnTR6DKWq%y=yxRXyWRdlmQLE&lc5KW{4Z{As<QexbZE=H^S! zYw9-?)f4v!N_B7FIju15#>AE@(Gw;MUNaICoAkf6tcFAM;e4fACzE^pl%BU4^|sy@ zUcR{I>VcWBj~hP=Iq`Mbk-+$_oL6(JUv5x;@^AL-X%~!c9aF5?<ojkvJ<qZ2tC#e* z$cg+u=usi6JmW?955dT@lddHmn{c*3?P=A7Kktv(cfOF!uVr2D{Mq`^nq%tnTzlP| z_H&(OG$}L?_D%lLkh}Dsxtm?<GYuQ(Gj>Jm&u=-b^C{S6S7gu9$R&9aX=NX}J^pGG z{^IbJnJE46HfzD|Bj(Ajg3r0!558`xGOhil@#jMNx{tZ<m)RbE>$KjokWb+_r*n2~ zRJXw&A>Ailr|cSRY8w8s*Ua`WdU`ufZRK~BFRnRt{eNu#rG$Km`LluXZ=To0l*hsM z<ZExIckgJ|x70ZZit0VLB3`6Uy4~3F?&+E&>-9H(DxJs`+Zx}Z^Xs<9Yj^9YsNaq1 zsz==?SSNmV&w49Tc*~>f;r)c=JtfO86?tv^$&tC&?G?Mi-*eHN(SfsNJO0}hb>+H- zshxX%jW5Q@$L5)Rk59IF+*<#)-D=FdwFX-RE4j?v6|cAD3tDw-W_$Em`eEX!uOfd{ zIeoQ%Snla9RN%hp=y$}Z_JS<)>Wv!?-`Z%)Z8>xEKIgcDk+yGR6nM@bm3myW<G{1y zeV2~>(VaE<M9;Bfw}npi2&9F5ia-1*YrpE-ovNEd>tC%_UAtX%?OxTtd7XFsm0i<L z2FMlhKWSU?mC>?ZcHWUX!<~0CQ?uFMDXcX-a%RbK-3C_2-{%*VEr~xb#J!chJ0`pH z#Ke*plk`@1MCHEpwQ>9w+1YwML9u<?Esmcz6KVvk98a6Cv2FcfbM)Ig-do!Yp4>K@ z=K5aXC*POt6TPe_I``aLC|FUUvbJ`*jq}C%zpHuGA5Yed3s*i~`Fcrf^(SBHu-WH! zE6tYM=<tsHkfKw%hUq2ObDx%VO!w(NJLUI;c`>p+V!fOFgFZ@}x3%7Ha4S5W-M?GT zXiamBdWF*z#>z6`-_kWKVh3d2mCSXB)9{aevgStl#=RNS93sot3eA4^*Xb@pCF7mG zWy+uI7GCDr*RMAJLd=YwG|3{HBGx%<*BAa5sO0@)>(i{8P_A=*)2vtismm5GaXrz# z!C=;fyhVoBO@-<;dKUd>`njNGml^+Wmv4D4dWt5ZW=D!de|c=JIlNl6h-)Q}qn^Su z%QdB&ERRIVKibpLwrRDIw6HJJNAZNu3j*46=jGmXef;duTc^;z*6kd3ld>09&7H!n z=Vr|IdwyXUcaB=}f5#il`#R@ZcLX!;POKOHWcO%^k~+&%Axqv`<0m&G<~7glUz?tz zE4-_9^|sTU_RN1PzvMsY_1q@5M%Kynj9c;Uskv`i=80I(_lz#J6Ph(m;q5lAzu)If zZL#Ut{OLrr{-sx~Ikh+1EcSM8p7CkkhE$h0KJ89pk$VoWz9yY*J@Q86iOZMV4V!&m z{11EaS7D)Bo?bHdEH|_KZT&7!XWQx~RNs!DaJj`#c#WxGq^!^@ww7&<etmz#UbVhX z>a7!vNw-bwOf!3v;+!ZH!?s=Evu(|#tJ{ia%SSM}AJFfJJipDvg!ReW<cdT0tPh=w z-6k%OuCDX&&fh7k&1Ja!gO9E6_$)N7zWJYmOtw42lZjjA^CbCgzP4bSX`jE{mY*%j z7TR4hj`Mt?mToy;WT`z#uV_Y{?5XC+D|Z<<d5xE~Ms>ZJyF_mNqL|AkL+fuH(?~Kp z)w-tk{5HwipI>Eek$E`V?0i|u1G}lu@@_cg=q<Uveo|S|vGdQiJb%_xcQ$p&CS{>F zCvKREThEp7m$-aodPdc)z=;-H-|SGoviNO9haH!FvwY&_>MdIrI^}tvQ7ZcFe*5}| zhvs*J-*Vinez0!Ap8HDtlh?OYUfz>4G4pwTfv9m$_51t}ESr1x?$^5B_ADyj@cK3- z@y{W9=RALTH1Q_?=FkkM%?pk^shoL^_g&_e2mhQWeG#8{_iu(8>$K+^_nB^rQ!!bc zI&+~`#isbB-#0zVRm*0s4S8o)T|49Eb5Gx&cdma8^QzqIu2TB*sNQqmuf`isu3K{N z(^qlhFz>xj4)$*JIX1!PWMT<xp~}C&iN00k9_s~r#f7-lu0AbFT_Wc7uXUAIM$yiI zFsT>XEs5{;{c?RHaq?+g%&Ip}4cb0ENQ&UvyyLpcZ?RKP<+@k#Oz(&*)1PtS@rl<7 z!JdX&cq7w(p1Pp$$oO$PUs3P=-dzrl_vhTuyYX|w1dHYgKMz^&t`+$>wR}eU?$sBb z2=3yJe3dG`^OmTcQjbr2@sf4Q&O6L^%=$USR<1`~YZjmS!HO`c-VV$5!nkkcu`e%1 zIc<s9VLC_2=#G?ATlC?(7s{RAHQi~o*speO{X}`^Y1yybHl06``{X{;e$lqBh3(7K z_c)&WWdDfoq}&t!4a%$6c-0FQNzP&1e8FFV|7S%VZ~8>-|7pRCLN~oX`hjzyJ;y$c zDaE|A7izlI`JRkDa-Z|B`hp`d-e<O6de*D+=FIi~NeitrrN0;SyB2*iEd3SxqV{lp z%elG#zAuYeo2uV?TWYpw(!mq`2VD<M;IHKCFpp}FJ^b`u?j^gu%Uk}fpHS}*$5GDt z^!7xz{rvMD=*&EL{M0?U!_!;q_zYFQy2Xj!n=mzZ@deu{vHRW^Hq4Qqex-Mxri{ai zH+fbL+5TVS7R6Of{3To=*LKW_|1bB8-xC*I+`aipcbA$8-{0vcG!5j=F8+}9L#*_d zU9MZz<--4t3*WdKZMyQzO>_6`2lutI<=$6DN^{(8x!@vMy|dW*aDCL5g0}nYJNZAY zpHSbrN2F5odEVrib47yx>OYVw`e9|`8!2|-*sMv1FTZ%YCg*+ftz%EyW~+p|{kN#C z=Mdq)zw-X%(phh=6wUi$#r2o3?f9RIPFX)AG8CswE7O_NRl}cqqo?B4>kGj_*7N=( z-M+r>il1@)jGlFy?qAIm%R29&UHjIe_DS|nyOqJSOR7&@SK;;V3Sa6!vnoep^S1Jy zKh*`xFYFiJ*3!@Iyq3eZQ7zc*?gZYgzc>q&RCiq~SQuk&>7R9zd2@ijgP!ZW_MT(a zQfHrMXifOfXD_lV==AX~YRQ#5erx=j`1|(Zr_$YS?|S|iKbbv2TDo%1569fA=ey5e z71CV1Yrbi-dR2sEcE_Cw7HU^AWhYNe+?v(DC+Nuyy(jU`^55D%KfHY7r`$d6c23D~ z?WbAiPWV0)&2T#LccSsb(hdAoKZ`zn%&=7r&)wg6-}z&)o&U{Gi@zTbeUZAYs^<=0 zYrkh#+gcaq`%f$HYdFa_=x;n$ZLU>qH2r8$#NvH?_NiBYZJjA^eKbWZT6?8+_EVkB zaki|pHyx_)5dCLW*(E;tdlCPmM&_$VzvacHtd~EDImeZ(Zu();6Rl9Mhdo<+uBwJu zSZetj3Tc!we&lyel{q~rc1qj)1LYg;Op&?f`Ycl_`>{&SI?<}!qfI-{O}%1%lui3) zx#GRc8(*&B5mz|9YU>n>rBB{Qe3|3<T`}v`!i+N;+ShKq!6^KzIBDC2_2(t#d%yBO zmet*MVcy2`OI=;-9bZmT4O#cP_vvfia@YSlwtkORFIw^CV35gF!)H1dB`hU(ii>bd zFS?{=9y0smam$qXwa2S8)VEEz`F29j;WXbQ_bcif6VgJzZrY-8`S-oW>UPa*US_ku zh)lomUE$x?C8@=eoK9D^Uwo;1joHXc<0zj``o;-!pPc%l{?O9o&%3UV?GsEp{|YTH zo>0pA-B4p<*ShJZDzEo0+;q(NQ&HH|q_r}~cD$dZ@p;y&q&V*s{fwTEuXNuFKV!XE z!~OllkHz0k1PhgR%v}^-c}aNphum8t5%=qsn<-S6cP{n_{8_%>C*w|un@dEs)t>Rk z85aem6g|2byYiKl#!?H7&r^ykIqtWm8BU5}uGiZ+_0mzk&)r+Jew<agI4AJYZLLRt z8rPrJy!kWdPrd2iUDkguURk_T%-Z*VRm-$wr{v(JyhnaymAzp;vH7LO`DMv(VmmiJ zSJ@@KX}jV#S>5!VwU^Fb{;d9XbE!#9we~5#$r`&O7u9UEKlSc~#`(pI-!!gFi+3>< zTXmB??(Dp2S@W{PH$PrFEB#$yUA4(B=69~=&-G?~yFFu?Zc2aqPCcQ$f1g!x?Yzt5 zzi8wBy3^keC%+Ny*voWtzHq8~&&!`ljelQVwYgtDYs2rqb@R2e!}f$Hy1xv*@=2qz z>Ex~s8|&l;Z;$*`{$&2aJY!w!8}IPX57JxCxgKlpn#;p?J^q|j(N~dQjv4RT?<NF) zsyAO4zwl>Ml!EAUi5lj2kF(ZUF1*tBuDwQn;pT}qKR=c^E>-&Q%BJ636ZF+}i(YJa z?)cSJu6wJ!@a1KnlsEl7x;Us#I?>QZz2tM|-Xn$Yj__IQ&5@ilRit2bg=j5X%J(VB z^}a7+Q_8q4-rOjE<#1by{eZjT?x`|S9nODOl`*C+y(MV-_Q*`moBtngXg{@+U9ZJ* zPU`FF-`-s4GN~-Sza&OEq1EVh&DlOpXHC;;%b4gc<w@&K|5NJyZnArA%<b9B*rsf{ z%og*lG$ZKBo}CL`AF^=T-?rRyy4}+Ijs1s%9rt!@Z9Z{jO-T2`v&~!g+mv0Ka;}ff z(Cd`kW{K)8P4RK5*LxTBHLX|O$MW*xE5(f8vb!VSl#89!Ss~$^qLX@lcG8-FH(9}Z z7v3#SwLLRiglqosHf8bPW7Z$$>FPh8^t<?lKsx&pTaDZA|1r#et~2|v=ZUQo|2Lg^ zvE)si<uUW+x?5guT6{k7N|D6nr1fl5tW=--Nxfl`JUAz<W!kCl%D%Jpmz@>A{H#0k z>d`GVJKd81mHrpHvS3L@{mw>1-?<I<lPA|^cLloM-1k$;a$_=+^%N27xgv|VS4m!S zPJXj2xp?8?%#C?!N1ngiw&1JRi+bgF#+APP)1G~_7QC19DB%69z|+53jaF9tcR1$F zXU!b@%kRuSU+3N(;ghsaJ$m3d{o7-sTf3z<9C-0IEP3*-fc?#HR`gsvH1)3W$qw0M znZCfy8<$S7ZA|Oc`;_Xm*-UiitscYj8~1Pgn7Gj}EqngH^&W=Db}al5WSSgx=HIIJ zxnF0fidw&(6Ypp}?@xozUX7~wo{3>^C+;%)fBHpy>X$V}$Nn4r3X$BqvgcliTfWv} z^QjkSpOSce>P2wsmz5wH+lkhqA0mIK)UffjS$^={F`>9!S^RL(Ek)(d!*(X^b632J zJyGwvt@y(IiIW%3EnlIj?j!ke$);bgHLVv<*kpR{p5<3>r?+?9vqP?ZTKnT?@wrWF z=SBseN$Q&Ez1Q9LmfTsLmlvYu#5>>HQq-<EdEIZOqD6bWMPrXhhaUgA^hSQ`#%G2* zt8&x6GkUFv{OLXCX@PeB1lJ44wdXZoHp;YIcXzs9-4<EH8J$UIF6z}D**mkwsO`s; zyUFvuMx<75@#z<PVbZq6@c6lsYoB{=^X-j(u5f!_rT&)P8gK9T)|dZxnZtZ!Ki|!B z`^&ziyDvI?%i+9Jf4-^Q<%r9BHb1*ne(fKd=jnx^yUzscEnb?o^kI<I*&C}R*{__x z5d8a>S%$k%(K<V~Wv-byS-Z<;-CH~Vu=<<CZ!^08PCHQ%boslft@q{ErhBh$P3Bu| zaaQZx-Nu~SLnju`Of~sDD^2$G#oe~Yczyf7%@Ev^uef+oxR1u#6RPv|UdOdhjJ$1j zz~b=~h0UKzKJGtV^DyfFWv7^Lk9O_xesOE>wI1DBg`vjJDtc7r)wX{OKC$D;C2N^q zeVf)EI=6G%+~C=M)hV~9Nm$N3m+@k@UhR>sA9K4mS#P;{_|2wyC2uowqJOCT@jw6d zO<lOP^_Iz^O~;y!M_HB3todo?lK*w3X}{q4<hAQ^W788qyA>Vfcr$TVdNxacWzULp zDbG&bD&X*Ga86W`IrrwLQjxR;`#t8(t!ZU?X<~Y5Ya`D1=$>iH+`wI?m1rrImcH3d zGi__+nW&HxS|=9TTCA~}5_{74-|UMObI!aE{Q2osV*l^SMXm3?J<7|SIP?3HcgI5_ z_q#6ks`AcFPfl6>soh`B&PlcZ&(SALTZ_*;seT`<e*B(w(x%}32|unlE#K)C6nB1h z@#Ijq`*zKfLi7H=d3SPEfy26mk@d5_M&=qfT{F)~O<NOvHTIR;X0si$CRm6Dg-dJ; zyS{pMNcq(Dm##)km1$`WWj5ZwB`|Z<>Q{;DRBz4xW6pa>DQ$~iz{*!_#(m#SHoLb; zt)Io3xb+N|!Nr*6+kzusnU!vTwcwp`wr*svSH+^NC9`J#+%$cs)QP9rXTGmsD&0RT z?bx52rW;?aIQHz+^1fFY*V1pU+Ap>8NqB?$ij!$-a}uBJ=Ki=v((~0S#ZOz??JD<9 z3ayHJCwp>}(-F5xGkx`f=bqX1(Qj(HTk-XnuVSk-m#NjMhL@`O#a?yU8uB$Hy>#== zpmTxDSN0xzW?*{p%)b2wpZ_R3u33HN>cgk2x_2F2<MC_e*P|Jen;)k2{%DxBE^Vb{ z*1HpB!EUcoZb&UVyl%tw6AxK~OZCpQJ3rL0sC#mPbMhAz3+8j}rxOfg_~ToiZV(FV z)siqj_Bp|34gchX;u%(}3Ldenmp#)Gn^=CM`pb?(599b`INA>g7QA_J^00eV>jn-x z9`Qp@A9Ee|{o3`=xWM)f)ArukMjH=Q^X}s<KP(iHwaM&`cJuLvl?&yYzH)QP&v;<o zthqtgr+qG$TA$8`%?bWD*q<G$u_!sTck!{Giyu^2aQZbH_sl%`?{I-#49oO`>grxv zM+;={@N7RQJGo`|1NH*_JN*29W~?7hKlH2+o7Wzgcw%<aE87t1YpuKqLOEushfa7d z6uH4y)@Yk}Zi;56c?;X&!~zqYhRKP7b2y(LU@h2~xcfrU4xx2zuOGM_mUfPQs9nH* zhx7jYEHCj}%-;_m{$OGA+u`Aki3_z7BMu7mv=@o4JL@rN)w<vOOSrWU)%%_Q^Z9H< z@bCW$xAWJZmRi*)c{k5M`D$<4lk9xAjeKb-uQJ?v&MjMiKjqloyfmKOH^2OfKKtUv z<3+~*XFi#Aam&H|g*@wILoTUG)^ncPaoxl8AHRybYTTs4=?n7RE>@-eS?&Ms|N45% zRZmqj>s2qtDHqhc-L$;&Yr1u~*276TMV!0R>azaj%jn-J{2jig+H=z)-gn>s7H1hx z-V(I-Kl95&vQz7idM|x;BBzcsu9kCG+O@oo`7-)bkKL`&%$u$iIR8ZWl{qTQcTRql zViD=5uYUYwd7EYOTu;A=#<yp_*C{izx;@8y?%i{8>HCXsSiYN6x+>=S+PBw=rFWja zb1lz$`{e5G+qch_vhP;D^YL9u`L5p^cHht~v@hh}<$l-e`<^hXMXz7ASw${?VKR3m z_g53!;Puy|zn1;&v|G{t%B%Js51Zinb=NO=e+$}UqJR1Hr>aWJxP9hlq+k1f>I(6Y zQ+yG-##l!GzFhX+v#ZW@N-upPIZxR9-j)kduTK34{CN41_!05r`JMMA<HhRr6sKI! zP}E%*e&|8Vp%zO{ZDBLDJu^ReI;Ad}eM2Ge-LKj8ouAe$nr11+RzKS$Rm3x9(hjo; z-_*lySd?CBN)E5yv*?JN^w*8YSF6l_R#Cd>Y<SVazt)wWAHH`VygxOfFaOr+mlKvf zpLI3&TiIsj>pJ_MO?{?4dwR_7*SEB0=XJ;GdTCC-{V1b*h3~@DRl1d@7jE<4CL{XC z*4|<rZ=ZEj@=V)hH}1O?M6rGhlIQCa|HpUEn-`31^ZTz~<?qWpSeRO{X4CO4f4@~Y zpMS99(lm?Otb#etGxvOX`ttRq?aQZs2%r2d`S$so{d@i%`?mYm^sV-@1y6dMJ8|a3 zS&8|E>dCIhj`hryWH&lj+VTFvBImI7Mp-WFGp{$SI=qdq+A1W)Ek|qS(rZ;|kp*kE z9PjfyXgIrM&N;>3<<Aul8lDJ!Kl59Kdvx`i&3YEoZf(1;e9mX-Z<aU1zvf=po_jy8 zw*A}OYvqOazt)z2(R~{|QTF6MEo<A|{@+%-nR!!t)AqFKDe@=R?J~Z&tm=7Tw(fGh z`s?RCPo6v_IU{(6v3h#yxoLCmTCx|P`|kbb`l9&hb(MdQeXrhezpHNc@3(Kt56qjp z`}VxM^&Iubzv{o+zqa1<|EGWU&#s>KKKXjq^y%hy`P+7u8P-W`IJ2#farV>MU!PUn zkYg8%l4f50=Ht2rvG=Z;TJ-VvIad6$sgC<+maSjE{cCaE&acN6%q`rSk`wX+{yw;I zZl3*%X%BW>mt(j8GdVue^I)3)&s!TJ4}Uj(^?dI0snYL6-W}0Dc;)l5Q>Dwy@6Oiy z9=m7hsopz6Crz1M>r~=n1!v05Tqxy|<|-Ft-)$pQ>7wc?*ZU{Rv{R>VO~}cKmnUw1 zwQEOMVeS>)!py=<E!%e~cRa7!{d@bPJjCtK?vL+RooP8OB(<WClUG=3R%q+ve)G-A zvCC)9UROQqqw2{umU)KPHFrL{mD;j%+N_*)+E1ppiLDlWcB*LZt(<kq@xj(t*;j?g z2Do4GEcN^QqQbA{hwIYAuMbNf(l5Ltaqn1R@Q>8K*@xH9c+95!ck1J|4`qGQhu0U~ z5vl8a{OrT)W8%_>tk1+t`@S)^$m7_5vM~9FZr|)f`Nel+>W&||Cvh+H->sCS{ih3^ zE5wiYKHOh;N95kw!r~vc!qve)YCm636aM{P#=OP;!4AVeipPB)3iZuCEI;$c?Em)t zJ*L;AT%Y~=aR1{8Ij?<ofBFv?S2Le~!)+5RRq-r&^0{9h)En#Vc>ip&|8P3JG5!=& ze~nzl6Nd*A^_lu*cx;L|`epcRKBYdGsNCqjkIN=VuHs3yO_9lm6B`dGA7}2L!(mfo z^x?$H|3{TiU)B2BbL)q`ZIEEaladD$PaRNBXX>BBYx9X$&QiSM$?XM4Ys4#_?Poqe zhu`M2t?n|d59j$C>+5*_1j+tTm8wulvrQ7KtWbFr(eD!TdSZuIzl+W5i5>a2LY$HP zE{CouPwe>WvE*9)gNfU({?1yjWh`g8?%XP^<E2^dS<(G2kJh*=eY~bTk>&M7k40ZS zmh@Gq1YNIEDVq7!W68X)9#4v1PxPpLJ@JI-qlq5OuP2_EdQEv^+qR=Fb!oQ3nJKoy znL4^^lT!W)XA1pzzUqK|ID6gBFfS=jzCV{tK6r0FpnsjEE;H}%C;93pDZTDdEOMEW z6)LJ9JXRl2Ud!CS<)HG)M)!5xHkZskocP-4eu=67PJ{a`R=J&qA3UlaO#Ig9Zp74I zazJ@zqq`NG+)I&)CB+w#cCpOc*(r9}^n=g#1ICe!>3Q4cO`PfQN%wQZ=9c?GnkK@I zN6v5-m1~^+v3mEZu%93Q8z}!>JF)KGq#t`5x0uw)2d%p}mF?1{AN{>onk(kBT)Onb zf1=90e-2Tn^jS^JuUF2zV=T3zZDwHYs#z<a9j_0Y92Dv6HUIjOk_Bo@^|OMkA|_v2 zIBN=Dyoct$mWg@Ycd|;<nKLv0XfBa+3m5d5e(K_MQ%kF$$&1%#6@|o2Uc5fLsAP+p z`|+%zl09nf%d?9@A}234Hnp^ho~(TN``m4xM6RxRpL+g?={wV!pZCvv=6rePYw+3s zo1aOUoP1(^ddq9YRTs9rxSF+B^6`_?M-@fazy4Sq);#5PIgiQqg*&BtBmb)Mm<BCZ zcvE)hQ@zk`^H~Q?H@;Wgc7A$-^sLn@p3N!lD><ifC)LTi_}um-#nX!03cmTDn<#Rp zc#?MUxr9#LpM~eWe7^7TjSMQ<Kl#qi`w36=PIgutuvNa__R;#+++O{Z`tt|5{coT7 zfBQ%8<HvnA#kYP7&n@#hyFa|A?707yzT~jrbDPEI?hgFsVX3WW_1*Jx{@Ygd8;#eB zpMA)mcu_nqCHUSPxr&Kr5B9zJ__l81*?G_IAK*T}H#=w9NBz?;q+?SyzioXUWoqW^ zH;HRsPw~NJnY`(;k?hm{UQzS+IX&gd(R1@}O}SsfH?M--?5ddR`L|(lDaBKNs>f^3 zsh@cE=by>iQ%;KCoU;89TYO6K3d!WB=1=OfHgEr_{`>W1{Y^8^+5dEU6>3^_`J8j@ z58L_gQ`x)Mt$iH&_QIYEi)-rt|NrYWMfkhAhV{$2NBk$Kmix_(`(xC}XDc=9`LQFD z(jI2(T%8u%VKpx<G<s+0xvM|J)_uG)`JHC9U+ngE!QsVy>eg<L=5<!PS(ZL6YxB-b zt&h!`a6N8H*fF1<sk^wXP9C3Cul~PtKHL7o8rL_9N1b|m@V(n9(U_>-ck`o-&0h8G zbGacAtyZgZ#pU#iM=k64PSz@4zq#hy%g4X6<}SMZV%x5{=PvNSwyat=Z@u^n*I(vU zGwYoG$F0A#`m6D;{a=c!n(r<7zbO8K{_F6s(!XT)M%OQ}zqIsM@ZX(wOZFRW^LrJ% zD`@`L;8#cf%>I-2@9e*|b>;h)*YCc6`~0`!zm5MA>Q~qwl7D>vx&N2tKlp#`|C0V| z^WXNrmjC{5D8E-2Bock!KGgQ^?#-7&ZCS!yR5}|vP{4*Kdk!>paCC5Rcu&~SpcLs) zbWXvu$ZydTl@2eVK*9UL`z6zs*RK1%_x;}QweRew|9dlY(Z0K;vgdw=zIyjE_xr}* zH~+pZsh(haL@tYeyYZXAZ^yq$RIjnUI4{Y6d;0CqZ(Y9yRnOdeDlWS|Gk;_Gt=(_; zeslbt{d-02rGMA<CB$!8f9v|&`)}-JPJ0$O^*v81++?}k+H&rlnmd(qYy9e#Hw0hM zd?QlWWp#AUqjS#Z4*O+3H+;_d-1E8S@^!)YGoNhXKg)ZTU$<oG>m8o!$~NyhndfKT zU%fs0g6<o!!tP!CyZCqa?@GP<>D}dbo8NuTE8V^<`u5t_*UE$MO#3y%Zt4E3;$QfG zZQ8eL{mb~TzW!B==RXSVRq?Nm+?%p~L--Z#cT>N3Rj2Mfzvukk$a^;V6Stp<e!BMS zzAxJ<ZtszOnD+46!)*`w9-e!sSM#(ivU6Id*0YVDHn59t;+ptGyIem0_V2a7H4|(z zY(2Jp-SE}GGK_yUyK2Py$oGLt@fW{qX4EFsI(UY~uhwr}!+4G1+K<L-4nf!4--ymy z|Ha_bkF5SB8@_ga<xJgpEb_6&YSWXmTyFk&<-hdJ8^-yUbKkHUYs|Dw6uW!wo<V!j z26vqW);F}L1^9jI5iL=#J}y3`+cw4aZffo(v%tLU*;{)*ZP@;1(VlB|+44`5*Z=JL zwE4NrvfVeU`-*#uZdv($k9fYOIOM{wbHDnyHk#M^x2~06EB`X?^`z3yt{bgy50%W1 zy`tyk`gT)U<gWXA>C+b{l~wMxu}uiypdC>7ZAaG^h3Z&Ut;Fzc+LxW*)P}B5sZKDh znz45S+teigHLm>|%&#rH^k(AM7lGeSv4tGV%Q0Ve{LQmF!n)bpw?$umT()Yi*V8v9 z*1hvK?7k7Z!lpXMylT?kZPuX)=ihqzZ~XpkQP-P;dtYXLdt?{VX}eS2_VB$s^R+g+ zFTcF`&DG`=T-DzMs`~a;YlNoq%ln<*JUu<Y^xK!fFHF_HkB7{)t>f8yBF=tV)`sW) zOQzrWy*$9Tui@nvBlm+jtBy`Im>;)M{1*4hZJiudQ<IZK_Z}<UIPFzYPL1dK;+mX= zRp0ok+4m;C-&7u0Tiw66{oWS-8|*6>kDs}IWy0fU8cPe_%vs|0E%LXH>9+lw_b*oa z*8i>l%9VXd@e9+wo&R?J%ADj^=2?mV6aPEvT5i+HI{I;{!&=K@PFLC<pIN+3COdM4 z?D1$buctG1&%I?`Zc!e<{#@_5-m4QIr_aA+@rx@!yzfBM7c=+7#8;;#Mzq{}n4#l! z*FvfL;%=F#M_29+KBVbrJ7<!g=c|)~QM2w9pR!0@F+KR4ru%#Ar*l7DxxMm1$O3+g ztk*&EeRqCcx$apQv||3`S4%FnFSJ}}dBxsD-=v?dMXW_Ez{-8gl17=Ue7uiN_$@jp zb9Yu-K}-75ev4C+Gd0|+{G^^eD=WTSV7`C$e7Axt;!Ak?{v0xyw0J*9ZxXA9*W$a6 z@(O?5(0w^=iT|BTd6`m&y8@=!rG{$wC*SSLbCr4?R;GQqV*9G-scIX%LY8-~5i!ja zTJ4%U>r7YRbi3rMEBu2aEQ2yu-M*CTdHG9V?G(G~>R&x)tvml}vx#&4^8Jfv{;K|K zd-l@wFRHWFu79Cz;{Jb0{i2<}#Q$=iy}bYR{mgypHjdmjr#ELTOs_W6{Uo%9CF%|9 zUIpEcQ<i6}oPPAQ)9F38_uS6d8Gb_BMSIWhJ-;)SesB2Bu=bPOC%Hve?<wC?{?ht= z#&?OeAJwWSXRb9rJKOE`o|*T2qTZkV`s@;0{=)4O_I;UF<(;{B`=w~l*?UayN!@yr z`@!sjSpMeiGq+XkxnP#Rd;8pN?X%lvU+ODZU7&qSGEX?qdH12Whu>zF?+D%@{FZaS zXkGX3gdmY6j$wAM<5uqoy|gQ-HiLJYTg2kE{%bj}rC+njp1Ac)RI60R>aCY=Wy@~a zx2-QyeeLF$|1lfhZ(Voe`>pSh^0z|YzAE$Gy)E|oy8PugeBVwhi{9OQ_vX8-{_X0w zFTa`jEv9d=>bKf&Ue&#O58lhk-~R2>^Sa*?YH!%(&EIzZw*8IiZ?nIx|K{s%)i?Qx z#_Kh)S9hL0_5RMwEhSzzO)W#uXFf35*xxR;o6-DY>D>*p@1A}5tmyMD);me>oZl(G zOMWN(F8H1CyW)4;dA!@FMIT@L+^j%)_u8+VwQlpTi+?SxJ*<5G>!G+Z{r2!9+Rvtb z@TyGRQ*<vRzs>x3^aI_GVHNQeulM>s6nl83K<YX>bD*$57E_~@!y>*70qiUbzM6&H zYuu;qa9?=gd&d{mLSJlIWXl&m=CWG1@UdKp4Ug=3CfV~`vgg@k&-2Od=e3&0BfDSL zY96yy9eat5ddVL@jS4-DAF%-+?gV_W33$FI;CW5J^FIO4cP~80y5QV*hq>HNbGaSo zay!p`-)be^Xmy{xRFA84pZu;!o?Sl~N;X@Re0F@1#`)rz^M$jME}U&&IJ@7$+}qh) zzBO-JW1bz`T^;VbH8Q&*`F8zeDcNjO^4ar68taQ^!57YUT{ydZ;q0jkW}kO3*LF6a z-<lWJm}kd+cMaFw8o6DOyt{rfm29@sPLrz=<ceUv^<8ModbKa_QeVXCzPPJ>VfU>I zJHi(hmM$n<@A&wY)8n}IV^^Dx?Pcs;&EH!sEOnis>zY8<G$z+<7T0VZ*K8)&Y%bSq zHrH%E*K9`DY);o~R@ZD^*KB6jY;M<Vc31D#MO)h!l{PFYZJD;zale)0ek<qw_nQ1l z8~yh3&V9u-w~F2BDzDX7y^>YdC9Bv=R;ib~vV9Sv|KiH;3oGwkSjoR2xOPEs?ZV){ z3xegHmj7~|%I462X`wswW0Mz*uNUrL?HIjA_L|&lhU^Q083NTcA<bQX4ohvhp_jCN z!~PA|Z_j>{drj`&o%DLqs|$+1egCHVTm85A?{asGZNfd70e06Gh+SAvb78@;HICi? zma$DO@ZOnvrznqg`=scjYrm=UTCMYcUHr@a@8*BL{~xy6oIm~S?z_9M@4mNvVf)7R zmF+v<kISkz@BMi%DSzkoThY&RdCd8@bC>^F&-ORG`QK{C|Nl)oih?Fd&h6+)thl~s z{#=`DmG9Z=v`_bhB?Po8pX<qtkhsjT;s5*x9oG4Cm$Ss|c3D32GSB;HUFWV(L0W4U zzb%>IcY$@6nuki~n?(yW{5+@l?9{LqU6vFw>C}YE%bB6C)%Er+|7v_Y?wWqi?}+^y zeanAM*dkwUwYm1t!+k6NF1bAQZSXx=m9MGq{kDbwUvwl}<D-?=A5qnN4xP1ukD@g` z=1%#+=XIu2sCc1^BjfVfk<u&6lUKgm7}6iHDqZJmoX%D4X;t!?Jr=vdeQxco>aM(h zG)R0=w(5p$^2(d)x93kv5uFy(^w#3Z1}XJGrPUe9`+`pI75(9BWNbC1W7FogZJ)ME zBy8JuE`6EoXPv#3hfZwIyKyeY+*o#do@7tB=z&{_db$GI<^r*o1#<VE-gn^VME@Lp z-^i4CqDIMoS$}3N;Q2Sr;mvQRjrrUy+dlqZ7x8k<a*e?Col``9rkpoYPEO-#G>}rL zIK5ax(ztwz=)y;T((i3Zo%gcyiKM;9vOgCmuF<ksG<kz?!tz-=pPl%zZtB%jr@kIG zzE&)<MShd_q;1}}`vY%O-m2`|WPNqc^cQ~1r+wynS{zpzw|KX6u+!!h2`|j2ub5Hg zdUf%nxVrTUQ@_spFmHkS-nsYeRz0YFJa_r2hYl7F>s#*g?f2cfF}^c!zK(O~O1A$q zpO?RO|89A)C;W5alV^)HkJhIy{{2tp+xOrbhb4NqPq5>f-B(;I7yhXJe}zzm|Jl1c zmaZ@gRW8=|z5C*#ipyhza1$Zr<3V5b`<}YJ>G)TC{86Cpy=vpv_ow~8WN~+DRnaPW z-bY_PyvQg`@%{XI%hE#C)1M8eKFE%o9sG5r;qqv={;!oXmyK>DTWkutcJxd#UoPuS zrfSu)CrthfQr7(6e$+pSNjV<ru{iHa_y1pox6Z_rEjBcnxXd+pvt_yB`^TSNM4puU z+Nu>Y_kUL5tvP44E>2Qfxo*yF<Epw<f4iSAcaIVIqkcZrY~QPx%fab(+H-%_d_BDL z*NkJw|K@WobxU_piazp6?Vs_!;QpY3c}D-IAG0Z%7k6MI?>E`!^Uq&u*ime#?Dtfu ztK6!J@4s;R@iQAZ?p&1o8E;V)a@8<-692Z`DWZ?hcSW3$(swH^-Y`qNTW?~`wZ9j3 zT&Vb*y?tS)%HC6PDQ-`$fiA&oTK4wQ-4E-k_gCz%+F!Z9`kDB-+%2ITZ-q~;wfM)E zcXY3h+4jD$jcJMJCO?=wMKt}!oy{ey#a1@{oSnL7!n(z0Hw!%bw=8Fezl5&(-5GUD zx=TFQUs+w!6}NW(h2DS1txCUS?^;(Ed;N0$i(kKd?>2b<s@GjEks7}DD*G?zyYc)N z{(i}@jp)Ci{8eM_I`&tNR?hWH+FvZJnjv>CyFGG!*P+Qh`neCc%~<kyk44Gc=`0Id zm$?XvC31DGQPNiJe3@j`dL+kic8p>88CBJ3T}zi74K18%^RfL$^PwPb-^eG;n^@*6 zpS)GR|JBla;jve4uUcK@UK;#<)w@;guU6i>Jo&52-<k7PEq{?&HS?cK|Hb*Q`oGrf zb@9J&`74iY^!clwzcB6fs9$&dRbkbhc`MalMOO92t(pGnX_eyi`Tg$>T+Z65A)a=q z>yeH`zoBs@V@2=TS-+X&Lw)0#zHsT^;eMd%a(0F3cBg3{CW#)O&wISydhT;o_H&11 z4+)7qHL>^gEPvGV<dEb}?sS#yC$v8W$xV!ZvV2cci-hCPg1%3WW$yMChdAg6bia_B zv+_{V;u{{{yY?pOiwZ73qPa_7QB(2co2@H+9*4M3U1qh~@0IS=iSHg>3sjuiw!269 z`yKJc>^!~u<>U5Ft+d~hw=nwEw_mb<=jE-M{UYtp|7W{YmlnjWdbhy()5qMUxxZv@ zIquF-H(fY$*YbA@?<cEDoq27(JaWsF?XM0*mp{>+anUeu_WVVgOZxUL&i=yv*KL2d z%iUSi&35$`e2Lyuaxu0=Xx@oMyFXrvEf?S3ZGB|!BfW|4PcF-Uxa9s_u=U8^Mf3BP zMtAZUdM*EWsdM_dU7IEJ)w)h5b<H@Io~Jf{`_80&5gOB8lz-iw)Ec3>Paykf)yJjp zj-LL#=gYID>)&aYb=vM)o2Sj!<@{)ag;rnpWKOl9`Kh6XyMiRXi_Ch?u5$h4(udsZ zH|v`$Xq(b5wbAPN;$>Iny<67zMbFm3wnEc6Ia6l-*_S5Ga?fYwnAtME*YKClFt+vF zUAfYwy0VgOUeHXxPoH$=K3mFFd-`<ohq<fnEZ%t_?z^%6)feG$aSNpPge;%^g?+Dv zO7&%LB}bJD+DaNRt9Z|^;yzzB*H(Mxt4<juc2f~cS3fVooi2J=Dn;FQu1LsTZ?Rpc zU@F?`nwX{9)uD7Hsz$?ZiCL1x?}TW>pq?cmhEY9>za=%zaELvkV%T|4Y<}nY6{}}x zExTm>sQ9C0sj%@8o~rOOLYr6Yo}v6Kfd5YU&B?W8jC<9^Ha`EBbUxPaefQKP)vto9 zk7m8nzSd!S#ea?P>le-&9Si19{9C2YE3o@$o)q7EImK_?%u^Ki3B_O3__+1QEVpju zM;x^}eVxf)IxQ6aE=af>SkBqW*;#W>`TNu_jmN@zU(BrvHVxnn?aEprwOVb}%B*Fx z{znRb{L@sK_qeR@#)-=!JI`3{$^9Jt`cJ6ks@7Km(aT%2Rz|J7wyHO4^{tg5SK~^5 zwC{f{uc5xpUh_*sUC8u{{VzBDDvb5BUwHbpdMWGQDeG3uzc%%Y@vcpEVc{3gzg+dJ zGS+whg4M6ZOL_lJTDLO(+SV`HySDA~7r*-bb<!`!*ckg2-Y?oqJpXRcTPlBX>DSde zoR{|fY1qGJ{hQOP6mOb;eyy^0%eC@XF;?5pt$%-w^^2|5lGwK|H=J9v`Bje9?tQ-M zuWy&~&7FLGxA*glm8EvI>-83KzjE5O;hCH%tBc`Bf$1{SZl0L9{p4>A&u`QJT25Qy zv1ndZ>#NnjR`Q3|n>s9A-Iz5&YE9dU{wo2dKD^<|A#GAC-Bw<FmHf3+YO!5t@>L7d zxY~8gR=&(yHfv$p%9~m1W-WfU@@Lk<s0Csxk7jj7Et|ILY1Y!Hg<-2hUvY1B^9>cg zl42U@tye#3*AiJ%*R`SZSKfWK=vPo~Nc7dJt&X{Y)>rjPedY$JU)3yin;U+A<@>Ar zueyGD{#{jfnK5_u;jFp0mYA*1&Dwoy;kOmFS?h1D=UdVIO1spfc5UB^#jkc)tv$CY z|EguF<KGqQR?fd#`n7x4!n)@hd@pobt;kztZ&F@yHT5g+{H5YM<{7?^GVD^`G418S zd6%Y7pLAh*`$C<5he)r>c5!m8v!*o8vSBmT<TkC8$qM4j`owZ&iOrQKo+~_ASDXx9 zv2dOnZz$)iPdy%wvI8S`tkF5|6uHVFa-Q?t(9jg|n=dOTp3w^C)%wg7vdk*vnd=H4 z-W6xOS6t8PVp_zoSBGoUqbp61_Anh?$$PX?bZeZf#<}b@7K<Z~+6m6z&{eBtmntfK zT<Qy($qGA@7rq$*%ozdB839}-D+Ene7@Dl$G+Ci(vO>~ig=N-xu_R0FKyQseZH>Te zjX-IQz-Wy?>nj^pCT+fP=GOMmoTYq8yKnf(9`y@bVWJVDt`U-6*dY2!S0hAR<I3%T z73%_4lrIRlyCC4b)52Y=?bi6&E)x9nUFk!7?>i3`antj~r|mZJEA23P`Z(gOkofM2 zGkhLNm=)$Ox*>nKT%oJ@=yAh$FLwLiIe+$=_oH;b|4O#S_a}NRk^7(W<Xn&28=<~) zrX43UWsYhK%)D&bW&hk_-r<Qkk180Ce=O>Ia#iNw>VG0z@4GxU6WSX6pSdvGt!|a; z<82J?^A5=FDxY;taQm0##jjT|=ssO)u$}c=(dsu6`b&4#mNYH?E~1~hV{XZ`#ouN0 zQ+MwDB0IgXcY4vCu0O4dznjO+TXMg0<$<sJpX}h}$eYaJZXvU`Q|ZJ-X(7eFXjPHp zYt?P~ZtEy<AI~+L*!%dKS)ugtw{IVn_1(5UA}h1Kyvy1$@4ZlY;hkrKl@@uQJ8NXN zmv`^B%zH2Rz2J_RP^(4Wd(rPjcfJY#wa9DlekikDQmOfI*%XPRg}*ocnDMx*N8)gy zby&~S9kTkzitqS|2wUc<cb}Bm9(+Wk?{;RA)bX{MkCzo>=c*lFoB7hr&3ilN_B+pt z@92qeTjovgP?gz!`iN2AZP6sw<8QS#c0K;a{gL(f+o+Ax9+&NnIA8dC>5oZ|%O>AA zQn=eS=i!dKYTF9$yc4jt$Sd!RmDyf>M6U1l-z59vZygIKJpMMp;z(h2gv_%Ywpx8f zcjUy6Tju$9O}?Vr`2XVWSCU_O-u*q@wb9p+v2vPn_O8t26B|?RDNLK0f3nz6=w;%p zi5z=2_r-NRo02O3()s1SJ%{F8Z~Xn?W97|@pCzTw8mFFnI%k56LVKZ4{{&?X4fj(M zr-;;;{?KY|`r7pM1g{y7nTlwRT#m2R4ZRzEn_Abktqb~gVe19cUAiT<C37bQUMuL? zHTx~+ZSEZXjeA?)GT*T4csqH+UP)fDgM1r!ebz_lZQl`^^zmZ!kH4vQLEYyMro`!e zD34M5{JVYT&zIAtJzIP8+1@M1lYTPJJa*c2r_6g<qy2x&x@VZLoe|F?{HaFA|J13X z<(2ia|KIjU7i<2Xxv}JtUGlSCJD<3m%Rja9vr+h+ThHdMyIR>_cDnhK$FpCLn%*>g zSBxxL8KY}{BsZ}Ae^K$j2)k`oh0!`wML+!0><%@%yCgY!hWd&#ks4yt)9ch<EXa)P z{8za1*}t2nF;1?Lu6KG)>$mT&(hd74w5jAydDx-+v-}759-O)JXsSf{Td%@kk^a-? z6@N%|h=jc|e$*r}+w;XTi>B>~5i!T#im^Z5cJs{FIXjnM-}76k?5~B<@(1^lKbM`_ zQ~0yl;@k1Z=i(HFj6d(pz2`k+`;A$v%MCwQ1?Rugjp8!SO1-zE#-MMDh^dQeqT9N& z#Yx)9N0v#g@m}g0nD|cHG=KR#iS419c{85~J+tk4cJr`ZVf0M7zov>C!=KGPxOTCQ zko%k8MO$QiwG4C&dbV7?_|hXTY3UI!k!LerxI{kqee~gPex)+6iu={~FFW5$eb4pq z-B*t-?DtJJYrT=y-f_gV$oT2B+Y!86mUHL$g(!;fu)bV*VbX=HRWJTNh&|-7b&BMl zv)h#nJ^Q+ItHtwo&*$2dK5xOJPa@Ml&$xW>rGx*1EuS>rdQJ&rTpHS`IdQ_|1Y?7$ z@4}ao6Q;XVxyhVwn=y0wljv1PQ`sW6E}PZy$aMK8-KNT^DMr^V1fmZAwh~&ob>kJQ zC1<P`Uw*2vBD64Pa`Wr$C(PV9^K+-pj1%`go||dY^?iv*{A|7}ty8y|e_gIPMNpRC z?0kdna?>pnw-xtRcDz1qT(Rh>Rds&D?G=f6&7ZbDH%m1P44NYN^k)64P2yL@zPfZ} z=-uivxfuFIq}FAZ#3|FO5$igaoo3wgpE<?qc8TSLw+{EjHQ7%d%wa#RnA3iu|3=-B zbk|c0*X#)5GY<FSOTRmH%|6K;P0D90AH3Fhn(<9RQsS7L%G|y;jz$}WR<BC2Uv+q! z-v`re>seoKS}R>M_wDO|+f@h6Z|oCXbAH>tkBc76UbDvNMnmY0j6$y4QxcT7^)~h1 zG~+W%ysdJgODsn!=h(K$3DpbNT-Uv^jbmHNZKE4qx!Pd`k~y+Dhqw7|(7nB_=BsLU zmDcSm3Dw))MxIXH;5^~G<qg9b$IN>7#<5v%Z1?!~H#=wj#_Ojqlzyu^xvzfa+K;s_ zV;j|3AJ5x&rtwDAOr^)i|F7dX?YTWo<nD#@HDSM{wa*_6PoI3jIMRF5CcO}$udd?z z4jJ!!Tjz9V!pTiL)+hz1nD6r{ei~NU#;UnI^wO#{)2&re^3mLD=U)5ipfJHYz$!rb zg3$$Q1G5b#8_Yj6&&_zg{q(J^Z?=`$S1;Oo$u1+lEN1zF;Cm|%7tVO+Q+UndzQuK+ zL!7QcT54CkU(7L3Nvt~5){@M*UoFjFXIg~iM#rS<M;>-=7B*L(=e0-jjG&I-np5HH zstZC2>I$kq+*X-6MSEpP(AOo;JoipIrlRY2Yi^0+la^0yr&_YwqS}A89BZG}{;gea zmuDX1_BqkFeM^7uo_zP}JH_v-F0I<IYQd{jCVA2RkFUKJES-D%jqA?vfcWx@&Ogtn zPg?fo*kR${htHosSSPLgQsJe-OFJWh6onHG@{%k@94Qm}dDtX*jBdEMHSjP>K2nx% ztYP^yv7d)klFR6dds`z9v*a`7!;WpuJl`h@DkwX+{qSJ(VDo6}?_rVTG`i&O*4)D; z`BpjE@mN#O*NKG+j~$NvJW(;>qr&6b6s8j_6FBXR1XGkwxX90BG2%>_)bGPKlgH?$ zyB+gSo+rlgGntH7Q@Z+nSZ8t>U3Fj9=)*konezPR8op0E`+eAF@)_NAPir{CF!Q0Z zv13}(nJ*I~6*fDh{XCH~;ikgo+7!MMG7~KAjKov)PQ=L1WH;hZnb&`YeI~!reRr`2 z9frsU%G{1(O*&sDx+-)#i2Xc~G~uX1cWnyi384w9cAG>}G*1M{N3w0=NtxNN!yd`E z>5h9?!y1OjhsxOw*BaJ*oVZmX+wt136IK&S6<*h**q*4G@YQY;V+!*LHu;}IPrN7S z*QO|+aGTI;w}~@F_=KALO`c7XDVzIqm~XOeI_tizIfwn`J7sH!vW7PwCeBr`b}ajK zLT^H>!tR<B^AmX!?%Hi)PvJiyCx4TBlX%Md{x{4w**Bec|JMA5{pNdRb_c!&nGX}2 z71$m5ew_$ch;OWUs@(3t*C_L8;(Et@Y(H<g?_>PQ_C#9VlBY=G$%cLzMoXrmBkp}o zGOU)bl#e^~HOhRR_*mh%W8d!+oD+l<)N7uooba45*{+D|iO2~}c}w0RsV7_d=P+6_ z7aemy*EEOKQre$sg+KEOf98F^u53vV24|zRNq!1*9juNDZz%`!k9A}+tA8^Oo7a3+ zrPSe7!<CN{uRFvsSDtl$)pUh*<!j~j&3pJh?dre6yplcWy!$<dO6DiL@+<j+<d^L0 z-^2My?Zj-mOAJdGJ(%S)IW7q-S=hg%VM)W1A0EmR+!T6imKb^@PdH|GiDe0=hp>Dm z*Cml9EBj5DGubYkai7&}!k+m~S=S+|Vatb!(-d?aqkeg4PY6?3TeHN}BYVO%yGv|K zcs-=$Gr2E`Em_;Yg*lV`(mD4a#~{a`+9kFg)f2wiU1D6q?7=SYIE6(})iHj`j5?9Y zCKF8L9sjTh+B?SoDX>5FC8w$FK$_5%7m8P2D8~27If2oqt6)A(p(xHxLMco8*Dyu0 zZaU>2*1U!-@~v{X<GQApuM@Kst~;#zd7^Z}YlZ8NJ6}#!g9e{{!ykrE&HaBkJ}IB* zw<{8SqIAMlekV&2=aWhOF>E_|if+2EYlvao$)uzyb6@>f#l&MX`~!Q$ZF}O1O215s zKa%0k`(<jpQ~XXfx4K)&PnI+PIvaa2zmEOyv%EX``<$MMI~{wx?}gHxYCZR<E7`6t zJ$7Z<t^j?n<vcyX$zPZ?dm0p40|k~C2sMegIZrs$!4V`O>d2+6?2%Z)qS-S+p*2vb z=jR_6q2$2E6CO<S-pU>5ak4M0<EVZ=>F3<m6fMWpl~PxiUwLtF)^-P-CA}5tza)2g z?B@zs>E5%bV?|HC;oEgRCtff_MM<tOc6TrK;nrpj{~vbF@5vvD>6^JN#V00v-RTwb z&GOgTYCi3jxcA%s-_MwTJiENni0|07Us}_wM7(Qdy=#TTk0nkiR0}&c@kW$;^2%fn z*FV~lxxGAjYok61|GRT$esa>%xd#Gcca_dbyE1EU9@qCxLQj0&neQwz`(8d}&hft@ z{(4X39L0oYDEl0`%dw2-a@jwYw@(Z&&hb5Qvq#3bX{U?a_p{w|dg5x0`8q!yJMsUA z*6ctfP4Cm6=7?AJN3YF@V~m`Vn^kh<U)Z{7Cu?j<D^H5f*I(B;`;V>YMwXf<(uwP8 zY-c_?eOF;yvE|Lw)X1~b?SpleH0)5!JMn1Klztvj`N_G@a*uM({Ifj&z0R)B|JrLS zHJe^r8iwEb@H9+#j*)TFqaOYJQ#8b@A0I1|KdH*KLALqgg)=ek8QW@)Z21w>*ZexB z%5tLCrP`nDFD0Ifi<F+(ZT;xe+1rxLX?*b^9e=uldS+~AWqqL)E86NRD*w{o`Q$R^ zw1;oIe$1$RJi%9cV~p6%+BIr3x4*dm<>}Prr*6Fdyzh>Z%-ikH1oNJ%2Ip;)ZjnA~ z8fO+O_s6_<^6|7i3pO)ZX)oL$rkx|DJtgq!pMa~o4VfYpthVJnyQDlT^$OSLgf+Iu z9_dBwv^L}ZkUuN@fmv(o=fp*Z^-s#Xf4mp1k$!h#D)(aL4QjSG?1Q@IeP{TxslCzP zcxmU_N6~hV-S|JB-lehL?9=n)ZRzzX)3m2qvuzHIsqS8V(Q=JPU4CZW&MRk5iT0k( z)z(h(>q_<uimA)pJnhAydh^Fc+A~fF-FYM`nN%KACn$V%k=DJ%^JmV!`-g9a#?h6} zl9JNw?g~8HZdg3|r|;e~cZ`#?pDkRXp?&Gmr|sOIrJcoRmUf(u?GcKcd-JsR@u&Sq zdG1QZ?GB2`vv;{x;wNjoIbq|Uki?SqZ0Cu}dfWBt)~=DBX?`iD<MeusGw-L(`kpqg z|Fmw~eVf(iR>obNx!$ABNa@U(|GNFpyn>5o-xRiNS--w@=L41>g7@ZS925TExii+& z(K62OL6Call7dxpPTk+^pr;V6H>rE4*v*4q(-+-2YnnXi&hgTP+Wkdymn<@^$_bOI zp43v6E>$geGV;=&U5{*frmdZrW|v{_zD{@lLn(p$B~NBq6@TN}*ixzS`F7yN!ha{$ z7~Vd)p<3gUn`CiX-rnWUuhw6Fvm<aOqfD|&d(yO<Q<MU`T7#H0j=E{`d2ucj5nnoE z`;{q4zE7oQaXni1iQ##dN6aGMh?Bc}EGIdn@U`0OH%A9>C(W&BTOXl*t@DI--I@1i zSRyXBe-f$`&zhU@Pw?D&g<YREU7WtZF}qPIDRIlS9aF7m7jN#~m^4MdT%`V<NVAK1 ze4hTlKVc<;YioC|{aI{&Jb^cU-N#E$7cE=y;Pl!9^C!C=%~)Hcy<MZ8Pw1$NWW3(> zuUA~3bX+qk{TF`gq+q_h{MRzZ{Ovb_(>I@gpHN@&;5p}q&kJmh+?#%6>k0mj$@Q0Q zB{o`X_Vlf9j%D60W@jf<rjTQ$v;EA;J>sSDCqCb5G5LG7+K+p}a`RWdRh#cE+WsoH zYWKZ`<*#C^w%=R){Z(z1{okv<r|z2A{`^Rn`~2;lHkG05{_?K#oG1R$-YZxp{3h*& z?uO{Z?FaMP?=tQdE)#!~cf)o=b>jDf|Ga;T<SErR{uTXZenWc0{=@fL{vM9_+@cxH zsGT@D!Fj{Fjehwz`2Q8nPul$aUaZIlwFq_H7ozhzH3e6<7gtnjUbOO=_H||H6|d*} zKi8k@v@1=S7o{zBTW{udua0%4%DY1E{C~VnvMHBo%{JFF#sP78pVlN_bKT?=UHMjb z&c39%&#!#HX5%N{|0(Fd_`BQl_P>3fCx8CswczlVH}o$DYdV(hwVCo)|J$l|%UwG@ zDQEv%`}a5dwVrpL{Bsum-|4TKd|gLAHMz`Y*V;<GQnqyuU+(xH+nJXc6*kd&Pmccl z>({cMFRgm3`Kd;5QK0+<_OFWP@67+ZeZI^u_j#ucYnSqtyq421UhXzKqTA?Wn0Ege zW9OY0-Hoe74#apa*}m6q)~>5j=iW@d`|7a!sf;tWZ|~F#`Uds!$eNhS=Gfk7+i*59 z`oOl9T-MuC+vaXuQ@~!h{lLNcPy05R*iEmm+IH*v7pd*(&dcW8ij*zcxMw;02E6Fs z*I9M}T;=jl1a`VIt}E;={=ZJ=`iZGK|A$Y`e)DV5#+~OofA`)!GdCdSG@p67SEuHk z|8w-GbzQw<e{^p6qYewzbKTu{_U~0(>ht7Ze%Z|6XH!{~zt^2CdUnqsGWOadxkBcf zA={?OrikB+{Wk6IPTm;@ZU1-Pxi;&p?a!w%{&`bwKaE?rx$mU$r=~qR>rc-PYY^4R zQH|cY=1*AS>KUPzw34T8*NO~XD;1WzdfwC|)9tsSGQ+}GFTdJ8HFJgODXDDVZOfvI z*B-s*l|6Us&0Cpox9{8N7jZwzJ|cW=JhMmvQ=US$g1bWb0*43xMarLj45<AtKVLFg zdiTauPQ^_<*56c9&dyT}^e8)Y!Q`6RGNHhf>6cb4nWQV48n3LoEzEP9&P}I@A^WY5 ztN;A=_V>@4ef2eU@pAK?%`q-MKl687-1}nv{)ukRtHZ2#XE4m*s9-bTG^p%V4Q9N| zaGBA#E=po5s|Vv5#yuProF9x5^d5*FusN{0;X1>5=4Z_J7<3qPSag_l*mM~8a7J)d zaDOm+AbY^*K+%ES4c{5G8MGN!GrVS$W{_r_%`ltsJ@Yn(ZA^9yH7q|QK5!;jC$J}| zCx|DQKL|dM-f*5Vo?#zL4eJf&A5t5{Kkz2VKZrh1cYyJL;{nA3i3iFXltUIZ?tRh3 z=)5w;AWFD<H-jwWT!y*VkF4N+Am<S7u-$ayYsMFxFIZpjzF>aw+x(HWfWeFOHO4}W z-<c;d96TlI%y976!>oy33BGDbXj#?)sROs-H*>^Xv|awMROErk1Cs|l57-Yx9<bE< zFTd*cR9QixnpG0UKWx}p_S~PfP|%@zaqWeD3wmAF)C8{AU10Nv^IpA;*scAaX8ek@ zaC){*rRh!BqUH0~)LC4N51TIGFv0X&iSnWTn7jW<KJ;5o(AI9`cm2zsx^Ajw>pF*& zh214Rmo6T=$gSg1CDN)hg{NF~!2}N*;UgaI+K0WGA1!xvSXUw;X{93N8Rn{ZQ6&0= z)TG$U$`ysROB8gHue{IYFh5e~q7WlgrR4FU-|VZjP;9Y*$#t8z_naqvon6^9xz^zO zvcg<dx2JzajOMeuxS2bo%&Oty<?3`wTshybJnxnC^t-0%soEPJ6bqbwl{In8hh0tw zjWXX{D2bRdS67a^FhH6oqG#{xI{Ek}bIl12>Fp6K=YEN(lJ@U!aA;z$vsLkUdoW?A zZq41!#^20)J(PYm9$Db9Nc*ICU8{zQkL>b;pZ?0+e<%GwGu^w0mqTddrR%NNK5u#u zs^IF%v3^}ccuUzq-%yX#t(>k?|0!!HH_lk`*e7DkQ8R7nJt`_2FU9y@_|E(3qe_>= z4XG}PTTxjWt2I}il3cm!!P6-{A&PrgRJMKUW2yh$mt)(hxbNLO0m+?-ZzbI>DP^4S zFk`vX?>KRy#}Vhw7uOCO3chI3cV2nB?77yJUt!ZlA|&3vnWZ!3u`lnsb|>duRlF~% zck|aSKP-M?R!y|r`$w<pHdlTOj9gwH)Dw1x(`VDIiCe5wXPMr7XwrIU`=JSYSIyed zxu~P-Muh)a3G=6k*=H{t^7Y#!y>s)GlwB;Vyk6%OiiL#)r@fc!;NM|ZT{R<k`Fi)< z{nxXt-4CxTJ~~Bi=h5Snn#7YfX=kZaTg-F$Q7jyE{c6uGwp}ULd(X9+I&5SU>r%g& z`gxmFhRogTbKIn^^(}qfZzOE{?tb+(&rJ>6-K+myW8CU}Uhzxx{g*$?7OS1Rb<_MS z`}{3sw?kFF+609g^F*H7^0?qb{*>Nc*Mq-BpQsv560}p^GC`omt2N@HO@^MX_|^zb zsoOKMe)pu^&!3+$_tKey1MMwGF4PG4t4yD9>5;eeVudqLrs*rjd!=?sPw~FF;O!N4 zj>WnP#wS`fO-+(m``%fJHS@&j-NJth8SUS+6!Y^;;Q#b_>9<qtg3Pu}cRhbU4L|F# zRmni<%~XpYniH61nPp~d+499h<(7<5Yft?a#gH%0?A17UdH>#JnRmqA(ung=&~@#` zv^E2KKF`A+yd5qD>`ghoeD7wy8G5xP?l)N(Z!S+awv^woX|~_HYn|ICzZa0w*}UR_ zQNd2Jt%W~wi^43^Ef*GMcvSrSdx=L}apm9K{|>i9m?s^7y6UCF(F1FbF1_uxX0QI! z<h$pdoO$HO^W(ito=EN14=PjgW;(u)TYAgo)1<I>AGV+Dc-Fms+OM<kPGtz)_mQ#m z^1P;2Qxx?h@7GQHsn5^s_?>-k_1xGk?J4W5<*gp?-LLp#$_6XFcZR9g;wx`=URoC| z{Akx>BPq5O?@x0^>PpMkSYNdN_GjgU(zlbNpXHr%2|mTCw$8fZv$bN~9OJWp&9**1 z+8^wf%Qxk&=%J(b`_9f;zVUtD($M<a^Sinv+7F*w94s)iPtGs-vUVoV<5Q0pvuv9F zVExV0tV>vVk}n;*@gy>m|B02H)D5v8r2_Bwml&;^#ih@Fa?O#AKh9fh<K$_X%#vdr zuOD9?K52PJp211=2`{|4mZxcYhz2!@eB?USHNk4mQjre}R&oT+{=fUn&+yJ?PJQ*B z@%@F9zBt<7+4XN#<H2P<*@ml|j_<9R_9!P<wo>*PtBOa<W81%%->$r)rpZ+0*(&LG z;aE7w{)^0^!W+NjaIbmMGxJ9Kq1>)V>gUd%tL8qXCoj<{C?&sf&y-;GwBHY|OnNAM z?Au+}w@0g9bkAS^L%rI5dR1;pw9H*Qoz#}edj$8MJ=a#*;r8wHy(2Ci1xb18C3P=9 zZ2od7@Zy)l-E(hPwi(@Km>u2LDc&QvEPAhnig{(Mul%b;-9~$V{EU!09;WB^sWo|W zS>pW(>8)!d`jl@dE<U-*JjqS8x9GOM$Xfo(N89bryt-^NYtG}YUAjktHtm^ED*Use z`R2Fx^E0Jixz4ClnN{<n=ZRy^l>>*BCf>ieMS%BDw(ql_xk(GNS_Gt}cz?&69PvB; zqdlNld8I9fhE}qwv8$?6;Buv%5&09o=iF4BX{XZ|JMG=^8_V9w?3(kq?&eqda(|=h z3P%4vP1WrOYW5$tu@!sH8M$_ei*SZ^ipRy}FWg@L`8#EYl}}6hl4nK}__nY2Y(F+Z zFlB?9?5e-!FDLx6`x4&w%RE@IX5G!p{$>^zC02atyQ{_Vwo)c9w^8Td#BY{t2Fai0 z!{t3Rj+Yk4_3#&HZ+G7s*_E)?s9Jd&&y8>q%Q>QN#GTykui%*7n?3)6iyv=@dO}9D zpCtd88%5vqPWwwqS#JHFnR0jclt`<ek4=)(mmD=`sr|XdMr2xNa^wPej#W=K+tlCU zclOaeA87wv_j<}%t9Q?q9G)zwzR1|&{Q3_+74Mm_tXFkT$&%#1^s7#$`R(fCJLb)+ zj63)Hp3ysx$(zo+^EQ32&2RWp_Qf{UE<Z<ptwT0*WhU;C(7SdnJVsL9{QlP>jj5C6 zf7aOiTKKi^;%7(Af96-t?zV5e9`n4r;I>JvVfJL9SdIPBtFQfHNc_Zex%Ot4`md#j z=d1JGmD^J@bxBO#%`N^t#mO9((`Nsu-QDwLr<S*Ox9*;3y%)9pJmS4)p0(|9`)X1C zd3#E}K<;(<$&#yQnAd6C{_CW8sb=w(jXO@S`zU)k{9eku`UQd!qN<*Y9?#$sTzgXK zx@X@0;7#G$X6i@2iYc;JFMamwn&i0y>(xd7<k!94oYyIy{dJX<eo511=B29PTZ|Xh zc$EAo`^fw~I`MYq?$W|A^PsNc!=Jo0GY|gJpX`^=Y<@yJCRHIo=CNv)#^vL39d_0G z>!M%Z)SSGX+vEI!h-J>Y`*h!PJg$7%|8e%d&1RNXdp8K2sNASBe{J*T#~-tg#{J^* zX0+B}?atPU>R)?2Xi;^^^_7giA0l3x`fN~>`R5+ANn}f*szK}ZzUqpu8^5ZAA1n@< zys3k!<#_X<FiC#R6`BW(7B1NobmLL@?0_p5|MwsI*1!DnpZ4Ydm)5B~j@w(YeD24f zhO>u{K3dhxI{lf`k&RE!%2f2eyipZwc{e8cdEB`-FKhHQmo9H#@|JH#^qe_s{}yaM z-DdsHPt&<_j%e`viTc%&n(Oyo?3Mqe)%??CTS)uKw0AG&{_1#r_1f<}-V$0aMRRr3 z?r&Sh!%|Tf{owGNCMF$|PqUtdJXsc#qUqTo<oLO9TkHErLhkd_uY6l3EO-CO-s1QR z3jTi%K3q}${zG|XoK<%D51&wbqrCoUx;1CDqQa{;C3-1Ts(%aKoTf5S|JXP0I^HF| zoNG6AuI#KZjG7ZOL0RB_?GLWqqSdAK-3yLi;=D8c*xERot;hLRi0r&$o%f(WX>xV+ z8LfiA=tu2!GL7d?G*0yjX^QGxm!>`I>f70t%tgKPEZ*E`pSN;Vz@LgM&mVd$x!6=2 z_?+#;EUPn(ZP_PJ7cl+38unpX`>iEMy|f>NP7z6&a>e%Q9nrlaPenwgUVS<xWN*lm z7}2{nPeblpy)!jr>c@9pd0PL2WTb^{+SX?5K5@M=G}QbK-;Q4j5>tQ8?|yt=?e&2L ze;s%d@*D3;m1W(Szw+H1r&gIITI?$sO$%Zdvy}<#>5pB^)>dzMkl*pgWK9o&&#NL9 zD;&|k$ZMjQ)^O7~e#P~b263Nv{CN90dR}Pd-GVLQb(Z$40<&kF%)3~uUARK`h*ekN zGLxH0|CFBxOx>t*{j0;y=XLJ8XMa94eYXlrk6g=wBoVH)+w?Eis435W<aPI_&)s(K zeTA7u<|Sv{rsYqQxLsU)?A^QU)ZnO{-&yj%dp&*S_3`}Hy~@3pO{CZC$jG<fQ?NRe z>*vXje!R_-g5nyVwdpV1lX~g+nLj4mg^S%|IjcH3Kbk(A+N6B_GK+q}>IdfQ%L@e4 z@6^n^=o>Nd<<0Bgu58Qw9;bQFH>P9xhHuqN<Ieu+@w+MY=S$o!N3&;h#dSZ;{dD}g zztAOHX7y*Ya`>y_xWs%5CheZS#yq|Lt&n@)l9{EIGY`hSu+CIoX;`MP=;FMGMn7`{ z?qsi7BDwbO+Q~`r6OZ)B3fyj$KCwp0S+h`bV!ye9Zw908vtZ}#_k<2*EIijXmE+>m z$gHP1k3t1sbo>sn=-jh>N=EjX&m3>lzAzS7NZi%0?a|)(HR$<@GYgK)OfnPh-hKUT z<Z`>MuDrY{3uZ^KS?u4gGUsWTi+;Sxxqp8S`t1Cgd1b==m%2Lch8@=qv!Cu+&)#!q z|Gh<74;&j=Rw=YhF7KPl<LtNomQDBDY@>@>rJuf5=VW|{WKzGRY4n&Q?8(lP+VT0U zuMckTa}Ubi|LN4T>DjwNs=nR-61eNecK!Do-}_#-xpzJ0v4G36{)Q7<^6a;<uj!oY zz?D%qwQ0qSdX=kM4i~)g?tUrn+A@DtL;H524LlmF*XO8&I0*9x&i-F~RcZ0RSpI+z zTZe;H498>soe`QCD-iynsbKDzyoDwC-};(gu-Y<a?%x<2cK!6rD?cu(eeW|dSpPos zYxc96gC>i^=6i<US@cijWb5_UU8$VkEeb7C`*+j_ZacZtaQ@x7wUOJ*4L9++>aRa3 z;$|Rb>wo)a0>Ay+8Q~{ZG@W(x`#G_OZMFJRw$yX_QiUc5f7%u2G8RkuS=xMd`+jd# z<sF3zjrQ1uJ2syz&Gn3vsc}C4>58V!^_0sT-lnY5QF9lW{!I-?6W_hzDBsF%!6Vz} zNTsUnj`#6<HQ(~rrvqo1FEZ(G^?o$hJ$bwA<N0SN-nX2xLNk2Diwhyk{`xLlJ;iPH zleEA|w;rDRJaLn}ZuuO+&}kU~>J>5@_m=mqO_+OQ<F=pGCKs2B#iZTJ&3Y8<7jms@ zl1j{vCGTveObMENBEUSfvS@?K%76f!_p`3Itp0GXPIK~SJws-pbFqukZkhFNe_MJa zGtEj#=IQ({UN+0kk<zWx^pt*S=Px*+XS?;z(om+mWogQ<EOU~R)TY)vWn<@Ue<jr+ znBS@VsMgeNrtjsiP2X(Y{e2^5I8^>z{##8(Uqtu2ST*mJrS7sbYRodtk~V4bYnQ6N zpHTi}_vE}pJ@cpiw%hHWhX`w_eoZu5;Hc$jme~Dj+pd3)**5m}JoCM~^Vg>(S6B}v z&FE;>xmM}_D)Mb^*YP;f;~(~&+&0Hwd!5OmAL%9gYQ=>2@0vfW<!iwk^XNtMnSMkY zMs5Gaq$e_~(v~f;o5O8~;upbP|94&gwY~RN)J)}5nF~I2{wm*@q5J#z=XZ~-k0ec9 z5UXwEzIV~C-XurEZnK~3*D)R}<aXDUS+m;f36th74Go5kxA(fe$x+ZgQPg|m<=?$) z&(D{c&*B=pKrfC(b}FCiQis6wFn^&wHa%g*x$>76PO#~!U%FPV@!ju-<<F!ac=43; z-|GLY$m$Rs#^2C1<(hT}hvFH*c^vsI+K1#HHgPbC&#V=E*HN%ztGr{=@0H?nm><Z$ z`oH0^OH1AIefKtB+$ovAz5Vm!U2zlkn5P&nE&Q@uJ@wU6*;hR2errCL96Xt&Zzf>P z)K|Cqn&eTN3u|sxy}dLizrXq{+tWKG>F1L>+aL9;c@t-#F8k(*x$vCZYsAwp$NjmQ zA23^PyXNb;(;V`?=PtY;^0m>hKa6?p29AxEZx(8IE?K<%*=@5$JxgBuZwimu=XQFI z>C4Sen!T5Ly!QBQIb#R6@h_pW)Fr&KbJzRMFrHModCkqZr8d43G-UK9&B=K`H(B@8 z6tD9e60RoAO6{msyR+bcxxr<X?>7v8PwTW=CK-G`CcvWRb1Hv%&(?*_vkuvL{!>={ zJgGZB#nh$7IPYE0S4Ea*QzuGoyKpJi(aSq?a_I)KIG?Rc#pHhr_i?Zl$s3*Fmb|C* zwsPgco5yr_Ii84BwcYjp>YYbA{^uf3{&U~?@@??Bce|SVzC8EKxZHZF^ukmY?&8qh zyY9`aysOi&?%n0R=e10~9t*Bh`WxIAe2e?YW|_sS<`%!)*^_qc&CH31-gfx<sz&a# zYFqev>TGNMxIF@b8xv1jgj)PR9k%gA|IKdGy419n%<r2I|4=^`YJB+TnSJ)!qMteI z!nbUZ`94px=uY_N49Qt8v**8i&COR}zxZllUHj8*vpjzDS|-YHEfT!EYlhHV{c!oX zvUR6BPj0%u{qUt58^YF`Y9A34&V2LT^p8_)sKbGKVYB~6OygMXUSYILLTPdSf(afP zT3_pRWA@({`nM<CsWWSd+I;&tGbXZ~-}B9lXHVCBT{Ro+EoD=rg?|5ZGLiGko!RZ` zGrKJHlV-SK%7Z<AuWm}b7I&1(jyu$IpD}m2hr5@ejzfarLxIKjPJe7V?8&lGmd_;X zLgnGV>pm#UyHuPz=JD~r#Le4>o0;}@u5+||_-TKJ@vI(~8Ex@rE^OO+bGDzwnml#m zZO^NZK2A6pAb#%md#2;Rmri~!y78yfvFtDHGe5J||Gc+NAbC;3^X>m`eVKMRlH=%4 zL$`N}=4}^#p0*^rncY|~Qti^dYDwoR-GZLN*iX~?MT}2fome-`#IdJp-S5sz&$Q*8 z^q=SESbcr>+Vfw{r@mjSzg@d~nRk)D%X{l|#W(9qM5dlPCikM^(ehZ0o6oPVKDDUO zZR7TR2Q5tBE-siDJhiBysV{i>u>&XMo_|uE8op<0y0?kOF-_0UC56%jixyfcYUcBL zF|jz?@zljX@A(+_N~K3{S<1(GT>Yol-PrRurt)X)&P6Q+E<tk-&b2+NTP|TJ?Q;EO zUfoP*H_wAlJAe2~Uwn8{BX37H^NwdP|KB`%^Zxyc=*N@K3EYpGp7N`bS&-9zpOsU0 zI<xu7D-VnW?@4N{e)G$`|Hz|L*WOOe6VCn}Ves;5>6)40>!!b-emWy0-g1A9-;-kr z+W*!*319EMtM2Lf48B!0>#E*Azxn;)x5Y}6LZTL3y1T-Y)yV!___4R&Eayygy*$}* z<C=}kpYxby4I8~PCC_s>y?^;xzcRX2GXM1})5#hI0sB5Z?CAWy^4Y&ds>h38u;04r zK2MNu_O{$hQSzn!E43a+FOuL>e-L;&w`TXcV-pf}E@)0~eqVAakNd91#oalVkF@yz zit3NFWasetrBY?(8-H)P|I-QVB{h${&hjPBd-05;=h{rUx!Y=&{+IiGFd^*zwd7MG z4=+3o-7(cNV&^8y&4rIYMRxqpIsEsR^gBg17302X+0*&oaZM|q+kfA=+Mr5V_geP# zKP=6w-qg&wRw=~vv0mM6O$skpYF<ilNl|KIE|{60l*P+sXlQAqV4whIM=KaaE0~)a z#40ElM=KbaTf{0Tm_{oYo0=+^nwo)dtb&4}VYGs=u`vW&Sb{`M!HU5mM&=eEjUcr| zVTdKhhS3V97A7Ejjo~b_XazGfb1*hHGEx9xFyGKn!Q9*e%m>+KYG43X19G8-u`yU2 zBo9&xqEYl28G+SWnwWrTGc)s81qCxBu=_zQ6EI7`#LN=pdXR`kG>8Sk1_lt?)C|Rs zMn*=l3JT^Rl?Db1Mn*;oAa{V=gN#98268Ld&7jaUFaWz1BnHKxurxOZTL@-aB0?Hu zD%hS_1(dimM#LS+U<2gHQZN8Rki}qZVX0sMb~uO!QVqh$PQ=FssWkvak^+o`1UopG zX%{_E7em|)jTVp#KmiECxT6H5iqhyn32GDcpoRo5CJ6~DL|Q=(R)}hl2!sVAL8%my z9w00;v{Vj}1Brst7F3OyIXowTq5-PL%v=EyH88VbG{jaA2{H#ngAxLW4GCV5I*{8f zEG!j3qA+ZrU~B=-58xaQ5(Vi6sWvq=LragQut2i0(Ra(tDM>BTcgsmENp(q0&QD3z z_esr5FUe3aGB&ld<K=>tMHO>mC-`O^G2m(aZr3{P^3ex9(HYza1JX27F3QjP#?ZHR zN!u~AuFWUjYFD>uh9n$zelP4l>G-=Vtn(fB1#huUlc+6d@s2sE#AESOfsfZB|Fi4W z`{&d+PZsRgm3*$(6Szh91b?31OtTxdJ1rjcPRM^Up=L(H_tH0!-?P2!Es{@M;8=U` z;fdxrpDI)1rZqSA72o+@dE5B&^B;GFnpXWP;7eY7SXHt+<xtC_+#M!c&c{S06#W17 z%7=IHU$c-q-}&E!^#<))aeVh7v*ou>#l@t0MShdIxXxwHy0|6Bv>Iy;yuKLZ)2j7e zeDc>K25^dk`8zc)1zheL8d{nW6>f&c#+GK#Kr~b^GBq=?Kn=$;HJmZQ$G`obS)DI- zNbH;M11FXgUk39DSpo%`dK?*!xvDJ=iyVT47TD~L*tOzH)UI2xw{N+=6^hZ?R{HYZ zzH55x*T!z?_Rcnsil2Wgiu-$gnvj4_z?<ja>;B*8`FYPcJ?-3_;%8@4)L0rA8tj`G zlIl*LdAaGg_kD&LVcY^gPp!E$NwU2D+}mTP)Hhz$F81Cc`PBcPjZ}k8<5O1dPwCT5 z!{bVM9MTS7?>}bMth?1rtMl7Yv#H0_+Gl(@byJ$**pr040lBMJ?l$=yEvHb$Gwu3y zi8p2(%=|L>hNptBU)dIN|MT16$BaQ=8Mrp@T=lMNX6kHth7U)o>Nnp^S@El2bDila zzk}Z%YaT9Vj_-S_rPFVA-Ey7Bj_LDR4<t^k-gGU?q^9y2xAB39E7P}JlU%o<P_am+ zf6XDbq`eEzm7HG8AJ@MqVBW3UX<MzATx{61?CFK7=;o8#5-u+e4lw!EvYq+sRGtOa z2foi%-DkOc%0#aPFDFXs`z$&yzC8V;%F6UjpLSdl?w+^C*7rw9)i)ovm<yYq_M1HY zxNp|I67k1xnspvT&SW;tNVE&GKY49;3de6x>%MhU?rNVtk~HV_$^3?_bN9QapX6{C zDe_xp;cqnM+&N*#dMBHYjXA#OO(w1UqN2a{#cI)S&b-QX<x_W_E%4bU%k$j(=l)qD z69vBCpLBM9OVj?#{wtVH|KFllZ~oE$@TLD}KR!8{@JGMv{&EGDcY7KlBTX!JS36|h zjX%9oYT3I*6IVM6GtN6vA$MIn@wS7;>HV6j0Zl=#4*tEs9LTEW;{U<r3zPmz={*Of zFS6GN)E*4~#r&PabdmfI#b3?#NenCsY)%SE0xaI?iZc>9S`;2xTzbFbahqbBvqch% zi${8bNRLxbi^dZd#d(bx9d06yE<KGBM<P00uQa&*;&nTmam1p-y(fJJ1Lvjn25iR^ z)SQ%(gj5vOoHvz71u3u^ie3`9?9ja;bp`X>60S>%vWCn?0>+BLR-DO+I+q?N*j##? z$n=P%O*m00Ni4<le`C%Gw>d161&S5if3Yr4G<uXWqsfBx%ccE}{Xe*$IO#nKnb9?a zz4FBQ_L?J1GukY8mwBrvSe<d0bFe_|jLRMgJvW^erz4RD+=XUmCf2oC8i*I_i71L4 zw0WsM<M;-NE<x`FEE`3<1fL&fTFEVTK(%AKgJhEA6y<5gF&x}W<qd7b74_PVc1%B% z+A;m0&`b6RCeaSj1P2p^I{v8vom&KZIzj_lWrRbN!<>1OcxNnqe}G5Kg<Hoprt62U zPIGF<)`0E^_OF);SFmee3frJ~>p{_z7(U((UY@rJ?j;S(8wF=A$zQ-ZOK|o>t|QtD zSU0l%Yy80<p;ya$S~89^Tq%w<Tse;Sx<VYY_LAfcOzT|th(!rTKeT$O5p(=Q)egCj zY&!%$x<z#E5DHUV*L3xgU<7Y&M{a@eBj1kpMBX)ydnEJRVz{?^#2?hX(07AxyVCQp z9lS4ZKPWqL`yt;EYk~bO)(`!T>`st<WVIvu7t_18YJvBS)q?L^e+#^C{=M}4!@48- z4;U*LUa}|JUV5F#d`bF&;*s_TiAUNW3ceJuVUiX!KeV``->8O1&b>xvo<j|jnPOhk z*-MT$c%lWiADDb8{ey~4>zCk;`3En5;CW>Hz@@~g{flPFfv_WMH}Dop=eXbDvtHt# zz;4t1L+6dl9nQHOb2o4oirc8y@|-{Tx#Rp{?hgF}c`q5>wApr4C+HV_J7l-y`@!xG z{X^az`Ug*6a{pkor|AdRo~|ESd(>(<)*pP`vHr01iAv^sF28(#s6VoQsC#7lgWMzA z6YU?>Rj_}Qt?>WFa4+?T+@Ag)c7MEoiT~lYbNItx=kiCuZqmK>{s#<~*dGWV=@-1; z?*Ab8i2p<5Bj+D1_#!9M;@r{xp!mr7hukk?e=zNH`Xj`rT-W-8Po_=TL%wlwhx<c` zqP~OIJK_(Ucica){ZgF;-+jfp(;uvV#8pY}YnK<OZ;%(PZ_zuV_k;7Jx<%s;<3G_= z+<pi2J^s&rsQ*F!$scw<rFkvEm+T*k%yIi=@~7>~`U19(=09XV@;sVd5ogu?CGrRJ zNB$RXe&%01@*VgYT{;C^c5Q#W^JehU1+)Ln_e*nDzxp8OX2T_pCnwuhewNs2HDgbV zS&YN-|J7y{)tVm@Y8A~YdR<hX#-E<ZA8g(-zs+Nxom@uq1ItfxcFmjFvuv5>^Q0eU zUD53McJ(d?=^FO*YMx*z6JGPsd&=SLljS!%mNCx#XPzUGw65KQv2I>Q^B<<157Kki zN-Z<VkUDop@sEiM7uT0#+ME9{S+Vk+`zC`V&il<#dW!f3&5D9=2i|6}e72f1lTkUG zJ=kT1RPKiz4Soy3E@-Nhg_zUT^MRSsrpfJ|a#F#!1F0+iWm_J;DPWY8n<1pke1YvM zYe|>PoV9WRQjR%%+rPK;Mo7;}TEujb?L7Ae#jJvDRSuafW<26~50$UAEwk`7kQ26P z=a_JCQd+^b{|%P}W{3YbnKRS*M`p(q5&1T=A3TBz%}akAyve*(?%*PsJn2r!omMk0 z3AsN!dGtAxl`7vkxfNeIn5uTHl(H=<HAr3JwvhLgB2&tSDOMKM52jf+-H^%S>;vgJ zmflfu<GZ&+Wq%LYG)D*ik9LQHE}gh~aEh&8v)K=RkWGcno85UeT>o#K^Kh9~?vqyu zr*>!X%u{IIqWs?Q$nx2b8ZL1#RaqFff4D5L(!gHSf5JlX3!3!>-wxcD=}}ma+`e+Q zNl~f6RFSj?oJN0`tVH?F$w~A&>-_nb*<m|t=}P5r_REhZaaJ_-oRO{Up9FG<-~VjO z!)tHP1ci8LB%j>u#moEmxZiw`bGPBrkNwk(@9dguos@g0v-rQ8;f1fiotxT4mD>O9 zZ)maqdv4;i)`xbnmijN*()mm7{+W1M+A7x2=dP@{if4nQL;tcb&GJ7xZwPPp51E@` zvGMZ}_DL)SO3UhReqUj||Hbb|^J`eEYF|z{DgM;w)VWy}iFa<C=_#3OrfaHdsafdb zRC6c8H>XEJR@72U$wtRS#X`g2z<vL>uOGjCy7E(i))S+~=NwB!GM0sQocqDGTwwi7 zL*=Q{OxaQ-ei>@bQQEYOH|Md4c7$<Zg17CqHFoQl-n$xf|N5jAM`ccU`U-NJEGn+w z=k`X0`}tJG+Twl7VoJ&ktIQU+R)l>x=H$ckO@Q0!?9WA$LpoT`W%@qb*3?xq<@&>w zr!GI48M0FI!op83mxMLbJC0p*bW#&`D^O&;DJ!F~H&8o$huZ!FlFLpm*RuGzgUNa7 z=8U*V$2u1upUSMR$xkFrr}|y+DgC9kS#84cw!%}N=Wv<zWGsAkz&FYL)V^(|bF)^g z@%XmtQi!D3bjwO-OWDKvlE=@MxBYn>@nWYE*Z1?<(Kq*-HRWq_Z0*=`<Jz{MlDrw= z*Y=yWB~@CUI<PP1&X%rinHFE9z9c1fb}TM5pEBL@B(KF158Z`fJKq>*a%n72TKVG3 z1)r-kZcht)aHnOv<-#4RY1tJ!>ZX4YZ4vLtU79*e;`tN~-<^u}A?^xWM7QT~U+zw1 z&JGH;x>BciyzIx1U7Y&w|Fx`K-xs*Xaw%8$ZyWCwZnI`e2>M;rSfrLJwIx%D^|DKb zvEPxj8K*eE6@@+QiI^i-DVqB#=hX7Qb2nLRb<444m0+B;PM*DpC$G=Oua-;0^YIe> zYa8}WFH=*uo;)d|L*r9{U*PeRYi#sPm#&<A`s$4<N_H1&16uZ(PD#(c_}9>|q$&T^ z6=zkkIoi*r?mVRw;+Dg@*KFsVlc5)8)$TQQ{G55V>)xz=??k0~p1jSmWVf99vDSXy zs|O8C#oH#c@CWA>T@{~}!S!5MN0|GT)}4L2I<f&pSN-3tE)G7|u*b-*sW>=><$RW* zhWK~WWvxc~%LUr)i^Q&k&gD{dQ++H@I4d~T@NnzXRWoJ?mc5$dcOmXg;kwz;zUgJ3 z4t!d|_>}Qg<<^fYHVB*-ou-$Q9n8DpFst2GXXmi9uP;mvRpmZiw(_ITj#XQ7wB2{? z>00?zcJan_Inz6$)gKqt#zYBaa&mF9y$SO>xk{<*C1cozs7Awxn>RcgK2F(d!*tB= z+|giTxn&_QG`^naeIjIVy!c~+>cJa%oQHSvEH}6k^khr)){7VC#@xEb`(@%LQzJq7 z#b4*OA6|S}_|M{Ep$tnG`;}&fzgC}3yx9J6tE!@MRj8lam(m}X9<Am)y(RY0vm+VV zO<T`ZEiPSZz}WOs_u_s3mG4#D=g*aYA^5^@;oiw_uBL0=D%ZZXUGrA9$lK7aZ{8wr zFN?f=Ec!OH>syLz^_)euTa*G`t`E_!of79YHE87&ZC2IgEU5|0zf858xi6gk)YUJF z;u>5%VZ|aZ%jX(2ST1_<AgO@uLu*Xp$&jEIchXx9d0njB<#O3G#A372*^ozH^ji*H zTDkCC=gHQ&Tq|!_D(<|nQX?wln&XLEMNh1DhQ9cCX_KE);5A;s65+e7Egt4~WFFQ{ zo9<k2dCCRNf0O@iTK1HmNi@&LZo1Rt-^&jznkKF=%j8k1)+~!{nv3$o1M)bFZcA>T zTXb8}+~iVac%tXb;^LH@#?3-ODV8^<?RMTj=iP46SxmzFwC0$b&UBuut>wDWdH><P zipRr4q|ScHG_Wks@cHStS1ta{iC8<2uSHRFSD$>}@RW6Fs_f~n%l@q0`Rfi-uj2k1 z@iU53Wj(XmdA9E=-w`{(MeD!L#>pW;6Fp0gSZ1?J7V55@=j<Ni4MKAk&p+&@v*7}# zj@IjdLsyDo-n`k_`#I!cOo+>oDgL}+x79Xx&J+=@Dm_xn^w(*g`n%e=A9k;L^`oZF znmx;VwLwD0RQ}rT((u+eTTQh`mY-U7d-dknpAGTI^Rd&vnb~xK$=j}Wq1x^xwRgJK z{<|o7^65#1-6EG#H!DcRFaBZuLN(OtO`Ys(&FQ;RPCH!Q9AY)a!9MKvySkl|7~jWD ze|Yz4QU#~q0l7&mt{eQT_<I75nLe(4khFuf?2z3LruBKD5|17}@e)}2JCQdoeqA%~ z1l1OA>jbfy)n8f@_SB{cYoAc$$a>&d#Ic^CRU=tQ&Ntkd`H{_&|6XcIya&CnFSYn3 zTOj|YvHXEIhjV9UL4(GL^_M<RXb%@r)@hIZ(3-RAjT%Qo^uxj%Ec%D8tMulm-2ZIv zX}x6oQuz(xO7}vJ9aj2vmS+dA+@Z4m!_jlv>Rq^|PxJQo$bVpKFTZWURsBP&Ev{uM zO=3NA!uHtqFMsr|dPg_ZCCR&NJwB)V+8IW6n=W1c1Cfs!cZz;LsX1rkaeuCb+N|&I zoLq6gW<~SrMA17vVRyJ+Ka~72%||h9)BHb2DvPyu?A@evROYBm|K7Xuo|l(i{&L${ zp!rrD)9DW>wWfcUvD|63l|QsG?qChmu9Fo;ojz*Do`ySH?|8_m?k_xf$MK!c`@_FK zY1UZAAB;aK|M0v<>fPe%YhU-Mi+YAH&@Z%hsz0{y`lp2=V$Hm7F7SjO;<}Qj`>gEC zJ+U)>U!KRE(LemWK;*Oe2i-p&7D~?2p(>o4`97;GQWu~6Glg@dV%erX8*i(Va-Xz* z&YSb(SkdF1I(d5GXRa2QojbU-*l%6)?bEW4|20RYeP-P=cYoXcL;H{HKls1<KhNTS zNe2}oTHGG;9n`E*nIquGWotAc(_r~Yo=v=W`M-;N)0y;Wsb|pAlFe88enx*O6!{w_ ztg^t?)nc{VueVZLPO(i-&U3tfw?XVKEB~VRE56Tb^{Zf9{6+OwELR1;o%3(IcI7X( znO?|b#S3&Qu2hlzTP--VuTt?`u<*`FYZS6i?tSr`Zxi!pyCROYZydSB3!dIdjS((a zEjQlYx4ZxL(YKHJ9{70dkx5sYGXI?Tr|BQMf1IvhuNSX3ujl`-uz%kBC*MD==bSS^ zSA>)IP^r`I4;w!8eAxA&vA|>5WZy|!6U$DOohUoKZ{qLM%1@G?s($iojk&qVX5E{{ z+z(bI2l_te+oXsFPUfrVl6lTr$NJqY{8(iXyT|GedY%U)PbexxbASE7oh9M<@2IcB z^bc;E1pZ$4T6I#XqCx(s{h4^4{L`;IIpbYcEpUlouRjsT*1V?o_Nn4cX8UH(dAO}X z@><d9UFM!okFa~4aC>LiGh?*^yHIO^#er1L-5xU2PrMDa@wH0a<a93m<4v!4o!lq= zi)N{M#ecGu_@TU`j_>g;t!HwFZ68V(c^Hasef@0yL9_6KDVsJP=QlffYA2Ub*KLoq z()jCtIqT<dnb%V2&amt6uHv0GJv)A0O3UN_!}Gf897p^?xpxX@j>jH85q3_0$G2I9 z%Oe@;3-0Zh=T#uT@!`FY=Idvq_PBqRu%G-Tu&7lqzuM^FiDoZ7<4-o??-mO5upFAw zDeOG?`3nDMXWpHgx!7*5arE7}%)v#wieG5QPJb!>SX}(Ec(C#Td8PgD`S<diYtnd= z9G^a|@1Wov|Gf$#YHwH`$u2k``AQ``pWiRMx~+VY$KL5#Ysz;Sm?e15$n?$F^y|yU zcge>SyuQDjqj}`Ky|#9&_=1OzkN3*XpV=rL;_9#<M)<W}oP506{8d+<p4xF|%auEK zu55`3I;`H$eQLI8c38xvo6|2B6<@yerRw_iRgM;ozxOg-|Eu<QO{c-c*@`n-{U$73 zRTQ#0q&sx$D(%psfK?rboK?dsPB@(W7}um8*VO7U)h1x+B;mg2%AqWtOkEyJ+uLK> z_<~D|`rcMGhF89Qs(1YIncy9_PYQ%SIb-JkYKOtslgSTbV;8>I_+g!<rKM$LRLSg| z)TmFVR>wuo6!VflV&9$iYw?Mb2j`c_#(3$eGR|~yHeyaOY_Z?9a#i*AoxdwTi@n?U z?)6ELI{lqLzrWoSX<L?DKIQd2{d#`gD~Fc<y7Kat_ZHt<(p#I>tDRCdGm8=y6_cL5 zs?)2Z_o+$XsfgYvVNsFQf~J8VH_q~Vd2O!Z0#WD7TW<L!U48BB#O&<k)Et=R<Y6%B z;K3ITxgBO9Jf2T4IdRB~Ny!|^6n<p;Vaf8p99~YBoShCG-EyTR<7008p+H5gt@$(b z{=S`YN4BDA)?p|1#cjv@8#Vt+_bkY7_@$)Yp5!4mH*3F+{VSIJYZ%wPv~67a`ovPh zBl-p^7RJUJX)$TXT0TDhbL?2Q$>SuBPR>h5w4OLVzbaH$^8IAT4yD-h5_g*}9xN7X zd-U(CvZY&ChQ6e%jn+Dk+k5@XJJojlo|5qYao6falOH`g*2P;hd9lU2H;#>>|1w@D zueaQNOY~y<&!sz>RSvOaTyg)a+^M40f5_LE(_QAYdqw&(HP;UZPL^z3Y`Sl*irahH zISW;G@${yPS)E)xS)(j%osj?0_S6#}Dpr5@xq7VK_l%Y3<dn3&S$9h}dEdQTn!{Hr z>@)MO>C)BSb0<GO9wRd8=p!XN#d}+sUbvg>kl8RpV14IQc2>4_mSDLZ(@y*luzZ@D zwjk|BQ%Rra?%IQ~{cqx|Ol|dU=;!>*Si7(0<fZg}aq;gp+n=9&uUGxB`M3Oz{Z&7G zZ`~-U^K5$d>FMKVCTBh7%B&9ldGCe1k+ts9b$O-1muLO8jh|N#buVXX`~E$}&+nPP z)7|N7KC5zBy41TlelahTA9((qp;4Q1Aw|{2r7!Nu+Kw|EpG0aVIUNbDTW<TK%<0fE zj<?B0Q{)mm=N?&}tgBbkGjUyV#;RWuxB8bE-~Ri8ZNl|M{+(U{tjCW3Ja+UL`;p_7 zy`9YdQ;)g#C<iujaL!x&*rP{E@s_<2pFxyI(I%_*qi45XKXm4j*xvdND>{Bm*zw`Q ziQBD#2NSn1p2iY=VcT`T1GTQk^NwC-*&Z%>W^GNvhTGL2b@u&}+^g!bE-Sb8t;c1h z*KgaO`}#`GzZX?>_3~-C=$!K%^Dg{&&HKynr|F%o@8jz49u8lBf7`pQ0rs0RN^>7- z&tCWQN{rpR$m{9T<qOz<E<Y%oRL1DP?RBk<h`>8t{?DKOS+>0sKUv(j^5&W3Bj0bo z+0o2??QZRZ19xBZ73^I1obk@i&M#AQde?|8Z9U*(u_jzKYx9;nE>DkeF07EfC1$6n z^M-X3n^WPP!X;tv=gaA<RkVg4nf!z6tZU~)&6k~XV`kVHYS`MIFu%pzw5am@1_S;7 zIXs~Pn}dS??p<{7nY=Fl=~LTwZapmU_E_b`vYpe6)<x=eU(S27a(`g?%H6y4RC83D ze;s#94-kwyT<|9Osrv2?sl~I;rVDWfYX6;l(EaIDA12l%O_odki0nIg<hHP)gV+=v zMV3ZC!MXl(H0}sq6;N)Hcit!O>tyorooa)ynPSVYUR_43xl@#*F9%=zESbg}>3^YS zQ)1qEUEBTN=e*t78q>!vXSs7v`fUH4C%vg(zuVQMuG_0{Yuo)zr(-@RJykV+w1??W z%AMpJJDYL}N|znl5bk_FYD&SjbluDcVgIvM)&1JIe4DQ(*S)x}T}MCF`0m)Q|JOC8 z&D#9n$Nz3>-(x+V9pjli|G)f6_kVHEw*N0TvKHxkI_sC6bUe@A{lN>qGfbZS>_bjL z^XzAZ<?(NpwbtdPRP;qYUiNVfL;3DZ)qC5`c4YGJ*_=~+Sxf0qd)_T!qZ6LyZ&_!? z?3w*dZGFMhyj$#-T0DNu7GS*Zc)(jDWlPV$(5V|bE*2e&KbFDz*xWek<cq02%i@Dx zA2D9tt@c3Gct<8*O$z_cOu4Sq;=5ZetncM<N<F_L({e@X`rVnTM^4+7U6wNlz4mrl z=$tsaqrTNnQ$I<Wzh%98YH{AJ+3`;eFZ=#JkhK20<l0y1%72~a-?E;1G4AgVyD8uH zbzIC^wf}pL8@s~W_isOWChY&_c!pokYKOdi&)2odB`ngXRgE{r&wf$&CF5G1<>Fw; zy|XTzs<YDmee(OO<KK&3$KOga4wddvE1VpWW!AZQ?bk5&O-F39o6p`#D2Q0|b<x^u zGt{0*%d|a|dV1|z*U@QGn-A-W&3?12O)WSyfA^b7({_1fubpu>C2PawZ7(y0OCHU* zDVE%PHE(U1irDNdscc?e?mJf>Un;Q*pMG;`ZSulJ*JiObpS^QweyY%CX`Zvwen}PP zm2PD{>v4Y8jL@uYH;!gy?{zj&lF<2Dw(&|(`ljw;pR-9Dx1I~o_sch!Ijz&J`RpTu zE4N&oYo|tJ=bD*H@RkL4MdYr`%rV$`V=CM3qZ+rQUibF7O<&5F-Fq_8%(UaISbL<& z1BI<y)s$Cn3hORqTjRVzf_LkpyFtP4g@Th;nVTvczt*9*dG-;d?hF%YDIPa=skv%h zpC^Xr<_f%3Yj2)q?7$<MU>@c3m5*CW(=1wgn&G^I=i1h9zPhL~W8Gn`B>ju$YTRQl zboA<cU39l`EiZ5A8O?7dn-3?RzLqt6_Uy~A?(Fk%){NS`cwJcZ^9A)gR<7NwU)brn z_>SPW4700B*N^P_a&}!t{+5MJYS&+6ChgoRxHel*`eKs%eV>J|j<HQX*m!UKrW?6i z+op-6En0i<(LDDo1*sfk(<_lOd?MjD53N~yG;{s(O&bpBE#kiGVk)cHYL~gX_|*-m zHKDz3?p+?uBEOeiu-nVLVDqfAVvBdqPdjU|V(Gnz+Yza&td{THx^J7SOtPnlZ|T$( zr*}TnNVLd}{H$elSR$d1jk|kxG4q9YwVTuo`Fl1#(BKP}jm_j0li7OeR!n@hX$bF^ zc?X|r@pzjYKlSMHtrr_it&V63n@-+lI6Ets*>;xNvuoRT%)ZR&*!V(z^U_OAR{ZiB zTb7hs&p&H%hEdzZK{oDA_CmR+4I!MmN2Kr1n3nX@`q%Nm+OMh)4y4<LD4IEl*6ZIt z`2N}VN7>^4W&W#7NvfCrtE{ue{84a=?+-0j<HhNVRkY4N%u{ueo1B}R;jpiDtH8wI z?!T8OoJy}be1F;$@BbIL=N~<>^58wb4Vx!%&R5I1-4gLtz4B&8CiktFPMcfSv$tj+ zu-jX7IdC`U0_QBAZ`&4Z<Bdo@9&YO8nWB8fLHXOVc~J#%?+b54x9|L~vH9XI``b@H ztq@H$-OwL)CPHr2)XtyX+p>>Me6_Kkqd0JW*0TAXnR8p+f9gDQ=l<+sI{B%?sTa$5 z)~uiFxphIAn%nt<>BgVuOg+l9HOZ<k_0XQ4ugh*lM*NSuc34zhY1*0_lW+Oo4p_f@ zL!s^&d)~aCd)I15O0UxIZE|}e6`1z8!Lrn#e#VE)v?A9ueceu-pq?}Hw??GDx!!%Q z=R`^Q*VV<RO^kY7&9ZuLe~Qa}q470`CtO<k@{MC@vwm&n_<iBynVf07IX2gQF5eJM z+_yW{wA*{)RGFNR>u-40`mSdydlE52Y|FM=Z)c{d<wx!>W7~dD@Ac~&Tt#Q+WtXiy z@A5q&<kij{uX~%^wySV|o>u$7>%F+<6*J?_huU5{b?=<{)MSc<f!^giyD}nwTgiBL zzc^sVwoFp@X5vYP+)KZ1{X5_1sJ!9Y-D_9!r`WHL&8k-Z-LQLF<-YxIOTtdiTpv?> zz3IH$cNuH8$Y8zo(vef7BXTa>SfBJZCnrB6an8NSEs5TzD_?IcXNxt?N&Xmm{L$Tq z*VavXdC_|N)^}Iq?k}Idx_$22#y0!HRljpQUTRza`gYU4`uMR^p*Pyys=KULz4Ut} zWxh0j&S%{M*D&MHlP9jdcChB!n{8JPU8~dW3qJZr=FImk{<@2gCH!`&nH8b3^N-Pt zlIeW)*S9}k68?2<;&r}f3C87l`z6mb-MjdI&GjX9h7P)gHy<TD{<?2@;7`5i)i?U0 z&X<K9o-l1!(s=`gRWZAlUhRGU&Hq&>`|Z0jKKoYYn^ixZar4(kUg^b|Z~kt(XKVa? z$@g^v-M3Gh)UDVz^~~jUJOBP(y?47`b=;Hr(T|_|S+HGOw!LP?+zKCNKZj+E=`!2C za|Sx?3efNo*K;~^=o;G>zOU9-b*BHDXmQ(Gc3r)|qhIl=3P*W<z89?ccGkLHVbYN( z;b}LYvrY7OzCZnmvi#+(Zgx7~J$4ly>)l@^%({J{>8G-kyN3iPy<7Qt!s$u16?!pj zR?RU}b<~+M=N=GDbneWXr?*r-{mS7$ZMTc{><yKAzwVs-7AgGsPs*%P!@n&Ld%qw4 z(XnC1{pGXn-Ps|u?$^ie+Pd}C`5C-xFKy-0e;xHxSGuCFAjUy$RmJ&d;p=1fKYO_P z){H~nU+nq4Mb+ra>X|D~o)>?@c<0ZgFAQ_#bv2knrc1m@v+=QB^YvxcT>exoCXu7d zv~1ReEp>nC7TBky@Z!$P{r9Ju+PaDRzW&*8q4?{UMKhuv8C<z}WYM0O*pQC$Ulp-w z%k*rum2HzBIqCRa=zXvKYTey$@fXiTKlglX%iMCaxV!7Ja7p31q>$QqN8Qf9`l-sA z<alz<n>C%6KLvk2wp@IPSdaYdd2-7y@6eGlUE!*_PP%{H)Fa=%8%$)p?^VP2Q)}H+ zfsE|>tf$uIKCiPXel2+a`PiYE(`E1PPCVu8x;QT4S5)}Qyj!N{KK!&lQ6=<mX3>2O z@A9-GTbI`h8U6cve4Fj`d*6<(e>!<T-`;;$q&FHa?<zBYyI#lsvS4NW&0_hVDRukO zBkx|`ernr(d({sKlh!?3Sp7ZD{^c9?$6ecH<7=Ov{{2n<M$GcvxoKa!_jCTcwl@FB z{=5GY5BAKsYng3#H|G8=$&Wvya($1jw?7+sBXQ+Fod~o1mF*Aj&fo8`^YN8WTdS5o zJ+V^k><ruTWA@eeSHHTj{d0-C*}bi%F%RcloKhT^`dm2w?LN)I#D0aIZ)bPr1>Y!@ zm5$$A>iy7kt@O8?9nT+&hNt~r_xsD_mL=8ovp&^qF8|(kWi$I+cT2hJ7nRo@VYXGe z?7GNXxwa)ial^}o|M}-nip_aZQTy6Ey(ei?<?;u|lQe>qTV6GVvt%9n_bv0I$?R3$ z_1j*)*_QJB^y6(mUwLIVXC!W07hqm|_zN$q`LmtxLyxuH+Oq3jWs<n|Z6ofdS$E4r zc5lm<da1L?^T-OH!)m*Xb_$6v^I4|gGGpoP2=m3;*F4TU^RmA1_h*J>ZHX$@C5$2W zEe?7we<gZS`+W2So8Cze{)*}^m)rH*d#?NSv!`DA|NAjJ^_i=^|MYeH>+j5(J3nXd z)lE-79CHodQ=9$p+y?n2CzE~8|M^#R{GsH_>FTxL>b6YT^5^pVe-|GFE{G^v@$SgN zWk+Uznf!j&i$0!Dzsu{^7q6UsdEL#eZ&Rv%|E^yCPj1ie&uX8UE%(jVnZ55{MbXn2 z@7FzeXJ7EElYig;mA~KE{yc8|Z|}QRm#gJ!Ueq1$Tlq3={;iwG9=y-H`S0w@o9+8f zPu#cF_T#eLqwUvw@~@;<+wUn|_jcloN6gvp?6zLqx8_an;(qx((X&6l6BoY9nQ!~K zGc9tl)_>ok6}vzGcHO#qUDT&{K9b+hT%Z4M!_#^9TiKn9uiXxpdVec=vhBB?t=}FW zQT^Q4zjCMJb*=CRX5ThvO9x9folU;^&h*uvyV;z##X{t^A6>ui@AN5JLSkng$1G`o z>BMGW`)iq&ZRqqjQO6gbU;8*|wWvAg9P3|_6AmT{6-&#eWj7za=v1zGm*s9mY+BW^ z9X_#Q?}8*>u9>lN@zMYFx1Y!7n!J`@_4dc72R*kZt&5o^R#x$S;^Ou9jQxYZT(O?t zeopf3@5{gY_uIeLZ1?-}+wo)I%ejum|Km5N$?-q^_3z_M!<5rzF5gUF_oN>aI=L^U zGbhq%leVJp%}u-~rBY`)&QR1$5kEOgq(~`6b5iX|F)y#5yndhFmh5|8^WS3s=ksS? z&#RvIyl&d-UwhU+^-Brf8Q8Izg>Ns@PM_b`&$+%^9J{#j(KMyoJLh?Ri1&?;D@_u= z{b7FBgBf!#omMmXB)RoyUD*2tFKlA3M6O{v8@0dI?%+!QjDW){EcO&Tc`z$R2-H1V zqWIOK^Tzbzj~^RuUllD@_*<Nyzb$7LyY!Eh+}oVuGM{8ctdpC+lJk<?GY@@@Hx=yG z_k6_`&D|<D&AYy5BGY6^v-(TVr7fm9&;P^K!FOTC`kKSbKYlR0W3jp8vb*HVyYtL+ z#Ai8dXbdTMqkl8PTbtGX`BlSvG3vQhM|{7=W_;@OR}o)ux5!39Vh^V(t4BwC^_1t+ z4{bWi!58)7+Q07w4ShY2$^(oWx0fGbR@@<*%GJs4l+-Ml$z_l}#fN31Fw+L!iGp5> zRX%@=X4xHW_J2oZ(u<n+vI-fGi{Hua&)Bw$zpa4bOSwuQw*}jZ$DtojJ?yHF7b;(V z@rda5EjiJAz28qPR9nEf;_XD|ng3n+w!d>OeZHnXn5*;rEI#S0DV~eeY)yje&j0>e z9M2qEz<KEM;X_lUrv2Y@&VC)&#lsUsA7@3Ua#b!n&U@Kk@>8&sX>CNxv{QD682R)o zUTl`RYpKp2C$YABu}W^|Rhd|$Bq^(j^~p6_-|n1#aO~ufRHKjDD#q7ce^lz%{M=#q zZgSI&{oC@tIPrGJ{W2BzDhU#G{I*PZ&&`IkYuAE4GU&~UE-aDP&e|)xvX)a*ziV06 z%)JWxD_e!k{&ZY=b}J}e^t1Ke7YoufFJ8X+^?er8ijY6mJr``a9d0|zvwL$J7^^D# zUe|WJ)4rHr=Ip5lkAh!^AG*!!v+T0I$~^rEw)Z|?+-}!@^n6%_p|)?tq%*UxZVR1v zc`Em2m#-mj65F$G9{CmHaP-Dn>v=(;RcGaDc-r*>WleiNS}a|7Dk3;6Y|ZN{lU8n$ zd~;fO&OsInztskF(sEBec=|GAuHf9t9jk8YUAx@RWmo6nGWq_mD{D?ZdTXxvGS~f1 zwlj<E$rs{!AFnJ=lw$3DKYh;RewCO_n&rv|@~%IZjZP}~FV$)l|10;#0@b$lS2vo? zeXP}N>mnDIA{TCY&NwjePFnc8WS?7$doJjE=$!j_Qva}e^+vusJGeeS5_P|;SbjMA z2*;Jj;)iclRNXI}m*E?Gp=vi<Swa62t_;iDMla1~ch~lb+*^{lZNr=EsmfpK#m)z~ z%&~cJiR<(~FBe8xLDu=-T(*2Wen{wWyte$5n`upd<5n+JGE)2?KQTq|!G*r$qPKIm zmp?GGdi`WuXo*^vkvW%x(st%(O_hd8j)I1YntO$BD3!N6c)a-Up78tkeb0YS-q)Y( zXF0O^pC{`b2I;kXx4x4#j&<8<x_?9O;x8wZyC?Q<d3eflR+ux7WcSZLr%C$EE`Gn{ zulGjfRm9)QJt0!Nzh{qD)ch=s7pE<`{wxsw^6~dWDSffLrB?DAMJ6w7<?m2ro%%I6 z#zAq0;VOyX#0L4&(jVK7IZ1NwcqMl-H*R8^enj`f{06TZ{rz^)x1We}yz0)DIJC=F zKXu>#DY3fK_v;#@6bb!&aG+u8A@1j`yY8D<A3n;(o>?I!y=a!$4WToM^7BuyE{;^{ z+4tl+Ggrm?sKXsq`~SUs)Kbl|ZN|I<w@ZGNlq&1K`8I#O(morzXB7(+&&2OKvFlgY ztx68vKe>jy(bJj^l-IEc&hPl|r=qn%wDa96(UW<<%I3)IX;)8Ele@6=R=beA)7;z3 zn@q3ybnmKQY+jpLrC~U2kE_Uq`S(Q)U*43ObjU?z!lg+Xfu51<lGdE=oEBbAUSfKc zHv*;dloMYwOy4$n<76A1)-98_O#RpYAmZ}bI;Z(tq$eM*`C*XX`g*RJzQ?8c?8o<u zWPj%t-=65OMQl-|aPO>)^U=?8_I_n#=R3?eGgs=yn}r8G8)h7Tx3KY7yxs>{j{m8g z{tZ>)*8~{8OfJtiR!o|5D{gA?iA@G>@3`t+cLn9IO>S&mdF8;XFB93midfyf{`BMH z^Lmmk0XkDvU#zQ3kXV0JB;`zT`}dtK-)v5Pz57Be;c~`qmQDxJSJL%rk;fZmFFySy zV#`}KuYHE60?kYH*~4W;XIKXBD*1G9!4xyiKXYeKj_nPJ<^5lE_`;RPu0nCOZkM{g zo%s}|_`$vV_tz(rChh$Gq+)-Cad=nD%N-{q7Z)$fy%X~2anh^W>>JBJO}c43bIC+^ z%d=~KYWCe*wBhNb1+V_zn)&68%UA7A_K(?y6|)47FR|8qec?!Qoc`*KS&~yG_bqwg zxstzGwlISI`_8Fpi%;|2jI$}6_Td%FRME@3Z+>BMlx<$+wYB)bvgeBDk561&*YA5W zKk;5%hg=Kis|mBFxqqx>U0kTfkekM6vDPEDBYw(nXGR6~HI6^$ygq61mBFjhW0gNA zd*r%#HjXnQXT5d(a{N$b!Pb;L6Q4ESU$9N;y(Y8z0%fJd9?rElV=pgCX1d;;xwS<8 z$;?YSH8o;Jc3sV8@8wf(<aBzcZfeL&$xK_b|N6wNT1lgKMZTH!8mcQyKNKxZoA>(4 z<vr65XML+^SS!X5X(jl@^(3dW(dys5Y=#+sm;5|fZjiq|#GGwIs(~KIvAfH^zFH%E zD&fsq*MOkI;b|NHXj#6NYM&UCesWD>|DEUQ-nm6H*(K8%88)BiKQQ4|oj-rZqupg) zX7-B}R36Dsj1pmZld<~4ea=gD0gRqLsvQy&Cf)T^S+c#|BO&|8`e1J6pUV6S(KZbN zl@4Ea{#klH!>a7a-n#8JJagBjeEn2wJkLkeOmO<l;9r%YDMo7o*1lSxmUV97VLg9| zUn{4j$Ss{9y8XmH7GtH*UCQ5o--_q;u{m77Ps923v!2f{*F7{@9OSie*`mhXi(2bM zTx(B0%T15)OqbF3UChI8*x~<l^6T;`D?_8c+Ph7tcxt`gra0Cz$<t!Ps=&Wt$MzjK z8+Yot*}XooduykB$b55l-(P**+TtxO%fDTJn0T+W^HX>HF&F=fg)e7ur2brZ-$-WV z6|1}U_Uo%`OAhS6Vm~L>VWG;gEUQm060eOM@6_1D@x^H*UW-}zf%j^xn^JsGREe|N z25sAjH_h`-mda^1szsXrR#^OM_LlE_pIU9B*Q#;$$8L^$WwNH<b5GRe1CKQm&MKAc zj}7o}V^CkMd$(}s6E{Wc_;<0#Ev45LD?3HKye7DqDeSI|6<1rowvXsf&uMW#B0Kg! zk=~u)n!Vs*>^Dx6pkRiB5&QEJv{t9Swp?kf>b+p@!^^7@R|f4~V|VXH%eU(8d5`4R zUH8b0t2vVQ%gUt8FP!_t+5KiV=@TQj7>2yDxYfb?asK<c*JoZ5I@ij1_Z)8l*Swxh zUpMNB^1n9Tn;H3DSLI9Hy{(=aemZ_HKXe|OsGT*jU$f8r`;!%2)oN>Z)_!_uCfpo3 z*V8N1LQ(MBDvPF{zHRriiVAz#{@JX1oty7+CeO~)|H;EM`az528UCpD@V%2ez|j~~ z9Msg~5T_75LCfQ(eeqg*m8@#R_BQ!Og~y@t29sX(o_S{Hy6-{v6c)d?33;m*RWYsa zzRr35*ZeF8m;I_$x)&qMJyUo+A{GbS-eA3#y{xUlZozi;GOc?3uRryle`j$r+O9WG zTB?cFNvLtc>)rgEj!rznj7Q&}c09nY@~>;{w|8aYo#kcMuCl$&E>FzX?$TbcrJ9LD z;biBdXAH9U^D6U2FRtA_Tg>`t#r?Nz^Pj(eyZ$||CyV*<^)Fs;k(t+Ao&Dx?*Nb=G zOCI?y_F5*tareYUlVmPD^_IQ=BB56x_{Wu&x`$G~*7_CB+T^?L-;KL(rfy#U_EqK5 zq77kui60p+O8rv*y)r-MUDDOWc*|8nxi=#JTut>!ly|bo4VtIBe0kGh>%g*-WBWpV z?;Y>YXB8{3zGrMw_VuP>N85?T8oS!Jznc`a{H%3-nVZT(R}t5kGh5#5&^Whi?jhCw z_H|}Q)@F3<yE)<YnyFDG!Wwflgyy`LiCU=XC3xsjN#>K4(@rW^@0=B&v)KFWhv#CF zPop+X@z;>I-5G8XX!T*1<{^i>K5S1FPe_Gq()#hT_lDrR%{ziVd!(CxzvFdYO*LrK z?F2zZ)*dCF>l0Tk^!a|+BSv7ib#Oz~yQQ3}g6(hAw4HB%P~)@C%=z(Q^;G}U>>Mkb zl=nYPuohqQX3BA$Z+G{sa(L$Zt!d4X?(U7}jx9^d{J<%_B`@NqX77bV((E5C-?%rW z7TK?uz92ArU(?xz7cMUG=6v>wh0}cclBXK0s*AmBU!FR3>dWWHf7i@BGWGvciTDrg zJ^o+yrdr*&SRQA$rg(FEa7|>1S@r23bM~rr+vU6LU(7YnRy%wP;~D4vcxkzBMO%04 z{a3o{^4_I(gQot$cDbXEx3BPtT=e6q-*4U3ZcZ+<R<?J}TUOQVm3>Q<`&5GO^!58@ z_HJFb?s*ii{-JNbU;b}9;?T{=vxR|)jakw2zuAtuxkCS5Onu-im*08*y_=6?(~^6) zI~3!N_6v$mV!L5|n&rb^3xO^buiKpwRs5@VCqL!4+;rJR#(MSb^<2LgzE$%rbeqL+ ztYYGW__yXipV|o?TA1+9{_7ig>CZ>%lZ-`}*(yI6)X$myRHxqH-^z&Pp%0|CtLnDC zI(2c+hRJ7iKJJkF_pj0Y(qzYXVZ0ZgB=^dx)Oa!Z-#c06eJJ_FvCS5X*Mx2H-0)js zx5tU5X|}?X44o|^_uf=Yek<7Vd#RoEmW5Z8<)x1N?fW`!_8!mk5xdR8&&KV0pSj?D zkyM(#&CwYC>j{@MF21`F;~ro4w{hd0r(WKjKVMllG`~t+TeyC?wq%E5@|^F_ntQLz ze!tT=#d7NfzxF)kWqn@NYlT0plUc%V@kr_SoHgqgOGtm$_22G$-SubE#N0EEakX0Q zRjzW3CcaIpCuSYLqFMI+QsuSA2b<>1I?1_t{T!`1m5#F9hi=WjYjOWG3y({O#Jmsx zE8J5&cv?Dt2>;!d8Tb2o*XI3sd){vJ)NV*!?-}$rL!qg&`~A5IN}1bdrx+bE2xO|1 zaG3k6*>#!U?)0$DMsw$d7Deosx1^$A|JJjU=by@m-nK}kQmw&i7JvE0q!lTVo?oQH zmIdk5<lg$p+GOIYb13myU(^JZVyPQa%U}2NO(|d4J$1^CAC|96p8Hn%v_5!U{`Fl| zy4RNAsaH=_F5Mz2nfdrkP+w*GWvge5*UCR89d5q+x5kj|iT;yYsh^XB?_Aw|KGXIr zldheMNcmSDw^)v;PkOY!dYkQfBewBLrP=Psf;kB~r*;ILF|7RReLpzu<kNrZ*Y&il zzaL#xUHD6SUtY}8XRJ4tFSm}rH#7Th)rYdXU!ANXmHStnyfI_lq04JS8k-n?9J_3> z@5RJt2Yb&le%)p*a{jXPE%sY?dp{d!K0I;F*?S*n!Dqpj_p&2=0*dCSbLvU6{IXx! zFMS)=h9%G@Gw|jm@TO5S1JI^XLnDJ|1rswc)5IcL!Q9dyRsn5;m<4R3Q?!DS5op&F zXdf928ygrafUtpri6uy(v4NR_ktt|@s;Pmw0xoO-moYK}>4KSNpkQilsbFeiqF`!l ztYBtns$gOPk~cFpR4_9F?VL1FFf}qzFflSvurM`MFf%bzFf#+$W@c`zU}|ElU}9>i zU}9meU}j>ZU<%$>hcFw)G6C6PWU63dWUOEcqAe{Hj15c`Ow0`x3>1uvA?iT1xuqpo zg{hG_m^M%_HnCJNwlq{QHZ}!|n1KCiVhpm`7%kvHn>WD$Zi8=UouRq8p{b!hWS^a( zg0ZEUr3Km^u{SmB2_Z*seY1Z4X4!OK)fC~f!;=Ec1gsW%hy`gZT&k1j<h`_Qnt;o! zjSNz*8_SQr6TNblNodWBqw8)|AI{$2B)TU~@RNP<Jz0*96MMh!zyJ6B_xH1Ho>xAb zJM;UQGc#uzdq)bnOzG(E)cWLgtfxxh<ITvFe}(*kpML*T{_OSo6Mvomqv!gakKCX2 z%S``$(=<1K!jC%jz=G|8l|NZ0*U!pUkKHWH8tLXcE8<eb-$cfjihDhO-?CnH#MbCX zclTtE?mZnD|5Js%H~otH?Q*}?h3VspMOAfA7u9LE^{Rc!Q8S7U-&@jIdwkJ$c7fa# z4!<7G>`pry|97EXM~2lY7pwG8Go3|#PY(RuyCQ#PX!)}<Q_eN-Q{Sc4`eOF!wCiEl zWGYN7BtE{LU|(P+Gx59Hf^|D&U+Qgst{+)e>34Iji&V|z)z7Y8)0aql_f@g;t)k1r z=T~&stb4QJ^WJqT=bZoSoBTXnFM5jPOhbXM^Brq{|GA|)_5J;6MuLA&PI((2V7Y(W z>to%&CRH%~J$*@BHz(p!+S08V_t_%r0&Cwc+7UU|TIg(a)9rfSqBYG`_ve+q43|IO zAy?L5^=R9M_I+_bo1R>k@A>uQfqwfer|)eK=81SoZCn^9Agi`fJLmDi__~`CyRLU! zIhWMDba^uWu2!8bJtbGR1c<G5KId>J+<9GIQ5SE@GJ(%qpVe{P?2N3Rc`ZxCDQZjP zWs}M4W_}Ck-!}J3YU@R&8$X10&y8_m_r25hVD=Us>rS(o%k$0MPtFV4qxmW$`-t}p zzwHk!|2C&-EkC==W|d9iy|`O<?AF#-=KM-Y>sz3?zw`U+mDlYPt9KRF*52xT%(B;Y z_E}rMIq7olSO1@}JsTR5`$@)}@B5_{!c(u>FMpBzs%%-c-&eb3X|MjA-}3&%-tWoZ z{x+u>UDW;c+2nsq<<=S3-##{%o&E1_na`qVpXUL0^B?J2N5#Lft<-sP{EynZ%`xt` ziy!TBblmZNsrotNyUxb{SKK{*=e1{Fa@N9`zxF*omZ;QgnK;+T%ktU0*Ds$1@4K() zWxen}tJI45zmJ~}t#4j7@73NZGk;y)S|vJl{u-YN4{D~YwRl#?o_TBK9p`ADmyXv1 zt4>Hy$-Cw9(*2$7n-z91|4yG5wNv=!$L|w1`uy(u)wDZs*S>DHKg;eF*4o}XGJDIj z{&&4b*Z*x!ZOVEP^)sh#{XEUzPtLzFe|r1qrFqt7>*l$+s;^4k_da5O+5L^5FMqLI zI#bHuCcR&?-RPNx7q{M$Eep#3?bxH!{4MUI`_m~e&F58|zjA)TyI*Jj->6%ayUgaT z@v6&e5;jrUO9LMjzFHLPYn!rfh25_{k;^O3nMkJEn@`YxE%|T$gm=EmN7bKP*w+;2 zY^MAz>(#Qgsekw1HCXTY=AZv|r36Oqhyypaymr0u{#odSeZs$XUvQo^bKSr1TUXuP zEA@eo(QoIUnkZ(S|GoEJpEI8Rzv9ly8FmeNf6`z5wLVkAdiKIR_4a+!S2ZY2o^ACy zzmfe?mU6v<-D2J)D}UJ7NbTTX!Jfugwm@t~`jqZPNz6M<yrcbPzi!T4b<ZL7SK6ry z>A_3)%@sRQ^vg`^iu|&qIf`nGuN$Kla7i$oVd~k;u)|~8Pv76W<`(^~n!lpfVtTKb z{bQboOP$`vNiE##{_@t`8Orh>)3e?t|FAz~`E<Se`OHU&s~Bwld&RzWJ0-@xqCd>% z@D{@>!P4FzqZq$l?OL%t@O#M-ss0<wBi`LN6#o*x^1*#U^907<_cN9q|G&}xx5dOv zb`96xO?uawSH$Qq>E62gWzx&*pC`;abW3A9d!@(hXNz-`znyjaw?->+_dLJrvsN%v zH+%NC|7)4_|7sbl4mdcO#5OcQng4$K)EzVV!Tmq|bp3<kWr52+zPR5lHQ)5_eB=M= z)q-$!NLrZ0Hhfe2_aXiyJBDdcRsT0H(_IviATWV1g<)<(o`ZXR-JVPTzu2Z-DoC(0 zxY!@(AUNUq`Et#_(b>Cy$L}mZ0M!SIYB2N7|LDtqJs##C5Urljbm_jz<QuHVRf;Cw z{4wp6$19(^Cq4IODDW<<k@6MJG&;M;a!bdwOEb4je7970i}M%Hvp#R9-csLM|7yaO z#Fff#7M69_POM#7yR&xf-kWuWzqr|bbB~qZRa!K6mtvCtE8m+YO>TjTqJgSP*8**I zjg@}&xxATsOTSb=>Ddouy^Z>t*KeAiAK%~6(y{0*!!6sJBHgbKAOBLg|KeuO+^e@H zS2fzrVXN7@?(g}1>*j~lZVLM+P`l~bWK;RMZcqN(Jt%Zv_t-#4PHVZ=<J%0=Kb8Og zvoQ2$WZmZp>-w**zxKMce_y=)g86=GT?-?;4xK1p>LcZL_~T4_dF6n%-9F2uX8H0u z312*<G|5%{qOXq-x9j2vt*}n+Bd$r!JN$Blt$lZ$RQWdJ%rb@G4Vp(pvbc;}xtG6C zb?eLt^l*Hn{`jB0?Ek;VJhK1gJ70V8<d|viHTlw4tG{mU@R88GsT}kD)$cF)U-G}c z|MLE;{1fwQQnfkx?!Ud=`j^VSHQoCDJLl}eGZ6~8HQp~T8aCP)X<hK|T>gJS{Qt_! z{%dE{%vvrNa)xJ3%&+(HJD+I9?@se{{`<(4Tl~!W+2-Zv-b5N_XRk{0nQvC=RXOu` zY*bK;N#>)LkB_;I_et8WQn1%Af5H)d?!)CaURfiH>I(-LBllLNm7Vr@|L8@IcUS*L z7x%XI);1RQnZCQ!G>q>D1|)t@3#ssx?7O(Q`qY-iLVc&o`ncB1u4_s@UGY}b&G7d| z)mRP7&pRgR>AkcH3W|7hI3wb`PxZdT?`jRtC+3Sjb(MSZwX)A>clrE<$E9ygNmNmq z=;7_mTU~eQjm_@xkQ<-(vU;bRKM#MR80TFPu}*or*_w2<tu3w2ZO)auEycEW<Q;BR z+>-axIm(2qbISIwuU`I~YI@Jpb>1JF?5L=j4;RNMPczrJE}e5^)A@<H%edd_&a|Gb zpS3k0wAFagvA|%<tB<d02d<1fpPv`^ytlAwxAmtzcc<6SYSFu1Wh`6yGj2KaL9Xup zI}R0RUy8Nw{mHQKV_$7`|JRUTwvI2SF{><n^JrqC)4oeB+ZMLIh>x0;bGmh{-YTa< zw?m#h+%k978oQ!Y%hP+JTF=~EStNAFXu0Q8nU!%5Jtp^S?LYK?cS+f#?JG~+GZtQ) z|7Y1_@t<Yu=LH6a+C~?p=5AKj??1lw%Hz_fjytse)}GCOIk)xGRM8hlWGs1H<?^Q` zPc*-0IEni};`H+gex1ixJX-&(_x#r&*RA`fnQPnoZ#zBje$2$<yi+#HxXzQkvOd?} zyMA}6xBV;s)J?MYj>OnZ>G_l9f7WOH+Cx#zKP@l6+qkSUHdSJuQTy_3K6a|@M{n2i z=S@$$b8$uMKH2an(P_5)e*7D&O;*RL%@>pT#uOu?+^%@I>3FKjQ(;-lGw%e$f{qr5 z*K@Ay>uheBH_tjM?d7JdcNy7Hky5ukXQh1Iesaz`-c0e+OvfjheXOn9o*5Hmwqm#K zezWzl%>A5M-^?$_zdiEy%9Ds6`8`sKp9=fJBCD*z^lGFIN$C9)nfxYhR?2saEZJ1P zGm6($`rpi!$$tD(Y?=jE_bJ<Bm%p8#bSXJ#&iu2Q`b!m~Rky^PImom;)HY1n_LPUb zXP=#3bq{ETzNz{3EfePHE#I`&RpQW`>cpAli#DHmxVFgZQi^qT+P0Pem#9ovy=z&F z+pOIkmon>bYI=6++O}n@o{3FgT^U$+^o?SK_}M-~)3bd-=M7e0{E>8C>vd7(`v@(O z)}_jVUW+H{@)gzvc6-l>4|;dAQGCnaKSBNe!clogPi&f|cjEJ#4Ubt9DokHa^_#ij zbW2Z2k4s13y<LZ0ucSPg#nV1<U7l#l52q>q0i~;t*>T_3IJ{#b_w)U)!i1mi2+0(# zQGApA=+fOkOPwbqPqgG0ic?8R*|c?nOhWjKo1%}nN?kK1O0|XTs`+5kv1wt`HkS^M z#9YTSNr&%h&5Cl0y(a6nB&q(S+LS5#mMPn9i4n^d=lK4(Z+HK<1F`RJ3ORP<#{?!V zF*$Q+$;}zg74x6m&VKSII?`<S&P6`&<fe4&?23OV+V}9uRhh#VA1&a>pRu@XiTNGF zpkKvH?A!l3UXt&bsV~GTx9v{JY;Bnv9UGHuQbhM$E0Mf(@7A@jSDw`ucdggq&Cb*c zc=xf*>SK}d@_yHyfkL7M{h!Q2!%vk>xUKw}ZF&Dny~Ddg7z0y!%tZv9{t5;xI<P|d zy0lhk^14tf9!~RZeanpUX9nN9V!ZrJ#CkFP-ZGw#Y^eo4#cg{6!y=2<EMC9yXTsX{ zrRyh)bZralY_|<lDco!%x8woGmOZx`*SzAgK0i@tO=?|aOXSVqZrl4)0<#s)ygILP zQ`gqk#^{XnEpEn-+NBlxJD<<E+<f}fj*o6xbN4g6%l+84*j4gv+ogEM#m#FBH|hR} zZC`e3QU7TJ*R>&UBHGplo89UV>B-4Y`8C69&)pq$7B+o3p_VRrO%MM`?7ktbQ!Uq6 zczoK0TV>N9pV?B@w%2*z-zR^RU-RjNXl2{odpP&eo0*bDd(1Btn47n|%-g}#AMWu) z&}>dr)z%vAhNmsY&t}`k@6(b^j^4uQ*W7yWY_e=cbH+;{ix)2<>@vU2GK%E#otN?^ zb$_(S7HyUI%WfaiP6tdC`X^$4Chh&2<jI@+Rk&3OBz)c<P3I_aeYbUncJbPKR%d)d zUF-yFHf*qHvv_iJg^kxDCjOTvHXZnKe9h$UWh-yJTX`tO{XkRKv!=94m$mD@@X!A5 zcaQa4vQttlhmRb~q`M!@d^d$pxv5=XBI-JCi-~ra@(nxT=OOM(Yean>{qxZ>@6(!k zwx~<kPb)Pn-yqJ%SUX!bv!c1;Dc_OB`nNMa=}T`iGq;|#_t-97hs2ii2R2D7bMEh+ z(|0PWvSps8|Ann?cbQDCOUO!|o%Q}e)VkK&65c#A+xBTyuFRXp{v}h?ugArwIA?Qh zf$_EnnHAMDj8>_KKL}O5?@{(RFg$AFA%&iaD~(tlH7$I(NkO0S=B%IRrez*{>27=M zy_32)pW&iKsYm7BtArkj@DI`{tJ=zU^Td?7;zys#ZS{X?RL#?Ny)`m*>ejb$Yp*=6 zw{iPxxM@|Wt-(6B{*Qbg*RNO3m;Nd@E9>Ztf9vG+*=t=ozx8|*vFo|DW%=JfjH%i0 zCq-AY{}KC<Yrmhfj`@$(57Q5;AA}$1Z<J@XXR4cVC*{(;#s3^M7sv;i9(a4;b;HbO zijx);ToD&pZ|hj;z`KEE2b00#H;Yf~mK9{Zx%Kn5Hnq-;6$_qg74`|GYhPS)B+_e5 zSkhD>?Wqw9j})n%3rU(Ol&-Ncq|;4xn#RQiN0L;<G&crxvU;5fU*y+W>2)SFsZVJ0 z)EP^U_^4)0T@kn_s#8l<YwC)Cq&A_;Q)etY5~8|HBXFI|Od&Z{zwo3@LV2oQQ#Aq? zMRY2us%aVqc5-_4geT1rYW3;~P3jR^JXK<;OQX<FuP2%lS0C|Eb<=nlq~zZD&}+`J zBL=E%T81v22fb3X4Lv#=y?6o^?HBqx<;7|jdDSZIiA!DdRjafnu51bJl=CVHUo=}N zcIt@$rPxkAFN-NJ*0{_PDpSqzDhW~w?G#a6<E5f~F|bob)k<UH3YR9Kk6uSK1y{TD z2#KjKn%WVh6x7L~dT1&~uu@2;fNIlJj-W$pT0A*pIej@7vixk#2!6CdsC~+h(9UMB zKZ}mspZX)RbHC=t$wKT?Zmd7j@AYTFk?&qL%a3gLs#$!*PW7AC$E`y3p^vmx_k}#- zR<#R%WUOiz`bb#y-=ZVOz1{>qQdYGKdBm)GFZ_|M>b=lMva0vO9_gyy3wgw=8W;Y^ zR5dR2k*I21*dtZdGVPCxg!DB&?h!h#`EiZVd5w=-g#0x>E)m*2<;P|re~phjgsi7l z_;k8Yt#IjVpIYJ3$v*YQLYLJ-x2IM(bmn^HgeG+h*{McN`Jh#}U+BAL;d-IjQ*SIe zV(azCvvc><9p0VRQ+GIb-k!R{w=;U`4%g0JuRCjw_<G%0afH_^X8n;;ub9<GOub^( z9trh|S$Ra%D`wr1RIiv-N7z*L0v{!*Uehj|C?u|Ram^7{uQ}_FSgBsq+UUkv`bO~8 z4dp8v-B%>{2OO7M*k|h`Tis&yje~&1tEmCc<rki_cbZ$@V)dV+^q=6XKgw5ry07@$ zPfZDgi{5gS-V%JZMfpmm`-;nb0n23<`dK^8Eo-rQ+i^!XXiL`fpH{rvAD(&hdJ2P8 zdvN-1D_%y^!dE)WuI}>_To5`Z>g1NDOv}qN_gxWOkh<?m%mqmw@0n7T`JBt8X1uz& z^Tu>5p)DPmikF%6jOMTG%bcgLDsM79lkalQvPd7}TFuG@QGQnqLXATWLybZW&L+${ z_jOremeysFWkt)3)c7yI^qD;Kj?YpbRiC3iu0E4zs2TYtNS!z7TR9<f&3P*}leWw) z=dHv{x>g=Y*JXM7d(C5qN}ruR%9i;o*NY9G7VLfKv)qvP@g(P&Z3SNs`rPzsp223s z`yk=(%wL65_W9J#s4Cu|vn(!Vy?U_P<jE`9gUgrY`NUe5umxKke{<+b!mBe2FVA=r zbN<+sPR*&BttU@SdE-5g;nj&LPrT=GygD%D#5tB_6=lZ^j~X2<nAfT~Yi^*=L?6L9 z;^#z;iJYob^f~C`xUX-rLt6ZCr3sy$>C2C49&};rG+TDqO|Y;dc)yWs%CFYX|IV$P zKl9(QFT$4@<AXFa_Uo@?`J%kMF5%a_m)7TgPYb?p@HY9@>B@NHzf<SN8`hru!g~36 z%oAh3+EXk2Exw8`>!10p;GVmW{HD*$%f8RNms~Zyd(YvO+h^YURB9pnW!d_}DHo)D z)^Gl7x-5KVTw>MC?mb7g%$}=nwD-Ulo6E&9Pa>D4-}q^AIoQYF=xx$3<LNa`!TrW> zQ>uDC%cWMe%;h(>J@Q52GT*W=y`6J|`3-WDZ=Kq5bovbDPd|m0H$=_Y<MZA4?(q`+ z%W2DeeZKz?+8Ez$UpQs=%y*CWSkHWyuxsv1vt`jU^Ac~JC^2T=-MRSAi4x}LvFA%< zFK_j^UeLPQvQ+f)RG;vIdrxJa8ZGm-%xAu=>LYHvHhouzcif4UY0J20oJ)^7zUA8V z0M4k#-Yb~q9xqv^pQ!diX4&Ri&b)xh`i!$TTAZG4Ah2atrf7Kl$**Asy5Ci=G@N_# z>hz3r2~nr6oY>N`veEf^@z<k1-8Gz77qrUcFixLyKIFJbf2Q7LnRVu~GsU*&sD-aj zUG;F%Ri99wsXn4U#xs@`FJE4GdYO^$L%-?8FO2q0Y=2pj_bz4M#Mz6d7)>=0H5UE( zD0YG8zKY8B&V3b@d)0qDI?vks{pfd=-p5L<KFPHoEyOzv=SZD3>6**B@5j{zHSvF} z0_N%e(+OCozmL=8l6W+O)WIi7rxK;!bszm5JLlNS#C<c2E(9!7+$Uja%4VGUJISq) z?PrqBg2sI_iY_pmdwu@OdGX1duTHD}{*jb&yy|z-lUrw!ULCz!{Ylnn<{X(d?7`)H z*LqiK2eSq5(s%0%5?5nC{^pF~Ws4be7vGp+Rk$}~nTVQpuu-u4{8TB8lj$@0UOm`+ zhC$Ux)!?Y{QNyD}trF`J64OnBMS@j=S*G(mpOpB9CzUIaD~;>Xq%^(Eq~+(97;>r= zZFLR5slw+Tew)wr`i;6)JB~k0e`NQ~fB0MagKz=E4gUZA2l!9?mV5cWA-^%dq4vXj z)_rdG;wS#&`XTg#>4#0$w6~jA+}!5h=-;rPLH_V|_CJCj6hAOtdf$AX`5x;%#(RBp z(yO&M^}qG~AU&~k+jV8*ob`<Bo%Rd8+_INv56c_3f88JU3RvF%X7i=^!g(iqVaw~^ zN}kBv4xYF<*Wc~jrngRa?UnBdA9&obI#+#NKVv^rzl+W`TbaQ8YK=t)za<<Iy3Myh z^akI5<^yI=a$WC<{it!^e!%*U-~Mu0{EwpBdmn1&&ORJ|)2wy<w!6%KICn_z;NBs; zLwV2gw`Cu453F5L%w3WE!{+wc3+9gZIqopj+9t)eM_gCBX8IwPH-<HaGlnsSFQ%<( zy3)P24V>G&52@YK<C~otEnn9DcF~62IoV%IZdX=qdmA$`*ZTO~CwA4rlYi@c*ZTg- zclDizt6hF*y<T-FR68s;>gzqN@SK1fUf+wpcln;ao4)IOf&T51w%?Aqx@WIk+tIdj zdR|t^Y^lf6(@kFemOi@7ZQ^x}Ds!%0Dc#<0ZnjCCyYJoIu=1Yo*U7JDzuNnC*}{9j zY`;of?cQ*0+uZ0^Yv*zuSU2_S#A!`O-?hGToh`OY{LGy9^Sas2ot*b{-rme<)oEqD zyUT)mcU$c~6+1Kb;k=2qXKiaQn|#0Wrs(?=->2_3<@En9nKFM)?5nbTt<vc!;yb&| zMR%&F`4{*%)Yp_PtiH3%>HCd07vCAqcH8ZqD!$|M#Y(S@OKt?0bmtss5!uqRCMhL< z_32&5f6cw>61Ki{d1!yH-!|3kyNj*6?sUo?J=B+8x@XB^xw&70COz|dH7`=&?!%>g z@})nvHEW)`y0CgZlh+oNTf$#iZf-yFaVaa?^CyPiB@@0}o%Z5{Mu(rkMb2$3y8myp zY@Ak-DBje<x}<%<nXrio+85*nKh6I=)3bv&<dsei@4`n;`6rfW#ue@}-|G?=>-zNG zg3o)O=*@qWDfsA-(c}9n6_20VYZ+e3zP5h(m5HtQt_bz}-``<ani9EiyJyz)(-(4s zguA9#E;lzZv#?!vStHH=Ou1pzq2y`Pb)rhPboAwQUyHezQByKS*K6|hZ5nq)ucik$ zmMqZ?nmm1*hwVjC&i*&?*E>9yvR-_+t>EljVLQW^;@0O+#C9C2{-*cC*M9qnx=(ZG zdM|ryv^TNy@(<TlJ|?G@1Xn%HKP<H5ssG}MYR^4;yBpI?4ouT{K56pxU-fs7)bC>a z|M%GcN$D=L%jB+RJZE~&kk0ITAo4&~g6IaJ2u2<Db1c&s(;2)Q-4Zx2FzB#}F>*Ju z9;jKsH-r5Q>obPUjgbd@7Kp82T-B(xKxhR+8pGwr%mX0_TmgJj808+6Bp5wl^J)}Y zAfdse#wgs#d7vUeCV-=d^%%qA#y|(g3H(nOcOLLaV0pk))bQ{?<^h8Q4FeVlo)qTh zhQ<R73+ylOzu^ADSj8Oapua$U0;ffzoJ08n=?kJK7%nyHH88*6S;AO$fUSfns8Qqq zmkP6Nqsjv22^=a6A01=_xQ{T1DM)oNDK&B^$Z#+_H3}$5a4?-|$aIljXSINlNnw@X zht9(X6d!~?Q24<8q5MJmgZu;j2N)CVKPZ1-{$Tq-_Ji&R-VOXWxNCU-i2i^SNisip zeu(^F`N93ca0B}fjvoR)7%Jo|_$$OK*ej$fxGRJ!m@8x}cq>FJSSuteIB)Ro;n>4q z!*9cG!)?QC!)wE8!}*5kACC>A4c{9UIc7OlIYv1)IVL%lGKRGW${sK#NN*6m!Stg+ z>;U&2{yXe<xO3Rd7{4>rGrePb$MlZn9YY>_9&;XR9-|qPIkP#VIg>fVb>{1g*O{&} zgfoXThBJjTOlO|XIGstl!MmZm@#_KC1Fa6m1&jrD8~7r)*DRbR=*#pvKH)F-n)=4C z`WybSUfX}*mw3c~+=AUz4Al(><P<irbG%_>qAC;SkgfU~zOi20ci@(I#BZkT_=LCI zYib)og8wi7{!qVj>fhzkAL8?_T)6NqK}|RFScwwXzRnjPo*w^`Kh@J@y3`6z`|M2H zSik;@)gi9WonpPEU;6zLu6$WoHSM0&(*M7Uy2^g|e6H!busvAdsNmMWm$tqCFxO$V z<*K>Qi<Ug{`L=kTnfGn;<3IOV)>O`ZT96%}(<)i2yfysc-$0qH->mCnmfU7LwPhQh z)vXmDYd`q5zqhZsUYH!<^3<et*(H-z3%tI>|MQ<?DKWD$#Qk$-<HV?jJ&`-kxn!|< zB~}}LxfsNqDH!1Iy<+0DN9lqk&GxFF#iU=lSuxw6e&G}4r=6j?_EY?M0~_s$o9}q& zGlyM{tT0NyY}pocW?u12o2cgH+xpHe=k}Ym>p@4>GVYg3HqX0XPP%{fb-!osf%8jC zB%d7?Em4hiy`B&k<8LnWeDAFf@$Tjq&(1J5dhb<{XEx<b?TmSga!cgz`twU9NA?Cj z77ToBbXnrCt3>nE7Y}#7jXLwV{Mf{cQN8<4?=$^fy^H5x@vW;7ujJh$KgCRWqVY#2 zWlHGr-Xm;Z8oyqYD}3d(_`mz!x9(3<;!Netw@A-?-8&`Zcy+yhysLQ<>%FGcGNCK; zTGL85FTDLb-zunV@x*<-dCRRo=)5zUlJxBkXRY|%-mSI#xr@&Juv~Rp``PaoagR?{ zu57K@(z@-Dr=7#?l~+H^*Lm;qPq%LW`;K&WTMz!kHXASNjhAg2<)2ov>^uJFUTj<c zW&aEFCr(>x@m0jOSN4@<)x5X`(_eTlDU-gQKA~!6+|uhWbOkxTa@DrJR;;@DN7MBp zN6nvlfyXt>zRO?!H!t7*`0N}X&Mh0?KHp}1tL~cnWuL$<<|k=3OV^eN+HKUghzh!) zapsG7*YdTw_Ai4E-sRhyJ+Jo1wQcz)dtx^`){E|*<9E<x#<9yRyKe11_Ofz@QlXdU z62+w3+gkSQnK18Q|09+~6J^t92nZ=%7tOt-v|U~Oxy3eqj;Qs=doo3Bw?AW9fBdD* z^9$|mW$CiN3gX{9SW~O?y1C!}&y7!i-_1A}`PZ)Q?_;~YYuEjFa^h|23abMf_vSUo zZQ1A7e{$m2*oCE*db$<0vP~*aEhd*+m#15nTMHh$x!ZqchiA8;fc#Qc_T%i9R^KnN zm7JBhu|EF(!&?piB>T<<&U*OTzTiT^-uU}|v*gy>95$UP_G|V2X|IL(Su<D5T2B5w z(^}R2xI5d-ty7lVn0NS+u4?e5_OD*N*P5G4iaiRpJ1Sd?Uwc|!XKtZps%U6xrlMkI zYN%+c_TxhJvla1m2JW(FOs~rBapIS<GF{$X=Nr+H#>JKOcFL8F$1iL#oV@t4&aw{{ z-abhl1vx%0+xM(&zoxe2goGw1r_AdM6+FuqzZJinRcuqbjHfET?>FD8OW&Se<LH)n zp7FK2=i0XS+uEF4v<2B7dQH>1tF(UNG1EgkcJ1mcnK@Td?^t<Z%98i}9Q_`z=DgzQ z7U^8Z(Y3)P<GZz7@t!9aWCi;=Zd`d3vHhm6rKRP@X7=<{-`Qf96AO4!eC$u}+h_Rq z*B7yKng6!$znocG>U5&x%iq$s$=muTFJY49eC#4(v**i^BMOf@ORrx3qH*`4rE>BE zg@gSooi{l98=JOqc<(wpO-?*3s^Z1xomCNYlvPb_qgpuTYi>%u?)OdZWZ*K<N6H_M zWOiQDm@FqFsMRJ{XJ%q_C8ckZ+N_#~fr`82gk<;qyTEnk*;yC0#>%^$bEf##PfmXA zwM{khNX2Z`s5qrU&#nVU`zB7R|NQRNv^fu)>YBKJa&kVLxv5~8&Kynd^izjsZYp@z z{6oMu*Lu5Su$#Tja$OD1e|g?p<}365%k*wJ7@x;EeNAM{MCrrjZP^b`#(w|)Quxl% zADjOz`nOhTkLr#oMc<xEXs2yBG3(n#!zZ=z<(npGAF!OUHO3+FWbLkZ>zz5edp2%8 z7bK#y_{S>&Hg5IfD-0sm&HSM;S$S>ov4$D{n13%#TqFGC(aR;>|Mr@+E4!_mvt#ik zm7JTxtHt{*YvSAA-L>xMQ4J6I?pxCL!Z0DLZu{Z(Nt;g}|5f%>jQ@>=V(pbZi|+2{ z`T8WSqwR8<DF6G339qxPmao>`T=Mfr+|tFHk`J?q=wEQTwu4c#eYs_upUszp0_P2G zKYTOA@#v@j&f(i?)4L4H57i~VF^vw&SaI3D%kRHN)Av(>EcMFn7hlS|K3^PV|7Me? zQuied=agTMynOgO<xCo?y5n>gPTu%)&pv;rl#d0G_wKX`W_x;PiAF}hy7b5>%Jtc` zT{|W*E(^Pu?0vW4!o5%Wb6*7rGjBhwskl75CM00@TxE@e`zN2URa4wIS<T(sFE+R( zjjyx(Y=mLj*U!^?^mo3Rx_Q&{Y2p#iXLf0-*r=>}f8?mJ`ug>fCJU+#Px;8}`gd{j z;ifNdr!Bd$;>Ww#wM)0x*FV<Xf6w0Z;Jw3AqSIxh=L?D7GF_eh@7D3~brnz62uemu zIvUP>@?G)7&Kk~VMLIWMNF}Q+f3~F4!qWcnlRrJ($32c7O`7p&l7U+x|H+@8Cv6s; z{3q!9?fmJK|9gDC^=Eu?j^b%ea#5}cbiEcf@nX`moh#fvl$yR@78$+BphqzJ^`fpb zo0hCU_hx>+&DAZ*%c2T)cb1-fV!dzo=MUz`ws`ITeOkJE+t>Jt^S6FShusUdkJ$b0 zU30m}XBMl!+w|AZ-TZdX#{I{5@~dQwS#7U}FM2++Wd56S@1pSkHZNbj554~1`PB4= z?Sb=NpHn;QA?0Zt<^DVC<hGpC)ApR4{Ur9I&~dZEu++~&Ou~~UToCYZR>;iY-V(s1 zJLTJjXg=GwZx3gdiAO!SBdxLJ!s*X*w$#4Jte*8vOk=Iaml%ykm!1F3jVC?T5vh7) zGwb4+KmX7Cue<%b_P>3Qn`kH)%~k)=<Cgqw_TP+xbCq*WzWDC`Azk^0wxEqrpmoA0 zUwb*%*~+gby?t7Cr=v}Fx{bv08wwfzF0UNam3lW%T(R|@;=u*-;m+*tu3wvOu8p4_ zEYh*#%m*jNf0JU1^p{>W7JtW{&|&FzenrTO#S4!08=Y7mD79t(lmn7`r%9RY^y%Rd zN-m1@(VM3kv;5(mw8@hfbMx}NXF45K{89H++EjV(<o(mW9(ilVwLqQeMJGd@&xK7J z+6{yllx@HHh<tZ9zQ`MBlofKpRO^M5sJ4k#SVqVN(?h?0RVd%<xZ+rCBjIy&_q;<} zJA5-fu3Eg(lY7%f<&T;UqLE7aml=*OpL_DD-}E_B3DPZgeq9$jS8>0U6AsmUYZF%* z<Kug5;qt{vHC}DsOM3K+8c)C3xU-dg$H6$&p2`n3++sd~=D|GPo7cYPTeI(<^?a}I z_dmV8*%v*VE4^agr3D_JLg$`cV!CzhU6acn9?aiwIrVqhzk3U<(|*s5%9?vKIZdf_ z;?nu`Rk!b@^M9+f`7tlyM$d<Ii|s2D%G_)m8_(8$e|wm}{=?qha{*J0IVSzk>w0rK zAf-QfeWOa>a_J8Os}G#k`mm|%69{qb(cw6j%m3P;$ZEnIK9%LnCtn^oR4U;8CgNBZ zQ@}AEd71wH1j!P)&4*QZtr%}lelcfn6%%Xcte%gNV)d;@Zyq(2Us+?<yZA*Bo6DjV zf0|xBk2$_dJ!0qHj*T9_Z+a)~UGm}OqGQYtIu=bW6MdBGdc14*6{BN90(0uPiyund zD&}zHJ{-~1q@0l05qRuTIakK{&X%P?7j>LVVt>RRt$j89=w5Dlfme_AHJSaibF%Jy zJN?VNd<NF_>}wuv5Wk>xAzSptR<18mtW|57_KGb?Uwg5$VOp_o0rwq^*phaRsS*K- zu|G|@-bWr#6zY5w-r$&M6V^TJSmEs6n)%yUVi!tD$8yAXvHnXoP3O0mTW7r1TvYAj z{7+k?Wm;xk7AlXs;ru%BOVuu($@R*Yq^2zkdC_n$bAQ3dLx=q~KXPstH1o?@e8ym{ zkw_RT*J`HL(8fcn91>g0oeg>m4_Wme7g6s#9<R4?Lh><A(>Yo@_aDt$uToi1eE7uF zOuaeV!l$}@=MvbS*nN79qu<-kM-p~_+S<xbe+oH1;r{yrb$TZ!-@dSQZ})}k*Ka>A z%$=)X@!USGfVr^hFt5&P*62%3x|s*3ZAtKsy1@T-vc^9}v+0ElbGgm?U$gAC(=)lU zvUcj@eNSD3J!cCn_Elo&n#1!kYTcIO%dH-tRQd2!#w&l_jrI)}PAX+{K6GdoG(6^< z%EcVXn{=!~$i$5)NH$r=uH7~vt;1>3l}KB$)z=p(b2VFRl5B6dvgBCl+WmGq86WOy z{h4s?Ww*sPso1n_DPC8e@$+AfnzclL+i~S-=cSMP!`ma%m%jeP^{Fs_tMhWh>NQ>L zx0gTK==Y|ubE#{uTQ}40Ev8!0d$-g|Cv4Z)5Up}!@2y?CSPsk+==sp7=To5bW}&xG z0cU$<wEC9PV;WC6`mCol_jyV%o|(Q-#-Hh{Y0M>ufG82esS916iEp~OCY<4l_pQkj zjs7nA_HwOXZMU%$S0wlKU%T(JI2xqQSNP%M(_4H<_-kdwp0k(dWC#?9be^?qKbxP# zrmHdYa-~q<qwOpGx2Ma?SpAPzZT{nz8j!vIQ*6b;!YXGyyKnZ#JC+BoYihFeKCI6i zb0#={1=9@4?xgt1n}xU&QW&ppVVJm?Vd7>Eqn?vJ$NH}({|<C}9D3lpmeu>vrp@7; z=i*pv-UoLmWgD_{9X)nZ;KsVFEW?GTr{?_VxTx3~^>~Sv%FIn5A??%iRPDl#)vq*f zd-wnBL;b&R*6mw(c)#VJqsHIA%<owD^VGMu@saVOk$;~`m)q=FH>u)7_VfNV@gILw z_uG9rxPRUJU(f&l`o?R&C;O#ox&79k$I{<R?S0m5e?Y}$S7^DC%c2PDZ(GhpZD9;n zZ3yCA5W=J}mBCB3A*geQyIc3qyI<e^&AT)=Aiz^&g^Eas5SJDw>r|FK(ivPCU$+`0 z{7zxL%5>oc<1Ax+=HK4B4}z04G+QnfUOB<H)<{Zl>*;{1+U}OAafiCBAJ<6EkY5t5 z#ky(5E}QCrNqVAnoDCUQqQY_`x4upYKiquTRpI@w@A_$HLu0Rc=bZ?PnsKOH|L7OD z-TmS0msVTvF%9nj|Mp`0dBzR(e{cPG*nB(Nx~kc&xZ}rLUi%%{FQ3@@$5lTzE?1sX zuklpi#H`X2i_Ma2Z}6*5*&8E!|BymP6vI=ozN?RwbsMU<58P?`U=_;xvmkU9d(K6< z^$BOR?@bHeqq{!g%;81(<+AN3KAn6kX)}3a`Jy#nToUfAvk2@=e(vos{pogwFBf<5 znAj>VYGcf(3<{amG;w;-twpbUCY7dSY&_4Sl2fL?^2v^}&1c)p-4;#sFyy|tQa5qE zal*yG-D|hTUf=Tm$_!?{4mS;LL-P{r_Hw=6wyJB({`790IxUuMS;4~mnaXqbypR92 zth(kzuhEH)iOks<F%$V>E4Dtdo8R#(WXZnLtmypj&o-KMD_+~UW#Nb48`}SzIU#1f zR<DQU)^x>ss|rJZKV{qartnjRJAOZsKHe*1cWLc`n`;l;SzB>AkM-KS%0+6z-YI9q zYE&jZ{CKfIX-+~c)0R?4gW^J&ngwcl0&`z`E@D)=Whl;-aez(s)HS7if2l^DO{M-1 z1J|$ye)DiU{yX}^w4T1B?iCUIOIr7e?Q7j$y5P?<m+ju6rkT!S3o3+E*4gk|2I)+D z{3%ARDXG(T))QfFy=6=J!ZN#Tl)g?3UUVf}w4~Z=%CAtz<EqD-qmEBmCmtgZYNE39 zQuy+HUQz4RmRFb8D_`H6>$*F({e@k!hu&?&E3;nns;h0gQ}EVhQ|;;6>qo+R%4S>@ zaa>ipMepA9?CiK}FMNFB$`6-L_Wbk9G=7HPjX#bH52b&e@ggDh#O+NwH#cqBt9Y~Y zY~RL@x0hx0^39Jt&YdQF>e^k!{^k3YFRILRSGsArlX=DpLBosj3fA1Ge7;PX&^V`? z{Z9X4Tc5Q*w6`XCXSx2!Iy&u2*M+MN-aop}&ttF-p8f3OspNTuVrw+!JJkG@<-GSi z=}zW>A1iJ#hs%gB^`5Zxh|toWnu88ZuG3WlH^qD0eELx7txL7nH&3}KMdvT4nV+xu z@paO){G^KQH+8P-U9{NW{OE?<5v}AKoHx_+R~-HO!1m7r-#-hc)jf!)yWml=+v4!_ z=h`0KhO?PkeH#xgb4Uzcut786#yk}ZAMJG04J?L>9b+?;h3~XvJE|{Lar=0GBkR}G zJN*u{2CRz+*i=$k5}mNBD_ZX{TlKH+=kJ&N{r>H%XQt<cGgo}>ZAtmD?Bk4<r~_*b z)_-34{{8!xw~C9*CAE}F|E*umzjoEy$jakfm*VCvW|_#oPfStl7~jc`)`LI8+6vWk zl>PQx>T~~6(aXGEu;BQfM>0!f3(h)y<am?fQ*c7jqQ#>%-zi|GnhJZi*V0O1z1jRd za;Kkuh|v>2eKcmd*L2QHr4Kw*A9*rHXXWWFp3OPi*H?JCMziv(jjSy5mYzJM#bzGL zc9(H-+oAGDKg1?EuDc?BZE}zJt92HqtV(!FLsp$Js(RagJ|NSAZ)#+Roy?}L|K6?_ zZfI|mHTWgmWP8f(%V(B(7jG!nmBffU?hLnH)H0FFzw}G(3FCC%>#Np<ehSf0e$cn0 z;F(Sl|FS8Qe{bExJZFNl?u{3}A2~^@nzvRRT=b~e#6e%rE;#7p%s;BWMH3ws96B^X zn`<VgS2o{nTSexB527`~I;vz94=zbQ;V=BZEC1aF%ZmzE*Qoth=jC=Ti9Y$fgl*Ol z&nZ=gzqzA+sGiMV(4QYvxAdQldgywklgl}TE+^U@D&yfg^VvmRYW+FMzp>8Du^*+( zC)Z5B7Zb;BS1k5+&eL;hPa-F`y?DQ5QU1|vC39!>`=S@G%CElT9k=n0cirW=Z{qFl z#{RfJt>8ve_`3V%p~-ya?MaJQK8Rnl^{?!GyNR#XZP~UvO6~W&f4;%-mzve3m;VxW zJSVIm&t1_}d-?9gecPg#gYWJZs<*fjmZ@#?c-31Cp5s-oS`H;|ix7YD_gZ)UWcC$R zYdCky1z2b$T&!HAy*M>j{+Mkh|3l7mkJUt)o^^cx%lnnr#rdqwy^@xDOiS;?#Qkz; zdB`)R(7!52zDq7HYk}y`ootV4H#WAt?(bT0P*wDf>(}|KLkmta_iQfoT<2<2b^E}B zf5}NTM+0^THwURiiF-abVzxe>{U~_%^pbTi)?8UFDf&~?|A1t{Y<Bzak7T#+|I(^> zPPU+pNlpFyk3;vSo#lUKW@|C|OWU5TDaVxdvg=y(Z(-2d9{Xv}teGB;h0`{qm`FXG zlX$GuZ|hEv^G{zIUQ?JO%xkQ5-7;`%rJ*c;?9P2&^Ws1K6o2<KKuG!j&wA?%-}jz+ zTHf{ju621vDDT7Fzn41S-E`y^zuo5iNAJ$&KEIze<FC;Pwt43p=B;Ooj$E^T5&Pzh zKWY0VFI)U)n|kT{SL2J{uX0y)9*>{)dhw*NS<2`3cLsTWsSUJW>=w2{FZh&y0H<ld z7Qfnur4r1Ei%Lye_g!w~{gD>M{@E(yzv7>0jkMrej@&3Y{<AxM)Y>O%?r|yhGk*Wz z#UcC4bDX7a9_8=Ye({9U4WrByEjhQeqSqyQXWj<QeOzh%bz%K6zJIQgVSh~KYw?{v zvHD!+3n}}r3pHX@mv}25(tUOGd_5<t>OC_l?&=S3v&7gAuHyb~l*S=0#@6|K&P9)Z z?l<Bs&K2-&KG`|%uaujdj`Kf@2b>2scZ=Uwy1z&$g6+0m>b<!2feqWWH+ns`xj5^h zS?j&h6&K?7ipA+?&fct0Z4tEJb)vutw`~$n6c-+ub<xu4eOFMkSw>+@&g|9gX6{FS z>AFTbp4kzVXu8EgMqzo_<)WjDGNPVDYehLrO1o|A^Qo;%PCotR`LWk#ZvSJZDDJ!W z?D>xao3fX!%B%kPPBr=azKZPky{DsfqCVwq?oPH5o!9qTE@JD;gJ*rswBNZtVxD+O zE<W+rqlLbHoAaK$d!E1Z?egz^k+pW4{U_=!(iha}TRSa9I_aTkNOc6eeM!^J)#-;H zD40xd6<E1u!UWZtHC5AiPuD&9wBe)YtC>&qCA254yYD2vCrDL|!E{f<gAdUXf6BKU z)wf^@I~M2k_@`5J;ru_@p68c;Trc{4s^Fu;87*NtI?uTzq-IW=J@r^q3ODnFeVi|k zo{y^0s@d^FN2-G9i_TJYh5z2V?^izD-d9<&eCw+70)lTipG>>r(xR_a!@sLudz;_B z`i>g~d$wJ>HmhdV3zs`#?hyvk%T$*cSDgv7l)m!uUF5!&EiwBa-t(N(>-=X@$c8_Q zPOn-Tu<7TDEKRN?i@rlQY<n!96tuss3QfG98j&9?om+QM(j;48>vfTRt?$E(vw{{( z6rB{{@l5|u>rS2~C*gm|B~w}!XU%QAE?OpL(&M;3bdT~!EhonVQmG<m7Q}C<6O-(J z$gy>2gdl6?i*!wks*ojS`XbI(!&kHltuH#(bY3W~A}`_k-^7&PPrQ#Fx2m^3yF0~l zMcPF1?4#=@rwL}Q*&3KAw|~Y(mam1mxw#txx$jr#+%O5wzC3Z>iJs?Ceu6G5CrvY0 zYLytoooT0^dQ0;0(&^%>Cr`hoCVKBn;8xGsp{Cxm|CY7icM)#gy&_=g)!a)HTH85p zJt?=SQL|F&*f*<T!NJuUHV3VkLf=`sS2)U-&$mCZX-U*#weR!($Gm*e-&CjJ6_=qB z_aV%>^j|`t{(U#0%;Rn<r}<|*P)#upweSDWvU1Vx%CPWU_Ilquy>Qo~&y06{`rN%G zfOlc&I_an<Hy3-mWpBIr=A>1T<BTV_9iRKfw`lJPv=lp9$h5q2yYGhs8Q(wYai14S zI=z}h=5O%qJ7otCudZ&Yi*LBVYi}bYBPGWbSFx*RO;6whu7@A<eM0o&?Ls^EYllip zoRHzjdG{zfM81nX!1&Ce9rF+BxL6y7>;G!;n*VV{p`J;<bpMKNI*WvYD$iHMn4EL0 zJl`R-Kv#bMp6l0ZZ}aEve0pWAtnKgmg44e0-_rWn+VbLd7M(9RVc)ZDdk+i8d)fcb z_bsh0|M%m<zUl8{Z<W9JslRSd{F@UwyX$MtHb>vC-e%9h!{PbHYRN&lBhAxK=|ub$ z`6Opk^@C5v$nMuVucKjm(&r|gcKSF|>80taMH(e5BeIWHFDf~?$bzTm1sAKru05}u z<E~r$J$m!7Yq_9cLG6n3_qVAD+g!Vx+IxH7m#^PcdHEjkPcC26DgI7dymMCCWbgF$ zO|vVeuG(<*x{=Q5B;Bt(lU!M+9WwK{82R|Q@`u?1Ggiyh9q;*`eM6!lcXoCY?@^_h zbIyrt_h@Kor@EHR)m7^}Zg%|8(&H{W!aU~p>0S{Q{k_}CR`8|rmF;?hw~Vuz`|cat zimkb2Uv+w=t?JF0TC<vc&C8{ETI=;a3psDyvl5EQ{u=e#>at?>j`y4GEw{W^_n1`v z??uA<wb$44T`!HkDthF@sl(9|L-udUc{}}R-@LcqwS#I|JWV?-PW8Nz-rDlDf?52r z^uu%`rME(Njdmsf$$tCx+m-5s;!WXN&&<+=C){09r`O6Jyk>5_uS@u^;P;)UwubBd za$O(rMf<5`8H;D+I%m5>5!!dwHH3QmNgn=sw|91TR71y%;=}3Ju2j!*lZx3Y%9uBG z+P}?P>nuJW5Z^UTO(spsQaLF3!r!gC^xx_9Ox^NGozXufq1ZgdagJWV{FQ$eUv~VX zc15sQWM09MhvB``V`{oB`oAPgSZh4K<UGUAMM}AsjsK4pN1DSrulX03>^fIj6}r*# z$-bYH>x%czG*I5ZZaPndSG9o2B`q<|B|Ai1`j;%(R%Iyq+DhH)?AZ(dW@LmpK3-Hg zf7<Dc<)_!g{4LbZIP&w`PJJJ>>-{E$Te=hkw69*}%XzaxHuK|Awy@`6{9)$n?#^C2 z??tYG$8*yy%T^UDNuIsJVcNX<`dYa)2Nyf<K9=R9XTJRLnmI?4FIG6oMTb@|S!Em- zIQPx{8*^_Og&e&p<0h+LkT%8A($+8A^^)-GRo!7~zpgdTFIWEi%IVkB<F{1iHwJpl z?Yr3{(w_9j@Osa;sHFmBzvez)@XvMUgCm83R+|I<2gUFGb2ZgO<Xn~yWBcXwM6UF1 zPqvS2CuaTW?>g|)+AHY(@edm33qG3YuHW=Sy>q_%1ozV?Ea%QQP|nX$)=}RwF*5Jk z)(2geUBhdb{2U~+4szGuF%tP1_MA8V{+53eb8|gvS<?@kY58@1dC==$Og%UCD{9iD z>MO2K-@ZjHU4BRJjkqNO;&L}FZi~BE{_;wS?)>mDf<f`O_Lnz~IT5Fh8CnO;-9Lxp z*59bzqN<XTYtOx#xpk$;x=bg=kX5@*sEV(=SG20+-=rX+!l^-*c&A*G`^dVQb(&U9 zsITPVy7&`LlPj7WdK{8Dt85r;U8|q6*04>hIrr?6H}{`&_02J>uWF~N$Yi^nud}cE zrcyS!r+P-l(K!*Sjj3BW-Hjf))X!k7Yj8_gnk3Y}@t;S_+PS?O((bR>IcI^@qmw&= z9h@h*P3=1Ur(^QTtjgx1SsONV7<%ciNs5u!a`Rr2UZ0eDzWJnOTJ!ajF0cBx;PT(b zOOZ}~@k={R9+<Y?->em!dO~<hR_J=Eo5oYF_56rGvf`R(-TkK`U$lf;>;7CWtA5D9 zY^t_b;lci6^-7`h1Y&h;UX?t0z2MgpGYj2Tkwa`+Io3<LZZCLK{zfD5%4WYGv2!*w zG@4)AurJavcUGu4t8~5kS7QnL6I)7Fsa!U4i!(cvlG)JWoXmGi)<c&2c;qb!&MNIS zQm<@2{-5CC{4Sx@ap_@sjVWt5?z{J#oNDZH?)ArTiMg{D_3%k|sb%XwJ8AMWS##DN z^{Z}wkIBXR?`gl1`KDK=yWh;ocBi1%$zGW&4${v*?oZ{3Fv&VnAlBSvd~Mm8Sz9!V zFXeiD-LW>pJa@MGjGor*_U)!cy)M5u_gY-*FgLqa8h-w9N5&qZBh8MdKBwIcc)tEd zAXm5e^%hU=8AaCDo^}bZSf2d4NHeuIf=Tkot~uI^uiyOW_Pbc=i})0)Eu9ep+XGje zw>m#N>8`--pW1@IL?5MUA6@d*$8u)lD#y9AW}R}X-Q>yn{*<6s5&M=mt8*vJnw)v= zZP72Dx8HmD-^r|hd+V!y^tW45)0SD8>t!ZLhB;qcH*e+6W4-hDs(rd)TWf5)FZA@T z?WJ5gtHU<GdG*EN=z*B;C%!H0YCM+etM_EN<hjI>iaCn?JJWvd%l5mSeL0kQvTd!0 z8^5CDU!SeatB+Z2oE*d|{?jaXLFCG-=Gt3-r?Hm)&|7%VrhotZ!pLNUdg;%HyZk03 z@uYDj&DnBc@`W^$8KJlDh%5-vIIz;stu2Q6jtAFUxxij8KM~GD^R(7-MmX3#w^H5S z?QpoqZOZIb3v`P%FWxlUHRE=0>OQlqy?0)onwd6{`SPB#YJwf}RhPd%dvqEPkBj8w z(^-YHuV`F$%$(i1Qs!Kmw)x$yi#~B?KMpx|f9lKrZ*Skejk@{hK>YrfE1Q{XmaKin z=C+Q(aMd-Xx%)q~uev6%{mX&xd9U^-FS{Iacd~|!$<9T|zrs4SR|_7i`{cTYv)Zw% zDlhX|-{iEnb=)tK7M$MT^OWnf!u_Z{e?C5%{b`ej)AWnSd3PNAxJ!TW)%4njm2)ie z<dptjVK5Gosuer6_LcIizz4D$_k0PAT2mes$uKjqw(q*@PG;jT1zslnrW5Lg7ETtv z(8*S1sg>oH%A^#UxPH%sFx|_%Ul%E@nICYmukYd1kG=fo%u3%^WQ6AIS?_sa1?S{@ z5^p2!ZTr2=LGAj)SzgB@A`X7CuV7za9#Y{mGrIromzn8#na}4q9!wDP35;K0RPd@( zls)X&p^XB`-%hMpH7_vt@VArNZ~BvWZ||A-L3zW?X@(K!tMnFom#H1Ua6ivG#grlK z_S|_AvlU*Y8yO!ta^}dHU!v>z-=1CPu6!mVPsW$4(mDN_ZGW(OmV5Q*GYwOUmQMcJ z^5x{|*Dq98>Fc-pFN$famRoAFyi)ULnUs2sFpJsYvjRGrU-y?EeXX?XaPKAEFG{=I zmroGC7@PIb%wv7F`^<ZLI`ULg^IxXuDAsy?cdBEt;rMiM>7N6ubc~pn<!CqM=!PBn zIbl=4rYG?ebXI74AKT?oXSV2Q+REtS<4>L}S5I2sSpRV6^(eMCiQA_J8fHy0+p(DQ z`h${VyKiSKGO4QCzIfa6RhyQdd${)c3J&4b>oa8iW0lSnT}(fs-xHbqq%b^wP5Nz@ z*t=KWp1yu@&t;i!;(M&GWp9z1>S$2eT(!4voy5JJoc|BVyYWntdlhl<QIR^^s_5gw zY?GV&f9*+(-zgPwO7z(S{`|a9XT9x=H*YJiS{uRgw8(zKqdxt+eXnCQJIpj^?DaW# zri$xN2-lskSDJrhl&T7EN<HopJSM8#qb;bhP9jkzMw;sl^RAF9u9B+`YH~Vjlms5< zS-eUxVZ)?k@AyrZqQ2!w=5AcbpxfVlXaeIcIq{{(9EwzrZ(ETREN2^_wZ}nGdEzIN zjjc5;&+dv<D5ri{XnMJP{R*F)UHN}+H1gzrY%ITQbMN=deI}n$Pi!w`w=!l9biX+D zt=wEG+k%wK>z4EJefuu7>(Q#^+<#AW=iZwAa(A*=<<@&_EqQzke+zWIGF&5A9qhE- z>fW5Zd)ItsDe}$uyP@c=%!<ZRZqtT!e`d9c+@EM}S-wdBTSQNTIFp~loQx$R>K>Z= z{C=&QysfBVIm3I01<%}nudLR56v<WJdPwt>?EladkBZ{v#NCYs8TU&1wK%UGs>-*V z^T$ff+V*8Ew<m++s%P$xmM^hW`WV0PMv}li5kuy5g`On`*H#9XoWAE5#mN1(Xz9(y z)lmY!<Z`E_I8Nqwl@;%+V&B%Eo;K}Bq|15FrX{6kgRPBj?<-A?KHlfPe0_C-^V`Qy z=G~o}y}OCU(S`Z2x&PJ3xnZ{+7`!~|7WQ1=OzieE_cy)%z5V<5w|`!FeU@#1?Uoj; zFfAnJPlLshU6QX4*lB;Pk!E*v;gZu+4cpyicxx$3;q*m2^nL^$`Sq&nXZQLPpADOK zIL*$ND{=euHS#~l^r@SEu!PJ^T0Z&xi9#jL%f*uWB4>+VoceX*o)t0LsUJJPq!x2O z)ms&k7xTgU(;2414yU}<ZB?sdM0@KFclY=$Hj<2Q+2a0T_RQNBd`Yiz7rwc+Fu-4; zW7EYP^A#pmy%S{eZ>v=IeXeg>nOPy<yyet8rS0#|t<>5((RB9#?vR)>t8WVgZN72# zQ&ijIt5>fT$Rrl%EREeQTjyDGC(HM&W6FiZ+E~rEeQ&chuYNsXp(EYCjBU@)g$H+S ztBK!Ms50lNTiH}$an2P=^_Fv|sFh4k7cSBiQ%m<dxi@#puHvo>_a~U^FOvIx>r>K3 z|Euec_P8~DS=`YZ_4nk2ZQ4t}trk!$l`ax+X!)frDQv+vZ<$G!@1}hR?`>Vv_kW)Z z*S`9d39G_oPFY4z4lQHuyu9Z==krx<o4gmzw%fnx({3{bzqxn+Uc9%rHdZ@&y~~^x z&pm`V&tJ5-SQMI>cS1HQ&h?_n+SDy;zP;b5<9Y9l?<(6FoYf-L(UZPEJbYV@)pGug z-F1I2tjfG`JMG@IzLyO$8Et=@Z(q0{H^q6U@xEowzrWkfs#U4~e&E~7y+56A`uFBY zMoxVz@A-O*;i`KKNm<gN3(u~sa#^kZxzEv4P{dz9+r?>~xrf$P*-nKeOZ+RDf@W^} zY(H!7?}>Xj%B{AT>&I2CH)|FVyXE%!VVUGy4)YS9XRamQp59Y_D6IB&nm74?zMxKA zP=oi14PS*{hdfyIN>%@q_C;>(zfOT)CdPFdTifTbg%&D?Zj{u>yv2~|wRDMQN0Peg z-PiIxm(mm-PI{L)@!ib{?`F<(@oRk4>n~QiULkH(>%%u+n@w%QbU*P&*(QGtw`#Zg zU_3p8P4Lc)-)E+*ai4YiOGdD#v1yUj>V@;Bn{LkBllrUZ?4B6!>CW%ncw6W6-F)vT zmzDRM>!^S5d8OPt8tb{N>?|ba@HGElo1D9#ZeMoOvIU&ps;_7Kd3EsQn+Q8wflWt0 zugtmHQQb0i&c;PS4<`Dn`!{>3F4g3B?Z2~n<{pmR%gL33QOh4yZoCo~aiPD&uuhcq z>-|YZ2@egv>M*=_K2W|-V|SOh{lXo5;R_aTjMIKJWl7iP-I5F+<k{*TA2PhDT;nj$ z#mFG}^i#?2%71SJAK{%L_F2(UNB(=W!kV*RO&{O9SaW>Aezp5KA*Sid%6tliFOBt! ze=hQz@B8Q1T;ue5t_`=3ZI)eJDHwY{X0mwi%p`7xKRutHMqE_VpV_Wx&vvEzlZN)0 zQ<K$Ax2?D?yfu64w-v{ww`TgtH-309%`V#a#?sJWmZq8IVLN``=D788L0pmhg7%Kv zu@5g~$cW0D)rf4_bksm<ZJ%(({@H06D#Fthlvh=`JC*2{g<N`_dO9ngO{V|)lPs4f zUfbthxwc^c6#kOh_qU=vuUA_Ko2U0`g}z_+=gWgzZ%+N0)EHH-b$_;RpU6SImsVU$ z^u-nJSMS;QJ@{njDg9}wPAgXPyvnW$k88O%ZOxhP3-S3{`qQdnmi%3@@blAt-O2p| z{H3hcJ7UsSm79Dknt4-o=0R<_l83+cr_1kKR2gEa@>#+`X)Ukf#8n(?=b2e5t@~G| z67>AI*vqRr?)5Vt#yCEjB(E&*tdk{KwpJy7zP`x<)|-08Ee_kJg&5h{B%E8$?!4)9 zQA((5<FuUTJ}1*7+u1LrJz2}<?3%6`t3PGO`9+nl>ZiP&&@XyWRU#_<en|fB-#N=P zqt2ztxL)|@xJ*fT`7i$z?cE#eCv8$W`y{3I&hyKjJLcXH=r7M<RVpg^{;P`NlJSI> zI|Lam&3D-CR<kz>kbiZ8KV`Q2DFNM^Cz#e4y>)r;sjKuyzRV0~24{Wc>`zKxj4w<S zKV2ns>FKtQoeck%EZca%F64it3FD-NH!Fhoew}=z;{Kx<3pv(o>Iv34@mjv?ez-xK zYl~ywi~5E8w4Vxp_ui;t%%U1lW+rk-Dn0#X<5W+cB5vv9daaN8O8;i4%|5ej>&>js z?+z;VoV~p%Yo!H)lglM9@5b0kk23`puiWAB_C(c6=H(Hu4#v(FU&t>#TYPC8i)%xX z`NpH6f3-W7**J37+$j>OyPL{+^Fi1V*S$Kvld{~7Mkv&KFRJ<Pc#LKJs+lvcCv4n# z@<&ziwXlcVF1=9lI$XK>(YAv#d)n9R_By3@IDX#4zk7b9T|GZlYob~B8llRjIgX1# z?U5-4CxQa^_pNyo_eS-keQBxXbf<aMO1sL|#+f*z6!lqtmthcIeJ%g0^~LxvW@{A1 z?oJlnY+Y`4=IL~Py|Zbbb(z^?+A{VjN=t0)xzou~(4r@{QkZ+8rmpaxO<WJ2{;^y0 zWlxQszSDi(n|n0A-V-?6UG(4N&Vv;m)3t7Pwg!a8{B*57bfQF6vfk+8>iFvgb}DNc zXZCzwtR(v6=|wwzqf@S#Hgy&@9Gul2{J$0kUKZ;wVS34~Grd`E!L}7fh3h?kB|83E zxa`^#?k|gTOCNQe+LRRg?wn{STXT_w=>$Ii_}KOY+4A6rb)Sl#a7T!56N&D>t-_yc zdX>+~w_rlz#rFBekCmHGe))6s`@)V%VXGQ5e&3#4pyk`Y@NUn&j6?3nVy0}I=X1&A z$~udck3QwN^_OK$-g4SiJzI0dr4*@!KAVN|HeNcvFim^4wvpAAwFcKNr@X$PfAggI znrpmkpU7Kpy83Tkcy#-<J+I`0r`0ceD*mosZ@Ns<$>|GilHH>?^jSZ=Q21WN^S58r z-a&YA(Ec|U^j)uI&8=~6IcI&szUxA5_W9LGuP4->U9GgMbyI|iu76D7`RQB&9*#L? zk)29`ri-l1c7IX}o9MpPp?25Kr4dWF-4tX!B(1#kq)x;vxlT9UC7*i#%(+=nePZs3 zxAC`(-WuK9J^TNa-L;F>ef)L2Jf}7zm{&aGgZU9*(R~GvZ{2oZ#a3%^{B!G}oON{u zdGlj0Pw2g^e!c(y#dy^WzPhZ6ZKqw|as51`{m46i-kOg$d`j;H$Szc6n!Ebe?rr+{ zD^9G*;wjmxCfhf0);ZpZU3dOJf8+h&_Ks7v&(CDIN#z<ZPTlf;cdF+-mFRma?>~th zKez8j<g6vRt5nJ+mv~3-(%;fL+a&YF(mO#9g0@Xs>X#H%ap1l912GTzr;ZODZ^!@M z{XKTam*?y@_ZG8C{hV8zrgFM(ve=@CO~=yH&ehy6-}iZL{?GaEE?Qqxi<r9p%kj0> ztE1T#&;C|1i+lR=sNyB3rggZUjkR63%kPbI+oz8_U!4~*N7?Zw`$sodn_g0DiSz%W z+`mNcm6BQ%o3vH<ZqY`)mRs{Aq}t@4Gbvvy&+N>dRPK<G!?LnmFG;phnRVAHW8oK9 zZYCvZH29s{eDnZEZtZrD(>@cg{rbSw{rStKCH-F}Es4DpB>5=(SKI9F^P;cUM^83f zsS(7;t}$C;&qnk8i*HLyOG$K0xqEbD<G#j-o6;q%hb^|efBAN+RCDC<k7~M6o27Hz zs*k^$cz0vY1nIs1ubgYvziY41ax3X~gyz>K-M#IxCoFdu<eML<dL>vYAM-<7VtH`O z%nyR+A6Ko4Nzf@!aOf<WQtr8Sf?)l=y=#_vtWvC+IY)6$%g?N(?>4Dl;aUFba~8i7 zgVSvJGq-*?<^=Dxlb`<g$fo|dCg+U{-JW*^X<J;cvya;zWVB9jrj5t1g*Tf0GWkrj zPET}6&W+BN`5TfW{EBg@h+at3u4}U*#Qq(Se3R+X?e}VSsO7;2e<QcvIauVk;m*XV z#ZBvXlwOrpWY*x?)TD90b6#V))bxxz$;~nw0$SdftEIdWH2T_M^tHqC&f<SX{ijN* z1m%CR@7gM1KDEmAKTF@1s|R|wZaCa9LDt}r?+ka=Zb9v;`STe5y6tQSqfM7IyjuhL z`lTkOJ}c{9(RJ&tLLyT_2?GyLgR)=-Z*ijOs_^K$m8vItN^WW&$cSTmFU-rrKV$P@ zXGfXKuccnS@!!Iu_Fz`9*`+`~&(OfKuyw7i+Zto`v@LRwFuYrsHltm9rY;|U>BH48 zyS??(b>sa{y;-AVxNY;)L#BLFo>yA#caD>|Xy0hFQK|W6$nDu@<lZ<3TW>mb^wzwT zZvpu;lQp)6mV7)l(VuTy&a1VLg&!YgKFGVBr%Fplh56>ndk>D4PM6>PYohDR-KBSD z*j^P~`+luq*_+A|mq%7#BTsx~OX4e@J9$Uny&~TQX{_h|IX-$*#OaX9k;i*}`oR!` zHD02NxGMfPu`GDxcI4b@VQ15A4-#g^X2h|sG|K*=DpNGa^Fgr5(N)Duwk+g-dOYaU z?3L%eO3YWRIeBo`IqUT*Urt^;>+V+5{p6|JdRHHhBX2$W7oBO^t{@u7_ECFA-?<nb z7hVOm1+xxs5NiolSi@o}(lIfCbxGs)a2F|u%d@SQvc1ycV16IO(LCM5bd~GA1A>b$ zPnc`A#h=rhW%{-yGRlrO*^DBCMH8A%ezMnWl{_Q1Q*p{6pRgnadDYgLRja=~;5L{4 zasBViHwV|tw#+{pUtaP~wt4c*^Am4dhuygSn)QG7e{(shcl)ZprTwsEv41bKCqI2# z=Iz?W&fnjjF!R0JzT$hyON+0?9=20{7cHCf`_bt&4T{Py54sviYLtj=p7O0pIHBO| zwkeF8lkS~XurIs1XL|PXy$6i#b>613ZrojU>-5Hz8TsLM5vuiSn-4GO>Fw!L5BT!z z^)t6Q-!93&+`D*raqwo@Ki75d@2PM2ZqDj8H+AjWAL~CosjK!)KV$Rhz{<n5-`{1K zAG*2s%lT}xZSQvlOFew@+2XhNrw0G!jx#2E?&7deojh%F<~hYnQmeW;1$#NImsDt+ zKh}O|&Q0qKImHxH?jZ5grUz%#q(9oRaMz9-m$b4kq!yl<dQ3}A%Gu7}XpL8DA?w*~ zyGpVXetPhhZcU4|iodWlG@#*@<}TK0siDiBczk|(IlS-cZ{xj!eL*X)u93T1+oOMG z@_MIPJWO)^VYyir<~C-3Ha-kKTp}8CV1DWh1{<&40h=ZiO7<|c@iXK<u@y>VaN~CH z@^9mDI2dP=C9B_PpDZ9_>b3OpGeZv1KT>ViPiOjPdggvQoA!10p{&H+2D$-4CI{9B z{{1)MN3>^z_5ubYl>;hTN7gm5tk^XB)52#@X1hB6&6_AtaZo#;%Bzj_hv_jEiA6{6 zPdmDUiKAiBoBteY3_r6TU#VUF%IwS4&MekdKl`6w+kWMXnT68NtFMoJo_OQP#Lk3; zrfF^6fnF=qBI?r&LMQjnT>P`MH2ag_g7?}^nj3HUIQCyWr!5=Tt~i0Sb@n2;`aQ+9 z)m6t6)?Q0^wsp>l#au2I)ufn9&v{tA`g(oKdR3LYOTS+*A2EF7AN19YyQ2AqZ%(Vp zd!=OuZ*M+0<Kv0u6Q3`fy1An^cK7Zcne;ce)=KQ1E@2z=;f(yd{F}SB*Z;WNc~$tf z`ZDzuPh5(UoF8jH-0Lh|ciaA#f_c8SO_z<}nk9j&g(p^QkvWqT{@}cx)RNK#j$CG+ z@)sI$Yd+oj(&OQV^nDt4Gm<2V(wgRf@N+o#p!#iY%~Fo{*Y-c$?pk3lZ63cx^oIM! z{HCd2KVIrtvP0pf@>R_Q?PszRPybBar&jNJx_znT#or#SL9aWL;wSy)NOzdQR(@mB z-HjRkb8R041!`p8oiDd4?bB9Qm5sla`9<GRh<df{-u|*j=eC;u?-UR^^-lYytzt)$ z+u^CQB3COtzy96$XTs&zagJ6|>vf~oTK_u4ldRjao4-fjvn{G5a6!+z`;&i*=nJep zvN)pt7>DA738hX>*F-rZ!&RQlv{ih4m8Hx#s-*L$!@;Gqw~M?ImyP;7eZr%hDaDiY zVvlq-e7N-4^~SYH+h08Ep4PN!-z`Vc?VqO?d9PZ(zQ7^2HT#L3==)w(-M_m(t=p|S z?`~)u-ygQ0j}^DhX4i3C?&-SuOHld*m)F@l3JrQi>KErLmkA#K_{a9*)vFs;3)=3< zooal?!Q{t7@9l+G*B!bda#<qIbpOT+JvFOe9m;syv034qG4rREo;@`uezIv62Y!1S zJ1KeXjg`kwPQS4uYu}EI3bC%?Q}hmZe0EJ+U}LSEF1JhQQl|Iaf=^9<wB~)yR{t`! z(`PFi*KfAJwi?=O)`^cxZyf*D^`!D|V&yKaqpMF;mC6N(i%m}35PWvQPOmQCt=!kt zW2Snp_$E@+`pb5%(%}c*ERGr{1%B#ttdo+jXZ9+YF5+!9`_-e1r;Of}9k*Pfx;4b= zUg(3zpL1U}aW1{w>K3Uv_npv{T7_2TrW2h_mW!HwFMs@*6m1vFF|&Y8Hm~3KMS+Z1 z;ev%yx^ET-|MboaY|WPMT^007Ip|X2{|8U*`|C$`#RvZp@{^69@^X>;?`y}xbB|mM zj@^EaGv38&-?WI(7g}4kR&tlJZrTtiKi^-RCu2dI+x9Tt0+rL^>Z<8qT}2{Rq^v%* zWV7dVMXs90D*>%v+-#LpR2Dm`EiQUJ>0!UiEcc%U+Lg<XY8yQYTl69+aqEUj^8)rP z6Ix>7crNzUDkTd~P0R9<)Je_x(`_$Xq+ea|-#2Z6Q2C8VpFUP?_4%rm#-Zl8{Bmrs zEW?zAv0mKTuce=st;n}?+|y;b^>YCKqbpbT3O<o~V|VB5ZNbxr9{xV``0mRM8f};F zJ~k;ld}ZQa_iy(X%&Sj%aPQDUC;uaMruEK=3>PbuV+<LN?)-Mqi*4SK{cJ0j@D=f8 zs$|x!=dze$nR#5i&c!x<P0X*hl|LWxw)Qg5m@4gl`{LL0;!mX`RC!fdWr~a(4!ECu z7+v|I<_Tly(SKe!PCH{AH}_oXS<E80ZW3$82hYOxTUvQqtnn$VF9SaA<Dbg=!B}KH zN9oT}`FZXYQyqT`9xvMZAz^D*v(P5DlxqpS7TTFEvvjgumT~v}*?XirVxG<1<Osoc zxi?ndx3=6F?r#~kP@=Hh_S3<+yq4D%R36`yy~W^C<O=;GkMB*}CAKNGr{GLG7uOP| zGn-awXgAC;xvqS+GnIpz|Jd`pt@=;(^y0cR9!4*)%HZr3R6Jf|7-FEkLCj#f?m<`C zfKJPQfA9R~;F5f^E^Xt3on6ObQw(oD-t^#ykyExuXy@5QK?^5^cPhqpcZOeoan;e| z#PP=(kLUbKJ39O6NmE8&mbIspGD5{1Jpu&Zl=pnNaggI*QC!shsub^Y%F#t1KG*J1 za@)VBL-Ea1)lKek-zy8gEiyEexOidP!3Q!6#4n#)&6ulw+C=m1oT>g7*bA#3CT;p@ zbfnE|-Oo*@j{1B~y7tr9tNC<JA?KMF!8dY4`QAqcweC8nT<bNN-L?5<m-*{!rK@kP zuP;%5sjuIy|Ns8RT-$}cuTLDl`Y-eUq4<@`6S}rKs4ouI*)xB;!t?d+t@oVe9!#q% zWDZ=`7WvOacUQ~D<qMl)cYJ8CF=nz8afo0Llyk{^(0_<owoc#+v-~g9=gf}sA091^ z6Zq1^!JhY#QQm7x8f)>v=dG_(<qthiS~&5ov*f!M(vPO|$HsRr=vdrr*IOH49He*X z@D}w)lW)8ho&HbxieBY?)|Pvs<#Uv48kT?THTmE+HQVEARiVY5l&5Rf95@+vwCYr8 zXWk?$CXX(i*q|400=HXdUDozmua(h~omI%%vu4qf1^?Vu_1d)`)zw&;F1jXa^`8f) zR~Q8^ytH~HZxpk)<4*O5($zQDU7hs5bCrPSRJM<*Y(I^7eoj)_r|@xU-9zh2#!x4P zoqkH4dEQLgOO8~AoJ?mGi!3|(Nl|b^ho7m&s)lo!>JHuvDJBk&UHhW-i>_zAdY#nF z*!w_AMC)86=XagZgEr17lQr5W%vwELU-P-n^y|UeV#Q%oi@vSs5$v~4xTaC}le_iU zoAO;wObLx!zs%#3P>u^fup}(zSErM1h0MAMjVa#sE3Zm#HEDe%S3cdYx2q#_Z6Lp1 z!}G6hbDNT`oVp}wa7@7@uD4U$S8=7D?DBUlSGc`6GVd$MOc2UcnaC$l%%IIz65$vz z|Kempu^SU7FT2W@qua5@?1AK#mA%cc5|2t4>aa@`1uS_q$v|<TQ)<lB-X|Lvm0J5J zX<W>4IdJviGB3gPg8I8$Cr`@R)4MW%LpAH9os*xgytF;E=EB==vm>M!Ue&sNsGjTC zs5$pBYgG27<~4^FEZa6~ZPl!x!d<65Kb0<SbCVMM8C-qx{lv;!jw%mkeJ!+^uX%QD zal&7n#-fyG2bS&W=AQeZO7_{}dnzlupG{6NT3I%y<D7~8N;?<XDcb1<6+0U~Dy?c> zrkMZ2MR4966M0=BPrIM(Dod9>_!)S-GpWSw?w=IFcxSx@6JHyMPn`QFeC@%Q5}T0e z36m<@Z>RJ7Zo9^pZgcTr()p;l%ME3+{C9*}HSfy}cYmL9?cW8LExI`wE7qQ6Jz0M} z%XHVS0G~Byud4hON;(ku_=@BirvsTLJJ+r|lkrM!?F&)mi3u#1R&iv0l|1Ir(wUZ| zy=>~O;O|B^8e)DvcwE_NP<7?kt;_!;Z`=Jnc+B|A!cC7YW=~BtF$fIMu7CS-(UrbD zo8T7R(|M2HY*K1^S`|BqZK=#&18={iPsS^{PT!p16Cqm{cjYoqzWK~IHg`9yG~B=Q z=s(W6%M~SF`Ma_wHL~&h@4arn*=n5_^R=?Ie5_M7)q4e49z?&K>Y}l=DnEaP`P<&q zeN%lZW>r0?a0p6Tn(HEKsQCC;>$3;K#aW*{r~ePW!}GNy_lxAyg|B4o4LoAvN@n_t z#m@O3?3%Z1TGg(I)jf8>A#zbn{OuDzY00cDk}?vC{wO>-ENJ1E{JiQHk3T+?w(|X$ zabr=UhDpWLR~hHb4UB9=-g9M7@!Ih#<C0`a*6Q~w)sOM<u}k(UtoX{d_gG4RcFnZ6 z*4y$6StA%zkBL19zI%|PV9IjUFRM1M(fw<5gX8QTmI{;e-1BP9rghB|OP8`+yLQso zH7zOu&(yM1-2BClO6DG3-hC^paaz~*RJFP#O$HiA%5T&(oiJP}`}S`1rn3C&+hYE@ zgq%$5GwOF?U*woknSGb{;e&)pfA~9_V^{vVa-;X{U-sjV9vXOD(qd&z=iIeLZRQuV zuPjY}GvjS~kNsw-dG@zpPkV<-q58Q_Z>R2$4<p+ZEDjYXINx)!=sEti%B=EA_o=mO zHYVSb{MPa{K(aV**`}!>sy}t#UzF|_e`wjIBJ+&v!GZ^s_ik)lRDSH#JdG%R-J25^ zOYK}6G+TAnbdG~bsbV|t=jq6r9@+K!@J_b*QEM;#e*E?9Jz;evXY;S$oRvQ&y2j@( z(9BQ~ZMiG<a)qGjoNF27x4uM8vnyLvpBC!7rCv+<3xD(?-#imzwv+OW(<Rg=Dqc&L zpL@{Z#Zk)*hWb}p{;pd7>f3MsF7<3a3;tL954PUjGv(9w<89qRt7fe9`x>$_ufF$x z%0{;q`ylT<9;^9UL;tuv@{-&z^Qex&2ceY-8ftlt(>^4wja$BR>P2gxv=eVarB=)j zi+t5CrSmmyn%c|%3(Z$}&b=1+IBTO-?6n}iO>vDs`1fU(TCSb>taD53(N!gCO-fk@ zs-NUpq}}cmOzPh9`RMk}!VBImoXj&69=XUz6fd;ni&u0%E)!84=Gmi^`b^<k)7PIF z9)&j53RZPC`Ej{wXImG?1bL?J$+*mw|1Tr$*lxxgi&@{9^tEEcGP&+Wcf`~b)wxX) z+)*&IzP89t`>_1qH@)R7mb!E5*^_0Syx!dP*tLTB^N){8iO(MDZn<^nqSC(8w}0r( z{Bu!h7r%(6{)NC$^G!+0-s?U$Z}0kie|}H8wy5y+b9JX;CjMcmpAxQSZ`kvv_s-hn zcHXM^=fAcrKf2&r>t25~_gQlq4>BKawT*putK+ithHkU^=WTB3r)uIB{|w9Cto-c4 zRx``Te6dDzt1J>^-}P>1vpBjwcadS9ub9*utF^ZdNv~0Ho^@FFUxxo=Z=U6QFY0aA zOXc4Zc_hasG^4~|%h#K`(hiCmUN!x=E+KRMZC@=JLBj`6*Tk93DtCxfd%6GNoH=`r zBntlNDsZyA-{7tGX0ut{EVo&&*Se}`P0>oWkKgk2<NO6rZpFK9F^&_A%U<U-?PtA7 zy16oM%QLafa~GHX+qLBU{578^{tukybm`OziAgQ_;#qgzMf4u;6%aWoFIeBSIW2VE znYKvN{rulo&C%ZM|LR27-XFrcXVZKt!=m>*e00RsqkK^vdug=&M)~Y*J`7r0HlHkG zd|9G?k$>xK&$afKO&{A%o|}38h}5!Vc3t*D`&GpbLGM!@)~hU;ruTPd(siF})ysB# zX-SQg3q4`@Fx8Xw^nT?aFHN>2)z5#+KOF3N!8rTUy?GjkZ}z6KFVFG#y*v4-`*v2Q zX>BWi9V`uVPu5D!jSbC@TEdi}$+JXgsc`sjzo@Mr;>(jaSw7{tZE~=$Q>-)UiJ-^Y zC`oP|jRhCqtC$3czT#Z|uOvk+<D=hnPL<SH1#Py;Zt@rB>xFGyacbiZHdC?ra(3pG zEQVJ&<V`ONNpwu>OyK^J!+Tr$w%V(suiRx^`b++FxgX+Zc6XAWbA4X3e{zfQ?4Ea7 zO#MnRW)_n-XWb6I<MSYRl51G&yHhvkHMMcd{s_6r^7}(b8_&;}oHx%7-T1P=-l(YJ z>V<y?F9^r1P>#GTXu9xx=<5~VtCpz?O`KTEY|DNuJNfW$w#Ceu+c#$}*tTr{Nz>M< zXqNYr=Qr+ko%Y1<WOvANw<qSw-j`fvOq5)?&bv}%OY$uH7(=zdq=z+I4K=-{JxRKp zRV}o&FJAfWf<xWfZ%^I{Y2Uj|ElZPIVXb)O{=J3nzZcm?dbs>ve9$e$pYKf1(a6Q8 zLw5NnZ_#5r7y3D)!b$Av^`*!14t-16^D??~Ns7PIP3H9vL*4C<<$k`+$tNivwfk36 z%CYk^?_Pe^+%3smzel6d`?b=m?xRQd*SFX(dOlF8$owE>qL?|g&6r!}%FU#&H#S{s zVRqZ=AL2Co`SPaF^-Cn9l6!Y~#YbrsGS6G#x-`JBio2#O?^AVxoSm!Rs@MP6CbDLq zugu=NHR`rZ#Po8(TeBADU;n>w-kS3=n^Rw2==t@cyk$Pe5(T-%{GrL+zIv?Ur`um; z_lc=8JPUXhAvj-qMgJoK+biNsx^j~%bwu|hcWgX4Rr!<Tj*K9k-pr{JRYel)X560g zZJVlXRNJDdTwAqgajIHnTd@}#=9ld`cvoU$cE%6!S%S@){>&x?ZAGS6)_#1~5_-5W zsymWB{Mw$z&+c>Vx>aZSyWe`OwEF7Ghw&`BYaf>y?zT=4b(W~LVt85FRo9m>L1(>q zXM=jvj&stMz0Vz<Eb%SARH5*1OOVvk=>;dx9JQ}||GYvq@tcf+o1a+ju|0vsn=)(` z^w{g_s}!u*9J9Z@_rz1PYeLpMx|$aZ3%UZk^W?YJzSZh=TP&NJ!u{LuhwtYZ+mFem ziSYOa?a8>hLgMH(O#wHvYq49p!ZaS-j=jP3`~FwnIZnw3jQ-jRy_KIeC9v;i!<H!p zinUrS5n5)sGr!GSr=wD2#IbORzva%xYt_55I45eaXP>!x=g%Xmadw~bq7NioyjZ$h z`u4Hcu5INre9Y!$p8LhManq)?I+9WwKCvkGn54|Sw4aw}nb3lWe|+;#I{%ZnH9<{D zNqLH7&4rSRlxr`7e?GXg%W{2SRju9J+NkmgGp4C=CV1amn~@vfsImG_>@1~%hV#C& zBsjNnSJoVQxb&RirR1UlEw7J4OU-`HJ=YNFyVvKk&U=$iKW1lH<(2LpqVE^@W;{0Z z3%|5FptRd-G1Gr{?TpX~=`S+3N%lUlT-vqpL9xrjnC*P;8Oj4@N&iWhwn4~oMfS}l zqWd_y-K^Q==8KwY_Ez!5oG5NFU(o5xZn7miYK2du#F{tNq5KgWvkb!`OMh!U7ZXVR zDm_u~{p?x26F2-hAy(NOvvg97FY~?Z?YnxlK5g5raqWS~+qij^4?puf*i$y!J0P%~ zFG%ZL;<jpwNtM%T#B&YZoC5z`?0+C|bZ4wXbkNHOj&7dyulH+S&<a?Y{J+hDGn~0v zfwkt6mw062^Z1aJSEgBhcwssJMXKv%nF^itq21>)jZgb-HV@u@;_|<s3znYFD_2KF zYOm9lT(oWH%&0GSLKkjWyXcXrm^i!0;(U$9d%4@KSi=hE)O4h<Ouzc-8G~<;Rj<?1 z;Q5NK=az&{@LId9WCn}B#?=5B6F0fDb6H9mpD)bj&=u5GHadUCNT*e6!~I<<GpB6U znR;CG>bLEBx>b{xY{@r>^ZTqfHz;P(=3U<D7q*JV8Ti=m_;PFeqwM!lWp87{cYZ6# z-L_P1UT){~a~Bsrt5~y>HSV{PBh%MI^AAdY5t;KS*@YwB?t<cRjr;s7|EOsN+4;AB z`eAK!;(pE6TLKFYO?~rq=`zkA(}dn8y)n^XU0}pMr>`M$X?kv8zj|6~WcHcIowp(i zcFbY+*t^6uBa@A9(*D%i!gjaE9lvWhXS*ePE1Wu~f2KLOD|bh`?j;Msld&z+4JP0G zEVYmA+jlpnvT6Gxwk<ffxVe)3P{5YOkFRcHyIQi<Z+?K2q?oJ?Gs`iF601LMs;9dg zryJ)aMta|P$<?Lfp=_hXwQnMKRGjbSg2?}k*F`sGnOy5QExL8()omJYKA+}(->AMq z*kblJ$3x3a&Q5gKTXC21Hpf}V&K*;Bw;aw~vHL~Dyu(S1{Oc25bDsYFi)GO=^R5+= zUzM`-{`*z#-P$o}Yg|23t(u;D?IlK!sNG@N{s%6W3w<lH|7bR4^^7a-Y;XTIZ<~?0 zQjn?C;9u+(zNF7rINr_SX^9bB{deWLZz{iTnoschc2M4A{<p?RBhNB{fN;-@D6g}7 znhxw{QqT;|c-GDFc-^DiiR;=L*H30!Xp-9S|G@JQt7&ZYojYtFZkR3jhMW7sw0Eu7 z_qu4Uoc-|6SN{)w{L|*K*DsP+W)kZCoW{i}pfP2g$HTL$G&Z|`R+#AAn4h_N;pP{+ zP1_$|DVUgT6rt77>&bOp!842hPu=Y&+jLDX?9O4^9q65^7By$y8yDq<S8-b`Dkt6h z>6Ll;^?r@qe-pzlTnKo4xjOFm)7i$x`G3yOk6WK0(G~c)L#+IO+&{K&7u>&iJiexI zbOuk+H_=}<?NwO^ZtG<hw5_`GxT5(^YKg-;qpo{X9t%i1@9JFhBKsmk-Qyg|^8rzd z?<SPLWY}ApmF4C5$*=pS=86-q`6q9iX<q;HmYkGcYi93)zls(A#Md`Jk58;LeWSa0 zM~GDO-`a#m=KJAioVu=gzAlrinU=s|UDGbrx8$5tlaR*52mR~!Hy2i(Kk)uqh^eiw z_NC9em7SHFx#r%^+8}8fl3VVyMQwNXg1{Ve=ew%|Y94)Fsz28%_}8obt5{8YpLK4H zxBmL*+R2-j<72sX9lF96bDgzLcprCYZ}x;0FB!|{nid~9y`<4Vz~s-Nn^$*KZz$e# z#lGUetX~3;c4~f@v~=6<X;&l^cHgyHAR(pGqoHvwwQ<?>t~D?Hq7GU|$J=~0y&>sg zcjLHz!`F1b#@_kqU$bU4efxcD{k(atM!z03F?l`7_iWoWdq&Is_YL>!oA=lE%xI~4 zXqd(S^Zb{GS-Gz{_&+cQ+>Sf6s-f)3$MPk)`ldP;w>>Srze#z~%sulT>asOYP1ebp zd_L*x%!q)hijy068GH?hyxa6Y?%&#w{a+;d(>LXEf9~3{s8DlSh5a$1_s1h1J&MfJ z-m>|K@t1Ad8;=~lskB{G^-*_v_lNiLlHN9V>z+K_{eE|WxACt%<?p6F+k9~1?Q1=9 zGTm(Md9lV-89H84-~T=co~=Ib&%uXEzihrW_vczz&duNd@<to4|JeiQ)hFui{}4VY z(B)x8_Hn7Ri)Jdn)fZ|CGiKivUy|1-9IIFUQ^>8xeU|U+@<sd4h<%(tp-@|U=cgdw zlLnK#*IBCkcJ*+}{TAi2KJs(;6vn0lUXHy^+72hbNlY;lldSdXopq}uruj+i2F|Ew zw^e+ZOtKZ`ZV>KU;;vY0-RV3@r29$lb7|)ft|`w?u&0^E<zF*o-&DEHRX|g1=hXA( z8m}3jQEB{CHjzL0gp%O&?-2(b9^T6ln!iYM+WEu_p6T5mbhJ<HasB5}aqCf@cF{@I znpLR+i+m(+yRSTAaH9WGR^Q$^S39ewHa#slV6$Q8#f-J`d2jBRhAdAsxiD*SsMGDX z*}JdXZct5qZ@c4T?54P*D_=GpOiY;CbUW+Yt)4gUZ*5=y?z8JB&)w#aQWuD|YM0B( ze~DIBX8$$2>|TZU|Lu{=$Nc2<r>?lISZgLcf69x?9(>PAS6_DxFLw`L-&YpQq5k_A zcgwvSiElP+JHwbAXS+vl=Y#K;4@a*pK2X+nPjTt&<<B<nnewDZd{fXZE|ZBHdmGNn z9b5jo>-C?LtxEeC4xQZQc=4{{^J&W;6_x$Gx=PJ(Mun<agxw|~+p~FHyY{|)wqE9i z^^S$E+`h?M?p-wTm3i@c-@5DZyPtiVXuU;-TfA^i+OFTn4tCh?wYs~lc!lHH4HwG7 zR-DOw{q3ol{U*zYZ|_{1b$h>B>GvPW=3Bbu`rXpYy4|FY|2Py^|NPgnGsot{pS*q6 zZN~|&CuXTh&655KVhbwUPjoij6XA-Ol+FLW{Eo%NMXE2`I{y}2`7M5>i_LY$ibieM zo~U}Wmye%&q?s)W5a_g=v`^t!<^5?(nAi2{KL6qQwd|;hBD1H&rU;pdmd$QgSyw9d zN6phe<-67>sAbDtv8c~sbMC+FGMTphv%rKxK?Xb5=8GSaSu%6KN=}{r+=NY*d8;V* zz2(09TGRvHU;95p*xP)<QkEY-8|=SWF$KBKmfp|DdM4?U#ax@KM;E2&iXN}~P|?6u z8!&0pTh2X?9n=G-sH~Cv^C)JE;;jXxXC^YIbFMAt6VTtb?b1xk3uW8NHt)~~nR=I9 z%<y`2;Ok=78+*jI&ey$`=VmRY$8~X1ZQr^x(d&=&i7$L5sI_xT(86!u?tVS=^``CP z%*nIdI-f6mch`C6>|;Xz9^SrI9W-&l#muieJj_>Lzo3@9@@_bX+>blGz0dQ0{b>|C zmt*Q$v!^$GtzY-{@5c__Nm)L7k?1#plhu2*7GIX=ndYal;!L0WgnRp|6X*RBeXA<f zQTM27jcu}QamxEO*Yd8Lots!I&XHTRaA_;wq2spMcdpp7pLr^oFj3>_4e8rV>>@cm z8xlHiE-Do6y`}HR>0O=~e&WJWZwIz1r@i`5sYdVjdS73c_UPQnm<WSq$MXI^`gg)3 z+$(_5?ewa{H$!`a`PcRbe|r}y{ra2SZ6V9t+?#h~r6f<>to@n$bKTpyc^__;&fl49 zU={M`hxoE<HBaN^cJG^eRhmWIWOl{WdDr{zeO|hD&h1mF<@Ve5CP$Y$q<@rn_w(01 zm%p#>uDJEz%46yLM|(3ayUgDbf785EB~#g_z%u{z>bo%qa+~x^pQUaR_nTF@Nn9^p z`u2+-skfKSJ1yGe={N1^jz=;%8Qt-Ex6CfuPG8+IHP)=v%==oX>sE)eO?z);SZz%) z%HZB!G`FVhSLX4v@pr24ZZ?+Pc(L~H+sT#jf8Q<t{^rk<luOr5ubLUy%KW{0aId*+ zNs4*Nn|t#7Ut;f1zdi4>&7TLy<(QOTzq>!DqxZhqwT<b2H{8Fxy()Xz^J`~&SAMLW zJ2N+%d)|QyyK<lOZM802*Zrj=<!<lym^wYnIq$zzTJK`dE`M{kd*W`+EWWJIR*Poe z=v{g$w0{Yg=>F}FE3M>DPXAMv%ElS08+8Af@u^o6)t=`j%>4A+JHS)>qCvA!=<d+W zqee^bY>ZhZa=Jb8^QBAQQuh^SoeSCj>_qso<ki)$d$U*<hi<%h&h({hf4<*@Z|f$0 zE&bh>-)ADazv9EU^Y41*efs|9M7i%)>)f@`yWHn7*vEa|nl69;^15feZqu1vJt~y# zYrczbFVYLVzU%qNk6+K<xwZdi@&CFP^Ma3t+`aK`*)~~Q#XakE9Xx*>EV5qBe><}F z#<@)%Wz$k!txpGS+pJSReXi@@1^a#+y8FGZGJH+meeUx6pP$~{c==kN^zrt*7e$e` zKQ5nbB9dyIegFH!xnJ|k^KB{>uJ8JOviFnvl?Czb&JQD9dCrMGp2XHW@tckM4p!b8 z!LY@O8&uWKFb3busuZ3T^E8QrM=jsvNun^@)<~0}H~Dc<c?(Q_g&7<yxM%)VXYn;n z{ru1@Qy%82HW&0a9_I;bzM7p-xBSxP68%+k9DnbZe8c3uubbDnJ3-XsO!=v{o9yMA znq<%N7UX)`GVi>k<?1k@wCwWF5QcpnUt}tOuW|D+obczSc=onWFSU02$XyC`lgx=| zj+&=^Xqit{r==SIOVON-A4D_WbuYVNY{Kokam&3knwqA|S+6ZT`}I%XYpZqAc^589 zO$+PZd6vC+w%nbN?ANwiD(B@iO*>L#tg}72w7#HZv-vCM-CJ+fCK)7j^NH`CUH*Qm zuYp4hzwU<Q32f4*#UgAir(9nfB^)=Ee|?nbx!@`b|97oo5wkC-bx7tk@~&GM`=RRP z!L^Uvw;lL!vsv;aQ}pAtu^NxKb>`ZvPisv5=g9mf;`ze$cdnRj-Z(Yba7x_qW!Gh1 zyuEkzb^rREwO=@vh~IkLJ@??V@XHmuN{^rTul~;Gz#WZsu6M5nWoPEzz4g8Jdd74& zDNo~9H@|<(k-PnPqpjTS$G#OgIXrBSS)~t6dm!*Y=+h@BrzErEedaS9cFb^?^xo-& zc#-1m)8AEF9?br|PetFn@rTogGpn<<rkOlu{e5@O_nd(3UZF*+e}&B5f6lU2%W=^S z8#%=(&)dq)`tR)(dUQQwU*#(Mnu?zjdnJ3Xu9~n~S8DsoXIm|$r>SL!pE*2za^ytL zk}J372<#J4(_I_v^)zpLrrf@km5pmN^fsKIwC8@&m#tOv_La!gHu5XhPVAd%7tGRI zW0$1G5r6XZA@S&bC(-lMPMIoJtFE8Dw_<;&w!FwnnVfCUyX~hONad;0<NGsl{kHbp zz8StB6_(DelsO}E;Jety>7mQFNqsen>kl~P*4kyaGre!GnM3Udj?;15^-}a*zRIR6 zUS0iVtA3MBSo2ebFh{lZlCdmbLn;|VjwYlhD2wg$n>xpGh0Hwtjc@f*f4(xk@YLa+ z<_@I}+e>8+QdR~?`30Z&t2Bw@WWw)feb3%93*J9)Z{n|~abibaT|DK!cFx8fR>{Hc z%U}8B{(2SSmwDlI%9e>?voa<g%-Ud@`zk9Uc#EfalSJe4>-V@*6Sc2!>pSv!C(7RV ze!BLGX?5R4%@6lJ>Iv*x$)VQ0U?)eA>jS-}M<(~qtXP`1`O7tv8<W`XW=`;K4v;!< zbJfqCZzVPy_H*}tu6^pI#k}_T=A%m-tZaW9Iv+B>bSFp0t>SdR^&-wItzmm*xz<K~ z)%(51_H_B1NG8@kr>Qch&rVAyp1QrMQulg8WmERSJ<}H)x@)+he9b*)O=a&qyIp55 zAHH(pp%Vv(YEtL+ZRVXtPe1nb?p6MH);+AE|8<t)i_)!57qr*u8LgJqdC<8u{^n+Z zFCt!@J_{#pUg3Van$PC!!h5!lcbfX<wN$b9=kpzBGjq5k-SYh*>$ERM5!MeLP0bGE zu<bQl+n|1;VEVjgUYDj$3R$WWs_CheEzesudCt}KlkX<U-aF?fu=+}8Xw&D_-Z$Pn z-I#e|D%;liTQh#$yiot{PG4F3yklQ`1OwIoC~7Qas&f1@Gxc>!pv{hBOjVn6oYx7M zp4r!6o_yoY?d204&TyZ&BlqFXI-%z~YV@ApIP$<(<J&Bk`xix;<8OuRe6j45t9haL z-IgPh)B;(IX0B5|Bv2PEejxv<-<@vrw)DyhyZMZhOmvR?b(9vqCfsJwePZqP?h~To zpO^OhaY{UXaqa8>zqifVUmcyD$Yb=$YTCr?0FLb6A=}?SpY|qTmkF!p&J7DiO19<Y zXs%ni{ch!t1Bw@nYcfoPWcDnbzW7Pw##_^7Pj~jZ7v{50?%kHnQ}(Fc5HeQq)4Osr z=(k>-?xnjC?>Crkn6pQ;@0X*6zFey1&ZRlxQ72BGO}EKNYFXSP$S%1ev-MzB#JX8x z&l@Grb~$eA+>(+$p{%u6%&7S4oQlYtxDBgi{tL~pS=GmT=bOosXUkSZv7GdFVe4l8 zxb?g4`h%DGd#CT)aA^9CPhX|k^W>9jzHp{ruGm<plW%r_b>{ZfJLUcq{J3dkx%w)f z=`DqsL0Y@M)hC}3JDtC$zTk=X?%NNVp59x(&9SJ@b^02AQMFmNLTg1|p6)Hk`IlvA zogPtkZo?ZL{rBY>``^^He>zpy{^|9t_Y=Oa-X%SM=B|gGK~~%U&V2i#;?8}$iP<+V zy!o=#|H(zc>+*jtPMmk_aQ>b85AOV54BG2|Tv(^y|GPL^PO|y9L)~d*je{rO9DfjA zBme9{nVz$m*VRn+?8P}Yxq9zcm45uKF-`RD(cqwzML9OXM#aA~Tldwoa;v6iUvG$? zn6*1D{c=a0d*%|Be*Z4JNh?a!mfmyY{<<byO7q#rW);27FEV6xpVoV7=>1;)@N2Il z6W>SS2*%l~1U}rV{QX2$^moduolC+5X1W|Z`NgyB^K+Kz4<CLyc2Y!HZ)&u{<&<9{ z+qp}cPTwzBnQ2s9dU=Uh+!7D9T@~A7l!XPB1bv%4?WyNhy*o0VeB#bYUmmcW6Ti5% zHv6*jc7C>=-rZq#oOMf=+|F1Wq|;!sY@<}krtMM7+^S{H)%4zbVzNk9KP4;5EmC*Z ztao2aSAMmAANkEx{>^03fO|GNg7T{b3cm>{rAg$ncG@>t{E=I9)AOx+D(4<6ZeupS zHhU+9KXTlMCbxWB+*P5sB;iB+vIPHiUvAtw^Xl9VCasW_E<!m`q4T2yH{6Og+kUrW znomuTn%2^3qH|Xz1e@&KW7-oWv4C%>(FW(=d2$>Pmu(*&s+cUzVqM1Hra4#8_Q%?7 z(h3hG7W@87$UdSlLHdeU^BjX?QOw_b9P&$~ICnZOy%1p3dUZ{islSQJG_!V3Il-JL zM)$4d--PeYtuc4mFOlBdV<~bu;ag9?!iE<n6|({}YM0$$t-IkExFnf5^4>C?RcoA8 z_AoR{av2r8aay@*)xIF{MFpyA-(Sh(9E}v%7rgSvrhwebi_}@uvmPAkcF=Y!=y%BF zj+`sF`pxMA3(mBCP3LX6wl(ZI{4?*U=N~=C$S+=-<J6C{s}xO=Ef>!h3u4>z|53gG z@A|oa<85r0JX}^3Rw%N%w4|@CI92MLA9L5lYbJa6TNkD6-RCuL9mAm<=2a>A75k5v zDSqL8l2NyBKM!-YzNy<H!;?$@JbxKoZf7PWoym8arKW73LT%~algkQ^mHm%(+ke{a z<rO#OAIx5L2gSXQ8e6AWEq1jmONo{0(b-+BqqXqrk`}X78gpYjvNNm8JS%FZxPSO! z_91t(=MlY&p^s+TGsrP4RK2~>CujCw;e6pay+Q%{(@uq*w7GR;_GYhDlA>yBZRI;x zaLn#4j1TZNs(-w!MsMmzrNc|~f~xl&2@T(=KP6-`%jfNux(BxIOuM|KoN-g0*P7~t zHO0pR&beM(xa}<envG`9oThMyPf)rfn9udickAu~-(@>bZ?E~k;Qh?4(z;)NPB}J9 z(qri_p(=wr#TCBC0%h*jg@^xs{_cjIh_IK)6vuw2r5>6yqj#@&UA6S&iwEoeZR|~o z(vB~G-f(&5d*`r|c{jXgC+aJPy<PXFR^o8sHLcF@NY%~ykEB+p%`VVgvN<QX*6NwK zz`}B#$#35m+&%Ve@~)oDpxBkU9D9R}e1zV<KlAn0A)TP`jsDY0Gfis>ZMW|%yS!Lf znBVV6&Y4+m98ql_Zq#PG@#}NH40f($>$)!e__c7X;asb2D)t-C<elg-Gu7>NR*+hm zA2;zDgXiOEdi$4`?h$zTJ|U;gYT0hJ-RrcUWJ;ZG+coP`TJgeM&L6=W!ykLzT+=yA z%DLhx&(pKVlHI)3rW)PeTsL=TTdh#4z_%3sHz!4|g`Lwayu=nBw8~h*HPKZi|5Srp z@|jwROsn^0+{%-WaUVMRc;l&*m93@9JNdoeE&HsxZP$g0g(`dQL_E=#>*n^I7WyXC z@4!{%@22_x4*g1qZ}!&{cu=G0*|E2D@5Xo1yKHut-M;cNvM}L<xU{{|Ju}mg4;TES zU;h$bd2dQ$QuEe*6Ar!Znr~Th`O}sui&U04X<n9iS|h1@x<@`^x}#z@&%3PGJCYZj z3yawH_}#6}^E|s^e(t-l$}_03Ecs1)?G~1Af}fJiLzIfL7Dn7G<W-(FOYg$udH-Wr z;(Df-#cEuf-16LB|8UG7ZKLax9^7z_j@r(9z53;WQ|;UGe*MXKF#Fi8##>4CA(>wM zDP7EhQsMW${hFv+aC7@}ZsqF#Pftu*_d9NX`SZuGm3Wu7Pd}KvW8W8pIobBy>|VT2 z)^TiGlC(L*E`MpJkA9%$a>mbdvYi|LO;DD6qFmP-s(!+EO;XGXHs@&xvW$Np%Ipr= z+5KE++DYvwootScE(IT1oth>^dUwR{ch6o@V`9x9$asB;*WOUgibxLo+z=@dr-g?W zgh**9{@ZSS#3AwW#i-Vnil*bw7rINf%zx98l~N|=?AIx>N1W+i|4|M511u_2IaEX$ z-|HGqdVc54@jaK8*4YMZ)Ty0&b>&3vKNq&Xyuxv1<--3>e!91(d1)PW+<0o?<=Y{L zW-e-R@)zu6O<3=cxpt%FqOhNiGt<(f=2r@>VR3AKy!MpX!hAul&2hOGvzPv8Y0=Z3 z***Jh#rLD-6YdIST`t&acGfvp%7^vl+^L&Wb7v)Q&0O-(cKPIvHP`EZWZp8Fq@5j{ zez;n78|T9RA7*WR`Lw2bjn&f}uZMql``7BO$>jFBz}%E^UMf8?H90SI^6gtDHxs+r zV>}kVy0|Pp$?W#)Gcz_G-T&*vEC~s@oyDmk>%zL1ZV6m_;Z#f33XLG<n;Fq(4m|(7 zrObd=R4Zib7EjH2KZX0+e{J7<{#ik?_{-pLnHMK3uJEr+pTNrbD!3;w;nJJm6FDCK z6?k>&v*^--PPtImP4As;y;kgz-(>aW&mOZKY_rcF`tfh)M!C4Z2P&?AJGjQ#@#ida z*~r(KXDgO6F*!UG;ClP=+pK-LZ_DC7teZG>`_~)$*YTBK-S&=WRu=oEnfrE#@hooX zS@-CaY`fL$_qHXEFD>y{HDQ9$)R5E=4izKMyGI)NoDFuBgx4=IPW>jS_D-s#nrp8| zJ>P-2m#upr9eNaz>{`!uP-oeZI~ng2HlIlgJG6h%k!}lqzY^9t$1f~$Q55Fg#cFfk zde_NE{+06=*=uht-B<3l%QNoda@BiEe>Hck`6Uu_clY(*f2W7vv7fiWbWPTZxBj!8 zPQR0qwl#QhyU6+Qt3_|w7q1Rqd&Ol}w!7P#Wp6y}?h0SepLuH+YewIn$%`{<i*pw2 zy|-k2_M4R_*T3ediavHpx%}9f)@gPhekbMYC;PfNTfINhb1Zavhh*tRmwPvDFPzV8 zVDsy8J9Vu~<yL59-&JMFNxx^^E4OOB`Pp>xug{0F1gpNkweqW*<NJQ|xjk=w2Ay3J zP`_`H*!sJ@$K&4|%U-~=Hd=lbN6E9jQzXPa9vB&3mX+VJ@i6O^l}X_RXaB{yS6qF5 ztt?mmoW)cBnF;l&zaL43Zn3^?)_UFaZu#+b6I&wuPV$Itb#(O5jLdu67{(Gi@!{Ou zx$KcIXIaU_vwvN<{K9koa<#MTypD)GblA{ZIyKe3*?r-R8y{Y1_L%rFf11Md_NL1` z6*r5uKW^=Q`ht=5*B2j8!<Ij<o~#sFQ=nSi^6b)rm5=sK&%0k;R=%z7e)+fieErLt zyvs^;_b)vy_~QP}y>F)FvDbZg$lteCvhvrVaQVFjNoP+Oi_1-ytNfd=@B6&zWd+B* zu81r=EEBQGCf}-Hmf-7*&X6QIm1&Ct9+=<!t2*Jjn^xitCo{Pp@<KYQqMvWeP5Q7T zZ0;o9X-%&g8z#L8O<J08-Yj8zXpW%v^ISppdDAc4+_lM4>Ci0Ywh5Mp>Vphoa{D6Q z%&gvbheJ|TX-;5LhpE>O|EUS5vlbtDdZ%PnHpfh-x?MS{DX$(soo&2DGN>+ZkFwXH z`#ukt4ChMUytd)j=G98Kz8yB-)9F5O^*Zm&u+G*gp{uvODlu~Cv#mJoqH$$*u~jXf zVD7~erCa8F+R^)RV|29iH#y6FkC!K@PUoJoo&8(T)cty;oux@zPQ|My{w=L{4Qo@> ztvTKKbnCCzDyj8%<0Fla3Vgcm`HbbeeD2B{!P_6-l<mDe{pv-fCiThQL4R-G(s~$F zt@Ur$%AEx(x5j!(rmqZGI^EZF-JW#27_J=29p%Y!xm!=CX05)Kx=FWhS`f$FGoN_6 zrWLWtyf`R5({E*f)tzN8KCJup>nwAr&>Rn*>5G@zJ^RdQ>K!`ybBOBdfUEcYvm@hW z-(>VnV>`JtoMrXp)cUzC6Q``oitk&y>XU4&VOrPvuzh+#o9nDE9{pTw7`$FM%l*i! zuG>%6uMW{j%TlcnlKFBwtuFSam!Jj96xZdOX8M}^Q;az@{qVB7hX?AbHqM^BNw-Dj z($#leYaea3+~sxVrdF0j;gW~zIi|9G;dXt^)o^s%M5hD4w7DagPh@Won73~BMwZWF z+-7yFcBFcS^d0JWxW?(%Z1XMgs!d(nZrWCfIJ3^X@#{#4?9$7gOSCr6G73<d8~Hxx z-leM>cHKLcet3ll-|mQ$Rqy2v7BXBCE_Y^n{%A!3<9nI5jyc^DP4D-2C+4`Ek*~O1 zuw_xljHNkutX_Zqv!LxK_oa5{56`>(xx~LoU7F!_?c`6#lPCYQhR$(5F-6}lR48uU z;(zjP2OjA2$X5UP*UQSeG%%`1N?0{PIboj6;xigd&-OW*F+J=2UiR*Pm?hJ)4cl(o z$}=)oJGHhpw7lg!yr|{zJg-9^4NjT9akSfPu)<5V@6)H%fpI#fMVTwVzIfwm(=%<+ zQ<G(7=bolL|Mc_r&L<HcepG*1(k%Uy>%ifj8CwoZA4;&9vS_y8;=Qv@s;cyDteh>9 zv#S1@Z&}~hnMo>cZP`Ald*7|R^jhP%!0W?KD_d8Thlf6IN|%icjXdoudi4EIlcW6k zV*9<`f3CFexc6ag^L9H+$*!sUN*|b2{F!z~MC;43X?ZKJM@gHPq)fl|`)ksld+q<r zir#Kou5a`20_(SmoVUrlr>F7!{a(NP%TIH@CwI=S&fg=v+U2vuUwOu$Z+biKhCSHE zuw8P8&w*T)JZ6W?))IvS_heO1Z4pWSzSPlNh0Wl~&xnT8GSUxr*&KMP%v}&G_aMlU zb(v!9iM3T%JoFvc3(fj$e@OXt{}Rjp$)P_jzli2==^5sHwBXIylA%AZjF)Xirox&P zHCytYUrO5BX(pRyF3(rnU#!#=`Z@FQPS@IxIh=K^47JDieA|C#(?5B+jw8Q+9!{|o z=ybYp_&M{AL!y8FGKzE@IjXqv$!Du-|CGikflW;ftQBh;X0BslF>vU1Yo7M?b=KRQ zWjZ!C?H*69gT6EElb<|gcR*7a|D*+TdDltKolre(@$xR~GSOEj|NmCls`23E`_pFE zHP62M7xMSkxg8=mSqhw%oL_%qmVWb<*x>v}Cs#L5xvv=%Wy+<idVNQ1mDrNJ>IX-9 zbv!nTwb*}>b5UWvb=oRVq-=|1=@*TT?u77T7q<wfS6la0S=;q4mlRqUHb0KFN^;80 zv)rpI0@Joz{t^nDs`Dzxd-B}7PP=Vn6lS%a-?Z|KLD}pgi`^$IH%>2B_Uy~s&UMeG zQtqww<n#;ET|PI+irx93QT=p1^M@NO898}7w?F^$Ug!NnUAHNvpZAqdnV`V0vgh^D z{Xct(|HmtBD`@nX8f|qn#671`I^4!!=EaDdBD0j!Io}<aVrHGtNngcL;Cih8(bK;< zC#EqeZRhgxO8KGI$I$w+?#cT8vvp^FUpHc8`sOL8_PmoJU*bnr!)^9EaSsfc*K_W; z@$&Lwb~)J(S&iY$d$JxZWe^cEXS`D*V8mFa7dq|vr43>H{#(krZm(Ri$N6IZJa=n} znaYA$Ro{e<F=Yp2+z9qqrZGikl9Sg2r~dtc`j1SW9scoj<`jNW38`;2CT~1{7|xgP zj+6D>X;Z1Fx4vA%ak1>72ZeP{^nZQsXN|bGf6)QsQp=xTj{fHie^{{Bh3lX{$JDLI zUUfvTWY0W%Cj2zR?z<1?{w!9tRB3pTcy;xJ`02}C_@@a?NV5OAkNf}k?wv(%Zpv5o zJ2d4Uu+u!hav#r!tDB@}f4E`!b?2ukvmQP>%hQ!L@j&9#O2%(1<?pH3>wH~o_+q-g zr;qA4^$JezU4mjI$~tczY+G<Jx02D{>Bnzd@tERwI$Y}#LoR2`7Uudg#o1Ef>$N9# z8>|_*!lGGDuRe80oau`H&Wk^9t=fK?d25aIh1wb2)vFU<OfvrN$XR@-@KoJxRe`g4 zeIGJq{=U4JzqRXiXB~5Y{;yjheP%D72Hje*B=E=VqZ#=(EyVws@n4AfA^jv(?;r1{ zPp@_Ciwh$@{N>-csr_01p2afu|D~(tLmN3bgcJ_2Gs<yPHBM*I&G5K+@oi3{@b)!E z>Ct(;&ATenYl`QHcQIR39=^(@HvP8YldP2XXiJG#JiFp6O`H!et8|g|y7Fh4&5E<z zpQ?YhDVKY){G)(!e^o>K&+fZ=YyK*9T!=lg&^rBn67%y5|Ed;-#=MDH^o#FM^$CqP z0xtq{_)>l=aDQE7xnln+!#7z6Ew@g+G3SCqa&J^mQnAXvUk9I<9(h)Bzkk0$%^U6S zxu?7}mR?G`BK5SzX{CeV+iekbpZ+cMRw};qvs27p;_hm`Kc;`CAKCxV$&T^oQ|}E& zTK6;NDb=xiv&49s{}bCcajo(bFR8@UqB)%%+8-a}KS=M4KP+Szeu?WfkMRB$Rh95f zLep%HZJTta_H*`+#W|fl+L?{2?Kg!i!;KD1J{<OTgUi9GJ&$7(<|bI{1Qw~DPCO|Q zy~s)RjhAY}f1&q@k9(he`Y|W%^N%@Bl{ImpZwmK%z1geMe}1*<QMp53vpDNQ8mrGQ zE!clxMf?9t<`utBT)O>h??1+pm`A^x3~vQZ&fs0;vvFF$BGn~-&fRd1esxJ&KF;{p zhiNfykF}fg_?kx7$j+8}c=65K8%NSiXZAME{&4Qp<O%nW$vpTWd2NX~Z^-hq+Xc24 z`a4ZKTXkphgjL3>-xlvwSL|GURPwG$(5!$Wp@)ZyR6A`f4vAL?oe0Zn?y=Vu5e{JQ zZvC;YPSJ1C@pCCEhO9p<9L}FUr2S^z+N0)&?AGeu_Sw%{{iS(xqWg_T)#V@6+C*O0 zy}PgMyZ6-YtuhJm8y{}0)&BgtF0M)bbI|%}39Uw3H(%F|5OFLy+EAstFHmbfr&k8& zLE)1p^wnO?Rhj(#$>B1=c%28FQx4X&@87ZPpjx-i>pM)pmUOY}gzXFQ4vrGltyH;o z{K~7vtXso$172vX^~}6*;_c0S8&;RTTsDn2$8W!zhN<=g{Wq&!cv}zpOGHL5->v&P zFS|IsvgokM5AEb5PhuV2vfpsb`?2w>dDxvS)ui<%?=IF&7uE=qZF!|9Y?|_F6Py1O z1MSqKTWxNvG5qGWvXFn_-*<Bk6dKpZzA@VPd26@hnr&MDlKT!_ShvQe#x>*QxosK# z$NF-zmxLtvo3K~0ef`)M(ca<mOgZR=)s{U0@AZz!7CdbJ%#rE4@9^yntL|O8{yN`x zrs>V6th=WyYZYqsTWP9&wL~$w^Ok0#%%&YtS{bL@vqG(=-ct%bbtGtRRG#0~cB^Z_ z7UzZ1Z~T3f{3CKt>O^^Ao9K-@?l%6J@#}=PO#L0Fdu68f%jR|M30k#k7f0wiUAKAD zkDT{P-R&x3&B0=P-^G%<z)6EatRnp`+vfWUcXcP8pL5*)pG&$){l-ZLpLN&#_$|WL zJB#H!cgqGJ4Y4yn-aha)ev`FF)a$H4T+0-ru+9ng5uKb&`G#CR@BXBJ$$51CkooKQ znc@>&PtFRld~UxuUFh&ud+pYIwJ+;Kx?MENY7IZc*y+_+*lgK+_UeppUO#K(PUWkc zuyh5+C%dfY+p4}-b8*nZOHFepT>DXU^UVJM*DtxVqvjT-ExM^X>9Pu^c#+XmpA`Y8 zM9)R-w@sVeJtgYG>fr7tRy&W@v9WLa6SU-U_#wLrp1wI8$ELhptzJ7b^TS%>C2{_4 z%MWt8wNH%b@_JbB*LdY)!i0i(i@%G+t$WoQYAyCtyLshf)rg5@^RzEkcN{t${-Xbs z$-)06^{W47>|TAva8IwH=h~I3w|AFbTo9|}R6Os*gTBa3-jk{l<j-zjt0^Hr;db!7 zg7u+K&sEf9E?1fqdHLP>HM@7)Z%cf8$&FuelGj$LC}m|ArG?82BV%$4jkRCR&7AJF zK2LV-)y#)ka;`sFKDZ~Yzp+7TO~YIL*NXZ-)Z7xwKKQnoc<H!t{S$4CXHj2RbgE%; zPo#*~2Lth^hyK4|T9-V_wrh@V`}t=M?<DxYURx#m;=i_CKZkU7%yF+-wtMbu6v|(B zT#J8F!A@=QUD{i3WtBf=%2)mOBHZr!maVt<C+$>!9BLhHwr$HA?Wk(2>FcVNEj(eO zA;WoIulZE?`|nHUhNS2FtKX<%_A<G(PtSpUQKY+X`K_#;?QGrIcN@1ZunZFB&WJ73 zo;tVk<bz_%P_5m!mwO*woWqxSBf32?U(qinzH>#JQHxULrw=U`e~I+;9!!@!AmiSz zFmLtE#r2Up0$NrjRfhOItN8ixaPiVvwoZRft3Ff}IugI-N^DMP?}t^v-(;uV3i=y- z_nOZUMZph+ogoPvDYi2kr%ZIOJnZRx`&QG*%R6~HXME&X_if4Dd0V^{%a`m~I4}N) z+VSaTyB^+}uCkP?Ggy1#B)K#d#bv2V;g2_^r0ubt5L;fpuFxd=!mmkb?x&Vs+8Fj{ z?vLaL5>plywXqo2OUWc1$yyn?-cIq6_r{D*XS?&&w0CAoTv{`ImH!kMo<AP)zEbyj z_RgF$U-9(G4bMN%nkszzp!grds84N2A8y#E7<fX}ev6gNH1j1_1iL@#1}Q1tH;U?+ zCcn^Rll`Ux*;4Z@8LvHjAM&Yc!5Zb?H`XY#2V4{U@Fug@w@5;JpV|DfCn8!G#N)No z%bjk9XrEjowoF#?{By2Iy9qB$xq6*?c3;wqdg*7`;IVA+R5nfi`nvDO%VmE3mfO;F z<R{Di#QO)Gb#>eM-|0V^5cj}}J??H%MQQSzt4p;a-M?*&bboNbIntePPME~WPfr(a zQP%lA*Gcv1>(6JN%X+3}P3&5G&e~{M$<nzt8=bVTzf#>(6B{dcd})>F+Ns<P#&5%F zw?Dmbu$K43se&yB_I_P_xV&bMbgm+!s7~CS`VR(EKEHWW|3LbK`?H%<0#_ModrCGu zY)RVB+xJWOh-|=$hYsybe^1?BUyxI^Xvq!#9ez_Dv|pEE?9VUQmizX_ohvEDTXNpU zY?^9#&)+i3cHNZbpo8}x`rk@fu($kvmrKgcw}0nWy9aO8&VPGG?{wsun+tPJpW1S4 zmVA?~)cn5^GKb__a%QdF@RGAF<>43M&vlO;Fd3zKv@DxH<p%${Sqqc<y!ksbCcC9B ziqw0`yrL-nNq4H0S8{-WiPx--#dqfZzp4JD^QwuC`p?@8d<-HCN0zc$R7xb)UrRbH zs#p8l^2pLemSr_<LcvxGtRLRj-|YCbxT&1sYi`rqJ6h_-N>_wcBRZ#B1vZsF<G5OE z+mbb9qVek`TvLSHm3Cg9yx~-q^0_VNIl{eI`X~Ip)T?)6vzpa~nUTyoMUl618d_Eb zWlZ7vxOQF0l4B3N1GHEow?z4_oEj9oNcDk++4r{JkxsnMHy1w0mpxz?uXyEh&zi;8 z?@lZ(FWFISGsXCm?6E%2%P$#3nK!1-%4HO&IJGQbMXuSR%Kg5)SI!qbIw}-0<=11r zAMr;oZ`U{_TjyQ;X67W_4<Rc*@wWWB*~Kw!f5JuQsz0kE__D>z?(MlNAf)~D{fwLf zv0%AY2OY7Q&8-Wx^MW;Mc};ztHqEiwym7B~Xu2n>4wK!Hr~}F#<++>9t!EgnjPYE( z-)_O*vK`u~f~PZ2C75W6Zkc0bkumqShO@PVMu<?I(VMOyE!Ox|le|TO1XnIfZ420Y zd=f{5OU>f>y&9qC>w2y~o}YTM^smj%d!dTg|MmpEHomE(@QKHL$?p@*pFiw+yeY8a z{FGI%;*|HUTJ>UT`-`n{S}(<%s$AnbXWmybH+aC!TL0i=sovh3=?c3&Z_0m=|8siF z#XZbFuT*|WWtTtaHzmw-Vgh%3gx@Nw&ED)$>2*y{G#Q_Iw$`(qo|c@xzxU|Df1BS) zmG@pT;Z^nS_q;fxQb;dULqq;J^Y+_Y9Dbj<^QC3WyFOQ$Y+u{RrmxHwA1^)dw&mN* zoj+f#iZtEBZ4kD*At|)+-C3UvhDmLc859LNO7F$onD!~l+Df_9Dr#X+b7H5D*4&>S zqD#3}OU=z++E!$?(Z}u8mkDvKL9HQaTv0-r6P<W_w4(Ai&UnXsK;ZR(h}|FRA0%2V z5?DC(al5VO79Yi}Q9}3Lq$kQx$WV~|`kV6<-y8o!npWJK{Nva0KRa<)-a4x3tLQiN zi*x4I{^F`NNax<Av%6~bMbkGqQNbCK>$gW(=f|$(tJDn=F>1V4#hARuas|`2eFc9L zg39B!BxIXtuSwjjnlfp>u$)$v)8E}z)$ix5P;L?8^bO3?jMor}2woev^wzX@UCUpG zbh(6wEZ@=|kTRG3n>*7t_O3PA>z?f7X*xVZs<`>EhSA-?J|F)*9P?Z!mOhYJta4bg z=@a99bDrP1y$e2Ogg%dH3{GTjelM+hxNgzMjL`R2bYIQUo}}efy;nhFubBUh+1Iw4 ztWA9*m47X@*K+EzKd+u0n;MzyzOeMgepjxY6}uLEo1rnQNNujw{$8=!!vB_iF|5x% zw1(Hvu~_HDQW3NGBad{B>HG>fH}%!#8*GgCMR|7QBr>lwoRJn69@*=*GbDeLX69-? zxhA0}O}1(6wqh+pA#uMYoGw4OA?c%a^pZzY37_<l?~Bun8(Cgz>RWT#Z;fbJb@J*Q z>!_xydp9okinDlVw>6^fz|!EiPOl%S-dy%}TVM3F*};yRMb^b0sS3X$m&dcJpgQ08 zZ$QxV92tGH^()Qq``>g*OTMsZg2bP&Y~zT#r4`P88WT@t?7ZvX<)L9}xAfMecN}h~ znnI_)>{^vseIkP^BE@8rM%u^d54<g`;-9V-RMfIfJMyvlfk0w|s?@qA4fSm1n@YFD zcuH(rbVEose9<xfM_*f{roGrXiDk`Vr3VZTrFTq{(Ba&?wkM{OeVWP*A>;5zO{!(v zjx>2am~*{tYQ_13^_Ee6^Q=WnqL(**nG&+#NrcqQ>rHv8TDHNHj5h4yTH<J_@Iz?3 zN6|sQ^sqVK=QK>|PFv=>C35k$3m<%Rlv$aA)R^Wf-CE=p`R~C@AEyUBr<RDEwP7)w zs4yXXiAvC{5U&Wf^C?M90;ex5_Y#gV^GjO%XX+n2pAJm}*%;v;57wVZa9txC-K2Z? zT7vXO%{OT|_Ae557DfMGcBw$K`t-d+asR)?n(lt{`1Re_uClh5<a#n6ZV%Wv#VYjH z?(ABBZ>_7BHrHLhH|fHj8lU`ky9&$izgrgled}BAoSR|0&syxdwJXZfVv+2@V%{b; zBZ-ObW$$lqt6HKclqnIpH}`(t!t$a+FOM$Dce}r2ColKT+K~1Cm;$(;e%<15SowE- zS#6K_J@?07<CLmT$DS+En)#v7U9|j4;qg<?54pY<mlv<syP{X~KJv@osrCKe%XFr8 z*|x;#sXRWpLwfGn6rm62%_o1X5R!LUFW$R?!QLeN`=gH$S`!PJE3`z}?H%OL^(?&3 zz2ckmi=OWuOpG2jmY+AL82!us!S+YkM$++qnRE@KzUrcv-LfCvJdDt3y}i@R*s0=E z^_4f`D<ia+{2y2tKhA%YFZ{oc+huvA{)Ois<R8Z?*0JB8pZeWe=IH)*d-p$*-bL02 z{^ft$$70jB`rPJKzxMHeU7EKt)GA7M<<e`ZcQ^5!-lcPM(o^qEsn%=5yt8(fF5%Za z_rTzZ^ofp^goNp5CD@F1>rCdEAbH!+Foh#6K&OfGiPA}x7J&qglgBtY6}N}}uK&O4 zRi5WIW}V+}-);Z&|Fi%4xV_*1J-2@KqH4<G32*);U*QdrTUWC$=+UZ@P_gHFGtV2& zw+P;|q=(y{Q&~Fh^3&-*avO|zrdm#oUpM8&k4w+)EalLw4~yI*5_s%re9KbXQ`59B zt$+S-(dA?DOw~vC7Jb-mS-PX2>9cP{z|<{#)874f&3tt>-@QGHZR3(cUYcqxKeluC z&YBH|<$6<M!{1$$TC3F?wrTd+Yg%v0g1`QF&evb7cxl4)_2)Nl$Xk5qL{(K^$-Q5k zQ_rmk$j;rPE0-GQ9(~8X^Z4P48ovJT#@=U&H{Cz@aeM1$eq;W{y6?sN>W|EsyqD)V zzsl?Fk3W{TKA!I}Pd$EZ$fx`bwOp_Mi}mkU-}0Zi)BBs2OuhX46K~UxshFRLYu3Jy z^~#{`^Hvk>^GxC==C^qI_}>3@cF(0XGB+oQ=Txu1yJ3p+oR7*6tr@1z+p&d(^HY?b z$fr}&l$J!yJ~i+1wB(4cCkv$K9FteAf3*MEB$MX-+)t;Tp8WeuLvTV``|9jxX5L2= zf<GrrHC>#vU}t6e)UTqe<AN{mT-<Osvi?`z|Hl1y>%W`3y|ywgQJd;wb<5^rc+fW6 zknNR|{>+Wox$(fnz<|lwTmBckd?4#CRsZKed0LI!(wLRo8+gANiqA~W_{=TQA1lz` zo6zi6H@!dqpi|n99LH40rROU9_AT{wf5~&TEvx$Q%CzNcX0R-cy<yW>f4Qyx@wEHP zz6!<JC4GF<7A&~%P~=S8ovltqr++`W6Wd{K=i#$U_0Zhf{H(RjjatVv>*M*>T#mRT zot0%bW2yOSm9pO8)h9oOrI>%c!M!?`)z+7Fp6>7LSkr$@y-}H$Z<$V;w&|AC?(JHu z6QUQp7cEOnDemj8F*uv{%0N@Zt$A1G<jb$ivV2=jYq!p3%icVtjc4nvw41A@XKu>o zn%inQvtV7B^bJ3*ZPHG+b(3x0GT*-2{P8FAmZiey{yThAI^*8^M^8lSx#hFR%XNip z|5&PacK%kH<o8EcV{YB4jn7u!k2^Va+w1CpiP1UbvrQ*$pIVeFmt80kGO2x^exSsh zvhZzg%M#+wU6|DFbf#RFZ*9vGz5A!X9Awd%m?4{TQ?buKMDFRrZ9<ywwIfcQzm|3O zrosuy;!n5VZ1CE9<o;2Oh^{r74+Oj)Na_4kP0G*vWWDteGy86)b=T^27Mtd^E1%Yw zo)`Jk*O*zGv0d5S`E-WqVxygF%(i=;eKYTe;pb`hRwQN2bgFwM^7Gbum&{9s=QTru z+9s}gsvcg)w7MwKWa*tL{Ohjf9jN7>6O#Cq`HP*G^V196Q>JRQJ`C~CoYU&vA967? z)a(4DMvu6?OL~^cc~4v(bfL9(`gETii48X+LwATQT$M4KWtD`Dw_woAHJhZ|uDsag z9`qw3dXG=^@1=b;+WTJz8l9}MRNlX8=k70t&dY-9*FArb7WQ7}RLbjang6Sbr#^dc zeMZc(w654O_u>`by!g1bCn1jBp$mhjKTMD-NZGOK_o>aRYJW<7defD+;hE(Yd!y%5 z*3_t<o}OFbI6u~Bk5<o`DUwO~-1TcGF)o&HwR}0zc-0wI*^Ldwo^qn|zBIjhVwx8F zEU0CUm3FzF>ywLDzhA!e^>Av*KF+O`wU>`PcPf7wtM_-W@ce!2K9z+({&0<%{nmHW zol7SR*Nd-W+PMGmi4~InuVln-SpMP@cjesR3+62w<<{x{%w}Fb{Y_g&$VSO2r*?kv zP>hYx5P$Net7y^k7oVQbi(s-B)St=a=(kE>4$IQuL)F2Dxc$8J0<QmUIjgmcdrtHH zcXG#~8M)amwEx@TqpCdr%%rt{epl~cXE;z@va;un!3Bw&D%SP04<(pO<**%PU3zVy zxz(3X_ceOT=G-p)*Ho(U@6m6cuxSSi`|j1x(lVN08MoV0E!cY6r%$J@dh@1eY}J{n zZr-H)zpzO>ezuvzL!0A4EM4X+rYkKubhGGm&=Q-i|D}J<FZ*s>dwaK3VVL7t-$%y| z9V#{ZEOT?d%gpNr5!WqlO?#ecAMiS_tS)x#G>7AhO^cf2)@iTEzx76Ke?$I^KW7SV zI(T;m>fK&zn7#CyPW8!cCzth|oX52HUrgM*gNqKnk62@qQZyr%E!FwQW_G^2g<EcB zoYwiU;CZ1~yQtNF>mN0`8$0(p6!*0~?cd81b7R@5_^Oti;B9##Rvz1QD<5qVV7R}? zYrzJ;+5CYES~YfDTG0}{W66DCv!$_1m+1Kh&91RIlh2kBu*OEu{19vV?3~`GX6Y03 zUrq0PJ|lj@`O3-W3@`potv+h<dD@Jq$~k(%msc3C3rUE*s9(eHRBLbR^i7#5v-ql; z_{3W?_6fTERNdqKZS7apOWXH7cz(u7zm|3Ck=rRL`T`PD8uy=jSt2?kRr~$vAMSg( zmL5!H+?$erdh0Zu-FH_`)iRx)`RVB=@f5F52SqJqV}4c}eww*`@~yk>-zV|(NG;BL zdgzoco384Ytcb=yzkia4HCcVHm;{*#%!|8}XwG(3&h4zi=QVw8ey6{OF6!63YPfMZ z*KL*?nX7&Fc$V)zsM@7l{i=wkYL@4V&huQ47Rv1Sw0PE!^f${-8F>~w4PRk+>{Ip$ zgNNI*Ro*F0Dmw0Svi8)QBj5aERvE=TIvZcSbQ0gj7pr!7z1uNq{<hOn_Hnn2S9Mxn zke~Ei^q5a}oA>&P&ai_U61Thz{c=7dDzPNuB%jf{9zE;XnN#dlDq|A2rOn#D(s+y3 zv+xBnf0!3<kNp?USy}0;HQnjg?~{Mj=Z0k*D*4IlmR=_H#AvOjd!6pN^_45n{t0df zp7pBu%e~99yLG-_u1>hMhW)t2pP7{^yNs?Mxi8$rd2MQ>bmOC6N4&qWnXJ8jS9fE$ zc%E0Q+UID|HCMUL>a`#KuwtV^^E4wa+b`PfaSzR|M#qG8Ka=N)Jm(|q^N(%$RgYh{ z*;DG7S~ZV5{?Gk(?UJu`cNkyC?E)iz>orBSX~#}2j@;m&wffzOh5Pl6>8yKIIMrWr zMNOfe30LvMwdqsBjE>hl@;Mh&^xddXZ_A?+rq@^JEdBa>dZ+i7(*2*yr@q~v`u}CU zO2zr>c6-b2>ha38iT*hJzwE>32L5%CE1K6F%9^uk>9$Y1<K}+c9#m=&IY;wcmgz*v zOB0{w$1d_Qxw)px^zWfB)|1bqY}&4~@rd=KyrM&W2RE!}oG7H{^TX74+x;tC%uiSC z(&D_57ClXA<uAUv<uOJDaqpwI#_O#)a`}FZ>;GFVZ{-uWCU1XS>#@l~T+HhDlBn4? zXS}_1a{J1+H&r9Qru^8_WF6bKerGrDQ`@P0lb74wpEUXDh0>KN;-B_Jm8X3V$WzTu znD;z(MOdBnY9;&Rr;RCd>|YyrXQalRy_S@p?b;ajQfoy){o%AWgEdz?RQzY0;OY>& z{%pg#T#@fA3*FCI`4oK?nyKWMSvY%zRzyv_+Tx3mmD?&cmF6k-Kc6&PY|X8hkUcA1 z!?>JNcK5WWsu@YlOtDw&-;}U#ijmx%*^gGU?RG4*oG9`;EJ9VnhfiW_58nj;9bpR6 ztwKL<T@~S0UfREjF>8g>v&T~eWgZC~+7!xj`uEY`^wf1J5lQYM>t0-c6L^2pw8M7} zPkFOr-)`GW@ml6-k!KB>Zq@p>-dmQm`^=Lw8&VFY9(-T@jBU@n+|9OMPA7>+W!~FT zJNa_t)p%F?DR06SIKGnqck5WIfl-j-wfSkcPRmR=_i%H}pD@Ydk3L5fPVb+;)5BFm z^0UO%SIXr%_Fo*|I&S;@Yi_ggTuaN?>-@au%AWn1x^>ImExYz!NYK8^RBv1L?BU_~ z8Fypke<pp{rGLiky8Pcq7cchnJqv#~_r2AJiwB!d?d5j4X0>bD%IR(i2R7edy?M8a zRGa`OS5Ro2uZm~hLnphM#@RDInLB*26b@d0c}>Ym-m0^<-*5J0y>(q`Y<&G&Wp5u} zT9nRAKkeeXQ?5-)-maC`R66Td(PGgZRWI0<`R`)To;%0b%`=WIO3^=P+POJ8w=V5m zUp2+6?`Y(l`YETry!@g)a~aRxr`o2mN0;T+{+zA-IW(*_F7(Qc*ei9h*?mi^>aQ<< z@mSC5Q9)$!ouAMC$8Fxe`{dON>1Vebii%miA&R$>_pjaizQ69)VveVrtfs%5>b5d& z)z6aDVok1{ru^$d^tYwD@Kjn>KCNv3oc1}TvT{>e^BJXG9|E_?NM_XVF4?T&&iP5i z`e#yH;=Uh2M`y`fa?QGVWWKw>-qhXCwu_cuuNKLg896ijZfIG?8;_*v$5O8FOe+aX zm;9W?#l1a5T*FlB!nPe7m;Y#!HujFToyxrRX3ye(4$+NzhZhAzZ8~KnBia1+uC>ve zKAzdz_0C65OW&A!>x|!S-?dvJzf5M#clT|aH1Szj`J{-_%c*DdGH0Ax6tU_-&*e3V zov&7PsN7z5Q6s0T_=x}0On$XY?^ja=4`!Aa1*!a;6q6SIY=O1)?VUw&$pNb}=5E@s zWKD&^=g73yWfIXh!%eK_KGS}7XAYC_-!-1;SK|LQ*zLdM_Gn8-+RVI{juGl&^R?Pl z?;qVf@l(;v<L!PQPpo-)OkaFn)f%Ik+*waA&zFhPUHQE2Zt8CFZ9l756+iK6by|Ds zQ~4D6S)500&swG}zUotNV_f`n&SJye<;$)g4#}VS;#0;Kwv}flrf!n-X`9Rbi#_C- zPgVQTsK}p8ho9u$V>dg~@^7E`uigCDB#$oNGgV{fb#3FP3!bP&9)2}%e^k-G+Quij zC$jgg-e$hPdRP8;pXg=RVr?yUudUqewmcy7iJ8Bz<LiRG!9fOlmwqmAPCFBF<4Lx} z+3g220<T4-q)ACN)$TjC(*ONRJ1MDqK^b8hzE1+1qartc&X|1mai(<MN0X^H?tE)J zF-@o3RlD+8`ohmM0xz6$6%CxdVv<?tvQw{hb*FYjd9FG#Z_XEY(|dQl-$hQl!~XMB z{uI%!-wM}_7SI3h-~GR`rY0pn?|4f1^N8$k_a=6JyuCg5{>5aiJ2AgBkAEorUG_#& z_TE{IwCC#Tzx$?CI!Al|epS3_^{y@}HLpL4zYZ+BHZ97%bGgFe+@~Rbza^bdxcjV6 zSETBA^F7VBuLVal+gCH*eOz?X=IPt4D+dnS_?=wQV<P`id<yTP$y}EgXa5b}di8zt z+tT+of@@_q%-DLN(P(dJ>s$6&F+O!G7N@T<G+u9gX?yyzvzGqSHnLm)nXNzhBJ-p9 zoAkJwANlJy-)4xt^6*SR_7&0Qhiu+?j<*YZWvkwO>pRx@thJI`_Q`M%%A+XMdd zygsLFae9NnX^vA8GnPBftZ|&Fu37i++rr@9>sL#5B%f|{TfX__gKN6%(sL(2Yl`ys z%<VfD6Y%`w)n^$JcMlwQTYbviZd>+)v`^okP5h@EeaF@I;IV%OKdsqpe+YcdbyMU# z==0cW>DKwl^Q`8Y-TpJBXXaXi+ZA>x+X6GDXwMJK+`3A*d`2nP+1R4ps<;0LE`25* zHu)w~?U%cIr8XZ<n&$7h)a&Wf%V|bsJOTF;-%QFp<zM;U)Zkl;@p;qfmA|%hX+Gtb zaAb)$ompx#&A#Z;#@k_iuXv>{CuKU%t1Ir_y-OoHb5gcQrKs=Dt<9!0-R^HYR#~<A z?NOn{muIF%=)BHbw`FR+S)}h#wQjFGv&>l0T-Kerdk^ylPWh7E<6AW4)q++2+btjN zdi2O#*>CxpJsY1ePT3?Vn~|tDug&zZ<)edH@?CSpCS0G9k+t6D{DXhHd(K|Ayf*22 z$h)?!vmGZs&HnP{hNaAnRYotayp27)YfX^Z@^kF!Qy0Y5xfZ|sapc>zh0R}@_OCaK zPBu8G+Hp7ej6vSY+${4OI>-9hq7$cG%rTYDdB(HU=J1l6<{MHY&TF(Q+Wox}xy(=K z$jqe^&gi7v+2KDYV&7RCSIrLlsP(qnQ<j|9z3MYJcl+I!o7UN^zNkIry+&ky;Jdur zuD`BcfARB>>(Z#TF(xUgyS{!=|0)%+>CGbhO`ptng!6p$?{PKq3JrL={Ewdu!=JiH zN5lM&OcPS~9$jy+Kc={9rP9Lek0q?;)w8|k6dYX_Zo&0>uQlHrt|uYZJXM<;-))Er zuS;K9AhUbozmmK2)V6yqpL)XR&6=?FZ(ro+hD)q5X{jhYxqYU=zTaH7HsVzkhF2Ya z`d6L`$m@4cI}vyFdUn{?ucec@i@%;sy?R<@=S^Sss9k(lqGaEGY!;RE+Um4&QtFP{ zce8Tqtl!!NT;H(xP*rTOe`Wo)o59f!R-QDyFkkon)}0HI-q)1hR$pe_TeR~a%jvqQ zi!xq&EVVoydpmmX&f}T)jDnsQh~z63dr2RuQ_Ps+DJl@ZWo5{>KYtb}bp~EJ!6D_T zvELv`#Wc!%<C14nL)X`@nHS2HzsvB~#Ms^TkC~#)->fODNjtx;^=$51-Lrc+z27_d zSC_}<i_6N%-rl`DH9oQW$mLh%R$fw{m)++6ej(@OGT)^~ecvpb`akgAtofJY;$q{E z|9&FvIe*IhqN_{QCbPHfe3DtGXDNFz-g25<ijn7krv%-}vu_q2UO1_2a@^XGlWTYW zn{(?Qm-Xbm+qYGwFE!nrS?_&4W3B0m)YsnJ*+pM_Yej2&w*M8r9BZ|dsm)9I%m>%# zZ=o|{-p#rf^nab$hpSGtN9UROr(IMN|G~CCWe4j^=?8+ksa8u<-=*s{h($fKab3on z&D)t*lc4o?s^e0vJLRz%mmk%iHL+A>yOz2r<DK5k<xAXdN*7#RX0Lj^!PL+7iHMf= zp7pMBVcz$y9Nzz3{^Y4idlS!|+7_O7NPGGFPcH83+<cTjM|7z$GwrQVom3aA68XXT zMd{7gpZ1ApmUI<s25pOPz85n0sb_6?mq{ek+`U4XtL<C%)tO!jef7_>*J9q6iP{(V zd4EqXnK)r$l=Cc=yL?|Ji_H8sQ_g$h&PQ4$?LYf?!jHw;ME<(;Vu{21n9eoTmtS1p zrki~-Z>LslLCpSHM){}qoQzbvp#A#f*NtnEZ$7_kE_~|aTJ>!YW__`pSM>f|x9}<Z zz=Gu-^BPURT;3Y8BF?=!=!xu?e|B@b?5b0>^4xcw2tN5z<Y(N2l_tl6BfW2KEB&(M zfA-VUPy5#|?fR|tJ-%}l*X0)nUmaV0L3#GJe5>%_(Bfs+qNj6~h`c=aYu7LRtN#}& zGJYv}9P{|I?_S^g8Nb{%gZ5Rkzo<UDKKBCK-}RTDZ3`_i>ebt7@sH=$txbQszAT-# z-6iX7&R?5L)1&rR@m4+8cg(H6{Vr>L{{O$zK1?&W&U?8dHT&GP_2sLq#jWnYwYvNE zt=;v{6X*4RnRjzr?(Nvy_g?PaxqsRJd2iR=mcRY)MqexA)dN2c__NKEs;DbC|DfA? zvGro-R}0Vc?A^CI_4?x7_B-8oJ@2zEXS%y}d(QjUzu(Evliyid|H9#KquGLafwwcx zWn9d7n(;W}c*g%1atoXnPhMQ?aojCmuJ&8P%Y*yvuN1zx^YGYVe!032yDq+t;|Wpv zTl!$)#zz~akHzucv&@tJufI@cL9y^!VOwEq^>6+x>Po_$owFPAW?Fnyzpz^ROTDtM zX{|=7&sSetldmtX>}TF<@Kxy2>)`ioFE?oAFzqt^vs3w~yH>x6%+AtgvkWkL@jtoh z=ZVwq&l{&H^E!B6*7aDv{Qj(;t7r13+0Br3s;XXB{cauatp#xO|M<(<(pwx6=!^KG zsjsEi?blt^%jf#OGnGlUe{V@{SNQSgkNDN3gyel~jPEmknaU~~q#5*{E%yQ@n(y>u zx6rIbCgy=Af1@p3HB*bHOff26&s-(=d&hJJcY)(OUo$M<5zlaJNBxo|Up(KrH$2~& z&M<xFa*dTKGcGZ?EnL?*sc1bzUvWRfu^r-?!m%zz8S;zdH_C04-pKz^<x%Ak?j^Dr zKSfXReA>fxqurv(!f&M}d%;iD2NoVL81(ipm6??IU<T_?edbw;>fEn{-Y}osyg=`u z^My3Avjz6-CPn+%N}Q}Cx6G~<+t6Xn|HAo;@-^i$<!_2|$0w<Ko>tH;V6kL${QiHz z9)<JK4Tenx-@+TjcbGFwZ}c|yD3!W!`Y(5a{P)xYf=8Segd0cv2oEtnb&Y3}E$@pb z^Vn53nKtL>GyM|y+wryIZbxm0@PcIHxejyOZTd>Z4Qr(zaUSA+QqT55=h>X+`xthd zsqM{T)2;K{+Av3-xoW37<L@2E89_m$+z@<6xWO=QRu<#RIHoU(zXV?k?iTzlz`0)R zL6KC!Ol#M#js0;<GSB6hR0J=vhgD5}#mxV2l2qd#cSg^D9JU^&jByK!RtTPS*EHWM zpHeM);dCsM%EZm`DasWbZ}!W-npDDLvs?bnH{%13?@VrZzVkkVUbF3Y=QXQVIx8H0 z-SGIqT;~8efm3@}cJS2jH_F~?vzYAkq@Ve?I^*6u%?-78SV8`O@U(D&PL|9bHr0dK z%ng1U&R7)OXR|ob%Ba4hpHWTVxnTd}o31|h+bWu7v)FXM{Cp>zLBAlLHRjnrX;ZzM z$M14joVm*2)_7gy#5W65R!jTENfY)7Pl!-sE853#gZ)}Z;~W<L#@u8FEiJa9dwdyB z{_$Nnd6)OaGe0K2qIi}$59)YkfP(hiU*QKz%krIV7=w;F_)Us?Hg9o~!tL6I!!f1_ zQ+_j@bqLwRiHPQTPxKh)J+I@dV7z?#j`0@8SNqtIBp=*kvN^ezw?gi+_>Sca(-m`B zWaF7__+GSKi(^GZgMU#ygUZ_-3+IY6Oy7C`vg?I&mmA#P6*{Pw3tl*D%fqo)asmIv z{)qk?y*Jt|PUteqJ+I@cX!^~6;PVu|f|)^=T@zMIGc3O2+#qmu3xDO$3Db!rt}A?~ zV!OZ*C&3aoo#Af6YR4DZk`2dqnltz}$qKzV&hpE!vCe0Kyf7NGQ111)<hzw?touu! zZ+vHSZSL`1pCih_f{!PBHhaLj;bh^7pUitZ0yknu_hOE$h&Zxh2k(|Tp$jMe3SBt) zSLy=qwq3ky+%Fy9`JB<e;5_3zcI!KB*LL%+31^jH<(|(VsmF-O2I@PfGn{Y!>c{YX zI^*=6=`SZA`0MJRyh!-e9F}+b%yR7f^ID?zFY;%a{{G_gg-`SuJx_iP_$2CJo+P-G z5fSX2de0Z0^=?o<!1w&+<ON47FL-e8@DVVPV(TgDza-vpeRG4`J3|Nc?<@;u|5kiZ z*fEX!!lBs>>YA1hA}2g#y7J4sN-}FNL&lRj<`+-uxL>ekPIq)NMT)78t$oRBg%zF~ zdF|*C(p!9Xy5phbhQN1)5-XQZ5xa24midM2o5yi%GLACO)fkuW2xm-=i7?`^tCG6V z{=$8Y`y016&N54K8q{~HGn_9@XPC~(bll&2QOXepgcr^$$1zkcN|~y(lk--H_q|Db z4#!T~qZ-PvPr0(YTKYrnJJ|#LJIqzzd!(wkuTrxN;(fA5y|RB2^S<+I8H!kzYE5EJ z^@!sCVYkKkL$1buyDk5@9_*e`Cm&TUAN7x6f-=WjXU~;$=CDdGSQ65iX{yO7<0)zT zfPK<-O{ovE?@SMrFBF^e(859KFnf@tCAaQ@$c)A(D^5mENoUR4%e=$MaFVD7bLL9E zOEORPbNrB-@=!tkQjq9&rKy6mJyMUT1+i}ARJg$+kfRhTFq>hOC*Q`-5Z4?g4l~9l z973}hRvGddd0aiB){r3Vuz~Zz?ip;e8Jc_<ESrv~H53(1yTK9wa*`)V!^Er(UxtHF zl?oFbopYF0D5Q7#GF*M4b84}&86(SVk5aHnE9ZeNyed4KL1=c)w7g|JJJ|G-Kb_d- zuX0kt(7j2!*jCQ-L-*yXm-{&~IYSj{9Xz}*pE{w@{$;vT)Vyiy7d%_~o-<Q5)ahmG zmae44z2}!-Ju~;@C#kIUZ(1f?3sT*5pCfZ_oSyjU7b`oCs@2`>4vWeYyJWI-LtT)E z@svZ~dL~Q@;JeN36g4Z%%`G$cJy&LB)V`*yO{ZJ7OxhGB*1Dz3=+^C)Ewki&rd<!P z`@LYowV<%y@tm1+os#SomwXLb`@2|y)3+?5^{bTXl1l5(nfK1s%-U`|f7-IC58s|y z{xtLFp1D6w^3(0k-k$0Ix$N0xD0l5;>pT3MnfK0>2kV5oh6YRxkzKMaI8n>Pb!BA4 z>9aw?Au^w=6hxOk6JVYo+;)ZMX}j^;5SEUmZ3_89*SZT=xb``HFlSl%obmX=C4H|N zuSh&;S;4Ad$gs9`LGRrwhCUlZ?6=hL-11d8&ap%-P)O|Gd8e7l0pU*$s->=5u<E3_ z?<Duq5Y12g4&227(^&U0K5)Lp5#-*w>Gp#RuA-ASSx$(1zuGMQ>F^5YC#ydBERc=J z;+E+@C^<>mL3_=$iTUYa7pA!Caau^b)VjXbbGWPVOl83pi>Th#KbmK5`+aTlIbxN# z#=N;K_s}mz9l=G*8q+z}3vz5~a!HC5`<(pZvcU<ZD*dJGmh$YHhXRb*!d^J!9$MjP zvC^I4pT9G2oKxI<hEEBs@$Cy;FJ&>Dnz*g+;6<h-k6yG(yf9~b$#F`=HCmwdaKq%L zr9Z+RuMj?8%x229Xo>L&)wa4<uIqgq_&SfXL>aWbZDWaV2~@u)X4umuu|-PY(bS3@ zzZ2p+eVnZYx167&@Ra9?k8=3Fvl3BSs*DdU+IM}Zb>5<@U(K?(&E?P(ft@a^GBu<b z{uSEHa*XdTJbSz6`Jvy1ZWpq}a;@7`gN2r7yR0c=zV>*l9oO-?H@jcn`;wG>`Nko` zEzV9amcINZwm9FdBW02O`{^2P%@T_hznFI3*}24QPtRnhnG!O0HMYpH>sIieRo^Re zKtj<rp=xT}qZ7g`o=hj~H9mZQ{KBYnpHlj@{_x({TkdJQ^hx~OdcjNeYC*3@zw-IQ z9+yK;GcK{OoVT-X&K!|PReF)LT=d?5l+=(vbmL{akmD+j+$fzd_S0S++qL;dolFMb z7Y+6(hfm4#qt2e!-xA07GFhT=vWBVT_dZ9xjW<}be3VK{R|`&Q^q8QfxUF3EY|@IW zGEv>~sYj|*j=2S7+pX(MwE3XyZ(}*DYw1x94ldiNKemYEI-EMoxj3(C{T%1}XE-h% z*e)d0$Lz$<llZ44&^d0G;S}dDS8oX#>RowI9aa*1&Lyb*lKrXoe<Te0%zC+#dF_9H ztnr>)b1mz@_nE9)f(6_=v~T7(UNGq~j%0bRQx_MTUmesg@7}eb=Hn{KN2k_)Hu|%3 zoA3Pk9~<Y0x;?h2(%X?060_Pdizh}qJUEI+z_%jy$4<wXPM67_&sg+rF}8Tbwr-WC ze05`J;L-lz%}k%7KE7o6CSLbX{&=9a&Y8P4)=N@Ye*e0fJSATFEXO?0t$N=k6x@<A zYE=%5*kBxK{IbASNT@{Mx$wnPs~7JQu@ye>#X|Mmvh3@E+0{-LXB8^8yk5XM$NtcZ z+DBIzo(OXLKB_n}Ut9c^&7QQ}Ae}Gwu4GJ<`t6$eZ_3sC@;h%OZN9eUqW-pnY3hrA zay<E1C$zY2ez(#gEnU&O*P|S}0xQ3Us(ieYu<7}cOKEcV?$?O4u*CgYVXOROuSjVh z*J|rRv4`mgJrABwlKEU{s(vQVradwyl{LWMFo-E6OLT9U&F}jUx|g&vt+3u09U<}h zc<VkXk+3jhjqG2uOnS1{OB`FK@c3#i_siJT*DpSJ`^ZGPcllcO%fAoH-<6vhb+~Kk zdYfHS*Gb-WxxId^>_O9nir#yRVpe9)30d!X)@2dDw`QTP-?clB3N>_{o)v7BJy<c@ zYj$Gg%HsjkCKv>(PTJ=q?_D83ja#liQNL3qRp9s6R}sG+ubpLg_;b{<^Cqj4tx`K# zw><tb|D}7Ona6{zEcr77X0bf(Xh}b%=f1$jAopEIe6r0m_kV>~9OitK3h#Zym{BO^ zK1VzL>bVCpisy`8t}ZN`x8u@`O}oN)j&t1$Pj0#wKChTL{9}g6%37YqC2Y~pt1td~ zJ;&ah>B!Hu?XQk(W)2aTdE0!mh@-elvA;F2gyY<s*2QZl>=rHB6Oc5$;9mE<TkW3% z_@~@%E|$4}OyB{Zh1@~Ib=^rHXUKeY{3&}uY~^iFUgdtjj9l?)GKaQpch0l_^H${4 zL@C(`o7ww3cS*ZD&b!aI;%NNh?_9-7`Y-cNq)(PwH*J-;W!I$K_Qi@B``s;W^W}a| zs&=V6w4eL3^`xRQ&Pm%A_j;UOa+Ytx3i*DIcXB_hIi8j&{x7>Sb9x#3s|&2pD`Tw! znGW65e{pKM^0%AXa}@2AK7D0gx+Tk9`pW_n&EKU5?mJGHv*kW-dii4>Lk83Bi<a%a zP&K#dY{$006;m#CeGg&Ja$e(=vqALI?T7W{m&%+w_UJfgu3fwBuAR+%t)s86>m{&9 z<uUYE<d;0SnD<50GFt0L5y#hv)1~rmN$S(G+<VJam6vcYo<2RU$8X+ohgm8%_K$9t zL>^g@w*I2~kFX=3t6BWlZ|B}vWqqsV#8&N-KeKcv@B2A@7ng5r{IthEoZs<({2uvd zhuw_Dc{^sWUA1CO^7i)Ti#Kn)ahdaWM(??^Zp<G)yy=;r+wXE?;fE(7Hplo{lNP?H z$+)xrHD|A@GxwVVF&Sy!H|`X;EpK5qyJPdjn<on<@SZy-+dWB2Cv)ebS-L9que@$9 zbV$kTddqo+CB4~QvHbR%D?GO+OY{rc?OuM!&}`DZb4PNf+!d1RZfS1h&@N~(+I(P2 z?^(4)2L-&3#B#Ve=Om@sh@?IaRxGQ2pSR6khUe@NC*K?$ktFBK$qPSzykH^yu=wW3 z038Y5^MYR|9Iw!j<8V*<*XN*OBgQK%$5>V+CdFdcI8$Pa5U>9R;l`H*Pb78=^!abx zcqGC`C~5KL1LiiyoKB7xD>9_A&h<1iE;3%2apwHDV>dek6y|lbCFPi~M72CVpe&)C zntYjYL$-kdduC9om0)N4^93ho9x2h_QcYfHVJ49Le9`6yyh^%T<T}sjZ3s??F|)B1 z=Qwur1CO-&Hnx)sxL#N=?@3d?vGIe7*%{-m_Ph?~rynj(m@j(e%ds0T51cVHo53*s zQ<3oJvkem$GhR@Y>J#j4W4fG^)VHBgOkGi3Y@cA)@pQ+9m5YKJSlN9(@A3G+vYaVU zKu6>&f2*4CL<bYe@Lr|YZbJN~)dyXUux|Z#sx5R`zdQ5eg)bexXk28Doz-*3bHfjr zlYHlzei=UuICFnKhZt+p(Fd;EtgWo2=XV`{E_M2}xR}_V%SpEOBKrOEvuDrkVSBc$ zZz}s^;myV$X9So`;$Taf;dpB4jH5!u#S;x!_$;5NyQc{!Y)sB!a?<c?nwlc)%yMw+ z#{f-hxxTZG44?VtcDFsu5$I}pkk4>OqRX%SabZT@8;LB{Hsu*ykJ8Mv)YLfIFMZwR zEYqXj^f5@N?{mQRDOUs~8|uZD9Xhzu<fK?bW`&xBr^B1&OXkmQ^w8uI|9n?zt;LoC z-OT^$)$z<>p;N!^|912H?>IAY7GvYRGbKe8XG&@cY6wU$HK)`WDadyT3dBzmyeDB| zWNhMH+_Pbg;c`P`?ajyXlAefI_L=t9?%}(9+rl?r((<asUcP_V<I<VG&snqI%=rB0 z|MvaQU*yj%{bu+3&HY>1Yxi#d-c%*BaQ)*Q;nzc^ioN2y`JL(0;eFfGCb2H^`lu@* zY&13G<O$7H5g~D5fdMI7;u`a`zUVAzKCG^vm91sSEh6eYYty-=N1MDByBg{*eE;g| z(}pQQb96N3hDRxX4))M1+quNat^3U;qtY$;agL_nwl3OZAN+;aY09V8N1tZ6E;XMX zCMG^r>_|w+S$XBHh7q5aYb}pyI_#b2Xs9sTvQ)?>^pn+!tdtW{`QFC*YaIM8nMio2 z&bV>n&M^~B-%O7wii$Uj3RY=WOfa9dKw`erb+^+ZuD`uj8N56xaL{2+|D2`07sD(T z{n)WSNltBdQRWmTuPe26WxsS%+PPM(*5>l&UQ#a-Dw1?cYrW=$&zYH$QEFb>G7?_T zUS{<5_Vj@ME)D5dj|)y!O-X<HR-wE*?44Tm{qUHuuDVtGqql`FJs<LejZ5jILDaKP zmxMICPby5^>an7VkyXdcc6}II{?<J!_pnIzIX=32)W|hFWZEmquhqL(vD@qm;+IOz ze05|ItLXMW4DOO_TSK4Tn3<HdU<FgL#@E!u!bIQs&AdMht?C0cS?{sjJ<9zo^ol6E z?~bRUrba1WQsPz}iuf)P8nV~n9Q)@k-igryE?d0z?c2pRccn=Ciuz|i6`4;|czb{J zJ?(XNucoH@(dl+)r_Y^iYHMq$db7OnlF1eQzHfJ@%$q%}G<h9=_7j!VXXn18F8wvh zDE(KS$9bQ=Z%fadIOjRj?CkWZkG<#5nmch`)Avip>gji8%$ZlYH($tZ`pnkPRaS0F zX0v8Lova_?yL7qF<X&IjlQZYEWnEhGrRU3?nHTq6`EtkSW}24StS6`aPM!3fUz6+> z)TjUZ*qk?OGBtnvO35)Zwly|ozdy;yRMl8~`5m7<&%I~%b>&Az1-Y^9)q3gnrk3w( zeo@%BGjqPYzFbtB87X;Ev!XbN>zhtykXzS3EfrHsWzE{GE&7(3S(m<QehCrVHp%&F z$oo7m?}gDn_Nn|awlufZ4!$&F&eWN+o3l(dojLio{>!p2nVJ{(Et&Hr^OC|!%g7sh zOw{cry7oROo~c=-ed&tb;f@5+mG>=lQy1u;)by0Ran0msLBZ1*6E4qm%G@Ut91;`M zpgny?)2mazHp|D%`TO7zPfqo>=I;M@*v0jJRew9&{omex&jt7QZ`dW$?GIS|W;}M2 z-{8#6KX2M4j`17*T2uV3xo5L{%ACInkN@xGH;Q?+`#pnt`vD`1s|Po<32VDG{e9xe z!RlL^EE6&17yq)Gn)6><>rBhGm1`^Aa(SJ+kkaeVm)FTlX}ym2+r96)_UmZ>-E|Q& z*5q5i{ngBtSUW{wzhnNwUt)i(8x45Q%JDfTa;R-fH0TS8HQ@`fIWx`vX6NCE?&ixa zoNw$(-tro7Z*!2_(~w!KKkXl1@TbIO2mfyfm|&lI{APgKje;_{?xe+$X1gbyP3>IM z<eR!RM{ITS(KmcyC*P%Q-z>VOb?c_zH><84o0l9N!LTv-pN~-WWdFqWAHHwS*RZ{Q z82U!~-U+`Cs<URVzuNZc{FaG-igS7FR~`MVzoq2fV&CWSS*?F&gq_@f>D`0)?9)H* zZ{7N5$F+0+7usg-47=Tz{CCsD{bCl*|4vW*AN6EE=g)lif9n<g>*>_;|CD$9SMU69 z?}_`(f6hDp6Ic8n@nn9(pL~aZ#uMr}KkXO&X|C{p_k{maPyTa!y5Dpr-r-sGg#Xbe z{tJBiZ~W=M^r!bvLua*`XX!n$7x@|A_2;<K|JM`h**?wh{Np{L-t^OV<^R<a|5rWv z&;8^-&!>9MpZnWt>eHX($BG{LFY}~c@Y8;wpX!SLb)MLZ|GeMxC*S#Bx#EAbC;vr0 z-EaMK-|b($)4zCy|MgC$#m2q8Q|xDV{#oz(@8yYlwom#_|E`|c&-rt^(tq~}|I422 zm;SlG@z4FkyX)Ql#Vh@vtg~Qe<nl7U>e$^A{2lwuGd*kC%tU`aSNb1$Vn5GMb0v_k zm{0sS1iOp%=l<3|_74B*UH{cTuYVp^H>dqm{fA=R>z}v{%Z^L@v~D{7Kjw*i>!0;* z|5l#(@Af3V<<IJg^}?UxTmNiV_%A;3zvGktmY?hyUC;1x-w1e8&-rP7%OB&3^>Ux$ zJN}3(|4%&uQep9_UhHSN!vFG#|J_gg*ZA~bJ^SjMoV{Wv=Uvuw`IkK5zsr+)+fVcR zKw&5PX+Q5zeaC;RC;oqYqF(#cf74Izo&L!y{P&;u-~NZ;y9e<fi+^0NG5NHg3lxGY zPt>b@(l`6`Jx1inf14-ulAq>l)EmkDJn#0e^hCYrr~4g$<~#n2jZmup71bP>!}4UK z;feoNPv*D&5m)-Z^hCYsr+S{B`Og2=EB*g_;(z~%|J+aRpU&DE5VpKGsXQZm!|tst z+ni3j{M$V7Khu-_96!yK|A(H~&-*jq6`Yiw{5Shl&;PUj-1VYk_K)@cS<0X4|K$Bs zyoTxh!{8s&Ys4VoP~TI(PwuCE<Dc!y|L>mo&#V0Zf_~GF`Tc*AC;aC<QP22kdh{Ij ziT^jBsMr7W-}aL|n|VUZ`IL(%>a{@n^WFbxPxwFi)AOkl|68B<&++Mh7w`2P9k1?$ zo3}E|!gtRK&3JjD-t5zQr+;-%_6z;AZ~9Z;`X}D$U%t}+?-T0zKfQN#d;W3ukEb<k z^G~e)p>prU<sU+J;y=R`|Fb=**Z-97{Lf$cKf|a0`cLXbe$IaqAHC<#`)S-i3Qs@% zBR?%$=Xz9-!Cn8!pO+l&tKV~P#fm3w%hcMZTE4lvcCD?huC8s+#?Wm)K4z>exiRDL z#mkp^*r!EoSaSURar=LATAkkCew&-9AD`G%>UW~+ii3A{^@6=yx4POTe|_!VfB2xx zy1u^SA1hucR;9ha=R5n_n#he!Q+}mcy_)+?;i%i(#q+jq3n<?9C#-(a`P;MJZ)iGP zc4xVKZR~>fj@aPfqN0!~*RwYp&E9)F@cyMB|J+3PsFY$e?#+?fsmHZm?sE=1=oPYm z)6*UI<KJ&+I4m^##$*ltH7T2~Zr}FoxAsM`9!s6N3!N{!taA9$if#YT-u-dGv~6!E zuU+N#af1Hln_u-3a?j;V%lqs2rhn}v`Hrt;w{;V?zgXY9R6X@=DR)lThREosO`B`& z{tD@Dik4w6-#D2$mT`Ztq4f9DGw+}O@SyJ4#qYagrLKAUT*+2do1~@x<l*<?KILoo z?)hC?Di=II@MONaw|uxNU;FjxH`a$($*hXX$tf#)UAR76UQVhkRA{=#vh{DWcNs+- zy!f#!+N9va5r?Ejt&5-TuI;@0%XN`{g6k}^8f(6<-+${_HO5*ky}y3WC-)!g{$APl zI)(51>VM&X`ycIOJ1=I_YuA(ay2m^3kh0~uml6Swe(t~AJ~!;ymfy{DZ!EJm6t(!Z zH$v>m_HQScxGgSr|6iZ?Cgse{_s7y-9XFb>jn${l=i}sxEcb1^7MpSpOw6tAleshV z{nwQ3ZBu{QNZQW$Vi$g`_U6jpMz`t@Ob?X&kgE0ab82khzMfMJ`iqSooW6AWS8Zhe zE~5y=_-$Dal;Zui6ct1=omdqe`!I8R)7@vv_1`S#J}9wLU^+jsLhYcCl;HASOW9AV z$1lqFC5M$*JyI9E?D;XMST29szpE{&MKAh)mwsP1%P+DxHF)wW&DCGM7MRU0<<HNY zcK+rswm&;AADuIgK~7rOTy5R5V%B*tPWfG5Ep5JT*Y9^rz3bhg{w%S6YN&bd=@hAV z74P5Jt3M1m`DI`5{%8ZHmGwn_il?pKKG^cT>gvV&_O^LTG*j{?UEsMSaY=)3L-fqp zJ|A1F{?o@|_||MJ);HT<zFg<h^VQS5v^GWPm}+mxaP7T&>`jr9<-_mhJ9Hjw`o`|4 zbZyIR=_fOOzJ5Bz`QEZe2i_;0F%{sb+dcWF?Rh8h);)DWr>`_Vd$w=;i3O!!@891Y zY?ql>CMsH@t89Az_1kHJnQvcv>zF#6PoAzCD9J3r^2;<XHGTVzrgzCDJ7zq4<?VYT z+d8@I%?2L+{l{jsUElF{Q^am(i{i*yN5Myntv@;0Z#a>Zs28m*mo+71#)M^uj+Dnt zO`LPW;pO!&ACGL@#^2fH<(+N$u;9y2rM52TtxX#jv3viQexYx>+`U^)FRxopPplw% z_eWdXS6cGvF1F9Bm)_n{aK8Vck${2sh473!Z_YebSw6Y3@X%8SQ$^3^^QI_-Uhh=< zbjNyQ$gfkJFTZb^p|yL(r`qy+E45B{sjsvO&3iXnV%E~E_uu=4^~{S~Sw1oUoRM`a z{AbwDX^(IAsBcwrcJG(%5u0x9Si0@K$DxYC-F}e;vJMO83%dms7YqMt>{imeuYLCQ zrsmTZ<-P9xi~H`XF7;~n!Ip<hcCT5=XnQU<IZx8>;K!8kk1naxg4w4;_wllY)Vti= zxF(RTQGWSTwq%!`lEv(<SN3Z!NeO?gx%$hW(~7Op;pOoje-nH-&)sn}R88*8<7JuJ zrDg6ay0b6ptd~{T*{2`A9-peUH6nw}>f-uqi!XNWK5e+fev3!0L!IN&kDXahUj2>_ zxt|jdekI|xZ5f|jca^T5zO6)9+?x#l`&)gyjZVmDow%d-#fv|${YfR`yv~2Bbv5CO z>@Vh~=RKVylAg!@>M(anvx*qc^j)ui7};K$HBDAs-|FFee$(xfcivT2xIdpGBV&hu z{ki$?<rzav9;m4|$F$wMb;Z8a^kf)&l0Y<X;=2n6CLEaXZN;}0*S1_UnR#@Y)ikSF zGFP$=-0w@*o~QdS&1Uw8J(vAm4==bNQ0=*bpSk~ab=SG$8$!$`OkU69{fakAy7GwC zlN&qUKH%f>S>HLs@W;pgE!zJ+#yf1AX7>HT%5AO^%PqR(tUp_Pb(mWG^xoXIt9nzj zDttVqE?p^nMJfE4*0iX?DUaEjLi-jbD@4tf`l7jh{)%=(|AIZgWb>X0=(AaAuKhZ9 z%cHB+&D<X!JY8SCpk>jtYkRb^{$@>836@AR@X6SA<jCWy?T=Q7?sZ(E@ONWA=NkR9 zsT-2s>}vMD&~NMW`HOyv3NQQRC%0sM9%gSXYcF~>@!@Up{S{9aSC?EB-!F1NZZ}VY zRMy-GdGqbYX1hasbM#++J)2S0-Sd!9wmIVR1<{m>3MC~sRdw_EM-D74vh6a}n!Zc! z81viH-&J25eE4^T^Tvz9o+lF;J<=4n{qwlC{_Mmzh0Vux9S&5M#68@9Xuf<z)8(mi zHrnt#E1dh{&6_*bi#9J_y!dm=@lJC$ho$!NOpfVx_aqga4?TX_%6Es2wW%-suk61# z1^zcve{t@*?Y-6ghqmz7WpUwKKQm8l6s*&d$#|4fP|f%%)IB}?`oek6?Ype3ty6CI zE#TTKchKhEyTrSPs~+*Y$ZJ`LY|~%7I{SUs_3)AkE1N52<qOmc6bd-b>)BX;yd(UA zV~^B_9W&KaSnjOixlsO$J&(7C;o;AJPWC0vIy0ZMlsK`^ovX0E^lhkpq{2QGffwuK z)pEA2tLkUAIXBsvjZgS><KhGLvKJg)uAjVIMx*w`lLr@#b}qb}mi^|<op|v_35t3@ z@3gyHJt=(RTw5LB)I0S^u;uaOM>SgW?E}}{-k3jku7%U*N6tAfv_Jm*`SbYas}CnW z^}ZlzCC$|P!zH=nn3GN;!?RucobPg4&5?V?^LN8<{f%?mCV%5tl`bp$t8Zb;I`2oe zj;Zc;Q*uw3K3w>2pV-rV3+vWzS&;6!_jcFh7Y^!=S7=_<37S;Rx>Hr3rLymMvBbO` zCM8x@US5ydk4&FZQsEby$uV!Ez@kjWZH!hPqQNUJYehDz=zZ4AI&)~vHo5gZ>m%N{ z#h32sSvtF9DPLrs>ualBPaON!?D&51`;JGi_`g~n@!WOsLZ@@;=E}As&-m|bIC}d- zUOMy6ISmgDB!1gTc`1m>zFTsi?bDK5y_YO_S8dy4D6?B|K|@&nlvs_0bu4#ZXzcOZ z_r*ewv1MzKbgBI0jt!;Wa*gx$Wk0$0cFO61^`|uAIR35C<ociGn)>wf)vp_}{#r%G zsfUW5>Hg-sZ|y3bTjjN(AJ1O=lKUYe-p$eXC;!yI*LrU&-v@3GOR)VQnq+HXB>#G2 zD)$Dt+o5e=XZ+c_cG{ICGV&@uXJ@=@{*yWLq+P}?L-vn>4U^Rk%iJ7QYInpk^%n4N zIV4iS6?dTHuLSR^>pM7lXY*`Mw0ox-c0g+fV;!q?qW&Mrbz!D%hb<>C6(=yRi+I<1 zbpm7bL)Qx4J_nhr9F5%<mj)&3O?jkNp?ZfuI8mJMO8f&UEq>SAbGWZNTRl1Gl+pA% zfj8yQ<qtx8_~svA@nFdfx@IC@vHYper1;Va=UpCEzZGB>PSo&eo`2|U0Iz+sS%pmQ zX0dy%|C@3@7`<t}e<(imZ$QkQ{>F+kk~?Q?dg`BTdRX}bOH{G!A4a~z#vihO@X9p! zht}#_81k%hmA=Qp`ek;>G$-pnOePf^d<W$dt>3hnKPdlT|K<JTU&e_KnzRe<7TNi< zR|fEvZs0LHl=fhQ+`YpxKXvvn<sWkV!Sj0Km)Qj=Z5Jks?O>U^LqIOz)=~qet_O}= zZ2Zrk^J~_$j0~<d&^Le1CjTw$+Qj*8I}>$c+N>3SHg5TI>GazI@xIrSf7FQmk-67y ze~@oZ^sWcFKjzFUJTx`qG<QPVA5PPZ#vBW;@9hT^Vgh=bGj4I6ZAsc8n%B&>Lt3s` zH=%X@0k$6uc1_P8gjR6hYt#?nS1L$Z-*h@rD28M60xq$`vKwT~4(c2JD0-0iL*SqE zyms3S@^$>SA5tIQc;)mu?NDxuH79e+Zw`I|IV~NH)f>x%>%4x5Ca!mx-E1(YAR^JR zbYrebqRGRELl%cv4y7E@Y;D~ha%&UkbHQnX*93oYh6`^K&Qq<K`GNOPzUnP~)gEOZ z)ib(U+H>>ItH*dmIN$KN;k08`fo!7mL$yP?u1`g`-`Fl_=l{d#q1>U`mfxKB6>Ih{ z*|O)rJ>QC!55|X*TaJ6L;^KO{S4fucP{E<Zmc^XOoazE<)2B_pW?{rx%$Y9uOnBOq zu<$9Cr#Mz`*v#5jb;zC5n$v#j3z3$>7S5KFEy1TwW#<>B3Hzzfakl6$U`(`3<bC*P zQ`aG*<?{<9A95YK+VYy?Hs^eWJ6=1Q3&ay2OnbB_C|x~K{GoNrd*QOj-mB)gbJ#1} zxK+&A5WeWN(+j09VG9a))nwc(CK+@Yv=zuaWI1%CYt^EnaIHkPM8Bnb?3)exH*^#z zCaNaNCNd`qCvrdZI%L}Nn)CK*uG3jD{sMIx7jqSR)Xq$8ev+pc<9x&KhsZ;}Lwj5D zLz3U@;1`fnvhjiX{(ji>Y11njF1Wo=<WZM#vY1m4@>REW>O61G<AQ1e%LJbZoKw_U zxvp>Tp<vGl_Ztp3Ty8ks@Y>P0VQzu(L$gD3JCbb~5BVL^JJj6L&cQD%r)cB#gEw*g z5drCi4ttDJ3?3RBn%EN9V%YMS<1y!CPGgQ@&gTMRihbOg%4?L?sOPBUsKxl*(5mOt zc;a}7x20bwPYoPQ;ib8$r5+6%CU5Bepzu)f(BT&O>kIN*YP@bZ|KNSd+3BQQBEWTs z<IutuyF(XSF192;?P7i2+##=MdG6@*hc!Rf#~K#QQ@iz&J9Y9)?U0o_>L#pxQSMj! z_3p2*IofMKeb0Dw>w(XfgBI`I9-k3!*5>*dt#<s;87sc$hd%C5>pC2ImL+ETk;k_b z8PlI1kq`X;r8-H`cmJ~;|FRB+UU(UA7*o#kpyPeQ3CTyi_6;)EZFY43-X3chqx?_6 z@8xmFFQIq5Vy=c<3{TH4jNQf&?y&t~*VD3?=XV;j@2jTpuV47gVefyJxtHII9^U$J zrQshQ!)}AwAJkhcMfT77^>^ni$K;kk#})5$jaG!Qt$Xy_M0wXafy3tn&j06I_E(|m zJjeN?SHJMYu%16;dtT<w<|hx|Db3%f6t|-8_TidekG?zIDW39hUxMMgOoq3&zh5bT z{r&1+|0~i(ZhNo(&N?U?toJT!+5e90w(7}tQ|cZmpZzYo_Pw0MyUxolebp-u7Uh3Y zUVm<(cANE{;Dv3~3ntn-8Qo#5v(MVWE%jAdCAhF8>q^0Y+h6V;ZPo8CAH6Iq+P1N9 z*NlJ75>;$J+{F^uBg|hPJo4mfP1KrcD^jz6MlF4IJ!)%N?rgCOd>MD6_}Sk*wUaw7 zTxoXxdH2t>e|q+Z_HVqQ)2zE#_p$EEX)mV<dCyIq`PA{W@U-W;^0#faC2q@z-lKci z?08sO_J*|^ayQtfR^Pmq`ujrNg?|(O&QN|(asT5=<MWa4a!Tx8**y4j<>y-ML#C%p z&rN-Es#J7mR?OLTrt5sy$*$YGt~^G5_r9X&JA&^5-xa=l`p);=-FJWA`P($xF18J} zc{-1GUc>Xh6K+gcHDTF=tBU@udt@%jep*}5xiD$Y36bcdc^l(p#N1u;S8&M6NeRyq z*kw~v`@&JbqP<H0>$;D5U*COu_g(Ir+}Ceyof{q|8YXfk&P=RKe45yssD1d>p>1t% z`EJXXS-i=J$lt*sFDEBFPhg(pJn=ZWdlLJM_UP7R|9JP|@5A=P{cYd*gqqv<yCkO= zXcPzBTky%Tw>gY2OL|M`g?Em>*=6NQN&@m*Iwa%-g(nJ3l$<CYD0fj}qtPPWr0gT_ zI{pf_EBCp5aqBwqaH8Qv&WST8R!)36v3H`j@@=K<Ztwc;$X8l?%1C*iU|8|v!Hk2P z&BlefO2;oQJg+XuKkJLG+F#kp|MDi}8BV=jkoc6@n)}lEY=c+N>$7U^O;5=AzsSA! z*9(*6-;1Bm_)--7H*E60lS^j*h_Sh}Bz)GFQZ?IzH~*i`mpFYqqUYBSw#oM-mL!|W zy*HmKuM&HBrbSG;#PxNjv%6LtX_{y+5iY&>>u%v1ueeoDEL4U4L#vZEPtu+mvwX=( zFX8*<n|k8Yt_b_aP1$jCg}+f`Zqa1Ve6v?4?I!0*O?^@^Iq%b~CzUHUH~v#yZ}#%F zr+K9EPT!Mfz1{^FIcz<Dd}_Vay0d8wf8x8I?7#4HA!}5k?3Tl6H`uHd8Gb)tkZH>M z!BX|WV&8>>dvZ8}lP4{5Gg#{1A8HhMQbzUj6rJFrjgwAKjamOB*lXXKCv~d#!#@eD z_P;g?J?il)K~?nq6${nn8kWu{S-q}l-(0k$s(w{feU`(?=3{{#(n(vYZY4~%yR>Ba ztS_e&WN*)ZWH8O&)8OSyx7ud`lmBfBoNs%0i8<TL8~<;f_K<JdeSqaof7+v8TKw0u zKgIV-CrYkqVPD8QuVL*6n>THKH~8NlO0-~d|9bD-yme1(RJEsm(cT&5DSCeMcFmpc zC(Eb)@i-|LdyY|cs`=T#dnW2`Cs|aDr=AJl<aILDYgOQ!&n=Tq-G0u}6E=VM@r<QA z?=EqF5cl)Tn?>6{wM{x@{#@(+oYghP=a(({baqdm*Q!5L%{@Iul`FeK=WWW0TRcf? z^3&Xapr0A{^i)IbKk;e)<lM-4YQ6nmx9L9<p3L1psl=S;aA=}QPjiLGvA-dDd>(=; zJkEyapAVm@QonkVmec2}w?U|1<L6X8ZWGnLUVP@?67Q8<naeB}72#)f{BIe{x9)kG zIRQbv#SgPqC7&v7-97cr@+a0_bt&82FBYgS?x_nj>A%IhZl~wTx5sP(Qf4K0+q#Jz zEmX6;x#E1j(W|AiJlPlTyO4h=e8!ilYJUSJ^o7O!$ehquljmphvbg7KexBLXa_O&| zLKZ(gRW{*Wz+*!J_o|hjCK{P4rOIpl+&D>V|CH5hqSw8ezCT&6|CE%f^jX#It2B0% z_HA4qD)D<(;+NG^!$aKzJ5P3J^=aN*eLCvt`K|Giw_~q-jkRAJUb!LetkzfU{n5|O zMD4fBUVHkeBlzd1M<2abohh&0G)eM)?ncGXlRT>CGjlI5cyqI$L8AV=#@&UVF3V=k zEp0y)T)txGp1{=WZd30{Z`b%~b7SY8N%pJFh00$hCpN`BvR|-7Du4f`rSUg!tk0=g zemvv$GfuVIzL|larBux&vh{rbt*f23O7ua{)PvLP63?-p4mlS4ZI7Y())a}wi&A@c z%IjveWn1Rx?X>nfsial-XpVOMR9BrNU)S&aQuI{2eD#~HF=wStUwyM7W^Kqc?fsGK zo}H<lviwf+r|;E&)b`$8^4{d-e95n(Vw3-Ey2$oDsc#F5Yu#(TWVMJ?W%<pM|FWlv z?me?KrDamqym;F%&#hU}Yj><aH|4&Ge8%s8{3kE3dGL1ovby-6SO1<`|IU8lY13Cb zO_%p<+?rLoAuO_PZP%o&?`Qp8>{}TWJ>{ZVZuiP%+9%$t9~3#!7`Y(KBlpzzTUTr@ zEvve<>>5YEh~~<)n`NnuWlv?_c3nJ{_{=UhBzslw@1B|UkFC}I&L~`V>qqE?JW+kK z+T<(p@=0s{{|K0zr`K=x(ooIz+79VEGPyAm?OvL`JhY^`$MENp(@TCgmE`<CsWJKA zl)(Fw61SYc#^3wvvf;5`{=a*FZM*9DHLyNyvgiHeE8E>AZ{Lqg?^*uV)NS8wX`f$7 zi~p_3-23H?<K(&nE8cf3ta$VOeBTy@*lFoAzGyCce%a@jjq?8I^Ne2Jb^F_D^!T&& zeDhcOeg-dh`~GrwtDT<q=KVUW#s4m8oDyXI#rOEL{#(PBYSn+MrU%}SO}`Q^nf;|b zyie*YgTznvB;Q{ui}$%3zqIbDYBzXk>h^bQq1)c#HqZFXEAizLUu&0r|F3p-iTSKA zYLo9}UAivu)x2%?m!if0mZ@ggIsV=!xu<#BuFRVIYYbnOIu^HFiSBv)|5?%FAA5h! zG^{V_HJMg^bjGR0zEyKP=O<md?ei;fas3|Cuz&wsBZ5xIH3)5Mv^zYbU44ToPq=B= zdea^|es1>J>aitNmyW~<3RHjS>#aR!cf87$=Q_h132Qc~-?M6YV^lg-Hgud!GCJ2= z)OVqR%YX9w%ZIjl>}h`g%;{TG`-91bTbO!UwQe+2-^}|l%{4(@=EiD{^ZpK>msA!B zT(-R|pt`&9W|_^AZvTetxHp&MJ<GcM1Kk$=vsbY`x_iOGGLDVGd-`|q@7(oe>%teu z_OWgF;;&+T)LrBIf`9i_tedmy)@1#QylS&3>!0h@H?QCGUb)Zn>V3$o{CH2bsVRY; zWd)rT%~dyCZSVNozR|XHP-S2FL{@9!O*Vgqvuk%YX2zZE4(oMUUF5&&dDWIG2bKeE zwUa7aoBv#yT=;jgbWFgb&%P&Cab67&<MO@{P-gez>3?tDvpHh3nY|+=ce6%Cu&!=+ z`X(%l`TK^aIhJ>hU)$KeU~28jeJxktNPpwKbN=7-zxrz?u4ClSFgwe}pCxyeIeV*t zF3+{h=B)=mOemXICb#Cg-W9!;`PtJmrXOI_4LjY|zEx_iSXp-W7FU4_V%gmfL*MeP z6`bt9`5I64*4<lnKQPVh-Nt6Mb?dFDirCvr{xW|1DDY*LaE**S``#KM|F+3CbC(<U z+Mkh6yAzar^MuYdr))*(Y~5{Qo3+<|Ui<l`MfS?AQ({xsZVTJ|@mf^2?(SQ=PVDM9 z8hL-))(zP)mt$Dpa9@wjJ62^I=igN}JAK=7-)gHR8Yv6EZJ(g3sJ$h>RZZrOqMm^G zhk(L`J0?^gb$z5Hr=}++{<)yAb4Lrm(DcsJ6)ihrV$LZal`w4M7Ypyu{$ZIkN8)&U z$Hyca`|u;37Iq;%0>VEkmEw+kPE>MK`S96wk;jw6M^y|v`vp!a&HU{$%j2<lht0&} z?p;cONAyKh7q#>YaUWr-o4CXE&LQ`1uE2x(V%xi-E2pdw-TFspqleC;>0P&v<o+?* z=%VxR;v>I8_5CqAqTZD~8G^bsJrR1-K1UR;-!VO2@tyGZj~kP=Mx0$Ql6^$V&d)|e z?n!uOX_BnG{<ZF}f3h|@<~%4|<h$i#w#)8}=fX!8KMJ%9%n_Phv8Tex=HPnK*+<jn zDQxS|{bTiUN=27?*V-g)f1&do=|5CHuBn*jFLu83dBvs*$2|vvk90qBou?Hir2p~t z(Y%ebmv@FAU2PLv(!povx<@VUv3bY!qpxk8|G52W^B2wUGOt`#;l1bR<|Fw>^DDRg znEONae`iJXp0mYA-XDGc)8r%jNA`Kz_k`bnls?M-h}kaoPvD=4_f_n~=YN)5<o@Nu z%ttdUj-_|5KN4QE?T6c+x#u09>n`}iI%TKC?`gH&k#AJ2J8vFd6?xF9Fm0*D=D;~O zw=TRDP>`X#b>f37i?(PKd^9<em-pJ{watf!?lrCgNxB=SHEht^pw|$PJ#{PBo@-Ls zye*Nh*OUtA)f{4PKH_00lw31Kf^}lj775;F*C`!M#YdJt3X)J-<Z3cUJIRHIM|7i- z*g4_wF73n_JG^38pLef5detB%MtNPMVA7%)9Cn3kcZlf;T<?5s5PkAbwc^wJfsd*R zZDUlPb?r2W66tc<5h2o@)FJfwXw43nDV;_;LZ);V?eGcd^6C&XUBsp*Ub=`c$z|_~ zcEd%1CQfTUaNEZy&T=*G5iRfB{lKem`wr=2ouWysF{)u*Qw`$Q2(5mQRk(kL{G%hx zj~I8jtr5*mY^w0EVG%xh{^)tbczYeWw(O(Ij|4pgq>sAo@Uu~qYj*j#qe5oV5&a|j z36m;<Y&a($)jz7Q82QKR4_D9;vyHq#N6R+Kt`oOD!sj7;zWcdi>>Cm5#I75vWe0g5 zU4L|ag5%G8t*85a&djY=<StHEPwB3mVOy_s??BFM<y{81{e*uT-hS4_JR>z<gx&D8 zpZNQPX?s2QbQd4vDdc$GGxJgH9OJak!;cKkh|TXjpV0TisfMxm==4Y4Cxq*T>zn6y ztv`Bw!uoysO6AUvHLl-l-ItnLd^2WG?3u2{$hZxA7-qelzpb9BT*X4jfd7B>9{%D7 zk?*Zv*Pi;_HtGAx`lA;kR=#cCY*%*e_&;B}V{5pd?l0Xq@s`EBteK35dH(O)GNJC* zLe6Q2vm*HW4~gC2+nvC_hmrkZ?GFyS*5n<V*wd2b(rpXUw{AXGDSa~PdD5iPbGJS9 zitaUTVp}iedCg+_gf*qVJg-^4SJ`>ur}31n5$k8B^cHKLjCyV~sr1}#551y$y_@)6 z>#9dS-qW74wwU##)$_e7;+F57cXGVmI%!SeI;F_hF}|D5Rob6)J;!!o!xqks*KRgN zJdf$z@gjc13FaevZv9-a=}c7W%+gav{F<lNgirgqbJGd7)QRm=UF8DBGQ-7guF(0k zV$+G_Q%e2X-8Kt#K5?f`JbOyXU#t61P~;QM)QRz$-8rFRl~Iu?yr0&WZJX$7Hqmw4 zpKh^Ax5$*;n@(&#rDQ$DbzZPorDNoi{{`i82|*&aAK8aqH8#DSxGlXZQY=Dn;*JB8 z!Y4i9Q3@>RoW#Py%Hm?w(ZSWRr2EMnM~5Q6NiHrfMU&>Rgs8OtU%C0LQSH~gulIhx z`+e{G^EJU&tLrX@#x7rVZsmo$Yl?24$_h8mjyb!g)O7Q?t7odhjiqCHb4pA%-Mo52 zEL=G{wl}BP^wZYW6J^)AmF<$c`7|qK`|64LF}*r!y=xXs+tg{Y>F@n3C$_J1`?gE! z=eesV?824r@0R*`@ahT1aAo^lQkE~Wo=jLhQF)zP-!3W3XWOPeUYF*#W0vL1tY=eJ z&%C@Yt**$l=-Sm2mf_0JV|!x?Op7jFJt24LMBSwmiCLQI|9pF6%1n!nUOf>Su6#YF z_s^TGCvB@I&R*wMS7`ca_3DZDV|xF*%X+eH^+fA+Ztr$U?R=i~q;d7c_H}M@JEbb$ zY@4dCIV<qJM(C`IkzHve^A<_Q?wGaHMQW#?)J|8ao$I5xe&sA%H~XDe7K7!@I=jda z@%3HT9{FDM+oO6<H1=rqquPtnJYw?Q{zsN4bx3q=eqj7)jfMKTZth2mcBtreYd>1G zL#<Bi`cdA(;6F-rqWe3eAC+r!UhYl%eZ%fdg3x>xpAg}z4c$_U*f=f*?PU(wBA9zn z->UnZfIzH^c!$tk7jqfT67jnS1@^k=8@S4UWQ<7KBf;Mnp}enEV)celiK2v8FCDKN zWu4ESxkY@-nOogaV!ErR`JP_q)fWE6`oQI_oZl<i8~Q~L7YDsNp0cR+mHxbY<$pV) zW(&QY*dVspwtfG(g-;ojAMKe^lf1<wYR$B;?#q`lUvA}zvibKda-Ym5hb>~)WX>-C zX}Xeii-zxYp0ihUbXT}$Z(DY4w~0=4{2q@|zUy(<yqZ={y?Dw&AX4Z^XJk@egu*_N z+efY^?Y^N{))kwy{fFBd!TbMa9=n<~bB1PGQrG6AIeVu4OtO1bJ<-9sYu4?qpK}Gn zgM;UH?w{3P(i@?Dt@CSA^9>EN&a+9~H-4p;`m8)JwAtXRWfI@AeGWPYuIv}dnER1y z|IsU<mLab?1wJod`OnkRBRxH4?#j>ql3p+R9Fl$Db4~u|)DMh2E&PcB=Q`Mub?cet z9}<w@I{d&`f^UAZzC7pR1e2b|{Rbm{F#Y~hF@r%kQOKuF(?C@BK*<b7<3zDDZI%Y& zZx7Z)FmNXd)^K(waz?eUPmt7U7u_Hfb}(y;Xm+CPns(j|f@TNPw#Y;$O4sn-PGo=6 z5}V<^uhI5{?wi*43Gy}lVNcmD80-%@TClV~<hV5>xj@G6fTsoP@`vhMEYcs!%xUK? z5Y#)Ey2U>Hq0}Fq>kr$i774Gtm|wtM*M7Tz{oNtk9sK+c6m6Q0e_)wy_;_nYZe08I zr(b_$@3G525dZw-9>x44(x27#XyzZg|KMyT_q|EmAFcg4dk=5^>DwQ-S5)6?+<*4| zL)l7oyH@#U?mq(SdgPz0|M0Bqn*YrHqwyad`{U<7bN^A=e?<SY_8+bNY9;@S_v`W0 zHQ#@-|3m!G{6Av<=iYx-{v)=o|Ne9SAI|?e?4S8xU@<({DlqE<=l%&w3X5EH1Ea49 zmbxlmj4%<-@8DZBSwh23r1^+@(vlxeJ_6lGg+5M=Pz&q4nza6h-y7lk-G3jk7drgW z;OlaJw828DuPgb{4hu!UuHZ*oet2rHn|k3}wtWWs7Wu8sw-n!QD08u1C40FqTYbyq zTbggTe4AY6X1#ju<#XBMTe@$lzTH&jx_edZ<+^L@vdy>5zNLR_{jL04x^K(hZYy)& zz54FuciH?~+HWbp-T3WD`p-j~dUUi;pZv6`X^n>V$y1xU)@ZFh`RbEsr1L(l>{C&j zwyjZqeX8n{X=J?Fg!QLWZU&f5>P;2C8Dcg$|HQLRtaVWjpZosVGWG3~=uLayDBPd+ z{zTuV$!~P-PmN6pzv;VAefR0_sr-MwOxl|&e>42s<iAfDem2Tz*iUJG;$F1jPeh%P z{Z!{C0hT^>YVD`bKjp9t>YKFqsl-on%dk4d<0n5BHO<jbKY6mKYmV0PlP`<f=ID!` zXf2xfCrEFa_miNXQ)ASopB61z8lxJ1+O%kGjQaJ{yhV%esF<JDEn0m?ZU3~}Px*ER zznirCsd-WVpRjjR@1LywRJ}9)p9230`KOMR9&*#%p9EI=$W2#&;#ui6Z<_r{<4<dB z)X$&h{<LV1ivDTsPpkH*)la+rl(#bYpHltQ@~5_y@pcpVpDO>1u;X-SI61Ru+8o{I zCw3Oi`{R3W(*D!8KlR;<t&e}d@cWhOmwUh3RmJa}e=lBsLHz>$EB05|C2f1--0~Oq zU%dVz{fjx9guDcEuj4WIV+oIw9}7PYPVO+gB9T^;#$$d=@^LTcF_+{?hBs#<`Is(~ zyxc2!%qMx8;q4j8XH1_-e(r5Oru5i5dE>?-5m_~<I>ytarF(skr6qT7ym}+8CO5~t zO!~gWeW~i+_dT`8z8|Z5%>KCH<Kn^#7CC=X=9r$77VkZMEc9{P$L^1_3s3*JyCe6G z;XA4CJ-?4JKVJCpMnzK7NuNBfVB^|l_ieK08K0jmey01G>gP?BNB3mK8P}VwpKX3- z_A~uw>!0O6)BRljd0XZ2J=yn+-_Pbh)Ba5P^TwY?n7SkH2u(}-sk2{oZG&j)%V~)- zr=_y4%{aZyDeOkk8VT)Q(d?yLAFU|~tI}>3&9_ZY-7;^xQKWvv%(dccb;825XPe%e zmEgNYEpqZ&&1)gqvrO;KN<6zIEpqc(%P&1_Yu{d$s*bmtxtMk7)XysyY5n>xe^mR$ zeg4jrivoQeYKt^wl=G{cN<?HIs#NXySK!qnp!{Hsg!ZvRmY?1{Kbaq^u)lQTpKGe0 zqNg9_+9<ScLi>(oqF1{N7l>B8yIgB^`uXNsv(x_BZ&?4>|J2{$Z8Tr!$hyl_zw>{& z|Ef6mb>=U(d13dL-haxPadofd+U=`%tJW{I4l%m?d#m&U{~3+n{%p8)(8!KO?vATF z_Y04=7jFn~e>}$b=l6t-!iSZQ>GAYSRtMErbM%`zGaMH#oFM4Vz^S?0{g|Mtd0*m> z-a@9s`Mtpsb?JZBoa0#*sL7Tb+I4V?maErm!KJ@S`qjAp|FT+<yhAyo!ox&xw#NzQ zM;%L)C(Yw%*I2W)CZgQ6LNH;Eg+AY$@F${<AGG#xW&8>Kr}g8@#9tmCUTc4ys_=F8 zFJGVj-_Jh&{jVth`s;@O^}nzGm*rnw^CJH1?EjwgC8z18X5V!C=EA?kCY|-m%&RA7 zUv)Zf((@;U`OCyp*2{hz3#-4V{p}a~zYqQQK5&0&K5vt-r2OapXS~6CWq%#r_+r2E z-Xuwx+7%n!Pn~e?wa$8U;_*D|cNGnb`>q!rG3-1hGr90cp?vh)>>EL|SC##|QvQiA zZhz*jv=cnD`y`W>8780Ik~U}NIiLJAgU4r|pXqt_IZf>|tMTTai)J1@la*$?dA8-5 zIcbOHSKa3Sf9F2i;-;z#KfL4056b_|GqB2Fcdq}i&$?&sF}+U*tN&f$mUptRIbxAE z$H33_>+yp(5~4nxwEsUn?&n4MzeNUmGxTQsi~n>^?tYHlulXO&eY;lwV19h+oTUd( z=2T5%PKxji6OUUG`(0)YXEy838?)c|YMi*WX<I<Y-lJ9yiQo8MGrC6Tn@OG8T$rO| zl6d-N`Gq;<&teytzdu&(Y=3Y1_x6K-nEwgZoU(uBoM`dCr@!Iimim9J@`o?pyR1_` z$-q@Yty@Bnd9%wJkA|B{+fQ)6cBu=LGn;tc-ofs_`>g%4SC(boKPVc1LOiK(-|c<3 zb>_Zb_g>HY{qFa>&l~*+Ow_see`CEy^|}8u>s3y_k$)?HdeiUYKh-zI{5$!tQfGaA zW4)yIyZDFq&z<^R{_Fe3s(;P@n%8vx@Axl~{mTBK{n1&EUpx@Zep=tOxS7$&Q!IV; zlhd0-ZVQ}{^hlV^ypy@|<~4_Z4t3j<Cy00?Su?vbyWZ5>+I*~x-HY98b3RilbL!1` z4o4kazvV9QTEKN%dWGDIbNjfj@Loy%&GeP|>&@?tPaKSH%V$Vs9IWHm!n-B4eR08~ z^L;PQeieJO;+|Lj;l9^zzv#W$a?khuv2}}<%bs7iaQWR6b?*Mv({0UmT%6#&c;m(9 z{fT~N=RfQVGhHopKZ|$kv5&c$-*-M(QzH0wk4f6v*ppoxoXtrk@kKIszpi}e`t(I< zde9CIcXngVu==&-|D*cr=N{<abz4pRbZf5qMAb#NwGVYA%$gdZT4HoH!t}z82(xML zw%z2+|8eQJ(T_*9=YJagn)f~R)7}TC-&9|mesucP>1U_koql-w<>?PjKRx~S^keTY zPrp9>{Per%2hkM!4a{%c%O=Pswcivhn<ATh{3d7Fq`67UZ~DLCu|9on<L5U_yHDtC zJpG1i_o;Q6PM4457P{XN{eGnOql1k||B>X6Pwr35j1cL)+|~T--+JyWUXQ&Kd@roN zX>ui|OeZrhpxkNYe+8q4DBZTlM}>Y|T)3nvU2X6ELoHc9IGt+$xLp4H(9GnZ|BQdd z0qnOPsJGp-p3rvBVuIMON9wZQ0{LD>nrv2N{&wZd2bt3+jGWwdc|WUsv(;2l_}i_N zipH{X<KX(*iCfd(Dsta7pFFiR^{#^S>$6qK=l{*9<*~fEJcmPN!^0elC&%h+_&z1r z$MJRM2;b(Zyjix5`O{|G9Db1{rOTbJ{GXJO6FW6*{;UhHf;V3=-I)7s){W&WRz9z& zn<wwy=V`;~-uJY!QpPguX=ve-h}qYVO-!zhldrM(m&sZu^K(zD^6`Ve)CDfIzc_sG zLi)?i2d_PU#jUVL{tCb2nmQMIzQSLce|7p+R!i1CVEv-Rtl0fYV1lsik&qKh-&j6z zt*#UJv{=-hvGwAl`AsTYo~A!k-SYhTLXLAA^_&8?yqvyJ;?~#I0W!J2&quhwvfJ=z zPheJL+3r-yrqq)!G`$1kMCw<2sZ{vRxttNABtP{;|KmL=6GGN8^gXh26q)M1yeKkc zoxxOXxA-Oc$AomRhC8rnC97#Ar~O@2C%Nfm_*dx&z0gZ8TA6iPnL<;yaQr$r)53p7 z@8;g1kXKwGue@H&&vQ2Y;@AJ8lC^K~m$G+yIi+vr>#lTh4wa0|ef52U7Gu=qCu?}M z=W0D(qj#FO=bqwZrNeR`)OTqd^j@Gh#m!_@vi!@V{#6r~OlNqh%5{8yucP`~iICT7 zFHc;GzaHPNaPGoy2a|J$+!F5gUpnq=bM9!EgIMj<eS(t;+{&1}UhRKTzEHGJ)vk%p zB1?kLwqVKz2DS$h36?!>^XpmEg6^(gv@5=M-XHY{XWazdtqrADn63qL-*C`PP~O_$ z`{H5#fwV85_8$=Y@})mP`&X&`o1+{3WMqzfJj-1mblilqfYDu@E#`Qj8%LdE{Cv4| zrVP%)Wmh;I&Z;b26P4Q#_3EGQisUaQ+6Urno?Cunz57^W-c^pfjQkeLL2K8gx%Bc> zhbaey@11jRYM}-%r=Y2k&sw|J!e1n3d{(Pf-?pu~Eo;BV(w}9gzV2}dpLG80++@9% z|3y!Cr7u&oW=Uz6xT)w^=Amr;MA`a@y0ywlKGqX_t`lW1o#c~DY4_RW?6}GKVoH0? zCg;RW&U`l)N^Ek@Ji)hA)p`owj2nyQML(Q+RO-qR`&<1FebN*6oI0b^D4K9IA~J01 z)nlu(&)wSCw??`zfo;RV90}>xoqma%Z!m3}vNlQjhS|2+Z=LVTxZB1gUB9VYCf~b% z{%o5wk1O2fwW=>Dn;gM3&5r$*693VYFaCzynIXD#2dB1MVQ|=-M`>$Vj^=Neu9<hv zE9g$s)I~c~zuAaxPfFFuJ9{el&a}`aJ8Y{$ME4(#TUs$ke{I)R(R~(O;lD1ewD_Tr zu;RvZ79Y{y=`1>3*V&sy@;O|B|7aux|FIBQ^utqOO_I!E3z6wvX;b{IrwQvin*6Hl ztABdTKyvS1DeEUkH*lVAPYj+We>iOoLtFlaCJD22i@pP!M2~Gy^**#gw3_qqwKZ#Y zvA0Y;{6RO2@$ff`xCardPDzxdgc`g#vMTAu%+TWnGS#eyIoGhYJ+3u8uyIeOLCniw zZ3TX&2*Ze=oU0LjyobLs%H$_V{(ZG>S;LVJg$fN1Cp(A~=t%d~F)dX{fAx8G>;iEf z7j1hkwF5j645t%he{HlaVCXw+Ip_2Js$J{bbv5~JSBd3#|BMjQZd|+4Xmz8Qk>u&S zQr?FATTS^)P3Av3mcw||_l8r~>`ksB=E?Cvcjo9W+rb*`^ieuT^Qi94aFOjvr#13q zEBuZ|9P80K7G&rD@t1>ImpMz^f**kj#z*^^^@IMXOmICK@o0_6^rXov{;36@^<6k? zwwI}SZ&sew)tfx4HqQ*{-n`;jTJYJk3unz<{YqKDS<2s8s$aEtxoYq6iN`KaJa&2V zG2;ox9(z9K*^;qf_iomkTnpx%TXglc%azOPO<$Z`EEB*`yK%SD(WI4Ymo7CETK*|) z<%W`#?zth}LEFUNo|MSa7FjjdC~a{o(=@hpvmPBm_1}wXqGW2$yxREdP3g6Uy~l37 z;Jxr$W%(NZ&+GQ^%b#)YE=*b%Ayp$$BT^$%)AX%$k)7xKHU1Zuzq<V8<u9HsTW5dO z{S{U_``^}mvG*6g=efuEX#q!;WBdjADF++s{P(Z7zaamr|I6`T!pvvqecWkyNFuYx z$W1!AXTM}}uYQl{F|XvQ8*fD<uQ9zQ`MQ_)Sm5Iwg_kUH=NO)o6z}mqCi-|*;oTjX zf3m!c6WnI*%ABz*bEc#5tuv|5%s$WPOp7y~Kl8p$f|v>S%+|9ipH(+^L|)NJ6EpXo zp+8&oY*1R}=AOuFI_cBQwOP(C5anSz?5HjwyhnPE_#XK)0zLez_MXTw`OZA+{m+6Y z0lc+Q*7xN0mWj`~K68)xxz{?oxUD=k@5q=n`{oulX(8_;LL9&Mf6-?<zW>sGp-VsB z|9Jmk2XDI0gs`&_1vSM%_WYJt_prJfH(x9lKfLpIkw*LGcgg{>>GzI55dC!5^hEi7 zuYJ4Ke!h!(vO9b7`*qIycI*9oSM_9fyz>3n`8DOtj}5EdUiX!@EiL|ZW$(%0@7&8A z{r@sfE9O=CKUM1Q^{fx}LH_>P9_qPFnZ{jTB-Cuv6l~KLPI|s@l6v6D?7)++FG(z| zJ9Xy#^4~hIT0<SzzMt0GGx6>J_t78g@5%+=;#(%LXd2U%AeO5e=D#xb_$ul9H8Z%j zZH3+8kokO9(|N9@ORYK|vFiMmkokon^Ixv8yPUjtX)DjWtJ3=tj$CCg-1G8V#MS33 z=Q3>#c6&P|*jn`6&Sm;mkM3B=OkEPyxZHNG4*OT8tdn+GCnrT2{SuIIT>5kM>m}d9 zzSel1>f1bPqH~Y+`UUE7Z_Xab{c5ATdG^JOcQa!mT7x`KNd)vhd3`D4y>WO@)4UlH zZziss_~^EUP}h`&OOO40su8~I(wlW9iRl|RGu*IzJ4eHF%f;!pTXSVr-_XCU?>r^; z+`6{?D-*9X9AB4wy-{NK!n*>OZuq`kCg8m?B;3E|PjkqXnO1W%FIX<sJhM2fdHv(? z4Q+XkzMI9)-gLU@{Gs!VQ)G|6f64LFVB+lc&Ns#Wyz`lwy+``JTG9`mDd!Hqe-v_v z<(IIX%wvaDJ)ckgvGS^Z`2E`E_)mv_<o13InJM1!BiH6>sPI$Pikc(qL+vb%3BPnz zoA~zT`<teAOq{=x54twYQ>?0TEC2IrBhU07rKNMKj!E@>J-1Hz=5hX2kFOYSXz|Hh zSk;mvdCKfzsqf*!PsT4*raYR_%>Pi?Cft(asdB)**6$DgDt%gW;=bD@XIoKG#k0qy zFPxe1xl1R$#ilR0_aTSR2bZ{x+zPh`hQ~KO_VE88F>hXa*9GamzKJXHkEMS-F1Km+ zoYlU9f7q0sv=_EDzGb-b{h6_)&!LU~>i$I6^4qV@mtbkWVYKYt^M(6nD|u9Z`Ez(i z)uXuD^rb@cf1N)ZX@9MCWqHzy_Y*ocPulQ&d&=8@Mf+rx&vms|gb6+8GQAslGh5F) z^Xt`(S6APgczIoKuFb)9>DQa@lx?~z@hL$5WIq4Kb_d3+_nNkn$Im4EUQ`oUk!F1L z@!Mx*+HdspZ@oQ`zkR!Pf`8@lcPz{PuKTO!ay$0z_k-K2Z`p3V{&m}Lr!{x)%Q3us z)A-HdL<0XNcIQ2|SLB$_-+uf?vO;$Ag}fENe_O@{?!6)>Ra6{OX?W_id!=h&9NSaT zC3_ZWu9rBa&HGf;y>jXDJw`X?-<t1q?263t;J(ib7wi@ItUD{~r~yA$cJL3bR$dL6 z37<-2Z?S$2Pvl7s*1Z>S;liV>+gA$(zYq3YU@m;bN$t`4q?NBO1fIRJII5)O?Mc1- za24<A{pUKHb>3N?>aw$aeX~&ayTv0Pv)*+}6t+0NzR6nUV4tJzTo7g{ruMKVK~ASl z)I#|NlXas0InKUAnL8RbH^o2Hvq_UWr=Kf!`cYxq%x2Y1P8P>?&T4IXWpO&E;qmKf z_4emox=(IoO+9L`dM@wboU$^W&9^i5zLm-Fw7hkhg-1ANPVUW}A*VMMFTVPuOm5SL zPP216-|PVqH6Y>-h+qN{O(4Q)MPh1q;ki`xn-<SE#c%3Ph&ZCxl^D3?;vKy-@#7nI z^v*k?*ZB3&#jNQ^HY|zdIvkX-c4zD@z2-zo>F3#Hk<!nzUr3%xj<|O$a&|1^*W+)y z%+B3?;{_s4fe5XL$#>Ru*|prh8e+X=b#nZ}8_8M0zt=2&#TTu4yl!$&qEQt`U)>_X zw%!f=g}V*EDfZcBa<r}5ZxkPLWHL+P6>)q2*wa6rSEW>~%AI9+!?(ca!$PjLPFKF| zV&qmk%x-b{blcV$Jz>cbvk!0E@c50{_QGTF^UNRKy?9OU!R?=!b@4|!TmmCa#P=SN z*ckCf?D>&oT|eywq1U6b|86O~Wt6+V?Bwy<kNZ^OedDd~JKR^fuXVrfzUlt^^H0W~ ziNF4TTm6RmS@m=OFZjRgN~&07klBQ}PX#Q!^Cr1JUF%>lK{>$eg2n}10~-VV4Y~zJ z1?E~ZQ>|Aeg=}6S7r1zlnCsgfE8(vJ{Z~J~4E;LIqDgwS{?+d<#0$2}x~GwH#o(3% za}TG5*WL6OLsMhrK8x(xZ_heD6DjVkJg_H^b<LSD&ex`^7k}+EJ$x%cc3a)iiRs%C zUM?>-xMG{-*&3$E#cij$N_X+UO&U%QjVDd@2vdr*Rgs>U<FcvJqfF^$XUg{pGA=~| zCm$+Wc0N&=blF*`Lq)*z!-N=@BEgeS6?b+%QJZwz`IEp&XO;eT6(LWRNiP&DJD;dd zy6*f*@T9xS{Prj6ljeKW@oPFPVVKAy7c{}cQHj-diNHiB7p_W=M5WeFk#7@JlssJ~ z**sBI(if~e>D(ot>9nMyT|_l#ibo*7rrQ#UiAi!nb36)_j@m9^nJDDqRdM39OPt!L zP3==uf+l%*@@u*-5t$ey7c|QwQ)#K~5}t`hE~hFyB9&4*r+l4I<Z?<-^SR>F&ME3a z_nfr^Ryr(cY7bEfn&{!mztUxi&_pk}pqU=2N>go@a81;5SykZ?subE8@^wO%%PPT@ z&lInAhNuVKb<Pr4>A0k={fb)9Y>!<2mCj4}CR)h_^?TSVeYH`U>0vZ6g+J3{iQ>dI zxl0`$%1XU9OAIF-bCIg{2v+j#H2FFq&1IHg<}<~!ohIs+?l?yYWI8TsZQr7DX_ALG zf2Qja(TQPlpVTIrckX$qnA@>M@zOEpTSA%MOV+k;QNGmYVa=cEzr=RpH@QoV9_&i8 zHcw=g-V0P7ceWCG>9J&Sdx_GeP7ihd%IPO|yWIOaVV%n^p_i`|?{<_ZUpni2Px+JF z#P2pstS7#6*;Rewx63{CPy5=xs9c)t;m`llcZvDLdvcfBJ>->YZI<Xy+~@ME%A;QC zZ|9fq6Bu3C1SB6QGI#Q*7+r8?6O?pGnb2P2@<drlzVbwZQgbKIw+V_aZ32>y6rDSH zRE@4Uw+TwRrOarraeHE{G{5phfzshlp6?URch>klDdv}SOktTQC}%Y3gol!{ZHmam zKo_^l6B$a2JA1xOFmyR4Ao*DFaYv7`(K+X1!jk?ed)j>zj2cg{@Xz!}QJUB(XViH@ zMQO54iqXWAE^5^$M3jO%d_GQC>9R~{<}1a^9X`rNXPuV`&-6>#)qY07sQCmB|4i2u zv5Ap#Mzc@kC~dY);hSjb@~q-Sj8bvunXeNnU7iWfe6IMp^NhODeP=O&NQachb{&;X z6HYksN4lg4PIQ&~q&iW*v*x8@cc+fprW?-F1R|YMI@@(rH%&Pa#Q(GFM7YboPZLsI zrU^zqQ#{?NqrT~mbC^J+V@hlL8kJ3xPI&Q0x~7Ou43*n7>qM5)YTFdviKZ^sDo#Wx zWp}RmI-%6%nqcH}#n+u{)HmI8HWRq%kkZ_qqq1q@2{-<mE-AtjedRXIJdvg}yR*RK z@w#IxZfY&QnZ<NAtoUM%DgW6p;lgdVc(^Wf`6@<j)O6A|Q_VQKOl9qjDGNnsZ`zU+ z+!>amb-ByeG-_jIYgkU!gPL-lD~ql!blYOJBrI)NBkN2BMlMIs6+BxP3T|oZyTHtL z$UwsTwX(_a<;t_3Ulu(3^<~Gi-z6@^bykZi?PV|CnctW3&)<Cun}honJ_q;p4=!q# zxU6O>ars=kH7;+uGv|dlcUg{2Qk?dUIorYb#hbY2CJ_wU3F>d!9~Us@9jcwP{`e*z zoyMgx$1S#=dT{Q;@ylI@S+-t#;H5SxC8#CE$a9&C$FfN&Ql24Qmo;5WO|-vel)bt* z=gQ)pf|mLVOvIKg+o<t1+&id$+A_J?sa0EalzN{|Io5T>By8Egtk72%v#h)_%QvoS ze<1nV@y1ufdkuxnSFV@|-F`Cd@}klc>DkS>2hz76{-(BaFYAWAr7UxA&CV=8{Bc6+ z{`tH7GH%yyxZ1kns^yhemmX|Yxuoa4XSVb=k3DQ}YRj0zH_cO#_E;3A#eO5(##+hv zj@Y6w!Qe3N)w^GJWW8<wtdwOtD}2e-`GV_oxQ|y_&3~}&uKiTDN*xY64*QQ2i^^u( zvi0uwl|Sp;x4F0?&i&q5<-6y;C0VIfZrW}4KV)CW+5;t<9xm5e|3-1~4VDipzxzH^ zXZQcI;oTbfxO%?+HLBU`i=G?GW%7QL;y6=lUHxXF`o>8M65qWlKIr@?QjACZ@~WT4 zE9bLj`qy|b3E4YeE;#=%+onjlomJI)6HFtk%}yzYzu$KK%G|kY^gh36zxQSB%H8!5 zhS%;mU%4w{x9p<2u=eZ3SAT!n?O0;xQCvM^mwNNYh<=~F?9(<k+_LSMu<Cn<(X^Aw z!TGvR3ntB67qWFz-?v5ozkV&~TWi@JD^?s-opAm(@5N2&i$qU|-`!f&XS+G()vBd_ z-}F+a=g71gYs{IqtNg?HcUDsv9e)MvH7tHL`IK_!)WsY6cduL3r~UWtt`|0&4u6il zeKx>3%RYmDw~KXHR{0v<rS8_Nb0lxKe`?;+|INp$v)u3I=A`SD8##U|%<K7N2@<?D zF?^}5_BpdcW2bu#Uvsu5AN|Ua89C1~^>|lrg1Yh(&R5|+cb`|-I7uCTw^*gK>h`1b zqKXsemb?kx=qh-LdlmmihOgTg1wZZG@_xxZjT`z-ySi3xx0YY}Ez;b{u65<L?ML^X z{<QLou$Q1MvrOtur6+SU`MIiPPYWsLw%qGyJjeX8XSd*|PgmwoS(oqbAv|-{&sh~$ z*vs5cB+pzGx%Bnibs<~*ZvEb%o&1+8D|k|rz~0+|YaRXsSMQdI_Tk>G`Y)<du+Mgt z?XwHg&$rp_*8e7N|84%i8IN4P>}9Mr`gL2Q+G<;_?C&!=Z%T_VG|&2`^(AH6ZT(d{ zb#1%WdEH(6ZnJfQHp`pYu^+3Zs6YA^le6$pT$|iw|LeAb^WHiv{W9m9$hpd0+xi~{ zaorBE;Qp$tApQ6G6`oy<zm}VbIq&|cd)LnR*Zq6?&!4<zd+;+mXKVMVk3IEM;w*jE zYxOPU@jAcc%avH^j~~9=JvQrZN121kEyGNgZF)EJSTujDY`>^ip6>l|@}|qy$EMDA zsWdLVFKYdEV!r$7_?d4@ZI1@8+-1L(A^PaFswIyDq|QIvU?}&}Val(K_I#f_?jQT1 zChhR{_slJf$J{TTSE*i-YIyIM)XsTNR+^X}>yB{UE^j+^QGNSHo%ydLkNuICh+Q3( z+gPi<RNUYdE7RpyZKfuI$7k1NeP+!19C+nfX|?7y_s8{5>Ux%c4_mQ8taW`*#N<O( zB4G<Q*tA-7B_;ln*A=?B|Jt!@_juVB@4dymedcS{LpRnP$~<hL#lO5<^{eM6x0WT0 zo)?7Ljdx7C?s-Y&k@-oLOfkhwk4a)B(|jturtJw)5?N$(Xv#Y0%%c~6X1<tnqd=Kw z^TnyHA-DO>mxt6^gcr<TuyjuHi&f53(xrCYGx%$C?(BZnrAyb{S{M?tDs$@FgT;>+ z4!!)ii)n_x*(O^xjzI6d#SVX+LPSF^`mA_9S<-g?ntR@-U%YJGwC?B+>Bxz%N~V|X z<Cy879n<nk+b*=LRPfb$ouX6G4o-8OZ5{b}d3alAT<E&sC3Swog`*dQJt~bo?{b_r znf9qtIz)bjtfKIQ9(mJmI+BW47ueKZd6(H2VtH#>z~g}AGdm++@NV+`|99#e-q?cm zE<e}1n9tRJ;nj6v>XGHA47LVL4!FF3hT1=?Gl%YMJ@E5H`qCvP@Ax%&_-Y?5n=q{? zQ|{Z}?K_v;=yB=szU02t>fY323)6~r%oq77U;62blx5$#B<IymtDUo*vYlT$y>^y% zl6Ic$G}}4aDcbqAQ+)fj_Oh0;wzAf;_I;dhIaiiX<=7>+;Pu6qRY`YBtlIDKmU5Qz zmU8bEe<fFCe?|F<aQ)ZBjDQ!)IuDO8^mm%y*4EN?$?}y{SnG?ss;g{|<@7|#Z+48$ zJacG9D}!Nl(zaFFsiz+V{FqyCykL33^AEcp>OEZdFz?~_Lw66aKD7F9_Mz;<uMfRG zEPY7&@a#jg4@V!0K79L7eEatH@|N<p^49Y9{haR$TNYc|9e?kk{=mg@SF**jWJ^c& zTN~$25H6EZKX&p_O6excn{#FS{L~MgeEOv9lSQXrocjF9_cb4c6lhsZopZ`hbor{_ zvn${2d32>9t~ASP>zrGDvdh;6pRYXo^4*^IUka+M_RhKIC%=6C<?}D!^AxyQC(qe$ znLJm2PT{$n^giS3GoR;_ZnKQHzCBm=oL~C%&A<O|{4V<;G$eX|_OmA{iU-uvr_c0c zQf#^B^nNeL3Xk``OTY6iQd(4`Tl2kXN;j8=uS4b~M*&t>`}J?51Vsbiu(~>A2Hm^$ zznG(aQTX2XKX<?1d;aG}pR%;F$glgay_p#pzdHZQ_E!sj`PHuHTPc4fvD9U^)e_;7 z2=!NLyH@V=GQWJbl)HB8KDYSQ(XU>YXy1+6elfSy`fgnL1=&*dyT1Kb7JtdGb?d+S z_)A6Y^m&W^FM5Bi`>W936>+PkzkK@3@b8Yeh1*}O{pGpW_x+XKU-JHK4}O2~{j0sd zZ2#{2=kWfr{Hwpel>ctDTVQ{2{;Ts}p8w*WoM+_Y7<?jS)*-diB8E4Yt<X&Cnk}?! ziDs(TY@=m!Rwii8l3J#A+Q9eQ<ij^#-_eP5ezLmAUNp>2bg9>>t}HL!(DYK}t-<9h zt5+_cwOnqYUDnblf95NvU*$?I>|6D?WV7F;mnNR&*XCv}d$%rsN#rlJTJEz~zrT3- zr6X?T^$SINW9?nFBa7!Pyn11}>95Mad~2`9zk0mo^c2(7m%hRGo?M7tHfg2L`weDO z7e^L#)`aLyJ^iHU=Zu<|brZCoYVC|#H_`vZ)}pyF`sOEkizeUE*?!{irw$vf`YHA& zlRxdSQS?6*{3*RMYTm^3r<Sg#0@q0`Yg;XtwM1&E+iJtCHB!rut)6|Qq;&tRg=woI zv$jPok_+{|YP2=hc4^s)<yVcfmfu=BFI0YI|5e7XoxehAm)V8Kuh735{;J1n^*O_s z;u6-_!0<~`OGRTt!!KVg<&6!#erao|Y;5@T%U?^G?*^D(>Maeo_29qe{3XEFhyS|r zm$y}$_Br2QDSxT>tBq~E{Tlg;++UpbdgNb_{;Ib3<`Y9rwe=^{KS?KY%?J@Tyri+X z*KpoP--Js(rpfoCr*i!ie3GuPdD4W))DvseQo_WIvbkn%Z8~$yIgMFibK``Y94B&k zQp^N5&E%;(({atE>2>az3(`rKW~wbe{rf48W$?L4o1fl)D)Y0UCcsYR`KijHeKiqw zO5jy7F*^2><WDny68^dJk58T6{t5A?)<3!aN&4qn8;$*w@1J)5#C|pUYhZ1t{ndEh z0OqR-rV+e>&R1)*R{hfd8vfPX)K@ov`>N8`h};0_t7=;#a|5HVPR^QL<^DGC{i?mM zY`^aN<?uFGe%0SsEmkZ2R?fegId>uVD<`X9@oSO0I?i2lEj5gdnSMdFR5Lbe`o+{z z%h<T*FZ6b8f4BJetGZqL<rc8NivH?SJA2-e_t%ZT_}F@%zgB;}_zUwd$G<Ic*=n!8 z{%WyX>Hl*6*UVbC`B$IwNFLvzmLlYHLuHoA<eXJAR@F}`xuMT)&SK8CSJ08ooo(~= z{kle-i|#8IHrqMIyR3GcnAl?8baUDXv2X8%&uAF;?L8w_yxDg8d5I&}`5u3k>Eph0 z?Bj#DK9yk0cd8$3@)j9Xui33Jaqnd@uSeSRm!t$AzjAPUX@%UyIKkRCUt3<w#^kTo z*lVzO)yEwtw><t~eP~O%)uoaIt5f#A>;7+edBVPb--|PT7MqRFy=gK&|KQ9zi^<_9 zf@EC8zh$Q?uRG_y<<(;LqAgNu+zt31&n#Fo%R&6!&N8{_HaY3%_I`O*%w8DZCz<DV z<MrDUMIxsQdE(R8ziLT$+hj4%tT$<Q!tA-O8|KCsn_T;35;d<gyOK-S`cYKbqSWv; zPrZ`o&wqU4hK&5fZA@==R{ndl)_P)_j+LX>+?&_mEz*<G-?!lP&COxUtZ!bwzG&sL zb(wzk#%pJU^Uq|oxfZnf$eJZn|LN50<??J})xR8kaN(9mU!>O5q^?=FG;nU`wOwKl z^!*tuqg<jGik00~<eua$<txlP8c{0I>bzKDqgq=Y=UpeyiYjx<OUjp+Z<)^c<h1*f zyPJ#Kq=sqB+|=CFCim#{>L`nT;i#I_IXSW9{M|!$0)<l+`6OCCN$!!E_B7S`)TFbL zf#JQLs!`iF+&|Rw>`MHD+iuRumStaJub8FR>VDh(_fq0%iFEO!$JU;;Jar<1+xz4% zxo4)w*{?0;nR{?rfMa-q_l8YgEo&y_^y-(Vu~wuBYHIR7XKwpcbZnyE&s4?8mh+lg z-4oec<UhR8F63FKv^sFv8pZ4&!ASROOBZe0m*a4>GE{fPl09MDmR#C2HODtK)%u+3 zDdzQAoPSRKy~5zXt9Y7|W7dRIb-R2owB_!Ly}<X{zd!R-%{Q}IwJ(xBS)S8fT;gV_ zy<)<-_0qv&%G2`JIPSe^#a8wF&rB1$f@T+WRS&*TR;*2b8Vf|e%N6=8U^@S?dCP(c zlLbZiHqBY1V11%&Q}ZRq%H<gWiYuN>;abHKI(L&}?}BB)b}MAB6l$@2ZD#XZx}fmF zk(EL*q9(<wSi{+4-x^nnY*hYur&5LM_C$?-+0IY5CTi@L?L7Z*;)%`5feG%5Oss`c zZ%tg$A=}w?YvPI>vYlSHCa%~b+j;8N#1%Fvv9g=WGFesfqRlR~K93W>{BybFoCw$4 zjaLhfInBMHG(WvtOU&kU*(IKD)3t&lubp~UIOk%e+2Sdzmi?!v-PHN}Xp@ENsZ*Pb zR8PLzWc9pcYfA35_Nq;CubrK*-KzPNRmq!uwDgnJyS2SJrzbArf4#BAhTZGi!y=8v z#;*l`ZJbsZ;^Y^>F|kELH(PEW*YU|oJ(=&9e(Onm9u$9M^1+_i_(d0cG{Z0G+I)Uo zBCdS+)E3Dd@8>@gE7snd_|BmFrS5;m{~~`yo^XG%jBRFeWLzGt!2Gg=|BpgJ70XP= zWtX)zghUG0@fS78Ja1c26mWB=;R>;k@+$VNO;LXL7vu$8e<^OlBW3xwd6{Eydcp;p zjE6j2yIAkeRh$;St$don_j9*S?%iBg^j>E3j`C@i-~Bqbm3wX48@%c5+^r4O>ADZ@ z-SjSczlQsc_4i|YgIB$sTPZp<f-@w0&5>yrT9^AjJHBe-iW4(Cw*@5|i#&Us(I=+& zTq8Mh*U^y98Mf+%Wvd-e_S||ED0l3$uSRR&pRH4-f2@u^mHtusY5E(pIb0Du{wsU# zAD@_VWbVPf86V9ukKMlc#PFD&`@W+$MH(KzTqgWGHrmlUDP;GY^bKC?lKy|3P}iYq z?SFo;%CRa<8BfWVfpTtDf+6WbIc|qH<t>fc_&jn=q_d@a#S~?KjaAF%1n$~lE_pSL zzh=XC2eqW9{c%h7=LZ{}Q?NU3ZT88i?(u4!qU67|4t57@&tKa-Q@Hqx%)Facd;8MM zoaQI2n{ze2GVRTj%CvQ!OGFf;U;mXomg_929<ydzQe~^RYQ@~uJO29?38#y-Kkc`9 zWLVi{`gcvz%MJRmUX8A|rX2k7i$OH0<gaF`;W|5aSB2iBp5?293a5GIYBA27lE`y+ z>M19_rwZ*dZWp%)vwqm9^dq9P@XO(lnG?S#txB3`61v@DR#wyItp{)J>RD8~iv7!- z8`6(@moB@PdoTCOso8IQmtDIz_ukwq$7VnBUAXPu-FqQf&wW2H3r^2(GjHBiwRsQw zirMDZXS-i-elGP@ygNtd_}kgulV&{bjm+{5W%qj8vsrlki6VRHJL`FNXP=q(g!L7- z<nq-ecDp;Y4*k(t>oxiG%^cSsdE$|RjL%(P3#SIG{%`ke<D$}({{EA9e%0l@o-f`V zvnus7gIwolhHaYXm~T|uYRIR&H}~HZciX37?|rA86TT*Fj5%ZcU`^j%`SenioUr3{ z`CDUrCvD!fbxBT~yHwTV!nEzJHOC%o)=b!2Gh^}8so8~Y_m;1mVz>N!przYgzNy<+ z%r4S-wX7@0^XJUdE7hi^>h~^@GD}Y4ebCcsx`4}j@4B1W--4VspMSI1Ep7kL4yoDx zXVR}+sY%?o;Mp_n&%9d=?$3PxBI<LqrH}5}z~Y{$nUkNXY&A|lBbk+duF^$z&jj&h zesPngADK1r`03NL6m1-B_jahSoW9(4e%^;mdrMxuPOX}G<^1VST><s$XM{IB&e2>i z!u#=5#nX%x;RjbcDDOEHCo1(a^mEoE*UdeF`X}a`JGNxEP296DzIm_bYkuzdH08Y2 z>~%&F(cBxKsjXPmRl9A~;#a|TS0{Y6pZaybrsh?jtqIlp{kA6Fx!9+x#4I-Pq}WFr z(QE(L#;1JwxT%i&+Q#;^)$8l}*H+K}$5ZO!{_Sv8@r~@8>F4~8T>CBYs>@9K#Fq0) zR`Z{1n}59Xe=_6$^$`vx{1Kv)KRjL$9V@ms=V{|lyLi2XefpEUXI$?;Evl0)oymQ| zv`D$Qa`RKQM~PC;zZ$QQJHE#<B>w!>;+2B#eXLg`EZ%Fm>|>mBfBv&Kw~y^tl==VZ zLcrwdme%(~9z+xwAD?8hi}lW)(=yK`?=wF!bKrY0lXs$XMcQJE<dUZrmV8z+wP9!K zr1V8U&RR4x^v(7c#ob2RPKn+L|0Wu~v*CC|%2p3n8S_u8n^q~@juH%=vUbz5RVTNF zMPF5092dHN;_|rg^~G~)gZKJoZu4?tz54rA?WvI8Q`UZ+8@BxBJEKxH(W{YG-N|{| z&ZWK8TIpSMMtAw?V9&ep-<MzdWmYSFJpT0NO%Eb16<W9+1iOA%DfA;`>dz@YR~rOg z%{ENqd40p>SX}Rf=G!NHJMO#_HE?E1zGC!ex2wP4AKyp$zr+L1w8|Jp*~e#|H?BS- z_wMkkt%s%lW|pWdNM+KRR(RdD{N$QLH{Q=G|GDe?8TOjH?avst*PN4@|2%wM-@6Zy zxrGA#RXi3Nj5C_Qr0tz~eRpVnYRp#OeC8zO5S19IcO5Z5Pscn-xL-8w{dHBof6v+f zvs%bAK3BEKKTyd(M?dHDz7s1t)`mwMd2R40b&dA%Vzn6>+fRkx5SI(nd+lf#I#X*^ z;w!(b1<Q*6U6?rWCfBZs6K`%d>6mzPxrtZpI=kf`UwMC(y}N{OrL)P&uzfGfO5LnW z*ps*Vm6&^%X{=2=*|+>_&&hYo-mdVpSzi9??iT46-{sTh%yd}K=Fh(SMepe)|JU#M z%(7#1%iCEA*ZJO9vF!G1h<)BF`n+9~`&dn7MEjbpUJ<Jsw^kjf`EOpN9@U&FxH{=b zmdJ`6fwfyrxt^UByLR#3E46KZe_zSjcDdam=t_d$l8wB#O1HBn?LT!(&?eNRf6LEB zCf*VCm;YA&Gv1M3x3O*g=IaNa)txSlJhAz)s>Ix<RUzArOq7#9FR7g6HFNqI`;Eo# zufMU=j9ShtA3US~vE=P&J~Ni<Q9n-UJL(?X`Z-@`!*2WY;osi$HS99%-^Cb_rT^~s z^v-N<!P5s$I({qJH}&|{pQU~|%WkG^|H(e})489MikfN<+PS??Z!*53a@PNI;NRa{ zMVB0VrEe4Z?X1{qX*ZwNo959+<}X`inCBH<8fyFPteAN!leuW1tb}$dv$m+|+lsYE z&jf9rviNV&<~gT+yZ>2iGd*|DyRLezYo6!UT8lls8ZkdcL~yg^GYbyWqk;bt=iSv^ zp?ObCed<NSl|FrwPaV5ax8h%6&`pk&H*BlkK3cNrVwUA=#@GG(W^HwJ{&w@=zXbbG z{&TF)SGY<2cQ^gtYEu)k^TeJLMxxJhKl3g9^<?w1UyAle_O|^skhJfg?=)}zd{wz0 zx6G%!{9HffD3kwUr8-6X$(#Nv+0+^C@4Y|m)Q`7+zlEH8|DrtQX35vxfqnNczxNgW zyRXiE)jR$V>;b;@6YM*(ejfhwFyyxU)BfYLP5#-O6n%ap$@U1_x7gGx)~~czt@Yc` zpT$~Na&h}B>y`G(XI)KV>=$0YoKo9ldtBtf?9^vw#+_j^zNTrfHL^adcZ=a)u2Ft< zdS>_2`JX$V&i_2~>HN<-pU(f>`gH#1sZZyB-ura^=jNyLi*I~7Z<+M-`JarR&*yCV zQ|uT0&oW)-|D4U!>UDIU&7Ym|^SN5|znzsj|L=&Lwl|-@|G@tnQ~!DXpK_bA%7k&3 zsp&Gq*+sPne(VsN-uEz8xc2ewIoUGZ=C_Y*ZJqNf&+MLLp!q+a?;#qDqRT($^6fnM zxbbK<-<yegr*G%peJLKGn7l(FjFIE8yvnLct5j4M@=fTma*zuV4hrz~Xt&qk775{# z+qv##f|Y^Q`=nhLN}us<ZZX{TRe13Ob+^TFmTl=1)T@?He|zouJ|m0#)92$fx^)-K z%{+hY;>D7byYru)PrtkU+Uw6zWdXn5uSna|ljW9_*P5%d{-WEJ4U!pbftw_=+Jd_N zZ}`ul6&=|#<6bgf?J-Mtrsp#8pDORqYMzp^&)i+3|L4g$N)KBtw_lhOtup!Jr^=rv zzjIY|U9vfUdV$Y+mgfRTE!s7FkM8{x$2awhR#oWAE#b`@EBeguM>~k_6}`u`>ebp$ zVZo;PbGOgSs*v8hHsti}cW;;cx_A2C=_^;NuU7Z2`*iQiy+zONS>LNJ*}DC_wZqyy z&G#J7<?s8>7wG<e#dqb>Z+(@^Elyh=w#t8>JoU+*e6jVVeCaibPs%%U?7tVknXxiG zXw%+kk4lSR>ytO0^w>H7ykTwU_w#IF-0WkwnAYg>W}iNAiz_krW<<2+nzbg^!o;$* z`?rREdsV?(5!$==*q%w#;=EVA-TEymSa$u|>(gFU&E0b@<oxSbrAyi3{MW0SekuEq zC7rl6JaOyU4Y$N1-kL__X0O?%9Cn*?_1mVaWrwrYAD7)+w@od#lrzfvLKJ({Yo~1I z3%6J@a%WuM)grX8+w;QFCwF|_{n<X<Tv`3b0gstYubW?g{CZw{p_8PuwM+DZ#1F|I zLQ)?res#$Gt5Nj~^Sw9KZJf_DZ;ig=_K)*F%eOZ-=XDiU8@p+VKbo-io@=>q-qZc9 zi#51ToMf;}WwH$Y!1Qi+kjy!$v_i3Srw>&wEsV?UN&8!6(X~0Cae9ZFWJILp8Xb1Y z-lJJ8Yo0ya_2vdoT<6&ZJXPzO=FLuGJ6ojPS6V#r<7C5mI&A)OPa@|&uu%}MbYOkf z=|A<rWW)WLwR|7mSAI$R{<ZAH-?K&U#iC@&pSv9YCz$)&cdxqpMVW$9E`wMpgIMKj zO}SU3Dt2r(KQi0hcF*56<@LYspZa)zndQaUgfjNn%`@iZZNKzr#Tm;5Z?twB^}o4m zma?YoKGU;fl56j-J)nE}>falpGJDOZ-=1Auzh?XLx{cedZ1zju+2x{_Jmv31n*)EW zboz^y<-fP*x>N77^|!poqM~({UHea4T)KAt@)gd~F2N;h=Zhb+J(Ux3vHOu+s^Oi* zI_C`kg`Inydv=eCO{iwbIq%{<^-Y$W9P=OC*yNf2=tk1su*%(=8;c6k7b(4ZK6OHD zc%uJb-Sl6_&lY}L^>a^6$Xr#K4f(q7r!Jorm%Co>x9aPOi{e(;RWFQt)7@5a_$K#F zso$aZLh`k$6{ExR&&{i{`+cYMp4B(k-+TX-=>DF+_{t^g=W`domUya}^>q3d@1X4c zeevzLeysg_?aH<HkH0T0)7i{=<zD<d{pEcBqUv=^zij^zy<&3x0egqJf7kzAzq0!% z`xQ~SW!4q>g(8M!s}2h8_DY!F-~BGm|KRMJH{yX@v-0Mg{GPTh_vGKq@^}9JkJf~6 z`IMi_cw>3-|NFkb|2;kG7rc{Q?W6L1-hJb;y7M=F+7_QL|MA9qf5dL)ziTe=|JPcy z_lx#v|KmD^n(GTKUsrROElxCUO)%cjsvXh&R(kj06*j-t72NdeN`Dak`$n~0mc{Ml zQ>?q4<%McRT;-2maPK_*>qe*DvQ?RPj{kl0`%wLY{@9YAeSP=OElfYSFmvOqwR@MR z{aw~}Ux#J?&)1PJmzFMnz93ZoWdDx+%%2RRzXU#Yd;j=fo82PqTfFOT?Ec)c`}4y4 zrKKkKazk$ac(q*OzWU!|s~3M=FaF?Uj+?_9SHBJMmP^kSOsneK+`Q$!Y5)JW7_M7q zBEz5f`2JnDI{wI2;jb$Ds*KW=_fKWND690pL3Hi^-s>*9XYR?DeN8jwoO<}j>O9l! zaUrj}`#u^Sizq+(%O_<2BD;U088?i+J>I5txUNC@h=EJTZ;N;S;g=UjxSJ;X_#U{z zTJ)PEsdi7+@kyr-Og>u0`8j1}oS^x&UpFe(-^`jer}0Fhd&!gIpOU{xyFU?3=((p8 zZCxd?SUu^BN}mR|#r}vz(+p<aUSL+>w;?w7xkqu(+$A-y)>wJ}6m(@-<iU8?wR~yF z5uwhAMFQR?Nu3XWZ0xh?lb@}@TRn|yR_8ObQ!VGuc6~IPymRVN8NTMjD|fz*5Q{!; z|8vg+`xIH}q}LwpOSGSP-8wj1p*w*4m0Pfcx!p0Tk_&?0G6j}5U%o%{flui(>+Csm z&&@uUe$LSRrf>P_onP;o<>i;Ju)a6<&AAf!((60KvTyB;UtjdTwb?mr_M`7RS>G(Y z63Q4o`IW>5y_fFI*9)HUTNqcpeVt(`bNv%rRNn&C@6rhei(kBU{qj}qoJG}1$=!v= z><f-XTRcAQeXc?-eNT(=y<?L0u|>zYEgq-N`N((9Ld<-#ZHA@X^-p?Hen+;xaXo!< z$F%PkinP`}t=;lR=K3ebD8J)d-#DM1xntVj3`_CrpXTOzo|eA;$u{cK(XBN-V(ROj z3U6t76lLe^ZL#iY@fMY1TWcDpE!i<`{l!T&3srTG{+knaXxrvKRhIZ?|GxOX^Jo7U zyrrG_#lha!pM$rkENDI7_xknWJM;H-eVy=8J}LF%y(FbnrpKavKYP6QxBj+zrCnCP z=&VC<ljXtYIi}}$p9N`Ds6?Dt9WA4?Y)L}uhDno}uO7@gC2S*Tb1;1!_qD)#3CSBK z?%bk!!|SL1=U4d=yVJC{Or6u4xwL5hsz?dx-@Y!3Ec^cEM#V&TynFIk;eVZX-s|~+ z@3(%wlWzLQe~p~l!bjdKeuz07-OiPEQ&9B&ycLpP-H(3%^DjF3<6gyS+I;=17wu)u zt811mOMP_9X-oUJ2fyXx^0eLgu9S0rjb;COx4v}whyT}q<u%5yd4KCvo_NY$^97r% zrFOorc(RXw(I#v8sdwE2ZpNOv`5`hYFMIX5*DKbZiplor_k5Q7;z9et$Upz*J+M1* zrS9Sbr?p>YV^ZhmzmvWG$g1&jw_Zrp;#}bm|L*K6%vD^z{`ailxq5HT)U~e*$vi7A zlXQCN0|R#_b&IUz=nul~%L5ALJoa@en567w@ndGPTT(&W^Vw6LZMc7CvRK;sx#qf^ zdkw1N`&hntU-;#}`jXzWo^KoKd)yY~W$n+K_g(z;=52jy54lBZ4!VX${ohhQ>(bxN z|04G+{qx^v?Y3L{_lFC}*)`2t?{fCK^V#d}XU%y{@AF)#*&HCQ+qf&k^NOqYV!bG_ z(u-Xyy2IRKx3Ilhv^79{?c=K-vVxu0FTCC{tIBte+Lbfe@3$_07U#ZRdFzK=6|pa} z)=$6Qz3yY)hr9*Zd+){7XT9Y8#1<SK(sg@r&>hLCkMvfElshlo!LD`Gd{LPd!`91< zE9UaKy)DtmTD~~IdN1eJ%bY9b-fOz`(&dWZTjOb}b>&NMT<iGUEH3!LsYzUF&xZru zJRcTuR7~WJ6Jgf(THqEVX8P#U3c+x<-W^<8MxlYq>)NCWOGDDL7P-Z6n?AY~kzTuI zGvl?J9ItblO1B-bicXxncH_Bi5$V-yHgmt(E2{jY(Xjh&^KaGQH=kGKE&s8tAgRJ^ zyXn3axxPt~d8be27O#9QTIPI1mVxsIqrfq~29+mwPkuY8^leT2sr5G|@tt~qW3$|( z_8aPQ&uVP0+KC>E`?kc!^^~39F~OUGd_PyMf92gMwa_i0{LJp0o$OZ_Pc@W@x0Hz= zs=MT~*Fk^5p$lJhLe_LU-0yb2@9l8k+v&b{;&aE!H<l+3=3VBxksBp=Z=2Mc1=DUG zt=qP(@|=x(X@YQRqA+iwaBqUJZ-Q|6LA7;_a$6eZwzSG^X_qT$kt=DIyTf3+L$K-s zd({PgGeZe8Lm4weAu~fRGeapeLpC!*F*8FxGsAhgNgQ`y^?q`@tdhURe41La`WxAM zckkUTSzbQBT>kD;-|x#Vi@a(7%l+-}y|-smrGM$)xWIGcg3pZ$IX5oI+_+%#;+oQn zYe_GzExxce^}^bz7uJ?uSo`(D+TIIm&t6#jcE#Cu3}$!o|Hgb^e(oeP=h2%3oPN=N z<mY%NubC*8#3SS9ox(D2$~1Ld{(IU*7voaiXr1ex>+y4gu;&7{D2Cnb!HRD=zTNPA zBW<>#`qzXMDV3RWcby-xp82ixptkVCK9-7ju08t9(rX&_9-X>j`wqTW^GY{v-yvra zC12ewy@2hO$etXwIJ4vT9!<OV?@o2V+XGX-J@9fbSZciE(qaBT4OKt0XPSTG^Zk53 zN&mvzlow@kYs^@8%@yA@mp^K*e3b5jtE>yIuDp=Ny!P7xZuvbN3$C^<xazv#<jo6D zgf2Xpbm7UR3r{v(c+z#@$*T)bq%J&(y70v6!jrZKX~qScEq7F!?x@r?*~x3Nli6ga zu*ptilbzfqJGD)AN}KGoHrdH;^3yG&C_ba8{zEN;Nu`2GrGQDL!47+tJMvt<a;(1l zIA_@~&Z^-ysZ=ug$(QlT_QI3ug(rg-o~&<GJKu0duHlSa%b90RX`dB0yH2<!)E%tf z&)IY9TQQIQLch&?X)k2XO{#j`7}6$qM`cw@M<B1@Vk;##UYDMz4vDP~-@iU^-@Iji zK1=<5iGTYz|I`Nm_?`CQ``L}Nm$E+IJ^9Mxa%J|~){1M<-xJ?TEnwde7x~(&vGnQT zHJ_8OF>Tgsh;%o|?u^tvV|8H7WrNoxXRMev>vcq?CtWkE_Wh+gg{@~QLyst%o0p5) zq=J8^pNZ7^J8gOUr&@l|#b>dz8CPjdo0T6}e)wJRUD@wz>K;}a+ibt0=fSsWWpRMj z3h%|uzZ}bVS&Qq=uV0t3{%F*W^M1=F*H#(ckjqKW*`<8r;EgXcA4ncswp-%7+QpxL z&+X5>_CB$1`=eFLKYo_2Iec&V@2$(9bhvM_HBY<Mq`d9ykzGfRd35y#2w1N>zy3jO z&qu*y8_plKj97g5XZ)9QtxKc-DXfopxxzl3Z*eA*@1y$Q46VEV#Tj<GeZSutzG07( zp1t(Y9jPGWtdsw58Gd_lw90aZ+p)i9^Zv`t-TT*V@8h=&`E7~o%8#yHD1FWB!yzw` zdtplU`wj%=?!Wxtkn-P)rd@X`zaFwV{yC~Tu~fOT_M4o^(R0@N-(Ts-YtQxj6U={Z zVbq1nn63Pq_wa{y`|HJa-fEEKKQ*^7#BAEWhW+3B3Lo5`E~d<~CPD4L$loN_FUv*m z?3(6&vu5TNsZD!y<ntcPU$obye%67tlap5e{%}81Hu^lP<-gt9r6=B<&~tnKzJB?! zv>o!F9p4|@w^8dsO!^eb++#B~rp=Me&odJKU{cC)K6mmy@B3%#PTDEY^||<b<6Gl( z-zsx{AJN|D|3;>)&(i+*zRwbcw&sU*UrpnSm3=4tPFzkvPDD;vPJExIh@h)$VPMb{ zu~gT}K*tcFP}kDH;45OKuC*5fOvHR$xi5Nu5&e7A!O*8iVDS-)!pS=#@94b~s2BX+ zwenGZ(ykerY2B8O91X+Ii1&B2CT*+;(Gl+N6iu2Mp?s~AH)-+>rFkN^k6uoiUg2k> z|1bKF^B$cz(f=a(9ovssKZ^Z0?}tN;%06NH4&_Jgg+12`7k_R(yyDEylRrCUo=++6 zGX7nB&XQ|qqPY)eUYxmp>)jCZsY0=BqEntM+x>FNo3!0GrySRPI&IOEfbIb9Q_}Bb z-}(MLRC~BqvwlbY4*Sjz2R=Ax3CPLH`L2Ap@!>`h&VK%Wb<IsKVww|mH+gm^Es~H7 zbef{zKSgNi3Gq}HNiG-5z`jc^eJ2){1O|pI;R$pNS=h8_)(W>)7v8{TBUjzPZmw>t zMSQ89Rg2_A1$kYVPl@%qC~IlW>QD>uF%dtza>onJsvypb?q3#8S~UNK`_dx}h7Dfb z3zIaa3LZXMpr!5BH8I4mM>Kim9tr(p!F@9n)B;!yJ$)8+C2gAFGxdmwVXIbm^%2_; z*E{O(7O#4={?YmnUmxMiD|XFLObg&O^ggp_)}!~2-iLVGD9A0i^+@rfz*WJ|M{HJU z%Zc#^+irBwS@0`qVuTCt5uuGOQe8`vG);w0A1%t#krVF^7Ty@NX34Uotr5QAom-Q1 zO@&_{t;*6f>*~GYlp{9#W!A>foTb@E%r^F}6SY3Vm!(<OHMeALMVO8E+9P=zXGe95 zAK|{@wnrmw$+kzTABDCGukQ$7vA4o^kDKg~*N;kHY1|XZ4^scQtzx!Sw`~%CsbKZd zxK~>D#NP*-Z;XGl{N1Ak79O@o6bn15x(+`w_$uUnG;mkkAC)?#-))CNxUByk_WCoY z!fa>b-sx@YH6~p?pZMGF#-t5L>)slE<Y|3le!ft@ckL<3IT^N#U-NkVY4~ugi>12$ z8t2XDuP$q<I;ziL(Ld<VA#_RTlCY5wm)ec@w=6kla;h#4O+6R(dgnGP(Z5o~Tb@Rh zYs~#WYvb!b9>?!?<(Y0*n}4z8cGT|NyMB4$+uLtnmwnUc^Kw#=^#8wI?x)st^S^ug zXz{bB?x&`8^UHlb<v!WFFU@9qcmK8N@|yNBH6Nnt9-gRvf0TXw&qs@2Pwm^YTHkJl zx48V?f|wtB->V*Huw(mw$ncYw`@PNL@;`(0EidU=Zqm0)dfk0a-1fr%n$lmV;^%J5 z|8kn4t0(D1Ud~SOf*6~w>Yi&C+-|v9zhtdyy|<-e#@mJG<QJI!7s&nV{zAXz=B<6w z6|=r-{g}1z?^?dO^}$)6er}(|v@zvS{f)bYoZs%g+GrlIzV~m*zqcF2?>W}|+k5Sz z-LGJ~YIO^7-ebi#eRZeZud7{clEIf@dg0XqQ-|!PYfNi-qxiSjW|Vu^KQ9+KZfw=N zS6g4a_IUF9`usRwhxI#i`s#o5PUW2WW8Ss>zluI(q&FF#ocYM7^j-Ngi_de9o=ZL_ z^?R*-`tr|Bf29^|zJ4=*zu1Wv&t??gD!rQ$?y}$R#k7LcJEumTezjSBN1LsK`nSZr zcN^b*c=4V8?(UDZN7(PW-*LYy`Yx(`^Y1CY*Zf}ed)Du5zxVy#_`9|Gg6*Su1?Ss@ zoHQ3+nINtuaf)v$*VC3&ZCUM7ZL?aV+HSS(YN=}d)yCHD)^@C2t?eDpUFlh3vt(yU zM@dA9MTthq-;%1b+G71B=*8Cy^DgYWpuTXu)BW~3p1EENT8^~Ta2hEpn9otKcRg|Z z(xU~c4&F`Em~?rg*tY0oSYG(Fz;c18gLYFG(^{S=)-777LB_sCFT?i2uLZmg(oJSe zxjeU6wrIWxU2xW6cJnrdy;5JKE@V4KH*I6eWxpl2MLEO#!n*~w4%JO@{8h{u`4{XK z)H?od<YSQKu;M5&coA?Rae=afds82iEVC6~iOmb&1;P&bY<oq&m|gH(u)X;nW0m>~ zkqf&W-!twN|FV8TJ@Z^PE7>n~7bF)LJEk|DWBY6ULgvEG1)m+BH{0?2;&{Pyp>;vG zgLtzZW35Pu<cp#U#~tL^V;Oe|m59E`x?sA%zhNC~Ec-6G66P0f7kn4YcHG{O$66~? zBK@N5!g7c520PwgJTLq%#7_IizGv%J$yC=q*FJYY7e6;Y*SfwreRDeJ^v>z7k^HIk zsr1S06Wb>?PkgU*-<{93?nJJ&jHQsJRQ7MfPr`qHN$b7kkazp$Zr4>KV=3@c<x}R9 z%_p8u)K^;X`cJab_LJL_vnQe_ZdZQq^3CPm+1%UGmHMCR*1T;#u`gcsV4;xa>rEC0 z^VA-3AH1Alc6Mp&mY%SSRkytSFXvTt#x1wq(r>qL{fpl(zP~*=HSdY@g})2r8|(h; zzwuk_gGSez`>W=8IynhVI$09x&oRNlMb2=;3{f#gL1w28fy2&mN-f`m<roiJGbt&p zKESl8tKmeN;KxG8z{b#&$ZM`)f{T?pC6pE<x%3E3I6MF6|5qidXG$Ku-hXfJ_ucpZ zzOsIP<>fl7(BRTleqT%GW*t)JoG$dQ=Y!^<<(%^s|L{F5=ag6cBlmD|%YF42j~~p3 z<c0pdaQ`f){KxR&WBUo)J3iDeYjuiAZP~9@)Azx=<-G8}X$6)K-*dz()C4}fk=e3b z_?)Uu^9P?p-v!Sp+jM`(IaFL{@;>MgzhK-q=E`!xx~IpZJN!Jie%~i4C$`$}M(I&L z=Cb2_>F0z4>yuJb{I<PQx0(8Zr&MXq*3J)yTc$t$wRg(1IIm*;rIPNM#{y>+YV{_U zZ>(A`nfLxIx7Kw7^{6=?Y^;vHmFzmNx~E}Xj<U`Cb!!yXoO{h}=iL|9ch7uA?YpQ0 zvjpY{T2H;Xd|lwGh^>>4+1*c4e4QdW?Q~JJV%Un%<6PU7*6e!qN2j!EnrM2Z?q#8A z=exGQislSsE^V5&)bC|h;?^xeYoynNg=N1shp4l%_MSUu>AAB(%hMul*YK=fJ~i`h z;@3@8(UI5YhHblg{8jeX&A+0{BbnDU{=c|acjcLE*Ql>L{Z{6uvNBX7SB6QKdQJIi zy}H>-`jl7ra;J+k1OD$m|7?}Bb;D}EDOtyop1SSyv{N-dz5J=zPxVNJ|2o@Gr9UzI zx#o`E{K@A}i{DsZdN0VNc=g-_hOhOv`RB_Vi8OgBu;qBM{^s)+7tETS{AK?VGxKe~ z=1uz3660TOSNBGQoB4cc>>2*E{b!P&9e-B1`Gk&{ec<!<8LH1bH(#l_btmcHNgad# zIeDh@4Y$ucKkN3{=VzXu6+a_>_J8U-gYsGWGxcZhJ`;W>{Ot8Jcb~}>um36jx%4w{ z@%*1ND^J<v&NIAkVsF0RV86-vRo~m6U4LfzS-O<1GcvC(J<dRXmguv(;I}*f*T1ge z*(x1BS7YTql}jOWlO5GXcAQD_^)~(6lkrwPc7?vniu6zKX7IN^jEvc9AK94xVQs~~ zd+q7(li!F~pVz9CefPA}rgi({mp0w}50fkPxDD-tCV5tM{48|%Q{k{jL*bvN!ygxi zKbIRSJRSa|IQ%Jb_~Ya7=X1jkamJ7O%#YHUAH}mCInDGap8d#q)+75lJLdCu)JqHK z^LNyX3+xvV*e@ZlensE^8<t9Q(l4I-s8jXdaN0iC$^E7WxVG_WH>`c*dZYg9-r34u zOl3;zo~H7gv$A13zrJ&i<h;1sAJ6TnZb++H^3u@P{@Rxv%Ut<*f4N*1o>jLhvvZkx z_EnSVm0p)G&zg7fOR?|%3tzl_&u9Ibx-4~8-P)IyzWXnJ*|Y3^R@Aze<+I{0d|9+i zbl2MTb9Y^ut2%S~nbXg{KNI~NpSJX8{Ik$ftBDT|3Fti(Q&b9hYbo$h$>~byZ$6hT zE7X&&NV+QdRkUih1T6pXf7bK$3;YfV*$L{u>Snp<U?S3c<)-_hjTuUlj+QQ3xg+jv ziGZ$)_ryi_Qai&IZT-<}#pt=D^M2Rt4E~ert6z0~TDR+dOopD3_-y_e-e=g)E`8?w z%;<As@y?&sp9Mb$7Ps!a6myj6JZI*qq%-z2R-ZL}7WLV%c<xX4&xM~ki}(Iqvh(1b zj69?HMprdwUO&e^^US4|__sTzwv~8p=b5<B$md$1bzW+$q~_w3Eo;=1Q`USrVX^gl z7?<W!)mo#tYtuQi-mlG35l)?yqci(NO6A;~EIEV!X>un2*M0jk%l*vvGmD@7-m>|7 zyPrtp!Cj|*r_7t9nts}{Xx$w3=cieX;_vB;pK>kQxF^nR^4V1Gn?cJ?NT;mIQH?%* z|Ag5mx0!17+WC`mQ>}km-<11w&y0Wef0O%$_jz@~zlH5?O5OHG`S+>1P5bwF^9Af~ zdYWMAa!<GYRP_@B%a~^?WH;G;ecB#hHp@fq_uM^^WfNpm)hoN-=;Tk0eUfVwTQ>FX zlee38zfm+!@t>*re!|`-%tf6w0eVyUPo{oK+!^yP&Q3{ws`eAFonCzbyC*-*uypI2 z`uItOrK4ZS?#WO07D0||GYUU9!Fa8I?HTv`$A8RRp1or0A^9g+JKa{TpKo#ADxh3` z^6Mw^Pam&2Ch7l2!&>=D+*H0ri(jbZ1y)zNh!@WG5RY{=FWmh?ud0LRVsJ{AwTr%? zqmRhsBPoUJXDs^mvE!vu_!$A?qqR!@XM{E%l`#xIBmDU&)5YkNPHWd~FO+|E)n(o9 zI3fPMyESQIgpQnm_mSqLl@bbUU5-f`Bo_S%JZhUXLqf0U2!~-%kI>?y5(~ev=nC_9 zKYjE)D|}jnVpvz`BmShV5z5!Pjvul5=)N^M<n4K(*GDHq&SG4CB<<st8%qCFxQ@&} z8uqd0hT6PP>-Hm`AF+O1bjwzytZVv_(@E1ST=!_j3GY5Cw=w*W>mI#(0>6*UPTK!t zwS~ezHNLL>-P@1YA5r|c&0<ZNcxU-h!H@H9C8}^8Wq;)SaiWEqo!D{Li5g<_JA@wv z2P*k>1$~@pq3YLd{HXY2>yMy0qVb(ZAGh9WR5{n3@4E9=tBPJ1SD|N&*!^zpNAZh- z-nvct{bY90{y(d26#lF6pW1(V`xE;oia)p6==|5bKk@x3<xjSiA^Y^XpR#{){yEV` z&3@YP)QLLN=ARJ$6dZY|ZlC=>vuS_1e{D{C|F`7+in^cMZ@2uFvH$k}fAqinKe}`N ze7$16DyHIH=BjI43vyp_-uiYdTu%Mfezt=`Go#lkX-t*PjuzdVx8?fvt-m_Mr$5l# za4c$fM<3(bPgla?OS0cq@Ne^a-*?k3d(ZWoj^FsSQ;ug&E$<6Wu+96>@v1aV%m1<L z2EFq~PVL$MOHEY%{PGVoYwY3=$v@2g$rjhJiEGW(mg7S694ibTzHBjnA+^uvj?bal z9M1*s`TWrIGIc(EYsKfBEBmu}V{7{g>>j4SJZCevuE#I@=*`j%>-VnlUNdRQi;&lh zzVDasUN11u{kqsIlVsDmiEB6RjThYh+A#k3)w?ydxy}xn+F$lgowaUb+~uvY!Xe!U zO6=ciuK$y>_scQwzmF$B{2}iD_5G)Y{~vmG$YeKtTD&=0)$i~3B|A8;UfE|g^Ml19 zZ;tg!djjT0ISHv{a!%HGuA-YbX_`T&ijNZKWRF8ClMFmP3o2f$-dihp;kL_~CqYd2 z?tBgXcVgA`hU)@hPwkeRu00XO{zv0({gik1Uf<=fewW|+g4@rr?$7`Bf3tt{_wJaw z<hgd{k+n+%w@-4r<0VxH=2$uw8gu3=&2g_Vez;uYDvxgV;&Z{S^OvkXFL+M<kIvnh z%P;p|e7VYEH{YvU60z@=WqEepQqEf{2hlCKT}b)e$pu@C9d@RxF5Q3@8mmnFFLeZO z<((!o<K1%qxPa#i%#L}SPWqd9|8ay(;FC=^zpRn@QD6C?uSxigi1q1HH&e@|?p~RH zb$^}el^_uMBA?6oHH`DDyy};1uNC^<E7p5m@Yb6eSDeh5ukwfKp=^t|a9!`ETYCf7 zeUv!#nZsXwPumB!L&hBWN^88duB%QB_Iw%=WH~j&56avb8?;v4cZIOH^XfgvGrvd{ zN@u>w3rS^iuDf%&<Z0%vPg{09vM6-=xiM_-Lw>ovp?edKyj793)_p3vJ@`DUwdXIt zrJoO6=6oD}^zFhe)f#W*=9cj<z3ZI$J>ZtD*4oEkxcUNT9k6<sdEy>pwJ-mb>dC5( z#qavEY&W?7kUa5APWAJS_nO~Wyx93y?T~CS7d)r@N9AGflq|NTyS#R;5Au1sZ&h*p z(mUar-$PH;PAvj4OW(bJDPHHl|8MoLw>uVn?!S5|H&ToL?$3#r%`M)yRo?#jPGkP9 z1zFRAlN0r=1x$p_B~ROZNRof;J;sY7pXdDQ+Wc_s`n2!|zd7=i=6L_;Z1|yObNTx6 z8;eap<*57-c*uU$c*j?TpqnP)m(@-0E?9Z$X4jG}mp=No6m!}O3WTd}Uj$Q{7+Rzq zi-dNk9ABxjwMYED%vJpZt2wn#Z*Ewpvp}2sis<o|Dp&t+s*c|xX7u}upkI7!=yD~A zd()?wnmxa0`+Lg7S28nr<C9|cdq%WfIc2u};N`8CDxYgPzuaRLo5=I<Xv=5L{XRc9 z58YnqAG@~N)O^|pmP3;{ZyS{f$+=g^Jye~N-?O#D(qAPoZdd7v=L$3TRo*@KPi|Xz z_a<kq;L|yQVjVlCcg|k0)70gCs948~zh^2Zai(iW<n;b^Ik@?s)0RG~y$?kXedf?t zu>l$FFXZ-n)n{IT)9QN~Kd2qj=2)-Nb2H>*P!*Gv+w*_StN+fKwBY;XH0@Q++LNxI zs+%reV%O2QZB_c;lUf`8<>anic6;sfwc=}K_oeN7HqC1N+xyo08}8lxp){j5t8wq* zJ*UKP+lf2W@~?RnKlhgHi_m#XuNj3s-S7MV^Up;!Uuz8aMa(}g{@l3sQu@zVzlCag zYdrTI+m~{`^v(6J+qV_i-g^F(Geqm&^#j*0On;GmsBUKY{J&>~tD>{`*lV87d?tG) zCx6}p^SDOMcBAdf@9b94n;BYpK_%qA^sz&Gf~QP1Wv?pExzF^eM)K6EeL?fGo^9B% z!}Ff&h3SqSme*zrU%wjsD0acV^Fc>DrT28#h3yKtE#3Mj*l5*h53~1)7sFQ0HO^aJ zF7sri`jqCvS1g-cP2VkJySMh+0*)1%O{W~as&?MEt1h+lp47{rZ2$1sw!5nqruA7K zlF95da{s;V`ai*K+g((W-PE0HjXmE!FiX71($4p(V%@&YSLS?ov*~`E$*=wPxIp~z ztHEE`{s}$O|C}#ie|~?eUfel-g}RC13U!_J{&H;po%T#}{=D=4gEOfTZL<rNk8rr! z_|#6kyCOS5M<S3d%~<(ZhwGi>3PE$;&K;=-4oQ7<t34vzqjE%A+E>8e?1OYqnp^Ra zXo*w$JC|M*`Y58z`cb+^TEO2_&ixN3vo=fe-i>k})p^fo9AmrwwrBUQ-Bl~}zqK8> z)>7g8q1yS8^Dd=(x=+fUalMo?lKD7iLSaWg|IDr*TPFM#IL{r~^MhG&hOzUsmN(9S z&Q35FydUqrm&@o?0?V~bDZ9pxA37fj&(y97x?<epp4)xvSWMt~x4oS|{;k-rSZA<{ z@$p68#TUaaPG4mB?)AnhiI-n{W~lWXS2_MAaovo4hP8s>)pKJE|0e%Zt_wfIaD@FB zk4wzkx}u{zy^U-ax6g|;Je(xwR#SPV=t%whgO}&2UojS{vN^R!`0lJ;!_*ny6TTD_ zTl~6b;C`asP)~cQ{NixgtX9{KtBjvr+*d0<I(7P3D(^-&WjnXCC$8m{ruDwBT56j$ zFXh#5xovEcZ!|yYJY<}wI>*M_qH<cnC!L2+A`hM1+%h?xQ~kV<-#pbjSD9^51mG$+ zMjK7}<8ASCdci0Chfm@Uo!s9txt>$~zmVTQ)j7jgVtK4K+uJC^jO88{Z(|KJ_IK=U zKDr=Q`QeuSqxY<Z{B}q3+;SB1tB&Hi<u2s+Ur1`p=A#R2RUdBIe{{iI)rVV7AHDF~ z`%0X6bJ@(6%YEX_-)6O3-Y4E%HmBwCJMrdkb6YOUNi>(uZ@KIz(fn;eOR`MijT;8q zJld>ZQ@3*b+7!i78>!p0Z;hB^d|3Aa{nf4!zH8DvR_<Fb=6FB6d%^qFt{1*vReJF| zOYlqWR*ql$qF8F<b(_9ja!JTJ=N$QY<2J6%VhOz>PTJz;Yh&&(YKxm+vx;uK`cp@5 zO;VY{x@$UlYa-*4^Q123Nu3qk6MMo@%&6wp2bpOWN!PY?>g1o<5-5D5Z{y;kWgD4= z+n@WTE!}YZUEcOI^-XEzDSSRDnYC3*)i<5{yQ$Gw^7C&)>z0F`VwOKHoe`p56dd#R z@~*h!${$#+`W%0~sp4A9+pag4cKa)JznpwmRWLiR^t^A_s(n_y9Tt72VNBU8Ex)?0 zW(-;t@=a9y+A-dnys!3el`CJ^7q@HOo@r7qBXqn&()qrhIQ8n>q|Md$C!UD<e)iqW z75lpUgziN6s;$hQ5q$R1hckD*?sGP7QG0d!?U7a^;nyecZ!l9{<}?3LFz0f?JpUcW z5A#}#In(_mOmmIo9V%=e-fig@To-V|L;23Ug7iaoInssHIN3Z6+JxjhEB-8bcv(#% zm}9-#p1B_w4;^jM7AbQT$n)62`!KI%x{#gA50-~Tt#=nrR`Z$lpilkIl!EL-Z#kC> zzjNJT|8QZ8yYM`p3bltnTc&5M{`k2-scNC<E$Q4dc}I#*<bO=LA?9zj|FH1Mvul`N zcc@RYTciKF{rRNbA41F~@Fq2XY$-Co7WREZVva?M3+qXab06Q|%@rv5KK)wv<@`0g z?(7e4T|VLvo`2Bz=GryfyLrzqiTzk|ZSL0tTwB%M9>}iQE_Kq%_ru=!y1jX8ufIPa zyS1$JqQ!xj_KC6I@9(+Bp={2!_;R!1^P@L}W|-@o5&S6emowvSo5#eCi8m#Z4J0>v z2cJ<nYmmL=K+c3F!T;GFKepCSo_+UR)kDv}exHK3J+>DO_U{P%pZv>w-<<W&fBz7S zJ9PeWqR}xAlPKxAy*kM=43C~Lmowicxx3f-nC0VD+DGqNq~x9WG~w&Qj|=BImA6c5 zS>C$5{X4I`<UHwp7B!_mrhV9csJ}JbZHcQ-&kX5}Hc9127Ir)qOjllarFVsN{C3y7 z-%8uBon5_q%e!a0tY5ubUu|NfWMsF=HD&#Yg%c+$KX<ni+G)B;<&^AI11;06>MQqF z9KLw*;@w5<iEj(EemU8e+ve|mQkD7j((A8lr-$d)?yddmcl1i9XXnYTlf9ARo6VmU z_!Rm?`lRNh<T&Mc<+R^8b3<{XaPsqGdi}BTyKT$z-#onW=*FfSUTZ{zY&7Tb&GR`g zaNgy7%=x18Rp-mj$DL2~-?;otu%x);bb;wY*A?}Q^E~bx*|D?m^y6#CbNg>gms_l} zSf{h@lJra856dd7D~$I#?-AZxy!Z6p*L!d8t=`+d_vk&N{H2naYBMy`*o`mCB>9;< zpLP1|*JowL>nm^Qn4Lc3C8#On()B{Y=%|2U;2F`=N2@l*z7cJAH7sd(sUF@FRm{M> z{PHs8g|j)o<g*xa=j_^dXPLDd+mpt%(YtkL)Zdgn^Zpdiv-oWBGw(GyAMpyxo{9e5 z{PTz2!5X7iGExWPrwbI=Pm#=ZXZtK$*1&%~Kk=&mBe!L~uiqqX`#yKtm6iLO@5>!v zwkhq{e=X`&RNJz@re`^)6}~omwEpeoEx~IqmF!&>ZMro(<>0cCLwA<_J1KX{ZS%=5 z&k8uJTh^vZM=(~;dwc2q3cD2b8<J&y&+9@jGtZK{_@!l8y6N7W%NEX;C47ZVa~Ef( z`))RoUG~z%S3G-{-(@D>^31A$%gM7|eR{m^))nc6D_!^RGW^@W@}6u@`sFY7m8)+& z&N062_W$Pl^!6KpWir{eU++ER+B@;{hl+bMwm-<NsJ_>le&Kullp`U&x3h1>US^!t zcdcaEGH=t^wJ+0r%QJTQ2j5+EFUa@&?JHM)rM;T_V_BZ(=B>+OO|E`5cF&r%{H2iZ z^{iE258he((t6gsOJACNT~{poIBVO5EzQd!58k@5vvz~q>9`~AlhT%5TU1)MYVWL9 z|E9Q`>Rt@_zIx4ul~1pkL<PrM+l1Z-c|HB=%4Zdu`m(FsE^|*=ruTRG9H;!NmtV$y z5vZ+N@+-Y~+p=AvwY$V?qfKf9FJCvky7uMe)Svq<g!Fe;l;<X!)$Lxk%l{F7W|Ys$ z{Iue)yZ?T5%#YxTG_*c?>IQ4r$-6d_sw<iNpJ`srpYZ#WVvWlD6U9Gc_DPf#nd&?h z+c$Urk?)_F{}|{$Ir>LL|FL+*(uZbByz3_>s7PzN&ANEdWBE*;(iQ8!uG@EQ_phk; zuU-qr#P>h=WjX6v)~c`j{ym=c>V8E0>*~KwzNP%v_a|L$@$i+-T6Nmn<9bN{=9ZJQ z^sa=wE^pFPPu#z3m%31iCFia=Y;aU%V|rn8Uh~IU&$3rNzs?rLEVXCV%S7L=KXMnC zZd*97Q|eWb)UwQ5zLy<my}Exn;Cu~l>2A|2kGC$=TmCS5mfYo#|LfYOn&mD@zvI?x zdiAO4t936YJSe=~%G!VXNG;#L70vqG+Zwk|Wx2yXf1cEta^Dq}Lc(7){I6V7{<uc@ ze7EUmm6yNNzh1qvtxfS&v{=Mbv*ca>rLt{v=Pb&!_TBo=<lL{un%O2-e_f8)UY?x$ zQA(aOuU&0!*4oX<Ddsm9yfpLOdPOat^}Ew{nJCX2HcpdIG008OVXC-s?a55Ox^jd2 zM#?kxC)#oIbFZkq6(N>q5oO`KUgFZ0V@uz1McsXH$~WqGz8254d*2oqr&il~-JZ|= zPuASO@WXnx>#v__>)0%rcJJka>dnpbQmuS0hFo89xKJ!k)%og*<g9|<Ww{S8XvDnM z%ehs*!uNV9=Lun^I!W&J!U~U9{$Y^&zFmYZ`^ehp4*rZ*y(-hosdc(m?3}Dm&1%(d zE;}!`@nx~3+1<>mGVI$kPnSf`Tjt&5)vESRZf&L|H$VT1`?;(~{<paLU7t03oo?o? zxalR*i&oCNpEp1M@;j^A^11tVZ;O?@rI+&Jk1hMg4;>A+zU&b=lYVaLt(E2vKSr!y zS-z*Lb?VCWH`ZUemQ0@)SpBj*WA9ff1?@(aD;MVK?0vK=`22?QSJQR}pWjlxu3+1P z?B_YZrXMr$Qew)wvb0Lov+{RV_BH?O3*$E}s}jB8|2otDF4x~Lw-(QzxAu3ocJ+11 zblJH1IhXez3y@uPJJX@&z@ODWYS{OmIw)@O<1XL7j%Iu3nhEE4cjR1dj9SmW?23<Z z!1rqox#sMCt5tiqU1k2d#-gBHH*?EBo<E0{H9KW5lT691n!Kzw+jDVs!i0BE9cO2I zex9_fO4sOx(^-?|(%n3H%QC-5U3#(6uwvb^*V&$n!@HWds`1##n>c^W)Mx!{e2e|F zaW(7b@2s~A=b7I-D9`gOU7!Ei^Bk^c&!rCj*(1SjZ#ZNA`xW<@-2Z-Ro*(w}uW|Dm z)%XgX8SztIJrHMq9$#WJqdp;G!%>+pVGXK{tP)a^26-ayH_SM^kK<XfSMyInzPcsN z@~Ny-+6`7&N3N59)^7FVPQ(4hKT`SXrZ(5xB$$Q&Nn@{9ogqK>=>u+=np6XOwc7{t zOFx7+|J+zB`)6B1oecMk`=a&-4(^wjQ&%I)Zhz(Ad#-2dE>=He*#Boa{8#qrDf?h( zU-*CeC%?*hvuY0fPd2T5_&}F^{(}e7RzF<W=f8O{+wzA9`~6!7w-<iM<ol<_e*fOV z@}dv1GBxJx^B+E_w)~O9e*gYK{-O`gvNe6p@^2p;xBBssuWnKE{5KDlTl~o6v%7xq ze94DOzPfeI;pgWIM%*=7{GQn@nJ?zVjElEUBysoX9&^u`{Mz&S<TV%OzOL)475G&5 zBIsS$3t_`K`^7#c#Gbp~)zkSV>yDVEMNzY%c2>%jipTna+>543voGp>VRh`{3-625 zd-@Ht!&j7dFO+wCyUJ9?(L%0NOJUB{haS2Qn{KUM;B4ITjpHT9W6d?iZ7Y;7&R!hf z6}kHGvW5-5tr20_9UW&^@tsZz4{ztPt`N%NT*;AnDtfC`&PL|Dg)Hy+-bY`3D7%^E zVGq}#*ys;SxcW2Hrn9zO75R2us_%q$=)q4>AFnFLw)aFii?#ln#nxWa8@j7mgll#4 z+}|yw_pTo@zqI|}_E6U4CHFsXWsTnTJ~VzMpZGe~(60AfQ>U(9;Fvb~+f~KQo@J#H zD-Tz+{84*6`L;sIKE1EIzNkHJ3|@cx{+G3{?UxiRys6Nld3Lta5)=L0I>~@rf3mu_ zN96@9tjs*USNHrjo7s>2I{iK_d*i0z^R{KeRI3$Nt7PN;`~K_o&Htm6d(}6SWA3e} zT=uPJv$s39?|sX+O*`j4)56%_s^;S5JWDq$dR)gfb#C6PEwSyfvf2mp-<QnW@p-$% zc8R&$?oYb(bK<$`eBZZL3=faIO}1XQA-H+o_TaBCmR$OJ;!MVzi&l$+k6oMRtC{ju z#$R#$^GWkwH-4^?bJ93DXYS1Tm5=%~IkKyHomZ`id;g_s`E$hwNutggZ$q!W_Ih8# z#k!Y2*y7@Do`OZ?uG4mxv%Z_2%6m%doYr1r@x;(FrAwk;)@^v7a{gWH#9FQ2G5gp2 zV`t~tal5$u&|Tl-JC5^673Z9ps%2%ynt1%ljFY{~pZG>vq~4!$Ni#KAYuT>l+h)$P zEB$gsGdSHp)~fXFmAAp=zP1KmUu@C59Oir5YHf|x>~}No)mEMRviGw68Q;@qPsZ9W z{@=6IIBtGnV%m!{Q)b>x%bQ>MY~PpP>z=4SDLpMc&0IIX_TJ~p<7uYzOjE9{i#(nd zJ5$y&`b?hr?$d83ZstytpM5#W@7J7##n;Z>G+SQbcl6G=;`H-(t@TUdo>yLew%6kQ zgFUBye*Ap=oc@gXZ43T3?O{FtJpJ#1n60NR<yp_0{WM<BYTExKf0x)B$tUc`;@XOj zu=Wc_U(TLex+-m6gMdx>6Zt)2SKdsBuh6~mxoMVj^0r9!r&(tXAGe-+e2r(ZLExF~ z8zX1LUw6&#i<B;1QgzPd){QPT<<NU8VlTd4cXn=>c4C>|@}JlJu3A(ThrV99I!kZa zmg84zz1Bwy6qUQqJ>;`b(z0*z7UdOpqb@uaSr^&9nQ!$3xdirgkxge;-7`)5pKF@- zpTqXK{^FnW(kdr4-?{j*WBuw`oEPPzOY0N!Ha(ZGuDkrV!&1<A!K<wkuWn8b?N934 zZ1l-Hv@g5%j*9hull>x>LRN9_nEq5dcT#Myx&gl!+nE(x&unh|oORYR^!y!m&)IJx zO*Uu!3;ArdZo!p5M)$*FPHx+j=k@w)U%~CN9*vx7dy=L(thNcgw*1tp3Za(YvsgE6 z4Z3OO^)^g%Lizp=E3992c`aR6EwrdFBy*MMd(Q^eFDw3N<;Cw!b7$6Fxr#f|H`kn5 zXF0pjoU)?Q38glRbQf=5^=(J}QN7ry_l-~MY`hdWf5Elzwaacv*oqn?t-f_bu5*=X zu5YH1(A&8StAe+-Onq8A=U4UWSF;-e@80`vQ<pupRd>tMXVW8p{!A?kP}R7l68*KS z>*lOw8Fe>HSDwtx*`OO!B)!Rt(J|8E_O6Mwf8^OVtz=x7#<gh+qhs`)R{_TDo3`xN znV|dc=E7S^{~ZdpP2sv)_J^G*^4ombjIAGyn>Uwc^a=@NZIfRc%hYtKdiV1B$Q7DD zmuG+f+;sO`)?1;yJCifq9`{WRJbram`ysAfLaV~8j;uYAvF4h?FFB^LfVWpxo!qzT zS)FKbW0*U0M(WaQ0ne@HF8?YR=HBu4{f?$E^`BQ)ONeq+J^!xtZtnUpgCn9ZO8aE> z4`{6ji4D}2n!0{E-<C%wmu?ljbm=ZrYwdaE(#9y?#BCY3R?oN=TWOVYaq6<HtFAF& z>yu3NUsiKO?A&@R%6ILBkbSBm&I?L!iA0@O)LnaJ)%9%K&3T3^T(v@@@662J?s7cf zm+gv;v6ttydu-Fn<UFag^Puv^w0^c%2fxbSlHq>(`_J*%@*m%K{n}Wyj#1~5>Dm8l zUzc8+Cb^@S<xXbT)SbV6`Wy1qbV?rhU%>l8KC$%X=6_yg2jWk*Z?v$Rlloca*<<Ah zA^DR@KUu`Or(}9mc4sg8&wEVqx$!f%TOLb#T|tCG<?@NIWVoL@M>4%LKlrz9$9;zH zvmLILPMF$q$A5vHdPMAzvIYA#uG_idxXpj<75UZI)BhchSssynJ@eYJua?;_e_i@N z@AaBbf=yqPC&Zn)(;>NzG5mk)tu<{+_HVKY>rdSv;ZS{T&Rrgfm-YR<Og(Hq-|Np6 z{T08#bHL|7ZG+7L9kG*Xzxy{?HtcMuZ1~yWdSbuC2ZjXB2aX4V4mdZYHncOIW?a8f zFUS0W(W7w2x@&Wc8Q4=c&i*;KA;&@9A^w2Hwb}A1y&t-d@BFoyZ{5K)eXr#XxNN(! zwZXLH?s=iu?g;1aZvO+ns~re#SiENE?^*}N2h0cB8~PcJGsrXdF?TT>ZSaryJVD}r zwW8|3#ftG8PfRd6vY&0vcX?jkM9GC`9rIJpI_ERZeNnGpB9vhCAnpLq|K|&h88c=F zZ1L5&rB-6bkSqL)X}9GU*8|!O-fy055L*)%;eEh%P2~*(2fhTY1gQiu1^EJdhFp<t zOdEtY2!0TGE%Z(2#r1~bhR+T8j87Z98MY+O6>ON;5ZEBOCeR|;yuJErWZ;FV#ur|5 zbk%mo?LXp^@zxK7qJuMTuf4FX^};s03)^HeqWLqT)0f<1s`V`W`rZD~uG99?QeUE9 zoR#vBcvf{c{=qMvs<K%-W6~Ei$8S2gBz^gWRT8JqtO_)ovXyJXec4axPIciY^1H7z zD^#1N>~D%Ocls7}qK@g)H>bFIF<#C44yVi~2r+A3cRrQkk;$sLR$-~?l9>Lec@0a_ zCYT5X-Eue-_G{^Xhc~Qgj>n`Yd}K>8dHnrHxwD`4iJk04mlT%sKe==0_|N;TYr<;g z{tta}hq*HE#O%&ly=`YKuH*<Vv3;ZUHQwPZ-_CspGX74w`@m|odydYMZ4FlnC)^SX z+U=BOq+-^*<@?0XwLN>RKWP8nxT~t|r~Vn0thArX(NFY~yBYZzrZLE|=&;(bM6gvz zY>+89Q9pApuLaK!^#`&Cb~h+Dd}nZHe9z3qD9_NxX!r5=P0j<$8-xycI%qyH{(t+8 z$ODrFcjAxiJ8ZF^VF$+wh8U)pV{g9MzKdu4!yUl+L;pbNm80+VAM+f@4EuA<aqw z$p7AKjTZ+0&EGBlXY~DdgVO=_27X3)#y&<nHW_vi#xBPB4EsLBm(_DxaR1;6VEZ9e z!1saofz5+x2g?W62Ur<iJ=(|h;rD&Mk3a77y?(P_=9=gP#uuC~p8mI4qn}}aK;e!& zj|A6_<MCo<JQJ8_G*kyWE@vzf+|NIOeFkftUWVO^zYVG#_8boOEw)^{m`YS1@OP|d zTf?}9)rRe-bYZRWqiBJ8v5(>c_n95!TNm~py5OGpV(|v0{q}1l8tk~7!D3z$o~tYn zX|Ut^eJNg~OzeYbowwwJ?Ee!t6gT7-ythfI=hk44Vd&q-y_#V!i(G9;I!l5|g2=Da z3H=88k$U3QEW2*=Tdi3W&avb9fz*cAjJoy@s-|yEkqOt1urk@qF)NbgtWHy!n4@v` zf|;%t&M0N134(=NuFQA7tcQ-ePc1MMy)c6-!-v&m8Pn6Z&Xum~c1Lz(TPUzgnH>5r zxn&tgR4~h0&8BN2j@excOkFR`Qp)fZL=s-8u6<#$=!=tFUy=l?Hged8H^yl@truOm zUF$-y=!=y~U%UjX7IUnvlSDyLZDG33-C+w{wJ$6Z%{Z#GC5bg^Bgfi^mN1<~g4J_c z7wYC8^;pMz`?vUwd(&gx6SD6&i#Bat_|3LE{)b%ML(i=HJ0Iv2aAw?Zo$x_Wn!$P| z3vSdhDX(d*Pup6bV>5J*K#^^yVYOiLH>G25TzhVIOKcWT^tYARyxcI&Kl#kOV>4`f z4ZHuP*(RD_Ht_RLnp4+RSS9rMOK><}_A4pI87IUJ_n9@x=CW8v$!{~}B#4qfnjCwS z*>m)=M0cx1wYcFkE->;td`$J=G1Y_nz-XOn;+i>ax!z5=-p3*=d4Er1`K#aZPu%H0 z_rm|J7yeHMqwWj;yEoL!-LU8X^53LnpMX`ppjEw;nE~fFeF*Y=xqH7%ZfxJzo67&# zFEHOVoIn3ajUBV?MOoXA>UU!Ka^JtQ>Y5s|@c*jU%+s9rhPPb#e|GoY<Huvee#`w& zRr9@+a%kxkF%6EVL3%|KcLzLKB^to>LX2_yjJ?|zI6APLb}e71$|22o+I0bk=$#PF zjBX)rB{PwX%-NGB#Z6k4nR#j1WtGdGvzE*}xuxNJ-T5~s9M4;>FaBrwyuW|)%%8E> ze$`!%I{#VPd-dX|H8bqF%PYRGKNtJ-&Q&|x+dJ)x-w8dBdvV9~+-@Z;$#;v_TW>l! zF<YiGF|mH?`kBwU!*|{Kp8m70_5JKx`-@ZGeSZ5s_GL`?s`91hMf&2yZ>Z<#{K+@d z(!XVEwc&+VO#ADPwRbw?AE^Biu-|&=edHE{RVCAR$NV+B9vOB++E%)^cfZ_Rnfl59 zXD@bMb1QzUw@m8Od*}5&PN<lE@`7&Dl=ItM)uYenbLCql_t-u?_|x?6&+D$@5eL_W ze7@hI*AX9jqc&FHt=gtSC24gm#Pc&3&+R!lbMf3t=Z9y!(!;DaUz$1f+?tZKrN-KG zBVU4rikpo4%b&5N%f(w5KRnZ7EPT!fg>mG=Om*J*m6Lq-3CccQznDwvy4W`k=PObE z54{UC_cg75G=EW1^>#S=H1X&ES4(Fcs<wPS>EYaCi<;bLFEVv?Z#nDg{z#)n%Kfo~ zO!wmtk~00m1xkL0PFk=of3(?xcX_hXxdYD&)Xp8cX~F*dkxh+U`~j63!RL>eVmkC6 zp5DPRxzMn#arp<6y3X_uI(4o8j}*`7jel%jAy@o?Deg%AN9!|3ZT7U>f6QMYx%G$g zv)gNRzx+ze(5>RmPZkt=EIVJH)7RB|BhS}}zVgG@7O|~4P+cYvUKO=d%S23n+vEy% z?+qfS1Nxs<i1RL7S;2ab+gJG;&usUeWA`MQH{M|X-F8;h_=8GDz^Bt2wmvaWtUmd9 zMzi<_rGGCzZ{K?>cbd+(^5hJy$hSYl>eCNDyTtrKQ>LTYz%EDMR-*kufJ__b!j)eN zWCWwU`&*(kLb;dL=-VFrEnI7En4@cZ_;vW9Z<``+#E7{Yx-DQ?s&Uw3%3>zYkR<ar zeYOhsHwE6{{-ig#eCD3hPh!>H8&yt!+g^A>{*k_L{mdVykHnkFu|F1&={juS=%e1U zHdX!6mJ1<eR%*ZA<oFyC|EPQX@9OK>HQ!~A*NR`=Ar@R?E?WM;&*w1DeEa7=p3B;+ zZ<)6D!QXC)50Pp)a*-@M`|fC)^iDZ`V(;N=6WLcTlot<N-eKi>MRSp#U}@KiV3)Z{ z=^|jEDVn#GOT^xG2HxOaywUtvg3h;t`)-_{_cho;fIZQM@0g;6NP8j^-*LftoBEFg z{xIn~W@sUH{GqXhocaToIW3b5x%`f%7fSgZcbU_8{-MvD*3E@{=Z;qXu-Vt(`9ta4 zan>CI@rR}t3aUL$iV@l-65F-@!RjCCHNJPIKYYDICOjeQh2}2i@+7HckM*uR$os?c z{XyIxcAI<=TamUdxns%|BKF6VD`fm1h^IXXu8`V)#JECi|DpOvmS>Kw|0o^7*!}DQ z>z<DLkIH9sR~lq@pSiWj{z2-MNBt2Q)Ao06|6nGTXgDoFbJ{|=(;xeTpJYFb_j!4G zE%WZ#f6^n^%gq0tH`p33HoM}eTHMCY@SI1Y*qP@)_k0qn>xY;;qu;)D-lOXu()aZ3 zPhfoYflcg@@1EA}8##Cb7gey{>lRY})^p0er%%i6O|PLuckPD!kibt4FElF+mUyTA z_+40ko@cJAf7IlPfEj7$fBEUD?*BG-hWC*erDsCHyPhoFu=L6IikszIPx$W)m-)Zy zeB9^1^FQwTUf*cpeI#;5o%f#g-|rT!fB$O@qxJ_msl_fQv%Y`J34e5R-IAN>*@puX zgSK^@{T$=Dyx4a0lqG+2%VU$uV>ijpi}bSDJf$K{^Jb%C%7m%618xNEihiMaSGGFA z|BY~)*Y~4!677Er9YW%Mfm6Jq*A%%v<pPzy?>9N){98h|U3vBEez3XMl%tEfHd%BT zGO22~O1dqQ5%pLgv^%l<O{1+LS9M}ZNZdA965@Zn!Tw03+Bu`bX`P#Mpb6>WhYP{q zGS6p#3Xj)&=Q`c|`0w9s6}yx7mp=%p5nF!paY@b1`{D<S^KKqJw_8O=Yqv=JLD9q& zZ=xUVIac`JVyW%>X_fbMcZ&ueEnt6l#N_z>=l6c?H`prw-Rg4b{3H4wMCO(6wfu2g z<p0|96%o@4-?1lVq=;<m(b*KP#r<;P7n#U+rT+8Zi>h)>zRP7=wC4P`gZm8n-QUgs zA8T~~<>B9}R$6UYxxu~q_2cvTAAY`Vy&w4L_u6|IE^q#PIRCNx(CxD2Pk-LuR&!lg zR`$1#$5FpSD=oO6w@=;3edyDT=>-#Ge_lW2w!53ROkDbuKL6>{>yPYJ4E-m+gWvw> z-wFo)Lz`oM^4PSrf8>xmdj6w?+;QO<o$4RCZCaNbawDZ{zLiIoJ8N}yn@I1zWBk!~ z-a_>*d*y#VZ@x?rsaGqTcm4OFWjFk7ch@Le9s6T-Y~tzD`=us5{oiu>!}%ZEH>~^< z71J(Vpj_8c?d+B(xij_2w29H=GG=yhA70i4E4B3wE=`<#$JoZkbj{NXyEiuVCuTmJ zewg{Go%_Awr28D7lkOk;x<g-Q$-zT^K5xJC{6uXZgb+VfyYLQ-Nc@?b829t-55r}T z)f4CK5bMfbh)N`u@UgG54A9-i#~0F_@4?EuYJp?nw$3H4D!L!n|1CAB`x$Q>Hr?x- zOnT|cC+7+epa0Pva(%%oDUsOj7f~+Pm3E0;+}g3O)%fb1mCt-k(^pvrpPiX?E~I$b zEOLanwgfC_WzrSNSm?mb8l`c;sZs1)i2L)vg<V{sdm`Lgwd!=b=gP|}{64v9zRjQN z*MAS6zw92E$Rp~v<dB5c9E(5NA4T^>9b26WCa%oz={<==tXSkGYPxDgplh#IR!HFD zE~(Hf<On4jnW_b&5sS67Lb;ob{7(Exl)SI>IM8U1bK7>e-<L83YsD@un`w5oM8dT> za9?f6zwRgdJs`x{Px;g8H~*Ra^uEsjv_g~a#gQ^+A7zNSZ?>3q^rB8*+TI}9dH>rh z%_U@ocVFq*EpzqRovmqiz8A>GL?3x8e}31>v}1D<E06X&uX=Rf5K=pp+-a4%(>wox z+>Bn)wB**C5s7AD7|fj!iF#o(x<#KQwZfT?@{|MnxQzAfZw9yCFs`y$d3<t}jpz11 z#lKkYue-F{bMNdcP-0{Hk$HmEZf_(hWjs&6_B2s;>;0u4X3L*nQ{$F<k<)0^*S~4^ z`3oOA=hd9(<(Iwv?1s_tuoqK`X3DJ&K9ySi=0m>2`+^tFe6<><qav@J+7vcz>!vkR zQ`hQbr$%a%FLdig%FHVt(lqm@9b2{d@6XL4Z2y-rm%VCO<MVFX$r}&j(~do>pE>cQ z@Xz?o72Btjdsjk;kTBCtt0so_uE|OXRbDL>dG*99HwuJ){rKc0Umqs+p7(#f-(;7+ zD^|q!X+62EaG!0b*@^6Y%eQZ5AAfRLVLsbWlM~Aw?RWz{bGYL3Ijxhox2@f{`|8o= zh34NP{!K5N|E}w<?54np|L;o5zU;_(V<uW?{f^IfWA&m<H};;ZQz$tq*RPdqe3*Ts z`eAm_Z`(nL{Q<1~v0b*<blt)753wPSqiXoCKdidb@cyye9|rS>X@3NQ3%K)+=I)TS z=aLusbW`<G-;FC5G^gusoZtS|(7)>9)Qz)4exIH3=<@B9O6zw#y&E%U^zAMv-%|c& z-iM%^w#RZ@Z#ROA<1-&-{fS%M(ORzkNaGmClm#NG5}idM3XNWG+U{;-|8_*<P3y%Q z(#Zy5zZ2r$v==U%-nQ4|&C*1D-s;R7-iPC)zJ<+^lhRgu#8bnU{zzv|Z*hU%xx>#t zvicknFSOG;u>ENvF@9L@dQ>Z2Su{MjF!;^K3+t!7<70l6qOq%m+fwg|#fEO?pIo<7 zj-HGv+|+j>$kP4k98tCG){{|*o5E(S0W*W_-T%sbExvL-kW@zOmHV!LQHa#3r=y;3 z3fs9RR4*IB^u8-oT72bfpt(EojF&s3L(2DwFTeDK?`m!N7U`|lEB4O3b$hXNW{mq| ztEu;%o>;o&-GWm0H}3cRdGDT+3iz2hb$%F#cy`#mX2oM?S@~bd_T1hj2cl#*gt4!= z%9#E2((bgw);3v>0)_iuRfHU0Y$bQ~<BC4_Qkzwe17*n-V(+)AxN>kYpIqsO70vFl zHm@!yX39>wMwob3DBJ(KBIfvGE4k|*ck~@EwORMLP`H0~#hoLM)#S`S?&v)3Ym@hg z2%$hz_Q^6nMFs5p?>~A}c5Z7?p7ir7%j>6i#-026$^PK~={u)Ci?b@*e_rm%mmY)Z z&9O3X9wmsg@3y#c_+VY>riSj^n4HH+v$`|&mhGJJ49rm5Ipayvq;5|=5*b%cFOAdt zTC{Sy_uiOSPlNQQSM9_iH04>)EbmOcr90t_E60|a>1{1s+3TGfll3@Adit#$goUEN zNb05ToT6LuxPG_6iPk#3FU1O{8~+ps+n4@cdE5VP-K%fG+vo3!e3iCx_R_p*q%yt) zFQ0Gq_sYxVe)grmR$lg>`|pLu<cH3aA3EQizir<1<L{;)W!|LW^8WpC!^>6wmy}k| ziM{*Jf?@ulMhlL|g$DcH&RAW@yRZ5EA-+l1oVUm=`YN!tJ;T=JwPF<i#i|ahLKn+3 z@4CL$6I|{(=NhYK?1W1oLhHr<?R*P<{}1_D_F>~6ed+(dv)(^)7q{Q_<KoeNy}FW* zi@W7x|GXehXi>tfrcAD7nlqNc7}t0;?@qWxnE18-MVm-_kc?NM#?ggDGeocb*mvkZ zcO}>QOMAR#n`K^B^Zae{_OsOT%sI;nXC2EVjq$wL=d_{j@hvi!i*PeUe@4w{iZ0N; zG8?4Ky?Vycnfu>MPA#inczJVL*0=vxl)t^(eq(W!(bZheyJ3rNo4wq!w=}BK<mcl~ zqoY|iqU9BO`)}`k$6c$n`}{@Ay*JZK<w~w?6gd}E@j-a^GP|pHm+$%=Qa=CHyWqRE z|K~6Bo&V}}aBc0X_5NSKuH0vL_4@K(zy8gC*Y(L?+tN$-=Z~GK23`F1(;i=9zj!?( z+W&Udzpo$Gw{QEYK0C~>XF<Mttu^=O{I>7*-+MmHn0v`*zOAIy%Uhn;{dSdI+B$jN z+>*CTvTb8uzl`#~UbXAm<*oD9eJxqLoJgU)vt9)T+h(nD_x-wJrJU*2#mlO$gz(?B zetFOHyWg(zOM553n_KdJNwqprLg}t{=QVe*ZhvHUr%%51T+=b@c56lPx1zJ<dpq}L z9{)LQSB<q#w=QRKlJy&7qeQoy^o*X_b3P{9?3ELb>zXezN&bKK)6<J=AI0|z9sa*; zgZ4(dH4kp&T%X&%z2v~{MBki=UhzGu?{;2!{b_^UwnLNONtI`Ry4ABTBV|qW^0YUF zo6DS>Z;1YS9GKBReG$*^s$cecB}e-CtsjBL6l6Ai>`W|Pq_spiyuIzn_XIbUeeb^> z+hF&Rc?M^veD&N{U-@o0t7jz~^|9fIojK#-Z}-}?Z>sY?)TzxY>%Ezn{)qK@J?DOY zYoYoBr|njM{b#zq$jjtcj%rxq+V8p%@89!gl*jmI_`f+2kg;Aywo3c^F^LMRHD5|1 zDp#Ce&&xaY+n1@2R_!t83A2+Z3$bfc{}}V4S5GEv>r{WsRqK{!@rPEg_@x-SJz#6= zs_d1!nnA?0S&><M0mTiIn5W1rc)}oB9%Sfzlt<K9<jukaZPx2S1-h)!nmeX7>5All z1fu^r9t`997O<hc$rdW2dBgdj9M`&~ar|GaR!m<Q*H&aJaymfAc_YtKqba8XR<#E) zPmx-1g<&b1hN;6!MlargtcD=wDN)vILbR7wX-r)h(iSA?#p}X;JdVe{?=1iR<soyW z{xmr4UwCTUjbk5VOU+cT$<7PBJN+oz+b!j7##e7zf2@cQ(dV@9RzJkMYOki9RZqXX zM69sA&Yys%@-p^jbG)}c5BaZR`aR^&nF9Aeb3XJwte<;T?0;2-SzYB0vp89?C;$IW zTJtYQZExn(3Tf{{zu)bcDldK4@Fm~fb+?{(&5kYH9XD&mbi3!BA6)zPN`_f!-`9UH zR<%U?*OblSmc=uTw|D4jZsQ7%2!7E%`H)olKFMj8*{e6l6&{N_cjHN2ZtK6VA+awW zGJkz(cu!v3%xZP)l<q~$A=mm2&Fl`jmZTGEczW($r_i+<yK_F>lG(PRPj^*v_o*9; zjLcT{_^wKtyz0h6t+EwevRX>Zm5M-w*~*qVUME(z=+3!)Xs2w<Y5#xgGR!|t>8RQE zd+&>V^^;y_M@W@jEM>Nx+<DvS+E@0N`U79th5W1jpPo=Uw{gXd$Y!PeCnaZpF3nf} zvnbLiUN67hZT`CcwI=SLr1E$)cdaeCyLH`evt4&$(=DoI&3mO0a(ezDQ2BDE&g;#h zBYNR47Pu@p@}MA|Hz>*An$WYINo&2bdX|RzTe`Kcew@6+Q0(`E2?fP}0%XLt9qoVc zd7?#IbxHsHr@xE2{+Io%xG1y!yVVM7kGqb0uRA_;<YMPy-+SG$b>$SkDKi{9C8x|- z_}^;9-tJqwL4@P~(ii*rR=r>JOE1fJ=^uro%haCDa{2tBYKP^<6R&q?9N=2xtbOl$ z?Ck5l>o!{6iIHqA*K%*EoT{pEwBo(`gDBywsu>H}t#|BP{psU|ou4?*9MLz>KGUrg z@}wc_&Y73OzVrKiz-UL^D!>08%j=h1w!d^$-u3rq<@c%6zSVAdUmVscc{Shd>+Hb4 zMe<XAFSx`0^sf4QyUOn;xB9QEedfLY=cW8@UuNt6P4nLW>z#S@ucKBP=j=8wy1(Xy zx%RK_Q+Eq@aaGLu&AszK$9MTo-3J-6_jtUMy4Q4dZ&a~a&SlrJ_R~+PtyhJX9l6%J z|47tEIq45}W^L8UxpC%;51VeU@LePvd$HtdkhJ&DYUxW_>yKyaZ)=~OT>IktcZRZ- ztj#MgKFKrO8C~)rHSJ2*4fcJ%1>{><H}0?E4ST3`WWxOTqpNaT_IsaM`N=>x?%{iv z9s3N<mwn#_>J0So35UM^x$0}p)vA44zs~zn_wd>ei~Dc;nHOt6dc0Sz$N9`2=fa2| z&wsGI=RYoZPrh^UpIVbX&gU~H{!iL;=IO1Hb-vGUm0YcxSot&IkI3;kUFX|&KU!XC zD=U0>?nmQ2b$sb<`LDV@KTiMsdrraRb31Z=#Gg5LRdM^V^*!G@<6B>SnD_J7ZkN&w zpO|jx!|c1BFw1`G;QQ$?)hAr_a_Gq~M@sJBZ~cFu_J^ii$1xSTBj*hcf9(JHrqJf$ zUmu&7R{oX$z1N>_c`dyEQ1J}ecb<Q&?qr$nHvYKi`~IWv4a|Kmg-%{mP`>KGORa)k ze-GM*?X(uI=P6fx_E_}z-e;Sy%YGNH*LRqEUc7Suk>}pA+wY~H{<!YE)CQ*Bbz6m2 zZ@Bd_TlRKS>AvjNmuq(|e|^idv-hFCRr#dQFMfBc_r04t<;91YQa&pV9tm4<*hPHT z;X^G}J}VBpNM#vpl&yVX&d4_5Yq_3|$D1R1_4O>K(*uf^9ophm8ou(K*5gFS)Q#5# z6T37Gk4~8p6#4A0$K}N`SsRQ5#lpgp%<JFx+1Bh+cT3ct-_NHT_Df8=*86G1_1nh{ ze<#`Z9R6o<U?cmle+oV2|C?*m4$X4Ato5F!*Q%!K>E4SoyyC(??V5Cb>i5TtHZOL& zA6{!!zsu9~<dRt_LB2+;%Vvj7)|y{5H}X;4G1K|Qe{bIVFSY;R=ZDWS_GlJP*8JFh z=+vLEMBDfrp^{fWB&~kWwyNH@uGaIq-sWd%C2ypywmFBdyVCo0S3#p*%-Yxc7HnR3 z$y5L34EEA9NwSw$ddpo_U0v!p_tpQcul7fL)ergm^MBAo5z+r~U)Ddn%B}Qsu4s1X z8`afUYK$NH+g0=CM?Syz?e3xrIaOxSJH=*2+J>$BdF_DQ#j@zV&!YD}n;pN|b>EFS zuf%?GZO)juBKpkiv(L_^O)Q^vJ=<m9-7|5?Y3mLB#X9TOMH*b!nW24(-{t4jKl6^i z+N$+YU+wMH#C@VU`$Ti5istOQ_vYek+prCxzdp16y}8&v{=$6y7w5&-B&-%Hw|=j_ zL!Q4SEqL$Eko;@2ZNoN)hHVa2tJ%zXe~o$khFNE?&(?pjbmyzObyo9NFWbFVJ$sFM z_Lbc2rm4MAZ^M>%UwN8SY8f4SF0A`*R_^Ag+iR|wtzMhA_3GMnW~*19eU&wFYew&^ zsFc>(>zBoCIJ9<Ck;&@*o39o}*XC?%j#<F>>ccYGTa!Mhd*yGmS`)(keAY8*pU=Fn z5-me-ue{}P)y?$ds*`&sZu0hh#XBX|>*ms|<k`1wWJ#?z>kXfMZ1vR>7qe1MOvyD( zjlO!ys&tY`q_od9w#i!^&zj6!_S)y7*yQ4^ojWeM#CU$y4Y}|1R#)wTmvF&S&K;Ln zVltW5EqNmroWFGC_Df5mGZ$^0k+gPM#A?lJNnNHhl6ci3x;eL<V~I|WT5G&E%6EC# z<&{@UvP|bn`7CF<yz*d4RJzvISzc=o2d_M6l4aT(<+J$eoye?BIR=qt1(}-d(`M;O z`%dpwJK=UYsX24w!IT>bMmYwOW(BJz2KUa%G7&YK#UO2Q^~6fIx%(S~y-WXj$?gw2 zzW&Nb?b1JBrumC+Y<KUix*c6wy*e-d!rQgGYMI5QOMkM(?sJ@;f8nXLjd1x*+2`M{ zs<-klo?IIF&+>J(Ro1e;St}Rcd-T~PcJt)*`yXcO#%Gs$cdeJLnS1<lrOn*s%0;^r zj(2D7nX!zy=+BI0kBV2-EYq65@>Ke#q*+?$SALoU=B#=)_scBz<&~={)z?0|xT-l! zc2$-7UaOE#e!s3<T0YHg>z9`SXRSj&`$=8Bv|^gw=a78AujfK`T0f1^KEC~MvsRf0 z8~2{uir;)H0(0|vzD>T#_kNPm>uHhO&-_Zcn!vXt<(k4~wu^5CVw+z`xomeX;azk~ zagnUjE3v@s9lKmNJDXU$T-KeHchRIn>A%ixS=kqUlI2m){XEOPb_I*`em=jV_np~` zyxw=$UgSxZXP0buD?hy>T3MGZ!|=g6$ta#3#mDAOemAG&xr#2^9oxt6B+LDGRbRR* zeb@GX&5SQS8!qm-BY1D}*XnmRFZ!g<Y`X4qXRBJ?zn>4T9y+31c;&$d<B+T$`xCA7 z>MBc|9Cw!8&-vh6{V?|5&3DaBeada;r9SAr{dIQT{e1H~N&d5!ebB3%7OZrLqxzE2 zl%zf1g$=a7>^yd?$yi%<?>((a{e=dz9!Pc9epdg*yW`q?*^OWG&wp?Is%8}L71;La zLwaPa*6jMlj~QgmFBK}wem;L)`lY!-n|*iUMhUU*L_^*G|8`c(eEWao^Y@D5@~gzv zE9O4^kzO;c{+ZsS;(U{^n!ib}#4no}=1Tu#P2c@u_tCAfF}IIyjFq{4bi>`fzwhq8 zzxVgu^4Y)hitp#X+kW=%ww>3@zP~K*&%L;C-M?LL?oa%A$=~OuY013Tem4(==<5IR zo;aVUdZ*vFt3T^6e%}64`SH?szjp23_io+#|N83wb(ea|W9m-%e3&&~VzbQee&OVl zMA5s6@*6I1F6E5hFP10s@4D>!ou5Tp>kX@#c9>gz3SDPfp_d`{Upl1frLeHdexoe` zSz_xyzkU~%b#~D;ou7LiuKK?FmW`g-joqff1!An}g_|0?HkY_`_hmfHX#R8Wf~aoM z9gX9?MR!hIWvkwhR=pwZ_u6OmGh}pQ@*Wf&K0Y~lPqvIy+R4AXmHAJKoD-{h7XPYR zwO;>^)I>wqvbOE6cb$KJReC2__|JTfT-N&K->L$?b!=!q^?K!=c?jar>$@x454~Qw zd)_VxQ5t&e%H7nj!M0jD!uL9o!Vbokd08*sarcDK`(Jxs_Z+Lf{#sHkz5Y^m{iW=s zGMj?<A~oCF>Xm(NZvJxf`13Utn%c3ayv$RUN^gokANe-u+Y8IzU2)Z)=3LD^@yaZv zRC?3<b2rPMugP%^+ot%tFHSr9)V;;my^K?qN^aW4<Ep&&skQ5;En9bApEdXX_1x0y zaeQ{i4?gD#PF-@f&cN=Lily3;)C+G{l>B*;Q7(MU*uP}Y?=3Dz*KIyp`f2~pXP+cb zSOorHRh()+PiXPi%O@3|fBv(6Q(wWoXBqkLKi%X%RTuEBx%JHYE#W(~Olp-rJI>@6 z+m!cZm(c1Ba?%RcGkH(t1f(@zbbPn1X`ke;bxYsh^0%A0yZlz{q%CK6IA4;TByZol zKjz0#eb3uGxz{h5eJ=NZk-axx^AA@<MbPrMQRV)Z%HFEazqVLuX8I!M$5a1F$<Est z{c0;1iC)%Ds%njrv|g5Hz3k8WY}=AsY3Wx^H}YG4i01oqt@w$?`H4U4WoO?1T5|hq zN%w2f-Lvx$XlCB-nRy@gB&lD{6~C;#Ec}heuD1}Rwrg?F#Xkq<mhVVDCtJSbwqJSl zyS&qjoojY?=FLrtQ9oANcZTnO+h2PbtDEQY7VWZY=iBV8&Rc%5;QDdBy>B*0y^sI= zYuDUsLhI+3<gWd$`(t+Xd+TL)Kh8e9YkzSe&(&Kiula2)^V%A`D)vt9;r*UlgO|)z zdV3{fxtq1=t(6!3ddsr51TUH^^fn}8xs$c%t(6z#-m0Jf{`AK_nfucpmszfx_&CdQ z-L%J9)>mt;uAO#1Yxk)sv8i5q?{7yw(=ON=6Lvav>)aGCxz$fMM#;TD{jk<@&9uW= zmTUC>gimQdvR_nI=xonE*?B$dj+ySTw2}U+VI%Wb;(y=D9n7+cX<Jx5c`VY>D>QDk z@_$gY<Kh>U6_o1kqi~Kt#67uNtj)aZ9?yEQy`Wj~?u{xs8c|)TD~^BKu;9nc4+S4L z{}7eh6W{n<;rgTfN-gbfZv^Mb7;2r7Nt|wbNUypj_FD&Np~fOx8yls!GvvOswtM#- z(cGbD6Io=Nci_9Bs!ene_lr0qWs_+pZLF&ED!kNNSeLdx?)Z@Pa-s#JdR0B!Iv!*1 z{f(;+IWP53FuS$)e#_Yhk(uQc+e}*D?vwsvCoQMd-Fgf%jlCgQXLGQQH2P@&<wH%I zE`QXmkAGY`>-zJ(=Q!6-OLcneab0TX^uHg?7Y8P~ZV~s{pON2lFhT}APkw0mN7Wih z@kArNW2!qu;tz%wO0GMw{qSY2@0nA7Z#lJB`B&l$QQw2QJ4ClXbWiNdnzwk?^A*o5 zS5^9b^grD7==VnkP(z)W|6!s{ll#YFo3`U0dp^%Qy8e*NI(yrs+z7)Y=6mkaw`%uY z%~rp(@4e&v^LAX?US0uR6E%+8-4Jh2WO@<c#D3Lq`4g4(%PZ!-_}cwLZQY^m0j;kO zUDkS@Ira0GdcktF2Z17$|JSd3_43`zmz?1o-)k$^u&-OKEmwH=MHRy-t*)jHZoQ_? zCMG7u2fbZI+#FrvN=;ls`g|V~_D(HsNL1ixQC8Wgd}6M_*Z(EL->-(o->v;#`ETa) z<oM95SFeWdzyE!9tlF75%V$_B&$Lw5op=3F<xI!oIo3@Z1%<z8849W$OsQa6b|9yM z^VxyZ2I6+@`VYK+aD^T4ieO!x$h)SMWlgh+$m`Z4Ef946NcjeNz5|XHEbd=w9vwlT z%`WSWzB_16akPBk=OeH6Ao>RPZ-(PZ@7fo{No|>TzA8FHm^<g%zOzx=BVU`nzVmL4 z{pR(Fw?*?7_>{j``TX|wLK_aY!*>lt+zvP!NJZqEC8rp>fr&NCe}4O%lfH58`7%xe zKC{OO#(ZXv4@5<uK%n0}TffbWWqTUnc=zv|beo9s&%ME|npvG35ed!Afdz_eaUVn{ zPhgaFnPwsW>qX783cF&P`IdGwEbq-nLh(F{TOV5WSI#?bb3S?AbHnqWkNjQKR>2_G z(w<;q!_$9Yu>qT0v+JUj5j;n$Eb>br$SA*r4+-^I`1JR`V7iyZn7_4Qd(?qwU4vz> zOONqXaHSnG{-9&Se*Q4G0e4)>%@0Cn8mA}fooNn#5L&_e>@ZV>teBJHo`u&>UUucZ z8JBX>_-5MSrB?BA%id24cM$LU{jxf>ey(<YbIjcCwB1gn*PAcohOd}?gYVM()d#D# zMyV=gZ9Nf^9k};(!PD2RtGm9+Y-QHn6g+1^*~YuFHRb}hjRJ4WsASD-PUN`5>zpXT z(_SON$Z8<ucF@?Wzha{Mo)gB`JEWdPc^t5c;Fnh5lvZS&onS1&`1oXwe!@0!f$UGp zTfbPP{VhoHiCf~c<H+=yN8WZHRrP~3vm&`>M2F?BU|##cWp4W1Bin5M#H9!Ze_FHo z=J~5XkM!3(a<}`aJpYH`3=q0F|HsAqNqUio8+WGIuDl+3`Eb4C{&RUuz6&Ky+P__h zJfFCfHywmTZ!o*^{`T9!{;rkNVCv`d8*2SbQcXo~e7<qt>u2r;*%`%a=9~m0%QbT> zznLp#{SI*a`8Ov0-^M1cH_nUNCa=71S*pnW%CR<sfp?*x3EQt%7sA{3S$(;h$*8+f zbW5Arh1uJF9ncLp@X<qJ>2+7$z31L8dta2_z%=)DAJeto)4K{I&GlX%OTD{ejr8|I z3GT-UHXru9bD6<1`61^Frr<;=8_vs#Y&NX^hkX)i?xa7otdNUqh+O2RBk$(G*wYet z;KnhD+c#<t{Oa4dFL}*-iPzR{_Q_w2u@dshUku$)h>O;dS59;^aT`8r4$+R(JnFJI zLI20QiB+HS7R_`w`P`8vckzt!tjZ&7{Si+D&+hpk+|ILNZLmgz2$w=DlgC1aAathd zlhw{oRyPZ2xN=Te#Nrjmv{a)pXo`cT*8&mMfG(JD=cHN)I=c3j_}>Ngci47LVBdaN z)_{TS(A<LQ@7!Hv9gva9S;bk;1bmA-mRY)7mRYpY+oZH}ncl@Ks<U>v1W(U+CFC0m z7CgCoHYRfY@Vn3QgVC8**F}sIw=@2{uKxemllb|6UQe#C{j}cy-`A7-?N9_4eRY7K zjnewjOw|iSPA!nx#|SNMzJw_K&Ot_tei<MmlUgC)`7W2$FMjc)1M{)g#MF|;{fDj= z@cLZmGzx6;nW7-9dcuW#CX;?($MlFU6r^#)TjY@{*GHk&icY7;-VdeX4{}9l#%!A5 zF829E(!4hUf22dV)u&ajlyfzE?PK;@CT;V(T`}Jp>r%GMr<l%Me)?q2^T{`VO}=?f zee>7j-TlGkFT<}2{aqNPW^{!;W&hM4Kd=7yvUQPM<hm(3%dfEg`TNmFT=DW&zWvFY zrhHCKndf*&`E+H9WxvkziBD}d&2gXh`9zUi<T;q&!X@5;mzHY044P7+>9tElHMVP# zo~!5dMJU2o=B%nMM#@YTZqFxJ7N3}7`D2|^O}OH|)f04HO>&Lhw8C4g^yDJF$SbPd zyHWzDBLpwbw6nVGp8o5FkNn)1i;Zhbmi3?ef+9GZy<}&l0N=qx3nur4LaQ1~9n<98 zK<J%!n%{((?2rCW`mtZ-pMK|mZwOOQvDMq-p^#T0r>0SbUrPJ8LN3iYPF+6tru*D8 zcbc#CrL$+Av)lIq-jyD+lGoOHH!uoK`EcTkT%S_wVvmO!K^9#iGw&;ZuD0kFIj59r zx-3UH<LFK^neD7ex_Zj3MkgF4E3UnaN#|R{_v(RFkVcD)NK^Y~kB2rv7X2dUlv}|} zjrM(TBvyDusW0kC;A=ezmgZ9XD=zj|jxby~!Vu!ZS7+8a$zy?v(6uukq-Sng!}`JP z$6BArYwkJWFP%c%4n2x}R6Y5c;>6ZR9t$jlH2PS&lpDqMj&O@VYMuV5b^0O)p&t*I z{&?v0JLch|PVSGacKZ$-7yt2tNj`pq<WwW+_y>=<Yp$GfxN^#2ce~#9{FZrD68{ct zFTR=XdlOPDTzWS5K=DIav&XVEdz$;pKLlFnaUDPE{G)>7e%+K$$%pbqzXaOq)g3zS z|KkUzy#2$)O>GOCVnPC#Yg+q-q}qgvK8o4hJ9IqyM+LWh{=>(*H6oWB;Ha8C_kByO z!<y}#Uso(!2}U<pEW5d4Y2u2djVqRd8LHyz=O1~k{_&URo;o4on1QjJA>m9{r#h6X z1`x$OWZ7)@SMJ=!RzLO~o!hF5@37}J?k`@ae>-}i{Fip?5=}1MMkntD7lh8)UXeWh zbGnALyMAe0TD_jkg_A1;A~klnOiAy)cCq#1u0y5kuN{47TA*8Ud2V3Y+`Dpb_^&>F zXK<qZ{nUGV-`I03Zf$?`IiN<a>%8;FN)0>yqt6%quo0P0rr`VkiywWiTk_*o*T!Eq zi<iGh`63i9ZQi}`*!?3%-SP|PU38C8*B8B;VqduS)hhj<yI<yCNwSUBy*&3y*<Z<9 z2El?4ujtu2PJQ8jMed@<)JNM-eQ~_#)8nfz{`rg4NB+HS*YsEXGrO@l<8Mlo{mg6n zCcj=bKe;yd4y$>)_Ul#F1=Bz8Je{yLL_hHTp-m+_tK#>2_T64!cSU~X(<+_v`UY$H zFzc^*@9s73?tlEQYxnsl?@qTa4to)qC0cvv<Z9Dh+oM*CuVmSJ?X_>pQKgbsHh&Fk zf6th7eX@0UK$X_g&sS%a%(`?w@R!l27qhSIm@Rer@cS~G-g{yb&d#2&SAX){6Hoq@ z*jMfjDAKd4-1%?z9~b}0(MRN;Fd7vtTd~mZvi_>2hm^hN9~0hlZm!+Ieyy!+>v#I? zcbwLDp=y@8*MyayR~v6#^=(O)`t7yfK7=ftqks9n#C6VKeIdaO2iVvbJ#gZ&>2PMd za>3ih_r(J9&f<r4dmU^T_zyW7NXfOiKM0gy?mrlDtYBiCuGs6VZC7UVu&TKnV3L*r zRq7qizAIR_F62vbiapU(6(BF=5S+nwb|LGQmaq#_w;ZA~*u!5cE$03sx~?sI0fXBi z4NyDi_k%ikbM*07w`3-t7Ec4oc@3Hdq4`smzh?d9bD~Y}m+a3Dzmx8zU6J>uZVx(V zvpT6y_kr&e<Kyd6`a)MWzZ5F%5G{<j{mSFl1gly1mS}BVy6V#ItA=yeUYc`#SEHoo z^cmCko!GK9*XpHnn#taiC0kREUE1yIpFX?rTzWv>gt!#GHpK#Sp4LPInNNu<A_qJq zSkJ%qeTKJH%b0)2de?~<mhMDOo!0V1$vy1v53_$z)M>9jAhq{E3^!*4`|Ctzl|<zw z3BoyTN_!Q8R*FY*&DbC2qQ5a~^IGP$4^%Sv_g|mAX7f$EW!-Bu4SJL3U9Or~JMZ|T zN*xff=I5Mf2JVFd_u5?N#PfJ3XkIAq-WNT8^MBTwlmEguFohkey0O4KN^{-YHlrKd zzaLoN;Aej@L2r}s0=6qHQ33J!TcjPFGgx{b`s_VvC(ZVX_1oM6{yW^l4<sx6)^B^h z(RPWr#oLmJ#hdOunRDt}$+o!<y}qr#E<N{N%zNhT2bAZ`KlW2S(dtY?Wxz^vw^qHb zYe}bnb!}R=h<D+}dr!Vy)7)<V<j`9K1~$gmcT@N7UQ<5(>$^?&Vz2G~ZPC+OXdw4u zy)~>O7BYj)|4_*cM*oAC4TLM)zDHK@&1)A=m=-6nJ7#%OxP$u(mbnkTc5v--*jJ}+ z#>ADN($iG^AZ`c$yLR>mjujkkhYx??u;EI6U|1n@?2v^7zi^_EPn&uImrrZvhb48# ztt0hMbi67zis^V+-r~6~!r_U2=<6dZk37}-*dnnmy#vxK=zAgZ&$6}N@8SI5AJ0Yp z-8^pp`$xL`|2L24*Z$euU;pjnc{>^i)_u^8Id=TZXW`hsblu~dr#+55{c+9H9~Uw~ z=-k#HU{o|skMsZkiO2uPyWf7IxVJZFno9TC0Bu*}Pfx>)ZX{Rikc6Qkn;1(uy$}AH ze}cLGPdQ}#vqDY&{FBEsYiuU>r+@nBVf?|-_=BeL2NmNF0>&Q%?Bo{8<Ue@KeCi|P z({G+usq<y(<kKy0*<bjiSyIN8JJ*SO`Go_TU)J~k`+9M|-LLEJ|9`!Rm;d{EaeXZw z!PQS+TrK*ts^3kwobB>A+c*0~YO-g2yExmfYO~F(lU1*lEnjH3e4*y`MVi;ESa%(f z=3HFjX%n2^eZ5sDgYE3YxO4j#Z0Gb0t8CrV*B9J<)H17cN8n!db0P1$fAze-{mOaD zm7<G&YX#;?zCQQk7f07araiT}Qw7ou-o-DLnYE~RTk*DtIW2K7dg3xxdmT~T@;mYC z`%V7O{N!I$PMI%qubA=ruf<x^I(W|29=mwzLA7T6uh?B~_7nepzQ5eN{?=xzbC1`_ zo@}3fvHfxSt;xFlh2NAmJr&xNn)yTaXzHN{=Z-EibQf>gAH2r>rr8(8AJHtkk7!P@ zn7VkX(rooJPoje7nf|!8J@1#csYl6z|MIh*FTSplZuj&Bx7Xy^7g|JRL<^^AKa!Ds z`XczE-wdT_c<J~-flu<z#?>oU=Q%w7+7dG_lhf)$ZOJqCs;!nDDYG%Uu$?)3YRu-@ zN}r$C>wf;&;`GNSH-Ef;v*LZupR%$a-}N7@xc&Fe%8unXmfm~p%T|B(3G-jESKE5h z<&VtJSr-33sB8Jtn~xW5+vv5$D6IRk<ji?Jhv#4Ao$^X=*Xnr>%g>aC@BG#LAiDF4 zz}{G2!St0YALYDz{CU~!1u1dH=LOSe$R2sw6IOn4ij?op^E3CHbzEdw{!48~eZ}&M zulG%Vx_n*mt#``%qu<iDHP1*~{l(3s$nw_@4~zP1-0e|b5eMU)7M6&qZq|@oy2QVe zYocmb=b{Xajly?J)XTZ<y%g9hb~pB1^m@l5v9jByKj2-rSS**V%OWT`{NcmZA3lUu zJkhc#5|!J@)gROPeeI)pv8A3L^yg)KR0->n-L}o|z4+I<lJjy$*2GOXzM0plbN!X- zm$9tp9~wV?RrH?u%CC;!$9BAb7{52a=XW0eKQr#NSD)<@jIwd)e!6AHe6ht_wr&5V zxhf(()>67AK7oHqjsA|w+RZM^S#B>kx}I&mvSv}*oPA500~e>Mu3i-J$MsFa+=7;w zwIW&zx%vcUcRh;P_40Bk|DvP4kJPSqzdf7t`GZ~grTL1#SWTNM4PF0C{8=EUysyi; zjN|@UslO!^+gsw!&pLhNsm$7W%IPz<<SujUE}MAkk^VQ{3$j&RW#2+(utr<nW4qm0 zcT056?epIhYPt9Q-`F%y_TkL_3!5ibyi@-2MrGb^#q+W*Jnhd*E3e(nYF;6EZr9Q) zKPE_7ueb;$>X(%G{@SBGr!u=l^{<`JS=q$3E<egS^B&aQoq5vs=Dj0j27!gUGdz#1 zRyel9<rtgGv8W@vmp+WY!g(*gE2zs@bWi)bH>KRy-9F@2M848XyL$J@?$|H8Tddz* zth2bkEhwM;YfMymMr4tys#J$v)%qQ*|M<#3e%t-YE`LG1ZK8p(u}16}otsBJ-Y@g7 z{xE&%mLRuzHt|=wuUx5Ce)^&JUiMQbxjTI22NEQlc1vEZ7uN7Rtr_LFa(Bh5gGc_n z-E%xC?IK@Tz>h6Q9ts`H=>KQ*<<Zv{@v47UFR7n;)nERPUnTe2oQ0yE+UggN&)QPd z5q4>dP|f8%&fK?~_Pe|M*Ln$6`(^#4f1#K5dlh!QP`2ude(>HP<_V<q4|-B?T<Xrp z@*`_Fl<&085KWx2TVQis(h_l_OYe>R?Gxw49kY46;@K-so6F)U9ovpqJKy7~3T~QZ z;a-x^S7vbjy60!fiOF`{=R4<k_+B*JG&R@qcK(CtiOF+0(jC{m$as42Z2>#W-{Kcn z55B5YUj4k6=YFU`Q}vg3AGQmwzxe*<)uo$Od8b~?pFb(RWq;$1#n+9Di!Pu3*mVEF z-))b+?mKup*VNzReagD0%WBVs6)Zbs;~4L-dgn{sR|=0~Jl|?19X8y1sON?Ak3)yk zeBLjA!sQhwbnS1$>eZH;XBp>3Tn~5O8Lzsy$Y=fG<Yi}9Y*;aS*%hljDYGWsJhJr8 z7rl3rjxBw+JpJh_j@w@EqK=-iiQC+@ds*S~-!BVyzT8my(zWOF@#s~LIQa}-7k%8? z-r}e&x@FQbQD1J=hkJDs19msv%FN2nnilf?;gN(nmma@7T$Z(c(Kod$`4IQWjgIeE z&p3X3Mqy@2)3xI-PM1YxyJpYMc)LLIYUhWQNqf@$uN={we(96puP<2>T(>Scdicv? zkEN|kt|h*UO*wYc-f=sJ*OKs{B=hgwZd$ILcehCP1a+D1OD*~TwD#k-)%S(B)<6B* zl6v^N)6Muwd7H=oKiUfT|3CXt{nVf7$LFU1Y5mBz{?8kWZXV-cm$SRRtlw8~wr$I` z4y)daJia&bPi;+$$v(ODn#}fxQPJzRD$CDE6D!X+a`jox?GJu7#*>w8S|a;@n?K>} z-4T2tEcl%H;~MUB+n?1)pS#SLuc#q=XJ=q(=L0{-=&diOKY8V6+->}I!M+Ty|5?FB z>bYi1>nHv5%zA4wyLd0_mM1mYr?xzdiT-w*wSMZHu&x)`A6hQuIK)eLd6a59zE%1q zZ?n)Ox^S)O^}g%VZ1UBvq`phN`25$F+Y{0=kKE2bvv(HD`J-RcV)D;@ofeaScBffP z{^_q}HuC-lcdzu`9XV$$``52kzb2%WY@6L%Io-G7*|I5_ZZn_7<TL7OUhXnlt9f~v z(c2R_2dh6FDqO2?^wQlRsr{w9+TV_g{Q5Gtr^#&RbN^sadtwRy#s_OTMD3~%zbdr5 z_dDTB$d5b6vqM6@M|Da4e>o@N>aU*r`_FKP{mxYS_x>Dj)?B?e@w4P(a+P2G+5U`U z?ccuT|M;JCZuJ+~`fq)4YuGu?c`x=G$5#l?Z-4*MewJ}!UdR94pVfL^sjp~$Y3p(+ z&SlOqm#u!UGIlksDBHNoYr0VFFM+GGgs)o7nD|9bDNBD*VDh3Ub>ms<6jsIN9J{pC zWtpAJ)@LqT`O?yUDJU0lDHkaz7cGjM|CsGpd5;I%-mLR0wxovKn&E4Czo+P|=4Ga+ zqB~thYc;R873FGP?~4>Zy0fxkU5@CV*!fQv@nx9{FTE`l`q6#MA@>z~r5@fFi^};T z@?2`~5!GX7lX^ayZ`)h=F7|8itEfFEN~;V{Jzn`i|LWWy`=|WU&=LK^yM*`Q&G-Fc ze?EIWdNN(|{cF~TaUZU~-L^TLd3sHkz#`^(UsOJ-+b!?bK5})@-W_2v$8WyASoFLz z`e^c_BEzsVqU9Y&lO)~Wf1aseC;s}V%fu(2do&Kswb3rS{OGis^5TgR$tI?Lg4w-& zZt8(KF_|&SWm4u6wk|UZCl^ls&^x==ZqcC=rg`G`C7XLQA1yGP>+k$n)2_E?W{s4z zzI1V~+OglqycW;2iJg}?NA3KSbm{aHe4CmJr|oe_lTJTve_H0TOl9YuBNpLtTI&tY zO`e;g{@CfJYh3Oh&p7Sfl9roxzsdXKdQT<aNN;NG6WwE}o7TU{j#2!5@^)|ECqK(0 zKUT|Vxl3O^>Hg%gTfC*8pJCBclb=frJ<d&9FYTPN@Xv_~hdQO}(!r@gV$%92Z8x3K zm?HWq`myd#e>tOj6WvpmZuH4g?ctviaw=k7j;Og^kZDNnWACXeje0}1yiHBQR*S7# zx-o8RSZ>dftmS?tL9fbRi7fV*yUfpcU)bBLlE=bImsy>@vCe8maqrw$HKmOkqhnX- znS5K(eZ|#n<*7hRx0$b&tTQ=v)pXVDz=e4Mdwc(Cg+G<dEM2}Un#<IwcfvHOm2O_q zzJb9@7smy!_YB{=@ZJQ&uiL7ktFk6W={?SBy`}Ja_1jfG+d|l<PTOy+oYrP@`izPH z1o2tVXFor^?wLaImOa;MuG9p7Grw;*{iNoz@Mm5>x9mK2M{~ZZw~y}qjva#Gb&?;I z=KawMG7gGf*RiHIXUb~j*~-zWMnN)~(_AOUPK+(`UZS$ey-rrMyGDDv>o?bLC+|*V zp6I+urAVd7Wtyv&^3+W>MQ6HB<m=o%HGzHYtT5l1+p?ldmu`C%?K^c-RK))9bzj+E z^RMbG-S$=d>XluWUaj)moVVp&aC#(v1pi98Ys%LoN++A1lUn{S&3A*^s(aUjuL-{r z%U<<$%CFsD*L+=bYHQqvxPZ!Q-PgKbm1WNhUGZ+iy-m|rExcBJtvzeX*NtC0cisPW zCTh9d7PAOX(~Dk_nx;2zCDpE-x1lV0Y1XQ(*H;A@=OlW6os@g~?A4gvYipPNYOn39 z-4~S|pAo-e(zp3<_pj*v_OvX0>(O^f<$*`PnSL|PYOh^eyY^P*{e=5V%5Ls`Yq#po zyY%nD`)X&~hJ@ZY{C4828MXbj>owoDzqz<9(>|-;P`7%H?b(tyFTa&+-u8FO-zkyD z=VjU_r`_88CNgcB?fJN*Yn!Lvo<CFl#_G3UpJjeitDgUpy?TG`l{YEjH*f7Zmic;% z>26DP3-y`Tt(RLZpJ_YCc&_o;dFL$s*gva1w|QRkIqkXAbEnPQi&qx!ym|cPixQLH zR&(cSpN*codhWWk`sY>8tBlXTeEY>Tzx-VR+pKcS!*d@#6Igyg)8KvCyTW(I?N*ED zx}T{@@A*8#@{;899^?0gYF5H$tLJK-<N0j&Ts6J#=LX~RGt=!}?RmB*t*`K#<^7rc zmh5wwpG7?1P<%s1T=m1u$BWahn5etGU6JkARduoI*_Dju4Cc?R8H+Q5i^H~5ZrN#h zeDAHj2WxJ=efrHPzWn!&+B2>1*5=u7zOeV~-m^8A&lcyK-!Ed{!F;Ctj^aCk;)&LG zWb^dO+;=QKqxvr6yXa@z@3r59i<j>{cQ@zPJF)WRl^1M<vNM(?uT6Tad^TA)`Mm3~ zWB0mryU+Bj?Rne1=gG~uzbC}+oxFE+qSE@=<=Ia*l+QLl&{b7l)x1XPo<RPJ(A(1Q zc(=c*Qr^S9R_A?U{+g?Iq~G^$zf~!`_vAIsdm`^6U#GmUd|&xmCx6=auF`Gh_p1-@ zx=?*PIw|(i-q(AxV;}B)zBj$}i`@sityY!sRoQFS#U1jFu-)@D?$WM{-j(sud-vqt z+kWl--uHVBUlVx0B0RPC!==K+-mcR-w!G_}U3hwz{ktQNuQ`95^-<^b#)`icwb?;? z68CI0wY+C?@764-eChn`vpxM?{hQ`>-j}YwP-XV7;7{S}qd!`HsAR|e>HHz`dh3tL zAJx~gew6$udF}Pb<&V!tazEBT62Ix*xe1bz*Dm$klKi^nypdF@$;PlWnNt>7YXvX4 z?&p3O8}eGKuqi|DpSOM0M!jphkG$N~^4HfsT4`<ii=Q=GUlz;6F5MmcT=|>Vs`b-f z1pV8+_ScIC{;$}>y}#Dk{VzWIZ|3hB_Q~~I_y7FxuK!%lL%zs^v2`EWpS$kt-8HGU z-{+q55lg*)h4TCBXU*UFe0tUDZ(qZ=Y?!<J?%(X%KfLyQYyDQ{)wb(hmw!3;s{8M{ zqVGl;m*QV<{k36VjEm&%$u8aUG5-H=o&Cai?`~bxkNNYA|7lEn93Fo~pNs$BPrm<4 zznO0cUY?Q6-7Z)X7G20#efH4m{};5sR6XM_X21XM^Y{6y=U+FzX~%Q(SBPx{f6{yQ z$3OmF-W>jK@~zCj8}FUv`4v&`XkWp9@WtO9*X&Q%{nU0={IJp~rKLJ~_4yxL{$BlF z{JDMeqF-m~=GDk2@As^4zqkJ2O5;lI|9f`pao-QP`F&}9(EgbBiM>DX_g8$FeX(Ho z&-T>1wfC<+4YIeA`muPie|@y{pDp~S!_S-SZT$ZH1@Hc%=g#&Kx8EL>uV4B_yUK6F zqOZsI@AS7{w_kgP?7=yIPfjh}ztGHonLO9`d%v!KUGx8&^ebccFVcy3ZVBz#UjN;F zzl_`E>5|vy|FhV?vXyJEMbE7Lg>ip;xPRCEUh`|_t*e4z>worV>2v(wt=J*+|Lgqw z|J#1Qx0-jlMD_EF-Sxlu?)|UYD*MND&*|@y`L{p%fBl+fAN<_K?(B~_KNiQGTX%1r z&A*@VueSfc`RnT9(>j(8B~~B2W!38H7JnByxUDT)YsS^~!=EP~I_>-QchyWk7RkTj zufqQ()c0gK{MqjpBe`b6t76wDZL0RYNB^%0{@MKZW6C_KM@ARB|6X5pUevg1b-m^4 zy88bGZuXvkH7-6s_sT<VPW+1J+)MBOJNoOt6}R$=<@@H;@A>s>`7hyP|3AN4Jpb7H z#r8Mqr`+OoQ5V!$_~upd`&X`8KD^SuSAYEceE-kKntrU<{o>rN{(YNveKEFQSuY>> z#`W*2xTV7O7P?1!AJu)7s7^k*<H7wi9pN)}uJ7C)*zSGAsL<_4bnE6LMH}Ph=$duS zeZ;l#wt<WJ;^`N?@3b!dzgj}1qS8>M;NzpboAJ*&6MuYMqA_81%0>xI@03mnUGLPH z6&4?!JqoN0kQ3@Z=@qGYjO|`b5BHv(GaAhMJ3Uv;%u-vnQtp-8$0e_p=7|}f*?wlb z%Y&?~GbC5auGHPP<=&QiBJq*$qfQ^;%AUM6a?PeKOOMVvaJh49<8ooo-&(u7HMnf% z{*dx7pL;{9!fK=Khmu7qA4(RPd?;C@^P%LC$AgzHQvT-01a|D?Y)kduv|RGyfy<Jn zO#bOtcx>hdo~}DMFZBwi&D=oq4<&BVHh1kFi`<!GwytD~u;DK2zQ<Cwvgc14<dtPv zmiE~B#V((B@p|S96SH5|zH^_s&AWUmGnuDAuV7Q}?t<Ly63vC_{L;>a>B&708~+=9 zV)jqz;joz)C~&&J*ZdvtoIb;=t6yF<pH{KHV!g!w4_$lnd;6KzC$8b$)3(v@gVeES z2eKvN+2ao1kgDKaZ1F+r*t`ST68G8S4&RWj;7zW7VA^x)fV)I!W4}QktDV!So(wmi zTau;5uRP5k7aR+e{FBcmeMmC7#n{a#dD#PvWnC}Nyp&85OOJb!+<h}iFEUH+^GUAf zlaJO!omy2rJ@RSW=2NL*wa0#*cXc{)#L8|`<Tkm`y@5Gyv7()C*KACB7Q?+U`c3N5 z_m3|J)u{7zhCMQvf9+9+h1#tS6XQ)`7Rs|*jDuQ@FL9?YIo@+d)HGG@^Cj-*skzTm zC!UxT{X{I#y-s&~XI0VeJ9@89Cq2u4T(HlK>v{Iyf_>L`pJyK~*mrGWR92w7;(u4Q z&0(M7>s(@=tvhR{A8!&6_^dF^qF>suzq(`FE4Q>_>$GD1Z~19{+qs{Y2tO;CXmCdN znV;g>*k^f(GgX)AC#ALSj5jgmpTX|R`*}j7>a3Z^XZ+1Qbo0K_oWH(@Zr)dcP%StA zr%%j$e#25JEj}k+$LF`uHRqPE1(xaSHmrZ(<Gy?GhPQrY>JM+sjZ|M7p&lN%oqP4u z|AFPQA3{TJ{yuYN_NRNh^=FDGwBGYR!l0<2!qpKGAu3wp8YnIzu#|(NOQC7e0u5J9 zEm@rgr6ATwN7vZXN~gL+HN|u~cn>z+`Coo+_K}trp@h=^#{0{Q?$5maY~RfHb?K+3 zZ<wPSxR1%n@Vn3)V@`{7y~SDYp5}>rm8>sVzaZ+}REzFOPjtK{Z9Z`zvP9M^_Wd{K zdD3_Oec&lzpYW2eB;Q55`Htg?N`rG-G|p{_4#-+zE%Gn%oxzj+qR-=e&e=AvU#@UI zqnzi~-rIZGqmS=={6O-3pZiMAcPvkK-k-~JUZk9>%INA`F8*`=T_1jSR;BGQ4#-+& zE&OliyO=A+=jXQ1;lA7Y!RDc!)6L~~mK*SO-%XX6`ShLEm*TCvrIJ6b`K?p+b<uC3 zs^6P_YrU#DeRSf>eUBf_D7jy1?~p6MD|+Rs-Dm%@B!61@oAuVOOMkmo?T+8Q+hEfD z9lKX9`@QzJZq%Q1e;I4<J$~nSZvLJ58%o#j7XMfK&hE>T^zY(V{;&S6o%QeRUtZJq z<==z5e((Nm9cBMO&LQ$`*1!L&=J`&Q@J(n`+u$G^v4B(O0*hD%6Sqkt>#PGzz9$%F z-C?!9CGD%0%+)Fpd?LX|k<~|%%UZ{1PK}$`rUsqap04+M_qlI;@%y6uiS#Lo-GObF z8ja=$bo~mc^;-GL_^ag6E6-mQYppL^HTTA^)?ZDRu1tUBy=uk2p!*7Yqu;vy%fGt) z#OJxc_$uo{?3MPq|8<efT7RqC=J%EJCqA$KB^q5H{9AJspN4OyA>Z0yiTw%A8wJ+L z7HddqJPT}%un=2Vv@t`cYmS!K;;sW*MJj@lpK3N=>^;SN*C@d_S#;v^qBUGgkF7ek zYSFx`jjueecU*P&H*4c859Z$w*uNb#wl!m3d#2~C)5@D0Z?34!%aMCkqw-B+YO;w+ z_r(b{ZqA<?BmCJjEaX<JW@Iq)E?4?%P;fy=rlg_CUtw>@yvA5pi(3tCuP4+oN@QI0 zKH$i0@q<sG*!aWMNw2@pd$2&&BEqj=!=48TE(IH!9wf|qkg)4PLfeA{Mnb(VU6ONq z&uzFay*Kf<)ZavQDdxoYX783s1bkvLVpTotaB_8`r0U|PNr{dpSq>fvDW1NwdlC!# zWLEazGxyKl*9;W6u-z%FV^U+S+$BM6C(p3-)yAP)^d_s{l=!X1`7Lzgx((|Z{(DvK z>Mh(b=|O_%>eW|!jkpU7)FT}Z*gj$W{VmufK;JoFy-obqqd#xn%I)2}z4vyT&OwXw zw!#wPOvkpm&$@V4sHB+X?xj1Q?|y!mShD#}_nqzp>s@mvOg7Y0c@Y+OL09R;G{%zM zT~lsfeam(G?Ax|K*LPe$@U5WwfYGJOrjm&aFWGi6Kinzk@tosW<-4=*&T3d6k!||J z>R~SP(&AWeNxu86iRXluY-V|>^e&=Y$LsFvd+hv+=c%t)&U9t=3%{268_x^BIW2Hy zGs{<}cO?tvi7vROQ!aLC^WB>cTP)wnJV}??!oqIc1q$XDjO^jcvd8zCzWeO4|3zL) z>YL9EwekvQSA_cotlzUB&Lv=d(}K8J3*vSyh-+Iguc*GH-bM4+zE4fHnN78ljNjg} zAB$`%JY{Utyv8ERHLvTA&%+bC6QdK_UE2apjAU+z^!9Z0G^B^5h_tdUKl9?qi{=!r zM@v@aH<<4G75CTSWRw0r1#hhhsq&ZXSI27z&M0DdZkg;AbfznE3WrIdrelFhWPyq( z$D|$;We=}4PHUJx8I&zKrgc>7V7%&qzN{6E8<itB92S4$A@s(Bt<1-Lu5q$)U{+p^ z-ly}-St{IFGg8d{^{wAy_WRG57_0VwbsF>j|4+Uc|3d$#aLw(os5?imS3Ze~k9_@a z%K8G&Cwu+&)kj=dcB9wv%g*k{{++J&7p%XWdlX*McPH<lsMX!|Z)|NgcIWk<nEYSP z=$l^PBW{;l>t%kI&OB6ACi};?Uf=A4a@d{biFX&4KMt-)UGJeXD{9FX_7h*_K9=@# zd9a2{a4&jopV=w$ZCS?dE<Mrv*O$h|UWlK%$8351h1*|$-w1l7cVwd;Yxv3T`p2Ku zEmn2M=sVnBd+5tL=f9__vQMs_rJkkvm+zdQ_u0#vpT4i#DfLhP--oY?w(={(n{8O# z#pWNhe`(JBCpGJNu%%o1pO16bH@(z#ExMz9z4=Gf&oIy0u6rV`D-vq@zkQ#&`kHm$ zob_+G`?e^3eYLmB-fsV=t$Kf}H`cW8*8gh1?a#^Qe*$%?ZWW5W3-GG7UZK}_@YM0Z z*AJ)fQn_)eLTg6UE2bQaSJfTI?Zah4;y1>L+J5ib^hfCLoH&^~@*Y=>zZO6G+mil$ z(dO@lAKSk-^xkf<e<PBolyR(h(!I9*+|4n&pVr;Z{;{W}H2tIY^`?}UAqBZ*w$GZv zzefM?Y5p#=*K@z#zyC)fTkc%kx8;qk?#0jg-L;b~L+oRZT=qVHb?;Y+eW%v{7O#pv z^qpsZx$1i>q5H+UmHJ<__wxPzbg<Jpn7faC-tmS6);%9Wx!#=@d&^v~^TR!k`^lD0 zXaCy;*4kWST`V$rzwnQ`;?A|qUw<W4KCa)MQ1-i}e?oG`ds(|zt@$S{3b{Vt-j;AB z;p^6_=0Ep-pU_I>>kcgIv?_mW^FwXN?i5B#u6I^%yYp@T{e0X1`@+%p;bI#^p2ZpE z*LRhcbH3Xdx+7gP-TK@!;hxx~y6g{cE)%-_UH%Q{AM+{imT$V_uK#(_?&%vH{z!IT zteW!YZ<s)WX8nY!nDrgYQ=%E|C;y)NV`-SI^ZRKp(i>)+Zq9%GmFdy*=CC3uc?I== z9NU0J4XpLtUuta+bpH6exkadS-=gWSw>r*U`A7GIxHJ3O)Ayn^+c$^okN>e&q3q_l zl}$U0&K+UB829wC^1mLBf`5M$I_|iZPsq>ieE;n0;dFzb$6rIvlr}d<b=ll*608X0 zw`{xj&zb*naY_D?xC4>4?%xG!c8G7jDAV&f%GUS$kvqS1?=w%ajb1DMGV<fJ=167d z{RIJYt-q$ZO#NuQJu^}3!Q5Zde>{I7S-f%A_Y*(keuM;kjP!c;^3aL!8Sl+1-z|J0 zEY90)zwuML?$P&;P6_+mm)WVl$z65c{$Iw^9!=Eg*XnyH-`_I-)9X1KJhtn22mWi^ z+_-p6`N!`9<-53x>q`Ipy?Xg;KyCXxrI+S~d(J;oPi?ByI453z>GX%ncRy}ToVDq( z|0bDm+4(Qd8w#KL({cYxu}pjG9P59pU%x+Kxlg;7aoWzc$q(+hdhM6{A9_*z*ui@C z``g%_`(Jpy|5=S*?!~)bO{;q29GBHdFJot1yS~eqX>ZW~p8VvmyuU<ZnJs25W`CXC zzj&=h{hF$nzq|&Ta+k&I@-24%xF)>wMWy-zKD#RO<AJh&wjEiof4ls}_Wv_l|KDQW z`%~cgoS4r?49`qVN?an8zU#&>F1z-Mu&?LiF5Lg!HE-vG@YVlM{gbIWc++gc&fq_u z;kFEKUf5gwesud<*WZBkm!`io^ys}Tf3)`ajceM+@837twqyB=;<*32y%mrDefVSk zI-R$X--UM`xvBW$d-{y8eg{Omm2DT-+}Pw^>GE><lUx6;AHNqgQT1=jm7);t9Ty6X z!)+hBe0jo=%i_UaR(<FCQ~wL=OO}M$F>d~=KVMTlkMZ@*;zMp~KP`S0DxLdo|FQ1K zMw#9Rw$_hSo6W7c)^+Dh_{}5D7rn!OLV4lM+kZDtPp)KN<RaU?N4jW+QPI|U>qU+# zKl~v&_fYl0iHDCKFUmEaTQxcOTiMb-hI^haEkAYV<MG`otk<9PnQiO7G&42-tA6Y$ z`Rs$6?pG?+t!jMlE$;U1SLDX~4D<Ud%pcX~GQR)+^1^!`k(1v)*YDSN-!3ETB=>qv z+^gL|?m6D`6n;Fu>$o#Hup-6POE+Y~^!1^kOHLP@`^)NG_)gB9*TvucK;%y0&*Cxf zFW;YkVAr<b0@s~a%==!QjP|Qx|9duQo7~F0y8f(c$CFJ{VjkX?tKhnoqnRsvWxdk< zcfS^&YufkWca&<?(fm}?N4rgq3vGR!`73bmt`D{w6pr>N>{#|QEzw?T>WlY_Q}fqH z{7kM0^4PCit{SKPNAEmCW4@Jp?eg~;_wHG{++MnGc1?@X{L`V@^G>pIKe=5sr@Anu zL#8kORL>-j<#Km_&ssXge%f<+vyZ>0eYz?AU(akuR$WC2$G4?PAD{OY)YPuOKk2;5 zDh9t_sRibl(SPPlOI{m(v%0F~Z^!*aZK1WVSAR+PJ7b>WF2>gLUtWBx@|4Vu`~Tb^ z?cL*rw=c4L?OrXje{scx_rI0zAGN&ZI&UK9gvkF4b|0C4T&(`pY(K%{eN+E?N%QOC zr@t??U^08H_e=HPy6dmlznrc)8nf+g{F-;VtpAL@zNony-GAXZ%YBtr<qhpi<gXT& z*2}P8K5#88`Pow$?Jq@pb!Ke+`KqS!)U@hz<}Y6#6|a{oWUKgE^3OIxb>Roi1xeSN zzUZ^&f1bW_KmV(r9arVJ_T^64ww&`^{shAZyVrMrmHWFVrDOkAd7DH5nWMg^@4brO z`X~I}F}<6ozA+u?x?lcp^|a)j{;l!9q_v8!E(}n7nDK0$$fM`wdXq|APdUDc3_VrH zcJ1TLGio!hxa@B>o^oCHS8^@ax#@CCN^0WxABD`B`*Fr9rw_HB1<MaDIb^=<=>H>$ z-<;>Iz2Izco;6&dG`m*S?rmwg*Ts*PI~<&oCG65)Oxrb??_SP@|Ci)XUKXl3R@Z8o zSuL>NY{4$0VzUV`?fZ8HR_#xFy>r87?)~eZMXb9qSyZ<9NNS0q>GETXgoC}eiQN5u zqH%lamjiY)HLt&T{UvDL;V)}{mH92aw!7O@x}NRLuH+Z*zwXliwts!i#|gXQ3O<+3 zTzUUc{?5-1e|&#UUBnf%;lznojE=JIf{&-(`ZnGDT=1eZdX-8Il}$3fMJDTyf1i*O z*8bEwMr-1y3)Pd&WF3#MD_)RnKIxp9&tjQa-B%^%omO`<0+;W;{UWDi;m2cJk8S<Z z@ZyrMQJ%@WWh;+GBy;H|m0CreeO2;BXZ7WaQen#%*Grw3&c768d^^WQ`izY6bhAxX zvbje7#{P@{Z?KZxn>;Uf+w$_W|DG}YI<V*Do|$$=$7g@PeEgYBvD{k&d1LX5>d&}} zRcmwC8HHaoe<t<W@>cFT^Y}&Y&xW53f9d}D{xh~)$$2LC7wvtfRxJECC(q3Mvi`J9 zNnch!jXt?$zUVWL?n5%2hvwv7-I67>PUB4FA}#T)MQdY})m9a8F4B75y((tYi<3(u z=B_>66Y`qtwbx>s{o3hEHolrY@!+a_x5F1sT_|=-534oawdvCALSF5?l6Q0O`x#Z; zSXs8KQ1|s-$=bL5Z{8kLxK?f4w&~t%!=A7AdZHuWpWV^>^<Izl+xc(q_w0^%e0E2_ z>AfD!H6PQ?r1Y96i)HVT{2cN4Y{Utv{A0yyKBlcn?KMwceEI0k%N5hF-t}p|diRXL z>fJNVR_~svw|e)?dB&$_W~*&jH+$xpU3qC-uXoK9jl6z#&B0xHX|m5lpWAMh)7~|6 z`G!TaZyvh&vL^T0#znJl&Jw+Qra1EA**6Ee^3wFfN{sWLeSdr=+V-;X*@yEU?|haU zccpul@?Mwo=K0@)_J$Nsnf`3)?DDFqd%T`yte+KrSLSe6_A}cxJJR}6kD3<Gxqc!$ z#V_HmX|dAlbu+(jemBeVWcJgoX3ICcoAp!S^}3mtBg)UtIkzkOna{OY<L4E3_sTts zxfW|I|B<bV`Rwt?+Ou=czsi2b6c%qRUX{GZ@R?Hn8uM#4r=*|vnu~A#HEU<f)$3=L zuGyEiF6pc3=g9n(-{<T+7X3We=>OB)Z}&{?Ki&IoXJY?tTZQ%6xA&&s>wl&fmTLTc zqt@)7o0lJM`^mj})6CzIQ_udH8+ubmd5+w=oTCx_XT3PX`LAycI?Q{BckP*i#|6o& zy>?{oSQ%=1N9WF^RbuD(w{Og9zuk5_D)M33!_8|ZA9~($JNo9s;=|9Qdk;@<`JZRX z`<?Uq_F1m0+_Iu7*St&HnpSH5Iwvf9^SQ*WW~=2_Z;dqH95vgt>FTXDh8O!T=3R5D z%RXN<?dq*H;!{@(tu>EWezwXzc3D-_{f&OJOB+gWIVoPt<ledFvRKy!zi5q9R=Ep{ z)?5}_b;2rlp%;h&5@E}l7bS5jY3{ZFzSmn?qc-?Ozc9I$$-NaMl6@_cd+u4Q+=YB= zE{p8~87O<TY^(B>nW5L5rf)tKwSs%~n$}&LPDQOyU%jSvUGmhe0q<Fi4|0F?4B+Hk zC@nlmILO(2<EE$=(^_gde>-hg3tA*7<+p4j^NQ&W9r_b%j5Ih`yPllU?mVS!=j~%_ z;<*3aiilm+9C=}}&Vm$)iW`$eK1}$3{_x6A@&*!y!YqcujWfg-Ur~*i+%P*f;IZhH z-l&UL4_vr*;KIKIKIRSE7B-d$PhC8F<Fw_9CE8JPd@a7rhqS!RliZk6Pe>n{*~Wjy zmUBil`@CIlv8T*lNq&8ppJ3u(#T_w6FX9eIM2%ezyTT{QMdGvaN*MLb#bWYwcHCjv zVI%S{@mTDX<Q_A(#petiUim0|wK!#ZOnUN)nTC=p?s^35p17b)+3{`8f^RiT#2I#P zZoI3XXjgHwVrG=odWrSH^FFd&u!+BLhh^6D17@ttteal$OW373;~n?1<y_0=>&>X! zlu%WC@JrW$FF!+$#w6%1@OtL-*>hEz9@D9C@hR)|G~z`y_OpGPf8f`trmv=~ueBLp z|L5J!*by(<v0w0;?t{A2gMUvo{Wfj*-IWz-xS&4Q@&B%-f29roGDGfrZNId#acW{} zK=eG$3CDaKz8VN$X<VCq)mifl`;?=f8NIe{h&r%sOH@+!zN!4xt4g&#CFC_6y~Du2 zKf89>p6uFbd*W-C?TN3QwkP;5-{&I*R;DG<FZ7HIqI;GfxzKVU#Y)vg)nsar6MtJ; zK=*|+7jjk!%o47ebji8f>9i)Z@hPvYGg*tK9RAGp^y40<uIHi=_rI;&IyXf<P<dYL z3d6MN|0ksGPu}kw`u6O%G_Ni9x87em;qSb^b~k5~+BKzj?`56W|F-|+*6p{VPj23R z^Y)54d+*-!3!FDu<5;m!QC(uaqvyBj-=<ILnfWr?=uPZ5^Nhmne|4AMxPSA0AnUx< z7asY4^PiITe(U$3eS6Q}Yv1=b=YP+?KS}?azO4VY-s6ATf4Akg_TS#W_!)Dbr)J;N zmKPz%%W{ki4)1I^dFZ3YvzECWs#byOUegxKxMupD=?vUA`GJZ8f12aJ_3!++PA#)~ z8en$T)BPWh`s7J-yZltI#N1rzv!)@6ciXODS<@>8Sqk;O%hf(zFM6d^Z@XMBwBVKX z*N6EJOcqR-{4^!7sd&<5fv@x5%<0*5)6Xm``-zFuykmaJQ*s}fC>}M|yOs6Kq<R0& z%S@KhR=R=C^DcMgEZ<tpR<y17*2LFyUe4*XoBuwh;qR^sFI#@?wg_MNwcaB3qL=w{ z>sK!y#<;JY^Lp;SE4N-g=W*#aw`yL|YkY&T%EH{*dBvXM?qcpL>nl4&e;eJ|$@{gZ zz->X>#B&~33U(J;yUw+qV}0S2M!LwSJ1_5ah8<wgm@LVV+RW&)Kqh^W@x)mM{0mAx zG-%$ix;oQK@?0}t!GX#fl`}rg$vkJ$^GzpR>`hKOpJ^Iz#1r;#2VU;EtsDF;EWGBr zo>Q7qdn(c=-NN76fAKTbb3r+=57#){oO;gd$Na)D<>#BvNj-^qz2@+>=X1q1#Caa4 z{)jJ(TiEtMa=p_3>~q;4_PpEEHz(gBU+KA9y7I5j(>|Mh$|*8i*#5upp5uIT>)9_= zp2t3q&3d-y`JVPo4>UBsZv1SRb?;S<>&m(3{H}a!{Ve*a{%uX~pZnJKis$3f_1%)^ zZ|1N4ee<UO%QML<I4gX3Ub2{X7TrlPZ#B9bvYqMauFO2wtY=|GtAms`%(0sC{95Vj zi#PLXw=-@n*?dQ*!mr4GS&jMavu?b-cic|gyph{u<9kQ##;nImWh~}at+RIN-Vw`K zz4W%w&(C*ka?X~2z9^Q>C2?lv3d3TxhypC=RKhuznP+Au9Gv+=<(ZF1vvHtYv6@%< z+Ni7-Tfapu7MUSzli+uP`56oMGnbub=B$vMA*{r>zWsXhr-So<1ueRMem7&~fkgpg zI$U)dG@k4^yPNlG&j&XJ+e^}%_7bAMnB7|cJl<0{<#F%#V~a&9L`@mj&*C{R!tXxU z{A#tt%j0{FU%2-8-s2K8W8I1aTQm;&aErmvH}Ch=R%d@7{LQ%b&x^kuRR?xy%#IYl zbnEh;{o4<@q_^~LaC~{@fQB&7nbxm|<V<;!7rrS_k#US_6;2R7Jfr?_-HqjU3W6*o z=S?Z#dfFO%c;yw97`>RjPlul#7JcB)zdYE_LV1p(daLo_nI7Rh;V#-!4^7>$wP=Tt z&4V(J=GzO^ACzsti$oIh+?O}rj&-S9lDtIOa-!cvKaY5sof0p-m8L8F{qB+OmHLeR zeC))^6gRm}n?{o#@|PaepJ4viZnNKo*JyE?NwZ(Nn8(@2w|LJmolFtq;1=Vkp1G?> zYvt*yPeVdW17kHjV;8Plp!LeDRP|~=_{!BQcKvGq#U8n8^)9xT?^aoV`W|3AVfpe` zoi^83zMilz?(4EytNLFx+th~IKY6+SSMqBH(+OJ5k$i3c)k=l`Jea=0`D(z8#8+Xf zR<y0Yy<(QsLN}%7Z(o%?+2h>n)V=ts?T4Pw?+eok0=5_h`nK$iw{5VQd{yL2<*Hd- zRdONxihnm$N&H;CGSkC9{Bq!P9#iJ%^i?xM+|LGWULj{3zKZ*qRln2<_bbX*!faPP zQ{L;K>oBi1OL3ds(s@m>YvwJ}+3KQu@Y>QW$!+UG&Ii<P^;+BZJo2lK&4b+=9_-$5 zezo|DX;p!1-RDieayle>@1i)zbM-6h7fv<5GW$bLNd98K4T)FwN9MNGhVN~+kzc{T z@vHJz!B;mI*|}A%zU5_^aPoHGZN9C|uMEPMoqBLed1ca@Z#QH^Y|XUV0-5sVd?Pm+ z8uo<d<mBjtcHWiVEk2KPW9Joxvidi5S*L5H<UVAcO0x4^d1m>^6gysS5CU;l8qSE- zet7w9i~sCHOCImp*<fgF?<Y_<$6<PsuRvPOG=s;*Et2Zo#{Xs;JpOd3N1MagPdIH( zoXh^>Vt?iQzf|X3e816kzq-;d+ifqt-&k~CSop78G+a0k%<>cgi=7kuJMY_~`;(P^ z**@>8J72lze(}B+-%AAk&f_uos!>sVri0VnfB7=Ewuy{<XMOfs&iM87iqnoCu5Rj& zgMQ5H-fpr>`tHFE`6hWSvMD@_`Ep!t_jr10OrAD(_dEWQdo1@P9W21Ll}UWQ+uDPN zrXSQZpB5~g+`3ULdS+|9lFpx!#D}@9t@9bh=J`(BP_UZg|F#4B{l)*)n*AuRPJFn= zKt!l@p-P~Hmr(1%qD2N%RAl}#J$$izM)H~6FGIq<E$?FtPLI2HpypIf*Q=T58>U|u zaEtSnsFeL&`nmK&{<B9{&ul-t{b4=(pWU-oh=m&6H{aecG2e9ip-oMJ(^l-dYHn|8 z-<-aDr|`6`ceT1V1^RxLE;hfkCO_o%pL>58Gs7%bW&cZi=RRv|->MnxKE6|3Kd#u7 z8liS+O?AlaO}f&VVfL%^Ub&mDT_M`4F8F5u!VmwB9r|6|@;yEyHA?hh`nUTRRxy67 z-xMnSX8*zs|8rLF3zdJVqs_f-;?<T}3PKreCB>^P=cdeUs#vh_2y^cmn<LD;YcH?4 z9AJN(nO9Zlh04SOM};^`CV4za>SVmt_}70K%ZGoGQ*?UleI@Fb8T@;;P&DC>?!h0| zgX>-_y&!$Xt)l+6(k!2C8AhsIYQbF@Mx_%x9>{dEM0MK*S9h{UDahS$={v%(?yp@E zgL@J~cv1sP;{SCU{+s*`{vEvG&-u4=KN!3(Z}}K5aIC)1;9pAOpUgu)F2A+?CKvJS z%iEUAyAQpb+<JMtuwT9vpT%D7oO_~X^Yzy3o%^9Qd`8tKgRdot&)>F8-+k!x<(BE& znZ@1jyf$G`E^p~p=N8Ww-|#_3o&9I=+?XfndiVSyD&`dLKD0UZ;k9(m?RM@vN;eg} z-p{#RPyf!Yrh?Zd53jvEH1G1<jprf?PF2sXKBzX+cDul_InRB{)DEBT*}2l-*|l># z>1-7$#ZP0>`F0e|D|qVj@YK(9i_bBA_|ckha^|5)`a*Sc-s==kTPU*mNlfBN@kUkq z=1r>)Of_!RHWyzv=lz}+YutJDE%g=ci=W0Mf^^L0_C6;*?asAIX&p=dh@$MolRFPh z`rN9zU1(ZO+lD90&WWXSZ!@y*Gk(16oZfTmiW&0e;&peNetdL2$M~E<Ld*EEP2#bi z3CBbyr1{<PvM9{nJ}bKW7Kd@3_L(0-iN}_6^XKW>{1AG0Ft?RGeb?DLX&cTooEKob zbItawEpO?jMG=cKI&Usgou;9c)VWA0t-CA2CFICCVNt{AkRv(YoxVG5ITw|*Eu&Ml zt1F^9P|#aYbR*v)rD=*<Ns?gYGjz3*wyo#@NqY&3ZgdG0?C$7_ShS)ewWA9p2QpMV zP;j%Wt4?6ZksOE#Ja7S{t`!|O7b$_PmvwPHBlg!|cSqd}-Cv1@7x}$K{u)GoIcz0z zk$<zRy-whl!#Qw41nZpG-wodu$xl=ImH51??ndPz`Lca4+DirgZr}myTeJ5?`&{*3 ziLzZU+HWqBpQiXL(JX0(NLFLVQn9Vmek|z?Kfb#8#)5U>;xYRhuQ$x9j=bmDVJ=n0 z`|$j?P0c%0uV=q8U1+RQb@FS`-e((R4sZDyRizuqf7~E<Puabh8`3M^2Hw8Er+DIX zoA)+Zujcl9sNH}4Ahv_!q0oDwoTnAbrj{=)SN(PQ>g%qcLRGiEf?G<5Ubb$tIOO>u z@58Uf^BC_jOxbmD_e8(%Y}L&VC7<ygk1LpS*(qtZPhj4esT}I(cc0(QKke}xW0i9! zKdV(baCR0KsUAA{J*~?4;mp@(U0=(*-7+=fxlsPT?F>sTo}K(Y@5?-wdCT`4-QX?w z(`9e}UjGDp=QF}nXFT`mth`lGy~lRN%;b4u_ww)M->~khTqN{4M#a!SyR-6>%B_=A zGnTiySnqr&p)|+F#lrK7m(rYVLJ#NY37(VeC^)6ewMxLx`CN&M#aY#DC#O^_<9#&K zDr2eLqnR3yX3E^SQ^0+r=7>RHXX2uc#B=RWU#Mzb^bT1x-B@sM36GLkU+BL+izS;~ zbf&xOwJ(oeB0X2?rRYo6>e?q&H|!?bZTPG7H-X)a?a(H%*hv`|RXfFEEiW$8R*x$2 zT;w`kWn#bT#<Q#!&t#NZsaE-YVX`u<DlOqC6<NA#f{V4Hiv_QMYXQ$?hol)*ucVF` zT)nb&mG}&+<GNQ>k}?}Qmg-;ndxf_{hHa(ehk`Xh&UY8(HKxyy>eFa_JUL2ezR83i zOXMC+-u-YVd!UzXXV9w^g;_G6ifb-8_y$ehSjzQivQ>w_oJ+3E{40}wsL0K{GU3FM zg|pVC9X=OYoM>rua^i_6PNwn`J(XS5{15zJ66JDJXr{@e6H7W>)GRxErXAYsqq}_a z6|SvJmf<TyKNQy#ZHj9Cv1DPDpKbfv*Mc)synQAq8=h=^W%|`>+rEWn2hLCQ6yEBY z>*UwxS#;(1E9M{eE<Tr73{Q$(`DUmz`IOMil-0Re(zl-eShDemy83E=5sP^%nA1At zGHbt1y~WC}%^DWI`)awz=D391i`;AUsv08~iAThKVOrfGmznx?_b=ILTbVac2}@{L zq!1x|M207zgk^PyS!QaW@EVm{OQyO8Z`hW>mDXvN`8UEzN3iai_!?R7&ZP$qYc-d; zrf%@k(Vf<~c8%!_)u`sJuGt&bW$<3>3GEL(9u_9EMz^c^s%znfv^C*t#6u^0tPxY% zC@9qVu%hFx=x%PoTNy6#TUCB#DHUFC?bxlRXlrRUb(89^ETL+RZvvOr#6(0-;nwaf zN}Q%4eogf0p<9b$B$N*SlL+Jq)ZTUb#KBqZTh|sYoXK$Q=4C0#DCXP7TkO8D+1+;9 z?OeT4Zo~CR+qb+C=C@}%XFFx@5c$vhw(t4TYiG|y?aZlZo&NekX>>+@;!obzt#6if z{kvM#eDA^cOVVH6{#$MQ`$cH)5&1RtSLA=0zg$|i(%#2@iTtPb?*C>RmA@wKy|F*` zP3@%gJy(kN=gif78JQ$M*-E_gzvjm7qk2<+&7b%sYvuFEjoC;31-~gyihuCyWXJcW z|3R^9mfa7|s+gi1y3y+8>Mx;n=6~Dj4)1r1dZ+g-YUAFc-vq0hZ~RMQ@7x>tMqs1z zk$Z||Q*Ll3$qQI}zDe15dFfior1b9ez8gQ2#5-a&$~tePCWUv#YM04IXFV&wdiaaM zm)cqLp2eT7Znv$7v+uV}xIKAQQ0N=><<&3mR+-nSZ`*tHvU|?`g!2}6<KHlR<l*@? z$+o$<_URXajoUlYGdA3Rv(x#F#>U4>)rD1T4JDZU{DrI|-yFX5IWuXw_y6>cxtgiz zopW_9pLf)Te0ys6@_)@o9f92eZ-g(Mnw&JB&#mvTck{=`Uy3}}a~zvwn|*X$viGv9 zog$jqT=r+36<^1^W9;jlwrlCtc>7iIU#)|j*I3>Nk}OPB|Jzm9`v1T6o25A$_nKWj zw!R_ehv>Igdw+=D_$G3G>!f$O+xl<p`y)Ta;M1IU`eh9jY+bS{^JZ%}3HI15Z|~Ua zx{XiN+R3K8Lss>h-AVhns5uJrIwyT*^aMNK=cKXso1Bkl1b?rnc;;Qzc%wCG{)DP| zBEPrXP<<4yR<^SutRq%+-qxh+owbeCu58D6(pCR`yRQA!Ytx6l)8Dn`8-MlbiQ``L zL-b4cFV~vY9ipl$q{8$n*V#>9_2~VpAN4g?E*rec`Mp_+=hN~aEw{P1-$P@Q(`{Dn z|Adm8_jJlU45sD07qIqv(~|Jyh94+Yb2b(qIVZl`;mx6hkQ;j3ZcT5aHom@*^#2$8 zaWCIBd*W|@F;fVxsrU8TY?V0w<geYOn%h2^vUsnPYgzLztbWs4&1)h>fBH_m|8=)u zO=X?GOuXR#s{Qh=e;xk`eEOUCZ*9mq`G@_Bxc<fdvvqh?T^JMc`S{}<D<1lPdB1$t zKb3l;zN;^5=KcKq_vn<T`d_C9_U*qE@454zR=w<or>uYSmMixCmp*TCjz{0=>64i| z{@+XbyKr0N50T6HuK#bJ2-Lgy!&>2&@mZ_8OZQz=x!so*==!g^N4Hqt{@||NE2K2e zEB~78Q2%c2gUUBSzt+CL_+8|SyM3qVibdfsL-*Y8F>bwmkMmx)_A2eD@F^VL?~e1W zsqWtIyy*P3bos0MJ~HV{-l?);e?)BWM!6~5UE=xPg=fWdh6QZNm>;M8YntPSc?aXd zW^`tsIdXrGPOasZPg?epl~Y!gOq`U@pBcCB=VQ&Ni_X6vEckz-^g;jsW6Qp?N(C2x zk;!VCdYo^+`Qn*zt64uvTzuiRX2#kdKGXly>=Eh7X1jLj+v9@Y`wiC}t=Qo@gYTsA zdDVH3Q<jCiv6f%&@aXW>)z4r5+`~Vqj^*|8rP++KG23;fcE2t>webSy>x15z$G<qH zuGGD@sPylO`XvQ_PQDeYjf`91TGrtz`rkhwXu8(l{mz_v@@Iv(<{f?VSbOUVuHu)c z4?bU|vvjJp%YLu5#uoNV-o2UB)$ICt%C5IxceFhdyv=!zcU||#;D2IsguDA6>GDlZ znsHN)`9l1`;#u`m?=x?{x%J=HDGicq>{Wl6|8icrr(Qd4?Wq}C)so|8y*hue$K-r{ zOVnwfQmeF8rB~w8mU{;#&pR{KYu&EnDaU*!tbS)W(_Hw%F?)mkWnXtsYL(n9{p{>& z!~C{C*?->6u&rLeu6e0h<jaGqf{uH2@;Pr`e_y)cKL6&dBl{U`y&cczwa7l<Z>ry5 zFHyUf^Uawr`N!sD|K7gfe&CniVP4<be{Wy-Oz<Da72`|$WsN_{&gh=}$NH~z;NjSR z8C#5w?U$~u<NszX`nyv9P3?@uzV&nL`Sw1YY4ybagZhGbo&Q|6RM@Az?fBpDpCN0; z6aPckPD;#G>ESzW%K!WFhVsjQC2#DWIpebPznq>~>Wil}1x9n67ydVSMY^DyL6cxi z*FXKkJ^8;+{}p{<dH(mwf5!ieHMX9LZ~e3S@AC_vw@SQLk<1o;z0&BKpycZnJzFPj z>^l{)S}6Igh-7y746jW+TVH?wwBDJ&;>hHbBe9Z&{%$rp%I|(L|7ra2p<}nvqm4?+ z?@o188$H_BQxV~IXR4t81i|vZ7s19xAG7j2X7y4a`R%EQYNKn3JzrBQ_~hc3pZKxs z-{OSRC;uh?OTIDv_}}A!#{FBhli!|<X#czX@A8RpkMtYoAGcL|{O;6_YNL1ida5Ii z-JM$KKcTR^xiH-?CBVq8^rPadQ+EGL_S;UZpI0yE756fp^NV5NqGj>I_p0h_zwBCg zU!eNtmHfs#KkMv1#XgB|iT`gj|Ng|@>$BQ}dN#!5Z$Hq^At_PhY8bCoBf8T0fpNh5 zm;Yv_=3I2>D?Tz$^vW&4`R9V3Uu|5@`^u*OoYu4Kj{P#yPeeX1V=T`;6=nIM_-ws! zwP+US!t~q=#_t?OzbxQhbbRB#h*g66`Dv3gpUtWa`Znvp_xd-r+;c>ZZvFo9-OQVJ zZ(jG=zpUMyqoYH6T?a=;$BuQ@{jmb!0wFF>HY(|V6bx}W)ZW&wz@+5J)Nw@OiB_PC zONfh#%SC~@tUbpBl74V}6j~p+*yF~`-|H{iZoa#lxvA~z?|0?P>tch8UzNVPvNHJj zmBs8*JMK8Xd*1kTveNVucb~4yTk%Em<fX)&%h|V07s=c&Gr_uIfpuWptHvCcU3)Ky zWzJ^jS~scekgeX@&j;SC@82@-ZcXM!^)#hZkxIUk#VQs!2cGkJ8D(?X_QSu1{^r#a z+$tZ$2GsG!NY2yp_u)*c+H`s8yLS@5nwWyLAHLwIxh(wMZiCXTZVU4g>8jVsw>;&& z8To5;A5=fMc3EBShf~I_*$<~Zsyr`T%$^jsakgW$jp6m6hG!e3d(*e7`+W$Nov)kG zz`0K-UG&`t2iEwn>C+cZp1%IbiEe9U{S(UPpS>|X{?u~fBg1dgZ+_K~s654xDt6uQ zSYv79*6;g*mic^f2#u(}{Xi#mg|wc$V^&a^#%`Mne?9g_{ELWOpY!EF`N1lY{}ub) zBUi2YaKwgr-TfsxpAUpBc(Y`W+swy}_xd+gYwmsW^Hd6djnT0axnA*4qxipME#W(* zJoTK{Qg*wBKcCVIrh0W=x+~oL?R4rVaW8Ftk+;*gpPaTQoO8#+OM+82i}gK`{iHr` zM(u-x%%7NcZf5_*c50^H+iA;BEAs!5oMP-Hr<!}H_=fOik>s@27|s4^uWdfeJaI90 z7V}Dh>Fm`>#{wM8QiEqP?2mc(v~x96nCT_Kop+euHd=l2-m7S7v-a4JkKVf<Sb6MD znXm5V=Ckih&zEf_A=B;}mIyp9(yUd|ooePG@5ydkxLc#&f8m?P{UNs$D|fWbW4fN- zaAk&`?)L-J7p&uo(p%DIa$C4q{M9S9(#4S<v{m_QGgQ2!m0Jajk1(%4a>G{V+)al? zU%nohlKAFb>+8nn9aj{k)jh?|*FJH0vr!}YNh#mKGLBN-xt)TQWiN8he0bh+?%<z0 z%2${-2h9(VKeO(ylXxPZRD)rpgjD0jh$D+Pviv;!kI6oV<As*Q{R>R5C)7K=NLw;b zWLDFa?Jao+b!xI-u+O;pp64#--#70r*zQ?n)UA^tzIi3<mz}>?s=gN8w(geM7M|ok zJQ=M1mv%0!=icijUbEQ8VxCLnvlCO<ZW>-w?Ow-HnsVl}?uYC)=lL5Wf3?i{*6YG6 zv_0rq7~77ij(Mqq+c!;#mV6W@b;oORwB*yUZBN3so!XYqyZwFWm&pfq2d@x*^+MVy zzD<uWcFxsMyQ9hdOA7f?^q-y9vU<?CxA9}cP1Z~IdG9vZy?@=f#_gWa%GK;<^7q{j zXf9*t@_ctjU-E>+gDvczr%Ibi+}A(+_OpZQ+}*Yl)}7eR^74*>@cqpXu2}^v<Sga- znyc0&KY#j>wIVBbSpR<Bv9a0GXAzf;=dm)I!@C6MKV59<C!Mom!QzPeIsV<U8Eu!1 z-e#{8EZ!5SXz@>Yp{7T(Y~Om}?DR_xzZm=`{o1*}F2f{si>%)Z3*Lg6*ErWrbeboW z5~al%S#>3rNw#TrtNSA6c|xx&-rjyEl%Z|HX~>=XZOR6*b@nAno!2V7UN~8Q$ezc( z?6TUkhdgU6E4%`J$GG>O5BS}4A>l*#^$Sxc7~XXXZ$5o4>DT<jd&1^TzAo}2rZnXF zqEo(i{;8DwnI3um{*$KPE7gzPeq4}rWo^+>mIJM_4&o1w=oqL=U$2?;_Vxvqzv3@M z8=eX@+>`v#Q8-WGh0u!$*Nqu=>oVLm-k{Aro%tZcmI((;CVjSIH#1psUi)MHv-USU zJqI@1aDVSCj{L{}XF?=nM0VrNby9X;^1n9EW||P*$j@B5&gM4L?LYm$6a5$HN$$^* zD*E}HE$m04<&XUiXC61ot&92mXEO8VzuOi0lC>@<Nk8WI;r01?o$b}1184V(7Ct!@ z`ue@B$1lagKNng)X7AUIfA5fAKigsFe&wY1?m7AY&#`&^n8@&97Z0nk#4o;I{l5$r z{b?4wtao9jV*C5t`_>KLowV)vSeRVbg}wcj`ytmYMtVy1iT{zzb^m(*_3lgE7uxYz zF|YrBZTPy>eUf$oSIPrgCKh#T-{<+yb6-PVWpBQCQo2IjRPN)A{}$Rs`0iUSV1B87 zdi^x*=MM4W_3`nNN#cu+P5fubEAp}YWBEtXpSOP|NdC%me&bL-RXaW4=MjDF8Cz?d z1M@E2zj=SH;`;X!-cQ(cdwYCi?33oDZ>^u4|32L$;P|yawYm<=o9pItpR3x>|7uhI z_VtZMT}GF;N4)rX>UhUZ6^+@wl8<Mv^Km$ncVx|n+|sF{;S0Vmk~?aC&iwZCWgbDA z;S0WNou0V-ocZ#Fq5I_a$!$nXSbO-@#9GsRoa<ty)r2(qgdXcK2r?^J<!`x4X6pBo z7i2{;E}RM!yx+j7!~9{=C0@hosmlAp^xkYg?SI05<6jl+-!+?7AK7{;s&Ze?Oh3Dx z9kQn!!`J=%6e3yG@@FB3@>9L=eJf9e><nZ3emYvvTJ+;<>7rA6r|gKZo)E5_*I^Vn z^ZBWp-g!$)#I>0}$y~8GvT^>K9bq%xlt?BsgthVf&g#(aOAwctX6F_&Y3<%HFa7Y_ zM`vbr`Zw0AET7Ugah1pGCu=ukt4RLp+7o<l{SLQPd;Fpl)=!+afmOBp2HU-+vs)Zy zsomGV#;5Wk=aW_Ca_#3KE5p`JzEH>cmVNHC)7jD+CRQc>o2qiczH%k^WWFN*Gy5m8 zWS!U?v$A<cqblbo|93jqcdm$Vn$LMR@XDhbVKLjkEd8STtm1_InQxQs+zvh5KBHRk z{{qERm)eW0!{_B*GCO1Vx?<b(rMX256vfX@4Vw^Q+4yI&oVdujXS3WVC%$(0x6yCo z?nbLiA(>iN4_#x-TM@kGiOG{yOYa3uGSxd_zcMW9*{SQ%uY7Zt6m5L$J)!=G?cvT` zzuLe5MQ3}ynA2={zE1r1$y`%QZM{8BS^X1d@9fidI;^>Q(oKt_M{>AMoDNW3zqRX9 zt#6RurzJ8Hs|q#*Mywb6b(X>ATgCh{8+NL^iS68}!Myvl=K4#GsXrd2TnqQFGcD8o z?Z4^U&HkN*s}|?`CjL3jpl_JAzSOaG-mck(XAk)8yXQS4Exq-Ze6nivlAVigmh3&f zBXn`5Vx4Yjl<Cw&(>+NRx0zpi8}G2cyFu?xva*fA-0S?>n>S2e9+W!G>(TY6S2oni zCI8<gQ*nP1^ZV$c2esaOdvb4R#PP2^bI4EbeWTnS{nY(Uf1eco-kq3obZ6cfUXO|1 zX<r%GzchwQrDTR4xwNWfX{hGu_7CMJR$3?r_grG_Ilh)hcrT+b@BQ+f3l2$1bxyF* zG(5(-{rIN-^54-G-@dQCf9Tw<p1+zOjz-taJMcK1O|!XU%IYIo8;Uj;8GmWgJSFmi z>+;l>8`emz$T+`>>G`A&%nw;zUiH56RatGmx;&sUEra>Q1-2~b7eZ^pRxefj_4=1} z$<lxG{?)&5TYOByXS<YhPhv^C;WY_w<DQSld`tQZ*MH=mm72Tl-V$}zG(PdpV8hfa zrz8J=thu!J!L;Sm(}TVHQd&x`cbA@Ue9ZKiY0}ve7K>>4DETgn*7Gu&##8lIDtx}T zCiuHxx>?YB>vi&XIChjj_-6So+v4Ng#<gwEyMFP%viGoOG&i@M{!sd%%dC?tPrl6j zW`8E-l;8B_r#Gi|SM>#!v8n4-Tii)~d3sanzGUmdxU0?ek-K!n?@Avws#x9?G;cF2 zQ~tkuvu@2gTD|jh>jSGpsde`6ECkDbnag^x@5r&>mupCWG?QOu){<~by(c?D^}aLA z`LR#luV%Z)b^#O7AD{CtMAsPaTcp$2Jo{e!A<kLcb6oZbzwmyyIi^<g#oX07S1J#s z9zGxW?cfzh|C_giZ(p9WEQEiDm&G5ywS{-Q3m#Q7&iQff!vo>3{!7#k_ImYu-DOoj z700E1OZkV(vYNLsJ*AH}%01e6Z{G1LcDdJ2B`$MkG;F*O;oH16SK_9*LVugh4B4%p zw|v%E@b$_sg*)N91s>Mja^?7b{g-mh#xlc0%mGz$Uh*9OgRUqR%NkvO_}uDGOnZ}+ z*rE8AS$|e!N+0{3eU0zb_PW-n#Hp7>rsYoZ-sbsGFwx`jhaUz@B7Z#F(BQ+Be2weA z?6DfLd6M%yg`V8%eG-0r#fJG;IA5`Ray;hi@`L?Vzovh!Lo7>u=Ps6iL8Y31LSJe9 z$X{8#GUD&zUz(y$Qf>{k-fLC=T#K^)(Uhk6Rx6k3ko}cshwELUdH;L9mDIX8@2Z*d zpJm&ocWpVpb-jW=f42KdkMoziHTs`Mt*o1BC-U&&udg8s`Y#<<tl4eH{IB*GbA!$W zafLkr@jU+%Wg}ktzk02)!hY%c_WwQqc>aig4S&FG)%JD&ixsZ_qy9^2zW!SEBh%Km z^4QE{GeZs-g_!@6s%3nc{-yc;{TKZ84UPK@*`!`bFFv%QAwD(apuYs?kLDgn73t<) zZNYuFc1#PI_LcFm+KH;0J8m}Q<@=bZDV22@^8QPn@bBlbsK=gMlCOJwLsIr6?D1K8 zO#4`NL%w-k?+58)yHh0IOU4K7yLo(1$EP!lY6S-Dvkn~WnO*qfYMSXE$7iA+vd^x5 zz;E1saR0GAZ2wB1m428$J363ghNzeFa`&pqf-C!an(C`l%>KA5o%ZZp(_`cNbE3WL zKbO{t``zu>)pNJSDT&5>mHKmi?e&N6x0D^KKU~H9FE86%G^%=yEyw=kz0Ch@U)%n8 zAN~HYcyWK)--ExHXI`tzwik_HU&Gw+|LQO8Kl>x=l})9(RypmSpkrw7S(wSq>i4hq z@gpAN`TLt=9^Zd0tA0;;=0x^$m8*_ru4Ll7#WsJX@WYD*kD`~XZEZdyQlvUN?7&<j z+sylI-OC^A1iMC@2n=kuxIE+FLCeD@KTc59Ic)s1Z&}~2(_$4|k%z6=Hug<y4-EB_ z`uxoDf(D!8HI9F;4(>WqdB)c%J)rWBmc;&KgS6wT9vdt={yAbFXR7D9h<Qu=oMxST zmC~|&MKI%j*VeWb_f{PW3eR`1HM;)%@vlEI^N)Nz2_iT(lk3<uC!Y^;PSafQ!Qy*y zZKX|DO-wvv@!I)2%}&Hfr>x^OD*rX(Jd?`l-v^vG{aI<muz%mjI}cX=y|LWwa=k$Q zt@1x_|D>heuAg&%LG<zWPo7xDoQd<xS$THlHoiwc%GSv*sekau_EX#b;=SiM3g?%9 zeR9-7;dx7@+k1<LRg(VE%~ol9kLTz2{#gHOa^CySE7{W%{xh%Rt&jLqzHIqDwYO(4 zK34Zkf4(L!euodInVs3(opI{DvePQlB;8on)lXeJJ?W1e&kNCGq7tUg25~BjukGMk zoThO}(__1&)WPm+-73-1YjipGw|rEJ){oX#{wDfbv}f+xYhf+%uANCL>woYmN2b12 zSaB}=d9Y$h3+n_`{#E=+djeuRJ}71I+LdnHB{89Wf%S=3hhH7$;O2D-t6!w&{6p}o zV9WH?rv?A5{1x01zCwFK_R?KK0t-`rTyekZE*Q6Vom<3-K89==C$o8MXMJ9XJ6_Xo zS`*I_xk+S0onXq(pd(c-6H40^wzRcwm@W3QdqKQz+q(ys<uA!Ea;ojz$MUfKYdd2+ zSMH(Z|AYRkK5#16xXAyyUGQI&J<|{SuZul`*DqgjL81A9cUz0y1YXv}`48PK5)#6U zKlRkKoHwnqFfu*z%XPxnZiUxyoA+~UsuN84tCSJLJ$KQR)J4anTrTW5y@OlzcGZz^ zwhc!6%=WSQ%NX`4#pGX6o@2z4m#NIVIv}Rw!^}yV!3$T;IB=F{#(}eEj6VyUGyg28 zXTUAMH>=enK1GZ<C}|o)P*$4&-)yZzvsNmunJw6&Z&0m#=lC1%uF8d#iiiH5spE)e z$vv9?&HOiWkztA0(LG1@up}<rsqt)S8tb9yGp8%YWQHl#?5wmr6q+Vlbo7jbg46Dg zvpJ0$3ogmDd`KuZxD><adpw`du$`f9X{G9+t!cUs!X3YVob7yeVFSPMdbf%lmP{YA z&tx-7X7;tz@2#|bu=tF$fLyNAdDG)Fk_F_luPOfN`pI=^f7(8_|D~Txe^{T9ZTNqy zM)+U!v*-`?$^Y2?<$d1XQG2|_FYn*E8u@?h&*UF;?_4$G`6`3+p^5WWA6nx)brWCc zDXS38*8xk{I6vKp#F_f(PS_EvkQt>bg03y}ifq?Pm0dOEI>(V;5ox(oUX=ae`*6nJ z=J{>oJ%@^S+fIJ|Q6^3yOmNNi8}kpY=6Doy|H+$qKV|o5Uz&P~L6$N0IB%}2*aFcc z-D8#uE88Rb4_dHvXUcB%n{l=E?BizMU`NItnFzHFadqvL)zWK3HlEg4J@@M8iP~(O zMshp;IqVfKJ6>~wZ=v`fw#R?^U(HXD?JznVGpkL|ZVFHClrm;lgLCP@A-^Y@O^-_2 zqQCswEw5bBtw(3XyT3JjW_}@agXX;@ez$ht+I>ZG+R^7FRyy5>udq&Ym7BY8`<3XR z@EanBU;5k-S-e8}$)UF;)9RMjsZTw)X-EILw9|{M*L14Cl=++aH&d%!_M_6=)%%&U z7qM@DZS!|Q-Gp=3`CryAj>`%DlGb^l{rJz;HK)HkF0^jQZS*#%T7JPH<Lmp2OOMq{ z{C5<U*c*Q_RU+RtB=g&`h+T8G{<6sa#QE%jO39C>A<6$P{ZZvLiZ_a1bnuy6F@J30 zva=?<jOXY2g*QE4wNmWYALSC!FF&W6n0)$t;(TUAN_L8Ntn5w6o1TXw56d4kK5Tks z`gNoDxb(fOaS|tGDs77&YCJn6y@r1ce}+lLNB)w<ThHHePo61$+)%$SU2o0fdsnU| zHcbzi`&XklggwrF?%CiuXIK8soORgKKB4cYT6UEwZ-RBzmc{)2jLUn9b1t8JFn#5P z=;l|s7b3c6Zg*brg(b+bS@g_e!N)qxQLTl2fqq3Pfh?2m{_=lqpLqAr-Cx#gCY@h< z{@~>Q8~!myKhu7#-LrlD+Vv}M{969iUu)y5wIWm9mag!5xWfLGy6!CTv+A}|Jz|q2 zb^F97i|Y1fiS$YZHs5kl4(z_=7VQ=t_&eivMzodgExTKdR&LgA)`96l`Kwx4rsYiz zx)9Wxe@W}k{Hmq@3bLxQifT92CA?BFnU?v|`RmCmB`<uQFMA!-zkK(Bv=>w76|VWS za<6ajHU2gAN>}w#mp%EVtC7j3Gfh%sZg`@An3>m~9h&zaZe8Sa%F54jVO@EaOIAS^ z&xgAww4+YHR$nrWi(B2cA$Qa7qx)kzWDR<9xNGk_Wiwh{jLP<{Tf6q!G^VKPwYC<E z7nfN*`(nJsc!kI7Wu=Rg*7|5S+q_s;dfY~1%R+%?`;MP5s!RLRv*_6Q-uc1Y5$ocE zPM^5wG3(ambyqxZXzWo^%oKYyd8ggX*OPbHb-tb)7@ywa@4nXPx>oU8q3c?OYn|9n zXGC*lN7qH)PO?ck=9~s1l59kdIcG%Z&J<UD=Gs}gv7<6DDeg>i+?n(^9wU7*1N~EH zx`iq>&ifO_B_o;8H)V!0_e|y52PYIXFFJilo$xb=IeyxqW7iJMJ$h!Y)DB~(g)3O) zc#ZqB&Mdb2oS|8<MS1Fn6{6pTtI|~em2C98S28ClM{fzAjoHz<jJU-cEd{p-YAgNR zCVG65{t0c~r2MrF(f&Ov``stZFXZ{ep_THcOLBM6F})+o9%qxTPi?chaaZ%&$;dQ; z(>(&~JGN%K^=MQVU9qdL4KFK=i+GqMw$Ax3*L5wE?+o893-5c~*=}@NvbFl^`MtBA zYhJfoTUov>Mso92-i-GVwL14zxFY69&0lmx`I_LAiYrZiSxa>b;zBxqU6|!y!cduf z`P@C%t?yTyN$_=C!!aTE^XD}WlD!X}H*;!O+iatFf9-#kRH+iy-)y~i*}oS=x5_G9 z(^9k4=4g5>`YgQYM`*#kL+iAsewGVpJDz5>yC!MA+RWC@DDepXBFjmvGfb~BiLR+$ z<EnGJwnyJ^pU`7%<9(+*uhiuC&3gZI*86SmeonutqrE$DUA*N3>7(zf|A^OK;*QlT z=C}C#Th~H;j_-N1725xQv0ayV_OI6HM@_QDyuSGXb=UX#FpE44usU*I`oSZ;=TFZ5 zdG?{UVCII1-`ShmCNQ^qp0l4NqkYfS+5E3@VdROj<CYI|s={vszsuW^yzM?~`L{(o z-b~b+uDN~sTZ=tH=VH$po;q{WOg(qmyklR}AInT{<!!n>@Al5u8E3k0{;~J^-?9IC z*Z<jB4XK|ycmMrz_O+3mjbpoy#qN34YidqExD&Dax6Wn0o=+c^eF$6hVcQ4k5P^H5 zb=*RNMJyM5Ra)aY_B#|+6jvBu+AGoK!<)~UuUP+M=?8BSj{P!qGd~?#-x9y@&xf!n zK@CCM6t8DLygnhjy283>uUwt%&a#&B0E0iPKdfJ2u*Z1M<gP>e`Tk4oyjPHQ*Y)Vb z?E%{@0#oWv?~3Q$-(}U;?x>g?a703++MvStkJ=|L8!w6eAop2ZoV#b|WLkBbe%~N< z?9Br1*ABf0tOTybr=Kx88fKU_bAo8ozr~SkU*_|LvCo_6dt7hMl6y>log*3@x9N1> zIHY|s?(#Ngalx>;tNuFwX3yNUW^vx#<-boPaG$@Te^GxSM|8zByU6)If!kh1y;%MA z>Xo4SxcYff8*Q&keY+Eub@*G1^|oN^4|0C)hWn!`!{k!_W?p-F?$7PeIq8#|{C?M+ z_}rz*`lIL6^vD%Hu3B~(jSHnRO1VX=mfwnf+qd(R(bh>duR>pGY}tE6OYtgKbmAqQ z%SN8tcSYVkvEf&w_{2=rwTU*5Bl5CVTu#(xzbby^?1HuhKAgd7N2UbMG_ndlmU7Bv zhLKpX+Nmj-2d8A7oRWETO6J)qnTMxjo}Q9<d`jl|DK8I9d3j>W%QI76UTQJAzij&5 z?^;<i^ERKXUBBp3<mC+uXI6{uT{)Xs^w){oJ)JY=bAJBp)MXLXHRJI6t^dT2>urlW z&~rz%ifzpXAJ4l2#@97Hmjo?%e9dWfRjj>(Y~=d23|m5YS1NAt3^v_zGQ@Yw%B8os zYHv8cZJ76BNm&zL=(=gn_us7i#=@%?P#xS@wXjN2bk*Oh{~k1*zN)1aCY;5z^y-QY zfmfxkT-4F8Su<BCdpXyZUDBEiYx87SW$jiM%+;8c{8=(1=$%!t$?`(Y97)z2&om07 zOeaKt)!X5-<<*wpJ6h8if~<Qc%;W3(&UmS}ysxvo@9&;>(i_VAZknBbe)o~nJzc#^ z_paV!*8jiz+k1x(-*3J5yv&#V|Hz5FmD}0Gw_m;8RDApO+k-ooznpt;XY3c_gUeH^ zBukT|%F?9DuD-wWeo@{po?5o4AFa;a{N+?DSo&P{QPDmAcL!gaihqzR$iK(@?(pw5 zwUzU~CdI9lIiNjp`iHJF4#g8JXXrhxy>_~y^jXop^tF#_ug#d*=ONOsA=tV~`CrHU zETzhc3cOt+u3j%sakR1QPkmVZO8B_j#@|os484v-E_}~ByU*rbZcg2iu(NM}mGmTT z<WtRI-)|Kr%gwWFMQ}nrw@m7>z;qdFQ|`V)VW;l&%{qPUlHJ$yD?T<<F)V(U{5AQ? zr_NuTtXtBzK0k2!e763F-OT&sXO)#cS<(Ccf7z3x4AaD!H(hvqnmcm$l%)@<Cp2Yk z_Uz&bKlfYS^Wj91v-hOWRW;w0wm)~O<Joa%k9IjexzEKO?az*{(4W6_t6|jxl@!O% zNm=VZc1&IIv*#s~;k~<;I<8;wPo7z_^1v~zO<fMxgI0?~P0nI;)=r9C5|O*c?82Q} z(Qg%HPpvV^$a@-QX|nzEnt34!u?evbtzq%2^+hB9uI*lVLn?#UC3AY@RFO^VwzU;U ztKM6>RHnlA$KOXstq(u(@GUH=oqc&Tx9rNFBAvVS{Zkh%(w!W#(OfOK<@-+0*fn-6 zD{h<&tKh%ATrWI)(R;a2`R1~J+@-p|GUo2$tNk)%7h~;~z*@OoKbn6vUpOTG+IvB( z{^jY8T7N_0InPGF(cXT&|AqU)+~r?HN{vovG;E8_5D6|{d_`kvaqkAfrE<r1y7}+A z@Z;1QS8?;xYaT5-zi7^vNR=0h`>(72t#_B7z5ZzD8)cu)qd7Zoy^UXH*CcgRlg%}@ z*X;L|<yXJ1cpdpQ^2#ThsOST0c|UbFJLTn0+$XeF_gUGr0_(#W%UeDw`U$_N={xYm zEc(u~X&IZn*76)SSlOGn@bB9le`Wo4zE#TZS|)t(R*mxVCzTzhz3m5>m#lM*_pUkS z<d*+$%FkE75BNn){`U8j>O9$|!WFyutR^1X-DOw0%1YGK_w+kmv3W%`pNrpcEtwO` z*jckj`@!?Q^BCTLeR8`zI3?ozCzm?qUftBAb3K3iEzNj(m`UyZ;b6~6ljgUcEaLwd zCn2ePdnfZx125?}7x%QB6Aie&!heCS|0;i`-_Nf+Z}@BXRaxs{r2d)Db63?Zt8<)H z6=CbMOf4=;>Y;3vxAgM6F1lN0Z|%I|w%c`g@2yPjt?nxqf1B~m*lKS1i``lJS<x$` zUl*pXIbM4G--@@3i?`Tk*Dotxcvg0yT-4ra%RX0b-)H{1u=b1b7vmR7e{=rkyjnkh z{r6?vU%9_>zYMx3zVbosL@$rUR=Z;6ukc?Y@&3i}uhn0wH4grY75a78X;oX@ci~kR z<uA%F)cz9sYq5z-eN?>v)-|trQ)BaI2%0pNYz<7Ba-rbb54R1+%57g)EsnUpn{n4Y z1*x;U?)9#D-J2SlKgaUm9G}N$qt8TVEUMgIY3^&3KFc_BljZ3-uEA%1pZT4+%JTXg z@5^U?KC9U^_4}v%WZw_pJPMc0c-NC5*!!+)OV5^tyOrN6zkL~Z@8x_^OY0y%`<^-C zmi_O#zjS_C_*;3pi`EPGiKmsPU+(`YbKuX3(21*GHl8q@n4J;$r0oRn7K@_b6eU}c znL;z2>@8p3{T_Vs{{`d4Yb!;b+&I}K^gc!NLH)gxU1BcW8v3`SEGz7L-!eUtjcqM2 zsogXE_4B{CYwqpWwRpBKdT)6P=ggzK_oT#R#<*@W<heF+{@TR{w#zKFtCKEdUzHRc zwCCs9I`7##u4}h0-=L-$cE&?i%`afZ;j0fdLf1^y4C@Vbw#(jNDlx;eX1)9Ad2<eK zw~KpYH~Gi)*iNI>y7q->xf|DAGvpSQ+G4TL>6+Z@Si|VW%g*h|zrG|-@bpTJ=(4n} znKO%j=WbZNFZEE^_S0s!q~13Cj=q-P__g}l`-S~)H~({5dOu+HA<K^9AC~TkW&Ib6 zvMODsER-+t%91&4zNlx~&4`clkBDteJiGLm=jY2hdyA7FCa-kWS)XDT{^YXU1+f4H z??V5bmyDL*5xpOfC!fL0&-81?FN-v>!eyHAe|P_~%!w$BTgh^%fY)vQgf=a2XW2_1 z$|o$Tzw*x|a9YFK2&QeRoHrVm-pj0sTdACKry^pL)2`CAmt|Jo+x33=D_lSK;Imik z*YvOHFMa-6{<VzQ;k0h<(dCm*MXW1rkI`OQ{6pu`&Kj|m?DJi%`p+wUHPOAi==0gl zXEv{xe)IO833>^Y<%*|w)Ya&{RQjw|tn?;c@w#4WWEf-QH-?<J!nl`3cI!h@-<f_t z^z84QKXV@GJQmWqK1t{Fs>r&l8_q}_DataKAG@pRydH1on*KHIu77HtRIYlu**o0z zpVUun-rgEnOQ*wYUaxtbv14_6&b||K_#!xeiGPZ$cvM={dHtlQo$s^fn=>o-Y>GXg zeY>?LX|+UAzSvZW?w+F?B#va7nw}0n#3!=*<K(%Y!euvK|37tWRpsBnXWOffYViJ7 zol_PWuB%bpUsc*?!t~v2&LzF)hT&`G-r9TYTz-%HnOSpGXRi4>`<(Na%`&N)f7tS@ z=f*yMY?)oM{q1v}{cV@`%Gy2Ha(3<`PCvs>7MgVjHP_`&IpjTmtL5vD%PNi1eeapP zF1m7c#<~B`y0&KL&U&`eEz|9p$LEs8CfA?8S^w2C`kKX6{o-wF3s<EVZCh7(-+uPy z+TP&Y6E_bXTRHFa#be8Awivqi`Ucz1UwmxYO0%a+R#o`NNw?hEApA1!gy;2TFU_7W z$+=vj|7^+Hqwg~x{k1#iyhT;LboR1pP4(K@%c?EaTi51zo%H<f<tJtCyWLcM>g;9J zrtW*c<;?QT{C<3!%-3gL-=q4fikIHLw<Ipojw|=o(kmsmKiaN8d;fu-N^e1az5lv* z^)kDKU$!5s{Z{*UPT~Jo|Kjgmxwx{bx{+t5*1hNe&a)mF_V3OM?hxKPae}A1<#y4x zyE|*NFYatUv7P^>Q)Tyiy%T@7@yVNP{K`?jp#G%$rWNb2^gi=ceYAFU!QBTsHjgh% z+c#mMyF`(UJMVYtH^u^!s`lk>4s7!G`n5p5ul=e{o-NCdYtC}_t2C0h7tZ*4tmc}8 z@4l}Bsjru?-mmJ|P@42{ZTqww*Da4G%Ns=ta^0`eco5C+XvZ3KV7pvX&8NjJYdeDM zehQ{(J3Wo&mx>m&n$Ki7=l7LI*POGrDMfvboZz(YYru(J+0y&IUYPcF-?p2xuV{W* zav@E1-`5L$KaZYQ&;48T+A-Z*xnH-}W}C^U8<$Qzj^>}a`^?PWr>}oH`}FCDR?&&a zx66G3xiVUCX^wr%jUtYZYuW9i`6_cPpL|@~ZnN*}gyYkk4d>s=Ilf&k>cd+0?wu=a z?^kI&i{@YZ<685f?Q*w1^Uev{*C_mGH~-t8@0!n*%SU~_+y3pv#kFS|<2$yuKL1xg zC%OLB)L*hI>sEd~GMha}`ts|`AHO`SQVpGHHEY`3?T$J=<ww3NE?TVp+Wl&M!2jD* zEPCxFG?`!CTD<$!_vO=;g)O=FaP!yHm1|!HRK+>(TzRr1KWN<w%jkF8cZUlm=}o(N zDzJj}>b~?fAFP?*R3GEIZ#?biyp4ylSADZhW__CWPEz~k?xT+d<oc~t);ae~xpx0> zWo4oIU5lH+pD+4d^h@dZ8u6?}a)N-}sr*~Fby~MKze;MedNSv#%*#6=^QU({pORmE ze$E}qZx1@Za6aGuzDRpc{G&fj_m27`cfMR`V4JecUGB1TVwHvuzx?IH=f4EZkYild ze&)-BnR1ot4*f>Y4jJvpY?51f^~}L0xid%0Y?jaYcE3sPo6gOdyUgdQ9^KCwaC!T$ z8|EA;`y3M<Ysjt_nRViQRCY{PZM?&y(n3M*f6wbHHk|*Gtn>N*yPjndcQUMwah9oH zeV@>7$NT@sO1IB<pCwOC-Cyq+(Q;3?g@;|X=%8w*s;TXB^>ZhWMy$8oy87|~?W^l8 zvpm^nEuFUQY|!cc*$c&1MrKWXZJ!|~7ybAC@@Zc_1jli^)&DyFa{KJXa=TP@uPyU? zx>98KJk^)Gg5&xhG@d+r$@;vh^Lvx&OC}mxn;m~)^VRmU&F7vM|F^BIyRso(GfMql zhi;i^PM-W+z8&@6*RR#T`}w!~SNPri3uXUb2%Xo!lh4z5)cC^O<rnk+U+2HB|M`t` z0-xvJr;Q3%Cz|gw3_Vx#e@*@r|0_H8*EOb#3T;@Q_N>A7GKX5$jmk>`jjpSgEtS7F zh51`y@QsU#mI()io0pb7Yw)#qyx~__G}+4SS%Yp4%kQ#~EWZ=wF9df^)%nN2u%oKm zeDTry>Nmf3+z(ppUbZj$(d)<3kE0*meq{YP|M>mRdV%}m_5$`I|8?pt=6U@PI_RR2 zs1~JarLs%ql#s2^Ug5vOq8**;Z0c=RAF_oP3zv4D?7S^hu9~L$&i{<Rj-QVA8ZVo9 z5z{NwHfnw>N~(U;d*t1b>P~)Pc~w3&JI|Vl7L%5wC`3*PnH;vscT@7F>`m31(l_N7 zIczfO^iMK;bz`o~q&-%aMwV)pik7C8?nQ1zWx@9~bMuNEi#&@ei%b*zRpxu;dF1)! z`M&db=fqn*>Am`QweRZoee2!dEI+9~*?slXSASj!E#LbtZ1=6a-&d<jyI+-=$*!^v zFJG;<J(_pVt&s1l-i6z4*mbJ$c1gniUCVZDt7>r;7EfK}uG*%w_U&!e-I~VSs(q{H zMcA&b+T}b`&1B`gNZaLA^PDBW<#s&QUlSL#_s}v4ubO31f1IP<{nyRu`)-pjl%K;M zKI_oGHBtxseHVo<icd;dq!l=Mg>R2Xk5`Ykk5A7Et0^<4&6qc1<_zK09q+x)c<c0> z_1EdOog6VSVsgani1{~W+<3I3wKKPKZs&I4_X^M1Io^89I8-ij2~6{SByj34kE*=i z5~2B_va75_?ssnrtlE>lC;ia`4O=m<UqarlH%}%QwOqQc&RTiq$gw3iE}!{xIjQ(U z2J?GXv5zqx)3-C$KKZ{}*7W)QLlrB6Jwt?lTYSrWbNa@`9Wv+Jh3h!$Uw;()k=MSw zcu({mn|s>#^z97djux7JjPlcssjOjnzUlJmk5PefH6mUz?eW5lv&H7i&6k|tT(q27 zsrcsS2~~<Q)_Sp1_L@YO`PQ)7Z!OTBHP!0wk8^#_bG!OiXqc&+>2DJ_zvsrK8*@(8 zZ4}*TS}`qcqt=7}9jXaNd;%ZiH*jU`@2xp!zt&Eys^`;B`!Mbw_d}ci=&x#hv|mx> zqup1fEX8}4frZlcLi1)toR7GFqah+yM^aj7x0RWZnVOlRnQ57O4%<ARin5%%Z{M44 zOuF&uMpm1>V0G6+>7?1o(aF|HyOXMu-XH&V?3?))<K@nF?=rtg{V%gWq5MlVdiw5~ ziT+PcKA3*cusL0gU+$nOllaBmO!5EbdQLugTXVK0H~-`L2W^|TS4cg+`$O=K`Uj`T zDZk_I?qlb)EfBRg4K-es7JhbZRKV6HS(Q&`t-3m0Rr}G8x<yJ6Uqi0eZ~Sf=P?&Ok z=K8L%%g1)KCz|ji8XV&}HbX#1xQX+y!HV6hR{vW6>;L}DS<5naMfT|=`)p7WZq-<$ zv)QW0DaBPgStmPEw)c#pl}lJe<gu<r8eH9?lAG7`g&pgfreP&B^Qc6&;psPf*Y9e) z_#^$zk2CKqcklUJ`?Vsp^!59F)$dpT-c^0bfb*+nV*kUo#9IZ&4c6~Ib=TmIxs8ZQ zU4-6-XB!h|R%b*Q=SV~@KDFYR8jpMLZr<i&HitQr7j8TfvF`lEehF>f<zFq^irb2h zNyWBpyl0U1q(>%)`%*94;;S$GPWp)^Uyv}|w|zfDd-2umZSN<3Q*d2&Fd^Wz37e^i z_LaMB3ly0)ytCLIzkB`OyRR~hJ3?cG!jCL}v@CAnd4Ww|Bmaoz2~D$%>9328U!vby z#cIE1{iW-#q`z40i-}%p{_^dH&}A_Rz2WkgZhZ}`-CehTUvzyyw2Ix;?~O;46+X|X z^QiZ-$WizuIH5kGKYp`0*CzcJ*Ll5~gQ8uQ#$SuS8t;Gdp4Rp++rJj8eEl8!e&^NO zyIqWqsy|w_gD>K$@W;-$mFKUdGoQE?`S+K<l2`h+R3YX{zP{2I*WH%gP?ZzlXXMMc z67XJ}{mA1-4Q%$_KiB{5oe}^4)xB%KrOyRKw5lIkwLwoPP&2LTW>Vha9T5ztlQ!nO zpR>b#jo53K-eut;uAZMGO1kRani}dHJHofoIMQXK`x{aIY>q8*qU=Y7A7v)a^>Uf% z^|5Eh&T^MCVt$>^6C!z1eRP~(@^0qcyg_Vfd6%$4>@-`>qND?poy25PyK?@2J6)Zp z82^6hhIePh&T%|%F-&xtaph%;=EF9FwU<A}9+FM0TOYhb{|Og=>+wUMUYCDw(iOhe z!aGqkbWzlI2fag^c0`{M<~}O4F=mZO_K~WI%#|8~seT=7iJKNiFBe|BX!pX|?;q`s zi)Xm05X<9axZq2hjv>>f)SHD9)-m;U|906r;cxvXxvRf5*EB_KcsEz{&ieISj(1xG z1Ru?+xyzC+`i(QT`a384kI;t~?)fg<|8LT}g?ho}nmioGTPGjdkl-<`?%|q(I0<n* z&hT$~T-RG>A3Ad{a!QAh<Eu3SBJW<Q#jU@p%Uy1%oxXNI(<aAV8yHf>mR{HA>{f`K zwwL9SKa)PE_Mr{SUfAw)=kA$xZ*dhv<=S82O`+wE<$>jrdlLKKSv|kP_mS<c?zxq_ z*Uo-?=uhmt%Xh151;4zS_^vZAbi1B_<4O0p^j06mXuVzT3nsEUZ46+$6|r`;z$+Hs z6U?0&lV7itzZ@&>a!%8uDOkYqUGBm4vz=cuP5EUwC2qZ7(yq|RZ5KXTaeuO2P;w~n z#rCRyUi)W#nfLo``1;_KceQIIFYvrrRkC##Tg0nZuS!GLhi0ss_%`1C*VVe}=WpFP z15-YA{}Gz9c}~3aqv;kC!#}3~oO<1;&e(lrt=Ghp^4HH~rTv`z$KX2W>CJyCSM-0L zUiWsfO=`;dSI6S(*V+D)ZVWA+c>ZSfyz}*6SE{wIe$xHp(yrzWYgUwg3Y}HDZ`$fL zZ!eZ)^L^so(>Hr<_5<J2#e3%JU;XuzDSOW?KD#6CKeckz@Be$Hw4MLS+vlHuz6+oK ziT$VDzm8`{^*!>Jo*dZ3bV_rA?V<3Gi~neB=U-~>llkc<cl4&oPp^vpQ;K)}XS%=Q z%e?-^Y_pE3-GA@LcKp%ydVlh6Wu>b8eo+JCw;Dg~j-2vi_#vMwA;4V1V6}Z(&o=gH z4-Ri_XLM(5ZV+y`%+OK4<vBxg1Lpyi1g-*R1Ku6XGuZE_ulc6PdeLrK!q(FbrYrIf zaB#T?X*Eb~ke<M<!7_#66ywxSmIbEv>5=oNw3h1a>}O0^`kLc88_UzrOMlOqxPD?c z!=r}UqUxfPMX@40<qQQJul`2o8nH1Pe`+N&{i&bY?e@tQvyW6Buy`Q!fa^h2(e2qK z)rZb9q&@w8<nG;F&p&PBF0nqO%QTHayJ7js>>E@1k83~4ern7R*&tJCJAZym{1lci zA^VsZ{O7M{HOYzP-kTQ3Zov44L7ySVNS<{I^Ec*QlTSBWPh0u+H-r16)8C%dxtFc6 zXOm!>!*n2HraWuRjkrg~kM)`K_P<s=9e=kj?8~hK!5_CjdHz>h_w@aJE`OippFX~D z*OZ*)$M1Gp9@zU<_3HLdOZG)RoFnJ(Tlv7`CI1%Ax%yUhf1iETqKdd;mtr5|C6-Gi z7utCJWcuKGHub^kS+5UlH`(6!+~j+Me1;t3<2Zkl)w4=<FKTU_c`GM(-8P5lHM*DI zEsWV4y8d!jL*d#LQ@8ki;7!csiCA~~&ce4>zGYNzZP%1%m0R-FG0J|SEpLrmHD85~ zHKWbSxlG6Q<}vs?|LrS_tB(I2@LQrHayQ$agBuTAIJeTmbo=bnkGXaVJt$f?Y4yWb zmVL$!UtTVgSt7&OSNywS_YUR*?K|ooFut?+;F%{O@!jh5+~>!3dfyR!CsjUq_QSNs z_eI=yl%A^QwN{_X{lsO*Y|(xGq1ndP^V4rn&OSK1Y5(d+*%zxnEfXpJePF-og|hrf z7wfk*Uw^Z#Mqo$(wf=_ZInUdF1Rqd-V0il{_XE-3nwk4g#Xrygxc#T)Ke_)6^+)U< zhBpS@+I44<vQ=u=M%JXCIkD^3IfSp#Uc4uLb>G{oyR7EAslQU0D=hK4?t#IT<XwER z%h$PI_x|}I?C**^fgdgJOg>27wR~WBm*vBfysm5c43GC+-etY3@@{R%clp=TO0#$M zig2&Va}GFIkz#)3bBohL7Y%W(k1{P%r@pS-b%2vCLA%GW$s*}yl1wN|EAt^miK!1F zn0~4}efY#;>HNNsU#;2(K`)PQ<od9tKwRQ`lz`aF9gkOT(9}A@W9WTG@bgin2SFQ~ zjIOOd5|t2hTj7<9@OF(`uKEQYCY={mws-$Nn)h+R4fmfM9}J`H-CjFC(tIFTDDtDJ zLh#3?3Q>vgyZCCjUu{2X`ElM4hZ>fie7|>{udA4N-kvO1-}#HF*05k^UH`tQ_~qAM zxb9t29`r4kkNNl)*#mQb$vuesoA_YyFUJSMzb+rxab5DS<=+`~PWCJ3U%G$6|Mh!@ z^RM5(mJh016Mt>}OLLwzj;w3U-dxL1=vMU4^IxZHGDYGP@6<M_ca!erukhd4Xe`mN z@NR<draydoc{kj5X0NV0P{6U{z5zqcodThX8wFxN_9V*unDnsg;jD+t65YIcHn;6= zV?Dem@#F@lrMAA?a->AtSd-a|wn=R6u{>6jJaOZd2*;gStNY$=J;t{9T!zuD-nfJ{ z?LC3Xy9@Vkyj^kOM!JoXos*f|?N$7e{*3(+?v45q`b_a=ajg6D_ORC6wqWo1eb3m= zz|P3daGlh3-y=&*Qtb}kToxmI(SIhF&(UQ@m*s-Dt~|G7p-$da)ycv)^0{UwE#nJ* zF7|y!RU`lGzFBO(>ORXg=QG;5zfNAp`M~qC$OqobCLd%k+kB|K?3{4t^~TJbTheYB zY)+dRnR_qyoU!;U?=w#iOr4Ugk^F4^gmu18|F3z*k-8>X&0r?$5gvu7lh0o<l)vF` z-1OH({f7VM#=j-{XE^UI{dqw3bJv{zlSP8q44!=pTT-)<V@Jp;gL2Q%DcMWeJk@8a z?0z!UDQHTO_0zux)K*IWSa5~C#>I-wMrH1zw`G|wQd9LD{w^ws+@%#eJ<oIdQp=Ze zADCYXeh|*Q8q%Y)HoC(#^W>J4=pxniOAiF`%*oYUJV(1%<#y`5<dxg5M4E_QypuXn z$1lPD=>}Ccp10HZyq7O^H=eTQdlX-EUlg0Jy2ku_kBp}kA4s0Y`M~qE$OqojCLd%^ z+kB`!?R+}<^rqCan-VWZM6UMI+PZ43){6JrR;{VL=5#V!cjGkX@StPU1had$-a8e^ z8}{0`=WSm01*wfPTaT^%y(ab=^EKydb*~$~S{PjOXX1DMyXLD+-1O2ppHyFq?#$bp zwwKc;c`oa|>{y1lEqaXWBjz*Z-x4{nVg1s>(-Kc_dV1qiuIsj-=+?EbB-d><Wq6&V zHv8_gt*tqM(Ys&rY|8yFR(_k0>HE#T8+|w1a+Wu^YxLjJV~F1pyDj$Uj3Z@t%TBXx z<T}Q-&GNSGZRXtmw-euTepr<o`|UwlQ{9DiThecB{#jPNZf`@ryMK!Qw&^#&F9_ch z{@Uu|^&79>NLkM)*`30^zWwjfciY?F8eUd-wRZ2}dztSIzu&HY+uqoJi#=6#^ZWzP zv+Z;3laDXInJwRJ&GY@BUE=&L{ts<8-Zv;e8J;zN+kM7)+wX68z4-Ws{4M$0(_8Dd z{P|}3yRBJtx2#sXRK<2>|83{{oVFD83AyiFETpsWc3^VHg1LoPtS#CZbNdcwy>a$_ zRAAlI*Rk@JVEG&4(BQN3g(a4J7JQb!WSRRO_f76gJRW(x^7xL&lOA_Hp0({p;bp_c zU#-(*%VoJYoK?!%{3N2#rZmS&^c+w6G~?ql-|G}jv(laudM@g1?OoaQ=6CyopPN{| z^;>WJq=&2WT-m}SJMZ6oYjYyp^7kC~9}|R=M4wOiJSFq6<s+HWxPrKnxU#sZk9nV$ zKG%Jo`+SaYl6Q~B9R4}|bNuJ5K36J!aQTCvWj4FDFHiNg6yI@R;|r~_sXM>zSQT5U z*Xv#4ski*}d#>F{>-fT#uRebDwbdJ|S5i}wqt3muIw<+X!mBSRW_fJ7LfO*7#jodN z^Hdx%J*m4WZ^yD9g4cPkPszSjdffE=uJ=_hs@_DEt=(yMM<?&(%DY;6=hv3KFMED+ z;_S3@u`48trtdiI_&uZN)w+`F8Pz)&%WcyOit`F;{;+PJnqR*AuH%Ca>vQ%+?~BVF zdCZ>KEqGlbU-X@se@DOd=bcX9Jtx?|v3qUzUama8Nc6F6L409+@%<^K(f@DQKAy*F zS$>z>>f+uPaYgHQ%->~h%Vl}!OG?Ei8_Rh${u7sr{BB)-DER5hRt?#tQvc>Na&wQX zxId8l&G#*c?_r=#;HkIs{?5zG?SH;txqtQj;v>a8i!wS^*gDS(o;NY2cFHH#H}Uhj zKg~T-aie(Vr%)U1^QGr?&*z>m-RW0(uK4`thV>t8KG`%@NGwV^zbgH%_Y;X5tM43~ zX{B`KbN`;3_hKF}rSwGYJ!({adQbHekE_vd*M80_VU4?}&FE~s#bR%rW!Bc~xtq;< z_TH0Td`EHf_RF`KH)^;nxfl07@qJ*2tD@dlzAFC;e{R)##`lU3_`R2Sk#fYEaigk@ z`1>Vi?rFZ~eZR%>-CkxnE}hLgPg}p=%U@^wu9oBL@q4N7XNA1F>(KuoxmIibt?job zy*&L{^p{u7(|um?z3cBC|H)&w`utn&Q`>Aa_wxTx+P5Qr{`%9m@<0FL`@wf|+J)=y zr9a4ipZkUP_qku^yr<Vb-sinfdtY`Dk3wsW`9bqQ{l~L6#(DkBxWDH8y8MINUqpXe z`(wrSuerZOmnCh9`p0v6iT&yM56>IQe}C@H|Ht)GZvD#rhswjgofbP8pZf08^<UBk z(>}cRX|9`mzt8UOd(-c~o$Edv{a0pRk$76R-u##Tf5+2-_4EI8Y?1%W-xz-D%Y3g& zuKykNSLzSeU#yor$D71iKJWjk|GQR8tUp(Oy8gDkdUVw1p8xayGoGk?QlHel==|69 zzpm>hH7uCVrNKP2@r^^?0)+q>4emFbA?&X{>|-_2P*-4E(qR06zlGT_R_)dY2X~`e zjNANGEJd&GV4i!T$a_J1k^VgA2L?|UHy%8|`Pu0~$%CFs)q*}ZWr3MD)R~eSId|s0 zbm054NT0)J(N$g_wq;D_Pj)C7=o-hh{&jiammv3tb*=K@Y2TUobxRwMH>P%ID6HdH z!)n&FM#lAq`Zmi8*%O<zR%@-`Yx>UrjFmgJKi|GlMu&46yLPI+{2I<{?1dAuIhyVt zFUu%oZ{9SW->s}b=5I)We9?mG*LF9tH?<!qZ)WHJ#?Ib!{9tgiJpVi%KKAps-W>dV zu<(KRLG1@~+ncT*5I=0oe{YG6^8J|)az3ovYQIAuX3JEz=}p?(GCpJ$TsFC}BI8WP znXEIJXYzHjbaK~ZtjSuFo5OI;bk-N?-fwQ}XIz%Z>M82(ecSt6dUxXN<_+7{fAn~~ z@z}y+!5hk!6mI$G^!Vtp)4k!+>&@>8y?^;!I{&r2**VjD*)<E+XV)wdm!5C3&TL(~ zhlk`Tp49dtXI8fI6*mMpr?!4;S>;@+=<C7bshECZzKpC%%OSU54Y5}orEOI`Zx`OX z@bJRL3kfe=UTl#to!WYC$)gV!c3z0cP%@F6)%2_PLdgri47(EhF9u&Mw#Y<r=bCKv zU8Pof`Q5TT%MLA@wCvNeQ_E&8tEyyKHGP)FUXA{eCx)(*7oNQJWSV=Wuj6CG2OhyO z{{?DmFWVjdxNP0B+GTyqn0?!4{hG}-tIvFHjuhY8PW}S#+O*4&wRx9+F8jFbiG{aB z#;!?H=T9Y{S(a_F?uz#@Ws67IyJlMLO5BmjHluIqthCt)cc#cZju8ugxJJw=d0tSh z<7K52@mW!sRkyZChDn5d;A=5H6!}obGE8uN`{%>1Z5}&JViH&Jg|}uO=1q*fA+qiC z<AWQ_Ww_iAzkT@kVO~%1A@;+y50w`&xnFyjJf;26@<Yl7S#1udi$yJMyxcE)Z>eMK z7uu&${G&+1?fApj$GRWw{jl~!uEgg<Kg?~!_leg{SYyBF56k1FA6C_<7k-h7^Ea9k zYMdEnmTo4z)6a6Z<@TKi0`A4!iD6qDE^*lGedfBnb(7uKoSh}BBV{&Q^{~_C%{TdF z+>RM8`@7}L*^STmDr0Wmxq0XEoot;fyE`=^61NtnZur?^b1cVhZ}a&Ck?S>mpJtpn zD|~jcK~c-c<j*0Wd!J<r9}G<SJonkpXTO&{de(lnzj6BP>poY{N(-8qG@e&ov}nz> zbhonh=Sr0mofc~b32B;7^hjNDEJSu?e}Pl|5rK_vcPz>#{1v>Vx1lR`VuFfLr~5b8 zT}td{uANXUk6U7I)UZ#v$fn51sE6n4=82ytemt@Cgy@6p=o(`q;hDX6dUagHl)X1x z@3L9ey~bspn_0AouB2|HuBGlzU02<ux}v(F6YI9jKQXOu+O279@tjeo#bi?_o7`f0 zyjv{adxh$)OZPVIUwV7e-J$@g%$M1gmx|V;u6P=9n&WBUmdU!}lajR`OzYO29=&c` z%=F`ty4$1jwx8L0C%aN$RbJ(lPfJp_rrLTfI+c-TB5h$FC7|mzTT*xN9`z{MwcS|_ zuAiMkx~!bb7yZkyC~^O$c`;&(@-4}?o!{K}-TU3x7ppH?zBql+^F_%QIsG-G0^@D0 zB<BhhFEU?r`J(m3pD+HtIQ-)Ai=vXV)8y}Nn7VD#TCHfm)w@c!Z}j*UaAIxcHoN~C z*P^+Z7s>3b{1ojSbvjx*Iy>t1+1=4Q!<<)dy?R$Fr+3RS<##8}UaOsW^V+&=%oERE zb6)#*E%Vyr(f-@`w$ID8y>E4|YUS6iy2W3kQWkuDc6-U$E$6n~%Z<&5&56y5&8)q( zOEUO~QBvf_IT3YhG{U4-cZ43zO6C<1o0;@&hPhamYx3KTe>c86w(7>g2>A~aZ*06a z+f%M<t`YAsx1_}zxi@xiJgr;2arMU68>2Vg-njF|-W$y~7T=hBBP(Zb?-tG5Mz=TJ zF1pQitLx*>ZBw_t-B@{h)$LceOmdT6FE#VrfALw)=k2Xe)31wVzs`7_^E&f&>9g&! zdDgegZj>#0Yw}^{w&L96T;bfwxxu;Sx0cl&*WH_2uH%0D+3k1C_Bqvew%yrwZJS{F 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 literal 0 HcmV?d00001 diff --git a/QDMA/DPDK/drivers/net/qdma/Makefile b/QDMA/DPDK/drivers/net/qdma/Makefile new file mode 100644 index 0000000..ccfd9f4 --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/Makefile @@ -0,0 +1,78 @@ +# BSD LICENSE +# +# Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# * Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +include $(RTE_SDK)/mk/rte.vars.mk + +## if modified this BRAM_SIZE, then the same should be modified in the testapp Makefile also +## default set to 512KB +BRAM_SIZE ?= 524288 + +# +# library name +# +LIB = librte_pmd_qdma.a + +# library version + LIBABIVER := 1 + +# versioning export map +EXPORT_MAP := rte_pmd_qdma_version.map + +CFLAGS += -O3 -DDMA_BRAM_SIZE=$(BRAM_SIZE) +#CFLAGS += -g +CFLAGS += $(WERROR_FLAGS) + +ifeq ($(TEST_64B_DESC_BYPASS),1) + CFLAGS += -DTEST_64B_DESC_BYPASS +endif + +# this lib depends upon: +LDLIBS += -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring +LDLIBS += -lrte_ethdev -lrte_net -lrte_kvargs +LDLIBS += -lrte_bus_pci + +# +# all source are stored in SRCS-y +# +SRCS-$(CONFIG_RTE_LIBRTE_QDMA_PMD) += qdma_ethdev.c +SRCS-$(CONFIG_RTE_LIBRTE_QDMA_PMD) += qdma_vf_ethdev.c +SRCS-$(CONFIG_RTE_LIBRTE_QDMA_PMD) += qdma_devops.c +SRCS-$(CONFIG_RTE_LIBRTE_QDMA_PMD) += qdma_common.c +SRCS-$(CONFIG_RTE_LIBRTE_QDMA_PMD) += qdma_rxtx.c +SRCS-$(CONFIG_RTE_LIBRTE_QDMA_PMD) += qdma_xdebug.c + +# +## Export include files +# +SYMLINK-y-include += qdma_export.h + + +include $(RTE_SDK)/mk/rte.lib.mk diff --git a/QDMA/DPDK/drivers/net/qdma/qdma.h b/QDMA/DPDK/drivers/net/qdma/qdma.h new file mode 100644 index 0000000..07e52db --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/qdma.h @@ -0,0 +1,488 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __QDMA_H__ +#define __QDMA_H__ + +#include <rte_dev.h> +#include <rte_ethdev.h> +#include <rte_spinlock.h> +#include <rte_log.h> +#include <rte_byteorder.h> +#include <rte_memzone.h> +#include <linux/pci.h> +#include "qdma_user.h" + +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER +#define PMD_DRV_LOG(level, fmt, args...) \ + RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args) +#else +#define PMD_DRV_LOG(level, fmt, args...) do { } while (0) +#endif + +#define FMAP_CNTXT (1) + +#define NUM_BARS (6) +#define DEFAULT_PF_CONFIG_BAR (0) +#define DEFAULT_VF_CONFIG_BAR (0) +#define BAR_ID_INVALID -1 + +#define QDMA_QUEUES_NUM_MAX (2048) +#define QDMA_MAX_BURST_SIZE (256) +#define QDMA_MIN_RXBUFF_SIZE (256) + +#define RX_STATUS_EOP (1) + +#define QDMA_BUF_ALIGN (4096) +/* Descriptor Rings aligned to 4KB boundaries - only supported value */ +#define QDMA_ALIGN (4096) + +/* If this RX_BUF_SIZE, modified then the same value need to be modified + * in the testapp commands.h file "MAX_BUF_SIZE" macro. + * This is maintained equal to the descriptor Bufffer size + */ +#define RX_BUF_SIZE 4096 + +/* QDMA IP absolute maximum */ +#define QDMA_PF_MAX 4 /* 4 PFs */ +#define QDMA_VF_MAX 252 +#define QDMA_FUNC_ID_INVALID (QDMA_PF_MAX + QDMA_VF_MAX) + +/** MBOX OPCODE **/ +#define QDMA_MBOX_OPCD_HI (1) +#define QDMA_MBOX_OPCD_BYE (2) +#define QDMA_MBOX_OPCD_QADD (3) +#define QDMA_MBOX_OPCD_QDEL (4) + +#define MBOX_POLL_FRQ 500000 + +#define DEFAULT_QUEUE_BASE (0) + +/*Corresponding to 100ns (1tick = 4ns for 250MHz user clock)*/ +#define DEFAULT_C2H_INTR_TIMER_TICK (25) +#define DEFAULT_TIMER_CNT_TRIG_MODE_TIMER (5) +#define DEFAULT_TIMER_CNT_TRIG_MODE_COUNT_TIMER (30) +#define DEFAULT_MAX_DESC_FETCH (3) /* Max nuber of descriptors to fetch in one + * request is 8 * 2^val; Max value is 6; + * Keep same as PCIe MRRS + */ +#define DEFAULT_WB_ACC_INT (4) // Calculated as 4 * 2^val; Max value is 7 +#define MAX_WB_ACC_INT (7) // Calculated as 4 * 2^val; Max value is 7 + +#define DEFAULT_H2C_THROTTLE (0x14000) // Setting throttle to 16K buffer size + +#define MIN_RX_PIDX_UPDATE_THRESHOLD (1) +#define MIN_TX_PIDX_UPDATE_THRESHOLD (1) +#define QDMA_TXQ_PIDX_UPDATE_INTERVAL (1000) //100 uSec + +#define DEFAULT_PFCH_STOP_THRESH (256) +#define DEFAULT_PFCH_NUM_ENTRIES_PER_Q (8) +#define DEFAULT_PFCH_MAX_Q_CNT (16) +#define DEFAULT_PFCH_EVICTION_Q_CNT (14) + +#define DEFAULT_CMPT_COAL_TIMER_CNT (5) +#define DEFAULT_CMPT_COAL_TIMER_TICK (25) +#define DEFAULT_CMPT_COAL_MAX_BUF_SZ (32) + +/** Delays **/ +#define CONTEXT_PROG_DELAY (1) +#define MAILBOX_PF_MSG_DELAY (20) +#define PF_RESET_DELAY (1) +#define PF_START_DELAY (1) +#define MAILBOX_VF_MSG_DELAY (10) +#define VF_RESET_DELAY (200) +#define CONTEXT_PROG_POLL_COUNT (10) +#define MAILBOX_PROG_POLL_COUNT (1250) + +#define WB_TIMEOUT (UINT16_MAX * 4) + +#ifdef spin_lock_init +#undef spin_lock_init +#endif +#define spin_lock_init(sl) rte_spinlock_init(sl) + +enum cmpt_desc_len { + CMPT_DESC_LEN_8B = 8, + CMPT_DESC_LEN_16B = 16, + CMPT_DESC_LEN_32B = 32, + CMPT_DESC_LEN_64B = 64 +}; + +enum bypass_desc_len { + BYPASS_DESC_LEN_8B = 8, + BYPASS_DESC_LEN_16B = 16, + BYPASS_DESC_LEN_32B = 32, + BYPASS_DESC_LEN_64B = 64 +}; + +enum c2h_bypass_mode { + C2H_BYPASS_MODE_NONE = 0, + C2H_BYPASS_MODE_CACHE = 1, + C2H_BYPASS_MODE_SIMPLE = 2, + C2H_BYPASS_MODE_MAX = C2H_BYPASS_MODE_SIMPLE, +}; + +#define DEFAULT_QDMA_CMPT_DESC_LEN (CMPT_DESC_LEN_8B) + +struct qdma_pkt_stats { + uint64_t pkts; + uint64_t bytes; +}; + +/** + * Structure associated with each RX queue. + */ +struct qdma_rx_queue { + struct rte_mempool *mb_pool; /**< mbuf pool to populate RX ring. */ + void *rx_ring; /**< RX ring virtual address */ + struct c2h_cmpt_ring *cmpt_ring; + struct wb_status *wb_status; + struct rte_mbuf **sw_ring; /**< address of RX software ring. */ + volatile uint32_t *rx_pidx; + volatile uint32_t *rx_cidx; + + uint16_t rx_tail; + uint16_t c2h_pidx; + uint16_t rx_cmpt_tail; + uint16_t cmpt_desc_len; + uint16_t rx_buff_size; + uint16_t nb_rx_desc; /**< number of RX descriptors. */ + uint16_t nb_rx_cmpt_desc; + uint32_t queue_id; /**< RX queue index. */ + + struct qdma_pkt_stats stats; + + uint32_t ep_addr; + + uint8_t st_mode:1; /**< dma-mode: MM or ST */ + uint8_t rx_deferred_start:1; + uint8_t en_prefetch:1; + uint8_t en_bypass:1; + uint8_t dump_immediate_data:1; + uint8_t en_bypass_prefetch:1; + uint8_t dis_overflow_check:1; + uint8_t status:1; + enum bypass_desc_len bypass_desc_sz; + + uint16_t port_id; /**< Device port identifier. */ + uint16_t func_id; /**< RX queue index. */ + + + int8_t ringszidx; + int8_t cmpt_ringszidx; + int8_t buffszidx; + int8_t threshidx; + int8_t timeridx; + int8_t triggermode; + + const struct rte_memzone *rx_mz; + /* C2H stream mode, completion descriptor result */ + const struct rte_memzone *rx_cmpt_mz; +}; + +/** + * Structure associated with each TX queue. + */ +struct qdma_tx_queue { + void *tx_ring; /* TX ring virtual address*/ + struct wb_status *wb_status; + struct rte_mbuf **sw_ring;/* SW ring virtual address*/ + volatile uint32_t *tx_pidx; + uint16_t tx_tail; + uint16_t tx_fl_tail; + uint16_t tx_desc_pend; + uint16_t nb_tx_desc; /* No of TX descriptors.*/ + rte_spinlock_t pidx_update_lock; + + uint8_t st_mode:1;/* dma-mode: MM or ST */ + uint8_t tx_deferred_start:1; + uint8_t en_bypass:1; + uint8_t status:1; + enum bypass_desc_len bypass_desc_sz; + uint16_t func_id; /* RX queue index. */ + uint16_t port_id; /* Device port identifier. */ + int8_t ringszidx; + + struct qdma_pkt_stats stats; + + uint32_t ep_addr; + uint32_t queue_id; /* TX queue index. */ + uint32_t num_queues; /* TX queue index. */ + const struct rte_memzone *tx_mz; +}; + +struct qdma_vf_queue_info { + uint32_t mode; +}; + +struct qdma_vf_info { + uint32_t qbase; + uint32_t qmax; + uint16_t func_id; + struct qdma_vf_queue_info *vfqinfo; +}; + +struct queue_info { + uint32_t queue_mode:1; + uint32_t rx_bypass_mode:2; + uint32_t tx_bypass_mode:1; + uint32_t cmpt_desc_sz:7; + enum bypass_desc_len rx_bypass_desc_sz:7; + enum bypass_desc_len tx_bypass_desc_sz:7; +}; + +struct qdma_pci_dev { + struct pci_dev *pdev; /* PCI device pointer */ + unsigned long magic; + int config_bar_idx; + int user_bar_idx; + int bypass_bar_idx; + struct rte_eth_dev *eth_dev; + + /* Driver Attributes */ + uint32_t qsets_max; /* max. of queue pairs */ + uint32_t qsets_en; /* no. of queue pairs enabled */ + uint8_t st_mode_en; /* Streaming mode enabled? */ + uint8_t mm_mode_en; /* Memory mapped mode enabled? */ + + uint16_t pf; + uint8_t is_vf; + uint8_t en_desc_prefetch; + uint8_t cmpt_desc_len; + uint8_t c2h_bypass_mode; + uint8_t h2c_bypass_mode; + + void *bar_addr[NUM_BARS]; /* memory mapped I/O addr for BARs */ + unsigned long bar_len[NUM_BARS]; /* length of BAR regions */ + unsigned int flags; + + volatile uint32_t *c2h_mm_control; + volatile uint32_t *h2c_mm_control; + unsigned int queue_base; + uint8_t wb_acc_int; + uint8_t trigger_mode; + uint16_t timer_count; + + /* Hardware version info*/ + uint32_t everest_ip:1; + uint32_t vivado_rel:4; + uint32_t rtl_version:8; + struct qdma_vf_info *vfinfo; + struct queue_info *q_info; +}; + +struct __attribute__ ((packed)) qdma_mbox_data { + uint8_t opcode; + uint16_t debug_funid:12; /* Used for debug information only*/ + uint16_t filler:4; + uint8_t err; + uint32_t data[31]; +}; + +struct __attribute__ ((packed)) qadd_msg { + uint32_t qid; + uint32_t st:1; + uint32_t c2h:1; + uint32_t prefetch:1; + uint32_t en_bypass:1; + uint32_t en_bypass_prefetch:1; + uint32_t dis_overflow_check:1; + uint32_t bypass_desc_sz_idx:4; + uint32_t ringsz; + uint32_t bufsz; + uint32_t thresidx; + uint32_t timeridx; + uint32_t triggermode; + uint64_t ring_bs_addr; + uint64_t cmpt_ring_bs_addr; + uint32_t cmpt_ringszidx; + uint8_t cmpt_desc_fmt; +}; + +enum get_param_type { + CONFIG_BAR = 0, + USER_BAR, + BYPASS_BAR +}; +enum get_queue_param_type { + CHECK_DUMP_IMMEDIATE_DATA = 0x10 +}; + +enum dev_param_type { + QUEUE_BASE = 0, + TIMER_COUNT, + TRIGGER_MODE, +}; + +enum queue_param_type { + QUEUE_MODE = 0x10, + DESC_PREFETCH, + TX_DST_ADDRESS, + RX_SRC_ADDRESS, + DIS_OVERFLOW_CHECK, + DUMP_IMMEDIATE_DATA, + RX_BYPASS_MODE, + RX_BYPASS_DESC_SIZE, + TX_BYPASS_MODE, + TX_BYPASS_DESC_SIZE, + CMPT_DESC_SIZE +}; + +/* + * queue_mode_t - queue modes + */ +enum queue_mode_t { + MEMORY_MAPPED_MODE, + STREAMING_MODE +}; + +/* + * tigger_mode_t - trigger modes + */ +enum tigger_mode_t { + TRIG_MODE_DISABLE, + TRIG_MODE_EVERY, + TRIG_MODE_USER_COUNT, + TRIG_MODE_USER, + TRIG_MODE_USER_TIMER, + TRIG_MODE_USER_TIMER_COUNT, + TRIG_MODE_MAX = TRIG_MODE_USER_TIMER_COUNT, +}; + +enum dma_data_direction { + DMA_BIDIRECTIONAL = 0, + DMA_TO_DEVICE = 1, + DMA_FROM_DEVICE = 2, + DMA_NONE = 3, +}; + +void qdma_dev_ops_init(struct rte_eth_dev *dev); +uint32_t qdma_read_reg(uint64_t addr); +void qdma_write_reg(uint64_t addr, uint32_t val); +void qdma_txq_pidx_update(void *arg); + +int qdma_queue_ctxt_tx_prog(struct rte_eth_dev *dev, uint32_t qid, + uint32_t mode, uint32_t ringszidx, uint16_t func_id, uint64_t phys_addr, + uint8_t en_bypass, uint8_t bypass_desc_sz_idx); + +int qdma_queue_ctxt_rx_prog(struct rte_eth_dev *dev, uint32_t qid, + uint32_t mode, uint8_t prefetch, + uint32_t ringszidx, uint32_t cmpt_ringszidx, + uint32_t bufszidx, uint32_t threshidx, + uint32_t timeridx, uint32_t triggermode, + uint16_t func_id, uint64_t phys_addr, + uint64_t cmpt_phys_addr, uint8_t cmpt_desc_fmt, + uint8_t en_bypass, uint8_t en_bypass_prefetch, + uint8_t bypass_desc_sz_idx, + uint8_t dis_overflow_check); + +int qdma_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id, + uint16_t nb_rx_desc, unsigned int socket_id, + const struct rte_eth_rxconf *rx_conf, + struct rte_mempool *mb_pool); + +int qdma_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id, + uint16_t nb_tx_desc, unsigned int socket_id, + const struct rte_eth_txconf *tx_conf); +void qdma_dev_rx_queue_release(void *rqueue); +void qdma_dev_tx_queue_release(void *tqueue); +uint8_t qmda_get_desc_sz_idx(enum bypass_desc_len); +int qdma_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id); +int qdma_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id); +int qdma_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id); +int qdma_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id); +int qdma_vf_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id); +int qdma_vf_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id); +int qdma_vf_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id); +int qdma_vf_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t tx_queue_id); + +int qdma_start_rx_queue(struct qdma_rx_queue *rxq); +void qdma_start_tx_queue(struct qdma_tx_queue *txq); +void qdma_reset_tx_queue(struct qdma_tx_queue *txq); +void qdma_reset_rx_queue(struct qdma_rx_queue *rxq); + +void qdma_reset_rx_queues(struct rte_eth_dev *dev, uint32_t qid, uint32_t mode); +void qdma_inv_rx_queues(struct rte_eth_dev *dev, uint32_t qid, uint32_t mode); +void qdma_reset_tx_queues(struct rte_eth_dev *dev, uint32_t qid, uint32_t mode); +void qdma_inv_tx_queues(struct rte_eth_dev *dev, uint32_t qid, uint32_t mode); +int qdma_set_fmap(struct qdma_pci_dev *qdma_dev, uint16_t devfn, + uint32_t q_base, uint32_t q_count); +int qdma_identify_bars(struct rte_eth_dev *dev); +int qdma_get_hw_version(struct rte_eth_dev *dev); +/* implemented in rxtx.c */ +uint16_t qdma_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, + uint16_t nb_pkts); +uint16_t qdma_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, + uint16_t nb_pkts); +int qdma_dev_rx_descriptor_done(void *rx_queue, uint16_t exp_count); + +uint16_t qdma_recv_pkts_st(struct qdma_rx_queue *rxq, struct rte_mbuf **rx_pkts, + uint16_t nb_pkts); +uint16_t qdma_recv_pkts_mm(struct qdma_rx_queue *rxq, struct rte_mbuf **rx_pkts, + uint16_t nb_pkts); + +uint16_t qdma_xmit_pkts_st(struct qdma_tx_queue *txq, struct rte_mbuf **tx_pkts, + uint16_t nb_pkts); +uint16_t qdma_xmit_pkts_mm(struct qdma_tx_queue *txq, struct rte_mbuf **tx_pkts, + uint16_t nb_pkts); + +uint32_t qdma_pci_read_reg(struct rte_eth_dev *dev, uint32_t bar, uint32_t reg); +void qdma_pci_write_reg(struct rte_eth_dev *dev, uint32_t bar, + uint32_t reg, uint32_t val); +void qdma_desc_dump(struct rte_eth_dev *dev, uint32_t qid); + +int index_of_array(uint32_t *arr, uint32_t n, uint32_t element); +int get_param(struct rte_eth_dev *dev, enum get_param_type param, void *value); +int get_queue_param(struct rte_eth_dev *dev, uint32_t qid, + enum get_queue_param_type param, void *value); +int update_param(struct rte_eth_dev *dev, enum dev_param_type param, + uint16_t value); +int update_queue_param(struct rte_eth_dev *dev, uint32_t qid, + enum queue_param_type param, uint32_t value); +int qdma_check_kvargs(struct rte_devargs *devargs, + struct qdma_pci_dev *qdma_dev); + +static inline const +struct rte_memzone *qdma_zone_reserve(struct rte_eth_dev *dev, + const char *ring_name, + uint32_t queue_id, + uint32_t ring_size, + int socket_id) +{ + char z_name[RTE_MEMZONE_NAMESIZE]; + snprintf(z_name, sizeof(z_name), "%s%s%d_%d", + dev->device->driver->name, ring_name, + dev->data->port_id, queue_id); + return rte_memzone_reserve_aligned(z_name, (uint64_t)ring_size, + socket_id, 0, QDMA_ALIGN); +} +#endif /* ifndef __QDMA_H__ */ diff --git a/QDMA/DPDK/drivers/net/qdma/qdma_common.c b/QDMA/DPDK/drivers/net/qdma/qdma_common.c new file mode 100644 index 0000000..fb95d0a --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/qdma_common.c @@ -0,0 +1,1380 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdint.h> +#include <rte_malloc.h> +#include <rte_common.h> +#include <rte_ethdev_pci.h> +#include <rte_cycles.h> +#include <rte_kvargs.h> +#include "qdma.h" +#include "qdma_regs.h" + +#include <fcntl.h> +#include <unistd.h> + +/* Read register */ +uint32_t qdma_read_reg(uint64_t reg_addr) +{ + uint32_t val; + + val = *((volatile uint32_t *)(reg_addr)); + return val; +} + +/* Write register */ +void qdma_write_reg(uint64_t reg_addr, uint32_t val) +{ + *((volatile uint32_t *)(reg_addr)) = val; +} + +uint32_t qdma_pci_read_reg(struct rte_eth_dev *dev, uint32_t bar, uint32_t reg) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + uint64_t baseaddr; + uint32_t val; + + if (bar >= (NUM_BARS - 1)) { + printf("Error: PCI BAR number:%d not supported\n" + "Please enter valid BAR number\n", bar); + return -1; + } + + baseaddr = (uint64_t)qdma_dev->bar_addr[bar]; + if (!baseaddr) { + printf("Error: PCI BAR number:%d not mapped\n", bar); + return -1; + } + val = *((volatile uint32_t *)(baseaddr + reg)); + + return val; +} + +void qdma_pci_write_reg(struct rte_eth_dev *dev, uint32_t bar, + uint32_t reg, uint32_t val) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + uint64_t baseaddr; + + if (bar >= (NUM_BARS - 1)) { + printf("Error: PCI BAR index:%d not supported\n" + "Please enter valid BAR index\n", bar); + return; + } + + baseaddr = (uint64_t)qdma_dev->bar_addr[bar]; + if (!baseaddr) { + printf("Error: PCI BAR number:%d not mapped\n", bar); + return; + } + *((volatile uint32_t *)(baseaddr + reg)) = val; +} + +void qdma_desc_dump(struct rte_eth_dev *dev, uint32_t qid) +{ + struct qdma_rx_queue *rxq; + struct qdma_tx_queue *txq; + uint32_t i, k, bypass_desc_sz_idx; + struct qdma_c2h_desc *rx_ring_st; + struct qdma_mm_desc *ring_mm; + struct qdma_h2c_desc *tx_ring_st; + uint8_t *rx_ring_bypass = NULL; + uint8_t *tx_ring_bypass = NULL; + + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + txq = (struct qdma_tx_queue *)dev->data->tx_queues[qid]; + bypass_desc_sz_idx = qmda_get_desc_sz_idx(rxq->bypass_desc_sz); + + if (rxq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) { + rx_ring_bypass = (uint8_t *)rxq->rx_ring; + for (i = 0; i < rxq->nb_rx_desc; ++i) { + for (k = 0; k < rxq->bypass_desc_sz; k++) + printf("\trxq descriptor-data[%d]: %x\n", i, + rx_ring_bypass[i * (rxq->bypass_desc_sz) + + k]); + } + } else if (rxq->st_mode) { + rx_ring_st = (struct qdma_c2h_desc *)rxq->rx_ring; + printf("\nST-mode Rx descriptor dump on Queue-id:%d:\n", qid); + for (i = 0; i < rxq->nb_rx_desc; ++i) { + printf("\t desc-index:%d: dest-addr:%lx\n", i, + rx_ring_st[i].dst_addr); + } + } else { + ring_mm = (struct qdma_mm_desc *)rxq->rx_ring; + printf("\nMM-mode Rx descriptor dump on Queue-id:%d:\n", qid); + for (i = 0; i < rxq->nb_rx_desc; ++i) { + printf("\t desc-index:%d: dest-addr:%lx, src-addr:%lx," + " valid:%d, eop:%d, sop:%d," + "length:%d\n", i, + ring_mm[i].dst_addr, + ring_mm[i].src_addr, + ring_mm[i].dv, + ring_mm[i].eop, + ring_mm[i].sop, + ring_mm[i].len); + } + } + + bypass_desc_sz_idx = qmda_get_desc_sz_idx(txq->bypass_desc_sz); + + if (txq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) { + tx_ring_bypass = (uint8_t *)txq->tx_ring; + for (i = 0; i < txq->nb_tx_desc; ++i) { + for (k = 0; k < txq->bypass_desc_sz; k++) + printf("\t txq descriptor-data[%d]: %x\n", i, + tx_ring_bypass[i * + (txq->bypass_desc_sz) + k]); + } + } else if (txq->st_mode) { + tx_ring_st = (struct qdma_h2c_desc *)txq->tx_ring; + printf("\nST-mode Tx descriptor dump on Queue-id:%d:\n", qid); + for (i = 0; i < txq->nb_tx_desc; ++i) { + printf("\t desc-index:%d: src-addr:%lx,length:%d\n", i, + tx_ring_st[i].src_addr, + tx_ring_st[i].len); + } + + } else { + ring_mm = (struct qdma_mm_desc *)txq->tx_ring; + printf("\nMM-mode Tx descriptor dump on Queue-id:%d:\n", qid); + for (i = 0; i < txq->nb_tx_desc; ++i) { + printf("\t desc-index:%d: dest-addr:%lx, src-addr:%lx," + " valid:%d, eop:%d,sop:%d, length:%d\n", + i, ring_mm[i].dst_addr, + ring_mm[i].src_addr, + ring_mm[i].dv, + ring_mm[i].eop, + ring_mm[i].sop, + ring_mm[i].len); + } + } +} + +void qdma_reset_rx_queue(struct qdma_rx_queue *rxq) +{ + uint32_t i; + uint32_t sz; + + rxq->rx_tail = 0; + rxq->c2h_pidx = 0; + rxq->rx_cmpt_tail = 0; + + /* Zero out HW ring memory, For MM Descriptor */ + if (rxq->st_mode) { /** if ST-mode **/ + sz = rxq->cmpt_desc_len; + for (i = 0; i < (sz * rxq->nb_rx_cmpt_desc); i++) + ((volatile char *)rxq->cmpt_ring)[i] = 0; + + sz = sizeof(struct qdma_c2h_desc); + for (i = 0; i < (sz * rxq->nb_rx_desc); i++) + ((volatile char *)rxq->rx_ring)[i] = 0; + + } else { + sz = sizeof(struct qdma_mm_desc); + for (i = 0; i < (sz * rxq->nb_rx_desc); i++) + ((volatile char *)rxq->rx_ring)[i] = 0; + } + + /* Initialize SW ring entries */ + for (i = 0; i < rxq->nb_rx_desc; i++) + rxq->sw_ring[i] = NULL; +} + +void qdma_inv_rx_queues(struct rte_eth_dev *dev, uint32_t qid, uint32_t mode) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct queue_ind_prg *q_regs; + uint32_t ctxt_sel, reg_val; + uint32_t i, flag; + uint64_t bar_addr; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + q_regs = (struct queue_ind_prg *)(bar_addr + QDMA_TRQ_SEL_IND + + QDMA_IND_Q_PRG_OFF); + + /** To clear the Queues **/ + /** To clear the SW C2H Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_C2H << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_INV << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "SW C2H Clear cmd for queue-id:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + /** To clear the HW C2H Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_HW_C2H << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_INV << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "HW C2H Clear cmd for queue-id:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (mode) { /** ST-mode **/ + /** To clear the C2H prefetch context Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_PFTCH << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_INV << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "HW C2H Clear cmd for queue-id:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + + /** To clear the C2H Completion Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_CMPT << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_INV << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "HW C2H Clear cmd for queue-id:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + + /** To clear the C2H credit context Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_CR_C2H << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_INV << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "C2H creditsClear cmd for qid:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + } +} +/** + * reset the Rx device queues. + * + * reset the device by clearing the Rx descriptors for all + * queues and device registers. + * + * @param dev + * Pointer to Ethernet device structure. + * + * @return + * Nothing. + */ +void qdma_reset_rx_queues(struct rte_eth_dev *dev, uint32_t qid, uint32_t mode) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct queue_ind_prg *q_regs; + uint32_t ctxt_sel, reg_val; + uint32_t i, flag; + uint64_t bar_addr; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + q_regs = (struct queue_ind_prg *)(bar_addr + QDMA_TRQ_SEL_IND + + QDMA_IND_Q_PRG_OFF); + + /** To clear the Queues **/ + /** To clear the SW C2H Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_C2H << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_CLR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "SW C2H Clear cmd for queue-id:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + /** To clear the HW C2H Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_HW_C2H << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_CLR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "HW C2H Clear cmd for queue-id:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (mode) { /** ST-mode **/ + /** To clear the C2H prefetch context Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_PFTCH << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_CLR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "HW C2H Clear cmd for queue-id:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + + /** To clear the C2H Completion Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_CMPT << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_CLR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "HW C2H Clear cmd for queue-id:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + + /** To clear the C2H credit context Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_CR_C2H << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_CLR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "C2H creditsClear cmd for qid:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + } +} + +int qdma_start_rx_queue(struct qdma_rx_queue *rxq) +{ + struct rte_mbuf *mb; + void *obj = NULL; + uint64_t phys_addr; + uint16_t i; + struct qdma_c2h_desc *rx_ring_st = NULL; + + /* allocate new buffers for the Rx descriptor ring */ + if (rxq->st_mode) { /** ST-mode **/ + rx_ring_st = (struct qdma_c2h_desc *)rxq->rx_ring; +#ifdef DUMP_MEMPOOL_USAGE_STATS + PMD_DRV_LOG(INFO, "%s(): %d: queue id %d, mbuf_avail_count =%d," + "mbuf_in_use_count = %d", + __func__, __LINE__, rxq->queue_id, + rte_mempool_avail_count(rxq->mb_pool), + rte_mempool_in_use_count(rxq->mb_pool)); +#endif //DUMP_MEMPOOL_USAGE_STATS + for (i = 0; i < (rxq->nb_rx_desc - 1); i++) { + if (rte_mempool_get(rxq->mb_pool, &obj) != 0) { + PMD_DRV_LOG(ERR, "qdma-start-rx-queue(): " + "rte_mempool_get: failed"); + goto fail; + } + + mb = obj; + phys_addr = (uint64_t)mb->buf_physaddr + + RTE_PKTMBUF_HEADROOM; + + mb->data_off = RTE_PKTMBUF_HEADROOM; + rxq->sw_ring[i] = mb; + rx_ring_st[i].dst_addr = phys_addr; + } +#ifdef DUMP_MEMPOOL_USAGE_STATS + PMD_DRV_LOG(INFO, "%s(): %d: qid %d, mbuf_avail_count = %d," + "mbuf_in_use_count = %d", + __func__, __LINE__, rxq->queue_id, + rte_mempool_avail_count(rxq->mb_pool), + rte_mempool_in_use_count(rxq->mb_pool)); +#endif //DUMP_MEMPOOL_USAGE_STATS + } + + /* initialize tail */ + rxq->rx_tail = 0; + rxq->c2h_pidx = 0; + rxq->rx_cmpt_tail = 0; + + return 0; +fail: + return -ENOMEM; +} + +/** + * Start the Rx device queues. + * + * Start the device by configuring the Rx descriptors for all + * the queues and device registers. + * + * @param dev + * Pointer to Ethernet device structure. + * + * @return + * 0 on success, negative errno value on failure. + */ + +int qdma_queue_ctxt_rx_prog(struct rte_eth_dev *dev, uint32_t qid, + uint32_t mode, uint8_t en_prefetch, + uint32_t ringszidx, uint32_t cmpt_ringszidx, + uint32_t bufszidx, uint32_t threshidx, + uint32_t timeridx, uint32_t triggermode, + uint16_t func_id, uint64_t phys_addr, + uint64_t cmpt_phys_addr, uint8_t cmpt_desc_fmt, + uint8_t en_bypass, uint8_t en_bypass_prefetch, + uint8_t bypass_desc_sz_idx, + uint8_t dis_overflow_check) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct queue_ind_prg *q_regs; + uint64_t bar_addr; + uint32_t reg_val, ctxt_sel; + uint16_t flag, i; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + q_regs = (struct queue_ind_prg *)(bar_addr + QDMA_TRQ_SEL_IND + + QDMA_IND_Q_PRG_OFF); + + /* C2H Queue initialization */ + reg_val = (func_id << SW_DESC_CNTXT_FUNC_ID_SHIFT); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[0], reg_val); + reg_val = (SW_DESC_CNTXT_WB_EN << SW_DESC_CNTXT_WB_EN_SHIFT_B) | + (ringszidx << SW_DESC_CNTXT_RING_SIZE_ID_SHIFT) | + (SW_DESC_CNTXT_QUEUE_ENABLE << + SW_DESC_CNTXT_QUEUE_EN_SHIFT); + + if (mode) { /** ST-mode **/ + if (en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) + reg_val = reg_val | (bypass_desc_sz_idx << + SW_DESC_CNTXT_DESC_SZ_SHIFT); + else + reg_val = reg_val | (SW_DESC_CNTXT_C2H_STREAM_DMA << + SW_DESC_CNTXT_DESC_SZ_SHIFT); + + reg_val = reg_val | (en_bypass << SW_DESC_CNTXT_BYPASS_SHIFT) | + (SW_DESC_CNTXT_FETCH_CREDIT_EN << + SW_DESC_CNTXT_FETCH_CREDIT_EN_SHIFT); + } else { + if (en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) + reg_val = reg_val | (bypass_desc_sz_idx << + SW_DESC_CNTXT_DESC_SZ_SHIFT) | + (SW_DESC_CNTXT_IS_MM << + SW_DESC_CNTXT_IS_MM_SHIFT); + else + reg_val = reg_val | (SW_DESC_CNTXT_MEMORY_MAP_DMA << + SW_DESC_CNTXT_DESC_SZ_SHIFT) | + (SW_DESC_CNTXT_IS_MM << + SW_DESC_CNTXT_IS_MM_SHIFT); + + reg_val = reg_val | (en_bypass << SW_DESC_CNTXT_BYPASS_SHIFT) | + (SW_DESC_CNTXT_WBI_INTERVAL << + SW_DESC_CNTXT_WBI_INTERVAL_SHIFT) | + (SW_DESC_CNTXT_WBI_CHK << + SW_DESC_CNTXT_WBI_CHK_SHIFT); + } + + qdma_write_reg((uint64_t)&q_regs->ctxt_data[1], reg_val); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[2], + rte_cpu_to_le_32(phys_addr & MASK_32BIT)); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[3], + rte_cpu_to_le_32(phys_addr >> 32)); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[4], 0); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[0], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[1], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[2], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[3], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[4], MASK_32BIT); + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_C2H << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_WR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, " Read cmd for queue-id:%d: reg_val:%x\n", + qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "Error: Busy on queue-id:%d: " + "initailization with cmd reg_val:%x\n", + qid, reg_val); + goto fail; + } + +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + /** To read the Queue **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_C2H << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + for (i = 0; i < 5; i++) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_data[i]); + PMD_DRV_LOG(INFO, " Read context-data on queue-id:%d," + " idx:%d:reg_val:%x\n", qid, i, reg_val); + /* TO-DO: Need to verify the Queue ctxt-data and if Queue has + * any errors, then return -1. **/ + } +#endif //RTE_LIBRTE_QDMA_DEBUG_DRIVER + + /* C2H Prefetch & Completion context initialization */ + if (mode) { /** ST-mode **/ + /** C2H Prefetch Context **/ + qdma_write_reg((uint64_t)&q_regs->ctxt_data[0], + (en_prefetch << PREFETCH_EN_SHIFT) | + (bufszidx << BUFF_SIZE_INDEX_SHIFT) | + (en_bypass_prefetch << PREFETCH_BYPASS_SHIFT)); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[1], + (VALID_CNTXT << VALID_CNTXT_SHIFT)); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[2], 0); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[3], 0); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[0], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[1], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[2], MASK_0BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[3], MASK_0BIT); + ctxt_sel = (QDMA_CTXT_SEL_PFTCH << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_WR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + i = CONTEXT_PROG_POLL_COUNT; + flag = 1; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, " Read cmd for queue-id:%d:" + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "Error: Busy on queue-id:%d:" + " C2H Prefetch initailization with cmd" + " reg_val:%x\n", qid, reg_val); + goto fail; + } + +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + /** To read the Queue **/ + ctxt_sel = (QDMA_CTXT_SEL_PFTCH << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + for (i = 0; i < NUM_CONTEXT_REGS; i++) { + reg_val = + qdma_read_reg((uint64_t)&q_regs->ctxt_data[i]); + PMD_DRV_LOG(INFO, " Read context-data C2H Prefetch on " + "queue-id:%d, idx:%d:reg_val:%x\n", + qid, i, reg_val); + } +#endif //RTE_LIBRTE_QDMA_DEBUG_DRIVER + + /** C2H Completion Context **/ + qdma_write_reg((uint64_t)&q_regs->ctxt_data[0], + (CMPT_CNTXT_EN_STAT_DESC << + CMPT_CNTXT_EN_STAT_DESC_SHIFT) | + (CMPT_CNTXT_COLOR_BIT << + CMPT_CNTXT_COLOR_BIT_SHIFT) | + ((uint32_t)func_id << + CMPT_CNTXT_FUNC_ID_SHIFT) | + ((uint64_t)threshidx << + CMPT_CNTXT_THRESHOLD_MODE_SHIFT) | + ((uint64_t)timeridx << + CMPT_CNTXT_TIMER_INDEX_SHIFT) | + (triggermode << + CMPT_CNTXT_TRIGGER_MODE_SHIFT) | + ((uint64_t)cmpt_ringszidx << + CMPT_CNTXT_RING_SIZE_INDEX_SHIFT)); + + qdma_write_reg((uint64_t)&q_regs->ctxt_data[1], + (rte_cpu_to_le_32(cmpt_phys_addr >> 6) & + MASK_32BIT)); + + qdma_write_reg((uint64_t)&q_regs->ctxt_data[2], + (rte_cpu_to_le_32(cmpt_phys_addr >> 32) >> 6) | + ((uint32_t)cmpt_desc_fmt << + CMPT_CNTXT_DESC_SIZE_SHIFT)); + + qdma_write_reg((uint64_t)&q_regs->ctxt_data[3], + (CMPT_CNTXT_CTXT_VALID << + CMPT_CNTXT_CTXT_VALID_SHIFT)); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[4], + (dis_overflow_check << + CMPT_CNTXT_OVF_CHK_DIS_SHIFT)); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[0], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[1], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[2], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[3], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[4], MASK_32BIT); + ctxt_sel = (QDMA_CTXT_SEL_DESC_CMPT << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_WR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + i = CONTEXT_PROG_POLL_COUNT; + flag = 1; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, " Read cmd for queue-id:%d:" + " reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "Error: Busy on queue-id:%d: C2H CMPT" + " initailization with cmd reg_val:%x\n", + qid, reg_val); + goto fail; + } + +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + /** To read the Queue **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_CMPT << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + for (i = 0; i < NUM_CONTEXT_REGS; i++) { + reg_val = qdma_read_reg((uint64_t)& + q_regs->ctxt_data[i]); + PMD_DRV_LOG(INFO, " Read context-data C2H-CMPT on " + "queue-id:%d, idx:%d:reg_val:%x\n", + qid, i, reg_val); + } +#endif //RTE_LIBRTE_QDMA_DEBUG_DRIVER + } + + return 0; +fail: + return -1; +} + +/* + * Tx queue reset + */ +void qdma_reset_tx_queue(struct qdma_tx_queue *txq) +{ + uint32_t i; + uint32_t sz; + + txq->tx_tail = 0; + txq->tx_fl_tail = 0; + if (txq->st_mode) { /** ST-mode **/ + sz = sizeof(struct qdma_h2c_desc); + /* Zero out HW ring memory */ + for (i = 0; i < (sz * (txq->nb_tx_desc)); i++) + ((volatile char *)txq->tx_ring)[i] = 0; + } else { + sz = sizeof(struct qdma_mm_desc); + /* Zero out HW ring memory */ + for (i = 0; i < (sz * (txq->nb_tx_desc)); i++) + ((volatile char *)txq->tx_ring)[i] = 0; + } + + /* Initialize SW ring entries */ + for (i = 0; i < txq->nb_tx_desc; i++) + txq->sw_ring[i] = NULL; +} + +void qdma_inv_tx_queues(struct rte_eth_dev *dev, uint32_t qid, uint32_t mode) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct queue_ind_prg *q_regs; + uint64_t bar_addr; + uint32_t ctxt_sel, reg_val; + uint32_t i, flag; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + q_regs = (struct queue_ind_prg *)(bar_addr + QDMA_TRQ_SEL_IND + + QDMA_IND_Q_PRG_OFF); + + /** To clear the SW H2C Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_H2C << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_INV << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "SW H2C Clear cmd for queue-id:%d:" + " reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + /** To clear the HW H2C Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_HW_H2C << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_INV << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "HW H2C Clear cmd for queue-id:%d:" + " reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (mode) { /** ST-mode **/ + /** To clear the C2H credit context Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_CR_H2C << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_INV << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "H2C Credits Clear cmd for queue-id:" + "%d: reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + } +} + +/** + * reset the Tx device queues. + * + * reset the device by clearing the Tx descriptors for + * all queues and device registers. + * + * @param dev + * Pointer to Ethernet device structure. + * + * @return + * Nothing. + */ +void qdma_reset_tx_queues(struct rte_eth_dev *dev, uint32_t qid, uint32_t mode) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct queue_ind_prg *q_regs; + uint64_t bar_addr; + uint32_t ctxt_sel, reg_val; + uint32_t i, flag; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + q_regs = (struct queue_ind_prg *)(bar_addr + QDMA_TRQ_SEL_IND + + QDMA_IND_Q_PRG_OFF); + + /** To clear the SW H2C Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_H2C << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_CLR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "SW H2C Clear cmd for queue-id:%d:" + " reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + /** To clear the HW H2C Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_HW_H2C << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_CLR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "HW H2C Clear cmd for queue-id:%d:" + " reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (mode) { /** ST-mode **/ + /** To clear the C2H credit context Queues **/ + ctxt_sel = (QDMA_CTXT_SEL_CR_H2C << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_CLR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, "H2C Credits Clear cmd for queue-id:" + "%d: reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + } +} + +void qdma_start_tx_queue(struct qdma_tx_queue *txq) +{ + /* initialize tail */ + txq->tx_tail = 0; + *txq->tx_pidx = 0; +} + +/** + * Start the tx device queues. + * + * Start the device by configuring the Tx descriptors for + * all the queues and device registers. + * + * @param dev + * Pointer to Ethernet device structure. + * + * @return + * Nothing. + */ + +int qdma_queue_ctxt_tx_prog(struct rte_eth_dev *dev, uint32_t qid, + uint32_t mode, uint32_t ringszidx, + uint16_t func_id, uint64_t phys_addr, + uint8_t en_bypass, uint8_t bypass_desc_sz_idx) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct queue_ind_prg *q_regs; + uint32_t ctxt_sel, reg_val; + uint64_t bar_addr; + uint16_t flag, i; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + q_regs = (struct queue_ind_prg *)(bar_addr + QDMA_TRQ_SEL_IND + + QDMA_IND_Q_PRG_OFF); + + reg_val = (func_id << SW_DESC_CNTXT_FUNC_ID_SHIFT); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[0], reg_val); + + reg_val = (en_bypass << SW_DESC_CNTXT_BYPASS_SHIFT) | + (SW_DESC_CNTXT_WB_EN << + SW_DESC_CNTXT_WB_EN_SHIFT_B) | + (ringszidx << + SW_DESC_CNTXT_RING_SIZE_ID_SHIFT) | + (SW_DESC_CNTXT_WBI_INTERVAL << + SW_DESC_CNTXT_WBI_INTERVAL_SHIFT) | + (SW_DESC_CNTXT_WBI_CHK << + SW_DESC_CNTXT_WBI_CHK_SHIFT) | + (SW_DESC_CNTXT_QUEUE_ENABLE << + SW_DESC_CNTXT_QUEUE_EN_SHIFT); + + if (en_bypass && bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) + reg_val = reg_val | (bypass_desc_sz_idx << + SW_DESC_CNTXT_DESC_SZ_SHIFT); + else if (mode) /** ST-mode **/ + reg_val = reg_val | (SW_DESC_CNTXT_H2C_STREAM_DMA << + SW_DESC_CNTXT_DESC_SZ_SHIFT); + else /* MM- mode*/ + reg_val = reg_val | (SW_DESC_CNTXT_MEMORY_MAP_DMA << + SW_DESC_CNTXT_DESC_SZ_SHIFT) | + (SW_DESC_CNTXT_IS_MM << + SW_DESC_CNTXT_IS_MM_SHIFT); + + qdma_write_reg((uint64_t)&q_regs->ctxt_data[1], reg_val); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[2], + rte_cpu_to_le_32(phys_addr & + MASK_32BIT)); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[3], + rte_cpu_to_le_32(phys_addr >> 32)); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[4], 0); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[0], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[1], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[2], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[3], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[4], MASK_32BIT); + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_H2C << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_WR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, " Read cmd for queue-id:%d: reg_val:%x\n", + qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "H2C Error: Busy on queue-id:%d: " + "initailization with cmd reg_val:%x\n", + qid, reg_val); + goto fail; + } + +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + /** To read the Queue **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_H2C << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + for (i = 0; i < NUM_CONTEXT_REGS; i++) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_data[i]); + PMD_DRV_LOG(INFO, " Read context-data on queue-id:%d," + "idx:%d:reg_val:%x\n", qid, i, reg_val); + } +#endif //RTE_LIBRTE_QDMA_DEBUG_DRIVER + return 0; +fail: + return -1; +} + +/* Utility function to find index of an element in an array */ +int index_of_array(uint32_t *arr, uint32_t n, uint32_t element) +{ + int index = 0; + + for (index = 0; (uint32_t)index < n; index++) { + if (*(arr + index) == element) + return index; + } + return -1; +} + +static int qbase_check_handler(__rte_unused const char *key, + const char *value, void *opaque) +{ + struct qdma_pci_dev *qdma_dev = (struct qdma_pci_dev *)opaque; + char *end = NULL; + + PMD_DRV_LOG(INFO, "QDMA devargs queue base is: %s\n", value); + qdma_dev->queue_base = (unsigned int)strtoul(value, &end, 10); + if (qdma_dev->queue_base >= QDMA_QUEUES_NUM_MAX) { + PMD_DRV_LOG(INFO, "QDMA devargs queue-base > max allowed\n"); + return -1; + } + + return 0; +} + +static int pfetch_check_handler(__rte_unused const char *key, + const char *value, void *opaque) +{ + struct qdma_pci_dev *qdma_dev = (struct qdma_pci_dev *)opaque; + char *end = NULL; + + PMD_DRV_LOG(INFO, "QDMA devargs desc_prefetch is: %s\n", value); + qdma_dev->en_desc_prefetch = (uint8_t)strtoul(value, &end, 10); + if (qdma_dev->en_desc_prefetch > 1) { + PMD_DRV_LOG(INFO, "QDMA devargs prefetch should be 1 or 0," + " setting to 1.\n"); + qdma_dev->en_desc_prefetch = 1; + } + return 0; +} + +static int cmpt_desc_len_check_handler(__rte_unused const char *key, + const char *value, void *opaque) +{ + struct qdma_pci_dev *qdma_dev = (struct qdma_pci_dev *)opaque; + char *end = NULL; + + PMD_DRV_LOG(INFO, "QDMA devargs cmpt_desc_len is: %s\n", value); + qdma_dev->cmpt_desc_len = (uint8_t)strtoul(value, &end, 10); + if (qdma_dev->cmpt_desc_len != CMPT_DESC_LEN_8B && + qdma_dev->cmpt_desc_len != CMPT_DESC_LEN_16B && + qdma_dev->cmpt_desc_len != CMPT_DESC_LEN_32B && + qdma_dev->cmpt_desc_len != CMPT_DESC_LEN_64B) { + PMD_DRV_LOG(INFO, "QDMA devargs incorrect cmpt_desc_len = %d " + "specified\n", + qdma_dev->cmpt_desc_len); + return -1; + } + + return 0; +} + +static int trigger_mode_handler(__rte_unused const char *key, + const char *value, void *opaque) +{ + struct qdma_pci_dev *qdma_dev = (struct qdma_pci_dev *)opaque; + char *end = NULL; + + PMD_DRV_LOG(INFO, "QDMA devargs trigger mode: %s\n", value); + qdma_dev->trigger_mode = (uint8_t)strtoul(value, &end, 10); + + if (qdma_dev->trigger_mode > TRIG_MODE_MAX) { + qdma_dev->trigger_mode = TRIG_MODE_MAX; + PMD_DRV_LOG(INFO, "QDMA devargs trigger mode invalid," + "reset to default: %d\n", + qdma_dev->trigger_mode); + } + return 0; +} + +static int wb_accumulation_handler(__rte_unused const char *key, + const char *value, void *opaque) +{ + struct qdma_pci_dev *qdma_dev = (struct qdma_pci_dev *)opaque; + char *end = NULL; + + PMD_DRV_LOG(INFO, "QDMA devargs trigger mode: %s\n", value); + qdma_dev->wb_acc_int = (uint8_t)strtoul(value, &end, 10); + + if (qdma_dev->wb_acc_int > MAX_WB_ACC_INT) { + qdma_dev->wb_acc_int = DEFAULT_WB_ACC_INT; + PMD_DRV_LOG(INFO, "QDMA devargs write-back-accumulation " + "invalid, reset to default: %d\n", + qdma_dev->wb_acc_int); + } + return 0; +} + +static int config_bar_idx_handler(__rte_unused const char *key, + const char *value, void *opaque) +{ + struct qdma_pci_dev *qdma_dev = (struct qdma_pci_dev *)opaque; + char *end = NULL; + + PMD_DRV_LOG(INFO, "QDMA devargs trigger mode: %s\n", value); + qdma_dev->config_bar_idx = (int)strtoul(value, &end, 10); + + if (qdma_dev->config_bar_idx >= QDMA_BAR_NUM || + qdma_dev->config_bar_idx < 0) { + PMD_DRV_LOG(INFO, "QDMA devargs config bar idx invalid: %d\n", + qdma_dev->config_bar_idx); + return -1; + } + return 0; +} + +static int c2h_byp_mode_check_handler(__rte_unused const char *key, + const char *value, void *opaque) +{ + struct qdma_pci_dev *qdma_dev = (struct qdma_pci_dev *)opaque; + char *end = NULL; + + PMD_DRV_LOG(INFO, "QDMA devargs c2h_byp_mode is: %s\n", value); + qdma_dev->c2h_bypass_mode = (uint8_t)strtoul(value, &end, 10); + + if (qdma_dev->c2h_bypass_mode > C2H_BYPASS_MODE_MAX) { + PMD_DRV_LOG(INFO, "QDMA devargs incorrect " + "c2h_byp_mode= %d specified\n", + qdma_dev->c2h_bypass_mode); + return -1; + } + + return 0; +} + +static int h2c_byp_mode_check_handler(__rte_unused const char *key, + const char *value, void *opaque) +{ + struct qdma_pci_dev *qdma_dev = (struct qdma_pci_dev *)opaque; + char *end = NULL; + + PMD_DRV_LOG(INFO, "QDMA devargs h2c_byp_mode is: %s\n", value); + qdma_dev->h2c_bypass_mode = (uint8_t)strtoul(value, &end, 10); + + if (qdma_dev->h2c_bypass_mode > 1) { + PMD_DRV_LOG(INFO, "QDMA devargs incorrect" + " h2c_byp_mode =%d specified\n", + qdma_dev->h2c_bypass_mode); + return -1; + } + + return 0; +} + +/* Process the all devargs */ +int qdma_check_kvargs(struct rte_devargs *devargs, + struct qdma_pci_dev *qdma_dev) +{ + struct rte_kvargs *kvlist; + const char *qbase_key = "queue_base"; + const char *pfetch_key = "desc_prefetch"; + const char *cmpt_desc_len_key = "cmpt_desc_len"; + const char *trigger_mode_key = "trigger_mode"; + const char *wb_acc_int_key = "wb_acc_int"; + const char *config_bar_key = "config_bar"; + const char *c2h_byp_mode_key = "c2h_byp_mode"; + const char *h2c_byp_mode_key = "h2c_byp_mode"; + int ret = 0; + + if (!devargs) + return 0; + + kvlist = rte_kvargs_parse(devargs->args, NULL); + if (!kvlist) + return 0; + + /* process the queue_base*/ + if (rte_kvargs_count(kvlist, qbase_key)) { + ret = rte_kvargs_process(kvlist, qbase_key, + qbase_check_handler, qdma_dev); + if (ret) { + rte_kvargs_free(kvlist); + return ret; + } + } + + /* process the desc_prefetch*/ + if (rte_kvargs_count(kvlist, pfetch_key)) { + ret = rte_kvargs_process(kvlist, pfetch_key, + pfetch_check_handler, qdma_dev); + if (ret) { + rte_kvargs_free(kvlist); + return ret; + } + } + + /* process the cmpt_desc_len*/ + if (rte_kvargs_count(kvlist, cmpt_desc_len_key)) { + ret = rte_kvargs_process(kvlist, cmpt_desc_len_key, + cmpt_desc_len_check_handler, qdma_dev); + if (ret) { + rte_kvargs_free(kvlist); + return ret; + } + } + + /* process the trigger_mode*/ + if (rte_kvargs_count(kvlist, trigger_mode_key)) { + ret = rte_kvargs_process(kvlist, trigger_mode_key, + trigger_mode_handler, qdma_dev); + if (ret) { + rte_kvargs_free(kvlist); + return ret; + } + } + + /* process the writeback accumalation*/ + if (rte_kvargs_count(kvlist, wb_acc_int_key)) { + ret = rte_kvargs_process(kvlist, wb_acc_int_key, + wb_accumulation_handler, qdma_dev); + if (ret) { + rte_kvargs_free(kvlist); + return ret; + } + } + + /* process the config bar*/ + if (rte_kvargs_count(kvlist, config_bar_key)) { + ret = rte_kvargs_process(kvlist, config_bar_key, + config_bar_idx_handler, qdma_dev); + if (ret) { + rte_kvargs_free(kvlist); + return ret; + } + } + + /* process c2h_byp_mode*/ + if (rte_kvargs_count(kvlist, c2h_byp_mode_key)) { + ret = rte_kvargs_process(kvlist, c2h_byp_mode_key, + c2h_byp_mode_check_handler, qdma_dev); + if (ret) { + rte_kvargs_free(kvlist); + return ret; + } + } + + /* process h2c_byp_mode*/ + if (rte_kvargs_count(kvlist, h2c_byp_mode_key)) { + ret = rte_kvargs_process(kvlist, h2c_byp_mode_key, + h2c_byp_mode_check_handler, qdma_dev); + if (ret) { + rte_kvargs_free(kvlist); + return ret; + } + } + + rte_kvargs_free(kvlist); + return ret; +} + +int qdma_identify_bars(struct rte_eth_dev *dev) +{ + uint64_t baseaddr; + int bar_len, i, j; + uint32_t xlnx_id_mask = 0xffff0000; + uint64_t reg_val; + uint32_t mask = 1; + struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); + struct qdma_pci_dev *dma_priv; + + dma_priv = (struct qdma_pci_dev *)dev->data->dev_private; + + /* Config bar */ + bar_len = pci_dev->mem_resource[dma_priv->config_bar_idx].len; + if (bar_len) { + baseaddr = (uint64_t) + pci_dev->mem_resource[dma_priv->config_bar_idx].addr; + + if (dma_priv->is_vf) + reg_val = qdma_read_reg((uint64_t)baseaddr + + QDMA_VF_RTL_VER); + else + reg_val = qdma_read_reg((uint64_t)baseaddr); + + if ((reg_val & xlnx_id_mask) != QDMA_CONFIG_BLOCK_ID) { + PMD_DRV_LOG(INFO, "QDMA config BAR index :%d invalid", + dma_priv->config_bar_idx); + return -1; + } + } else { + PMD_DRV_LOG(INFO, "QDMA config BAR index :%d is not enabled", + dma_priv->config_bar_idx); + return -1; + } + + /* Find user bar*/ + if (dma_priv->is_vf) { + reg_val = qdma_read_reg((uint64_t)baseaddr + + QDMA_GLBL2_VF_BARLITE_EXT); + reg_val = reg_val & 0x3F; + + } else { + reg_val = qdma_read_reg((uint64_t)baseaddr + + QDMA_GLBL2_PF_BARLITE_EXT); + reg_val = (reg_val >> (6 * PCI_FUNC(dma_priv->pf))) & 0x3F; + } + + for (j = 0 ; j < QDMA_BAR_NUM; j++) { + if (reg_val & mask) { + if (pci_dev->mem_resource[j].len) { + dma_priv->user_bar_idx = j; + break; + } + } + mask <<= 1; + } + + /* Find bypass bar*/ + for (i = 0; i < QDMA_BAR_NUM; i++) { + bar_len = pci_dev->mem_resource[i].len; + if (!bar_len) /* Bar not enabled ? */ + continue; + if (dma_priv->user_bar_idx != i && + dma_priv->config_bar_idx != i) { + dma_priv->bypass_bar_idx = i; + break; + } + } + + PMD_DRV_LOG(INFO, "QDMA config bar idx :%d\n", + dma_priv->config_bar_idx); + PMD_DRV_LOG(INFO, "QDMA user bar idx :%d\n", dma_priv->user_bar_idx); + PMD_DRV_LOG(INFO, "QDMA bypass bar idx :%d\n", + dma_priv->bypass_bar_idx); + + return 0; +} +int qdma_get_hw_version(struct rte_eth_dev *dev) +{ + uint64_t baseaddr, reg_val; + struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); + struct qdma_pci_dev *dma_priv; + + dma_priv = (struct qdma_pci_dev *)dev->data->dev_private; + baseaddr = ((uint64_t) + pci_dev->mem_resource[dma_priv->config_bar_idx].addr); + + if (dma_priv->is_vf) { + reg_val = qdma_read_reg((uint64_t)baseaddr + QDMA_VF_RTL_VER); + dma_priv->rtl_version = (reg_val & VF_RTL_VERSION_MASK) >> + VF_RTL_VERSION_SHIFT; + dma_priv->vivado_rel = (reg_val & VF_VIVADO_RELEASE_ID_MASK) >> + VF_VIVADO_RELEASE_ID_SHIFT; + dma_priv->everest_ip = (reg_val & VF_EVEREST_IP_MASK) >> + VF_EVEREST_IP_SHIFT; + + } else { + reg_val = qdma_read_reg((uint64_t)baseaddr + QDMA_PF_RTL_VER); + dma_priv->rtl_version = (reg_val & PF_RTL_VERSION_MASK) >> + PF_RTL_VERSION_SHIFT; + dma_priv->vivado_rel = (reg_val & PF_VIVADO_RELEASE_ID_MASK) >> + PF_VIVADO_RELEASE_ID_SHIFT; + dma_priv->everest_ip = (reg_val & PF_EVEREST_IP_MASK) >> + PF_EVEREST_IP_SHIFT; + } + + if (dma_priv->rtl_version == 0) + PMD_DRV_LOG(INFO, "QDMA RTL VERSION : RTL-1\n"); + else if (dma_priv->rtl_version == 1) + PMD_DRV_LOG(INFO, "QDMA RTL VERSION : RTL-2\n"); + + if (dma_priv->vivado_rel == 0) + PMD_DRV_LOG(INFO, "QDMA VIVADO RELEASE ID : 2018.3\n"); + + if (dma_priv->everest_ip == 0) + PMD_DRV_LOG(INFO, "QDMA IP : SOFT-IP\n"); + else + PMD_DRV_LOG(INFO, "QDMA IP : HARD-IP\n"); + return 0; +} diff --git a/QDMA/DPDK/drivers/net/qdma/qdma_devops.c b/QDMA/DPDK/drivers/net/qdma/qdma_devops.c new file mode 100644 index 0000000..371fbc2 --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/qdma_devops.c @@ -0,0 +1,1447 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdint.h> +#include <sys/mman.h> +#include <sys/fcntl.h> +#include <rte_memzone.h> +#include <rte_string_fns.h> +#include <rte_ethdev_pci.h> +#include <rte_malloc.h> +#include <rte_dev.h> +#include <rte_pci.h> +#include <rte_ether.h> +#include <rte_ethdev.h> +#include <rte_alarm.h> +#include <rte_cycles.h> +#include <unistd.h> +#include <string.h> + +#include "qdma.h" +#include "qdma_regs.h" + +uint32_t g_ring_sz[QDMA_GLOBAL_CSR_ARRAY_SZ]; +uint32_t g_c2h_cnt_th[QDMA_GLOBAL_CSR_ARRAY_SZ]; +uint32_t g_c2h_buf_sz[QDMA_GLOBAL_CSR_ARRAY_SZ]; +uint32_t g_c2h_timer_cnt[QDMA_GLOBAL_CSR_ARRAY_SZ]; + +int get_param(struct rte_eth_dev *dev, enum get_param_type param, + void *ret_param) +{ + struct qdma_pci_dev *dma_priv = dev->data->dev_private; + + if (!ret_param) + return -1; + + switch (param) { + case CONFIG_BAR: + *((int *)ret_param) = dma_priv->config_bar_idx; + break; + case USER_BAR: + *((int *)ret_param) = dma_priv->user_bar_idx; + break; + case BYPASS_BAR: + *((int *)ret_param) = dma_priv->bypass_bar_idx; + break; + } + return 0; +} + + +int get_queue_param(struct rte_eth_dev *dev, uint32_t qid, + enum get_queue_param_type param, void *ret_param) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_rx_queue *rxq; + + if (qid >= qdma_dev->qsets_en) { + PMD_DRV_LOG(ERR, "Invalid Q-id passed qid %d max en_qid %d\n", + qid, qdma_dev->qsets_en); + return -1; + } + + if (!ret_param) { + PMD_DRV_LOG(ERR, "Invalid ret_param for qid %d\n", qid); + return -1; + } + switch (param) { + /* Use this param after queue setup is done, and before queue start*/ + case CHECK_DUMP_IMMEDIATE_DATA: + if (qid >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(ERR, "Invalid RX Queue id passed for " + "DUMP_IMMEDIATE_DATA\n"); + return -1; + } + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + *((int *)ret_param) = rxq->dump_immediate_data; + break; + } + return 0; +} + +int update_param(struct rte_eth_dev *dev, enum dev_param_type param, + uint16_t value) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + + switch (param) { + case QUEUE_BASE: + if (value > qdma_dev->qsets_max) { + PMD_DRV_LOG(ERR, "Invalid Queue base passed\n"); + return -1; + } + qdma_dev->queue_base = value; + break; + case TIMER_COUNT: + qdma_dev->timer_count = value; + break; + case TRIGGER_MODE: + if (value > TRIG_MODE_MAX) { + PMD_DRV_LOG(ERR, "Invalid Trigger mode passed\n"); + return -1; + } + qdma_dev->trigger_mode = value; + break; + default: + PMD_DRV_LOG(ERR, "Invalid param %x specified\n", param); + break; + } + return 0; +} + +int update_queue_param(struct rte_eth_dev *dev, uint32_t qid, + enum queue_param_type param, uint32_t value) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_rx_queue *rxq; + struct qdma_tx_queue *txq; + + if (qid >= qdma_dev->qsets_en) { + PMD_DRV_LOG(ERR, "Invalid Queue id passed\n"); + return -1; + } + + switch (param) { + case QUEUE_MODE: + if (value > STREAMING_MODE) { + PMD_DRV_LOG(ERR, "Invalid Queue mode passed\n"); + return -1; + } + qdma_dev->q_info[qid].queue_mode = value; + break; + + case DIS_OVERFLOW_CHECK: /* Update this param after queue-setup issued*/ + if (qid >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(ERR, "Invalid RX Queue id passed for " + "DIS_OVERFLOW_CHECK\n"); + return -1; + } + if (value > 1) + return -1; + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + rxq->dis_overflow_check = value; + break; + + case DUMP_IMMEDIATE_DATA: /*Update this param after queue-setup issued*/ + if (qid >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(ERR, "Invalid RX Queue id passed for " + "DUMP_IMMEDIATE_DATA\n"); + return -1; + } + if (value > 1) + return -1; + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + rxq->dump_immediate_data = value; + break; + + case DESC_PREFETCH: + if (qid >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(ERR, "Invalid RX Queue id passed for " + "DESC_PREFETCH\n"); + return -1; + } + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + rxq->en_prefetch = (value > 0) ? 1 : 0; + break; + + case RX_BYPASS_MODE: + if (qid >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(ERR, "Invalid RX Queue id passed for " + "RX_BYPASS_MODE\n"); + return -1; + } + if (value > C2H_BYPASS_MODE_MAX) { + PMD_DRV_LOG(ERR, "Invalid Rx Bypass mode : %d\n", + value); + return -1; + } + qdma_dev->q_info[qid].rx_bypass_mode = value; + break; + + case TX_BYPASS_MODE: + if (qid >= dev->data->nb_tx_queues) { + PMD_DRV_LOG(ERR, "Invalid TX Queue id passed for " + "TX_BYPASS_MODE\n"); + return -1; + } + if (value > 1) { + PMD_DRV_LOG(ERR, "Invalid Tx Bypass mode : %d\n", + value); + return -1; + } + qdma_dev->q_info[qid].tx_bypass_mode = value; + break; + + case RX_BYPASS_DESC_SIZE: + if (qid >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(ERR, "Invalid RX Queue id passed for " + "RX_BYPASS_DESC_SIZE\n"); + return -1; + } + /* Only 64byte descriptor size supported in 2018.3 Example Design*/ + if (value != 64) + return -1; + qdma_dev->q_info[qid].rx_bypass_desc_sz = + (enum bypass_desc_len)value; + break; + + case TX_BYPASS_DESC_SIZE: + if (qid >= dev->data->nb_tx_queues) { + PMD_DRV_LOG(ERR, "Invalid TX Queue id passed " + "for TX_BYPASS_DESC_SIZE\n"); + return -1; + } + /* Only 64byte descriptor size supported in 2018.3 Example Design*/ + if (value != 64) + return -1; + qdma_dev->q_info[qid].tx_bypass_desc_sz = + (enum bypass_desc_len)value; + break; + + case TX_DST_ADDRESS: + if (qid >= dev->data->nb_tx_queues) { + PMD_DRV_LOG(ERR, "Invalid TX Queue id passed for " + "TX_DST_ADDRESS\n"); + return -1; + } + txq = (struct qdma_tx_queue *)dev->data->tx_queues[qid]; + txq->ep_addr = value; + break; + + case RX_SRC_ADDRESS: + if (qid >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(ERR, "Invalid RX Queue id passed " + "for RX_SRC_ADDRESS\n"); + return -1; + } + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + rxq->ep_addr = value; + break; + + case CMPT_DESC_SIZE: + if (qid >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(ERR, "Invalid RX Queue id passed " + "for CMPT_DESC_SIZE\n"); + return -1; + } + if (value != CMPT_DESC_LEN_8B && + value != CMPT_DESC_LEN_16B && + value != CMPT_DESC_LEN_32B && + value != CMPT_DESC_LEN_64B) + return -1; + qdma_dev->q_info[qid].cmpt_desc_sz = value; + break; + + default: + PMD_DRV_LOG(ERR, "Invalid param %x specified\n", param); + break; + } + + return 0; +} + +int qdma_set_fmap(struct qdma_pci_dev *qdma_dev, uint16_t devfn, + uint32_t q_base, uint32_t q_count) +{ + uint64_t bar_addr; +#if FMAP_CNTXT + struct queue_ind_prg *q_regs; + uint32_t ctxt_sel; + uint16_t flag, i; +#else + uint64_t fmap; +#endif +#if defined(RTE_LIBRTE_QDMA_DEBUG_DRIVER) || FMAP_CNTXT + uint64_t reg_val; +#endif + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; +#if FMAP_CNTXT + q_regs = (struct queue_ind_prg *)(bar_addr + QDMA_TRQ_SEL_IND + + QDMA_IND_Q_PRG_OFF); + + qdma_write_reg((uint64_t)&q_regs->ctxt_data[0], q_base); + qdma_write_reg((uint64_t)&q_regs->ctxt_data[1], q_count); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[0], MASK_32BIT); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[1], MASK_32BIT); + ctxt_sel = (QDMA_CTXT_SEL_FMAP << CTXT_SEL_SHIFT_B) | + (devfn << QID_SHIFT_B) | + (QDMA_CTXT_CMD_WR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, " Read cmd for FMAP CTXT for device:%d: " + "reg_val:%lx\n", devfn, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "Error: Busy on device:%d: FMAP " + "initailization with cmd reg_val:%lx\n", + devfn, reg_val); + goto fail; + } +#else + fmap = (uint64_t)(bar_addr + QDMA_TRQ_SEL_FMAP + devfn * 4); + qdma_write_reg((uint64_t)fmap, (q_count << QID_MAX_SHIFT_B) | + (q_base & QID_BASE_MSK)); +#endif +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER +#if FMAP_CNTXT + ctxt_sel = (QDMA_CTXT_SEL_FMAP << CTXT_SEL_SHIFT_B) | + (devfn << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + for (i = 0; i < 2; i++) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_data[i]); + PMD_DRV_LOG(INFO, " FMAP CTXT for device :%d, idx:%d:" + "reg_val:%lx\n", devfn, i, reg_val); + /* TO-DO: Need to verify the Queue ctxt-data and + * if Queue has any errors, then return -1. **/ + } +#else + reg_val = qdma_read_reg((uint64_t)fmap); + PMD_DRV_LOG(INFO, "Fmap for function id %d reg_val:0x%lx," + " qid_max:%lu\n", devfn, reg_val, + ((reg_val & QID_MAX_MSK) >> QID_MAX_SHIFT_B)); +#endif +#endif + return 0; + +#if FMAP_CNTXT +fail: + return -1; +#endif +} +uint8_t qmda_get_desc_sz_idx(enum bypass_desc_len size) +{ + uint8_t ret; + switch (size) { + case BYPASS_DESC_LEN_8B: + ret = 0; + break; + case BYPASS_DESC_LEN_16B: + ret = 1; + break; + case BYPASS_DESC_LEN_32B: + ret = 2; + break; + case BYPASS_DESC_LEN_64B: + ret = 3; + break; + default: + /* Suppress compiler warnings*/ + ret = 0; + } + return ret; +} + +/** + * DPDK callback to configure a RX queue. + * + * @param dev + * Pointer to Ethernet device structure. + * @param rx_queue_id + * RX queue index. + * @param nb_rx_desc + * Number of descriptors to configure in queue. + * @param socket_id + * NUMA socket on which memory must be allocated. + * @param[in] rx_conf + * Thresholds parameters. + * @param mp_pool + * Memory pool for buffer allocations. + * + * @return + * 0 on success, negative errno value on failure. + */ +int qdma_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t rx_queue_id, + uint16_t nb_rx_desc, unsigned int socket_id, + const struct rte_eth_rxconf *rx_conf, + struct rte_mempool *mb_pool) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_rx_queue *rxq; + struct qdma_mm_desc *rx_ring_mm; + uint64_t dma_bar; + uint32_t sz; + uint8_t *rx_ring_bypass; + int bypass_desc_sz_idx; + + PMD_DRV_LOG(INFO, "Configuring Rx queue id:%d\n", rx_queue_id); + + if (nb_rx_desc == 0) { + PMD_DRV_LOG(ERR, "Invalid descriptor ring size %d\n", + nb_rx_desc); + return -EINVAL; + } + + /* allocate rx queue data structure */ + rxq = rte_zmalloc("QDMA_RxQ", sizeof(struct qdma_rx_queue), + RTE_CACHE_LINE_SIZE); + if (!rxq) { + PMD_DRV_LOG(ERR, "Unable to allocate structure rxq of " + "size %d\n", + (int)(sizeof(struct qdma_rx_queue))); + return (-ENOMEM); + } + + dma_bar = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + rxq->st_mode = qdma_dev->q_info[rx_queue_id].queue_mode; + rxq->nb_rx_desc = nb_rx_desc; + rxq->bypass_desc_sz = qdma_dev->q_info[rx_queue_id].rx_bypass_desc_sz; + bypass_desc_sz_idx = qmda_get_desc_sz_idx(rxq->bypass_desc_sz); + + if (qdma_dev->q_info[rx_queue_id].rx_bypass_mode == + C2H_BYPASS_MODE_CACHE || + qdma_dev->q_info[rx_queue_id].rx_bypass_mode == + C2H_BYPASS_MODE_SIMPLE) + rxq->en_bypass = 1; + if (qdma_dev->q_info[rx_queue_id].rx_bypass_mode == + C2H_BYPASS_MODE_SIMPLE) + rxq->en_bypass_prefetch = 1; + + /* <= 2018.2 IP + * double the cmpl ring size to avoid run out of cmpl entry while + * desc. ring still have free entries + */ + rxq->nb_rx_cmpt_desc = (nb_rx_desc * 2); + rxq->en_prefetch = qdma_dev->en_desc_prefetch; + rxq->cmpt_desc_len = qdma_dev->q_info[rx_queue_id].cmpt_desc_sz; + + /* Disable the cmpt over flow check by default + * Applcation can test enable/disable via update param before + * queue_start is issued + */ + rxq->dis_overflow_check = 0; + + /* allocate memory for Rx descriptor ring */ + if (rxq->st_mode) { + if (!qdma_dev->st_mode_en) { + PMD_DRV_LOG(ERR, "Streaming mode not enabled " + "in the hardware\n"); + rte_free(rxq); + return -EINVAL; + } + + if (rxq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) + sz = (rxq->nb_rx_desc) * (rxq->bypass_desc_sz); + else + sz = (rxq->nb_rx_desc) * sizeof(struct qdma_c2h_desc); + + rxq->rx_mz = qdma_zone_reserve(dev, "RxHwRn", rx_queue_id, + sz, socket_id); + if (!rxq->rx_mz) { + PMD_DRV_LOG(ERR, "Unable to allocate rxq->rx_mz " + "of size %d\n", sz); + rte_free(rxq); + return -ENOMEM; + } + rxq->rx_ring = rxq->rx_mz->addr; + } else { + if (!qdma_dev->mm_mode_en) { + PMD_DRV_LOG(ERR, "Memory mapped mode not enabled " + "in the hardware\n"); + rte_free(rxq); + return -EINVAL; + } + if (rxq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) + sz = (rxq->nb_rx_desc) * (rxq->bypass_desc_sz); + else + sz = (rxq->nb_rx_desc) * sizeof(struct qdma_mm_desc); + rxq->rx_mz = qdma_zone_reserve(dev, "RxHwRn", + rx_queue_id, sz, socket_id); + if (!rxq->rx_mz) { + PMD_DRV_LOG(ERR, "Unable to allocate rxq->rx_mz " + "of size %d\n", sz); + rte_free(rxq); + return -ENOMEM; + } + rxq->rx_ring = rxq->rx_mz->addr; + rx_ring_mm = (struct qdma_mm_desc *)rxq->rx_mz->addr; + rx_ring_bypass = (uint8_t *)rxq->rx_mz->addr; + if (rxq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) + rxq->wb_status = (struct wb_status *)& + (rx_ring_bypass[(rxq->nb_rx_desc - 1) * + (rxq->bypass_desc_sz)]); + else + rxq->wb_status = (struct wb_status *)& + (rx_ring_mm[rxq->nb_rx_desc - 1]); + } + + if (rxq->st_mode) { + /* allocate memory for Rx completion(cpmt) descriptor ring */ + sz = (rxq->nb_rx_cmpt_desc) * rxq->cmpt_desc_len; + rxq->rx_cmpt_mz = qdma_zone_reserve(dev, "RxHwCmptRn", + rx_queue_id, sz, socket_id); + if (!rxq->rx_cmpt_mz) { + PMD_DRV_LOG(ERR, "Unable to allocate rxq->rx_cmpt_mz " + "of size %d\n", sz); + rte_memzone_free(rxq->rx_mz); + rte_free(rxq); + return -ENOMEM; + } + rxq->cmpt_ring = (struct c2h_cmpt_ring *)rxq->rx_cmpt_mz->addr; + + /* Write-back status structure */ + rxq->wb_status = (struct wb_status *)((uint64_t)rxq->cmpt_ring + + (((uint64_t)rxq->nb_rx_cmpt_desc - 1) * + rxq->cmpt_desc_len)); + + if (!qdma_dev->is_vf) { + rxq->rx_cidx = (volatile uint32_t *)(dma_bar + + QDMA_TRQ_SEL_QUEUE_PF + + QDMA_SEL_CMPT_CIDX_Q_OFF + + (rx_queue_id * QDMA_CIDX_STEP)); + } else { + rxq->rx_cidx = (volatile uint32_t *)(dma_bar + + QDMA_TRQ_SEL_QUEUE_VF + + QDMA_SEL_CMPT_CIDX_Q_OFF + + (rx_queue_id * QDMA_CIDX_STEP)); + } + } + + /* allocate memory for RX software ring */ + sz = rxq->nb_rx_desc * sizeof(struct rte_mbuf *); + rxq->sw_ring = rte_zmalloc("RxSwRn", sz, RTE_CACHE_LINE_SIZE); + if (!rxq->sw_ring) { + PMD_DRV_LOG(ERR, "Unable to allocate rxq->sw_ring of size %d\n", + sz); + rte_memzone_free(rxq->rx_mz); + rte_free(rxq); + return -ENOMEM; + } + + rxq->queue_id = rx_queue_id; + + rxq->port_id = dev->data->port_id; + rxq->func_id = qdma_dev->pf; + rxq->mb_pool = mb_pool; + + /* Calculate the ring index, completion queue ring size, + * buffer index and threshold index. + * If index is not found , by default use the index as 0 + */ + + /* Find C2H queue ring size index */ + rxq->ringszidx = index_of_array(g_ring_sz, QDMA_GLOBAL_CSR_ARRAY_SZ, + rxq->nb_rx_desc); + if (rxq->ringszidx < 0) { + PMD_DRV_LOG(ERR, "Expected Ring size %d not found\n", + rxq->nb_rx_desc); + rte_memzone_free(rxq->rx_mz); + rte_free(rxq->sw_ring); + rte_free(rxq); + return -EINVAL; + } + + /* Find completion ring size index */ + rxq->cmpt_ringszidx = index_of_array(g_ring_sz, + QDMA_GLOBAL_CSR_ARRAY_SZ, + rxq->nb_rx_cmpt_desc); + if (rxq->cmpt_ringszidx < 0) { + PMD_DRV_LOG(ERR, "Expected completion ring size %d not found\n", + rxq->nb_rx_cmpt_desc); + rte_memzone_free(rxq->rx_mz); + rte_free(rxq->sw_ring); + rte_free(rxq); + return -EINVAL; + } + + /* Find Threshold index */ + rxq->threshidx = index_of_array(g_c2h_cnt_th, QDMA_GLOBAL_CSR_ARRAY_SZ, + rx_conf->rx_thresh.wthresh); + if (rxq->threshidx < 0) { + PMD_DRV_LOG(WARNING, "Expected Threshold %d not found," + " using the value %d at index 0\n", + rx_conf->rx_thresh.wthresh, g_c2h_cnt_th[0]); + rxq->threshidx = 0; + } + + /* Find Timer index */ + rxq->timeridx = index_of_array(g_c2h_timer_cnt, + QDMA_GLOBAL_CSR_ARRAY_SZ, + qdma_dev->timer_count); + if (rxq->timeridx < 0) { + PMD_DRV_LOG(WARNING, "Expected timer %d not found, " + "using the value %d at index 1\n", + qdma_dev->timer_count, g_c2h_timer_cnt[1]); + rxq->timeridx = 1; + } + + /* Find Buffer size index */ + rxq->rx_buff_size = (uint16_t) + (rte_pktmbuf_data_room_size(rxq->mb_pool) - + RTE_PKTMBUF_HEADROOM); + rxq->buffszidx = index_of_array(g_c2h_buf_sz, QDMA_GLOBAL_CSR_ARRAY_SZ, + rxq->rx_buff_size); + if (rxq->buffszidx < 0) { + PMD_DRV_LOG(ERR, "Expected buffer size %d not found\n", + rxq->rx_buff_size); + rte_memzone_free(rxq->rx_mz); + rte_free(rxq->sw_ring); + rte_free(rxq); + return -EINVAL; + } + + rxq->triggermode = qdma_dev->trigger_mode; + rxq->rx_deferred_start = rx_conf->rx_deferred_start; + + if (!qdma_dev->is_vf) { + rxq->rx_pidx = (volatile uint32_t *)(dma_bar + + QDMA_TRQ_SEL_QUEUE_PF + + QDMA_C2H_PIDX_Q_OFF + + (rx_queue_id * + QDMA_PIDX_STEP)); + } else { + rxq->rx_pidx = (volatile uint32_t *)(dma_bar + + QDMA_TRQ_SEL_QUEUE_VF + + QDMA_C2H_PIDX_Q_OFF + + (rx_queue_id * + QDMA_PIDX_STEP)); + } + + /* store rx_pkt_burst function pointer */ + dev->rx_pkt_burst = qdma_recv_pkts; + + dev->data->rx_queues[rx_queue_id] = rxq; + + return 0; +} + +/** + * DPDK callback to configure a TX queue. + * + * @param dev + * Pointer to Ethernet device structure. + * @param tx_queue_id + * TX queue index. + * @param nb_tx_desc + * Number of descriptors to configure in queue. + * @param socket_id + * NUMA socket on which memory must be allocated. + * @param[in] tx_conf + * Thresholds parameters. + * + * @return + * 0 on success, negative errno value on failure. + */ +int qdma_dev_tx_queue_setup(struct rte_eth_dev *dev, uint16_t tx_queue_id, + uint16_t nb_tx_desc, unsigned int socket_id, + const struct rte_eth_txconf *tx_conf) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_tx_queue *txq; + struct qdma_mm_desc *tx_ring_mm; + struct qdma_h2c_desc *tx_ring_st; + uint8_t *tx_ring_bypass; + uint64_t dma_bar; + uint32_t sz; + int bypass_desc_sz_idx; + + PMD_DRV_LOG(INFO, "Configuring Tx queue id:%d\n", tx_queue_id); + + /* allocate rx queue data structure */ + txq = rte_zmalloc("QDMA_TxQ", sizeof(struct qdma_tx_queue), + RTE_CACHE_LINE_SIZE); + if (!txq) { + PMD_DRV_LOG(ERR, "Memory allocation failed for " + "Tx queue SW structure\n"); + return (-ENOMEM); + } + + dma_bar = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + txq->st_mode = qdma_dev->q_info[tx_queue_id].queue_mode; + txq->en_bypass = (qdma_dev->q_info[tx_queue_id].tx_bypass_mode) ? 1 : 0; + txq->bypass_desc_sz = qdma_dev->q_info[tx_queue_id].tx_bypass_desc_sz; + bypass_desc_sz_idx = qmda_get_desc_sz_idx(txq->bypass_desc_sz); + + /* allocate memory for TX descriptor ring */ + if (txq->st_mode) { + if (!qdma_dev->st_mode_en) { + PMD_DRV_LOG(ERR, "Streaming mode not enabled " + "in the hardware\n"); + rte_free(txq); + return -EINVAL; + } + if (txq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) + sz = (nb_tx_desc) * (txq->bypass_desc_sz); + else + sz = (nb_tx_desc) * sizeof(struct qdma_h2c_desc); + txq->tx_mz = qdma_zone_reserve(dev, "TxHwRn", tx_queue_id, sz, + socket_id); + if (!txq->tx_mz) { + PMD_DRV_LOG(ERR, "Couldn't reserve memory for " + "ST H2C ring of size %d\n", sz); + rte_free(txq); + return -ENOMEM; + } + + txq->tx_ring = txq->tx_mz->addr; + tx_ring_st = (struct qdma_h2c_desc *)txq->tx_ring; + tx_ring_bypass = (uint8_t *)txq->tx_ring; + /* Write-back status structure */ + if (txq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) + txq->wb_status = (struct wb_status *)& + tx_ring_bypass[(nb_tx_desc - 1) * + (txq->bypass_desc_sz)]; + else + txq->wb_status = (struct wb_status *)& + tx_ring_st[nb_tx_desc - 1]; + } else { + if (!qdma_dev->mm_mode_en) { + PMD_DRV_LOG(ERR, "Memory mapped mode not " + "enabled in the hardware\n"); + rte_free(txq); + return -EINVAL; + } + + if (txq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) + sz = (nb_tx_desc) * (txq->bypass_desc_sz); + else + sz = (nb_tx_desc) * sizeof(struct qdma_mm_desc); + txq->tx_mz = qdma_zone_reserve(dev, "TxHwRn", tx_queue_id, + sz, socket_id); + if (!txq->tx_mz) { + PMD_DRV_LOG(ERR, "Couldn't reserve memory for " + "MM H2C ring of size %d\n", sz); + rte_free(txq); + return -ENOMEM; + } + + txq->tx_ring = txq->tx_mz->addr; + tx_ring_mm = (struct qdma_mm_desc *)txq->tx_ring; + tx_ring_bypass = (uint8_t *)txq->tx_ring; + + /* Write-back status structure */ + if (txq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA) + txq->wb_status = (struct wb_status *)& + tx_ring_bypass[(nb_tx_desc - 1) * + (txq->bypass_desc_sz)]; + else + txq->wb_status = (struct wb_status *)& + tx_ring_mm[nb_tx_desc - 1]; + } + + PMD_DRV_LOG(INFO, "Tx ring phys addr: 0x%lX, Tx Ring virt addr: 0x%lX", + (uint64_t)txq->tx_mz->phys_addr, (uint64_t)txq->tx_ring); + + /* allocate memory for TX software ring */ + sz = nb_tx_desc * sizeof(struct rte_mbuf *); + txq->sw_ring = rte_zmalloc("TxSwRn", sz, RTE_CACHE_LINE_SIZE); + if (!txq->sw_ring) { + PMD_DRV_LOG(ERR, "Memory allocation failed for Tx queue SW ring\n"); + rte_memzone_free(txq->tx_mz); + rte_free(txq); + return -ENOMEM; + } + + txq->nb_tx_desc = nb_tx_desc; + txq->queue_id = tx_queue_id; + + txq->port_id = dev->data->port_id; + txq->func_id = qdma_dev->pf; + txq->num_queues = dev->data->nb_tx_queues; + + txq->ringszidx = index_of_array(g_ring_sz, QDMA_GLOBAL_CSR_ARRAY_SZ, + txq->nb_tx_desc); + + if (txq->ringszidx < 0) { + PMD_DRV_LOG(ERR, "Expected Ring size %d not found\n", + txq->nb_tx_desc); + rte_memzone_free(txq->tx_mz); + rte_free(txq->sw_ring); + rte_free(txq); + return -EINVAL; + } + + txq->tx_deferred_start = tx_conf->tx_deferred_start; + + if (!qdma_dev->is_vf) { + txq->tx_pidx = (volatile uint32_t *)(dma_bar + + QDMA_TRQ_SEL_QUEUE_PF + + QDMA_H2C_PIDX_Q_OFF + + (tx_queue_id * 0x10)); + } else { + txq->tx_pidx = (volatile uint32_t *)(dma_bar + + QDMA_TRQ_SEL_QUEUE_VF + + QDMA_H2C_PIDX_Q_OFF + + (tx_queue_id * 0x10)); + } + rte_spinlock_init(&txq->pidx_update_lock); + /* store tx_pkt_burst function pointer */ + dev->tx_pkt_burst = qdma_xmit_pkts; + + dev->data->tx_queues[tx_queue_id] = txq; + + return 0; +} + +#if (MIN_TX_PIDX_UPDATE_THRESHOLD > 1) +void qdma_txq_pidx_update(void *arg) +{ + struct rte_eth_dev *dev = (struct rte_eth_dev *)arg; + struct qdma_tx_queue *txq; + uint32_t qid; + + for (qid = 0; qid < dev->data->nb_tx_queues; qid++) { + txq = (struct qdma_tx_queue *)dev->data->tx_queues[qid]; + if (txq->tx_desc_pend) { + rte_spinlock_lock(&txq->pidx_update_lock); + if (txq->tx_desc_pend) { + *txq->tx_pidx = txq->tx_tail; + txq->tx_desc_pend = 0; + } + rte_spinlock_unlock(&txq->pidx_update_lock); + } + } + rte_eal_alarm_set(QDMA_TXQ_PIDX_UPDATE_INTERVAL, + qdma_txq_pidx_update, (void *)arg); +} +#endif + + + +void qdma_dev_tx_queue_release(void *tqueue) +{ + struct qdma_tx_queue *txq = (struct qdma_tx_queue *)tqueue; + + if (txq) { + PMD_DRV_LOG(INFO, "Remove H2C queue: %d", txq->queue_id); + + if (txq->sw_ring) + rte_free(txq->sw_ring); + if (txq->tx_mz) + rte_memzone_free(txq->tx_mz); + rte_free(txq); + PMD_DRV_LOG(INFO, "H2C queue %d removed", txq->queue_id); + } +} + +void qdma_dev_rx_queue_release(void *rqueue) +{ + struct qdma_rx_queue *rxq = (struct qdma_rx_queue *)rqueue; + + if (rxq) { + PMD_DRV_LOG(INFO, "Remove C2H queue: %d", rxq->queue_id); + + if (rxq->sw_ring) + rte_free(rxq->sw_ring); + if (rxq->st_mode) { /** if ST-mode **/ + if (rxq->rx_cmpt_mz) + rte_memzone_free(rxq->rx_cmpt_mz); + } + if (rxq->rx_mz) + rte_memzone_free(rxq->rx_mz); + rte_free(rxq); + PMD_DRV_LOG(INFO, "C2H queue %d removed", rxq->queue_id); + } +} + +/** + * DPDK callback to start the device. + * + * Start the device by configuring the Rx/Tx descriptor and device registers. + * + * @param dev + * Pointer to Ethernet device structure. + * + * @return + * 0 on success, negative errno value on failure. + */ +static int qdma_dev_start(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_tx_queue *txq; + struct qdma_rx_queue *rxq; + uint32_t qid; + int err; + + PMD_DRV_LOG(INFO, "qdma-dev-start: Starting\n"); + + /* prepare descriptor rings for operation */ + for (qid = 0; qid < dev->data->nb_tx_queues; qid++) { + txq = (struct qdma_tx_queue *)dev->data->tx_queues[qid]; + + /*Deferred Queues should not start with dev_start*/ + if (!txq->tx_deferred_start) { + err = qdma_dev_tx_queue_start(dev, qid); + if (err != 0) + return err; + } + } + + for (qid = 0; qid < dev->data->nb_rx_queues; qid++) { + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + + /*Deferred Queues should not start with dev_start*/ + if (!rxq->rx_deferred_start) { + err = qdma_dev_rx_queue_start(dev, qid); + if (err != 0) + return err; + } + } + + /* Start Tx h2c engine */ + *qdma_dev->h2c_mm_control = QDMA_MM_CTRL_START; + + /* Start Rx c2h engine */ + *qdma_dev->c2h_mm_control = QDMA_MM_CTRL_START; +#if (MIN_TX_PIDX_UPDATE_THRESHOLD > 1) + rte_eal_alarm_set(QDMA_TXQ_PIDX_UPDATE_INTERVAL, + qdma_txq_pidx_update, (void *)dev); +#endif + return 0; +} + +/** + * DPDK callback to retrieve the physical link information. + * + * @param dev + * Pointer to Ethernet device structure. + * @param wait_to_complete + * wait_to_complete field is ignored. + */ +static int qdma_dev_link_update(struct rte_eth_dev *dev, + __rte_unused int wait_to_complete) +{ + dev->data->dev_link.link_status = ETH_LINK_UP; + dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX; + dev->data->dev_link.link_speed = ETH_SPEED_NUM_100G; + PMD_DRV_LOG(INFO, "Link update done\n"); + return 0; +} + + +/** + * DPDK callback to get information about the device. + * + * @param dev + * Pointer to Ethernet device structure. + * @param[out] dev_info + * Device information structure output buffer. + */ +static void qdma_dev_infos_get(__rte_unused struct rte_eth_dev *dev, + struct rte_eth_dev_info *dev_info) +{ + //struct qdma_pci_dev *xdev = dev->data->dev_private; + +// xdev->magic = MAGIC_DEVICE; + dev_info->max_rx_queues = QDMA_QUEUES_NUM_MAX; + dev_info->max_tx_queues = QDMA_QUEUES_NUM_MAX; + dev_info->min_rx_bufsize = QDMA_MIN_RXBUFF_SIZE; + dev_info->max_rx_pktlen = DMA_BRAM_SIZE; + dev_info->max_mac_addrs = 1; +} +/** + * DPDK callback to stop the device. + * + * Stop the device by clearing all configured Rx/Tx queue + * descriptors and registers. + * + * @param dev + * Pointer to Ethernet device structure. + */ +static void qdma_dev_stop(struct rte_eth_dev *dev) +{ +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; +#endif + uint32_t qid; + + /* reset driver's internal queue structures to default values */ + PMD_DRV_LOG(INFO, "PF-%d(DEVFN) Stop H2C & C2H queues", qdma_dev->pf); + for (qid = 0; qid < dev->data->nb_tx_queues; qid++) + qdma_dev_tx_queue_stop(dev, qid); + for (qid = 0; qid < dev->data->nb_rx_queues; qid++) + qdma_dev_rx_queue_stop(dev, qid); +} + +/** + * DPDK callback to close the device. + * + * Destroy all queues and objects, free memory. + * + * @param dev + * Pointer to Ethernet device structure. + */ +static void qdma_dev_close(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_tx_queue *txq; + struct qdma_rx_queue *rxq; + uint64_t bar_addr; +#if FMAP_CNTXT + uint32_t ctxt_sel, reg_val; + uint32_t i, flag; + struct queue_ind_prg *q_regs; +#else + uint64_t reg_addr; +#endif + uint32_t qid; + + PMD_DRV_LOG(INFO, "PF-%d(DEVFN) DEV Close\n", qdma_dev->pf); + +#if (MIN_TX_PIDX_UPDATE_THRESHOLD > 1) + /* Cancel pending PIDX updates */ + rte_eal_alarm_cancel(qdma_txq_pidx_update, (void *)dev); +#endif + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; +#if FMAP_CNTXT + q_regs = (struct queue_ind_prg *)(bar_addr + QDMA_TRQ_SEL_IND + + QDMA_IND_Q_PRG_OFF); + ctxt_sel = (QDMA_CTXT_SEL_FMAP << CTXT_SEL_SHIFT_B) | (qdma_dev->pf << + QID_SHIFT_B) | + (QDMA_CTXT_CMD_CLR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, " Read cmd for device:%d: reg_val:%x\n", + qdma_dev->pf, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } +#else + reg_addr = (uint64_t)(bar_addr + QDMA_TRQ_SEL_FMAP + qdma_dev->pf * 4); + qdma_write_reg((uint64_t)reg_addr, 0x0); +#endif + /* iterate over rx queues */ + for (qid = 0; qid < dev->data->nb_rx_queues; ++qid) { + rxq = dev->data->rx_queues[qid]; + if (rxq) { + PMD_DRV_LOG(INFO, "Remove C2H queue: %d", qid); + + if (rxq->sw_ring) + rte_free(rxq->sw_ring); + if (rxq->st_mode) { /** if ST-mode **/ + if (rxq->rx_cmpt_mz) + rte_memzone_free(rxq->rx_cmpt_mz); + } + if (rxq->rx_mz) + rte_memzone_free(rxq->rx_mz); + rte_free(rxq); + PMD_DRV_LOG(INFO, "C2H queue %d removed", qid); + } + } + /* iterate over tx queues */ + for (qid = 0; qid < dev->data->nb_tx_queues; ++qid) { + txq = dev->data->tx_queues[qid]; + if (txq) { + PMD_DRV_LOG(INFO, "Remove H2C queue: %d", qid); + + if (txq->sw_ring) + rte_free(txq->sw_ring); + if (txq->tx_mz) + rte_memzone_free(txq->tx_mz); + rte_free(txq); + PMD_DRV_LOG(INFO, "H2C queue %d removed", qid); + } + } +} + + +/** + * DPDK callback for Ethernet device configuration. + * + * @param dev + * Pointer to Ethernet device structure. + * + * @return + * 0 on success, negative errno value on failure. + */ +static int qdma_dev_configure(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + uint16_t qid = 0; + int ret = 0; + + PMD_DRV_LOG(INFO, "Configure the qdma engines\n"); + + qdma_dev->qsets_en = RTE_MAX(dev->data->nb_rx_queues, + dev->data->nb_tx_queues); + if ((qdma_dev->queue_base + qdma_dev->qsets_en) > qdma_dev->qsets_max) { + PMD_DRV_LOG(ERR, "PF-%d(DEVFN) Error: Number of Queues to be" + " configured are greater than the queues" + " supported by the hardware\n", qdma_dev->pf); + qdma_dev->qsets_en = 0; + return -1; + } + + qdma_dev->q_info = rte_zmalloc("qinfo", sizeof(struct queue_info) * + (qdma_dev->qsets_en), 0); + if (!qdma_dev->q_info) { + PMD_DRV_LOG(ERR, "PF-%d(DEVFN) Cannot allocate " + "memory for queue info\n", qdma_dev->pf); + return (-ENOMEM); + } + + /* Initialize queue_modes to all 1's ( i.e. Streaming) */ + for (qid = 0 ; qid < qdma_dev->qsets_en; qid++) + qdma_dev->q_info[qid].queue_mode = STREAMING_MODE; + + for (qid = 0 ; qid < dev->data->nb_rx_queues; qid++) { + qdma_dev->q_info[qid].cmpt_desc_sz = qdma_dev->cmpt_desc_len; + qdma_dev->q_info[qid].rx_bypass_mode = + qdma_dev->c2h_bypass_mode; + } + + for (qid = 0 ; qid < dev->data->nb_tx_queues; qid++) + qdma_dev->q_info[qid].tx_bypass_mode = + qdma_dev->h2c_bypass_mode; + + PMD_DRV_LOG(INFO, "PF-%d(DEVFN) qdma-dev-configure:\n", qdma_dev->pf); + + /** FMAP configuration **/ + ret = qdma_set_fmap(qdma_dev, qdma_dev->pf, qdma_dev->queue_base, + qdma_dev->qsets_en); + if (ret < 0) { + rte_free(qdma_dev->q_info); + return -1; + } + + /* Start Tx h2c engine */ + *qdma_dev->h2c_mm_control = QDMA_MM_CTRL_START; + /* Start Rx c2h engine */ + *qdma_dev->c2h_mm_control = QDMA_MM_CTRL_START; + + return 0; +} + +int qdma_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t qid) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_tx_queue *txq; + uint64_t phys_addr; + uint32_t queue_base = qdma_dev->queue_base; + int err, bypass_desc_sz_idx; + + txq = (struct qdma_tx_queue *)dev->data->tx_queues[qid]; + bypass_desc_sz_idx = qmda_get_desc_sz_idx(txq->bypass_desc_sz); + + qdma_reset_tx_queue(txq); + qdma_reset_tx_queues(dev, (qid + queue_base), txq->st_mode); + + rte_delay_ms(PF_START_DELAY); + + phys_addr = (uint64_t)txq->tx_mz->phys_addr; + + PMD_DRV_LOG(INFO, "PF-%d(DEVFN) Phys-addr for H2C queue-id:%d: " + "is Lo:0x%lx, Hi:0x%lx\n", qdma_dev->pf, qid, + rte_cpu_to_le_32(phys_addr & MASK_32BIT), + rte_cpu_to_le_32(phys_addr >> 32)); + + err = qdma_queue_ctxt_tx_prog(dev, (qid + queue_base), txq->st_mode, + txq->ringszidx, txq->func_id, phys_addr, + txq->en_bypass, bypass_desc_sz_idx); + if (err != 0) + return err; + qdma_start_tx_queue(txq); + + dev->data->tx_queue_state[qid] = RTE_ETH_QUEUE_STATE_STARTED; + txq->status = RTE_ETH_QUEUE_STATE_STARTED; + return 0; +} + + +int qdma_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t qid) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_rx_queue *rxq; + uint64_t phys_addr, cmpt_phys_addr; + uint32_t queue_base = qdma_dev->queue_base; + uint8_t en_pfetch; + uint8_t cmpt_desc_fmt; + int err, bypass_desc_sz_idx; + + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + qdma_reset_rx_queue(rxq); + qdma_reset_rx_queues(dev, (qid + queue_base), rxq->st_mode); + bypass_desc_sz_idx = qmda_get_desc_sz_idx(rxq->bypass_desc_sz); + + rte_delay_ms(1); + en_pfetch = (rxq->en_prefetch) ? 1 : 0; + phys_addr = (uint64_t)rxq->rx_mz->phys_addr; + + switch (rxq->cmpt_desc_len) { + case CMPT_DESC_LEN_8B: + cmpt_desc_fmt = CMPT_CNTXT_DESC_SIZE_8B; + break; + case CMPT_DESC_LEN_16B: + cmpt_desc_fmt = CMPT_CNTXT_DESC_SIZE_16B; + break; + case CMPT_DESC_LEN_32B: + cmpt_desc_fmt = CMPT_CNTXT_DESC_SIZE_32B; + break; + case CMPT_DESC_LEN_64B: + cmpt_desc_fmt = CMPT_CNTXT_DESC_SIZE_64B; + break; + default: + cmpt_desc_fmt = CMPT_CNTXT_DESC_SIZE_8B; + break; + } + + PMD_DRV_LOG(INFO, "PF-%d(DEVFN) Phys-addr for C2H queue-id:%d: " + "is Lo:0x%lx, Hi:0x%lx\n", + qdma_dev->pf, qid, + rte_cpu_to_le_32(phys_addr & MASK_32BIT), + rte_cpu_to_le_32(phys_addr >> 32)); + + if (rxq->st_mode) + cmpt_phys_addr = (uint64_t)rxq->rx_cmpt_mz->phys_addr; + else + cmpt_phys_addr = 0; + + PMD_DRV_LOG(INFO, "PF-%d(DEVFN) C2H Completion Phys-addr for " + "queue-id:%d: is Lo:0x%lx, Hi:0x%lx\n", + qdma_dev->pf, qid, + rte_cpu_to_le_32(cmpt_phys_addr & MASK_32BIT), + rte_cpu_to_le_32(cmpt_phys_addr >> 32)); + + err = qdma_start_rx_queue(rxq); + if (err != 0) + return err; + err = qdma_queue_ctxt_rx_prog(dev, (qid + queue_base), rxq->st_mode, + en_pfetch, rxq->ringszidx, + rxq->cmpt_ringszidx, rxq->buffszidx, + rxq->threshidx, rxq->timeridx, + rxq->triggermode, rxq->func_id, + phys_addr, cmpt_phys_addr, + cmpt_desc_fmt, rxq->en_bypass, + rxq->en_bypass_prefetch, + bypass_desc_sz_idx, + rxq->dis_overflow_check); + if (err != 0) + return err; + + if (rxq->st_mode) { + rte_wmb(); + /* enable status desc , loading the triggermode, + * thresidx and timeridx passed from the user + */ + *rxq->rx_cidx = (CMPT_STATUS_DESC_EN << + CMPT_STATUS_DESC_EN_SHIFT) | + (rxq->triggermode << CMPT_TRIGGER_MODE_SHIFT) | + (rxq->threshidx << CMPT_THREHOLD_CNT_SHIFT) | + (rxq->timeridx << CMPT_TIMER_CNT_SHIFT); + *rxq->rx_pidx = (rxq->nb_rx_desc - 2); + } + + dev->data->rx_queue_state[qid] = RTE_ETH_QUEUE_STATE_STARTED; + rxq->status = RTE_ETH_QUEUE_STATE_STARTED; + return 0; +} + +int qdma_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t qid) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_rx_queue *rxq; + uint32_t queue_base = qdma_dev->queue_base; + int i = 0; + int cnt = 0; + + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + + rxq->status = RTE_ETH_QUEUE_STATE_STOPPED; + + /* Wait for queue to recv all packets. */ + if (rxq->st_mode) { /** ST-mode **/ + while (rxq->wb_status->pidx != rxq->rx_cmpt_tail) { + usleep(10); + if (cnt++ > 10000) + break; + } + } else { /* MM mode */ + while (rxq->wb_status->cidx != rxq->rx_tail) { + usleep(10); + if (cnt++ > 10000) + break; + } + } + + qdma_inv_rx_queues(dev, (qid + queue_base), rxq->st_mode); + qdma_reset_rx_queues(dev, (qid + queue_base), rxq->st_mode); + + if (rxq->st_mode) { /** ST-mode **/ +#ifdef DUMP_MEMPOOL_USAGE_STATS + PMD_DRV_LOG(INFO, "%s(): %d: queue id %d," + "mbuf_avail_count = %d, mbuf_in_use_count = %d", + __func__, __LINE__, rxq->queue_id, + rte_mempool_avail_count(rxq->mb_pool), + rte_mempool_in_use_count(rxq->mb_pool)); +#endif //DUMP_MEMPOOL_USAGE_STATS + for (i = 0; i < rxq->nb_rx_desc - 1; i++) { + rte_pktmbuf_free(rxq->sw_ring[i]); + rxq->sw_ring[i] = NULL; + } +#ifdef DUMP_MEMPOOL_USAGE_STATS + PMD_DRV_LOG(INFO, "%s(): %d: queue id %d," + "mbuf_avail_count = %d, mbuf_in_use_count = %d", + __func__, __LINE__, rxq->queue_id, + rte_mempool_avail_count(rxq->mb_pool), + rte_mempool_in_use_count(rxq->mb_pool)); +#endif //DUMP_MEMPOOL_USAGE_STATS + } + + qdma_reset_rx_queue(rxq); + + dev->data->rx_queue_state[qid] = RTE_ETH_QUEUE_STATE_STOPPED; + + return 0; +} + +int qdma_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t qid) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + uint32_t queue_base = qdma_dev->queue_base; + struct qdma_tx_queue *txq; + int cnt = 0; + uint16_t count; + + txq = (struct qdma_tx_queue *)dev->data->tx_queues[qid]; + + txq->status = RTE_ETH_QUEUE_STATE_STOPPED; + /* Wait for TXQ to send out all packets. */ + while (txq->wb_status->cidx != txq->tx_tail) { + usleep(10); + if (cnt++ > 10000) + break; + } + + qdma_inv_tx_queues(dev, (qid + queue_base), txq->st_mode); + qdma_reset_tx_queues(dev, (qid + queue_base), txq->st_mode); + + /* Relinquish pending mbufs */ + for (count = 0; count < txq->nb_tx_desc - 1; count++) { + rte_pktmbuf_free(txq->sw_ring[count]); + txq->sw_ring[count] = NULL; + } + qdma_reset_tx_queue(txq); + + dev->data->tx_queue_state[qid] = RTE_ETH_QUEUE_STATE_STOPPED; + + return 0; +} + +static int qdma_dev_stats_get(struct rte_eth_dev *dev, + struct rte_eth_stats *eth_stats) +{ + unsigned int i; + + eth_stats->opackets = 0; + eth_stats->obytes = 0; + eth_stats->ipackets = 0; + eth_stats->ibytes = 0; + + for (i = 0; i < dev->data->nb_rx_queues; i++) { + struct qdma_rx_queue *rxq = + (struct qdma_rx_queue *)dev->data->rx_queues[i]; + + eth_stats->q_ipackets[i] = rxq->stats.pkts; + eth_stats->q_ibytes[i] = rxq->stats.bytes; + eth_stats->ipackets += eth_stats->q_ipackets[i]; + eth_stats->ibytes += eth_stats->q_ibytes[i]; + } + + for (i = 0; i < dev->data->nb_tx_queues; i++) { + struct qdma_tx_queue *txq = + (struct qdma_tx_queue *)dev->data->tx_queues[i]; + + eth_stats->q_opackets[i] = txq->stats.pkts; + eth_stats->q_obytes[i] = txq->stats.bytes; + eth_stats->opackets += eth_stats->q_opackets[i]; + eth_stats->obytes += eth_stats->q_obytes[i]; + } + return 0; +} + +static struct eth_dev_ops qdma_eth_dev_ops = { + .dev_configure = qdma_dev_configure, + .dev_infos_get = qdma_dev_infos_get, + .dev_start = qdma_dev_start, + .dev_stop = qdma_dev_stop, + .dev_close = qdma_dev_close, + .link_update = qdma_dev_link_update, + .rx_queue_setup = qdma_dev_rx_queue_setup, + .tx_queue_setup = qdma_dev_tx_queue_setup, + .rx_queue_release = qdma_dev_rx_queue_release, + .tx_queue_release = qdma_dev_tx_queue_release, + .rx_queue_start = qdma_dev_rx_queue_start, + .rx_queue_stop = qdma_dev_rx_queue_stop, + .tx_queue_start = qdma_dev_tx_queue_start, + .tx_queue_stop = qdma_dev_tx_queue_stop, + .stats_get = qdma_dev_stats_get, +}; + +void qdma_dev_ops_init(struct rte_eth_dev *dev) +{ + dev->dev_ops = &qdma_eth_dev_ops; + if (rte_eal_process_type() == RTE_PROC_PRIMARY) { + dev->rx_pkt_burst = &qdma_recv_pkts; + dev->tx_pkt_burst = &qdma_xmit_pkts; + } +} diff --git a/QDMA/DPDK/drivers/net/qdma/qdma_ethdev.c b/QDMA/DPDK/drivers/net/qdma/qdma_ethdev.c new file mode 100644 index 0000000..2991194 --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/qdma_ethdev.c @@ -0,0 +1,966 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdint.h> +#include <stdbool.h> +#include <sys/mman.h> +#include <sys/fcntl.h> +#include <rte_memzone.h> +#include <rte_string_fns.h> +#include <rte_ethdev_pci.h> +#include <rte_malloc.h> +#include <rte_dev.h> +#include <rte_pci.h> +#include <rte_ether.h> +#include <rte_ethdev.h> +#include <rte_alarm.h> +#include <rte_cycles.h> +#include <unistd.h> +#include <string.h> + +#include "qdma.h" +#include "qdma_regs.h" +#include "version.h" + +static void qdma_device_attributes_get(struct qdma_pci_dev *qdma_dev); + +uint32_t g_ring_sz[QDMA_GLOBAL_CSR_ARRAY_SZ] = { +1024, 256, 512, 768, 1280, 1536, 2048, 2560, +3072, 4096, 5120, 6144, 8192, 1024, 1024, 1024 +}; + +uint32_t g_c2h_cnt_th[QDMA_GLOBAL_CSR_ARRAY_SZ] = { +64, 2, 4, 8, 12, 16, 24, 32, 40, 48, 96, 128, 192, 256, 384, 512 +}; + +uint32_t g_c2h_buf_sz[QDMA_GLOBAL_CSR_ARRAY_SZ] = { +4096, 256, 512, 1024, 2048, 8192, 9018, 16384, 3968, 4096, 4096, +4096, 4096, 4096, 4096, 4096 +}; + +uint32_t g_c2h_timer_cnt[QDMA_GLOBAL_CSR_ARRAY_SZ] = { +0, 1, 2, 3, 4, 5, 7, 8, 10, 12, 15, 20, 30, 50, 100, 200 +}; + +static int qdma_vf_hi(struct rte_eth_dev *dev, uint16_t vf_funid, + struct qdma_mbox_data *recv_msg) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + uint32_t qbase, qmax, i; + struct rte_pci_device *pci_dev; + int ret = 0; + uint64_t sz; + + PMD_DRV_LOG(INFO, "PF-%d received HI msg from VF global function-id %d", + PCI_FUNC(qdma_dev->pf), vf_funid); + pci_dev = RTE_ETH_DEV_TO_PCI(dev); + /* Mapping internal function id index to external function id */ + for (i = 0; i < pci_dev->max_vfs; i++) { + if (qdma_dev->vfinfo[i].func_id == QDMA_FUNC_ID_INVALID) { + qdma_dev->vfinfo[i].func_id = vf_funid; + break; + } + } + + if (i == pci_dev->max_vfs) { + PMD_DRV_LOG(INFO, "PF-%d failed to create function " + "id mapping VF- func_id%d", + PCI_FUNC(qdma_dev->pf), vf_funid); + return -1; + } + + PMD_DRV_LOG(INFO, "PF-%d received HI msg from VF internal " + "id %d global %d", PCI_FUNC(qdma_dev->pf), i, vf_funid); + + qbase = recv_msg->data[0]; + qdma_dev->vfinfo[i].qbase = recv_msg->data[0]; + qmax = recv_msg->data[1]; + qdma_dev->vfinfo[i].qmax = recv_msg->data[1]; + qdma_dev->vfinfo[i].func_id = vf_funid; + + sz = sizeof(struct qdma_vf_queue_info) * qmax; + qdma_dev->vfinfo[i].vfqinfo = rte_zmalloc("vfqinfo", sz, 0); + if (qdma_dev->vfinfo[i].vfqinfo == NULL) { + PMD_DRV_LOG(INFO, "cannot allocate memory for VF queue info"); + return -1; + } + + ret = qdma_set_fmap(qdma_dev, vf_funid, qbase, qmax); + if (ret < 0) { + rte_free(qdma_dev->vfinfo[i].vfqinfo); + return -1; + } + return 0; +} + +static int qdma_vf_bye(struct rte_eth_dev *dev, uint16_t vf, uint16_t vf_funid) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + uint64_t bar_addr; +#if FMAP_CNTXT + uint32_t ctxt_sel, reg_val; + uint32_t i, flag; + struct queue_ind_prg *q_regs; +#else + uint64_t fmap; +#endif + + PMD_DRV_LOG(INFO, "PF-%d received BYE msg from VF internal id %d, " + "global id %d", PCI_FUNC(qdma_dev->pf), vf, vf_funid); + + if (qdma_dev->vfinfo[vf].vfqinfo != NULL) + rte_free(qdma_dev->vfinfo[vf].vfqinfo); + + qdma_dev->vfinfo[vf].qbase = 0; + qdma_dev->vfinfo[vf].qmax = 0; + qdma_dev->vfinfo[vf].func_id = QDMA_FUNC_ID_INVALID; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; +#if FMAP_CNTXT + q_regs = (struct queue_ind_prg *)(bar_addr + QDMA_TRQ_SEL_IND + + QDMA_IND_Q_PRG_OFF); + + ctxt_sel = (QDMA_CTXT_SEL_FMAP << CTXT_SEL_SHIFT_B) | + (vf_funid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_CLR << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(INFO, " Read cmd for device:%d: reg_val:%x\n", + vf_funid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } +#else + + fmap = (uint64_t)(bar_addr + QDMA_TRQ_SEL_FMAP + (vf_funid * 4)); + qdma_write_reg((uint64_t)fmap, 0); +#endif + + return 0; +} + +/* Perform queue context programming */ + +static int qdma_vf_qadd(struct rte_eth_dev *dev, uint16_t vf, uint8_t vf_funid, + struct qdma_mbox_data *recv_msg) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qadd_msg msg; + int err, qbase; + uint64_t addr; + + PMD_DRV_LOG(INFO, "PF-%d received QADD msg from VF internal id %d, " + "global id %d", PCI_FUNC(qdma_dev->pf), vf, vf_funid); + + msg.qid = recv_msg->data[0]; + msg.st = recv_msg->data[1]; + msg.c2h = recv_msg->data[2]; + msg.ringsz = recv_msg->data[3]; + msg.bufsz = recv_msg->data[4]; + msg.thresidx = recv_msg->data[5]; + msg.timeridx = recv_msg->data[6]; + msg.triggermode = recv_msg->data[7]; + msg.cmpt_ringszidx = recv_msg->data[12]; + msg.prefetch = recv_msg->data[13]; + msg.cmpt_desc_fmt = recv_msg->data[14]; + msg.en_bypass = recv_msg->data[15]; + msg.bypass_desc_sz_idx = recv_msg->data[16]; + msg.en_bypass_prefetch = recv_msg->data[17]; + msg.dis_overflow_check = recv_msg->data[18]; + + addr = rte_le_to_cpu_64(((uint64_t)recv_msg->data[9] << 32) | + recv_msg->data[8]); + msg.ring_bs_addr = addr; + addr = rte_le_to_cpu_64(((uint64_t)recv_msg->data[11] << 32) | + recv_msg->data[10]); + msg.cmpt_ring_bs_addr = addr; + + qbase = qdma_dev->vfinfo[vf].qbase; + + qdma_dev->vfinfo[vf].vfqinfo[msg.qid - qbase].mode = msg.st; + + if (msg.c2h) { + qdma_reset_rx_queues(dev, msg.qid, msg.st); + err = qdma_queue_ctxt_rx_prog(dev, msg.qid, msg.st, + msg.prefetch, msg.ringsz, + msg.cmpt_ringszidx, msg.bufsz, + msg.thresidx, msg.timeridx, + msg.triggermode, vf_funid, + msg.ring_bs_addr, + msg.cmpt_ring_bs_addr, + msg.cmpt_desc_fmt, + msg.en_bypass, + msg.en_bypass_prefetch, + msg.bypass_desc_sz_idx, + msg.dis_overflow_check); + if (err != 0) + return err; + } else { + qdma_reset_tx_queues(dev, msg.qid, msg.st); + err = qdma_queue_ctxt_tx_prog(dev, msg.qid, msg.st, msg.ringsz, + vf_funid, msg.ring_bs_addr, + msg.en_bypass, + msg.bypass_desc_sz_idx); + if (err != 0) + return err; + } + + *qdma_dev->h2c_mm_control = QDMA_MM_CTRL_START; /* Start Tx h2c engine*/ + *qdma_dev->c2h_mm_control = QDMA_MM_CTRL_START; /* Start Rx c2h engine*/ + + return 0; +} + +static int qdma_vf_qdel(struct rte_eth_dev *dev, uint8_t vf, + struct qdma_mbox_data *recv_msg) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + int qbase = 0; + uint32_t qid, dir; + + PMD_DRV_LOG(INFO, "PF-%d received QDEL msg from VF-%d", + PCI_FUNC(qdma_dev->pf), vf); + + qid = recv_msg->data[0]; + dir = recv_msg->data[1]; + qbase = qdma_dev->vfinfo[vf].qbase; + + if (dir == DMA_FROM_DEVICE) + qdma_reset_rx_queues(dev, qid, + qdma_dev->vfinfo[vf].vfqinfo[qid - qbase].mode); + else + qdma_reset_tx_queues(dev, qid, + qdma_dev->vfinfo[vf].vfqinfo[qid - qbase].mode); + + return 0; +} + +/* + * Calculate vf internal funciton of PF from global function id + */ +static int qdma_get_dev_internal_vfid(struct rte_eth_dev *dev, uint8_t devfn) +{ + uint16_t i; + struct rte_pci_device *pci_dev; + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + + pci_dev = RTE_ETH_DEV_TO_PCI(dev); + + for (i = 0; i < pci_dev->max_vfs; i++) { + if (qdma_dev->vfinfo[i].func_id == devfn) + return i; + } + + return QDMA_FUNC_ID_INVALID; +} + +static void qdma_read_vf_msg(struct rte_eth_dev *dev, uint8_t devfn) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + uint64_t bar_addr; + struct qdma_mbox_data recv_msg; + struct mbox_imsg *in_msg; + int32_t retval = -1; + uint32_t reg_val; + uint16_t vf; + int i; + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + + /* write function ID into target function register to get the + * msg in incoming message register + */ + + qdma_write_reg((uint64_t)(bar_addr + QDMA_TRQ_EXT + QDMA_MBOX_TRGT_FN), + devfn); + in_msg = (struct mbox_imsg *)(bar_addr + QDMA_TRQ_EXT + QDMA_MBOX_IMSG); + reg_val = qdma_read_reg((uint64_t)&in_msg->imsg[0]); + + recv_msg.opcode = reg_val & 0xff; + recv_msg.debug_funid = (reg_val >> 8) & 0xfff; + recv_msg.filler = (reg_val >> 20) & 0xf; + recv_msg.err = (reg_val >> 24) & 0xff; + + for (i = 1; i < 32; i++) + recv_msg.data[i - 1] = qdma_read_reg((uint64_t)& + in_msg->imsg[i]); + + if (recv_msg.opcode == QDMA_MBOX_OPCD_HI) { + retval = qdma_vf_hi(dev, devfn, &recv_msg); + goto ack_ok; + } + + vf = qdma_get_dev_internal_vfid(dev, devfn); + + if (vf == QDMA_FUNC_ID_INVALID) + return; + + switch (recv_msg.opcode) { + case QDMA_MBOX_OPCD_BYE: + retval = qdma_vf_bye(dev, vf, devfn); + break; + case QDMA_MBOX_OPCD_QADD: + retval = qdma_vf_qadd(dev, vf, devfn, &recv_msg); + break; + case QDMA_MBOX_OPCD_QDEL: + retval = qdma_vf_qdel(dev, vf, &recv_msg); + break; + } + +ack_ok: + /* once the msg is handled ACK it */ + if (!retval) + qdma_write_reg((bar_addr + QDMA_TRQ_EXT + QDMA_MBOX_FCMD), + QDMA_MBOX_CMD_RECV); +} + +static void qdma_check_vf_msg(void *arg) +{ + struct qdma_pci_dev *qdma_dev = NULL; + uint64_t bar_addr, reg_addr; + struct mbox_fsr *mbx_stat; + + qdma_dev = ((struct rte_eth_dev *)arg)->data->dev_private; + if (!qdma_dev) + return; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + reg_addr = bar_addr + QDMA_TRQ_EXT + QDMA_MBOX_FSR; + mbx_stat = (struct mbox_fsr *)(reg_addr); + + + if (mbx_stat->imsg_stat == 1) + qdma_read_vf_msg((struct rte_eth_dev *)arg, + mbx_stat->curr_src_fn); + + rte_eal_alarm_set(MBOX_POLL_FRQ, qdma_check_vf_msg, arg); +} + +/* + * The set of PCI devices this driver supports + */ +static struct rte_pci_id qdma_pci_id_tbl[] = { +#define RTE_PCI_DEV_ID_DECL_XNIC(vend, dev) {RTE_PCI_DEVICE(vend, dev)}, +#ifndef PCI_VENDOR_ID_XILINX +#define PCI_VENDOR_ID_XILINX 0x10ee +#endif + + /** Gen 1 PF */ + /** PCIe lane width x1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9011) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9111) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9211) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9311) /** PF 3 */ + /** PCIe lane width x4 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9014) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9114) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9214) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9314) /** PF 3 */ + /** PCIe lane width x8 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9018) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9118) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9218) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9318) /** PF 3 */ + /** PCIe lane width x16 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x901f) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x911f) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x921f) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x931f) /** PF 3 */ + + /** Gen 2 PF */ + /** PCIe lane width x1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9021) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9121) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9221) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9321) /** PF 3 */ + /** PCIe lane width x4 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9024) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9124) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9224) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9324) /** PF 3 */ + /** PCIe lane width x8 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9028) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9128) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9228) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9328) /** PF 3 */ + /** PCIe lane width x16 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x902f) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x912f) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x922f) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x932f) /** PF 3 */ + + /** Gen 3 PF */ + /** PCIe lane width x1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9031) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9131) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9231) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9331) /** PF 3 */ + /** PCIe lane width x4 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9034) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9134) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9234) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9334) /** PF 3 */ + /** PCIe lane width x8 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9038) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9138) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9238) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9338) /** PF 3 */ + /** PCIe lane width x16 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x903f) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x913f) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x923f) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x933f) /** PF 3 */ + + /** Gen 4 PF */ + /** PCIe lane width x1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9041) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9141) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9241) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9341) /** PF 3 */ + /** PCIe lane width x4 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9044) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9144) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9244) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9344) /** PF 3 */ + /** PCIe lane width x8 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9048) /** PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9148) /** PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9248) /** PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0x9348) /** PF 3 */ + + { .vendor_id = 0, /* sentinel */ }, +}; + +static void qdma_device_attributes_get(struct qdma_pci_dev *qdma_dev) +{ + int mm_c2h_flag = 0; + int mm_h2c_flag = 0; + int st_c2h_flag = 0; + int st_h2c_flag = 0; + uint64_t bar_addr; + uint32_t v1; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + v1 = qdma_read_reg((uint64_t)(bar_addr + QDMA_REG_GLBL_QMAX)); + + /* DPDK limitation */ + if (v1 > RTE_MAX_QUEUES_PER_PORT) + v1 = RTE_MAX_QUEUES_PER_PORT; + qdma_dev->qsets_max = v1; + + v1 = qdma_read_reg((uint64_t)(bar_addr + QDMA_REG_GLBL_MDMA_CHANNEL)); + mm_c2h_flag = (v1 & MDMA_CHANNEL_MM_C2H_ENABLED_MASK) ? 1 : 0; + mm_h2c_flag = (v1 & MDMA_CHANNEL_MM_H2C_ENABLED_MASK) ? 1 : 0; + st_c2h_flag = (v1 & MDMA_CHANNEL_ST_C2H_ENABLED_MASK) ? 1 : 0; + st_h2c_flag = (v1 & MDMA_CHANNEL_ST_H2C_ENABLED_MASK) ? 1 : 0; + + qdma_dev->mm_mode_en = (mm_c2h_flag && mm_h2c_flag) ? 1 : 0; + qdma_dev->st_mode_en = (st_c2h_flag && st_h2c_flag) ? 1 : 0; + + PMD_DRV_LOG(INFO, "qmax = %d, mm %d, st %d.\n", qdma_dev->qsets_max, + qdma_dev->mm_mode_en, qdma_dev->st_mode_en); +} + +static inline uint8_t pcie_find_cap(const struct rte_pci_device *pci_dev, + uint8_t cap) +{ + uint8_t pcie_cap_pos = 0; + uint8_t pcie_cap_id = 0; + + if (rte_pci_read_config(pci_dev, &pcie_cap_pos, sizeof(uint8_t), + PCI_CAPABILITY_LIST) < 0) { + PMD_DRV_LOG(ERR, "PCIe config space read failed..\n"); + return 0; + } + + while (pcie_cap_pos >= 0x40) { + pcie_cap_pos &= ~3; + + if (rte_pci_read_config(pci_dev, &pcie_cap_id, sizeof(uint8_t), + pcie_cap_pos + PCI_CAP_LIST_ID) < 0) { + PMD_DRV_LOG(ERR, "PCIe config space read failed..\n"); + goto ret; + } + + if (pcie_cap_id == 0xff) + break; + + if (pcie_cap_id == cap) + return pcie_cap_pos; + + if (rte_pci_read_config(pci_dev, &pcie_cap_pos, sizeof(uint8_t), + pcie_cap_pos + PCI_CAP_LIST_NEXT) < 0) { + PMD_DRV_LOG(ERR, "PCIe config space read failed..\n"); + goto ret; + } + } + +ret: + return 0; +} + +static void pcie_perf_enable(const struct rte_pci_device *pci_dev) +{ + uint16_t value; + uint8_t pcie_cap_pos = pcie_find_cap(pci_dev, PCI_CAP_ID_EXP); + + if (!pcie_cap_pos) + return; + + if (pcie_cap_pos > 0) { + if (rte_pci_read_config(pci_dev, &value, sizeof(uint16_t), + pcie_cap_pos + PCI_EXP_DEVCTL) < 0) { + PMD_DRV_LOG(ERR, "PCIe config space read failed..\n"); + return; + } + + value |= (PCI_EXP_DEVCTL_EXT_TAG | PCI_EXP_DEVCTL_RELAX_EN); + + if (rte_pci_write_config(pci_dev, &value, sizeof(uint16_t), + pcie_cap_pos + PCI_EXP_DEVCTL) < 0) { + PMD_DRV_LOG(ERR, "PCIe config space write failed..\n"); + return; + } + } +} + + +/** + * DPDK callback to register a PCI device. + * + * This function creates an Ethernet device for each port of a given + * PCI device. + * + * @param[in] dev + * Pointer to Ethernet device structure. + * + * @return + * 0 on success, negative errno value on failure. + */ +static int eth_qdma_dev_init(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *dma_priv; + uint8_t *baseaddr; + uint64_t bar_len; + int i, idx; + static bool once = true; + int vf_num; + uint64_t reg_addr, sz; + uint32_t reg_val; + uint32_t pfch_val; + struct rte_pci_device *pci_dev; + + /* sanity checks */ + if (dev == NULL) + return -EINVAL; + if (dev->data == NULL) + return -EINVAL; + if (dev->data->dev_private == NULL) + return -EINVAL; + + pci_dev = RTE_ETH_DEV_TO_PCI(dev); + if (pci_dev == NULL) + return -EINVAL; + + /* for secondary processes, we don't initialise any further as primary + * has already done this work. + */ + if (rte_eal_process_type() != RTE_PROC_PRIMARY) { + qdma_dev_ops_init(dev); + return 0; + } + + if (once) + RTE_LOG(INFO, PMD, "QDMA PMD VERSION: %s\n", QDMA_PMD_VERSION); + + /* allocate space for a single Ethernet MAC address */ + dev->data->mac_addrs = rte_zmalloc("qdma", ETHER_ADDR_LEN * 1, 0); + if (dev->data->mac_addrs == NULL) + return -ENOMEM; + + /* Copy some dummy Ethernet MAC address for QDMA device + * This will change in real NIC device... + */ + for (i = 0; i < ETHER_ADDR_LEN; ++i) + dev->data->mac_addrs[0].addr_bytes[i] = 0x15 + i; + + /* Init system & device */ + dma_priv = (struct qdma_pci_dev *)dev->data->dev_private; + dma_priv->pf = PCI_DEVFN(pci_dev->addr.devid, pci_dev->addr.function); + dma_priv->queue_base = DEFAULT_QUEUE_BASE; + dma_priv->timer_count = DEFAULT_TIMER_CNT_TRIG_MODE_TIMER; + + /* Setting default Mode to TRIG_MODE_USER_TIMER_COUNT */ + dma_priv->trigger_mode = TRIG_MODE_USER_TIMER_COUNT; + if (dma_priv->trigger_mode == TRIG_MODE_USER_TIMER_COUNT) + dma_priv->timer_count = DEFAULT_TIMER_CNT_TRIG_MODE_COUNT_TIMER; + + dma_priv->en_desc_prefetch = 0; //Keep prefetch default to 0 + dma_priv->cmpt_desc_len = DEFAULT_QDMA_CMPT_DESC_LEN; + dma_priv->c2h_bypass_mode = C2H_BYPASS_MODE_NONE; + dma_priv->h2c_bypass_mode = 0; + + /*Default write-back accumulation interval */ + dma_priv->wb_acc_int = DEFAULT_WB_ACC_INT; + + dma_priv->config_bar_idx = DEFAULT_PF_CONFIG_BAR; + dma_priv->bypass_bar_idx = BAR_ID_INVALID; + dma_priv->user_bar_idx = BAR_ID_INVALID; + + /* Check and handle device devargs*/ + if (qdma_check_kvargs(dev->device->devargs, dma_priv)) { + PMD_DRV_LOG(INFO, "devargs failed\n"); + rte_free(dev->data->mac_addrs); + return -EINVAL; + } + + idx = qdma_identify_bars(dev); + if (idx < 0) { + rte_free(dev->data->mac_addrs); + return -EINVAL; + } + + PMD_DRV_LOG(INFO, "QDMA device driver probe:"); + + idx = qdma_get_hw_version(dev); + if (idx < 0) { + rte_free(dev->data->mac_addrs); + return -EINVAL; + } + + baseaddr = (uint8_t *) + pci_dev->mem_resource[dma_priv->config_bar_idx].addr; + bar_len = pci_dev->mem_resource[dma_priv->config_bar_idx].len; + + dma_priv->bar_addr[dma_priv->config_bar_idx] = baseaddr; + dma_priv->bar_len[dma_priv->config_bar_idx] = bar_len; + + if (dma_priv->user_bar_idx >= 0) { + baseaddr = (uint8_t *) + pci_dev->mem_resource[dma_priv->user_bar_idx].addr; + bar_len = pci_dev->mem_resource[dma_priv->user_bar_idx].len; + + dma_priv->bar_addr[dma_priv->user_bar_idx] = baseaddr; + dma_priv->bar_len[dma_priv->user_bar_idx] = bar_len; + } + + qdma_dev_ops_init(dev); + baseaddr = (uint8_t *) + pci_dev->mem_resource[dma_priv->config_bar_idx].addr; + + /* Getting the device attributes from the Hardware */ + qdma_device_attributes_get(dma_priv); + + dma_priv->c2h_mm_control = (volatile uint32_t *)(baseaddr + + QDMA_TRQ_SEL_C2H_MM0 + + QDMA_C2H_MM0_CONTROL); + dma_priv->h2c_mm_control = (volatile uint32_t *)(baseaddr + + QDMA_TRQ_SEL_H2C_MM0 + + QDMA_H2C_MM0_CONTROL); + if (once) { + /** Write-back accumulation configuration **/ + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_GLBL + + QDMA_GLBL_DSC_CFG); + reg_val = ((dma_priv->wb_acc_int << + QDMA_GLBL_DSC_CFG_WB_ACC_SHFT) | + (DEFAULT_MAX_DESC_FETCH << + QDMA_GLBL_DSC_CFG_MAX_DSC_FTCH_SHFT)); + qdma_write_reg((uint64_t)reg_addr, reg_val); +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + reg_val = qdma_read_reg((uint64_t)reg_addr); + PMD_DRV_LOG(INFO, " GLBL_DSC_CFG reg_val:0x%x, wb_acc: %d," + " max_desc_fetch: %d\n", + reg_val, (reg_val & QDMA_GLBL_DSC_CFG_WB_ACC_MSK), + (reg_val & QDMA_GLBL_DSC_CFG_MAX_DSC_FTCH_MSK) >> + QDMA_GLBL_DSC_CFG_MAX_DSC_FTCH_SHFT); +#endif + /* Ring-size configuration, need to set the same index + * in the H2C/C2H context structure + */ + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_GLBL + + QDMA_GLBL_RING_SZ); + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, reg_addr += 4) { + qdma_write_reg((uint64_t)reg_addr, g_ring_sz[i]); +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + reg_val = qdma_read_reg((uint64_t)reg_addr); + PMD_DRV_LOG(INFO, " Ring-size reg_val:0x%x written to " + "index %d", reg_val, i); +#endif + } + + /* C2H threshold count configuration, need to set the same index + * in the C2H completion context structure + */ + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_C2H + + QDMA_C2H_CNT_TH_BASE); + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, reg_addr += 4) { + qdma_write_reg((uint64_t)reg_addr, g_c2h_cnt_th[i]); +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + reg_val = qdma_read_reg((uint64_t)reg_addr); + PMD_DRV_LOG(INFO, " threshold-count reg_val:0x%x " + "written to index %d\n", reg_val, i); +#endif + } + + /* C2H Buf size, need to allocate the same buffer size + * in the C2H descriptor source addr + */ + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_C2H + + QDMA_C2H_BUF_SZ_BASE); + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, reg_addr += 4) { + qdma_write_reg((uint64_t)reg_addr, g_c2h_buf_sz[i]); +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + reg_val = qdma_read_reg((uint64_t)reg_addr); + PMD_DRV_LOG(INFO, " Buffer size for C2H, reg_val:0x%x " + "written to index %d\n", reg_val, i); +#endif + } + + /** C2H Prefetch configuration */ + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_C2H + + QDMA_C2H_PFCH_CACHE_DEPTH_OFFSET); + pfch_val = qdma_read_reg(reg_addr); + + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_C2H + + QDMA_C2H_PFCH_CFG_OFFSET); + reg_val = ((DEFAULT_PFCH_STOP_THRESH << + QDMA_C2H_PFCH_CFG_STOP_THRESH_SHIFT) | + (DEFAULT_PFCH_NUM_ENTRIES_PER_Q << + QDMA_C2H_PFCH_CFG_NUM_ENTRIES_PER_Q_SHIFT) | + ((pfch_val / 2) << + QDMA_C2H_PFCH_CFG_MAX_Q_CNT_SHIFT) | + (((pfch_val / 2) - 2) << + QDMA_C2H_PFCH_CFG_EVICTION_Q_CNT_SHIFT)); + qdma_write_reg((uint64_t)reg_addr, reg_val); +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + reg_val = qdma_read_reg((uint64_t)reg_addr); + PMD_DRV_LOG(INFO, "C2H prefetch config, reg_val:0x%x", reg_val); +#endif + + /** C2H timer tick configuration */ + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_C2H + + QDMA_C2H_INT_TIMER_TICK_OFFSET); + qdma_write_reg((uint64_t)reg_addr, DEFAULT_C2H_INTR_TIMER_TICK); +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + reg_val = qdma_read_reg((uint64_t)reg_addr); + PMD_DRV_LOG(INFO, " timer tick for C2H, reg_val:0x%x", reg_val); +#endif + + /** C2H Writeback Coalesce configuration */ + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_C2H + + QDMA_C2H_CMPT_COAL_BUF_DEPTH_OFFSET); + pfch_val = qdma_read_reg(reg_addr); + + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_C2H + + QDMA_C2H_CMPT_COAL_CFG_OFFSET); + reg_val = ((DEFAULT_CMPT_COAL_TIMER_CNT << + QDMA_C2H_CMPT_COAL_TIMER_CNT_VAL_SHIFT) | + (DEFAULT_CMPT_COAL_TIMER_TICK << + QDMA_C2H_CMPT_COAL_TIMER_TICK_VAL_SHIFT) | + (pfch_val << + QDMA_C2H_CMPT_COAL_MAX_BUF_SZ_SHIFT)); + + qdma_write_reg((uint64_t)reg_addr, reg_val); +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + reg_val = qdma_read_reg((uint64_t)reg_addr); + PMD_DRV_LOG(INFO, "C2H writeback coalesce config, reg_val:0x%x", + reg_val); +#endif + /** C2H timer configuration*/ + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_C2H + + QDMA_C2H_TIMER_BASE); + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, reg_addr += 4) { + qdma_write_reg((uint64_t)reg_addr, g_c2h_timer_cnt[i]); +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + reg_val = qdma_read_reg((uint64_t)reg_addr); + PMD_DRV_LOG(INFO, " timer count for C2H, reg_val:0x%x " + "written to index %d\n", reg_val, i); +#endif + } + + /* Data Threshold (Throttle) register setting when + * Prefetch is disabled + */ + reg_addr = (uint64_t)(baseaddr + QDMA_TRQ_SEL_H2C + + QDMA_H2C_DATA_THRESHOLD_OFFSET); + qdma_write_reg((uint64_t)reg_addr, DEFAULT_H2C_THROTTLE); + once = false; + } + + vf_num = pci_dev->max_vfs; + if (vf_num) { + sz = sizeof(struct qdma_vf_info) * vf_num; + dma_priv->vfinfo = rte_zmalloc("vfinfo", sz, 0); + if (dma_priv->vfinfo == NULL) + rte_panic("Cannot allocate memory for VF info\n"); + /* Mark all VFs with invalid function id mapping*/ + for (i = 0; i < vf_num; i++) + dma_priv->vfinfo[i].func_id = QDMA_FUNC_ID_INVALID; + + rte_eal_alarm_set(MBOX_POLL_FRQ, qdma_check_vf_msg, + (void *)dev); + } + + pcie_perf_enable(pci_dev); + + return 0; +} + +/** + * DPDK callback to deregister PCI device. + * + * @param[in] dev + * Pointer to Ethernet device structure. + * + * @return + * 0 on success, negative errno value on failure. + */ +static int eth_qdma_dev_uninit(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + uint32_t numvf, i, count, v; + struct mbox_fsr *mbx_stat; + struct qdma_mbox_data send_msg; + uint64_t bar_addr, addr; + struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev); + + /* only uninitialize in the primary process */ + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return -EPERM; + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + mbx_stat = (struct mbox_fsr *)(bar_addr + QDMA_TRQ_EXT + QDMA_MBOX_FSR); + + numvf = pci_dev->max_vfs; + + for (i = 0; i < numvf; i++) { + count = MAILBOX_PROG_POLL_COUNT; + memset(&send_msg, 0, sizeof(send_msg)); + if (qdma_dev->vfinfo[i].qmax) { + qdma_write_reg((uint64_t)(bar_addr + QDMA_TRQ_EXT + + QDMA_MBOX_TRGT_FN), + qdma_dev->vfinfo[i].func_id); + while (mbx_stat->omsg_stat && count) { + rte_delay_ms(MAILBOX_PF_MSG_DELAY); + count--; + } + if (count) { + PMD_DRV_LOG(INFO, "PF-%d(DEVFN) send BYE " + "message to VF-%d(DEVFN)", + qdma_dev->pf, + qdma_dev->vfinfo[i].func_id); + send_msg.opcode = QDMA_MBOX_OPCD_BYE; + send_msg.debug_funid = qdma_dev->pf; + v = rte_cpu_to_le_32(send_msg.debug_funid << 8 | + send_msg.opcode); + addr = bar_addr + QDMA_TRQ_EXT + QDMA_MBOX_OMSG; + qdma_write_reg(addr, v); + + addr = bar_addr + QDMA_TRQ_EXT + QDMA_MBOX_FCMD; + qdma_write_reg(addr, QDMA_MBOX_CMD_SEND); + + count = MAILBOX_PROG_POLL_COUNT; + while (mbx_stat->omsg_stat && count) { + rte_delay_ms(MAILBOX_PF_MSG_DELAY); + count--; + } + if (!count) + PMD_DRV_LOG(INFO, "Pf-%d(DEVFN) did " + "not receive ACK from " + "VF-%d(DEVFN)", + qdma_dev->pf, + qdma_dev->vfinfo[i].func_id); + } else { + PMD_DRV_LOG(INFO, "Pf-%d(DEVFN) could not send " + "BYE message to VF-%d(DEVFN)", + qdma_dev->pf, + qdma_dev->vfinfo[i].func_id); + break; + } + } + } + + /* cancel pending polls*/ + rte_eal_alarm_cancel(qdma_check_vf_msg, (void *)dev); + *qdma_dev->h2c_mm_control = 0; /* Stop Tx h2c engine */ + *qdma_dev->c2h_mm_control = 0; + + if (qdma_dev->vfinfo != NULL) { + rte_free(qdma_dev->vfinfo); + qdma_dev->vfinfo = NULL; + } + + dev->dev_ops = NULL; + dev->rx_pkt_burst = NULL; + dev->tx_pkt_burst = NULL; + dev->data->nb_rx_queues = 0; + dev->data->nb_tx_queues = 0; + + if (dev->data->mac_addrs != NULL) { + rte_free(dev->data->mac_addrs); + dev->data->mac_addrs = NULL; + } + + if (qdma_dev->q_info != NULL) { + rte_free(qdma_dev->q_info); + qdma_dev->q_info = NULL; + } + + return 0; +} + +static int eth_qdma_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, + struct rte_pci_device *pci_dev) +{ + return rte_eth_dev_pci_generic_probe(pci_dev, + sizeof(struct qdma_pci_dev), + eth_qdma_dev_init); +} + +/* Detach a ethdev interface */ +static int eth_qdma_pci_remove(struct rte_pci_device *pci_dev) +{ + return rte_eth_dev_pci_generic_remove(pci_dev, eth_qdma_dev_uninit); +} + +static struct rte_pci_driver rte_qdma_pmd = { + .id_table = qdma_pci_id_tbl, + .drv_flags = RTE_PCI_DRV_NEED_MAPPING, + .probe = eth_qdma_pci_probe, + .remove = eth_qdma_pci_remove, +}; + +RTE_PMD_REGISTER_PCI(net_qdma, rte_qdma_pmd); +RTE_PMD_REGISTER_PCI_TABLE(net_qdma, qdma_pci_id_tbl); diff --git a/QDMA/DPDK/drivers/net/qdma/qdma_export.h b/QDMA/DPDK/drivers/net/qdma/qdma_export.h new file mode 100644 index 0000000..8314352 --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/qdma_export.h @@ -0,0 +1,68 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __QDMA_EXPORT_H__ +#define __QDMA_EXPORT_H__ + +#include <rte_dev.h> +#include <rte_ethdev.h> +#include <rte_spinlock.h> +#include <rte_log.h> +#include <rte_byteorder.h> +#include <rte_memzone.h> +#include <linux/pci.h> + +enum rte_xdebug_type { + ETH_XDEBUG_QDMA_GLOBAL_CSR, + ETH_XDEBUG_QUEUE_CONTEXT, + ETH_XDEBUG_QUEUE_STRUCT, + ETH_XDEBUG_QUEUE_DESC_DUMP, + ETH_XDEBUG_MAX, +}; + +enum rte_xdebug_desc_type { + ETH_XDEBUG_DESC_C2H, + ETH_XDEBUG_DESC_H2C, + ETH_XDEBUG_DESC_CMPT, + ETH_XDEBUG_DESC_MAX, +}; +struct rte_xdebug_desc_param { + uint16_t queue; + int start; + int end; + enum rte_xdebug_desc_type type; +}; + +int qdma_xdebug(uint8_t port_id, enum rte_xdebug_type type, + void *params); + +#endif /* ifndef __QDMA_EXPORT_H__ */ diff --git a/QDMA/DPDK/drivers/net/qdma/qdma_regs.h b/QDMA/DPDK/drivers/net/qdma/qdma_regs.h new file mode 100644 index 0000000..5955e64 --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/qdma_regs.h @@ -0,0 +1,367 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __QDMA_REGS_H__ +#define __QDMA_REGS_H__ + +#define QDMA_BAR_NUM (6) + +#define QDMA_GLOBAL_CSR_ARRAY_SZ (16) + +extern uint32_t g_ring_sz[QDMA_GLOBAL_CSR_ARRAY_SZ]; +extern uint32_t g_c2h_cnt_th[QDMA_GLOBAL_CSR_ARRAY_SZ]; +extern uint32_t g_c2h_buf_sz[QDMA_GLOBAL_CSR_ARRAY_SZ]; +extern uint32_t g_c2h_timer_cnt[QDMA_GLOBAL_CSR_ARRAY_SZ]; + +/** Target definations **/ +#define QDMA_TRQ_SEL_GLBL 0x00000200 +#define QDMA_TRQ_SEL_FMAP 0x00000400 +#define QDMA_TRQ_SEL_IND 0x00000800 +#define QDMA_TRQ_SEL_C2H 0x00000A00 +#define QDMA_TRQ_SEL_H2C 0x00000E00 +#define QDMA_TRQ_SEL_C2H_MM0 0x00001000 +#define QDMA_TRQ_SEL_H2C_MM0 0x00001200 +#define QDMA_TRQ_EXT 0x00002400 +//#define QDMA_TRQ_SEL_QUEUE_PF 0x00001800 /* for old Bitstreams **/ +#define QDMA_TRQ_SEL_QUEUE_PF 0x00018000 +#define QDMA_TRQ_EXT_VF 0x00001000 +#define QDMA_TRQ_SEL_QUEUE_VF 0x00003000 + +#define QDMA_CONFIG_BLOCK_ID 0x1fd30000UL +/** Global registers **/ +#define QDMA_GLBL_RING_SZ 0x04 +#define QDMA_GLBL_SCRATCH 0x44 +#define QDMA_GLBL_DSC_CFG 0x50 +#define QDMA_RING_SZ_MSK 0x0000ffff +#define QDMA_GLBL_DSC_CFG_WB_ACC_MSK 0x00000007 +#define QDMA_GLBL_DSC_CFG_MAX_DSC_FTCH_MSK 0x00000038 +#define QDMA_GLBL_DSC_CFG_WB_ACC_SHFT 0 +#define QDMA_GLBL_DSC_CFG_MAX_DSC_FTCH_SHFT 3 +#define QDMA_GLBL2_PF_BARLITE_INT 0x104 +#define QDMA_GLBL2_PF_VF_BARLITE_INT 0x108 +#define QDMA_GLBL2_PF_BARLITE_EXT 0x10c +#define QDMA_GLBL2_VF_BARLITE_EXT 0x1018 +#define QDMA_PF_RTL_VER 0x134 +#define QDMA_VF_RTL_VER 0x1014 +#define PF_RTL_VERSION_MASK 0xFF0000 +#define PF_RTL_VERSION_SHIFT 16 +#define PF_VIVADO_RELEASE_ID_MASK 0x0F000000 +#define PF_VIVADO_RELEASE_ID_SHIFT 24 +#define PF_EVEREST_IP_MASK 0x10000000 +#define PF_EVEREST_IP_SHIFT 28 +#define VF_RTL_VERSION_MASK 0xFF +#define VF_RTL_VERSION_SHIFT 0 +#define VF_VIVADO_RELEASE_ID_MASK 0x0F00 +#define VF_VIVADO_RELEASE_ID_SHIFT 8 +#define VF_EVEREST_IP_MASK 0x1000 +#define VF_EVEREST_IP_SHIFT 12 + +/** Fmap registers **/ +#define QID_BASE_MSK (0x000007ff) +#define QID_MAX_MSK (0x003ff800) +#define QID_MAX_SHIFT_B (11) + +/** Queue Indirect programming commands **/ + +#define QDMA_IND_Q_PRG_OFF (0x4) + +#define QDMA_CTXT_CMD_CLR (0) +#define QDMA_CTXT_CMD_WR (1) +#define QDMA_CTXT_CMD_RD (2) +#define QDMA_CTXT_CMD_INV (3) + +#define MASK_0BIT (0x0) +#define MASK_32BIT (0xffffffffUL) + +#define QDMA_CTXT_SEL_DESC_SW_C2H (0) +#define QDMA_CTXT_SEL_DESC_SW_H2C (1) +#define QDMA_CTXT_SEL_DESC_HW_C2H (2) +#define QDMA_CTXT_SEL_DESC_HW_H2C (3) +#define QDMA_CTXT_SEL_CR_C2H (4) +#define QDMA_CTXT_SEL_CR_H2C (5) +#define QDMA_CTXT_SEL_DESC_CMPT (6) +#define QDMA_CTXT_SEL_PFTCH (7) +#define QDMA_CTXT_SEL_FMAP (12) + +#define QID_SHIFT_B (7) +#define OP_CODE_SHIFT_B (5) +#define CTXT_SEL_SHIFT_B (1) +#define BUSY_BIT_MSK (1) + +#define QDMA_CIDX_STEP (0x10) +#define QDMA_PIDX_STEP (0x10) + +#define MM_CHAN_SHIFT_B (19) +#define DESC_RING_SZ_SHIFT_B (12) +#define ST_H2C_DESC_SZ_SHIFT_B (16) +#define MM_DESC_SZ_WB_SHIFT_B (29) +//#define C2H_WB_CTXT_V_SHIFT_B (30) + + +/** C2H target registers **/ +#define QDMA_C2H_CNT_TH_BASE 0x40 +#define QDMA_C2H_BUF_SZ_BASE 0xB0 +#define QDMA_C2H_TIMER_BASE 0x00 + +#define QDMA_C2H_PFCH_CACHE_DEPTH_OFFSET 0x1E0 +#define QDMA_C2H_CMPT_COAL_BUF_DEPTH_OFFSET 0x1E4 + +#define QDMA_C2H_PFCH_CFG_OFFSET 0x108 +#define QDMA_C2H_PFCH_CFG_STOP_THRESH_SHIFT (0) +#define QDMA_C2H_PFCH_CFG_NUM_ENTRIES_PER_Q_SHIFT (8) +#define QDMA_C2H_PFCH_CFG_MAX_Q_CNT_SHIFT (16) +#define QDMA_C2H_PFCH_CFG_EVICTION_Q_CNT_SHIFT (25) + +#define QDMA_C2H_INT_TIMER_TICK_OFFSET 0x10C + +#define QDMA_C2H_CMPT_COAL_CFG_OFFSET 0x150 +#define QDMA_C2H_CMPT_COAL_TIMER_CNT_VAL_SHIFT (2) +#define QDMA_C2H_CMPT_COAL_TIMER_TICK_VAL_SHIFT (14) +#define QDMA_C2H_CMPT_COAL_MAX_BUF_SZ_SHIFT (26) + +/** H2C target registers **/ +#define QDMA_H2C_DATA_THRESHOLD_OFFSET 0x24 //Base address is QDMA_TRQ_SEL_H2C + +/** PF Queue index registers */ +#define QDMA_H2C_PIDX_Q_OFF (0x04) +#define QDMA_C2H_PIDX_Q_OFF (0x08) +#define QDMA_SEL_CMPT_CIDX_Q_OFF (0x0c) + + +/** QDMA Target registers **/ +#define QDMA_C2H_MM0_CONTROL 0x00000004 +#define QDMA_H2C_MM0_CONTROL 0x00000004 +#define QDMA_MM_CTRL_START (1 << 0) + +/** QDMA Descriptor definations **/ +#define QDMA_DESC_SOP 0x1 +#define QDMA_DESC_EOP 0x1 +#define QDMA_DESC_VALID 0x1 + +/** Mailbox Register **/ +#define QDMA_MBOX_FSR 0x00 +#define QDMA_MBOX_FCMD 0x04 +#define QDMA_MBOX_TRGT_FN 0x0c +#define QDMA_MBOX_ACK_BASE 0x20 +#define QDMA_MBOX_IMSG 0x800 +#define QDMA_MBOX_OMSG 0xc00 + +/** Mailbox commands **/ +#define QDMA_MBOX_CMD_SEND (1) +#define QDMA_MBOX_CMD_RECV (2) + +/* Driver visible Attribute Space 0x100 */ +#define QDMA_REG_GLBL_PF_BARLITE_INT 0x104 +#define PF_BARLITE_INT_3_SHIFT 18 +#define PF_BARLITE_INT_3_MASK 0xFC0000 +#define PF_BARLITE_INT_2_SHIFT 12 +#define PF_BARLITE_INT_2_MASK 0x3F000 +#define PF_BARLITE_INT_1_SHIFT 6 +#define PF_BARLITE_INT_1_MASK 0xFC0 +#define PF_BARLITE_INT_0_SHIFT 0 +#define PF_BARLITE_INT_0_MASK 0x3F + +#define QDMA_REG_GLBL_QMAX 0x120 +#define QDMA_REG_GLBL_MISC_CAP 0x134 +#define QDMA_REG_GLBL_MDMA_CHANNEL 0x118 +#define MDMA_CHANNEL_ST_C2H_ENABLED_SHIFT 16 +#define MDMA_CHANNEL_ST_C2H_ENABLED_MASK 0x10000 +#define MDMA_CHANNEL_ST_H2C_ENABLED_SHIFT 17 +#define MDMA_CHANNEL_ST_H2C_ENABLED_MASK 0x20000 +#define MDMA_CHANNEL_MM_C2H_ENABLED_SHIFT 8 +#define MDMA_CHANNEL_MM_C2H_ENABLED_MASK 0x100 +#define MDMA_CHANNEL_MM_H2C_ENABLED_SHIFT 0 +#define MDMA_CHANNEL_MM_H2C_ENABLED_MASK 0x1 + +/** Completion Descriptor config */ +#define CMPT_STATUS_DESC_EN (1) +#define CMPT_STATUS_DESC_EN_SHIFT (27) +#define CMPT_TRIGGER_MODE_SHIFT (24) +#define CMPT_TIMER_CNT_SHIFT (20) +#define CMPT_THREHOLD_CNT_SHIFT (16) + +/** Prefetch Context config */ +#define PREFETCH_EN (1) +#define PREFETCH_EN_SHIFT (27) +#define PREFETCH_BYPASS_SHIFT (0) +#define BUFF_SIZE_INDEX_SHIFT (1) +#define VALID_CNTXT (1) +#define VALID_CNTXT_SHIFT (13) + +/** Completion Context config */ +#define CMPT_CNTXT_EN_STAT_DESC (1) +#define CMPT_CNTXT_EN_STAT_DESC_SHIFT (0) +#define CMPT_CNTXT_COLOR_BIT (1) +#define CMPT_CNTXT_COLOR_BIT_SHIFT (27) +#define CMPT_CNTXT_TRIGGER_MODE_SHIFT (2) +#define CMPT_CNTXT_TIMER_INDEX_SHIFT (21) +#define CMPT_CNTXT_THRESHOLD_MODE_SHIFT (17) +#define CMPT_CNTXT_FUNC_ID_SHIFT (5) +#define CMPT_CNTXT_RING_SIZE_INDEX_SHIFT (28) +#define CMPT_CNTXT_DESC_SIZE_8B (0) +#define CMPT_CNTXT_DESC_SIZE_16B (1) +#define CMPT_CNTXT_DESC_SIZE_32B (2) +#define CMPT_CNTXT_DESC_SIZE_64B (3) +#define CMPT_CNTXT_DESC_SIZE_SHIFT (90 - (2 * 32)) +#define CMPT_CNTXT_CTXT_VALID (1) +#define CMPT_CNTXT_OVF_CHK_DIS_SHIFT (130 - (4 * 32)) +#define CMPT_CNTXT_CTXT_VALID_SHIFT (124 - (3 * 32)) +#define CMPT_CNTX_FULL_UPDT (1) +#define CMPT_CNTX_FULL_UPDT_SHIFT (129 - (4 * 32)) + +/** SOFTWARE DESC CONTEXT */ +#define SW_DESC_CNTXT_WB_EN (1) +#define SW_DESC_CNTXT_WB_EN_SHIFT_B (52 - (1 * 32)) +#define SW_DESC_CNTXT_8B_BYPASS_DMA (0) +#define SW_DESC_CNTXT_16B_BYPASS_DMA (1) +#define SW_DESC_CNTXT_32B_BYPASS_DMA (2) +#define SW_DESC_CNTXT_64B_BYPASS_DMA (3) +#define SW_DESC_CNTXT_MEMORY_MAP_DMA (2) +#define SW_DESC_CNTXT_H2C_STREAM_DMA (1) +#define SW_DESC_CNTXT_C2H_STREAM_DMA (0) +#define SW_DESC_CNTXT_BYPASS_SHIFT (50 - (1 * 32)) +#define SW_DESC_CNTXT_DESC_SZ_SHIFT (48 - (1 * 32)) +#define SW_DESC_CNTXT_FUNC_ID_SHIFT (17) +#define SW_DESC_CNTXT_RING_SIZE_ID_SHIFT (44 - (1 * 32)) +#define SW_DESC_CNTXT_QUEUE_ENABLE (1) +#define SW_DESC_CNTXT_QUEUE_EN_SHIFT (32 - (1 * 32)) +#define SW_DESC_CNTXT_FETCH_CREDIT_EN (1) +#define SW_DESC_CNTXT_FETCH_CREDIT_EN_SHIFT (33 - (1 * 32)) +#define SW_DESC_CNTXT_WBI_CHK (1) +#define SW_DESC_CNTXT_WBI_CHK_SHIFT (34 - (1 * 32)) +#define SW_DESC_CNTXT_WBI_INTERVAL (1) +#define SW_DESC_CNTXT_WBI_INTERVAL_SHIFT (35 - (1 * 32)) +#define SW_DESC_CNTXT_IS_MM (1) +#define SW_DESC_CNTXT_IS_MM_SHIFT (63 - (1 * 32)) + +/** QDMA Global registers **/ +struct __attribute__ ((packed)) qdma_global_regs +{ + volatile uint32_t ring_sz[16]; + volatile uint32_t status[16]; + volatile uint32_t config[16]; + volatile uint32_t wb_acc; + volatile uint32_t pf_scratch_reg; +}; + +#define NUM_CONTEXT_REGS 8 +/** Queue Indirect programming registers **/ +struct __attribute__ ((packed)) queue_ind_prg +{ + volatile uint32_t ctxt_data[NUM_CONTEXT_REGS]; + volatile uint32_t ctxt_mask[NUM_CONTEXT_REGS]; + volatile uint32_t ctxt_cmd; +}; + +/** MM Write-back status structure **/ +struct __attribute__ ((packed)) wb_status +{ + volatile uint16_t pidx; /** in C2H WB **/ + volatile uint16_t cidx; /** Consumer-index **/ + uint32_t rsvd2; /** Reserved. **/ +}; + +/** ST C2H Descriptor **/ +struct __attribute__ ((packed)) qdma_c2h_desc +{ + volatile uint64_t dst_addr; +}; + +#define S_H2C_DESC_F_SOP 1 +#define S_H2C_DESC_F_EOP 2 + +/* pld_len and flags members are part of custom descriptor format needed + * by example design for ST loopback and desc bypass + */ + +/** ST H2C Descriptor **/ +struct __attribute__ ((packed)) qdma_h2c_desc +{ + volatile uint16_t cdh_flags; + volatile uint16_t pld_len; + volatile uint16_t len; + volatile uint16_t flags; + volatile uint64_t src_addr; +}; + +/** MM Descriptor **/ +struct __attribute__ ((packed)) qdma_mm_desc +{ + volatile uint64_t src_addr; + volatile uint64_t len:28; + volatile uint64_t dv:1; + volatile uint64_t sop:1; + volatile uint64_t eop:1; + volatile uint64_t rsvd:33; + volatile uint64_t dst_addr; + volatile uint64_t rsvd2; + +}; + +/** MBOX STATUS **/ +struct __attribute__ ((packed)) mbox_fsr +{ + volatile uint8_t imsg_stat:1; + volatile uint8_t omsg_stat:1; + volatile uint8_t ack_stat:2; + volatile uint16_t curr_src_fn:8; + volatile uint32_t rsvd:20; +}; + +struct __attribute__ ((packed)) mbox_ack_stat +{ + volatile uint32_t ack[8]; +}; + +struct __attribute__ ((packed)) mbox_imsg +{ + volatile uint32_t imsg[32]; +}; + +struct __attribute__ ((packed)) mbox_omsg +{ + volatile uint32_t omsg[32]; +}; + +/** C2H/H2C Descriptor context structure **/ + +#define PIDX_MSK (0) +#define Q_STATUS_MSK (0) +#define Q_STATUS_EN_MSK (3) +#define Q_STATUS_RST_MSK (1) +#define WBI_CHK_MSK (6) +#define WBI_ACC_EN_MSK (7) +#define FUNC_ID_MSK (8) +#define RING_SZ_MSK (16) +#define DESC_SZ_MSK (16) + +#endif /* ifndef __QDMA_REGS_H__ */ diff --git a/QDMA/DPDK/drivers/net/qdma/qdma_rxtx.c b/QDMA/DPDK/drivers/net/qdma/qdma_rxtx.c new file mode 100644 index 0000000..3ebd8d6 --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/qdma_rxtx.c @@ -0,0 +1,814 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <rte_mbuf.h> +#include <rte_cycles.h> +#include "qdma.h" +#include "qdma_regs.h" + +#include <fcntl.h> +#include <unistd.h> + + +int dma_wb_monitor(void *xq, uint8_t dir, uint16_t expected_count); + +/** + * Poll the QDMA engine for transfer completion. + * + * @param txq + * Generic pointer to either Rx/Tx queue structure based on the DMA direction. + * @param expected_count + * expected transfer count. + * + * @return + * Number of packets transferred successfully by the engine. + */ +int dma_wb_monitor(void *xq, uint8_t dir, uint16_t expected_count) +{ + struct wb_status *wb_status; + uint16_t mode, wb_tail; + uint32_t i = 0; + + if (dir == DMA_TO_DEVICE) { + struct qdma_tx_queue *txq = (struct qdma_tx_queue *)xq; + wb_status = txq->wb_status; + + while (i < WB_TIMEOUT) { + if (expected_count == wb_status->cidx) { + PMD_DRV_LOG(DEBUG, "Poll writeback count " + "matches to the expected count :%d", + expected_count); + return 0; + } + PMD_DRV_LOG(DEBUG, "poll wait on wb-count:%d and " + "expected-count:%d\n", + wb_status->cidx, expected_count); + i++; + } + PMD_DRV_LOG(ERR, "DMA Engine write-back monitor " + "timeout error occurred\n"); + return -1; + } + /* dir == DMA_FROM_DEVICE */ + struct qdma_rx_queue *rxq = (struct qdma_rx_queue *)xq; + wb_status = rxq->wb_status; + mode = rxq->st_mode; + + /* Poll the writeback location until timeout Or, the expected + * count matches to the writeback count + */ + while (i < WB_TIMEOUT) { + if (mode) { + wb_tail = (rxq->rx_cmpt_tail + expected_count) % + (rxq->nb_rx_cmpt_desc - 1); + if (wb_tail == wb_status->pidx) { + PMD_DRV_LOG(DEBUG, "ST: Poll cmpt count matches" + " to the expected count :%d", + expected_count); + return 0; + } + PMD_DRV_LOG(DEBUG, "ST: poll wait on wb-count:%d and" + " expected-count:%d\n", + wb_status->pidx, expected_count); + } else { + if (expected_count == wb_status->cidx) { + PMD_DRV_LOG(DEBUG, "MM: Poll writeback count " + "matches to the expected count" + " :%d", expected_count); + return 0; + } + PMD_DRV_LOG(DEBUG, "MM: poll wait on wb-count:%d " + "and expected-count:%d\n", + wb_status->cidx, expected_count); + } + i++; + } + return -1; +} + +uint16_t qdma_recv_pkts_st(struct qdma_rx_queue *rxq, struct rte_mbuf **rx_pkts, + uint16_t nb_pkts) +{ + struct rte_mbuf *mb; + struct rte_mbuf *first_seg = NULL; + struct rte_mbuf *last_seg = NULL; + struct qdma_c2h_desc *rx_ring_st = NULL; + uint32_t count = 0, count_pkts = 0; + uint16_t id; + struct c2h_cmpt_ring *cmpt_ring; + struct wb_status *wb_status; + uint32_t pkt_length; + uint64_t phys_addr; + uint16_t nb_pkts_avail = 0; + uint16_t rx_cmpt_tail = 0; + uint16_t mbuf_index = 0; + uint16_t pkt_len[QDMA_MAX_BURST_SIZE]; + uint16_t rx_buff_size; + uint16_t cmpt_pidx; + uint16_t pending_desc; +#ifdef TEST_64B_DESC_BYPASS + int bypass_desc_sz_idx = qmda_get_desc_sz_idx(rxq->bypass_desc_sz); +#endif + + id = rxq->rx_tail; /* Descriptor index */ + PMD_DRV_LOG(DEBUG, "recv start on rx queue-id :%d, on " + "tail index:%d number of pkts %d", + rxq->queue_id, rxq->rx_tail, nb_pkts); + + wb_status = rxq->wb_status; + rx_cmpt_tail = rxq->rx_cmpt_tail; + rx_buff_size = rxq->rx_buff_size; + +#ifdef TEST_64B_DESC_BYPASS + if (unlikely(rxq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA)) { + PMD_DRV_LOG(DEBUG, "For RX ST-mode, example" + " design doesn't support 64byte descriptor\n"); + return 0; + } +#endif + rx_ring_st = (struct qdma_c2h_desc *)rxq->rx_ring; + cmpt_pidx = wb_status->pidx; + + if (rx_cmpt_tail < cmpt_pidx) + nb_pkts_avail = cmpt_pidx - rx_cmpt_tail; + else if (rx_cmpt_tail > cmpt_pidx) + nb_pkts_avail = rxq->nb_rx_cmpt_desc - 1 - rx_cmpt_tail + + cmpt_pidx; + + if (nb_pkts_avail == 0) { + PMD_DRV_LOG(DEBUG, "%s(): %d: nb_pkts_avail = 0\n", + __func__, __LINE__); + return 0; + } + + if (nb_pkts > QDMA_MAX_BURST_SIZE) + nb_pkts = QDMA_MAX_BURST_SIZE; + + if (nb_pkts > nb_pkts_avail) + nb_pkts = nb_pkts_avail; + +#ifdef DUMP_MEMPOOL_USAGE_STATS + PMD_DRV_LOG(DEBUG, "%s(): %d: queue id = %d, mbuf_avail_count = %d, " + "mbuf_in_use_count = %d", + __func__, __LINE__, rxq->queue_id, + rte_mempool_avail_count(rxq->mb_pool), + rte_mempool_in_use_count(rxq->mb_pool)); +#endif //DUMP_MEMPOOL_USAGE_STATS + /* Make sure reads to CMPT ring are synchronized before + * accessing the ring + */ + rte_rmb(); + + while (count < nb_pkts) { + cmpt_ring = (struct c2h_cmpt_ring *)((uint64_t)rxq->cmpt_ring + + ((uint64_t)rx_cmpt_tail * + rxq->cmpt_desc_len)); + pkt_length = cmpt_ring->length; + + if (unlikely(!cmpt_ring->desc_used)) + pkt_length = 0; + if (unlikely(rxq->dump_immediate_data)) { + int ofd, ret = 0; + char fln[50]; +#ifndef TEST_64B_DESC_BYPASS + uint16_t i = 0; +#endif + sprintf(fln, "q_%d_%s", rxq->queue_id, + "immmediate_data.txt"); + ofd = open(fln, O_RDWR | O_CREAT | O_APPEND | + O_SYNC, 0666); + if (ofd < 0) { + PMD_DRV_LOG(INFO, "recv on rxq[%d] CMPT, " + "unable to create outfile " + " to dump immediate data", + rxq->queue_id); + return 0; + } +#ifdef TEST_64B_DESC_BYPASS + ret = write(ofd, cmpt_ring, rxq->cmpt_desc_len); +#else + ret = dprintf(ofd, "%02x", + (*((uint8_t *)cmpt_ring) & 0xF0)); + for (i = 1; i < (rxq->cmpt_desc_len) ; i++) + ret = dprintf(ofd, "%02x", + *((uint8_t *)cmpt_ring + i)); +#endif + if (ret < rxq->cmpt_desc_len) + PMD_DRV_LOG(DEBUG, "recv on rxq[%d] CMPT, " + "immediate data len: %d, " + "written to outfile :%d bytes", + rxq->queue_id, rxq->cmpt_desc_len, + ret); + close(ofd); + } + pkt_len[count] = pkt_length; + rx_cmpt_tail++; + if (unlikely(rx_cmpt_tail >= (rxq->nb_rx_cmpt_desc - 1))) + rx_cmpt_tail -= (rxq->nb_rx_cmpt_desc - 1); + count++; + } + + rte_wmb(); + rxq->rx_cmpt_tail = rx_cmpt_tail; + // Update the CPMT CIDX + *rxq->rx_cidx = rxq->rx_cmpt_tail; + + if (rxq->status != RTE_ETH_QUEUE_STATE_STARTED) { + PMD_DRV_LOG(DEBUG, "%s(): %d: rxq->status = %d\n", + __func__, __LINE__, rxq->status); + return 0; + } + + count = 0; + mbuf_index = 0; + while (count < nb_pkts) { + pkt_length = pkt_len[count]; + + if (unlikely(!pkt_length)) { + count++; + continue; + } + + do { + mb = rxq->sw_ring[id]; + rxq->sw_ring[id++] = NULL; + + if (unlikely(id >= (rxq->nb_rx_desc - 1))) + id -= (rxq->nb_rx_desc - 1); + if (pkt_length > rx_buff_size) { + rte_pktmbuf_data_len(mb) = rx_buff_size; + pkt_length -= rx_buff_size; + } else { + rte_pktmbuf_data_len(mb) = pkt_length; + pkt_length = 0; + } + rte_mbuf_refcnt_set(mb, 1); + + if (first_seg == NULL) { + first_seg = mb; + first_seg->nb_segs = 1; + first_seg->pkt_len = pkt_len[count]; + first_seg->packet_type = 0; + first_seg->ol_flags = 0; + first_seg->port = rxq->port_id; + first_seg->vlan_tci = 0; + first_seg->hash.rss = 0; + } else { + first_seg->nb_segs++; + last_seg->next = mb; + } + + last_seg = mb; + mb->next = NULL; + } while (pkt_length); + rxq->stats.pkts++; + rxq->stats.bytes += pkt_len[count++]; + rx_pkts[count_pkts++] = first_seg; + first_seg = NULL; + } + + rxq->rx_tail = id; + + pending_desc = rxq->rx_tail - rxq->c2h_pidx; + if (rxq->rx_tail < rxq->c2h_pidx) + pending_desc = rxq->nb_rx_desc - 1 + rxq->rx_tail - + rxq->c2h_pidx; + + /* Batch the PIDX updates, this minimizes overhead on + * descriptor engine + */ + if (pending_desc >= MIN_RX_PIDX_UPDATE_THRESHOLD) { + struct rte_mbuf *tmp_sw_ring[pending_desc]; + /* allocate new buffer */ + if (rte_mempool_get_bulk(rxq->mb_pool, (void *)tmp_sw_ring, + pending_desc) != 0){ + PMD_DRV_LOG(ERR, "%s(): %d: No MBUFS\n", + __func__, __LINE__); + return count_pkts; + } + + id = rxq->c2h_pidx; + for (mbuf_index = 0; mbuf_index < pending_desc; mbuf_index++) { + mb = tmp_sw_ring[mbuf_index]; + /* low 32-bits of phys addr must be 4KB aligned... */ + phys_addr = (uint64_t)mb->buf_physaddr + + RTE_PKTMBUF_HEADROOM; + + /* make it so the data pointer starts there too... */ + mb->data_off = RTE_PKTMBUF_HEADROOM; + + /* rearm descriptor */ + rx_ring_st[id].dst_addr = phys_addr; + rxq->sw_ring[id++] = mb; + if (unlikely(id >= (rxq->nb_rx_desc - 1))) + id -= (rxq->nb_rx_desc - 1); + } + + PMD_DRV_LOG(DEBUG, "%s(): %d: PIDX Update: queue id = %d, " + "pending_desc = %d", + __func__, __LINE__, rxq->queue_id, + pending_desc); + + /* Make sure writes to the C2H descriptors are + * synchronized before updating PIDX + */ + rte_wmb(); + + if (rxq->rx_tail == 0) + *rxq->rx_pidx = (rxq->nb_rx_desc - 2); + else + *rxq->rx_pidx = (rxq->rx_tail - 1); + + rxq->c2h_pidx = rxq->rx_tail; + } + +#ifdef DUMP_MEMPOOL_USAGE_STATS + PMD_DRV_LOG(DEBUG, "%s(): %d: queue id = %d, mbuf_avail_count = %d," + " mbuf_in_use_count = %d, count_pkts = %d", + __func__, __LINE__, rxq->queue_id, + rte_mempool_avail_count(rxq->mb_pool), + rte_mempool_in_use_count(rxq->mb_pool), count_pkts); +#endif //DUMP_MEMPOOL_USAGE_STATS + + PMD_DRV_LOG(DEBUG, " Recv complete with hw cidx :%d", + rxq->wb_status->cidx); + PMD_DRV_LOG(DEBUG, " Recv complete with hw pidx :%d\n", + rxq->wb_status->pidx); + + return count_pkts; +} + +uint16_t qdma_recv_pkts_mm(struct qdma_rx_queue *rxq, struct rte_mbuf **rx_pkts, + uint16_t nb_pkts) +{ + struct rte_mbuf *mb; + uint32_t count, id; + struct qdma_mm_desc *desc; + uint64_t phys_addr; + uint32_t len; + int ret; +#ifdef TEST_64B_DESC_BYPASS + int bypass_desc_sz_idx = qmda_get_desc_sz_idx(rxq->bypass_desc_sz); +#endif + + if (rxq->status != RTE_ETH_QUEUE_STATE_STARTED) + return 0; + + id = rxq->rx_tail; /* Descriptor index */ + + PMD_DRV_LOG(DEBUG, "recv start on rx queue-id :%d, on tail index:%d\n", + rxq->queue_id, rxq->rx_tail); + +#ifdef TEST_64B_DESC_BYPASS + if (unlikely(rxq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA)) { + PMD_DRV_LOG(DEBUG, "For MM mode, example design doesn't " + "support 64byte descriptor\n"); + return 0; + } +#endif + /* Make 1 less available, otherwise if we allow all descriptors + * to be filled,when nb_pkts = nb_tx_desc - 1, pidx will be same + * as old pidx and HW will treat this as no new descriptors were added. + * Hence, DMA won't happen with new descriptors. + */ + if (nb_pkts > rxq->nb_rx_desc - 2) + nb_pkts = rxq->nb_rx_desc - 2; + + for (count = 0; count < nb_pkts; count++) { + /* allocate new buffer */ + if (rte_mempool_get(rxq->mb_pool, (void *)&mb) != 0) { + rte_panic("No MBUFS\n"); + break; + } + + /* low 32-bits of phys addr must be 4KB aligned... */ + phys_addr = (uint64_t)mb->buf_physaddr + RTE_PKTMBUF_HEADROOM; + + /* make it so the data pointer starts there too... */ + mb->data_off = RTE_PKTMBUF_HEADROOM; + + desc = (struct qdma_mm_desc *)rxq->rx_ring; + desc += id; + + desc->src_addr = rxq->ep_addr; + desc->dst_addr = phys_addr; + desc->dv = QDMA_DESC_VALID; + desc->sop = 0; + desc->eop = 0; + if ((count + 1) == nb_pkts) + desc->eop = QDMA_DESC_EOP; + if (count == 0) + desc->sop = QDMA_DESC_SOP; + + desc->len = (int)rxq->rx_buff_size; + len = (int)rxq->rx_buff_size; + rte_pktmbuf_pkt_len(mb) = (int)rxq->rx_buff_size; + + rte_mbuf_refcnt_set(mb, 1); + mb->packet_type = 0; + mb->ol_flags = 0; + mb->next = 0; + mb->nb_segs = 1; + mb->port = rxq->port_id; + mb->vlan_tci = 0; + mb->hash.rss = 0; + + rx_pkts[count] = mb; + + rxq->ep_addr = (rxq->ep_addr + len) % DMA_BRAM_SIZE; + rxq->rx_tail = (rxq->rx_tail + 1) % (rxq->nb_rx_desc - 1); + id = rxq->rx_tail; + } + + /* Make sure writes to the C2H descriptors are synchronized + * before updating PIDX + */ + rte_wmb(); + + /* update pidx pointer for MM-mode*/ + if (count > 0) + *rxq->rx_pidx = id; + + ret = dma_wb_monitor(rxq, DMA_FROM_DEVICE, id); + if (ret) {//Error + PMD_DRV_LOG(ERR, "DMA Engine write-back monitor " + "timeout error occurred\n"); + return 0; + } + return count; +} +/** + * DPDK callback for receiving packets in burst. + * + * @param rx_queue + * Generic pointer to Rx queue structure. + * @param[out] rx_pkts + * Array to store received packets. + * @param nb_pkts + * Maximum number of packets in array. + * + * @return + * Number of packets successfully received (<= nb_pkts). + */ +uint16_t qdma_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, + uint16_t nb_pkts) +{ + struct qdma_rx_queue *rxq = rx_queue; + uint32_t count; + + if (rxq->st_mode) + count = qdma_recv_pkts_st(rxq, rx_pkts, nb_pkts); + else + count = qdma_recv_pkts_mm(rxq, rx_pkts, nb_pkts); + + return count; +} + +static void reclaim_tx_mbuf(struct qdma_tx_queue *txq, uint16_t cidx) +{ + int fl_desc = 0; + uint16_t count; + int id; + + id = txq->tx_fl_tail; + fl_desc = (int)cidx - id; + if (fl_desc < 0) + fl_desc += (txq->nb_tx_desc - 1); + + for (count = 0; count < fl_desc; count++) { + rte_pktmbuf_free(txq->sw_ring[id]); + txq->sw_ring[id] = NULL; + id++; + if (unlikely(id >= (txq->nb_tx_desc - 1))) + id -= (txq->nb_tx_desc - 1); + } + txq->tx_fl_tail = id; +} + +#ifdef TEST_64B_DESC_BYPASS +static uint16_t qdma_xmit_64B_desc_bypass(struct qdma_tx_queue *txq, + struct rte_mbuf **tx_pkts, uint16_t nb_pkts) +{ + uint16_t count, id; + uint8_t *tx_ring_st_bypass = NULL; + int ofd = -1, ret = 0; + char fln[50]; + + id = txq->tx_tail; + + for (count = 0; count < nb_pkts; count++) { + tx_ring_st_bypass = (uint8_t *)txq->tx_ring; + memset(&tx_ring_st_bypass[id * (txq->bypass_desc_sz)], + ((id % 255) + 1), txq->bypass_desc_sz); + + sprintf(fln, "q_%d_%s", txq->queue_id, + "h2c_desc_data.txt"); + ofd = open(fln, O_RDWR | O_CREAT | O_APPEND | O_SYNC, + 0666); + if (ofd < 0) { + PMD_DRV_LOG(INFO, " txq[%d] unable to create " + "outfile to dump descriptor" + " data", txq->queue_id); + return 0; + } + ret = write(ofd, &(tx_ring_st_bypass[id * + (txq->bypass_desc_sz)]), + txq->bypass_desc_sz); + if (ret < txq->bypass_desc_sz) + PMD_DRV_LOG(DEBUG, "Txq[%d] descriptor data " + "len: %d, written to inputfile" + " :%d bytes", txq->queue_id, + txq->bypass_desc_sz, ret); + close(ofd); + + rte_pktmbuf_free(tx_pkts[count]); + + id++; + if (unlikely(id >= (txq->nb_tx_desc - 1))) + id -= (txq->nb_tx_desc - 1); + } + + /* Make sure writes to the H2C descriptors are synchronized + * before updating PIDX + */ + rte_wmb(); + + txq->tx_tail = id; + *txq->tx_pidx = txq->tx_tail; + + PMD_DRV_LOG(DEBUG, " xmit completed with count:%d\n", count); + + return count; +} +#endif + +uint16_t qdma_xmit_pkts_st(struct qdma_tx_queue *txq, struct rte_mbuf **tx_pkts, + uint16_t nb_pkts) +{ + struct rte_mbuf *mb; + uint16_t count, id; + uint64_t phys_addr; + struct qdma_h2c_desc *desc; + int avail, in_use; + uint16_t pkt_len; + uint16_t cidx = 0; + struct qdma_h2c_desc *tx_ring_st = NULL; +#ifdef TEST_64B_DESC_BYPASS + int bypass_desc_sz_idx = qmda_get_desc_sz_idx(txq->bypass_desc_sz); + + if (unlikely(txq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA)) { + return qdma_xmit_64B_desc_bypass(txq, tx_pkts, nb_pkts); + } +#endif + + id = txq->tx_tail; + cidx = txq->wb_status->cidx; + PMD_DRV_LOG(DEBUG, "Xmit start on tx queue-id:%d, tail index:%d\n", + txq->queue_id, id); + + /* Free transmitted mbufs back to pool */ + reclaim_tx_mbuf(txq, cidx); + + in_use = (int)txq->tx_tail - cidx; + if (in_use < 0) + in_use += (txq->nb_tx_desc - 1); + + /* Make 1 less available, otherwise if we allow all descriptors + * to be filled, when nb_pkts = nb_tx_desc - 1, pidx will be same + * as old pidx and HW will treat this as no new descriptors were added. + * Hence, DMA won't happen with new descriptors. + */ + avail = txq->nb_tx_desc - 2 - in_use; + if (!avail) { + PMD_DRV_LOG(DEBUG, "Tx queue full, in_use = %d", in_use); + return 0; + } + + if (nb_pkts > avail) + nb_pkts = avail; + + tx_ring_st = (struct qdma_h2c_desc *)txq->tx_ring; + for (count = 0; count < nb_pkts; count++) { + desc = (struct qdma_h2c_desc *)&tx_ring_st[id]; + + mb = tx_pkts[count]; + txq->sw_ring[id] = mb; + + phys_addr = mb->buf_physaddr + mb->data_off; + + if (rte_pktmbuf_pkt_len(mb) != + rte_pktmbuf_data_len(mb)) { + PMD_DRV_LOG(ERR, "Scatter buffers are not " + "supported"); + break; + } + desc->len = rte_pktmbuf_data_len(mb); + pkt_len = rte_pktmbuf_data_len(mb); + + desc->pld_len = pkt_len; + PMD_DRV_LOG(DEBUG, "xmit number of bytes:%d, count:%d ", + pkt_len, count); + desc->src_addr = phys_addr; + desc->flags = 0; + desc->cdh_flags = 0; + if (count == 0) + desc->flags |= S_H2C_DESC_F_SOP; + if ((count + 1) == nb_pkts) + desc->flags |= S_H2C_DESC_F_EOP; + + txq->stats.pkts++; + txq->stats.bytes += pkt_len; + + id++; + if (unlikely(id >= (txq->nb_tx_desc - 1))) + id -= (txq->nb_tx_desc - 1); + } + + /* Make sure writes to the H2C descriptors are synchronized + * before updating PIDX + */ + rte_wmb(); + + rte_spinlock_lock(&txq->pidx_update_lock); + txq->tx_tail = id; + txq->tx_desc_pend += count; + + /* Send PIDX update only if pending desc is more than threshold + * Saves frequent Hardware transactions + */ + if (txq->tx_desc_pend >= MIN_TX_PIDX_UPDATE_THRESHOLD) { + *txq->tx_pidx = txq->tx_tail; + txq->tx_desc_pend = 0; + } + rte_spinlock_unlock(&txq->pidx_update_lock); + + PMD_DRV_LOG(DEBUG, " xmit completed with count:%d\n", count); + + return count; +} + +uint16_t qdma_xmit_pkts_mm(struct qdma_tx_queue *txq, struct rte_mbuf **tx_pkts, + uint16_t nb_pkts) +{ + struct rte_mbuf *mb; + uint32_t count, id; + uint64_t phys_addr; + struct qdma_mm_desc *desc; + int avail, in_use; + int ret; + struct qdma_mm_desc *tx_ring = (struct qdma_mm_desc *)txq->tx_ring; +#ifdef TEST_64B_DESC_BYPASS + int bypass_desc_sz_idx = qmda_get_desc_sz_idx(txq->bypass_desc_sz); +#endif + + id = txq->tx_tail; + PMD_DRV_LOG(DEBUG, "Xmit start on tx queue-id:%d, tail index:%d\n", + txq->queue_id, id); + +#ifdef TEST_64B_DESC_BYPASS + if (unlikely(txq->en_bypass && + bypass_desc_sz_idx == SW_DESC_CNTXT_64B_BYPASS_DMA)) { + PMD_DRV_LOG(DEBUG, "For MM mode, example design doesn't " + "support 64B bypass testing\n"); + return 0; + } +#endif + in_use = txq->tx_tail - txq->wb_status->cidx; + if (in_use < 0) + in_use += (txq->nb_tx_desc - 1); + + /* Make 1 less available, otherwise if we allow all descriptors to be + * filled, when nb_pkts = nb_tx_desc - 1, pidx will be same as old pidx + * and HW will treat this as no new descriptors were added. + * Hence, DMA won't happen with new descriptors. + */ + avail = txq->nb_tx_desc - 2 - in_use; + if (!avail) { + PMD_DRV_LOG(ERR, "Tx queue full, in_use = %d", in_use); + return 0; + } + + if (nb_pkts > avail) + nb_pkts = avail; + + // Set the xmit descriptors and control bits + for (count = 0; count < nb_pkts; count++) { + /* Free the n/w buffer associated with the descriptor 'id' + * to mpool + */ + rte_pktmbuf_free(txq->sw_ring[id]); + + /* see if there is something to receive */ + desc = (struct qdma_mm_desc *)&tx_ring[id]; + + /* Set the descriptor control bits */ + desc->dv = QDMA_DESC_VALID; + desc->sop = 0; + desc->eop = 0; + if ((count + 1) == nb_pkts) + desc->eop = QDMA_DESC_EOP; + if (count == 0) + desc->sop = QDMA_DESC_SOP; + + mb = tx_pkts[count]; + txq->sw_ring[id] = mb; + + phys_addr = mb->buf_physaddr + mb->data_off; + + desc->len = rte_pktmbuf_data_len(mb); + + /*if (desc->len > (DMA_BRAM_SIZE / txq->num_queues)) + * desc->len = DMA_BRAM_SIZE / txq->num_queues; + */ + + PMD_DRV_LOG(DEBUG, "xmit number of bytes:%d, count:%d ", + desc->len, count); + desc->src_addr = phys_addr; + + desc->dst_addr = txq->ep_addr; + + txq->ep_addr = (txq->ep_addr + desc->len) % DMA_BRAM_SIZE; + txq->tx_tail = (txq->tx_tail + 1) % (txq->nb_tx_desc - 1); + id = txq->tx_tail; + } + + /* Make sure writes to the H2C descriptors are synchronized before + * updating PIDX + */ + rte_wmb(); + + /* update pidx pointer */ + if (count > 0) + *txq->tx_pidx = id; + + ret = dma_wb_monitor(txq, DMA_TO_DEVICE, id); + if (ret) { + PMD_DRV_LOG(ERR, "DMA Engine write-back monitor " + "timeout error occurred\n"); + return 0; + } + + PMD_DRV_LOG(DEBUG, " xmit completed with count:%d", count); + return count; +} +/** + * DPDK callback for transmitting packets in burst. + * + * @param tx_queue + G* Generic pointer to TX queue structure. + * @param[in] tx_pkts + * Packets to transmit. + * @param nb_pkts + * Number of packets in array. + * + * @return + * Number of packets successfully transmitted (<= nb_pkts). + */ +uint16_t qdma_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, + uint16_t nb_pkts) +{ + struct qdma_tx_queue *txq = tx_queue; + uint16_t count; + + if (txq->status != RTE_ETH_QUEUE_STATE_STARTED) + return 0; + + if (txq->st_mode) + count = qdma_xmit_pkts_st(txq, tx_pkts, nb_pkts); + else + count = qdma_xmit_pkts_mm(txq, tx_pkts, nb_pkts); + + return count; +} diff --git a/QDMA/DPDK/drivers/net/qdma/qdma_user.h b/QDMA/DPDK/drivers/net/qdma/qdma_user.h new file mode 100644 index 0000000..520216c --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/qdma_user.h @@ -0,0 +1,77 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __QDMA_USER_H__ +#define __QDMA_USER_H__ +/** + * @file + * @brief This file contains example design/user logic controlled + * data structures + * The driver is specific to an example design, if the example design + * changes user controlled parameters, this file needs to be modified + * appropriately. + * Structures for Completion entry, Descriptor bypass can be added here. + */ + + /** + * C2H Completion entry structure + * This structure is specific for the example design. + * Processing of this ring happens in qdma_rxtx.c. + */ +struct __attribute__ ((packed)) c2h_cmpt_ring +{ + volatile uint32_t data_frmt:1; /* For 2018.2 IP, this field + * determines the Standard or User + * format of completion entry + */ + volatile uint32_t color:1; /* This field inverts every time + * PIDX wraps the completion ring + */ + volatile uint32_t err:1; /* Indicates that C2H engine + * encountered a descriptor + * error + */ + volatile uint32_t desc_used:1; /* Indicates that the completion + * packet consumes descriptor in + * C2H ring + */ + volatile uint32_t length:16; /* Indicates length of the data + * packet + */ + volatile uint32_t user_rsv:4; /* Reserved field */ + volatile uint8_t user_def[]; /* User logic defined data of + * length based on CMPT entry + * length + */ +}; + +#endif /* ifndef __QDMA_USER_H__ */ diff --git a/QDMA/DPDK/drivers/net/qdma/qdma_vf_ethdev.c b/QDMA/DPDK/drivers/net/qdma/qdma_vf_ethdev.c new file mode 100644 index 0000000..198ae20 --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/qdma_vf_ethdev.c @@ -0,0 +1,968 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdint.h> +#include <stdbool.h> +#include <sys/mman.h> +#include <sys/fcntl.h> +#include <rte_memzone.h> +#include <rte_string_fns.h> +#include <rte_ethdev_pci.h> +#include <rte_malloc.h> +#include <rte_dev.h> +#include <rte_pci.h> +#include <rte_ether.h> +#include <rte_ethdev.h> +#include <rte_cycles.h> +#include <rte_alarm.h> +#include <unistd.h> +#include <string.h> +#include <linux/pci.h> + +#include "qdma.h" +#include "qdma_regs.h" +#include "version.h" + +/* + * The set of PCI devices this driver supports + */ +static struct rte_pci_id qdma_vf_pci_id_tbl[] = { +#define RTE_PCI_DEV_ID_DECL_XNIC(vend, dev) {RTE_PCI_DEVICE(vend, dev)}, +#ifndef PCI_VENDOR_ID_XILINX +#define PCI_VENDOR_ID_XILINX 0x10ee +#endif + + /** Gen 1 VF */ + /** PCIe lane width x1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa011) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa111) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa211) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa311) /* VF on PF 3 */ + /** PCIe lane width x4 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa014) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa114) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa214) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa314) /* VF on PF 3 */ + /** PCIe lane width x8 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa018) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa118) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa218) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa318) /* VF on PF 3 */ + /** PCIe lane width x16 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa01f) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa11f) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa21f) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa31f) /* VF on PF 3 */ + + /** Gen 2 VF */ + /** PCIe lane width x1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa021) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa121) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa221) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa321) /* VF on PF 3 */ + /** PCIe lane width x4 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa024) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa124) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa224) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa324) /* VF on PF 3 */ + /** PCIe lane width x8 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa028) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa128) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa228) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa328) /* VF on PF 3 */ + /** PCIe lane width x16 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa02f) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa12f) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa22f) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa32f) /* VF on PF 3 */ + + /** Gen 3 VF */ + /** PCIe lane width x1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa031) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa131) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa231) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa331) /* VF on PF 3 */ + /** PCIe lane width x4 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa034) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa134) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa234) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa334) /* VF on PF 3 */ + /** PCIe lane width x8 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa038) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa138) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa238) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa338) /* VF on PF 3 */ + /** PCIe lane width x16 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa03f) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa13f) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa23f) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa33f) /* VF on PF 3 */ + + /** Gen 4 VF */ + /** PCIe lane width x1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa041) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa141) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa241) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa341) /* VF on PF 3 */ + /** PCIe lane width x4 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa044) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa144) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa244) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa344) /* VF on PF 3 */ + /** PCIe lane width x8 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa048) /* VF on PF 0 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa148) /* VF on PF 1 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa248) /* VF on PF 2 */ + RTE_PCI_DEV_ID_DECL_XNIC(PCI_VENDOR_ID_XILINX, 0xa348) /* VF on PF 3 */ + + { .vendor_id = 0, /* sentinel */ }, +}; + +static int qdma_vf_write_mbx(struct rte_eth_dev *dev, + struct qdma_mbox_data *send_msg) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct mbox_omsg *out_msg; + struct mbox_fsr *mbx_stat; + uint64_t bar_addr, reg_addr; + uint16_t i; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + reg_addr = bar_addr + QDMA_TRQ_EXT_VF + QDMA_MBOX_FSR; + + mbx_stat = (struct mbox_fsr *)(reg_addr); + + i = MAILBOX_PROG_POLL_COUNT; + while (mbx_stat->omsg_stat && i) { + rte_delay_ms(MAILBOX_VF_MSG_DELAY); + i--; + } + if (!i) + return -1; + out_msg = (struct mbox_omsg *)(bar_addr + QDMA_TRQ_EXT_VF + + QDMA_MBOX_OMSG); + + qdma_write_reg((uint64_t)&out_msg->omsg[0], + rte_cpu_to_le_32(send_msg->err << 24 | + send_msg->filler << 20 | + send_msg->debug_funid << 8 | + send_msg->opcode)); + for (i = 1; i < 32; i++) + qdma_write_reg((uint64_t)&out_msg->omsg[i], + rte_cpu_to_le_32(send_msg->data[i - 1])); + + qdma_write_reg((uint64_t)(bar_addr + QDMA_TRQ_EXT_VF + QDMA_MBOX_FCMD), + QDMA_MBOX_CMD_SEND); + + return 0; +} + +static int check_outmsg_status(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct mbox_fsr *mbx_stat; + uint64_t bar_addr, reg_addr; + uint16_t i; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + reg_addr = bar_addr + QDMA_TRQ_EXT_VF + QDMA_MBOX_FSR; + + mbx_stat = (struct mbox_fsr *)(reg_addr); + + i = MAILBOX_PROG_POLL_COUNT; + while (mbx_stat->omsg_stat && i) { + rte_delay_ms(MAILBOX_VF_MSG_DELAY); + i--; + } + if (!i) { + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) did not receive ack from PF", + qdma_dev->pf); + return -1; + } + return 0; +} + +static int qdma_vf_dev_start(struct rte_eth_dev *dev) +{ + struct qdma_tx_queue *txq; + struct qdma_rx_queue *rxq; + uint32_t qid; + int err; + + PMD_DRV_LOG(INFO, "qdma_dev_start: Starting\n"); + + /* prepare descriptor rings for operation */ + for (qid = 0; qid < dev->data->nb_tx_queues; qid++) { + txq = (struct qdma_tx_queue *)dev->data->tx_queues[qid]; + + /*Deferred Queues should not start with dev_start*/ + if (!txq->tx_deferred_start) { + err = qdma_vf_dev_tx_queue_start(dev, qid); + if (err != 0) + return err; + } + } + + for (qid = 0; qid < dev->data->nb_rx_queues; qid++) { + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + + /*Deferred Queues should not start with dev_start*/ + if (!rxq->rx_deferred_start) { + err = qdma_vf_dev_rx_queue_start(dev, qid); + if (err != 0) + return err; + } + } + return 0; +} + +static int qdma_pf_bye(struct rte_eth_dev *dev) +{ +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) received BYE message from PF", + qdma_dev->pf); +#endif + _rte_eth_dev_callback_process(dev, RTE_ETH_EVENT_VF_MBOX, NULL, NULL); + return 0; +} + +static void qdma_read_pf_msg(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + uint64_t bar_addr, reg_addr; + struct qdma_mbox_data recv_msg; + struct mbox_imsg *in_msg; + int32_t retval = -1; + uint32_t reg_val; + int i; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + reg_addr = bar_addr + QDMA_TRQ_EXT_VF + QDMA_MBOX_IMSG; + + in_msg = (struct mbox_imsg *)(reg_addr); + + reg_val = qdma_read_reg((uint64_t)&in_msg->imsg[0]); + + recv_msg.opcode = reg_val & 0xff; + recv_msg.debug_funid = (reg_val >> 8) & 0xfff; + recv_msg.filler = (reg_val >> 20) & 0xf; + recv_msg.err = (reg_val >> 24) & 0xff; + + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) received mbox message from PF %d", + qdma_dev->pf, recv_msg.debug_funid); + for (i = 1; i < 32; i++) + recv_msg.data[i - 1] = qdma_read_reg((uint64_t)& + in_msg->imsg[i]); + + switch (recv_msg.opcode) { + case QDMA_MBOX_OPCD_BYE: + retval = qdma_pf_bye(dev); + break; + } + /* once the msg is handled ACK it */ + if (!retval) + qdma_write_reg((bar_addr + QDMA_TRQ_EXT_VF + QDMA_MBOX_FCMD), + QDMA_MBOX_CMD_RECV); +} + +static void qdma_check_pf_msg(void *arg) +{ + struct rte_eth_dev *dev = (struct rte_eth_dev *)arg; + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + uint64_t bar_addr, reg_addr; + struct mbox_fsr *mbx_stat; + + if (!qdma_dev) + return; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + reg_addr = bar_addr + QDMA_TRQ_EXT_VF + QDMA_MBOX_FSR; + mbx_stat = (struct mbox_fsr *)(reg_addr); + + if (mbx_stat->imsg_stat == 1) + qdma_read_pf_msg(dev); + rte_eal_alarm_set(MBOX_POLL_FRQ, qdma_check_pf_msg, arg); +} + +static int qdma_vf_dev_link_update(struct rte_eth_dev *dev, + __rte_unused int wait_to_complete) +{ + dev->data->dev_link.link_status = ETH_LINK_UP; + dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX; + dev->data->dev_link.link_speed = ETH_SPEED_NUM_10G; + + PMD_DRV_LOG(INFO, "Link update done\n"); + + return 0; +} + +static void qdma_vf_dev_infos_get(__rte_unused struct rte_eth_dev *dev, + struct rte_eth_dev_info *dev_info) +{ + dev_info->max_rx_queues = QDMA_QUEUES_NUM_MAX; + dev_info->max_tx_queues = QDMA_QUEUES_NUM_MAX; + dev_info->min_rx_bufsize = QDMA_MIN_RXBUFF_SIZE; + dev_info->max_rx_pktlen = DMA_BRAM_SIZE; + dev_info->max_mac_addrs = 1; +} + +static void qdma_vf_dev_stop(struct rte_eth_dev *dev) +{ +#ifdef RTE_LIBRTE_QDMA_DEBUG_DRIVER + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; +#endif + uint32_t qid; + + /* reset driver's internal queue structures to default values */ + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) Stop H2C & C2H queues", qdma_dev->pf); + for (qid = 0; qid < dev->data->nb_tx_queues; qid++) + qdma_vf_dev_tx_queue_stop(dev, qid); + for (qid = 0; qid < dev->data->nb_rx_queues; qid++) + qdma_vf_dev_rx_queue_stop(dev, qid); +} + +static void qdma_vf_dev_close(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_tx_queue *txq; + struct qdma_rx_queue *rxq; + struct qdma_mbox_data send_msg; + int ret = 0; + uint32_t qid; + + PMD_DRV_LOG(INFO, "Closing all queues\n"); + + /* send MBOX Bye MSG for both TX and RX*/ + + memset(&send_msg, 0, sizeof(send_msg)); + send_msg.opcode = QDMA_MBOX_OPCD_BYE; + send_msg.debug_funid = qdma_dev->pf; + + ret = qdma_vf_write_mbx(dev, &send_msg); + if (ret != 0) + RTE_LOG(ERR, PMD, "VF-%d(DEVFN) Failed sending QBYE MSG", + qdma_dev->pf); + ret = check_outmsg_status(dev); + if (ret != 0) + RTE_LOG(ERR, PMD, "VF-%d(DEVFN) did not receive ack from PF", + qdma_dev->pf); + + /* iterate over rx queues */ + for (qid = 0; qid < dev->data->nb_rx_queues; ++qid) { + rxq = dev->data->rx_queues[qid]; + if (rxq != NULL) { + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) Remove C2H queue: %d", + qdma_dev->pf, qid); + + if (rxq->sw_ring) + rte_free(rxq->sw_ring); +//#ifdef QDMA_STREAM + if (rxq->st_mode) { /** if ST-mode **/ + if (rxq->rx_cmpt_mz) + rte_memzone_free(rxq->rx_cmpt_mz); + } +//#endif + if (rxq->rx_mz) + rte_memzone_free(rxq->rx_mz); + rte_free(rxq); + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) C2H queue %d removed", + qdma_dev->pf, qid); + } + } + /* iterate over tx queues */ + for (qid = 0; qid < dev->data->nb_tx_queues; ++qid) { + txq = dev->data->tx_queues[qid]; + if (txq != NULL) { + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) Remove H2C queue: %d", + qdma_dev->pf, qid); + + if (txq->sw_ring) + rte_free(txq->sw_ring); + if (txq->tx_mz) + rte_memzone_free(txq->tx_mz); + rte_free(txq); + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) H2C queue %d removed", + qdma_dev->pf, qid); + } + } +} + +static int qdma_vf_dev_configure(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_mbox_data send_msg; + int32_t ret = 0; + uint32_t qid = 0; + + /** FMAP configuration **/ + qdma_dev->qsets_en = RTE_MAX(dev->data->nb_rx_queues, + dev->data->nb_tx_queues); + + if (qdma_dev->queue_base + qdma_dev->qsets_en > qdma_dev->qsets_max) { + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) Error: Number of Queues to be " + "configured are greater than the queues " + "supported by the hardware\n", qdma_dev->pf); + qdma_dev->qsets_en = 0; + return -1; + } + + qdma_dev->q_info = rte_zmalloc("qinfo", sizeof(struct queue_info) * + qdma_dev->qsets_en, 0); + if (qdma_dev->q_info == NULL) { + PMD_DRV_LOG(INFO, "VF-%d fail to allocate queue info memory\n", + qdma_dev->pf); + return (-ENOMEM); + } + + /* Initialize queue_modes to all 1's ( i.e. Streaming) */ + for (qid = 0 ; qid < qdma_dev->qsets_en; qid++) + qdma_dev->q_info[qid].queue_mode = STREAMING_MODE; + + for (qid = 0 ; qid < dev->data->nb_rx_queues; qid++) { + qdma_dev->q_info[qid].cmpt_desc_sz = qdma_dev->cmpt_desc_len; + qdma_dev->q_info[qid].rx_bypass_mode = + qdma_dev->c2h_bypass_mode; + } + + for (qid = 0 ; qid < dev->data->nb_tx_queues; qid++) + qdma_dev->q_info[qid].tx_bypass_mode = + qdma_dev->h2c_bypass_mode; + + memset(&send_msg, 0, sizeof(send_msg)); + + /* send hi msg to PF with queue-base and queue-max*/ + send_msg.opcode = QDMA_MBOX_OPCD_HI; + send_msg.debug_funid = qdma_dev->pf; + + send_msg.data[0] = qdma_dev->queue_base; + send_msg.data[1] = qdma_dev->qsets_en; + + ret = qdma_vf_write_mbx(dev, &send_msg); + if (ret < 0) { + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) Failed sending HI MSG", + qdma_dev->pf); + return ret; + } + ret = check_outmsg_status(dev); + + return ret; +} + +int qdma_vf_dev_tx_queue_start(struct rte_eth_dev *dev, uint16_t qid) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_tx_queue *txq; + struct qdma_mbox_data send_msg; + uint32_t queue_base = qdma_dev->queue_base; + uint64_t phys_addr; + int err; + + memset(&send_msg, 0, sizeof(send_msg)); + send_msg.opcode = QDMA_MBOX_OPCD_QADD; + send_msg.debug_funid = qdma_dev->pf; + txq = (struct qdma_tx_queue *)dev->data->tx_queues[qid]; + qdma_reset_tx_queue(txq); + + phys_addr = (uint64_t)txq->tx_mz->phys_addr; + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) Phys-addr for H2C queue-id:%d: " + "is Lo:0x%lx, Hi:0x%lx\n", + qdma_dev->pf, qid, + rte_cpu_to_le_32(phys_addr & MASK_32BIT), + rte_cpu_to_le_32(phys_addr >> 32)); + + /* send MBOX msg QADD for H2C*/ + send_msg.data[0] = (qid + queue_base); + send_msg.data[1] = txq->st_mode; + send_msg.data[2] = 0; + send_msg.data[3] = txq->ringszidx; + send_msg.data[4] = 0; + send_msg.data[5] = 0; + send_msg.data[6] = 0; + send_msg.data[7] = 0; + send_msg.data[8] = rte_cpu_to_le_32(phys_addr & MASK_32BIT); + send_msg.data[9] = rte_cpu_to_le_32(phys_addr >> 32); + send_msg.data[15] = txq->en_bypass; + send_msg.data[16] = qmda_get_desc_sz_idx(txq->bypass_desc_sz); + + err = qdma_vf_write_mbx(dev, &send_msg); + if (err != 0) { + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) Failed sending H2C QADD MSG " + "for QID:%d", qdma_dev->pf, qid); + return err; + } + err = check_outmsg_status(dev); + if (err != 0) + return err; + + qdma_start_tx_queue(txq); + + dev->data->tx_queue_state[qid] = RTE_ETH_QUEUE_STATE_STARTED; + txq->status = RTE_ETH_QUEUE_STATE_STARTED; + + return 0; +} + +int qdma_vf_dev_rx_queue_start(struct rte_eth_dev *dev, uint16_t qid) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_rx_queue *rxq; + struct qdma_mbox_data send_msg; + uint32_t queue_base = qdma_dev->queue_base; + uint64_t phys_addr, cmpt_phys_addr; + uint8_t en_pfetch, cmpt_desc_fmt; + int err; + + memset(&send_msg, 0, sizeof(send_msg)); + send_msg.opcode = QDMA_MBOX_OPCD_QADD; + send_msg.debug_funid = qdma_dev->pf; + + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + qdma_reset_rx_queue(rxq); + + en_pfetch = (rxq->en_prefetch) ? 1 : 0; + switch (rxq->cmpt_desc_len) { + case CMPT_DESC_LEN_8B: + cmpt_desc_fmt = CMPT_CNTXT_DESC_SIZE_8B; + break; + case CMPT_DESC_LEN_16B: + cmpt_desc_fmt = CMPT_CNTXT_DESC_SIZE_16B; + break; + case CMPT_DESC_LEN_32B: + cmpt_desc_fmt = CMPT_CNTXT_DESC_SIZE_32B; + break; + case CMPT_DESC_LEN_64B: + cmpt_desc_fmt = CMPT_CNTXT_DESC_SIZE_64B; + break; + default: + cmpt_desc_fmt = CMPT_CNTXT_DESC_SIZE_8B; + break; + } + + phys_addr = (uint64_t)rxq->rx_mz->phys_addr; + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) Phys-addr for C2H queue-id:%d: " + "is Lo:0x%lx, Hi:0x%lx\n", + qdma_dev->pf, qid, + rte_cpu_to_le_32(phys_addr & MASK_32BIT), + rte_cpu_to_le_32(phys_addr >> 32)); + + if (rxq->st_mode) + cmpt_phys_addr = (uint64_t)rxq->rx_cmpt_mz->phys_addr; + else + cmpt_phys_addr = 0; + + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) C2H Completion queue Phys-addr " + "for queue-id:%d: is Lo:0x%lx, Hi:0x%lx\n", + qdma_dev->pf, qid, + rte_cpu_to_le_32(cmpt_phys_addr & MASK_32BIT), + rte_cpu_to_le_32(cmpt_phys_addr >> 32)); + err = qdma_start_rx_queue(rxq); + if (err != 0) + return err; + + /* Send Mbox Msg QADD for C2H */ + send_msg.data[0] = (qid + queue_base); + send_msg.data[1] = rxq->st_mode; + send_msg.data[2] = 1; + send_msg.data[3] = rxq->ringszidx; + send_msg.data[4] = rxq->buffszidx; + send_msg.data[5] = rxq->threshidx; + send_msg.data[6] = rxq->timeridx; + send_msg.data[7] = rxq->triggermode; + send_msg.data[8] = rte_cpu_to_le_32(phys_addr & MASK_32BIT); + send_msg.data[9] = rte_cpu_to_le_32(phys_addr >> 32); + send_msg.data[10] = rte_cpu_to_le_32(cmpt_phys_addr & MASK_32BIT); + send_msg.data[11] = rte_cpu_to_le_32(cmpt_phys_addr >> 32); + send_msg.data[12] = rxq->cmpt_ringszidx; + send_msg.data[13] = en_pfetch; + send_msg.data[14] = cmpt_desc_fmt; + send_msg.data[15] = rxq->en_bypass; + send_msg.data[16] = qmda_get_desc_sz_idx(rxq->bypass_desc_sz); + send_msg.data[17] = rxq->en_bypass_prefetch; + send_msg.data[19] = rxq->dis_overflow_check; + + err = qdma_vf_write_mbx(dev, &send_msg); + if (err != 0) { + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) Failed sending C2H QADD MSG " + "for QID:%d", qdma_dev->pf, qid); + return err; + } + err = check_outmsg_status(dev); + if (err != 0) + return err; + + if (rxq->st_mode) { + *rxq->rx_cidx = (0x09000000) | 0x0; + *rxq->rx_pidx = (rxq->nb_rx_desc - 2); + } + + dev->data->rx_queue_state[qid] = RTE_ETH_QUEUE_STATE_STARTED; + rxq->status = RTE_ETH_QUEUE_STATE_STARTED; + return 0; +} + +int qdma_vf_dev_rx_queue_stop(struct rte_eth_dev *dev, uint16_t qid) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_rx_queue *rxq; + struct qdma_mbox_data send_msg; + uint32_t queue_base = qdma_dev->queue_base; + int i = 0, err = 0, cnt = 0; + + rxq = (struct qdma_rx_queue *)dev->data->rx_queues[qid]; + + rxq->status = RTE_ETH_QUEUE_STATE_STOPPED; + + /* Wait for queue to recv all packets. */ + if (rxq->st_mode) { /** ST-mode **/ + while (rxq->wb_status->pidx != rxq->rx_cmpt_tail) { + usleep(10); + if (cnt++ > 10000) + break; + } + } else { /* MM mode */ + while (rxq->wb_status->cidx != rxq->rx_tail) { + usleep(10); + if (cnt++ > 10000) + break; + } + } + + + memset(&send_msg, 0, sizeof(send_msg)); + send_msg.opcode = QDMA_MBOX_OPCD_QDEL; + send_msg.debug_funid = qdma_dev->pf; + send_msg.data[0] = (qid + queue_base); + send_msg.data[1] = DMA_FROM_DEVICE; + + err = qdma_vf_write_mbx(dev, &send_msg); + if (err != 0) { + RTE_LOG(ERR, PMD, "VF-%d(DEVFN) Failed sending RX QDEL MSG " + "for QID:%d", qdma_dev->pf, qid); + return err; + } + + err = check_outmsg_status(dev); + if (err != 0) { + RTE_LOG(ERR, PMD, "VF-%d(DEVFN) did not receive ack from PF " + "for RX QDEL MSG for QID:%d", qdma_dev->pf, qid); + return err; + } + + if (rxq->st_mode) { /** ST-mode **/ +#ifdef DUMP_MEMPOOL_USAGE_STATS + PMD_DRV_LOG(INFO, "%s(): %d: queue id = %d, mbuf_avail_count = " + "%d, mbuf_in_use_count = %d", + __func__, __LINE__, rxq->queue_id, + rte_mempool_avail_count(rxq->mb_pool), + rte_mempool_in_use_count(rxq->mb_pool)); +#endif //DUMP_MEMPOOL_USAGE_STATS + + for (i = 0; i < rxq->nb_rx_desc - 1; i++) { + rte_pktmbuf_free(rxq->sw_ring[i]); + rxq->sw_ring[i] = NULL; + } +#ifdef DUMP_MEMPOOL_USAGE_STATS + PMD_DRV_LOG(INFO, "%s(): %d: queue id = %d, mbuf_avail_count = " + "%d, mbuf_in_use_count = %d", + __func__, __LINE__, rxq->queue_id, + rte_mempool_avail_count(rxq->mb_pool), + rte_mempool_in_use_count(rxq->mb_pool)); +#endif //DUMP_MEMPOOL_USAGE_STATS + } + + qdma_reset_rx_queue(rxq); + dev->data->rx_queue_state[qid] = RTE_ETH_QUEUE_STATE_STOPPED; + return 0; +} + + +int qdma_vf_dev_tx_queue_stop(struct rte_eth_dev *dev, uint16_t qid) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct qdma_tx_queue *txq; + struct qdma_mbox_data send_msg; + uint32_t queue_base = qdma_dev->queue_base; + int err = 0; + int i = 0, cnt = 0; + + txq = (struct qdma_tx_queue *)dev->data->tx_queues[qid]; + + txq->status = RTE_ETH_QUEUE_STATE_STOPPED; + /* Wait for TXQ to send out all packets. */ + while (txq->wb_status->cidx != txq->tx_tail) { + usleep(10); + if (cnt++ > 10000) + break; + } + + memset(&send_msg, 0, sizeof(send_msg)); + send_msg.opcode = QDMA_MBOX_OPCD_QDEL; + send_msg.debug_funid = qdma_dev->pf; + send_msg.data[0] = (qid + queue_base); + send_msg.data[1] = DMA_TO_DEVICE; + + err = qdma_vf_write_mbx(dev, &send_msg); + if (err != 0) { + RTE_LOG(ERR, PMD, "VF-%d(DEVFN) Failed sending TX QDEL MSG " + "for QID:%d", qdma_dev->pf, qid); + return err; + } + + err = check_outmsg_status(dev); + if (err != 0) { + RTE_LOG(ERR, PMD, "VF-%d(DEVFN) did not receive ack from PF " + "for TX QDEL MSG for QID:%d", qdma_dev->pf, qid); + return err; + } + + qdma_reset_tx_queue(txq); + + /* Free mbufs if any pending in the ring */ + for (i = 0; i < txq->nb_tx_desc - 1; i++) { + rte_pktmbuf_free(txq->sw_ring[i]); + txq->sw_ring[i] = NULL; + } + + dev->data->tx_queue_state[qid] = RTE_ETH_QUEUE_STATE_STOPPED; + return 0; +} + +static struct eth_dev_ops qdma_vf_eth_dev_ops = { + .dev_configure = qdma_vf_dev_configure, + .dev_infos_get = qdma_vf_dev_infos_get, + .dev_start = qdma_vf_dev_start, + .dev_stop = qdma_vf_dev_stop, + .dev_close = qdma_vf_dev_close, + .link_update = qdma_vf_dev_link_update, + .rx_queue_setup = qdma_dev_rx_queue_setup, + .tx_queue_setup = qdma_dev_tx_queue_setup, + .rx_queue_release = qdma_dev_rx_queue_release, + .tx_queue_release = qdma_dev_tx_queue_release, + .rx_queue_start = qdma_vf_dev_rx_queue_start, + .rx_queue_stop = qdma_vf_dev_rx_queue_stop, + .tx_queue_start = qdma_vf_dev_tx_queue_start, + .tx_queue_stop = qdma_vf_dev_tx_queue_stop, +}; + +/** + * DPDK callback to register a PCI device. + * + * This function creates an Ethernet device for each port of a given + * PCI device. + * + * @param[in] dev + * Pointer to Ethernet device structure. + * + * @return + * 0 on success, negative errno value on failure. + */ +static int eth_qdma_vf_dev_init(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *dma_priv; + uint8_t *baseaddr; + uint64_t bar_len; + int i, idx; + static bool once = true; + struct rte_pci_device *pci_dev; + + /* sanity checks */ + if (dev == NULL) + return -EINVAL; + if (dev->data == NULL) + return -EINVAL; + if (dev->data->dev_private == NULL) + return -EINVAL; + + pci_dev = RTE_ETH_DEV_TO_PCI(dev); + if (pci_dev == NULL) + return -EINVAL; + + /* for secondary processes, we don't initialise any further as primary + * has already done this work. + */ + if (rte_eal_process_type() != RTE_PROC_PRIMARY) { + dev->dev_ops = &qdma_vf_eth_dev_ops; + return 0; + } + + if (once) { + RTE_LOG(INFO, PMD, "QDMA PMD VERSION: %s\n", QDMA_PMD_VERSION); + once = false; + } + + /* allocate space for a single Ethernet MAC address */ + dev->data->mac_addrs = rte_zmalloc("qdma_vf", ETHER_ADDR_LEN * 1, 0); + if (dev->data->mac_addrs == NULL) + return -ENOMEM; + + /* Copy some dummy Ethernet MAC address for XDMA device + * This will change in real NIC device... + */ + for (i = 0; i < ETHER_ADDR_LEN; ++i) + dev->data->mac_addrs[0].addr_bytes[i] = 0x15 + i; + + /* Init system & device */ + dma_priv = (struct qdma_pci_dev *)dev->data->dev_private; + dma_priv->pf = PCI_DEVFN(pci_dev->addr.devid, pci_dev->addr.function); + dma_priv->is_vf = 1; + + dma_priv->qsets_max = QDMA_QUEUES_NUM_MAX; + dma_priv->queue_base = DEFAULT_QUEUE_BASE; + dma_priv->timer_count = DEFAULT_TIMER_CNT_TRIG_MODE_TIMER; + + /* Setting default Mode to TRIG_MODE_USER_TIMER_COUNT */ + dma_priv->trigger_mode = TRIG_MODE_USER_TIMER_COUNT; + if (dma_priv->trigger_mode == TRIG_MODE_USER_TIMER_COUNT) + dma_priv->timer_count = DEFAULT_TIMER_CNT_TRIG_MODE_COUNT_TIMER; + + /* !! FIXME default to enabled for everything. + * + * Currently the registers are not available for VFs, so + * setting them as enabled. + */ + dma_priv->st_mode_en = 1; + dma_priv->mm_mode_en = 1; + + dma_priv->en_desc_prefetch = 0; //Keep prefetch default to 0 + dma_priv->cmpt_desc_len = DEFAULT_QDMA_CMPT_DESC_LEN; + dma_priv->c2h_bypass_mode = C2H_BYPASS_MODE_NONE; + dma_priv->h2c_bypass_mode = 0; + + dev->dev_ops = &qdma_vf_eth_dev_ops; + dev->rx_pkt_burst = &qdma_recv_pkts; + dev->tx_pkt_burst = &qdma_xmit_pkts; + + dma_priv->config_bar_idx = DEFAULT_VF_CONFIG_BAR; + dma_priv->bypass_bar_idx = BAR_ID_INVALID; + dma_priv->user_bar_idx = BAR_ID_INVALID; + + if (qdma_check_kvargs(dev->device->devargs, dma_priv)) { + PMD_DRV_LOG(INFO, "devargs failed\n"); + rte_free(dev->data->mac_addrs); + return -EINVAL; + } + + idx = qdma_identify_bars(dev); + if (idx < 0) { + rte_free(dev->data->mac_addrs); + return -EINVAL; + } + + PMD_DRV_LOG(INFO, "VF-%d(DEVFN) QDMA device driver probe:", + dma_priv->pf); + + idx = qdma_get_hw_version(dev); + if (idx < 0) { + rte_free(dev->data->mac_addrs); + return -EINVAL; + } + + baseaddr = (uint8_t *) + pci_dev->mem_resource[dma_priv->config_bar_idx].addr; + bar_len = pci_dev->mem_resource[dma_priv->config_bar_idx].len; + + dma_priv->bar_addr[dma_priv->config_bar_idx] = baseaddr; + dma_priv->bar_len[dma_priv->config_bar_idx] = bar_len; + + if (dma_priv->user_bar_idx >= 0) { + baseaddr = (uint8_t *) + pci_dev->mem_resource[dma_priv->user_bar_idx].addr; + bar_len = pci_dev->mem_resource[dma_priv->user_bar_idx].len; + dma_priv->bar_addr[dma_priv->user_bar_idx] = baseaddr; + dma_priv->bar_len[dma_priv->user_bar_idx] = bar_len; + } + rte_eal_alarm_set(MBOX_POLL_FRQ, qdma_check_pf_msg, (void *)dev); + return 0; +} + +/** + * DPDK callback to deregister PCI device. + * + * @param[in] dev + * Pointer to Ethernet device structure. + * + * @return + * 0 on success, negative errno value on failure. + */ +static int eth_qdma_vf_dev_uninit(struct rte_eth_dev *dev) +{ + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + + /* only uninitialize in the primary process */ + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return -EPERM; + /*Cancel pending polls*/ + rte_eal_alarm_cancel(qdma_check_pf_msg, (void *)dev); + dev->dev_ops = NULL; + dev->rx_pkt_burst = NULL; + dev->tx_pkt_burst = NULL; + dev->data->nb_rx_queues = 0; + dev->data->nb_tx_queues = 0; + + if (dev->data->mac_addrs != NULL) { + rte_free(dev->data->mac_addrs); + dev->data->mac_addrs = NULL; + } + + if (qdma_dev->q_info != NULL) { + rte_free(qdma_dev->q_info); + qdma_dev->q_info = NULL; + } + + return 0; +} + +static int eth_qdma_vf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, + struct rte_pci_device *pci_dev) +{ + return rte_eth_dev_pci_generic_probe(pci_dev, + sizeof(struct qdma_pci_dev), + eth_qdma_vf_dev_init); +} + +/* Detach a ethdev interface */ +static int eth_qdma_vf_pci_remove(struct rte_pci_device *pci_dev) +{ + return rte_eth_dev_pci_generic_remove(pci_dev, eth_qdma_vf_dev_uninit); +} + +static struct rte_pci_driver rte_qdma_vf_pmd = { + .id_table = qdma_vf_pci_id_tbl, + .drv_flags = RTE_PCI_DRV_NEED_MAPPING, + .probe = eth_qdma_vf_pci_probe, + .remove = eth_qdma_vf_pci_remove, +}; + +RTE_PMD_REGISTER_PCI(net_qdma_vf, rte_qdma_vf_pmd); +RTE_PMD_REGISTER_PCI_TABLE(net_qdma_vf, qdma_vf_pci_id_tbl); diff --git a/QDMA/DPDK/drivers/net/qdma/qdma_xdebug.c b/QDMA/DPDK/drivers/net/qdma/qdma_xdebug.c new file mode 100644 index 0000000..4db917f --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/qdma_xdebug.c @@ -0,0 +1,1113 @@ +/* + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdint.h> +#include <sys/mman.h> +#include <sys/fcntl.h> +#include <rte_memzone.h> +#include <rte_string_fns.h> +#include <rte_ethdev_pci.h> +#include <rte_malloc.h> +#include <rte_dev.h> +#include <rte_pci.h> +#include <rte_ether.h> +#include <rte_ethdev.h> +#include <rte_cycles.h> +#include <unistd.h> +#include <string.h> +#include <rte_hexdump.h> + +#include "qdma.h" +#include "qdma_export.h" +#include "qdma_regs.h" + +union __attribute__ ((packed)) h2c_c2h_ctxt +{ + struct __attribute__ ((packed)) ctxt_data + { + uint32_t data[5]; + } c_data; + struct __attribute__ ((packed)) ctxt_fields + { + uint16_t pidx; + + uint16_t irq_arm:1; + uint16_t fnc_id:8; + uint16_t rsv0:7; + + uint16_t qen:1; + uint16_t fcrd_en:1; + uint16_t wbi_chk:1; + uint16_t wbi_intvl_en:1; + uint16_t at:1; + uint16_t fetch_max:3; + uint16_t rsv1:4; + uint16_t rng_sz:4; + + uint16_t dsc_sz:2; + uint16_t byp:1; + uint16_t mm_chn:1; + uint16_t wbk_en:1; + uint16_t irq_en:1; + uint16_t port_id:3; + uint16_t irq_no_last:1; + uint16_t err:2; + uint16_t err_wb_sent:1; + uint16_t irq_req:1; + uint16_t mrkr_dis:1; + uint16_t is_mm:1; + + uint64_t dsc_base; + + uint16_t vec:10; + uint16_t int_aggr:1; + } c_fields; +}; + +union __attribute__ ((packed)) c2h_cmpt_ctxt +{ + struct __attribute__ ((packed)) c2h_cmpt_data + { + uint32_t data[5]; + } c_data; + struct __attribute__ ((packed)) c2h_cmpt_fields + { + uint32_t en_stat_desc:1; + uint32_t en_int:1; + uint32_t trig_mode:3; + uint32_t fnc_id:8; + uint32_t rsv0:4; + uint32_t count_idx:4; + uint32_t timer_idx:4; + uint32_t int_st:2; + uint32_t color:1; + uint32_t qsize_idx:4; + + uint64_t rsv1:6; + uint64_t baddr:52; + uint64_t desc_sz:2; + uint64_t pidx_l:4; + + uint32_t pidx_h:12; + uint32_t cidx:16; + uint32_t valid:1; + uint32_t err:2; + uint32_t user_trig_pend:1; + + uint32_t timer_running:1; + uint32_t full_upd:1; + uint32_t ovf_chk_dis:1; + uint32_t at:1; + uint32_t vec:11; + uint32_t int_aggr:1; + uint32_t rsv2:17; + } c_fields; +}; + +union __attribute__ ((packed)) h2c_c2h_hw_ctxt +{ + struct __attribute__ ((packed)) hw_ctxt_data + { + uint32_t data[2]; + } c_data; + struct __attribute__ ((packed)) hw_ctxt_fields + { + uint16_t cidx; + uint16_t crd_use; + + uint16_t rsv0:8; + uint16_t dsc_pnd:1; + uint16_t idl_stp_b:1; + uint16_t evt_pnd:1; + uint16_t fetch_pnd:4; + uint16_t rsv1:1; + + } c_fields; +}; + +union __attribute__ ((packed)) prefetch_ctxt +{ + struct __attribute__ ((packed)) pref_ctxt_data + { + uint32_t data[2]; + } c_data; + + struct __attribute__ ((packed)) pref_ctxt_fields + { + uint64_t bypass:1; + uint64_t buf_sz_idx:4; + uint64_t port_id:3; + uint64_t rsvd:18; + uint64_t err:1; + uint64_t pfch_en:1; + uint64_t pfch:1; + uint64_t sw_crdt:16; + uint64_t valid:1; + } c_fields; +}; + +#define xdebug_info(x, args...) rte_log(RTE_LOG_INFO, RTE_LOGTYPE_USER1,\ + ## args) + +static void print_header(const char *str) +{ + xdebug_info(adap, "\n\n%s\n\n", str); +} + +static int qdma_struct_dump(uint8_t port_id, uint16_t queue) +{ + struct rte_eth_dev *dev = &rte_eth_devices[port_id]; + + if (queue >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(INFO, " RX queue_id=%d not configured\n", queue); + } else { + struct qdma_rx_queue *rx_q = + (struct qdma_rx_queue *)dev->data->rx_queues[queue]; + + if(rx_q) { + print_header(" ***********RX Queue struct********** "); + xdebug_info(dev, "\t\t wb_pidx :%x\n", + rx_q->wb_status->pidx); + xdebug_info(dev, "\t\t wb_cidx :%x\n", + rx_q->wb_status->cidx); + xdebug_info(dev, "\t\t rx_pidx :%x\n", + *rx_q->rx_pidx); + xdebug_info(dev, "\t\t rx_cidx :%x\n", + *rx_q->rx_cidx); + xdebug_info(dev, "\t\t rx_tail :%x\n", + rx_q->rx_tail); + xdebug_info(dev, "\t\t c2h_pidx :%x\n", + rx_q->c2h_pidx); + xdebug_info(dev, "\t\t rx_cmpt_tail :%x\n", + rx_q->rx_cmpt_tail); + xdebug_info(dev, "\t\t cmpt_desc_len :%x\n", + rx_q->cmpt_desc_len); + xdebug_info(dev, "\t\t rx_buff_size :%x\n", + rx_q->rx_buff_size); + xdebug_info(dev, "\t\t nb_rx_desc :%x\n", + rx_q->nb_rx_desc); + xdebug_info(dev, "\t\t nb_rx_cmpt_desc :%x\n", + rx_q->nb_rx_cmpt_desc); + xdebug_info(dev, "\t\t ep_addr :%x\n", + rx_q->ep_addr); + xdebug_info(dev, "\t\t st_mode :%x\n", + rx_q->st_mode); + xdebug_info(dev, "\t\t rx_deferred_start :%x\n", + rx_q->rx_deferred_start); + xdebug_info(dev, "\t\t en_prefetch :%x\n", + rx_q->en_prefetch); + xdebug_info(dev, "\t\t en_bypass :%x\n", + rx_q->en_bypass); + xdebug_info(dev, "\t\t dump_immediate_data :%x\n", + rx_q->dump_immediate_data); + xdebug_info(dev, "\t\t en_bypass_prefetch :%x\n", + rx_q->en_bypass_prefetch); + xdebug_info(dev, "\t\t dis_overflow_check :%x\n", + rx_q->dis_overflow_check); + xdebug_info(dev, "\t\t bypass_desc_sz :%x\n", + rx_q->bypass_desc_sz); + xdebug_info(dev, "\t\t ringszidx :%x\n", + rx_q->ringszidx); + xdebug_info(dev, "\t\t cmpt_ringszidx :%x\n", + rx_q->cmpt_ringszidx); + xdebug_info(dev, "\t\t buffszidx :%x\n", + rx_q->buffszidx); + xdebug_info(dev, "\t\t threshidx :%x\n", + rx_q->threshidx); + xdebug_info(dev, "\t\t timeridx :%x\n", + rx_q->timeridx); + xdebug_info(dev, "\t\t triggermode :%x\n", + rx_q->triggermode); + } + } + + if (queue >= dev->data->nb_tx_queues) { + PMD_DRV_LOG(INFO, " TX queue_id=%d not configured\n", queue); + } else { + struct qdma_tx_queue *tx_q = + (struct qdma_tx_queue *)dev->data->tx_queues[queue]; + + if(tx_q) { + print_header("***********TX Queue struct************"); + xdebug_info(dev, "\t\t wb_pidx :%x\n", + tx_q->wb_status->pidx); + xdebug_info(dev, "\t\t wb_cidx :%x\n", + tx_q->wb_status->cidx); + xdebug_info(dev, "\t\t tx_pidx :%x\n", + *tx_q->tx_pidx); + xdebug_info(dev, "\t\t tx_tail :%x\n", + tx_q->tx_tail); + xdebug_info(dev, "\t\t tx_fl_tail :%x\n", + tx_q->tx_fl_tail); + xdebug_info(dev, "\t\t tx_desc_pend :%x\n", + tx_q->tx_desc_pend); + xdebug_info(dev, "\t\t nb_tx_desc :%x\n", + tx_q->nb_tx_desc); + xdebug_info(dev, "\t\t st_mode :%x\n", + tx_q->st_mode); + xdebug_info(dev, "\t\t tx_deferred_start :%x\n", + tx_q->tx_deferred_start); + xdebug_info(dev, "\t\t en_bypass :%x\n", + tx_q->en_bypass); + xdebug_info(dev, "\t\t bypass_desc_sz :%x\n", + tx_q->bypass_desc_sz); + xdebug_info(dev, "\t\t func_id :%x\n", + tx_q->func_id); + xdebug_info(dev, "\t\t port_id :%x\n", + tx_q->port_id); + xdebug_info(dev, "\t\t ringszidx :%x\n", + tx_q->ringszidx); + xdebug_info(dev, "\t\t ep_addr :%x\n", + tx_q->ep_addr); + } + } + return 0; +} + +static int qdma_csr_dump(void) +{ + struct rte_eth_dev *dev; + struct qdma_pci_dev *qdma_dev; + uint64_t bar_addr; + uint32_t reg_val; + + if (rte_eth_dev_count() < 1) + return -1; + + dev = &rte_eth_devices[0]; + qdma_dev = dev->data->dev_private; + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + + xdebug_info(dev, "FPGA Registers\n--------------\n"); + xdebug_info(dev, "NAME offset " + "description register-Value\n"); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x0)); + xdebug_info(dev, "FPGA_VER 0x00000000 " + "FPGA Version %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x204)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[0] 0x00000204 " + "Ring size index 0 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x208)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[1] 0x00000208 " + "Ring size index 1 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x20c)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[2] 0x0000020c " + "Ring size index 2 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x210)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[3] 0x00000210 " + "Ring size index 3 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x214)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[4] 0x00000214 " + "Ring size index 4 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x218)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[5] 0x00000218 " + "Ring size index 5 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x21c)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[6] 0x0000021c " + "Ring size index 6 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x220)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[7] 0x00000220 " + "Ring size index 7 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x224)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[8] 0x00000224 " + "Ring size index 8 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x228)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[9] 0x00000228 " + "Ring size index 9 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x22c)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[10] 0x0000022c " + "Ring size index 10 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x230)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[11] 0x00000230 " + "Ring size index 11 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x234)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[12] 0x00000234 " + "Ring size index 12 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x238)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[13] 0x00000238 " + "Ring size index 13 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x23c)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[14] 0x0000023c " + "Ring size index 14 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x240)); + xdebug_info(dev, "QDMA_GLBL_RNG_SZ_A[15] 0x00000240 " + "Ring size index 15 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x248)); + xdebug_info(dev, "QDMA_GLBL_ERR_STAT 0x00000248 " + "Global error status %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x24c)); + xdebug_info(dev, "QDMA_GLBL_ERR_MASK 0x0000024c " + "Global error mask %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x250)); + xdebug_info(dev, "QDMA_GLBL_DSC_CFG 0x00000250 " + "Global Desc configuration %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x254)); + xdebug_info(dev, "QDMA_GLBL_DSC_ERR_STS 0x00000254 " + "Global Desc error status %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x258)); + xdebug_info(dev, "QDMA_GLBL_DSC_ERR_MSK 0x00000258 " + "Global Desc error Mask %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x25c)); + xdebug_info(dev, "QDMA_GLBL_DSC_ERR_LOG0 0x0000025c " + "Global Desc error log0 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x260)); + xdebug_info(dev, "QDMA_GLBL_DSC_ERR_LOG1 0x00000260 " + "Global Desc error log1 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x264)); + xdebug_info(dev, "QDMA_GLBL_TRQ_ERR_STS 0x00000264 " + "Glbl target error status %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x268)); + xdebug_info(dev, "QDMA_GLBL_TRQ_ERR_MSK 0x00000268 " + "Glbl target error Mask %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x26c)); + xdebug_info(dev, "QDMA_GLBL_TRQ_ERR_LOG 0x0000026c " + "Register access space %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x400)); + xdebug_info(dev, "QDMA_TRQ_SEL_FMAP[0] 0x00000400 " + "FMAP target index-0 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0x404)); + xdebug_info(dev, "QDMA_TRQ_SEL_FMAP[1] 0x00000404 " + "FMAP target index-1 %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xa88)); + xdebug_info(dev, "QDMA_C2H_STAT_AXIS_C2H_ACPTD 0x00000a88 " + "C2H pkts accepted %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xa8c)); + xdebug_info(dev, "QDMA_C2H_STAT_AXIS_CMPT_ACPTD 0x00000a8c " + "C2H CMPT pkts accepted %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xa90)); + xdebug_info(dev, "QDMA_C2H_STAT_DESC_RSP_PKT_ACPTD 0x00000a90 " + "desc rsp pkts accepted %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xa94)); + xdebug_info(dev, "QDMA_C2H_STAT_AXIS_PKG_CMP 0x00000a94 " + "C2H pkts completed %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xa98)); + xdebug_info(dev, "QDMA_C2H_STAT_DESC_RSP_ACPTD 0x00000a98 " + "dsc rsp pkts accepted %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xa9c)); + xdebug_info(dev, "QDMA_C2H_STAT_DESC_RSP_CMP D 0x00000a9c " + "dsc rsp pkts completed %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xaa0)); + xdebug_info(dev, "QDMA_C2H_STAT_WRQ_OUT 0x00000aa0 " + "Number of WRQ %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xaa4)); + xdebug_info(dev, "QDMA_C2H_STAT_WPL_REN_ACPTD 0x00000aa4 " + "WPL REN accepted %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xaf0)); + xdebug_info(dev, "QDMA_GLBL_ERR_STAT 0x00000af0 " + "C2H error status %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xaf4)); + xdebug_info(dev, "QDMA_GLBL_ERR_MASK 0x00000af4 " + "C2H error Mask %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xaf8)); + xdebug_info(dev, "QDMA_C2H_FATAL_ERR_STAT 0x00000af8 " + "C2H fatal error status %x\n", reg_val); + reg_val = qdma_read_reg((uint64_t)(bar_addr + 0xafc)); + xdebug_info(dev, "QDMA_C2H_FATAL_ERR_MSK 0x00000afc " + "C2H fatal error Mask %x\n", reg_val); + + return 0; +} + +static int qdma_context_dump(uint8_t port_id, uint16_t queue) +{ + struct rte_eth_dev *dev = &rte_eth_devices[port_id]; + struct qdma_pci_dev *qdma_dev = dev->data->dev_private; + struct queue_ind_prg *q_regs; + uint32_t reg_val, ctxt_sel; + uint64_t bar_addr; + uint16_t flag, i; + uint16_t qid = qdma_dev->queue_base + queue; + + union h2c_c2h_ctxt q_ctxt; + union c2h_cmpt_ctxt c2h_cmpt; + union h2c_c2h_hw_ctxt hw_ctxt; + union prefetch_ctxt pref_ctxt; + + bar_addr = (uint64_t)qdma_dev->bar_addr[qdma_dev->config_bar_idx]; + q_regs = (struct queue_ind_prg *)(bar_addr + QDMA_TRQ_SEL_IND + + QDMA_IND_Q_PRG_OFF); + + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[0], 0xffffffff); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[1], 0xffffffff); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[2], 0xffffffff); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[3], 0xffffffff); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[4], 0xffffffff); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[5], 0xffffffff); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[6], 0xffffffff); + qdma_write_reg((uint64_t)&q_regs->ctxt_mask[7], 0xffffffff); + + if (queue >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(INFO, " RX queue_id=%d not configured\n", queue); + } else { + print_header(" *************C2H Queue Contexts************** "); + /* SW context */ + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_C2H << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(DEBUG, " Read cmd for queue-id:%d: " + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "Error: Busy on queue-id:%d: " + "initailization with cmd reg_val:%x\n", + qid, reg_val); + return -1; + } + + for (i = 0; i < 5; i++) { + reg_val = qdma_read_reg((uint64_t)& + q_regs->ctxt_data[i]); + q_ctxt.c_data.data[i] = reg_val; + } + + xdebug_info(qdma_dev, "Q-id: %d, \t SW " + ":0x%x 0x%x 0x%x 0x%x 0x%x\n", + qid, q_ctxt.c_data.data[4], + q_ctxt.c_data.data[3], q_ctxt.c_data.data[2], + q_ctxt.c_data.data[1], q_ctxt.c_data.data[0]); + xdebug_info(qdma_dev, "\t\t int_aggr :%x\n", + q_ctxt.c_fields.int_aggr); + xdebug_info(qdma_dev, "\t\t vec :%x\n", + q_ctxt.c_fields.vec); + xdebug_info(qdma_dev, "\t\t Base-addr :%lx\n", + q_ctxt.c_fields.dsc_base); + xdebug_info(qdma_dev, "\t\t is_mm :%x\n", + q_ctxt.c_fields.is_mm); + xdebug_info(qdma_dev, "\t\t mark_dis :%x\n", + q_ctxt.c_fields.mrkr_dis); + xdebug_info(qdma_dev, "\t\t irq_req :%x\n", + q_ctxt.c_fields.irq_req); + xdebug_info(qdma_dev, "\t\t err-cmpt-sent :%x\n", + q_ctxt.c_fields.err_wb_sent); + xdebug_info(qdma_dev, "\t\t Error status :%x\n", + q_ctxt.c_fields.err); + xdebug_info(qdma_dev, "\t\t irq_no_last :%x\n", + q_ctxt.c_fields.irq_no_last); + xdebug_info(qdma_dev, "\t\t port-id :%x\n", + q_ctxt.c_fields.port_id); + xdebug_info(qdma_dev, "\t\t irq-enable :%x\n", + q_ctxt.c_fields.irq_en); + xdebug_info(qdma_dev, "\t\t write-back enable :%x\n", + q_ctxt.c_fields.wbk_en); + xdebug_info(qdma_dev, "\t\t mm-channel-id :%x\n", + q_ctxt.c_fields.mm_chn); + xdebug_info(qdma_dev, "\t\t bypass :%x\n", + q_ctxt.c_fields.byp); + xdebug_info(qdma_dev, "\t\t desc-size index :%x\n", + q_ctxt.c_fields.dsc_sz); + xdebug_info(qdma_dev, "\t\t ring-size index :%x\n", + q_ctxt.c_fields.rng_sz); + xdebug_info(qdma_dev, "\t\t reserved :%x\n", + q_ctxt.c_fields.rsv1); + xdebug_info(qdma_dev, "\t\t fetch_max :%x\n", + q_ctxt.c_fields.fetch_max); + xdebug_info(qdma_dev, "\t\t at :%x\n", + q_ctxt.c_fields.at); + xdebug_info(qdma_dev, "\t\t wbi_intvl_en :%x\n", + q_ctxt.c_fields.wbi_intvl_en); + xdebug_info(qdma_dev, "\t\t wbi_chk :%x\n", + q_ctxt.c_fields.wbi_chk); + xdebug_info(qdma_dev, "\t\t fetch credits :%x\n", + q_ctxt.c_fields.fcrd_en); + xdebug_info(qdma_dev, "\t\t queue-enable :%x\n", + q_ctxt.c_fields.qen); + xdebug_info(qdma_dev, "\t\t reserved :%x\n", + q_ctxt.c_fields.rsv0); + xdebug_info(qdma_dev, "\t\t function-id :%x\n", + q_ctxt.c_fields.fnc_id); + xdebug_info(qdma_dev, "\t\t irq_arm :%x\n", + q_ctxt.c_fields.irq_arm); + xdebug_info(qdma_dev, "\t\t producer-index :%x\n\n", + q_ctxt.c_fields.pidx); + + /* c2h cmpt context */ + ctxt_sel = (QDMA_CTXT_SEL_DESC_CMPT << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(DEBUG, " Read cmd for queue-id:%d: " + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "Error: Busy on queue-id:%d: " + "initailization with cmd reg_val:%x\n", + qid, reg_val); + return -1; + } + + for (i = 0; i < 5; i++) { + reg_val = qdma_read_reg((uint64_t)& + q_regs->ctxt_data[i]); + c2h_cmpt.c_data.data[i] = reg_val; + } + + xdebug_info(qdma_dev, "Q-id: %d, \t C2H-CMPT " + ":0x%x 0x%x 0x%x 0x%x 0x%x\n", + qid, c2h_cmpt.c_data.data[4], + c2h_cmpt.c_data.data[3], + c2h_cmpt.c_data.data[2], + c2h_cmpt.c_data.data[1], + c2h_cmpt.c_data.data[0]); + + xdebug_info(qdma_dev, "\t\t reserved :%x\n", + c2h_cmpt.c_fields.rsv2); + xdebug_info(qdma_dev, "\t\t intr aggr :%x\n", + c2h_cmpt.c_fields.int_aggr); + xdebug_info(qdma_dev, "\t\t atc :%x\n", + c2h_cmpt.c_fields.at); + xdebug_info(qdma_dev, "\t\t Overflow Chk Disable:%x\n", + c2h_cmpt.c_fields.ovf_chk_dis); + xdebug_info(qdma_dev, "\t\t Full Update :%x\n", + c2h_cmpt.c_fields.full_upd); + xdebug_info(qdma_dev, "\t\t timer_running :%x\n", + c2h_cmpt.c_fields.timer_running); + xdebug_info(qdma_dev, "\t\t user_trig_pend :%x\n", + c2h_cmpt.c_fields.user_trig_pend); + xdebug_info(qdma_dev, "\t\t error status d :%x\n", + c2h_cmpt.c_fields.err); + xdebug_info(qdma_dev, "\t\t valid :%x\n", + c2h_cmpt.c_fields.valid); + xdebug_info(qdma_dev, "\t\t consumer-index :%x\n", + c2h_cmpt.c_fields.cidx); + xdebug_info(qdma_dev, "\t\t producer-index :%x\n", + (c2h_cmpt.c_fields.pidx_h << 4 | + c2h_cmpt.c_fields.pidx_l)); + xdebug_info(qdma_dev, "\t\t desc-size :%x\n", + c2h_cmpt.c_fields.desc_sz); + xdebug_info(qdma_dev, "\t\t baddr(4K/22 bits) :%lx\n", + (unsigned long int)c2h_cmpt.c_fields.baddr); + xdebug_info(qdma_dev, "\t\t size-index :%x\n", + c2h_cmpt.c_fields.qsize_idx); + xdebug_info(qdma_dev, "\t\t color :%x\n", + c2h_cmpt.c_fields.color); + xdebug_info(qdma_dev, "\t\t interrupt-state :%x\n", + c2h_cmpt.c_fields.int_st); + xdebug_info(qdma_dev, "\t\t timer-index :%x\n", + c2h_cmpt.c_fields.timer_idx); + xdebug_info(qdma_dev, "\t\t counter-index :%x\n", + c2h_cmpt.c_fields.count_idx); + xdebug_info(qdma_dev, "\t\t function-id :%x\n", + c2h_cmpt.c_fields.fnc_id); + xdebug_info(qdma_dev, "\t\t trigger-mode :%x\n", + c2h_cmpt.c_fields.trig_mode); + xdebug_info(qdma_dev, "\t\t cause interrupt :%x\n", + c2h_cmpt.c_fields.en_int); + xdebug_info(qdma_dev, "\t\t cause status descwr :%x\n\n", + c2h_cmpt.c_fields.en_stat_desc); + + /* pfch context */ + ctxt_sel = (QDMA_CTXT_SEL_PFTCH << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(DEBUG, " Read cmd for queue-id:%d: " + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "Error: Busy on queue-id:%d: " + "initailization with cmd reg_val:%x\n", + qid, reg_val); + return -1; + } + + for (i = 0; i < 2; i++) { + reg_val = qdma_read_reg((uint64_t)& + q_regs->ctxt_data[i]); + pref_ctxt.c_data.data[i] = reg_val; + } + + xdebug_info(qdma_dev, "Q-id: %d, \t PFCH " + ":0x%x 0x%x\n", + qid, c2h_cmpt.c_data.data[1], + c2h_cmpt.c_data.data[0]); + xdebug_info(qdma_dev, "\t\t valid :%x\n", + pref_ctxt.c_fields.valid); + xdebug_info(qdma_dev, "\t\t software credit :%x\n", + pref_ctxt.c_fields.sw_crdt); + xdebug_info(qdma_dev, "\t\t queue is in prefetch:%x\n", + pref_ctxt.c_fields.pfch); + xdebug_info(qdma_dev, "\t\t enable prefetch :%x\n", + pref_ctxt.c_fields.pfch_en); + xdebug_info(qdma_dev, "\t\t error :%x\n", + pref_ctxt.c_fields.err); + xdebug_info(qdma_dev, "\t\t port ID :%x\n", + pref_ctxt.c_fields.port_id); + xdebug_info(qdma_dev, "\t\t buffer size index :%x\n", + pref_ctxt.c_fields.buf_sz_idx); + xdebug_info(qdma_dev, "\t\t C2H in bypass mode :%x\n\n", + pref_ctxt.c_fields.bypass); + + /* hwc c2h context */ + ctxt_sel = (QDMA_CTXT_SEL_DESC_HW_C2H << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(DEBUG, " Read cmd for queue-id:%d: " + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "Error: Busy on queue-id:%d: " + "initailization with cmd reg_val:%x\n", + qid, reg_val); + return -1; + } + + for (i = 0; i < 2; i++) { + reg_val = qdma_read_reg((uint64_t)& + q_regs->ctxt_data[i]); + hw_ctxt.c_data.data[i] = reg_val; + } + + xdebug_info(qdma_dev, "Q-id: %d, \t HW " + ":0x%x 0x%x\n", + qid, hw_ctxt.c_data.data[1], + hw_ctxt.c_data.data[0]); + xdebug_info(qdma_dev, "\t\t reserved :%x\n", + hw_ctxt.c_fields.rsv1); + xdebug_info(qdma_dev, "\t\t fetch pending :%x\n", + hw_ctxt.c_fields.fetch_pnd); + xdebug_info(qdma_dev, "\t\t event pending :%x\n", + hw_ctxt.c_fields.evt_pnd); + xdebug_info(qdma_dev, "\t\t Q-inval/no desc pend:%x\n", + hw_ctxt.c_fields.idl_stp_b); + xdebug_info(qdma_dev, "\t\t descriptor pending :%x\n", + hw_ctxt.c_fields.dsc_pnd); + xdebug_info(qdma_dev, "\t\t reserved :%x\n", + hw_ctxt.c_fields.rsv0); + xdebug_info(qdma_dev, "\t\t credit-use :%x\n", + hw_ctxt.c_fields.crd_use); + xdebug_info(qdma_dev, "\t\t consumer-index :%x\n\n", + hw_ctxt.c_fields.cidx); + } + + if (queue >= dev->data->nb_tx_queues) { + PMD_DRV_LOG(INFO, " TX queue_id=%d not configured\n", queue); + } else { + print_header(" *************H2C Queue Contexts************** "); + /* SW context */ + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_H2C << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(DEBUG, " Read cmd for queue-id:%d: " + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "Error: Busy on queue-id:%d: " + "initailization with cmd reg_val:%x\n", + qid, reg_val); + return -1; + } + + for (i = 0; i < 5; i++) { + reg_val = qdma_read_reg((uint64_t)& + q_regs->ctxt_data[i]); + q_ctxt.c_data.data[i] = reg_val; + } + + xdebug_info(qdma_dev, "Q-id: %d, \t SW " + ":0x%x 0x%x 0x%x 0x%x 0x%x\n", + qid, q_ctxt.c_data.data[4], + q_ctxt.c_data.data[3], q_ctxt.c_data.data[2], + q_ctxt.c_data.data[1], q_ctxt.c_data.data[0]); + xdebug_info(qdma_dev, "\t\t int_aggr :%x\n", + q_ctxt.c_fields.int_aggr); + xdebug_info(qdma_dev, "\t\t vec :%x\n", + q_ctxt.c_fields.vec); + xdebug_info(qdma_dev, "\t\t Base-addr :%lx\n", + q_ctxt.c_fields.dsc_base); + xdebug_info(qdma_dev, "\t\t is_mm :%x\n", + q_ctxt.c_fields.is_mm); + xdebug_info(qdma_dev, "\t\t mark_dis :%x\n", + q_ctxt.c_fields.mrkr_dis); + xdebug_info(qdma_dev, "\t\t irq_req :%x\n", + q_ctxt.c_fields.irq_req); + xdebug_info(qdma_dev, "\t\t err-cmpt-sent :%x\n", + q_ctxt.c_fields.err_wb_sent); + xdebug_info(qdma_dev, "\t\t Error status :%x\n", + q_ctxt.c_fields.err); + xdebug_info(qdma_dev, "\t\t irq_no_last :%x\n", + q_ctxt.c_fields.irq_no_last); + xdebug_info(qdma_dev, "\t\t port-id :%x\n", + q_ctxt.c_fields.port_id); + xdebug_info(qdma_dev, "\t\t irq-enable :%x\n", + q_ctxt.c_fields.irq_en); + xdebug_info(qdma_dev, "\t\t write-back enable :%x\n", + q_ctxt.c_fields.wbk_en); + xdebug_info(qdma_dev, "\t\t mm-channel-id :%x\n", + q_ctxt.c_fields.mm_chn); + xdebug_info(qdma_dev, "\t\t bypass :%x\n", + q_ctxt.c_fields.byp); + xdebug_info(qdma_dev, "\t\t desc-size index :%x\n", + q_ctxt.c_fields.dsc_sz); + xdebug_info(qdma_dev, "\t\t ring-size index :%x\n", + q_ctxt.c_fields.rng_sz); + xdebug_info(qdma_dev, "\t\t reserved :%x\n", + q_ctxt.c_fields.rsv1); + xdebug_info(qdma_dev, "\t\t fetch_max :%x\n", + q_ctxt.c_fields.fetch_max); + xdebug_info(qdma_dev, "\t\t at :%x\n", + q_ctxt.c_fields.at); + xdebug_info(qdma_dev, "\t\t wbi_intvl_en :%x\n", + q_ctxt.c_fields.wbi_intvl_en); + xdebug_info(qdma_dev, "\t\t wbi_chk :%x\n", + q_ctxt.c_fields.wbi_chk); + xdebug_info(qdma_dev, "\t\t fetch credits :%x\n", + q_ctxt.c_fields.fcrd_en); + xdebug_info(qdma_dev, "\t\t queue-enable :%x\n", + q_ctxt.c_fields.qen); + xdebug_info(qdma_dev, "\t\t reserved :%x\n", + q_ctxt.c_fields.rsv0); + xdebug_info(qdma_dev, "\t\t function-id :%x\n", + q_ctxt.c_fields.fnc_id); + xdebug_info(qdma_dev, "\t\t irq_arm :%x\n", + q_ctxt.c_fields.irq_arm); + xdebug_info(qdma_dev, "\t\t producer-index :%x\n\n", + q_ctxt.c_fields.pidx); + + /* hwc h2c context */ + ctxt_sel = (QDMA_CTXT_SEL_DESC_HW_H2C << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + qdma_write_reg((uint64_t)&q_regs->ctxt_cmd, ctxt_sel); + + flag = 1; + i = CONTEXT_PROG_POLL_COUNT; + while (flag && i) { + reg_val = qdma_read_reg((uint64_t)&q_regs->ctxt_cmd); + PMD_DRV_LOG(DEBUG, " Read cmd for queue-id:%d: " + "reg_val:%x\n", qid, reg_val); + flag = reg_val & BUSY_BIT_MSK; + rte_delay_ms(CONTEXT_PROG_DELAY); + i--; + } + if (flag) { + PMD_DRV_LOG(ERR, "Error: Busy on queue-id:%d: " + "initailization with cmd reg_val:%x\n", + qid, reg_val); + return -1; + } + + for (i = 0; i < 2; i++) { + reg_val = qdma_read_reg((uint64_t)& + q_regs->ctxt_data[i]); + hw_ctxt.c_data.data[i] = reg_val; + } + + xdebug_info(qdma_dev, "Q-id: %d, \t HW " + ":0x%x 0x%x\n", + qid, hw_ctxt.c_data.data[1], + hw_ctxt.c_data.data[0]); + xdebug_info(qdma_dev, "\t\t reserved :%x\n", + hw_ctxt.c_fields.rsv1); + xdebug_info(qdma_dev, "\t\t fetch pending :%x\n", + hw_ctxt.c_fields.fetch_pnd); + xdebug_info(qdma_dev, "\t\t event pending :%x\n", + hw_ctxt.c_fields.evt_pnd); + xdebug_info(qdma_dev, "\t\t Q-inval/no desc pend:%x\n", + hw_ctxt.c_fields.idl_stp_b); + xdebug_info(qdma_dev, "\t\t descriptor pending :%x\n", + hw_ctxt.c_fields.dsc_pnd); + xdebug_info(qdma_dev, "\t\t reserved :%x\n", + hw_ctxt.c_fields.rsv0); + xdebug_info(qdma_dev, "\t\t credit-use :%x\n", + hw_ctxt.c_fields.crd_use); + xdebug_info(qdma_dev, "\t\t consumer-index :%x\n\n", + hw_ctxt.c_fields.cidx); + } + + return 0; +} +static int qdma_queue_desc_dump(uint8_t port_id, + struct rte_xdebug_desc_param *param) +{ + struct rte_eth_dev *dev = &rte_eth_devices[port_id]; + int x; + struct qdma_rx_queue *rxq; + struct qdma_tx_queue *txq; + char str[50]; + + switch (param->type) { + case ETH_XDEBUG_DESC_C2H: + + if (param->queue >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(INFO, "queue_id=%d not configured", + param->queue); + return -1; + } + + rxq = (struct qdma_rx_queue *) + dev->data->rx_queues[param->queue]; + + if(rxq) { + if (rxq->status != RTE_ETH_QUEUE_STATE_STARTED) { + printf("Queue_id %d is not yet started\n", + param->queue); + return -1; + } + + if (param->start < 0 || param->start > rxq->nb_rx_desc) + param->start = 0; + if (param->end <= param->start || + param->end > rxq->nb_rx_desc) + param->end = rxq->nb_rx_desc; + + if (rxq->st_mode) { + struct qdma_c2h_desc *rx_ring_st = + (struct qdma_c2h_desc *)rxq->rx_ring; + + printf("\n===== C2H ring descriptors=====\n"); + for (x = param->start; x < param->end; x++) { + struct qdma_c2h_desc *rx_st = + &rx_ring_st[x]; + sprintf(str, "\nDescriptor ID %d\t", x); + rte_hexdump(stdout, str, + (const void *)rx_st, + sizeof(struct qdma_c2h_desc)); + } + } else { + struct qdma_mm_desc *rx_ring_mm = + (struct qdma_mm_desc *)rxq->rx_ring; + printf("\n====== C2H ring descriptors======\n"); + for (x = param->start; x < param->end; x++) { + sprintf(str, "\nDescriptor ID %d\t", x); + rte_hexdump(stdout, str, + (const void *)&rx_ring_mm[x], + sizeof(struct qdma_mm_desc)); + } + } + } + break; + case ETH_XDEBUG_DESC_CMPT: + + if (param->queue >= dev->data->nb_rx_queues) { + PMD_DRV_LOG(INFO, "queue_id=%d not configured", + param->queue); + return -1; + } + + rxq = (struct qdma_rx_queue *) + dev->data->rx_queues[param->queue]; + + if(rxq) { + if (rxq->status != RTE_ETH_QUEUE_STATE_STARTED) { + printf("Queue_id %d is not yet started\n", + param->queue); + return -1; + } + + if (param->start < 0 || + param->start > rxq->nb_rx_cmpt_desc) + param->start = 0; + if (param->end <= param->start || + param->end > rxq->nb_rx_cmpt_desc) + param->end = rxq->nb_rx_cmpt_desc; + + if (!rxq->st_mode) { + printf("Queue_id %d is not initialized " + "in Stream mode\n", param->queue); + return -1; + } + + printf("\n===== CMPT ring descriptors=====\n"); + for (x = param->start; x < param->end; x++) { + uint32_t *cmpt_ring = (uint32_t *) + ((uint64_t)(rxq->cmpt_ring) + + ((uint64_t)x * rxq->cmpt_desc_len)); + sprintf(str, "\nDescriptor ID %d\t", x); + rte_hexdump(stdout, str, + (const void *)cmpt_ring, + rxq->cmpt_desc_len); + } + } + break; + case ETH_XDEBUG_DESC_H2C: + + if (param->queue >= dev->data->nb_tx_queues) { + PMD_DRV_LOG(INFO, "queue_id=%d not configured", + param->queue); + return -1; + } + + txq = (struct qdma_tx_queue *) + dev->data->tx_queues[param->queue]; + + if(txq) { + if (txq->status != RTE_ETH_QUEUE_STATE_STARTED) { + printf("Queue_id %d is not yet started\n", + param->queue); + return -1; + } + + if (param->start < 0 || param->start > txq->nb_tx_desc) + param->start = 0; + if (param->end <= param->start || + param->end > txq->nb_tx_desc) + param->end = txq->nb_tx_desc; + + if (txq->st_mode) { + struct qdma_h2c_desc *qdma_h2c_ring = + (struct qdma_h2c_desc *)txq->tx_ring; + printf("\n====== H2C ring descriptors=====\n"); + for (x = param->start; x < param->end; x++) { + sprintf(str, "\nDescriptor ID %d\t", x); + rte_hexdump(stdout, str, + (const void *)&qdma_h2c_ring[x], + sizeof(struct qdma_h2c_desc)); + } + } else { + struct qdma_mm_desc *tx_ring_mm = + (struct qdma_mm_desc *)txq->tx_ring; + printf("\n===== H2C ring descriptors=====\n"); + for (x = param->start; x < param->end; x++) { + sprintf(str, "\nDescriptor ID %d\t", x); + rte_hexdump(stdout, str, + (const void *)&tx_ring_mm[x], + sizeof(struct qdma_mm_desc)); + } + } + } + break; + default: + printf("Invalid ring selected\n"); + break; + } + return 0; +} + +int qdma_xdebug(uint8_t port_id, enum rte_xdebug_type type, + void *params) +{ + int err = -ENOTSUP; + + switch (type) { + case ETH_XDEBUG_QDMA_GLOBAL_CSR: + err = qdma_csr_dump(); + if (err) { + xdebug_info(adap, "Error dumping Global registers\n"); + return err; + } + break; + case ETH_XDEBUG_QUEUE_CONTEXT: + + if (!params) { + printf("QID required for Queue context dump\n"); + return -1; + } + + err = qdma_context_dump(port_id, *(uint16_t *)params); + if (err) { + xdebug_info(adap, "Error dumping %d: %d\n", + *(int *)params, err); + return err; + } + break; + + case ETH_XDEBUG_QUEUE_STRUCT: + + if (!params) { + printf("QID required for Queue Structure dump\n"); + return -1; + } + + err = qdma_struct_dump(port_id, *(uint16_t *)params); + if (err) { + xdebug_info(adap, "Error dumping %d: %d\n", + *(int *)params, err); + return err; + } + break; + + case ETH_XDEBUG_QUEUE_DESC_DUMP: + + if (!params) { + printf("Params required for Queue descriptor dump\n"); + return -1; + } + + err = qdma_queue_desc_dump(port_id, + (struct rte_xdebug_desc_param *)params); + if (err) { + xdebug_info(adap, "Error dumping %d: %d\n", + *(int *)params, err); + return err; + } + break; + + default: + xdebug_info(adap, "Unsupported type\n"); + return err; + } + + return 0; +} diff --git a/QDMA/DPDK/drivers/net/qdma/rte_pmd_qdma_version.map b/QDMA/DPDK/drivers/net/qdma/rte_pmd_qdma_version.map new file mode 100644 index 0000000..a753031 --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/rte_pmd_qdma_version.map @@ -0,0 +1,3 @@ +DPDK_17.11 { + local: *; +}; diff --git a/QDMA/DPDK/drivers/net/qdma/version.h b/QDMA/DPDK/drivers/net/qdma/version.h new file mode 100644 index 0000000..2b1ef02 --- /dev/null +++ b/QDMA/DPDK/drivers/net/qdma/version.h @@ -0,0 +1,51 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __QDMA_VERSION_H__ +#define __QDMA_VERSION_H__ + +#define qdma_stringify1(x...) #x +#define qdma_stringify(x...) qdma_stringify1(x) + +#define QDMA_PMD_MAJOR 2018 +#define QDMA_PMD_MINOR 3 +#define QDMA_PMD_PATCHLEVEL 19 + +#define QDMA_PMD_VERSION \ + qdma_stringify(QDMA_PMD_MAJOR) "." \ + qdma_stringify(QDMA_PMD_MINOR) "." \ + qdma_stringify(QDMA_PMD_PATCHLEVEL) + +#define QDMA_PMD_VERSION_NUMBER \ + ((QDMA_PMD_MAJOR) * 1000 + (QDMA_PMD_MINOR) * 100 + QDMA_PMD_PATCHLEVEL) + +#endif /* ifndef __QDMA_VERSION_H__ */ diff --git a/QDMA/DPDK/examples/qdma_testapp/Makefile b/QDMA/DPDK/examples/qdma_testapp/Makefile new file mode 100644 index 0000000..6b619e0 --- /dev/null +++ b/QDMA/DPDK/examples/qdma_testapp/Makefile @@ -0,0 +1,55 @@ +# BSD LICENSE +# +# Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# * Neither the name of the copyright holder nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +ifeq ($(RTE_SDK),) +$(error "Please define RTE_SDK environment variable") +endif + +# Default target, can be overriden by command line or environment +RTE_TARGET ?= x86_64-native-linuxapp-gcc + +#Default BRAM size is set to 512K +#if modified the BRAM_SIZE, the same need to be set to the driver Makefile +BRAM_SIZE ?= 524288 +include $(RTE_SDK)/mk/rte.vars.mk + +# binary name +APP = qdma_testapp + +# all source are stored in SRCS-y +SRCS-y := testapp.c pcierw.c commands.c + +CFLAGS += -O3 -DDPDK=1 -DBRAM_SIZE=$(BRAM_SIZE) +CFLAGS += $(WERROR_FLAGS) + +# PERF benchmarking may be enabled by uncommenting following +#CFLAGS += -DPERF_BENCHMARK + +include $(RTE_SDK)/mk/rte.extapp.mk diff --git a/QDMA/DPDK/examples/qdma_testapp/commands.c b/QDMA/DPDK/examples/qdma_testapp/commands.c new file mode 100644 index 0000000..5ddd581 --- /dev/null +++ b/QDMA/DPDK/examples/qdma_testapp/commands.c @@ -0,0 +1,1532 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/*- + * BSD LICENSE + * + * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright (c) 2009, Olivier MATZ <zer0@droids-corp.org> + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the University of California, Berkeley nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdio.h> +#include <stdint.h> +#include <string.h> +#include <stdlib.h> +#include <unistd.h> +#include <stdarg.h> +#include <errno.h> +#include <netinet/in.h> +#include <termios.h> +#ifndef __linux__ +#include <net/socket.h> +#endif + +#include <cmdline_rdline.h> +#include <cmdline_parse.h> +#include <cmdline_parse_ipaddr.h> +#include <cmdline_parse_num.h> +#include <cmdline_parse_string.h> +#include <cmdline.h> + +#include <rte_string_fns.h> +#include <rte_ethdev.h> +#include <fcntl.h> + +#include "parse_obj_list.h" +#include "pcierw.h" +#include "commands.h" +#include "qdma_regs.h" +#include "testapp.h" +#include "../../drivers/net/qdma/qdma.h" + +/* Command help */ +struct cmd_help_result { + cmdline_fixed_string_t help; +}; + +static void cmd_help_parsed(__attribute__((unused)) void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + cmdline_printf(cl, + "Demo example of command line interface in RTE\n\n" + "This is a readline-like interface that can be " + "used to\n debug your RTE application.\n\n" + "Supported Commands:\n" + "\tport_init <port-id> <queue-id base> " + "<num-queues> <st-queues> " + "<ring-depth> <pkt-buff-size> " + " :port-initailization\n" + "\tport_close <port-id> " + ":port-close\n" + "\treg_read <port-id> <bar-num> <address> " + ":Reads Specified Register\n" + "\treg_write <port-id> <bar-num> <address> " + "<value> " + ":Writes Specified Register\n" + "\tdma_to_device <port-id> <num-queues> " + "<input-filename> " + "<dst_addr> <size> <iterations> " + ":To Transmit\n" + "\tdma_from_device <port-id> <num-queues> " + "<output-filename> " + "<src_addr> <size> <iterations> " + ":To Receive\n" + "\treg_dump <port-id> " + ":To dump all the valid registers\n" + "\tqueue_dump <port-id> <queue-id> " + ":To dump the queue-context of a queue-number\n" + "\tdesc_dump <port-id> <queue-id> " + ":To dump the descriptor-fields of a " + "queue-number\n" + "\tload_cmds <file-name> " + ":To execute the list of commands from file\n" + "\thelp\n" + "\tCtrl-d " + ": To quit from this command-line type Ctrl+d\n" + "\n"); +} + +cmdline_parse_token_string_t cmd_help_help = + TOKEN_STRING_INITIALIZER(struct cmd_help_result, help, "help"); + +cmdline_parse_inst_t cmd_help = { + .f = cmd_help_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "show help", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_help_help, + NULL, + }, +}; + +struct cmd_obj_port_init_result { + cmdline_fixed_string_t action; + cmdline_fixed_string_t port_id; + cmdline_fixed_string_t queue_base; + cmdline_fixed_string_t num_queues; + cmdline_fixed_string_t st_queues; + cmdline_fixed_string_t nb_descs; + cmdline_fixed_string_t buff_size; +}; + +static void cmd_obj_port_init_parsed(void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + struct cmd_obj_port_init_result *res = parsed_result; + + cmdline_printf(cl, "Port-init Port:%s, num-queues:%s, st-queues: %s\n", + res->port_id, res->num_queues, res->st_queues); + + int port_id = atoi(res->port_id); + if (pinfo[port_id].num_queues) { + cmdline_printf(cl, "Error: port-id:%d already initialized\n" + "To re-initialize please close the port\n", + port_id); + return; + } + + int num_queues = atoi(res->num_queues); + int queue_base = atoi(res->queue_base); + int st_queues = atoi(res->st_queues); + int nb_descs = atoi(res->nb_descs); + int buff_size = atoi(res->buff_size); + + if ((num_queues < 1) || (queue_base + num_queues > MAX_NUM_QUEUES)) { + cmdline_printf(cl, "Error: please enter valid number of queues," + "entered: %d max allowed: %d\n", + num_queues, MAX_NUM_QUEUES); + return; + } + + if (port_id >= num_ports) { + cmdline_printf(cl, "Error: please enter valid port number: " + "%d\n", port_id); + return; + } + { + int result = port_init(port_id, queue_base, num_queues, + st_queues, nb_descs, buff_size); + + if (result < 0) + cmdline_printf(cl, "Error: Port initialization on " + "port-id:%d failed\n", port_id); + else + cmdline_printf(cl, "Port initialization done " + "successfully on port-id:%d\n", + port_id); + } +} + +cmdline_parse_token_string_t cmd_obj_action_port_init = + TOKEN_STRING_INITIALIZER(struct cmd_obj_port_init_result, action, + "port_init"); +cmdline_parse_token_string_t cmd_obj_port_init_port_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_port_init_result, port_id, + NULL); +cmdline_parse_token_string_t cmd_obj_port_init_queue_base = + TOKEN_STRING_INITIALIZER(struct cmd_obj_port_init_result, queue_base, + NULL); +cmdline_parse_token_string_t cmd_obj_port_init_num_queues = + TOKEN_STRING_INITIALIZER(struct cmd_obj_port_init_result, num_queues, + NULL); +cmdline_parse_token_string_t cmd_obj_port_init_st_queues = + TOKEN_STRING_INITIALIZER(struct cmd_obj_port_init_result, st_queues, + NULL); +cmdline_parse_token_string_t cmd_obj_port_init_nb_descs = + TOKEN_STRING_INITIALIZER(struct cmd_obj_port_init_result, nb_descs, + NULL); +cmdline_parse_token_string_t cmd_obj_port_init_buff_size = + TOKEN_STRING_INITIALIZER(struct cmd_obj_port_init_result, buff_size, + NULL); + +cmdline_parse_inst_t cmd_obj_port_init = { + .f = cmd_obj_port_init_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "port_init port-id queue-id-base num-queues st-queues " + "queue-ring-size buffer-size", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_obj_action_port_init, + (void *)&cmd_obj_port_init_port_id, + (void *)&cmd_obj_port_init_queue_base, + (void *)&cmd_obj_port_init_num_queues, + (void *)&cmd_obj_port_init_st_queues, + (void *)&cmd_obj_port_init_nb_descs, + (void *)&cmd_obj_port_init_buff_size, + NULL, + }, + +}; + +/* Command port-close */ +struct cmd_obj_port_close_result { + cmdline_fixed_string_t action; + cmdline_fixed_string_t port_id; +}; + +static void cmd_obj_port_close_parsed(void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + struct cmd_obj_port_close_result *res = parsed_result; + + cmdline_printf(cl, "Port-close on Port-id:%s\n", res->port_id); + + int port_id = atoi(res->port_id); + if (pinfo[port_id].num_queues == 0) { + cmdline_printf(cl, "Error: port-id:%d already closed\n", + port_id); + return; + } + + if (port_id >= num_ports) { + cmdline_printf(cl, "Error: please enter valid port " + "number: %d\n", port_id); + return; + } + { + port_close(port_id); + pinfo[port_id].num_queues = 0; + cmdline_printf(cl, "Port-id:%d closed successfully\n", port_id); + } +} + +cmdline_parse_token_string_t cmd_obj_action_port_close = + TOKEN_STRING_INITIALIZER(struct cmd_obj_port_close_result, action, + "port_close"); +cmdline_parse_token_string_t cmd_obj_port_close_port_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_port_close_result, port_id, + NULL); + +cmdline_parse_inst_t cmd_obj_port_close = { + .f = cmd_obj_port_close_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "port_close port-id ", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_obj_action_port_close, + (void *)&cmd_obj_port_close_port_id, + NULL, + }, + +}; + +/* Command Read addr */ +struct cmd_obj_reg_read_result { + cmdline_fixed_string_t action; + cmdline_fixed_string_t port_id; + cmdline_fixed_string_t bar_id; + cmdline_fixed_string_t addr; +}; + +static void cmd_obj_reg_read_parsed(void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + struct cmd_obj_reg_read_result *res = parsed_result; + + cmdline_printf(cl, "Read Port:%s, BAR-index:%s, Address:%s\n\n", + res->port_id, res->bar_id, res->addr); + + int addr = strtol(res->addr, NULL, 16); + + if (addr % 4) { + cmdline_printf(cl, "ERROR: Read address must aligned to " + "a 4-byte boundary.\n\n"); + } else { + int port_id = atoi(res->port_id); + int bar_id = atoi(res->bar_id); + if (port_id >= num_ports) { + cmdline_printf(cl, "Error: port-id:%d not supported\n " + "Please enter valid port-id\n", + port_id); + return; + } + int result = PciRead(bar_id, addr, port_id); + + cmdline_printf(cl, "Read (%d:0x%08x) = 0x%08x\n", + port_id, addr, result); + } +} + +cmdline_parse_token_string_t cmd_obj_action_reg_read = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_read_result, action, + "reg_read"); +cmdline_parse_token_string_t cmd_obj_reg_read_port_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_read_result, port_id, NULL); +cmdline_parse_token_string_t cmd_obj_reg_read_bar_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_read_result, bar_id, NULL); +cmdline_parse_token_string_t cmd_obj_reg_read_addr = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_read_result, addr, NULL); + +cmdline_parse_inst_t cmd_obj_reg_read = { + .f = cmd_obj_reg_read_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "reg_read port-id bar-id address", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_obj_action_reg_read, + (void *)&cmd_obj_reg_read_port_id, + (void *)&cmd_obj_reg_read_bar_id, + (void *)&cmd_obj_reg_read_addr, + NULL, + }, + +}; + +/* Command Write addr */ +struct cmd_obj_reg_write_result { + cmdline_fixed_string_t action; + cmdline_fixed_string_t port_id; + cmdline_fixed_string_t bar_id; + cmdline_fixed_string_t address; + cmdline_fixed_string_t value; +}; + +static void cmd_obj_reg_write_parsed(void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + struct cmd_obj_reg_write_result *res = parsed_result; + + cmdline_printf(cl, "Write Port:%s, Address:%s, Value:%s\n", + res->port_id, res->address, res->value); + + int bar_id = atoi(res->bar_id); + int port_id = atoi(res->port_id); + int addr = strtol(res->address, NULL, 16); + if (port_id >= num_ports) { + cmdline_printf(cl, "Error: port-id:%d not supported\n " + "Please enter valid port-id\n", port_id); + return; + } + if (addr % 4) { + cmdline_printf(cl, "ERROR: Write address must aligned to a " + "4-byte boundary.\n\n"); + } else{ + int value = strtol(res->value, NULL, 16); + PciWrite(bar_id, addr, value, port_id); + int result = PciRead(bar_id, addr, port_id); + cmdline_printf(cl, "Read (%d:0x%08x) = 0x%08x\n", port_id, addr, + result); + } +} + +cmdline_parse_token_string_t cmd_obj_action_reg_write = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_write_result, action, + "reg_write"); +cmdline_parse_token_string_t cmd_obj_reg_write_port_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_write_result, port_id, + NULL); +cmdline_parse_token_string_t cmd_obj_reg_write_bar_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_write_result, bar_id, NULL); +cmdline_parse_token_string_t cmd_obj_reg_write_address = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_write_result, address, + NULL); +cmdline_parse_token_string_t cmd_obj_reg_write_value = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_write_result, value, NULL); + +cmdline_parse_inst_t cmd_obj_reg_write = { + .f = cmd_obj_reg_write_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "reg_write port-id bar-id address value", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_obj_action_reg_write, + (void *)&cmd_obj_reg_write_port_id, + (void *)&cmd_obj_reg_write_bar_id, + (void *)&cmd_obj_reg_write_address, + (void *)&cmd_obj_reg_write_value, + NULL, + }, + +}; + +/* Command do-xmit */ +struct cmd_obj_dma_to_device_result { + cmdline_fixed_string_t action; + cmdline_fixed_string_t port_id; + cmdline_fixed_string_t queues; + cmdline_fixed_string_t filename; + cmdline_fixed_string_t dst_addr; + cmdline_fixed_string_t size; + cmdline_fixed_string_t loops; +}; + +static void cmd_obj_dma_to_device_parsed(void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + struct cmd_obj_dma_to_device_result *res = parsed_result; + int i, ifd, tot_num_desc, offset, size, r_size = 0, total_size = 0; + int ld_size = 0, loop = 0, ret, j, zbyte = 0, user_bar_idx; + off_t ret_val; + int port_id = 0, num_queues = 0, input_size = 0, num_loops = 0; + int dst_addr = 0; + uint32_t regval = 0; + unsigned int q_data_size = 0; + + cmdline_printf(cl, "xmit on Port:%s, filename:%s, num-queues:%s\n\n", + res->port_id, res->filename, res->queues); + + ifd = open(res->filename, O_RDWR); + if (ifd < 0) { + cmdline_printf(cl, "Error: Invalid filename: %s\n", + res->filename); + return; + } + + { + port_id = atoi(res->port_id); + if (port_id >= num_ports) { + cmdline_printf(cl, "Error: port-id:%d not supported\n " + "Please enter valid port-id\n", + port_id); + close(ifd); + return; + } + num_queues = atoi(res->queues); + if ((unsigned int)num_queues > pinfo[port_id].num_queues) { + cmdline_printf(cl, "Error: num-queues:%d are more than " + "the configured queues:%d,\n " + "Please enter valid number of queues\n", + num_queues, pinfo[port_id].num_queues); + close(ifd); + return; + } + if (num_queues == 0) { + cmdline_printf(cl, "Error: Please enter valid number " + "of queues\n"); + close(ifd); + return; + } + user_bar_idx = pinfo[port_id].user_bar_idx; + regval = PciRead(user_bar_idx, C2H_CONTROL_REG, port_id); + + input_size = atoi(res->size); + num_loops = atoi(res->loops); + dst_addr = atoi(res->dst_addr); + +#ifndef PERF_BENCHMARK + if (dst_addr + input_size > BRAM_SIZE) { + cmdline_printf(cl, "Error: (dst_addr %d + input size " + "%d) shall be less than " + "BRAM_SIZE %d.\n", dst_addr, + input_size, BRAM_SIZE); + close(ifd); + return; + } +#endif + /* For zero-byte transfers, HW expects a + * buffer of length 4kb and with desc->len as 0. + */ + if (input_size == 0) { + if ((unsigned int)num_queues <= + pinfo[port_id].st_queues) { + zbyte = 1; + } else { + cmdline_printf(cl, "Error: Zero-length support " + "is for queues with ST-mode " + "only\n"); + close(ifd); + return; + } + } + + if (input_size % num_queues) { + size = input_size / num_queues; + r_size = input_size % num_queues; + } else + size = input_size / num_queues; + + do { + total_size = input_size; + /* transmit data on the number of Queues configured + * from the input file + */ + for (i = 0, j = 0; i < num_queues; i++, j++) { + + if (total_size == 0) + q_data_size = pinfo[port_id].buff_size; + else if (total_size == (r_size + size)) { + q_data_size = total_size; + total_size -= total_size; + } else { + q_data_size = size; + total_size -= size; + } + + if (q_data_size >= pinfo[port_id].buff_size) { + if (q_data_size % + pinfo[port_id].buff_size) { + tot_num_desc = (q_data_size / + pinfo[port_id].buff_size) + 1; + ld_size = q_data_size % + pinfo[port_id].buff_size; + } else + tot_num_desc = (q_data_size / + pinfo[port_id].buff_size); + } else { + tot_num_desc = 1; + ld_size = q_data_size % + pinfo[port_id].buff_size; + } + + if (port_id) + offset = (input_size/num_queues) * j; + else + offset = (input_size/num_queues) * i; + + if ((unsigned int)i < (pinfo[port_id].st_queues) + && !(regval & ST_LOOPBACK_EN)) + ret_val = lseek(ifd, 0, SEEK_SET); + else + ret_val = lseek(ifd, offset, SEEK_SET); + + if (ret_val == (off_t)-1) { + cmdline_printf(cl, "DMA-to-Device: " + "lseek func failed\n"); + close(ifd); + return; + } + +#ifdef PERF_BENCHMARK + dst_addr = (dst_addr + (i * q_data_size)) % + BRAM_SIZE; +#else + dst_addr = dst_addr + (i * q_data_size); +#endif + ret = + update_queue_param(&rte_eth_devices[port_id], i, + TX_DST_ADDRESS, dst_addr); + if (ret < 0) { + close(ifd); + return; + } + + cmdline_printf(cl, "DMA-to-Device: with " + "input-size:%d, ld_size:%d," + "tot_num_desc:%d\n", + input_size, ld_size, + tot_num_desc); + ret = do_xmit(port_id, ifd, i, ld_size, + tot_num_desc, zbyte); + if (ret < 0) { + close(ifd); + return; + } + } + ++loop; + } while (loop < num_loops); + close(ifd); + } + cmdline_printf(cl, "\n######## DMA transfer to device is completed " + "successfully #######\n"); +} + +cmdline_parse_token_string_t cmd_obj_action_dma_to_device = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_to_device_result, action, + "dma_to_device"); +cmdline_parse_token_string_t cmd_obj_dma_to_device_port_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_to_device_result, port_id, + NULL); +cmdline_parse_token_string_t cmd_obj_dma_to_device_queues = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_to_device_result, queues, + NULL); +cmdline_parse_token_string_t cmd_obj_dma_to_device_filename = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_to_device_result, filename, + NULL); +cmdline_parse_token_string_t cmd_obj_dma_to_device_dst_addr = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_to_device_result, dst_addr, + NULL); +cmdline_parse_token_string_t cmd_obj_dma_to_device_size = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_to_device_result, size, + NULL); +cmdline_parse_token_string_t cmd_obj_dma_to_device_loops = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_to_device_result, loops, + NULL); + +cmdline_parse_inst_t cmd_obj_dma_to_device = { + .f = cmd_obj_dma_to_device_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "dma_to_device port-id num-queues filename dst_addr " + "size loops", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_obj_action_dma_to_device, + (void *)&cmd_obj_dma_to_device_port_id, + (void *)&cmd_obj_dma_to_device_queues, + (void *)&cmd_obj_dma_to_device_filename, + (void *)&cmd_obj_dma_to_device_dst_addr, + (void *)&cmd_obj_dma_to_device_size, + (void *)&cmd_obj_dma_to_device_loops, + NULL, + }, + +}; + +/* Command do-recv */ +struct cmd_obj_dma_from_device_result { + cmdline_fixed_string_t action; + cmdline_fixed_string_t port_id; + cmdline_fixed_string_t queues; + cmdline_fixed_string_t filename; + cmdline_fixed_string_t src_addr; + cmdline_fixed_string_t size; + cmdline_fixed_string_t loops; +}; + +static void cmd_obj_dma_from_device_parsed(void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + struct cmd_obj_dma_from_device_result *res = parsed_result; + int i, ofd, offset, size, total_size, r_size = 0; + int mm_tdesc, mm_ld_size = 0; + int loop = 0, ret, j; + off_t ret_val; + int port_id = 0, num_queues = 0, input_size = 0, num_loops = 0; + int src_addr = 0; + unsigned int q_data_size = 0; + + cmdline_printf(cl, "recv on Port:%s, filename:%s\n", + res->port_id, res->filename); + + ofd = open(res->filename, O_RDWR | O_CREAT | O_TRUNC | O_SYNC, 0666); + if (ofd < 0) { + cmdline_printf(cl, "Error: Invalid filename: %s\n", + res->filename); + return; + } + + { + port_id = atoi(res->port_id); + if (port_id >= num_ports) { + cmdline_printf(cl, "Error: port-id:%d not supported\n " + "Please enter valid port-id\n", + port_id); + close(ofd); + return; + } + num_queues = atoi(res->queues); + if ((unsigned int)num_queues > pinfo[port_id].num_queues) { + cmdline_printf(cl, "Error: num-queues:%d are more than " + "the configured queues:%d,\n" + "Please enter valid number of queues\n", + num_queues, pinfo[port_id].num_queues); + close(ofd); + return; + } + if (num_queues == 0) { + cmdline_printf(cl, "Error: Please enter valid number " + "of queues\n"); + close(ofd); + return; + } + input_size = atoi(res->size); + num_loops = atoi(res->loops); + src_addr = atoi(res->src_addr); +#ifndef PERF_BENCHMARK + if (src_addr + input_size > BRAM_SIZE) { + cmdline_printf(cl, "Error: (src_addr %d + input " + "size %d) shall be less than " + "BRAM_SIZE %d.\n", src_addr, + input_size, BRAM_SIZE); + close(ofd); + return; + } +#endif + /* Restrict C2H zerobyte support to ST-mode queues*/ + if (input_size == 0) { + if ((unsigned int)num_queues > + pinfo[port_id].st_queues) { + cmdline_printf(cl, "Error: Zero-length support " + "is for queues with ST-mode only\n"); + close(ofd); + return; + } + } + + if (input_size % num_queues) { + size = input_size / num_queues; + r_size = input_size % num_queues; + } else + size = input_size / num_queues; + + do { + total_size = input_size; + /* Transmit data on the number of Queues configured + * from the input file + */ + for (i = 0, j = 0; i < num_queues; i++, j++) { + + if (total_size == (r_size + size)) { + q_data_size = total_size; + total_size -= total_size; + } else { + q_data_size = size; + total_size -= size; + } + + if (q_data_size >= pinfo[port_id].buff_size) { + if (q_data_size % + pinfo[port_id].buff_size) { + mm_tdesc = (q_data_size / + pinfo[port_id].buff_size) + 1; + + mm_ld_size = q_data_size % + pinfo[port_id].buff_size; + } else + mm_tdesc = (q_data_size / + pinfo[port_id].buff_size); + } else { + mm_tdesc = 1; + mm_ld_size = q_data_size % + pinfo[port_id].buff_size; + } + + if (port_id) + offset = (input_size/num_queues) * j; + else + offset = (input_size/num_queues) * i; + + ret_val = lseek(ofd, offset, SEEK_SET); + if (ret_val == (off_t)-1) { + cmdline_printf(cl, "DMA-to-Device: " + "lseek func failed\n"); + close(ofd); + return; + } +#ifdef PERF_BENCHMARK + src_addr = (src_addr + (i * q_data_size)) % + BRAM_SIZE; +#else + src_addr = src_addr + (i * q_data_size); +#endif + ret = + update_queue_param(&rte_eth_devices[port_id], i, + RX_SRC_ADDRESS, src_addr); + if (ret < 0) { + close(ofd); + return; + } + + cmdline_printf(cl, "DMA-from-Device: with " + "input-size:%d, ld_size:%d, " + "tot_num_desc:%d\n", + input_size, mm_ld_size, + mm_tdesc); + + if ((unsigned int)i < + (pinfo[port_id].st_queues)) + ret = do_recv_st(port_id, ofd, i, + q_data_size); + else + ret = do_recv_mm(port_id, ofd, i, + mm_ld_size, + mm_tdesc); + if (ret < 0) { + close(ofd); + return; + } + + ret_val = lseek(ofd, offset, SEEK_END); + if (ret_val == (off_t)-1) { + cmdline_printf(cl, "DMA-to-Device: " + "lseek func failed\n"); + close(ofd); + return; + } + } + ++loop; + } while (loop < num_loops); + close(ofd); + } + cmdline_printf(cl, "\n####### DMA transfer from device is completed " + "successfully #######\n"); +} + +cmdline_parse_token_string_t cmd_obj_action_dma_from_device = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_from_device_result, action, + "dma_from_device"); +cmdline_parse_token_string_t cmd_obj_dma_from_device_port_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_from_device_result, port_id, + NULL); +cmdline_parse_token_string_t cmd_obj_dma_from_device_queues = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_from_device_result, queues, + NULL); +cmdline_parse_token_string_t cmd_obj_dma_from_device_filename = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_from_device_result, + filename, NULL); +cmdline_parse_token_string_t cmd_obj_dma_from_device_src_addr = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_from_device_result, + src_addr, NULL); +cmdline_parse_token_string_t cmd_obj_dma_from_device_size = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_from_device_result, size, + NULL); +cmdline_parse_token_string_t cmd_obj_dma_from_device_loops = + TOKEN_STRING_INITIALIZER(struct cmd_obj_dma_from_device_result, loops, + NULL); + +cmdline_parse_inst_t cmd_obj_dma_from_device = { + .f = cmd_obj_dma_from_device_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "dma_from_device port_id num-queues filename " + "src_addr size loops", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_obj_action_dma_from_device, + (void *)&cmd_obj_dma_from_device_port_id, + (void *)&cmd_obj_dma_from_device_queues, + (void *)&cmd_obj_dma_from_device_filename, + (void *)&cmd_obj_dma_from_device_src_addr, + (void *)&cmd_obj_dma_from_device_size, + (void *)&cmd_obj_dma_from_device_loops, + NULL, + }, + +}; + +/* Command reg_dump addr + * Register Name - Addr Structure & Values + */ +struct S_NAME_INT_PAIR { + cmdline_fixed_string_t name; + int offset; + cmdline_fixed_string_t desc; +}; + +struct S_NAME_INT_PAIR C_REG_LIST[] = { + // Build/Status Registers + { "FPGA_VER ", 0x00000000, + "FPGA Version" }, + /* Global Ring-size registers */ + { "QDMA_GLBL_RNG_SZ_A[0] ", 0x00000204, + "Ring size index 0" }, + { "QDMA_GLBL_RNG_SZ_A[1] ", 0x00000208, + "Ring size index 1" }, + { "QDMA_GLBL_RNG_SZ_A[2] ", 0x0000020c, + "Ring size index 2" }, + { "QDMA_GLBL_RNG_SZ_A[3] ", 0x00000210, + "Ring size index 3" }, + { "QDMA_GLBL_RNG_SZ_A[4] ", 0x00000214, + "Ring size index 4" }, + { "QDMA_GLBL_RNG_SZ_A[5] ", 0x00000218, + "Ring size index 5" }, + { "QDMA_GLBL_RNG_SZ_A[6] ", 0x0000021c, + "Ring size index 6" }, + { "QDMA_GLBL_RNG_SZ_A[7] ", 0x00000220, + "Ring size index 7" }, + { "QDMA_GLBL_RNG_SZ_A[8] ", 0x00000224, + "Ring size index 8" }, + { "QDMA_GLBL_RNG_SZ_A[9] ", 0x00000228, + "Ring size index 9" }, + { "QDMA_GLBL_RNG_SZ_A[10] ", 0x0000022c, + "Ring size index 10" }, + { "QDMA_GLBL_RNG_SZ_A[11] ", 0x00000230, + "Ring size index 11" }, + { "QDMA_GLBL_RNG_SZ_A[12] ", 0x00000234, + "Ring size index 12" }, + { "QDMA_GLBL_RNG_SZ_A[13] ", 0x00000238, + "Ring size index 13" }, + { "QDMA_GLBL_RNG_SZ_A[14] ", 0x0000023c, + "Ring size index 14" }, + { "QDMA_GLBL_RNG_SZ_A[15] ", 0x00000240, + "Ring size index 15" }, + /* Global Error Status register */ + { "QDMA_GLBL_ERR_STAT ", 0x00000248, + "Global error status" }, + /*Global error mask register*/ + { "QDMA_GLBL_ERR_MASK ", 0x0000024c, + "Global error mask" }, + /* Global Write-back accumulation */ + { "QDMA_GLBL_WB_ACC ", 0x00000250, + "Global Write-back accumulation" }, + /* */ + { "QDMA_GLBL_DSC_ERR_STS ", 0x00000254, + "Global Descriptor error status" }, + /**/ + { "QDMA_GLBL_DSC_ERR_MSK ", 0x00000258, + "Global Descriptor error mask" }, + /**/ + { "QDMA_GLBL_DSC_ERR_LOG0 ", 0x0000025c, + "Global Descriptor error Log0" }, + /**/ + { "QDMA_GLBL_DSC_ERR_LOG1 ", 0x00000260, + "Global Descriptor error Log1" }, + /**/ + { "QDMA_GLBL_TRQ_ERR_STS ", 0x00000264, + "Global target error status" }, + /**/ + { "QDMA_GLBL_TRQ_ERR_MSK ", 0x00000268, + "Global target error mask"}, + /**/ + { "QDMA_GLBL_TRQ_ERR_LOG ", 0x0000026c, + "Register access space, functio, address" }, + /*Function-map registers*/ + { "QDMA_TRQ_SEL_FMAP[0] ", 0x00000400, + "FMAP target index-0" }, + { "QDMA_TRQ_SEL_FMAP[1] ", 0x00000404, + "FMAP target index-1" }, + { "QDMA_C2H_STAT_AXIS_C2H_ACPTD ", 0x00000a88, + "Number of C2H pkts accepted" }, + { "QDMA_C2H_STAT_AXIS_CMPT_ACPTD ", 0x00000a8c, + "Number of C2H CMPT pkts accepted" }, + { "QDMA_C2H_STAT_DESC_RSP_PKT_ACPTD", 0x00000a90, + "Number of desc rsp pkts accepted" }, + { "QDMA_C2H_STAT_AXIS_PKG_CMP ", 0x00000a94, + "Number of C2H pkts accepted" }, + { "QDMA_C2H_STAT_DESC_RSP_ACPTD ", 0x00000a98, + "Number of dsc rsp pkts accepted" }, + { "QDMA_C2H_STAT_DESC_RSP_CMP ", 0x00000a9c, + "Number of dsc rsp pkts completed" }, + { "QDMA_C2H_STAT_WRQ_OUT ", 0x00000aa0, + "Number of WRQ" }, + { "QDMA_C2H_STAT_WPL_REN_ACPTD ", 0x00000aa4, + "Number of WPL REN accepted" }, + { "QDMA_C2H_STAT_TOT_WRQ_LEN ", 0x00000aa8, + "Number of total WRQ len from C2H DMA write engine" }, + { "QDMA_C2H_STAT_TOT_WPL_LEN ", 0x00000aac, + "Number of total WPL len from C2H DMA write engine" }, + { "QDMA_C2H_ERR_STAT ", 0x00000af0, + "C2H error status" }, + { "QDMA_C2H_ERR_MASK ", 0x00000af4, + "C2H error mask" }, + { "QDMA_C2H_FATAL_ERR_STAT ", 0x00000af8, + "C2H fatal error status" }, + { "QDMA_C2H_FATAL_ERR_MSK ", 0x00000afc, + "C2H fatal error mask" }, + { "QDMA_C2H_FATAL_ERR_MSK ", 0x00000afc, + "C2H fatal error mask" }, + // End Of Register List + { "EndOfList", -999, "EndOfList" } +}; + + +struct cmd_obj_reg_dump_result { + cmdline_fixed_string_t action; + cmdline_fixed_string_t port_id; +}; + +static void cmd_obj_reg_dump_parsed(void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + struct cmd_obj_reg_dump_result *res = parsed_result; + + + int bar_id; + int port_id = atoi(res->port_id); + unsigned int i, reg_val; + i = 0; + + bar_id = pinfo[port_id].config_bar_idx; + if (bar_id < 0) { + cmdline_printf(cl, "Error: fetching QDMA config BAR-id " + "on port-id:%d not supported\n Please enter " + "valid port-id\n", port_id); + return; + } + cmdline_printf(cl, "Register dump on cofig BAR-id:%d with Port-id:%s\n", + bar_id, res->port_id); + if (port_id >= num_ports) { + cmdline_printf(cl, "Error: port-id:%d not supported\n " + "Please enter valid port-id\n", + port_id); + return; + } + cmdline_printf(cl, "FPGA Registers\n--------------\n"); + cmdline_printf(cl, "\tName:\t Offset:\tDescription:\t " + "register-Value:\n--------------\n"); + do { + cmdline_printf(cl, "%18s : 0x%08x : %s:", + C_REG_LIST[i].name, + C_REG_LIST[i].offset, + C_REG_LIST[i].desc); + reg_val = PciRead(bar_id, C_REG_LIST[i].offset, port_id); + cmdline_printf(cl, "\tValue:0x%08x\n", reg_val); + i++; + } while (C_REG_LIST[i].offset != -999); +} + +cmdline_parse_token_string_t cmd_obj_action_reg_dump = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_dump_result, action, + "reg_dump"); +cmdline_parse_token_string_t cmd_obj_reg_dump_port_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_reg_dump_result, port_id, NULL); + +cmdline_parse_inst_t cmd_obj_reg_dump = { + .f = cmd_obj_reg_dump_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "reg_dump port-id", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_obj_action_reg_dump, + (void *)&cmd_obj_reg_dump_port_id, + NULL, + }, + +}; + +/*Command queue-context dump*/ + +#define QDMA_IND_CTXT_CMD_A 0x844 + +void queue_context_dump(uint8_t bar_id, uint32_t qid, struct cmdline *cl) +{ + union h2c_c2h_ctxt q_ctxt; + union c2h_cmpt_ctxt c2h_cmpt; + union h2c_c2h_hw_ctxt hw_ctxt; + union prefetch_ctxt pref_ctxt; + uint32_t ctxt_sel, reg_val; + uint32_t base_offset, offset; + uint16_t i; + uint8_t port_id = 0; + + base_offset = (QDMA_TRQ_SEL_IND + QDMA_IND_Q_PRG_OFF); + + /** To read the H2C Queue **/ + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_H2C<<CTXT_SEL_SHIFT_B) | + (qid<<QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD<<OP_CODE_SHIFT_B); + PciWrite(bar_id, QDMA_IND_CTXT_CMD_A, ctxt_sel, port_id); + + cmdline_printf(cl, "\nH2C context-data structure on queue-id:%d:\n", + qid); + for (i = 0; i < 5; i++) { + offset = base_offset + (i * 4); + reg_val = PciRead(bar_id, offset, port_id); + q_ctxt.c_data.data[i] = reg_val; + } + cmdline_printf(cl, "\t\t interrupt vector:%x\n", + q_ctxt.c_fields.int_vec); + cmdline_printf(cl, "\t\t interrupt aggregation:%x\n", + q_ctxt.c_fields.int_aggr); + cmdline_printf(cl, "\t\t Base-addr of Desc ring:%lx\n", + q_ctxt.c_fields.dsc_base); + cmdline_printf(cl, "\t\t is_mm:%x\n", q_ctxt.c_fields.is_mm); + cmdline_printf(cl, "\t\t mrkr_dis:%x\n", q_ctxt.c_fields.mrkr_dis); + cmdline_printf(cl, "\t\t irq_req:%x\n", q_ctxt.c_fields.irq_req); + cmdline_printf(cl, "\t\t err-wb-sent:%x\n", + q_ctxt.c_fields.err_wb_sent); + cmdline_printf(cl, "\t\t Error status:%x\n", q_ctxt.c_fields.err); + cmdline_printf(cl, "\t\t irq_no_last:%x\n", + q_ctxt.c_fields.irq_no_last); + cmdline_printf(cl, "\t\t port id:%x\n", q_ctxt.c_fields.port_id); + cmdline_printf(cl, "\t\t irq-enable:%x\n", q_ctxt.c_fields.irq_en); + cmdline_printf(cl, "\t\t write-back enable:%x\n", + q_ctxt.c_fields.wbk_en); + cmdline_printf(cl, "\t\t mm-channel-id:%x\n", q_ctxt.c_fields.mm_chn); + cmdline_printf(cl, "\t\t bypass:%x\n", q_ctxt.c_fields.byp); + cmdline_printf(cl, "\t\t desc-size index:%x\n", q_ctxt.c_fields.dsc_sz); + cmdline_printf(cl, "\t\t ring-size index:%x\n", q_ctxt.c_fields.rng_sz); + cmdline_printf(cl, "\t\t reserved:%x\n", q_ctxt.c_fields.rsv1); + cmdline_printf(cl, "\t\t fetch_max:%x\n", q_ctxt.c_fields.fetch_max); + cmdline_printf(cl, "\t\t address type of context :%x\n", + q_ctxt.c_fields.at); + cmdline_printf(cl, "\t\t wbi_acc_en:%x\n", q_ctxt.c_fields.wbi_acc_en); + cmdline_printf(cl, "\t\t wbi_chk:%x\n", q_ctxt.c_fields.wbi_chk); + cmdline_printf(cl, "\t\t fetch credits:%x\n", q_ctxt.c_fields.fcrd_en); + cmdline_printf(cl, "\t\t queue-enable:%x\n", q_ctxt.c_fields.qen); + cmdline_printf(cl, "\t\t reserved:%x\n", q_ctxt.c_fields.rsv0); + cmdline_printf(cl, "\t\t function-id:%x\n", q_ctxt.c_fields.fnc_id); + cmdline_printf(cl, "\t\t irq_ack:%x\n", q_ctxt.c_fields.irq_ack); + cmdline_printf(cl, "\t\t producer-index:0x%x\n", q_ctxt.c_fields.pidx); + + cmdline_printf(cl, "\nH2C Hardware Descriptor context-data structure " + "on queue-id:%d:\n", qid); + + ctxt_sel = (QDMA_CTXT_SEL_DESC_HW_H2C<<CTXT_SEL_SHIFT_B) | + (qid<<QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD<<OP_CODE_SHIFT_B); + PciWrite(bar_id, QDMA_IND_CTXT_CMD_A, ctxt_sel, port_id); + + for (i = 0; i < 2; i++) { + offset = base_offset + (i * 4); + reg_val = PciRead(bar_id, offset, port_id); + hw_ctxt.c_data.data[i] = reg_val; + } + cmdline_printf(cl, "\t\t reserved:0x%x\n", hw_ctxt.c_fields.rsvd1); + cmdline_printf(cl, "\t\t descriptor fetch pending:0x%x\n", + hw_ctxt.c_fields.fetch_pend); + cmdline_printf(cl, "\t\t event pending:0x%x\n", + hw_ctxt.c_fields.event_pend); + cmdline_printf(cl, "\t\t Queue invalid Or no descriptor pending:0x%x\n", + hw_ctxt.c_fields.idl_stp_b); + cmdline_printf(cl, "\t\t descriptor pending:0x%x\n", + hw_ctxt.c_fields.pnd); + cmdline_printf(cl, "\t\t reserved:0x%x\n", hw_ctxt.c_fields.rsvd0); + cmdline_printf(cl, "\t\t credit-use:0x%x\n", hw_ctxt.c_fields.crd_use); + cmdline_printf(cl, "\t\t consumer-index:0x%x\n", hw_ctxt.c_fields.cidx); + + /** To read the C2H Queue **/ + cmdline_printf(cl, "\nC2H context-data structure on queue-id:%d:\n", + qid); + + ctxt_sel = (QDMA_CTXT_SEL_DESC_SW_C2H<<CTXT_SEL_SHIFT_B) | + (qid<<QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD<<OP_CODE_SHIFT_B); + PciWrite(bar_id, QDMA_IND_CTXT_CMD_A, ctxt_sel, port_id); + + for (i = 0; i < 5; i++) { + offset = base_offset + (i * 4); + reg_val = PciRead(bar_id, offset, port_id); + q_ctxt.c_data.data[i] = reg_val; + } + cmdline_printf(cl, "\t\t interrupt vector:%x\n", + q_ctxt.c_fields.int_vec); + cmdline_printf(cl, "\t\t interrupt aggregation:%x\n", + q_ctxt.c_fields.int_aggr); + cmdline_printf(cl, "\t\t Base-addr of Desc ring:%lx\n", + q_ctxt.c_fields.dsc_base); + cmdline_printf(cl, "\t\t is_mm:%x\n", q_ctxt.c_fields.is_mm); + cmdline_printf(cl, "\t\t mrkr_dis:%x\n", q_ctxt.c_fields.mrkr_dis); + cmdline_printf(cl, "\t\t irq_req:%x\n", q_ctxt.c_fields.irq_req); + cmdline_printf(cl, "\t\t err-wb-sent:%x\n", + q_ctxt.c_fields.err_wb_sent); + cmdline_printf(cl, "\t\t Error status:%x\n", q_ctxt.c_fields.err); + cmdline_printf(cl, "\t\t irq_no_last:%x\n", + q_ctxt.c_fields.irq_no_last); + cmdline_printf(cl, "\t\t port id:%x\n", q_ctxt.c_fields.port_id); + cmdline_printf(cl, "\t\t irq-enable:%x\n", q_ctxt.c_fields.irq_en); + cmdline_printf(cl, "\t\t write-back enable:%x\n", + q_ctxt.c_fields.wbk_en); + cmdline_printf(cl, "\t\t mm-channel-id:%x\n", q_ctxt.c_fields.mm_chn); + cmdline_printf(cl, "\t\t bypass:%x\n", q_ctxt.c_fields.byp); + cmdline_printf(cl, "\t\t desc-size index:%x\n", + q_ctxt.c_fields.dsc_sz); + cmdline_printf(cl, "\t\t ring-size index:%x\n", + q_ctxt.c_fields.rng_sz); + cmdline_printf(cl, "\t\t reserved:%x\n", q_ctxt.c_fields.rsv1); + cmdline_printf(cl, "\t\t fetch_max:%x\n", q_ctxt.c_fields.fetch_max); + cmdline_printf(cl, "\t\t address type of context :%x\n", + q_ctxt.c_fields.at); + cmdline_printf(cl, "\t\t wbi_acc_en:%x\n", q_ctxt.c_fields.wbi_acc_en); + cmdline_printf(cl, "\t\t wbi_chk:%x\n", q_ctxt.c_fields.wbi_chk); + cmdline_printf(cl, "\t\t fetch credits:%x\n", q_ctxt.c_fields.fcrd_en); + cmdline_printf(cl, "\t\t queue-enable:%x\n", q_ctxt.c_fields.qen); + cmdline_printf(cl, "\t\t reserved:%x\n", q_ctxt.c_fields.rsv0); + cmdline_printf(cl, "\t\t function-id:%x\n", q_ctxt.c_fields.fnc_id); + cmdline_printf(cl, "\t\t irq_ack:%x\n", q_ctxt.c_fields.irq_ack); + cmdline_printf(cl, "\t\t producer-index:0x%x\n", q_ctxt.c_fields.pidx); + + + /** C2H Completion context **/ + cmdline_printf(cl, "\nC2H Completion context-data structure " + "on queue-id:%d:\n", qid); + + ctxt_sel = (QDMA_CTXT_SEL_DESC_CMPT << CTXT_SEL_SHIFT_B) | + (qid<<QID_SHIFT_B) | (QDMA_CTXT_CMD_RD<<OP_CODE_SHIFT_B); + PciWrite(bar_id, QDMA_IND_CTXT_CMD_A, ctxt_sel, port_id); + + for (i = 0; i < 5; i++) { + offset = base_offset + (i * 4); + reg_val = PciRead(bar_id, offset, port_id); + c2h_cmpt.c_data.data[i] = reg_val; + } + + cmdline_printf(cl, "\t\t at:%x\n", c2h_cmpt.c_fields.at); + cmdline_printf(cl, "\t\t ovf_chk_dis:%x\n", + c2h_cmpt.c_fields.ovf_chk_dis); + cmdline_printf(cl, "\t\t full_upd:%x\n", c2h_cmpt.c_fields.full_upd); + cmdline_printf(cl, "\t\t timer_run:%x\n", c2h_cmpt.c_fields.timer_run); + cmdline_printf(cl, "\t\t usr_trig_pend:%x\n", + c2h_cmpt.c_fields.usr_trig_pend); + cmdline_printf(cl, "\t\t err:%x\n", c2h_cmpt.c_fields.err); + cmdline_printf(cl, "\t\t valid:%x\n", c2h_cmpt.c_fields.valid); + cmdline_printf(cl, "\t\t consumer-index:0x%x\n", + c2h_cmpt.c_fields.cidx); + cmdline_printf(cl, "\t\t producer-index:0x%x\n", + c2h_cmpt.c_fields.pidx); + cmdline_printf(cl, "\t\t desc-size:%x\n", c2h_cmpt.c_fields.desc_sz); + cmdline_printf(cl, "\t\t cmpt-desc-base_h addr:0x%x\n", + (unsigned int)c2h_cmpt.c_fields.cmpt_dsc_base_h); + cmdline_printf(cl, "\t\t cmpt-desc-base_l addr:0x%x\n", + (unsigned int)c2h_cmpt.c_fields.cmpt_dsc_base_l); + cmdline_printf(cl, "\t\t size-index:%x\n", c2h_cmpt.c_fields.size); + cmdline_printf(cl, "\t\t color:%x\n", c2h_cmpt.c_fields.color); + cmdline_printf(cl, "\t\t interrupt-state:%x\n", + c2h_cmpt.c_fields.int_st); + cmdline_printf(cl, "\t\t timer-index:0x%x\n", + c2h_cmpt.c_fields.timer_idx); + cmdline_printf(cl, "\t\t counter-index:0x%x\n", + c2h_cmpt.c_fields.count_idx); + cmdline_printf(cl, "\t\t function-id:0x%x\n", c2h_cmpt.c_fields.fnc_id); + cmdline_printf(cl, "\t\t trigger-mode:0x%x\n", + c2h_cmpt.c_fields.trig_mode); + cmdline_printf(cl, "\t\t cause interrupt on completion:0x%x\n", + c2h_cmpt.c_fields.en_int); + cmdline_printf(cl, "\t\t cause status descriptor write on " + "completion:0x%x\n", c2h_cmpt.c_fields.en_stat_desc); + + /* Prefetch Context */ + cmdline_printf(cl, "\nPrefetch context-data structure on " + "queue-id:%d:\n", qid); + + ctxt_sel = (QDMA_CTXT_SEL_PFTCH << CTXT_SEL_SHIFT_B) | + (qid << QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD << OP_CODE_SHIFT_B); + PciWrite(bar_id, QDMA_IND_CTXT_CMD_A, ctxt_sel, port_id); + + for (i = 0; i < 2; i++) { + offset = base_offset + (i * 4); + reg_val = PciRead(bar_id, offset, port_id); + pref_ctxt.c_data.data[i] = reg_val; + } + cmdline_printf(cl, "\t\t valid:0x%x\n", pref_ctxt.c_fields.valid); + cmdline_printf(cl, "\t\t software credit:0x%x\n", + pref_ctxt.c_fields.sw_crdt); + cmdline_printf(cl, "\t\t queue is in prefetch:0x%x\n", + pref_ctxt.c_fields.pfch); + cmdline_printf(cl, "\t\t enable prefetch:0x%x\n", + pref_ctxt.c_fields.pfch_en); + cmdline_printf(cl, "\t\t err:0x%x\n", pref_ctxt.c_fields.err); + cmdline_printf(cl, "\t\t rsvd:0x%x\n", pref_ctxt.c_fields.rsvd); + cmdline_printf(cl, "\t\t port ID:0x%x\n", pref_ctxt.c_fields.port_id); + cmdline_printf(cl, "\t\t buffer size index:0x%x\n", + pref_ctxt.c_fields.buf_sz_idx); + cmdline_printf(cl, "\t\t C2H is in bypass mode:0x%x\n", + pref_ctxt.c_fields.bypass); + + /* C2H Hardware descriptor context */ + cmdline_printf(cl, "\nC2H Hardware Descriptor context-data structure " + "on queue-id:%d:\n", qid); + + ctxt_sel = (QDMA_CTXT_SEL_DESC_HW_C2H<<CTXT_SEL_SHIFT_B) | + (qid<<QID_SHIFT_B) | + (QDMA_CTXT_CMD_RD<<OP_CODE_SHIFT_B); + PciWrite(bar_id, QDMA_IND_CTXT_CMD_A, ctxt_sel, port_id); + + for (i = 0; i < 2; i++) { + offset = base_offset + (i * 4); + reg_val = PciRead(bar_id, offset, port_id); + hw_ctxt.c_data.data[i] = reg_val; + } + cmdline_printf(cl, "\t\t reserved:0x%x\n", hw_ctxt.c_fields.rsvd1); + cmdline_printf(cl, "\t\t descriptor fetch pending:0x%x\n", + hw_ctxt.c_fields.fetch_pend); + cmdline_printf(cl, "\t\t event pending:0x%x\n", + hw_ctxt.c_fields.event_pend); + cmdline_printf(cl, "\t\t Queue invalid Or no descriptor pending:0x%x\n", + hw_ctxt.c_fields.idl_stp_b); + cmdline_printf(cl, "\t\t descriptor pending:0x%x\n", + hw_ctxt.c_fields.pnd); + cmdline_printf(cl, "\t\t reserved:0x%x\n", hw_ctxt.c_fields.rsvd0); + cmdline_printf(cl, "\t\t credit-use:0x%x\n", hw_ctxt.c_fields.crd_use); + cmdline_printf(cl, "\t\t consumer-index:0x%x\n", hw_ctxt.c_fields.cidx); +} + +struct cmd_obj_queue_dump_result { + cmdline_fixed_string_t action; + cmdline_fixed_string_t port_id; + cmdline_fixed_string_t queue_id; +}; + +static void cmd_obj_queue_dump_parsed(void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + struct cmd_obj_queue_dump_result *res = parsed_result; + + cmdline_printf(cl, "queue-dump on Port:%s, queue-id:%s\n\n", + res->port_id, res->queue_id); + + { + int port_id = atoi(res->port_id); + int qid = atoi(res->queue_id); + int bar_id = 0x0; + + bar_id = pinfo[port_id].config_bar_idx; + if (bar_id < 0) { + cmdline_printf(cl, "Error: fetching QDMA config BAR-id " + "on port-id:%d not supported\n Please " + "enter valid port-id\n", port_id); + return; + } + if (port_id >= num_ports) { + cmdline_printf(cl, "Error: port-id:%d not supported\n " + "Please enter valid port-id\n", + port_id); + return; + } + if ((unsigned int)qid >= pinfo[port_id].num_queues) { + cmdline_printf(cl, "Error: queue-id:%d is greater than " + "the number of confgiured queues in " + "the port\n Please enter valid " + "queue-id\n", qid); + return; + } + qid = qid + pinfo[port_id].queue_base; + queue_context_dump(bar_id, qid, cl); + + } +} + +cmdline_parse_token_string_t cmd_obj_action_queue_dump = + TOKEN_STRING_INITIALIZER(struct cmd_obj_queue_dump_result, action, + "queue_dump"); +cmdline_parse_token_string_t cmd_obj_queue_dump_port_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_queue_dump_result, port_id, + NULL); +cmdline_parse_token_string_t cmd_obj_queue_dump_queue_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_queue_dump_result, queue_id, + NULL); + +cmdline_parse_inst_t cmd_obj_queue_dump = { + .f = cmd_obj_queue_dump_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "queue_dump port-id queue_id", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_obj_action_queue_dump, + (void *)&cmd_obj_queue_dump_port_id, + (void *)&cmd_obj_queue_dump_queue_id, + NULL, + }, + +}; + +/* Command descriptor dump */ + +struct cmd_obj_desc_dump_result { + cmdline_fixed_string_t action; + cmdline_fixed_string_t port_id; + cmdline_fixed_string_t queue_id; +}; + +static void cmd_obj_desc_dump_parsed(void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + struct cmd_obj_desc_dump_result *res = parsed_result; + + cmdline_printf(cl, "Descriptor-dump on Port:%s, queue-id:%s\n\n", + res->port_id, res->queue_id); + { + int port_id = atoi(res->port_id); + int qid = atoi(res->queue_id); + if (port_id >= num_ports) { + cmdline_printf(cl, "Error: port-id:%d not supported\n" + "Please enter valid port-id\n", + port_id); + return; + } + if ((unsigned int)qid >= pinfo[port_id].num_queues) { + cmdline_printf(cl, "Error: queue-id:%d is greater than " + "the number of confgiured queues in " + "the port\n Please enter valid " + "queue-id\n", qid); + return; + } + qdma_desc_dump(&rte_eth_devices[port_id], qid); + } +} + +cmdline_parse_token_string_t cmd_obj_action_desc_dump = + TOKEN_STRING_INITIALIZER(struct cmd_obj_desc_dump_result, action, + "desc_dump"); +cmdline_parse_token_string_t cmd_obj_desc_dump_port_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_desc_dump_result, port_id, + NULL); +cmdline_parse_token_string_t cmd_obj_desc_dump_queue_id = + TOKEN_STRING_INITIALIZER(struct cmd_obj_desc_dump_result, queue_id, + NULL); + +cmdline_parse_inst_t cmd_obj_desc_dump = { + .f = cmd_obj_desc_dump_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "desc_dump port-id queue_id", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_obj_action_desc_dump, + (void *)&cmd_obj_desc_dump_port_id, + (void *)&cmd_obj_desc_dump_queue_id, + NULL, + }, + +}; + +/*Command load commands from file */ + +struct cmd_obj_load_cmds_result { + cmdline_fixed_string_t action; + cmdline_fixed_string_t filename; +}; + +static void cmd_obj_load_cmds_parsed(void *parsed_result, + struct cmdline *cl, + __attribute__((unused)) void *data) +{ + struct cmd_obj_load_cmds_result *res = parsed_result; + FILE *fp; + char buff[256]; + + cmdline_printf(cl, "load-cmds from file:%s\n\n", res->filename); + fp = fopen((const char *)res->filename, "r"); + if (fp == NULL) { + cmdline_printf(cl, "Error: Invalid filename: %s\n", + res->filename); + return; + } + + rdline_reset(&cl->rdl); + { + cmdline_in(cl, "\r", 1); + while (fgets(buff, sizeof(buff), fp)) + cmdline_in(cl, buff, strlen(buff)); + + cmdline_in(cl, "\r", 1); + } + fclose(fp); +} + +cmdline_parse_token_string_t cmd_obj_action_load_cmds = + TOKEN_STRING_INITIALIZER(struct cmd_obj_load_cmds_result, action, + "load_cmds"); +cmdline_parse_token_string_t cmd_obj_load_cmds_filename = + TOKEN_STRING_INITIALIZER(struct cmd_obj_load_cmds_result, filename, + NULL); + +cmdline_parse_inst_t cmd_obj_load_cmds = { + .f = cmd_obj_load_cmds_parsed, /* function to call */ + .data = NULL, /* 2nd arg of func */ + .help_str = "load_cmds file-name", + .tokens = { /* token list, NULL terminated */ + (void *)&cmd_obj_action_load_cmds, + (void *)&cmd_obj_load_cmds_filename, + NULL, + }, + +}; + +/* CONTEXT (list of instruction) */ + +cmdline_parse_ctx_t main_ctx[] = { + (cmdline_parse_inst_t *)&cmd_obj_port_init, + (cmdline_parse_inst_t *)&cmd_obj_port_close, + (cmdline_parse_inst_t *)&cmd_obj_reg_read, + (cmdline_parse_inst_t *)&cmd_obj_reg_write, + (cmdline_parse_inst_t *)&cmd_obj_dma_to_device, + (cmdline_parse_inst_t *)&cmd_obj_dma_from_device, + (cmdline_parse_inst_t *)&cmd_obj_reg_dump, + (cmdline_parse_inst_t *)&cmd_obj_queue_dump, + (cmdline_parse_inst_t *)&cmd_obj_desc_dump, + (cmdline_parse_inst_t *)&cmd_obj_load_cmds, + (cmdline_parse_inst_t *)&cmd_help, + NULL, +}; diff --git a/QDMA/DPDK/examples/qdma_testapp/commands.h b/QDMA/DPDK/examples/qdma_testapp/commands.h new file mode 100644 index 0000000..4bae349 --- /dev/null +++ b/QDMA/DPDK/examples/qdma_testapp/commands.h @@ -0,0 +1,38 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _COMMANDS_H_ +#define _COMMANDS_H_ + +extern cmdline_parse_ctx_t main_ctx[]; +#endif /* _COMMANDS_H_ */ diff --git a/QDMA/DPDK/examples/qdma_testapp/parse_obj_list.c b/QDMA/DPDK/examples/qdma_testapp/parse_obj_list.c new file mode 100644 index 0000000..66f4df0 --- /dev/null +++ b/QDMA/DPDK/examples/qdma_testapp/parse_obj_list.c @@ -0,0 +1,196 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/*- + * BSD LICENSE + * + * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright (c) 2009, Olivier MATZ <zer0@droids-corp.org> + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the University of California, Berkeley nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdio.h> +#include <inttypes.h> +#include <stdarg.h> +#include <errno.h> +#include <ctype.h> +#include <string.h> +#include <netinet/in.h> + +#include <cmdline_parse.h> +#include <cmdline_parse_ipaddr.h> + +#include <rte_string_fns.h> + +#include "parse_obj_list.h" + +/* This file is an example of extension of libcmdline. It provides an + * example of objects stored in a list + */ + +struct cmdline_token_ops token_obj_list_ops = { + .parse = parse_obj_list, + .complete_get_nb = complete_get_nb_obj_list, + .complete_get_elt = complete_get_elt_obj_list, + .get_help = get_help_obj_list, +}; + +int +parse_obj_list(cmdline_parse_token_hdr_t *tk, const char *buf, void *res, + unsigned int buf_len) +{ + struct token_obj_list *tk2 = (struct token_obj_list *)tk; + struct token_obj_list_data *tkd = &tk2->obj_list_data; + struct object *o; + unsigned int token_len = 0; + + if (*buf == 0) + return -1; + + while (!cmdline_isendoftoken(buf[token_len])) + token_len++; + + SLIST_FOREACH(o, tkd->list, next) { + if (token_len != strnlen(o->name, OBJ_NAME_LEN_MAX)) + continue; + if (strncmp(buf, o->name, token_len)) + continue; + break; + } + if (!o) /* not found */ + return -1; + + /* store the address of object in structure */ + if (res) + *(struct object **)res = o; + + return token_len; +} + +int complete_get_nb_obj_list(cmdline_parse_token_hdr_t *tk) +{ + struct token_obj_list *tk2 = (struct token_obj_list *)tk; + struct token_obj_list_data *tkd = &tk2->obj_list_data; + struct object *o; + int ret = 0; + + SLIST_FOREACH(o, tkd->list, next) { + ret++; + } + return ret; +} + +int complete_get_elt_obj_list(cmdline_parse_token_hdr_t *tk, + int idx, char *dstbuf, unsigned int size) +{ + struct token_obj_list *tk2 = (struct token_obj_list *)tk; + struct token_obj_list_data *tkd = &tk2->obj_list_data; + struct object *o; + int i = 0; + unsigned int len; + + SLIST_FOREACH(o, tkd->list, next) { + if (i++ == idx) + break; + } + if (!o) + return -1; + + len = strnlen(o->name, OBJ_NAME_LEN_MAX); + if ((len + 1) > size) + return -1; + + if (dstbuf) + snprintf(dstbuf, size, "%s", o->name); + + return 0; +} + + +int get_help_obj_list(__attribute__((unused)) cmdline_parse_token_hdr_t *tk, + char *dstbuf, unsigned int size) +{ + snprintf(dstbuf, size, "Obj-List"); + return 0; +} diff --git a/QDMA/DPDK/examples/qdma_testapp/parse_obj_list.h b/QDMA/DPDK/examples/qdma_testapp/parse_obj_list.h new file mode 100644 index 0000000..aa754ba --- /dev/null +++ b/QDMA/DPDK/examples/qdma_testapp/parse_obj_list.h @@ -0,0 +1,146 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/*- + * BSD LICENSE + * + * Copyright(c) 2010-2014 Intel Corporation. All rights reserved. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Intel Corporation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/* + * Copyright (c) 2009, Olivier MATZ <zer0@droids-corp.org> + * All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of the University of California, Berkeley nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _PARSE_OBJ_LIST_H_ +#define _PARSE_OBJ_LIST_H_ + +/* This file is an example of extension of libcmdline. It provides an + * example of objects stored in a list. + */ + +#include <sys/queue.h> +#include <cmdline_parse.h> + +#define OBJ_NAME_LEN_MAX 64 + +struct object { + SLIST_ENTRY(object) next; + char name[OBJ_NAME_LEN_MAX]; + cmdline_ipaddr_t ip; +}; + +/* define struct object_list */ +SLIST_HEAD(object_list, object); + +/* data is a pointer to a list */ +struct token_obj_list_data { + struct object_list *list; +}; + +struct token_obj_list { + struct cmdline_token_hdr hdr; + struct token_obj_list_data obj_list_data; +}; +typedef struct token_obj_list parse_token_obj_list_t; + +extern struct cmdline_token_ops token_obj_list_ops; + +int parse_obj_list(cmdline_parse_token_hdr_t *tk, const char *srcbuf, void *res, + unsigned int buf_len); +int complete_get_nb_obj_list(cmdline_parse_token_hdr_t *tk); +int complete_get_elt_obj_list(cmdline_parse_token_hdr_t *tk, int idx, + char *dstbuf, unsigned int size); +int get_help_obj_list(cmdline_parse_token_hdr_t *tk, char *dstbuf, + unsigned int size); + +#define TOKEN_OBJ_LIST_INITIALIZER(structure, field, obj_list_ptr) \ +{ \ + .hdr = { \ + .ops = &token_obj_list_ops, \ + .offset = offsetof(structure, field), \ + }, \ + .obj_list_data = { \ + .list = obj_list_ptr, \ + }, \ +} + +#endif /* _PARSE_OBJ_LIST_H_ */ diff --git a/QDMA/DPDK/examples/qdma_testapp/pcierw.c b/QDMA/DPDK/examples/qdma_testapp/pcierw.c new file mode 100644 index 0000000..0e384dc --- /dev/null +++ b/QDMA/DPDK/examples/qdma_testapp/pcierw.c @@ -0,0 +1,56 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <sys/ioctl.h> +#include <net/if.h> +#include <unistd.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <rte_ethdev.h> + +#include "pcierw.h" + +unsigned int PciRead(unsigned int Bar, unsigned int Offset, int portid) +{ + + return qdma_pci_read_reg(&rte_eth_devices[portid], Bar, Offset); +} + + +void PciWrite(unsigned int Bar, unsigned int Offset, unsigned int RegVal, + int portid) +{ + + qdma_pci_write_reg(&rte_eth_devices[portid], Bar, Offset, RegVal); + +} diff --git a/QDMA/DPDK/examples/qdma_testapp/pcierw.h b/QDMA/DPDK/examples/qdma_testapp/pcierw.h new file mode 100644 index 0000000..f4a7b2a --- /dev/null +++ b/QDMA/DPDK/examples/qdma_testapp/pcierw.h @@ -0,0 +1,42 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef __PCIERW_H__ +#define __PCIERW_H__ + +unsigned int PciRead(unsigned int Bar, unsigned int Offset, int SockFD); +void PciWrite(unsigned int Bar, unsigned int Offset, unsigned int RegVal, + int SockFD); +void qdma_pci_write_reg(struct rte_eth_dev *dev, uint32_t bar, uint32_t reg, + uint32_t val); +uint32_t qdma_pci_read_reg(struct rte_eth_dev *dev, uint32_t bar, uint32_t reg); +#endif diff --git a/QDMA/DPDK/examples/qdma_testapp/qdma_regs.h b/QDMA/DPDK/examples/qdma_testapp/qdma_regs.h new file mode 100644 index 0000000..c8e0d07 --- /dev/null +++ b/QDMA/DPDK/examples/qdma_testapp/qdma_regs.h @@ -0,0 +1,235 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +/** Target definations **/ +#define QDMA_TRQ_SEL_GLBL 0x00000200 +#define QDMA_TRQ_SEL_FMAP 0x00000400 +#define QDMA_TRQ_SEL_IND 0x00000800 +#define QDMA_TRQ_SEL_C2H 0x00000A00 +#define QDMA_TRQ_SEL_H2H 0x00000E00 +#define QDMA_TRQ_SEL_C2H_MM0 0x00001000 +#define QDMA_TRQ_SEL_H2C_MM0 0x00001200 +#define QDMA_TRQ_SEL_QUEUE_PF 0x00006400 + +#define QDMA_CONFIG_BLOCK_ID 0x1fd00000UL +/** Global registers **/ +#define QDMA_GLBL_RING_SZ 0x04 +#define QDMA_GLBL_SCRATCH 0x44 +#define QDMA_GLBL_WB_ACC 0x50 +#define QDMA_RING_SZ_MSK 0x0000ffff +#define QDMA_WB_ACC_MSK 0x00000007 + +/** Fmap registers **/ +#define QID_BASE_MSK (0x000007ff) +#define QID_MAX_MSK (0x003ff800) +#define QID_MAX_SHIFT_B (11) + +/** Queue Indirect programming commands **/ + +#define QDMA_IND_Q_PRG_OFF (0x4) + +#define QDMA_CTXT_CMD_CLR (0) +#define QDMA_CTXT_CMD_WR (1) +#define QDMA_CTXT_CMD_RD (2) +#define QDMA_CTXT_CMD_INV (3) + +#define QDMA_CTXT_SEL_DESC_SW_C2H (0) +#define QDMA_CTXT_SEL_DESC_SW_H2C (1) +#define QDMA_CTXT_SEL_DESC_HW_C2H (2) +#define QDMA_CTXT_SEL_DESC_HW_H2C (3) +#define QDMA_CTXT_SEL_CR_C2H (4) +#define QDMA_CTXT_SEL_CR_H2C (5) +#define QDMA_CTXT_SEL_DESC_CMPT (6) +#define QDMA_CTXT_SEL_PFTCH (7) + +#define QID_SHIFT_B (7) +#define OP_CODE_SHIFT_B (5) +#define CTXT_SEL_SHIFT_B (1) +#define BUSY_BIT_MSK (1) + +#define WB_EN_SHIFT_B (20) +#define MM_CHAN_SHIFT_B (19) +#define MM_DESC_SZ_SHIFT_B (17) +#define ST_H2C_DESC_SZ_SHIFT_B (16) +#define DESC_RING_SZ_SHIFT_B (12) +#define ST_H2C_DESC_SZ_SHIFT_B (16) +#define MM_DESC_SZ_WB_SHIFT_B (29) +#define C2H_WB_CTXT_V_SHIFT_B (24) + +/** C2H target registers **/ +#define QDMA_C2H_CNT_TH_BASE 0x40 +#define QDMA_C2H_BUF_SZ_BASE 0xB0 + +/** PF Queue index registers */ +#define QDMA_H2C_PIDX_Q_OFF (0x04) +#define QDMA_C2H_PIDX_Q_OFF (0x08) +#define QDMA_SEL_CMPT_CIDX_Q_OFF (0x0c) + + +/** QDMA Target registers **/ +#define QDMA_C2H_MM0_CONTROL 0x00000004 +#define QDMA_H2C_MM0_CONTROL 0x00000004 +#define QDMA_MM_CTRL_START (1 << 0) + +/** QDMA Descriptor definations **/ +#define QDMA_DESC_SOP 0x1 +#define QDMA_DESC_EOP 0x1 +#define QDMA_DESC_VALID 0x1 + + +/** Queue Indirect programming registers **/ +struct __attribute__ ((packed)) q_ind_prg +{ + uint32_t ctxt_data[8]; + uint32_t ctxt_mask[8]; + uint32_t ctxt_cmd; +}; + +union __attribute__ ((packed)) h2c_c2h_ctxt +{ + struct __attribute__ ((packed)) ctxt_data + { + uint32_t data[5]; + } c_data; + struct __attribute__ ((packed)) ctxt_fields + { + uint16_t pidx; + uint16_t irq_ack:1; + uint16_t fnc_id:8; + uint16_t rsv0:7; + uint16_t qen:1; + uint16_t fcrd_en:1; + uint16_t wbi_chk:1; + uint16_t wbi_acc_en:1; + uint16_t at:1; + uint16_t fetch_max:3; + uint16_t rsv1:4; + uint16_t rng_sz:4; + uint16_t dsc_sz:2; + uint16_t byp:1; + uint16_t mm_chn:1; + uint16_t wbk_en:1; + uint16_t irq_en:1; + uint16_t port_id:3; + uint16_t irq_no_last:1; + uint16_t err:2; + uint16_t err_wb_sent:1; + uint16_t irq_req:1; + uint16_t mrkr_dis:1; + uint16_t is_mm:1; + uint64_t dsc_base; + uint16_t int_vec:11; + uint16_t int_aggr:1; + } c_fields; +}; + +union __attribute__ ((packed)) c2h_cmpt_ctxt +{ + struct __attribute__ ((packed)) c2h_cmpt_data + { + uint32_t data[5]; + } c_data; + struct __attribute__ ((packed)) c2h_cmpt_fields + { + uint32_t en_stat_desc:1; + uint32_t en_int:1; + uint32_t trig_mode:3; + uint32_t fnc_id:12; + uint32_t count_idx:4; + uint32_t timer_idx:4; + uint32_t int_st:2; + uint32_t color:1; + uint32_t size:4; + uint32_t cmpt_dsc_base_l; + uint32_t cmpt_dsc_base_h:26; + uint32_t desc_sz:2; + uint32_t pidx:16; + uint32_t cidx:16; + uint32_t valid:1; + uint32_t err:2; + uint32_t usr_trig_pend:1; + uint32_t timer_run:1; + uint32_t full_upd:1; + uint32_t ovf_chk_dis:1; + uint32_t at:1; + } c_fields; +}; + +union __attribute__ ((packed)) h2c_c2h_hw_ctxt +{ + struct __attribute__ ((packed)) hw_ctxt_data + { + uint32_t data[2]; + } c_data; + struct __attribute__ ((packed)) hw_ctxt_fields + { + uint32_t cidx:16; + uint32_t crd_use:16; + uint32_t rsvd0:8; + uint32_t pnd:1; + uint32_t idl_stp_b:1; + uint32_t event_pend:1; + uint32_t fetch_pend:4; + uint32_t rsvd1:1; + } c_fields; +}; + +union __attribute__ ((packed)) prefetch_ctxt +{ + struct __attribute__ ((packed)) pref_ctxt_data + { + uint32_t data[2]; + } c_data; + + struct __attribute__ ((packed)) pref_ctxt_fields + { + uint8_t bypass:1; + uint8_t buf_sz_idx:4; + uint8_t port_id:3; + uint32_t rsvd:18; + uint8_t err:1; + uint8_t pfch_en:1; + uint8_t pfch:1; + uint16_t sw_crdt:16; + uint8_t valid:1; + } c_fields; +}; + +#define PIDX_MSK (0) +#define Q_STATUS_MSK (0) +#define Q_STATUS_EN_MSK (3) +#define Q_STATUS_RST_MSK (1) +#define WBI_CHK_MSK (6) +#define WBI_ACC_EN_MSK (7) +#define FUNC_ID_MSK (8) +#define RING_SZ_MSK (16) +#define DESC_SZ_MSK (16) diff --git a/QDMA/DPDK/examples/qdma_testapp/testapp.c b/QDMA/DPDK/examples/qdma_testapp/testapp.c new file mode 100644 index 0000000..5ec7ca0 --- /dev/null +++ b/QDMA/DPDK/examples/qdma_testapp/testapp.c @@ -0,0 +1,795 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include <stdio.h> +#include <string.h> /**> memset */ +#include <signal.h> +#include <termios.h> +#include <rte_eal.h> /**> rte_eal_init */ +#include <rte_debug.h> /**> for rte_panic */ +#include <rte_ethdev.h> /**> rte_eth_rx_burst */ +#include <rte_errno.h> /**> rte_errno global var */ +#include <rte_memzone.h> /**> rte_memzone_dump */ +#include <rte_memcpy.h> +#include <rte_malloc.h> +#include <rte_cycles.h> +#include <rte_log.h> +#include <rte_string_fns.h> +#include <cmdline_rdline.h> +#include <cmdline_parse.h> +#include <cmdline_socket.h> +#include <cmdline.h> +#include <time.h> /** For SLEEP **/ +#include <getopt.h> +#include <unistd.h> +#include <fcntl.h> +#include <rte_mbuf.h> + +#include "pcierw.h" +#include "commands.h" +#include "qdma_regs.h" +#include "testapp.h" +#include "../../drivers/net/qdma/qdma.h" + +int num_ports; +char *filename; + +struct port_info pinfo[QDMA_MAX_PORTS]; + +int do_recv_mm(int portid, int fd, int queueid, int ld_size, int tot_num_desc) +{ + struct rte_mbuf *pkts[NUM_RX_PKTS] = { NULL }; + int nb_rx = 0, i = 0, ret = 0, num_pkts; + int tdesc; +#ifdef PERF_BENCHMARK + uint64_t prev_tsc, cur_tsc, diff_tsc; +#endif + + if (tot_num_desc == 0) { + printf("Error: tot_num_desc : invalid value\n"); + return -1; + } + + printf("recv start num-desc: %d, with data-len: %d, " + "last-desc-size:%d\n", + tot_num_desc, pinfo[portid].buff_size, ld_size); + tdesc = tot_num_desc; + if (ld_size) + tdesc--; + + while (tdesc) { + if (tdesc > NUM_RX_PKTS) + num_pkts = NUM_RX_PKTS; + else + num_pkts = tdesc; +#ifdef PERF_BENCHMARK + prev_tsc = rte_rdtsc_precise(); +#endif + /* try to receive RX_BURST_SZ packets */ + nb_rx = rte_eth_rx_burst(portid, queueid, pkts, num_pkts); + +#ifdef PERF_BENCHMARK + cur_tsc = rte_rdtsc_precise(); + diff_tsc = cur_tsc - prev_tsc; +#endif + + if (nb_rx == 0) { + printf("Error: dma_from_device failed to " + "receive packets\n"); + return -1; + } +#ifdef PERF_BENCHMARK + /* Calculate average operations processed per second */ + double pkts_per_second = ((double)nb_rx * rte_get_tsc_hz() / + diff_tsc); + + /* Calculate average throughput (Gbps) in bits per second */ + double throughput_gbps = ((pkts_per_second * + pinfo[portid].buff_size) / 1000000000); + printf("Throughput GBps %lf\n", throughput_gbps); + printf("%16s%16s%16s%16s%16s%16s%16s\n\n", + "Buf Size", "Burst Size", + "pps", "Gbps", "freq", "Cycles", + "Cycles/Buf"); + + printf("%16u%16u%16.4lf%16.4lf%16 " + ""PRIu64"%16"PRIu64"%16"PRIu64"\n", + pinfo[portid].buff_size, + nb_rx, + pkts_per_second, + throughput_gbps, + rte_get_tsc_hz(), + diff_tsc, + diff_tsc/nb_rx); +#endif + + for (i = 0; i < nb_rx; i++) { + struct rte_mbuf *mb = pkts[i]; + ret = write(fd, rte_pktmbuf_mtod(mb, void*), + pinfo[portid].buff_size); + rte_pktmbuf_free(mb); +#ifndef PERF_BENCHMARK + printf("recv count: %d, with data-len: %d\n", i, ret); +#endif + } + tdesc = tdesc - nb_rx; + } + if (ld_size) { + struct rte_mbuf *mb; + nb_rx = rte_eth_rx_burst(portid, queueid, pkts, 1); + if (nb_rx != 0) { + mb = pkts[0]; + ret = write(fd, rte_pktmbuf_mtod(mb, void*), ld_size); + rte_pktmbuf_free(mb); + } + } + fsync(fd); + printf("\nDMA received number of packets: %d, on queue-id:%d\n", + nb_rx, queueid); + return 0; +} + +int do_recv_st(int portid, int fd, int queueid, int input_size) +{ + struct rte_mbuf *pkts[NUM_RX_PKTS] = { NULL }; + int nb_rx = 0, i, ret = 0, tmp = 0, num_pkts, nb_pkts; + int reg_val, num_pkts_recv = 0; + int regval; + int user_bar_idx; + struct rte_mbuf *nxtmb; + int qbase = pinfo[portid].queue_base, diag; + unsigned int max_completion_size; + unsigned int max_rx_retry; + +#ifdef DUMP_MEMPOOL_USAGE_STATS + struct rte_mempool *mp; + mp = rte_mempool_lookup(pinfo[portid].mem_pool); + + /* get the mempool from which to acquire buffers */ + if (mp == NULL) + rte_exit(EXIT_FAILURE, "Could not find mempool with name %s\n", + pinfo[portid].mem_pool); +#endif //DUMP_MEMPOOL_USAGE_STATS + + user_bar_idx = pinfo[portid].user_bar_idx; + PciWrite(user_bar_idx, C2H_ST_QID_REG, (queueid + qbase), portid); + + /* As per hardware design a single completion will point to atmost + * 7 descriptors. So If the size of the buffer in descriptor is 4KB , + * then a single completion which corresponds a packet can give you + * atmost 28KB data. + * + * As per this when testing sizes beyond 28KB, one needs to split it + * up in chunks of 28KB, example : to test 56KB data size, set 28KB + * as packet length in USER BAR 0x04 register and no of packets as 2 + * in user BAR 0x20 register this would give you completions or + * packets, which needs to be combined as one in application. + */ + + max_completion_size = pinfo[portid].buff_size * 7; + + /* Calculate number of packets to receive and programming user bar */ + if (input_size == 0) /* zerobyte support uses one descriptor */ + num_pkts = 1; + else if (input_size % max_completion_size != 0) + num_pkts = input_size / max_completion_size + 1; + else + num_pkts = input_size / max_completion_size; + + reg_val = PciRead(user_bar_idx, C2H_CONTROL_REG, portid); + reg_val &= C2H_CONTROL_REG_MASK; + if (!(reg_val & ST_LOOPBACK_EN)) { + PciWrite(user_bar_idx, C2H_PACKET_COUNT_REG, num_pkts, portid); + + if (num_pkts > 1) + PciWrite(user_bar_idx, C2H_ST_LEN_REG, + max_completion_size, portid); + else + PciWrite(user_bar_idx, C2H_ST_LEN_REG, input_size, + portid); + + regval = PciRead(user_bar_idx, C2H_PACKET_COUNT_REG, portid); + printf("BAR-%d is the QDMA C2H number of packets:0x%x,\n", + user_bar_idx, regval); + } + + while (num_pkts) { + if (num_pkts > NUM_RX_PKTS) + nb_pkts = NUM_RX_PKTS; + else + nb_pkts = num_pkts; + + max_rx_retry = RX_TX_MAX_RETRY; + /* Start the C2H Engine */ + reg_val = PciRead(user_bar_idx, C2H_CONTROL_REG, portid); + reg_val &= C2H_CONTROL_REG_MASK; + if (!(reg_val & ST_LOOPBACK_EN)) { + reg_val |= ST_C2H_START_VAL; + PciWrite(user_bar_idx, C2H_CONTROL_REG, reg_val, + portid); + } + /* Immediate data Enabled*/ + if ((reg_val & ST_C2H_IMMEDIATE_DATA_EN)) { + /* payload received is zero for the immediate data case. + * Therefore, no need to call the rx_burst function + * again in this case and set the num_pkts to nb_rx + * which is always Zero. + */ + diag = update_queue_param(&rte_eth_devices[portid], + queueid, + DUMP_IMMEDIATE_DATA, 1); + if (diag < 0) + rte_exit(EXIT_FAILURE, "updata_queue_param : " + "Passing of DUMP_IMMEDIATE_DATA " + "failed\n"); + nb_rx = rte_eth_rx_burst(portid, queueid, pkts, + nb_pkts); + num_pkts = num_pkts_recv = nb_rx; + + /* Reset the queue's DUMP_IMMEDIATE_DATA mode */ + diag = update_queue_param(&rte_eth_devices[portid], + queueid, + DUMP_IMMEDIATE_DATA, 0); + if (diag < 0) + rte_exit(EXIT_FAILURE, "updata_queue_param : " + "Passing of DUMP_IMMEDIATE_DATA " + "failed\n"); + } else { + /* try to receive RX_BURST_SZ packets */ + + nb_rx = rte_eth_rx_burst(portid, queueid, pkts, + nb_pkts); + tmp = nb_rx; + while ((nb_rx < nb_pkts) && max_rx_retry) { + printf("Couldn't receive all the packets: " + "Expected = %d Received = %d.\n" + "Calling rte_eth_rx_burst " + "again\n", nb_pkts, nb_rx); + nb_pkts -= nb_rx; + nb_rx = rte_eth_rx_burst(portid, queueid, + &pkts[tmp], + nb_pkts); + tmp += nb_rx; + max_rx_retry--; + } + num_pkts_recv = tmp; + if ((max_rx_retry == 0) && (num_pkts_recv == 0)) { + printf("ERROR: rte_eth_rx_burst failed for " + "port %d queue id %d\n", + portid, queueid); + break; + } + } + + /* Stop the C2H Engine */ + reg_val = PciRead(user_bar_idx, C2H_CONTROL_REG, portid); + reg_val &= C2H_CONTROL_REG_MASK; + if (!(reg_val & ST_LOOPBACK_EN)) { + reg_val &= ~(ST_C2H_START_VAL); + PciWrite(user_bar_idx, C2H_CONTROL_REG, reg_val, + portid); + } + +#ifdef DUMP_MEMPOOL_USAGE_STATS + printf("%s(): %d: queue id = %d, mbuf_avail_count = %d, " + "mbuf_in_use_count = %d\n", + __func__, __LINE__, queueid, + rte_mempool_avail_count(mp), + rte_mempool_in_use_count(mp)); +#endif //DUMP_MEMPOOL_USAGE_STATS + for (i = 0; i < num_pkts_recv; i++) { + struct rte_mbuf *mb = pkts[i]; + while (mb != NULL) { + ret += write(fd, rte_pktmbuf_mtod(mb, void*), + rte_pktmbuf_data_len(mb)); + nxtmb = mb->next; + mb = nxtmb; + } + + mb = pkts[i]; + rte_pktmbuf_free(mb); + printf("recv count: %d, with data-len: %d\n", i, ret); + ret = 0; + } +#ifdef DUMP_MEMPOOL_USAGE_STATS + printf("%s(): %d: queue id = %d, mbuf_avail_count = %d, " + "mbuf_in_use_count = %d, num_pkts_recv = %d\n", + __func__, __LINE__, queueid, + rte_mempool_avail_count(mp), + rte_mempool_in_use_count(mp), num_pkts_recv); +#endif //DUMP_MEMPOOL_USAGE_STATS + num_pkts = num_pkts - num_pkts_recv; + printf("\nDMA received number of packets: %d, on queue-id:%d\n", + num_pkts_recv, queueid); + } + + fsync(fd); + return 0; +} + +int do_xmit(int portid, int fd, int queueid, int ld_size, int tot_num_desc, + int zbyte) +{ + struct rte_mempool *mp; + struct rte_mbuf *mb[NUM_RX_PKTS] = { NULL }; + int ret = 0, nb_tx, i = 0, tdesc, num_pkts = 0, total_tx = 0, reg_val; + int tmp = 0, user_bar_idx; + int qbase = pinfo[portid].queue_base; + uint32_t max_tx_retry; + +#ifdef PERF_BENCHMARK + uint64_t prev_tsc, cur_tsc, diff_tsc; +#endif + mp = rte_mempool_lookup(pinfo[portid].mem_pool); + /* get the mempool from which to acquire buffers */ + if (mp == NULL) + rte_exit(EXIT_FAILURE, "Could not find mempool with name %s\n", + pinfo[portid].mem_pool); + tdesc = tot_num_desc; + user_bar_idx = pinfo[portid].user_bar_idx; + + if (ld_size) + tdesc--; + + while (tdesc) { + if (tdesc > NUM_RX_PKTS) + num_pkts = NUM_RX_PKTS; + else + num_pkts = tdesc; + + max_tx_retry = RX_TX_MAX_RETRY; +#ifdef DUMP_MEMPOOL_USAGE_STATS + printf("%s(): %d: queue id %d, mbuf_avail_count = %d, " + "mbuf_in_use_count = %d", + __func__, __LINE__, queueid, + rte_mempool_avail_count(mp), + rte_mempool_in_use_count(mp)); +#endif //DUMP_MEMPOOL_USAGE_STATS + for (i = 0; i < num_pkts; i++) { + mb[i] = rte_pktmbuf_alloc(mp); + if (mb[i] == NULL) + rte_exit(EXIT_FAILURE, " #####Cannot " + "allocate mbuf packet\n"); + + if (!zbyte) + ret = read(fd, rte_pktmbuf_mtod(mb[i], void *), + pinfo[portid].buff_size); + if (ret < 0) { + printf("Error: Could not the read " + "input-file\n"); + return -1; + } + mb[i]->nb_segs = 1; + mb[i]->next = NULL; + rte_pktmbuf_data_len(mb[i]) = (uint16_t)ret; + rte_pktmbuf_pkt_len(mb[i]) = (uint16_t)ret; + } + +#ifdef DUMP_MEMPOOL_USAGE_STATS + printf("%s(): %d: queue id %d, mbuf_avail_count = %d, " + "mbuf_in_use_count = %d, num_pkts_tx = %d", + __func__, __LINE__, queueid, + rte_mempool_avail_count(mp), + rte_mempool_in_use_count(mp), num_pkts); +#endif //DUMP_MEMPOOL_USAGE_STATS + + total_tx = num_pkts; + PciWrite(user_bar_idx, C2H_ST_QID_REG, (queueid + qbase), + portid); + /* try to transmit TX_BURST_SZ packets */ + +#ifdef PERF_BENCHMARK + prev_tsc = rte_rdtsc_precise(); +#endif + nb_tx = rte_eth_tx_burst(portid, queueid, mb, num_pkts); +#ifdef PERF_BENCHMARK + cur_tsc = rte_rdtsc_precise(); + diff_tsc = cur_tsc - prev_tsc; + /* Calculate average operations processed per second */ + double pkts_per_second = ((double)nb_tx * rte_get_tsc_hz() / + diff_tsc); + + /* Calculate average throughput (Gbps) in bits per second */ + double throughput_gbps = ((pkts_per_second * + pinfo[portid].buff_size) / 1000000000); + printf("Throughput GBps %lf\n", throughput_gbps); + printf("%12s%12s%12s%12s%12s%12s%12s\n\n", + "Buf Size", "Burst Size", + "pps", "Gbps", "freq", "Cycles", + "Cycles/Buf"); + + printf("%12u%12u%12.4lf%12.4lf%12" + ""PRIu64"%12"PRIu64"%12"PRIu64"\n", + pinfo[portid].buff_size, + nb_tx, + pkts_per_second, + throughput_gbps, + rte_get_tsc_hz(), + diff_tsc, + diff_tsc/nb_tx); +#endif + tmp = nb_tx; + while ((nb_tx < num_pkts) && max_tx_retry) { + printf("Couldn't transmit all the packets: Expected = %d " + "Transmitted = %d.\n" + "Calling rte_eth_tx_burst again\n", + num_pkts, nb_tx); + num_pkts -= nb_tx; + nb_tx = rte_eth_tx_burst(portid, queueid, &mb[tmp], + num_pkts); + tmp += nb_tx; + max_tx_retry--; + } + + if ((max_tx_retry == 0)) { + for (i = tmp; i < total_tx; i++) + rte_pktmbuf_free(mb[i]); + if (tmp == 0) { + printf("ERROR: rte_eth_tx_burst failed " + "for port %d queue %d\n", + portid, queueid); + break; + } + } + + tdesc = tdesc - tmp; + printf("\nDMA transmitted number of packets: %d, " + "on Queue-id:%d\n", + tmp, queueid); + } + + if (ld_size) { + mb[0] = rte_pktmbuf_alloc(mp); + if (mb[0] == NULL) { + rte_exit(EXIT_FAILURE, " #####Cannot allocate mbuf " + "packet\n"); + } + ret = read(fd, rte_pktmbuf_mtod(mb[0], void *), ld_size); + if (ret < 0) { + printf("Error: Could not read the input-file\n"); + return -1; + } + mb[0]->nb_segs = 1; + mb[0]->next = NULL; + rte_pktmbuf_data_len(mb[0]) = (uint16_t)ret; + rte_pktmbuf_pkt_len(mb[0]) = (uint16_t)ret; + + nb_tx = rte_eth_tx_burst(portid, queueid, mb, 1); + if (nb_tx == 0) + rte_pktmbuf_free(mb[0]); + } + + reg_val = PciRead(user_bar_idx, C2H_CONTROL_REG, portid); + reg_val &= C2H_CONTROL_REG_MASK; + if (!(reg_val & ST_LOOPBACK_EN)) { + reg_val = PciRead(user_bar_idx, H2C_STATUS_REG, portid); + printf("BAR-%d is the QDMA H2C transfer match: 0x%x,\n", + user_bar_idx, reg_val); + + /** TO clear H2C DMA write **/ + PciWrite(user_bar_idx, H2C_CONTROL_REG, 0x1, portid); + } + + return 0; +} + +void port_close(int port_id) +{ + struct rte_mempool *mp; + + rte_eth_dev_stop(port_id); + rte_eth_dev_close(port_id); + mp = rte_mempool_lookup(pinfo[port_id].mem_pool); + + if (mp != NULL) + rte_mempool_free(mp); +} + +static int mbox_event_callback(uint16_t portid, + enum rte_eth_event_type type __rte_unused, + void *param __rte_unused, void *ret_param) +{ + RTE_SET_USED(ret_param); + printf("%s is received\n", __func__); + pinfo[portid].num_queues = 0; + port_close(portid); + return 0; +} + +static struct option const long_opts[] = { +{"filename", 1, 0, 0}, +{NULL, 0, 0, 0} +}; + +int parse_cmdline(int argc, char **argv) +{ + int cmd_opt; + int option_index; + char **argvopt; + + argvopt = argv; + while ((cmd_opt = getopt_long(argc, argvopt, "c:n:b:w", long_opts, + &option_index)) != EOF) { + switch (cmd_opt) { + case 'c': + /* eal option */ + break; + case 'n': + /* eal option */ + break; + case 'b': + /* eal option */ + break; + case 'w': + /* eal option */ + break; + case 0: + if (!strncmp(long_opts[option_index].name, + "filename", + sizeof("filename"))) { + + filename = optarg; + } + break; + default: + printf("please pass valid parameters as follows:\n"); + return -1; + } + } + return 0; +} + +int port_init(int portid, int queue_base, int num_queues, int st_queues, + int nb_descs, int buff_size) +{ + struct rte_mempool *mbuf_pool; + struct rte_eth_conf port_conf; + struct rte_eth_txconf tx_conf; + struct rte_eth_rxconf rx_conf; + int diag, x; + uint32_t nb_buff; + + printf("Setting up port :%d.\n", portid); + printf("Setting up queue-base :%d.\n", queue_base); + + snprintf(pinfo[portid].mem_pool, RTE_MEMPOOL_NAMESIZE, + MBUF_POOL_NAME_PORT, portid); + + /* Mbuf packet pool */ + nb_buff = ((nb_descs) * num_queues * 2); + + /* NUM_RX_PKTS should be added to every queue as that many descriptors + * can be pending with application after Rx processing but before + * consumed by application or sent to Tx + */ + nb_buff += ((NUM_RX_PKTS) * num_queues); + + mbuf_pool = rte_pktmbuf_pool_create(pinfo[portid].mem_pool, nb_buff, + MP_CACHE_SZ, 0, buff_size + + RTE_PKTMBUF_HEADROOM, + rte_socket_id()); + + if (mbuf_pool == NULL) + rte_exit(EXIT_FAILURE, " Cannot create mbuf pkt-pool\n"); +#ifdef DUMP_MEMPOOL_USAGE_STATS + printf("%s(): %d: mpool = %p, mbuf_avail_count = %d," + " mbuf_in_use_count = %d," + "nb_buff = %d\n", __func__, __LINE__, mbuf_pool, + rte_mempool_avail_count(mbuf_pool), + rte_mempool_in_use_count(mbuf_pool), nb_buff); +#endif //DUMP_MEMPOOL_USAGE_STATS + + /* + * Make sure the port is configured. Zero everything and + * hope for sane defaults + */ + memset(&port_conf, 0x0, sizeof(struct rte_eth_conf)); + memset(&tx_conf, 0x0, sizeof(struct rte_eth_txconf)); + memset(&rx_conf, 0x0, sizeof(struct rte_eth_rxconf)); + diag = get_param(&rte_eth_devices[portid], CONFIG_BAR, + &(pinfo[portid].config_bar_idx)); + + if (diag < 0) + rte_exit(EXIT_FAILURE, "get_param : CONFIG_BAR failed\n"); + diag = get_param(&rte_eth_devices[portid], USER_BAR, + &(pinfo[portid].user_bar_idx)); + if ((diag < 0) || (pinfo[portid].user_bar_idx < 0)) + rte_exit(EXIT_FAILURE, "get_param : USER_BAR failed\n"); + diag = get_param(&rte_eth_devices[portid], BYPASS_BAR, + &(pinfo[portid].bypass_bar_idx)); + if ((diag < 0) || (pinfo[portid].bypass_bar_idx < 0)) + printf("get_param : BYPASS_BAR is failed\n"); + + printf("QDMA Config bar idx: %d\n", pinfo[portid].config_bar_idx); + printf("QDMA User bar idx: %d\n", pinfo[portid].user_bar_idx); + printf("QDMA Bypass bar idx: %d\n", pinfo[portid].bypass_bar_idx); + + diag = update_param(&rte_eth_devices[portid], QUEUE_BASE, queue_base); + if (diag < 0) + rte_exit(EXIT_FAILURE, "updata_param : Passing of " + "QUEUE_BASE failed\n"); + + /* configure the device to use # queues */ + diag = rte_eth_dev_configure(portid, num_queues, num_queues, + &port_conf); + if (diag < 0) + rte_exit(EXIT_FAILURE, "Cannot configure port %d (err=%d)\n", + portid, diag); + + pinfo[portid].queue_base = queue_base; + pinfo[portid].num_queues = num_queues; + pinfo[portid].st_queues = st_queues; + pinfo[portid].buff_size = buff_size; + + for (x = 0; x < num_queues; x++) { + if (x < st_queues) { + diag = update_queue_param(&rte_eth_devices[portid], x, + QUEUE_MODE, 1); + if (diag < 0) + rte_exit(EXIT_FAILURE, "updata_queue_param : " + "Passing of QUEUE_MODE " + "failed\n"); + } else { + update_queue_param(&rte_eth_devices[portid], x, + QUEUE_MODE, 0); + if (diag < 0) + rte_exit(EXIT_FAILURE, "updata_queue_param : " + "Passing of QUEUE_MODE " + "failed\n"); + } + + diag = rte_eth_tx_queue_setup(portid, x, nb_descs, 0, + &tx_conf); + if (diag < 0) + rte_exit(EXIT_FAILURE, "Cannot setup port %d " + "TX Queue id:%d " + "(err=%d)\n", portid, x, diag); + diag = rte_eth_rx_queue_setup(portid, x, nb_descs, 0, + &rx_conf, mbuf_pool); + if (diag < 0) + rte_exit(EXIT_FAILURE, "Cannot setup port %d " + "RX Queue 0 (err=%d)\n", portid, diag); + } + + diag = rte_eth_dev_start(portid); + if (diag < 0) + rte_exit(EXIT_FAILURE, "Cannot start port %d (err=%d)\n", + portid, diag); + + rte_eth_dev_callback_register((uint16_t)portid, RTE_ETH_EVENT_VF_MBOX, + mbox_event_callback, NULL); + + return 0; +} + +static inline void do_sanity_checks(void) +{ +#if (!defined(RTE_LIBRTE_QDMA_PMD)) + rte_exit(EXIT_FAILURE, "CONFIG_RTE_LIBRTE_QDMA_PMD must be set " + "to 'Y' in the .config file\n"); +#endif /* RTE_LIBRTE_XDMA_PMD */ + +} + + +void load_file_cmds(struct cmdline *cl) +{ + FILE *fp; + char buff[256]; + + cmdline_printf(cl, "load commands from file:%s\n\n", filename); + fp = fopen((const char *)filename, "r"); + if (fp == NULL) { + cmdline_printf(cl, "Error: Invalid filename: %s\n", filename); + return; + } + + rdline_reset(&cl->rdl); + { + cmdline_in(cl, "\r", 1); + while (fgets(buff, sizeof(buff), fp)) + cmdline_in(cl, buff, strlen(buff)); + + cmdline_in(cl, "\r", 1); + } + fclose(fp); + +} + +/** XDMA DPDK testapp */ + +int main(int argc, char **argv) +{ + int port_id = 0; + int ret = 0; + const struct rte_memzone *mz = 0; + struct cmdline *cl; + char name[RTE_ETH_NAME_MAX_LEN]; + + /* Make sure the port is configured. Zero everything and + * hope for same defaults + */ + + printf("QDMA testapp rte eal init...\n"); + + /* Make sure things are initialized ... */ + ret = rte_eal_init(argc, argv); + if (ret < 0) + rte_exit(EXIT_FAILURE, "Error with EAL initialization\n"); + rte_log_set_global_level(RTE_LOG_DEBUG); + + printf("Ethernet Device Count: %d\n", (int)rte_eth_dev_count()); + printf("Logical Core Count: %d\n", rte_lcore_count()); + + num_ports = rte_eth_dev_count(); + if (num_ports < 1) + rte_exit(EXIT_FAILURE, "No Ethernet devices found." + " Try updating the FPGA image.\n"); + +#if 1 + ret = parse_cmdline(argc, argv); + if (ret < 0) + rte_exit(EXIT_FAILURE, "Invalid argument\n"); +#endif + + /* Make sure things are defined ... */ + do_sanity_checks(); + + mz = rte_memzone_reserve_aligned("eth_devices", RTE_MAX_ETHPORTS * + sizeof(*rte_eth_devices), 0, 0, 4096); + + memcpy(mz->addr, &rte_eth_devices[0], RTE_MAX_ETHPORTS * + sizeof(*rte_eth_devices)); + + cl = cmdline_stdin_new(main_ctx, "xilinx-app> "); + if (cl == NULL) + rte_panic("Cannot create cmdline instance\n"); + + /* if input commands file exists, then load commands from the file */ + if (filename != NULL) { + load_file_cmds(cl); + rte_delay_ms(100); + } else + cmdline_interact(cl); + for (port_id = 0; port_id < num_ports; port_id++) { + if (pinfo[port_id].num_queues) + port_close(port_id); + + /*Detach the port, it will invoke device remove/uninit */ + if (rte_eth_dev_detach(port_id, name)) + printf("Failed to detach port '%s'\n", name); + } + cmdline_stdin_exit(cl); + + rte_delay_ms(5000); + return 0; +} diff --git a/QDMA/DPDK/examples/qdma_testapp/testapp.h b/QDMA/DPDK/examples/qdma_testapp/testapp.h new file mode 100644 index 0000000..167a169 --- /dev/null +++ b/QDMA/DPDK/examples/qdma_testapp/testapp.h @@ -0,0 +1,86 @@ +/*- + * BSD LICENSE + * + * Copyright(c) 2017-2018 Xilinx, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of the copyright holder nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#define QDMA_MAX_PORTS 256 + +#define PORT_0 0 + +#define NUM_DESC_PER_RING 1024 +#ifdef PERF_BENCHMARK +#define NUM_RX_PKTS (NUM_DESC_PER_RING - 2) +#else +#define NUM_RX_PKTS 32 +#endif +#define MAX_NUM_QUEUES 2048 +#define DEFAULT_NUM_QUEUES 64 +#define RX_TX_MAX_RETRY 1000 + +#define MP_CACHE_SZ 512 + +#define MBUF_POOL_NAME_PORT "mbuf_pool_%d" + +/* User bar registers */ +#define C2H_ST_QID_REG 0x0 +#define C2H_ST_LEN_REG 0x4 +#define C2H_CONTROL_REG 0x8 +#define ST_LOOPBACK_EN 0x1 +#define ST_C2H_START_VAL 0x2 +#define ST_C2H_IMMEDIATE_DATA_EN 0x4 +#define C2H_CONTROL_REG_MASK 0xF +#define H2C_CONTROL_REG 0xC +#define H2C_STATUS_REG 0x10 +#define C2H_PACKET_COUNT_REG 0x20 + +extern int num_ports; + +struct port_info { + int config_bar_idx; + int user_bar_idx; + int bypass_bar_idx; + unsigned int queue_base; + unsigned int num_queues; + unsigned int st_queues; + unsigned int buff_size; + char mem_pool[RTE_MEMPOOL_NAMESIZE]; +}; + +extern struct port_info pinfo[QDMA_MAX_PORTS]; +int port_init(int portid, int queue_base, int num_queues, int st_queues, + int nb_descs, int buff_size); +int do_recv_st(int portid, int fd, int queueid, int input_size); +int do_recv_mm(int portid, int fd, int queueid, int size, int tot_num_desc); +int do_xmit(int portid, int fd, int queueid, int size, int nb_desc, int zbyte); +void load_file_cmds(struct cmdline *cl); +void port_close(int port_id); +void qdma_desc_dump(struct rte_eth_dev *dev, uint32_t qid); +void queue_context_dump(uint8_t bar_id, uint32_t qid, struct cmdline *cl); +int parse_cmdline(int argc, char **argv); diff --git a/QDMA/DPDK/tools/0001-PKTGEN-3.4.7-Patch-to-add-Jumbo-packet-support.patch b/QDMA/DPDK/tools/0001-PKTGEN-3.4.7-Patch-to-add-Jumbo-packet-support.patch new file mode 100644 index 0000000..39f83bf --- /dev/null +++ b/QDMA/DPDK/tools/0001-PKTGEN-3.4.7-Patch-to-add-Jumbo-packet-support.patch @@ -0,0 +1,302 @@ +From ccc6a165e55b121ee39536c279af38e9866f3f68 Mon Sep 17 00:00:00 2001 +From: Nikhil Agarwal <nagarwal@xilinx.com> +Date: Tue, 21 Aug 2018 00:24:51 -0600 +Subject: [PATCH] PKTGEN-3.4.5: Patch to add Jumbo packet support. + +This patch include: +1. Jumbo frame support for Pktgen. +2. Increase default number of RX_DESC to 2K. +3. Disable RX classification. + +Signed-off-by: Kumar Sanghvi <kumars@xilinx.com> +Signed-off-by: Nikhil Agarwal <nagarwal@xilinx.com> +--- + app/pktgen-cmds.c | 15 +++++++++++---- + app/pktgen-constants.h | 3 ++- + app/pktgen-main.c | 7 ++++++- + app/pktgen-port-cfg.c | 14 ++++++++------ + app/pktgen-range.c | 3 ++- + app/pktgen.c | 21 +++++++++++++++------ + app/pktgen.h | 4 +++- + 7 files changed, 47 insertions(+), 20 deletions(-) + +diff --git a/app/pktgen-cmds.c b/app/pktgen-cmds.c +index 66ea98a..be97d35 100644 +--- a/app/pktgen-cmds.c ++++ b/app/pktgen-cmds.c +@@ -2443,6 +2443,10 @@ debug_set_tx_cycles(port_info_t *info, uint32_t cycles) + void + single_set_pkt_size(port_info_t *info, uint16_t size) + { ++ uint16_t pktsize = (pktgen.flags & MTU9K_SUPPORT_FLAG) ? ++ MAX_PKT_SIZE: ++ (ETHER_MAX_LEN - ETHER_CRC_LEN); ++ + pkt_seq_t * pkt = &info->seq_pkt[SINGLE_PKT]; + + if (size < FCS_SIZE) +@@ -2452,8 +2456,8 @@ single_set_pkt_size(port_info_t *info, uint16_t size) + if ( (size - FCS_SIZE) < MIN_PKT_SIZE) + size = (MIN_PKT_SIZE + FCS_SIZE); + } +- if ( (size - FCS_SIZE) > MAX_PKT_SIZE) +- size = MAX_PKT_SIZE + FCS_SIZE; ++ if ( (size - FCS_SIZE) > pktsize) ++ size = pktsize + FCS_SIZE; + + if ((pkt->ethType == ETHER_TYPE_IPv6) && (size < (MIN_v6_PKT_SIZE + FCS_SIZE))) + size = MIN_v6_PKT_SIZE + FCS_SIZE; +@@ -3007,6 +3011,9 @@ range_set_cos_id(port_info_t *info, char *what, uint8_t id) + void + range_set_pkt_size(port_info_t *info, char *what, uint16_t size) + { ++ uint32_t pktsize = (pktgen.flags & MTU9K_SUPPORT_FLAG) ? ++ MAX_9K_SIZE : ETHER_MAX_LEN; ++ + if (!strcmp(what, "inc") || !strcmp(what, "increment")) { + if (size > ETHER_MIN_LEN) + size = ETHER_MIN_LEN; +@@ -3015,8 +3022,8 @@ range_set_pkt_size(port_info_t *info, char *what, uint16_t size) + } else { + if (size < ETHER_MIN_LEN) + size = MIN_PKT_SIZE; +- else if (size > ETHER_MAX_LEN) +- size = MAX_PKT_SIZE; ++ else if (size > pktsize) ++ size = pktsize; + else + size -= FCS_SIZE; + +diff --git a/app/pktgen-constants.h b/app/pktgen-constants.h +index 1dc7c1a..bd5ce07 100644 +--- a/app/pktgen-constants.h ++++ b/app/pktgen-constants.h +@@ -17,7 +17,7 @@ extern "C" { + enum { + DEFAULT_PKT_BURST = 64, /* Increasing this number consumes memory very fast */ + #ifdef RTE_LIBRTE_VMXNET3_PMD +- DEFAULT_RX_DESC = (DEFAULT_PKT_BURST * 8 * 2), ++ DEFAULT_RX_DESC = (DEFAULT_PKT_BURST * 8 * 2 * 2), + DEFAULT_TX_DESC = DEFAULT_RX_DESC * 2, + #else + DEFAULT_RX_DESC = (DEFAULT_PKT_BURST * 8), +@@ -30,6 +30,7 @@ enum { + + DEFAULT_PRIV_SIZE = 0, + MBUF_SIZE = RTE_MBUF_DEFAULT_BUF_SIZE + DEFAULT_PRIV_SIZE, /* See: http://dpdk.org/dev/patchwork/patch/4479/ */ ++ MBUF_9K_SIZE = 9018 + RTE_PKTMBUF_HEADROOM + DEFAULT_PRIV_SIZE, + + NUM_Q = 8, /**< Number of cores per port. */ + }; +diff --git a/app/pktgen-main.c b/app/pktgen-main.c +index 8a10156..3ed1978 100644 +--- a/app/pktgen-main.c ++++ b/app/pktgen-main.c +@@ -161,7 +161,7 @@ pktgen_parse_args(int argc, char **argv) + for (opt = 0; opt < argc; opt++) + pktgen.argv[opt] = strdup(argv[opt]); + +- while ((opt = getopt_long(argc, argvopt, "p:m:f:l:s:g:hPNGT", ++ while ((opt = getopt_long(argc, argvopt, "p:m:f:l:s:g:hPNGT9", + lgopts, &option_index)) != EOF) + switch (opt) { + case 'p': +@@ -239,6 +239,11 @@ pktgen_parse_args(int argc, char **argv) + pktgen_usage(prgname); + return -1; + ++ case '9': /* MTU 9K support */ ++ pktgen_log_info("%s: case 9... \n", __func__); ++ pktgen.flags |= MTU9K_SUPPORT_FLAG; ++ break; ++ + case 0: /* crc-strip for all ports */ + pktgen_set_hw_strip_crc(1); + break; +diff --git a/app/pktgen-port-cfg.c b/app/pktgen-port-cfg.c +index f53d0ec..8b9d478 100644 +--- a/app/pktgen-port-cfg.c ++++ b/app/pktgen-port-cfg.c +@@ -91,6 +91,8 @@ pktgen_mbuf_pool_create(const char *type, uint8_t pid, uint8_t queue_id, + uint32_t nb_mbufs, int socket_id, int cache_size){ + struct rte_mempool *mp; + char name[RTE_MEMZONE_NAMESIZE]; ++ uint16_t mbuf_sz = (pktgen.flags & MTU9K_SUPPORT_FLAG) ? ++ MBUF_9K_SIZE : MBUF_SIZE; + + snprintf(name, sizeof(name), "%-12s%u:%u", type, pid, queue_id); + pktgen_log_info( +@@ -98,23 +100,23 @@ pktgen_mbuf_pool_create(const char *type, uint8_t pid, uint8_t queue_id, + 16, + name, + nb_mbufs, +- MBUF_SIZE, ++ mbuf_sz, + sizeof(struct rte_mbuf), + sizeof(struct rte_mempool), +- (((nb_mbufs * (MBUF_SIZE + sizeof(struct rte_mbuf)) + ++ (((nb_mbufs * (mbuf_sz + sizeof(struct rte_mbuf)) + + sizeof(struct rte_mempool))) + 1023) / 1024, + RTE_PKTMBUF_HEADROOM, + RTE_MBUF_DEFAULT_BUF_SIZE); + pktgen.mem_used += ((nb_mbufs * +- (MBUF_SIZE + sizeof(struct rte_mbuf)) + ++ (mbuf_sz + sizeof(struct rte_mbuf)) + + sizeof(struct rte_mempool))); + pktgen.total_mem_used += ((nb_mbufs * +- (MBUF_SIZE + sizeof(struct rte_mbuf)) + ++ (mbuf_sz + sizeof(struct rte_mbuf)) + + sizeof(struct rte_mempool))); + + /* create the mbuf pool */ + mp = rte_pktmbuf_pool_create(name, nb_mbufs, cache_size, +- DEFAULT_PRIV_SIZE, MBUF_SIZE, socket_id); ++ DEFAULT_PRIV_SIZE, mbuf_sz, socket_id); + if (mp == NULL) + pktgen_log_panic( + "Cannot create mbuf pool (%s) port %d, queue %d, nb_mbufs %d, socket_id %d: %s", +@@ -250,7 +252,7 @@ pktgen_config_ports(void) + pktgen_log_info( + "Configuring %d ports, MBUF Size %d, MBUF Cache Size %d", + pktgen.nb_ports, +- MBUF_SIZE, ++ (pktgen.flags & MTU9K_SUPPORT_FLAG) ? MBUF_9K_SIZE : MBUF_SIZE, + MBUF_CACHE_SIZE); + + /* For each lcore setup each port that is handled by that lcore. */ +diff --git a/app/pktgen-range.c b/app/pktgen-range.c +index e59ae01..36b5924 100644 +--- a/app/pktgen-range.c ++++ b/app/pktgen-range.c +@@ -568,7 +568,8 @@ pktgen_range_setup(port_info_t *info) + range->pkt_size = MIN_PKT_SIZE; + range->pkt_size_inc = 0; + range->pkt_size_min = MIN_PKT_SIZE; +- range->pkt_size_max = MAX_PKT_SIZE; ++ range->pkt_size_max = (pktgen.flags & MTU9K_SUPPORT_FLAG) ? ++ MAX_PKT_SIZE : (ETHER_MAX_LEN - ETHER_CRC_LEN); + + info->seq_pkt[RANGE_PKT].pktSize = MIN_PKT_SIZE; + +diff --git a/app/pktgen.c b/app/pktgen.c +index dd1a93a..68579b1 100644 +--- a/app/pktgen.c ++++ b/app/pktgen.c +@@ -273,7 +273,7 @@ _send_burst_fast(port_info_t *info, uint16_t qid) + + pkts = mtab->m_table; + +- retry = 100; ++ retry = 100000; + if (rte_atomic32_read(&info->port_flags) & PROCESS_TX_TAP_PKTS) + while (cnt && retry) { + ret = rte_eth_tx_burst(info->pid, qid, pkts, cnt); +@@ -294,6 +294,8 @@ _send_burst_fast(port_info_t *info, uint16_t qid) + if (!ret) + retry--; + } ++ if(cnt) ++ rte_pktmbuf_free_bulk(pkts, cnt); + } + + /**************************************************************************//** +@@ -880,6 +882,9 @@ pktgen_setup_cb(struct rte_mempool *mp, + port_info_t *info; + pkt_seq_t *pkt; + uint16_t qid; ++ uint32_t pktsize = (pktgen.flags & MTU9K_SUPPORT_FLAG) ? ++ MAX_PKT_SIZE: ++ (ETHER_MAX_LEN - ETHER_CRC_LEN); + + info = data->info; + qid = data->qid; +@@ -898,7 +903,7 @@ pktgen_setup_cb(struct rte_mempool *mp, + pktgen_packet_ctor(info, SINGLE_PKT, -1); + + rte_memcpy((uint8_t *)m->buf_addr + m->data_off, +- (uint8_t *)&pkt->hdr, MAX_PKT_SIZE); ++ (uint8_t *)&pkt->hdr, pktsize); + + m->pkt_len = pkt->pktSize; + m->data_len = pkt->pktSize; +@@ -907,7 +912,7 @@ pktgen_setup_cb(struct rte_mempool *mp, + pktgen_packet_ctor(info, RANGE_PKT, -1); + + rte_memcpy((uint8_t *)m->buf_addr + m->data_off, +- (uint8_t *)&pkt->hdr, MAX_PKT_SIZE); ++ (uint8_t *)&pkt->hdr, pktsize); + + m->pkt_len = pkt->pktSize; + m->data_len = pkt->pktSize; +@@ -925,7 +930,7 @@ pktgen_setup_cb(struct rte_mempool *mp, + pktgen_packet_ctor(info, info->seqIdx, -1); + + rte_memcpy((uint8_t *)m->buf_addr + m->data_off, +- (uint8_t *)&pkt->hdr, MAX_PKT_SIZE); ++ (uint8_t *)&pkt->hdr, pktsize); + m->pkt_len = pkt->pktSize; + m->data_len = pkt->pktSize; + pkt = &info->seq_pkt[info->seqIdx]; +@@ -937,7 +942,7 @@ pktgen_setup_cb(struct rte_mempool *mp, + pktgen_packet_ctor(info, info->seqIdx, -1); + + rte_memcpy((uint8_t *)m->buf_addr + m->data_off, +- (uint8_t *)&pkt->hdr, MAX_PKT_SIZE); ++ (uint8_t *)&pkt->hdr, pktsize); + + m->pkt_len = pkt->pktSize; + m->data_len = pkt->pktSize; +@@ -1121,7 +1126,7 @@ pktgen_main_receive(port_info_t *info, + { + uint8_t pid; + uint16_t qid, nb_rx; +- capture_t *capture; ++ __rte_unused capture_t *capture; + + pid = info->pid; + qid = get_rxque(pktgen.l2p, lid, pid); +@@ -1133,7 +1138,10 @@ pktgen_main_receive(port_info_t *info, + return; + + info->q[qid].rx_cnt += nb_rx; ++ info->sizes._64 += nb_rx; + ++ rte_pktmbuf_free_bulk(pkts_burst, nb_rx); ++#if 0 + pktgen_recv_latency(info, pkts_burst, nb_rx); + + /* packets are not freed in the next call. */ +@@ -1150,6 +1158,7 @@ pktgen_main_receive(port_info_t *info, + } + + rte_pktmbuf_free_bulk(pkts_burst, nb_rx); ++#endif + } + + static void +diff --git a/app/pktgen.h b/app/pktgen.h +index f830c81..892875e 100644 +--- a/app/pktgen.h ++++ b/app/pktgen.h +@@ -219,8 +219,9 @@ enum { + INTER_FRAME_GAP = 12, /**< in bytes */ + PKT_PREAMBLE_SIZE = 8, /**< in bytes */ + FCS_SIZE = 4, /**< in bytes */ ++ MAX_9K_SIZE = 9018, + MIN_PKT_SIZE = (ETHER_MIN_LEN - FCS_SIZE), +- MAX_PKT_SIZE = (ETHER_MAX_LEN - FCS_SIZE), ++ MAX_PKT_SIZE = (MAX_9K_SIZE - FCS_SIZE), + MIN_v6_PKT_SIZE = (78 - FCS_SIZE), + + MAX_RX_QUEUES = 16, /**< RX Queues per port */ +@@ -314,6 +315,7 @@ enum { /* Pktgen flags bits */ + BLINK_PORTS_FLAG = (1 << 10), /**< Blink the port leds */ + ENABLE_THEME_FLAG = (1 << 11), /**< Enable theme or color support */ + ++ MTU9K_SUPPORT_FLAG = (1 << 15), /**< MTU 9K support */ + CONFIG_PAGE_FLAG = (1 << 16), /**< Display the configure page */ + SEQUENCE_PAGE_FLAG = (1 << 17), /**< Display the Packet sequence page */ + RANGE_PAGE_FLAG = (1 << 18), /**< Display the range page */ +-- +2.7.4 + diff --git a/QDMA/DPDK/tools/README.txt b/QDMA/DPDK/tools/README.txt new file mode 100644 index 0000000..d28800d --- /dev/null +++ b/QDMA/DPDK/tools/README.txt @@ -0,0 +1,7 @@ +0001-PKTGEN-3.4.5-Patch-to-add-Jumbo-packet-support.patch is the patch file +over dpdk-pktgen v3.4.7 that extends dpdk-pktgen application to handle packets +with packet sizes more than 1518 bytes and it disables the packet size +classification logic in dpdk-pktgen to remove application overhead in +performance measurement. + +This patch is used for performance testing with dpdk-pktgen application. diff --git a/LICENSE b/QDMA/linux-kernel/COPYING similarity index 95% rename from LICENSE rename to QDMA/linux-kernel/COPYING index d159169..3912109 100644 --- a/LICENSE +++ b/QDMA/linux-kernel/COPYING @@ -1,12 +1,12 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble + Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public @@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to +the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not @@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. - - GNU GENERAL PUBLIC LICENSE + + GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains @@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions: License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) - + These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in @@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. - + 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is @@ -225,7 +225,7 @@ impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. - + 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License @@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. - NO WARRANTY + NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN @@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it @@ -303,9 +303,10 @@ the "copyright" line and a pointer to where the full notice is found. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Also add information on how to contact you by electronic and paper mail. @@ -335,5 +336,5 @@ necessary. Here is a sample; alter the names: This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General +library. If this is what you want to do, use the GNU Library General Public License instead of this License. diff --git a/QDMA/linux-kernel/LICENSE b/QDMA/linux-kernel/LICENSE new file mode 100644 index 0000000..703e647 --- /dev/null +++ b/QDMA/linux-kernel/LICENSE @@ -0,0 +1,30 @@ +BSD License + +For Xilinx DMA IP software + +Copyright (c) 2016-present, Xilinx, Inc. All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name Xilinx nor the names of its contributors may be used to + endorse or promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/QDMA/linux-kernel/Makefile b/QDMA/linux-kernel/Makefile new file mode 100644 index 0000000..40a2cfe --- /dev/null +++ b/QDMA/linux-kernel/Makefile @@ -0,0 +1,307 @@ +SHELL = /bin/bash + +# +# makefile parameters: +# - KDIR/KSRC/KOBJ=, optional +# - install_path=, override all install directories +# - kernel_install_path=, override install directory for kernel module +# - dev_install_path=, override install directory for development headers +# - user_install_path=, override install directory for applications +# - conf_install_path=, override install directory for config files +# - udev_install_path=, override install directory for udev rules +# - docs_install_path=, override install directory for man pages +# +# - enable_cmpt_immediate_data=<0|1> enable immediate data in writeback desc. +# - disable_st_c2h_completion=<0|1> disable completion +# + +# Define grep error output to NULL, since -s is not portable. +grep = grep 2>/dev/null + +# ALL subdirectories +ALLSUBDIRS := drv +DRIVER_SRC_DIR := drv + +# subdirectories to be build +SUBDIRS := $(ALLSUBDIRS) + +# Honor the -s (silent) make option. +verbose := $(if $(filter s,$(MAKEFLAGS)),,-v) + +# Define paths. +srcdir := $(shell pwd) +topdir := $(shell cd $(srcdir)/.. && pwd) +build_dir := $(srcdir)/build + +kernel_check = 1 +distro_check = 1 + +ifeq ($(filter clean,$(MAKECMDGOALS)),clean) + kernel_check = 0 + distro_check = 0 +endif + +ifeq ($(filter uninstall,$(MAKECMDGOALS)),uninstall) + distro_check = 0 +endif + +ifeq ($(kernel_check),1) + include make/kernel_check.mk + + ifeq ($(distro_check),1) + include make/distro_check.mk + endif +endif + +ifneq ($(wildcard $(KINC)/linux/kconfig.h),) + FLAGS += -DKERNEL_HAS_KCONFIG_H +endif +ifneq ($(wildcard $(KINC)/linux/export.h),) + FLAGS += -DKERNEL_HAS_EXPORT_H +endif + +# Debug flags. +ifeq ($(DEBUG),1) + FLAGS += -g -DDEBUG +endif + +# Debugfs flags +ifneq ($(DEBUGFS),0) + FLAGS += -DDEBUGFS +endif + +# LOOPBACK flags. +ifeq ($(LOOPBACK),1) + FLAGS += -DLOOPBACK_TEST +endif + +ifeq ($(DEBUG_THREADS),1) + FLAGS += -DDEBUG -DDEBUG_THREADS +endif + +ifeq ($(enable_cmpt_immediate_data),1) + FLAGS += -DXNL_IMM_DATA_EN +endif + +ifeq ($(disable_st_c2h_completion),1) + FLAGS += -DXMP_DISABLE_ST_C2H_CMPL +endif + +# LOOPBACK flags. +ifeq ($(TEST_64B_DESC_BYPASS),1) + FLAGS += -DTEST_64B_DESC_BYPASS_FEATURE +endif + +ifeq ($(ERR_DEBUG),1) + EXTRA_FLAGS += -DERR_DEBUG +# FLAGS += -DERR_DEBUG + export EXTRA_FLAGS +endif + +# Don't allow ARCH to overwrite the modified variable when passed to +# the sub-makes. +MAKEOVERRIDES := $(filter-out ARCH=%,$(MAKEOVERRIDES)) +# Don't allow CFLAGS/EXTRA_CFLAGS to clobber definitions in sub-make. +MAKEOVERRIDES := $(filter-out CFLAGS=%,$(MAKEOVERRIDES)) +MAKEOVERRIDES := $(filter-out EXTRA_CFLAGS=%,$(MAKEOVERRIDES)) + +# Exports. +export grep +export srcdir +export topdir +export build_dir +export KERNELRELEASE +export KSRC +export KOBJ +export KINC +# arm64 specific fix to include <ksrc>/arch/<karch> folder properly. +# This hack is motivated by the RHEL7.X/CentOS7.X release where the +# uname Architecture is indicated as "aarch64" but the real Architecture +# source directory is "arm64" +ifeq ($(ARCH),aarch64) + ifeq ($(wildcard $(KOBJ)/arch/$(ARCH)/Makefile),) + override MAKECMDGOALS = $(MAKECMDGOALS) "ARCH=arm64" + else + export ARCH + endif +else + export ARCH +endif +export FLAGS +#export FLAGS += $(CFLAGS) $(EXTRA_CFLAGS) $(CPPFLAGS) +export verbose +export utsrelease +export kversions +export kseries +export modulesymfile + +export enable_xvc + +# evaluate install paths +ifeq ($(install_path),) + # defaults + kernel_install_path ?= $(PREFIX)/lib/modules/$(utsrelease)/updates/kernel/drivers/qdma + dev_install_path ?= /usr/local/include/qdma + user_install_path ?= /usr/local/sbin + conf_install_path ?= /etc/xilinx-dma + udev_install_path ?= /etc/udev/rules.d + docs_install_path ?= /usr/share/man/man8 +else # bundled install + kernel_install_path ?= $(install_path)/modules + dev_install_path ?= $(install_path)/include/qdma + user_install_path ?= $(install_path)/bin + conf_install_path ?= $(install_path)/etc + udev_install_path ?= $(install_path)/etc + docs_install_path ?= $(install_path)/doc +endif + +$(shell rm -f $(srcdir)/drv/libqdma; ln -fs $(srcdir)/libqdma $(srcdir)/drv;) + +.PHONY: eval.mak + +.PHONY: default +default: user tools mod_pf mod_vf post + +.PHONY: pf +pf: user mod_pf + +.PHONY: vf +vf: user mod_vf + +.PHONY: mods +mod: mod_pf mod_vf + +.PHONY: install +install: install-mods install-user install-etc install-dev + +.PHONY: uninstall +uninstall: uninstall-mod uninstall-user uninstall-dev + +.PHONY: user +user: + @echo "#######################"; + @echo "#### user ####"; + @echo "#######################"; + $(MAKE) -C user + +.PHONY: tools +tools: + @echo "#######################"; + @echo "#### tools ####"; + @echo "#######################"; + $(MAKE) -C tools + +.PHONY: mod_pf +mod_pf: + @if [ -n "$(verbose)" ]; then \ + echo "#######################";\ + printf "#### PF %-8s%5s####\n" $(DRIVER_SRC_DIR);\ + echo "#######################";\ + fi; + @drvdir=$(shell pwd)/$(DRIVER_SRC_DIR) $(MAKE) VF=0 -C $(DRIVER_SRC_DIR); + +.PHONY: mod_vf +mod_vf: + @if [ -n "$(verbose)" ]; then \ + echo "#######################";\ + printf "#### VF %-8s%5s####\n" $(DRIVER_SRC_DIR);\ + echo "#######################";\ + fi; + @drvdir=$(shell pwd)/$(DRIVER_SRC_DIR) $(MAKE) VF=1 -C $(DRIVER_SRC_DIR); + +.PHONY: post +post: + @if [ -n "$(post_msg)" ]; then \ + echo -e "\nWARNING:\n $(post_msg)";\ + fi; + +.PHONY: clean +clean: + @echo "#######################"; + @echo "#### user ####"; + @echo "#######################"; + $(MAKE) -C user clean; + @echo "#######################"; + @echo "#### tools ####"; + @echo "#######################"; + $(MAKE) -C tools clean; + @for dir in $(ALLSUBDIRS); do \ + echo "#######################";\ + printf "#### %-8s%5s####\n" $$dir;\ + echo "#######################";\ + drvdir=$(shell pwd)/$$dir $(MAKE) -C $$dir clean;\ + done; + @-/bin/rm -f *.symvers eval.mak 2>/dev/null; + +.PHONY: install-mods +install-mods: + @echo "installing kernel modules to $(kernel_install_path) ..." + @mkdir -p -m 755 $(kernel_install_path) + @install -v -m 644 $(build_dir)/*.ko $(kernel_install_path) + @depmod -a || true + + +.PHONY: install-user +install-user: + @echo "installing user tools to $(user_install_path) ..." + @mkdir -p -m 755 $(user_install_path) + @install -v -m 755 build/dmactl* $(user_install_path) + @install -v -m 755 tools/dma_from_device $(user_install_path) + @install -v -m 755 tools/dma_to_device $(user_install_path) + @install -v -m 755 tools/dmautils $(user_install_path) + @echo "MAN PAGES:" + @mkdir -p -m 755 $(docs_install_path) + @install -v -m 644 docs/dmactl.8.gz $(docs_install_path) + +.PHONY: install-dev +install-dev: + @echo "installing development headers to $(dev_install_path) ..." + @mkdir -p -m 755 $(dev_install_path) + @install -v -m 755 include/* $(dev_install_path) + +.PHONY: install-etc +install-etc: + @echo "install Xilinx DMA udev rules:" + @mkdir -p -m 755 $(udev_install_path) + @if [ ! -d "$(udev_install_path)/30-qdma.rules" ]; then \ + install -v -m 644 etc/30-qdma.rules $(udev_install_path); \ + fi; + +.PHONY: uninstall-mod +uninstall-mod: + @echo "Un-installing $(kernel_install_path) ..." + @/bin/rm -rf $(kernel_install_path)/* + @depmod -a + +.PHONY: uninstall-user +uninstall-user: + @echo "Un-installing user tools under $(user_install_path) ..." + @/bin/rm -f $(user_install_path)/dmactl + @/bin/rm -f $(user_install_path)/dma_from_device + @/bin/rm -f $(user_install_path)/dma_to_device + @/bin/rm -f $(user_install_path)/dmautils + +.PHONY: uninstall-dev +uninstall-dev: + @echo "Un-installing development headers under $(dev_install_path) ..." + @/bin/rm -r $(dev_install_path) + +.PHONY: help +help: + @echo "Build Targets:";\ + echo " install - Installs all compiled drivers.";\ + echo " uninstall - Uninstalls drivers.";\ + echo " clean - Removes all generated files.";\ + echo;\ + echo "Build Options:";\ + echo " KOBJ=<path> - Kernel build (object) path.";\ + echo " KSRC=<path> - Kernel source path.";\ + echo " - Note: When using KSRC or KOBJ, both";\ + echo " variables must be specified.";\ + echo " KDIR=<path> - Kernel build and source path. Shortcut";\ + echo " for KOBJ=KSRC=<path>.";\ + echo " kernel_install_path=<path>";\ + echo " - kernel module install path.";\ + echo " user_install_path=<path>";\ + echo " - user cli tool install path.";\ + ech_; diff --git a/QDMA/linux-kernel/README b/QDMA/linux-kernel/README new file mode 120000 index 0000000..a90f4af --- /dev/null +++ b/QDMA/linux-kernel/README @@ -0,0 +1 @@ +docs/README \ No newline at end of file diff --git a/QDMA/linux-kernel/RELEASE b/QDMA/linux-kernel/RELEASE new file mode 100644 index 0000000..f9cce48 --- /dev/null +++ b/QDMA/linux-kernel/RELEASE @@ -0,0 +1,72 @@ +Release: 2018.3 +=========================== + +NOTE: + This release is based on the 2018.3 QDMA design + + Performance benchmark numbers are captured in perforamcne report + for this version of driver and released along with the driver package + + QDMA Linux driver is supported in auto mode by default + (refer to 2018.3 Features below for more details on auto mode) + + QDMA 2018.3 Linux driver is not backaward compatible with 2018.2 IP + + +DRIVER LIMITATIONS: +=================== +- Driver compilation on Fedora 28 with gcc8.1 results compilation warnings + +SUPPORTED FEATURES: +=================== +- Support for both the AXI4 Memory Mapped(MM) and AXI4 Streaming(ST) Interfaces +- 2048 Queue Sets + - 2048 H2C Descriptor Rings + - 2048 C2H Descriptor Rings + - 2048 C2H Completion Rings +- Supports Polling Mode +- Interrupts + - 2048 MSI-X Vectors + - Up to 8 MSI-X per Function + - Interrupt Aggregation + - User Interrupts + - Error Interrupts +- C2H Stream Completion queue entry coalescing +- Supports SR-IOV with upto 4 Physical Functions(PF) and 252 Virtual Functions(VF) +- Allows only Privileged/Physical functions to program the contexts & registers +- Function Level Reset(FLR) Support +- Mailbox Support +- Descriptor bypass(8,16,32 descriptor sizes) +- Descriptor Prefetching +- Asynchronous and Synchronous IO support +- ST H2C to C2H and C2H to H2C loopback support +- Driver configuration through sysfs +- Zero byte transfer support +- Dynamic queue configuration +- Dynamic driver configuration + +2018.3 Features: +- Auto mode support for PF & VF driver + - MM and ST H2C requests are services in poll mode + - ST C2H is services in Interrupt Aggregation mode +- Support 64B descriptor format in byapss mode +- Support for Completion queue descriptors of 64 bytes size +- Support flexible BAR mapping for QDMA configuration register space +- Indirect programming of FMAP registers +- Support disabling overflow check in completion ring +- Version for SW and HW +- ECC Support +- Flexible interrupt allocation between PF/VF +- Greater than 32 vectors per function +- Legacy Interrupt Support +- VF driver support in direct and indirect interrupt mode + + +KNOWN ISSUES: +============= +- Occasionally, C2H completions are not observed when + payload and immediate data transfers are combined +- In the Host only mode, When VFs are loaded in mixed interrupt mode(i.e + some VFs are in direct interrupt mode and some VFs are in indirect + interrupt mode),C2H completions are not observed for the VF with direct + mode interrupt which follows a VF with indirect interrupt mode diff --git a/QDMA/linux-kernel/docs/Doxyfile b/QDMA/linux-kernel/docs/Doxyfile new file mode 100644 index 0000000..fbf5b44 --- /dev/null +++ b/QDMA/linux-kernel/docs/Doxyfile @@ -0,0 +1,2443 @@ +# Doxyfile 1.8.11 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file +# that follow. The default is UTF-8 which is also the encoding used for all text +# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv +# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv +# for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "Linux QDMA Driver" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = 2000-0142 + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = API + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = qdma + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = NO + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used ($name is automatically replaced with the name of +# the entity):The $name class, The $name widget, The $name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The $name class" \ + "The $name widget" \ + "The $name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = NO + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:\n" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". You can put \n's in the value part of an alias to insert +# newlines. + +ALIASES = + +# This tag can be used to specify a number of word-keyword mappings (TCL only). +# A mapping has the form "name=value". For example adding "class=itcl::class" +# will allow you to use the command class in the itcl::class meaning. + +TCL_SUBST = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = YES + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = NO + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, Javascript, +# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran: +# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran: +# Fortran. In the later case the parser tries to guess whether the code is fixed +# or free formatted code, this is the default for Fortran type files), VHDL. For +# instance to make doxygen treat .inc files as Fortran files (default is PHP), +# and .f files as C (default is Fortran), use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See http://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = NO + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = NO + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# (class|struct|union) declarations. If set to NO, these declarations will be +# included in the documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file +# names in lower-case letters. If set to YES, upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = NO + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if <section_label> ... \endif and \cond <section_label> +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some parameters +# in a documented function, or documenting parameters that don't exist or using +# markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong or incomplete +# parameter documentation, but not about the absence of documentation. +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the $file, $line, and $text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain $version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: $file:$line: $text. + +WARN_FORMAT = "$file:$line: $text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = ../ + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: http://www.gnu.org/software/libiconv) for the list of +# possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, +# *.m, *.markdown, *.md, *.mm, *.dox, *.py, *.pyw, *.f90, *.f, *.for, *.tcl, +# *.vhd, *.vhdl, *.ucf, *.qsf, *.as and *.js. + +FILE_PATTERNS = *.h + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = */apps/* \ + */build/* \ + */etc/* \ + */example/* \ + */scripts/* \ + */user/* \ + */tools/* + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# AClass::ANamespace, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# <filter> <input-file> +# +# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# function all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see http://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the config file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: http://clang.llvm.org/) for more accurate parsing at the +# cost of reduced performance. This can be particularly helpful with template +# rich C++ code for which doxygen's built-in parser lacks the necessary type +# information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse-libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in +# which the alphabetical index list will be split. +# Minimum value: 1, maximum value: 20, default value: 5. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = NO + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a colorwheel, see +# http://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 220 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use grayscales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 100 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 80 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: http://developer.apple.com/tools/xcode/), introduced with +# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a +# Makefile in the HTML output directory. Running make will produce the docset in +# that directory and running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html +# for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on +# Windows. +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the master .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual- +# folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom- +# filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location of Qt's +# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the +# generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine-tune the look of the index. As an example, the default style +# sheet generated by doxygen has an example that shows how to put an image at +# the root of the tree instead of the PROJECT_NAME. Since the tree basically has +# the same information as the tab index, you could consider setting +# DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = YES + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 1 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# http://www.mathjax.org) which uses client side Javascript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. See the MathJax site (see: +# http://docs.mathjax.org/en/latest/output.html) for more details. +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility), NativeMML (i.e. MathML) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from http://www.mathjax.org before deployment. +# The default value is: http://cdn.mathjax.org/mathjax/latest. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use <access key> + S +# (what the <access key> is depends on the OS and browser, but it is typically +# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down +# key> to jump into the search results window, the results can be navigated +# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel +# the search. The filter options can be selected when the cursor is inside the +# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys> +# to select a filter and <Enter> or <escape> to activate or cancel the filter +# option. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +SEARCHENGINE = YES + +# When the SERVER_BASED_SEARCH tag is enabled the search engine will be +# implemented using a web server instead of a web client using Javascript. There +# are two flavors of web server based searching depending on the EXTERNAL_SEARCH +# setting. When disabled, doxygen will generate a PHP script for searching and +# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing +# and searching needs to be provided by external tools. See the section +# "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SERVER_BASED_SEARCH = NO + +# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP +# script for searching. Instead the search results are written to an XML file +# which needs to be processed by an external indexer. Doxygen will invoke an +# external search engine pointed to by the SEARCHENGINE_URL option to obtain the +# search results. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: http://xapian.org/). +# +# See the section "External Indexing and Searching" for details. +# The default value is: NO. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH = YES + +# The SEARCHENGINE_URL should point to a search engine hosted by a web server +# which will return the search results when EXTERNAL_SEARCH is enabled. +# +# Doxygen ships with an example indexer (doxyindexer) and search engine +# (doxysearch.cgi) which are based on the open source search engine library +# Xapian (see: http://xapian.org/). See the section "External Indexing and +# Searching" for details. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHENGINE_URL = + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed +# search data is written to a file for indexing by an external tool. With the +# SEARCHDATA_FILE tag the name of this file can be specified. +# The default file is: searchdata.xml. +# This tag requires that the tag SEARCHENGINE is set to YES. + +SEARCHDATA_FILE = searchdata.xml + +# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the +# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is +# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple +# projects and redirect the results back to the right project. +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTERNAL_SEARCH_ID = + +# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen +# projects other than the one defined by this configuration file, but that are +# all added to the same external search index. Each project needs to have a +# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of +# to a relative location where the documentation can be found. The format is: +# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ... +# This tag requires that the tag SEARCHENGINE is set to YES. + +EXTRA_SEARCH_MAPPINGS = + +#--------------------------------------------------------------------------- +# Configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output. +# The default value is: YES. + +GENERATE_LATEX = YES + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: latex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_OUTPUT = latex + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. +# +# Note that when enabling USE_PDFLATEX this option is only used for generating +# bitmaps for formulas in the HTML output, but not in the Makefile that is +# written to the output directory. +# The default file is: latex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate +# index for LaTeX. +# The default file is: makeindex. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used by the +# printer. +# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x +# 14 inches) and executive (7.25 x 10.5 inches). +# The default value is: a4. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +PAPER_TYPE = a4 + +# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names +# that should be included in the LaTeX output. The package can be specified just +# by its name or with the correct syntax as to be used with the LaTeX +# \usepackage command. To get the times font for instance you can specify : +# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times} +# To use the option intlimits with the amsmath package you can specify: +# EXTRA_PACKAGES=[intlimits]{amsmath} +# If left blank no extra packages will be included. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the +# generated LaTeX document. The header should contain everything until the first +# chapter. If it is left blank doxygen will generate a standard header. See +# section "Doxygen usage" for information on how to let doxygen write the +# default header to a separate file. +# +# Note: Only use a user-defined header if you know what you are doing! The +# following commands have a special meaning inside the header: $title, +# $datetime, $date, $doxygenversion, $projectname, $projectnumber, +# $projectbrief, $projectlogo. Doxygen will replace $title with the empty +# string, for the replacement values of the other commands the user is referred +# to HTML_HEADER. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_HEADER = + +# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the +# generated LaTeX document. The footer should contain everything after the last +# chapter. If it is left blank doxygen will generate a standard footer. See +# LATEX_HEADER for more information on how to generate a default footer and what +# special commands can be used inside the footer. +# +# Note: Only use a user-defined footer if you know what you are doing! +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_FOOTER = + +# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# LaTeX style sheets that are included after the standard style sheets created +# by doxygen. Using this option one can overrule certain style aspects. Doxygen +# will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_STYLESHEET = + +# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the LATEX_OUTPUT output +# directory. Note that the files will be copied as-is; there are no commands or +# markers available. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_EXTRA_FILES = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is +# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will +# contain links (just like the HTML output) instead of page references. This +# makes the output suitable for online browsing using a PDF viewer. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +PDF_HYPERLINKS = YES + +# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate +# the PDF file directly from the LaTeX files. Set this option to YES, to get a +# higher quality PDF documentation. +# The default value is: YES. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +USE_PDFLATEX = YES + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode +# command to the generated LaTeX files. This will instruct LaTeX to keep running +# if errors occur, instead of asking the user for help. This option is also used +# when generating formulas in HTML. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_BATCHMODE = NO + +# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the +# index chapters (such as File Index, Compound Index, etc.) in the output. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_HIDE_INDICES = NO + +# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source +# code with syntax highlighting in the LaTeX output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_SOURCE_CODE = NO + +# The LATEX_BIB_STYLE tag can be used to specify the style to use for the +# bibliography, e.g. plainnat, or ieeetr. See +# http://en.wikipedia.org/wiki/BibTeX and \cite for more info. +# The default value is: plain. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_BIB_STYLE = plain + +# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated +# page will contain the date and time when the page was generated. Setting this +# to NO can help when comparing the output of multiple runs. +# The default value is: NO. +# This tag requires that the tag GENERATE_LATEX is set to YES. + +LATEX_TIMESTAMP = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The +# RTF output is optimized for Word 97 and may not look too pretty with other RTF +# readers/editors. +# The default value is: NO. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: rtf. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_OUTPUT = rtf + +# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF +# documents. This may be useful for small projects and may help to save some +# trees in general. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +COMPACT_RTF = YES + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will +# contain hyperlink fields. The RTF file will contain links (just like the HTML +# output) instead of page references. This makes the output suitable for online +# browsing using Word or some other Word compatible readers that support those +# fields. +# +# Note: WordPad (write) and others do not support links. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's config +# file, i.e. a series of assignments. You only have to provide replacements, +# missing definitions are set to their default value. +# +# See also section "Doxygen usage" for information on how to generate the +# default style sheet that doxygen normally uses. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an RTF document. Syntax is +# similar to doxygen's config file. A template extensions file can be generated +# using doxygen -e rtf extensionFile. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_EXTENSIONS_FILE = + +# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code +# with syntax highlighting in the RTF output. +# +# Note that which sources are shown also depends on other settings such as +# SOURCE_BROWSER. +# The default value is: NO. +# This tag requires that the tag GENERATE_RTF is set to YES. + +RTF_SOURCE_CODE = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for +# classes and files. +# The default value is: NO. + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. A directory man3 will be created inside the directory specified by +# MAN_OUTPUT. +# The default directory is: man. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_OUTPUT = man + +# The MAN_EXTENSION tag determines the extension that is added to the generated +# man pages. In case the manual section does not start with a number, the number +# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is +# optional. +# The default value is: .3. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_EXTENSION = .3 + +# The MAN_SUBDIR tag determines the name of the directory created within +# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by +# MAN_EXTENSION with the initial . removed. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_SUBDIR = + +# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it +# will generate one additional man file for each entity documented in the real +# man page(s). These additional files only source the real man page, but without +# them the man command would be unable to find the correct page. +# The default value is: NO. +# This tag requires that the tag GENERATE_MAN is set to YES. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that +# captures the structure of the code including all documentation. +# The default value is: NO. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: xml. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_OUTPUT = xml + +# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program +# listings (including syntax highlighting and cross-referencing information) to +# the XML output. Note that enabling this will significantly increase the size +# of the XML output. +# The default value is: YES. +# This tag requires that the tag GENERATE_XML is set to YES. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# Configuration options related to the DOCBOOK output +#--------------------------------------------------------------------------- + +# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files +# that can be used to generate PDF. +# The default value is: NO. + +GENERATE_DOCBOOK = NO + +# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in +# front of it. +# The default directory is: docbook. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_OUTPUT = docbook + +# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the +# program listings (including syntax highlighting and cross-referencing +# information) to the DOCBOOK output. Note that enabling this will significantly +# increase the size of the DOCBOOK output. +# The default value is: NO. +# This tag requires that the tag GENERATE_DOCBOOK is set to YES. + +DOCBOOK_PROGRAMLISTING = NO + +#--------------------------------------------------------------------------- +# Configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an +# AutoGen Definitions (see http://autogen.sf.net) file that captures the +# structure of the code including all documentation. Note that this feature is +# still experimental and incomplete at the moment. +# The default value is: NO. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# Configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module +# file that captures the structure of the code including all documentation. +# +# Note that this feature is still experimental and incomplete at the moment. +# The default value is: NO. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary +# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI +# output from the Perl module output. +# The default value is: NO. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely +# formatted so it can be parsed by a human reader. This is useful if you want to +# understand what is going on. On the other hand, if this tag is set to NO, the +# size of the Perl module output will be much smaller and Perl will parse it +# just the same. +# The default value is: YES. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file are +# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful +# so different doxyrules.make files included by the same Makefile don't +# overwrite each other's variables. +# This tag requires that the tag GENERATE_PERLMOD is set to YES. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all +# C-preprocessor directives found in the sources and include files. +# The default value is: YES. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names +# in the source code. If set to NO, only conditional compilation will be +# performed. Macro expansion can be done in a controlled way by setting +# EXPAND_ONLY_PREDEF to YES. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then +# the macro expansion is limited to the macros specified with the PREDEFINED and +# EXPAND_AS_DEFINED tags. +# The default value is: NO. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES, the include files in the +# INCLUDE_PATH will be searched if a #include is found. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by the +# preprocessor. +# This tag requires that the tag SEARCH_INCLUDES is set to YES. + +INCLUDE_PATH = + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will be +# used. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that are +# defined before the preprocessor is started (similar to the -D option of e.g. +# gcc). The argument of the tag is a list of macros of the form: name or +# name=definition (no spaces). If the definition and the "=" are omitted, "=1" +# is assumed. To prevent a macro definition from being undefined via #undef or +# recursively expanded use the := operator instead of the = operator. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +PREDEFINED = + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this +# tag can be used to specify a list of macro names that should be expanded. The +# macro definition that is found in the sources will be used. Use the PREDEFINED +# tag if you want to use a different macro definition that overrules the +# definition found in the source code. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will +# remove all references to function-like macros that are alone on a line, have +# an all uppercase name, and do not end with a semicolon. Such function macros +# are typically used for boiler-plate code, and will confuse the parser if not +# removed. +# The default value is: YES. +# This tag requires that the tag ENABLE_PREPROCESSING is set to YES. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration options related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES tag can be used to specify one or more tag files. For each tag +# file the location of the external documentation should be added. The format of +# a tag file without this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where loc1 and loc2 can be relative or absolute paths or URLs. See the +# section "Linking to external documentation" for more information about the use +# of tag files. +# Note: Each tag file must have a unique name (where the name does NOT include +# the path). If a tag file is not located in the directory in which doxygen is +# run, you must also specify the path to the tagfile here. + +TAGFILES = + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create a +# tag file that is based on the input files it reads. See section "Linking to +# external documentation" for more information about the usage of tag files. + +GENERATE_TAGFILE = + +# If the ALLEXTERNALS tag is set to YES, all external class will be listed in +# the class index. If set to NO, only the inherited external classes will be +# listed. +# The default value is: NO. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will be +# listed. +# The default value is: YES. + +EXTERNAL_GROUPS = YES + +# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in +# the related pages index. If set to NO, only the current project's pages will +# be listed. +# The default value is: YES. + +EXTERNAL_PAGES = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of 'which perl'). +# The default file (with absolute path) is: /usr/bin/perl. + +PERL_PATH = /usr/bin/perl + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram +# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to +# NO turns the diagrams off. Note that this option also works with HAVE_DOT +# disabled, but it is recommended to install and use dot, since it yields more +# powerful graphs. +# The default value is: YES. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see: +# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the +# documentation. The MSCGEN_PATH tag allows you to specify the directory where +# the mscgen tool resides. If left empty the tool is assumed to be found in the +# default search path. + +MSCGEN_PATH = + +# You can include diagrams made with dia in doxygen documentation. Doxygen will +# then run dia to produce the diagram and insert it in the documentation. The +# DIA_PATH tag allows you to specify the directory where the dia binary resides. +# If left empty dia is assumed to be found in the default search path. + +DIA_PATH = + +# If set to YES the inheritance and collaboration graphs will hide inheritance +# and usage relations if the target is undocumented or is not a class. +# The default value is: YES. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz (see: +# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent +# Bell Labs. The other options in this section have no effect if this option is +# set to NO +# The default value is: YES. + +HAVE_DOT = NO + +# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed +# to run in parallel. When set to 0 doxygen will base this on the number of +# processors available in the system. You can set it explicitly to a value +# larger than 0 to get control over the balance between CPU load and processing +# speed. +# Minimum value: 0, maximum value: 32, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_NUM_THREADS = 0 + +# When you want a differently looking font in the dot files that doxygen +# generates you can specify the font name using DOT_FONTNAME. You need to make +# sure dot is able to find the font, which can be done by putting it in a +# standard location or by setting the DOTFONTPATH environment variable or by +# setting DOT_FONTPATH to the directory containing the font. +# The default value is: Helvetica. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTNAME = Helvetica + +# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of +# dot graphs. +# Minimum value: 4, maximum value: 24, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTSIZE = 10 + +# By default doxygen will tell dot to use the default font as specified with +# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set +# the path where dot can find it using this tag. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_FONTPATH = + +# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for +# each documented class showing the direct and indirect inheritance relations. +# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a +# graph for each documented class showing the direct and indirect implementation +# dependencies (inheritance, containment, and class references variables) of the +# class with other documented classes. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for +# groups, showing the direct groups dependencies. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +UML_LOOK = NO + +# If the UML_LOOK tag is enabled, the fields and methods are shown inside the +# class node. If there are many fields or methods and many nodes the graph may +# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the +# number of items for each type to make the size more manageable. Set this to 0 +# for no limit. Note that the threshold may be exceeded by 50% before the limit +# is enforced. So when you set the threshold to 10, up to 15 fields may appear, +# but if the number exceeds 15, the total amount of fields shown is limited to +# 10. +# Minimum value: 0, maximum value: 100, default value: 10. +# This tag requires that the tag HAVE_DOT is set to YES. + +UML_LIMIT_NUM_FIELDS = 10 + +# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and +# collaboration graphs will show the relations between templates and their +# instances. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +TEMPLATE_RELATIONS = NO + +# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to +# YES then doxygen will generate a graph for each documented file showing the +# direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +INCLUDE_GRAPH = YES + +# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are +# set to YES then doxygen will generate a graph for each documented file showing +# the direct and indirect include dependencies of the file with other documented +# files. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH tag is set to YES then doxygen will generate a call +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. Disabling a call graph can be +# accomplished by means of the command \hidecallgraph. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller +# dependency graph for every global function or class method. +# +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. Disabling a caller graph can be +# accomplished by means of the command \hidecallergraph. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical +# hierarchy of all classes instead of a textual one. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the +# dependencies a directory has on other directories in a graphical way. The +# dependency relations are determined by the #include relations between the +# files in the directories. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. For an explanation of the image formats see the section +# output formats in the documentation of the dot tool (Graphviz (see: +# http://www.graphviz.org/)). +# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order +# to make the SVG files visible in IE 9+ (other browsers do not have this +# requirement). +# Possible values are: png, png:cairo, png:cairo:cairo, png:cairo:gd, png:gd, +# png:gd:gd, jpg, jpg:cairo, jpg:cairo:gd, jpg:gd, jpg:gd:gd, gif, gif:cairo, +# gif:cairo:gd, gif:gd, gif:gd:gd, svg, png:gd, png:gd:gd, png:cairo, +# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and +# png:gdiplus:gdiplus. +# The default value is: png. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_IMAGE_FORMAT = png + +# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to +# enable generation of interactive SVG images that allow zooming and panning. +# +# Note that this requires a modern browser other than Internet Explorer. Tested +# and working are Firefox, Chrome, Safari, and Opera. +# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make +# the SVG files visible. Older versions of IE do not have SVG support. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +INTERACTIVE_SVG = NO + +# The DOT_PATH tag can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the \dotfile +# command). +# This tag requires that the tag HAVE_DOT is set to YES. + +DOTFILE_DIRS = + +# The MSCFILE_DIRS tag can be used to specify one or more directories that +# contain msc files that are included in the documentation (see the \mscfile +# command). + +MSCFILE_DIRS = + +# The DIAFILE_DIRS tag can be used to specify one or more directories that +# contain dia files that are included in the documentation (see the \diafile +# command). + +DIAFILE_DIRS = + +# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the +# path where java can find the plantuml.jar file. If left blank, it is assumed +# PlantUML is not used or called during a preprocessing step. Doxygen will +# generate a warning when it encounters a \startuml command in this case and +# will not generate output for the diagram. + +PLANTUML_JAR_PATH = + +# When using plantuml, the specified paths are searched for files specified by +# the !include statement in a plantuml block. + +PLANTUML_INCLUDE_PATH = + +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes +# that will be shown in the graph. If the number of nodes in a graph becomes +# larger than this value, doxygen will truncate the graph, which is visualized +# by representing a node as a red box. Note that doxygen if the number of direct +# children of the root node in a graph is already larger than +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that +# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. +# Minimum value: 0, maximum value: 10000, default value: 50. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs +# generated by dot. A depth value of 3 means that only nodes reachable from the +# root by following a path via at most 3 edges will be shown. Nodes that lay +# further from the root node will be omitted. Note that setting this option to 1 +# or 2 may greatly reduce the computation time needed for large code bases. Also +# note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. +# Minimum value: 0, maximum value: 1000, default value: 0. +# This tag requires that the tag HAVE_DOT is set to YES. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, because dot on Windows does not seem +# to support this out of the box. +# +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) support +# this, this feature is disabled by default. +# The default value is: NO. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page +# explaining the meaning of the various boxes and arrows in the dot generated +# graphs. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot +# files that are used to generate the various graphs. +# The default value is: YES. +# This tag requires that the tag HAVE_DOT is set to YES. + +DOT_CLEANUP = YES diff --git a/QDMA/linux-kernel/docs/QDMA_Driver_APIs.pdf b/QDMA/linux-kernel/docs/QDMA_Driver_APIs.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2067210305a69349a653958acf90c91520b2ed25 GIT binary patch literal 660344 zcmY!laB<T$)HCH$y>R8|4K5=E1BLvgEG`=xF8z?of>Z^4|D>$ol3Xr*KLtYr11^2H z%%b8F1q)*XE`6WWy!4U`1w&(F69q5;$>x-#7Afev<s_D*x}+xOr=)V(*>M$@6s0ES za#h?q8|j-bZ7#6)b@&H~_#8g_HWh&<B1<$b1Yf>av+=8-^ad68Nt2iD-<QA5P}M72 zPke2n?3q~Ila=|;c-!xoYOdY0DQctAH7!jqw~5Dum!HteE-XAHsL6H8a<zt5{vM+x zd%g=NhfIi%W0jwhIQ7F3m8pA#7rV$EGxS{3rI|f>6XSJ<Q*N&F5=FPwdI_^X5cqJL z*~P(8vog%jL-jybs>z!Q?h*;+7DEHQ18Nmd7aNH+&n)mYNi-;AoX2UOE3(<h(fufA zc*BCzE;qP0Og~`Bk@|s&)%%03OH6QpU`S$tP;ZO!Dh)l=wMvJVz6fdYj*D@>azmkw zLz>y<VBCR}85;z@J!rbj=6In+dKqWq6ypS!TaVrTTr0Tl#^RywBE5to%3``oi`c}C z5|>+-y>?n7(ZV^);$z2xE^b2~4y_$8F0!V^OnK?X)EOX{wrh%k?5_&m=blL#BD)qu z1vJ>~5Zt(MVtGN&oENzXl3JB+9Gn$)9&rxp^1BQ<r6N{vEUghrn$Tt1A-pBY$bp?% zZ6@E=8w#^ncHVHYRcz^z^_Hv3SZ2s=KjWyrPr|ef9dm?&nezMCk{3v+PtuF<lbg0M z`htvVXNUst=|C5?631N$6N6aZI<Yf;Y${jaXJ^uR#CD2(BIhqgt}=y$4xQu#OU4Th z2Um2ezrVkF_4!w?rhk>sF8vy~clN!zHt(Lz_TCjBZ|8F__V$4v+}ESBCq0X@*1g_; z>5j+d)8*%D=YM|OYvO;&=kw;}cMR?4d|7Rxotd`t{rYa<y4ycX%J;{`Uh3x2kMDo| z?a|SSnZahy1fEYe`F_dfPxy7;`LCDV|0?w+e`o$}%RifnzlogRmt|DKcD*vgJZq-= zTCXLs-xkl_SY=tXO}}WHeNnaMwwdnipJo_dpZVwW5_{vl%y#X}b?3vxf93^ST~j=p z?KfkVaN3E^^>-OWPW(yP{r&Ot$G^{{P5hf7{N;bamzUoTT;G+lY}2FXsk3C(Hbwsb zQ9H-Xw#z(i=Gwq*>P)2`_xT?0KVwnNI{$ar&Baeo?y9WK-PFJC*<$OK=qca0)BCO! zo4-1KJ9YNz^x4u{n?BD;-h5preL>BUDv|fW{BnKUm@?lP9qhZdrng=4^x_ratN;F+ zURm<>mD%STVI?+d$;T&c+`1?Ca7nUZ_tql&cNz)$wY=x#XZ@Sh8aG|AHsglCvZrO+ zDt4>BdcE@9`Albx%GqZ3p3U*<mcP~T_d?hn&C9>M`(ED9eUYY9CAdGct|*)>AyVyO ziTql#s4^Yh=!K@bTYqi;v+ZL+a^()L{@Zh$x;GmA+-UQMvp+R1ivOu!N$@_soX?x{ zZfyyZ+v(QLuUW$Qqb}m}Exz-wgLW@I`#LvE<@$A<`Pscseq}xXyk??Jh;ro$x3Z7F z@3o~IQxe@+r4yVL=w+9yV`CG-uyZBDJMlm3crW)JEm^L;hxcT^tCep0Y%>+P?j!2y zS5p1%9gouGF<o+@p6hO?Uz5I!-1$dSBwlG7&B<ov`TAA%+-9b>g<KMCS`W7Sr2Su* zdyOsU7}M;9A@`>&zZz<qGTZ3eZL>>dI+?d!e!ZAu`){o!Pw34HB}-zazn?WbDzeLT z$Bn3IRr@3Uy{SGtIbzNF?uvQxQyyJlUuyBiF>~hRcXsj}{q`~2J{lxf^60&9Kls1; z%f}7Ll{YrpwB2_$UKpZ0IqLeEz>B(ecK4siu8DB9|Md9hZQWHN{^v^8&8}XhUTk&# ztSxWuyUdK@_ooj&&dGY5c<hse4qGjIf7|=@ws+n{<TbNC(p$YPeT#os&Z_?m!A^@r zxl;2|pap1ZUJ9siHZm|KvY56oMikRV1_t0#T7jryx>(p!VDI_$7beEYc-~#xuhk{Y z`aQLOr@-;X5J#UkEQj{rzaHFeBP`v&#vzqYIa_7*{owt1Un}0MHNRFN%_C@+bpI=# z^O+wdZJX|GPP|lYI7!BCGH2ZT&7ESe_n1#~er`L{CE|6nXW;S0CwXQ|oR)n2q-V3@ z;={)*pI;PwEOIQ^$vt86rotBM^Kx^aSe;Li=}u5tFu7DqN?q{uQ7LhqWh~Psx5~~a z;54%l+cBq<g?r6)!5F<HYewyZdp|o`rkOA<ep1Sn!@8xGC6;r8%-lFDrlP=1ml(;q z&w|s8UwfFPJmi^gV|B3HZlWUlKD&dP^<IXUI9w1F+ZVP<!F|r+TLvmi!j1-bSWV(_ zU9Y@h&Z4NJQ|Fej)Cc=<N$^BpTA6WUWz&S-hYBTg62EG!EZD`|RHSoFOT6UQ${Y&~ z@s8scm-j7@Q_t~}Jt!HkV$oFm?bP)SR_CUsM;oRrSg>P3a0h4U{w%e>VGn8*5-deT z)UFGPh&1vxxw{BRvaqTqyk}umHCmS7G%3{oK#|g1Az__qLLxk3h3)|c6)ake776jP zjt38TiE^>={ooVfdF9j8<haP{(oBIVS|U6bUy10rFYS7HA=&ZZ1k*bU6HXkGbv&5y zP^hWt;vt(7gNuzK2eU7(bO|u{cIZ%8h`ON2k-P|1r}k1VOC=u11qnyOc3)qA_9uJs zzq-HgZ_U|nx_;a0r+?4>Ds$vcKYwPn`Q6prU5w#-He8!z#+^II?AxOKJO2M!b#|#) zcCOrSOZSaua<~38iTUI>yE@nGmQBWHo#g%dzV@4G=dSb453bstdhu0Gy*dB%!@RmN zcc+zY-*2%;x59R7|E)V2pO^Z?$o~7c?ZfRUuJ^kZ&VIE1cILN#EZ^!*Jd16N5<U03 z<a+B%=ZiVdAKl&ey2Jiy-K6(_6GiulJh`{}`_vQrI4hqVluy1|Eq*8TP_VEK??Zd> zqh?bV++jK8eBrea>)&JhLzTRRH}Oo&KNh%Maz1ze@(lS|H(C^D?@m8(T<wQNOZ>Eo z^;hjo8<#1*Sa#yy<2Mn#GyJlyM=Af4m&^Ij>fIh4@~&js(!-%Ljd{zK9uA$#XC7+R zH-CZkj!gHT>1<yvCx2yKyzAKJx^026!8iW;EWV}h_qjGWM4suZ?}EDZa&gn{=J&VU zlCv>Acv<d`UcFrZvd<=Rw#IYWh4v(<1-qJD%rTy+b!bxBtdk*APnt|Uxm$fss_Ke- zCRxk(ua?XY3Yog!Wa|Fg%zE!bZ_1s0@>1U9&lw-PFRPQkh*(wpsXrL<ysO~x&1F{M zM|97dT-~X4_2+r9+;v{1^Sr)3jd<3-{6Mg<&D*`+H(GD?dFZm|Ju<Ko+9!S?^|3Hd z_}+UDR$iCh{`ke69{&0M`>nb8H*)&s9J=TKSN+58+p8aKIeyH%Am*!7%ksEpnR<T1 zwOuxwt?ry%!{c!@P-U|&b5P;3lRl>#LZ&kQ+??vL>Quv@wMGh|sSe9d9r#{&=Kd6$ zACV^;XIp%j$Ng*P`Kb#ov1t9~-#fKpA*a62UdQ;kLJu}}I?s7@p+7dX$ir9W(!JA7 zlO2kMGwyY7_*(IO_2PQjHyS?K|7ZVKE33GEc+*xZg+u4}M{WDZd`RE+FlGU1Vqii} z0cmMSbO9ORn}6FvVDInn4>#h3>dsAYxEQ>#`u;n^>Bq{Xm^<Gd^W6UTd+lOZO~W9a zHa9_epFkno_h)B6<jGw>_tL5CFug}YQ$2T>x<z(ZCr^Fcu)5~Sybyz)?4ZUC=dxVS zJ$@x(sK4iH*U1O-La%(XStT*|)43HXoZ+i`wi!HQQe)}vn_?)Z7JJBL!``rCMTd@P zKJJOFct4fXiT$;Y!i|p)PC98w_%O|5(LTc{nqXO3>2xaV!H)?Bi8^e_*-9Hu9JF07 zK5x$^zH=2xJ|~idri!kfr`YKKp>gdd$2koG(~fYrrMA76)6qRVqkn_UQSLRH4G$K5 zIhDzK`arSNo0^_ejaxpQ)JS)|$Wki%=bL5%lgxY%%UAPMd}f4RkZRmGL3-a#k3AfV zR-4KBH!N>nGx3B4C+`~R30xhs*)x4yvU3dtug*E<GKKZI0-pd2M_A3}GC=`b`DPnI z{{wz5>;^na4Gjl{T?8Z<bTqhyKY8UnNS#pXaFk(&!V|%R4r)3~N)i&E*fK;GO*7pv z=YdzlHN}(387@%;0*;q-)_Y78T-Biv=^J})V(Se?|C5p1ISLw7?lLKP6fjR-p;1xL zcunL8w}v;%Rc0lRH&%LGi<(nATm$bk26}xeb(x^}UP+-TCxy2rS^1qp)16MvXai>b zgt@ki+=5RMHb@9QnXo}ZFy+&N1`ea>kDSvij~s31fAwkeu0Pe^-}}YZ1-<9<zux}! zQ{m>@aXYx3#h>l{^`r3PyHkb_4~Iu(s~>LVabwfUU%%yg(O;FrQEl#$`%Y|__)u?u zgztL$6C0*HRIJaO&s)0PT5{X_^qaTCH*9w{t501~`pjn8?$bW=Q+Awxy?yEZ(j)VW z>!*Gzv*Ie3{5hfXPTDNlouR7Iw~s6fD4m@8Cy?{iEQh-SUuN@Mzj@cMy;OBie$#j5 zAHR9xUsq%}@i{-yGt5u<5vArZfAUtV0AXpVO)o#xJ=+`8ea82Mjmy51(j~J~Z|<4$ z)ApB*QU9YoZ@yQ!?KA3A=Q`|s?eX`f=f8_G{uck-yPW5nMa)<KZ3UCl`BlGt>iEHY zUptF`e(v4pT~SBVqrUH4_3m@b-T(6@Kd5A1@g!lk#f?lp^HimE{tuqcsu1N(tY2le zud{jnwPg$K3qtE3?EJUEek!wR;R0nVlP#I+vV?4|t5hkSu2T*_1S*&B+Wr#yw5ERj zva%r6!&i<NoHe}j<hF0!wG$U!d|R|Uy29>jq*=Y#jQ$T6vsM=c|9$uA^qT{3Uwo{+ z`6;fV+`PuTbk*zF>cx+p*JLDq%<1Rfxaj9mV_Ul;s~$Vgv9@~?|36zdOjhdAorQ@v z+uqEYaF?TU`r&Qb#xE!2$KNY-_dZd>>8Czz!qp>T6^ofBXiYMho6G1S+BxUk7KSCO zm?k{qI*_GwIlQvMV%p1Z8S2|F^Zt%l_Pz4&-?u@xUOnFQt!{3zSM%Ol*58}GG9Uia zdi(!H{6bl9bbZ}tGyPrMt+3z^>p1J~yqTA~=6`2M(Fb3duKNe<jV8YKx^RId>dy<? zC;RX62@B;sdv&lw$TV<K^2QY|&(u=n6u+}~=2vbzJLR3$%_C}NN7paA{U@(dYxb2R zYQ0tumg($mo<Cu0srPnqJ=<Tx)$_fN?pw3|^`7~^+I}pZ_K0)qRiEIPY0F<Y|2!YB z?SK2+WxvmNrp$f4@y*G#HnG<J=4Uq_{=Z)A{`SY>Un^(-e)QK{bffz`f2HC}3-f=x z`_(VUT+e81Q8*8?>@_nmC8O*$HZ&r-?47x{=(d$WYqc%wsU;gfZjVS%o2*rwKYvNd zV~?UoF4J;O`px<M<-3kCBX6LY<BAPj2NfKW?BCpEb+pJ>zlF<6OZ=m{=H!CRHJik) zAJaVEvfr^%`T81<XwfxcPcG*1*8MxL|3N1r=*%UtP?JmZLW=xY(?hu!>*pG^88&dA zieUEcn_9@I8>ju)G-^*^o6X`!fu2=j2`5`-To9U?sBYeDY$c)8&2?BP@rg*Ihhya3 z(v6!W1QVpDa&#patZq5p9DXfwR;$CQNvshaD_CZ_22JCYV_%x;#BH6r*rMIAsOM7a z#NZ<*epvF#vu;VUF>vqqI&@;<l+Q-o2A2KWGaH26Sp;?{#QDxGPgG(J5z0Gu-t|VJ z#Ua(n0S8ZLx`yoeG~;@Ysb+uYLe)h~>;@s9<^J;A-19wyak9EZilASQ(Ui|d`fVj~ zJw{tT3pN=X`D|d7yyCgAqtl7!){8Inn^YWqnIg0614E=liiXGBQVkEjaGrSKWsO~q zB?(15terA$ZA~iY(lk7n&IL?JIn|@6@rbjnY0426ktHgRJDj&BuyA_L44-hLDNZLS z@|y9n1s#e$>|AV}fo)BVA2ht@u>R<e+~O}Z%kjyP6L&mW5BVMKnC*I9#IQ)@yj2g+ z*&7U#7b-~4?6bJSRs38q@tvBcoVU^cmb#bk4#{(EVhMc1!64_la7E^~cXO@&FFE)B zZq2<FpZQ;%efRKmp5^}i_tu=hGt)Hv+1jfAb>E&HDm>7yzvY@=m$Bv=5w-ZTt=w<7 z{`sqLG^nduQ*Y^xX-QM9#oFKB_cWZIG+TbxS?1E|(wf)u-Cw?Csro(T+5DWWnKRpW z%=Y=EaMX8SeeAj2d^PiHC%u20C@Q!4vzX+&^re-zQ}z`+UiIZtzt`z?CpT4RRqiu? zzQ$ku#P>5>*SdW2_1MSt(yIN8n)}~9{EL}eY;W)IXjLemxv>0LYvCN<drul7d4Ih# zzWeIsjQOYbwSW4zzr6O0@cvU<b7vadbw0gu&AOA^)tj<|e4}m($4-88)8xMW;zN6u zyzI)Kxoq~uWYyl>MVfnV{eHNt=k!aHb)Cm}Gpatv7hf#Cn{rl6|H)~FbLIy{xg+G= zb~A6>a>IL?mtNMRMUD<{bz^K_mrCZ{7N35(kn`@6rzO)<f8W0II3`swK2x<+^yVAB z=O0$DcTJe@XFun7YS}%r_<!q6@@JnB?>;}-)U8YZW@xx&#lLF9xZ|5|T|f5v(Sg(J z(y|LObSqBCt{1trPs!rX$vmMN*PNficU69@@@<m8t#Ze&p7r-C-bVS`0%vaP>{dH{ z^mfYZ<`uuqBKFMq`S`uBmD=a`afX#El^R~8OrEaQG{MiLa-~+~%B=SNFU_r{PRpJA zG?`y!g;r&zPNn>E`Aq>=x6N5~PIO=D&FedV2)j&GxWeMp{JuH&?aD3*USGGv4<n*| zt*!`uzLPSK{aJpoQQWhoDdBZTzBcJ-Jxmggk=f(2J=N=r_NUmL3)b`37}l;$@%3Gk z`Ju^b%k-FQ>!NqnKD@*{Y46<1>2dqBJo_S?&OZ2@5WBCYe(LiU`)^Gf#4c`A7UO<r z=eM@@dfxrsof%WD%g)O#kW2aW)~D`+P}H+4`_Bmdt?T>oP9i7k_%g%rIRD6vJ{jtq z`m9$C?>#J2le12F)vuSIU6^F;H>aVv=Xj8HlGL8sU%f9Maj31ny}hkUE4c5#?kKCv ze(6y!rY-&Pee3ct**Ai_bF3|_e((G~HI)0|EycFe|JCNt{kprYE;#0o`rCTWe_87= z3uFreGhz#5GsI|tv5^Jw1+s6kv^h`P`(L6qYT`5H89dLV6rI}geVKcF&P_kljk>od z+2+;N#^)KwTwLuH^W(x9mzY`d2b>wW1H887tT`FRGx6j(DRJg`2P<ZOP<edx;Y=Tn zo^-P(M^fJNOf9`9ownw4&Z5%pH;X$ZU+<aG;?F1W)_7jTY@2y0bG8c3ZQ)BcOL;7l ztZDgp&rz#S$5{Cn9(keSu{1-*@W`YE$`L(t`-EAF84NUxoQsMk@W@P8QZZJU{!m8I zl3UE(L#*-12@5&LqMl>UCT=Wqc}|{`dcX9+Ar{6NmIv8bBrR1ROFlal@Fw}dqc;~$ zM$Fm!@g@^<`}YU2Pk2rS@o_ASW06SmEilMw`|_acs)3Y2i=ScsMtcqB!#9#-tt>V< zWO!`rF|azq-T2c<tY6U3@quXL^%F_E9jtEl9Q`1Dkn4qtvz*-IN0$5_gJQ%JavHC8 zJg_*}uJNq(K=qN9w*|6>6|Dab^Qatdobo`Vk$vTk_ynm_8+{x%DM+w5?X(Dg;Mi7v zF|mY6<#4l1f?*@O<$(!DP0n0U{-98-qnu*F7?U977vr|+p^SpSwdZp-NXVr${#2dT z@HtQMLxN1n!RCvC%N`tjak{L+fUP_DKy!ikHs``4GkpaGB?FlF-P*cY<az|HS>$>+ zmb5+*I-P30ERosgpi*F0?Sq3F75ZKAlbe5fhp4s-bNI{=FjqYzTeb3tWzCGHBbSmV zcf5IYS-tq%)j5Cn{VYyCw{Hgj?dPXIy|3CDo&Ron;>*gH)92aEIzL}r{+x5yk0r&~ zxf*9Tnd~#U^Uw0z3X|v4aw_enJlkdRed$iEv%#{}YmyJozkO+qU76A*xryo>uf0Cq zT5bR8>+#yZ+Drc}xjtX*m;3yf&^fXCp4TQnsTImq>4@7eb2)z2=}R{J$#X3Zt}19# z{U&nm!kw!d_O9K$`%=u6dp1eS)ysY#F`t^b;CI+8U*7c}ZT$Bp#PL5<H?*6Tdp&Jw ztm~iMau4p`j61jBInVDo{#WPgHy^F~Iyuf>w(LRj`mAfK^DccT=AF3u)yChJnHny( zo^wQ6-kTbTsCfEM>YEUwx!Cx1;irvWl`qb|N)@u5EVFvv`vj%fN6S1Py-Tzzv3&Kk zr0Sen?E9=bxz)$t)`!k?zPe)jfeF`zf6r7ctVy5$e2NrT)e!^njng~7_$)EJ{pU2_ zM!AVs=hdEP&3IxTt3PX#L0#m|)vM0Mdg%T={cqa(w{IWqluOvY|5g94pJ{s(x2{aQ zQBr$Dy_!90*FI%k^_362ubST~ygP07>cg+Mzb)@5eZ8*K*YNxDmw$PFsp<X+3yt0W zbJfASTV_6dcR=;SBKbeMzjbc^J{%VjKC6_qa?P^6D>mQnYdPF<di9P!PogZ^4!>Q~ zU6aV6)n-un_n7(nt-;1CO)k59PQAKkZgNf7%6y~8xzfAuTbsI1eWv#KZ|L)|t9+mH z4zsGPbXaB|_@iqH%So*XHAj@%yRIdx_pZoz(h*se>DG67o#!pCAH@}>%P!9H__zGk z3@f9OU#Y8;U!8dTQhaUS%GFlOg0Fsj=sTx0>zmfuI-wu8%{aDwejWH~Rm;l|)tcYR z7dLDPwq1F}{OJex-%@$^{%Cwub1x~{*tL4)<nr9sds}BXf4Ea}$wkz6PR!G7p?`mb z{$9v-<?Ed9>MJK)TDhZe?yJpSwZYc$S$y;VU+eJNE3+@UU-kLQy@CAOeqNk?VU6A5 zo1S;_v>#>n_D`2m(Vlztj`gH<v;UY?-~KIqb-}IIp}&L6`##nS#=km}ro*?l!?FLy zlgGcg%DxBxx9^o=GQ=#P4Gj#;i7TNkk;ik5O-Y${1C`LA;ffhCDMAmP`=~AVsm`zZ za&%fsbnxvWm7ABpUH{&gw_{P*#2sf8zugch<NRdHq#&j(y>{=VQyGh=ZvB)w<zt}8 z>Jt+*{0u7t7d@JgJ9(35Pv?|mL$$DbY=L_|os4nd)XFkUTbmR&v)5}wb5iK1q%(Yn zPF<>;IOXhQqa~Ah80O6J*&y)d(Enp$r++m)>(O~&aMp6>!vnS%GaoWY7%8$(mgvbi z;1M<Bz>Ja!f&MpA;*M@sI<;m`_>o(T%+pim{$RMRHv0&l_eAbZTr8E!#!bN@M+&W6 zGW7bHl%sBjvAFpdNi|N~#J)Iu4KK4Y+tCl#ZhyNOaj?Nq__Wpsqu?~If@gdBTMQy5 zy9=AdNJTcxHC?nZNq=>N-If`83mBEV;ukmx?|<N4m^8C-sRipyM)!z9zAY=(RL*XU zI2?IFAjkVrQnN<XwkQ*R-KYeGd)L%vHZ~m2j5ArBqcF4k?2QMk%!b=fKB+$7p?BZ= zRI0qhkvm{w;*(y-GqOh+cm&F2Qc{n|+!kG?@Z?^>!?NcV{Z>zHIPH(zshscLD5%oT zlk~3X$*hA7-kxa+&*UmOd5+wft?^wz!(WBxLD~G;{y9$bX4jl|JiVi1XZ>N<Gkd4! z7<KIYKB<7s@VljOY9N11g2FS7o;6HTb{l(?o;glVNKnX_?>?975l4n#R9fo{_AWm@ z&Xos5T$4rD{OA|>oUnHHk1w9Fb)nPuum2yj`n3M5!{45|)lL6=H|wv-W64&@vps)T z*wyd*QNTL?k$z0(+Q=h5ES(%*Q?K=KXg~6b)}3#zw9Ylh#ip}D@S{eOUQ#Sup6eQy zJGD7aUjC}wRW>j3c2`8&<gl`R^XKNLPj~+>_%Y^<(al`#^B2w=Z~1&?PT9{*QzPD} zi+%5`UCq2hd%F47<I~n239{d4^67?>dcCsAOT8CsUe>+{ZTz=e^wt;W*|je!J$rn2 zo@xKT?%d?pi?*`0t(dR$Hu%oeEwwtXS%E?t-OI!L?ws%JFP6%Bw#mX^^X~cQ&VAdw z+UsxbN{9BRn^JCXi@7)bgPrI*{>j`rJL}%Pv-qCxe&Su%>G`isDr^rGCsgdK=*_;e zsKvti`KbbpKXP4HziY;G@Am!pd(WNUd0*WhR!1LCiTq=4UwG`BnTc_3^sHXLKht-8 zixb!9cZ`?WeqXH4S<ZHPYuMpTi}Ul;HmvVDn9rIOY0>|3-Rn!=B6j~+uwbrg-HF;s z?_XAkY-9a-|Jow06IWVeDnIND`CiKTH0e^MxY8ZhmVV)z)2y~=r6*taI8r9K^3>Bu z3Wud9#)=n(zKP@dvnb`w<tcZ6>+#izwCz8YIpdsSNg;>2g^W#eRDbFlrJ&G%F`{w& zuacB&UN!kE|7cgbR_bjwchbebQ&+tTXn+2oSa9_u&GN5@*KBQ@F@MG4$7*F!!gD{a zl&_Bovi`7Be!l<1>D7mg^Dmw{`K@@<V)mHyRMU0yTdchoox5AJ>6-fP<Dc2Bx0dyP zPd!!h|C?dg{uP^jc<=gFZJ(Q(^<u&$>$f_=!Ra&4l}=;NUvT*MsjnCEO*bvnGkbjL z$AzB({=U6wR@XE9*tf<mcwGL$Z~tz+AB9h)_g&h#PWtTGl~u>pXS2zDWn2F0?kYQ} z*?%{lov8Ncx`^$y<^1<HJpUf?<-k0(4fWx!{yY3X{pIhv_k~YKIau82Z_N9d6L)gY zba$`$vH$FcV;eG`B<!}hanbxb`}6AP=ZC$MpPrr)BffOir?-3CeZF<PZ(1L>oLzj6 z*|)ormL-bq#T##2{XZefY*S}!&awLo*Dc$jP};ccVq(no{7d#0ivJnAE=#&{VNAst z8W~s+TXvfuTGvKqrV3y{)LdM!w6(yV&)OwC;>wwB@u4f{1f8_4bk}R}bz(HTq4x0k za`(EWch5?NiA_Di{-kqD(08BneaHGXT4}89F?AC>xjgimis771dL0i%U)xL;*?cBq zZA_A(N98HwHB5dDf*}PpOv<Y|?2}KfkVxrV<8`mI(ed@3XNj)bVhlY~L&eM_`&;`b zhq6gT>Wf`Cp~_&uS5SHNVafC_|M}U^6<cT>v1!je$>rJZ96Z5t{nV>E67v#NZ$6al zOJ8KCk=<+YP<f4p&&Gt#6jKF<HBYBBa1^RZ+9XY778F|3(|xe2af_gYBexriTgM}J z7Pl>r*!#9?x+^m(cN&Yecx-l2wu}h$^NgG5*)(mEl6D4*)Rf0gvl2S<Z!GU<X5l$C z$@n8nSjdyDZv<xUO%P~Vrf^VA!&h-a!~u`pp$RGnRXfhMrSfHM=B(@!eP19Lp~i2| zk!0MhA*A+9#ah8KJ(XkD=IJcT8Rr<eH%#znbTna+l2Hw7DJYs0A!zbk<f%x;yDhD9 zEsy6K7IAr4DPIyYDGy6>y>KUWD+hPq9lg*gr?U>$M|c`6*jc<t+Ohcg=i&=@SaTZ~ z&&HY*$(fW}hh322)K_m_cY9;gvwJKzyC+o4E_W!_cRzS&_Cc%j8$Vh4bIwv$lreC) z^jjvj<>dQCjAv`l7`8sM`?ZIw=ShoZ$M2SUsY11kPEF^}2`bBY&N5F5*V$8l?d9a} z@2}nrFa1{e^}g5K+K~5V-K*c8&9Yo9IWzd{!^0<c7gsdwFIcx#O)~AMk<py&YoC5< z9FA$Lmel(sHD}s+Y00p^Gqol4e*fNoYQxk--NV6^S-0z7b@OmbuIt{acWqNn)SSN9 z>RoTD%~yZPH~aJ@`QU9a|IO{?sfqjk|MY#hU2nGBDaY6;(=NYx%lIaD{@LYBTQ%k! zF9~mb89Z?dcj5DL*^l>k%8OL*j&D8f^lq2X6|+XZrt6w9uQg2@gXF&~boqVTVDcuh z*Ir6@Tv~p+n6(~`Rb7$IR66-y_@Uow75CfUcb$IxGW%+g)y|yUt$TF!uYFf+?!LJD z*YxhRv)$SK+cK_&FjOyby?l<Z`!BcF9p21)VM@2vo;b2hKl=N3cu;POkMD`*PnDrU z&sGXeneD*7)M&N!`Xj}@70p^VmxfF)T|KGuwwKbr&Jzpb;-;J2zWT=N$%Ph~UnlI_ zOH+RboxR5{Kl{OBkH+qx4O#JPue8i@>s#;DxJTD>zl}@v;@hXY=PfD@Pq`^`<R!1_ z`JPRmmK}NWOhIVd+!oo16%uh=pA|RWx_&gkTK(4f%)7C?TUB<<W$E`gv-|glrQC~} z=a<dT+P(Jor&Oh8`~Qc(b!n}uu)6iFOY0Vk)unG;t8QukVty+cx;5P7YFw@U)bi*} zJ0|j)Zd~{`=URU1Vc(pJS58%HTFQMtG+%qOGo{$?nmlOc^Jah4r02DYE1n3<vS_*Z z{rUES4qur^Gn`f9vJQDKHoEY-?B0ZbqOp>prKz!cIoy-qoyvW2e#JWb#jF0UIX$WN zZ=kmI?Q`e+YIjEMzct?{T-R=e{m%F2&wRgg_y3CIhh5Q=`?n=O?3z8je@pViRei0? zt)}^MKEC=v{8;7N{L?X44}1t={`~trTl@c8=R)^#`+wDYEi_GDm2a2Oyx9-fmnPWl zF_U5~^mVxtB6DW7YrfQ#t73bPe>$hrcJ0A`{@wZA*Xy^i{bO>^WwO9h#F`jb5?jO? zA&OXIW8#b0nf}GM%><6V|0iOhCN5nsegM`!cHQ>mNOE+L&PvZ;FMo^WIx0@_Etu-e z*XB6!!0$x)9Sok2OM{{$^Vbx0{<lso`q?;T>(l8gVt7_Wtljf4eodgA`??BIoA{h& zrMWvNiLh2TdWBsSsw)h0eH46d<&&K|m8Wic=oPZ_%bD62m$n{%f2{ESy~WdZ6!&}Q zJk#5;^Yfj(&kvvY%f8yjphlv>@5zof;lN^jM%PU`ZZEV1R}1nLJ1VVT^GvXM&IYy> zD^#y2IWkXIV7j9el{!~<l3%2pr{H$GO>A7!Mw=O~2XT5BopLMbmol03Y~w=h*}B;( z87WD<Q>I={og&F5aawm%@HsKwl2<tw9d^vU&cGkF_?RN6MM>jv!7br^6*7+OGmd`b zo={>qll#hoiALKKCU1T$w&O<jdEE!b<8hT--3t^hT!i4%X<m1}s<he9F<!a#VaJ zQzoNyO~T!wphmLNK|s(suTfFK><&}k?~o`4-p9$jF>ktmGtO(Cw(^1Hi5XnXElS%P zo?l4ht&oe6WVhkp*TX#TaYyul;y)iP9#|e?vS+g4-xzT4^8_wYAI_aU%@voVt~ESg z!kn!zC&jDeq2){`*7GOR@)*yb6xEvHbZ;};8D;sORuz6CKXqC(q^`9-pR(c)TkjfE zlM9(w=6OD>yi&8BwL;GKCF_HW(;^Ojev#0xSRogCBF0#2+U<r1m0xP48)J?hC{(PF zJGr#G{QZ@y?xkOUKRe&M>(_#NZ}`l2Uw!+pZu7p9>3T7<w!ixOyW9M_p3uKXTd&<J zER4)vC?}=2ZtL|w|Cz<L^}faE?AY=A(Z+cZ^Y+ypKdLK!e(S|;Wg&d#F>CJoUAis# z<=c#B+qJf?I+J|ISJk%QW61jW?T_Cv|DRYJ_U3J-_`Z;*PXE^i-|U()n?p?e``jwO zCC~f5=Dpr|e(s_;l~?_)+uyRpmTIw2EV2mOxBmO_>511$Pfhli*Y|X~{@t~y&+1pH z|C@GpzlKuJ;-4Qv)>g_qOR0{Qd(|0f=%aL~MDF1tv)yxf=eQpDY4ad=w&3)w)6d7) ze0k=m>)%q9b?sik$GwO2Ufqn<zblz}t7p>5*xfmN2WO>j+gP+rt$Tlm@tu!{gX-+n zpGvE{mppD=#`a;MoZVH{a!YkfX?^z3`fEJYg?u~TB<lxHFm4T>k*9Uz?oQ3y6J#bX z+jPc1Cdy|@v7es7a-lQ(H|#C(^iz+DdA4+_&hptYo_wYar*9^Noi<-n#g%hoFTeDk z^oRRyov=JB@;vwVla1@kcQ$<PVQ084dS0<%{<#xZubs5KEAo6p{?2^m-*>#9KP{=- za-{aJCg(9W%itIH*Us6ydXviYIWc~xTz;?SdywIN>s{)u#KkgZeNDSoem_2;a@t-M zPrplR<hw1aEoVPn^|&-K@@>T`mA##(Gk?xz`Fm?}?b(oiCj(`6<KTqyw`cxYRo}AE zUcNcFWOtdgIscm;bLTv+oO-3jW&1aNDl)LIaxRxBo3Qtn<2rda|BBnwuT6XS_u;y; zUa5<6s}nu>yp0p<D-PY<_TE>H?Q`|b#dG$aeEZt#lSz8_<4H05Prgu}zpzSilZ=wT z)0~K9)ptKe{Syj5Uu$4@(By)Tf1%XfZ>P(2cbe&KTOZo?WJ8wxgMaUzCGTEncV(eT z_}`1`L{^8T*zO6K^J|fl?0uCN)Bno3$lf=7A^um+CH8)E#;fWJ%g%PXe_lQLV3)+K z2)SDvdbc;|SUJw&II?%stejQBdk=n4YD@cR|FtMFc(KWz<9AAxSOqWrkbQVy!#{ob z|IDQ+9y75N)MkbT#1_<sNCmY4@db6HFQ}m2`#SuAM0^TEcmGjXLA`Wh%5mduDbd>| z&%eLDfVWFcw<*K=norXj2d?)I_a0q$V#b2Wmrk)bpPKmR^%O;I#}KtD&WOnQ0uhTn zPOD~5z3j-ee$MIXO`nbksXV=@=cBOJX-aiR$d)Dtzm3yoYifOKYRzBL^R&n7XIi`e zE$&r^7er1g*^w~0CU8NAQrP#13meazbh_u(dBDa+a!-JHB_H<@6>av#Jd<mb8I&Ur z@*nU}jORU-6=~Aaq9JIoC`@dzj@PNE#qra&Pcse(nP!yNVt4L@R*pdG${S9bbvUYB zb~JEED4x(#$a6mCalj)g%=3W9rk4|BQv53Qw2Y=akC=FLky_RahYPY3L!WG!d_uWs zQ|1n*xE(GUzW0{1wp{3H5>|X**qWlk<d*VRNqFN5!H34GAI-Zi&h$RxXMIp$wJA5- zp0XX$i<ZnW<&!A5J#kv7$0rY+?hm(jo)KxYW=|B{SQHo2yWx(fn<5iiH=E#uK4U$x z0?ntEDpS<>d2T%Ry~Z%FdUkl*^Ld-tKHLeu#xU>q8~2vycE1H5?))CfT)`K~B0lf; z945glHCK3eD&ARUGn}{W{w6q&{cWmkh1`~u*p}ywD#}W0T+>dUTF|!VOtGBc)13>N zmM|=8`JBMYJg;4xr$R2y;6ddTl{FhOcW6j_koo0(>(J*J{R?VzpDjNA!RFcK<3BiL zJr=ce9DejUz4V{&-2eN27cW1zf0h65<?lbGZ?4*NFL(NuB^$P!E?Bm&CbDMN0*Mdi zaT#kp+fqB7er9-2d9JtR@~8K1ZPt?iCMCwUwQsiK+t}%B^W=l^<C6uthm)U$a-R47 zP{T2Qdv&zRi$%MQQl?&;IweSWX^F>6_nq6cKI~rOtIEE3wugk|7sbiT>%#7cSly0N zTQ;}TGG){BhpRF+%~fsBRZl$bdFP5#u(iqF$459y*sW?6s@vb!J>iIv=t|xGI_c-W zj{jAMOA8-uTJqxcq5G#I>omTEr@s5T&i>S^>8e#PCatk%dR!!*Q=R$BY@bZZwd+ma zBUE<0OaEQ<=bzuibv1XVwyx_|yPf&1jO}-v*T1j@X04wmyjy2bs})x+RQ`LN^1o@n zb>6<+!F}85W%%2RVkx&<?gSg8-}_$o|7Q51VBwng3HIV2^SMB4MY5a9n<q^>yKgni zSKkG7A2uh8Wn?h%GSA=Le0T1<b}vxytiNL?a&rFjA7^||?4579T5snkMeAEG%RW|w z3GaNx_22$-?8N={bK<6M{^3~LqMao<KS%yySJesiTkbnn^?wMFf7$h7-?sjOQ2B=| z?Iz7ney9C$1!q4Szh3^Q^yujGJ62VH2>E_vs&aW`N6xbs?`B*4XncJ4=6Y8?-xG;{ z3LnJ37MOkGNTJ#B(|;sv%nyEM_~*-7vFfkx(NO+#HeVm?d8g&~HkxH!b<DG0$Dh7E zk=^p{`rBpoCH?kie7z^7eSJ9p@!X%yRk^EHe1DlzoxAFV<V%<8+*Pl(zO1iE^A6o> z=KJ;5n;W63a;6V2)?a%b6uRCwcyHOg)7wL?##|05t_}9px+f&g^)4f{wE0oxnkw7x z+Gqdyo|=Eodu87Dw4(26dus2=y-R!Je(ytP=5>8;cK1(@Pwh57?ZxT0aZmH!xd;C( zIkmfB{?fnJPyZ^Y_NV>Y5@1_dCmOizX|n#^_T&4lS<lPQxL~^I)@0v|-CK-r%nx(A z{nX~|{lbUa8rE^Ie`o*KY^qC+u%LB?<aN=vr#BzH|7?jRwqXeiLqi3kc5+x+AhnrI zOf12p5=1Q#zU!}I&Qt$<{fWmPH$A!Bx%9GU==-S9SM5=&R`KsSuqix@UFVIS%-i^Q z>+%XS>&tU<7L<D=*cf;I-CW-{S<=TSDl>J`$5Yn-q^EqGHq}LGL({1y^`lWwOHz(% z=JRMTs5#NUh^ukA^;)JwjGAtYpGuyGmgJmfohswMeD#zY%bi<q8d+bN#cs&9_~w50 zOA#vmlh>q2H>TZeNwJ$yJ^hCA@9)#zvPlW)oaac<aw!uGkUU}6&~xk!b43&%%cq1s zmKQ=dYaV5G%&T!(yr$1axhl0cHN;ROyD|L&^J|mET~ieDPX>BT+j8O==Pcfd=_(7p zNR~}mv`MgnEh}~MGm8l|3m!{)*cljUdCk6jlU?np&$q@EbC%XfE_q^cdRn0MQyZ0Q z4m%g{W(V$^lcy3F+w-i!WU<UMhM6g6zfH*aHbv>0Q09#Hic=Ya8%0)?``8&>wX3`~ zBm123qz?{yyh69-Y>qa%Z14Ax6S{A=?9Y^%B{{7Om0NncoD>%1w92sZ&dHf2#v|P7 zQoiAgozU}xYM(o&Jka^r=n_(JBCO-{gW5W&6(43)sGM_l*yglM<Eu@d1;63*E(`w7 z;;ti=4^pK4I5W;!2t7~mQIJ1kd1H?DBN?Op9&?ym&qXQeKJT(<7q}^1$ai3C;}Odv zbHusilhV2^*w1_vdhU=ok^j-0wx2O+OBBy5EWY@xL*qck&Q}wfI`0J?%=Gg7BEpmD z=lWwwV^?7HwMAWf3f8EdQ%?Q!;A?hi$(p`>@qhLOxaVJ8ef6&7|1-;8|9n*SNbR2A zn<KKT%=7u;=I-G5BJFP?nQoZ)FfwB2n=Lj^T&mC3>qnl6TobV-GG@b!jTWhebrJ2y z%ol#NHQ^Qu7L(VqZC5*=c)7Umr*gNnn73HHEu)Z$W0SAP`=ft19ho|F*SV6=MV-DG zkJM(ZvstI2{5(h_GA4YHr*Fn3wOOl!Y*=~C79Nz{dGqw%i@yJOx%YBDipxsV`#Moy ze5;3#wUBX7iq?}mZ(}zf+je;4-qI^S=X-T!NzX2P>(P}~{n@7T<J*EieVbyv-rl>e z#QE04Np#Ykrtqx=3uOH+R<3WIp}q3?%nM<>>e~)??oHc1X;bZruk&yH6+gQzd(HRM z>PYU$+q&s5G6K1!Zzm@6e={p*`W>=i{qD96{#CirkGJhTws-2i*+wh3W?!6DX0h!0 zl4py~vR!*VRpo=@vDyiWu}l9==Dos}aGP1<*WZBJvcKO#yf$yNTbq6SW!33lJ`JJQ z=jMNp-|~O!j=1TaFK^5{b*5W!5xYQn#PQ1^DUTiR#GiiJSs3^(Chy))jT_UOUS7OZ z==pap%cgrWUuTPaufDjecDc3YnKCxZbFKBy6zuJH-`z7~nqYk0+MFJFcBfpkyi<#B zJ$}13?&s4cooR_PX6*7%-}~-Y*q_qwJiW>po;`m*Y9HLLV_mYnUbk#dMb4t_)eH2a zUY9@0Qk(I+VE6W?yVsU4GJ0qA;P#F0r}oOGJ)F6(%0TLN%du}|cRug+yT9<&Yk!H~ zzcz23qt~+J&x1`u9r;X;s@30}-eePY=}VFFp0zH*vo47AW?D^{UGsj85VJ{QgCP&^ z{Y6e!ug^F5_Vsz$>l@)OEln%^_Flg8)6Q?>$;^+h3e>+|&lO648tr`8I%~!6JHo5% zzNc8!d;fkBcIK7jLA!-lXT|-TGrjkJ$@9RZ8dk@*fk_vBhTGUW9OYxv|MrDJ)LL%O zh0Dw#bLA4=d?~oSBi!j~A>*+=Zhq(6htC}~*~fTfUh~>%A9u`Xv-?uBvD9R*#ooyC z)12A)>|-+S?)tGm>rL^rzX6FqAO4cObxS=c*woR+Utj5r=!*C_@uWN3_{ujH)Cp~o zZ8>UiVeS9LXW9+wHlCaMcx~z{`>Jc}n~c&QN{ih;wYOa7--K%WQxlQ}?N9H`c@Qg` zv0FdGn$0TPo?}sbie-uOKO37L;%cfB88KVwMh1pNZt^oUFf>Fo)6I#m8{S6U_LH#` zsC};eN8&=)miOC4Tu-$*OxSVQ?PiC#1e=l2cg87q*WcG#yi)G`my+9Up=o8G1(v@k z+U++t_}h-#x?1NVkGdQ+oh<g>yr;UgE!|1Vz~$%^_vsUSy!+ddVrCbdG|F35aQ0xW zXrGE@pTe{QLOvYtKFne}&7#k<vc-)%FE~+zmG5w~>cJq3c}zTht=ShW+9ym&7HSut z`Yb_`-Ed1nkVMZyMdp)+ZDu}Njf*q*ryaFc*l|Vbu@q;R#|aI!-s3WiZCixg8y7C& z_BoJyDU#n%=g0@Sy<x_p55le)9A%ci*8J3<jd@v%`})Z~o<94T9(cWcur;Bwb6T=j z^_Qx1Qzl9!9hiTr?W4_+4SE%dZJ#UFw@bt^vCC*&^I(ZkVCQ3)mLyf=db;WBn^J{o ztu_`MYo@LMc_ce!dh;zSg$E0^Z`0snKe%=43)Z7s-OVh#-Wi(n&64ipD!Oo|;7Nb; zGX}Z9Mh&+rW<!O{&o*2cd2<d_Csssf?qL?%GNb2#!=liG+_Rz;7<G@X5w(!Z$Xn|e zGNI?OqO!t8$4*C{3wKyUEjeD99ItjPe$MiU`RrWd8PW&7-bpZ#xaZuKq4{j<v5yYL z`Kt=f8ooE}V`{FF|HN>%F|kqBvBbdHCP3C=ol|)KGN+ye)*E!1G%xZPI#xcgWMO!D za7u-A#`&E`m7Xn-oe^<VW(mVTOD~R3%_{}%Uz~T|mQZC<n8dY$;Q}jrvt`S&qbFHS z541j8*z79I!6>|lvzxX1X7kG<mv)!Gd8=5xyRf+A@V#{#%?}^HoVfqH!H%7Ap{r{` z^)`QhKmDGJclLw%w(C}TC2sEGRrgLR<|$_UAAkIr;Oy+2sv9;5#s{9Y$t?btU9!`? zJTCF_@^uftO<vYGP1<;dN7B^vC4uqMjC&40>q(d^aK+f^r^tUxl@;GvzOH|+SbFus zLqjz!^A9WjbD7zveZOSWt2fbmx`yN3#b17J-1E1-e`UejEv=g${LbCuEY%Rb%jSj9 zi){;?9gi%V@_t3V{kE!)SFGnVm71>(Z&@?%s<YSErgdLAFRu8nFz?{v)8QN6w*}P( zZa6LR_oztZ{gdTxf8#rUoQu3^XPUpV^TQX8ubhotZf}E6+L>{iIX5i(t@l{fymsq^ zovT}GZa(_u()sn#uYEn&CuN^{|1Di#<7LXK7^ADNCr65(P3W2Kn&AI@)AH`X<)XKR z*LpT@{HkRtJ9&1Wrss0scRYVu_LP2CSQhq%@#P(sA2YnIUoT(z&oyFctI@3%zNCe2 z`<QnX`CY5s^UK!1?di9-8#C^QcRjoNM9Otl`Bq_v^Rs^QKaRcJuu3;K*rqLd$-}-Q zxB9wQ+`Hk&Y&$<R%>Fs2!xC*%=gqZFk`X@|&bsH6ZM?a#>GqK{=GpgG-glI8n8<A) z^ju)JGSdv%*k^9jW52u+)cm@2eP%+4p2StwXWo_)bGhBh8*i#t*<H-~!nDmt&%xMq z_58!84zbEp;x8Sz5o1s$b4Jj2rE=4Tt6q;2rF5oqpPt(Bqe<)YPKH{ceA7iT+bTl0 zM1*-x_;yNR>e~BzmR|Xuc{gWHcjpcl!F3sL?=6m>?A!EZ=D!$qzQc?Dx$|Xi;+Uhu zIDKzWK`4u#@84Hj7yrC5!NqRkE{@f8tZRPmnWeO5S@uC`W~V;qrk_(~O4V+5D{ObY zkSqSh_tp~Giz@5O^S@py5h%ac5&TDNllPe;qN$gDuHNiCb+_+5{*Ox5iifP8R$lOO z75K2?^FhTz*O|{hGh8f{Q}8;+-1af}ZtR=ChW~v2&U$aEF89>>et}(3)aCVW)Pp3< zmI(BgdhN*5xN)LfZvXYSzG>4wvALAYb?KNixubihsMcK3nWwwX=-ltTe(d{|E1j*@ z|K@$(m3Mf~iLIxeMx};5P%4<~H~rjF@APSD{d=~v<lp!(`-4Z{ueqW5=T3h$E%Lr{ z^2w_dqtjJ^rC!S~JPXP&_O5-@kf#`SXR6+V&L_KKiel4h|II)7b?1{`XHM;1u*L6W z)RDi3y*!ONm6q&FovfRGQ|Q&7=^~s#Q*8O4*@;}cy?6DGI~&b^PCZt$`h$b!8Hf2^ zyEPWseiwW%{#JO)X{B4KC*A&9g*~jUxnd_{y=}hmyZC>Fx4p7INgAzGni+D^uJ&Qd zEJN3#O!Y(2%Ug8*q%HN&pOW|ZdLqC5``J_b%I6ow?T>s}A*%5|`~I2}>+-`=PMT}K zE~(pax!_EQJYP*GzuUasOB%&?E^vKz@-m<0wv&d1TXwtl%{94TB)(;iR;$zlwZPw+ zb`vZ+_@}(eZ#R3qzN751eiffu(4x&NAN-v&ZQ-f28$QpT#oM%1y1r<O>rZ*1Kl~|I z>;HMi?$g!(%e*MCo&`%iYGg>{E=)rMBcyGZmIg+|_Oaf^+|H9W7pVOn{$ZmgSNnHv z0Tzu{+cYM8na168NPpXs8%{M>Z~5I`|DGrKeAlH@N-Ils)VYs*N%7=6f5!63yGfIl zicBh0Te`u=`_J1M985f%;ZvQQ4W4fF%F0-D(csLEh^I3}*?JGmIjE&Nle^44>AJw` zDX9k&%30^RZZTokPAJx$5pZbn(u12iT%^^u@Mcu1^*9(<86=usYhq5^+alPLbci`; zgH8n7UI~|c*@zci#b1&RGV(`cCwd6(jre?0Ga};QMQ*;8rfp9dmV9G7c0i-{fE?c} zmev<@le?^C4i_&|5ZI#N9_AJ<rPFS^Cvn#Ci+k9$mtA0Aw$)YJV;S#t1GfO5>h?IM z0s)m{(lW+ex<@S|!WOD3yw;1FCE0&6^p3%5gSexOT)GpCIc`N2sEP(;&*idC(0ryc zz2a=s(vA8CZ)HlD&sjvUxi>4?F5%GSo#uG{z_#*0UV#PWg4`cuTim&WgcQmR*o@v; zR5_lS>!yFga=M__q;sm9mP{ypXHn*UYv<(-u}bmzZ7z>k+xXNB^yj$qd+hyi>2Sme zTMhBuia!_JYf$T9<GaA}YhhH<5i!$ap(cSTcNQ84Gz91^lTcw$>vC?CURZjBTZ!TF zgNz9!3z>sB&tB-6*v!&$afLCflfbbf4Gx@#S{mdWxDFMy3NqIv_V$F^&N7Q@y(r_p zQDZ`Lfq-!jTa|#{W0{ZxiwfKnjRIOe$f!5B?P=(|?CZR%wVZ7#_acFN%EzTb6q_FM z`Sve+n87wjaHBK_vwHjO%5OckwMXautNHh9j_uv#`zF`hf8-nOnl*3!+gGt$wad>6 zfBW<EocV77>pwec&+R;xB+l(RP33gLM*d63@7E`6Y(MI)vu}BJ{)QihTkDpp>A#G+ z{Z>{?|JE`8O%HAd{n#e;Pyfmf*}vv(U#9)qmvQ^)!SbaaVom>SPx*U6x+b3M{`%(s z>I-|e?oa&qd)0$D!F&53ZMC_uP^2V+{TFZS?bR2*$XHEn_dToJweI|e9mgJtbaRRs z>+o&ZaVV+lsHN$?xBsNN>o@FJFmHQl^_A2s5C8YXl=DqG+;&TpRnXo04D+5NNj@9+ zF5O6HNpmxt6Wo7e-AQLn@4!=~8pl~)w`o1w@bqBN(hWineS(E<PuVK!Zs=a}_P$wu z%G@W8SC<BqhOwznIe2=@w|u9a3oe|wGAn4$$=X7f1ig$0g|qeuMjEaTuiTKMx#mgT zb#9h$F2$YcTUQ?u6n)!c`*y~n@a*ujKDnx0zdFUX7<(O!J^f^_eydfv=9RnN4>@}) zcVr#g^0~@O<NMBsnG(4f(re;vOaABGb3Yw2nd?Q*t^W5BxAXM%StMTfah_6Xz5Zvu z{6zQpI!pb<E}1VZ&7HYV+Ur4yp7_oSp_(P3J1qP&ANg>+aMjv<+r#bUpX_NCGJ=`x zNABd_-7cGCwRqX`ySK6~ML#IrB`4ytli}}Qp-t=9q)+})DXrLI@`&kBa+cMycR!6T zE;YJ1`((<Lwi{>G>MU#6$-T?wt%R}XbyxT1YULH-c|Mxv%i1;n%<Gz5a#1$oRocmE zn^LM1Ugjuh%vK2ZnsB>kLD{D>Ck~o!?Y?feB>Vo=12O8w`=(g_ubh!BAAYO)R(s=N zKR##8_C#a8{!5WpzgC#d?Y?2-@@?DKz|yzLKU(6_*6p@kQ{n#lRr#hb>n5z!IJi1) zRb@Q?y2&PvvC=_jnY&giOf20kyy!Y-mDf?jy$<~uCx34c)!e&%YT4V}ahYXBGpC21 zIbEGp=W?!}{n_*x=TH0TeO}d7c~$$f@2)`eGe28?UV8JyX#MIL*S{b6WAOZa(!Tqa z`KxB!FEC#zDR;zM?g;mbEukg1{=KZ3KTlnM-l;t9jiJvIM3-OiULN%E)bT?lPgflX zU3uW^f~LqSk*dk|d-wmSoj7OuLsr#$0sFkBm&Pw`;QfALmtW|6wfbpxJU+pSKF`Xe z<nF(%V?D~PxP7M7dH30;i&s3VJY2h_|E14<FLNihP2DHr<id3K`ri+DE}Ruw;Xh%| ztIu50?|SYoIb$X}f5*&aMV9q{`fIK_p1-^2mGJb{?14+$w@TOeRz=mgzCP+`C2tmT z?AF^Ca)lx)Ti-c5W`94|7gQ*}?DRp6+Fw?$?5ywn+ZiH~dapYqxX^#<sxFtS+MQ<| z9;K<g(h|D<E+cl?_xrE=)bD+KyuW#EPmylobpFpfx1V0qvSx2)h)n#q(jraYsR_QO zQ#YSk{!Kr3`PRGU6)KZcSBGY=4#{3!ylaEC+3i)<Ptqs64C_7^+IjG+LfbdtXU%+a zaqRoN*!M-Ti@)6dUu@e&fA+|nb{(gwI!^rl7Rz5Y9!Uu}5~ktwah1N($1GQyUHlDo zZ<z!`nFOygS-!NGaf3}Z$JBFEmrA7XB@0^>S-IcaT-ZzFwL|y5TJT!?eSD``mDQ%0 zpKZ1B&AylR*vhSat+n=b+}3+v!`0c=@<+Xoe!a}=b$0o(+t)Xr4!v!~8!8iY|K;^% zUw_Sg*~6o*6rB;TAQ-JWaqH~^?JtijxXae>Prl$c|Mint=PmiCufJ^i?2z?#(i`8^ zxBoNnw6&bVQo)-T61j`m(7+gJ=Y*x1AsH3CAtzJ&_J^z-Oj~@TL^1*v`2Kz(?k?`$ zp>uN5oE?9Eox5Nf9uru-IpyTGhBnKGpNwpZ+fJ*l^wJf1?30x^GwjRu<ZFyfnlmQ% zHKaIoH84yRY~c~+WBSyw$8E_5$qkbP%u-n9C|vU4e5-k0>C?lN$)~(dU1kbgu~7AL zl%!L`iMHi!jL)yIn=#Chx_Us8!+Bdnl7i(|##xO_S*$ur?xhC}8GPR^+{w_FC2{h= z?FsB>3gkZV7#|9fKW41#Jn!il4F#?>PES<7C7K!w981(y@;6<Re5_Dvr*KEpS3jfE ztW%x&blWGS&zL%Ajr-*_SB`9Ze&$v55&_Fs%${4+dag&iB<`8Fr*Ynd2L22BeG^jp ziWOKoCRn+&Sw6H??9aO#;#}~|;bL&fM&{N20-4WtUYU|E`0#_E<+G^^i*8K3ZldHc zzgk8{G2z~+4_6G{+eSLrJ)d)iy=2#ewhCqw3B`gpY<Klqgi=_4$tqTHFLZvv8tTj} zIO(#(<UKr^yd@XJcQ)6kPbo{`zSPI-(JgRSe+$>Q<Zh0G3Hcff3s?HLOiRdM+$nTx zQXZpe!-N<v3%@Imby=F`-Ex&<F>=pYz{euwb~S*5>B4yyQOD;S&8IXm`2J(L!gS~W zbC+WSr@+;Q3m0z~2u5_BakS+qXw-1uTj^}JK#9d`;w}eI4(27Y4!#N|Ox4bT99IH0 z5;)n^7mK%CUBW2D<79Mcfk6weve^%gg%4RYLo8j_J``Eq)c)egy*Z1H@vL&T=s7xh zd;ZPY_BUt8FPp#Y&DrX2NriuB{*(SPZSl(|A@j9<CC6_nfA1GJM>G3FzwKiU7B4@| zK*6b>oOT*d;rUzZ>N$Usx7WGkd#0+*B40HoPN`X#A|~JR<aO@u1IbG{Rk^*~ro<fC z<M`(5xjsYH%MlNfzDC-I{S^B>?+E+CXRoh*y8Y&Nmbz`<qs>pVzOB9yX0Nt)%Zqcn z=DLdO$#1${7joBVQDIKnr~ONgoK9nWXvNy{T1Mb`;FRZu3m%7T>OS#oGiR?D-{-k9 z&)%Ci$GYw9PmT+?UsK9)zCbE^iBHV(Hz9)e=3Jk8<9)8yREe*aeA&CMol!E{n4@lU z_BNNk!oA3f%~MvbU-|HJiQ7wg)f;h5tnI4mI-m0A1^sO1X%TA@o6DkGrt;!_q0HhL z<`%1d9Spte<gjUSLrOZMXz_QOU3ns%mB*59Zix9er%onj3FGx2QzL)1?e5!n=e|kp z)(aC}El~_zzEDW{b4ihA#k=EzqRtgPQnwZ~<i9j3lhoDO!EyGE$<!-Kf8WhIUSF1x zJz-M7RVV#PVI{MDl3K5{zg?VMvEJWft+i*wbx(`$julfo9|tk$8Cx@*FAlSjxahJo zL`zlhh|0D)DfhzfZ=RPtPT274P5%sIpZIC56SwQ1-m{I{+uwEV+U41&4}M>1bl$k_ z+vlg;o#Muqb>_z8Z4JoYo|CpcCi#n1>WVubXWhLVv8AG(C+O-Nb9u*10pFL?E8Xub zk(#yK=KQ6=uf~V;RzA;T%G{>4*JGu`@{cAxd({ul&@OoJkSElx>1thCA;ZB5#tU<P zor->=e`R4*cEO5;d{-Cp^($Rjs0Tv!L7%EkzUq6`Eq>yBhWkanSKZPl%V&J=oFuRD z({OE>_<Pm6`_^43@jP9+F?khR?yGBV<&0OlW8#-t^PK*Bbn?ow6_!^jjIMr6`SkIN z;oU1U*ZaPE9~{-)S+V8$1>@3%>93shm!EmR^7}MtbCXp~i$6`dwvE5fbJyas&CfYD zUfpxsxmO@sR`FZlp2D2DZ*s+NKK~Xi^<sUARPo+z?3Z&6Rtl#YbpF5d!}M=%?!$`7 zx)+}Oo_}IW?#VTG8RjlEetFcE<DPZDtl3um%e*IN&)B{qJvmaY?kBf${Hm4fL!;wY zpWAK2FK)Z`Ow|6aiTYQk1m2x?@!jt<R_W>ft+pAb<#M|B#{GI``+i60hVXAb(cjMK zEw1$Lc~`}E|I*1Lp})@lP+d3o_T48tu6u^<u6i8WZW1yhceTN8@7B<}l9pZB(;sCW z%S(J-yJt_G|B}x|$G1*hfBRzjp@-V#%|gZL=N6Ydubp83=}wTw6BYrfKj!xrNBwrH zy!t12@xnDV(UCu6&vorwzqT^x=O+tKIrWpT&Wha2G;ht%R;{a9y}ta}H9jr3m*@T4 zUWzuq&%A6MA297()vd4LL0Rn*TACTV8@H_8-tuCbx8^p{@Z;Z|a%W79D#*^2O?Z*} z=S-bYp@{N|qL*>IefC>B-LhEpS4L*%tI6EuE7;xF{hDyVcI)EM@bY6%UY(n9Y-MA- zdDq67hMU$J8rg5myQy>a+L~LBTP~&ki<`q6uGf35YwN<uPD6PmcU8l)=C3lgR_*Bg z<o|0?g~7&E%aTGx*%x*9$nyTYcDCv|d(Emhukw0!?b^L~?X;|&EA!s7^UI0}RNtDa z6}$ERh9lWwm4e#l(YJQ*vfj1s-L`kNW({pGPyH~=TK0GSbnnCdI=4N79^XCds60zr z%Xw>P+pUR4MdsYcUpf_i=;*VKy}O?O&a(R}OP+80GSReh%JMhs-pwoT+wpGso1_2F zF4}TMC-&idw{_2c$~)LGMfpZY?UvuqAI!z>KPB+?w2SYKpWS(PqyB2|M&}1_>@Tx6 zEy2<@Ff$}_m%E{Xu_a;<-O_~UwJvX?y+LbT_WcfjFr&hVPdxujN>S16VEx>_eK#iQ zRKIFp<o@Q%_44U?42?}50zpY$Cw-XKdkA#@-N&ClDSN`2q?qQ^Ntfe~w-ja+^ocj{ z9ON-i$w=dQdNlsPR0r>n3`<`z1B0%2T%FT|)iX4Yv0nM96SeAGd#bcA--)@bpEOy8 z?*!PboGIY&b4j98^rj5~i59jC8%}yn;#a-6>4~$Z+SDl}yvhO7v{uOkFVLL-%;#g5 z*R>|i;OWavgSYAVOD{7N*kYi=+cnShfB{q0HIFSlj`D7XYb|~ni0S&SP;k3-W!h7p z+qc?9eRg*#Il12oTp^{MvS3?G>$IinG6IX99QI6eakZP1<d*g6p^me{%4O#iA4GVb zIX!cusAGFyPO50+EXA6yv4__fy}0ghRL8JO%;5OyU$b1iPYG`kDQ<gov}!@<^qv~$ zP{AK;lI>g#@06bhXf_>Gc%2cY)mgDV=C6cc|M|e)j>?`1bA-MsupUdEP|cwI!caxt z*ZHZEz=78ncrWqmzcM&sU!c7*MucJ3wsQ^lSgPEFRU6b^o>{==P!JhEH6^O|UI44Y zlhdKzYEC_BRl>{k#9JGdEiMY=RM2*m4B*O;T4m+dYO2mS`Pjvh5aSSL58oow8Qe=4 z`|cTtOjvh}hm~=a(ov}pmKC!Snll<7Es<!R#h@z7+P{cl=?YDW5Y`pqP8<C)w3xWG zdpB*J!uXJ-_u@kH8nF$DS1K<`Z(}Ozxy3L=a$5GpREJVaql>d2hOl>kVtC><sq<b> zNon=!6*HBpGlIHRzb^9hz4qbNlf&%a{^fuB*MHo<|IJ^^>dg_c7x$mcsQmq-K<&KF z-}=*bbvBj7iap2vKU=g)%k!k9>b2<JZ1EcfFW;wo9h-6|xaeiQpGIVW(WjqjQ_g5s zE=hT{S*Mm!eCn!4r%V4$)z650^Y^y%^0hnftxezisdVk+-CwJf>r)@qp8wC!crVTI z{V%8YUCr`8736HXO82GzHx|9n%wBKCQTAzL>ni;n4xXVh2M*m|VffSO<l6H_AFu6o z|E$MW{-&0ttnI2yUh-d;wJA@#Xa3qW?XR@R@+WGHK3u!yvKo|39SnCR%OCn%5Osbx z?~eRgvDc#v8?U|o=e48HdUE?6p<^2>^lGo|Yx%5n=w}?Kf2v)F*xnA#8Ox<VPitp> z_?WR{U3-el#FQg(s+S$=Rwy4_P&vib=F~K;bG2u-%PoHHEWJ0}Zdq%8%B%IhHIA0G zhcBBs6m`ry{(afU^My91Zx8O)dK9}f+or2B|BOvgNB^vga*97^8$O$~xckJ#-%;6p zHPbTB96w^ev8y{u?pD)r5yhNcOd0ICGV8V3Z@is)eUa^_iSnBld9|LtS-iAT=jy!K z90}bO+odIZYu}40Xhdv3BjkMe$odZDHEEqZzn{F*?9=@ut5?6>v1rx{!~09qPp#g{ zyJ2f<z+%^!W0MbWTz|mkUQ)y_>Hh4`%eNNgdzU=xDtQ)FB6i^4(jD<#w*zF}?`=J9 zzU{-dKEcFZ!Me5uY9G(H_UDNDbE`YgQ>ieBj?Q~N?-MJ><P5Xky=RU0EBy((_Wt9& zvnhY?#s521%Jj~FasHC2LQ2-n=Wd)cEBkaV+I*(j>^qfAKQ?sCTq@;|zPB=N?_%DS z_O-e0AEzX4UUa=Myzur_kMoab7QK*FE6gvNDW9W!FJ@WAtj*6`SSodHPM4m0qI*x3 z%Wtdws=v-E+&ZmSVjuYFYIo`<=ZWGwPjs7nN_;8ujq!TY%OlaxDyK`=9@l!u9T&RK zNZe&6+s3`u{YzJ@Ja#*ON#(cLTh4cywuLE5<;|NcS;Us#)cw7+`#szBd;a?IqP7>s zZ8u6+^&0Os=-=1JKI`|o$`h}d_AFodhyUhg#aXHGv!2Ff-jg~w_5I`g>uS!<O55MB zdZ{O8zD!zsm2UKn!#1jSjm%P3`F#zY`|IMW-5;}Gp11GjuvecVk#M6VJ34OeiRn%6 zv|0Dg7D@Z)l>f~8r(O2jaM{DY@j2GpA4wa3thBj(^Vck&S3Z?b^J9*&N3`EPwC&6E z<%U(W71M*Veg|cJcX(;@&fwLV|8nM`xr*sQPk#kH{pJvwobq3CMHaW^<W=9oO=CZ< zo+a7Rdetx4JAL`#Kh3X2<+;)(25eJg`YrXuY3}s8N0(=~-jOjcJ>A49|3T^654i~I zX?GjlRx~br-TU{)<uiZoJ1ebRr|Yx&u(){l9N{J3^sLrf|10a8QnmeEsbBwstov7a z3wb~CaAu#czA}%$qJFN^OV^{*oEJ^mGOg3U<WRJ?|7-mja)(ZBYU>hrJi2>9)R9?s zJLZ0tk`8R?eQ`+b>!nwQUfyB{r+@!c^80(b`$D@=mibzN_X8g+?f!5nw&L#5+2<4Q zecSpv<7>Bg)|S_Er293yj=vE*KX1y1EcZmyqHP?OyQPbA<v+^t6s_a1yxw{z_>bEs z`@e~vQzv|XlIhJ_lz1|B^AfcwbGv7r+_vtgKw7Zua?j5$)jQsE|Kr<Sd4lQx!T)=@ zqzf%fvnQC8+}R#hGqa{vXFhk_IoB;|9(z?M83tzl-j<!w($TwMzskLmI-izV-|t2x zEZg1a@UHJv?VrrQpS9nuI1rf@(|jkev1h8O%&px!|1*l{Y`cl2Ens12M(kQEQ$$n1 z*qrF?yH{u4_LFfJXnSATwQtK}j_*GeBBu#$m?$bKux+CLj*X12+DCObCs^dq|DW&j zzAti<t!cN1%I+0&-@W?v%HVSGhMO!)r=DG=@&3d0tkgYAA5A&g*cI+qt>tMse?`hu z@0LeBT<ZchYCZE&UGe0M*pwAT&kjlGPt&emvqt#s!xIvx9p6vg*x8+&_}EAGtbzwy zl))*M!xs~#b~dhVVOXnD!6DeN@0|7pt?VO<ZcWli+T^#TBjUidsmd+ATRIZH&Jrtm zVyi2(h_6+QllkIBcc&?umz4^;ma;C^>I;#a?45K&($cBm$^;dM;M1pW&T2}UQanxU zs8XwGpU{G<785+hbuUM9Z8`FEYna|cb(7^X!fd>DT#DQ>mAOi$Axxc(X+599E+2{r zF-pmDtX%(AY|Dz86=G|O6J~L7Jy1TJR9TbM%cW48_LIBoZSgYJRk9|<p%Hm!V??i5 zOQdaI@PP4VD}RX14hQZjHWj||D=JsW1_?NEm?o~M^q6KB@OgrgZoub&%W)HSIe28e z(0rTGILp0+uO{JV#st3%SJ&4WjR}iZhpeb9S(D&+HhG0zz-Nh7{8wy_IdNaHS>`qM z#&%Oai~gm@8fU4$&1`(45-Y)eiX+AUtYh+Tkt;TqQ>3GUPFe>oeD>08cZ1Kw<-U$* zgI9^Rd~V5W;=f`ubylp1<>utMZihBG?ztdi;^6dIYxnJBPN@qEQd{4-DQ8}hv6WpB zIko$_M%FxUy=eXTRpRfjcJKY!zO!oM>UptuYaZ_ZeEIdwKS{Uqr8nnpKU@6u)zxd8 zg>`!VzhvQ=mo)p3Nnri0hX*>p&8oj2_{XQv;p57`e>xx89)111)+Ed&`TE5@3vc9` z$V<gswY%2n=cKMwa=PXH@`Rv0xu5TCO|G8%C+^7m_o+Wt{%G#7*ZI7^((9kbqkieP z^P9hYZr15g;Zn-o(y7Ki(be%uZ`q|M3SAl<n=Y2EI$owx_i~9@)V|j*ddns@)E?@~ zG`nTPRHmK2UHa`zt-dUVy>I-^y)(OI%v7eIE}yfv+W&yulQ)UN=4ofk3axM6eIIyE z?)S~|TT|}FZBSwNR`x%lx+`s?J(t<(#Lp*;^R03w9-cOF`ty?;!cNaG|FXr*BI|fx zbz-l~HJ@x|#y2hMp4Mx5SvL6by<WEUV4?Kd8|%gW-+a}&Bi%5a{lW6B$J&@UJ~3R& zE6Q(|eqXrw_1&i2DVM+6TKc*B6dl?3{Lsse$Uci3$NJ>?H=Ypm{{Q#XBeT~l?uPVP z#m<?wpH+HyzAew~pnJRTS}7lw+ufWibo<oC-0;VCeBWBam*zb&-KzBNdsC(5jOj6c z$1k#4#!iUwJbuyDGWN}`^|M^2KPkzKJuPeYW~sQo@V?R=I_+nZZX7KxJNqV4KWE}$ zF~c|KKFGfOH^cT+_Rr~jcT0c%{KtKuCGLY8-|lbGcMj{%TrLo8`SI5K())^B)z_>o z7fE;S*b(-Y_kMWotJb+663_Lw*k-8TefS}0&o|!NMxSTA;ky)hxx}&1`Qy|_a~|<` zofo+-V%$|ZyCywO`eA<8>9k7oZMS{=!q?PaoEG<T$?BlIE8@l5e|1;7{<>sSpM89t zMqMuR^w+BmmgWB0%ll*5(x)Y{x8&`&)`evKeRbuZU*WX}cJ@==MJ}Fa`aoE=Wc8ua z*C%Et*1fa2np&5Ax+ePJk2O!9pHDq4-}ZUBI?LsmTH0Pyr!IN5g|+J5GhM&?r~gMk zo1;<eH)-elb1zpvd|C8u{)s#Nr#Ju7uyT^!@we*y`9l@=ly*t~UfpUWeQA!l`1J2$ zdv=zG?>Uw7Pyd*B?yEJfg%__`M9;IAj{EqIPhYR9`}LzeYwK;#T*^KCk9qa}Usw*0 zG&V3K@;C-V14E>~ow+5^C+573ip&>r7pQw4{zcj4#FttRj+1X@IUhWdkSusoKVf~M z=;N;&xmEVtg}&WURb6I#`SR{g#Z4@4i{ihA)?PKWeHs`Oact(JNyckGEKi7Xb2QG? z<!Y-`4ES&+yVoh9iJN`WBn8RlNl8whZlpV2dM4-5$0_^Ug#F|KIo%lrGUbhHTP_z~ zG0<drx5(Dx*kX|xU!0m!R6GLP8DoB};%~@ow(3cinyQ_5km;SkMpo&b9wCXu9EXzz zhi%^_*%~`7;*&5qw)lyPaoEC%eummSi<;K1;gBh@IKHN9g$=vrgL82P*(Gl-EBw5X zKBJVeywP`Uc*auxGi<G&n^;ah&ImXYo7lKkCV^4*prQJ~M6UuqAq^%^gXOLcp3Nz$ zUTv1#%nFqgCh#9*E<V@9&th@BGB1!xmT?6$X9)|p6-&Ugz==%D8iISR8uImd-!ZjR zOWJrH*dbOZ7nBz$UGUD=g>_D~b|LGIyVgBYjB~1=%f4U`t~pR}@NKQbJ(dEw9nRJa zc>)q~0=zmN-Bt%W9b?yW=p4}yJWzRov6SKYL8XsO7W`%l_!g)$IJ{s!*X-`k#lShQ zyN%(cf}3|k>A}<znG1S5y7q09*l*=jEOEd}!7L%Jpu17Ap-NybOY8yL3aMt#hOY`% zN7zlc7O+oe{Hx&ho>@S#z+1pk`iGewbFP!?1OX<eBac-T*cxW8;B8`XQFoA@z%0Fh zi!)Kdq2EbxE9;$bCk2MeiZB%yri=rNRTM=Wj%-#@6l<AMVW+~v+_6B;#b&P5OJ^U4 z4IjSC*{AiF-CX>9@?Oqrla%lJ>GB`%zbLSpHz)4}ui}D>{5K}6e}5;hk^XSM^@BOt zIc6IKujD*o4zy|r?zca`(eltUZZmn0Uma&zX1~8u-g#DiR=Jb!obrmT>mQnwcAaH4 zGoEEI_xiuNWfn{0r4t^lSI*gYZv7wC`SaCm=FB%;v^IUq>#q@wQwtyD)LpFU7vw*c zVH9dI)AT}#4@=LAooO#7gw1=_68pMG*lzN!Zr1PemmjsHZ#m!?sUjjV`Q^V$ha5lc zd-G+_n@^t@ReWE~ywJj1bnfe;^cy{z3*0{^=dXM|V@bD-!(wl@)5=-r7Vrk91^xOe zb$G%T-;+Do?ks-#S)cPhtFG1J-ea15yDpxVd-1fXJbmZ(S+B$|EZ<^sn)!=Kx${g} z-{7jiLT1hTC#UzClsQef^waW`u4S~v+1&Q8%DQ%O7K<L=QNMn-S5<xIZ!Td4E3Yt1 zFEPtk7UmB+8vc7SyKgzTb$eRnE$QGs%h)=xyn=w_@9ldxJzp_t>cyy)fuUDcC}o}F ze4;Vk?&->muhxepePzY(N}k)L$Cu4D;qy8TPyaofGpD*vSYq&M`#a-@J^TMTX4pM< zfBGbyHzrneN7dE?zUG$}%bOIOUZAu4#hr|j$BQcVG`#t<EYdzXX6C9LMyrp8&MKd@ z{Mg0Vx;3Zz?L9Z#T$Qjn)_v!}I~IH6pXkfUe~NyZYWGyBKF(Zk@nXyU|KbmCe%R>t zZT}0;ZL5`TuXX#j{m<6iS?cqxkNq~@w<1h;&)S-^*(sZUhQvwf?bC|+^Q+joYPQwl zM(?b5Noji{l|nAc{adP2c>FK_O#Pq}CHwcUzQpxh^X2}fkCthzSg}%m+m4l7r(&`y z3$te%s4Gl<S|I&&-N)SPj-i3FA*ELx?<aqjnjNl^J1KkHhMS#*5geXjj+1N^-+pgg zvPxm4n8$Ax6}f}4IdMs!qvwQoc!xi{q`Tvu(7ITqcbaDJHKy)aq`Cg&QvKfx%tBY3 z{S|n8LPdPXt+0jLbXN%f&A-hku2d4r5zBq(#aUaY9h>-TMV;<9ec*MyKfx{j(v(`K zA6jR%k4UZB&?dI#JjVyKxnC0Hc2+OVoPGUyZXB=Sx7_JYF%K^)bt&+5UY3}vpRw3c z(<PEW@S20ng;U~71ww6ILYY5me%yDRd-=NKD|Z*Xo3O?80GmtYdKpb0TffV#n+s>K zKRJK@WS6hh-M9UBuO)Afy^&w?UZMWLvI5O>q3h(fy>7ByuxHEWCo8vlUb2?Du_U$m zAJ31f;6J~7U$)y`N#=ijeBb2zs%@1Q{zm;;ci?rr*pFYmQPUWzCaSpZwOw>VZl?U3 zw#t{UwoI4*ox~hgQ9aqTWsmZH{@=}^UlXoo@vk+t6I-%wyVLiQpK^EkzJ1mVUv5_K z@MfA+!Yf__?yWO?jh_1c(-UQ%_nj&2bz>_3osx^U&Up*Y_Ku6Xbke)_{O6pTGd5jK zy0XW$_K<D&`?ad~A1#Y|*uKu`T3lSG+~4i4>*|(zUj4K&e$^&5la(rVx-QDAFPsoF zS!s6v$L?Q={|-JhS-)oar_5E0|6dJy8@s_JG;&dtj_3W1=~cnui7)>2?fck%b?1AT zDDPi)GfFZ&>)$PYS6?Od<X+IycySr^+U}|U_A@f+Yc*kZq>POWi9Acg(7+I>CuMFz z^uhLTqoVUe%mwPsum7MN68h-3tCL6W<Vzk?oIJJVK23Tv??BfC-ZyG3_4g&iCFS$? zSlan<Nr$M+iM)OM^VyomAAh{j(v*4Z<Ec60(~oeYlgaIgLE0iZo7K1)Zzebf%;D5r zw8X)PQT1%g)W9MI%bl!~(v>1&Lb)SCIi@7ks;YP`aFA@ClzQp3g?_`6f_aQQQ46B3 ztToLto~6m%<xr&HD$6GKS?IS;R6=2DhROf!=NnRFy{2U@4Q%ICV7>Ct;_|VFr~C|a zSr?VhdZ{2VwOB!t-)c^}o0iO1CY5%pJt=OhH6$m<>^c*jwx*|+QKh@K(fG0MI&l%> zM&+gjGoLaAva(Nlx<I)it(94}i#u&1+XR)(Tn)`BGp^e7xtWQ0IkY>*YaX0gx{+Td zO*U#tOPXI+-z4Uft92*X6r0&G=2)`_J4`ymYQU&+*rr`mA@W&kZ%{&9Q4GJucdog- z{~fqC`Wy4NEqLN^Nvee5`8~zd19BdPas}_0g;q5b%R9+z)#3OupXpq4K?lP!7SXjW ztW8E1Tyxq_>|;9D{Ee}Mfk%NYobg=qR12;-?Co;l58gbelwp-+{JW;%v%n(_0ac6d z8CDbYb{yCdd|+2Y$HA2j)*X%wat~q))(S`o@FzWCpCNw7&Asuy!;u-yCzvljUKZeB z*AXbaLEk~vjxCHkhROAUnu<G*0E0pn`z-~gmX4C_4=V+v)E#7+GYVOG9T}9WSd*k& z+C!2;I37M`X}sn1Ms$avrO}#&f*U#?*D>X8sJ?n_vU<*Q)7zD1_A@rmjs2EUSh(kf z+Uc8ra-#FO_v*@TUhcnLPF4$4+di3-owIGD;7|9?vx?Vc{{I72rs+3)Hbf>FA5QaQ zzW%v<Wwn!k-GOC`SAP7s_>xn9ciEa*n{<y!O=eq{Sa&4N>p|a(<d&TZe+uuZ=dAnG zAN%iyqWPS8F_+eK-%0nqwO;<$!)uZD-<EG%?6IwOiTduElRW27)f6<ZPzf}fs4@Gl z#o5Cj=eS)y{`8rl<>~UXzD>f}r*E}i_M3CBLgi4!bp1I8?bOoeTzM5;`NZV7fl^9H z@QD>hM>ub87h+xh`o_#Pv$lISP73<c^rptUHda6I?y0N3(%C03`aXHF@6*<4%XWCm z2S0oHsh``*U$3ZZcW**&i?{D&Z{Ke3{uhrk>l*6&>$dvVZ4IrnRlodvXS3MPCzXmX zOI~-aesYB~vFdvQ-|8v<mrt3x>r-c`PucmC+L3M6%Tv7~t6g|@ER!e*HQX?5-GA-l zTc;*xODw5&G0&R0<X?-^_Y#c>K^(lx(~O^Na9$|W7%we%d+*+RyC<Igw4~7XTYBEr zQzvJ<n)mMGf!>QDF`ImTW^JAQ{{3R6JDHXLl<Z5>DiiH0{NF5|u6!Z?OYQZLyXC&8 zYrlUx5G~@>F!gNN++FWhezQ3(8^O5V=>F_gua{-+%nNInBW9GSC9v;{Y^CSj&HsJ| zWG~Lz6nOXSu`AyjFT@AkPk+_@`JVlfpo<}Qv(8*to3_V$vPo@*ozFdKy-k~&s+9d5 zqbF9qJvOgto6^ghMXP?#HSqsbQY!q;bKb@D`@ars31wd<Yh@6=?%@0U{)=8Qn>eTI z?0^2#UtpD5OSAil-w$>FS<b(+G-|)luDqssOJ9{#`d8}Tjk~|CVn=^rPw`bX@udl; zR@g3k)qSbULv!!R{l6<C7Ft+KUcT~~x1u|4^Pw--lvi%jaC((0{PmNZM8xmC$C)4h z?>S~SB|dh|!h$bb8D0kYmaME^n!V4`x^zR4Y@O+hy=;3<eZTh9d`)<)Ygn0d^!i<0 zM;`6lU3E3|>gv1|akZ`yi}mXcJxiaI)Ux-$v-K8Bg{J2mQf)6#ed){itT^WzN5QN= zlV(}$iq34wGIHXT-01BPm;9MKa#NH2x3|f~0_x$5uKBL`TD$OFU<l_86UKA*Chb@8 z_|5uae<;&NUxysq3D2iG#0XD#lT$gl_?!7$mGhiujdT7jXf)a7pYkr0>6>puE%$@k zTkqCu9c)!ANaTpo*If4?>o!}{_UA=)i#041u5&u=abLWiv+&7(SKTAlGUiDuK1Duh zb*PfHS-Ou^cKY#^2UZ-_yS?#r+MC$8&E^Nf-fjpre&fBW{F%zq)5)tESFOG9Htfak zO^?>xYq0xe$dV#wzaT&J+-EO~(8=-ZLqZmN9W`Aa>&GR2#{Xxp>0c{@ssHD<&9zap z+thGFyXOD&b&l@Nrd6Gb*SmMgxpwJI4tkUvY4F;_fAQ(WpkpFwX_N0;HEAxk+57A} z=h7#eH>ob0@^t@`{brv2J=MJv>vC<h*IliS-sm=SMahJmq6vFuH%|%-uf5N+@5nB% zV}F?)R!gqKQhl137$J>A!fxj>w}h-lB4STxYri3XlLJp{d7bO=-4C;(E#6C*YII&a z*mBk)!{Ja9XCU+cdxwjQ3#!g~|K1zkB*t;7<==~4USiQ74>VbBZhgfziE~r(hC?r6 zH)L6?ti7JC_El!9;Pa~+E!I2=;kmUT^saYz=-CD5uj(;z&OJL_KA}%9x+$^0ujUD- zpyVT;XUqmOUDfq861`-?Pc7r$BT!XoQp&SCOVPBp`Ms5@sbB78cjYav&t`uA{B)Vu zy-5K!ld%Q@avK5`2(U09A`pxNJi-kE3Z5GsaAamk)?j^z%@Pab*<Yw7W|rnehxFT- z=ksqFh#Y_aN7PP@z51W*?_H&9&E8(wC_HPCiD9ma$2EavdG&vDk}?#gFr{8v^7GP> z1$OP{fB*V@kD2EkBb&MMo_$JMch>H{({r!i{r$Q~CJk2}ZLVX%6B3pzVF}7|5oLeO z<g<vs^y;itu}AJ7pFdyu=6)8FyoY&t`7s)-BA0@U#5tK~7%Z`P+cZH!$f=-Y>efh} z%tedV=Waf8J2iRN)8(rS3<WP<zGl`?+}aXQ_V94Ydp`5!f6pqW^LQ>|SR#|?_Q!tl z)nJc}e?`8T3YPY7`YU;mMQxJ1Mw`=#cS?Gjc4cg+*E6{&B=2!$nwP>uk79=0U0c2d zEsWE;{`8GX?uP9d&3Ris?s+@C=;Avrr_WFRpMG&)jN95-CuQ!J@S3Nq&P^}Qj*pDK zcGdB3$L24OT~C|+(mbQ2U%#dF^4tGwi+-=m%Rg(9W?|I3vdCCK?4qO4`AHR;lIzxe zIj`%y<@jI2v*Nx{VcO@u9(dUA;jA>-p=S1uTz->l%x|<08oMphzMOW=n7jU7j+E7d zZvs4hcUXkZR0jM|yjNgfu<hE;rP)t^8_&Jo>bW{6@7!fe-UIQQMBWAZOD6|KTU$Na zf9~O#%ne`T_?`r+ZC<&uCfVrv(wU;`!@h8a=rq`I%o1E8WENoas!e%as>$Zu{9g&1 zlBTa!@ysahcj)<kap}Cg)H#thTVFno-6nB^RoP^N?M&UzIdkLrJF*1Xwsl{6Hm~gE zvZCcrW1l!pKJY8$T0p@Rja|`9t?ymmrGJezi#}^!nae(>xJq!Lv#CwmHo?SgmD2B@ zWH<}1J|tnahui4h{fC_P8?B#zlUn!g^3nH=mFxFE;8|C@Zh`sUI6wJI+vZ4T-wd_B zvXRf=`{5<EGuE(QPV%|k-k6emM&VMh>#6FP_eougpO*B?8Z2bGEqD9v{b2h(_j-m_ zmwPT)vVy4*@-7HyR<N*uw#bRdZ*OOL<}WsoIr{#mh}|JYx%a0_mvvupcE9{AEVM&t zk^-Y=W8VEbo<^QlliX=xvyLrSk&t<P{Qmj(k!}fG0v7UrWO(c51hR@;aSAY)#n8Dx zh{?lu!GQ!5Hgmr(FYfi}F*x%GEjn9#^=kZnefQ<l7r)+=TVN%1hkrw+6T|vl0bE*# z947GO<q1m6-p1XaaFxp@v|O#BkjrxMvud7o?DcFb<gRU+pA%JH5z0Sh3wxJjQ;enp zYugIRRWJF3PTW;Yi?VRs)UkKZhwk<}pPLs*WquZakal8X!2;_ibM)=E{oDHdar|x5 zYfP4#(k>k3Zkyw{l0!m>EA(*CjO801oO^Rpy1laCJ?rN!9I;(<o*$AGS~=&nlJWO~ z=ZY)zV_GL~vOROigk$%CsZ;(d?pV9~p3f|S6%*ezwB4|A(=78lbg2JP!JZ|RNh|aj z-Mf`$EstFwVfgLrsS@*BuXJy%;GT75!TCi7c^c=N+f{se{nj|HS+SwTTyU9$mZ$ca zpx0tARxR_EJm>9N@v7<S6OO>TxXAF<*h_IKTUo>pu30aB<<s4X`hU~4y7a<V&d`12 z?2u;qB+_3`#5qil&!g(;#Laq{$39-vD{W`J7s>D1TQliL_q-;7RKxt<%G|7prCFVq zl#Dx%_Mg6CbW?S`fy>&LzY97hnjLxL9$g=>Zz-=~yV@Nt!`w5gIX=G-de_n@-uv5- zE%NBS<x|2BF1?hkEYenD^)*Ob`MKgpAJ6NL1fSV{`_v)1?M!RV(aCK|o@WyFeExiI zlUnPh)Sr2gW`Qa*j(<MGw$C{rF8g}O?RBo1smGt)^ZR|8Y2o|MuLoA&wfep+?A_T} zUH!>v9hMTgkF|K7PhIWt>BUX&ze~bTOj)=%eA3yB!1=GV<ptd<^QZeIq+YGcKBhZA zFlbrqskjN>Jc4s?=B4c})4cL_>4r|3&ix;{rn~Mq-J~&b>cg+6=Wd%VI=@xA)bsY; zuJs0DySBy#a(bvr<v$f$eg3xC$L#uzw*<V7pJq1v%Uheda9_GcN%`ZXXUiX3ocXn? zyKisM$1uM`dzdG;ZJm7Q?CMuvCe`ffZoDuhTJv5<{oI`gR)i#J?lcvzeiXMTvV7MR z?~Jax?#)Zj28J_simb75Jay*G!#OkkHGKN7p0?({Z1B1JS?}GQESCDc=_{9A>YnLw z<IMCe)<^bhWlTGZEeD&LVKy7g&5Vh!%x0Yqx@{oQ`n`@z_ibzFUDf<(J!730B72f0 zj#(&u^^xhw<=RvG)LUu;tFO%Emp)s%@&l*n*Y};9*m6Kdq2N_*?_PcN5JpyIMU9U4 z4K4wkj43V)4k*lP)c$|_`{y4&Z1(Z2du)7QM$;Va&+neyTmNfOxlFY-|Lkmz2ll!e ztfGkuXZNnoW=VT?Ptsw68<&l#|1(Gqu3*&LD=+t|>gu-OGrQUJchyb0{`ZK7W2fZ= zCg&~hG+QMcg<67&{;OQ>jua4D`DgL(FNW7oYpvY$JN5Fzuj-Af0|Fl&R(LXJyZ*J! zx^j}$-{ehtC6nxq$<DN^b}$T?)HESrMO<;41&4CmAJ?!j=2aINi{|uLY&xK(`(`;q zvHi(aq4RevII?gan`v&~|2d+}CnoLM^iMkblVP@`YktP&Y2RY!*?cMVUL^B;<DC1~ zO!76;Pp{hHx%zoyg78t9$F`E)(>|U$7Jl)>)K4ZeQoAj6*+1!smVdI*%)YuwkE!R6 zio(|aFASfDSUp=jvwe=^$`c6*CfA}CoH(EVp1JGK^Vxgm+`qzl|H;hLr(`6gf6NGb z+sa)VZoiCsug}*9{*5mey3H!zD9ofR^7WPM^~Pm=eeS!wHnqkrcaL4B`~J;AF$Ke< zGpZ-%PGQ|W!A{8VuI7@*z8>X?X>*D$=T511o)b~B+tW<BCHl+0+m6?_hi>c)e&c`0 zw&&H6%y0G=a~_%ezHA~L8BzXu)#}?zt~f6gxWRZ&xWIh&u2YkrJC?Z|n))&1T65GI z_q7VibJ!2HYhBAxXLg#)_*3PMGl-rkwdrcZg<eL@?km0<{o=3YN0zgtn8mnE@3Oo$ zdDFW+9+@nUH_GTW1|F|0KUZdcNGC64^AC$dlV=!S{@K6pf5N%?H|?|Y-`mglEFbK= z?HB(uHHU9kv-Z86al-7Ma_oyG71tXr&d4X^72Y&ESj2hu#E!#aH@>#TFm{T(x!M+U zY@vbvS^n}>(|38S+Is8$wb!5YvmLYAZcpF&a<Qc6^uKcd*y5%v*o7rCnHX9kWhOi~ z=%Nf^8JQD*{ms_s`}s0EdF#H%FFd~6dEr!ziIW;0H2iMd!oKCe!%6MglWkPKnWfLk zX5SXP<bSRGsncI?Wml)o4V-YMs9fchu&3t}^T|_^OAjvfc~W%g{1c55N14>Xg%*4) zimb<HhIXvmvc{>*R8;hat5)FBS4mtiIf9y7yiZv=Xsr@)J`%Ia>!Rzjf6<L0Rn~=p ztF(@(PP=g1^uf!w78YG=IxMUfi5ap9J52hP@E|QrXO67rWlKZrRZBW9_Rjip|ANZ5 zmj+jYUzHnHXjO&JF1WJ0=_H4FkK&K0=05F)ixC?=$}HRNHOKC|sKmrA=BjX%aq&5i zRfpg2%`e{R_O`pR=(1w5=yAi8o<Lz0A5+6W44c1{UEDaKFYrUO;8h;wqSr6H%Y-(a z+p}SEL}`zb-zDGsk5sPT+ioSOCBdvV?b6-`=}T7oxcuAt)=$zFxzfCK=cFo~10Aa2 zbEBQDJ+1PbcVF6jRcKMe7X74!ZHw&k-)NQYH+9U|pp<bmbg#pzbzaBs%v#Orbx~=@ zt*r)Z`Htx;FJ9Xv=BBcZrQPY&x`iJFRmyye-Yc$~x+;pJR@!H}gk8SCSG`ACDy^q3 zh%$fw%^27jxNE-Pw1sZ6>Pk}1!OknbEB`y7%~O8VLyEJ2?}$uDq|2J)a#=Eh8#;o+ z1Q#EjRUO?UHv8B{Hb<2;JgprUJG!>H9&kIgk@<S-VV>KDJq-tEB{{Tvgz6q;Nxiab zrH6RP715)f;Uc2B4M!z{`>a@GM1;RfxQQg3Z2hP0=Dk%qaC#=6qTJq!hhgjQyjm~5 zUjNRk^zUb{KIi{cURzUJRrqdm|Iy9<_jkSDZ~yCAu2xh1(_9Y4*GFHgzFL~I|5KP( zRi$*%h4cDVmKRS)>HoiadS;y8*P^A<v-kd~{(bxDUFm%0_T2N`xvM9i-TUM1o|RA1 zeO2w#wVvNri~p8Zczc!q=go0_<xy{YO151swf<25<<mb#nQNbSA8(LL(5joZ@`vRz ztD8~_&%e36Zso4Xe>ePo6y?v7-!`}U!=Kdc2VY*RDCenOfBL4_!=H_2lhSW`EXyge ze*X2_>-o3upWAMG?i)|(#@vFf=C3`y-`&oSn^Sk|UyYUM<oR+L1?fl5m#be8t=qGE zj$hgB`FH1jJ$|>kKjO9G^LsnKTHlwu@w#s3>St-5?_XA2zC8OuUGeJa%dfu=Io&Pp zzWVzA-&@L7$KS7ykzZT4%VK}r{P_4xGv`}hGQQsa_3F{*ryqa4QWJi)|8H__(XW5U zyY=7ozIuFYUcrLL9v`>vwQgGHt#R?&o!j|ryP6+-um8vWeCK+L6JDKm4;EPduPOU> zPHI1k&~o7lPuuOM_DbiitJ}NBqHgQHvV4YL&!^{ot@``)R_<?Gv)R86<UGkvE9O5Y z(s1fG!vrr|_5-ilKY!-ds4bpcyehWp)K0-goGDI5in9->b#NYS$!f|JyR5S;(r5FG zG{dt=vyPf{g9Ucp$=H{^%Wn7LtE<n;ulxOd|NMFXE4Tdm_~=tg?M+^hdu#t~`<43j z^6VS?SNQfnWY65E^gsWm`dMWzJ3~p%C((h%{~o+szw)vDz4~2o@xN|_Ur|!X`gY=z z#6;g&Z$&<xsQ9q=r@#wGfo<`}RTFb^CLU2gE50(R(R7N-P4j8$xsKhpl_p*1k-Ry_ zUC{BM^5*(WLR<Ez21Hk^5)GBqaf-UnVRq@y64gtWrXA?|618W6$(Nov(yw0xme0_= z^y%PCLEgQ3zGs&&+FJ6pw}R<dQ=y>qN7koqd^gi;gj_9{?<ao?dVSa-Pk8p0oQ69R zs#jlZbr6r=+Lcpfw3KtQj+}x<$A)xK7LUX8TAMr=)GxC1?AepPq467Uv&K)UEnI5- zy`{H|D?QIIs5`R4z&k^()!<A}ZO|e1`G01Vzk6~(_5z2;iVE9@UzFFVuD!>(oX`H* zN_K^d3?7SCbF@}!cf|hSOBY!6>gI$?3?3_gh($zN<y36c*Prumv*OdG;t~&axGr^C z%sKta?$e~tN0=Tz6^~eRRogZxIzH#d<oN~Hbf>v4zIlP;uvOviJJs((Qut;uHm;fP z%WR><G-0<JpWRa%?W~HMn-jS?Go3?|#N1N@^SVtodTmzZ-4LX_zQ&M|b75bHNAb!_ zIWEj$yAPP@e%CcLDRbT2V<dfH?$&$SM`!V`6|vqQe|p&w-zf8IyMAtS5naj8_)fg= z)bqMr!SFR3w8A1pwbyish8^Wvozxn-@zAP>#LzVxR)uW}y&U6Pyw&XNEtBlaYkW6f zoZWjb=S$jRbLqV|U*s;1to+m~;Hw}!iSs6lnd3AaHeC(w<i)K^HI&;gurqZ8iTvAq zc+zycCa+6-MW=EoH~KKN%v$p)q)+{H{x4Ow^IR##ETSQ4rsr>bNj)OivgdyGmRo`< zCz1}?m@u1#3$AtHIBxW6{Q~~Q0VQX8q$G=3IPDhi;&v5EuT8tQr(hOuX3Nxo<KF`K zZafYM;4<8_(n$JJgK@`0gIgBsw0<(Duq&Km7Vv!STEB*uz436DbIf`7Bg_I%m-NiA zTkW=Wri}5af^(Y{Pd?%iESq=jG;7NCHCsX*GW=7YrZOmAoN#UG?KLv#LQGX`ih*u9 zoff~Vv(lrL7I7T3;Xd1Nbl&G>%ec4Zcg~b%+Ig;PmQkAbnU)WZr(A*pY&0jf3jb#C zP+rr*tFEE)^xBtN?zM@04JHZRKBsJzr*Dh3y4tiLZ?odlr;&Oo4!u@$7fV(iN|dhX zs$ZiVp=aT)yE%0ylhZC={S8)aPlc}dUwN&5sk}X)_>zzP)j%EbpVw?#uNY{ZZY{82 zxWqB7+qD0>ub^EB6W`B0G7Oo8=cY|KU!KPu7`yS2rtzZ6t}FSc-8WmU{KE6=*@sK# z4_rQYr_I32<N4B0x{F&%=A|`CI%;rk`tk3M>z;kG;uFuN&l5Gu6`0>LcbU84KJnWB zE7d=57Q86Yrd|4tt)u0Oul^jd&4Rl7)<k^?+9AB<*RS~H+vSoc=gCiPWo*s-xK=%J zwpOJ1a|_uM5k2LP(%P3q&6}2VbNSM|d0*>!b(fwuHM`<tdQf9thKRpOm%7wZ;oe7` zZXaD1S1g*5Fl%vU-?EuL#*yWl-lg0<xodK%`s;aXs*Ms(HmEXB^C>nud(uSx@*JPy ztnN!eZu=fcthO#WE~2|tI-EJI-m^)@@Y|-y``lqcUTL3XyE2Z*?R>hN$*YRxs)+s8 zc2Ju!ab?ouyycqHviL7^+={)g^rCE+=JTcV^D^z0*|e?6nl)+3zZlP*t86BJc`>0v zCvxfe8~lo^t<)q>hH0wL;ajxYYMIf5^;u2tiv$v{8eTp6a$%2#mihbDFPwL%|6CQV z!@Ma<b=4z1`zePe7w%<F<8Zw4V3urChFPp=`;@d};WwXI91XwgZt}o)d5@OM%^5K@ zM<v(K5%qOH*AYHfL%DZP?d8m-mA4KWsT351T#<d0+_m&ptMg+CE$%ta5?Zb%Exn1g zsjSOcz1;rxr)Vg?R-E8A!_(XNtR%Bv_rLk`<}F+O%|Q46z9@%@9mU<7?B>1i37x0% zDM{);ZNlo#-FJ?&1a4(cJMv4ZF}>_YzviSY@pByKbY5C3?eR5UVP7;)+&uHlr%U1+ zH#r7nJ<Hsb#ea!|?TCi9PGxMI@RX}^OOA$5zZACciC<;V>ABk`y}aJK{pFwkj5brY zPQ=m_Hnl`P4Hh;sWI|HEGVhUrNZa>HF8#@@a>u{tq*qPc^&%sxY_8U#gBLsmxLU;S z)y=sT(6P8|Qc&-*ucs6_uU&k;`2O=hhD^x~2P!}8m9Mc@7V?-;;O9`!!qPOUSV4%V zlINFmfw0}Pi@E=q0$dc2b^g2m`L4XZ{_o|}|Gs_|S#XR0nd2IHMS=IrCJ1@?IGXW- z28Ujyi!(S*^7!!O&ohw#H-*J6@%{%&KWICc=@_3+%2D65sqxWYhvY7W$wC}*&Rck= z9*AJ)^t|G&!Bwx^qAt9(g0Ilpe8<bglTH#}B{nnLOWa`p^K1RGYblu$#@=i9301vG zWO~Y2kkw%CHltO``#qa?XuF@q*P7j*Qrq$ck7~sDUT&S&(pqU4cTJOfV#S`dAB&pH z+fC1QFYMyry8conei~njm(4Y|HA<d*2e_EOt@N8v_$PA5AL}Q!ZVM;un07u&%fjo> z%e!Y(K9pGcJ&)X}w^&ZhXpf%nwDm^SkG*<ViC=XRovD1Qsat=GQT~Tx5^5SNAGZ}Q z37y`mzDnkau&GIi{}rRnMV|tmZC=D@<~F5nQ_kCt+5guD7<cf#+#KV(ZASXdtW{k_ z7mh>-y%XHuHRDJC*Q26!MY}G&{k<^Qy4Z0~%6{YJ-^)*SnVD_b+$m+Tr*(<km%t;* zw?${E9qsy@@py_FQ}u)6jCs2c@!YqbFj4<c-|1Ur9eJBKIlt|cpS~kk>hq$QC8sp) zSf<VUV9nWWd+6r{-G%YFO8a$^F0T7Af$h^B);-#`ds0f4)y}xkc~>CaHS>*X_}a-g zg7X}A-ei7wjCp4E1?9D8r#@YnnZL_I!Ds#Se5Ls4Cb#I8>gXrU1<LJPw!8NA?6@fQ zP=A}pS6_v_;mqmBpKScF>F!#Qhx&FNb}`nLx7Qr1oBT#gGTJ!h-j|hO;n((YWisg8 zX4v-Zc#T!W{;QL!PtDbgzO5|XdwJ=-cXvMJ&ORxZSH0ufLk)BOeD9X?56{h5d)6>Y zG_v{Z!98NzmG;~hd?zlkXs5bKX-xYu12@jUR$DjaT>Z;=|8K28-jfO6?#7!RImtM4 z8S@$+hqcPOee3i5FJ}dc&k1V}St+J`Y=xZSbz{5rw{~h>ahk4Gw)LITp3Ter&di*9 zHiCU+>GBorKiH28^<vq-W^87JZP?ZrdNd7D!?tJh7dc2Ad;dqY_(=2S&wmT=zIDIk zY<{~cTgr)1w{sCw+1vX4%}q)H;cM?MxxI6W$d|KEo*y<oZ*9!c!@zX?-1o-MZ@aV> zED&pIIw;`5GF8AKi;0!3S-@t8ece4iy?plXdygOFP3UpbTlw?btDD|3;@jt*ZZt06 zu(O-t-WBk`twEujoFK>9&C;NO+dpx&MNAUrS0e&*dEU*9=hHgAb=~B?Q%&VhJv?id z%uqZrl_@BpW7Wo>4pkL_@4sd#eouYT`&cKwcY_wM+^>*g@o&H8bkF7f-|*iqG}C#? z&WPzdX6<j-`HizRi{0dAgWR&fE1uB_nFr-~r>#49?p}bw)v$xl8PA$=&GY}0D!j$0 zU*}fyMX$Bx4?gvF?S9~OROe1`srI&AwVyVxI5~|w=jOaqVR<*$JWp45F1l8I{&3`4 z%k#Xc`VxJILOU`vB@MYhGtAh<X6*N9kMJ|MJz)#l&n8HG{dMI`aP*pP9j<7}@JITm zCNJ1t@y)V1XkuH?S#A9ZWzQcT`Ofs|4eR8{xIdEBk?)>&ueq)swDWsq)~n)j!6&b! z%P($lpD4XFP{`%&1T}m8_xl4>o*i}D#knz~VCj>0u2X)0yz!!t^`+9OCe!T|(~e(W za*|W|*gs?5dD7-t6V<XWg%_HvGw^Rds^ZlXV=bYrrSoWShi04CC9~&Q7t_SrPk-BT zbf4Vuev#6x1;Ql<mff{o-&)J^rm834_R~2DR`Zs{%~^Ui=eoms%WW#(**WfV2rQiW z#gCJBmiFtD)xmAsG#}UQ__(lbP3|cR^GD~VEZnZCe5U9;|KTlL)jX%nea^>t=jFL$ ziCOPt+*<$coAc;gQ*`6|=kc50MBPw0G3(oY!(8WEv%Y0^oHSe(Td>Y&_YJPE^OWst ziu-Tw`c`*HR%u<-LC-lp(U%n;-!N-@elTWh!_zf0e4?dgrJ_%~Z;5&LOuu>gw>FK9 ztEJwj?3Fe#yZ!rS_Oq$0`fdmI1t&g~(@oj<T5PS3;v2>V#uN3-e|K+P^0Qc|@AgLD z$W^7QvW;TZ?RK^-Q?_}uC%yDvh=UUA>bdr*GF-)xfBmip3N5XR+iK)*+jQr;R=#-t z@lT~G$1<W$F0njhFWO)H7E5($W{SM(7*<_ckT9n>>vY~?P<3h3I(@@|<eJ0K>hji` zRa}7zE7Nx@Y58L0Z~tuCGJ&P4lf7~ui*l;DUps!XzD{1cQPSbTl^=G7`{oKTvV5^n zPcUNDYicTfP$f~s?xR$Yde2*P?dy}03p$*7Y`>oV^{;>a^U04tpG-APlkxAdJ{;)G zVX<1l$)Qn`Blz(vsYZ|9xr{8G>Ia<vrf_K}PY7IOr~cs5kJJTaNxpNEuCeXOSl)Gg z`KthynF0r%^10ki;XJ~Tq@i<r@rgZ07uJ{0cJ;J9u4l1h6RV)wmYic1#fjBFw_Q(o zFB|o6vDz`+nRa=lTMZi@v4*Z+D0TAC^qD&B0atH4fBa#ifc1$@oeQ3oynFuH;&XDh z!sm@TI_xtY<#(Lk+4f6p#W}958Be+^tV7T7P1CyRclGO@=`kO>R-ZX+bo1QQ9rqfw z86~G~Nnzby@nUmIM}3@xe2;OiMY^NZcf;T|lV=}i<hm`?F5urLl-OtUS<j2vz9(zt zj_-%1Paj)npg%R^2A}ct#G7|^bS%FrTqv0S@WI|4eV<=S_VNAYDp~VK^3$&~3m3iH zb;hRaw1ZmVl>@e2;)#c&&w0;GuieMD=u7v~H~R|twHGlL9{%NW%#+=Ue|qMesRz|g zH5KqyYNtGMcsR+?@3GeE)l*MA-g9+g<Mo0Lv3LL1_lsuTS>X5S!l4s?j1|sae7N*& z#Dfx^f=dkXQ%{)um@9smWx3Sbj4fOG!_q1rw%=SZ^<m;N&%Eu$6?e}q{d|N!ntS@2 zM=v_s`L_PLXl}8qbbjO3<<;sBYEK@xb@8qAM>qHO`Lc5_CGFqyHT8={!t0k^=2o@V z-@{Is=$Qqk&dFH5P5aKZm0Mf=&ZTt~&T>EeNbN#na%%F1ZF;)r{<Kbtv=3^{b=Y!y z|7Dl>e4h}XNbU7g1A`M%!^E6556pTg!R~WS_QRrE!fSc+_I3aN%3&L_{(xJliRbgW zt?IYMpZCu5DST%W8L&mVN~?N)+uDk|nYW$qt}fUf=eyJ7|FTzGb(eSVZ<f_;&pfc( z+bnkSn^WN?bGuKa>4@(>VOD%``V}s_P3n%N{*UH1d~a=fHSfqi!TdG#Uv{b+-rtaS ztm##5|8}AL6}eVQr(#x^R2^Zw`0j{S`;Dhttk}G!UNCmMDq1AEv95l3p_sVi&65GK zzVmne_o{V!nYm0Ya;@R-;6Lmyezf~x$;hTC89Ah~AXP!%KPfA?B$rFyPr=Z@0CeY9 zQE`cap@9)%6{C@<F?7xpB%M=|TBM-wmXlbL>XMqApOVUDXUA1sQk0sQ%T;k}FVYb3 zx708d)gY!O=6CFu#4;Kcrf*l^-#I6ch4qb6S;Oo4`~9~T?(NjSCwb>pQ_9&=w=3o% zu0i(;mUJzfv!qK^>y4B5oi1)$QALieOS0G&eqD03b&_!E$8IjwMb91^%y5Yb6<lGo zw<$zOv-|%#HKXEOSK+T~^dcX{?DC#5`PYR@!rq0trs{fYce-?j*0?-9Vs;?Z^G>Uw z`%%@KG2TbnH$M*65cvH1%JP)!YkpjK6(!QJ<~PSt)!I8-uZ0wSuM7=Nl#JqG%U~_e z@LtLnt<ke6+3fU6ld{?!YcCzoIkr-0r`Y6>ox9TRF!^+9iW(Gr&*P1WiI%;7HKaO! z#$gl9sSD3fDw4l$DzWFso*6-R|6Q0q`PPB!8ky494lqSbGn}om_}Q$F@@h72S5jQH zpJmMQ*?fCTq|xeiJA*e}`&%B-FpZtb=iZ9lX*F9GPm2rIPG;S`jBSNpWY)8`wE-8R z%+D|${`N+Dh2?U)8fW9Bc3U!@U3n<2=lSZexyke^XODHvs!}iJjGMH1eZNtR&gST= z)A^H5hwotcH!Jk`R^Ft=uaeqt+&$LC*kW&IyL0lU-A#|I10_#!<ar&={FBykhIerQ zbGx3MVWQb9Uh|~~Tzrh$63r@Z?hxBtSSTNGEa%N?K0&D)H_{K+3vRd4E8xBRb`1}& zQ)&zY@1cF`xSp!G)|gdD^`<tz*nR5A*GJ7uOy%3wx~uX#bEavVykm-P>H2Z)(#F}| zUw0p<TNZS8tEjb<^yR-Uwd~W=p1wNTz54L%|9`(*$?n^~bLZauR)7Bdoc{ac-}&<S z|B6e0Jp6Wf{q_0x(pWnGy!-I|usxsszNH_ZzWVU%*WubK@0()9!5;A}r_cI$%LjjT z)z<rMx3^*<pZ)T~_w(-GS$5d}rGEMR`kjYw^lvxs)(H{&mHq48ZtXvN6{I$`K74;> z(}C5srPH?Y^2Q7B<~*`qb2?}i`@UTrJD-1=q+Kg~_IiU})&kK<Nu_t}W+sUDGjhLo z{L(rx?%usS{fYVya~}m-FTeid*gxLtllvcDI=tF{yL{a~wvLjDua{4kR22WcU0e12 zY3<&s|L<R~KHPtyqPDpH`NE_5&$b@kzx(f>mxsUJHC)km|L^Nx*Zbes@A#|RYwgw( zC2?@6=$+u>d-qiR=k$_swvDszDQo}f&Q~0v+`5*jT|se*Ko*BoQ|kq%7pnuDi+RtQ znq0pSlN{0;D7DzcEwks6#L`B0=6*IgUK^=drY6xD+b-lRyxBMFe(bfaYrY+27HxX| z=;HY;ib5aCo=-Zxd$(sSN8>b0{ks2Qrxv+xPu3DP2#njq@o1BRhV+E3wjHlp7F;N4 zRNq+tHEaFtN#7kVaZV87Zr$R<d#<I3<>>iC)dn}88f@KEagjAevYJz4L&Ay+Hs?>i zXRc}q(x3l0V2#4uE$uzsmzeExr6<MAomdoTru6ia^QlmOUFnBDCw6i)c<lN!p(N1v z@XXxVkFQvIig&V{)8UU4PuI5i%;#hLre%k-MSQ`uqx~$QMt^qZ95+#n5>M&lu?{>g z_W5#<TZ~q&^)k+jyCkliGBmxi(}MZn_6PT@4SYMUFO{h;ayup}6C^nEo5L)D_1sMp zcs(MlWIVZq^xq#$5jIHN{d4Eq>4i?3F5WkpSH{Xsl9<MIv$;|A_s6x8Hhc1qU(ug? zZ3)*TyG7ge{FoHpK8re^YPz>ZO7LAbqkoF2rlj9p^Cg0FCthW-zbc+}HmfPKLU|77 zMJdj*m$IJIZYkZ2G+^1iwr+9pCMoT(6`^nRXK=_pdHPSz!}yF!YGG53i{hMn5>Njb zAOEjDLG6i&+gAHOR?1utJ6`^qTkbGx!lf0mmseW{7oXz&TDNkS?B$jzZd`X4=Qz(g z8rc%?e!6VhtO=Jm1UdHECT+E-ZeMeIRqpYUkIEd1tQN0Ni+0S3aJq2rzSEbEqk8gk z)(2Pmd+awpbB%MF<UuQswWeY76}S2w{F7NTt@vL2=g4z~?;mcSa$4B#bd&U^2W>h# z6uI+GfSFMR&bm7mirop|zP7UUnb@r8jJ$<AkAILmT+Q>|a1V&_`|t;bYvBq1J|u{0 zu<$uLX((P1DB+ubb=tc-fyX?B<TiGn-(+d|ed2kioqIn;=JKn}JDk3=f9KpkA1`|p zSSy^AaXKv{^k{>HdLz&AYJ;hgJz`!vL?@@m%1ZieOP=NU=b<{U&vCB@kwLG&8=Ot} zw`alo#Vwz!JdX>{k)5C>qw+Cdv-y|vEnz>aOLzHva@o$e-g*9~_s78{eDk`$C%iJQ z&}-~w7S>XqwyXcSl%R3^u9T_;JFBAq%>1?4<ht^VvY$#zODwi1M`kZ8esYa-hNNlm zhp0f4xsSK{J^aAqwR+(q8$0Vy>w0Xbgw39u&AlpHHb>>$9j)IQYt7WJTP?l%Hzcw_ z_5G7Aw^Ap+JtaR=_nr-l!;{t`<CfQ(S%T&txWO`U>nC@MfNj1lzVi>sbBaBiVt>mg z{i|f1GKZPj59Kw}%J<A!xOtyjiKnpa-(!-xQZ@0hT>MVn`;R)>I6SQRIW=j@&mt$A zd5<^x9XL}kXX5$7CtSxZofGFSn(4Sgao?4LjcfKiF8g+h@hr#be=ZSs9d`Dp^O|J+ zemkLpt&&xPFEjOP`Gj!hNoN$+Go*fztGs&f`K?X!9A-IMvsFLsm#VVAKKm<6(A;Ya zo}N!Fe!W|23)>RO<MPqJqNYXOzq-Iw;O2a{jL>SYjH|!gId$KEi1C~&<}|@s<cR>Q zrHdn9AdD&Hl(FoB&%&9`#>X}K0%aCkxE1zHl2C1QXX<B><FpZ)rE21xG3|oR!pgTn zvmG)f-dvo&a(-vY?&7VTEn#jC`4_*>ydX8>my1*OmTjl>++NT4`pLzMyLCy%eb-D` z$BQn0+^aR#zIn8zZ$X99%B^;Vx1F<O9nU7H1XiT`*Trp}QnfAfwdRVV!mK5Ww@LE^ z$@eqQPu(ha@Jxmxx1RQjiN?0k>IutAwz%%T7S%L=@kYOgK5wsFQmqc3lG5_Fcb)U( z9TVIAbeD+yxpR4?slnL?Zaw`h44b5kPR(;$%jl_QmUVD(*PF##*_L(Z|2o9_Rh403 z$Qm1qwMEnTQs*78mz%vg>GXW%O@14E7G^Kf*M2d}xHfWmLD~h=4vS0uwp(9UJDr~t z8LvER<5Ske<?D1kp5?!oo493O!Yrrkha8zjYwXv&TeOu;ZRU+ttUmjWe%q48>m%HE zk6&i`f=}PomdNgnVh-MG@mG9qRMPP{6_*n=^ZrlfY>__rWO>W&&mz}3r&+$4res$= z_r;1F@!hNr!3v5$N}e<9<@+eE8u;Y(v9gVgo%;9KMc>OT@>{dh{{GCb9ZSzt+&8dT zyHzmj@$WX9r*Drh*!<|}@wKs$AokRgUG7!YGuG(G)%~$wp|ofPmPVzSCGvePu->65 z^fV!2#%pe!4PI;@!tkN`f0xWd2eT*E*JJI|Y<6tEHT$sv$HvqpTb5>g-5+moC6lu* zV0Zh~IV-kIKKZ9&-yZR%11t&!R=+Ie{#qysd91KdPpIJrkEM#V*|0noiK*OQH^0CC z{PF4kzW(3|IHkC%zTr&y&E(?p5*s;P_rzM^#t*3+nhTGJsBFG?)s!jo?_EiU2^yT& z&hMYYc#0!s%9Z)W1(v^zo!)LaWASu}?1x2jHSW#J@DNN1Vmf%Z%IR$g=Mj;lj=v6p zPgEnbmTi|5k6~T1kN<CjVVYje^F#j*#{a*1VXM|xgZ!(z{1@(Ho8hpt*_WqmXO+k9 z8;Xx^81kp{NwhjW;xqfq+&5*rPkP~$SD~A}FzYNSkDU6o;mmG-t>VW{_kXce?z-Z- zXm`Jh;-^pncK*M8R>uMque!D`l;=3OM>+Or<htPGnvmbp-*N&|KOgF=@!B78=G{r% zd*@W0R_bQwtnoLRo4?@s$-h40p?8++aF(Co-BiOnvn7Bl>8MHGqF<GrbHumXMp~Cd zR_`!<m6)eJv1Z;6iOTXY(?hYQMG+siNmcrkZf3KKkZjggua(HWl{O(WM#Sp9Q?lor z4+#&?WpT_jyq22Dy6KT#v5d*QpJ}dVo=@90;fkSrTjZ8A-M=;B)^74#xOQ7$;8P8I z2Tk6mi{_{YuACltn_bK`%tt5KX>QW`MMhnxGeXTJ!}gyMDE|Lxz6jq$`3Y9ddYiu( z&RVzjLdwF;clWz-I4_<p8Y;Q=uRvw-WR7=>tWMr4W&X8pT~@%Eq{X|Kv)<e9c=bBq zUW#_t=bX^ewUrvOpVB9;bUgP}#c$rC^w+8Dw{2yAA`mZdGi*uP`~9B_8h5oDzCXEd zZ=;q$@frE_ZC&h%3nt%GTEC3DTD*N%#J?P!)3T4kFX;-MD`{A1w2V7;$@&oPL#}W3 z?UE=hS^RYqw~u7e5@wIXdMoGYu2R>|Vf~la$HH5bb9>W{%DLYjT<@-*^Yq(4#iHDs z`|jQ4V$7G?Tv;L<e$vFNYhKRlfOZzcyIyQ(kL4E6TE4vBq3@&bv2B9UUt~U4YsTDV zJNx^V+uHX$>cRn!6xA)v*}W`}G+kcHymX3VT>QNG_gCtbNQTee9AfUPSAR?9duH5i zdpqA(mP-EOcP0O^E)9+>!;(?WjgSuwg=JI|Xy1;gjOtsw$UuVOf%SeRcbgf!KhKqJ zmp8U8NsrFYZC^McYFS6ujokl#*$(a!D(Oz<zx}MGE6vD1Zt@;|#{?b$i|_mT_vEL$ zFmZ}LXX%k^a0n>kYdJK5Jz+|N^#9ZX^IZ%gfgKx-?4xUcJbwQ4#h0Rz*t?(o-0$7t zKBLRhv|VgTi%_tD|DM^_EJDTanG`&xu<Q@NKZgO7PiI`0-0`iha>dKgyMBgwQhTy~ zb^d>s?f}lG%pKQkRRxSY6rVLKPQ228Ipym2?QI9oP6&8%_}~P?u=pR>T5AvN{=X{o zuvcx9)YfkXGhPb_Yi!@@x;XZQitg=uJcaDFDjAW^>Q#c<XQ~GF{q#7Kby(&ezrm;J z+}UD@rx^FkM`&zy&DpnKu}^)oPRx|ROk-}(If>~LCM^)#<J!@(xzIvaC^jN+)e7$O zU1l#_yJvsRG17LPJH55C`_FZQ%azg=4nY=Y_Rd&xOh@c|=i1{Nqqp=u@iG5=u*Q7L z?Jsg~a@QuV5sO#zlz5)nUiqMcpYOR^^K9Fxu{&~dUn~76NZP3AXLW7c_MSrz<r;1; z$=YmExzcP$7>oDQ2>yi7*@yhpS0^<lzdh>}*ljxJ<(*sW3L9k~|FdPx-L$DF$}Mv4 zjWEr3N#CD6&{lX9x3OcpH*?zG_*<R1t8X2ZNi$c=OpN;f(qYHXP4?Qk$6xdrEfhN8 z`EF{;wf(i_rW5w6FaG6|<P4g~d72ia+&9JEUu|M!EE~(u^UaE4m-eso3T6B}y)d%A zV5$77+q*7Qu32j-^7y=D+uqs#j%y_Fhz4D&I=?XTO>4rxPQAq@mpyaql9YDJwUvY| zyWBTPaVg)P>n;Zs*DXCCG<WUH<sXX{6&w4PNO(U=s&e%y6P(Q8<(TtaYniBP-K^!Q z7W!<ApBC5ToR!rnxcR#7L7&9BMLRa_b>&E(`F9JO_p`1o?yTyjKWc>b?nvg8U*;qI z^moR>{uwXoQXjmnWouibc5YeW)O4H3Xv=r!Ok~ZMRr3DpcwDgW{m<sjZ}YXYZcEr( z-Im*C8gSjyTWx`-Q1zV6G4p?!ELOBw>lYj}In&7PtZ32YM_D`0m9Fbv5u<LlTIl%e zs_(H+r|PdyzU(<U{@Gi-e~b&$J)5!ROq6jMSk5G6fc4f{(54NB57zaq{U;UY?SC7y zz0Sk7B<l3q)r(9F1v*(goUXrHKmTCk)){4I-T1Zb9Gz1l_wTXW|6HQc(BVPNhf0ed zC2pbt24YQ34>`bd9>-X?c-ky?aPF(wD>E;SZ~fuh4_Om@98&TezHM($DlILrlF?zi z5#z#;-wvMg2;<Ak6FhM?U!1{FO8Y}{Z91pK@(IRS`}_}neQ=wh^zx?1S03jbSe>`% z$x9bQ=Ly=ZOAe$t-3`%HVG>$#NFz;S#sr;{rIU5972o0E%TsD}WjNgN`CYU8ll9Gf z-|jg}+ld9-I{Bt(_W6#074ude3o}&~UjM6nm0)^+)~00b!yXGPBA%pXB{+9A{Z^SB zy4XM|i1m7I?y;u_jk4diYTHKLU7Q`8TJ>ErK=Xg~k$cY3rQar587}O86kF19*uzV1 z&I>c$WmemFsH<&QTW*-&9l7;&w_vioP8$E&+~D?}$LiOPM9mki+SNEO^>k2p?k@kx zz=sp#T|q0>=gv@Dy&_KaW#x1anMj|0j*kZn|HjOUc<H+MwwmT;_HxT9aa*@*ZCzDb zJb!X*U|$RWJ@J{9@@Z)^>)X<nUjCZ1YW0yR@_ZHt<+dKzV&9pndwJQ_QX~1DPnkcN z7X8l<owhaO)sneqC%Z1vHa9QO|5X<F)B0@E{IvVMJ8yUFkbkQ!utP!ahkWC1+s;K< zuaA7mZDGH<<LAp|v9Gc>{@WqZDj2GxG5e8X<ehf6@buqGk%>=K<Ja>TY@6nNnc@8l z&!c_o_rE=@Tg9rk@kW{V*(a@E=S5kbp8MCxZNl=Jsgt5kY3at=^wk`Z>zEn&Z1)zw zRTq|APThHn`Cp%ar1ejwWpbZGecmPMNyl1Sn{@qnP}9A<!1le<WJ~$ynU^irD{SCD zZ!gMxi8c4uCEaNLFK%xSv#)q{?f2KXH?g;Nyg$0))9Rr5>pQwH-?@2mlFQFUUl-h1 z@_Jj>oww^HKHX?P`tH`ooJjSX89AHsZ&`UZYg9d1wrP6i_0p|RcU`@;*>iWUgw2cF zT&zypmu&V@kF>kFSj#+hO?i!?!R}{SCh^-DPrkA}q_XzY%G*LG{{8<XAJ?D%RqW(5 z(KFn~xi#$W1#IE??dMd)Df+UQuc%ljc!s*djmgO~dz=&PuJu2U3EyS5I;?!bF|(A} zhfP;6|NOzitk~tC-!TK@KdeC~ZL6?lWULDdj7XX(DVhzLDVesx;i{<TZL{e!buMK- zik+3HA<(XQj8851((?5?j`Ah+_rCN=UnKf0NwMDQ-&c8AMFVz@n5g;b*Oqf@HMX4k ztTDrup>e?%8wHU@IkwFlcW&x?KDu*$9eCHt7xC4n<M+j#Kes-8`%~N3HEFhy5%--K z_HR{Gozl`+ka+j5vcSvga0bU!DnDXvcQW(@pOCydKe!;fc5}ex^}FWQ+%u`T{AEhc z_mCouiFMuWidnn86esq*R!p^b?LP3oPoTCaMrlcH^pn2soquJ-zP8T(ad6>@zRwoi zk6)Q@(PuATmvX7C@AS@a`5*H(GeZ}!e_e4q#H3-@VkVA8F3kr*Tu;+D6v|>0chriB zJ5D+l==(<}uKlZm%4(&^wAdFChG_-UcRba*v%-DWl_mO<EOHI?4?lOEBYIFE+0)nM zy}OU$l%{W%(+$^3Y`T6@-o3rR-zekvy8a_Yj}C}=?RECcda`=w{xgd$-Yb3IU{K<I zifu`L&h`G2&KFa?RZJOcl#;@f`@ZbCemyZYB}wYko@IYzT<d0t)&@UJJY1#|y<V_$ z{!xMGdy7mjRv%JPH|tq!a;{9PbzybQpHs7P9|)xUFXGr<YITV<#x7w=h0vW<2j?z3 zePR8j*Npd?W;e+BN+=&+I_YM2!d9<MJLR9(hU>gwS6|hq)Rny`QE2a%qFrH9K7Qt+ zxj~oXcrU0;lDwsU>D?@DAM-tbL+7~GRx9$}czk%q)rjlPJ7rCG-c6bFQ!L&7q?Z52 zH<ny3Jh%7e#GYF)VTp4@?o=;1&llkbZ5Bl>+VQ90_3>9Lx;l(RC)T$}fAyH%bwc9^ zk8FV8&28dY!NQ!2kFUBWb>_OYy0h`$x65q=PUL^>H~GXK)^_I8?UyaHwN5a^CT^P8 z8EO7>f~-@bmeS<LJT0ZyHeZ@GUg-*OCaL^X*w(ym<|5teb5dO2ne*w*?*Dks$s^gK zEc%7+VaJJv7nd_0XYcAz%k}wkq@#VC=+rsU+__>d?yJn}+;cPJwZsFue+cdlxE;Gu zPUTSY)41Se=}hNl+Bx}ekLbOhI_GF*z!sw~i`N+L+xCBI(1-ZAuRRT0KcwH)`^T!e zyfqU`W;8QJ-fv0tY=?;j(T63SjrQ%9*&(?1`}zxpJ6D9t2YDulePdQ{WSO=#{}}uF z?U82=`AGC9et!Si>+aThHx!KztxYg^_bPMcmk_O~OO{XC5*6%u$<6cGd@s+{I}fa! z`l?A~^`oX`_u9El0|m=gsw&N1sx$F}&Nbnc7a1>kTse__WzvbL;!Yvnpy?Kcnd?|@ z%{&>sepW<Qd8W#`qo=n{y20(d=*Zp*%aF$lnR87{BHONKXq<U<L7L&@hiiLIuIgL= zlRx>D^TTz)@(X$&{<=`ATBzIhulW0}W1gWRxib!^-OZk%X8KXeprx!i$a#6`nX<$V ztw*^L-l4mrnO(DHZ`(9)RcTS?6037jTs=AW`2Sp(A<HP0^=Ou~$b!dxOS7|bZ|%I^ zBD79Y;kLo`JGzn^v)|cDR<qxJkm40r{^N(~d-h%V8ZYWspRAhw_@0oDRd&QHlXkgh zZ-Ub9PTaL?El=8e(O&08S9<q8Z+$3Wz^UT7*g#$(Q|d{Zsl|B#_k;k`E9|GbmR_t` z(rd|kpsD4*+w(}idBHQ%4nEXtV-$BT)Y`hktLd}I4*6S-<|`zAaR(|a(i9i{$I-lt zLtS;A#mT)PcWT@Uf>*t<Rodca_etQQRB2Ia&$Wyl_a$_=RtxE*^Q4}6x5hx<#r8Yn zsU2bYyvpux?lyCz-buf1a7^WB`b0)K&QNo)J&i71<-rWGSLWV+V6L)OWQ$scuTSjy z1*R{PwVbn~O0+&}x+P~hWPb>Hzh{wY==_Ckp1vD)gujkE(9Xcxz}WUBOCs3(u!T)^ znT6f{y*vHS&s+Mqcs>)?;%Q%m_wBUSO50oi``PTnACK?8y<Ok$`^!+Pe?Ja?E~%;f z_1A8%-2?UOpFYL^w|UrZzJDIy@%IZqmK6WL7u&Jt-@_l5U;cgDzI*%f@6S&f|Nqv1 zS^xdLn)2V(RiPi+t+LY2%vm?(cSY~Fdv_c;Pi>xey1u%&n0x8^bA_i8&svlUs<7}b zY`fsJL7<A`vC<VGr;K$AceXu~nw5PeD{!^zTCuHBAO`C^v5Ke%nT^X^)40!y&C&%; zDQte`-<A;dvY_VU!{@(${(b*Gug+R#|L(oNpO%>O#>UD2uljTQ<L_{j{XcH(Il5v} zPmEzqnESiCk4w%s#YMc1+`912_RHRJOCHDP#ot@@nE$2!d;33c{s;WO`_^~bnOT;f z=iiN8*X<dlCw%$DK8G1udD=6cRL$6xrr;QJs^fXYdarMd4m(aP{Z#M%MbLZiqTH@j z{@4i4O_o9m5*_RvPj>#{ziq=XIg@!#+rooN$8>fkTQ=-Y;+V&l-u&D|_d}XpHQzJo zw3=f*b+eu`TnzOUnZcoKV))f(->JolN0u#5zLlW<#>43M2GJjeOeKfY;}5Dx8*H6; z)le{|v-UU3@wkR1(h8bwT+VG*&425y4Re_;>Ql<B=JSWo$F4;7bhxX>B~hQZzh;z} z=sc6Katt{j73<yH{e5}zCf*r5dJku4rQdfxy!F8&?is(>d~R(%o_FZNPs8K`hs6bY zc{?`5@wtZ>`-OS3zFp(6XcMEb&Fq@BZws_)TDO*PUT#y+Yuk9};F<KfKbGy1wyDu+ zxFvA3@D{5?|BQ&QC-{py=6EkKYbi|B*?D72(b6~U5eFy5OmoQPcw+G&O?q<kfis6c zb_i^k=8)U*B%<N-jKk@X1w2n0JGQc9Icq%cDrP9#Q!IK+a899IMDZ8ijdNU!O9MXW zE?+Le-V`TpklXRp?q!Y?7n}CvD~Bc~FkWuU@UxKNx$kr^?%5R?KK4Bgo#rmZP60~C zm)wwk(BfdB_=0O0@5MP+w(sSA$WX05=TD}bu$VzE$Fr6RDu*=#^N(aM-Sy=09>r<= zP2Hd8<h@xFk+{P`H{q7Rso4jQrp{YdRh%a5yVl`Xzr()CJew6Z$xTQ+*HWh`ndYby zDc~)3WD@Jf6i1z}3e&0tylp#{${h*fKeej;ncS@EjCTtwUA_ulbq|pbtOYTS%U{($ zFehmrhX`m2ErY|fMXaf|H08#Zb=&%RA2;2dcmMpF4T-{6+C*=1RH<vcX<x0HoZ~p% zAva>u!*w^*cyx}cn!jn6e|*f2eQTm`9`9}&`!9)`{bsD}H%yrytSc?{wC#M-zJ-St z^*Dbr@>h%QFp_b)8>D4?L|-^{(?m^fy{fsIx1FZ`+`zj(=4_pJ^mDBpMm5nVjB>0D ze{v*trOwr!teX;faEbKfLP4EZr&DI;B%MxaI;4KmDq3y!i%qxG`}wVPC#P<jsGB^` zT<&zq%$z5u_1b5q?(;GKlq!BGb*BDh-I|#P)zdW6{hcC~o-W~zRZACN|3N)6{d9?N zv{@v}+RC(>Yc{3sYSmp`P}Fc}Q_$QuF{!7w#QkQvw$o@9Prym%oTAjV+m7oc-2R$x z^IzeFp7@4-!4&=jZ+0}K&f$~TY^RqXzwnscqKCFiX58;LzViEFVXH`X^}6_#-zCM= z69aBPIkIKj^5jRob8bBK*nX&UtL^sn|1|#|noxc2K9lOTZ+G?yMSgp;XNN_6;*neP zPG46z!m%&pmXzYPZ+G^_{n*g3<xu-p|NOY^mlChqEkB%Q_e%U?;ym|?g)L1{ixy1N zSfR?5)rrK^X@N{Rw5RpGlDTTRsyO8N3cbMCMY~uGI1_{ps6eM2BAqr*vn`33Kjr8h z!%DF$T(Z}`#VkDRkUmMlVC{y)x4WjlnE#|r)9TKz;Nrt?vQP1DUaxI_X4{jthm-GE zS?J9zK6>o(PKMi4rNiv2HtPn(ZL>Civ&S+rX-`gg-i-M!&-SV*uF`+nc5~ewgOi6N zWy*}A)$cD2o!^(KewWp{@T%#q(`8TF64#{dyLEH!v>ST2r%J0uJ}Ye9G{OFzK+Buf zjkk}KRbJcvJ6Lm@Tlvj<ZwzuHXRqBDyG_@c=h^X^#S1?l*yK`vbK92<+;>esWpv+6 z+@@>2=G=iN!t2kc2Xfa;e|wIv+57DEq$q)vub5WMy_v}1y!vM1Hbd(iqqwb44sMzz zn|6EC;SKFlM#8n8mAckvwxzdM9$KN7+J1A}8-t!}DRWEQwC_*)92}{BdzzeBh=kI? zsInQkXZW=3()^OG-nLBLx%Nh;e^tcJil3^zd5zqg@4igrnDaUDF_UE4?8}FxQtKn% z<VakfdieCdFB>FHTj%m!R`vM5|I3CzyXS|`>DCC!i{-28-t&suGj&UacIL;hOOMtr zIU4QRy?qiEiK{E*`qgyhe4}h;ZK*KH{Frg+(ZwZ47khTQPZq<Jh?Vo*w@>T5aL$bP zd_T^#Z9QH&udX)fsWN-nvr4(g2jm)ldL;dke&G4Z4NFte0_)JI5%jhs1;XoI-rn*q zo^2oi8X9$Sw^+cncjvasGfyV?N#DQJ)86pN=vV@C-lY2YM1_rv%gs9Zb4!&DcDjA8 zOy8=_30mNG>6gt$yI28El`od+37;5PK<mM4cy_X@3GUdszh>{eIr08^b9SE;U2vt@ zqw3dw^ZB+%3uE?fKc{}})T%h;2YY#xRHw{nDoDJ0Pf_6I`E?9UN2Wh0{5+l8L9($& z=x;Go-kN-|EVZ!y$>(P=?l%uUdOP^5Mw5@1!j5@C){#t{O%h4RziMteY*BT~XT7ZW zon0>b+xt#Std_5Ne$em3?Re8IVN1=vN^O0&eZhP^wSadClcjdgXp5ZmG&cX(M!~w} z25Va%Z#lEvHDF!0p3$@`FZ!;gZe4fkbKRFyX3;ZD3T-xj_$!+c=luNW`W3I=EcBaY zaAEP|$eh&fPn9coT|1=G{c*>pW3fjsHm*^d;2!<kS9Ch-$%0(P+QYjNkN%E`1r0AY zzqZtK-?z6*?4ZfHWe@j0PEve3+vqy8QMK%}uifuo9aOw}YQ?31uiTkG`y=ISzsP^s z$d~x!`!py1ta`;6waZQ^_=SWd&tIvu=I`TF$@I+n&LvkG_H*9zRf@aH5q3#@qgT{3 zof!R)C^qL~lM0;wsBJWx+Vo}a>KW@MecjtUac|uV-M+&o59#zJKi+lskw-`t*Tmpx zb8DH?3Cp@NZ)rPgI3Fuple>9);F(E#_ipceeDT`u(&MM&j;l>#uPQh%@V)b-;ln%c z3Ri?qpU$0hsB+8K0_EoIQZp-m8izZYESvgqg2VsprS5z$;<g>|eP5)McV)8K-qY;D z{NMC`Y%TZPwBc3Uv%Pcq^0+2`XZu#B*c5+zx=F-}y-&9k$`vegSDCP_kaPO$dmD8g zsV%d=vdeZ!@3$c7kNu+gvt}B_t;mU$JD%6VFPOJ$raZ^QgtVX&D|gPGeB0e!{E}nL zw`h+fzLW03<=PXTsch%z`q_9rljr-36W`*Mq;E#v)jYR6@s{_kJIZX8I-A;MroXsw zH`MRZqT@OS#%Gw%m|nP$8m6}3$nlue-1patI#`!SmuG7>$Jm?2-&yJvDmUe=*{NqA z-t2t)b@ks>%b(Ajr@YB}xlL8uen$B%jdQSNLzEsHY#h{>lx%o5_z`R>@pNO(KKpg+ z<c;O-L_S^S$A0@jSxcB#;Gg&AOV={7E^TO!E!GM+ky2N=XU{%PCg+9&t>u?K*UbrL z1)bP&K^lHy#{%)j=z2N(@^{tK8x+|%FMez9?yvv1>($)YuX$b7_ae{FuDEf}iD7^5 zLXnV`#)3C@?<ou1te(!`xJtAlvZj~^JPaD&f1vmKZRe|dP8DuSG<{HN8obFS_>904 zFGfuRm#;CJOIU<D3YU9}ets{Y<T*!wSwuf?-tHIy`LbPeK7UdQ)BD4H?{BbkbmTMR zu$61qx9lzBY|Rp#Gvz_E`ec_vqZsk&T~>EgWA1THzqTV%$}FX`$gxHxJ<QTQGwIq~ z$;;<<?k%2ftRWhi;l1|$o?H*^C4W6l-myP!-{L&c{(VVj$UonCHv@OtbASHSoNcU; zH~WlAVsfO$!vB&PuNT@!GCD1AtJ1xrxy5?PlsopOmG*KoS1hqJy}aQ{|NKuDzSp)I zCY>qV?xiC#Dd?At+2UE2yy?l4pZxVb*2U%iN73+Tfak3ey`(7PC;e~qJSY6WaYB@7 z=ce~F8e?0^82>$2J@NdYS(#tUV%?0R$G2$TUVL<E{*IevF=`tR-(@T}&5QK>ed*u{ z|I@th3pe?BFIoMg@5x#3_mwGKUhj5pe9Ea_tCAV$b-QGb(4F436N=nx6}IZE-0Z)i z)2Z*5Lsn?8`8NB${kc>B9DUlpuIpvRto*fh21T`d|1OqVyy<?*<kER=nE?UjLR-`P zw(ZTi`hWY*of#haQ$lB1UlLmq+HT)}TrJydVJzeJyOHlM$<$s?JH7T|p}@?{9scPd z%HQ5bxorv+p0ZQzg?OR4HrKOT3y!<pyTO+FKKDYV7~5ZsTl3b$R^3zW3eR2L_gvO# zi#?B<TBhB*!0qgE9WkYLn_m{UNZn0QiCI}F^K2Ej)J^t1XDgj7Z`bDjtma4-Ka@Ko z^!8$wnw4?$&YU^Jk~oX!o90Z>-)^O?S)tm+;o9=Y)|Q`@yAyhfU1++|?7k&MoViSy zg$i5k6top4Hi;hhn|ao0j&XJCp}rjvTe&CCSTp~6eOLRU@Ly5u?>x%5{Q835rDbzd zYP;$gFY9&&Vat%%=Jw4kN!W{V%h&%lXv(m<4n8qqsKV!SyD0g@t4UjW7i4AxY5e(R z>1%aKO*e%nGhjZGZp5|A;qTkCS=1OBgP$kAsQKX}8ekyM)KtKu(&WXVz|6$TmdK-b z$3Oo3;mMyrw3kcHV?3tuWYVnvar?LLS{qmD=k)y8!Dp^4ALgr0Y3ec%I6J4?n<eQp z=m-urt~+c07qLm0cW=zvnEm1K&u0tLqQ6>odv1R4J#F!ly@9YCIeTr8hoy=@b=`pp z)sv5{{`$@Abrbh|jb~2hpU=6@zwzsX^&f7}j=HtNXgX`}t#`{4=GiR_$W5FqwOgZn zrKQmO)~El4mT#?aSyp{=?N|FvX<JL@Jv*sqW|n!}=)dk}o+jOlIOpZv(sNT{vr>BF zrA{pp>zk}}iTk|zowI7YDlXWDP7=)1<&Qk2#(Mr!cI=eJMUh`zat}-lwOO)aSJz^V zR}-IfMDNbsy&!wKdgPkLFGKwoI=vU{S)8cKrhI<+vj6ev2jb-%-__b_b@_do{9?!H zQ^D(QH+B@Roz-vKb!SP>vc0S}4%<@rx2tY_tDL*V<Ixu5tU#Z&?+Rk0UW+X~x8BQk z_VKxL^Yf!>w14RYhIP-n7^2_p^53Q7-6SrZoHcyYpZ0HheQB%A`<HhOt@b^uEl^jG zI=ia6sz_|p!b%I1RPN%t(W3mjJBo_mWa;upubP&6_1gC@K~vbwiun|Hqn4bucqgdZ zCAU*UuH;dF)S^@?Z?W3S$!v$R?A(R7n=D>)<>{9GV4+l5{_s+#TZNgYte)jry?p!n zs^B+|!;2<u)0ynEd?w>t9`_^5&N41JTM!a*_|M&aex9;_UtTr{xo25>tA3L@=e8B+ z9drBLi_b5)c)PH4!<xril2=)5?)uwxHfG9sU(KWwy1tR`W!f}S_g}B6e3-v%S>W@8 zDTOKT7wqvW$X~XqVpaO$tJ>Sy^6yRK*>(T&neeMig>84f`z#s}by3XoKC6q~LM7*Q z@_BjAT$6XPX5Vc~k>UCrQSY|gbDEA@s!+Av#8Yc$_x^f*{_`sK$h-b$<b3rfy?yt= zoOP{=IhLGej*`>x4_2CR=|k&ABU1zDIvc`G)V<NM-7z}_Yv;!=JpROW?XL^sGg|*1 z@Kj*j{B8Ef=Ihoh!ZSFHlW+X_JtydX*7vFtUqo+n>D<1Wys~6nh?eZ!Xx&iNB?_UY z0zML!1?t9L0hwu6CPbSpZq-`s%fB{q{TwFMZEiD}0(H|06%zM0s(y$(8{YQ)&|-J) zjB96KHCly6sIvMUb<+@;;d%Dafu{clCmpzz+q0;#dzQV)vs*bmK@8z;);qke+K8K^ zndz7bJUFyU!e;YVQwP=CJFf03eI58Qq_!eYHzVuE^<zR)ijGPYEQoBMF0-ZNb({Ou zW#3%3vK=t4+1l!p^q9%*S(>eZZzTIZH^t|M*}cx|nB#?gaua(RkEyE8X7(vnG_7CT za;SF8>V+>H8V-8PaqMadI(nh}OK#iFZ!%evF0O0wN}gAJbk)S(M$aRko;`L>zV`8g z?$UtVj|qV*&OY0z%BQQym*AO^viM<jM$-A)44YogSQz4@Z5HKiYGU(%H;uP;x2wxx zk?nO~t~*UP`}6g}=NFEeUoM?74t(Lu!&vCRF5N6(*|}oIO0gsku^E!f)NH&C+XtSi z+_Kid+uWh$ftPQ4y-WBjW~)bi9c*RWG*YA2wEa9TpSxA+F!R&2%ZyJr9yhi<Y!rAV z;rpP`eU5ZM(ke5lu&EIzb|r=jWSgZ|STV&M);@50TYo~5NnY)iqZyOfWODR{q>4LR zRRkS9qC+OGSR3o?p|s${g9DbmXI0lmGtbU6VPJb|a_d%}F!viXv*K+TSrKlRCgmnD zIL4?Jx9R%c+IoLaRcUd>_xbhr+YWy(FaPdu-o8D)u2Sm$|9?N<#hbUwzmu=qTU#-I zg7T&I!}0v})_;D?J2rjx;q%+)&pTA@Wg2#-OttS$&VR2h87t=~wYltme|UBH!w+UM z|BC*<vy-Xgs;~O<>9n#{{l5L(O@0&q%k2C8j_rReW8aq<6ZdaWT*Smzy5smMMTev+ z#&g>{lynb-SR`$n88yYEEdPn5hxRhg`J9pyIajw`S!Ame@y&S>>jVyMR-HK-Q5NFo zHfG%I_gvr4DQTY6{wSlXsdynn)a=G7;tpCj%C8zE&JuXA(~RW@%d$-jlfB+B2X{`B zC=PS^!Ln=@gK+ZN3AZhmuJD*2`N6VzWvu*UCCSF$3G)PA%~%$abb6P3P&~uRq{ku3 zu@S5r_;V|Ya)o~y=`u{+7#3me{fJ3!h2+gFt}9JC>(&TvIc8w`AwXtl$45yY?n^tA z6dV8CxEcLcyQs-8F>1o`gGLjNJKhZLb4ytg`sAY>W0s?mc!~<6c8ZMFv6e2k3nw^z z!p}VMRp#g_=r1#8sCCI`NXqK^vtOZ>wfL;a21AR3PG1i`&?ws-q0s%Ao4btd*{Yn( z=EJ;GShlmNPw6p^C_far;iyIO-$MVC4^g{g3lIJ~Z+$a5-dQ8kBrSSlFY^YaC7<d* z0ePL_=&HcuZpLEm30}ez#8i~BEaFzr<4}G0<?76-(G%KNG-y7w%HU}zj65<|c*Zy9 zT~$&>2|1HZ?A~hK6!iM)BsHnzZ*Bi-i>6urnH<|+PH+0fbGl3C%0|7lb0!I>x>;P- zGtpj`Eh-u1cZYe({CI}Xy7TUzKmYpo?&TNXZe3Y(OUmt!<o#okORV-SeEIO~;lInb zZ)XtX%de}F<$Ir3U(F?7_dh1z?%(Hc&ps&I+`DIMJFCLzm-L_GzxDa&=N-TQ<Hz>; zJO6(De9ZrSf9uC1JDcsV3ONWSZGQ9b*<<E85x;A4?A6{1KIT_Fm%yu-XWS)ywfC9Z z{hn!e6wGh%79O@W|9<CAaq;=P)ur#R?hXGQcena$u>SGO<~GZA=CbWPnAaiw%B^hi zj>0d09`0HgdT{M+wHXrE*IC>zS#D+6l<l}9ydXR4w(NBiwK@5zY?qrZFOd>E-16nf zk3CC@Z4WPbePmtXp_g-Rm>N74O%lJx^}DC)_{!VMuB>ZZxh8No$IpXbIB)x_mA}2p z#I|gg)4NlGmd{*fq&->JxN_~}-8b@VgR`zXTv_ky=NBdZF2Us9yc-AAr=K{<WK|Hf z!>p*t^Pv^<=BBxGj;!sS7bCR&+`}~!6bs6h9P~E{Yc^KQkz6ENuCg{_A@Ah3>m?Jj z6QT_LZzUOS>@9evHtW(>Hnm9Q?5$ZpZ>_r<yy;rQlI)PRDVI|cmsEOPlbZ2~D|EG6 zb?$ZD?CY9=*$!Ia*ZVg;*p;GxI(cLHZhg(D_=O*sex7L6nci=rxT5@p=^^c)#Sb>m z__Jf_vAbE*)?9QoGd=ynH1gQK1!=Y28J#sD8=RJHP?i0CT4k+KbLVx>s4M0d)Albh zRXFM7xw`S>tWVqHFG)=ZJK?VI=V%z8WTA*@!-vl-OZK>3^olTuw+P;H%5Q3JLezop zZ;Lx7aJo$ETNE~P#xmBD`92@ApQ=2J3D`c*G3vm#iJe8)lOvm6=8CJVOP}zoi#vA> zvk+hO%*#7}+}wR)sZ)5~`POwY|5jW`RSlkf<MATFof$5AQWLw~o*<YZcMHxxnRnB6 zb9LJLqxZV^idXA@jC-{A$j6Syg2$En-0y7OkzRQI(Y&j++G|C3acRi#FI=56uR||t zVada3LH&nV#Mbu(=d)er`q~?GX4y0a#fH>2t8;rL12zS{+9Y{NvGk*e#$Ge#?VHx+ zeLm8Vw(3&F^y0v|6J8hJo4jvp;0Nzt*Cc0%iu?&V3F2J3W+@Z5Fl*+Vqv~9COS4Z( zam|}pv+1NK>zeX)9oY_1hQ23kogZ51-SgqS-k_qLwL|F9E`G%WTQ1F%TG!}#Ju`OM z&gIwIuZ4c=65iC-tZmf)CE0Yjf~8+(?54Kn$CGy7U38@E_MB^~*&aKRc8gwSDO`N` zl5b}0rWGmziC2!BX!3pbT<d*pLqX0~kHrzEo|MlM-klQY`@r+P*Tp&?rK5+k*e*Be z=rtXcTAJrk|Lt=#_oeH_0X3zO7rJ+fr0eBzsnx$sjSUFDQuy%axsro-OJf!s(LQx5 z=F6u|o46NUx16I|74CNGUlfPQ;_{bDkpg@6&-haI$M-<R#l7JtE}G7HvZTE6Yxmy^ zsZQ@NxrU~ui^fd4<->ZtVT+S!$YQ0ZuXTJ+#O_+M;*9ss37fnB7OZ-}RJn1Pj{b^A ziz3c@pDGJ4e5(3gN#}H=?@iXy*D^f+@0YCgJ72o?+W!sfmaY?AneFmQYT_=pB?#t} zSmjge>{7qaxm#Rz{-$mE`?x*TAKx9_Ee>Tgin52vL=>LCY8(DN=5BH6`DoGGS4(v_ zY>nD4#(qwu;Hjy*r|6psZ<gDuC$D5$w`awQoZkx<?O!oN>%pn+y3g0V)-2}W_}ubh z7Kq<<D(0G(+97|jf~T&ossD;y=j6=&6~h>AxBtOE@#ly4*kNfqS{h+F^Vh=MjQC>` zZ+Qpb28~|su5ax-r?_fOyJ~#2oUzOck)p*t$G1*>kol)0S^UNN^)fe2Zty)Y@$tUM z>g?3=V^ieXFt-Fo0gJ76=hpD6yD%`?URO;pW0!G!xT~RBVi(^G*9WKe{TB3Jm!96B z#AW#H3b#3b{jVB3YrFZe*Um>CH_lGAe5J`Ur`@onfhkx(?b=mSrioSWcoaNr81u~c z&jhdTT=9PTgG;}X7N*5j%}Kh*Q*rT(NdEaN3ptDw8OmilZtWEEkT^2IVzQ>-m2;0{ ze#Hwa-8_=`ZLPff?3>%_*<ySxRn6x3NGAV!^zWwsJ4N>Dw+p8#Y?aLO*!Ad@)lrtN z;~Oft%l7K9xx}{b@BIHyzF9STL#oR4)a#)Fi804_2ff|3YT90p(vVvfyCv#x&#b<e zoVjf2^PTGtnaBM6xa-4do%gFIoAvQN?VC_)Jwb8b$Il9L5>o2d?>`Zj_h8+_>IaW! z>GKNREM3GilmCxjno(C|#<L`&qi6iYU(dJAN!;{$;fB3>+vL?MZ^mD+Ns2hG6D5*) z!|G_=>f&tE_w1XV2MBNWf8;0G8uP&K$*R&buJiVGO*)|eWYwzfTbj=f?b8WWSj`(L zYQ`UP;%Cc>*0mEdHGT)4y*Qg)#`cTxBME2z%GiPx-}cTi{_Qc%anF>A*KC7ATiE(P z8=bpkXR!2t<Q}<M(qETsoMzYgbW`fNLs}CvC3z&dA4xr$HRGL<8lT9VFLPhd_@=RG zvrT~JlJJy(^C9BOQ`nhy@;#M`cst>*hDP(fXHEjizl(0a6<T~vHER34v#Bo+JZhV9 z@veE%%5A!jUD85ds=wCL7h6^$eg2e5_KeWX{QiRi#=CbNHrPEY@>!jLt84!CgA*3s zojxu5*6n3)bgL`F6NHbkZxXw;>)umU$9bnSzDuR6%-0mN$*pX5j!%2~j+t9{`Qyh| zGOKJuMSgnEl)BUW$V~m+YgdZ^;~B-<)aTsPNWWvHU+pbb+n&4W`cXB0$>isrlMdcv zuHF%UX8W(BuYbL`+<)0O-s1N1T%Xp8^0TJjn#w+wojmA!_{Y=(yI;1<Zu_{flU@4Q zpYp>NQ%j3>NL#6zK0WdI-mUBx$NY{hJatz&?{!YTacH(yd1mcrwNP$`<dE2ftKIJG zsa|e0)iq$7XGXD1_5Hdav;3!joqU6y{@!AJG`_YanGIX+HAP;g0`1sYz_#2HGxsp- zG}4+e(OucMpBYVdwaVS&ZQR4Wsa>)sS7H11^#&7eIp~#nq(^0|M&FqA*gw7R-{)wK zGmK2n&t32Q{IthIVd0}W4JUaxSX7@oXz)}rs2T1k+h4nX&YU>Eb$e!?WL@Cmq_*_u zw`VsW*G>xgeD39uNbAO#ZVDA~E?ydjtQQaM+~=rZc3zL6$;I=-hM!NE0^Af9AKBw~ zaO&s7j=l+Bt$yx_{E#lJb&t<<L56VG14ftJ4J<;8hDYYD*C<Ng?irc$C|jKEy4|!Z zt@F-HtY+V5yurWXyT5MkhM?&m+oH;)&%8)xddim@ba~%*gW~0xLgk&>Jvy%n11?LI zZj32aG(M6W)qiT%)itH_O;b;7`lpb+@CsjU+~t3*0)D}Bzppmie8Sx~Kalx+_wTra zd;-VCK3mL4?X~oJbX+gZDOb``X4`oU5ux%4(syJu%VqVKB^v4<j#+>B#kJ2HC%g-t zIXiS_wfNMpNBnI+cdY!d^PJM%)fQS7i*hTO%|N>`QhAxri#P35-!(^VWncCx^<5oV z7f!D7nHIT!SHQ3NOJ6naIQqNaBl4?>=<Cfc%XMF*mTbQeX(_u%hjaUc_*Ne#4c3=W zP1bGNrFAniXo~HsQ>)(eFZ-(ZW?5)`#P@*PmkU#__|BJ`{Yxh8=jlb~H{G3|dwGU_ z`evu;fA8IS_Q7M$>}57rH_N3a_U_%N>VA8w_~#F;XPz}4t<KQvPT#?Nc45ewXZi9Q z?ywhJt`>JwywCfG-yvtNMEmBfmZL_mOD{5UdsoVwV*FH-bZ*D)9K+bwnb$VT6}%JJ zDiXiF<H|PIke~MaiH7z^6oq1BD)V*kKNQdP=1P@a?9X&hSK`z!*JNe6FWpz<_n(ld zTNYw7?e7~~E%l$q!MjSk!#+1QpSLQ`-xT(HgW9!AKeXp$W@n~cyC^aL>$*P`W)rkN zn)g1Q$Gu8oQ$+kxD~(l}w}h_F?oP1M?>WUWIY)WHboQ6oMJ}5j?^SJPGkv)zre*5n z{d|j4!?s;|%y4SW)oaIHcK-Y7ygh7YgWAsTJ2u~nTl7?b+i$zx#UQqwl4ifl))~+B zKfUeY&aVbV^P@ud-Q2Byxrr^Ue^Xw|e#WkpuC>_mBg#k&EI*n<7ljd*A0dYhS3(XQ z*1sK>(8fB~scg!{9eu(!N6NCS1%7>*nylU+dQ0W(BIAtIo+c$bdHK2VLQKXD2Y$YI zT=C^$59Iurk0Ri;*r4-g9&_&C4C9ZS*1G*M_W^<CmW<!aU$^<k>mQHTJAOU)_KVXM zUy56Dg_$aDcLxOsvQ4TfDegXSWLqo)%gV3^g?~@V82BlsU-@UletmJi@|FHIub0pI zDjWATSylgd*Tg2FVg=T=4C5#+$u^6gB~K1M-_p6c(uz}AY3kn9leKyb_&2#uo_e(E z#_adZ=7MfLtOh+6&+odv*(F^6|HQ`f|Blyh*gbMsAb0kI;Eik-jSzj0$$eiUr=2sO zaXMw@a#!K^No!Vo==k3;BWZ<7spa-r*LYY<C-W~XQn@dGY%*iNMRU+Z#=_OvjU^jq ziEA65Og8p(?rLiHdvx9Rx$@~HFY5}Y`rUrE#j9K8?nCW6r)wPM3apqI=R7^iKKc8# zzxf9~?z`r@r*yv5N59u<=daD3E*yMhXR<(#^81VJUE8PTbDL^*ugqp=`n~dl$&AeQ z%6V6NcX~fQIbrL8ONZ~uzk7YM&*9o*-N_RcJgD=S&h=#RUC*y)tRIy3rv;up6Md(3 zncS;?0j}&{t(~@Pig~@LP*<{YzQwHdcdpbOOY69@#Lr^#sn=f_=B?sS`8nIB^OM4N zhLzj9g{&2do-AKo@6Q2Vf?Y9V)|v=?<0*cbYFpUfHmS91NIuqmwj^ek@Qg*b4%<rU zy?o#|-8IQ*dE0~LqO;0&Oond-^zU7G-zj{^y7{!#j<+`9U$qbV9k?p@;bX&3?*p5w z&g=5=m!IcRwA$m^5xC*ZS!a)m32J<4zJI-*2tJxBdw0*dFu$A&ht}Vj!?F35!T0Dw zGhXwnW<s;e8ZQ;{_SjsqSGsC@>7Ibk-6NqAH@nttG(0P~`N1Xa()nvSzeKI<u6uup zleeq*J-fcf<z|iVqPLZzmn`GutK4JM{rlLJo9iz;D*JYGN6qvrZHWzEj^4OsKiO#B z`!9Z;Tf`qTCcQbm{*U|3eV_YEi(VBUSQ+sBXhg7C*zVF~p`z>izJKkrW&ie1qU`^_ zb&qGnIJxp!_UyEj(^8n&wAEctGJQgE+WLSSa@YHx+UQ==$}>wZt=l4<<v*KQ_4V|J znQ82uO$WI)%09|>%Zs>!CI4DjBHuNFe<T&<kPGNEBbUBgCZR(vZs*DD6s)}-{=u;F zrQ+%?^8*nH`UOG?j6GZL^VnDHJ#;9-flEd5#-G}AiT<9O3l|A)JS?$odDRu2d1~FI zma&)8bdM}JTje3J^{K=XaW2gnlB}FNwOM(uwluX~6K<6Wy5h(AICycBkaN)5@Cibt zX?5y~qD%W0DPBFc@u<_QQ#-x+gtWI#5pqe%Sn0SW%uCl}+QOymnp2~+9LxmI1PVV0 zd$rnOn$Xq{Vs|_^f9MwG9OgG-$P}*$FX=gPFzHdwRu=Ey9a28R^Y@$C)SsNQm|eTm z`(o0Ds1Any1lvMGscGs##o1DuRO|vbPcRkcma~6+e2UkJRGs+Miq|*lMQpgUG?7oI zpmXZ|Qf}9l;x95?VXqFiO|hBqO^WMZK-R)7jjO%~SWSzl?pe6(hUU@$)o`z-*zSrx zxsCOf{l9gtTsmHBc_r=fKB27R$_}d*s;;Z(*WI#ll5E2))qf&hi6)Qt$w_T@vX+xF zeq>qYwNU-h<3}Z``}z{^vf0Ian{=#0rs`~O5a-;<&Z{;o%XoZ@&9Jc7YMY3e+u|2Y zm%DB-oKfDeHe!cQY(mV&Ya6$-D!Dtf7~L`4;2bG5%TavR$|Cm6D$S=y5;wF>;rhOM z^@Tp=^ya;X=AAK^eJD)TOe=VXO-{+3?wbiqTGq|r4YT@^WVYt!h3=b63h(bqG@GNH zWN>C#MZh{$lNB1`EBlj$Ev3U4Bq|T=Vr<@4$b2s8(mCaeyb?M06`R>6C*HVmG)3(A z-UA7hIj=2lEbX7$ZPS0O+PFV0|Lv=*t5+Z1UH|v9mCU}qJ9pOZu-fzY)8)fE{{4PF zJAOUi{k!-6*3^EtJLGwUzkR>lzp@|yYNf=(+vV5W+qQgX*qYj)tC`>BtUS&9;3lz? z(Hpyd@8ew`*LwJN!H?5#ci%4fq4?+JztjGIx<Ag(&o{d(;=JwG^ABgu!+%s;`uy1b z)N6a9^xf#r%xvQsx0rmE=1rZUWpL2!0oOK*=9T&fQg)Rl1>H8flXGs{NuFgQ;ti8_ zs5S}ZDD`Dr+c7mqc)_Koj*;u552-J@(#Gs^eg9U?fK3b`Q+fA=gly;fpU2yloy#;? z??B4$<p+2T9z?&J?V~$Im%-J5C3Qn_MfzbMGgd8q2G->w6Zdk2^-R~yHQQSK^wW$9 zRk>c>hn8^`PveTer*5EI@N8D;_M$h6kCYZ!tf^tU%#^<FQhRB)n1v5ZN_W9C;{{?B z#l4lUSyDMxd9X}8&vb`HBl5x7iR+WuIaWE@ui49eriSebQ@-BL+@>POH91{Z{Jmyx zE{=R~)?Gl(Z0X?(FV{rPJFw-zY~_WwBUreS3fzw#o*|PCvUlZF+3rs~N<UpQw#BG9 z=oUQFC{BFF;F^BaXTR2@X_5ildo1mzE)X(Wb*yOt^A(n5toLkGe=uG-a$xhuCRa=2 z^rzf=EMtP)e(J7N^iD9;GWcZDnAvFTzSUt-(>aHT)sO#ky8N>C|M%<Lv&5e2-W%(# zdHns;p)Gd(NmWH_G=KiPJo~+S**Xd;J|BKvP*MK(w)2k<zn@oq{y6>h>cihJRMdVh zIDg5i*yiE=`*k~im(=dx%=UP9ea!zqKOdKG2M>2LOPxxavgk&Y&6(N#<pE7Phf8~0 zcOU=LyhL%$!HY7jubhe(%D0Nedgyg<ziQg~VAkyHymdQwK6|%#SN|)!RlirfTm0+s z3T3%ZhVF_x74%kcKXWQuxFaC;hH3qdHJPC<`$IgpY}7eux;TCs=j$keN!p9<FA$uu zD!eGXZGz21hf+t6bp>-O8!iRfhfG<P%XOt`MvTCJEr+Fi@8hyGI_e9#t~4!(>B^a_ zJvDI6<V7xjHm?z0Aja~v>AXw8(*7C2ZhvMoZdK3_XE|_Ufy~5v3rl7^J6$4}nD*p~ za_0go{~0fpj`g%?S&FOGT<)2vxA07k^b?U!drdetYbqVoi%2q+xWF0P7PRHbADh^3 zEYBuQlYJc)%zrJ=SGLo-=)sc{r;K}!an8`yZ3yOF9(O#<)a7>Zmm8XML{sJ}?rzcd zGV=2Kl=N|FiN9j<h6!Tctkb5j>#7;gNa59<w!_CDZ%J#)(S)n|?Mt*h44-(%w#iGq zUzZkPn6ycBiNrQ8O<mb-pYGn{(RTBxRMb3X?o{*J)VWLWGMAI^xdlC?P7RN5pO*An zv!>Get4F7%SK{pCBd2Cf4`#}ra^mxY8=9-OYdWo2Q)%gXDBR!B_d{ap#od}lnoBRu zDY)}VL^e!p?@T4xV{Pm?_pjYbIGn;ZX^q0+4Z#s|Ne`<(nRGRB`c%DCc{!2OnRP+U z`M&ehUhh;{8E2>MS<v_M#FBTtOy@tvt4D-A@z@}l{nXIa>UhoEMUe^S8kf0NI*M!) zG=0MJGW5T(bJVHIr{7GUPdzRFbkB{5&7bW~{#^XzPhinM4a@o|bL_p&$*Vr^pY+*% z<<1AQj+%C7i(S{Ti>cZ1qu}GiSBI~*ujUVDU&iMnJ7ZT`>DgDauA0uy-nOOf^P$G& z$}e)0AKw&t9(sMrF41#(M*JNdS`imCPpw{evUKi8uiAdC;GXc<$*=7M<EkxYD(!hS zD`vaG5z!qV6a6iI1=oP2#Gc&FO>mmf+^uvsRsX5?t64GEZ|bcR{{4R0jdfKwQ@)>= zZgF*LV20bbHp6ExcZMv8wfkXL)?yi7)OO#BakG;6iMF+t553QsHqSjYQ8YK9V@AW_ zJ=0_lKG_<Vb2e8nu_$Fn-_CEAO|P{*ysHi@s18wEF=^6S)5fi)jz@}Qj&7SQ9BiAA z>nmWWd3aaw_CQXbtqogE9iMDu)=}&@V&q=7)wRWQZFRO!%VD{-zlBr6qlI1OozRon ze^YG3wl>2+)rBrTHNGmvDdEwFXV{oF+zgv|)PG{^+e1@M%H^Icb)7YN)4!W1*ZsdK z{+VT2yxpFS&%HZeNaUUmj8RVrbGd!d(n4d2?X7u<+x;%Cd132au&a6FP4D-TNvqd) zZuQ?Yt%t$fIp?eC#%q<j{n^33akai{eB0(qEjcN7J*{fbuUP@JACyf=k4?$HFgxSp ztLeR4b_+Wli+9hT#~3fEGkuQgf4%?9#9rFfU-T-HT<<>N?d?jD|Mo$vm#_C+d+oo$ z%2YprnZhp5SSDIJrXZM8<|>@>vrWA|C$_lk>`l{j`M8>jj}MQwi$fXEq0zHfO~bFp z#1@yHy{hMxC7XOAS^2u*l8IL~rFTpeUL7TPN$%&GWDo1(>2nW7UfOds@8Xu=$R&T& zR_G}0dLkq%%TV<4&bJ%qpB*)Fnl-1GvFPX8s+{XqQG748D=&tf<T_pW?3C_vnc`Be z^rO`rEC$Om4h3a&ZBm*idNSbM4f*BY-0H6xFS%NOcuUiQ#_f&OsUKGbF5k78O(pi? zoT>e;b~4KKy48=qOR_IJp7Y{9N9ysPn5{|^18k>~nj4!CKgK%Cw|KUJK->F2T(S=v zv=;Io*?RW458ulz52u|pU=eBOJZ3hb?ayy6?jY$mCS`AD`mGV3cHq;mo73;6vN8!b z99a6*bj!XN0Y(-c3w4DW20PFhi0pDtBw93gY~5eGpYQzo!_v?7_ApIJ>S+1(=~KvL z)3<9%<)XN`S4XmZxGm)5@Gx+K&)VD8EJ3C3xD-5?7~`ge`!S}n7<pZJE^{ZsUgyfp zrPnpp?>5<6JMRs3W^HC#8UOIqyn8`RnuRfaOuJ8Zt7(0DarEGcc~kqkXa0S%W1jw- z*-`xSCrA1JnZnQKxJ@T@;)$pCU%qA7zHY&lw!YI6*V(t3-Lj~haj|}b$+C`Hb4ong z^a9<dS9phi|M1fK!(!JdB~L!r$~f+MP%`84e#7tgXKWUI_F1Jn=%&%1t<$evWnI4Z z>)JcE{A?N$obw#t?AUkyjdA4hNWEa+pFUxoZ1c~)&I#jjOuphSn$}Ps@#4beHTp&~ zzb{BX`8h<abWi6dg*y&);zkDpexx+7+8cJA(Y0(|Xz3S?$0Z!olm7=#wq7?OT625F z^V%(PUgDF5gI*qtT<<+I<C^TN7aKi3E9Q$OI9Ie9-0n5F+7fy){P@-2FPkJjE#;Bi zAkVa0PHhI;>@T-`-?gVO_e(x~w?4*>Va|D><Ib-F3qv-_9{q5BeL_5QoX_JlkrF|3 z&vyY%VzY{;nLXxXv)X&;`-v^gzQ1=)N-dF}9;m5)b%oP6Tj$TthD^%GRhw>o&wWul z_ju@5Q7y+K7i!{XOJvXLHd*&LP|=N9n6*s(tr1u4!`>^W!)N8s`YxBdy@7R^|HVho zt;_E3c)3rO^M{3B@#R`;lP9`&&HpX`z3s-0)eg%h{ATxD-~8@Zf$yfJg6=y`POm<2 zZ<_vJz4%p^^iFl9`puE8TmGsfxrc2_run>|0Y8)5_x|{Im7#R{k2&l1NG<5{xp&`n z`lbn~G2dr~i+`vs%D8)dkKdHuQ@uwo9J;T#v7iTAelaybx@`tJiehMJ4!!P>a3|~S ztjPRF9s<Yj{}id)vb1pd`^OVmPNbPUIV8PyiezMhOj4(WQ-a#hZ@2duHQW|R-?Dr2 z5r2tYFCT~hU$suJ;o6a=YniWaWXpc-*rF0JNBH#a%`7aFioG>>EH>@gSek8bZ+(By zd9hZJgf(BjU-I|YJGb}UPIHf2QL*d4-f-H*8TF!+L$mS76)w4`?e`a$Udx@Y%h56E zTK|^k&90J+JwktNwz92VEp}%5)ZWcAo-oI~kJ4~w5Yt}T*DcUgra!B#ue)`N_2z`H z0>@52G@5nvWl*=Jj@Q>GO(MS^D&^ms_iIJ__2;FU(;9@6cFtf}SYc=EaPrQan+GjQ zIJWG!7P|GoF8b*CuQBcAp4mG%9xL35IluO_=BCESM#naZ$9<RmzjgipXU@uN4`dlf zN-(pAp43^H$l+L~9>cd)_SjB?L(3BuM$eEvd-~RnQo$u#821TV=xjb_`TCzh#2Ky& z@rp+Zr#RhvK6(2(k2}u_5>IK(U}4nkXv|m@ziLPA)tB4<PWJnL%>L&kIi5eC%l1cy z>5BY!PJNdc%+b3x`QYn_U+K@quh;GWd)-VRvgL|%_q^%}J436KcD8>DEBxR#eM(F1 zl^fx=V^6N$ZPzE?RyUF7$Kwx~E0q`3)&1m>ypn%ubGoRGF>}rrKQ-G|idmX-OB3d$ z$a-)#aOh7Gl@0Q|maS~Q(7`k0OQl}hW#L7+vxQFncm5}(cT+Wvr}T#Np%!uJk8Irq zJ9xZPEEnIFb!Xcl@p9wC=m(GH7r67aep5d#8ge6gvQV|0OWjt(rQ4Q@l;&8*du#C) ztG(PgO^`+8B@2h*f(SY7%XjV99SVKHzWK+w4H63*TGpJqCx3aO$2Otd6QO@Zd>^T7 zeB^N>aE^h)rMiwsHxDI>-d(o2V$#>@J^jZoZ{gR=_X<)lS@mgN*$=L%R_o*M2OM2? zDSyhIqw~+p%6_m*t&_aNFW#nU!NzpeFu|h8U`sgbwv-nlA)h8}S3TUa@nodsf8BnG zBdz<YX3m)sa^%1lQ?4yy%O4t)eeumTy)VzFJ!e`_?R1f^N{>!Ra4-C|yl<M$g_W-y z+(i|fW=UMC<x!p+ykA;w*{?@uv)pWiZGOI=Cutp!#42GnPx4GnT29u7-OV#?yN@mN z4N~LR&JQttSHe=Dyx*yQ_kowcIjo=j*&WrVW4YskneQC&&Se)hnk~C0-~PBHZJ~$a z*N<7k)g8;9&JR*K>ihHg^>q$R`z%8qEc^30Z-(@D&uwlctN#=i-m|v;+JF1{QWdw4 z%zRtEhWx1Vl&Po{)^5C-*tJG4G^ATAGW=2M`H;No&_w2qOiHos6_*`q#9g-WeLS`Q zO<ed3!<8mA34X4R)}8#pxytYRGQsHB4yE=Nu@!Ii>(q8S{w!y^(Qund{d8Q_<%&$p z!@<%_mpgbq1+DpbX>OA9g~F+2hj<>PGJlK}2xK#~)L+N;b7$6ymnKiVo)oyf`}E|D z{GY;WpZ`3zXHPAXsh4^Au!`ZNnS=ADPlk+Xx6S_^?c-D^oNIqWw0`kp25!I0Qud1* z3|GZ7KHur;ci19^XS(ZJoxhc@mTKHn2|f9IdS{%<mctd*o%PI%Ub>fJE9@-HuoZTe z&>2`_3cKjyMIIu@@BbCCNxFLL^7qq=1J4+UmM&JAI`>S-bjPGML31?TrG2}c&-_X& z!OS8}ZMv?!gI;@a-QV|@@3Jp2-L#-I%JQR@e3VO+kjA;rr+1^6m`?6g6=9Q!ymw*O zHtD;4&r9~yeO>+i<RTG9jk9M@u552Ftl9FYV(M=$Blm@^W@<}Vgo01c4_mk2DLdm_ z?Ir~Uuc&&}a6jEs90^lq{O!EDeopv<Q){oBtJz|7BigcSyR54SliE_%9fcWhwODWb z5m<Xoq_yn-;@h7}E@!^DFTKugr-#xFn<Kl{c^=ITSZjFflJCR)>M=zx_CKC&7P3P3 zgVqHd*Uf7anV#_Jgt4rC8S{^SHG`Oc;#~9FUuR6r`+iruHgmz&*Wr-~F%!Nsy5=|* zTF3dD@A_(dx7d35uJ?6in_@H$=ks+0WU+VNak{iK<8|8I)#_H6rPbPQ;c;;W`u2CE z938kOg)$nN3pKsDX7pw8N1Zj-HcTihex|?NQG$1p^UWHk8>`PNEcN}*e%H2uvFp9b z&+l~>vM*c(UjBah;30QPfu!EC#Rd|~_NZ?znDUOdS*!8e{9k%9es$jbx}1LH?|K_s z&Dg@!^U^kZ?kbnQZ!-J$!3#IsZn6pgcyY3sVUO(16)7pMaasrCBVH+}7EH)-?mwKd z?zvh?TKnRo_uIGq>}#z#ZS*xe>AvS|mJ4en_<Htf95Y({(K~?YwAR7-b+cczo?Lpm zRqn^Xg<dCSpIqn^uxZZwEiLbDZuhbOio3JF-Y<G;XL!o(SIfE<?%i{hy)@$U9e!OG z-PCJVGmdA=<{V?yxl(oYE34C_xUHL&7CCrs*_U>_S;mFyV=-@an_Okfyu{;;om$5O z(o8?|@EqM=Q#VI(;h%6L5t-+TtJVm(PgdzTsn#jStKRG&7{vBmE}rWWf6&ui6{ou2 zK0hiEaO`iBBKyITW&0-HH5PJi5c(!_L`3~K+c8F0*1aMNbz?RjSoG0kMz(!V-{B6W z%K=M6M18OKpHH_e{9^Z$!{}6F$QB04a~f}MoY;`5Ri=|NbKQ66%}Yci>se+pxQMRo zNeM~YbM@j~n}|D8Q@0hboarYfI7J{q^^}0mU(I>*9wc9!c!uZKrUt&V9Ipzjszp>8 zT3=b%tT<rrAHc%Zz;eq~On;?7`nQyt$pYR6HZ`+n&dE}6d!UzkQOdumWWBh`>jw#P zEp-#3wKRVoTeZO7VD7n&qjv8km|0WHN_<y~6$Y-5bYXTbUwR^K!w25#BX2%#U$jf0 zY05tPBd!Oo3Qt$a6jfEbEBE8`O{vW<cUZ{SZ<JD3shO_Pt(B*;?!mgWOP;LTOD|?- zY+rfzT<YI5xzD_~J@!s4S5y_*zVc4)z1EUfx$1TNMbApU?X#|`^-<9|m=e3s*y2vx zV*R;s_urQF<VD5a{a$rzf#p}bXWXk_i5~aaURqFf&35Jdmu~x)zup`7m;dhnIp^QY z>~Ac)FZuGrvY6=s7W)hI<{bakoak^bL;OLdK;Gx9_*YXz_H`do_!RPJdt>#AfVMc> zsU|ZP@jK685Sso|C*|){F7wxle%tp2E#xWK>}fHdEzv;U<#l9Qkj2k^^M0rV|9hXN z*m7o%-I=N%{8neCe8nvNj4eqRa5qLQT{bg;9*aV_csv>%4O+Tf2VJ_n>jhg{qP_*E zN<!J+v_B8N@^x~a(Rpl`^RITF|8mo9o#oGD?wo4+7*g&XdViu<skQ3sNN28Vn^`}) z9cupOq{LpXe$n|I*P<l>bDO(cu32&NPU^YL^~`(q5}S_5olH|t8h_p`v}DG_RgPKG zccLcbHOKPL()xK-BxLHP)ht_2NrpD3i3W*nnPSMNFgxS~1J6<qf39UGId(WL`6<C3 zCf&r9k@}cvhpF&Oftei(R1FFiWeLUn`r+3++w_#d8W-hNY>u~!8&+O-tNU?q_asp{ zdv&f?Yg^ZN>D+bN=5_9_^Et0`w(Wat*~P53Pf=W)oF^}RAzC9-;f1Zp(N|SWCz3>_ zeBfw}VG!T{%unm#ZboHQ-cXgvn*vPx<84D;SFvif&+5&d>b0V^e^wChjXuT2t*3k$ zuR7n};b1vStgpGw<PX1BP{vJ5zXfcp{2W}5KNzQQ94l0GsC;3xq%kzyMt_CSF7BV6 zycaeYZfAXCJ<*FlBJtc&<}y7AjTZtDAJbp7s^p3Wi9}7QF<>wAthC`aa}1K@XWl#M ziq^+j4#ty%rZ~pBY8{vQdbQ=y2OXswVH0kI+Wcr>c*gX%#KX8|b?2`MJQ5+j1w0Z9 z7CB2<IJoa*X5)#{n#s7u!JG3^qhn=V+cd{Ksiww*CjE>yCJ~Gt#U7h;8)Yx8DY0WU z=rmPtJF_vQW`a$kgp*Km?8*h4r*z+$9b=mLeBnKdV~=jXV&LFQ(+xjAFLrL+zvtIq z7ySD6?Af<}ufAMvpa1^&^ZomG|NMUS<?h?N<JY~9Q=QTA<=2<%m+$-C-#_W&!&hG( zf4%+t1D8kAJEl^9!;dRw9qZY9ZrY;iqdW2sZ%%*sCD`Kc({E36E&dAp`||Jb`9JMH z-{<8oa=qT+S<iRBrnt3!`r#*gT@EXTf4m{YpWYd8_wS5TOg>i^l}ed+iaxtM``EKw z`(?WrCg<0S&evWu?YZ1#L7!YkwX++ACVS)<ROMN|67;EMT&A*7I5_J<p^R06w&nZd zDlb1RNN8Miz;?C6&BWTZp&CC0LF4UZ89V##8qbi?mb<JNu!~`e)85%VQ?ovJZrC2k z-?)i&LBix$5t?fRcy=<*sj_D{rO)q`I7Mi&?#n>Q1kIeEf<D|mI}d3blsC5P=~3Uh zC4#RpD&g$a4bdD@CaMvI4Mi2Rl%=*FnDzNgs-DQ2T?$$OqAMyb8L}EJ-Ln`>)mMl} zI)CNzVOP-I@XW*G!;0AtMbcC!lrl`x+wk;Hb_>hwcgiKN3k=u|bPb+5?QaU0(>T{i zp*7iV(W6}lCY671+qan0On9ZjqUs89%ZAKGMSWAFKo=>7T-U0r3m&*D)TSMqfB)W{ z{>t++W2`To6sbF+zAH%W>7SN`%f-vL=hyFI>nf=Fc=&TcRpsB?wH1GVHt((YeE#+7 z%ikYV)E57rmpQ4>?&JRbe+#~U`}KEPSl|19g?~@)Hot%OpV%?w=Y0#fElY}75>2-1 z-@DVudHlCo-I`m~C*&i|6ML8Z_POG@#q*2t#Y-wFLROr!Tl|xX@+KG0o^$)jo#$)p z(!W}+J|9_o?iK%LGaKcDY9D_YSzUa<%CfVpd$C<(K>W=9%gL#KH~H0EY2$wNOp@Ji z4X3R}iO|hdSB=={O0M>JDR;?4mN}|HhufyEx7Zf@E7(F$(p#lMQL=RMjD=H5dSxZ6 zHRrzjUGD!{Jz<ef!(xN)93G*(m8;sDRxH{cn;|A~{f=x_)I;%TlNGs*Q$=siG)=d9 z%{s%Y%S3Kg%I}!MCEvotJ2H=2C0@6Bqi|g_n)l|0INxu{n?yzXZRTvzdZaC8Q*_3C zTb`rdL!QlU5nMWJ;zM2U-20Xs6)4ffYIOGTAM>#DIVo+w4Rt+K*NCt2mUZm4eBExq zH0gVC)C8}HlN?*-l>WLAVdlPPtNGJY*{_`3o=-gGp>k|CQ;S;1Bak9bjZKnnCnA-! zA5Kf)SR!LEgFA@x=rzu6*-lB#16TLhx1Sf+<IepzU$TYQoITa|4C}}3wlDvmek!}} zOW)BSFaDc8{NsK1Vc}`6|N0y}?xGLh{9iilc+eXEi!ZuVt~6-nw`pik3UD^rbh&ei z>A(4sa`(kFWus*C3l}UXwO89)VGykxuYYm%N6}XvH(m#?ius>!8Rz$Z_T$Rmr)2W? zWZFFU21l!s|0177ev5pQp2b#vIyt$2iKkDb(eV?9XJ~pa)0w#`<<uk)WA2>NbC)c= zpX<!sTyk!c<!Lp!*%fE>W||nWuk?_rmeGHlEybDqZ?4OOxBKt?sj9CP*PpjER7L)= zt;Ux{A~kZVXOC}ojZYL^y<|porNO1p%Zu~h+a*O#T5LL}K+IsHZxhGv4NZ|{3nLR2 zdoNsmg2PmXF{;&c(cIg@A^Z;7J|&J0$BJ!Veey|)+`VR-^d!9-#w$D4E^s_?CgEY1 z)8g0jWH*aOZcT_3SpR8;bhM4gai221{<WT~wE1g}ZBn@D;AgvN!rczN9f`AFp0+&x z>aFsEphY+3JK7u1dsNLRNZEI3P5p^aHMf!#J7wign7g&RuB$ayh`y4*xIE9Gk4OJT zLg4Lxy3v7oD>_634KtE?b^HHy-Fubip}mUt-i+7-Mu%i>UW-$#{eMw^dfCTyf07UD zT}s)!{ZLiip`-c+7jjliD3)#0o5w49?QN#;TJ4xUSLGz{_=?+GX<pJZ*|nne(99jq z3wP)1ie%33zHX{FZ|n3o1s^ZSA6XX7-1;KVW7mq>rq0B+%oO|OQ(o-O(wA0=zHD<b z(%#-V>ATC#{T};Plr9pG-1K};Yld&F`4Z8)GA5R)^)V`GlDq1so?5hzbDNU5gsPm) zH{Tm|9;JcTS$-FslRmzUbNk<0cdwQBemJ_$s%dNB>ZazRo4lE>%Is$@WIUNMVNU+% zPj%ii#Y%k*D$l-okZ|4QW~7yUa#X@TYuS@4f~H$Vtz4XTyFbHKs{6o;7z_0!$GbA( zol@LSXD)xfSlasZb<ykF%v#QOXP@1_Ye(AVRjHfpkkQl4b}$t8Z1QIRb9R=$pUina z!{+!COEvqRnU_9KiCgx?Xz6s#y*@8fi}WTJ&zy7mNsQX_OZt()v%9`s=n72q`1t)| zSdae7TTJWEnDP7+xva58_P~|{y5VdO_S|fqATcv|#fQe19LqKx^0>0mj_2*J(_xj? zO)J-}+;4cRrF40{+|%vK+qURxlpW+Yt2$V`@$~P--}UVdZeAqmm+^hu^#8T1_iVlU zdh@ayS5>V9Bu`J$%>TNbc|wWr-?ar3D_;DGX|QI<be(!h*KA!-V(ISQMbp#o^Pape zvbSR63F$9N*8{(4u`B5A3SaWr?|#Hw=I>o*9;v=JPw({F!1iTx%-Rx$pxEGVTIn7E zUjx5gVxBN9Mysh?Rpt3n1L@ZF%CGjm@C&qZmijJQeqYmS_9@lyt{b*(PaD6R-<xu` zcIk_r%#*!J`|R%<n6}LSoi8%iP<K~=$-1gTUVPOXemh;1ygcc*OTpIS_Y<b{G~E#N z5wBl(rs~EE7p6l;%vY>wxBcn#GcofYcUbg_-Iy&|6GKBRM_C&hSsFk_`3W~v-_DB8 zzilSb_WrMSi6*1)>CX?1V&^0sou${y&Ev~`aH?o@hpzRcJF0)bF81qF37(g#;$6H$ zDA!Ql-mb=TUkcCKm8@&ao3}4MI9pgrms8~V5vf>2M}Bc<Y2y7mEek*Aez~`30#nb_ zf2aTazHdLTuWk9_&u{J~SV+b2PpD(n-NLD)I$=iCzodeXyivk`-|b~(47~J9ef`c2 z8p;iUi%u86t|>5UNKJB`QxV1XCuCXI>y=7ejFT@3$uLH!dNVRgcpP^PDg6EB$Ki?J zGb^6e{(1f4&F2f&{~w<=@ZX+wd{=>HvsppRv5LnB<sMxA+kTB_g>K@_<z~izOAJ|? zR#?e|wtxQl<HqlTFW=`MzHBDG@<{TR7atRLvM_3Tbo$&=RQ~19>G;i{NMOtLZiRF6 z9-G9tfksQ+`3_y!7t4C|_~WJPwOum<7x#*uik}_y{sL>*mDa6}Th&~c0yK}jKAH4} zwQx_5ZM`MuBr~H$FD@@F&X-x}ID_H3pkLB))eHX~>Y5x~o62`sef^f|^qUiuH6z;s zrK+V=lXh8ro%CV(;_k-jET7FnSQP7zW=>Pf^)N0dN{!P$W*)aF{FrX7md`v@lRMtc zYg(S^hplXz_9O1oW$)W-Sf=Uc={=5n^jP({U(2eezvi9I`?KMfi0XBdIeyI+_cMGx ziL5s%pLJR)IBM4E$)!*3Tb{ZrHfe);|7(Zoo!^UQZe7}t7xT>K&%AusM3H6jip`EM zpK(86W4`)zuNm`xQT^+ILVk-Af@&`9Tc|Omac_wj`(w{V($3MR`<wnQle-(Sca{9l zzN+9aPurVk?&VQmw#;nyQSTY`OOER~n)j{G3v{yoFm1KMsSUqQYg|nBnz`lgO^b6$ z`z;->1UVF*`E1RhxAk2?sp=<Dr=TlYcR~UdsH}RG!CQH;BJgF0V~%=eqWSf@d$TgC z)aD*tx-#<=Lug6=GV_;DCzhPqbhGryv+q`V(`L0Dn$|54&?7qa^`&|Gi&rYLYB4Tc z<Ifg4KkZ^l-W+kKeLAtbyw(TInWbj)Hek7Zyqcrh`L>)*iBUfjLocdGa5AQ@>JJMK zHQ_v)9jDi`=S#e@w&W{wE-9IttbCqp>y<68nXc8}Y}bA<@k2?9n;fT{^P>3~+!ZD4 zHk=v@m$^<Xzu5h3{fliEOk32gE~Lix?R{MuQLy{dBn4Xrm9|}}N98$HntZ-4Z=J}d z+~S#06d(0Z=YuTI+tto96j@tdY<0h@Z0wgIA10}+=5s1YcFi)!SwETY>e`%raYxnb zi-BmTkehVpD?35QS<94HZ|;Ao(8A35GjW;ncPSR9w}t_ivrBer$EvLGPd@nFN8|OW zrzSa-KlQjL-`>6U;-OcO)yda1ZO(0Z*ORXPBBPm!S4>6X_)puoOChoQUpkh@9s2WL zrsud`%NdSMGq*>a+3<etx?3U^ZmO+ouFR@t;@Z7BYx?;%2ce5|jH+c#U;WH|-y^gC zO7^UGD;MyG3VALT_@JlwqvD%4_rhuSR|~vrIq+TBsW?#Ou9HX5=Prd1(_Kynw+V=> zvhG=PDE4Y?%YpCWPRjdpcQ+m3-p_0A!Cx|6?hN<g=2wkhFCJdk`Y@FL&xGElnO`TA zRDI369#VB<t@HW1I9cY#jQNj~#7<Uxn;dX6$Yh_{-$&h?3-(s@->(j}cK{8Oey)*V z?FszLGH1H>?cEAoj|!s}o~r$m`?Y`4AE`fKo1HK4Eh_8!&s4j<?HsnU)dbswkeLP1 zg8*-5c^2RD5IO$7hD+A<>V=oJJJ0z{S|wv-DxBx()v78P%-A?_!`yuP^;;XJiA7i( zEK?QVJyCA$yZZmXbbB|Lf8X%E?#uI%FVAEz&vSG0dgi;{wsqpPOTleQo_jK%)PDQ_ z>-pm^Z;!uR{_*-t_I~5e4T2xu{<(MfaMH#N=5G1R7vC0ae0@Xtcia}YSw;FWy>|6S z<5<4iRY({v-uwGb(bK|%6CUu~@_v8$#eG3N_pmRU=T4XX7v4AZ+Ho%nH>YfW&!z&? zs6L5D9Vb2>DR^_=ZFQu;(d4$jyIm#NGv}~A{A%N|IZ~|tAk+IvC5HZwGHez${Wx7} zv|abr^!uE7lQMp`?^XG0Au0UkeOPPe-sca>OshH8@Z{eUeCC-V(!r&i(xlYmyY!m) znZnH0>@cA;NA203i5F(PXc26kB5<!oAmu@Q-puoiY>T(dKa$+__xG_Y9{Y5r&b#-V zQ~iqj<IaYaPyV|+p8WYy|Id<z>loSJWrzCh?(H{cj53*guZ2k|#55z&c1zB}@Q3=> zl7Cc-x4eGBeXJyJr|0HJ_w>%ZVc4>tQ~YZ9Y1L=*8by~}TBo2YVz`t~A>mm>dfyqw z7T>G0kJ$-mto+2k;g-7C2Cjv-Hbh-^o%Hl~sguY9*GS>Hlb$?yXH_~;siVf1`@hl5 zOL@z-ebl)%nPvX7Zj<iqy5UPApLQ*{TIM?IcWLmf^`&{7dt=XWpFC6~<{B;TJZZ)C z-EZ_KYdltaweL$%WX&Y)52B$Rmu1(fe4M?EHT=R3jqpbYu0}jrciwG>>|)o)c|NW7 z(eLIc`Xzrly>Q8Sht4E(ubn$Sn#Hb}oG>xw_UqSbPKQ2deQ;PUTOsmwcB5d<r}Q0G zWi2POj+6?>32Rp$yZe;+*yq!hODE6ZSkhUR<dijI$?Ml|?x{I#&b8NgcsA#CMEIhF z_Tpb1U)n>=YWs_IS3mrvuFsfpqA%0K#Pw8KB%ffW?~$KHwWiT*iMx286<+&vZq=!m zIji5!eHfISeUp3Zy#t@)ty|Jvl$V|rc(~9!-EW0Q_*^Hk%i7$Fc^t334r<*Q>Z!k! z>*_1^6-mKwH-{{|wD)m^@3h;od%Br9T6A5PtQ2Vsa~Hf6#FCS>_p6qYV0yF2&a=Cd zQd_p|JiKIu#foE<C-TKszkOO_QQs>u-Pvo&Z7DX}dF|dycFGy8*N*mj&u4r&RgR_i z(X_WJWxo_tZ+LSnwtjw}KC$7u`LVY<T-uN3#;kAT_b>_))#)iY=O?jNecH7L3A;MH zn%Opg>#Kd`f8MfE_|oHQmj)f5Is0Av47H|6GW`>lFuk=$$Ab4=d$7O~2QBeAo0!vQ zHSU`5<(IRv$NWsb=MzhlBa{`dw$9-ee>Nj*1M9>G?-neQiCSwe9?V%LB`AI<nxia6 zwQEUXy2`G_m(q4`d%kk@v>>;z%jSz7zcE;+&B``)rOs5NW#O7x0y>X>+T3h^&;M^l zV<hKQo3)mb2kX+*{z|=mf5>&>W7BQ3)gN=rU;RkKQa?RPvBY2Wb<oj+`|`B1mRW{g zTQFU#w<GcSd;8nvy;@v>0p^dNZ4Oe6SKRPC_-H}<s-1s*PtTkdxNW^i#P#LHFSq+1 zKcc_J_vM-c&pI{-wb>n9>wKR#J$1&f-mArlu2vDc;x8|_tYQ~E#qsD)%qot<&or~1 zAKkrhuT)T)cIxuBEsGPkL~p&Uv+4e%CDD5}9}}!OyyZrJ!iCvs2kVab7ku9K-YKQx z*2xr+KPLqzN<8$)dKl7a8OpWDf_HXMVN9##?JRefu<vocmz9*R@qRKF_xkZ#E{*@{ z!m@(2-POA-EGNDd(o%T+X!<J7DHU$VOR`oAxGwm%z>jOk?52XPCvR0wyrpivX|}lM z{kcvjwe)}a9(2`6NDmCKPrP;Pfa5IIm+!K+W;io2P0{9FTXyp3E7kDJTP)(4nxFj? zI_iFY`U&N}=_eW<FWvNG)v_0#?s08&Tt4N()ZgLX<3F73ReJkUJ-}F_VUD`;n!2tM z)6<7$FP89%nHzg6?Duhh-@kU3Wey)oxb(X1PG;DSd#aK5{bj%QJ}z=Tq@b|qTqu9^ z&+@FCyO#ZYlC^v~e!BXq5`~Za%yy~AEAHhqEBv!|?yYy{OQyV8w(Zn=W7|J0A5S<u zj!@k&A?3ug`>ufkYJVM9{pR6)*THAC`(DlIHoIo!qikoDXQggVxH<V)bN|0Y6;Z=3 z^LY=e5<@juUVd!29=cjQL$$@?WVZf=qQ)gUfB*fq=-j?}O^`nS^ZVW3?q_@7I$XY> zGvRkzW_HVe=KN~ejo2zW3oNk(38zw#mKcF}AP0nqaDj#Z0J-qG)$eZwzTYr5B> zyVF%%H4P@NoO*#*_0;|RVnH{98;3T=`bF}aam-44_T{Cqt#LyBtHk$L9~`at@TV!$ zUs+l8^RfGgny&Ck?YHvXKaPKR{bTEKL-#3C6-N92efqom<Imk6m%q99pvESGm*dVM zxs`J=dQG0jS;*J?>)OllZtpjPB)4k&;?p~ivpP2!Tg<PV&nC~dBPZfvx~;Bkoz85p z*S@MU$_uwHS8=SkAJHe#WN#}Y+4ncpWIoI4wRdkN7%jQ+-*CyH`A0S@Y?}RnTdZPs z&ZEqv#Sc5Q-kujbxy7RU&4k9vf|)Lx(~mCIyBwOvyw9WW@IK~y&jlYJb3Z&$V3S41 zH~kk(-+A@t=afnIDRWIY-MnsQ*!4p{i^N)9O8w!iFT0_;Fym&}LXXYSleqVvE(zUy zbIQK$iBUp~nQD6l6;E_*Dy^*Mi=K4TZok4EV}Z?U#P8c`PB>U{eu2Kk=0h(OHpoc& zeltsax~}K&_M=H*b8>TD9h$3MDg18xkJ9DmWY#ruy^+#lxW=NHB-8U?$I*_bDra8& zi~n|h*}+?Wi=3lU?&u`VookwLaLJe5KH;XbvojU5wnRi{TvIFk;3%<V<BP-WA3}u| z{`;jQ+`mZSpwy&}yM4`i`y_Sb+LYKADO$~R;w(ArAs&3f*XL*C7h}KNX8i;GlUTN# z6+ic?W}#^OffbLqm*?%%Xz#gmK>Xfh{dEgGKXDZOyZ3a-Y!w!670uF#E!#XcZ4}s{ z^QiE~lhy;*Uv}6zxo?qI&n)~Hee6)K$<~*f%^bZPcTW00A&%{K>Xh_7)<^nHEy^FS zxxjc+@{w)TTaL|9EsTFk1JY`Zco)5`sgy{{{C2g^WR+x6@9UNGC7&ETGw)=!uJp3* zQUUkfccwin-yKvx*>8dDg>_qM6u67t=~-{|4B0Ic*R<CAwy4nGFAE>s`MxInY`EBV zBXzSvL7(K$86F`|s?8-iL~fm#`+m={wl#WjtP>g{!<HU2%euzf@@DdkEvG!)d~EM? zuA8|o%S`rQaq4ed_X$!z-B<jayKA4PIY(RN)XcD12ZWrKe3&e`OXtAej`VF7zcY%z zyuGEiFgMA^K)L<_!><eLx>u}Nw<3T`SUvXGl3A~dSVUzL89vPPO^n+;f9^a-sp+%! z`8;;L)W`YUpZ`%@gZcA&1#wQb8+{MSTw!|Ux?}EbmAN|#uKCPq$YnUqaj9$TOrK)C z;(#ZyM$MWB(sni|?icwU6u;@<3e&f<qc-$UzLWA$i_640<om1-q4z3GmzD5D`6wT~ z$t)`4Gtqjs{i=6A7f<szx$Iwe(EsU)Jf%0%W{6(@%f__qjOWk#;Ge5A=Cu6Z*E&BY zu{P+R-HBI=r|fUbQ~i^FfBxUk&ulEL|9^i!{rSNk>&5fW86RaosX29%i2U=EGd7o; zb_@4SeBg0#M?pusPU*IYGcjkTPu{ZpT+z|_JEpy=3*BPV`LcFt&E~FYQ>X2l+w%IT zT)IYOhLF7GTCc~GYpyY@ePTSlXMSX=S?A@Xm)o|go%(P&@{vVQrM7H9`=!}Setx>P zZv8*5M899R7f%aS|M}PVq`~o1>#e44Dra6(E$D1|)Z%{3N=?rV8()^aj5&Ja?4;NL zorBN2U-fNe^ZGh*_x!8kV!JQRF0S{P&3?1R<gPYvPb1%HGtc5#VH$eZyEC~@iFNp# zeC#mA!=qGMpxr8d(?f~hYt7H^*Zow+`uXg>wJ*<YZMIcnQ+CbxU)yK#`Nf^17yfXj zKAZdWLkIVg&N5ZQ)tA@b5VqFqUN2V=*k9Q4J5ay8^mPB}yzX7kPN_@8Pu|Lwm?sl? z`u2w0OF!2>RAO`4c0DamJ%&ZP_<V|O%i4;~uUC646gaZ|xcS82{U!^qgim^2+x9Dz zgU?+hRkAVMY~yRsUHbDrEqxOI`=aghx9c?<_+7Iv<vjYYVXjn!rRX<6Df)@tdSqr! zbSLO&bZoaQ{1B(`(508yF;8)tXPEP^_T0suUFwmWO44`lOt9IN<ypHcL~E|q+H)&C zJQSBNa@@2j!7)0G@&C*X4-RH0FKk)$IEZ&`pSP~Zq{6lAf@PjBbf*3C74y_6b&hpi zS+>pD{N>HaOAA(hz9+gpM0%;rm8`^*&Aa;csb;KvoW*LgQfKRey-%d4R2kgk`0jh~ zO668hgV&3f9JJvN5nEG|Am$iroRp~>kze!TTA^d4yF*lGfA40lcNZ@nIlY6+A#~2- z1y{I!f0MCMy|?yoz@x`nuXK7>t1>tw%dV?>zL{}WxRkUQ_r0n|wow`<xn5^!7^N-v z9^k{NyKqV;*Eb&4!yEKkX9;=VWOCS;KPljNEh~R)vD{mekoR3b8*XNw?JRw9QL6fh zP}HU~yJQmX7|JcXzGc%n=hHLfrd(L3@pih!&(xkfPOpvJG8Y~$ws@}bQh1fzu0lJP zfKNvPO<LpTEKXPvXMNl9RaKgGEB~^@WJhU+^NW`*%wS%#xl#IA?1T0LSAH10(l9$W zFT-);^^0P6Th0bV2ZrpLV6n?{+BcKCGlX~PJm*OhzvcV#_}QBbVyq8B3d}9k1+1kX zbTUl2r&^$NC!rxH=e6I92xEz*J!}WEOV~^tqJyn^Bqm7K^ljZS`{xX+$D3Ame!j9Z zZ<g?S%jp7p-5&HCJrmv9+Ffdq`+V2g!-YI2Ht|nB&^F^}qL2;OvgLipkKFxpGL<Wj zF@Eao@b!6m@Be*0f4ku4w|DRUeSG%m+iU;+$KT`a@Be-L?9<)9)92^!-{a3A^z!i2 z^V9do?5o#*eEjUw<G20$AKJ<&h52l(>TX-QTx;WD->q9BirjbSA6^~)@RM20zmos& z>|*LT>MMTyy37ndx5+YUihW!DzMTj6GhdA8yd~h`)n8I{R&Mfi-Ha~|Cf61xKMG-~ z7kswss7uL)iT~JU{bwp!(Kt`hvw0!I$w|k16g2i8+rxZ`Gi*}QM&U``DvPo<zHvxV zS2(3vWSIEW&5f63>y15mZBzUkR8*zD$xLobWz%Miy2W_1zx|4#mf*q3R^|U$-rs0k zA=A&Xa5<lgtrAbt`sVC>_K<j{s@nSR7FB!Qc5Lsln0KiE$I?Ho8GpWX8`|yciGNX1 z`T6O;%eSKyxTc%i@8O$XzJ0$<8~^{G6Y}l;{r&drlkKtnd#h_6*jfJi94Ys1f8EcL z-ygPo?%%cl?my7RoA3KuKK{68tF>+Cw2eU$N%w31G&wdneh&Vfc#!>0{RI6(Qg>eO zT(CJ|^Mv$+=?l*|&22T~{=4(SvlF>}cb=ViTbXic?ekeT_nv)MTlRi)_59x7mui*X z2q%88%v`CtIj!k^>9sS<U*ujpbNr>hft}3jO3~d3$Az0(kGjk{8hfF1^ZTuj#hthI ze3dwmrF_ESEXSs#*^FNwe}6V>gH0oQ<C;mk4ke`u`)@E-Vm-qc)z%=&Z8Y~%;+nPB zHX55fdt|F5%ar`mA#Gv9!6$mN73Xd+6t9?I_`4`Tu%&TQ@tS>iz0%J}J5{T$Zw{B< z)V_%Gj8=YI$)R&^ctwP_#1;2;t$A(f0TFRk64W%?dTfoc>-Jre7dfprOTSRtE4^Ra zNReINU2cbDkgc7}&W06<;epN(PELGz^UPGa)PDrD@t5w{x?E^(WXAFMT<Nou&v&>> z+NC&IsvUQ_x}0my%KWwxCmW}I(zQOKb2JsdAMIlPeT(Pifr^#~J*`ts-PuDg&YCFC zAg|=8fBk^5Z;I^e?k+)}%PW|dWX#qqusgh!cVd-B%si#99L=l6Z@#;w-r~+IvQ)=X zQS{H<z85VYGCsUee19-PHstDqmy@<vm)SA~H3hEtv$ZQ`M^N6;MVrq~@JraTq|e9n z*{|zi4);E#dHj9xb$#oai88n6Z4)}uIO~@wgRa@3_{E3rGVrdvv|w`SZgo#9XSTzO zK9=745bnF(dD7wMypd7Np}|isdM#3UaDHnX>qVsxSEP2YpFMjE+of&IOfN2mO=?n@ z@+(R8;HS@N;f`ChiVp-`6HvIqvpN5Gi3PiW>pZu4DIXLAER=GsD<;iZ7_atb_R{rX zLj9YXH9YNZdCAV~IF+@eMW%{9c#?33C!@1cFjI2S#M&f9fuB>a9GX+NRxIlG-Yms< zZ9C4?O0NRXG~aoqR@uwMrl&o&*}B6-`uWPEOP7AUl(y64>drkUO1ypNn{HkpywERU z-xZ$(JN=g|&puD`OR)O*;>hF88~qaYnar!Gd1?Cb$D2Iiw(FahxJKlxds=%+NoK3e z-f7v#_8sV8|8`k(vvo$q`f$fB5}q^XZoBHW>|&Y2s&;A3#`4BG&PCi8RNo1PH*VIN z=V5s1)FChRnfDIr-@2%#_1IPZhPWB?5g&yoc`L#lw?t^#uiVf*RVLta-%M+p;~HVg z=Z_`aR*`?wIN`=R<_yD08a2^j$}3&3zdaIg`JtPa(9cgDQF1}t3L*jv%0ykdpK$Jq z@#efXQzS@z-2=PZo-^i6NZFyRbI5LIAR}Y1-VD#1^BiAuPPr%gTbe0&oo!e_n2(~* zR@qCOe{Kp+^olJPc4u0B`{pV+zxl<-zqM^hxv9jTXektNTX5PJp0iRcw|;S(PUFnE zyYbnd0&UA}JA6*{PU$(mWWs@EwuL9pUs$91DR-N)l4SqV#-8c2GyCT`Of!g9@Gg06 za?Ug5pwBefOaCN`l7pYbXP?TlF`Bx4GNbLBc@e&X*0TPq-Q?o79Gjl?RI5Wwdt%jf zQ%Qq>_phwe-W60O)wt)Zo>;^de=3}Di`I3AYvIeXQ|?<|v9+EvFXOn_^w(KSTWtNl zYITGe%2vzt8-Jd0Lg2Ee*!FzQGA7%F5o?tV8utZGSN(m@@$s7;<2hYA-(3@e9;<DB zy!7$IF6FDQru?|I>hS6xv*f>2yC-Zi7CC<Hz>I4LR6?$nv8Y+kF$!F}?1{zNBhBl# zDI49CY`5^-|MTI2EkZB9&pT0Kk^0CpJU!)5eBBdATicZ}tQSu&UT0&!Bf@i~{@WQl z4~y!*dKvP4P1BMWKc*>!y$*NWq7mn??Ul$}rptZ2OXc*R*{pndY4Mc1S-bw)r|18? z>N@Rb_kH^m+n~(+uh+e*Ki^-w<@S{oxn7q)cj(v)R<4_=wAoj&N^aKE<%;J`Pg?|c z%sZa()AK~}S*2!ut8X$p&oG{rS$^hS>Nl;=?^5q=Ia58gvfIdAulPyjhlpnflV`H` zr^?w(+hucI=Zx@)Pc=+GWkhRL*3M|$tF>!xk;C-^Q^V5&56)ft{y>Sv%;jC@f;XmI zIOTtm=i|9kp#r)|$?G2*Hy`zSa4u+j@~Pw9y=RY0hGc6NSq6Dtm#t2-YdkAH?^^Z3 zh^eP$-f4XK!B{NhlB~9Gx9h&M+Ny!ic5^K{>a~Gy@$Dql$3E{4l>Ct7PD$`zu9K;{ zU2*C4I#Gw$mCwX}CO%WDEAx9&=F$G#Ixc(4$5ILV=L>q?nZ~o8_m-61SZEsfQ0Lu& zl8SAQXSz#N-Z_0tyqz!mX5XLJ9xl4a*`z(4?auAdKJL^KWmx~8`C^l*eEm7=a+TNw zqtDEtS<j!E#~H7SIQPTBw0NI`%RK+N=>n-KqR|I*y#L-8`1ZyYOFP%d$P~+ZXA?{4 zZYZMWNsDh;h(I=Xq<5{_-50kz*Xr`jx97I)*(%%C<UE7bxhL~Q-7nisiZ>$Eo=w^| z`-`fD+lv$R|4Z~HWf<^feAxDR)%D6sRRxBmtzwSvtqi6#Tx;AoCqwLu+ri}@`uE@a zes9nF+Ma!1?y&|j1Ty@1{b%>rU$b}Lt-SpDPMO5LrHs4ZGdD0yKUi?>=a*JC<v;IY z9XdA%+<B^--WbxPq4}Xos^-m~y9;L*ivC^l*tcEYO!?{4iAJ8ECrX^<xZ4*h<ZKZb zINfvg;oBE;F32A}{V=zF=Gk9|Gi^NVgI%XbcIk%fkV*@jF0El&;{W+m*U1Bm6xYpF zJjWy0mM{O)c<G{yP{}?Ov3Iwh#4c2w*1frQ)q~)0PsvFuR!`BhyQ2JOdVPb5;^LCz z`uMX8PFt!wdG2vI*`u*~`RiA_&ppN5o7!Hladb`f*)dP;b=^nh>)&SkduwtCzmd?r ze*0cSoBpD8VKy<Ur%zgRy0_l+oOJs*qrcnV*}FY<m-SuMTmHl57)$K2j?h&v-oLJ~ z)4li0s5&s_O&;%0-@o@vzV7up{I$PwYX5yx4~K{dWgUyl4jJ;=&kVFPZ6vM+T)eW) zxmEaHo5(enu2j{aIalY1_#SlcI`(pbpVHE2zIpFn1y#sRkaS~dO@4OBAUZv6d(w~d z2^$NH_S`(V;CV_7cb`r(b85kdy-WCuo1?ZqYSUJFB6)|yWX5Er6`b6^C#Uo@>&#mF zS#49xH0c??9sPuuy;V+VdA{5Gb^8CjhDgqLlG_hm=$QPbqj0*&XR8&>aZl>sY?V87 zF6+>rg=gi;!n;fC`Xr7{@2h9qT(yc}m1tv^;My~i97PvY_gS1^@<`wRZr2PYhnxDZ zcHPi_yUWG<dT3+E#TD7AchBqXwey}?cBH^rW$SYm>rCy;iMN)yZgTRu$Y-|hl+mIo zD<*B8q4Q{;^Z}bg?K@ukyRDtH<Ys~(r|7lYkFxWd&aS-HX6Ey-W6`4(4wW}dz4C53 zDC|&ZD%NK?!+p?M&gJ2eyqUinEVX}LTy%zcmTpBuo5{>gd!MAYzFoM#GFaVd;&iTw ziyr=D*|94y#=wGWg`0>457Vvf+t`}ClV*gea-8t}m=HcWGbX0CWBpx?M<#x4AOC4c zw8pQK_>mYZzUZ{t#f=VIC6c}sxhq(FoFSl7Bb&|~QW<jMkJQ!sPqMmmjQn4D<!irx zuCmd;;Hrwn+K0YB++N$WA1>J^DwQtpueS5V(YZehOuHxNJh*&!fpt}15?32vOohnV zpQV;BO6+<pc>mvAYaOaIrE<|OTdj4L8~pBs7DdGA$k%D#@(K*pn|Vn>`Rnz67U%S~ zOMROn^2W@!dSl^|e4*(Qi+1Y>9hocq)|Dso@4k-cA0Z1q+@ASt)jjLr>9zcucEmpp z3jDex`Pbvc+U76f)=o-1y@21z_WBzy`O_Qj81B(lRi6=mHQW8;0XNajlQQ_+^FwwP zP3-b5RVzOhC9<l=*h$oWd4TKb@7>E~0)$qrp86tX%e}Sn7T>zI8k9HQ*NIIpzo#UB zW%9fWQ*VXJ-`ito_hCo5>6NA5A4}DQy=*V@R1H+{Z|pbpIreQ$Zr7{Zp?kXSu2^TQ zw)+f&;hnI;%)<|I?=4;-JoT6=YnDr6Te^UfkFi%5!{;eaHqBBE3p~_)Gf67_Bd7KI zAc5rmTf&)lDz{4<(%VyYM@M8j$Fh%pRxbmyr1-n`6cjeOT@iZlNJ&alweFD8A4bWU z-0YXs7eDVfp3r3~KTYHGPc7MbPO~p`nD0Je$#3v%;<mjH7)p53yUmY&ka@Yo@9__v zjVwva^^~R={3_(MUNDnE<&1Tpt-JJ{S9Z&kmdhwUV$q3l(REw;W8&{M1qJ;)2bRm4 zWNbf^w!EV~k^RX<xpVtvAI@Dn$4)Edj%-J;-NHAA)7Sd-^GMh(y&~RtZr&c5n=7WT zz41X-A*4gx{@ITQ-z*lZ-N}fwI@i(JeXJjJ9INLXzD;kB9Sq;@^`kcW%ClYd@{3QI z^i2LM_>VnqyKM)ydcq9Ljnjr^B&?^20<EVJsr$bE!eX8?I`5}nU+de*^m@a!{9MHy zMz1+Gq()Dg{pJ39k10Zti;_<JZf8B|tu))@{Kez%V?1TnFv;wh`^Rqno?S^+7fyJb zZ2Gy~A#ur4o+%4GCME3Sv1{GF{r=>a(|_)6Nbb`x{c!r#Z~K2$_Vu6Z{%w?*y=SKX zH(@4c3x)D-&``MJo|!ejnwnL6_Hr8}xv`sHJ>z=-G!$MD$1bm4?_aQXMznhLRqnbK zp-Xc^Igfi}$ZB{B<V|_%q1?wY?;OwZhjlw6UA$)>|E;n8X34RFAGV#jBKc*nUu=lh z<N7VhJxAQY&84D)dxmrA>++|k_wG`%F;JL(DoAgtjNw@+3A^Moch)GswJ@4xQoL$u zUGrAQ<tl4iR(yCp<<W-?F*g^<{oHkTo%VwCDOoBBJ0%rQa6A<2d|A4(c&SZ>uht#u z15N(Mt0Fs=87sE@R`;);lwAK|e{@u_tWZvt&aNe#X$J()swi+>34PR|yyW=Ar-_?i ze{5V8TysD|a@n~D%x^y}jIrJqmohKZ@&;eTvkq6;`TKkupM1R}di4~$d5B)p<##tO ziFF_G*2w!}DG;1EA?aAR;n$=X+i#7_ez07aqUd`?war~}?fn@u4D=Za6Wk(XdK)Tc z>#bgY;=(!srn<n1hFUVY-l=zaxC_?(xv^_+_0!v;O{SGX%YLq2D>vs4YuNceJuH3| zNe44;FK06J)LZm~^S1f^1K(<ElA?OqXJj=9efgkxM)uGG2eG3kKb2`*n8z|b<0@O8 z&W?5y|FD&@Wgkv>Psr0cyDPx*>7)`-)t8s1ea_q4q4`z8f@P9=1-rh*B1ZLdF=9bk zGDkBDJ?|)X1Q%uAk!(1=@=|sB!=!^5%~$sv>EaRQ^ggn2zQ?BYRl9Sf-G8p?FxqW@ z<B!mV9Zp`SFV6XN%w1Rhyze{~uYe^>J~1tga=7}!<#g^Xb4$L1?^u?LD7D2W6~#Qf zpuZ+i^WQ7uA~(lHlFEYD9<EK`T4{8V`QVkbn`WQi&TSK&m-D0givPK*liQP5&M&|9 zQ7?Y&;<JY)TXGA(d!$md?#u4-&#Z@Xdf0E9c4vyeRAIj4>v==)b;Wa=+I^oqkBM-d z53Ey&zseLnFW6+BaLP074|A`IaCJVJ;&A2em8UWmmaQ)h-L;KlL_VmW%!yICz2)3- zVg1CZ%k+<Accj1TEcd9r^0;aKA~}^vrhYFyt2^4K7tgz3+_7AdTf%=&&@J1KUV)+? zcO>wBe08p|;m5Uww`8Sd4;~Zr7x;I@(oO$?#M)>Ny^k8(Gv#YfuW9v|md_tq6Sy(p z+tD*GTF!3Qc6%MaM^;a9A^#Kx3D0Y%iw>G_PF&=e6t(@%vIe1DWeTyX*{|o>-B^{f zai(vg*LTs4b#AI_*Z-4ZneWutSju1J!ccR}<HxR7FHLs-%~lAEz4b<`_<gB}MSY#X zZ-#W|hR1f-wjBF)-gQo{^n!!SGH2cSedYS?9~(AiZv60Yok`ua1f!-cNpddQ|B93k z-@aAoVsdM{(~m&Gyf2&2-tm86EzLCJ>Xh2x=gel>|MlO!w3;u}by(iInyuROn*Nrx z0ectc&PfjpTx1@S)Ac;AIPO$TobmTp6ON@<g`Yj*Enz+R(4W3TbGPVvDa@)gzI(g0 zN_wl>Z!g)!6U?f7R$jKK%RkLF`M*HkbiU2(QZq$1<oX?~kdC%$$lbGz`*~;ibSIxq zr>@z@n<Tn||K=Y$+5WIa<ofv#vxaA<!~!?9NagPCoVDqtM6l!2$QfR(2X4kRW!{w( z*mYS_LpA)@wMP*O69aw1&GmRBJXgyfD759=uI8!oZs}Q@R}Ifu)H<F81a3R!{$5+j z@5f@1MUzfE7r!!Rwrtw^MIA=^)jyfvl&)=iwdWmsz|Q+u7Cq7V$JMEF&HiA#UdZn2 zEJ@dImxS6q++bz4I@(u4;(Dej@7&pkl^2W4&z@gDdtqPr-)}4JS*x2)UN(5Wq~Y&} ziGFjucfFpS@m^7G@gJQ>nw>9p9A3=#QQ}F?_aoXz!;Tb}JeDZDX8Gdg^yjCqn+I1O zpVYkWyy45O-_Q7MNH5=}?6%F``_u`>Q*VrRcYotIcRc?oP+?-n@l(+^9xqpWbnv&| z5fAySRlQM>ylG_*_1=Vv`|wq6>G&-^f6J2RGsRuoPRuvZZz}vPuy9JW)wz8uBvZK( zD|52bWzU-Bzc?xU#hX{>m)lE*PqFhw18grEPEVhGd(VT`sZXxnYnaLD!L`#N=$hrj z=-Ib&0!_{)KL0tpYS*sMpOQm^mfD!UTJeMbng0zvEOni+0k&yhV^b3PMECP=fj7Ks z|H)XAynFNh?;Cfvz0gv<D5^DgN|=}_-$p*4Bp;`D>-TT%UAb{O3s0`+EcKk6_vh-q z?cQvhoSgn7;rW`<OZj_W2R+qT(z?L!|E-A<nu;<jIfWj4X+Jmh_w%Q&|GzA{pI!g9 zzC>cFM?%)TbL(`)z9-Iz%b5Eux?I=be=>X6T8&nb#6J7X*xIA#F2wwPk>IkmNN$t0 zI^ScF!fD&g%c|DykFLm!yys^VW%eU8Q(N;k7mxC~Dax!0F%hRHxbdtkW1k`R?rwq6 zhd+^Tjvh>Sar7<U!#tB&f4{R9+jyU`EGU1c{;YoGoud{}6)%|&FYw)1J-_dDtoV$@ zzSCWn#0pJFa|z)2&wb2ffA(2}<mRZmn>C_>Z~Rq$pCNblP@o9U=gkIQI<}r&OHy{1 zY%#Msp|*6v%a~Gz+3Ny!AGSPS@AA^e@F`QrQ{&K2e(gyPbG(;3Yb<K3=-jex(!XnJ zH|EB_XO2?vy<ym>cGULi!K)U=$8u(rFYcXaP<1Zzv{CMXw|!|loUA$39pC&6yfnj1 z^>k=O&6dxJS1pP;&oW9E&g9e0V%zZ1RITEqugsaeS<KTqf_I+YQ9tXxN8Xy6M)PuU z76C)I8!SFL4cQ@@t+^|j*i>%F1+0u*v$ZdLS?k5ps?S%h87H(@-e>(B)tz(oug$9z z>D4oX=H%+iGA!}EeAD^r&vSg2p4!b-zn79W+hWztW1XAVO=F(_cf+#ct0#L`UB1(z zvo&;Xl}}@--D<YPJI`*onp>XCv*7!**x%92*ipu%F2Gf5rj41z{uM9NpEU?9*_g^T zp>TCj(Rb$wJUpM4F0f}YwvVrVm@DMBxa!2A8}Hk1u*Kvu^{uwMwn5GE^*ftS#;Yt} zue6`f5@@ucF>K2IiEAe;ZJ4q|OjCGEk6=*xBh`Zna(=hn4)X_Ie!wuLbDv1=rv95| z3`b8~JkxA6?=$BK*#I>?p*zcxT)bwaI~wiJJrnLBENtp^YfVk3P0(C>?`R<v%Z**L zre)~QEi$p{*u$yj@xl3``9yJhw{0xmDjE?tHwi`8OR3&`A$GEEm71Em`Nn$-_pmYl zczWup{{_(wuf(sycUIl`YtvTfy()57+WNg2H9Geajgv31XkG|o?G}1mXdv~YUu_!S z=BmTBvkS_l_|`6(wB9=DTr$Vr;F7kKxlhwJ-h1ja_h<RFKi7YVZ4BNt-!%39)dwrK zY6>RbS>+r0{AK^yeODWnd-cC`te92HC2tyF%yVoF(^b_4{J96-nY8~{KlQ~e*|?vZ zSPhnUyokM%wY7f5^JgEFiYDYZaon>}j8Rm2yD>8A@Pe+Vk9Z&5xNWbd#=vpno@o5k z|HsmHrsm75ZPOHr`ES$rvYYw9nR9}tWEMMyoseh0ch=c!tEE?S=O*TbXL3JII)3|r zR=E$~+0#8NZzLn4*7#QTHXT{r5}r7PKk=eXO=<`8{pnJwKOMzdS?Y{>uluYHcW1rp zT(&`SaYEY9YxgEB?TQYSSHHh(W~_CXyydg}RQInUf46RWT+Vqo`exz!M-mIqvu;zJ zE1r7%bECXJ_l2}j;mK+_;jL4+{!cTwuGO3Rb)8o4bM@)}E7adtFAq(b_4qo|%i~#_ zHPq5nc8kZY|G)45&hVq2BK6AQs@rvVzU?V3yB9Bhuk!txeUT@pySL=dKXCYa(Y>E# zE*TRS?9ozsEfqQK!LI16l-Uw*TC-hpB21^x|81tyz<>IQM~R~Onkl>@Q>N*2I^}JD zd)R$mo$8L$>HSCBXB<)yY?^9!Bt?ev^JGU`?nMf6Dy}lKQ`h&qCQMBg>sJ=OKFdaF zRn!mr7YtIDv6Rh*mdN8(_~&JjcBq;g6TM~!G%uU7T@ZS?j&A5m6;U0w`Uff#4kW#w z{jqtkTodP+mb<1F|LvZyh%P^7xO;Km`=vKiqt@;Vx7r?}b=C5c?#^cuoKA*1>GiVm zUTSR>>JkytiI8oTiaMvW<$`zWLiYD_S@|usrL#0sGQaXI?NOV&nXh;D$8*aVuW$Mp z=Jf7VysYZ`oOO{CytPd^q8wK)UdQoHv_a7OSbVg=`Ezzv7g%C`Y-Kxo_RrPkRi)Rq zE_iNT#TBKyk+0lDUibNeIJeUc6OR>tIO#gIzF_0G9y_ajvo`P_J-YRxh;02X0nOP( z$@2G_mR{WSJz-JKdD|I}1iO}qoSAZVIZri{ikHwD?q3s@9NZ&RthF#L%D13UG<knT zOH`1Z^Xjl;rKVS2xy*`MvG>ExApWb>$tMj%P6?jTG<jIe(Y8+X;oeB6&Bv-;owH|_ zN_@X2{PAE%Y|9M8PqDXGXfM3ILvQgqzV65V?<>DFPP%@?F6zUaW2FVW3u9HPKTLAV z*E|s7!o^?YkQ&>@ExOGqz35jP#~;;H*$odOJb!K2w=g2)LT{MJ+RduD8rv9|%@@2+ zG<=$CXVs8ebgtFI;D+UCg8)bIojly4KT@`t={0B{itc1Ie{x5Aj!&ES@-t-*zeZZ5 z2Xr5Mpt_hl;Q;TR-gSD<WbAo_(+*W^VY0YXd#CN5$x8$Mb)mZo8u=G%_z54fi+o*? z<Rcl8XwmyIN<J<*W8s2Su|{!Usc46MR{nEQ4*Frow@$r0E7*ZY!CQV`@}6rKZ?6t7 zUvB>Y=l5ER+J7HD{CN28%UgZ>I*I%L|9w8Z|D9jF&A#6+|J^O;R8*?1|MmK1{&M~O zryrlb`*Qa0?ed4p8AN;e!%Vh)43Ud|+M_9WzU{Rg|N6Mr%iAA*nSR{7|KXR=AD4f} z*FCAf^Z)Z>XPqDFhW{;VzTK4l_rK6%?~!v6%n37g&9K>cA#YaFrhbN73vSdIJea!i z;P<P#S}|Pn<mNK+HzaKAk9x*=dY;?O3nmADC@jl5p6<}ny-GVG#a%~y{>30==RUDc z*|@dWl$!ocI)6jZt~s%*O+m4XPhdufY0|y@4~$Fy2MWCxbgcd?c_xqH^Yr5@<sKSy z7;G&3x>n9uX~BW0h|ggcWFDAuEc+7UVmXUtfx-Hv`j)=7hcY*WxSdl!V$UqI^~Ksf z4~*V6IC@zY-JGr0{M0V$l|Fxv^`X=atB#&}QO#$(GdXSgHl}9`{U_C?d)#@Tb;iLo z?Yipp%-_4tuz6O6=)7lpu9^Jty~Ng159=t-$x@Pm=S1Hfdb%mekzpT~`Md20jD4SE zh^~xmbT?E}=02jZE!Ab0{i0io4lloIsug6nqhe#J!&A!z>*eL`dUo$~yR?e+j&f`M zhu$|!6jE*Klf!1~^ylyR_~qB#$G7v}H)_m@tN&VRv3KYHug*XIZRh{_tG)i-{ki*G zet+kezh^wt?B4nG%Ktx3@816X{rSxQD}EpU>u>-6!_mj<6K(b>1}naNrF#6_(Pv-z z-(TRk{IY0YUBn05U-B|N8`xN-S&cS$_nx0s>Fd9F+4)&E*)`WrEOooQ=3?aJbl;sK zHQ%0Y=AN(n`;F~czsqm5&+1*uv7CDI=(ovdXT6<e#hokmOnLdu@OiaQZ-(2M|M<I4 z@5UPUS#h?mK_9{d(|xDSz3^?mD6jVX3BTi<BAJC>oSm+Cb+2>eVXlZ7k_olj{2C$z zm)>EzAZ96ZaqBmAX~h+(r%z9~b<b?o2H)hi?knq*riJ?a{nI(+orA;dUY--D(iYtc zaw&;$yHai*=(wX?HgbK_s&JpZLAP}oa@B-X^f+{8_Zoa%wZ3}W`#fcpnL(!~ODDcE z{Tj_M%WP90%d?sClFQ~@-!<>e(!ISYyoDZ`!b%((3{oDc`#2Yz^>`3)_0{Bw4vQwN zTAzGsx3p*U8<ESq+}AvG@L*eG?pX4ybeiKo(KCKFYATD`PNtuXPbjOc*K2)a5Tt#F zMdkg6#nX3&*f-sndaBjQOm~6F(JxU>#SHEmOQu)85j|oO;&EZcJ~4schG*6t$lWvH zC(|W?F7GKvU*79a4C=C+`oba1;nYC`nc|$nZQtjvyfQ^GyK})~#uDW$=H*U3Yp#af zdBKph{Kp!R9Y)iBxp1}3c(N%&!PaHDs{Hm%FSl@9vHaatdx~+A^bNNxf6aZ%SPE8u z(=7ac)#<=qW7E>rCnRUSQdX(j&AQ;M8=F+fydvY33mk){DZX9zf+NDl{G7&wZ+y~{ z5w%~V8E)mcEVp}q(e2%vxrevuI$I^YN^cM4T2`ap-MV#B!S*!CON^U!!y{U&t0X-o zjUqq%_3!%spZg_4-+b;hht4LtsDG>r3lT5R`gJZ^MOdh&<2lompLN#St2AF4Eh+0r zirl&1%TXnG<B{i93+iShL>j!6$v!38q{{fSm*sR+oqj~v&&5ru{ibuK?z9r!XLEGF zP4=rPzdnV{m=!;7R{XsyXIK8bTG{LKaedyb7gI!E@9{RTEi7C3xomFv%RM{J=$*>h zd4}zD%^aioi_T2DU3UG=qTKE0_uaa7?#-4nezWD4#w<(MdMJA6X~f3z<xkgMIq^|& zUQC0w$rGWkvt%AI#QD9vRLR5Lch+?GN}cWm=3qOg-8mc0DwoA7eb)-V;rUHmzc<>k zS>U>kbL?3?bH^=_D}zdoaozO1WbLGH_gOT|DrtXKz=ecPc{7%?QR@sYGw$SV(>9ye z?(B5XxFE!2Yh0q5wUZ%Br9z<lzMMW+)|{VG`Bn-$4KF0G6PayyUBfdraoJsS9*6IX zCWR_Y7kJ(oz&LxtY=v8EOoH~MhcSh3t81NFcHh__Lj88+wG}pZHGhQc<Xq%Cf$4DO z+nG~O6s+@L{`_t?+tSLCd1rk)X4+K0<~;F4t;0-vrlI`9&Ic=c9*Zh#z7CtT<u{|- zSp~BXs=gE1wPrr9(@DIw;0I%u{&%g*#y=&GaJRfp)jY+2@#v0~t1B<hKc3j*|Kpso ziMz&XkF2vLbABn!4M^D<d+kWv{mA-xY(W;uul-MDH6HYeHM}5rD$6hBY4XhrEX<xv zyF!^|7p?Ki-*}<<+$k-w%`f()%vYWgx~$jc*QtWTQ>JA;PP*~2xy2`?_win?l$$lG zjx)^kj7;sl%w4X%@b{i!ke%~7?9$z>SEn4foH4t^PIC5VBmd9MEoY7?tNEKfns_>N z*0bMSGp7r;o=E(e)oF2^_rd1WNzd3hS4-&DP76)<J}q<hyJ(ocniG?^rth(`8vFT7 zYm2xYX7>th*FJvQYU29iPtMpLE|r#bXq%v0c9*SpXHuN`#eeF{&&^u(gimhD`imj; z?9Z!wMel1opY~SzzQb;hrvK~jt$Lo^yZ>Ue=}q}-(YdQ8m>qSWJ!`S=+e>=4mgcEz z<#x?5+v+`g($d`PK1(;{alLu7$k%X7Zqkcojd_=z=cHRN-zDpR*KcWFd*F8C6`x<M z{BpBszV3GjvFZFYTX~IDVoT=Me93kRwNE>}Q1kK8nf9V``*e;8C!L<ax1g-I{mKN} zDQXWw(<g3?pJ*$i_(f@n+w&8qvij|z&%GYJp3x^zwJ{+)^SobzROfxGWq(`aCZ7oJ zXH_<DiQBg$@RhH?T+d2T`RYwfLUUTx4d$-@yXU~E@~;cHdsm(mXuj=sT6^j8slp}+ zDeN1xUO(US@X)F=J00&#yCCBrai(Ste_%>Q&EX4LudmCrcg)lI5-+&q;7Kg4WMdN} z%voJCOA;<VxE0+!+d+ikL3#aAn^(=3cgD*VU)&HqY0IlNr-&uFmjqtqy$rhbX8-z5 zw?{orExLC@=bL1xJw9%E+}Mq!jG=L+vEQ6>#ZU)FT^81p<_dx#P7EtKMI=<DH<a<W z-~avh-fsUqMrR(OMVsHx>+_k`trDT~@#73(m2>{=>Fojso*H;Lx=Q@`^<d3=!5b;Z z^B9{#v_CvAdB&VD$LU<gw*Rt6&bhOT2A@7&c}tYp?P$u$rzwWc6SP^E91xhh{ItTc z2@X$x&Qdh@dH(q6a+8=Pg+^ZQ9+gy1U-G%4Y}Tir+Yj7Q@7jIgv!(dYXQ_63UnDH| z@6r?(4)eLMa%!91!hlef5<S7$LW@sU2RkPG?0^1$SBAl-npHEb_aAC2yrVBY=XT5W zBfU#xw@-`;FZEcLoEj?Q>m#e@v0tg(EG4v;_v)jyw?BlL>1>}Fn|Qgg>+-oa@xtJ# zGy9WPKS=oUt$5Yk-W9ieo(1o2tt=J)wV!wGD&4cI=2|ZMn3Od==a#mH@{K8x2c&1L zm{yy1DXsm=0hJB!422y_J;i;)oG*pWD2Tmu)!?i3OOBP^yQG$#Q=OYpzFv8Y-rKN5 zDb~UXGord4p6iroJpAg@>XXhM_e%Ru=lxdeyA*1$@pg{NuggB$9t%(XlEt7Szk;_w zb<Ub6iOexOzsWxE+ObGGo>%btuecSfS3ge?Is0bT{7`F4muN?~wd-u%z4O;R?N!+| z-6`zwJ&llcIaO*dTB57v4OOB!0~d30i<PDKReg_GKUZ<Hm0|S6LX!`scVsoUTNz1D zNKxl$*!odj%U|Wy&x-kCL2rLNapn9YAooAc@AzVi4dG9gT#oqJdTp=kVbzc&XRS@1 zU$1i6c0=gRk7YcMd5X?$(iOScq5l8ox5D3FeqJwo{L@A2d$;?9-*evk*H?(_Y=1s? zy6Mq(-!9I16rY-@F%?^0FvqrA(bR<K4&mEb(ZRPZB--A8)~?AsFA)0tuxf7O&9a6( z&vdKHWi~676*hMY7iqlQf8T!^bKl~YmMN{Q>uQ2jeqLSd|9-iIySQLqpHzNyuX($V zyOgA6<Q1!a5x1yQ9+F)uol$dNME`mBWl3qlB`fc`Ep{$*JX?Aj;>FLWZGLy=ZobSG zsc>GV?S(FRS{J1<Pc2?^|Hn6GciD<>iibKRWn;xve+!E9aGraxM|`g7zq|*VlK0KK z=o<O(`KHxdZiOB)6pC{95^8xq_i2ZKi{NF?$(eHU`)&Wus<ZO>e!te|d=&fqu6^gE zJNKE2UN!WZ<-}1xVWD<q`NZFGe}Aqry>7U0Rn5g+T?IKoeJf%@PV21x`tHkV&((U< zRerU;+|nU>Ty)_-E6@J(eV4ZXPG?^q(YoQ$l10~EPQT{0bH@SwDD|j|Co@I5LV`9P zuiwos?w4;VAL+aEJiGhLkN>Xks<^esWUg51Bh#6F_B##g_tbwY)GW&Uma{bzG^~G` zi_z7q^M`^zN8j>V>!Rb|mRO&dtQKmOr`q!9$M*}rPJeIa;d&|@zo<{@nt$|?wX63z zUu6wkeR;BC$N#p+JN_3>FpxQa>E90}S)SKjoX+#QL-_l(zORt;`}}6w`L7N}ANPm9 zcAU9(m9_h~RhRRZo8Kw>{O*ahScQ$Gs;|<cOtX)N&R6}^DRs5JHucZbTh+xL6)6hd zg{IEak|c~G&I>PlFJT;?r8xcJiHxGjAyc<HPEI+gCHU>fr0jLq4teva)ZJo9Vv1>J zIajsqZS(sN`>cWwO%QtK|8k8%9gF8#FHg;j9v=lZ>Zq*f-jY1KeA<<irko{eq5;-> z`)73?`zU9k;v17)S*XgfC5vTJ(PYIvFC+HnynLQ;LHnEftPtng2*wr`NyVCtuUV=t zzVo{@QI=nrqoaD>>XqNz%WtpsnX3MCNA<+pefwWMQ|*|Xcb{*W@QZp5sgp00Sv=+6 zgl#@-c*%z~T{)iBfA@9il<)JprzrJ4<@>UuEhqE%pU}H5BIfLeFBk}%IpJ2^rL|-W zm#@~tQqRk&sps6UStV|Aw9`{PsdsyEzzcSfjd#4-KJU4^o$p#uv+CFPGaOlxk9-O9 z{nmWC=SI;?O^K9>t@8yJteIH4Hqms#jVXV4tzKN(|1@!Xc-7nU-|p;PFMHEw^Vc{j z)p;{@_sqW-xz^gprFpt|(yN-j&lBIjUBVkRJ@MUM+4Ona-x;K+az6VLTA*%m)8hZK zb07CaeVg0L8(kJqo_90-a1p0x_1%vuZ+(8ZPLC0tEqU*n-aj7=9d}oYTdQv}{XY?! z^!Y&-i}xjA*_lZbV|1%08x&^SoNW5AMbC!A;j>@VijUTB%hK`~!Yni^c5N^Fx@3m( zi#uk@Dc5->?#=Gm5?FuZ-1@+&NzEpEJQ&i$!oOx^EjQb{;k2g4<SVx~CSHr3-PGh& zVr^}<W@n|Z_OuzEk6KIB!|POLrrm25H#e?|{P*hGOku{d6=`QSd(Ylk_)~rFt~1tq zzq)8J?tlJYR-ncH?SiW3SC%IH;pIISE4OUTUCt#v3l6(Y@l;uItJCPzqovE%3kg|Q zzp&<5_q)c`VtH5YWUDyQP|<`RM+7(dYeYOZ-cxlzQ~CCmZNi;bY@WvkxP=SpB)%0~ zsGxc1M_JB!zc)e$V^;felsQU%I-1+I)o(+>)wRsm^9)bLoUWWxqFOVj#J}6(<>JLj z4hHo{-*-ORE@79NdVh(^g4s7qQf|*JvD&6=v713W%l&k;#-*Giiv&DA#0D(s3Mt>X zAkzL(0n=RV*(noU+zeyi>=Qgvn!0$_<4pqVM4BY(rT5Qnv~xTYwjhc(W&4JnL+iY4 zUaxspH@h->M$C;f(FsAVGxz8j|LWY^?Q_mdIasM+iuFRx0#V<L>x((nwJ((DpOqIl z>vHGFQO%C{Ie)xXbll#%lJ~u#*5{&vl-uugt>wPXl6V<>B(d5i?(AZgpXLt(8Gp6B zd1NiRGR=Hl?D56rtv*V;D|8f?W8)+*tVmlwQKz9#T;t2k6#)~t@;^^}@n>}?XPf7z zQ{k)c{H+gRJE}bUc3`#9{qhe7&VIkwrTgW+_yMW1dgCiqKlDX7Lb2TWW@3W%pb-OO zV-gM;0Ua3HaR0C9Uye|3|M-Q!FLJo0DQis#*=7_RyUu7`DCfx)GYkLyHB$;?)Xu(o z?w!gfm7+|(`1<9xy}bu`6bf$c>WG%#6~e%{G&fkFo{_KV(6&Zp&Mk%=%O9MJSbzQ5 z^B>9y9ga>*_7!a2ZOoCR-?8{j#Odzn_~;0ECx-o76j?-C8c#aEerL=ST>D1ZVS*Rq zzWj4F3_ZaoB(L87u8`Fml_4E|?_AQhT!TAqUf-0D@;K_T6y)#(3Tijca9~=R>Dkt^ z{&M@qS!!yo$F~1e3A``9taYbhyy`3e$qJ8;U#{30(w$-!zi!e|^&=OHrq2Il6FF0C z`nHYx{I9>tG}51Sa^5#*abty2g(K&f6!}_3Ha4ABZ^@{;=D35$tFgQIn!jr?ljQ!H z)84*_UUvGYj_<OYwWU2TvzYHHU1{v`Oi1KWeg5;SRf_36KXJADF@7?MHo=qfYm7O~ zk9|MiStqyW<(ww19h+yol?b@sc>5>2{g1HSpYQ+tCU2@c!@ywa?c;jhEIKE*UQ=4k zwX$q^LE9@m2cz$*d)w=us_g#!Tjf62Wc|o;)ozu!Dx%By{<~)W@%P<-iPPn|`lQ=- z1!c7i8#66uEuFpQ*sMP$?(fx3pES#zANKk979V-#V^R+!3krEGR{i4hJh#h!o{k*% zg{mh?FKd`B?|-(atn;{Zbw}Us#qR5hTRaU#_||Tmp7Jkkzt#4GQ@L){`t$A<&2ZUQ zX=fjP+UE>&hdJ+&%Zis|k4WqH{BaCu)3D4_n5HPV%=oq=&)$p`dh2$F$1V6($GR-x zg^lfFcY&?>r#mdHg1g_yD(UlVZ&_6`NA3TqB1`L{K$%s_NtP}qXX0jb%5I+c{+^co zj?DO<d0R8K6&hdKA28WEE7tTCe~iC$c$(X5_Mhc$e)FD5yDf8NwRX7vKKwb?^RsJA zd=IdniLno{y|nU*$fdlJ)i2z%URW);zTmg|wToQ4x*hLWTj^)ioL;c8HskO*@$#xu z)^Y#MFBoOi$j^H1DqH&T_y$?m(kCk{w%cs^{_=@isnhwdk5`5M*kfDt&9n5^;T*XO zee0F4zAMR!sjAffqPJD>c)}HxsW#T3PYkV`^$S9mf3GfOYnc;2lfilUPsa;}OtTqx z_)XfbaOky!SAIW#R(7oPGmSqAe6QVj4&Kjdo5Rx<@@GfcT`9HoD#xl-LQkng1%H;+ zO^|R;Uo4=lDYE*Yueo&0)YtB*24-UE$!E4bc)LCS>Wb>C`_>#-5VCLje)sxqDYrjW zJo$F}=IeVoFTxhe$Gp1J?R>v`6{p8Ng<hLKyF!ESG&arIl(s73aH{j88#$Y=bQqto zygdKHHQl@qacY^HB-VF@ivIkx{89eDoZQpDj-R>Gyno`7rvm@k0xm4%!Pas$ute&` z;h*b3y8g=CfavS5Kyw{2@I7d{SC_M-CE6DVc^r82>+Fw%uVtG!&#+YU%&wmw{3@{j z?7K;;ceEa?DB1m9cW$)SR6p63ty`8)YFV>HORjg;3T-Jp&z8jtJ*#`$RG-W7`ma5D z_Fj;#&AWFiuZe9pk4Rc3y+tc$+lG4@p^Ga-wufx5Sme2C@0N_rMT;KWd58S|aYlG! z#Fi+fmqKgjolu$ZWzvOmcX`_fM(-Xk>g2W(I;I<=JMZn32-AR4zc;Bi+MTmm#P+Ct zzZiY|?DOmI>;5tQf5>g2@aw?Y!^|-ZMLQY}U-`f&?qyYTpmlQC9<iuNQzZWu>3XIv zSY^7hFk)rJp~LzyA6?Y<u!nnwJ@DINA{iL5Zd#A+y|q<FOJ6MBmLleSc&mE0NNs@U zHQQecX6*_3;y7iF&94KxdZxb=JlBcU9+*<yYsZm%E6FCpD{E<+=<5vLGYyR4tV~%e zXCA4QIQGo;SE|iL)pv)pzh2V*mEbj3<=4^I<#`vSy<b@!<H&pU?4f<kH?w<_Y`^9` z-rTXwD&gSqtrreF?O3E_YUN^aZPBd@{R&lG(-~tf=2*GiyYMDC!eG|cFg_Kg-Cy7E zbQ(;RS|L!d_0>-9mh`V5-$g0+nd(?nEe;Z3<au0>&BA;5`&73X8;<cN_Zd9%SX$hZ zap!@J4g=pK^IZXV8W=jI4XU-=O#U<;?AXba5|n()<BW8e&9Ppke+?^(z9%yFpR6np z?dRm3Fk@e+%A-lgMXoU(PkI(9KR?LFsn6W(!PI+h#~D_>c>nC?=Gm7||NrybZ0^3j zyLZ>`u>AYw<MZ~yzu(Kt|L?M_E&u;-`t9%QxhA<()`F)y-p5}pEG+)@@!MPHD%Kjy zdohullUEp?kTiBXYBaU)_CDY9^Oj!rfB9wl@9E!PesTVFxxL^1xV_E4cmMRf*Qo|C zvtJJ0j;8Ij%Ah;o(3$hRipyMf2HN&@uJ7lJR4(t4N{igq@#>!OqrVnvHycixa62(g zoX)+-U#9+OU-Bj187)NzRUD6<7dqV%WR`o}@Fttj*3@jnGLAwyZCADU4)y(ZYVT$x zn;v@OCX@K4>)AE2M=Ns=Jdv<Y(OToa^J+xC;I>-DdB50vnl^T;?)>(qLp{as%T@vZ ztvL*?vos_66eeu=;Qp>8>OhEjf|lv-V=Pm6vKX{lZFWpr@JiIUQkW&6V6V;tMwe-_ z+y<_EqJL{W{1eu_ob%}B!5to^;sp^-Ddl{2T{oB4&tbG<oLqh&@!Wz94UGwIGJ=!R zzB*@^>1>a9muMNlD7#EbG4|KRkPzjfb^V+%d=VUSn`EA>bldf&O6D?~{X&sbjtPz* zHnUjvmPG!sSjM}BrA2tlk;aq7SAtD1smiu*X`I?HH=Q-x*|p`ST!_@kN#X{%397P= zU8guwg*`m4Xhb|nQJiHqLFlkb_pE6)=2zBC)GAe+X17@7{QLKE$CA$n8YCRedGXOb zCNM@Z>3n#^#e+t#b{uM6F8==g{eLCg9xuN<YJdLn%cpPG+rRw!yuIe*v-#W2m%mT^ z|LxsF=a3|k^T$uu?D+rV-`ltC#hg}lzmLDwe}Av0{C~F8`}H$6EwnXh+`M=}#m8s1 zJq@)R=e(EK`_u5x{iyr~w}bz0Ot^XB=7yUeZf0!0c)oYV7kTMYvkbEeGdW%NiT`iR zFuz_|JlFjC>9bbSX3}=jxn^oSv!-Q6Ez6v_EEUYy{Pg;DUX$=89SQqqwC}Aba+&w? zP|ckKCbBIn*_H)u67%M}bScarH(?gvVH<-+WrbfdF$>ou+&XBow(^?0yC}=L((_wb zvJOAWSrPfCXJzuUnTuO4itgKxSZMa=Z6jy4)TjB4Gj9tm<L%zusBvX^gOSgHZ7rFH zU#*GYYGx=uE#;*8Cv=)YZp2(sNzdjb%{jB%PIO7cAKa2yc}-(+!^+krN}iztk2f`B zHm5BR5$0>Loy2rvW0B*8^$oWsoMM$+$rrGoR%p>K#Z%!9xhI}J3QV|q`h#b3%TFc^ zE$by4k5|1e{NZB#sD|}QTa2EE*T0h=IK!STby&`OGREy#&)WqXH>o)KFVns%|32Wj zRFbHx%T$@$>OF}$-V4l@6uZSGH880=oMOCd?zjMC;d#kQPiBz{r{1PWu3wRisn%Z% zofljdSl0V8=BR$-tqB)bHlC_`q<O`Wqa>PPtK#Bdk2Na}pO|nn+v6v1<36S=XE${| z#*X%Oua1yK8=r4f*q3wS1<PqGhr+N`&T&gr1EQB0pa0jnTuUq?l4+}}buvp8Pjo<% zzbN;Ypaq}#KJrv%vg}g2aDMk1jxVB)`Q0^X93@MbWK*kFiOjCnUhwTjx|KoXwi`?I zHWsW&xTU^eVzaN}qA*sIxUdWV^3R?*oo{NK9lvVkQO$n$yBV+iO}?tn`z7rEw{!Ww zBf<5LR@#5OGQUDA+D7;DmNS<(`8ONAJ+Vdka-WYil;PK6*Z6YFo6DQdt*<Ft_*r{? z?aM!>(wAH9FS@U}-1W}Xb+3!0@-JQvSgXXt)_q-Zd84Ra!mUNir|NKg?p_?QH*6hu zwQ%&8Ef)7Kx$(BGnZ+Z#?kCp@-72Y5vS&n%HrR)VJ<}+E#kE4WX;ymo<C;J#X&cqP zrKyaU#T<FRDqNELI?r2XopQo!?io*hRqwnN)i<Yk%UtEs%zjx5yDc+MTW>KDSSw*x zFne8LlHke%eBGIQl6OaMoTWKUC`sq$w2+A$rwsYu1~??w3u$vjYh0XX!ZB^jV!27O zx9?th_^a>{+f0VkJ;xIJwl!q7b0nL6%bzN;(!y_gW5z|MW!i4r8)sAtO<nlW+H3!+ z$3JFU)r&fas~4U;m;5KoVUmQq6<_A@l?Re6&$(pRUO88jD($^)=ifRzHj(2ek~UA_ z2yIanm@JU=@4BYKt~$A-fb9`qo@**hC=l6Qr672*Z;Qn8V<l>?7cz7<AK!3+uau|$ z;Qv6mlwRRnh3uyqtP5?^8=B5sv-sY}(bwYpAZy)m#kUq(sS%-$^67pm2Bt5ME5_QY zPHNyxyrJRexlQq|=Ie0Al8=Ik*X%1h7B8CmxZ}wyy{4OLju#x{0^0>Vl&}8_6|l`L zDKxsIAGgXeqm*%S+-+~sFQ#>`jQ5IYCFy<&6^PxlWTR-n{5>g#lWJrp$KLf$xXLuI zO~{DvI#c4ww;KM7ZP`yc8R*Rautk8USIpq&)x9AJJGXCKxc<n;%X4$i#j{>??PW09 z_hZFzgG+@DZ*S=t9sgf-&mg1LbI%{%d0#Kr@8C+(n7&#l{EMsB@;Uq$YnK%ri#)9# zYWX$r`sC9$ZRW08<QE#ad{stp=oU@2TQ#Sam1G1PZqXFEHH9xX>RaZ`<xkCYw`cD3 zJ)Iksce!ZxwA)+mEQ1L7pRSFX*REJ8*Y>1RVv;<+bKV7$)0eZhsAOI$^?y8fdHZoQ z!HgF_L<Nr>NPfKVcerDTUXo2+^D(O%E-ycJM{Ve^zcg>&h7Vs)vvtSMI~gqcc)`24 z{t&+CBeKPRO!xhnrYI7YYRQt`p0o0S{zq^Aj~lnAKj8VR(EHG~w5L!~vA9uWzP#=I zW7S-e-IoOxHgg9RE-Vb0*#GLmp5+A>+B8LXzu5b%X{k=1*0*g2W!6WWL_%!)q)Vne zFMM+DQL%O3OQ-Jt++T&B&E`tYODQfXN=?iKvGS9$xJ*n;kk|UaE*>&ACgCm)-{M;y zkc+yOt}>YUUNUy`#^9-|&R$cyGiM5yce0P9ip~+K_v`P=^|G*VGH=>D`>2dYqsf`$ zi|4)D9)0NEiNp7n-)nb#|5x?$Jhz2Y&Pd;>;8NCIy4<Nt<s(~X`P2X3j!!>$bo#;V z4~{?Be0-*hg~*5ZpKcZHl)3$RZ@1(7eeMrTzMWVlymsQUJKf9ou9m;y{oqzQzp_}? z`-M4{Uw0&U6tLY_zqkF~eA^h`GhZk7uj1Pu7QA$Juxf;|Ys+#K#~t%@+*=gIzDyPR z=PD)eMt_;w_T!0$=PoVqpZblRap8^nIg;N$CyO~R-cq3ZChJvZMR;xR*8Zk_0*7Ru ze6Bk={mq)_>$9@w7X;~+%-(#Q<5E{;EtgE{4o}gE3*?L5=wJ3U(dn|$+Lp-qhkMQY z=`X7IQ|_FazV7F_ZjEKz18wGt1|~f#G?D)=EAVi3?vt2L!i}!|%}1|o*c5qL#FYE| zvKw>t%1ho)eraG-Dc3vssaayvMw`ob7Tpw=(e#z}X<U9};p3Oz%yyMtd|qU;^3jFx zVqt?fv+pd~n0ZXGRExvfO=nxT<x-6!iNZU3!^7BXOpXdDsE2N0&!5F!`(f$h$mj#= zGd>G%zB!#OZa2@~gR`uzP46~|<6gUbs;F@KruI(#1JT{<FEvNF7RW#K{xKu*lPtH5 z{v2QZM~4>1Z{M7}cfZOVZbz%&%%#Sx^6Q<$R{wY}VSN3SdgIwZj(Kacg3G?1`+C<d zBJZ7eTHF>M_XG>AlZ=Pg-f~FaptC90c+yH{jc<~{9RgQRO*FGm>wdW=B+7R}%Uedz zh2cy4B5!i3O#Nq}%f8T|gyZm`EnUC79R6&X)#y3-)0z*Dqcg4@o37;6_o!Odfo+S% z<FmVsHoi92QFzLHTbZTRX-8UKQ$c%d_3h1`xAS;ZlAo-7y|y;&q@r%xTery0n}t%( zuL-I9eLkLfF)=^6$wD>u`!}Vz{qC8vI^o~%`z|fK?YhF6@p=rS);?j;qe6vu-f?JW zzWTN<_FiqtWNGGq>GO0y-6(Nz%RQ)MQzgD#kaKHYYV)1beOyaiwXH6?n9uRq^ds_( z!W52=N^h13tlzWs`{v6V+*7q}c5>!VOW!#2{9=pdyIE`YtW2qGRuKN3)RE$`VuLqN zV%IL+EcQY@E6JIQb`{M{6@GqOGt}dv?)`l;RF|&L+%4?&`G4pCy3~BVT@}S!Gc`k1 zmxrz}?D}q9yvUl<)XjN+?S|zoQtmOAlv`)X@{}AYWt)|nS}64?!BtAkT&G7jIrQMN zEf+pT^Q~jQ?77-7%ivwGo~BGj!NRNQyAlhM7H<l;6J>0@X_J6Z?WLIS%ab3SJmtjw zsW|mv<<Iptdn7c^O>Grd+`V{{!Zt1LbIlFw8l3}A9hBvC{F<}&pL4aJ#?|_O*|z6) z)U9H_vbtR&>dDN~nf+o1;~AgayJ?Xbt#b8?OV%y-qGaAY1)XIxd*7+*3)@BrpPb{q z=k<h0g9}Gz?Da@H$XR=Liqktk%^7YnpTpYroGh53a-Pkdf!{XHWLsl$*B@)OJ>rWm zdAv$XQ=9we<&qi|_5AmY*AA}okX_Ps?L5PiNKsq;vek!WH>?T0`2Mg2Qz+}LWdSdL zI80n(Qa9P4oI`P^nA2pPZA+)@KBa0Nqm=eMoU3p9^{5QpOSUyzFXT^MVb}L!8O!d~ zUk*2mCLFfrzM+%W8#Div@s6qQW<6c7Fy>~-mh8>kU(?oJaLlOQ9IU}|>tn}vtJmVb zjQb|lJa!G%o6zE1S!_4+%99DDYSR5O@~=J8LhpPkWN~8RvA#R+p*@4U;3rV|i(V3& zW0_AjG&Y1zC=;_wI5z*0g-F}`pQ1Z`mh>K<zp?nH*bAeqOz)c)J>~`;nG~>y@vy^- zW&i8u>T?}gxa3yW>O-MUGJSK8ukU~Rn7P-TS!#Ok=eoz<vpJj@t`~M(l$VrYdT7B` zZdfqk;`d&5<G#lRTk5{;ml6qT*tq)NEU}n7CBN6^{kPN1-tw#WKJSvQ1&!CjS{Rsu zlPz*>{<O5MKebOvKp<S=|B`$^UeLuzD}Hwt-rtdZU{C7Ixkr=pHca0xn!iodk<lWF ztz4kNHCxkxPhr|wOXJ(xmOY1NZpk^*dUFnM_+<yT<}ZPlo-HzZd{C@q=7CL;r}fWW zYu$TzJ%2(}K%$aXk=X77yiE-cj%+YwnsL#04@2ZO?}a~a&*$3{f3ZT4r{;XT?{j;F z=F=I8H#=soPMp$szeaoIYj5em!=ZOO<}Q&oJmjF^`DE2EM#Yo&ZoSIkifQaBU-a=# zknA`2w0a9U9g{N7@KptT2HoA||F#*Jge!L+I8>tXIsZhLkaFW4-OtS#0)AJPFOCfj zJjeeaCwW;^@6Kr^*Cxcdy=u<=YEmVfZ<=G^{{Han>xSCwmk&6tVX^*FY9N@hW8SU! z=jR&Y?z?!`elx3e=F?c$8NFJq>7P5ll18|}-K-gW>>j;KdDJ5xKbiK{;d;+s1<7## zX$@);=?`u_R5|gk%F*goldD4e!FT1>BDF@xf6t$FE+p=zp#-yd*Q8UGj}A}v+%&Ul z{eko9Clf5sJdr(D`dOuEiky5BZvort24~*vIUD!M@rZ9`+VY7dqK$o>e}z$woxV>< zG4G-dvFr)EpM9NKUU%*DuKL*bLCPYs&66uy7lutZdPwPLdF?k_*NUsJR{g$xJ8bil zX3L*@G)}N}rM>=l$lBjwPWh*`y?lqChjZU_a@pE3CC{smYxi->c@b_ezAbvJI^o|P z*26MITUO67XDr>;7$>`8i|_@l1vbpT_TK#UZ0q`SdV6P={a$rBcj_FON9r*W9kDTU z@5NRI%omdg{d0%6E-QE1gUh}We9Mn}W>+`4Uf9&RAZ>kp>z@3z_iCRni{@f5DEU<Q z+qFHQZ6k+y#pxPzYi}lB|9SFy?3p_GL0rZHPJQg!>pDf>AD23zwdzW#f5_?;lm3Rx zce|G}g@wmCGE7@ZeSzwNFQp5LiWWt3-3x1r{4{yXzSb)*>gKW68CWSqxoTK`dZA#a zv0&>?mI(P(y?X-Oxbtl${8NdT!o1-_#&_%d3;Jij+@2)Xv`pxY(oVj(rghng@<nbu zM+LJ>yR#Nv4Ouzy&~x8IsU-<p-YmIM+m*WfPV4t6dfH2N$0;v)Zm@6qy7>8fEB{4Q zU$T~Oi!1Dlw0q$i!|-F0T=5Cd_injQAIGuRZmIJ;-|)Rdijzs<Qqb}0mF;zN81A27 z=qUBL7QMy)nVQGk2uAI5+Shc1@6Tq6)w$d=L7m&Uc-i?y2b$#if2)>m<6mR(<i<0t z%kmrTuBy#Dal`wP{kIBM$HrM4uPa(B`olenH0`EYD^%ZU<d!)aaeUUx2yx96QAsxr z;{%p!n?D_xq9>c#X#YcJ=ELPze{izQG1RR~Xa8Ry!y_!Wf6vBSWlL%eCZEp8KO~;S zm#`sB>1LYyl{vApTrCx+@61Y(c^bOziBZiI*L9~;)Z{ns{xkdZXWsUywzDc{X#KLz z+-lb7*{9`wy;kCB?Zt_8v;K?aU-#~0c=I$`Fgg0^E}!UQjR#6U<#eBkXHR%{VT$bH z2F<Afs(h)2YkwI{IG7|LdSKJZT@e$P<$a7446$D2@XqXGeAQ<4xme0wQzK)f5nyNw z*wO@A>?#mZ?#}cqo^2p<{QW->nTH8loZOxFcB$s38(mi2zUA-<1!m#REKj!l{Wf*N zn;R9K(U+G67jI;l_dVgu<^Q@&5uL1SP76l#=^e^i)pq*g>DL!GbN5F~*k$oyVX5tA zj)Il%qwPM%G(4SqW7o#`rE7%tlpW&;l(vdrf4}_C7C(U^TZf57Olvm2-zng;<!`py z46}bauUu8cOs`LW-!;Qp;MV=}A9wy9`&Bwo+M(m@WR4O>L;ohdl4Al48(z=st?T;u z`wdfI_pZkG)yF12_jV7lt~!0YT;)pI=}wQcD%aLMT_ac&sIYDNzuU9#8%=z5Gvxp5 zk24LQ_@?BADrt8=`*}>-w&y@o*jl|SPcA<_(IhM`bY4nXXZpeG>sRdYv`^jp@W?Jn z=ava?t&)3cZ6DYdlx|!1H7Q?km!z`6$J{;bFXA>8-FMU|SFCHO5_j{JO*?w#V?%7- zrLP^{>W$kD9($HNXZGJ8f&7<Z{Ilkz^oFgwwKk?>jmHzSrE+%Ghir?b*H4bPI9XeF z=H2#6$<G@SEbm`ZTaa+!{{GebBhOZz;9ltX@5Li!VI!Ao%N1YG_b{6|J=iSYIXmRk zja#bTCm24?Z=X@e?c1iqeK54{k6xe01nzwXTW{}*txleq7TR~D>|99fGB1z(qIGNd zg;n;dobqvtI2rJ=(7Ss#$G*u|vVya_RXxqZMGGdbIZ?;RpxS+_@jzVRkq2)kUi>#f z_o`4=-X9(XS)<37S*|`fvf$RFz2zxC9tY0YtR-TvRp&7I-!?UEWv|DsQ<goQaBte$ z^$9m)w#nHwIVZdgXqn7#L*R?j<(jB%FLlq%e)4fgmFhwXX67DqUhkAmO9Xf>{f(Wn zp?u1!yuZA2veg-N;+CEgP4PL|kS8qrO8%~o>p}OMu`zppEch5wI&+1To48TszOYA6 zEVYv~{TSF1*k)X}-(a#%-oO60^YUFDOYdFTDShysfENG5*<bqo&BY(hI9CwPyZNfp zv)_|bo-e3%C|BCG`|$?ZtQVgbm%RLau+rhx^Mv1iTVJxDbJbkteEa+NTXwzE=G^#R zy0FblCU(<|3yhECTRi+*C7$c_1W376s$My7lfxq1{VaT+^r=IeW);__Z2Q?-{dn@$ zSFaXcw|rr_dQSVV%uC@Hu6(kK%Uajy^ioc*k)6HKj`#SEwf67&1@63FE#8)Vs-#?e z?Y?u;`jIJGQ!^v)y}G%!x#4W()>q8h$#aS`@6KEK@IM3R8+lI&-|A&T8-L#UkT~&C z(QY|I&adaZT-&SPn_pi%f9=ut|FM(;CWgqR0MYY67N$fmaXK0un;)}Xu=e`;2g$eD z^(+rdPHGTTkS~Z{z}j;ozfIBN+cJYLkCiIoC-=X%j0r585VcP{@=)W#g7WvW^SsYJ ze|Tq6o?`2wcZ$<bIr3iOZNBBCdB~CfTBWb|!mQ^C?boE(g^GfndpMu#{k~ObQ`XJ{ zClodZx-^$uS6ti{^IG7N(>tRjUldjbaV--R^m=L8aqZAV7Q?_klaA|W0y!_KB=R{- zeb+Lp>cX5t_J4<01Q&f@Fz?u2Q-?b<7PFqQ*vH%xBJ}>~{5x$TUEz;84tSpxmw1>Y zKS}ssNO50*r+=~;|Fj-)^`2vURIesP9V^w1c)5p<>5TU?*&kaUE&Mn)G4rZ{d*(r5 zF~R$l1rK*kiD_Ql|Ng^j)l;W!cTC@Cs#)>&k6+P;IE!|V6)T0g#nzmvFw?xTb=3@J z?r7b9Ynu>rr3q45%rQMtEAIYya>@C0roz<=Em@7N9KKWUCrU@_?(u7v`Vc<#!sQCS zs~3#F@5$hdZ7oi)to~To-rjfo$%-~U1DUNCqUEobW&}%JX0#Lt;Qx5yieZ-0Rm0_% ztezRhJvf!!D}LqJbMv@{NXsQo%Z`Z}WTZ@EWIaFqv**^0y_T~JEP1?U?kzIQzLG3? zh(W!4{fx7Qv*%1XZ73ZwMc6uR@<LA5-BXSpTV;_ZEI+#;{oJKvdKdOB=|9@kntImx z_<|jgsXEh>&1_WXuT3&DJ=6L8pvbG_eC=f#Grxr=h)Y@@U%q0C;VZ#5lf=&px6NP@ zI=;2n&0@mAH$^X#&DMCE*&IJQSzWwceE+{1p7!<Y*R6Z6$9Mkz{{nNn|Bvrp-LKDg zKj!`(+k1O_3WQ!>eVE_AUw&Wh%;W9dhrb^;FMp`2;M%-%R@D=(j_ET*quv{;9!!mI zSNA{ku+rks*I!3VEo#L7mHht4{_pVH_v_Xx>Guo$J^yg^dc6<tdnPDYB)e~vy_o15 zaqfmn{_&9W{hY6)H`+duoBQobb<4$^_A6ozOk!3Ah24DZ48C0}f0X&uGA?7<Sn}@1 zE}!%17X-3z8$R8_5Yi^6`YO1~uV2O1>+V8-%lYymO))LAD-KN2*|yDj;U=8}Aq!V{ z1&FpCZ_wWOMOJERDdP&JU}?Tpj8oW5S6!2vs>SWVnR9kV@zx9u>l3y~cORN=);%yK zA-my<iB!|-w9Z|}U7xb9i_!AoUFfZPyl;W-+M{tf>?>IJ#qex1GrAxaY-bs8`{@#~ zisHb|wjMsqij-w~t^E6$FEi!qaV~4S61wylU(TfHHPv&b=zMsl5uVgK`O=fZC7ySc zUUkYY5Ucq7#$cP#so67TgdUo_Y)kU*lt%0GT*=LogL0A^y%ZO^EZP7vs_%}i)TA`u z0L`?6Ni)*<SFqmOb9ss2H!igkYg~(RAZB-ziL$Qn>eN`8)vZxprtqs*zrL!r)cjp_ z*D7Cbt!E<pj;lXZ&v^S%`1O*M%9=yH?dj&%^XJJkYRb&3{ca)?CsV(Zdwt#SDd*$< zzpg0!A@-?1ynOqbuP3}~&bRN}TUY=2Sw*#$`|<MsHv4M7|C;?e{!m3-^Ifj4`C%Jw z$@YJH^Od*d!>_tsbvh4qpUL+yB=R~vsJrlN!F;w9=6CFsd?|b-e5Yh?{9W+l&$GmU z=MU<*iWt6&pP&Ef@LT@tXKsH!Y|3x%+hQbm%0)wXp-+p^^GTMiJ|~S-PfyWNKe_(g zlBx|Sxi(yta^k;Z%f;pTH)>(`(}{;3C0~txV6<w}KF1G^T8(Gd9Zgy_JC||k6DAK! z_p0A~k9`_i-Ym=W_e@-%{fBkZ%&r-8H)eWd$(-!Xy5E<1@Z3)EHQf`0S|%TV9`)eM zc4w=_tMgTrn5=4ei;@^lUA)pHU2}f<p)c$@&v`7rn>~~Kcz&UiPmk#QrM6P+_DscL zt^3-O*SICdG)-Z&yD2>FbgA$x)?GQK%8H)?65{(_B=&yWx-miDr%gOT%hXI+GPN+^ znA`73Z)cp_;dd`tIW+ggsnit{lyenJmq*J!o+((n;GN1e$8(#+TH`vE`15WXzLa{U zcle6PEfbEH_ZH`W?Ku(>R#2{y6wstJzw=Zub4%3CjiuY#b_MThs%BL$z5ZQd?)>P3 z-OEl0^EmS9G(Yp-n6GMaS}ITKX5txxUG1Sw^4o3Q!q4yZT2ZTfp5f?;-#kheUH5S; z2%ZpH@xJR&%!b-9woZ<m`Q01K{w-+pN?($0d`v55+x2aVt8R8lc%R!~lx=e~BB*V} z8S{ma2fr>lVOr%nWtv}`-ek?Y88O?`j&W_!$TEFtbMi#9?waV{)7M-~44<qyb?L^$ z-M<vLPhaau%T~JO5kL1L^P@ni$=W{A%CqL0FPfV(&qwh#<COG{C7geQpKHrE{P^js zBg}j1N#@5VY?qbqJaA74i>N7E!|okEuT7MHr_i*#rp;aaK0V8Iqomo-1aALyZ{M*e z?D8j+)f0^8JyO2*{o3~As11Iyu8S^8Uv!-R;=tN1E7u!VxW8>=@!%1h$}7J@R5#x} zWS@X!#MAF73BL7Hcv7@acmBKNx%lOhizSybtTIjJn#}T(@>TC$Hreg6=Y^@7JAF>3 zdTskT`Rx2R50_i6JnNb3msK1zd-AP0SDr1gQ~f>VP4FiFlgJFEFoBn9v41sdZ~Afl zk_r-dIODIKk7yRJ=+m9w&hE<*)XuPJ(9K!s=oUKh{nMar&QS-sCM`UZvpjjf7w6O? ze)su2&!0OGYUFLFwAnh-+tu)2B-=W@ga<qaXT&N_ZY-ADagCQNHv9?Kx<d(nCTLGs zb>@=!!N`Rcmc5$|9!5GmOc$Fieg4QRC9b}+%n?eWlYDp`o1f3Dv|c9KBJO0|!=>8I z<91W)&xGr5XOyspzMRNwJU6tF&G^T{m~GBc2g)bvos{j|nYHGF^Rg1=+lsmmcJmzd z(zlY*Z@GIwa-PQ916!J6vjk4>%Sx$Osl4N&`iU|RZ7F$MceOw#-K67YSu?hnUbyBu zw_o+>nUE!uYLa*B%n81^@S(PqeBhT&`f&|MZw8)MTK&GjPuoh~Q(yTJpT1wd-3{-% z%vr9_lUu7NEex2tw)m_-WLd=-)w%s_|DULrE#GK+)Kle)?1HcoyF-y>#~yI5(zsIV z&l6WruyW>E!!J)f9_;E%Skuq)uwQWPf<pmoHqT6!F`RxdOYQ!fxh1Y@$9ep=+HdjS zz<w$C_7*2@r}ZL7CZ#E#yLzcjKj8Koo#`^>{A^v0PeZ(mK5xsMur{N}BtrBg{|{y9 zzrvZ-XSS*?k;qaNEfZD~bJv*WwdQv6yGfs!ie~08K9%IUe|_bt>u%eeqb_=TZ0b0= zR`K+U11<kgf18l4y++r&t7fKqd)wz;#U~F+t(UNJ-K!SaC)Rdq_TSHzU*G!fX({<u zeE0JG!W_#TK2zQO+5b0v`g2-fhT1P{rptbNtLr-steJdmH99iLnG8e0MYAW}o^of| z6EoHAnmc_@)_T1QE}B2-_mn%!pV+CMe|E-bw(;qlb2^(XFQ*kRJNwLM_Su<cvyF4j z(r@LQ+j4Vq=4SQFY5vQWYFhfAtn@k;Tr_XedufaKxxFX7G-TQxKbE>&67*U3v3B}@ z`H1`RjuY?8<=@})`{%n~&uZ9GS6H2@{oirR{j7BFv3v4Mub!Lr=ZtBg$cDqF%3YuC zUOXkd!M~+*_w4Wa?{;YX-?^uzxVpIV=et+OU$bU6Z*b`PpP2jOROtUZw@&=L-u7?C z`nb)3$$MCD+1F-ON6nu7KQ8WH$=`1km6czAEq~m!RP)USP5EhTJCm+{nz{7iXZ_xa zoX%xWnjO=P?#o5akk9Xn5dLv}cD%R_mvi|qkN5_)tLJr3IqQA2?-9Mjf~9qCYH5bq zM>jMyAiDAWcGk&Bv#mthzSnW-o;~EEpmM=z<v#PNA*mCk^@FZ@21=xuU-e<LEW2kX zB$Ow8-tb((*{;A%7oLBf@7R>UrchyBVJx@jmw4p?V@*Ylp5+Hxm$`EktjrbS?os|= zv88wY<L?ZDIYH-z&%T<?&&c01@om*%|2;7+HGxK@KlQq2BtCrTwN2`evD_K<X&Eey zTi@OO>~p@%VFsVvekXy>^!JP=f?p48sxxNgb5kpuVBvpY`N89iS03NBJymyl=D)`O zU&L?Dj(?IUti%<QG;_nxC6!ay>Sl;_%73~f(fLsAYr*WggO5+N-n(GpCXrmKa6NXS zp7rn9yTUHtI;Ns_qew&M*12nY=0DT!Q$B5^d2F`I>P!8bS2jK{$S>ZKlk;66pI@k) z(I_c&#hXo!7~?~38%)fu;=6jbBkNnBN${b~A#F0nW}Hrk+YYCf#(!HWFKQ#6KCgEB z7Jmbk=|(cSikXw=$RBLK{bN<lsp*#rS$frPGOFkMeTpfroz^3%{U~QyUQOeLG|v!8 z<>|X@XD8<@398%O(w8UHKFjx@N&ibF?#emoO~Ohmwy&;zGvThKwf&ja{n<OMoC@E+ z%zO9pf`7YCO7mg??UIRhe%{M+^*goKoqKjmqIqVWh>E8i+bOyJ6-%q%%0K1bVz}K} zx_Z;$TlI5~eQsQO$&j=A&$?xnyj@MM?ti9p1wCaI)93EfTU5TLXNz@K;W6*{^V@$+ zo}cnv@9~<D_xfD90s3cOdr$kQyGwAgp_^ECJNw3~)w^`(@$Kn*zRc;^PI<p`0Vmq| z*Ne{mpsB&j&DT7^{Gz9IPG|AoRRUgXCq(Z&H1Wlz3v-wIe9=qtnHc`B@$>z}B_Ges z_Y!lN{zK#Lqem;ZyqG(K{S}|T)yb#z)unBdxgIU4{3$ZaYx?0?U2<ZJ-);3hc=&E+ z^sH};$JRGqON_9H-@tl%c15IE;jft2Y&)ktE)5LTndzWjw9L%($ye2Xw~ddi;BE_z zmAV)I#6C{^-s(xd?%8wKC|7m;x)jPS_s-9LwdC|=6>%Z=vo`2`__T_#qT)$uX3F6Y zXZLU%IeCt2{_8*W7Nrq#>z1VI9DVbiL+#5u|2uW_^U5Cm-Y4mF-({NWm$x5;G>_E& zC=zb@;?*J=-gzjdZSEeuv^75@&-uHp@^zXn_q9Ue+lhR}qV;>$P0D#1zlG_$rQai; z<!@g*h3{S^YN!`f^H73wsqHak3C=fs$<uy#M;<*Dn)7pyy84#t^q;GzOpBSF@+S4w zdH(nO%6+#d?_u>^&OOOhV!q<0l<*W+=Q4-X>(+9?)BIi?GToZEex+aeEUWd;f0Pvc z5W2U=VI}ij2lZbEUBtEtFPnU{D|J`Ou9`04yCHg^d#Y}lT)PvpbkRibhxd7w&Mqkk z-E{NenuCkJuS?nQuk!u#-R-xfxYvDCtzJ9Z_TiB&v5!v3Ug0bA>5(lo;k-EO=d{!{ zJQbTo0&mZbTT~H{?R!7HsI%t8rnL*Z6#p?as!Z8}rI<1^MP5t_9ZEDbG%z4~oqDAA z<k=Pi`+kQPv@mzcy*L;b^n2FLyQk#JPH#^+-Rfu-Vqjon^!anRlhU^v6_e(sHrY;{ ztfFG-TmS0ade)L{d?k6}1sROXcCDU$`>6lvqqC(C$*M5$N)}C%Zg*CYD3(~>(DKUj z(Vp^pzs0MjZhfAt6Z7Wp=0A@;{PbCp9Tpsj;wY(MV@z+nSwH#drJR3zJ(jdj_-&w+ z663m9o=wrIL_n88{Yb|#hDy680l7U-Vy|s++c)*cGd6Dbh6#pAt^!OqK9uf18I}L! z&{?U=Zp%(?owF}I?~Tj6*?vLC?)r(X^*Qr{xy537+3(tG%a&~qGjqOjcFEoOC)Bp} zuQJo_e%9_@^)C8_!t!g(cYppad$@o>!B6IEtwPHg4LR*-p%-<ZSV|m!c}#M)5O93) zgQIam(B`_CeDWDrO#klCxuv1~#%J~^$Ez0oS^SRXuS`w-&40C~=CYNaJQua9%Xs(O z#qA4k%Zt7eyA+ijt~R$Wwqql=&HSJ&DYK_9-Uua67w+EoJy5`D`bT4dIjx7}H|Ne< zyVWx6)T~=OZdZPk*z)3=^c%)?U$iAf^%)MB6tw*3=ldqnch6ByD|aEouD3EPB0_Uo z0u>j(TfR7=o%`6~=Qj$>Dt?&U3wrYTm%HL^8*RH;j#{6+ZmG^*r}3!yuYa3y3zJD} z;Ni@kRZSnXyruk8r>n0$JumU@<&YixKh3yPKTh~RYu&Fmh0aYj%q~frAFBIHM%<Qk z)X{q|$DgIsmvgt)FaCw?6CN0=v<Q?}Tr<5jW7qX*X>J!M1|6==mtTIV#Ba?i@!7tO zySH_3iRv;^P1_cHWR01y^;?(NdugG0)1xeVKXUJlna^bVSx@`dRsOV$8U62E%M$x{ zUx_POzdycs{b7B*>uWD=&0e$3dCr%q&3w(iO6Kwk51DN@=Z2d3Zo9Ury2$b2n}fys zK5H$rS+C{!wQ}>^xkq`rZg|LwdagUSkZ*5HjHcMC1(rH)ZZEz2ot1uXzME^_d+_0k zo`*6kvfNL;*}mtP@&B_f-;dR@a4+OgILP*TU#)f5%E#;x4GgTxc_j?@y~Ou^*$`me zWW>W5oc`eGf||JxdKWCa@Sw-9<yNe^we0qD4a;80FHrpdt|4B?wn<pYLE#_k96#qb zf=vF8ZX7B9ylj0O>*<hJK^q^dX>Xf%KCz&2rgq32-h&BNVjI_U#Vt|z$))n|*VFUz z{n{eF!beL#?U7S#S?;W%E%JR?al9;F`HbJM1)~K*mM`fSsNj_FiI9GGE!Dr^`OyUN z)SaPEKFkt$C=lBoonWG<l4|6>W!JaUU*y=CmLGn&=p9G@`&>bnA3<{)Cp^DCzn$TZ zrgmP~?%cN<i&MGTIyQ$pG(7LfS6(y2pn>!MsaLH%4q>O?{)lBf%)tF+Z^%zEbM_ua zmk%ymc_nvBWZeqwxm>yU@ds-M&7x3MKZj+f19GEIYs?g9Uwqgw_}PRQi)8K>lP&)2 ziuuFs^J9%XmeR@82)T5^JH%;d!le%_zKkr)Oo%PMwnoS1N1F@PeqaCK@jLFLitWxq z99&y?H|;*4C$OdRMV<ghpN_hljOMf_*ZzL5ZWGdF&2?dX%F2|z<c_t>Tx*$mKLv`_ z9`h7`YqMA_&~rYJ)l4R$H6uw$^oWX(=%kZ|D<=4Aex01u(Nq^QM{)jPQI#gI^{2R} zxUUQ{P;tGknWIs>S6NCcQoKRS-)`lUp6`p&9weO)d9QoSeXF5WdQH(gE}?_B0_;B@ z6F0TlmB93Kfza#+t|47&2KStVgp=0%pY0<c!KpcWLh{ruPS*Ig#d@BKNxX;Ze=I4V z&@Q<o%HzJ<a-n-(7q`m=eG6!qeuOQ4@r0~TJN9?nYt83+{p#<8Bk5Q59L!hVo#LYt zYM8357pC1M$Ru&$QBMm8vy!@UOfHLrlH=R7nCU9-dnY~m!dJ8K$&8I`dEOycqG~>h z)clQ)I1#ioLugtsC%;9gOp=l2b<-rXo2*9#*iyZ+Y~@n<UU3GVNLkZodgQSBs-;3c zevV%sdOx4@s`R2r_{77HHA41Fi|N<Zv)}31c`wkXGt$uG+>{XA*7s9&eyIrkIkA&V za2~tms%?i<iuSGWdf?F)yw_WSYh}<L_324}O`Ojxty`t{`qe5)JMWO`t@5js57#fw z<9xJa!^8a@-%f4N?FgzB_+WM?bU))Zwx53&AAP3azq79EYR!kQ!E2s9)Of|Z%Xx{N z(p@FH!h>16+-uftf2qc~uC81|U12Tv>o(4~yFnj(6w*X(b2t{A546eQ@GKNqzg@I8 ztH9`u)AU!%UCmWaUhNhS-)z3WK62L0@2js?m7D(l`SI_%egD7TeRcWjoA$5I(sow9 z7LdHN`=)*R|5<;3OnWtZ^-cfNN6+m!n=>~rE@}3Lw}MtV$9}z8%qvoO^ZT=-+{V9e zp82=2ZnN3u>Cf_S-+flN@pr-gy82rC`TE<W|3t3O`=7V(_dBlt|91J_Fq`(VbmkGa zG~q;^-FpL{oSHA)YW@D2wsek6x(D;|%Gp<yk4CmXZz)LX{K;b>UqAbN{<Paiom<nk z*WBuLR~LzBZTQ~PS8SI4Zh`XQi;c@~vFuk>>+TgP+9-1_p?LeP(EgR@j63hMoD^gH zEID(+q_2~#Pb~R(;z)*ZwnO86HrpkOdatxT%PZYI@BH!)Gc;~IdD_AKhEuPk;N;`N zhY5nFg6(VPc`33<JH31K>2;Ce{Q7<Wm~u9}@~CJ^HPudVzF6qYYEg2+w&GMp#fk@^ z{u7f}eN-PzeJNu%|Ni><3}?R`W?5h%(aiisQp9W8Qg*JL4_EwX@_jP(&Z~tCMb8of zc5+Ou^5|`6dvj}&%)*bX?fm5n7k<2;vgw|tX}a`5-Ws*pM)7QCb<3`>+(^jZU2(@d z?!oDM-#2`GyfN`e-P5Lu&`WQUHwj%%y-~Ag=Am4tO$+MXGb|o$dF3R0%=xik`N7`@ zy>c1jzcRKb>=2lBSaYBB=^Q?em#eKEPpq~t7ku=PBhc|lszQsfR+DTsi*t(Kbj2?Q zycQ>d*QiDF%BV~=^A?};agD^z$!k451HNX>P<S^#xsKoK`?JrgG0(qqHZY!E?ODOh z_E6F?mVd^_mKiK2(mRch=9tDiuj+j}Tc3q3Fuk(Yn9;`T+mj>tLOZ-){5o3^))R9- z>*)#W)T1$(2@{KFzk2xWvuRTA{|@{4``^5ZSK+^X_v^btYsR1lwP(~lT$j|k*e*Ht zIpxzyHQf@1jXlE5el6#p8Z9yTJBLB~!u}Wj8$Kq*zDzQnr=omG;r5!R!U0;QJhRWl zH=I5D>H5bF4L_GA$GP&EEtS)#vvGG*i*vdcoT7WmQm05#<;U+j8y&A-pA40j=hVJA z^hwmdF7sXy%j@!I>c+pH?*AV=HS$PG`vS%j;r-vgzu#9`SoHM~OWhlr__D$)q7zu_ zN<XgtniZZ~w={Flw6m{s*PE<Nd-jWO`nkCLYu)pwI~+I@x4$MeEq|K7_2+ll0rBzm z5piehu57xHwf$<<f){_g?w0-C5vjBNw^ZWaH}<Dz?|v<R&41Y;*@?_QTk_X06<gc9 zci%mS&PLAE`r6v0=r!@$m$SljedJrNwA^Va64+zSacAAbGT!akNxRj8glmMIgm-Y} ze!UUa?^~QREBUgH?`D&;mrT6T7%MaVe2cSY1z(;s>)92P<;yHh&w_>WW))waGyB;c zljqAU&Cl-4Jm*^s5{jAi?2^g!Wjo)P?w6J}JrL~S{d!GKcr}OQdhsK@Rb2XIvwwe_ zsGPY{)c==d$(+qEC9ID<@8{fj<@zS(>oaC8YS<fdAZ%N^*FBaS3R89esjNAq@^0S2 zx*DdLOwsG7#vA0WwO2W+aYWC|%XgVt;mN~pR)q>5T5f1F{{E<$qLl7@MbB^57wgLQ zH7|{N<kT9DTB>BKZ`hHubh`4-k0+Hg8s9zlDs=5^y5TZ?fe~Zn<d!2_Wef#x%-FRs zt>&HvlQ?hC;|=p#nt0yMt~`EyLC^aoG7ALXd`MPyowRLEm9Cn-UAoAUgsqET@6|oB z!TWS~ZT-%@^Aq?vlf8c{-xYs5bDEyk<Im2HpHw^NeRk$#`WL@zMa`G)m7kmy-(*`I zWJ}ypGJ8^8O`XPxgD$IsWO5mUMI>I-$j`2gEiT?ZYr%9Tx%5(lr;;)%hI(J6*b-~z zaagTh8+GXC+S=Rz|0frA_MfeqWn!4M|J#z|EVpu3-cIIvEUoDgzs4`!V2kp9$5o7R zmybWa{O)nuq*<{n3n$gQS)_3OP~sidG#l<dN8=Yv{hilDD-47J>KVDO75!k@(BPaI z`$keM{==TCrDqK0F}Sn4yKY(hVx#ZIi5x2W@eHS*uY9CGy`}l%4Xe&us&B(84_Dkf z9jP6&^xPSi<!!7xie5N<{;;Da#?Lif;+Uuvo0Mr+aR0wHPPMKr$<hAHYnMFqF{@i` zTh(+fjk9K(aLH7OGwY5d$9`Yq=$>+Hazfv&dzWTyk66CBJ!r%A-*ubss!zR~a_5ZI z#KI=OBX;F`MHG9UAME+DTGxEd{JDI$+$PMaTblMeF}ybY&BwL5H&+B#Ry}bM_Sn3L zNxE5AFZR{x&#zxg9|`2!UMZL=C}#fd+qNAMb3XK*-)>&m^gNP%Q=h1aspZZ%R@I*L z4?ZmBD|=<va%?i&rN3fNZvEwSD@Hx58#7*}JowaO>mH*f(WvEm*#9kW)!ewUqtm#5 z99w_-teBgx7`wxbzn)Kh&wAZGCEc(7K|yk>)XKGK?ksx*1kQ!s+qV0BaNiQSwxbSr z4tsLjWpM8cFM0gY#*QO;T1<bq?hp32rSo-n+1_10ui<=(soLDaCzE$YUszV&U$J3+ z!k0@|XL{?pKU=ha!G(Ke@-wggt@(Gm>T@Pj%9h)8OlK^c`%d&c|KvFPt<^F9`xn)+ zE~M>_;o+I_I%MwztN)cj^KH^^3M$S^&=cKldF8%ZM6M_6dS?4OtuIbL%3BrN`o^s~ z`}o6<ZAbRXa}>-;u$Y?V?dD$AoTojPL8CT9E^l4=^<bZ6lcpX~pS<$iuM0<0ZDxO; zbbz&Z?QO2Io&GmJ?NqvRIqhfSs>{*o0hc{<gL*&Sy`{3;{*3aJikmivPF`s^$0=jA zH+dPG$~1c)-V^(d{tI8m_9fk8>(w>(PF5T%Id^il`)y^p&XU!X@07u0zA%%|w>V># z^JSS?X?e4DW<Fasb2gN*)7Q{rcG3j1qYAlQj<-abw`j6u2J;lnNUAX3p)^TQc+)=z z-ss-1%Ui<s8D5QYFZy&`^Ha^wth88drIYj3l{!{F7MB0WF=eCQwY0yn%dW{^njd`h z_wMiQ^L|y8R)0^Fidl61<`QMSM+wtQ3O)*}{5Zk#HNAPFwtezjUCz13Q-6L*-FtKH zgHQDw+YB49G||m03^B(!O$|&T4RB)CB88pKyKNw_=e71X4cRRZe;0DyTE;1~z~S<% zXKbxWhT8%n-BJ#g{@XW2gLUhpLmEv=juVBaKPlR2?ab$yz{sMv=zC;I(K%j;EnbBu z-Z==Hcr|Y05p7-55UDe1_8Tsi)DtVeo&I(3^QI!tQ(HRqUmsEpIkx+p?yniH-vz(M zvAjq&NWNge_&L;Mw_?DLo!SZ~);7-H`<$!gi3aQUGS>LTuRC}+?Q(bTIGc3i!RY{| z-+Nh<Cl+u=1*#<TzTH$<*?8LSxS>QruUmwNrmJ@9hcnZjs)>B-6)+RCjK7{6ckQsx zZkaZ2^Yx$97OI@PU1aNbUv<ur*J>s2x<lpG$a5-heBG8Bvpb9Ds_HZGpm&QCCV8#= zCiRoQs=kEtg^yxeWY*4(l^3c%_})J0>BYY=`p2i*xwj{;Wj`c8tJht3gOOsOVM<%y z^0!ABe*Sm*9`Ii9=v1duKRdp@eCaq%QS{7$1xX4atnXLtdF%Hh(5~0P_lETR^PIH} zRtE!v%UX6VH?ML!*K+IOx_5ilRV&_BJH~yPTjTlHo6E}&{`&LqQ(@%%Aj|Ky+Gn#B zUv%W%N`L)KZ_mct?|Y+j?y-C}<$ktMe!`b2oA&?w-y?6_>Z5%zS8IubW@~=nO2-=g zn76a`l)CPa*?yP(vEq&N*Y6g+krVq{{rXjA*M0^zGcj&1%#9spD2KR0J9B1c(5o|v zNJ>vbee-7<NbGwa9&wA6Z^yQe;+MA^zP9vI-s?-j(XKpmSUMfJ{dUjaf88ua(bqWl zR_ZO*`VVz>=RY$!X1iRt+S8+*b}095k?HRZGh)vKx2`y*G+9J9%tLU^QkS5m5n63x zs=Ipa@;<R=@3KhranG#T|D#6aIC~<`au;LqmIW?GXG*31=oimsf4+X(ZPBvpGYj_Q zbl<&ZVzxc>_MDFDU9SR+4ofagI>8oNY?$J0*emSC(dl(r{AzP<`>A}X=|}U|pVbPR z_|hkM#)R?{C5GuznR7g6@+}N*wB(&AE*-x8QlRC^+wp53O>wakmU*-6)#1GBZ*=D+ zYb~nT5kH%aVX4ZgwVLf5vAbpOo=v>4D{t=W;;U;8f0b2SW0tSps;sr~64$HL2mv{+ zeaSvPYdCB)U)?#FyYAq7GeIY}{-<W~-^wC4@ZR%@J(o1UCv)eK$YbtoHyD}wPcM2u zEp&5{@0NC}AFAR`i+FY<d{Pz9U$tyS`O@z@W&~FyXaub>;{A5-L+pkbEkO|<b4)(0 zo&Id4mQTiCjX6x&o3_{epY=!cAXl44!=$tiZcJJt*%juCHibW1y0J2}`q^Cx1}|BT zQhS#5-4l~EzntIIEVr+PHGyyTxizcpcy#7eCF^=DFJBnTb8KVFrvD)q_qJ*$7=8He z|3WH+>8H#=z5Dkslv}-$-f-dK<)Yiu(r!M9{w)2;ZoQ)WwnKCF{Af9+9X$PS;CJ<} zM$_JL*7NRURKIL-sqFT{yPPJnj*Px9ZXSF&t1q*}X7kG>EKC81>=PyAo_n!h-+cdW zN{Nq*xQ=yv&Bl|v4R%a^;*+fOZKtjEy^KknoDZt<OHQBIJ74&_dteh2r%dtD|C2LU zuFjvAWUqf;KE`^E%eRW8zH9#7H~IJO;GK>ov6~xWnIE#SgbrK~k=XBsN9WHr5UD%A ze!~{=ijHjQoXJ_UrmXW`y6W;36aDCDMJ7JSN0$mBZ~y&uQ$on&a>~ssp0|T{%sKsi z?&qI#8XPzTc1X-Q%cd@TnvqY&Fs<<>Qvr+YF$Q_T69zL_A6!d#_V<lY#E~|R;+J9e zHs8I@%Lu)bFi(y9nL3rbwtC*rP^C+kv={4y&TIDHd@!qFsWMZA?ES(8&N&a%n{QXM zF#UWdq>#}o^C2Qy?Z7gzCEHZjCl?s+kXyiJ+|;tl`|D++2Mod%hh~&%8t??3KG?L) z@(71w@<i^3UNt){OM22fXKoSs@-;-qC$A%B$-Wg2-=AAOS?R>fj+IL|cy!s7TB@H; z{HQjuqj{11%Ad9~C*-{}Y`*g_!9(Ln-_pl-1f8n)Jt*_gH0ElR4|YC0Ewz8~qLS%{ zxTUf~U)$t#*{%J{@m&ARuLcqB9LJQ6e{X7czwv%7vC=>{#b)ZetaqYG^?JYBcZN9M zpXNJ-ZPt0gDv51(w_J7HbX}`u$Hm08+`1E|yQlg0^~Ozk(ou8R`r!44-F-{Ueb?vz zR)6rNWV_n7BRi+AIkV->A01!U)d#;N&UJ9T%E(`^K`^DI#BxGgbJiKZBSCQz@26eY z-XP7nW!Du8+sO)#cYCgQ=(^E7yu8r(s8wTsTfS`5f2WPVvtwsxha7c$5P0iLlBDS| ztBp(k{+V6##<}Lz=Y>*5F6w6KtJr4hM%_pf&w6@SwtMq6ofopQYwbkMPH#W`At}jj z)~9pX_u7<1cXm#EI8`YlbdGBDf|3^&=cc?)p3?T~qpXvP*z&(OFU_kz-Q<#YW3O<A zsLH(ElhQLEsx5SyI9o)r;AhlftJ8VL=@w6F?wa5FqSLc^r}*x=iMzG_2)=%oq7-d9 z>8<kXzsH``WzX2t9b~_*>DJSfro!Vv>vHw3SA4dAxOdx&qmw+|24)Mmf1b6kqUyw_ zpyGR77K<j_+)?`DLssan%hQWiiY>RVyI-Xlo+;Rxxq7~a?)UYgOWmVqwdQ?Hww_Z} z|9jQ$!rFh8Z{lKVEv4gk%I7b8S79YvUz)!!x7G07Z~nScMY-dL)xEDDag$VaT9uRg zclwSC+aD-J?s)piKErFT^s1x#*KK&B7?#6j`F!=EuQm10FW&vSQ1N+#bKlQ18TOqL zDsygTvD~=QHs#hQaiePjy90hFZPtEeWWQbB;cHwq-&Kxj)oa*8o&Ip9F<AY>mY<E0 zhbp0!m!&22%nc&)^WJdJ{M!~H`+kQD%;+vLa1M%DvOq#1S4~nxm#wsBW+AiVv`lY_ z$f7L=GVA{qOw2hs^|sE5IX<VJRKNdy&x^&3q4D;~-#?!`I`+AdpZT1vK|FKgg7cOF zjEyqQKe=>d_>0QDTHdStE>K<lL$RlO&osTXbIG~?cdkCImUrEFXPIG9ist8tUBUdx zYBCS+owxV<H^W~}Eh5v6LEhx2-4{;Qk7b*7xF;<A_nSlD3zPhtvnO>IoN4Z<%9`7_ z`{Z=athMeF4EA2Jmlb0)Xli2J!{3(N(U&1{<ei9e%be^;_e{0$Qw5J!$BIsWxz4Zq zPQ>k%J9jA7wh08xP~crLHT>$*NylV*@87%h;FNE7QJFO(_u<oO+S3BXj)kuL8O<NE z#eG@c`z5jUJ7(W(-St^iaZ{$(*}Rf1MGl8FnNLM@DW=~Ow8=bpe~HoS3F3vDr&h}T zZK!qm6{*(qfqA=c+|t>59-E!b-ffZi@Y5!r&%P10@flmyH+ERI-?{!V=}G<0e>I}_ z>VCccdv$rhMWMK}Y2o$l<^Q*s|DKkprLfeo{PVx`e<2bYNA3x9cd|YX7Zq^LjJ;5I z!n`bc>HShZkKNwBP7b0UrdaX!=G=O(y>s>C;(1a<k`DL!gNh2S2Jh_g6uR~@Y*lSs zzme363mkE0G^&*r&g17i>g;Ae!CqJK*a5v|v-hl(ij2CdpK`LA(YtH@20u4Vp~h2k z@7HQ7F$q1HyYR$^OA|xXm#&#~=*g?s9gFl8vQ{qM6*>QOKzwL~*1b78qW+B*&etxf za$Tx=Tea(D&(dew8p-FE=IlOw$V>FnGOooIb#C%EmoJTR+sO8Ly=nB_e52?|XXBnt zJUHuQcW6{;_FAXYN+Lmdu4gB&`^NKX*Uyv;Exv_Q!*mn(>ZRGeF|7~${od`_rd;by zyoXC8bF39N>06!Vsx7V8n7k`H^;6M}_Xh2UuFHkG_6cWy3wOG);b+g*pkq6VUVKX2 z+UvB^)b5>$OxGMKwf(PRXB==itE{%lN?4=a?p?ptv4_hy^KIMA_wuaOk#kmyq)XfO zrOB|Iy1pd)@I0>N=N$Jht(;@3o%z{G(|%sa;=X{z{<Fp3zv*n$VLZBVv!v9v(~mAD z*$W<<sg=6L`uA_)XRVrHttXu;EX-ouOH&wUFI;H#@lr-b`Im2xKC!cJf0twP>GQ>v zm+J2I`}%O3>B!E?eEcLl>(10mVpFXA+`bBlTR&bE_`&P$s<tct)vu+@iTo7y;Z$Jh zkK6-mw_kjx`Qg|+HJ=sJPZrCm-7W5NR<d}z*Fht=cj?)t=vbfr)+<v!=9ksR&S?6U zySRJ8s_)Ci{;^li4#u{8+sq94>NGra8<u8BQyZoh&|Mx}`fiyyC8<RU`ffRiC8;i{ z$@wX%Ty}O`&^>w;x6Vf0&Xd_GSbIJEgJI>v4G}tGoD$q`);&~lV3LTlS25&SxISBP z(=qK{;rI8ShxEHmQ>t8c{2eEcM3}Gn>{y#Mr&lH|KXZ_Ey3u6iFyTerma`A&v6?Ab zK1^!bvF2pU8!q4NSFVQmYV<kHRa@1UbY=6D-~&@43v?5UI4>@FaiY#C$$gbsu2-Md z%{`tmJVw2z^)8vj2Z>wyJ?`qxw2p7>Yy8N^si!rY%}Gyet7rlfUy476wc18?70bS> zA?FSjb_GoOAii3$P{-u#f(e^m1{$!f-~6+1JIm$pO^;8RP2a1sA~W;VaRb}N`8I34 z4MoM7H#~9^n%re8_C~hM`RKJ!18+^y_Zmk%Pb{lE>zBkZMYMil&7uDjw8YNcU~XvF zzFEfnVa4Q@*u(aov)=Np^Ee`EqimV{tgF&UY?cX&$FlAu!$pa+INx7Qv0#)4bdGLp zyOO!wt5ouKdU<nmr9|0OnGNP|vr8<~-)u_yxii67vGeee$y4SE#qoL0-PE`^Vw%^s zat4mj!(N&eYqte+sd~?tx8Q|Wh@odJV_o`<drFB?@d^h`KI~Gux^73(u?}mA$=uW0 zDot)pl~B-J*P-3IOnXPT(Yk~j-UIH+_d-8<2vs<)Y_Q+FI`NY3tPnNZNvlPC%_Ay% zqt6zaZ(PgvKh)4U;Eju^tAcBIqtZPF^+f{9V%wzyJ1TeS3ryY{vCx*a*y@JTA61b( zyxSNUvz%%_uVQ)PW8i-|<8sK2X|s6Q*QKAIH+OB^|9^=EtL4|PyEc3CRekx}XTSVj zFCPBiD*Er1eec>|n?HO0@a?PftM{*|t8>2GzxnFwg|~N@JH46wHc_W8yXaA{!JN(K z8x7vMe}6MG`tPH#`l$VJyRR01Z<n^I+_>-4$<Ok4`R(UCyuV#LXcGT2_Edc~rw^QE zGm<{tSf+k;$1WTF_tSzO@O4huQ+ZuhNW}KdV+NtjLX{nC>pM(EPP%_y?6BkC5-Isz z-Jd^q|9hrVp}=v-=-q<{LAE+y7-Tlt$XNcKv^Z7x{D*+BuSfh>eT@FU&(i+=wfFWW zvoAYLnza2-L3`(h{*MeQm6aYAGg7U*t}5Sf){XF*ws%HMZkxY4lj@<k%eDbYUu9k~ zhLjYBEMj84!TD{4#A=O{i7EUVe+w@E-KL|m@Q2FL8C~ml-g9gcc`)%bzeCWpc9oUp z)216KNqfxGNXog%eR9A4u7@TwHvF1lcYN}UBhOE;8>~E?ER?t{VI{{qj}H@XKHtMX zseAR=ubB*u{|)XlvwVzuDWD)C=FYMu_tefQN@tkwSck0N#6S7_+h3PG4HQ*oir6PR zh1PPi8!mim7|1Agprt$gw4JL!Xo<Yq>whK_QXKDHK0iU@cM!j-Y}aXLC6@4wLHyNB z_xxtoJguFe<9ns7L*cIKu6B+~3A*fpk@Ge;bsg65QEZ9SZa<l0_}=kJT62ud{kbgD zPQ@+D`Xn}0z;@dU0j<-Y!;j`kNO)L<?Q1%FYy<z~v%6m}wCsJa@HXn_-e#BX{vv^i z>>}TGR!=rc<9atW`tM))|64S@&#j0_{L{f7F0ZeDzpijYTc$x)kbJ<Avr;|3?x;`s z&(F4>p?-Er-9fHh;U&Lsa9{cSV9CpG;<wjtnk&S=E-r5U?s&Eb55x55?=M(=eL=&! zx6U2$X8ZZlSI_U2kIT(l!<i7U&qyWzn*93R57TZxn6d6}?hE}{^RLan!?G{rV_+le zpF*W5{n^<*j}}~b`y=yz-iLoHS0`op`c7TDV3+VVsr|9nxLDIN8fSBzF|;~s(D`MH z?7Rz1rlKt^=fyM<lD;nB)QdOL=!)DlPe!rq*%Of^w#S!yxA`YDE@xyuYTJ5#YSW{t zYt9KTl<Rd8=h@%;Jga)%#|zo}ZuzgW`8N5K`_Im=PySu^KXnd<7S#m>Hv8_qe7ivR zD7)(PQwu9<yJX5%`?OStWXmi*az4!L;reU;^Y=QnED^jk<x2O)q=2AJeC7;IN&Z^J zl^65AO4`*%#7EDpz4yhJW6jdmg(aRv9f3i4ZGOKEt~5S=^nh_qRK=ri$*E`OrF@UL z>#i4eSy1!+zX#2l?>i4BHGlq;9GoUUq2d|uv?r_+i>@VvX-lW;>3cDVSrr>JwOsI- zd)CZSRw~DIozHQ(YY{eEoP@HExLHdv?VP*QWeU?5)1Fi-t(Cj0%W@`WM@~4a@zg!= z)~w(6WtP6q^;wswe!;IJ`k<d@9_vlcO7$0h8rBcXoUG+{ie{)EQ9ZoxXqdHtQ-o8h z?urd-FKmtJdHP&mByjfY{<~>=<k(tzR-gU){<$xg?{Q~sU#VM;T!NP`ge%JZ4h(uR zz32Ev<uWUQ;P~ZL78TosS7crP9Mj4!x9gVK+&)+9AH4l*%XUiMHgJ<|p5u^c+Qq8g z>!I;XS)*sitC-fz3Ck7;yr_C=_eCf9mDct<#lD&=<~by0^GBU_wh@{x`%UrT$(Y*R zOxYSMj=E<ZFxh=UkbkMclZD-d2cM}$J{M4&bRhBVh3O{0b98MV>~+5#uYWzanDbpx zv90Nm<Dc1B7I)`rY(4O~vCRKY;x(Iq7lru;Wq73?zdez^-1zv)-#gu3F1Kj)n7#4) zg^iNOx1G1?i@hkOHpyzm9RG&G6W5{(4Gm^U)(PjREPtHfr=WCYL)x`lR}`Gz1#&!H z$9i2$NId6^OYn8S%lTK+Iys)DuD^Ak{etKZwd{&TcAJv}CQOXzYmQv{w9za2cA3PZ z6TCw8a@L}5iauwXdXt%+`jqAE3!N40P<y<3>p!~yx5D6w5u9Deoz5LtS0i)El7CiE zd&0ymm&FpBK88CB&x+dV@4aZwL61v*nSLCXE#C(J`pqEO>JeBtQRvf&drnWf6}E5W z*4UwPWnsRX+LL}2)k5Z|D{bw|a^_sIOPU$G-bSKkMO<Z(!HPnT)O!!++z6g!Z6Q)| z<;=lrnp=X8RW?t&s(Eg%rHj1QS?M_r|Af!av25gVHMkYoyi-KqsJO9bS8L@nzC-<c zHk^~udGz|s*T8LdxA&M`xi0D!AInu(8^g7+E?YBYzH9Dlk$a(fdsfF(gmZnoJ0sTj z$nIGkpAY%2b>Xly^mpauT*GTM`|u>0seaSn=PLHRjxARU`|Y%##<e<4a$WxO`)TXG z&72zActSVowOqr!zv<r(9=Us5h4-tIY0I?Y<+Zt|XE^&tIkj)HFtwfUkehwZb(d|- ztxL}Xo_g%97PzpC`6G|+kM!w9!n;kDwMFkyKK_xVs<}VP)&JYh#*fxUbyZ7lsj9x3 zJ!$E-mZEL0c}upPPAK2mTsq$&_i=gfMW)53<xKmztCn0lERk`-@|Yg~q7zS&kKZvp zvNhAo`R%7Daqp+M-#=f|&9~3xr^nLI7y1@zU)q-Iv6n62mE6`HeWAPiI{Yu{-YCnz zc`il$(v&9=E4cR*=G;2v%YJXhftd=-1)Yfvk)M^X9dVb*v6HBoU}|eBp`E(4vbp$X zU5Hu!hPnH%?=)ur`hE6-|E%-)cHG3)eKj@59L6^{gDwLkru!OpKYzA?K;858u;D0Y z6W?36mWD3%jGn!H%PI{E#!h)oMepDD-}fkTX6~Mpd&}G4So!zb`>{3d7nlS~GHYi> zr3+tox8rLmxLDGsa&Vu32OAG}*D}LdH}@6W?{(ArY_L%1%&fEB8~El5PTp4=9X@-- zy^vFT;-*|w3wM>hmKmAh{rdHls7MhW&PCS$_x0C4Td1);?K{iS4{xOe->});GE*;p zQYc=0zO}S1Z>_vorlIhe9dWPRk2@%NZFtgXu|z>bO_p7p+h?wzYRe7rReYCyjy6nZ zjN96`s${40?N-a#8=PY~q;|@c)#m+KYnF9csPELGus-iM%Wvf@IU2Knn&_S)>-*dn z-RpRyl`3S4@84BU(|zQ*Y7^f(?#lS<OF#Zo`*ZB4--O=NJ)cv43pC5DW<T5+^uR=J z{nsSx$KRd52&x^}HRpPCdy(~<S5DS!t_j>n^0rj^?v^-}^`=4l{I_q`X{`UYtory% z*RVRnW`&%+#gfx)7h}V+-g!h{75t-ST*meGnAnSk!cTV2-_}d+IxOM#bCaF!+`UET zr_an<^}c?|hU4d@kLlm!I}`Og-{X+hztc&n|7U2*&p4Uo=AT$~ZXM5_zRRN4^^WV7 zy4+v%CB5f}f!k-Bn0eFop4@)^e*NSH%PJc=C(jT{^I7IO{rSDzTRCsv=T)qnT#_61 z`qmZZExYDQ1sJ@&-l`R{^eN}-W$QESLuZ!zU0L{AM|<l_GhMN?-+cnpRu=XfEn@PH zXA16fW&ho0cyIrw+0&wQZ{4e6F54{l{7~G{${!Q#r}au$RIc|AXk+%;DOP@k_1T4) zd-NJN`Nl<E5q+Y4rsUEywf<%QXMgS8X{8<N@=BvMW&uOciCuBef6Z`up?08sOUEYP zJ2U3^YS>zEIybZ|Trk(lZkDiZyift#-Nxk+e@$xo|1|VfX=L=*zG|$_b$BTBY;y3i z$$3+nqNX3ZtZ4f#@tkc%lH#rIFG1p`_Ib$3y1jXxSCF;o>z)fyw^v!T{osB*Cs`6( zPBO!ilMD?kjUY2(g!^rK!(;nrTZq)2U;jZlqcvN)=j;mo&8K{pW-Sl8ow4;&NsB~* zkcwT9!sn0gv!$IICivW%_)V2j`hNBKy~mGV=g47TnlDzrUQ9kOmd}Ex=059c(*%y9 z`|LUj7mg=PZKyuodZ&!zaafc|=nS#!*$S(9W|w`a4t|^b`H%0K+#a34P9?E#hhG_g zu;J5udTFMa=!%0!&t`orZhR`iw4?ll<&z`Kh5L5YJ19&np3m5nci`aWe@5(brHWr; ze$Hup-@TqY#X-SiMO8?>tO}b!QxDrefyw=fuN-t2t4(qg&bzxz$vaCnBLCu_`W>o= z?<B|@oojHmIWgn<t)Gq@vTIqt^DW)C_4q!?Foo5<j=z2D7ZiO>5zgwg@R=NW{nPP- zENt`s``PcxnA+mCHc41)mECU}5wmSiTHYpPEnQR>&fzK78aOFrl3-EUA@x%W-T$up zmus++=Skqi4Er)0&+W<A;zV3>4`}GkJA2$;bX}Kont}<ZhS_9`4eU&k>=(aqYPc}I zRQTg?!uDaJkbSdU@$nPZ<qwlXx_>UQmJsx)txEj)vvNz}%&Av@zPe;?BT~9c)8&%) zftrcUht>KoKUuof<kpPKu`dm{W`22B!J_11wKh@Uw2orSnxz?wOfJuRY8KmNweC{v z<Y`AOFL{LMwaIL>d%MW!jDeEq^gy-Tm5XM7ce*wu=iAg<(iaaNy!ql{;hiH#*0LUD zi9Pl^M#Q&7<Xg|z$qHLO+UaH;&we~Bh^zOH=C$x}|KnLoGke&5-o5#B?cMQhQ<8fp z3szPfxMf#sJ=tD4#y7Hbibu;^rPoVqO}Rd6oGICv_y1@>-kC%5g5CZ2q=Warv&v?E zuAXIbfxr3a#|b(i24_?&wWq%=yV`VeOWdjNEB)fm?GawFh2w>~>ik9P?jLJ;c3}sb z?_Ig0#=kGOGQM28BHUr^k+;v44}R8E32IPlGVg40ba~-%x9^g<c1iHW<44+Ac0Ycy zbyMkziYaeh&u=s7o7LxhHmt|ad$Qtf747)rF|YUA$Ir80-F$sx*ZIk>B6|D-I^um4 zGj~kmD&8U*`o7g?`J-*u!eqassCZRntPLxb%-^>1<hu_6SDDXmtLZ-T#!ci<Mq0Ve zn$<@0Rd$)qO<fxG>kj)m6?5V6$HL3AH^eYWDypAbdULbi+z@@;AL_G}x%2J^MVEd{ z^oiz^+CR^xCd1%GRjK9gZQ)EAx8sa5sy%Oi+vIq?`r6wU9ECIA^!;DnXL8T&>d!RA z^_Qn_=qNIbU8nZmf8Ex7dhb(=OJ())|MBjRxqr8%{QCdD#h+7?j{f5Q&Hvc&%kRB& z`&7MOtKI3+uxxMN+8TU+-|D@ly62^3xAAG}-FyD(ky_a9H+cd(ed@Mw&%S;)B-6c} zVcM0?JIyEMTs3-fF>g!GyE3<#d*=K-cX!S12(R4qedaq_Dn)+n^E|Ass=)s7LO9dn z>!*WW-+1lz)^X*t%N+HL@rqLyVk?y_4KeF?OH1gPc|_FjYvHBRhAsLFMAzjSm@U5Q zwfU6K)vV<~))!Y@DrwQM;1p^U@ko1i|9g`!Q%j1~Ej!kp_s1>2-%D;^Agc7@@0<BY z-`riRJ@H86``sBEU78YJ{`O$u`7NR=^d%uM$zIP+X?o?10LHSnuWVK+-%fOj`d+%T z`*rNfFR%A>luJ*&9ynL5GTCx><e9oN8WKV-{ESPEOsdqlcScT*)9b-)cb5&)9$&7! zyQ9#*dq%aMP5O(vZ<TI7mspJN*_heOvNUQOY+|pIZ}vBQ>98XrDa(3_K+@f1THXqg zW>epkOffq$QME~CdV(B_?Q{0;8+F%|hP-0PjGLY~OF#G2TBSAX*O`U>l6iK~&DP|h z+neC&50#J3e_nq5;h$&wKV1HL*SDhl@7MdY{g17f&yy-6JiR=uKIng8!;`zZOEnta zu1P(f7?a?(qfue&)%aV6(kaXjY;XO{6=q+>FvEL|c<dXUwON0+Y)Raz@zr}u>aWCn z<GhtS^iFx{|GBYp?yij0iz?R6Z?FzMq!qCJ_BE-?OIKN_B_5x8<9q6UvolwgWmShx zU)CwVE_BMAl_9$?s9B~I9}twhG~@P^h}~z)QxAxomdkN=3<-Uy6@D`RsNb@H-E5{7 z)x60P&+`vjdgX^?|J~QQZEZn=X0zwFoo2CXeE&{9_-5{;!1ck0BSL2fY~=iUg`wlj z^{J;C^B&l);$JfD=(6HPzt(MDli@S}Qq9uo`vngfm6|s6t>|wR(S6h)&G_?}gglpv zcKXv(FK&r%s4lShzV^9`>Beu{RK();t7%Pn*bubt_w^%REv9`5IQbyrsL`F(7A#4J zf2FQ2@qJ&d``1<1u_k2Yr-<HFC;!f4Gr9U@L$=l@_gTkp>IFtIu_ZAI=`47bq9DW^ z&cv<%!i?d|-Zq<0k3WS?I=gNE`LD(PN9H;t^zU+DYuqL`$C6>o)DKx9{U?vTwaAUW zU>)ooY?*rOdd=(=>m|=_dip;^=G={r#b;Aa`PwevSNW*_e7aoPm!PaPzQl8-%69R6 zC-2|7e|iJ&=DtrV%?E$8{+TetckO1k>AxQsh#a?Tm}xO*TXCp+=CWO%V?qmO=K1@5 zHqH{;<9l{X&Q`|Njaz2!`(^NOdEjlgN;Q^u@BTG^E)9CO{QSAx@>LRzp1T$Idng!Q zxu{(JW_x@~%K4uQO$_`F`CNW6k9m`m&HBmBmm8&A8@aomG~cb2G+BP*WJzz<y8s1O zwtKIa+E@LWDjfc0;pUUV<x00}%@<7RWBc-d`>QVx{O=x;PP!TW?!jGoHhJTVC4Ys= zDrOY(*EMn*&woE#_-BPw{q~y=4_WBnIujSh8|d5K6ZD7EC0?!!OQ~UjZIas1fcPuV z_lDoiUu+>ze?C6(W!wYBxcUU?qUDqGuI4VCy6W=Q$_UM9MX@<7riz>smR)`I@B8MB ziVhjGUR8Y;NqY9!+<1TDF%BIDCiBJTFJD}q{fb$hZBDSkT*SOqCQ}+;tHjP^rJD4= z$&Z7c*tEY+O7weox<-Ebv!8zFVtZs}p4OT6?(i4w4>nvg7n}-B<w&lz`eh{h)-6I- zsX@AaAAjwm#tPe6wh9wgl*cnRnS407a8e9&zh?40vu#Y@7w>mFajZch@mJvgD}tSk z9TsgbB!U<?mq_{P*L5u{3Q?Zdo*DM+q0y;HQ_rlexV^*ZRd7sq_#uBIzUvpwbmF%a z8NGaMzQI0r^0xbh4vHUb4VGDbT(VL9^BvjbXK%Kfoz{&$b#8{ii3#aPmV0NWO!D0m ze|k;NsglVv7w^=&qh?-zDm7}x@<m&oy;hQo`KrGuU)(5oUWo7FAhm0L`y#KqrQH6K zwe{kvc9YFle)I`Mp7d1DXs{I77Z4b9Leq4^e&It_L2Z&h4+TB(dwKR)PvLXRiMOs# zeyz-|x7$iqEF|<03!B7dt=(JW&$qX9o2@r=TA^h2Q7UP&*v3x9Z5bbTg*qQ|T#)6l z<J+QBj+RUAOnW@tq&xh#i`1=zJCi~}#JX-xGutoO*{93cDt?7&cZzH)*W=BcyV84% zHTtIfy{jPO!5);vX#P@xDQGJ1RHmHhM_O9S!tYA8!aXmpKB18LdQF&0&DvSp%A9?S zdqUd#69aeMu=JW^wya-KY){{(2SRKARBT(i=9I*1gZrI%Q^ituOqu93HKLU<=-Q;_ zlb31^tmTP6_j%R5Wx|(@?!0{(w{LC5n|mS8i^}CLTVMV-W3`-xE|>GFb}2dSnHJjT zrybFXX-a(0Z=u3rwEy8R$K~qNkA7R@zxwk;JM;g`kH?5_t?=qeI4*o}0!y5(g))Dv zc(Q-5y5hYhiT%oAk=J<o=U?4&kVz?iyKoz0^0A278tJ>2?6qn+t+K!8eC@%megAL$ zjp==U`p<liI-Z6s&5qO0KN*P}ek9MFT5j2Mx1L2&PcOweena8;-ru&W&+pEPb?fhQ z-Y@?3_083{&b@tZAKN!4|KZ!ez7^k}s_psvIQo1`u<86+R=ccsSN{Bc-Mh``V?sm7 zW}{_dp=Eah6}Cm6nyRz7Bs4cE%P0P%(z(mITOZB+DWSMK=+?(QVPZL--umfxD@C2) zW>DH~uw{Z^_nIh4oi*p){XEuH#x;4%TJwqGYjfAkJ990*x^%XWU)#r@IVEKR#_7Jt zrxyK<a<e*ig<UN9;z6IbJkc!2Paf%WtxMdh|DO|bP?Y+a*AZ1%UiN3jQt_ZSU%B#M z+w9rQbNA$ofbdP<@0@sbTczFQh3bx-)s;L&d9%N`-Pi2<-YLIJI{wV(sSlr?b_%~c zF;f1az5Sv_F)Zbcxrqf*D+S-2m<iI&7A6MJW(?uJ722HGstVQ~)^AMej6w+;zc~vX zme`OVr?~BycE9+k`_Dzvqr$?HJEQuWZ6eY(cRzWUxUr(k)~?XxT#BKc#C(gHP0Ld} zZY7&dnX8#H<94y(92uY1o&W<?iOveYc|GM152<@rtTt7gB@h`eDqMVRR*q4XChK2o zXTJ;i2mVVKy{JB4;h-zH@IkcbyqJmHLC%xHo(7)E3gt1}uC?b$i`Fswg<+zBT~Vzo zE3U8FA`)>hSs}ipPeP-D?M;Io)3Ue0E~hzqRxo?Gb_hLt-?h)R`q`B<<u=<L&L^e& zayu4$5t(c2@$it<-xWTVha?i5KSaGg(!rl=!q4QoWlHaoJ6=aU@`RavCr!Sl`X#93 zScI6SU<RwKC6h}5%d4rsTRt98Sard)Q6uD`YU-B5A~xQu56QPW&e$xT7aDbF!veN% z8C}yWKK)W(x<dQa*814!`)Unr3o|a8MK3o=>6v%cC0%e%@a{Lh3U6(nCLB5#Y9yol z<C@aU2_BwWIZk>%n-1{&I=ahskM`Nz17#%#TpuXxI%XSVwC$+d^@&NV4|%sePT-PL zjrBic*mYU4d%=^#t-pLl9MpJZZFd}DT0CL4;4Ri`S|w6JtDQ8>_!(LawPYpx1E({W z-c(WNtuyRY(l{ld*ZC{6Eaidusm|o)tG-b}%tbEV_YQ2k$=YnUcbd{R#qGONjNC2> zee=1}dg_7k;?>>h=k?6&XN2F#l>Gfoee=)X_Ww9#%nlbicTH2BwYoq5{=R)bp3QFW zRgFHm_n2M;yG!gbJGBEZOvN^~S|=X(y4HK|v59Nfg-kbm)PA<0(eAOtngjoL^>|jh zY5dTC{CxN7y_Mh2<jh;#`lBZ2o6JLD|Cc|G{Nnrl<AcbQo169p$M-+Iz&AIqZqL15 z{bzeCQ_bxEeYleoch0=J*!te-`u+1iF4{L!-|T+!o1a<#9ht*kzfJml`A_2ak5zM` zV=b=y&7G(Bx_r0v=Ti%nrX)z7N%w#7()8Hs>n~i)?d9L>-@EJ9!pq_96V`92Gp;h; zabwR9i#NAF$Lp{ESGw_MUb*er>$yDNt3E$J8*g@h|DtaTHn{n$s93$Q-D!(u#vP&6 zjnaN?FZfpHOHb54^UQzubnE8QABXiX@7{HHpLCh|?LVL8r_S4*E%Io&Y1h)Vf@Q09 zJH)?>e_8jj(D7mLwT<sh%5J3AE)(n%61@1UNA+gIiR-B{T;C-4TJ0VO=tz}F1v3=h zN$;7Erd*ozZAOCT+!=eBOZN#I_bIN4S5JGGkgR`x&e3mr3cpj5_0LYw4s&{8S{BB? z@&EA#VSko6Kb|tG?_gW4xiz`*dea)#{bHv!3S18>%oPO_e=VIQ1*1bRdG1Ng(mE%m z!N3ulQ)?%A#_r8}`@Y|&SO5K5X8rC}^xx{OIj@fdw?(bJx-=wd?p-7Q!vfQmo?}|* zQ2zMd%z(|CeT_wbh^zElbiaA%x!`k1M%*$3-Ov?$lb#)Hw>g_Qai!PX^PE!AY`c^m z{Wu^np(f?#>XgrB-SrG#AAYe&*uQU2Rk54T&IXTtM_Fvbrha=o<DIdlWOdE7B`XgJ zB=Mehx!k0ZU9eK8&_+3Hd6C~{3z<C@-#d(*7M)|VHh!+Y&@ZA=DoLth;;FvRA(dq& zA``c;*w5wv8fa>e%5i;~)}hRgXD+s>s5{>G`MiF=AW!_OW(G!1f4y5mA)7b2inZJk z?V0vLqj-Aw>Ac-{^H)0ysSDkaNIkjrT+1F!UE_AmptVouRLfp6Q#c#1SX^kfrR4YL z3HRgp+HH;R@3|lQ-tpl!J`dfy9Xp;aFP!sef~|viZ=hw%&MU@Be4Hwi4>q|kF`m-T z-Dlf+XUF`<sdKt_yb|Z*&iJO>koHD%|Cxk&=XNbzbhTT^WyzA2+uZ#Qv+d^OyVWng z<IV|Y&PD$klw=fJ3#E?PG<|K{=cLi96ddj#)D|qca!u>IDv=NCKXd5D-Dfs&+q?YO z<KQb5HcO99oVn|Gk0jGX!QDa+IkX=NW<U94=HTd}QETBSKcS;k#IN?4Vsdm~`gz9V zE-#)si&jpvi%!X!Ab%&5r}vTE(sz9d<?8z4eiGan*SxpdB{vqnQE`@;_WQ}!qnycV zZya96ILwI+$eDYrh4srHiP9dH={D<o_eJcRe7)PzYI%)*N&LR&pN@XAUBAg1gpzFA zw+dW$`o%S!yJ~-{^4BmmmN|Fcyr@?d?&>`!eeulg*RIQT*N7kHXxFoENsK=ICcEck zt45-OR>Rw#!w!!^G}V*p-KKOtJhENmX6owj+58Lt{4s2J+&y`{$<;!McB@{yU$0JH z*SsEBQS|iB@wEz%uXU$)U9@^*+*nZHZ+Bop;#>!%4||rhEM}RMc&&%qMo0Ce!II6{ z5suqd#7Ag6usD_5|M<yQe(Pf|j$57GX{4WeVgmcY>6yzW8FwnnozpxZvC;1Sp(Fbm z7k_9rkbe}u|E!O*OOwUalg2JFv06uk)Wn(o{GHdL@s3mI(YlX|#jBS0G{=c}FE@04 zG?(X(dQWoN>iFtkJ%^w3-3UIWvQ3y}%f7RB(qEr;6fcvqey#dllDkUp(oJI_Ug@R9 zKNXmAHRtv@-e?e6dD$Xp^3mF3I&as!H_|&Hb@~0S^Si5G*q7}7Ud`&btioR)<&(b< z%goEQjuZOZYc20xec8S>x$zp)de%tpI^7mfkVkP>>aMZ9e9L$(h&UNOLCP@gw957% z<z*R<(}nhb_U=vIB%{z%9JaP`udqV-g2}eF0;_HxpYnD$fBrVpu;*@_nMK8ATiN{b zoEF8m_wZcd|M%wk{PP#Z{?1r`Q1)KWXUF~eb{}4*-`QIo&o3^xkj?&QCp-Vli8s&3 z#jNUn-XSty&2G8Fr8`FTP0<^Uf9?LqT=0J4>`NPZgf#k8lz(q|a_F&+=<|Ojs^#an zgWBZ9-1-=%b9mafnma!KdZuV0_q%V;U;gUp5O{H<*6B#q#~XD!F7&V9>%LrTAG&_O zQNrGX^A8_sRWN6_-~CybL-0mN^R`XDvRU7AJ^21{yTkW6lMh@HdMPT{Y?0Sero5{7 z#2j^&<r{w-s$5X%cFn$j!iy^7uzgJRT9$j_uI~Ewn)P6v=hDds9*chdmsW3=z@?%& zK~$ne=i}spt6LiOAJpF|WK$rSEX6!^sUGV```&-r7iN4(2sLLpvu4X7&Kmjd{d1-} z+~w>!vE3<2WrvS{Q%G{5#f4Z2S>4JBS_N-5PS9zp@Ke#g^`9a4N<jdYcAbR@@>(aK z)V%bP3<XP55@wgeee-Wy2<-hGF7U$DYQ|IZr3)ewx=k3lSi05hL_C-sCuT%9*d;~A zZU0~AuCz2_)tm(LxAV>f$b8ys-hY_WQQGCg*GG@DKK|=s*Ep~+NM`Ld4`CUN){+w& z7G+FbRNZg%Kk=(%p_;)$sYknRp5D><SM_pZ`SmO9ODwM(`&SvM+J0z?@12y;n{Ik` zYsGf6wmLMuC~y#X(7-uGr298}Q_zoZl7eRrGsy0q$|^J|S<|AYxMcf}O$vM_2Yt33 z{<eJif^-dyF3<Cg$y~1uzfYec@aV1e3Edr>wUP|(w~BS-wC4-IuMT-*e$i}g?17hw zS_g#6EI1PmvBkvf=wSTuTf404+9V@Z7UwNb-biK&rth@A_9}A5U%Pu2h1=EqdT*Di z9A*)7^k&RD^lbT;qtY+dcmK$2+dnNL$ngAreoK9Zb{^(G6B%Nsq}KU${r8C9*H{;3 zRyxJx{%lF!CIN2M=cW=z=ZZUJ=xmYVW?Z;z9pmONeEz+m3M&&fIbZ!F*Ly|U<ksAa z&sF>1#9dE2r?R`*a>jp8p}%aNlm6yhyb$4Krr*(Bu`r`ymVw;KjVD(hw<xbVz_#DD z{lLqD2Rz@B53*Fq{+?2G{I_JI2Iq#bME@Vp9>>Qop1u3^i*J`pOFlopF4?NFFyf=* zqIPlBL<WBWt7%UzrZbf8&HE|6+#`6WR@Bp#vRCa?<L>C$-s&u=xF+XYoU>ml_*Uog zt$%yH#s7TYRW0GDdxBH(mfW6OR>{j2w{MvJ>OzR^tlVwel?$freb%|zKt^ZpjoQ02 zE=A1gEmU9sdesYa!{yP>E3dZ6Z7xb)zF+WAQL*7A{=nAK1&;cCoSRqdH&k=)ev=)W ze`j+ocj9+%&8geHyDeV%_HBQ>V1BHtB%kKgYrEgw*><b-{If;pB9_;6t?7-tA9v&9 z+Q{EhmoiTs@zGHf<vJ+jW650H$^7cX-qWX4?3Wyq;$8RZv)2p55{o_e<==E&jFZYX zjM%RJzQf-vSSb7C@2&N7c4s7n>pDMOxA|DXOx7=IO}$py3#zBiw7Khl$*7vWD%Dzf zm9b_ir%mbXzc!O!u8ZrrB|pDva^16>2j7;r@-bv`J~o)LpCfTPUx63PgH4y>8awsf zS~Z?Tv^qE4I$+kt8@T?-s<p-kEh5*}7Un<jzU*-Jt)6De`%7;oTUATldSJX#dHt7q zXWR7)ze~USx?<Yy-sit^RxUjI&pfv5zkcH(AMJ}wB0&d=RUe3JKiyM$_u7)@RaZoB z%h&$D-}rxHrt3!^%hn(K_jmKm#8wVqJ8j0o7}|X!Vifu<>MZkX`5SFnv$kk@FZG(d z%`87Rbm9YnEeyH>TmQaKPo6wO#I$$IyG(zH4e#Imez)6Nc>*Jg-k$v8_c?CL0taUl zb3M~m5a_XBS5ljhY~X*e*I!ZXU`xjdeX&r7iT`WjO>X{O<so<G`Ri@>^rAQKo3xri zIsV$Fm{SQ(6FXM)XBL?6|FZA=UUz=&;~Wp>F4kxg<UF|PL*6?9kE{E=8x(q#KU{gM z<8VSFMKSa>?~ZSEl_%Kx6%wmf%G-*7mPjAHbM%m*3!em!s7#N*r}Uk7mT2V({k)vD zQ#a+NT5jCb*e#FqtmLbA3Csv!ay}FDS|Iv&ucBL|b;3+nfyA>e<yj7|t=7I}yw2aR z5G*!_S!E0RG~e2~JpZ>%cC!Vq-)9kCXVKGsQOtAS#&x-Msh3q|n&@ZGT(W8Nsz4z& z&4<tK)Z}ho!hC6$zjp4rRcF0-pOfAk<fGv?WB=uo!3*vQ{WhPx^wW}*$y<!Jmc3f_ zqSxd4m$cxQi~TES&OE=JV`8t3`~mhE&Vrn*)3tV7X{q(*kWSksoHRGmHEw0Gx$v<a z|7VDuter2q!%mIeC!xo5<*ba?79s|HozV_+mDpx(7Im4!rL?TcCEnri93#G@slkV; zUlw-kH1M-~`m|`X?^3~jq3d<aSIG;$Kl1tJ8;Ki20UCujcx|h?{~VA=U$rk||M%|B zf|kj(l3E`*Jw#Pm+^%@#&)U-2c>8KX@r3Dtg5R&~3aXhJJliom|JiqsRq<Q5lu9M+ zw_7)Hoz0~xlZ?6IKB0#@@AVZ#n^lH=D>{E#xzJ8eNHkjc{x`}0vGZHM{j3T3m$$0= zr}fTjpYCrxvN9+1`o!AnQ_pTXCm;9qPV*W0lAAaC*W2^9wC_4qa^K+WVvRE2#7I%s zpk*IqKe;Ghtb5X+@W0C8h1utW!jClA7fKyflq|SV{H9})L||FBAjc{;smdn5S!RK; z3NHKRTJ}fp+`4djl)>#J#n=19_}Y3mU+-9b=E?7gml%VptS%{4+A*%U_cvVNo>JR| zmOo+sf9gNU`_=uH*?r7tVcy2&F-gB?o431sxUh3=8&6T*%Y7H#yqOuv!tzr;&DK<L zUrJQ;KAAEV(TDPfg`f0b%a!KHqb~5;8M@Gzh+KI!{C3`L3xV42;Q}wZza+GY2QFzk z%9I%^u6sdmR#rDtrh<l0GWP}5sZV@=eYX}-J^pEH=BG>Qr@s_DJ9B2Hv6v&b%Z1%1 zUl$aaJ?GMt`C;e&P<IlG_I-Dwgd58>d@fFPw*7APr@;cW{^MQg^36MX?`lpy_4CrT z)k|Wp-m04$dUDl;RO#)Jp|fUB-v02(@s>lbO)sn(f+7t0RgXS-HEV%L-R}mDXN^wZ z=cYE=9NhT9!shvl(@#FPd|AMmcF1N{zand=#$m>#NyhB+lZ;dj8a{nDMaXH+qh&=i zpWC>&Ztj?t$-Cj^gx1=9SGKP!DOr2krCgF{;rVBW+!;l>f2s*M2J@AEvXy=u8m9JB z>+QNZXEpC`XbDkSa_#y%{cOWesvEyF9em&(bwuz%&4JUl=V}_4eqg)3U-wX8V2&%t z4A#57nyEs?PK@iB6c+P2?fdNWJk$8p7sKRjp8T(pSE|f1>Y5sI?R@#MBQNxJ&Ek4! zt)05D|Hn}du`d1_t9P&c)Ys%&o$Rn*?eW2cEARVxPrh<JzwPw70~a=}oV=HFmfF6S z|64Nqf2kk*$Z*nVoqr00^443gE_JT^e)m?!u9?g}zddKXG&@%`H%jbG$>b|H?^fmT zm#}_H{LpLkdIJN$LBJdf{<44EcTGMn5^rAG7aaSa$@!$7*R{oOZrpUfb8(vT)Elj5 z%=fNeoe*`q^1fKx=g-T^Ru)WBpR#zD_o@(iuZogh=W-^?rXzmNx1QZ(w5VOx_BB>H zFFf^A#FpjC(npLL6HR<<LpH?r$*rI6na-Y&o+7erx$}-UFQ@eV%6~8UDs=1LOM07+ zy=`ahTTmW$`Qd|mB}VV+V_yhGcy<bJm;K#4f0q`Ude!C9dEw7q)rRT4`B?50vF`kF z=RIO>t+u5e-rxGRN&a(uzuR!rtoo8;^5u7{j@kAx`>(Bj_BOgK^5(U`OLkl8pPhQ_ zA72?3dc`|;kFeA}&s~dy?6&NZmzi$$HFHr()vRmhZyBjykC^m&$Gu%I=Uo1Hl6&o$ zya`2n)#v<JTk)!5$Nv~LnYk|Jg^TBh9}#Z!TCB5LX;TWr-Hdr(&o^&={P0?0!oEZy z>$s;kug!Xqv$VMM!qm@|-##k+`ttsGMwwuoOZ@$PozMQqxV^V;oqln4{=>5Vb@i*A zmj~^<e{@Y9r?Jn4%o__d@3k#6kjPbisi1YhEpKYN$$vRM5$T*C7H@0y&72NZpAC-7 zZYwvCH_l8Eb>iaZ{?YuNQy}WTTV1-@wa43b6-pM?@#)9Jp0C&Id1AfmPTLRr%|;H7 zv6TnLL>??}X=;u*bjipVx>1*yQP|l0n4P?}-`8JA{=I0T%fu-S35|DoFNtL|CQNSM z=9qBj{F;kLHg8pT`1QV8<M*z-$H!)!m54mhR#|F!MNswA1gYmj&D?s^C1TGcITcM= z#QCHsSNWC8s_v~;y*E?W9@Pw=KJ&)Z39*OrPaX~F)}DG!Atd~yTTsE)6k!8Lh1puF z9$C|bcS?NZ&~%=}6nyk(OQcZ2k(S6H5phiuVIIxvn^_i5%#uEI+UM%Bw$_-2ohcDd zPfhTMy~4&5k))Z+qsDxbsklJ%sM<#FBTeo;bDWPb30*1Lrr2=m>J|n&!^94umP>7m zyeH*w>|d12p)WdP^33o|=M7O!yfY7^$<6aVy5}~}H6H5&GqVi0Cq(UPT`}Rosv|e1 zO8ciyc2O)m=(lpMto-sb&u+)a76zVaa1S!7H@Fvedk2%YrOA1NIF+r22ag+cXd0BJ zDdZ?`z1jL&VnL&ja8cv52c8<qOwqGe@H%>*E#~^%HF?slXWJx?D%{o+lUSQ8e)L@E zHbtAO+qw--HQwsfn$R^fy;NrM+qq6g`AIxg=GAB3L@e=qbYq)L*bUDN_wXa0DW3&p zR6i{BJjy9BBcyQN)tV&-JAL^yt$5EiN3=XLnBn4AoRxf&Z;!6m&6V5M9zV4;sV}79 zne&Fyq+Sm8*<w<vS4yU36>+HCj%;LjA+lh~tzBIARJSU&@E<jEnQ){n!KB?RWn=2? zqXh!rw%>3pC}5pyTV1xT`tSO9vF*SAeJZNAxV`t6h1{*r^Y!)q7jFBVSZ}Hyp09J@ z@a?<u<@LAz{!rW2zWJ{I>5_u{2MPHSovYW2>6%t>=g*PpFKE2?{oPID?bT1q>Tm47 zxBG7K_ua1#Up@ZvL*ku!EBpTif8YJ7*|qQ2-rw(b8~>TZ5ZLPw@=jps0lUQNen*o4 zzAZe?Dr>DgPAT)<S*7^N$%gYK=fh<$7$qMr-<RZUxRkxbU8vS~E5Du)W0`oQ@AS-R zQrA*XSba2j^yBKzE5e7)GJd!uduPhz^WXlk?)X2)o`)f;;Pm<DhaI$>*D3|KG^aXo z&AXnO;wrGrt3>`y@prb$2F8c#+kd~l|L@(BD(-Va2C_^qK0W^ZJ^%muO>N88NYy%2 zy$pW#ggI%gcjShwBN6lUc+x+FPB${H?(2{2TUxd4iP%wgl~wLrR4W%JrbMj&a)T?m z?d_^*tM>|CNxpT_dy9yC!|%Y{rne0;9h>JJUVN)@k5av&+TNCPw#x(d76wi?+O&1~ zy|tc-2Vc&e-Pd*G_<^~nJoiq_o?diz-k184_&56ey1(KY3^-=~e-^Aif%W5(?fxh4 zHBQc-*Ry45-upE(CRTm6l(@Th&n^G;Vn_Dg-dpqU(Azlu`F!u*)-Rtl{qXLmIp39^ z#p&^1cl&jATWZhizsFZ+?%bzob?Zj_w4X^o691pvs?w}<TKf9pe;<xcI)3^gm)jbh z%hG?REnjC?zxpUonD)`U)++5M7h1M2KUr9?cGXqi4lN(SnKoIPSA68w{HkcPPTbTh z`do;;`K<4Qwn;WOWS4jCeR9cto&EXcD%Y9fFW9<>e(7g=tl_fY_vgez?xKYvr(~w8 zt@>=huetG<<}<|>^$$ubx&jWmv$j9r|5P|pUt!<P5a#N-!kzEz7pq<o`Maeg{%2rR zmB-Bt&eZ7nMJ{GyuY%oJ`?lQ5jGVCZ;-L~PcGt|ynUY6$Z2xGN>eMmK@3h9<nq_{c zB~?6cWm_f&2Q5!!iVT0bWlmP>)4bFPdbg(OJ&m}!oL#&7_o<UwTqau$mCr5x>=3P= z!1;Om3C|e&=PK9MKU*SW&UR}>$6>Xc^%l8Iwv65jr@H-^*1J?Cy}#~z^ac@`C(6IB z^)4-PU3ladZ{#b!i@M&jtr>p}{xHp&)!eh|h-shUx+&MU6v#0fuG&@EqyBb{!$OTO z1=nh~?ACTI+Gs8FB)#RV;ezCu%dAA>K5r=SH14-_pW4D@<#p{Vr^Du_+^d-bZVF#h zcv0HdxaX9L>JzP0uC3E7rldw5w&>j=w9#*Q^PZ!<U)OJG?S0fxV5656CH17pMX(_L z=S8Ilim44-jdu7;CZ6Q~be8#4)3xU0<*A)Vud~nI!#>5bv9@@*QJ?0Fo?lZq+t1|f z|22ivH|14J;+xr)Wm?6VoICt2IlUJ7o!PiR_ibz9)10N}Sh@aP`7v81OLxAo>5U)R zowGi>9ooZLq<z9nsa!dFxn}foP3gU_-QMrIxI6F5x-FcyV@@qsshQB^-u#3mazRvl zR{F|V*XFBE@1EWK+-UJ~O}5)XGch;yv?UGiR_mB9{I9iq4R4-da=*siq-$jp`)sY* zjMv*}pNx66VbOj048>K69&=vpIQMXh`6fZ0#s;w|n^&xUbB$Be(_?L$1yf<f!Gz5k zx<SWmct5W=kstD~Tq^tF<lrc+gNyI(TDm1fxoduYar{KiP=>$H_Z{-fS#kf<z9i=@ zcf)0xUp)F$P+DgvYbSfIy)fbAYk}|yW<AqOPi}Nud&IFN+oJY`i&xyqf0NwjY+D^B zaOLBLi?h~T7C2<|YR)rPtyU8q)z31Vid*d%zlhZ2csuYEX7MJiEVB7B^_s-=#5EkM zav5{ezU+1qQCDg3`Pg!S`Ouw7*%QRR8Ln1eExcAy@3^wO*p>CAb2H9)y3JZP!7Xyy z(lgmBXSH8eUjM{-t8m|k<=>|6JYQw=!L?W-eXg2p_!NuENu}#nztGs^^HbA;>8AGf z*OmdUg6&^KpM*2`d&^#Yb|yQvG}iT)z_Eor*`3+TR?hphX2sou(|Ij6PMz^Z^}&1n zW4EJ^{(V~Yab2yf+Y8Z%3aLj&g5#dGz7i?oSj|&8^M&S#9SaUF5t|zn{eJS#>vII+ zxDG9umg!<?)KeUJXi>Hn$JHk0;#2QECjJs=*?xf2-D-irU#1W1OG~upg!aF9`%c^b z)@|D*J+6kIl}{bpaLu0MR=Dq63zb`Q16~HF?f$4ecfs54<1TXz1eEQ%OSGO}%9>@D zTH(4gcqZ4LgDZn)Zr)yh;zf{OSDkLq@=Y7I|99UN{LehwM2rPXbIH;G+s<z@Qw0bh z+#H%4c0YfPg+Sf?{f92?J#cu}wu5YoE_?1=wsKuiwCU4TUOPD|4<=6hagky6mj8cy zdle_VS+={9DLL)g?DO-}+ZM<OeyRIfzNf1AWvj-Ki2`z6`GF1v8Z2B&ZLF?^ZR=$D zgWs)-6tKFwtkCw+AD>lv{_igROSiB2e{1{hEBoSCMo$-V-@3|g>h5nI0#$q#J38&x z+&j8@w`l7LmW!G}5|1YQ)L0vK-JB(L!*@o(H?E3R2K8Ylp36Pk$NpaR*REfil*DWg z_Ph@ND^biTplb18;tX|V4YkcVH9mJuRa-2?S50?aY1DAeDWWtp`p=8*Wo8A(E%Nnl z&QWSo(3bi6@WF-^)mOJYm|(qIep<_x#{M>~-wT@zrrG><ES-DiszCb0<Cj$w=J5YG zUchF*`G-DtXy1d`CE+V~O+WwOePO-9%!9v=_?ye<R8%Vo%OyE|^^{uOs<$mNoA+6v zONV8}3`v9gQVfl`i;k9*rRDM)?qBB9AhbyJS@WG)N5f9~Y;CWI6B0~3bhN2s;tN?( z=Ckb+mg~)_Uzt+fRP;~z$mE|4oAcY!1Jhl#s=4h<<=!4UZDeibxX<H)wV5Ns=~F>- zXWUOnI&g1yk9E<B1rwyF3qE+gb;Do5vL8mTs;8<+-&~m-;O^YA?z%$lqc6sHwBAb3 zc3*q?_PSehlvb%$)T#Wq#j6l-Nv!nVT!-I03mEU*@#D(kpQ2u^Wz`p%zvf@cb<xV) zSITShwx0AjT$>nq>*S@p_piQe{4vL`TO#x0jnjKFoD$}0P7k`F+r4i8z2L<e9I3`V z$7X$g`si`xr<eEpPadtTnO9T&-E8NdnyG(2Ywq*9SJ(f2ijI^+`llNi^`DbcKUK6S zyG>U&yl8bd*Hk;$A#bu+!S(MKSEuZ%UA8}5Y~zE7B>8WbUKFnQdQa0NNS;x;sq>-4 z0&e!CE!SQ1`ET0w9a=fRV*kTgnf>cu9Gdy&soc8MNW0x^0`Z$q+Q>MXsk!Xgx?L%H z%dO}Ce&r^<54;}j@wnv6g4-=ycJEyEu<uan+{^{Jt1foV+O2omZML0HlF`x7xw;)r zArB51IB#5k(x}Dw*!0g0lKXGnIhPooP`>wBj752*>g0{nAHRLy#&N1a`c(U|9OmCl z#)qC4FAlutRPgx0iL_>AX}04DbEKyq=dY@}GWpt${$|Bv@~(5I?e>Yhd+}zyfeG71 zlfplie>Q#)d2nF<slzk&`2OiMKA0#s``v+f?wa4rqT~()RG;#(_Iq?7Ug6Kp53h=K zTK1lQzcoSbXj0XS^$-6hS!|8pnRX}eYjDed=9y=H#$hWKP_E~Kj;fd&LC^muVpL^s zm~ZiH1A)DtwM$x<yHr#ZpWi5)JoC=2AJbB7SVU$^N+(VD{PF$nh63JWe7%?F9B|tG z``+hQYdNA6n%2#gH-7#|E5PGn=M=_SwhJdDsH$?Q^LTfqaqcQ!`9&_xTq8k7Sjs78 zuT`(llb<>v@78K=+jvuK*H6o{kKab6s~Kg^3!QlG{LIaT8Z1IC<*ZW<brp)NpSzpA zN$5veGY6j<*WPQ^*E_lyxaAJ~=DKUOUna>>_>9ZfDBCD5#YHUbNlM=>J-R%-4;@N9 zwb$#bmS%Rs?w)Uzg-5?_T_Du1<zgos5qR~<&UBxWq>FR)TS~lxE9^w|G!pH@Q@UGI z|L(pQadLCrnY|4=@;{gEoS{E?5qpY(RtdlPtye5RO%8;7y!>I?E0a|fOBXK^e-U@- zomaHB#rkXA$6HoQ@4U49d;Th^%};N5rDsLX%3m}kZP|?1Z>(1@Jz1GMW9mz#%bt%# zo*K35Jvj3B!HFE3S9Kv4KNdaSSu<CCSC9E;i8I~1+^)A@?Xg^XA-U2_=0f3`eX&2+ zo-g>Y+w+D1qaRc70UwUS<+og3uA0Wnlf(6+>q}+&diOirQ#d95B>5gX8<xM;`TgM> z8_rG9(VMt;=`3!&yYEWiqP3QDRGio}47?YX#diNsaF}!9<pln_=l4xsv8Fv>>RR&) zEln$3Z?80cvTv_dP$Hw`HztYgjI(d-nR)v3KFRMb-!&&2>`;sSd;a1MWv1m3LKg)W zic0nsto<PH;zsi~`+}d!w#laZ)Kxmfc%3F!Ut^nO(%18Do!RHbkx{qu-L2kDmT4B0 zi7&Y*uMzLM!G6m>^-#NK@89%pzSwT>$u0Zewlev`M?Nb<rr3OzKDO=Wg#Sjy6tS#Z z*jXuc=Lg@#$S*GpnbOx>mk9_FFZ*LN``y{%7g;(^J0$;~KDuM?QSUQOC$)uQ3UpZ7 z)u&C^m{zpbIF=#Hx+Z(g`?pi~=H2-2s=Dy@Wp;&sjK4jeq+-h|##nB2w={x|ClHZU zwuX5Z&$be|_d7h}S>A_3t5h6>=J|=wHJSVJ-L`v6W!oBhW<E@Gh*AIl&z!NTvI z?{21+bC0e2-^;KRH5|Bp_4(abhu5BGY!_T=cjGOi^Mqio2p5H;3DX;`&$rK5XWmk{ z-gkDDe0NmYYhJf|i!J{u?pB=o?C<Uy>#xdR?6eYn9ltwYfulykD1N5&)Wl`};qhgw z%UZ80GX2PzTztZl;Zj!VckV`?zrWc8z9{qgJwD6DvM@+2BUSas#$VN~I(#giE8@Q% zUYH~v5Xf_pC5(eJMT*Pm-T_gjLwjHCi=2F*x?{Cn|LqXF6K}T#bUap)wk=n)zcVTG zj=+r{9Ge=Xo_aZzSa~fpm&whU(=>BExBFHpQP%o*%H?*~YA0S-GM@LX-7R{-yqcSz zzvadmC$Ez|qHynZPRiW3zL6Tb-9p@!E)u(&Eap7&`I0HU`qreRwM^e0v@F|Z(Rjn2 zJGLq7>Bgz`oS)d(IUY5f`8?I^>PC@EP4;unTwd{IV(3anVR<8;o(u01-lzLog{;yQ ziZt13c`Ms+uKZs`e%JhaRhiv~OwV{K`@Ojzb7j%xzmrcGo{aLp9^%(IW0l@%x9)je zR_4d;1(lZGIJbe>NAa;w;?Y%|xzp-}gwEy7)O%BOyYK$gJ9pK1R$fmF6?z@<THwIp zm=~3)2~%r&oP|@fEjSX7oSfou?9mJ(PWjFjpN<v@r9@%5nM;h9C<MJ!xpFmuq4`A8 z@6{_V7oBKXsSuj#Z!TJD;HtW<$!?akajef(=O=nSH+pA>-jn>m-5bb}S+MS;zrHC? zSgDxXl@`?$f#P+Kn%ve&tL6*Ml(@3JRbzAA#5vumZys5%J)YjVHM1tHB=zFy9|}Up zdBrdJOH`NTzMH_e_mqYDztY#u{_AF54Eg*aop;N3PyKbX72cZ$s=jAd%)0x%`EBXZ zw%<1IL>G3v){Kh#Eqkm#bD>7$_doU<Yizn+pLi-&?LYlrdd1ID>E8?erhopv)vfrC z@k`^g_5#sty9A9iz0AGyuW-ETdVJ!3{`^mGD}6FPon=3L_qk%ikF(cjUwVC~LC?Z_ z&1Pl&2><lW&!%?ld9m|i9iN+h;=SeT<n6_M_TG(4Ykl1~>8xeY)&iX;d|REY%X>q= zUVC$YU)=;r6>+1xo2E1B{Cqam*Y9qb-r46H-cC$1T%fmhTi4gC0)P0s*G8WaRdQ=S z$+h~K=F)3h*H^_>M2Wt;{$$VO`!i<#ozdUDYsGZAf85udA9`cU@Mc(cqga>|fB4zn z@Y8v>tpx7=*5<g=yT!mcXo&}_tGMecrr5i;rS2|iUEnoE*MUEJ+N5Xi-v=y7I^CJQ zJa<=@%DKmLW=@uz1=@^q_|4s-vaK8<K^9zx8FY(PIKvV<QjQdOTr_gtE*JW5`%`xj zgFeow56o-!dhR+h-+1Mo^Rc&=$KKESU3Ga$?b6qJFT0kR&D;F_^vyE2gA)~g&2Z3M zBjKKDy8EwN09(4e;6cYF7yc$hD(W%mR4|-Z{blnz-%Tc?X{JH{v-2K~cFu}RX7tD~ z`8b~`cyL}*@yKgtwuG6Vwq*uCH(ZeWcjqU$b?dj^pFCGCp#SAMu{RqWSk5vxS@!27 zWZMgz|JzXE`#SEIRd4qhw^<B!PT7w%bxw$A*z<4ks@ub|-0(lM!A+KB1qP*Wz1Odo zxnglP{39RB0{?{j^W*&#-rg2-int;0L0d8B>UKNTd7-xo3Ix7Bb>*L*yxFtc;<DY+ zd$D(HbNm9O`t;J71s8IcyT01;Sn2TP{oSkeyW`)s%cL&$J22<VZ>1%Rk29=0DSKzD zbM=A4XE;8jGCm85xc_wV%@j48sfpY5%95EM3X975i2QzduYLQGx$8>S#-85VJY~CY zDa)xgz0=2b+!OzLs?MxS^Xu0Z>!wYfs_dtX3Xc9cHDgB9-E*xRdvn87H|l0?HPVQR z7vNv-U)pUX6ByhrbN0AR%!7b8spe*HRs?>GQlFW-aPGQqKPR7aoGJB>|5EbCP65{o zPGWt!Pi}1dxqQXtP3PI#SF<i<FEdC`<%u!Bct4`sQ>9at<DjI^kL}aG2Oi;gQD|kg z$2L-O#kLNoXh}uGP%ba#RozEYb~8M8U3fajJh9qoM{*}S>!<nKKXsltm2~~)s_5*^ zt8Pub9XX%PUTtal^y9}qMOrL-bD?PEqVUsmw@1Y@IPB$X@cs9D=UJ!Uo<gY+c9FUD zHYcCus~GysyQ3C2OZDZfRUVJu<*eHB&o*@4(#@?rX`9mv-v#rx{MdC>`jTkr#l{zk z_wRdOcRs$tJa*!9w;L9B&ayoI{jhJP^n3GN-d#bvC)O=4&y3EIdw*P9@6qAboq3x+ z6>gk)w7l(3-EM~o?T@)+b>oVs+Ha|N_m9sxdgJsv_m0n(D)61CX#Qu%g9whkGhQtn z%qRKN4!)oMyL`Unj(6p)ng{yZr><PNbFr-BANfni#UrugUC<eY1`7E}SzI<YT>ALd zXqy^v!LMX6ft`d#xI4Tx%C}!;C-2_#>sKTftrXLow1^?O@o&Rq2F?vPzAAPmn!GCB zd*YUG|M8CR_n&V}yEWtMm#V8}-xJd!w7jYoX?zMaeY7t2)sgN}rMXw0$WF~zajVcZ zS=Hw0ozz3lAN7h~P5F4{(n?E{yH<-cKAgL<{zAa6Nf##U)ZUa?5uRld@w_s7#awGC zmC~t;7dmNNRFGA@6~!^hRahXftI&{T;xj*yza3f!G|G=mVy<XxnaL=T%jEDPL00nm zgb&+9csUP;>MCCC)4cv-w$(YG@ChrDeQ#IX*?7=mLecR&!=g!g>Nl%2uFVeiXe+Js zXxW}6BXm!S;h`Xt!6Q!ltud+1K@)vB-*YjfOBhz)oAu!d>wd0XA@^o|*c7$m(4S6? zSqutCPZ(;iX;tI%e4}OkZNjT-E%9@<^YW}@dDXN1W>RTS>&jy+Jffc~PA5*uoqI#b zS17yv;}pxPgpCH(O}$2?t3I%J+{wH+gIPF}Xa2^kQQJ>4+!va|!rhn<9o)9OWoFin zo;=@6l84vb2yRmO$~D<x#lxPRCDT4{i{aR~EyQ~AjlehSJ#S7q^!AY2hIw~y%E#)w z;pfb%;O4YWIBN8PTWx={MnTA}sskszrbTdW+x}wP=2^RfG?pD;P?cd9DxYUlb%1}a zZq<qsy<J}~oYUog))08-aKCoj_Zcx86brT(tZEUF-N0>nb#15h4}X(Tj@h>lu73S2 z$+BgWsVDpF<*U{G*OlEbJ+E4$T54aiyZ+zn`xZrenfWchNAAA<zV7GKqgTV@b9ec# zkH25$Kd)r>asx5GDfhotas7VuvaV<O#)$@J{svd{UTs!$xA&?4uUE$8)~W8Z@%O)H zRlf>%zMWUT`~CjvTW{y-zR%yyzuErx*ZtgaJodWbyYm}UDr<k6@%i=s3*Rk2ZTt22 zdCQ)@y{mZd*1wHs?D_A<?0-K`-6Z4cyodkwu2k1H{%n)xVak6Bn#tI|@7RL#?;nL7 z_?7X^_hHue$Gbn4RsZ{ae*ORAt-qiBN{h?eW_hXmZhU$D?b_dSwzW5yCOU@xVp5)5 zA)m;5ae4di!==?h&DXBaj;w!ER==~Z>~3Q4zb|QZrf<HlKlb{2b^Xuh2Ip-j+}Oae zUf%4?t8Iz%R`8eqIooF&wC{ebMT&g;D&LtB%G1qKKO5w&-gL$8VDGIdnqN8n?kriO z>UPa7_27v+8CJfAMq4$x-^gs-?rWL+<kBjc+rGWl9djBdMo%?f<Jf!cft0d&RI{#I z-W`#&o}Au3m!^!V((cRVRO`+czEx*mQ>*o+wk*TBs7mBk$3B}aH`%h2jlVa^w^XUK zOx-E|Lg9ns33f-mCOH=C^b0JeuZ=5QPu?+pBcplppumCZs>ekpIs5kRtu()zmstG& z)m#7He^38>miXn5lS|)@x$+9D?iv3$;@NS}XZ!p7?}v{VpPzCnqO@RY%qfPhEo+oa zrkp%xyvT29dcn*?AL>&$KHR={K%L7^V$V;NE3LjIj5Fog{1^MNinLBT6ZzaGR9dgW zDl`7zUyejiN2`Ndsx}Je#<nGyNqPwd$9DO0KUL*-F7-P+>0JM<2_HqDPq+Bqc8aZ) z=h2hQ6%XYuGwoZ&^)DuE=BmpRPCd#>p4z>@?bA7r78Yq^C3OzlLnkxknkGyR-qCu_ zZsjeL8w<ATDSt~?akzx>O56T~^HbKcuja42C%$NMK(<(#eEX(FSI(RiUSZ?6qpxzx z%ulR-i&y5%G~OiWC9sAm^5qeUCZhr)|JA)3DKo@o$7DX`Txj`mRh`?FuHfxg1Glc< zCi?yFHjY1*hAlicX+Id(O9TfSeq;$cpqVV}w*I-v*IFjSZFQ@EO;j!3QL1NqbGgiu zr~kkGuB^1)d-MJB6UX1@pYPz(unD-cIEnA_wgpu=-c!DK)}+XFr0TAiXxqsBpt8|E zygI}}V19swO~}6hi;Vd}i#IJSSTN=G6jSXp3B9K{Yy73$-L@S#xyUWmZP!9Ki4EoQ zrPZ@H1=UYkBzIZ${pX8^UUV3_@A>Q|qO-I7ncGtXWAh}nAHvy-pLTf1Z@Jh%!Fz3; zX8ivgv3Xw&xzGPp5sOo;J#*;st2ccnn`K*y1pX+<yr{6d@UdpW<C*#e_6twA?yTD} zpFx{7@XF<P>ibO2AJ7jdPBGwLwW&2nxA4+|$gjZ%Kk_nt-F5%)J@ftV+LwxWnXtW- zP~GgDVibL8hty4v=RQU&SU1d6_+T4tVE0y6!1|C)wQ*9E`1H_9)>}D;7p)GEJSM2? zWcP$y!R#G3A5ZFyu!PS{eY3VmezaKg;BQEc*j$Hq7tHmQIltvU%#_h<h<H`@QqV{L zUA^vC4X)XY?6=Dk;=*JD*K1VIY`^J#!PZ^0*iU%&cOmg_3{ir!EETUmHc5BXGRk)2 zv6s_6xJ>!d&zx<`T-jWo8ZF~e{vatR&JwBn(UvW*M`%G)U)T(r#S>00mE0Kp^`x4t ztgHC?Wh>a$^aN|Jp5$R^Kk?i{nX2c<KFYGW>{x$CPD_SoPCF;Za!dX;C++^sli6Pt zV}2U8pDJQ%uUhe^efs+2Q>Ol&vNLezC%1yxQ_f1-t?E7H!Kxa(*r@DCf1HGTVAzHG zKYm<V#uMkV@}ktCd+ueqLC>V_UC!X`lhE%yC35nr)LO@mlRE=N6=q0pXK~qDbLN-b z^K+k>w$E|v|2g%V{<H9+1)*?MwICFPc09duSa-Qxp5<4E8(;QppYy$^J+$ilZPn!m z*X3L~t-e04PWb3I{ppGK_@|{srp(%-XVR^pI$MNk>+E!0%a=bprMMqWHZYPo!Q98P z_>|^bl}B>rv#y2*ByBdl7;xQ2_szDfn7ZD{e&PpuA1DZYJ7+7nsvxD`>#56~tLdvA zC)ubgCQ7Tj%i5juUKn~t-{IB_fvN{xA2la#D{bH^v=#gwv#IG<k5!YWh?Ls=?w)xi zPdC)=WXPK`sXRW*!R&FoqEaa5+>UCEt2^{oOt^M4d~2%Yt36?nT#qg+s;avaa`{_e zp9y36kIGk}pI82~y=c>X&pUR4XZRt*($gAlX&-i)%)Pwd_^ZhOb3yO^DF3mwTRidb zdtd);<`#<0>}M}O+AMl~;giM>dc4B=;tPJX?3ljzgLa`TmmF7IRQKGD>R91$?<||1 zqvD@7R;^tT-ln>E!zb<seLKXLa?Y?%Iymjb$-g1?k*dD$)+w(|p8Gu0)kiX8Rv>fJ z^iQk>&#fo9s8*;IoDQp)-%%Z9%-b_3`LqFVf!Kx2NRzXtz1}>weC#>Fs>{1Bz~}BA zo5mYcR&0-2{9V~C|0Rpt|A3$Tl79_T4XUhuo%}Py=+F|`)Z^|`CKlAS3(5tHiPYS) zGUB{Z`1nNBghe|pmT29w*UA6KZ?^jl50=KFr3IFbo+$|(y{prF^A{Tkw7vhsCI3+1 z`i+_ya^ZJfUgh4tvnkZ2N6{le$RP9c`|E6zd3Uds+7!CPw(>x8`n<|qV~!Mt#@4U7 znRm}}vWmDlIvg-!RctchaF9rp*pV=^VXE%}X)9xypz8Bl6W8sWu+_MDVr@)*<(x0U z=QrieeDhX)o>kVY>oErJ&TuI0OW!^5^QM|D`}EiDeY)xa$ByL*Q=GbN4|rvNZE{%j zOpdWhWzmDJpLH6a3%{s#xyf3wtuEpOgF;7b?yJNDoQ>THFWe7W`af_g;bYn8=5S)( z^F0@MX58Wz&GvQ`KfOmNcH8^*mq~y0B$<pKIm%4>e05>=wfwe2D;QkwomiMw5#yJ& zs<OV`<NB?9k^gypFOLfbw=3*k_4`r&YNeB|*X(72HutP6n>%xpy{^uNU)}**j};1S zabMtm?7|QE1(#=izCE%0;y%7PG2HupJ8dmD54&xALHFSNjNST=w`U7pU0%8J{p4*X z+XF85E3bEa|5D^%s>tr>fH&)wap+x75;p&{e^0E_VTseL&fJWuV>)%j_4ujR$sKWX zc+HoDS~*B9Owvr=_Vii3y7uR78f-6TWp7<PJ#%}wL-w>Z&+<^ez<}N5o|{&Q7M(GF zbNG7hxoyX^#rAHrtW~R1YT3Lk>_@nho3KLh#M3J$$iFPNN?)$jW448F>Tx&c&^z}$ zc6_sZ(qq0@<lgJJKLMut!Bx{2zT^t|)L4FPNrfHHl?xAbc04H6X@9$|aD$!0+`j=Y zpWN$<yxvmyF}-a+!|`Rs=2+7smcw~0Oo-oz@H8ws|FVHd-TU<$j(C3xIA8Y2TdRdd z%h{Qub8SAet7_qGkIYR^58c@R{KuqqFR$fs#0luHeJeBn^H1yhmS&)92HH>VKKkU1 zO_0Y!mktiyFb|<MEe=MB5dm9HTr54{@gw)6psUWY7OxxW;m=R!N&3wUIT(8VOXPL) zTfWarujQ9s)!n^l-I;SIe;<8P=9H-HSR(GAxhA4#)7vM%q#Z45es^&63AMgk^Hl7p z%^{n<gqTIEPfq9jxPUY54$s;91uQ?02(lbav2bo#d4wle$WK#I<%Kd^#!Rlf&AXzO zGHmBuuC>G8ylUq8wC#~sm%4_QWZr*uM=q(OuI${mpGp~0f<7YUg==;$eOP_Mqu~89 z@%j2<;`#PFJ-N?RtSXXqQ~42?vTLhIv$0s>p_#?oZt#>Td%eAM>dhKy^Ot6>))wum zr<grDqIYm7Zu=5{eb*&l4^IXTn=_%o`RwXd_e&$MrM->~TzmIZxKqT+bY&v}(Fm<f z%LSf~66#ZX`q!>oKBxPE*?qm><KN42156av8Sh!#4h+h5(>%<%^v(tw*+)lYHb=ZI zT2*7U_H|G0rJU-^Gv^zbntWgDy(xHwbo{GO4d%Nqv@WxEK4ns!5TVv~#4Uo6Px?)0 zU~208+q&t`r@V`7@=-l;?fTK|bkMrZp2-IfB;|hDRjO`Zpk^`6MlR>R%+t1pNF^C_ zpGO@53hXU2E(BH{YCO*!`|RzD74BPXCghlU_^TWH?$6fxBOZMH>@D#hOSc+!?bQ4< z-~X8D6Q{CNoqskS-^`mF%q?V>=)G3cy>;w_){@4+YZ}jtC8e(Hp02Ps&S!7k^Ig$m zOV@gyxDm5GGWgD$U(ZiR^<NBqanXtKMSI-D_fe&JHn-Ur-z}`RS+DnrCF@yWbZX^^ z{#pMxv-;!?R^H$E=<@qtUp8{hKPz|gjfuax@7(V*zpdT8B1ZUMWl#4;dDf5>f)U@U z6E=%CeO=U=cav#jJ$KF)_Of#3c?`Ste><O@pC)P6%D?n++i9)(9ZbLfKRac-_uh}c zi)ZUu?s@5>`G5BI=#qlnl`Z~zg?6^MKYG7Mu$_JF0iUiLEj^VzmUmVhST3+{m7PSO z4M)=dm1gU68}F{?z2CTwPw^j<V(77rm^stbz!1wEfT58YG;0zbHaHq_A9U129r&n; zj*`OM<m458>UUROpBlES{qEW5=!GJ8SacgjPLx&G|Lxo8*`P8dr|Q;n0g3bd`TJ&W z^t~V?_$Bev_nM;8*S}62Z+yNp<6n!)!F|saB@NyLn)F|s`#8yMnXy{!bIUmWLmFYh zT66NBU7fz_hTGK2e{1F~n_{slAacnv{?Gj##p2vAo7P4NFaGuR$^4&BDxDsxI+mng z_`dPHMc1{-yV;wPetZ)I9Y|NTQuTTVcfhf&n?!17*31%+W;y8d!u{{%78OC&h^_<K z$DaiH%vz8qc9m&Q+P>o1D@^pVkC#ckeScLqJK5P*r?xY#C)so9#p3fbUaWB~H&(P! z=aHX!{H?fb`o=Ac_3Khi;tC^MyDju~ZL_}k#d)TwT|pPKd4`Y+v(Iv4FOI^zkgXm; zqO%|5g-D8?T;}y@P4ZH4Nk`-9O@iEg=Qew09tnG<c&+O|OMydlUaVZnRGGp_k?PrJ z*0xt}iCw)WO6Es}%U{p_-fyxTVt;QnDC$PHTD82+X8sjoWqYSxuyJeXBuV*fo05AW zk(b?0Z__l4*X)i|-}39~<twUu2g3ia4D-yKcj{EaZtbPwu}R#&OII3&zBm;XQX02) zo>IKIS4ec}tY=j(y(j6OeO>Jov1;9JncRpcPE*Y}t&TpC+V7<6y;gj^U)sEf4M7)G zR~~VhoOs{$)tfiBIo96h$lfZLcB><&bYfUnOFNT?U^d4yE}f2So<Gx40(bSkRt?`i zWt+;vLXQlUZQOqoRjhWYOtZ;gIj}Wf?ZP}cgXPklqQ8q>1kW&aT9)Q&{&;_-`p?52 z*$tY$4PUfbx5&S6|Kzad^@L;5>OXb&sYIII`F727nz;DP1{LP(`&;uRy4J)@<Bxj$ z_@a!-_Qj=dqrcpEtoKw`jg_hTV4j{+?=JO{?->j^llDY@+nb*J++vEPiHm=q^XCRV zvlf-Ctd(zfvLBw(!ELJ_e|kgqQxAc8{WE#aoeNa|`k13gP;z_ZOr6ck43}G)+)G?+ z(6#JJWn5}u6{r6Bt-F&hTI_z#8nf<;#p5HDi>;D2%oRzTq<Ymlsz0pz(1b0UyT97V zY>2f#|EXZ@wTo{28?G;0XutXOu><_M@8)q7Epd`)wAJ6g!D*gZ;=aJh2;nc)smJQ? z^Bdo1z1sIDX13I;z$;%9_tyrzvR!Y<SF>%p;Fi}<dc3#_IxcR0T+e3e^*QKoR0y+9 zj2Tm?RfpDLrgKKgGgd_()(oljVc9KnRi%H`m+Om8HLkvA8T0pU$%H(6Mkcx1d_x<b zW(J0zCoH4Y{=XDkawu4(z3KD)<|ju_3;c3tbFY5WUga={<zO7kmXveeX$$9VFPJ8E zN|l?*;(L6A!ny`u3)!93KTaO`(#BVEdcoXQ*GaQozQn4}D34Av*PgROEbH%;(_G~{ zi@m;7w)jlR&+f{e88~yb=<73)5iu;rL9Z6`9AMgeM*N?h$h`*ls31A9-v#OJ3^NO# z9Sq|yVr^GZ?0LYk=)lXXyjGuIvP8a8WlmvSS72GR{mvT;zt1+&Yp!nmwOg4#*{|n# zenrB+z0Y~iFP~liKkMy+lEZykp)zm&zy9A}`R}St?OdZr8e4DP)ysMFXlv8eXKf1} zAKkdxPSNng!=CPa&!z=UKJs|2v@PFqjq~^PYc5Pz`OQ7a{q4)umHSS<KKNzV6$UG< z*VR9mRrLR2Ej^8~tU)q2CI0q_wPB}&mKccK{VW=Jsk^Uof<TO)Wz^HWQ}<qqw3h5z zxTN`0!I$^yiU;dvTw9hN#xm(n^|^<4W-Dx9<G90OFLv;#si?z&mSQe3Z2@Hs3-&@M zh2seuS-vYOZoc0g?cm8G*!Okc!`GqLQa4+6x>j5_t-bfPcgy<l(tG(!UTs>pX6jAJ zKQS!&jMt<E56E-2G&H#=+-Lc|Uohg;&gcdOUzQ)nYwk331fEb@bzF1@cOC1AMz;wD z#wPs}op=nI484EovG*xTc?NiVX}c+-+;Zr3P?&e`v>z9KUFNaeW~6Aa-0ZYpNk{CT zvVbFMD^6|m=AOB;M*p<$v}fLyhb?OM?zwaB-Lic<)DBJVxtS6gT^9DLDs{fv3fZTw z*UlJlZQe7v_wSP8K#_gZcIM<xdS5Yfdq)5D711lL^t*jmzDi?a-d*Rgoaa{EXN}p# z2Lsv9E%f{=aD3t_|AQ~<UQf@O*FXQ=!~So+ix<mGQ4!wt?n6X*bezxRv+{4*WEx%a z6`KE7vQ&NvT*1!~C|)Y=!!z;N56u?}*Jkrp`z*Co<9yQeuKR0Dc6E<Y=~tEXU8<3x zH!mhnJI}#2|Blt=taByopQkK&ocXCv%s<1cW1fPXy;9uod&_=H_Px?by30KI@2wA~ zexzKHu-g=H@>Re-_9GM2R;=7~VUx|AW6xh5xBb-{vtMTmXKI<%(>oJC3Ei7{<hfY# zn-||!>0bBRwJi2()?0P&t}jaiPG@-qE4Hrgjr(@)r|Yuh6UF~0&S2Z6@bl$@x!T+_ z|EFK*6fcRM(aiYy!u_MuQzuVb^+xT)+U+N5s(1KrXK}lI`TUP_myKua%$QLBLUQ%< zEp^khWbfVIr6z4-qw!$PJA0`O`zCYh>`8BySMS_+Sn{CDgSWFbPV3uZ;3V8(Uv(qn zqjGP}Rqfx}Z)UH&_E9e3#qGdvFAHv*eZSk==(5}LJ1WPs_1jg<wq02g$s*bPMflUi zqrD-UPVPE5tF24%lij^S-W}V&Z{6soaaHli{*=Ebr7@cyCYI*NJCyOxY8WGCHH;0Q zYZM4KPtHc&?vvRrSUZ3HgXB+#6jyh-3JLJs5Szl{!EpFm^W@eIFS3(d?rr@pbfbQL z@SI%7Ykn&0t~4>fITy0oe{#F)wO-ppH(Av~CuP?=t$P%;sJrL&sy9g++n#i+Q4Dpz zInO~`eABcyL5G(;GP&M-WloIZ;gr(QqX(WO@v#04;pj9Jvg+G<L*S88r)esOYIN|S z4?X9uRy?`3M33vD<C}RI*-Un>&I>P3i3%<ZWS(WTD?HP8$I7d-7|!STK9JvBsQ+SL zK(>+Q;@?g0vU7YN#9U3AVfb9&%Cm(NvSvrMIo)_Rty@`fwr8Td*F}{rQ#qE3*hFoy zZJ2Gkgt;UqXp@=ns+D{Oe3udg4k)(1uqbMnppe3x7^AjHZGmUBaDdE35lJVf_oBh6 zoCmK3DI`7=T6XwS#NzaAN1eX!s0<2dESaVL!$ah8yrE&AS@L4_t#^+u&DyBAY2~?R z_rx}QjnO`KP-$tyM&ZTc9zQl5RGjGD^-l5O;sjrX&dUj3n3k>B=qu$FcCDac%G_B( z3W?E~dA8xpmws*6Tzys~sKj#9-PT9OQ}S}3YzmmYbk~}-;x^Ml8;oaMtMFiWlH(uL zT2QsY;tjXy-G^xhmwBAgyME&r)0$N)<+B5NOjMet@Jv&@;?^r$()^EEe1@Z`MA)_) zvs6|r-J*K1exs_R_<`-JjhRzIq9*TH^uxno(jwnT1#YWrEsaI1+SAYT9e@7LsVA`D z{;tR0>;Jc(J~(|F+pB~3V(;#+`}^v{QStYz-eKn@7IU95tvXio`#|fSmUHt~c5S!4 z%i6a8L+gFU{X6#UDn37N=VNY-d8}$T<f;#D`|Vw~LuohrX^U9Z+m}msx9@FPeYyC> zmmg=(e*JQ{=(*mVkF%fa-}(6T)9Ja@#`jLg*GCm3|9D<xQP;b1`s&@$#>+F#%lF;a z+kXAK`Q@VOB89bY^H2Xd{Nd_X{db3+P09My(i^MtD=0p3&qKDkGtBwa|4a`Lzy9LO zqbI4oVV^gtGul0Lyr8znd5vwgMP0f5y{)hJ|10?V{_w}uuV+{8%skv4e%xOEf6<>` zO53=TZ4%c_yfOP@#!9<H;bT7czNPaWJig#S?aeKJ=34)I`RnP{!%BZ2etY+<ZrAV1 zUHhW+^$lBR$N$gZx-;FsW!j>j<zE#i1|ND?#XtLNTBIHKOfRtyN8EG7Sw!SF9DI<y zH|*!#DTgCuitpb}GMqBC=og3G*(ax>)s}Ca8N+$;wq0G${HGghpULd4+-O&jw0@<y z%;w|a;$fSA6kOw-$6WkX^xrn_Ia)PoopTdZ{V#bcAAMxH+-`%&N3oz^2R;}nmR}NZ znc&X%t-dkxX7Rfv2SaL?oU3(Ft?aI-eISy^Jy+X9vHEoC?gMF0IWyzrXFOD28eDqA zecHjAB$?koBBsh8Up2|jGVG}?2q_xhGj&Pr_n0takCJ-RwvV}fGio&d*ey5zZxIvc z_eH<v&yUNoziVnME33`#+`S*iw~;SVR&C<U&sM&#XJlR|ja1j2G_COF<^1_+4hN%8 zHgUR~Hq3op@b3rb8Rp4nM6L_DEZ@{-qw%Kw*@g*6JbwEhIKvSt;H5TWa>UAq6P4@! z@RVF}DxB%L?8wr-(-NmWCO(_-yfE(i@r7RVg;sshT=<H|Vq*Vu+q=mIS*r5`Qol6{ zZ(4ifrg7Mn=%qJU-KJ)SUF38N3SITBai`MF7gyO<S@kom5$2JqvitL5<|#%KFLhq8 zS1Wg?Pm#Q{`nkprzNNxvF5Zqj@;{!jnaOOgv`AFo@0E@VPdMwW*u$A0washUE43WK zC3%8Nwh6r|+4Di+i0=a52fh=0J!UVMJ;8io&Y^3?cdGiL&u`(JXy^Rrl!np?znLPH zT64NLoDcb3^L)=8zv+j!oJ(z3?vonv+UTrM(Go?y4c|kjE53R0KKR?sb4ytKcuU#B z>=K_!o;{&tccwD#U$JGtykn_zH@2KIN=cGk-Z(udRpQu&H<IyhS&qDEyQ*%T(6To& z=vc=VM=$mJM!m&+MxSOJ+OXgnSK(6y&!V;5yodX0CVmU=Q$IdEAe`$^qtFlK2Q6{? zc+54XJPtAKN!GKuKI54MFY{WFW10T@t{ShL8~RJ?%^MLp2d!6rDc_@h|A_N@+}Fd^ zWWVWuuV8CS#pL<NGA7Ju-?%1QR+Mv!pYZer+1pwKZeH1;eqSY`usiN#xaqzV&P|yj zj9pbfUo9}XUMUjyIA)1XvgGp(ew*2zC7!bW<XRzY{m<<z=iCFCGhHR?zx^$_t~jMN z!>@I^rf+c6@e{8*eCoPfQ~keg;xF6RH|K)iDJ3mkPtGsRvI%9MVwZ36G3ro~bq#pz zS;Vn=3ZwNZg`59)Y90nK?>`#8+5OqQljhB7l9w&Cmo8kuA<?|XWQ~(|q|=>ZYlVIx ziwL13dM$4w{M0wK<m%3}`gtwms@EA;_v%Jv;TOt(-OtT`nAvXo-C5*_ej$td=_yg3 z>%ZxBceR_pFWqo?Lx!sW_u*BFOCzR<-b^{!V=?DZ-@C@9h}0byRYl}1Z9CtlUyzN_ zy8U}2PhQ$DL&ceIL+)-+Q&CB6@qSwBS*%;AF^k=0O<3mpmAjs7mHjy9g^<tbd!KC@ z-_0vEV%o9yugk<k9<P(#UbW|QJ;`1_^T71=Cc<l4nZF#XoU)Zo@A0OTklUsHcSYqB z#iZ|s=>^tu-IXmp{-N{WH|a^eS??=ERpz)>Wh^v*l5qX01)uhvtr;@e({jGL&JB`# zwj-JEc-gnO`x`{JEz&5xyf?CLUwq#CZ;zWNT|Df*Ra}iJsdJKe_njL}j&<x#qIpN+ z4k^26aINxqb@kqE?V?Y7hwscie{%iJkJ4dWt|=+jv;4j-W{O{0->jJy@TMa7g5g@> zwT};R#Fx7L`x$-w+nv}g=I{5ahwW$GZ@IB)pOgL!rca%I8x~o4#aJDjSZnn;>amW6 z;#;oBUk8%JF8B7{t5dzinpV=&@`^cO)2)k-+V?)5%%6GK%)e)YmP%ewu)Lr(gU9@@ zU)aMR9jTl3q2TL>%YE&u6T-h_K6i<cpD$eaZ$<H<?N^UJ<$U(h><2UZuIC3&@OnM< zGjKhx__cAXLenw7HG6lSy2aV|yk4VFY)*n))isavjT29E?{|H?KQ+tk3}&Ot)W8(W z?0})6A+*~<xKXt>JUV}gnMmFI_{J;Z6Ri65Z_HS+>PptEsbQ}UzdILg=EP!SyoJZ7 z!87gm>*^lfM$VK=CjJr@-*(pA-zi}o&2BwkZ2x-kaC09kp;jk@^u2{lJxc`q1cFpL zHv7$up04P%N0oQU?+Nc7Yj{p|-|<^Q_4~8e+m~6X^+wi*O7|y(hpzINvOPsbpwW9~ z`SyQ%ekAX$h!D8YEqm$pL?O>t)+g%<tJ~*_{HrZ9NLpAjFY4sp$Hi?s&L_;ZzAqLp zcH>r`;M1y=@^jS>wx~BL*c7ln5oE0AICkS~*E8#95wpunoom!v?uNX$8}okAf)#ha z%O<C_9MckD%hdiXBlE~EE<T?xaM9x_)3<ir>R-OB%W-y}>eO}DqGz9&+1#!na4OK_ z<mttV?=Bw;`afx-9hYk5G)8L^jaZZQc`q(BsD4!p=&|x<b7|OoJJxf~bGGNdEk0_L z{Wr^>ojlPbGV+Fbf8zEvXS^5vH9vjB<^b=H|1%ivqnO<c=H2X>yVPIcVG)n~)(=lp zH_kn*?_k4ozd?TfaeeK{YW3`8B8}7f+tyA0dGkhr&a0g06<78!PE_B2n<Ms6)bbrQ z{MURl=k4C%QQTcDZMON&>Ro-?-?Pt(T=3fJ_wi`2aM$9WS}a10zw0Z){gXT5+b*qn zGcSYP?!4RGHF9i52PFD;Twb!!hK1wM#N4S>7OQs6ESje1c9{QcxjeIA=7&I;6(MtG zT@@B#dQf-mOMTV)d#;@KgOolpU5L18(7#dV(cWE0%hy}>9G~|}_Sn9n<h{3U@^@Zi zveosI3iX|8P%CyN``nqp*LlfNYRC6#&8k>tVzzsYnf6&8*(LjW?OqlM-rgS_s*&ut zI48h7bf>-XWtq9pm)`p|Wh)DhNx$LQt6w!l_yjd3NM*ORJea09<<rC|FE3xcX7*<N zhWBMBcNPf0-lx8?yX>*8KBKBgYs-geDRblEmD-*b?8;D-U6^r<+e$)zg`|E{-Y$v7 zr;jQ)n(Sg)#=(8kKXT%e;~_Ugln(zo9l&t7&3AHq&yg2v7+CA(XD8fU{PE`-nPayz z4|n~wa?fuHJaD+|xDn3;e+idn#?x;bHg(Ouv7>78N}ILk1!gWO62HpG9^a6;P+I8h zpLqu&E<c+hzWl|6l)(0{7B?1WsW{qCe10|K(HrC42me0rs<raTe04Uy%}z;?k;`#I z$BqY26}3NI5?S-2Y4O}UTcUDA+16{fy!*XtnqKOn+CSn;{;%G3r2XZou1#H&;_B>N z*_XTtE^+XhyJ&^?rKwqublzLt^}6agRrVIw_itIhQ@=jX&(~b%ma>d<=>)A8yp?V0 zb6&EYFgv+MeQ{Q;Vv@eC^xS*w*<~J2gc2{6KTq6t_G~AU;Lm@*IYKVKer<OA%k9;Z z87|5l&@gg(6TtM|s%2MO{i#oDEM}TUtY7xLdUe{XZ|u%iKfcJntGinpsvyNtUvT=f zWr@*j%lReyYu-)$KFiqtOjT&sZ9n^MQu5)V&&B?6FD+T_imjkB!!o>LX#l;_fv5%Q zr}J)Gh=A6so^gwsp{VJ#sOg{%+f0!cNe!8My_p@CNkki0?J&B#q~3nI{_#)B9=A%8 zJx$&}o>To^kuyrM$?nX*m^170gd17(Ht9HavriG$*~Igd^{}LCx71zNp5x!U`!y0} zgl9F+jorJlMD%>5-lFqWcRcq>PyM||^2xg3z3WPhzZ@(2c0K7^soTK`3cL6fSj2ji zZ=QYkj&s$+{rw#emI%DK`0kB>zwn$-Ecc?nRDL_(^J58T+R94Peg;K*X2r!bSa>+o zM2ycovQ%wxx$S#-dvi~w)Zg%|6SF&CWZw;4x+c^o^UK;Pr(eI`aJY%%;`+Rsit#LG zh1)z2#mMYjcWlO_6_cWR`}jZ1nD8Q6+1CD;w(`N(ET;tpKAde7Qc{x;>R<R$Uv1z2 z7pv;qKh|C@*L$0tzwO<wrBd}G-1XekmdPIrI&|*)(d0Yx9&Ef{bYo}6G2N1S#Ts+n zYxj1{`?4#x%HUnI``)~5?{Zfsa?avZJF06l>)NV6`?arXPhSzX^}8`&Y{4SF*zIo< zeB@`>J)O2+;80Yl?LyXzJkOQ3=ZJjRl3AaqGxtrAu;scx8Ffs%cUR6zoA^cNXp>8Y z?N-aRMy(Q4mbLw_>^NO~=JNBT_JhS=-<suWe!a14mi6C)_w%nf&vDNRvAvQW_1wgn z^~%iDh37O~9_by*_tn20o9nwSPt*1Wr_!Y66%|*1-F-Xb$Em_|-5VC>PBU}=x<%6M z?FRWuouD~|Qat~5T=_lafsL-waj#j)S}YfsK6}4#ab*0OyZBaBb;zvEe`Q~6y<4$x z)xI|ChvDb1+$bww@4Z)V_OF*Gtad%SEUIvON`#2Lc!2p_sry3j)fs<vW`}8W+~zIy zQ7#p-`l%Wa8lUGVaw;nKsi((@=6^y5%GN2Etaw==G<Dx9|HEJ8wyc~P=kxc^J&jn? zwO2J>+?H-IH=F&}@xN8zy^wzlE%Hm(J4l9JeS4K>QuyM~U0$n<AN^Ef7Ovc=_SSG> z+HIQ`)^9@2U(#h)$jgX#6tQ#;oM2&nX5ReCt1obCRZY}?UK`K!qN#bYk%y+tl;_WX zPFX#D_2#VhR93s~1=slY>atABiM9HEJh$}w_rLvf{=RvjSH^k1a%Y9U#kt=fa~}yz zjJGPUWHl9kqZ@v`;QTp*)5dw1o@gG=JoT{C_(MkV--JBI^X3gpB`3Up7?f*N|7)Mo zlEytU%YWF<6uti*TfVliKss+2x<|{>%nY(~lZbr%H2n0W+2DM=rG>RiWx|BLua_*} ztu-}7XuG-O@@^%C<W&_G63cJ@{N>?c;qch~d_~x1C!3P@w$DAn*;#}d4*Y%cHtEx| zb59!%YbNVOtZC?1Nay(x%p}RyEuo_;E_A)D<NR9rLOHgJ+qf<zr3$A^{q@l~_U)pm z{^v=l$tj&)A`>^riWk3&Y`N9n{eAL&vB~nnI>O2g{GAr<b1D>0sh@UdN&5ND*5Sh3 zq7PSUW-|BhnozY)CjCL;r_?5&j~qg)+Fo69`slvEfG3chyOG7qMnW;=?T$6GwjB86 zE9O!<^=w+{RJCpSs@o2$PEpWLzNnB9ynm;1>?MJM7?t-OenHDUlhRnX&bzK%8nAqp zZR?5mp)cmH3=lcEjqkOB*zFghOFNbRtebMWWt#WV8@XR2TAPB5&TkIerhRqom(S($ z_WJ)6xvJP)ji&@$TD0yTE0<+#$fhWtwRex{90}ym5-5B)WrmS>wy>h!;#fVdlWtLB z%8ai{cjZbNcis~HpK^Nlg+0D5idtJ44@DhO^9y~JD{zr_ZtBumzov+F*8SmCoYWcF z&(R?HWvBkf<QIkE)BpC)kS)Ezb#~e+q0QT$72UhEa7tw4ue}drR`i^gW<Bm4#(Vwm zOa0cPEPjT|x@wl|9!w6pn&+Rf<*g}e=khB-^0SyO`X0=$KD6@)$FGu8QCCy5j+C6c zy@9WE&+d?vk7WlAyf~EU{l4p8lkMTD8dC~(-`OLb7}B|9!nNOLH^_gPr7_!S`ii!t zw-26PUu|mjtk}KioNe8%6LY=&u8W6N{nb49{V>O?=BF2bUYmZq-~8a--nIPm@7=56 zxMzE&dG^mg&$2&!_^vSN>y7#by*2YzFK6Dy(KJQ=hS%fg3$!M^T|arsOiQbk^`4g= z_pI#kwZ6HQE%Lu|Md_^5j}^6EomPxf-{>QG<@M{-tJ#G!ra7IenEj1O^XvENo|TTr z3N`)H_A;I0Hr-ov&6{Pf(cZHY*XBA4xLq_%zL5F2Pn}nM>8DjaGk!m3XuKh#=xcv{ z?cZ(X0`o1k`=nT8{|dxEeD$OMT%_sjlXa4-9@beh$qL8cO1PGE{cqtOOFphc^Z0FV z`PJCyPV`qbT*JRmrzdj4(^rnFlS;IE`)b#m-+yYJX5EPuwy!TPp1t^!b$VII>ITDG zKXz_S+xSiHod0Z(`BUEVtnr-@rtIe3a`Dy<)#4mE8|nY^E4I0@p1pNGL`rRD{)_8p zO5e11{rXh@%5;D5Tl)nj<#wN~?EU0gdnDhNuDAGg*#C0!_o|v`vtRFox6YW-`6^6H z`w#EC$Hg63$^}CsbIfwV+?4oo;cS?9{%r%EeZRvwZXC69xf)$&_{Jbb_rmR4cWx;a z<fxiHyRq`^myhq4PZzfKz07wzQT_BJk2)3mNlpo@0y}v2op0LAE!8Zc<`iHM&D5Eo z!!m)hk*PV7FV9(N(eIn03tAjomQLHe`|=j=#heohD=wSfUUS>*)L*~XIlIF`r<b|L zN}hahT&IF(gP04$d!8ePJ)F!pt#<5nSGb-Y&fqxf$b*~rVwjI<KIwT?%9+<RpYhWI zL6ti?XP1{dGWjGl8Or}sFmTx`EFvW4Yv80&bLRR>oA6w-^Ven<-OE~XJ1kj!uXbMT z+G!JcLKm;{i8QbJoh}~J;NsrHk<8o3d6{jd`In_DHWkf|p17I2huwUuebDdc%s;N) zm3TQRVAGQQ358}^R}Zx-pJHjBwE5pV^Y#J}NpZ0y>s7;&nmSuV5_`=Xr%Vo%+j>~M zRqJ!vlUMgrjZ`?r0*(p!cq|fra^;TTA@@ZO$`0-1c>cNd(4qM={+Mg~w`5lzH%JS9 zqVIlo){UgIR%-w6d3;+q@kg@qlsRUXw)p?Nae`g)W221P5d+br^H*2Cy0j={=jjU} zlecM_?LJhcZhK2nOVR6_Nzv4wcQV%6=vZy_*xa$;!}QzcTOahB#on!H@_NCM@<=gS zs&Y?$)WOajdk)I0JHOpM;YUg|v%B}tKYw@^`mtqPzVg#7xR={4@a3(g8a0*rJj$j% z;Zr0Is?2YnS<9Cu-@ayDl<c|smdShtSyA&3-E@&?Z$D$#yESkv<EoFgt}X4;4oGb= zU9!J>(dOP`9lWznyg7J&LXC^e?yV;0uHF0jZehmVRc~dAV{e<O^nZze<sZK4l7Ru& z<#p{Fa$c3Lci|14o|@}2zdP&cw)X-`OReO;H|<Nx<Y9fZ-1^wMM(MrlI_1}{{`=&X zDa$#9`~G@$7CYtsUoT8OC_6V?$l3Gb!9AY@`fUYvTzTJYUn%z`Uy`v?<jjl|wXRvw zJ<f_Yzx8>QzvV>CF#B=KJ|@R@?>e6?&Y`kSe|UGsSg~WtMFu9w-Fv)qDo8s;j0~aM zzzBE$_eRC`M{gIby}tfI@@J<)i#dv%5{#c1x3fkmbo{+=&7kG?Oub!^J9oc6^!K~1 z^V*o>(>8~!Ioten=araG1r~FPJ=V6Y(6b0E@|@E$BX+BM;gPpHEwru$#P+OZbaQh~ zJD$QTBeU8xWqMQ2g@o9J3m^QyWwS_lU0TW(Bc7VIKcbwv)_IsT$LgN!dD3w~UFWdF z*&z3oAz$WhQVxC1oge7Af$NUf*6^9Kq0%ctB-Wby=}D!m<Wb(PRygs*EF+#=->#Fb zyF4eIne@a&pyw9bq1ikYQXgceKN6XdbSS~=g>B-!f+p3CzAPU%e(=2TXwfw@?}()j zr@yjr$#y<r(UvwbIWO_ziwG$t*OKCB0h^+uQU`@tEX?goPX>4$@LIw=g-KalnknAP zMfiaVBZo<1=9D#@_g8LF`|<q1hZSjz3zc4IhR=3Bc1l!dno`ZmDICmxrq6nl4hEe) zd(w`>&y)Yc(#FLJ9|LM8+<3#aW<}dArl~s?vN4_f7UkBmS=D=k%4!({MwK?Xs*Mu` zEjDW%W31YG#`C7tv7}WKOlK}!>pAC^(M^%i+aDxYe<mp&Ov>`x66kO>Cg)35=80!* zsh2JZC^AId_EJjyu<W5j*;5BI_9w;LTw9jv1#b{_l6!hMM(~tRs3AMgv}C8{5vybj zXCy5(x*Z{M#wccnqn}}f@WD-ALw^TFU3$D!XWNOE%JgW)EgMhoJaTq(`s}yg--#M+ zPx$=r#kTt2zwH^$i1Vns>{F1<yB8O~|6a}Cuj{Rr%hVps`8`MYXH-=+-^K8j4X0-^ zHVa&{OHa%Hz3sfD0mtgwPkU^>o|$Xw-ZyXS=JYG7{l3><uDQrvuE*v2@kV3pKGE*E zcCWtw{P*mhZS}Kl=RYzfZ<oJU)%Ui4`JWFWZ>^_1J1qQ4&dYYIddcR$56kTLM!dVL zz5VaQ-_P@Y7gd(Ozt{ia)Bb$18pA(Za<<)1-179<zjImv)%BbI7Vf;gfA8FByPZGg z<krVNTmA6%U+eE$5|*JK1*MlM{P(Ku{n!>=l2m)*;Q!gPXWLrUmL`ZaUzK=z(8Jxi zuT8G^@E^OTTUEDn;`hkDzx_FWUEaT~H|uuqpF90Fo5r4d|1y6+e_OtOh3yR)wKMzF z=J&Er{>8IyNyf_dbjCjkJN9Qb);-)-e`o(4Yn{vT%PN1KU-##;Huqy!gNB<nixZA` z#RagPG_&C1Wj~_#%2S~H`}X|hzss+izc1Tue)(!1dw{r0$b_0>4g4KR0rRu?7uBD) z=ieR6eKAj}+<5}$*DWb=pH_6fvRPl**UIr~37<)ffbr_}$6oII(bA)I@KRfr&O76| zjF!__8BWhSrg~P!OX_o!h*IjYE6-QP2pApWigM(gJdJ_Zh(j~&W6)*G#A_1AEPI2c zxQ=IP8MmA=IqIm^{8wZ~>)w@0r=IwJbrEssm}zVf{A`tu_SuQ*>jGj#Sxo#AW483X z6kmC9)#8@_;qGhKT8XKooL%nm!uff7&@4vNBUfJPTx_2lQ*mnMqU)1&st-vzu^qX| z>8!hYb(vNBlbzes4IlCBJtwp0o11ds*Pt!eEq_S;uJLsZc@>lUqVD|C%QFRdUOck9 zA5p_QcO%38nmr1&Z~iLA*PnS>7IWd(y~%G@)<|y7{yXKSX}#s<>Fn30{YuENkSa0h zd$ZpC+jZsNuP6Quo!{_<)re>6Kiikwm$X;^@mnIlso&y9(Xj<bv+6%sgou5!SZ){R zT3=V(d;a(B*LMxp316$9r*!^?kBDVU>LMlObGMQoz2r2=X7GO)F~4Vd4&TAYIn`pX zEcjB_>^Y{oJ~<*NHjVRhmvVW`vt4cK4!phT+j$hUoDM`@_%rkBKbaS$Ck|VDu-H7s zVru3E)=L`en>?o&d=_qa#&WdOBJKvOv)7H9pL_nycy;RYtTw4@BFh9E_Lu}a-6)>% z><`O=#e%vH>?_<4%5eN%GlxAY?3t<_L!`K>2UBcm->fOGO?o~SEl3ua&~=w<rTI$k zi3!tF1Yb6;n9umDXoAn38}AOSQ`)V0IL|p`ty9AFzg&yvulxQuA>&=%$Bp|V%bll9 z6hGuAeLS^On}1^DbxrOq;Y$=_q_(8hcv)L7{$p|ZQIXmck=Bd{YvyPdg^A7GyuwfU zoTsZ&{UYwIa~6WJzh!r9b-{AujoVM}(n~*kz;CW?va~~9c~aP$(^IUg#k4dG=k8l* zruMeTZ;I6AQcL4L$>pM3=k2@Jx$?RtOTTmMeB+f>yBXgUx6RX7YJBE~!q>;v>+Tn= z|I8Bg!Qh?#)`W}t*P1NtJ9gHHwEooKIvpr7ZLx;VM@<&_+mTm0Jontv=iyA>b2*&( zdidjo`}E)6dz1fOzwUnX;#uB;clr`0cesC3TU=#%)`DH<!h-P2Oga`e?GsAkiZr)` z$vrcCa9_mB%rmrPk4jX|I*l9qIKqlprfig`&=7hx!9VQA`n+qlJ2)mB+}52k&-B8n zM4wLA1>T2bo_TYHp3~KrH*gQW`j&mh`Q(2k2g{pJtk8VY`Dnws$7}Yi3qGlA5<E-e z%rBNxD;-KZ{+6^Q*Skorxv(bWe5cW*h6#L;(@phlZmt(d)Lm38J8jn`R!93cS^;&g zR~M_zxS}D?a&Pj{`2s&T9w`<4*?z8H=%;4-?gy5Y$@QlsJ6R51dA^2KsL|R`Tcp<S z%1a)JZ^qHnH_PU~RFR!qr1n*_%u0Rr{FjCjQv$E`Oh|H@XCr1EynW%e`3v5#A8?=J zc=`}0yZ?pah3>nbT~pV-B4KalzFIb=mU)6$<rV3|W|@>dp*u<x1TV-h{&fAg(2+0p zuE)1MdwKE0)MJVp!{k?g(M@)lcWl+%b4`1f&gB$3`R?AY8qQ7Ai=MMBXz2@nc~{rt z<(H*GueYDl==v!v$=dqksL?8!{FA3XPFr(Ab*oUp;+z}v`G2I;pPRVh`tA8VH_mJH z-}gCt`fiDh=>5C=-}B#>9rh7vv+|!c&2&j*;i9>(P0p(%>u%ns{_j8I-h0tsu(XQ| z&5+lcKt~-64J?UXOL8^RxA>No$lcG{TegUYrTm=y?w8uq%YM5(4zJ2|dwhed!eHA* zSEm2_!Z$r^lur<fxx9Uo!K8B+FJAq-fn%0JlO6v*N&Y;yY5g@eC9&MS^C!A*c)#m} zbkLhw88Qpm&mOvRk@wZlTS~LobsnYeSW$PsJ4v!@)!%0O*J>9l4ql${y8rR|6Wes( zREROG%v_;<pU<wBy}OZ9pVMf2#=idAti=U(6%{HPP5<{PHLYFP9~XMwa+B<gGt(xk zzNjlOSNO`sF=4Xr&l_uwJF6X>XIxS){$$pSoUjt<4u*)}c<G}yonEdv*2#bONM4Lh z^bxP#*Us}Q;r6E0m34suY2`Xq1~SL5dIi2{dzle5=T-jB8%aUyf3?5bAzHHWiTB+r z7TlY^>~ws3Vh6KrHWQ2FveuIudK2ZAdy2i9l3{$!sp#^1lLc2Ns;pLt-FWI;Nq2^R z_2j!fKGM92{wr=pXD&%l-rD$A>4=q4d9uE3PW8968?OW|Oxv3%)a2VgPyO{J`@K5~ zq?Ty<>)qOA#uF#fn|O=8_`k2aN8+@Uy@^k~#ipd%cvfB!PKirV)c(<Qb=vG@hBB8+ ziY~tU7*cie>7Jwd8-iGx^8M4gts@xLXB|nMHuc)CRi2NxoUJ^1vCEh7*H@+UAKXG- z1Q@V#S*2aQc1B{x@zj3>$89xd{C&B4|J$<nTg}%*yLrZNnLTwZ>1qsrsr);R)%M|J zg&1Skq(aNy&ubL>)@{00EBrF#)3+swYRg#LlLcIK8H>~}?KO62`)nh4`Hx494AZQ) z|09=Xvt2iSJ!knv$rs0M?jEdEmESrw!M#uHh?8p5ADe!CPS54*f9%)$Rr1@5`#{)* znt9!&-(U1DI?}jo^V!cS1!s!BaZNJKsXyP=TXkjr1%(NmAG`gY?o+Mpl23o5$?(zD zA~jKK-NyGu%9BhJ*58<r^`%pM+oRIiS6W#6lP)?&Uik2TO2YB&dSCt@H^05WPOYz8 z&hh1|CJn7yr+hh&&wIicJ*|GDk`J5e)Dro{Kh;XV@v^--@@R|KB+Jw4JfHZ5e~8G= z>nkgWu-Z`<$#b%T>*(iMssT5?crMh4pH;e`>c2zdwa33-9W2i|_(-AM`a!|(zsl0J zyOY1i*VVmh@?Xs#=_c61A}RgrOUzH7FLE6WMqW?EH*a|_p~7Fg`_SFvN}biJ0Uk!7 zn{LWhOj<g5?zNLgqEnPSw8FLLzDs3vRLzMD)ipcZ)Lq+MCL;F0MW^2)<?yDBu6OpU zHgpy%O~0BLbAQH_|H}KiA3N5)zqPRPdBP2|Z@JR*Ht;z8-|Kd8nV!9d@Y`wJD`c*8 zF0lKfby(?~>zt*_wWKZ_U36pPoLziOPgfU*q@7>1N{M@2{?T<_u`|Nz7EjQhzbPkd zYg$m<xz82FLXH~0=Fgts9B$gzUi)iW_pGy`le<?wzh!N1w5>U|V#U&$XPWv<8$Sx1 zvbq-f+iY_D^YGW5A?sd#YJ8Y4R^q)EOVMP6?ZQWMGvbc|pBr|%Xf}8qY1E^cQ5T!j zr_D8)nKr$%Jhx5JY1_<Ohu9`s)W>sr-mtjB8|QhTR%UMXJ6Dc13{3p@zPFYa`wLGv zVA7=#q2t(-Ampmx$Jt{LA@X3l|D>Cz9|;BsIkY4{y}ozv=~TPflPx~ZPrYk&^V%Jo zd!cLY7AY1-hB;MN*^Aw~cleYb;~jMmp&1hxHmv>rnzhlXwwi_Gk_qGcxlhGd6k8J= zuGTTn+pEqWd4Xe6K>pW9eFDrq2{OwrzLZqrnP|-tdTqj)XA+7}?oY1?*4UE5^R{A^ z-tmcQEYGf_Sa$Ml?7d&o^CBbtO<U(80c)=BN6pTE)6K6urnPa)x8<2aJf0?7^eYa3 z+rItW!uIN7e?Q~1hQ5lOoku0*lxJv_W}Xde{naZFx%DfL^8c2O|AGtVH!(8yJxB}h z@;#bn@#TNYC4<_od$qeum`qyM#c~Ac$)-ilEDaBzWSl8ibgbes5AUoj&HJV6?z{|k zULkt!f`0j?RqJiF=7zmK>?UJ$xWVmnnoI#h&{GGin_4^Fjwh|2bV1Pdh=As6K}VUA zgdC>-(IP5M6SFopR+NWos;qC{^VKOZQS;M%uVeeqiO3p=Ml8GaWV65xop0B73e<cS z)r>gc^m@zPeO70#UgEmxlC@4Zvw~4${cFyot4B|VJG*%YPSKej)~Xfv^Z|GFj&1kn z?X%?HyzX=Flh&)7uPCmwNhnz<bamM(b&-QN%4fuR-)`{M75%==zE9FLyi0u_OXc;n z%F9!<7v7lJP;>oOrDE#2Yv;<X=ALBD*&VgL^5~{n?>FxfT_m!algTJmZpH5B!DnsK z%Cx?1y%F3!m-}kt+p?UxqXNOV`e&_ao^o>HOpyeM1qC@8k?XsSHGLC2&bwVY@3{WW z`bqx++$DA<aca+4my-3VcHP~5I(#>O)iy1eve9vs&Dw3VmL;X$`~EgEd&=46_cnAM z)AL>>!a1`jwCMXTk66Z%hoQZP7}^pSgnga7afSSj2VVsrt^T*aZin}rW7R(*GOum% zIH&NB)x*6V%N44oMn(phLy2bQ#OJ8BNXNi6i`FVS_RTe$d2(%UerB7Z!tI{ioMs90 z|NEF!qzz8899MVH+5LWRt#-=+A%zbw{>-p0=Qm+s<gr|yu#bW1U_-Hj6O$#|XOTTS zM1=0o78KmkULx(jQfIRB?>}q0v;yD$mEZZnpeR-GvrE<b&*}#xTK6s36)?H2<?E`? z+3#dz)`$xpSf1s`z<kJIQ)yhBpvTwU>J19K%mq10+Z%pbNv@updtmeD+m3CFmma*j z{VVBbhoGH|^A%MV&LcNwC$>z8eww=NOzNu62?x#=UA;Hw=Dqu`k1APJ-6$_VYUTAU z^zhN99n}i4yn-_VnKXrScUtY5s1c^+7v?MbcS+gXtIOQ1wz56h{o1U&|3<^qbq54Q zwl%4`@GQLa&2_Uy<2${wl{XtWd-$fVN$IW=eg4u-EZljS@&xn9m5ZkKT;~53uz!9- zSiN$0*sZMmJ5_!kMb9|O8_#a5RGwb=i1WK`)&==xkM5tSn7L>EnNPlY%ztYSKTW=# z{?dHwxt@oQH{DT<T=RxO$L3bmzL{;IVY7Uf8D8I7^JB}sIm?oh{C|C}$~!D!Sjio? z=)CuG$(%be>^IkLOWYB*deO5xElF%nvR)O!U5cDDc>i?^nEtGiR(G-5HT#0cw4CqK zTW{5?UE>L6k(BeewrZ;8;^VXBxSG~fMJ-!&&BQO?V8KBXVF|bRZw%(YfBDs`hi*F^ zePU@>XlRsG>zlxxa}C*I4rj)EH}YRTYwtg`)6>~<?|&6{S#M(Ds620(;*%}!UnS33 z`C`e93!4>1ntEn_bFsFPvn$u*Q*{24bgMR8{N1<Ln-<#6Jm>5G<zMWVtUlSsnuY!j z!F&$iUK~>toKxCob*6oebhq897_sNF-`C1nd{+OtbM?mm)$!N<6{gy`{E(lZFp&pK zO=4(ljFj&24gOi0!xvN=8(Bc-)Cmv%osGJ^PIfzQt$n;<|J&0!6O~FCn;3Q;$ZZtk zm}RrYl*#$Jn#ZHbH;%jh`W`#yG3T2rzE2YJ7o2#Sk(Rx}RK#`N(uuoNX5YS|dRODA zZ|CJ_$#<N5W*gk@-Q#(nw<P94{*92rxp&3p-2I%<aaZ8a@$wyx(O=4xb3ay``aI3z zP|spr*LzCyPK%tKmuDF<{egK=;Dw?LR>ka-Zi0swu$EZ5+$c*-7Rvwr=va+IS!Ocl z!Kli|3Tgd!j&;5XU({Q?Exz$y@RszG`S(^ws@>ePsn@$pyu8IwBggLH--}Ec%d>Qg z+wFA@%Rk}^-|2hhj-$`)BMH+U8l6m<c5`-gf3?B+EdPovN7z3L_ONY=x8*r<n5$-4 z|Gf{H+~4fCd=j&fWHK~Q|1ElsQ*nmv#-9S!VtS3?XXl*|(@gJC%=%pLM{3)Osy|ZO zCH6iPKI2zr#yM&Gmktp<PnkF2M}0aOm5x5KRcdYgVj-^;eag|0ZO-JEA9l3q{yzM; zqfh6iLH409#~xqb^Hk-V_L<4WIUAT3o;;VserChxlRe35hF^2eE5EzY^G?rdcc*mO z<h7X^GvBOi2)wXmof-SY9ELptQAukb?{(g^%vB{)TV9bxe$mVV;md6kKFZ~b%r#wn z_sEQrGs>=;)Ou#TFL?jKeM@`9TQ#;rRu*|x*|Ulb>ocA{UiMdShv3n96H9nlK73er zcT3}!4j&!c9_F6F+yw<Jp(frJW!Gm;Q+meYyI^@r;F+8cM$eRz(gdcT`y;X0)b+jH zj|cBQ9o@fQ{`S+w&(FV?f2TKp|0@3DU+3?y`*-&4)5pKXYxh*Vn!s^q`gHrae<eSk zXv&J0Pv777ZG)|9pS1z&wYh@7I@a91=KWz)`+^tWE`B@6e*5X?x1ZX7>%ZH6dim}5 zadvwuuFBQDxIZ=h{I80e^K7&4*ZzOIIbC1=)Zx|B&wI_>x@yXkV;?paUA~jmck$>U zOUsq}@7w+P!1q6n-{xYS%N&-5<GXjr*8TInp&i7nV7|OFi6e7~&Ey>`*Os$H)(QV! zemgj&fx)Hzt{!N7bAs6S76JdhZ#|k-|6bkB-~VU++{M;b$31pCOGUow>Di!u=3G$v z*-h1JK5spz_b$v}niY4Ph-do7&E?h8Tu<BmjNQm`%_@1<#EIh8)_+{>B3_+oEZ14T z^_<5P>$O#fuZe#?pY-_T-_PyJLGu;*6%H;retcfSrvlOV_?HiVeC8_D3u}{Kzh+DK zi9*)J)6d7<*?yiq>_pkmH<#6KKkfeb`0%%<x4YkM{&c>u{3lCt|8stQ-E_J0w{KNd z{(t2vtuJr<sqnr2;`&&-eg6xsr!7v~!+OeJ=vMGCr{8P#Gzhu~{werkANIw&r#_^% zxm4uubzWQPhdD<!Pdw*VcUPg@>_yIpn-;p4GiUmpE{R%p*=X*xms`#(PqowioH^6~ zbWPMZd((4@e=J+<+dn)P_$T9ZPVotp@H<@;HSO}IIn$nQ(OI5qtNS`L(*JZ-)V0f- z=1u#$Wer5ga?Z5Fi=XPRpR!u>y_~jE)jj2VlCHVo1(!AIp10=wJ-qs3mO|`(`}yHI z3YKr&Cin*|kaahUV@*|k!X9F?@KSS^^Goi~&8v;Saj69vPh+_(%J_Rjx^2aSydz$z z{SjIdKhL}V@fVv}6Q`z$tJk;Ml4pH~-qy&>Ti5x0PU#i#{5kr|Y$aze+@L-!p5f2q z?dR)R9=Komze{ORit_XM0*3#%jvQOBTy?tj?9LajI5rzLC#vgOR(`z{v~*VV9;F0^ z6k+ZN1NLUI3)1;Pr{7;(|H${Er^Mp06$}D3uLL}`4rjjCEjVv}V0M5@uSav=OorAq zEbn%3NnE*pe%gZ@4}zpy*<b9L9GEomqDLNsg~|srfg-;L`!2*AzPnJex*>B{q;-)) zsi4fJ>njg)a&WcYdi=$lq37!RM~bTs&RTHsqd4<ACb@v9+JK_MptrJ_+@aUiFTM)u z4L=*Dp3t(+FquQ5g(;-%(!0=bM)sGHRVAzoZEQ^z=hsbnU@g^}yfg0>*8^=vCS~X6 z3w@M4D^4iIWLKy^FkiTA{X9i4Tgd>GTbFA59Ai0M8~0fLF<#dp_F~gQ>x)TC6_x)g z-74Q%K20XQJFg;M@v*k}^uWZdV&m;)XBpVI`IZ@RKGk;Kp}PI{wx*Q<T&FdYwm7jS z=`QWcNYXx-$KuA<HrsoFG(+1KW4?1I_AXjxqkCL;IR{Jb(}%L>9aTdlg;w_5T0Y;9 zBQ{vFeTVvcbKlDF+f1IE^ZXLtO?&*Q%EM#!B<|h!(hi<_ZR=k!VVZErC!Xs)4>{DF zXS;P+O-W~dlf!SIS#rCmYldFp-Jo+jU8X!?bChg5)3{VX`)C#OfeT$8AGalU9%bWq z4>)<|bm-z`GrjpNMb6E!+WsbBYIMP5<E}5JlM8O-eh$0(mdDoV-uq>iAroJJGAb`Q zsJwM&3&XrV>7`K{uBa4Bt-QX-{DZ-z8J>!#nwIeJJAY4}G@ViX`tId7Cp(uEXrDYD znfyvkGkE&z$+4*`*l+W(+}s*#XA$)>{9)ba4_CVbf0fQ$C%RFXk9l5hr{1H=w|0Ft z8Bf+N+#0r}(o^;0n;j}5b4!|kstLGh#3esFo@d0N5_V&g1oN7(tl2t?r&;YR{iwWE z!Prv2r1roh#*ldLTR(Qpd{$}6`Xi*a+#_@&x2x0&-UIzE(ncOBdDoeHSVfZW97y@b zqnP-6>I%*UE37wN*Pk$}?El^GPah_jMuqGuSr_Ep9w+rERwwv|7i;OhMdiv7JqN2@ zPV;>DcJ-O~g?--N13DFA_7y&gV$bAQ`t?oh1g%$>zFIahl)ES<6flbzcy5^-e=f{$ z+BBvv9mSJfP5sATMZFAS>0W=5_XF3J=2}+H9p65fhqz8l6?(QL#NcR%LdR-$d4Ej- zqx%xKw3l4rWvIS&bl<Xu(;X~(7~XnL_mtquaa;Om74Jubrsn;rEI;OKUVZT{gMsRY z!v2<N6HiRgcMx5qH+cik5f^8#Q<s%<7T!^OYP+UUKIFVP!<&-r{2SDC6gPih+V#iu z#Rr4)ZKCeUT3l~?G~}F}#MJDy?;bd8_qp#4_W_OECfDaTlB#YVo;t}#H}}i}+ai_l z+28tD-UJ%`;$?7VoV-|>ef52t3@fLqoktcXseIg5Iz^W6p6?Z|vn@Y7JW8&|6fe8* zX7;X^oWFHmHpUn5&gz>Gx9q8|LXzoumQMmgj$-WV*1hl%E%|=R^N|J1f`0-IEPo$7 z%;-PyV9TCoC)}4_+q(JKorOBgTAp)k)EfJqRWS2cZ!qp_|1dE@pFwQO^hkcioapby zAxDd(xstefXKXMCS=pEU?)|~dWoAr1<=gpRzL9B2-@_2mAFX$0YOE%!o^E96k0#D8 zfscW6&l?u(WK8&U{FvtCmz)pWi=vNPAC$D>@L0$>r*qXyx#uS4i#X@sXV8~fU3P_` z>(V**iVu%`PWv#;a)0&4^h=C;Zz$`UBj&%o7?TdZ`_*81^zJ?<smTQbIXz6gO#69u z6tPb)I2fp=kazLhn!xfETW@)+pWkYE>fP5HeIeEfQ;sNAS#tk&G&FITJ5%yfxJ9(1 z-??*rSBjYTG?s-Kl&8eIax4yrbkTo5z0-mFVulC5>hcR|XLz&o1HNsZQpJ2=(znMU z{2m7DOd=ihk2`PV7cq(Xm=dkhG{K?kbza}C>^%p+$t~Wsb3**{1QwHb-8!G=vCK2u z!S?c%Z#K_$qoq<=MRVQvGM1-rTdY=gK;KDOQNc!e!SqUh8D9UVL2A85MJ$TvY@;SQ z8?}Y(VoaF+ZORJ~_id_;T)Sli_f}ltG0%SIaQm5#NLJgU3s-)HmVeiIUS*|H>*JC7 z=;QToDojjOGrxDZe2genbiQ-lGM4eJAb0AApLL;I&uH+KT`@Yi(M@OJtp3aCH={lD zpKm#+z<=T}pQicF$OFxyPnqv+`~CITp5qb)B@b*5I%Y3XmQ-FcePy*vtK!_gh7H!@ zPF$(W)HqTXX6MbDb4KWO()QrV%bqFSH1papA&!qTrIR6&f6Y<ld6J$xnm=^BH+>m; z{m#q8jeqz3+41bn?`2Us`ubKEIM%M+${4pSj{SvHpsq~JjELfY`}>Zt{+Dxqbnnfd z%M&e962E89<^TG>;!6epicarkZ!f<)@87d_?!KzeEmxm%X06|GT|K|<b)|Nl&EhZD zDz(*q`aWNKuOhdumM!b#-~7^lTZKE{zsWJu{(bb^im-bxqtdPI64*PgTdmIJY(07| zg1t#<%N0qV`t8Oavgfu6cJH|{(_rS5YgUW<-W=3Dw1IcyoG@MMZTvaeb8Sy8nky3h zI!AuSp(KUMbZd+5$%h0!-_wt>vj~jXlJhhu+*#yI8GqqbBj?(6Z5e4-T>jTjS}u3q z^Pi6Y((k8&|5R-H^!EC>_mh`@`u${Oc}bX6pU0moKkfZ?J<7t;hcYrUL+V38Cko7r zh+l@Zb($~e2zk)yNwN<UT!oxYSe9K%ndQA)`2HoHX4RvKSqIoI9{Imdn`NHGW6$2n zb5vT&zV6w*n!hQmW5MhPx0QD6=u@3kq36;g)~}%&!PR)l@^I6lR=4koK8xCq>UK#U zZ&{Xby+7`$S$~?&)Q59(tx|U%`*D7CRO!-{IeFc?il!a>?z(|jLqf>qJGV!t>SK?o z2mdlVO8vX5)bx0#%lW@&gg&Yq<LqC!->v-M`Uaj0ESry%#u|Hh^m_=1Oy0{jqen8$ zWLBV)$Boe3jjMXtQq&GF+O%);)zo>Jmsh=g`t(?cRkZlpvpzdF?v6XzQBZg`j=gt5 z<e7pq!TV=y)>$=`zy0%r>U+NTLrdAczsd0**%QcAXL<1Di*k{Je&Q3|r?k~8&uXdM zI8Q;bUxLy4+U>8}H8ZU2=I&atIW;eIN}K;osp&SIzmNO(zdAGjn`OY{9Zwa_=SLXz z-u!l7ctz-SlVwt;Sl-wx-#N+h#%cc?@7<YMcQr5nSik6!T9@aKBC~B4veC5+(N{yc zmtR?)xLkOH^x|$!(^yv#ndzq|ZmavU_A|TloR)2QQTE%4e_!KK%C*g5+kAeiQ7(7M z^LMP4r>2}cdero32A`Rag|yzonx&8bewaPshQF1~9K*(&hv!^R{CR)cOjQSlbu}3+ z<qvus{)C^L%U>j$w(g<DCEqfY#p_N^dpF_jEzU~Y2KMrOle6zKeBC*fWBS+W%QS+Y zrp?`2uzUaduLiNlMeLoq6}8tyK07t_?R@6?<8r*7T={L9{%s#?l@r>z?zt;GwD7dp z649}+E6*o&)}6lVcP<@#bL_ZJz22KJy;TcW-c$O=+*|1Hjx7xvV;lc6H6nV6?c8bJ zpfr5^eGS*yFG_rYEfrSV%RbFWyXBlU|5ciV&dC{_f)Xxr_xDXwoi$^J@ihGm!41Fu zhwbh*&|qXMzqh@$yiz(%!FjU^=fNc2pq@=Cj4yi@s4#G|O*3#&`KIqN>!9rF?l~Xl zy*u+ari^*&v42Oe*EJ}<-?89MeaxL^4X(gBZCQ$s)h=wlclOZj%Enno6n<=vnzpdV zrQzDWPlC+L=G|rPITXnj_bvaLLf6#I9@e*;c7A`5=-n{YBKK9|6VLt+DvXEZ8wDJ_ zF1R)rwl%+49aON)!Gmq({6oGMXU;Bvw0gC@M0;iQGvDXzhADe)f9`S8%RhPCBB?-d zmFl7^IycLFS029n(mU|_R1M!7v;3@$p55vxI^27ZD^g;$kl6!n<DgB3Zg&mxQe=)K z3bClF9nz3J+Vkf~@BC|P&+MG=Dv<5|CtYzq#tZV&CyzOIJe<8Vyv}Q<rL<B>bAYtK zfqye~PcCk*N?Ni`>!$ST$F}Ao=j}QdMtw{9dvoEx6Skb?r`uo8kN<pIp8w~c-|wZx z1>T+#SYw@cIVbvSS$0|ad#9Qyi-bNIA3Pu;eR^e8*{-~sCz7&V>MYkxYc#YrJP{|> z^zxFGxU!|};@U}lJh_gwO%EsUE08X{#p4vmbyu{l%JeNud;E<nlY4#LcGs@j8gTEs zo~Fe@zq>1DMn9E5T=za_-BtUQ^UgR{9gX{3D{bXiowRjz{=ds}GK05A>#cUH$;y6y z=!{?cLOp|I?s*#5?9QE?$uWPSY5vXxy_tu7P2XSLx8lXB`+2HAvwT)?wtlUA(;&F~ zRn5bqJrewGoJyHOwH6*OhF(ImWy@netebGhY{As9)cUOJz3YP>eqDPdv1xKuAlHAU z^FQLZU`yR5SW0L^17k}_@+M*wEBt)_Vl$C_&)09b!tK#}+>Gt;idPF~o%5=GotL+H zaYw`C1wtMNZr=R){&&w?6@ghP=~wQ?2^rMw-}im*_Z(0$%|F>bZSwBp3T}pei!>ZI zs|v9k4{UKcRN!(^$K5~fz@O(g-9-%gI7Jn%ueDpE^>w+=k$dS^-xzPrUs74SV)I|O zFs)G6*vykB=Wjll=j1p+p~^tuxJ8;w>g<!3jUfk$@lBH0TVieA(ay+M2|mjFXSUOt z%PgA%>|fc7H%V|RE}9{e)Npo2qTgRl)s~9it8~Mro;jE*R-GEVw#|Qc&E#{%H`8|i zt`1$jWls9++?#8+#D<)kyW72tOTqDSLz0(r@{UiM5w~?xk}s^B{;Ym>nw|2!`@h^* zUDGowRlB{dm^-ff)Sve~d*g02&)9mE#rWK>hep!x!si#R*DG54;@!leDGe&!TT)IG zN*GMPs^7wr7Azm+ld%16aaYg3%Li6eZp+s@Xw;h1l9+Q)&~5TGwwR0;qS2wzEpczU zCUJLPT>s3uE@4j9-Kb4Zi?mnYITRkf=gO_Rw=&FHO~)E4)_)EP%WpF(IMeCw@We1} z%0B5M-3)CH*j~Kem>n%XwdhLF*4|xgi%zZkwd=bwLq6ZU+Yh#0&V0wMpa1OD9>2bv zh#wOU{rxU-N<-XXdu2q1(wp3Qmu>PF_~iAgy>J))*AOx*@1m3Vo}NP)QTc1Sr426` zytpTOd&#+&$|rmM?&|8+KIq)M;#%v~Yg)-NzxI^6JvZMPAHIo+&uPB*)a=;P%kJ@X zU0k7eI;wl0NbLO9REHT;KkaK5TqG#Ak<s-A-@n$48@8Y9nVgpT{FJ&tHIvEW$u$p3 z;~&k@p7OBe(uUJ5#;24eoR2eg=tQrHnje(0T=whP2gc{;KM^|RWVY$l6NUSUB~JRj zo_wD*&3@Huu3B^F`6Z!=^UR(xaL;I)ma>1QtZgh4_dK46A6ri>;jCWZcOb9m#^2xj zMfp`DT0B!2E*@nTTRw-$y)yru^NIdeozG<xCI?QkPVtYdnC3s*Hh9Y8o2Jei13u4P z7`=58v*<nBx9b`1O-QbltC)VZZ|TyUwoSio2Y>iuHv717hu+4mde(k6r8g(f_229J zD_7)O^V1LeH|_C=uDtnW>Vn(3fm64>jQ_07c6VR7WKHy%?2f6apJT&T&QGvSPN=JG z{;FMRmwS79aCOGa=6hGAdkb4Cg?QW_cU*J)$$f^kJSn^3>zzvnKV}Lw%-J!~=l|g! zM%(1N-+L{88&|Ra@~fN8cUzx2uG*pjqT~f0<UGiW2=9w{WTA9tV<dmFt@fLvhvzCz z|E*<x*{ZCbn>FVCzUSYbt(zs7ru68pr+2)qLWbO<6RE$N?Yw0A1@BILcJ;3I*7Nt{ z!leZL=k5H#&oX1mENlggnI&cukhGQPr;8RF2<-VRYIW#fmx@4#%=S&5p?R}^JX;dO za%Azec3vgFe|4%X5<-)v?CrnRE$ETuyZx4NvjdaB4#RzGd%Lq|GqTlQ-+IuBO|I!o zDd>#Lqz!!sj%`saTr2u<#?Jn(1nENV;LnluJH<<-xor16-q<?vWOiKJovN7oOvg7W ze$A<z!nWyZ_~YNVZb(PexiIuUH)NA6bcm3c?arcPS<Wr6rIwBF?kOgVkS0qm9ro|X z_?f@T2&jbcUQJGT!q~IGy|&!z<WT`%OUI<O22LmToU4%Y<ZGE39(qG;k4WQ*RhzoY ze$IH;vp9=mO%9KyYH&$M^`B{(9|G-i?Be6nQq{Kow$c#JKI&s<{pQiE4XhQ>hwT+o z*gM5+wHNE~u;hPvt@u>w>DIc5%C;Td3CrDg@AA5$di9mMM%Nmdf~tlMT4k2vHka0i z@`r{wvHzILW%uRDl@QiXE4e0dpDd2ce{=k@$cwVM(vxkEgqTGJefsxlcF4t}>olh+ z-4#E0np1Jr)hH{~(r6pr?LkNX&R_ZTZ9(qtM5DaZA2Rk{?zDU^P|Y<f_|0|Jb%%3Z z6dGkyx>DC|OkI4@SxMIC+isoA^P6s_rpC2u$^X5hS0tVGy#A@)=PRD`o8IkHx#R4m zcivcG!^;;doH?ZUEa&!BA6vRq<<7gqL30Z7<s}21_Le`1-(~rpXO*Jof00nmujf~6 zI=Ez)i`NwMrPGW$4CK0!&+p{?UZq*qpg(=mx|TrpO^<`7{;%GXDIw=#)M9z(h_3QC zcd2y--xQ1Y?3}XL`b%Bzk2RLNWq$mhsB<bZ{gjbarlZ)=ITjO=mR(=hZY6VeSNHid z>Q^UP1s3P5<J0P8{hM>hd!6==h!u}_Y26F^%V%|7d+S$&uwU!SKAo;qI;{6)#v+aE z#h2UvI&l0|%0I>8vC`UmLgbCF?FO}*L+z(m*}pn@?fsN<`7ffD&b7Hdb4vwZ>$;kf zi}y8p`+nK1<oUbmc=*(=FHcPa!%TkeIX_wOA5-1#onqK>krA<zQN|YV$tXi}6QWn5 zpN)(K-)KBPe&O+NuF74DJQxo${RXW>PuO_!@HRJrJ3HlbFRZ;=I_K!O``-h;vD_?q zlVxUhYx%>cw$m4Ryz02LBErM*M39EimS-1!DYHImdM@QLTf69lB$uz^^>q&pJn0gO z*tMu-(kZ{IPMWcb3r!S0tSkt>qVTLsD(f8=ujqa4wvbm`hbO3dsBur@aT2o#DHkva zP-5EQFyYk;F%GL0JWhq8I)bK$j#~yiTX!gA(@riii*nJpO-`)UAso+E8ZLRI#i_D# zvB89n)dqcA)*U(>wcu1k_-n0xf!$osLU(gbN?ozw*pl6q6*mlKRR|=y#bha}Cwd%6 zbyDhK4fK0sHtYE9P(2fO)s}gZs}2dQS^XjL<hIR=1h%Z6prOdic7C(M{6}oXzU!KP zYQ=`y^sZ~F)QxSO-qjPqdS}OKEtRWtLucggTpe?0v0}}fUp*7l{mPAtIOlo0=^B=b zCw6%It1eDr>2q>An_=G0x!KgUZsO`mSKe-Hd&H(tsrmFtkaMNkby1O3;fg9wwG*QY z|4-ie^iX+YYm568WtpSl8Xi0o7kuwBS^pw#(#(Vt*_ZBIkDGGy`IFGhybaS+zd7#F z<K3z<Z5LOC@RS<Y14pB7&)j{zD_sAR+F9q$h$~l|Ic<X)UY)oa@b_P!+cE9UyL)x6 zT)Ll>wlyi%RAp`0i|9|TO|4%a9nJgiyW_|OUhQwYH~jy1zMgZI5*N?vcBSNw)!*&^ ze5m?<RJ^}w^|l!kRv8*ZACZzdtk&7fzITF_;OT6EGnQIiwH!T*I(T1a@#yGktw`qa z5!?Ht{XmXsnB<q4-7c3M=g+k0;@Q=BRdy*~)Uj7xsUkdmU02yI`-UnfKbByAF2%jA zSFu1_u=tPaw@1HTneC|%{3gCYKrgL4J~m<FL(li~=d9xjJ9}67=fBpPpTcL}?BBa{ zUi`Z44~^dJ|NBhoP5fH>`)&NndwyNF58pH6->!Gx;*+<0ef4c_u>aTh<-gxwE5H6e z|Jm2OvX9H}&cF8b?U$=x&p$N!Iqfz}UHAq|*X;F%_ez+R`_9Y$|F~r%lfBRGZFafd zD~fDIFZ3UDuM0RdNxwOvG4-*d!HnZOt2tt>F1oqkyy(^$6&KQ%%jFuemA&#j%65=H z=sagZrsXm#F1D{fw%M@NO{nr~m|NBINnwXZMb;Ig73}MJ8aFGISaE@6<d@A0e!#x+ zxrjw{itLs@^{%#a`~v!G?Y?d)Ua@?xv+Y}%SDDWP{H@!o{LF1bJ}LZ2d}Vp{>y;a9 z%^x{FZz-O!eC}bJ<+J7N)p#1^6XzArns?`1;=Hm+m8<yN4$o|N*Zv~-%<}G+CkKC4 zo;Q|C{lHfn_2c>HbL-P)6)ifcxqscsoAs5YrM!!$m#e#$ua*~i-&!Q{MB~ch1?~s? zoOX+QS#gz!^i4ZG_o=_yjoKS;<M-L$`S#p?-`-!p^ZsA`dUn&jFPTfO|GxkJ|Azm+ zCjDwYU*mRW0$b=;<{T4?w#z;u`~P}q25B|a-W2|1^rpW2?<*^Xx%+<>{yhHW+1X9| zX4lsw*Z*Go{DEi8!Y5PPHrFK1S;et0VXFzZ<bI2gd0(F1eS7xz&u=d-`sXj(W_CO0 z<ZRKWo+|6Jm#v&BQ!pWIa(cmZ;XBD9`;WYu&U2Le&apdp`OHjJ4R_2s6?SdQR$bY! zqwDj$tDVYOp9_Y>sP(Q;H4<q1(K@5)=j$2UcZqIn4V$eVdh=CD!fb(8KLe(%UH4OR zkFUi~&yTw`1S}5!ZhHJPAxATR%Tvwgk&}X4m+-$lz%3s%>(j3(OAp)-yz4#Z)>Zw> zEUUGCUY(JjVf5_XEZzJ$Cbw60=V^3zMrIf;44OJ$amSOtE#Z0|2TnBKQTo<qSk8N~ zwg2=Q_Q|ekkt=nyuP!Z^ef5Xroud<%FFg7G!MbZFY$AAqX9<R62Vd&syFDv=(^fg5 zvuUZ3r-XNT>;4j5dwF_%<D~bG>z;F&tyb1yi>r0Y-*9gA{p<Ito0S=U#n~Q~W$7>S zySyo<ST`i)WahjLfifkt0@h4^Y0Pr|x8$3J#~*N}P5ks<r{X(kN9G1=j(bMoQD$~N zlP*{;U%Kvg<1$w*`Dx8(_jAPMPdjBPuKILN_oUziM%O|)7U75;HzjsR{Zf78Sa9-U z{^sKcEKEct=PX#z^k@A7LxZY4S6(Sdcy6?j*wqxDD$BgN@XLRrV+ZOit=P`CEsJIk zestF6<>fe@H~K6KKiKEKyFbzX=JTzew*F1mj{mwjy3*3@>7{v_9)1&D+u_m8>mK__ zc;S!vu9}agm>kmZchCR6*PgGUF5Yp`#F~k}=c|6nc>e$L?aIGPzP=9)dCT+cm&Bj= znXg48tY>ZQ@A`SaM~<N%TMcT7Wv8^Eks;A*md{4q&U<VoQ2RYx;6*pj8p%mQrJP+% znsanEWCXog7bxPv<Tx!Ox*_kH>gzYx%QXVmsh<9}t*^OulS}rqGctVb#?BXn1iuu1 z`JGczy8QNuV||&gGPXI09o&|wbUN|Ik_@p0?!M;7&TsbjNM}>K!nCuh^wrdR6^C@9 ze@8u=8XvYZBX0T1_@hdidyRaAH7$3|?Y*YV)x>g9w;?xqw&aO^_x|%NtRL>HyKH!O z<3;q})E=I7$$2k6$ShpH_`LF>9<>>TKQ-#3#C2RG%QT+uwwoa`d9Cn_$j6+jEg7#B zzTI)?(YzWLWA7`LV4i(9W8VIbqc<+O=n2JN(c5w(y!?&}--e?;oh}z#p5M6gmF>xN zgO7`~R=BQvr*ZeEP|d~z=C1eFpB0yl72C$M{I3Gn^Q|+JCNHh*3}=>-WiZRo{t%s< z);_CEyh-=n6(QkMx<0wmzC3N6hpnVJ<L<XAadq|W|NrZ3+2WR2H#X^-G)~ySd+$YM zQcrox#m6nh!P=)}I-W;4>#=w|YoAm%H$(rFZt`*6$;^Rk!~I)ccrEXlTeGt1#p!vj zVrDvvMNgMqdB3wsO^l^ElR;L%=#Euh?NpJ6MuLvXRU5qyN;YRaWnAsh6*+C2o=fD8 zjoT%+HN*&6>&G#b$*rs9Ie2Yff1<VPJU696MUQH&E!nqXE0wR@(Ds_R`{tv$9}X#% zpEfDJzRu&D!toI6hOGJRTIK!k4u0&e__4{t-o=07j43<06Ho7$rqlgi{AgEq!Q*xD z#~M`snA_C^&eG{$93EI8CdVSF8YL?4p7~BsA!M1kxgRr!%f-Wg0|N`E?frM^bpP#H z6&qi8pZa>dIqBB(mw$V?^?dXH7s=<n%fI`3_Wu7nYG2H6fBwJpi(j<O_oDFJW*wdf z-x5!APu{{EDXLWOzT@W%!MCQLyB^6pb{o|lPUd|1^hjl6x5T5B1<&IO<MxDGSwBqO zutUc|V$O+-Z?{utEUPQJKEXBdbc5siKL<@7hwpr?KTTn){-<p}_w~Hixwe0vKEq_S zLtmS(?)3P2bxPYo;fE;;KBbCXTbO6R{!461sZ?R=*G-=$DZE-L@>FDo!%|7+?J<9^ zupQtssmYjjZm&T0{EGG4X1-vX^81|s(fhY@z4tFPd!(-Tp<?lI&1c(gzWtoS-m~&m z<MKsc4z1Y6Dz$&5#vhwA+jxIJbiTLP@7sQn+uO1>S?^r@ZVmek?v_2_!ht3>Q?yOZ zPq^3xZd$nh+7hR)`ST93`~LsTRoRoVW1iQ9JmFs-p1=7Pb(gpM*>&%f-JfplS<)@H zN=JD1q3AW*jIwUkn>9Ww1?KRw`ueJerAFTF?tI|vpDepHE@b8P{6rB`|KhDdsg3G| ze(#kfZ#XV1+mLtd>bJMPF>UUuTYojrzMgU4&10i6U!d%6nHfBDtY;@bdoy>p+>BPv z8sA-oo8}&fiBGrw#qTSt#@8(DH}z)M6rENj2RFC9oG%}AJXGOlW1KdZk6-t^_3~+3 zeJxB)kDh5zKfL#UWAoxUJHDGGuE~48tSm3?+1ljXJ5D{@8mCq!#^v<;slRU7yYlJ< zhQ4Tt3;z%QSUXpA)`9*^4|Sfrgmb(<j;dv>vHhtbG_m@2@|7zy-X;V{ZLf^=O51ub zmP_p)v**hP_E?HUV<RkGa|?6mf#pOT9<epd*Z;ABz~1lS5x2aRa(my_OuJpTp<}9r zP6!8Qz!Wt<Y0c7G7MiW``zPPf^WC1qeR`fz-`kJX#`(w8GP*dd<ZER4{pu_fxjvrw zE^Bfwz@gy9Zw(2<H^C-;7w0}r5WC?l)^g2g?(x7=xvwHuYiPPItBb!LI{C_}eUE1P zb{^H%6UyV4eZ``D`s17SkLM5Gtk@tEU@=2sm!$?z;fa_jXV}a6S(X}n7Z!Ze<Midm z+BwSCi#I&CN)Ufh^Aq@ro&^;vI^2XKB1_^7FNJI3H}pY4(sfz^UW^SS0Rm5D_a zg@qYBjNU4h|02lu`<E?Q>_t;I^-XXr`qZ3ze8Pf-j}xZ%U6~mkQ}p4rKz6F}`KHUe z_S$~2zHqSlv;p&_+bd$5t!hN?Z?@%8{E^#ss;QeJY!BnhR*%mr>vo3hteNw%>Y7tN z`}wv0aZ|Hc_AUSFbMwCbehua8zaK5qxP7&Mu29g|%~$GNBIVD||N5i4{pb1Q$j@3) zDefE6+C7_>_AFWHa53s}_nPzHpI+!sdL^GW>$KLY)2>^3c2qcb?c}wJxgI)uR>Z?O zN0oGo46nX0?QZRKJe9iX&UPblE03p#e8j6h+kW)u+wIn9|GkR+$Dx}}k`tdTV4g4D zx=GFI#iZ*GI`(akX*%p^^3>=5(m5}yH_OPe?Krila*tiyndu*`=5ODb`z)#@%fRra z$;;TM9}cUA-92LUDpGlpm42&O={2sS9y|5_M_PYXS(sI}ZJ)WoV&x}#ue4Sj39;M1 za=v5iHr>0MXSKSmZ<7{09b>xfdsojS<yn)?T)$X!bh2`B=7Z<9KbG&E+wseSgZajT zr2dz@-+L<mhL$^@|Gf6}>+XkZ&+XTk=W{(O-&<)zouhL9zWH}uHvBQ$W%*kywr=O$ zOg6R4yH?0v%V$krrJ|+x+Kw;b7{|9m`yVffnmu>&60=vvwcCC@R(f0TeabBl=B@I3 z{}#OXf55o^b5c-Q?KkG;0IuSn0;Ol-1K(WHXIb=T$A+A|qg~A58&|3_-&|I(p=RxB z=eBQ-F=l%n3b}MPcE8?dvdUNHiQw<u((aZTpFE?xt1c_GYR5TST|7VK$<m*-uRh-S z9`Kc^V)?$OGqdhpvoqnkf46GFF1c?HFSq`f!yU(HbT%W&_{ExEkxNy+nB+?LY%M;? zeCYl)?N4mj@~ttJ?N=5g+%~*6EIR*|fk@qRaK072KK+K_)i^6h?a<d-R%OgOBEY3` zA!nz9UhL2Bo0HWArmS0XJ6Pto%>4Ji&slC0yurYd$3A~q^J!_Vh6d$xnlsilb}x7! zvqPE5k}X*NjLxaIKfmw=JaTA>eHnhXZ||Ya?MFnfB~P5XdeIrCzt(=?sWK|9;Vqeq zY}hBiOfWxiNs#dlivSbXqlQqM8D|AQJiR6BFrkm-M{MM=1BoI=?WYP^<k<O{Qyi2% zW=O5__dWP_!2v@TUUrWd4~1jj1e9CW7@a)qEA&IiNHA=QnzZe$pBuM-V3tmPUAfU~ z^4F`Ol0QYet^PdawG`uNR8*Z{wT>?&Z@c5N)()H5O4<3sDOZE{iM(~<ch*>Jz<ta4 zmBqDF-HVoP58Ae$Z<$qI_dCvT$-9mh)-Jwo(z#GlWn1>tjklhwoDY(5DwylzYaJXn zseFzX>lSbCaIRK`-09PT&gwnNn0&oNI_Z>x+ZNsVw+?*>&zK=<ce};(m#kTByT+A{ zO_OHXRNh?8>A%NfMyW^JOAe!ZCI=4x_*Z2(uO_-?=f3$m@7C|HpI7rTfLEAJFm>zo zKkH`+ymRRDh!)nr_~f+8ovF)CemZm_SajVSjiBJLeK~sz_L^_@KNe>+W$TX|?kgcN zGgB{x=&!$;wMr#1?2TynEtgE=+v`j<-!x2Q@!G-UmGbVw!kW6Q$ztM6v3gm}&%f4) z{n9U%ear5o(zWVYa0l<+rCN2()?Cv=Rrkz%rMOV9<mic%m@UTd=FI%Kbh>WI@)ew{ z`Ii?zojobH##H{i$lG@A#R_&o7mfzaU#4YO#?hggygbu<$#<`y$s2RUo@mwPYpZa$ zoOqkZc`bf{(e$%79^0IGeJ`|X&-T*F`Z?aEyWVY&oA=#eb@qm$U+HJ^>d#aPerNb? zvDbb<$_XR!)7Pc{`cBTMxBD^qoZ#H=DG_tU@0yfV20ZCrI-UJ_z=PPUALm>4WbsYe zqqlGWyUQ<siSULy)|R}SIsLmBr(=4;6!vuf9(JFogQc&TESm1w%C}Zt?7H@~B6(fS z?yr@*uD<ut%Pe+ZST=)MviOO3QQoSDW*$vvv|n{U{NW_ATy**0WmSt<PHG;pk9xIe z2A0fdWNwHwz8z9okgA~XpOh6`lFOy<r(kGcz@_h&SyWu2U}=hU?zV{~(IazvqoVs| zxAWHB2an9T3#m?G>VYm37qVYs%9CueIJ0-x?w3`uJO1yJPcJuHx4F#Z+)W!<-uCui zE+4ggJ$LSUkkzA?9v;N$r!Cjry~WmD{3yrOrCS6idGk0axfd!Y1oSBAwbw8@wP}=2 zRoJBVSYzFUhKBgN9B(Wn7g|m0Rq#{#cfN7XhQNq9Y{wQf<qMx?oZz&f{J<2`TN*o0 zZ2$9QQQD@!GR>TToeaeqW=YdMa$8;+?Bx_I^893W$euyI*yG@$CaGRo)eI)(!YPdG z%B4pttD|KzH*J^N@G2pnQNw-f_K0M)d-o=tUMi8+8q}injG-rHablQ{oEh)RJ5Gl= zm_EI=S7<mH7Wr|-ZF?=b?5&}X@@0;Ob-Jqs7p}TlsCZ0ftHZ{NEnzDn7B1wvTVT3i zne)1%9!-re#b@g%HZvIt@rbcbP)b{WBg*5J$4O7GZ7ruHHonaYQcqdY(KNY7T+~`o zRr;ja<`ok+?7bbNk<z2Emg|Z4Esq(&H#{UVT51j*>t^z9owxMXJmCr6t*v1zLRMvV zZt$1ta4?FV*c&1%!YZVYnWF3}QPPzXad29flij~1EnkyD=A^w?7$$uqPQb>|ytwsM z$>#8;cUO7L*mOM2C#!aZbmo{m5ZJc#fV@apwP5pK=hJS@32TqBr>&ixv~8l4?!m8z zmd(s4)05_1-7`B&X%EM@T$7%lI~mWiTJ`7I?6jzTJn!%}(SN_^TL1lUeShNTJ)3g< zK5V#rdi(nL{X2d<>h}M%iLL*yRLZ%l!qW_n$t+fvYYB9z@ohHXT4}B<nauablHcg? z#l4!<Ju|!X4bCX0tzxZ`d-C*6;;H04n!kCvWs=-(d=T?IHiP?T1p9WD#)HOAuLO#( zyhyy!d`7iGBmc^?nlthl?_OSg+FSkU$lQ5COcmF5*W0Rczv+<O?tk*0;(<GM2PYRd z{J$l9WX`_5`)2KbZ~ktlb?xu7!R1xg?%&<<TXNpt@5lSZFW>)t^kw#$Yx?>3BHr9h z+htLE{eH~ez4Ly%J&wK=|LarMuUD_;R?9hP81Q*p&RTr^7t?3o>jF&wrsVzHzh}>$ zrVG#Wyj$3^PdAr0Z{g37e^MLpjqyHjO8T_9k!5K&XFi=5`K|F?bCvl8*|v8ECDYgJ zPPwc4S}(Hv<Sy@Pv76padabt;LEQ8Dm!NM}8aroS{q4MM&+Yf``t$tg%hju2FOAQa z;@9`9xB2_>%h%64Y;UNYy>Tx>>rjA;obEiq8)t)<ryY*5X|nmT?~c#Q>hfQQuWr_6 zcm8vC_UzZ&KcC${z1~+pUhl8He*C%c>90>`I@Y;9&?}r5rL(%={G!Trmp5IpZ247f zyvDdOZGPg}Ig|BIeAaa7_vvy~*%4{WGRyhRtV6Rdak+DSzNN<SEOg1lCI2`U1b+=v zae1QX6ndyd_CX2DmzZU7ER_}o^G?OAa2HXX+;;0W(<ezs_Kzo5UDLQ=a;BO2jB2Fm zYiA922lp$27dE)H%v{<&W!Wx)rb=%c|AjVeFC5|??3*Ea^Jr4)H;rrk4Q)=<vDa>7 zaat~3(=_vJQ(mH9!I4Z$`xiliHzrU0S>VF`VZ+;kGfS3Byb_wIe0z`1lE6t@=3Fz? zopb#QN0%PcWVa%xzi*ViRxf&`d{NQ$b5l^nEIr$`sh4)Ho%36zF>~(oeRfP4E*6f3 zk|z%&@g7}#)H3BF$F$F<wys~RJ7-$zx$Nj=A=U3MeKiz`ouDW9;R5fXHI7@)pIn~I zxL$FGXz_kk|J+5(SYq4PWT>XhlD1{a(6~`$aYQ3ObL#=w%NrZSJ+8@3-&vqP_1X&K z5}V>E=iC<umleBZHtmi)94YW3K{iZ2`m#?C*Pnm`lUbvKcNV=__@q>qaiwdz1zXjZ zY0r$C`b1Ak*NHRUW11H>W6RgaE$>|ASpNPB-R*kk{@;qy+Rs7%6DKnNotNRf-RAir zgGrMrUv1V|c-`-1Pe<bf-iNY}T8y4-+x_3-QU3}{<MnHwJ8(#}s%~+sT_qg!ddoTv z<>w*A-;&x@6)UX8n!0LzSi3p)U2$GuslSFJH&-ig`JN^FKD1o3JfE5ybXd}Hv0K+i z^$VPAvTGOqXL-?{vp99eTb-GojLvhLpOxL39PxY6(l1tX<IiS<)@W=J^@>`3I`m8$ z-_C^B++3HA>25!f5qo`G)`HB?z}Vl)H{9H$IH!fO#A;dXTXSu#-0H>RPYz6Y)pV!* z4pVbn^NBMZm6v{7*)wHak-B|w`66xZ7FU;ezH1i~XXzwuxayJX<-O!slbgcgsi_a$ z8G22cqJ(Dk*)2{u<r>%`<E6bw<EhqG&)H&qmsNb`Fh7#tmNV=8&5bEr!Z+rqYn;5~ zrOLlHS@2q!te1AMH)m-5RkeaWE7vIc7r1r4@P6!*Ug{De-jQ$lbgg<%r|l{m7N+&b zPrWcL+Y!&b>&R5iZ;MP<C~aSJNp;TkCGQQ~r!3-(75lVf?*26IiR{*gqpFw48L@6@ z%Gh>c&6Hc$JXc;fooink?AqJdFg@YnQ5~xd>*YBs_**ktzK14d2maF1KH62ctvyov zk-Preo+v-TKt7K5g10k8F8y3CP_H9w<|n-9nT?^3bZ*#-;z+Oe-V-u4`vZOmJ8hb) z72O`nHE;FS&UUAg`Ik<uc=Ksea^DHntzVXM7tYsIxNF0dv2pX$Eut4yZz?VLn5-xj zduxuG+syqwYl`PtXXi|LW~rR=+0s$H<;fwwWe+!RiuG44n4lc?WlPlx{hY|?bGc_% zc{@uhMqZ1N-gT?;YO&daBX2^#%6(b(P{yA9OMb-9_p{Db8h1x5-Y%`9#TpuK^Q7a& zx&^oW_Ud-M*;Ewa#do6jPSsUov$l{M?&rQQ5RBO_^wrqmf7z^OufCdH*ciKa(p<3> z&gWd0mmaXV$G&Cm%kZBseeOR?D3jXI`RPLGiQi{_UlnI^uJ|DLk}=I<|90b7ifKwE zJVM832rJI`B%xn+X0eV;%C_bVsi{3V`iT>69{Sf_Zj>CZe)QehvQGcE-c0L$Wn9;q z^6LD$&^LMCPi*D7*!Hk?>W$EE8=n4^|EwQ*ulY<_k*d{+o=0m{B$M4rpT8|`Fica@ zDG)GTochcw`3&n@cfaO62Eiedlg~s>v|*o~ZY#+9N|)VrUw87EmQ9CetustJ!enBV zeCC5syt}IU?xj+pZeAyEn;Y!^l=o%x-D#iB-<@`8eOdG(=Dgo_pY?aWbv{!N{hKMZ z=jOip6U~z%Umcd0vpM1ODp>LfFRSed1+FPJFBmT=7)!--7WP=?Prb3=*@f_`$`_M+ z*=J6!Jz&JqEMoiHpm>}2eaAB*7du5Hll_>ko_vtET*jt1YK5rqn#E^y?%9RxPX8zG zntW#omiD5tDYkKFQxl@cp^rw~&A)9XQ2#w%F~LER*;ISdBD<zs{_N{ztluUa$<I~P z5X$AAsv0TpyK8@)yIiVw-z$^e>3btYT<_g|zwdnC)@?Gc@4o4O`sQl1Tm&PhZGZIX zsZXs{KG>Y*m;AV5tIyhgGj*LA`ZMHj>@JaZpD)w?{=?s0Yj-a>`gLl|*_Fwsqr^Jr z)W_9rh?y?@usES5rDm)3?_$f_XEk!H#O@YzGYJ`7_u96(f4;1CYrecr`v-#!d0$Vi zeafZqOe<+;sqOALmTZmAGXlK7zWDe<xWdM34x_?+gF`QB9A(*4^q%dzn>)3_{Z>PC z&qcY$w)v+lMZaCo*xvho(X!s?%y+yynIaqB-P`T)FeylEb$9oY)r(WM+6CNDuKGHS z*EJ$Q;1GZ7)&wt48O=kb0b2rX16USsC=J)<K9U<I_JgtWb?VMT>K+GWe`imVSf>0{ zc45I9*6$tSzmm5aF5c!>$;!R#!q(dv(aVgO&dzIiCgH>L@_w!{vxf1f?Hn0PFR1R= z+S^^BoBf%|rcTDqpzUBihg;+c4NvoaXQl2RY3F3D%}*`=QStYgtzOtEwxx_4=LB0+ z$-lhM_VWCrV%~l0i=W*}omN-W(!9<qR=ef)nc(fM?hlp~hKSx4e)mS0ov;4>%<#}F zrknaUE$cHYocL@LTb{_*RX@sHC$Ht6`N%I$EIa0Fidn&P)x6T9b8db2yU*_%Ajo-V zZ%FJszoUxk>!jr_H2N%e>TNdK;e7m9$cd`$IjOwa9sk#5#n18;j%YPXnEqV<x5Z_* zzTJ0zl+3%UarR+%;G~5Y9tcY;wU?dpD01!I%ggdkuloOmrTB2*h9Aw(zBwI=EsHDO zEte8jKPR%ZZcq32seEycTc>$V{hWW*`mhhz@9W+*`_kU)fAIEs#(nPS#QASlZiq7b zQDj^$dt0VX{<>z||JScRG3}SHVU2URyn~_i@xfL@9a)KKtO12b_TBi`=k8Xq(%GTo zUyCM7@Rk++E9$!@`TuF2)qmG9(6w=S#_u^l9vxr$=H<IpyL?K*H$F(@Fg?+H$iq{E zWnT41rY)LIzl(y*n*#o6IIPT>WUH}cPQzXog*UH@u0G<s)y>`UpsGFk_l~gLRwZR~ z-=r)F?pV3|;#s$&9Bw_kOmhAFoW3g-x82)!G$7MMaP@l!wTB&<z6EY8D)uP7+P$Jn zIP~Ja74kRVF)nbmkrxt@j#laX9COrU`NM_xR*FliOULwPuG%~Cl2FG%jZDJ{MMpPH ze4GDl?_{?|hvm8-Z-%aXSAM1H^D8m&1i_dqMTTomXL++~J(=gcCQj~KJ7bT}D$5q_ zCA#MvN+PrWt}3x{vCUXt;@5vUWNUJv-HG2b{n~fsAO7aLo&UlURz;!6yfbgN`0Uc% zQrSE$?~2uy+55^&_D20G`xBPB=0;8IX{TBD0+vU*F4x;`D`=@Q_xX%B--1@1nR>cA zP;IM5$~gvOb@L1Mh8j+Xoo_t4o_+as{K2jL+=_eb_PWl<(r#t@l;~~t`1SYI3aKhf z9vrwKwwT2rg=L-noRAV(nO?0NgH;AHp??l8G13q?B<<3zwbkeQ$63GhBPTwI)lz@N z)h7HuAiVyluyWMm1D6h&=1$qb+hpfAso)l;d!f}zKK7!_7YnT{Qd}SGc))l>DXvC% zyP;Cu?2|UReQS&(MZUL%{*$OVzUf$Bvr+%uiIygbWp5YXv_G}^$r1^x2?@_?c#fwC zUtb;>wrXp~DXX`?Uu3RR;`z_L@2pz%R{uxVJg+D7Y;{-V*^yUr&aUWnApeTC%NM@( z?>@l!=zCXl^^DB-g*UtT7$pS6k3E|o@V43S%F+hI-bssWXG`0j*!=5~R<YfI&v!g{ z!(XU(Jx`Hd&BPhZ64I|@ul#u5di#Tx=NSuTx>#7wefDndbaRv2SJr81R83s<=lqKI zD&FtsU0rJ=>iD1i^omKYzgTA5=}DTM>daf5R;wk-7LcJ?pQM)Kx8#t38-J+Z`T1|8 zO?__r3Z=4|<t-1kJMr*hF~i(v*X@`8yDMtvbG`p({`UXjx0KJcb3Xr|zfQa3xukyO z@~T_T_N#yY%HL5J{OZ`J+fiSez6Jhb;r!1kA2iDXTjgSorE)PhB>t?1t<(JTXB$Wy zdtbxlz59UTx?F=9GRxOZt(tkw_141GO5)Zmtqx4fvcJDfZ$5cqe%VrQe~IM%?>|@P z?3ZX1Q7Cv@GtW{y+>V*&SmKN3n@lbon+#Y2eG)nj`ZQQyPrvu~4ciZu1`hYCxZBky zMZc@5B)uySHSNsOy16%Qn&;+et&g;{xs5OXG%DW4cTHIEz;2cvM>nPkYv%5*W@-6X z#w_q9nXPWC@^ys;c1s%9-?semuBLc`Xs^P;WtnoePAmpZg1v_oojVk7IXWCt_@*YI z_$1Ej=;jzM-5D7NH~Fo~**y97^PM}CoYMtn{IGIQVa_{x>yy4#=Ecuz!eX;;+nU*I zonJ9;x@WrQ?|%W)R<GOoiKA%gofOwwOYa}HPPweb)a%|JaU>}=)#&}qKCy>es&juN zA4~i&H`_NbJ@ex3X`-vLC6u4p3x3*uIdkscZ)#_zD%b2W{Sm)>u6UZ=vUOkA#FY4N z-6HFxHdV|yc5hVb*GbX8SAH>DoYUVv=ZWW@6S1FO&B&a5u2gSs$ca~bW9q*<M!r4N z6aKD0EKYxO>#zE&%?6J{*~3cjUgH#gy5L#BGH&j7+}_?3COnOKQGB!a7-PrRj7#$x z4B95z-7VYVxK**;OR2+Shxo;+OYF5L`#HZcpP2A}mhRGfzc+2F-n@mqE}U=6m*RI} zzrJ0*&aqech>hm4wLALn$X}l4_Hj>k-7Wj(UV&|k1GheEtymiKms_*O`cm3bySDVh z!kd@Hehf`_?mo7#Ge%7Qz_uXUB{M(FnSMuap5OFUPj6=2yq&qTedF(pQ!D;`-Y5RE zVe;&w)n7cMC)>~1en)K0ZS~)?P3N9XN?deeRh@oDjgX1{*3#okp84Cy&*2YF&5oRZ z$g*~GhJD%f*@^#xryEGUw7xMzJEA_GN3rwJfdUqjhAC{nIGtrTw(gwPx@O0uB!yo) z_sd9?`k!BEc*XX{pQuOj>rPFR!InQPu;dR*LsDkEyz?(R2<&?vzUIhL%aoh#<=58< z2x*9Lb~5LxOyJtov$s&kvMkG5>rZu>JYSiV*X;u*v#ZO}_T|rG5$#y;ee?F!H&1)Z zE#x>JRJ0{Z*|k7LHOTPrq(z~9c}#tgHt`0ctlNK@`I_l?7u`*Lce(WbyUq9JuK!Zy z=eZy{Hoa=!gDJ<19(??B`_<t$ceBc@7bi?ns4@_8wMbGtwQck4e3qvl-ZLxBI4-zr z^Q34Iu0Gcj4`UX-zPViTW1sMu7Ry=38Jy=fC~B%H%Lt~;nDnzr$f>FJ?o`*c#Rc<R z9j{(#wT_$;&-rk>xcKdo?b@%EF6L$@@_dVr+hmx{qHFQPNh$qh);Z4)KM!sEbjWtr zR`r+N)%)(QzwYL<{ax+PkG<A4C2DuOMLkbv-G6n?(txq9<<<^Hft@p$mZ>vNFRho) z4|`@mkJ}{sRo;Ht4^v9loxLyLUv52T*IBvu-`??TFVCI)ezWl%yQJCnXWynQfBom? zzQcE&*F^~VxRst?X7goV`MOn(X9KGzD6mX_tJ=L}cCg?b)!2tEnH@<2X_q*-J6Aqx z-f{4ash^gp@C3QlU!Ig~J89!^rpbtLt!7=r{BwKm{4AdK?XSQyrMKpXcWUkack`l{ zfBKmRUZ<*T(^WG3E-YgaQ?lwdTP??Q+2%~VM3Q7{|C94CSdTem?|ePmdFKtj)VC5{ z673UyFNw<Cvj1kv1@TvQZ%;3i`?}T9bHAo_{`zt;KINz97I^%<?{r<jc!oh{{^?UM zGH1VC;L;x&9-3_YIY8EdfAyE6Ednm8VG}p86o^(Ik`xx!G~ayd5dV7Z9p#$^oPHI2 z^E_r&VZ67<ezL}4!=;A=-=A$``m7=2A359mc=EK~V>-pjVZ6a*Qt^uJl_^Hk4$r>) zf6<!FS@W~!7nH;-ms$N|Lc#huM_i^J(&|yadF|Dr;syOvJR7HSu;091uchPVpfhb> zpXjp|CV7Q}Q+Dt4`F-W#UY*jZ<?f1>GcPi)f2^}d+)sXw%FlHxztsD&-0<5{lYClB z*KfADh;z(ToBLPRoto@*{r~MV@xB*6=l)SXmhxl6%ynlcnVi49U+kX6<+el8s<Sk0 zY}R;q-#xs|l;`cz%*qRIeQsC%X}R}m?aQ1Ct#!MuB~LrCFmdjiMf-OzWO!JY^!myp z9g#O@{Uc|$+r}p?OR<QWu#nmFW%I{-Tdv<<`*rtBf4PI3Hd<dif9QgU%u|7iAKbTB ze8jfM$Hc%KX)xX=H7~s+L&4kvdL0uHGunH@eDiM`@a%;idp<R#_Qt^thc7I3$bVgw z&3$<5l_N8Rmv7p<?SI`A`&kyg6P7ubWs1&xQeCq|L(s&TCARYZ@_R>BdIDOKHJwdr zUAi84cr8h4Q*{mQ&8zim`u)<BOY(S&)`#pe{mWLoZa%L6*56vUxhmK9_vcM#u5oW( zbJ<FN`nk)$4ZqH_;p$_#Xx^Z4Nbs>nbj9}XESW#bdO7$WbJ&_s<38fr!OEW)yCD9a ze}Bmm&a^|iclX<|wrU*oI#OiK?rHdPGKXQeA-CHUfk*yD!5ImsziqtBe>ov1MJYqX z$wM&D{rHyd`6~Qvr^Ft3>R(DZx5;I;mUO?dt^Yd?&dUxzH)k<a7$#m!<S5Abn!Bg^ zy0VOA^Q4W8?qzcxue#uwIBofa=xA=GZ7kuLVg`@?m(}}hXMdRX_0Quu?4gGr7M@%F zaqVd<-E&8$$*2Eb$ycyWEQ#Ab{_4`dDds#oyL8u0djB-)CWFFem8%XBxBCU2>AHok z%f05?8j_v8s%^P(ve4uei;d=%n^hHv&0c$4L8Wefw(a@VWuaHs3K*2%>P<gx_;%m9 zGnW`LA1&W{F;*s8@0UWFbxGiqb6+jv&)s85ZI$G|<Pwr3s(GUC@r3f5cMa9r!nP|b zrfAPM4G`|=<}VXWwOAHnanr4~LN0liWQ5|&uFEcGrf>Dl@t*wEd3)^r8SWarjlvvR z{HK*wx)$2_e0v%=L*SxP&B^JJ8?W`AKFT7MoXj~n{GiG^x4+k~B?)*Z9({c8L2ttB zcYX$%2}YmqeY@@GXvSRQGPCK6rUp|v-@|5UcA>my-#@&Nd2u4{=G!{!kR9)Mw#45F zO-;W$xAgK2lgmoi^{w~)li>TAz+JMefTz#&l>3KG!5@z7e;n!=CbqPezj7PT?0xGl zRmleIuWCPit}T1b-O1|Kvo~$~wfO(`HD6z!dc(5dIZN%S`^!)KxT$jX)RrFs``=YJ zaIwBWA3SgV-{{DsWh&)|Te<sKea!SWv~>8|g}-}u^NuzDyU35X?0fF^e*R=toP76w z<$8vr`$e|w^1@bq8Y6EO3&AtjWr0|QZe(f#-75*23Ck%-EmF{T%SkLrbxBRmPf6vn zv*Ri*DN0Su<*K-~HOjYNX1n0t_v>FI7rjgrU424HLE;1Z6!0Chik%5Mv+m|ZcWlaD zAJ*~t{pYUD%BMdmJ&M@eK6mA_kjd-2zkcl6E289|c<Dr<&{1=}wGW~{A8D*n@W14~ z$XD~*M5D-pSk7R>{gD|;m+X!RA3YF0;gQRv&HX1`Ja4MbJ+Y%-)kpr<-iVG(J5q#y zvoA5)SX3gB_$Z{tCo}1EZO?KEm1N%DV3p55LzYQwWxmc?t~&jcNU)x8>x^YHZeCBg zGkbDBV~xqH<QYe|^e0Xe`ZdElXq`dY1TXo^o=zpU3KJ4)b$p#-)I4|i{;~X^eQbt| zcT=F{&UyVuA0!)edXz*n&RW5;=3!NqfnUR>B@!`49yh-V`A)id-00fb+I=i1o03n? zxVfd@^}eS3;bk5Z?b?2J{VcY)Bk)^7jrXn|+u@+?-c1Kr++Lcnc*kwkgB$L=4Z1Vu zuHMVU>W*K}N_Rgno0@ThKOxZYe&&6VxBDK-N8Zinkq`T|-bS@v!lTfu=1=G{mAm^B zI;QMe`=DGiI-Ylblt{d?!>L*xzDTQIJ`-eY1^q22RC|_ro;`kP%0p&5F~x%q7l<j8 z>fG3Lra+*`ImPUgY00VD?BD{;-PN0YBTw)K7OYp1ci!-1@p{Q?0rh+bQ~mC~Pu!YQ z%kKTH<K_2TDKdA<HwLn`f3!Zt^4)lP#-=&HXS6RY)AVayBrRs9G4YD(><4omaa;<y zQai~;V(ageg)3F`!q3l(mEAWhPANgz>Cfz!AHLWB5jLC2JG=Mz%)b}&@9nGmd-rPk z{J-%}m5l3G{QmRpSzXn)94j05IEO2@KCXN2A->}jfB2jI2L=1XKWK3pTskaz=a%#B z^#(5=zTSQN>+Lf8y>s~D>%Z1m?a8pe@BjW<^~d}2(sdF0^26KpH<s<*S^v23>ihjx zHJ9(**|#_P_Uz;}UpMaG`u6Ilqi@e&KK(#*oyI(+ofp%!?<ekk$~U>fZt>!O&&|!Z z&-n7x@TKLNd0*sOJ}G!uaFz)DP&qPLLEX{c$%=FN%%>)s=cHY`e5Ptvq`&d&%rx7x zYmU#f-{4>0vik7${MWVn|Gi#4yFONS-;TYvZ^dqR`tk0=^TY9c@%xt4J#33kEPAuy zx2%(hS(5*CV;hdn{xs2y+I!o7-G2FD`EBv-!ZJ_!*T-L-zpY;X`t`TZ<@4XaTmQD* z{+C`H3oqxi_QjhIe4G^CZ_ypU`pnBhi~M)*@2&gp?(+Nf{B_ee-P*U^wo~`S+(O;g zO4W}4)}K8jc8z<{RSWG$^OetX?wp!n;?J*R!@kgP$7-qE%I!zZ9Ce?qeY;TgWcL!& z@X6{8-l=@^ICajdF8)%~SeVQ6?%1ZaYjwJH&WiPlp1f(|8uz_+Y3@#im;+xz&M2OJ z_4MkeH&+`p&#HY~ToC^6;jgOfe7&6yPpBw9FP|Xe#Zf5{v_0XJhh}HF$m-hDyK<u+ z%CfpK8y+`}wVSoVC8bzoe@vQd<<o{2QmxsFm&3G=FEx9!VO`_4O`;*6YNI_)3m^Cz z!?Md!GR*DihYemv5`VKyGr3ZFgE~ZA5~9EDcync%)~3(G2YlOJ=*w;^lV-noFkw|| zG~?k1r!HMv8ql}(%>u6|#($bQt3TYR@%g->V9F((No>Yf?@6UzIJs(%_S3zgJ97LK zK58DGuRnXG(?>I=m+~3BoU1G<W;XNv(#>CFkaxv)_SG8>&x2R^W=3Y*46bF`BDjRJ zXJYfB49lt?8=o9Bi1v0owOvT;$rD+Y0}<w5#7rCCO|om$o?ttrW(uqNH-)ytsR;`& zWN22$Ugu?WD?KlISN`;_>8E_>G3c%7y282R9m~0c4^IZMJv_GUjc#t+ul8@vjzS5A z1sApyM{WE2sbFGJ^I}uy-m~{Ql`gPdytehDl%?|RtVNTqGHg2VTYCCZy^^0&*^Gs4 zKC=TgK7~9uE`L5D|6lX|_xc^IKZRYtw6r?UlWeKuIWzHR=H@+V0uDdax#IkCV|~S< z%%|KG(#zjI<$06aHSG|UEuCiFbv6&~TWIgxS690Ee%z$lQ)XVgZs*`sdpzuv#*#ey zn^Hp7N)bt}XWa|0>u#I1{esrA|DkW+$S!^sZ*?rB>Uc)ugAY$9e*0AWwEde=`Yh(t z3pO={E`Bc;tTs3Kis4fhr8yIVj!j|Z_gZXhd{%@#-HpFrR%TA5sH+-(l=H+_yncpD zbXIJ0WuKaS&9XV5N3%Ki$HKc4j9%U6nO}WsbNk_9`#IjK^|w4->Yk`5{ogma<9qI; z^PKBy{0eNB`4ld*SutmW>72}f$UVDduBg`Be(+h7%XNXH2v_&yPYa9^et15eu<5{= zx+L3WIzRLl8?&qIF<2qP*z8tr?Us{p$uZSp?i9yVzn)`Cyjt$B?mM5lccjhT_-yj2 zhJ%G6Gi|kwmvGDJ-$<Q&>Aj!LH;+df{q32yUd~)H*H8IviB#tD%O2Kq-EK{u<F>1w z?Sq!-hK#0%H@fdG)_K+#bXT6gMz2cZq~z08<@4(dyc5E-cCcO4`uI5Z1^*to^Ybs% zZ3#Ff<`v~*awRvOTS9cRnT4=b+v((U2_`Fw?lzR!y!3u4b7E^F=PI{J0y)a}bVReX zpB>ka`F7gbEq?l5-mgBgd&L>0xzZEWI(M%*y~=dy)=g~L*%xeE)DCTZaymKe)pE@w z<DJa{87lLeBcdkhW~Xg<V|#6B$ki~5)V8OY(@!h+y%5^*=aMV4)r<F*GZG(cd9v&H z+O^(O!%9-?7fNI%yB_{9TkqgGMWZsli5rV|u~g6b`Xnj&)X7I{nkP(7vHv9*;<nyt z@u^v#W!U8XRU7B<OYvPa>TeP#nY!Xj^Qi|mjqd4u_iA|FdAL0MCjKS))Dz1BfwuiZ z6HP2Oe`fzR!MC<*`KP-4qM7B(gg)hSFpK?3ITYZx-s1F2(R9nbk97FgTl@|E-t3^> z=<j61S>&nrah-_Ulx+V?bq3GdPbQZ>y?XZV-LGHouAcpV{q)@1*OHE8$6glec${|n z)|E2ug<EFKTOhG$WrL-R$<K%CF>6(<xJ&L%lX|@?AkN!#(JYat7jA7jy>G$6{WcjN z*L>*PGVz&ZupM`?Qo!PvC2I;7uTWgpqNQBe>m<rn-&D0CLn*kvQ~1yPnJyDpA4e{j zDgM~>!?MUSuc>R?0x#`KwU>_9=by!C@-t%3$4<Sjo9CKhnBLz$HR)Dfn7Lnq&(bXm zav5uH%|CE%h2AN-)|J7kpMt$Cxs4Mx9$I~IdgG<WMh~{mIG!bfKBZ5)ll9(lmDJcj z`tK()XTdzy$Vbb<PPgUEGGg8EPjq*x_4{S4wnvUC{+@j~@2PUT-riz+{i_FaOIK%3 z6grqxGSO67iC1ukSjvHJXSWBb|J&74ES~3{)A_Q;C4Ecdq-z&W-OJ#O6yCKqByd%E z(B0eZEm!^rX3v=L&+BJ$%a_1Z*5e_vA!_yP-|x-5_Mbsxp8YN??MoAsU5?Q1n}rea z!<T!*yz>_u2<-c;U88d8*w(Yk6KqRo+Xby$oqK9+w5!ORD?v;mKJrm->+c(y-Bj`2 zqN4q^LBjaknVS1H29Cup7nXk2-Q=e?hk@1NOD(&rv5A7khguU3$#0rnK_&UtHx&2U zNwa(_-qo{QY4X!8A~$2|cTY~8>!IuaV~u;~S?_tOd#;zSkZ0TGUCn=SYpGo1c`?@Y zEElIvS2(~}9Jp!AJ9!Q-$MRl|vO^4e&8(-N_$u>eC*KL~lJvV#M_l|2K2KQ@r`yN4 zh=qU8g?RQy!9Ld}Cfs@*?9^fV$ViNPp3@7RhR~@~7EMq(KdT_xUR^wAu3XcvKISt! zZauJ=yhrEYg7oXHijMl>e+m|GuTc25J8t<ObwwTFQ^MEQnJvh9%+SBC+xF3V#{{-R ztq;1*{@JXY{y_U*Lqhw{y%k%&in?BYsr)_mZG!Rl!-<NQw(I#=-YN=wmO1xB&}4;8 zQ@%G$Hs`srW1XyR=c$Y{)nU)Pb>BYPaq6{@7LT1IbNbhy(73$}fAnpi-HgfCDO%X~ z+STrI{>;-A7uh~t{PD78UCz{+btkVZ)!ihw_4|`ASD(aq&3o(plFeA}@IA5TYnY#V zx}WQPs&ZaSqwD;$J3D;MjSEzC{n(>cWlqxn^r<1sB;uD&$ir2e<pMXvJleXaW#Kc` zn2$p59;n`VlzREVVuR`h6%rdwJ(u1}^-kXHdD1J<i>uFTqsd3p-fJEKX$Q(<BwiQJ zydJqKv{3uR)MC@LFBJ{vi|<+ad~$NgYtVM(T59p-Ovc2@+4im;%Kx@*yk@sjYU-{B z+&6=+TkbvQR&|%}W$qEJX{DtOZ~vE<zQ4orc<as2uIo=;C^>YtKf~%D-}$>wR)<~8 z4K<OBmy*4G;a~*g*OyP8)s*B+u8@rgNl^IIe2eAWnyAO|%Fb`pw@$2|yK%YZn;pxY zKPCLAPCEJO^84h2zhw_Fmt=+Ozhq=}IeULj_%g%N$+O}b&aLa?t+=rD+0*KS{3ouh z<1taQ6MG|SeS2MSS*gyv1<do(C)TBXzISbpS*f{PuEo7l-mh#0+_q1IZpF>6J;Szd zciHU{+c&?{=EQyKnQowet1Gacp*UXR>Dm4twd-bVuG}X3P`<b1T>`e;XpChr#n8}# z=$Y!R;rH_wTL{#hk8do|{~&PP%xuQ1l1uZdV()r=-*9(NX?RD2_eCL(gPGgEU%&r@ zJyStt_TIhKhh}{IG5e$WeD*g}<-Xn1uZ!1Rm*@PDbBasgi?wolB$NeR<K_g22<C@Y ze79SCaQant{Utn!LWix4t0%A2iMSN;V}8i?(^uC`{`Pg**>dTdD||w87l-Tpi_o1X z#v+!~|HfQ^iSyK+n$0`@H|=HGSNp+$OZeeliPOEuD>^K=6Jx69i^+@MXgt<YWP7Dw zv86(-r9;8yh`=I&H-SProX2kXU*6gy@nGqpdM&faDAQHmyH{zhU;o)`_2oTlZ=Y+B zFWb9oX?x|NdqOrsVv+w>yLZeBd~>_iK;_@Apt5zf8-%kAer*oi#H@Yj@7=JQ{qIj1 zDcpFUk|~_d^PWMFYg(aCV*9G?lh5gYT&>n{{dq%C{43jy>*sXx9BSq_sN4E^)h&<R zWznMd-`w$D{{8H>y?-Z^zFns&^Wm9IfiJfQi=xKEJ8F+Kczijf+cqy#R8q0=n7vKI zZHZwpzZKhD@4t(DzEoY&-d?}%%@J>g{F%R_PPyHxn4&Xh{<^z7eoq#@-j(<Dk~l;9 za{FYT>`Gg!vVIp0v5l6wS}m=AX9n4A+H~ce*YS_m5#{@z*i<QpAK2J0cf8xp#!N-c zA<$`u+Kr+cGYUl}W%wsQ(#Wyhp1E(E$+pmp<K>?eJ08ABoqU?Jv+{|mLy{D)3g1MJ zq}P9^uR8fUHgQ_aU7?}`&ZQF0nY(WNzZ%t3b5tYkWWogTPdDAHKMEHG&p!9YoI6jA zU*f2Zq4qS-9*GaEFM2ur-5xP7ycf1f@7Kx1GhuHg_#d{fdZci7<IGE$s}H#z;8R*4 zD5NN>#Bi$RTE?119Y=FE+$_7gSubS46HC{~HXawPrsm}WH5G~u&UZ}ie%&;i@wDQz z3BCu<T_|lzZK+>-@V#7G@f%&`HVv`q3*W8YUwZUp$lM0TGOKw}W}kOIJpJvaX>F)k zGlRp=x%cyCH>UmE<Ujk}@@=+LmTi`vb?fa`j=f82EftTxU|^jh%31%3;rAxH!U|4z zm+MFR-OQKxo-5?5c@)?f!zW!}ux~p1UdQ^bGQ&qPf8?KEI;oy;*zen`-$LufGk?E7 z`Kxix+tk?8Gb<*SnsEH?4T%hu{?xSZ?g_j1tKROLzH5!_&x+62t*bqLCa1kW9OGF& zU2L26ilTDqu(if#U)}1v7P&6_-|Fh@X!BpI(wE+Omw#q$@xF-<_FmuGt2d#<Myy!a zw)CR3ZTUiZ(@E(;HAbS>e%tL<m~)0x-Bx){VT;G1w2-<h8A?9iQ)+kjuU~)NN?7>l zoK<@{1eYeSVC(kXIW^|;@)Peuyp9`kyDTa^<LtNfjb7`-yUl&qo#uMIt&D3dT`8yQ zcK2%Eu2uh~>RvpMUtzg5t4`#oS##ZT6Gyp~KYn)fbVy$4P5YF$`QP`3n-lVHcgb#N zjX5AMB58O`<ZJ=A%>8>R`&wFR`dWgo&KH^xaKPu-%@?12-j*_1{WzW&6E18y=lAl* zhJP;oJt2Sh!*5ANDR-a6Npl+48CNXIIPtFf?&bYoKexrKKfHh0vK!m42c_SeA0Vml zkNMWz3FX)dJu~DXE@%_P(9je*giLq{>uki?{KXa``=76OxWz5==+?3Lkkz(pcFAVu zSx=6Rb`^<fn&iNhvitM>_r_+L0ba&)&t>ri_Uyk`z5jden^d`PcDny!boJIbKh+fB z6s%g!?w_=z<wJ_gM1^}=U-SM5w3<W&t^9MmM1KADv&$|OW~J{lyK0#E=0|rO2gkS4 zrQI&<rzZ%x)rzr|uRh<sKdk#WE90yi%IZ>Himo%KzY#Ytzu}$uc5{26gy#E|cXxi5 z;1^6+>?yx@{pfw}H$RSb6d9Y;&lM?h;&K#t*XbzWY7-&UvoXGWPViItM-IOtH-zjn zyAu~9{LHmLQuJ-Aj9_X-{`#FqEllip7dlK0XxaG2Y+J(9r&c@n?|CD*BHG5vQEy$Q z{NJUM9K0(T<bqsocJmdoEsyGWe0QDCBRA_WvoHCod+xkHU31Nj)?Vo=8+Kou`u9ZA zjPl2^apuz|Gfq+N+^{``#qbQfK$l{RSjRqz7)75G3>{wfa;0~D7O3^qx(2T}I5Tns zhpI-3^M*5(+KK&(CN>wTgru0SwW_#eWcjZ2;t}6Cv9ec+92?`qWczkH%cZcc+*!Zr z+j53|N!w?=WNKi2Tz~DXbLczwQyapYxz1i(zURanlL+CvFHbkFkQ4OK;@s4laPnMJ zzUI^B*lTlFo%wlH+@gH*lb9c#t9aMeGqu)kk(^h#GJnJE4uL$w(vq1@b2is8WQ5vv zF>DcMT+z$0iJQUsY~jVv8UgMa0@J_!y8lV(rtIZ&Up?}bckFK|c#!kBe0OreRF_F} zdyaofWtF>oMCHh=$)5i{&Uz`_qtf5f%H*yg@}P%@p+jbKc%g7~;`-vf-mfRxsqt<- zyd}R$zvQJ!xcn!k8k+?-?ysBM?w7gqYvT6&N$ku<oPrM@+8j&~4*#6eRk8lK`q@9c zg5`&Q_NmNPuhe;EqiyBB()`$MiErskr`8o&{F|`g{o+~6<vmRF?_J24{GR#I>rXdo z6t2c{PE4D&=45)Ing68Pe4Z@l*4{~#o7*C4uH?(t^sTA<{Nv+^{bzy&?OUf?84A`c zzWmtl{4?3|H#%l<PkPnXZO^to{U`XBjF=1;=dxd{$F*Nc8>$ITeyAzNG&hrBx|f2- zT>GO9^Lbj9istS1>v~q}_EoB4Syp6z36I~Td8awp-R7;HTOK9MQP*ubFF@?*gcCP@ zPq}LE*1czD*CvN)5|?Uq(p2S_yjUp7FQG1RX;R0rIsG?MG+tfbH;1Q^<-;N~*Z*7^ zb}}UspShOl^)OHNQs1F8!}-~=bO)Do#U{J<3-K(AxVqZ<52-i(n*DDDV<4Mr&6n&2 zlc%-*tDifeV1?bu-v%{{YeZ#c#arsc`)c-gXg^zDBK+L?E!R)&SoP4l4C{q6-?Yc> z7w!GM_TT0MwUK#mGqSZp*77gUdoFO>Epz=s{k7)>So}RMY*o(XeRo5COHqD_jsDTV zzqkE4O0QPTc8QsMIsEO@)a_M#DXZ=;Wm!M{LvX+9oiF<LKZjhheaqppG-0p1AX_ZQ zpRH?ZjA~yOpRdZV_?dP*eCbPt|9_`RYShH`SpMO+yBKg3TY+YQr4?sxMEnt)YY`XX z96Ho>&tckJlbI*i3BSM8<9@K~qJ(pf%iS-pwHrNh`X61}@|acVnyuCIeLFxm;*?*U zURhG=Z9L&%3<uXUeFawoVWuUPjZDoyg=~)XsQQ1dcHnI0Sbl9?eYJA0PnycvN9>zl zb6tLWWy9XguDr!r%Ds76>5{c`-EVV5JF|TF%^JyOe8^#Ar`&vjh+F^PF*cc;Kd{e! zCu2|W3CXRmxolkSD?Ra4_Sg}<>$rv@uZMudqCn=>DGtBA(<Br{#66{^7o~Gf*14x= zUbNBdso%+`UrTk(UkP?EpZBxk=~Z3J5+NpIZudy52J6X=)t`-Qd{-W8b(Y=GmodL! zTL;g<5|=L}E0^ECx;E}=mgR@s)5naCE14<&JDOe2SX#bIJxcw?z0H+jyA%IU3J@`` z+pJ$2*f#ZR_RVd+3zr7g?Z3Wk&Z?Qd7uHM{_pno0r_bSA<}#T*^Oe<!^Dla{tc)k7 zL~DM1HTPZPue1FvA0oo$&U%$4cqPE}tCq?mYp0M~yCP#17H^N-+BoIc_Cp?XA9_At zbf=8lXxs96zvHqt-zdu}xR^QnMB*&D`SsUd@oaxya?aq{grskkSH5v>yLizq?7hme z6=!Sa+}d}MZ=>O+Sp7fUakHOJik4B5@tfzAG`HDqkw6iH%eRt%{m%CK@`fHqI{%b9 z1>7+gkh{L>Q)5|xvz&DJAsf3t5iHinm#|pso&PiG(;MfjZ?1JO`nOt2^k4@6&fJN6 z?s#pt`{8=I_rP@RgBk+0?Rz!aZ`)75Y&_#y@xSHs9;Y0;@p|LIAAJ^FDf;E|c}BL? zYgt!rbw1u)f5*0cYta?+PdrLeE?fb^en;nXbsw~`UXUL-M_V=Nxt81c5~19!8IdpJ z54&95ubsMgP0mVLruJhx^KNOro}`#Phl5pR<=Xt^ZN?`oH~VX}`2V#IU47U6s@?8G z_0q@fuRp8bw>D-*a_Ib^KfF(F&H0KgpBN%<hQ>FyWo`yPVadqY$b{H~68A>M=F9Hn zt^K}!#_?~i;YzMuOiircm@~Pz97vknp4)t22LIW-4ZFXsd%Wd#{e9<~<{U!G7w^V= zKe(;!@I#qEk;)Z?UY7oaLhDQtrvz;~xhnqilpCy0!CJAC)EDVp?A+p=@@UHPHG%5W zx}v3)%Y1Hq5|PMfWqE2!qPNk-B|8o%_^Y~xA9FauUXfnnx$xws*AMnx)w{T|X!??s zQF}a2D)e1(br9>$o_Ux_=)?_1E0N8bfp3iNEPZ3-V-)B<`9oY<@yw)@*tS5m-3O8l zW_eGas_ALeKGz`VP{+dMk+E#Hr~mOat(kRysnJB`11Hpy^z2p%dlsFMd1!4|(Q(=3 zSYB)9qZxm4&lIfqA>456&A;!O2Rd#u^OU_mc%M~Shw)ul#lG`%YOma%{rE^%s0Yj9 zHFm{^Y$8_QK5Vn2;QHr@rIKQoR-A4)>NWjfoNp|fc4#bHjpZ>t<{phVpARq{e>Fo? zd66CeovAPGonS4v`B8DhrmvAq0qd^5=Tg$2`b7Cp(*83Y<`er|7sM?3?Uis~SGk~m z$F_eheqKB61J%yf_8w82+Q-^=A?VI-4$rku{2y!-S{;4NNKETr%cqb8uJ;#=M0-!B zzg)a;U&ql!S5rTPYSwNoSS;ebkIPK-bF2FG&361PMJreC-=4JOrQR2TdtF}-^yqY* zZn&9LYRj@=>7Ds!C1$#JzD$`D)26XaZU#&6wBKhwDowtT+BC65vaBy;Z^fr4k3O9J z!t~p3<J$eR`R@P!96zJfpmlc_+nMjL&Yrj5zvsuJ?*7+ld`;i`G>?l&M6^wD)lD$w z(VE;Q!alWlX#&S)!_<TEYrf1V(pq?7!Rr|e%+W<YmW3-)FO*I(xlz5#fBpKr<?8;+ z4hQ>7%IW`Ix%`dhp;LcFf9{?4@-J63`@_mT(`}}`zFTZi_2b*Ks@iLL%f&B0yq!PK zul@Pk@3&vR{XOsh_v>xapZVWD`e1tR?z+7A>bB(ie~&)IR@eT0mX^Ezy;0iqzl(F% zKU=@9etw*bzG)~^V!G0r=Bv{y?$<CYuhWnHAFI9~V^3+*wRbGe8$zEP=C}Q}?$h4m zUY?3Uav^=D1=9>ub%mDj9l9XH{O!*SBcX^3Q`n}8ehfanz(_SgZcEPtPO}V&R&5WN z61MA7r&gp+6S~2sXj~W|ds)@n!?}5)<4zXGnR3B>Qm<b8TKJ3gxkvJ;l!!Nu=HGME z=FisoSK##EQ=(JCPiM}DAD&*lYTC1JM{*3`YT<Ri9WD9ZSgiQYY^POh#rMME#m`rN zBfp5p%FNpvnfLqa{rK3wC51m;{YuL=m(8xJ{PFr>e*60PC3O!kM?ah~%ULr)(TlN? z@y^A^0yWzMR#-Z}J^k)$`sIiE*Uzt4UvqPQ-R-)W`ug#)ckjjA>aQ=epU>*~X;WK} z&c)R_6{}kO^a2iKJz}4@XW!n+&G+s--nnm2%=FWhk&af^cAW7w&s5OzUhVC3c1qNp zX>WTPG}#W?o#|-macNt|yprXL&a(hje&xK>-eTw30^fHYEj4wBRel*I=DGTkq+q&Z zoml$jgLjUzExBRiXRooW@JMfYwAU>MmFQWG;X$XRbuD#u^<MUL2y;n)T_m6Mv98Z{ z>+>MyjGyX^`~UIR)mbRZl*`QO+FoG8xL~@>(c+SXk0;ig7V;HSjN-1kTDeeZDc7Ng zbNHsnoUo3)c;H3ng_b5y>-<BdvTQQZONBnK+Vw2=_H_~C4?^#C^<z@1TSUM6Jb4>q zxcpzn$_W!*Om4`(m7jm>^=;!v2QMx9Ud_$UY20+U_mQQQ!BgIuCxdQX-1LsOH_ON5 zwVU;NU*-MWJFdH46aJz6n)A;`#ngoY@+qAB8rn{rmiYmae-2BZS4<6@;QMdNQx(mM z^E{_SPAl+)gr)3rl+ZE#@$l%3O~%qvTYMBw1m*-t-n(F9;mFiu^y+y?@(1H7hN%Y@ zTzu;HLP5CyWthw6kICO!cD!o0efgPV;j8wRfY0f|PUpV&=*d?m*nK)s^Q5r|h7KJ+ zc(Lz9VL{4_qAfb^r;E0%aX(!JB7RBm1Z%PDz0`Bs5LNdnNr_+WLTUDYJN@k`rCx1$ z{I-(Uj;~I7$-ejK_8aP(fB0{=zqh4w_ndHt?W`|%uk~K@;?{*JvzA1@IyB+@^EJ(U z7bom2O8BV!_Lg*E3-6|UsrHzR%+pb($F`oEwk>w6+q!LwPkLND$9a>Rxh%`iFr;*o z+rbTojc1joNw@Qu=P&)ZOaFCH#q-*kt`FixE0XSg`7=SX^QM5nz0xnu^(KlDHwsUz zRlQ)oMXu8Gwpn;K?~%HD2Pa0}j%0p3?}+gUYcIn+J+mGie|5rk#ly!FzO(l1HC^1g zSoih3H5a44^Ty?E(M|tq<W>5V^SAwvhgD1q1?|6@U+4?ovxnQ`dDG49yOjI3=1!~7 zEOx28yDjWI`%k;<jS(MoUUl$>wu+`sd!k(XvFh*X^`CV&U4N>x`N`VtuBZ1%K5dh2 zpKxMHwOh;l%^RIPQ`^g1x>IKN*mHe%WKUl*yOy#1&a)P`b7e~wx=H?Aytepak>3dx z{@>e`c6o~}V1AM~SMy1Te?v_8mj!!tst+EUoO{gw+14Yq*{b=UIIQ(0n;6%Muq&oF zEa<LknjHDOcG)T8q~y&`D|L3cg-lC|zLRSE{Ft_eQs$!-Cqysp7XSa_u&1+^`jf6w z=QEd1?YZ2Pwm~61XqEMjHSe-gEz9qoUT{j}7rRcG7|#ho#oDgv#!XG7cfW55(yO?` zC9Ktb_IB8_&EIa!V(NMoeZpl${R>h5mOmVJUy?cB@dlT~Ecp9zO6c~p(`sW)-hb9I zp1yS9vBbN|N)>Z8?U|D7r+whxt&sET{=Dvbb1OyZEjO~xWa}>3xBZ&#r>41Emz3UR zo%%yiVet;Z<<?EdW-vOhdEBwmbIP{GMlY_J9Z6IDaB>f~3{T&*^U<mT-1&mSLgDZJ z3l$1I;qTK5@v~S}5&m<syC}b=@{HHb@%HjTY{H_?3{zPr8cBw@J#v;-Za%ePj{Dw+ z>78Nrrj8RXKj6`__Lu#_wvpA-WZ4{%+F86wesN5d0XMTR{GQ)*?AO2Y-9P^yo}O6! zz<I*S^m@r{!G7P~Oqpz3{Ue26_xpk(r-Mq;!Pl6?zT`Fh;eWVD`ZktUn5hAl;TKDD zBS<4lf$;Fl-f-}R0egRkzv$o(`=a|{<K$(=d$)eoeQUsyGTTs|^TDyd-=|I}IG|Q| z=hD2M#I3*YUCt_RJ;0{$A@f_J>F%A2?LH(bu&}N+oxt(Si9u38!yrQS!M(*3F8yrs zxL@t{N#l(CDNEOT2lxHD7V>+?#`E!4tNJD`*9tw7^)LCWq=B2_^pN9OwuX84&e^R? z^EX}-uhh`bSS$alrO{&k-Tw{>7w_9Kvt&MKetyk}y(c^UjK%2#+iy;nEK(6rxnnbH ze%~aSg(?Ovwtg%^9VcrV1)bueOzsQ1v)wx@o2GDKb*I7Vosq6qZ1)8hUCWSQQp$as z6E(H$?6#o5O)=}_Lnkgd>bCoMl-i?ewSc=Pm;F!AyxS6;Ya=APnW0D~hU0v~gYOEj z9NeDy&7W<3>Hb63gDge%4BTFdVrSNEDtK#Wb>!Q5Gp$KJq1PTeyc8DT(2;1{r{B(X z`Tv3f)8luvAKOov!KGok@U+n5a_^pIhEoleoj+$BNnP`*%4q7%{o$6H+@`BGlwN+` zFL?R*ydFy_M>U?#grL8it_Bm<r|)=Jq_*ecG>(o5s|8oDeYNIs?Yb_ttV^3VtiQI5 zW!lugmvb)PvdeV+;#TlJLTJ8kn%leAZlYF`)=dapEHj}r^x0hDtL1Z3mqz}oIU}%^ z`{b1(2kC^lyY@XisgQW6)0sm);-*z}Zp^{ItFGVGw-EOe+#wq^KYji>amHhJ(zbQ4 zcrCPO(|v_of2_+m4&CB&tdecI!KYZw`{?Wn4lg;5>0d(L>wU`Ib9+VSn*F;&Qax)A zm6@no-TBLF7kuhvko_{(uw%tddtz@`bPMvH-BwbzSc0d(M^Q0pSHtb+8!TJibDvh{ zjoxeiMs=HV`w=;{zeV4-g#Whu7IMQ}dgUz-hn{n<ZgMnEc9}52^O~--n_T+V12=dK zA5|6Qb5)(_a?bGcUUa7Me`U~lwv@95%h(t0e_SQOeI>b5;K;5t{|&8quWzIZmZ<TE z{fo8oXIZt2>q^Ma3%yqp<MQ>U=XZbJFFLoZZq~AAbMh`Fm{jvNn#{a3#Zyx1bLQ&v z){HOK7!-fBXSlFr=c-?I@skhSh`neUUuAlg`LXxvwi~9eqp!MTUh7lZHT~Wyt96%- zmmRB2-sW_8rPg&hHt|F4o9^6PKKG>9Qn`L*pZ=fwg4Unib$DO?hSLk!_wC-eb?tpc z`7`O_ELQ1<e&6eVRC0XrTG_lBNgwmmso#Hc?R;c(ez#=N7n|O@y*sajKhDlOc6V!> zgOcx)$FegDHCj%e_fM0mo#`UaGcEqx&ue)v*7sgK6ns?k(Ea5)kFZ_IXli7NxxCkm zgv))mhWUc#hxdNgu2E^<@$b+Kx$wIouX3;6*(JK@pl2Yn$^(-x_t*1UNV}_e1ymn8 zIB({6xqLOZ1Xh8HFLh`4?v@mFIM7kd^~_s9NyCCY(M92S!n`K&`5#Zd{=*q?Na4`J zzU=#UDq1srJT?BLhrSid3P1Vox%18&Pd5d0o;r2NrE354d)E$I2{6`ZD6ojMG`haq zyGLoltG((C3cV~hwyPH(VB%tS`&z|2Z?C=FD@SDyrp+e&-ik7yBX6cLw@z_lI+@ZX z=v24&WLN3V84nKp@0fbbw`ITYXO(mJPjM#J71#gY*B>f;+gX>N`$3*tpQ>|$7v~b4 zH(o23T|U?%l;SLVM!lhwsVyNx_)Ek~--y+L5v%hLozl5>jZ5~}UdG@s`P*~voZNB$ z;?MVKGa5bARqm)9VR3F^%3i&n<Knw1zkL;z+KtuU@VDv-&QDTOSg2Pk+gY-NEk7lD zYR1Jl{pNxcju=TRspA?<3!^!r<<9QPNII-Kwe8UJ2CG|#=RDRv@-Y2Krcd6Tr~4N0 zw#SsuQ$Dxs443L^Ke5m<|GB+N|Ba)+oSipI)8LZHpQg-5kEg3oDT%(7tbFUz&u7bg zcE8G!6}+obTI+K0rnHagDZ6zF4?P@L1vZ7;SNHhp+|+UV*GY{<cW)l4+$)tKEaupA zWTxFk5xp`FF2!RLS1(xmylcYgU4CJU(>+T5-iS}%x-0Y5=XH}hrLDimZjj)O*w*@0 zZ}OLz@2iY-AB!FNn)kPVXN;BAb@tb+b(2=EiP(9s=Cyk0+Vv{QwH+VNnw0wIrA+*1 zadv58!cG5|Ue{)CTCp^^;Keu5mS3MrPv1QqCt|6hn4W9S%EQKZ+5a#9Rq5A(Vw=3C z_*B2_-M;V5+6}o=*G~<+H2tXNk$R8AbMIiQ3$Y&a1Us;jh`Mksd^Lp5TUNfpzlR*Q z+&Zi^+iP#`?C5A$mOCPx9^6a%>-RVJ276>)+EV@K;m0%P_iK#J9J5_6?EGB)aL(Dv z4ksDUlNTTHv9h!WEmBB|2-@OtaqDSA@p~<-3xCfL`?yJC+R9bJpP#Q<xy>{Ap8nOj z?wzZ(Le);qF7RS4b$xJGPj8Mr_w$Pj1tu%(>K1IXNMTZKEw1$r;K~;7NRVrN5g9G! z@k8c!)8XpAb#wOfy(|zu^XJ>v+8a7e6LnOME}71DoG191uZH50wYnu@yL`h|WX()3 z{hlinn`@(XXZp(!{ns`+4Vx`rZ+5%TV(epKys&4ln(ObDxobIvC5kSKbyufeyX?D3 zH{|9K-))*_*IV}smtTIH|8DcGJ&bV<?{-`7n{WH0YxmWyT8b(c<ju9-{t20V$SSb* zdgZ>%?RM!;Z~fV)*zz>X>V!aGXS2bDPS-^C-))BV38`FBYj>ZDJGAe0=lj#<Y>E%K z_sQo;h4@eJa}x0SJMDBQuMU&WpAG9BW4GH1Zkoq2Q!p{X)MCvH{XiDc<V#^^+AR+K z_&;%~=RV)B(>7Z!we_Bmz>unZ?8EYn5<j>K6qK?TJPgf>oxSAy9M6uI+}XcRE66Nt zZirOjmDM>gC*VPIV&1p2kJQXwo->}h{A--2n`&0%Ri!2JQ#NbgE7}<pRHCiSdaY>9 zq|`afu4cTM7FXqAzSm)nEFa6GCm*Y3uKrZ8;>GWUtA1&!-tQ~w*|{a}AAj+2rmZh8 zES`IP`mDD$%S5-ow(;40Z}v*Hb49iZ4mHLv4ro<hnEd+l;f(>V)^`&0_RM-2e1xCB zEN!cA?lGAkTa7>DD*Q^gQ?n@Zga=>QyVuiR3Q6$XS9aO!pYfpfcwqR<dzMLQS4*P8 z-`>c*&E^(Tb*eEae_QCKvme5&R;{y7N_^mapwMd(qtCTw&c6ms!R9gwHTR3#9cQ`O zGDcW19P4Ld{<Y%wI#>Q?rd3k{Z%=0bw9)D^<Aa^2X6ZAFxpU`P{k@WO_@0_}wRn@` zQETyJaV`6X-&ZuRYgYfAJcBjpi=N-1<3e&$=PIi=SL_a5W3%n`otc*R;;-upznd4q z@X&tSi>mwBvY;iFyMGLg%#9)KQNqp9qmj}1k1Ry$o`<{Kny$dRZvD=X)l+w6SzpRX zUvkdil2>l((oW96$qYNU%>DWGwf7|_DK3#y`y33uSw8=L?&vqpElJ!_^V#eB+0~~X z*=+N`ns4JV;nS@Lie*lJH7uB5+P5ZqcGcnAAH};9xD<+>TG>{~g&Ztsi9P=>P_#7S zYO8_$`SirOoqM=erA%8rwYmFaf}ul^;+6}Wna(rIEeo5$yDopB=*j>4A_N5PZ<hOd z=FFlV2Di={zqRtss~K~8+8B(#uGkmFk;l)%&Uhn9p&_7wQMyl{<-)T+eik9Ox^1fk zQyI@2$#ojp*y^@%+<fZXvgPU8Q<J^-_y}!ryTLf+ms^FRS0Il&%PoHAGdY5iN?VwI z)=m#uniinvY`36eX6ob2!x38!&5)bLvvf;jVqM7PB_{r<s_g=sRqv-gDAcHDJ-dJ7 ziKVg}w;ZqDGSEzm)OOM7_PabY>eq}X8zuKO3M_wA!n&<h=0Vju7w^XBLdoBFkL8qJ z``Tf6{6j>?j*y~*S9~H1r+yPYbilo<sWWA<pugaO4!i1AUnfo5vBFii!s4|0u~@ZR zXFiu3O77aG;Ud@7w|_?R&r9()GXJ<P;dMJG?<u#ebcy(!7^N*H{%mu!nKyKPus_=) z>Zw<-^!jYh%%bJKBL1Hv10_$$cG@xXxxQ`Me{B*|<LR2?6Ar~R*!a(S!*Jrx)SSsP z^o1w7J>|M(8hC5d>g2wCZ}-f4kQVVYL(u%>uUP+phZ{W>EkEb<TjcUpMbQTmC!97e z-?XV}Dc9F*rRprMk0sHeznf;M7Z>V8cy4^4WG`kEYPoY&=$UiLasQsxZv1pE;G@|O z{n^X+Oqse_?>7Vg#J_%R<rkz|6vcxsAN+C8@q0{@TiKDrFaIt~I(_@l&2nd+xAC7B z==8T#t}E9KY`rY|sLFqdzSdzU7td0a6{$y`e-}NUHqk;TAd;mrmP@an;Yoy{PUtIz zRqEDaJ<clc{zt4X`88#KeEw4T=w)TveeDcU?iW7>g=Vjr<RfzYTl$RfJ+r=LP5o1s zz+-OSs1i2SX;oFM&WYm-#Vq}cG7lE+iC*ROXGiucnY`mSYqwjsG=Kg3CUMcWGC5WE z+Zk7vPIlToNpWwk%iB&fi)-hk+=Az^`tL1Y-uzMB|EG<g`D;b?3yaNiihJKzy>?ER znz=FXyjsMGn@)kM!FzA<`^Tvj-Yavw6e*X#<KDHGbq7kGr%!V+pKx#)zr*xj3^%4K zMcihOu*xWX`|{4iSclkKdb7`z^2U5vqElfyyZo&|u1wn$URxH41($8S>}NjT>v<_4 zLOs&Gh3WeD?Vl&#alK~9##r6Bk2`subDZI_bF)7ygtY#NtL?};D=FAhbwXLf{K?Ay z(VsXDmYtuo^~uYvwoftxmk2KX_Q7pd%25p;*L_CEeH`?KPesT%*u8xB$iv8O!mIBJ z4>m75zT=KT&F$^0CSJ|il6og|*;<QZUl~7pUN@B04|q_0K6kxQp7Of0ljQ1!*#wHW z33T7K{M2$&xV9tVf#9ClYi*YoRLq`kbHXKlUhMkVwD`I8wvR8(4!75@i~EqD9<Tr7 z`sVuoJAYg&{r~oN+0LnJLMMJuYxuVAvZck_m>u_5hZ-uLH*VK?F1>aC9lfQWPD(wg z%~zeVMy_IdxzJl~5%z@Z3$0uvS$hJ1^2%ri9{#mP>a)IYW%0b6`_op;ss1IpdfxWC zI}JRA|1%2+ewD>il$ux&J->pqcgWb>gxI3?Y*aMp28+7y>n-}<cDo5d=2x1wutp_p zJn4K}!Qh;0dilj8@2vbL{`*~b#bxDWA0bOw=Gu*xGIFnkJwGloR`i<r=ZNOzDVIc) z{$+1G|HC1r$EJ17v4@&&k27X0GU@XXk!n|ebnImCrxHfL#$CrQYKl%iD8KAjV^!`P z8&8wIU!EKEIOY|d5Z?UUlUbVGU{Ax;uH(vfF%4V|)1>wN8ZD(*TX$+|S1hWy9L8`% z{kD&wL;o`VY&Wgm<-t$xRHSy@3`>5muJB!a!6BD8DSbbYV1q6-FZZ22f6XM+)K%K9 zXyn>NC?7v|c(bK>+)NMW$Bx}zJ3Ny1JYv0ns3U|&vzj$Edcg&sl?##>QpJ>W6j^Vp zKE5e(Chg7TDM`jrEUvurV*Z-HxNQ>aGJbQ^d3|G#Yh684nt#?&bGfj|S1JUjNJ>}F z6%gxfSKnkNC!it5#J_r_$Qs56A3PsFynTqZh$rKoxtv*U90R{XZKh2?V~@H)&V^%# zw<YD+=tvenKBywX^+!;*>c}_mXHnHXiQ-~iZV&y%HpjO-OKLoBFuCQ%n;^AD<F}D4 zvn*Lf{FRdC9Za6I_lA^MTaFs1o9JgAADvr!_|>~t$vFFS-P~NTUF3*>hReEkrW2_F zmnv8<%1HS;8XgYoxGYoq_~GptK758VlMUlO1usi0%+a1aSHw(L?9+o*&wevsizSY^ z`4*eK$|NLLiHPm4`10b>hr?fZ8r3Xr*!#Bc|M&L2!;_E=j6v-ZyQ=;^I{LXgf8WnN zYtpBmUSQB|QBmeIZP959bLT@AkItQ5VIZz<F+2H?<6Nb%_Ljn=xgQjGWQ3M;%rSiE z&{rv7?APjif}czM{e+!tt+fT5g(fO8D%RHK$%g`EpE^pY?)<Uv&EwarZ@;{__~i$Q z;~kS;eO!6mBIC!D`*mI4Wc?0*oUE$OUw>15h2@`$;=Oh&w_o1;^21~P{^f@+|9Vzd zwf)fL`v03Bb^m-`Rro`0_0`q4!>2_`@9RG7|MlwE*R!|ovr4;t?6>#by1Dyz*BRS> z4zuHC-tKck#P4+R8uR-OoI;|0(Ubpwd-Y1nYrd@atb<viZ*>K&1g#zCR;ZtuJHhXX zUxxari5slGP2-r`G1nsNU&4Fddq*FheEoD=?Z40K!~gHFs41`Ae0BCV=l_2`96vmt z@4h|v+h)nsR?CO$bEaB!Y%c1b_3lVth0nTxmK)p87W*$dEWd7kod1X4@AK++uKZlK za{r%uHpOBh9*@>-*m=kLwLBAZ*y;)QM5j(Rh`W1lPh5We?YMK(r|VCDZ9cu&EluBQ zz2b#u#zkctm+XHlvwe>%-}B?%vtnN-PKj|iu}El#4cGPRTa}J?r$$^?kzVj=o$9Bk zX-BfF7<QbnyXa@~AZnJXtJxxxj_qe|`*5G#bH3U%IQZ@b=iH_1Y}OZA%g0>_7r&^s zU}u5Fdc!X6Yo$*gTxjo|Rj#*ZMSEwq+q3niKYh1ec*i__#xvtt<|0orwWVLN{J)sH z*kEhlt%YxY^V~DnUw1Di&g??;-|Lcs3vX%eTGppgbwu;m1byXQ*#}R|nzoB|X5=(4 z?T^O_J6~^N@xL8*zC--0$JvKR`2KCvInZWzu&+`;w=W=V?FZ{nUB&B5&lEeYf3yAO z;;&T<TMTz4IE#Aa9}#dCnG+y!BziN~t^EDdbX{*gi@3JuUF!KchgMnII@DBE$Om^E zSfk<H@=x>U`P9{HUp_ruJ^y^Bby-UH{-cx59yMxsy4Pj@v@N>aZ0n3(8-?#r7fDt5 zX*s3$P}#pTl7Z^nY^xj0j^Fa=>G1GuE@-~rT;!m}<uNz&d)>9(tcizC)h#qW^z@F^ z=M@*XdP*ADKI@8T%1su~|246aGe&i}t)6Rb@2uiAsi{$$KQTWL-Esd?2zOV<pU%oG zk+lYIGu}^pDd@Xpanux<X{|2P_P#2M+tOqu5}6Qs`t#9^cWo7xU7XfC?>Ce8G*(+L zv7YbJZ?hwkxUOxVvUb|;inXV=t)5aIyKTy~RBa=_lj^^|e{Z?J?TKXS<@r*|eq6>T z)lwpE)z6xHIK7VrY9$8DD7cp*uz7}Q#s#T2-Q9~9&DdX3P_21W!a|KZfA@jruI2^X zb(-Zi{)_dN6Fzq4vGb2vk#FCXeEaw0+ttlc^Ebacmo;%;R@m;{Z)dzKta!&&|M9~d zp)?Z~Lq0C{AEvKnY*4uRBk^HNvS;&*x6@Yia2XrLT1Y-!-lAzG8}jF5^rFd!Vq*M^ zG<wc0@{kk$_eA%i=R^OyLUTphwlk*sSUh{7!hdK(^dgmJ1G`G^60aYVx4Wpf8ZNnc z_RWM3|F7x_F6}qwKU$qCx8;reJ)xUVzkNKU_HFj;8P*HuzW8qYME*gL`-M=}>feW- zXehKVIO(;#`i(X3smS-GNoC)n4($3Z7I1Rr?gY;8M-GR-Tzd8>e6^|X>s2jnBDzU8 zFU)z?^0Dq{gZ{)z`{v7U^4ECIb>iN}y~{XH)M(ye-lTSFQQ#x1>bsMdn0}6$dU>Bh z+T)_K6Vse?Pw;0vtVzsaEY&+{tB_wEv3>5+3G0n>=NKK^YMSDsvuo{?^ZYlhUL;2- z1Zx|8J+b5e{S^tmCl`P1FI9~)oUOBP)tlKX;>9Z&_9&gZx4u+(dCw!wr*adfi+G($ zRaCiVsk5^!_nz62twpL|F3Xqxcln-?@Q$l~W22>N4lmE;85=luMND)|+&0N<#mvA5 zmsdPXnNjL9t;j9iWW|kj^EdHC^*R06G4tP)4OhP(X*N(=xw*<jMW$<)#j9M4^Mbrd z+k_RC-&30>r1$0HitnahWzD>T?)l1oOZ)zI_oVgfz8x<&dmsK=dD{P#w}RJy>$I9^ zb#U$kzb|eIUqPthcengIuASTY@0b=}KND+Qeip*mTypl3srPlASX9RIb(ZC4cV?f9 zEq*tv`1+jP&+eFlg>IQ<Utbfux$NxUTp8{8o7=e*cYW&?&StoA?^AX9e)9zGkB#@9 zZomGubnl*+_3OW#wtRZRTTiL_ZgK4PT_61<%(|u>egAZh`AgX{Es56*)@^0g44*Cb z$!DyqzLfiTm#%B6r|Fv1^~O$%-Z^e-XYf5?7#6p9+fR0NHr_RNE?+yTKV{{bC(d`a zx0+?|pD|5!{fVVd857)##M&CyDBOA<b3*gJu}e*?m`cCxTDx<mI<vOzd~$TP|82Y1 zw-W!e$G;L=gQeYOW{mB~6eH;UphS#9%?&%9ciT$f?rUw15@$xy!_(!?ZStMlt*3Y4 z*lrVnl+MDISE+$nkLqfFPI_#?8*)^d_vOPgGY=nDG`zvcvu>}y^!uc<LK7B*iWqL# z$!_T8DbiTs8t8Ih8N>DoiekSQdxdxCztXwepCpob&+L2Ir?eNxYc_l<FMKb|<ElR^ z<_F{9mf#cN|L#6p{XO;ZTiZpKk{tRnC$XqbY2NcK@4bP>mHK!_x16aB?vEpx<%~p% zmc8M+Q*qzs&4OeX=iFE4Lp*pm+zNMe`Du4@99q6q;SoDaGSB)W6Q)kp5Gk3pV&a+K zo1{-|Gb~tcBc5G#il2=!nd9?RUXAuRSMG&r2i9G>`qeu8+4pSzJ8U{n)~~SkO^lJ? z`LlR=zS@+>{5>!8-k7eO*_aly>&&?;NdkN4c)t<0m^}Ni(+i*831$aBDCo5KeQ7*= z_@TM^_3c@=_$}HFJ3c%h@Y7L3IAYd?SxQb9w0Lw~BOhxw@r5a@74G$1&}&t_$xUCx z$#TZqfWtwz@>Q42nYO~?*rep^TlpF^?B==td3sqO?dprR{?yRO?AK|>)}1Jkb3V*1 zI@jAH^pIqiXVD_LS64Rcxte+|KYKjN#QB?-O+DxTWm9s#EVgoY%l%^fG$!ud=|?Z) zRbB-=UcU8L?5kUnYfi1bI$iDwf39}xR@qvfSw7dURQ5EM?&>yun6PwHz+v9bE1r)Q zo=V&F=fIiDy$2SZP<dq_KiBEcvZ&mJtsf-Y_OA(;+WIYs$LOk&<>a+&Vi7eitZM0{ zPa;F7o;}C+?zr0a<LS%t*4}S8qL{Sm>7EH6Cw`f!`;_JAtc8<xmu`;MYG<`g&*Ba{ zdn)Co->Sc<a}KZdH?-mLdnw;xZLrSvdamNVXqMT!O3V4VQ&#TfU9sqm>%W?!Y08f` zpV+lYn0vw9n4R;km|Z<67;U!dDx1CO-d*2Uie2Wo9{y?Dx>9So*+%EprmB9heEDh8 zp_`LV#g$*J)tYuEEY|v~(_K5?*;i9{YOj&L$8A2VHG0Ku)3>u@wd$9jzBN5AlX2DQ z%BHt!Qsr!Ap}WtnGMWCj_`b!i6Zg0OzrT0;rixWMmEK=U!<Pna{THZryPI|Sj9s(O zOf~7qotE7{zbwvVW@G@TZfF1Hm6I;7*&WEME8J)<{rj)a|KH_Vhs3X_c&|A5sYcQ^ zXmRZvz8OI)<?MMg)Lz_|o0+)g-VE<~GcK>Ta5CxpaWZ;RyGGX>hjp&Xzux?a+Zdhp zcJ;Le+czf8A50I~FFE}1JGLxuf@PY;+}sq>6C)zauMLaNpAEfVfIFi%J16hu?Q84i zuFAb7w#0Ucpi%;d)^w4cTVJl9|8dDIa9PV5{RHWnbKh&9-*~Ptfte+*=lsILI$tJ% z11p~k3ZxxyH~3)lz~Asoj=-{nyj>@vTDCVNuq)ku{`<(Q&@)NdO@9x}*|^O=;(n0j z-mFRc7MXTOUc7SH@3D7=jfC0#j)uRF6gUzZWG93it7&vNwf`;?%SjW4{zvDzEc6=J zIse$fV*Ge|qeuqJMr)q->B}CxU-;mrKqeoHka&{CRy8xH6K|ONMA@G?M;*QB>|ZUV z>N__!M&;_R9;?2+?-!Y_y{xgZrnpo;Bjf+`>p#{earkhw9r?I)`8lN%HB*8LX7})Y zR%hG#bYAA^TW`eX%Ie+O(Y#=NueOw#)e+^Tu|m4Kw@uAo?|6Oe!Sfp`zYe;cmfe}Q zG0j(7JW~0-H@9+X^qJZ7=AJobcO-4@M~wirB*BYSEVK8@T+=<<wxXb0d#BUu2m!5^ z*$-|lvzZsT;Vg%I(wAugmo9Bdct0U2a`uv#d6oyeCnr1dDZY=`vM)XG>XH(cCpWK7 zJ~esQotOyWM;6a?LLPQZcKrSOq2tUL;b%u*@a<gDP~wqVp*CHPd)Xtgy5CFIzBr;2 zRQFxvrrX+eFZR#XnZ3_1d7enjKHl%i^ViHO{t$O?^@{fyCG7%|iqiMh7Jk~Rztg(& z^d`?ICfO^01&G~!seZwhZT}9xUplYmEmo?PI=pD5W&WJk4N5}K=Xx<!_8Yi9Y8Fdh zA(Fe!>)3l~<}*jX@5z}~D5)B&UBFw(uWFL#>TtX1XzlrW9Y4FH_X4jjTKidWQpGEq z6>Ih$iNCtw;kFk6M(6*p;O@S-)Gz8|chtJ6eZRL<{9Ic7PyW%rz$31`Hv|9N6*_qH zqC597+trtU2hRPz>e2P|HRj9q=vr2<jdxD*vllyf@$I1<tF}bvr5yg)CFSMm;!}EY z*PnmJcZxQyUtLstFQoV7$`a-mj&G{ZF<dQ_eX)zL-uZm+%_`^YTSc9hw{MLvuU_;c z=aZvWu{$f@NBuJ=7y4k$Sjb}_(9I?02G9+4L}aY3VUX1gpS4XcbDz1=rQ-15&aEY$ zmuGIvJhO$}e6gZJ@-j0EClmSo`-Fr#=PofVTP7~R@%CMHet9GdSHppopY00y{QgKB zDezgzKS{DfphuJS;tYo_$4SjAUpw1>aZ~BK`?_Z4rq|Q9&q*ycHP%-T+A`DRHMiYo zgQA@eLXYj8*k9mqN1%H8N%iN>k7BGNcDgdy@90dHn9PvkonF=Hu<n~3Bg@}Hp1fW9 z(-k;sCD`^w=^r@q^O=IQRg=mU@7mXmF8T}$B^H&cOmMLI<|d)|WZOor**1quD`x11 zb6<NF_vBemc<hh8_nU<`ofBtLp6_7a(bKN{>7qelh_-Odw9?dhm8z|3NA?<@&pmup z<GH<{lIZ!fyKSbf{J6F8EvLa#LkELbwoyJTyoXdytBS8VlW%Sy>Fbhsbmxt>O%YeZ zUpA%o8dNSwIM{P$?bkJvq_16Vd^!E}-o}TH2c`t8JwHF;uXMZBdR7gdzgaJryB4oV z;bQuJO4&>2<k@?(FU+d-5}8r<yFU3y%U3O{N4{1k4CcB<Zb+T`S@y<+)Ig1&Uo_Re zPdhCyBELRjrFK$9$sR9jPq8q;(mC9rK^7&qr{>zrzTdh*^v6$|o6@cucwHYSzPYzy zj=5y^yZ`>@0&geOf6;YyyvC8Q8}s(gnpvOj1-lf~R{q|xQmMLi(nB-8FypHVJI`Dx zJ-2Sl``w|pOspqt6xwsyM{?%u4ZN&#C2yO5Unc^(DOmRVd&$=Uf08OKHR`frYX8<9 z>N~F%Hh<rDf1zUYWwwi21pAB1^Yhnuq<)@o_4lEkZKsxKGX;mQdbgw5?0H;9m!`uy z-yNGD@13l9Pb^idyyI=`JnnnTJsu?<U2vh<J<7Cu%kP)#ZdYY~;!rlNcw<!lWwB6b z&*g;NLmW;XE6=tE#}!UI^{+i|(#<vfuh*5l=kjeiJ>T^Q``cX!PFOO9sU`9T1w0F{ z4Gj#CMg}b`pr`f`F$ohD+kbbPVD0_*gU7$Mp8l!O&eFs1v*9+Au7F8pMz%zo#>C8k z>$7jXHv9YCc5&}zwZdf0ede(@cJJAv{3^r3#<)G{T$B@+<!aVdk9wt+q~vdTAYXJ& zbH)zeWfwa39&8K>&i7Q<_DGj^$<9h`cCAz986rHV>>{=u(0sdAYQ`(OJZ>GgjHx0w z*d4l=W?S?fYLxzY!nJA1Gi7n!LstbE7G|8>;jVdL_hTKgC8zA-cxPqEuV-EQ>~SQQ z)-#R*?^213!hqoYhg33>_aFMuJ*krW*d3vF5BXPY>u=Kcy61k7A+&6_m{(GHfbYVB zqTOB#85V4}5aD^O%X#$M#MNy<ukTG~-t|YWx5?1P$DuFmbN1ASl@BgEy_g*JCpu=~ z?_jf<)w|z6^gG?NkI5mdWWPIS+S#{Szh-Tbu9@xZ`|h`rZb)0PhbF7VS#|#XtDfv# z-?r-HUdHR8q3@I3vga57Srz$hUsKrK-v&hw%bdGBRv!IkSCjputVx^U^lyVA-|G3> zH~r=c=1vd!@~|>H_{-Fmz^J>wy)rz%*|o%PdUZa~MnI6=)zqZyzPRtgw{rS*u4$hO zT;}^5t$TWb>uv3hMN{_rJAMA?5bvt}zV^qpsDs4^mW1~AGW9ce{g&H!ZI*uPq&=++ zimow%x0dh!5urJCuQ;EtOLhL&w0qTiJ4+wzJv)0=;qq6jIUC#JJ{@$qb1i?yl6QMM zx|Zzg<C@c~rlwbYCioL;$1>?DwMkdmSMO$=C&%$^LRPi#`L8c7o_+iL|F5i;+x+o+ zcI@82^Y5F|{rBzv|2r*SzkBE37w?{$#o2j2X!-Kx+xG4IcmMst`BpwJ@4v;h-yd2! zl&!@UorqYcqAR2(@ljmx`G(&HHdP{d_T1a|@BIBo?@pai-Pc$Dp1%J2@AcdFr#Gj^ z@0VMDd~^EiyWKx?3@rrtvX35{mHs*`W!>#-YQ~03zg~aX%%At+ebI)kS36ogrY;hk zr?mCN$~n$+cRq9d?G{uOowIPu7n935PN`y^;x2P_jHXE~QWT3{a?DWi!`7)0+Vh+5 z3O5S|g>P7Ab|@kyJagHezNO#lSZ^#7yyC8VblP7{lcb&Vo$tP~I>l1BK}S~i&lf!x zBjK}K`?VM7i3m=dw?XNL|HI;GHJ7d%MZev%C3l)x>WM44m#6Lair)BWeM40AotKO+ z4zBe$DkxLQ_jT7fw`T5&c@?jD8zQ&0RZfmub47cBSoa~n@<4{TtBXu++pCx#rbf0I z2%QKzIEC5MB}Kvf>f1#spV&;FN6fum+^6CDLBw*^Mavs~A-6U?u@sBsmhM#8nX^FU zX2xE&oPq>H{)r-cr#boc&v;q9K{cGkO*WNh$?Z+1o0-^--+D5!bv>hXpvrlZnTy3$ zG$NCpPIg>$?VyT@(Tv$r3+ry)3NoymcFDnOuT9R%d6@x15@IT+LRIE%R$27!`Mz(q z$8%1+vPp5>utvk}w_5mt9Lp+Q_pn6^7fhLzY%P7Ga$V^SkL*>KqWrVhCT}}-h1K>Y z*By1&MGJVA2Q9kZmBggCW%9jqwP|tU%?}hM_pWbM@l`o~?!odh)*CaEZe0~(k}h3o zQM!4~monKo6XZ6pvAulBqIZf2C&$BkmD=GAx~8)xo9&sW@X^J8*%wYG!*{{Y&9a^S zp0BKRyv5qA5FWQsKu|Am?gsB}Nue;7uT!ROZn53I$H_&vRVwQP>r*YOX?vcgKCA0} z>LE4p_6C`c(*>@tSuklbqf_+j($%va+tw-f@AJK~`l?B9>a?0xCNGB@N6XnZ@F;%y zAQ889-c+{IZ@CUn6`k7FMwgznu)f7HDQdld%8uZY$X(0bb-eR*Z$;)Z$TnB3uv%DT zeUWXc!|S$1T}E98vcem3#iXb3rmmmM(%(4g)fzJo=FqQQlccN|n7`*l^siKWVHGVG zu3#TB^Wt~)Ih$*v8MZghvze(_DN&;I>gpnIX3=k%mn%F|BXjaz?_tUjQH-kDtdpo| zBzHJ_#pHW&5!beyS*vZaG^}Hz;Z1v8k3HGDn9?^dtJM_Z5;~{(Dl*d`uq3DBtzp&7 z1;RDUu1-=~<+<sSsDkm1Sqm#Uw{oz$UGv;J&&AiOWNYcOEjqKenq6UYTB^@6<IcK( zuZmKNoHdWN-0%NN^kB7?z83N;EjZe=z%71a(yX3I94k-nx>mz_gLCJd@^uGlPi~L% zTr_Vg+v!yuyqmUd$c(&}dh1yB%T5pTx#1tSz1Io3KktlaknD!Z;Q{JP51uM`cWu&& zP!7W<E{oN)UuR5SziF;Bo9=<9ju%5(ES4O~ym^~5shl-7{7;0l=+!{`$k^DqOQ-4Y zFMk$twzK@^>)of;3HhDAr#VOZ#D3@FFJ^66GyPT6nk#W7Z>K-m*E7S->C1jLwwvbX zj~Mqgar>`g*2`Sxdz@=s+nyPh!do{fw^*etjlFc+C-Cpt&PVI>KbbX&RdY-$+4SwT z^B$&~SwYS*I-5D?C12c_yJ)WdiyX!%onP+*9@}lKc=^jX;D6J;Wio$V#T2g#6!l(C zIL$x%)^hLtT*udixi4L}@=WHmUd!CtYo!k>4_@-$bb96|*_`Qb7ybI2@PE?1yoB@v zYTZxt=P%%&<0jFXU1#3A=a>4w`a(~O6%OCG8*?z#t3Sv$n)6IR<dnL0Z%FX=lxsU@ zD=~6?T@&TyTzf<_Hb_RxebN5|X(5YRU#chC|KDVvAa}o}^!ulOk$<%hnI=99K0kAt zDyPU1rkyvh`*_sKF;92tiRviII8k<HH-~wB>>P`0WtYw~xxL=C%}rY6*`|}*e0Z8# z+@({*V&zQlc>gQg^ipoi3X4s1@7B!mlzbEYY!>&&Z6cHJ35CCCSbM6d^1{&#n?A)w z{8*iGMS7Nh+McUB)_X_mI<L-Iyy3(o^MIRgmOlAuoBP$XVp4H#!>8i~zn9zpS54^3 z*8CuQG);F;#os?aFaOWX$uxKC>*LHRJ0nras#AJqM~KU<#N;WQl3NN+Sp4qZ@uhj9 z{QbQ<?*IK0F@a<2wf56;&eabm*Z%JOYdzuHVRe-n-M44UpS=Hbd-iLO=3mt@|68K( z)cyLD_cteD+u^s%=iBgYpWmPV?(pUJ>=%}w7JvNgTe5<r{=4{}(*J8s`X`5%ua94s z{9c>CwqD})^waL;_gieY6g3N(`^W`VevO^&KYhByk@LzIn*YkpU0?A3?~KO7xBMmF z@Y<(5=v_XY^TjjHTYoZGlA8D3^*NqiSXsJi-HwD`u9EMM^WSTjq_ywyr~j-+qsr$o zHN1H4p<=F6%g5@q?$mC_+{g0w_Xadyk(qiqWnNub!d%%`mD(#Zc1iThudA^yEvk50 zfBr|T_W#^t5#ks5kIES9%~+(v-mB`mj=gu`7J<&63pRS4aZgOSZ@2dAjE!O*#~0VR zRWfYTI^M&|slT*&veJU&FzbvSs|oy8hs(|XzPM_bd{v`FfOSgFm*DXBp1o<BUso7% z-Kr8{+jD2q-g>5;9+NKod91SV(>~8b=hI>hRNw4Y+w;D7@_e-;Lg`Bq@+Jt{ht8<| z_-CE|dB>vlar+W?1+}eQ7i#_@`O3Q$r$1c3G-=wkl*{slccshalXm?#t5d(c_w0>q znI|)okGbq-vq_0r!{}z4p`)Sn*)h6fk{Wwp${Crb&C2PHyyXQ6t(O*T*L%BNQaSL~ zxub^3tA5{H;C$@S@@=0SC7Mp{-8c2cy)>VB{(OfLJ}1kwC;sSWvXokICF+av#^XH; zJ(tMDs6Wxqd42E#d+Vl`zk^<!S3mnr?9!I+>b}3WEePAEQf-wzQ{J;L)qa-x#6K2A zj#oWO`fNo@)pV0QvU4*v`!_}ErM_)(GWo3f-9}EszImI`jn=<=+UL)2lThDOyh68J zGNk%-Ezi774mX@;L{AHwG3`t8x%KH5`}fWM{Ga#U3fX8ZO?ER=69of>{G=={8yomu zNJCTD&9Q`A<Vz!>^KYAp)O}wsV306j<BW%{;mOh$*2Q)&dU4@ebr!et#Ei%lI+j9L zRepc9-g9!=q8pySk|usp{5kh_d0)%iI|t9rzIpoUn@{;-mV#Z)4VJ5Wg_A^B8-<UF zupWs_JtuyB`RDxA<$R0f4ym-%W_=A+n)I`&ZQ}1plUS`?ZLeRhwt8E(N2pWdmDjsD zd*jZoOJ^}lYX2hcBG|R!`I6l?r{~`|`CxxJpPNqK9BI{^#WwR5?<X7R%{{-l-#Eu1 z*`?NU3jb;+i-k@O0^6(%j?}ma_CDusGA!H8ap2O4z30kK{@V3eHhy{O)=0g}IlJ$v zZs*#*_rs_BsvM;^4f8a<IoFoNPA!l6oV0lU@1*>kkL`5=e<wVDRoU>2`&s3?`1SW* zO`R0J^Tw>VdkmXZ<_5p1n{FSI;lX^@y^Go4f>FvthxE4dFLgey`&{Id?=(lEZ~4KN zd;7g_PRw)?soK~pu(+ne@X|l=zbAw@Zk-k9DZ2aYoW$!9&u+R!WbjO$rqI9XNO(`A zt@@F@k>WRnnI1kUD{gv!Z^nTW^WNJ0(m0WO(?<OD^Y8QPq*OL5couLiJyD@Ok9E^Z z>x1=D%hD6Wawmq{T#h)s>y*4h?cJ&VhFRCYIo{Uz{$InWwA=61QTN4;#cSDbFFECP z<5Ns+&EoU@mS6AeI<YTF{`C@-dx7_UF*1djdTKfcpXRX?P82XR`u=9a&GiRMUw++{ zF?;KZ?*)Pv)h37AWt`JpQNHlFSDN3Qg)@#7<^)QyEV$0tS$Kd$w^7kHi1Wgn4?-V2 zdCu5>x%%p9_tI}oU%gZ-nBOsPFRfm9-QlX`=eym_+*3opn4H|?G;PNcn@?#Ar?f{# zrMvlUjLKzdK7BHG)9vXoY#o+6A3aL*+aj{2&fKwn_m!9k)!#{XmqpJjRh=&O|LfyJ zKYq@bZ|mb=e}2}}^TmI3`fYE#Q(0bR;ii~&IZ<MU0SmXCNaH4<%bOJ|3SJ%-oN?)G z)HIe%H9a4NUk5D&{t77h9E)D3UaP})Mz-6RJxS&2Vt=k9CqEz5l2V-VgZrw7uEbG| zzRt}GmlF3W_B)Ebj5WykyhTW@GwN!FZ$s}x8LJJkt5==hb$0n4K}D}~f=%pm9M|~F zzHPHD#JEsLS>wZFcbVJDZ#PxGNK3yw{m@CDS=kp#-}V=;-#Ir&tS|D~lb~5smOg#r z8~omF%AZeb*FLb*n{X<yM5L$dfnsyLh-Q3z?$RkO_5Q5vR(lM%L{oUUvL^?;;$ON? zr-q|P?=;U2XU3BX=MC2~G-Mx0tKA<P(l&S7oub|+!dLUMC#`I0t2E!kcZ#F4@rD24 zKtcA~GoQ!3V&5UpP$h6C`S+=MQv=IM2d31_;!wEU`u2lFK}O^jw||H2S6}zG^;vN9 zGiUMUTmMYIZ`ggwx~w!T=Uq>Ns%@g$B_o+jfxfSLr?K@^J@k@GJf~|`_11ppZ1ZQ+ zLN@I(;oC6nOr!?CZIerCMhk~*TKYNG3x4O;9$#9*@zv2Tb!Ye<zLO8VAHTL=y5nE< z<$`rw%`tweW?7}v{xBCznQ_Bu_T>Dt7o#`d)DYWc-g@KKQq5n>1zlA>oxfN=|HssI zu1@ngJr}LdY&|Btt8>G3M+c27Ul>;VL@i$aOoHPp#|8tlEw}Y9F1wbx?p<&Y+XS=e zaWlg-I|S^u=so9-T7U84?(6OK_xE34>@O1+q$<8UbhnJ*xduORM(048p3SNjM}ve) z{^#}N{!XxJ-DFcIt<kORsX49LVt>vLCzZF~1Eajp&v#n6zNL*Z@tJ)`QNjhrQ!B+S zn0Onmf418<!=Wa4N?WNZ?}xt}-$gk2XDPhs3%<9lcKwtmo`EkFJ~iq;yjy!<wtkPL z!#<lr*QnD{xouM$lzCU*dwzO}>Ec^^HlAL`lu>bZ^~37lpO#15y>qc%KESpsHtgd3 zDFI%cxy-zu<roi$w+BeDZ(XAJx%{q8`-^Ig{k*-iBD<M3Gw)zueJ*)z$Mo}#=1(6v z^UBN!x+|=;m`A5_egFse1bO!560WHXvZ<SrjyEb-eZRZ<Z*cr>g*A$C^FFLST{nYU zfS1|7)NfyV&5L)o@~j1moW8e(@9}JTn|>vHiuG?%zru&Hdb5i)yplWqGcTz5{1;oD zV~#vb1RXmyG&Cc6Dem5g+j)=81ZuyBbG+#0S+i5cH83PV#3MWX_R+N4DtrMZoGh-3 zWEpo^>@qo9SKGcQ#k=dRRpBoGMY=_4=jQATyb&RF<A=$wO1obbX`Idq(~D2f(C1-S zKDhJY4w1s7GtQ5XZJBWNxbQ2E&xSrV`qTTT>UjM<A38JKar3?@-G&F3ok^8C@$tx_ zmcYx~j+K8tzxZa&7Yn5Y!qO>gojFuAjGIzQiraey?$w$ZY>G*=xoR!kd{b=GOxD*o zc1Xqc6eOFwT?zC4nh|Ib9Z=9zz~0uYv1!i7mV}<O32$cb*YRz;%qIC@)e`ZPmye#P zd=;)->?8l9-Jo#?uiF(P{bkRW-#hyCP1UnnTif}S&zINN&8*GsE9F(1=HRp8+nw0A zQ^d|5H@+2WxbTqUk)&fslsaxY$?rTm<JiV;B~xBK|2re;bL9HRFX9?6*iZRdHC6Y^ z=9&r8d|$PuBy-QMcXtTO^*z6w`M06OV<o@L`_mVFOr0ur(P-+zva~7FtoO`Xe)`dE zyEi-drEVyioruor?tXDwqV9dmGLyZM-M__j;wG#)70$r5DMj?O(J3jm|KSaP52XK? z%E0{V!Cmd*RYwz-?2Njv|K+-0MOb$$m+?$~fhL>M2}Va2uw7w)u6xdadzH(wrTYs* zbX87Ax4XD1ue%}_Bfd~w^=|$>y;QEMg=#-jdBabh+??_tRM)D{xb#crS=YG*pO&!S zQIN4b#JEQ!@Y0X((}H$y_YU7#b92gWZ;Nu{jk))ptq51YXRpoLp19eC|L<e{ovI=` zTW*w=X80z2D5+B2l~x|GICHsMaO~o_+g!eDZr%BiY3Y>hQ=BfCJgV=wq_ECuCAaj0 zdpRvkZygTiy}H$3<?cVFS?1X`>1%QUFQgwZcdqNTP=4DuzpT~z;E9c~>td6f4~j6= zI4#IFy=d~)JHFYjJ4Hr}xoewS(d*lJA^R3=SKK_=O+dFXOSS5{*r(SyaX*t61yyMH z?A>#-GVJ?|(>Ghc|CV2VA#2a-`~PO~y72t!O!9Z-dA8nBAYI^RwO~jg2gjZO%d*+V z*Q?(Cty=ixPLj0woy~mTMU-zxmV2IX$ZmIKz9)0U?6{b={+UZ_^Vqh!tb8}EckhJi zn^(?HpZBoEX<LBNmYM`L=XDF-&f~xJwpOUbG;aI1ATcTK8^01aI6vFjbh({#0gDQ! zWlzWSUEi%1_av-RNDG@97xbo|;orKh<~3fY7dx$cl(U~}=chjgXZoF0xAF97Eor?v zX<k~K(&U7t9JTj^6wO+lw%w~WO1Zx9MB~nH1}Bp2A1zP&rqMq0lap?pe5=+}q57>% zxA;R&^auZNVD?XYTHX}ix={S|m+EJ(8+rQ9bYB-e<aAcoKW^ilaIS}+9tpfYAr+_d z`0Wlg137`Ki|#8sG;G>#^7!@3E6r9rcD~8YJo?{o!xrP1^teD{8Ktu#=2Mr-AAQ?n zH`R55`|2twyFcp+YbIyk^KUaheowvOUdlZ0{har{&6iD0yUorx<Iw`!eUFMAe*bJz zepPU7=MUo<ij~4L^RK8T6f?fKH*<NUZHK-7)az#*-!--VXA=G)`T$$uW{GW)g(30V zUgw70E}Cs6Qu{spg<x8iYq(ye_i@kXC2F~of9#oKayTGBW|@MFfbZS)>sclx2lZwD zK02vq+qbA}{aAqrMi#p>_w>`#!%dh3dzu@Xo+@()_B1iH7&bDpotC*%J?AI?>HY>G zHbK79nE&sULRZ?WCqB8ma@pyS>m7+ZR%~7;6tr~Jilv=%V)fF`8?Rv&JaC&OkVW~B zL)h7O@&YHmZtrJslyZNtbbch`G0i7Euj)A8rI{P2I4XPWcsc7>AP1wH!IQ!brxgzf zSPF?;Vi2nD6Lh*4s(319v1)L}^2=W=<5Hax{MvP_S3Boif1eV)X2}LkBl|D&E~QD> zJP(~^@@S{<S}XhY*H^x~J9|(5s|IHt%Y}Y#XCM9QT2x&*x#nL{;pg|MMc>cYPdCdF z7gOW-q)-&duk4f_o??D@&I_r<647ck9Ff^`W>g>LpI@LKx^3C2ZEq+4b>6&T?%kh@ zK3aadcT?Z&+2!>4iuo_aUTs>=c=i4hQ)RPB(|t}wUn??Qnj8MiGtXz2JF|(}e^JGt zX@3t%Wh=ISo9#bgd!@3&v}vgq)vq-l_e<Mb-!{>IVz@aw>zoxVTfIbrYF%Y`{SNRP zsZx9Soq;<+#weY|x5w{>YKzD7Eyc%P*{++sXPVRcKK4T2dE4&449+_$lH|91+N=X& z8Dc8`xXsuebL_T!&&KokQ1&P1=d;(#?g(7;R`K`e6KC(A6Y#xkd~>&~M!Sx}<KDYm zsoLANb^i}cj67YLKXKDJpU<_?Pgk8g`cQP)Vy?}e>+?B#yO(x(U772(>YKpk=q$60 zH(yt2bXRI`ih8y-@anr%6O-cOH>z&0D_GR|(@<pduF0=D)~?B#I_;ant$QK4A5TvZ zTCT(=^Qgf$QRKDC*{_M~&mTE_x}erJVRh=xk6&N;eLDK++nc{{TmMFNp8C<7$G^y= zJhJb5*ozF8V4b*GPMyjedu~WObQbeYFkD|Dqp+{;$9`{@8MR*)pYYT3*fPCSGUR2| z+O?%S3T1wkJ>BM(Evhd)@!4$i@Au#RI{vu-`=ffLNTsY&7u{W9CVtVyGd;_v?|s); zsvM<wb>+Q-8TwDweXkGVs$_ZP^vreHeW|bvMco&-ra75bC0DG>`CWY7@JiXGcU6Y= znUind2xr_kd-D$Y0{^Zemh@MSr=0)F**>#;b?;o%)C*HW<0I!do|~DM_+Uq^K#<9- z=zq_nlLDo!?9H_oulVj}$otXUC-8|SmK<(wXoRK9YzW)CO1R6sHvD$pZ8w41>)`?~ zxPLDA8n;7ym20C&7xNO|MinlB1BNV7F`g_Mr^HrTI9{xO|E5*MGk6p47f<aXi|fYe zX@wg&3qIt1I-XQidNyQ1fD#M0*lUNRB`q8&P7@UlDsksIwaw^R7P9Jt;_aoUwJu-H znmPS-$D@MxaW(7skB7cJH~)*3lEoGF*mWf)sWXaYisbI<-SfYvr^YYLw5-q}D%eZW z^>M=1*>~<dQfMxJ&)gHSsL5S>CwJ00fquz3-48xLdCXG%-Eh$znX~@FJu;kb0xi}T zIa~x4FHTA5Ih-8%baqhs1DnvqxNGkcoNZsUFJAZR=9*h;9<+8Q+}X0#+hCH7;4uTf zWj&3&4|CpK_siVs^*Tyk>CoYqYHPO_Y&l;VDPI&T$sB&YiLGTpOL3No;28m5hlQbE zW(&WRX3jhps;u<Letz+nDGM|e4TCl^m2)ah`4;R_+ocsAo4$)%jM1q#ww+h_*5ggL zEE0v-IXQw~tBH4bT<fSmJY(y@60J4^kMhv6tbi{}yLT;HCC>G9!pbA<hvsn2{}{ZD zae-@G<%(Oo4&+a}w$l2pWPtqjshdkQOP3w#ti0?knH{k7SVGAeCCM~%<(Vo|6tq%= ze;)tYZhl(-^UqI*XRoi{`?p#p(6fgnyRfj@(0EG0l!S}t&lsMzI(YcGnv#_A8X@%! zH?s6M#LJd5T-<W*`_k$yeG*^xoloC;R=b>Ofx{o0oShFYK2ZFcZ@$aq#_`0c?ELE5 z8}Fr5cdg!~@lDLDa%W*bqyCl)o8#s%3VLW|KAv=B_ut;2d-)9BX6?P{bNxTuJv*hC z(PGEurx%Ys>aP~|>p3iyJ3qIiOUP-5^W1Vpu>%pF(+za_*m^h>-^v<99b3|8nCd*^ zuT#;*mkP|58R0JtzkA26>q=f$yMAKcdP5aq(}do6dYvhAzEp3ITleCct9^jFqty0G z`{!r(@u~ZE=JFkg;W^M}`~6((e8&^lcj|4*3RoWa#f<Zv(`V1#TG!n_ir2e)*-NAd za{8w7ykOh;exvw789~RkFQ!RJ5B9rk?3sPut9@&gNx|V`2BnhbF>KA=^H{$;uonNb zG3WMY`P=7NPK0nSzUm`<|Ld!wq-*7sclEm+W5W+C9A}nm*7_*C&SzTC<&V<#x2t9@ zyrBNpra;eMa*x`ZQoH(ojR`&z)0sV5j4yqd6{;S$Y~8K<_KRP%*1i1iJ@M&2rX9sA zdUr3mIptgEKkFdrzND*uGroE_F5AF!V3p~GFWL8XB9yOeTb%W+wfOCin3(ogzc-|P z`^mezmdi0KeCO$Jeyit{tiI#=d9}^&k6m-$xqNNA=(l>3%ULbU>!q{A&uUq+msvjf zUX~Fz<J=DWX}rciH)ikKzLw2vR^;t~sXtF2j;*@%?~dKCBd^nTZw`4A`_A{5c>cs@ zfjQsIw9~h{uM<#f{=2b$d&MpnFTUM*pPE!B&A*tf_92JO#^=O@_W5PZZZ;49K6v-N zVRhQ%HGjV@U;6dpq0-!**oGY~VO3|pF5kKJ;4w|tJ3C(-k?CCKd2eR!>n)i#kA7Qj zeg6BkyYr=k6?fF|*#6=FJ2#3SO9^LYYKT<Ag;W-#D(L$sWd)bya_Rdi7#bLW%DAH9 z5(P_hQ~02vkpb}?xUG@V`7zrC>#nbVko@`3QyxnhAp@o-Oj}u_6gvK12s3CY_U+vj zq_j5R`~C0I>-tt5nLR^#z1*WSGv^vVe|)EXlFyr_#UYcuAE^YFY_%14-)J~#F;gE) z*_mGDzO99uy02I$Y%0{)A@YPtrghh`#(TF?x+Y(-Q1E&jGJSF3jM%Wp1qG*iC(nI$ zOfh^xNKsI@isNR6gqALyM;c2wGJ}P>J}&6gFq2D|Y$hi+Q<^{h(VdDPrjtGj-L{nG z{}t3B{vb7A<;R{?YS;NL?>o)4%0zBUN}f%|xmy(rrbw-CI(2cvrkNKixN4_1%PJq9 z)vNx>f=e<~hWkqMs<fnP@wBHwH#CY2QzoB&qjdPkf<@gMC5_d^6IB-<arG6vf1<$q z={LPQjtAd#JXXJ!6;i6Xb@Jhvn(n{XP4bTN@w@pat;k|pfb~wNzXu<t-B96*X6%m0 z=-4SFX88EQZl$dsZ`mIU4!(7c@q34v@+`Zn$CyKP(sX2&I%w7%HO~r|bNE4+p=EPe zb}>WJu|4`?mOmfV{%L41ln&w6JtF?ZNaIH9g40h$R@E}+t7PtBSrt~p%y;(EBF>5Y z{xkM9#q;W=${1{SPM470mT8l5P0aUOZ_>pnoerk6#S&I7{P@Am_vk*xvs=yLN(<IU z?vZFcJmKidAa4VO&`ms>BZBk9*0X5M7St|MW;2%Ex9nuj`hvC30`%kd?z&O?dYu3V zYvkX(xBtF<|G%Lw{(+F_HxHKb&maE%z1^+9|4(kBl6>$h;kM=)2d*!i#~*2y9y;Mz z(>vE-f|=bCKMA3m*$eC*hMWu+nP-={GA_{RSIf#DU2on9^{M{WnL8s{DBpC8|BOZA zFIx_BUCvxS*OImW(Irh8g&1q!_NLd$T@mvQ#QRs>P>-4XJpNSNy?bx&t`5&D?+lU% zuB>@2<k_QMTa)ygH#6D4qVW6OyKlc#-Q2Cc{r9`u-rK7;*WB2xJ~#j0@5fE@ZSvE) z@0wrOf9K76-LBie#dp7-{`+?O?#!L`TP7U){n}{1^uB$6AFONI9HrqfE7tRgcWw83 z-tvH?(iyY<d~Q~%o6k2Z+d6}@BilCZ(DOslo&iqNmir}Yn|aMWG{rXjrLddm*B6y@ z4>e45R_F0yjq`pZJgsS#``j6ZuYUwsz17jND^h<JGLdEPGUw-?uLb>TQTB3rX7`Xo z!nACb-nJL7za;dWOb&T1oOU{9)%@8zcYBvyoAO#M(>O=q*Pb<De=SxU?wT{{s)P~W zr}(>f?l`@inq9o)U{>-I<v_DVc0!gpEV(TCE_XV%2yPOb{cKO>IS_HpcXQsX(#vaR zr`cxwYpuN{s8_aL{#b4Gztg*C*T=ruw{P$4>ATZfKa_o6es_NP{g}XNgTuZCmNsj$ zPP=|%<>p@a{PvQ$7kCVQI=@-{?Dh4$@5gVOZ|7V1sr~!=WAmTY^IyMyx?Mj1{kQ8+ z=f}^GKF`E%-MC%Sxb0Eyo8?L`5?(C7D$icLe}DCiZ|pYZr~Ua)|NU1bk;W-;^SY7e zyhkSOrE3|Pv;B;xmrgT&<oeY|!rXk%#3p`@x$*3OHhx{#zBME6dg2T>PNUi1mmhWe zlNxo*@^VSsZ?>K@8T|VuybZjnUZRuZB$sY^@W|l>b55Np*4m<R-QwvMzm+<lP0qcx zR1|g+`D`iv?M8e~<Chk>7XL$Ew#t99xTbmLv{1s8iD6pJJXX4{&pYCatkOeR*06nH znW?<y%+HV$=`1Y|zkZx|ko`s<!xE*tk`9Zr_VX_OWRxLwywLH4%0t%_scB6I7o5vn zqt6g2BAER+^Q+Lt<BN?{pVpnwK2#WcXv2psd_mU(gp<rvy_CNNEGl->s@{F+Vav8m zal4aU8cN|pQU5u^;#}Bg85}z*q^wpa$F}7;YiVP<&|%Bh;Q{B<Lfwuesc+jU7b|~$ zMfxQF73|rkG}o-UEb!{k<5NDBjyWgiJX`dOX~M?SUbnwY-k!-+y;uKIf5jpVBmZtc z16}?jR=tju4zoFSek!Rua^=$fM@<IJ2TwHWa{G65XQs_N+_P_+-s7gk)Lx^tjmxa` zI6jFt^e|o2doHIK?8?}wE)uKgqVrfZ$G}O^rT4MI<5k+zD<2j7YjU(yF7eiuC{uS? z#rC%)K<|WEocD}VE>o9IS=gh@`{LB8M62wB2c{&HFM4r`^|QI=zxBF{X4>aI`ThUF ze))4Zw;3qN=QZ#b<P@yC)cgFun2W<Y&(l`A+^fXS%y_<$$ME%@OGZn@JA%8<Gp)E` zc{0f7#A(e5)2(_874=dl*sLk-2;S;_)`a_6!o2ewGX?vfavB;Z|9^Jhr6wm$=CwqI z=8Ets8&|V_=~~dZD$+LLovnPr8jh3ywlz%MBGbe?d44d@zD4`fr)1t<_Dnd>e;#-J zr*BVYd{}>Po{X@Y_;&kMC7kJ3+;@Au7j8S9{HA3h^O{9-XKmE3nC5p@=;H0{H^P2N z+`T1Sj~iBs7n_`Y8a(4|*rpKag~8E}c83V3AIbXlr<!}C_q<j5<=urBzI~4FnN@#X z_gL}loC&)(z25mjee>%X8@6^Y{#fEOBk)_%JK=LT=J!22Z5X-n$tAzUCl+cG?GhcM zrvzBF3a@g1wM8bX`}|%zPYJ%Hmq&7DMg*;YR<MKRmC!M^7oJw8$0Z)V^~*kzFn5Fh zw9N@yU%4C<w0kMMRnYdDUwm-d{H?}zor}-klKe6Cp{?EFy{{#+rU=!CES_@c`MoW- z?nm5iUH13thlvk*JESL?IhiTtx8%9p?D)kbzF27Uc|-fy9xtbC&X-5JFaBpt>rhd` z(f~0xF-B^DKu3tpETJ2SiCJAc%^P$&P{aE_T;A1<&N22MlrLuSug=r{x-B;^Q&iA^ zMYoY{PTBAG*N<7~W^Uz*eyeJB%=q)!=9vls3@q!K-=BW)sLM;?;hbWwX_f*UUgsKT z2%j*FNJ|hklC#yxXHYeCiICX&?~BnzPZMRQw(?!JOMYF@`d)E!N&DPYrHf84+cxQ7 zf9eMQ4T3HV^1L3Ls-2FzxWo84Ql8!Ab(nBYwc=g=JBKqGDTb!Mx$dyqGn+Uld(60d z>*#I;yMo5#jy?P$L5!R#7kQLh4mF#sacTRVGkwi&pVF7R)_msJydhHOlkdvia(ANl z>`=;2ZaL6X<k9mpZhJ}HePx%)hu+4U_C)wQ^v;{%eC9^S#CeB*q+DO3wYk`0=jHe^ zzH_UxdIiO%_3z5O`!Lw$p4OZ`+4;?PP5XtJZofQo;i$%yzKtjEuG;Rr(pD|gCE&;D ze;R++KY1flWZD^X^=7^6v*!x4n^Z!V-r~IDK5?FDzXn%r<A(F$+br65^&0T)UY_GB zuXd$uwUu{n#c!uD=N~VhFI?KbZuh1Y)koR(uK5~Y<8k`U_m&mQeecekX34T^jd3dT z{p=0loh?ZP#V=25NSogLe)CfF|E=Y>YF{sN-QE0rUnx&Mcc}DkiPp|<hNo|*l?QF{ zD-AUb`?7OQck*%NsZl*PtTUVyTMGjm<oIuVKX&z^t~uAOq#2ys-SSM6d-xw-c|9fP zVVTY+yV4m4ERUUWD|vQy)=bBX*=)7n=G=2yAH6kxx%6~v^Bs5og*~0f5xV+S$lN7; zg$Cv;H!pn_ls>PeKyBZY(kR(YaZes`JvKMz?KHTYBQZVxZtp}rMpv8f;#E%3?$ytK zbec6TTyP`)pPAF2jD1Fl$6il)`RYH{j9nr&+tiZ9oR1}Kb~@MY6L-6+a_!XK++_W_ zci%&Q2i=%3o3Enl2m7^c+}LhWGB?38Q(|EZy}>{M)C|Xe3+LW&_$gT}%<FPD@Y=51 zwD!vFZ9BJ$E_x8KgheQ4%D4OL87DJ%e!l3nm*w#d<Ineco+q*xH5}OcH9ha{ok~WI zgcCE^pK%`$<dI;uQJIiv;D2!QTSxtZm_y9flh-}+NYh$%M9u5ou9NDaS36%F>rZ-^ zkkaiX(peD0|I=cNW_jFm{%iMlZr!+{tefH9PEIBX0eKbe*FQxYL;inf5cqP4A?Nl~ z?FYg9LH92|R;}3dFY-i7pTfek8!EpzSRCLelG>yw)Ta1q;h7}S*B+h;_n#)sJY}|F zuIuMLJC&W?44Q2o98k4Ok$d@OkARbV^})^Fnwyudk`WKCc0XY>U8_pGFe}Xb#_BT@ zKHPYxJZJmqzGI8(V|)@k4(ZFto8D}>^epT3i-bopuCt@AJo<A??aA9`DJu6e*<Lw4 zi&VVCR~NS;_yDuDs8J^u`|YdWAJm`E-WlPsu<r8XAe}4vm$WvoxT1bB?nTy?r56^* zyRN?b{N-`~5A(_wCWW4!-^g|DN?K%x{L?o*e|JS3eZ4|JN%UpP{@T^SZO12zFA{RS z-1z$Hf@Jf%yB>Pq&SCV8vUA(jnYDR^@tyT%H{5f}ZY9U|Sh~z$ynfu^!{5CL4r{#m z6;sZ)bbU^Zw%Yaf+?UGrpSGSl{m93BR!L&-y~7h;w%yw`L+fHo2iq@hCzq4^lKhu1 zTE0>&=wOj-{<5>5RJdPo)FeIFZk4=Yy60Y@)@9!q{x1CK{G=qK)_wh(tJ8UoE~}ke zP*PpJ!05T<yBDjsoSmJkp1V_z$N1)@t=D(1f0g=1p@s3Nvc?k+->Q&qyO-XZE^nIH z=d1HspvW%H-o@_X7S6obqasx|<PXa~eBF9w&Z@n$;`px{&y@ZWa_Q@p$C0m9HtkX= zT;}4#ULia+`N_GPoohWGMNOS*DZT2=yw|IIgcP4X-Eo3rdcEp8Wu+RaX*Vy(ztH<p z9^Cud;&++bi>VXkJAS?_{*r37t3S}Ts+ePw{qN?`DQr*DjqfVIyL>tO=vRZAQw?tS zcX$^c(K|8GCuwPw*rtf{;g{bf&XL)z9k6aa*Y!IhzfSWuw;0zKsD5~9_n<nk!>c>i z>Wqu|ys3TdZ~D)#dARoCRnM0HjOrCuudr22=Eyx`XvJg+Tfa_3hFlvSTRhuJp!WOv z3qJ7=4tA+rV4r9Gec|NU=f1q%R_ARk$7Gb)b&$~}^Ixrat$_1ei_Bjw2AAI5EG`Sr zZsKyeu>9!pua91-1$jJl>EKwq-9u<ii-S>OM8KAF7jqAU{;2&c>8f+A#mgeSZm-{O zlNh6wP3vo`PyBLT{q}X~WZAM^?=J7ldG+wgqy1kWB|1J-a4acVAQGnIb~CT=_uK_C z`)b`-+&i86)1LDkwK-(dmk_&fefNLyBaLb^J|<e))Np)q;b=;Fl-yCU#Ne<|OpudD z!HV6RR+RE}%;Y+?YkPNl&Gfuoi|%jvl{oqC+OXJ-nxE&ZalHTgs!jH@>jk5v87^mj zz1+0reQEYgjZ6RTt^XR!zq*6P|J&X*#j=N18{2Vait+F0Xp~%}wopU-6!!ziCg<;B zAHFplyq@z`SZM?IhN=s(|CbjCpWkEEY?hz(mu<~~c+Qw?_U|9#?2F$noHf1ncFL~T zr*;(_*)4o*KJQi8)wAvU`X+fllzkPu>;9Ff=Mzfn)z9qP=$~A*>{|bXi3f6?IIh)p zca6%J%-<}&;+f0NR}sIHe=aFI>wjC(+t&5(-sS71FU|bKpmpDo`=M@WJa=q!u@_Ur zJZtOR&9fV~EL*)wvd^xMt5&%sw8}J*Gq7>#q_#OM^Vq(bAN!Fq{jEXn!>F_37UjF2 z#6(yY-A(2HQCIb-e6421f+_q-I(x52Jer}t_=(-jwWk!99#rngox1(*g?0O1<Z3vw z#ioD0^NdMV!Adx;gm0eG>xa&f=~ora-Ph%5*xusQ4Rq=*vHc;xJ2}ZaNm9MeIrN@n z&#&kEGOMM3pGi8jv16tEhxa?V7O;5F<2cPVeTEk67K0TmRy+9>Ud;{)uQV5ama?h3 z%2#jR#VeW>bMn7^=3LqSrf`-+nxyZtHJ5*A6tRX}JmJn4DL!|jjWh2~h2;7*+hX_F zOX@{2?Jnsk@X(sN$L`3+xVcHkcUay~c{6v%_oI?WniBO|oogJYEY1$OmHovvbJp8! zm(yn`t$+NYS57;2|LMCEyff!*pUqu&X5R$14PTS0E%j9H$1UiaH=BFey1g;4?R2&6 zm&Q2%&N}_qB6ROJzxw*SJ7iB6+<Eb?q4@B**2sq)Oh&m%YBkRenb#gU`tP>SPo~4^ zJ2zZ&ud=?q(znq!En!{41=;9D`JZZ3(&GA=E<Zo?>8pjjmmy<|@#Js!BGxYGJWzGb zC2g0}zMwNNOcvELs~XH_KQ_%IQ)%(t;L8>!B}eZWb^o^KV=~r!#29}j`Aj8`zs`Y0 zjo&jRnCH1S>`v6E{PbUl=fv_P0p%G}H68x2uILb2j;)j+`T_z=BgFWbi79lFkZ`rW zH7d4Wb~|tF{rH8)zooA8=$yhL!T5=BJ8RSdk3SQx8HgEQ(%_u+Ms0Vt$=~m`SHAMb zq$j^tE9Xs~zW8B4x<;4Hl{G5<=d3;F$sSE|Dp1_Od6Cmq_(-Op@Rg@id_DU1@VtG~ z@z@|Bq2a9~SKpP>qL~UFO}nEK{$;SJX+Gq<BkB?PMsMDU#GZp*e#tylt$Vw(zI8nc zN-lV__pCRU=OfW2EGtEJb9XMfF@<I23|qnDGRO8v2AM5+BFnzby!(yCD$kzur8n+M z$Szm@z@(}9jDhD|PBIru<XJhrofFP3tk`y915<Tsg6ESa_L!c7^X<~5g~c^`Hgah8 zZhXYVa7$*#>8#|NVGV8boF?Vi9T2{F&7-)fC7d<rj9_=Ajg$XhhY7JK4qof%KFrL* z+1DGwQv6_RlE*XqH3cHF<;~sSE=^d}Y`HmyPg$z`D(Cb<aq~wJwZ`kSJ|}HeasS-b z>Y({e&d_?PNr32bpEQ2O1#6U9PGoLaura}bC1S;a#E9<;+jk3gJBhVQeU?aGE_5uS z$>bVyKO@66WyU3s=D&1ZzHN&{^HY^JE_;*ThHaLgD!c<dZq^9st~*|(@_qw<j@b^D z)w#tCdNxU68=h5YR~NT<S)FSW@Nlo*ai;Ew?IQ(c8{boU?GLprl(?mtjyO&ev}CeX zt#=hGjqLaM=pyB@(ao~AQn21~s-c?RbHSsp6rXO?HpoxB?G(`(GwJN?Chd7SI<uDi zdv$a3>cgl1|J$+q@N#qW?fl{G>+j|8KmPUp{@p*nUwydwHum=WxXLFC|9^eBe)vA$ z{QZjx3rl|#t>=Fy8W`Ecn)I=Idu?C_=MA5Wzg_n@y$}BWW~Oz`Q@;A0wUw{=;&<5J zwZF4>CBOYv`D?FV|K4{0`s>&4^M1XZe^-5e%)|ez4pTQ7IQ?hgO57&0=I(oj(!K9& zpY3Yj`*!8Gj)rrx+F2K6oit5j1<YPHy*QM{%bhgWDMsX>Tu_w3`<W|Dw;fvIu|M<f z_j}P=*%=FuW*Ef_n4V6umbw=q;u$wBVWrOpzK=c^<}SLw?cL(Gd)K!WF4#43-EXOD zkF0GOGyFanZgW}UD!7et|I!bY8)h%q5wK!ja9~cMd{)NVS88@1+@DxBc#6r2mMT_r zR@g21?67`QSbs^BrQ4N7zJX;<r?Z!Z*2c|0blpxT%vFPpg-h$sqMttg;r@ln=dM^C z-<9V%YkiE-p8MJ!2U#6|Z!ri`@7BBdiu-j_)RTx(&GcQfJS!e=E9bj)B-}~u<JxI! z-|YG-q2D33+kfK2jZ?Zst2g-wz14l>WH*OB`uf@wN1n}Jbc-%e^S-$w*wwUm<$mtp z+~2*{+^YJ%)Vk*H`TB(=dX-n~ns#^XuKfJ>`}+D|%byG92<gf_N%xDC*g02y>c+Lk z8BgXIr7pQ|vz+J9)+I)rl5<#38?Nr*Wim5bs?FGX&fm&;Mu4pPb(Wopni_8MVQRN; zB|S0M6LiTrWulzh>8Ho#8Pznuq&;<x(d*|zV*mG<&%1xmrl<FlO@uGQZfSp8{$uM7 zTK9)HKS|myyZ*qz#nZQcn=gI2uc2ViAuBiC<<A+I!rf=j`0(M;yKQw_lYj3z+^s)v z_u<ojpR<4e_22kV_t)8fUwyDFcx%r8-Oaz*HedSxzi($_@4oM!Qs478Isg9J`FH=l zaa%V*iCg{6(T$uFnB&%z8!%0qcmGv?Npb&A_vOhO;^Nihr|wwNk{2LYcx{nqT#eL` znu#AOtg2>r$gNwiU0*$S|KHGQjLNgl8@<=6H#u#yOlQlI$XI>v9;@YR8sySSEf+NS zEt=57G*!KHvHK^k$*1g^q<pO;Yf3v!GA)htGfq68(#yL%^1P(_*~CjmyS}KNSdzM} z=1B1_7QLJ~6@E8wT>Q<NswZz-d(N}}iOkQ(md`n|WxQlsANVuPWwGOYh`0k@{q(~W z%U|Bl%vXDrxv&{<%uQJ?(Easa#9^P0k4s)lFWI^Kulkc+ym!x^GCeAjwXn7~ars)) zPE(OfYo}h)a~Hn9?CB8)@2qs4h$TJS9XQf{Iz+A8ZvSV8oq~4!;@Sx}k{;{kWuKNQ zH)!4R?ZmC*rDZ4Cg#CEg-m{n=-mS1zzUlYvIK4?xetTpib9^Ojr3?Et^Evh2Pgj4; zxwd72RUp%S#@#*&A<q}BYfM&lP2Y1=$mt$azGdq>L6sxg@p7g`6IwSNZA<tbQTX`4 z^F#NTZq3`~`9|gL_r0y_GTvM~@pkH^Z!8;(xy){v8s^RXD8_TELhnuO^{q>`u9>*_ z%e=i??QXQ(x}cc<OXS|Q9xor|ZQhB?JEl%JG;_!G+_$Bl?-Yw_-I#u9^|Vc1%i^xf z%wyQjv1*#3mC3A}_O%_8O4Q!;#6?`|>Xis(omzB1=<{0d*LI7$Vm7V5esopyu^kHO zmRvmw^6n=%CfBIt&7V=78{H#Wsh@vi#x2YCxV`Ij^QPPPUT_GDxbQ&4z{#4$J<I3$ zqquJUwZg1#&IH)LRW#3&(0YCD(O=;QZkL?hYoGkRF?G&?DW_*{Xx_GUxzy438PdDg zym?rDYU|>-w0rvOw_hbn`EH$eZuNmcmY6or^G>yn;aQuQuf_)$8p(9~EoNF^ZhdQ& zXyn1>1rdE0q_RHm71uwi-BtO{x9)DiOH1DAc9#lHCe43px8_U-r*uFI59>^0-LeDc zGlOP|*q)q|cV<Oh|9Aa<jm4f{DurBCqMYVzk?Aq=k&@fX_j<`DcXhqV8WKk}eXRPL zle+yEEm+k3?BrH8SBZ~H^yF{%Yd&qd^z^WN?vA?h;HfXJ`%ax^e<$SS%Hm7G&zCGe z=jlIp@;obb+fu)(S94744_Z#h71?CQxyJF*kAl4}{{jvtKEG(cx16hFA^)^*x)UxZ z=zY65=TA^t$D?|kgYg1<KeGBBid*FDpICA3aPi)}%E!ECKVH*T-~U#2sZGu;7FVOE zWf${#G;9u@tGcZ5tZYYn@0%S<Tx(~##jO4k%8?RX78RYf#&d6;hP%dRMcaen6Ge_+ zpAhVSI5HsXS?!yxVQ=>Ked6w{RsXYOU-{iE;Yy~evme&}l|8m{Zlb^nqr>a{JAxN% zGcRb{n(;E^+S;$@IOi%?Nw1sk%H#G@;-a9tGILk^m1C2p8-14jq5J5{wY_a?bl+-r z<Zx<wiZaf<khZ3D{|iMAmDi^pC(U(W@!M)|vgwfier5iiPm}&g#=MMu+Ars4zbt3| z0S~pQ2dytHmJg5%-1aT_vI-CD$BxUV7L+UcXmMMtf9`okNGa;M=jj!<xQ}|CHcT+L z^O`0X$TzY6vGxJwQ#_}?^u7Dfz$~!qF}7Bq1(qWMEX{~NZs#p%@Ww-6@9%Jhx2*Da zUi$Cq46DA;JNInH)QiWi#n=ccT{z|;A#=d<+5LP|6GMwKwTow-Y*7ygj{W+o^y+Fh z>(1u6r!UU$zId}o(_QiY=NX$LEQOSxR`z|-{M50zWA4(^0>>Y7PCd1^-#qcdg42eA zc~iwICp=qicr@=~-Ms5h^;X^fF1=Su_|2=J=M&ph;|rg0)z|F)VKPh4?YlA)!v^Ph z%v!A?PyMz?>gI10KD^zZ&+Sb3x#Z-Xg*y^F3fSJyG?xEseaMWnXNAG~XBU^M^e=fL z*z(=dP(IM*xNwtU*=jz^(067s-sY12Q&#id+AR67kN@0?>lVTt8qIqPKZ_<`lj2oY z;<<Khnc`Y0;YW6Cp+$B3e5Hh}zN8!9dS1VXL3G-=7C{w>?AV-cll6_?+HT(3B>UD& z;rgY$yux>P$xbM2;BJnV_dLU{V&Hv9Z~Y~e>xJIVv!d<zK8mjnUHbZZ(E+i&yvgP! z7MK61H$Q*RJpbh%-4nX+6XsrdEtaxz)0g#M`xlFeZFLks7LZ>kImh9SaV2}vjjM}z z9`CpkTB_7;aJoxljr6T5P09Qz%I|)!-R_z$FMctP`MKD&3xD5U$~xn~u<KULax;+< zktZ5=(j6;I775;3-+8XLE1_JzI#g^nbIIE5hKy}?%PKGFIbXi$GoSxPK}Y)%qg>{% zKDos~T5N7>A57^CohN-`+Z>LEJ0q*EUs&gRVENjUZOPl+UO)Uc{kf0ECr&}%$7LKl z+NV6IeVNl&wSI2O`neOrFUtMiv)sYWI#qq{edmUWBKxjSZE!gdApKiu&EaeJb*@In z$OaT{>DndptNnkIoA)ih$fvKZ7f5g(wR&kB%4n1Jcjm`cKW@IA+!p??>Q9F3wBrIA zEv&V?jtN<tZ(4A?E0l0pbbH4Z#rUwEYQw)pU$2||FxopazIGqqx^?OEn}0r1`;lH% zyYt6yhE>(pF*6P%ga+-?J!&5CXM)`fPMKq_0k3@8r}AC;k!)$l^w8pP*Fm#yrzO=| z6q=6uFOHafsPWguP}wE7`=6Fc{0@0)<kIrTbdQr>gp#~S+98XM?jQ9^e_psKoS%Nq zSKzhQF8)PK>&nv%Y_7ha!Ip0P@N3>Ow|}gQPR+ZJpDCBRd&lm>ljf=3S*&_zb?)9j z_o8@eJXLnu?>Lb6u4}p3Z|3xQ4UAvzXxGo#CHVE3NJ+cP1(i7p=cmh?tdX$2DYnhZ zy#4o?PnV=uo!%HPu9#S`=lSuazh8e^FyH3hZ`X%Rl^-&UcAD^R%x|++-gy7k_wGe2 zPvv)Ns(gRo#?A4cS*Si%1WVCiVT@&d!_e5+9C9uX;SS*5h{*iMW&(BJ*9%+_|9Ozd z({qW42y2i^WWq(A4bqD>Ch&5sb-8`$RY8e`Uwv)+t{lxzTgyJD%u;&(<JoM*_K4Zp z5x-4-6<h7vWu9}^jW4;)Y;LBE@@&IiYZ1dmzO`>X(<}bi{9Pk?#brjpjqr2#cI~vD z7m)Y5zcQ+#a^k61?{goCPV6Z*=bseuR_3m+yS_4$^hUQR)@{8xSy^!=RaM7k@!z-0 zmXPdQyLXzl^4TpsDKpu6oZl9HDQ(GKY`AEe)T;T%Sl0>m?0C8%S6;$#N8up{HOCYi zMTz9UVbAgeyySV7C2Tme$0TCgGqb97?_Qc2MKFJ#kZd*ez;q|Et;ZwfLYo!l_42M! z*Zi~fOGdN9^(XuGD%^a~aaq?pGxue!!r^0Q%6ITF2YKDkEK}X<y2v0yRklXJj^U%y z9+h)XX9(2JjgLS4MY!6IaoX{h&aJKde|E_E^IX1iGi{mF-o8$!ljpsXG&v<KkE~Jg z5jR~^cl=>d7PJ1Jlj4roSQwUdEM?}6W}Wu#TKsdPX)7<ic$Ru%>Kv0!DaE4b5(%}e z*VzK+SHFBOaXBEaT;KwS^POi)AI}I6t6zTQ72DF3YOD2`|9Q9B`s#GQ)USKe^}>D8 zm$erk1*mYcW^^oFFwdmQw<{-aJ7eyNO?;2H23-1URJU4dQ)pG#<NPACXS;k--<*sK z&|PLJ5OT|C(t=xC?>F7x=H7p&pw$1wHLDW=e3H@ATkfwGmGwN3y})g6!rRlKPYeC~ z5~oT=>;Hb-F=wWQ%#55XGo7tWIc0P|tG#ATnXo@sN0fD~?7=n8&vox?nJ3S&Zjtwt zA4+A)H}9|AXZ!Zfs(M-Bzuz9Z-MRNyci$bGJDu&b>;LWgeQENda^XN%&KrqVHT$pL zzPa)GkLk0l9nOeOVcfv^>ZYUL>bU{NY0U}S&2AmP9pS~(tRv3-^4D*lXYZ%|UGyzg zpuN+4S;T)$zJ@DnejBuQhi~+G{>Wl4`-*@gkp}&<wIq&IPVJs6-N5R+`fTQk`nJ_w z&uwm(bNRfAb+3%S@!K}cD!9O^`*R&z%;bk67QxCBIE=!%B<m*}(y$6uw7-7%MbW*r z#|rj(GVNdY<XM>Na-N%Pchk=E?XF^J$~t#8?RJ*htkqWx?mmoa<T;}!%zfdRs%w9? zI{Tarf1}b|-*g_Z*RSQT*tDlZ{hLEz!{v*cde!U>#Q9%sX_Y>1Br<XLy=duIXT?ul z@mO+IuyopV-B$0FPAr}(iy7^V+d7iJ{k)SuYum}$r<j*clI}44y`y7(`m@f=@I>qL zWlv&`zhnNu_OUToH|&q5QlOQ_-Zz`Jw`*`;3wU?Mr1Z;n#sfQgEzHlc_^iCiIPI)} z>CczX-m~%s_?l0h_(JKu;M&)VIyJ1XAAM$ZBT)Cs*6itzFPKaGu_%*I>5RYZoML%r zkGk5m;!x*>=6iiU{r7(!&U|ZASN4WoM>N^y{`&VwUT0~5CePCd9md7;cb;gf54G0T zpBCHx@}+9tiWNWCslH%*>#+am&6y6{rM??p+Bh+DuFHw<?ecm0N3>r)_0)2*EI)1h z;q8Ts?Qgjc$Ji?{oVY4|s8BcR^P_@$cNbi?Z}I%>#iVSIZr3oEckW-cxXMY+YaaaC zuwY)qzcb(Er+mHFzxB-GZeiWW`?F?dZRp?XvvsF@dt~;_JiD!Fyi8?s8~ZYSu1Zg5 zHQmOMzDQ=>=PPT=N(B-pG;XPFtU7epe9FS*ncd2>=Y2A`yJykiiRWjooHA=#r_Sk? z_#H+Yy}qh{<=I);^k?C&pWC0E+~ae0`_8Hpm#cH7X8e%9?Kbf+wxZbF0CTF@+=BQM z(zb@3&Rc9Ca`&@n+##iPxpB*8`MP^*h59btc5y|}awi@O&a4Iz5BYlg>l;rx$W1mg zj!ZnT@B5tM^ILr{hzOQs*2qhzJI_|`V?Mw6VntI;)6VCL_6au@XUtjPe)$;R=BhK# zpZ&I}=bx;@C7c*|y(TpN{p%vh>sdAGYGSI(G+gDlSEn0$b-WCGomrF0bL?2RqoTfJ z$=vqhGc%hXovEl%(rBy???|wI@FLgL*tst|`TE908~5+W);gM$HO<s+|8&vdqoC@I za_05EM;Fi7vNIv;D}$Kf??ru=c6u;aJ^m1OG<DaC%S!PFb3e`Djf_@ksxo`>q4Yp| z$-HOpyK3r77P2Yy`<}TT;<eyj>LRbKw$L|x-+UiTIK=oSPulqMjP{i?%p1BZW_IrB z+otfIW54eL*&1EXoS)Bhv_hNwcCP$cRX0!6bB6oOiYYJ6<~Yw~_-)hhWA%aU3*2tV z|KZ5jb89Xr`B-4P<KpUD85+fg8|S87z1;R?$|8nmo2Ke5SjwEYakuD?WsAzXSdxs| z%^dARl|5e{n6l$Uz0jd$r-Q2YsQ$kH<XxtYt@NCCpZZ?;25Mh*ygh4|jPR~!A1`I? z6*%Bi_JVWS^196lyBp4~s(tq^@R;G#E!rRBT%Toz%1>)}qmo~Ka=ncD<5puq)!#fn z(hoh4F0ucmv`xZr{?+K%70(yxWC>osy6f4;O)YPI@(TiGx>s3E+kCkoZpqFwd{b-q zUhhr$+VlUQ=q#(s$rl#|t*P`|+CO#XW?s)el^1oL58mj;OewPA?SHV#Q?TlC-!k{> z$1Y!(ULzkfbHSC4)qDOig|M!Dz1hV7lEo_1A63iP55L~M%x+QC?R8DDb(JQj{}oJM zXx+H&s`2Uah9))fz-iB_ww+n(rqo~Od3<H^kNGn{HT!ISv&F}FqG&-~ld=7m_Kb}g zC+7B)f9T{&SAV=_&8;tqh8Mpd`sfkNY`b9l<wd2LJ`ZJ>db{`*#G1QYZ&&`W{r&JW zzt@S+s{LLoz1VT1`FPizr6*iDUAFvK9rU8=D>vtxzsXvvrsgWlE&Cb!b{vnvlEuu; zkvl^8mXlhTBZkAxETBCl!mXjRQNH~$J9+n>U%w)`Xr-8Erx0Uu<KKqK44fNIyi@Gl zC=s$Uq*L(ynRgX3KL2XvOoRLEkG*^4>%YOS=Vq4J>&`_d+*fKIw`plCTBNv4@u>_u z_mB8og-!u4$%xt|Es9(_AJqQ}w|R0z??gh5-jPO)7pzN61l;ADExQi=<Lfy(=dbPr zq3?!!)HCHTH%_VXVGVkfEGf_YbB1?d?HUK8T^(K$+DyTg&PzqyGbi-as<8!6`#pn4 z=EVH19G<e9mNsgNOcx3I^fRI@#q5BQ+F8Tc3CgMO<P3W{cRXdX{kUD!r#radG;0`F z+!U_|j!i$dJF-1Y&^zkL((mZitn#wT%0q2m!xVPS2JV$ShEMbu*^&c;6o2fs-X~yb zvYp4=wOmI<GHHIQqEF+U$E^%OJG>jFH9eI55PIp-af6qOVmCQD*EbzraA$sklu6l{ z2sz)A6F2e9vQF!3mMYccwfypP6W`3u4`k=G%iNq;B)O?g?`Fe{Pm%{!BZTFhV-oA0 zy-s5;P|mPvX*hHIf!ZF!UHlwD?_M+7KCF1i&A)Q-@t`R$CLc@pSlR#ZCX2YU)`VUE zS<b5!-#>03(%WZw=+s_whP5g2SDW;?nq)pVZ0`2ox_f0r(R-ysIu#7nPb66H8_#GG zEaUy@CH?j5fs~%5{iz<dUJH^A*|n7#FF0;3aO&BMlh;qYyO^x~DAlg*>xL`gYGNMO zjweJe?SHs8>X*d6v$b~_F4cUVbbLu-rv5zJ-4->*dk(a5-gsCq$5;RJ_5BTL$$>dr zQWh)TSa)wv)z`yE#p7$@W`3SwxIXrjTC$^Gh5z@TU$4IX@aASgMPKN|j-E^NtNN}U zTK?xl=U?kR&;A7m>FmzE|MkT7x0X9}+19MBKcvlf|6a`X_qX1DNV2H;efIOi54F2@ z%ii1f_jmpOD<6)2`CeA|L(1dU)wkLAH#|EZFZ1tCT>So>E8l+od+c3ueb(vIFIT_b z{jk;FAX3V*y60lV8}>c<yBY=kIr+`@?b)@f?V|Yi$V-V|b$%**P&=V^#MdMC2Se8O zvcezl&eq(v|NrsnReOED_}Ke8Z<jH1*~`?`|2X{cwfGhLA2M2L`GsFvBq#T|*tYha z+E-mN#VO$TCjCR@haZ+-zaP&Zap?Y@D$D<S{#eAuZQDJ6U4EYaY5Tg@a<<$uF3%+< z$hbUO@j>L$J&BXzmc5Fn{A{LQzEd){V&e@X-^pt%+fMqVXI-9kW!Y!NX98}=<faF> zwJ>e^yyC`kC$mLPf4CTxPxdrjIashY@wLaIi`-&nimT497x>`ZVWg<Cx5~anV{@O! zw*UVHROKW)BTxVBduXI}!%>f;`MCL+*SBYzfBp9LZU6M?-qo@7`}VAv7xXSqf4N3+ zY^h=7W07ZVQrA|UJ!0j{dZqn->)p-Ir?J~sulo9?bCS7~*1h8^zr{Xn58=Mn%qv!| zrT)h4;oMUnx(jYDU&G;~-}QUSMCZfjer9ekY-D>E<oC{T!_?YSLC5y)>k!<%|3+Nu zkEHdfnjXd_JVq;Cdc0X9SS{;c8yCHR*RN^G?Bg@~7#B`*J6O~Z)%)S3;q6E_rg$Nz zI2)<*2j3kU_U5IsR9dk`yY=}ky!@i2X8M1JwZ}6yg<JM4i2FT-bK29xQ*Rzmy7yG= zx8+&=R72M%%3_bde63G2tU4dCXJ(~9itr<~CB7A_=a?_dX|m-IF>5qS-0U+u^_I@% zw3%k7w?r;GYm_^!a`TzlsrPg~r_D4!y(jY7S)+W25U2lvb3$f&HyIaP$=ITPL-y#S z#ao~4d-K;K{{GyZFBm(`XKD6oTKTIii9C`dbz0ryaP8II)upBFo1QP2_HF&?l}j7S zBx{pXFM4Hnta15lwRKvCl9h5wuk0%}$)6QproAhkA+KsB__yM0;G>||i;6pW=LSUF zZi?GDck0YWW3FmP24m&?zmHz*P5hF&{k+A`=iC34rfr-zSzGD4brZXbjMA%FGVWg< zZpx0lKK0g}O<`-y7xL>}owoGJD&NlY9F_||@;o{2w|KsvKv2Y~@1bG#j^g&Ml8u(r zL)JV~b<f|Gyw3Zm$c438Hp*!i1=s!-&^&zh+UfFl?UoN_ES=LJDK>4X<arbC8INVO zEn>oAqi1->T~|LKBcSxx=a9pt8omY3m$$TeEH!x^6z(OeEzYB3FS7O4HL0WLI4qw` zWIe<B#JI}JHS}|^wc(VX4(bWp<|H}%ITxI{L1Ou|=hL1kasN_S{gu;T@!b!TXN3ry zWr}J&u_0JUU-{^&jBS~xt~`=z-kO@bV)mlVIzKrT)LHG5uW*@UF&Vw;ojq4bidW{c z*78Xvo43vhOuuNbbmp2CsYAjEeV6*za-_r`JZXL0M$_cTil~id*R?vc4;`Crp>MoA z^wpW?cN%*(gdS;1-_>zU!k1m~GpEtqxlEOrg1$}e?ym0Vh1crpa}-9UPj<a6ykn-# zth48TTwK23v%{k9BkBomCxRSZCZ4luHJzGz>P2!zY}dKWzUS}1tF9>j@&9O#OZ&Q) zEN3o@cyCr)xc1r=u`jC(i(`wI&Jk33{@r-?{Er34->?KV$uFNf$!wbHHm|m-MV8k% zx{|U_6vsY4x-2znKEvkpT_FvUwW5b+{Y`l)te)AQte5D;8M<VOWr0^G=b9`hL)GM_ zmBmFqU#@rXF4=kUJ<|hOksOo0d1f!BgiL?NnwsyKW1^UCu-M|LYDj=YoargcziX1k z_V+s7x^U$(+i%7N^3ESLt2gL;4syI@{NZeH^yJ_l0@2Po-Vx__vKv2=@Kv#PbaMBp zi|CxzJJEcG|IOye>#Ch=W;$O}dA+1^Zt>g{UzgXB$&VY)Zhp?YUotdZwl3FVR?WGy z`s?%Z_4MQ8)?S}Jef#sCt4!zQ?mtRAc_O)*q4vdLQA@?oNu{afsgV=A7C$<#lTdK- zoc!v2_x|n^3vrUQ{v>hj-;}?i+SlZMmTe6<G-qv~UevM#9n+^J|2DmO{wDBd{wl|3 zj+$rsfBLOFy>j8rju(@rs3y!-jeWh#V@ss+`Iz(Zk3BZ--*Ug`yEpHrJK9BFmqo-Y zO58r24^4NDU6&wq?Ud6!yXT+Z>wnk({=4?b<~#9;kxLd!uZi<tKW|aIn{0J==U&fO zb+&CU7rW(kHHE4(ujgFZ*wg8^%Oor_QOp0KyW^f;a;H~hwpRZ=`|-ufW_i=O#updA z_<h>kK<xODrxr8%t+uQbahe|%wpvQ+-_>dAj&cmF7nGi_^*x#Y|Djn)n#|)9btm69 z_`hmaf7(*CYl)cd6CI()o1SDk)$^=cDj&!CbMD`Fs~3Eq(jUueyUOPkPwo6oV)~~y z1>cOmwIx`x*<)4Z@*=j^Q|F!%RBgLtc)hZzCnM&_r3ks-x<`KBI@&Mw_eG%GeyQIM zw<qg$NXjT3+CAaNIgkGPiF=px?)G@{Z!^ysv!{D+E&Q_jk@77+g+P-#s#QGO?myDX z_4|MI|D(ls{zpCiyIV+i|BH1`VyCZ|yP^DksNJq|`Czug+_S!EW;2Rbym|LFFjdD^ zYVF)p3ZnnGr^lY+oZVRF<o6=a`OZt83x5PlOXnATi7$RLcm8~X-};}vX|nfEnmgmK zyXuzmtrM+&mEBn`Q`2OvyV+<;>2jllANf<uG_CjZKb*Vei@cyg71jYhb5qP-rG)|U z3z*M_ozK6mAhGxP`Ue^EPK?aQ_O5*$RT{L^_he#Fc;vdbD%1Wf-dZ^A-*@Kb%T}eA zRCm5%xlvQ|-u525!Uh(OJAUh)P41TVXJBMLXKN78An$n4@&hxICEI5f8;dzR`ai!v zpe&;FX7!GDuS->w%e`tIo=LfTY}49c<2~yhZS(M!Jh?`z^vRRkHJ^+QY6&pz@daIR z+O%Vajg8WT74`QSo8lA>%+E_>)cCBhc;2h$31&Yn9mPzVT3)WptK#~{!P=+z%CcgD zkcWcXI}zoUIa|F~1gCZ$D=%!;<Os2NXf-GBgw3VPe|jgRtML{)EJ?d<IeX8Y7Ei%e z&sRxr*68bB?>5jD*Gu!es(HbA{|?3XN9SpE^l%z{<@mB9KTJEeXU?_?uk6L?TMgb? z1<Pv`rAR-0c6yO+vTjjw5l_m^gWU~Wt#$JkPiKy{j9M6`k~GINX6sTL7iM10FB^C~ z7Ju}7;nC0cx%NZJx()sx{a<`L`Fl^1?UOxbku`05k~|Ll4!QUI@l)MJy$8cZmi2}Q zMlSpLQg6ZhLpdpe*U}1DF3HEge=}1ce5sborj~bC7GJ6CdNujrrn_A46xtKRL^BP8 z&b^wmkY|4Qxwe0sEF(@cHedPvU9&(ma=-4Dvs%_O&c1JFnt9Q#|K9m`%l79)PBmJ4 zHNW)8mh+e93FsyINu6Gmw`TcoRuSQ;rE`zIJh`iQ^=_{{=T(=!*1q!4s&{tspF1hD z1MZ4*t<rN~wm2_kxhQ<f^JrDGY7ckc;G>Z$ms3(2gIjKBX5HtySaN;d#YeL23pHv= z7Irl_9yqso;klv<O%j}2nYR5Z+I((C@Rz4cLVvzLD(1YgH|4!$vFXZiAH%h~tEX%5 zER?y)_R8_xkILN%)(_2Q?|XXK?{IT<Gv^mp$twGsc8l&!F@5aj_HEbu@-r)TTJCIU zKF@9O@|FpoZ`m2ym3r6D3LdSg{eM)>_E=%$aqpjxo0WHM+`<<Vy3=$*%*}Xxu9<JQ z-p-Ir{rMqBvO3x*-d4B2GV<H`1isGmndu^bxl%&5PAHD{*q%A_T7FplC9~?c_xIer zw?}X5F~6vHPJg)PJib(jrK4$Kf$cCeLt|rNht;o!`{pmP5ZL>D{R58nvYh1RllQ_l zOJ**yeX}Hgrl8V;cWw(CpDEwHdG+6S-DKwl&NIGb=`Hp+*c<z8b@=*KJlo2|w%M(( zyT2yyT}&dUNX5MD+-=kPCw{Ow&9CvPW2@&H_S>#!O0QiJ|7LmmeB!)T_4cIQE9QN< z{d-x~W4HeOr`9@e(AA!K{8HrZE1x^w?mYMX?DVVhv#%DqK8VSg_)tc1!h$nh{HxpF z-|$L!*WEf%n&b7AwKfqwyE}}<kIgLI|0}zdx2#7a-1+MZ+mGosA2|*whif$1zgfe1 z>_%Og#^!F5z#n<<I5smGET3oeoTqU5A<wxF&3j_^W>m2q+Hh;l%Nw42fipbX1%Chh zc8%xICa?L{Tvcz(%S(KINf{LB={(?ObzHFB`;|wrl(?mge|fH|@ZV<wbH6UAG1_ze z<$b<~+pg@NRhx3}e*Qm`*)BUHZ%#`Mw9IaM>y|w0L&ZadZP$7f_&50eP;T3QZRrMW zQR98nGc^zIvTR{6W0|wCX@?j?VIzmlQU&kq$L<@io;S%)VSRD%`nH^^x<x+M3TM67 z`xz9}Gi!^%x_sI2lVSfS1n#-6EWl_WZf@{7(e96?{FM)ZuR|_4Nm@S(bg7!#z#qE8 z;qd+%Yh~L2X3;mymma_Oe*bks-x1Z1g5t_;%nR<BZaEz*vVV{N4}XO-d)qcF{`BTU z#EK7d(^mwn)DpWCFw<$?{OOSja-R~WH@3#CTyAS~Dog92QCH~C>Y)EA!Lz4_3ZCBe zPT0h>OMCnO*^1YeN5n1Pz2~;XCmn68ss3*HvUy!>O!4N4KHs&zztS$so1_w;UG;sl zhwq+}xbRxvlbaM@Z_AY{U&-da(pJ;GNm|RiI(Wt;r96J4{CnP~(&kG!IZ8y8)TUdm z{3SN?=G-$&PrjS?DK}K+m+zB`*E-r$US>M1>T*`gSDzChP#gclfwei$(f3*4DfQJQ zuUC~VYp-S9-ER7PUM<_J*sFdl+b-5+eKz~X@<Od8`{vAI$uEvN$9T7Q|I0qkDqeDY z>Eb@`(&Jx$xBXt+Z1}12!Ph|X6X|MB^B1XI`h9n)k@qX^?dh$To#ows@us#d*jeyu z!{O7*1N@Dv_la>db=W`oUhp&GR9Z6AR^EvXF`c|urnY9TdurT#y#3dk-?nm_r_I{> z-pME|-1*XF<3rMUDXDYX_A)HzP|J07*wbNuIZSPz;xqoW&tq0iI`sDGY3~D8?RHOQ zoO`r|vwv+)>W=AwLg(6Kw!Gwf`?e&8Z(H0N#tZTW(aS2sUU1n}8@0D^vQ7K7wEMaA zWPU*dt>?RTpL1+bytCuiJNBD`D}Ql_Z!3_0>Zvw4)#6r-<hiHC4dx=x>UVkhJ(#y} zmy+TJ&Fiycm;1%;bvs$dlf2on?BVei)+S4?8w-vqOQg<PbNblX0QLQXhwAHJA6T#H zlNcL&QvX)>o$Ts~`*cN5rpg<g-?`r4-C_3|ruP&6mM>;kJ)69Ez3#Dz?EQS7(p}GJ zYxZkRJhS%G<b9|2z6qJVIn~aQi{n4@wX@SXu@qmH2FT-N(8cA32A0sVXd=eJBE0h# zdkF0N9lm9YxW$E+;&%mlzil{`wq)nqp8S~{f-i1pNaP&oe11RQbUi~|{-#TFczjE* zhR56Py2YX^;257?e>UCx`yFSwZ%dzK{Ob`pIB$x_Paf~CXNFZ9mTZuJeqSJ+NqAL4 z{N5_@u!V08o<`cQN|Fw}?PR{bymCwI%Qal9RnDI|ck}+|n`v%|%8pyiA5`8*W^!G9 z^RTj`Va@M0j%WMY?`54771BGt?!kvSi{v-gr!8UiH7Gv2_~*-*fDWTK!LRsgCx}cw z$Jy7qLDq|7V_D`l?oB2Yn^$H(J?g!IbI~dfM%&kOGUx4oogN*z>q6v`Y<E88j5ES( zV&bJfvslI?F1pg8aiM(v3lqKLvu@p=U2WFGG&Q1<%hJK}^Ix~~{>ScIjQjFn$GR=s zB4_Ft$(p~JetORaS;sY}PWUxx*9P2XEtq^{_r!giY|AH>HAI|W{$IFFW3}F~0=A~| z0}{$NzE-5`YBrzUHBl-uae~a1_e=6#M(kBqc+a_eLPvLiOHL(6n~|hV8zaw-8I>YI zUCH-zEobQ8j_P*b8m4c1drm}K{pTRv$(wpTS-mH`_boc?H1}`f@6v_Fu{WkfBwl6x zxbsB#Tp`<#xyyFm{5375JME|XhRLsP8_LGA6}NFtcK67(a@v>?efaylW4?R1nnUFt zKfSrDTEBYvW=)l8bH10p=X+fztLnHW*K6%{ZLWXM?oB<>?y+&-p;#ZAi#L8KpIlTT z{aS6Az@c)_jKov#FaPycHoUZSgHY|e-oNu+HAMw%68^iHv0{_3<EfxClI&g@VyFHt zX?rqvUE|&m@5!6Erdjnwzhrhy_j=pe%P4tCf8_z&*SSX&OXH)1jy8m7=wH3eKl4m~ z!kiBa8~iTjM)O~J|F}%#xKG#rOCFbHvfi+yUto|reelw<FtO$HPv4pSlB06-k4-n7 zu0}-5@*Ms4bBRk5*WFLaJ%?V#v_AFzu+8$2=28P`2g8`RH$2T=f9kgKJ9ziS%bNX0 z(!Xu1rPuKsv^sgoW|QQ`xF+L->e+YO_#@@i<0j2b&Jty^-F;cj{_3NWsGZjihR;5@ zW%`z9O$sN&t4dcWI{f?fsQKq^-BLlDR@Z<Ru9bUqJzoB8dobU}>~B<i>d%>aF)=M) z4fl2)<`UA`v*u4viG^vFoy~;f-F+wX3MA%CN-H?9MOOA*iKtrU+|>m+_g)%lO)9P5 zZ&{Q!OOvrL{+v|nZWZ56vGr=D!ZE=|Jg@BieqF2M!(_cv+#e=0pNQ<<WA`ZfMz#26 z;o__Nq-$2}O<yL{<Nuz$;;+@*?Rok9^FO#}WWV+0G_vX|Gzxo^{BWaSMj6AG0);#J z8vNUSzT2`u?O2HIqisgN<JPmk>W?dVu<xv-?CyQ%7HYrBn{vLN=hNh$%eEK1xb{|S zM@f9~^LPIgCd|;Bk;t&JfVC`^aeu(?w+a8R#>n4W&*#hh@*l6kiL(7-ZB^ds!5#mZ zB+TF5##S&HV`*1e7+OG@RYdH1SsLbDzRE!0-f!(qEv=byDlK~N7u#-MT^(J%t-V=b zs&Wh0j~Dy*b24g&<!;q}HsR!x-}}z^ur*3LJgEDSY_enLVkQoW0>6V9Ts17L&kyi( zJdx-TGAPsdGQ(PBU%|GSx7yYhN~v8sdM5Jre*e;)UD?_8r&e}PRQ6t(^pa2WqhXmv zal9LU^ZmsKiyFS}<alt`(#gTmM&Nn#M{cIhxM~KDOAZabk7qLX2cEE5^_Itm_aARS zx2)r#o=iJg;r|@MeTui1GjT3?C!pLiXX>g;GbeQ(^J|$bnw7Rz&i~Dt{QPL;IjdE& zPn2lny*sh5hJ#15m1FDkm$@RAudiezKAGuWwSNm^)d&6!uMOnd=CIn{h~wV<isgEM z`7@=iqKz>pr}EqumHq#WuUg>(Bd0l|;lT+C%b3j>=L;^nwpw4(CFS|&K$fYkr6Ib9 z&VHK1;_Snsa)l$2Su-+yWmE*K*UE`ux!ZDl)`=`#c63hJ-iL*29oFbiP~Fkr%h_S@ zPC{?84cB9{>4z(dTm;W4@_)$me57ai=AH4ZiVN;b=F5Jx(duOij5&SjlD*Fii&I9~ zzKd?Cu9&RZ`RYZ~)QaVovR7?VGJ7MQSgZB9oX7gQ|K<OupZFYUyEN71&*IcMt0u=x ztK718K~--#bBLtU>Y7V}n#-zBMnzU<?GTlp8F$h*=9I4Qw)+`AD>v0|yZ(qbYESm` z3crclDh?ay7R{8;^f=T!<?{Qli$hgU7YI#F)J(s6^Aoqh5~n@t&+pH#k9wr$7M}2Q z>l4FWQ}$kv{wRLq^W`_{%cSndEnf9&5gSj{zWe^o<+5tagl1>l4`;5w*0!_km0)z) z-!~5!{QcPvS+8~6oZl07?t5HM!h*$b^6u|5+-sM$LV%6+^P1Bc_bf#|YE56&_i9Uk zyVl-$%hx8&%KbdyZQ8<TnSHme&J4Nq?eH$mG~wkspY%HJ@Xt+cy}8SCcBRYzYn)C- zmA8{Q4chk^e1G}!=d#wnJ{+$rZzisuvo-ko;(O+DM#tXXo-WQgNB+m{_ZuU7e^!O; zP6>Lw%$u(>U*KJu(Ok8ddZ`oN-DZ>r=Ez0;4!^i%$@ZBi)!kRg1@(Tgk5XQ_1WO*Y zFh@Rh3g0A}xfx;-&A^!W#sla~mYuwH^WzsD|K_UPC8ElBkg3}77L)FV8&49Wl_ln6 zORu@Uxp0oz-|v4lsyBUPmGm`Y{FU^%V4ri4(0Z$tDn$na6H6z>Xld?}`Vil(EG7^c z^CY9i>KV@pmg7e)I_DlaCaAu%@B`aZUW=ouxpSVFNU$}Tn)X?(?Om+LEvddcMnr~p zUBP3K^j`-A!;>F}goi5L<l#=yS)i%n>}cMYX~U%2+io8s&A;Dm4Zn9nz|m>p4uyKh znl)Ey9#vj>jCTbW;|3{<7b|iVRd-6vy8FOY=&@$AR&RUkuDfccTIO*Z=VsgNIi0mf zDptfucGZHQ$BkYK9~x<#^fPgCXPS}4u=Gw2qu=dg&Z%cMeq5lO9JydscdM4hocI>6 z7Y9Bi=T@gyWp6UqvgW(MCd+b)Z<T`vyF(D~QA1O9jUS;mRKg4AZ2Fj0G$(lR1D>hP zFB^8=sCg{9!#PtdME%goC#)Ka+yrY_PB}VOp7oWM<K*Mu>N_mc!(<V-xFBU##pEnu z{^%7C-z*4<4(nCx_nBfQclf49k5E8X(1IAwMH}KO6qasV&MLxle0{+&jY4NN*Tr*F z9~(;ZEpJ$xzvE3v(qqR>8IK*kvQ9nJn)RS_<spyU^bqAb-Ggfmxn+p9@jbqJNoTEI z`!*$wQw!H}+%l56TG7FirF}^9smC$rD^F)g@#hz0*f6R-EmJn)OZoifX4>!O-3{8I zEnoffet*9IpYi9tJH1nE51v|GK7IOnv->rlGYeAk885M}dn0`3qujTj|6U!lt$w!c zyri9KL}~SF%NR-jpYJqp<wqQQD|{|wgX3Gyq;2+b@0W|8?%iE*TfV;H-8TK{-_74O zw@v^5H}@d_Vf*Q4zg1^MugkkPt6ZhJe)HeV%H8$lwz~QG%=<t7+jeGs`}=S2@46N| zlR4@Bq*LjMcP(q}Vbhi!Q?jEU?@dkrS$i|;_9kzI_=(zb?=K#Iu-o?3%$kPJUmAnI zh{@I_9NKy868klt+s^tCP5gH<jUSy&f5oD_;bHem;WHPf`yFJ8*SVw_VRE2wtFX_} zXvtSh#ew-d7xL?zOn<v&rstlk5A_UIwVdDid5f}N^p?vnSA?zK+ujuO%+qQ+-@2YN zmo+5?W#o1R#y@LZ?v-)&{9&6fH)k$C@%T)0)CbF%>A&Azy(;IVpJy#%y!z^1>qYkj zRZSi>CceFU_S@0jAD7ww|N8Z+{_MBqzh77G%zJfs_1pQ|>u=W8JH9=rGjGE+tpc$e zAwTam>0S4_RMK7bgcj_}-TmuO?*A?IJIgI5+wYk_z5e~F{r@tm%fy5)Y^ro~Iktks z%>Bdt+k7U~f4(f?&Cg$V-`D)T{`!0G%l7-OFSou?;@142_o9^H5-!Kt9dZ}8Pt#ZC z`CQn&POp6T|2OOFZ@#_vrtI?BuTOva?6%fByD!RG`zrgERLO5@RhQP8e_nq$@B8bz zx`Gtl9bEGR?%T1+ug&*w47~58H8+9FF6#|*_PMwV+20y1D|uH6%d9#5l0|)o_tbN& zYCj@0<|a6%KD<?_F=<C-zW9u(H9R|odxS;anJ_PI-!As+a)OVOU8;1W$ia2)7sG;c z<~Xe``4X`~FQ3_==W6;izMDr=gjenOU|8bx(`{{kfq>ufnDZ%YCK@xG{(N+GN;x*8 zms9j(P_?Y+U6;TAS9F?QaW}nqY^na*&enHY2~(LT^0mlyINx2<zAN(mt7W}Q%UNVQ zDinS=oM`l5ciQi?_2?Tm`)T|?qnVkyA9-^A;r5O>Wp}%x&n)DMjj<x1ZY773cA5Cy zyBj85irU&&=(yo(h<F_L*-4U|^`4(CbJyK#OP-QqVa>E;!7l|dmYWI&a}zeNiPCDH z$@C_6`h+m4=N5Wrgg#mMJ>Mef7_*aCXy@C_Povi`T6R7WnazI5#Q*Rl!!#Y4V>?dG znI^@)<bvy?0=wDC4sTPpZE4VBe%qfSe_;aWrU)PP88(+EeG*W*XvM#%a8{ei`qw*j zLP}N~{u%ADZrj}}F^dy^Oqe#${_4iNZP!!2y<7INM{Mc~Nii9nt|_+{l-^n7&TfBs z*0aLcYer!cLk|f(4sw?}tdbmeKErtNYyT!kF}{X8abw9SgLP&~(}E9mXU_P1qS<4{ zmRB~Kr%z;_6|_wBOWz{#^7J|>N#2dEq6@oSU#6I}ywLJ9m?;=&x~_O#@QTt|6Ve}f zq&f&mr^YQ?pI~I9o5t;(wa_%F>1LF_f#l+cQImQy-4d=<9{m;Qe=YS=NSjZI+vJO} z2DfzGrf%cYT-5Ct-@5Pk^Qx|skE2d+S+PXx@sgRxQ`c3-1#=``l=`VXqsPqpXjh`p zUdvxX&zk-(SJ`NAJoB2(t5t`jQXE6O6C0ZZUwi%%og}ev`<C~T&x9n79{Ak&WX0M1 zXAhsvvAnwOwa?#!GFx7mS$v)K`M21s9ekU$CfU2MGCpj(T*Fx*=i#C6&8MYecCUUv z&-;C2|JkMfO_GOAjw>geI(fTXBey)^rG^yq>`Bfp$}WA9PCaP{_9>-oi=LjGk=SE; zQqyg_!=3FXLM}WnZBDGU+jWe8v*w+}CGSihiv+*2IofgKtpC|C|HhSR71=LYlsB!o zZm)6c!`+?IE56CRnqDvJSr!=kS@^!kJO7;dwu?VLuJ-0`3QjZmo$@uoZS(rr=kn9f z72i(1|MJ&nuK5MGzp6+ay}0kk*GA6I30<`byWc*FvO3uFf@g0+&%&A3xqec6Yv;dZ zzMUKX-md%Zrzd_V-)>u7GezYe`)m1&fmj+DmL^!Xw;LK57(-h6ghwFmhM&%R<RNnR zv#9FXV>&S_%Wq!H5L@gM^(wY}^J3*E+qgHR_-yc<^zZk|<r_H#ChRib+m-z8^POV< zo#4Z3egDn%eJ7X6Bs7D|@n8<8N>itR!!i~wo;21O?oK}Q)8;d(@+j$SonQNVLg`Ht zHKWdbrDyHlf9oy!Z<q7=uiMqwYg2FEs_^?a+qX=3jjZ5-+9s7o&P0X#KF|C)M1E~Q z&)_&q?ZMTkJch?2MQ&e<S@-$w^O>M8<#_1q;-A7%6BvYNB%Nuu<=_d-XmV0pX6VM@ znjiXi+YQlmbwaPo&&OXa(o(*<!YX{*w+Ua~P2`@CHKW5oQ=mh$orzQY@A^&WR@WxR zzLPVQi+H8BB=6MXZ`(IZ9Gw)f$wcB!m+!V4Iovz!M73Lkx)Of%YZtV%H8VM$41O(` z+@z=~a-_%M$jgkfUH6X%g}Pe5`f|ZgQiz#bLzpw^Y*R}`z<%LF?)wttiuD%N-kr8O zO0-Yl>bAH_ZRduxr!zlXy(Qg!cbDEWi&cKt5;vF~ek!k$yW5R_hI`ty>6;}xifwhe z7ENEQm~7TyeQ?5sI-~o7i_)3o9aR-4>+IM&_so}zR|MMcobQq4;MutRL-VUmn>I1L zR<v7TmVfGb-TiYu7Yf7<tFYX8d-dM>oQv;2ou2YRqu62E&3;YCz@<^&qgQ9yU%bB6 z@130VRMGPF_ZGg6fAt`@oYnr~j2YWJAI;u!=ZoyV%Tu@=_Pw9MzxcZXUxb&9_uI>k z^6%dB8n2di_*=wKIyW=Cl&?9ErR|v0(rzAwEq-&>i1oD0QjhBW=wZfl`HMu{o+6%= zXM#HTwM16bgmkuae0gQ$a<E9^artc{C#7REUe-QLKI5Cn*I%=?vNdqZ)45qT@9(5d zseG_->DH;r%-vI^#M8F%sVS@72=^9FdF@>G+UP>*0`|VGY;(^1-xajA=xK@L@@Z$w zgqv0*zF2ij>iYFdMlSoW{g~)=w?9;aLq#>}!}-jso`FWMOt1azwkouE@o2(iPY=F7 z6CW<fzLFJq%{%zdx3<mi4o_Vw^vUF}Yx>F5(DU0%Z}W1LBncY$sPb-EySdlC)m@VF z`hu@+#a{D{olMe9oWxOosV3m^zBSffV#~J$bxR)K`z^gSG2&uOjP(1WtCHq+5v7vL zTNR)FU1k0%GWG6JragyC*WQnDxV`fE>&y4A{Fij%U<|$_fBWsOn7DWMZ~tG%q!k)J zf8L)@U&2;vU7Zuf#dGsu!Mn0UwKWN8C39YyF0G%&P_1zP&&ACbgl^8d;l8W-)u}^E z16NDy={zi3dcIh5##Hum3fJ#*`P`Rn*>7EA<RIg);eL$$;m}heKfe{Hve;TZnyB}& z-iF!#Ikv*X9NVS_17jm%3y;0wx%s!v1pdv7SKJb>lCbQj(moCewv@t{oE6bJAG;XO zDx44!<_=VGpLXZV{r4W8o$(^a<?hr8smjjZ{rutGiAT=OZJx`YzN1>{)Y%I*c60vP z*-H1#Ea`Bv5jZmQo|TZYYK!uc{+6I~CWZTUiGR)re0fPaU{%ch-{rrai}kTC6fs=0 zg7M%v2Z1NtH_yl~pP8rD-?gLeLZxVE=EUy|U)ygU@d$L_c>jR;$!4*8?nk5rdNxX{ z-%>sjTiLWb<KB*%!n&pTwl7}=J>QsDv;AIMvfdm9)}}78c|SW?_cYeee^wZ#UUsU$ z=fo`4bPqNzwTQ#<(%rl|olE3P*dk|L_jl$fVm<hFk!O>N^4yR4wi(QaBo+l7Y*^5c z&u$^G;Nb45deax^&Dw9w(dN7UW9JPW@yvOmA8R9O<6ore>mTBH6!A`7%%ElG{^=3Z z&dE(~&$wad{CA7SsaNVB|AbBX-oJHSslBVu1cifaNAIZ|^Ke>fI)&Al#VhxKrqCkZ zYLU>u$!o8NMjj81ef89B-M%L}p?ysZESniQRHl}&O;K!YW_#Thw9oMRPpbzpJ5F<X z%`6aqaQprZMZe6PGY?KlIZfLcmKq$)vwO9{ysvCYt;;<o%0DdGe|+*TpY99F@61ka zpSB_JZhQXRSCcjLY(GTJskwVk{TEyEtk-{Y{z>_sJKTNosrUlnxEh=N`}pkV`s-~M z?0xy-mAA!Dn_s^lr}m$0)RGsz`lR1~zT&FY1x5e-<891mBzM)a`WHoTzI|oC?(>Z| zdg{~bp9V%;HL+ZlCX_pA!j9I;zyGA33SVLSqFldMUbBzo>+U)h?jy6-Z9RC;y|L<E z{yeKY;vaW=EVNF(&@MksAah?k>tpNOrB?!%Zg1?ld+^eihI8Lm2_JA<c%|^w85{ZC z`zx5)UT=__`gLE&<$~PEZGSv1;xr3;cDu4KtE%0%w&m`sLpx67f9G;kJ@jgYN#&Lq zXIfIrVl`~#e}1S={=D{cYSr}DM>a=h3mxK<yR=8cHcxZrci+uxPQ0IW@v)8nrfbi> zY;~OJaAf)GCGm=R&o<2c#Uak!|FO^6rvKDDRdEr|qMmhC&jR0ETf1fUuC4!hdd^j! znjCmxUdQ26pZ{+){OyzMvC_x=!iA!K2bb>4Wn0WoO*2}s{Kv%9+l$3hFU1w{S#E#x zHm!Q9m!q=z+PZZv5elnbaH=#FElc=&IOx=qi>p0V);h_)$*cImVtp~sBlF(&sP#vS z{+wiaxAMIC)rsqrcFa(FyEQ`pu~F=vn6BUc+Ru`>q&J?I+Vj#Twkp>yF)M%PGDXpX zy?&p+`J3k3t6QC05Zw46u-Ix-eC}>dulJF?X)L!Rt>4}&k*ogtJa66RZT;e&yzdk$ z1K%sYE~@$_zoqZv3v4BeC6@6=LvthI$2MkxFR40y|F0&?o1<)L)51HYzD+Xq+^Cd! z-9(pdOY6cDtCG)5lZn6e<o5f3B`L8Qw<p;o=yxhyeqMj>VSl^(l#Ry48$PFfIR5v+ zRny6RF8f{^J^#1+aiU7>^^Y}OF^}%}&((Jh@7s5Gf2l;xksaLkz2C>37r&U{V{5s` z=g?iFuI&fQ<{im;@!(b62NMMYA#0WG8mg0~SU)WK@Km~N*@v6a>^i?L{hZksV-;hd zV$uA%^>g8e#D?DK5`hc#uI@jReqK?c@=$rV-)@$NXR`Y^7A-bBD8ZlKTwtq|G^63L zh)mzUB%jBXuh#Di=03P?F4z0Xt#b{PJ-Ff~xE$&DXLQwQ;<O(HmDProwUu8hKmB_4 z=<)HBySr~|E7yImEc*TL)8(^M_eD;rFZEsO8j#_b8hqaIhlE2*g+$BkjJ5f`iv<rK zmj8UgCwK>knRKlr`)QBUGM#;oy_`NzxwUBb-_Lh{?>_nV=>1>!!gUOe#vH0I@(S4F z9B}%<&6qQfkMwk2EiXIG{=?6?hqWYRg2=;1B1XcGzUuM)=XQzcJJB!r^l*yZRWAR_ zsRo>iPEKw1YL_!Mn_f6He|oK#d$Qgg#hM-5+fVhMVp3yLR*Kx_^WBa0#L~l@<uww1 zmw&MOXf3~)F(YUhyJwsZ7sutAhxXIgPF=KA=H%YBr?$K<+AweCu7YspL?6j!l}ScV zDp|4~l|~7b{#`UFP`Gg45}qDYu6{?G*pxRplY184Y5DoU(28|OuozG31g*zE;<L({ zP1l&F@~V{vf4UN;VkzSJNLFXkk<SX|d2uS|bDTp19v1W~pW&O?aFFL`j0AUPAX|6! z1_!6cqqdycy{~%C=-zJD7hulct?3o0A}_4cFmKY6VmH6onFby+o|jM2o9Hc}BgnB| zWv|z>kK4HJ7asAl3(}joV9nnCQXQK%73IGdvhp8)kc)e5Z6PYKezkCgcy9UYieOEp zYql*xEWL+kc(m+{tSc0nzaj1Tv)KWrhEH||EZIDlPfhSy=SQzvzUzS-dcUYI)7kyW zAu?@)$%0R}PJL3T*$|R;-SytSyIJebOnRgJ`SAK_i+DUg7AHPVc=b(dj=zt^x48$8 z$4UPU-Dc=vv&E8WrP!uN9=5?*BD(6YGR5C6@|<zxzHXh@44q3_{{Aaflgf+E)U??= zV)U8NkRyES=<J_5eP{gEPFRs$z?f}c9%HVO=d2d9Kvz0)+g^`HGmq|QxOVzHb45$; z+JkzG|NK1+%m2R9b#k7>X%bYO^vN!9Q`F5GUvU>ZE162?P^s6SjyN|>Fq8HAVzB4} zqnV!}Yf_3`;J1@4Cy$4O>1ch_*mjiZs&j|jT>j6NNk0;vFXr~UzD!*|yg>Gk|1Mdr zhnbzHoo{n~UD!KeOQrX#bmwyGE3LWApNqFxUs-(O^f&$J-HT_5u*o{PpY=M-?9IH& z$@5EOzM5!g#NkOLVY=U~4ms~zvm&Zm_UQYU{mTy~EnF|x6tH$%{h1vJ(pQ+1^ehhk z<zu|c$rSu)L+4|WZ<`V|M0grk7CUIDh*(rHwais{%OhqQe%7{}ElEAqx?MF@y8V@7 z6_54AyqX7XnKf_po@Hz;-RQ>}@j&mTdzij-o6e1_j~AD-^M&5C?-C35XIQ@As_*4< zVS!&Xvzet2yjqs6zIw^(s(|2ClOpEUo-Nz8Y$fx;vy6RF)gkQ-o*MdV<URK0NKAO} z^33O>69Y7Sjs*6t;P0L`=Rlykr?s1_@7;Ok$yYqD`2_}ko1%R7*km8;xLn({lNZk0 z$scXu7p^beruSke=aw1IHG*9Z=)Py!vn%t~Ppz(N^CYA!UN6gMU%Mh-u5q9CHls^o zfi}18<Q!IRH7@1jaI<@T^V0WC3nP{Gaj$-4qr2BCOy!Y<x2)+~9Z}cI$N#3aS-rX? zsrB;RcALLGH+%f5<+CoY^WoSZFMscRn<M)?jhz<kmM&Et70c>9%5F2iD7my{Qn1ij z|NZK#uQE1Rt&IMuxl%s&*jGl!uQ^BNq)qX&pLJfSi0L+4U^~0citYY;8Q!EGX5bL4 z{1<tvbOzUxOOrX?sAaitSTRffnCau|zPHZBdsgi|XSFhQ%S{&J;4@m)ivyOoJmXO^ zQ$BN|e12YDTw?87zkAO#Y%jT_)ocpdTfgB1|C2W<+xph`iOvwH+t1#>XBM?@kK%<i zu1DXiDwFR`eth38`Pk2b&D_p2tcrDfxLT5n9rF1W)LnP>DpP!GV}IzZ&a%yNXT*1x zmV9XtTF{iU<;PL4Z`D%bf#;w8TFT(=RPeRvKxyy#{6!W~?6<!hu|ND#^|x+s(fgmN z%i`>K7w>rWX#c**KLwc8p_zdZmWH;aCA6JQ#B|)*2;cn2W}t%w1YWpWRZP1t?|RYs zVqSyo)|L4;T^F42QVN;4dD|Y}U$3o2G^021x^FArSgn-HpKg&aCvUmzNn=2f>CarV z%I|RzNe44^PrR8Y!4;OBB*T98M2=sc5U0)DqU6b|_WZV~Kb7~{_3y->e+>N(e}7L6 zZMj)mINxZN$mvDrK58FSUEW#ta{0~nlk%HSKIc5VVaf(yiR^<#o}ZSVJge^Y?8j|( zCr1nKf4REzJ3^SIh*+#YaewlDHIux#OyPB}+VupB6$H;V<QXR_I4lWv)AZf9Bu1^f zs4x1t8RyKi-BUI`Ih`wWde4rt!OJGCI`Qg?%IoI|e<o_p@>_c8<f_PZpO2~UU{)~} zYnis=y4ja&d!4@jjEy*`Qn;fjd%simg}zd5fkeTcHE)))iU{|a>Cc_-_{^s{u<W(_ zMzR0A1-XpV_%{k&5ATq9|GwswX&CF|nOtmPC+D)T@c#I*@#ylSY^(RxecSNnsIs}P z>9R(}{z%*PU8z4V=p2%W*>YJdQD*ax)5+Vu?AyHOrC6?Wy8*M@8wW>2$;OVC6AsVc z_vofkwbmYUoex<XE<5vFJ=d`CmxS}qMQc5eUs(U<@aJ&B+>a6&b!XV4xC??@#ota0 z*yV1J%)qa*Ytw;To$Sc>@_x%5Br5YfR{x4w!ZRi5@QjJu4ln32zHn@=bm@VFW4uD) z{EO}MPwl#yIxqdJ#4^^&YgQe4qjx$uWLy2B*lQ`jIXQhiBnsV}ezQ1<GX?MNXj%T- zA~0)ffJ0zK)Ry(#X?xd%Tb~j>HaDw~Z^irIw8m2rtE&S0E$&|4A++6h=Ns=mJwpAW z_0D%s@5(ury(=hT?Ju!e>)bPT?R2@klx^W158v-A=4d~w%bgkev|eu7qvJuvuB-~a z`c@v(e{y8$t!3`q^Mfl(Pj=t=85O~2&+}9UoMkucU-fflApfeL3a`EgeZDMwOL;>1 zLD~HsE$Kfj0?(>WU!Z@fNHpy7{EdPWj3U>5-V?EQk;f*v$sc2k+5C>O?q`|Y7+>RX z^6cbopDW&T&zgF*%JSJJ0g(^Be#>q#1TU(OULnYP@S|SB?x5((HXCIoq0*b1oOjjS zVy@=-yq&Mz%FeBE>XA!)zcg$AY_csmTo=5@EiO*E;Z{s)WU$_=zz9RWK0{IS&a>*p zd-Zl5eVHJA);!mQKX=Q^T`%g`tiv1H9UrEO-24+9`TS~CoQy@%4HxO{mJT0Vc-ITt zB(5`FajNR?r*)OJdSN?u*OnhMH<5lFe}7+j;K84ov31{%x3J}H=zMol=-KMUda<IV z8_l1shQ{UdwE|9u~()>PJhn4#{vclY7{j2<W7*JCR&OtEZoH8e6cAhv6MHu84S zZ8Ol7H3iG`ulTS&c4Bz4xMt$&Et^UcZRXvO<nz6_DNW_n#1&>Qua`4U+QnL;I^E}& z$}E<$^Yb=G=<wwD>g2?lpZj|(vVG^YZX3lJPwk_Hl*2i^t3)`HekQ*@IBmzzoBtCG ze;kov{QTwixe_t+=#X9Co+?G1f2_iL`K3~zvvhdfWAEkz9yt?xU9Y?9m9ELSSMj4~ ztzpgYghto%TmM~Bem?E6<RiZ3=QB;Sc%&@cI|ZM<3j8ZFW2vjbq&vd97qB|+aJb98 zICXMC^~OsR%(i{HznSkY?`#g0*vzdf9GI$Swz_-$ychF&;nAHN>Lri&OI%htXTM5e z`ed713+0w&NXC4-b@1q0-{sYJRmuwP$;n9tFaGe)J7+70Gf&e>rb8#*PyM+xZU3fS z7k<xOaDCtZd)v3n)yY41W&38nLLL5+1yP<(j;ZZpo^0nL%(DD-J7r#qBo}4>J$EXh zzv#)tdgJE`=kNAd-gdvEbSG4MVNumPua^t=)D^Nh{^#0M6tQYjc5#q4&j%?DmFeN- zYC;if&;5<w|JQxNOa?JF<={X4Gad(NFV(D@aem(B*{fZdq;jN!=7?T4n>6*s(hZZE z_bi>EaDJlcvU9PSuO?V^M=g`JFh8kwnk#E+<z@ZPf6Gq2QJHJ`IO;v`odxw@yGsqY zel6I2?%?I?-j>C)yQ&Xq{bp4BuD|Qxi|u*G`Ohi7>UTT%YVCw*mg!js@6HskC}q-^ z6VJln`rSa)B%!BXgYWUYg#}k4%h`VBiGE=?w4z%64&#DJOfRnOYb?+IqgXPXfpyx| z4b{c6J-g<w<BPg0#9WnU_B{B(pSrx939lJyKW`L|+4gtarGSmscgj9%yz@K%jdJzd z|B3JKYekhGchox>{r#L(=atMQpYGMqT9SYKXQ~Z<bLbql_-7BVZ?a9AyJp#B6}j}e zuX85)Y+7D;C*{UJ;|kAXo8vc!XJ@n+9Zo0_ZMgX7@Z}`K)AQzCU2@c@>-hV1oxdCU zxPme*G<z@GTAeFTwu|F3opj@L0_VM*bA7_<|BD}JKa{ifAJ4DEg3!jPhs8rR1<%H( zuX-G}G;voPYobW#%9d^WO#d1`v1s^UA1~qW+x7PA=CCEJOcO1dnKOKTXtsY~nvv<d zRb%3b&na)C@*J<Y^DghGJRacOx46yw$dVOS{%Xc=OP6u?GPf=Z^OJCOs#w0{w4B|% zhsGNZs|d}xGS5QI;_F3K%|m_VUR<)?)2DE3UbVfU#EO01qf~+1Wmg=yQa$Fld0Abb z;A0aY&KVYdjX`qZIVpu@d0{LfNl~KOhgw&~l`icpSuM6i|8&LIAXY&&+kJ~!!vvC- zi^w!^O7yPr*n9ozz4Q!*(1{_FbQKIzm#3Uo)XkT_v*NYl%ZYy{&u-RGIy>#x^rl+L z<qu1iIWN%rv$bp5<?ClvgHLAi%~Clw;q;v|^ZpyfnidBc=&oC{$dzf?<UiiOgv9T- zY%aK|a)WR4<;U-SuG%TOaKl0$ziYQSZ?=CBjS<RQtn6_h@=J-d&DrMrcj84az7GCo zQts?~J@46Xqqm!;$iFQ*{NtO!`q(!yi7%^F{tC@Mu+M12`LMbQ-eN1^qj#(RiRgb{ zGfPik;a0|Zemm@R^vqco1zA`{?rgRwe;{tvQ{%q7Z*qm?vZGEHtsifHloYJ_|Lbj+ zjmgJPDjun4s66yX53|fPwKPUPdmG<^3k#$}JdMnthjSC2D>)nG4cfK5@BI1;hC5fd z1_`Mih)9qx5K>?i+ijPVB+<NT-K#Z%?@Mgvan7lq-@oeGje9TW>fN@L{(a$a&_<1} z_5Ev%u13TZtSl-qv|QC0n|po7gl!XKr*4}hdpqmw!HwHQOPx+0J@ZKAcGre(#keI> zg`zhqR-M+ox%NTV1i>e(x&)639_7;7q^###c4S-9qD2jtwz2Iy!8oN!|5*tmSCnd2 zO@)%GL3oDeO0np}$&yS9B;P#?dZVWydfWU_<ke%#Eu^=bZkTeXWM#s#7Gss$Mzc?K z%Cs+VGhC6vet4S9t-K&v;VT}?<n@<%UM%eD_3A4&<UTMdW`}3s@zCbCfeB8T*;gMv zP-C4oWyLmqv*|v|;?vY`-I<V>{n^zh`se~R%fp;Lxw^YGmf9{X&<KCS`1@##bbRSX zm&rL^dg?(ro<AB}3nbJwq*$BG*3LQ_s5&DyN7?i3lp7vd(ajAK%6|ekig`yL-t5`4 z-l<o{cXg9|ZenPOA?G``>7BW}t5VOU-Dogv3|pYIA}!rQ%lj(#n#Qh;YZX^0wG=fJ z76}#eYii`~cJxZKPCY91@1dUF=1FTs7f<^5kYi`dvEvJp_MK?FxpHNrX^~e!(Kc^U zEw@D7Y1`QBRxof0E^F11m>?51$<^iHU8$b)*K~FiY;Rh{RPW%xd1>C+1znl_2XwCN z>9WvWlIt5Axu@%cCeQK%#yvV*WlB3X&S>2<cWsBPsY02zSINgGCyzd}{w}jn)8n1| zooCDU|7U*w>FA;66WUXD?yCLz>gdt%c-s>_Gd`!CDm@ca<Jht$neUPAzHmcjF<Y;r zUTN#%9?TCt6LKXxY9-s!7Y|>Tp0TVryWi;Z<-b>Zt3Msdop<Q3kay&~DlY%WUi{%X z-vj)oX>ZbLZ!2Rpoc(_N_uKN%rN7_F-S_|9%G)-x@88?8TXx>x@Ar-Kc>d4PH@ly- z{pYJ^y`o#c{W<!q{pZ<#->R(lN1h6c{(akKugt!i`%BL|J2yR%%xp1w=v~|Rw=J8) z@ZX*f^|hs2+b=x#E;Qd7RcJ48rSoad{-8Cs)f<0)EZdWLy}q{c>-z4q=D%NO?#sK~ zE<W2n|KFyc-z>LsU#{rhtRz^wV%qDIivt$b{GRr~QnAD6#=g9?zZY}=ZK>Z@UT{kO z-kq5HdHMJD?W(G-{8=TH*LFH_Nut_Z=T)Ek7JabD;JTeFTM_1${A;n~51U^?NdhnD zC|8^AIr)m!)abUQhTVb>uU}4o_^HVH?0?I}X0vRZ)@V0-y}BG^;ji(z@oPhu^}Nh8 zsdJWXl7777?nS+6fo*H~iY?~v6U}7H5ESHJ;n2-+e{qt_$JSGUrQ)mqZkn%m`uzLX z7bh9Fm7koM?d><EHeaL2e)9cvyOd2@mD-<I&nRwP{@Cl}%x-^o@2i5(T3$6vYtNin z8+E+PsAbi*X_l<#PwXi@(_+G_o!eOQvF-lr87nKkbiSS;8LISBQ+x5ruY%7~Uj!b~ zG>#5XdmX~zIMeS`n2V8>_US!RFGS40@D?6iR%J9r?B);QT372TuPwh)YRl7d7OML; zed5{^ZDdf(HErQVr}sD4pNN_fCCC3f<lW;rm(m}{bg_pxTUrV16u#AYsgtj3XLHiK z1s(6+I(Vq>dU8kgxt?YD$(`QkVmGyIZhFnQX32*B7QxjAR64ACB<-e$Mzr4l_~(V@ ziffWDFI^12va0;=-iw>FCvOUWZQG<?5xYRds&n$GJ$L5cv{>OU=`0xjF(&7X%i>H= zafz!={jV;^gw*Ymnd06R%(;7_!Qb4{_LoKGEcccf@kdW{4-mH7Tqz`6B+a+uP|YOy zu;R8nVYL>^o>IBzE_-?_XI-cke`xal+{>7cX4{Pxx^4>R)8LN0J-hFIj@i2_F08J~ zEsHkH{qRTPRi1~{CyVsCZHZ@|2TzXN)4M*_*UdX=@(JfGyCgT3uZCMUN@XbVsw-V* zYvWkm-Wzsl+quM9<%Qy<=6<QC4x8nb&q$d3=1I@KtrJ!^zQ2;<!+Y^wlI?<LkHxlm zggKp>>n3O^!yuDwT2*U(|6D+3eW{=E!Z+U4uUpwp?8^I-xtD9#y(9apH^zRtsAj{; zWMq|6{n#lZ$nsL>t8KE!4W})z$vK{=vq^hKQKeU=*P_RgtEHK_g{E4YvPuZP(S638 zWoMMub|<01sA=C*HHSMQE?K8IcfZ|cDVlJ=MvKj6X-}awU+`M%Nejbl(`8rh3#wYK z8r7rm)zMUb_jL=Fm?ZzVygSV1Y~r*0-1*C1Gs;ks`<LIL6r21+=W`uSj4?|;aNHC9 zqVz3F?(6)^mu5~6kPj=Ka5tuO)ozo^CTgwG?Tj<_tS;p^@UNPA^Cx$nGw+S(%gpFE zP~RGE{e|O<pz()~H{Wn<=D4LEb@GfRV_mAOG2`OK`}-|z|JpxaD)s)n_f-4pIIY?? z&Dyq=>2o7=G_EdfTjtReB9Qm(qmymgU;U-&(Njb=eLryGMoRwrMZ#{+y#6LtsjLuQ zC^oetlW8u;mcDN**SO7}RA=&QyUL1Bf?pS(a=+4_d?xLNmiElTI{~G##m8i7zHlEk zyw_o;x+axxM(3+jpH<JwP24rfl4)zo(wV^rJ}B(zyBWvFur%Dr+f94tr-m5b!=Ebm zPsy1#?Hi|&{MyxTi{He?*6u%5m!x{O@%`S)Ecs`4+b3OnYVlV2N#l;_ho7g19KE8a zlPjk2!Z>8jkyq0%mC3)dTQIBf^*6O+cGIISXuqC*>9L;It&pj?1t$+~-m7tJg}dke zDQ!i8leq58UfatPcj?lfO-nX!oBVe6uPBQj6MnMD$fR$xi_28qyw~rfw(4@PxaM^! zZvLBsI#Xm13Nl!q(&1R{RjF#c(!X-)RLf+6RoeaOxz2sdXY3Tq*FUk6;r$~o<6yQj zmY*UP6&wt9EnV*I%_8p(JN}*@HlLY&#m`IK^>18Wxx8yBTU4@0j^mYrldMaJ^+na- z={~VWr6;dI809DLRPOj(@O<Jq<=XO>yS?wn{(5(*eEPoKB_}VbdQX?x{p5z~aXrhj zlN-JJVvF8PTD;Hs(tpPFN8Nfcn^9&4*iOMTH-q*(i5RTf8|It;$UtE4^YDmU-WCae zWS@InT^6)8W1-7cuiRFR7Bit1UHQA8-k0~x%?on!+Wbn3-MY_q-uJY7DI8TUEU{JT z8?SfnaFc5HDik>%;IJW#i&gP(*P@E9yxPXd)n}RBp1<7w{AH5OES=5PPB)b6HoXqC z@_+NjYUWmrkCQ_u`6hH4AMB97aILoHY3z}Eo82EqHNCiP8kKyOWtPsK+tp3WKD^}; zJmcJ3_r6?j!UP%bgNb(T&iM}npIaUDnYB`~NWqa+z|~Mw!O(xTFQ?+a?U_jlDaXo} z{Y|_hJ-2lITkhMt=iI;A88K10i9zz2(uS~y3tayj#NA9*y?*Z}Ydh;f$GRK4j;xNA zn)7|v;yRO8rS-R16WjZCE)x!HblPxw%0};*M`lUaeJ?x6vwioeH3>|&@5-gGm0zp< z#;|K@lKc!|i!1rzWv?u<gC&z9)z+EU`HHK>Z{zk(NQ;-7G_^MV+?yY-S03%$AH96? z$2;rJY`d8<S#NWx^C4H>hvuw@X8!R}o5S-$wUyQJ&)IMC3@?=wBAGJ`Ud6{u|KxE= zzwzrH-)$#v9o6|?VN=1IynNL{rX3R<tLqAr#eYmsFzLB<)5P#V+$B#w%d>BGR2Drg z*c+Wc$<=v=qv@F+?sxv$Z7P(#wbWXvQ#f5vF;!74z;mum_t7T-?*jCgWy4Oy?q4mp zDP{eXsP?aoLX9u)D?iX!t1C1oNaui)rb%J<q4<=YCoezG_;zsr$+NSjvHo4y)pfM- zpE<AWdU4*<t`XB?8Vvn)i@03Ap0uzmF;<?x^tZ*l-NEL8&K^^)B))Q&Ki!&evSQxq z)VZ?DwzXL+?#L_OeP{v0*NvMjPrq4c$STk@IrI=ymufn1Xwd0>uUVx$+Alp$tu!b} zU1Y}~lb{)uwx*sdc`jErkFa9jwSAj(c@vJj{G!dex9~>D{m?((7hmcPUAu{ALGVAH z#dE%Y<LU@nbU}!lbMD;BZ&D|zuKuVta~Iz>R?97$KYw2O@k8nNj7P83Z&vgFXV}~E zFcVu&vc$5d+|byR=vmOc5xMz~ECl|YTi;O<-?XJ7_xL&Q{ZoU=ZtmWflNf$=+iHzg zhKWv>CSAyVfBnA2HfBXl-7Qw3SvkjN&P;zc^P@!08J?V)%u@HY=W9=!#yq*XEwyJ^ zTl2*1+ii~nQ-qUE4D)>2x7GLWlN8&tX$J3o(ba!7_-@O-+L5L&yIw4D5_{zowWRFV zC0D941aEZm26>glJ_$<e5nns|{*4(2cIUHse2IDNzp*&cAW!j}j>Pd}8@}#sojO$_ zP_OOL!rU^coNb(kZe_G-{1LqMPM~Mw&+96Cj?Pd!l=5oUbam$XAEg)Mf8LdM-s!?M zW$C%|wYy%5<&@|&#hhF6<)O{2XF`9s<R%)&o;n#jJE?f;$&<R<=B)dnzC2KA{@um* z0^?t;dT@)0RZ4Q*!;Nu=FI)fBoPHzv!H2sAY71xBx;-xFUGe>3M})Cb@3SM~H?9RX zt*t(ic|}cNLddL{YXhGZx2{;-Jar4FOJ1S4p7b9B?$0(}X|E>VI~egZdc!n975T0b z>uLYF6Lw2}_<rx^#se?s^Ri$6=g&}AR-+rgv--j}or*3oAvfb?C0g?rEGyP+@6SDT zwqQ>7lJBbjLXGseZ_Hj0Ho?kz0^d3J@P8+dezgC0^}(NRdzn90qEXwl^b2#IR83pA z{-}G=fBpG?@7{enz3<<)M{*2qJ0jZ*yZ_}Lj%l?I+9N)x(PI7;t)TTgSIkLbD2+YI zx!F1L!MhJ<fA$;iFSoJMi@30VN6@)law}zSD6?vnY*>-**JLwcap@J~ofDQn;$*d+ z@;Ow@@5zcY%!ZuJA7ga0t3)<mbbbHGgHQjl!3if#UC&}w{rT*b%{E<~-7934d;VGD z{_3}HQI~i<%d8Sn?aK!u3I&*RoF*(kyvFzVq|;)m&;Ew!v2<1~E)`tMoxjQ1M|)Mr zCvLOjrwvYQ{llxlBH%VNW?fY8Sx3F{7vCM{EX|sddO_1?3&TsLjf!DhQzjelOqSc? z{jtb7@az!<Zn4nx6*)C4nLM;YxEoG29P&&uh|`_!Q2ub`qsbXj417l)z55k3IWlbO z={nQ94T@UQ;orX>O5|~9bdNis(=_q0ZS-<6*BQ~TuUtCou>Z+2kC|20*Y3Dq4K6pH z$@Q~CgE#OYqrg9dNR~RWXa5c>RZQ~UJ|p?S!QA4hDHnAFKZ?FC<hrAEYR+l1({p+g z-@G(pKQ46P!^QdPlYdNJ)ipaUa)Q3!&60IGw^Sx6wj1ny&Uof@jlp_PndFSUpY?nn zs}=G+GP^!|SyQus=0qN&fM}(ay&d6?81qB2r{y$FH@?anf3<si>%sTm!alCEh}yA3 z?Zytxjw=&uesP)fWv9=~VJrz3$otNs)zS1jQ_1Ud&Q=i-{%i8$SNI-<{#f?NztLz~ z(u>sDM#d3Ni=HKjE2f1R?tj_mpd)RV{am)OLWZ;USKo(&Mn`y?q+1T{eEL?1aklOg z!*wbm<w7eQ<t&=TUcR#EFyfjd)51Abu2U+{J)!IA24>S;HIuhFD4+8TUHa-**Oyh= z>M|d8v1_fLFr(lAH{S{kahbe4yXUOYuh{}`yA@n|n;$rrO@XocNo`2gbRJjLHww2G zt#@e5I=wf1r;A3?H|ZTEGft%$<-XF<etp`<%BR$Ls@AISYeUX%xpjMwmAV5<v(R_F zxV_$OPo}z0eEy+-!PMsp;+w-GOJ^K%3(Cz3v0Z8vCGA-{<C&XZZWfzZ<iRynF4L}E zIp@A2Vzca-Tepu%X*x79_nxb+*t(yiR^qx#<Nlak=krT{O?QdjlD#Hlt3`8$aYd8Y z)p_-tlM6KUMV_8dJ^w4*<>Bw;&u3;>KD@Q_uFfC!y~^kIV=0^s4X`ayF@T*TNq98q zZG`XSTW$h-KWjhJSmpHoOU-I6@#ArGc1*f)@96Ta-G>%j4LX{&nd#5h*OxDOG&mga zO0aI9vqWg|_g&HJ<If+6JY!LP^JngboiDtP%d{NxFx!zjt=YKkW<Z0Z*^CXd9U5PJ zYbiaL^Xp?_k-b!({G{)5x+UKI`TVa$?C0*)FSd2tbX?MqysWG_<w4`ryZp`Jb5A=y z-`MPOT5?^+9A<S9>HFn*b_He&@5dSP8I`;#-uG#qrmmy5=Xc|>yOp;ey1rPg%`x|G z+H@nu=*bfT6V`l`jCJi!opt8(hHW49ekE;|b7GkI{Q_h7t^I$$9gRQVw*G!hoUQbq zkH6kO{JQ)3dHwb4f4~3t#k9iXPw76H{>7DkMHk&u6cf27Cl(!Y<|u9azB)c=;nswy zi(7v(#j);t>m}E-Y;&sAPaZAN8(#a>Ef<uoS#DXds^q7uV_LkZ<@19^GyNZ{%o5mD zaL^?3$Lv4B$M4SLUUc-s$GR^^?d#5)9$mcUW>x;T2}kS%mz(`CG&vHVX4JWBMYI3m z-6=+&yR{E`F*|h?85%ykrhaP4<YTRE>&ooH`tPwFWlimUP%?3?{}K-+?t1nacb~Mr z{rT&k-J%zZwrG4alGI<8`cj<#pI64w=G{&|T^nDld()RXYwMwmzn_+`yKpdLTg{>H z$B|kMLBDwJm9%oXy?kL86%f<m7`m%;ZYm2?Te}o@FWcU%)x}H-1&e1sG<!djnPW?o zlSj6V%e_6fa!R_kI*1+O+1hP-O+0zln_HeM9HXvIyY$lcU=hpOji)?!Eu9zrdfTZ! zucqL&FSUh^?eX9K!kD$1SG3XRc<Y;YMQh)+sjQefAueC;(mH`13*Vg449e=daN+jW zG83gEmV0XN9($c<JAbuu>Y@)e+x$M?Oq#p)^r363-R#u=FIInP;QQ$3_OdX)yBa&! zef|{x>dc+S4cgD+y#m=+9$2Jv{l|r}i6^*xGyEmFx3qH{-nDUq9{199%{mRAeL8-g zYthJDk#Si??%eYGn|`_4Cz@$oIq>yhok$GhuD`mqLM`+8yNWpi=Oo){tUKsYT4J|l z$(p(RqUV;MZJ+jK>*s||_mk`*TorGMDZce;RCtrvu{g_$_0VchE9Q20p7VFwvMYUj zj9dgB2I_8AUNiNQ+T&a8-(IhfEnVBQ>g1&6isq<)!8@*N^lgsKkvb|ZeRFE3Xjr(_ z&A6$id=>7Bl1&SkUvesC^Ia^ER$99BWBz~pq;=nwRvi@leB^GY1LLgO@@1Do_|}wE z`^~za>Mi)ceY=Q+R)Cnlh02_!2ks13QF?DI%|u>gR4?x1Z=5z|Yw&_YKezC@djGoR z8L%+F{y~o1rFB9aO#IF=mxF>^+Wh)W)|{GWfA+=ew0HYH{+hhzzr*!xZa<TspSS(l zKl9FYsjY#5uDc_H|5*Pv@>*1~<;354Ouuf3+WdI+KHetfV(m|<^kUVHNpCs+vo4A? zwZKvw8JHrs74Z#TTUsD?3z`|35j`P@d;^thxR7fgOAo`(hTBZK2`Y6S*%EDOOFVm* z?OwT;@lySL=iF->XX~!I{ic*zBCc1@z1StNy?vIZ;sow>EfZozHnLeKZF4L1IVtr> zWrgXg)up#qbT6C{$fLK+=USKEvy3#uohP)yGbZv{y*1eLX-o2SCD&}x=^V+6RP~-l ztqG0QIy$dwVUX%?Q&x8~hNwpxtNzYfr97!2U4`{tP8o}}rx{n9I&T@f+63pV)*Uf^ zSsWU>=NuIf*d4PeaoMAyy}QF@+ILs4ejFh@&yg!!q&S$buX53;iyK{bE2|$bT{Nq2 zLS{STC6}p&e{I~){aAlyqVXIJVNvF`O^+n!Jb3z3`;H3Zib;35&!=avoa}Keeg845 zx0@zU;jxud@qF`8RCiYK<p(O>8?86g%~@o-ctPlz^)BkFv*!Mds`&OWQz%W|P0&WB zwqo6ivmF;#r9^yCSeaDZ?Cl~PDerbM=p#>0Ozy+r71thRPLJtL{AL(+S-<tdrJKvw zEqi%+(#2KR+U2#D-fXwtu*S^1(DZmy`T^Cc=`IJ}ZcRD7ob_O)qNqsO)*ChkS66jB z7BO7A%I5cn)vw+pFW=VlVs*yVo6G%_BV$CfJ6W~W7HhWdUV1eoZNA0Qoth7FTp1SW zM|z7kvV_d~{N}K6L9TAk@st@4?Nc|JvIn`&kf{11YO`s^?2s$pdYDAnwoH4wy<=|k z{EZI<K3|;GleX<?4@X|ixvx`le04N<x^gcIte<DI)5`Y$^YX)U?e^~5w{x#m?bp9$ z*6aWO`1LD4eEIpjdtW|2b7c^2nZEq~{C@?%{<zK&4_~f-yzX_}kq{dvv4c}>rfD60 zrLCr6S?OYX#;(+V-j2)R@4oDw{oMTBm)75Bx3Aw`|7HL7@b%wjzkdAHeEqBVc+(vl zzw(~Gx#Iefg@LzCF7%yUaLBp-wcXDrT>s?+3qtCTJ71LE?Xl{G{^^d_Vp~erX1<>3 z+IMJEudSzjlvT%JRsr^JtUQ8SD-6Wa4$OPBt9!d|-#w@Iw_muw@qHZTvO0yu<NDu^ zjN-m>(O+fn3GAIGDD3jPQPyRlcE3)vOz-Ap8HtBx{bptG{+cD?dNKU=k*!sB%4*+) zX1;c0XPYp^I(Nao+!nqr$+`NCJ2s?0>93X-Pvl<|?KUSkC!uNAbtk1v@zY#8119ZC zHham`VOhnrUdgnADSkRr{PQjQ-dCyH2^?K;>}`TnNX7dLVzM2j(~mpzT>Adi_JC={ zlV!yp>-OYM7g!tY_J?D}lsyh7=XC%0FL1PF4P)t#y!%gIZT?{N=)$)ujZf~ErzuoK zxo=~Ra}o)@*~hKm_r|y-Af!NQQjOxbk8^6vUo14tfBeFE$JShZ_GIq7O|k-~ix`g> z{t9`benhj%Qd!GQhDB?g=M3e%yg3W(9|d~f*m^SAsC8EUeMY~a8k3tvY7hE7L`;8r z*efp6v77zOO8Db(ey)(@x@&y*t{8l3SZ=)SuELXy6oo00(zycf?wBRII%Vp9|I%@r zPm}kg(%r{X-*~Tl{`hZ(VvqWdh<AUzEuF*W^nZV>ZMJU0l*!i`q_=7&YcJXr?_Tpo zckv5BRz>0IBFEgUUmu+Fsw_v`f#>JCpn9hmWtUI8wA^OyG7ZWrZIL?Wv2`hrxif>P z>}^&SfuhyhxvU#ySIH_&c_n!9^`5dTA!Q=6D^hp&O`I*{xLSc($z?|jLt)#BEvvrD z87j|f)=>`AG`aO6fi>jYjg}Mh+@~jB30%E}TckY4$!UW14Hbb3W%m<LzOKj+Oxktm zbfJpX4$pgLZlO^USKK}dS@XAUzWQ?Ig!X=!Z{7XrE=LcpZ1>Z0OnJZdxwF7EcC8tL zeL->;kGE}*I3zD9y!g|0$u$ac_BG|7pOq=yJJIAI;=~&yd{6A8Y)<>z<CdrIt$MY< z*{$1)x2Akcht-A;H?p($9^=+w5=wMg5UgRRa!ADZ%ZsW7lVvYBq;A>qd7iuclIjzT z+!sFGSZSw}q#z<RU9&Q9h1E=#w?%3?$9C}@)p38bM^-`T3ip!e3k`d@)~YPb>wlR% zfrE>iUGcH8SI&-U0kNrEa<g(`mET4;Rafg*a=V9VEKXj&E&J}~cRz*nwk0?`6gO4$ z5K?PMIQcqq&yl>-{gbSwJ4a8us5-^P<7sV9VReo8WW}wMeOTIMRh~PXFnH})IHiNr zEYyu<i<H;4$ukypHfJsS^ux~WM3q;W)T(_(>sC7%u61`^z32VHHxDhiwnd-X^VwqC z+|z#USLzt$#WT`eT$8?Lo?D=Bc#Zqfu;69)exI0i`hxG2V|+``tL9C(c$>9`XI`3% z>zsXT`O(WJ8gGfU;m~8{cHWz?`(xXWrt?cpHH5OnKNud|ZmhLx`zo%Dg4c^H?(=5f zXp;%<XnLM>C;6UX;S;xA4ei3eql9KGa+)mlugR&*w!QdKtfIxLf);=7E9GZm&7A)3 zTI{p4p*{Iiq@+*dsg{X9geo~YN|(JT)7s+R=jh#e;r}Yl-dPGun_Is8u=87GcWdD$ zLzZN=6+BOSR&XSAdEKb~-C<?&HTk~r^2Zs=ejR7MVX<(TkPEBQ&B=S!FE>eL+iGp` zp0ZYsu|~1^&@t;*2X~Zm+!Aox*U-<}<+qlr<=pn~y{3xut}j;lTI(^{V#&38KX33) zn^X15RGzn1{DWb{jkv#RO{+HScfGh@PwUV;Ptk<$*S<-866AJ{VqI}o?QL^&kN%zR zr2N?C-<Rg@`}a9sMlSSi?V`PR1xl~qumAn_^#2T<M5)tLvb&E(rX5%#sk})s^7Jgj zG|s)dIg}SIbJ`bSyiMYIz4VWlXTQFU>02Ih@R>mU=XJ}E&DnXXKl~fh{kVzuVvoLg zvmrSyamMA%=H|b{nYG{ho!?jS%J2Mf{_XFcwjcbmrq+0!-~7j!kAHnzJ9n2)jhJzM z{=WLn{oBjm_oUyS?^b`;ZuifFXAL%g?o&A$r~W&u>1AYfv*R1z*GE1a-11(1g9yue z>HXYI9ShEOA3JeRD&wL>)3MEKB*kAeO1)ZSDCGLcHG1*n9TxU_tTCH2yjM6}o|W4s zw#}daT95aKIj0sGhICGIRS$N(c%a*WV@+6U;o6g2no%u@XY@AhxTbMrZ|$MYDKZnM zd&kBch&U1)c}Fd5&gVtCLSm=Z#B;t?X#UqzHszoCt)1Qz@<0Chnc97@>ZgU|l@9MT zr42ui&8gjTe#?aUTo+yY1fSi?v}?A$Z~kxnou3mn7CvvD{a!J-V0mrR)|42ngn&qs zZC7h27|0p%Ei1mB^OnW(+0mbdo&Js2dyGF-c&$Fhv1rSVI?GgkrdZ=`;x|>gHJ%kN zStqspg|U8;U(WKD?$^@|9M^40lezj&uS&V-n;X;q8BY#e%aPx6H+G}$f_u?n+wQ;8 zS2`f^={$!)+n3XvANa2Q`IT$-=Js~?<wuf^^L|?>qp|UZdg}$Ykgwqt0hR67{pz?~ zoOJ{><+?i!JpW|dEZcK<_L~)qg;L&!E=9jg`=MXtmT9ed?)*$~<8$oCzE?7~$jIHg zz%O|_J>tXNMH_4XPP%{l?|-H>%84Jbv{?-ek=v}W<FAa2pzB%*ccGs~`sUwu6WIGY z{LMtBQ)l13QE!a9bEHgq%g+s>Ummb9IbYlq(3$6AnEC0o^^-~4G=e61YB@B|^O(50 za`Wc=XJ<Wn&TuMEUmUNtI9>dZkT>&M)|q#N4zIX6YX-xLXDLR?=JO^#=AS&><$<=M zY2EsYs*MrHlI458#@%thspV((Fs*R@6L0tDlP@k8JU+GO1AF(iAnr*nt1q5qcT4;6 zPSvryQ8m76s<zV91zucx;wQbncw10=Z;D7r-RyX+`M%xfX9b5@>S_jTG5cnjd?s2& z`itnA@0r`UmS^sn>9%_R^vfc(=PqSRxW0Q^z3j$~>0Z^5lk}c>+7zFk{{5uQ{TrLP zwYL{EDk^-?QrcW`X6pCKs_AE@+3$R6YTmjuLGICX&J4qos-`hv*=2KcZe2<G?Q@|% zPUe8~lP=+i^QRZ@*mdN>!Ec4Xo20d-oXlSldg<m(@ufC)ygWt08xEAG{4hOo_jvaA zhi2Z3nnaE+Kf8DLqKBUj#-3d8Eb$5d`^n#X4%$TbTYf&|Zax3_f;|N@kDlw5vMf7v zxP!l`Nb%0Tdp(X-53OR3N|#J5)?fQ}N$)l*gAhe`{tIF)ix}J4Z_T^m=9lHVMKokp z^ULPdth`IKd_^i3nQ$6NE$Fr}6j52A>1`>rk>lhd)nsPZ)`_)>Yi~U>Ue*z`r?0b9 zDPpFEZ%LlYRL2YA``q&LB(HKrH=n=xc1DQRrVcN;d!kQrcd5)+cIr#v%9E@nj9$Et zFDpo^&M$GWe6Id*vf!04&9V;vzY4d1Zt1-lr1m{v)qM81Q*M2G;IC5=@mqZMk7SA7 z#>#q2r@5{gy_G*tO{?aPu)b_neJiEYZ8`sJi*sAvnOSvhW8+ab*6RuXs1~jMvae<5 z>vM(-0dGWV@-z<%h}^IH{iuKQ%h%@5!_z0<kJ~>hZh!T^KYxDxdUW@_-mB0rmvy=x znUp4VRaZYTUd8&{Bw*>@`FAHtty$=H%PTMP?uXnspF>BDqU{}L)*RfR6!}QI&9>!6 zUR24=Emx{1RB;>2|Gs7&Dy?k7+OW-R+1l=dN1514WD*u=EL!(CAX@hLpXySX&+;oD zPlyP!lsRL$PBirQ=CTgf<$OWRygin!Rvx)4j@_#Ek*#vtw#u3Jv&VMDjXkIDeJIV; zD5_-NSG|4WbLH#H+P!_%7H}rN5zs5$dV$9~wUga~VcO4o+L`;`1m66>sdZb=`|K0Z zfFu7{impT@)kz2%RjWVm-)WPw{qmP+{jCq9lJ+ZD^PXL1XtKER_ykes%@tEr)S?P_ z-vxwb+dX?zSe@a-6n5T$H_)P0rOB+d_~Ysg`>$K<-MYK()6rEXZx!PeCOSB4onv73 z+oO=aHDI}bzJQSb1sT!x^Cql)6neO3R>jwre9`q%HT54~y$hPm(ePaHi+~pIhJd2Z z?3lWk=2jaoRhbf&&Bs?>;odmc^Y(<VleV|J@7-`a^GZ|fwbe(r?|E|kCF7@(uZt@` zWi+xkp9%=)mSvC6Yf5_c>ptH;A@=&%*Ooc$2g?)0nRxa-$a>)a{j8qLzxG`M*()3j z<PB!-xHogN|J~LzyUP^Wqc~Cv0$zM_5BzFA?VP{ov)$9Zk~oiS^iw=}YH$28&pmwR ztj1dZ_l4CbJ{9@*{IyN`0&(@-djGhOPj#Gytz0z1RxXloS=iMm-~QPipymDrESYy- zzRz2-_l%nH&E7KelRd?=T&5jQlkheRGdQRA^J}!j<AzM>%NAZmM$Nasu38-zZrgP* z?oHzRr!V?XzPQPId7j(CDQ9NeRB<WmE?w@_rSegY`~AJ=9c;;~w(O6xtBF~Ye)*?b zWxrwX#o)^SX*;`4t-k%jP~k@ZC5@Sfb=@qF?h`uLescB2uPI*&T^PiwQ}`E~UYb(< z`Rj{+%-_U5+|}k+7R!3SKk4bM$4!a{C1cj_*?sZ0pxL@)7uUL(^&!%M(|SFcOw6q- zg#+H5zjV{;)FKmwBlpGTg{rNUW3p*JFDxgdIpN0d@<48uL`|EcPA;03sf=O9B1MTl zA`b;FaVyG%h&>G8nDkI{o_=zw#WYWA!-Wn$h2b8$S&|Af6cjy#iv?MEe$QX#e=_N+ zoBD>3;`EBBbR$8D#43jQpSLerRhVLFex-I+qkG_O)l(`;L6$qNq%qAnFoo~oB?j&` z?+}G`k<ZN}-Y*g2eVD#ywwGT=nc7uFd8QS*yN|#8_L@`9GVyk1%0a!En`7&EJ3cIa z%lYZc*Tr)yH#nHeADX*QtST&Or3zEDYfawboat(3Uq#i*9hn})(q8Oia;Tul&vpBc z;>j~^@BV3XON`@u9>>ay!p(+FPKiB#<Mc8Uw3h5>Ydy+z$K=n9>8&@5wtAmVx^U<3 z!E48PloxF=*Yh~^{jZRtEXOgHWFB>8=EEW4OVfAtZpz$K#W7|7tYw~aCU5`o$yV$E zyZEL1s<%_;xO9K|mo@pwQ#OTS)1WLacBM7j7`E~_g@|3ff9ff(`AoNvm04f=0)@@u zxTPO@2!^d~{C7@g2UnTqYSW)~3vRwQzjW-WOy<IUH$|Q_2wK`+zVYG9wxhj<SGjID zDxSM=l=Xku;qQ%0TA2lO9*W03Y0P1){O+1{Jhkn=j#h2frM=$IZf^3b+h+Kt%c%JA z$t~>CVL#6<XZSa7ZCUyS))k(TN<EgR1rJI*dic_L&4W44cWt9M+HPvx?obHet*qem zRMK#dn0U_a5l3dO3hx;{Po_`4LQlEsFL*mGQTW7L!R~p8l`EF%(lVwQ3P}>P+h!P~ z912i>z`op^Nl|#sWFHA7pHlOgcNE^HtV)i0eWWmG=gvg+&~|C{kgkWp`RTV(7=(>@ z+67nb@15txdP`@9@bn2<`SE{>O>6%?`}HmB)AiT&%gf)-v){jO_wLH?-}RS;ahMe? z)wG}WNR{u{t^GX>jp~{LFaEOh*f<~fV9e6<LNnnD1LNTpEzX(31|Q2s4L+XNN|0En zapbVp5d-Pe^9vWcd42NckZ5!C&%AlFSVnQJ?efOTc@2dv+rQ0X+q1dh<@>;HuAQ8U z?V2+Z&3NXTxc6-E_K;ZR7%<mxQE|(bODh|1`X92`mALe3runYrx@}>5ZL@-zd<2Z% z7@j`p<}d3!(_vPO(=nNRzWseoitg-sH;ZJKUal<N|9*|@LDT8>VXIPJ7cq<3XgDOD z=wLn3qPXyz;Ay*(``PP)W<T21Inl;rU6RTf|3fDy+O@U|#;E*1p(&qosOL$eVN|SB zX9frRi$&);_Xsc8T6jh9e9hL!EP1jguOF0k>CjT2w^w%4o}(@iuN_UKQWh<lnBrl0 z_2yTOl(o%nLCSi&GM}(zEDe<1820K7PtoD6Ml1TNr!M<>`GHRQdGX7O&scLP`CdJ> zI<eC7{+mf}7Nq3%PhPYAylz_q>%q2(YxZ}ps@T?U!j*aJ`PSO6^Vy8v_w6z4aSWQJ z-Z?!`XzAuP87D&X4OUicJo)+4PwzS9mG)kI*}wmXeF}`gRumhXVIJ#lXkbC~u<6@~ z=>A)7B6ZKh&n%vJ>dl;;(XURM?OxJ*OYNqr|7?!H4@^Q5N2i<o{BHYAA}LuvL0WU| z6?N(AKXXslJg-SlNb!`YwEdB4v_q2HTj%Rmv6N3fJd4A!lWP1-C!B1usdVGF_q`|3 zxW47ekJx`Dd+xCu7Bs)M`}Wz(xdLjNQ}%LiUfTTo<b%%)1**yg4qK*0>7A^xuK0E2 z1k?S!iXAVaKb7w*@?Iho;@S9J`jbV4eM0N>cI~HHyU*%X-}h~P9~G3lrTDX=$0d!P z;_ZDO^N#J2v3f4j+kYTPZR+n|fA7j~zr6kZJNZ2I{d@lw|N8Op>gwOekAG~xANxci zudes<Pn(WnW%Fc)N6Ko~CDoj57VOjdP*>)ymBwp&>D}g2s}7uZKDg&*)nvEE?gf(? z7k_YX3N)D3BeIyscrLTosg(;3v@0j{RAx%7pPsnEp(1Z@>5Lt-&v(Dg*(KArMqK4` z%3j_@FKhn4Qx1MHHRRWe$7l6ob``AANf%UM&HTow+oY)R{&b0`o|*m5r=rVSm)?=_ zn93EW5;$#AM+cj{NVc7kn$#Pqp2)Y?Riecmnr#>O)V2o|9O>!VcyZH$ch0@aGm>2` z3-&N(g-%SFzOU%jrX^P|oDAN#QhEFK{pSo+9Yb<Tq|SZ*bh2L6y4>}|ql2qfZ2ffa z!Fhe>b$f2A?QM`f;nL?KaA@bByc0{!yVGtfILb5Z$?7x--SEuepnd3p1)`ztpZ2OT zyqgu~Vm$f!GftKm-4*@WGA{R2rsz#PDRD|wUF!6ujK`BU=4C|hTXg8eI<>W0OXVa2 zmM+K==4Q^mE$VjH%ENK(o1A@zB2WB2IPquCratFZ<=2&t8$-{X-sK&W!S$oEdipDu z1gXWBYgb$mTe!4MBQ>z=hpEYv6)FF%XDM=>U9rlgCzr2zrrK(aj_|oEOluD4+zb;c z6qvHB=_;$UR@Rgq4hDRO9xG)ToSXP%)BFU3Rjv0GB(D0zxf?#3m2{>&bH*F{qGe^X zUEP14P}#P+#v|Z{{gIWEp86!+eKGy?KKV9b!Opug=1yDa?dtN#AVFo0=)^uXY1bu5 zpN#}xX6y@e(Ryax(Qz`(^5VgzR^l5r=)8AdZYR*^dnilm>rRIPm1AqI534;)e|)jh ztkmS@iDg}9-}`Qu=`PD_{%J+h53@sZO^c=$zKC9!cK#jLE|VYAtZoG|cgHV_s$QRM zb5dc)OV_R61a#HK6n(zE_#d2~*)&ntZ?A2-R3GP=lz;7V)&Bm5yRM5UudID|q57?4 zTIETe&&=ocKk)9F^R_PICF6r5Y&v@4zoZs(N4U=1lzw#C;*)M0SKio@Qvz~(k=C=_ z^XqT#4pC=vYIsrnFSqwXkZ*(WoBP)VCU>8c|G3{N(ob~1QM%gE$M);L*RM_Aw0^1e zR4*OonRETV#;u5FPZT&iX@SRyc;~tq4e!ckZjRrtYb^M=X~V(9k}vXl9tEGUl}DD? zW}OX*KlE{LM0EZw4^Vj&@wWTow3BCU7@J*s=fx+teBBNyVN>5#f{g7-jh;MPI>Ub7 zuV$NVvZQaPNsGAKw~s&fy}y%|)1z_OO)9KDU3Ja05A{;h{A><i%L#dU=fWZBvxiPR zi`l$Nq;OHI^V=ZviGk|^PG3`h{CfApE&7X%5`X=DtJ8QoB7Q;s%iMgM&P$;Jcc*Y( zTddN>UT|^&+v-=-LjOtCX?1QW30G?9GyT+&cKgJ#Wo9#`>FrO-<@j#L7`iws+dgbs z@Yxi$q-Bh+JFn@MdQ~|4uR45*!!^|DMzG=>g*^*f5_;x)Db5r*WUTomkjr;zM7C<z zf2$I8xyMnWkKA@P9gaG>VM3;)=B3|-HZyeESG)V!IL(V_65wumc;&<UD@li^x9V)( zWj3Sd@zcL2A3Zdi#k~9e-N=Mq`L+Mg7KSUji5@zV=om0{<6{Gv<J}sb)3$fVOk)vV zv0T?=XCp`a<tOJe!Yr1&y=#@<99d&5w=n<xr8zkw&QY8ak!yDO@jh<w3+~UWzvy3l zJ67fN!K9fkpL@^zJ7rLNOR`1z^tLTrPdgs!oDH9{sW*M=X|Cj$`T8M_hO&3kw})<3 zU%ci`^VEf}rYPQ!jQFp&-1ve=iRAa?fqK%a%@QXJ;<>9t-5FvJ@~1J#-4{{5eBI?= z+%leDS$1)XrwtpJC*QoCA@7@Z{coqt8DY*Bt7hB__!-0bSMm8`^CNqrSG|gIE82Z6 zeC>LbUC|HEiRWvS8SI_A=F==&)0;>1WW=VH&YrFI=!{pU>91y&x0Rd!vbRR+y!mUe z>(Gp2fg9KK-7Z*iJ^R`c{#`LI&Ck!>_1^CL3ZL}`hxM(zWw+YiEU<fS`{z2J$+^$- z!ZxIQzSXz#t~%2?i}1=^E8c|`S6q$#TO2=kO00KcvG`%Cc)qcnV^`g3&XXUaHc7Jy z{g~4#|5-z@=F5#aSEC(XURilM%6x*KfQ9&`->TDj?9*z(Qmkw*1~X1#U)Ckp*!8|n z@0E1T`-AV_Di!Nx-F_isYu5N;MP1fb*#)Y*|A|j@KWbGsscIc}C{xHb(Nq66M;|Gu zi}zc+WWU7uN8$1h0@vItnRZ!ro2rG}`AJ`vnAVg%IdkS;^~vtu2VZs-*2K52y(-oy zyh`%Q+pAfNZhx)%YP0|UlJ%)S4txJA>?;;z*%bRZ)$GHpwE<OY<1Xtmte9Z$Sn#T` z;12i8mW9E;HMkmIgem+pnvh|&yj0Ql_<Hfh67@>Q^M5_$lX!Md;^vix|7H49a@7l@ zTp8XZH2C;TEUw$|neWVFrSsPg&WpXcwlu-H%qfs1;eD)AKSP~D)~dH%cf!9voBvTP zas6KBy8<-|3}-s37A6-hNZxwT?%Rgfc?<o&y9Gu+U#}UMZEE{}jd)I@;kR=|+_P4( zrpH{&U`=iN+U@keef#@gF5H_J2|S$ekJt5q<;@Fz%jZgo?_Th+<m3Ogz<cJ_X^OMo zeLkA^ckM*wtisPH)vYEgp4+T5$93bam5UR-9`Ewm_;13xyECiu_ti_R^smUeUwiC> zx@6Xk_t*+Blq2tnoToN6FeJLcwKXcbUv4{Z?f3OFj(<xH6Y>mXYGT-_klQH6G0A3& zX;Z7)^eZbi&t7vq^Vj?86<>Gw?dd#zvWCC=s`;Y=kBK%`SA0G!>5g6$92qg~#az9c zx(7GM+jROKIjWv+oXMHk)uOs0_T!!n^MmUqdXyd2_4>)lR(Ep7F$JA_Pc?a66*s*U zdr@|C%4*xxQ#UozXP@m(Pn+#4u{3A11n14YP7<1O4@HU$&s67%yp3xV+xpyU#+%S* zdsFyWdKBJlc9EXheQphxT-?f?q7THnw+F^J@o<?pB`ulpL9mERdErgB!dHj8RCFZL zSd}@=xF1frnwA*wta5$tr9IQdic-E$I_&Y>xZtduT<%`ZRk=^ZA0>QqoS||)dqS}3 zZvmrIIp;%TPFLEAZ!AbTzqDoI%!eCyy*bN2T_AS-XUWRMGYMjK1s$L7?J(#$sAJvp zfZe@ivZlY~ozph+yVDCcZ9O%kH)VA<XW>aFzHrruQx(fxHEzmsEI#o?+;IAj0$sgH zX?GqpJ;@YZ-p<k~_BSI^XzzjAwAou19C`48Cpzh@T8~Xf<uTrui-V7JEBtPXY*kq8 z(?3B_>hhK8V!nl^o~rK5tS#~8`n+?7#}v-<2PQ4C_{^F;VbXT%gn+WdzLb-VI!1<i zGb{T7j3+MNx8;e+W<EprCRgc2VFAWg?JKm77w^2nrTnaNYFh6Z#h@$EPRSiwANk)! z@E%J3d|QhxD6Pn>(Pp*!Y=?QL1dNxMpI?2lt>PBDyv@#EC6!%Hsv^I|PhY+N|KoYr zyR#lN@7RzgQUCeV&(G`U*Zg?6o~!uG>d+^KiCn8iA1gkbaLDW93WMdQyB8m_TNBn} zFZl1xw`X-fA2dIGWxPhK(2IY2ZQ9bKp7DRV%-WaM{Al%Q_`h4F$jj*3--pxBY`yv3 zxi{gRqY(d|Uw__htGoGr`ts9PpU<z`7E^n*eouVd?N3+h_rIQ@asP{Y`1}Lw>Wcp# zI_3E0pL%%w7xC@-@3ZPZHl%*Ob-$`Q%x>S`!pc_#j+@rBNq7F8_33&=+|Fj9kg{+5 zpXBe}x#RTmGW!~{&1zx$rS|L-diEf_?QHe@nA)F3yXWu!|Le`O`~K_f_U+C7n`d{g zw)X4u)%#;=KV3O5pH|qq-a}MpN!t#l>5K<CB)fbx*Ub_Ql0W<Pf6>lgm*0kO=RWkk z{rUNA?{9B^`fJy{dp+s*W0u#)PM@?SOnkMpvXyzmh0tF&Rvqy={QR4H^aJ6yqUx)a z)N7oUF*6)FKJ`#yvAKfu)@xSjeYW|tR)*gVS#*C%&h4Ae*myZAx6~FrP1r54cFDgD zdk^v-%IbTREA1P)&4Kas+NC`rE9T^`e`d;X<m{cEv!dN|I{2e+uZn!NZJqN5#V_w> zf4^G1)FZ0n-j=dMjnDrdZj@xO@Hn?VQoebEd24(k`?uRyS?x4*61SfHJ7a_USte6H zPVXsK7k2b<PL6lw<5Knwx7{Vh;!yr^L7Krl(_PJcZ5<01yyD|*zO+V%{kr9I(U6Dc z3IF{+{#|Z;P=E2?^W~h2Px$?Lf1C4=vbE!nzt)a7%o{f3GdyIHX5cD4I;%lyt=mo3 z22o>Ky-LoYV*V*1HVT@DoX`83FUk$EzjTwqHNw)S_?GsA)d`2Sqvjv}*7q#xlxWM9 zrxLZC%ztdYw74y_E`69&Ex1RtN60rYPIkuf?XUQcUl(8N=-cAEx@>+mU+$HzM^cM7 z+)uiHuj$GMy9rYF*n{K+`#$h3v{%#de7>y6C*sd5dDe;UEjJ(Tx7P3p3^&PVZ#}tI zi2qiPS=rWmZ)X@ZXPgX7d>=NwPT2jQsgBLL`ThqzyYe5ae0+b*^VY+OhwK)7E)?Qb zDbhLTB$ge#*!k7-!>w~>SKYl-@L>L}les~+ul>E&a<QY#PP$@7=2qreCl1I)MM%`R z^$DL3+b#ArHaN@IO?Ht?R7R)!!L64&ixyms%;%}@m1SLI`s(A;)bN=TZmzu=lvQL? zBT}-XZ?TB(W8FC_mHcyRf-8=DvOD;f_*kr3V<;oKY>S%T@s|3Z6%Pa-#@oqN_(<d! zHCD+8%{$Iqb>U#8&4(8U4<{cgvvFV#cXs5Gd%C5ct>EA87aI@H-cUKwx#LW}a~9uw z)|Gb8w<}C7_joEBH1iwdd*++$h4L@#Jbo+empXASHTAmA?zEexr`JW6o!yi@Eq3#p zS*h1$%Fh;JCD!atyKDM-U1a&$UD?-SH@}+|dj3w!g}>`Xo^ig(Qvbjyk+@qR!T9sz z<EHxW-p5`0UH1L(*RR{RuZ@qtKPCTn<&M9%lqTpaCEN4d*i`H*GVQ-;x7>!^U*+W( z{?v4<95qdks_E1IC24&m&T?7#tS`>{t3ST^_UzZMn`d|IZHV;J-nL|Czze$swSVkC zMK|xOtlK^HdBigDa`9;G3o{;E_<zviHCtoXqF?8hR(+KJQ(Mefe4uNyVBCVK5>8xB z$KRVg|2_S0>i!!-lA;Hnz1_I`MyGN|=&6Tu&F+>)e0}tf=^IN6&)W4*CoY;V^g7UD z|K$b0-j+}E{$76Ge~YHeg)J=GW?uifuJ4mn!-5<g%l*xH-{kl2-n+Zr!tKVY$-bZ1 zE_}1?6LRiabo<2KkXwH$#n|~??0&NKC`+B9Uti=OHOG5qvTJv+iQR9@S6wWBea;oL zKhs`UiZvfuXLbMW-c1(P8!YPbyE|W<XvxWpw0ixl+VK|4{)ucS@90esWnnny?V!It z<DA4%*%m(aqiKKkY6)+TioPRM{^obymuW6ldg2BWw=*}GZ@=kxSdI1Eza4w0?O2%l z?v?k##t@AMP1`OwKXQHJDm-c8o^P`hn+|T+{>(&H-}<JK^;)|rhTFt4duEla_T5=^ z{n1ac$!||4WGJ3`C0uk!QT<Ti0uQ~0f}AEP?Y^Q3PV=^F&C6P__7kg)-w93$okZRh zPBz89FDrz~4Ng0)+~{VocwW`{iS2C$f1YiV&`bF6X2rxKN;l*WIdv_0aG1^gtH@i6 zDW(B0V>U7Gemgs%Hg!eZfdogt1<srI3H)GSfAs3}M;$rO#}XO8%^50%Edm%tURAw4 zkr}U_U}(|sHBxcG%te(PbDvZQ<yRK(Ti#%+yokN@#gDmG^G$nStvXU{>0FX?|5${O zw6Ys>N7>!mjt8n03Uzz8hfLUcOC$Bsh1g4is}1Vrr+=uqpSrVKX50IkH&d?cyW;4l zJwGj9(vU?~iaFm<Nh+jhk^uV-cTLA1HSH144aI}3yB2n?oAtz|U1JxMlu%5Mmd3m= zCa>*Ft+Y%_f7Y~nY%o9N#8ALqCKDmB@pI6sl;oBl;&Zl{Ic%TPBgMpDEj(#Ecgu;Y zm+gz!Sgc%A>Z1NEM)3e^lgM@%wg;sQv8BaRy_mf<p4PNG<j&pL+~HPi^+Iryu(QZ! z@957f=FXA69+G{e?0ME=j!Ccd1eBhK6?^0~Z<xQp{^Jn=!>_XzPnY5f{jft<!dj`+ zIrx!~fBA`Xg)!S6=M~ia_B+zC+}hA(A*c2G4M{7l3jS`i6!CwxF>i6f+UM0vI(X0W zyN3S`xv2i2d5*+lmRIWg@<LlHOP;fL_$@fdSRn3Xe_vT!{!6sur88FRduA;CZ1c*e zEA6^C!#xR2&L2KcF5NY=$;z_6ul#t^w$(;b#%aI(%D?(NuM9EI+pGAr?aG_2qATTW z?@SAkky^-|BD>pE!@eNygRDNEp|zpgPJ<PW@*8)~i_Y|O>Xz&Y)v8>?of7MzUAbDh z-^#07eL}L8q1(x=j20R}UF^wj#k?*bnAoqf8Z7#3yUG9S8|KeTR;&E}Cc1Y1JPGCI zT`hJ?1*^i{l^K<UmbXc;J~+yn^rRy7_q%(uqPAWCa$rwEQqP9XLE(NKerjv3iv@bW zxahn(Vg1Ru?*wN>yRn<??61A@{>|!m+sVv3?`^x{boJbVa_O4OexkYOmzmDxFFm<- z&gCb!1%I!Ro%^$3p8bv0+>=g+o1EFG-q9_+a1yiRqM-B3?+R8=a6jI8D{-6tGr{%3 zk1rqgu;rf+WItuEd#%-D&J!QrbY6~Lf6;jF@$4^uzFoh6<9pcimop5`f0>ee=*iFJ z_ap!Dry1P4ho$FWWR83v27I*u@eA&+MnxAd@{p+g9{!;tG&}!(V|%T^v50eOR>>Y$ z0+@|E$39(5_mi~fE8JM+N`M|Y9yv(z;Y9)4NuSO3?vqjzCrZ`jjAYyZ?8%{lDW zH|0!$JTJF$wAbMxjY&re*pKbaym{6Coptj;&10&6^nQLjCI2$3H)>m@<;S#SS(m>j z=CgcUI(1oe<ywIqLeeRX8MjX?yYu1L)ZhL$Bo6E>XH&4+_R(}_QBJ|Z2@iPs+>hlx zb!J_z^U)}J*O_bECWxHbpyFt;__xDKkBAg|<9FFk9>MIPO=oXf*op_w<_qrI`(#yx z!TRRHc;01Kr4Bz6H=W1x#Y$|e&gc2L3T8@IRtPr9C_XEBRh}1qw?uz-w#Bpj+Xf%B z4*Y)i^=l$S5nsX0cc#+ovdZt=3v{_PckhI2Ok3HC?&e&TmJe6F=2Lng#BcMQzq_j@ zOC4m2G!mPscql@0-fu^f&;(1t0*jD^{}*$$N44(qI&*Q^|8H^sPWzZjWUjxPx$^dY z(f^;7_}}&abUF0fdSgpwe!?vFhXPSz6LdH`9&Kv)!RS!=@8YH-X(slZuQUBWheTa@ z{?s>o@~dxF@9KjSue48b|8-%;^2NUkg8zG)u8VrL?(&PWb+^{;j{E#6;H-GUTff`6 z*Vpq;{nL9TcXK)4&b=SKS&G`{an-MQal-4;j>`9|PCv_4p80jD$Rtq@CH`~YxcC-7 zec%yS()Gc}#`@N}5}l`3p-rBuKZ?_`mFg|7TwbDmdh_yt_-Eg4tzE(#IQ{MIUq`<l z%)KZbu=n%FiV1Gt*FDY)S<T!~ly&bO>kr<ex%a0yF1xsQ=Zkk8Jd2e6+5O8n8ZC5M zK_c?d#6stY#WI#RjI!n^Y6ZVp9r@s>bYB6h>F=0q%}$qTybK`<ok!nkIGOLTZdLwY zys76`<NRo4xeW&jpGO?4d;Fo6YsQoq3vQ=+i5HHh*`?3fH7!MLeM{>Fn9?_KHGGd| z-ygElK>c5W{mDtk9^WpzX|&~S$&ZQ8bj=<1Ex-E2mA!JRO4?(`T|qndEdN)sFI4eP zfkL>6r`kiYHwog^Q`vhW&$Y2#%AWj2YJ(T+-;I6SC04p7n%u8Bvxn)4=!WW;#C->O zmrdUC?ZLJO^BtHf@=Dw$C(KZ8WNn`o`$X?1!@Q=08JAy3ZPpYr(>1Ppy{vk%=ZfvA z0y^r?W-Ffju0L=7UpswPA-7X&l{70(UU(Cmwfyf1znvXNCor4e%C3@8yZ*#bZj$_q zT;Wv91HWIS9+W!hIq}StmD5@F-l+Si73bF!*lFe2*ipPLB9X;z?uu8(l4q{EK2!en z!L#Y2uQGnu=%~$NPVK*F+<IEDgK6&NmTYI!_ny_EU1y(9+Ol|tg5!%yA@_|gcM{dT z?gY4Vy|P+UV4!7nN9~5)9sgZf#!R2Ms*bGMyEOD+!rH^#5v%Qw-<+kJtbgnHml&SK z&3jy9yi_(6FY0{ITT;JjQtK}H*5egF|C`RrWH|m<{ng6p&mU*}Pg$0mc~zoRAgyd+ zUa6z``IKXVYRio(6=%55uTwo}w98)f4GSmp-h`+*#)&M6-eQ7pdh_Nbged8(xvZL_ zcf(S+tRZ2y&^D!ro1EPB3tgvlD=j+KQCTF!Ug+jGWxvn4<B5O7)Gn#Ms5}zA;Lq>F zX>4M@)@L~uIWOHa{qG^C3-d)PuFn4}=%|$CIq!zDg;3LB^+`sxIyWyh&SPp1>0HA8 zbKYN0#mX&TWS1~9UYqxl;pl&cpYz`KV<}dR%?vSTxQq-eEs5P2a5d^~{v9)+`tR|I z3-qI6&Q4O&4C>#xOD`y<EBibzmrA38_m`*>>&kR9=YIM3OS&s&tzE9>w70Lloz}NK zIg@W^VXRVijjycE?)USnH~FWBSP8N2^Pjs~+C4#~_P$_ad(ER5)pP9A6?a*EZz(Z< z`89S^uhUkgJAZfGfBM0=%)2DpE`FJGs@wk6vqcZCI~6K+*#F96n*!Gjze>KIzUd#H zUY^cUcARfz`D7u_e#?*F-W*ncqw?XcIJ>fx$8&Gjouv}XJB+y=_kNzg`Tn^LQyI)v zKhB!u(OBar`%t*0e^JdBo4CTlInQb=p5H0Iyk?7i_PS47Q{R8@a_|m0Id_HV(RZ~{ zt2Z#*WNax}zHkTs<JfIV@7#O#mX=rA{#JgrL*wie=NPF8-wLZ@0?+?^ILSbr;hk-K zv42Vf$F)yV#|)RXtx{EXZd7rf^|#Qp^X~hza_wt8uFv#Z^RMjYtsb4!irK2t-m4T> zu+0p+n<#znzQ_Ud%+tkwOl=!d3>cU{9zDEa+xGcvMh|WrunZ4ebaCy1*8SHq16S4X zJeGX)Epj#624@LX&wJBlq9;B*taN|9&AWG(Qs!CKZhRKfl)ZDk;`^@oIc-&G0i8m* zd|5I)8#hFUMz7lAQ9jeG#bo!z`DNTE?w9O89+~yY@Py0pXw9V^1!l*i+qX%4F!xeb zn&NM~FS9~?_v}yIebIq&%6tj^+_xQU_Vs>Rm~oW(NXs0B{pCv}A31F{5Gk%{o3Ve% z$+hOYUuOs(bCp}?SQ5H#Nvo+DyZ`>m3+oKr?mR9oXiaTD!%=)>V}%+Ix9qlm^9_&4 z#j-i~h!?uvH<!34d&Ti3!=1x?8df(B>Wf*&f7$SPc@lfEw6%TPTyYK+%bCL0->ouT zY3cXpfb4_?^7bmu`(|wS)vbKc$Fj7T>vT~3b1fFuIsWl~s#q)EE}XWgGGUf~m7uA_ zss}O$QaH`Iqtqs?P7b=TdCG!xO~+hKgI5t;M~}!V`wDv-oSkw@#_m<ygnr|b`>#$h ziROQ`(@G)E{e1VFQ*1{U^(ahX`o*I!6mZ-_JM{HIj%9HSPsQg=y-;I4BksUN^`Dd4 zFAMsvIDhAF_9Ko|naB6MA97R*Ej=Cm)b6^)I>z&FwUayx8<q&@H>;}h_}T5;<NM4i z{MM{}j#Izx(^@2VsArGBq6i1MXTHuQmpEM{XBIOFGMy~3KP?fl`?e?3gjdb0H$IG- z`tZg^pPAP$E_!xtg<Jh=xzl@A9yMEOIqfI&#wex#oQ7-}bBo!&`R!Ry+vXRlJ7vYa zPl4%^#hBd}%y=!6yyB&D%rAYBnVb$!x}PrgEV^*<NvOYtMM+cS)vLjL7B|WzgR|TF zo@}_=-l_FSZbDB<BTN657Y3J@CvD}LcdPg735J`>2Ad8qn(*u9p7o2eGhN&no!w)m zsvb*Ud)@R;=^ATh=U+~i97{Q_Yo3_QGxwEOXmq)^=f|@9{9IeaMIMNE+q@M&-LpG+ zNtkCWld>(3m6z1g-_n{d1<kd(zU;S(4173c#T4xep@D5jA4aX#tDPv77MFj0(~p9+ zuU_9?FS)D1wY`9k<I%w*Wd}?asG0@ExTn_KZmH(TzR4Z8sn27R{GOE6rWce<BkUan z-t$FfW~#kd{9Y`$^zcHC4Dn^kzb*!6INN_`<`QD^)SPDF&vc=C-!7}v#rJY|gug1@ zAKzU4S1QIlvA|!GvGlmdd$&xT^|70u30;i*dRfu)(2W;cce+nC4B`v5R{h&ksIZOk zs7?K?dcA&W{<t{aZ30Kvn5cA~(zwG@UalZ1)}%XsovW4J?CPy0!mlppYCMn7a|sjs zbhdnEzeij2(d%XVIg?-in7z-#cCmQr7lGQv;&I+fZoNpn6x*DZ^k93B-GQX*flOT* zBF@G<X6wYa?TLL~CjDB2(QQd^r0A-e9eq_@7Y#kcXWyNzaV_n8<bP(-)%$|p>z%B+ zs<rxZ%(eAlGjrHvj%74|S?6f%X>Yn+xXE7GPUG18$Imuo#Xfq~<zFUZs9ioI&uKxi z+51ONQXHKHIfIY<G#0rj`?#UwN=5gFGmS5IUNUcUJQ!qSTc3P`{Zps!0ZD!Pobsrr zzv32G{oLR%Kbh;wTqecH)sF?ETeX9qJ3lJAp+0r3{rS`UT5FCohss42pS~8_c>VR_ z&Nz8rnZv#RuDxB%dN$mB))t}2;8}UuG4DPZ`0k5}`aSj5p+2^}$a>M`I|I&{s`Z8x z^v=2VzxuA}ytqdqALnLf=Y2iuDJjRcZrOZwuAZ$cBwgoyn7?&@i_N;Dm;b+vVA3=? z=<(seJ-uIhUj1)+C7Ak6@!@aL$$3+jU;OH|LppSegH`KNvB?ExoUu6-aw!jM8vm8I zZtGQiST=n{z<#HmZL5T3qWNt&zfG_Z4M>wZv-0*@*>$WF=Fd7U-=KZ+u77ZYa$~!V zn{L6^=pdH_-ky!s3%yP>X|MjE@+b62<u3ipvDXs!ALY9i>u{tX;o9z9zTHzzJ>SUQ zpMPvO&$M%Irhf{P)iu7?Fj4T0Tb1<hn>H1vqWxpCHwRXJwd`^{x`5BbG4IYc5#5dH zs&(Q=cgCfai$ogFT{`v5v+1!lH?$J=u^&D#Z}EbV=xYY`(`V#Px%p^&cX|Gy)An_L z4Qr|e_x=6)cXs{Wy$11Hf~A==q<OAX+O2(Wzv}1zeLVN~{=6*I{q1w2;_LE+{}K^= zLKae6#H#JL&Cs8i&>OU0n9+LL!ucEueSgiw@;3*c-0GRja_M%|Q~6Cd4%Juvs=8ZQ zX!#{&CO3;<`myGxkAt)0+l{YPWSwP*yDukUzuM<%U}evg&>g={_vn}164?K5>$R*_ z=9Q-({%0@_EW_HjGeT~J;F%RNG%zuNZ(lSqF(kT`ayBNmUv+z7?fv+R{U^QoPySNi z<Y3F;_F__LP<(l?Q$gp)OOD9*CpPbH`}Dqe)%$|-+#{2#AMOj{IT8Kck3aILR@hu6 z|NdVxX4^A6>OR}$yh^^MB=2;u=s<r>(GNjcAvvW}YOQCv<%M$XPAPtTX1vmK6YKe3 zT$Az|pZw6vbNn*ll30?>l0B_+d`{&l&*wjxe}pfHBT@NlyNmSEGio1?os*rE)8iTE zc&XP?=Kj&%tE`hR9Xlx>bngi3<b);`E0z76pA}nu4VHUu@#Jc6Stz4AndSd+&f*!7 zI>*ZkgSYk{l=H0dsO<LZYriYjEH~-6mD^=5Vb`NZj*E1c)p+bt70-PbxlP0(iH~Qh zURlANNmlhf`<6=N#_5!uI_`fo_ojSUS9|xQUZup-Ij?0}wyi0#IUc=l4P(e@OY1X@ z?t4C`IZxo2_~&Cv(}|xICeBx!ja%=>Ce4n~wTdy=Z4$9S=9Fe+f{gZp4|}I4&s<!) z`le3Tx3_}6ictctER5IA9huU1Fy(W^#bkpFwyFI$7epQ~n#FO}$xde7g&rBF0M3sO zPX6H(3|5GHpxjh7@5rIf54#O6-Er^W^uIZ|Q-Wt<X-~t!A0HGFCC-=pk$Q9}S+u#+ zVDjSa>4K8;gp)*-(u8&R(+)o{n2{Uf!ffVjG4E)O(zcqGgL_@<mL15MbXH--uF9`z z0*X$1+EO+rcJ5Is@ja5mVes3OrStj>j?Ic*8<w@dipZDWYkXTk-Hwf0_mEA*%hSv= zbXVmDJFWOp5m|bKYulDvM>xcCQp;@`Zcb`tayc_?#*?e!@q4O%y!!a|_uFp$ZSCt9 zaI*P(2*uxCo-zN?XLT3h!<Wy`-w^R*%RHWM)f*1j{e2a_Uas!@mmB*e-*11vt^I!O z&#T`)y#4X=@3+6&e@;C6{cV4}%n!$(hbz8*h(2R`Z(n_SVDibAufzG{`^)>~=iRC( z?_BbDcfIuA_D{2q&)@d`4fn}S?HSf5-fPzP|2!qkwy|ZB{`vpE-rjcS`E^(I_{=Ex zzTF%rbr0$*>NHL};5|Y0h0r6RYbP>$=UhMWvohs$_IW1V#_0;)7gUd^E>X4V&-wUY zXU)XSUZ3ogDCNsiGq0W4;<n7xXzj$x-ZR-Lamt^iW?nzB$L*P^(Rzqbr1EL0$ZIDy zxlJ?Ov}R&zuTFLfSm^qRU2fM*H?5oa)#y{a>s>*K^>X`u2HcmQ|Nm?I_WxgBJv8t4 zueFig_;g?WkLT_6l|SB=|ND{f@P@#Nd(UGxPF}o3b~n#%_4oI@8kfzD{CH=5zwVc_ z-#+;F-?z)-kI(!6;aU5y<^PU<`t|k4%j3tFe_wyOexKf63wOiNvzI2+2CQk>+9S4G zx-#I0`)&K>8FMQ814Js5`op%jmW9|$EU@18F_UZhE9*&drSqzvdWJsEnDofun`)=h z^Jten>ZiXvDmP?kUT--kUEt@%5BFbO-1+eM9L?oMoBPgaPM>nlT%*O-_4MV!^EW<D zWQr+^^AXilnsw~LEhkUWtrPDoF<Z3FNa*}$-A{Sv<@8Q<vFL8N@V4_$rPxooqXtX3 zJ=J{|-fAyfIVtwN>70y<w|>k@VYhQlyT7)|X>;t0D*4b!H<b(4zBb`yKYl_sP3bk$ z++$_CxJ`tbPHEY_?ODPR(6yjzxn@jIn|hiIYc0c{iRmAWB2u@6c=`XU>As@8;*xr| z(klDb&pJgxw-j_YTXSlDyO_rQOQ=tEdDyF;VuklMGrmr7WfAZ-swrF4->~lagG*b> zYmSI0@0hh%IggX0XimQ1(z`pqoK)I2rEF3Evht(nqaFopktkK0?z~>Eb@_qf$n)DZ zUc7r^EI;u;y85pS1<}pR=2>ZelDxI{h4zJK6AUk~O#7_+Y0qvM`$&-wH|M`l)_nE* z#mP)}srgbeV!GP{wrX(&+TT|aFU!xpy6FV_k2ias#6)$-&Rn;0{^hF=F0ht4g}QF; zdh`6;`Fl(il2480Ew?Y8ZhwAJge>#Qop++t8~QufO;>#)v2x0pa*YK-rO$oJBDUOq z$T;h}?W?b93oB>bki2@_@UhFs=Wp7wHT}iguUP+ZVEwI<%OGFv;LL8&UF)=5Ge(GW zgV%YN3bX8Wym47OLlR8S{`?c?aDlnP&W|y`QCLUi&E$%CuF7E#=cqih^is55EvUep z(62Y?^H0%`8;SF86n4Cme7k3X`Ukx^=@Zq9CawHfA`_#w^{r9BHMi9-O5ShucRFIX z@w4RJlRis2YK!)I+WhWlTw6PHvgFc@JDLnGN3|>6I`_TNz4gpZzA0sH-Fjh$w)2-2 zIO=}961c3&?U|EtShI$eWai=tORV429KWGnWAd|XjcS;o>fH1|4F}zYNt;WKt4_bT zF*1sw=+QxuM=!++-CBKqPIe75l%1O%*mTdvZAJ2eO9|d(U#81UN^g)VE#IKQq`lkU z?$EK;^L}3fGmVO;w8d>(@tSq6+M)~QE(<GO7X3SSJm_tiOkQmtTSUjRo3Z(U>Wdop zbT1O(4!2;i<<7~Nb?D5`Kg|+iTaJ`P=-!YM<cdBxrDoP4Ryoc(4uitW7dQTxSu^+Q z(pTB~U;l(0>tU*#b3Zz^rSZp$A2!W3QY$_sZP#vyF^O?(?952v`qc2^XT<!I?;q~i zTd}PpQ2wWjxa+(I-J9Vhj}I@O5fl*Oqta;gYQpE=hTk&%|IF-nYCG-sMR1W+0Bhmg z3ttu=TKs`u+gxz-0)e~9_pNVQN_BWvyM5;A*{8m9VZ*gmaa)osW8}B;f4uy9%VN92 zopbj4a{Rv~+U_2DvZXiw>!p*KT;hKBzBgU+n^q#Jo4QPJtyNa`qUXxVOiJ5s3(3FC z2s-iVX(t=&6{$tD(zSM$IX-^sy?9!2k*vbyx%mMl)f=?`%qjQcWLsqOOjuWIGvANB zQnMT{t$(5G<$if)f|~YR{;!Q+zCFHWerutmUG^>J`4Yv-sS5S3M&4V`>g`-0&(WeI z)}39l&oPJLf5x#*EH{>axX~&1s%2?cVSuxDaP^733#M5WnI1b;ZV};><|?dqd?D+s zsNF(s$3InyEtTq2V&A0mj%%f#>rbA=&t_Fyd`vrLeOGyo@RYYMVprYD1MfMxtlIZ4 z;iRC{ADd0#ZM>I)xG!-hr#OA>R}XW~-WO17uO-uP^2X)0T>opXPhPgb&~(}%kp%|J z|L^Cj?!T0vqV{pcxnmC}#0m&X2|T&3ZBw(R<xlHB{e|bBOj%;#Qn<c$Q%QZh#Ih~Y z%a5PCE%POv+2{K9x;nMy@@DI(wO#90u5{jSCEar(_@_-Pr?yN|9M|Es)<QSBx%OB8 z|FUrJ{ug(S&yU}q*Ps7fwnmO;;mz7*tSfa_-n;TLL)l(+5qJNbChv8dm={gySbwSH zC7)Dv%Tn2|Pj^WF)@2EqDShb5^Jk~OG@hO#Jk`MERmfIf$uhok&)ZijPEBYy`j+c& zY}@Dc_FuiMOnS4Htnt_x=AgagW}39llQ*AazZ|VA3fy?9>3qqZ($~C(7bApyWf@C# zdEBGcp86?~l)Z79wTN-g-t;3b92fO!`np3nuPgT*Ik<S<_j}oWj0>F9S7z@t<|;h@ zJtBFxz}7iWFTLwcW)JZ;cX55O^m}u!dS=?%j;9uB&YXUVU(1q~DL9#KnD!zvxvWfJ zZv2%W_fBT(D&5{ViB&6#VezM9ws#6<NHSkIog=7`eWl~>6~@DApPbgk?YgJz*Qk87 zNbK4bS+)gx_bB?!^?tF=rfJG9=V+q^t9kT&=5g;XV()Ffee+RCrcd7apTBnNerdXQ zRfR48?Tv*`UjCgB6#OOmTXjlwyGBRRN!B0Ne{+Ns*M@Al7?nTk@tKUPTSMMzHFG!` zC113D!em`+!F6-<AwJ*Zyno~KRw@-T9&otdwTa=z(<SMhU4L#r{>i0YAE3w-cFW?) z&FH2bQTK1k?mn_s{d)RUq39KJ-Cg}#3N%07x$=}ja^Ba}cBVIvynp@k>GT$y<leFC zaUEyDg!~<ALgFt<eaj4AHA!ff-bJ&v*$d4cRVIlkv@P0lh4t30Ue3D3ySB&V*YB(? z-*cpJ!utCE@BeSq?CN_pEuh4R;md9Q{ChS3&E?%(H??yXX4-t)U-2V9@SweV#eY-7 zJM!u?{=HYKzubD_xA>F%Nq@di+W&TLbGq4wB+=IpWW0KYnCoo%pn00N?$4ji(38{a zlhPwtT2in!G%w-TqP5S=n7Be88n~vt3Xv&`^8I>ecePl_noX{MPV>2H9i6LWBDPU@ z<LgZ8o@ci>MM?}8E;!d9WEvO~y{>Why!+~MG07~+0(U)oeSNKezP=phG`aPjfpRIU zV{v0ci2Wynt`H|R>-}01({DIlR@Q1rSKct~6z_4#jheG`<Zp_<ay{<iF5RVn^-1t) zr-ns;0u#SUdjFoZZ~pbG_WjGt?QQne{{7Xy{qsk@)g5p2+x(dRyzkv8E4b2pgHOOD zqZs=oPhVVmk-CCgnW3~=)AxM?+nXsrUu@P-H@L_-?Q_*}^XEs|S7jtH?P`|jGT!GT zm2oJRQ+=LD(1ue}?6Z70c_X;=vuX<e%HOlO_KB_H)!oZ?9YQy)5UH*%KEFbA*5P&L zAJmqFd)0-N{9pU~$t{_@DOWDa?Fw_VEti}aVV9M2`o-mLuKzl#I}Yv96cA5+Y`OU2 z=Ih39gI=+%V%r|1Z0&M*iB+v!T;M93<6)*#h2PKMeR?zVYtRg#TN?it9h#rM(7ske z{+O-U#T5_BvQzRymfXE<ePG4ZlG8g~Leo`j_;a2Yt<w0$$6K$*(C+l^O!3Q}xSREt zX1twb@l4$GU!>T_8|PQ(#p%7TT+%%M-I@jQ`+Il_ZtpJ7m=<$LX`4zZS3==R+w8r~ z$F5bV?2W0p_3zusSC4t;+9*tFU#1i}vHO=u0`Hc!chh}8^R=rom{otecIxoQZ}&C} zn&l<T+IlME(JDt(O;;}--USYa4W`JxTaa(`t!eJk(|PYbyv-(*|DDQzL3%<=I;)4$ zOGeJRuq8Fswrn%@%=2#ayt(6=q+y|@%l9NPiL^`cY1xb=@4uz}4(j?~`Cs1a@A?4a z%J&wE-jY8GdK?b?-{HQ6J(BzG!H*{bPQLq<WOJ^FMY8K>)$wxmtpZw>&->1pSvSN^ zJ-9+9_r(rpBZoiIwXZ)dau$gY&^aEr|Co&Rr|WAN)HbH7v)=VSm7H~A^W2|plQVPD z_cTqIy5KnP?BE);YSYJUyPigUYI!wP$SSzP%bM3d$b05v8|#NcCMiqwe{bem_VMGh z)}`yE@9Db=w7ff+F@s$>?bU?11y#;=kB#pKe>iyV{6#I>&C{>ll`<22^y`;JUZP)r zZ`hxUli0E(E6lIIm@98MH$v&guNTd0sxQt^eiZ(=TdIEEfq85}H+Fwl*I$@)Qe}~C z+vSZ58+6UX4y>s;eC$$G?99uI>^-ww8h=cjDgE_gjK}u}_YPfOC2qEH?UIiRZ~SM{ z?#P|o6X@6GFVJ$XDTuFV!;#m`7vjX8Kb&BpJ|R?Ex%Bn4ro+DqdmjHuIi)8neQ%xj zTmI(~;by0KuLpz%Eu6Bte_xQx&Q-d720PLmb1i;8;?X_n=Ad!$rc||cT?4CI)9%E@ z*BKbzT-ogx(z{s5ZKL_U7&ZAFb9Y|6Xd&tQJ~FxbzeB_B_)9-N8|2pixfpfnyMO+< zn4>9EIJ@e~kInwLi`z;wAxY=m*Szyu7bV}G`&Pp`$!*;n6Yo{N*$aeEu5`2SU-oeG zF{bU-@8hrh*jIh`+>?Mao}cpSqmE{j7)tCknZ0QLgmC@cH-9YrmOk&yT92*^hEauk z{w+D?XWsmMYZ|}HbPWl|>kEGu9Gh-)d9C8x&QI>Wk_qST8P|9|7Qge$UYPsGBy3Yh zmdF<-KxgF5OiUm%M?{?TyLRgR;zb4m$M65tHY(QtkRZjxShJ)_PPTrI!`!&)xja*^ z7%5k{=Dhv;Rh%d0V%4^5zb4J#-TnLKUp2=BHh~wO&li?lyQ-6La9d)A!X9?DrfG=` zn|l{7Y%*Xo-_$zg_6MenJ4;@&{m<Kc%lDa2X5!^ZbB~rx-L$5oD`n!;XjStma;j6` zyEy!PesR-+)=~rCrL&`1lJa&l+)2L8bbj_+%?q7uo$EgSlwr9P;S@TJBPq!5^ulvD z?@Zpj&?!WHtut>@$JA+E0+aS1eIxE<p>2F@noSv-S?L{4*;~xh`QEJFXDuSeo6qp- zM0)HU9X=*qS;wR(rDF<F>N6K9RZi{lIumK8EqA1*Q2*GYg<8RqA!m}7Wq8ziEt{&^ z9i(<Bukl^Lrw1*<ABD^qw*GCHbN2O)l1IN9&833!Z^&L$_@epzP3!%ma-z8lyV9O+ zUX}f?{^4z<f5~&)zIYyVN&7j;e4g6P+Rm*vK5^w~B~83rv|Md}<h@&K-3~90SRwoT zkN(8V;WK69_5L=<RsFrV^X~Gw2bOPpf7?E@AXfC0g_H35*mq~e%P+>9*%@ru`Du@c zPYBcAj-{!e+ygB?s!u$@xa8x~>X-90K27Pi$?f`6cr?uSq1n{`i7b~~4DPvpn4_)t zsPpc3nMCK;djDk`5AtidIYnQz>Ab%{W#)y4zb5Az+)tgcWA1jI<w876>$m33o1MAQ zQa#=wMONX{T|?Qw8!RPw_hg4hoSB?5)%ad->POb1EP0PVmkRxMy|*tozkZrd__n;g ztHKLIT%s?2vz>h8$@(XT{V9K2qy=WT#igwkmK9p`Sy1ZEW3{hxrz7M<OSQ_EPKkT< zyn6AZ>5-9UGgEhK{$sVZ`>2j3Rht+fk3~XLwV|1@0VG*->APj-l%y6Z=)2`4mZZ9* zCg-Q5a@pB&6_*sHCgyTg+*%uXzj%>{K;8HC4+2-8yE*gWcjdq{8>g=byt8ZXUfol! zlLD4LP<m$e{dzpVv4Tn(hxmL6!Cm{;FMs|z@93%Krm3&*O}+oyBvALL)3(GFUG?i{ zNJO?RoMGn57Wk+4)7tflr3OouUA=$IzAmrqwSttu-v8P2(+Z@&7k@dif8LSX9qYv| z{%v?rH^tSHV|&P|S7rB=n&1C>KJWGSx^Em6$GKMSi4@zkVp+@Xd)wbf+&oY|U$iIW zcF;e~d3Q8tty78(PTU(hZSQV5F&=|OR?(ZhPaY59a9frqUFyW<xZ_wyp_0VoeY1Ja z{3{eseQo0>e87M0KKl!6{(ZK4H2+v8$9;9n`i4S__j^9nbg6{3g*b0pdbLJLX^-0- z?akkkm>blunN;kq=ss?JnoZz^3HPBAVOc2wJKv1IZx>d~-5s`b;_i=Y51Su5yD8~< z!p~bF($YzeUN`Qf=w>BsNPK$q>*XV>n3sqg)H8~Xxa|L->E@kSi+$#^*-l^0c%nCb z^3~oRjf;uCSB(7ByQCkmzm&A+UBM@LBHyaGU;mQrou(@~=F)kxeTfpXeBY11<*w(w zbNJH32?zYLqIh@hj$rvbQM~7_{=E~t%Z%-3oC&+UQDk4Hl6QTt+#3$5iw;NsF1HYI z*YYghw<G=g<>XC*EiB!C3|HxNT;-o;a=dwt=<$nQr*=l}IQJv_!H<2$zwS;gT71N< zEwxNx`@OV_RiAb2p8T|`=`jnsv$Q|#!MiIvcNI2wKE8V*Q24gPl~sKAQWiK*Ygp82 z@mzDi+sR!W*_x%Hcce`ghubWjtq`+)(#K`<{>y1CYYb`L64*J}qW}8sAMt9>r!P^y zGk^JG-~ATm_axSRo+^K4Zfmjj)1(^-XS8-!aB|lbZe#qpOl6aO*X51zpC9k-{`BdM zJ%^^ptT+BFGc7!Ra&Q#cCCy$EW5TsaXXz!|8+Vq;+@5RxFPN)G$|IatbJOnR5|Img zHgc3r+jOO}%RDt}E&o^9iI2qeo*p><uBb#@r}lXHQ%-)@dsmkHSa_>-k;$9Sn>ha2 zOtf;S%|D&}ZYk@g?FH^@CY)S7y(=fHlzmU<W(}LG>yGiASS?;&A-9`j^Xv7`-cJ-~ z&T32Ddh)d5ss7*MtCViC{N#Khm-=F1`~-8JDW(&)xY*`-wnwBGZDG}|ZQP)JnC<xc z5Xa+>r+w<|e)jdQgYY_${j+w=RxQ0eO@8U+&pPkI-o3iQ+>>^>vwUyVmWvw%mo8^} zTbdy)aM<Lhbn>r)Gf@+Zc0ZqZZo#rMY6sU=TSsr$^GEA?vTS0|$$M*blwR8If44}M z+k)l$PS@t0bHxPH%qtZ0FB@H5Qlx8Fx_h}6qvWUAPhPvdSe^H2W@P`7c7boo`NBes z?{(Mh+dac#5%;sb;@V%|KkyBG@xo)Nmfd8Yf-CXA-gx~w>UZGz?c2|uuQsWFvf6@? zQT^|l7Za{8tk}Qcl-TlfxrcR+95pyz<te<;Z<0c^xU#43hFPHzW=g!KVnP9$S6vb| z+kLzE-}sy8WF8CtGJ{p6a=)~MdFlf~wmZD}9MHjGqd0SBocNJzh2qLRTTk<MoI5q2 zb^GRxCiOgP*UfsJ9N5-SEx0FXYp2u2l>xge64-+icHGOGzcBU4(T5iw{QMzazbJsQ zB6q$Mt47%Cq!&%Br?>PRf3xGfw*7>frK`gkQ}bm{ZRdX@_T$vzQwrZJKb5APpUocl zLDos$HP>+J`E+yhw~b9DCaWJlcysM|sPuK0s5`67m7eYuf0%IVX4m|~880~A&z;ew z6P0;G%qZmRVv_|`byGSRE-5_n-5sEK!{wO!%$&vTr9b}2$p!H$Ysn;qX3Pk@Zm@N6 z8)JvgiAPTqEe>>?oT9_Uck$a_r)5{)eptYfoD-*;Gk5yt;xF3FPIsh&^=Amhmb&j$ zZi$I|*EJ`y;_~Z+pWzGs7OL8^S}9eD7Tw`Ep=~WPUA9TM?IoWPlSo|3G{20W%<g(g zq9^OEgx1ABsXe>&Dyvnc^scK+a}!p@N?9)~`cNPwu=2p=?FYr%mb^&hde;$WF@1sg zt_9($FM7qkh-6<|dNKG8>)vl>zYa|h*_-#Ed-3&M3$ClaxZSs=%eSiVOPKhVW9}DT zPb<s(lC?ZIyN+RR+uLoy)$jWC?z)J*{bU~glU>%Na@oSG|IRl}ylmi7yRT0utm0JP zf*D0F>IQz@_u1yjS1|g;DgEJRs=FD0wZ6jA3Nth`hBm_p*H>2~e2W)bfKLlK5}NHQ zG)dt25qVAj-pQViLf+=3bt#z@t}vRAFlXkO_4mbu`VO+(zIitBG<!<pytwVZRz@GX zcIeQx%I7(^EF~>3O*$cbXyY>eY26b=4i(vUv20vc{QBIqEx(h09W8n=^)O41c9r`@ zqc`7HXuox|iawqQJ|q6s<#PqMD&GnG5Q<J|2Hlb!xp_zNcjoBgitk66T>PW#yY-X1 z3)u^wIaFufEm>!EW5bb-qN^eOlQ!Qz5Gl~&eTm2NL-Jj@gA%tBFO|M6U322<n^sN3 z<fVb<KU;iwo;bbW_tE;k=J<bHXSlc*o8?GFUe)-@lh<E#BzED&_F1koSSx3lCeM0) z(j#y35|PH}Di^UCtk<qS`QpFd-s*e4{;%oci$DH+`?Vn8ppE3kT%Jc9N0x*~ak*LD zsOwBi6P&tn*VH9D^Uhp)VtuS+<GDkXygLuA3wQd?;ofpd>fpzt6;^hCZyh_E>`}05 zepGAV#m~m4<V&@^7TIu3`*q%XdXaU+y2GK`g~scj`M&DgD;c+aVq1mUy6=LQ_#>rW zUwc*hH9=#Wo3Nq;Cy!hjk5f!uyM?{ck@Szje2V*K{ak&&?q1r1Xddq;7QKtPm8*U& ztTI+O{Pu<C(d}jizt$cJiEa-|HuO0$q21om<nPJtEA1ujefc|ke{JP8sYx<Uhjr(+ zX-_+M=|`rd*zVY)9)I)Mw~G}^?N~IGOJ6Cf^I($l!58i`-YQ)$$yuOXwW6T-MS9_F z*SyEqo|qrB>%PslGj_4alSfR>Y>nzSx49jiDD`)P&HwsSPo!QO1akGgu%2b()hxAK z=o$N}^P%$|wg=o$H){^*e9oL&X3<%@YSn}ll}Y{c_|yw$)Px+=tejkRNBQbx_inv| z-<)_iA3oE6xw4{X$_ci#k7iZ3_uT35+<V>j)net=BZ6w@>h+hr{QBe0{20Ere+f0k zRo_Z)>{CCqOZeiRj?WpQcgi)lownM4^NsE9ZSxigCFG0v>;KDIyJ3ONXOEM8Avah% zyEa_sH#WW@`g5<~>-c+dKDSTXhfYe&pX{HZJAcjOJx@Lf?w9;f{%6~IldlR_cS;|( zWM^5Qx0L_a&bX=X)B0CxWkz#L+1|9CH>Xd%dWY5RR<YGZy^rc2x-|dk<NrN<^5)aE ztjvXGaZlbGa!;x}yvW(LaQ?gH`*wRDIJNtZ@UkTfIu3Vkdww9YIXAcK>CUn(ere0H z7W%S(Y%X8CU1(8*`w<@j)t$%U+`b=u7$Lj4<b3&=#KQ?OTXN2@)VwcTU$y64SMSfG z`g<8(AKNC}-MnOpu5-v|e&d<ZYxy`PKRr;osY}eW@X4Z08<NYljvc%{d(XrbYc}@% z{bR`8{Bu<z8=s(}nI*rBL)PxCyWXD=d-mvYmHBy#h6jm}z9zTVh5Fq+xb@vO{~c5B z%(9<#>}o<$lv`ZdF9wTXGu8)o7IXH6Im~{Sv7`IIXZJf7rhIp2dZl@Ai?`&X2f+nv z1(pTa@C#49ed=-k#E`htyOm3G{(a4wR2sDW2fwIob_|yC%h(e6s!}|2|CSbJ@Tq@8 zb8`~f<KFqw<^ua(hkv*cw?n3=&6&xq!REm>2W|;pzFc1C30qcQ%TQXnNoL9aefKX| z-sqf_D#YAqdit-$9LaOVlP7m@>#3jY+aj^>oScJ*dZ*))7e$K7lP+hhH?j^bn&?&9 zD&pe1j)C1NmUq_)LzZw=srj$6w#NQ&UMS`MXQ9N~8&NV#V`S%@5EQl!Tf1P%+D>K8 zH%l6%Ik%hcnR<%*TF3SW4W>DZV;W9##+Ym~EeJcB*;}j_-7OfBm%Sh>BYVQCuD80| z!g6(4#hE`l6^RC15PIIAw3*#`+A%p16F<Y7d~8#@1AiQz@`h(mg0X7FP7ML&*=~V5 z)}{uS&RUvqpeJ|1hU;HWEK3dPn5g`4i?uC>nEuAK5ARIs<>u=W?Z25LpsmM0Wrv7U z^yvjV9`M8jWo<J*C|vkB$Win$)3N~OH_Gk-vkJK<*e%U4(*CiuOe#(#Z@K1=jWf;^ z%xbZYO3=U8C6RtdVO?wtA6H$OyQSEiiQN*edYMM&HdF+e&gAyfzPN_%Yw*cj_H%2m zlr<EeO=R@DdhlP;w)P1uijD^}mEOsO6rM>di;xzX&F;+l?3Tsq<jgX?1D>0W*G=0T zYo5nCCGEzlr1fTJwZCPVab}gooG4+|)_WV4=(p|}lVIC}Q^zE|ir1zoR_ty`*`=tW zGG!ZEqsFaT2Y$snT6grVc6PJ=nCfD!doWZbF#7QA-32XCNqp>F=T5D0<J7pUdr(SA zS8P+Dt5|w^_rt6E^VQ95?!NtY{OE^IWwkly?c?A7i{m-}t-a7HhRvmZhg6+Roz%Se zpy~*o{eH6-?^f}em$+ccr0_pV6KoD27vAjeb-=bXJw31DWt;rB_22R;9`38I-TN=S zW^<I@^6&ZI+aGWGvo$7n`>fB)Ua;7P%N#qhIPa0gp<l@zTmId%t=x2AzxxD>72B(i zF0DSq8+3MGlz_@7sU6Xe_QVC>dbK23a(kfJ<Q(pUt1efq^01zLe2PVN>+}P$Hrwww z-&3-7oE-2gH)g`*>&YvU?>KpNL<ilvv}IA|?3HVdyHA<1%HLy_VJCmu;~)jY$W@;^ zA9;4>_qE?XTWGT<TJQdw<C#0}ti9*+-L>kWUSQ~(EAe+f+<srbBWAWFSIj!4*>CdV z_wV}^zoCt-@06Xw4Lkn6gtbX8qxL?%YIkjim`IDAf#;Vg)dvl$8oSFHwSTs(`N2@V z@4oEpgXbr=ss%;gE|rU3@Tpy0dyV6Z!@-;0^p<4!Cm6@be49O8SnoQoxc<4jAF`_I zOTzj8K27@ie2c`q$6GSX_iSvs@ojeWoj3XXvtK@2=do>T{IZW#UvvK7Gxc}U{19f% zb$F+?&6A{32I1*}dG9}*mCP@wd(G>!X7%xpVV{*xAABSFNocit)>&SbMdyFKif!0C zo6r3E@4H2ndvCw9{}`U~qpp50|G$FS84Cp*?{KySvtC)OSFrAAwCyWq@2_F(zYm-U z4-ArzFq#x~a&E$Evr8)#vOitZ_}ZBK;n3VU!3XubO64t9>EBtYu!~Q=s+RfelJIMG z23vo;Vm00r{K`bO^+lw$@wvZiJ{kP4$?bdSpkCzjca==BfAH%EyOqB)R_GP^H?azp zIz99cDPfbjSfA-MzoY7SCf^)E%@>D?`7$&<@kq%oou06E%Yna-WZpA{b6x9Lq<7Uw zoAbhp&&CV4PPBaND%j7cdYEzQvkii}9i^u_45UNSE{N1h=dF$H*lgwX?PgVF%E>jG zt<<vhE=*Z0?)6z~(R#J)ug&X==e2iUxP7NL?qK@7s~b~H4khq@zR6?Q?DmG`*pr|u z;WMubp6fc1Z#iSf;kuN`lR{@&p7#s131Yj{w%+jjQJ%Ei`OIG%4I>|gryWpP7|H*6 z{q;zG#dRyr%!m(^vOITGS(IfhM~<9-cys%Uu0<T26YfTzDA&wXJN~q!NpQD~Hd|Lx z=x?VbGyd$l=wX`}mZ9}XyDi~Slf&Y;l0!VFZgsn{3pl-URpwlz`N}2Q-*2y%*0YQK zmv2s=e)-{^E$jVXN_W3r&TEs_lArtFZSk4K<{v(2oSC`9{f^JNb!>l*ynAS|q)_&C zh~bo}TTd*@S=6K5(y=UemP!4co42<w)qlbNY5EuT<<`|!v5!Cfm1_6tOIo;M-kIVI zZpUK<tEc_X^vl}hl`&s^;{TT=vi63Y3+5De%}r=|y~cKhg6P2`Os_>}vMQg9v~}5Z zIil)f!2_8s;<CAQ6YWG*6+(mM#dJ*{WqcF5Xu<aTgGX3f+Cj;$ESif~O^>R+c=T8G zTi5g@^(Sks)V?^V)ymIEm~eUTn_5eO?^pM&@2;IO$F+I;jqe{*Vjr&gJK@o)TIc?i zhl8)~yQcbkJ)^(u!_e9B!d`W2Kc8cFG)RnIt9vUm=hU=<ca8s<zn;7`A4}b8VuWqa zl)0%fv13_#BfX1nn+fdu9sa@N>=BN6EHhuK`abfp%AI`UoaV`l46aQUQ$1!bdGzFd zxg*1t9}`jnv;0*S9<|$Wf1kpeyVW<U>p%W}d-SxnSe0T|Q$ywUV*ex&wnla3E~ZC! z&+S=n=blsKnfgNi^6vJVTJu(M3jRA^8h60xoAwq1`}n2asrS}ht#R70o@=V=h9ern z6XiFZ{C?YB@7~=wn;3x!eYTf8xSd6U-l?wcUVne1dGq~$9}JQLU)WxoqTSEk#*+SF z-<Lc+yZD4`Mz@d`;eQLhonWkHYI4fs{bjQ7PJegBQms%Qj*q9KjE@%uI18MAu+#sr zLPP$|jEXclmWK`%lUzH3HubXy7>g7pMqY7OV$yF?Ug%h>A{6Lnd(u?W*nLu3?Q<6< z!;{Cmc#cjJ=TP(DxHK&?Ig?Ex>BfJ<*r&!<uQz%$u8>*HeAms4lk-u`w$dFY4QpGk z=NAZk{aiRvP3-#BL;seQvOZaEuNK0v<80EhD{Hp2?5up2&8z+9_|*p2CeIHl(uqOx z0SB0ZtE4piA0;|^S_(1RCvde3^zt=La@)`^&-T<};^75%rp?Seo*Q;KD{w_c*gLl; z7OZW8JJ&Y2F1h;n+(DiB)&^30qZ)Q^X7GKm-Rta`_Ac3m=fWKu?iguZIqWud>dy%A z%0;J)&b~WaKIi7yez8|mcXdzZO!-+~C0(Zc`^Dmyi-jT#9Iknuu$y;$qO0lzMv0s| zWouXYPTb1fSzUI=PqXPuv8PkZ&Qhy7*2oFP`|qgysxX~CJ-j97D0>?(i>uQN-u;r3 z#Ns<u_!~DI4HRXq*mrGJYRGY=69+p^T-YrlafvaX%bv-cQOKZ8WbNv-d07n?!t@>f z%+E{>+n?B|K0Ssd`ikR;uU0Q*dcTDf=Es)ZwN}|M-SMPY*i`jGhE##&tY2qT#rulr zgytMdzw7y6{{4SnZ@GEJtys3w@Z>F#Me%xzaxO$@sb6QTm(ZN+eAO(#rRjr=z{yWO zwuk%6((m`4*=2Zk&3d1oYyW;%_PrvqD(u?Vq)F*ZRsGd2#UE*HRlDD$CaA~~^<=_# z-sH3uPWPPD*^0cGzn0B%{J*sHQ@q5hX|gd2XQV!D(lYZ*J-O?-ifm}|goZLElllBF zxF&k{1#eB;;_S`Es*=!GG<oXF+GQ~fPuR3%Sy^07l+Fh@SV*N`RGO{JUXsALsK?IG z#_WQgW$UHxRO@?pB41rQ)0iB8CU(~&q4QRT+x>#1g9-!7R`JZyox`yA{tkoeva{E} zZ>-!MyQJ*)Yk&DO-aAj2pN?Gq<>=|9t7|?h#hX5T<(K<<ZL-iSCy%!pAC{J|ialZ~ zN{#($mK`l8fBEU9X^;10oeqwyS^hdnxny$aO4W7z`OI^cXGZ$W*N}GYIk0Kz&x04P z&Dty_k=!o9wzhjpb+v7q<`<Wm@=)8}_Lt(4Jjs6&UY{0heD=m+KgVYgrQdB5cb^zK z9zXTQq(_KTYHO?6$~F2@pB4!$KAXF}i_v}3#BDFsq8!?LXYb99WjLa*qjOqKi*46| z%qW{LqUn>aE<X9O>-$3{9SvK-BK40OCOl@G^jtD<M#CC;TlS*IDSXa((JNNxT0b!J zdt-2C+floz&3WI<4(H8Euij9yC9GD4fqUcrh4wv5Cs#!1I0n0O+I#<MdL?UU?et`J z7XOT6oU&|}w}rgEx@_+a##M!n+8wv*+MT;I*ON!`<R1M6js-8*Ox^lM<bqt?<(W;F ztp8u#yQb3VbzXp6ZYU@tP8N2owCPt?50x@fIca%Jz}CsvzOJhL@2_u%kMCb@9)E97 zWqEP&*QfrsXU)xT$i07DwQ%JvbH(NU+iD6ny*=mJxo+9%J!1Ez`rd>Dt#_LK`Wuh0 zhmhZdP073dZO#3y{;=;NbIf7>J~`cgUtfHz_Z2naVz`|1KV;&I<h!O}ED^6ZI@w=q zjXGZC#<4+~_e;@a=`ZdJ!**I4YW=DBx$2wl*YwPnxAHgJUen!s??T=W@69WwUYxu8 z?;3T{z24b*QQz05>Xxj`O1QTA^ipZVtR=U3!dDpG7ZDJRvM#w~ae33m;)4HgUpQ!- z`4RNaJ1}6Upn6I9EbHF(m3v*bbM(x8{GXpGbFHU)^}1Q^T{3&J@=nIw_K;YyYtF(6 z{bG05?JB+Zx@%omnV_z=G^gj)p0}6h{xUqVGQv&y%j;&QhzEal_?Ta-$gxEPwlqzc zyLh>>gci45&+0;<_Qb8apB$Xi7n=J0GT2n+wcV5ZS8te}@yTV;j&FP~ZO)&^CRn*8 z($;{HUGCH54;41uW#7ugzDaO*I#r$7|K#2O+7-{LepF>~>~wHU;J#8lb>*X%^^12! z-OBrw8+X6@|E~4=S)pbDSqFIkGc|cf+G49JO|Vs!MkYjeGoMC!gAOC#2R)2@pS-KT zYc{jx*3NuC1r4EG;b|T-7hPJmf8XYqAT?Dl5znI<vxMV!-#>G%#`^O_l^LF2Iy$WH z_;pyfK3-owx!nAYLi5@nnY*?Mz8eC$GEZ+<^dhhG9kcSX`S0&3^Y!ltFj&8%T6q1U z%oAHU>%7Hxmri-|*~U-UyyVmGyH8S`5>*^a`ZIXUd=?z7D*8WjfvQb4|GR?h3-L!! zm<mlw*0h+j{=)H-^Mx;cxcPfkbWNzp<WrH2mSPcp&R!gx`}}5dT&m#gGZNmTbN%y8 zqgg>xHND~&b!vaOaP&_;VgJuXWoDbxs)X6;yItSC&l4*&J-+tsU0%@>P24_~;wu(L z1cb33efTrb?TYNtmbc8?3p0c+@Nm|BYL;G|#KXPO{f_GGABLT$MAuw;vXM33=uD33 z;+FZgs;5J_ZNg`KoOO7TnC5DUhsD!ur=9#=!0nh`+SGC;N{7Q)arq68hlQ&y6cq_X ziC<Axez8x%@5Rs0hNu2|{tGdBC3+(Mc&Gg}VYcb7McBl4@Gg?knbB~1kB7s<m-2l= zpL6#0ebOk-ylWPdy?EUwsq97P0;hXMe>xES{gg!C10hZ3-_9G0B@AXIYo~AqzL8v+ z)pAwJIAMCz-4i}D_v}c$9@V*1%-L5e(wjk5#M^VWnR#kozi#lsje^a-<|n*V8_&qk zI=6XJ{!072ySz7y>(0OaJ1_rxfAN7UWexSmmoRYf&FfRTrqMGg;#88;?rBN}tvY3b z-o<NvvL2C2+cY<#bav{!Z%^N|>};EvuYTS0GwaMv8uwFO8QZ(tbz-M~eYWA;G}n(S zCgm+!vbAH|<W1jq^>Hp;5O{gwk~jSu^Bty})*j`UcI3x``T|A2ZS1{g<oPE(+okQU zXgZ_ADD}zn%oD8~+jbvSx|MfY&p-Q4o0ya4wxC~}`+q3%#;kaEC?s~PQ_m)yv%9QA zI8H9UwP1t7loi~Pp<FX9PWoreNHO(0kkQ$>RGdTN=U!HxT5DG3ssk7JSc6%<?fSIz zROr&!uFaL3)^NE>s29qe5C6a8Yxv~P+b38so%(*l)}HIocg2Mg+uUNEA8<VVGVSFX zXJ+4R-xju=&1*EiP?F7`HEUnrftT;^8>%xnN!#{?FE;Q>;$%*Zk9B^qV|s{|zQQ$w z$#0LWy1mEe0guUjzjc$J-H&_lCH}hMLWZV~An#uceo#<xcH5kOA&XD@^$SX-A1Lfn znZ5VTqc@e?dOrzzvEMtebd&w1<x+mCSNN;rUhHAp@j}pbiv9%K+ckW`ES#&RF@0Lv zuu3oZ_|_Zj4~2d@X>a16pzot~;>gdpD;#_`8%I~kw7oaJpkSaL{?qAjOWj@V^j~Kj zCa<ksmbf|k0FTMtTgkJQ9p{qhoVk(tkF^@BL%^Zqg4rT&o;qw_!#`znNN8wAWZd*! zlc;vPGjx09%m&GfeRE^f&+g}vu$b!j>2Io!=h=I!t(S>9cvw!F_1CcKlth-uvMK-e zr}QwqRgyM3_GO}B_e#Ebi&|g*J%9KskMacT)Abs*haJvKEMRS(&XBEt#h6<>+pXz2 zcgWegoSz?`F7&?hBl2a{W~Qy1-iT-gB_ICvhk5P43r;V#2<dS-aoyPbp-p{b&{OgG zw>3I9RmO#`*U#g;ziR(xJ)`>i>JlE_MNcjqt!Iolac&B>k`mjFVM9|hqK|018+Eb| zd~Jhv#gc{<cYg~#5m7NqkZ?@$_v=$UA>ytau_&d>>&<?D)0<ZcGIevfgcaH)i&ng< z3O##$Yi7Zgu7WRVpFSUcay5IIa&ONRovMl+5x1yQ9+F)uopRGI9-pCXHaBqT<Fmg$ zUw>L==)c_M$o+4-W#k_3aPYr+eEs#=TXt2?xAWudyKHk-sN#r*u-dhxUoRiNeR941 z<aJKQ5}Ap@v#xmr%c<TzdEDP3>QH*Va?gy57wwlmF?$3$qx??(BL2ztYBwqy1Vz7H zi_5B?a$MeX!n1P=?=PQnyt`(jZ@0;OAt8CM(^*sFxEbdi{MytS^6At2TZgP)D{y!V zYNiP+eKLt}LfVOfhapp<l~Pg?yjSRKcTqf*xnzfE^3`c;Hvc<q$YglbS#fK|9@ZvK zp{6Z{-%ppED)>__KeJ)Rvx675cxEUW9NNMi`$ROjJGRvJ2K#|m$w49f-%eK5U9&sJ zvZq(z_pc=kqBAZP9+6slSg^ZDMRe~YE_arDk4%#SnP2}XO=@-g)p_+u$@|=YQ*_P6 zPl&R;SHB+lW0Fs0l+0$E*syxrXS>&OTU?u0^OUFhf0|IOj_N6m*H_j|F4=c``OWx< zgdd8}ov(IIZI*p)%oS2#I%(?RQXZaHL7py4)|LIWeN#AZt8!)S+dZaUf-Fsv7dZ|e z)CqqqujpGSC*S8eNzO}meVp(m1@ksm7RiTVe?mI9e9>C6qjcF)!?VR6Q<jG6uD8-V zE8*tyG9%2WYp#+0qZ1A(ha?UMZra#scbVBJ+_V2`$+E{=W~f^ya4uWzbxJ7B>ao+Y z<8L;^rK<jY@H1`tTCK;X`9U`Y3>>aK(?6{eKk-Mq*Pc}U%N=&!&Of$H+${7uZ>!1H z8z&1^ORlLc`F&=#<B@mHdl~K|%0-LjT;$w+h52gRc`vSuj+-Vw2|4QDeTUggM5yIX zgI3neFP}xS=08?VS>}J~+ttc#GEVweWqZYJ&emA-9TE6*^O&E;3--x;*6DLJRZIou zJL-mf-XWb8#w%Cp+{YcbIXGpt(DPeQy|j|TS;YL`saZY?;Mle27td3>l8EDX-aT0q z@qW|mcGh!BsT~GlG3PnizOLOTGe^NU(D^+3jzX(dTeKB849li((N6HzaXhyycDDA+ z1q)})-NUWkHp}eA);-w^PN*;ZFn5pkghtlq595vAdl|URU^xD33X^C{?~<n)vVGHL zIC36bzsu?1+w3hzq&RE1bq^c--ICLEt@9a=?BRsJB{_%gNxl3NBb5_6pM61-wqc+5 z;*yY<M^d|lJzkbS5HjCZGX45ak&c&7gSfX$U-EYe*OBj&Rz3dm?}gDyZ3j8s(?QqI z<z31NwVAv8YQgTRDG$oRoWE#9^<I9Mv2=kIoAG-`?Not_%WgfqyK%>X)dm6f>u0T4 zUi8Uk>7fOGr(`)!=k@ZOue-&rJM`7l=^IM(L{Es#oLn$z|KFeQ?rO)}y<M`?Ew!_M z&Y!&e<hx15rxw*^@qJtGuN~m{#3GF^%y2{c(-4P`y8qj4we!ENVTsR<684_xyX(aB z_M|`=rs}Xx39)_iu3mTWbdi+3=x{Jg#Ub^oLt#DhRGZ%=&i_Naep@TAPO8<ocJkr1 zwiDZyFXR=x>R_<c&9~;*%N2*LrUvW{D(!FU(BkU695dIM&8h171l=>YpG|1|aL@8d z<&Xafe3o}M+AUt<)b^@yjm)~_1fS(c6e7>RVM?}=m%9A4`@ACO&QgJ$ckM2w?E5by zac$+>gjNn|*D3+4h_xr@n>^LYIk0Er!<hSG8rKXaD;M!JOPqS}Huj9+>T7cMC!{4b zuKuv?s_3;{?{|uIuKm34MttVaeQyreq~Bzp{ex+-h4qp2>66>q8j4=dZWEMRwMLmU z=$D?SyO+v_o%a^DDOO2$sy&%Hg}KnLVQ1olw>`|&>kX{=|4rg#za@3_YQgp@A0}R> z*M>1Nix=kQEcDsSEzYWGy*m2VEdh`JPu4cx?3+@j)#g~e@<z+KH$886{EgvvE9-yw z@%-tn2g|CXd_6=L?=XvSuC4l2Y}cw+Kk?$<@3Vi&w=ePCyXWS8E|sOLeeW%aoTcCO z>&JBF*7sNc>RVSI+g}@hbCOco;w{G>{uAGur2iXRePe-bL6)H*(G%QvBYi=GSbJZG zKkzs=#X#)-n<rN?=gypSE5uxVaiB`nwIeFBU0$>6??0XH(=|b7(yS{dk1o(mxS#Z~ z?EA!&6laM_>)*L{yLXCCi;&9FJ@IFrgxlI{M_T4&DSS5F`FYJZ`*ZgN8|^t)7RFY7 zFZ(U=lhORzZ`;_nk2OwC|7qsiwQ{rlv(5U(2WIvhIJju*l_Jluk8j>7D`)?CE9=<3 zQ1$;5<7CJcL3Jwi=l{*xc<c0GkDXe2-3ve7wWzs1DQmH|`F;1FcHU)6qmO^f%d4z@ zJtvrj|3Hvh=+;?(U$HxR<!_H)yC^pE=`*p0mK`0hlLQa5Iyi^wR|NaMykUC9<95s1 zjS{JmvqIxa%SyK_bui#MHp#*8ltI-}UQgDkB0J<6lF!^$vy@}mes6l|o|rYt@&|tJ zigoSom5<OrC0@Aa5r6mc^FP<k`rfGdj6EnbfBu_ovsI$Pzsp}v3I3U%YON<Bc!2ks zwFbkK@1-9ntdXx@xvV@!Y+6zAf==d#9Na0|bF7wplYGUTeCXkXg8?!OQL|tFR&qYo zQfIdOK?et`<7VHpSH9bNu^cK=u{{>gU=?<Jf9K|e(mB?KdW&v5E0w3NVhKI=py`!T z-)h0@VdDO$r=FkrediD1sn0|2oVnCgD{(~pXH&_OrY3=@%j<u|RGrR|bg!Huy61&j zleWJpJJ-XVCQrix)A%E+Lb)AghPfE~uC>T!N>Ap}Sm8V6sKZOK$vq2WiWV7KhX$YA z*7u2pXGK7b&a%+8FPM!(K5pQS5?*>noZUuDyH&2g<^2ZH4-7oQ=?}cEQX_;WukrEx z^WM(;@hp+!Cj%yboAK^t@DvNrdpBnUaJ`-<xpAZ2!V4|aCTmz8baM4<<(+tYbwE&S z#DN8N^GfE=fA+*9KwaH>#oa|O)1G(~s4H7P=;S|h`}q6~N>l%My+1DQtp2pE`kt~+ zVw3Nxre<B95KE0ID>mBiKP5PQ)tuOW2f~9x_!d0kjh}wX@=Rv#xrId*p}{76yAJnO zMLxE%HgtLX=9S>}ePX@Jl4*}_UO5uPTcEakdBh5-t^;rQpN2|xaY)*Ih*?nRmSpwY zll=>8?_!fzf|g?YZU>qicVbR|uz&fni4kAl%-H-!aFs!$rA6!H$v#(>90_c>uDJB# zkB+L&Q<9vo(o&_jMw|E-6v^zEJvsM7uvWT{Wy$2c4bN+jE#S24Ep`Suo9Ss6Z++cV zW&LnV;rmbb<V`Jp7kjQe*fROv6O+upUH6_eaB7Av)qH7t(&cK9!{gw-U0&XdHcrX< z7c7+x=gKZ+u9|sHlJor=&E*gOv(GiINv?Iv?0jqz<YyQ-S;%`s)9QjC%~P!V9iH_Z zE-Bu`drNngx`ZXyZQm1S-@KL5|E!+VR_HAIelx3XM`vikhR#MU_6U!Ko}c6$p3cd% zIu&rbz2-@_o#QK~%oCd~YI};7WvpCrZR?k6Y1P1OXJ$KnU-{tT_Gh1y1JC~ZyG>JN zin!`=y?^X8*7rwaDXUBkkSDWYi$_fji5_sj8|9n-*bKB7hvS7S+qIaw$y!xfw^(ij z@8+#KsmHTk*P1EEa^lmRZ}-bJE^V^QI6Wyy<i*KNKIdjD-alhwbnu|sfrEcRE!pGN z%b0tWG$TK3-~%;|9b82`g>2R|9iISh93Rg8^fq;C^qI$+f)8(hwrjp_apvOWzd!YE z9{cvPc+Wf`nPZW2^d5>X_HkJlc6mMje6{`dK5=R+7YZG`Ox8|ZW)tyFtv|kSL(_db zR*8)s?DxAT?rs1Nx$oiqH|vk(K|Q9P6$bs!9*gvUI-<;ZXljFiyNgdcOR|hwCSP8# ztk}V|3RXh<)J|8_b$tF=G{5fPjJ!7;`VkLa_HaweU3T8&`FLvW{=3Vih3_7>KCAse z<&nor4jJ8o@S}(Jo|}K^>bGXuxX)8FU8Y*~+C8~hICFR6Roz7*g^^OabIqn5yuEd< zV}-y$9<94d6E5ks9Jbk~)so10cgE(qvzk?$gxu4en?$0c-nnjEe)CxFyXVz6c%r`6 z9Ak0qasA*hL2Qp4<Kefd=G^xVamsN|JF9auVMpzW`7(c}9p{<x{N6m?-STsvCZ}oa zIx)F6tM_`x6%HA8<5L2OXR7`jpYo|-qHbBCTzZ>c`>cAquG1chj5Yh53biaJO_?TA zpDwM&=%QfiJSBcB<6_@3f%HWuG!<8u1SK>zX|^h*hO2nqJ}Jw2L`1%8h3nLc848U1 z!xiry6T5kZO?{5yS@y-(GrU>ap6qCf6VUGdym)1Y(w0=lxV4-Ao-<rLQ?l={@4NT& zA745BGpeA6(`DhhFZ}DyY8o_Fn)FRyoMRE^#e3&nPs^bhdQn;{-ffvZt(oEPnl%dZ zw4Sq?@iBd!ypgHOyLYo{QT@7^y6WCxUrRUna%?!DWYib(H}}gGmPv=avZkM(@B3|8 zyPN&y`Mt6Rf2Xq=FKYa9=-e^;=2H)CY-FaN{!vh%J0s)-r)-OW2&ef&aqA^%;fky~ zdtQq@)?uD|_2z=KGg~TT&v2D(n00QV`O7(9)9Ox$SK4^I2+$EwTQdE^#N`(YtwJ9b zJ`c8<5HI*qYwq;BkIq`Yxfm;<%xL*eZQ0Q|@25)K*6S3W`sdOz&6FJv`4l1)mDh31 zJhdzCvX1%k0?7mW*GBA^wBXx1b%iGk>c5JF`Zp(9Gf%(pBqe;Z@y1W<t{qs~q|<3t zeb~Vxzj#GrS%w(r2ZL&bn!UaUUU9y2)wle%g~9yMHu(!I3k>)of0{8KV3~H&La2As zLyse-bJ9;%zu+zwdb($}^I?I%GOHY%44a+H7te@&aM3_~kIkwIhR}COXQRTqL$*KB zn0f8?Wi#&`3lE$qx_aNu|Lnnq#)5zBW*uIaeN%kS7ma;2A2b9O3Mi+xzZO#{{hYn| zYIjQYnY;`;V+)Ogl?T+_LY7OMoK#ym^WomALUHAzx1XmL&3d!*`+^DfPjtNVcK)m= zV@h6C_+qkNnsUX?F7r-hN5NjUEalBUa<$B^z0<6xO0^c;IU9eSeZK7psbk0P-1O+Q zm?j&<?zc}MtoU`_j(wKgvf&1=mgR+8m29}Q@Yw<8Y`bSWjLx;?28p<6v|H@@mCK^K zV6ms;!j|Cr^663>FW&~4o=JD_JDvWp@xr~s1+rG>rPiu%pRy^`d1~n4_xE2)+_}Hs zOtZyzU*Hj`)Wd?^t{&OH<fhk6VHVrh7;#wP?~zqW_sZUy3*7Tx*ZtxD)xGimU)<Wl zBplSg<e7$a->eX&LzU^%O6A{aG{3d_x;*=gOv?-PG|^2L+w?ya3GA3ZE%d|uIZ?&G ze!t)CyqBe}_^hd?<E-VCOrL5>mwx&Bb(1fzR@WhmuDHLsUqT+ca0~D~`d`YNG2_^) z`j=PyO0GYB<;pqlXm_aQ!w0w3EG2YJUnB|iEsA-W_-OmvJn07RB`%eh+4r3j*Ph(5 z`b@gqoQWwtV%KE$9XQ#R<)XA-<lFjtyk0kaO4wgt=KP()7O6EQ`r^`zhil6B+M4{I zQ}@fAA@kb&aQ-z+o<B5{_V!=4(AH{StNBdnQG4yb-26xNzc(8C7@P0n<^RukRXOH6 zwyML>4D%p1LsMfzV&`g)MxE}vZ6<Q}xAvATjWeFk4!P*tt<uaEyJWJX`Q-xzIlb-; zI;xv&F8`_3cRh8jxz3~L@=*t=nY*5M*nGdIe9Phni^Y!Ff4&*~d}({R(QV-ror(%B zaMjTYt~#2Jue`STJij~>o4ldk!+oD#{kG^#D_-^GOYXK?`HQzih!swowQzDd|KxmO zCgnm0KEbVSvpywkooiEf?4Xq0ZvlrR0qpCap2$7G>fB^(;osyx*<Ss|#v>hE#aVo! z=}#Z(a9+AI@t?)wnq6n6-(J!2NmB80?8!A;FH<=_@bsli1f86?<ja8%#|$|R1+jFs zatIgdvGqLb;CSRTC0Hp%;LwzSNWV^}DVH4z+eFTUTB>eLFLY|0@yJ<m>x#8Z2U$3O z>}lNDm&W5CFLwT=)yqY~603eDR78pEfo^)^+b5DOC;D5)@2E-dwQrY#=jG0|;8|Jo z_{QD)zD>uAj%@#0wzFX4qtGoU_PM>hACd4wd3oy584e-s%=6Z1YqOnncJnF@;ZgTJ zHF3h9M~f2<>Um9WE0Eu>b2f28UFJ2z&l#H|)?NQ88OhiD?er#A+4nxNT31s&Tz1D! zKkn$Tx3WZB-pN4o80U)mo_V4%TAW6ki%ar_OmoBDzPd3h*-Nmb*YYAqvH4+r;}aiJ zH<jyZRc|`}=w@t0>VyL`@>VT+aBVS5c0sP-T<bMOp|WCUxSHPZrWZFEnq8=wb#&Q| z3&}4V_(G=jUANI&<jT5#g(f50>{&*$ixrpuE)mbqX>EG#IW3RJe1hqEd-D{N!&_dR zU~}D(^!*rLenI=i5ZPbl!is*}{0!nAoN;#(h11+Vh)i;Ov{Kyp&`PTWgIAqgUZGC} zM3-^jp8CqI`D9p2h_dz7ZPDwa56##dpfo{uPJ^jH-rieR|A?l^tDW1ecTem6u0waa zo>%PtE5FFxv@NapSSA0�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%0DXg{`_v2zgJhf|6f{v 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 E01g&QtpET3 literal 0 HcmV?d00001 diff --git a/QDMA/linux-kernel/docs/README b/QDMA/linux-kernel/docs/README new file mode 100644 index 0000000..a4b9e64 --- /dev/null +++ b/QDMA/linux-kernel/docs/README @@ -0,0 +1,267 @@ +############################################################################### + + Xilinx QDMA Software README + +############################################################################### + + +_____________________________________________________________________________ +Contents + +1. Installation + 1.1 Compiling the QDMA Software + 1.2 Installing the compiled binaries + 1.3 Loading the Kernel module +2 Configuration + 2.1 Configuring Queues +3. Xilinx "dmactl" Command-line Utility + 3.1 Using dmactl for query the QDMA devices/functions + 3.2 Using dmactl for Queue control +4. QDMA test script + Sample scripts to run simple MM and ST transfers +_____________________________________________________________________________ + +1. Installation: + + 1.1 Compiling the QDMA Software: + -------------------------------- + + In order to compile the Xilinx QDMA software, a configured and compiled + Linux kernel source tree is required. The source tree may be only compiled + header files, or a complete tree. The source tree needs to be configured + and the header files need to be compiled. And, the Linux kernel must be + configured to use modules. + + Additionally, the /lib/modules must have been set up for this particular + kernel + (i.e. "make modules_install" has been run with the Linux kernel source tree). + + a. QDMA Linux Kernel Driver is available in Xilinx github at + https://github.com/Xilinx/dma_ip_drivers/QDMA/linux-kernel + + b. Compile the Xilinx QDMA Linux driver: + + [xilinx@]# make + + a sub-directory build/ will be created as a result of running "make". + + By default, both PF driver (qdma.ko) and VF driver (qdma_vf.ko) will + be compiled. + + If only PF driver is desired: + [xilinx@]# make pf + + If only VF driver is desired: + [xilinx@]# make vf + + 1.2 Installing the compiled binaries: + ------------------------------------- + + To install the QDMA software, the installer must be the root user, then + run "make install". + + [xilinx@]# make install + + The QDMA module will be installed in the + /lib/modules/<linux_kernel_version>/updates/kernel/drivers/qdma directory. + + The dmactl tool will be installed in /user/local/sbin. + + Example application software to issue DMA requests: + dma_to_device for H2C queues and + dma_from_device for C2H queues + will be installed in /user/local/sbin. + + + 1.3 Loading the Kernel module: + -------------------------------- + + Kernel module cane be loaded in following different modes + 0 - Auto Mode, driver decides to process the request in poll or interrupt mode + 1 - Poll Mode + 2 - Direct Interrupt Mode + 3 - Interrupt Aggregation Mode or Indirect Interrupt Mode + 4 - Legacy Interrupt Mode + + To load the module in poll mode run modprobe as follows: + + [root@]# modprobe qdma mode=1 + + Or on a VM: + [root@]# modprobe qdma_vf + + To load the module in direct interrupt mode run modprobe as follows: + + [root@]# modprobe qdma mode=2 + + To load the module in indirect interrupt mode run modprobe as follows: + + [root@]# modprobe qdma mode=3 + + To set a master pf other than the first pf, load the module as follows: + + [root@]# modprobe qdma master_pf=0x<bbddf> + + Note:<bbddf> can figured out for a pf from 'lspci' output + bb - bus number + dd - device number + f - function number + + Now the QDMA software is ready for use. + +2. Configuration + + 2.1 Configuring Queues + ------------------------------------- + + To configure a QDMA queue, there are three minimum required parameters + (in the form of key value pairs) needed to be configured. + + idx <N>: The 0-based queue index on the function. + mode <mm | st>: queue mode, default to "mm" + dir <h2c | c2h>: queue direction, default to "h2c" + + - "idx" is a 0-based unique index on the function. + *With the 2018.2 release, the range is + 0 ~ (512 - 8 * total # of VFs) on a physical function and + 0 ~ 7 on a virtual function + + - "mode" is the operation mode of the queue. + It is either memory mapped (mm) or streaming mode (st) + + - "dir" is the direction of the queue. + It is either host to card (h2c) or card to host (c2h). + + A h2c queue and a c2h queue can share the same index. In other word, a index + represents a pair of queues: one on h2c direction and the other on the c2h + direction. + + +3. Xilinx "dmactl" Command-line Configuration Utility: + + The Xilinx QDMA control tool, dmactl, is a Command Line utility + which is installed in /usr/local/sbin/ and allows administration of the + Xilinx QDMA queues. It can perform the following functions: + + - query the qdma functions/devices the driver has bind into. + + - list all of the queues on a device/function + - add/configure a new queues on a device/function + - start an already added/configured queue (i.e., bring the queue online) + - stop an started queue (i.e., bring the queue offline) + - delete an already added/configured queue + + register access: + - read a register + - write a register + - dump the qdma config bar and user bar registers + + debug helper + - display a queue's configuration parameters + - display a queue's descriptor ring entries + - display a ch2 queue's completion ring entries + - display the interrupt ring entries in indirect interrupt mode + + Apart from the above basic commands, there are various other commands + available in dmactl to add/start/stop/del list of queues at the same time + + For help run: + dmactl -h + (or) + man dmactl + + + 3.1 Using dmactl for query the QDMA devices/functions + ------------------------------------- + + Please refer User Guide/dmactl man page to find all options and parameters + available. + + 1. Get the list of devices the driver has bind with + + [root@]# dmactl dev list + + qdma06000 0000:06:00.0 max QP: 32 + qdma06001 0000:06:00.1 max QP: 32 + + The above example output shows 2 QDMA functions/devices. + one is at pci BDF: 06:00.0 + the other is at pci BDF: 06:00.1 + + + 3.2 Using dmactl for Queue control + ------------------------------------- + + Please refer User Guide to find all options and parameters available. + + a. Add/Configure a queue + + To add a MM H2C queue on qdma06000 in the above example: + + [root@]# dmactl qdma06000 q add idx 0 mode mm dir h2c + + *A character device /dev/qdma06000-MM-0 would be created. + + To add a MM C2H queue on qdma06000: + + [root@]# dmactl qdma06000 q add idx 0 mode mm dir c2h + + *A character device /dev/qdma06000-MM-0 would be created. + + b. Start an added queue + + To start the MM H2C queue on qdma06000 added in the previous example: + + [root@]# dmactl qdma06000 q start idx 0 dir h2c + + *After the queue is started the normal read and write operation can be + performed on the character device /dev/qdma06000-MM-0. + + To start the MM C2H queue on qdma06000 added in the previous example: + + [root@]# dmactl qdma06000 q start idx 0 dir c2h + + *After the queue is started the normal read and write operation can be + performed on the character device /dev/qdma06000-MM-0. + + c. Stop a queue + + [root@]# dmactl qdma06000 q start idx 0 dir h2c + [root@]# dmactl qdma06000 q start idx 0 dir c2h + + + d. Delete a queue + + [root@]# dmactl qdma06000 q del idx 0 dir h2c + [root@]# dmactl qdma06000 q del idx 0 dir c2h + + +4. QDMA test script + + Test scripts are in scripts/ directory + + To use the scripts in this directory, "make" and "make install" must be run + install the dma_from_device and dma_to_device applications. + + qdma_run_test.sh + The script does the following dma operations: + + PF AXI-MM : H2C/C2H AXI-MM transfer and check for data correctness. + PF AXI-ST-H2C : H2C AXI-ST transfer and read data register on user side + to check if the data if correct. + PF AXI-ST-C2H : C2H AXI-St transfer and check data for correctness. + + All the above transfers are done for 4 [0 to 3] Queues. + + qdma_run_test_mm_vf.sh + VF AXI-MM : Script runs H2C/C2H AXI-MM transfer and check for data + correctness. + + All the above transfers are done for 4 [0 to 3] Queues. + + qdma_run_test_st_vf.sh + VF AXI-ST-H2C : H2C AXI-ST transfer and read data register on user side + to check if the data if correct. + VF AXI-ST-C2H : C2H AXI-St transfer and check data for correctness. + + All the above transfers are done for 4 [0 to 3] Queues. diff --git a/QDMA/linux-kernel/docs/dmactl.8.gz b/QDMA/linux-kernel/docs/dmactl.8.gz new file mode 100644 index 0000000000000000000000000000000000000000..b55007269369e7d42a69f4e8bdfd3e318f302085 GIT binary patch literal 2164 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 BFT(%; literal 0 HcmV?d00001 diff --git a/QDMA/linux-kernel/docs/linux_qdma_driver_user_guide.pdf b/QDMA/linux-kernel/docs/linux_qdma_driver_user_guide.pdf new file mode 100644 index 0000000000000000000000000000000000000000..813d82a5e87104f09803f9a51bce12033809de4f GIT binary patch literal 924396 zcmY!laB<T$)HCJfQr)_B>sDSaLj?nc{G=>iE*l&DkjjEoedolI#GL$e{eZ;u)M5oA z1p|d3eV@d<bdA(J-Oyl71^wWXqSEA&kfPMop#1z21w$i<8sEgCY|p&3d>b2m5HmGJ zp`@rZ)y_`eH?<@&C9xz?!O+6e1Z-SbW@>qAQ9w~@T53^hUUF(NNXir>WoO6Bm713V zb`Z!|Fazc?u#5Da^Gowe6pW4Zy)#paqZN!n+7t{ez?888gaT;|QZP1$@GQZU2}IBY zqQM005(N{mtqLY)5G4=|CJ@6+Ao@%pW}1QmDoDW;Vu~rm6jO*PrVvw1A*Pr@OfiL+ zVhS<E3}T8I#1u1#DP|B;%pj(iK}<0;gy=Uk1nZ1dKn@d-28=M#4@fLZ%`1V%RZwbi zerZv1YO#%tzFU4?35YUO0GqAvW~2Z%RNu{5!4T{QJ3D>XiW2wWlEji!8ykK1U~>hq z_4@9?77Ab=*xBhv_$OthCWB1!%uP&BH8fN(1p7lD!ZlZbIN8olKcFZ-IXJZ>T0g+W zO+O^Hq6DJE2|_tTC{K`|^nFuPG83KhE20%ZL1SiUq+o7o6sw@`oS#>cnpaY+01g#> z_oDpL0$2(FbM%AtLy8jfiVHx#POj8<4%T-`Ez3+!4RUv~v(pbrOe)q7hNe<T$P_CW zAO|AIU|1l!W#*Km7U{d?B$lMQq$cO5r0V;m=B1ZpC>UBA7=v^bmlUNY=JIk?%-I{2 z>wnur;Gdl4|HP%Q*>~^C+4FvPXlSR?LyM`w)l17gLPM7(91ya|G??=5_w2~q0tG%d zHpoos+&k}$v9a~~-IDodRzIpJikNtP{c-6~Q%jq({U@e>{8#d=bkG0nY5n#-eqBXD zqL+*Qy!=$%>RkV1^5U9*&v+|$Z}qI>VV6An;k==r(V~a@3+J5q{P4m3=}Tnz?!Dt@ zf1K;4b5`Z1y&Rv!gwz(nG+xsq9FD4cEZA4g^>3RKbD-zR5&N6ZGSe-7Oq%dT`{w^* ziwgG7wK9Bi{BKrVE^n|jHc9S2A!lIKm(XM-EW3QMhpI{HCjRFNPqj49U7G08Wh84j zFUEaxfTpWuzuLpgR}zd?>8xn<J~cn^_8rcwNd7a=L)67zdZ<@wO|D$UP`+f+TyF`z zzE2r89E=a1-E^HA7JPB}#s27(p5KBtEblE*$#%Toe8si%Qrz-6*OQ|^w9L|2cPUKw zBF}!q{T5jr$+bRJ>N}60;hrEZYS?(5Yim<iMXPz7yUaYJ9TG8O>kRoGG5gQlUF#&| z|6geq*Gv(U%e6V~U!>lyFsilqzkqeC-s8XQLVPP$3x=uHn{O*-H49(jqa(D}E7tc% z^kPTxcweW;RX0Ab_Dt=&b?@nqhAbyxE6?oGqh}OvG9S=U>Ra@v{=#B|2Ys~`!CzKA zzV&;NqL*)KKhsH$G*QVTD-P>-KDhWeUM2Tm#y<Xar&QXE{B)l%G*6o!m}&d+qqlwZ zl!TRYo&P1f<bBG^pWIV@>gM*#t7gsn9=_%F<;<;auD3PYCCoFJg*K;cY3iR`eRZ|r zluo+|%p4PTYi^#<<$mYd_IlZb78{r9`OB1NPti=y_!lwR!EuJ8M&qLk{b6+_O-s@X zZ-_PpW-ogAr1R#wI0bo`d7G7<3p_P>efZ|FESoZh=UhxXUNzfjzfzrcQZ;6u#cwuq z`v+D{uVv00_;KdbTFIT^8#Vtk?XO<G>+iKEN;QI8_g$4tUFR>+^~^F`!nW`FI?2X~ zdeaKmaCyD{c7sjkR0e-X>H3(4lnXbC^m(6${MK0g>RFFWQvKd)JIj-j%F)4>irkOQ zPn#?hdHeRAyGl2I{9R(B=o!~nc7N$brA6E381432&g(3nw<GbR#Dz(-3fO*JmdpsA z+p;ur=3;A}jtZ#<eY2*f-A!~jmdtRf^Xkccha0+%H54T<AN*k@XQ%eAK-%P^L_nUb z`i6^h96a~+3GY~LtiZGQlE6`kwjU2Hrnm+-mdr8|J?EIA@npk`^4H9-Uo&T#n8xzf z>^ot&^4v+jFtzE~&p+|$h}2&Bdgz|;?fttFLy|Zd3THbO9?;nT(r(u&PTtG0dd7~D zA}hUuuNU3?mb)hJ_O|8O@1jc&Dp-17XRK}!Y)NZgC#c~p`-Lyy@doP)^4q^HV7YSA zO-0i3NYu$`3~TSQlrr#`rg0wly=c##wtMP|(Vq|Hm&Y&lxvuNCMfA$C?<VKfWZSeC zhB4n+vwX=Z#~Dp4HlGT260VwVen*Vqb8A#^%gp=?t@jS*zhw{2ysh!i;>87>d+J*o zWbzIzaQ<AbZ?eX;rp2K>?Oj|3qimE!NyfQ%t!dLfDP+jaTJ!r%k9BvU70a)ak-H|& zlJ+i@_;R^8fq8Atf|(yHe7UCc_@_A^cx<XMr~AU!zUy;7_&kg(<fzzlt|f9qi71QQ zdhNssuZ`qb<Q6Jt9-O)$vB^EdEh>l6JJ0!mYm40y*7hA*r2-W_cO^7JRMgJ}PCe=R zp?1ZUkfNyk&b|t@NlKxfl|8qw22@zzS@=X}W{4{n^Hbf(-K*bD+B9p4a&W!=@!iTY zxhMQy%X+V1ESCA|B3K{rNaAW%XM}6*oRv{#X`f&6>`1t@|Kw`Vv!doF_3y06U!k>M z)BdZ!j%CJDtIyS+Py96Hx+L&^TKm3Ru76jg1pUgr7=2KB@52-8LsE2OEsr*5{8yO# z{@_`;0E4`hllDE^vd2#DP<^CYe%E>Ti54aQ+Lo+b{a!fn{2Q_5Cylnr1s)c>(qAF* z(6VXG_JU2J=Qn+jOW)}&RQ2QPa~3hLa&6@jes4vYs&es1D-QgV`~Fq`ujCQWx@7&U zTfS)-*ltiVn0HKV_2p{}d;iN!l(h4Ima+8FvAl=T_S{=m2EX4l{oWp}J^6E`&d=QQ z@Z7VV_AV=AAFKasN_lrz-f-2a-+C76HCxNxZL%w6sMq|vCV2nr{?8Meuc^NKeQaGn zM|*|;;>^%2_pe54*A-v7HDl4#kcgiP{@eIG`nz1Q@<P4XvX|fIi@I!=iTvB}UuVzz z&-3%DIyYQDx5nuk4@aRnU%p>@ud6f19@A~YTP9u3^4%}&E!5Z$<yI<L!CQRN{Ng3v zEy+K2AL^SSXe=f2$W5p5!HP{h^{L5^8Z#SrOPts0zjh;_RMG9Dg3q>+x5-|KKZ;zp zDsJtY@X^o3xcBV$;w}}1ME$F`oNhLs<2rP8;ot8aHy*eb&6GDa7479%y5LpZwj${b z33inWXRu@+JbI$!p|`bt7dOw<*MGQ#ll#=~3kuIZqfy_&T-N;U)3ta<<JGg2v%1Uo zx?hR$bout&sOIB@TRL(<|Ji4(7VrkQ17US9tVsxJ#lUKAaAOtJz|jvbO)3GkTtkXV zQ^BHsiMgrzZif0!iN&d46^=!ji8;O@`mTA&`6-!s>H6WBd5(F-nQ%Txl}l=Ia#3bM zNq&(6xFM(SmRVF>;+&CK1Zr*iBtqGSMrQiqnJFb1pjN9nsO=I2Y9_#(2-1q-M1;}c zCK=d$FgLm7B&HXGZ15~e%*jl4%uCNnRWQ(ZEKUZs=`0OQ^+CEpY+WNm1AXVj0*}<p z^o$Y(b0Z6V$Fg*=TNF%84E22zD<B*rGc!}LMd1*YCI$xj5l~%5rUv>xsfnOaP%t*u z4=zc~4O1{N0V{U`H^+3%%uE$Pb}1Mc7#M)80kzk_@d5T2sC@`#*g$&>@CKy5ldryC zeo<~>j(&2Yf+2FSfSQs7H90$?Y67)YQ8a;~30HI*p+&c@Q+`eg32|-+j!K-7Zip1= zpavvLq=WThxD*s`kOTz|T|}(IoJOUnH@8HNdLs+4ZP2JUCm8kSVCAr=H?qJN_26bd zia()U19+r>djyc6QZP0$)rY1!Gb4TH{G9xv;DW^DR77)K-zl@CI3TsiIX|}`KM$0~ zE%c!+au??iXnWi<uOzjoARp912X`r94Rli@V{=dvgB240Z~TA2AmHWZ>Bhjw$jC5( zVFClg|Jw}C3><81>};$Y?Ck8EoE%&{BD_4@+&q#(!u%q#Qu1=LQZh0MDthV)N;=9i zG8*QZItGR&CMNRgmbMl~HhRV;Mj%5NIXO9bxOpUac_oY#WfYA_2LBH*2y!skF}gA{ zDlsq#GBOJ?{y)MX&%nUQ$_NGwP{7E<%)-jX&cVsW{r?EVRsjYkMrLLv7G_pf78V8u z##%-uW(F2PRv|@0M>gTWM0TY@5u?V53ptdXHXalWy7)oGIH{<KlS@ooLQ+aqO<hA% z%f!^o+``hz*~Qh(-NVx>I3zSIJR&kGIVCkMJtH%#xTLhKyrQzIxuvzOy`!^h(&Q;q zr%j(RbJn88OO`HMzGCI7O`ErD-L`$l&RvHNA31vL_=%IJE?vHI_1g6tH*Y<B^!Uls zXU|`}eD(3u=PzHsegE<E7sy|X49s9(fe47l(EKIHz{JSJ!otkL4)PZxQ#k`86SE)- ztD+&BkYgZwVxh2-Q6q<l)5L`v4{|CS2YnDtD!Rxereg9?^&`k@V4o4^u_m&72KN}k zU$+=|m>C(E1epaH>>0lAT-J3@d{#QA6w{eA1q|!OKK6G#`N;czGN*PTcir3ief4{? z-uLavn6>8ZvK!|Xoih7*$Nbkd`3vEK&)olh{qy?t(d)%E6L0*MnXMfXv_7)>eCq9g z9Isy5C_l`sajoCwa57ntE&Sj2-^%w^R1`bUK2kO7*6j^~>(A=Ub<+QFeb>ufrQ4<^ ziq2h9t=N;m_x#T9YZWoZD}FBBxG#T}j!ErQ^Y{A?|9Vk4&-jCld6;+Qk^>v>L@x;I zWMk=I&oBISeaZyKgA&Rc*DuvRYg75)SbA=}cgx1)-#-M4JpX-a{B`Ze9`oCc&!61f zI{)hH{qDc)FMQq|ow+`5@wV+fCrx^{hE~t|cAxV{l04tbAJ%c70%tDy&v4Uy!zww> z4^1!14t@IQoF%kg`Clc!<NMdKy>Y_4Cw4yFd3MgTefQ#yP5vJCul@s5m&Urs2bfPB zTtCB3r^5Q5V7>6xqgyI2uRl3WhEH&Rr~Qg=reFRR?=$<b#ZK?T*>kgght=e7pYWf7 zrFr>-D*0pwnfQbL67^XxdKcV1IeRzb3~#wOrTTBd$1ik!&HC}#`D*?j=|?;AnQY3< zibZFsJyu?<`K#ypb*Z?exvO86-D+LjzI{iJM@yC5{V0Zck1E#YKABf3X0bTv-J6O4 zt64wQkNs1heN0Yk#}$Kno_3*I>hC&U{%Bh-^>u&mKZD<VGv(Xfs{Cj0*e(6eYhIW^ zMf?xJzwCPp_p|+x{=0kqe}?RP?z4Gq8v_n^s=l#nUin8u^0htpA2}QKhZSdD_BwqQ zx+8qG;%D#&`IV-R?8Wy#S(Y{5<3Ga}*7Yk_Kb_xw|5MOc|0VUmm@aU9uW!Bo$#;wY zuSfM?%+}lgUGSgb8T)^R-1=`(U-&^%CD^1`BLB{}e<HcA{(8p#FJkM{)=Q%D7cg~c zEZ}GOyTJZQ(k1)X7x#ZLj&(nv|5Lb>|JQ$p{J&yTPuE?L|74gc|MkWFUy|#VKM?=Z zxvTwe{q}ziQ}`Dy{J8(0=au<izlwid&+#F>E3ZcRk%g&7(Z%$XkIerz8DFWb?k|jc zkECkWCCQXNcaNLX40oQ8FG-iQ?-XIOyL9>e+pWHK_kNuVRNeDJ&Rq83YSRbyta}Q- zai9O;ww1Fmx8U|#+5S5d{xh&&`1bwR_5A?~>m@-!@I-Rqe}?Os^^>k|4)6JQq5c!k zh5rn%x9tDLb%8bh=KJ^A_dV*rRoPkmFrV=!FjYRry^7(F=zoTVe>DEi`}b|{m-hb* z>Fd+4=;VI2wR?2zouTTUk29VG-w|~9HIMy+_tF0hH)kFGQTNU#>b}_vP8*#&h5s3t zWNIDOFU)?zFOp$CkN0E9H=Z-=S(>~n-K8g6hRHu)v3}_v#z!mu#6FC!esuV4V87N& z_DuHRFShkkjB{OU9)6sE^gqMxIz=hdHM7@j`KI`xqH>qvAFI03*Z&!WYNGZDeOPk& z$b<NpH0i+mg|F^6JpZ(QZjI=}+5M6gtGH!$c5I(rs{cKi{h8%gTf1cqw!shTo9oW! z{8QiCFLZ{dETOOSkN=M^fB4r{n>uIb@=jf1w(Vob!&WA@E{jlRhL9^98jHFZKCbWl z$MA_~*T2d9?>g_6GV$-K-^adu{qs2A_&BT8i<MWTCN^=r(mq(HQo-}WeE%)0lFG~P z<mDn>3(uKTYpbQQcI8(|x771Fw&CmDf64SUu8;ds9M&DMvBs+4h5u=#@4;{5J%5xR z5sOo~q`ZGq{nQ;5Cx0%^dvN{q{?z&ZD)v8(6>qU|U0D$v9zA2x#J5Wh-Er=dtv^z> zB2;PD+{$^eUuP5_tUmqmlil=1t0Ur_S4KEi=6SZI@Ga?)k<Z#3EiZN1?~KNxE*6nM zR|XKSus_bv_ETK*QMJbYaznwpt+LXK_CLPx`|-8aHEKV)^A}`BwM|{^+g*`dJv-?5 zO4(%jxWymWmtHlwotx~v^YVIS{`^A8-YdW4U&qU5{|dbD_4i+$Q<MHqOY5(aX=C{4 zaJszsRh`AhY7ddqwJZEvd_L@aVb@Tv^=tK^e{$PC>~CLNGCP3l(0=R3Z0<Ij<yWrP z`XTtRyIAymr&`LSf@AksS%l@~4eeT<%lrJgzU_j-`e}9g^(Vcr+D-h=@Pa!&IQ%py z<1c*$$@mL0Fmn2@jQVfa|1+enclZ(epF!oi%YTM->i-#>vp)Z4xW)f30V2D=b^guI z{~TvM|6A7mpTRNfTh>Q(0R~Xyf8f8x{Lf8S`QKjY{|wHiS8AC4GfXrO_|LHZ+kb|O znKAp{GX7^!7Mu8=A+Gm7!@^mw>=^4$%wAD{{dfHfPKRGo^3wkqp3L?9&k!G2AN5(k z=~wBxwU1=O{r7Zu<`*uvvYPi`)4#1R_oJw~-?0Ca<-Pw5*C*G%$aW~PST9yl^!eaE z^;w793ZHJDnQ!p8D*b8V`@gQWf*(#F>wNT|fp`79$G^QUaJ&oOU1k6H&u8Bsa~~}I zSl%AF_CkH;EoRl-<#m?+$A3QBSM{O4bG?n^qm2B=VTTO+9x)&L@{WIh{fY(r>$8v5 zXW0K_%c%c)EB?vW*SqQ#=B|4A?fbW)&fMh=A9uXttrUOD{+~hNEdRgV-hZYwiq@y^ z-@Cq6@jt`O*LSoJ|7SqrYOq!AKgQ4YpW%?}!}D*oJwC6<d=-;WtP&ep&$syF*Yzqt zLLc-0aNQF$G3MlUzr9C-pL}Tl5&yw{q3Ksah9-^^wyrfBKL#H*s7OCn?3!`%TlUi5 zE`=+f*-V~#e3|3%t;~`i^^dN7^j`F|3SZQr+uzMrSqa|VFZ?TM@9u~G&F!sw3^vCc zV_RIqvN@%w`;X?2^6#dP|1+@vG0cA?FW&j?CXZBA=NX^MiJMy=Uy$>E_&VP20;8)) zfWo3K4W_+s-|m~Au6y-NlSOjunPYqGkIJd+_$aq1HD~FTl#Zk?a?9^r?U$~&X}bH{ zmabsYsk<i#ZsIn06;bc?<lpVw{|vU%Kd;vp4J(z`3Euc^rdgznP3_kB-hc8RJYR44 z;NKD*vrBw?hTDAM68leAe(~o=9skhQE8h9FF-uP{u_u2z?`P33%zqy3y?5=Jv~|YY zw~r$p_Li+$@1Rw%BV7Hg>4J32<s14pF8TZX`lkO3MlP-{A+B7j3>ah>{T40UwR`)< zZPnc?7q^K>W~wBtvRiU}O-<U`$$=gmsVoAHPXxUknz}R=Fm-8e@|fs$$>X3PV_KR8 z1K$_MlQnK1iz=KCeU5Q^{PsG-(X74S1y9#9JpZ(Q#+S3w!5?|P_oi~+@n+F4wS2#& z)b9DL+dn!Vy|hVwG&4_0CugBu=%V_~f8SJ1KL0fC^@r^T4<EWG8n&~C*Xajm`iZBG z@>+Gw>vx*)d|cluXY`+;CHlzf{8F{MW<NTfoqQ<$BmVP)-%`JtSDaWs-A=2*=125V ze%(DOnct6`W@G27@3d#CSJJ+=kN?N{e?s#7^=YxEcL!d+qN!6k$^K#f;e~%}Gng-B zBiH`duU!3f{^<LknpMj$+5ctC5VF1hu>8;DT;YE^=Ktkgef~c~hW*dR{|vX||4!S> z43dh)Ce@(x@BI8vJlE}CZ;AiK9S*87&(HtF4d(}dk_>wTN`=1|sluOn`X9J0U=L{v zAWNaO1#EwC|7TF1`~GjG`M<WUFXB-OgY&3`fnC@7`TI<M$p5zb&+tzunq&XPyl8Q+ z#T`%VkABI2{&oF=taVG5N4>gLdbIV8Q*`EqC0*6c4*gs|v>*4s`F$VUJjgD(xh2g; zrG3?3>7ReI)4w(UXPA)I{+}Us=|Ar{-$&<p?^T!|xt#fFbKTqK+vhCq%?)k*`ft%L zeW@Q8YvLcwWq-?Ozh$l3B<sez`$7-@vp*xnR=R)l{d?E<P5967=IcArhyNLnxFVc0 zf8AT3z2L?5sJV~dHr+FNer4W)>d8lIX4jUk{PFncc@1aXw|{>08D4Y**AwsmnN^(s z?HwG?chh@zwAtN)kPn}J)r!>Z_qz2%_Q88CNt?iG`SS{fH``>z7u!F+P-nvPX)Sly z6&wCXKi+kjl#5N8@lMeuFRo|#pI_nEs?rwcu6{Y~R_mN5@9K^t9fvRcXNdZk-)G17 z>1qE_vA~*5f}#%sFMJ9A*ZyI}KaPs?Z?5}3?7nGVYG@Q?EWhjT<&UpyKfiX6`v@%_ zm`~fO{a}83@#MOf0sk46D%>sR>i^nMFCc$Uer?6V_3L+CZ~GJep>|t;q1@)AFpIn; zH&qx)YJ_)G%ap9h_!TqXFn5iu|MZ`7^-EusSJ^G*{X1ou<)fUHvVZ$Gu3u84_-MDk z=u7TWKB0#On-9(l+<)NP`WdU^56@HF`{CMp*}t<(9(kPnnG*NllHc*gGZU1%TCX43 z_Mbudm1k<7#Jot^KmoC|<OYWK@%DdQK3<upy4TFi@AT3G_w_73&;EV<_N6U#N<aSP zhTY=TJF2pM+cc3`MMv^#4=Yx@v5)#}m3!yWsiJ$XZ(qH?eB$f<HaYuSNf%5rcl_Qq z+44Wban677Q>%GvS~yt*3fvXCzVC0nXRzZV+g#n&Pn+*XuK4?}{+hbu{3@kiGCz;S zEUa<0-L?M87cGrNYkodhulnQqWBWH}RcmZh_4L+<o3r|BiZB1e{WEQ^eaOC8ea}7n zOZ2u~*t0Zz<t@(RFXQF2rMBMhH2vM{_V%;wm7PyM?0mq#KthC9cKgBi?DdD7AKAav z-tl?)%QrG@GM?%m)<3-RPj2g%t%*O}4^O)%`r+!j>G^FMyO&Pj|Jqln{^#4#ya45y zAD_1-eXMVNXYxrTR^zko68pmnFMr6jzm7MmD30FuA-^kepG(QKTTYV?-N}pVS+?)s z`g!{-f27^_xvsl)b?z!t*+UTr{+TjA`{O9zu^{97TI0ZNSHGOjbvoy$y7x$uOX7?A zwKXR{R{!&gTluB`KZ8TmTRWDDc@LNG`f%m;Jb~U~=Ja<(%=#Ce+s|KHSTDZ+3B3Kn zUyiSpLZA)f_(3{w<HpOS3(G6>^P)1kI#WZ=^IlflTm8G<?LWhUz3u;4mjAeZEMyAb z@tgN=|1$r}`o{i)s{OHL+pm_qK3TIm`*-A%V`Z*J8;@U*`mt`W@`L(6Q(XTutoN*6 z%9xz|t>Hhz#BR_34C~$gGh8@ZD$lV0iSHHr*MIkaVObZAE^CjFjS7(E<?sE^@X2q< ze}?rd_OGpce!%~y%=`M+C-;9bUGMzk{(lCQSN^|#b^p3P?+?p=hKc9C|JyVBKZA1= z^TIE_B7qKl(vRw!!jImQP22AHcX<ZSw6}fnSNX61ynZ^bSEi?LX{?{5$3eDzch}F| zXZ9oLzQ?r%*Vb|^scN*#aVVKk6j570m)Y(7oA2MZzF%Vh+qO#nh`qS`Lw@eFB|Ubx z&62h{-#uTy;Pub&d3EROtK)t-|7X~Io%f^rk?(TKAE#d0_GIg(vh7VqRS6IKuT1>2 zf^S)ROO0*$V|y{j<ej(A7VBO)K56Bg&BCwGKg)g{ZSA3>vvA9{9(NWE<z9A&1qtEv zY9v0Kk#cVd4z-SZAN2F)f!`~v^grA8R)sQYWmT1KTe~dg<@Z8RKl<3KTK=!=Czbw{ z`+abp_N=pWCslhoA2fJea4xj9wmB~N<Ke?*-|tELmU1n<+s%^Pzh7D=`GdOh#|47d zDvXbr{Zso;mG#D97RQO*uK(BrC;t#U@$0(eimdSM#W!NJX0-^^XGCs&<ZAn6+J^%> z83W4%cW!W0c|Pa*oEoi<GP}&Xl{S_d-FTG}?JrjKyfy!@{Y29jQERWweOT*Qk}u$D z`^DgfXJ+1oWL<89#62>J*BMfTFPktX{}U6v-?HU5rzuC?y0@hgEZ<HWzn>-}Bq`a) z&A-dh=D}yz=*xSQ#rwD1j`fe7`?SqsnzRY~a}KM`6B}Z8oU?ck=pg_9CU{sJHUbHo z0{}0rKp7@Q9k{M6NHsu=RtHz+Cgr2dPI#uI=9OfYRO)&_$Np0i^GZNQ6e}2lR)7TQ zhvbLmWr9{KC>UCpgJwlghoeD?!1hNg7=j0@V->&-1&e`2z$_aZEUtjfrZ{`LfUE>f zs2D+327$Qx&YmtI`R<-BzKI3;Fn8*^gew>t7#M&ggDZ<mQgcBIffNkE4g(J_yCCLP z3_&v_LHgk!mxHDfP+bnv0&|;xQA%o2W?s4m%pOez{h-wJ%;J)wN)5-9{G?RSYNXPF zf}GS`(AY7`A`h@NFq1%@KywF}3m%e(hd=(|ctZo!sTebT#8ix#r7>bE#>~I~F&=Md zXlM+!3OXK-J{1F*e=#!vtAPx{8-PaO%@ja770fJ+V->)1Zkai$MxZbQ2OntM8=l%g zp@`yByo2(l7VtrNOBxKyTbf&d90$u1XoK>1814+dL3vlkw9!F%@MOc#AC$l3z%u#L zp5@2q>HjY2UmD^0udiL$!@lPif7a!X?|badtzVM)sqSl=`c(fr@^|IFKK;+oTe)M8 z`;E@8mU`jalvaI-UlB6FQTNPC7LB+_>8us6eBBt67+5x1FqE&4{b1h0HkIj>_zB)O z%^FMUSH*u^=VcNb8S(8iPl-Xv&Ut?Y{z@M(3;V?~ZTkt8T{~h<D!gjn5Wlo?+RjC> z8CKo5VtD#C?z1TUx_&{n_>p;X+dlHmy7sAIv%aBsU*P^jd%12zoD%DM@iT|5FlcJI z*1C_={<$|@o7TSQ&g)x~qN3L^K65|Lv2V-%8&dt>o_}+nP<M5Ao^|r?`(EGbd4E*h zKYT0epa8FNvCfXC{XfFR<oRBC$4>krIW3#VR{!qqQ_=M^vpp`Y-I8miZ5?{6!_xM~ zclCQ)G#2fhGAYdcuvgHWIZJnob!jZ~{Cxb_e)js**WBxG9_{wN+}R+bvj6Y&&u7&S z+Kc~ZNX^b)aQ9?)^fxx4<1N$wGi-YKm1*zgBUZBOJHAM-)q3mLRdTHGd-RILcYM4x zy{j^>?~}Q{eB=C*@Ur3rgU1sp65n3vVym6)T6CZPPslvo4@>ucO#HUu_|&3(eb)b! z=O5eU`K<5OJ<n$a6OS#u+wZ_0?9j*m=z8~mhKEugHb>p|>~;FjVCdd_O8ukxmp|Fh z&vX4KdwkSRdCR4>2miiKbC*BRJT3q9AFca+e**QpYeGv`2pziVKRu`A?~UXB=hr`u zyZxc~;QkwSa{sRG?iT<4xZuPyi~TKiw)I+U<=bY}?wh*kcw)wE-M0@vJr2CV7%vs` zpW*nG`|syJkI(l1&mi}yepmg}n$Y6^4D!MC`|9U1^l$o-|C90Me}=Db<^MHlAFI#M z|MByp{hi4_yS~**|8pplhf3H(C8qye%j9gIe*Y&&cKp{<_Rq5KzCMJ)eZjD(OM_Ya z$o)@R+45f>oBwObe*D+^pHtcVuQ%<#D8?sL%>U==oBVH2+JA-%yfyX9>rePy{<mBG zUyFv6-R1tjL4R3mzJC1t&t01T*GKtZ(%~02{%2SfzhM2mI=lK44-@}0#3_SD5m|cP zx9l^wlf2$Gzf#ZS_Vdspe?fbP`xmZXW@s|9WZS3oef{Ep{1uOX*Sq~Ywr_gb;-vZ7 zhR-5)%ddD)7sB)9m&T$-8S`WEKUHt-zb5}zX6l3eJpUP<EPhe{_2YkrO|!nQ@3H^n zy|sRg{Vz-HgLRVs8BThD2I(LFXGk^S`DK4xPQ3f*J&7Hc<CzM7pDwpQtnl*Zmp|E0 zHB$FpD4jCZ*|9p+te|T3%Jo~a589dkuzs_B<Bw_Qbet^(@3zX9{x*Mn`NIPKgb(vO z*8T~6xZ5|3iE*l-690q3@9oc{OFy?C>=*yfko2Q*OZHB~)D;54>Mhf^KfnBG{o)q_ zCsRC<DpL|RE}E96-oPFlul~pBWAu;hN6W>#?!TB=_v&Ufi|oJUYpcE=TQ5FW+1Z!x zl27a_u9{2Br*!ZC`}OkY^-4d=AF6+>?@HWKYM<0nx!w2Qfwy06K~p@eHnM-GFEQI+ zDJdSlSb$BwNI(9E_$Q{lX)|Rqc|1k31O=T|H8wE3(EP#y8k7C``;mBS{vY!dTc7UP z?72L~EcE2b-u@5sUu1XuPCfqTTm89xYp!hhog3~y>(nRJX`IuuHRYer`g#0VoY1Zh z%hn_m#9a#V-E-q%`@-*{-OEKU{Ccz6=-b6_q4In73+ww|(>HnjLtklf$%GxHd`5h> z*)RSxa8=AZf7Hq;E?Rbzo>+$GGqW$hs;{3B-Tts%=<bjB@V-wsyWKp5UFWI9`>(aQ zWi9=zLVm5&>qpV@fq{{?^fqR$ds*;GEQq}=aDJ)n!S8FOuKd{Pdi2xY6LqKAZ|%GM zRDJID{F!})FK5l_(%9O#?Ymf)#sWuIkpRXx>yP^n-p}3OFBEz7_wU3_FBrcsesjP5 zlik%fp`u6kgoj<aeXd)@Xr;TGjDd}ygS=sl=Ew3s%5qvB>r`$pzn`SJsUrA~{tx*J z*B961er&k>rRBrdCG%g3uijO(d}{aQe=PM5*(dgtKg_IAe$?H~#JN5BS+s}yJ?G0G zW$n3+&wKTsA?Av*@oC+=cV;I!9oM;WXvKo`&=30$K0jKg;an(bRXR^~hwbd&D}VfF zP{@9jz|_OoU>&aiK%UF}p*;8Po4IVS9G~6UAzyhuf5FRGUnb@G|7@T9XDIp4p!H+b z^M7_r|1;G5XR!JmR{!Js<iD5ytbVk5{*Pa?|9<}SLdx#U#r;p%LD}x&e})%Id(yu( z{b%T(EByCl{jBSoGwy$4-teDcea3%=FM@G~za8t3pX>bhWdGR=A<5r%{~1m=NBw75 z7x<sSIPQI%Ai9VHt4N@OWSrW6hKa!u{~6Xx?*GCZFQ0k;lkk@R4C_w*XIRMfn;ln4 z;&AcXocdSOUuZv{-#`D8#f|#w6aF(?xV5hhvkVDP3HVUnH2vs(KGU{F_HR>{UZ0s$ zzxNZ*^2hz>cFdIy+xOwxPPT<vKILJTiq;;h4e7tMclWpY{|poJ!~Qd@Klq<v0oSvA zCKbxRjRXEOwDcWP(AAqS&at@T$-nOx_s_r9IPdPmyH%Hu>=NC!GUaAp>eK4Q<-uP} zSI3+DQU199kMgYN-(uhFxST(SDdMBZT;^JS=O0z!mliY`X$T(vllY%uQtax#iT@cc zo{Z!EaQ>f{UHgBAc=_L&>#Keo{?DMYJN(z-{|t*K?Gb-C|Id_K{(t-IzXdy-U-PPO z{nFdnRj$`&SImC<F4=I$m+x{9K8LSZ;C}3%!o|El`j52dnmyJw-7;Uf|B-BH`@?wm zAKJ&K%{tz2J7WI~m2Dhh-)$WOum5AQkJILV?BBe9>zB~$Igigi?fCm5@buCD3^%_1 zO50c89<Y1+rk$JH%Dt=S?kmZvs9mmX-^+aG!biQGrH|GN-OUPSO4%`4(9OQJN~{0S zzDYkaABujM-nytOMLvJ$k?rai=5_zzzi#?uKbwv0-_7f`ZLgHe`SOj;;Bcqv+y4wT zU;nIraSJrV1D+RC2Tcxj&YCx?Wd56(i@dvM)}_jSKK*z7+Wa4@k6ids?x#PsdL^4; zx2^xmZ=#RF%Zu;Fo-8g@_SEU!Ib+tNqe+$GI_0*1rt414T=n^qcD}LkZ@ufk*Zyay z4f@ZJdb_@K|NB)tW7jwCQ7X-Dy^_CJ>73aqZT_#z|7f?(d39yFR{GVX)t3$jm8#|b z(f{!D+SGK@H<LVN_n!Evd-B15hV5^%FKVt@D8kCXV8F0Ed?UxFW5=KGSmS&ov{Y*A z(M4TaXF$`^5Uf4nNB5&AANpIL?R1OZc8(`(mH)?y-}g1If9fFT`f>Y_Z@>0;EWDH( zDp~TTQ<ZtrbIF)r{Lf?L+f4g^xc~89{%V=()ZAr!Ck|W6@;~mIvWu_3`q6r!=$9Wh z+aA3#vy$IJHnRWoy4{b~H!S`z_3PSebEWIk?zjohEAv=9=Wo@&5}sf7{`<CH`SQE^ zwI|E8&kH7*$sSxC`fxvsP5RdPhrVz6v)m|hv)q4%BlEA+nZ66*=tIf))Bk?^SNd(u ze}<3m)qgMl8Gba}{^M8u-_L(uFsYrn_&>u5VSnT-|DOSz=jWdZ2NwsI|1-S4W&f82 zG_xK5@$;hko%)}nSla5&@BbulZU5^j^=Gc{zTSeuy}$#iPELI^|I;<=_}_}N{}~oY z{rJz|_n%?H+~t4E{Qq)<-;hHqC0-(z5^Vij9{*<u+3y%{^QY!N!^A^}|Lt-A*LL-b z32F(^0V*LHl~?_p|DWMW^ws^ZKh(cq+Up&BIk&Xd=&}Fa9?yI$k<xGf8Kgelzxkix zpX=V}fBTOAYtX*Fg8A`zv5LIchw7AeT-GZplfCHqpTSn(OV;=L7CH0(3@zO*|4#0m zZZ)-wfxC2?Uc>K+7ygOXKbqdu-fd%Z`PMP}EpHktIAnHx_dmXUZ_VR{+2;EsujhW% zb_#lQ&wr-BbbG0N6#LFE({Z;*zU6mFJzd^u$9X?%nh%e02dCsox6hNcY7efL{E_~j zK~>)QKg0U|zf&%-Un>dp@L*PN&=5TP<Moki|3p7*z53-~oLjt>#O#U66Avg~-uWy1 z#FM9;7Eiv3-m3}w*!j`DbJo3EJ}<AS9OvWbyMN?A!{ry+*$3})&5rxP`fqu`n(5z_ zttxC1^o##}_hKupXRh(jFJE}_;rEcfR~KdqGs|TOpZu=ypTRJ0XT0=_SzF(?*0|@_ zbENFpGM!(#Z~~ts|10g+z2ae8ua{KE`knpmSSV5YeEABy2Ok}Jxil6vfUsTZ$EE)^ z=01w<_}bw<f6hYor<%9(w-(>O&HJCh#{GG`Q^om1X7{u&MTs4XJ!bA`X7}=o-LZW| zS4@7d)%%yNePWj8!`wAX!gV%WxxL%{c4}oy_N9O*(+ig`Z|#nMD_y_+$o-UiHh0^f z-M+VP>gBjgzE*eNa7l+bBxzpG&-!V$m;2%VzT1wwVvPeP%r#5<8QK49n(cpvyI)r? z_Y?Uil04_3R+7SU@ikR)-yN4NUcG3Sz^TIu%?H<;{+Rjr;L-!X%x3EU%30mHB>3Ob zTKjwUOLOk_PdohZdEBDq%*Fr2^!ooZaF&1Ltp8?rasK2p|K9&+h`-+T#_IZs>b^Hm zo?D*FzWq<~$Cs=L%eq&d{x@6dkz~YwhP8n={xfW`kMf+i&0h1H$(5Jcx&Il?e0ilI z5-KMU=qkc+QZ~7F?hP%C(?S(Y`$B$9eDwTdeplKobNj??YSN+hchBqo`1)t{H9M0Z zr+=%vN%79vv1eb*sgO?->$^*SrR|yg@OsPrqxZC$ZeID@#iX_?!M;U)_m3|N(%1eG z{ZRhRuj|&=I}v;K#kg=hRr=5HX4hZC*ymk)Z1W%W^ToalXQ=yHU-sj7pWW-a()BW# zJlQf?q5`a;%nht|jq;M-vi}*{zJ7Cxy7%u`-Qrc7X8qcJaGrYe(S1_et~@$0p?C5z z`zFUL_3;bW8~%9w;7`XM|8z-}B<%x>w}06G#lE%hKLh8Vlp4cFp<8!Nm&*MpczW_7 z^AG#K*d1$}?~CZj1VcMA_s{LSI-@yPk=@d{|I|M1o&Op7SMI-Wf3Cs(<}C9+4R7qB z1ybDwc!5N8@8;S3mO6t=Hp=BIJy(0HWZPtHeABb7z_)7oAH9CI`twiE|6`uT@I_1e z{Qid}6~_PS-qnAQxm17X#fS7ifA9Qfcwo7JZ#za4W*W3J6q~(W@a_-w;GHd#Wp<UU zYw0^?<XY2>txNP7)FtAEb%`z_b%`E>+Gft+E>YiVv{uX4SD)lz<=B39a5=`Xex99i zh4OFZkpB!VO~-U1@7ce<>MnSy`mglQ>lePdhhJJ-x>xJ5AE+!WXqBj{?k{wZSG`d& z>(%K)ySBIAn7(D-r@P_yg;%d`vRhdAGxR@0Tm7fNFZREF{Aal7oAzV*;puT=*Wa0} zUf|jD%+l~kN0q@^ePkufcAM9m|JeUn|A%{x<=?s4YImIjg1X!z9{*GOH}!t}{pieT z!uMlOC~t4%K5=}5=qLN`8u#Ky`-Ng&6+hvW&M|y$El_)Pfonf=MO3_a#iINE0j@jj zQcw3k>?!@@?|*FH*6rK7F5R-OP>y)m>7=Cb(BXx4>yN+(A0PH}FZpix_KJSPw4A=c z`qp}e;;*LnFR-7Fm$s4rJ9G8&j$GxVYhNcl(Es55`ac8Hzl6*GIDee}Z6BP^7kA2a z>&?44{w~vZ{HdR@KJO!6XYM0iuJ_)%V~!U}2Hd^4+u%F<te?`sm*3Y|t~;M<_hP-y z(*ubIS&Ag;+8XDlT{Bz!Xs)=|&flhYKj|KjG*p^iVCxa!A$q<d{<!>y2{qO`uP#1# zC1>p&e~JGL^SXAj%eAj97Vh}cykzI>kcxFCEA`)}UcN7MS}kOH@*SS}%SAZ8`kIGs zxcYYA<>hx>3&qN&xt-%*_{Ai=_w}xMYaiM&dw!G&R(ciHK9lEm*L*9Tcb)h1Sr0uB ze(%aq-CBA6Xg%+ZdoPT#rE7Md4zMeguPwgtuO!g(P3ePljYo;6e$5kf6$z2As#0(J zr<k=Xy?OmwhRAt0v~HhzKI5=VoyFU@dXr0cd_JF5_Ec#vHkO&>zgHxnC~?K*R?i)) zV<%pII4e4HQbp_}kK09?<_Nfo1eBW0+H5!ZgWTTYNBZ2+_hMId9yHvo|55b)+gUGP zELtni*xl7z>1G`hmD0OOy(T?FT_n)wxt+yFxviy-WXs-%?8!N8)82Q=n(+;5t@wv# zr>&Q2c(cnn&ircn`Pout-U9vw|F#4=ocq_MvA{L^w{)%7p+~1ctKwb+x!4{Q{djD1 z(yqAewMl)kxyviAb{td?(pc2E_@#a8t*_U1fB0po&-XI7Ir`_!r-%ADzaJO<EPDP= zt?$2||4ITKl;50{|L0Iu|F_!xKf{8qkMnPF|FbLc|E~Hk+f{^9PTTWVmxhLB#-awh z?X&-R_U!-0p8r=U`>8Bqz{6F9Q$F+fzm;`O`>KBY{Li4=+Wxna|1a-~MUBcU;O&q% zpms=Imj-z7<cytJMct+U42OKz7~HH(2v2VOK6M7u@{gA5rNK45GPI_@=*s+}s{Hue zvUj(R9d>Pb)AZWt%z;k_tMo71{A1el{h?cH_PQVMu4y0KC0%OHW>fIAiuvuFx{yGJ z61(M#x-<mB+iR*XyiJy>+bMCoSbKJ5f!z;gh53b-x-^)3fB3Gsley1q+lCm=?3MDH z@3`FMusrz3er*-o<~90<&kH(d=!yrm=HAoxH$7z{XvlJ`s!j43r{r;wKnLUG1HVM4 zcWl|Q)%!<t)T%9EWs+*vsk)P!Jas%}tNFlQ#5MDTvCjguX_}l3!X^qvkUhR`rV2)& z`J^CyH!}qzQ_x0fayAVc87LTmcUVw)moQ|PG?lgqqik6Ln+%&*f$mDcvQOC9+|U$x z#-n1++1T58x7~#InLj93`0%|+XMyQ=AF;;9BUwS>g~d5i3pBW{PLgHZ_ChOY)}Fui zo0kaPzV*~m&W&e5#3GGz+YjH&PfIVK=H5Sj_0OYEYD8_TO1@NVoi(R^hVNqg{(EBP z^|E{a78zStS?-*pueQ2!qea!`f9b95bu)dJZGQT(@JmXK(BJBc37bUzKaFw8OnFd0 zyF0_u+UCdO;~9k&AD+B@c<^GdT&hm!#oOJ7nfaD473{A_o7uZ&iqApu>jl>~o15+W z!x7%2cX#=kUtivQcyQjr>tENse^nJ9jAPzkedt(y(DL+I*@I2d(>~pvG}ocXa+3G7 z=pxJLt}B-e);Sg3Q+GQ4d3B1)<DW{Bg@W~J*$c1D;&i-rsD0(ZWj^T(*cQ%s5qMi^ zy3S)p!~N=N|7P^~*m#HR@i93e`|`(4DZcZ|jg5GMnhI`L2ZyH3;K}@Q)nenvNTzRJ zEF@QMT6lip)z7Tkz7;FEROax^4-o$Bf6`4ir7eD@e6Li-nttu;p6?oeGT!R#nsMO1 zXcnvJN8x>iRze>%TgBVM+14xDbjZ6L`kX)igGl*5{uHezUYoA8BnW?#nrxiwTy$?C zYwoU|*Y*zz9AZP0L;vjBG}k|&_;btY+v<O(JbBvrf3?Ys%d0(K^<>`LKdWTcW}OP_ zxJ9!rwCGI^ik)JovQ|)s<7tN4{${zQt?wiz1t+ZErBN+E(<OBVmxh7V!O&DLnbLph zI-FA@Kgv%u`@go1KX$725~G7g9~i}S?Nhaim&g5ivChqDn%a3md)8ui`}uQS+#3tN zd2Wmnz5cM{TV~*zvW|@HhZOa6ZZ$Zq_Z0ik`6BL1mhNLCl_$0WPcjb~7aUcdI5oe% zx}T@A?^~S8Vx2gZIg5WL`!F#ka)mG*Txh+k$X&hSl_+nFrsZj!nSOFF-ky?va$@26 zju?j1l5&$ii!3h8ViK3)h-r6;J9|2M%_Gx2F$Leu_xu!(3$BQ5mW+5F`EOm{o$ec3 zelyiqtMB@|`;+Sr*36phpkto{k|kz6_htRkl(!>I)kt<~p~=Kc>ymT0Wlu?|3p|c1 z^;T(bTwAbKuu1axrd={~T%TL)v)el_=A4UEZ+Awso>f)nj&pu~#{+*Au!+n}>vC5U z?n#ffvZ-t=f46;mLax<6$-KC)-+1rZhG<T%^!T^8ddE_Rdx4Bh97kVY?>Uh0YG1{^ zXyec$Kc_Ko^;zcVXk9(4`s~TzG?#!=FO#<FEbHvK{vgVw=bN|6bm=R}_t!pdbJlnz z%Jk5Wi}!dzujwCUCS{+tFSY_Em!z)uwl%t?PI}5{yvE&`#X<XYPIUE}h^J@IrhJ?l zam2aPRa>IIjbQ~_)MVMEzd4pmWd)Ra%KKauTy}5Sf1V2FMLvrY97^W@yQ|Q1IM*fm zVb6q~VphjghgauHo@UBEzp-b+oWjDsz^A{YBqW)B*~G0;D%hz1;eq<}qNut<FY5UU zZ@;lO3Q+Pj+<3YAvFoXs(@eLUo!zv?J?xX?siNaInVVE{+ZsPlP|!?n3cJlJB&o2r z=uFo3%@OjmU$+a3CUKO_QnNE}sqwp#TWg>zJAeA&Z&7yl4OfR9e{Q$3_QTG2zlQVi zyEXURbhTt@cl^ua{#9?M@ox|JTn62%e^)ycJlx~{f$e>x)4_$QKQ|~eE*2~bm@uW3 z^BcRPQu>#$Yp;^O^z>Z(D=<sKRz0O;k>2aG{Uv7wt_D=idOTy@v`ebCOMfr<=J>MC z^8ADg>lOa#*(nv*yIh*5v;TtUbqlF~d~2`FNoBPB-E}nd)DBq@6-}dMpBx>7?riYk z<C^4Wx-6@_!R4J@RH^j*-w$Gik0<_rc>KZ>`-<x<!E>1vllb+|ty{Swpe^?Khv``} zoqU__>bG0$e<%J)X!0xd<#~B#RjvQ~&tIsw@mmrdd9>0d?%dr!Z<n{sE)pu2jNPGm zFZIiwIUl3z`#!wyo-O&WZ03`XEcWZ4b)SCGyZeOrpN*g0SKs{Fr`++D#poGl>iJjB ziaWn?-E^KLrCaQ-vnBIYnAi795!ZQg6nx*ZFPLqyCOc|r+u@Ek=eRd#e^ZrV&emS= z|N7Abi`q@LhG+2`7C4-%XbVYseDuoN#KU`z?Tns1XM&o+j?j$Gz1y!!rTLtld&gNN z$7EfeypYOD)ya*!H?H@HC`@~^K;fZ~kHp@s?Jlwm+h6O(op+q@T9^3&Lz~<4i>A%N z&uuz94tH<PUbg&LHA7U~dz%-<kL(uK{@`0L5o5UJ$Cg4dy`Qlb>_ytHe(gsjOpfon zoo%GH`NQ5j&A%^P$g@;&32Joye7~#Kl3%m1@=Sw3=E0e3AF}W(6}`W>Y;}eBae<Vn z+Rq=hCP>w^znHam<!4!wnuo17O^*jZwo(a;yS9t(*PY$|8S?86Yd>4VAa3X?-nj1Z zBW^Y44|kdPW8Jhr=*WL~t1~O_S?I^tS$BETqEl)Dbr$RI__Z_QF~hOBBBK9wPh~03 zJEs5e?#Y)rhgi;RSrgVY|8eQ5myzF(zMNrjaLq=c1^Gu8NxT-{yxnA5kzArhM~T)9 zq1_5f%O9Fud$9E3x}7%-c&imnE)`sV6D-Snxr9^Sr|GJ_w3L|U<LH}*cH69ZQF%js zE5FjW)0It6l|G+!c@ge)Pwi27vO=ineA{DI7dFnHbpOE1qpbg4*l*WK+jM6m+tJzX z8-1SqUCsS8B08Dp_lfHg$9^tQ&}6-)&CcrS{qWM;T*ZmTwc4k@1lc<B?Os%6-{!XN z{Ve@ekE<5(y*lc-!63u=n}DK3r2n^B^WM}3{Z^>nKj-pM_i!nb!rT1{56>Gm#3h_n zD6swThdrFN@==-+_nF6ca%>Jw)iya&uxHla5}yBOWeaML%l`?EtNf%}bA0|~Uk#57 z8&CcY*En@DwRh*6#_G!=<<gQOOLPv)ygfJJ#LgX4BP({!P*9F3+$i6iyNd7Cth$wt zlNQ~3c+_*liDi$Hre^l!XYIT(p?G6>7JrP)gwJ~zvgY_0mI`w0;7oT_ovbMHz4DIm zwfNmRy{9+DT=e69{A9($zxTVeR`5&Ty4Une(Qy@&xHe&htf%$qFP1`{6Xf+|JsF&@ zJ@Mdp?X%Kqg}8d`!j(;V>poYxC%u&I^v{y-JEH%5NyHknz-_bZ_ug`OeQte>Qm*@C z)_*hI)LWz96h918j$8NM<@wc>tNC{by~x}5Tx9+4Nqv3AC#SrNFI2kjb4zOT4fnSb zQl{~9P1?lteNMH2iqpNR5vMPlGugApJBV-9E7MO~HPmvI5)VBJSoQAFQO|JMRa<WB zbYvLr@b7D!Ej*$4e4KIBrtjPP=Dqn_6t`Zyd%bhp?V4T|*}ct+{S6NX`!$H&f97;w z_0?^yxmTsq?bO3N*Y2~O?a=UE&DDO#%7&w7-s-rz9X3mK`@Y_a@v+Rr?M6NC-M+Uy z=BV+QAi^@W@<HAk-Bafyyj3S!&kA#US!$vZx@zfS&TW5IFV5`w#+e<q(rOj|@<pp7 zLk-MKcweU#Rk1&qe5;-L!?t&2=|5_Z|J_?-#A>jdb8D`P#_@!C77E8Lw{H59*(CSs zox`%bJtlMZo{WtZ58f`GWU8{rC;DK4#nr#Fn@;F>f0lB-f4tA^*3%9)7EeiuAl7$o z>>f|%EuC8W!=_tlWxTGfx3T*vw)2ZPx+7Os^@yv78m@jMwEg=I{z(O#X`yGO1YBay zNlo}9VLo@S<E*1h27>y_KA+FyRINYYb|)=6*nMuI<23ohi%n_|^=C?*?mag3_ZF?Y zd3`4fV#_yJ8hHojUJ6M)uFN}stKGSW{#yO+a}G-{?Av+Z@ur%U%Rg8(PS-pi{;ERd zV|BFLb*4BOeTG$sK0n;ycenCe;LpwLmmgj_Z^fq&i+4-9KfQS+uKaby9;rB1|Kj_P z<6ryj*A0+f^m|cD(Qn`H*{`@Ban1g{wC4Y<WZkK=tutJl!!pjuUf+Ic<MoFEAyUO* zi|a#w&RW(hERuN9aO%m*!ZP32tu?(ze14dD97<g_bv-AC(l=8^O~-iUst=}hJhne( z%?pkCIjdpH%dNL9l6oI6{23aQD=E0PE9p5q>z&E^3O%8F-iL9q?wV4kS$!iTlKV>- zv*Y5P+qSjgCR^?;ohw_h*Zca;)`oJ<SBZ~fXH5&!JhUohRo=s+H%+IDf6)v3b*)}- zUH07y@%;)}?;lMU`l7dq|NWz*7uw5ThA)+V|7iNBs<Npe(GtF=)_z>&f3afUoWx0I zbA>i(onmFN>D{k#=*W)NiCy8Rzy8dcd!pj{tNz@mwhwlXYgfB;-Px%$e~Rsd{U+x` zZFzV%@@JGX*Vs9f`~GgPaqy6x%0IzZ_|vQnyJnn{+iUUiRQJ*{*2Sil4tEdlbBkMP zduB4rlLXCM@&|k@gRZ4Lst(&I_Ec`ZT6zD5S9`Zkd+eNg_<NCjbnufM3!hC;@Jub7 zzgyAKN$z=7z=SOa&hEISyl9?e=Jm)uc`ZvcZk_Eh*_^alUr}e`G9>~1bL%3vKB!>I ziOkXGQCM^KMvwZRrWMD9>ogC3Y<ZPz^YG|};}whIr{*0KuG36jqww=hm**Xahnqrl zmaRVEAHUN!@cKHli@fHi)+^t6m>jiZ`OLK+GiO}SyBxCpmgTNFq1;y=oPK(Q*ZPHA z#j=*t&gpfb%a*L3^406+@g=P9E(&BAeYIFLHEA#3gM*#lvt$H=ex=DAoV{cIhLl;S z&h4>y>9tJtyn$lOV?$s0#~kyo*c}tBv$W`oIGcA$eJ#`P_y<Lcc=b;fl?r|e3bW;Z zc4@8eq1NrjOH}*#lYD&kXq#4UzqZ}y#lNpgA#JWw4|nft{}8t;^PZw((4kN_Ud~C+ zF7bL=J1X^mjGnoC`Xf)R4W}jcPuwU~c~4+ka&T#+zTc|$r(HJ5Kfej-9@?~1>li<W zQr}1BpcscJqaUR|ca(~U?kjtL_ut>*<KG2>-S$t(f3LE8rJB9&wdG&eaH<qd{=M`~ za@W-dn|c}-ti0CuuA|LND=(eR?vx1&|CXaGELODnhUm<?F=@lI8LPr83d_#kshF3$ z@8Rj9-m=-dzt!Km`}G`nttV^+9&DK)xc3d~&Vm<2;$0><x_2M3#ea0~KI)kSLw}jz z=-&MwqkH#9_wIif-Mc@!cYk#6{>t^Ed-q58?vL)>AKkk@x_5tc?|wtQ*67~-(Y^bl zd-tIy46S#-x3ho2=-&O&z5Byx?>>0d6Us0tc-uQ{S3KGo!zPFg^iIw$uCA`y&WSmh zNky4NA2kfUJp<QS!$y#^R6%DATY%SNftDJ<hjc+#IAFLHvDaQ7<aF>JcQnW0-|22{ zY5+ZVphQ6zbY3uGqdQ2-5q9RVsS(nd!-nQ2L~L|7H3GW{ve8}F)W8^Qfr6otiGhN- zsR8<4chCXADCYx!SE6C~7=HRJTI`r2Vh4QMvM%I^WfBerHUgiXfb&pbq?4d6pey6R zWA9)Wg7tz~u!E98(Sa>?&>V*~c61Gm^s$}^ZD4_P5CQHpp$#p}&A?%g;~)Y8XF{7A znk(oU8CWP78k<^To(T<J7l`3kM7*G$cmeS*`uWVTQy#FKdSL`U^Z@nL3(VXAQUrEG zw1N@nOoX6Vq*E`zB4Ak?q*E_YTmsAEl%ITI1X_j}1P*RQd@C4%lQZPx3-F3cl)Mbm z0&^clCtrZAftduJ=)s@vpz(k;)scP<Ic*Q41_vqpC=5{Xhf+KkgI1WLc%9tkuZTsj zu!XRLY0;}OIPp_y(W?=1G6b6p3qd#Bm*ZF%fwjRV87t<TjYhp3C&=uc`TJd~v=}v~ z2;bS-x;t#uDy`O*%`AqzeAhv@<EYyz?5=EF$Z}G^diELP$2XtPl-0kxwlJ3Ox4LQd z&rQ2Sum7D~&$j$c@b?|N{@k(sS7`ZS-`n|97uUsxEq-_LNp|n_dpy6EH-B6mp0j)V z;eA`9CC`6YE-)!or~Ur62{|?y+wE-97nf!K-f{QUJFaIH%Wi($a97AcC%K6;eP?Qz z=DLTy+!9;MQ*PcAtx>lAoSs*;?Rs9VSH!QGvj6Yp?QMHseLZh&-i`;Zb*DFoOiO>X zEH!_^oj##1@o9I?#VGWi+IhjyT0S^)(kGj@E0)MCl~tVlK1EI{dB>C#IXfL5v&Y9A zC6+w<B)C|Y`{>+`89%kpPF}rbvU+of`r|7Ncl$iQsTJ(Bk)4njz}0ixy*zaHoYfI7 z_rC_smRUBzKRVOhyicy-`csa*f9HAKjCp-f(rwWmzw|^!??0KpF19qP{cia-`3c{Q z^ati_i}>rad$`yhvF`g|IH_RTLB$6J1tlMq=A8%;`9J@mfc-zoNRHMpo72e~IMaRO z3X+q{{vG3)<tu4l?@*u+6P#Z9scx3_^$EqPT360G>R(zU`Qx@p6Km~^DTQ}Bj`L4G z$@Om0_Q$$yoWU=2au2z#RJ_S_xa&gS!&l-*0wZVi8Cr{;Ta{@1`-IM`Ij=n!BH8za zrXC1X7x4BxSMPH1kJ(=vpU{O9PpOnIU=%a9e|+ob!o$!1-S#+Pq|bH4|KOcBUmx<l zb~|<R?W%RFyDMCGM~8m3)w;E_$it)CazUW!NiMsS??TpJD_WT3X2<0CZuy}`k@6+k zasNIFN`7Mbyw}TGPjabK!mngsCe}o@5T>IG_ecF+T`N=N#~iMCaIR|iN#?8Tb~?_J zk=v{^{Xo&qj+-}+X3d#(U@0S$x#8sJsm0x;MvaHX)8ii;HMj74xTC>jLtNxOpY?ZE z-sq`kwy$2j>#xyOrJCj~`_3Bcb<HrAx%|0^tHfh_%x12ceOi{&CSIz&enU)c%Gte+ zYpTEUPG%C@cBxuf^}OxrS!spG{0eIK)?c)jKGE}4%gp)su6)7k56{*0r}C#ea2j4| zdg@p7@L5vDhI*DSB|InDPW@I-d!n}?<j{w%w$v8CZ4WIfdcS|~c(+gLWT@cblIQ!* zvAV926fx#cSXQ?4S()4c!?p$gMP=;$3u7-Zt`qxSY?lz7vLR}!;cZzbYq7=B8<pc6 zZ1X0^l{OtQ-{~MKr67Hk=WngOgjr8h=fm~Y8>M0<9y~mae?v0MJ=;i&4E7ysIBtIo zO?WovbE-o8CucU#)SdGu&1PB2pfhpzN0$j(g8wKwDls>`<`ACik+{uj*PH%2p=mW1 ziIQ($f8t=<+hTZi7K4d!Qe7(Zvc*#>^L6)e245E39T;<N{r)=MjqSOYg{yD$u_RqT zDJM|=Ztt3P0aw>g*!%mje2GF&>;oOyTJAO0htuYDOkYwKGrPBGNyxd}je!%kn8f5< z>os<I7*y=*@x*A;r5?_c9SbK<G-yjTnk0ORLomN3A<9bfBGbWjO3L4J6!j)d+>l!( z$$5L`I{v-`C*@bj#yPw?=z95tc;u$w-ZqOxEdp~AIn<IP43_U(7^<Rt=vVCH#Sb}r zPL(!2^lE);bJNQ4<DDF_B~Bj}-O%v3mHNZu3*&?nnsrNKcmww=Ui`y=ZF9>bZl^Bw zSsM?EUD(yTkyU2>rVGOT@rOSq-u@yZzwNS)=)FYd70<UXl*#+4Ua)uL{aH+P@xPay zmynFF)SZ!_pttdIbZ>S?m%vF)>lrT(tjJ6)pB1;r;Ggmv8T~0QeVkuN+?LGCJ!9#V zT5zp=f>YVNuC}!gqjE)5=4#(}tkO^^GK$l*bxP6UkUDE@#@8Hi>{!y>a~GAY)MlwU z&UtM%L+rxFf;;Pu9Gf+#w|UvilNK3iQTg+Kxz*HP%JFJ4lCJz*b8POKbp-*X^P>KL ziSX}!n>cgVY}X2P|5X>yd+pt|=WFgi*+X`9n|n3hh$?a>*R5DEbNQo$#~%!Tu_<1< z^~m@ZuTx8Pw@*dTeOH$gznQ+DUpr-j<1O_JXX&+jz8(1^wyiK)?6gS2-DT&MSQpG( z<T&H?wl*;ih7C)iJQ;X)GO+kw=61Mnrnl`h`-7|x>)UhQdVf5~`EQ-}segO7-e}-X zR?NA7yXkd7%KTNe^P~4?-H>rP^<-b@KFf|R*Xk-aT6XkI`f;OB)#ZuTrc*MUTAYsR zRm)TikEeSr+LY?GDK9^B;-m{3+ytKOl3lT5(u_lEcI{SQK5bG*Zjo;1jmTZQpG&Qu zZv6j$YW}G-<%J7FB|EL}`tYbeeC3e&W(xaT8`0I?o&U48c}_6#$xt=p4hsBWv!7ih zYf`+fYxC}Ej;f2n)B4*Vs-HcrYNCHVH%fOw<*H2SBRli5wKw#Z9Q*9|h*@FN*}or- z<t{VbQ;-stb}%CIN&U&FssM1G09IAPI&a3H)(fnr4FTO>LvCBeT)`OHO@Xyq=-5_q z%*)F!0o}t0YJCUADiFTc&lueHrBdU?7^U$7G8q=6xEn8~Mn)(Xhg8hj8=IXkZ7%j# zPT_xI!(IMMOmh4uE5*85@9gm0yP|xq?=9X7Vy#K1w>3l*iCX6V`+JYw@)D1{@uU~L z3GTCYK2fYZS^WO#>E-FK&ps+E+w1x7-}lR#&!&~t+VA(Qv#Z@-_2=uCzt@lde0lXv z-o`n(VymCN+`YVCy5`H@nlj_~|BvNQZhyXh(*5{-Cob{)H+52r3_A3F)x?uk|2`e9 z|36J9e&3I8e@}}qU+)^UJaXQi{k1=x8X~53xLgU1Qk@!<$)_*p@apVtt)0JlEY-@t zti5*s-kzF|pH*i5o3-cv^V8z@9qaPr_et>IS>k(>aoQp;<Bi=u4HpZi1Y`!g9^WXn zDIis=Nd8>=N*%Rs|I5OrkvhxOo&5gwgdJX_5u~~J>W3X^D>iLeu~0H)-l_DQ+?y-5 zh{?^6U;gyT=Pyg<oLT-e#a5T$`;r-ZDw~dX&#v5Jq`~^&>gI6M^`}FAMtynvbIYt4 zzlHX5ef^8pz2FaceN-s>_wx|1x-!1|8&t*Omo1B2R9bWQ?;{iEIrr3yq*V4E`Xl<P zm)EfQzxfTV8v^$quxBZA-Z%Oo_#yc4c}=?``bAo^-kOUj{@m}D?KE+<iFWPLK8vhV zYPwqT=lpLppP8`mBQqQOEbnl$`G4HM&(**1Tr7BDS?j);W;#E_?>71VNegnFEB5H; z?3E{GZTYt9G1qL)-52gonXSEy_axJSN|!lGq5s><LPUAo<<D`sU)Am3m(fu<^VvK$ zA3ufgsf_Ni|7`+|tp2-ZoxNXLC9z7$U2AeCui1h_^X4zD^j);Qe({|}6H;%QMEsLD zGq<Mvr<Uc{9h>j3Gn;+2`TpYCy-~S*A2M{yJx*}_cIXQ;o^@D#^1Sa+p(_LICh$8< z5DyM)*0h^wTL0%dd&-IIH}6-!^t6riYd!F;-;UFwMKXZXqWw#WvwynAFHOI~sY02t zuGy27*UD;loOozyTg0go&Lw{?`^&Lp;T<{+2e{>*EN5M9G2iAOzh(OVgYEYpK4+_w zTOb{h5?OcIze+CJQQsi<`0l^Hx0PxHukP2~9AdKX)RG&v@}-XXk6W{+IxXwIYT4%T z@`A+fCdSaIEFE?E`<OKqHcSnX*1S9^V%viUIy;a3`1L5U%zS!e(LOJqmy<4Q>s)`j zy8E-r?a7R)75#Q;>$7As{<?{@7j-eO@S7_CB4ORu#tFs;rhZ_Eol&?o^6~Pi@1|NP ztTX5SoFTd1LdeENbJ5k?SNV_3`@5jYtf-8sV3zCK7c3XFUN*)aJjC?fWm?=C=HHF2 zNmh;0Piss=Cugs@cA5G1C10JGjsvMb-)vnyd&?BNDfRUa8$@4iWpjVTeOBe{$D8sK zKd7=TblnoQ>(`c^hj$mo&zVxmCg`(&!ux|wVw0=4y;M(#v-j~g2ywMvwc!8s`lQ1j zPiqTQyA~IU|8Vfxr@Xo+E!S3^`}fZkFOJOn#L})JJa1FH-NNu6oQaK_ykd`Sf3eu+ zZ08xjSto6h5~Vuj*6cQTKK;q0d9HI>&jvqr?zX%c{WGy{=7M)CU2p$-IyrvX#|zvB zB3D0$Z(8xkKs?;${>q{kM_22McpjKM+p@a1^<DV)8?!$gm95*+AGS@VJ^iufZBH8s z)r+f(4%=)>=GnDRRd@Xa1Nn@W^A|i9NaXaro#2}%Ca`Man>jwm+h#T_eI7jVb^nCp zoHakKLL*&#rHm$*-io+7Bd~GDhWQ^Chs|GA;%~R#hMCprzpC5hqb$m-S6=dzdNqZg zs9&%5V(sj^K@(Q*KH~YZK}!GG9RDX%CCYQ}A8VfYVAk)1GB&%=DYK^E%I3U3`=tBX zO<nHn+W$WamrVM}Tsp&Y=giO2ryQ~tGtFOhvVZ;-W-ZIZ<;zxIG*>D+Cvi+EqxFsD zvU?W`+$C=qD@!X}zCS@VSNOlO`_$}|{;W@JI_H_{<>i8Jsjk@Uz^Qa?OW2c5I|~~m zPrm!y(CD?<Yld0=HSR4(M9S9NPrme%bpkub-3Q_)XGPv!^rUUq6?uzd<LL96$$lGl z9>2bs_un)1JMz<_H}qQ{$iDRZ@}#}f_sm&S#`1N>vHsZos^5Fxm<4y#h3$Ey=o2bu zxc#csO~0u*JYn;B|2y`vG|I0&nI^jbe=4hA@%ODx&Y71deP5&cB<<7jMQab#ZfZRL zedFGRK1)g;Ye(7?9Xhb_%cD1&F3(Zp%-_Inv*_1~`Faa2i+IW%xk{(h9Q^1xXZ`}4 z&t`kXCO@&Rc=hCWhD-D_i<K`{dh;LeVh!06v0z1Zi~=tkv(v*J|Cst1dSA|xpJ>g% z93?XM;~#dO#~rcS;wyD(mZscqE_nX>=cifERPrA+ItOqnwzJ!$nJ8Ym6zmyQq1m#a zb^6i9%?5sF*yjFCUq72Ek757O=EExcXNYa=-8xC~oMC0c_G3~j4%~R9wQOZr=(K77 z`=6~9$y@y4!G!>p;O)E#8d-{`SL`*|So&q9Y2AUg2s_Ee9!#s<y#(|b8vo5Z`C!33 zM+ttOy7W^&W-j}_|522{)#kI3yQcnF(DVM8Xz0vq-ww@F+xz-jV62*armD1Tk9tW( z$>DpOCQqnQ(q~IO@MY1>RDVWw%>`vI7B*aXWBk^BrfTrx6JI=eKd&~}FP$Y9qI^En zF=<;d=hKbehmM8n?X0lq-h7C^|4P=IZuc!2trHsCq&H<$+H{AR{JXjK>#LXV>av(B zm(91dUh2O@QubDnwbhccIW05N_)h6eS^h#$cEu(iX?Y*@U5Bfr{X6ewRBZVAaAE5f z=atL3FP^-2?B?q1cS{^L8GrK3-@?o{^NVszm9#?1lbrcXvai-p$oYCDX;QZL#fQtw zo-OO;+Hgevqw&7(6*`yCf6`j}<^xCUznUWV)`+~nA9=qotTtX=C7yqa<8J=VAE$)# z?|GzI?$n%DRa}37u`P6Oy~*Wuv!8HHxz;Bcvm$rTX6M;ob39#^F-x2(Nt}`0x&KD+ z4~zU}DK5FrN6$X~Ssb%si_pGP$6ovF)VRFo)5C%XRr`&e&1SX|PT;y|^)MsF<6HC0 zEl)hFd8#X}{rh@VdW+x3w58p96tv&zRZ0mi_u9L+`otQMi`$Mo_+}LPCbq%ol2?l2 zrY(Z=rk-H_p8PXR$u?qQxRR~Lx~U!ue*eGl{PxdT)7~D?c4`+n{K?~WIjio*Bdd1q zEq)aJgKgHCisHk+__kYlluY>)rNnr`E9rpJt1ahl$7W4A{@yO|#Wd>)yXUUEG}q6e zY>{tR(3G2M*^Fhu*KWVFV!NXA>2`D5#MwOG7bg^R<@jA(C87R&zTAn2QJ3<P0zT;a z|6jZO$A?*GTi4!S+@-3zVb`artCy#37YdDC;+y<oqlxdkz}eAP)^Bq&-`DhmqseNr z-ee12>1(rZ-27?8cI~zk+wHqf_K9mYFZ*e5XXl;kX9G`IUSLwQb22wcYZb6qI?bFn zZMtI5olL90yBL;hhX0YO6XiXT=enXhQ}FK5Urz51o>{Og{L#coVREP2c&DtKyD4y* ztflTIUHQ&07fZdfHSb<}s3i5&U|V2c=#f1uKf12(*sZ%lmCY;T%7NO(Tar~yioZqg zaur0Er1&H{8THjM`0^hrbvIsmCs3^?T%*4~ZTBMG8MX<nFND_m-4M#%Kjq}h-N$bh z&5pU1BYouCZ;hV*eNOc^`_u$B?^>71_A&kA>gj>}Eo~Vd)ADkrKeZ9!<?s4=;LE!f zV?I_zqXVHwmiNE0Io;;WGtcwZ8B4y*=b7sY7MjcN?S8r=>H(up$6?#6KT?Hc*BxTG z$lQLB<!s}sp1#*De<K$reT`Jjo^$KFY17`#PdqH{l)P%)Y?`CR|9`hEgWj=gj0FN+ z(Ize$mFHP6Xhw@4NSiYENb6f>mWh9JmtNdkqolP=cxGCh`U8U(HrfUJXDm#6KQO)G z+5X#N55rqmt`ajFwR@><7W*BU?;nb~w)yKsj+@Cl%O~DuneueO-EYdX)e?_NbjMh+ zxMXko7(VUfUzaZiqSky>@h7$fM~fxj@IEbkD@oG+@TtySvu}K~{Oz=?(5Yapk3im> zDYj<c=dx?WY~C*VOSJOdl0!#Uq~%3_l43qvBDeA5iPl>pD_6;^V9%>Bb6BBs_%E~B zk;dZbejRgq&ThW8=-}Gm+KzSqzxvu7)d*a&vmoSUjcc}>zx8PwlUxtMvfT%^+&xqN zK&ET4ho#)(V$sZuX+9wz`_?ti&DT9{@xkhnOl+Tag6sD3hhOG&S=*)`c9}PGGvmDr zPr0?D?k`E5Cn?wYUy6HMlArCqxW&)zDkL<nUnOL6aQy|g73UsaFq13sc%*#)Pp^Tn zg_Gu*39A%Mn3$IxnACii=Vx9~`oA=u90iA@j1Lb&lFu%hGt=?B_3aGX{zXc0T`#w8 zKiSQF=<16d3pR2^o9+-_6@TM0i+HZ6pT$G56m1y`E=illU0)RYi;P|8KE4>=yZ#f; zT>*dhqRzIeNjd6bSzYTy-<=2%Io#lGBEWv)Zf2|DiN@XqJ@4N6JTHz~dHb7sOj*?x z_hWBP9(>%TB>Fb|lSpd+4u|N@o^Q`5NUz<tZgr)mA=|>~vhL9rwq^X4s*;iTx=#6? zvedL^a~+~~-EixSnHTkF*R{M#E2p>B@e_B1eyyI$y=BirC&|h~*-w8T)k<lsF1~a2 z%DyjVlkFD!%vu(HLu6CD=Kcn^58OPyzcTYQDpKd{V013Ieyht{ge~Ho?Ce#?Kh4>+ z^tg?IuYU3DXUzwiuSA+iw10X0B>Ypge!N@<JLjxh?c2o@ix^E9e{6X)g?H7`7lF(C zb}c=#AjxaC@!=cIOI}_))5B+Z=YrcCQQbTB`<3Lj^2f+U3e0qF2#{I2DfU!I>Rmp! ztBYOkyz96vkn8oP&uh}t8a9rL&1pFt2Y23B*SvhG<!Z%spRe|7pSMa_*Q{=|{lppl zM20^?$}f5Lbg#O#(D=Aeo41j{LygsPGYg&C*QfK(y!C98z#E0BE2Y$ru4VjuxOMs| zzUJl^TRt3mdo-nI|KSwARtr~Wsmv;yWx;(#e?!tPM+j6-IBMe+dGX1ib2|^rZprgI z9IUZL^+VIQ?A)s5oR#6z_fGz?W7DZ+%etNWE@ZU7__RxQx!6U==Zq@~U5@|c5u7XS zYtC`FSJmoV)`S-}Umu^^%*Ep=y6y5aQG=V+tZtj;oG3U{$aA_>g*n-)Q|@%(Aw!+z zOU@Q4-f*1OEG1f|Ufb*ExLYVa|B^M|E|CiDM)oTGW66I4d#;P}X1afs@Lw)-ykh6s z3dbjo$G9~(Ugr9l%imQAfA+@st<T=*^Ku;zO;oo{{&;fs%{0Hfdove0-4p0p`G#}L z<5dmL`r_`IyPR7-%$GbVCg^2nZ_>qKIbTt!WbsS3#2p)5PDJtwEnHp~QyJ#?dTpf5 zi|Tx%?|bEsH&uLFb2HJg{>iPWU*78lyG~~*wQ_E1eBd!vjJ?gFT|?k(X<GiKKXLm$ zUA&i=A+xdS!nZ_Q-u<bz^#^VV^JXl5HEEvbjY)AH@>`EqI^Iz{^;y&9_|lVX-{-5Z zuQ>ekmR)>hh-Ar>s-9U^bEbyA-LTn0TbaF3CcV(kdCpU}%Q{C2k}bP8OFhx?|GVN- z6m#6UPy4RVtiIp>WX&eW(7q3Mc1=>ezhL{4MZ$d_?-W&gs&ZI+M2EJTE47tfkBzC6 zd}ENZB3<w9iRvJU$NhzOsunRmeX=){YjV+)$J1`F7D;^KC|11v66;*~41b47!P|<r zy~s@So1j|p^Zd2Nx8qtiFI=1w7ytG^P;#Mm>6E<kO8;xA)+N99sAqp-cmFu=TzbQI zn~Y<80(U&_U5@1aIBz{D_!{jqzH-lavzJMEB|p>G9GS1BD$a{nZ$Gy{xNnhN^-M($ zYmZvj*4aB^q!~|l&3OOm(&?IZMsdk|&!4m0oBUIvUgUGBtMjgxx@I$`Jf3krE}KJ{ z-)R2ssd~?YpYCbou6$p_rY|48=&^Fk^pc&M9!s@6?pm3D+S+ZV>?-ZkWox2B!Y4^v z_Pw&0uehpsvE)1T9UDWANAd>E1xIb;{iC1vn$P@wum6c<rq4-*^Q9`z$t$<BEEMj0 zWLeFr#9@7+c-0Z^HW{1g+O9U`UvHf*ZfAVn5V5QA`xDERYu|Cqd)?Jmayh!kK-2wW zOrpM9%S86db9cSMYnF;$xO0xN|69=x$$R$CEe;fhG%i{4TgryDYVY3ep00-Iq^<+g zW;k;n{N339(pomEb={1g8K&y`r7~-a?3}l}ax*S#dvNTMR=TOj>UqBkpGLAW@?X+U z*z}#NC*|6jW!esI2HEaL236hnHnsa%v_*1P-&E$XKCx!e5mWW|ox1WX<=P_K48ALc z9+P)n6?<_)RMl%)wWk(ATd!LmI?=r3Ro>Fm>L2(GBksi=oVaIc@XwNqY;gw<otApe zEv%le-<UgR-|`jeCuc5vdhY5PyEvOQNnGr^ti1lp#<hIRW!rYNTVayrb|$NeiJv7O zxth;16k#!+CT_XfG49Kie(m#GA9l~)_g$^{{_nyi9rXztMUp)>YD-Gh?oAb#TOgu& z>$QU84aFc4-^SPejOCy2R?8d9ah!R#Ot`{6?aGhj85`B5F8SsM9$6xDyyx304~fbS zN!ztw*6m$cVK;l0cTdJ+?z>^-olAD?T4?Fczg{*%C(_HOtml)}o;G#e+C9@I`djv0 zx0tUOSG-tqk@}8}dyYl&ewwwsE~IiT)BgR>#V_3a&FU5;UGaXAoNKP^$qOG|>P~yn zlDuN=7IE*U4b4}=MCa}H;obW8N$(PVmTOm@G2NSdOQK$6YpE;qF3sv}Rkf!YS=w*6 zPBQqUuytqjOZC02{nKq<<YyK9_%kbJ$49}pjY}uH`br!1U3jQ>I5CmyY&=(0*nb7~ zf0<HyPMqHmBe}?O?oEcXtO~r}g`Z7(RkOft&L`<dy8?W7YDOsX*`M3PzIf8_^F=K8 zf**g#p1$|O+eb&u-`D<}&FA_)R_u^TBmctM_l^=(`TfUg^Y53<TeWPb^qs|*;x_(& zcJq9ZwrBdz+$$Z+7l_V%x=m4O-qUCHvboMO6}<C=7kO%j>+bWsCm?z$b=Pff|Md2G zt)+?AOFC{HliQP3aNoLwx&E)8#;!Bpe;6M-XV1Xif1y<B&;qG{{KkS3V%SH5L8G^@ zVapKENHA!^9<g`=^;&at^hGV8`FoNVwitt#tKeMNf^^%p1$bZ=WtbJD7sI`Xg%03J zdhoI%#PSNb1F<eM(8aa51<!@&$O{b&ElnXeXh0XYn3HzvwW%5S&J6<vLt{%U7oHn~ zLICDp*dh_1%)D&<pw#4&Xaz%KV?7H~1rswPJyRnEV`Bq7Gh+o43j;j^qgVxfr(hc! z{cr^XJ3D<h1rvQo*kT~Z<dV$%JpEw(&>&9`*2pL+DJZtm*Do(G*Q?0P$;_+JOU}>L zFD@-8$S*3<PsvX%1zmHJ2-cQa5RWQQn39{QUuG0<pkI(~Y+$4d;_DTpq-iSH+35$D z6qP2I1SA%Lu1PULiA&Hz8JOR|X^-4l2xA5CwKqZfZszd$2-w;QefS|_bex&+O-;#6 z1m9>6S`}huXry3n35pQs{JfIXypm!CW6+YDASz8nn4*L#$YfZk;+}{wGcYv-X@gA- zfhHny`|p@d`j>a$zvF?o?eF&X=<MqZ5@0E?kyhXSO)b)TC&NjljOwam&C=g3Y;FDi zykEb{<5lmHC1J%v36I`|1^Tb-s#*0z>C?%}e;@uT`uuG|?Z=~&m$x5&_ICGM*KemM zU*9hO@AH$d%lU7s-_KvSu6*|4uW#R-T>aae{m;wUZ=WUY{{QLpo7JDwZ@%xB7p-jk zf3+vwHSEy;(zBcYe*3ui|KI9u)qh^BzTPiy`*T)mXxxc6U!Oj9=Q+~Vle*^8&U0G? zcD8W8cYO6zdv5IAgR+~oe}&!5KQC|pD|PDH|C9Irn}59jALIAm4?iycd7w0Ix^2R_ zlDG|eMvQ951$~}u_3L{q8PsW%Zq)Yq^Q_fZzn=Z&vu0iSYvW_#^=j2lOGD08Zc?{7 z%d_i5C~MjSqv!k?xpCclk_2bSUw`^4uQqJmw(Om^){8!vxAN-e>K{LUCC&C>S7eB> z|FQVgsxz)<7TM2P|Mk^VsaKaTf1PQ<|BGqfuc~(c-_K_if4*&5<Ln(%A7i~)W%ZA3 zzm^(0&$@M7#dK1mQGN4sH|LxO_nD(uc|Tg#DM%Oo2s<F(yr1jeya)Y1TGvP3t#cNf z^gr52*hur!qMns=H(Z@kx~_!hx%wK%bteOUH#RUo+r+OO{(oEPbLA^LUz-ZYE<AsI ztKc8~?1NT&XSS>=Ix2V1XVr?&TCe)vU-XG+U3cwRjApWjA=4V6M=N6fu$GBP%}VBZ zE*5=tX=d$7fz+9&I~X?`?^vzTu=w7;O+q%7|5Z0Vd%w-bBvftUsfsv9o(mD5yJNys zs(zO5iWb_W^IGbw|G_&q?c?lD&vUtSbA29v`|a-^d%nHCefw}z&o%FMiR%&UDsE>} zIOWf?-CTXmQrK|9{6>ZSv75P^K1!}XbG-g<56@4r*T3KXS`+p5T2JEF<8xSq4l%7@ zndJQItHb`hfG=vjyPP)cxpXq8C~1o^pHfl9iJm#kr>E+)eKt*dypnT{wnBku^PZh% zdec@{|5*Iwjrorc)_-CT+^=52HcRPr{<rCl$CkZdn)Wtz`~I5|E#i}&ZBL!J+3K5t zW!QQCu#2Zl?waaOco`Jhrx_G=>-e<`3raj2W_&-zr_$V~yL|aW8~x7IsW0cG=5MV3 z`}X(QtJB19{>**0<@CIo{;It--`-Y+$((GE*>qfD^J^~YTNgUGo#O>ooN|@PFueZD z;e_M_FPDaW^=zddqH|(yPnn^5zVyq(Iu8z((tSF~4$o&~?q6cqygWNFAxQUud(Ll* zSq=Yxb1Y2tj(_>+sc!7lXVRtY)kmD|>%TW%x_;|UT5*H_^$(}dP2xPchv`bu*UYmE z?Q3uB+wcATM39!pu}PtG0-TdHgE)N-Z4&Cd5d6th!hP+%Sm!nStu?#9CW;=GtC#rZ ze)w;7!Gty8=MCHLF6KMkd0&2(cE!0+7W;=B2@8uN-4paS@C9!x;V+!%T(!k`Z<(8} z!?Yg<E=9~cl9L^<+WhQ$w|5`T9jW+J<M}jS^V9t`n!>BY>t|H)&tDhdWx2BUkfTS& z!-%`h{lA#AivN9jc`Ne|Q|Uo>#ij55Z{d|*H|Kqzn11b&kKHX=r-B}2ghd=ZY%OJc z@ZX-ezm732UUw2g_hf#lD-JSx+Mmso`$B8c#jDpWb9diwkh`VvnKSrpi|$3ChBXGi zcuH?9IV?Cy$wA_|a&P2KE64twmC5rYRymY)$}ils?`Zw|_Zv1j*mKvkEZcc_-LdB{ zXX(6HS?Y7X@vg1gGk2p+9o8-)jXOTN2EKT8y2MU!XP?5-HA$0#(}a&%-mkl{D85`= zWbHz}H}|X--JZ05^I=`Clzb08=S?ZA-zqBlYB$!->S%gtRKM<2Ot-|jx3g~cs2{e< z`;qQG^AzLRM;>w=zmw{Fx6b?J`<q9KuVm%Px|`Fi?#a(({4R1ZzkJ#I*0jYE&0?+( z?FG}kpY5|xIH~J!@~XAc+&7CRH%{&AyIdH*P?Oao<hRq>z$MweYq)w8Y(27hlx!Wc zc^=#BHvRg9SuN(oKHmxZPMPV+#ip2?E#JLxU!nP=_|n(>VHzt|%CDTXbhX7Et->hN zsSBM%-IuMlaDCbSjeVuL;sW*+W{xw$AAITcOtQb@aP(%<if7tuyr-(p;}tsZdieRJ zi84lf8+Ivfms`Ko+gI_X{_7AiuB+lxb9}->yFc}P@?bT2(0VLbr1vEIvET!_meJ1y z`Bz`E)L$IIy?RZ1((zy=4Yk({cDrvR?P|2`JJsW_FT?cVLuKH@RXrj8lAm_@g}+^3 zf9|hF4m-n&+;=Ot2ED$w<K6OyKkUuQO^oX^b}eQ1a@IQ&D)W9h&!Ljs`!fX+i*|bV zh-^1EyH-&fx<m4b%az9)znezZyXh_7a_mcrAw%rl-8HGj3oa_`@_YKJq}JnD@v@|E zT&9=HV!mnrU^~0Uz<GJKMw_FPgY44-540}Nd3IP~UFgyrwSzCz_8(6<SiN`Q&AhKG za=so|H$Bg5+JegMG0hisqqdu7%dL}U=l=FvK*oJ?wvmK$v*B%?_207_B{g_!IMy)s zY`Vs^$L`C`m9t)OJxXzz*!cX=xx<0VCv4U*@$B2ULDTW3X5{_YGrir#CwgX<xn@rb zpZqUr?!p6=CjyNvzX-ok;p)5`6voV#yEJKImh3dyt&?A;aECqMS*oqY{bq-M)T+yx zGumahPC48k^7gH4Z+HUh{(l7puRYqP{tA)xnrd7&X?w>3iS~@CnkS1ApFN1o;}l%` zV%?=2#@J*3MFUPpab7m-?Z}<&ywKpM;IizqJNB&?bU#{gut@dStkRTOrwgyfR2wL5 zv+Y@ZO~f(adXvr73#DsTOWoU`e$B(=*1{74w?i3~Q&%6@(c~-GQa1HiaKK8TSAnY+ ztb5&<EX}!Gq4UQ%)$g;lvT7K1h92N9<V^1jYwEcwUUbXE$?f63fCX%admVPYx~6rq zGH$!$B8?)s?iIBccO8m6&+++$qf4s@Kl>ETMO`&3Qr55dr1Z*SUFOFHR-d0;(y@qP z{E*1?>FlgUE28c`jM&z)PEuIF+i+v+8XxEUH8Pi)_AYE$=l=E+^Mwtj5k_-U*M9b5 zVUyJmWk0LGe!au~>K|K<cV-zc7eC1?_Bv?wp1xN_AxaIKJ$5N}+*-{zH$z5{H)K=M z1hyHI)ObHAR=IAS&)W0oSnrbqho`>T%^&^cJm2QLH`054wajg{j=Gtwb@M{{@>RhX zPh`5xT|7x>apO}TzAb^3cHCWkzt%`CQQ5Y{*Hdjz*l)>`8bx<}`0R3)$=|>5WygYP zWjoGGY}++y*EbI#*1AbwLLWG-6Mt~``uatjr-MYZqn?*{sqg0GPQTINEa`nYd;#kl zJ^6(lmpFbF9==y#B-{D0Y|{H}^ZFl}vA$@Vywj~adr~i7iTdOmS!1@lA`7bh(gb<8 z%y)}OpP`l56ZCx5mru<r8mjk%HOQ@3fBYpQrAN+oX6KUwQqu3{O^+4Rs^yy@@YS+` ze^-9QrnJo!vw!d1UU<jz-n7u(2Zx`1J+yD`;tsYmS~Ke}t+-ydy{+&2wfLUORdy5n zLP~w+CwJV=deAX@p`75OcinwfxfiBy@tf^_=gxbtK4pKQ@*_TNQ&QuOoTxBd^I&IJ z)pH%&IZj-hha9DKRoq&(?_ZNOQ6@6$joSZI{#6s^B^88QT-<#(_xtty$;{yn|1MUQ zl$5mQO%6Dyk^a-B>TX)KiI(8YqV`1#c0NoI$theMc)`Kl>heO3jCYojtkN$cM7FFe zc3dYMwdU$0rf(mun9R7!Qr5_=?dfhhEMX?gI`tioK#>@4qvB46siz$O1WyP!+f#q4 zzrOIo%Ln0M9X4zJ{;&IGBz0G8VdHMYEv*;(xN_O<wVKJja&L28d`^SC@T^60TFm9T znC`=V>{~Z9vap%Xim3S)I)zRA;H>Fk{vW;DnN`n8^%Oif@l~xb>3G3{y$?m$%L<ZZ zG8R5BUa<GM2>Z4RfqW))%8Lu0&D5#6Y8z24di5=b#SgcJ2kl2p&sL}1IUyxswBP{8 zftHK~2Sb^^38(74s(cgv`;B>*wQoa^;*RZH;_3dTOa4u$OOY?!diUSETYP(ub`-8u zO6?8RSac%rPKL>bQlVMfI+p*fy(pO9ndHzvY4N;1x#R6cte;;Nid4>0RQ~ttxVOxS zzk>H`&!5?FYo_FZoi}9)*7P2${C;zm=nkv%KQ{lAWv?{KOWQv)Li3fg$iH39!t#uz z`iuKNyylu}t^V|0Otae-9*yYh+HJpT`1n(=P1E@Ca=*Ub`*lIDmsiZymb{!l;iq+d z#F~IDKF>=IZrJgk%S7)Oi}&8h?sEyU+9xLSoN*D_zb;tX>xEFJ>7r{F6N6XYV3^s< zc=5HbTiF$cS$iL*+{h_hoOs#cyu8Ea?{j!&^Ol(8NL`;8_^a?_q^{Njx%Hw4j=w%_ zVJjthNm+nFJ^gyig&%R<vZ`xS;=(VoYBNV(^m)dbG4uQL>nbhAq337C3m=*tKbv9R zyfsZ_t7=YF^qub6R?hzUlvhe#mSve{!PO|1-&fU_1e;GRf3~+P$y9vn5mzt9-Agy~ z^*uJ8uU;4X_lwZ;CZ<0nMh4rw<(T^-oDSQsnR&TJ!rMXcZMn%b-z>fGV`sA5rdXzh z1uI>@vN_E(c~RpsTNzmc)#p!+D;ZcBbXm`pZ;!tIDDv#lS2H5dc38Qmo^)%r+&ruH zV&HsUcEOyJk<A=R1|0@nHggSH&x*{sx`t`<tQn=3SUhTiiZ`}}`W`;5Zn0^$bz$53 zAUAbW!v=5J=oHZy9%u78v##_!Dzj=1k~f}`m}fC_^41*}=bUknH=L6A&T{5t(+d~p zoC)DHk9w_N)y2KzcsA>sf_3|!tejeSc<1MEo5<wuRR<RSx7;Et%o}hZA>#0~Ij*<= zZ8&D}P9-;4`|-c7xlbq0>i%jtd6r;p-^1M12W9TP>+ZAk<#RKSIT^V}_wU8t!Y7{h z`evN;$uhdy6YyjG^f_JnS}9LC>Pjx<8_r2N5$I@fYo@pJn&U5h<>nrb<ymXNcj!;5 zKbP%ItEm5(mv>yedG_dz(AH|3xtHEqC5BxowdNO>SR}FYUP^7i-e>L3)rVIW+&I|V z=FDtsFLSHful2B)l^EaJ*N+|==z-EgN891Bv`UK*(S4WiKKypzG<)zS#=NJ^4H;c# zjD;MRw6*_qSoGP*3VHYHKI&L`?rBHbF5{+(kPF6ITO8NxE&4pS_GaPr6OK1FyWZYl z{z~TQ@x6s_ULFuPn<_K^b4(u>-=R<H7AsEo&06OF_>IK=yjL^VSzn$}eB<Jsf=RN` zcO<N%UMSzVc&B)htn>>FYpMIDPr`qFk(ge<f5Xe7PN%jhr$wqsChT2in~Afpt}sj5 zH8mIJ-hvHPcc+#7v1oZA`Zaug|6{++%J0}-nzI@kZNL93|JOV&ZHsB$2jpBQx;0Nz zDwRw<G4I8Se74nBVo$ayxbJ<uK1kku-m>ExW~NM$5I?+fPl$Tu($n1+7+z28Ts!f# z?;p|QJ~=m~{XQjiOFwmGwyjS(eXn?uxbzDR{ifG01rN9Hj!VjW7<d2mYg6Y#d~+vz zq^#Xv>>o1OO@Z&q1?Endm=}L8GX3<vDLs?z^gi(ycUR^-P|7Q|%Xq-F`jNCG`}2FB zxbJ6%oKj{heN#41>%+Oi$j5xLP2MGqnTyW9Wn+=q&SYGD^WwVz?(gj!3$Hn7=rrsq z_<ezaCC`@0_i+1%-%m~}o|@C1v%O$<p8(6|Y|b_T?(MPMP9Ar*-*5MLp4XTkx|)II zUEJr+xS1u@K09i+&Aa<9<GtmrxTZ3#Bb-XxgOBRX%@axrF@5~;@3rYE`~jPzOC6=_ z<eBT<l$942#9cj6D*Hiv2Xkn7^@)GW(s#_z__}P#gr%>v7H~bhvsg>M!29NH+jl8S zVbQk=&*qfoeb?xDm-6YZ_M>%Y`Ht#s`oFl>ciZo~-;T-HCr&HS+&*9N>c;jP`;Pb( zRQB&kc|M8jPMFw~ISwxxIL>Gt;a<!9(Y174QspY4zo`oAmMr;kWg1Vr^38Y-qfVQx z#hk~M9l9U&Fn;#;e`Q<LnWjyM`ylaPkLDk*WQDC<A2uC|%{!dO+1<DEXzzp%vmS5R zs?8axdU<l*%Qpe0+?M<7JDvHXUaCi3>zbW=r?u?11#eVCwPMqpM+=szGn&qPeC@)i zCs!9ufB)#{suSF^OTHWBhaZ1a8hyNKXXS>aQ3mSwJ^9bd6of9)-DUN)<<8d`QRg;2 z+qF3-Mpr%mgVfK3Q59c2bgi>E=Ty9SvgTRQV$nFc8K-AlHamGINAk+bRqqZiV&YpY zsKB#-SO5B1&f*U4(Pvdo?|Tuk`U>-=EvnBaraqngRO8c&Z~I!}7KZN?oc@;2{O_-G zIUa(^XIoF~I$#@c=z#mgWe4ZG&Z@m=`27m=r7f!I6VoDpEV1m8xo>=VA^X}T#WoT; z=`$)d+?Gc>Zu%6tZ1JC+KHQ3yXPsKNe%L%G_@c->Z$U?4OS_Ct{!<?=r%TpdIXU%! zx#423AJ1dwc7$n1seKlg+_CP()RP8Mt6!*C8mzKkR4%pd$<dDFe*VK==4bTx7_82c z;^J$$DRB69v@h#Tg+<0)jy$dx?!8zr`Py9{H7R@PBXxgD)HYnnZl3?8Df!K=-L=Jc zj~!dQE!*jEp_EXbb8?F9PW@LKYF_EyR4}^L<eMThlUHY_yu|SW^~Xx;`@TQR+%A4U zXM=l12iwuq6#=pZ+8YgC1v*}Qu-(z{!Hf+rI+BklsNHJv^^qy=`QrRY;$4ah&&-an z*9HaB>#kjFtj+g#I>xv=Xzr6aa<vZ~g93jET?w7(9seyX_=~7ZiJ4(X@ypY9vL@}5 zI$}_J(@kjU`WvO?zn}eb`juqbyZp?_H|&d)S0=Cg_2;SAxl?aWUsB#s_{5V<+vJ?k zuhr|{-ww`xcliC`ISsw*Cw`LnW@wWpI%D!3ewX7mOW0k)E)>@Eow%{1U911(v5D#{ zb#he0lJepc^7Iu?Zaum8+)VHDMc*QgANYFC7VX=3&q<ecir5>K_-`5gFPHiL-f~>S zbdGoRx3J(X;w~jFX#&qL&D(iZ<*jLl<E`ReEvsdM;u{#&9=K%4E3-M}(oMf9m4Y|8 zEp@arkN@;Iy^8(L^4D`hW8X<fA6~;f|Ie|F%Ww3DT5YK~FnjS2^>ab*%1dfQ-cFr& zyLsEXj1%$Z&j0@1nk+2(bP}Ishenl1s1$F`)1DnBI@ZsE&i+a{snx3YcEZyY-aF4v zdwe6fL~`Sm;91#a?R9rAByM|l<bZ^%UWjvnE4SmJtRJ5bs~-+k_RoFvy{tdIw1v;Y zS~SKm>Zi@>qF?*uzlgs{ob>t7ns3%T%fn>W8fbR%XgoFP2s2am`e9u1VU^jvFp<`! zoO>;6LQFWm&OCC#yKaJt&YAOW78{+H80Dw6%BxxhY?1MMP?sWTA>b~2^;zJ_2A<xJ zGY#Dmb8ZHo+<EAg@G8!ie_~JBeE7xn(?c?M^|8B`cI-a0`b+MLW!v93-IAGWw{cfa z5VL-5($<a7_k1~dH%qCOOWDj)Rq>q9{5NZtU0N<?ILGd$hd0;BdrY_77M&<9;L3Zn zsrN~VWr9ok#2rk%E)ok@dR17an4~wdHR>p^dv~twIr?GQIW^XrO}5_@mRwk+qnNRE z;hGN>JND=3Mw~pe<)(n?-6(^&S9<~&J4&(-?$9f6z1?ibT2LWt6tZh;g2m15t+$&! zUcBqNShI;e(Qnn#KYyPFN5z%gli7V+#-qEtKJH@l^SP>y(N?V=m8u_#^}KzdlC|r2 zdC3}HF+)k!IJ54vLVAkL6V^HRo6L-pt*(fu5fvA9m45KNak=&3F2jlZ;{9gJ!`HUv z^}B7$-tuopTi*<8(a0;S>-g6Ox3uke!SRe)%&`0anZPm)mw8JbH|M|j5|vt4m+bE- z@~y_jDsA#EvG3v$?q@z3PFZq!W0}g!zM^NR&Q6P-*-%s>u~D=7>5(%pcf8~~HLdHi z_9f@raVjngzE8DjY3aVF&@i<z-J^O_iJ(Kp&PeX(mPP9$J$D?}Ppy8kWyJ$y+5K62 zrhh6)zih%4b@RqWotTZYMcZ$(m6oWl{<?ad?b7c`i=D5P-4(X~eOl^r<%IA_MNIDv z)m|>OniS`xUg_0pwx#;xmIs~wA46F6{(TMzT9@A%B~>NhJ>`1#vb&lGUm9q)>U}o6 zEc^bXmQ~_MN8Rwvd-xP;dNnim2rgayf6<|@xs&@nzW)EuxKvK70s90VXk#yIxSz_C zD0G}Kfo<h50q-tVFf#+)^+L>!4inG>3$-Rv%s?|DuuU>xlVKr?dm_cuz#P001Zg5g zHZ%YBiLccSf7qGs@+S#ip3@w@A>zQs$yajklwR|km9(8BrE^=W)snDfMO$9fzqd~F z@OtvY!%g}?-;vjQE5Dn5`FC(tWQ<R`?}x|zzuA3_=f+O`{NVau^RJ)cf9LPhJN@_a z%cqNGnRV~FWgk7?yyAua(~`J#b-y$#%1R{u{QD6obM(i00i%v)k-GF&p0KBn-T(h6 z4zR8J^5*Pg_uu+16WllQ-HWlQQ+cq-LZI=)W({tmrAoZ&c85as&u@D0iEW-l%%$yj zYN~(!xVV0@!k_RD&(`<L+qOU7TleS1zlQD=9_9?*6J0mHa8_%$_fTWuBBjrK=?*7c zmQK8&XYt;7rjOY5hx2CXtSaz7aZ)^A+h>x>q)WHC_V@Ed%BWgSaD3(QZo;ii0fBll z3HRDwK2f{lt)99<eYFAOj_Q+7o=WlQKU-=pGll8F&2!UNeKrZw>)L0>wfUqc$EOm3 zcbRc7v?IPQI&`&;bLo?0_Yb_98-IvIZK@EiQLd{y@xc98i<;_9r)TUD=0Zta|IIx_ zRgMJzaWI+mLAOnw(cbdUo5zlSl$--g?tc*4^^ZMYMI_3#@Rif;#n+a&PD#<TcpuQT z=G26L4Tl+vW*&WYQs1r2uJMen)52fkw!GZ?KKQpawbmQ0ROuJmSZ$<QDEQQ`Y>v{* zfEGPxwdwxyLid?0zH+E{UXgcjpW0}(>%o;3q2g<5?<u@8xx~lBR{bGFw7GZIU#q}N zyZ?T6IeY)?-vz6j7Hdup<g-(7KH0B4_wrKl`en;24X0%WD*Ut4DgW^2iNTHXmd)p1 zEn8{7OZk>~>D?M<7i*68mNNltCRM)qjPrT6ExNAL-BQF@$<Ox5Ld0^%BiosukMG~_ z&TZ*jx&H9pnxIyv1wX*ou<$HnX>zu@b>X6BT-96l*rhI0((h$_ntQKL(&bp<biti0 z+S9qj=ZH)6{x*AH#K=5vheMqHjH6YX+T^*;*&S%V|1h1;Ufz+%=#!58nTcyVbQcO& zymu@4eej2p%|p|DzK=ab)*W@xnCIR6qIG|XZg9rS8qVXfZZD&Y-|&cNd2=cp+q;WB z$RSBP(=^CUGxBE3<jo0fKfiuF{xVhb@q-n7I%Nm{X+A0~s;Ch;!oQ^<>j={;7EztE ztpB#V9+rP>ak~D~Q9VW`e!WteDaUo<mYmwF!g2D;lMg$1;sVn4y74MI-`2Ttr)qVi zhoI-fLyLAfe*G4q*!aiD_nqhMMj6ifB9?_6QZF9mJ;@Nc!uKRY=G=XQMe(7kKObl7 z$jn)=TJNCI>58EB4|dF};SIInJWwp|?78}cS+#J3Px6F9`$aq~4!?vORHQov%9R-w zFDO%BcwErNbU|VM`mhI_HlISB<W|4id5tlCs{Ot!kH}B<ZR-~=C_8Yy&_X?Rg~7f_ zNx|LAMLLsNg!i~S?&VWaEEn1n5pK*QAU&zo)#KLQ=|4l>&pG-aZi!?^<F^T#lCvCh zCfUd|K567g5%|&nZ2km`?uC_;PxQZ#zWjwz=fwQfS1n(AlPnsVX7UDHVti_O;{K9f zE&Ih+@A?(7==2IH{|%`!?yaA;9Wv}&es9v}B_56Pw^^k;%!PcP&NTm*WVUd{9z(8+ zs~ImbUA@7${7=)Pm~$V#?^?KI^G>I9;XQUr)g?s^Q#bs~YE*kE9J)N*F}9LN-SPgW zH)Sl#WnSv6Kg<*0?DI@@`RoZDN#`mff1dtQ(qqcWZs%`s=#;vt>dP0M*(FEji#Pa| zc9vN%EOFr~i+R!$-<&v0L+v1!>6#;Js`fUNuIc!+XM+&)mS=5Is+U70O-#dA9y~N( zIQWM9l=~~DB%ig^UF@?v?B^BbIVxW7G@mjbJ@-emY}(@@`7Vcd%#6L;%sr19tXOnu z{fVMYx=NoiqE)WFc2E4ZRrk`)ZSjT~69ulZES#DY#{OfSy0@NCBU{XbDb8PlXE<cs zQqzAbyu)nn8qIpvt?dFCudcuAIMezkKI@X(v2Q&hGn_U{Yqf2)>b<+{e1!B-hc!F7 z7`|pYM=Z|OxM=3XSz9NdnzU!q^pK~A-#0Fj-WQ;(uX?n7`MgDj2OlxU)f_erPtN@j z8O-(j**}g+4c%<^&lNa~*{4V9Zg4(y|9S^!{TKbPT^*kkmAHN{blIDpk{?*N>7+h; z#x(yA(jVHLlZv}K(rr9Ek54-JP?P0e{z{$Xb*r+J(ldGUuX(A}wSGOhe`cS~yx+CG z;nO2->2&TFjLkW>ZIZwFzUFSf3Hi@*n#(;V&kB!Fti81V=c>HWrS&sd^N+0k@Unl( z_vpZ8XU+I+$AVr6`CnUo%)UEBZY5*;2BV%Pr(bv1Of(GsH2uk{|IKsXvGLD(a<s}S z=#Qmf7UOjj#?5E+Ud_2Rt76)gv@ZGcnhFQ}KR0yWm>}``q^R6Oi-(dmw*Msk=N?qA zR}-t=C!yLS^gwTW(2rtmquxzV%(g52-96QC#_j^`#|3-_SCqP)PdzXWoi4Ge$2qk- zsH$a}bIiKA4>V4hY_#C~t356M-Gv(e;;JR{X1m?m`C)!w;rSDD;)-|7jbJv(51oF; z=|kI_mm;EDzt%N=T3!_7n)&ch@p<JrI$d+W2>g4{V3qo4-Yb(ei|w~47IzB@da7(+ zd!tP-@L%r<i8HYh6ALZ!S1kDU?W*;J%iE7;X2@7u=H^$4de2cQO=t)_sHk}+dg6jj zr;o^|c<h>T%eHsvxy3sQ4sLYyHjourCtKt1U9D1ce&h3}4ZaH#ZMS+JyEFgNF{$Ha z@7-@LykxiKcWL*fV_a*G>w2yJtNm8uOsvLRi#glV1-2Alc;CNJNqAyW)00P+4vAHJ zburCqc$NC##RKkYt9o4t-yqvQ-k-6-GP43_b{=}(b?B~S`^g$HCieXgySj>t_C4-6 zyQlAH`YX9hwNKZJtZsM_(YUAeg~;iUgFmN59yF7YdGLRoM){IMjH-$IE?gG)uCd%_ z&d=t>8!o(UN?t8*rfWLYyWY%A-F1oVoc-;owHeVjb0bR?3-`ScyXn0r`dZ)&>kVu8 zEZzs!8Fsj5yB+)^zTa3`X=z?N^PVRk%K|puQBLKS<$T`tcd6<kjSER{=QK<BEjz@@ ze%P}pY<`9^W0=bg!GM>`x6ONXtoRj&)ogXWIk%W@O<I#$oB38v?D3~M*N>a7S3F8w z865q@`h&%x@CzGWT5OW@cHViU<y{?<p-Bq=+{F?H50q>uUAEYy+JcQg_u+1<7gmiX zDKl;svHz78y>QjB{J^I>j^z%PjXSo?)7RUlw_<AD&1<<+Ue3{aGe^s=X>Q*GrY(=O zyUO>*v3`B7bwJwx<MoGy8SU$uD>+X&UcEAt)9Jwj!+&<4w&?M`<k2}H{?+a1%Z1F6 z+s~ZS{_$R#<<|X%2C;%Pj}?neP0LSCTX=Bql3T`X4=t}QR1A0&8Ia>Y<J1?yo0ga3 z)x9fgy4dE}3m?AzL#J<N*1B)XE&mg4ZVq>ReqqY~Lw`jNOP6x|t9oK}YHGKX+-APH zcbVE>?cegpRJZ<E^Q&0*hi&NxZ@=L<$?E6n6>YU_oAd2iFTdWI(By8Dm%dwavl+j^ zokjQE1?wL-T@p3>mT%Q}?-NJ<!*)TR6X(BdP++{oAEvhT?yhb2ON5Oh9MZ$@3UF9v zPI|a4GWeXYG4DE?_u}_HGN?0$-`)Jo=J+;+(?>5W73_JDBJ6N|wI%0%+v^w33Gb`l zxoY~Hgb&T@KJJq{AS!sPSI7B=i}uOwSNZiSd!KC&J#;08T}@nU_sI<_4xiibb9Y(# zj))aqCR)devbV6T7R_C|z*2CEuE((hn=f1t3k=k_I`!Gh-8W`T^i-RkqV9Fsq%BqX z?n~#o=?phc>)N)4z0I+npJX*{{+elq56_%@yx1=6?A0yXIS#GL;gOr(5_gr4-ADS^ z^(@&tdAr^=NNv0Qa^1OeN?YufmoLiFVo$f^dGpSAWy;P2Y;DsH?LBoaP4Z-HMb7(_ zh`R*|xt7dk8%srIXsqE~{m|m$>hvof7Fj8gZQmF+9M8VVJTvlI<%+c%P46n^U2-eA z{IT`na?>MUcjaDJHd);8RMvmac8P6GnyLPJv1)VVve#^%$?!o}apobP<k{CgZ=L!& zZb3oMX<JiK+g#t0*Y7-8&HvV3T~~UWv20giZc*jojhD6wKEEQrJi19S_2op1`ZJfG zzSVJgF7f;>mrq9G8vdI?dlNk}YC~^i|K4m@l)K3|EN3#u_Xj^Z9=O^qkK%f>*(#za z{l$xX7GKpXX?Kr3n16y_`~Lw3W0uw_o8tKU{MI{LGc}n-pFH_I^QuAplr(3)Px}rA zDOAm0zDDz!{<aUdPWm18n!45hwZF!-`G@xO)~%T}@!JNqT<tlA<!g@}+<A^y;aK>y zTy~p>Ozs(NpKfvKJHPbdUGw9PU+ETSMYkm{Pbe6@)I4s!KjhF?KVf$LztTc;4$8Zg zx*V5sP1>6&c1v?f%&Y*`$eG=O+PAoyinlG$5o&$+d0J2Eo3i&GGLk(%h6P(6>0kBz zM2+_;jdjTZ@edvLrdhU~&PaSB_)@|1@ErMY{k6QSCEiWb5T4*aq2vAKk5AWZ4U#v| znE!dowW*v>AG|s@x#TccNmI#sBgggmZI9}_!}}M$)fT8!+!g4W&(S-j&3BW}t*-}j z<<C60rI2^DwB~__o}-c0Y@eV_yPmZLx*TtR*?r1QkL?0a!@<zAOluBJoBaOW`-Rzi zjD#iq?oN_8c=KA&1LvHO1-un=`uVPwU23`!F#BAZj?q2F?@Ky9CGwQslYE_f{ATw> zPe!w6m-SXuwq*G<otyk*Ew}kc#`r7J{kijgy<Pm=vhSePw6f*(UknxJK8=Vzd~TPK zoRwFSXT$~eLr?a{C^{SdI^cMy_{XQdM<)+IU$SPu?}u449u){q-uYqYQ^Vl$haJqP zX9+N*Y6&neeRw@zG3m>bdVd=+w*!4kZpQw&bJAA7xnqfxk$<6HQcgsEUmW|jc|EQo z9){cUt%@r(yW%$ZBz)fEQj%y_Q&y>NaW!gE9IKMxGta#>k^M8>oGP=*{11!Ho+-1w zb+W+T)D^j5$!{!U9r99lZka35tRc4ML|2g{|C&N2^VK}R_&qXHr}Z2)c8{3rbNkS_ z4sQQXiFeqJYe+OEJFu3&OuL*S{lB|GW?j#DA@|m`?t=cE`k~UCxl1~#rNd|ay4>)$ z;^2h;W;2>5hjG2rQ&n8Xo_jMhM|bw;M;{8LHm*s_b$LC1?@B3d<$V9O^KZ1th#H!0 zV%Zaz%a_LfdR@+x8R2{;TY9GkU)+1;g;##|>irvHPKt=Xh*&<+B6wzGM18iGklgQX z&V50L8;{Jr{b=u*Vx!$3bA$Qi7f#@p^(+4RcZtkb);r%X*Zr>Ji<tMjj!)zKwF&tj zZW}-EesxJYfTM%!`6ZwHi^3XfEZ@)R+QA;7DL&=8`we?rjy{dBYumhEahhnP#=NO% zJYe{p>3oLu1=ci!`OAM)KJBjcdd6|#`YX4!P3;G@vc(@URc<`I%5%=7ZG8t9GOn{Y zU)iMnpk7WkS4eanE8nEozWG(niid8wv`c-@yeKGRW|F9wud_tyP3Y|GdpTEb+&WbI zA<4Iq<G3*IyCsh<T)NM#G-b*}pR)6QtS-H++<a-(ciI-cEt`|Vx_54h$c{b62hXnR zesL{WdP9}V))O1{ym6Q+@MiCn<-A+YbXNwbC0O25(=2UcUd)$rFE{ASV}|ruZm;GA z8JZZ&9h>L#Lz$~_@u}u83zq*z$L|$;I@(=by5Wj$aoXv$1`o+4XLc<Sw)=ie<@=>| zoyp&lJ!f+`Tua$kyl~pLBGdWKcVxCM@;%FCZgiMA{q60UyB_?W<bCbwoYk>q)AOsh z+ShRk3A69Cuzb;BxP9rK@Z1UaZ+EjD|L>bAxo_!<S-W1o{dC*p#<Qm$p>>i@J0~lx zKJj>Cd2h~^<GH#`amN$FuPptt_wAn9H!G~ejAF!$W=?-v*vvb1t_=4pa}VFcD{{Zg znI7vs^}AjkPf$Yi^mQ|Wx^iY$M4J|#dQ>%g^4WQ5lkSz>TlTJe&+I<0X<`wtp6pxS zJVEEZ@$JLstsicvJs0=?Q`@|U@hO*VyxObJ?i5z5dNM^x^7^eXnO)07gid`C+OoI2 z*ud3mbMAuUY?_|}?Pjot<Q~84=XxQTGjQeYm2%DL{r1wcWG+6{%wMK@!~ccaUHK^H zKkifK%H0e9{_e%MIf8Z{Yt%0rDV<b0zM*Hf=@AaOPQGi`zD~P+_k(HYr{4JY8V5C( zA8PzI_uj?h(OY@$h7|tao;6o@d1!mfa!0=gJ%y&8x4#oU{CIV#?$^?_(#31H<lN_K z*z@L2@2>6?yEZ#x9iyD2-IMpIHaqJX#9p1*vU{%l%ea+?Ci>jp@IyGt@n5>k=J1fc zce$8-I9zW0xchPCBZ>RguN<CbT-}#=Xv&J(ckI*szWwki=lXM7k<a39z@!fExlSGG zXE}r=UR#=at~^k6?_5sd9#fsX^)LMn`n-0ZX%k(3xPF`Sx4p7_kDpFn^>MnV+JuLe z;cp7rI4n5s-DNz!Pls*li!2?bw>}}+`;xYB@9MZ@)3Mm+*hVFr4}ZVQty$dh(beYr zy(O)e3Oe82y}=OT@ye5b(y74B?~;#b$}8QI{JffN_C4>S75?A92X?q!e7fLvisjqt z)^GQ3r(_r3{ark7;_NyD&3}`g$sSX?k|&^YzV(ZdiQNJIqxS@E8`keOd&zp6Z_<zI zXx4Xpx-Hy(_FlUW$5*|0^4jGAUr_s>e_~a4v{!x1eY3d1jJsA&owJmyT<iL)Z4V-P zJ6`TBz9H;oWFopqW7D+|o|zBUE5>X5vX<rVHM#11JK$2M<Ftm0vPlIIi_7X_f_{G5 zWg@uq$SF0ITE=(sCqAy{P7rIVcRO%@H;3ZpMfS!feb*&Y|M9OA6=23X><S*Igbfa2 zTbFNSs%NZVXk?&gV5(qfZmDNxs9<PpsAp=5xh&r$wYVf&!OT>_Kp{v!A~H(B%tFD; z(og|(Bxx}6>UndN;YlL}0|l51s5J0v0kRt83ivvDIt~H*5?V8F2HGz`t)X5^l(0lT zyoaK&gzY~VOyOn@@*TCp&CmcP;4roik-LRs0FI9$nBdGozN1>efwx=0Cl^4uohrE( z7I6A*pz;P>h78KwYYy@;)dCZI0w_E%L9<0v2~0!*2n*Ihm61XIq*@SyXRY8t2r65t z5QKv&xIliQT5zFkT{A)6WJOVhfk<(P>}#oD4w}^s8dQM^@-fu{6J^Jm3COclNPGHj zuz*7@3t<5~m;%#+suc^$thFg<KAb9n2@5zxunwvqq-u47(y}%+q*lv%kOv`Es}l?4 zcA+WNIw!Dtc#x(-s#Y;5eG*eptDQy}Ss&g)M3j_+Dsxk_vN1yGv6zC2UaAButiGmW zz`<5YS%M0Aq7J;Z0M)J3s<w?#x-h1o5||1hNyqRb*y96@x+qXBxKLU-rl8W63c;oC z2CG#DRltD?e5wT;YKsO`#!?~R232r@3U{gn7i#MTRCZD!xCVP2VF@b8sTPDNoncc@ zp-Gh>G*bZIP82jqGcBkDr&<uAGyu&&H53(sa8PAhPzg@8;6iEanNg|BF{pwIRBlr% zxQtO6ab}>}h6<@m-wlyLVa>TgnpHuiI<*4R2xTnG3{)3UB`^&Q6bubO86T;<8=M^s zOHc_<t>839X%?G->LscKC#>sBQKr`SO)W_@G%!{GVFLxwm|{RtesXYXNwj`|i<^E( zYDI~@XKrG8suP5AhESfdpu@WeHkb_!Kv|J$A&D}q51tXFN=PDdIc$DT-_6ii!4P(8 z7*#^r&Q71IA!`V#6Q~xlC=DF&_8M5oVw=6TFx4{#B^e_<Q&R;KQ)4|NbLeC?=Jd5A z!BgeZGfOf`lfWm+MSu^N(@)7wj0YVfSCm<nT2!nb=;G_BpOcwaTA`brT9lWXgL!fs zYU=`2wZPo(hV!O4V>3%|)<kU0xhnHF|Ms>|-x+?&x8zDJS-9*df9I0`7Vp`muMfX= z{(WtG_yTP%^|GMkl~b*}uKoS~{+))UpH9@qYQK+MOQvOZmD_yU*DoV??)A%;FP8Yp z*~`gY`}*R^;gmUhWcRJpyT=><zt&K4pUhm}^u<+CXWRD2%3i<m<#me5yfgfKlhob) zC;R`d-g)BV{OMXJCky@C9;f>G<iC6M^&V-ztNr8NzvrEQ@<`_$mG%DLzpIp-7M|&m z-s-#N+Mxsd@(Zu)@4xxvjgXtqxfipu_x;_p|GSy*rt*`o>)*Wp%ky~et^2#}6ZC5; zxi?G-dr~B6#F)~)c&XUEO@|{DQx<wF`tqEc?IZf~i;eV)606f}K}+Y~Op6d{4d}{k zi+5w2-F=8ra*AM9`<1XbZgu5^f0L)aOf}QE?3s3{GK}Gl<HUbOtY<HOY~f{J%edq2 z&yZg2*1o_mR|C^7i%Y&)emE!LkjsD0&GXI`Y@2Vq)akZhjkA}}`pwgHa-{d)tg}gZ zaI^N3z~noQ&#Y&d3nj74Hw|Lt{HSav&?{1N`l0`!`OW(k%^rzQ^{oHQyF1|j`x_n_ zy<(M;&a)?Gd+BpYH-EN%w_sXoN4>*ChMluc&iZoy?7f|Bw&rJ-#J&5H{LJ}yzBE@= zozcrfolfuO`MADo?bbW)ts<PaaI?;Y?%?((*$mNc7OfZf9o%ypWs?iEo~*ijpf*Rq zSJS7Z;Ut6GRm&4ACU0LE_U2Q6=dAg&zBh(0bqrkA!YrFm`26`Hi&s^@n0t>Y>3F{v ztmiv9_s^e4nMOS`Hv6yIwa)IC?ydCD(EP-U>t;9yMc!d%+p0GE;POe<*H&+JdL=Qz zTtQ)e`lUuKISp~S|6kcupK!kWt|h&rWSVE^ZTVaw1CC+=)dZQKY~QuYZ>r8Uue%mx zaoTON{*|)CMh}ZOmz2U4o_a|(f96?Rn8&z|OW=Vk&y$}fIvYLLKj`n-{QbiR&VR=~ zd>7o-sCxF(zRaD;8%4h`@2ft&tM>j2r9X{V_vscZ*5(*7ZGZ0C{6cg7?le;`t955D zs!!SWb)&Aq6kSe*TYJ+um#`cUyO=XYNY(SEl12JS&R^Hh+xMMQ)AH|IwdAOt<UW@@ zaW=JeQ=UkBIowrb^ljt`v+9&D&-h_+ey#O`C_PSTxsWV#4LAL`X;yYir!09jLvWUE zYpG#I@PnO^y+(U(2`zce@X|5jC<kZuH<!<AB{lxU983GICLJ;Bk!7ahoY(0h(T5FB zsn72VxRdbtX!RS*XWSgD&sCbP&2dui2%6B&EI&)H@MZh@4<BC~Ra{_db6o6@wMV4c zNtWnXx07ZGEzHrjUhVdto<7eupPaVLQQT!ZxAa`e`*PRy?2I?$7B4oHdcNZ}Z_oMd zkGFpQKL0_N%QPOdOyzwJl22wUFZdy#F-1das}`5Qo%FZNil4q2&vI$}*?l0_*p6+| zInKqu3Vytd<&bG`{i8cShp~U(m)ZrE&9}W~EaI2jek*8|z_o9Vdndlua9RK3TKK}x zy1x&6=JZPaW4mlOcVp+h_<Pou?Y3Rx$;p*<i}3nTQnb}nsqOp|mdWBg%h?SrtsUPU zc=D$0GmGpx%`R_|sRxcE@LiKv<GyJ+&wpcQ&(yWaZ&yqEKX*D=eXcfjF84lO^`#f` zUh{@;QVgo#x>_gOx~!;IESsNicVNbYQmdQnvx2wYsP+-HVNtytsOGC(_EUf%QoC9( zVNO9}%k|n1eoj5>Jk%w&&73ImLvG%_c%7eoo{Jp0PQ;1)uDJN=qtcD?s_N1gW-d!k zck)d<%5)}YzmN@+?vg(T9S)`k%J7)ftzypnVBB8zb4E>Hqvl4}OY51t&$qL0`n$2< zi&Pnhz23cq(hH?EQr_RB*VnIJ;<#9isnmP(+T@8FJ~-e0p)_+oe}n&rgAcu0w;o9U z{HB2;_s}C<jr@6XB0IEHb<Te>k`$Kuda1uPJIp$tL83Y#k9XUbOK0;od^kM0xiLF# zk$i>)_l{?8rzMm`96Y9J^Et{TiFaSb?#pV|C88N0-wd+4zVxxCP0*XvqNe}XRi0~Q zFiL(mUuNaB|6<Q0=O0IxE&hBhr0M;#oH(ZH%!JuuTu)+TlbLP(40P&R*+hS8ntszV zNNhTgv89lsp<Q9ZmO0DfmEF1e`Ci9v>UlO<rQ<8-u}`lxZ&Y0EnRKw>g#-hG)g(3R zMFxsSuT9Ttu3UJV{f!x~<+nwq;_rn-U#{$O@IQF`vBIK*sa-y6{GF<|J&8$N@*(!; zO*NJ&az=W~wk>+Y_Ooo`>mPH3b=Pz<Jf6I8(*~z9=Sm-=+y~QHk{7@AxU==s1v4Y= zy5K7>UpAKXo+)0T>?_FT*vZMv8{pN%qL=Z<X1dmwuS@*-o#l65QLhOQ-)s`2Z6})* za@p%?Di1GbiqOt=f;-E8$~Iiidf}?P_|sJ*@i6zWg7l5TJ{J}RJ-K5(H=$>PE6W*i zcduPe`&1o1-Tkxga!3A4kBy~%B_&?>tQN<wb6n@P>}1sGSE4gn=O%bm$1Iea6&RCL zCN@VP|5Cn#^I9vV`wgcAUu;_Og>z|H)YG?yE4hDHJC#T+oY{G5O<l|WmtS^peJx&b z;A82`eJyS27e25qwF&fHSiG=%>dC(6!53C=m1)27pZjm(qc`@ZnI&^p{Fux$=~chZ z7YW5wr#a8QtCoZ(nQlL(+}g+dO!0kdY!j!_hJU&OMU0QuYX)+;xFo-D*q^MV(wLiV zU(@`E^;J!g+;Q&m!WR4FXxD3(Bb_#6KKRAVC$y{exxt&3OT~*Dp0eJ`OldcH9Q(jP z{CTcKOM%4IkPZO{gJlM@MJM}N+?{)fC+MEu?FY}c1?@_H;(hXY=+qGR+r4r1LK&C$ z)YvSFcoH;2*WiW;zbOA@splIvJytxl<?ezXhqnk?ocHe(KVhSOE+<81{_1rGKZF|p zO%mjbcw@)*T(av>t4=oSW0UMlk5A5tvQyk0f7e1v<&NCMfQ5WZtS5!qPV8CnsKd8Y zQrD~YeDB6ntTiVCk`Eegn4NrJ`gTKwNmKsry7*d7rY@;R|KKk1+7I^@_8yeic;9$R zPUC&!^@AzmYf?+Nw(Yo8a%**T?d3BMq|&rce7-T`rrFuZwSiS`iK!2pHTL=iSO-+y zElBd>|LUCl```bS-PIFIO8*xuk&;eoR)4fTAfkp-Oxbo<eSCQAn&XMnPo9&z@W-ge zc2D2j`ni>1lIskFw%*(l{{8;4%B`j{6RaoZCmQ5RnfIM8c-x(Ke^Pu~dGn*`4+Sk= zr&P2b_jmfv6yN#lmu~zygIp)Yc7?auHLJZeJ{uim*3w!#YhgaChTO&5r#IP8dXN^z z;8wjw=G}I=)mtam)a@=ylinX&c%`3>b-`MpxVl)@3(bf1L>>4u%2+Qj=YPMd$8Y{H z;O!;m_pc`LI36o9%Qkqu@uo?*WRJ4S1%n99)_ZZ+SNS?KXPeCZ7;)#b!mM?|SNKd~ z&1F8ht+LFL+r6k#<9gXP0nP1NI@2G0Dm7L4E_wU;%<T5c{;KSvxjUt6J2Wd=f*<~W zo-6b(&}jcG)w2!tL0JitQa=3e2<-RVFz<`)%Dua`{)j1Dt9xszbn=04yH%l`7dzLl zK7Q@-hG5%mawhxbqWRx5e!0=?yW?W=>xWlEuP!n9xg+{!(37KW#<5Qg_Z75GW9#3O zbLOec!>$P&A@?3V%I`V2jBhn-L#(*;1I=DO%jFk31do<!?`Jw4x$u<68r|}5Tp~*} zPMqbK@_e(m$c(QqY<|=&FqnB@m(1xu<+hgYron<5U)uvBmtTI8`BjjI`Aq-r3r2o% z4;T6iTydXqDEwuq@X9MMZ7k>M>4iu<eCvLhQ)`m0WgTngTQ41hhf2Qc${()YUU}&8 zUY7EUHNMmQrusB4FgALZ$bZn7Rc6w(Pj<euK5t#Z*LhD?RXD{Xbm5j~>wUD=Os)}G z#O)m>Em^{=@uuqDJd?J>0Ku2XPOlKY;x6wNQc}3Pq-fHa)m>cLle=9xGXj#jSDiZj zO~8QF?gy7f@8pUn+D_;13CGtQ<Vc-zVYYN()#ZeiuJ<bw&XjO0o|Wgpl$fHiYe~UP z5uMu=epfeK581kDsrb#t{!_eaV#+`MoZvXV@TpwmW$#Kp{jCdY@;)wjdQ9R&<#M6P z-?dlOs^7~r*EqLn>4AWYnvJ$ew}cfJYFyQsx+aNJYc4}ZcW$bM=!JR0Crz_Uwd8cz zw)G37rn@_DaVivVJXNtMeDYVB#?9ToLe5N{ed0`6)Pk<<u?>}V`|s{Ob*knfL#LR} zdtd9-5+7WdHyHRI_1CxeFj>If9_z+j<*?bEx$41NJE;!^!h9DS<SI^!X~teSUE$C0 z!~a;m#lz6B$J|^VYYyF<bKSg`bB&?Qft=a})+={8er(^WT+oy+YBPW7>&{tCGr5#6 zhbxwLKl>1W*-UP4h}FI~rVFp^-s_ovwfC~xvWY_fIJ0h+W}p2a^FG+^NMHNItQAW= z1y?ycy)}IOSIzC%hn?Af8km3V<9s^#WW)W7wLEsOQ>zX7xjv<{H<UPh@6vj9yu{tW z&v~h{%+ee;&DnX|WfG)vcGUb*kTl<(;(Gpz;kw|7&kyaEh^^W=d%c58(#lg}+gRco zJ6Nv2NZgb*cS4y$tkppsZgD&J6OEc8OBJ5~EDKM%So8hLv5ZQS7?B%o7jI2p&{12{ z)ppVUv&7^VO)k%4il58Kmed~EUZ){<aZi_i!u5~R`!uE1KXDW~emXV#kIpsayK9PO zFIoEg?=2nO`;0CQ$JZ;KdSul2>_vU?T4#%*Q`H+p=0xi!@2;D8=9x94r@H>{@`Tur z2e(*Go9({szz$yZ`0WQHpKUeUc~EHM?=__s|7DacyZq+fv<~-Z$(B8I@Y%CB#&fOX zWODe@XXUSJ;c%Z^D$N{acRB6Q>#CO(TeAC{Z(j|UT+Gue^s)8B&sA}9aj|W;@(rFg zsCwSg<5S?%TwZeLUZ{ca$?12d+!1_L_(ICn;Pu{(J<1d2O_!)GaC`A@b{l8&f5s*u zaVe~e#?3&3c(86Oc-0u{Vf&Q@sRsH^iN&d4VekR=z9IUqdCB=HnR)5@o++t$C7C6a zx*qy2sl~~uc`1o`B_O563TBY;tdRWByv*eMlvD*n3&?6|<V6`^MPTcr70kiIbg>Fx zcY?*hB4Cz{4W=Vtg9Of=E+890jyKW=k>CUO^_@LkLh{``U3?P@;Lg-{2?q@a8h|8& zD~n4~b3OCY@)gV>!x|t{K)xu-EGWq@QZR=MBZY$;4)zPO!@*i$PV+BHNiE9EOV@w} zho*vlP-=Q+aY<37hGR;8QmUqcesF0)K~5^@$a>J>_eh=uSpzc(?tFwhz`j9TAK)9J zkM+&~1ARwO_?IYH8kj=kqC`R02+xfHCWiXHi520QDJ2;SMrLNFV2hwP2ACKa=tp>@ zW~OJ9C>WU<==-E5g5q1j*jPWfBsDio!Ndft+zEW3ysnv<DcCLrBLf5IjR9b3x6GVW zBT)E(Qdtm6_#uz*;u$V6HvrFABZf=P#^mPTb`t^}3Ez0&D|4ia$@ktTY`%=U^DcdP zq_p$NJFX?J3elUCuS^q}`EKj~e`#scMNX=^9*tUNst~E-ZoPT)=JR{rtn>3TKl-Su zDwO4ZO>t3_$mP}jpCdo~dvZ7H@9UGh?XQ2HeEst5qeW3VVW%f==bz4c?^mMT+_UEQ z>!jz*trxGcvh#Yx^55jKqtKEM^D^afo*j4p|JN!)PJZrQYdfpTb4@mWDIebb`q9A{ zDYT*CY2+N%nF1SI*vlQhKFSrlbH};+AaCr`Z?BGiy!hLoqmK99--?<qwp+eG`;k$9 z%<5WZvtfGVoDEj#NiXL1Cn#N;S#H;-G}R+n?e~vAGKHdgd5b$a#7}1&s`$~qT~2Fh z(z(4~KNy&%c&;f5V4iL$A9y>a+aldI=b!A-hqWf2hbvVM`z~pC@6xI-_uyNS*>|;O zfde+udsiFzCtqBC(foO!Se#3O|MH72v-<Wm#pzGGaob+$+}XXwJDhxV>iWI5Rv6c0 z*VSElaQxSdC7zdro@u`@*Gl60&wYhU>yc)if^6XquLnmTOg;RXCI1m?|BQQaikuhg zpZd1?bXj=*KJv{XJ4kl*n*Q_k7n)9KI)7%D;ahRKEUfMSrfr|CZ`@HzTIBb|<Wk!Q z`LO0&`)9SBN<Mlle6m-`obP<cvqOYuUGPo0^7L}MinYXZxt}W{Y8Y+1c$Ov0&lf$n zD%<$?p28`aI@KZ)J_|x8GPuR=<!AlgS3hsd&y#iX%d{qQq}rT2$exn%(^IEdY45*T zQJ<Nnt-PkOpZ^KpzWqP+EM9V^pAU20xa)O)#{BhRN0pVL)Mb)voTVqcFx|^qW0T>! zK2ps1;_)Zx3@4@wo<1n*Uy*0`?~Ae06VY40wPrneXq3crRz6vXgG0DMh=cECo@4oP zkE+-1F^Um$((jcNE!b|%?DD`M&E*{9)1Yg|pIf>;-p4pco1x(9@lR!mZ4qt!9~M1$ z!(8)&WxeE{cL%`dn7o-Ac4XNL#=7l-ck4Fn<B+fD&A+UYwrjny;jHJkxT@aj$DU?U znydd<f@$gTXE!8$R_Lg<Nqj#g<;~WqyZl~(-13%9r&Q7piaxup|9+Wy@jRC2s~1es zv#9JXimmzn$;QJ@n9+EK|J)7p)D6r33c3sTTt41A{V?|(A^+-1+oCwj7y$!?z84Qa zWtq-Bc;wN;Pih)=K|XA;Jog^_{>gf#|MG(x=FJ&N^K+W4|7@RSdq?TUrM=buleqXe zwD-JReA;e?IseRMHex>~OzC5|GoL}oNiDp=Smto{mx-&-$^>zo=sUpQbepArMytg& zp<}m}i2vYWlg;2&<-Y&m@#pT~$={5Z9+K>}<9|L|-No7Cw4{RW<cIkzyS}8Z6ATai z5m2aW7qrSF+-8p6b{lby1E-l3D<pkOEDrk{*N19zCdwa3=x@`T_%zGw2mdwe&9U(_ z_V`Y9nw5|odCFqHQ_=*<EunQwBQCbH?6SK5?Opp-+pLWXb{vUcek##jrzHJ&w9H+5 z!;nRGBE?_Y1&k)%O21$iv+2WS=1GbED_<9Xu{)?*#`#{<?Hw<#`M1h0XWrU~8IuH7 zv3<Ih{Yv82l`nG9KQr9<ef!vUDzF~5m#kB{%E;YWD7~d4-|g*2`}Na}zX;jRlAJa1 z(Fe&$E8b;EwlB(L8K0zc9jMNAerYo;�-;WR<+yLmu|_w${g6YEvrSd^#_&?4Io( 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π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%0AFf<|url+(%IpKdmk$PC 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	Qs^HqDTP z!_M!8{U;rNcZGGn<G$c6wrLWz1ufn&CzW_Cek$<sTI7Fry?Xzg8t2J^{koFR^?Cxg z=$_!u)0=5_!*-{|gWd`GPbSpNNcdj*Ch~i>m%T;ui3=QS4?aB69OqMIYTUHu#=hb^ z-z#q$e}4Ysj!@I8Uj=;0iw~<xcBdR_S(LlOWXt)OsDy(5zh3$9F8*s4a_2k$o3P%X zT`P|7K4iB1_Nlm-RIkWyQWw{`%vl$=<d{}t&4Je!gM3=G-iuHETEqYjESSGj^HRXM z-q6C_jHqxkG&Z(0g9f6Zf|042i3Msno~hxC2|oVq|IF%qu|s0td>=Tmr1&zJPskD| z(A49|aLiS0aaiOKB(%V0cf_t0SE6>^ioJcy^{r5h*0$1@_x4@WTfa7TOSgBnc~t!T zTT$HK>(hh;bOPQy|6ce1KF`m4#_4J2<`h3WlcL7bz|dgd#E?{X^32OkzrF7>%n0Ka z_<3s0rAd<I_2=FmJEgwys&=vW7Rjgn|7@fhY#N`ka(_ynZW<m}%HxoB_<H{_t7hG; zW?G%!j+#w9rq({=%c+~v49A`%><!3Wy>hq7?`S!NDxPWAuS>i!<6!2O$u~R|eErI{ zko%wC20vyD`pUqydFQHkT{BZ>%QJj9QdPhCX3C0R1)J+kPx&4E_E__9Idgp9Q!Sl- zv+I`YJa$Z<&w3znV)dqLStd1=&$x{bL|mD^<(lNW4TXwDGW}}~u_f(Yc&_C1V*a@P zMFI0}-A>zTz2suUre#krR7E$R+?H^8ad3diua@o1U#Idcus-m8w(361<x?hlEqFOm zQr~CMdGY1xCskIaZ~C<3l5qFDHMYJ#LaM&`xW!!9{IuWX>BoJu?v;o?e$%Y;AaW+N zX-1-5kp0PPyHhxRds_Fcn{rqC^pT`FuTSPTWSzU;J^dtyyGW7WG7EpBDd)}!JJvhd zd~D3|J#R8;<rfwGwJ%nSesktkt}CCq^K607Hd&tM-aq%x5}7FQ{r;r0^IMwsU-n<Y zbo&1my?XPH{)aF9Kl|~?(S$$xUH6wOu)N#T5E*G=vAfzK^KSg<l~T*zEt<I6S(tI& zi3+*v+KIOvG*0i=R1IhfdUf#c1?E6jEf@a}E?=1RS4!_WD1DK=Mxgd!_%G(~9Hxup ze<=QHwohVUQDAdYND^T2PFI|f$kC$k$l}ub9go`-+ng<uSX?~P6GVEPdRjD|xG2tR z%;<0vadhcvlsFR6;d-UP?H8}x;fx~|9qv8pGZ;88tv6shrl97elq960sOG$>L@G#u z)ll@3z-5Q-6{#zj=az6?Qj|4hHWDya47TD-PSm;dIKk%9<3y%MEN#MxN=afVp8p$j zPPolsnJiGO;Qotsd7{yylo?GHtY0qeckKVc{lrP{QOJz08SIrO&bQYbVVcoq!Mn^` zJ;CaX!<>T!YG+*bNa(rgv^X7!G~g~YJ2SDa&C)=;P)|fr?4Zp{^%=)ENOTE$FJRdy z;wAX}Fw;tIu>-0d(;Xy}B&R4(GmhclUMg>BBd(~|cC=&qq12A)2Zdg;M=*(Yh$c9g zDAe&!4d~n=*wYaj&?+Mwq8#STo5VX~>H7mbVlLb|t}$Idbak3jJGKUNN3egrRJej& z`%>5j#aj=Gp2YC+cJT7NO>i%1VBRP=Yf1hB&RK%9A95YhUckDM^<U!;{s_HV-qVtC zoZ(7wtl`RWyw?@tn6;NAZ(v&Ix<@QZF#4g@OO2T0AF6i9ePr7q_|Yw*bB9ov;<~1* zmjoktb31Yigdh2Kv?ubeaoi)B=N7}g-6Q^>?uEV^eA|_thwb2fdHX@xk=qaXj#vxq zZ?S&pcVu^h>?5lk(Z879wN(qeZ>$!4-}+nNee>_7=O5M`(SN{L!SIqj(e~2oMCMD< z4-}8IKS(^%{!s9xfDMzhp!uQ29sNc%JaX<eGV>g2n9LOOn$BKwyulMKu>HW~OX(j} zY+Anrcg#O{`2)`*;|DG!PVHYbOAdq`S-XL^P&&u`4xjZB{{(iM?jJgDT<&nr?U=iP zyHMOly_V<v!OtD%4|8|uAIN*j@TSeSqdGyq=-VN?CEpKrcjzDT?$AGY`jYzxqdiSO zxb}4Y(AuL`%d!68>yGt@rB75c-*frp`$PSa{X^X&+aKf}*`8?ssIG$jqilu$FNS-m zKjilG|FHYx{Y(50x1GZu20NEO0(O(`wf8?@xWxWI_(;Ft{dWHc!AJZb8Xr0TV8ItT znHJ}c_6NmB&OhXS8T*52pVJ>9KIOXBAAB-x${zBKi#yyON)+`SyxtLi*u3NZf$f*- zEcos#)}8)f{UfeQdSAP|Kz)O}V10|;5xpOrAJr`ye;EIXuHyDPpzra2_Cx&-@=yM- z`zg(93BF|iP-KqVFOxrQU)C3}eKh|e`;q6-?20(6?k|x)m_PEraPu?&;*syb&*;)A z;IeD`<DEBymoAw7Z@yoev-;HsIX4?FaXdNMw(_&YPOBMvV$5P3mjACdtEkrem{6-| zR?+LC`ZWIZME+p&micWS`|RX0njctxlCx{x%${Y-G@mE^FzbqD&$p|0IY`&Ar&sd? zOPTPRhu%{TXP+#;*|Cgq?mzP!iKKPy9*lMKGMfJ|<$REyvsP-ENru$9Gm3vqT)4Qt z9Mj(XhslbS@7y;TByrwvj?z=aFKAX2d^_+qi{-P`oSBTu;q1XKE2MHi>}c>?2zEhJ zr7XmpuAUFfj5bYf_mq<gz8y$i@h{u*@J#`uq}&W4W#$WPS6NHCWag}u3y^Zm;oJVb zr8h!)R?;G-i)`n)Hz;NmY^!p}WHI9r&wHqRt!<fwuYsJfO*_YggOkz<w*7CoBrrSt zzsa1L&Ob6crijS5nf>4qRA^rM<KRu^t#St!$>d3QO766paY@Mi;mM=VnXFX#&dII# z%E45%W2KaBQK>=d61RoCuN0Y5HcYXysD3cby6J{Y9%mm&&$0B5iW}d(B`W)Sz@|Am z@PD*B9CYc#)q_)P{hG~w@PlkBY~Jk7tKs^8>zs$nv~r)kN;tJUgJ+&X^A_dzhDVmq ze$;S@gQ?2Gxc$Rrft3dKqW%*WieJ#IFZg!gzD$q8g5>s<vrURh4W^2uJ>WF@!(=7O zcTP^C*IDP!zswHXSxZ+chqGUPG>NmKsppJrW&b3QL;U_{TOM9}dnPEvLnHa*W-nge zzsLRNgPgk!mwxP@W_)MYT<fIVJDtV<-3%{${q5Y;E~?c2Z+}CJ{oivFr?oz`i?!5$ z$(GJva`(@~)6!P4hCX*?#Z^2TBpv#feQB2e*?B{Fvwz6k42zAQkFZZ-DNtHgfAjka z>-{f&Kbl{|T2=dU%1QC3KBvyjvPish<4jM<Tr*u$RZGo6AE%l-8NN9^60)L}T1qxL zCMp&h1_$o@zkU7q?bDT?0<@kOH9qH9B9gHzwBy_luH^#jXBsL`oo33GBJs;mYmU;U zWxP3$MYJP~3lqF;x2>^Tzx3YKp!?S+tvD)k!qZof+hkF3{XVxhD%{VfD%KY7TNYDN zW>{smxV0ke!!aixo^Jx&PG^5EnjF%>dM?xV*|w&xnkm;Gt~_=5$;^<Inim#+a=9d| znci{inxm7Nuv>v5>rGi1jlF@|={wZ+ACO#ja=Dhp&mBz8Q#WVCMLO2G`1n+2bxnRE zX*$*Kf=}r$wasc1j<*$_`aFlrtS4jPvje_K?x*%`Go72YVvWbQRhL2}#im<UI$O#f z)|Whfw!H1n<A@hKmAJm2*N(oq->fNLn`3LomK)c$1(oE@2*0-9tSzb1^3;KSF?Y6f zZOgRyBK0LHv9n`wq4|{QmM3{FmU!qc4BPp}IFn0bdD6-kUoQAuopF0w*n>MQ+btLF zP)*CO*ikqAi)f2@NAA+pSrX5uaQN<2tPgQl*dn?;hx>AOB6D_7u+^11z2jv+e(d7Z zfB&y#<@&zBHI_@cx_{evuW*|+Q$o=1qQ)Y%RH-eQO01V%GK~F>q|G?R`K>7IVNb*y zxk}O8S2?Ga|DC(ZVyjz@HLC>UtabA2MLc<ZHh#5S8lI1r=wI8gZ+e-Uy7lBq866s* z3j6|(pIl?3XS#Id<kMGgTv4*SP#e&)&vZ(9_Qk)3h9yn;udX<&ip|k}Hg)GIr4Y9q z*1cvs@0<+1FspX2spIF&vt9RQ?RzIG)$`<SjwQS0)Q`3H`(8b0U@G1=nT0<%x9F<) zv<$B2x;nz#x3uo;)76m;D7xzZW_5A!xrRMPc1^{>F)Zh^3^l~Rn=WfL(qAsnZeJvJ zC3G&As+;O#fx=nAv4)3RpRSrQL$K`C6u%2`ZwlAVj`mG2`*h&b62_;DuPV2GT(Lpm zyy!H&oa|uU6^B{vwmLh9oqc^_a;Pfz>9Um{eRizclB4auV^7!0r?QJTuFIL;5v~5X zs5T}_D3g<mlkH8I-^o=<WiJ`SHbgZVM%=vN+3<17UK^%ke&>z`8_O*Vd7<(3Jns`B zgX6^?6I2i0$m2Y`lV`cXm7phEqPJeWI5+0jHQp~1H<=m<$}j#pul?}i%ff#a7Yk)r zy4bHYGyJvsY~scCk6Tq0m8(Mi+`g3lxb$c>=jko6hn^kD$Zpztu4-}VQUk`Om%114 z`>%Yj;y!<_{0qSsh70#jeseWl^H#a`t?in(vPIs8c75{}d3#yp?PJlmnO)yfT&w3S zs@<X#@N#{KcI}inuc<*Rr)aaPE@w$iSpH?I-OPRA?5D1NQ54tU>Io|rd09T!puuv{ zlLtu!Y#&-<5>JK%y||O!a>(mq<t~@Yo*@>Sjn0NV`l8=*=+erC=Q>Ze&gEKp!%}hQ zg_RmnA=eyF+$wrvwKMd^$4i_1lmf5u3YG}pWo_{=za#UoZrXI`g3D7bX#Si0chj<` z{7j;GK6cZcCjVZ3Xwfurg;^$#O0{NLY|~tnA0Cj$S#(=+``n`2lIA9tD#H^!XBHQy z>@;o`3QDoOIc>M|{yFb<i_T&a-lsLk+;pb%Tx~7ajn4ZI?^Qe=9wK%2OQwNkd4|tV zzrAYlZ%)M8d3-I3n!Ebs`-Z2iOH*Y}e_i%x?ap6!n0giW*NC4{oGR;?&CauZSNV?E z2`*aybv8~837Y6xa>O#5U9wPj?L24q7;g}ovv~etH=PX^ICZpM2OPRm6!YfI&fd=< z4`V`Hj!g0A4ZE$jxpSt7a8>D%Vy3@N^VHwf#{IB+)vF&hb=K@z-m47~GN$s^c9({? z#@TABJ+l1NvfHaS$Np@HN1l(J{>{v$3rya2wF}jDFR8uLwf5gd$&*h{D(n`yl)70# zDt_?~>ldn_R&VNLUu#a^m2%qQ^5zh$DGv5wx8K$6oW%G(Zu-N!Pm?M*{SL@YVsYKz zU&Y@OaLn{^?SrHptYwGnelV@i3zc~E@QIhe(%*@^aq;V#c_*m0cv~lk)vW%~ny{xf zO<4PcB1hH($0CmP46Pc;LUO+0&diT&p8WSxOX5A~eSN9LFWCb5H;v^Fyg8gZGYc9t zPOQK5c|v=*h_X(5?1$EzRd3Wd8loQ--eA!`bX}!4N9F!!dr#{n+n3632v@ona_q3u zud_Tmc;yb2^&gI&(^l`oHGP`5zeoN9TYLF!3$E%PT5WMHQ)v?GkrTGZwtxAfchx(( zp)N_@W$W=d-Pg`AvfFg&@*jwN)VNdh`$^3?8;|>QE!1Xxf9K?i`!y??S0{?z=?S~T z{raKgk7+)NX`AN%IZ|1yy<_htrK2)OW%~EtmG`{7^zxV6&H~N1;+Rf<NU1gbyNu;d ztF8Q@jd2HSn0B44FzWPCGxjvx*?PxAPIZ6b$vckkblxBS{YkUNGX7xvN%@E8HB#>u zS6}<OM_tr2e1U$UwNw4Eh1WkV6cKCYeRF{){1DfbJl$tyU+#&W@%!>T?u`E7=LI64 z%|Gb=@vu;GmJU_n+|2h`Ws$o0<ew>=D;3K&_1Sn^os|2e^>f~wC&!8&@6^fD3qNzU z!0g<?t;K%pns1+$ef+OED(y4tp1J$m?jPEJWdFhc-T!$O|4TZk5YgiHknf;ojmjJW zKQ3FN37H1VPx5Tyz03by<eSc<M@v0}mX>V3()Tm^OQFc$FkzJiwyqYd-G055+H#6* zdUBrQ{ksifcUk!ty<hQtUaMaP<Ki!>zhb#6`0bp3+qElyxy|%KCM#Z`Q*ot=?B8m^ znSGUt=YoZIPFkaoeRA)M=X{%(Kid^?tbOCiEne{SPHK#BxoWxb_P*Wyw~xMk%=f^@ zV~<R_(v<n<#6L~{(Ea0d1$(`Cy?H(Ve}(<?-aq;NaXsgp3A!SjyoXAic7NFLq36S{ z4~+#L%O?9y+L~B)s_aDB>3tJ_pH_a7{8aUmUu(?GMK<f+H0FM=Dml>iIo~ElG;lIs zMVHKT);iYjX5q&wi`YF@f6((hAbCPjA)5Q^2ktBh&wodK6{df1+a&P!y4R|cN)-+A zNA1tV^W>j?<;fZEvTA`#1bh97IJV|By|+&lZ!+6Ad(Ojc4U*T2PVX}Je0qf4>xA1o z!=4$d71)JZ3oH(#a_;t!nSSDJsEw~x;wGna=^t-;#p~og>0dNU)hqs!t;7%I9d&$< zZ)rV~J8b(<y2!&&eCz9H^ADPZA57V_@i@QP$x}PIjJj@nq?N{B|I1lFf6Kg<LU)E; ze|Ht{wCUOL^HN$K{~w;$Rp&V356Zn$ICDJq@QJW<`a8bODqJ4PP+xFw$2_kB`Hc_n zg*0D3Belo<vxNQRFM&m^g89`(2TwG6=^1~r5r4N(poitqlulvi$<J5#KRfg8+|0#x zbB&|#&SefR+Ex5QJ9hd@@yFugkHv$P56CO+f6u>{=UkJ<o8<WPX?+I;@A&Uk5K()> z@<?{U0m)Y?;raZ2;ni*BlRWlL&stNy%fKwbb4I3b#-?9iHoi+fp5XQU<s8i;=k2w% zW5pLde0;oDcK*yp@eo&s1u?>}_2T5?)#k6d`t;O}J6o>YxpQSpOweKVe(qDVO|!!y zF5R4dxv2Q^r7u<2udi~nX#BmG>H1%_ziT=TCeBuz(dsv0>8hfT%^}^PTUTj^76q*8 zIOMDvUU9<V<j1%s^|+>1kEu2ROD75UJy#B8@nq`qSlZqm)5aHETGaQpsxiFs?Nhzu zm(K+6xP4L}^vM}B|5rN<zMf2e7#q9r#l{coG%YPHBcn=Y=cGn`I<-13a;BJ<{1N-^ zv|o!)oIE(cL^j4tPnB_|i?b1PieZcWu9d5*x9|L2`C07U#&@qziqz@v{Q3Rurbyee z<nk%6@9Ed`>s~pu{MVJ2x4gIb-jd$hv|jC$vYA<wu&9{y>{Xp!9lcLY0#8NsMhT0G ztQIs4{J3$J-^*)r6&Hv)U*2-dFX`%QXD4Q7C#UAXG$#*(Ne2(UaLDa23*qs6ddZ1H zUQ9~nNT%>3+Yd{Y|K;#<y5#J1=;)R!Eg2tk;|~QYYHiJ*q4)Rgj61RwO|uR=u`g~r z=HICKU%F>Oe#0*%_4XtWvAJ3Mb?jfU>|evU?xk(x($^=J8XnO%P_ZyJ)<}y<JJ#~? z@t<SIvP~W*addKCI->Q&@%dGux{~iFJ9a3=o|m}Wbn#%ZSlgq2UzIK0!ZP$FWo@+9 zdEDOXU*4&<<M)(=|Bt&?FPi-5(XlSxn#qeT-o0^b6#bX+I(fb2?pvZ4+kY<I(X4Wa zCF6?wU*%2}wf;lC#+>dlr`;>km#MjaIB>FL<6_f&b5-2l%g$M-vWurTUCip_>d6{q zY3qdikG7|t_)xL>yU*2Q?Y?KML?@@D_076ly2<<Q-O?PsQemH&cTJbB_MSWW@$ndu zNk<<k*(u)J%JjnBY=_K-83OA&r?RuMwX+1v?U;7rhk)hN)U*X@H=0WNJa^X~jO~9D zXJu-ucSAqtXU5unH775n_lt{vui5_m<a@p9ht0p`ckHkF>3i!&L7ivQvrkVSKQlS& zF;`}F@XvcM<c+L#m#)hz4Zb|<uWkIif~b2rQ``6NDSm#>{GIMjU-Ma&%hILZ&GCzQ znf$=>?+lIFlnW`UE-rm>Pu6yv;rJv{Gs)>lXx(z#A7xI5j&ZzAE}9~j*g5ye@?>4T znx2X4k~3EQlDO5s%=q@-7i<%*FY@p73Sd2U{O7Tw$Jmb?uk7t)_Mdvpy+=8)k%M#I z;>R96Qi`|ijra_rJc>41wI4mZ_4=VRm&Eqge^}A+W5SLP7f#%64Lq2*eepDw=nLDf z`yHrtHJ*3$GRyXG(KBmn5;okf{;0F>pX6Ruk9AqOwQoHxE4_Z({@mABa{j%jqN|rr z%SGp$@0fSt$7|kShCfa3Y<(YBfA?_s`up47Z4I#Blu?@dP<!^epI2h+-bG$dpDtg( z{&V?3;iNJ~|81{pZA1j#>GFU6^v|;Go%qS(zLhu6Bp>;H`^}DK_G@=*9~`**ny+Bz zy622{c6NT5n$x>RY-#HO7mGFFs#%-2+;Mq&gmYnq>@6`nMV&XSo7kKR?-VWxdp}=J zU#+4w^vL8NTxVT7Cu+XzoEtO4&QQbF_JsK@=B7oJ=QkMW|IgtG71$gU{CDr7gU{r3 z`A?tPwsY%Yfw#vhFP80`X0$F+xBGJ5la>1e%UAB+rKg&s+WhOdQ+j}4+~I;Z$xqdH zcStRseKuW)Gf?~Q<b&={r}{9lE@`q{@<(Lf$s@Og6&=K;@F=o0`U%eUpQCX{@T!1v zlf3gjd0!`!kMC3)gv}INe)Z}yTFsrJ9DO<X;%CV;=1BhwHJcLi&g<Il|32sK&eoVd zb~($Pd(vn7=RE06{rcUmCUxCjg<IS1Z#o_GIq9jY@uNLVe^Txw-`LrdQ&76>(1vj5 z^HEa@wx#Q4J_!4twW{vd#^u|5HM#D^eeF8>sm6E5cKyGuDQ(u~2S5IIQ~Mt4@$4AS z<oW;QPrCn$d$#?5xskO<-_u#Y?4;v)_U;c}@SS1u>}MZx3Yup>D=d$Hv#hl)H>IL4 z^6|2dYZ%IRXR6-YZnh(nf6wNe;>%h}huZUQ2^*d8G=IxFGiJ~1Z))ocp61<RztrOK zYqkL6ea8dd8Yx?P{)JB6&~dToSp2aJ*2m_?Q72za?O7Hd^!kYL>Tb0Ms>VAq`D#-5 zcV^0Ur54}aa$$Whk5lUT9hsIZQrGX!R6TOquI#d$LFl!&%R=YG*&X$*cAEN0%KR<s z)l-Y}Zq1H=YIxcA_kpDK-zC?+N>~2tH2;?M)QfR{f7ng=wy)!2)~fyAbKKY!-oAhP z$unX9H^(#ldR9B+?R&niO)g=PKCNoJDSq~gx-S{m>MR!rOYWU@=~SJS_V1J5UmgEm z^g8}ll5wbXk6Pj6h%B?t&1=7gv2QwJlihswRzg9<ny-u2UYnuzOj@Sxq14lB*Sd~Q zliGY(Pi*#^Wo>G~q4~StOq#aKD|_vXyD3>4E^m98DO~bs#!a#0=Bs&Y%T&Z>XGvxA z@^as~`uI|bRrvIqOKX!CF1j|0t@-SoOY>8OK1=hQo%TzrFt2ng>sgQUvu1>5ZM$(a zD|@fAiIRlQ*RqXQg3>p27yFz|+PL*xfWBY8!OUr$Zp~*O8C<#L>RdZDB0Ja2RD!oG zxGN%eWoC}S&KpzNb|2NaCH1<u&u#irzU<zUiDsr9XT{nhO&%z0-KwU%dQ(_;Dcc(7 z4HCRt7u^jCelHZ9yvp2E;rO)<z0I?aD0OF;NK5g!u}jTW>-sz~JU3V1ty+8YEMo^A z(FF4-pRat}QkrJb($fs*9X!{ze)H8ul^N>}YbEJlJXhl$d!eIO=j)=ojca*%L(gb_ zGueDN@$|K<*|TR~esyP`kF#df=Edv6qMt9Q-?4J-X8poW&&78Hzh#(RRl0s;*O#;F zGV-@9Y*M@aA~R{{R>8H|g3=e0-0%A=e07X%^1;S?>o?uV-P$%yByG{!gOBF9XDLYK z7@J;+l;INzzj<iQ+M}84mv7o|NN*AMT^CbX#a6q_)y1!FNUaI&b#w3XXcqas?1J51 z<^`K)ofTWWbAH-cixo@nMcj@^U1ha=@78_WTxF6yMSM%At~kB(nMR^TZscbztHTlr zeQey_vx}K8ysO=$X2{>O@qq?kuxxB5ub9l%Q@3K`vrR*Izsx)MREx*k<oKyamv6n; zU}|+lOW1VsHpAIjxy-h+)Sg}2zGL=fPRGU<@|%}lYO>;&*VwY8)O!9|i!+ScCJwT3 zcd{4CMQsS-)IB17f5x<=pVq&Q2iAU7eQ+S%Hbl|PL9|}~{=xUpzCX$q|1a}jWlB=L z^j~G2HRg|kTYP_Lu^KN<U#y~a_F<l?licLo<P3*>ty={q26z9xJmFM&&Efmgrg;Cq zz&-!yiIoTM@om^ViF3YM&h3_nuj-XIGcvhv#dO--vYx#)`+(ivqRWB1ITtu*@qF91 zU>k2l^6_v}FV7U^D-O!vmd%SQh<jgnBf5R(e~rx-ciG>5`e}t|s_BOQurm>ItEP7T z?B14rY~rhp{T#)C^Rt%C@64Rr>i$#bnLGDq7t_g49ZtPi#<OPqT+giw%GBJ>A51s? zJZI`rrmaa<eW{1`^n6`*D>CAL)V0H+>Ppkr+?agJ|8~Io<r@lh&)D<k{oK1&J5qX; zes7c86RE(o#|@UH2K6&OWTq9lrs?Z;>IC(inZGq6{mu36b3G?Y%D=8IK5b&u>uQ$O zd;3#d?hB2tIXvOg(wA=>OPlp;Gso`>AJ61W<IS<T?sNHuXyU%zv8LVL6Q|1Lgj|2a zv(|S#TiKI{8Dd+u-FiDSO)Woie;M2MdwQ>5-{2}bJ1@Iz<$0Iy5h1U3?s(nX<hEUf z`}4Hg2VU>RHLsW%Z$8xa+Npcz%%>((EDZE6-`SNB`P)jyyZglfGqz=tx;GO~GUQ(R zb?e{xK1byZ*X~}sl0U_MeQZ{>^6!S-(<=Ave_IlEdgl6=;_FT4-M-6Mvqc8$t(T6R zA{~));l}!;w>dfa8Hsc5MQ%y-K3(~GV>w%_aZd8b(BqHpKD@SW(#wn1+qb^E8h3yB z^wsTi*EY7<7q0r9<MC44`q#Ic_SMIaoeI6t?pEDpz3QdkD=G7(`Ex$&7Py8Pf1W&X z?X`n7*WPTqa_Cx}ZeQ@xH!^3wZ}Hb%d@SL&OU<kZm7RZ#W|U0ltG~Ye`I7LjYZI^Y zJxeey&)Y9~rs>|r|7)%<sWWuYExh?C;qljf%L9MvMX$cm7j?cY?C^wXyOPcuD6ERv zz4U7D^KbsILfLQMmGRlPGT*HF>5QAdHu6d@&V2KC+dW(3=S#k?6X?Eu+N5s9zNu#} zuiN?e_v*dd{i@@h%#VKj+|PpT+Oq96Gv-$KF#9<yV@#LX_MJ1(X;*-TkGP)GnM2pu zzVLmuzN$0*-$aYs*0SsB1s?s1S5-L5^Ygu6#kaH8^$L@YL<vv3`J8Q{zw`a+Pn6{^ zZ*{ZN`R=i+@L2EuDq+^`3r#<jrQAIvIO*NW&l65hs;$tAVY6zEnX04ClsWf+V4`zp z-aNgf^66I&2Wq=rtY>ei)cbYk+_y;K&wo;8l^XtSdD#2?@Q;oSGwv^+b??p&p>@AL zcGuReug=flU3+OOm;URhpSsc&eFZTNYO5;FKMP+UyZ_n4)wgCG`u<|i?=7lES60tl zdGfsY6UIA#CVgR;E3d1;95P+vO`465^_s6Qv*z-rYB7l%U8ZHTE^Mj$OSiy2Erl0% zUhcm?)zsEa-1qg*h6}}Czbu*&^~m7L%_EEU#KeYll>e%TO<SgCtF3IC{K!ei??Uf; z?N{sWev7|&Ci=POYg^`)o5kH-mxW6T*CmD2&O7RM{?$)a)+EQ1bKb1!y!<Kn^ReaP zOT>EQXU~&cetCzEl<5jr)pgSS>!u$0_T6A2<9)9h#-Cd2rV3<a*JnMoHurg*Rq<=V z`_IP?&73ZKe|O?3XV=AX5x=6sSLWR^J@?_K{fR1}e>02jYj~HZ9of3PUdZU*-{aeC zr{DW_bp6xG`}y|%yCS{OaCujm`P=n6_Ll`K<8Kzr|4gadmmYcd^7d2P_S>s|NSL(l z*~04YarQ6Yus`nFE*oF_{Pgc{@;73Z@6Jv8+P$Ci-?g>*NA}<Smw2#e#$C&7ySp*> zZ%Kaq8I|jMY`y*2$Qy|(|LH`S<*#gicz6DOkDZUNeA-&I{OO66VrOUAmLIdPzQ6j_ zh3%h9+|BN7HH~>V=i-#&z|`l$`EU1W7AE#9^n5$JGcWi?sjPJT-cs*}rfa3Y<?ML= zSTsEC_qyL-Cbul9uAlX(W^?)Xwkw<2=ek?UUB9Tj_6W1B(q-30-paKt35pwDHvG>& ze^PADi;CLU-swF_n<|$-IG&^tq}=kVDV!zi*uQU?A5CVj@~+?Z^3ArC=cgZU`}xW% zvpFMi+qwYr;=^BfS<RpAd>?wO?beoE_bQXbwQn17Kh3&Z9<qB|zSK*dO`b<q_#9T- zWwcXBe3{QO1(z91cSo2n-oEB>-kF#6g}*;DENe?tu`Xc@xo>gMd-*HTliKH_C)o5( zdhl0Nf4SVQ-`;cGub(~j(*NI&*{RQ5?fs{(+h2cY*4+6yd#`SK`r(*s_@3JAhvzoP zFFBd)d;ZVAqT>%GUrtxA{Z_YS%9cNu-~YS#AaFrM(TaCR7A`w7`^)6_yI%D1eEMBp zx4wAg?91zJZhf0l_4{}A@_%xBet%Z`%xt-Dw$AK*|0;@}zIeax!8`kcU!DB>{;&M~ z#`foN>wkOSt-4$-SM#Foc;CvGY4dO0Joeyy-pzk!U*2rrcY5N!t+pSR<sNOn-jjbN zz1n_H>AJTQUp!*YerLD!;=VO+dKdT0?}?uM`JK4%RnC0d&z)(Ji?#my7OmL*`M2xV z)$5`@z4MX$e&+i8e;c08yWh(0Tzu_zxYYYw(UWbz^=$q2_=xJ~zW$Xv9j|MJKQQ~Y zIa@kdvgvH{&3C4+{@l&xye$?YxBck)eSfD<(Gn6n^EhTn`%5P_1KVHAv}{ACzll1& z`25<(NvlQ8Ip<jalALfbQK(p2HZ8mP=tZY;&ATjjBVyC4j_vS?6?+#X`Et#Sm5Y!5 zufP2~KG)>6{HnJ<K0WBUJ!xIcG_kUZ?-LiVzh~?p{N;-E{PuH_Z+~C@-M`=dwPw5D zm*0*b17FT{H2xpIF-?yD>92nuXBwuQHgoxA`no6mn9#|6DV;fyPMfq9g>P=+Jt>ts z({YBPW{UX9St3PBDVmdNPl|bY{p9ug^tNQ*^P2w_`#+yQ^Lk$Oyytb(UjN#&{;6L| z@Xo-F%`AL-nRfd8zJAX2-Qw8AjgO`&-QGFR^FzFEd|YXg`0Wq#yB^G#d+D^A$tTIJ zN9)4gFL+@SdnIxW)7hx~wRQ(r`ey_jUSYAP*vW%gF+!m3(Gtb47M(Yy7k~WNaQmug zvBKZt1pRF}v)HA7tmNM26qorVD`K78{FR)S?4Eh(YrLsox4!2qwrK8FxoO_@JrkKG zOPbYRdM<4-)p`COt`5EnGuGD}UjFfe;T?<39hcoDU*4T(rXxPfVMAj`!5jUX5#HLY z_Rp^x-iuMstvcfSH8$f@r@xB$g1bdF5)ykjRarec;;W}TpMGf5Q4YSS7uWuMFKFoN zc~l-?+_=5`2(#i2*;KAhcBiCf$xJST^eH|p8-<xR@J<x;TCDQ<V>HX|XtV!2DwAH+ zyq8tTcwGEWc7MjUUHokY3}4Ds0=X^NRy+><c<NzSeY{Zl@{31Aw{OXb=Ii}_Vxigs z#uaZTI?w#?%D4TUbLsOn^}$@7=V$RrUrq5`q-JXpTzCHW*W!5Q*aFT&mk%GBDmCr@ zo^$r=xGo-^Ao@5fI+d$(*>T>>{*s@9rA%uhQl_1<JH*JRU-4qI%w0=$_Be^P-HTOn zJFm*b8YM|tO{`C@(fW4h^n+t3kE9xX)K)RR?)sxrzvkx-!*`RLZtUNd|HX;7JMNdM zxK~M#sN=U~!h3Euq+Pof^pQbtR&-&Bymr=J*_E}Nn)+SKvS#j8*k9QyWcH`y(z9DZ z@uHut_r6$=rg`!5&9CpXm{x@RsqVR8!|ia}S)SdS+rU^=+4s7(+nx5s{4!@xJ$MxS zI{eUWUY})`^;PESPq4lB`QmoF{-fu^Dh#!KBPN}heRW&tyvtL$H@kcdd6U?lb@Rxt z7>A=b)>_XC3avUTSHsh;7bt7m^U-4I!c!5!VPR`tUzxOWljNJz!gCI?Sop0rn3I-! z^1;)WA#(-iR_<7JQ}5d4elEK@50}aJe_dH~^3hv!&6m0Ece0&XY)`%r*ZX*7d7>0+ z@B8U<CiknvY|<=OK9G0)xomV&!GEb%tN35JHx{V2t-rd_Z0=*NW?L7zxD>f?({sjw zfp^lv-zEFpTHJF%-$Uoz$CLVp)vGu1-PytQ`H`smUB&Xl(MLG0JQhEEtD@?D;k*pr z*b7y=*~$v~mvCiR-Zpw^HoLpFPvqW`%xxRqTu)X0QZIHsz-5ljgG*ee|9QDE$_ld1 z|K_sg+wns}hvT*7r`$|y`Wv@;p^}l}2l<I9iVrUIB^SM&yS@B@nbqqj+d@m!x{S=Z z9F(>*M{BAyOmY-7RMgxnd_$?c-NEC<fA@snzwdkgd-A^iWIxN1)&D$M?=VQO-MjUj ztZ}T{PSgDxdKZ5=q1-*Of6K#Dmb1c~c_h1k_Bl<`XLj-XC4ap)Dz75`R_+Or+WkFy zw4&x`X}maX$@OP}@RyIjA4=(q<t??6-zYM9VJm-!BJ0$z!7&bsGYnTr1SdAgmzMt6 zcFakVd&eueleuvd+w>#4ALciB-RSSPi@yCtoa0q@w#1=bw)(02{!fY3oxWe!Af-s? z=Ys<cQx9=JZ{2m@#QN}2F80g{Dd|PC#BK<kNtB;|f^~7EQqR68*O|F0-bWqosM`PU z<)fBrmTfcU9k^ZctE5y}_szHY>y`G|*gdOQpm-*J*NI)fx^7i+=>Ewy<c*%zbfCPB zMR0z{e?Jwi4WgazR*9a>`&BkaW>33%nws2&rMKFJ<elc;UfyJS&8K@;1!MEt%qk7T zX?t8nF3i6#YWVV|)TBc$DibbE(g^g7WS6w&bmz42a`F<>tGp2?m8YEenqm63$r~rz z=(KK`yk+XY{s$44&(=B3-y%Kvc+C%k{MOfV&GbDk&1XNpUnKiGxA^u%hb>}@B87Wr zWt@+Gmb3ROBRk(=#+kWNH{L8f=-Dvi_`8LTzvA^i$a4Ho<@9f;62B(E@MUs&zOiD` zlv{CAlTU0iaC^s9@471}e{FJO>&hz!UVWL!_Ep5{?)9f1AD`EgYzfers`_GGU4q2= zt0F09irc^MZ24w$^6T9fVhNWscC&Okh`y4pSBpH}FnjUoHxXOjs(I}*JQZkOs?Q!S zD>}n6cvs1%gA1mZY5tizdva`VNG$LFs>2tqJa!d|t9857_3g~3FvSn<-M_y+nKWtV z_a_zmD~!XtT3+rrA-TACS?-;XM~{<U)n?yV{%O)p<C#k)x?7%I^Ha0$-l7dpCoOpO z_twlWZ(P1=cd~!XHmsN>czlVq=IaYblH>GOZ_JXMGP!Tb1J9NG&9a3N?B91zO<R1L z?`E7$;j|C0Sf+|z-hJ~6i=%AwDzB}@2bMioJb!%R;<|p{llh7F;yUD7IA2YeHO>8F zE$iY!HHO?YMvJu`u^sVKemgTNu&;6aIp_6Bi?0k`l^(17IoTuE&9iZw5jpFv>zCt) zDhsxz?3wti@&1BsQtvgH)fXr$CH8Qxy%~FXQ8Lr@?#!(v@=s=7(y6HtGqUSyHhV9h zdLyUPJ9Se-UP@-#n*G-&X4Og>y({v~tk+OoVfvwHY1+KkS1#|Fb~x)>MZ;P#hDa;H zFRmv!osCxi?qxH~_`Bri!E%HA^&#eL8&VDQIF8+2{`J)w;Zq53*184+9S%?1_(#j~ zwN(4Wp!Ab#68rBwPxsC(n#nGi&d9L&JpX|Sx9a@)Gal_O>oT)ntf2Bpeqxje!<&rN zAMSHrstaKB^il1Qm@w(Cr^=G;?H&o)Kh_6xGyhcPSBSQ05U6zcvh&Z<^BGoUNA}ij zx8a$)F6HZ|TH|>>qGp2AX9oYO3{5dw6R`Hx0=2Aj3lHo0OZ-|nEk$nW1kvp$_OTc% zh3-=R{`*!uuaC{)`h6PCub=gNe!1?U$>Jcdjms7_?q1YdC*oRr@>y<rglD>pzVBil ze!~v`r;}foPgxln_0`^OLd8?-^)|(^mPwu#8&(DW4Li2)z}dJ{&&}@jiQQW}<wNG1 zv-|$)>(&-;X<7d5`oqL~rJbL;<Bz%cUo3n%izD^t!uv)tE3a7HwYOhiWm|G!{}uZ= zxeg0ej%8VWa*=p#<anpXCXO#oBk@|y$`8C(W8IYEgQ7~D)i!9`M!adBcd}GYvr#S5 z{I|m5SF^W#=lj%Z8@*PIvp;ro+$)nc{hoWGE+2TTnQ&IAWPfachZ}?XYTdhqJD<2I zTF1YOJ#Hzzu2|VA>g6@T#Y|y$ZLGN3`n7#Te|k=f`w`i(|B3YO1lQ~Z4`aV^ngj(i z9E{kXm!P#e^|j?nV^!}3b01z_mAEo!_Zqu<H(I_`ch7qyzwWw6W?apYykAx(Wq#q@ zC(iCSvq_&Axy3N#jm51F-jDO&&%HkLlF+$U&b#M$3%KU>Z2G!UPn7?)@!rhH_qr-y z>h5jz)bP{sd-<XB*hKBDiT#>==HH*J=&Dv*yR-JwLo?y#$hn?gp%#jQ-&R>P{q$|S zmsM2Q%l6M^-Rs<Zmos^Grv6VJp3x6lB+u|iwTJJW+yRcppyHsW9)~!E=m}aLKkbXx z+N)$$8@9K}H!3_1l{c95s`tz@JJ)>=x~H)Cy-mnly{L+5efM?F>%Zn_Ik@ast<t?1 zS?-y_>k+Xy;PwXVz3gRe4R#B*vzKYr>wo>J|NJ|PlhJm)dD2o%tWH9W6JGD;=X7-9 z5oSF4{<Px(c9nl!YrnlK6Ynf9yLOfBZFYHLwsx2Hf-Tid9115pA3bA`y`NW^FM4t9 z_Ss_APb==fWt;!}{oD2Lc|BRokFS66dW+1w=IZP>r@LOf`(E<Mcd^$p`Hj0LE}A5B z;i<Rm{TB(n0>MA7wA4M6`nA@taMmW@b^mVMeKU3Q`nRttmlkaZ<4gR=cv0$?`tOzb zG4GPDCdON?63V?1`R8h?Polh&MQ+eM-Q~-h4qFG7l^oj_>U-~ae?F^Nf%QFOld`Wj z6+7BaEY{f7zWv>#pyg++>&x6!9=eLS#+=#mW{1YPU2_kq_P4JyJF+&TW8cjQuh&eC zDiPM0qaifsy-d_XO)tSik4iG1tekdIxq9cU0G-9&XFog_lYAPrX^OvwyzS0#i$JRn zvosGm-1T95s(3;wWRup9m%TRx-)-Iz^w}fb{QDiR^J=O=n{FovDzf${`COm4YN5~f z!yYjLyRCy8s@^T-R26K0qo(bA`-2*vb!N_w538s8pJwM+*`&PxX@a%*nm1F9>wLSr zXO+V<-)~K8j&yf#Ja=qaQsxIv=`DE?KQ((V9Fk`LX!*vyDYeLc#q<S%+54K#F1&DY zi8tr7S1g?7)0aHeSXEu@W&85fsZ(D*KmNOB=8>uYpGw4kXz%g=syEf@#>MhDyEVm| z+k<N&OU$ZI|CqB^t=lf&W&dKXdA8c&TNuwc_s2`ieJk3!TkpTpU6=PRwHq|`54Ou4 zeY|~zPvoK>PyK%Du6A>BnYFULbKbJ5X0Pm9s@$g%e5bG9H?w!^x^>T^c=Zo``~C8N z+YyIuMxHGUOl-`Gp8w5u)Xf$8_hRY;XSw{&^Y7h!9GjNhyWOD}ceGznbQ0SQ>(eYB z{#pohsd(M)jHu#YwLAGKzvZUOE;81uZ?EV2#qh0~Z=u^PhGP{IAH=^k|M}ET@X*49 zfA(MB$V-1dQlDfj!pv6r!JvN5?58^Q2LDz@EDwDkwOv)W_0_41dp1lyqw{fx+`oT~ z?w2Mzz6;~M_$0YkPNl|+$^YKTGVeplCys5lSiB}|i|2;l61zQ4G)=P=o@D535xMuK zV)9$Tj^9h|thX$@qAV|U<Zs{Cd9(L;o{!jV7JfEv-}}r3?~A0;^lgsD@Lx~3q;c`x zjTra%y1$JZ?>zPL?)>@6x}o`1>e|Bf%e5st6qDzCf7aZ4W%m1>#wnItFZi|RDKG2u zs$MJnX`Rdxev3y+zvrx3zgR;0yRQFs-|MbFlP2b#ag3|gYOivYV>Iz?T0JrA_!Z5v z@0TjCH9puhXVyv1&FklA&8c*h<vw(4_FaqnpILZZIwa<O_+R0k;=$9>`9t{cw#>NS z*Sj|F&)f5Mqo;O5>Uz(hzZnWmo!#%xO;F0*K0C$eh(RDzrG&%WU(K$|{C1~@Z8n-a zFSICP$GjyK1^c(2ojm_kM)bBtDwS#tR<roaFD9)>iS+y;9kwh;rzZE-Pu3<ASDizN z&-$V!s1!@xkXrt_pKnU}!tSY4cKon>UGm(w(x>&o>+-Mfs?xo-1W&zsqH^gLNy*H| zXM*}F(=S^+W4u=WG3jvg-M=-4Y)|x`+)DkN9DL{M?(><pXPI>ETtv#h^0>uvOnuU$ z{nguS*Bh~oPb$rJKNieM&^fgu=!{|ISMU45X(yllQ@^gKW&Qo=qUyq5();pamOf*> zv3$98{Jojkf2%%}-Tmrh6{+06>g0_X>keIB8`9Xs@Z;EJi+wL9K0DZZmhtO0YmxJp zrEjs{y4(BNK=a{=YtG*LI14@tzPy(m;S*3aN1anon&p@M%6{qFxHc@A!!|5|w=9|& zfVM0e8W}_@n3#c?CZHXKmIfF*?JQvWZ18OmGd3}^L)jo!JIOb{*?_0*{huzG-OjF) zm?BkMuK0Hzw%d|t-=Mb4SxS-X%Ypsz8*b;lPMqja_2l}u*A^d_-I=ycGUCrG>)M9K ztG%Xjzuvtu-Jm>2O1iUUrW?Qbq5XN<;zt#K8hm5kvUKfkjq{Oz#G3v-a5syd`Hq7> z@XsUOAIIk1c#~YrQDb5KomKZn<Hr>mGa9W#s#e`8zRJ{Xm>V}sAiu3puBcAr{bFXd ziL5g(&TYIGDpix}FYwf6PSexh1zj9#c6KkHQo81A`qRL@99id7_0=X-FG=Z~vc$!D zk?F-crGu(LY8y^3owp-w|13cnZmxr#y82mN>g8!I5fgO|iY2*EQ99|qh)46bz}o-$ z>kF6`8U^M5-xB`)?bT^1CJ!GAc@`>Vtx&l%=~*DR(x$a1zRk+>UHI13>h3I_S@+$R z@AWzVd|OHFH@i2|_a*eIq6(8Ae&dOKzHH6Q-)w)xjws`bUQ42)$<V^Y!o)-$va8Qf z!Nkze&;o5o+M62onvkQn{#ifIsk$BFWOgzyLg*Bm6L*VJ<Rt|cFAp*Eg-b6x@iH!v z<X#XcP#yjz&hf5}#=)+*H(h(p_f+VHZ;1U+6?)?PnM&gc0aJeOzW?{<{`>X!pIDwZ zet%|<ar(J4b0SYoQdndW;}bG5JjmkL!X3}kC+$D%JLN-SonPF`;BXi7iO(vgYW(~9 zXO404^*sIgzO!V1HlB8W{#4xOUtwSGmxb4be$ICHpA&E?;%_12%bVXPeA}8{(y6Wf zpu6|ulBcsf_~Psqsw5vM_2;#4P}%3QTJ-8?Epb2J*@nF*_D((V{@1Ie-Z|Fd`(}G? zS;_R${k7P+IoqEl*K%C^V(60CH*+d4x8}?@8S<G%=hxWp&dW`@YP4vzu;-EM=U1&= zWBH}Rf#K10<@ygg7Kh$-yG9nWU%H!qHhPoI`u95ZO1%3{h8AawpRfOaeEU76jph1* zC2@b7UY)uw7qNflk-y?XyfbXp7yUf+Wy6+(EB?#8y8Y~`-pW58z8&FQ^7Led=x6Qc zSHIn;ImsZzzFRo;1-H0~PUhwdR$taH*V$iC`1a6?nRj;yosDgJwqMQi+P}Z=I4ZTj z{FW3{<_o;;FzMTg>#O4?{dsoy;qSViKMR5{{Bzji>9|Bt`qj_Nf<n8S&HsP;e13NG zH|dF15g`p<O5XZzpEPsY<i1&HrxtuYA=y)A`s9^b`wf>mkr(B2?>n^kq+N?&S}Mgl zN$lbB%vqk-eX3WM-`0Dz@6rp#oS4qDZhnj6eeSe3%-(7u-Dx&+`TGyt)62aKmwiay zE4V(v>TcKbFZ#1q&e=BW(~3_^Dt~8YAK&sX_4${TKKuK({c625MflO*sx|x4toBCC zef9l`)vqm+uYav)fBVg@a^C%!A%FF^UhRGSBQ$X9$=W*>cib2Ihq?csqhz)9X74-O zx8G*1jCL@Z`*Ho3jls9s4S)Z0HJ<q*?62#r@=JT7&b;pXINNHu|IPl+lGQJ5R@p1w z`;`3k=)e1Yt$$7kKe9Vtx@E8W`q%IK%k-@)=e>+u^?Pq!dDiR9zT~WhR(}r^J~n9N z@{d~HBV@gGXJek_+i!fqUH?6#ikkkbO0Ah+|ETzCdT`wGFVQAnOKw};+V5C0H_r8` z`f2V6ho}GK8Jj)_Zd(*wz5l|N%bCv6E-U|C56*fJJtgZFQ?2uEImeaDgYVbBd^z=X zh&o5^lX*AVdQz<l&WK-_9Q5_>l**dFkKb>-TR!*Fqui+9)wK>YU;90~p8sCt`I6K> z*)MkWy`6hu`kKl1n}et2_p845u3lIiW82#0A9noxzjJkO>%3lyd@lAfG%fo!cT4V+ zkKN0rG$@^U|GjSi9-Zd8xS!Qer@S-|G~a(sc>cnDJykEa2W%Jqvv<Xtkd0f`PFenU z>Z`3E+4?U=Wp1gMv@831K>l0pRpM9w^ttSc^I2YXIc3V<I}ZB-`Ad)VKd76c{B2_F zwTss#h5ny*X{+g#;Ar=-T#l!6-tGOnUFw->r)_<Se$6xE`9FJncRRAoH(KAsSK{;7 zI4uA0{kd`%|Gb#>_;1($@ZZ-P$~g*F)%?A_t-eglzW*ANwqM8NCEN|7`@`Q|d3#~b zVynq|c6Y1(XBx+P8gCIlx$gaPtpzupEXw<3{ovphx9>q}JEUfGoj;u1@VoKo0iOeG zSD1<$vl1pX#>`royI|d~ohG6A3yf;Dm%iM*BIv&3=dVtuF32xY`WrZ_#rTLz0&@U& z2;<>~nGUK3vKrG;{a(bMzx*zK|KzXy&o>!9QlFz}6SCy4`{FJ98lk(ni=PP3S`_QX zyv6_Ff0pM{_RCr??{r_uRPf)rbn9#lZ<$5^ZmCEu6b+Kk)j68Mx+2);?-rd`%jUL5 zJQnzEa{90OGp1)52kVvAov-;;f6>SPUv~YsLZi!kfs4Me=3e=`GDd$<?=9N{svgf3 zZClN{c4sUO%+vqlG5eX~dcogm%2Tu7OYMr;-FWWOtQ8E^&7S>@_uM&`{Smfb{PRq@ z-RGI-!J!Rd{>z{Jrzi7+_@Bt2+H)pf-q)NnIc4(ce)p;KvyY{p{dRulzVkECv_N&& z&*=>Qr(HfD(@d~}H~ogWimr^#4Iv7=9&A-iv5edT%3t?ib(8I7S;j1U>!P>@+oy($ z4Z*J_U(eh9{C?(bbf?vP`@i<(TaPFC2SlqUHeI@}Hu(mxJD=sr^FQw0F?i*+cZELh zVkfKav<o>=j<a9d-Ey;b{lDbPl6{_kCmT&}Q|<LQwUPDanQiN~wQdvLmUjEtmFabc zTP5%3bxWAN^5lEvzIa8)vS8J-rb!k3$6ib~G05ad>ameZ?#$hq%bX;T)UnO^#qB5O zwqFQaYr9tbg|g=7*I#Ap`M%r;->RQ}e^>46j&E!Ky43yFsz3eS<A5h?h+pvwn_UmK z?3-LLxp1#{-!!|h{l`k$-dz%ZomacR&f&k?|FHjl|Kt8U{@+~}V83L(t6J9*jjrP> zmId;AE$5MH4EwAhUtTLVb>Y*OA<mmuG){XF{z|(=O{pbPr6c8Hu#d>oq**J(xm^}V zXoYomA36F+XrpJ0zMRPJBa<IVeq2*=a>;C;r1dAyKgs7ZV4c<Eb8wkJ@CwZ{B6(c` zd>6xe#3C1U{5jh1w!hxy-|yau*KY0Sja+=+Y+dG^()P^FZuadSy-b(X<=gwp9?iJ0 z(tT;NtEJP6W1Pt<`=|ce?*7tb-fQ{HU!HT-Yc_AHnYCO#<jT*mJoVctG5>Fe=~<q> zzBcyKhKh@aSU*3%dVa2P^|dp*Zp~UHd3m|-+@QE;WmBj5Xw9=o{IkQj`<PgtWbB0b z(`Or>nrZu~NAPev?^!7$3**K4^S{i?TzU8H-8CN#CqC=gFyX<10}S={lh<*2o!>4V za>FK5R4#Z{?U@;NM!D--7H?`^d?>kj^@3u_{<ViR(q6}0>YP-1d}>LN=ktq`4&_KY zD*sw?`_o&q^QSAzqE~C^mpSL3*gXBF4LgtRxeLoolm**dytuM%e0rSz^rp?CL(|@C zMp&)3+^@v{G0Lf_`0dWE2Wu~_RJC9+VmWpB^1cnOUt~0S7JfY=e{E4<!i=12i<dtO zzgD3pw)^vE9Zk*Dw*I2t2)X|;{tbes&7!}})Z4ao$@{E*ORoBaiuPTQs`h;vvfX{X z%hEL4{W~l7s$Y8eGWGoDFHs*OZSr<ro1Az4^mmIl9APFeGnfxOo}RVs_AGuut9<(n z`!_G&bocT6EIXH=Q_(h7J}1IwT`>P5@O}CurQbz`t0%9T@WDiMw`J~Pt?ub_B>Rl| z!xW3lR?dl-ekL=>(tUOKjo>GXPp!}RA8Vz3?{Y}$>&bl=&Fg|ccGt{y_g}qY)jZXm zo3`DYH~skIuvgzKJ}b<b`u6**`<L{YpK5Ct2ycFBAhO$5@>}aXiE2LahQn&}555uF z9=LSxEOoW(&Z1Y}Zncs8S-B~G+n;A$Ht!bnr0SQwU(%Rc9nE%A=Qi6V1+B?{KOA}b zXyKBl=DV|B*<9oD=6#kv_iV1`M~l-2HK}Fgxif3L$~G^*9%nK=X-meHLwjYzqeQ2b z%T18VD9#q!>tm;Dk;A&<MzNd1;hy8EDo=&aN+uR_bFWOwSh}|*WbPw{h0CAyO^n>N zW|sA_NkP*NeUpyewB`Fr{j0(^6sJk{Ev|i3=6BOnPuKd&>1pw^uP<z#+w^N|`3Bot zCx5RzxiKSO!j$RhW0}R9zJ#oa`C-yx81qT<*lin=i_f-QzjgY}4Ciy5d6oG^YkHqY zha~B1>6J_S@2;ITrOd0aPHef&l%|}i7m5toxn;z@M)ZEkP_8wxe756_)70GQf3xz| zWh&Z+`lWhz8??l~JDNI=v(ISv@>7Za6aT)Md{4+@q2^N2oe`^9Z@hcMI<;)iBd%H6 z(YI%<niW0g+_To7qMO?iV@+;zXU}@8`c6=6@#o2RR_kh~+zt#;>GCQT@LD`aZ1;{0 zJC17V>1dX}Hxa(6r&C&Oy6|b(lPOzE+~-v<=hbI8yxMbp$*C4!wUi~E9xPH%b*<;R z_`0n-Ss?N9RhVO&e!x$b(Ct}ojEkK!-JJdA2&{_so%1+ksqY8YP3t?ozvt-7cF1f# zQ#s><lA`kDwXIJWtegMNX*{QpzCvtSqQ}zH+~*H#NULN-uiy}#CU#^_%8qE)VDAZ+ zH(l;9S-Cew*vl*aa-e*bUUw-+%eNoLVvoN&5c=+(m{&)BOrVmxR9fO6oimDi{6FQI z7X4eRHT!BzpjtV9*Ws9>>pyV(_V|?XZQ_fK^()kG#La%px$(J2{kAXZoA1Z}VmA2f zI_JRQX|wZ+TV<sU!+K`xG+m#i=X@*b_ARfwn)=avQ<f&^`m&z7J5PZ<F0XE7a$w#T z7uGwAZGEp!-6a2{==3hem91A(Bc^L9bcs|o2`H|xW%3e{D1B1pyfo{~R<GTP5072D z81hWB_=MZt&8K_5W_`OL@!O!kUh4Q4@5#KWQ%v1&vP;b7zgAW7s>;*xh4j=NH<KNO zdZ&I=U~O6S{AyWBX!wnaz9|X1pHC~@I5aQn&Cg|9qL>d(`{pxg`_koYEv(f|zmyc} zmh!#S{w}lsO2a0jcY7vA-H&6)oo%c5A~33bVb1!7i;iIn-*DGmU%YzLi^)blh1$NG z^p9WDw9a+ma@eM>vvq?|zWF+NrhZ%RP`)X%6FjPW?!MujP%hV1czoK0TV>n-zL~<; zw%2*z-zR^RPy1CW=w{p9dpPsai^*~od(6)in47b=&E3P)AD(a{&}>dr*47&BhNmsY z&t~h!@6&pl9KGcuUvulhv&nBOnln}kS-f}=VW+ummQf^E?7WOOsmpa#tVAZQ&s471 zT)D%m^P7nMnY8m~&Yg^OpUf&`!L#h!Q)8Aq*LPcIXcz0ut2*No>S8BYbH?Cy`^~3E zSJ*@?V&Z@KV$*>y$Jb2mUbgbqvvr43+z&K$J!?v<bXmJDM}FJ4X*Qo_=Q<_Da`?!x zOxpf9b5_P`jm@DCGPJtxYHEtDaoez#?|De|(i%~pC%<P#<jI6;&3-DPJ}2aq&OC-a zGhS(Bztya0u6V+CWU>D5jI4OGl+3(s=G8r=(G7<<=C`GWYjE!8mi=}rs<LI>Wc3$O zi}M(FW%u;;q@CQJtb6@XZjUM(Uv&J`Jt5|&nSX8JVs}&8WV!05*%ry@4<>tTeKN03 z*8Z?+QohRUk1MowJrV`DQdjXb?nnq&rE|jD;al3g#i>yauMGP??mlp^mAQAti<>Ij z(-&zatx?w$v$Tntu9I?Vw)o^zceCbSN-a}tyWSa@I&o{R+}bO5|5fz-YTdNT)z)Ag zTmMJC%=mcs`)03fO|CW>+AfvXXRi(E{5IzsPwK?b>TPrF7wNpMEy{e~c%O0q?Q{9f z_nG!{)-nIF`eFJ(_`&gm{f+Xf;xo7KX9xsvy>JiZEnxqk_Q1VZ&@+JJ6?fOgd5dfo zuthM%aQ;~M=JAQ$%z~^pw{UM`Kia*qV!?Cm!g)f^wJt6>V(GOeFlnpM>M0Q`k8r7; z3rpH5bb3m}DwoAV-cvFHk|qjqPmNe`q(=3bX5jiGF{;lr45K?Ez0QOz^6QLJ&6=_z zY>`)|m#Ws384Hh;s4mkq4DHnPnxY-JtR=d0^OPBDTD&`hRK2FmSmLr#NO<au1xG4W zk7*Vz6LR(H30)M>Y3S7xw#cEgM)lK_6QN4(oq=8!Q%{5?EfGrBFm&pC=*1J9v_dG- zizhH?gV0Pbo}i=!Ld;WMtaq_jHJb8bwTry!rKtrP7o$7lyuO4iY8T4%TB3C^mUFkz z-6<Y{hnBU3f-ZcU;t_IakxP?M?9`6%McqP$UPrV97rSf`3iNW(N(@tS>MT$_G=(En z$)z(vwP^}Rh>`<mz3QJS2AT`C7iua_Sx}~UYl_99BZ;bYp^wB>>%tz*_xiKsi2alw zft}7?G9i!Nd;M8(<hxhR@*~^5Y8D@1RQ;y?ajQ^$@FQ*2eIbvyRqetbt@o-~cEnEg z-=ZVSz21aA5>~Yfd!(#t7xIW%^<MZRTh)7^k7QNvg+0<$y%+L`S2ZsDk*R82=p#|p zZyFyr3F&KoTqLBg@o|sPdCiY&gwAVx+#<Al>W|Gr{+b_`2<@Iy;naD2YK2dy`_u}T z&i1J{R=TVfvYt}m(aApb#=0YBs(ZY)Xgmyj#Hji%{E?mNHm!}Woz+u+OcwgCQMg^G zT(fYwP`O6oZlUd(g{y^TPu=0#IeY33&ra#7I~+S-Pu=0ynLTxfTj%PjJG?rzr|xj- zJUw-XPp7X}%&H@9s%9F6okHT;7uOtd^@>?>q)PRg=EgA2(l>&yZYW>b=)NMkKj66B z!aiFk+3FUnZyW?9#IzTlvv-<X-(vNjqx7HPt3S$De!8#t+#m2<o|+N}=iCx}wMF?# zru&M^eF4j57y4N{%`I!OddpFIOK|7yB^g)sKB)C?d35HDZy)R2<135zo;>W}JIAU$ zv)9~GWXr7J)ic73)+Sipo^8Ul<<9IW+)>B2Oj$Yc^R$9hjhTkl;+2z&9JptS8JvBt z^m)dsna`?(KRXuBNHad0H0xx@bKf(}SBqA)t(>*8YvrVsO_^+$OV*k91_#evW-!%w zs^QL==aOcfd6J}+s+BnFNXQwJiJ457E0z`dq#KDE_I{1xa%}ZU-ZO3Ef{Q+^ao&O& z_p>d9ryQShddlI-#XIIr)|~yiH^r(slV!ThIg_5%{Hdpsqz;+P(45@Nn<RB2kj>z0 z`m5syjb{8R+H2?Y(uZ%^J)gZZs*JuqxRB|yQf9OD<hd)Q+x-$Z720YC8wCpmD@|_I zJUH7x?#find$SD~ue56R&E4o@_@*bVE2-;=jd3uG_2HR^W;j{uw`k7L?D)(ylWE4E zy|L;|fA++7JF2P8oh!ARMOaeh){H(0*CUC3e@}hkzI=YpcYnXXN51eclb^{~`Pkc$ zeeXxr1^bI%u`hc+bKm1V`IcXKFEcLtJLkLU<@+~&ie8@X6K_y^&h_7^mFF$C_6OG| z{+g1h|Gf6l7ej0Nq+b(WGB5kS^F;NWs_8Ff^QUii$gke*!?yS67d7kq2~~4nnl209 zc|zN#`o>SA%iccvMtcvq&P%WAn|t2K_V5>z%X!P}i%%}M_^NVQZ<)Hq`@&_%Z~WA_ ztn9;Y{5B=)=_G55uL75weQwX(R{407V_g0nkpS+=?JpUZ{hs+Q`PQi|tuN#9Wxi#9 zRPQU|zkGL2x%lO|KIH~?&y`4DUh6Y^X5PaD^WrJ9XXHKEBRykX`mVm0QR@nLm#<6P z)%DWr-0r5uG3QDopXVm+nv$t}nQfW(jweUwWToxuc<Hq4tIz8_8>cSVdhdqT1y-Nu z)yc0No*T}6-CNo?YtP0TJx49?-8i_w)Mxe1Us~(7Ps(gH-^NyA79M|YOHZa|u<~W0 zWo&$VXROvwih9wzmQD9T!sne&Y?f6m+v!t0BdvIEq>u5=^wOBU(^j^5hZ%<&h8l$$ zoK2W@&fK=Q+H7hj*ZmU9cD=`KcYM+d%hijW_4<NNg&Z>JTzNzKF^lh)V<*JaDw3ak zk$c~3DQ|L4`Z9Zonz&|?)a%}ZI~_!dvUo0Ml!;X&Uu*cZ*YLGt<-Hlj4m<D7Pz&fY zU&Ub3b@JqtvnH3MTfgtNXbx81Gck3+L!ZNYCKhG!q@McZ*2l*C(QTJw^WKS17x<i$ zK4Nk~dM2OL0oC8t%1?X0es(*xb>_h<(^r3gD0XS4jLaJIV12%8lUK3_O9iho59$jl zSF=9;=9poy#f;v?5i=+4jDw`&#+9qD+wh9KH}z*P{WvSV;n9qwnMpGi&0Ms@NhRE1 zvvHH=9L*lhDc)@bClkup3|Wm>4Sp7T+UsQ|EkC!!kW;N_n`=m<YM)C;G{5_mi2Bxl ztUn}wsMpvZ{LcTt{eeJ%z`y;>_6qN-m+WWW$GVS^@4$ZfA5xX|&cC!Dct7BN@cF~c zYx~>IZ>nQ^!~Bn_hU<RZ2lWHT54d~ObNpkdkgwpcFwa@{b?%0L*R~(bZ@n6QpT~Ri zKE^$Kf1_p`{-yPSYXkdF{lnjbZrHr;zM$`5&;K{(hRo~DiJRA+Z#lckPS))5F6q+$ zJr(|p{!Hh##qO|UwBfT6+jZhs#*3ua$_sg~wL4FbC}&!GfbWMqlbp-FvM0IC=ef5q z$USJBuzBtG_B9*siElc!%QR(csrLz~*Lx4lZ>VnA-MG8K+WA++dxrabciODBH<`De z*?Nzu*7%F>f!+(|3fI1Nl*%T>a^E*SaP>gwfvE>X4?JB_F8L^zOD=z}Nkvm>@&}*S zZ4a#1PG`BF8@qaWl>UXyYo2%OysliQc712`teEFJ!ggQFiG0fysp}LL9VWguZfDi$ zSNvhti~lr-?+n`!mKXWZ>h{(%TWd}mT|a!wYSrayR_;5d<z<%4luDMGZt{v<`sg&b ziPtrLnR4|?o$cM`W?Ryky>WHo=_GO8c{_GwZcN{pxg-7Ky`xgPVh7je?%t-mO+~z6 z?rO32ncQMK#de70MLw7nZ+_mCU3Sh~)61sWr+va>!+KYjdH1fiT74>XX6VCN6HU*W z)}A)Geq~M3^(nef*KN|-{#s|s{5heoigGner>2PRR?F2a^F1N;UW)(!jx|cxXGV9$ zByT>pgKK+FVedJuf~Sw4X<nR@;eF-oCg#V&7lk)<%&8Mwp1S_2b$6$Z+-bdTInjv; zz89)oOGI}H@9JWWJ^!*QGu&3`-_(k;lJ~XuDl9s!9c%aUQ?7XMmd)Pl_pyqk_iaA< za^t6akB&_hlbAF2_#OMpJHoT)*sfJj3UfIUmAv&&e)3VPORc^fLTMA^I*e|+uG#8P z?{lJF;)T0Y&Y~dqz-$Fytxqg|a~=tbR|R=Lxf&Vs?&JOo&g(vDz7tb4n<n{R?Vzyo z|G>_Pak~?lRiBDfPV%}FSNr+dk~y1{{3l=WTfXr25;YOcVxRnsoPr&5(*vH|JMmuW z>kaiY>t}53;1CqND7Mg2`NGeRg6th?`neBx8SnW&p{c_ldxn~RZerCOV;;H6dRr&; zX<{xd5zZ#zWhYt$&Pq<28~uRi<>mDcT7KVAdp|k4OlM}_=`U@ne2>Lf8eP<w%=dEY zeqQeh)9icQX36Z&jNvg^%(%_Pa{8aLwg0dC{<$do<GuO6={AdRZQ)+wW-V{QZy}z+ zbdK>F!|KM+16~QN1!fy$BG`0Tr5aTom^W}laOf~RWB%Mwm7r(9K7;oRQyNpLgKhwG z2y>`|Y5?OIhGoo`8&)0=Ss<gqeCI&qfs_NRQ<zi_s4S3}!QsPjjQMecaida#P5?&_ zqZ>1;gWUx7Crp+HG!Ag4Fe^72HwYdmNRTiPIl<J%(A?;gAYdRM!SIFs7o(&@`~v<7 zd=?G&9P}5cUtsoN4r+YYAp3%C34_@IE)`}^2c-l?p@wx1HWyesn3EbM6r?(slo*W# z7+aVV9W(@(SeP9h6a*N4FxNF?hDfioTENJpuuAYlr}BZs2jLIIAEZB+f588MeS>_X z^8v>P?+@@F_<o@L!1e>?2N)CVKbU?ne*h_yiXW^$kbc1Kf&PKz2jU(GKS+L{{J{AE z^Ml$4whv+-$Uew@p!>l00q=v-2c{1~ABZOKe=zzW^g-zZ(+8UmG9Pq4@O&`YApOJm zgUAP!4crw>6*3h(6(SWZ6%sc%w=h{Zv^TIfzCB=e09?#4KB#+Om!Q3Yb%*#5;R5~w z^8)b#^#b++>jLQl?G2JUSa(S7;M^g&gK>x44!#{?JJ@ze?cmxWw1a7f%nqI#EHPX; zEM^ST8N`{-9&kO-dY~#ncEhwRH&f0v^^ITkH~eG0w*SB{@reISuj3Q`a^n^hW4^)6 z@{OU<)**pkfT~Qm-L;Kd^*4NDy|(YbE%AuoOxf`XZ@JghHg5gz{{Ha)r(xgR%OC8& zvtr@G!v}q${`9<b5h*afI8oc`ul)2*lXj^Uoc6CXm}4FNFR+KWK6j3FpZ!wrmvH3^ z&#HO%EPMa!7vCy-lC!^3WYv3x`YyGs-#gzPn7F$kZ2t$odD;`Y%x?Bo-a3<eU*`Gm zXD38+pDC~X7buc*h4*q?`}g;c3T~gTc&c>QEMnQ#uNMT}dfzkW*?l@Nad*FTbCT9_ zO_Qn10$D>J{d@ZV^32|eGrhl>^gokc`SZl=&TQEr;{dMP-3$AtMmcad9^KL+m8n@L z=48HQdCEN{<+~oIKWv_JZkgzoNnsaXeS2+mcr%x!cF&ih1m3yL>cx6<(>0F1v7E2B zU~5Iz>z7WuUYG}q%Z8pUF^p|`zGtGI?b3S}G`DivPrvwd27maa&=S+w?#e>uyA^Z3 zOC7Gaz3a0*;oONms~_w<8esH2u&PaN$?unpRVO4)XZ1++cSudQO6Czy;t6}mcmDl_ zWV!vR?(W&V?_%#o7yq8C*ZzMGpXs!1{fl)f?YxRa>iCRKy?X4HB>b-N>qhHGS3-~d zmH%8OGxh$bRUdb3JbdC#!jdIc_o}sOP4BjdR%ov)3R${~ch*(iws$Y~|ID~~*6ml> zuI6_~Ht)C{&~>v|{L9@E{%ha%ZfV{2==qFyD`vc3{<}y0`9iTzm&|VUss9vsyCCfF z|L98f&-vNktNW|UE*<{Dk#^$o7H;da!9N1$9e+^0=<e>@9}0hI{xZI_No4uFh3Ole z_d4ib^8UhQ+j~Xs@h_R6^_O0MVcV;GXhGcK^#!&*>wnd{Jv8Bx|1W>c;=ae_%wPYX zy(`=EQ#C**H}Ch#+{oMhza&-(FST&UI~sh;Z~6n_-+z)-Tc<Yp)-RN}b?@6^JJCCz zKm4xS+;`{NH{G9!*K;n!AJ<zR%)q;}&}81ak84VI$S*aR6Z9x!M#YDNH}>o~V8_`1 zm}SvK-t-v`LQ2;q6E7VqQ&CB|U7qqQ|AI1iwCnu0HyNc1tj^p0`S{RQvfbWJz|`b% z!-*d+F8AA;*6&v@$~bnw|NfsX_4eJyYKl4TwyV-^m0wAJ^-ucM*AqFB_a#H-zrDg_ zc178vW}9+if3kmDazAsT%->(rJ5NmUU^aXh<>1h>e{XcW?q>H}4;q=-d#)I<FTJ_D zHM=eU!UIL+uZ_%;Ol{pN-Li~yzg(}^y{<0v?fSJFo7MThc>8s9aDM)NS?KZNUp*eC z(|tT;FPdvQ@PD}emx;NG@8rv{koouD{%tt1<i?IAD-Il3v1G@MB_|pV%l~No|ED?r zhyKoGzv9<j`P=S)_T9R8X_*x>|NM=f{CM{_xp_ermP)sBxH`?;kFm13xVC*eGrOuH zHfK@KL<#BB8~OSV7u>pCXSViZ_rkm>Zt|xJ?|a_8z3+}(mRS0&=-aMQ*|*DYJ1aO% z;b<#R^O%}7?YhBZsjQf}wyvwr`0)!q-gWzO5Pw@+%dv9rP3-NR7Qq^=vz)iGzwy5j zzw!0Afa;8pOG`AS&+p!}dGq2nzOyH0nCWgheZk|ziN<Hl%u4Lv-mA-8zIFc}U;ELS zJrfqLWPfda?2Uwa9IKVou||!Gij{?h|Bea2Uby_l!(Dr$qi#J=Y?2S2&aiu4QWlTM zvyj!MrdB7mJoxau_{)Qg>ZG8o77mfP;E3yTC%4_>e7J1tBjJx%Bnzh%OqLUnQfZT~ zwA0Wz@kBhY)40<45Ob-mfl|uhhf`;qjqdbe`fN2*W{T_o3CXX0HXNIM)MB-zQ{16~ zPX41u+a^w`|NQRFOo7)fb!&uwZrrH&a#O)BojH2k%TFJAxvAjS;U5CNxx3|BmThUQ z@Vgx#^ylujjxs*uAIEbSveoa@b=j0w)|Sh6Q*=?Q$`^|p`|BObAD{o#&Azp3!nB5< zQ+5+_*UVU`lzeOXu?hSYmk&CvV>ljgt%#9T{mc8p4RVTSjE;S)DlTm3d9>DDLT66S z;zI#D(~=JPew&h)Idft&8^6!Nh~uY@PF~aPSZli5HfY_P7s;1Y)<g=g5*L-*x!-$z zT&&BjN!qK~k65~WJvV38{m&;JwygQI@!s8?liA8;=UY|feVjMHeRuI?m&20A>b-Ad zv)?9Kt#3EoTXJ;AzNL#dFKRMYKYQKf*vy%o?#phr`&<0EXz-om^~5zt6emCVKWAOe z?{gxrruY0kb|ZV6>ZJnr-x^l8+y(c<_bL65w(RQr7Fc4lj`xV3w7!u>>m`?6=DUu3 z>3HEg^NRnMT+UfNXP=*C7E)?%KmF%hUQdL#SIz1ZH^Sx%&Ap~|Y5R5e=_#|KT;Jz@ zo$2`ZNxaq7#cFJM+nt^KuFoj=&u86UpYz*K>HCZuGg5r}rp?*4Ea0rZ!7<C^)Q7Xg z^<~40zGgp9IjgC^f#uiBWd|l4_`oPE<~w80!ZeSxugf$aOLeikvatMqZGGlr;6uZ` zRS{nAfBah(U0<7!wPx*hRU0csEj2@{74B~Re@gw=Mg6>Cx%iUNr9aA(pMF<7v9m_= zS&>NO%cx{E_0;7Z8J6~opZ@9TJLuu+o;YLCV?(!#{U?5Ua@s87e5*X`gZ+|P?h5Iv zTi@+5F`ndhsmHDV;_pn)Z8@i>$yk5#-t;*9k4KXAM(2*to8}4#s64zV;Nh&0nNcaC z(J1B>U3L4?v~QQxHVQNAUZ`fCvTe@kz3R4mb2a5N^A)FG6S>9g>#=6e-ZZyOZ(8K4 z^#9pqy3evT{vH26?sa_jdqFMzxgfOYTskM?WhIxLi;p>8=aI8q6u2Y8;X_DcdGb1C zHx^~{sm6R+4^Aw$>^)`PnstO}m7(g9UHMO<-`h^C4__8~v;165YQe6&<CEL#3R2!r zzP`NEeSh)4XlJfQxBZ3BCceGQUailu_IG{Lj3zg~cdp9okIZW-lrMA(o#%2j&=ro- zITTl4?W()j&-Q%I!JBIm>sjg*oA!$xR2IC&*qz^YP@~G)N&NY}8|z+Q+#tM({qa>x zjyIhr)Gs_2c$}m1D!1T-fdpHo#led*w)St$@+5*eU1E$rIx!{&PQK&)lIP8xW(J;( zQ%yHW@m8I@{3B58r>R%>Ep3iDrY~0HZ9aWQOJQT$^rLTtZv43#bx(KJT${=3Q(48& zta%^*rz58KLst@e${vZpquwDOg+lkZi0TI(^>(T7mA092{qO=oSz%Xp+vekatn9J^ zGFLq2S!gct4iJ2J;iZg~83()n(<h4qIW*kfcpr=5IKdin;%depA34c3$K)xuBd<Lw z_j2U!7I-<y-d1zh#e`~!d#R$aO=a);dm1lhT;TpH((usn@xD)wc3(LwWk2m;-SRX1 z+i$BJ{4*h;&f~#;RatgjlQ7O5i3jHOKl+zpwoB8?%~#7yO;mOAt6HB`-wju4%zUu3 z$wfA<eOY6kmV}Rb)cm8R9<DDxd|Lc6k^7UbyO8n$wI_`%tR`2d&zF+6jx2fB5GQc1 z(1u<8;+93vHqKF7JNw}2<wY+avdnpzp=Y@0!mE@R4cC%J`BnJ>4QUUSr_5pf@Z<Bm z?nQaaBKjUq%d^<<ZkD?J)R%jn?w)*hyWYw9LM&e0N-w5=HQRjd&W^g%E^iOl|2uZ# zMtS=C_j{8!U0%7^tV3>MZ-{%?ov(NL_Ug;L`B3q}_Mm|g!|6|X#c?HWHjbUrzyDRY z%m01RK6~!MqV#}Ng{@qgvsk`~MI>njceh)J#`(2Q5B5B<QsqfVg{48yZMkdBProEs z+D7>CPrKZle%YC4YjUJE*PckhxC+Mi$2YyGKEu}?{DQl}zHi^=aGr$^B4(QIJ@9aS zp~d!q*9%tK%{~|yV#}%)=xJ;J^mxp1tu~9L^?Z*nta&b$DO0&9oy$1(S&8P}sUH$t z=Zns|qIFGZ!kjv8>vEp0G7g2;gr>+aa(nZfSmLg$ZY1`|?6}a{;{R(eEUOF7I9uy- zp><oA**>v_xkt^IZ>bx7oBB=uhNlm!Ofci|kOPLI1wO1Y)oefO?j9BQQ@B&|X95o& zQ|i5k@{{ddl;aF89GdW9Yinc1TE^XrzkGY1ANkcQ{bKC04Szqq5y?uFy4K(-e1Yr5 zmETuaeqSB@K79GT^?rNfWd&L`yR|b}-7`IMUi-R_Vua%DqmC<HdG`l~zWk%0G*P2Y zGI?dym8^x5GTU#S*xaM~f-CgajGBs#M?cKJxX1QE$uHMq3Fr79|5q}|E4Xj6Uisae z+reJ~K2Q72Iq_l<&r(Nui8<ePb{F?sxtbpOs+cpUi*^37HC!TLqFk%FT0>h8t#V3i zRWCPKn|Z>j`S?|VHuX5&tRu<G6s7iQu`O?PTzSI3;83l`g^cHZw@!C2uI5cCoqtp{ zEAT|+DucGq@z=TXj?OEQah;j==6*``r`b{E+l1O?NmVN?Ts=+Y`5E;oatVI<JElD@ zF?d`GM+f+24MZ~Eu3>&5wNCzucbT)(s<q2%H#***b*SasjKF;poft$!j89qpNb>gB zt`ekqBJEhfr^=hf9-q}C9li?io#gV0{&1n`f$DSJ3N8s{X3yi1-RBeeJ9H-cPpn#f zJn3uH7ngm~?#8zj6=#L)TKDOCi>mIv=w|s#*0qAix2jD)arXR-+~@qpR&7frxVdyb zRX%!t{tAxbb2DBa()ii3{m{beU2>~mrGL+4S;JcGbnQam<dcgI>Fu9=rM&siKe+>W zfr;BsY^W~1deyVRR&(Y9R@oU(EHf55Pb%Q(ubj^Ja+Po3DaMJi7HY{X2JuZrO01oo zg@NpzZvzj6Gz$6dpKvy9FVBLwOY^#>e3*PIeS;M*@3{<(l(X?q^NWR94tCjjewumH z>-hxrSD!g57B9Dp)PCrp-f7o<Ha~5*uEy1C)sq4ro&B<Wc9q<_y&tweYN;_2yK?h% zZL$4Y>H8+rB7W|jdZbumvP)2R@`G||y>mh7CX7BVT(7jf&Sfz6=s5UtpUB}pk<-28 zz>HH_e<OIe$v>SPCt9=qRONat#XYN9KCF6BJ>QkHhp$-SV1g9i!8=!bbf(-+K5AKW z<jDlq#>@!eNy|5-r7XOow=(xc)@~K+h3CH5{W$he|Iep)efJLM%j|o9W$)a}7q$0q zDSkfPY?}ME+K<0t`|~;k`Rkt^n%KM8zvjmeW%<7ek56p>_wDZMx|;7@SHIire)~)O zom@oi{r)F+n18;Teleyz`RR@8DZY}+t}eXvDj>78>hh~EAhv_j?gxwvwhRl}pYv4g zXD`a&&uKp1VkBT^a(3avm;I6KJB2o`3|JG=db!|B37>3U>*M7`MeRqcjJHIj1gUm% z{46T_UcdLJ<64P=hWV=t9$o8de0%-dbbs^SzR<e2r?t10ww`1+w=at=-nYwwQ7~1a zI_>Ygi&Mj|OFln$bl36JWm_`ex%hM@`Q9k*dUl2NjG;s}&oL?HO-CAZ3>Cb2dd*iK z{_{@id!6}9zf}Tip&XO7q9=h+i)Y26t1=fPS2b{aduX(ZQ6rh*)SN2O1zzVrFI%C1 znPaWym6LpXH{FtXHGL^h8{150wwca<G@q|-kQU)I(Mky1W%4}Kn^metaN~s)r82oY zA02C6yOqCRoTKdf{(IMzr)>|@*}qObE%EdH_%mByzqM=ROSxuRt?fSV$M47e^Oz6) z{i@yE&i`&rR-Bkgr{bftuj@*_cRj40zw_0v=kFcg{N8xV&a3}Mcz<bv{j|VupRPJF zcQ43fm?E9xX3Fr2m!X*X&}$dVkit{OObOjlO<fxoTnY)u)LJ3I{b5DZ?pf}d_dd>z zw3)qiyF!^SJKNi=f{Dh5Zz^3-4V7g0l~F3T%kO!>afUB8^MZFbebx?3;!;%g3Y$E= z;7Z!}Nm;4K^ls%;#HvVjiWH^W=5kigW$d1JD|c;H?A;RQ#=RQT#j<bDsWo5I(RS<l z^1r2_hNpYo%<QjkJT=kN_QTx1k7e>)`Z`5<CpKQc)|=*3ykBpV)KfpHOB+g3j&ItQ zt1Yd2tm1Rmtv~XI<USeyz5SMF?t6ZdwN8c0em~N&?5o%()35n!$=gRWHHG`XZ(muk zZKc8Xm4VBATes%6tvGXRa^%IP@9LYG>;(MUCeQJ1+Na0yNpD`e_?4rq%ZhECuQ)BS ze>UmsOYY+`uXeju+UGH?JRfS`?Y@z1N`dR9s)P3%%u~L~+|xgxXC}Kvs)g;~HJ;AQ z+1|l+InKroUpJhH+02yk?c)y#`_s+cGq3+kd)i%j{dNFvb$2n7*GVPyqEC^hA8t`E z`c!FJ@Mw{<+up~oRz8n44xQoQRl94}zZpqFzJ2<)|9;)LO?I(wnXT8gh~%uR>+UU0 zK7Huq!nfCBO{Zkt`gh>fj~5P`J%U+0UrW|5N?x<EE_AN3WzE;paQ@{Vve*6jQ*r4T zzgMc=?Bi!xk`?n0uL?Qbwd_{N>sPVb?D^6wjVx;x#Z7S89DQY%vz)(gb>!c!XDO>v zE5x4&sy%sH-})>vAn=9y5}lMYOb_f>D-Wxe{ZzQ#(yi}v*k<wB0H+Tt;%qyGy1%DZ z#P@twXMDVP%W<9Syf&=%^XBMFok<U6ovz}2HU6aO#KWwXeNkCwTWmDKeV#-e{JCB% za$l?Hokc4`?p(B(@A9#hKj?O0PSnSnvsV?^SMb|c2-{z{#DD8De@{#Lqs>m4+d3n9 zZiZ;&Xo;AKa?R#y^=&=$jpv|q9;>Bh&YZJZ7d1;JD%PDaJ@0AB8v3`~CT>!N@8QOP zl-cT$%S>LK*RHs#J3V8W?cCq#dApvq|F)Xq)pa6_@BWrO@0T6i(G%rx<xzgktCxS@ zuC4BSujb6UMDI`O-G$n#w65PX^t$D3d`98ZfpEnmhi)jcZZxpCA0bhGsQO6f@i!Gm z8p5qUcyX4WS#i!WuOWLH*L(-%?6!WHNzPqUezvLfMxL}d`?4qD*wmNIi;o{W_F?13 zjXxsplrE~6p(4-T7b5mVWW|YJzl0>`ZMm7zX5lC)8`!U_z$xSWY<)suvCa#=8Cyl_ znEUe8BcFKHCNiI_O5DoeesjjWrG2MfbFOhL|5vHSJpXVNQ_o)3r<VDPHkv1wpOmt` z)U)_NjoEG<8DB{y6Yky!CjG}x{ZD;Zz|#9kLGS0nz|ijSs}DjG_h_}4^MvxWW_?M? zlw{I;%(Kbt7yq=#EB4{nw*0u!)H6@sUPUEk;Z}*x))^Um0eg1edELFcH{@UKBjrmk zbiT7|-BmOCuhPpcxL;q#h(+#DA@|CyQ!4K=c27HUn)8nHrKA&&c|Yz@OA>KV=63s3 zALk)*>&o{xehlYU*w;_Wx-vUpL89-k&-#JBR#&b`%q<f+SotLKAHS&MpU%YH3`a9h z$~{$TlVm!d^;XdSSB$)4Wv#H6xl-!9t{0Ijw)o6ie<@~ZSk{6GZPr4UR$e}Fbk=3R zf8}1xpLpfIK3J4q{JHkZE1r-uVmj8Y%x4azs(ZziDb*jIP@^KCv3bLj3_EL=mq#|- z7B&*n**Evmk`>nlC!ML9_Q&KSb4~PS-ecayw{F^JS}y3k?X_=(xsi(BqAm08&cA*z z|3#hb-kRo5tF`^3Q_sqH+ImlzA@^BuTk?i2CeB+He0(+c;{EH_j8gMI3a{j!k-Jpe zVY%PpW10U-f+F?T_Wp~Dd#72gecaz*C4bS27yer=ILDPOZ2!|{eRXHr9^L=<bsuhE z?a#eq9;Dg!+WBK+$p`&wtIj=p@3;JR(lxd4!v)8S^L1W&RDKA#>yd7BqMGT6IrF@P z;}y|c7H>RtB1|W`+g>WG=jNyLyI0NnT>J4`mgaxo=slv(&TkdJugo7{dPC@ql*7Xn zEw1Su*VgoHp6g#>BzH)7&cU-9J^8BVer0E8b>2E9S#we_&06PC&)HM@9wl>|Sm!*J zyZv*H`vmJ3MTf3MJ<3@(t?_aHvw(KjY;$g{1@ha=oaGYcmYzN?Rpg%k`qjO9o#_&9 zbBnS9f1Q1yJac2tb>8NwofGe#j&_SqVw-h!Li{I|IgHzH{M{M;ZpUBo`R||JWlYyd zDC1hA|0egww+}a_wW|l+n=oDM&VramR&fFDgtN;+BLl@dO>|BROj{GCJ=fT8$GOaH zqCxhliF1s-o);bC?0p^Mw>dX)mH4hdr?@H;f5zJH{k|v1?cuulGB184=A50oll|TO zsux{ehsw|E^KI1>du{XM&%TA#+f3sswwHbCPLSSVue@u&S59tXD(l@DuCK-aDlIGh zCwtA~oRr$4^p}-!k2=GrP8FOvHR;ID?{oG@6q%*ZSa4BiiMPj3|22&gnr{B*_wpty zoavdj@WTF?f7EKE7q^SXUa4dGZ+6KxgxzU&;IYFW^fup2O!~Y(p<=m)MTOdb-L~=* z%DaCEew34n<cL=7_fbA@;!NJ&d#yWTXB9UkEI;>K{Y|)T%nc2m(<&L~o?bAldsX9S zm*v>x`G4_O9_f$sPENVs{C<h01dIFg_vx-2JH^CiKA&^a<)7J`^Zpz6IGb2s+`B$) z>cLG<&NIzpxKsV^(e5X^LxfHzSwHP~{B@Q}#X70(nQ0wMBkxYSz|P0}YxTv0&8fZ7 zx*2vdD{rog;>cNiM&gNL;zY&O<t=t6PRdFxJRY*HFq`*_<*d~=<2HyMx!WHd#c{S< zf5r6+JwioX!QD0Chch&TbN_Gst6ZMDE?eUNorJH?Ud-n<J7Rw8&mMt@tyN3@Yzu!E zx$o1z@VwZvzq8o7`}Vk(d|b2q%;lP|&fz(g6}N?Ei+)%7+~_IUuWz6C(I9R4iue1U zFOAOoJ^gohRIS~`<+sE<4{%I7aP8za-og(bcG|9KpKo#Kjp*dW0)boJP8~6uytKsZ z!VFKgirN=t-uRKO_3O#{2<=Vl?jL%xw`i(9!`FumPd-FP{Q2H<RNs;*>{^`5<E1sp z3w{4>J@L8lk9O-eE2lmDy%)M#r`B*gD_{ON`BTJ%+(d>?`|Y-A+z;O&u6u`Z*YroS z6Y3XF731CCptnGK?e&_rjs$<j?JmNC3mZP{eeuhCBk!rN&PSH5T%~pU(v@Nt?o<3< zT39zHS|!<JAIRBwazR{yKbPy0skapV*L^BsdNkeV;H750l}DOue!5Ss5IIsH)4H)b z((p+^`&%~Oy8EgT?-%%*?SI146*WaJ^Yi^<<(GAQy?AD|s^~1`D6UV`Z&cXN@?Y}T zlotQYy@3~==by-qT<o~K%Kg!G4pz?9!2tq|@jZz`zH*NRv!WN?;=5+x6ZGNbMVYO+ z`!4v!FFWV=XO{WX+G!vD)H=6al5{Jc|Ht*=HoZINIP{M4&GLM5bXrpQ>DL)kudP~P z(j0##tGTUZ-72k!<<0e+5d|k*ruzC<DGAS8U2#?5s8;T!IeCpwbB@$Ft_w@??dI1H z*(ZK|Z|L1G{jctstxlUH__wV6{uzOvyH^IBd1aP;@{cl0@;7T4J7eLAMf*-QEIE2w z)8?cl)6;ir`##vnm&aS2C{$Uy^yFS~yYN3>o-UB*x>sC!#DA}--(LHO2T!X{DEUV0 zxB1MR_Twj`d8l#of0@9GvGyz1Z)o1HwtZ?);M~uVwJ*POM|e1Agl1h5OZ{7NF~fEC z*?Ftfp7(n06EC^<p!>s5<Bd}TWz-AY3T~_L_mr)Fu!$qbZXesp^e^(cWw%xP9k#Ro z-N&%-ef1Xm8@I1ZKlvSy9vqt6cyuIE2`ZH;8-L-`Y;(qfzRnQm8oj9tZilzD~w z_X9iTAJ=gap0zIS3s-2$<-p6=F7V`8ExNhS!Ry4*<jW!FwupKiSDWIJ_y5V#$9>yw z*Oi>sRnN=KyZ?W2bl$9cvu&kb?5%uz%eGdrUcPGoQhSGr_dn$M*Sy&AIlcYc-m3py zea`xKw|_erQ(ShuxjEdfCO7!^xpoIe#qQW%i8qc`6|IY!UZzj{E^y(jx$<Pri~J^1 z>)trOW+@NNyt!SV-84{Sm&u&1Zw}9?IZ+?>qE$&MILcCa{W|IW`JW07#=5B75qR~% zJZ>hhTz39ewVe1LS(iUWv41@N(0ZNE6L}3&&a(w8MJMmIjb`apt6#f*q5sCCRj(>j zx{Y*tb0;m{d`;iw!Sw`#aNa*n3m;rBDrC65t(0?5pv<O|CvQ4U6?0A9YSP`e`Dp6r z8{3KsUTl<+(N6U{_B?yjt3SJae8oNrX0>$pe6z{D!d-nVobB{?{yRlU{uj%hZTj_K z((Kzk$NuaWTf0MM@BLfyG5KGkR!18tR_}Pc+1`H3`{ySnmG7%5xViTF8t(AzkuQxF z<-dKHJu!6uhOEEh#b@7I%ZIG}C9x@sD{~6xQS(<EuS0a@#a}&OFH-W|bjN7t<3rKD zzTdvI8$1_TA95nsPhD}h=l|I<a%VoOJzOheb!q-TgXMD7KM!SoF>1Y>G%wkG!jvag zPm<ScJ@b|;qV!3JX3XWV?Q0J(sT`Rz+pajZH{G*-?dnxJ2jUkd|I1nX^0eKTpVve^ z+fOK@yJYqL+8<V;GUw-1*RVe}4?0V7vzv7~uCr%t+W7x<i9mkKtjB$Sg8Nwh%=`JN z`@N93fc>ux&0KnKTPm%B#8(<uJ^0>Wpj;H%w#Mvk)w#_+!uPxGY%jQ@f32gX<IgU~ zc?XJaH7}U>ef>!V)h7y7D!SiIpIrKQt=MwsZjQhGPhEIR^nBh=_R{>6a#ClxeWvK7 z9T&EI{d{<3?_ci<H)jElsjpV=GBXeVYX0L<?CWFKO2e<Ly?;B{aLbx&8ujZ_w>;H# zUYW5iXw{pz?TNAFs&a4l7N#z}`SjV>JyW+==tTLSNY>8pnzCKxlvdE(*|#^{u0CBk z`|uKRl{lA~lP^EsGHt2N$7`=LbZ%~B{If^;<7&~5r~6G$*)cB`nA>;LN2EXLjp6l{ zcUoI#RDAj?zOc<>=Y#H*bN-yI;hp&Jhfvb$lQZnsnzGCI&2K$BUr$Byh~x&-pSL$1 zXtnMNyMLTZ<9q=p&*C@hf6ZERUirl0)TwjM`FEU<zRhuZi=NR*|6R{w3zt3UTK<q* z<LTMzhyGEgl<(*6e78E<%x>Fa!HeNVY%XS3b{fvTcR?`0b^nu(ojm_u^v2)WXJY#E zLhg}sO)WF3b3UiI3p{<1-6`vOusxZv<<09C_nIT-&*@DrbD6u}hy88c+`C<qde->m zfA_g%vg(@2Vg{}7*eR2`WAZHn|I`IqzB6*w*eO#kyL7XA%|Wit#h>DrX$IeT&mAct z<S*nQn4#;~ub!|#V*RGl>nA4a--=<Y%zodxe)8*5wyh%V$-LtBizG|lpS>ZslWV2# z3yU>7m$iAHd+<KB^z58iqbaRUF$HZKQdv8*XRMjAhSQNT*N(U0S7f3~A4|vtmAK5= zm(xOJbl;WlJS1H?^U&-WLRSyXzSVRwI6sgr{fu;vchx7~Pa;P>4d>gxa|!s9&t~ra z=U&5!3IF~6%uG4U*l(SYc4G4nd5<ubkRFz`iw+eZaW9rSw}nITZmasq#J!AmrWyJ* z{+YpU(`6Ti_UrsraMEtQyJUljkIvCK5j_Vs?OLKdwPca~84mj^s)a=_eGgdFs~igT zb+fo=t~u>grMuG90<R7RBlb(2uD+kTw&=eN&|3A(yxM){&%5_j3vNnxX*_)LR_#*E zyU(sUR%hkE{<06M@;>phd#0yy+|2*X%MFh^&07$<{O8tAYuA@9OQtESMa}>3ygJw@ z!$W1t2mjk|e=_TYJmHzt@}KYj&Y0!SkF5UhxZIiF5G9*i67?ywh4+eb{)E>P?{-b! zw)o4f1C|fJA3h|+w$c0aPc_wBHlE_k93TDtqM!K3fVnGPG~L1TUlFI`6VC@1x*T^i z``-H_a(sr8WB$xg?^uO@vc3%ytRvE{y!hDu$#s77d*v{#Qnx9mt~^-3v1-;LAHEr^ zvJ!676z@l@OWE(AY_sv_j{8mjHgNoDnSV~-+Vgmep3-kckKjq0HruQf%R7+#OSa%j z37_n;PK`KEznDo~?{&g*4<wsC;5HN2`YACf>V?^bwdd|C{M49c{$T%k_6j)@?TL?F z`qUzYr}GQUxOgSgt#aRaX@i?@^d?rAGW=$jJeFcOW%in|c8hRnmej5P9_h?ftXIqK z;(z+{t@+m9w}js=iOXL9*rH|uUs&3!gurEe?N?iNN&a~ssVvqz%V5sogtu(jA=l-l zug2>4zOwR3PGntF*p{$a?BGA8u;bSSef6(AjF62B55F5`*t~e<|0n@|HqG<aSNH0! zFJ=~*rtyYznt4&*+gk=<Hx?Bd?Mu{I`;OmFY5&H=GgD1pysen~_o&PqeU14SrX6nD z(d+bl&9^<1SHF826?gt%<x-cEeu<Uw&u2_(zhK}yO-EC(W~J(?6T$WipDZ|_A$XgO zRm$k_?pVM18(%gad?(GeIx7Fqxo>;7-4cB{?d<7n%W0Q`dREt_WZ!*ueqCS9=X-sf zW%or_-zwYUA>)2oX1m_y&}&<_uB}hcj|{)NN>xu}ZREYgqKY|+{SiCU?!TJ+ZIw^u z^@3{lO&66<xb464=8)C~u{S$nj=SFr5nmA=zW3GD&<$0hr9Za!RQ=_tGkd-1SfaYi z9e(Ry2fGR*in~95a;tZmel;m9_U|NyrH)4K#Wt5-zk2lh@`_3qV}<sh6prd$J6>nV z{WQGJxip@|Ds8Lf($#Fgl%n`G4vH<z^`Gu?XT{e`7gkricTzjTVK!Swxqhb9{(7B# zdsb_oniU(?ecNYojkxOjG_z~hFALu;`kwJdGyAT`wfnQ)_LRMey|!!H!N&cymp8NT zZt+O|S-K{OJ;l_U+w<-n`P0+eeu%QyRRlkm71n*$^)2P!#D^E3eT;UDUE?hA`(*eA z)f@h)Zy!&)zJF@%ocvY4&CmNBblY({r@6lT;kWPI?=@~e;;g+k!QheG@!R{>oV)Ot z`}~6=Q*L<wTPb#}Y-^jG#;(imTbLKvJ>LAuyYTWS&(hbv(>`0?JEy5G@Q_EnC@Ej} z=W>}jDN=rmS~ts_&14sm)Vlsi|Gxt3+77=eN6mZw84~Wr_ir6})~-H%%iF3aT|W|z z3we4Ar!{Nd+Ow?idv4>Kh~g?0;pYkccj^UYnhpj&GfdC7ExVjPZ~xNHayHe)8Z#H~ zbI>VxwDKZz_Tz^Y9ip~etG?u$nkSnlE`PEn_x7=as~?&l$d+O={LWMNF2ZEj#ZNkQ ze904&uBXqHe!SUwmvOJQbmy#pIrbNC+`n;uuI1!8FJ8JipLunSHzCjHM*f>}hP;&Z zJ^>sxn`chhv_B!o=j`EyEYoTpUs-v%X;akG`-1b&zI|b4`b&y)&HVT37D0BuU7q>y z&8?qX!>AX&hw0@6N7w5UDtW{^(}Pa=F+Z_AHYF#n(_(2Ww`6?Uzh(~?(VthIKHRQn zFzKvZ=Za@aYp<NW`~B<M-COlnm@fWvGClE)>D{esx0h`yy6K+sRWbPVi=glwUfZTF z)Ullrmb+CgSn)QO&h0DaTG3{+fB)giUYfD}N?vVAb!B?(1&3?jb@Olj+IhBk{b4U1 z8x!XlY-S}b*VoP5z54^_*Zmxa!tV#qlU!lQ<)`@Sb6ag!uk)tfwR;Yqu{?FhNSg28 zk7p)_cT5l67QcU2*x?twY^7-zFLyBS-gy6nj6~$by-XGlx>It^?c7~9diFT;Y)Fjm zyz_Cc*_Z83-*pT-melGlYRNykB(C^u(epQL?|goqDq6Hm^R~+r^Qq=n!{>AId{+>6 z_t%#f_+|RHXjb&8=AK!<=ZDSLe0bk~-^u9#i+t=pvpvtrbKbu4PPku!Z;kMy)|zh* zUm07L{Cir^_}KC*S5eWP39OP!(+YNWz53t&QarzX*>Xwm15dd;-K^>hCjM>ito(hy z<hOldeGPAN8H*~rP=#CYKgk;Q<&(GTOzd&&{%@Keai(!;w$OilnH?Xj{{&k#Pg9ZH zJ8klhKgK_e4zBv(^m$Jj`!@f|UqxKE_tvU%9(j=&!Fk?l?&(*-x+|x?$ltEIiEqxz z-14-Hrvib-6Xz<lskNz@_3gX6dwaU_nV7d<nKd)7-MG}ehs!k9bVJUxx0AYyIs{Gz zMV&aR@YL|6NWIm`{UxtV>Vqcyd|<-+vyCICX}*KXg!B8$zr2;%b?ECSRUXTdUa?HG z_H{w5(;W@hXEnr{&32wX>2-C7<jK}Q4Dx{{+LsDe`7WH6q`i=FsaRd;-ta4O^JiGQ zG@lKseJXqS@O-(h{j9f~AKcG+v8nxTSlHo9D#<18lh?ibxTbvjNuNyKGkNZz)s<`Z z-g>z9Vit#Sx<+(Vi5#nYyp)(gWmweXCsS4{-`khGVpr9ZZ>G``2Q}ONR=!`?8#Om9 zdCHl43l1(wKlLl`MpOM0{%*g<m$`De1v@9lih8q8cH6voij`N#hAC{qE_0WfWL)yq z5VK#lQ>;57^Nsr^wXdnO3ifLAdYSN6w_Ms#ugfc?#yd%kSCQqgkk=Bw6^vF3*<Q4) z@)OQ#@N0PEc+zLOoos2~F)jg}ApJ>OuNXdVc;lXydU0~(7m<03sy6L%a_6k_d%7e} z`ODl>C+9BYQR<$@YWg=QwKMHk&BTQ-lv7TdP3Sjly3ORTU2b3W^oQ-@jZdbro2|2% zkg8)BV0TM>TJ0|7<`TY3wz-Yda>B0!PO#j~?#9L^bF=92X7=6I(*=JWn)iCA-;#oD zZ_bw8G3*pMzbUHaorKeO!6iQ)N63Eb>&bInWEZ@D@jMYn<*vGl5MQ2<L+=iFIfPfT zgkSsTkvV7fyN-HezXOLCU0$I0S|d~;a24OA|7)k;7yanZc(2jn>FM7qe``Ks<*M&J zq<Ly?h3zHny_-+&xa=XZ_5BX^D?)evY;Nef@+US%(B)I{j!leBAx}^5^gsE$LnY3A z*JX{plMnaonP@Q4ZTq*mbD{&CJ_S2n$X~Og?$1VJj=$DX`nQ`D<vXpO^;PXI<4aSY zrf%WpKbhrI>{sR8o2>WM)+T>mcl`MJx{Tnf!cXSi)qNe^%;M<6Tx;GR5<NHU*b4(` z7vbgQ9!altjkn+V@#XDYS@W98wH3!7zWR5Pt)nef++K-qVaAP~+OTyjH!B2YY}!z= z(&}F5h4*@)4|az<+Vy~abGFv0G`)S(Ob=fUPu+F%S6+I`wq?ifpZ|V>(SY-pdY#eN zeTx)>H#911UwNHY{Nlu{6FGjiVSK44
Gzf^D44h7Tq)2D1re<aX)hb#H(wB4s( z{W%sMu{SK)Y%f!*At&py+f!P;YzsKQb??G&1|sY}i|($t_-boV)`r6FN0xejRth9| ztbU|-%<PV3P@X~IBJMp7l9zaUIaYeUNlQKcAjGxRbPmJS8Q0d{=lnl?rsHbUy`oCZ za<4OdUzfd&@y}e>m~&*)&hjOvt#99sy=!s%V(@kOcMpH(>-c7+Ea2LC_T-c`;=#)& zpGuO|xj#SP+_p%&xyJ0zUw=LK?1H4VRC;l1aaLZ;jJGEy{9C-Fec6A@C2v>p{g|QB zndidCG-=5>iEOsxiUw1rU0arw^>*#*RjtdX27LIEbU36(PO4bXck1n4m2(_*>NVl_ zZf~~P^>p3E8{cy$glyeX>NfrD+l<)VUy3|MzbbhuJ+^$+CS`YR*6d?^Yc-ckv|Ze2 z<@bGlYQm<yH)oqv8yJ7H_%<)+{o(d<8@{r6_jVU1zZZRc;g;gN6Gy%(@NL=q@1E?7 ze0?+L9h>*5wtstHyXX1Fo7KC@`rgmAz4CeGzqfzGzm$AS|FX*>G?~TNlrQ7L?M|sF zMf~TjcBLw<m=~Am5)>Kfx3Vixj3e`B=*>lo^4@%~zgK)dd9&q?OAGgI-g)$TmdUBa zg@p^)^rl~Z{-CMv;Z2!cOU?+H+G&({YOTKZL+S7%S0){=$!q_cEN7DU)=zz19T*oe zbH135e5Bg*%jZ6Sbr2O_)OFV5B=_kKO~aX*8h`yx-g*6|&qzt-h0*ttj%u?bwx5kp zXa+RBoXPb4)6SzhJl|t3$KK4ls`!6_@rJPaGdFMd%#S+4qqL*)jj=LU|CZ?=GQ20w zj9S{Vd}&<JjGZYP68{9H#htojT2MB5nv<XVm+A@aw{{hWe7$^y`~SgP(;apePUE~5 zzx0xB=u54;-|y~<s*TTEc{g|EuWh%>?)crY6S8Jmo>PAOoMR4?r2;1pv)`K*0SUF; zIvd^}JYx2?nWgPb^kF}?IqW_hE!mT{Zx%Rl*-0!-s88ef|N2nRrDfY6t0ZrY)?N8Z z|LXVJ|K;)%q`r6T+<y9MR!T9?$NPIGIzJJ=Bec<NjZ1xcT=ed3yJpT`J5?)iUBK(- zmxK3dDyJP2@>J}r+4xyWX{Dcx$n+N{%GYjFTTtx1*_3ha-S`!py`N)!e`%cj<n4B) z`cTo1pW9wZviwkB`LiqCHSFUXYnSVt7B%L^uNtgWT{kPv7i0Vo%UtLG*_M+%%XA6@ zd&l`CnUb<^i&Q4q>&8oS^eCwnJabqlZZ~)Ky1sXt6|b+_^=3zAQn+g5?U=W+Ykfbz zURJaxdK2$#8~K^7)2)sMXgGC7i0<Q=zJqi9L%|D5vnQJ}>M{FrI&Pe>dP&M>-EH@^ zuKnMg_I*;a<65ze3D*mFZ_6t`y<7D2mAd+N`MF%X*C%}3AAL>FN?2u2=IMg>b42#q zo#wYGINZ6nqgp@jo{i03Ue6EGe)lf4?)<T#@CVzEh%*ZDOYJM3PdqC8XL*+Vx;J;X zMeLq@-+rrs=~-*rzri0@mUYbfJde|RY1HD>XT66QvNygvEm{76<^Mzft1Mf7%<VQ^ zSX#*+C0~?X!n!L;_yybcX?lwuT-A>Je0z7}zsnURGuEs>G->txIXCKZjMi-J;tL9| z+f)1Fg@g)6h*)=MQ_TD7q|@pl>#pAT5Na_&!T#Fod)oGHw+_x<Sv+A`&XF)f`_Et4 z9%X(~Sg77Kfj{T2h|`rPFEY>PJzAdad^KR(wZj)|Ym!d&n*aYi{l+XGW&QF$kG4LK zuj313+1@EXYaQo@AM<j26Ha}S%$RQfe&>{lhWnJV+jnst+4>_|R-=8g)$+%a80#;s zyly@DpTnffk?R{;U;RG5Bj?QO@YNn2T;1yLZW}mc+2mdQUc<S?>Cp4;-KAFLfAo)P z9}J!{FKX_+1G{t-=ew<L{B!fQkfPWAHpQwQi{|eykM-`f7Lb{~nLCnkRcQOUmzzIa zly_P4?M9!>wCcsLf4zSoIZMtqX!pWh&GXmyh8HdTcT3~Gr7H7o#qSEqdsUiaz8$h{ z|GxA@(dob)A(HD#4^N!c5GFl;J!i(=i~nX_h}h^VbV%5C`Z_7~aEJaZ(U}#N=U!Yd z@l!oFM<Tr<{AzyPZd;Kl+XHU(x~8%&G7)dpSn9dgGr3fKk2IU2mu-0OrLEh#Um7Xy z;yPv+zbwA()0YVm+xOX+g-Ja7FZiePhLgn!mW66b6O6_4^fL4&9J2IgwA<#QKcP5v ze)aP|)ArrEr?r3Sw#oBnN<F*1?22J>!YK>CkS7_XhkxW4B%W!Ce_au|@Z+1et2qm1 z&W+AG^ptz&EbWuiUS_RTlv%wa>VE5-rDlpPit;P8AC<XUJYoK86=CvftJ#~()GJ^6 zPh_ZWm2$2wxBmX^(l%>N&*&=7y}z%^uY2_S%Gy^cwa=5nCvCCY(JrqTC$jjGykhI- z`FFNve|V;-lK<1Etvk89GC-o{M`p+4-yF=7cHLp$;rQdhSB|}fNqJrS&pXuT{8{I< zq0IYh+P~VZKTicTu0Q+n_3~ZIAMIJX(8+XL*-Dj_fxeyGfp@ivkE%RbvgM2J!C4Jr z^Xub%9ZsMBXu9wz)1s`aH(oB)-f`{zR*Tr$+uANaxsopb+On-<xhG%6bLS!hF_)qp zS(Q>bqRSWYy!R{OQ9WI-fpzC&MNO+OX~rr?o!t(<diSF|_2HHc93CFpsXtdu(F&6I z%6h`sOvpTOo*<8#c9jah*{;PNayNckb59nHUK`Teb*z8(@>InO6Ski>w`fS-6tu}P zd%4uqUfG&Gs~3iBe{uPJSnaZXALPpPu1&uCK2Ubrj<@>{?XBE>WB0-}xA*MaE5IXV zaOd1RJ&`uP1nFnrV&8I1_~%vmLX6{t^y=L|US|bQ{q`bY?V;~JnhLk>)bMWTV&h?1 z=Q?S{!e}jXCx*qL%hs*t%$R#Bz&BvcldQX`?^zzauZzF<Un^hE>yAy|_Z^iAhl03R zZ~UFV!#b?cq9g3=`;hp9|4y`T{1-XTL9M$m-o&fq?d|k6XUc^-E*GsSWMgfY*}d#^ zjk>+Tfu~vfUa=&uDcmE)E-oOXxXnv7Fv`g$&Lv~Zsnmew<quhHoRV4N*QqTqwMh0o zuzH6IOV{a?DC31;j=h%-YAZj_Jsg<uKb7z9tH#a>)r2bnQ=+`H-=6q?TQcc@a+Juz zwzlKz13Y(3{aMO?{%9>9uZ_pjWagJl;di6I1^+aS*{Aels@x;-C;JTaJp$GKHp!%Z za*x>TCp+K9#(9?OniciD<u{jiyifdRV)JIEW8J6CCuOaDnj|wf&x<_I{?0Xe&DoLz zPa6B5w09(_{bY=Lz%Q?NFXDF8+=oA-@}I`7w~W;O^icEnmA?Xv%T0@zeB6WQ>UM@L zQ);T%Ia6|S*uAP`Ux)1PPLA#2`fAxtJNB`~KImDHnR2qk<ZATJZ606ww%)v2@aJ5> z`hQ#dc%4#0zfEHfzmzvI-riEIVfH3f9tOW7t4=(WH&y&~VWnxA{Xd3F>{=(Bv=`h^ z$xW?qeR-JgrSsZdew`Pz-(TGs+L?O$T<h=cOV6gg%&lOm``xxRlOvR?{JQ)yxh4NP zCDhV7VjB+2+)6wf8tAiemFb~)#cOQKR?S_?oxiuS$v{<e7RUT}t9CoB%(RE|Q-zaR zgEz;CUiK@^GST>U^ijuI<5b~4%GXzZtTLTzDcbdE%I<&}>2k42c1I3fes=p&DsxSr z@mr}?`Hz+#JG<UOX7}$E_jx|%F8r$h%{S(IQbw4Tflj9{Z@hrB*vxa@8hakMgmid) z*Ztu8Er{)3%9HqruZLbssn=;q$o8FG&yn#_@s&AK)V}<`-A?yiUhEQQt>9cKvr$Fu z=*Ih*ECvdVC#1@iR<=D8d_LvZ(i7Xl^}F)Fe>oMHcaHO{+J&hZDyJ4cdhTMBxok=J zm1eVN?^di&et6h;uX)AVa}(!<yNf^n6l-2z`0_yV_4Jzsh9Np7N18XTlP&jOy4vwT zl+M>*`&z$c9o+eTmr{H|-o33a%@=O*F2A2U`FGpiD-$yewyiZNKK^XY{LRmpFWRhB zKm2+dKc9Y{?y=LicON=jJ2&rpNZH+YE;WgNzs!v;vdZ1@?^fUU)?dehZ|C!T`;`Aq zMq^@Bx!&BOo}OQ~+Y5Q5E*(!_S+91@@$B<DnU$|Oa$N4T7|ibE>dKfERF||ae@}8n zvV*9sqcCH!@Z=9Kb4pHq)zV$$+oKm@W$pOzY4;5G2R_V`ADxl0Dvdnh>vHjA>Rf@j zi(=PvZD|oP3}Xn-IQ8<{rlxn(HU(U|dE?Ra<I}2J)mt9%&aQqF)fKXGVsOTvzsXN+ zUpv3-%rez%pMCi%@6|0bzPofD$k>0l@ovq*R|bY_?snAtGuwW4bKd<c`%3D2X72lb z@-@GGY5r9qc^~-;ohSe9`t{m^CH7Xq`Fo1lRa-hzUM2^u{!?Am`9i?DR(JX?hv?0+ zt3>{VeDR$6YnfB!Yn~2W&B9`@JJW^Om+`(Z-g~3h=t5iU!RN)o8@&$y<SrM`@OUeF zROMLR#;Z%L+iUk(EiBxzq9^M9v8}r={dE6Z+x`9RjTsukxl)$d8-K0*n7#f@Rp>IU zQ};q9{WuX_&o=u7(?f+rN2VX~n|$%+i-j6TJ#TK)z3ZRz<L6S**q|fpH2f!fxAYgR zxq2mlX*YAzr#W^VR)vcdmz>TklR5mMHOj5)r1wvOr067bs~2k&<X9cQ&-MA8wREG| z5;-M5#z+>4I8N#4vI2$Xf94CE?=BZiT*&yAIrnAVkN73h84GHi0~d1Ni@4?;AF%Gi z)O{yjiSC*n8&&A)u||aTWZ1F`$rGG*cdSpmnV|Evp+r#RbeKWxo)6c)8?NXIdgUy* zv_|Tqv0tr*ov&IaN8%KPU1jG(J+{c{O;;A!;QHvP5}TFjyVWK>c{yqEEl;8n3VrrJ zR+aq5eQ%Rv<rZ(NKdZQFmWItfK1=Ogt@c9ZZ5c~t4Cit_?T|HDn>WSGv%J(f=$LHF zisl<vUQDmz`0gFM*M5~xf52)ti*+X~^1ivR-DB-yzJK+PwJ+W~+wB)*F_^bE?24%9 z_fLKg&KY^$2}>*F3(<RjTc_-P(3kRmxy}BpOfs(=Bwh&o&U|!k){d2GY2hcD?Dh+O zHMwO`Q~5im@aE}TIrhBw8h9qNzA~OHY&d74nUP`4$*;Z7m)+sY3N$l$GyT_6$Fm_> z1uZ+|=CQuCwe6I+zsbPTuqoV_d+q6yPgFwJ#dV6VJ1Q+3<l5#^@a4O!Smxzho0EV3 zJ8UtlHOEQMde(dUOAltOD4G6w^Q@KrecyBCv(t-btF7LcyS<lv_8#L~`<u$+{`nQ# z-``hyEm*=+^!Tlu2`l|heqvAB+q|P;<GGFq_x&n?TZA@em%MZ1{Km+9`jil-xnI~9 zAGZ8C(_4h58U4EBGTYirZ!vdfDep>^@6l5Xp4jSgsWmUKa4(s-PuDK$;QnnHSq#4} zzT7V8t9ziu;ZCoL@Tr;qRa=x+O{fz)d@<asd5Y)~-4*(whd6|yCR}JRyK^aHs@`1v zwYQcEYlb&A$-NMLYwx`Ft^ItZuPfs3R<_NEYk5(!nDfjTmoH2TOL^p{xa&7=y^!&0 zr^0_>?=1&69q?Hol)Gu-!D3U@TUYei`Rcz;bN>G}!T<lm^)hYe_x^t%d(WObbmfNa zTk5CXw-;mj|NOyqd#j!Q);*1W@R_B?&aCeI*T1p5-_4x2Bi+CL`nhU>FLJBrFQ{W# z*uKij?{ui_!+D{<^t)>|-0YBC>BzTn0rT{-2m9)ha*wYPm3{o?%`8#baJ?4|>HA_G zk87oDFLONZY#p4e{B%aszc+mALnqIhb#IFEPWS&0UL0YSo%-a)+{K4)SKB@?-(LIp zo|g2>u50b7>(>72T@zKeAlKsUj9u?fMw{Q+TYiGA^z^TEv-A9KZQH(n7mlcRzhJ9h zRK{^{fnxKvOt<_g-H8U)=NA0AXtpR=#pS5U#QR>CU7lzve=-rQjeOtHFMTbwNz1JN z!Q+`PoPREUV-oZy{Ji|s%kED<+f>d`e=;-Scfl_WyX~sATOyZLeYM)h_x8(z*vlTz zU+sAKV_it9^H$!o`!}v%cIo=`)DunKFaK#MKcBcQ>*IetwMktsEqQh4{SjIxD_oo+ zw%f63;)!iHx5X>PyDiFQo47vo;uZdjh7TJ<Wc6Pg33DD3lq&ZToTPDhmH)Dp>*t?) z!2H$ev&VFmrC}*X>yGgoCayZEKQU`=*y}IHW!`;z*Z9IKPeNYu#rN5V4EG1RGQO(P zOSt&5B&xb@)%UZ((?1`su0A%2XX(|~rD<2JQ!YoFezN44TzH_XDmihJiKX?=g(ub3 zGhJ_=`#<4UX_Aw)<5IV6qHk>qrTssAE(&;aw{v%y(x$0V<%>!Jj!5qHZ~TA2ch^^s zR+DKPqd4Q$9#pA5p6qsM#(&rK|3Xi@oz6SGs8uMs<R8!1i*p{t2}(LGwp@N?RxzWg zOURaIAsN4)R^<N^Z*u*=${`}c`-Ia>&6T##&llvM<D6CPnkL$NY>o#1_q$)7smy<U zr}Dhd?`^zq=ft&E<)?XF|FX5Wv|{qp-e~iwlV9#!Tx?jU@b*GL!0jumODE3z=oD@F z)?@1PZFzd?jg`#|E04U~cD%`qfAz<<J=Ze)Z7xpbax*%7ou~A@<aw#JeAiAC=)6ig zy3;ax%iZa3{92WAoufGfXMbV*CGb(;Bl|{X5BVRK8~blCCfYgaG)<qDoO%0Vzry`T z43E?JdfrHHH0;SunV<D5FX@+t{F=K_FK=($Z}jukont%i7Izni)alu8U;Fvyk$;`J z>qC~=AG&hqPxFcED}<L$+Z591$~V96&71mvi$cGAi8xx~@@@Kx(Dn$9JEc?hn??v9 z;Xdo@bmq*);)RwSk~M4p&OOidA!};xdX5iOdCSyxRNigA@q5MOl(_7(PREp9)tqA5 z6sj$JV(O2g7{UErzowbq>HoqQwA7F-_(rsh#i@wE{EOCie|~*=C1bbxtLs54J~}R` zcItehJ=r7g@!7-gdZrd{d%vUn^qq~mx%-{wdZn^&ebTU{K&-iOV(f%dr&^O#W9NNn zWm+9@{J_-A?1b}eEm3bD3BTsg&C;BnVWk)t-f({+dq})0TL-)0e;?s#8GesAEjz=X zsKia2+!EmTXtkwGO~I_9ts3vmug<C2_;S;_Sf`%N!K<Qnln722JhU{M$>v&Q*{rOl z$=5}u>b>Y`-y4$k@<I8`?n>S@6WO=qXv{4S`!?-wd8fti1vy23rCjeQY^h#-ZpQg_ zOG`^u?+$PIDk`&8!fn<53*`dUox&0Bv!o?o-niYFchB~*cZq<k;17ed=ifXne-~1& zmX`IoM!##`i=QvwOzD4~^=j3UFADZ{MeChU#7x=qefp9dpEujmm#98V&pKqIzb;AW zNa~ds-+=H`UXGowFM4$>-)ePBwQ!Hyn>VLa?Tsd^Y}BYvurccT^sI1(>gB$@FV1&u zoLWEaXsGRChS#?&7MwG`{A%OvJ6RFRobi$=oYB`@gkHt7ZFKtEr#FG~Lu!+PNy?l* z)+TQR_Wv*TxTu`8<%dsVi|e&&HGvZb9o|wa-<{z&pO)2pcaN;5&&SNU5e3DZpX>q- zWICPj?J`ViYA;LAI+U<;cK_{-lUn+ZdkLL8cgRxdR3=+E|5JT-i=7kJ#qIF&sIslE z{WABk_o7GgE9#hBkBh7Bn4uVRE+y?*q2JWZy(ih_UCPtA4G;H!Xl_>AH&^{<W%06W zXQMB=_4>aL$SH6+EiQhf;EJn=RnC>oo(qb*PYc+bp3K(uexA9qgOfp&szFxSmYjN* zOFFA&MC$%K5*uc`S;}Sh*`GSAKXP8>-y&ux6v1`HU4%hhlULYdEnm?GUCVDRt8cA& z7XLj&dg9U7e-f{)nZ971L)+0j!<jzW3z->q9xeL2_Ug~xH1j9s_1-q^hNXWe2DYr6 zTdqFwbN%17uOs=LB9#jLlP>>y$8ubC*Y*5GowLj2Y%9Jz@cng*`ReYU%6~F0ZQfia zyecYe?#%Wu$$+`Cv+}OI==kwkVDBY?;tu7`PqBhQQw(1o<hEb1p0jsp{;f#iyhqPh zOHBQI**W8HaZ?H7MmJOCHWBZj$tPE@{1jRHI_7Iz(1QJfwO8JRU9{SItnqP!<FY{Y z6yENMN7pdTmh!gP$yJ(h^TX{+Y!z~@Dvy-~FW(NATDviGeUZL)C;R45nX)Msi>i#D zb(~gmU*b7ad6oNvbNBUsO+3%io^Ggo=l;g~d+HMt_s{%vZh_8(udYv?+X#Qpb1OQ& zvwYTksb}3aYQnFw-z)!4<ILARw_1R^z+=^-BMe@P*0|3RzAT_7XY({iKTb=*<hs(Y z8+Ir7em&akawl5&(H`g4oej>{SZ3QSm>Bxu+{SuQ9?3Vsi*5+TG(R>A^y&LG*P@xF z^pB3liDf54R{W8QWD0kBbW0|7W*WoC3Z|<|g6?Nj@H8*gOYl%yt<$+?lgg_T^NyTr zQR$w$<AMKkm)~X@nMIDClbg@yCv;2v{b*{#5Nb5BdD30+BQrm4yHjz=VfXQ5afZ7( zKB0VfvSws1N_SMBo6whd+-b8+sq6LgZl<rg-i6!lJ-h45`K&c{?U(Zd{q37#n~NCk zM?SdS-k*2jMzh9!=j$IN?(Hj0dr`|D=kJ!X`NvuNbMK^j&*!V=hq{F-<^P>&#kFt- ztJ=!LFQfCP%sp{X?#SOej~xXB{&O(+HMKccZ8N|7?#InrGZa5vdw+Uw216&SijKm` zCJ|mG%^$~hadfykNc@fDYL1X-`LJ72fV)wJIgh*9Kx^rhNSPW7mbXt0UQJ%#>{TXl z^}wQVj`+ka`viNvynEYu=M^5Fa%UFD;dv)?63!>N{c*hedFjf%D;C!rtDeTeJnfjc z(E)DLYXa30sSnB~&)B@o@SWGgmlJoJvU<GIP|(~|$N7CL*OEJFp?@t!d!Ol9{tcY% z7aAT|ulRM_hU=0WGFF^lT~f99+4}#oUpEG2o~_E7eR0)dg}akKOn>Lwf6?O~*Vi<q zt!ypR-);ZrbD#a=CPoq0Jt6n2mhItVTFAfDX~}N~{i?p_j!Ha2iW4}RTo_dTD7<9W z6!i#BND$!RYd9z)af-?83B%<zA}ucGQ*Bl1%~-+{Bwyx!i7`_u7pR&oDS7<3;)dxr zBEJdzRt!5jZLQ4tvcBWT+3lvXMt+GDt2B#{KE7YSx_a6jhWn*{iGM%3b3Ee~_g?BP z@JuOf7BlaWiENMTdnRqFPnnb0tg~y%DUG=0J^EV=xixA8wfA@^-JY!K>9I=dqme+e zy_4(TnXxat0{-9GsZjOu3h$MZw%d=erLIm0{HR_#ziZuoznODZI&3(byJVl|B>x~a ze=7l>L*ZZT9q+My4UT8gnx{YM$$zENupQ5v!gPNo3+-`um6O<iy5C^!Mq^)_$@4F~ zyk~Rgh*k3S7d!$lrG#B}`LR#zn^b(k$7cGUt}Cw;S(iLKH>X7;Kw+Okkb|Jp!KPJD z1=CL}&oi6BuD3({+(N$qy$4fvh^y~E$|!qFGgqUm{hXwdL%hfri3Y`%L&_ZI*_=1p z+RB+m{CPahjl*S*Ltuu_d<SXwJJuP~7JT|J%`ClWvR~F!we&8r^u<xpMiL!XJgesa ziAXJQsrk2q^+m(#f4jtPOj4}BvMxOK*FLX&&Z@tK+ACN8*Ua7~naTB)`F41{%vPl( zy=KN1{QFY2%?z0mwSMJ%w#`{4`sWhTUs(&rub#i4&+*04BbMCp>U#u)?slkGI^N=r zv6%CMiL<zWrq8Pe_MI=;Y!2LQKk$m}VBz+AX6xpMoE4fJB*A}n*@=!fEE`3yuz6HY z5Sin=fFoE*r7AaLOVXm%7r8F9-PM~D>s)qkp<Y>qlUPu#&+(wI`I$E(6a+TD&R|$! zer1}+3GvM<UZ+QL=Wdzpxc}6u<z*HzX|paFEi?c8gxid{H$~}@$ZgK1KZd3APIS~p z?DyO7!OzkpTBY&1qv!*}*j<LQE4!oh7(Qj^&GUS;;Y`Y6#aoA#vYKdKs#bgF);>q{ zfniAy&tac^hx0NRC;izNm3?jB&!)rO8gey@{wZE-OVgU9)qHe?<NK@mtnpWzsuwg# zE%<pz(D?Yy$fA0SzFFR@&dyOyDYLYFGrK<{Lf=s+`N{T^MsHP%jxc;Qk4V34!KT-c zJ&kk9%Sy%^{ogZxoD4Ye+CuJB^S2sH|7V}8-k-b@^#1TK<tvFN|MwrC6IBo&oBGP% zM#Nt8z~s+;kC`T>f8KvS*o|x6{7>^lg1mp-YiHflCc-|!YO1OA1NUohg07XU)0{nJ zVrss^n@)Y66!q$+m7a+u-I_OMcJM!Cikf`YW=Hwm8&3P5FD_nruw|?AY~7<L{^y!V z`MmvTGF^A;Q}ZV~R%}0;zR5}_aQ<1jf}hpPxaG}?6!m8Is4A{u;aGisWv)xp3)QlO zh?mW8{hM<&R5<Lywh3%oaBq&SXk?MRf&4ogU-^m50e}An?M~zoDG5=j_7dn{Z0*ne z!Nc;-mHmsR)Gd9dbZNI+SCiF|1mT~SS56<fKJom{J%ZDWFK1m#-d-KCE4e!T=PkSQ z_h&W9Zmd{3Vb!w5vX0ZL_HNo@xcK>^b&88Qm%0VoNtH&m?tgXu*`wCp-^U*%-(6U8 z-u&~<gzFlw*g4+caoycnmgF~Uz2JU^_cJb9%YAjXJF64epBg;>s!ZTHm*a;`PR+Uh zam9mlrTJnrmg;<+G2!YGJME0VEj<?x2)jy2gjyWCsucB6cCud3(#{y`9~b*m)$*mb zr3Y~?cl1^Kw&db+uZOR$JaI`=NxYD;p!II*rdeOseNdi1!`4PJSXxJH@69Z;8*8gV zZ|tl-|L*mlz`3kfTRwhR_bwz_LH@PaZ<%=)ckZ6g_W8n;la1`B*Qiz;Si3lA`HrQ1 z$9uV=-iuqWJ9Wc_y>MkP)Ap1%6)^@{oKajkE7$MS<x+WMeK(Q&_zLdowrla%-*fi9 z(Gq<gB*m5-^4DS2tS-mbmn2?z969#+$^K3W8BG!H&F|$`$;>;eBBbD-9V#-Vv!u4z zPX3it?=h{r4}HwL4u?Iom2dfN>-VHH*<!Ob|Jp^rr|%W(HZNq%(YEGX|F-4kn$z<9 z3zsRc`{KM%^{(f2!Ai5^ldjlBe~VR=U^%-@n90U{YWwXN);%IN`cvvWICOWGsIy+5 zIBn+BQ=H<xe5!L6w{pz->v^JCF8c2d)4ls<Xq2{mty*h2N%LEq-#j0`J2qjBZ5RHo z;!VD|Zbom2pj>%TtaN%pk6HiuT(eg%+Wo?&rQHgeI@fmEsU^l&MICHx-Ri_`mVOho zJz{!;KX<E8+B>Eh`q8(91m7yZWmoPm>fa{&N!CpM(7*0kGj{xoI__%t@aDaBwJsU< zH^eGKG9Evu|LF0iBcSby^uEBntyX>W()5fgx<XcJmLBU|vp2doZSupitv9pF9a7Fq zDAdm?6jQgF<J#V*_OjkE`s<RDFLFPB-&s=^zLzC%z0(i&|A(J`-&s}le3xz1+-oW7 z8jE=M_`PecF6)?~v`#oZrM~+H%drlTMAqVfCAkc<&x;#>5d6MwH-p*yivpKBW>$9U zKA2Ucwa)5dy~fs;E;lz`bhP^M*eA~UYs-a-*8x8(&Ie^k-zeK7!=!lSj(_$8=k0<^ z&p73JE)mR_b3HC%#aHjQFX#QYeC4FJO|@FG++0`ucc?l`1>^B$!b}en9;)`Z{oB#7 z{*%x?FaMuA8rCs;YO(lCdE}&*<Kb~P@4-@|H|1hRe|z^ahM#-*cBf9O_`mBh^A4>J z^Im_VR_*SRt1@!?mRa9OzdBoJVf*Lc*nKa4EcE<$Y@&nNOKw-&Io3vd)?N-Tm}4xl z&+@`+-)djx*nK_Mr@Ys@BVX#<m&&%N=T&;%xoL$@fAaO8Tv5I$Onjx9Z0A0YtSzU{ ztL}1MIk92ogHArHo&S6q-+x(^dHwnAYTbWJ_U`Tedi>RIX2zhWzC{-W9&<g^)O%8X za`yt4Nk2ZloFbZd!CgYZ(zxaPq@r2=>C=?h=d`~(T$Gftf74f68>M7BU6a0vn;m~g zGkxN)3O~iB`o8H@%Uw2Bzx?<q{+Abh2|OL7QJ?$!z%stRKik>1e*1XUX<c1V-P$Sk zxhrpccvg2}<+lU1UYF_*&Rmc>vC8s8a78i89@h|#w~=L=yMOGfyE(_LLCD1RIZL@@ zJxl)a&oYa+Z>Qeh8$NN-&-W&e3s2m?@h~wXc!{li-;>*i&%XEBbtTHw^HBWr+f0om z(FO_!>-k&i#W%{<9u{N{WRZ8@?EN78Nr#37_g5|39Sv$T7Th`NdY`eohm%wA5s&bl z#}Sn+O1n2M<Ox`<uweVlyDK&p%ItJc{#rQa{G!G6JA}ATYwf+-EF4hsOuy#(g3txZ z;s2+H1_)LLt_=@<(YLki^~ztX!`${HKjQz;Cu+I!_O!2W7;D0d{9ZAB<O^&4Egx35 z{@M48xadW>ueJvSg?2R0*jBwLz-I1A{>TX}-vmW9R==tG{Bq*b3orjIT{y4gc+#&8 z!Hlt*#v48q+5d55DC=|Zl8=1FKUXZuKVstVa@Jk(KcxiwXH*<BUG=e!JO4~u-iFoI zCbNQ!<z^o~onf_0`L(q4VcA|Q>oT$9+js4m+uD?!uq-3Kx_C{E@2;K?_kW$M$v-%~ zKsxF5vtKG+He3s*PE|`dqT}nApjPuN_~g<V##=O)J<c3;u3>0CHpgVXkchj6(ff4_ zz0d9{%N2+yUSZ4Mx?DfX_oPFC`{8$ecjq=2AD#BszAx|Pk<{%i`E2k0@&<TUGTrOt zeWiKH$Jn|;z*o7kYNp@&x|YbUx~MDbMUBr&d{+)QyJYeFX`-*T`xm@cobPe|-l6k) zeeRQjx1aNok?F5*>Rf+%`&#dt7eAi~d-e6=(Va0xuN+FhTv(P<_31#xs#~%jN<%m2 zPSyMG_a&G01KUr_AGs4_3--SFo_AgOgY|~k1a+Ac8W*;UH)-A4ed69N1KxmV!M>SN z1&d-Y*o0)tE?7LZe2bCf+Q#nFYnv~fE1j1UeM(bUA@|vhj^)MY11?)VC|>EMb**zv z^Q%iaZt0(Izs|pu;npgZC1<+DR<Wz=ZR^e18%rm={FSEHzlM2*`{CdFgLl>EsL%f> zUFB-Ki$PA~c23*9CGn|!dfVm}>6Y5&**V?UT6IZv&aCSJOD%s|gx}UYxHaWnRm_3o zUAIbBnu_}C-H(~5cFfX5`)cOIiwATq?#JG{_nfo;ja=FDO_lR!J=96uz9OLgEL(=A zQtPaV?<F%9YO1`vawAO0@x#=xUa9vsADD9-!wZgI?`Th$pp^UNg}&N!r5@!CFD&ky z`B3$C(T)DAQ?A5|%$gtX8aI8%-6InxJz&2evuG>ZvBbm${|;(ecCXeI+&c5{9JW{Q z?YHbWBNgQ<9iv(Q_w?G|Yo&ZFw`#4u)noN@z50IMtPgr#Nz3=G7yg@Y`euOH6w_V$ z4Qo^F6LYNp1%3SPy6MK}3A^X_>A&o^PyV^DbxQ&NMfWM6UBsf;yQVxoy6th3MTz0P z&l4KXZ++4Kc#75uU0sv!6I>o9aXZ_Dr6hjkSvBw7x?|p<-E%n<gSw|~D{p7}?6`Q= zB2%rs_E&|^^KR$upMGiKKVR9#b4!jp9QMyJ71w65Ua-k7Fl%w%`8DTv^6(^=SoxSK zpN*R7aY?+)D){NUCjo7jC4H-YbRPAX9T9v>xMSB2i+L83tskl;)iu2kSlh8)@M3~c z;@qu<Z4VYcS)6xx@iym~$4!*_ceQlS(BJp%t$gC@8-g||-ga6$a#LqN3_MuoF}c#m zsH-rm>rN}Hw2SuJR<YSkGmpQp{jenJJnNw|?{tmXnh#p6ownv^|Kaeq{`OlooLjwo zCySik$rH6T>$u+phi`}2Gj-Pn9gLSha_z`}-7*8MX3@)Ewx8UcVZBB0=*hNSD|XEN z>oF^0k(Jio7co3@vm}o8K0ExVfcqsw@{1{lWb#%Ruf4WGN$2oZm(&xx?*y*C?6Up+ zYneMCPp$+U-m*KgG{1g^|LH}`691JYTx48!<<Yay>;G3;#hqYutmA#J=~2gj%ehQR z(^qw4+rm{p4s6n0!|QzZ(XCC6!d&gX^IR_{CIyO2JP`X~$Ar1JXLw!u5hF4o=rZ4m znv-<}8K<}JI(Txy-P0MGSA(bAll%B{5ufc>6W`Yn^XGn!yn4l1<txL=)V*6|Uq!kd z3o*|Q+`IAG0@nZMGYqp7&t16tX4B0B!cuEzHGQ9`y5Ie;e}(+wBeFX-sfg$mwKmzZ z=P%3QxV^TyY;D?It7^`l?{uW9&nG3$o%?B-*xvT1*23-EOxdP9Sg7);MX2(g?&eQ6 zPrq!NYCbpS_dn74pmN7aR{~b)2Si2Rc+6{E^2E{M-Qtq6FQ?Wm|JU7hDZ-{~`T0eP z_70P_GxEMJv$&IH`ZaOV9@Y$9r5QXuk&Me~-ID))RJ(9y%|b?##ez19LJeWD@dh62 zFTC@0%+1tpNo=&x$r2ab;IpGcV#>8$d${d5mLIHO{BzbQT|?rF_<_m{-_}KKUy`mk z{1(^cRpn~_c$-TpGh%1N;&8e31<#rNgdTWi1{H*_*PS`xz_TeKRlRL@JebX%6td<- zed^;6vRZMo+G)+N)&E0zXG}Q$c6-K3<#tWo$E6ibJS+d%{9JWzMc~8&>-z7zC!Brg zl9sS0+xLU-*0z7o>{m?)_ej3<m-Q{%2dhfu7Key=9~>Ks<1c4@J;(jv;O0cVC6C{T zA2@#6&Gvb8$%`4TcXhAiPI`31YK{AoPgO?)*R^eqlX`powzp}rXji3<amcc>FVh>c zem$2;;H!wakQX>t!QN|?Zryb40}QiLeAuR5TVn59)N^-*lBt{X-!P#Xr^W5jrxKDm zb#~S<{PURoaNj+RpDzyjpJRRV!O=ypLHsmZ?2S(|ehUcy<*DTs2|0gY{xn0?)Z!bt zl|Bvb7cQRX_#knjZGNNuCYG!pPjWA|`OBS3booEy>pwxE*~|VJvQ2vSU;UlWgU2h* zvBa-mwR-)l#jAep^Do_g<yF}04B54dqt~9^wdVAs+{jJ3H>c_D%>Bu7CNXCNXLwV) z_Dvrn0R@4+gq+jc#MJg1?B>bgNE2t9<0EF27{M{QbMjo3BaAwk_o_p6x28y*;oIF^ zzvIf)uc!Rq|N8g-_rCA7UN>96OY*AS;ni7w<=->mIZwRTU0t2()*QL=>L#8S8*Z6= zFwWof;?1v{no(=rc{~HsKkjsI3lLnGV|VUua1d+jBJF>l=4{wHD=0uyM)%^c)5Y9Y zMGt2vzBnnTJ;zqhQhlD%9NWfwx`oYUzg|2lkMF*}xANp}^Z18%-?oNMWqr8n)Q2~j zR_m4K#0PTT|10Fk^z_dBgVtZFI(GeZk^2_8<a5qk9j+-~^ti0b+Rk}DJfETc@7?R2 z4DPJY{Jr(uN<Jv>=r)yjv!{o-sQG-}XUQj0t*TFop3WBKD&BWmbd$z`e{1CJzwYS@ zzZkS5rY`I$=WU5&V&5v1#M(Bx1e}hWv74dK+w6f<7}w^z9(ihaS{m0_9p1pYVc%nx zH9Eh8%G3+l?)uyeVAIv!wLe2Ru5787y+X6`#f;>o4U=E}DVrUx9<0$**KV5-q~XK3 z`*40pgGHCA-@*MSEJar@$#h%2>q!~QS)OD*D;dS^piIt#hOq{}y*Et%A)2Tx6A@;p zW_@s9tKZJ~NkJddcSJ>>?{rh1IYVo^lX?8qy%S#Uu+G?eZqZ{OF9pj}GyaBk-#>Ea zu~xU6&ichKo6jtAC_nMc&AQM$XSw(@y{7fS{0~0+syexu{57dO9J%yz`pX4d3q<C5 z&pUk1d`0Jly;H>aT`Q_*){1T4QoFCO>VmA3twhmcxtL!wi*|Ddz8BrKSFoh_OpDDS z-Wzknrk;{&)cx!maeD5CR0*Z{6^l!%-W@g8y1?mP%-*Oa@z45-PnXEmMs4*adm<%H zS$Dt6TJ++-tgh=twIB9T&Ri@0Cg|77=H$=5aZmR{Y*O*|l>5y4QnD{IhGzyI`LoNX zb?pVN1-oy)dbTv^UT@6`t`+7F_y080TzXCL@CH8Lgsz@RTUn-<IJGfI7CSmUh`Etb z<~4&`a?0iOxN^NeZZ|X}p6<N))#eYsjZ*mGxu?|~mum|Ycv))yDW7%1?Z>_1B|W#8 zIp0YzKC_#-*Wc;POit6lj&vQx;D6mLvJb`otrT(Ah*Zs7G)2=>{NLTpdD52uR|Pt4 zxU)2>@44lx{hRK*shofN<>#u6VV_>S5q{ABCAP(1!d;WOmFJa+)d9!E&6=qNhVGpz zMXX2ixVKGyvDvcI_WP28*T-f*6RvjE-1CFWN$^kI;SX)4CKoJp_Jl59bgEkW?YdR> zf*2Z4Wo+84V*6|I&8^St&8&X}iyprqAogOTdELKv@9w_;^LTc&YLKRCXwu9=+cgi@ zC-U05G;fgm)O4L!|JUNhuQNk}<y4P3veh42C6XnhC%C#NuOrm$u~PPQ{pXKUpX@O) z|McMcw^Q?qyq0eM6xJ?v!TI&|_0uP;xtp?~xTxrL-K9;x@6O+E=yrOk%GrWd;Rl87 zt@-Eu=xho-bjwTidD`xT+Ws?{2TxDZys^m8QTS9-JEvx1YrXSH#~}5@W}y>XKixmK zzkPG;yoUK_U3b1+8Nbc;|GLF%7l$q?n^oD}w~*_y;9|>JdJVVzRx^5~bv}{qKlks! zkItLR_pg64#bi-O=y@4?Qxlu7cP_7fAlJQUs)p9tuN%tFKfX1UW9>^O^SLG&o#Gzz z9&k$4U5J{xqiRFZngIKX!!ci2d!H{k@Ojyx62+4rHte38rI48&dr@)W7CvDWPs_*& zeX|Z$J1_6EXVzw(&42Bqp+UhTi-^xFoE9(9+~FMe^-FPZ0iVp=$p-{~3eL%9?@avh zv+Bps>pwo9t$61<LG+4whW10%nu>RZChuRgYBOB(p3^oz=!5bsPSqJd#W$UMsxntN za=Mk0dgT1WuZ)c*^{@EvY3SB}_2ES(%MHP6j^=Osb#_h5ou$SrHKqjd?Mr?pt8zqR zYoPnRbpgsVmxUep`a>_P=a1Q5`|wS-m~?ewW+d$0kg|2@hjf+5^HX&ut%;1iKFQjR zxpMUs(~o;1wM{j@%1yqxIK1KJdfi>(+yUFq%1`|L{^tC&Zt?rckt)&VXJRKDQC-@- zna%w1nuBL8vNwEOQpWLaU61+;-s$PQW`3z#oL_jX`k2C2SAR9K`LU__o`Mh4HeU}} z@cQA)Y%RZE*6UuszH?jjQ+dqo>pRzLySysf^J(qDd%xpu&Ud_C9lx{kt9kj-tZnyq zSAA{X{qU>Zmgf1tr%ds3D&SplaMF<@K9jEnvn)?q=J;z$t!&Gzl%i)c=ic_HG-{=~ z-}g!V5T4;}t>4tzyT(ULw8u-da*>{d(87bcM!R^=EI;8du6m1^RY;UQeRlWsNRbFV z1Fx*Ne|cs#&uI<ztoOO3;?UA?ZDpXv?)MFEqut*Kr%jtEV;?+={l7ry<tGz0kG);D z$+vmcltq(_gD$-gh&JUFQeSfT#$T4mhdWj+a@}Ih>g`e}s5V(w*|pU#EkW~5Uz1MO zh8s=(T@t_8{)Ks8I^yYSAFd%<c<8cq#?mmu;H73+PlQ^-czJZ2ms%AUR%hOQwoO7g z^})a9X~kDpe_!&ue~tDgvv;wd*QacZS-m9ugIS#7<2h-~w-*KfS(cVuK3RQ6SJYj{ z?IP>mNGY#Q`x{rhA$ilzoRUAYp2=&s%(!X0dGi&<8+Oe{Y@L2jnY323w7h<Wwd|{R zd`mT_2$uiRS$Og4tE{tAFCUl_wC%h5^F499YERhk>ZrdEd>D{$u~jR~qO0v{cvG?A zohylQN0#0$EG%7iUwZE82jUBQc8FP&xE~R2a83Nk^I+<t>kqaZ{CrR6ruFHq%MW@6 zvakAXV|sH-dFfKFyk{4dHEF({o8y(A^+oKP?28?7OG7;}c22uFRW6@5>hax=uP$yA zQoYmd;n8^~;O>59%ZlF#M`E|@O}uk6ykx`kb-AW))4Kzu=eW&v)&9zI=iaWyOP@?V z*Y|9dDiI5N<-Jb#e7<h^&rh``*~VGDbKK@XH+Btwo4-!>{o0U;C7$p7EMD&|_VVmh zaS#y*47@M>b;IQ)C0ZI21tw-rvdiY#Jg+n`x<G1%-{!-odM711@w{kfx_sbahk?-9 zRhthr>r{R6ajUta<Mu|l`I1NNzRJ(JHFYLwkE;qeUez2>*1Y&}{lX_()B63)jL&|^ z(u`Rv@<4yfJ>kNiU2|t$-*W6`?vosrJ$E0SweFwv^kUJ}H#RZ}YI{%TrLU}FEm}D} zTXg!nZ-JH5(^`!uvYgY6b5Cgz3}dV-vkDQ?3cR`O<h02xr)+sUf;(Aa?RZ!Di}6W` zvt6y3_p$ZODb6onUh>rJ5wNwNswuOicW1N4YuSn0|GYd@`F?rpk}DejH*DCxOl?-) zuZP!GZJf6w&U5kO#>$tvxhLPo3g-VVWnQ;vL43OTZkZ*)3llT;=50H+`H=n36BRFC zzU}u5%i>L|y>K`xqV;B8k$K;Cwf5I@M07Vko4Dq-?)96c|1P{?7Ft#Fq-@JO`8m5C z{x+2ftGXC(6kR{>=hn+9kEfi<3Z3dV**Bdtv}E0;N#72~e_xW9TO}p2Nho1q;HG=Z zU0xOo9~{=WFK;;Y;@YJbKXWT7nv3qfpfYLc!Fws*d=Jx`#s4Vn``meVuQ{JO^PF`n zULSaD-7Ndnb&iZjC|Bx&tkjpkZnGVlV!F4;H|Np4(u2>>Ol^L-r*GPltCMd{Sam<* zISc>y`tQ501w=nPcl_FS+pp&3xoZP6D$X$m_D#)>@O{2eo+oo|TJF_pyUniUdHlYj zCSL#IW~WEtcd>)#BRpkWl8?KZq-|c2XRSJQ){e|gZ$%Op?aT})K4o<xM?~27{OVx8 zOJQH`hOpJ|oRDqx+N`(Ic?Rbpg9Us+Tb!(-b*|2+HS=#^4f=5L3^Ui-rfZ*{yf<ZY z^P2lyHf;5?&BYlvCn#P&XSVd*Irh&>_Q<+++-9l%;(LqvX~mojrET25pJ-$%esSs8 zvSf<iTK?A|Q=aNi=nXiq{KT;-UXfA0?ddw%(rM4E&DGgs{r<)2)?5&pcQWGIC0=7o z+32k<cfvVJtoHL93KfW!o%q6h>h#wM|I?CJPYuq$_O7xf>9X_g?9bNaCf9kE+Z>Jl zclpK(+rxqWe}BE27W;N#{F}Kq_FWI#x~uH;xee<xvxAG0FMZv**!(`5)vtWno+sa9 zu7_HiU3gb&TFO7wJjOaA>dNND>uL_K64i^3{?AsFa`i+;{f33xPDNH_JgdI=EoAQT z*x7lyGBal!n3=+vCFM0wVxro%2a*po+>9AmeO9*_KkzXyef{;+sf#QcE{l#8I8EEF z)e$$T;!kz(=70q!E=*!LUjJ~ynV#eOb5dUZn648mq$Sqw6_Ip%$+E9UYt3!8YVY5@ zF=F`?kI*9573=ivioPebY`Ip>bENE!y@bwbn|<F89A3Qe@x8W*A%A~K?N;5WclTrI zhp79;{C91`7N?Y2wev=9h?Kou_u-@B+QTdSdhXse{xCOtHoJUf{r!cHXD*7kK5f&h ziETD(@*^4DFKK(v+`ws^D4gar`9RCE)R`Biq&i)mp5*ju>Z3FK{Bm_g#dSHy`T6Cl zioE|7KfCpD-nQJYe8s%`tUT?MjUM(*7Zm=ty*YcI<xC%+JKNp%9FqL4Glz@c^V7nZ z*Mey|cA37Jmg>h3*tbL;|9$Q0;h8JX3tihSz`yx;cHyNo+4)WV9v6+d9a3w*-wB$b z^;M_2`-h6+*9jpjr=8_F8PXHN#VT|`C&~TZnb~*ud@(QTZOU^=-?;F@wU1$bj{mgV zJcQGqNxbZi?ATMXxM}mEtsL+Eu6%zW&XYqd%VpB-^CCYV$Sc|T%FRgXaSgihCv-Vi z+l>l7=dNHYc7=z{tS?Spmi)28WFLoYadC^zvttKRZ?=kW_-Jhsvoh_GRCAb{=2oqQ zJZYUYceAT`S^9yOdz!+eCO214&hB5QyT#<4^d5(4j;|uSdQMJ!msbCLf%TJ##btA^ zCV%;@v+$eGuB6i~9o-E#xH3P+-C)b!v?ao4+tMrAznQdy8>ebBYkD!K{$g2jG;7@~ z<7vrJId8S+6z_g{P4RK)WhK44QF<4W=I<`hYmVO#aUs4_?DT*B#E<uO)%xeIzrR;) z;Z$$U-YCKMvvYj%^S-qG<}10!aNAog)uijLgy`w2N1YS<gj7F$U7j&hZDUsc;RkPD zD`@eBnfsKv_pPzqw)N11k}T7z_JjGwtTFd?{k!yOEBAsIzH8T>h!1@C$tmE<t)4lZ z;hBHxZZm0|I#so8@zw*pst@eDm+Yu(6!BHkZ0c9k)Utiuv`u5yPoX3A0b<kixVwH> ziqsz~u~N3-WKDiK{h7<F`CtF+Et<=oE-|OFw=r5zB$F{_!i&3t)776{x_4SCU7l^T z>4W#v3l?2oQXX|SYnAh|L+XA{roWr<{D^LVoK1)2$6rV1bd)J*`yH0;I2ZGeX@weB zCyR^2j(QE5m`#j{t!Jb7^!*MxNr?ET?cvmrIhR(j^YnMwoxis}HIt2dDZ23E!Dr6u zMy4}E3&kWmp7!`eUNG9XC^6jM<VNvhhqtpB+KxqS@xJ_dGhcjm&ZmzjS53aX&wS<s z-L$Q<HW%&bog6(!EW9c@`fl42@2wJ2nMQU+>N4E77smV$OgUzh#QJg51-IN{{bfE; zn~IaAIo|s>ZB)tdXxgOmLEW)vR*uKZ(6ZgHep$@uX#Qs5am3Mr??Kkpf;4f)I~y)u z{HV27z~#M84X<D@<JB*BmTRj1S>Sc%Xp+WT8>S1#PBWO;{0XzLvH2rsr`{SV@;{`B zZ;``98SgWx35Br=-Aj7I8<$*K?RZJvv2pkA=f@V_vYFOj7W@0hxjlU$3)%8+HS`1; zG=4f4BoaS&)3tIwk$(AT>56M1d<(a%<#fs{sx{iW?;NAt+xiy=k~FS<>WNx?IYH;C ziER5kk&R#adOLYD?GIf#e7?^;$u>G+ac)!bCkvUCeMdvG8bWq`6-iuB>9X`$>dGr; zlC@0h^`@R%y>#Vc39rRlu07da#Vn)Ax_{<Q|K-gdzuL7GGEc}KaPSh`Td>8Zzj8}c z2IC{mwM8W*Q=C`cd&uu$D?MNA{gKV(r#695L4$Ul;)PJ{OD`5VUgt`>nVxjhdF9UX zf`ZdGOqRrV+qHbXrdabN^v_M+{k*=DpG^_nXqb~HvX1v}tHw?t`{2%Vj#4rUHVcW1 z<S%NPdVVr5i{bZcnkG5oZ6CXre|a=jbiLD>6XJ!Z&X`ygE^~SBar}Yz<(pp1H&6BJ zp6a*w<YCQ=JGE2yOzU%S$&YGz@yPSm_Ljx7Eid+eXg%9Gwe1<RpxFOr1^)Q-&V&j1 zzcwk%FTJ{R&Xf7;Z~p!9?QH#KW5KNZH$#kBJnMwjema$`S(>`Z_D8XMYP^jxXXL&# z?_~#WZ`o?NbK$kpFDDj8J04#Z&Aym*@Ac9yo%_Zi_bT2>o%m!udFku$t-B0Q=WAs2 zL<*d}9<uWk-#Hth-1Y0f?s#QzHorYPSU+a3{Be`}8X335F4r6mk&D{*Fls`O$Pxwq z6I?|T?b1KS9jMw;CjLNaRgZP61cO+V&o@i$@0$wtpE&4SB>Bm1UH{iRA5@n7E}0m| z_cLIfj>k8V{ySTjP3XD5->~@pt%Q?DlB=uoq`X*nKEC(mSjyjkt#_HW?`YiC7WLuQ zs^zTvuD`ae;+Rl0?fSO6fBq_luc>-{cQ12&t*`N&u)9C^rk(h{anZW7siup0D|;?> zF8LK^VSYc->xbx!584I~v;DG;D;&!9yYP6r@IE%7e-cVHyfOaA*U$TKf90*uSDy5_ z8-F~qZh6_l*P9nkyXf+G8e9H`)Gbo6o}V9H?=QU~|MTVD_W1qFl}n#&{r$bRJXyo= z;{$;`&%*s}I-1na)pFgN$im4#amMvuuly=ET-*L{N-g(Z-ptx~x6^X3j!xEE@@4J( zQxEbl%=-RGv}9kTf6j-#p!a68W7vNFPvX^@HA&;?d;_b=z2>_uW=87GV0wDx*kP}r zw+4l3eyTsSXF3%`Hhz_Enj<%Dih${nlxdgU#Z2~XPchw>n(ozm>4ikl_hbGZ+qqud zTcy3a`gBlNPXLo<_2UUQws)Pnx9aKCy`uBizcD@Jb?WM;nYT^ZwoVEA^vYcN`jl6` z6WcOgu1bk$?CYK+WEsA%NX4!oIDg;Py8FA-4_Mn=KNDHmDq^(wV5Z^9`x$dU_Ykb+ zK5MpK^l4MrYfIDDB@$e>&BLeW-m5<T%Dw4@h?-1(<&4|;XN#(zrrw$7CAs;*KhBnK z-vx{NCG7>>9y}MWKBc7eTb<+j{o_0A+@$SK@|{1rhVS3uHS?yQsHt9(RGYm~tgBY^ zu*j13Y~k$eIq!~rd}f=GtRA@P>C8=6J=d>Ohz;4bOtZ<Ud?8z^c0%*IJ=@gpOTO>8 zlH>E+@nBbWmGYXCT}*N>?}~LKURzYMVu5DX#4Mevdy5vX-MFl#+;!j0S6eShb^B!} zT#Z^D`#xJ@t@g|O4h_v+3VX%Qy*hA5_0@_a{EVh*S*6KxZ%t;*=DK7OXu><sC$rZv z`pqJhM~RV3)4PkL%d&JItrl3X-}F_4+taqpaPsFBmcMmazP+)WdwzMTdS~HZjrD)m z`Mft;#38x4wV>K#ajotS=T+scbMLJP{u^sCcgbe{iJR{;2`{+yxK{sl(nq<oR%iCy z&ABwew#Q9VhGl=)v8WU8X2vU~$<O?4o7$!_MXczJ;{5B!pU<>aG^l=Rk`TP=&@TQ5 z3pDQJoRjnqKTsOeaCXOQyAuzTwp3oUh>CbWUGeLIr>|m7)Q_g@n6fkT{dV>wW?sRq zAx+o0Q#Y*IZL-(!>8{^q*(aVS`BtqK{UgR&J6R*7>*n38$yX2Z%ib1YXI|aUCu%q+ z?qorjZ1$xS7Rt}pz3Ix4S(0(;4b%Udd6Sb}oBRxaM>{YIyt~DE{K&bT_XBS~$O>V4 zn&fujvs2-U^RFtuYRWFu`fnh0^`c(*sro?kX}>n_c+%}zHEl(e@5N92#*ZFb{Xg21 z*W>rMGLEYwbzRg==?Io<x4q2n8eiG9TmND5&VtWBY^CRX?KIF<U+T5<Qt%wT2+Ny~ zlzByYa}S!De`lL7b@SDVwR*-D+Eu4cg-x4ra8;kOw3f}ugR$GUZmoGdEw<KBa&f9| z+LNMHA)3O<?9!obevwypudmKn-DI3)Cj0hd)#~s?g&`*2HJ3*ET=}XLcwK4Hvj<(( zr}oUexs4}q@q2~9#ro5gUu`<-ver@YQrdTK6Sw(Cg`Z@6_&c*(=J@6(hELu({B7DE z?X$|;K4pTe^HHNK6$jqCZ<AT_Ft@$dlJB>WV5#-S_zNG7c?e}!oRs0sf6Bdtk?XTb zW(!Z`%yqrTor0|XY)f79G<Re1=DgqDSNHsSb9vf_+mfdx?tc1Kb6>CU-u_MN!YBOL z*`e|6eZ|jh`MrJjtfh*Vnq6_0+2Ydn?v_DCO6iT5YvFU7CO=p%Z9aX=QJ-HC;a^{5 zZC{#XF!!B)+YPgT+Z)XC7<~S^L~E?iO!nPU?RqM8rPo&Ru)Hkp=S$nQ4(Gni+P!z# zPVPT?H#1LY7h8IBaqCVj-JG*vlSNu-$dsu!?@m>myjNiU!nduuHyNWh^<;=C?Vnq4 zFm`2LS3;yxXBzALe1iyKdH2imzy5A|G2`o^oR_O6F8*hFD1C8fzwy5>?UH|XoT)NY zj?OzeK_}KwY;}DxM<9peorRocJ@>coOh}ClP@XzTXy&9amQ_~CZ>?{A@<>kIWt#tX z;l6~N#~XXkPOderyfgXSs&|t%oijT9LM%PkS2A+ypId8xUq2G6b6R8To?8i5J+92z zmGpR_nCTp@i}z~JYUfF=ExNkqUTyWy7uTz5_r03>@S)+-YaF*%NN)=i&ryD|H(>hL zUE1x3Px(p(aZP=zWIpZtbk&L(L5178CG&dD{XT7!qOns+vP_icuKmR=#i6+kr{l~2 zf6J{mo$=o}yVAdM)9#M#N2|3a*#`DK$*=etA%4e6en<X;WAkNRXYGD{)%v^L9?huf zl?kSM+_H@M56t{iY7xk#DC^d_Zq2{x_OG8<96Iyj!9DZRW7}2d|BiT~`$YPKkXY3T zTZieN7ODrG;;C^vRcqrPVVTGD`PThQ+FAA7nXJllE9a#J7-_csTmId$*{kWAfx_~K z|K^!nSHA2|{cyYL-lC}|w}{Q#zQO3z`Ry7F*HRz#M77mTnH2D1!J;>p;xyhod)A@* zVY^myt>V&u?M#*PdY$HVInA3Cl&^82!tcOW?c$xb;wf88`V&ve@73UppZlcW>7@KW zevdjw|LGSq`L#>rCf{5-`K+3x*xdRskAuBI_aa|>60tOGzuI;)v*;V=20oDroBR_k zb6#vR&sckRP5F#ot)eLpSpqGL->KbBzvpI^pz&FGr_p|?Q-7K^H5sXV)@GeK|A3Kw z)c1YYz1_`c+y7IVDeuc+bU*rg9h>;Vv-0s<&%~cw*4?^q#r*D&_dmXQoNar?#MWx& zVEKHn>FZa*hcovZ+ip7)I_JG}(tV#rJR%m&C*DlhYPjX!jW&r0(}I%NiEit|S6Hl$ z%MLmHC1B3fuOVWl$904_Q%jmNHNGhd6qv;s{<faPQ~uuRaiYtd-5#$VTZpS43V0P9 z>><s*)NbM>p;f2&7X?~<Fr4y3KCSgo>ZLgGwSO4As-whzNO=F^7hiHP^u>9x`Khz# zzn=K@drr>ntI;nnZaUbOd))2QEG;H2P2L9&CY-$UaoVA&*3oxD4(2ky&U;Z{zpQ`D zRP(pG8>W6gq8%nCeNane(!J?1+kaoX)@Gf5_j0^ec&6misO6U;w+6YL4e6DOO4QVN zb^p3-uI^@b-NoC#{`#C{HE~Kjf4b-2r0hJeEzhoXUc2){^Yx~nds-fqub+GUl*!Js z{ge9Q=H4w*U6uJ0rZyc<`^WojP0Qs8_d|+LRXYARSv;w;DQ@NFk4-C<cgWqSpS$6I zjf-L6{Hb496Z#%-+P|?~8vAzB=MVjRp0G}8@-E`_TxwD2>FXNU81Kb;->g^ld~m$N z%gz3?oAT3rl0!b#v_&bsTzZ<T>gDs>CD!r(KHl1GK5fUVw%4b2Ki>A?)$KMm{;zE6 zWmnev?~0R*vEOq}AXi^rqTsd``>MyXN1t_`d@FpQ;LYrLU!Ju^_<OHC8xwjzFk)|} ztK)(~4Z8x9wDp-WoOWJiWy|I)bxjOTD7p4vwN_`OudC|Sd*9~e1%_Sid|c~r;opJ8 zbMvnVY|Yq`-Sm=wPh8~F_SWQQ{HZ&e|L)zs>d3@*zV!{hJEqE~aUD;2#=n{A&#T_; zla?O4ZDqDU^Y`DyKi6Jm40H67-0^l@hW@*on-8&nNj<r(iPyZmO6l-@iOkzuR~=gY zvypdO_|sEK&Ffa|-BdYgjo1Cs)B75QTH8XSWvaTx`h-f8o&*Rt-FUHT@7cBOA8lsX z1nuGUdbelR)P)||EALMK`f{-?2Y07g;v0z*N)|pbDHlDRGUu|LntaR7e$Si*>@Gk5 zUaD@Y?-r}Io_g_{;(7k3CwXcfc>R(+{4}rjWV8LQm&Yz&54k4y=l1OUrt6bgV}IYe z7IXdC$@lke@B6i@jKA_nqrL6s#0Mw4@BhAb^szMCyj?#wyt=WveYN%b9~bjJ&ieX# zv2RPehUl}E?N5TZgpaR~sMf#R&!;x$@Jx+~YyFNc`QTe)^-#O;d9bF++3&_vPGvsY zXf1yyo>63t_3N|j(cAiVD6YO8xqZQH%aUmiwN|ry^%GfL{%b;&dWq96t?<2@ugF!0 zX|znS2@E`WxqYh5!pV{mM&Tzn&nXNm7xk+>VHG{I^wsZ@vlXoA?Yoy9IVS4r^~3t| zl8}R{Y-QKh{{K~Q<wjA;am!5{k{P!vcKazN&vn~-IVFhs>4m-5d)p4r<y>$6Vq!60 z^RXkDH*EHs+LhD>-|am<?{00}!EQ^|70er^7OmNmIz6+Rt$58Ao^6-@31;U0>iMwP zLTCLouhSf1x9pR)`pa*+Wb~Q&`|4|dWLDhz`{muQ*ww2oEPYp+`b2&|_iT;x{l+y@ z%ZlzT%wMuLL^rFh<m1)JUthnAD0smvY+IhU_L}uwsjc@izub)R{`+%_QGS*$>!;_R zpH*LI4A|Ov{gd4OwHa6UO}q7Ro>tou?=a4PHS@hxw#a?He}n1&%FTbi-_%szcHvN) z*v@s~H|t$lY*ZsMXNpWdSy^Stb*6K6mFs%D&Uy8r>yBTG`gx}Pb6oBEOI7|?UTT+R z#$A0mA^g782NnyNqO<>mCruVA*>+SpRaR~8>Ac4$`k!XCKDhC{U+&W%pWPOx)G~OV z9LV0ZYyR|SmK##yz6Z|;a(Vr)W5K%Pdnz(w8CeS@MO_ZsCyBgq+;;2e<Cor-7nC?M zx7hxfBpmB1^`wSBTr_n>qW9_NKYkSImCuu`{MqQf-QFtl=q#Teuk`Di#lrG7&ECr^ zoLl-jJ67n;i{)Q;h}vwsY3DJC;fQ;Fdo}CD%l%V=^o5e%_`Fic*)GHNN?cQ;PlMxK zqtfy<wm$!jL|XPWi?r<f<5hD@MgJq;Y}d~>Uu%W=d0suyu;Rka(nba&#Y4Ng?Q%D~ z``@at;rzAym6<y>Da>D6S7XE){q%pxj9<)??$&NtEux;%T`l2RE;sw(|0y4r{cC8g zkvDp*;g^<jy7bk5XL;REKli1}?W@k_JuFqxel;O^=?(YSor>4`YPP(4b<{4Zf8YM^ z&z`f$ubnlK?SE6hSPrMGARA8}=jll<VU;&s!URPWO!#klD=VnGik|wu%zb0S*AsJA znlGLor=XnCtiL3$p!-?a_8H+PblF(iuJ>Q4)V1%Db#)8kS}I-U(X}Ap)$%D!(=>w0 zG(DM)ue$n3r09mrFQsj-guR?3HMel`OqzaJL1UHLw)jN}v))u6-f4MkgP^gx^fX;= z&B}Nd%?+DXEPIp|#%bRAc<15k`4Zg6jn2#NVvL)A`NkpBxf}m=MlIf4ce?A;zgrU` z9q;`-FyFstP2HzQhrh=kxt{K}uhzG|b?NVS`_KNl>d&wGhxhe&8P!ey(k6s1a%inS z_`aNJKl6{b2hy4Av_C{Ma4pGX`njXLLL}OxZS&hje4UI;rgjtc(@vidpKTN0b8wEn zS>-;7Jtp;1lO`O?bZb4s^K14)m)pjBlA=x2Z_O)yx4$E<@i3ouLT9_>0mV>{PgB;L z&!5Y-NoSryZifWdkC-1z3pD-iOZ=<8*sw=na+$?yEzf!94upGLv=;M7wM;!3{!YvN z?;pmc544UeIZXCwa5?5-zngvMsm^&tGcLs)tzC3ZpFL6iMEL@Z11n#yIqk(IaWTgr zY4*O0y~&3sO{|<FT(#s?<)^eJ!C4a=4eKSR7`|U+$UpO$>!s7P9u=0{|Nr~K_9LqA zH(z}my2tijY?$?>s5MTr#3oIfz506Ida(uXx1B6bdHLKq{)G1Pxom4EUX}P`XWX_= z`km!Ic4zr(r(+hpbG^bI#j?|gL;6;qRF#0p>BL~M#i`3BwwD=Zy-m_62=Z!a)jn%= zVW!i?HOwC-GH}hc@$V`!n{CN8eapg0W`$M`Jw0=d9ju<nd{HDS*5uKK>mA0P&AX!6 zt^I?0Crt}mUU1=hR>SgE3tN`{9(~5e7Ekp1ZvDBo=RIp$@RVJX)<=EV?V#AZiqW|? zG9<QR)8GF`mrs~-s<iXp$&hvaiZ?cYo41jx`S8+%eywHYa!aoMo782xQYI=kTF_~^ zztfGC0o>c!tt^5Tt^U@%MXS49IlfmyWkS6`hUkOh!j&vsS7jLwIz8ZLs%Lm|)A0aX zO~ubM#?3au91@NP7?`RU44L?Z?0NqP32bBBGwsu%C@I5P5Bc59wV#QI6><K5rE|(O zr{C@7%bnhu>@`iUm*=@Aceyftj8tKXEIBZ>w(&`af}&tp5T{5sxkAfdtU4*oM z)%1udJGUQ=aeFAl_tduidh5*nPxh}D+qSaaVco<k#fRt4<cF-8<z~oxVD^@CkuSc8 zSl_I+JpAT6%Z+<aInVripW{%&aPe^FHO1L>M;Bl2F;RKvt^fN({Y+1edlSW1uq&Eg z6P(^+Y8t`V^wc6zt@Zj9<3p386xYobJ+Zj6@$#xil{c0t-tbhcFmHL5;Bh(BD6*)S zGxU*z>_Z3HhX*F#ZdBX;xN_4Jg$L0tSr)y;yswu9{_>fUD!u!ogOk3`pObG{Ps}ai zyur_XN1W|VWntMqlRwi80$cMO{u;cW89C#T(Y+({jatOd1^?N0x<OvO<+swa|4IMP z6uq7P@jMHEeszk`!N@aGqUld9pDcK}VVCswbJiJp2ll;Kz*!mj<wDDzKU!&jeG8V! z9$)jHJ<<2s1F6+dY!);pv%3B8h+#3zD@fvEtoX|<_wjc@7gL#4bXRJtz|S2b+S3lj z8*6YMsuT0|Upa%};AB}*xe1R2z8AmYNEcYCqCVTaPJPe6S0*~mzU#WTDKbraAji`! z$-SwQ+vV>Y@pnFAj|$^YZk!mFCDN4r_|Q3*)dJ;eiaSg%YaW@~`Qk1|^e<DV4H|I^ z<iyL>_8&8LnJ&-DYI5TEPc|+lg#|3V85@fht7Wz*1<sw?*7v&GF|;uIV}+rp9$SFU zAzST*7k6-`95~KB^FfkDYnqekq}mM`rjIP;ME{qc+sAUI_fgdL-BG$*cSXN))m?e@ z*7u1fx0c>C={EWO>|;gzv17-qBP4i^C5Tx!a6S}LkdATsw6Es-Zy~3MH_v(5IHG6h z#2n{TQJL`JljFV9)1N$Rl|FH{eCI=>Pph+Z7fVX3SE@|gwR*LC=yJcgpXaX%ejXEl z;5OIc)>u}hfCJo{6~au^nkzQ^Nbh&Q{%yL3QP+xDfg#afL*}ME+|r=3=I7b8S<l%{ zT{&C1U}cNVy#-fALeHwMO4N%j^86B{m!DhOzx_s6(CQ`ba``^q=TE)4|L~*P$H)(F zUa9XZJ3o)<aQC9<jT&x~ge^<v9i6N7=GU85+<)$VYRzpvXd$&a(15+p^B>;}6BU=X z_(s*b0<rz`{_yHtyym5L;B~_GDEDw}&4b&`R;Y%oRpB_-Wc<W>gG;=&WK(I_<ozwG zC2LdIrrE67cl3&v(TBBbvt+k@j4pnlxV3L#m=T9}-zwE(Q75?$ar{5Wq4O|HHTs~% zzSwGB9l>nX*NG?9wjOEm3R!KyRL7|nx__VBm7~E~SB_5Bc=bs8j^cmqC%WP;u{BH2 z$SVC^Kjq=#U5cW6E=-8pa)Y~0GOqIVEmL#<_NcH0@1H)@*E)Id+L?eWDgM02jG7HU z-k!a$BsIP6J9D&|T|sL2?RV^D>vmNgkd(U{+;qS1!V5W5uG>FF>TD%e&wp6Q_W99q zzt!G*H}7~k<+0nRXSXEZy(-Fo%d`DuNo4I6i^INgr{=$}^4hXEA!`?Vk5cb9h0^mv zJV!Q8I=f)z)t8<f<zK7{5~A2MN)oO)Ob&l6)v)*l^M+R8=eG~!d0gK1D(aW<ghln1 z!rzbWjVKfQBA&VT>)L6~IqyUtEqhfs``4{?UeV6oU)LJd_&kZzJj@l!?U}p2taJH2 zb-DE$8}6>zD3m&(nj>|={y8r{UOeiwLEw9U)ZS?qx-K5d@V-ASZoA^fyf<DoT~FVY z?=o5A`aoB$vC_aaG-vYUyOUfm6@}eP63<OrygXU!oqW{h^n&G5{<~RrrZK;H7;@KI zzwiH&3<)`Io^qD9c4pa@i)P*b-2)HyJifTdRkByE{_NLv+&f}YUOl~}c)C1`XX&bY z5zk%se17wI-HVS#&mP4da5`|^YvuIQOP!ZIwdQSGoq6-z6<5DYTXb3X=K9u!@g7<2 z+900Op}RlN!t&-j$Lw_`tG}kODNWXX`XwW4%A$*#l-5c|ZQZw9{lfHbPRhapDz~E~ zc)#YoEA-RNmON#7M)vh?+cgR=B+h9?$t+SS*={{qE-t&Jtp7;XZ|+XB$yZgZc^5gJ zk5XN%Y%U~y_aO73nR<sLC2Zz1r5|`OX>P@zkH5U$yv<OL^V<`1xXS#Jd3=_7+%sYQ z>9beqHMZ8@@03*HKDVK*S!BH*Q|?nwkwmr$R=V$6l%+RVM&-P5JQnd&_s5Im)sKD@ z**>~A-E>3!oU=L?e_W1|)w%3A_2#34`-1|*?b;NsuVJed5X@UOfBMd~@2cDP$2~Dv z{GPRB)vvQZct4%y*4d=8W68?X-<hm@W%H{y%j|EQ5}%jW8SzTqS}?eK9#`1$@L2OV z`cIwLxH&J#IARsOL|;-*HAT~G67N%yiN=v1UMm<~li;1Y-Iuen;`{{t*gIwqmiI9E zIxm*Ys*zQfvW$=JR)1<1w1_o6ZK}rNt1rIHVcW5L16$@_Nss3Chi5z!j=tLUyR+c8 z&Odwq%bR@E(?33T)pkp^v}3<_{^8E#iyAMhJuR;MO%gUWdmq2)vD{f%?ZaJ7@0V^W z=y+52QTRomxbUp~dmr=3@%2o14}Y(HD>6Lqr>XF@lq-jWJe~z^b2xQ#qmB0CdA+R< zb?=_~>*lW~693GI^;Yx4J^kKW@+C7f@Bf?m^2)i>*QYe89Ni?gIl*j#$WrcU*OscL zFW9m0`1J3yQ!+D>XI~XM<8<!C0m}`dMQyvKzDgf0{#|@^Hs62lQ{VhL^0mwj%=KgA z^<Hth)@)v5w`+=eEbrmQwJeUATJMF}CZB%up@3!HiaXf}oVsg|{%0wa;WTmEtYP%| zzt7990WYLA3J$z&NSd$28+LWJ9+O;C^7CU+8}r_Hghsc0P&btO{J>u<v$asm=8wE+ zJ)b>eXohv&q8AI2B$+;cuKTc0{=0pm-I3CryAS--+w+=}srTixzc22q&s*50Kl`u$ zl(X#}>(o!VB*(mNzn^vSt$6;nXq~gO-*$hyb<jC}_xk$xE~neR9{e`piS!*?iyeE< zn_6y5`<%SD_GsL>*_?74W*)NDJ-DY|KHAK(?fqV^rAiVv<ph;Z^5wsFxwmvl`=Z+E z>`K!gGk0DKIr8ZHjvsxeK5yG_Ki#O3DKT4buFD)dj+Lb%LEH~-%YOYVI^puf<1vhJ zBD#s|Ug$M_cHL9KBRjip<<|*+7UdZ(Hvf5MX3f#$tIC)4r$+O?d?J2&7x#~t%_$#~ zUs}~PW$-cAPAPr9Z2i1~t?GLO_A$3zy`?03@SCV*>jUSHYl?q-%BwEOk)OqJ>Uo36 z8TO`1`}8l*oHm|}Us9GE8_bm<sqDL1=J93&9a)`qXJ4=~Kh<A*dRxA1XGzX~pYY7& z_On9gtoB&$Ke_6iV=TMevH1-)A-xWdFPwQ)F7j3A^@OF5MObQ1zS;S+_-56atx9hv zM82$;sddP`$Y}MP?zyM+PJGPTHK#RW<JE$LADC@)4ASSut$(d^SaPQPu03(jBd7hJ z6I?krP2yMS(UlhUEkeG3PH^7dvb9L&K3`o}|I-#FU)eBa-&!u$S%>89Q_GCqH}2cn z8W5}=*m%c0y!U&@C*3QDqxJYqw{E>~_3pxhk~h!Hw6y*3{BM)QiORxL38F62-VMw7 z>q>sh{;%a&tI5E-@}+IfZQ15#_k8P1><Y)4rs?P0t-7(xH|urLSC8QKs~*7xj~03a z&$l|NS+ccK<I0q-0RKgkvVJ#lZ(LUNHkX6L<oK*xD!)G4Ih~K}5u2&VHFqv6L&Qy$ zh@PlB)A?uYGp;zE+g_b`njz}bj+g7*^Z&n4@LIx=$ne6t=yu?V=d#c38LSUBb93y{ z@S4&6EO*CSi}EA9>3<79m7Ta!u*kWs?q~1xY>r<QGp(I|^-q6zc>i}Bo*OTv?^#=I zTYmqo>>cZEHTi)*b>8Q4|0<5V$MXB)q*Cb*6I0vGQ-ogU&6V4on!GOe*|Lp&rLlhQ z$5-_ooVn*_XauX~EW7`Lb?iTwTrS9#vefSJSS|1?`MBVxZLU9ddMGpeEsU%!ILYC` z`=y3m^~PBZQBkM!QZh`<&rPbDXPV!(2y$4sg0XAb&-h>~Cw<NhbFRHP%-HA5=I~;t zG#5YXrOmw2vF_*dZCWoB%N$Jiop}9o*qy39Pdg6shCV5L6x^{*a_Ww=f_931c5!V} zJMMfmT66ip#e?-M?%Hg-HqCt+AYszB(|AUq<Sn6nH4%+sa-I{873_P`K4mNS#Esu{ zcU;amVVxu3KHFmRiI@4Go(rwrR?udysG;E@q~E#5)>z`>H(s4?|J4>&e3k9(wXu!0 z`}!99i}Ef$&9peS@!~}X@kXV>|7%_xyisF!X!(aL$;|IK<SMV6Eu3`Qmrth9d&ifG z-n}7nra!rVoBx0O{pE2*&shIWZM>44TK?o>(O>-ummZgjt@+oe%HC}{J;FOL+GkJe z)Rd0ZKc`)c-MepJ%!JFYzD`lTCHr;x-8mBPa^GIRcy+>)r4v8KEH@S}%rX_IdCcO; zev8dXR{Qo_wfbvUF9~n75tcu1`PHp)yJp!$;hsHbwIi6j7*h)$`}C+ue^;**UY_Xd z)|RY!OGP4Q<GcmN!i7OnOI^R-nRc$8rRu<5t$p`4HmtXgJ$~K2YmsVBx%!7A$)<N| zX6(ylOnSe6#rD_9PnYegS3hQEnwZ0s_(pEp%oVDE7eoJ<7bP7qwR$Vhx%jHS^&zvW zCbK_+HUF<h9^EKk*|K25vEQZvRv*PCF8`=)x-09#uTzZLb|F7Gmpxj+-@tjNwKSym z%KU?ueoQoOyyl>tJ->C1YO>BO<NGaaqWnJ}M?4AJ&br;^nt;E@>v!=@+hTX-PfPsk z@hQTxNISD~jpBMe$*me&IC7%J5_5x79(5&cnNr}O=#aIwDtm?YyK}8Ni<3M3Rv(zD zQe&E&aPw5Wujjt%;*;O2@<OLa=NnuIlT6CdJ-v~w`pV3cfpc24)f~&L-hO|uL)Wxx zr8TR3gT<Ucj)kFrzcfdt_*@j@=4Jm~=)o-IyTm;z%Hv*h^*&D5683u^*LGiA&}b7C z)ITM$_S|P*mCe@szH*vmtVxU&No=3RSa#?7{-xCg+5MMI%P#kba9c(``OvI$sbi8{ z$E<?yA$!tOuT}YPx*c0oux`g;$<5OBV)0kSdwk_3qRXCd^9wp|z;xbwjob3eyNa9@ z1B;#?zx>lrc)Fy2l&k-mY5iga6O_fyt$bj=R`K<G@yIhipOp0ECg-OLoOVu&Z&~LV zX%iMUU)SmS)&uvu`&J&1XB7FVcyLC53ZGm?!KP2O#}X1g7-w;v3uW^Zc*)g$WWU?_ zpdXb-UrypY##2}-&=<+pC;2H>c7^-%zDMqcoZJuGFKUYBf1Tp>%<@m+ligkRfg&#} ztWUOo{9vBren)lB7mv#fbxhOR^lu!xuW`F?!czBHZX1eEGSn%}a(fvkCL55+Eb0Hh z@8G}F-Eze%4!`&M=~Df0Q{yF{cB5OiTVAd1e7CM-Uo_XP%Es@hwb#V9FDOrm`t{j= z3s0)dv<Smj9<I(d&-v8n?AtdbxUckQaj@Taub9XEZhzkG=rz0jW@^3ZPLZQ0PL*xf z*s<oA#FHZXB{SHAbhviz$#T7wwE2hda>HpyKXsg58)t4}C|79VapX;ZTZrq&7eQ+I zZrA(Pxu4olrSUbxl4a_l#om=N`vYWk;&$#;INf#Jw(4<}yWXpWg`z8_|Mm3WBVx*U ze$%yip^>ZCZ`qok;NAat^B(JG0gL?lHg4S!!~7%lv3q&hONna=61HZu7AmH<yPljW z->bIj%>A2o^QN%)`)qWd!^XJwT3LhiLBC6!B~l_`zx5&}v2A}?KEW&^Y2DP4=G_g8 zu5G;H_2`3cobJYJUMdCBFBDZHl&*UjZRqQ4(OJLos#nkkm38};Uh%5=pzF6bdHqzD z#JN3D#{;!L9v144dgP*75XYCC`bhJ}w3MsKUsFsT%sP5=@|v(Ukqj9xjidwuU%oVo zZh7kaVZYRpKZoA#eX~gCsh)$)(xts2sndjH(oSj~(B9j4Ei03`wLh>a*y&@&!>Nsm zju%tJSDu=#utU{z%kJ=HF1tNjQa_wppgz%*XMR^%#+!GC%(Bu<f@knOHqhRZa%hA2 z+X#8HCf(!L5~DZVy>ayh?+wA4AlJjcmwlfSKHWNR&(h!1re*VOk^7KySMY{ouivK0 z5rqN9Czcllt*bfRC_A}%=bZ;n`k1#*Dee0@JLUL~t?bMBzTGdW_)+leRBi6>DZSHo z>IsLh+q#A|cJHk?t62tWd~)~7Z{E7+vZ(xR>Tf>zE3IX@pIbLP+4;oM@u=;|tW7_P zXL{E^c)|NozLME@M&JMa-$b1YWTw_{>3lWeckRy@GvRf$v$O7ByH);oXWq%bm)<Wu zUpnpR_k*hS`~OuRkzN_2_f_@F$3(NazU&u5m)bJ_uQr<PmwwRei{<(SOa<<X-~HJb zqBoiI!OIxE-g<f4H91c6<rm$GcM3n!EXgwa(#=z|Z|3}xt!VylyeFdj->tJBnCtB( zpE=)uXf=D#N|_H=v_eZhJo^4(Yy6X-oh*AAKA&Mc*JysCo;m83NSn&x+6Sf|Oh1`_ z_}8;*_fEkYaU0it{i&;OJWx?<5AX}Vx4~ww>R-QE8<xL)*-`E{hjqT4=*-1@SNgUd zns}>6{r>7@=B9<2<-f8s4+X5%t$KcH#Xm_cqwr;XSNyk{?M%riJ-b@qLddod-tPsr znG>su*2kXJV4K%uU~tR)uGQC-GjsAjzYSi>92l3M@`Y>hns<JF<(2DizRdAwi@dic zJtArA@sqFCgemTR+#S8GcIlm$pQURj9Y6ZI!oT3lsfE>cYt27c&Dt80`O)f!!_uRd zBmUOyt+HQz>6x9!ZlRyjXW~x(cajP)6AZhQEM%E(z%k3RQtVEpQ^4l^SEi*t|4}(r zZB64G?ZZ}^($>YSSN;A~_tfv3Qw}YYlxh;v4Y9L0FU|9(GTeeCRCb^9f|KrZ-<9je zEnoj>+Qk&3rtmwHgtt{H&tTrKbiX~fZrio?;s<lA?w!B-zA$p{|FXCL+7qVzVct`} z@Z$4HRsWOT{yToeT0_m`>!hlB{Xf<F!{5h;y*F=?7byF5|KVTlt-sO_CQePeANsw( zyeaoc@00lp-p)U|ZAIXcXjwbXYQF#KD`sW>nYX-VEuXoic-x=CTc^(M6m<T(L9GAj zUh{jio5fGel@H@`W?Gcxy7y{qNpW%N_ETP5{|~#Zn5x>%xa`%h_=wfHPXb!Mv{oGD zTD$(d*UFbp-%F0=c<H`>7dO%H|HYh?PtL)N=eznQ-}gFGllFM~ygOIyQj9pNoHnnl zzV2eOFDJeFeBPJ6tBZmi%ve9g-TSq^c((kmO|RYcZT9PnE!i?9u*oEXJ+r`L>A~+I z`y|_nS8-oTSTSq!dr6M-*XDCBVa{we>b@UplE9{SI(6+_^<APyO={D&PUBkp>TB57 zEA{@a+3#1j?T)g&RJkao`XNtdu8PZQs~x7hpS536RX155<C6PaeNV%KD<{L|XI~W! z^q9Nu#f@`L-_zOyuLy^^B}$fCJk{xma*nJ{*doC3Ek9@Tb797|Wjbr7PON&ITbXU~ zn4_nhwKI6Gbk&_Q5w0srJRDZC=P$O-5h~MMBXG)p%hP4IWkk{!Wp<lns7R*UEor%9 z_G3-1%q2hO%<Vx-?|u)hi(=0#_j!6<e#MrM2cP99>~FT(x_VZy-}(bLOM;YoGJ*uJ zPD!e*5c1uXp78dW`=?1fI*E^xPCnYd`m@^_y@`r;OSY^zuY7XOyo#@)PRBLFc28C; zeZa3KmMhgHt}5xOZGPeN@`Efaf-DD5rTHASPB-=ZRKDTt`c=gX)QSz|#n#-C@MnMa z$8VbG+zpA#kGS2F={S0S^*VLdXQ#ZiPJETx=(_OQ;d^dVepIa}mEAJC-sMq`_cYl( zVVC27=9)LWaGQ3Q$M2EJ1@5xVM^!H*d|fBs_}}DHRl{Vfw=0D;uGu+qvVG8=8^_$x zcFiv4r{NacEGeeqM8gcz)i<a5X+~)LX4=P>Y+znzo^~v1VV6NtkI<}Y-R5+okb*vE z-Sg)Huj}O`FN*cCSh~<b<VuRyqDh=*r*7oQQ+%KuQ?RZl&dND;;j|s!nsj}x8ZOck zo$eO!Y4&Q#Ea~YFveoLBRWJFfKF8PaTwmV1j}lYGW-njt`fuC8d#~cRAHBRtLMUm$ z+SK!j;b+p7{8*}t6^|xNI>^20<h;2aR+|j%o4;9o^xN#8R<E&Z@zm$ChU(w57aKRZ zZC$2oAowY%{;HC(<I1)~u6+-u+%rpe5D9p;<@z-n=7j4P3ptv3Uol?sUuzV8EpB&3 z>gJvGt2RCmzjCi;!tJj|=k`mzEqnYj_ItkX{q*-y_7=v$QQ-xdW$%A|I>(dq?eiwh z{g3bYzP;@p{jC12^sU9Ov_tD1z4vD^Y9=mOU$OUi%gd=duRB#}ELpqNI3|C&RnUba zxf*(kEVnybA1EBW#of!VZ?ezKgZD!1!G*EKwL2a>STXHGRcYWeHokA{`zK$Stnol8 z^5;?atU9$H9|iAuEm|twwppU|>b{p2+UFxJ?ta$@GyAkD@OQLqe(1-pRqqwHg((-# zDYCGr6uVy`l>Ja3FR@s~^K`LY{G@rWT^5DT@-~}Pwzys^W2JoNgM`%iHsNhotzYgm zs(R=XG)r4uyr^_>z3=M_XDvlP|64ZKWOKmX?94S44e<;AR8Lu7ylZcE@I`T*vs-rV znyQ{Lt3jAQeaoD{Y>pC<su&F;&*$&XukY7?-}@=5$W(cg)at`hviD;pZrDm0NTt`> z`6XTX;WRazHF8Tq$aB&789U!B+<SM=Q8A8d6S%JYy6|enG4+p|JJhZ*7<W5+r1u_D z)Oq!{c>TgDm&835p4HI3Fa6n+t%9xl&?&ZS{5u<3V+sscE?K6L6E|0Umd<+C;%vpv zyF0TUmHCDLTsf`XZ3_3&+l8HKQ`9x$>e=qOo-~<ooWm~CGIl@P|H%ET{)qHnU%$H6 z?F5_G;*3(Wq#tfQ$0{^_XJ=O258fTDy&~<=QT+@xJ^kE^PS#>|(SL14EgfTwBfGg> z?A!AlZu%;g?lH-C4|z0u@*>sy!PnjA@7&;4EVX6TIlk79-4izKbLhI1<EY9|e}93- zw+4@}f3w%@QhK3rPVZpYWcjSflZjik*0d!(E1a_Y$#s=hru@v0Z>RnboS*sNFq`T8 zW5)v;Pc7ZE@YCK?u`=CPmvFeW%m}(0Yqjujpn2sPCh7k3k|7%zcbECSmDI6GKCp1Y zic@S?<P#kQR!mwrP5wmJ?32Gfy{VnE_g>DYvp-)yI3t#2{Qqs#=PP9^JVdlZY90KJ z<aW&bs~Pn)vtF)qY0Ff_7~L1AO7A-PWlp)yziJ-O|G24tes*7tnR0Ty<4-p>`}*K> z&sNoJo3$y!;>t&bdybwzeaaTUyI)`{61?Z=isS#q`(9Vv>@hOh<#RZ!zxVn+uRkH` zvvMC<<R*Q6@c+QMgZ~vSc7MLFHbHr{+v>*a>rGD8ubc63zQD8pJUojIWqO7gEU1tP z<>~tx^1a^A;AUja+mrLeURu`hhFq2{NZ8SGwtdIxZ7u)rt(f?r$;#VuLtp<Pjr=_Y ziT7h$Or=lhZczKNS1#%3gpBE_?@H|w4w*Wnw|tH;dllo<o?`BOW`6<SQ8kAR2Q|~= z&c5#ttdN`gVA{v?7VOc*+EH4@DqhEyFZB2@E$5n4?y^&_`8X~-y2)t%&t-0U=xV2} zRt9{Zub1k_U*7wD&Z09O%WHp4sa`jcd*{09v#WkJRot{KPc(b7tFypSMYOu+ajdj| zop7yO^`C!B%bL@Ei)Ap*`F-vg`@`qu(<QjH`~q~9&NRAaJr=#NNKz%iZ^eQPAC5Db zTLbpY67)))oqPQIt8I(L9yvxF=SeNtdrj%KVDI%yhL=npw;w(@G1qyurt+!h=U$3D zG^}1_GHJ`*=RHStgC{Rs<A3GM_dI#7@PAhl_HNIabWGxv#Ci73o7R2WXgQ;~c4eel zgtS@2*^X+hi|t#TU8}Voy$}}IH9@v>pQX=%K&9yZ59>bcbKq*)T7ItCV(q;2XjjSK zf(k8BY*Lk>HZOcQY6DK{RE7H=*lxSG_-X6+t2Pp$OE=qZ(-5`UlBKtR*{CYZ<6>55 z_^OEugPA+qP1d+RnOoLeHfNjF;y%75Rc9tRmAxwrZ}IM1ma2H;;q*IvHx1UP?|;s{ zS?~4<ul!qw8_QR{@d!R|6;v1ew3Y4Qy=ksY%WHlf^w^;<nxI*&@U-fZ(xHtW#w;J( z8ZIcuZ7*Kndm;4vjkbIXW$viLb2|@kNM@WkqkOW;?X}4BQ|Fc)JRg(tM7qM+HBvip z(fZ;g4J@l2{z>GXa9XpF(b07EHRU-|FQ1LSpYhFBAhEECN7X?8@VBdP^g4dF2mJOj zdDdtneOTwi<bzHR{Fb=;-^>nPv)=CLyw&zr&bOq4eMGgkiq2bhWZTxc8(0O4cwCl$ z>z{IJ^4h3-iDC=QHXP$xSfH4s%6e4AazW=;`Nh|D_}P!Impl4DK%9N*yE~iaEJ{%` z{;`@@u<={zsxXOby}Hh}6@1z4y3G;Kd`_Jg@OI!A`CXg!+J0eQ%=#@CgjWd7y0rV+ z*%LX+JF~YX1`0`Y9(%H7MywiJ4c{HUjEk9DcRf6tEj6e3W{w|6m7Ll;_9*2klZ=+L z#;eMyc$`ahoq3VtL$q!0AI1#ZxRnjROe?r0^BfjmKU*(fvcO~J3D)v|yBA15RaMuJ zOI3*e;cx4{QtjjB{2LRTu61{`A51%Iy2`&zs!?Q)ZRj(P|HTh<!j5@-5MHC-w&e8v zk{vhRNZ#C^RCRyCZQDKdPrqDsemDE<+NIZWG>=3^{eD<}f#Y26&r?@zWuLCkyZ>wI z>fP4g>Pp`)Q@;G~%dO_a#_r3QUv4#Da53xnZHM+{JXfcG-EuHXeMXiu$5zFeDPmif zOw8bC?Q#--dsWr3biYK2#Eer0XC-GQ`$t#Ivh~(9TmRJYSVR7H&q=<9&1<V8PUf1v z=5wCnf4+R?!}V+*{R|fFWPFtJU31=tnIT#~Ix0T*E1$Uk=XH0C(uG>t$)T}I2U-qB zY~)m1{N?MP0vCz-AHFa7TebPziu{*SnVPw8i@k659{&Dl`>l_ga?E$f)_s)zxmB69 z`gzOEw6<w7tBq${#y?NdvDsSq{=nT0Qx)%UA2Ye0lpOK>WJ&qzTPGanGwttQX7s%H z_oRKg`&QR3IqzOpyd*^a(Dl$$ih<IvT^=n`RG(<>b(q)U$$D#dUCXTa*E5&aec<gm z8ZIl--&4X;YN8pm?@hs<O}XK5`?~}y(yXkelz!M(qj6<EZ$OXSH?vEoQaeAYMQ6tw z?A>#g^GV;#qyq_)N~S#Nn4NODBs1mIk`rp)JMJz&QakBrnxN?F)@3@A3co*n*jUrR zB$Z#r@o^P*e{<+8?FDRK6B>iNPE-V3|C)LzGf`r$t9kb^&6`gW8oasJ#cy>yEIo(m z`C9Qcn|ycA@mu;y=x|`w9f#IMA5Uy~n;US@Frl+vHurR0?3Z24O#ikeJm~!_|5!h? zE2}T%4zrudY{ggob3B|F>c9C|&QxhOEDdN{vUBE-le605Tz+g*J7r$YFk@-!-~SVT zypld9yf||Ev`a5D_9`1r*pqYr9P`1v?I&it{_&f=)=0bD^7yx2R>y7i*9#^X7D)w_ zaftan2s`7WcfH%J#>;5=<^602u5aeMbb;;p?<kA=$pWTsel3@?P9IJTDp;*6e&XCw z<NCtWtLyB0TYq|29b5OcKgM)pRs6+cyEa`8?=RO+=CQI}yp`p1<G!!5T!K4R)n|Aw ze`}=}(ovfCDSE+{j_+GL7Hls5?Xo8O{NL<N)#dBn^LJW#In2&CnHsfmdjcn0_v`BB z))hxnW8>bH?+B{RFnLoUvgTUO;WaaUswg^Ulz&T!T=mg;>eH=Or5p1LMasA%)-Kmh zFP+yAn%KZ5zdGk}#A3$(CsZ;fb@|V_ue{;a#-+z)H|0zZnB&3uz0r3<UD+De(}@=s z-CM@r9v$6j^|!+(HqFG%ZuL4Zb0fCx?M~A_Ir6rKnmcaM-ShIG{@uR^`edcARk4@x z^XI-UUUzpx_VL=sr<b|42Kc|;`{~!(*UPTuMD3S)vCeKs_4gxFKYloO@LDI|c4Ol^ zMjNze-RM03<X6@0Cm99_T48=AI^8VGZ&$PZGMviaq$TgNKz6E?=56axw+**XCTwz9 zZOhR#KS?Dm>rtE5r8jFfJFl48uYc!p+#APT*S0<?zP@a_w-WdARl0ZNw9bmWIk3Mt zp(J|xS@WQI5u4YqkU6sRfkX5n39%mu`HPB`e>}djUncgfW1@n#+N_1am%~fE?l~0J z?u&go@i*J9GT&pdE93GP2yCtj*k85rae!d_%2&qxSJJnhD|n!LL$ZFYvHkH?4gd4C zwr<$FA$39hGVegH+3df~%Qbf&b%-{&^~|iJ@ms>0vu7C&f4Xg!I!QV&dh4IEFSWnh zPHO*-)m?mhx7vD#`?mvfOx{E;P%d+tn`VD7D*fPW_1Rx;ou5$huDMG0hxwOTeG9eb zU*EjuUon3to9yQm*R(8;Mr%Ba-K^jhAoZtISNYVW6?Ye347l>gQ}Ar}(;J@;c*V4; zZupSN7qK_#Yxv#=YbRG-h}z4zRqe<okNvDm_XqEd)SbH5txxb>-rFyd)m5=K#ne?Z zB<Jdfe%R*wJhvui&ufKy$v<PKgp073m)9(@&h`Apk*28RQMFcM!?zH_2fBT0-|q>_ zefju+)0?Ag8{V8;#Ps&!X8)<8tv+S0@d42{m+~!WQ8RNtw@C2Ju`6okhEG&OqHZ5G zofVe8EuulyV$0g=;U2pb{GOHcMT8e*9sPBh{p*}YJ>K=^7E!kEzDd-09DMgP`0hQ~ z-P69Vz0-4l!i<b!qd5$|;n@?+KmN^a6-uA@qtVa%#KG>giJLpryt0L6l%D>5U7B&L z+^2LVYvx;>Z&&egE6TP#Id-{J^qWqF@a2UcU+mr@W^9_hQ72>jnr&KT#ZPmOtyui8 z`%_Ewp4GbPAM5`M*BO+UyI#I>ch2EwMvwldq$pTKwcZc1T$T3zupG0{Mo#a<lfs;? zq70oZk{uzMat*mVCp;3rm@+*iMe@k5pn{5O{~ZFM9&@j)nCvY3aOKR<>AN=@rHfeB z9LQO>M}O%PXY+^Ox3AaS@r7-gf^Qgqb_%=NZ!fEJJ<ekNF7sK#SKRwl&{qABr$1qC z#3L7jb=#~ZR4kt_+Bq-Y<hp)9@`K4&Zzz2?UccGkvbD|Sv}xY#X3N<$qTFA4PS$>Q zs$YH0j_hT7i?vekMM?PjSshJ?R+#a<=!f{E)m2O@x3ar;&EJ>RaXrhDaaKfC?CA$> zTV9lH?M<zA6Wv(vyj#b;C_~0=!{h_LF>RhRY9<NHcz$&nH*Z+PngbJlt;*Kl-nVMb zb**(9CLU@%wRl47hxMP`l+p`1KJPcU)FfDPM5VjoOPJuf^#V&~@p3QtsQ2n?*#7-X zTOYg*d8~MqLnm;u7w@Xr1$)Fwt}C^#KRQdh<j1n?{K&1pK9^a{o2&il)AQ?Vb}d|f z<N9sevb`qTYPOgd8JhLPZ_K=X%XIH+r=>+3^cSAEsCPef=>@4fmuH>c>c%xM=IMX6 z-+$f(8Qs1ZC;MGp`tdxQ#QgYx2>mNxu11H}mTt<~W3m4qZ|hYV`5n9!xy<HqV!E7e zvo2+yz1Olk*C_RG{hM0envkbczZXBhcP3m&f`wJ^a&)fZjFJQIMFfOBJd&J*COaqu zo=HiY)Z>%3?DIqcRimIQEf>so-O?&8-?()5?YDX1x3|9jT^2n#t1~QXVcoh=@7Jrt zxSB*%YwmroKezX@AcxM|ZSV8He?KSl<N40>$1BhMoL@Yzy4|zs<)x|Db$9(d#jPKE zV^76R-RrS0&INXJrN{q%>B+t7S@_InQ|{c}s&hT-VBwnspS}J~TJ|$o@8s@nn=ahk zAo24;ut~k^$8`O3`=1FNng2*{i`-KIrAf-mY$hiETA0bc=Y%0I_b$`e3f)kFdgqo; z=Tc_pmIbf=KC3Z5#wK-{P2}E`t_fS}PyCwn=!8{E`NPTc4APr>)&Ha&JSTPE)$4wb zlKi}u>mOq`r=`m7D!8`v@_Ls;oy$un{z(_U%yd~lSn0adr++gS?b!Tj@~3Q}&!Op4 z6F+ZAO`EkRbFaRt+40CHfwvcbyOq<fXIV7s%Zo{`X9VoC$^2*e^mh8>ljlzUpQ5H- zQusq{!bMGA&&s~1PbzjEm^H=m#JMRxxpRJXPx1MEC-TX{O#WDl$A|J?76rP_syREM zUwzU`-pk+BQjYDCT(9=zk?O89bIQVQ7M>IjGSV)3*|tZwGTLtIg$c>&UB9OK-!H$} zJ)OVy*#DdB&+Yr@Gc&lv?BxG1cYf_;FWLEMYg7INk$*pm_0^8toIas4I8x5iInL+g zAGvAsmpnNoAA8lxZ%gOXSMTHg-p!6$e{=Qet-FJZ_8L54jP1(P{WMomzW!f2_r2(X z7bTHDUM;%U`J`>r(bJPYz3V;eS*aM?6?-&)ddM`J%}Yv727CYCSmO5b?S%4EX;c25 z-qby<RQGoLJN^HzuI@)yPdz&Ic79aZ<&4n8tKt9VpYC5(H-BQ!pX*DjE?WFtrMP=l zx$gd&N?vdKloxxR-k<)zWKPW*@3Wg`?e{$O@77VB(^=VSQ`#fH{j*%MZc*Orv*CCC z<kfort>)d!yFcSihRvQubw@92dxyzobFC9vJulXF@6KgE?@n8)TVHy5>Gn6fwtl*1 zeywD!<i4}jw<livbxnTjzb#*%uUon<{8rTMc_sSg``_$5R=mA@*7xUcpT6CnRlof4 zXIWKQYb*2LQu*`ud^67W|5^U~|Kiv8*6Fk7aaJ%lI`}KdNpRQ*{HRK(elVZep2Ozs zr<jED4_y!D9;{u+zAxeDA%}{n9m+LYMgo<cDpiptGPR0k#%5RcF8RH3-udr6Yi93y zH@|BAv5%qGqA%aRa{Jcn*Sz2F-Q2zMyLWxdA3Np$vQN(~`XAEue$9^J<8$@z{e1Q7 z&)3h_#n<Y$g{)a0y+5n=^{;bZ7k;h2F8}KFd+ArzJM#1IFYHNCQI<UE;r6e7>h8R@ zJ*C&9rRPX*%e^6{-%+pqFYM3S-TC`|FYGlouao_B@mT-98()qJ&t7Hz_p|Lem{y}n z6aQb_qyaX@XwpQGaJ|~ilJl3p#}&M1{=Tp7zUlYBZ)^3xi+|1k@Bid*V^iag0}sz~ zo7r#qdF8>MgTLAPC+6&&@pKnRC&(>OLqN=b5)bd|DR3HYjqvz%)zayPPB^D)%z|2$ zIfo;b)-uGLeQ`0Waqca-1ef2{2_e-n8kfRy)e9o3nJrfBRTHUfoxu~MTGXI>>w80D z#%v{#T=@%&-!i#v`Q8}#wmhk8ivQmr#>JC2c5Ixpv8zz~vB6`$OKp2EObgHW5`E`c zhCI`1iE!hpme`nvi^>PYHb$K}@NPeA)q~SKZ~j>)gjlPjC7k<wAap|(TiU54v9x!r zaSfK67tGwi6?eWV?U3n>@@XlT?y*^I_^p$vW^#Vgr!Db}pSLC^z-`>vpU(Gb)!HTU zb#IyaHk=F0YTj6WG$-Pd>I2pf8D_sNX4lR+Yj>_q^?k?94Noc+B8{Y{y<vXl_&Mi| zlWp@I<0X4l(+*$GZdkoVy79?NnGGK~4Gu}Lh8HKCv_2qcV8Cu8&(!C1Tj|CJ+Xpf( zHG(-mq90@(Gu@CPxapB>g2*@hq%^UE^R71<Z;fZ}oavhItQN^-vOM~el6vm;)b1&3 zxZS)amwS7AM*N2FY#%(|NnYE>Cv#Dbxi9O!VE2KCx04KY?sLys{FW^&Q=c*1xN6Jo z#<{mnALzKo+LJZ=Xwr?Jj2jv*o{TsWaW3Mh$8Wu3efOFBGW;3cx2hjWO8F;}z`Z3@ zu}q%9w!=>}y;}6kd(qH@uLcF`7VDi{${52NA8NU%xSJ$S<$vL*Gs{BH_rd4X1<uv1 z7Q%9-jpwg7{4|NzN+>ZBGn{4|X87&n8OJzNmT9w=ti5CJ)p6JNK<M&5=IA3e2@%z7 zTOTooufF;0>V}^iB6P2IwjPju6r5yQ^Mx_GMRbSblg_kr=hF=K$a`G9#nZ-lU7>yU z!rohgDapoL64l<+3*T72mrLf_J?1`zO=lknbQB-fyVlU&-yoOrKx&O@PZ0mJdIp(` zd<^c152ZHr21eAen67`&^Xb66@W$dT^O;s}kv(v=C;Py1b|deK16pZKSEC;I968Or zI*;jEV?F<;4|xea8)t9qcW2*Wd*bu<f@+V~40b2qCgxffxcqj1!1wlj!{S@!jn-Q? zd}zp3-{85Md570-F^@Ub36-l~v^>@C^s_r_W%z4Z$AWa}2|IcZO#j{(`oNeep5wZL zo?wTs%Y)O?8~NS}KJa;a`+!ZZ_6EOdksIswa`YIM8Gk!?h@)oVH-+=}54}~qA=9XT zMeb;)VB^#KqJj~vKMsDXXI^({9ox2!?8d~97?H9%VUJL;*10XAJ*y=<KWpgxiFaUs zrOL%UpXphqKhx_i^BHe%O>Z<jmgly~fQx%2#5WvfE{Td;+b3QPyz#TC<Itg+2U>5n z61r!w@MQm2m>F=oy^*!Y@0ilDqGMXe*50a9*uv<(#rc5j9phDd6@A;<m=7?ysV562 zTPBM>p74#cV09Ub#hJH)$7FA19|+8Qf8}5Q69#_vhS~!*8UF+#4!lUwNzzGQlXPcQ zEsx6F$~DIPR`tv>SN}2GS^0MIr-h$O7dTgQS_D@!&RG6eX2$u&2)nJ`MkdVv##J!k zI$!2{rgm4o0+$($ix2TV*?Zu#+XJm!*$u8GjE8T1c9_E)#26iPV4BDVRn{C&a+swX zp71VU{<yYT^><_CgFSrDZ-gYsFN$f8T~V+7W6j~2X0kVwq?V+en~5JqFMO_al3)5B zlhu~k12b<GAFz3Q{D9rt_5+UZBoArXZ>eRf399!0bh!Jyx8XL$V`fKgv`O3+NS02@ zaqh|O*vJbL%)55stkkYZXY=eAX}ovWESzmxvbhZ=DF3UU!F`M213s5+{D0+{%a!zM zAN&u$#1MWQJ4*k=kp2lSrLZV@`nHDc;f;K6w;!1K;y%;8d#u+Acl-Y~Etqh-VihBw z^0Md&iZ>ljP0-!2mapS7!wsdVhQyTX0&DK_>%g;i-c>sWK4tB;8|M^n>=d`)s&7wt z-hL@8;)mUZgBHS{w;wvR_kdl>v#=X(w$WS5m#n?9S4QHR+mggJzjP;r@m?;LGUzvy zpT_^#&JUJ6RPMJgthX<i5YF3pKJm`kw+9j@GRq{&q~7U_kz(W5d!Usox}kO6goKlM znJm+47)l(@bLjjOm~nhYzm{~PY6~pATFvvE)^k88i{CKs=;i+$(MC+(Ye1>eg|DZ; z#VvvJQ>U(Eqw0DO>x7f*8~EN%KQQyw=>s-z(+}8P`Na2P`8>rZulQb=GtX~1YrWuM zRzk$@P7^NP{ft%*-fNir;hVwU=Kio-7LlmeJPxhhlQm)DtHLRfvZ?WIH>U@lTOIf< zRb(Ga!|E+@3EZ|n4^EoCWbT(c+$9CoYBskxy*WNlbhVyXig0npJx=e8w+ic}oZQ~F z>^HIEX)C{EY*{en){Szpb2_c}{y&g>>6hTr&A9m1+fQ6i?rDGGvJrpS*I{XSfP0I1 zL$O3*IorClFB!52{N6ezxO`?@9OV(mIy;_S%)m;rTjI3jYKhlJTo0_hb^1W!+usKS z-`;OreCM9#n@?Id3aky*)Ut|cFF)2Gp5Vu=^V4oaSE1=*cb{p|2OdT(aQ@7kp5>Sz zmpr#Eo$qB>BI~wnea2)^J!DhgaJ$*2o_l-y7Ja7qPrhyVrdQBX*uG8Lf@@loz~%2x z#g3FP7ECQ`mRa`O2vOl!oY}!#)Aq7<MUD8}*iY)8W^9wM2)eCYzbInG+9wNYS!~&# zC}+q|IR3<ci}HcTw<JEalu1+sRR_uiZ(0$*F?jzZ-@h~dFRBq)y!+|mjQ7*}PabcP ztcbB@wc-5Te^P3zsPxxl-L1td;%ByeD}3Wx!E&qb@V43mi|^R=?d?ncF6?lrSf=Vi z8}E$uGcx(!9IrWgD%bjKd#FkK7y0&o!k;*Qc1&nU{_vW`WImJJb(064Z_6Dvy=_Ta zW_h8_@`9Uf*(_$;8HdZ}wanemDknId`S_N2#{R4afp%?gtWN%$*Rpjzvp*O62a!$R zRlYoyGE3GiI~et*Y3mKvY*Fd8seXQkiq?b{Wvrd#oxM?iOTv1?2cB<rA7~~{@^@se zN|3Ia67wZv#%H?^5??ZA{A^p3$XB&M-gd^%wn?sq>`L#v#E!~#?9fi@+MTp)hqhRk zwE#%e;YjSpfIE$4ua@s%7A!yNRT#cTr2ME`A$t?M!XwrzD|`#tZ|$7x{P)Q6B(MsF zM|?J?a*xP%>|plnpZjRt4b68B#%CAqU|xG?+vS=r>j__OYrgX`16jo^Sg!Dh&*e^I zO0?Ng*^GsjBIOI_J`1?hn3B$iB7eM+53H`kTA(nzNaLM@@!F+3nAdKZ_J~i#uSnzF z0huUokXya<pxRWYKjJ&HP_ApYQ71$rn6V|0|M*|Fr)-9i93L$&r+$e)dC7kHOqoCH zvyA?qzNNBn($D`BXDqSF+miZG^67E6XwTV`Rns)~o8Ef1rLOx$Sf6C>>K#n)^S*5J zT@k6cIM+Pa``mdk?aggHWqmu8UfV97Yke}u@61e<KbQ5q{!9xzX_dS9;<T2hht9g) zR?!jPo46&_@bRMi61l3me$!6ue6ix9+48T^M-IJ=bi1vkH^(etOYR}Vy*Dy$FWvRz zPfno0-g6nxJGhtM&)ib1`{|3~Vq4Fc>EFXQxHw(ozN6oA@ml4z+g9hRqMt|RYiAah z%=@~{a&7$c$o$tfuXE?7?_K+O&GyoHU$>pxeDB;`6Xo}ni`Rbsle@5M^@q6sUWK+% zr(6AZxJIyid}ph1>!VzxsP{##Zh^(zwsu>X4s}ixdf2{VkzB3pBH?7geV-n!7T>(P zQSQtcQPGU83y*7887vmNwdcY`jjEkXyRtIgwce9>|H6HBvu@x=^A5|s5wmYN``)sN zkMZ6ARj0Cauf~(Vu@?jm#fbjiwSoU-LHE{UcV-t{?TnM^J-E-~(tNiszi+Vrk9?b% zE*G+q<$A8f!Z`8G2KU@!{V#k7c^aD}QM!3QXIb?Ivop4aXFeHZYyGm`nZI*Ii|>)X z{_CtWuD9;FciMQ*BJS#{pYeShp@$b8iJAIaSteLM$J0gsDSNMbVk^J4azdhJ_2Xp! z8c+L}AGcdYceU=a*SqIzn)J5W?b545HkYn;ua?`gNT!|RPqy>z^Jc9xxj$WJe`7G? z(pI;d>b2(?s-L8JGw<<kc^q;wFw>p?X>yNb&xW}5g52`ImlO*=T+`vO`t*tLu80#a z{NG$+wXJ)mo)RJH;4l7u)$1OEU`_6f;{v}IU3Y7WzFTIW&YSAAeB#cOQ1NHGHq=j9 z&m{BOCGPc{m%CpS@<`ON&b)0lZ{{Y8yUIzqvg<GJjqA=<zn)iR@_fTKy=xav+Z^f9 z@_lYSv6fMJ^2vHzy~J~EE`3#&*QV@TxWs%{uk5io9P8d0Y;k|sD!1@m%9NNn${~!g zkN<ehvB`^g^yu&1WB>f@Vy!H~Op2aWZhgSBK3r<%<P(2hFL>(p@n>;L)s*jF3e+y? zWluKr2z@s5c}n}l>kFUcoQko1#CYa=(Yui3w&*9u%Zqz|1-n|V=iT&ALxsiunPXMN zoS5Lp-;1SgJzseDwB(J0VV8Ga?~Y4aGuL*RkL>!Z=glUtu9W1g6|NLZT<>&dTHPs? zYk_@h)7F38^Xh5M1^;;&pG<tu_@y-7UJ=rjsaWjr+3DEI*>O`9`+N_aV2ka(zN1W1 z^u^OZA2+t|D$UJtR|;D`zaucYH7@d@an-HKb|Uk_?|d~raCnYe?`F6CzhC|qQ~Pdt zmw9hm)eLp>`2xa)*ODt<J+_`X|9#}I+OIzEGJEU#o+SUfQ&`^7x%IW#pOtr(-LL<$ zImXoQv4;CO+jk*0cbl(BR_u!9zFgE`bFuc~d)`j<i3OkR9zUFHc0hgI>oxOU?R+jZ zJ@l8Qs7b(gul(aX;=cUe-|nwFzwrIFuNQpmum8GP98&MbB{9)6(?6s`|E=7mlj;-C zKbSdhX3@{eBiTPD?3k|-AvgbOtBj=hc3Y)FbKAd`kG^=Fuzwr#;Ztz{|9$%!ncA*Z z+_gsn*yp?dx?$t|Ja@V6>@%jT%uAz|ocq^eT7Ty9{Ytysm7D!82hP2)FmBeFXSXjd zKdw2^^w-`K`8G?JZu%YLKcRDt&F^3p*L8Z4mJ_#F_siwma_>17_iLrB!K1hncI~~( zcOQv$+0R`jQRw$%<GgUi$M2TC7kIK<NBsB96C%?+Y+dKq&HKxmG%@AG(S5@Cc8}M5 zm)QEsY~C8Coa|r5EBoi~Rhl!qtv9`2_ZIKt`HKbL?#z^_yflyf^6Q6tzII+Q&Pn=q zWO?+%%;nKdzb}XX{waB(eAa!=-9hgQgF+|o5>`!$&=5NR=*yY8JH9PT_2`(t?eCoY zxtZk=cVC%pJDPoGWzxxrW%E_5c%DlN_7_b3G1*MzRaK4NT>I58%Pa1l{$hRh#~eSy zi-&E>{&p7n+~H076X%qEY<5~>`^0ZPAB(Khc3gfZd$D-V@n0w3C-MuG?_quHS14}6 z_VdWhAF;U&?*%(|`~13G@yO2b;!LBu(3bODwqdz#_l55l$EJ5?SiG!l*=%y))>kd7 z&$Z{~&tmNS9o?$&_+r#Xo^anC(btOoRey!dS@cyRvU7FNmuZXA`O-`z9v52#`PRs< zI<QByrvGy373S=My|d2mNOgLey=&E>KT<CiZB0!QeILk{%WJcFUa7u&zUjVclAkk< z27Os`z;x^BpCVVjuRf^t*S2bDq5l=#T$lZ`z7*^Uow_Ia(59z5R<-}*O5Vb<OFL5j zrvGpK$7Q~k&ZV|3RXrn^sW#U;G0-$V@I6<}+QWO;?(J`>y|#93qWrYPnD0w_bQjE> z+qV9f&7<_ChE9e`zgH=0uJ@YJ%(YGJ=>4FYwarhL?3Y>GThqSc=&7J@TN-a_8(S#n zul}j^bgJCSrEhpQddW;#v{$D7^yE8NjbClMvOH7ze5`Q)^0b%#rb_IXGIRA)ZCfet zpQ|P&yDn~Z(|LWf|8jZmBOjf|k*aSBosFEQ6@GhlO?^}F{l#Wyg=+1)a(C%=t_eFI zsJv_1ksn;jm(o8ut(k71o)Yd{^n7#XvRi+O_j3F0-9P8}bN;`-C;WS_<5y?L(OG&w zZ2heIr(a(c&9|26VY$8d)ujXr5uV+P_9YxxIqk>ati9_O8%qVg-Yb~D<M!*qXJHk$ z58ad7YW9TJ<XhXGtgWlfCAwGrOK3m8c31Pldj@L*JU{<gef8#-r@x%G-h0Ylx=M6i zgY}EJ?t8PF<}z+ode(Wtu6ORfj#vKIFU#?)_O8jTn}7Rhc(1IXdWY{-4+F8X>QJNY z$3?%b+SqVhI&AUWxYEkh#ZhmItC<DgJDEQEy6WCKv-QUxe_c_xH~edb^1BWCF7H0d z$>m>p`q_PscWhmJ^bPmw9aq*Vh$P8}D=_IM#_zuM?$xKC)mP=>w*>bdxwWWny%b+k zeEb4tx5TU~w_B$&@^f&o?|Ik}ytZf6+qiHOv2SiyHi*alSajpCtY(OEtlo!LWvv&M zsm2=CUlDIQ<*??o^szG?=BK!nvNU8|Oin~)eE;2So27mtv^G|8y7j7GOj%QQw53Kc z$ur;3zOioGPpgQH`vR}**6TXDZ)@E0tR0r>i^_H~?OkQvHsMv7a4q8mnX-e^H|RU{ zRK><->A2i>NM^56+GlNGE7jtB_sJx0SB70*_G(n#nY+$_=X2ZKulM?9+!ytGcD3oq zHEs?0b+MdX8Z6f>*Z=ur@oI76^y9ama;;ajw^(xW%o~Qsim%GpAJ!ds-fOWs`CUzT zir%6X)7qO4W~7@)MH%GB`TO^8*4}uo^X2D7dlx3S-w=KEX72O8ZS2e!I}ESN7w=ZO z<M=sfwrkSD3HRHNEHqrc%SwVdd2bevrpVHirFlw+dM~)`ZC!O-oKvy!YeU;1yPjQ! zN4wYSwOo{b_sMl}!1ZgV<5VvRhA8GYJ#<+-w@kz4a`}@+^=ExzK~`nSxr%E&a~ghp zDfxA0ZsxSF3BmCP-u5eg55C6Ed}2z?{g}NvmzFsn-nr)LYL1<KJKPr~&X4v#afEG7 zJ7+BS%*Gn|GDqJFfkMkpePpR-`nTY;@jTn<exgR)?-XjTbhtWOu-e2GO@3BV^>^XN zo<}iG?_OQjRIpn&*)M*!zSr~MJY}Ce{-CWBPO@EX&6=&v6y4nT#B(Bt)4qw^_Zl`I z-+oQ}Q&o*#y1^a8{&mk1pXDB#X(aye>6Qml3Z}yHO~SHq`%Th9F856Dcy_z_L+1)d z-JgXU4DUYf_gqwT$8qNDX!nDi1s@OO2Rt~cwZv@3N0C);6J@GGlr)a;{qT`#)^-s& zeKkRvZ#TolM~|AVCZ<1s&no$(%cUuAe)p%t!X=MSaJj_(s(kgid1lQei*wOi4_d5@ zpLJTS@`uTl#|95=?9x|S>)z$+Em3|ge7H{jQ^@_<C9PkrMav#2De-f^)cL;ka=5;* zP}jkQ9_r#cA={6xs8GI=nZju^hyA#6oYkUc#rbuM=3Nch`(WeJI1{$ZIWGR`8(z!U z1xX$`#3=DNm35xNxqxj?%hp@Z^4Jg}r~K2_PHzuuRoCuYO?U5Yk<L?)SUTw<fARdl zV^zx}oG1G2lHXE!JanD**^36b@|{XEYd8Wwoh#O3T5(V7)RnedslC3cUsJPEo1?<x zcW>IXWlhN3;7bj!EnBmKQ<GiacDacfzw*wK3SYhT^p#1ou4aX%`erVS+O}%lzBLOS z*RBoMo_;+veA>eGo6<7Bc3nC(tEiOo+SMzM_QiF2wOl$DHPy@{By^hTgiTLVzj|vI zL~dHLY1gL0(uKR$Y}(jXqSt&$XzRKq`!*K6?0Pk+YHOZrZEUWy<Tm}*TeD8hO8t6c zX-;LNuX5f_(-*;~!yY;1uFzPy?%7(eumiuUw&iE$-hK7!)Tb`Dt&6tp+QKu}`&2^Y z$w{w_YPBu4ZrQb@sB&Rc)TTX4_Vk2bb@I0LH(ryyO5?HKoA4%kZ)xr9>=V69x0?2T z-J#Pm{cG>ZrM^>nQ(Ln<Yg3s8H?7$x_Nvow&5Bgji16TL*@~;K7788|*%fy&VA`go zTh=U*+9j1y_$wv--OoEtKkF>dKh7<Gc=G7Wu9j=5b~{eg6nu0qnEms?BmM6OTj%~y zv)l7y{?CW4a(mCPOU&dqFp^J5u{&V#*W`Rnhv7fx9v17F{6<FdDJga*e!Tzg*mn2F zy>i7Zl8@pHFM1#1kyeY-(3z#C#y$C?>|>`>$L}ls{T?vq@lp-*Cr><PBxl*)|G9Ig zNqpUpn&<xWd_GT&eQtgK;ewxOuYaDKZ`ArMy6b%Tzbh+e^sjH)*BtloC)d9)13$*M z;vF-S*!Z?ZK9Vw&emJAqL9|Qk&IIeDN-}G^kGi#d*5<gh*y6;#-U)vhGXM2ti0wWq z_0g>F$Nl7IGdesXm9%0NW-hV3l=4#Rq~cwTvs3aWeOjWX8J{)z)sh8Qbk<JKo64rL z|4V30ZE%-ozxUls{4dp=FYb<(nsRU2Hjn+&+m`q*S*zw*b!mz=@9Z=W<z=Ur$}Y=Z z5_q}yl3(!Fn#n6Y;}Soe@KxKt=hPMD?K6Ho+3-^CC*S1-HPc_#RW@hN{<Gj^{FC)F z=S})Pv+e2MW%EzV&$>5(f5yG({ImE@%b%Q7<1tU=zvDg^JDumJ<xgKf<^DwV(~KBZ z`Ki)VrJqC#e(w9Y=VbPOmwVfqx2qqx-GA^l_k*|g2X0qCc+0;?I7>N5@2`n<#ccL_ zVh!85VoV#%#VbBHZ?`^hyY|6b#h6;=J+^%J>Ui$WW6#%b-X7n)z4pP|6(%V`2X3c) zFyr2HmN7rPar@E-YuWZ}ZP;G+L5wy3^+AwU?+0%cKYT0w@J*tknrTmO!*=llx4j?a z@>ksEzt?w?J(as+HrqWr-g|Q%<SJIIX2{n*a69+GS@wHM4>Au|+&fc!xnefoJv;7u z>)7&DAFLJIbC>JhwWjTHAIjt_syX)53h()w|KXcVMYZUji}|${n%6vT9#W3wx%aGL zd-lO-(~9Ee?FtpUx%cF<<@Yyi&u`pb&zgU}VS9YjcH0?+414BI+T|O(#P0IaOAVRp zOfs}4ZJTlGU^H{ZZr(kmjUZe2E2<^-<g(}AXV3R<-Y$OdcJ_m}vLCjI@A=EPN0v2z z)*i=sO7<G@diB2l=Irs`=XXzk`YHKSUq3PK6y3vm;C9uAZIXLzdG7t=+w)hu;x}i- zZO(gftohXkZtwfJ=VrX`<F`p4rt#lf$DV)sz-_KyYqcNr+O56Iaqk^_{_Pk4-P!Zc zH*UXv;I`w3Wu0l6Y8A7&?{yuBwycQeyw~(#t^6Ka4p3|!fBBvH!ujXT+szN&et+<G z;mQ0>o{pD~2Jys{&K7Ij&h_CM$Gtlbbb0Q*W6Ga>@b=*cxz-icGJ9;9@6|EhyT_Ja zeeky7PS0siLqDbLblvB{cY6M$_Y>^3@2iS8Y(M(oZQ6%2?uyS%+cheFD^*l8?6GCL zCkG3S=m)v;ee4T8?0=Vq%v^P6K@HdO$b%L4)VwqI#4_FEI&j<R*IVlcYgzZKWzGNI zwEg&j+rkfWS@yhT%m3{%HAT?(QfkuH648p)tohp;&G#@)H*46w_KUUhf!lf?zKK=* z7T6;@{gaPnke$UU<5)%0*<v2sXRSIAZCnw}eeYWH_TL9@-*4FdzG1t36DV1|e(*N- zLs^8>G}TO(c`9!w=udZh`ty?C&WL@Uaeb?znD1E~h!)v%m-C)k<My);aydZp>fg9M z{lE#o58u=(ZmVBD?=Kfp^rU}E<R`_Y0sopedDyK9IW4cf{e-)SeMK}oNTcG1Z!aqD zE&Eq0l|Q}7T)kp7Q~ulsYsEncte*egJl6d64cosTxGfl{=F6NP-ehj$)VMxPlkeU? zsXevgdu(~{-DAmjSDpM)DRa|H<4K20=9*j%;kp;rWX@mlnl0brzE3~IM~&O#!3HH} zI+%Gje+tR${v(;`vCr$4mbkb7snQ3zycOMz+jSr0YFGR=|L`sN!#Aml-@Fyp4EO9N z9`2g(KH$u!Sg&<^9C!NE1?-IbH)~VKz2!R7ziVed;h(yo#-S4&dgTYDKl$Edy;sM4 zkME@Wrj$yZ>`gT$uZ5nrt+8}UiS<4&8^-<5LgwesrLWENwxoH6ou0RFVe{X=f7xFi zl6lqt_^SM-S*okQCj3|1W3VXUNrFwE{l`M_!g*mKQvLS3R&MFg-|&EC?Iy2Dp`FtD zVR!Af<W}6i5MZx)!ibG8YVD+}|IQfSKlFN{d&I%b=kxCWd(a%c?ZeSszJH>QbKUUL z*%W!n?aUiye%`N}^NL>w?1?Dl*&4OE<*LoHSL<5}cUdVVK0bEo(x004!?SeP+?;*I z_m%HabJ6=efseE9%u$`G%f9yYuiusV+&*uY+n(u4Imb2erQ*BomqdIX{apBOV@1u} zP{FX&x{n8wsuCyN+>@8F!c^{(WZSai^B1dHIUZ8zc++>hb78LY;}yoys+<3^pXYyY zwE9JN@7oVb#%ILtTBzO1xv0A->g=YJux~G-61G{2$j^I!BRR0e_2Syu=d&`t9iID4 zC-K~?_v=>&hi>+rk^A@KzaLyO*QYyvG3>eWH9GimS9fOf8rzH`-<RCfd9=yX!>H=) zq?Boozc`3b|1c@@fEV+m9-({6Gh5T_63r7;fBguJIWzsrf^eI40X$cC?W&7(yOwi% zTW|BJd7Izw$hdoqQO?+HO;~%>oIM<oYmaUD`T6y$wqpW$=eYcAlb5WR(Y!joCsLO0 zlkP@;4NIY<FxhI6vZNh5A|?uE?AY&~FS7b@WWsTt;0bx@`o=1YTD{cd%)OqSk4l@? zdHRf6<YxCr${+I`<XQqMj!&2FIu#bOOHe;&;u=jY^X#mYiGR{Hx6dh_GF#VsQ{<zU zU(>F=?qy$dvT1SSwS~<l3pk{?@)mV@Ys_BoB&RFI`J|+2`ec>pNyq;OUA)Nn@yCZu z*W>9<ACH8l+qqwz8628EZ^5feYwgN!-t^Poog+L=?G)eBW7j)(IhThm`mo|tPSsPz zPb*Iyc3t(ULM5>BS8HJ94v$bdy`ZV?sT0=NNO^|M+vl%gIcdcnoyi-DpNgiRJhYA{ z`J3Eg){QBg-H}gU1?QS2ZjL-^!Vws$WL9t`H|=EFQrY7ZrX}y_zp<u!ngOG?*u|;2 zIl@bSy7dG;>N)!Lmv?OM(XYSz&$_+dx2JIN#y+vRN)q$k_uN<8tMuD^qF8ZK#+kI~ zIhKbjY{ULUd}P*%R#;&+yY|V(<L~4pc08Y_|LN)?)$+^S(G#uA=9=8dHBp<^v3v3+ z7Ju^~8`HJ&>fE>ewwLmCoK?!17R>i}>Xx~y=XolhRaNN8Q2w>%&@|nfMJp4`rB$m_ z=XhP4q#CJl?)8LYWt&sBCp`>4pL9Ka{vyS{o{Q{{ICm{_*`AQ$eI;p{PRV;a!T$Bz zwGYjky5@G$nJp35f-gLtu_14c-;RSvq_#?LPxmZamE9b*Tjgf(n&Y}=CntTb-8k9b zGPWY#IrLDQ?=L;K|C{|M#_clkX}u`sx=G@w%yP52E^GOY%UKm}5^6i2Ub}|xpP+Wg zN{!I&*oaNu-QL~nJ0|-ae7w@G$5CXOZLZd(d0*vA0%GO2c&k-Edee4#$Kx3ytGv2Z zA|I%SmfcbDRBJu<pvq8u`;wHm2c;W>rv>lalyW}k@~Y^ka#=6*c~S%83L3S$Qq1`u zrY`9Ud{mP<WrtN-PvlCE?%?pMAjO9|#-BcGYyI+%SlgN8I5V18cSZ5u3zg3}TemE@ zHu-n!q~xlVueZ)y`(o?5jyG#;Z+u;FG3%&vPhE9sfZFZcLw!;Hp}*Od=&N_SZo0jL zZ^bJA8*6vO#4HL9+B8G&t-4uJ=H1>vukFH}LiPtar>*&6;s0!F{LbHb$+~MVSA5NU zd3=?b>bt|UUtF3bW0QD(+MAt+*B)ML5w!j8`g{GGZmkKb+!(Z~X7884d*9w1ZPV@y z=j57mb#nAC!wI?b3-0wg@u+hi@Z6Aj+3j2BsZCcMCvJ>xxjV~-OU85lm(6XFwx10) zaBZr;q-I*k?r$ydWmC|##XOtN2APTG|LROI^kb0=R<je@q<P3fXi|C;YjSzu!ebw0 zw$|;rb(z2QjgIE*PBXvO9M4mJ+^6GTL@1oU_VH!a2mM-|6z^qkj%+NDd+t>BYiEM! z@-??qB2W2Qi@&gWu<pu1hvqado~jbvyB&)aXZN%DSv|HD|2R2yQ}op*4-<N{xa^tc zc*Lz^jy&dRr(9|G;c3;3X=b}t+~`<YH`7M3Yx3`Px2MR&rXM+2bwR0H=I92d_t`}S z78e#Zcbd(;S`re`yIASA-ln(zr|;Eg>|b=_mR;;s<Eb;>t@8;}R&sIa>5?!^YPlm} z=;pxU@@0_|j|$5{0Rg87p2VI+LnWmJ3f>$X9UUDV4ILH&Jkbs=EgK}1loU3#gu3w5 zf1SzYX@2MT!teL~|D5-J=jC7X>|(E84b7ix_56yCV|#*4o{)P}`HpZKtAn!_7`jf* zX5HH=rtqce?w=6VlGW+2-hEd7`%fwVNu`PF<#><wz{T-jq!)W%-12L}BVPu?&<}0< zW%IkX+a(0{M#im5T~s#tXx!7-a|)l%EWh$Y=wpcUMW$N8eI1KdELu^x_SjY<+wUC> zf{c}nKSbtl_mFvf#PHT^{XUz*J#XGe$9inF=w)w>6IbD#!8|j(^t=6vs>L7lr)&TI z%l*yoOrJ!0NrUB9Ddx4)+CSc4i@O|S^We;k&kFxO-)kvOJ~vU1PbPVu#KpsM{{>U| zww;*#z;nWTL5}IlJWlCd?><?x8_$p2eP`3<LqSS$XD6SzwB%Wlf9fvTz*hon!qJb* zeTq3&6xvi;Zaen*(;vJ4Mw+{VFJ3eb^`E*<qw4L<FKiiJ4FAuB3(bsweIPcxbn-Oa z8DYUqdK_P0?dwi_aLxOd!um6le2?q>*;VlQTuaO6e~m|yR{vw~aGc%!aFzAOtnerI zooAhM|Dm+DtaRh1Ri8^X9^3Q0wDraG%aPsITmc<Bzp~7>zqI=A#KpJdS%X~7{{}YY zxXf{VWNNdz%;UwxEmHkUj4vxM{P^?cDm9;C*K!H<+_hX^5B_Y@x?198y6b~i3&&#< z@f~tfw+svo|4;hh67jCwo8`3c-S^Y8Zmn0!+M2!V&mR~2D_@S!k^j2qgRfg}eh|;| z)ca5DxBpg)WsZG(;31pMyKnd2`hMgU?`)c>{erRU-M)yRpiSSBJPQj8PrBY!)w|MO zcTeQQRjZ&QQ-3Lltz8%HxbepO-&uRZs=N1wHcX32eI@=eEA(uuR=w?>z5BMuH|>90 z`stfUynTGFzSy-bl`Fq7*H{UvCGJf4wtL5tEnC)XTC--$k|j54A{^Fog<6G|_`BZi z+BLN>T6%iwl+-o((NVj~&g?QgTD7r{fAxpZU)z42IufYWCserRqv-Fj-zB~mdw+dc zv}DCEkB@s_2#fsSbYAztG3NjAt$PC)FP?bes?nHa<8{F1d-m$RCjw)3oewwMp;vC@ z&HkEk!EQa*D|>SGT-md$Ql4Q>^#8|a4$q1HuQU7eT6V3f3t7*z(m$TKVz@H-lJ{lr z*;9{}^hwJI$_n;cZ<!;s+<5zv6z^?<3ncP3U);;yefIjnz5i@;tn4&x`A)B_*!rUL zscrNOX^)E^CkYvDzx$YH`G&narc9agS@YA<*-sC*CQg0wqv)vY&TsA_;?gdLA@luz z{C+k4pvd9Wc~d$n*Xn5N>P{@p+8eX$5!apQLXBNViXOCmE4uveZLZb4<;P!cJ;nF# zYjpqV+DeV2h#iR<t5?*u>^v{K=h__M+A|5pzl*Q+=!o5(c3#kCMs@UO-VGrJ{b`R@ zX!D7S|DQQ+n$*SOqFYa9xE4+o)D+ZAvVO>=;pgAq-Qn%8e{FqTev8E-M(e`B{*Df@ z$<-GXj;z?qz>><hN}&Bk|9S02{ihQ@ai~pA(<n;V_)tGA<mkgSAu$0@cRl$!!%ykf zp18d~f`S%(RGN2kdgM8u(>=XsPn^)uEbMs6t6>_S@o&<Nti00lHxD*t74K~kFY;np z>9<_ZD!%xj<a3d5@1g?7f)(r!lMeJM$WA&^wBt!>Q)R;2n8`0>B5&^r;P=#6S@}ry z;;vxvH!d#j@$Z7I%6zUJ_<V)^OxzstOzHA3(Jjfsd6TTQ&p7_lT7CZL0qvM)^NuOk zE@MBr=AWM9lpph#q^5kE^1PJ&$9dtipV@zxzrJVjX`$j@V<~sLOZ$&=_kO%?*Q<QH z?DVNW>8Uq%&DQxU!|rY#$gdRaYHM*L_)4&wo&GCLZ6g=kqkpy=URlC!?dJ3+Id^_v z%M|rns%}pACd;y(W7<*Tsq?i>pe;Vmt39TI_n4z}1jFf;W=jQ$Z`XIYZkWq)-pPMs zw=8r1p~W8*b=tRn5Wb_HZPN7mLE;Oh^WAGcl}hmECMwpj#UFI+I4Z?<M~lapbC;8T zh2*hAEEPOq9W$+2z9&~Mc<`*Mf+fn?=u4YT1+$uy^$!la_R<20S<XxoroElt!E#<$ zHhNZks_}bH;q$2%SfU(cE12drizhJbVQMvSFEHjTJMeu2N7$jNA5wMGzA_*6`>59; ztha75hu5?9g`X4I&WPstwapFSlRqrJfpOa*!N~i}dK+i_Q?sZM+VwErOPbO3gPcGG z`>6zZowm>og8LfdKNQ>jw{?8bw%hexg|ZFnT}9zdi7IDWDjgEJ-U#Xa75*V)cF@d1 z>y_r(|9WX^Oz%S;nk8Oc`C;0Xy!Kxc*z&obWxnQ<jdGmb_g22U<=tE>J1Nbo>}!Vh zf3Gjlyra17>ND}aGy10cSQa1IvrqqBK7Vkc`5y*vmkm0t`41)TJ#MOInQrcw{#pEl zft1yO!aZ_~ib^Yc8;|W+Unf;{pxc0@=s{?O__Jnax%SKr?B5PA-ymgnxXePaT0kr9 zTig!es6%Hz@O)`sXu!jjU{<3Lmh3)*ulk{T1Xp$fcMbd00;8=j8$yoT9C7V9Em+&} zT5!A4w54UIPZWhH$T`|HN2D$?W-yf4n3uJk(RNO+fV8riYmaM>yN^rG<XN|t&)>|P zRDOi#NREsCqlzO+M_N0y1<jS>3?|;~ljxq&azj&hak&4qrW?|R+=k+XCXXtPoa|`r z*ev*bdFr>fhs6~2Tw^+Suoc=q5<Bv?WB29i)UssJ4tBwQrFl*^^Y87C)>>_3r~tBG zFG=}G#*t?ooqLU{Q(3n-ziIiwlf;!&wVtuon8`@sclWt6ZiyZX?u{%TJ396HB)TQ~ zXLQ_9Q!Y-B4`)BJTwu3CnR|_#p|Bx$VTRlND?HQ13soLT9QoKWS+HB+xssksOw$gg zi`SRCN9l)iCTTt@J94)}^pWD<Sg2$ABT^SdyOt<d{o;Da=f0-<27@8jM$ROjq~aqj z`~F@wy6f4ID`@@AczwB>kDHJ4o8BAzhSG-YhWv#lk0OqAb_5G_|5~1wvh%spJJY~m zL22bOBXv*dUJJpE9EFUJijHjUkY?}Lx;WQW$63eSrlUgSqsXIH#=S<DOC3s-UUeMo z5bXFWAkFt;@-6@UvW9GiavMdH+>hvWykur`xxe<i^BK1@j%S=@dM)@0jgkZ(fuobv z>}qX?YRA%!+XANrP7CrY$+_FKN2D%#=<<Z=z2PCj*Ggs%Jx)1I63r6rGdgaFZ4^!t zKVs5o=*E^*f8=1t&W@iQtR0Wf+^>|%SN3zB(`vzAsQ5_eh$u7LH|c~Q0^S1Ng4-3R zDNa+CJ0Y|!QO0qNi%omQMHfE-W&z72jU?G49!K0ddIe|ClI-qaUs&%LB-ouV@bOc; zb?|}G-V-0V5A#0^PnqoUFJarG{Y76lYrnR3SyM8jUOn;&TfG~%c;WVq9W}l#Zi)Xy zA1+hcbgU!dhR+k1jY_LC^*&9qm}q^Z`^B6O;;-VX{X?$&c^>j4zEX*M*EeI=C$gpy z|G7;5so4GUpU^eOJ;&;QZhF@V!T*xmcJ?U#2=1;^TK%%$zE?uy(<VnHW+^43Y13Wi z8T&lhcX%Ry|I#$yz5iY2X1|}RRCIWC@`w3HzIDh7$h*Jkcs>2Z{(e85Sxpk5+<&WQ zZ;M#H_Qa#rrrNvytFZm`-1Ctu=d1t4&&xklP4q1ni~L}mbpEpIo5)E=-zl-yGfmO@ zKg-|$PojVR#^)ylem5;l@@H<k|7!QTHSw|E?F026`G383KRoo!46DxAv%&QbV+5-w zXPLZJ5!!k}d&{frgq_FM3$DE3-8#E^@&1Z3*?F2t?d7H_N&HtH=zF-nVfb$-w2?dO zhxihu>ld$1?D$*0c)x<^#^?LO_FRh$JaTJCSk7O6!w>!s?2aza3Duh7^>Bub$|RS` zESDOWOsG5JeQcuArj8#c!h#&NGz0j1ms~VyEL)&iqA}OK{6h1WIj=$vUv<keHubFa z@(tg7b>geruVPA9RvlPr{n|>}`th9Hxv_I3&&fQOcy98X>A6?>%3}T7$G&Y2X580s zm(e}u<T{`5b=lLhSHJFf-DG{`?giP$ekJ8a%Xe<R^YdNjyPNM+-)(*O_8s#(<5{a( zvv{{ktaX^ZcI~BY8SP&S_D;O#cK*upmv*(=1#`ccf9m;oj463(U}DUJytww`AIfSJ z<Bx9tP*gW3ob}UzszzU?$IRSJ%USY1H!SaaUUuH)ywiED^J4xxpYK?%)xmz1J4;AJ z{)(Q4rG~MFc}7k^;)O#CLLH-<PBr(jhq8WtP<7C^>2dRIR(1Atw&!g9ym~xw5__~N zybCHne0;D<KrTpsiKj=6$L<MFCY+gYXTnCsRz+^-u+|(-O@2$cAkkCKuUpMHd--$4 zXUWWxoF#2#w#A?%@x`hOx(lB!Jnp>uP({Sv4Qh!W6W<=1blB){(cxolqHVf7(W2W_ z*Vw$NhzPadUoU=7#l~*W+!MZMDtSH}pL}6^?ys8J`|d7#zhdd?ZAHsH)+jY<Zv7%% zwB}c@`<n0W$D(iVPn{N;f92Gzy2W~CwwJ@|=lIUgy`1}a=hjBw_vx3_Z<oy9`oCOm z+qC;jqrRqDn%Qojrnjfic>UTM=~qYoY_I&Q+@t&H^zX|XTtv0)V^XAh|AfzW_p01I z#V|-MW^Gw_jplJL%SbP2Z{4zJcS-Y0tJH6-(MX&ZnxC2ccA?GedHGj`m2-FHh6z2+ z*>yHcXg7E4%9rtvDrVcUmP$)^wg#P>T+}(mZcXjt6Mv#R@2oMN@&DI~pL}!0-40vK z;BhtJ7du$=;b7GbuG9d=_Ju;{y4l$@<W!v|7Ju3>=V1HluNj)cOWtUtZki$)#5Z-5 z!zs-my$MB2r$jHgqx&>b^Zf7BNioWv4}(q>svq^b>2~T|ke&Y11Wk8u&H3|H=FfjJ zxoCE&Sd?o-WWH$LW$7DVRA%2>KTYpezHowWzHt8K+mT<FzrOKhYS`bK=fENJ>;D^% zE6PXo4C3Cn-|qaQ75OCl+3sUI4TO#zx*fn#oT#YN8XCY9oxncju%pGh_is1*d)|ya zRTosXR7QVk%=z<rlZtw$STDJwpSm=@j8Su`Y3amkSC)28`53fqvXSele?fgyg3cvP z-x=hU{r=JBP4`NBr!HM5x}v>n@29OFALXYmo^r`-x7Y1ATDitIHJ5HV`=l+%>;Kd{ zL0&uECOus-Np<zfok3py(`<abG8doJUNYschu-8*27Sw>)z`k86ThsX^p0k7;PnOT zPH;&(^Bi$pbi=<?NO%%k(b8onmM{14pR_5!Yo}B2lgl8)=T&)3f488fZP2yN-xmH3 zb}GLbk&&hLD&);}XV?87=3SA|d}_12@3@s&{PbO3r@jW|O)uI%w|`4jkXz(irM1@E zqIW;b(G-vV>o80A*tZL77rzk9zAU`9>b%YBd)+rmHoV%q*Q~b3S3djl>8zJcPw%;B zy-c#vSGn;;@7gc@C$~>&uc>mIG<9c>>I(J~KUYM${|m}gmMn5J`sP*X;Po=zXzBH{ zQ@$E+zx{l1{In@MzfBT<s#UeId+YMQM{lW5yD6`*Hp@X|+Kn|Ducu52t+Ncc_4$DD zwKDdpahc1Tm&(iNEI##MWB4^mrR(P>6z!Lhsxpn1yXE8c@@Jgalud7^>ONEPycu@t zW?5d5%6!Y{!Xy6^rnPzgH}QEEd3ecuDYfLvbzj!)ytMoIx#>lk23hlF?q8XwQ1;Sy z;m-X>c87Xd-j6%EG`#4|RGIy2qIaIn&%3<)hWixzz*CvmW+@A;f0EvEhQZx~-z;g} zUHP6Va^+8gR_9CIy|zos&40`H<Sjh~i%-8*UGL^OvrSb`u=uQfs0i=I>BV~WJGV>? zU;15ZLf~Qtw|1tPD@8nZYfdoyY?`UL{^py%rt5w6H@!Ta`zvs@o!i!z+G}O@=+!KV z%6{4(o%od{-|FHqiBIvup?^~IG@X}DDXgmr)=a%-7S~r>WBu9splPoEjqYjB7|y4f z{k^_4)^|dg>BB|wep9~t?s+9OTV->z=cJ#WMN@rlC2sF`%Jggv49nwcPx39--JQ>w zyFl57*~nRI%C>Ng#~uscWG*}-n6|`Ib8*hZlm#A9?h|D$p4s)y?(7uHt7pE3owqOE z?Q5Uf8)AI^%B{6slW#s>^J@-A_Fv1=oLzhOZ1l}fy1aPp?t_)RYb9U)mYaPpcUNBQ z<oCOCt5S4hxBRc0;v1iE_4)R#pEeh)5B<NQbL&6%xYheIYS#X8`d_ilH$M5QxO?R7 z_&K?;{@t6`JdT}{e7Qa9tAEbVOX|0Ceub^xw}f-u@zZ}JFRhxEH*NdYm$^CLw{LoR zckScfC5^u8H@rG+wC1~heAZR_?7Yk2H^2N1t7YBzt=x56=>I*6zdEF9JHP%rfBi;@ zbbS1p4X;*jTKj9d@7ix4o))ft$Nc(7?M1V_OGD$GbAAb}jyscEH7)eN*0EL7OSZjC zUi)ho!|HwazWw1{n^U#U_x$FUk8^&xtlqbAp6~fBuV!C~`sngu_sVa4x31)V-mQ6h zS^D)Z!DV*0tp3mDTJw4P%N1Aar<iS+Hr;IFRP${wH=6D3_0`|<@@d%b8+We!`JU<O zx$2YH679<$jC<ZaVn|)2v`MP{xM0itcGl+L{IlL)!fJHCe>8p66>PaoM)<3i=tO3X z<x_$krffbHx!{lEKZO;46#q@==uPWU_>y?*RE->`TH>Rw3bUta`YROQ<upkqn0#r^ zOwx~L6rU1sv7O=K>VUt63RT*B7azFxOPJ~G#j7s2(*%z5Gpov7Ts}W=+6QH)HqO7| zQ&el%1r|=_)Oom@b)9%}>F;9aIK^MDgqPYc(0TZ~HAeZ1eBiVzt12C?{qekJqmeB) z$#nJa-x}Yx>wf!g_$I&9(^@C9UsX11`iI^dhlAcc6nm3cdNNGsW}E8mjYqziJz`Lh zy6B)N_egL}8)w+cc}wh-BEA>OTe!~m+3$4l&z0bX|NQe@oHXB^7hZfyIBS6r$Kk0~ zr+OcRE}EioB79!pt^*vZ&M%o4Pu=GguMrRzvgv{8QU}cj^C>4!SsVCSuAI~I@s#CL z8J~c<@VfTSWtj(}k9f}cV0N*SZ?cB~XVXcQIW32+pRg4%`zV@Eo}H+*v-b|$We<~= z43|B{Bso@}P%z@CNzstxT7A-BlJ*>byOZr(Q$!?L<0p2eC{3B*nIg1CdGkrX2!Gy0 zQ}Ilm-bSrklhh8W-kP;7jAO3fa_x|_LFrnnl&?-)Wm5X3;7h=}!Y?IXLXu?m%Iuv| zEz2y!JSDBKv9Iw|ZJ%SGqt}|p(a$rU)_oU#mv@TuyM}Mzs*?VH29k^HSBp>T?=e|y zZkfwtery8woDU3A2l5}8Uv#K5-aoVIhwdLSsU!JMw_i%AliuIk_QCpxtjU!7C*Lng z{G(SV&ilOl^X`|WHf_f*aNO%LUwr*@gq-*556|{k?rl8&(IRU4@y``i%Ki^Hx5(w6 zjK1{CW}^Bfk9%F)7ny%dndc+@!DOCW{<D`hbIqQd|NQ)=?jHX4&e9+E?a|*mb^nR@ zC4n^x@*eq*n|~-&S<4@4zhM2Nz;2G&GyTugU(T&zk$0T^;bM)+-fr;^Oj2j#pRd2X z`=|6D-dj`ppFe(STcb4JBl*YeKe<)<^UtVXPOIUX@AUrh<sT+er@1Q?_s$ppsB~-2 z`A3^Gxb0@2UshP7H{bjJvF9HvP3E0{{`n<y4P(56@DHbb6YNgdKa;;a?T_$3&f1Rp zQ}#<cYb4{{<e$y|cs@hu|D1Y1`G>22Xx-{s|7>+;cHEinOzD53|GVr?UH@3RMfd&z z^9#p+sO{_A_IUQsv|ID)&+cC)`@{T?^e>D5)9SsgKfV7^{)Kbj<o8SF{?OakZFlnf z2iq^2`}*H6u77^~hvBW6;h(&Inb;roznK0*vaZeU^!bnRnc|6i?p~;8tkQGcxgbU$ z?#-kk&kBC_!iKKbXBuCh>3rQY(P{}F%LKM1j5|C;I+@IKRrkz(_Tt?OzFo>^C$hCE z-<`;J=i{Eol^i8s%D=GpE1#ao>e!d#ZpQN2Lyl8%4`aT<wF>8Z0*5M;?{OTe6zOkz z{p0PQvW^G6mB~BinLqShz}NrmVgd91_WR7GKllEL+cEL}@%PPDf9mS&uRPbS;O=-* z|G2(+_7CPij1SlP{I53tb-(S8;6IK#hjxEjccEkXr;r^}zdx{5==%P|_MzFlgT@ca z=AATt$ak;*d-E}y?(~CmZDyxC3){`$Z`)m=cfK{_-P5=ov!8#i$vEZyF|dHYe(HWM z!x|oW=I@_2*65f#&i`co(9W*WzaiqESUvZ<=aYY^WSqPI@Vx`K-Bf?ke^plV`RX4V z|KRC(Zv4}yqGA8(`>iZ??dKcWe^&po%{Y1g`TN7pf0+L<s(j-A+5W*G{)o7vQ2ZJ3 z!^$<B@l0!f1nm=v`uw!Ua?3;QA6ykv>JRR3*!JSTob&(dem~A_y%6`~oY0E{*SX*S zw79RaC)YhrYtLKZn(hzV=KctKm^%N-?Uw1aUHRg1-`>}>cSz2yoY^7i|M{*`n$6+U zm6kTA`#&wd&^rHt`T}kHlm1Rd_GkSM7yr?*=hpo6Tj^Pz23zf0jl^iarK>N6#=Kkj zg~2s;nI7|_KZk#^UugKzQ1P(+zwI^kng{i3-|xSszIHud)cl`%e1TP#-~U`c_Afj6 zznXNg%-*x#cTHhaX;WJ{cj3CHf0y3-@w(kcqv4|gYudq@2p;VO-kg@)4btBZ3tFfe zRR_%JdMCwm#q_|`r&3Kt3$is%<y`mHVBgusIaBpqQDEB6w#70pJ}o*^wzsEf!fR1Q z_O7a*8k=L31NcgMU1q+OYAu@ZI#hA9>t3cQk?XF5L>*_ot&)AJa9!GoPw4Bhg=dQP zb`~wjwmFq^on=aMjHQE1=DY)q>n<{Fj!kCe`z0<>$?a};;On-Ov`Hyxn^K<1o;)LR z@=VCd6DB85l$<=lbJAmCO3Jd7lxZnXVo#osIe8-H<caD@6Duc8{I04j@8Krq;bu3b zM`ub;jf&(<jbru)LOXiSxVb(1-`!KABN?e9`P0Q{lZ(-(l_@DRQ&M(rnR;HuSX;$- zzIR%fSK7V_XVy&WsnL{-)Rl}>meicqvu0{fjjCj%x@4rj<V^+1n;McgRU{)@dURa9 zKPoD#{#R0-t*RWYq8#t-w$00J-^898ZONN@l0W^7HaQz@3O3s0ZL}%cXp{S`Q*kHH ze4jM4=;Rr@lRm8}&)83%=$|x^dD6uBD$4At%Izx3OHZ6IOIgCBoBDtMi4*51O;nyV zF<wR4T~+zGin6+j^3+KaCr_FfJZa+PNfS3unpiw(V!W#Ib5-U2o^Ey1dt#>a{85x# zIcZzb$@4uw%~$xQ-RYVyY5vjp@v=!X51%+unDT_jsOaDp5y8!(oA3WvyX0KK>`lFA z7UX7D&+@CjbngqRRRiCW<`)81J$=j8Ut;<tCF>k7zWc%7FYZ+h|6KSlIe#(uJ5z4q z{tJu0NZ9)MU+}7$G;h)Jmy%W2GSqJIhHTS{KFZAHsi^TK@Rx?bt-fu{UY9fY173dK zB5sjce@mVzL+mV*_}OJQm4qdH*qhyoGx%PZOy9@EHrH#p6GyD0x$}y`^@aK_o!4GB zM6X?bEnNBP>?>@q&Sp7(727(oYPF@&#l@Q$uD<s@ao?I@Pu8@~>Oc37hh!XkDs}b# zZasthvlmG&V!0CV)h*E4tCwl*wc3Br+g2rJ?Wme7wJ>h|wZQy<*Im0z&#PV#V7i)M z>QcJGZ|X|MRo<nmXRTV@cIv9b)y1>km#<99Ied2iBJFpIukK%|xNw#IDtlx1rZfS^ z=a(u=82@&xTN-~+Xjk95<<c+Qc6Cm>bT&NsPR;h7a|?@Iy5C>??h<deK%Qftc+f+4 z*5ad&Du2J!pB_D5IjdH|EBwOwmtMbEV_o+zvD-Ck-NK{cvy*db_2z0v&3Av^c}@HR z>!PpyD?XfC)IQtw^)rhz*JeAs2#wx*%3{LizmtqV@5|nzx99v8w!-<!lXV)y73AFx zcx+Ub(oNgR5Z7$@!K$a#JV9oUX4p@b865csZyRu`9kxz7>))DbAj_4=CUVf{A>+N) zn+EL94pkfQ-xL4$fH{Ie{*coT4zYvB4_VhRc|Qn_;5waPS)*2S^!Wy%eGQ=>RDUFF z{UCF6gV??%p$PWZiOnCBXD<*jJ1q7?YTF_6L#u1JZ$GrY!DzjZr;Jm6GyAtg-vju5 zFJP(@kbCZK!C-&T(SoJ@Vfw@Ry2ix?Jbi~bKa0;jBt5syxIpaO!Sw}lb<Nx#tYcd2 z7jWru8i$>DyhOROsYJ<t(()7cJ<~s#RJPf8@0zeqWu}dLkcauDxl1OQTxwo2dES%C zOWj}8^e6CKYEPN8Z;5>6M3IR`o4VhqRiB9aWUHzE+k^FI;~RDRNz6~wizdh@wVyoy zgyUzc%+kD~9+~A*mX2B{J&U^LsHLBXEb9B?b#C(g6Re-CcY6F&2z@fCz>!OJO3+lR z6_bsm9Adu|-kNCVXnj#{i?;8=yBYGol+G?!e&J!&<+tGdh0GGczccEbreApa#due1 zo$vNb`7g|V>E89*zu5YPUzA(<#k(c^cfI#7e_A5Hc7gp0-76NQvwyAK75mrk?!tE= zr?14m$}8>P75+C)H~jlb(O3Mh>b|;vZTL00D!_J$Tv&Zr|BC%9+^;6TD*W0KwQ^pF z|H|c8jbBB6o%3sTRoq|Sy$k-WiwpT5u=<KO-(kTsaw)nuopmPKo|$w*d5viH*;^aj zBcs1bWFNn^neR>EwTZR|tv0IP41V)|jdArX+r#rxV<W<+otc-cxkmc+xuByLon>r~ zUhMvwroVybT6^lIeQV^aCw@(5ju4YRvFWCQ*$m!9=c5x3w{46un^Sr7v`+utL!WMP zm`&<UT6}Z$nufi{j%~PpGvXVY^znNsk8iS=P279*UfSdvDc|^JA6m94Gsj9h#W+H6 z_Q|x3<u`M_F-9M-OX0rho+J2shHl#Y4XST~w@uMaK7BJihxPZIwJGr%Lf?2lOJ03b zD(uX)P3t2#qmN(P%$uWp`-s=gv~8`mXSZ$2zhU-G_x8Dc$<{ag!j6?~yqm*+`}Dr_ zr#bSg6YMwqedAu%@b?JcCg(Q>zh}xO?%%NZjfC|%zYShxljbHpznTAr>G#~&l==-? zWtt33B4+JpQ{Qi_d{b*Se{Nd(jmWaTzpv!p$UTyKRd;gkW4UMNO8LvH@9OXVd}sZR z&v%vYC~uv<MJ9K~wAH-V_uM)iHSb&3wDrAL+%gw$4d2T2)-<>0+b*-PYG>)?z89Be zUEcCCYN464_NBC}&0EU1-n=D~yYAaOGym%N+3RZ;)UMFIVs}X_Q$D+UtN#|&Tgz`v zpXDFDcJ0Nkty^z}M|ExsyuBp%+O~}N?C7oeTXJu0zg70uI=4M++1~|!SNvTfd#UbP z-9^6)^{tn0NxofE=Jz|)di~#Ju@~yD>t%)BQk5-nRkyktdUv7qSNX5Zzx;nW{+&=4 z@judj(f>vASNmTc|0-Oyv@Xbg>HKTwU!;F6{<Z#B<zMr^P5*Y+1^#zle@S05L4(b3 z#X>2*!<h!k2MQ$foQ+Ek8|)CwsOV8pzQJMW)N7!8XUDk?gLUSwB+MmBd!>7;+-j9C z?Kqi{a3{yaB+pPvGPpPMSjplGGZIB4je8@H?LL;1+-G>b;{1&E{TB~>|Mt=L+rtz# zK{=88mh(Mtcl`J#TkCV=``j;*zjWR#I{C%&M)Sol)wlY;H5UnfjBBecv61DszjU(1 zNanzaf5OMsHcM>hOT1&%Q}{Z4*A%^GWeLT;Ro_>i6+KY?p!4wC0_}@@{f8Id>3zS^ zy!77#n-wx?7j@h$``&M#U)EpbuX@Dx_+QnX=k^|~oo8~i{O<0@zu!LFuIm5LJVeSN zIYZrOfu<7E8liiUHcrxvE%^sFvsR?lxjk+ySh0Go@GrmIy$51%u{Bn2xpca;yleAS z0fkSU94pj~8gBocFPFLd%<EfnjkCABXU)6zjq^{Gb=tj?htG&r?zpM6|6GpX?O)8% zYyb5eQ{A$DNAv@$b&+078;>-rI!>F!p|exY`&9xb<MbI@GYrc&s)&hPYTCl!G|59K z;L@xuY*V+WzdiVH-h+7ze&3D08zsE+Dqot>Z}Dt$?*D}n*}WV7Z-4yy|9p<@V;8b} zXa7GrL-Nd}2&?LOdsUPsNLtE^8E)2f+kD(LMXI}S)8>weX(eBdACtQ-AzJ*ey`m!3 zq{jWo!C4#;*1P`XcehPnJh!8Jvg@C9vZC@LH``}c|1jn^e*Z$jsQ-S-y^p(3Sj`iY zbXR;PW9)LQ&@tj|@S&jj#&0)Sl})m{wqs@W7X{l0{)^6E4Qylf`}JQ~fBp3f^B1LG zrN35H)!GK__sm~#e~tN-{EN~rx4#PfmHX>$c<(mlb#nPTyLay_^9?LNIJIy(dl5hX zE~Q`VE?>)*Hej0`XUg?nq_AT8Huv9gx5H)oD=qf(C4bsjFERE14kNwK9CfzqKTlt@ zS=H=y{U7T^o0tEn?>PTfbWuy^*&JC_E~lw{Ug|p}?MwTECQX$qXulNvlJmR9-YIbc zi}x(}(pWup->HC((4r~Z6#{22@@Y?b8vOM2|KoS2AMgxJsoa0!)v9&tR;@eN)v?CU zk8w8JtYr(OGv2Mv<YN?^b@|y8XU0H2MnP6VNf%ZZy@|htCV0E(O}yP*7;}7Xp+u@c ze#w=OGv>OwG}eB6zi8#0yZPy9-+w>*K5>7S$31)Fb>AP!3eLP~a%NVB@1mF2M6#{U zZjsv}w`k|J!`GC*?D)FEbiP=We?)hN=C||nw@r&&^Iq`j`j4(Pldk>R;(s|U{?2sg z=$f7TewEyq{$6|8;|)LGA9(hk@8j*4Q+PG^FVp{PSnsprANN1*MNR(~{a>`=#r`Mz zRkT<u4!Ar$u(<K(BCiLX2a*DnH<)aQxx%%EV~toTb2jsBm%j)44#Ztl+F<`-mImJ( zu06WHSp3-ix(_yfXQ~%)W_r(VCvf<N^$s03wso7z4Yao!Y;CoeaZ77!uZ7ea;WL8j zO*;?%dh|4*&LDn|oDPpzSMb5KgK3YZr?LC)5zLX!(XJEK;S%dKZ<cMAJ-VMIpX;8= zJ+3nDGU5Gv-}t_X<+J~0{oPs5JB`izXnvD()8V7}&5N5CAKjfP^P~H_(_yE>M`vC* zaY3Wd%tXz^vqoZ;&@82WN#47IYR*pkHseS6wk_gEr*06HOIX^*-nu+;yX!SKyKQnl z?`Pe+T4h;V_lxWG)J@N0EVS;n&YkY~=o?FFy^w1_vCZ^1k5>AB)>(Bl?7QTW-8ZZ& z*mnNBKk>-_z7PNJJwI%d8ytQm_2x<8%A9Yrx|YSHsbB2u^$EW?HRwpuMj8Lxa~9qH zBl>shpQ(RC|AhWE|FQb#>fhNv^1r12%>K3c@76zC|Cau-{I~00OucRWy#4$3H`?Ei ze~_<Hr+rUwzwq*-?~m?&WLxO=$8nD6`|jdL%pVv2@Tk$T6P(|5{z&D=oj;uZ1lDNo z6N+E{BPggwyvF{A-mkhZv7i1v`F*qeX8F<bul3H}57*7`4-1mp_d4NURZk?d(frcS z51I2dZHl(;SiUo5UW-vZgT;x(x90pkI<2N<#nzvBn)~tv7p|*uSt&0sSz&)?*})o* zKOfUw7yr2M<6T3uK3~eE=9-WPmRW(W6BTn-9Wmaj6e<|%8oH`$c}m`c$lJ}UKCaPS z`s&8rwT(Zk7E5R!3lf_*d!?pYx8@YxW!*1rHp`3l2g!ciF~i+5X<>xNPMiMl0NZ)T ze{1;5h^w#ISK+(I@8=`mk7}kzb_FY++3)n@TI_~jCK9Xtoljps66d+5)ApQl=+RT# zKiw?W*}`?RSZ7<;&EhvnrHSV^9??oXzj6N6{y%U2_bg$kwkzNC+`{~e1grCBCvHud zTQawt%3j>Oz&B~(<%RcyZN9|4(Al|=-)a5^|Gy3uY@zAeMzc5dv@Wp9QM?u$yZHP{ zyVsvDPdOj;r#9=%tUt_JDY5@JO%rSXNt!;DcwL-z%<6Cdl{sI3g<okZ{XKt%`!mZ8 zV%H9Q+P7!oi_<pmyhHutXGNa<5p`L4{?+E>St4If^vki{IIq1l<cs!+xH~Lf&ikES zgj@Ymy{IpHOZ3)R+grl7{HI<xp7kQR_rmjq_CaMYR$thDNB{C=n=dBvwz@9<vp31s zv^{RomC4=WxZZlf^|?3fVi&B-nXC7>mbH8D7sJlj8+kVN?hD*M`^vj=KC_(~%#l57 znuO}DX_s{_Mn9Q!z&zzth7I$-?u{9lTc2z+P@cpj_uEj9vBz8Mm}*C%XY&7YfmQ>n z!~)wULofcjQoE)ul393u0Z-o{F~j%MTf%};`;LAK4ttUCLPE62<(uwSzFPTR9?CbT zSG2rKTA!%so2;M6el|%yL0&g?_J6sxZ14G-zUyyN{oldo$Q0MaBGbkq)5s#z$|BRu zB9qSjUw3YT_J7;CDc<!n<I;A^E!ckJdf`ix-{x0e%KSF5ESa}=vO(?PIJcgC>Cy2M zl^L(K$Y}a17)?|Woq3h*Rpz|=i{c*sR+fFCyKi|{h17YAU+aol{0|7bySTloQYlP1 zSlSnm|9QHUkV*HgAU`2@u^CsNUs!cPZQaj`7b4!b`xBM-`?&6jy*BSvhG(<OTe0gw zAL|!I{`6z7>R8au@?`>ll?H3o34U9V205=*IW8yurH=fq3)&A|a29;AP~%Gg+m{Kv zwkiwTMZQdElPg-#ZnUsnYr==QChylq%&l#&Q2BSQu1D3$sYpA!LncsRR=3hc*C_?B z+d2)C_RKgWcSgrBTt~or$F<U=%{LUkbu>R(QQ^8r@!qqImZu+oX#L^#$2BJDsr&|| zX<K4eubP_r^ur6WE}3_=xpLiAC%kX|npra;qpfB`Mqf=wMq|y2jLtu17rA~KT$K7* zaFOjN$Gl24dCgmj`(s6v<#nx;<WGxTee(E-?uqap#=i45-G8rS|6qN>rx*SQH=O*d zC1F^Z5Nsg(b7F$X&x;9cpH4eU|D2k@^YiKg6U*NQT$QtV8mo?VSgqkSx^XW0&;A%c z@0+)z?=Q4l-t5Zk*WOX%*WShCmoLm~DXVs)|G_@fXC*BfPfC_#9D4b7(Fq%7rCY^S z%U>LL8SzbA=Ur&J-|_C*7IPJL6<7t9JT7V7G4pchBJ1Vae`o2uTYvZ^<Nip-pPDCn z9?shoQfwb=VJnnU-~3y`z~7WL*mAEBPf?ZW3^%dwy?f^;NUsY1_wSiXRYTh5Y4J|0 zGlbtR*jqB=?Ty)A_~tJ4w|w^h^wwJ2X)4oGZM#!fHfo6IM$WS8ez!)^d*}V_#roSm zW~_Z6c&o2w!i~n74L3S#I&QSqtf=7oX|PfHXTe9CPq&ZAJyAZweZswK?}>c=Fhk4l z8&{p&Io({rUT96*pNtJwpH3f?I<cN5-=)rUMrzT!Lf<F3N2EUF>soB*n-k4{E|=lC zSyTG#1Dn$i96kHsj#xpSw#D}~58VTjkI42^$SBY26f8G<Bx>+T)bP<%gGW;hA2kIT zarl@2UZBlk9Gf!ZeCLeq@w*?NU3@F#z&4AGN~(`0Z1p+Ok^RbSX$RNS^u;|Yl6O!4 zN|8)qU3pVe*eqK^h|k@OY1WCRIzzLwOWj@NFZ$on`qjNJDP)Cx^!!Vkz9wdGGCe#i zTleeQ54Nvw3;(sOvaC|An)>zis|&L(+`6#q!mkT$7mi&}yS7!`N!?k$J&tp)RF&?R zsuv+&+E<8vbq!whFGFFL6mMG{Pb}A8kzbZ2mL;ksrf0JB|D;p|RuoovR%BL0{#g0p z(}&9s|2|}X*!)oZaQh+sR{r+>mj1T$E$7?Lx7zd6%ltE`vHRot<MfB?5AzS*Z~ZUh z*~_AwIWa&*rqkt;@<k7~C3!05LHd)#SITD!oa`5Ik#duAm2&4&_Eqv#KC5(ASyxF{ zd9Bh~<y@s)<+n<%6TeM-<k6m?GE1)4Ej7fo^h?s0<1dzGEX{bj;%4_5w>Rz`-~YU^ zEJ>Yhc1-GYShdjcQo(Gi<E1YvxU9M~^q4o!>@~eH<9+4*&nnF4S<5DK$#BRhsDE&N z!2a#FMbbha;f)*Wi}k)pUNtP_t~M^dS!VwHMy>qT=PQ2OzB)GXyZno^8}Ht2xV!y8 z+4qLG?>KMAGTpw*y=}L7PPzPzcl$Qn{hP4+cl-JcSNEAFZC)zJ=4~rGtt#zGqW52e z@1F&x{<D?&JHPP5f6n>q3N>0Ts`R8u9Scm7(N2`veBpD|i%P|+d&0KwdF7YJM?QJZ z|MRjT_wEUi_jMPoI{E4U^`JlX(~cY6d?=JOL8NKPj{^@Gen_&~8z1nO{?pSqU+7QB zgXL`YvLB53>e8C#>-~si{Iljn&FLjxo!8p`UR-j`{pNk2GZDtm6_>MEicSdTE_&sC zNBU#B%H7wS!h_bat~*<j!FPtqW0U-(Ib5D;(ud@xeEz;}@-6+@--Az;&GB{dvl0w{ z&@29%C30Kk{IDC&56{Lf|9we%s&cB`f{#zC58tj<a?I>BS9?~KaV&VxY}<t?QrTI3 z`qNc1mYrFdrt?O}y8Fbs<m-uE^UiL&lb5r3ebV+#(Sft>-g|fIddc?PlQ&i0-0N|h z`3>Wf8_sVOMcg&-o{^TXUo29b&Qac0=pVi0E06h_!`G&tS@`}(Ib*JI)y?$WXOCr< z&3$;k-SZ3UzL?hrm;FAy53#g8IxETdV`jE+@b-`S<(5ik<hO4YE0WV$9vPPYT6&q? zf&Keq_Ft-+UccRVzEw1<=k+kRSlbzK388+wZe2NSH*fu-^|SPU|N8nUJ6ljWr@wZZ zen)x7y1Rx`>lxo27QbfxY|o!QXR*(*HHS~!zLr@WSI7Q6U`F7JX)d=<Z+U!Y9q$|U z_~q*owSLQ7v&o*gd}{HGeH||+ugSc2W{H(`RJpOy**&6DU2+q?x~F7B%DOhI?8-Jg zeuMdQWM!Cg;TJ2XaGiJ7)m3)h(V}a!JRcvsXQ=!v{HxXfBj+DkpEjDU^oLvR;{B%_ z%}*Q7yx;x0B<k?KfB8TDKl}c!wC=LZEah)ppKbX+ThD9hNj<&aVTSp;v-!oAkCqE* z2^t?&N!-_&Soe9-JFO=(?VWlOyMFfi?^<mXDz?@#?8U^6Q@_+U7_EGNEGR$CU3Pa% zs?G6t$=?^o?7kxB^3}lo)7#2#Hd+mPrk_puHuL1S<v%a~IJYqE*zLn_CfdZm+i*PK zfL!+dqsFOoY#Wun*?zN~lIXwfz4GmS_xH_DzgzO#vFkSf&CM&CY;Vu=o%+V|Tg<AQ z^V_Fi<o(7~ExbM1_%-k6n*B$0Uj^GaCwEHu#xj-u3=Efg#kF{y#;a2fu~Ma$D^9z{ ziUx+O{x1AoxGE~{vD=j$bER%s@4T1xG^*#dLsZk3v?YHhp3|z{-S@TWXMD2X<EK*j zc1t%Llg=(@Oxw47QnSABk(E*(qIZPvEx5M$&l>e}5%b<8?N&C4Wxn$`DD08kV%PO| zOaJake`NF0ZzH2_rpMxlYQII9CX=70$hl8FoymKg`F4i++vgn*ROT+)ZlPx3EPtu8 zkL#b0_{%Pjhd(Zf6$Z{!K66XS-{g_R=Cv<0b`?&!Isfl#!Ft*BO~<xGG-VY<T|W2B z<o3FwnYy#LZjYU9y7K5RllIFpvlr{`UN=$3divI7sn?s^&Th7Rw(0e4nc|zgIek0d z)XYxS+kN2KjMI4;#b;8@9|@Z6nvtxx`vOQL$^7Y-m3MnCr>$A6yL;!|rpsbx(L%db zKOaq6dw165Yh}`Yw>NCt_GVj|wcqWVGV5=;njO#1k?gY6-Da7!+4{qe$TIiY$>zH! zpWQh7?#*X6&hG29%)A+Uqb;H=T)Dl>e4e)0`58hd()ABpPYddP?yI?cX^x`KHeqH< z*%QSlHnD${*;Ju+_VJZ7;Sc@2t0o^f8dI~WM)$G&?1`cWb6t48C4A$oOT6^OZNgqn zl|@Ux7`Rv6JaaVYniThuu)?4@qT)KUmH#DWZ!n!&`j+pt>1*fLll*^ws+n7RxQ747 zw4Y_a?|rC!wR_T|Wg<&Tym#8Brk(1VvR5;IY0bm!f2RIz{U`U&@ZZgUrvIA%-T$$l zkA>+f(^=-d%;oIQ*vwe?*!|e|dGjt!Te{8f?R+c4(zsX8t~_3u9`s+Rhb^1EyNS6u zxQV;@cGG&6^Q`*IPHwrgr7zR@^0KA6p0}r#X}x{CWxn&rfaZYd7dXB>nAZNS<sQ%6 z^!%+!I|6r9SA<lARftxv%x~Y{v&3c9rsI)9lF~DUBgHL6D%C&vRvGMdt2+H<-^<6B z<-PAusWbU|_ly1J=QCw<t998PZ+sqTlv$;`gm=B7+qB9*n|PYOSOp1t_$rv%dYDbf zQMf6$L~KHoLssR4TMk*wE8jZ4Vpz$%q>ue1<0NL4<IPuCgTy^z`6qF!h<mJKU&+2i zZbFru3crWk1RMS!d5>C!ueKh{3cL*_9~6E%d}@4BJ%LGq)q%^#!&!m1(d3IlZ-WWb zr4!92Y?mZFlKF!;mI!z(WY1(;!Z|@rZi(iEWe&5dCZsvcV$6KzIEy)xZ^=&fOvWXw z6U5|}s7{#X5LGoH%pr;~^QmJLb0+VSt?Zf1OL!-k$t}^Hu+8CC)r2yKTa1~{9lIJt z7&SjBylvdVe(7Gb2(u<z&>Kf9hL;RWn%Q4+EK#1&C$~g+f}ev`<%Dw%R?IKoIOZ`G z2~U`9;~}mP+fedRA-1uE_0rYm66Q<19_IX)WIf6i?%H~AP7qR1m0Kb{A<m(ya)O=1 zFNT+o9laW-Fll~OU~b@HFgno8!(t?G!hzq2<Aj1jv&{(s1?L8yj|$F>Jgi1nnt7Ow zcupAb8_Ap~P&jORf<r;Mq345wa$^sR(WT})j8FI!$}1)WI=C@PK6P|smgG&@!Y;|2 z!ZX28E=6a;Mu%fn6LvS;VSS><Z^U=PLgBH^i3)|sjXmELgd2Pqj1D&6VSXZ~@V#Qf zNe4CNnQt7IG0bF2>0;k0eqyh~yRQntjXtbKSDWv!Ke1EzUOC}+;~oAdb^J!MCrT79 z+n(T2Fm5>WL4lvCQs6|h+!I9we#XiZ&1aa5xKHTt8%dwYQP^yILPnvu;mk*ceuhex z6UuTadJ}d!Jgb^e>F|tk=5xnq%rp5@_OVAYq%clkm3zXe;LlKbs9A?)lfVfl{!c0s z)EjMHI*KtyvZPF8kK{=)oN!bwg>!<c!?cPCOC6>$MZR*J#u&+#GLt=$F@<%4s9cKb zgsBc;RTDxT!Wbi;I)*Vv@}_KMk7Q2aonR`LqB~)$!?mgjr4H8^BcD57V~*rc*~@;D zA%%GYuUv}qgkA@;stLXhW{fwVIGQov<Vo4gev>JMdxEZ9iuQ!H4%@0Gq&M1dKZ)eu z#CyU_;kM0*GKJfXIo}nm8{RN%I^6t*Ws~p;KmJYJC-f9{+ngwNn8*BS4*N~s6!Qsp z<(^b3oM*1Q*ZhWY6Z;7{{!dI3#2fZJaQwz}lRITS`%U%~`3bdhDfScoI()01!0f=s zVEMq2kI9nb$pZFD!4usMabFbL8)TS@PBiafd7`SIUpe8h10S>H8^=BdOQt6s?3P?l zG$t&Tdm=F**`cp;!efU%X3KYuehik3Pgn%H=N!rE=?r6CbXCS>b*bRmYtCC{9l!W0 zK<hx4ukxB3CP%w`z1Q5>a;(eOdd&@y#G}iE!*Z;Wk1o>=%gH;|<y+oYK0VNX4Il53 zR}&&<-gI~w(p$7baO<*jAx_LM%cT4-XPD_Ocp4$^*wb%(<fn!6nttOWzb%~4^cx@f zYvKH+-}uOXi^Eb3=Qi*)Y@Yq|P1>BqP=@r5?`Nxa-kqn}GQ-x%X-bgH@5Z~C8ooYT zikaUo_*>Fd=bZl1rq+GBMO=S(mXiCFt;wyCsU9vrv^PH5aB7XIipFZk$jL5|+^2S_ zoT>^iYe@3C(;;;B=Ce<mb)Tk3pFTg&cU2|(sT+}T$JTvXJx|~Mc5vM{r=K_PEiwAG zu;=g7R2hx^uM&RV?6%OJynDw?#hT-SpKkuOus>D#|I?*DM(cSm(ygv3u3yjFr?lU; z?WwNlC$W@DX@A8N(MRST`WLXPHvXs8!rb!-E4v+Ei7YwyaNCo_=}U_ina!JchizVM z*?*R&92)M9hT2m%zj2-?JJFYu({Oc1>gv|JLa#g0-X7mHYu49{)yiS@VyYRDV#i-z zTXp2tU(>8BU6aqxI_&;5W!Dacbpc(a=6xdkMPW6kzV~ilR<UAz=k^_Qu7zbL)&7&J zoqpr|)0EGFDW%^OypL#on*HAQW8m#mpA&+Q`sCH;^5?clWM^&P(ta!Ui>mzff3tQx zS}5LiZOWmovmftaU#YXn;%;x~=hs&nI+FbVq!?YTnLp24UNx=ztlX}jReSxv2qYgB z;=fyS+wQ2%P0cFq^FJPV-`9NhQvPBL&u4{anOyrl4hH&)R2qE#TVr3F$mdpUJEKy~ zxnoCr+CJv&&ILDZJr>P+-@z4l*4a2-ck7Ee9V#o_P93|w``^pg55>HTr^OyIooTy4 z`VHfno2wI9KOH*~wezU)=GvdDQaOID%bA|Tddb(reA;{2KZ|$sy*<(X(O~mNx1Y05 zbvJHxw^H7?F6*52->bV`n7w%Tmh-M|Ma!AG3$q__zloT6cVnOizxC>*^%b*UF5lQ+ zHh0&tSrOaPRrhV2rGD{w#8RL8UA0?YU-=j&{w6Z=(GF41Mc>VhZ@-C%T&R*YF?4ax zaW5UA=aXJoKGRB^S8Oxe<?17$U@pVkW%0`|pMUgtQ?1rU?ar!uXA}jG<jkJxQqTR{ z?^$<~@#Gcktv`2tmOPREUgein;*$3%k2FtbUpXG26wPL(ylL_a;f?G^H~Xci2C{GZ zDtx3+;eMfEXI#(Elw-e~giQS<&V7HdS@MgUkgXn1`q_y2UID!&N$(H8JM-tO<FX({ z#~<4kM>hUw|5m0uZN|fI9Q$rX2zIAmiCC9tb$nahZ^wD|jPvaI3p-ce{KocnYfk>< zH@!Ny73UexuDq6;$}P2#f0L@W|C#P}oSy#9tIu41RrgzOn$x45mNRcB>r70wKP~iX z^Y=|hc^2GV{qh%I$jvj7-6gNLZmsqEt{~f5V%*=~zv<)kRjj^>pU?NqIF|RP<H(%I zU;FRrZ%=rg_VI6f&gSl{kFxcv_k4?q6aTjGkcNKKr!&FQQ(xZN-W&X;@dl&k!M>9Y zFLni0D@=VmIVNGRP3W74i*uHjM>f^<y>vcX9RA3e|F7w_KXZ>pb9xu{X3g{07GOUr z$6v}CtlhmfX=c0C?3Il3`ipI@?6&;xcc!T(e)+fOe|T=s4C3F~@j3j+ffm)BZfBp? zOn)(BhWqsuIrlSnW=z<ibNZkChjqN+?Vs;x&SquWeBgMhZzA8?w0dKPnfy-AE-QRi ztmZ$R{Nw+r&l1<?tu@H>U$R}{ZQ~a4OMD*P6E}&gs{C8zDtG(3(6n!wCey!Oon7Ln zvZf(r=cJjF_7+7NI=*B-mFqd>-+~Ql)20ediFTBnQ{t<s;XGM`*+H^zchKp3lUk>q zTI{yMc~MO3CX;vN1^zL7PfVnByCrW<KOC@Xesb#(=`AZF7hg5J@^Zmmq3~UuzuFh; zT+V6@@>x04?fVB?y@_j1yyYsgy?Mb_@YBz#S^0c3v}<B(Vk3NKe4osE&)@9+QqhX) z1sV$t=QWAFY+JrXTIFKRn%3D(@l#K)Jkx!{*-d$REvt%|VVQkv(&psPp2xo(=Q}W8 zaO3&p@Re^)tL&X@a=GYAvH48PfJrW&12yH3eb1Te;=3?OChhx{GRwK8!8rjr0@rO! z%A`v!*WaJCJ?XiyuHiRr{lIgVGdzR0EGe?=_3q~F<NaxU`pN306T+OB%^S{YX=fg- z*GkNLv(bff=8DuAU;c03I^|`L&AI5u220oZ1jNeCyw$n5=imI}PokuCzpZ<;v3a9- za(j~gQNH7SNBWNS9ql{rcf{{lT;E=yYSV8~Z@%7Gc|$)r|45x^wQ<_M&_~YI9B(-n z+FAvkJ95Kzqvytx8#OmpCkH2gKf3JbyXULx1ZN9Zw^aYgc(d`w<BgRYf9^QG<zWKP zeLcfZEBaq5|5}l`^4`jFp_h|?rCtu&IK58)_{on&O>;EfPn`TD#nSbj_VQEBpIj?F z_NnlnR{pfYMy>y}@TVm;k^7Y5r>;MF{i)_p@1Jddrq%@i4C(r`y1^^daq2QBtu;zo zv96(Qn?ij&mre<bT(#^}*w&ETQ1_=Rc4>uQ4X#|ZFKfZ4(8gB_tXBE0+PurNG%z;Q zyma%cb$NldA^xF@s#e}x)&FYsvQ@vYn3V3Xa_|i|zS5kvtjgnTkoQ%iuT!Gd%?s1M zBDOWucJ;QE)30j33jI2(Dt2zr{*e3?_N(--hQG@Gs{Xb2S6J=xec|=jrhR)U^7cC8 z-8k{re7hFETVnlsc8U1i(DKXXuiyO=yX*Y@it4WE@7Df)v2RyM|8?OnF17vhmZ-nh z{FP`M{om>QMd>eYdp+$Jo4?krT3r{Gf0_M@<KIPgOZs06{}TNtdwu!W_g{DavaNOd z?>PVJ``5+4nEx*P=TX1L{^I;s=f6}gUle?D<(rVgRaWK}SLeL)<9+U?etPB06zi>X zZu!ZoA3s_8%9?kMnqTm<L{`h7duOAb+np3r`tLe#vGkP1c}r@p28aenU-iH1rur(; zbUNG0sad?d;kU2K?Q;I>wb%LamHjK_U)arErG1I#uK)MNu2l{Ddc|H>e>I6(D1Xua zg4EvF_ltCYsn*Wew)u(7;<*#1$NmcaYkh02{dM~boXgh*Pp^A?rTEi}?SA`$9rh<@ zo?3deXz?AD`4eY9726qVr@j5;+oJY6n&l^-Kgs*K=Z<pxgzBeuJLBah+&^u9x_)x~ z#Q%EwC*+^F{#?9ArGAqA>C>OO_N?;YOkKJA%H6CvQtQ=LbiR@^_4Ex3zOwff=hgt* zm0~N8W_8|LVYV{;O4`>+R%`lJEPge^YMtMT$*-8dF8t+DyT&eX{;Km=D!=ah<rEth zekHW*dds@?(l2Ua7f8Qy+qF^eif>8qT_5x7x+UIsy|!P=Es4JCC;l?}Ylf}c{guaG z?f!DNYEE6i`78V{BY$P?by|OA^_Q%@ZtJhU{!;a~>E7z^FaP?@5-vLAcf_-NkzZS~ zwV}J!sf&G&kIeNsUaDo$EBpDbmh>Ox59b-rXEmm?K8Otdutv2ajAvdc`}wNI^zw%E z#RoPQKDcT7;3o5fvpydlpWI|BSl+Qw@>eTMx!4KyCr&??#Hfg$RxMf?qc(ri>8F>A zT4OZBPhKtRjnTe-@@rA^ABQ>(`$_Vr{huuVWLz0nr?-DX{gn7q>z`cz<o`+f=h{Dh zyupXBa+n6)UH2|v@s$iyx4SEktpcwkGW9<j&V40ntKZsi=_}k>>u)Xpwwn3Xf~r8- zp#8ziufD&!`;~2}+h51Iq3>50zgqMwFgD13<@{3B*vRmUp<j7-&04oE`-ODrv~?>t zm+HnwU%zO%Yu&l4UrXk_Ti^cjVO5LV%KYo)F9Ltn{cV`HF8xL8FVDRm`q#X_1nu>) zUpoEu^DlYN8TY!!U$KAX{Y(At=6!3{zgW#@d1#}|{K=1g%x#$bie+w_-{N|q@(BIi z&UbI$N!*~2oRl2#+Q0wof=&C~lXf1yE4U$SadNrfK8`evjm&HAFSin&b8<~8pT+l? z*+083*1V6cnVYctfXO!Y;+vCfj+N=R-Y(St8JTSB!+6b)U1RF|nu$$*+{;=2ZR6X% zcuh!ze6jt*y2jsUwN52$SrNGD{*x&i{>nc8@~C9b<=K}xXWCDmy7Sh{!_S3n!@nJ! z`nMppKBiJK{9c##&h|4$FP8kRTr0I<_3DJRZLb4!)*gFN_@=$k`$m}W(%1K6c0ZfG z#!UBlP}|3?i+Acgyz{ol`1|ZxPg$Nlwyl}JbG80G$(6^xZP{^VdolmaupRmnpZ53$ z^feXfbQVcWQTCkjc)=WxfPbrZt>0Q$v#2+F#<YX8X5T)4YnOiJhei4o7yC=!a=tqM z?U4;{;@K#N%@Nnl7ayN9%};&S`;zAyt8VRVeqD9!=8K%=Z)bKJhhK>MKH;~v)tkEL zg=%|SBlp>ET(@+iRq(cJTg6Tke~{^QpVhccuzH2<$xmND7v>z@_bT?uci)75(+9Jk z&30Q^QEe_EEg{YEQp!2eBfKgnCdbBAacNmjT8`Su8^#;YF1geAPN8U0MZ~u=cXxe? z3Qlooo53&mZQ|ce^K!herl@~gA+5S2Xj@+5Ke4n(pIW*4+Zj1Z$Mk-SZS9P_@Ac>Y zpQVTMIw!`?U$NctxW;2)k!O=G+S**pk&o!pdg)~&{Oa{D8)2UHOb<d=MLyQfk7V1f zqo%sF(B?tF4CTJADSE3<ysA0dYt;Sd!-v?sTD#j1+BO-6PW4R*UZod(Vp_@K9NpUi zzVAZQSE=qkl^5b(Hhp_QY~-PhF19~bM;-eAq-a)x4_m<$r*&^{tyx~Z!?xnw^c|`% z>W{W8S(B8zII=x&fzP($*(;T*EpM;r^1JRD(rY^{Xxf5A8*8_t>(lfWX|8+9=5m5} zSK`En%XSAY-0@{bLCn)*uFIkiu2s_7X};sCi|O{ZXy+>huXlVs(wkRn9)G1wdRMPY z?Do#vAy<lL@78sx-M;m<+mqd{dDRy$ynRq6(tCIIo#?aHl_JKbg|~OAeVRQ><Lnie z#9-m2vuFK~TG#n#nOc#rZ^*$bE}_1@A$PC1n9rKEV%f^hteLY`^sVfCHEY%ixr$hh zxacjsGUikEmi*m&owwv|F5AS2z}pEbb7~jvvr&$JDmnEjXf37S=kwFdK1a>8=u_Uc zqf;X_weNA(38^!GXKhkrO=;9w5E7}uZMiI4ZT4oHEtA$p$lcm>#qEjjCT{PeXFsLs zt!;mEa$1tb>5VM*?w;2k7U@){yD9giXeO_2nX!ROhjZihH9LQ`<@j&9v3#!g-W%<) zj>-xC$2PqG#patbzew8m@wERA{F~Dw9DYCi{`c0*XLtPnzp{Cfv*3Q3-PFp?e|LL# z2o|oM{V=T~D128CPl0i4I8VvyU7<%4w(p9L<thAp$HwrAZUOg^+`Q!N0X)UCcb+}M zv3=?7pq`T3yWSpoo3}Aq$8G1_JLi(NM8Dz_D4(^_XsL1g&XQ?<dUKaf_D-LDbgA+A zoh4i|E@@t!;^!D_<;^(#T+o4~o2Naw6e+f&M6cId{q~e|$)U$K=B&9U(U-gAb^iP{ zUTfTvT+dY=SaW3tN9*xYrD*Q%<SCwK?&?gPJLCMyH@i(2DpcpL)#&~E^P5PL{yy#2 zoAvKK1t0GZwECS_9^Cfv;mNfBwML%bc4%)@N~@o3^82=_#yPt(y;Ldt*)cs8uFLgb z$8K(#b}H_zSl&Utoy}j5U;dT(?2XsnNkKQSb8l2l_3yuQ<8pUmsoGH&lQXa1t+LLZ z$2&`PN^*;DPGwDM(J8^Dt$R-zW%eb@oRK@h{Nkrt|DS!%kur`oZTUGZH|rno?s<Of z)9)!YUEXnvrho9zxqNy@>iO5tcczMeb(Nc{{fldR&s3xBXNs6an$nZE>`&OAtMjI% z^<I$Dx(yn$fA4HQeP8{1Vamt7f4Hw#IL0M;?q4*+dX4vd#p@NfLOTDx?q9)GeSLm_ z>9^JEgGvjOyZ^p)3z=MbY0jpDlV!dw%wM|efwSI^3CH8UG>6DPzQOQ##`(H0Sy~DH zRko%k^Grmg>}SnNN|~LU61_=$uIJhZw&F+M_xLY*^yABql2>x`CFgr?KazelJ+S}B zn;$u^B<Bm)_jo<xe&ipp|HtHy>MyVTc=RJUL@Hh|-qYFOnbd3jW19_?^Y+C|I;9+U zBt|=I@5yH!oAtk+=&9rFsbhQ=E0{g$dIn2HOkn7f)vH&(vYA&JBD=|ARxZQcTtzLV zAC;-Eg)Jji|5sbM@zk}6k894Pyqa0`%Kp4q<dri=7-NKwGukY-;7fSBHAXM}?e?He zF|$1yw%)he+4nS|`OX2|2P^uv%Db0}m<Gze-aEHQ-Lvmi*<_<a*~}BZbCh>8PdRD# zL#QZHFMRV>qnfoR=Y2mP5*>dvTyy%~Jjbs+*L^FGy<Wy<Gx<{Gl-%QK_q^SMgoO<^ zvJ@OSB6MNG&U=?CuUAgLWtBd6^ObX!&ubi9&mBKkzu~)VL6AuF{^iwW(^4CoX3ksn ziZ#Y_(&8s`nmZ;53J3_EwA7JsaBz93<>{cR>&WOhfu~7BE6vqKrIW?gMOCk<VZ)x_ z|1V?HrYpSqTl2m4{kuQk?wguk74@4NT>9$E%T<R%+~p>^uh?g!Rlkhw(+(TI^3%be zOiU-GKe5~u9ydXJ#mqfA`oYDOu7X<w?4B+U(`r6-V9vzA)TDC)UIEpj0gkU0IC%xT zPmN7oeoiay=;gy&(@*)vhS*J=|NLgtDuu5ht)YRhmU^uax)OeOrB|?hXjrJi;<KCj zs<xijy!rZW>%>|=`{l>}O|F$In6h|g`etj(8PWO4=X#4yS=gjmPo0}J<>tzRf9Ci8 z+|Os}XS<y7^lw`~;cM2jHo81%a5=KsWsm>%b~~QhBe#w(U$|aD);e-mdHc5wCGWXq z+hi|t+4X!AdmeatPjT73?DtAHM9;2LxVNV}qjtK~{6*^j!kPYU_i(6?{V?nL;q`~| zO3%JY)#3N~KJ%c<vfp<e)GYhD`ry$!=hK#*m5LFIIU5p}y`uA{LErVSlUHb+ue`h> zDx)gH>gto3$`i93&#&&Dxn6tyd;O2EZl9^Qt^9Y|V{eMuvYe(fr;1N1+e|-laq)s@ zlRufS`*``non36Zi_TWDRTrK8^||XJA0Hnd8-M$KQDgVVsfTNPA5NY6UH8wuqzl<k zlg??MFO8mgBK3@E%#$59`6-1(R+f?1imWRmwX`inBd%##PW7;wZyoJvd3#Q-&H23Y zvVb`oCk6PWuirfV(cId;jbCGn^ful(+Wts0Un5*Y{QS;Jr^*?-xmvhB%!xJ$>EUYG z)v_yK;e`zs4CdAIp6zN#b6u!7g<-B&liyN@<wicsCA7GC7tWH=U^nWwJ+~{|cg?}G zXMAVueEa$ZPvDxxV$a^YRdYSqu29E)*P(moE;pXr=cmsoDO!H#WTnKuZ8H|{=bz4! zJ9B|3yYf5k>XUogHkF@@t+_AvllT7jwKhi#?G28n?>Tulk$?VDH~vRK=N<XGn$9^c z+`4e<oqJyweq9ru%aPk~%x#0mjVs56R{oXuxhiu;FMVeIy~hjc#V*7*d}0i+<2dCV z5ZCx=`|Q&A1@#ARX!jh;-gxZvt~`Ur@TQ9gzaBhap=0y*#u@gXbF5b`xqMsF_3B*C zJ#`r;XWdMynqa!Qe5G}E+Wp}A=j_kfy$b3|`YsDRUs61&P5QLC?ZX(pNRvsWTf<D+ zs<(;jKAz{hVCtI5y$gFcc<vDgtwxJp@V8Ef{q({wJAY66%~xCL`~JURX&ig$v&}KW zPi{5E{8qRgIN`O=ghx6Pk`7wMyFF7>UhC+wx@C*ji<<xXLFzfpnGYfjZKPRsq+L$; z_BLg1?yKA~*|;UOevNVK(=V#?G*20;K8j%T-96hWd42X14&~4a+01L*j+XO(n(v;s z@cyyl&s${n9lFClbNAHWMTv7|Z#F-STGvvl?cQOU{Ijj5o9mSS6Y&pscF(+%&T;#t z!|{k^$xN@mwKbVKY-PK3@#jjx71K5)H-7x*v+<2&e}mS&j$K^4uH@Nl*Ow7|uKbR9 zwMCe}=Ej&j4eu2@!Y|ttb^n>cwMyH{<LKSmcXrqA>F=JtvTRP@<qiMtu3^1t^P4+- z>hZM2uf4C$$a}u=X2zdFzsPH|H(7_yS!H7;y;oDNDmZUB>uayd1=>%ip53wb=M(Ku zqVwL0pK1;9QGaP1GoAO&yGj37tP`G`Ret95TEpa`xHB`p1|EO6LG#=7<vYvz4=uCM zSrpDzvDZjxQFvJOzkpb!s#Mdeqd#7lcE6Z<we9pw{u%X7<%Z@h7rs~C`TMR;>v>$^ z`hcGn{}yxAUyzpy)0-q;IG<~$bDi%^lgwu!Z!g=OySo0bN~xQyw^#Z@x$;sE@2=~A z+;{Fc{8(fAKHuZPa&u>&KEHhSi)A4Z=GV`zT#>gjy6FCvi@7Uz<gK?3^t>Bs@AI@I z{O(k(7w>jihhEuRD!*#U@7FAEmV7+_^^UB~_8EdnqW!V0bJx#Z9CFg~eDamO3*28{ zNM0CtrPcK8&MWF)sxnl2Ip#i}m~8T8Hfzxg8NcqQUOVT-O`iSKdJET=Xyx)1DN*S! z(reRSq|2Ip*<5GvWpkgzuSj>^ziWis>aJ-z+rQqjaQ@Vk7wLbqUZlsGeA%og`73fd z@82~k&i3zgmd%&VeUW}#;@3?{-oI}mob9bQ`(0swyI|h}{ad;R+?@|bKep+MoNUFW z;&S9h3178uNng)qsVKMmIYNTZH=nv$xgp(U>WL}eT;oM_{4@*2ZoXT+?&5Ww6Uwoh z^UTYZOJ}sMIlOZo>w*4{3b!;Lh%DgQz<lHY-vq&HEfEpIo04rbm~>ZYxINL@)S7ef zR%Q0hS??w)KdrfT@vOx~`Nu~XZfLU?@fx+w|FY>$);VqV^|v>D(3sM#x?pC`xl0#= zwx!&gzcAhCz4Xhgcc%GH`RgBHY}ab4Y<2aJS;y^+w2=L8)OH8=yiu(VTr+QJ`r%De zyG@tb`Yb%W=UK-i)8qYf-icTC7@ZI{>NGmF`I8do)8|`VJFbfvs)VLZZQXKel}uN# z*V6?RQ|Dh7_*ual*zqplXh@;f0<Tp@As$oHWB2TswNhy1lBhLe!IEERMR}!O<=Q&w z)at8QwxJ=?SJPH4vkRRcB>Q#eEw9q6WnV?FhR3hAEt!66Ip4*-uVz>sdp%qDmCDwT z^egL2=36b-`=s^U=<}Y+zR-s2wdaeYmw)U!-~Tn%<n(!$dDd#}YQa5~Q67?&OUoKd zC!bz;ddf`q<Kdd!e|m3=Io*!gqRW?ix^dgxwrx)xZ*wimZN0EfDI?l&%Ui$D$k69u zSA(|hQ0)y-UbRGO^|6ph(@@`)U0F-tEnc;%H_Q2IX!X^3Su1?++?th<8@pwjT-0rb zwYeSF%-pi07j0d8;nuZ`+~_Ue7;OxzZ`@eItKXQ-8I#?Zom;S$KSr8$-Phvi=fNfw zhRhX)YNe{vi@tq|TEiK(ahcCM=6B2%e?M16C0@8()^V-zut8tq60IJ?Rb0nb@D-_F zUMAennSc5Bg<HM%+<xt`<DYLkIoPgm{qb3+u2!Cicz@_#%j=)!^%31o&r}v#9(69( zS{QR~cSy^;tG8c7dQ9hj$)y;pIwkE`X??``CRV$Sn;Ps<VIsQPeWJY=uX5~~b*Q#- zk5tXGs|yT@^m^yKUcmM>NVhLE$n>$f&8#!bzHv{Y<~}cVu(`&lIzw%iSECwp{>oah zFZV^>p8fH4o5$a@72h?^c2^V$efrmFb|>haVPY;{RjE$NE{hi>rZc(C0+L@G{=RZv z7Tea~-!tFO`@KEr&ovA6H>_zkFJ4vF?7H|x?EI-cY&_dIw<Su=T%H@TQEETymEQ0z z$D$jP)hvV`iptcPO`kQ}^y2BaXQiKo&3tX%nf#nxe8aR_g^G@srB)Sf;lG~!Tzug3 z@tkA-8=E%FX|E8wf3#}J#`(uBpU>@H<0$p}=i3Umne1U-_Efmd<Ug<R{(<E`!?^3x zvnv^ULRb?m^^bi1``Tw>=)zE&?Q1yKKHPb<C+cWVI<x5U$(@rn%%6Vf)h?6%EBilq z{Wt$9-M?yPXqwh>+c%$XMEQs==2|sr)v3pmBqttP9AGNfYV{%FO7Pc*fhTU<c)hAH zOQzrH*t)p+?yqLrJX;r_U7>Sp{kO|^ZT`(!==Q2>m(%wR)1F`0yQ@LZp|><OcIK=X z$95T-Ugdw;zC!YQq>|}%?ypW+3#Y$+dL?N6<<~2w+AZO~So=%;ukcp0UyNH1aunNV z<bTmfy1UZm{EeltpX*|7RNIPK|C}KlSafRJo=NYIghWr5x;06vih1RxiQ4a<i}rd7 z@5}qRE`P!I-K|!Y(>iBd`SNxz7zJOBo@4d5bL;F0=O0~IGdpX`OaI8a)02;c@95>8 zdB1kTOo5bVW+!-39$H;W`qWk~A?kcjb=}7$71EDiIX|1(f4Tjs;kQ+H6#ErEo#?jt zq}c!G`jd^4l|9ABisghW-+cbxYIAR4wyjm(T&MR<PLFM8udQ5`cI>Rcv9q@g^6u4y z&bs&Ri`<S^4j&kvmupnaQvKDF+&=&DJtw(`V!4c=XD(MBx?FjG{w`~q`)kY0KHSaU zR5$;j*n7U)`|S>Rq=m5@S$v{WE?m!Qdgaur)^PU1`c-oBi{guBO)Xxbvi`~(`_k|3 zJAQw>P_VC>WxZS8RJKI^iT#SM+W8;nZD^VK{BT*uS{c66iBDqtPaeN?<JY0onl7WT znCo`J&(?pC_%CUZ!`T1$n9||L4Ce**8anqpt*mb{R$TMi;%mfmwHH?+gFhGSwXri# zWfgBw`|R|2rrP=zG50B3FL`gj8nL-)vO)0-p|uYVK5&#XpVZ`e!O*Jk{;W%XHEgAp zrazEWop@dR^W2|n&aN#A`#39M@#cx?v$)T(o_eEVeR2xx=8gk8lT5EzU1{5tsK=S4 zS7<Q3#bCO}Jo~T-kA5ce9zB?@xx6NZZ*fJ>&Yd>5ju~$)GHm_3pkUjTGMx{%KC&(^ z{_lKi<Ed=-vM(hkugu%FK{zEZ%ON+@<aKZNjOM<`Lwk6Wwr<!J;k>r+nosu3tv7Gw z$!<G$)3B^;_lnrFc}eA)s&8_B<EY;BchlZ8X1kVs{QGN8@&3EEnL9Kuoj?0j@YKrJ zn@lWqW1lU(aQa=?5}Vd3539E;J}YrKGrhyp$>)`1!n^7dua%!{mDN1A#Cs#Frkz{Y z`U#J&muTK|@A99J#2z%qclsmdB|k(o_qlZy3!2{UoN-?%sZ8-%jmw$5BQYHvH=Ad4 z3mR4ney(;oW8Se-L~t{|;dJGsZ_3ZST+S2<3s2Wndd8Au<bFiPrAJiovusk0pkce< z<Nl7HjD{Bl4c!GMD=IxxKXN3dx3k;y;f_CQ^D1>t{WUcGQk?Zd!s($5pCY@p()ss- z!mSd1vJ<awU%7B`9G~Ss=OsEtTPo%}TKM?xyI#qc=MUXw``z`?-$eUDMER`WO6#ST z@4kHU`MI*^1+Sm&{H)Qu`$(*l;k%%6&D4_k^7!XdwC{*cIT`zQU7FU~;_JcFvfaMw z_r`1%k@7zGYDd$`{Htd^p1RjJGh<fjzTW<h&lffR$vl4FzwFpQ;cs!l=WE*z|95<y z$QDt<DRzI&h9A@1bfXVFx-Dn6SZ~9RWk2pqb?3Y1uf3susOy{Pil4?dZ@Ao#{LD~) zd*r9Qmg%%~z8mG7-(tDH-L<a@`tg5tt@&%-x4VyRx-GT(Uf+f{d<SlsGiKixPrNyo z^Ypu%h_d*HR||}EO}2$*OXsXU7?OGB-PbdGA0BMaGg{}rJNe@BXD-dFw_RIbIK6WJ z&S00G+?`?UyRtHQkMkb=w=-1fQB7ES_3F^RbyaEgzSlQzNh|Z;^kh=?taPW-w#m=T zzU!R#v-@s7FMrV;ZkxqF?%uCF*HNZlTx)zJ(k3sh=kw<kb2ast`w!Xt`s9<~*TnZX zIqX*Do<+86&j;Gy@ICwT+049*`KD!C6pk^mCp$`MuidvqKd@}>n#mizfBx@TyY0>W z@1jRI<QvYKbIe}fbT<6(GimnO`FuBOiVy0|k}tc+w4qz9DRv9Tn?<UL;=1g+Gb(Sm zY9G>zikuogbw%5%g;_zeq0v{DRjt~Y<@Ytz`|2dA71vgo-d$?7g6~Q|X^8C0ysMt2 z3*A=je&y(!sF}y-{jqj~$o96SJ9Kr9zD>}q6WDfn-G;ek&2P7`=PciwVEvZ=_Dg{q ze(i_Kere<^?>}6Yb#LRD|I2lc9&?++x`m@b%<+N}OO(b1CH9Po(pye2M?GQI{dCwZ zhQ;hr(gwl%oYIAv5h<q*xW$N>Ju2F8E~KG%hf>awsTa;=Wu%vG*{pUeQu=L9L)pFV zGBY>p*^B0$y?E~0gzwdn&hMUizVWlsm(0BvzBStQ*w4j(gDuvD&DxQAvDI>2Mb;eO z+;xw66Kxn4Jz#v$&hEgrW_R+L*{(L5{z=%JnpC1wF~|Md<b#uK)aE_=T4DA%Orn32 zc$4@^!~B+yJvo+Qnaej{o*A=z{blichPxw*_$}Kt*mqc~@Az%@WAd?fA?MB#YYSU( zoohP}zAtaM|GD`-cf)<|L!TE&)bMp3zP*KIkFR&q7F}-36&m*+7H*qV<G;^+s-keH zg0QKAu&JW(Rz=}bMPc59?7j!seGjsqJ;<(mkUjSxyX--B{w97oCV3m4nJ*Y;zF?mD zf_>%-{+SXCGbK1?O0dk7;F;->F!P0H|H^+^47}mZR}`ce{clXn>XC9@d?mtk+Po0q zD=bpH^*5G3;J0@3O_%&7o{}Myl3|pR!IhFBm6E|$k*!yeEm!e6^}{u$57&e~T;uw1 z&FjOptPj_sK3sFVk!J2_ekcE!<#&<wtta-LSj~KTZ_1bY?_M&mr3&q?HU2HUxTZ0^ z<Fv$d!QWj=KDxGr7phe#rM9V0YTz}|-qXH$;dbT^8@UhVM;v;$^5W#e7bo8&$_qU; zdRyH5t-RsePsiU)3u+TjByj!^o8FXPn0mu@^?~g>v^1i4_Z_{O$h?+0>Ke1|>%-f3 zOuRM!7tbom6_;c}GC5b>VPCc7^18B>&2i_p82V?ty5F^@VSDm{+maV=MSLhz`%sov zP%2iil_5NxH9Va;+`C{aldeg|!=}~w%;C@3)Sok|KWA4LXHXYsQWs}bpU$E_omqW4 zyLvc_dN`Z<bq3SdjkCTwp55(mcK5-Pz6Va~9yq!7z{&58lcSp_-)@+EyJ_-!cJ=Md z>h>Id?|A&)G3_d6RWD~&FK1W(&hWLm>DS%^C;uKi>3ra%^TCt-O_Sx>)%#i0?Rov` z*yh;q&H1BaQ7QE64eOVi-7hx3e6e}vi_JS<to`ZczqiaUVQsGc`G?QvdY@^wbUIo& z^@`?|Uark-=5xFfk7;yEE|y8_`82~&E9uyZmXG_4j{TOBc%PlLXMO9(eP+jgTS>fs zow#Q`fBrPKHTPo|l+{NSbHt|Gy%wqJ*tt4;h4$yE6W2v}gr{Ax;?B|yc)eytDZ^I2 zMc4SU-Y&XUxT3V|iWPg-T;Z*K?rYD!GCkb8#pFdq;DwEUE=*jsQK-|)^5&dFzg1cu z2YsvMIB&N54A%wC+<<>fyQTN|JAZ#X^D6H>^TXBNXYWXu^WS|gR<!y8!}eL#_Pw50 zrv=~BzLi^|Ym=^i^VFWbFY-#vH|6a*dH2Y!m$%>DUNd{&;a@pyULVW%ZH;>GC@X(B z)|11&v24ck67y>Bz8xx)i*=8&*(A@N8WFv|hbNBH@?qiJOHF$<9y6RWcz-l9WAV|~ z`#((PZhrkwY3+=cE4bIouw4j{I`@BZri|~BOq0paTx+6P>K{Cf)0MrlmhI|dw?FrL zO8fcFOt)PTe`Gt$Kiin<Vz<3Z%^J=223}WJzI8z?_jTD;RlYK9PPsi^7bjRQKX|O; zOZaV#px0L!zxq7bR_5^fSK;q7#u=Y3E&Wn$`A+__^;(N7eb)ncHC)%<YLDt`z4~bP z7u~|Jg~#p&XUn{kZkB)W-A|77UtRvjwgxeuX8}KsbQNS69@l#wbS>_3wCRrhJhE0r z8gslYOr|8aSFip3?fsU%rO&hM|J|Jym148$bKt4Z?{ngKzc02s5j#tEbxhprFVmTy zI9Ph{P2();km=gKvbG|Bwv&I`u@5^^?oI4l_~G}BXR_g+?Y31u7JV)py?kx)wfFZd z`x&EeTE5v+rg%U0U;7{a-@AY9{>}c2{darE9i{a<oJ9m$T?7MtrU)!`kqq<;5t!;C z8t8jPV5^JlMTZiBxvt_DeZPp+y4D*;@Cf#Is2}n8IHkg^NBDdvXVRt_O3OOMkCqq) zpAjoQV)JoRgo0S-(MP5mebxx9J|eZzZ;zr`*Y+dUk8D5g`w>v1V<$SlTmQ)PN7^5^ z-cbG4k$;4-FlLUB=cDk#zS|!cl%7gjd&VkzuIlMs8L>~M{uO=A^)qMx+vOV8ljnB+ zDKoQ{cD=nOEP%~=_uRQjZ*0osPGyL1;SO4}zHvQc>ZkHg<%`bzJNNJ0l%w~L-fwN$ zKYPD)>R0{`{0nmaIsS7L`JnzoSVN<zGv-N$jS_#Wi`~TjB`5ShO%`Hxb-c7_gNDyK z4Xv)AIU0Ih!DWF#Q<lgq+M?lW=^7b0El>EVYh{<XsH^L)*buR)n$uTktqRHuj15_C zvuN20&q~+az}cTVe=V}Rt9YyX+mv`46}d%Bj}ku`h>FCzhHI%*b;gB6d=ac&(eXn4 zS74x_2hXA;B}bKjLc<WAr9w$NB>Ys5au_ywbzV#|xvM!(%s)8OFsx^((WA(ZI#Wd- zAFa?*SL^f)iL=q4x11|!)eJAuquh^JSE<Aa=?A77I-gmfl{9UJYpClYk0n`2>t=Xg zJz8TpKdU4Bh;~S@jtKY4X%(S+ytW<{+Su}{V`-A+RngN&i&m+JbxjS4Un919Wn+Z) zwM(%{dn5dLkFsrSd?z;hh+3A4S@+qJ{)+HD-ru`)lekUA<U9CRbpG(Daq&H>{zy1W z%}#iJVDZM#oTXw(vv0WR9xdBAH>y)MiT$p6S=ZbvQE$X{uk5{{{VgbZWBi-tzmFOg z_T1{6{77Z1`0}HfuN2O87=LN7&^|Zm=0XGMpKJB%-2ceUl?lFU<9%4OE5$ZvV~zXT z?x=LX>YjZ*cE!&u=PlhB5^1~W?1_x%yNmZLzKIY_op(OU?sHsiSywNY>q!mKrHk*Z z*s<bGpyi?>x0%In*R1%lf+=ye(fY8}w~kqf+Vxt>6mP%V9pq=cZEgHZ^W95gudO?v znN=K<ynE%{Q+dhTH(TGfeN(q_ZF2j^_t*a(v77(x@XjTFLw0-<-mUkx-Fxr9<z>74 zZP!KL@_(Fdzj67cx*fXaKT@jH-nQSK^X>Aps`)<Nm+NMDW!lSr*!gR3@h<=He_wVS zTz>zn-ONds>x|O9zju0nKRNl^<E{EJ@lPE7+m`<NwcKyE?B61XZl2c@awCh@zbc#< zbw?@6ZFMGd?lS%t#<%jmBu;BTRnMsXM>Xe9_y;!i=-GQ4kIxQdT`oB*f2wBc@+&i@ z#QHAWcqI9c!M(!3wEWV1_E%5iG*ZiNtgaSV{w7=Y++yxjGykUGtp`1{Zr}WrYPdXK zlu3+z8tXLXY3yMPVJu-xVXS8C_wqmZ&s#j>z^#?r!{b(clU-T;e{a=QHnTm;`syo> zpIT8dXZcrmb#?v?ZBd8UUc6?Jy~y<Jtjx2U#Uf9iiLAet_L{j^YQfgqxAOhCQ{FzC zQ+jgSTZ!lvfB7w+Z@a#=o_TuJM~@2=+#AAd+DbR=zFB+dx%{o<0=q}u-*SGZR&U&U zCoX$`=Kk#Zl>DvbH>%$@e-r#YV{Xd)?UQQ*_eI2;&HwcD%hQjdUqru8{TTY`>W8bJ zO+T4_-ukWdL+Q7#AHIH8{UP_g_mk~o>G!iA&3-rgarA@gv)eCizxRDwe)oIf`)2q3 z?%Ulj-?w<5@V@w3@x>ZiR$9d&2B%bS&o}h;{L+8Wy5VOdYXfUzYeQ?JYlCa!(T1aq zstu}*OB>3WyqQlkoMt-Bc$!(8L7PdNQJZ-+!)m70jH{Wm8M2wO8MB#RGrVSc&G?#G zn&CZ@8OuH19F{%eH+XKy+z`4UR$;$Ec7yE)#sv2S^#{%e&K+oPjBUKzaJSL6VQ<6U z#@fce4SyS%8=D(B4=5g3c)-1(pRt{>oq0Y(A4?xoA6p-z9d8ZW51kK|4=Nt8JaBoS z@*w5G=L4DtRvySa@bZA<ftd#)58OQ9@<8T6%mbSTH4jc7U_H=!!1X|QV|Sx>!+OT) zOw$?T+4b1hF|1=*$Fz=Z9pgIIb<FG7_c7jKxWiE+yo2+H*oWK)X%DQ~{xg^5u65tZ z^qgrw>p6Bk7Cp8){ur(pJ{9(LEOk6GynjS~Sbp$+5b>bmfy;xG2O(K^UOEIl=n?;( z{Xpk#O}lsSq3w+jzc@F(XS&bM$6m)F!<oZdBX~pXhtUSx51|R}4_+TQcVOL>9d{dT z8~4WDF>kCj*FCstk>+*N&kjtseZo!0FN@6bE6!lt>!zJ)yVo`Ph43vm>rDAtclVbr zKWeHsHJ3ezeo*&-@qyz5#RugF-Z!>4+B5VsY-iffkjGrdd57;0*AC_%rUmK+*L~mL z<-Nmvr@Fa%KjS}Rkx#$-82g$18T^_28U2|jH>5Z0XF4y%!^6PG!pFqNrpD0D(9R^! zXvbCaX4!W;W*Kgo^5*L6OxN$uak`;u`sQ~UyJkY!jjya$MsBQfOTJhy`q!AI@_UDJ z<KM>Svwa2cWFG8qIA2r~zvN}NN$tdC)|X1$XT4MNwR)fQImS5ohPl4)&TVg=Mjc4J zarA9yi#)qs<BX#R9(K&+F!}v;>0NKWS;;SQx!&&<TPXa=-1@@&L%Y{0h90Q6)bf41 zgzMFq+h2DEuDjn`mVBotZ_VtJZ|0|#oiCC#f8rIsvoNpBynXiNy=UJncseU~7uRmr zJB#uRx3@%J(oOw#-e`CF%)Oh>oQq7mud_LOTJ`kX7xv!HeRA*dz1L=Cvv>I3P0K6Z z-g^5|?$dkEx0T)gvv{BGQOzf5Wt(?7ZqA<~{r*{5_wMppv5W3><%w=KpAvoi4Ogq} z!hg%ZKkI5_FF4f~#HzVK_^XU<`1#A9zn=ajy4OMfO81x5RU6|L#b5URYV_CY@9uBW zLL#X)2Y=kZaXW8M@dQ^Un<ICG-*`W)H3=xbd3E!ow*95vf6qR#aX#O2{`lFljT<Us z!@b{4+5IGMr~A99_fOP*ir!q`VWYu+^8J&VpPOo2^(JsXRr<LqMrZno>raAq`s~x2 zep<9>X^d+4Y15*$G3wV(n?GUO8Msf={N(m0w~IFaiIbaVe?s|_?9atETJ@9cXFqTM zw8KWxf0nIB$|M`*`l;zpEq|^vvHSji_qXE)_kN_gdlpafsN3AnTBh;gWbM7L*6)AW zuDgE!<)JwOiPxU+R@l5bkzM%tPm0p|gW?~5RU5D0TYfpw%60l03GI}po4TSz*I0!K zubzALtdvXL&eKnN?))wCcd5vC`7yiW!*;=ke+3^h3qEWXeCRCrP+sYfyV4<hx0Zgl zmijJ^|1yIARF!IUlxl30YLt{}jFf7$lxnP$=7<Q|2@C!+RjM&ls?js8*<9<QvzpW9 z`0NKi-OcB?8aI_Tbbe9FX6VkaJpcdMp4qt;yvN_fSI%oSK6dKZ>+3OLj&Xa#He^Nc zDp@2?FTeXX_It(kz4yM(E|K}Nw*2n<SpJIZ&G)`uD78GR&R>09e$Q*c_rDgG+rEme z|Fq7&`g;7H*M{$_?(ClTVV(Nk*P8FEZtYg9yl#B&Yxw)BYrE%t&ZsTDK9y}s^gp%p zr@22Z`V$*BX?p6Wn{z!PPlefuF8!l*>xayW9<8ucqdIo46>GF+-(2irskLND(5W|v z{=dId-}-t<jOg-Bt7Wv7@A5sm`u5p-?ppn)R)1P)9a0y1pu%d!p;aAPS@Tj?3awhA zm0IQylo}El%4etY|6Z*BncJbtPc?onk<pz$Df!9ePm-2leUtxBI)Cc<lL|{mzbTWS zq;%a;SFul>eEzg%(W*IW@e}k<O@C5i>3nX=<|jEbHJ+c?dFjoh%F_A?b|G%DhH~3) zU9*#2`qwHd{et1K$6@K0W|oTSmW0jqWiJV^KK4CKd+pZMk4wttIzKnrxBXYyT<_=C zDof(#`rlvp`Lyn*+MkVoF8ug%D)*E3&e%HE^Y^6RY8Xv?^-8g7MV*WND*4O(uM?|w z)H(HEQ2wg%cZu9u?iWqFCg`o{ez9oR483*UFDC7pvM+f0wbYWxSikAlMN3>`J3s#p zsZ+C`9{p5&;?q~hj%i1jUp`yPeK%<PrSC7V9n+4uzy9{iZ@Zf79Llfozw$fgY<6zW zpAXN=geAR1OH*TA!>?W~DUEf$er0P(Zmj$Dt6xiM?>gLHD*bAAsd8=qzHs}c$6qY} zYFxEOZu$SE^RJ$N`LU{L-U{`XCx0nEp1WrEi*>tZzgt)RV&1OlAN{V?mfGKq=fA-G zRlznweFys^4Zi2ecOJcyatp7B^S>Cp)$*^(-#GSX*Tuhd|5CM`yYA-Wlehfbr+f@u zxoFj@tW~={z6=Df+`bz6HKg{c!`-D)t9FMfm-g=p{~EG4B>$@W*U-N`^8HdP*j66Y za^wwkzN-8x@av4K7|;S%;Z+;67R_3fwrXeA!YHZzf~HQrA&aj}&e~Gt)f?!)Iz1%& zs@vAk@2kt6)rNd+c(p<<WbPH`Rhz3KN&{o3e&m!|{%`5L(DRb(bxZ?&gC<}7oYggJ z)v}f1SGr%RJ~qtyv-ygTsrT8i&aA#!tDmj>`6~5mSJVQrRj#i>w?^n1&U4P1Srw~m ze$P2;YSh|mE4F6Mjaq*%K>CW?*JZbs+zZNIefE{?*L79?xq<Ij^IvIyrTlf{FPGX? zcE<NyUvY2st<ALQxx)8#>#db#EAM9Y-&(yd@b{JNS^KRP@U3!wW&L%p)tb5h_bdIc zR{Zk(yQVJi_?5!PjZ6GiUe-EUp}2DMt2w`X=Z1@4as9e`SIVA=U(){e)rIe0zWv4b zuk62^|4#fDQNPIk>in1IzlQy7y|--tmD^v#tJ?oXy}z>iOWt1h_gC+~sQneaH(ve% z`^#(hkH`C*{pV62ce}d&j`_0qe`dZf!tN#i&yW5md^_o3t!=T})c)(XKYQ05xc(`^ zvHkur^ZYpy(anouL{hhKEa7TDwY=rdrNqC#cD?UhK20FzL0R$jN4KV~*UZnFEqvE& zSv8;8&Ch+2JhJa~e>H5o#CMBZ_dUzp<k~yil7hePc@!qOn(Ot`-U#FT)N@NVRYm+= z!;-zj^q5q>@8+~<?j37b--#rcKS+3x@xb9h&ic0O54wyN>=q&x{1)OX*{Um5tG=sL zt)10%W9b3G1FAn#XH4I>db-}z=pB3ycbLX?YFf_BuK%w2-b!fyI%YoSI~w}F=I^a; z%$2J9J@xRzDxU9$o?RD=yYr?aNUdtW@27Racg^?Q^79SuK2cKtXW5?0^JXpTamOBA zHkd1V{>%H#f@U_iUq1O}^8RA$%108nC;z-={8g&&E%O^b8Rj`WGO1;{j(mIf%2Yi* zcP|diP;S3>Vxf7_i(Z+k*)o^*F3hj_oisDQc%xdl$)l68+@I|>y)-?x(joX=#QHlM z-*xv0fB4Pv$BuEo|A)Hy4<4~BH+lc@fBdGif1QQQIcw}Vh0IY<a?{Ug40D)exaP3W z=?-b$yGLkmb<n!a0=q>ln0B!2=lOi8{OhHqHQd(^9x45LYVPD&lXteM=1o#BoU8yw z5s%WAdRos|A66g~)biT!4)^SM_lm;J%3d>H{GB!_O-$w76|>xP6JP$Tc+R?+KTB@f z7PTu}b^UiMTn#(qjz(Etiko+Bae}?<viX{w=Ylthw(c_x+uyw4ietblg`6$y7o*t? z>ttNA`4;K(FIvx6r2o^W>V33%g3^c52VM^{9!Psgzw1@u-_6v{$j-E!DV>>}`8k8H zr)Qj}r-mk{s_MceDpRJkOqvuB6trW>>vtxJWidT|mDMtr(ycou+;s_7Q-1#bjQg3I zBWKJFUzW`=c)xL(%|n0fy_$OytXEGsu62En==M|6++m8}L))H9vNP=rJ?FOMZpRks zy<4OwmMLG#bGg;4mb>e&w$8Lmb3%H<ofG+QtgcCzH@nBv_}Mz2r_CE$<R9+QD>yl= zm~o+Gj8*;f)j!Q7z^RXWMn_2VL@mj3b>)<Ie&62t9lLvShqYw6`r~&gcjmsiTg#}s zr(s*X!)?oByZ6tYUTvXY%wM<j<U8qUq5a3-emURg*1)E@c+SLD^Gt6kPm80A@3?la zc@e_j@yF)e%-}h11Ne-08SycmW8`Bx*THfAp=m8&i&{*vzfytDhs@1v<@29~JbbP2 z-s<%3bKllIJ12BvX^Z$gW*L?_f`VqM(;YGnnSNJcI?m*KQgzQH?+VrFAH4J)PK{BD zDcTk5xlUPs;c=h+27ZjQW<KXUV$(Q7-N$FwUC*GkZx%j%r@{5!F6rTw(9POSvQfEd z$(B6(TgxRq_cps9zM4|$FLbOh%h>$>$<^71Kfm0{bNF*wdF#3Z7Y_&?Fg+l7;QEaD zuXfe$&A;1V+gRK1&?by=H*-7V@dx|Xy_-Cx&Ryv9v^<`BmM7Yc*K4<&Kg_o`=b2*j zf-|Sn*bZ$s{c-K`Z!^*B`_kABm8vYgfAYwp|A%kwJm4NWhr8z4o3zclZ?>dtmM)vj zP}ymtq~Nx3j|)qSfK$b()jO0HI6iT5={cdi?}O{wD6f@4@>i6UT)U@f1xX98WC}eZ z5bPwV<hV3Y(_DIo$@Sv@>17-@RsXHp{`c(r`h7po%`~?DeD;ia@uu`m{hd>|@2Piv z`}I9R_Vs@AKaR4~S3S0URk7LX-lD$!LGEv||JE}niN5-=#ma7VU;oO-k6(3|Z~e6C z7w0Fn+VAIGZvS7d^6Ix|y?<!iJgxonCcgi)=%0N@<Jw!Sb;1$y6^a`cy5@1^@a+-0 zA@oM*jnsyJ@wfMX|IdA;+}v?{$Div>C#0V~|CZ$bPru=7b;9$1t1f@zt9m_;oteM8 z`1kg!_kT8Z9xOZfB*E)~v=8sE=C{p_32p|)H#BF+p5c7PsxS2a=HF|K=hRti51MdI zm3t%bM&b<Dvo85<yY)ZKR)2Ln=s)j=^8A_kt2*91>-=|Yb?K>>hu+yfjh;74{oLCH zCv$d+34Pr6^P0}<`EO<m-i%&Qw$DfWdEL@I?e%RQzI(5h>;FyV(#-#M)<gD{?W5?t zzjmiBb>9lz-+Ny>w*N$)$X5HM8=e|}`g6T|i9_s@b63J^mp)0iUHHap>p$k3d&Ohk zUi_7Hny)J?mCr|fW$x4GbC+h_EPBuSvTDoRbx)0z!b*Rn|H%Jx{>%AK=lSB+e0O&# z^R8$yV3WF*uNIkK@O$RPODeSi%e-HgPuq3s;t_8Z|LQec>K$u(x6E5Kf7*J%|9k(m z{qX$BpE!AWit@(|IZAa=|N3twe(-;EcG5h3UuUk_i4tXsy%vWZZSMVYEmJ<2pd-=A zcJGXbSx`qcuYBSDi}NZDB(#}c>g9Pf)6MLojPmq~d5*F@dT!y5?($^E7nLuz{#c_t z|A*=^)g#ps{zCPq5?T}1m|he5Kef@_aNf39?IpQ8a$CN3?=3uITDZ^RmGpEu^C>?z z?8t7_&8xV>dnEnHRH6C8+Z!q(@5mlG{rH`7UA>H*ah_|8>c{Pm@2TxOoLMWHVj<ah z?%cZQmXfojXGP7fukF<5nz_TUaPbD!eN%pzeU$BdFLZzE6~_}x`aExFy(|%Wyl-yC zagY3TmFHYD=S;WpyD{mwdcS(!-q$JK^Jdsg{84&xa)-a)JfAyNzfVrHv7ITmr0(_2 zX)<1QEk8~@nR=xD(bLTHuRokyB7go<|H8=QM$35qf9;WbxxaCn`5*Ib|CdjAJNx$R zp19ZZqc(DIemU;X!@;AF_jc1p)@7_|!uwBtI?<SW?f)9ixSX$Yr~SEJf45b#Jt1&@ z<y_TGSI-HpESu)Bb+gN=xvD{LbtYz|cZOJdFS!+|boHE2rnF->4!KDks<K)2ogu%y zm)we1y82IO<+te`Tlc%H`l}lBR)6A%lG+}|^YvQS!h0fxE6c-qzV7pQ!Yk&y*Yr`) z`;9L5WD8erkL3Bv*6F?Xa?*<L9x<=hx3pDlJ{s_T%8o0)b=#^oA6a^@$neW=)oZ); z+Nw?;S$eO+@XBsAy|4GW7v8fdT)91-=j**r@4d{)E4KT`yz-TB-rM{rNyhWpjUNs+ z+N`gqU%m4R3vRsQARZL8fBmyCeE9vP9g?%Xf38Vgv-T15=}6_HE2nnHu8n!KHcYSV znw7Lg)c^TMk7=cG7iOPLN<aIlZNqB8-0;OWb=UXYR(+JGu{*Kt#IBF$Htk&WXW6F6 z?H#)2=Vt|~m7Uw0_|PWscukIc+1DF77gIwnKG6v@SXbdOO~NEm=eUxhkMMhe^Jj`D z_F21DzqT)0z2ob=Ye%i#J>y)}-KXABa`9@FcF~6yg^@~?cWxYvT(fg+cA2SnYQ+Cu zkIYG?Var~uGkq<+mT$?HAlGv@BBaYjrbpCAOBc$fep&hX+PbBFR@0O=t@&?hvuH`m zjuX<>RUy+}nAW{Hq4PTYVklo(*yNkn@@K4`wDi-NyTS3D%G+aJZ@)eDnLypO$<w>; znV;LAyYJ1yKGs(^!e!Z4J~k-T2|B)U`x&j->gp>WN0r`L)@S<aMv81NQ|X)4ea%-2 zXIP1?Tzu+afThIctA)#~&h7l#wkf*j=c^rFvgRuv`<2=(>GQpI@mbjMzE?M*W!qOi zZho~RT9$wHW6jqY<#(!1uibv*^3{!-t-b{v-}lPGMYj8D;UX))@Z&dMS@_F}uY7D& z8nZCH_kH=9MWR(n`8hgzk1d}R&Exs~VaaFZc^<zy|0OZ_t2{nZVc7V5((4MX**eQQ zR@yB5Gh^%3uSzO;3jIe`*erVg<NLa@j$OZ;PpgK?-nLTPYPD^y+RS}bqUTe>yAM8+ zn&;X6sl+U%C!y79lAwiG&o;MBe!{hH+voddeEy@cE+RX8wiNphE4Q*k`zzN8E1S=} z_%ij(Pl@QvAH58AN^>vH@7!uVNvV6{%)=6A4(~2GHo4?rcFAGsC&rKd3tRqK{yIhc zdRNlCE5}#Vo|^b$e^;b`N9X_ipX*{Yub=YT=`S}?y>f<+*`}VjV+xCpa7cdc<$COy zym;f;8@V;PHQA@PKR=?|87;Z}+QfGfFK#@tc%)UpTi9EEwnVq&?(?XpRrkKmTYc>6 z8@+<_rTT^IOY)1~m&upRFPQIJpuR-C#QVi;1KWi*4-dAKaz+c4sl55V!}jI8ym?9I zOU~PzH#)y~9`8Km&TmKhI&Fo_RrCDs%$_pEL`U<;t%ngo$=21@@w@kwvA%8FB7J|| zp1ZforoQb{wVwQWviBr$we_C&=It^68BpY0RNSSmYOHF%wB9T5)RrkbHNAtvmaXx< zIc1Y=YW}H(Q`)Aag>lWiSCe0#Ke2pP`MUDX@}=c#%O{ubE?@tB!uEr==e+Vf>vPus z?fj@IR=TBmuO?lYx-vW1d}*Hl-Pu(dTNSt7eEu=@*QeUQwXXXz_wC%Lx^L>ft^0iU zz1_EWpYuMp_|5kppa1gw_wV1`e=h$i{_Fim`)~H&*?(^Tt^V8ohxgwz6aT2RsJf{C zTNZ7}%q+e<ZOK}n=-JyebE|LN+v5C%apC+J$*uo94=w$7drSMinJfQEDgJq_T=aHj z#~q{1S8dOft~Pgjy??v=>*(%9U(MI`T)S^0v{X9N^I}zk`<8ij7E$LHpXm$x<vMfi zI_s8;>1kW;)pPIiuIJ9a>LKMS`0|dH((d;qe$48}Ud)bq`Jhzm@1Ct|id&=nt`xbI z$c5*J{QCLbM0w@B3q@<ENpI<yqH$o3k-+`5zpB-{X6Qa!na>yA;eIsh<CX}0v+lLO ztXE|fM#zZAzup~xy=eKg-&<_fJmu6q?~<}=Vd|!7kx}2S6-}6?8r8N%=kg~z-Rl`U z<4&)QdUt7)oA=+JEAP84Ilng5;i{GUU)jsQ-X-*DT&_P^?PQ~Qt+V%4{x|C*c^l(p zQr4!|<`;+6DnFn4(#XAR^4`>V%LuVm_y2D!db2P!Ubj8l()0AqD7{Oc9CgDpclw>y zjS9<Jsrzd6<xeRtze?*rzc&B)_tvC;aZ!BNf~KFh4?bO_8=kQ<%KNVTpW9phIGj$7 zGIL9r<$StCcX#H^_|ubK+_PAbU(%l!zow-B)lA!4FG?qd+}?WS?ajLV)7-aQd3$T0 zrV?|R?&K|3mOfsoq*VH!i)T-P4J%((Wz1=}scMdYeJ$f_SKGPNirf1B|L*Zxe|GoQ zD`7mZ!g%b~Kh=)fw{+>Yw1E1s58S$6cX({yZkl%4Jagr3mD=so+CyH|C3XJGtIxe+ zt`qubf`yut%i@e_WiKb%&D8vyQg_<?#N($Xmci$yaz7QSl>huhEA7<tr)ocE-O(#Q zwRe-3+@#|v%{f!fw%z?8VW)iggz=|drp5aWT`G-EO<4Flw(VWH<gWXvF9hc-bT2r@ zqbr`Z@^|gA$x*MY(q8<V7r1n3-ou{Ff-_%U+_ZSwug^y987q%RKC{t%e=+F$d!N6S zGp)B=(Ve)`UOl+pkNvNu?3d>y7v^7f>|f4z>vh?T#i^~+ZtX9-V7uV(>!^2EgZl6D z?K)m|W!{R#|K{|uM)6%P>YBF8PIl|_*DKy$3+%t%_p8`y-}2PnX}jWNXDe@-{B6hF zqAgeEU(ehz?ee1IZxaM<^EPWGfB9=z<@`ma;_Sq*>lfR<bX;psi?a~g{6*vZrOocw zI%ibJ?fft=C-&c)k5O)Ehb>-j*NJ#qCb;WwQHlN8lh;3a>6ZRKsrj?-_q?k?-{;HZ zzL&9m{Pa!tHs^N-%udS~Zz`UDt!VKytLt~ZFN#jQ!LxNz$BULb&%&&pEZur(X7p#V zqc3hR`ueW*;xE<HE!z7+UvlS(=_wyO#9DPUU_o`v!D}n7@}{r5Q2VEA)r&j7-*oxj z4DY|RFW&w7;`@Ij{(gN?^wnBBrZ9JlU;W)#f45G5X&>($yXYT#>+2Y~uuirw9oybt z$TPI<Dn5K!sp!#{ju_(|S8WSl@N-Y!94dD{bjzik|7t=@`gi=QT)KVJp@hA&B=@Z8 zwR7it?eF@eyHfDyrF|WLauZ$lN$n_*iCLV!Ec?{f7{RYAzZ}WkywyfEW?k6R-D!I- z{Xg1c<MREEVwIZgqU)-Mmu0T}dwc6?rJ@~v_A$%l*F9h7WUDXo>bJX}pkDdvOFcO~ z*Se>zxD<K6W%=f~&HEl-)n23YcBA`CQO}LvRvi6hz2#yRZ@{FLMLQO}pYlTVy2RVW z;~A%WFU~7Fle|%^=JD%}KgoSks_(*7rS5E+6!N|A`sSM~v2C1{QLjQDu-x@m&(QX{ zkloLDE873c<~OCslTUxRwx^>;J#y;8qkfYwMgNTVUf*$Xe#gb@$6wq|`ciB7t8l6N z*PWi}N=2LAU7!3}-^Vy|`?VC?d_TQx<=%O#)w9=IR7Oi@mi(Xj$JNEJFlI)Ym&0l8 zEi(7rr0y~WmuUM(UU!>yean^XiJHCQ%Vw^6YqYg{+Tq(Ci;o|>q8ha>SGhM%)9<Qn z;;WMy{Hmwpy07KGmtL!{)pzZE$GqdIKj%o)hHu$dk-DYs`sRzjgp{M=XUQx+-+OKP z(JA?rK0mb<%@2Eew|mhu?@E8)Ep_?*5`Xu-`2F5iV(oqTu6c&b_gv3XOJtkzF4Htm z$2RR4Pp#nE^DDZq<@a1nKlWlX(^|WJgX|r%cJ7OwFSl4fCsf|M-omY3$*q3VRP*g$ zN)3PA%&0B%?Ad4Mmfv?RUrKs$e#gcAz1Q;P<QM1nT=RC-{-5`9a?+RZMVHSP9(!>) z`ODgizjWtG)VlTjt6Kd{{fuwd#mWDVewAN!{Mqxp0r_9QZ{+^EMZ#8Kar&_rvdLf8 zNZ9JTy%$>i{P>H#Nnh?6Ryp?6x%S*McaxV`%-?sh{pgEU!>Ym_J2SWW5{vyiFD^g+ z!Z_*6O~YSj4S&s%sLkuK(|4OMzj*r57u?BTTn(!#d-kcgZJ%d<cTL`|75CYF4zb@; zZn=0`L-2I(^IrcWo43W^tW#a}hWqXLPUb>+Yq=?A-z~oLe&YSk%o()rx#u??({&$x zzS`v8nQ38M*!S`Hk*A&7y>mU?CSATUzr^b0mXG0k$|irkyJ)dhVfO4q`G*OQHikWH z;ro4yqxafwE~^s7FRDC>X95#_b3E=$-=g<&>yxWiHn+8Mwm5ZV81D%7iaK;yb9Izc zuu6sTZ4O%w)@ylJr+uhVS)pxsaQo5kao#@;)VCDe;mZ8Bt!caaEc3PAzuTi*L$%&y z7{AG`{}#jXgXyJiVh3MqZkv#(T9%}&)|ZQ3+r3*?O%vGpyWl~}hUkK{4=*3EX&-qe zcjr!6#}m04+lb}PkAEiAdVN^)YYkU7pX<)rXs5t;H>Mc`w_CP!-Lb6P%h{~=s_^23 zJC-ulF<TaYt`-kpec?tbS7P1ub1i??mByZTh`pY_d++tXnc5|5U+>%dyYrp;r?)>n zfA0H}+p<cInN!tv*_W8rhoh&5#a#QjNuO)pjztXy8~hiXpJMkkJnv%S@2R`jt$B63 zw;=Vt=wCkGf)yWbG{|b1@b5`_peDPGFT?G=$%iGE{Nhq$QhDx_g#KIL&Yrt}*YOLU zEr+k)vw5)5BkRdYk5z)qYfF^7xQe-|Mfr5@7;M_irK<dVMSxw=(Gy!`PP@NTlhKTd z2?;EzxKeZI)gytGUS0MY{}P_$^|h~&Sh#M-!XIy5aEV^)zqk6(!;8EH6(zx)wI#yW zrM;F-k<nTyy?MfiBR6y|t(CtkveT&S<BMe*j~}bEU6}G{o#*7bH-8JC^;_Rh*`ImJ z*VKHjt$O}B^_-d0ZS>RYe*UR`7JhF1?E41$GaG9i-?KW4oryE3Klq51UoT>B!sVv5 z++}(<;?4HI>D<Jdx;#&Kdu6_K-R+*++wO<$-H`CGr!_l&e#P(R?fXlsA1fVS^vCtE zSZ-9wpFYL%IlAX{<iq5&^tI!o_wC&C?A#pd<#%^}JvYnxyxun*zv!B$j}CUH>&5Ng z@oZgQIq%NwU$NQmZdF`gxO>(#o~TU~C%-N2TiQHrnr?0C%XLf7p1w5w?w*{#o7$e% zPM@xSKPK>#?7pn*HTGTK%tX7-v7hb_v8lFmu{lxRv-i*qL2+9@CELBe>x<8Q-okZp z-{Pd}KNBk3yH<Txd?c<TKWmTShSh(y{(LytsQz)*DR%A7{l1z9_pkGen!d-XFuwb| zO0HM%JD=D0j;!^}KKJ`v$J7t!oTvQnU2@7Zs{CBlwaC-rtGBSPeXX^3o5IgLUz;}d z_~Wwdp?SYG?q)r46g_vIPdzEERdMaJ#?QtFtybR=ulV09UQxgO+fRP&`t^JEoNC`a zxlJIx_?+-1Iq8z>hqIObsXw}3V*N<?V?)^LvpFC8o=1tui)*Y|vH6|F{bM_mwO?ty zI&s$P>WQtB5@O%o;Qq~0w_(*(_uRwhw|!eJ{ww6|&hnM_L_RKZeg0?p)9aRpmxr0K zm=~nwEO^q@^oak`n~9Y^p3l~NOaJTsBJ^JI=JPuvkItT%W^d2zTD8=4`^qb2+N|H- zd3=rvUt=7m^?HxFapC=)^Q1h!rx`I<t^K{W;>nwzm0Q00WKDHFJFDtmj%jh#NyV~x zF`}l{?=BlJejoF4XPw!nm)D;6>wJ{w<XLDFcy0Tdw3{=gWtk?OziDA4q?_$l<@L_z zO>D;2WvQJGo$o!b-jiOlEz@+>Z#MJb>&3=7p(@wA+8kV6omC>{C!D;qF>H0jMi2kZ zDXxcIZ9i4HcbqAx+<SG+6|D&4n3S^M&yW8budv)2y2GG#R%SG-?c;4N-0wG}-I5o( z67y%T^XZ<yvWnM&!ZKza-><x4=HF`et+#&6Q@m!C)q6=RCc}PfS*GZkI{D0(@?v^t ze#TFK_q(-Y?%J*1mv%As9h$><wv&BrXg^o~N@Kq4rHi*5=PF)fI$@t%0&D5gtyx`j zw$|(y-P{x<>l>u4oy}WX^uTkgT~et_&hduhS6(eylq#Cs`gO5(7k}@%4Pgde(d(~U zPW(|7=2&`7GTSxzZupw!sE;}!*~*tzt$w{Wxxjek_2|`_dt9GCa?ZLNy3V=N>hjH~ zQq8qXeoS~e{fjA+_V&0nSJ#NnD!tDos=T7~R?XIV%4?%mZe4TTZCXsKMz=}yHi^v! zNu7**q4HibnlDe>)yjW8Ic&wAkbM`GKOPdxz00q+t}o+|qW0P5ZGq3qZnIoGXXaUv zllsg)C%@C~(1TNUTdG8}H~1R#bDsRT#lT`;{_K=@!kmv(H%GoPnVssf<dpQ02uo*{ zr@czi=R`C=iA{7m#S|2mIy?KHr^lzCJ~upHE9P=#+Ab+w{pXeE*R2I7Un)(0y)$P1 zfv<cq=T+BtpU|GYd;TJuc2}m2x>L-LZfhyhG5zmQ`TLfgaebn-TGh>0uKBm0FWUXq z`?K<G&g_1Ho$r;uTP3Qe-B7Fj?eDd@YtB8vr;Fxlh@89-ULyK8VcE}#Ggvo2H2Yk< z@j{Ns_QOg$m`^?Qdnnj__U|LT2qy1D$vdb2en0qk1Cv|>`$NSF3Ax6pAKD~zwjGpw zbiYY+mlvaumy5k6+p$9y68uY(w%k#*3Va-N+vVbYvrvoN>xW}LF38>aB4c-S%FTD8 zvTx7N`2F_$q2dkkC0pxxLJJsHJrrKixc`vjidN?j<`+%%ZvN4D*Rj+7-TOnr*B$<7 zTV%c~Kho*s9{wbC(dx%sPhvhRA75+0|BpM*+`e3gDd+J4GrpY15j;1Jecbfoc?Ih~ zhUKpNf8;F+t|{LUSJKOWkSBs6wLm@Oz}<%4NAk_bA4*pE@$}Vm{uHg@Reva7z~#qm zR&tNSI8p45p4HBl7tcRM{@3o>S2U;YZP-Tr%&(UZ`LC~?8uwdk?^@%%Z?mdy+kV+r z_+^{qmu-SywmB}ToA>Y1VY7=hSIXw@oFP|Y`S;oLCjy)Hrmovw>t?@N-0XJYuLskU zR=r9;?ory2`fO*QVeFTjss9T;#k>4-KDnQN<?;#NwLbl0E{}D)xBBF7%}=-e>V#c| zcGfuS-JjrXv@^y>@AHYJ>N~%vOn>*J$Z)BRk6-MGOtqa~)Y^GhEqgCq9m#UyvHz2g z>YrXHtvBC3(ck~m&UrOlC(>np#;AIq<v+Q4c}()Yb93`2&7b>6EO67!Co{cHzEj=q zo>Q8py!3YN@1~2tmhL!G=G1>fr0A{Nx}{HUwa2ti%9gV%Q{3La^K-J>J&i0&N0kiz z&-*KcPH+AbbSK-a<M)HQ2uA(`%^w78c=```-N>CMSe>B%ht;luKT*Dh<@dwn6-~?m z%=N~;g%WnH$^{~?9vBz*Td;jCIJHLf|5=Ot76X%mnHJ6Ezvb7>Z>@JS{-a;x9qF^# zk!!*!?YgwtPW-de>XK*o@yxt`<NIvhZ~Y6o_#8}Ym`p!}TX1YG;P}TDKO_B3{2|UC z)+PtSKbY1qgQN1Fv{d7!8~a%=-w}Rp`uzyM(fK3%txgi0N1r|a_;{jl0@wBBhe~$b z%jw`h$g`t0n|ng)h6z7p1Nh1p={trgyl)ddBF}J3@!#?j$0zh3KHssvY5w7?AFMy^ z5C1GZGGG0l(8uYW`#HA++T@D(OCP=L_HpYn$$E~A#TB<S=9zWbAF_2{$d|GBhyK}H zKZHM&zq-T_KlAsa{cZU>$|mjk&$xVn;M{H9`A+lPmiNvvKjbsRwOaB~;KN|!>Ap5z z_vbpuZ%bQmvE}|E(M7!rroZ1(tFepw<V`ihmU)rh=hrMvzjnzu`{m57U(Q5TrRmyk zo(2|H{rddN7Grd@h^@*;*mhZ`++~;k%txQKe(s67-S0Z*E!zx7{#_UU^uz^wuV1<J z`jt!BSuahuewh_j<*U1Q*)$~K%#&(Sn>wfEEE3JmJQ@|Xt}|@)(yLjSYt^DwbxvEg zG&C!-H)>5C+v@oTU!`yOB?)4hC0u3Gxz*x2dqakB*qWnVz7ZS6w67%{jWSK*@2beD zG*!NN^3HGfXZP;k{$_Z+?ugEjoW*ado22Soc>A?}>p5~SNKLw5ed3|8VP~b$Y&^(+ zSJO_T{+&kshS5i7tW7!-W|-D*ly<o1ra`jVnHjvsX@}1&k2{uQo4jqFVf6VKYtzqM zx|gK#IgRo07mdeXf{(onJoa+=HpxYs-@47vewQrw_K3}`&PtQ!oyM~XqKy&fBi5wr zTr(D1Em56#EJieWU6*0_d70^FWu~9~GYy3HOgkH~GCl8fTHfj8HCK%Hr(XWQ`o;gy zFaNcE)r<c9uK_~#KL7cR|5wiZzvs*Us$VstwRS%9*QfKHN&9yig0}tIUC9+aKdJWH zib{K31DX0dk@`AoUBfxke(;8eU%K6X>)Yl@tBm$<l@%}!d3|-#FNKv^GYsWTr!PGF z;NIUmzYWvb3*Rrk^E>^W?vs03?`G@BRLR7;pJHCJMk#e+RD5LZGuEk>b=Jin{mQ>1 z?(EmPCtn1@;}w@5e6nTsoT`;y>O)^2IsEE|%AHMfU#KiU5VJ${ANRAvOd8Ft9}J9Z zyVi(w)||3^66a_4e)ZOin-}eU>sz?<ZSJl8eou_D`;(`>NPXs)K6OU+Z>IAfR8=hw z?%dyfdgl4lXSVND?ln#AGhJT%KgO_0GKZ_SZk0sh>~&%B$}U2xrx&D1PSI(elp3&! z$7`D7Nh6I&Hn8BGmygd?f{9n>T;BOS!AhLFQ>j^A_UxSZ)wy!-z7#BPx3<0W@}VDp zdDV`~he1Lwthv9;WxbNJ>V?~y*_%GD&gw0Y%D$TPP)LF~IZ>uZJnvc_0!`og`e<Kk z@XqBf>rKj5nOSMAN)g}eSJs+$LH5%_p%;v{3&mr&_C7SyXgK|l>jiW8q5cK>Uz-0J zFt8m8HQ-p+cCdh#r*WYH&$`x!225OuDk29pG}<nHP_bdnewbOoHm~)0g6toudF}TP zR8=sV9q8U57}w<cA^HZ7{$cG8);E~eAIknv9hN=y#P+kzMeKW+tslnTIQr9mHv5z6 z4|Z?bY&TrD(fiLNf1rJh!m<xrjPBk^ub)2kh~5w5J?!rf=iOkgeyIP9@i+U2g_R0= zN7r<JZj`^Yz?MZJ<C<k1*M63q2Nkz$-bLisJ%(BS_>Z+m*zCUY&iBUr7Itd2ydTvz z>+NGMY4MxDdh?n2N6QJ^l?8$&X8cFud1B8re~fM1C*U97vHb4i>c#QLw$?rS_~YM+ zjnB;e4zDS`b%3w%K|@7B6Zf47400YVDjDo29ct&sd9c2EyX2l9oH$o<qQPguAHP%Y zmw<>fZ89fXZFX>21uwhztnhj22j$NVoAtjuzM~+)cKy)TC9@mnoZULxquhAPA(<U> zv%M1~b=tXpXg;s^{Uz?P|Der_8o^rSIges)tSR<fux?$*=Z5a89e<t`hKtp{(CaK! zxi&GvJxLbIC~7}qCG^@uM|twu^Ql}FilQ|S+D$U}89AJ+vaj`B;M}AjU8ErX>4DM< z9&u;!d7E}SnZMxsS-|<FVcrF9z1DjLk|GD57O;M4)PCrGLHw6vy#xdELoErG@WTl^ z*xC*RfSg<)!Psgb)RiD2ayUc7u>Yi?f!MKw6*C-msvjyf;8Z&t^jUi+&opP&JG|cy z>@ASL!>|2-u|lBY-h}>{%bz~}!19MD?BMxC(?3k}j=0-lrkez|Dbf#IZ*b@zRQsWu z!&bBQ$n{hA4~kWY#x;A@{Jgz^`CjAP4|;zj?=^o<G=I|=p>K3>52L<qXXOIfdHd}@ zJ6P|juix{{z078wY=8Rk$2UJ#U}t_iYqNL{&-w%J6S((qtv~qwVd-b>-_jd+@3p-B z;9kM~k7eoyvo{Up3F?1bE8fT-Xg?%8UFlAt-9&-skPz)+IqvmY`?&uZw&VVt>(%xh z`*Y``_cN7S4wakJce=&O?0+bgS{9JTo?7-`sjU9&<1*_Hh^^bpHEsHBuV3~B?|9ec zH=AGF&iu3_!0+kbe?9wVXID?Cw)`&sgTbz)_R!-WGtNJ|dG6rmxr=8N&!4e;>T(;8 zn-%klYtHSp*=!-zv3Xb7hFxVf%r=`XD$)u+oO$#kKcmIKByjuXXB&U0d|v&dYyyv_ zfPw#Uc12ku1z{_W@*4LSERh!?D<0{$>0J=jdm5AfB=vxf^!YbZA9o#kY~s>%nXRmY znf*w!aLj`?mJbd}Dvs73Z6Y6>w0^YQehKljlU0g?T7aMW(~=+%k><?z#7QoOMSOO= z<?hct)A*-5@Rx*fo%8OT|M>{(k@XFB1*(5Ks=l-;JzCuGJmz`EJ8i>qtK$bEX5`E( zi}SZkpR9My`}3aHPb#lhvg<76Ih|k`GU1=1-RzI+_k7EGBK7I7stu?ALGCBp8P8RI zoNnPRZFTt0Z~xC*yk{JbnY4A%<(z^<|LM{*5B&^z7&vdP<f*IkiWxbW{@s|G`8W2G z)XS>aty2W69M)be+cIbV@t@XL?+32=dhNQ>If*>K&AmqV6H8xh`?u}r*7Yv?E}phY z6mgK>!PPcfUQ+pt?J*CDqpNC~Dra0hsu(8TerNI-+jp8D8Y&O{Rj^^<Kdih#sE*0z z^v-&&{)5O#`q}~ghn^K&*AA_JfK(is`&aCmt=`f*$xL!`g__=D$zAeK`Gfy$xOjcd z@;`}>rJguH3w)e7FLqg%_lNlD6N>t)=S04j;}=epx|1PSdcJX|0sphZP8A1ug0~x# za#MjQa9UVt0xP`(n3B&dzGCYm{msyRVe2=kRkCNlUy0|l4*br0rMlVh>Ybc3Ezu7Z zHw#IJM4i8XrIxw$zQbMffbYCl_D<Rr9`xPoRh;Kt?UmI_ci*}5W}oo8rri(gijAMH zS`ssL%IZl)p+W1sPKA2z)Y1%Jx?`4@#!^-<&D-f)95kO=`|@WkVK)sr=dbC>tGaTd z?~iR4&0gL%*zB#OdwKFr)rr?$uAKj|{L*fzm$AK5*0o)_8n8>sE8O{ImPRbEZm`$s zDVL0vZt>Bi5;Lh$N++P1HEV+duh@!%Or{YF*toA;Fk1RZYK_1lF2!4qYS#!Xvb|^C z*3EZi-;7)0ulH}aTQq<9?!;D;H3gDk9*4Q6zuYh6zijQj<uG(y>S)AbiENSN-lR2w zJ*Hh7-8iyaHc*K$yryvs!+eh;m&K)4Zfuvb_v;l8Ox8DzapQe2;Fz;T`1hM5W>;@4 zld`VZ*f@Q){o;StEC2hw+CTZ%`z8ObUfDnES9tLMtXJ{Ae^+a|n?7B!Oy=s8#j}b+ zg8Q;g1^Qa9lGI-MjN9<vy1<yEo`c7In}Yt_k*T?(Yao7Nwvc@0$5QW)lBdtwa+c3j z7n*h;D1z<uLZ)|Z)equ!@V{#pZOHdIV6OH+TKGdR=Z|A7HOWl-3>ojwfC`HXf9U4? zag^mx5>uTa<Ng^9@jeIi)pj1><@{lDdh`5%RDR=QuO%OU?fF>sCe3zv`LkDb$MS5G zx6j)ceg4MU^f%XnzZs<RQ<Eq=o$hP&ziaFFq=(z1Yo>)R_IJ(C`l5CH^^Uq(*D{uw z&dTgfyHw{DrJgA)q50qa%-`e3L$Cjov!9zexvYrk)9Q|f4h8L9T`L}NJvx8t(XLIe zckNoC{cfE@?$QfPthb^vcn_`PV14QysI}utRKSX|ZCaPy8ktllOxiLz&5GAILu!(b z|1!^6KFc&e>^*-nO#j{9?}hK}zu!A<7gwF8mVWO0@5=hRy5x+urSGR{N?zOd`@#E$ zdCwMxSG*7nON*SDnmTQ2B*l!y#u1ken9u%^7MvAUBJ)2d>EQL019g%CX(xGgEPp-7 zPwQLvFRe|rJiLDP(el|p@`Uf_KHBYDv%NEvcTHA8DD!Hmh^q%yv4xp#Sk*{@(5D|w zoi_it!}b(>s4up<zHWd1_3Xt~-^?~|pSkwz8>=o~_n#-{zR67UH?E#_^YWQ_&sM0J z&W~Tu_dED{%k*ILj_znD&C>L*=5Os}{qG8#x~THMzP@CY^{JKFu1A>e2;2%XcMA?S z|M{)lIsVnU6?R)~WIXN)^Ie&l|N6}K(&LZMS}^7x?5xn%D>{F42aEB?(ldv0YM7@d z@#!6YI-|RC2UGYXtux23?qIu~#3<IrEc~tKc4m22;fvJM@2<!u=AZJ^{}uF#>tdbi zv)^B$!t@S&U8uU1#rvb~9Rb;?yA0QO>K5P6U8r4Zy|4X!a%IJo+Wu=x4}C7p^f@MS zWr0|*A+O{WMK@c%g9|H|`3^s{U~+$?;dA_Ag>v7)*#$Wo7dN;Z7UK0b(Sb5b(_5$Q z+Wb**PBZ^w<sTY$ZT*jhXEgdhiut2@?(p&gL2JEZsxvy*CyS*$mfj&!Tp+1;Jm$<{ z(H%nJiFWIbneGtd-e6!O<tt`sy>iFYF8!tNxSW$-wi)R79b2^jX)Bk0NJYXN_Em!4 zCiMkhD?Ig1BY3CN(=NW?Yl)|<d?MR5UmK*#F7x@z^;P@I`hfjTq%w}LwD<d4_^Lm+ ze$KDQSLB!f+o2bJ?dhpqF_F`?Ul*muu3K|@YUxg+Qtc~i1GYQe<szP;^n9Jz-K#M% zK9^s+eCNHWc;(%)Z+cnpd!Jp}G4WWh(%$oPXJ_2?ef{o=(|hsuy8BXMKRZwOyVNOt z60WP5DlheO;Y9hipzUqxDGs}NGNv=WHChm>XS?3a=B#^e&6Q*By){=(P>(q4ez)cd z3Sp!&QL&T9GsQ#6Sx9oyi3u)kDp-VS?wmN@i$NSao?CN=bVBUxql0pCZyp}3{qvVa z|J~D_Oy}P|+$nT^YQ?%E#j5}Mf7a{1SKTvxN#3`cx;A@tY|b>-+T1t}A((9}RQ$|7 zB&q9{eM&mi&8e@pXT}FG<J*TMetoiupw8)DdqN&971EztvGRzwYMj<bY(j^;IrUZd zO!*K5XQ=C!ehMO;NdF=ir}a6gQc3#%Wp3p?21mG^Z33P(zS^1DvCH|2?4ox9rR^)M zUG5r{p1z_RyxoUXM%xNwm${0scmmTqteme%E;<+Rg>ULZ(WwtbZ_a=5eCCz2Ykufy ztChX~8XK|h{{6-I^4Y7b`LL8oGZZpy-Ci3;^<S*&xt6>|Zt+)%wZ}8C35nIty;i&B z-R8$f`h+6`rm(t#h@+f;|4(2n`7f_@pJo24e`$~FW#88Rxp-WjTtdW0V@80%!UU&- zElr%P!dz;b7HUX$5kdTCzZvjkp%TAn<%$!|u5wzR0w%V1*@O@jDqM7&-|x@*3F)6g z4~2JTO<rMUyTv~v{;I{oLZ`<q$2fb1rPNLQGUi+$EU+Uh`OvYJUQTIYGqoI_8#6W- zCZY?hTz%|NO-ygL!ab05=e-4D{r@u0b!?ffZnSsJvT6UzEtAUj-|BglqIEmzW|;Er zxJjArC%5>N{FB!{Rdct(a9y$9{)18f#n@cGE!eGHR2)z)_i=4`@D87c6R-RFHZQ6U zDB<sV=XlXpV;B2>`Ow*p7tJ+(vANz~@IqRows}#0z!%<s@pHRYEuYG@bl%U$J5yD> z<o~QW<jub5{N-((+kF3+AE;;EvUXk$myKcTzP(@G&RtP|de8pDk`MhRUn-h^SGels zE${1byS`o8I(^;VlDA8<g=1&GxaD$PZI{`_t)1(9OL7+xDKvS8lt3_ZQkH`cZ^ueT zLsNxiY)7sz+^v3j&-;7auJ4!jPJg$z<o(iWeWHZ&W3Qh3xkKvugD9N?hb~wz{P?eV zW<Y13$J*{?%jL`q?G*Lq^LPiHZ@Id%_F2!x4LV!xw=4-g_ht8-IDhW!OYiw@>;Ggw z)pyDF`0p$t|7Z50eHHFE&LnHweiyV+WS+;f^NQQVe<JfXK2y8?{7~POH1)f4uHK5- zzEFSGv{%ztE>63%$uooJaiWH7>$(!%WsfA5|G(^1{_D#I{l9U0_|sd8e!bbC{crh% zBjWAPen<x>KRO-zyiN9_%?i$sO4pCByMB;I*4*KEPk!T?p6Ne-ey?5j?Pz)Rewpu8 z$4+gque<R1`UCOA_&?rjzD8dA?H+qmWc!abqR|)L)yi4#dFL?wH=9%V9{%KotN)z{ zSY^+3`C&=K`;v(IP3P0wpH&&x?ybFgU&QTIKIiXO?~mA4C`?(j-)cox<9w}<+~uzr zLfKdR;tDMfHub++w(8yDEbGwQD<hXZGcaw}wDdWd=*1UYXfNu%(!%R#AQxZ228V-X zT-$=d)HBT)%M%)#e*RyS(AdN*BD3HD1M6oI9grGEkkYwT%vYor+|&5#rfKf5F|eyQ zC}&F0;we%~uP`ia(=_#2ndrqEoHZlp@D!<KR}7Z6X<n@hSjn`MO~ce{WuRAYP?kki z_N#>(G`8yfX$tC1`oPc{7MSXvl|DoB+_UAs4%aUF&An1^^0$8<5(~eTSjn0#%RaRB zrA3U|t=pH}+k`KxyG&nlUu>Pw&wStg)-`jo_&fd;AHBnWS)T9uQhTv|H6PY*wz~XZ z;GKWGK-%*3R^F@o<CCuDUtMy%v{U_~PsPP9{m;k!w7*3xydTVNTR2_)-Bj=N(@Trz zaL7N}c-(n)e(2|?KRab!cHet*JG$m`<o!Fj`L^G}o^$T(tf{C!@$=c^hmrTIZf>u8 zD((K`nD@2Ub56uBf7K~t=QwZQ>ED+R`Q3lD>2&YKk4oA1kC>Zxty#Xo^N7v!+p}Fm z&xzc8woCVonCx!X<9QP|MyKpiF^Urs)$i=8U6eF`#SL{OEu}?DN?J;fR3`=qa*9se zF#CDg=R0<BtHb{7dm-?9<;KrbuT`JewLkIo;u|8zUfyy%Kkvt_fNy^i&&z-N^YDk< z`+AX6^NeMDzpWLt-harvEcEd`l|K`rHudTHw~5Vv=dpE_awu<ko6_AV+wFIYZ!hLv zv+K-V?<XPOUAFvD)7kbb>AuXOBNnR1Y!}WJY7|mt|D4q#q`b1G;)w8OrIo5vJLd89 z@rW;9{`uI&3S~d8@MZqTZXcTW<@V2?A$z*NznJ&0V}5<kqx|Xq+h<>X8fRYWzQS7R z`z}ozr-u#?6~6CUxnahoMxoOh8+(LKKZ!TrdVHm=-`m10_Mg{v|L<C9=l8WROLy5H zj-z77`B%I2KiF81y6588N|R*cZHpVk|E{_GRrUN0(RFM34_*Emd`S7L>58MB_vSa< z)VgwMgAZTX=VujvV-v&w-i_#!PjIbJStUI2@S;L-|NZ`7D?`C(>UDdC%kfiRu0Qo9 zJoW49i-mszzoyRo*1Sdj%UUVZERSBPpv7%B><)bs+}6LLdcxi2H*zVj6{6X%PFMVz z>X9oM6y0`Zn&L;>CEIvzzV4{yTP5n8b#y|Mp^0Yl(WOcc^zQw)eP7@IegE`Z2Nw5M z*w{?IwL;sjHT@9tq6ZFH-RFywwB?^I-`4(hB~#e~X8ok}9hz5P?&7{XZ|Ci;?0a8y zPwSeNv+BiHITfY+16y16K0I|rp>2=cv3&;KxmkfbKWml8vDG{F-kM|eAbtIVs~Z%* z&dR>fs;=0Y^>>!etz{Lli~Uj$O)8mty>Nzc;Ca5%T5#9EXpU~wdEvFsJFk8Ia!vYj zKG*dn{a-gfE^zvC^h@Wu{G*;(_fA$s|2Y0d^WJ~Sd++|PtZ2Vp-&fx1zhdJ5HJfbC zWP4ZUYOdE6eLFu;Ki_ly%X$0{^bc*nBwu37o!<WXvV4&(yF6d~MA7F<?O%O8en`~l zF*p1Fq;H9mMZUkhFG^n)PYSDWto>VQqrK(GW<ztC399TVC%&hgU<}+8GDSyJ)%)?% zx_`QVwEywmKUlu_<wxBeqNnfFFF*h8(A|6b$8G0*c79*~q$+-f@P7&Zgw!2||2%iN zneVo%JMnw|!{-$ibF^2VyZUgQc%!%LgP_j`dw1RW`mw$x|LE%v+TU$oZ9aZy`@Pq^ z8DD<7y`TT_r`q}4PdAGz?xml-(Ia*~>!?^xY5nf%&o|zsv#z+esCwlZTl0I8*G}Il zF1`3V^?l{0?{{|GPERrrYyNmzpuJH3*Wvfcg%aI|EgB_yz9$JdYaK8+6&HS}t-}7; z-a64FJ+b0dhbC1OhU>q3bve=bZ_0Je#C=+Z@l$8S+h6^ixyqd_X@ec#{`KpRE5^xp zng94>Ak(K@Q<rk$^_R-IcJcLFp6|VAd;Ec~h1l_j72oGQc%FZ-^IHAt^C1yeGd%x( zUFh1TzjnXothn>nzt+T_zy8(y@$MZ*&+n68H}R);=&E8UYFxVN>dvqBU*?E@tDT>2 z_u!}Y-v69o50^hY^};3e5m)G=>B4h=c6QeNo8omr`|<RXZ`Pl9Q@W|FcTH{BdD*EO z_fOt<chja&GqaP2csCWSUh{j&nOy;DYbP3RKQUu@iqCqTox#&`rn2@f`mes|f4<BA z_pbF{_lH;nAK5SPx4Y`=g1LWUj^COTwb*-YuyEbu&F&vt?7lCVpUZPQ<b1Bx_4ilT zFwV`MD`%0g{qL^pR(G@K{@Qx!-29;Bzuwktj@oi@-RD<l^}eP}pZk5)bxZ5}tJ9ue zc{8VK)5Ul4Vcc?I+;ZDaGnf4=zdF<X`z@jWo4u+FBbGO>y?k)ni-gxto;BQ&xo~jX ziSz7FpEvxe38=Hvu$RAbaN7~{ANRHw8t;?dw(`~OkgvH##SZ4T7tPKMe7Jq(hucq{ zHSfA<we#nKn5u|7_B!X}#V-H-<>_aCvh#MGt*Uz1@1rl>3U>y@tP`28eKcu*#BJ4U zWu04NlUB#)eC=Kx`zUMrj$13lpB}m5CYv{RMpZ!j?M1~o!t&Zj-S_{vk=k@eflun= z4$ikTKS+DMza|@X^w9Cp&wN++INR8`U)5W+Enusw&!4EL_dIX<YL&95ng^CmzHvj@ zEH12f`>JEnp^w)lJvo2$#0;(IfK=|J)ZG>@10!dLUQ3(0HS)}smCJ62UfgqPXQ*pV zs9^NUeY0QfUb#1#H7ArYI`lx8=!Q_%oTYE_Lf400%?^DT6}n}QR#?DMu2m6nqS;|b zXN7Lq!?i7z_4c}`-0-zrtAZU%wO07CUR@bkniV#8R_OA#tAZRuwPe<Kom~~^XnJb3 zTXbdm<WrXxZYue3Nlot7l3i~?V#`)3Sci7=U0vjy`XWHmDx{5XUe?2vV)L>BMaxz( z$l6>z6s&8szj?XY$v<I|_q85Jr`D|Q$)Eaht<k>7ZRV%HHRb4^_|}w@KkY5+&3gyC zbvNyCo>qS16JO-Lhdy`Gt=65p`ksHiOZtgTuPk3n8)fb6iPBp<@4<7`O=<S~*FCzf zvp+4>dt&_VpI-&-YFqr}Ckl#220ZLmt=Z_p7V;yxvtxb7r>Bc*c51|*6Zdwhbe$6J z^0O##UyRB7<=2%<s$5LoFTbk1<<+v#?JMs2ug{yfXTDwJuauXQm-=tdxTins`(+L9 z#X7Zef_p_T?v8o#F1>hKuYX&#%Nq%9vx@EK@3|j#PAX3SqBiaA=XLF=e|27`-&9yV z>uRIY=~<E2a>{?dS$Ff@thagd@0#AeYG-{b-TiObm3;TVWt-3EeY@$q|L&LDzMEr1 z&TsmAkuywc>!mX7uMsPcd)1n(nHLzn#w=;8*y^njxmU7u!?HKtT5&Zh!_cQYadqFN zq#LIehrQca)IYU4!!YM-;OhRUy~khKhUIUp`dV}2anFX}y?4ap625YW$!$z(kNUQv z>-M@wVdvTR&s(v>^qrJtMVpq~pZpnq-thu^%bj-W*}wcSd0l7u)y;PsIc1m2{JFNF zyz_bf=Rb;<3-0;M4yc$jSJKO6Mv~fEM_s=!|3ubsG|$^ue8_n1yL$_}L%v%G&3z>4 z|MO)23-dRT`%90XuD7`F|7EsE?aHGeDTneSzeZlG>FqmQa>w)d+>$l()|X$(zadwb z&F_EnaPYSeBD(*-+^N;+tG@g5x6AkWI^zC?u@C?Kt_ia(_D?F-w7T`L?M>#1dEaha zp4Ytp;LYssf4^<LzVF+u<8i-lWb;?AwM}`en9Uzq-e3AXqP+j>w}|}yt>2>3Pe@fS znr!>m@S6SEPrmC{Z?d$q&sqA(CG@P%pQR_Z^ZzQcew`lrf6;UPtL;Z;ulY42RDScT z<o}mX1+O(x-?cs})vs`ESdZwtzw1SlZ@GxyP3ODuJ}36@`uY6D{QpXibBFzVbR@oK z-}QavyFOpvbL~ychO__b-ItoKU#)QU+=S&<xc064c6a*9txZwdH$GeY@4b0h?%~n2 z&9}|C)-8CzH7{q`BQD8_(*-N#a?|d=PjQ{sYkhOa<X-E_tv7kLo#okfcF)$g`$PI{ z^vypPeU{fg-Z`(ZDB|F^`x~p(_09c5`jc1gYkp;|Rwr$^s_PBE|E;eKPs?w7Y>*AF zZ#Q;$D|_W$;&kRR3x}t&A@>{+#6#IIsRbYSUcFoJ4njnlu6ot?x^9tsOK;nKSIyXh zJ4?3Md(C#6_c8Cp?t3p>-g})h5dG|VvL@(~=JAqKhI5PFJb2I1oi@#}xW@Ik_Nx-t zxp_XzrH$8zm+W37xi@K@#>|u2yKc{TXSQs2@66rW&)#*NGh4Q~cc!(MRrJL-ftNCm zmCQ1{o2oNw+4T3@Cs%)cH)&q%+}Cm2vO3x29~@*?TXo9hZk<Z)60c9|CTv)6Ki2bC z&x-)jV>8vQ?ppoK*!29(w>hug$7qLgN67g9VOtoncfOGOspZB_N1tE4e`?p^?`5v; zmEl|KTD~f;k)OHYk9S%txAX1SI`WA>PqbXsUAOi|lk5wI*AZriHVIDab;;j&EA3a` zrR{U~y<KlVGunEi7k{q%+6&38^X%sxyYBbr*!uQui?`%1fBRzooC~-2p7;MFR`6(v z-|e#1-!E+Y`*r!(458ERizi?H8Ye6H&RBP<kGJaOpp*0JQvLTYy0)To<^3Zef8X9> znEP!;kC)8{F8)6~>~+s%Dt8p8d|j`+I@o{z%H{X>)urxwX@2+1?7UyT=6{#Xth?;9 z|L>nuDwp%SG;dyB?<4Y8t*cJhb${j}`&C<K$46Dp7u62ClfLzDSoOKA^RDVYUwW6k z-g^A)w;gxqK5gEA_}_autHUYf+jjhukPT~#lj^%%@TWg6>h<O|-}`sjrCq8z_VsIA z_IJB}`-=Cj-%EDZhu`?89yiBttKO>8z_r~$u~S}cdVj8Y|KwMTJj7jht+?pgtCv+0 zxVT#?_R5PzF5;@YR$Opx)zc~oT&P_oY#pESxI3q2VsG`$8Oe{s%<@tnhfU5heYI^< z`s$UNGFItqdg?kk)s$)brc~|dZL?Im-`qIWxAslNL|*+(iQ3ZJHYL73Qtw(B^lSA+ z&x@a4EGqCXG1NOa_2Iva#2vO#E%`}?>zvCY<legRx82=re@CqMF+<$J)epCM=JV@L z_B(3*!S9ddz1H%_CVSYIKi*p*f3M%TK+UdU{{i+wv2(}T3;67M`X4O*Az|0&pTK6< zS^ROj1^@g*@eeQm$gW{~{y5)2+p6l)`@`?mY~|`~Uvk=X_EvD6Z{eM6_At`q;m!?- zpK2d|JNf<b@r-YE#&HbM>igRS@@9W(D>y&p@ZnFI%ichd`{P~<w%CW?G&`%=3?%Z_ zTZ*PXx>VqQRwkzHw4wc-_+rx+ahr9vT-nmXYwBmSb$JW#*7~;X?eW*=b$x$Sd#|1& zp6hh>{vPhbxm(MVRd?;F=iGfDee2(c|86OL`*pM9`_qEkS3)vo&N`Oj<H+mN73|v; zyj-!_>d1=YiWVaI2NEr0+#fV29=@{qL+E<_!q`W@g0EkFcs<zN`LxOTS!FFhe`sHP zm{?rG60-jVXpZ2A@gCXbk7O&<?RxhgOE0kd$5!8c{?YpnmNks=M_eDqO{`vjVsH49 zIPqA~FqhATrt1!FjgScIes*<H<<^Wi-C5!O|NL&){7kD6-~J#>=Wy;0+53mT7qY)Q z61(I4_jkwp4`;>gFZZgxVY8H3f01ykUH#3i;+^yP6E38$Z#!#hy5guw$_F=@=Iswf zE-Y;0Ta;XS_IK?065HEf^*@TnbgX|gzaVo*_>()@Mejr{zjw`f?Q*Wv^v&AD^&C;Q zUq7ufyZCmY>Myx{{niEQ?+$7G5n26FLC#5d-r>&~$I|vRh;2#Y-lo)U_T-}MwN;$i zS6jAb9ol@+t|vhxwI{JYVzJ+vK=o@YgtM=7noj=hboxo1$VPU~Ieu!>H;6Y&95R>_ zq1M0P*WT*_hopXP+ZLv~V(Ra$MSH{6T|f2t*5|{Ux7NS^RatY=HvU*^qVHStJ^Q&n z7xJz<YF?<E*Hp85X`pUzR%VE|^3N^HzTJ-v-?gr=mZxOJQfFP+td|PcubtYuwJ3LO zOtkj(c~i5`Uwh}+w0EENqvEO)yG<wGllAT6>t42iZR?D#%o7Xv3ct>uaYWHVdzReX z-tI$6hWk8v^o1UOKKdia&@Q^?yx8N-M}NG@XjIqXDL(R3rqIrP&UwM-#f#crTzJ7& zBW?aj4bq=F`$JEz_nypOvAc<i{d!L>w%Sy&_pf_)@v6<PS?=MVU%Xn8bo}?>q`25K ztGg>p4cF_<`_g>D>}C57ar;BHJLK(;?SIU;=7|3WF8iZdHXZFBjQ_~+KNehbQ2&GX z8dtIZg13U+ck=npmGkxAd;hDlg}#ngtyav;UnX|1|E}3!Vrm^T>ld3I@AO$W?dJX~ z+Hva6x0heSW7l)}zWlk+^sbPv=XN*uW!q;}-JWx5yX(x7@`$<ja>ZVD-kVo<bL;kB z`OG`tb@I)x2`#zt1UCHVq;tr8qr~-xRd>Xntq?E1(rr0;yGy&@y)Kzs8+hNINVev> z(a5)lqpIuM(M7czqc&%pN?hoBML#6@na@q()GO0nU!7L^ntE;u^TkBd%#O9Q4i~cc z9a@>_ch)+_|M>4kFSAa~nZ;jGn;EgBPAAA-Y^8knmHwZvj@Num-uBCIx0}vYotB7I zJJq*b{gd!$|APG0wsQH$I4ijQj{i*D>JzPTS?tu7qgy{Oa?W0VKuG84+a0%`f8Y7f zqH1$aRLpPV^}Fx<7b<f+b8?P#$~jr1^sQ$iW32^zSL-IO|Ly)K=FiCmN4F+lTo~NX zlN;QBs6?jM{E@^S&f||PZoCeuo}0Bk_-*N{&I)b6LnkYw_dSagf0(56?VnYQ{H<la zT)8v34^5q^pIErVq}cX}uiL#81d(@eZA9Dc1NY8+|4@6U(YjFl-LaxO&GHZ0cZh3$ zP`;pEY+u(?f1Ei&QZ{Nk$NeKoG3~D%Z(H5ER?Gcqw_n}$lkcs5#-`6N{T7Lp=r8>i zk&Z%0>^HXhG9mNC0>4_1rSTIq@2(2`8v6CVoTXK1Z<g5Vw2d%=cVm>u>a>qX{$G78 zAS1`6*3iVcAc09^1_K6j!6(^;pJWq-G-k1MsWmS0T#$i<sbv{Fb<Rq!b3Oayye{gT zIc8p<`RsvFOyABK?b-#YGnOto7aI6{)r#WKD?7Db#au0E%d&Ddox5<>xd7kv70V>A znk=4`7IL{KYgVAI@v2NW)3Xr4_hm13%l^u1-*<Z<l<6MwxAr(VLu8cnoT~2m7k#PT z`&Yi_f8Ce+RsU{Z@_*Ww`;$-vuU5^=vi09OPyDOZ>2C|=UEer1F-`%OIR!hSQ{$Iz zS|4;XeC3<fA>Tq*{bCBOZCtg_AvAu$Dt&{?&(D6TG_JkpGvA!{%=uroU;N@Z|LFaP z#XqY5C_E`yG{<ks<<26jKtJ_UFI_C>YAhFiN|NAamurzpdp94cO7Hx7PU!Vq)oa$? zDRWgfofC>o?_9IlrR>t@z_cJ^v&XF(i@T5RidfTqbmit%|9e-xR*yN)ef@RX^Vez5 z{Yy6Mx2u#2roGHt|2k`>rQ*e#=Puq%d!6(AMb75AN2f1c&%?i5p4)$k^kU~r{jclv zEzWPZTAttAckOA{t{AJk?`r<fpPSd^SN`e9e#6KwKjr2=U!`&FX;Q2n4q|f2MU_|+ zPjTN%uDF<mpYAR+skD4|kpF}8oo>+|g73JEOU_AJJ?DA8ZcTCcwVm3lyVFW8_UO&J z=xV$x!%h6`i$#*LCW{e*&(2J;+?;YwXQr_?F6N~t7bp1WCG&{BIc~xCK=cIX+{(st zdmPf|tu%gK@~rY)edY80dp^hC`>Fr_&-C(tr>#{*<_K~5ak?&VY2vd>KJ_l3C`iLX zQ>5h6Osk(~G{2b~omcWj(yHpsm4F$aW_?$jlBMM1#Pw3++RJ41t|npEgPn^WxCCDK znLO9NY?FpXq)1j@@%xV!C)4vk{}WlU)lZUj@<E=-jxnF*?8TdxH7n1t;!<moRBO3$ za`A&Ffd!v5EGk9j*l_vDu}(hh14Cz|O1HSlt_^h0UUwvPhJ4ygwX~UP&t|DTo28Uy zasHXFkmY2Tb<f;||0`YoGAsUpz1qLfWiL(rcW!H0qp2Kzc>1}$KWA;s*wv|={^-O^ ziz2nYIhzZvMOwVp*>f+lVlSu4bDKT)DlMX`%cc~nowE|3GKbsi9INW{rb)$)?V71m ziycqyT#ynqGd*f%`0swjm4CVPc(~{Adu^RwrMo;!AG}&)UM1^|r*AGid=pSqreSG4 z#m7QY*zcI+q9;6otN!-=&Y$-qoYi~Tyq?c4Co2~{u?Z}ir!lihY(|sOvIWU=w7t|8 zvZ^iY+3b4q=AtJ#fkoRiETgB)(e+YWQVB;}ciZk}*LPmKKJ>M(Z~5$5@61fs8kw#& z($zK4J!`BBVWiIa`uW_i%Jjc`HrL&Yw12;5e)+ZY)~}z>#U~sbe(uUt<I<--v6jR! zXa9<;u9CNt*c5#JP`K^y?0fMo-G!a!({|O#ZZ?pf-oA)aH{I#<%nL=q(|?>Zn*aaG z-qnYHt>mxzE8yl_7bW6re(>qCjk&i36|LW{(3t!)=Eb=`w)+~m5B*fz{n_~ci?3T1 zPwE^{`jdDm`qkI%g~1}Te<TUV=RE56t=ZVAZ}#!1+P)h{#K{!=_ut~<(R!ngvZ8mT z>`Y!BdSN{IpXRSSOX~a9&HbW(QC+=O_t%9b-HYly=8DHom?c`P`1j|Bk6&0HCcnJj z7W(qohnZj2eOPnz!-*|i)9Wnn%zMXue#!5}$(LQ9ueDt$Ggsj5uUnHZo<B4#Bl*Uo zm-2Q$)*qbr^5y$4U&^a~xvQV$O5MBlxRzhBU+R4R^vI_&tIzna=kH%?zTo3lmA}6? z`1NP|+Y8R~vX{);`inPg-I8jj^;get`en3w`PzTVtL-Iyee?OWFYA7LqB8%U(7tK+ zq~v^`*JMZESg5@(!|!io#jShu%ASjVJ$LrqzT0=ZFGa^ypS^2e_I>%6i>3Ptd-MM! zJi1?Ib2d->^|Rxz@6GqBbyJ@&nzmH0`_jtxGbjDq>OF0Rr!6mYOJCwv`b2rL^X28O z^OszA|5(5Hoz;WY8lV2>mw$VkbMH2<Vv9<PnANM54+_O}KH6NdW}FzTQ^NW*WP^h1 z$|PpSm0TJgf>(kqj<`)<q!2cN?_hwC0^^}JAt8l_Xa8G&HZxRg6e+6uUpxQ(zMD5S z_s{%$w!Cit&D!4v-toO+HC?l=9h6Va5w1DA_7V4)OLkM_T)MX<ER%b2_R5*ho{~}1 zPVp@aZ5OO}k+~|T;H;x4pTH!up~2t)KMR9&K|{fUNfB;>4#gY0^H}1<xL=4q2z_9h zU}3;iAuGYz!{o-Ce4*X@h+CAFS=O!_OAQY&)HHAw9AG-cU@yQRqrkL+$Au}hL1TfI z0PhiojSi*@!~&!{*k3V}HdZ;*E?~SMkil|CdD50`2kaZG8-F((JRp#u@j=Oer-HLW zvVyfjw1QWHuZQ7S=iFNr2}}lp6~YzVGgy4YtiP%yHQwX#V7S$F^w(>pKzU7}g-_oW zgkD;hzVpIH)*V7GFKjfsurX$us88}u3Bl#8>FG^3-{cgCpB7X*&AV(<u~H+epuUUg zVR0X0pTgM(S<TlZY!ei_llr4Ilci~8o30QK`^SeK*WGmte=+@S_;=v*0qz3~2?_=r z5<EPNZA|YwV~^z|@O`lR!1zJ&L;eHh2gwO~2K+zx4dj2YL@?BF)v(p@)iBm@>WFzB z6H3tBz!Sk&!@7ncjA?bl)dSZLm>-Zzm>iLi!?ukfx-s`aSpxe8VGouv#{Ep5NsapM zI);)Ae@$zXW=eLx*K)9ZP_#hvL;A+kd-(1zcAaF&Iio3g%jFvR#4X2Ns(nDj8GnK8 z3_o~&$V9N{IQ|JrklY~C@J21gyx!r5`vdisdbVrK(ha!>$~Ip1IkGe40Y`z11>+nR zqsCx|Z61#vI;eu;=}6byJyHVfA?#TUXOHOB$$nT9aiE%6pXqSJ#{)bG({7x2{>VC7 zXM<Fy%4@ETr+0DP_x(_7eu3>_`w_p@(&x(A<yhm~|A-vf&%1}&hxHkgWm39C=aLPl zejNM3b$AC?H*;1;?7uvvi~m_J2v=}bu)SbT*z?=)-d~CLbv@<w$9Bs<zWblefK7tC zhgo5LJtC^vmNDcrzh?+;%sjCBKnX+cm-8%XjPDsYH(Dk+KG2&ek-@ozDT=wAIk%y@ zVcP+RjTW#d0=ay8!}P}RhVaJg4G#}+JSa_2G2oKm-NV?!c#P?B1Lpyk2fhz<6NC&T zXE5#26}uhY!TK;Usc?rpN5|2Wgmn=N&+N}^yA=B1X-ri&TgOTh0SOi!wl;=z7o|VX zU4ESJ{4ihmp}qQ{`m%@iyFbj2{c&FJPrCTO&D{TQw*G%ZOW{-73o`FJohwz6wad1u zxmNOH&C3swmmjwKHOgDD);&-AF?aUE^1N%$J50XTq`X+UxVCEBjrN;4>}eZU<}hD9 zR<l#w_(sN$g5ZaTeOvj>MeSm&YIc<TD7aMb)$)G|$A3*hyUE=1Pqv<aawxs%q4CZS zGh=>u1V3c=ZJlo<YIic^hd}T{=N%seFFlmr@qzi$L-r+~PrEAZciP);EW2(0mZ!pr z>FS5J`L*cI;gGfv{I;I^_x0AluMhnzP5i%WLw)Rx{d#ZW#qkR7oyAveD*J5}x3uZq zSKXW9U4A(Kyk_$7(7lqx{AKN~i8i(x%MKiy!!*0dIOo*aZwV9A_!--}Ow_&J6t7~s z=#Z-*C(-ufW|I8N8KKV-<Jx79PrJmMBUzfHy;3sTb>oZsu5Yp<g6;<>Z=3hdE&e|5 z{(J1*55<0bo0!8L+gx{_`Se1uH*->sEW7Y@gZR6)y%#1dy(p{kJv(3bH`kRdQD<C# zb*?(cYVn<AO;@T&-;Vc%TO9XI-}GX4$=2hV3x9ln=`?Sdgsl0(Yhg3^|1(ND8TuMV zrzw9kJ2UOHL9|@hdks4$sVu*RQWm>h*J>V9$YnmE@W1<kLTsl<_`?il)dj7A7UA5v zQ}b)91OA-(6;OQQ|JFj|H>R?N_aDA+UvlgY%WMN?cTbB~o_u}h9=)*6a$!@Qz;D3F z7vUiBfSsv<*TTUfE5|)Fvie5F+{SqsmyK>Tu1-i_Cnnu%HznZ<>o3N?jn5m!8yF8b zBnTKtNHFm%W%==m^TSQy2b<LoxcfKs&tsTx!}zb9spdV)kK3HD{_D#`Y@fM8lXI=b ziLggrr|OL(b;S<tvTfS--EqE7YfQYNXjJz$Ymt?IoxX1Ay~1L9S@Q1(^J{V|tpeDu zMea>r$NX9|?DTe_jde;heHUflOxeZvb;piNya^}InCC6X?s;~FW$)F-EJb(SE0=k~ zH}fA|ylnBNy3omw|E@o2bxm-mwPI~}jeXC1y9*oQkNDj<@p41|d5ym}-NcFvjh@;s zR46qGa#K!~2-@W_(edIGCb3ptSM~(+uWr7dW_=T$omjs7@v3m9$9W-7a}SE%>59<^ zjykf>V<NY_ow!|%Ud@x3A18Kxm{|N!`T3#mXI<yMb(!_&sIb=_8Rgd1m$r5JbZLg9 zyBCCoFA%?VjeXh=wnCXpsS9NFOx9_=vTKdW4$NoxI!|xoJ%(4l)Bc}rx}+4io?msI zQ|C(!Lt)jng<BrSX%`uuyQLVmPk)25&d+rY`Ey=6U!7pgBQ*QO%+@(OPrP)Pw&0EF zlQRcbcr3Kev@c+=U_NWd{e)rX0m}`}))jjEU21ETZ!8inO^p5c*I-}u!S645D}Qy~ z%n|sKBoxbEyMxpAA9q&Hx^-vOKCWAp+kK<WP@Gl&`I_a**CjM=b1*eY{ZxACcTesG zL&-9?8Y2Vt8{Lm<9gG+(E7=|yeVogB^T}^{V}+ZNTYmDW?3Q_J$9z)HefQ%Fc_$^r zZoPJo4!&8|6%e&u#&Vxq-`^90?J~b7D)U*cbAQEgq9!2op4vp_o&L(t>!xOR|B7$= zwqiZA$xh>ayC3Y<k1(A1s_CQA0mC|jWK)CW)DL%yzV=&v`lYHQ>g>a|&e^&}E+pA` zAFuu_TlTfD`hUJtc;e^W+upMJORoN>x9)cKUfTmU^%-}D^zQ0@{6*t~#0Qymb=EQG zzfD+ed_jDcX7F+cZ@xv#gB33;{+Qk#cuMfhWb@!2eJ7dkOPSq|7H(F*z+J&rA@zd$ zi}TKh_v)G6I-Km(u$*Yy9`=>>x%y+PWe(lnl37+>YihrI!M**6|0(hQ#v02B`s|;c zR;-<#eQI~$sk|wR7Ed{?n9SmJ(oNHGiqd_P{Dm#GpZ<3!#PdBl4O8u~Pv*pQ=kTEN zEZ2Ufen#dMth_92jLnUTSC~x0oO<h-(tln!oO>|R?n_a0!L{}mFVA1N9Pj9V-O>L) zqiya{JF&+Xm&qGCoA7uxS9*I*X3KuWmc=KVn|DX2Ou~3YtD*1=SKS)HE2p-L-+%eT zj!R~-*t66FTOItfQok|HW17ddq(*GXsZU?rzJGBGzwY(zf#SqfVam^(-|_DWxfr)9 z<HTE~r>0q~k0#vUIr~EL58J*6fj{c1AHJ4t&EI}KL&k<7_O)b*;Oxd3Jc~E(U|sr+ z=UrOli{~;=&as-$5q`}(|3q7S#Vw8wpCvK<Q_5HDSzTDBoMfhSZ2hNQZ**Rrc3eM4 zIQn5STd#r9MDvc2=!f2H6O9=6TrsW?*vj&7X`0ifk}|gYmMcufXGxx#*&WsV!OvK+ za985P+x(hL9sE<Lbc@Yty7sjtezvca*GUIZC<i#rT6J56cc<|L>yA52mX~cL^(Oxn zkztpdG;z0F(R-(NI%Q(YVP5mOZSB~5xexgXJd#QAbj$o2a7%B>wA7YP-BqECG3m3F z9%#zDoqVovx&DccR>_nKsUnq)3NKHTN|mZh@*V1Rm7S@ygHbamaQ>T>E=xRIXKtD< z6nM<=%e%_!+~N0k`<;kA^ffT^YN_Kbp>^!HDmt$-)<hlq$9_7bVE^J?@fZ1}%Wl*y zD^Tt_)U#@W{<J@CGG43uY)li3uej_GJ9qWi&RrJa^2d1#)+wGdJyeq*adE{$t8>R5 z?`B-rnd|b9!>&cJ`PbtB=h7=Gr&qQ9xYe<~`Nyx0{Dz7t&8roHPtRIit(oGxX^qE; zrH|h*DoYs}I_O+&s+s6f$&h-jsmAKb<%zEw1p7aiHtgzH-*3Vza9!Y`+o$-GfnGu> zQ+2QOW=$~dtBKPzDi?Y(UH3|Fl|{JxbElo9Tg<suaNX^0JF`*4oG*7}-|Beg(yLS6 z9{PF9LcafVY2iM*M^X=Joaf}Xd|N2G!z?r~&m<|iAz~x15z9sElWx2*r)Omp>n>T@ zYx2<|o_$5P$=3<X>@JzO%yOG?^GWHZ(EZ1PM4n8rEt4v8aqMGwvLW>TwWEc#SDTkB zI*X)moLKGTv(@(8>*o``Z2CSUt6amqO?|81)Kja4CARAQdT+D$K*s)Ab2hzVD>7BA zQ~Z12CR@nTMI|gt|8lO?TRu;rJb6{k%3V!Cc@uP3Nz@*k`ol5yc+tzAS<-Vhz3NT+ zdQ3;Vg2U&QXiqTnnrpM>@}@Oh%}d{T@NmNXcL`f7HbfO47Pnz>d&_0EiZLuZw}sXC zK-PBY#s`T8!Q~sGY$Dd~6cjz<)F0C+x0A=VXr^HI<E%&iFD4dvTou`SNnr1#11nm8 z-0~3bHz{q{WwEZk<m<$BjF(JZcDY@cWl)i4R<n*p?f>=X(yN%V&AF!K)kcV3KO7dp zoxOh2ul$8eqtbT;zV<55;J>W#R<NeL`T0FRpXBd{#VZ|jTAv#F{tdpHD(<;8Z0V%` zjay=mK9kiwVSnl2$@Le)I$5<;{@>M;T<G;-(t4Fe&pvqSFW>*@a!b^uy;r8ZTh1=< zTOeoW>=*GSv)(N-{9<V9>z&Ek7xvJ2UfqIRlg6?K#?6x+%ssOtWXg|;VX>?IW^akQ zHFZm5_R_7(MAr6}$;)22l`Z?S<C^Phr*+>pT$^jOW!|melAzbCeHZGym92TSCG$tf z^<|HPoqv1$j##~N?Ip8}tzXrCncliuW&GFbt<>I~_hNR3?RWLRu<r8zW!o?0U3h=t z{e`?M|JQB5l6NWk_1dk`U$_0*dn^9y@2~7z#j4o%HkU2G=lXup-`Mx->{tDDe!uYh zg{W8kul+OEez{j=|91Yb&%X-ZGX5?7%e%JSE^PjiuUD48$j`3*V)<)%l>Oi0+O^-h z_W9jk=6kLDh32jHUy6S_zU`d1Q2w&mEA=lqxf|=;&R-0B(KK<}td~8R_YKa;<m#?I zqO^5>gh=<Ly2Oh*ez#A&+OX@ES=fBj3uPPJ-Wcgl{M#A3Qg!3%n^$kiU7HfS_-*Rh z8(X7{vd`sR;oC6#rf!th?x}ZI$tG>zczes?HLTeSWfRv%O6$(OdtB~{QAG7M-_t3! zk@~tPsy6?#+US@wA#amnPRF^MDrS+}Z`7E@f8VTsL%ga%H>ta1wr=A67kts@x4qt| zGgJ2B>rFapU+g9Alw<Z^>oAgfy<N&&+Whs~9=l@&f9sN$d|djkW#f&Ah5kl$W@azm zOU>?K{^g^5R^XSo-Tw3I|3BGWyY1g*{X^m_*MHCb_V$YTuez^qua^G^s?n^P^nStn z1^aGKe`dYp{YTl4vX{UA^!wrWV&%TzeL1#g%a4`2**`k{@#%|~`-+$O+h-LS$DB7( zKEq*~;WjI@H1XK1trEtsXVj<Feb#>#AL0Ai>a$<i>73+k$>Fo-o|%4Q>oe_V*=rX6 z+-2ESYIuBB@=fJu6~#=i)AptAJ1S?YKKt^G<Yzv`YOgcTnWb-zd-nU;?>Cyo>wa2R z--^l5OFutb`|SFg0iUCbWvg%gxp(JOoay%2);Cy;FZ!h9&)R*~_KmLbRhu(vvyY#R zF`FuU{bu`|&lTSc^H0p)X!?h(&iMA3{HNPD$^Oaz<F{?{{iE;Gc2`E<o3`}B?;o`} z_WS4GKhO8!+a7M~6T3gY)0u03PCi|)ev<upBhW_exsUZfCAOW5e|(s?x&O&xp2_`B zgL%65AHHv>^wY%d?21FnKTEoa%s>2G;$n?neA<x@`9Hq9CGVS<Z@li=?jM|w^=&54 zH;wunqu29$O<S1rW5?ASOLu;pP&&1A>&1&%X{N?j(dH3nd-bmQUORj2@U^wq*1DO$ zet#|2t$g*=tEXNh-p$==_%HQt_EzJ08{{_08C6BzT_bla_}b-bn~xP=W5{l}cwQ=p z*X&ocew4oC`RK!IulF`y)5zXpctk3@*EDX6T7+;<;x(1*RUapPUHCOWxyAJQtn8jG z&!Ru~243TQy~OaARq9-$V-d^OUOsliKw!S1-Wd+#9?nFYGx<I|n-3@ToJ_oWXqDvV z!>ih_8a-<{+J02}|F`?E^Yd$-ynppRtLD}FcklCRp8cQxzwmMK|H=Q<d-ebB{o^mm z{rCKj`G#V@fB*a~>HUZK4|C7be~$ka9y9u1@ZTnRY5mmy){h(NSN{(`{Pq1ed4o-V z(wPd~3<C5G&WX#<5SZ~)S~x-?;^Az$8v+&&e_wc3w&uP2Z?4~E@ss{8_^W?E^S9@3 zN#ir`a=#mD-~9XL`B{(Z2HOK`viLW}n=XDU_)Wt2o?LprvGh&hH|A%LeN(AkR@wS@ z-rsqZYi*CuOOH#hPpVJ6m!-dH`pohh@i*gV>b{-&&1>`2y|@0I%gOzpl5ceTX7n4~ zH23P+dk?=!QNLAvX5BZt-!p#BsJ&#D`)%|2TRWdASihKHdF7()-I|kzGM8&^Zj?D* zbGEZ!(b<cBYlO4?N*>LTdN$inclkcco0%_6OqN?a&t3S8Cw<1}RhE|}AMQ!q_r9lG zZC3Hz?Q=Yz)jZFAo?F~#e0644-K#yX&luSkr&-I->OS=KLqTz6MM_1_&)SNwA7(vk z`|#$&=4Wb`{%*M6`R2CPedk`yd0H95-mYC19=<M8hjw@Q3W@|DRsWIFG0|d|dx^um ztsF}$pI<(b_~v`1d!*~9)0^8})$I1qeSGvvu~5Zkmr8b~c+sw#y;6%(b;a*Is8qb` zH?es`@60{QmKJ`RI>~X_T`NDUZw%k@D1FL=o@>jdsU&NfaWD1z<aJ;F($T2G1J+i7 zOTH;POuC_L)_wVr9+&g|Sie%PIsDT?W?HmnPwy0}n=JE}zgxBBTkS`?n-2d>ZS=nf zK4|c8k=$MQqIvGs33-kywps0VTO)pZf&B&9A8(Id|G%-q-{<&u4h6>;)n8q99HK9d z@42QtB~GP0phi1rq2v87c}4bh&2RP|+WG17zYwQzfj=RO3PhzIAKjtx`?<|sofV>S zK59{QOtt&H=d|pN=L|esAo?j=-2IBE)uidWJpPpwawMNQ`?_$a(W-s*x-*uk?A%+@ z+1fWxx8zIg%Tougg)IGU;+u2)>*gchgtE@*8El(<>8t9JdFuak-M9SMcEw2aTzx=R z`<0tY>D#6$nMbL`1utxU-k<)_L-Uif`w{W3?PaH5hh6inS#slx@|Wz3XSG5(C6iVr zoeg^BYN$F#V{e$~<lD&+8&}5c6kqYT?4*q7zP~#~zRL5QO;uvAD%o_#^oF?YZH^zy zSE=S7yDk2!;(50C<mW~;S&xe&6*cWY>@#n%6F+%>%Z)#A@14B;8t3}OdL(>!9#|;D zvn{+=bLG|Lp?_RTcTI~>4eQV?a@+6l?+(+$z!2U){~5MUR6f$}edx}HH5%g2pP$qe zkZYg0T<CA}E+w1$-QJGxbN75$Gb?=mr5D>L+Vi}*d^@>F^8d^qEi)oY4*q$by^#M} zF#nPL59j{(TjTuy{{vakr|&nj9#WpTTWYIXCZ}peVSJ~m#zTAYHTCr$KRU)3p6p+= zc1LuHc<!Dn#$8Y9Id#76`_ccyHAhomZLoUPOgCkdwqvL6pSfU@@vbI{<#mDN+6CEH zRvp^<g*SKc>kM_-1=FUi%KWn6TIg%9^9L9ISN}S3pUv0FaW-GC&%aQ8k^95(@(T&I z)8{!ke=)J`ZF}ARRoTSp*E5r#^OrVfZkf0E`2~rWvoA-yoPD|C$1}!RC$cu*GHESM znfoI5+EiPg;NI3_PLtx+E_k`mBVOfiN?m51r~T~snc5k9cb@(;wa&0rGh_0Xml>PC zyv$(V-@bjR%FD|a<$jd#Ux<5oIdIdLmm0pmN=hPrm6W*rDk*XMRU*>jZ|<dBQT*6+ zvj3CdEe0<yXHH$>zueVhzTfII>7Om5L|<Oc3|;EK+_c5N+-bMay*U?dMV$GRDXVk( zQ}$fl+g#V>wrNF&Zh03Ls_phV@o1#!7WFkzVSBEfUX^ZoVcy2PjY3<VKiF!!>T7Gc znNzjgy_*`j4PW+eX}qL<iOqAqhqR1@gv4^*$@BWmZuV_R-kSQ&rh4ACV}2X^Gqabj zUzj^>U)#3eUsAW$U%Gzbn@7C!ZS7iKUDsbyw-jGyXB=O$exdC2eQnb;Yk76ue+fpd z`=Y$1_)`CcuOBviXgGIxb=&b5|2|xPm|j}xpSb&ygl}dKU++wo{v@Nl%yZ{?6$^Z} zvzueLpx@B@Y^&W&ulYVNE*JIeTE8H)ZfR&;#?|i~{~NajG;Djc*!lFfgRAa&?mx84 zYf(ziMv)gWvR+FcOMF!Su+m#ybM~u?nKiF2OIo?}YH;+fS!1$k*(Hx<CYQpbGM$yH zgIex!S7mDN?P-Zq3*53V`o3@I7u#QUT^A>RP3gKCykNcQlzn00zob@w*}Ce|b&I9z zLrWHNuR4_QFIZ$t*l{`O(AIZFErlOfN^v*Kxog_4<FkF|!5gWbQLLO%9Nr?|=4T#c z6)S8t*Jakm+ZGPH3NLu5UiL7K;gXPaQ@d*9Cm9)X@`PE@%58;wx9&S+*2^yaYdZDY z^^jZf!I|~G8UOEVbZvj2t8pOz`S!^N-yf*>kZ5zKb;h(ks!35F!;VyD-<zdVXMW7n zwr6tngzdU+-ZP|h8Fw-{@zpaVtH~rUW4`)Owo-l75$n(At~8V%)L6B~Eil!z%cN(K z`oz`h^=z5*p6(U=EK}cCa<BcntM1<l`zd$im312?nhES=`{>vqe}-N8uRxEjd#|nU zy5$OIIsRF_l0E7E@J)oBnBn6e7Eh$kA6Gu>V#jGX`DcoUQLDcr&oT9%Pk*>rUjA9~ zWY)oSg*vnOy+zMHSbA7aKks_R#!kM{{^9%u@?szKFBr#vQk_t&8Q*0Wd2G7ls{9{O z9=~<}%cbT$x!|*Js<ZmfvUwes%0AkPod5nw<jcvrd2PG+J{}I4F8}c5i<67*Ed6EE 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¨^y=+xr=<laFE+UJI&q`yiGvZvt{ViOZ`5_x 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≀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≀qW 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 literal 0 HcmV?d00001 diff --git a/QDMA/linux-kernel/drv/.cache.mk b/QDMA/linux-kernel/drv/.cache.mk new file mode 100644 index 0000000..938e7a5 --- /dev/null +++ b/QDMA/linux-kernel/drv/.cache.mk @@ -0,0 +1,63 @@ +__cached_gcc_-v_2>&1_|_grep_-q_"clang_version"_&&_echo_clang_||_echo_gcc := gcc +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-mretpoline-external-thunk_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-mretpoline-external-thunk";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-mindirect-branch_thunk-extern_-mindirect-branch-register_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-mindirect-branch_thunk-extern_-mindirect-branch-register";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -mindirect-branch=thunk-extern -mindirect-branch-register +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-fno-PIE";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -fno-PIE +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-fno-PIE_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-fno-PIE";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -fno-PIE +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-Werror_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-Wmaybe-uninitialized_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wno-maybe-uninitialized";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wno-maybe-uninitialized +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE__-mpreferred-stack-boundary_4_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"_-mpreferred-stack-boundary_4";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -mpreferred-stack-boundary=4 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE__-m16_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"_-m16";_else_echo_"_-m32_-Wa_./arch/x86/boot/code16gcc.h";_fi;_rm_-f_"_TMP"_"_TMPO" := -m16 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-m16_-g_-Os_-D__KERNEL___-DDISABLE_BRANCH_PROFILING_-Wall_-Wstrict-prototypes_-march_i386_-mregparm_3_-fno-strict-aliasing_-fomit-frame-pointer_-fno-pic_-mno-mmx_-mno-sse__-ffreestanding_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"_-ffreestanding";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -ffreestanding +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-m16_-g_-Os_-D__KERNEL___-DDISABLE_BRANCH_PROFILING_-Wall_-Wstrict-prototypes_-march_i386_-mregparm_3_-fno-strict-aliasing_-fomit-frame-pointer_-fno-pic_-mno-mmx_-mno-sse_-ffreestanding__-fno-stack-protector_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"_-fno-stack-protector";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -fno-stack-protector +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-m16_-g_-Os_-D__KERNEL___-DDISABLE_BRANCH_PROFILING_-Wall_-Wstrict-prototypes_-march_i386_-mregparm_3_-fno-strict-aliasing_-fomit-frame-pointer_-fno-pic_-mno-mmx_-mno-sse_-ffreestanding_-fno-stack-protector__-mpreferred-stack-boundary_2_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"_-mpreferred-stack-boundary_2";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -mpreferred-stack-boundary=2 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-mno-avx";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -mno-avx +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-falign-jumps_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -falign-jumps=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-falign-loops_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -falign-loops=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-mno-80387";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -mno-80387 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-mno-fp-ret-in-387";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -mno-fp-ret-in-387 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-mpreferred-stack-boundary_3";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -mpreferred-stack-boundary=3 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-mskip-rax-setup";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -mskip-rax-setup +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-mtune_generic";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -mtune=generic +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-funit-at-a-time";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -funit-at-a-time +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-Werror_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI__-mfentry_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"y";_else_echo_"n";_fi;_rm_-f_"_TMP"_"_TMPO" := y +__cached_/bin/bash_./scripts/gcc-version.sh_-p_gcc := 070300 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_".cfi_startproc_n.cfi_rel_offset_rsp_0_n.cfi_endproc"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_CFI_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_CFI=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_".cfi_startproc_n.cfi_signal_frame_n.cfi_endproc"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_CFI_SIGNAL_FRAME_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_CFI_SIGNAL_FRAME=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_".cfi_sections_.debug_frame"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_CFI_SECTIONS_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_CFI_SECTIONS=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_"fxsaveq__%rax_"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_FXSAVEQ_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_FXSAVEQ=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_"pshufb_%xmm0_%xmm0"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_SSSE3_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_SSSE3=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_"crc32l_%eax_%eax"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_CRC32_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_CRC32=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_"vxorps_%ymm0_%ymm1_%ymm2"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_AVX_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_AVX=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_"vpbroadcastb_%xmm0_%ymm1"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_AVX2_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_AVX2=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_"vpmovm2b_%k1_%zmm5"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_AVX512_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_AVX512=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_"sha1msg1_%xmm0_%xmm1"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_SHA1_NI_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_SHA1_NI=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___printf_"%b_n"_"sha256msg1_%xmm0_%xmm1"_|_gcc_-D__ASSEMBLY___-fno-PIE_-m64_-DCONFIG_X86_X32_ABI_-c_-x_assembler_-o_"_TMP"_-__>/dev/null_2>&1;_then_echo_"-DCONFIG_AS_SHA256_NI_1";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -DCONFIG_AS_SHA256_NI=1 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-x_c_/dev/null_-c_-o_"_TMPO";_ld_-m_elf_x86_64__-z_max-page-size_0x200000_"_TMPO"_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"_-z_max-page-size_0x200000";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -z max-page-size=0x200000 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-fno-delete-null-pointer-checks";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -fno-delete-null-pointer-checks +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-Werror_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wframe-address_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wno-frame-address";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wno-frame-address +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-Werror_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wformat-truncation_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wno-format-truncation";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wno-format-truncation +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-Werror_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wformat-overflow_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wno-format-overflow";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wno-format-overflow +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-Werror_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wint-in-bool-context_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wno-int-in-bool-context";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wno-int-in-bool-context +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-Werror_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_-Wmaybe-uninitialized_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wno-maybe-uninitialized";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wno-maybe-uninitialized +__cached_/bin/bash_./scripts/gcc-version.sh_gcc := 0703 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"--param_allow-store-data-races_0";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := --param=allow-store-data-races=0 +__cached_/bin/bash_./scripts/gcc-goto.sh_gcc_-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2__--param_allow-store-data-races_0 := y +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wframe-larger-than_1024";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wframe-larger-than=1024 +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-Werror_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wunused-but-set-variable_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wno-unused-but-set-variable";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wno-unused-but-set-variable +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-Werror_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wunused-const-variable_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wno-unused-const-variable";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wno-unused-const-variable +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls__-fno-var-tracking-assignments_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"_-fno-var-tracking-assignments";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -fno-var-tracking-assignments +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments__-mfentry_-DCC_USING_FENTRY_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"_-mfentry_-DCC_USING_FENTRY";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -mfentry -DCC_USING_FENTRY +__cached_gcc_-print-file-name_include := /usr/lib/gcc/x86_64-linux-gnu/7/include +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wdeclaration-after-statement";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wdeclaration-after-statement +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc_-Werror_-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wpointer-sign_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Wno-pointer-sign";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wno-pointer-sign +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-fno-strict-overflow";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -fno-strict-overflow +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-fno-merge-all-constants_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-fno-merge-all-constants";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -fno-merge-all-constants +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-fno-merge-all-constants_-fmerge-constants_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-fmerge-constants";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -fmerge-constants +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-fno-merge-all-constants_-fmerge-constants_-fno-stack-check_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-fno-stack-check";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -fno-stack-check +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-fno-merge-all-constants_-fmerge-constants_-fno-stack-check_-fconserve-stack_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-fconserve-stack";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -fconserve-stack +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-fno-merge-all-constants_-fmerge-constants_-fno-stack-check_-fconserve-stack_-Werror_implicit-int_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Werror_implicit-int";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Werror=implicit-int +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-fno-merge-all-constants_-fmerge-constants_-fno-stack-check_-fconserve-stack_-Werror_implicit-int_-Werror_strict-prototypes_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Werror_strict-prototypes";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Werror=strict-prototypes +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-fno-merge-all-constants_-fmerge-constants_-fno-stack-check_-fconserve-stack_-Werror_implicit-int_-Werror_strict-prototypes_-Werror_date-time_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Werror_date-time";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Werror=date-time +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-fno-merge-all-constants_-fmerge-constants_-fno-stack-check_-fconserve-stack_-Werror_implicit-int_-Werror_strict-prototypes_-Werror_date-time_-Werror_incompatible-pointer-types_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Werror_incompatible-pointer-types";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Werror=incompatible-pointer-types +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if____gcc_-Werror__-D__KERNEL___-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-fno-merge-all-constants_-fmerge-constants_-fno-stack-check_-fconserve-stack_-Werror_implicit-int_-Werror_strict-prototypes_-Werror_date-time_-Werror_incompatible-pointer-types_-Werror_designated-init_-c_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"-Werror_designated-init";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Werror=designated-init +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___ar_rcD_"_TMP"__>/dev/null_2>&1;_then_echo_"D";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := D +__cached_set_-e;_TMP_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.tmp";_TMPO_"/home/karenx/MY_SYSPRO/GIT/dma_ip_drivers.git/QDMA/linux-kernel/drv/.__.o";_if___gcc__-Wl_--build-id_-D__KERNEL_____-Wall_-Wundef_-Wstrict-prototypes_-Wno-trigraphs_-fno-strict-aliasing_-fno-common_-fshort-wchar_-Werror-implicit-function-declaration_-Wno-format-security_-std_gnu89_-fno-PIE_-mno-sse_-mno-mmx_-mno-sse2_-mno-3dnow_-mno-avx_-m64_-falign-jumps_1_-falign-loops_1_-mno-80387_-mno-fp-ret-in-387_-mpreferred-stack-boundary_3_-mskip-rax-setup_-mtune_generic_-mno-red-zone_-mcmodel_kernel_-funit-at-a-time_-DCONFIG_X86_X32_ABI_-DCONFIG_AS_CFI_1_-DCONFIG_AS_CFI_SIGNAL_FRAME_1_-DCONFIG_AS_CFI_SECTIONS_1_-DCONFIG_AS_FXSAVEQ_1_-DCONFIG_AS_SSSE3_1_-DCONFIG_AS_CRC32_1_-DCONFIG_AS_AVX_1_-DCONFIG_AS_AVX2_1_-DCONFIG_AS_AVX512_1_-DCONFIG_AS_SHA1_NI_1_-DCONFIG_AS_SHA256_NI_1_-pipe_-Wno-sign-compare_-fno-asynchronous-unwind-tables_-mindirect-branch_thunk-extern_-mindirect-branch-register_-DRETPOLINE_-fno-delete-null-pointer-checks_-Wno-frame-address_-Wno-format-truncation_-Wno-format-overflow_-Wno-int-in-bool-context_-O2_--param_allow-store-data-races_0_-DCC_HAVE_ASM_GOTO_-Wframe-larger-than_1024_-fstack-protector-strong_-Wno-unused-but-set-variable_-Wno-unused-const-variable_-fno-omit-frame-pointer_-fno-optimize-sibling-calls_-fno-var-tracking-assignments_-pg_-mfentry_-DCC_USING_FENTRY_-Wdeclaration-after-statement_-Wno-pointer-sign_-fno-strict-overflow_-fno-merge-all-constants_-fmerge-constants_-fno-stack-check_-fconserve-stack_-Werror_implicit-int_-Werror_strict-prototypes_-Werror_date-time_-Werror_incompatible-pointer-types_-Werror_designated-init_-nostdlib_-x_c_/dev/null_-o_"_TMP"__>/dev/null_2>&1;_then_echo_"_-Wl_--build-id";_else_echo_"";_fi;_rm_-f_"_TMP"_"_TMPO" := -Wl,--build-id diff --git a/QDMA/linux-kernel/drv/Makefile b/QDMA/linux-kernel/drv/Makefile new file mode 100644 index 0000000..b85c19b --- /dev/null +++ b/QDMA/linux-kernel/drv/Makefile @@ -0,0 +1,83 @@ +SHELL = /bin/bash + +# The top-level makefile defines required variables and flags. +ifneq ($(shell [[ $(MAKELEVEL) -ge 1 ]] && echo 1),1) + $(error Please use the top-level Makefile to build this driver) +endif + +ifneq ($(wildcard /etc/lsb-release),) + ifneq ($(shell $(grep) "Ubuntu" /etc/lsb-release),) + FLAGS += -DUBUNTU_VERSION_CODE + endif +endif + +include $(srcdir)/make/common_flags.mk + +$(info srcdir = $(srcdir).) +$(info KSRC = $(KSRC).) +$(info VF = $(VF).) + +MOD_NAME := qdma$(PFVF_TYPE) + +EXTRA_CFLAGS += -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall -Werror +EXTRA_CFLAGS += $(FLAGS) $(CPPFLAGS) $(EXTRA_FLAGS) +EXTRA_CFLAGS += -I$(srcdir)/include +EXTRA_CFLAGS += -I$(KSRC)/include +EXTRA_CFLAGS += -I. + +# linux >= 3.13 genl_ops become part of the genl_family. And although +# genl_register_family_with_ops() is still retained until kernel 4.10, +# its prototype changed from a extern function to a define. +# +ifneq ($(shell $(grep) -c 'int genl_register_family_with_ops' $(KINC)/net/genetlink.h),0) + ccflags-y += -D__GENL_REG_FAMILY_OPS_FUNC__ +endif + +# linux <= 3.13 pci_msix_vec_count is not defined. +# +ifeq ($(shell $(grep) -c 'int pci_msix_vec_count' $(KINC)/linux/pci.h),0) + ccflags-y += -D__PCI_MSI_VEC_COUNT__ +endif + +# linux < 3.13 list_next_entry is not defined. +# +ifeq ($(shell $(grep) -c 'list_next_entry' $(KINC)/linux/list.h),0) + ccflags-y += -D__LIST_NEXT_ENTRY__ +endif + +# linux < 3.18.13 READ_ONCE is not defined. +# +ifneq ($(shell $(grep) -c 'READ_ONCE' $(KINC)/linux/compiler.h),0) + ccflags-y += -D__READ_ONCE_DEFINED__ +endif + +$(info EXTRA_FLAGS = $(EXTRA_FLAGS).) +$(info ccflags-y = $(ccflags-y).) +#EXTRA_CFLAGS += -DDEBUG + +ifneq ($(modulesymfile),) + override symverfile = symverfile="$(topdir)/$(modulesymfile) \ + -o $(drvdir)/$(modulesymfile)" +else + override symverfile = +endif + +ifneq ($(SUBDIRS),) + BASE_OBJS := $(patsubst $(SUBDIRS)/%.c,%.o,$(wildcard $(SUBDIRS)/*.c $(SUBDIRS)/*/*.c)) +endif +obj-m := $(MOD_NAME).o +$(MOD_NAME)-objs := $(BASE_OBJS) + +.PHONY: build +build: + @mkdir -p -m 755 $(build_dir) + @rm -f $(MOD_NAME).ko $(build_dir)/$(MOD_NAME).ko + @$(MAKE) symverfile=$(symverfile) KBUILD_EXTRA_SYMBOLS=$(extra_symb) -C $(KOBJ) SUBDIRS=$(shell pwd) modules + @cp $(MOD_NAME).ko $(build_dir) + +.PHONY: clean +clean: + @-/bin/rm -rf *.ko* ?odule* .tmp_versions *.mod.* *.o *.o.* .*.o.* .*.cmd + @-/bin/rm -rf */*.o */*.o.* */.*.o.* */.*.cmd + @-/bin/rm -rf $(build_dir)/*.ko + @-/bin/rm -f $(srcdir)/drv/libqdma diff --git a/QDMA/linux-kernel/drv/cdev.c b/QDMA/linux-kernel/drv/cdev.c new file mode 100644 index 0000000..72eb57b --- /dev/null +++ b/QDMA/linux-kernel/drv/cdev.c @@ -0,0 +1,800 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "cdev.h" + +#include <asm/cacheflush.h> +#include <linux/device.h> +#include <linux/errno.h> +#include <linux/fs.h> +#include <linux/kernel.h> +#include <linux/pci.h> +#include <linux/slab.h> +#include <linux/types.h> +#include <linux/uaccess.h> +#include <linux/slab.h> +#include <linux/aio.h> +#include <linux/sched.h> +#include <linux/wait.h> +#include <linux/kthread.h> +#include <linux/version.h> +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) +#include <linux/uio.h> +#endif + +#include "qdma_mod.h" + + +/* + * @struct - xlnx_phy_dev + * @brief xilinx board device data members + */ +struct xlnx_phy_dev { + struct list_head list_head; /**< board list */ + unsigned int major; /**< major number per board */ + unsigned int device_bus; /**< PCIe device bus number per board */ +}; + +static LIST_HEAD(xlnx_phy_dev_list); +static DEFINE_MUTEX(xlnx_phy_dev_mutex); + +struct cdev_async_io { + ssize_t res2; + unsigned long req_count; + unsigned long cmpl_count; + unsigned long err_cnt; + struct qdma_io_cb *qiocb; + struct qdma_request **reqv; + struct kiocb *iocb; + struct work_struct wrk_itm; +}; + +enum qdma_cdev_ioctl_cmd { + QDMA_CDEV_IOCTL_NO_MEMCPY, + QDMA_CDEV_IOCTL_CMDS +}; + +struct class *qdma_class; +static struct kmem_cache *cdev_cache; + +static ssize_t cdev_gen_read_write(struct file *file, char __user *buf, + size_t count, loff_t *pos, bool write); +static void unmap_user_buf(struct qdma_io_cb *iocb, bool write); +static inline void iocb_release(struct qdma_io_cb *iocb); + +static inline void xlnx_phy_dev_list_remove(struct xlnx_phy_dev *phy_dev) +{ + if (!phy_dev) + return; + + mutex_lock(&xlnx_phy_dev_mutex); + list_del(&phy_dev->list_head); + mutex_unlock(&xlnx_phy_dev_mutex); +} + +static inline void xlnx_phy_dev_list_add(struct xlnx_phy_dev *phy_dev) +{ + if (!phy_dev) + return; + + mutex_lock(&xlnx_phy_dev_mutex); + list_add_tail(&phy_dev->list_head, &xlnx_phy_dev_list); + mutex_unlock(&xlnx_phy_dev_mutex); +} + +static int qdma_req_completed(struct qdma_request *req, + unsigned int bytes_done, int err) +{ + struct qdma_io_cb *qiocb = container_of(req, + struct qdma_io_cb, + req); + struct cdev_async_io *caio = NULL; + bool free_caio = false; + ssize_t res, res2; + + + if (qiocb) { + caio = (struct cdev_async_io *)qiocb->private; + } else { + pr_err("Invalid Data structure. Probable memory corruption"); + return -EINVAL; + } + + if (!caio) { + pr_err("Invalid Data structure. Probable memory corruption"); + return -EINVAL; + } + + unmap_user_buf(qiocb, req->write); + iocb_release(qiocb); + caio->res2 |= (err < 0) ? err : 0; + if (caio->res2) + caio->err_cnt++; + caio->cmpl_count++; + if (caio->cmpl_count == caio->req_count) { + res = caio->cmpl_count - caio->err_cnt; + res2 = caio->res2; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0) + caio->iocb->ki_complete(caio->iocb, res, res2); +#else + aio_complete(caio->iocb, res, res2); +#endif + kfree(caio->qiocb); + free_caio = true; + } + if (free_caio) + kmem_cache_free(cdev_cache, caio); + + return 0; +} + +/* + * character device file operations + */ +static int cdev_gen_open(struct inode *inode, struct file *file) +{ + struct qdma_cdev *xcdev = container_of(inode->i_cdev, struct qdma_cdev, + cdev); + file->private_data = xcdev; + + if (xcdev->fp_open_extra) + return xcdev->fp_open_extra(xcdev); + + return 0; +} + +static int cdev_gen_close(struct inode *inode, struct file *file) +{ + struct qdma_cdev *xcdev = (struct qdma_cdev *)file->private_data; + + if (xcdev && xcdev->fp_close_extra) + return xcdev->fp_close_extra(xcdev); + + return 0; +} + +static loff_t cdev_gen_llseek(struct file *file, loff_t off, int whence) +{ + struct qdma_cdev *xcdev = (struct qdma_cdev *)file->private_data; + + loff_t newpos = 0; + + switch (whence) { + case 0: /* SEEK_SET */ + newpos = off; + break; + case 1: /* SEEK_CUR */ + newpos = file->f_pos + off; + break; + case 2: /* SEEK_END, @TODO should work from end of address space */ + newpos = UINT_MAX + off; + break; + default: /* can't happen */ + return -EINVAL; + } + if (newpos < 0) + return -EINVAL; + file->f_pos = newpos; + + pr_debug("%s: pos=%lld\n", xcdev->name, (signed long long)newpos); + + return newpos; +} + +static long cdev_gen_ioctl(struct file *file, unsigned int cmd, + unsigned long arg) +{ + struct qdma_cdev *xcdev = (struct qdma_cdev *)file->private_data; + + switch (cmd) { + case QDMA_CDEV_IOCTL_NO_MEMCPY: + get_user(xcdev->no_memcpy, (unsigned char *)arg); + return 0; + default: + break; + } + if (xcdev->fp_ioctl_extra) + return xcdev->fp_ioctl_extra(xcdev, cmd, arg); + + pr_info("%s ioctl NOT supported.\n", xcdev->name); + return -EINVAL; +} + +/* + * cdev r/w + */ +static inline void iocb_release(struct qdma_io_cb *iocb) +{ + if (iocb->pages) + iocb->pages = NULL; + kfree(iocb->sgl); + iocb->sgl = NULL; + iocb->buf = NULL; +} + +static void unmap_user_buf(struct qdma_io_cb *iocb, bool write) +{ + int i; + + if (!iocb->pages || !iocb->pages_nr) + return; + + for (i = 0; i < iocb->pages_nr; i++) { + if (iocb->pages[i]) { + if (!write) + set_page_dirty_lock(iocb->pages[i]); + put_page(iocb->pages[i]); + } else + break; + } + + if (i != iocb->pages_nr) + pr_err("sgl pages %d/%u.\n", i, iocb->pages_nr); + + iocb->pages_nr = 0; +} + +static int map_user_buf_to_sgl(struct qdma_io_cb *iocb, bool write) +{ + unsigned long len = iocb->len; + char *buf = iocb->buf; + struct qdma_sw_sg *sg; + unsigned int pg_off = offset_in_page(buf); + unsigned int pages_nr = (len + pg_off + PAGE_SIZE - 1) >> PAGE_SHIFT; + int i; + int rv; + + if (len == 0) + pages_nr = 1; + if (pages_nr == 0) + return -EINVAL; + + iocb->pages_nr = 0; + sg = kmalloc(pages_nr * (sizeof(struct qdma_sw_sg) + + sizeof(struct page *)), GFP_KERNEL); + if (!sg) { + pr_err("sgl allocation failed for %u pages", pages_nr); + return -ENOMEM; + } + memset(sg, 0, pages_nr * (sizeof(struct qdma_sw_sg) + + sizeof(struct page *))); + iocb->sgl = sg; + + iocb->pages = (struct page **)(sg + pages_nr); + rv = get_user_pages_fast((unsigned long)buf, pages_nr, 1/* write */, + iocb->pages); + /* No pages were pinned */ + if (rv < 0) { + pr_err("unable to pin down %u user pages, %d.\n", + pages_nr, rv); + goto err_out; + } + /* Less pages pinned than wanted */ + if (rv != pages_nr) { + pr_err("unable to pin down all %u user pages, %d.\n", + pages_nr, rv); + iocb->pages_nr = rv; + rv = -EFAULT; + goto err_out; + } + + for (i = 1; i < pages_nr; i++) { + if (iocb->pages[i - 1] == iocb->pages[i]) { + pr_err("duplicate pages, %d, %d.\n", + i - 1, i); + iocb->pages_nr = pages_nr; + rv = -EFAULT; + goto err_out; + } + } + + sg = iocb->sgl; + for (i = 0; i < pages_nr; i++, sg++) { + unsigned int offset = offset_in_page(buf); + unsigned int nbytes = min_t(unsigned int, PAGE_SIZE - offset, + len); + struct page *pg = iocb->pages[i]; + + flush_dcache_page(pg); + + sg->next = sg + 1; + sg->pg = pg; + sg->offset = offset; + sg->len = nbytes; + sg->dma_addr = 0UL; + + buf += nbytes; + len -= nbytes; + } + + iocb->sgl[pages_nr - 1].next = NULL; + iocb->pages_nr = pages_nr; + return 0; + +err_out: + unmap_user_buf(iocb, write); + iocb_release(iocb); + + return rv; +} + +static ssize_t cdev_gen_read_write(struct file *file, char __user *buf, + size_t count, loff_t *pos, bool write) +{ + struct qdma_cdev *xcdev = (struct qdma_cdev *)file->private_data; + struct qdma_io_cb iocb; + struct qdma_request *req = &iocb.req; + ssize_t res = 0; + int rv; + unsigned long qhndl; + + if (!xcdev) { + pr_info("file 0x%p, xcdev NULL, 0x%p,%llu, pos %llu, W %d.\n", + file, buf, (u64)count, (u64)*pos, write); + return -EINVAL; + } + + if (!xcdev->fp_rw) { + pr_info("file 0x%p, %s, NO rw, 0x%p,%llu, pos %llu, W %d.\n", + file, xcdev->name, buf, (u64)count, (u64)*pos, write); + return -EINVAL; + } + + qhndl = write ? xcdev->h2c_qhndl : xcdev->c2h_qhndl; + + pr_debug("%s, priv 0x%lx: buf 0x%p,%llu, pos %llu, W %d.\n", + xcdev->name, qhndl, buf, (u64)count, (u64)*pos, + write); + + memset(&iocb, 0, sizeof(struct qdma_io_cb)); + iocb.buf = buf; + iocb.len = count; + rv = map_user_buf_to_sgl(&iocb, write); + if (rv < 0) + return rv; + + req->sgcnt = iocb.pages_nr; + req->sgl = iocb.sgl; + req->write = write ? 1 : 0; + req->dma_mapped = 0; + req->udd_len = 0; + req->ep_addr = (u64)*pos; + req->count = count; + req->timeout_ms = 10 * 1000; /* 10 seconds */ + req->fp_done = NULL; /* blocking */ + req->h2c_eot = 1; /* set to 1 for STM tests */ + + res = xcdev->fp_rw(xcdev->xcb->xpdev->dev_hndl, qhndl, req); + + unmap_user_buf(&iocb, write); + iocb_release(&iocb); + + return res; +} + +static ssize_t cdev_gen_write(struct file *file, const char __user *buf, + size_t count, loff_t *pos) +{ + return cdev_gen_read_write(file, (char *)buf, count, pos, 1); +} + +static ssize_t cdev_gen_read(struct file *file, char __user *buf, + size_t count, loff_t *pos) +{ + return cdev_gen_read_write(file, (char *)buf, count, pos, 0); +} + +static ssize_t cdev_aio_write(struct kiocb *iocb, const struct iovec *io, + unsigned long count, loff_t pos) +{ + struct qdma_cdev *xcdev = + (struct qdma_cdev *)iocb->ki_filp->private_data; + struct cdev_async_io *caio; + int rv = 0; + unsigned long i; + unsigned long qhndl; + + if (!xcdev) { + pr_err("file 0x%p, xcdev NULL, %llu, pos %llu, W %d.\n", + iocb->ki_filp, (u64)count, (u64)pos, 1); + return -EINVAL; + } + + if (!xcdev->fp_rw) { + pr_err("No Read write handler assigned\n"); + return -EINVAL; + } + + caio = kmem_cache_alloc(cdev_cache, GFP_KERNEL); + if (!caio) { + pr_info("OOM"); + return -ENOMEM; + } + memset(caio, 0, sizeof(struct cdev_async_io)); + caio->qiocb = kzalloc(count * (sizeof(struct qdma_io_cb) + + sizeof(struct qdma_request *)), GFP_KERNEL); + if (!caio->qiocb) { + pr_err("failed to allocate qiocb"); + return -ENOMEM; + } + caio->reqv = (struct qdma_request **)(caio->qiocb + count); + for (i = 0; i < count; i++) { + caio->qiocb[i].private = caio; + caio->reqv[i] = &(caio->qiocb[i].req); + caio->qiocb[i].buf = io[i].iov_base; + caio->qiocb[i].len = io[i].iov_len; + rv = map_user_buf_to_sgl(&(caio->qiocb[i]), true); + if (rv < 0) { + break; + } + + caio->reqv[i]->write = 1; + caio->reqv[i]->sgcnt = caio->qiocb[i].pages_nr; + caio->reqv[i]->sgl = caio->qiocb[i].sgl; + caio->reqv[i]->dma_mapped = false; + caio->reqv[i]->udd_len = 0; + caio->reqv[i]->ep_addr = (u64)pos; + caio->reqv[i]->no_memcpy = xcdev->no_memcpy ? 1 : 0; + caio->reqv[i]->count = io->iov_len; + caio->reqv[i]->timeout_ms = 10 * 1000; /* 10 seconds */ + caio->reqv[i]->fp_done = qdma_req_completed; + + } + if (i > 0) { + iocb->private = caio; + caio->iocb = iocb; + caio->req_count = i; + qhndl = xcdev->h2c_qhndl; + rv = xcdev->fp_aiorw(xcdev->xcb->xpdev->dev_hndl, qhndl, + caio->req_count, caio->reqv); + if (rv >= 0) + rv = -EIOCBQUEUED; + } else { + pr_err("failed with %d for %lu reqs", rv, caio->req_count); + kfree(caio->qiocb); + kmem_cache_free(cdev_cache, caio); + } + + return rv; +} + +static ssize_t cdev_aio_read(struct kiocb *iocb, const struct iovec *io, + unsigned long count, loff_t pos) +{ + struct qdma_cdev *xcdev = + (struct qdma_cdev *)iocb->ki_filp->private_data; + struct cdev_async_io *caio; + int rv = 0; + unsigned long i; + unsigned long qhndl; + + if (!xcdev) { + pr_err("file 0x%p, xcdev NULL, %llu, pos %llu, W %d.\n", + iocb->ki_filp, (u64)count, (u64)pos, 1); + return -EINVAL; + } + + if (!xcdev->fp_rw) { + pr_err("No Read write handler assigned\n"); + return -EINVAL; + } + + caio = kmem_cache_alloc(cdev_cache, GFP_KERNEL); + if (!caio) { + pr_err("failed to allocate qiocb"); + return -ENOMEM; + } + memset(caio, 0, sizeof(struct cdev_async_io)); + caio->qiocb = kzalloc (count * (sizeof(struct qdma_io_cb) + + sizeof(struct qdma_request *)), GFP_KERNEL); + if (!caio->qiocb) { + pr_err("failed to allocate qiocb"); + return -ENOMEM; + } + caio->reqv = (struct qdma_request **)(caio->qiocb + count); + for (i = 0; i < count; i++) { + caio->qiocb[i].private = caio; + caio->reqv[i] = &(caio->qiocb[i].req); + caio->qiocb[i].buf = io[i].iov_base; + caio->qiocb[i].len = io[i].iov_len; + rv = map_user_buf_to_sgl(&(caio->qiocb[i]), false); + if (rv < 0) { + break; + } + + caio->reqv[i]->write = 0; + caio->reqv[i]->sgcnt = caio->qiocb[i].pages_nr; + caio->reqv[i]->sgl = caio->qiocb[i].sgl; + caio->reqv[i]->dma_mapped = false; + caio->reqv[i]->udd_len = 0; + caio->reqv[i]->ep_addr = (u64)pos; + caio->reqv[i]->no_memcpy = xcdev->no_memcpy ? 1 : 0; + caio->reqv[i]->count = io->iov_len; + caio->reqv[i]->timeout_ms = 10 * 1000; /* 10 seconds */ + caio->reqv[i]->fp_done = qdma_req_completed; + } + if (i > 0) { + iocb->private = caio; + caio->iocb = iocb; + caio->req_count = i; + qhndl = xcdev->c2h_qhndl; + rv = xcdev->fp_aiorw(xcdev->xcb->xpdev->dev_hndl, qhndl, + caio->req_count, caio->reqv); + if (rv >= 0) + rv = -EIOCBQUEUED; + } else { + pr_err("failed with %d for %lu reqs", rv, caio->req_count); + kfree(caio->qiocb); + kmem_cache_free(cdev_cache, caio); + } + + return rv; +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) +static ssize_t cdev_write_iter(struct kiocb *iocb, struct iov_iter *io) +{ + return cdev_aio_write(iocb, io->iov, io->nr_segs, iocb->ki_pos); +} + +static ssize_t cdev_read_iter(struct kiocb *iocb, struct iov_iter *io) +{ + return cdev_aio_read(iocb, io->iov, io->nr_segs, iocb->ki_pos); +} +#endif + +static const struct file_operations cdev_gen_fops = { + .owner = THIS_MODULE, + .open = cdev_gen_open, + .release = cdev_gen_close, + .write = cdev_gen_write, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) + .write_iter = cdev_write_iter, +#else + .aio_write = cdev_aio_write, +#endif + .read = cdev_gen_read, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) + .read_iter = cdev_read_iter, +#else + .aio_read = cdev_aio_read, +#endif + .unlocked_ioctl = cdev_gen_ioctl, + .llseek = cdev_gen_llseek, +}; + +/* + * xcb: per pci device character device control info. + * xcdev: per queue character device + */ +int qdma_cdev_display(void *p, char *buf) +{ + struct qdma_cdev *xcdev = (struct qdma_cdev *)p; + + return sprintf(buf, ", cdev %s", xcdev->name); +} + +void qdma_cdev_destroy(struct qdma_cdev *xcdev) +{ + pr_debug("destroying cdev %p", xcdev); + if (!xcdev) { + pr_info("xcdev NULL.\n"); + return; + } + + if (xcdev->sys_device) + device_destroy(qdma_class, xcdev->cdevno); + + cdev_del(&xcdev->cdev); + + kfree(xcdev); +} + +int qdma_cdev_create(struct qdma_cdev_cb *xcb, struct pci_dev *pdev, + struct qdma_queue_conf *qconf, unsigned int minor, + unsigned long qhndl, struct qdma_cdev **xcdev_pp, + char *ebuf, int ebuflen) +{ + struct qdma_cdev *xcdev; + int rv; + unsigned long *priv_data; + + xcdev = kzalloc(sizeof(struct qdma_cdev) + strlen(qconf->name) + 1, + GFP_KERNEL); + if (!xcdev) { + pr_info("%s OOM %lu.\n", qconf->name, sizeof(struct qdma_cdev)); + if (ebuf && ebuflen) { + rv = sprintf(ebuf, "%s cdev OOM %lu.\n", + qconf->name, sizeof(struct qdma_cdev)); + ebuf[rv] = '\0'; + + } + return -ENOMEM; + } + + xcdev->cdev.owner = THIS_MODULE; + xcdev->xcb = xcb; + priv_data = qconf->c2h ? &xcdev->c2h_qhndl : &xcdev->h2c_qhndl; + *priv_data = qhndl; + xcdev->dir_init = (1 << qconf->c2h); + strcpy(xcdev->name, qconf->name); + + xcdev->minor = minor; + if (xcdev->minor >= xcb->cdev_minor_cnt) { + pr_info("%s: no char dev. left.\n", qconf->name); + if (ebuf && ebuflen) { + rv = sprintf(ebuf, "%s cdev no cdev left.\n", + qconf->name); + ebuf[rv] = '\0'; + } + rv = -ENOSPC; + goto err_out; + } + xcdev->cdevno = MKDEV(xcb->cdev_major, xcdev->minor); + + cdev_init(&xcdev->cdev, &cdev_gen_fops); + + /* bring character device live */ + rv = cdev_add(&xcdev->cdev, xcdev->cdevno, 1); + if (rv < 0) { + pr_info("cdev_add failed %d, %s.\n", rv, xcdev->name); + if (ebuf && ebuflen) { + int l = sprintf(ebuf, "%s cdev add failed %d.\n", + qconf->name, rv); + ebuf[l] = '\0'; + } + goto err_out; + } + + /* create device on our class */ + if (qdma_class) { + xcdev->sys_device = device_create(qdma_class, &(pdev->dev), + xcdev->cdevno, NULL, "%s", xcdev->name); + if (IS_ERR(xcdev->sys_device)) { + rv = PTR_ERR(xcdev->sys_device); + pr_info("%s device_create failed %d.\n", + xcdev->name, rv); + if (ebuf && ebuflen) { + int l = sprintf(ebuf, + "%s device_create failed %d.\n", + qconf->name, rv); + ebuf[l] = '\0'; + } + goto del_cdev; + } + } + + xcdev->fp_rw = qdma_request_submit; + xcdev->fp_aiorw = qdma_batch_request_submit; + + *xcdev_pp = xcdev; + return 0; + +del_cdev: + cdev_del(&xcdev->cdev); + +err_out: + kfree(xcdev); + return rv; +} + +/* + * per device initialization & cleanup + */ +void qdma_cdev_device_cleanup(struct qdma_cdev_cb *xcb) +{ + if (!xcb->cdev_major) + return; + + xcb->cdev_major = 0; +} + +int qdma_cdev_device_init(struct qdma_cdev_cb *xcb) +{ + dev_t dev; + int rv; + struct xlnx_phy_dev *phy_dev, *tmp, *new_phy_dev; + + spin_lock_init(&xcb->lock); + + xcb->cdev_minor_cnt = QDMA_MINOR_MAX; + + if (xcb->cdev_major) { + pr_warn("major %d already exist.\n", xcb->cdev_major); + return -EINVAL; + } + + /* Check if same bus id device is added in global list + * If found then assign same major number */ + mutex_lock(&xlnx_phy_dev_mutex); + list_for_each_entry_safe(phy_dev, tmp, &xlnx_phy_dev_list, list_head) { + if (phy_dev->device_bus == xcb->xpdev->pdev->bus->number) { + xcb->cdev_major = phy_dev->major; + mutex_unlock(&xlnx_phy_dev_mutex); + return 0; + } + } + mutex_unlock(&xlnx_phy_dev_mutex); + + /* allocate a dynamically allocated char device node */ + rv = alloc_chrdev_region(&dev, 0, xcb->cdev_minor_cnt, + QDMA_CDEV_CLASS_NAME); + if (rv) { + pr_err("unable to allocate cdev region %d.\n", rv); + return rv; + } + xcb->cdev_major = MAJOR(dev); + + new_phy_dev = kzalloc(sizeof(struct xlnx_phy_dev), GFP_KERNEL); + if (!new_phy_dev) { + pr_err("unable to allocate xlnx_dev.\n"); + return-ENOMEM; + } + new_phy_dev->major = xcb->cdev_major; + new_phy_dev->device_bus = xcb->xpdev->pdev->bus->number; + xlnx_phy_dev_list_add(new_phy_dev); + + return 0; +} + +/* + * driver-wide Initialization & cleanup + */ + +int qdma_cdev_init(void) +{ + qdma_class = class_create(THIS_MODULE, QDMA_CDEV_CLASS_NAME); + if (IS_ERR(qdma_class)) { + pr_info("%s: failed to create class 0x%lx.", + QDMA_CDEV_CLASS_NAME, (unsigned long)qdma_class); + qdma_class = NULL; + return -1; + } + /* using kmem_cache_create to enable sequential cleanup */ + cdev_cache = kmem_cache_create("cdev_cache", + sizeof(struct cdev_async_io), + 0, + SLAB_HWCACHE_ALIGN, + NULL); + if (!cdev_cache) { + pr_info("memory allocation for cdev_cache failed. OOM\n"); + return -ENOMEM; + } + + return 0; +} + +void qdma_cdev_cleanup(void) +{ + struct xlnx_phy_dev *phy_dev, *tmp; + + list_for_each_entry_safe(phy_dev, tmp, &xlnx_phy_dev_list, list_head) { + unregister_chrdev_region(MKDEV(phy_dev->major, 0), + QDMA_MINOR_MAX); + xlnx_phy_dev_list_remove(phy_dev); + kfree(phy_dev); + } + + kmem_cache_destroy(cdev_cache); + if (qdma_class) + class_destroy(qdma_class); + +} diff --git a/QDMA/linux-kernel/drv/cdev.h b/QDMA/linux-kernel/drv/cdev.h new file mode 100644 index 0000000..822e14d --- /dev/null +++ b/QDMA/linux-kernel/drv/cdev.h @@ -0,0 +1,182 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __QDMA_CDEV_H__ +#define __QDMA_CDEV_H__ +/** + * @file + * @brief This file contains the declarations for qdma pcie kernel module + * + */ +#include <linux/cdev.h> +#include "version.h" +#include <linux/spinlock_types.h> + +#include "libqdma/libqdma_export.h" +#include <linux/workqueue.h> + +/** QDMA character device class name */ +#define QDMA_CDEV_CLASS_NAME DRV_MODULE_NAME +/** QDMA character device max minor number*/ +#define QDMA_MINOR_MAX (2048) + +/* per pci device control */ +/** + * @struct - qdma_cdev_cb + * @brief QDMA character device call back data + */ +struct qdma_cdev_cb { + /** pointer to xilinx pcie device */ + struct xlnx_pci_dev *xpdev; + /** character device lock */ + spinlock_t lock; + /** character device major number */ + int cdev_major; + /** character device minor number count */ + int cdev_minor_cnt; +}; + +/** + * @struct - qdma_cdev + * @brief QDMA character device book keeping parameters + */ +struct qdma_cdev { + /** lsit of qdma character devices */ + struct list_head list_head; + /** minor number */ + int minor; + /** character device number */ + dev_t cdevno; + /** pointer to qdma character device call back data */ + struct qdma_cdev_cb *xcb; + /** pointer to kernel device(struct device) */ + struct device *sys_device; + /** pointer to kernel cdev(struct cdev) */ + struct cdev cdev; + /** c2h queue handle */ + unsigned long c2h_qhndl; + /** hec queue handle */ + unsigned long h2c_qhndl; + /** direction */ + unsigned short dir_init; + /* flag to indicate if memcpy is required */ + unsigned char no_memcpy; + /** call back function for open a device */ + int (*fp_open_extra)(struct qdma_cdev *); + /** call back function for close a device */ + int (*fp_close_extra)(struct qdma_cdev *); + /** call back function to handle ioctl message */ + long (*fp_ioctl_extra)(struct qdma_cdev *, unsigned int, unsigned long); + /** call back function to handle read write request*/ + ssize_t (*fp_rw)(unsigned long dev_hndl, unsigned long qhndl, + struct qdma_request *); + ssize_t (*fp_aiorw)(unsigned long dev_hndl, unsigned long qhndl, + unsigned long count, struct qdma_request **); + /** name of the character device*/ + char name[0]; +}; + +/** + * @struct - qdma_io_cb + * @brief QDMA character device io call back book keeping parameters + */ +struct qdma_io_cb { + void *private; + /** user buffer */ + void __user *buf; + /** length of the user buffer */ + size_t len; + /** page number */ + unsigned int pages_nr; + /** scatter gather list */ + struct qdma_sw_sg *sgl; + /** pages allocated to accommodate the scatter gather list */ + struct page **pages; + /** qdma request */ + struct qdma_request req; +}; + +/*****************************************************************************/ +/** + * qdma_cdev_destroy() - handler to destroy the character device + * + * @param[in] xcdev: pointer to character device + * + * @return none + *****************************************************************************/ +void qdma_cdev_destroy(struct qdma_cdev *xcdev); + +/*****************************************************************************/ +/** + * qdma_cdev_create() - handler to create a character device + * + * @param[in] xcb: pointer to qdma character device call back data + * @param[in] pdev: pointer to struct pci_dev + * @param[in] qconf: queue configurations + * @param[in] minor: character device minor number + * @param[in] ebuflen: buffer length + * @param[in] qhndl: queue handle + * @param[out] xcdev_pp: pointer to struct qdma_cdev + * @param[out] ebuf: + * error message buffer, can be NULL/0 (i.e., optional) + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_cdev_create(struct qdma_cdev_cb *xcb, struct pci_dev *pdev, + struct qdma_queue_conf *qconf, unsigned int minor, + unsigned long qhndl, struct qdma_cdev **xcdev_pp, + char *ebuf, int ebuflen); + +/*****************************************************************************/ +/** + * qdma_cdev_device_cleanup() - handler to clean up a character device + * + * @param[in] xcb: pointer to qdma character device call back data + * + * @return none + *****************************************************************************/ +void qdma_cdev_device_cleanup(struct qdma_cdev_cb *xcb); + +/*****************************************************************************/ +/** + * qdma_cdev_device_init() - handler to initialize a character device + * + * @param[in] xcb: pointer to qdma character device call back data + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_cdev_device_init(struct qdma_cdev_cb *xcb); + +/*****************************************************************************/ +/** + * qdma_cdev_cleanup() - character device cleanup handler + * + *****************************************************************************/ +void qdma_cdev_cleanup(void); + +/*****************************************************************************/ +/** + * qdma_cdev_init() - character device initialization handler + * + *****************************************************************************/ +int qdma_cdev_init(void); + +#endif /* ifndef __QDMA_CDEV_H__ */ diff --git a/QDMA/linux-kernel/drv/nl.c b/QDMA/linux-kernel/drv/nl.c new file mode 100644 index 0000000..5e201d8 --- /dev/null +++ b/QDMA/linux-kernel/drv/nl.c @@ -0,0 +1,1862 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include <linux/version.h> +#include <linux/kernel.h> +#include <linux/pci.h> +#include <net/genetlink.h> + +#include "libqdma/libqdma_export.h" +#include "qdma_mod.h" +#include "qdma_nl.h" +#include "nl.h" +#include "version.h" + +static int xnl_dev_list(struct sk_buff *skb_2, struct genl_info *info); + +static struct nla_policy xnl_policy[XNL_ATTR_MAX] = { + [XNL_ATTR_GENMSG] = { .type = NLA_NUL_STRING }, + + [XNL_ATTR_DRV_INFO] = { .type = NLA_NUL_STRING }, + + [XNL_ATTR_DEV_IDX] = { .type = NLA_U32 }, + [XNL_ATTR_PCI_BUS] = { .type = NLA_U32 }, + [XNL_ATTR_PCI_DEV] = { .type = NLA_U32 }, + [XNL_ATTR_PCI_FUNC] = { .type = NLA_U32 }, + [XNL_ATTR_DEV_CFG_BAR] = { .type = NLA_U32 }, + [XNL_ATTR_DEV_USR_BAR] = { .type = NLA_U32 }, + [XNL_ATTR_DEV_QSET_MAX] = { .type = NLA_U32 }, + [XNL_ATTR_DEV_QSET_QBASE] = { .type = NLA_U32 }, + + [XNL_ATTR_REG_BAR_NUM] = { .type = NLA_U32 }, + [XNL_ATTR_REG_ADDR] = { .type = NLA_U32 }, + [XNL_ATTR_REG_VAL] = { .type = NLA_U32 }, + + [XNL_ATTR_QIDX] = { .type = NLA_U32 }, + [XNL_ATTR_NUM_Q] = { .type = NLA_U32 }, + [XNL_ATTR_QFLAG] = { .type = NLA_U32 }, + [XNL_ATTR_CMPT_DESC_SIZE] = { .type = NLA_U32 }, + [XNL_ATTR_SW_DESC_SIZE] = { .type = NLA_U32 }, + [XNL_ATTR_QRNGSZ_IDX] = { .type = NLA_U32 }, + [XNL_ATTR_C2H_BUFSZ_IDX] = { .type = NLA_U32 }, + [XNL_ATTR_CMPT_TIMER_IDX] = { .type = NLA_U32 }, + [XNL_ATTR_CMPT_CNTR_IDX] = { .type = NLA_U32 }, + [XNL_ATTR_CMPT_TRIG_MODE] = { .type = NLA_U32 }, + [XNL_ATTR_RANGE_START] = { .type = NLA_U32 }, + [XNL_ATTR_RANGE_END] = { .type = NLA_U32 }, + + [XNL_ATTR_INTR_VECTOR_IDX] = { .type = NLA_U32 }, + [XNL_ATTR_PIPE_GL_MAX] = { .type = NLA_U32 }, + [XNL_ATTR_PIPE_FLOW_ID] = { .type = NLA_U32 }, + [XNL_ATTR_PIPE_SLR_ID] = { .type = NLA_U32 }, + [XNL_ATTR_PIPE_TDEST] = { .type = NLA_U32 }, + + [XNL_ATTR_DEV_STM_BAR] = { .type = NLA_U32 }, +#ifdef ERR_DEBUG + [XNL_ATTR_QPARAM_ERR_INFO] = { .type = NLA_U32 }, +#endif +}; + +static int xnl_dev_list(struct sk_buff *, struct genl_info *); +static int xnl_dev_info(struct sk_buff *, struct genl_info *); +static int xnl_dev_version(struct sk_buff *skb2, struct genl_info *info); +static int xnl_dev_stat(struct sk_buff *, struct genl_info *); +static int xnl_dev_stat_clear(struct sk_buff *, struct genl_info *); +static int xnl_q_list(struct sk_buff *, struct genl_info *); +static int xnl_q_add(struct sk_buff *, struct genl_info *); +static int xnl_q_start(struct sk_buff *, struct genl_info *); +static int xnl_q_stop(struct sk_buff *, struct genl_info *); +static int xnl_q_del(struct sk_buff *, struct genl_info *); +static int xnl_q_dump(struct sk_buff *, struct genl_info *); +static int xnl_q_dump_desc(struct sk_buff *, struct genl_info *); +static int xnl_q_dump_cmpt(struct sk_buff *, struct genl_info *); +static int xnl_q_read_pkt(struct sk_buff *, struct genl_info *); +static int xnl_q_read_udd(struct sk_buff *, struct genl_info *); +static int xnl_intr_ring_dump(struct sk_buff *, struct genl_info *); +static int xnl_register_read(struct sk_buff *, struct genl_info *); +static int xnl_register_write(struct sk_buff *, struct genl_info *); +static int xnl_get_global_csr(struct sk_buff *skb2, struct genl_info *info); + +#ifdef ERR_DEBUG +static int xnl_err_induce(struct sk_buff *skb2, struct genl_info *info); +#endif + +struct genl_ops xnl_ops[] = { + { + .cmd = XNL_CMD_DEV_LIST, + .policy = xnl_policy, + .doit = xnl_dev_list, + }, + { + .cmd = XNL_CMD_VERSION, + .policy = xnl_policy, + .doit = xnl_dev_version, + }, + { + .cmd = XNL_CMD_DEV_INFO, + .policy = xnl_policy, + .doit = xnl_dev_info, + }, + { + .cmd = XNL_CMD_DEV_STAT, + .policy = xnl_policy, + .doit = xnl_dev_stat, + }, + { + .cmd = XNL_CMD_DEV_STAT_CLEAR, + .policy = xnl_policy, + .doit = xnl_dev_stat_clear, + }, + { + .cmd = XNL_CMD_Q_LIST, + .policy = xnl_policy, + .doit = xnl_q_list, + }, + { + .cmd = XNL_CMD_Q_ADD, + .policy = xnl_policy, + .doit = xnl_q_add, + }, + { + .cmd = XNL_CMD_Q_START, + .policy = xnl_policy, + .doit = xnl_q_start, + }, + { + .cmd = XNL_CMD_Q_STOP, + .policy = xnl_policy, + .doit = xnl_q_stop, + }, + { + .cmd = XNL_CMD_Q_DEL, + .policy = xnl_policy, + .doit = xnl_q_del, + }, + { + .cmd = XNL_CMD_Q_DUMP, + .policy = xnl_policy, + .doit = xnl_q_dump, + }, + { + .cmd = XNL_CMD_Q_DESC, + .policy = xnl_policy, + .doit = xnl_q_dump_desc, + }, + { + .cmd = XNL_CMD_Q_CMPT, + .policy = xnl_policy, + .doit = xnl_q_dump_cmpt, + }, + { + .cmd = XNL_CMD_Q_UDD, + .policy = xnl_policy, + .doit = xnl_q_read_udd, + }, + { + .cmd = XNL_CMD_Q_RX_PKT, + .policy = xnl_policy, + .doit = xnl_q_read_pkt, + }, + { + .cmd = XNL_CMD_INTR_RING_DUMP, + .policy = xnl_policy, + .doit = xnl_intr_ring_dump, + }, + { + .cmd = XNL_CMD_REG_RD, + .policy = xnl_policy, + .doit = xnl_register_read, + }, + { + .cmd = XNL_CMD_REG_WRT, + .policy = xnl_policy, + .doit = xnl_register_write, + }, + { + .cmd = XNL_CMD_GLOBAL_CSR, + .policy = xnl_policy, + .doit = xnl_get_global_csr, + }, +#ifdef ERR_DEBUG + { + .cmd = XNL_CMD_Q_ERR_INDUCE, + .policy = xnl_policy, + .doit = xnl_err_induce, + } +#endif +}; + +static struct genl_family xnl_family = { +#ifdef GENL_ID_GENERATE + .id = GENL_ID_GENERATE, +#endif + .hdrsize = 0, +#ifdef __QDMA_VF__ + .name = XNL_NAME_VF, +#else + .name = XNL_NAME_PF, +#endif +#ifndef __GENL_REG_FAMILY_OPS_FUNC__ + .ops = xnl_ops, + .n_ops = ARRAY_SIZE(xnl_ops), +#endif + .maxattr = XNL_ATTR_MAX - 1, +}; + +static struct sk_buff *xnl_msg_alloc(enum xnl_op_t op, int min_sz, + void **hdr, struct genl_info *info) +{ + struct sk_buff *skb; + void *p; + unsigned long sz = min_sz < NLMSG_GOODSIZE ? NLMSG_GOODSIZE : min_sz; + + skb = genlmsg_new(sz, GFP_KERNEL); + if (!skb) { + pr_info("OOM %lu.\n", sz); + return NULL; + } + + p = genlmsg_put(skb, 0, info->snd_seq + 1, &xnl_family, 0, op); + if (!p) { + pr_info("skb too small.\n"); + nlmsg_free(skb); + return NULL; + } + + *hdr = p; + return skb; +} + +static inline int xnl_msg_add_attr_str(struct sk_buff *skb, + enum xnl_attr_t type, char *s) +{ + int rv; + + rv = nla_put_string(skb, type, s); + if (rv != 0) { + pr_info("nla_put_string return %d.\n", rv); + return -EINVAL; + } + return 0; +} + +static inline int xnl_msg_add_attr_data(struct sk_buff *skb, + enum xnl_attr_t type, void *s, unsigned int len) +{ + int rv; + + rv = nla_put(skb, type, len, s); + if (rv != 0) { + pr_info("nla_put return %d.\n", rv); + return -EINVAL; + } + return 0; +} + + +static inline int xnl_msg_add_attr_uint(struct sk_buff *skb, + enum xnl_attr_t type, u32 v) +{ + int rv; + + rv = nla_put_u32(skb, type, v); + if (rv != 0) { + pr_info("nla add dev_idx failed %d.\n", rv); + return -EINVAL; + } + return 0; +} + +static inline int xnl_msg_send(struct sk_buff *skb_tx, void *hdr, + struct genl_info *info) +{ + int rv; + + genlmsg_end(skb_tx, hdr); + + rv = genlmsg_unicast(genl_info_net(info), skb_tx, info->snd_portid); + if (rv) + pr_info("send portid %d failed %d.\n", info->snd_portid, rv); + + return 0; +} + +#ifdef DEBUG +static int xnl_dump_attrs(struct genl_info *info) +{ + int i; + + pr_info("snd_seq 0x%x, portid 0x%x.\n", + info->snd_seq, info->snd_portid); +#if 0 + print_hex_dump_bytes("nlhdr", DUMP_PREFIX_OFFSET, info->nlhdr, + sizeof(struct nlmsghdr)); + pr_info("\n"); + print_hex_dump_bytes("genlhdr", DUMP_PREFIX_OFFSET, info->genlhdr, + sizeof(struct genlmsghdr)); + pr_info("\n"); +#endif + + pr_info("nlhdr: len %u, type %u, flags 0x%x, seq 0x%x, pid %u.\n", + info->nlhdr->nlmsg_len, + info->nlhdr->nlmsg_type, + info->nlhdr->nlmsg_flags, + info->nlhdr->nlmsg_seq, + info->nlhdr->nlmsg_pid); + pr_info("genlhdr: cmd 0x%x %s, version %u, reserved 0x%x.\n", + info->genlhdr->cmd, xnl_op_str[info->genlhdr->cmd], + info->genlhdr->version, + info->genlhdr->reserved); + + for (i = 0; i < XNL_ATTR_MAX; i++) { + struct nlattr *na = info->attrs[i]; + + if (na) { + if (xnl_policy[i].type == NLA_NUL_STRING) { + char *s = (char *)nla_data(na); + + if (s) + pr_info("attr %d, %s, str %s.\n", + i, xnl_attr_str[i], s); + else + pr_info("attr %d, %s, str NULL.\n", + i, xnl_attr_str[i]); + + } else { + u32 v = nla_get_u32(na); + + pr_info("attr %s, u32 0x%x.\n", + xnl_attr_str[i], v); + } + } + } + + return 0; +} +#else +#define xnl_dump_attrs(info) +#endif + +int xnl_respond_buffer(struct genl_info *info, char *buf, int buflen) +{ + struct sk_buff *skb; + void *hdr; + int rv; + + skb = xnl_msg_alloc(info->genlhdr->cmd, buflen, &hdr, info); + if (!skb) + return -ENOMEM; + + rv = xnl_msg_add_attr_str(skb, XNL_ATTR_GENMSG, buf); + if (rv != 0) { + pr_err("xnl_msg_add_attr_str() failed: %d", rv); + nlmsg_free(skb); + return rv; + } + + rv = xnl_msg_send(skb, hdr, info); + + return rv; +} + +int xnl_respond_data(struct genl_info *info, void *buf, int buflen) +{ + struct sk_buff *skb; + void *hdr; + int rv; + + skb = xnl_msg_alloc(info->genlhdr->cmd, buflen, &hdr, info); + if (!skb) + return -ENOMEM; + + rv = xnl_msg_add_attr_data(skb, XNL_ATTR_GLOBAL_CSR, buf, buflen); + if (rv != 0) { + pr_err("xnl_msg_add_attr_data() failed: %d", rv); + return rv; + } + + rv = xnl_msg_send(skb, hdr, info); + return rv; +} + +static char *xnl_mem_alloc(int l, struct genl_info *info) +{ + char ebuf[XNL_ERR_BUFLEN]; + char *buf = kmalloc(l, GFP_KERNEL); + int rv; + + if (buf) { + memset(buf, 0, l); + return buf; + } + + pr_info("xnl OOM %d.\n", l); + + rv = snprintf(ebuf, XNL_ERR_BUFLEN, "ERR! xnl OOM %d.\n", l); + ebuf[rv] = '\0'; + + xnl_respond_buffer(info, ebuf, XNL_ERR_BUFLEN); + + return NULL; +} + +static struct xlnx_pci_dev *xnl_rcv_check_xpdev(struct genl_info *info) +{ + u32 idx; + struct xlnx_pci_dev *xpdev; + char err[XNL_ERR_BUFLEN]; + int rv; + + if (info == NULL) + return NULL; + + if (!info->attrs[XNL_ATTR_DEV_IDX]) { + rv = snprintf(err, sizeof(err), + "command %s missing attribute XNL_ATTR_DEV_IDX", + xnl_op_str[info->genlhdr->cmd]); + if (rv <= 0) + return NULL; + goto respond_error; + } + idx = nla_get_u32(info->attrs[XNL_ATTR_DEV_IDX]); + + xpdev = xpdev_find_by_idx(idx, err, sizeof(err)); + if (!xpdev) { + /* err buffer populated by xpdev_find_by_idx*/ + goto respond_error; + } + + return xpdev; + +respond_error: + xnl_respond_buffer(info, err, strlen(err)); + return NULL; +} + +static int qconf_get(struct qdma_queue_conf *qconf, struct genl_info *info, + char *err, int errlen, unsigned char *is_qp) +{ + u32 f = 0; + + if (!qconf || !info) + return -EINVAL; + + if (!info->attrs[XNL_ATTR_QFLAG]) { + snprintf(err, errlen, "Missing attribute 'XNL_ATTR_QFLAG'\n"); + goto respond_error; + } + f = nla_get_u32(info->attrs[XNL_ATTR_QFLAG]); + if ((f & XNL_F_QMODE_ST) && (f & XNL_F_QMODE_MM)) { + snprintf(err, errlen, "ERR! Both ST and MM mode set.\n"); + goto respond_error; + } else if (!(f & XNL_F_QMODE_ST) && !(f & XNL_F_QMODE_MM)) { + /* default to MM */ + f |= XNL_F_QMODE_MM; + } + + if (!(f & XNL_F_QDIR_H2C) && !(f & XNL_F_QDIR_C2H)) { + /* default to H2C */ + f |= XNL_F_QDIR_H2C; + } + + memset(qconf, 0, sizeof(*qconf)); + qconf->st = (f & XNL_F_QMODE_ST) ? 1 : 0; + qconf->c2h = (f & XNL_F_QDIR_C2H) ? 1 : 0; + *is_qp = ((f & XNL_F_QDIR_BOTH) == XNL_F_QDIR_BOTH) ? 1 : 0; + + if (!info->attrs[XNL_ATTR_QIDX]) { + snprintf(err, errlen, "Missing attribute 'XNL_ATTR_QIDX'"); + goto respond_error; + } + qconf->qidx = nla_get_u32(info->attrs[XNL_ATTR_QIDX]); + if (qconf->qidx == XNL_QIDX_INVALID) + qconf->qidx = QDMA_QUEUE_IDX_INVALID; + + return 0; + +respond_error: + + xnl_respond_buffer(info, err, strlen(err)); + return -EINVAL; +} + +static struct xlnx_qdata *xnl_rcv_check_qidx(struct genl_info *info, + struct xlnx_pci_dev *xpdev, + struct qdma_queue_conf *qconf, char *buf, + int buflen) +{ + char ebuf[XNL_ERR_BUFLEN]; + struct xlnx_qdata *qdata = xpdev_queue_get(xpdev, qconf->qidx, + qconf->c2h, 1, ebuf, XNL_ERR_BUFLEN); + + if (!qdata) { + int l = snprintf(ebuf, + XNL_ERR_BUFLEN, + "ERR! qidx %u invalid.\n", + qconf->qidx); + + ebuf[l] = '\0'; + xnl_respond_buffer(info, ebuf, XNL_ERR_BUFLEN); + } + + return qdata; +} + +static int xnl_chk_attr(enum xnl_attr_t xnl_attr, struct genl_info *info, + unsigned short qidx, char *buf) +{ + int rv = 0; + + if (!info->attrs[xnl_attr]) { + if (buf) { + rv += sprintf(buf, + "Missing attribute %s for qidx = %u\n", + xnl_attr_str[xnl_attr], + qidx); + buf[rv] = '\0'; + } + rv = -1; + } + + return rv; +} + +static void xnl_extract_extra_config_attr(struct genl_info *info, + struct qdma_queue_conf *qconf) +{ + u32 f = nla_get_u32(info->attrs[XNL_ATTR_QFLAG]); + + qconf->desc_bypass = (f & XNL_F_DESC_BYPASS_EN) ? 1 : 0; + qconf->pfetch_bypass = (f & XNL_F_PFETCH_BYPASS_EN) ? 1 : 0; + qconf->pfetch_en = (f & XNL_F_PFETCH_EN) ? 1 : 0; + qconf->cmpl_status_en = (f & XNL_F_CMPL_STATUS_EN) ? 1 : 0; + qconf->cmpl_status_acc_en = (f & XNL_F_CMPL_STATUS_ACC_EN) ? 1 : 0; + qconf->cmpl_status_pend_chk = (f & XNL_F_CMPL_STATUS_PEND_CHK) ? 1 : 0; + qconf->fetch_credit = (f & XNL_F_FETCH_CREDIT) ? 1 : 0; + qconf->cmpl_stat_en = (f & XNL_F_CMPL_STATUS_DESC_EN) ? 1 : 0; + qconf->cmpl_en_intr = (f & XNL_F_C2H_CMPL_INTR_EN) ? 1 : 0; + qconf->cmpl_udd_en = (f & XNL_F_CMPL_UDD_EN) ? 1 : 0; + qconf->cmpl_ovf_chk_dis = (f & XNL_F_CMPT_OVF_CHK_DIS) ? 1 : 0; + + if (xnl_chk_attr(XNL_ATTR_QRNGSZ_IDX, info, qconf->qidx, NULL) == 0) + qconf->desc_rng_sz_idx = qconf->cmpl_rng_sz_idx = + nla_get_u32(info->attrs[XNL_ATTR_QRNGSZ_IDX]); + if (xnl_chk_attr(XNL_ATTR_C2H_BUFSZ_IDX, info, qconf->qidx, NULL) == 0) + qconf->c2h_buf_sz_idx = + nla_get_u32(info->attrs[XNL_ATTR_C2H_BUFSZ_IDX]); + if (xnl_chk_attr(XNL_ATTR_CMPT_TIMER_IDX, info, qconf->qidx, NULL) == 0) + qconf->cmpl_timer_idx = + nla_get_u32(info->attrs[XNL_ATTR_CMPT_TIMER_IDX]); + if (xnl_chk_attr(XNL_ATTR_CMPT_CNTR_IDX, info, qconf->qidx, NULL) == 0) + qconf->cmpl_cnt_th_idx = + nla_get_u32(info->attrs[XNL_ATTR_CMPT_CNTR_IDX]); + if (xnl_chk_attr(XNL_ATTR_CMPT_DESC_SIZE, + info, qconf->qidx, NULL) == 0) + qconf->cmpl_desc_sz = + nla_get_u32(info->attrs[XNL_ATTR_CMPT_DESC_SIZE]); + if (xnl_chk_attr(XNL_ATTR_SW_DESC_SIZE, + info, qconf->qidx, NULL) == 0) + qconf->sw_desc_sz = + nla_get_u32(info->attrs[XNL_ATTR_SW_DESC_SIZE]); + if (xnl_chk_attr(XNL_ATTR_CMPT_TRIG_MODE, info, qconf->qidx, NULL) == 0) + qconf->cmpl_trig_mode = + nla_get_u32(info->attrs[XNL_ATTR_CMPT_TRIG_MODE]); + else + qconf->cmpl_trig_mode = 1; + if (xnl_chk_attr(XNL_ATTR_PIPE_GL_MAX, + info, qconf->pipe_gl_max, NULL) == 0) + qconf->pipe_gl_max = + nla_get_u32(info->attrs[XNL_ATTR_PIPE_GL_MAX]); + if (xnl_chk_attr(XNL_ATTR_PIPE_FLOW_ID, + info, qconf->pipe_flow_id, NULL) == 0) + qconf->pipe_flow_id = + nla_get_u32(info->attrs[XNL_ATTR_PIPE_FLOW_ID]); + if (xnl_chk_attr(XNL_ATTR_PIPE_SLR_ID, + info, qconf->pipe_slr_id, NULL) == 0) + qconf->pipe_slr_id = + nla_get_u32(info->attrs[XNL_ATTR_PIPE_SLR_ID]); + if (xnl_chk_attr(XNL_ATTR_PIPE_TDEST, + info, qconf->pipe_tdest, NULL) == 0) + qconf->pipe_tdest = + nla_get_u32(info->attrs[XNL_ATTR_PIPE_TDEST]); +} + +static int xnl_dev_list(struct sk_buff *skb2, struct genl_info *info) +{ + char *buf; + int rv; + + if (info == NULL) + return -EINVAL; + + xnl_dump_attrs(info); + + buf = xnl_mem_alloc(XNL_RESP_BUFLEN_MAX, info); + if (!buf) + return -ENOMEM; + + rv = xpdev_list_dump(buf, XNL_RESP_BUFLEN_MAX); + if (rv < 0) { + pr_err("xpdev_list_dump() failed: %d", rv); + goto free_msg_buff; + } + rv = xnl_respond_buffer(info, buf, strlen(buf)); + +free_msg_buff: + kfree(buf); + return rv; +} + +static int xnl_dev_info(struct sk_buff *skb2, struct genl_info *info) +{ + struct sk_buff *skb; + void *hdr; + struct xlnx_pci_dev *xpdev; + struct pci_dev *pdev; + struct qdma_dev_conf conf; + int rv; + + if (info == NULL) + return -EINVAL; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return -EINVAL; + pdev = xpdev->pdev; + + rv = qdma_device_get_config(xpdev->dev_hndl, &conf, NULL, 0); + if (rv < 0) + return rv; + + skb = xnl_msg_alloc(XNL_CMD_DEV_INFO, 0, &hdr, info); + if (!skb) + return -ENOMEM; + + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_PCI_BUS, + pdev->bus->number); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + nlmsg_free(skb); + return rv; + } + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_PCI_DEV, + PCI_SLOT(pdev->devfn)); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + nlmsg_free(skb); + return rv; + } + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_PCI_FUNC, + PCI_FUNC(pdev->devfn)); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + nlmsg_free(skb); + return rv; + } + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_CFG_BAR, + conf.bar_num_config); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + nlmsg_free(skb); + return rv; + } + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_USR_BAR, + conf.bar_num_user); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + nlmsg_free(skb); + return rv; + } + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_QSET_MAX, conf.qsets_max); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + nlmsg_free(skb); + return rv; + } + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_QSET_QBASE, conf.qsets_base); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + return rv; + } + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_STM_BAR, + conf.bar_num_stm); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + nlmsg_free(skb); + return rv; + } + + rv = xnl_msg_send(skb, hdr, info); + + return rv; +} + +static int xnl_dev_version(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + struct qdma_version_info ver_info; + char *buf; + int rv = 0; + + if (info == NULL) + return -EINVAL; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return -EINVAL; + + buf = xnl_mem_alloc(XNL_RESP_BUFLEN_MAX, info); + if (!buf) + return -ENOMEM; + + rv = qdma_device_version_info(xpdev->dev_hndl, &ver_info); + if (rv < 0) { + pr_err("qdma_device_version_info() failed: %d", rv); + goto free_buf; + } + + rv = sprintf(buf + rv,"=============Hardware Version============\n\n"); + rv += sprintf(buf + rv,"RTL Version : %s\n",ver_info.rtl_version_str); + rv += sprintf(buf + rv,"Vivado ReleaseID : %s\n",ver_info.vivado_release_str); + rv += sprintf(buf + rv,"Everest IP : %s\n\n",ver_info.everest_ip_str); + rv += sprintf(buf + rv,"============Software Version============\n\n"); + rv += sprintf(buf + rv,"qdma driver version : %s\n",DRV_MODULE_VERSION); + buf[rv] = '\0'; + + rv = xnl_respond_buffer(info, buf, XNL_RESP_BUFLEN_MAX); + +free_buf: + kfree(buf); + return rv; +} + +static int xnl_dev_stat(struct sk_buff *skb2, struct genl_info *info) +{ + struct sk_buff *skb; + void *hdr; + struct xlnx_pci_dev *xpdev; + int rv; + unsigned long long mmh2c_pkts = 0; + unsigned long long mmc2h_pkts = 0; + unsigned long long sth2c_pkts = 0; + unsigned long long stc2h_pkts = 0; + unsigned int pkts; + + if (info == NULL) + return -EINVAL; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return -EINVAL; + + skb = xnl_msg_alloc(XNL_CMD_DEV_STAT, 0, &hdr, info); + if (!skb) + return -ENOMEM; + + qdma_device_get_mmh2c_pkts(xpdev->dev_hndl, &mmh2c_pkts); + qdma_device_get_mmc2h_pkts(xpdev->dev_hndl, &mmc2h_pkts); + qdma_device_get_sth2c_pkts(xpdev->dev_hndl, &sth2c_pkts); + qdma_device_get_stc2h_pkts(xpdev->dev_hndl, &stc2h_pkts); + pkts = mmh2c_pkts; + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_STAT_MMH2C_PKTS1, pkts); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + return rv; + } + pkts = (mmh2c_pkts >> 32); + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_STAT_MMH2C_PKTS2, pkts); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + return rv; + } + pkts = mmc2h_pkts; + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_STAT_MMC2H_PKTS1, pkts); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + return rv; + } + pkts = (mmc2h_pkts >> 32); + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_STAT_MMC2H_PKTS2, pkts); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + return rv; + } + pkts = sth2c_pkts; + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_STAT_STH2C_PKTS1, pkts); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + return rv; + } + pkts = (sth2c_pkts >> 32); + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_STAT_STH2C_PKTS2, pkts); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + return rv; + } + pkts = stc2h_pkts; + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_STAT_STC2H_PKTS1, pkts); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + return rv; + } + pkts = (stc2h_pkts >> 32); + rv = xnl_msg_add_attr_uint(skb, XNL_ATTR_DEV_STAT_STC2H_PKTS2, pkts); + if (rv < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + return rv; + } + rv = xnl_msg_send(skb, hdr, info); + + return rv; +} + +static int xnl_dev_stat_clear(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + int rv; + char *buf; + + if (info == NULL) + return -EINVAL; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return -EINVAL; + buf = xnl_mem_alloc(XNL_RESP_BUFLEN_MIN, info); + if (!buf) + return -ENOMEM; + + qdma_device_clear_stats(xpdev->dev_hndl); + + buf[0] = '\0'; + rv = xnl_respond_buffer(info, buf, XNL_RESP_BUFLEN_MAX); + + kfree(buf); + return rv; +} + +static int xnl_q_list(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + char *buf; + int rv = 0; + + if (info == NULL) + return -EINVAL; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return -EINVAL; + + buf = xnl_mem_alloc(XNL_RESP_BUFLEN_MAX, info); + if (!buf) + return -ENOMEM; + if (unlikely(!qdma_get_qmax(xpdev->dev_hndl))) { + rv += snprintf(buf, 8, "Zero Qs"); + goto send_rsp; + } + + rv = qdma_queue_list(xpdev->dev_hndl, buf, XNL_RESP_BUFLEN_MAX); + if (rv < 0) { + pr_err("qdma_queue_list() failed: %d", rv); + goto free_buf; + } + +send_rsp: + rv = xnl_respond_buffer(info, buf, XNL_RESP_BUFLEN_MAX); + +free_buf: + kfree(buf); + return rv; +} + +static int xnl_q_add(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev = NULL; + struct qdma_queue_conf qconf; + char *buf, *cur, *end; + int rv = 0; + int rv2 = 0; + unsigned char is_qp; + unsigned int num_q; + unsigned int i; + unsigned short qidx; + unsigned char is_c2h; + int buf_len = XNL_RESP_BUFLEN_MAX; + + if (info == NULL) + return -EINVAL; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return -EINVAL; + + if (info->attrs[XNL_ATTR_RSP_BUF_LEN]) + buf_len = nla_get_u32(info->attrs[XNL_ATTR_RSP_BUF_LEN]); + + buf = xnl_mem_alloc(buf_len, info); + if (!buf) + return -ENOMEM; + cur = buf; + end = buf + buf_len; + + if (unlikely(!qdma_get_qmax(xpdev->dev_hndl))) { + pr_info("0 sized Qs\n"); + rv += snprintf(cur, end - cur, "Zero Qs"); + goto send_resp; + } + rv = qconf_get(&qconf, info, cur, end - cur, &is_qp); + if (rv < 0) + goto free_buf; + + + qidx = qconf.qidx; + + rv = xnl_chk_attr(XNL_ATTR_NUM_Q, info, qidx, cur); + if (rv < 0) + goto send_resp; + num_q = nla_get_u32(info->attrs[XNL_ATTR_NUM_Q]); + + is_c2h = qconf.c2h; + for (i = 0; i < num_q; i++) { + qconf.c2h = is_c2h; +add_q: + if (qidx != QDMA_QUEUE_IDX_INVALID) + qconf.qidx = qidx + i; + rv = xpdev_queue_add(xpdev, &qconf, cur, end - cur); + if (rv < 0) { + pr_err("xpdev_queue_add() failed: %d\n", rv); + goto send_resp; + } + cur = buf + strlen(buf); + if (is_qp && (is_c2h == qconf.c2h)) { + qconf.c2h = ~qconf.c2h; + goto add_q; + } + } + cur += snprintf(cur, end - cur, "Added %d Queues.\n", i); + +send_resp: + rv2 = xnl_respond_buffer(info, buf, strlen(buf)); +free_buf: + kfree(buf); + return rv < 0 ? rv : rv2; +} + +static int xnl_q_start(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + struct qdma_queue_conf qconf; + char buf[XNL_RESP_BUFLEN_MIN]; + struct xlnx_qdata *qdata; + int rv = 0; + unsigned char is_qp; + unsigned short num_q; + unsigned int i; + unsigned short qidx; + unsigned char is_c2h; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + if (unlikely(!qdma_get_qmax(xpdev->dev_hndl))) { + rv += snprintf(buf, 8, "Zero Qs"); + buf[rv] = '\0'; + goto send_resp; + } + rv = qconf_get(&qconf, info, buf, XNL_RESP_BUFLEN_MIN, &is_qp); + if (rv < 0) + goto send_resp; + + qidx = qconf.qidx; + + rv = xnl_chk_attr(XNL_ATTR_NUM_Q, info, qidx, buf); + if (rv < 0) + goto send_resp; + num_q = nla_get_u32(info->attrs[XNL_ATTR_NUM_Q]); + + xnl_extract_extra_config_attr(info, &qconf); + is_c2h = qconf.c2h; + + for (i = qidx; i < (qidx + num_q); i++) { + qconf.c2h = is_c2h; +reconfig: + qconf.qidx = i; + qdata = xnl_rcv_check_qidx(info, xpdev, &qconf, buf, + XNL_RESP_BUFLEN_MIN); + if (!qdata) + goto send_resp; + + rv = qdma_queue_reconfig(xpdev->dev_hndl, qdata->qhndl, &qconf, + buf, XNL_RESP_BUFLEN_MIN); + if (rv < 0) { + pr_err("qdma_queue_reconfig() failed: %d", rv); + goto send_resp; + } + if (is_qp && (is_c2h == qconf.c2h)) { + qconf.c2h = ~qconf.c2h; + goto reconfig; + } + } + + rv = xpdev_nl_queue_start(xpdev, info, is_qp, is_c2h, qidx, num_q); + if (rv < 0) { + snprintf(buf, XNL_RESP_BUFLEN_MIN, "qdma%05x OOM.\n", + xpdev->idx); + goto send_resp; + } + + return 0; + +send_resp: + rv = xnl_respond_buffer(info, buf, XNL_RESP_BUFLEN_MIN); + + return rv; +} + +static int xnl_q_stop(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + struct qdma_queue_conf qconf; + char buf[XNL_RESP_BUFLEN_MIN]; + struct xlnx_qdata *qdata; + int rv = 0; + unsigned char is_qp; + unsigned short num_q; + unsigned int i; + unsigned short qidx; + unsigned char is_c2h; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + if (unlikely(!qdma_get_qmax(xpdev->dev_hndl))) { + rv += snprintf(buf, 8, "Zero Qs"); + buf[rv] = '\0'; + goto send_resp; + } + rv = qconf_get(&qconf, info, buf, XNL_RESP_BUFLEN_MIN, &is_qp); + if (rv < 0) + goto send_resp; + + if (!info->attrs[XNL_ATTR_NUM_Q]) { + pr_warn("Missing attribute 'XNL_ATTR_NUM_Q'"); + return -1; + } + num_q = nla_get_u32(info->attrs[XNL_ATTR_NUM_Q]); + + qidx = qconf.qidx; + is_c2h = qconf.c2h; + for (i = qidx; i < (qidx + num_q); i++) { + qconf.c2h = is_c2h; +stop_q: + qconf.qidx = i; + qdata = xnl_rcv_check_qidx(info, xpdev, &qconf, buf, + XNL_RESP_BUFLEN_MIN); + if (!qdata) + goto send_resp; + rv = qdma_queue_stop(xpdev->dev_hndl, qdata->qhndl, + buf, XNL_RESP_BUFLEN_MIN); + if (rv < 0) { + pr_err("qdma_queue_stop() failed: %d", rv); + goto send_resp; + } + if (is_qp && (is_c2h == qconf.c2h)) { + qconf.c2h = ~qconf.c2h; + goto stop_q; + } + } + rv += sprintf(buf + rv, "Stopped Queues %d -> %d.\n", qidx, i - 1); +send_resp: + buf[rv] = '\0'; + rv = xnl_respond_buffer(info, buf, XNL_RESP_BUFLEN_MIN); + return rv; +} + +static int xnl_q_del(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + struct qdma_queue_conf qconf; + char buf[XNL_RESP_BUFLEN_MIN]; + int rv = 0; + unsigned char is_qp; + unsigned short num_q; + unsigned int i; + unsigned short qidx; + unsigned char is_c2h; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + if (unlikely(!qdma_get_qmax(xpdev->dev_hndl))) { + rv += snprintf(buf, 8, "Zero Qs"); + buf[rv] = '\0'; + goto send_resp; + } + rv = qconf_get(&qconf, info, buf, XNL_RESP_BUFLEN_MIN, &is_qp); + if (rv < 0) + goto send_resp; + + if (!info->attrs[XNL_ATTR_NUM_Q]) { + pr_warn("Missing attribute 'XNL_ATTR_NUM_Q'"); + return -1; + } + num_q = nla_get_u32(info->attrs[XNL_ATTR_NUM_Q]); + + qidx = qconf.qidx; + is_c2h = qconf.c2h; + for (i = qidx; i < (qidx + num_q); i++) { + qconf.c2h = is_c2h; +del_q: + qconf.qidx = i; + rv = xpdev_queue_delete(xpdev, qconf.qidx, qconf.c2h, + buf, XNL_RESP_BUFLEN_MIN); + if (rv < 0) { + pr_err("xpdev_queue_delete() failed: %d", rv); + goto send_resp; + } + if (is_qp && (is_c2h == qconf.c2h)) { + qconf.c2h = ~qconf.c2h; + goto del_q; + } + } + rv += sprintf(buf + rv, "Deleted Queues %d -> %d.\n", qidx, i - 1); +send_resp: + buf[rv] = '\0'; + rv = xnl_respond_buffer(info, buf, XNL_RESP_BUFLEN_MIN); + return rv; +} + +static int xnl_q_dump(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + struct qdma_queue_conf qconf; + struct xlnx_qdata *qdata; + char *buf; + char ebuf[XNL_RESP_BUFLEN_MIN]; + int rv; + unsigned char is_qp; + unsigned int num_q; + unsigned int i; + unsigned short qidx; + unsigned char is_c2h; + int buf_len = XNL_RESP_BUFLEN_MAX; + unsigned int buf_idx = 0; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + rv = qconf_get(&qconf, info, ebuf, XNL_RESP_BUFLEN_MIN, &is_qp); + if (rv < 0) + return rv; + + if (info->attrs[XNL_ATTR_RSP_BUF_LEN]) + buf_len = nla_get_u32(info->attrs[XNL_ATTR_RSP_BUF_LEN]); + buf = xnl_mem_alloc(buf_len, info); + if (!buf) + return -ENOMEM; + + if (!info->attrs[XNL_ATTR_NUM_Q]) { + pr_warn("Missing attribute 'XNL_ATTR_NUM_Q'"); + kfree(buf); + return -1; + } + num_q = nla_get_u32(info->attrs[XNL_ATTR_NUM_Q]); + + qidx = qconf.qidx; + is_c2h = qconf.c2h; + for (i = qidx; i < (qidx + num_q); i++) { + qconf.c2h = is_c2h; +dump_q: + qconf.qidx = i; + qdata = xnl_rcv_check_qidx(info, xpdev, &qconf, buf + buf_idx, + buf_len - buf_idx); + if (!qdata) + goto send_resp; + rv = qdma_queue_dump(xpdev->dev_hndl, qdata->qhndl, + buf + buf_idx, + buf_len - buf_idx); + if (rv < 0) { + pr_err("qdma_queue_dump() failed: %d", rv); + goto send_resp; + } + buf_idx = strlen(buf); + if (is_qp && (is_c2h == qconf.c2h)) { + qconf.c2h = ~qconf.c2h; + goto dump_q; + } + } + rv = snprintf(buf + buf_idx, buf_len - buf_idx, + "Dumped Queues %d -> %d.\n", qidx, i - 1); +send_resp: + buf[buf_idx + rv] = '\0'; + rv = xnl_respond_buffer(info, buf, buf_len); + + kfree(buf); + return rv; +} + +static int xnl_q_dump_desc(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + struct qdma_queue_conf qconf; + struct xlnx_qdata *qdata; + u32 v1; + u32 v2; + char *buf; + char ebuf[XNL_RESP_BUFLEN_MIN]; + int rv; + unsigned char is_qp; + unsigned int num_q; + unsigned int i; + unsigned short qidx; + unsigned char is_c2h; + int buf_len = XNL_RESP_BUFLEN_MAX; + unsigned int buf_idx = 0; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + v1 = nla_get_u32(info->attrs[XNL_ATTR_RANGE_START]); + v2 = nla_get_u32(info->attrs[XNL_ATTR_RANGE_END]); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + if (unlikely(!qdma_get_qmax(xpdev->dev_hndl))) + return 0; + rv = qconf_get(&qconf, info, ebuf, XNL_RESP_BUFLEN_MIN, &is_qp); + if (rv < 0) + return rv; + + if (info->attrs[XNL_ATTR_RSP_BUF_LEN]) + buf_len = nla_get_u32(info->attrs[XNL_ATTR_RSP_BUF_LEN]); + + buf = xnl_mem_alloc(buf_len, info); + if (!buf) { + rv = sprintf(ebuf, "%s OOM %d.\n", + __func__, buf_len); + + ebuf[rv] = '\0'; + xnl_respond_buffer(info, ebuf, XNL_RESP_BUFLEN_MIN); + return -ENOMEM; + } + + if (!info->attrs[XNL_ATTR_NUM_Q]) { + pr_warn("Missing attribute 'XNL_ATTR_NUM_Q'"); + return -1; + } + num_q = nla_get_u32(info->attrs[XNL_ATTR_NUM_Q]); + + qidx = qconf.qidx; + is_c2h = qconf.c2h; + for (i = qidx; i < (qidx + num_q); i++) { + qconf.c2h = is_c2h; +dump_q: + qconf.qidx = i; + qdata = xnl_rcv_check_qidx(info, xpdev, &qconf, buf + buf_idx, + buf_len - buf_idx); + if (!qdata) + goto send_resp; + rv = qdma_queue_dump_desc(xpdev->dev_hndl, + qdata->qhndl, v1, v2, + buf + buf_idx, buf_len - buf_idx); + if (rv < 0) { + pr_err("qdma_queue_dump_desc() failed: %d", rv); + goto send_resp; + } + buf_idx = strlen(buf); + if (is_qp && (is_c2h == qconf.c2h)) { + qconf.c2h = ~qconf.c2h; + goto dump_q; + } + } + rv = snprintf(buf + buf_idx, buf_len - buf_idx, + "Dumped descs of queues %d -> %d.\n", + qidx, i - 1); + buf[buf_idx + rv] = '\0'; +send_resp: + rv = xnl_respond_buffer(info, buf, buf_len); + + kfree(buf); + return rv; +} + +static int xnl_q_dump_cmpt(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + struct qdma_queue_conf qconf; + struct xlnx_qdata *qdata; + u32 v1; + u32 v2; + char *buf; + char ebuf[XNL_RESP_BUFLEN_MIN]; + int rv; + unsigned char is_qp; + unsigned int num_q; + unsigned int i; + unsigned short qidx; + unsigned char is_c2h; + int buf_len = XNL_RESP_BUFLEN_MAX; + unsigned int buf_idx = 0; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + v1 = nla_get_u32(info->attrs[XNL_ATTR_RANGE_START]); + v2 = nla_get_u32(info->attrs[XNL_ATTR_RANGE_END]); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + if (unlikely(!qdma_get_qmax(xpdev->dev_hndl))) + return 0; + + rv = qconf_get(&qconf, info, ebuf, XNL_RESP_BUFLEN_MIN, &is_qp); + if (rv < 0) + return rv; + + if (info->attrs[XNL_ATTR_RSP_BUF_LEN]) + buf_len = nla_get_u32(info->attrs[XNL_ATTR_RSP_BUF_LEN]); + + buf = xnl_mem_alloc(buf_len, info); + if (!buf) { + rv = sprintf(ebuf, "%s OOM %d.\n", + __func__, buf_len); + ebuf[rv] = '\0'; + xnl_respond_buffer(info, ebuf, XNL_RESP_BUFLEN_MIN); + return -ENOMEM; + } + pr_info("response buf_len = %d", buf_len); + + if (!info->attrs[XNL_ATTR_NUM_Q]) { + pr_warn("Missing attribute 'XNL_ATTR_NUM_Q'"); + return -1; + } + num_q = nla_get_u32(info->attrs[XNL_ATTR_NUM_Q]); + + qidx = qconf.qidx; + is_c2h = qconf.c2h; + for (i = qidx; i < (qidx + num_q); i++) { + qconf.c2h = is_c2h; +dump_q: + qconf.qidx = i; + qdata = xnl_rcv_check_qidx(info, xpdev, &qconf, buf + buf_idx, + buf_len - buf_idx); + if (!qdata) + goto send_resp; + rv = qdma_queue_dump_cmpt(xpdev->dev_hndl, + qdata->qhndl, v1, v2, + buf + buf_idx, buf_len - buf_idx); + if (rv < 0) { + pr_err("qdma_queue_dump_cmpt() failed: %d", rv); + goto send_resp; + } + buf_idx = strlen(buf); + if (is_qp && (is_c2h == qconf.c2h)) { + qconf.c2h = ~qconf.c2h; + goto dump_q; + } + } + rv = snprintf(buf + buf_idx, buf_len - buf_idx, + "Dumped descs of queues %d -> %d.\n", + qidx, i - 1); +send_resp: + buf[buf_idx + rv] = '\0'; + rv = xnl_respond_buffer(info, buf, buf_len); + + kfree(buf); + return rv; +} + +static int xnl_q_read_udd(struct sk_buff *skb2, struct genl_info *info) +{ + int rv = 0; + struct qdma_queue_conf qconf; + char *buf; + unsigned char is_qp; + struct xlnx_pci_dev *xpdev; + struct xlnx_qdata *qdata; + int buf_len = XNL_RESP_BUFLEN_MAX; + + if (info == NULL) + return -EINVAL; + + xnl_dump_attrs(info); + + buf = xnl_mem_alloc(XNL_RESP_BUFLEN_MAX, info); + if (!buf) + return -ENOMEM; + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) { + kfree(buf); + return -EINVAL; + } + + rv = qconf_get(&qconf, info, buf, XNL_RESP_BUFLEN_MAX, &is_qp); + if (rv < 0) + goto send_resp; + + qdata = xnl_rcv_check_qidx(info, xpdev, &qconf, buf, + XNL_RESP_BUFLEN_MAX); + if (!qdata) + goto send_resp; + + rv = qdma_descq_get_cmpt_udd(xpdev->dev_hndl, qdata->qhndl, buf, + XNL_RESP_BUFLEN_MAX); + if (rv < 0) + goto send_resp; + +send_resp: + rv = xnl_respond_buffer(info, buf, buf_len); + + kfree(buf); + return rv; +} + +#ifdef ERR_DEBUG +static int xnl_err_induce(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + struct qdma_queue_conf qconf; + struct xlnx_qdata *qdata; + char *buf; + char ebuf[XNL_RESP_BUFLEN_MIN]; + unsigned char is_qp; + int rv; + u32 err; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + rv = qconf_get(&qconf, info, ebuf, XNL_RESP_BUFLEN_MIN, &is_qp); + if (rv < 0) + return rv; + + buf = xnl_mem_alloc(XNL_RESP_BUFLEN_MAX, info); + if (!buf) { + rv = sprintf(ebuf, "%s OOM %d.\n", + __func__, XNL_RESP_BUFLEN_MAX); + ebuf[rv] = '\0'; + xnl_respond_buffer(info, ebuf, XNL_RESP_BUFLEN_MIN); + return -ENOMEM; + } + + qdata = xnl_rcv_check_qidx(info, xpdev, &qconf, buf, + XNL_RESP_BUFLEN_MIN); + if (!qdata) + goto send_resp; + err = nla_get_u32(info->attrs[XNL_ATTR_QPARAM_ERR_INFO]); + + if (qdma_queue_set_err_induction(xpdev->dev_hndl, qdata->qhndl, err, + buf, XNL_RESP_BUFLEN_MAX)) { + rv += sprintf(buf + rv, "Failed to set induce err\n"); + goto send_resp; + } + rv += sprintf(buf + rv, "queue error induced\n"); + buf[rv] = '\0'; + +send_resp: + rv = xnl_respond_buffer(info, buf, XNL_RESP_BUFLEN_MAX); + + kfree(buf); + return rv; +} +#endif + +static int xnl_q_read_pkt(struct sk_buff *skb2, struct genl_info *info) +{ +#if 0 + struct xlnx_pci_dev *xpdev; + struct qdma_queue_conf qconf; + struct xlnx_qdata *qdata; + char *buf; + char ebuf[XNL_RESP_BUFLEN_MIN]; + int rv; + unsigned char is_qp; + unsigned int num_q; + unsigned int i; + unsigned short qidx; + int buf_len = XNL_RESP_BUFLEN_MAX; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + rv = qconf_get(&qconf, info, ebuf, XNL_RESP_BUFLEN_MIN, &is_qp); + if (rv < 0) + return rv; + + if (info->attrs[XNL_ATTR_RSP_BUF_LEN]) + buf_len = nla_get_u32(info->attrs[XNL_ATTR_RSP_BUF_LEN]); + + buf = xnl_mem_alloc(buf_len, info); + if (!buf) { + rv = sprintf(ebuf, "%s OOM %d.\n", + __func__, buf_len); + ebuf[rv] = '\0'; + xnl_respond_buffer(info, ebuf, XNL_RESP_BUFLEN_MIN); + return -ENOMEM; + } + + if (!info->attrs[XNL_ATTR_NUM_Q]) { + pr_warn("Missing attribute 'XNL_ATTR_NUM_Q'"); + return -1; + } + num_q = nla_get_u32(info->attrs[XNL_ATTR_NUM_Q]); + + qidx = qconf.qidx; + for (i = qidx; i < (qidx + num_q); i++) { + qconf.c2h = 1; + qconf.qidx = i; + qdata = xnl_rcv_check_qidx(info, xpdev, &qconf, buf, + buf_len); + if (!qdata) + goto send_resp; + rv = qdma_queue_dump_rx_packet(xpdev->dev_hndl, qdata->qhndl, + buf, buf_len); + if (rv < 0) { + pr_err("qdma_queue_dump_rx_packet) failed: %d", rv); + goto send_resp; + } + } + buf[rv] = '\0'; +send_resp: + rv = xnl_respond_buffer(info, buf, buf_len); + + kfree(buf); + return rv; +#endif + pr_info("NOT supported.\n"); + return -EINVAL; +} + +static int xnl_intr_ring_dump(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + char *buf; + unsigned int vector_idx = 0; + int start_idx = 0, end_idx = 0; + int rv = 0; + int buf_len = XNL_RESP_BUFLEN_MAX; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + if (!info->attrs[XNL_ATTR_INTR_VECTOR_IDX]) { + pr_warn("Missing attribute 'XNL_ATTR_INTR_VECTOR_IDX'"); + return -1; + } + vector_idx = nla_get_u32(info->attrs[XNL_ATTR_INTR_VECTOR_IDX]); + start_idx = nla_get_u32(info->attrs[XNL_ATTR_INTR_VECTOR_START_IDX]); + end_idx = nla_get_u32(info->attrs[XNL_ATTR_INTR_VECTOR_END_IDX]); + + if (info->attrs[XNL_ATTR_RSP_BUF_LEN]) + buf_len = nla_get_u32(info->attrs[XNL_ATTR_RSP_BUF_LEN]); + + buf = xnl_mem_alloc(buf_len, info); + if (!buf) + return -ENOMEM; + + if (xpdev->idx == 0) { + if (vector_idx == 0) { + rv += sprintf(buf + rv, + "vector_idx %d is for error interrupt\n", + vector_idx); + buf[rv] = '\0'; + goto send_resp; + } else if (vector_idx == 1) { + rv += sprintf(buf + rv, + "vector_idx %d is for user interrupt\n", + vector_idx); + buf[rv] = '\0'; + goto send_resp; + } + } else { + if (vector_idx == 0) { + rv += sprintf(buf + rv, + "vector_idx %d is for user interrupt\n", + vector_idx); + buf[rv] = '\0'; + goto send_resp; + } + } + + rv = qdma_intr_ring_dump(xpdev->dev_hndl, + vector_idx, start_idx, + end_idx, buf, buf_len); + if (rv < 0) { + pr_err("qdma_intr_ring_dump() failed: %d", rv); + goto send_resp; + } + +send_resp: + rv = xnl_respond_buffer(info, buf, buf_len); + + kfree(buf); + return rv; +} + +static int xnl_register_read(struct sk_buff *skb2, struct genl_info *info) +{ + struct sk_buff *skb; + void *hdr; + struct xlnx_pci_dev *xpdev; + struct qdma_dev_conf conf; + char buf[XNL_RESP_BUFLEN_MIN]; + unsigned int bar_num = 0, reg_addr = 0; + uint32_t reg_val = 0; + int rv = 0, err = 0; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + rv = qdma_device_get_config(xpdev->dev_hndl, &conf, NULL, 0); + if (rv < 0) + return rv; + + skb = xnl_msg_alloc(XNL_CMD_REG_RD, 0, &hdr, info); + if (!skb) + return -ENOMEM; + + if (!info->attrs[XNL_ATTR_REG_BAR_NUM]) { + pr_warn("Missing attribute 'XNL_ATTR_REG_BAR_NUM'"); + return -EINVAL; + } + + if (!info->attrs[XNL_ATTR_REG_ADDR]) { + pr_warn("Missing attribute 'XNL_ATTR_REG_ADDR'"); + return -EINVAL; + } + + bar_num = nla_get_u32(info->attrs[XNL_ATTR_REG_BAR_NUM]); + reg_addr = nla_get_u32(info->attrs[XNL_ATTR_REG_ADDR]); + + if (bar_num == conf.bar_num_config) { + reg_val = qdma_device_read_config_register(xpdev->dev_hndl, + reg_addr); + } else if (bar_num == conf.bar_num_user) { + reg_val = qdma_device_read_user_register(xpdev, reg_addr); + } else if (bar_num == conf.bar_num_bypass) { + reg_val = qdma_device_read_bypass_register(xpdev, reg_addr); + } else { + rv += sprintf(buf + rv, "Invalid bar number\n"); + buf[rv] = '\0'; + goto send_resp; + } + + err = xnl_msg_add_attr_uint(skb, XNL_ATTR_REG_VAL, reg_val); + if (err < 0) { + pr_err("xnl_msg_add_attr_uint() failed: %d", rv); + return err; + } + + err = xnl_msg_send(skb, hdr, info); + return err; + +send_resp: + rv = xnl_respond_buffer(info, buf, XNL_RESP_BUFLEN_MIN); + nlmsg_free(skb); + return rv; +} + +static int xnl_register_write(struct sk_buff *skb2, struct genl_info *info) +{ + struct xlnx_pci_dev *xpdev; + struct qdma_dev_conf conf; + char buf[XNL_RESP_BUFLEN_MIN]; + unsigned int bar_num = 0, reg_addr = 0; + uint32_t reg_val = 0; + int rv = 0; + + if (info == NULL) + return 0; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + rv = qdma_device_get_config(xpdev->dev_hndl, &conf, NULL, 0); + if (rv < 0) + return rv; + + if (!info->attrs[XNL_ATTR_REG_BAR_NUM]) { + pr_warn("Missing attribute 'XNL_ATTR_REG_BAR_NUM'"); + return -EINVAL; + } + + if (!info->attrs[XNL_ATTR_REG_ADDR]) { + pr_warn("Missing attribute 'XNL_ATTR_REG_ADDR'"); + return -EINVAL; + } + + if (!info->attrs[XNL_ATTR_REG_VAL]) { + pr_warn("Missing attribute 'XNL_ATTR_REG_VAL'"); + return -EINVAL; + } + + bar_num = nla_get_u32(info->attrs[XNL_ATTR_REG_BAR_NUM]); + reg_addr = nla_get_u32(info->attrs[XNL_ATTR_REG_ADDR]); + reg_val = nla_get_u32(info->attrs[XNL_ATTR_REG_VAL]); + + if (bar_num == conf.bar_num_config) { + qdma_device_write_config_register(xpdev->dev_hndl, + reg_addr, reg_val); + } else if (bar_num == conf.bar_num_user) { + qdma_device_write_user_register(xpdev, reg_addr, reg_val); + } else if (bar_num == conf.bar_num_bypass) { + qdma_device_write_bypass_register(xpdev, reg_addr, reg_val); + } else { + rv += sprintf(buf + rv, "Invalid bar number\n"); + buf[rv] = '\0'; + goto send_resp; + } + + buf[rv] = '\0'; + +send_resp: + rv = xnl_respond_buffer(info, buf, XNL_RESP_BUFLEN_MIN); + return rv; +} +static int xnl_get_global_csr(struct sk_buff *skb2, struct genl_info *info) +{ + struct global_csr_conf *csr; + struct xlnx_pci_dev *xpdev; + int rv; + + if (info == NULL) + return -EINVAL; + + xnl_dump_attrs(info); + + xpdev = xnl_rcv_check_xpdev(info); + if (!xpdev) + return 0; + + csr = kmalloc(sizeof(struct global_csr_conf), GFP_KERNEL); + if (!csr) + return -ENOMEM; + + rv = qdma_global_csr_get(xpdev->dev_hndl, csr); + if (rv < 0) { + pr_err("qdma_global_csr_get() failed: %d", rv); + goto free_msg_buff; + } + + rv = xnl_respond_data(info, + (void *)csr, sizeof(struct global_csr_conf)); + +free_msg_buff: + kfree(csr); + return rv; +} + +int xlnx_nl_init(void) +{ + int rv; +#ifdef __GENL_REG_FAMILY_OPS_FUNC__ + rv = genl_register_family_with_ops(&xnl_family, + xnl_ops, + ARRAY_SIZE(xnl_ops)); +#else + rv = genl_register_family(&xnl_family); +#endif + if (rv) + pr_info("genl_register_family failed %d.\n", rv); + + return rv; +} + +void xlnx_nl_exit(void) +{ + int rv; + + rv = genl_unregister_family(&xnl_family); + if (rv) + pr_info("genl_unregister_family failed %d.\n", rv); +} diff --git a/QDMA/linux-kernel/drv/nl.h b/QDMA/linux-kernel/drv/nl.h new file mode 100644 index 0000000..c9988cd --- /dev/null +++ b/QDMA/linux-kernel/drv/nl.h @@ -0,0 +1,45 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __QDMA_DRV_NL_H__ +#define __QDMA_DRV_NL_H__ +/** + * @file + * @brief This file contains the declarations for qdma netlink helper + * funnctions kernel module + * + */ +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include <net/genetlink.h> + +/*****************************************************************************/ +/** + * xnl_respond_buffer() - send a netlink string message + * + * @param[in] nl_info: pointer to netlink genl_info + * @param[in] buf: string buffer + * @param[in] buflen: length of the string buffer + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xnl_respond_buffer(struct genl_info *info, char *buf, int buflen); + +#endif /* ifndef __QDMA_DRV_NL_H__ */ diff --git a/QDMA/linux-kernel/drv/pci_ids.h b/QDMA/linux-kernel/drv/pci_ids.h new file mode 100644 index 0000000..dbbf17e --- /dev/null +++ b/QDMA/linux-kernel/drv/pci_ids.h @@ -0,0 +1,253 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __XDMA_PCI_ID_H__ +#define __XDMA_PCI_ID_H__ +/** + * @file + * @brief This file contains the list of pcie devices supported for qdma driver + * + */ + +/** + * list of pcie devices supported for qdma driver + */ +static const struct pci_device_id pci_ids[] = { + +#ifdef __QDMA_VF__ + /** Gen 1 VF */ + /** PCIe lane width x1 */ + { PCI_DEVICE(0x10ee, 0xa011), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa111), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa211), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa311), }, /** VF on PF 3 */ + /** PCIe lane width x2 */ + { PCI_DEVICE(0x10ee, 0xa012), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa112), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa212), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa312), }, /** VF on PF 3 */ + /** PCIe lane width x4 */ + { PCI_DEVICE(0x10ee, 0xa014), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa114), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa214), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa314), }, /** VF on PF 3 */ + /** PCIe lane width x8 */ + { PCI_DEVICE(0x10ee, 0xa018), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa118), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa218), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa318), }, /** VF on PF 3 */ + /** PCIe lane width x16 */ + { PCI_DEVICE(0x10ee, 0xa01f), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa11f), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa21f), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa31f), }, /** VF on PF 3 */ + + /** Gen 2 VF */ + /** PCIe lane width x1 */ + { PCI_DEVICE(0x10ee, 0xa021), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa121), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa221), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa321), }, /** VF on PF 3 */ + /** PCIe lane width x2 */ + { PCI_DEVICE(0x10ee, 0xa022), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa122), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa222), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa322), }, /** VF on PF 3 */ + /** PCIe lane width x4 */ + { PCI_DEVICE(0x10ee, 0xa024), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa124), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa224), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa324), }, /** VF on PF 3 */ + /** PCIe lane width x8 */ + { PCI_DEVICE(0x10ee, 0xa028), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa128), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa228), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa328), }, /** VF on PF 3 */ + /** PCIe lane width x16 */ + { PCI_DEVICE(0x10ee, 0xa02f), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa12f), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa22f), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa32f), }, /** VF on PF 3 */ + + /** Gen 3 VF */ + /** PCIe lane width x1 */ + { PCI_DEVICE(0x10ee, 0xa031), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa131), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa231), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa331), }, /** VF on PF 3 */ + /** PCIe lane width x2 */ + { PCI_DEVICE(0x10ee, 0xa032), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa132), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa232), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa332), }, /** VF on PF 3 */ + /** PCIe lane width x4 */ + { PCI_DEVICE(0x10ee, 0xa034), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa134), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa234), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa334), }, /** VF on PF 3 */ + /** PCIe lane width x8 */ + { PCI_DEVICE(0x10ee, 0xa038), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa138), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa238), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa338), }, /** VF on PF 3 */ + /** PCIe lane width x16 */ + { PCI_DEVICE(0x10ee, 0xa03f), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa13f), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa23f), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa33f), }, /** VF on PF 3 */ + + /** Gen 4 VF */ + /** PCIe lane width x1 */ + { PCI_DEVICE(0x10ee, 0xa041), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa141), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa241), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa341), }, /** VF on PF 3 */ + /** PCIe lane width x2 */ + { PCI_DEVICE(0x10ee, 0xa042), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa142), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa242), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa342), }, /** VF on PF 3 */ + /** PCIe lane width x4 */ + { PCI_DEVICE(0x10ee, 0xa044), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa144), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa244), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa344), }, /** VF on PF 3 */ + { PCI_DEVICE(0x10ee, 0xa444), }, /** VF on PF 4 */ + { PCI_DEVICE(0x10ee, 0xa544), }, /** VF on PF 5 */ + { PCI_DEVICE(0x10ee, 0xa644), }, /** VF on PF 6 */ + { PCI_DEVICE(0x10ee, 0xa744), }, /** VF on PF 7 */ + /** PCIe lane width x8 */ + { PCI_DEVICE(0x10ee, 0xa048), }, /** VF on PF 0 */ + { PCI_DEVICE(0x10ee, 0xa148), }, /** VF on PF 1 */ + { PCI_DEVICE(0x10ee, 0xa248), }, /** VF on PF 2 */ + { PCI_DEVICE(0x10ee, 0xa348), }, /** VF on PF 3 */ +#else + /** Gen 1 PF */ + /** PCIe lane width x1 */ + { PCI_DEVICE(0x10ee, 0x9011), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9111), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9211), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9311), }, /** PF 3 */ + /** PCIe lane width x2 */ + { PCI_DEVICE(0x10ee, 0x9012), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9112), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9212), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9312), }, /** PF 3 */ + /** PCIe lane width x4 */ + { PCI_DEVICE(0x10ee, 0x9014), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9114), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9214), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9314), }, /** PF 3 */ + /** PCIe lane width x8 */ + { PCI_DEVICE(0x10ee, 0x9018), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9118), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9218), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9318), }, /** PF 3 */ + /** PCIe lane width x16 */ + { PCI_DEVICE(0x10ee, 0x901f), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x911f), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x921f), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x931f), }, /** PF 3 */ + + /** Gen 2 PF */ + /** PCIe lane width x1 */ + { PCI_DEVICE(0x10ee, 0x9021), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9121), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9221), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9321), }, /** PF 3 */ + /** PCIe lane width x2 */ + { PCI_DEVICE(0x10ee, 0x9022), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9122), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9222), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9322), }, /** PF 3 */ + /** PCIe lane width x4 */ + { PCI_DEVICE(0x10ee, 0x9024), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9124), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9224), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9324), }, /** PF 3 */ + /** PCIe lane width x8 */ + { PCI_DEVICE(0x10ee, 0x9028), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9128), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9228), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9328), }, /** PF 3 */ + /** PCIe lane width x16 */ + { PCI_DEVICE(0x10ee, 0x902f), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x912f), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x922f), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x932f), }, /** PF 3 */ + + /** Gen 3 PF */ + /** PCIe lane width x1 */ + { PCI_DEVICE(0x10ee, 0x9031), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9131), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9231), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9331), }, /** PF 3 */ + /** PCIe lane width x2 */ + { PCI_DEVICE(0x10ee, 0x9032), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9132), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9232), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9332), }, /** PF 3 */ + /** PCIe lane width x4 */ + { PCI_DEVICE(0x10ee, 0x9034), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9134), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9234), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9334), }, /** PF 3 */ + /** PCIe lane width x8 */ + { PCI_DEVICE(0x10ee, 0x9038), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9138), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9238), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9338), }, /** PF 3 */ + /** PCIe lane width x16 */ + { PCI_DEVICE(0x10ee, 0x903f), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x913f), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x923f), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x933f), }, /** PF 3 */ + /* { PCI_DEVICE(0x10ee, 0x6a9f), }, */ /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x6aa0), }, /** PF 1 */ + + /** Gen 4 PF */ + /** PCIe lane width x1 */ + { PCI_DEVICE(0x10ee, 0x9041), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9141), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9241), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9341), }, /** PF 3 */ + /** PCIe lane width x2 */ + { PCI_DEVICE(0x10ee, 0x9042), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9142), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9242), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9342), }, /** PF 3 */ + /** PCIe lane width x4 */ + { PCI_DEVICE(0x10ee, 0x9044), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9144), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9244), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9344), }, /** PF 3 */ + /** PCIe lane width x8 */ + { PCI_DEVICE(0x10ee, 0x9048), }, /** PF 0 */ + { PCI_DEVICE(0x10ee, 0x9148), }, /** PF 1 */ + { PCI_DEVICE(0x10ee, 0x9248), }, /** PF 2 */ + { PCI_DEVICE(0x10ee, 0x9348), }, /** PF 3 */ +#endif + + {0,} +}; + +/** module device table */ +MODULE_DEVICE_TABLE(pci, pci_ids); + +#endif /* ifndef __XDMA_PCI_ID_H__ */ diff --git a/QDMA/linux-kernel/drv/qdma_mod.c b/QDMA/linux-kernel/drv/qdma_mod.c new file mode 100644 index 0000000..f1ce604 --- /dev/null +++ b/QDMA/linux-kernel/drv/qdma_mod.c @@ -0,0 +1,2257 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "qdma_mod.h" + +#include <linux/module.h> +#include <linux/kernel.h> +#include <linux/version.h> +#include <linux/types.h> +#include <linux/errno.h> +#include <linux/pci.h> +#include <linux/aer.h> +#include <linux/vmalloc.h> + +#include "nl.h" + +/* include early, to verify it depends only on the headers above */ +#include "version.h" + +static char version[] = + DRV_MODULE_DESC " v" DRV_MODULE_VERSION "\n"; + +MODULE_AUTHOR("Xilinx, Inc."); +MODULE_DESCRIPTION(DRV_MODULE_DESC); +MODULE_VERSION(DRV_MODULE_VERSION); +MODULE_LICENSE("Dual BSD/GPL"); + +/* Module Parameters */ +/** 0 - AUTO_MODE, + * 1 - POLL_MODE, + * 2 - DIRECT_INTR_MODE, + * 3 - INDIRECT_INTR_MODE, + * 4 - LEGACY_INTR_MODE + */ +static unsigned int mode = 0; +module_param(mode, uint, 0644); +MODULE_PARM_DESC(mode, +"use hw polling instead of interrupts for determining dma transfer completion"); + +static unsigned int master_pf[MAX_DMA_DEV] = {0}; +static unsigned int master_cnt; +module_param_array(master_pf, uint, &master_cnt, 0644); +MODULE_PARM_DESC(master_pf, "Master PF for setting global CSRs, dflt PF 0"); + +static unsigned int config_bar[MAX_DMA_DEV] = {0}; +static unsigned int config_bar_cnt; +module_param_array(config_bar, uint, &config_bar_cnt, 0644); +MODULE_PARM_DESC(config_bar, "Config bar number for all devices , dflt 0"); + +static unsigned int num_threads = 0; +module_param(num_threads, uint, 0644); +MODULE_PARM_DESC(num_threads, +"Number of threads to be created each for request and writeback processing"); + +static unsigned int tm_mode_en = 0; +module_param(tm_mode_en, uint, 0644); +MODULE_PARM_DESC(tm_mode_en, + "Enable Traffic Manager mode for bypass ST H2C xmit. Default disabled"); + +static unsigned int tm_one_cdh_en = 0; +module_param(tm_one_cdh_en, uint, 0644); +MODULE_PARM_DESC(tm_one_cdh_en, + "Enable 1 CDH for Traffic Manager mode. Default is Zero CDH"); + +#include "pci_ids.h" + +/* + * xpdev helper functions + */ +static LIST_HEAD(xpdev_list); +static DEFINE_MUTEX(xpdev_mutex); + +/*****************************************************************************/ +/** + * funcname() - handler to show the intr_rngsz configuration value + * + * @dev : PCIe device handle + * @attr: intr_rngsz configuration value + * @buf : buffer to hold the configured value + * + * Handler function to show the intr_rngsz + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t show_intr_rngsz(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct xlnx_pci_dev *xpdev; + int len; + unsigned int rngsz = 0; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + rngsz = qdma_get_intr_rngsz(xpdev->dev_hndl); + len = sprintf(buf, "%d\n", rngsz); + if (len <= 0) + pr_err("copying rngsz to buffer failed with err: %d\n", len); + + return len; +} + +/*****************************************************************************/ +/** + * funcname() - handler to set the intr_rngsz configuration value + * + * @dev : PCIe device handle + * @attr: intr_rngsz configuration value + * @buf : buffer to hold the configured value + * @count : the number of bytes of data in the buffer + * + * Handler function to set the intr_rngsz + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t set_intr_rngsz(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct xlnx_pci_dev *xpdev; + unsigned int rngsz = 0; + int err = 0; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + err = kstrtouint(buf, 0, &rngsz); + if (err < 0) { + pr_info("failed to set interrupt ring size\n"); + return err; + } + + err = qdma_set_intr_rngsz(xpdev->dev_hndl, (u32)rngsz); + return err ? err : count; +} + +/*****************************************************************************/ +/** + * funcname() - handler to show the qmax configuration value + * + * @dev : PCIe device handle + * @attr: qmax configuration value + * @buf : buffer to hold the configured value + * + * Handler function to show the qmax + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t show_qmax(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct xlnx_pci_dev *xpdev; + int len; + unsigned int qmax = 0; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + qmax = qdma_get_qmax(xpdev->dev_hndl); + len = sprintf(buf, "%d\n", qmax); + if (len <= 0) + pr_err("copying qmax to buf failed with err: %d\n", len); + + return len; +} + +#ifndef __QDMA_VF__ +/*****************************************************************************/ +/** + * funcname() - handler to show the qmax configuration value + * + * @dev : PCIe device handle + * @attr: qmax configuration value + * @buf : buffer to hold the configured value + * + * Handler function to show the qmax + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t show_qmax_vfs(struct device *dev, + struct device_attribute *attr, char *buf) +{ + int len; + int vf_qmax = qconf_get_qmax(PCI_TYPE_VF, 0); + + len = sprintf(buf, "%d\n", vf_qmax); + if (len <= 0) + pr_err("copying qmax_vfs to buf failed with err: %d\n", len); + + return len; +} + +/*****************************************************************************/ +/** + * qdma_reconfigure_qmax() - handler to set the qmax configuration value + * + * @xpdev : PCIe device handle for + * @qmax_new : new value for qmax + * @conf_head: pointer to hold the device configuration + * + * Helper function to reconfigure qmax values using sysfs/qmax interface for + * the xlnx_pci_dev passed as parameter. Will change the starting of the + * subsequent PF Qs based on the modified qmax value of the xpdev. For + * preceeding devices, no changes will happen + * + * @note none + * + * Return: Returns number of devices succesfully configured on success, + * <0 on failure + * + *****************************************************************************/ +static int qdma_prep_reconfigure(struct xlnx_pci_dev *xpdev, + int qmax_new, struct qdma_dev_conf **conf_head) +{ + int reconfig_ok = 0; + unsigned int used_qs = 0; + unsigned int cfg_pending = 0; + unsigned int cfg_pending_qcnt = 0; + int err = 0; + int next_qbase = 0; + int total_pf = 0; + int count = 0; + struct xlnx_pci_dev *_xpdev, *tmp; + struct qdma_dev_conf *_conf_head = NULL; + struct qdma_dev_conf *conf_p = NULL; + int last_bus = 0; + int last_dev = 0; + int max_pf_qs = qconf_get_qmax(PCI_TYPE_PF, 0); + + mutex_lock(&xpdev_mutex); + list_for_each_entry_safe(_xpdev, tmp, &xpdev_list, list_head) { + struct qdma_dev_conf conf; + /** found a new card? */ + if ((last_bus | last_dev) && + ((last_bus != _xpdev->pdev->bus->number) || + (last_dev != PCI_SLOT(_xpdev->pdev->devfn)))) + break; + + err = qdma_device_get_config(_xpdev->dev_hndl, &conf, NULL, 0); + if (err < 0) { + pr_err("Failed to get conf for qdma device '%05x'\n", + _xpdev->idx); + reconfig_ok = err; + goto errout_reconfig; + } + + if (conf.cur_cfg_state == QMAX_CFG_USER) { + if (xpdev != _xpdev) + used_qs += conf.qsets_max; + else { + if (qmax_new == conf.qsets_max) { + pr_info("WARN! New qmax(%d) same as current(%d)\n", + qmax_new, + conf.qsets_max); + reconfig_ok = 0; + goto errout_reconfig; + } + } + } else if (conf.cur_cfg_state == QMAX_CFG_INITIAL) + if (xpdev != _xpdev) + cfg_pending++; + total_pf++; + last_bus = _xpdev->pdev->bus->number; + last_dev = PCI_SLOT(_xpdev->pdev->devfn); + } + if ((used_qs + qmax_new) > max_pf_qs) { + pr_err("Not enough qs to allocate for qdma%05x\n", + _xpdev->idx); + pr_err("Requested size = %d, remaining size=%d\n", + qmax_new, max_pf_qs - used_qs); + reconfig_ok = -EINVAL; + goto errout_reconfig; + } + + _conf_head = (struct qdma_dev_conf *)kzalloc(total_pf * sizeof(struct qdma_dev_conf), + GFP_KERNEL); + if (!_conf_head) { + reconfig_ok = -ENOMEM; + goto errout_reconfig; + } + + if (cfg_pending) + cfg_pending_qcnt = (max_pf_qs - (used_qs + qmax_new))/cfg_pending; + + count = total_pf; + conf_p = _conf_head; + list_for_each_entry_safe(_xpdev, tmp, &xpdev_list, list_head) { + err = qdma_device_get_config(_xpdev->dev_hndl, conf_p, NULL, 0); + if (err < 0) { + pr_err("Failed to get conf for qdma device '%05x'\n", _xpdev->idx); + reconfig_ok = -1; + goto errout_reconfig; + } + + conf_p->qsets_base = next_qbase; + if (_xpdev == xpdev) { + conf_p->qsets_max = qmax_new; + conf_p->cur_cfg_state = QMAX_CFG_USER; + } else { + if (conf_p->cur_cfg_state == QMAX_CFG_INITIAL) + conf_p->qsets_max = cfg_pending_qcnt; + } + next_qbase = conf_p->qsets_max + conf_p->qsets_base; + /* if 0qs make qbase to 0 */ + if (!conf_p->qsets_max) + conf_p->qsets_base = 0; + conf_p++; + /** we have to configure 'total_pf' PF devices */ + if (!(count--)) + break; + } + + *conf_head = _conf_head; + + reconfig_ok = total_pf; + +errout_reconfig: + mutex_unlock(&xpdev_mutex); + + if ((reconfig_ok < 0) && (_conf_head != NULL)) + kfree(_conf_head); + + return reconfig_ok; +} + +static int qdma_sysfs_reconfigure(void) +{ + int reconfig_ok = 0; + unsigned int qcnt = 0; + int err = 0; + int next_qbase = 0; + int total_pf = 0; + int cfgd_pf = 0; + int count = 0; + struct xlnx_pci_dev *_xpdev, *tmp; + int last_bus = 0; + int last_dev = 0; + int max_pf_qs = qconf_get_qmax(PCI_TYPE_PF, 0); + int total_qcnt_user = 0; + int qcnt_remaining = 0; + + mutex_lock(&xpdev_mutex); + list_for_each_entry_safe(_xpdev, tmp, &xpdev_list, list_head) { + struct qdma_dev_conf conf; + /** found a new card? */ + if ((last_bus | last_dev) && + ((last_bus != _xpdev->pdev->bus->number) || + (last_dev != PCI_SLOT(_xpdev->pdev->devfn)))) + break; + + err = qdma_device_get_config(_xpdev->dev_hndl, &conf, NULL, 0); + if (err < 0) { + pr_err("Failed to get conf for qdma device '%d'\n", + _xpdev->idx); + reconfig_ok = err; + goto errout_reconfig; + } + + if (conf.cur_cfg_state == QMAX_CFG_USER) { + total_qcnt_user += conf.qsets_max; + } else + cfgd_pf++; + + total_pf++; + last_bus = _xpdev->pdev->bus->number; + last_dev = PCI_SLOT(_xpdev->pdev->devfn); + } + + qcnt_remaining = max_pf_qs - total_qcnt_user; + if (qcnt_remaining < 0) { + pr_err("Sysfs reconfiguration of vf-max failed!!!\n"); + reconfig_ok = -EPERM; + goto errout_reconfig; + } + + if (cfgd_pf) + qcnt = qcnt_remaining / cfgd_pf; + + count = total_pf; + + list_for_each_entry_safe(_xpdev, tmp, &xpdev_list, list_head) { + struct qdma_dev_conf conf; + + err = qdma_device_get_config(_xpdev->dev_hndl, &conf, NULL, 0); + if (err < 0) { + pr_err("Failed to get conf for qdma device '%d'\n", + _xpdev->idx); + reconfig_ok = err; + goto errout_reconfig; + } + + if (conf.cur_cfg_state == QMAX_CFG_INITIAL) + conf.qsets_max = qcnt; + + if (conf.qsets_max) + conf.qsets_base = next_qbase; + else + conf.qsets_base = 0; + next_qbase += conf.qsets_max; + + err = qdma_device_set_config(_xpdev->dev_hndl, &conf); + if (err < 0) { + pr_err("Failed to get conf for qdma device '%d'\n", _xpdev->idx); + reconfig_ok = err; + goto errout_reconfig; + } + + err = qdma_set_qmax(_xpdev->dev_hndl, conf.qsets_max, 1); + if (err < 0) { + pr_err("Failed to alter qmax for qdma%u %s max QP: %u, %u~%u\n", + _xpdev->idx, dev_name(&conf.pdev->dev), + conf.qsets_max, conf.qsets_base, + conf.qsets_base + conf.qsets_max - 1); + reconfig_ok = err; + goto errout_reconfig; + } + + /** we have to configure 'total_pf' PF devices */ + if (!(count--)) + break; + } + +errout_reconfig: + mutex_unlock(&xpdev_mutex); + + return reconfig_ok; +} + +static int qdma_reconfigure_qmax(struct xlnx_pci_dev *xpdev, + struct qdma_dev_conf *conf_head) +{ + int err = 0, qmax = 0, count = 0; + struct xlnx_pci_dev *_xpdev, *tmp; + struct qdma_dev_conf *conf_p = conf_head; + + if (!conf_head) + return -EINVAL; + + mutex_lock(&xpdev_mutex); + /** start from the device we want to alter the qmax value + * TODO: failure will take the device to an inconsistant + * state and how to handle it. + */ + list_for_each_entry_safe(_xpdev, tmp, &xpdev_list, list_head) { + + err = qdma_device_set_config(_xpdev->dev_hndl, conf_p); + if (err < 0) { + pr_err("Failed to get conf for qdma device '%05x'\n", _xpdev->idx); + break; + } + qmax = conf_p->qsets_max; + err = qdma_set_qmax(_xpdev->dev_hndl, qmax, 1); + if (err < 0) { + pr_err("Failed to alter qmax for qdma%05x %s max QP: %u, %u~%u\n", + _xpdev->idx, dev_name(&conf_p->pdev->dev), + conf_p->qsets_max, conf_p->qsets_base, + conf_p->qsets_base + conf_p->qsets_max - 1); + break; + } + if (_xpdev == xpdev) + qdma_device_set_cfg_state(_xpdev->dev_hndl, QMAX_CFG_USER); + + conf_p++; + count++; + } + mutex_unlock(&xpdev_mutex); + + if (!err) + pr_debug("Succesfully reconfigured '%d' devices\n", count); + + kfree(conf_head); + + return err; +} + +static ssize_t set_qmax(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct xlnx_pci_dev *xpdev; + struct qdma_dev_conf *conf_head = NULL; + unsigned int qmax = 0; + int err = 0; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + err = kstrtouint(buf, 0, &qmax); + if (err < 0) { + pr_info("failed to set qmax to %d\n", qmax); + return err; + } + + if (qmax > qconf_get_qmax(PCI_TYPE_PF, 0)) { + pr_err("Invalid qmax %u (max = %u)\n", + qmax, + qconf_get_qmax(PCI_TYPE_PF, 0)); + return -EINVAL; + } + + err = qdma_prep_reconfigure(xpdev, qmax, &conf_head); + if (!(err < 0)) + err = qdma_reconfigure_qmax(xpdev, conf_head); + + return err ? err : count; +} + +/*****************************************************************************/ +/** + * funcname() - handler to set the qmax_vf configuration value + * + * @dev : PCIe device handle + * @attr: qmax_vf configuration value + * @buf : buffer to hold the configured value + * @count : the number of bytes of data in the buffer + * + * Handler function to set the qmax_vf + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t set_qmax_vfs(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + unsigned int qmax = 0; + int err = 0; + int last_qmax = 0; + + if (!is_vfqmax_configurable()) { + pr_err("Setting VF-qmax failed, VFs already registered."); + return -EPERM; + } + + err = kstrtoint(buf, 0, &qmax); + if (err < 0) { + pr_err("Failed to set qmax VFs\n"); + return err; + } + + if (qmax > TOTAL_QDMA_QS) { + pr_err("Invalid vf qmax %d\n", qmax); + return -EINVAL; + } + + last_qmax = set_vf_qmax(qmax); + err = qdma_sysfs_reconfigure(); + if (err < 0) + set_vf_qmax(last_qmax); + + return err ? err : count; +} + +/*****************************************************************************/ +/** + * funcname() - handler to show the cmpl_status_acc configuration value + * + * @dev : PCIe device handle + * @attr: cmpl_status_acc configuration value + * @buf : buffer to hold the configured value + * + * Handler function to show the cmpl_status_acc + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t show_cmpl_status_acc(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *xpdev; + int len; + unsigned int cmpl_status_acc = 0; + + if (!pdev) + return -EINVAL; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + cmpl_status_acc = qdma_get_cmpl_status_acc(xpdev->dev_hndl); + len = sprintf(buf, "%d\n", cmpl_status_acc); + if (len <= 0) + pr_err("copying cmpl status acc value to buf failed with err: %d\n", len); + + return len; +} + +/*****************************************************************************/ +/** + * funcname() - handler to set the cmpl_status_acc configuration value + * + * @dev : PCIe device handle + * @attr: cmpl_status_acc configuration value + * @buf : buffer to hold the configured value + * @count : the number of bytes of data in the buffer + * + * Handler function to set the cmpl_status_acc + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t set_cmpl_status_acc(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *xpdev; + unsigned int cmpl_status_acc = 0; + int err = 0; + + if (!pdev) + return -EINVAL; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + err = kstrtoint(buf, 0, &cmpl_status_acc); + if (err < 0) { + pr_err("failed to set cmpl status accumulator to %d\n", cmpl_status_acc); + return err; + } + + err = qdma_set_cmpl_status_acc(xpdev->dev_hndl, cmpl_status_acc); + return err ? err : count; +} + +/*****************************************************************************/ +/** + * funcname() - handler to show the buf_sz configuration value + * + * @dev : PCIe device handle + * @attr: buf_sz configuration value + * @buf : buffer to hold the configured value + * + * Handler function to show the buf_sz + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ + +static ssize_t show_c2h_buf_sz(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *xpdev; + int len = 0; + int i; + unsigned int c2h_buf_sz[QDMA_GLOBAL_CSR_ARRAY_SZ] = {0}; + + if (!pdev) + return -EINVAL; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + qdma_get_buf_sz(xpdev->dev_hndl, c2h_buf_sz); + + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++) + len += sprintf(buf + len, "%hu ", c2h_buf_sz[i]); + len += sprintf(buf + len, "%s", "\n"); + + return len; +} + +/*****************************************************************************/ +/** + * funcname() - handler to set the buf_sz configuration value + * + * @dev : PCIe device handle + * @attr: buf_sz configuration value + * @buf : buffer to hold the configured value + * @count : the number of bytes of data in the buffer + * + * Handler function to set the buf_sz + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ + +static ssize_t set_c2h_buf_sz(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *xpdev; + int err = 0; + char *s = (char *)buf, *p = NULL; + const char *tc = " "; /* token character here is a "space" */ + unsigned int c2h_buf_sz[QDMA_GLOBAL_CSR_ARRAY_SZ] = {0}; + int i = 0; + + if (!pdev) + return -EINVAL; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + /* First read the values in to the register + ** This helps to restore the values of entries if + ** user configures lesser than 16 values + */ + qdma_get_buf_sz(xpdev->dev_hndl, c2h_buf_sz); + + while ((p = strsep(&s, tc)) != NULL && i < QDMA_GLOBAL_CSR_ARRAY_SZ) { + if (*p == 0) + continue; + + err = kstrtoint(p, 0, &c2h_buf_sz[i]); + if (err < 0) + goto input_err; + + /* Check if buf_sz is configured as power of 2 */ + if (!(c2h_buf_sz[i]) || ((c2h_buf_sz[i]) & (c2h_buf_sz[i]-1))) { + pr_warn("buf_sz at index %d is not power of 2\n", i); + err = -EINVAL; + goto input_err; + } + i++; + } + + if (p) { + /* + check if the number of entries are more than 16 ! + if yes, ignore the extra values + */ + pr_warn("Found more than 16 entries. Ignoring extra entries\n"); + } + + err = qdma_set_buf_sz(xpdev->dev_hndl, c2h_buf_sz); + +input_err: + return err ? err : count; +} + +/*****************************************************************************/ +/** + * funcname() - handler to show the ring_sz configuration value + * + * @dev : PCIe device handle + * @attr: ring_sz configuration value + * @buf : buffer to hold the configured value + * + * Handler function to show the ring_sz + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ + +static ssize_t show_glbl_rng_sz(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *xpdev; + int len = 0; + int i; + unsigned int glbl_ring_sz[QDMA_GLOBAL_CSR_ARRAY_SZ] = {0}; + + if (!pdev) + return -EINVAL; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + qdma_get_glbl_rng_sz(xpdev->dev_hndl, glbl_ring_sz); + + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++) + len += sprintf(buf + len, "%hu ", glbl_ring_sz[i]); + len += sprintf(buf + len, "%s", "\n"); + + return len; +} + +/*****************************************************************************/ +/** + * funcname() - handler to set the glbl_ring_sz configuration value + * + * @dev : PCIe device handle + * @attr: buf_sz configuration value + * @buf : buffer to hold the configured value + * @count : the number of bytes of data in the buffer + * + * Handler function to set the glbl_ring_sz + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ + +static ssize_t set_glbl_rng_sz(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *xpdev; + int err = 0; + char *s = (char *)buf, *p = NULL; + const char *tc = " "; /* token character here is a "space" */ + unsigned int glbl_ring_sz[QDMA_GLOBAL_CSR_ARRAY_SZ] = {0}; + int i = 0; + + if (!pdev) + return -EINVAL; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + /* First read the values in to the register + ** This helps to restore the values of entries if + ** user configures lesser than 16 values + */ + qdma_get_glbl_rng_sz(xpdev->dev_hndl, glbl_ring_sz); + + while ((p = strsep(&s, tc)) != NULL && i < QDMA_GLOBAL_CSR_ARRAY_SZ) { + if (*p == 0) + continue; + + err = kstrtoint(p, 0, &glbl_ring_sz[i]); + if (err < 0) + goto input_err; + + /* Check if rng_sz is configured as power of 2 */ + if ((glbl_ring_sz[i]) & (glbl_ring_sz[i]-1)) { + pr_warn("glbl_ring_sz at index %d is not power of 2\n", i); + err = -EINVAL; + goto input_err; + } + + /* Always add one for the completion status */ + glbl_ring_sz[i] += 1; + + i++; + } + + if (p) { + /* + check if the number of entries are more than 16 ! + if yes, ignore the extra values + */ + pr_warn("Found more than 16 entries. Ignoring extra entries\n"); + } + + err = qdma_set_glbl_rng_sz(xpdev->dev_hndl, glbl_ring_sz); + +input_err: + return err ? err : count; +} + +/*****************************************************************************/ +/** + * funcname() - handler to show global csr c2h_timer_cnt configuration value + * + * @dev : PCIe device handle + * @attr: c2h_timer_cnt configuration value + * @buf : buffer to hold the configured value + * + * Handler function to show the global csr c2h_timer_cnt + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t show_c2h_timer_cnt(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *xpdev; + int len = 0; + int i; + unsigned int c2h_timer_cnt[QDMA_GLOBAL_CSR_ARRAY_SZ] = {0}; + + if (!pdev) + return -EINVAL; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + qdma_get_timer_cnt(xpdev->dev_hndl, c2h_timer_cnt); + + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++) + len += sprintf(buf + len, "%hhu ", c2h_timer_cnt[i]); + len += sprintf(buf + len, "%s", "\n"); + + return len; +} + +/*****************************************************************************/ +/** + * set_c2h_timer_cnt() - handler to set global csr c2h_timer_cnt config + * + * @dev : PCIe device handle + * @attr: c2h_timer_cnt configuration value + * @buf : buffer containing new configuration + * @count : the number of bytes of data in the buffer + * + * Handler function to set the global csr c2h_timer_cnt + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t set_c2h_timer_cnt(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *xpdev; + int err = 0; + char *s = (char *)buf, *p = NULL; + const char *tc = " "; /* token character here is a "space" */ + unsigned int c2h_timer_cnt[QDMA_GLOBAL_CSR_ARRAY_SZ] = {0}; + int i = 0; + + if (!pdev) + return -EINVAL; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + /* First read the values in to the register + ** This helps to restore the values of entries if + ** user configures lesser than 16 values + */ + qdma_get_timer_cnt(xpdev->dev_hndl, c2h_timer_cnt); + + while ((p = strsep(&s, tc)) != NULL && i < QDMA_GLOBAL_CSR_ARRAY_SZ) { + if (*p == 0) + continue; + + err = kstrtoint(p, 0, &c2h_timer_cnt[i]); + if (err < 0) + goto input_err; + + if (c2h_timer_cnt[i] < 0 || c2h_timer_cnt[i] > 255) { + pr_warn("timer cnt at index %d is %d - out of range [0-255]\n", + i, c2h_timer_cnt[i]); + err = -EINVAL; + goto input_err; + } + i++; + } + + if (p) { + /* + check if the number of entries are more than 16 ! + if yes, ignore the extra values + */ + pr_warn("Found more than 16 entries. Ignoring extra entries\n"); + } + err = qdma_set_timer_cnt(xpdev->dev_hndl, c2h_timer_cnt); + +input_err: + return err ? err : count; +} + +/*****************************************************************************/ +/** + * funcname() - handler to show global csr c2h_cnt_th_ configuration value + * + * @dev : PCIe device handle + * @attr: c2h_cnt_th configuration value + * @buf : buffer to hold the configured value + * + * Handler function to show the global csr c2h_cnt_th + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t show_c2h_cnt_th(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *xpdev; + int len = 0; + int i; + unsigned int c2h_cnt_th[QDMA_GLOBAL_CSR_ARRAY_SZ] = {0}; + + if (!pdev) + return -EINVAL; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + qdma_get_cnt_thresh(xpdev->dev_hndl, c2h_cnt_th); + + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++) + len += sprintf(buf + len, "%hhu ", c2h_cnt_th[i]); + len += sprintf(buf + len, "%s", "\n"); + + return len; +} + +/*****************************************************************************/ +/** + * set_c2h_cnt_th() - handler to set global csr c2h_cnt_th configuration + * + * @dev : PCIe device handle + * @attr: c2h_cnt_th configuration value + * @buf : buffer containing new configuration + * @count : the number of bytes of data in the buffer + * + * Handler function to set the global csr c2h_cnt_th + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ +static ssize_t set_c2h_cnt_th(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *xpdev; + int err = 0; + char *s = (char *)buf, *p = NULL; + const char *tc = " "; /* token character here is a "space" */ + unsigned int c2h_cnt_th[QDMA_GLOBAL_CSR_ARRAY_SZ] = {0}; + int i = 0; + + if (!pdev) + return -EINVAL; + + xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!xpdev) + return -EINVAL; + + /* First read the values in to the register + ** This helps to restore the values of entries if + ** user configures lesser than 16 values + */ + qdma_get_cnt_thresh(xpdev->dev_hndl, c2h_cnt_th); + + while ((p = strsep(&s, tc)) != NULL && i < QDMA_GLOBAL_CSR_ARRAY_SZ) { + if (*p == 0) + continue; + + err = kstrtoint(p, 0, &c2h_cnt_th[i]); + if (err < 0) + goto input_err; + + if (c2h_cnt_th[i] < 0 || c2h_cnt_th[i] > 255) { + pr_warn("counter threshold at index %d is %d - out of range [0-255]\n", + i, c2h_cnt_th[i]); + err = -EINVAL; + goto input_err; + } + i++; + } + + if (p) { + /* + check if the number of entries are more than 16 ! + if yes, ignore the extra values + */ + pr_warn("Found more than 16 entries. Ignoring extra entries\n"); + } + err = qdma_set_cnt_thresh(xpdev->dev_hndl, c2h_cnt_th); + +input_err: + return err ? err : count; +} + +/** + * Function to find the first PF device available in the card + */ +static bool is_first_pfdev(u32 bdf) +{ + struct xlnx_pci_dev *_xpdev, *tmp; + u32 bdf_tmp = 0; + + mutex_lock(&xpdev_mutex); + if (list_empty(&xpdev_list)) { + mutex_unlock(&xpdev_mutex); + return 1; + } + + list_for_each_entry_safe(_xpdev, tmp, &xpdev_list, list_head) { + struct pci_dev *pdev = _xpdev->pdev; + bdf_tmp = (pdev->bus->number << PCI_SHIFT_BUS) + | (PCI_SLOT(pdev->devfn) << PCI_SHIFT_DEV) + | PCI_FUNC(pdev->devfn); + /** find first bus and device are matching */ + if ((bdf & ~0xf) == (bdf_tmp & ~0xf)) { + mutex_unlock(&xpdev_mutex); + /** if func matches, it returns 1, else 0*/ + return (PCI_FUNC(pdev->devfn) == (bdf & 0xf)); + } + } + mutex_unlock(&xpdev_mutex); + + return 0; +} + +/** + * function to find out master pf, if the parameter master_pf is passed. + * By default it will be PF0 + */ +static u8 is_master_pf(struct pci_dev *pdev) +{ + int i = 0; + u32 bdf = (pdev->bus->number << PCI_SHIFT_BUS) + | (PCI_SLOT(pdev->devfn) << PCI_SHIFT_DEV) + | PCI_FUNC(pdev->devfn); + /** + * no arguments are passed for master_pf, default to PF0 + * arguments passed but bus and device not in list, + * default to PF0 + */ + if (!master_cnt) { + if (is_first_pfdev(bdf)) + return 1; + } else { + for (i = 0; i < master_cnt; i++) { + if ((bdf & ~0xf) == (master_pf[i] & ~0xf)) { + if ((master_pf[i] & 0xf) == (bdf & 0xf)) + return 1; + else + return 0; + } + } + + if (is_first_pfdev(bdf)) + return 1; + } + + return 0; +} +#else /** For VF #ifdef __QDMA_VF__ */ +/*****************************************************************************/ +/** + * funcname() - handler to set the qmax configuration value + * + * @dev : PCIe device handle + * @attr: qmax configuration value + * @buf : buffer to hold the configured value + * + * Handler function to set the qmax + * + * @note none + * + * Return: Returns length of the buffer on success, <0 on failure + * + *****************************************************************************/ + +static ssize_t set_qmax(struct device *dev, + struct device_attribute *attr, const char *buf, size_t count) +{ + struct pci_dev *pdev = to_pci_dev(dev); + struct xlnx_pci_dev *_xpdev; + unsigned int qmax = 0; + int err = 0; + + if (!pdev) + return -EINVAL; + + _xpdev = (struct xlnx_pci_dev *)dev_get_drvdata(dev); + if (!_xpdev) + return -EINVAL; + err = kstrtoint(buf, 0, &qmax); + if (err < 0) { + pr_err("Failed to set qmax\n"); + return err; + } + + + if (qmax > TOTAL_QDMA_QS) { + pr_err("Invalid vf qmax %d\n", qmax); + return -EINVAL; + } + + err = qdma_vf_qconf(_xpdev->dev_hndl, qmax); + if (err < 0) + return err; + + if (!err) + pr_debug("Succesfully reconfigured qdmavf%05x\n", _xpdev->idx); + + return err ? err : count; +} +#endif + +static DEVICE_ATTR(qmax, S_IWUSR | S_IRUGO, show_qmax, set_qmax); +static DEVICE_ATTR(intr_rngsz, S_IWUSR | S_IRUGO, + show_intr_rngsz, set_intr_rngsz); +#ifndef __QDMA_VF__ +static DEVICE_ATTR(buf_sz, S_IWUSR | S_IRUGO, + show_c2h_buf_sz, set_c2h_buf_sz); +static DEVICE_ATTR(glbl_rng_sz, S_IWUSR | S_IRUGO, + show_glbl_rng_sz, set_glbl_rng_sz); +static DEVICE_ATTR(c2h_timer_cnt, S_IWUSR | S_IRUGO, + show_c2h_timer_cnt, set_c2h_timer_cnt); +static DEVICE_ATTR(c2h_cnt_th, S_IWUSR | S_IRUGO, + show_c2h_cnt_th, set_c2h_cnt_th); +static DEVICE_ATTR(cmpl_status_acc, S_IWUSR | S_IRUGO, show_cmpl_status_acc, set_cmpl_status_acc); +static DEVICE_ATTR(qmax_vfs, S_IWUSR | S_IRUGO, show_qmax_vfs, set_qmax_vfs); +#endif + +static struct attribute *pci_device_attrs[] = { + &dev_attr_qmax.attr, + &dev_attr_intr_rngsz.attr, + NULL, +}; + +static struct attribute *pci_master_device_attrs[] = { + &dev_attr_qmax.attr, + &dev_attr_intr_rngsz.attr, +#ifndef __QDMA_VF__ + &dev_attr_qmax_vfs.attr, + &dev_attr_buf_sz.attr, + &dev_attr_glbl_rng_sz.attr, + &dev_attr_c2h_timer_cnt.attr, + &dev_attr_c2h_cnt_th.attr, + &dev_attr_cmpl_status_acc.attr, +#endif + NULL, +}; + +static struct attribute_group pci_device_attr_group = { + .name = "qdma", + .attrs = pci_device_attrs, + +}; + +static struct attribute_group pci_master_device_attr_group = { + .name = "qdma", + .attrs = pci_master_device_attrs, + +}; + +static inline void xpdev_list_remove(struct xlnx_pci_dev *xpdev) +{ + mutex_lock(&xpdev_mutex); + list_del(&xpdev->list_head); + mutex_unlock(&xpdev_mutex); +} + +static inline void xpdev_list_add(struct xlnx_pci_dev *xpdev) +{ + mutex_lock(&xpdev_mutex); + list_add_tail(&xpdev->list_head, &xpdev_list); + mutex_unlock(&xpdev_mutex); +} + +int xpdev_list_dump(char *buf, int buflen) +{ + struct xlnx_pci_dev *xpdev, *tmp; + char *cur = buf; + char *const end = buf + buflen; + int base_end = 0; + int qmax_val = 0; + + if (!buf || !buflen) + return -EINVAL; + + mutex_lock(&xpdev_mutex); + list_for_each_entry_safe(xpdev, tmp, &xpdev_list, list_head) { + struct pci_dev *pdev; + struct qdma_dev_conf conf; + int rv; + + rv = qdma_device_get_config(xpdev->dev_hndl, &conf, NULL, 0); + if (rv < 0) { + cur += snprintf(cur, cur - end, + "ERR! unable to get device config for idx %05x\n", + xpdev->idx); + if (cur >= end) + goto handle_truncation; + break; + } + + pdev = conf.pdev; + + base_end = (int)(conf.qsets_base + conf.qsets_max - 1); + if (base_end < 0) + base_end = 0; +#ifdef __QDMA_VF__ + if ((conf.qsets_base == 0) + && (conf.qsets_max == 1) + && (conf.cur_cfg_state == QMAX_CFG_INITIAL)) + qmax_val = 0; + else + qmax_val = conf.qsets_max; +#else + qmax_val = conf.qsets_max; +#endif + + cur += snprintf(cur, end - cur, +#ifdef __QDMA_VF__ + "qdmavf%05x\t%s\tmax QP: %u, %u~%u\n", +#else + "qdma%05x\t%s\tmax QP: %u, %u~%u\n", +#endif + xpdev->idx, dev_name(&pdev->dev), + qmax_val, conf.qsets_base, + base_end); + if (cur >= end) + goto handle_truncation; + } + mutex_unlock(&xpdev_mutex); + + return cur - buf; + +handle_truncation: + mutex_unlock(&xpdev_mutex); + pr_warn("ERR! str truncated. req=%lu, avail=%u", cur - buf, buflen); + *buf = '\0'; + return cur - buf; +} + +static void xpdev_unmap_user_bypass_bars(struct xlnx_pci_dev *xpdev) +{ + if (xpdev->user_bar_regs) { + /* unmap BAR */ + pci_iounmap(xpdev->pdev, xpdev->user_bar_regs); + /* mark as unmapped */ + xpdev->user_bar_regs = NULL; + } + + if (xpdev->bypass_bar_regs) { + /* unmap BAR */ + pci_iounmap(xpdev->pdev, xpdev->bypass_bar_regs); + /* mark as unmapped */ + xpdev->bypass_bar_regs = NULL; + } + +} + +/*****************************************************************************/ +/** + * identify_config_bar() - Function to identify the config bar of the PCIE device + * + * @param[in] pdev: pcie device + * + * @return config bar + *****************************************************************************/ +static u8 identify_config_bar(struct pci_dev *pdev) +{ + int i = 0; + u8 bus_num = pdev->bus->number; +#ifndef __QDMA_VF__ + u8 dev_fn = PCI_FUNC(pdev->devfn); +#else + u16 device_id = pdev->device; +#endif +#ifndef __QDMA_VF__ + if (config_bar_cnt) { + for (i = 0; i < MAX_DMA_DEV; i++) { + if (((config_bar[i] & BUS_NUM_MASK) >> BUS_NUM_SHIFT) == bus_num) { + switch (dev_fn) { + case PF_DEVICE_0: + return ((config_bar[i] & PF_DEV_0_MASK) + >> PF_DEV_0_SHIFT); + case PF_DEVICE_1: + return ((config_bar[i] & PF_DEV_1_MASK) + >> PF_DEV_1_SHIFT); + case PF_DEVICE_2: + return ((config_bar[i] & PF_DEV_2_MASK) + >> PF_DEV_2_SHIFT); + case PF_DEVICE_3: + return ((config_bar[i] & PF_DEV_3_MASK) + >> PF_DEV_3_SHIFT); + } + } + } + } + + return QDMA_CONFIG_BAR; +#else + if (config_bar_cnt) { + for (i = 0; i < MAX_DMA_DEV; i++) { + if (((config_bar[i] & BUS_NUM_MASK) >> BUS_NUM_SHIFT) == bus_num) { + switch ((device_id >> VF_PF_IDENTIFIER_SHIFT) & + VF_PF_IDENTIFIER_MASK) { + case PF_DEVICE_0: + return ((config_bar[i] & PF_DEV_0_MASK) + >> PF_DEV_0_SHIFT); + case PF_DEVICE_1: + return ((config_bar[i] & PF_DEV_1_MASK) + >> PF_DEV_1_SHIFT); + case PF_DEVICE_2: + return ((config_bar[i] & PF_DEV_2_MASK) + >> PF_DEV_2_SHIFT); + case PF_DEVICE_3: + return ((config_bar[i] & PF_DEV_3_MASK) + >> PF_DEV_3_SHIFT); + } + } + } + } + + return QDMA_CONFIG_BAR; +#endif +} + +static int xpdev_map_user_bypass_bars(struct xlnx_pci_dev *xpdev) +{ + struct xlnx_dma_dev *xdev = NULL; + int map_len; + + if (!xpdev) + return -EINVAL; + + xdev = (struct xlnx_dma_dev *)(xpdev->dev_hndl); + + if (xdev->conf.bar_num_user < 0) { + pr_err("User and bypass bar is not present \n"); + return -EINVAL; + } + + map_len = pci_resource_len(xpdev->pdev, (int)xdev->conf.bar_num_user); + if (map_len > QDMA_MAX_BAR_LEN_MAPPED) + map_len = QDMA_MAX_BAR_LEN_MAPPED; + + xpdev->user_bar_regs = pci_iomap(xpdev->pdev, xdev->conf.bar_num_user, map_len); + if (!xpdev->user_bar_regs) { + pr_err("unable to map user bar %d.\n", xdev->conf.bar_num_user); + return -EINVAL; + } + + if (xdev->conf.bar_num_bypass >= 0) { + /* Mapping bypass bar */ + map_len = pci_resource_len(xpdev->pdev, (int)xdev->conf.bar_num_bypass); + if (map_len > QDMA_MAX_BAR_LEN_MAPPED) + map_len = QDMA_MAX_BAR_LEN_MAPPED; + + xpdev->bypass_bar_regs = pci_iomap(xpdev->pdev, xdev->conf.bar_num_bypass, map_len); + if (!xpdev->bypass_bar_regs) { + pr_err("unable to map bypass bar %d.\n", xdev->conf.bar_num_bypass); + return -EINVAL; + } + } + + return 0; +} + +struct xlnx_pci_dev *xpdev_find_by_idx(unsigned int idx, char *buf, int buflen) +{ + struct xlnx_pci_dev *xpdev, *tmp; + + mutex_lock(&xpdev_mutex); + list_for_each_entry_safe(xpdev, tmp, &xpdev_list, list_head) { + if (xpdev->idx == idx) { + mutex_unlock(&xpdev_mutex); + return xpdev; + } + } + mutex_unlock(&xpdev_mutex); + + if (buf && buflen) + snprintf(buf, buflen, "NO device found at index %05x!\n", idx); + + return NULL; +} + +struct xlnx_qdata *xpdev_queue_get(struct xlnx_pci_dev *xpdev, + unsigned int qidx, bool c2h, bool check_qhndl, + char *ebuf, int ebuflen) +{ + struct xlnx_qdata *qdata; + + if (qidx >= xpdev->qmax) { + pr_debug("qdma%05x QID %u too big, %05x.\n", + xpdev->idx, qidx, xpdev->qmax); + if (ebuf && ebuflen) { + snprintf(ebuf, ebuflen, "QID %u too big, %u.\n", + qidx, xpdev->qmax); + } + return NULL; + } + + qdata = xpdev->qdata + qidx; + if (c2h) + qdata += xpdev->qmax; + + if (check_qhndl && (!qdata->qhndl && !qdata->xcdev)) { + pr_debug("qdma%05x QID %u NOT configured.\n", xpdev->idx, qidx); + if (ebuf && ebuflen) { + snprintf(ebuf, ebuflen, "QID %u NOT configured.\n", qidx); + } + + return NULL; + } + + return qdata; +} + +int xpdev_queue_delete(struct xlnx_pci_dev *xpdev, unsigned int qidx, bool c2h, + char *ebuf, int ebuflen) +{ + struct xlnx_qdata *qdata = xpdev_queue_get(xpdev, qidx, c2h, 1, ebuf, + ebuflen); + int rv = 0; + + if (!qdata) + return -EINVAL; + + if(!qdata->xcdev) + return -EINVAL; + + spin_lock(&xpdev->cdev_lock); + qdata->xcdev->dir_init &= ~(1 << (c2h ? 1 : 0)); + if (qdata->xcdev && !qdata->xcdev->dir_init) + qdma_cdev_destroy(qdata->xcdev); + spin_unlock(&xpdev->cdev_lock); + + if (qdata->qhndl != QDMA_QUEUE_IDX_INVALID) + rv = qdma_queue_remove(xpdev->dev_hndl, qdata->qhndl, + ebuf, ebuflen); + else + pr_debug("qidx %u/%u, c2h %d, qhndl invalid.\n", + qidx, xpdev->qmax, c2h); + if (rv < 0) + goto exit; + + memset(qdata, 0, sizeof(*qdata)); +exit: + return rv; +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) +static void xpdev_queue_delete_all(struct xlnx_pci_dev *xpdev) +{ + int i; + + for (i = 0; i < xpdev->qmax; i++) { + xpdev_queue_delete(xpdev, i, 0, NULL, 0); + xpdev_queue_delete(xpdev, i, 1, NULL, 0); + } +} +#endif + +int xpdev_queue_add(struct xlnx_pci_dev *xpdev, struct qdma_queue_conf *qconf, + char *ebuf, int ebuflen) +{ + struct xlnx_qdata *qdata; + struct qdma_cdev *xcdev; + struct xlnx_qdata *qdata_tmp; + struct qdma_dev_conf dev_config; + u8 dir; + unsigned long qhndl; + int rv; + + rv = qdma_queue_add(xpdev->dev_hndl, qconf, &qhndl, ebuf, ebuflen); + if (rv < 0) + return rv; + + pr_debug("qdma%05x idx %u, st %d, c2h %d, added, qhndl 0x%lx.\n", + xpdev->idx, qconf->qidx, qconf->st, qconf->c2h, qhndl); + + qdata = xpdev_queue_get(xpdev, qconf->qidx, qconf->c2h, 0, ebuf, + ebuflen); + if (!qdata) { + pr_info("q added 0x%lx, get failed, idx 0x%x.\n", + qhndl, qconf->qidx); + return rv; + } + + dir = qconf->c2h ? 0 : 1; + spin_lock(&xpdev->cdev_lock); + qdata_tmp = xpdev_queue_get(xpdev, qconf->qidx, dir, 0, NULL, 0); + if (qdata_tmp) { + /* only 1 cdev per queue pair */ + if (qdata_tmp->xcdev) { + unsigned long *priv_data; + + qdata->qhndl = qhndl; + qdata->xcdev = qdata_tmp->xcdev; + priv_data = qconf->c2h ? &qdata->xcdev->c2h_qhndl : + &qdata->xcdev->h2c_qhndl; + *priv_data = qhndl; + qdata->xcdev->dir_init |= (1 << qconf->c2h); + + spin_unlock(&xpdev->cdev_lock); + return 0; + } + } + spin_unlock(&xpdev->cdev_lock); + + rv = qdma_device_get_config(xpdev->dev_hndl, &dev_config, NULL, 0); + if (rv < 0) { + pr_err("Failed to get conf for qdma device '%05x'\n", + xpdev->idx); + return rv; + } + + /* always create the cdev + * Give HW QID as minor number with qsets_base calculation */ + rv = qdma_cdev_create(&xpdev->cdev_cb, xpdev->pdev, qconf, + (dev_config.qsets_base + qconf->qidx), + qhndl, &xcdev, ebuf, ebuflen); + + qdata->qhndl = qhndl; + qdata->xcdev = xcdev; + + return rv; +} + +static void nl_work_handler_q_start(struct work_struct *work) +{ + struct xlnx_nl_work *nl_work = container_of(work, struct xlnx_nl_work, + work); + struct xlnx_pci_dev *xpdev = nl_work->xpdev; + struct xlnx_nl_work_q_ctrl *qctrl = &nl_work->qctrl; + char ebuf[XNL_EBUFLEN]; + unsigned int qidx = qctrl->qidx; + u8 is_qp = qctrl->is_qp; + u8 c2h = qctrl->is_c2h; + int i; + + for (i = 0; i < qctrl->qcnt; i++, qidx++) { + int rv; + struct xlnx_qdata *qdata; + +q_start: + qdata = xpdev_queue_get(xpdev, qidx, c2h, 1, ebuf, XNL_EBUFLEN); + if (!qdata) { + pr_info("%s, idx %u, c2h %u, get failed.\n", + dev_name(&xpdev->pdev->dev), qidx, c2h); + snprintf(ebuf, XNL_EBUFLEN, + "Q idx %u, c2h %u, get failed.\n", qidx, c2h); + goto send_resp; + } + + rv = qdma_queue_start(xpdev->dev_hndl, qdata->qhndl, ebuf, + XNL_EBUFLEN); + if (rv < 0) { + pr_info("%s, idx %u, c2h %u, start failed %d.\n", + dev_name(&xpdev->pdev->dev), qidx, c2h, rv); + snprintf(ebuf, XNL_EBUFLEN, + "Q idx %u, c2h %u, start failed %d.\n", + qidx, c2h, rv); + goto send_resp; + } + +#ifndef __QDMA_VF__ + { + struct xlnx_dma_dev *xdev = + (struct xlnx_dma_dev *)(xpdev->dev_hndl); + + if (xdev->stm_en) { + rv = qdma_queue_prog_stm(xpdev->dev_hndl, + qdata->qhndl, + ebuf, XNL_EBUFLEN); + if (rv < 0) { + pr_info("%s, idx %u, c2h %u, prog stm failed %d.\n", + dev_name(&xpdev->pdev->dev), + qidx, c2h, rv); + snprintf(ebuf, XNL_EBUFLEN, + "Q idx %u, c2h %u, prog stm failed %d.\n", + qidx, c2h, rv); + goto send_resp; + } + } + } +#endif + + if (is_qp && c2h == qctrl->is_c2h) { + c2h = !qctrl->is_c2h; + goto q_start; + } + + c2h = qctrl->is_c2h; + } + + snprintf(ebuf, XNL_EBUFLEN, + "%u Queues started, idx %u ~ %u.\n", + qctrl->qcnt, qctrl->qidx, qidx - 1); + +send_resp: + spin_lock(&nl_work->lock); + nl_work->q_start_handled = 1; + spin_unlock(&nl_work->lock); + xnl_respond_buffer(&nl_work->nl_info, ebuf, strlen(ebuf)); + wake_up_interruptible(&nl_work->wq); +} + +static struct xlnx_nl_work *xpdev_nl_work_alloc(struct xlnx_pci_dev *xpdev, + struct genl_info *nl_info) +{ + struct xlnx_nl_work *nl_work; + + /* allocate work struct */ + nl_work = kmalloc(sizeof(*nl_work), GFP_ATOMIC); + if (!nl_work) { + pr_info("qdma%05x %s: OOM.\n", + xpdev->idx, dev_name(&xpdev->pdev->dev)); + return NULL; + } + + memcpy(&nl_work->nl_info, nl_info, sizeof(*nl_info)); + nl_work->xpdev = xpdev; + + return nl_work; +} + +int xpdev_nl_queue_start(struct xlnx_pci_dev *xpdev, void *nl_info, u8 is_qp, + u8 is_c2h, unsigned short qidx, unsigned short qcnt) +{ + struct xlnx_nl_work *nl_work = xpdev_nl_work_alloc(xpdev, + (struct genl_info *)nl_info); + struct xlnx_nl_work_q_ctrl *qctrl = &nl_work->qctrl; + + if (!nl_work) + return -ENOMEM; + + qctrl->is_qp = is_qp; + qctrl->is_c2h = is_c2h; + qctrl->qidx = qidx; + qctrl->qcnt = qcnt; + + INIT_WORK(&nl_work->work, nl_work_handler_q_start); + init_waitqueue_head(&nl_work->wq); + spin_lock_init(&nl_work->lock); + nl_work->q_start_handled = 0; + spin_lock(&nl_work->lock); + queue_work(xpdev->nl_task_wq, &nl_work->work); + spin_unlock(&nl_work->lock); + wait_event_interruptible(nl_work->wq, nl_work->q_start_handled); + kfree(nl_work); + + return 0; +} + +static void xpdev_free(struct xlnx_pci_dev *p) +{ + xpdev_list_remove(p); + + if (p->nl_task_wq) + destroy_workqueue(p->nl_task_wq); + + if (((unsigned long)p) >= VMALLOC_START && + ((unsigned long)p) < VMALLOC_END) + vfree(p); + else + kfree(p); +} + +static struct xlnx_pci_dev *xpdev_alloc(struct pci_dev *pdev, unsigned int qmax) +{ + int sz = sizeof(struct xlnx_pci_dev) + + qmax * 2 * sizeof(struct xlnx_qdata); + struct xlnx_pci_dev *xpdev = kzalloc(sz, GFP_KERNEL); + char name[80]; + + if (!xpdev) { + xpdev = vmalloc(sz); + if (xpdev) + memset(xpdev, 0, sz); + } + + if (!xpdev) { + pr_info("OMM, qmax %u, sz %u.\n", qmax, sz); + return NULL; + } + spin_lock_init(&xpdev->cdev_lock); + xpdev->pdev = pdev; + xpdev->qmax = qmax; + xpdev->idx = 0xFF; + + snprintf(name, 80, "qdma_%s_nl_wq", dev_name(&pdev->dev)); + xpdev->nl_task_wq = create_singlethread_workqueue(name); + if (!xpdev->nl_task_wq) { + pr_info("%s OOM, nl_task_wq.\n", dev_name(&pdev->dev)); + goto free_xpdev; + } + + xpdev_list_add(xpdev); + return xpdev; + +free_xpdev: + xpdev_free(xpdev); + return NULL; +} + +/*****************************************************************************/ +/** + * qdma_device_read_user_register() - read user bar register + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] reg_addr: register address + * + * @return value of the user bar register + *****************************************************************************/ +unsigned int qdma_device_read_user_register(struct xlnx_pci_dev *xpdev, + unsigned int reg_addr) +{ + if (!xpdev) + return -EINVAL; + + return readl(xpdev->user_bar_regs + reg_addr); +} + +/*****************************************************************************/ +/** + * qdma_device_write_user_register() - write user bar register + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] reg_addr: register address + * @param[in] val: register value to be written + * + *****************************************************************************/ +void qdma_device_write_user_register(struct xlnx_pci_dev *xpdev, + unsigned int reg_addr, unsigned int val) +{ + if (!xpdev) + return; + + writel(val, xpdev->user_bar_regs + reg_addr); +} + +/*****************************************************************************/ +/** + * qdma_device_read_bypass_register() - read bypass bar register + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] reg_addr: register address + * + * @return value of the bypass bar register + *****************************************************************************/ +unsigned int qdma_device_read_bypass_register(struct xlnx_pci_dev *xpdev, + unsigned int reg_addr) +{ + if (!xpdev) + return -EINVAL; + + if (!xpdev->bypass_bar_regs) { + pr_err("bypass bar is not present\n"); + return -EINVAL; + } + + return readl(xpdev->bypass_bar_regs + reg_addr); +} + +/*****************************************************************************/ +/** + * qdma_device_write_bypass_register() - write bypass bar register + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] reg_addr: register address + * @param[in] val: register value to be written + * + *****************************************************************************/ +void qdma_device_write_bypass_register(struct xlnx_pci_dev *xpdev, + unsigned int reg_addr, unsigned int val) +{ + if (!xpdev) + return; + + if (!xpdev->bypass_bar_regs) { + pr_err("bypass bar is not present\n"); + return; + } + + writel(val, xpdev->bypass_bar_regs + reg_addr); +} + +static int probe_one(struct pci_dev *pdev, const struct pci_device_id *id) +{ + struct qdma_dev_conf conf; + struct xlnx_pci_dev *xpdev = NULL; + unsigned long dev_hndl; + int rv; + + pr_info("%s: func 0x%x/0x%x, p/v %d/%d,0x%p.\n", + dev_name(&pdev->dev), PCI_FUNC(pdev->devfn), QDMA_PF_MAX, + pdev->is_physfn, pdev->is_virtfn, pdev->physfn); + + memset(&conf, 0, sizeof(conf)); + conf.qdma_drv_mode = mode; + conf.vf_max = 0; /* enable via sysfs */ + +#ifdef __QDMA_VF__ + conf.qsets_max = TOTAL_QDMA_QS; +#else + conf.master_pf = is_master_pf(pdev); + if (conf.master_pf) + pr_info("Configuring '%02x:%02x:%x' as master pf\n", + pdev->bus->number, + PCI_SLOT(pdev->devfn), + PCI_FUNC(pdev->devfn)); +#endif /* #ifdef __QDMA_VF__ */ + pr_info("Driver is loaded in %s mode\n", + mode_name_list[conf.qdma_drv_mode].name); + conf.intr_rngsz = QDMA_INTR_COAL_RING_SIZE; + conf.tm_mode_en = tm_mode_en; + conf.tm_one_cdh_en = tm_one_cdh_en; + conf.pdev = pdev; + + /* initialize all the bar numbers with -1 */ + conf.bar_num_config = -1; + conf.bar_num_user = -1; + conf.bar_num_bypass = -1; + + conf.bar_num_config = identify_config_bar(pdev); + + rv = qdma_device_open(DRV_MODULE_NAME, &conf, &dev_hndl); + if (rv < 0) + return rv; + +#ifndef __QDMA_VF__ + conf.qsets_max = TOTAL_PF_QS; +#endif + + xpdev = xpdev_alloc(pdev, conf.qsets_max); + if (!xpdev) { + rv = -EINVAL; + goto close_device; + } + + xpdev->dev_hndl = dev_hndl; + xpdev->idx = conf.bdf; + + rv = xpdev_map_user_bypass_bars(xpdev); + if (rv < 0) + goto close_device; + + xpdev->cdev_cb.xpdev = xpdev; + rv = qdma_cdev_device_init(&xpdev->cdev_cb); + if (rv < 0) + goto close_device; + + /* Create the files for attributes in sysfs */ + if (conf.master_pf) { + rv = sysfs_create_group(&pdev->dev.kobj, &pci_master_device_attr_group); + if (rv < 0) + goto close_device; + } else { + rv = sysfs_create_group(&pdev->dev.kobj, &pci_device_attr_group); + if (rv < 0) + goto close_device; + } + + dev_set_drvdata(&pdev->dev, xpdev); + + return 0; + +close_device: + qdma_device_close(pdev, dev_hndl); + + if (xpdev) + xpdev_free(xpdev); + + return rv; +} + +static void xpdev_device_cleanup(struct xlnx_pci_dev *xpdev) +{ + struct xlnx_qdata *qdata = xpdev->qdata; + struct xlnx_qdata *qmax = qdata + (xpdev->qmax * 2); /* h2c and c2h */ + + spin_lock(&xpdev->cdev_lock); + for (; qdata != qmax; qdata++) { + if (qdata->xcdev) { + /* if either h2c(1) or c2h(2) bit set, but not both */ + if (qdata->xcdev->dir_init == 1 || + qdata->xcdev->dir_init == 2) { + qdma_cdev_destroy(qdata->xcdev); + } else { /* both bits are set so remove one */ + qdata->xcdev->dir_init >>= 1; + } + } + memset(qdata, 0, sizeof(*qdata)); + } + spin_unlock(&xpdev->cdev_lock); +} + +static void remove_one(struct pci_dev *pdev) +{ + struct xlnx_dma_dev *xdev = NULL; + struct xlnx_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); + if (!xpdev) { + pr_info("%s NOT attached.\n", dev_name(&pdev->dev)); + return; + } + + xdev = (struct xlnx_dma_dev *)(xpdev->dev_hndl); + + pr_info("%s pdev 0x%p, xdev 0x%p, hndl 0x%lx, qdma%05x.\n", + dev_name(&pdev->dev), pdev, xpdev, xpdev->dev_hndl, xpdev->idx); + + if (xdev->conf.master_pf) + sysfs_remove_group(&pdev->dev.kobj, &pci_master_device_attr_group); + else + sysfs_remove_group(&pdev->dev.kobj, &pci_device_attr_group); + + qdma_cdev_device_cleanup(&xpdev->cdev_cb); + + xpdev_device_cleanup(xpdev); + + xpdev_unmap_user_bypass_bars(xpdev); + + qdma_device_close(pdev, xpdev->dev_hndl); + + xpdev_free(xpdev); + + dev_set_drvdata(&pdev->dev, NULL); +} + +#if defined(CONFIG_PCI_IOV) && !defined(__QDMA_VF__) +static int sriov_config(struct pci_dev *pdev, int num_vfs) +{ + struct xlnx_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); + + if (!xpdev) { + pr_info("%s NOT attached.\n", dev_name(&pdev->dev)); + return -EINVAL; + } + + pr_debug("%s pdev 0x%p, xdev 0x%p, hndl 0x%lx, qdma%05x.\n", + dev_name(&pdev->dev), pdev, xpdev, xpdev->dev_hndl, xpdev->idx); + + if (num_vfs > QDMA_VF_MAX) { + pr_info("%s, clamp down # of VFs %d -> %d.\n", + dev_name(&pdev->dev), num_vfs, QDMA_VF_MAX); + num_vfs = QDMA_VF_MAX; + } + + return qdma_device_sriov_config(pdev, xpdev->dev_hndl, num_vfs); +} +#endif + +static pci_ers_result_t qdma_error_detected(struct pci_dev *pdev, + pci_channel_state_t state) +{ + struct xlnx_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); + + switch (state) { + case pci_channel_io_normal: + return PCI_ERS_RESULT_CAN_RECOVER; + case pci_channel_io_frozen: + pr_warn("dev 0x%p,0x%p, frozen state error, reset controller\n", + pdev, xpdev); + pci_disable_device(pdev); + return PCI_ERS_RESULT_NEED_RESET; + case pci_channel_io_perm_failure: + pr_warn("dev 0x%p,0x%p, failure state error, req. disconnect\n", + pdev, xpdev); + return PCI_ERS_RESULT_DISCONNECT; + } + return PCI_ERS_RESULT_NEED_RESET; +} + +static pci_ers_result_t qdma_slot_reset(struct pci_dev *pdev) +{ + struct xlnx_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); + + if (!xpdev) { + pr_info("%s NOT attached.\n", dev_name(&pdev->dev)); + return PCI_ERS_RESULT_DISCONNECT; + } + + pr_info("0x%p restart after slot reset\n", xpdev); + if (pci_enable_device_mem(pdev)) { + pr_info("0x%p failed to renable after slot reset\n", xpdev); + return PCI_ERS_RESULT_DISCONNECT; + } + + pci_set_master(pdev); + pci_restore_state(pdev); + pci_save_state(pdev); + + return PCI_ERS_RESULT_RECOVERED; +} + +static void qdma_error_resume(struct pci_dev *pdev) +{ + struct xlnx_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); + + if (!xpdev) { + pr_info("%s NOT attached.\n", dev_name(&pdev->dev)); + return; + } + + pr_info("dev 0x%p,0x%p.\n", pdev, xpdev); + pci_cleanup_aer_uncorrect_error_status(pdev); +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) +static void qdma_reset_prepare(struct pci_dev *pdev) +{ + struct qdma_version_info version_info; + struct xlnx_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); + + pr_info("%s pdev 0x%p, xdev 0x%p, hndl 0x%lx, qdma%05x.\n", + dev_name(&pdev->dev), pdev, xpdev, xpdev->dev_hndl, xpdev->idx); + + qdma_device_version_info(xpdev->dev_hndl, &version_info); + + qdma_device_offline(pdev, xpdev->dev_hndl); + + /* FLR setting is not required for 2018.3 IP */ + if (version_info.vivado_release_id != VIVADO_RELEASE_2018_3) + qdma_device_flr_quirk_set(pdev, xpdev->dev_hndl); + xpdev_queue_delete_all(xpdev); + if (version_info.vivado_release_id != VIVADO_RELEASE_2018_3) + qdma_device_flr_quirk_check(pdev, xpdev->dev_hndl); +} + +static void qdma_reset_done(struct pci_dev *pdev) +{ + struct xlnx_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); + + pr_info("%s pdev 0x%p, xdev 0x%p, hndl 0x%lx, qdma%05x.\n", + dev_name(&pdev->dev), pdev, xpdev, xpdev->dev_hndl, xpdev->idx); + qdma_device_online(pdev, xpdev->dev_hndl); +} + +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) +static void qdma_reset_notify(struct pci_dev *pdev, bool prepare) +{ + struct qdma_version_info version_info; + struct xlnx_pci_dev *xpdev = dev_get_drvdata(&pdev->dev); + + pr_info("%s prepare %d, pdev 0x%p, xdev 0x%p, hndl 0x%lx, qdma%05x.\n", + dev_name(&pdev->dev), prepare, pdev, xpdev, xpdev->dev_hndl, + xpdev->idx); + + qdma_device_version_info(xpdev->dev_hndl, &version_info); + + if (prepare) { + qdma_device_offline(pdev, xpdev->dev_hndl); + /* FLR setting is not required for 2018.3 IP */ + if (version_info.vivado_release_id != VIVADO_RELEASE_2018_3) + qdma_device_flr_quirk_set(pdev, xpdev->dev_hndl); + xpdev_queue_delete_all(xpdev); + if (version_info.vivado_release_id != VIVADO_RELEASE_2018_3) + qdma_device_flr_quirk_check(pdev, xpdev->dev_hndl); + } else + qdma_device_online(pdev, xpdev->dev_hndl); +} +#endif +static const struct pci_error_handlers qdma_err_handler = { + .error_detected = qdma_error_detected, + .slot_reset = qdma_slot_reset, + .resume = qdma_error_resume, +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 13, 0) + .reset_prepare = qdma_reset_prepare, + .reset_done = qdma_reset_done, +#elif LINUX_VERSION_CODE >= KERNEL_VERSION(3, 16, 0) + .reset_notify = qdma_reset_notify, +#endif +}; + +static struct pci_driver pci_driver = { + .name = DRV_MODULE_NAME, + .id_table = pci_ids, + .probe = probe_one, + .remove = remove_one, +/* .shutdown = shutdown_one, */ +#if defined(CONFIG_PCI_IOV) && !defined(__QDMA_VF__) + .sriov_configure = sriov_config, +#endif + .err_handler = &qdma_err_handler, +}; + +int xlnx_nl_init(void); +void xlnx_nl_exit(void); + +static int __init qdma_mod_init(void) +{ + int rv; + + pr_info("%s", version); +#ifdef __QDMA_VF__ + if (mode == LEGACY_INTR_MODE) { + pr_err("Legacy interrupt not supported\n"); + return -EINVAL; + } +#endif + rv = libqdma_init(mode, num_threads); + if (rv < 0) + return rv; + + rv = xdev_qconf_init(); + if (rv < 0) + return rv; + + rv = xlnx_nl_init(); + if (rv < 0) + return rv; + + rv = qdma_cdev_init(); + if (rv < 0) + return rv; + + return pci_register_driver(&pci_driver); +} + +static void __exit qdma_mod_exit(void) +{ + /* unregister this driver from the PCI bus driver */ + pci_unregister_driver(&pci_driver); + + xlnx_nl_exit(); + + qdma_cdev_cleanup(); + + xdev_qconf_cleanup(); + + libqdma_exit(); +} + +module_init(qdma_mod_init); +module_exit(qdma_mod_exit); diff --git a/QDMA/linux-kernel/drv/qdma_mod.h b/QDMA/linux-kernel/drv/qdma_mod.h new file mode 100644 index 0000000..11a4623 --- /dev/null +++ b/QDMA/linux-kernel/drv/qdma_mod.h @@ -0,0 +1,215 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __QDMA_MODULE_H__ +#define __QDMA_MODULE_H__ +/** + * @file + * @brief This file contains the declarations for qdma pcie kernel module + * + */ +#include <linux/types.h> +#include <linux/pci.h> +#include <linux/workqueue.h> +#include <net/genetlink.h> + +#include "libqdma/libqdma_export.h" +#include "libqdma/xdev.h" +#include "cdev.h" + +/** + * @struct - xlnx_qdata + * @brief queue data variables send while read/write request + */ +struct xlnx_qdata { + unsigned long qhndl; /**< Queue handle */ + struct qdma_cdev *xcdev; /**< qdma character device details */ +}; + +#define XNL_EBUFLEN 256 +struct xlnx_nl_work_q_ctrl { + unsigned short qidx; + unsigned short qcnt; + u8 is_qp:1; + u8 is_c2h:1; +}; + +struct xlnx_nl_work { + struct work_struct work; + struct genl_info nl_info; + struct xlnx_pci_dev *xpdev; + wait_queue_head_t wq; + spinlock_t lock; + unsigned int q_start_handled; + union { + struct xlnx_nl_work_q_ctrl qctrl; + }; +}; + +/** + * @struct - xlnx_pci_dev + * @brief xilinx pcie device data members + */ +struct xlnx_pci_dev { + struct list_head list_head; /**< device list */ + struct pci_dev *pdev; /**< pointer to struct pci_dev */ + unsigned long dev_hndl; /**< device handle*/ + struct workqueue_struct *nl_task_wq; /**< netlink request work queue */ + struct qdma_cdev_cb cdev_cb; /**< character device call back data*/ + spinlock_t cdev_lock; /**< character device lock*/ + unsigned int qmax; /**< max number of queues for device*/ + unsigned int idx; /**< device index*/ + void __iomem *user_bar_regs; /**< PCIe user bar */ + void __iomem *bypass_bar_regs; /**< PCIe bypass bar */ + struct xlnx_qdata qdata[0]; /**< queue data*/ +}; + +/*****************************************************************************/ +/** + * xpdev_list_dump() - list the qdma devices + * + * @param[in] buflen: buffer length + * @param[out] buf: + * error message buffer, can be NULL/0 (i.e., optional) + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xpdev_list_dump(char *buf, int buflen); + +/*****************************************************************************/ +/** + * xpdev_find_by_idx() - qdma pcie kernel module api to + * find the qdma device by index + * + * @param[in] idx: qdma device index + * @param[in] ebuflen: buffer length + * @param[out] ebuf: + * error message buffer, can be NULL/0 (i.e., optional) + * + * @return 0: pointer to xlnx_pci_dev + * @return NULL: failure + *****************************************************************************/ +struct xlnx_pci_dev *xpdev_find_by_idx(unsigned int idx, char *ebuf, + int ebuflen); + +/*****************************************************************************/ +/** + * xpdev_queue_get() - qdma pcie kernel module api to get a queue information + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] qidx: queue index + * @param[in] c2h: flag to indicate the queue direction (c2h/h2c) + * @param[in] check_qhndl: flag for validating the data + * @param[in] ebuflen: buffer length + * @param[out] ebuf: + * error message buffer, can be NULL/0 (i.e., optional) + * + * @return 0: queue information + * @return NULL: failure + *****************************************************************************/ +struct xlnx_qdata *xpdev_queue_get(struct xlnx_pci_dev *xpdev, + unsigned int qidx, bool c2h, bool check_qhndl, + char *ebuf, int ebuflen); + +/*****************************************************************************/ +/** + * xpdev_queue_add() - qdma pcie kernel module api to add a queue + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] qconf: queue configuration + * @param[in] ebuflen: buffer length + * @param[out] ebuf: + * error message buffer, can be NULL/0 (i.e., optional) + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xpdev_queue_add(struct xlnx_pci_dev *xpdev, struct qdma_queue_conf *qconf, + char *ebuf, int ebuflen); + +/*****************************************************************************/ +/** + * xpdev_queue_delete() - qdma pcie kernel module api to delete a queue + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] qidx: queue index + * @param[in] c2h: flag to indicate the queue direction (c2h/h2c) + * @param[in] ebuflen: buffer length + * @param[out] ebuf: + * error message buffer, can be NULL/0 (i.e., optional) + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xpdev_queue_delete(struct xlnx_pci_dev *xpdev, unsigned int qidx, bool c2h, + char *ebuf, int ebuflen); + +int xpdev_nl_queue_start(struct xlnx_pci_dev *xpdev, void *nl_info, u8 is_qp, + u8 is_c2h, unsigned short qidx, unsigned short qcnt); + +/*****************************************************************************/ +/** + * qdma_device_read_user_register() - read user bar register + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] reg_addr: register address + * + * @return value of the user bar register + *****************************************************************************/ +unsigned int qdma_device_read_user_register(struct xlnx_pci_dev *xpdev, + unsigned int reg_addr); + +/*****************************************************************************/ +/** + * qdma_device_write_user_register() - write user bar register + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] reg_addr: register address + * @param[in] value: register value to be written + * + *****************************************************************************/ +void qdma_device_write_user_register(struct xlnx_pci_dev *xpdev, + unsigned int reg_addr, u32 value); + +/*****************************************************************************/ +/** + * qdma_device_read_bypass_register() - read bypass bar register + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] reg_addr: register address + * + * @return value of the bypass bar register + *****************************************************************************/ +unsigned int qdma_device_read_bypass_register(struct xlnx_pci_dev *xpdev, + unsigned int reg_addr); + +/*****************************************************************************/ +/** + * qdma_device_write_bypass_register() - write bypass bar register + * + * @param[in] xpdev: pointer to xlnx_pci_dev + * @param[in] reg_addr: register address + * @param[in] value: register value to be written + * + *****************************************************************************/ +void qdma_device_write_bypass_register(struct xlnx_pci_dev *xpdev, + unsigned int reg_addr, u32 value); + +#endif /* ifndef __QDMA_MODULE_H__ */ diff --git a/QDMA/linux-kernel/drv/version.h b/QDMA/linux-kernel/drv/version.h new file mode 100644 index 0000000..15dad71 --- /dev/null +++ b/QDMA/linux-kernel/drv/version.h @@ -0,0 +1,40 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef __QDMA_VERSION_H__ +#define __QDMA_VERSION_H__ + +#include "libqdma/version.h" + +#ifdef __QDMA_VF__ +#define DRV_MODULE_NAME "qdma_vf" +#define DRV_MODULE_DESC "Xilinx QDMA VF Reference Driver" +#else +#define DRV_MODULE_NAME "qdma_pf" +#define DRV_MODULE_DESC "Xilinx QDMA PF Reference Driver" +#endif /* #ifdef __QDMA_VF__ */ +#define DRV_MODULE_RELDATE "Sep. 2018" + +#define DRV_MOD_MAJOR 2018 +#define DRV_MOD_MINOR 3 +#define DRV_MOD_PATCHLEVEL 97 + +#define DRV_MODULE_VERSION \ + __stringify(DRV_MOD_MAJOR) "." \ + __stringify(DRV_MOD_MINOR) "." \ + __stringify(DRV_MOD_PATCHLEVEL) "." \ + __stringify(LIBQDMA_VERSION_PATCH) "." \ + +#define DRV_MOD_VERSION_NUMBER \ + ((DRV_MOD_MAJOR)*1000 + (DRV_MOD_MINOR)*100 + DRV_MOD_PATCHLEVEL) + +#endif /* ifndef __QDMA_VERSION_H__ */ diff --git a/QDMA/linux-kernel/etc/30-qdma.rules b/QDMA/linux-kernel/etc/30-qdma.rules new file mode 100644 index 0000000..f1cb736 --- /dev/null +++ b/QDMA/linux-kernel/etc/30-qdma.rules @@ -0,0 +1,3 @@ +KERNEL=="qdma[0-4]-MM-[0-9]*", MODE="0666" +KERNEL=="qdma[0-4]-ST-[0-9]*", MODE="0666" + diff --git a/QDMA/linux-kernel/include/qdma_nl.h b/QDMA/linux-kernel/include/qdma_nl.h new file mode 100644 index 0000000..748d7be --- /dev/null +++ b/QDMA/linux-kernel/include/qdma_nl.h @@ -0,0 +1,406 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef QDMA_NL_H__ +#define QDMA_NL_H__ +/** + * @file + * @brief This file contains the declarations for qdma netlink interfaces + * + */ +/** physical function name (no more than 15 characters) */ +#define XNL_NAME_PF "xnl_pf" +/** virtual function name */ +#define XNL_NAME_VF "xnl_vf" +/** qdma netlink interface version number */ +#define XNL_VERSION 0x1 + +/** qdma nl interface minimum response buffer length*/ +#define XNL_RESP_BUFLEN_MIN 256 +/** qdma nl interface maximum response buffer length*/ +#define XNL_RESP_BUFLEN_MAX (2048 * 6) +/** qdma nl interface error buffer length*/ +#define XNL_ERR_BUFLEN 64 +/** qdma nl command parameter length*/ +#define XNL_STR_LEN_MAX 20 + +/** Q parameter: value to indicate invalid qid*/ +#define XNL_QIDX_INVALID 0xFFFF +/** Q parameter: streaming mode*/ +#define XNL_F_QMODE_ST 0x00000001 +/** Q parameter: memory management mode*/ +#define XNL_F_QMODE_MM 0x00000002 +/** Q parameter: queue in h2c direction*/ +#define XNL_F_QDIR_H2C 0x00000004 +/** Q parameter: queue in c2h direction*/ +#define XNL_F_QDIR_C2H 0x00000008 +/** Q parameter: queue in both directions*/ +#define XNL_F_QDIR_BOTH (XNL_F_QDIR_H2C | XNL_F_QDIR_C2H) +/** Q parameter: queue in prefetch mode*/ +#define XNL_F_PFETCH_EN 0x00000010 +/** Q parameter: enable the bypass for the queue*/ +#define XNL_F_DESC_BYPASS_EN 0x00000020 +/** Q parameter: fetch credits*/ +#define XNL_F_FETCH_CREDIT 0x00000040 +/** Q parameter: enable writeback accumulation*/ +#define XNL_F_CMPL_STATUS_ACC_EN 0x00000080 +/** Q parameter: enable writeback*/ +#define XNL_F_CMPL_STATUS_EN 0x00000100 +/** Q parameter: enable writeback pending check*/ +#define XNL_F_CMPL_STATUS_PEND_CHK 0x00000200 +/** Q parameter: enable writeback status descriptor*/ +#define XNL_F_CMPL_STATUS_DESC_EN 0x00000400 +/** Q parameter: enable queue completion interrupt*/ +#define XNL_F_C2H_CMPL_INTR_EN 0x00000800 +/** Q parameter: enable user defined data*/ +#define XNL_F_CMPL_UDD_EN 0x00001000 +/** Q parameter: enable the pfetch bypass for the queue */ +#define XNL_F_PFETCH_BYPASS_EN 0x00002000 +/** Q parameter: disable CMPT overflow check */ +#define XNL_F_CMPT_OVF_CHK_DIS 0x00004000 + +/** maximum number of queue flags to control queue configuration*/ +#define MAX_QFLAGS 15 + +/** maximum number of interrupt ring entries*/ +#define QDMA_MAX_INT_RING_ENTRIES 512 + +/** + * xnl_attr_t netlink attributes for qdma(variables): + * the index in this enum is used as a reference for the type, + * userspace application has to indicate the corresponding type + * the policy is used for security considerations + */ +enum xnl_attr_t { + XNL_ATTR_GENMSG, /**< generatl message */ + XNL_ATTR_DRV_INFO, /**< device info */ + + XNL_ATTR_DEV_IDX, /**< device index */ + XNL_ATTR_PCI_BUS, /**< pci bus number */ + XNL_ATTR_PCI_DEV, /**< pci device number */ + XNL_ATTR_PCI_FUNC, /**< pci function id */ + + XNL_ATTR_DEV_STAT_MMH2C_PKTS1, /**< number of MM H2C packkts */ + XNL_ATTR_DEV_STAT_MMH2C_PKTS2, /**< number of MM H2C packkts */ + XNL_ATTR_DEV_STAT_MMC2H_PKTS1, /**< number of MM C2H packkts */ + XNL_ATTR_DEV_STAT_MMC2H_PKTS2, /**< number of MM C2H packkts */ + XNL_ATTR_DEV_STAT_STH2C_PKTS1, /**< number of ST H2C packkts */ + XNL_ATTR_DEV_STAT_STH2C_PKTS2, /**< number of ST H2C packkts */ + XNL_ATTR_DEV_STAT_STC2H_PKTS1, /**< number of ST C2H packkts */ + XNL_ATTR_DEV_STAT_STC2H_PKTS2, /**< number of ST C2H packkts */ + + XNL_ATTR_DEV_CFG_BAR, /**< device config bar number */ + XNL_ATTR_DEV_USR_BAR, /**< device user bar number */ + XNL_ATTR_DEV_QSET_MAX, /**< max queue sets */ + XNL_ATTR_DEV_QSET_QBASE, /**< queue base start */ + + XNL_ATTR_REG_BAR_NUM, /**< register bar number */ + XNL_ATTR_REG_ADDR, /**< register address */ + XNL_ATTR_REG_VAL, /**< register value */ + + XNL_ATTR_QIDX, /**< queue index */ + XNL_ATTR_NUM_Q, /**< number of queues */ + XNL_ATTR_QFLAG, /**< queue config flags */ + + XNL_ATTR_CMPT_DESC_SIZE, /**< completion descriptor size */ + XNL_ATTR_SW_DESC_SIZE, /**< software descriptor size */ + XNL_ATTR_QRNGSZ_IDX, /**< queue ring index */ + XNL_ATTR_C2H_BUFSZ_IDX, /**< c2h buffer idex */ + XNL_ATTR_CMPT_TIMER_IDX, /**< completion timer index */ + XNL_ATTR_CMPT_CNTR_IDX, /**< completion counter index */ + XNL_ATTR_CMPT_TRIG_MODE, /**< completion trigger mode */ + + XNL_ATTR_RANGE_START, /**< range start */ + XNL_ATTR_RANGE_END, /**< range end */ + + XNL_ATTR_INTR_VECTOR_IDX, /**< interrupt vector index */ + XNL_ATTR_INTR_VECTOR_START_IDX, /**< interrupt vector start index */ + XNL_ATTR_INTR_VECTOR_END_IDX, /**< interrupt vector end index */ + XNL_ATTR_RSP_BUF_LEN, /**< response buffer length */ + XNL_ATTR_GLOBAL_CSR, /**< global csr data */ + XNL_ATTR_PIPE_GL_MAX, /**< max no. of gl for pipe */ + XNL_ATTR_PIPE_FLOW_ID, /**< pipe flow id */ + XNL_ATTR_PIPE_SLR_ID, /**< pipe slr id */ + XNL_ATTR_PIPE_TDEST, /**< pipe tdest */ + XNL_ATTR_DEV_STM_BAR, /**< device STM bar number */ +#ifdef ERR_DEBUG + XNL_ATTR_QPARAM_ERR_INFO, /**< queue param info */ +#endif + XNL_ATTR_MAX, +}; + +/** + * xnl_st_c2h_cmpt_desc_size + * c2h writeback descriptor sizes + */ +enum xnl_st_c2h_cmpt_desc_size { + XNL_ST_C2H_CMPT_DESC_SIZE_8B, /**< 8B descriptor */ + XNL_ST_C2H_CMPT_DESC_SIZE_16B, /**< 16B descriptor */ + XNL_ST_C2H_CMPT_DESC_SIZE_32B, /**< 32B descriptor */ + XNL_ST_C2H_CMPT_DESC_SIZE_64B, /**< 64B descriptor */ + XNL_ST_C2H_NUM_CMPT_DESC_SIZES /**< Num of desc sizes */ +}; + +enum xnl_qdma_rngsz_idx { + XNL_QDMA_RNGSZ_64_IDX, + XNL_QDMA_RNGSZ_128_IDX, + XNL_QDMA_RNGSZ_256_IDX, + XNL_QDMA_RNGSZ_512_IDX, + XNL_QDMA_RNGSZ_1024_IDX, + XNL_QDMA_RNGSZ_2048_IDX, + XNL_QDMA_RNGSZ_4096_IDX, + XNL_QDMA_RNGSZ_8192_IDX, + XNL_QDMA_RNGSZ_16384_IDX, + XNL_QDMA_RNGSZ_32768_IDX, + XNL_QDMA_RNGSZ_65536_IDX, + XNL_QDMA_RNGSZ_131072_IDX, + XNL_QDMA_RNGSZ_262177_IDX, + XNL_QDMA_RNGSZ_524288_IDX, + XNL_QDMA_RNGSZ_1048576_IDX, + XNL_QDMA_RNGSZ_2097152_IDX, + XNL_QDMA_RNGSZ_IDXS +}; + +/** XNL attributes list */ +static const char *xnl_attr_str[XNL_ATTR_MAX] = { + "GENMSG", /**< XNL_ATTR_GENMSG */ + "DRV_INFO", /**< XNL_ATTR_DRV_INFO */ + + "DEV_IDX", /**< XNL_ATTR_DEV_IDX */ + + "DEV_PCIBUS", /**< XNL_ATTR_PCI_BUS */ + "DEV_PCIDEV", /**< XNL_ATTR_PCI_DEV */ + "DEV_PCIFUNC", /**< XNL_ATTR_PCI_FUNC */ + + "DEV_CFG_BAR", /**< XNL_ATTR_DEV_CFG_BAR */ + "DEV_USR_BAR", /**< XNL_ATTR_DEV_USER_BAR */ + "DEV_QSETMAX", /**< XNL_ATTR_DEV_QSET_MAX */ + "DEV_QBASE", /**< XNL_ATTR_DEV_QSET_QBASE */ + + "REG_BAR", /**< XNL_ATTR_REG_BAR_NUM */ + "REG_ADDR", /**< XNL_ATTR_REG_ADDR */ + "REG_VAL", /**< XNL_ATTR_REG_VAL */ + + "QIDX", /**< XNL_ATTR_QIDX */ + "NUM_Q", /**< XNL_ATTR_NUM_Q */ + "QFLAG", /**< XNL_ATTR_QFLAG */ + + "CMPT_DESC_SZ", /**< XNL_ATTR_CMPT_DESC_SIZE */ + "SW_DESC_SIZE", /**< XNL_ATTR_SW_DESC_SIZE */ + "QRINGSZ_IDX", /**< XNL_ATTR_QRNGSZ */ + "C2H_BUFSZ_IDX", /**< XNL_ATTR_QBUFSZ */ + "CMPT_TIMER_IDX", /**< XNL_ATTR_CMPT_TIMER_IDX */ + "CMPT_CNTR_IDX", /**< XNL_ATTR_CMPT_CNTR_IDX */ + "CMPT_TRIG_MODE", /**< XNL_ATTR_CMPT_TRIG_MODE */ + + "RANGE_START", /**< XNL_ATTR_RANGE_START */ + "RANGE_END", /**< XNL_ATTR_RANGE_END */ + "INTR_VECTOR_IDX", /**< XNL_ATTR_INTR_VECTOR_IDX */ + "INTR_VECTOR_START_IDX", /**< XNL_ATTR_INTR_VECTOR_START_IDX */ + "INTR_VECTOR_END_IDX", /**< XNL_ATTR_INTR_VECTOR_END_IDX */ + "RSP_BUF_LEN", /**< XNL_ATTR_RSP_BUF_LEN */ + "GLOBAL_CSR", /**< global csr data */ +#ifdef ERR_DEBUG + "QPARAM_ERR_INFO", +#endif + +}; + +/* commands, 0 ~ 0x7F */ +/** + * xnl_op_t - XNL command types + */ +enum xnl_op_t { + XNL_CMD_DEV_LIST, /**< list all the qdma devices */ + XNL_CMD_DEV_INFO, /**< dump the device information */ + XNL_CMD_DEV_STAT, /**< dump the device statistics */ + XNL_CMD_DEV_STAT_CLEAR, /**< reset the device statistics */ + + XNL_CMD_REG_DUMP, /**< dump the register information */ + XNL_CMD_REG_RD, /**< read a register value */ + XNL_CMD_REG_WRT, /**< write value to a register */ + + XNL_CMD_Q_LIST, /**< list all the queue present in the system */ + XNL_CMD_Q_ADD, /**< add a queue */ + XNL_CMD_Q_START, /**< start a queue */ + XNL_CMD_Q_STOP, /**< stop a queue */ + XNL_CMD_Q_DEL, /**< delete a queue */ + XNL_CMD_Q_DUMP, /**< dump queue information*/ + XNL_CMD_Q_DESC, /**< dump descriptor information*/ + XNL_CMD_Q_CMPT, /**< dump writeback descriptor information*/ + XNL_CMD_Q_RX_PKT, /**< dump packet information*/ +#ifdef ERR_DEBUG + XNL_CMD_Q_ERR_INDUCE, /**< induce an error*/ +#endif + + XNL_CMD_INTR_RING_DUMP, /**< dump interrupt ring information*/ + XNL_CMD_Q_UDD, /**< dump the user defined data */ + XNL_CMD_GLOBAL_CSR, /**< get all global csr register values */ + XNL_CMD_VERSION, /**< list RTL version and Vivado release ID */ + XNL_CMD_MAX, /**< max number of XNL commands*/ +}; + +/** + * XNL command operation type + */ +static const char *xnl_op_str[XNL_CMD_MAX] = { + "DEV_LIST", /** XNL_CMD_DEV_LIST */ + "DEV_INFO", /** XNL_CMD_DEV_INFO */ + "DEV_STAT", /** XNL_CMD_DEV_STAT */ + "DEV_STAT_CLEAR", /** XNL_CMD_DEV_STAT_CLEAR */ + + "REG_DUMP", /** XNL_CMD_REG_DUMP */ + "REG_READ", /** XNL_CMD_REG_RD */ + "REG_WRITE", /** XNL_CMD_REG_WRT */ + + "Q_LIST", /** XNL_CMD_Q_LIST */ + "Q_ADD", /** XNL_CMD_Q_ADD */ + "Q_START", /** XNL_CMD_Q_START */ + "Q_STOP", /** XNL_CMD_Q_STOP */ + "Q_DEL", /** XNL_CMD_Q_DEL */ + "Q_DUMP", /** XNL_CMD_Q_DUMP */ + "Q_DESC", /** XNL_CMD_Q_DESC */ + "Q_CMPT", /** XNL_CMD_Q_CMPT */ + "Q_RX_PKT", /** XNL_CMD_Q_RX_PKT */ + + "INTR_RING_DUMP", /** XNL_CMD_INTR_RING_DUMP */ +#ifdef ERR_DEBUG + "Q_ERR_INDUCE" /** XNL_CMD_Q_ERR_INDUCE */ +#endif +}; + +/** + * qdma_err_idx - Induce error + */ +enum qdma_err_idx { + err_ram_sbe, + err_ram_dbe, + err_dsc, + err_trq, + err_h2c_mm_0, + err_h2c_mm_1, + err_c2h_mm_0, + err_c2h_mm_1, + err_c2h_st, + ind_ctxt_cmd_err, + err_bdg, + err_h2c_st, + poison, + ur_ca, + param, + addr, + tag, + flr, + timeout, + dat_poison, + flr_cancel, + dma, + dsc, + rq_cancel, + dbe, + sbe, + unmapped, + qid_range, + vf_access_err, + tcp_timeout, + mty_mismatch, + len_mismatch, + qid_mismatch, + desc_rsp_err, + eng_wpl_data_par_err, + msi_int_fail, + err_desc_cnt, + portid_ctxt_mismatch, + portid_byp_in_mismatch, + cmpt_inv_q_err, + cmpt_qfull_err, + cmpt_cidx_err, + cmpt_prty_err, + fatal_mty_mismatch, + fatal_len_mismatch, + fatal_qid_mismatch, + timer_fifo_ram_rdbe, + fatal_eng_wpl_data_par_err, + pfch_II_ram_rdbe, + cmpt_ctxt_ram_rdbe, + pfch_ctxt_ram_rdbe, + desc_req_fifo_ram_rdbe, + int_ctxt_ram_rdbe, + cmpt_coal_data_ram_rdbe, + tuser_fifo_ram_rdbe, + qid_fifo_ram_rdbe, + payload_fifo_ram_rdbe, + wpl_data_par_err, + zero_len_desc_err, + csi_mop_err, + no_dma_dsc_err, + sb_mi_h2c0_dat, + sb_mi_c2h0_dat, + sb_h2c_rd_brg_dat, + sb_h2c_wr_brg_dat, + sb_c2h_rd_brg_dat, + sb_c2h_wr_brg_dat, + sb_func_map, + sb_dsc_hw_ctxt, + sb_dsc_crd_rcv, + sb_dsc_sw_ctxt, + sb_dsc_cpli, + sb_dsc_cpld, + sb_pasid_ctxt_ram, + sb_timer_fifo_ram, + sb_payload_fifo_ram, + sb_qid_fifo_ram, + sb_tuser_fifo_ram, + sb_wrb_coal_data_ram, + sb_int_qid2vec_ram, + sb_int_ctxt_ram, + sb_desc_req_fifo_ram, + sb_pfch_ctxt_ram, + sb_wrb_ctxt_ram, + sb_pfch_ll_ram, + sb_h2c_pend_fifo, + db_mi_h2c0_dat, + db_mi_c2h0_dat, + db_h2c_rd_brg_dat, + db_h2c_wr_brg_dat, + db_c2h_rd_brg_dat, + db_c2h_wr_brg_dat, + db_func_map, + db_dsc_hw_ctxt, + db_dsc_crd_rcv, + db_dsc_sw_ctxt, + db_dsc_cpli, + db_dsc_cpld, + db_pasid_ctxt_ram, + db_timer_fifo_ram, + db_payload_fifo_ram, + db_qid_fifo_ram, + db_tuser_fifo_ram, + db_wrb_coal_data_ram, + db_int_qid2vec_ram, + db_int_ctxt_ram, + db_desc_req_fifo_ram, + db_pfch_ctxt_ram, + db_wrb_ctxt_ram, + db_pfch_ll_ram, + db_h2c_pend_fifo, + qdma_errs +}; + +#endif /* ifndef QDMA_NL_H__ */ diff --git a/QDMA/linux-kernel/include/xdev_regs.h b/QDMA/linux-kernel/include/xdev_regs.h new file mode 100644 index 0000000..26776dc --- /dev/null +++ b/QDMA/linux-kernel/include/xdev_regs.h @@ -0,0 +1,240 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef __XDEV_REGS_H__ +#define __XDEV_REGS_H__ + +struct xreg_info { + const char name[32]; + uint32_t addr; + unsigned int repeat; + unsigned int step; + unsigned char shift; + unsigned char len; + unsigned char filler[2]; +}; + +static struct xreg_info qdma_config_regs[] = { + + /* QDMA_TRQ_SEL_GLBL1 (0x00000) */ + {"CFG_BLOCK_ID", 0x00, 0, 0, 0, 0,}, + {"CFG_BUSDEV", 0x04, 0, 0, 0, 0,}, + {"CFG_PCIE_MAX_PL_SZ", 0x08, 0, 0, 0, 0,}, + {"CFG_PCIE_MAX_RDRQ_SZ", 0x0C, 0, 0, 0, 0,}, + {"CFG_SYS_ID", 0x10, 0, 0, 0, 0,}, + {"CFG_MSI_EN", 0x14, 0, 0, 0, 0,}, + {"CFG_PCIE_DATA_WIDTH", 0x18, 0, 0, 0, 0,}, + {"CFG_PCIE_CTRL", 0x1C, 0, 0, 0, 0,}, + {"CFG_AXI_USR_MAX_PL_SZ", 0x40, 0, 0, 0, 0,}, + {"CFG_AXI_USR_MAX_RDRQ_SZ", 0x44, 0, 0, 0, 0,}, + {"CFG_MISC_CTRL", 0x4C, 0, 0, 0, 0,}, + {"CFG_SCRATCH_REG", 0x80, 8, 0, 0, 0,}, + {"QDMA_RAM_SBE_MSK_A", 0xF0, 0, 0, 0, 0,}, + {"QDMA_RAM_SBE_STS_A", 0xF4, 0, 0, 0, 0,}, + {"QDMA_RAM_DBE_MSK_A", 0xF8, 0, 0, 0, 0,}, + {"QDMA_RAM_DBE_STS_A", 0xFC, 0, 0, 0, 0,}, + + /* QDMA_TRQ_SEL_GLBL2 (0x00100) */ + {"GLBL2_ID", 0x100, 0, 0, 0, 0,}, + {"GLBL2_PF_BL_INT", 0x104, 0, 0, 0, 0,}, + {"GLBL2_PF_VF_BL_INT", 0x108, 0, 0, 0, 0,}, + {"GLBL2_PF_BL_EXT", 0x10C, 0, 0, 0, 0,}, + {"GLBL2_PF_VF_BL_EXT", 0x110, 0, 0, 0, 0,}, + {"GLBL2_CHNL_INST", 0x114, 0, 0, 0, 0,}, + {"GLBL2_CHNL_QDMA", 0x118, 0, 0, 0, 0,}, + {"GLBL2_CHNL_STRM", 0x11C, 0, 0, 0, 0,}, + {"GLBL2_QDMA_CAP", 0x120, 0, 0, 0, 0,}, + {"GLBL2_PASID_CAP", 0x128, 0, 0, 0, 0,}, + {"GLBL2_FUNC_RET", 0x12C, 0, 0, 0, 0,}, + {"GLBL2_SYS_ID", 0x130, 0, 0, 0, 0,}, + {"GLBL2_MISC_CAP", 0x134, 0, 0, 0, 0,}, + {"GLBL2_DBG_PCIE_RQ", 0x1B8, 2, 0, 0, 0,}, + {"GLBL2_DBG_AXIMM_WR", 0x1C0, 2, 0, 0, 0,}, + {"GLBL2_DBG_AXIMM_RD", 0x1C8, 2, 0, 0, 0,}, + + /* QDMA_TRQ_SEL_GLBL (0x00200) */ + {"GLBL_RNGSZ", 0x204, 16, 0, 0, 0,}, + {"GLBL_ERR_STAT", 0x248, 0, 0, 0, 0,}, + {"GLBL_ERR_MASK", 0x24C, 0, 0, 0, 0,}, + {"GLBL_DSC_CFG", 0x250, 0, 0, 0, 0,}, + {"GLBL_DSC_ERR_STS", 0x254, 0, 0, 0, 0,}, + {"GLBL_DSC_ERR_MSK", 0x258, 0, 0, 0, 0,}, + {"GLBL_DSC_ERR_LOG", 0x25C, 2, 0, 0, 0,}, + {"GLBL_TRQ_ERR_STS", 0x264, 0, 0, 0, 0,}, + {"GLBL_TRQ_ERR_MSK", 0x268, 0, 0, 0, 0,}, + {"GLBL_TRQ_ERR_LOG", 0x26C, 0, 0, 0, 0,}, + {"GLBL_DSC_DBG_DAT", 0x270, 2, 0, 0, 0,}, + {"GLBL_DSC_ERR_LOG2", 0x27C, 0, 0, 0, 0,}, + {"GLBL_INTERRUPT_CFG", 0x288, 0, 0, 0, 0,}, + + /* QDMA_TRQ_SEL_FMAP (0x00400 - 0x7FC) */ + /* TODO: max 256, display 4 for now */ + {"TRQ_SEL_FMAP", 0x400, 4, 0, 0, 0,}, + + /* QDMA_TRQ_SEL_IND (0x00800) */ + {"IND_CTXT_DATA", 0x804, 8, 0, 0, 0,}, + {"IND_CTXT_MASK", 0x824, 8, 0, 0, 0,}, + {"IND_CTXT_CMD", 0x844, 0, 0, 0, 0,}, + + /* QDMA_TRQ_SEL_C2H (0x00A00) */ + {"C2H_TIMER_CNT", 0xA00, 16, 0, 0, 0,}, + {"C2H_CNT_THRESH", 0xA40, 16, 0, 0, 0,}, + {"C2H_STAT_S_AXIS_C2H_ACCEPTED", 0xA88, 0, 0, 0, 0,}, + {"C2H_STAT_S_AXIS_CMPT_ACCEPTED", 0xA8C, 0, 0, 0, 0,}, + {"C2H_STAT_DESC_RSP_PKT_ACCEPTED", 0xA90, 0, 0, 0, 0,}, + {"C2H_STAT_AXIS_PKG_CMP", 0xA94, 0, 0, 0, 0,}, + {"C2H_STAT_DESC_RSP_ACCEPTED", 0xA98, 0, 0, 0, 0,}, + {"C2H_STAT_DESC_RSP_CMP", 0xA9C, 0, 0, 0, 0,}, + {"C2H_STAT_WRQ_OUT", 0xAA0, 0, 0, 0, 0,}, + {"C2H_STAT_WPL_REN_ACCEPTED", 0xAA4, 0, 0, 0, 0,}, + {"C2H_STAT_TOTAL_WRQ_LEN", 0xAA8, 0, 0, 0, 0,}, + {"C2H_STAT_TOTAL_WPL_LEN", 0xAAC, 0, 0, 0, 0,}, + {"C2H_BUF_SZ", 0xAB0, 16, 0, 0, 0,}, + {"C2H_ERR_STAT", 0xAF0, 0, 0, 0, 0,}, + {"C2H_ERR_MASK", 0xAF4, 0, 0, 0, 0,}, + {"C2H_FATAL_ERR_STAT", 0xAF8, 0, 0, 0, 0,}, + {"C2H_FATAL_ERR_MASK", 0xAFC, 0, 0, 0, 0,}, + {"C2H_FATAL_ERR_ENABLE", 0xB00, 0, 0, 0, 0,}, + {"GLBL_ERR_INT", 0xB04, 0, 0, 0, 0,}, + {"C2H_PFCH_CFG", 0xB08, 0, 0, 0, 0,}, + {"C2H_INT_TIMER_TICK", 0xB0C, 0, 0, 0, 0,}, + {"C2H_STAT_DESC_RSP_DROP_ACCEPTED", 0xB10, 0, 0, 0, 0,}, + {"C2H_STAT_DESC_RSP_ERR_ACCEPTED", 0xB14, 0, 0, 0, 0,}, + {"C2H_STAT_DESC_REQ", 0xB18, 0, 0, 0, 0,}, + {"C2H_STAT_DEBUG_DMA_ENG", 0xB1C, 4, 0, 0, 0,}, + {"C2H_DBG_PFCH_ERR_CTXT", 0xB2C, 0, 0, 0, 0,}, + {"C2H_FIRST_ERR_QID", 0xB30, 0, 0, 0, 0,}, + {"STAT_NUM_CMPT_IN", 0xB34, 0, 0, 0, 0,}, + {"STAT_NUM_CMPT_OUT", 0xB38, 0, 0, 0, 0,}, + {"STAT_NUM_CMPT_DRP", 0xB3C, 0, 0, 0, 0,}, + {"STAT_NUM_STAT_DESC_OUT", 0xB40, 0, 0, 0, 0,}, + {"STAT_NUM_DSC_CRDT_SENT", 0xB44, 0, 0, 0, 0,}, + {"STAT_NUM_FCH_DSC_RCVD", 0xB48, 0, 0, 0, 0,}, + {"STAT_NUM_BYP_DSC_RCVD", 0xB4C, 0, 0, 0, 0,}, + {"C2H_CMPT_COAL_CFG", 0xB50, 0, 0, 0, 0,}, + {"C2H_INTR_H2C_REQ", 0xB54, 0, 0, 0, 0,}, + {"C2H_INTR_C2H_MM_REQ", 0xB58, 0, 0, 0, 0,}, + {"C2H_INTR_ERR_INT_REQ", 0xB5C, 0, 0, 0, 0,}, + {"C2H_INTR_C2H_ST_REQ", 0xB60, 0, 0, 0, 0,}, + {"C2H_INTR_H2C_ERR_MM_MSIX_ACK", 0xB64, 0, 0, 0, 0,}, + {"C2H_INTR_H2C_ERR_MM_MSIX_FAIL", 0xB68, 0, 0, 0, 0,}, + {"C2H_INTR_H2C_ERR_MM_NO_MSIX", 0xB6C, 0, 0, 0, 0,}, + {"C2H_INTR_H2C_ERR_MM_CTXT_INVAL", 0xB70, 0, 0, 0, 0,}, + {"C2H_INTR_C2H_ST_MSIX_ACK", 0xB74, 0, 0, 0, 0,}, + {"C2H_INTR_C2H_ST_MSIX_FAIL", 0xB78, 0, 0, 0, 0,}, + {"C2H_INTR_C2H_ST_NO_MSIX", 0xB7C, 0, 0, 0, 0,}, + {"C2H_INTR_C2H_ST_CTXT_INVAL", 0xB80, 0, 0, 0, 0,}, + {"C2H_STAT_WR_CMP", 0xB84, 0, 0, 0, 0,}, + {"C2H_STAT_DEBUG_DMA_ENG_4", 0xB88, 0, 0, 0, 0,}, + {"C2H_STAT_DEBUG_DMA_ENG_5", 0xB8C, 0, 0, 0, 0,}, + {"C2H_DBG_PFCH_QID", 0xB90, 0, 0, 0, 0,}, + {"C2H_DBG_PFCH", 0xB94, 0, 0, 0, 0,}, + {"C2H_INT_DEBUG", 0xB98, 0, 0, 0, 0,}, + {"C2H_STAT_IMM_ACCEPTED", 0xB9C, 0, 0, 0, 0,}, + {"C2H_STAT_MARKER_ACCEPTED", 0xBA0, 0, 0, 0, 0,}, + {"C2H_STAT_DISABLE_CMP_ACCEPTED", 0xBA4, 0, 0, 0, 0,}, + {"C2H_C2H_PAYLOAD_FIFO_CRDT_CNT", 0xBA8, 0, 0, 0, 0,}, + + {"C2H_INTR_DYN_REQ", 0xBAC, 0, 0, 0, 0,}, + {"C2H_INTR_DYN_MSIX", 0xBB0, 0, 0, 0, 0,}, + {"C2H_DROP_LEN_MISMATCH", 0xBB4, 0, 0, 0, 0,}, + {"C2H_DROP_DESC_RSP_LEN", 0xBB8, 0, 0, 0, 0,}, + {"C2H_DROP_QID_FIFO_LEN", 0xBBC, 0, 0, 0, 0,}, + {"C2H_DROP_PAYLOAD_CNT", 0xBC0, 0, 0, 0, 0,}, + {"QDMA_C2H_CMPT_FORMAT", 0xBC4, 7, 0, 0, 0,}, + {"C2H_PFCH_CACHE_DEPTH", 0xBE0, 0, 0, 0, 0,}, + {"C2H_CMPT_COAL_BUF_DEPTH", 0xBE4, 0, 0, 0, 0,}, + {"C2H_PFCH_CRDT", 0xBE8, 0, 0, 0, 0,}, + + /* QDMA_TRQ_SEL_H2C(0x00E00) Register Space*/ + {"H2C_ERR_STAT", 0xE00, 0, 0, 0, 0,}, + {"H2C_ERR_MASK", 0xE04, 0, 0, 0, 0,}, + {"H2C_FIRST_ERR_QID", 0xE08, 0, 0, 0, 0,}, + {"H2C_DBG_REG", 0xE0C, 5, 0, 0, 0,}, + {"H2C_FATAL_ERR_EN", 0xE20, 0, 0, 0, 0,}, + {"H2C_REQ_THROT", 0xE24, 0, 0, 0, 0,}, + {"H2C_ALN_DBG_REG0", 0xE28, 0, 0, 0, 0,}, + + /* QDMA_TRQ_SEL_C2H_MM (0x1000) */ + {"C2H_MM_CONTROL", 0x1004, 3, 0, 0, 0,}, + {"C2H_MM_STATUS", 0x1040, 2, 0, 0, 0,}, + {"C2H_MM_CMPL_DSC_CNT", 0x1048, 0, 0, 0, 0,}, + {"C2H_MM_ERR_CODE_EN_MASK", 0x1054, 0, 0, 0, 0,}, + {"C2H_MM_ERR_CODE", 0x1058, 0, 0, 0, 0,}, + {"C2H_MM_ERR_INFO", 0x105C, 0, 0, 0, 0,}, + {"C2H_MM_PERF_MON_CTRL", 0x10C0, 0, 0, 0, 0,}, + {"C2H_MM_PERF_MON_CY_CNT", 0x10C4, 2, 0, 0, 0,}, + {"C2H_MM_PERF_MON_DATA_CNT", 0x10CC, 2, 0, 0, 0,}, + {"C2H_MM_DBG_INFO", 0x10E8, 2, 0, 0, 0,}, + + /* QDMA_TRQ_SEL_H2C_MM (0x1200)*/ + {"H2C_MM_CONTROL", 0x1204, 3, 0, 0, 0,}, + {"H2C_MM_STATUS", 0x1240, 0, 0, 0, 0,}, + {"H2C_MM_CMPL_DSC_CNT", 0x1248, 0, 0, 0, 0,}, + {"H2C_MM_ERR_CODE_EN_MASK", 0x1254, 0, 0, 0, 0,}, + {"H2C_MM_ERR_CODE", 0x1258, 0, 0, 0, 0,}, + {"H2C_MM_ERR_INFO", 0x125C, 0, 0, 0, 0,}, + {"H2C_MM_PERF_MON_CTRL", 0x12C0, 0, 0, 0, 0,}, + {"H2C_MM_PERF_MON_CY_CNT", 0x12C4, 2, 0, 0, 0,}, + {"H2C_MM_PERF_MON_DATA_CNT", 0x12CC, 2, 0, 0, 0,}, + {"H2C_MM_DBG_INFO", 0x12E8, 0, 0, 0, 0,}, + {"H2C_MM_REQ_THROT", 0x12EC, 0, 0, 0, 0,}, + + /* QDMA_PF_MAILBOX (0x2400) */ + {"FUNC_STATUS", 0x2400, 0, 0, 0, 0,}, + {"FUNC_CMD", 0x2404, 0, 0, 0, 0,}, + {"FUNC_INTR_VEC", 0x2408, 0, 0, 0, 0,}, + {"TARGET_FUNC", 0x240C, 0, 0, 0, 0,}, + {"INTR_CTRL", 0x2410, 0, 0, 0, 0,}, + {"PF_ACK", 0x2420, 8, 0, 0, 0,}, + {"FLR_CTRL_STATUS", 0x2500, 0, 0, 0, 0,}, + {"MSG_IN", 0x2800, 32, 0, 0, 0,}, + {"MSG_OUT", 0x2C00, 32, 0, 0, 0,}, + + {"", 0, 0, 0 } +}; + +static struct xreg_info qdma_user_regs[] = { + {"ST_C2H_QID", 0x0, 0, 0, 0, 0,}, + {"ST_C2H_PKTLEN", 0x4, 0, 0, 0, 0,}, + {"ST_C2H_CONTROL", 0x8, 0, 0, 0, 0,}, + /* ST_C2H_CONTROL: + * [1] : start C2H + * [2] : immediate data + * [3] : every packet statrs with 00 instead of continuous data + * stream until # of packets is complete + * [31]: gen_user_reset_n + */ + {"ST_H2C_CONTROL", 0xC, 0, 0, 0, 0,}, + /* ST_H2C_CONTROL: + * [0] : clear match for H2C transfer + */ + {"ST_H2C_STATUS", 0x10, 0, 0, 0, 0,}, + {"ST_H2C_XFER_CNT", 0x14, 0, 0, 0, 0,}, + {"ST_C2H_PKT_CNT", 0x20, 0, 0, 0, 0,}, + {"ST_C2H_CMPT_DATA", 0x30, 8, 0, 0, 0,}, + {"ST_C2H_CMPT_SIZE", 0x50, 0, 0, 0, 0,}, + {"ST_SCRATCH_REG", 0x60, 2, 0, 0, 0,}, + {"ST_C2H_PKT_DROP", 0x88, 0, 0, 0, 0,}, + {"ST_C2H_PKT_ACCEPT", 0x8C, 0, 0, 0, 0,}, + {"DSC_BYPASS_LOOP", 0x90, 0, 0, 0, 0,}, + {"USER_INTERRUPT", 0x94, 0, 0, 0, 0,}, + {"USER_INTERRUPT_MASK", 0x98, 0, 0, 0, 0,}, + {"USER_INTERRUPT_VEC", 0x9C, 0, 0, 0, 0,}, + {"DMA_CONTROL", 0xA0, 0, 0, 0, 0,}, + {"VDM_MSG_READ", 0xA4, 0, 0, 0, 0,}, + + {"", 0, 0, 0 } +}; + +#endif diff --git a/QDMA/linux-kernel/libqdma/Makefile b/QDMA/linux-kernel/libqdma/Makefile new file mode 100644 index 0000000..208a20a --- /dev/null +++ b/QDMA/linux-kernel/libqdma/Makefile @@ -0,0 +1,47 @@ +SHELL = /bin/bash + +# The top-level makefile defines required variables and flags. +ifneq ($(shell [[ $(MAKELEVEL) -ge 1 ]] && echo 1),1) + $(error Please use the top-level Makefile to build this driver) +endif + +ifneq ($(wildcard /etc/lsb-release),) + ifneq ($(shell $(grep) "Ubuntu" /etc/lsb-release),) + FLAGS += -DUBUNTU_VERSION_CODE + endif +endif + +include $(srcdir)/make/common_flags.mk + +$(info srcdir = $(srcdir).) +$(info KSRC = $(KSRC).) + +EXTRA_CFLAGS += -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall -Werror +EXTRA_CFLAGS += $(FLAGS) $(CPPFLAGS) +EXTRA_CFLAGS += -I$(srcdir)/include +EXTRA_CFLAGS += -I$(KSRC)/include +EXTRA_CFLAGS += -I. + +#EXTRA_CFLAGS += -DDEBUG + +ifneq ($(modulesymfile),) + override symverfile = symverfile="$(topdir)/$(modulesymfile) \ + -o $(drvdir)/$(modulesymfile)" +else + override symverfile = +endif + +MOD_NAME := libqdma +ifneq ($(SUBDIRS),) + BASE_OBJS := $(patsubst $(SUBDIRS)/%.c,%.o,$(wildcard $(SUBDIRS)/*.c)) +endif +obj-m := $(MOD_NAME).o +$(MOD_NAME)-objs := $(BASE_OBJS) + +.PHONY: build +build: + @$(MAKE) symverfile=$(symverfile) KBUILD_EXTRA_SYMBOLS=$(extra_symb) -C $(KOBJ) SUBDIRS=$(shell pwd) modules + +.PHONY: clean +clean: + @-/bin/rm -rf *.ko* ?odule* .tmp_versions *.mod.* *.o .*.o.* .*.cmd diff --git a/QDMA/linux-kernel/libqdma/libqdma_config.c b/QDMA/linux-kernel/libqdma/libqdma_config.c new file mode 100644 index 0000000..cb9cadf --- /dev/null +++ b/QDMA/linux-kernel/libqdma/libqdma_config.c @@ -0,0 +1,572 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +/** + * @file + * @brief This file contains the definitions for qdma configuration apis + * + */ +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "libqdma_export.h" + +#include "qdma_descq.h" +#include "qdma_device.h" +#include "qdma_thread.h" +#include "qdma_regs.h" +#include "qdma_context.h" +#include "qdma_intr.h" +#include "thread.h" +#include "version.h" + +/*****************************************************************************/ +/** + * qdma_set_qmax() - Handler function to set the qmax configuration value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] qsets_max: qmax configuration value + * @param[in] forced: whether to force set the value + * + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return < 0 on failure + *****************************************************************************/ +int qdma_set_qmax(unsigned long dev_hndl, u32 qsets_max, bool forced) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev *qdev; + int rv = -1; + + /** + * If xdev is NULL or qdev is NULL, return error as Invalid parameter + */ + if (!xdev) + return -EINVAL; + + qdev = xdev_2_qdev(xdev); + + if (!qdev) + return -EINVAL; + + /** If qdev->init_qrange is set, + * it indicates that FMAP programming is done + * That means at least one queue is added in the system. + * qmax is not allowed to change after FMAP programming is done. + * Hence, If qdev->init_qrange is set, return error as qmax + * cannot be changed now. + */ + if (qdev->init_qrange) { + pr_err("xdev 0x%p, FMAP prog done, can not modify qmax [%d]\n", + xdev, + qdev->qmax); + return rv; + } + + /** If the input qsets_max is same as the current xdev->conf.qsets_max, + * return, as there is nothing to be changed + */ + if ((qsets_max == xdev->conf.qsets_max) && !forced) { + pr_err("xdev 0x%p, Current qsets_max is same as [%d].Nothing to be done\n", + xdev, xdev->conf.qsets_max); + return rv; + } + + + /** FMAP programming is not done yet + * remove the already created qdev and recreate it using the + * newly configured size + */ + qdma_device_cleanup(xdev); + xdev->conf.qsets_max = qsets_max; + rv = qdma_device_init(xdev); + if (rv < 0) { + pr_warn("qdma_init failed %d.\n", rv); + qdma_device_cleanup(xdev); + } + + return QDMA_OPERATION_SUCCESSFUL; +} +/*****************************************************************************/ +/** + * qdma_get_qmax() - Handler function to get the qmax configuration value + * + * @param[in] dev_hndl: qdma device handle + * + * @return qmax value on success + * @return < 0 on failure + *****************************************************************************/ +unsigned int qdma_get_qmax(unsigned long dev_hndl) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + /** + * If xdev is NULL return error as Invalid parameter + */ + if (!xdev) + return -EINVAL; + + /** + * Return the current qsets_max value of the device + */ + return xdev->conf.qsets_max; +} + +/*****************************************************************************/ +/** + * qdma_set_intr_rngsz() - Handler function to set the intr_ring_size value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] intr_rngsz: interrupt aggregation ring size + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_intr_rngsz(unsigned long dev_hndl, u32 intr_rngsz) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev *qdev; + int rv = -1; + + /** + * If xdev is NULL or qdev is NULL, return error as Invalid parameter + */ + if (!xdev) + return -EINVAL; + + qdev = xdev_2_qdev(xdev); + + if (!qdev) + return -EINVAL; + + /** If the input intr_rngsz is same as the + * current xdev->conf.intr_rngsz, + * return, as there is nothing to be changed + */ + if (intr_rngsz == xdev->conf.intr_rngsz) { + pr_err("xdev 0x%p, Current intr_rngsz is same as [%d].Nothing to be done\n", + xdev, intr_rngsz); + return rv; + } + + /** If interrupt aggregation is not enabled, then no need to change the + * interrupt ring size. Retrun error in this case. + */ + if ((xdev->conf.qdma_drv_mode != INDIRECT_INTR_MODE) && + (xdev->conf.qdma_drv_mode != AUTO_MODE)) { + pr_err("xdev 0x%p, interrupt aggregation is disabled\n", xdev); + return rv; + } + + /** If qdev->init_qrange is set, + * it indicates that FMAP programming is done + * That means at least one queue is added in the system. + * intr_rngsz is not allowed to change after FMAP programming is done. + * Hence, If qdev->init_qrange is set, return error as intr_rngsz + * cannot be changed now. + */ + if (qdev->init_qrange) { + pr_err("xdev 0x%p, FMAP prog done, cannot modify intr ring size [%d]\n", + xdev, + xdev->conf.intr_rngsz); + return rv; + } + + /** + * FMAP programming is not done yet, update the intr_rngsz + */ + xdev->conf.intr_rngsz = intr_rngsz; + + return QDMA_OPERATION_SUCCESSFUL; +} + +/*****************************************************************************/ +/** + * qdma_get_intr_rngsz() - Handler function to get the intr_ring_size value + * + * @param[in] dev_hndl: qdma device handle + * + * + * @return interrupt ring size on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_intr_rngsz(unsigned long dev_hndl) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + /** + * If xdev is NULL return error as Invalid parameter + */ + if (!xdev) + return -EINVAL; + + /** If interrupt aggregation is not enabled, then return 0 + * As the intr_rngsz value is irrelevant in this case + */ + if ((xdev->conf.qdma_drv_mode != INDIRECT_INTR_MODE) && + (xdev->conf.qdma_drv_mode != AUTO_MODE)) { + pr_info("xdev 0x%p, interrupt aggregation is disabled\n", xdev); + return 0; + } + + pr_info("xdev 0x%p, intr ring_size = %d\n", + xdev, + xdev->conf.intr_rngsz); + /** + * Return the current intr_rngsz value of the device + */ + return xdev->conf.intr_rngsz; +} +#ifndef __QDMA_VF__ +/*****************************************************************************/ +/** + * qdma_set_buf_sz() - Handler function to set the buf_sz value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] buf_sz: interrupt aggregation ring size + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_buf_sz(unsigned long dev_hndl, u32 *buf_sz) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev *qdev = xdev_2_qdev(xdev); + int rv = -1; + + /** + * If xdev is NULL or qdev is NULL, + * return error as Invalid parameter + */ + if (!xdev || !qdev) + return -EINVAL; + + + /** If qdev->init_qrange is set, + * it indicates that FMAP programming is done + * That means at least one queue is added in the system. + * intr_rngsz is not allowed to change after FMAP programming is done. + * Hence, If qdev->init_qrange is set, return error as buf_sz + * cannot be changed now. + */ + if (qdev->init_qrange) { + pr_err("xdev 0x%p, FMAP prog done, cannot modify buf size\n", + xdev); + return rv; + } + + /** + * Write the given buf sizes to the registers + */ + rv = qdma_csr_write_bufsz(xdev, buf_sz); + + return rv; +} + +/*****************************************************************************/ +/** + * qdma_get_buf_sz() - Handler function to get the buf_sz value + * + * @param[in] dev_hndl: qdma device handle + * + * + * @return buffer size on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_buf_sz(unsigned long dev_hndl, u32 *buf_sz) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + /** + * If xdev is NULL, return error as Invalid parameter + */ + if (!xdev) + return -EINVAL; + + qdma_csr_read_bufsz(xdev, buf_sz); + + return QDMA_OPERATION_SUCCESSFUL; +} + +/*****************************************************************************/ +/** + * qdma_set_glbl_rng_sz() - Handler function to set the buf_sz value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] buf_sz: interrupt aggregation ring size + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_glbl_rng_sz(unsigned long dev_hndl, u32 *glbl_rng_sz) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev *qdev = xdev_2_qdev(xdev); + int rv = -1; + + /** + * If xdev is NULL or qdev is NULL, + * return error as Invalid parameter + */ + if (!xdev || !qdev) + return -EINVAL; + + + /** If qdev->init_qrange is set, + * it indicates that FMAP programming is done + * That means at least one queue is added in the system. + * intr_rngsz is not allowed to change after FMAP programming is done. + * Hence, If qdev->init_qrange is set, return error as glbl_rng_sz + * cannot be changed now. + */ + if (qdev->init_qrange) { + pr_err("xdev 0x%p, FMAP prog done, cannot modify glbl_rng_sz\n", + xdev); + return rv; + } + + /** + * Write the given buf sizes to the registers + */ + rv = qdma_csr_write_rngsz(xdev, glbl_rng_sz); + + return rv; +} + +/*****************************************************************************/ +/** + * qdma_get_glbl_rng_sz() - Handler function to get the glbl_rng_sz value + * + * @param[in] dev_hndl: qdma device handle + * + * + * @return glbl_rng_sz size on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_glbl_rng_sz(unsigned long dev_hndl, u32 *glbl_rng_sz) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + /** + * If xdev is NULL, return error as Invalid parameter + */ + if (!xdev) + return -EINVAL; + + qdma_csr_read_rngsz(xdev, glbl_rng_sz); + + return QDMA_OPERATION_SUCCESSFUL; +} + +/*****************************************************************************/ +/** + * qdma_set_timer_cnt() - Handler function to set the buf_sz value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] tmr_cnt: Array of 16 timer count values + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_timer_cnt(unsigned long dev_hndl, u32 *tmr_cnt) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev *qdev = xdev_2_qdev(xdev); + int rv = -1; + + if (!xdev || !qdev) + return -EINVAL; + + /** If qdev->init_qrange is set, + * it indicates that FMAP programming is done + * That meansat least one queue is added in the system. + * qmax is not allowed to change after FMAP programming is done. + * Hence, If qdev->init_qrange is set, return error as qmax + * cannot be changed now. + */ + if (qdev->init_qrange) { + pr_err("xdev 0x%p, FMAP prog done, can not modify timer count\n", + xdev); + return rv; + } + + rv = qdma_csr_write_timer_cnt(xdev, tmr_cnt); + + return rv; +} + +/*****************************************************************************/ +/** + * qdma_get_timer_cnt() - Handler function to get the timer_cnt value + * + * @param[in] dev_hndl: qdma device handle + * + * + * @return timer_cnt on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_timer_cnt(unsigned long dev_hndl, u32 *tmr_cnt) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + /** + * If xdev is NULL, return error as Invalid parameter + */ + if (!xdev) + return -EINVAL; + + qdma_csr_read_timer_cnt(xdev, tmr_cnt); + + return QDMA_OPERATION_SUCCESSFUL; +} + +/*****************************************************************************/ +/** + * qdma_set_cnt_thresh() - Handler function to set the counter threshold value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] cnt_th: Array of 16 timer count values + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_cnt_thresh(unsigned long dev_hndl, unsigned int *cnt_th) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev *qdev = xdev_2_qdev(xdev); + int rv = -1; + + if (!xdev || !qdev) + return -EINVAL; + + /** If qdev->init_qrange is set, + * it indicates that FMAP programming is done + * That means at least one queue is added in the system. + * csr count threshold is not allowed to change after FMAP + * programming is done. + * Hence, If qdev->init_qrange is set, return error as csr count threshold + * cannot be changed now. + */ + if (qdev->init_qrange) { + pr_err("xdev 0x%p, FMAP prog done, can not modify threshold count\n", + xdev); + return rv; + } + + rv = qdma_csr_write_cnt_thresh(xdev, cnt_th); + + return rv; +} + +/*****************************************************************************/ +/** + * qdma_get_cnt_thresh() - Handler function to get the counter thresh value + * + * @param[in] dev_hndl: qdma device handle + * + * + * @return counter threshold values on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_cnt_thresh(unsigned long dev_hndl, u32 *cnt_th) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + /** + * If xdev is NULL, return error as Invalid parameter + */ + if (!xdev) + return -EINVAL; + + qdma_csr_read_cnt_thresh(xdev, cnt_th); + + return QDMA_OPERATION_SUCCESSFUL; +} + +/*****************************************************************************/ +/** + * qdma_set_cmpl_status_acc() - Handler function to set the cmpl_status_acc + * configuration value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] cmpl_status_acc: Writeback Accumulation value + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_cmpl_status_acc(unsigned long dev_hndl, u32 cmpl_status_acc) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev *qdev = xdev_2_qdev(xdev); + unsigned int reg; + + /** + * If xdev is NULL, return error as Invalid parameter + */ + if (!xdev) + return -EINVAL; + + if (qdev->init_qrange) { + pr_err("xdev 0x%p, FMAP prog done, cannot modify cmpt acc\n", + xdev); + return -EINVAL; + } + /** + * Write the given cmpl_status_acc value to the register + */ + reg = __read_reg(xdev, QDMA_REG_GLBL_DSC_CFG); + reg &= ~QDMA_REG_GLBL_DSC_CFG_CMPL_STATUS_ACC_MASK; + reg |= cmpl_status_acc; + __write_reg(xdev, QDMA_REG_GLBL_DSC_CFG, reg); + + return QDMA_OPERATION_SUCCESSFUL; +} + +/*****************************************************************************/ +/** + * qdma_get_cmpl_status_acc() - Handler function to get the cmpl_status_acc + * configuration value + * + * @param[in] dev_hndl: qdma device handle + * + * Handler function to get the writeback accumulation value + * + * @return cmpl_status_acc on success + * @return <0 on failure + * + *****************************************************************************/ +unsigned int qdma_get_cmpl_status_acc(unsigned long dev_hndl) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + unsigned int cs_acc; + + /** + * If xdev is NULL, return error as Invalid parameter + */ + if (!xdev) + return -EINVAL; + + /** + * Read the current cmpl_status_acc value from the register and return + */ + cs_acc = __read_reg(xdev, QDMA_REG_GLBL_DSC_CFG) & + QDMA_REG_GLBL_DSC_CFG_CMPL_STATUS_ACC_MASK; + + return cs_acc; +} +#endif diff --git a/QDMA/linux-kernel/libqdma/libqdma_config.h b/QDMA/linux-kernel/libqdma/libqdma_config.h new file mode 100644 index 0000000..31f2374 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/libqdma_config.h @@ -0,0 +1,301 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __LIBQDMA_CONFIG_H__ +#define __LIBQDMA_CONFIG_H__ +/** + * @file + * @brief This file contains the declarations for qdma configuration apis + * + */ +/***************************************************************************** + * GLOBAL CONSTANTS + *****************************************************************************/ +#include <linux/types.h> + +/** + * QDMA config bar number + */ +#define QDMA_CONFIG_BAR 0 + +/** + * STM bar + */ +#define STM_BAR 2 + +/** + * Maximum number of physical functions + */ +#define QDMA_PF_MAX 4 /* 4 PFs */ +/** + * Maximum number of virtual functions + */ +#define QDMA_VF_MAX 252 + +/** + * Maximum number of queues per physical function + */ +#define QDMA_Q_PER_PF_MAX 512 + +/** + * Maximum number of QDMA devices in the system + */ +#define MAX_DMA_DEV 32 + +/** + * Total number of qdma qs + */ +#define TOTAL_QDMA_QS (QDMA_PF_MAX * QDMA_Q_PER_PF_MAX) + +/** + * Maximum number of queues per virtual function + */ +#define QDMA_Q_PER_VF_MAX 1 + +/** + * Total number of qs for all VF + */ +#define TOTAL_VF_QS 0 + +/** + * Total number of qs for all PFs + */ +#define TOTAL_PF_QS (TOTAL_QDMA_QS - TOTAL_VF_QS) + +/** + * Maximum number of qs for PF + */ +#define MAX_QS_PER_PF (TOTAL_PF_QS/QDMA_PF_MAX) + +/** + * Shift for bus 'B' in B:D:F + */ +#define PCI_SHIFT_BUS 12 + +/** + * Shift for device 'D' in B:D:F + */ +#define PCI_SHIFT_DEV 4 + +/** + * To shift the Bus number for getting BDF + */ +#define SHIFT_DEC_PCI_BUS 1000 + +/** + * To shift the device number for getting BDF + */ +#define SHIFT_DEC_PCI_DEV 10 + +/** + * Maximum number of MSI-X vector per function + */ +#define QDMA_DEV_MSIX_VEC_MAX 8 + +/** + * ring size is 4KB, i.e 512 entries + */ +#define QDMA_INTR_COAL_RING_SIZE INTR_RING_SZ_4KB + +/** Maximum data vectors to be used for each function + * TODO: Please note that for 2018.2 only one vector would be used + * per pf and only one ring would be created for this vector + * It is also assumed that all functions have the same number of data vectors + * and currently different number of vectors per PF is not supported + */ +#define QDMA_NUM_DATA_VEC_FOR_INTR_CXT 1 + +/***************************************************************************** + * Function Declaration + *****************************************************************************/ + +/*****************************************************************************/ +/** + * qdma_set_qmax() - Handler function to set the qmax configuration value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] qsets_max: qmax configuration value + * @param[in] forced: flag to force qmax change + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_qmax(unsigned long dev_hndl, u32 qsets_max, bool forced); + +/*****************************************************************************/ +/** + * qdma_get_qmax() - Handler function to get the qmax configuration value + * + * @param[in] dev_hndl: qdma device handle + * + * @return qmax value on success + * @return < 0 on failure + *****************************************************************************/ +unsigned int qdma_get_qmax(unsigned long dev_hndl); + +/*****************************************************************************/ +/** + * qdma_set_intr_rngsz() - Handler function to set the intr_ring_size value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] rngsz: interrupt aggregation ring size + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_intr_rngsz(unsigned long dev_hndl, u32 rngsz); + +/*****************************************************************************/ +/** + * qdma_get_intr_rngsz() - Handler function to get the intr_ring_size value + * + * @param[in] dev_hndl: qdma device handle + * + * + * @return interrupt ring size on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_intr_rngsz(unsigned long dev_hndl); + +#ifndef __QDMA_VF__ +/*****************************************************************************/ +/** + * qdma_set_cmpl_status_acc() - Handler function to set the cmpl_status_acc + * configuration value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] cmpl_status_acc: Writeback Accumulation value + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_cmpl_status_acc(unsigned long dev_hndl, u32 cmpl_status_acc); + +/*****************************************************************************/ +/** + * qdma_get_cmpl_status_acc() - Handler function to get the cmpl_status_acc + * configuration value + * + * @param[in] dev_hndl: qdma device handle + * + * Handler function to get the writeback accumulation value + * + * @return cmpl_status_acc on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_cmpl_status_acc(unsigned long dev_hndl); + +/*****************************************************************************/ +/** + * qdma_set_buf_sz() - Handler function to set the buf_sz value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] buf_sz: buf sizes + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_buf_sz(unsigned long dev_hndl, u32 *buf_sz); + +/*****************************************************************************/ +/** + * qdma_get_buf_sz() - Handler function to get the buf_sz value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] buf_sz: buf sizes + * + * @return buf sizes on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_buf_sz(unsigned long dev_hndl, u32 *buf_sz); + +/*****************************************************************************/ +/** + * qdma_set_glbl_rng_sz() - Handler function to set the glbl_rng_sz value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] glbl_rng_sz: glbl_rng_sizes + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_glbl_rng_sz(unsigned long dev_hndl, u32 *glbl_rng_sz); + +/*****************************************************************************/ +/** + * qdma_get_glbl_rng_sz() - Handler function to get the glbl_rng_sz value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] glbl_rng_sz: glbl_rng sizes + * + * @return glbl_rng_sz on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_glbl_rng_sz(unsigned long dev_hndl, u32 *glbl_rng_sz); + +/*****************************************************************************/ +/** + * qdma_set_timer_cnt() - Handler function to set the buf_sz value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] tmr_cnt: Array of 16 timer count values + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_timer_cnt(unsigned long dev_hndl, u32 *tmr_cnt); + +/*****************************************************************************/ +/** + * qdma_get_timer_cnt() - Handler function to get the timer_cnt value + * + * @param[in] dev_hndl: qdma device handle + * + * + * @return timer_cnt on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_timer_cnt(unsigned long dev_hndl, u32 *tmr_cnt); + +/*****************************************************************************/ +/** + * qdma_set_cnt_thresh() - Handler function to set the counter threshold value + * + * @param[in] dev_hndl: qdma device handle + * @param[in] cnt_th: Array of 16 timer count values + * + * @return QDMA_OPERATION_SUCCESSFUL on success + * @return <0 on failure + *****************************************************************************/ +int qdma_set_cnt_thresh(unsigned long dev_hndl, unsigned int *cnt_th); + +/*****************************************************************************/ +/** + * qdma_get_cnt_thresh() - Handler function to get the counter thresh value + * + * @param[in] dev_hndl: qdma device handle + * + * + * @return counter threshold values on success + * @return <0 on failure + *****************************************************************************/ +unsigned int qdma_get_cnt_thresh(unsigned long dev_hndl, u32 *cnt_th); +#endif + +#endif diff --git a/QDMA/linux-kernel/libqdma/libqdma_export.c b/QDMA/linux-kernel/libqdma/libqdma_export.c new file mode 100644 index 0000000..50a88bc --- /dev/null +++ b/QDMA/linux-kernel/libqdma/libqdma_export.c @@ -0,0 +1,2037 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +/** + * @file + * @brief This file contains the definitions for libqdma interfaces + * + */ +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "libqdma_export.h" + +#include "qdma_descq.h" +#include "qdma_device.h" +#include "qdma_thread.h" +#include "qdma_regs.h" +#include "qdma_context.h" +#include "qdma_intr.h" +#include "qdma_st_c2h.h" +#include "thread.h" +#include "version.h" + +#ifdef DEBUGFS +#include "qdma_debugfs_queue.h" + +/** debugfs root */ +struct dentry *qdma_debugfs_root; +#endif + +#define QDMA_Q_PEND_LIST_COMPLETION_TIMEOUT 1000 /* msec */ + +struct drv_mode_name mode_name_list[] = { + { AUTO_MODE, "auto"}, + { POLL_MODE, "poll"}, + { DIRECT_INTR_MODE, "direct interrupt"}, + { INDIRECT_INTR_MODE, "indirect interrupt"}, + { LEGACY_INTR_MODE, "legacy interrupt"} +}; +/* ********************* static function definitions ************************ */ +/*****************************************************************************/ +/** + * qdma_request_wait_for_cmpl() - static function to monitor the + * wait completion + * + * @param[in] xdev: pointer to xlnx_dma_dev structure + * @param[in] descq: pointer to qdma_descq structure + * @param[in] req: qdma request + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int qdma_request_wait_for_cmpl(struct xlnx_dma_dev *xdev, + struct qdma_descq *descq, struct qdma_request *req) +{ + struct qdma_sgt_req_cb *cb = qdma_req_cb_get(req); + + /** if timeout is mentioned in the request, + * wait until the timeout occurs or wait until the + * call back is completed + */ + + if (req->timeout_ms) + qdma_waitq_wait_event_timeout(cb->wq, cb->done, + msecs_to_jiffies(req->timeout_ms)); + else + qdma_waitq_wait_event(cb->wq, cb->done); + + lock_descq(descq); + /** if the call back is not done, request timed out + * delete the request list + */ + if (!cb->done) + list_del(&cb->list); + + /** if the call back is not done but the status is updated + * return i/o error + */ + if (!cb->done || cb->status) { + pr_info("%s: req 0x%p, %c,%u,%u/%u,0x%llx, done %d, err %d, tm %u.\n", + descq->conf.name, + req, req->write ? 'W' : 'R', + cb->offset, + cb->left, + req->count, + req->ep_addr, + cb->done, + cb->status, + req->timeout_ms); + qdma_descq_dump(descq, NULL, 0, 1); + unlock_descq(descq); + + return -EIO; + } + + unlock_descq(descq); + return 0; +} + +/*****************************************************************************/ +/** + * qdma_request_submit_st_c2h() - static function to handle the + * st c2h request + * + * @param[in] xdev: pointer to xlnx_dma_dev structure + * @param[in] descq: pointer to qdma_descq structure + * @param[in] req: qdma request + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static ssize_t qdma_request_submit_st_c2h(struct xlnx_dma_dev *xdev, + struct qdma_descq *descq, struct qdma_request *req) +{ + struct qdma_dev *qdev = xdev_2_qdev(xdev); + struct qdma_sgt_req_cb *cb = qdma_req_cb_get(req); + int wait = req->fp_done ? 0 : 1; + int rv = 0; + + /** make sure that qdev is not NULL, else return error */ + if (!qdev) { + pr_err("dev %s, qdev null.\n", + dev_name(&xdev->conf.pdev->dev)); + return QDMA_ERR_INVALID_QDMA_DEVICE; + } + + pr_debug("%s: data len %u, sgl 0x%p, sgl cnt %u, tm %u ms.\n", + descq->conf.name, + req->count, req->sgl, req->sgcnt, req->timeout_ms); + + /** get the request count */ + cb->left = req->count; + + lock_descq(descq); + if (descq->q_stop_wait) { + unlock_descq(descq); + return 0; + } + if ((descq->q_state == Q_STATE_ONLINE) && + !descq->q_stop_wait) { + /* add to pend list even before cidx/pidx update as it could + * cause an interrupt and may miss processing of writeback + */ + list_add_tail(&cb->list, &descq->pend_list); + /* any rcv'ed packet not yet read ? */ + /** read the data from the device */ + descq_st_c2h_read(descq, req, 1, 1); + if (!cb->left) { + list_del(&cb->list); + unlock_descq(descq); + return req->count; + } + descq->pend_list_empty = 0; + unlock_descq(descq); + } else { + unlock_descq(descq); + pr_info("%s descq %s NOT online.\n", + xdev->conf.name, descq->conf.name); + return -EINVAL; + } + + /** if there is a completion thread associated, + * wake up the completion thread to process the + * completion status + */ + if (descq->cmplthp) + qdma_kthread_wakeup(descq->cmplthp); + + if (!wait) { + pr_debug("%s: cb 0x%p, data len 0x%x NO wait.\n", + descq->conf.name, cb, req->count); + return 0; + } + + /** wait for the request completion */ + rv = qdma_request_wait_for_cmpl(xdev, descq, req); + if (rv < 0) { + if (!req->dma_mapped) + sgl_unmap(xdev->conf.pdev, req->sgl, req->sgcnt, + DMA_FROM_DEVICE); + return rv; + } + + /** Once the request completion received, + * return with the number of processed requests + */ + return req->count - cb->left; +} + +/* ********************* public function definitions ************************ */ + +/*****************************************************************************/ +/** + * qdma_queue_get_config() - retrieve the configuration of a queue + * + * @param[in] dev_hndl: dev_hndl retured from qdma_device_open() + * @param[in] id: queue index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +struct qdma_queue_conf *qdma_queue_get_config(unsigned long dev_hndl, + unsigned long id, char *buf, int buflen) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, buf, buflen, 0); + + /** make sure that descq is not NULL + * return error is it is null else return the config data + */ + if (descq) + return &descq->conf; + + return NULL; +} + +/*****************************************************************************/ +/** + * qdma_queue_dump() - display a queue's state in a string buffer + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +int qdma_queue_dump(unsigned long dev_hndl, unsigned long id, char *buf, + int buflen) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, id, + buf, buflen, 0); + struct hw_descq_context ctxt; + int len = 0; + int rv; +#ifndef __QDMA_VF__ + int ring_index = 0; + u32 intr_ctxt[4]; + int i = 0; +#endif + + if (!descq) + return -EINVAL; + + /** Make sure that buf and buflen is not invalid */ + if (!buf || !buflen) + return QDMA_ERR_INVALID_INPUT_PARAM; + + /** read the descq data to dump */ + qdma_descq_dump(descq, buf, buflen, 1); + len = strlen(buf); + + /** read the descq context for the given qid */ + rv = qdma_descq_context_read(descq->xdev, descq->qidx_hw, + descq->conf.st, descq->conf.c2h, &ctxt); + if (rv < 0) { + len += sprintf(buf + len, "%s read context failed %d.\n", + descq->conf.name, rv); + return rv; + } + + /** format the output for all contexts */ + len += sprintf(buf + len, + "\tSW CTXT: [4]:0x%08x [3]:0x%08x [2]:0x%08x [1]:0x%08x [0]:0x%08x\n", + ctxt.sw[4], ctxt.sw[3], ctxt.sw[2], ctxt.sw[1], ctxt.sw[0]); + + len += sprintf(buf + len, + "\tHW CTXT: [1]:0x%08x [0]:0x%08x\n", + ctxt.hw[1], ctxt.hw[0]); + + len += sprintf(buf + len, + "\tCR CTXT: 0x%08x\n", ctxt.cr[0]); + + /** incase of ST C2H, + * add completion and prefetch context to the output + */ + if (descq->conf.c2h && descq->conf.st) { + len += sprintf(buf + len, + "\tCMPT CTXT: [4]:0x%08x [3]:0x%08x [2]:0x%08x [1]:0x%08x [0]:0x%08x\n", + ctxt.cmpt[4], ctxt.cmpt[3], ctxt.cmpt[2], ctxt.cmpt[1], ctxt.cmpt[0]); + + len += sprintf(buf + len, + "\tPFTCH CTXT: [1]:0x%08x [0]:0x%08x\n", + ctxt.prefetch[1], ctxt.prefetch[0]); + } + +#ifndef __QDMA_VF__ + /** if interrupt aggregation is enabled + * add the interrupt context + */ + if ((descq->xdev->conf.qdma_drv_mode == INDIRECT_INTR_MODE) || + (descq->xdev->conf.qdma_drv_mode == AUTO_MODE)) { + for (i = 0; i < QDMA_NUM_DATA_VEC_FOR_INTR_CXT; i++) { + ring_index = get_intr_ring_index( + descq->xdev, + (i + descq->xdev->dvec_start_idx)); + rv = qdma_intr_context_read(descq->xdev, + ring_index, + 4, + intr_ctxt); + if (rv < 0) { + len += sprintf(buf + len, + "%s read intr context failed %d.\n", + descq->conf.name, rv); + return rv; + } + + len += sprintf(buf + len, + "\tINTR_CTXT[%d]: [3]:0x%08x [2]:0x%08x [1]:0x%08x [0]:0x%08x\n", + ring_index, + intr_ctxt[3], + intr_ctxt[2], + intr_ctxt[1], + intr_ctxt[0]); + } + } + + if (descq->xdev->stm_en) { + if (descq->conf.st && + (descq->conf.c2h || descq->conf.desc_bypass)) { + struct stm_descq_context stm_hw; + + memset(&stm_hw, 0, sizeof(stm_hw)); + /** read stm context */ + rv = qdma_descq_stm_read(descq->xdev, descq->qidx_hw, + descq->conf.pipe_flow_id, + descq->conf.c2h, false, true, + &stm_hw); + if (rv < 0) { + len += sprintf(buf + len, + "%s read stm-context failed %d.\n", + descq->conf.name, rv); + return rv; + } + + len += sprintf(buf + len, + "\tSTM CTXT: [5]:0x%08x [4]:0x%08x [3]:0x%08x [2]:0x%08x [1]:0x%08x [0]:0x%08x\n", + stm_hw.stm[5], stm_hw.stm[4], + stm_hw.stm[3], stm_hw.stm[2], + stm_hw.stm[1], stm_hw.stm[0]); + + /** read stm can */ + rv = qdma_descq_stm_read(descq->xdev, descq->qidx_hw, + descq->conf.pipe_flow_id, + descq->conf.c2h, false, false, + &stm_hw); + if (rv < 0) { + len += sprintf(buf + len, + "%s read stm-can failed %d.\n", + descq->conf.name, rv); + return rv; + } + + len += sprintf(buf + len, + "\tSTM CAN: [4]:0x%08x [3]:0x%08x [2]:0x%08x [1]:0x%08x [0]:0x%08x\n", + stm_hw.stm[4], stm_hw.stm[3], + stm_hw.stm[2], stm_hw.stm[1], + stm_hw.stm[0]); + + /** read stm c2h map or h2c map */ + rv = qdma_descq_stm_read(descq->xdev, descq->qidx_hw, + descq->conf.pipe_flow_id, + descq->conf.c2h, true, false, + &stm_hw); + if (rv < 0) { + len += sprintf(buf + len, + "%s read stm-map failed %d.\n", + descq->conf.name, rv); + return rv; + } + + if (descq->conf.c2h) + len += sprintf(buf + len, + "\tSTM C2H MAP: [0]:0x%08x\n", + stm_hw.stm[0]); + else + len += sprintf(buf + len, + "\tSTM H2C MAP: [4]:0x%08x [3]:0x%08x [2]:0x%08x [1]:0x%08x [0]:0x%08x\n", + stm_hw.stm[4], stm_hw.stm[3], + stm_hw.stm[2], stm_hw.stm[1], + stm_hw.stm[0]); + } + } +#endif + len += sprintf(buf + len, + "\ttotal descriptor processed: %llu\n", + descq->total_cmpl_descs); + /** set the buffer end with \0 and return the buffer length */ + return len; +} + +/*****************************************************************************/ +/** + * qdma_queue_dump_desc() - display a queue's descriptor ring from index start + * ~ end in a string buffer + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] start: start index + * @param[in] end: end index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +int qdma_queue_dump_desc(unsigned long dev_hndl, unsigned long id, + unsigned int start, unsigned int end, char *buf, + int buflen) +{ + struct qdma_descq *descq = NULL; + int len = 0; + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + /** Assume that sufficient buflen is provided + * make sure that device handle provided is valid + */ + if (!xdev || !buf || !buflen) + return QDMA_ERR_INVALID_INPUT_PARAM; + + /** get the descq details based on the qid provided */ + descq = qdma_device_get_descq_by_id(xdev, id, buf, buflen, 1); + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + /** dump the queue state */ + len = qdma_descq_dump_state(descq, buf, buflen); + if (descq->q_state != Q_STATE_ONLINE) + return len; + + /** dump the queue descriptor state */ + len += qdma_descq_dump_desc(descq, start, end, buf + len, buflen - len); + return len; +} + +/*****************************************************************************/ +/** + * qdma_queue_dump_cmpt() - display a queue's descriptor ring from index start + * ~ end in a string buffer + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] start: start index + * @param[in] end: end index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +int qdma_queue_dump_cmpt(unsigned long dev_hndl, unsigned long id, + unsigned int start, unsigned int end, char *buf, + int buflen) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, buf, buflen, 1); + int len = 0; + + /** make sure that descq is not NULL, else return error */ + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + /** dump the descriptor state */ + len = qdma_descq_dump_state(descq, buf, buflen); + /** if the descriptor is in online state, + * then, dump the completion state + */ + if (descq->q_state == Q_STATE_ONLINE) + len += qdma_descq_dump_cmpt(descq, start, end, buf + len, + buflen - len); + + return len; +} + +/* TODO: Currently this interface is not being used by any application. + * Enable the code when needed ! + */ +#if 0 +/*****************************************************************************/ +/** + * qdma_queue_get_buf_sz() - to get queue's ch_buf_sz + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +int qdma_queue_get_buf_sz(unsigned long dev_hndl, unsigned long id, + char *buf, + int buflen) +{ + struct qdma_descq *descq = NULL; + int len = 0; + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + /** Assume that sufficient buflen is provided + * make sure that device handle provided is valid + */ + if (!xdev || !buf || !buflen) + return QDMA_ERR_INVALID_INPUT_PARAM; + + /** get the descq details based on the qid provided */ + descq = qdma_device_get_descq_by_id(xdev, id, buf, buflen, 1); + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + /** dump the queue state */ + len = qdma_descq_dump_state(descq, buf, buflen); + if (descq->q_state != Q_STATE_ONLINE) + return len; + + /** dump the queue buf_sz */ + + /* reg = QDMA_REG_C2H_BUF_SZ_BASE + (descq->conf.c2h_buf_sz_idx)*4; */ + /* buf_sz = __read_reg(xdev, reg); */ + buflen = snprintf(buf, buflen, "%d", descq->conf.c2h_bufsz); + return descq->conf.c2h_bufsz; +} +#endif +/*****************************************************************************/ +/** + * qdma_queue_remove() - remove a queue (i.e., offline, NOT ready for dma) + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_remove(unsigned long dev_hndl, unsigned long id, char *buf, + int buflen) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_descq *descq = + qdma_device_get_descq_by_id(xdev, id, buf, buflen, 1); +#ifdef DEBUGFS + struct qdma_descq *pair_descq = + qdma_device_get_pair_descq_by_id(xdev, id, buf, buflen, 1); +#endif + struct qdma_dev *qdev = xdev_2_qdev(xdev); + + /** make sure that qdev is not NULL, else return error */ + if (!qdev) { + pr_err("dev %s, qdev null.\n", + dev_name(&xdev->conf.pdev->dev)); + return QDMA_ERR_INVALID_QDMA_DEVICE; + } + + /** make sure that descq is not NULL, else return error */ + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + if (descq->q_state != Q_STATE_ENABLED) { + if (buf && buflen) { + int len = snprintf(buf, buflen, + "queue %s, id %u cannot be deleted. Invalid q state\n", + descq->conf.name, descq->conf.qidx); + + buf[len] = '\0'; + } + return QDMA_ERR_INVALID_DESCQ_STATE; + + } + +#ifdef DEBUGFS + if (pair_descq) + /** if pair_descq is not NULL, it means the queue + * is in ENABLED state + */ + dbgfs_queue_exit(&descq->conf, pair_descq); + else + dbgfs_queue_exit(&descq->conf, NULL); +#endif + qdma_descq_cleanup(descq); + + lock_descq(descq); + descq->q_state = Q_STATE_DISABLED; + unlock_descq(descq); + + spin_lock(&qdev->lock); + if (descq->conf.c2h) + qdev->c2h_qcnt--; + else + qdev->h2c_qcnt--; + spin_unlock(&qdev->lock); +#ifndef __QDMA_VF__ + if (xdev->conf.qdma_drv_mode == LEGACY_INTR_MODE) + intr_legacy_clear(descq); +#endif + if (buf && buflen) { + int len = snprintf(buf, buflen, "queue %s, id %u deleted.\n", + descq->conf.name, descq->conf.qidx); + buf[len] = '\0'; + } + pr_debug("queue %s, id %u deleted.\n", + descq->conf.name, descq->conf.qidx); + + return QDMA_OPERATION_SUCCESSFUL; +} + +/*****************************************************************************/ +/** + * qdma_queue_config() - configure the queue with qcong parameters + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] qid: queue id + * @param[in] qconf: queue configuration parameters + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_config(unsigned long dev_hndl, unsigned long qid, + struct qdma_queue_conf *qconf, char *buf, int buflen) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev *qdev = xdev_2_qdev(xdev); + struct qdma_descq *descq = NULL; + + /** make sure that qdev is not NULL, else return error */ + if (!qdev) { + pr_err("dev %s, qdev null.\n", + dev_name(&xdev->conf.pdev->dev)); + return QDMA_ERR_INVALID_QDMA_DEVICE; + } + + /** get the descq for the given qid */ + descq = qdma_device_get_descq_by_id(xdev, qid, NULL, 0, 0); + if (!descq) { + pr_err("Invalid queue ID! qid=%lu, max=%u\n", qid, qdev->qmax); + return QDMA_ERR_INVALID_QIDX; + } + + lock_descq(descq); + /** if descq is not in disabled state, return error as + * queue is enabled/in use, else enable the descq + */ + if (descq->q_state != Q_STATE_DISABLED) { + pr_err("queue_%lu already configured!\n", qid); + unlock_descq(descq); + return -EINVAL; + } + descq->q_state = Q_STATE_ENABLED; + unlock_descq(descq); + + spin_lock(&qdev->lock); + /** increment the queue count */ + if (qconf->c2h) + qdev->c2h_qcnt += 1; + else + qdev->h2c_qcnt += 1; + spin_unlock(&qdev->lock); + + /** configure descriptor queue */ + qdma_descq_config(descq, qconf, 0); + + return QDMA_OPERATION_SUCCESSFUL; +} + +/*****************************************************************************/ +/** + * qdma_queue_list() - display all configured queues in a string buffer + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +int qdma_queue_list(unsigned long dev_hndl, char *buf, int buflen) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev *qdev = xdev_2_qdev(xdev); + struct qdma_descq *descq = NULL; + char *cur = buf; + char * const end = buf + buflen; + int i; + + /** make sure that qdev is not NULL, else return error */ + if (!qdev) { + pr_err("dev %s, qdev null.\n", dev_name(&xdev->conf.pdev->dev)); + return QDMA_ERR_INVALID_QDMA_DEVICE; + } + + /** make sure that input buffer is not empty, else return error */ + if (!buf || !buflen) { + pr_warn("invalid argument: buf=%p, buflen=%d", buf, buflen); + return QDMA_ERR_INVALID_INPUT_PARAM; + } + + cur += snprintf(cur, end - cur, "H2C Q: %u, C2H Q: %u.\n", + qdev->h2c_qcnt, qdev->c2h_qcnt); + if (cur >= end) + goto handle_truncation; + + /** traverse through the h2c and c2h queue list + * and dump the descriptors + */ + if (qdev->h2c_qcnt) { + descq = qdev->h2c_descq; + for (i = 0; i < qdev->qmax; i++, descq++) { + lock_descq(descq); + if (descq->q_state != Q_STATE_DISABLED) + cur += + qdma_descq_dump(descq, cur, end - cur, 0); + unlock_descq(descq); + + if (cur >= end) + goto handle_truncation; + } + } + + if (qdev->c2h_qcnt) { + descq = qdev->c2h_descq; + for (i = 0; i < qdev->qmax; i++, descq++) { + lock_descq(descq); + if (descq->q_state != Q_STATE_DISABLED) + cur += + qdma_descq_dump(descq, cur, end - cur, 0); + unlock_descq(descq); + + if (cur >= end) + goto handle_truncation; + } + } + + return cur - buf; + +handle_truncation: + + return cur - buf; +} + +/*****************************************************************************/ +/** + * qdma_queue_reconfig() - reconfigure the existing queue with + * modified configuration + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: existing queue id + * @param[in] qconf: queue configuration parameters + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_reconfig(unsigned long dev_hndl, unsigned long id, + struct qdma_queue_conf *qconf, + char *buf, int buflen) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, buf, buflen, 1); + + /** make sure that descq is not NULL, else return error */ + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + lock_descq(descq); + /** if descq is not in disabled state then, + * return error as queue configuration can not be changed + */ + if (descq->q_state != Q_STATE_ENABLED) { + pr_info("%s invalid state, q_state %d.\n", + descq->conf.name, descq->q_state); + if (buf && buflen) { + int l = strlen(buf); + + l += sprintf(buf + l, + "%s invalid state, q_state %d.\n", + descq->conf.name, descq->q_state); + buf[l] = '\0'; + } + unlock_descq(descq); + return QDMA_ERR_INVALID_DESCQ_STATE; + } + /** Update the qconfig with new configuration provided */ + qdma_descq_config(descq, qconf, 1); + unlock_descq(descq); + + return 0; +} + +/*****************************************************************************/ +/** + * qdma_queue_add() - add a queue + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] qconf: queue configuration parameters + * @param[in] qhndl: list of unsigned long values that are the opaque qhndl + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_add(unsigned long dev_hndl, struct qdma_queue_conf *qconf, + unsigned long *qhndl, char *buf, int buflen) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev *qdev = xdev_2_qdev(xdev); + struct qdma_descq *descq; + struct qdma_descq *pairq; + unsigned int qcnt; + char *cur = buf; + char * const end = buf + buflen; + int rv = QDMA_OPERATION_SUCCESSFUL; + + /** If qconf is NULL, return error*/ + if (!qconf) + return QDMA_ERR_INVALID_INPUT_PARAM; + +#ifdef __QDMA_VF__ + /** allow only Q0 for if the VF Qmax is not set */ + if ((xdev->conf.cur_cfg_state == QMAX_CFG_INITIAL) && + (qconf->qidx > 0)) { + rv = QDMA_ERR_INVALID_QIDX; + if (buf && buflen) { + cur += snprintf(cur, end - cur, + "qdma%05x invalid idx %u >= 1.\n", + xdev->conf.bdf, qconf->qidx); + if (cur >= end) + goto handle_truncation; + } + return rv; + } +#endif + + /** If qhndl is NULL, return error*/ + if (!qhndl) { + pr_warn("qhndl NULL.\n"); + rv = QDMA_ERR_INVALID_QIDX; + if (buf && buflen) { + cur += snprintf(cur, end - cur, + "%s, add, qhndl NULL.\n", + xdev->conf.name); + if (cur >= end) + goto handle_truncation; + } + return rv; + } + + /** reset qhandle to an invalid value + * can't use 0 or NULL here because queue idx 0 has same value + */ + *qhndl = QDMA_QUEUE_IDX_INVALID; + + /** check if the requested mode is enabled? + * the request modes are read from the HW + * before serving any request, first check if the + * HW has the capability or not, else return error + */ + if ((qconf->st && !xdev->st_mode_en) || + (!qconf->st && !xdev->mm_mode_en)) { + pr_warn("%s, %s mode not enabled.\n", + xdev->conf.name, qconf->st ? "ST" : "MM"); + rv = QDMA_ERR_INTERFACE_NOT_ENABLED_IN_DEVICE; + if (buf && buflen) { + cur += snprintf(cur, end - cur, + "qdma%05x %s mode not enabled.\n", + xdev->conf.bdf, qconf->st ? "ST" : "MM"); + if (cur >= end) + goto handle_truncation; + } + return rv; + } + + spin_lock(&qdev->lock); + /** if incase the qidx is not QDMA_QUEUE_IDX_INVALID + * then, make sure that the qidx range falls between + * 0 - qdev->qmax, else return error + */ + if ((qconf->qidx != QDMA_QUEUE_IDX_INVALID) && + (qconf->qidx >= qdev->qmax)) { + spin_unlock(&qdev->lock); + rv = QDMA_ERR_INVALID_QIDX; + if (buf && buflen) { + cur += snprintf(cur, end - cur, + "qdma%05x invalid idx %u >= %u.\n", + xdev->conf.bdf, qconf->qidx, qdev->qmax); + if (cur >= end) + goto handle_truncation; + } + return rv; + } + + /** check if any free qidx available + * if qcnt is >= qdev->qmax, return error as + * no free queues found and descq is full + */ + qcnt = qconf->c2h ? qdev->c2h_qcnt : qdev->h2c_qcnt; + if (qcnt >= qdev->qmax) { + spin_unlock(&qdev->lock); + pr_warn("No free queues %u/%u.\n", qcnt, qdev->qmax); + rv = QDMA_ERR_DESCQ_FULL; + if (buf && buflen) { + cur += snprintf(cur, end - cur, + "qdma%05x No free queues %u/%u.\n", + xdev->conf.bdf, qcnt, qdev->qmax); + if (cur >= end) + goto handle_truncation; + } + return rv; + } + + /** add to the count first, need to rewind if failed later*/ + if (qconf->c2h) + qdev->c2h_qcnt++; + else + qdev->h2c_qcnt++; + spin_unlock(&qdev->lock); + + if (qconf->c2h) { + descq = qdev->c2h_descq; + pairq = qdev->h2c_descq; + } else { + descq = qdev->h2c_descq; + pairq = qdev->c2h_descq; + } + /** need to allocate a free qidx if it has an invalid id + * ie. qidx is not specified in the add request + */ + if (qconf->qidx == QDMA_QUEUE_IDX_INVALID) { + int i; + + /** loop through the qlist till qmax and find an empty descq*/ + for (i = 0; i < qdev->qmax; i++, descq++, pairq++) { + /** make sure the queue pair are the same mode*/ + lock_descq(pairq); + if ((pairq->q_state != Q_STATE_DISABLED) + && qconf->st != pairq->conf.st) { + unlock_descq(pairq); + continue; + } + unlock_descq(pairq); + + lock_descq(descq); + if (descq->q_state != Q_STATE_DISABLED) { + unlock_descq(descq); + continue; + } + /** set the descq as enabled*/ + descq->q_state = Q_STATE_ENABLED; + /** assign the qidx */ + qconf->qidx = i; + unlock_descq(descq); + + break; + } + + /** we are reached here means no free descq found + * decrement the queue count and return error + */ + if (i == qdev->qmax) { + pr_warn("no free %s qp found, %u.\n", + qconf->st ? "ST" : "MM", qdev->qmax); + rv = QDMA_ERR_DESCQ_FULL; + if (buf && buflen) { + cur += snprintf(cur, end - cur, + "qdma%05x no %s QP, %u.\n", + xdev->conf.bdf, + qconf->st ? "ST" : "MM", qdev->qmax); + if (cur >= end) + goto handle_truncation; + } + goto rewind_qcnt; + } + } else { /** qidx specified in the given add request*/ + /** find the queue pair for the given qidx*/ + pairq += qconf->qidx; + descq += qconf->qidx; + + /** make sure the queue pair are the same mode*/ + lock_descq(pairq); + if ((pairq->q_state != Q_STATE_DISABLED) + && (qconf->st != pairq->conf.st)) { + unlock_descq(pairq); + rv = -EINVAL; + if (buf && buflen) { + cur += snprintf(cur, end - cur, + "Need to have same mode for Q pair.\n"); + if (cur >= end) + goto handle_truncation; + } + goto rewind_qcnt; + } + unlock_descq(pairq); + + lock_descq(descq); + /** if the descq for the given qidx is already in enabled state, + * then the queue is in use, return error + */ + if (descq->q_state != Q_STATE_DISABLED) { + unlock_descq(descq); + pr_info("descq idx %u already added.\n", qconf->qidx); + rv = QDMA_ERR_DESCQ_IDX_ALREADY_ADDED; + if (buf && buflen) { + cur += snprintf(cur, end - cur, + "q idx %u already added.\n", + qconf->qidx); + } + goto rewind_qcnt; + } + descq->q_state = Q_STATE_ENABLED; + unlock_descq(descq); + } + + /** prepare the queue resources*/ + rv = qdma_device_prep_q_resource(xdev); + if (rv < 0) { +#ifdef __QDMA_VF__ + lock_descq(descq); + descq->q_state = Q_STATE_DISABLED; + unlock_descq(descq); +#endif + goto rewind_qcnt; + } +#ifndef __QDMA_VF__ + if (xdev->conf.qdma_drv_mode == LEGACY_INTR_MODE) { + rv = intr_legacy_setup(descq); + if ((rv > 0) && buf && buflen) { + /** support only 1 queue in legacy interrupt mode */ + intr_legacy_clear(descq); + descq->q_state = Q_STATE_DISABLED; + pr_debug("qdma%05x - Q%u - No free queues %u/%u.\n", + xdev->conf.bdf, descq->conf.qidx, + rv, 1); + rv = -EINVAL; + cur += snprintf(cur, end - cur, + "qdma%05x No free queues %u/%u.\n", + xdev->conf.bdf, qcnt, 1); + goto rewind_qcnt; + } else if ((rv < 0) && buf && buflen) { + rv = -EINVAL; + descq->q_state = Q_STATE_DISABLED; + pr_debug("qdma%05x Legacy interrupt setup failed.\n", + xdev->conf.bdf); + cur += snprintf(cur, end - cur, + "qdma%05x Legacy interrupt setup failed.\n", + xdev->conf.bdf); + goto rewind_qcnt; + } + } +#endif + + /** fill in config. info */ + qdma_descq_config(descq, qconf, 0); + + /** copy back the name in config*/ + memcpy(qconf->name, descq->conf.name, QDMA_QUEUE_NAME_MAXLEN); + *qhndl = (unsigned long)descq->conf.qidx; + if (qconf->c2h) + *qhndl += qdev->qmax; + +#ifdef DEBUGFS + rv = dbgfs_queue_init(&descq->conf, pairq, xdev->dbgfs_queues_root); + if (rv < 0) { + pr_err("failed to create queue debug files for the queueu %d\n", + descq->conf.qidx); + } +#endif + + pr_debug("added %s, %s, qidx %u.\n", + descq->conf.name, qconf->c2h ? "C2H" : "H2C", qconf->qidx); + if (buf && buflen) { + cur += snprintf(cur, end - cur, "%s %s added.\n", + descq->conf.name, qconf->c2h ? "C2H" : "H2C"); + if (cur >= end) + goto handle_truncation; + } + + return QDMA_OPERATION_SUCCESSFUL; + +rewind_qcnt: + spin_lock(&qdev->lock); + if (qconf->c2h) + qdev->c2h_qcnt--; + else + qdev->h2c_qcnt--; + spin_unlock(&qdev->lock); + + return rv; + +handle_truncation: + *buf = '\0'; + return rv; +} + +/*****************************************************************************/ +/** + * qdma_queue_start() - start a queue (i.e, online, ready for dma) + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_start(unsigned long dev_hndl, unsigned long id, + char *buf, int buflen) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, buf, buflen, 1); + int rv; + + /** make sure that descq is not NULL, else return error*/ + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + /** complete the queue configuration*/ + rv = qdma_descq_config_complete(descq); + if (rv < 0) { + pr_err("%s 0x%x setup failed.\n", + descq->conf.name, descq->qidx_hw); + if (buf && buflen) { + int l = strlen(buf); + + l += snprintf(buf + l, buflen, + "%s config failed.\n", descq->conf.name); + buf[l] = '\0'; + } + goto free_resource; + } + + lock_descq(descq); + /** if the descq is not enabled, + * it is in invalid state, return error + */ + if (descq->q_state != Q_STATE_ENABLED) { + pr_info("%s invalid state, q_status%d.\n", + descq->conf.name, descq->q_state); + if (buf && buflen) { + int l = strlen(buf); + + l += snprintf(buf + l, buflen, + "%s invalid state, q_state %d.\n", + descq->conf.name, descq->q_state); + } + unlock_descq(descq); + return QDMA_ERR_INVALID_DESCQ_STATE; + } + unlock_descq(descq); + /** allocate the queue resources*/ + rv = qdma_descq_alloc_resource(descq); + if (rv < 0) { + if (buf && buflen) { + int l = strlen(buf); + + l += snprintf(buf + l, buflen, + "%s alloc resource failed.\n", + descq->conf.name); + buf[l] = '\0'; + } + goto free_resource; + } + + /** program the hw contexts*/ + rv = qdma_descq_prog_hw(descq); + if (rv < 0) { + pr_err("%s 0x%x setup failed.\n", + descq->conf.name, descq->qidx_hw); + if (buf && buflen) { + int l = strlen(buf); + + l += snprintf(buf + l, buflen, + "%s prog. context failed.\n", + descq->conf.name); + buf[l] = '\0'; + } + goto clear_context; + } + + /** Interrupt mode */ + if (descq->xdev->num_vecs) { + unsigned long flags; + + spin_lock_irqsave(&descq->xdev->lock, flags); + list_add_tail(&descq->intr_list, + &descq->xdev->dev_intr_info_list[descq->intr_id].intr_list); + spin_unlock_irqrestore(&descq->xdev->lock, flags); + } + + qdma_thread_add_work(descq); + + if (buf && buflen) { + rv = snprintf(buf, buflen, "%s started\n", descq->conf.name); + if (rv <= 0 || rv >= buflen) + goto clear_context; + } + /** set the descq to online state*/ + lock_descq(descq); + descq->q_state = Q_STATE_ONLINE; + unlock_descq(descq); + + return QDMA_OPERATION_SUCCESSFUL; + +clear_context: + qdma_descq_context_clear(descq->xdev, descq->qidx_hw, descq->conf.st, + descq->conf.c2h, 1); +free_resource: + qdma_descq_free_resource(descq); + + return rv; +} + +#ifndef __QDMA_VF__ +/*****************************************************************************/ +/** + * qdma_queue_prog_stm() - Program STM for queue (context, map, etc) + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_prog_stm(unsigned long dev_hndl, unsigned long id, + char *buf, int buflen) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_descq *descq = + qdma_device_get_descq_by_id((struct xlnx_dma_dev *)dev_hndl, + id, buf, buflen, 1); + int rv; + + /** make sure that descq is not NULL, else return error*/ + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + if (!descq->conf.st) { + pr_info("%s Skipping STM prog for MM queue.\n", + descq->conf.name); + if (buf && buflen) { + int l = strlen(buf); + + l += snprintf(buf + l, buflen, + "%s Skipping STM prog for MM queue.\n", + descq->conf.name); + } + return QDMA_OPERATION_SUCCESSFUL; + } + + if (!xdev->stm_en) { + pr_info("%s No STM present; stm_rev %d.\n", + descq->conf.name, xdev->stm_rev); + if (buf && buflen) { + int l = strlen(buf); + + l += snprintf(buf + l, buflen, + "%s No STM present; stm_rev %d.\n", + descq->conf.name, xdev->stm_rev); + } + return QDMA_ERR_INVALID_PCI_DEV; + } + + lock_descq(descq); + /** if the descq is not online, + * it is in invalid state, return error + */ + if (descq->q_state != Q_STATE_ONLINE) { + pr_info("%s invalid state, q_status%d.\n", + descq->conf.name, descq->q_state); + if (buf && buflen) { + int l = strlen(buf); + + l += snprintf(buf + l, buflen, + "%s invalid state, q_state %d.\n", + descq->conf.name, descq->q_state); + } + unlock_descq(descq); + return QDMA_ERR_INVALID_DESCQ_STATE; + } + + unlock_descq(descq); + + /** program the stm */ + rv = qdma_descq_prog_stm(descq, false); + if (rv < 0) { + pr_err("%s 0x%x STM setup failed.\n", + descq->conf.name, descq->qidx_hw); + if (buf && buflen) { + int l = strlen(buf); + + l += snprintf(buf + l, buflen, + "%s prog. STM failed.\n", + descq->conf.name); + buf[l] = '\0'; + } + return rv; + } + return QDMA_OPERATION_SUCCESSFUL; +} +#endif + +/*****************************************************************************/ +/** + * qdma_queue_stop() - stop a queue (i.e., offline, NOT ready for dma) + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_stop(unsigned long dev_hndl, unsigned long id, char *buf, + int buflen) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, buf, buflen, 1); + struct qdma_sgt_req_cb *cb, *tmp; + struct qdma_request *req; + unsigned int pend_list_empty = 0; + + /** make sure that descq is not NULL, else return error */ + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + lock_descq(descq); + /** if the descq not online donot proceed */ + if (descq->q_state != Q_STATE_ONLINE) { + pr_info("%s invalid state, q_state %d.\n", + descq->conf.name, descq->q_state); + if (buf && buflen) { + int l = snprintf(buf, buflen, + "queue %s, idx %u stop failed.\n", + descq->conf.name, descq->conf.qidx); + if (l <= 0 || l >= buflen) { + unlock_descq(descq); + return QDMA_ERR_INVALID_INPUT_PARAM; + } + } + unlock_descq(descq); + return QDMA_ERR_INVALID_DESCQ_STATE; + } + pend_list_empty = descq->pend_list_empty; + + descq->q_stop_wait = 1; + unlock_descq(descq); + if (!pend_list_empty) { + qdma_waitq_wait_event_timeout(descq->pend_list_wq, + descq->pend_list_empty, + msecs_to_jiffies(QDMA_Q_PEND_LIST_COMPLETION_TIMEOUT)); + } + lock_descq(descq); + /** free the descq by updating the state */ + descq->q_state = Q_STATE_ENABLED; + descq->q_stop_wait = 0; + list_for_each_entry_safe(cb, tmp, &descq->pend_list, list) { + req = (struct qdma_request *)cb; + cb->req_state = QDMA_REQ_COMPLETE; + cb->done = 1; + cb->status = -ENXIO; + if (req->fp_done) { + list_del(&cb->list); + req->fp_done(req, 0, -ENXIO); + } else + qdma_waitq_wakeup(&cb->wq); + } + list_for_each_entry_safe(cb, tmp, &descq->work_list, list) { + req = (struct qdma_request *)cb; + cb->req_state = QDMA_REQ_COMPLETE; + cb->done = 1; + cb->status = -ENXIO; + if (req->fp_done) { + list_del(&cb->list); + req->fp_done(req, 0, -ENXIO); + } else + qdma_waitq_wakeup(&cb->wq); + } + unlock_descq(descq); + + /** remove the work thread associated with the current queue */ + qdma_thread_remove_work(descq); + + /** clear the queue context */ + qdma_descq_context_clear(descq->xdev, descq->qidx_hw, descq->conf.st, + descq->conf.c2h, 0); + + lock_descq(descq); + /** if the device is in direct/indirect interrupt mode, + * delete the interrupt list for the queue + */ + if ((descq->xdev->conf.qdma_drv_mode != POLL_MODE) && + (descq->xdev->conf.qdma_drv_mode != LEGACY_INTR_MODE)) { + unsigned long flags; + + spin_lock_irqsave(&descq->xdev->lock, flags); + list_del(&descq->intr_list); + spin_unlock_irqrestore(&descq->xdev->lock, flags); + } +#ifndef __QDMA_VF__ + /** clear stm context/maps */ + if (descq->xdev->stm_en) + qdma_descq_prog_stm(descq, true); +#endif + + /** free the queue resources */ + qdma_descq_free_resource(descq); + /** free the descq by updating the state */ + descq->total_cmpl_descs = 0; + unlock_descq(descq); + + /** fill the return buffer indicating that queue is stopped */ + if (buf && buflen) { + int len = snprintf(buf, buflen, "queue %s, idx %u stopped.\n", + descq->conf.name, descq->conf.qidx); + if (len <= 0 || len >= buflen) + return QDMA_ERR_INVALID_INPUT_PARAM; + } + return QDMA_OPERATION_SUCCESSFUL; +} + +/*****************************************************************************/ +/** + * qdma_intr_ring_dump() - display the interrupt ring info of a vector + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] vector_idx: vector number + * @param[in] start_idx: interrupt ring start idx + * @param[in] end_idx: interrupt ring end idx + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_intr_ring_dump(unsigned long dev_hndl, unsigned int vector_idx, + int start_idx, int end_idx, char *buf, int buflen) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_intr_ring *ring_entry; + struct intr_coal_conf *coal_entry; + int counter = 0; + int len = 0; + u32 data[2]; + + /** if, interrupt aggregation is not enabled, + * interrupt ring is not created, return error + */ + if ((xdev->conf.qdma_drv_mode != INDIRECT_INTR_MODE) && + (xdev->conf.qdma_drv_mode != AUTO_MODE)) { + pr_info("Interrupt aggregation not enabled\n"); + if (buf) { + len += sprintf(buf + len, + "Interrupt aggregation not enabled\n"); + buf[len] = '\0'; + } + return -1; + } + + /** make sure that vector index is with in the + * start and end vector limit, else return error + */ + if ((vector_idx < xdev->dvec_start_idx) || + (vector_idx >= + (xdev->dvec_start_idx + QDMA_NUM_DATA_VEC_FOR_INTR_CXT))) { + pr_info("Vector idx %d is invalid. Shall be in range: %d - %d.\n", + vector_idx, + xdev->dvec_start_idx, + (xdev->dvec_start_idx + + QDMA_NUM_DATA_VEC_FOR_INTR_CXT - 1)); + if (buf) { + len += sprintf(buf + len, + "Vector idx %d is invalid. Shall be in range: %d - %d.\n", + vector_idx, + xdev->dvec_start_idx, + (xdev->dvec_start_idx + + QDMA_NUM_DATA_VEC_FOR_INTR_CXT - 1)); + buf[len] = '\0'; + } + return -1; + } + + /** get the intr entry based on vector index */ + coal_entry = xdev->intr_coal_list + (vector_idx - xdev->dvec_start_idx); + + /** make sure that intr ring entry indexes + * given are with in the range + */ + if (start_idx > coal_entry->intr_rng_num_entries) { + pr_info("start_idx %d is invalid. Shall be less than: %d\n", + start_idx, + coal_entry->intr_rng_num_entries); + if (buf) { + len += sprintf(buf + len, + "start_idx %d is invalid. Shall be less than: %d\n", + start_idx, + coal_entry->intr_rng_num_entries); + buf[len] = '\0'; + } + return -1; + } + + if (end_idx == -1 || end_idx >= coal_entry->intr_rng_num_entries) + end_idx = coal_entry->intr_rng_num_entries - 1; + + if (start_idx == -1) + start_idx = 0; + + if (start_idx > end_idx) { + pr_info("start_idx can't be greater than end_idx\n"); + if (buf) { + len += sprintf(buf + len, + "start_idx can't be greater than end_idx\n"); + buf[len] = '\0'; + } + return -1; + } + + /** read the ring entries based on the range given and + * update the input buffer with details + */ + for (counter = start_idx; counter <= end_idx; counter++) { + ring_entry = coal_entry->intr_ring_base + counter; + memcpy(data, ring_entry, sizeof(u32) * 2); + if (buf) { + len += sprintf(buf + len, + "intr_ring_entry = %d: 0x%08x 0x%08x\n", + counter, data[1], data[0]); + buf[len] = '\0'; + } + } + + return 0; +} + + /*****************************************************************************/ + /** + * qdma_software_version_info Provides the qdma software version + * + * @param[out] software_version: libqdma software version + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_software_version_info(char *software_version) +{ + if (!software_version) + return -EINVAL; + + sprintf(software_version, "%s", LIBQDMA_VERSION_STR); + + return 0; +} + + +#ifdef __QDMA_VF__ + /*****************************************************************************/ + /** + * qdma_vf_qconf call for VF to request qmax number of Qs + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] qmax: number of qs requested by vf + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_vf_qconf(unsigned long dev_hndl, int qmax) +{ + int err = 0; + u32 qbase = 0; + struct qdma_dev *qdev; + u32 last_qbase = 0; + u32 last_qmax = 0; + + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (!xdev) { + pr_err("Invalid dev handle\n"); + return -EINVAL; + } + + qdev = xdev_2_qdev(xdev); + + if (!qdev) { + pr_err("Invalid qdev\n"); + return -EINVAL; + } + + /** save the last qbase values for restoring + * if the qconf command failed + */ + last_qbase = xdev->conf.qsets_base; + last_qmax = xdev->conf.qsets_max; + + qdma_device_cleanup(xdev); + err = device_set_qconf(xdev, qmax, &qbase); + if (err < 0) { + pr_err("Setting qconf failed\n"); + /** upon failure, go back to the last set qmax value */ + xdev->conf.qsets_base = last_qbase; + xdev->conf.qsets_max = last_qmax; + qdma_device_init(xdev); + return err; + } + xdev->conf.qsets_base = qbase; + xdev->conf.qsets_max = qmax; + err = qdma_device_init(xdev); + if (err < 0) { + pr_warn("qdma_init failed %d.\n", err); + qdma_device_cleanup(xdev); + } + + if (err < 0) { + pr_err("Failed to set qmax %d for %s\n", + qmax, dev_name(&xdev->conf.pdev->dev)); + return err; + } + + return err; +} +#endif + +/*****************************************************************************/ +/** + * sgl_unmap() - unmap the sg list from host pages + * + * @param[in] pdev: pointer to struct pci_dev + * @param[in] sg: qdma sg request list + * @param[in] sgcnt: number of sg lists + * @param[in] dir: direction of the dma transfer + * DMA_BIDIRECTIONAL = 0, DMA_TO_DEVICE = 1, + * DMA_FROM_DEVICE = 2, DMA_NONE = 3, + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +void sgl_unmap(struct pci_dev *pdev, struct qdma_sw_sg *sg, unsigned int sgcnt, + enum dma_data_direction dir) +{ + int i; + + /** unmap the sg list and set the dma_addr to 0 all sg entries */ + for (i = 0; i < sgcnt; i++, sg++) { + if (!sg->pg) + break; + if (sg->dma_addr) { + pci_unmap_page(pdev, sg->dma_addr - sg->offset, + PAGE_SIZE, dir); + sg->dma_addr = 0UL; + } + } +} + +/*****************************************************************************/ +/** + * sgl_map() - map sg list to host pages + * + * @param[in] pdev: pointer to struct pci_dev + * @param[in] sg: qdma sg request list + * @param[in] sgcnt: number of sg lists + * @param[in] dir: direction of the dma transfer + * DMA_BIDIRECTIONAL = 0, DMA_TO_DEVICE = 1, + * DMA_FROM_DEVICE = 2, DMA_NONE = 3, + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int sgl_map(struct pci_dev *pdev, struct qdma_sw_sg *sgl, unsigned int sgcnt, + enum dma_data_direction dir) +{ + int i; + struct qdma_sw_sg *sg = sgl; + + /** Map the sg list onto a dma pages where + * each page has max of PAGE_SIZE i.e 4K + */ + for (i = 0; i < sgcnt; i++, sg++) { + /* !! TODO page size !! */ + sg->dma_addr = pci_map_page(pdev, sg->pg, 0, PAGE_SIZE, dir); + if (unlikely(pci_dma_mapping_error(pdev, sg->dma_addr))) { + pr_info("map sgl failed, sg %d, %u.\n", i, sg->len); + if (i) + sgl_unmap(pdev, sgl, i, dir); + return -EIO; + } + sg->dma_addr += sg->offset; + } + + return 0; +} + +/*****************************************************************************/ +/** + * qdma_request_submit() - submit a scatter-gather list of data for dma + * operation (for both read and write) + * This is a callback function called from upper layer(character device) + * to handle the read/write request on the queues + * + * @param[in] dev_hndl: hndl retured from qdma_device_open() + * @param[in] id: queue index + * @param[in] req: qdma request + * + * @return # of bytes transferred + * @return <0: error + *****************************************************************************/ +ssize_t qdma_request_submit(unsigned long dev_hndl, unsigned long id, + struct qdma_request *req) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_descq *descq = + qdma_device_get_descq_by_id(xdev, id, NULL, 0, 1); + struct qdma_sgt_req_cb *cb = qdma_req_cb_get(req); + enum dma_data_direction dir; + int wait = req->fp_done ? 0 : 1; + int rv = 0; + + if (!descq) + return -EINVAL; + + pr_debug("%s %s-%s, data len %u, sg cnt %u.\n", + descq->conf.name, descq->conf.st ? "ST" : "MM", + descq->conf.c2h ? "C2H" : "H2C", req->count, req->sgcnt); + + /** Identify the direction of the transfer */ + dir = descq->conf.c2h ? DMA_FROM_DEVICE : DMA_TO_DEVICE; + + /** If write request is given on the C2H direction + * OR, a read request given on non C2H direction + * then, its an invalid request, return error in this case + */ + if ((req->write && descq->conf.c2h) || + (!req->write && !descq->conf.c2h)) { + pr_info("%s: bad direction, %c.\n", + descq->conf.name, req->write ? 'W' : 'R'); + return -EINVAL; + } + + /** Reset the local cb request with 0's */ + memset(cb, 0, QDMA_REQ_OPAQUE_SIZE); + /** Initialize the wait queue */ + qdma_waitq_init(&cb->wq); + + pr_debug("%s: data len %u, ep 0x%llx, sgl 0x%p, sgl cnt %u, tm %u ms.\n", + descq->conf.name, req->count, req->ep_addr, req->sgl, + req->sgcnt, req->timeout_ms); + + /** If the request is streaming mode C2H, invoke the + * handler to perform the read operation + */ + if (descq->conf.st && descq->conf.c2h) + return qdma_request_submit_st_c2h(xdev, descq, req); + + if (!req->dma_mapped) { + rv = sgl_map(xdev->conf.pdev, req->sgl, req->sgcnt, dir); + if (rv < 0) { + pr_info("%s map sgl %u failed, %u.\n", + descq->conf.name, req->sgcnt, req->count); + goto unmap_sgl; + } + cb->unmap_needed = 1; + } + + lock_descq(descq); + /** if the descq is already in online state*/ + if (descq->q_state != Q_STATE_ONLINE) { + unlock_descq(descq); + pr_info("%s descq %s NOT online.\n", + xdev->conf.name, descq->conf.name); + rv = -EINVAL; + goto unmap_sgl; + } + list_add_tail(&cb->list, &descq->work_list); + descq->pend_req_desc += ((req->count + PAGE_SIZE - 1) >> PAGE_SHIFT); + unlock_descq(descq); + + pr_debug("%s: cb 0x%p submitted.\n", descq->conf.name, cb); + + qdma_descq_proc_sgt_request(descq); + + if (!wait) + return 0; + + rv = qdma_request_wait_for_cmpl(xdev, descq, req); + if (rv < 0) + goto unmap_sgl; + + return cb->offset; + +unmap_sgl: + if (!req->dma_mapped) + sgl_unmap(xdev->conf.pdev, req->sgl, req->sgcnt, dir); + + return rv; +} + +/*****************************************************************************/ +/** + * qdma_batch_request_submit() - submit a batch of scatter-gather list of data + * for dma operation (for both read and write) + * This is a callback function called from upper layer(character device) + * to handle the read/write request on the queues + * + * @param[in] dev_hndl: hndl retured from qdma_device_open() + * @param[in] id: queue index + * @param[in] count: Number of qdma requests + * @param[in] reqv: qdma request vector + * + * @return # of bytes transferred + * @return <0: error + *****************************************************************************/ +ssize_t qdma_batch_request_submit(unsigned long dev_hndl, unsigned long id, + unsigned long count, struct qdma_request **reqv) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_descq *descq = + qdma_device_get_descq_by_id(xdev, id, NULL, 0, 0); + struct qdma_sgt_req_cb *cb; + enum dma_data_direction dir; + int rv = 0; + unsigned long i; + struct qdma_request *req; + int st_c2h = 0; + + if (!descq) + return -EINVAL; + + st_c2h = (descq->conf.st && descq->conf.c2h) ? 1 : 0; + + /** Identify the direction of the transfer */ + dir = descq->conf.c2h ? DMA_FROM_DEVICE : DMA_TO_DEVICE; + + req = reqv[0]; + /** If write request is given on the C2H direction + * OR, a read request given on non C2H direction + * then, its an invalid request, return error in this case + */ + if ((req->write && descq->conf.c2h) + || (!req->write && !descq->conf.c2h)) { + pr_info("%s: bad direction, %c.\n", descq->conf.name, + req->write ? 'W' : 'R'); + return -EINVAL; + } + if (!req->fp_done) { + pr_info("%s: missing fp_done.\n", descq->conf.name); + return -EINVAL; + } + + if (st_c2h) { + for (i = 0; i < count; i++) { + req = reqv[i]; + cb = qdma_req_cb_get(req); + /** Reset the local cb request with 0's */ + memset(cb, 0, QDMA_REQ_OPAQUE_SIZE); + + rv = qdma_request_submit_st_c2h(xdev, descq, req); + if ((rv < 0) || (rv == req->count)) + req->fp_done(req, rv, rv); + } + + return 0; + + } else { + struct pci_dev *pdev = xdev->conf.pdev; + + for (i = 0; i < count; i++) { + req = reqv[i]; + cb = qdma_req_cb_get(req); + /** Reset the local cb request with 0's */ + memset(cb, 0, QDMA_REQ_OPAQUE_SIZE); + + if (!req->dma_mapped) { + rv = sgl_map(pdev, req->sgl, req->sgcnt, dir); + if (unlikely(rv < 0)) { + pr_info("%s map sgl %u failed, %u.\n", + descq->conf.name, + req->sgcnt, + req->count); + req->fp_done(req, 0, rv); + } + cb->unmap_needed = 1; + } + } + } + + lock_descq(descq); + /** if the descq is already in online state*/ + if (unlikely(descq->q_state != Q_STATE_ONLINE)) { + unlock_descq(descq); + pr_info("%s descq %s NOT online.\n", xdev->conf.name, + descq->conf.name); + return -EINVAL; + } + + for (i = 0; i < count; i++) { + req = reqv[i]; + cb = qdma_req_cb_get(req); + + list_add_tail(&cb->list, &descq->work_list); + } + unlock_descq(descq); + + qdma_descq_proc_sgt_request(descq); + + return 0; +} + +/*****************************************************************************/ +/** + * libqdma_init() initialize the QDMA core library + * + * @param[in] num_threads - number of threads to be created each for request + * processing and writeback processing + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int libqdma_init(enum qdma_drv_mode qdma_drv_mode, unsigned int num_threads) +{ + + /** Make sure that the size of qdma scatter gather request size + * is less than the QDMA_REQ_OPAQUE_SIZE + * If not, return error + */ + if (sizeof(struct qdma_sgt_req_cb) > QDMA_REQ_OPAQUE_SIZE) { + pr_err("dma req. opaque data size too big %lu > %d.\n", + sizeof(struct qdma_sgt_req_cb), QDMA_REQ_OPAQUE_SIZE); + return -1; + } + if (sizeof(struct qdma_flq) > QDMA_FLQ_SIZE) { + pr_err("qdma flq data size too big %lu > %d", + sizeof(struct qdma_flq), QDMA_FLQ_SIZE); + return -1; + } + + if (qdma_drv_mode == LEGACY_INTR_MODE) + intr_legacy_init(); + + /** Create the qdma threads */ + qdma_threads_create(num_threads); +#ifdef DEBUGFS + return qdma_debugfs_init(&qdma_debugfs_root); +#else + return 0; +#endif +} + +/*****************************************************************************/ +/** + * libqdma_exit() cleanup the QDMA core library before exiting + * + * @return none + *****************************************************************************/ +void libqdma_exit(void) +{ +#ifdef DEBUGFS + qdma_debugfs_exit(qdma_debugfs_root); +#endif + /** Destroy the qdma threads */ + qdma_threads_destroy(); +} + +#ifdef __LIBQDMA_MOD__ +/** for module support only */ +#include "version.h" + +static char version[] = + DRV_MODULE_DESC " " DRV_MODULE_NAME " v" DRV_MODULE_VERSION "\n"; + +MODULE_AUTHOR("Xilinx, Inc."); +MODULE_DESCRIPTION(DRV_MODULE_DESC); +MODULE_VERSION(DRV_MODULE_VERSION); +MODULE_LICENSE("Dual BSD/GPL"); + +/*****************************************************************************/ +/** + * libqdma_mod_init() libqdma module initialization routine + * + * Returns: none + *****************************************************************************/ +static int __init libqdma_mod_init(void) +{ + pr_info("%s", version); + + /** invoke libqdma_init to initialize the libqdma library */ + return libqdma_init(); +} + +/*****************************************************************************/ +/** + * libqdma_mod_exit() cleanup the QDMA core library before exiting + * + * Returns: none + *****************************************************************************/ +static void __exit libqdma_mod_exit(void) +{ + /** invoke libqdma_exit to cleanup the libqdma library resources */ + libqdma_exit(); +} + +module_init(libqdma_mod_init); +module_exit(libqdma_mod_exit); +#endif /* ifdef __LIBQDMA_MOD__ */ diff --git a/QDMA/linux-kernel/libqdma/libqdma_export.h b/QDMA/linux-kernel/libqdma/libqdma_export.h new file mode 100644 index 0000000..dd1128c --- /dev/null +++ b/QDMA/linux-kernel/libqdma/libqdma_export.h @@ -0,0 +1,1228 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __LIBQDMA_EXPORT_API_H__ +#define __LIBQDMA_EXPORT_API_H__ +/** + * @file + * @brief This file contains the declarations for libqdma interfaces + * + */ +#include <linux/types.h> +#include <linux/interrupt.h> +#include "libqdma_config.h" + +/** Invalid QDMA function number */ +#define QDMA_FUNC_ID_INVALID (QDMA_PF_MAX + QDMA_VF_MAX) + +/** + * QDMA Error codes + */ +enum qdma_error_codes { + QDMA_OPERATION_SUCCESSFUL = 0, + /*!< QDMA driver API operation successful */ + QDMA_ERR_PCI_DEVICE_NOT_FOUND = -1, + /*!< QDMA PCI device not found on the PCIe bus */ + QDMA_ERR_PCI_DEVICE_ALREADY_ATTACHED = -2, + /*!< QDMA PCI device already attached */ + QDMA_ERR_PCI_DEVICE_ENABLE_FAILED = -3, + /*!< Failed to enable the QDMA PCIe device */ + QDMA_ERR_PCI_DEVICE_INIT_FAILED = -4, + /*!< Failed to initialize the QDMA PCIe device */ + QDMA_ERR_INVALID_INPUT_PARAM = -5, + /*!< Invalid input parameter given to QDMA API */ + QDMA_ERR_INVALID_PCI_DEV = -6, + /*!< Invalid PCIe device */ + QDMA_ERR_INVALID_QIDX = -7, + /*!< Invalid Queue ID provided as input */ + QDMA_ERR_INVALID_DESCQ_STATE = -8, + /*!< Invalid descriptor queue state */ + QDMA_ERR_INVALID_DIRECTION = -9, + /*!< Invalid descriptor direction provided */ + QDMA_ERR_DESCQ_SETUP_FAILED = -10, + /*!< Failed to setup the descriptor queue */ + QDMA_ERR_DESCQ_FULL = -11, + /*!< Descriptor queue is full */ + QDMA_ERR_DESCQ_IDX_ALREADY_ADDED = -12, + /*!< Descriptor queue index is already added */ + QDMA_ERR_QUEUE_ALREADY_CONFIGURED = -13, + /*!< Queue is already configured */ + QDMA_ERR_OUT_OF_MEMORY = -14, + /*!< Out of memory */ + QDMA_ERR_INVALID_QDMA_DEVICE = -15, + /*!< Invalid QDMA device, QDMA device is not yet created */ + QDMA_ERR_INTERFACE_NOT_ENABLED_IN_DEVICE = -16, + /*!< The ST or MM or Both interface not enabled in the device */ +}; + + +/** + * qdma_drv_state_t - qdma driver state + */ +enum qdma_drv_mode { + /*!< auto mode decided automatically, mix of poll and interrupt mode */ + AUTO_MODE, + /*!< driver is inserted in poll mode */ + POLL_MODE, + /*!< driver is inserted in direct interrupt mode */ + DIRECT_INTR_MODE, + /*!< driver is inserted in indirect interrupt mode */ + INDIRECT_INTR_MODE, + /*!< driver is inserted in legacy interrupt mode */ + LEGACY_INTR_MODE +}; + +struct drv_mode_name { + enum qdma_drv_mode drv_mode; + char name[20]; +}; +extern struct drv_mode_name mode_name_list[]; + +struct pci_dev; + +/*****************************************************************************/ +/** + * libqdma_init() initialize the QDMA core library + * + * @param[in] qdma_drv_mode - mode in which the driver needs to operate + * @param[in] num_threads - number of threads to be created each for request + * processing and writeback processing + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int libqdma_init(enum qdma_drv_mode qdma_drv_mode, unsigned int num_threads); + +/*****************************************************************************/ +/** + * libqdma_exit() cleanup the QDMA core library before exiting + * + * @return none + *****************************************************************************/ +void libqdma_exit(void); + +/** + * intr_ring_size_sel - qdma interrupt ring size selection + */ +enum intr_ring_size_sel { + /** + * 0 - INTR_RING_SZ_4KB, Accommodates 512 entries + */ + INTR_RING_SZ_4KB = 0, + /** + * 1 - INTR_RING_SZ_8KB, Accommodates 1024 entries + */ + INTR_RING_SZ_8KB, + /** + * 2 - INTR_RING_SZ_12KB, Accommodates 1536 entries + */ + INTR_RING_SZ_12KB, + /** + * 3 - INTR_RING_SZ_16KB, Accommodates 2048 entries + */ + INTR_RING_SZ_16KB, + /** + * 4 - INTR_RING_SZ_20KB, Accommodates 2560 entries + */ + INTR_RING_SZ_20KB, + /** + * 5 - INTR_RING_SZ_24KB, Accommodates 3072 entries + */ + INTR_RING_SZ_24KB, + /** + * 6 - INTR_RING_SZ_24KB, Accommodates 3584 entries + */ + INTR_RING_SZ_28KB, + /** + * 7 - INTR_RING_SZ_24KB, Accommodates 4096 entries + */ + INTR_RING_SZ_32KB, +}; + +enum qdma_dev_qmax_state { + /** device qmax not configured */ + QMAX_CFG_UNCONFIGURED, + /** device qmax configured with initial values */ + QMAX_CFG_INITIAL, + /** device qmax configured from sysfs */ + QMAX_CFG_USER, +}; + +/** + * Maxinum length of the QDMA device name + */ +#define QDMA_DEV_NAME_MAXLEN 32 + +/** + * qdma_dev_conf defines the per-device qdma property. + * + * NOTE: if any of the max requested is less than supported, the value will + * be updated + */ +struct qdma_dev_conf { + /** pointer to pci_dev */ + struct pci_dev *pdev; + /** Maximum number of queue pairs per device */ + unsigned short qsets_max; + /** Reserved */ + unsigned short rsvd2; + /** Indicates whether zero length DMA is allowed or not */ + u8 zerolen_dma:1; + /** Indicates whether the current pf is master_pf or not */ + u8 master_pf:1; + /** extra handling of per descq handling in + * top half (i.e., qdma_descq.fp_descq_isr_top will be set) + */ + u8 isr_top_q_en:1; + /** Reserved1 */ + u8 rsvd1:5; + /** Maximum number of virtual functions for current physical function */ + u8 vf_max; + /** Interrupt ring size */ + u8 intr_rngsz; + /** + * interrupt: + * - MSI-X only + * max of QDMA_DEV_MSIX_VEC_MAX per function, 32 in Everest + * - 1 vector is reserved for user interrupt + * - 1 vector is reserved mailbox + * - 1 vector on pf0 is reserved for error interrupt + * - the remaining vectors will be used for queues + */ + + /** max. of vectors used for queues. libqdma update w/ actual # */ + u8 msix_qvec_max; + /** upper layer data, i.e. callback data */ + unsigned long uld; + /** qdma driver mode */ + enum qdma_drv_mode qdma_drv_mode; + /** + * an unique string to identify the dev. + * current format: qdma[pf|vf][idx] filled in by libqdma + */ + char name[QDMA_DEV_NAME_MAXLEN]; + +#ifdef RTL2_FEATURE_CONFIGURABLE_BAR + /** dma config bar #, < 0 not present */ + char bar_num_config; + /** user bar */ + char bar_num_user; + /** bypass bar */ + char bar_num_bypass; +#endif + /** dma config bar #, < 0 not present */ + char bar_num_config; + /** user bar */ + char bar_num_user; + /** bypass bar */ + char bar_num_bypass; + /** STM bar, PF only */ + char bar_num_stm; + /** user bar, PF only */ + unsigned int qsets_base; + /** device index */ + u32 bdf; + /** index of device in device list */ + u32 idx; + /**current configuration state of device*/ + enum qdma_dev_qmax_state cur_cfg_state; + /** xmit in traffic manager mode */ + u8 tm_mode_en; + /** enable 1 CDH for Traffic Manager */ + u8 tm_one_cdh_en; + + /** user interrupt, if null, default libqdma handler is used */ + void (*fp_user_isr_handler)(unsigned long dev_hndl, unsigned long uld); + + /** + * example flow of ST C2H: + * a. interrupt fires + * b. Hard IRQ: libqdma isr top -> dev->fp_q_isr_top_dev -> + * isr_top_qproc && Q->fp_descq_isr_top + * c. Soft IRQ: + * irq handler + * qdma_queue_service_bh() -> + * if rx: Q->fp_descq_rx_packet() called for each packet + * qdma_queue_cmpl_ctrl(set=true) to update h/w and re-enable + * interrupt + */ + + /** Q interrupt top, per-device addtional handling code */ + void (*fp_q_isr_top_dev)(unsigned long dev_hndl, unsigned long uld); +}; + +/*****************************************************************************/ +/** + * qdma_device_open() - read the pci bars and configure the fpga + * This API should be called from probe() + * + * User interrupt will not be enabled until qdma_user_isr_enable() is called + * + * @param[in] mod_name: the module name, used for request_irq + * @param[in] conf: device configuration + * @param[out] dev_hndl: an opaque handle + * for libqdma to identify the device + * + * @return QDMA_OPERATION_SUCCESSFUL success + * @return <0 in case of error + *****************************************************************************/ +int qdma_device_open(const char *mod_name, struct qdma_dev_conf *conf, + unsigned long *dev_hndl); + +/*****************************************************************************/ +/** + * qdma_device_close() - prepare fpga for removal: disable all interrupts (users + * and qdma) and release all resources.This API should be called from remove() + * + * @param[in] pdev: ptr to struct pci_dev + * @param[in] dev_hndl: dev_hndl retured from qdma_device_open() + * + *****************************************************************************/ +void qdma_device_close(struct pci_dev *pdev, unsigned long dev_hndl); + +/*****************************************************************************/ +/** + * qdma_device_offline() - Set the device in offline mode + * + * @param[in] pdev: ptr to struct pci_dev + * @param[in] dev_hndl: dev_hndl retured from qdma_device_open() + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +void qdma_device_offline(struct pci_dev *pdev, unsigned long dev_hndl); + +/*****************************************************************************/ +/** + * qdma_device_online() - Set the device in online mode and re-initialze it + * + * @param[in] pdev: ptr to struct pci_dev + * @param[in] dev_hndl: dev_hndl retured from qdma_device_open() + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_online(struct pci_dev *pdev, unsigned long dev_hndl); + +/*****************************************************************************/ +/** + * qdma_device_flr_quirk_set() - start pre-flr processing + * + * @param[in] pdev: ptr to struct pci_dev + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_flr_quirk_set(struct pci_dev *pdev, unsigned long dev_hndl); + +/*****************************************************************************/ +/** + * qdma_device_flr_quirk_check() - check if pre-flr processing completed + * + * @param[in] pdev: ptr to struct pci_dev + * @param[in] dev_hndl: dev_hndl retunred from qdma_device_open() + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_flr_quirk_check(struct pci_dev *pdev, unsigned long dev_hndl); + +/*****************************************************************************/ +/** + * qdma_device_get_config() - retrieve the current device configuration + * + * @param[in] dev_hndl: dev_hndl retunred from qdma_device_open() + * @param[in] conf: device configuration + * @param[in] ebuflen: input buffer length + * @param[out] ebuf: + * error message buffer, can be NULL/0 (i.e., optional) + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_get_config(unsigned long dev_hndl, struct qdma_dev_conf *conf, + char *ebuf, int ebuflen); + +/*****************************************************************************/ +/** + * qdma_device_clear_stats() - clear device statistics + * + * @param[in] dev_hndl: dev_hndl retunred from qdma_device_open() + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_clear_stats(unsigned long dev_hndl); + +/*****************************************************************************/ +/** + * qdma_device_get_mmh2c_pkts() - get mm h2c packets processed + * + * @param[in] dev_hndl: dev_hndl retunred from qdma_device_open() + * @param[out] mmh2c_pkts: number of mm h2c packets processed + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_get_mmh2c_pkts(unsigned long dev_hndl, + unsigned long long *mmh2c_pkts); + +/*****************************************************************************/ +/** + * qdma_device_get_mmc2h_pkts() - get mm c2h packets processed + * + * @param[in] dev_hndl: dev_hndl retunred from qdma_device_open() + * @param[out] mmc2h_pkts: number of mm c2h packets processed + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_get_mmc2h_pkts(unsigned long dev_hndl, + unsigned long long *mmc2h_pkts); + +/*****************************************************************************/ +/** + * qdma_device_get_sth2c_pkts() - get st h2c packets processed + * + * @param[in] dev_hndl: dev_hndl retunred from qdma_device_open() + * @param[out] sth2c_pkts: number of st h2c packets processed + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_get_sth2c_pkts(unsigned long dev_hndl, + unsigned long long *sth2c_pkts); + +/*****************************************************************************/ +/** + * qdma_device_get_stc2h_pkts() - get st c2h packets processed + * + * @param[in] dev_hndl: dev_hndl retunred from qdma_device_open() + * @param[out] stc2h_pkts: number of st c2h packets processed + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_get_stc2h_pkts(unsigned long dev_hndl, + unsigned long long *stc2h_pkts); +/*****************************************************************************/ +/** + * qdma_device_set_config() - set the current device configuration + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] conf: device configuration to set + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_set_config(unsigned long dev_hndl, struct qdma_dev_conf *conf); + +/*****************************************************************************/ +/** + * qdma_device_set_cfg_state - set the device configuration state + * + * @param[in] dev_hndl: device handle + * @param[in] new_cfg_state: dma device conf state to set + * + * + * @return 0 on success ,<0 on failure + *****************************************************************************/ +int qdma_device_set_cfg_state(unsigned long dev_hndl, + enum qdma_dev_qmax_state new_cfg_state); + +/*****************************************************************************/ +/** + * qdma_device_sriov_config() - configure sriov + * + * @param[in] pdev: ptr to struct pci_dev + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] num_vfs: # of VFs to be instantiated + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_sriov_config(struct pci_dev *pdev, unsigned long dev_hndl, + int num_vfs); + +/*****************************************************************************/ +/** + * qdma_device_read_config_register() - read dma config. register + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] reg_addr: register address + * + * @return value of the config register + *****************************************************************************/ +unsigned int qdma_device_read_config_register(unsigned long dev_hndl, + unsigned int reg_addr); + +/*****************************************************************************/ +/** + * qdma_device_write_config_register() - write dma config. register + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] reg_addr: register address + * @param[in] value: register value to be writen + * + *****************************************************************************/ +void qdma_device_write_config_register(unsigned long dev_hndl, + unsigned int reg_addr, u32 value); + + +/** + * qdma_version_info defines the per-device version information + * + */ +#define DEVICE_VERSION_INFO_STR_LENGTH 10 +struct qdma_version_info { + u8 rtl_version; + char rtl_version_str[DEVICE_VERSION_INFO_STR_LENGTH]; + u8 vivado_release_id; + char vivado_release_str[DEVICE_VERSION_INFO_STR_LENGTH]; + u8 everest_ip; + char everest_ip_str[DEVICE_VERSION_INFO_STR_LENGTH]; +}; + +/*****************************************************************************/ +/** + * qdma_device_version_info() - retrieve the RTL version , Vivado Release ID and + * Everest IP info + * + * @param[in] dev_hndl: handle returned from qdma_device_open() + * @param[out] version_info: pointer to hold all the version details + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_device_version_info(unsigned long dev_hndl, + struct qdma_version_info *version_info); + +/*****************************************************************************/ +/** + * qdma_software_version_info() - retrieve the software version + * + * @param[out] software_version: A pointer to a null-terminated string + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_software_version_info(char *software_version); + +/** QDMA Global CSR array size */ +#define QDMA_GLOBAL_CSR_ARRAY_SZ 16 + +/** + * struct global_csr_conf - global CSR configuration + */ +struct global_csr_conf { + /** Descriptor ring size ie. queue depth */ + unsigned int ring_sz[QDMA_GLOBAL_CSR_ARRAY_SZ]; + /** C2H timer count list */ + unsigned int c2h_timer_cnt[QDMA_GLOBAL_CSR_ARRAY_SZ]; + /** C2H counter threshold list*/ + unsigned int c2h_cnt_th[QDMA_GLOBAL_CSR_ARRAY_SZ]; + /** C2H buffer size list */ + unsigned int c2h_buf_sz[QDMA_GLOBAL_CSR_ARRAY_SZ]; + /** wireback acculation enable/disable */ + unsigned int cmpl_status_acc; +}; + +/*****************************************************************************/ +/** + * qdma_glbal_csr_get() - retrieve the global csr settings + * + * @param[in] dev_hndl: handle returned from qdma_device_open() + * @param[out] csr: data structures to hold the csr values + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_global_csr_get(unsigned long dev_hndl, struct global_csr_conf *csr); + +/*****************************************************************************/ +/** + * qdma_glbal_csr_set() - set the global csr values + * NOTE: for set, libqdma will enforce the access control + * + * @param[in] dev_hndl: handle returned from qdma_device_open() + * @param[in] csr: data structures to hold the csr values + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_global_csr_set(unsigned long dev_hndl, struct global_csr_conf *csr); + +/** + * cmpt_desc_sz_t - descriptor sizes + */ +enum cmpt_desc_sz_t { + /** 0 - completion size 8B */ + CMPT_DESC_SZ_8B = 0, + /** 0 - completion size 16B */ + CMPT_DESC_SZ_16B, + /** 0 - completion size 32B */ + CMPT_DESC_SZ_32B, + /** 0 - completion size 64B */ + CMPT_DESC_SZ_64B +}; + +/** + * desc_sz_t - descriptor sizes + */ +enum desc_sz_t { + /** 0 - size 8B */ + DESC_SZ_8B = 0, + /** 0 - size 16B */ + DESC_SZ_16B, + /** 0 - size 32B */ + DESC_SZ_32B, + /** 0 - size 64B */ + DESC_SZ_64B +}; + +/** + * tigger_mode_t - trigger modes + */ +enum tigger_mode_t { + /** 0 - disable trigger mode */ + TRIG_MODE_DISABLE, + /** 1 - any trigger mode */ + TRIG_MODE_ANY, + /** 2 - counter trigger mode */ + TRIG_MODE_COUNTER, + /** 3 - trigger mode of user choice */ + TRIG_MODE_USER, + /** 4 - timer trigger mode */ + TRIG_MODE_TIMER, + /** 5 - timer and counter combo trigger mode */ + TRIG_MODE_COMBO, +}; + +/** + * struct qdma_sw_sg - qdma scatter gather request + */ +struct qdma_sw_sg { + /** pointer to next page */ + struct qdma_sw_sg *next; + /** pointer to current page */ + struct page *pg; + /** offset in current page */ + unsigned int offset; + /** length of the page */ + unsigned int len; + /** dma address of the allocated page */ + dma_addr_t dma_addr; +}; + +/** + * maximum queue name length + */ +#define QDMA_QUEUE_NAME_MAXLEN 32 +/** + * invalid queue index + */ +#define QDMA_QUEUE_IDX_INVALID 0xFFFF + +/** + * invalid MSI-x vector index + */ +#define QDMA_QUEUE_VEC_INVALID 0xFF + +/** + * struct qdma_queue_conf - qdma configuration parameters + * qdma_queue_conf defines the per-dma Q property. + * if any of the max requested is less than supported, the value will + * be updated + */ +struct qdma_queue_conf { + /** 0xFFFF: libqdma choose the queue idx + * 0 ~ (qdma_dev_conf.qsets_max - 1) + * the calling function choose the queue idx + */ + u32 qidx:24; + + /** config flags: byte #1 */ + /** st mode */ + u32 st:1; + /** c2h direction */ + u32 c2h:1; + /** SDx only: inter-kernel communication pipe */ + u32 pipe:1; + /** poll or interrupt */ + u32 irq_en:1; + + /** descriptor ring */ + /** global_csr_conf.ringsz[N] */ + u32 desc_rng_sz_idx:4; + + /** config flags: byte #2 */ + /** writeback enable, disabled for ST C2H */ + u8 cmpl_status_en:1; + /** sw context.cmpl_status_acc_en */ + u8 cmpl_status_acc_en:1; + /** sw context.cmpl_stauts_pend_chk */ + u8 cmpl_status_pend_chk:1; + /** send descriptor to bypass out */ + u8 desc_bypass:1; + /** descriptor prefetch enable control */ + u8 pfetch_en:1; + /** sw context.frcd_en[32] */ + u8 fetch_credit:1; + /** SDx only: ST packet mode (i.e., with TLAST + * to identify the packet boundary) + */ + u8 st_pkt_mode:1; + /** c2h use pre-alloc free list */ + u8 c2h_use_fl:1; + + /** config flags: byte #3 */ + /** global_csr_conf.c2h_buf_sz[N] */ + u8 c2h_buf_sz_idx:4; + + /** ST C2H Completion/Writeback ring */ + /** global_csr_conf.ringsz[N] */ + u8 cmpl_rng_sz_idx:4; + + /** config flags: byte #4 */ + /** C2H ST cmpt + immediate data, desc_sz_t */ + u8 cmpl_desc_sz:2; + /** enable status desc. for CMPT */ + u8 cmpl_stat_en:1; + /** C2H Completion entry user-defined data */ + u8 cmpl_udd_en:1; + /** global_csr_conf.c2h_timer_cnt[N] */ + u8 cmpl_timer_idx:4; + + /** config flags: byte #5 */ + /** global_csr_conf.c2h_cnt_th[N] */ + u8 cmpl_cnt_th_idx:4; + /** tigger_mode_t */ + u8 cmpl_trig_mode:3; + /** enable interrupt for CMPT */ + u8 cmpl_en_intr:1; + + /** config flags: byte #6 */ + /** SW Context desc size, desc_sz_t */ + u8 sw_desc_sz:2; + /** prefetch bypass en */ + u8 pfetch_bypass:1; + /** OVF_DIS C2H ST over flow disable */ + u8 cmpl_ovf_chk_dis:1; + /** Port ID */ + u8 port_id:3; + /** Address Translation */ + u8 at:1; + + /* + * TODO: for Platform streaming DSA + */ + /** only if pipe = 1 */ + /** max 16. CDH length per packet */ + u8 cdh_max; + /** <= 7, max # gather buf. per packet */ + u8 pipe_gl_max; + /** pipe flow id */ + u8 pipe_flow_id; + /** pipe SLR id */ + u8 pipe_slr_id; + /** pipe route id */ + u16 pipe_tdest; + + /** user provided per-Q irq handler */ + unsigned long quld; /* set by user for per Q data */ + + /** TBA: Q interrupt top, per-queue additional handling code + * for example, network rx: napi_schedule(&Q->napi) + */ + void (*fp_descq_isr_top)(unsigned long qhndl, unsigned long quld); + /** + * optional rx packet handler: + * called from irq BH (i.e.qdma_queue_service_bh()) + * - udd: user defined data in the completion entry + * - sgcnt / sgl: packet data in scatter-gather list + * NOTE: a. do NOT modify any field of sgl + * b. if zero copy, do a get_page() to prevent page freeing + * c. do loop through the sgl with sg->next and stop + * at sgcnt. the last sg may not have sg->next = NULL + * Returns: + * - 0 to allow libqdma free/re-task the sgl + * - < 0, libqdma will keep the packet for processing again + * + * A single packet could contain: + * in the case of c2h_udd_en = 1: + * - udd only (udd valid, sgcnt = 0, sgl = NULL), or + * - udd + packdet data + * in the case of c2h_udd_en = 0: + * - packet data (udd = NULL, sgcnt > 0 and sgl valid) + */ + int (*fp_descq_c2h_packet)(unsigned long qhndl, unsigned long quld, + unsigned int len, unsigned int sgcnt, + struct qdma_sw_sg *sgl, void *udd); + + /** fill in by libqdma */ + /** name of the qdma device */ + char name[QDMA_QUEUE_NAME_MAXLEN]; + /** ring size of the queue */ + unsigned int rngsz; + /** completion ring size of the queue */ + unsigned int rngsz_cmpt; + /** C2H buffer size */ + unsigned int c2h_bufsz; +}; + +/*****************************************************************************/ +/** + * qdma_queue_add() - add a queue + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] qconf: queue configuration parameters + * @param[in] qhndl: list of unsigned long values that are the opaque qhndl + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_add(unsigned long dev_hndl, struct qdma_queue_conf *qconf, + unsigned long *qhndl, char *buf, int buflen); + +/*****************************************************************************/ +/** + * qdma_queue_reconfig() - reconfigure the queue + * + * @param[in] dev_hndl: qdma device handle + * @param[in] id: queue index + * @param[in] qconf: queue configuration + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_queue_reconfig(unsigned long dev_hndl, unsigned long id, + struct qdma_queue_conf *qconf, char *buf, int buflen); + +/*****************************************************************************/ +/** + * qdma_queue_start() - start a queue (i.e, online, ready for dma) + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: the opaque qhndl + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_start(unsigned long dev_hndl, unsigned long id, + char *buf, int buflen); + +/*****************************************************************************/ +/** + * qdma_queue_stop() - stop a queue (i.e., offline, NOT ready for dma) + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: the opaque qhndl + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_stop(unsigned long dev_hndl, unsigned long id, char *buf, + int buflen); + +/*****************************************************************************/ +/** + * * qdma_queue_prog_stm() - Program STM for queue (context, map, etc) + * * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_prog_stm(unsigned long dev_hndl, unsigned long id, char *buf, + int buflen); + +/*****************************************************************************/ +/** + * qdma_queue_remove() - remove a queue + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: the opaque qhndl + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_remove(unsigned long dev_hndl, unsigned long id, char *buf, + int buflen); + +/** + * queue helper/debug functions + */ + +/*****************************************************************************/ +/** + * qdma_queue_get_config() - retrieve the configuration of a queue + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: an opaque queue handle of type unsigned long + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +struct qdma_queue_conf *qdma_queue_get_config(unsigned long dev_hndl, + unsigned long id, char *buf, int buflen); + +/*****************************************************************************/ +/** + * qdma_queue_list() - display all configured queues in a string buffer + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +int qdma_queue_list(unsigned long dev_hndl, char *buf, int buflen); + +/*****************************************************************************/ +/** + * qdma_queue_dump() - display a queue's state in a string buffer + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: an opaque queue handle of type unsigned long + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +int qdma_queue_dump(unsigned long dev_hndl, unsigned long id, char *buf, + int buflen); + +/*****************************************************************************/ +/** + * qdma_queue_dump_desc() - display a queue's descriptor ring from index start + * ~ end in a string buffer + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: an opaque queue handle of type unsigned long + * @param[in] start: start index + * @param[in] end: end index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +int qdma_queue_dump_desc(unsigned long dev_hndl, unsigned long id, + unsigned int start, unsigned int end, char *buf, + int buflen); + +/*****************************************************************************/ +/** + * qdma_queue_dump_cmpt() - display a queue's descriptor ring from index start + * ~ end in a string buffer + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: an opaque queue handle of type unsigned long + * @param[in] start: start index + * @param[in] end: end index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +int qdma_queue_dump_cmpt(unsigned long dev_hndl, unsigned long id, + unsigned int start, unsigned int end, char *buf, + int buflen); + +#ifdef ERR_DEBUG +/*****************************************************************************/ +/** + * qdma_queue_set_err_induction() - Induce the error + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] id: error id + * @param[in] err: error info + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return success: if optional message buffer used then strlen of buf, + * otherwise QDMA_OPERATION_SUCCESSFUL + * @return <0: error + *****************************************************************************/ +int qdma_queue_set_err_induction(unsigned long dev_hndl, unsigned long id, + u32 err, char *buf, int buflen); +#endif + + +/** + * maximum request length + */ +#define QDMA_REQ_OPAQUE_SIZE 72 +/** + * Max length of the user defined data + */ +#define QDMA_UDD_MAXLEN 32 + +/** + * struct qdma_request - qdma request for read or write + */ +struct qdma_request { + /** private to the dma driver, do NOT touch */ + unsigned char opaque[QDMA_REQ_OPAQUE_SIZE]; + /** filled in by the calling function */ + /** for the calling function */ + unsigned long uld_data; + /** set fp_done for non-blocking mode */ + int (*fp_done)(struct qdma_request *, unsigned int bytes_done, int err); + /** timeout in mili-seconds, 0 - no timeout */ + unsigned int timeout_ms; + /** total data size */ + unsigned int count; + /** MM only, DDR/BRAM memory addr */ + u64 ep_addr; + /* flag to indicate if memcpy is required */ + u8 no_memcpy:1; + /** write: if write to the device */ + u8 write:1; + /** if sgt is already dma mapped */ + u8 dma_mapped:1; + /** user defined data present */ + u8 h2c_eot:1; + /** indicates end of transfer towards user kernel */ + u8 udd_len; + /** # of scatter-gather entries < 64K */ + unsigned int sgcnt; + /** scatter-gather list of data bufs */ + struct qdma_sw_sg *sgl; + /** udd data */ + u8 udd[QDMA_UDD_MAXLEN]; +}; + +/*****************************************************************************/ +/** + * qdma_request_submit() - submit a scatter-gather list of data for dma + * operation (for both read and write) + * + * @param[in] dev_hndl: hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] req: qdma request + * + * @return # of bytes transferred + * @return <0: error + *****************************************************************************/ +ssize_t qdma_request_submit(unsigned long dev_hndl, unsigned long id, + struct qdma_request *req); + +/*****************************************************************************/ +/** + * qdma_batch_request_submit() - submit a scatter-gather list of data for dma + * operation (for both read and write) + * + * @param[in] dev_hndl: hndl returned from qdma_device_open() + * @param[in] id: queue index + * @param[in] count: number of requests + * @param[in] reqv: qdma request + * + * @return # of bytes transferred + * @return <0: error + *****************************************************************************/ +ssize_t qdma_batch_request_submit(unsigned long dev_hndl, unsigned long id, + unsigned long count, struct qdma_request **reqv); + +/*****************************************************************************/ +/** + * qdma_queue_c2h_peek() - peek a receive (c2h) queue + * + * @param dev_hndl: hndl returned from qdma_device_open() + * @param qhndl: hndl returned from qdma_queue_add() + * + * filled in by libqdma: + * @param[in] udd_cnt: # of udd received + * @param[in] pkt_cnt: # of packets received + * @param[in] data_len: # of bytes of packet data received + * + * @return 0: success and # of packets received in the Q + * @return <0: error + *****************************************************************************/ +int qdma_queue_c2h_peek(unsigned long dev_hndl, unsigned long qhndl, + unsigned int *udd_cnt, unsigned int *pkt_cnt, + unsigned int *data_len); + +/*****************************************************************************/ +/** + * qdma_queue_avail_desc() - query of # of free descriptor + * + * @param[in] dev_hndl: hndl returned from qdma_device_open() + * @param[in] qhndl: hndl returned from qdma_queue_add() + * + * @return # of available desc in the queue + * @return <0: error + *****************************************************************************/ +int qdma_queue_avail_desc(unsigned long dev_hndl, unsigned long qhndl); + +/** packet/streaming interfaces */ + +/** + * struct qdma_cmpl_ctrl - completion control + */ +struct qdma_cmpl_ctrl { + /** global_csr_conf.c2h_cnt_th[N] */ + u8 cnt_th_idx:4; + /** global_csr_conf.c2h_timer_cnt[N] */ + u8 timer_idx:4; + /** tigger_mode_t */ + u8 trigger_mode:3; + /** enable status desc. for CMPT */ + u8 en_stat_desc:1; + /** enable interrupt for CMPT */ + u8 cmpl_en_intr:1; +}; + +/*****************************************************************************/ +/** + * qdma_queue_cmpl_ctrl() - read/set the c2h Q's completion control + * + * @param[in] dev_hndl: hndl returned from qdma_device_open() + * @param[in] qhndl: hndl returned from qdma_queue_add() + * @param[in] cctrl: completion control + * @param[in] set: read or set + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_queue_cmpl_ctrl(unsigned long dev_hndl, unsigned long qhndl, + struct qdma_cmpl_ctrl *cctrl, bool set); + +/*****************************************************************************/ +/** + * qdma_queue_packet_read() - read rcv'ed data (ST C2H dma operation) + * + * @param[in] dev_hndl: hndl returned from qdma_device_open() + * @param[in] qhndl: hndl returned from qdma_queue_add() + * @param[in] req: pointer to the request data + * @param[out] cctrl: completion control, if no change is desired, + * set it to NULL + * + * @return number of packets read + * @return <0: error + *****************************************************************************/ +int qdma_queue_packet_read(unsigned long dev_hndl, unsigned long qhndl, + struct qdma_request *req, struct qdma_cmpl_ctrl *cctrl); + +/*****************************************************************************/ +/** + * qdma_queue_packet_write() - submit data for h2c dma operation + * + * @param[in] dev_hndl: hndl returned from qdma_device_open() + * @param[in] qhndl: hndl returned from qdma_queue_add() + * @param[in] req: pointer to the list of packet data + * + * @return number of desc posted + * @return <0: error + *****************************************************************************/ +int qdma_queue_packet_write(unsigned long dev_hndl, unsigned long qhndl, + struct qdma_request *req); + +/*****************************************************************************/ +/** + * qdma_queue_service() - service the queue + * in the case of irq handler is registered by the user, the user should + * call qdma_queue_service() in its interrupt handler to service the queue + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] qhndl: hndl returned from qdma_queue_add() + * @param[in] budget: ST C2H only, max # of completions + * to be processed. 0 - no limit + * @param[in] c2h_upd_cmpl: To keep intrrupt disabled, set to false, + * Set to true to re-enable the interrupt: + * ST C2H only, max # of completions + * to be processed. 0 - no limit + * + *****************************************************************************/ +void qdma_queue_service(unsigned long dev_hndl, unsigned long qhndl, + int budget, bool c2h_upd_cmpl); + +/*****************************************************************************/ +/** + * qdma_intr_ring_dump() - display the interrupt ring info of a vector + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] vector_idx: vector number + * @param[in] start_idx: interrupt ring start idx + * @param[in] end_idx: interrupt ring end idx + * @param[in] buflen: length of the input buffer + * @param[out] buf: message bufferuffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_intr_ring_dump(unsigned long dev_hndl, unsigned int vector_idx, + int start_idx, int end_idx, char *buf, int buflen); + +/*****************************************************************************/ +/** + * qdma_descq_get_cmpt_udd() - function to receive the user defined data + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] qhndl: queue handle + * @param[in] buflen: length of the input buffer + * @param[out] buf: message bufferuffer + * + * @return 0: success + * @return <0: error + *****************************************************************************/ + +int qdma_descq_get_cmpt_udd(unsigned long dev_hndl, unsigned long qhndl, + char *buf, int buflen); + +#ifdef __QDMA_VF__ +/*****************************************************************************/ +/** + * qdma_vf_qconf call for VF to request qmax number of Qs + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] qmax: number of qs requested by vf + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_vf_qconf(unsigned long dev_hndl, int qmax); +#endif + +#endif diff --git a/QDMA/linux-kernel/libqdma/qdma_compat.h b/QDMA/linux-kernel/libqdma/qdma_compat.h new file mode 100644 index 0000000..b3514f0 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_compat.h @@ -0,0 +1,97 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +/** + * @file + * @brief This file is used to allow the driver to be compiled under multiple + * versions of Linux with as few obtrusive in-line ifdef's as possible. + */ + +#ifndef __QDMA_COMPAT_H +#define __QDMA_COMPAT_H + +#include <linux/version.h> +#include <asm/barrier.h> + +/** + * if linux kernel version is < 3.19.0 + * then define the dma_rmb and dma_wmb + */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) + +#ifndef dma_rmb +#define dma_rmb rmb +#endif /* #ifndef dma_rmb */ + +#ifndef dma_wmb +#define dma_wmb wmb +#endif /* #ifndef dma_wmb */ + +#endif + +/* use simple wait queue (swaitq) with newer kernels */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0) +#include <linux/swait.h> + +#define qdma_wait_queue struct swait_queue_head +#define qdma_waitq_init init_swait_queue_head +#define qdma_waitq_wakeup swake_up +#define qdma_waitq_wait_event swait_event_interruptible +#define qdma_waitq_wait_event_timeout swait_event_interruptible_timeout + +#else +#include <linux/wait.h> + +#define qdma_wait_queue wait_queue_head_t +#define qdma_waitq_init init_waitqueue_head +#define qdma_waitq_wakeup wake_up_interruptible +#define qdma_waitq_wait_event wait_event_interruptible +#define qdma_waitq_wait_event_timeout wait_event_interruptible_timeout + +#endif /* swaitq */ + +/* timer */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +#define qdma_timer_setup(timer, fp_handler, data) \ + timer_setup(timer, fp_handler, 0) + +#define qdma_timer_start(timer, expires) \ + mod_timer(timer, round_jiffies(jiffies + (expires))) + +#else +#define qdma_timer_setup(timer, fp_handler, priv) \ + do { \ + init_timer(timer); \ + timer->data = (unsigned long)priv; \ + timer->function = fp_handler; \ + del_timer(timer); \ + } while (0) + +#define qdma_timer_start(timer, timeout) \ + do { \ + del_timer(timer); \ + timer->expires = jiffies + (timeout); \ + add_timer(timer); \ + } while (0) + + +#endif /* timer */ + + +#endif /* #ifndef __QDMA_COMPAT_H */ diff --git a/QDMA/linux-kernel/libqdma/qdma_context.c b/QDMA/linux-kernel/libqdma/qdma_context.c new file mode 100644 index 0000000..2e3081f --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_context.c @@ -0,0 +1,909 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include <linux/kernel.h> +#include <linux/pci.h> +#include "qdma_device.h" +#include "qdma_descq.h" +#include "qdma_intr.h" +#include "qdma_regs.h" +#include "qdma_context.h" + +/** + * Make the interrupt context + */ +static int make_intr_context(struct xlnx_dma_dev *xdev, u32 *data, int cnt) +{ + int i, j; + + if ((xdev->conf.qdma_drv_mode != INDIRECT_INTR_MODE) && + (xdev->conf.qdma_drv_mode != AUTO_MODE)) { + memset(data, 0, cnt * sizeof(u32)); + return 0; + } + + /** Each context size is QDMA_REG_IND_CTXT_WCNT_3 + * data[QDMA_REG_IND_CTXT_WCNT_3 * QDMA_NUM_DATA_VEC_FOR_INTR_CXT] + */ + if (cnt < + (QDMA_NUM_DATA_VEC_FOR_INTR_CXT * QDMA_REG_IND_CTXT_WCNT_3)) { + pr_warn("%s, intr context %d < (%d * %d).\n", + xdev->conf.name, cnt, + QDMA_NUM_DATA_VEC_FOR_INTR_CXT, + QDMA_REG_IND_CTXT_WCNT_3); + return -EINVAL; + } + + memset(data, 0, cnt * sizeof(u32)); + /** program the coalescing context + * i -> Number of vectors + * j -> number of words for each vector context + */ + for (i = 0, j = 0; i < QDMA_NUM_DATA_VEC_FOR_INTR_CXT; i++) { + u64 bus_64; + u32 v; + struct intr_coal_conf *entry = (xdev->intr_coal_list + i); + + /* TBD: + * Assume that Qid is irrelevant for interrupt context + * programming because, interrupt context is done per vector + * which for the function and not for each queue + */ + + bus_64 = (PCI_DMA_H(entry->intr_ring_bus) << 20) | + ((PCI_DMA_L(entry->intr_ring_bus)) >> 12); + + v = bus_64 & M_INT_AGGR_W0_BADDR_64; + + /** Data[0] */ + data[j] = (1 << S_INT_AGGR_W0_F_VALID | + V_INT_AGGR_W0_VEC_ID(entry->vec_id)| + V_INT_AGGR_W0_BADDR_64(v) | + 1 << S_INT_AGGR_W0_F_COLOR); + + /** Data[1] */ + v = (bus_64 >> L_INT_AGGR_W0_BADDR_64); + data[++j] = v; + + v = (bus_64 >> + (L_INT_AGGR_W0_BADDR_64 + 32)) & M_INT_AGGR_W2_BADDR_64; + /** Data[3] */ + data[++j] = ((V_INT_AGGR_W2_BADDR_64(v)) | + V_INT_AGGR_W2_VEC_SIZE(xdev->conf.intr_rngsz)); + + j++; + } + + return 0; +} + +#ifndef __QDMA_VF__ +static int make_stm_c2h_context(struct qdma_descq *descq, u32 *data) +{ + int pipe_slr_id = descq->conf.pipe_slr_id; + int pipe_flow_id = descq->conf.pipe_flow_id; + int pipe_tdest = descq->conf.pipe_tdest; + + /* 191..160 */ + data[5] = F_STM_C2H_CTXT_ENTRY_VALID; + + /* 128..159 */ + data[1] = (pipe_slr_id << S_STM_CTXT_C2H_SLR) | + ((pipe_tdest & 0xFF00) << S_STM_CTXT_C2H_TDEST_H); + + /* 96..127 */ + data[0] = ((pipe_tdest & 0xFF) << S_STM_CTXT_C2H_TDEST_L) | + (pipe_flow_id << S_STM_CTXT_C2H_FID); + + pr_debug("%s, STM 0x%08x, 0x%08x, 0x%08x, 0x%08x, 0x%08x, 0x%08x.\n", + descq->conf.name, data[0], data[1], data[2], data[3], data[4], + data[5]); + return 0; +} + +static int make_stm_h2c_context(struct qdma_descq *descq, u32 *data) +{ + int pipe_slr_id = descq->conf.pipe_slr_id; + int pipe_flow_id = descq->conf.pipe_flow_id; + int pipe_tdest = descq->conf.pipe_tdest; + int dppkt = 1; + int log2_dppkt = ilog2(dppkt); + int pkt_lim = 0; + int max_ask = 8; + + /* 191..160 */ + data[5] = F_STM_H2C_CTXT_ENTRY_VALID; + + /* 128..159 */ + data[4] = (descq->qidx_hw << S_STM_CTXT_QID); + + /* 96..127 */ + data[3] = (pipe_slr_id << S_STM_CTXT_H2C_SLR) | + ((pipe_tdest & 0xFF00) << S_STM_CTXT_H2C_TDEST_H); + + /* 64..95 */ + data[2] = ((pipe_tdest & 0xFF) << S_STM_CTXT_H2C_TDEST_L) | + (pipe_flow_id << S_STM_CTXT_H2C_FID) | + (pkt_lim << S_STM_CTXT_PKT_LIM) | + (max_ask << S_STM_CTXT_MAX_ASK); + + /* 32..63 */ + data[1] = (dppkt << S_STM_CTXT_DPPKT) | + (log2_dppkt << S_STM_CTXT_LOG2_DPPKT); + + /* 0..31 */ + /** explicitly init to 8 to workaround hw issue due to which the value + * is getting initialized to zero instead of its reset value of 8 + */ + data[0] = 8; + + pr_debug("%s, STM 0x%08x, 0x%08x, 0x%08x, 0x%08x, 0x%08x, 0x%08x.\n", + descq->conf.name, data[0], data[1], data[2], data[3], data[4], + data[5]); + return 0; +} +#endif + +static int make_sw_context(struct qdma_descq *descq, u32 *data, int cnt) +{ + int ring_index; + + if (cnt < QDMA_REG_IND_CTXT_WCNT_5) { + pr_warn("%s, sw context count %d < %d.\n", + descq->xdev->conf.name, cnt, QDMA_REG_IND_CTXT_WCNT_5); + return -EINVAL; + } + memset(data, 0, cnt * sizeof(u32)); + + /* sw context */ + if ((descq->xdev->conf.qdma_drv_mode == INDIRECT_INTR_MODE) || + (descq->xdev->conf.qdma_drv_mode == AUTO_MODE)) { + ring_index = get_intr_ring_index(descq->xdev, descq->intr_id); + data[4] = V_DESC_CTXT_W4_VEC(ring_index) | + (0x01 << S_DESC_CTXT_W1_F_INTR_AGGR); + } else { + data[4] = V_DESC_CTXT_W4_VEC(descq->intr_id); + } + + data[3] = PCI_DMA_H(descq->desc_bus); + data[2] = PCI_DMA_L(descq->desc_bus); + data[1] = (1 << S_DESC_CTXT_W1_F_QEN) | + (descq->conf.cmpl_status_pend_chk << + S_DESC_CTXT_W1_F_CMPL_STATUS_PEND_CHK) | + (descq->conf.cmpl_status_acc_en << + S_DESC_CTXT_W1_F_CMPL_STATUS_ACC_EN) | + V_DESC_CTXT_W1_RNG_SZ(descq->conf.desc_rng_sz_idx) | + (descq->conf.desc_bypass << S_DESC_CTXT_W1_F_BYP) | + (descq->conf.cmpl_status_en << + S_DESC_CTXT_W1_F_CMPL_STATUS_EN) | + (descq->conf.irq_en << S_DESC_CTXT_W1_F_IRQ_EN) | + (~descq->conf.st << S_DESC_CTXT_W1_F_IS_MM); + + if (descq->conf.desc_bypass && + (descq->conf.sw_desc_sz == DESC_SZ_64B)) { + data[1] |= V_DESC_CTXT_W1_DSC_SZ(descq->conf.sw_desc_sz); + } else { + if (!descq->conf.st) { /* mm h2c/c2h */ + data[1] |= (V_DESC_CTXT_W1_DSC_SZ(DESC_SZ_32B)) | + (descq->channel << S_DESC_CTXT_W1_F_MM_CHN); + } else if (descq->conf.c2h) { /* st c2h */ + data[1] |= (descq->conf.fetch_credit << + S_DESC_CTXT_W1_F_FCRD_EN) | + (V_DESC_CTXT_W1_DSC_SZ(DESC_SZ_8B)); + } else { /* st h2c */ + data[1] |= V_DESC_CTXT_W1_DSC_SZ(DESC_SZ_16B); + + /* For STM & TM mode, set fcrd_en for ST H2C */ + if (descq->xdev->stm_en || + descq->xdev->conf.tm_mode_en) + data[1] |= (descq->conf.fetch_credit << + S_DESC_CTXT_W1_F_FCRD_EN); + } + } + + /* pidx = 0; irq_ack = 0 */ + data[0] = ((V_DESC_CTXT_W0_FUNC_ID(descq->xdev->func_id)) | + (((descq->xdev->conf.qdma_drv_mode != + POLL_MODE) ? 1 : 0) << + S_DESC_CTXT_W0_F_INTR_ARM)); + +#ifdef ERR_DEBUG + if (descq->induce_err & (1 << param)) { + data[0] |= (0xFFF << S_DESC_CTXT_W0_FUNC_ID); + pr_info("induced error %d", ind_ctxt_cmd_err); + } +#endif + + pr_debug("%s, SW 0x%08x 0x%08x, 0x%08x, 0x%08x, 0x%08x.\n", + descq->conf.name, data[4], data[3], data[2], data[1], data[0]); + + return 0; +} + +/* ST: prefetch context setup */ +static int make_prefetch_context(struct qdma_descq *descq, u32 *data, int cnt) +{ + BUG_ON(!descq); + BUG_ON(!data); + + if (cnt < QDMA_REG_IND_CTXT_WCNT_2) { + pr_warn("%s, prefetch context count %d < %d.\n", + descq->conf.name, cnt, QDMA_REG_IND_CTXT_WCNT_2); + return -EINVAL; + } + memset(data, 0, cnt * sizeof(u32)); + + /* prefetch context */ + data[1] = 1 << S_PFTCH_W1_F_VALID; + data[0] = (descq->conf.pfetch_bypass << S_PFTCH_W0_F_BYPASS) | + (descq->conf.c2h_buf_sz_idx << S_PFTCH_W0_BUF_SIZE_IDX) | + /** TBD: this code needs to be deleted once the PG is updated. + * func_id bits are going to be reserved + * need to get clarity on port id + */ + //(descq->conf.port_id << S_PFTCH_W0_PORT_ID) | + // (descq->xdev->func_id << S_PFTCH_W0_FUNC_ID) | + (descq->conf.pfetch_en << S_PFTCH_W0_F_EN_PFTCH); + + pr_debug("%s, PFTCH 0x%08x 0x%08x\n", + descq->conf.name, data[1], data[0]); + + return 0; +} + +/* ST C2H : writeback context setup */ +static int make_cmpt_context(struct qdma_descq *descq, u32 *data, int cnt) +{ + u64 bus_64; + u32 v; + int ring_index; + + if (cnt < QDMA_REG_IND_CTXT_WCNT_5) { + pr_warn("%s, cmpt context count %d < %d.\n", + descq->xdev->conf.name, cnt, QDMA_REG_IND_CTXT_WCNT_5); + return -EINVAL; + } + memset(data, 0, cnt * sizeof(u32)); + + /* writeback context */ + bus_64 = (PCI_DMA_H(descq->desc_cmpt_bus) << 26) | + ((PCI_DMA_L(descq->desc_cmpt_bus)) >> 6); + + data[0] = (descq->conf.cmpl_stat_en << S_CMPT_CTXT_W0_F_EN_STAT_DESC) | + (descq->conf.irq_en << S_CMPT_CTXT_W0_F_EN_INT) | + (V_CMPT_CTXT_W0_TRIG_MODE(descq->conf.cmpl_trig_mode)) | + (V_CMPT_CTXT_W0_FNC_ID(descq->xdev->func_id)) | + (descq->conf.cmpl_timer_idx << S_CMPT_CTXT_W0_TIMER_IDX) | + (descq->conf.cmpl_cnt_th_idx << S_CMPT_CTXT_W0_COUNTER_IDX) | + (1 << S_CMPT_CTXT_W0_F_COLOR) | + (descq->conf.cmpl_rng_sz_idx << S_CMPT_CTXT_W0_RNG_SZ); + + data[1] = bus_64 & 0xFFFFFFFF; + + v = PCI_DMA_H(bus_64) & M_CMPT_CTXT_W2_BADDR_64; + data[2] = (V_CMPT_CTXT_W2_BADDR_64(v)) | + (V_CMPT_CTXT_W2_DESC_SIZE(descq->conf.cmpl_desc_sz)); + + data[3] = (1 << S_CMPT_CTXT_W3_F_VALID); + + if ((descq->xdev->conf.qdma_drv_mode == INDIRECT_INTR_MODE) || + (descq->xdev->conf.qdma_drv_mode == AUTO_MODE)) { + ring_index = get_intr_ring_index(descq->xdev, descq->intr_id); + data[4] = (descq->conf.cmpl_ovf_chk_dis << + S_CMPT_CTXT_W4_F_OVF_CHK_DIS) | + V_CMPT_CTXT_W4_VEC(ring_index) | + (0x01 << S_CMPT_CTXT_W4_F_INTR_AGGR); + } else { + data[4] = (descq->conf.cmpl_ovf_chk_dis << + S_CMPT_CTXT_W4_F_OVF_CHK_DIS) | + V_CMPT_CTXT_W4_VEC(descq->intr_id); + } + + pr_debug("%s, CMPT 0x%08x, 0x%08x, 0x%08x, 0x%08x, 0x%08x.\n", + descq->conf.name, data[4], data[3], data[2], data[1], data[0]); + + return 0; +} + +#ifdef __QDMA_VF__ +int qdma_intr_context_setup(struct xlnx_dma_dev *xdev) +{ + int i = 0; + int rv; + struct mbox_msg *m = NULL; + struct mbox_msg_hdr *hdr = NULL; + struct mbox_msg_intr_ctxt *ictxt = NULL; + + if ((xdev->conf.qdma_drv_mode != INDIRECT_INTR_MODE) && + (xdev->conf.qdma_drv_mode != AUTO_MODE)) + return 0; + + m = qdma_mbox_msg_alloc(xdev, + MBOX_OP_INTR_CTXT); + if (!m) + return -ENOMEM; + + hdr = &m->hdr; + ictxt = &m->intr_ctxt; + + ictxt->clear = 1; + ictxt->vec_base = xdev->dvec_start_idx; + ictxt->num_rings = QDMA_NUM_DATA_VEC_FOR_INTR_CXT; + + for (i = 0; i < QDMA_NUM_DATA_VEC_FOR_INTR_CXT; i++) { + ictxt->ring_index_list[i] = + get_intr_ring_index(xdev, xdev->dvec_start_idx + i); + } + + rv = make_intr_context(xdev, ictxt->w, + (QDMA_NUM_DATA_VEC_FOR_INTR_CXT * + QDMA_REG_IND_CTXT_WCNT_3)); + if (rv < 0) + return rv; + + rv = qdma_mbox_msg_send(xdev, m, 1, MBOX_OP_INTR_CTXT_RESP, + QDMA_MBOX_MSG_TIMEOUT_MS); + if (rv < 0) { + if (rv != -ENODEV) + pr_err("%s, mbox failed for interrupt context %d.\n", + xdev->conf.name, rv); + goto free_msg; + } + + rv = hdr->status; + +free_msg: + qdma_mbox_msg_free(m); + if (rv < 0) + return rv; + + return 0; +} + +int qdma_descq_context_clear(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + bool st, bool c2h, bool clr) +{ + struct mbox_msg *m = qdma_mbox_msg_alloc(xdev, MBOX_OP_QCTXT_CLR); + struct mbox_msg_hdr *hdr = m ? &m->hdr : NULL; + struct mbox_msg_qctxt *qctxt = m ? &m->qctxt : NULL; + int rv; + + if (!m) + return -ENOMEM; + + qctxt->qid = qid_hw; + qctxt->st = st; + qctxt->c2h = c2h; + + rv = qdma_mbox_msg_send(xdev, m, 1, MBOX_OP_QCTXT_CLR_RESP, + QDMA_MBOX_MSG_TIMEOUT_MS); + if (rv < 0) { + if (rv != -ENODEV) + pr_info("%s, qid_hw 0x%x mbox failed %d.\n", + xdev->conf.name, qid_hw, rv); + goto err_out; + } + + rv = hdr->status; + +err_out: + qdma_mbox_msg_free(m); + return rv; +} + +int qdma_descq_context_read(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + bool st, bool c2h, + struct hw_descq_context *context) +{ + struct mbox_msg *m = qdma_mbox_msg_alloc(xdev, MBOX_OP_QCTXT_RD); + struct mbox_msg_hdr *hdr = m ? &m->hdr : NULL; + struct mbox_msg_qctxt *qctxt = m ? &m->qctxt : NULL; + int rv; + + if (!m) + return -ENOMEM; + + qctxt->qid = qid_hw; + qctxt->st = st; + qctxt->c2h = c2h; + + rv = qdma_mbox_msg_send(xdev, m, 1, MBOX_OP_QCTXT_RD_RESP, + QDMA_MBOX_MSG_TIMEOUT_MS); + if (rv < 0) { + if (rv != -ENODEV) + pr_info("%s, qid_hw 0x%x mbox failed %d.\n", + xdev->conf.name, qid_hw, rv); + goto err_out; + } + + if (hdr->status) { + rv = hdr->status; + goto err_out; + } + + memcpy(context, &qctxt->context, sizeof(struct hw_descq_context)); + + return 0; + +err_out: + qdma_mbox_msg_free(m); + return rv; +} + +int qdma_descq_context_setup(struct qdma_descq *descq) +{ + struct xlnx_dma_dev *xdev = descq->xdev; + struct mbox_msg *m = qdma_mbox_msg_alloc(xdev, MBOX_OP_QCTXT_WRT); + struct mbox_msg_hdr *hdr = m ? &m->hdr : NULL; + struct mbox_msg_qctxt *qctxt = m ? &m->qctxt : NULL; + struct hw_descq_context *context = m ? &qctxt->context : NULL; + int rv; + + if (!m) + return -ENOMEM; + + rv = qdma_descq_context_read(xdev, descq->qidx_hw, + descq->conf.st, descq->conf.c2h, + context); + if (rv < 0) { + pr_info("%s, qid_hw 0x%x, %s mbox failed %d.\n", + xdev->conf.name, descq->qidx_hw, descq->conf.name, rv); + goto err_out; + } + + make_sw_context(descq, context->sw, QDMA_REG_IND_CTXT_WCNT_5); + if (descq->conf.st && descq->conf.c2h) { + make_prefetch_context(descq, context->prefetch, 2); + make_cmpt_context(descq, context->cmpt, + QDMA_REG_IND_CTXT_WCNT_5); + } + + qctxt->clear = 1; + qctxt->verify = 1; + qctxt->st = descq->conf.st; + qctxt->c2h = descq->conf.c2h; + qctxt->qid = descq->qidx_hw; + + rv = qdma_mbox_msg_send(xdev, m, 1, MBOX_OP_QCTXT_WRT_RESP, + QDMA_MBOX_MSG_TIMEOUT_MS); + if (rv < 0) { + if (rv != -ENODEV) + pr_info("%s, qid_hw 0x%x, %s mbox failed %d.\n", + xdev->conf.name, descq->qidx_hw, + descq->conf.name, rv); + goto err_out; + } + + if (hdr->status) { + rv = hdr->status; + pr_err("Failed to set intr ctxt message\n"); + goto err_out; + } + +err_out: + qdma_mbox_msg_free(m); + return rv; +} + +#else /* PF only */ + +int qdma_prog_intr_context(struct xlnx_dma_dev *xdev, + struct mbox_msg_intr_ctxt *ictxt) +{ + int i = 0; + int rv; + int ring_index; + + for (i = 0; i < ictxt->num_rings; i++) { + ring_index = ictxt->ring_index_list[i]; + + /* clear the interrupt context for each vector */ + rv = hw_indirect_ctext_prog(xdev, + ring_index, + QDMA_CTXT_CMD_CLR, + QDMA_CTXT_SEL_COAL, + NULL, + QDMA_REG_IND_CTXT_WCNT_8, + 0); + if (rv < 0) + return rv; + + rv = hw_indirect_ctext_prog(xdev, + ring_index, + QDMA_CTXT_CMD_WR, + QDMA_CTXT_SEL_COAL, + (ictxt->w + + (QDMA_REG_IND_CTXT_WCNT_3 * i)), + QDMA_REG_IND_CTXT_WCNT_3, + 1); + if (rv < 0) + return rv; +#if 0 + /** print interrupt context */ + pr_debug("intr_ctxt WR: ring_index(Qid) = %d, data[2] = %x data[1] = %x data[0] = %x\n", + ring_index, + *(ictxt->w + + ((QDMA_REG_IND_CTXT_WCNT_3*i) + 2)), + *(ictxt->w + + ((QDMA_REG_IND_CTXT_WCNT_3*i) + 1)), + *(ictxt->w + (QDMA_REG_IND_CTXT_WCNT_3*i))); + + rv = hw_indirect_ctext_prog(xdev, + ring_index, + QDMA_CTXT_CMD_RD, + QDMA_CTXT_SEL_COAL, + intr_ctxt, + QDMA_REG_IND_CTXT_WCNT_3, + 1); + if (rv < 0) + return rv; + + pr_debug("intr_ctxt RD: ring_index(Qid) = %d, data[2] = %x data[1] = %x data[0] = %x\n", + ring_index, + intr_ctxt[2], + intr_ctxt[1], + intr_ctxt[0]); +#endif + } + + return 0; +} + +int qdma_intr_context_setup(struct xlnx_dma_dev *xdev) +{ + u32 data[(QDMA_NUM_DATA_VEC_FOR_INTR_CXT * + QDMA_REG_IND_CTXT_WCNT_3)]; + int i = 0; + int rv; + int ring_index; + + if ((xdev->conf.qdma_drv_mode != INDIRECT_INTR_MODE) && + (xdev->conf.qdma_drv_mode != AUTO_MODE)) + return 0; + + /** Preparing the interrupt context for all the vectors + * each vector's context width is QDMA_REG_IND_CTXT_WCNT_3(3) + */ + rv = make_intr_context(xdev, data, + (QDMA_NUM_DATA_VEC_FOR_INTR_CXT * + QDMA_REG_IND_CTXT_WCNT_3)); + if (rv < 0) + return rv; + + for (i = 0; i < QDMA_NUM_DATA_VEC_FOR_INTR_CXT; i++) { + ring_index = get_intr_ring_index(xdev, + (i + xdev->dvec_start_idx)); + /* clear the interrupt context for each vector */ + rv = hw_indirect_ctext_prog(xdev, + ring_index, + QDMA_CTXT_CMD_CLR, + QDMA_CTXT_SEL_COAL, + NULL, + QDMA_REG_IND_CTXT_WCNT_8, + 0); + if (rv < 0) + return rv; + + rv = hw_indirect_ctext_prog(xdev, + ring_index, + QDMA_CTXT_CMD_WR, + QDMA_CTXT_SEL_COAL, + (data + (QDMA_REG_IND_CTXT_WCNT_3 * i)), + QDMA_REG_IND_CTXT_WCNT_3, + 1); + if (rv < 0) + return rv; +#if 0 + /** print interrupt context */ + pr_debug("intr_ctxt WR: ring_index(Qid) = %d, data[2] = %x data[1] = %x data[0] = %x\n", + ring_index, + *(data + ((QDMA_REG_IND_CTXT_WCNT_3*i) + 2)), + *(data + ((QDMA_REG_IND_CTXT_WCNT_3*i) + 1)), + *(data + (QDMA_REG_IND_CTXT_WCNT_3*i))); + + rv = hw_indirect_ctext_prog(xdev, + ring_index, + QDMA_CTXT_CMD_RD, + QDMA_CTXT_SEL_COAL, + intr_ctxt, + QDMA_REG_IND_CTXT_WCNT_3, + 1); + if (rv < 0) + return rv; + + pr_debug("intr_ctxt RD: ring_index(Qid) = %d, data[2] = %x data[1] = %x data[0] = %x\n", + ring_index, + intr_ctxt[2], + intr_ctxt[1], + intr_ctxt[0]); +#endif + } + + return 0; +} + +int qdma_descq_context_clear(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + bool st, bool c2h, bool clr) +{ + u8 sel; + int rv = 0; + + sel = c2h ? QDMA_CTXT_SEL_SW_C2H : QDMA_CTXT_SEL_SW_H2C; + rv = hw_indirect_ctext_prog(xdev, qid_hw, + clr ? QDMA_CTXT_CMD_CLR : QDMA_CTXT_CMD_INV, + sel, NULL, 0, 0); + if (rv < 0) + return rv; + + sel = c2h ? QDMA_CTXT_SEL_HW_C2H : QDMA_CTXT_SEL_HW_H2C; + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_CLR, sel, + NULL, 0, 0); + if (rv < 0) + return rv; + + sel = c2h ? QDMA_CTXT_SEL_CR_C2H : QDMA_CTXT_SEL_CR_H2C; + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_CLR, sel, + NULL, 0, 0); + if (rv < 0) + return rv; + + /* Only clear prefetch and writeback contexts if this queue is ST C2H */ + if (st && c2h) { + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_CLR, + QDMA_CTXT_SEL_PFTCH, NULL, 0, 0); + if (rv < 0) + return rv; + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_CLR, + QDMA_CTXT_SEL_CMPT, NULL, 0, 0); + if (rv < 0) + return rv; + } + + return 0; +} + +int qdma_descq_context_setup(struct qdma_descq *descq) +{ + struct xlnx_dma_dev *xdev = descq->xdev; + struct hw_descq_context context; + int rv; + + rv = qdma_descq_context_clear(xdev, descq->qidx_hw, descq->conf.st, + descq->conf.c2h, 1); + if (rv < 0) + return rv; + + memset(&context, 0, sizeof(context)); + + make_sw_context(descq, context.sw, QDMA_REG_IND_CTXT_WCNT_5); + + if (descq->conf.st && descq->conf.c2h) { + make_prefetch_context(descq, + context.prefetch, QDMA_REG_IND_CTXT_WCNT_2); + make_cmpt_context(descq, context.cmpt, + QDMA_REG_IND_CTXT_WCNT_5); + } + + return qdma_descq_context_program(descq->xdev, descq->qidx_hw, + descq->conf.st, descq->conf.c2h, &context); +} + +int qdma_descq_stm_setup(struct qdma_descq *descq) +{ + struct stm_descq_context context; + + memset(&context, 0, sizeof(context)); + if (descq->conf.c2h) + make_stm_c2h_context(descq, context.stm); + else + make_stm_h2c_context(descq, context.stm); + + return qdma_descq_stm_program(descq->xdev, descq->qidx_hw, + descq->conf.pipe_flow_id, + descq->conf.c2h, false, + &context); +} + +int qdma_descq_stm_clear(struct qdma_descq *descq) +{ + struct stm_descq_context context; + + memset(&context, 0, sizeof(context)); + return qdma_descq_stm_program(descq->xdev, descq->qidx_hw, + descq->conf.pipe_flow_id, + descq->conf.c2h, true, + &context); +} + +int qdma_descq_context_read(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + bool st, bool c2h, + struct hw_descq_context *context) +{ + u8 sel; + int rv = 0; + + memset(context, 0, sizeof(struct hw_descq_context)); + + sel = c2h ? QDMA_CTXT_SEL_SW_C2H : QDMA_CTXT_SEL_SW_H2C; + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_RD, sel, + context->sw, + QDMA_REG_IND_CTXT_WCNT_5, 0); + if (rv < 0) + return rv; + + sel = c2h ? QDMA_CTXT_SEL_HW_C2H : QDMA_CTXT_SEL_HW_H2C; + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_RD, sel, + context->hw, + QDMA_REG_IND_CTXT_WCNT_2, 0); + if (rv < 0) + return rv; + + sel = c2h ? QDMA_CTXT_SEL_CR_C2H : QDMA_CTXT_SEL_CR_H2C; + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_RD, sel, + context->cr, + QDMA_REG_IND_CTXT_WCNT_1, 0); + if (rv < 0) + return rv; + + if (st && c2h) { + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_RD, + QDMA_CTXT_SEL_CMPT, + context->cmpt, + QDMA_REG_IND_CTXT_WCNT_5, 0); + if (rv < 0) + return rv; + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_RD, + QDMA_CTXT_SEL_PFTCH, + context->prefetch, + QDMA_REG_IND_CTXT_WCNT_2, 0); + if (rv < 0) + return rv; + } + + return 0; +} + +int qdma_intr_context_read(struct xlnx_dma_dev *xdev, + int ring_index, unsigned int ctxt_sz, u32 *context) +{ + int rv = 0; + + memset(context, 0, (sizeof(u32) * ctxt_sz)); + + rv = hw_indirect_ctext_prog(xdev, ring_index, + QDMA_CTXT_CMD_RD, QDMA_CTXT_SEL_COAL, + context, ctxt_sz, 0); + if (rv < 0) + return rv; + + return 0; +} + +int qdma_descq_context_program(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + bool st, bool c2h, + struct hw_descq_context *context) + +{ + u8 sel; + int rv; + + /* always clear first */ + rv = qdma_descq_context_clear(xdev, qid_hw, st, c2h, 1); + if (rv < 0) + return rv; + + sel = c2h ? QDMA_CTXT_SEL_SW_C2H : QDMA_CTXT_SEL_SW_H2C; + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_WR, + sel, + context->sw, + QDMA_REG_IND_CTXT_WCNT_5, 1); + if (rv < 0) + return rv; + + /* Only c2h st specific setup done below*/ + if (!st || !c2h) + return 0; + + /* prefetch context */ + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_WR, + QDMA_CTXT_SEL_PFTCH, + context->prefetch, + QDMA_REG_IND_CTXT_WCNT_2, 1); + if (rv < 0) + return rv; + + /* writeback context */ + rv = hw_indirect_ctext_prog(xdev, qid_hw, QDMA_CTXT_CMD_WR, + QDMA_CTXT_SEL_CMPT, + context->cmpt, + QDMA_REG_IND_CTXT_WCNT_5, 1); + if (rv < 0) + return rv; + + return 0; +} + + +int qdma_descq_stm_read(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + u8 pipe_flow_id, bool c2h, bool map, bool ctxt, + struct stm_descq_context *context) +{ + int rv = 0; + + if (!map) { + rv = hw_indirect_stm_prog(xdev, qid_hw, pipe_flow_id, + STM_CSR_CMD_RD, + ctxt ? STM_IND_ADDR_Q_CTX_H2C : + STM_IND_ADDR_FORCED_CAN, + context->stm, 5, false); + } else { + rv = hw_indirect_stm_prog(xdev, qid_hw, pipe_flow_id, + STM_CSR_CMD_RD, + c2h ? STM_IND_ADDR_C2H_MAP : + STM_IND_ADDR_H2C_MAP, + context->stm, c2h ? 1 : 5, + false); + } + return rv; +} + +int qdma_descq_stm_program(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + u8 pipe_flow_id, bool c2h, bool clear, + struct stm_descq_context *context) +{ + int rv; + + if (!c2h) { + /* need to program stm context */ + rv = hw_indirect_stm_prog(xdev, qid_hw, pipe_flow_id, + STM_CSR_CMD_WR, + STM_IND_ADDR_Q_CTX_H2C, + context->stm, 5, clear); + if (rv < 0) + return rv; + rv = hw_indirect_stm_prog(xdev, qid_hw, pipe_flow_id, + STM_CSR_CMD_WR, + STM_IND_ADDR_H2C_MAP, + context->stm, 1, clear); + if (rv < 0) + return rv; + } + + /* Only c2h st specific setup done below*/ + if (!c2h) + return 0; + + rv = hw_indirect_stm_prog(xdev, qid_hw, pipe_flow_id, + STM_CSR_CMD_WR, + STM_IND_ADDR_Q_CTX_C2H, + context->stm, 2, clear); + if (rv < 0) + return rv; + + rv = hw_indirect_stm_prog(xdev, qid_hw, pipe_flow_id, + STM_CSR_CMD_WR, STM_IND_ADDR_C2H_MAP, + context->stm, 1, clear); + if (rv < 0) + return rv; + + return 0; +} +#endif diff --git a/QDMA/linux-kernel/libqdma/qdma_context.h b/QDMA/linux-kernel/libqdma/qdma_context.h new file mode 100644 index 0000000..7d41321 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_context.h @@ -0,0 +1,198 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __LIBQDMA_CONTEXT_H__ +#define __LIBQDMA_CONTEXT_H__ +/** + * @file + * @brief This file contains the declarations for qdma context handlers + * + */ +#include "xdev.h" +#include "qdma_mbox.h" + +/*****************************************************************************/ +/** + * qdma_intr_context_setup() - handler to set the qdma interrupt context + * + * @param[in] xdev: pointer to xdev + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_intr_context_setup(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * qdma_prog_intr_context() - + * handler to program the qdma interrupt context for + * VF from PF + * + * @param[in] xdev: pointer to xdev + * @param[in] ictxt: interrupt context + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ + +int qdma_prog_intr_context(struct xlnx_dma_dev *xdev, + struct mbox_msg_intr_ctxt *ictxt); + +/*****************************************************************************/ +/** + * qdma_descq_context_setup() - handler to set the qdma sw descriptor context + * + * @param[in] descq: pointer to qdma_descq + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_context_setup(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * qdma_descq_stm_setup() - handler to set the qdma stm + * + * @param[in] descq: pointer to qdma_descq + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_stm_setup(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * qdma_descq_stm_clear() - handler to clear the qdma stm + * + * @param[in] descq: pointer to qdma_descq + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_stm_clear(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * qdma_descq_context_clear() - handler to clear the qdma sw descriptor context + * + * @param[in] xdev: pointer to xdev + * @param[in] qid_hw: hw qidx + * @param[in] st: indicated whether the mm mode or st mode + * @param[in] c2h: indicates whether the h2c or c2h direction + * @param[in] clr: flag to indicate whether to clear the context or not + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_context_clear(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + bool st, bool c2h, bool clr); + +/*****************************************************************************/ +/** + * qdma_descq_context_read() - handler to read the queue context + * + * @param[in] xdev: pointer to xdev + * @param[in] qid_hw: hw qidx + * @param[in] st: indicated whether the mm mode or st mode + * @param[in] c2h: indicates whether the h2c or c2h direction + * @param[out] ctxt: pointer to context data + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_context_read(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + bool st, bool c2h, + struct hw_descq_context *ctxt); + +/*****************************************************************************/ +/** + * qdma_intr_context_read() - handler to read the interrupt context + * + * @param[in] xdev: pointer to xdev + * @param[in] ring_index: interrupt ring index + * @param[in] ctxt_sz: context size + * @param[out] context: pointer to interrupt context* + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_intr_context_read(struct xlnx_dma_dev *xdev, + int ring_index, unsigned int ctxt_sz, + u32 *context); + +#ifndef __QDMA_VF__ +/*****************************************************************************/ +/** + * qdma_descq_context_read() - handler to program the context for vf + * + * @param[in] xdev: pointer to xdev + * @param[in] qid_hw: hw qidx + * @param[in] st: indicated whether the mm mode or st mode + * @param[in] c2h: indicates whether the h2c or c2h direction + * @param[out] ctxt: pointer to context data + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_context_program(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + bool st, bool c2h, + struct hw_descq_context *ctxt); + + +/*****************************************************************************/ +/** + * qdma_descq_stm_read() - handler to read stm context, can, maps + * + * @param[in] xdev: pointer to xdev + * @param[in] qid_hw: hw qidx + * @param[in] pipe_flow_id: pipe_flow_id for queue + * @param[in] c2h: indicates whether the h2c or c2h direction + * @param[in] map: indicates whether to read map or ctxt/can + * @param[in] ctxt: indicates whether to read ctxt or can + * @param[out] context: pointer to context data + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_stm_read(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + u8 pipe_flow_id, bool c2h, bool map, bool ctxt, + struct stm_descq_context *context); + + +/*****************************************************************************/ +/** + * qdma_descq_stm_program() - handler to program the stm + * + * @param[in] xdev: pointer to xdev + * @param[in] qid_hw: hw qidx + * @param[in] pipe_flow_id: flow id for pipe + * @param[in] c2h: indicates whether the h2c or c2h direction + * @param[in] clear: flag to prog/clear stm context/maps + * @param[out] stm: pointer to stm data + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_stm_program(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + uint8_t pipe_flow_id, bool c2h, bool clear, + struct stm_descq_context *context); + +#endif + +#endif /* ifndef __LIBQDMA_CONTEXT_H__ */ diff --git a/QDMA/linux-kernel/libqdma/qdma_debugfs.c b/QDMA/linux-kernel/libqdma/qdma_debugfs.c new file mode 100644 index 0000000..07e5e43 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_debugfs.c @@ -0,0 +1,74 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "qdma_debugfs.h" + +/*****************************************************************************/ +/** + * qdma_debugfs_init() - function to initialize debugfs + * + * param[in]: qdma_debugfs_root - debugfs root + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_debugfs_init(struct dentry **qdma_debugfs_root) +{ + struct dentry *debugfs_root = NULL; + /* create a directory by the name qdma in + * /sys/kernel/debugfs + */ +#ifndef __QDMA_VF__ + debugfs_root = debugfs_create_dir("qdma_pf", NULL); + if (!debugfs_root) + return -ENOENT; + pr_debug("created qdma_pf dir in Linux debug file system\n"); + +#else + debugfs_root = debugfs_create_dir("qdma_vf", NULL); + if (!debugfs_root) + return -ENOENT; + pr_debug("created qdma_vf dir in Linux debug file system\n"); + +#endif + + *qdma_debugfs_root = debugfs_root; + return 0; +} + +/*****************************************************************************/ +/** + * qdma_debugfs_exit() - function to cleanup debugfs + * + * param[in]: qdma_debugfs_root - debugfs root + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +void qdma_debugfs_exit(struct dentry *qdma_debugfs_root) +{ + debugfs_remove_recursive(qdma_debugfs_root); +#ifndef __QDMA_VF__ + pr_debug("removed qdma_pf directory from Linux debug file system\n"); +#else + pr_debug("removed qdma_vf directory from Linux debug file system\n"); +#endif +} diff --git a/QDMA/linux-kernel/libqdma/qdma_debugfs.h b/QDMA/linux-kernel/libqdma/qdma_debugfs.h new file mode 100644 index 0000000..f81dce4 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_debugfs.h @@ -0,0 +1,52 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __QDMA_DEBUGFS_H__ +#define __QDMA_DEBUGFS_H__ + +#include <linux/pci.h> +#include <linux/debugfs.h> +#include <linux/fs.h> +#include <asm/uaccess.h> +#include <linux/mutex.h> +#include <linux/slab.h> + +#define DBGFS_DBG_FNAME_SZ (64) +#define DBGFS_CTXT_ENTRY_NAME_SZ (64) +#define QDMA_DEV_NAME_SZ (64) + +/*****************************************************************************/ +/** + * qdma_debugfs_init() - function to initialize debugfs + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int qdma_debugfs_init(struct dentry **qdma_debugfs_root); + +/*****************************************************************************/ +/** + * qdma_debugfs_exit() - function to cleanup debugfs + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +void qdma_debugfs_exit(struct dentry *qdma_debugfs_root); + +#endif diff --git a/QDMA/linux-kernel/libqdma/qdma_debugfs_dev.c b/QDMA/linux-kernel/libqdma/qdma_debugfs_dev.c new file mode 100644 index 0000000..77a73e9 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_debugfs_dev.c @@ -0,0 +1,655 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifdef DEBUGFS +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "qdma_debugfs_dev.h" +#include "xdev_regs.h" +#include <linux/fs.h> +#include <linux/uaccess.h> +#include <linux/mutex.h> + +#define DEBUGFS_DEV_INFO_SZ (256) + +#define DBGFS_ERR_BUFLEN (64) +#define DEBGFS_LINE_SZ (81) +#define DEBGFS_GEN_NAME_SZ (32) +#define REG_DUMP_SIZE_PER_LINE (256) + + +enum dbgfs_dev_dbg_file_type { + DBGFS_DEV_DBGF_INFO = 0, + DBGFS_DEV_DBGF_REGS = 1, + DBGFS_DEV_DBGF_END, +}; + +struct dbgfs_dev_dbgf { + char name[DBGFS_DBG_FNAME_SZ]; + struct file_operations fops; +}; + +struct dbgfs_dev_priv { + unsigned long dev_hndl; + char dev_name[QDMA_DEV_NAME_SZ]; + char *data; + int datalen; +}; + +enum bar_type { + DEBUGFS_BAR_CONFIG = 0, + DEBUGFS_BAR_USER = 1, + DEBUGFS_BAR_BYPASS = 2, +}; + +extern struct dentry *qdma_debugfs_root; + +/** structure to hold file ops */ +static struct dbgfs_dev_dbgf dbgf[DBGFS_DEV_DBGF_END]; + +/*****************************************************************************/ +/** + * dump_banner() - static helper function to dump a device banner + * + * @param[in] dev_name: qdma device name + * @param[out] buf: buffer to which banner is dumped + * @param[in] buf_sz: size of the buffer passed to func + * + * @return len: length of the buffer printed + *****************************************************************************/ +static int dump_banner(char *dev_name, char *buf, int buf_sz) +{ + int len = 0; + char seperator[81] = {0}; + + memset(seperator, '#', 80); + + /** Banner consumes three lines, so size should be min 240 (80 * 3) + * If changed, check the minimum buffer size required + */ + if (buf_sz < (3 * DEBGFS_LINE_SZ)) + return -1; + + len += snprintf(buf + len, buf_sz - len, "%s\n", seperator); + len += snprintf(buf + len, buf_sz - len, + "###\t\t\t\tqdma%s, reg dump\n", + dev_name); + len += snprintf(buf + len, buf_sz - len, "%s\n", seperator); + + return len; +} + +/*****************************************************************************/ +/** + * dump_reg() - static helper function to dump a specific reg + * + * @param[out] buf: buffer to dump the registers + * @param[in] buf_sz: size of the buffer passed to func + * @param[in] rname: register name + * @param[in] rval: register value + * + * @return len: length of the buffer printed + *****************************************************************************/ +static int dump_reg(char *buf, int buf_sz, unsigned int raddr, char *rname, + unsigned int rval) +{ + int len = 0; + + /* length of the line should not exceed 80 chars, so, checking + * for min 80 chars. If below print pattern is changed, check for + * new the buffer size requirement + */ + if (buf_sz < DEBGFS_LINE_SZ) + return -1; + + len += sprintf(buf + len, "[%#7x] %-47s %#-10x %u\n", + raddr, rname, rval, rval); + + return len; +} + +/*****************************************************************************/ +/** + * dump_bar_regs() - static helper function to dump a specific bar regs + * + * @param[in] dev_hndl: pointer to xdev device structure + * @param[out] buf: buffer to dump the registers + * @param[in] buf_len: size of the buffer passed + * @param[in] type: bar type + * + * @return len: returns the length buffer printed + *****************************************************************************/ +static int dump_bar_regs(unsigned long dev_hndl, char *buf, int buf_len, + enum bar_type type) +{ + int num_regs = 0; + int i = 0, j = 0; + unsigned int val = 0; + unsigned int addr = 0; + int len = 0; + int rv; + char name[DEBGFS_GEN_NAME_SZ] = {0}; + char bar_name[DEBGFS_GEN_NAME_SZ] = {0}; + struct xreg_info *reg_info; + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (type == DEBUGFS_BAR_CONFIG) { + num_regs = sizeof(qdma_config_regs)/sizeof(qdma_config_regs[0]); + reg_info = qdma_config_regs; + snprintf(bar_name, DEBGFS_GEN_NAME_SZ, "%s #%d", "CONFIG BAR", + xdev->conf.bar_num_config); + } else if (type == DEBUGFS_BAR_USER) { + num_regs = sizeof(qdma_user_regs)/sizeof(qdma_user_regs[0]); + reg_info = qdma_user_regs; + snprintf(bar_name, DEBGFS_GEN_NAME_SZ, "%s #%d", "USER BAR", + xdev->conf.bar_num_user); + } + + num_regs -= 1; /* last entry is empty */ + + /* print the bar name */ + len += snprintf(buf + len, buf_len - len, "\n%s\n", bar_name); + + /* now print all the registers of the corresponding bar */ + for (i = 0; i < num_regs; i++) { + /* if there are more than one register of same type + * loop and print 'repeat' number of times + */ + if (reg_info[i].repeat) { + for (j = 0; j < reg_info[i].repeat; j++) { + memset(name, 0, DEBGFS_GEN_NAME_SZ); + snprintf(name, DEBGFS_GEN_NAME_SZ, "%s_%d", + reg_info[i].name, j); + + addr = reg_info[i].addr + (j * 4); + + /* read the register value */ + val = qdma_device_read_config_register(dev_hndl, + addr); + + /* num print address, name & value of reg */ + rv = dump_reg(buf + len, buf_len - len, addr, + name, val); + if (rv < 0) { + pr_warn("insufficient space to dump reg vals\n"); + return len; + } + len += rv; + } + } else { + addr = reg_info[i].addr; + val = qdma_device_read_config_register(dev_hndl, + addr); + rv = dump_reg(buf + len, buf_len - len, addr, + (char *)reg_info[i].name, val); + if (rv < 0) { + pr_warn("inusfficient space to dump register values\n"); + return len; + } + len += rv; + } + } + + return len; +} + +/*****************************************************************************/ +/** + * dbgfs_dump_qdma_regs() - static function to dump qdma device registers + * + * @param[in] xpdev: pointer to qdma pci device structure + * @param[in] buf: buffer to dump the registers + * @param[in] buf_len:size of the buffer passed + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int dbgfs_dump_qdma_regs(unsigned long dev_hndl, char *dev_name, + char **data, int *data_len) +{ + int len = 0; + int rv; + char *buf = NULL; + int num_elem = + ((sizeof(qdma_config_regs)/sizeof(struct xreg_info)) + 1) + + ((sizeof(qdma_user_regs)/sizeof(struct xreg_info)) + 1); + int buflen = num_elem * REG_DUMP_SIZE_PER_LINE; + + /** allocate memory */ + buf = (char *) kzalloc(buflen, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + /* print the banner with device info */ + rv = dump_banner(dev_name, buf + len, buflen - len); + if (rv < 0) { + pr_warn("insufficient space to dump register banner\n"); + return len; + } + len += rv; + + rv = dump_bar_regs(dev_hndl, buf + len, buflen - len, + DEBUGFS_BAR_USER); + if (rv < 0) { + pr_warn("insufficient space to dump User bar register values\n"); + return len; + } + len += rv; + + rv = dump_bar_regs(dev_hndl, buf + len, buflen - len, + DEBUGFS_BAR_CONFIG); + if (rv < 0) { + pr_warn("insufficient space to dump Config Bar register values\n"); + return len; + } + len += rv; + + *data = buf; + *data_len = buflen; + + return len; +} + +/*****************************************************************************/ +/** + * dbgfs_dump_qdma_info() - static function to dump qdma device registers + * + * @xpdev: pointer to qdma pci device structure + * @buf: buffer to dump the registers + * @buf_len:size of the buffer passed + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int dbgfs_dump_qdma_info(unsigned long dev_hndl, char *dev_name, + char **data, int *data_len) +{ + int len = 0; + char *buf = NULL; + int buflen = DEBUGFS_DEV_INFO_SZ; + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_dev_conf *conf = NULL; + + if (!xdev) + return -EINVAL; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + conf = &xdev->conf; + + /** allocate memory */ + buf = (char *) kzalloc(buflen, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + len += snprintf(buf + len, buflen - len, "%-36s: %s\n", "Master PF", + (conf->master_pf) ? "True" : "False"); + len += snprintf(buf + len, buflen - len, "%-36s: %d\n", "QBase", + conf->qsets_base); + len += snprintf(buf + len, buflen - len, "%-36s: %d\n", "Max Qsets", + conf->qsets_max); + len += snprintf(buf + len, buflen - len, "%-36s: %d\n", + "Number of VFs", xdev->vf_count); + len += snprintf(buf + len, buflen - len, "%-36s: %d\n", + "Max number of VFs", conf->vf_max); + len += snprintf(buf + len, buflen - len, "%-36s: %s mode\n", + "Driver Mode", + mode_name_list[conf->qdma_drv_mode].name); + + *data = buf; + *data_len = buflen; + + return len; +} + +/*****************************************************************************/ +/** + * dev_dbg_file_open() - static function that provides generic open + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int dev_dbg_file_open(struct inode *inode, struct file *fp) +{ + int dev_id = -1; + int rv = 0; + unsigned char dev_name[QDMA_DEV_NAME_SZ] = {0}; + unsigned char *lptr = NULL, *rptr = NULL; + struct dentry *dev_dir = NULL; + struct dbgfs_dev_priv *priv = NULL; + struct xlnx_dma_dev *xdev = NULL; + + if (!inode || !fp) + return -EINVAL; + dev_dir = fp->f_path.dentry->d_parent; + xdev = inode->i_private; + if (!xdev) + return -EINVAL; + + /* convert colon sepearted b:d:f to hex */ + rptr = dev_dir->d_iname; + lptr = dev_name; + while (*rptr) { + if (*rptr == ':') { + rptr++; + continue; + } + *lptr++ = *rptr++; + } + + /* convert this string as hex integer */ + rv = kstrtoint((const char *)dev_name, 16, &dev_id); + if (rv < 0) { + rv = -ENODEV; + return rv; + } + + + priv = (struct dbgfs_dev_priv *) kzalloc(sizeof(struct dbgfs_dev_priv), + GFP_KERNEL); + if (!priv) { + rv = -ENOMEM; + return rv; + } + + priv->dev_hndl = (unsigned long)xdev; + snprintf(priv->dev_name, QDMA_DEV_NAME_SZ, "%s", dev_name); + fp->private_data = priv; + + return 0; +} + +/*****************************************************************************/ +/** + * dev_dbg_file_release() - static function that provides generic release + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int dev_dbg_file_release(struct inode *inode, struct file *fp) +{ + kfree(fp->private_data); + + fp->private_data = NULL; + + return 0; +} + +/*****************************************************************************/ +/** + * dev_dbg_file_read() - static function that provides common read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * @param[in] type: information type + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t dev_dbg_file_read(struct file *fp, char __user *user_buffer, + size_t count, loff_t *ppos, enum dbgfs_dev_dbg_file_type type) +{ + char *buf = NULL; + int buf_len = 0; + int len = 0; + int rv = 0; + struct dbgfs_dev_priv *dev_priv = + (struct dbgfs_dev_priv *)fp->private_data; + + if (dev_priv->data == NULL && dev_priv->datalen == 0) { + if (type == DBGFS_DEV_DBGF_INFO) { + rv = dbgfs_dump_qdma_info(dev_priv->dev_hndl, + dev_priv->dev_name, &buf, &buf_len); + } else if (type == DBGFS_DEV_DBGF_REGS) { + rv = dbgfs_dump_qdma_regs(dev_priv->dev_hndl, + dev_priv->dev_name, &buf, &buf_len); + } + + if (rv < 0) + goto dev_dbg_file_read_exit; + + dev_priv->datalen = rv; + dev_priv->data = buf; + } + + buf = dev_priv->data; + len = dev_priv->datalen; + + if (!buf) + goto dev_dbg_file_read_exit; + + /** write to user buffer */ + if (*ppos >= len) { + rv = 0; + goto dev_dbg_file_read_exit; + } + + if (*ppos + count > len) + count = len - *ppos; + + if (copy_to_user(user_buffer, buf + *ppos, count)) { + rv = -EFAULT; + goto dev_dbg_file_read_exit; + } + + *ppos += count; + rv = count; + + pr_debug("nuber of bytes written to user space is %zu\n", count); + +dev_dbg_file_read_exit: + kfree(buf); + dev_priv->data = NULL; + dev_priv->datalen = 0; + return rv; +} + +/*****************************************************************************/ +/** + * dev_info_open() - static function that executes info open + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int dev_info_open(struct inode *inode, struct file *fp) +{ + return dev_dbg_file_open(inode, fp); +} + +/*****************************************************************************/ +/** + * dev_info_read() - static function that executes info read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t dev_info_read(struct file *fp, char __user *user_buffer, + size_t count, loff_t *ppos) +{ + return dev_dbg_file_read(fp, user_buffer, count, ppos, + DBGFS_DEV_DBGF_INFO); +} + +/*****************************************************************************/ +/** + * dev_regs_open() - static function that opens regs debug file + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int dev_regs_open(struct inode *inode, struct file *fp) +{ + return dev_dbg_file_open(inode, fp); +} + +/*****************************************************************************/ +/** + * dev_regs_read() - static function that executes info read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t dev_regs_read(struct file *fp, char __user *user_buffer, + size_t count, loff_t *ppos) +{ + return dev_dbg_file_read(fp, user_buffer, count, ppos, + DBGFS_DEV_DBGF_REGS); +} + +/*****************************************************************************/ +/** + * create_dev_dbg_files() - static function to create queue debug files + * + * @param[in] dev_root: debugfs root for the device + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +int create_dev_dbg_files(struct xlnx_dma_dev *xdev, struct dentry *dev_root) +{ + struct dentry *fp[DBGFS_DEV_DBGF_END] = { NULL }; + struct file_operations *fops = NULL; + int i = 0; + + memset(dbgf, 0, sizeof(struct dbgfs_dev_dbgf) * DBGFS_DEV_DBGF_END); + + for (i = 0; i < DBGFS_DEV_DBGF_END; i++) { + fops = &dbgf[i].fops; + fops->owner = THIS_MODULE; + switch (i) { + case DBGFS_DEV_DBGF_INFO: + snprintf(dbgf[i].name, 64, "%s", "info"); + fops->open = dev_info_open; + fops->read = dev_info_read; + fops->release = dev_dbg_file_release; + break; + case DBGFS_DEV_DBGF_REGS: + snprintf(dbgf[i].name, 64, "%s", "regs"); + fops->open = dev_regs_open; + fops->read = dev_regs_read; + fops->release = dev_dbg_file_release; + break; + } + } + + for (i = 0; i < DBGFS_DEV_DBGF_END; i++) { + fp[i] = debugfs_create_file(dbgf[i].name, 0644, dev_root, + xdev, &dbgf[i].fops); + if (!fp[i]) + return -1; + } + return 0; +} + +/*****************************************************************************/ +/** + * dbgfs_dev_init() - function to initialize device debugfs files + * + * @param[in] xdev: Xilinx dma device + * @param[in] qdma_debugfs_root: root file in debugfs + * + * @return =0: success + * @return <0: error + *****************************************************************************/ +int dbgfs_dev_init(struct xlnx_dma_dev *xdev) +{ + char dname[QDMA_DEV_NAME_SZ] = {0}; + struct dentry *dbgfs_dev_root = NULL; + struct dentry *dbgfs_queues_root = NULL; + struct pci_dev *pdev = xdev->conf.pdev; + int rv = 0; + + snprintf(dname, QDMA_DEV_NAME_SZ, "%02x:%02x:%x", + pdev->bus->number, + PCI_SLOT(pdev->devfn), + PCI_FUNC(pdev->devfn)); + /* create a directory for the device in debugfs */ + dbgfs_dev_root = debugfs_create_dir(dname, qdma_debugfs_root); + if (!dbgfs_dev_root) { + pr_err("Failed to create device direcotry\n"); + return -1; + } + xdev->dbgfs_dev_root = dbgfs_dev_root; + + /* create debug files for qdma device */ + rv = create_dev_dbg_files(xdev, dbgfs_dev_root); + if (rv < 0) { + pr_err("Failed to create device debug files\n"); + goto dbgfs_dev_init_fail; + } + + /* create a directory for the queues in debugfs */ + dbgfs_queues_root = debugfs_create_dir("queues", xdev->dbgfs_dev_root); + if (!dbgfs_queues_root) { + pr_err("Failed to create queueus directory under device directory\n"); + goto dbgfs_dev_init_fail; + } + + xdev->dbgfs_queues_root = dbgfs_queues_root; + spin_lock_init(&xdev->qidx_lock); + + return 0; + +dbgfs_dev_init_fail: + + debugfs_remove_recursive(dbgfs_dev_root); + return -1; +} + +/*****************************************************************************/ +/** + * dbgfs_dev_exit() - function to cleanup device debugfs files + * + * @param[in] xdev: Xilinx dma device + * + *****************************************************************************/ +void dbgfs_dev_exit(struct xlnx_dma_dev *xdev) +{ + if (xdev->dbgfs_dev_root) + debugfs_remove_recursive(xdev->dbgfs_dev_root); + xdev->dbgfs_dev_root = NULL; + xdev->dbgfs_queues_root = NULL; +} + +#endif diff --git a/QDMA/linux-kernel/libqdma/qdma_debugfs_dev.h b/QDMA/linux-kernel/libqdma/qdma_debugfs_dev.h new file mode 100644 index 0000000..47af008 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_debugfs_dev.h @@ -0,0 +1,29 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __QDMA_DEBUGFS_DEV_H__ +#define __QDMA_DEBUGFS_DEV_H__ + +#include "qdma_debugfs.h" +#include "xdev.h" + +int dbgfs_dev_init(struct xlnx_dma_dev *xdev); +void dbgfs_dev_exit(struct xlnx_dma_dev *xdev); + +#endif diff --git a/QDMA/linux-kernel/libqdma/qdma_debugfs_queue.c b/QDMA/linux-kernel/libqdma/qdma_debugfs_queue.c new file mode 100644 index 0000000..62c59ed --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_debugfs_queue.c @@ -0,0 +1,1190 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "qdma_debugfs_queue.h" +#include "libqdma_export.h" +#include "qdma_regs.h" +#include "qdma_context.h" +#include "qdma_descq.h" +#include "qdma_regs.h" +#include <linux/uaccess.h> + +#ifdef DEBUGFS +#define DEBUGFS_QUEUE_DESC_SZ (100) +#define DEBUGFS_QUEUE_INFO_SZ (256) +#define DEBUGFS_QUEUE_CTXT_SZ (2 * 4096) + +#define DEBUGFS_CTXT_ELEM(reg, pos, size) \ + ((reg >> pos) & ~(~0 << size)) + +#define DBGFS_QUEUE_INFO_SZ 256 +#define DBGFS_ERR_BUFLEN (64) + +enum dbgfs_queue_info_type { + DBGFS_QINFO_INFO = 0, + DBGFS_QINFO_CNTXT = 1, + DBGFS_QINFO_DESC = 2, + DBGFS_QINFO_END, +}; + +enum dbgfs_cntxt_word { + DBGFS_CNTXT_W0 = 0, + DBGFS_CNTXT_W1 = 1, + DBGFS_CNTXT_W2 = 2, + DBGFS_CNTXT_W3 = 3, + DBGFS_CNTXT_W4 = 4, + DBGFS_CNTXT_W5 = 5, + DBGFS_CNTXT_W6 = 6, + DBGFS_CNTXT_W7 = 7, +}; + +enum dbgfs_cmpt_queue_info_type { + DBGFS_CMPT_QINFO_INFO = 0, + DBGFS_CMPT_QINFO_CNTXT = 1, + DBGFS_CMPT_QINFO_DESC = 2, + DBGFS_CMPT_QINFO_END, +}; + +struct dbgfs_q_dbgf { + char name[DBGFS_DBG_FNAME_SZ]; + struct file_operations fops; +}; + +struct dbgfs_q_priv { + unsigned long dev_hndl; + unsigned long qhndl; + char *data; + int datalen; +}; + +struct dbgfs_qctxt_entry { + char name[DBGFS_CTXT_ENTRY_NAME_SZ]; + unsigned short word; + u32 pos; + u32 len; +}; + +enum dbgfs_desc_type { + DBGFS_DESC_TYPE_C2H = 0, + DBGFS_DESC_TYPE_H2C = DBGFS_DESC_TYPE_C2H, + DBGFS_DESC_TYPE_CMPT = 1, + DBGFS_DESC_TYPE_END = 2, +}; + + +static struct dbgfs_qctxt_entry app_ctxt[] = { + /** format: + *{<name>, <word>, <start_bit_index>, <len>} + */ + + {"PIDX", DBGFS_CNTXT_W0, S_DESC_CTXT_W0_PIDX, + L_DESC_CTXT_W0_PIDX}, + {"IRQ Arm", DBGFS_CNTXT_W0, S_DESC_CTXT_W0_F_INTR_ARM, 1}, + {"Function Id", DBGFS_CNTXT_W0, S_DESC_CTXT_W0_FUNC_ID, + L_DESC_CTXT_W0_FUNC_ID}, + + {"Queue Enable", DBGFS_CNTXT_W1, S_DESC_CTXT_W1_F_QEN, 1}, + {"Fetch Credit Enable", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_F_FCRD_EN, 1}, + {"Write back/Intr Check", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_F_CMPL_STATUS_PEND_CHK, 1}, + {"Write back Acc Enable", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_F_CMPL_STATUS_ACC_EN, 1}, + {"Address Translation", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_F_AT, 1}, + {"Fetch Max", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_FETCH_MAX, L_DESC_CTXT_W1_FETCH_MAX}, + {"Ring Size", DBGFS_CNTXT_W1, S_DESC_CTXT_W1_RNG_SZ, + L_DESC_CTXT_W1_RNG_SZ}, + {"Descriptor Size", DBGFS_CNTXT_W1, S_DESC_CTXT_W1_DSC_SZ, + L_DESC_CTXT_W1_DSC_SZ}, + {"Bypass Enable", DBGFS_CNTXT_W1, S_DESC_CTXT_W1_F_BYP, 1}, + {"MM Channel", DBGFS_CNTXT_W1, S_DESC_CTXT_W1_F_MM_CHN, 1}, + {"Writeback Enable", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_F_CMPL_STATUS_EN, 1}, + {"Interrupt Enable", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_F_IRQ_EN, 1}, + {"Port Id", DBGFS_CNTXT_W1, S_DESC_CTXT_W1_PORT_ID, + L_DESC_CTXT_W1_PORT_ID}, + {"Interrupt No Last", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_F_IRQ_NO_LAST, 1}, + {"Error", DBGFS_CNTXT_W1, S_DESC_CTXT_W1_ERR, + L_DESC_CTXT_W1_ERR}, + {"Writeback Error Sent", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_F_CMPL_STATUS_ERR_SNT, 1}, + {"IRQ Request", DBGFS_CNTXT_W1, S_DESC_CTXT_W1_F_IRQ_REQ, 1}, + {"Marker Disable", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_F_MRKR_DIS, 1}, + {"Is Memory Mapped", DBGFS_CNTXT_W1, + S_DESC_CTXT_W1_F_IS_MM, 1}, + {"Interrupt Aggregation", DBGFS_CNTXT_W4, + S_DESC_CTXT_W1_F_INTR_AGGR, 1}, + + {"Descriptor Ring Base Addr (Low)", DBGFS_CNTXT_W2, 0, 32}, + + {"Descriptor Ring Base Addr (High)", DBGFS_CNTXT_W3, 0, 32}, +}; + +static struct dbgfs_qctxt_entry hw_ctxt[] = { + {"CIDX", DBGFS_CNTXT_W0, 0, 16}, + {"Credits Consumed", DBGFS_CNTXT_W0, 16, 16}, + + {"Descriptors Pending", DBGFS_CNTXT_W1, 8, 1}, + {"Queue Invalid No Desc Pending", DBGFS_CNTXT_W1, 9, 1}, + {"Eviction Pending", DBGFS_CNTXT_W1, 10, 1}, + {"Fetch Peding", DBGFS_CNTXT_W1, 10, 1}, +}; + +static struct dbgfs_qctxt_entry credit_ctxt[] = { + {"Credit", DBGFS_CNTXT_W0, 0, 16}, +}; + +static struct dbgfs_qctxt_entry cmpt_ctxt[] = { + {"Enable Status Desc Update", DBGFS_CNTXT_W0, + S_CMPT_CTXT_W0_F_EN_STAT_DESC, 1}, + {"Enable Interrupt", DBGFS_CNTXT_W0, S_CMPT_CTXT_W0_F_EN_INT, 1}, + {"Trigger Mode", DBGFS_CNTXT_W0, S_CMPT_CTXT_W0_TRIG_MODE, + L_CMPT_CTXT_W0_TRIG_MODE}, + {"Function Id", DBGFS_CNTXT_W0, S_CMPT_CTXT_W0_FNC_ID, + L_CMPT_CTXT_W0_FNC_ID}, + {"Counter Index", DBGFS_CNTXT_W0, S_CMPT_CTXT_W0_COUNTER_IDX, + L_CMPT_CTXT_W0_COUNTER_IDX}, + {"Timer Index", DBGFS_CNTXT_W0, S_CMPT_CTXT_W0_TIMER_IDX, + L_CMPT_CTXT_W0_TIMER_IDX}, + {"Interrupt State", DBGFS_CNTXT_W0, S_CMPT_CTXT_W0_INT_ST, + L_CMPT_CTXT_W0_INT_ST}, + {"Color", DBGFS_CNTXT_W0, S_CMPT_CTXT_W0_F_COLOR, 1}, + {"Ring Size", DBGFS_CNTXT_W0, S_CMPT_CTXT_W0_RNG_SZ, + L_CMPT_CTXT_W0_RNG_SZ}, + + {"Base Address (Low)", DBGFS_CNTXT_W1, 0, 32}, + + {"Base Address (High)", DBGFS_CNTXT_W2, S_CMPT_CTXT_W2_BADDR_64, + L_CMPT_CTXT_W2_BADDR_64}, + {"Descriptor Size", DBGFS_CNTXT_W2, S_CMPT_CTXT_W2_DESC_SIZE, + L_CMPT_CTXT_W2_DESC_SIZE}, + {"PIDX (Low)", DBGFS_CNTXT_W2, S_CMPT_CTXT_W2_PIDX_L, + L_CMPT_CTXT_W3_PIDX_H}, + + {"PIDX (High)", DBGFS_CNTXT_W3, S_CMPT_CTXT_W3_PIDX_H, + L_CMPT_CTXT_W3_PIDX_H}, + {"CIDX", DBGFS_CNTXT_W3, S_CMPT_CTXT_W3_CIDX, L_CMPT_CTXT_W3_CIDX}, + {"Valid", DBGFS_CNTXT_W3, S_CMPT_CTXT_W3_F_VALID, 1}, + {"ERROR", DBGFS_CNTXT_W3, S_CMPT_CTXT_W3_ERR, L_CMPT_CTXT_W3_ERR}, + {"Trigger Pending", DBGFS_CNTXT_W3, S_CMPT_CTXT_W3_F_TRIG_PEND, 1}, + + {"Timer Running", DBGFS_CNTXT_W4, S_CMPT_CTXT_W4_F_TMR_RUNNING, 1}, + {"Full Update", DBGFS_CNTXT_W4, S_CMPT_CTXT_W4_F_FULL_UPDATE, 1}, + {"Over Flow Check Disable", DBGFS_CNTXT_W4, + S_CMPT_CTXT_W4_F_OVF_CHK_DIS, 1}, + {"Address Translation", DBGFS_CNTXT_W4, S_CMPT_CTXT_W4_F_AT, 1}, +}; + +/**TBD: enable them when RTL2 is stable */ +static struct dbgfs_qctxt_entry c2h_pftch_ctxt[] = { + {"Bypass", DBGFS_CNTXT_W0, S_PFTCH_W0_F_BYPASS, 1}, + {"Buffer Size Index", DBGFS_CNTXT_W0, S_PFTCH_W0_BUF_SIZE_IDX, + L_PFTCH_W0_BUF_SIZE_IDX}, + {"Port Id", DBGFS_CNTXT_W0, S_PFTCH_W0_PORT_ID, L_PFTCH_W0_PORT_ID}, + {"Error", DBGFS_CNTXT_W0, S_PFTCH_W0_F_ERR, 1}, + {"Prefetch Enable", DBGFS_CNTXT_W0, S_PFTCH_W0_F_EN_PFTCH, 1}, + {"In Prefetch", DBGFS_CNTXT_W0, S_PFTCH_W0_F_Q_IN_PFTCH, 1}, + {"Software Credit (Low)", DBGFS_CNTXT_W0, S_PFTCH_W0_SW_CRDT_L, + L_PFTCH_W0_SW_CRDT_L}, + + {"Software Credit (High)", DBGFS_CNTXT_W1, S_PFTCH_W1_SW_CRDT_H, + L_PFTCH_W1_SW_CRDT_H}, + {"Valid", DBGFS_CNTXT_W1, S_PFTCH_W1_F_VALID, 1}, +}; + +/** structure to hold file ops */ +static struct dbgfs_q_dbgf qf[DBGFS_QINFO_END]; + +/** structure to hold file ops */ +static struct dbgfs_q_dbgf cmpt_qf[DBGFS_CMPT_QINFO_END]; +int q_dbg_file_open(struct inode *inode, struct file *fp); +int q_dbg_file_release(struct inode *inode, struct file *fp); +int qdbg_info_read(unsigned long dev_hndl, unsigned long id, char **data, + int *data_len, enum dbgfs_desc_type type); +int qdbg_desc_read(unsigned long dev_hndl, unsigned long id, char **data, + int *data_len, enum dbgfs_desc_type type); +int qdbg_cntxt_read(unsigned long dev_hndl, unsigned long id, char **data, + int *data_len, enum dbgfs_desc_type type); + +/*****************************************************************************/ +/** + * cmpt_q_dbg_file_open() - static function that provides generic open + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int cmpt_q_dbg_file_open(struct inode *inode, struct file *fp) +{ + return q_dbg_file_open(inode, fp); +} + +/*****************************************************************************/ +/** + * cmpt_q_dbg_file_release() - static function that provides generic release + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int cmpt_q_dbg_file_release(struct inode *inode, struct file *fp) +{ + return q_dbg_file_release(inode, fp); +} + +/*****************************************************************************/ +/** + * cmpt_q_dbg_file_read() - static function that provides common read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * @param[in] type: information type + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t cmpt_q_dbg_file_read(struct file *fp, + char __user *user_buffer, + size_t count, loff_t *ppos, + enum dbgfs_queue_info_type type) +{ + char *buf = NULL; + int buf_len = 0; + int len = 0; + int rv = 0; + struct dbgfs_q_priv *qpriv = + (struct dbgfs_q_priv *)fp->private_data; + + if (qpriv->data == NULL && qpriv->datalen == 0) { + if (type == DBGFS_QINFO_INFO) { + rv = qdbg_info_read(qpriv->dev_hndl, qpriv->qhndl, + &buf, &buf_len, DBGFS_DESC_TYPE_CMPT); + } else if (type == DBGFS_QINFO_CNTXT) { + rv = qdbg_cntxt_read(qpriv->dev_hndl, qpriv->qhndl, + &buf, &buf_len, DBGFS_DESC_TYPE_CMPT); + } else if (type == DBGFS_QINFO_DESC) { + rv = qdbg_desc_read(qpriv->dev_hndl, qpriv->qhndl, + &buf, &buf_len, DBGFS_DESC_TYPE_CMPT); + } + + if (rv < 0) + goto cmpt_q_dbg_file_read_exit; + + qpriv->datalen = rv; + qpriv->data = buf; + } + + buf = qpriv->data; + len = qpriv->datalen; + + if (!buf) + goto cmpt_q_dbg_file_read_exit; + + /** write to user buffer */ + if (*ppos >= len) { + rv = 0; + goto cmpt_q_dbg_file_read_exit; + } + + if (*ppos + count > len) + count = len - *ppos; + + if (copy_to_user(user_buffer, buf + *ppos, count)) { + rv = -EFAULT; + goto cmpt_q_dbg_file_read_exit; + } + + *ppos += count; + + pr_debug("cmpt q read size %zu\n", count); + + return count; + +cmpt_q_dbg_file_read_exit: + kfree(buf); + qpriv->data = NULL; + qpriv->datalen = 0; + return rv; +} + +/*****************************************************************************/ +/** + * cmpt_q_info_open() - static function that executes info open + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int cmpt_q_info_open(struct inode *inode, struct file *fp) +{ + return cmpt_q_dbg_file_open(inode, fp); +} + +/*****************************************************************************/ +/** + * cmpt_q_info_read() - static function that executes info read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t cmpt_q_info_read(struct file *fp, char __user *user_buffer, + size_t count, loff_t *ppos) +{ + return cmpt_q_dbg_file_read(fp, user_buffer, count, ppos, + DBGFS_QINFO_INFO); +} + +/*****************************************************************************/ +/** + * cmpt_q_cntxt_open() - static function that executes info open + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int cmpt_q_cntxt_open(struct inode *inode, struct file *fp) +{ + return cmpt_q_dbg_file_open(inode, fp); +} + +/*****************************************************************************/ +/** + * cmpt_q_cntxt_read() - static function that executes info read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t cmpt_q_cntxt_read(struct file *fp, char __user *user_buffer, + size_t count, loff_t *ppos) +{ + return cmpt_q_dbg_file_read(fp, user_buffer, count, ppos, + DBGFS_QINFO_CNTXT); +} + +/*****************************************************************************/ +/** + * cmpt_q_desc_open() - static function that executes descriptor open + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int cmpt_q_desc_open(struct inode *inode, struct file *fp) +{ + return cmpt_q_dbg_file_open(inode, fp); +} + +/*****************************************************************************/ +/** + * cmpt_q_desc_read() - static function that executes descriptor read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t cmpt_q_desc_read(struct file *fp, char __user *user_buffer, + size_t count, loff_t *ppos) +{ + return cmpt_q_dbg_file_read(fp, user_buffer, count, ppos, + DBGFS_QINFO_DESC); +} + +/*****************************************************************************/ +/** + * create_cmpt_q_dbg_files() - static function to create cmpt queue dbg files + * + * @param[in] queue_root: debugfs root for a queue + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +int create_cmpt_q_dbg_files(struct qdma_descq *descq, struct dentry *queue_root) +{ + struct dentry *fp[DBGFS_QINFO_END] = { NULL }; + struct file_operations *fops = NULL; + int i = 0; + + memset(cmpt_qf, 0, sizeof(struct dbgfs_q_dbgf) * DBGFS_CMPT_QINFO_END); + + for (i = 0; i < DBGFS_CMPT_QINFO_END; i++) { + fops = &cmpt_qf[i].fops; + fops->owner = THIS_MODULE; + switch (i) { + case DBGFS_CMPT_QINFO_INFO: + snprintf(cmpt_qf[i].name, DBGFS_DBG_FNAME_SZ, + "%s", "info"); + fops->open = cmpt_q_info_open; + fops->read = cmpt_q_info_read; + fops->release = cmpt_q_dbg_file_release; + break; + case DBGFS_CMPT_QINFO_CNTXT: + snprintf(cmpt_qf[i].name, DBGFS_DBG_FNAME_SZ, + "%s", "cntxt"); + fops->open = cmpt_q_cntxt_open; + fops->read = cmpt_q_cntxt_read; + fops->release = cmpt_q_dbg_file_release; + break; + case DBGFS_CMPT_QINFO_DESC: + snprintf(cmpt_qf[i].name, DBGFS_DBG_FNAME_SZ, + "%s", "desc"); + fops->open = cmpt_q_desc_open; + fops->read = cmpt_q_desc_read; + fops->release = cmpt_q_dbg_file_release; + break; + } + } + + for (i = 0; i < DBGFS_CMPT_QINFO_END; i++) { + fp[i] = debugfs_create_file(cmpt_qf[i].name, 0644, queue_root, + descq, &cmpt_qf[i].fops); + if (!fp[i]) + return -1; + } + return 0; +} + +/*****************************************************************************/ +/** + * q_dbg_file_open() - generic queue debug file open + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int q_dbg_file_open(struct inode *inode, struct file *fp) +{ + int dev_id = -1; + int qidx = -1; + struct dbgfs_q_priv *priv = NULL; + int rv = 0; + int c2h = 0; + unsigned char dev_name[QDMA_DEV_NAME_SZ] = {0}; + unsigned char *lptr = NULL, *rptr = NULL; + struct dentry *direction_dir = NULL; + struct dentry *qid_dir = NULL; + struct dentry *qroot_dir = NULL; + struct dentry *dev_dir = NULL; + struct qdma_descq *descq = NULL; + + if (!inode || !fp) + return -EINVAL; + descq = inode->i_private; + if (!descq) + return -EINVAL; + + direction_dir = fp->f_path.dentry->d_parent; + qid_dir = direction_dir->d_parent; + qroot_dir = qid_dir->d_parent; + dev_dir = qroot_dir->d_parent; + + /* check the direction */ + if (!strncmp((const char *)direction_dir->d_iname, + "c2h", strlen("c2h")) || + !strncmp((const char *)direction_dir->d_iname, + "cmpt", strlen("cmpt"))) + c2h = 1; + + /* convert this string as integer */ + rv = kstrtoint((const char *)qid_dir->d_iname, 0, &qidx); + if (rv < 0) { + rv = -ENODEV; + return rv; + } + + /* convert colon sepearted b:d:f to hex */ + rptr = dev_dir->d_iname; + lptr = dev_name; + while (*rptr) { + if (*rptr == ':') { + rptr++; + continue; + } + *lptr++ = *rptr++; + } + + /* convert this string as hex integer */ + rv = kstrtoint((const char *)dev_name, 16, &dev_id); + if (rv < 0) { + rv = -ENODEV; + return rv; + } + + priv = (struct dbgfs_q_priv *) kzalloc(sizeof(struct dbgfs_q_priv), + GFP_KERNEL); + if (!priv) { + rv = -ENOMEM; + return rv; + } + + priv->dev_hndl = (unsigned long)descq->xdev; + priv->qhndl = qdma_device_get_id_from_descq(descq->xdev, descq); + if (priv->qhndl < 0) { + kfree(priv); + return -EINVAL; + } + + fp->private_data = priv; + + return 0; +} + +/*****************************************************************************/ +/** + * q_dbg_file_release() - function that provides generic release + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int q_dbg_file_release(struct inode *inode, struct file *fp) +{ + kfree(fp->private_data); + + fp->private_data = NULL; + + return 0; +} + +/*****************************************************************************/ +/** + * qdbg_parse_ctxt_to_buf() - parses queue context to human readable format + * + * @param[in] ctxt: raw context info + * @param[in] entries: context entries structure pointer + * @param[in] num_entries: number of context entries + * @param[out] buf: buffer to write parsed context + * @param[in] buflen: buffer len + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +int qdbg_parse_ctxt_to_buf(u32 *ctxt, + struct dbgfs_qctxt_entry *entries, + int num_entries, + char *buf, int buflen) +{ + int i = 0, w; + u32 v; + u64 mask = 0; + int len = 0; + + for (i = num_entries - 1; i >= 0; i--) { + w = entries[i].word; + v = ((ctxt[w] >> entries[i].pos) & + (~((~mask) << entries[i].len))); + len += snprintf(buf + len, buflen - len, + "\t%-47s %#-10x %u\n", + entries[i].name, v, v); + } + len += snprintf(buf + len, buflen - len, "\n"); + + return len; +} + +/*****************************************************************************/ +/** + * qdbg_cntxt_read() - reads queue context for a queue + * + * @param[in] dev_hndl: xdev device handle + * @param[in] id: queue handle + * @param[out] buf: buffer to collect the context info + * @param[in] buflen: buffer len + * @param[in] type: context type + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +int qdbg_cntxt_read(unsigned long dev_hndl, unsigned long id, char **data, + int *data_len, enum dbgfs_desc_type type) +{ + int rv = 0; + int len = 0; + int num_entries = 0; + char *buf = NULL; + int buflen = DEBUGFS_QUEUE_CTXT_SZ; + struct hw_descq_context ctxt; + struct qdma_descq *descq = NULL; + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (!xdev) + return -EINVAL; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + /* allocate memory */ + buf = (char *) kzalloc(buflen, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + /** get descq by id */ + descq = qdma_device_get_descq_by_id(xdev, id, buf, buflen, 0); + if (!descq) { + kfree(buf); + return QDMA_ERR_INVALID_QIDX; + } + + /** initialize the context */ + memset(&ctxt, 0, sizeof(struct hw_descq_context)); + /** read the descq context for the given qid */ + rv = qdma_descq_context_read(descq->xdev, descq->qidx_hw, + descq->conf.st, descq->conf.c2h, &ctxt); + if (rv < 0) { + len += sprintf(buf + len, "%s read context failed %d.\n", + descq->conf.name, rv); + buf[len] = '\0'; + + *data = buf; + *data_len = buflen; + return rv; + } + + if (type == DBGFS_DESC_TYPE_CMPT) { + /** convert CMPT context to human readable text */ + len += snprintf(buf + len, buflen - len, "CMPT CTXT:\n"); + num_entries = sizeof(cmpt_ctxt)/sizeof(cmpt_ctxt[0]); + len += qdbg_parse_ctxt_to_buf(ctxt.cmpt, cmpt_ctxt, + num_entries, buf + len, buflen - len); + } else { + /** convert SW context to human readable text */ + len += snprintf(buf + len, buflen - len, "SOFTWARE CTXT:\n"); + num_entries = sizeof(app_ctxt)/sizeof(app_ctxt[0]); + len += qdbg_parse_ctxt_to_buf(ctxt.sw, app_ctxt, + num_entries, buf + len, buflen - len); + + /** convert hardware context to human readable text */ + len += snprintf(buf + len, buflen - len, "HARDWARE CTXT:\n"); + num_entries = sizeof(hw_ctxt)/sizeof(hw_ctxt[0]); + len += qdbg_parse_ctxt_to_buf(ctxt.hw, hw_ctxt, + num_entries, buf + len, buflen - len); + if (!(descq->conf.st && descq->conf.c2h)) + goto cntxt_exit; + + /** convert credit context to human readable text */ + len += snprintf(buf + len, buflen - len, "CREDIT CTXT:\n"); + num_entries = sizeof(credit_ctxt)/sizeof(credit_ctxt[0]); + len += qdbg_parse_ctxt_to_buf(ctxt.cr, credit_ctxt, + num_entries, buf + len, buflen - len); + + if (type == DBGFS_DESC_TYPE_C2H) { + /** convert prefetch context to human readable text */ + len += snprintf(buf + len, buflen - len, + "PREFETCH CTXT:\n"); + num_entries = + sizeof(c2h_pftch_ctxt)/sizeof(c2h_pftch_ctxt[0]); + len += qdbg_parse_ctxt_to_buf(ctxt.prefetch, + c2h_pftch_ctxt, + num_entries, buf + len, buflen - len); + } + } + +cntxt_exit: + buf[len] = '\0'; + + *data = buf; + *data_len = buflen; + + return len; +} + +/*****************************************************************************/ +/** + * qdbg_info_read() - reads queue info for a queue + * + * @param[in] dev_hndl: xdev device handle + * @param[in] id: queue handle + * @param[out] data: buffer pointer to collect the queue info + * @param[out] data_len: buffer len pointer + * @param[in] type: ring type + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +int qdbg_info_read(unsigned long dev_hndl, unsigned long id, char **data, + int *data_len, enum dbgfs_desc_type type) +{ + int len = 0; + char *buf = NULL; + int buflen = DEBUGFS_QUEUE_INFO_SZ; + struct qdma_descq *descq = NULL; + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + /** allocate memory */ + buf = (char *) kzalloc(buflen, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + descq = qdma_device_get_descq_by_id(xdev, id, buf, buflen, 0); + if (!descq) { + kfree(buf); + return QDMA_ERR_INVALID_QIDX; + } + + len = qdma_descq_dump_state(descq, buf + len, buflen - len); + + *data = buf; + *data_len = buflen; + + return len; +} + +/*****************************************************************************/ +/** + * qdbg_desc_read() - reads descriptors of a queue + * + * @param[in] dev_hndl: xdev device handle + * @param[in] id: queue handle + * @param[out] data: buffer pointer to collect the queue descriptors + * @param[out] data_len: buffer len pointer + * @param[in] type: ring type + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +int qdbg_desc_read(unsigned long dev_hndl, unsigned long id, char **data, + int *data_len, enum dbgfs_desc_type type) +{ + int len = 0; + int rngsz = 0; + struct qdma_descq *descq = NULL; + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + char *buf = NULL; + int buflen = 0; + + descq = qdma_device_get_descq_by_id(xdev, id, buf, buflen, 0); + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + /** get the ring size */ + if (type != DBGFS_DESC_TYPE_CMPT) + rngsz = descq->conf.rngsz; + else + rngsz = descq->conf.rngsz_cmpt; + + /** 128 bytes is to accomodate header printed in the begining */ + buflen = (rngsz * DEBUGFS_QUEUE_DESC_SZ) + 128; + + /* allocate memory */ + buf = (char *) kzalloc(buflen, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + if (type != DBGFS_DESC_TYPE_CMPT) { + len += qdma_queue_dump_desc(dev_hndl, id, + 0, rngsz-1, buf + len, buflen - len); + } else { + len += qdma_queue_dump_cmpt(dev_hndl, id, + 0, rngsz-1, buf + len, buflen - len); + } + + *data = buf; + *data_len = buflen; + + return len; +} + +/*****************************************************************************/ +/** + * q_dbg_file_read() - static function that provides common read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * @param[in] type: information type + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t q_dbg_file_read(struct file *fp, char __user *user_buffer, + size_t count, loff_t *ppos, enum dbgfs_queue_info_type type) +{ + char *buf = NULL; + int buf_len = 0, len = 0, rv = 0; + struct dbgfs_q_priv *qpriv = (struct dbgfs_q_priv *)fp->private_data; + + if (qpriv->data == NULL && qpriv->datalen == 0) { + if (type == DBGFS_QINFO_INFO) { + rv = qdbg_info_read(qpriv->dev_hndl, qpriv->qhndl, + &buf, &buf_len, DBGFS_DESC_TYPE_C2H); + } else if (type == DBGFS_QINFO_CNTXT) { + rv = qdbg_cntxt_read(qpriv->dev_hndl, qpriv->qhndl, + &buf, &buf_len, DBGFS_DESC_TYPE_C2H); + } else if (type == DBGFS_QINFO_DESC) { + rv = qdbg_desc_read(qpriv->dev_hndl, qpriv->qhndl, + &buf, &buf_len, DBGFS_DESC_TYPE_C2H); + } + + if (rv < 0) + goto q_dbg_file_read_exit; + + qpriv->datalen = rv; + qpriv->data = buf; + } + + buf = qpriv->data; + len = qpriv->datalen; + + if (!buf) + goto q_dbg_file_read_exit; + + /** write to user buffer */ + if (*ppos >= len) { + rv = 0; + goto q_dbg_file_read_exit; + } + + if (*ppos + count > len) + count = len - *ppos; + + if (copy_to_user(user_buffer, buf + *ppos, count)) { + rv = -EFAULT; + goto q_dbg_file_read_exit; + } + + *ppos += count; + rv = count; + + pr_debug("number of bytes written to user space is %zu\n", count); + +q_dbg_file_read_exit: + kfree(buf); + qpriv->data = NULL; + qpriv->datalen = 0; + return rv; +} + +/*****************************************************************************/ +/** + * q_info_open() - static function that executes info file open + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int q_info_open(struct inode *inode, struct file *fp) +{ + return q_dbg_file_open(inode, fp); +} + +/*****************************************************************************/ +/** + * q_info_read() - static function that executes info file read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t q_info_read(struct file *fp, char __user *user_buffer, + size_t count, loff_t *ppos) +{ + return q_dbg_file_read(fp, user_buffer, count, ppos, DBGFS_QINFO_INFO); +} + +/*****************************************************************************/ +/** + * q_cntxt_open() - static function that executes cntxt file open + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int q_cntxt_open(struct inode *inode, struct file *fp) +{ + return q_dbg_file_open(inode, fp); +} + +/*****************************************************************************/ +/** + * q_cntxt_read() - static function that performs cntxt file read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t q_cntxt_read(struct file *fp, char __user *user_buffer, + size_t count, loff_t *ppos) +{ + return q_dbg_file_read(fp, user_buffer, count, ppos, DBGFS_QINFO_CNTXT); +} + +/*****************************************************************************/ +/** + * q_desc_open() - static function that executes desc file open + * + * @param[in] inode: pointer to file inode + * @param[in] fp: pointer to file structure + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +static int q_desc_open(struct inode *inode, struct file *fp) +{ + return q_dbg_file_open(inode, fp); +} + +/*****************************************************************************/ +/** + * q_desc_read() - static function that executes desc read + * + * @param[in] fp: pointer to file structure + * @param[out] user_buffer: pointer to user buffer + * @param[in] count: size of data to read + * @param[in/out] ppos: pointer to offset read + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +static ssize_t q_desc_read(struct file *fp, char __user *user_buffer, + size_t count, loff_t *ppos) +{ + return q_dbg_file_read(fp, user_buffer, count, ppos, DBGFS_QINFO_DESC); +} + +/*****************************************************************************/ +/** + * create_q_dbg_files() - static function to create queue debug files + * + * @param[in] queue_root: debugfs root for a queue + * + * @return >0: size read + * @return <0: error + *****************************************************************************/ +int create_q_dbg_files(struct qdma_descq *descq, struct dentry *queue_root) +{ + struct dentry *fp[DBGFS_QINFO_END] = { NULL }; + struct file_operations *fops = NULL; + int i = 0; + + memset(qf, 0, sizeof(struct dbgfs_q_dbgf) * DBGFS_QINFO_END); + + for (i = 0; i < DBGFS_QINFO_END; i++) { + fops = &qf[i].fops; + fops->owner = THIS_MODULE; + switch (i) { + case DBGFS_QINFO_INFO: + snprintf(qf[i].name, DBGFS_DBG_FNAME_SZ, "%s", "info"); + fops->open = q_info_open; + fops->read = q_info_read; + fops->release = q_dbg_file_release; + break; + case DBGFS_QINFO_CNTXT: + snprintf(qf[i].name, DBGFS_DBG_FNAME_SZ, "%s", "cntxt"); + fops->open = q_cntxt_open; + fops->read = q_cntxt_read; + fops->release = q_dbg_file_release; + break; + case DBGFS_QINFO_DESC: + snprintf(qf[i].name, DBGFS_DBG_FNAME_SZ, "%s", "desc"); + fops->open = q_desc_open; + fops->read = q_desc_read; + fops->release = q_dbg_file_release; + break; + } + } + + for (i = 0; i < DBGFS_QINFO_END; i++) { + fp[i] = debugfs_create_file(qf[i].name, 0644, queue_root, + descq, &qf[i].fops); + if (!fp[i]) + return -1; + } + return 0; +} + +/*****************************************************************************/ +/** + * dbgfs_queue_init() - queue initialization function + * + * @param[in] conf: queue configuration + * @param[in] pair_conf: pair queue configuration + * @param[in] dbgfs_queues_root: root directory for all queues + * + * @return 0: success + * @return <0: error + *****************************************************************************/ +int dbgfs_queue_init(struct qdma_queue_conf *conf, + struct qdma_descq *pairq, + struct dentry *dbgfs_queues_root) +{ + char qname[16] = {0}; + char qdir[8] = {0}; + struct dentry *dbgfs_qidx_root = NULL; + struct dentry *dbgfs_queue_root = NULL; + struct dentry *dbgfs_cmpt_queue_root = NULL; + struct qdma_descq *descq = container_of(conf, struct qdma_descq, conf); + int rv = 0; + + if (!descq) + return -EINVAL; + snprintf(qname, 16, "%u", conf->qidx); + + spin_lock(&descq->xdev->qidx_lock); + /** create queue root only if it is not created */ + if (pairq->dbgfs_qidx_root) { + dbgfs_qidx_root = pairq->dbgfs_qidx_root; + } else { + /* create a directory for the queue in debugfs */ + dbgfs_qidx_root = debugfs_create_dir(qname, + dbgfs_queues_root); + if (!dbgfs_qidx_root) { + pr_err("Failed to create queue [%s] directory\n", + qname); + spin_unlock(&descq->xdev->qidx_lock); + return -1; + } + } + + /* create a directory for direction */ + if (conf->c2h) + snprintf(qdir, 8, "%s", "c2h"); + else + snprintf(qdir, 8, "%s", "h2c"); + + dbgfs_queue_root = debugfs_create_dir(qdir, + dbgfs_qidx_root); + if (!dbgfs_queue_root) { + pr_err("Failed to create %s directory under %s", + qdir, qname); + goto dbgfs_queue_init_fail; + } + + if (conf->c2h && conf->st) { + /* create a directory for the cmpt in debugfs */ + dbgfs_cmpt_queue_root = debugfs_create_dir("cmpt", + dbgfs_qidx_root); + if (!dbgfs_cmpt_queue_root) { + pr_err("Failed to create cmpt directory under %s", + qname); + goto dbgfs_queue_init_fail; + } + } + + /* intialize fops and create all the files */ + rv = create_q_dbg_files(descq, dbgfs_queue_root); + if (rv < 0) { + pr_err("Failed to create qdbg files, removing %s dir\n", + qdir); + debugfs_remove_recursive(dbgfs_queue_root); + goto dbgfs_queue_init_fail; + } + + if (dbgfs_cmpt_queue_root) { + rv = create_cmpt_q_dbg_files(descq, dbgfs_cmpt_queue_root); + if (rv < 0) { + pr_err("Failed to create cmptq dbg files,removing cmpt dir\n"); + debugfs_remove_recursive(dbgfs_cmpt_queue_root); + goto dbgfs_queue_init_fail; + } + } + + descq->dbgfs_qidx_root = dbgfs_qidx_root; + descq->dbgfs_queue_root = dbgfs_queue_root; + descq->dbgfs_cmpt_queue_root = dbgfs_cmpt_queue_root; + spin_unlock(&descq->xdev->qidx_lock); + + return 0; + +dbgfs_queue_init_fail: + if (pairq->dbgfs_qidx_root) { + spin_unlock(&descq->xdev->qidx_lock); + return -1; + } + pr_err("Failed to init q debug files, removing [%s] dir\n", qname); + debugfs_remove_recursive(dbgfs_qidx_root); + spin_unlock(&descq->xdev->qidx_lock); + return -1; +} + +/*****************************************************************************/ +/** + * dbgfs_queue_exit() - debugfs queue teardown function + * + * @param[in] conf: queue configuration + * @param[in] conf: pair queue configuration + * + *****************************************************************************/ +void dbgfs_queue_exit(struct qdma_queue_conf *conf, + struct qdma_descq *pairq) +{ + struct qdma_descq *descq = container_of(conf, struct qdma_descq, conf); + + if (!descq) + return; + debugfs_remove_recursive(descq->dbgfs_queue_root); + debugfs_remove_recursive(descq->dbgfs_cmpt_queue_root); + descq->dbgfs_queue_root = NULL; + descq->dbgfs_cmpt_queue_root = NULL; + if (!pairq) + debugfs_remove_recursive(descq->dbgfs_qidx_root); + + descq->dbgfs_qidx_root = NULL; +} + +#endif diff --git a/QDMA/linux-kernel/libqdma/qdma_debugfs_queue.h b/QDMA/linux-kernel/libqdma/qdma_debugfs_queue.h new file mode 100644 index 0000000..1dac21d --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_debugfs_queue.h @@ -0,0 +1,33 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __QDMA_DEBUGFS_QUEUE_H__ +#define __QDMA_DEBUGFS_QUEUE_H__ + +#include "qdma_debugfs.h" +#include "qdma_descq.h" + + +int dbgfs_queue_init(struct qdma_queue_conf *conf, + struct qdma_descq *pairq, + struct dentry *dbgfs_queues_root); +void dbgfs_queue_exit(struct qdma_queue_conf *conf, + struct qdma_descq *pairq); + +#endif diff --git a/QDMA/linux-kernel/libqdma/qdma_descq.c b/QDMA/linux-kernel/libqdma/qdma_descq.c new file mode 100644 index 0000000..bbe1704 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_descq.c @@ -0,0 +1,1602 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "qdma_descq.h" + +#include <linux/kernel.h> +#include <linux/delay.h> + +#include "qdma_device.h" +#include "qdma_intr.h" +#include "qdma_regs.h" +#include "qdma_thread.h" +#include "qdma_context.h" +#include "qdma_st_c2h.h" +#include "thread.h" +#include "version.h" +#ifdef ERR_DEBUG +#include "qdma_nl.h" +#endif + +void intr_cidx_update(struct qdma_descq *descq, unsigned int sw_cidx, + int ring_index) +{ + unsigned int cidx = 0; + + cidx |= V_INTR_CIDX_UPD_SW_CIDX(sw_cidx) | + V_INTR_CIDX_UPD_RING_INDEX(ring_index); + + __write_reg(descq->xdev, + QDMA_REG_INT_CIDX_BASE + descq->conf.qidx * QDMA_REG_PIDX_STEP, + cidx); +} + +/* + * dma transfer requests + */ +#ifdef DEBUG +static void sgl_dump(struct qdma_sw_sg *sgl, unsigned int sgcnt) +{ + struct qdma_sw_sg *sg = sgl; + int i; + + pr_info("sgl 0x%p, sgcntt %u.\n", sgl, sgcnt); + + for (i = 0; i < sgcnt; i++, sg++) + pr_info("%d, 0x%p, pg 0x%p,%u+%u, dma 0x%llx.\n", + i, sg, sg->pg, sg->offset, sg->len, sg->dma_addr); +} +#endif + +static int sgl_find_offset(struct qdma_sw_sg *sgl, unsigned int sgcnt, + unsigned int offset, struct qdma_sw_sg **sg_p, + unsigned int *sg_offset) +{ + struct qdma_sw_sg *sg = sgl; + unsigned int len = 0; + int i; + + for (i = 0; i < sgcnt; i++, sg++) { + len += sg->len; + + if (len == offset) { + *sg_p = sg + 1; + *sg_offset = 0; + return ++i; + } else if (len > offset) { + *sg_p = sg; + *sg_offset = sg->len - (len - offset); + return i; + } + } + + return -EINVAL; +} + +static inline void req_submitted(struct qdma_descq *descq, + struct qdma_sgt_req_cb *cb) +{ + cb->req_state = QDMA_REQ_SUBMITTED; + list_del(&cb->list); + list_add_tail(&cb->list, &descq->pend_list); +} + +static int descq_mm_n_h2c_cmpl_status(struct qdma_descq *descq); + +static int descq_poll_mm_n_h2c_cmpl_status(struct qdma_descq *descq) +{ + enum qdma_drv_mode drv_mode = descq->xdev->conf.qdma_drv_mode; + + if ((drv_mode == POLL_MODE) || (drv_mode == AUTO_MODE)) { + descq->proc_req_running = 1; + return descq_mm_n_h2c_cmpl_status(descq); + } else + return 0; +} + +static ssize_t descq_mm_proc_request(struct qdma_descq *descq) +{ + int c2h = descq->conf.c2h; + unsigned int desc_written = 0; + unsigned int rngsz = descq->conf.rngsz; + unsigned int pidx; + struct qdma_mm_desc *desc; + + lock_descq(descq); + /* process completion of submitted requests */ + if (descq->q_stop_wait) { + descq_mm_n_h2c_cmpl_status(descq); + unlock_descq(descq); + return 0; + } + if (unlikely(descq->q_state != Q_STATE_ONLINE)) { + unlock_descq(descq); + return 0; + } + + if (descq->proc_req_running) { + unlock_descq(descq); + return 0; + } + + pidx = descq->pidx; + desc = (struct qdma_mm_desc *)descq->desc + pidx; + + descq_poll_mm_n_h2c_cmpl_status(descq); + + while (!list_empty(&descq->work_list)) { + struct qdma_sgt_req_cb *cb = list_first_entry(&descq->work_list, + struct qdma_sgt_req_cb, list); + struct qdma_request *req = (struct qdma_request *)cb; + struct qdma_sw_sg *sg = req->sgl; + unsigned int sg_offset = 0; + unsigned int sg_max = req->sgcnt; + u64 ep_addr = req->ep_addr + cb->offset; + struct qdma_mm_desc *desc_start = NULL; + struct qdma_mm_desc *desc_end = NULL; + unsigned int desc_max = descq->avail; + unsigned int data_cnt = 0; + unsigned int desc_cnt = 0; + unsigned int len = 0; + int i = 0; + + if (!desc_max) { + descq->pidx = pidx; + descq_poll_mm_n_h2c_cmpl_status(descq); + desc_max = descq->avail; + } + + if (!desc_max) + break; + + if (cb->offset) { + int rv = sgl_find_offset(req->sgl, req->sgcnt, + cb->offset, &sg, &sg_offset); + if (rv < 0 || rv >= sg_max) { + pr_info("descq %s, req 0x%p, OOR %u/%u, %d/%u.\n", + descq->conf.name, req, cb->offset, + req->count, rv, sg_max); + req_submitted(descq, cb); + continue; + } + i = rv; + pr_debug("%s, req 0x%p, offset %u/%u -> sg %d, 0x%p,%u.\n", + descq->conf.name, req, cb->offset, req->count, + i, sg, sg_offset); + } else + i = 0; + + desc_start = desc; + for (; i < sg_max && desc_cnt < desc_max; i++, sg++) { + unsigned int tlen = sg->len; + dma_addr_t addr = sg->dma_addr; + unsigned int pg_off = sg->offset; + + pr_debug("desc %u/%u, sgl %d, len %u,%u, offset %u.\n", + desc_cnt, desc_max, i, len, tlen, sg_offset); + + if (sg_offset) { + tlen -= sg_offset; + addr += sg_offset; + pg_off += sg_offset; + sg_offset = 0; + } + + while (tlen) { + unsigned int len = min_t(unsigned int, tlen, + QDMA_DESC_BLEN_MAX); + desc_end = desc; + + desc->rsvd1 = 0UL; + desc->rsvd0 = 0U; + + if (descq->conf.c2h) { + desc->src_addr = ep_addr; + desc->dst_addr = addr; + } else { + desc->dst_addr = ep_addr; + desc->src_addr = addr; + } + + desc->flag_len = len; + desc->flag_len |= (1 << S_DESC_F_DV); + + ep_addr += len; + data_cnt += len; + addr += len; + tlen -= len; + pg_off += len; + + if (++pidx == rngsz) { + pidx = 0; + desc = + (struct qdma_mm_desc *)descq->desc; + } else { + desc++; + } + + desc_cnt++; + if (desc_cnt == desc_max) + break; + } + } + + if (!desc_end || !desc_start) { + pr_info("descq %s, %u, pidx 0x%x, desc 0x%p ~ 0x%p.\n", + descq->conf.name, descq->qidx_hw, pidx, + desc_start, desc_end); + break; + } + + /* set eop */ + desc_end->flag_len |= (1 << S_DESC_F_EOP); + /* set sop */ + desc_start->flag_len |= (1 << S_DESC_F_SOP); + + cb->desc_nr += desc_cnt; + cb->offset += data_cnt; + + desc_written += desc_cnt; + + pr_debug("descq %s, +%u,%u, avail %u, ep_addr 0x%llx + 0x%x(%u).\n", + descq->conf.name, desc_cnt, pidx, descq->avail, + req->ep_addr, data_cnt, data_cnt); + + descq->avail -= desc_cnt; + descq->pend_req_desc -= desc_cnt; + if (cb->offset == req->count) + req_submitted(descq, cb); + else + cb->req_state = QDMA_REQ_SUBMIT_PARTIAL; + } + + if (desc_written) { + descq->pend_list_empty = 0; + if (c2h) + descq_c2h_pidx_update(descq, pidx); + else + descq_h2c_pidx_update(descq, pidx); + + descq->pidx = pidx; + + descq_poll_mm_n_h2c_cmpl_status(descq); + } + + descq->proc_req_running = 0; + unlock_descq(descq); + + if (desc_written && descq->cmplthp) + qdma_kthread_wakeup(descq->cmplthp); + + return 0; +} + +static ssize_t descq_proc_st_h2c_request(struct qdma_descq *descq) +{ + struct qdma_h2c_desc *desc; + unsigned int rngsz = descq->conf.rngsz; + unsigned int pidx; + unsigned int desc_written = 0; + + lock_descq(descq); + /* process completion of submitted requests */ + if (descq->q_stop_wait) { + descq_mm_n_h2c_cmpl_status(descq); + unlock_descq(descq); + return 0; + } + if (unlikely(descq->q_state != Q_STATE_ONLINE)) { + unlock_descq(descq); + return 0; + } + + if (descq->proc_req_running) { + unlock_descq(descq); + return 0; + } + + /* service completion first */ + descq_poll_mm_n_h2c_cmpl_status(descq); + + pidx = descq->pidx; + desc = (struct qdma_h2c_desc *)descq->desc + pidx; + while (!list_empty(&descq->work_list)) { + struct qdma_sgt_req_cb *cb = list_first_entry(&descq->work_list, + struct qdma_sgt_req_cb, list); + struct qdma_request *req = (struct qdma_request *)cb; + struct qdma_sw_sg *sg = req->sgl; + unsigned int sg_offset = 0; + unsigned int sg_max = req->sgcnt; + unsigned int desc_max = descq->avail; + unsigned int data_cnt = 0; + unsigned int desc_cnt = 0; + unsigned int pktsz = req->ep_addr ? + min_t(unsigned int, req->ep_addr, PAGE_SIZE) : + PAGE_SIZE; + int i = 0; + + if (!desc_max) { + descq->pidx = pidx; + descq_poll_mm_n_h2c_cmpl_status(descq); + desc_max = descq->avail; + } + + if (!desc_max) + break; + +#ifdef DEBUG + pr_info("%s, req %u.\n", descq->conf.name, req->count); + sgl_dump(req->sgl, sg_max); +#endif + + if (cb->offset) { + int rv = sgl_find_offset(req->sgl, sg_max, cb->offset, + &sg, &sg_offset); + + if (rv < 0 || rv >= sg_max) { + pr_info("descq %s, req 0x%p, OOR %u/%u, %d/%u.\n", + descq->conf.name, req, cb->offset, + req->count, rv, sg_max); + req_submitted(descq, cb); + continue; + } + i = rv; + pr_debug("%s, req 0x%p, offset %u/%u -> sg %d, 0x%p,%u.\n", + descq->conf.name, req, cb->offset, req->count, + i, sg, sg_offset); + } else { + i = 0; + desc->flags |= S_H2C_DESC_F_SOP; + } + + for (; i < sg_max && desc_cnt < desc_max; i++, sg++) { + unsigned int tlen = sg->len; + dma_addr_t addr = sg->dma_addr; + + if (sg_offset) { + tlen -= sg_offset; + addr += sg_offset; + sg_offset = 0; + } + + do { /* to support zero byte transfer */ + unsigned int len = min_t(unsigned int, tlen, + pktsz); + + desc->src_addr = addr; + desc->len = len; + desc->pld_len = len; + desc->cdh_flags |= S_H2C_DESC_F_ZERO_CDH; + + if (descq->xdev->stm_en) { + desc->pld_len = len; + desc->cdh_flags = + (1 << S_H2C_DESC_F_ZERO_CDH); + desc->cdh_flags |= V_H2C_DESC_NUM_GL(1); + + /* if we are about to exhaust ring, + * request h2c-wb + */ + if (desc_cnt == (desc_max - 1)) + desc->cdh_flags |= + (1 << + S_H2C_DESC_F_REQ_CMPL_STATUS); + } else if (unlikely + (descq->xdev->conf.tm_mode_en)) { + /** Check if we are running in TM mode to test + * sending TMH and CDH with Traffic Manager + * example design for Streaming H2C queue in + * bypass mode + */ + + /** In TM mode, check if we are to run + * with 1 CDH or Zero CDH + */ + if (descq->xdev->conf.tm_one_cdh_en) { + /** In 1 CDH case, this desc + * carries CDH - comprising of + * 4B TMH (pld_len and + * cdh_flags fields) and 12B CDH. + * + * Next desc carries the GL. So, + * we advance to next desc. + * + * Max supported payload with GL + * is 4K. + */ + desc->pld_len = len; + desc->cdh_flags = + (V_H2C_DESC_NUM_CDH(1) | + V_H2C_DESC_NUM_GL(1) | + (1 << S_H2C_DESC_F_REQ_CMPL_STATUS) | + (1 << S_H2C_DESC_F_EOT)); + desc->flags = 0; + desc->len = 0; + desc->src_addr = 0; + + if (++pidx == descq->conf.rngsz) { + pidx = 0; + desc = + (struct qdma_h2c_desc *)descq->desc; + } else { + desc++; + } + desc_cnt++; + /* below due to one CDH desc */ + descq->pend_req_desc += 1; + desc->pld_len = 0; + desc->cdh_flags = 0; + desc->src_addr = addr; + desc->len = len; + } else { + /** In zero CDH case, this desc + * holds the 4B TMH (pld_len and + * cdh_flags fields). + * And the desc carries the GL too. + * + * Max supported payload with GL + * is 4K. + */ + desc->pld_len = len; + desc->cdh_flags = + (1 << S_H2C_DESC_F_ZERO_CDH); + desc->cdh_flags |= + V_H2C_DESC_NUM_GL(1); + desc->cdh_flags |= + ((1 << + S_H2C_DESC_F_REQ_CMPL_STATUS) | + (1 << S_H2C_DESC_F_EOT)); + } + } + +#ifdef ER_DEBUG + if (descq->induce_err & (1 << len_mismatch)) { + desc->len = 0xFFFFFFFF; + pr_info("inducing %d err", + len_mismatch); + } +#endif + data_cnt += len; + addr += len; + tlen -= len; + + if ((i == sg_max - 1)) { + desc->flags |= S_H2C_DESC_F_EOP; + + if (descq->xdev->stm_en) + desc->cdh_flags |= + (req->h2c_eot << + S_H2C_DESC_F_EOT) | + (1 << + S_H2C_DESC_F_REQ_CMPL_STATUS); + } + +#if 0 + pr_info("desc %d, pidx 0x%x, data_cnt %u, cb off %u:\n", + i, pidx, data_cnt, cb->offset); + print_hex_dump(KERN_INFO, "desc", + DUMP_PREFIX_OFFSET, 16, 1, + (void *)desc, 16, false); +#endif + + if (++pidx == rngsz) { + pidx = 0; + desc = + (struct qdma_h2c_desc *)descq->desc; + } else { + desc++; + } + + desc_cnt++; + if (desc_cnt == desc_max) + break; + } while (tlen); + + } + + cb->desc_nr += desc_cnt; + cb->offset += data_cnt; + + desc_written += desc_cnt; + + pr_debug("descq %s, +%u,%u, avail %u, 0x%x(%u), cb off %u.\n", + descq->conf.name, desc_cnt, pidx, descq->avail, + data_cnt, data_cnt, cb->offset); + + descq->avail -= desc_cnt; + descq->pend_req_desc -= desc_cnt; + + if (cb->offset == req->count) + req_submitted(descq, cb); + else + cb->req_state = QDMA_REQ_SUBMIT_PARTIAL; + } + + if (desc_written) { + descq->pend_list_empty = 0; + descq_h2c_pidx_update(descq, pidx); + descq->pidx = pidx; + + descq_poll_mm_n_h2c_cmpl_status(descq); + + } + + descq->proc_req_running = 0; + + if (descq->cmplthp) + qdma_kthread_wakeup(descq->cmplthp); + + unlock_descq(descq); + + return 0; +} + +/* + * descriptor Queue + */ +static inline int get_desc_size(struct qdma_descq *descq) +{ + if (descq->conf.desc_bypass && (descq->conf.sw_desc_sz == DESC_SZ_64B)) + return DESC_SZ_64B_BYTES; + if (!descq->conf.st) + return (int)sizeof(struct qdma_mm_desc); + + if (descq->conf.c2h) + return (int)sizeof(struct qdma_c2h_desc); + + return (int)sizeof(struct qdma_h2c_desc); +} + +static inline int get_desc_cmpl_status_size(struct qdma_descq *descq) +{ + return (int)sizeof(struct qdma_desc_cmpl_status); +} + +static inline void desc_ring_free(struct xlnx_dma_dev *xdev, int ring_sz, + int desc_sz, int cs_sz, u8 *desc, dma_addr_t desc_bus) +{ + unsigned int len = ring_sz * desc_sz + cs_sz; + + pr_debug("free %u(0x%x)=%d*%u+%d, 0x%p, bus 0x%llx.\n", + len, len, desc_sz, ring_sz, cs_sz, desc, desc_bus); + + dma_free_coherent(&xdev->conf.pdev->dev, ring_sz * desc_sz + cs_sz, + desc, desc_bus); +} + +static void *desc_ring_alloc(struct xlnx_dma_dev *xdev, int ring_sz, + int desc_sz, int cs_sz, dma_addr_t *bus, u8 **cs_pp) +{ + unsigned int len = ring_sz * desc_sz + cs_sz; + u8 *p = dma_alloc_coherent(&xdev->conf.pdev->dev, len, bus, GFP_KERNEL); + + if (!p) { + pr_info("%s, OOM, sz ring %d, desc %d, cmpl status sz %d.\n", + xdev->conf.name, ring_sz, desc_sz, cs_sz); + return NULL; + } + + *cs_pp = p + ring_sz * desc_sz; + memset(p, 0, len); + + pr_debug("alloc %u(0x%x)=%d*%u+%d, 0x%p, bus 0x%llx, cmpl status 0x%p.\n", + len, len, desc_sz, ring_sz, cs_sz, p, *bus, *cs_pp); + + return p; +} + +static void desc_free_irq(struct qdma_descq *descq) +{ + struct xlnx_dma_dev *xdev = descq->xdev; + unsigned long flags; + + if (!xdev->num_vecs) + return; + + spin_lock_irqsave(&xdev->lock, flags); + if (xdev->dev_intr_info_list[descq->intr_id].intr_list_cnt) + xdev->dev_intr_info_list[descq->intr_id].intr_list_cnt--; + spin_unlock_irqrestore(&xdev->lock, flags); +} + +static void desc_alloc_irq(struct qdma_descq *descq) +{ + struct xlnx_dma_dev *xdev = descq->xdev; + unsigned long flags; + int i, idx = 0, min = 0; + + if (!xdev->num_vecs) + return; + + /** Pick the MSI-X vector that currently has the fewest queues + * on PF0, vector#0 is dedicated for Error interrupts and + * vector #1 is dedicated for User interrupts + * For all other PFs, vector#0 is dedicated for User interrupts + */ + min = xdev->dev_intr_info_list[xdev->dvec_start_idx].intr_list_cnt; + idx = xdev->dvec_start_idx; + if (xdev->conf.qdma_drv_mode == DIRECT_INTR_MODE) { + spin_lock_irqsave(&xdev->lock, flags); + for (i = xdev->dvec_start_idx; i < xdev->num_vecs; i++) { + if (xdev->dev_intr_info_list[i].intr_list_cnt < min) { + min = xdev->dev_intr_info_list[i].intr_list_cnt; + idx = i; + } + + if (!min) + break; + } + xdev->dev_intr_info_list[idx].intr_list_cnt++; + spin_unlock_irqrestore(&xdev->lock, flags); + } + descq->intr_id = idx; + pr_debug("descq->intr_id = %d allocated to qidx = %d\n", + descq->intr_id, descq->conf.qidx); +} + +/* + * writeback handling + */ +static int descq_mm_n_h2c_cmpl_status(struct qdma_descq *descq) +{ + unsigned int cidx, cidx_hw; + unsigned int cr; + + pr_debug("descq 0x%p, %s, pidx %u, cidx %u.\n", + descq, descq->conf.name, descq->pidx, descq->cidx); + + if (descq->pidx == descq->cidx) { /* queue empty? */ + pr_debug("descq %s empty, return.\n", descq->conf.name); + return 0; + } + + cidx = descq->cidx; +#ifdef __READ_ONCE_DEFINED__ + cidx_hw = READ_ONCE(((struct qdma_desc_cmpl_status *) + descq->desc_cmpl_status)->cidx); +#else + cidx_hw = ((struct qdma_desc_cmpl_status *) + descq->desc_cmpl_status)->cidx; +#endif + + if (cidx_hw == cidx) /* no new writeback? */ + return 0; + + /* completion credits */ + cr = (cidx_hw < cidx) ? (descq->conf.rngsz - cidx) + cidx_hw : + cidx_hw - cidx; + + pr_debug("descq %s, cidx 0x%x -> 0x%x, avail 0x%x + 0x%x.\n", + descq->conf.name, cidx, cidx_hw, descq->avail, cr); + + descq->cidx = cidx_hw; + descq->avail += cr; + descq->credit += cr; + + incr_cmpl_desc_cnt(descq, cr); + + /* completes requests */ + pr_debug("%s, 0x%p, credit %u + %u.\n", + descq->conf.name, descq, cr, descq->credit); + + cr = descq->credit; + + while (!list_empty(&descq->pend_list)) { + struct qdma_sgt_req_cb *cb = list_first_entry(&descq->pend_list, + struct qdma_sgt_req_cb, list); + + pr_debug("%s, 0x%p, cb 0x%p, desc_nr %u, credit %u.\n", + descq->conf.name, descq, cb, cb->desc_nr, cr); + + if (cr >= cb->desc_nr) { + pr_debug("%s, cb 0x%p done, credit %u > %u.\n", + descq->conf.name, cb, cr, cb->desc_nr); + cr -= cb->desc_nr; + qdma_sgt_req_done(descq, cb, 0); + } else { + pr_debug("%s, cb 0x%p not done, credit %u < %u.\n", + descq->conf.name, cb, cr, cb->desc_nr); + cb->desc_nr -= cr; + cr = 0; + } + + if (!cr) + break; + } + + descq->credit = cr; + pr_debug("%s, 0x%p, credit %u.\n", + descq->conf.name, descq, descq->credit); + + if (descq->conf.c2h) + descq_c2h_pidx_update(descq, descq->pidx); + else + descq_h2c_pidx_update(descq, descq->pidx); + + /* Request thread may have only setup a fraction of the transfer (e.g. + * there wasn't enough space in desc ring). We now have more space + * available again so we can continue programming the + * dma transfer by resuming the thread here. + */ + + + return 1; +} + +/* ************** public function definitions ******************************* */ + +void qdma_descq_init(struct qdma_descq *descq, struct xlnx_dma_dev *xdev, + int idx_hw, int idx_sw) +{ + struct qdma_dev *qdev = xdev_2_qdev(xdev); + + memset(descq, 0, sizeof(struct qdma_descq)); + + spin_lock_init(&descq->lock); + INIT_LIST_HEAD(&descq->work_list); + INIT_LIST_HEAD(&descq->pend_list); + qdma_waitq_init(&descq->pend_list_wq); + INIT_LIST_HEAD(&descq->intr_list); + INIT_LIST_HEAD(&descq->legacy_intr_q_list); + INIT_WORK(&descq->work, intr_work); + descq->xdev = xdev; + descq->channel = 0; + descq->qidx_hw = qdev->qbase + idx_hw; + descq->conf.qidx = idx_sw; +} + +void qdma_descq_cleanup(struct qdma_descq *descq) +{ + lock_descq(descq); + + if (descq->q_state == Q_STATE_ONLINE) { + descq->q_state = Q_STATE_ENABLED; + qdma_descq_context_clear(descq->xdev, descq->qidx_hw, + descq->conf.st, descq->conf.c2h, 0); + } else + goto end; + desc_free_irq(descq); + + qdma_descq_free_resource(descq); + +end: + unlock_descq(descq); +} + +int qdma_descq_alloc_resource(struct qdma_descq *descq) +{ + struct xlnx_dma_dev *xdev = descq->xdev; + int rv; +#ifdef TEST_64B_DESC_BYPASS_FEATURE + int i = 0; + u8 *desc_bypass; + u8 bypass_data[DESC_SZ_64B_BYTES]; +#endif + /* descriptor ring */ + descq->desc = desc_ring_alloc(xdev, descq->conf.rngsz, + get_desc_size(descq), + get_desc_cmpl_status_size(descq), + &descq->desc_bus, &descq->desc_cmpl_status); + if (!descq->desc) { + pr_info("dev %s, descq %s, sz %u, desc ring OOM.\n", + xdev->conf.name, descq->conf.name, descq->conf.rngsz); + goto err_out; + } + + + if (descq->conf.st && descq->conf.c2h) { + struct qdma_flq *flq = (struct qdma_flq *)descq->flq; + + descq->color = 1; + flq->desc = (struct qdma_c2h_desc *)descq->desc; + flq->size = descq->conf.rngsz; + flq->pg_shift = fls(descq->conf.c2h_bufsz) - 1; + + /* These code changes are to accomodate buf_sz + * of less than 4096 + */ + if (flq->pg_shift < PAGE_SHIFT) { + flq->pg_shift = PAGE_SHIFT; + flq->pg_order = 0; + } else + flq->pg_order = flq->pg_shift - PAGE_SHIFT; + + /* writeback ring */ + descq->desc_cmpt = desc_ring_alloc(xdev, + descq->conf.rngsz_cmpt, + descq->cmpt_entry_len, + sizeof(struct + qdma_c2h_cmpt_cmpl_status), + &descq->desc_cmpt_bus, + &descq->desc_cmpt_cmpl_status); + if (!descq->desc_cmpt) { + pr_warn("dev %s, descq %s, sz %u, cmpt ring OOM.\n", + xdev->conf.name, descq->conf.name, + descq->conf.rngsz_cmpt); + goto err_out; + } + descq->desc_cmpt_cur = descq->desc_cmpt; + + /* freelist / rx buffers */ + rv = descq_flq_alloc_resource(descq); + if (rv < 0) + goto err_out; + } + + pr_debug("%s: %u/%u, rng %u,%u, desc 0x%p, cmpl status 0x%p.\n", + descq->conf.name, descq->conf.qidx, descq->qidx_hw, + descq->conf.rngsz, descq->conf.rngsz_cmpt, descq->desc, + descq->desc_cmpt); + + /* interrupt vectors */ + desc_alloc_irq(descq); + + /* Fill in the descriptors with some hard coded value for testing */ +#ifdef TEST_64B_DESC_BYPASS_FEATURE + desc_bypass = descq->desc; + if (descq->conf.st && !(descq->conf.c2h)) { + if (descq->conf.desc_bypass && + (descq->conf.sw_desc_sz == DESC_SZ_64B)) { + for (i = 0; i < descq->conf.rngsz; i++) { + memset(bypass_data, i+1, DESC_SZ_64B_BYTES); + memcpy(&desc_bypass[i*DESC_SZ_64B_BYTES], + bypass_data, DESC_SZ_64B_BYTES); + } + } + } +#endif + return 0; + +err_out: + qdma_descq_free_resource(descq); + return QDMA_ERR_OUT_OF_MEMORY; +} + +void qdma_descq_free_resource(struct qdma_descq *descq) +{ + if (!descq) + return; + + if (descq->desc) { + + int desc_sz = get_desc_size(descq); + int cs_sz = get_desc_cmpl_status_size(descq); + + pr_debug("%s: desc 0x%p, cmpt 0x%p.\n", + descq->conf.name, descq->desc, descq->desc_cmpt); + + desc_ring_free(descq->xdev, descq->conf.rngsz, desc_sz, cs_sz, + descq->desc, descq->desc_bus); + + descq->desc_cmpl_status = NULL; + descq->desc = NULL; + descq->desc_bus = 0UL; + } + + if (descq->desc_cmpt) { + descq_flq_free_resource(descq); + desc_ring_free(descq->xdev, descq->conf.rngsz_cmpt, + descq->cmpt_entry_len, + sizeof(struct qdma_c2h_cmpt_cmpl_status), + descq->desc_cmpt, descq->desc_cmpt_bus); + + descq->desc_cmpt_cmpl_status = NULL; + descq->desc_cmpt = NULL; + descq->desc_cmpt_bus = 0UL; + } +} + +void qdma_descq_config(struct qdma_descq *descq, struct qdma_queue_conf *qconf, + int reconfig) +{ + if (!reconfig) { + int len; + + memcpy(&descq->conf, qconf, sizeof(struct qdma_queue_conf)); + /* descq->conf.st = qconf->st; + * descq->conf.c2h = qconf->c2h; + */ + + /* qdma[vf]<255>-MM/ST-H2C/C2H-Q[2048] */ +#ifdef __QDMA_VF__ + len = sprintf(descq->conf.name, "qdmavf"); +#else + len = sprintf(descq->conf.name, "qdma"); +#endif + len += sprintf(descq->conf.name + len, "%05x-%s-%u", + descq->xdev->conf.bdf, descq->conf.st ? "ST" : "MM", + descq->conf.qidx); + descq->conf.name[len] = '\0'; + + descq->conf.st = qconf->st; + descq->conf.c2h = qconf->c2h; + + } else { + descq->conf.desc_rng_sz_idx = qconf->desc_rng_sz_idx; + descq->conf.cmpl_rng_sz_idx = qconf->cmpl_rng_sz_idx; + descq->conf.c2h_buf_sz_idx = qconf->c2h_buf_sz_idx; + + descq->conf.irq_en = (descq->xdev->conf.qdma_drv_mode != + POLL_MODE) ? 1 : 0; + descq->conf.cmpl_status_en = qconf->cmpl_status_en; + descq->conf.cmpl_status_acc_en = qconf->cmpl_status_acc_en; + descq->conf.cmpl_status_pend_chk = qconf->cmpl_status_pend_chk; + descq->conf.cmpl_stat_en = qconf->cmpl_stat_en; + descq->conf.cmpl_trig_mode = qconf->cmpl_trig_mode; + descq->conf.cmpl_timer_idx = qconf->cmpl_timer_idx; + descq->conf.fetch_credit = qconf->fetch_credit; + descq->conf.cmpl_cnt_th_idx = qconf->cmpl_cnt_th_idx; + + descq->conf.desc_bypass = qconf->desc_bypass; + descq->conf.pfetch_bypass = qconf->pfetch_bypass; + descq->conf.pfetch_en = qconf->pfetch_en; + descq->conf.cmpl_udd_en = qconf->cmpl_udd_en; + descq->conf.cmpl_desc_sz = qconf->cmpl_desc_sz; + descq->conf.sw_desc_sz = qconf->sw_desc_sz; + descq->conf.pipe_gl_max = qconf->pipe_gl_max; + descq->conf.pipe_flow_id = qconf->pipe_flow_id; + descq->conf.pipe_slr_id = qconf->pipe_slr_id; + descq->conf.pipe_tdest = qconf->pipe_tdest; + descq->conf.cmpl_ovf_chk_dis = qconf->cmpl_ovf_chk_dis; + } +} + +int qdma_descq_config_complete(struct qdma_descq *descq) +{ + struct qdma_csr_info csr_info; + struct qdma_queue_conf *qconf = &descq->conf; + int rv; + + memset(&csr_info, 0, sizeof(csr_info)); + csr_info.type = QDMA_CSR_TYPE_RNGSZ; + csr_info.idx_rngsz = qconf->desc_rng_sz_idx; + csr_info.idx_bufsz = qconf->c2h_buf_sz_idx; + csr_info.idx_timer_cnt = qconf->cmpl_timer_idx; + csr_info.idx_cnt_th = qconf->cmpl_cnt_th_idx; + + rv = qdma_csr_read(descq->xdev, &csr_info, QDMA_MBOX_MSG_TIMEOUT_MS); + if (rv < 0) + return rv; + + qconf->rngsz = csr_info.array[qconf->desc_rng_sz_idx] - 1; + + /* <= 2018.2 IP + * make the cmpl ring size bigger if possible to avoid run out of + * cmpl entry while desc. ring still have free entries + */ + if (qconf->st && qconf->c2h) { + int i; + unsigned int v = csr_info.array[qconf->cmpl_rng_sz_idx]; + int best_fit_idx = -1; + + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++) { + if (csr_info.array[i] > v) { + if (best_fit_idx < 0) + best_fit_idx = i; + else if ((best_fit_idx >= 0) && + (csr_info.array[i] < + csr_info.array[best_fit_idx])) + best_fit_idx = i; + } + } + + if (best_fit_idx >= 0) + qconf->cmpl_rng_sz_idx = best_fit_idx; + + qconf->rngsz_cmpt = csr_info.array[qconf->cmpl_rng_sz_idx] - 1; + qconf->c2h_bufsz = csr_info.bufsz; + } + + /* we can never use the full ring because then cidx would equal pidx + * and thus the ring would be interpreted as empty. Thus max number of + * usable entries is ring_size - 1 + */ + descq->avail = descq->conf.rngsz - 1; + descq->pend_list_empty = 1; + + descq->pidx = 0; + descq->cidx = 0; + descq->cidx_cmpt = 0; + descq->pidx_cmpt = 0; + descq->credit = 0; + descq->io_batch_cnt = (descq->conf.st && descq->conf.c2h) ? + (1 << descq->conf.cmpl_cnt_th_idx) : + (1 << (csr_info.cmpl_status_acc + 3)); /* tuned value */ + descq->pend_req_desc = 0; + + /* ST C2H only */ + if (qconf->c2h && qconf->st) { + descq->cmpt_entry_len = 8 << qconf->cmpl_desc_sz; + + pr_debug("%s: cmpl sz %u(%d), udd_en %d.\n", + descq->conf.name, descq->cmpt_entry_len, + descq->conf.cmpl_desc_sz, descq->conf.cmpl_udd_en); + } + + if (qconf->fp_descq_isr_top) + descq->xdev->conf.isr_top_q_en = 1; + + return 0; +} + +int qdma_descq_prog_hw(struct qdma_descq *descq) +{ + int rv = qdma_descq_context_setup(descq); + + if (rv < 0) { + pr_warn("%s failed to program contexts", descq->conf.name); + return rv; + } + + /* update pidx/cidx */ + if (descq->conf.st && descq->conf.c2h) { + if (!descq->xdev->stm_en) { + /* For STM enabled device, these updates need to be + * delayed until STM context is setup for the queue + */ + descq_cmpt_cidx_update(descq, 0); + descq_c2h_pidx_update(descq, descq->conf.rngsz - 1); + } + } + + return rv; +} + +#ifndef __QDMA_VF__ +int qdma_descq_prog_stm(struct qdma_descq *descq, bool clear) +{ + int rv; + + if (!descq->conf.st) { + pr_err("%s: STM programming called for MM-mode\n", + descq->conf.name); + return -EINVAL; + } + + if (descq->qidx_hw > STM_MAX_SUPPORTED_QID) { + pr_err("%s: QID for STM cannot be > %d\n", + descq->conf.name, STM_MAX_SUPPORTED_QID); + return -EINVAL; + } + + if (descq->xdev->stm_rev != STM_SUPPORTED_REV) { + pr_err("%s: No supported STM rev found in hw\n", + descq->conf.name); + return -ENODEV; + } + + if (!descq->conf.c2h && !descq->conf.desc_bypass) { + pr_err("%s: H2C queue needs to be in bypass with STM\n", + descq->conf.name); + return -EINVAL; + } + + if (clear) + rv = qdma_descq_stm_clear(descq); + else + rv = qdma_descq_stm_setup(descq); + if (rv < 0) { + pr_warn("%s: failed to program stm", descq->conf.name); + return rv; + } + + /* update pidx/cidx for C2H */ + if (descq->conf.c2h) { + descq_cmpt_cidx_update(descq, 0); + descq_c2h_pidx_update(descq, descq->conf.rngsz - 1); + } + + return rv; +} +#endif + +void qdma_descq_service_cmpl_update(struct qdma_descq *descq, int budget, + bool c2h_upd_cmpl) +{ + if (descq->conf.st && descq->conf.c2h) { + lock_descq(descq); + if (descq->q_state == Q_STATE_ONLINE) + descq_process_completion_st_c2h(descq, budget, + c2h_upd_cmpl); + unlock_descq(descq); + } else if ((descq->xdev->conf.qdma_drv_mode == POLL_MODE) || + (descq->xdev->conf.qdma_drv_mode == AUTO_MODE)) { + if (!descq->proc_req_running) + qdma_descq_proc_sgt_request(descq); + } else { + lock_descq(descq); + descq_mm_n_h2c_cmpl_status(descq); + if (descq->pend_req_desc) { + unlock_descq(descq); + qdma_descq_proc_sgt_request(descq); + return; + } + unlock_descq(descq); + } +} + +ssize_t qdma_descq_proc_sgt_request(struct qdma_descq *descq) +{ + if (!descq->conf.st) /* MM H2C/C2H */ + return descq_mm_proc_request(descq); + else if (descq->conf.st && !descq->conf.c2h) /* ST H2C */ + return descq_proc_st_h2c_request(descq); + else /* ST C2H - should not happen - handled separately */ + return -1; +} + +void incr_cmpl_desc_cnt(struct qdma_descq *descq, unsigned int cnt) +{ + descq->total_cmpl_descs += cnt; + switch ((descq->conf.st << 1) | descq->conf.c2h) { + case 0: + descq->xdev->total_mm_h2c_pkts += cnt; + break; + case 1: + descq->xdev->total_mm_c2h_pkts += cnt; + break; + case 2: + descq->xdev->total_st_h2c_pkts += cnt; + break; + case 3: + descq->xdev->total_st_c2h_pkts += cnt; + break; + default: + break; + } +} + +void qdma_sgt_req_done(struct qdma_descq *descq, struct qdma_sgt_req_cb *cb, + int error) +{ + struct qdma_request *req = (struct qdma_request *)cb; + + if (error) + pr_info("req 0x%p, cb 0x%p, fp_done 0x%p done, err %d.\n", + req, cb, req->fp_done, error); + + list_del(&cb->list); + if (cb->unmap_needed) { + sgl_unmap(descq->xdev->conf.pdev, req->sgl, req->sgcnt, + descq->conf.c2h ? DMA_FROM_DEVICE : DMA_TO_DEVICE); + cb->unmap_needed = 0; + } + cb->req_state = QDMA_REQ_COMPLETE; + if (req->fp_done) { + if ((cb->offset != req->count) && + !(descq->conf.st && descq->conf.c2h)) { + pr_info("req 0x%p not completed %u != %u.\n", + req, cb->offset, req->count); + error = -EINVAL; + } + cb->status = error; + cb->done = 1; + req->fp_done(req, cb->offset, error); + } else { + pr_debug("req 0x%p, cb 0x%p, wake up.\n", req, cb); + cb->status = error; + cb->done = 1; + qdma_waitq_wakeup(&cb->wq); + } + + if (descq->conf.st && descq->conf.c2h) + descq->pend_list_empty = (descq->avail == 0); + else + descq->pend_list_empty = (descq->avail == + (descq->conf.rngsz - 1)); + + if (descq->q_stop_wait && descq->pend_list_empty) + qdma_waitq_wakeup(&descq->pend_list_wq); +} + +int qdma_descq_dump_desc(struct qdma_descq *descq, int start, + int end, char *buf, int buflen) +{ + struct qdma_flq *flq = (struct qdma_flq *)descq->flq; + int desc_sz = get_desc_size(descq); + u8 *p = descq->desc + start * desc_sz; + struct qdma_sw_sg *fl = (descq->conf.st && descq->conf.c2h) ? + flq->sdesc + start : NULL; + int i = start; + int len = strlen(buf); + + if (!descq->desc) + return 0; + + for (; i < end && i < descq->conf.rngsz; i++, p += desc_sz) { + len += sprintf(buf + len, "%d: 0x%p ", i, p); + hex_dump_to_buffer(p, desc_sz, + (desc_sz < DESC_SZ_16B_BYTES) ? 16 : 32, + 4, buf + len, buflen - len, 0); + len = strlen(buf); + if (desc_sz > DESC_SZ_32B_BYTES) { + len += sprintf(buf + len, " "); + hex_dump_to_buffer(p + DESC_SZ_32B_BYTES, desc_sz, + 32, 4, buf + len, buflen - len, 0); + len = strlen(buf); + } + if (fl) { + len += sprintf(buf + len, " fl pg 0x%p, 0x%llx.\n", + fl->pg, fl->dma_addr); + fl++; + } else + buf[len++] = '\n'; + } + + p = descq->desc_cmpl_status; + + dma_rmb(); + + len += sprintf(buf + len, "CMPL STATUS: 0x%p ", p); + hex_dump_to_buffer(p, get_desc_cmpl_status_size(descq), 16, 4, + buf + len, buflen - len, 0); + len = strlen(buf); + buf[len++] = '\n'; + + if (descq->conf.st && descq->conf.c2h) { + p = page_address(fl->pg); + len += sprintf(buf + len, "data 0: 0x%p ", p); + hex_dump_to_buffer(p, descq->cmpt_entry_len, + (descq->cmpt_entry_len < DESC_SZ_16B_BYTES) ? 16 : 32, + 4, buf + len, + buflen - len, 0); + len = strlen(buf); + if (descq->cmpt_entry_len > DESC_SZ_32B_BYTES) { + len += sprintf(buf + len, " "); + hex_dump_to_buffer(p + DESC_SZ_32B_BYTES, + descq->cmpt_entry_len, 32, 4, + buf + len, buflen - len, 0); + len = strlen(buf); + } + buf[len++] = '\n'; + } + + return len; +} + +int qdma_descq_dump_cmpt(struct qdma_descq *descq, int start, + int end, char *buf, int buflen) +{ + uint8_t *cmpt = descq->desc_cmpt; + u8 *p; + int i = start; + int len = strlen(buf); + int stride = descq->cmpt_entry_len; + + if (!descq->desc_cmpt) + return 0; + + for (cmpt += (start * stride); + i < end && i < descq->conf.rngsz_cmpt; i++, + cmpt += stride) { + mdelay(100); + len += sprintf(buf + len, "%d: 0x%p ", i, cmpt); + hex_dump_to_buffer(cmpt, descq->cmpt_entry_len, + 32, 4, buf + len, buflen - len, 0); + mdelay(100); + len = strlen(buf); + if (descq->cmpt_entry_len > DESC_SZ_32B_BYTES) { + mdelay(100); + len += sprintf(buf + len, " "); + hex_dump_to_buffer(cmpt + DESC_SZ_32B_BYTES, + descq->cmpt_entry_len, + 32, 4, buf + len, buflen - len, 0); + mdelay(100); + len = strlen(buf); + } + mdelay(100); + buf[len++] = '\n'; + } + + len += sprintf(buf + len, + "CMPL STATUS: 0x%p ", + descq->desc_cmpt_cmpl_status); + + p = descq->desc_cmpt_cmpl_status; + dma_rmb(); + hex_dump_to_buffer(p, sizeof(struct qdma_c2h_cmpt_cmpl_status), + 16, 4, buf + len, buflen - len, 0); + len = strlen(buf); + buf[len++] = '\n'; + + return len; +} + +int qdma_descq_dump_state(struct qdma_descq *descq, char *buf, int buflen) +{ + char *cur = buf; + char *const end = buf + buflen; + + if (!buf || !buflen) { + pr_warn("incorrect arguments buf=%p buflen=%d", buf, buflen); + return 0; + } + + cur += snprintf(cur, end - cur, "%s %s ", + descq->conf.name, descq->conf.c2h ? "C2H" : "H2C"); + if (cur >= end) + goto handle_truncation; + + if (descq->err) + cur += snprintf(cur, end - cur, "ERR\n"); + else if (descq->q_state == Q_STATE_ONLINE) + cur += snprintf(cur, end - cur, "online\n"); + else if (descq->q_state == Q_STATE_ENABLED) + cur += snprintf(cur, end - cur, "cfg'ed\n"); + else + cur += snprintf(cur, end - cur, "un-initialized\n"); + if (cur >= end) + goto handle_truncation; + + return cur - buf; + +handle_truncation: + *buf = '\0'; + return cur - buf; +} + +int qdma_descq_dump(struct qdma_descq *descq, char *buf, int buflen, int detail) +{ + char *cur = buf; + char *const end = buf + buflen; + + if (!buf || !buflen) { + pr_info("%s:%s 0x%x/0x%x, desc sz %u/%u, pidx %u, cidx %u\n", + descq->conf.name, descq->err ? "ERR" : "", + descq->conf.qidx, descq->qidx_hw, descq->conf.rngsz, + descq->avail, descq->pidx, descq->cidx); + return 0; + } + + cur += qdma_descq_dump_state(descq, cur, end - cur); + if (cur >= end) + goto handle_truncation; + + if (descq->q_state == Q_STATE_DISABLED) + return cur - buf; + + cur += snprintf(cur, end - cur, + "\thw_ID %d, thp %s, desc 0x%p/0x%llx, %u\n", + descq->qidx_hw, + descq->cmplthp ? descq->cmplthp->name : "?", + descq->desc, descq->desc_bus, descq->conf.rngsz); + if (cur >= end) + goto handle_truncation; + + if (descq->conf.st && descq->conf.c2h) { + cur += snprintf(cur, end - cur, + "\tcmpt desc 0x%p/0x%llx, %u\n", + descq->desc_cmpt, descq->desc_cmpt_bus, + descq->conf.rngsz_cmpt); + if (cur >= end) + goto handle_truncation; + } + + if (!detail) + return cur - buf; + + if (descq->desc_cmpl_status) { + u8 *cs = descq->desc_cmpl_status; + + cur += snprintf(cur, end - cur, "\n\tcmpl status: 0x%p, ", cs); + if (cur >= end) + goto handle_truncation; + + dma_rmb(); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0) + cur += hex_dump_to_buffer(cs, + sizeof(struct qdma_desc_cmpl_status), + 16, 4, cur, end - cur, 0); +#else + hex_dump_to_buffer(cs, sizeof(struct qdma_desc_cmpl_status), + 16, 4, cur, end - cur, 0); + cur += strlen(cur); +#endif + if (cur >= end) + goto handle_truncation; + + cur += snprintf(cur, end - cur, "\n"); + if (cur >= end) + goto handle_truncation; + } + if (descq->desc_cmpt_cmpl_status) { + u8 *cs = descq->desc_cmpt_cmpl_status; + + cur += snprintf(cur, end - cur, "\tCMPT CMPL STATUS: 0x%p, ", + cs); + if (cur >= end) + goto handle_truncation; + + dma_rmb(); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 0, 0) + cur += hex_dump_to_buffer(cs, + sizeof(struct qdma_c2h_cmpt_cmpl_status), + 16, 4, cur, end - cur, 0); +#else + hex_dump_to_buffer(cs, sizeof(struct qdma_c2h_cmpt_cmpl_status), + 16, 4, cur, end - cur, 0); + cur += strlen(cur); +#endif + if (cur >= end) + goto handle_truncation; + + cur += snprintf(cur, end - cur, "\n"); + if (cur >= end) + goto handle_truncation; + } + + return cur - buf; + +handle_truncation: + *buf = '\0'; + return cur - buf; +} + +int qdma_queue_avail_desc(unsigned long dev_hndl, unsigned long id) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, NULL, 0, 1); + int avail; + + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + lock_descq(descq); + avail = descq->avail; + unlock_descq(descq); + + return avail; +} + +#ifdef ERR_DEBUG +int qdma_queue_set_err_induction(unsigned long dev_hndl, unsigned long id, + u32 err, char *buf, int buflen) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, buf, buflen, 1); + const char *dummy; /* to avoid compiler warnings */ + unsigned int err_en = (err >> 31); + unsigned int err_no = (err & 0x7FFFFFFF); + + dummy = xnl_attr_str[0]; + dummy = xnl_op_str[0]; + if (!descq) + return QDMA_ERR_INVALID_QIDX; + if (err_no < sb_mi_h2c0_dat) { + descq->induce_err &= ~(1 << err_no); + descq->induce_err |= (err_en << err_no); + } else { + descq->ecc_err &= ~(1 << (err_no - sb_mi_h2c0_dat)); + descq->ecc_err |= (err_en << (err_no - sb_mi_h2c0_dat)); + } + pr_info("Errs enabled = [QDMA]: 0x%08x 0x%08x\n [ECC]: 0x%08x 0x%08x", + (u32)(descq->induce_err >> 32), + (u32)(descq->induce_err & 0xFFFFFFFF), + (u32)(descq->ecc_err >> 32), + (u32)(descq->ecc_err & 0xFFFFFFFF)); + + return 0; +} +#endif + +int qdma_queue_packet_write(unsigned long dev_hndl, unsigned long id, + struct qdma_request *req) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, NULL, 0, 1); + struct qdma_sgt_req_cb *cb = qdma_req_cb_get(req); + int rv; + + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + if (!descq->conf.st || descq->conf.c2h) { + pr_info("%s: st %d, c2h %d.\n", + descq->conf.name, descq->conf.st, descq->conf.c2h); + return -EINVAL; + } + + memset(cb, 0, QDMA_REQ_OPAQUE_SIZE); + qdma_waitq_init(&cb->wq); + + if (!req->dma_mapped) { + rv = sgl_map(descq->xdev->conf.pdev, req->sgl, req->sgcnt, + DMA_TO_DEVICE); + if (rv < 0) { + pr_info("%s map sgl %u failed, %u.\n", + descq->conf.name, req->sgcnt, req->count); + goto unmap_sgl; + } + cb->unmap_needed = 1; + } + + lock_descq(descq); + if (descq->q_state != Q_STATE_ONLINE) { + unlock_descq(descq); + pr_info("%s descq %s NOT online.\n", + descq->xdev->conf.name, descq->conf.name); + rv = -EINVAL; + goto unmap_sgl; + } + + list_add_tail(&cb->list, &descq->work_list); + unlock_descq(descq); + + pr_debug("%s: cb 0x%p submitted.\n", descq->conf.name, cb); + + return req->count; + +unmap_sgl: + if (cb->unmap_needed) + sgl_unmap(descq->xdev->conf.pdev, req->sgl, req->sgcnt, + DMA_TO_DEVICE); + return rv; +} + +int qdma_descq_get_cmpt_udd(unsigned long dev_hndl, unsigned long id, + char *buf, int buflen) +{ + uint8_t *cmpt; + uint8_t i = 0; + int len = 0; + int print_len = 0; + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, buf, buflen, 1); + struct qdma_c2h_cmpt_cmpl_status *cs; + + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + if (!buf || !buflen) + return QDMA_ERR_INVALID_INPUT_PARAM; + + cs = (struct qdma_c2h_cmpt_cmpl_status *) + descq->desc_cmpt_cmpl_status; + + cmpt = descq->desc_cmpt + ((cs->pidx - 1) * descq->cmpt_entry_len); + + /* + * Ignoring the first 4 bits of the completion entry as they represent + * the error and color bits. + * TODO: May need to change the masking logic and move that in thegtest, + * as error and color bit positions may change in the future releases. + */ + for (i = 0; i < descq->cmpt_entry_len; i++) { + if (buf && buflen) { + if (i == 0) + print_len = sprintf(buf + len, "%02x", + (cmpt[i] & 0xF0)); + else + print_len = sprintf(buf + len, "%02x", + cmpt[i]); + + } + buflen -= print_len; + len += print_len; + } + buf[len] = '\0'; + + return 0; +} diff --git a/QDMA/linux-kernel/libqdma/qdma_descq.h b/QDMA/linux-kernel/libqdma/qdma_descq.h new file mode 100644 index 0000000..47919ab --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_descq.h @@ -0,0 +1,554 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __QDMA_DESCQ_H__ +#define __QDMA_DESCQ_H__ +/** + * @file + * @brief This file contains the declarations for qdma descq processing + * + */ +#include <linux/spinlock_types.h> +#include <linux/types.h> +#include "qdma_compat.h" +#include "libqdma_export.h" +#include "qdma_regs.h" +#ifdef ERR_DEBUG +#include "qdma_nl.h" +#endif + +enum q_state_t { + Q_STATE_DISABLED = 0, /** Queue is not taken */ + Q_STATE_ENABLED, /** Assigned/taken. Partial config is done */ + Q_STATE_ONLINE, /** Resource/context is initialized for the + * queue and is available for data consumption + */ +}; + +enum qdma_req_state { + QDMA_REQ_NOT_SUBMITTED, + QDMA_REQ_SUBMIT_PARTIAL, + QDMA_REQ_SUBMITTED, + QDMA_REQ_COMPLETE +}; + +#define QDMA_FLQ_SIZE 80 + +/** + * @struct - qdma_descq + * @brief qdma software descriptor book keeping fields + */ +struct qdma_descq { + /** qdma queue configuration */ + struct qdma_queue_conf conf; + /** lock to protect access to software descriptor */ + spinlock_t lock; + /** pointer to dma device */ + struct xlnx_dma_dev *xdev; + /** number of channels */ + u8 channel; + /** flag to indicate error on the Q, in halted state */ + u8 err:1; + /** color bit for the queue */ + u8 color:1; + /** cpu attached */ + u8 cpu_assigned:1; + /** state of the proc req */ + u8 proc_req_running; + /** Indicate q state */ + enum q_state_t q_state; + /** hw qidx associated for this queue */ + unsigned int qidx_hw; + /** cpu attached to intr_work */ + unsigned int intr_work_cpu; + /** queue handler */ + struct work_struct work; + /** interrupt list */ + struct list_head intr_list; + /** leagcy interrupt list */ + struct list_head legacy_intr_q_list; + /** interrupt id associated for this queue */ + int intr_id; + /** work list for the queue */ + struct list_head work_list; + /** write back therad list */ + struct qdma_kthread *cmplthp; + /** completion status thread list for the queue */ + struct list_head cmplthp_list; + /** pending qork thread list */ + struct list_head pend_list; + /** wait queue for pending list clear */ + qdma_wait_queue pend_list_wq; + /** pending list empty count */ + unsigned int pend_list_empty; + /* flag to indicate wwaiting for transfers to complete before q stop*/ + unsigned int q_stop_wait; + /** availed count */ + unsigned int avail; + /** IO batching cunt */ + unsigned int io_batch_cnt; + /** current req count */ + unsigned int pend_req_desc; + /** current producer index */ + unsigned int pidx; + /** current consumer index */ + unsigned int cidx; + /** number of descrtors yet to be processed*/ + unsigned int credit; + /** desctor to be processed*/ + u8 *desc; + /** desctor dma address*/ + dma_addr_t desc_bus; + /** desctor writeback*/ + u8 *desc_cmpl_status; + + /* ST C2H */ + /** programming order of the data in ST c2h mode*/ + unsigned char fl_pg_order; + /** cmpt entry length*/ + unsigned char cmpt_entry_len; + /** 2 bits reserved*/ + unsigned char rsvd[2]; + /** qdma free list q*/ + unsigned char flq[QDMA_FLQ_SIZE]; + /**total # of udd outstanding */ + unsigned int udd_cnt; + /** packet count/number of packets to be processed*/ + unsigned int pkt_cnt; + /** packet data length */ + unsigned int pkt_dlen; + /** pidx of the completion entry */ + unsigned int pidx_cmpt; + /** completion cidx */ + unsigned int cidx_cmpt; + /** pending writeback cidx */ + unsigned int cidx_cmpt_pend; + /** number of packets processed in q */ + unsigned long long total_cmpl_descs; + /** descriptor writeback, data type depends on the cmpt_entry_len */ + void *desc_cmpt_cur; + /** pointer to completion entry */ + u8 *desc_cmpt; + /** descriptor dma bus address*/ + dma_addr_t desc_cmpt_bus; + /** descriptor writeback dma bus address*/ + u8 *desc_cmpt_cmpl_status; + +#ifdef ERR_DEBUG + /** flag to indicate error inducing */ + u64 induce_err; + u64 ecc_err; +#endif +#ifdef DEBUGFS + /** debugfs queue index root */ + struct dentry *dbgfs_qidx_root; + /** debugfs queue root */ + struct dentry *dbgfs_queue_root; + /** debugfs cmpt queue root */ + struct dentry *dbgfs_cmpt_queue_root; +#endif +}; +#ifdef DEBUG_THREADS +#define lock_descq(descq) \ + do { \ + pr_debug("locking descq %s ...\n", (descq)->conf.name); \ + spin_lock_bh(&(descq)->lock); \ + } while (0) + +#define unlock_descq(descq) \ + do { \ + pr_debug("unlock descq %s ...\n", (descq)->conf.name); \ + spin_unlock_bh(&(descq)->lock); \ + } while (0) +#else +/** macro to lock descq */ +#define lock_descq(descq) spin_lock_bh(&(descq)->lock) +/** macro to un lock descq */ +#define unlock_descq(descq) spin_unlock_bh(&(descq)->lock) +#endif + +static inline unsigned int ring_idx_delta(unsigned int new, unsigned int old, + unsigned int rngsz) +{ + return new >= old ? (new - old) : new + (rngsz - old); +} + +static inline unsigned int ring_idx_incr(unsigned int idx, unsigned int cnt, + unsigned int rngsz) +{ + idx += cnt; + return idx >= rngsz ? idx - rngsz : idx; +} + +static inline unsigned int ring_idx_decr(unsigned int idx, unsigned int cnt, + unsigned int rngsz) +{ + return idx >= cnt ? idx - cnt : rngsz - (cnt - idx); +} + +/*****************************************************************************/ +/** + * qdma_descq_init() - initialize the sw descq entry + * + * @param[in] descq: pointer to qdma_descq + * @param[in] xdev: pointer to xdev + * @param[in] idx_hw: hw queue index + * @param[in] idx_sw: sw queue index + * + * @return none + *****************************************************************************/ +void qdma_descq_init(struct qdma_descq *descq, struct xlnx_dma_dev *xdev, + int idx_hw, int idx_sw); + +/*****************************************************************************/ +/** + * qdma_descq_config() - configure the sw descq entry + * + * @param[in] descq: pointer to qdma_descq + * @param[in] qconf: queue configuration + * @param[in] reconfig: flag to indicate whether to refig the sw descq + * + * @return none + *****************************************************************************/ +void qdma_descq_config(struct qdma_descq *descq, struct qdma_queue_conf *qconf, + int reconfig); + +/*****************************************************************************/ +/** + * qdma_descq_config_complete() - initialize the descq with default values + * + * @param[in] descq: pointer to qdma_descq + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_config_complete(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * qdma_descq_cleanup() - clean up the resources assigned to a request + * + * @param[in] descq: pointer to qdma_descq + * + * @return none + *****************************************************************************/ +void qdma_descq_cleanup(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * qdma_descq_alloc_resource() - allocate the resources for a request + * + * @param[in] descq: pointer to qdma_descq + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_alloc_resource(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * qdma_descq_free_resource() - free up the resources assigned to a request + * + * @param[in] descq: pointer to qdma_descq + * + * @return none + *****************************************************************************/ +void qdma_descq_free_resource(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * qdma_descq_prog_hw() - program the hw descriptors + * + * @param[in] descq: pointer to qdma_descq + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_prog_hw(struct qdma_descq *descq); + +#ifndef __QDMA_VF__ +/*****************************************************************************/ +/** + * qdma_descq_prog_stm() - program the STM + * + * @param[in] descq: pointer to qdma_descq + * @param[in] clear: flag to program/clear stm context + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_prog_stm(struct qdma_descq *descq, bool clear); +#endif + +/*****************************************************************************/ +/** + * qdma_descq_context_cleanup() - clean up the queue context + * + * @param[in] descq: pointer to qdma_descq + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_context_cleanup(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * qdma_descq_service_cmpl_update() - process completion data for the request + * + * @param[in] descq: pointer to qdma_descq + * @param[in] budget: number of descriptors to process + * @param[in] c2h_upd_cmpl: C2H only: if update completion needed + * + * @return none + *****************************************************************************/ +void qdma_descq_service_cmpl_update(struct qdma_descq *descq, int budget, + bool c2h_upd_cmpl); + +/*****************************************************************************/ +/** + * qdma_descq_dump() - dump the queue sw desciptor data + * + * @param[in] descq: pointer to qdma_descq + * @param[in] detail: indicate whether full details or abstact details + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_dump(struct qdma_descq *descq, + char *buf, int buflen, int detail); + +/*****************************************************************************/ +/** + * qdma_descq_dump_desc() - dump the queue hw descriptors + * + * @param[in] descq: pointer to qdma_descq + * @param[in] start: start descriptor index + * @param[in] end: end descriptor index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_dump_desc(struct qdma_descq *descq, int start, int end, + char *buf, int buflen); + +/*****************************************************************************/ +/** + * qdma_descq_dump_state() - dump the queue desciptor state + * + * @param[in] descq: pointer to qdma_descq + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_dump_state(struct qdma_descq *descq, char *buf, int buflen); + +/*****************************************************************************/ +/** + * intr_cidx_update() - update the interrupt cidx + * + * @param[in] descq: pointer to qdma_descq + * @param[in] sw_cidx: sw cidx + * @param[in] ring_index: ring index + * + *****************************************************************************/ +void intr_cidx_update(struct qdma_descq *descq, unsigned int sw_cidx, + int ring_index); + +/*****************************************************************************/ +/** + * incr_cmpl_desc_cnt() - update the interrupt cidx + * + * @param[in] descq: pointer to qdma_descq + * + *****************************************************************************/ +void incr_cmpl_desc_cnt(struct qdma_descq *descq, unsigned int cnt); + +/** + * @struct - qdma_sgt_req_cb + * @brief qdma_sgt_req_cb fits in qdma_request.opaque + */ +struct qdma_sgt_req_cb { + /** qdma read/write request list*/ + struct list_head list; + /** request wait queue */ + qdma_wait_queue wq; + /** number of descriptors to proccess*/ + unsigned int desc_nr; + /** offset in the page*/ + unsigned int offset; + /** number of data byte not yet proccessed*/ + unsigned int left; + /** offset in the scatter gather list*/ + unsigned int sg_offset; + /** scatter gather ebtry index*/ + unsigned int sg_idx; + /** status of the request*/ + int status; + /** indicates whether request processing is done or not*/ + u8 done; + /** indicates whether to unmap the kernel pages*/ + u8 unmap_needed:1; + /* flag to indicate partial req submit */ + enum qdma_req_state req_state; +}; + +/** macro to get the request call back data */ +#define qdma_req_cb_get(req) (struct qdma_sgt_req_cb *)((req)->opaque) + +/*****************************************************************************/ +/** + * qdma_descq_proc_sgt_request() - handler to process the qdma + * read/write request + * + * @param[in] descq: pointer to qdma_descq + * @param[in] cb: scatter gather list call back data + * + * @return size of the request + *****************************************************************************/ +ssize_t qdma_descq_proc_sgt_request(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * qdma_sgt_req_done() - handler to track the progress of the request + * + * @param[in] descq: pointer to qdma_descq + * @param[in] cb: scatter gather list call back data + * @param[out] error: indicates the error status + * + * @return none + *****************************************************************************/ +void qdma_sgt_req_done(struct qdma_descq *descq, struct qdma_sgt_req_cb *cb, + int error); + +/*****************************************************************************/ +/** + * sgl_map() - handler to map the scatter gather list to kernel pages + * + * @param[in] pdev: pointer to struct pci_dev + * @param[in] sg: scatter gather list + * @param[in] sgcnt: number of entries in scatter gather list + * @param[in] dir: direction of the request + * + * @return none + *****************************************************************************/ +int sgl_map(struct pci_dev *pdev, struct qdma_sw_sg *sg, unsigned int sgcnt, + enum dma_data_direction dir); + +/*****************************************************************************/ +/** + * sgl_unmap() - handler to unmap the scatter gather list and free + * the kernel pages + * + * @param[in] pdev: pointer to struct pci_dev + * @param[in] sg: scatter gather list + * @param[in] sgcnt: number of entries in scatter gather list + * @param[in] dir: direction of the request + * + * @return none + *****************************************************************************/ +void sgl_unmap(struct pci_dev *pdev, struct qdma_sw_sg *sg, unsigned int sgcnt, + enum dma_data_direction dir); + +/*****************************************************************************/ +/** + * descq_flq_free_resource() - handler to free the pages for the request + * + * @param[in] descq: pointer to qdma_descq + * + * @return none + *****************************************************************************/ +void descq_flq_free_resource(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * descq_h2c_pidx_update() - inline function to update the h2c pidx + * + * @param[in] descq: pointer to qdma_descq + * @param[in] pidx: c2h producer index + * + * @return none + *****************************************************************************/ +static inline void descq_h2c_pidx_update(struct qdma_descq *descq, + unsigned int pidx) +{ +#ifdef ERR_DEBUG + const char *dummy; /* to avoid compiler warnings */ + + dummy = xnl_attr_str[0]; + dummy = xnl_op_str[0]; + if (descq->induce_err & (1 << qid_range)) { + __write_reg(descq->xdev, + QDMA_REG_H2C_PIDX_BASE + + descq->xdev->conf.qsets_max * QDMA_REG_PIDX_STEP, + pidx | (descq->conf.irq_en << + S_CMPL_STATUS_PIDX_UPD_EN_INT)); + pr_info("Inducing err %d", qid_range); + } else +#endif + { + pr_debug("%s: pidx %u -> 0x%x, reg 0x%x.\n", descq->conf.name, pidx, + pidx | (descq->conf.irq_en << S_CMPL_STATUS_PIDX_UPD_EN_INT), + QDMA_REG_H2C_PIDX_BASE + descq->conf.qidx * QDMA_REG_PIDX_STEP); + + __write_reg(descq->xdev, + QDMA_REG_H2C_PIDX_BASE + descq->conf.qidx * QDMA_REG_PIDX_STEP, + pidx | (descq->conf.irq_en << S_CMPL_STATUS_PIDX_UPD_EN_INT)); + } +} + +/*****************************************************************************/ +/** + * descq_c2h_pidx_update() - inline function to update the c2h pidx + * + * @param[in] descq: pointer to qdma_descq + * @param[in] pidx: c2h producer index + * + * @return none + *****************************************************************************/ +static inline void descq_c2h_pidx_update(struct qdma_descq *descq, + unsigned int pidx) +{ +#ifdef ERR_DEBUG + if (descq->induce_err & (1 << qid_range)) { + __write_reg(descq->xdev, + QDMA_REG_C2H_PIDX_BASE + + descq->xdev->conf.qsets_max * QDMA_REG_PIDX_STEP, + pidx | (descq->conf.irq_en << + S_CMPL_STATUS_PIDX_UPD_EN_INT)); + pr_info("Inducing err %d", qid_range); + } else +#endif + { + pr_debug("%s: pidx 0x%x -> 0x%x, reg 0x%x.\n", descq->conf.name, pidx, + pidx | (descq->conf.irq_en << S_CMPL_STATUS_PIDX_UPD_EN_INT), + QDMA_REG_C2H_PIDX_BASE + descq->conf.qidx * QDMA_REG_PIDX_STEP); + + __write_reg(descq->xdev, + QDMA_REG_C2H_PIDX_BASE + descq->conf.qidx * QDMA_REG_PIDX_STEP, + pidx | (descq->conf.irq_en << S_CMPL_STATUS_PIDX_UPD_EN_INT)); + } +} + +#endif /* ifndef __QDMA_DESCQ_H__ */ diff --git a/QDMA/linux-kernel/libqdma/qdma_device.c b/QDMA/linux-kernel/libqdma/qdma_device.c new file mode 100644 index 0000000..64ea007 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_device.c @@ -0,0 +1,584 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include <linux/module.h> +#include <linux/gfp.h> +#include "qdma_device.h" +#include "qdma_context.h" +#include "qdma_descq.h" +#include "qdma_intr.h" +#include "qdma_regs.h" +#include "qdma_mbox.h" + +#ifdef __QDMA_VF__ +static int device_set_qrange(struct xlnx_dma_dev *xdev) +{ + struct qdma_dev *qdev = xdev_2_qdev(xdev); + struct mbox_msg *m; + struct mbox_msg_hdr *hdr; + struct mbox_msg_fmap *fmap; + int rv = 0; + + if (!qdev) { + pr_err("dev %s, qdev null.\n", + dev_name(&xdev->conf.pdev->dev)); + return QDMA_ERR_INVALID_QDMA_DEVICE; + } + + if (xdev->conf.cur_cfg_state == QMAX_CFG_INITIAL) { + qdev->qmax = 1; + qdev->qbase = 0; + } + + m = qdma_mbox_msg_alloc(xdev, MBOX_OP_FMAP); + if (!m) + return -ENOMEM; + + hdr = &m->hdr; + fmap = &m->fmap; + + fmap->qbase = qdev->qbase; + fmap->qmax = qdev->qmax; + + rv = qdma_mbox_msg_send(xdev, m, 1, MBOX_OP_FMAP_RESP, + QDMA_MBOX_MSG_TIMEOUT_MS); + if (rv < 0) { + if (rv != -ENODEV) + pr_info("%s set q range (fmap) failed %d.\n", + xdev->conf.name, rv); + goto err_out; + } + + if (hdr->status) { + rv = hdr->status; + if (xdev->conf.cur_cfg_state == QMAX_CFG_INITIAL) { + qdev->qbase = xdev->conf.qsets_base = fmap->qbase; + qdev->qmax = xdev->conf.qsets_max = 0; + } + pr_err("Failed to set qconf %d max/base = %u/%u\n", rv, + qdev->qmax, qdev->qbase); + goto err_out; + } + + qdev->qbase = xdev->conf.qsets_base = fmap->qbase; + + if (xdev->conf.cur_cfg_state == QMAX_CFG_INITIAL) { + qdev->h2c_descq->qidx_hw = fmap->qbase; + qdev->c2h_descq->qidx_hw = fmap->qbase; + xdev->conf.cur_cfg_state = QMAX_CFG_USER; + } + + pr_debug("%s, func id %u/%u, Q 0x%x + 0x%x.\n", + xdev->conf.name, xdev->func_id, xdev->func_id_parent, + qdev->qbase, qdev->qmax); + + qdev->init_qrange = 1; + +err_out: + qdma_mbox_msg_free(m); + return rv; +} + +int device_set_qconf(struct xlnx_dma_dev *xdev, int qmax, u32 *qbase) +{ + struct mbox_msg *m; + struct mbox_msg_hdr *hdr; + struct mbox_msg_fmap *fmap; + int rv = 0; + + m = qdma_mbox_msg_alloc(xdev, MBOX_OP_QCONF); + if (!m) + return -ENOMEM; + + hdr = &m->hdr; + fmap = &m->fmap; + + fmap->qbase = 0; + fmap->qmax = qmax; + + rv = qdma_mbox_msg_send(xdev, m, 1, MBOX_OP_QCONF_RESP, + QDMA_MBOX_MSG_TIMEOUT_MS); + if (rv < 0) { + pr_info("%s set q range (qconf) failed %d.\n", + xdev->conf.name, rv); + goto err_out; + } + + if (hdr->status) { + rv = hdr->status; + pr_err("Failed to set qconf\n"); + goto err_out; + } + + *qbase = fmap->qbase; + + qdma_device_set_cfg_state((unsigned long)xdev, QMAX_CFG_USER); + pr_debug("%s, func id %u/%u, Q 0x%x + 0x%x.\n", + xdev->conf.name, xdev->func_id, xdev->func_id_parent, + *qbase, qmax); + +err_out: + qdma_mbox_msg_free(m); + return rv; +} +#else +static int device_set_qrange(struct xlnx_dma_dev *xdev) +{ + struct qdma_dev *qdev = xdev_2_qdev(xdev); + int rv = 0; + + if (!qdev) { + pr_err("dev %s, qdev null.\n", + dev_name(&xdev->conf.pdev->dev)); + return QDMA_ERR_INVALID_QDMA_DEVICE; + } + + hw_set_fmap(xdev, xdev->func_id, qdev->qbase, qdev->qmax); + + qdev->init_qrange = 1; + + pr_debug("%s, func id %u, Q 0x%x + 0x%x.\n", + xdev->conf.name, xdev->func_id, qdev->qbase, qdev->qmax); + + return rv; +} +#endif /* ifndef __QDMA_VF__ */ + +#ifndef __QDMA_VF__ +#ifdef ERR_DEBUG +static void qdma_err_mon(struct work_struct *work) +{ + struct delayed_work *dwork = container_of(work, + struct delayed_work, work); + struct xlnx_dma_dev *xdev = container_of(dwork, + struct xlnx_dma_dev, err_mon); + + if (!xdev) { + pr_err("Invalid xdev"); + return; + } + spin_lock(&xdev->err_lock); + + if (xdev->err_mon_cancel == 0) { + err_stat_handler(xdev); + schedule_delayed_work(dwork, msecs_to_jiffies(50)); /* 50msec */ + } + spin_unlock(&xdev->err_lock); +} +#endif +#endif + +int qdma_device_prep_q_resource(struct xlnx_dma_dev *xdev) +{ + struct qdma_dev *qdev = xdev_2_qdev(xdev); + int rv = 0; + + spin_lock(&qdev->lock); + + if (qdev->init_qrange) + goto done; + + rv = device_set_qrange(xdev); + if (rv < 0) + goto done; + + rv = intr_ring_setup(xdev); + if (rv) + goto done; + + if ((xdev->conf.qdma_drv_mode == INDIRECT_INTR_MODE) || + (xdev->conf.qdma_drv_mode == AUTO_MODE)) { + if (xdev->intr_coal_list != NULL) { + rv = qdma_intr_context_setup(xdev); + if (rv) + goto done; + } else { + pr_info("dev %s intr vec[%d] >= queues[%d], No aggregation\n", + dev_name(&xdev->conf.pdev->dev), + (xdev->num_vecs - xdev->dvec_start_idx), + xdev->conf.qsets_max); + pr_warn("Changing the system mode to direct interrupt mode"); + xdev->conf.qdma_drv_mode = DIRECT_INTR_MODE; + } + } + + +#ifndef __QDMA_VF__ + if (((xdev->conf.qdma_drv_mode != POLL_MODE) && + (xdev->conf.qdma_drv_mode != LEGACY_INTR_MODE)) && + xdev->conf.master_pf) + qdma_err_intr_setup(xdev, 0); + +#ifdef ERR_DEBUG + else { + if ((xdev->conf.master_pf) && + (xdev->conf.qdma_drv_mode == POLL_MODE)) { + spin_lock_init(&xdev->err_lock); + xdev->err_mon_cancel = 0; + INIT_DELAYED_WORK(&xdev->err_mon, qdma_err_mon); + schedule_delayed_work(&xdev->err_mon, + msecs_to_jiffies(50)); + } + } +#endif +#endif + +done: + spin_unlock(&qdev->lock); + + return rv; +} + +int qdma_device_init(struct xlnx_dma_dev *xdev) +{ + int i; + int rv = 0; + int qmax = xdev->conf.qsets_max; + struct qdma_descq *descq; + struct qdma_dev *qdev; + +#ifdef __QDMA_VF__ + xdev->func_id = xdev->func_id_parent = 0; /* filled later */ +#else + if (xdev->conf.master_pf) { + pr_info("%s master PF clearing memory.\n", xdev->conf.name); + rv = hw_init_global_context_memory(xdev); + if (rv) + return rv; + } +#endif + + if (xdev->conf.qdma_drv_mode != POLL_MODE && + xdev->conf.qdma_drv_mode != LEGACY_INTR_MODE) { + rv = intr_setup(xdev); + if (rv) + return -EINVAL; + } + qdev = kzalloc(sizeof(struct qdma_dev) + + sizeof(struct qdma_descq) * qmax * 2, GFP_KERNEL); + if (!qdev) { + pr_err("dev %s qmax %d OOM.\n", + dev_name(&xdev->conf.pdev->dev), qmax); + intr_teardown(xdev); + return -ENOMEM; + } + + spin_lock_init(&qdev->lock); + + descq = (struct qdma_descq *)(qdev + 1); + qdev->h2c_descq = descq; + qdev->c2h_descq = descq + qmax; + + xdev->dev_priv = (void *)qdev; + qdev->qmax = qmax; + qdev->init_qrange = 0; + +#ifdef __QDMA_VF__ + if (xdev->conf.cur_cfg_state == QMAX_CFG_UNCONFIGURED) { + qdev->qbase = TOTAL_QDMA_QS - TOTAL_VF_QS + + (xdev->conf.idx - 1) * QDMA_Q_PER_VF_MAX; + } else + qdev->qbase = xdev->conf.qsets_base; +#else + /* + * for the first device make qbase as 0 indicated by <0 value + * for others initial configuration, go for QDMA_Q_PER_PF_MAX + * for qbase + * if modified using sysfs/qmax, take it from calculated qbase + */ + if (xdev->conf.cur_cfg_state == QMAX_CFG_UNCONFIGURED) { + qdev->qbase = (xdev->conf.idx - 1) * MAX_QS_PER_PF; + xdev->conf.cur_cfg_state = QMAX_CFG_INITIAL; + } else + qdev->qbase = xdev->conf.qsets_base; +#endif + xdev->conf.qsets_base = qdev->qbase; + + for (i = 0, descq = qdev->h2c_descq; i < qdev->qmax; i++, descq++) + qdma_descq_init(descq, xdev, i, i); + for (i = 0, descq = qdev->c2h_descq; i < qdev->qmax; i++, descq++) + qdma_descq_init(descq, xdev, i, i); +#ifndef __QDMA_VF__ + if (xdev->conf.master_pf) { + pr_info("%s master PF.\n", xdev->conf.name); + hw_set_global_csr(xdev); + qdma_trq_c2h_config(xdev); + for (i = 0; i < xdev->mm_channel_max; i++) { + hw_mm_channel_enable(xdev, i, 1); + hw_mm_channel_enable(xdev, i, 0); + } + } +#endif + /** STM specific init */ + xdev->pipe_stm_max_pkt_size = STM_MAX_PKT_SIZE; + + return 0; +} + +void qdma_device_cleanup(struct xlnx_dma_dev *xdev) +{ + int i; + struct qdma_dev *qdev = xdev_2_qdev(xdev); + struct qdma_descq *descq; + + if (!qdev) { + pr_info("dev %s, qdev null.\n", + dev_name(&xdev->conf.pdev->dev)); + return; + } + +#ifndef __QDMA_VF__ +#ifdef ERR_DEBUG + if ((xdev->conf.master_pf) && + (xdev->conf.qdma_drv_mode == POLL_MODE)) { + pr_info("Cancelling delayed work"); + spin_lock(&xdev->err_lock); + xdev->err_mon_cancel = 1; + cancel_delayed_work_sync(&xdev->err_mon); + spin_unlock(&xdev->err_lock); + } +#endif +#endif + + for (i = 0, descq = qdev->h2c_descq; i < qdev->qmax; i++, descq++) { + if (descq->q_state == Q_STATE_ONLINE) + qdma_queue_stop((unsigned long int)xdev, i, NULL, 0); + } + + for (i = 0, descq = qdev->c2h_descq; i < qdev->qmax; i++, descq++) { + if (descq->q_state == Q_STATE_ONLINE) + qdma_queue_stop((unsigned long int)xdev, + i + qdev->qmax, NULL, 0); + } + + intr_teardown(xdev); + + if ((xdev->conf.qdma_drv_mode == INDIRECT_INTR_MODE) || + (xdev->conf.qdma_drv_mode == AUTO_MODE)) { + pr_info("dev %s teardown interrupt coalescing ring\n", + dev_name(&xdev->conf.pdev->dev)); + intr_ring_teardown(xdev); + } + +#ifndef __QDMA_VF__ + if (xdev->func_id == 0) { + for (i = 0; i < xdev->mm_channel_max; i++) { + hw_mm_channel_disable(xdev, i, DMA_TO_DEVICE); + hw_mm_channel_disable(xdev, i, DMA_FROM_DEVICE); + } + } +#endif + + for (i = 0, descq = qdev->h2c_descq; i < qdev->qmax; i++, descq++) { + if (descq->q_state == Q_STATE_ENABLED) + qdma_queue_remove((unsigned long int)xdev, i, NULL, 0); + } + + for (i = 0, descq = qdev->c2h_descq; i < qdev->qmax; i++, descq++) { + if (descq->q_state == Q_STATE_ENABLED) + qdma_queue_remove((unsigned long int)xdev, + i + qdev->qmax, NULL, 0); + } + + xdev->dev_priv = NULL; + kfree(qdev); +} + +long qdma_device_get_id_from_descq(struct xlnx_dma_dev *xdev, + struct qdma_descq *descq) +{ + struct qdma_dev *qdev; + unsigned long idx; + unsigned long idx_max; + struct qdma_descq *_descq; + + if (!xdev) { + pr_info("xdev NULL.\n"); + return -EINVAL; + } + + qdev = xdev_2_qdev(xdev); + + if (!qdev) { + pr_err("dev %s, qdev null.\n", + dev_name(&xdev->conf.pdev->dev)); + return -EINVAL; + } + _descq = descq->conf.c2h ? qdev->c2h_descq : qdev->h2c_descq; + idx = descq->conf.c2h ? qdev->qmax : 0; + + idx_max = (idx + qdev->qmax); + for ( ; idx < idx_max; idx++, _descq++) + if (_descq == descq) + return idx; + + return -EINVAL; + +} + +struct qdma_descq *qdma_device_get_descq_by_id(struct xlnx_dma_dev *xdev, + unsigned long idx, char *buf, int buflen, int init) +{ + struct qdma_dev *qdev; + struct qdma_descq *descq; + + if (!xdev) { + pr_info("xdev NULL.\n"); + return NULL; + } + + qdev = xdev_2_qdev(xdev); + + if (!qdev) { + pr_err("dev %s, qdev null.\n", + dev_name(&xdev->conf.pdev->dev)); + return NULL; + } + + if (idx >= qdev->qmax) { + idx -= qdev->qmax; + if (idx >= qdev->qmax) { + pr_info("%s, q idx too big 0x%lx > 0x%x.\n", + xdev->conf.name, idx, qdev->qmax); + if (buf && buflen) { + int len = snprintf(buf, buflen, + "%s, q idx too big 0x%lx > 0x%x.\n", + xdev->conf.name, idx, qdev->qmax); + buf[len] = '\0'; + buflen -= (len + 1); + } + return NULL; + } + descq = qdev->c2h_descq + idx; + } else { + descq = qdev->h2c_descq + idx; + } + + if (init) { + lock_descq(descq); + if (descq->q_state == Q_STATE_DISABLED) { + pr_info("%s, idx 0x%lx, q 0x%p state invalid.\n", + xdev->conf.name, idx, descq); + if (buf && buflen) { + int len = snprintf(buf, buflen, + "%s, idx 0x%lx, q 0x%p state invalid.\n", + xdev->conf.name, idx, descq); + buf[len] = '\0'; + buflen -= (len + 1); + } + unlock_descq(descq); + return NULL; + } + unlock_descq(descq); + } + + return descq; +} + +#ifdef DEBUGFS +struct qdma_descq *qdma_device_get_pair_descq_by_id(struct xlnx_dma_dev *xdev, + unsigned long idx, char *buf, int buflen, int init) +{ + struct qdma_dev *qdev; + struct qdma_descq *pair_descq; + + if (!xdev) { + pr_info("xdev NULL.\n"); + return NULL; + } + + qdev = xdev_2_qdev(xdev); + + if (!qdev) { + pr_err("dev %s, qdev null.\n", + dev_name(&xdev->conf.pdev->dev)); + return NULL; + } + + if (idx >= qdev->qmax) { + idx -= qdev->qmax; + if (idx >= qdev->qmax) { + pr_debug("%s, q idx too big 0x%lx > 0x%x.\n", + xdev->conf.name, idx, qdev->qmax); + if (buf && buflen) { + int len = snprintf(buf, buflen, + "%s, q idx too big 0x%lx > 0x%x.\n", + xdev->conf.name, idx, qdev->qmax); + buf[len] = '\0'; + buflen -= len + 1; + } + return NULL; + } + pair_descq = qdev->h2c_descq + idx; + } else { + pair_descq = qdev->c2h_descq + idx; + } + + if (init) { + lock_descq(pair_descq); + if (pair_descq->q_state == Q_STATE_DISABLED) { + pr_debug("%s, idx 0x%lx, q 0x%p state invalid.\n", + xdev->conf.name, idx, pair_descq); + if (buf && buflen) { + int len = snprintf(buf, buflen, + "%s, idx 0x%lx, q 0x%p state invalid.\n", + xdev->conf.name, idx, pair_descq); + buf[len] = '\0'; + buflen -= len + 1; + } + unlock_descq(pair_descq); + return NULL; + } + unlock_descq(pair_descq); + } + + return pair_descq; +} +#endif + +struct qdma_descq *qdma_device_get_descq_by_hw_qid(struct xlnx_dma_dev *xdev, + unsigned long qidx_hw, u8 c2h) +{ + struct qdma_dev *qdev; + struct qdma_descq *descq; + unsigned long qidx_sw = 0; + + if (!xdev) { + pr_info("xdev NULL.\n"); + return NULL; + } + + qdev = xdev_2_qdev(xdev); + + if (!qdev) { + pr_err("dev %s, qdev null.\n", + dev_name(&xdev->conf.pdev->dev)); + return NULL; + } + + qidx_sw = qidx_hw - qdev->qbase; + if (c2h) + descq = &qdev->c2h_descq[qidx_sw]; + else + descq = &qdev->h2c_descq[qidx_sw]; + + return descq; +} diff --git a/QDMA/linux-kernel/libqdma/qdma_device.h b/QDMA/linux-kernel/libqdma/qdma_device.h new file mode 100644 index 0000000..fdc32c5 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_device.h @@ -0,0 +1,276 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef LIBQDMA_QDMA_DEVICE_H_ +#define LIBQDMA_QDMA_DEVICE_H_ +/** + * @file + * @brief This file contains the declarations for QDMA device + * + */ +#include <linux/spinlock_types.h> +#include "libqdma_export.h" + +/** + * forward declaration for qdma descriptor + */ +struct qdma_descq; +/** + * forward declaration for xlnx_dma_dev + */ +struct xlnx_dma_dev; + +/** + * @struct - qdma_dev + * @brief qdma device per function + */ +struct qdma_dev { + /** flag indicates whether the fmap programming is completed or not */ + u8 init_qrange:1; + /** filler */ + u8 filler[3]; + /** max number of queues per function */ + unsigned short qmax; + /** queue start number for this function */ + unsigned short qbase; + /** qdma_dev lock */ + spinlock_t lock; + /** number of h2c queues for this function */ + unsigned short h2c_qcnt; + /** number of c2h queues for this function */ + unsigned short c2h_qcnt; + /** h2c descq list */ + struct qdma_descq *h2c_descq; + /** c2h descq list */ + struct qdma_descq *c2h_descq; +}; + +/** + * macro to convert the given xdev to qdev + */ +#define xdev_2_qdev(xdev) (struct qdma_dev *)((xdev)->dev_priv) + +/*****************************************************************************/ +/** + * qdma_device_init() - initializes the qdma device + * + * @param[in] xdev: pointer to xdev + * + * @return 0: success + * @return -1: failure + *****************************************************************************/ +int qdma_device_init(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * qdma_device_cleanup() - clean up the qdma device + * + * @param[in] xdev: pointer to xdev + * + * @return none + *****************************************************************************/ +void qdma_device_cleanup(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * qdma_device_get_descq_by_id() - get the qhndl for descq + * + * @param[in] xdev: pointer to xdev + * @param[in] descq: pointer to the descq + * + * @return qhndl for descq on success + * @return <0 on failure + *****************************************************************************/ +long qdma_device_get_id_from_descq(struct xlnx_dma_dev *xdev, + struct qdma_descq *descq); +/*****************************************************************************/ +/** + * qdma_device_get_descq_by_id() - get the descq using the qid + * + * @param[in] xdev: pointer to xdev + * @param[in] idx: sw qidx + * @param[in] init: indicates whether to initialize the device or not + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return pointer to descq on success + * @return NULL on failure + *****************************************************************************/ +struct qdma_descq *qdma_device_get_descq_by_id(struct xlnx_dma_dev *xdev, + unsigned long idx, char *buf, int buflen, int init); + +#ifdef DEBUGFS +/*****************************************************************************/ +/** + * qdma_device_get_pair_descq_by_id() - get the descq using the qid + * + * @param[in] xdev: pointer to xdev + * @param[in] idx: sw qidx + * @param[in] init: indicates whether to initialize the device or not + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return pointer to descq on success + * @return NULL on failure + *****************************************************************************/ +struct qdma_descq *qdma_device_get_pair_descq_by_id(struct xlnx_dma_dev *xdev, + unsigned long idx, char *buf, int buflen, int init); +#endif + +/*****************************************************************************/ +/** + * qdma_device_get_descq_by_hw_qid() - get the descq using the hw qid + * + * @param[in] xdev: pointer to xdev + * @param[in] qidx_hw: hw qidx + * @param[in] c2h: indicates whether hw qidx belongs to c2h or h2c + * + * @return pointer to descq on success + * @return NULL on failure + *****************************************************************************/ +struct qdma_descq *qdma_device_get_descq_by_hw_qid(struct xlnx_dma_dev *xdev, + unsigned long qidx_hw, u8 c2h); + +/*****************************************************************************/ +/** + * qdma_device_prep_q_resource() - Prepare queue resources + * + * @param[in] xdev: pointer to xdev + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_device_prep_q_resource(struct xlnx_dma_dev *xdev); + +#ifndef __QDMA_VF__ +/*****************************************************************************/ +/** + * qdma_csr_read_cmpl_status_acc() - Read the completion status + * accumulation value + * + * @param[in] xdev: pointer to xdev + * @param[out] cs_acc: cs_acc value + * + * @return none + *****************************************************************************/ +void qdma_csr_read_cmpl_status_acc(struct xlnx_dma_dev *xdev, + unsigned int *cs_acc); + +/*****************************************************************************/ +/** + * qdma_csr_read_rngsz() - Read the queue ring size + * + * @param[in] xdev: pointer to xdev + * @param[out] rngsz: queue ring size + * + * @return none + *****************************************************************************/ +void qdma_csr_read_rngsz(struct xlnx_dma_dev *xdev, unsigned int *rngsz); + +/*****************************************************************************/ +/** + * qdma_csr_read_bufsz() - Read the buffer size + * + * @param[in] xdev: pointer to xdev + * @param[out] bufsz: buffer size + * + * @return none + *****************************************************************************/ +void qdma_csr_read_bufsz(struct xlnx_dma_dev *xdev, unsigned int *bufsz); + +/*****************************************************************************/ +/** + * qdma_csr_read_timer_cnt() - Read the timer count + * + * @param[in] xdev: pointer to xdev + * @param[out] cnt: timer count + * + * @return none + *****************************************************************************/ +void qdma_csr_read_timer_cnt(struct xlnx_dma_dev *xdev, unsigned int *cnt); + +/*****************************************************************************/ +/** + * qdma_csr_read_timer_cnt() - Read the timer threshold + * + * @param[in] xdev: pointer to xdev + * @param[out] th: timer threshold + * + * @return none + *****************************************************************************/ +void qdma_csr_read_cnt_thresh(struct xlnx_dma_dev *xdev, unsigned int *th); +#else +/*****************************************************************************/ +/** + * device_set_qconf() - set device conf + * + * @param[in] xdev: pointer to xdev + * @param[in] qmax: maximum request qsize for VF instance + * + * @return 0: success + * @return < 0: failure + *****************************************************************************/ +int device_set_qconf(struct xlnx_dma_dev *xdev, int qmax, u32 *qbase); + +#endif + + +enum csr_type { + QDMA_CSR_TYPE_NONE, + QDMA_CSR_TYPE_RNGSZ, /** all global csr ring size settings */ + QDMA_CSR_TYPE_BUFSZ, /** all global csr buffer size settings */ + QDMA_CSR_TYPE_TIMER_CNT, /** all global csr timer count settings */ + QDMA_CSR_TYPE_CNT_TH, /** all global csr counter thresh settings */ + + QDMA_CSR_TYPE_MAX +}; + +/** + * @struct - descq_csr_info + * @brief qdma Q csr register settings + */ +struct qdma_csr_info { + enum csr_type type; /** one csr register array */ + u32 array[QDMA_GLOBAL_CSR_ARRAY_SZ]; + u8 idx_rngsz; /** 1x index-value pair for each type */ + u8 idx_bufsz; + u8 idx_timer_cnt; + u8 idx_cnt_th; + u32 rngsz; + u32 bufsz; + u32 timer_cnt; + u32 cnt_th; + u32 cmpl_status_acc; +}; + +/*****************************************************************************/ +/** + * qdma_csr_read() - Read specific global csr registers + * + * @param[in] xdev: pointer to xdev + * @param[in] csr: csr type & index + * @param[out] csr: csr value + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_csr_read(struct xlnx_dma_dev *xdev, struct qdma_csr_info *csr_info, + unsigned int timeout_ms); + +#endif /* LIBQDMA_QDMA_DEVICE_H_ */ diff --git a/QDMA/linux-kernel/libqdma/qdma_intr.c b/QDMA/linux-kernel/libqdma/qdma_intr.c new file mode 100644 index 0000000..55db5eb --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_intr.c @@ -0,0 +1,1007 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "qdma_intr.h" + +#include <linux/kernel.h> +#include "qdma_descq.h" +#include "qdma_device.h" +#include "qdma_regs.h" +#include "thread.h" +#include "version.h" +#include "qdma_regs.h" + +struct qdma_err_info { + u32 intr_mask; + char **stat; +}; + +struct qdma_err_stat_info { + char *err_name; + u32 stat_reg_addr; + u32 mask_reg_addr; + struct qdma_err_info err_info; +}; + +/** List shall be from Bit 0 - Bit31 */ +char *glbl_err_info[] = { + "err_ram_sbe", + "err_ram_dbe", + "err_dsc", + "err_trq", + "err_h2c_mm_0", + "err_h2c_mm_1", + "err_c2h_mm_0", + "err_c2h_mm_1", + "err_c2h_st", + "ind_ctxt_cmd_err", + "err_bdg", + "err_h2c_st" +}; + +char *dsc_err_info[] = { + "poison", + "ur_ca", + "param", + "addr", + "tag", + "flr", + "timeout", + "dat_poison", + "flr_cancel", + "dma", + "dsc", + "rq_cancel", + "dbe", + "sbe" +}; + +char *trq_err_info[] = { + "unmapped", + "qid_range", + "vf_access_err", + "tcp_timeout" +}; + +char *c2h_err_info[] = { + "mty_mismatch", + "len_mismatch", + "qid_mismatch", + "desc_rsp_err", + "eng_wpl_data_par_err", + "msi_int_fail", + "err_desc_cnt", + "portid_ctxt_mismatch", + "portid_byp_in_mismatch", + "cmpt_inv_q_err", + "cmpt_qfull_err", + "cmpt_cidx_err", + "cmpt_prty_err" +}; + +char *c2h_fatal_err_info[] = { + "mty_mismatch", + "len_mismatch", + "qid_mismatch", + "timer_fifo_ram_rdbe", + "eng_wpl_data_par_err", + "pfch_II_ram_rdbe", + "cmpt_ctxt_ram_rdbe", + "pfch_ctxt_ram_rdbe", + "desc_req_fifo_ram_rdbe", + "int_ctxt_ram_rdbe", + "cmpt_coal_data_ram_rdbe", + "tuser_fifo_ram_rdbe", + "qid_fifo_ram_rdbe", + "payload_fifo_ram_rdbe", + "wpl_data_par_err" +}; + +char *h2c_err_info[] = { + "zero_len_desc_err", + "sdi_mrkr_req_mop_err", + "no_dma_dsc_err", +}; + +/** ECC Single bit errors from Bit 0 -Bit 31 */ +char *ecc_sb_err_info[] = { + "mi_h2c0_dat", + "mi_c2h0_dat", + "h2c_rd_brg_dat", + "h2c_wr_brg_dat", + "c2h_rd_brg_dat", + "c2h_wr_brg_dat", + "func_map", + "dsc_hw_ctxt", + "dsc_crd_rcv", + "dsc_sw_ctxt", + "dsc_cpli", + "dsc_cpld", + "pasid_ctxt_ram", + "timer_fifo_ram", + "payload_fifo_ram", + "qid_fifo_ram", + "tuser_fifo_ram", + "wrb_coal_data_ram", + "int_qid2vec_ram", + "int_ctxt_ram", + "desc_req_fifo_ram", + "pfch_ctxt_ram", + "wrb_ctxt_ram", + "pfch_ll_ram", + "h2c_pend_fifo" +}; + +/** ECC Double bit errors from Bit 0 -Bit 31 */ +char *ecc_db_err_info[] = { + "mi_h2c0_dat", + "mi_c2h0_dat", + "h2c_rd_brg_dat", + "h2c_wr_brg_dat", + "c2h_rd_brg_dat", + "c2h_wr_brg_dat", + "func_map", + "dsc_hw_ctxt", + "dsc_crd_rcv", + "dsc_sw_ctxt", + "dsc_cpli", + "dsc_cpld", + "pasid_ctxt_ram", + "timer_fifo_ram", + "payload_fifo_ram", + "qid_fifo_ram", + "tuser_fifo_ram", + "wrb_coal_data_ram", + "int_qid2vec_ram", + "int_ctxt_ram", + "desc_req_fifo_ram", + "pfch_ctxt_ram", + "wrb_ctxt_ram", + "pfch_ll_ram", + "h2c_pend_fifo", +}; + +struct qdma_err_stat_info err_stat_info[HW_ERRS] = { + { "glbl_err", QDMA_REG_GLBL_ERR_STAT, QDMA_REG_GLBL_ERR_MASK, + { QDMA_REG_GLBL_ERR_MASK_VALUE, glbl_err_info } }, + { "dsc_err", QDMA_GLBL_DSC_ERR_STS, QDMA_GLBL_DSC_ERR_MSK, + { QDMA_GLBL_DSC_ERR_MSK_VALUE, dsc_err_info } }, + { "trq_err", QDMA_GLBL_TRQ_ERR_STS, QDMA_GLBL_TRQ_ERR_MSK, + { QDMA_GLBL_TRQ_ERR_MSK_VALUE, trq_err_info } }, + { "c2h_err", QDMA_REG_C2H_ERR_STAT, QDMA_REG_C2H_ERR_MASK, + { QDMA_REG_C2H_ERR_MASK_VALUE, c2h_err_info } }, + { "c2h_fatal_err", QDMA_C2H_FATAL_ERR_STAT, QDMA_C2H_FATAL_ERR_MASK, + { QDMA_C2H_FATAL_ERR_MASK_VALUE, c2h_fatal_err_info } }, + { "h2c_err", QDMA_H2C_ERR_STAT, QDMA_H2C_ERR_MASK, + { QDMA_H2C_ERR_MASK_VALUE, h2c_err_info } }, + { "ecc_sb_err", QDMA_RAM_SBE_STAT_A, QDMA_RAM_SBE_MASK_A, + { QDMA_RAM_SBE_MASK_VALUE, ecc_sb_err_info } }, + { "ecc_sb_err", QDMA_RAM_DBE_STAT_A, QDMA_RAM_DBE_MASK_A, + { QDMA_RAM_DBE_MASK_VALUE, ecc_db_err_info } }, +}; + +#ifndef __QDMA_VF__ +static LIST_HEAD(legacy_intr_q_list); +static spinlock_t legacy_intr_lock; +static spinlock_t legacy_q_add_lock; +static unsigned long legacy_intr_flags = IRQF_SHARED; +#endif + +void err_stat_handler(struct xlnx_dma_dev *xdev) +{ + u32 i; + u32 err_stat; + u32 glb_err_stat = 0; + + for (i = 0; i < HW_ERRS; i++) { + err_stat = __read_reg(xdev, err_stat_info[i].stat_reg_addr); + if ((i == 0) && err_stat_info[i].err_info.intr_mask) + glb_err_stat = err_stat; + if (err_stat & err_stat_info[i].err_info.intr_mask) { + uint8_t bit = 0; + uint32_t intr_mask = + err_stat_info[i].err_info.intr_mask; + uint32_t chk_mask = 0x01; + + pr_info("%s[0x%x] : 0x%x", err_stat_info[i].err_name, + err_stat_info[i].stat_reg_addr, + err_stat); + while (intr_mask) { + if (((intr_mask & 0x01)) && + (err_stat & chk_mask)) + pr_err("\t%s detected", + err_stat_info[i].err_info.stat[bit]); + + if (intr_mask & 0x01) + bit++; + intr_mask >>= 1; + chk_mask <<= 1; + } + __write_reg(xdev, err_stat_info[i].stat_reg_addr, + err_stat); + } + } + if (glb_err_stat) { + __write_reg(xdev, err_stat_info[0].stat_reg_addr, + glb_err_stat); + qdma_err_intr_setup(xdev, 1); + } +} + +static irqreturn_t user_intr_handler(int irq_index, int irq, void *dev_id) +{ + struct xlnx_dma_dev *xdev = dev_id; + + pr_info("User IRQ fired on PF#%d: index=%d, vector=%d\n", + xdev->func_id, irq_index, irq); + + if (xdev->conf.fp_user_isr_handler) + xdev->conf.fp_user_isr_handler((unsigned long)xdev, + xdev->conf.uld); + + return IRQ_HANDLED; +} + +#ifndef __QDMA_VF__ +static irqreturn_t error_intr_handler(int irq_index, int irq, void *dev_id) +{ + struct xlnx_dma_dev *xdev = dev_id; + unsigned long flags; + + pr_info("Error IRQ fired on PF#%d: index=%d, vector=%d\n", + xdev->func_id, irq_index, irq); + + spin_lock_irqsave(&xdev->lock, flags); + + err_stat_handler(xdev); + + spin_unlock_irqrestore(&xdev->lock, flags); + + return IRQ_HANDLED; +} +#endif + +static void data_intr_aggregate(struct xlnx_dma_dev *xdev, int vidx, int irq) +{ + struct qdma_descq *descq = NULL; + u32 counter = 0; + int ring_index = 0; + struct intr_coal_conf *coal_entry = + (xdev->intr_coal_list + vidx - xdev->dvec_start_idx); + struct qdma_intr_ring *ring_entry; + + if (!coal_entry) { + pr_err("Failed to locate the coalescing entry for vector = %d\n", + vidx); + return; + } + pr_debug("INTR_COAL: msix[%d].vector=%d, msix[%d].entry=%d, rngsize=%d, cidx = %d\n", + vidx, xdev->msix[vidx].vector, + vidx, + xdev->msix[vidx].entry, + coal_entry->intr_rng_num_entries, + coal_entry->cidx); + + pr_debug("vidx = %d, dvec_start_idx = %d\n", vidx, + xdev->dvec_start_idx); + + if ((xdev->msix[vidx].entry) != coal_entry->vec_id) { + pr_err("msix[%d].entry[%d] != vec_id[%d]\n", + vidx, xdev->msix[vidx].entry, + coal_entry->vec_id); + + return; + } + + counter = coal_entry->cidx; + ring_entry = (coal_entry->intr_ring_base + counter); + if (!ring_entry) { + pr_err("Failed to locate the ring entry for vector = %d\n", + vidx); + return; + } + while (ring_entry->coal_color == coal_entry->color) { + pr_debug("IRQ[%d]: IVE[%d], Qid = %d, e_color = %d, c_color = %d, intr_type = %d\n", + irq, vidx, ring_entry->qid, coal_entry->color, + ring_entry->coal_color, ring_entry->intr_type); + + descq = qdma_device_get_descq_by_hw_qid(xdev, ring_entry->qid, + ring_entry->intr_type); + if (!descq) { + pr_err("IRQ[%d]: IVE[%d], Qid = %d: desc not found\n", + irq, vidx, ring_entry->qid); + return; + } + + if (descq->conf.fp_descq_isr_top) { + struct qdma_dev *qdev = xdev_2_qdev(xdev); + + descq->conf.fp_descq_isr_top(descq->conf.qidx + + (descq->conf.c2h ? qdev->qmax : 0), + descq->conf.quld); + } else { + if (descq->cpu_assigned) + schedule_work_on(descq->intr_work_cpu, + &descq->work); + else + schedule_work(&descq->work); + } + + if (++coal_entry->cidx == coal_entry->intr_rng_num_entries) { + counter = 0; + xdev->intr_coal_list->color = + (xdev->intr_coal_list->color) ? 0 : 1; + coal_entry->cidx = 0; + } else + counter++; + + ring_entry = (coal_entry->intr_ring_base + counter); + } + + if (descq) { + ring_index = get_intr_ring_index(descq->xdev, + coal_entry->vec_id); + intr_cidx_update(descq, coal_entry->cidx, ring_index); + } +} + +static void data_intr_direct(struct xlnx_dma_dev *xdev, int vidx, int irq) +{ + struct qdma_descq *descq; + + list_for_each_entry(descq, &xdev->dev_intr_info_list[vidx].intr_list, + intr_list) + if (descq->conf.fp_descq_isr_top) { + struct qdma_dev *qdev = xdev_2_qdev(xdev); + + descq->conf.fp_descq_isr_top(descq->conf.qidx + + (descq->conf.c2h ? qdev->qmax : 0), + descq->conf.quld); + } else { + if (descq->cpu_assigned) + schedule_work_on(descq->intr_work_cpu, + &descq->work); + else + schedule_work(&descq->work); + } +} + +static irqreturn_t data_intr_handler(int vector_index, int irq, void *dev_id) +{ + struct xlnx_dma_dev *xdev = dev_id; + unsigned long flags; + + pr_debug("Data IRQ fired on PF#%d: index=%d, vector=%d\n", + xdev->func_id, vector_index, irq); + + spin_lock_irqsave(&xdev->lock, flags); + if ((xdev->conf.qdma_drv_mode == INDIRECT_INTR_MODE) || + (xdev->conf.qdma_drv_mode == AUTO_MODE)) + data_intr_aggregate(xdev, vector_index, irq); + else + data_intr_direct(xdev, vector_index, irq); + spin_unlock_irqrestore(&xdev->lock, flags); + + return IRQ_HANDLED; +} + +static inline void intr_ring_free(struct xlnx_dma_dev *xdev, int ring_sz, + int intr_desc_sz, u8 *intr_desc, dma_addr_t desc_bus) +{ + unsigned int len = ring_sz * intr_desc_sz; + + pr_debug("free %u(0x%x)=%d*%u, 0x%p, bus 0x%llx.\n", + len, len, intr_desc_sz, ring_sz, intr_desc, desc_bus); + + dma_free_coherent(&xdev->conf.pdev->dev, (size_t)ring_sz * intr_desc_sz, + intr_desc, desc_bus); +} + +static void *intr_ring_alloc(struct xlnx_dma_dev *xdev, int ring_sz, + int intr_desc_sz, dma_addr_t *bus) +{ + unsigned int len = ring_sz * intr_desc_sz; + u8 *p = dma_alloc_coherent(&xdev->conf.pdev->dev, len, bus, GFP_KERNEL); + + if (!p) { + pr_err("%s, OOM, sz ring %d, intr_desc %d.\n", + xdev->conf.name, ring_sz, intr_desc_sz); + return NULL; + } + + memset(p, 0, len); + + pr_debug("alloc %u(0x%x)=%d*%u, bus 0x%llx .\n", + len, len, intr_desc_sz, ring_sz, *bus); + + return p; +} + +void intr_ring_teardown(struct xlnx_dma_dev *xdev) +{ + int i = 0; + struct intr_coal_conf *ring_entry; + + +#ifndef __QDMA_VF__ + int rv = 0; + unsigned int ring_index = 0; +#endif + + while (i < QDMA_NUM_DATA_VEC_FOR_INTR_CXT) { +#ifndef __QDMA_VF__ + ring_index = get_intr_ring_index(xdev, + (i + xdev->dvec_start_idx)); +#endif + ring_entry = (xdev->intr_coal_list + i); + if (ring_entry) { + intr_ring_free(xdev, + ring_entry->intr_rng_num_entries, + sizeof(struct qdma_intr_ring), + (u8 *)ring_entry->intr_ring_base, + ring_entry->intr_ring_bus); +#ifndef __QDMA_VF__ + pr_debug("Clearing intr_ctxt for ring_index =%d\n", + ring_index); + /* clear interrupt context (0x8) */ + rv = hw_indirect_ctext_prog(xdev, + ring_index, QDMA_CTXT_CMD_CLR, + QDMA_CTXT_SEL_COAL, NULL, 0, 0); + if (rv < 0) { + pr_err("Failed to clear interrupt context, rv = %d\n", + rv); + } +#endif + } + i++; + } + + kfree(xdev->intr_coal_list); + pr_debug("dev %s interrupt coalescing ring teardown successful\n", + dev_name(&xdev->conf.pdev->dev)); +} + +static void data_vector_handler(int irq, struct xlnx_dma_dev *xdev) +{ + int i; + + for (i = 0; i < xdev->num_vecs; i++) { + if (xdev->msix[i].vector == irq) { + xdev->dev_intr_info_list[i].intr_vec_map.intr_handler(i, + irq, (void *)xdev); + break; + } + } +} + +static irqreturn_t irq_bottom(int irq, void *dev_id) +{ + struct xlnx_dma_dev *xdev = dev_id; + + data_vector_handler(irq, xdev); + + return IRQ_HANDLED; +} + +static irqreturn_t irq_top(int irq, void *dev_id) +{ + struct xlnx_dma_dev *xdev = dev_id; + + if (xdev->conf.fp_q_isr_top_dev) { + xdev->conf.fp_q_isr_top_dev((unsigned long)xdev, + xdev->conf.uld); + } + + return IRQ_WAKE_THREAD; +} + + +void intr_teardown(struct xlnx_dma_dev *xdev) +{ + int i = xdev->num_vecs; + + while (--i >= 0) + free_irq(xdev->msix[i].vector, xdev); + + if (xdev->num_vecs) + pci_disable_msix(xdev->conf.pdev); + + kfree(xdev->msix); + kfree(xdev->dev_intr_info_list); +} + + +static int intr_vector_setup(struct xlnx_dma_dev *xdev, int idx, + enum intr_type_list type, f_intr_handler handler) +{ + int rv; + + if (type == INTR_TYPE_ERROR) + snprintf(xdev->dev_intr_info_list[idx].msix_name, + QDMA_DEV_NAME_MAXLEN + 16, "%s-error", + xdev->conf.name); + else if (type == INTR_TYPE_USER) + snprintf(xdev->dev_intr_info_list[idx].msix_name, + QDMA_DEV_NAME_MAXLEN + 16, "%s-user", xdev->conf.name); + else if (type == INTR_TYPE_DATA) + snprintf(xdev->dev_intr_info_list[idx].msix_name, + QDMA_DEV_NAME_MAXLEN + 16, "%s-data", xdev->conf.name); + else + snprintf(xdev->dev_intr_info_list[idx].msix_name, + QDMA_DEV_NAME_MAXLEN + 16, "%s", xdev->conf.name); + + xdev->dev_intr_info_list[idx].intr_vec_map.intr_type = type; + xdev->dev_intr_info_list[idx].intr_vec_map.intr_vec_index = idx; + xdev->dev_intr_info_list[idx].intr_vec_map.intr_handler = handler; + + if (type == INTR_TYPE_DATA) + rv = request_irq(xdev->msix[idx].vector, irq_bottom, 0, + xdev->dev_intr_info_list[idx].msix_name, xdev); + else + rv = request_threaded_irq(xdev->msix[idx].vector, irq_top, + irq_bottom, 0, + xdev->dev_intr_info_list[idx].msix_name, + xdev); + + pr_info("%s requesting IRQ vector #%d: vec %d, type %d, %s.\n", + xdev->conf.name, idx, xdev->msix[idx].vector, + type, xdev->dev_intr_info_list[idx].msix_name); + + if (rv) { + pr_err("%s requesting IRQ vector #%d: vec %d failed %d.\n", + xdev->conf.name, idx, xdev->msix[idx].vector, rv); + return rv; + } + + return 0; +} +#ifdef __PCI_MSI_VEC_COUNT__ + +#define msix_table_size(flags) ((flags & PCI_MSIX_FLAGS_QSIZE) + 1) + +static int pci_msix_vec_count(struct pci_dev *dev) +{ + u16 control; + + if (!dev->msix_cap) + return 0; + + pci_read_config_word(dev, dev->msix_cap + PCI_MSIX_FLAGS, &control); + return msix_table_size(control); +} +#endif + +int intr_setup(struct xlnx_dma_dev *xdev) +{ + int rv = 0; + int i; + + if ((xdev->conf.qdma_drv_mode == POLL_MODE) || + (xdev->conf.qdma_drv_mode == LEGACY_INTR_MODE)) { + goto exit; + } + xdev->num_vecs = pci_msix_vec_count(xdev->conf.pdev); + pr_debug("dev %s, xdev->num_vecs = %d\n", + dev_name(&xdev->conf.pdev->dev), xdev->num_vecs); + + if (!xdev->num_vecs) { + pr_warn("MSI-X not supported, running in polled mode\n"); + return 0; + } + + xdev->msix = kzalloc((sizeof(struct msix_entry) * xdev->num_vecs), + GFP_KERNEL); + if (!xdev->msix) { + pr_err("dev %s xdev->msix OOM.\n", + dev_name(&xdev->conf.pdev->dev)); + rv = -ENOMEM; + goto exit; + } + + xdev->dev_intr_info_list = + kzalloc((sizeof(struct intr_info_t) * xdev->num_vecs), + GFP_KERNEL); + if (!xdev->dev_intr_info_list) { + pr_err("dev %s xdev->dev_intr_info_list OOM.\n", + dev_name(&xdev->conf.pdev->dev)); + rv = -ENOMEM; + goto free_msix; + } + + for (i = 0; i < xdev->num_vecs; i++) { + xdev->msix[i].entry = i; + INIT_LIST_HEAD(&xdev->dev_intr_info_list[i].intr_list); + } + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0) + rv = pci_enable_msix_exact(xdev->conf.pdev, xdev->msix, xdev->num_vecs); +#else + rv = pci_enable_msix(xdev->conf.pdev, xdev->msix, xdev->num_vecs); +#endif + if (rv < 0) { + pr_err("Error enabling MSI-X (%d)\n", rv); + goto free_intr_info; + } + + /** On master PF0, vector#0 is dedicated for Error interrupts and + * vector #1 is dedicated for User interrupts + * For all other PFs and VFs, vector#0 is dedicated for User interrupts + * The remaining vectors are for Data interrupts + */ + i = 0; +#ifndef __QDMA_VF__ + /* global error interrupt */ + if (xdev->conf.master_pf) { + rv = intr_vector_setup(xdev, 0, INTR_TYPE_ERROR, + error_intr_handler); + if (rv) + goto cleanup_irq; + i = 1; + } +#endif + + /* user interrupt */ + rv = intr_vector_setup(xdev, i, INTR_TYPE_USER, user_intr_handler); + if (rv) + goto cleanup_irq; + + /* data interrupt */ + xdev->dvec_start_idx = ++i; + for (; i < xdev->num_vecs; i++) { + rv = intr_vector_setup(xdev, i, INTR_TYPE_DATA, + data_intr_handler); + if (rv) + goto cleanup_irq; + } + + xdev->flags |= XDEV_FLAG_IRQ; + return rv; + +cleanup_irq: + while (--i >= 0) + free_irq(xdev->msix[i].vector, xdev); + + pci_disable_msix(xdev->conf.pdev); + xdev->num_vecs = 0; +free_intr_info: + kfree(xdev->dev_intr_info_list); +free_msix: + kfree(xdev->msix); +exit: + return rv; +} + +#ifndef __QDMA_VF__ +static irqreturn_t irq_legacy(int irq, void *param) +{ + struct list_head *entry, *tmp; + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)param; + irqreturn_t ret = IRQ_NONE; + + if (!xdev) { + pr_err("Invalid Xdev"); + goto irq_return; + } + + spin_lock_irqsave(&legacy_intr_lock, legacy_intr_flags); + if (__read_reg(xdev, QDMA_GLBL_INTERRUPT_CFG) & + QDMA_GLBL_INTERRUPT_LGCY_INTR_PEND) { + + list_for_each_safe(entry, tmp, &legacy_intr_q_list) { + struct qdma_descq *descq = + container_of(entry, + struct qdma_descq, + legacy_intr_q_list); + + qdma_descq_service_cmpl_update(descq, 0, 1); + } + __write_reg(xdev, QDMA_GLBL_INTERRUPT_CFG, + QDMA_GLBL_INTERRUPT_CFG_EN_LGCY_INTR | + QDMA_GLBL_INTERRUPT_LGCY_INTR_PEND); + ret = IRQ_HANDLED; + } + spin_unlock_irqrestore(&legacy_intr_lock, legacy_intr_flags); + +irq_return: + return ret; +} + +void intr_legacy_clear(struct qdma_descq *descq) +{ + + if (!descq) { + pr_err("Invalid descq received"); + return; + } + list_del(&descq->legacy_intr_q_list); + + if (list_empty(&legacy_intr_q_list)) { + + pr_info("un-registering legacy interrupt from qdma%05x\n", + descq->xdev->conf.bdf); + __write_reg(descq->xdev, QDMA_GLBL_INTERRUPT_CFG, + QDMA_GLBL_INTERRUPT_LGCY_INTR_PEND); + free_irq(descq->xdev->conf.pdev->irq, descq->xdev); + } +} + +int intr_legacy_setup(struct qdma_descq *descq) +{ + int req_irq = 0; + int rv = 0; + + if (!descq) { + pr_err("Invalid descq received"); + return -EINVAL; + } + + spin_lock(&legacy_q_add_lock); + req_irq = list_empty(&legacy_intr_q_list); + rv = req_irq ? 0 : 1; + + if (req_irq != 0) { + spin_lock_init(&legacy_intr_lock); + pr_debug("registering legacy interrupt for irq-%d from qdma%05x\n", + descq->xdev->conf.pdev->irq, descq->xdev->conf.bdf); + __write_reg(descq->xdev, QDMA_GLBL_INTERRUPT_CFG, + QDMA_GLBL_INTERRUPT_LGCY_INTR_PEND); + rv = request_threaded_irq(descq->xdev->conf.pdev->irq, irq_top, + irq_legacy, legacy_intr_flags, + "qdma legacy intr", + descq->xdev); + + if (rv < 0) + goto exit_intr_setup; + else { + list_add_tail(&descq->legacy_intr_q_list, + &legacy_intr_q_list); + rv = 0; + } + __write_reg(descq->xdev, QDMA_GLBL_INTERRUPT_CFG, + QDMA_GLBL_INTERRUPT_CFG_EN_LGCY_INTR); + } else + list_add_tail(&descq->legacy_intr_q_list, + &legacy_intr_q_list); + +exit_intr_setup: + spin_unlock(&legacy_q_add_lock); + return rv; +} +#endif + +int intr_ring_setup(struct xlnx_dma_dev *xdev) +{ + int num_entries = 0; + int counter = 0; + struct intr_coal_conf *intr_coal_list; + struct intr_coal_conf *intr_coal_list_entry; + + if ((xdev->conf.qdma_drv_mode != INDIRECT_INTR_MODE) && + (xdev->conf.qdma_drv_mode != AUTO_MODE)) { + pr_debug("skipping interrupt aggregation: driver is loaded in %s mode\n", + mode_name_list[xdev->conf.qdma_drv_mode].name); + xdev->intr_coal_list = NULL; + return 0; + } + + /** For master_pf, vec0 and vec1 is used for + * error and user interrupts + * for other pfs, vec0 is used for user interrupts + */ + if ((xdev->num_vecs != 0) && + ((xdev->num_vecs - xdev->dvec_start_idx) < xdev->conf.qsets_max)) { + pr_debug("dev %s num_vectors[%d] < num_queues [%d]\n", + dev_name(&xdev->conf.pdev->dev), + xdev->num_vecs, + xdev->conf.qsets_max); + pr_debug("Enabling Interrupt aggregation\n"); + + /** obtain the number of queue entries + * in each inr_ring based on ring size + */ + num_entries = ((xdev->conf.intr_rngsz + 1) * 512); + + pr_debug("%s interrupt coalescing ring with %d entries\n", + dev_name(&xdev->conf.pdev->dev), num_entries); + /** + * Initially assuming that each vector has the same size of the + * ring, In practical it is possible to have different ring + * size of different vectors (?) + */ + intr_coal_list = kzalloc( + sizeof(struct intr_coal_conf) * + QDMA_NUM_DATA_VEC_FOR_INTR_CXT, + GFP_KERNEL); + if (!intr_coal_list) { + pr_err("dev %s num_vecs %d OOM.\n", + dev_name(&xdev->conf.pdev->dev), + QDMA_NUM_DATA_VEC_FOR_INTR_CXT); + return -ENOMEM; + } + + for (counter = 0; + counter < QDMA_NUM_DATA_VEC_FOR_INTR_CXT; + counter++) { + intr_coal_list_entry = (intr_coal_list + counter); + intr_coal_list_entry->intr_rng_num_entries = + num_entries; + intr_coal_list_entry->intr_ring_base = intr_ring_alloc( + xdev, num_entries, + sizeof(struct qdma_intr_ring), + &intr_coal_list_entry->intr_ring_bus); + if (!intr_coal_list_entry->intr_ring_base) { + pr_err("dev %s, sz %u, intr_desc ring OOM.\n", + xdev->conf.name, + intr_coal_list_entry->intr_rng_num_entries); + goto err_out; + } + + intr_coal_list_entry->vec_id = + xdev->msix[counter + xdev->dvec_start_idx].entry; + intr_coal_list_entry->cidx = 0; + intr_coal_list_entry->color = 1; + pr_debug("ring_number = %d, vector_index = %d, ring_size = %d, ring_base = 0x%08x", + counter, intr_coal_list_entry->vec_id, + intr_coal_list_entry->intr_rng_num_entries, + (unsigned int)intr_coal_list_entry->intr_ring_bus); + } + + pr_debug("dev %s interrupt coalescing ring setup successful\n", + dev_name(&xdev->conf.pdev->dev)); + + xdev->intr_coal_list = intr_coal_list; + } else { + pr_info("dev %s intr vec[%d] >= queues[%d], No aggregation\n", + dev_name(&xdev->conf.pdev->dev), + (xdev->num_vecs - xdev->dvec_start_idx), + xdev->conf.qsets_max); + + xdev->intr_coal_list = NULL; + /* Fallback from indirect interrupt mode */ + if (xdev->num_vecs != 0) + xdev->conf.qdma_drv_mode = DIRECT_INTR_MODE; + else + xdev->conf.qdma_drv_mode = POLL_MODE; + } + return 0; + +err_out: + while (--counter >= 0) { + intr_coal_list_entry = (intr_coal_list + counter); + intr_ring_free(xdev, intr_coal_list_entry->intr_rng_num_entries, + sizeof(struct qdma_intr_ring), + (u8 *)intr_coal_list_entry->intr_ring_base, + intr_coal_list_entry->intr_ring_bus); + } + kfree(intr_coal_list); + return -ENOMEM; +} + +void intr_work(struct work_struct *work) +{ + struct qdma_descq *descq; + + descq = container_of(work, struct qdma_descq, work); + qdma_descq_service_cmpl_update(descq, 0, 1); +} + +/** + * qdma_queue_service - service the queue + * in the case of irq handler is registered by the user, the user should + * call qdma_queue_service() in its interrupt handler to service the queue + * @dev_hndl: hndl retured from qdma_device_open() + * @qhndl: hndl retured from qdma_queue_add() + */ +void qdma_queue_service(unsigned long dev_hndl, unsigned long id, int budget, + bool c2h_upd_cmpl) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + struct qdma_descq *descq = qdma_device_get_descq_by_id(xdev, id, + NULL, 0, 1); + + if (descq) + qdma_descq_service_cmpl_update(descq, budget, c2h_upd_cmpl); +} + +static u8 get_intr_vec_index(struct xlnx_dma_dev *xdev, u8 intr_type) +{ + u8 i = 0; + + for (i = 0; i < xdev->num_vecs; i++) { + if (xdev->dev_intr_info_list[i].intr_vec_map.intr_type == + intr_type) + return xdev->dev_intr_info_list[i].intr_vec_map.intr_vec_index; + } + return 0; +} + +void qdma_err_intr_setup(struct xlnx_dma_dev *xdev, u8 rearm) +{ + u32 val = 0; + u8 err_intr_index = 0; + u8 i; + + val = xdev->func_id; + err_intr_index = get_intr_vec_index(xdev, INTR_TYPE_ERROR); + val |= V_QDMA_C2H_ERR_INT_VEC(err_intr_index); + + val |= (1 << S_QDMA_C2H_ERR_INT_F_ERR_INT_ARM); + + __write_reg(xdev, QDMA_C2H_ERR_INT, val); + + if (rearm) + return; + + pr_debug("Error interrupt setup: val = 0x%08x, readback = 0x%08x err_intr_index = %d func_id = %d\n", + val, __read_reg(xdev, QDMA_C2H_ERR_INT), + err_intr_index, xdev->func_id); + + for (i = 0; i < HW_ERRS; i++) + qdma_enable_hw_err(xdev, i); +} + + +void qdma_enable_hw_err(struct xlnx_dma_dev *xdev, u8 hw_err_type) +{ + + switch (hw_err_type) { + case GLBL_ERR: + case GLBL_DSC_ERR: + case GLBL_TRQ_ERR: + case C2H_ERR: + case C2H_FATAL_ERR: + case H2C_ERR: + case ECC_SB_ERR: + case ECC_DB_ERR: + break; + default: + hw_err_type = 0; + break; + } + + __write_reg(xdev, + err_stat_info[hw_err_type].mask_reg_addr, + err_stat_info[hw_err_type].err_info.intr_mask); + pr_info("%s interrupts enabled: reg -> 0x%08x, value = 0x%08x\n", + err_stat_info[hw_err_type].err_name, + err_stat_info[hw_err_type].mask_reg_addr, + __read_reg(xdev, err_stat_info[hw_err_type].mask_reg_addr)); +} + + +int get_intr_ring_index(struct xlnx_dma_dev *xdev, u32 vector_index) +{ + int ring_index = 0; + + ring_index = (vector_index - xdev->dvec_start_idx) + + (xdev->func_id * QDMA_NUM_DATA_VEC_FOR_INTR_CXT); + pr_debug("func_id = %d, vector_index = %d, ring_index = %d\n", + xdev->func_id, vector_index, ring_index); + + return ring_index; +} + +void intr_legacy_init(void) +{ +#ifndef __QDMA_VF__ + spin_lock_init(&legacy_q_add_lock); +#endif +} diff --git a/QDMA/linux-kernel/libqdma/qdma_intr.h b/QDMA/linux-kernel/libqdma/qdma_intr.h new file mode 100644 index 0000000..da40765 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_intr.h @@ -0,0 +1,217 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef LIBQDMA_QDMA_INTR_H_ +#define LIBQDMA_QDMA_INTR_H_ +/** + * @file + * @brief This file contains the declarations for qdma dev interrupt handlers + * + */ +#include <linux/types.h> +#include <linux/workqueue.h> +#include "qdma_descq.h" +/** + * forward declaration for xlnx_dma_dev + */ +struct xlnx_dma_dev; + +/** + * @struct - qdma_intr_ring + * @brief Interrupt ring entry definition + */ +struct qdma_intr_ring { + /** producer index. This is from Interrupt source. + * Cumulative pointer of total interrupt Aggregation + * Ring entry written + */ + __be64 pidx:16; + /** consumer index. This is from Interrupt source. + * Cumulative consumed pointer + */ + __be64 cidx:16; + /** source color. This is from Interrupt source. + * This bit inverts every time pidx wraps around + * and this field gets copied to color field of descriptor. + */ + __be64 s_color:1; + /** This is from Interrupt source. + * Interrupt state, 0: CMPT_INT_ISR; 1: CMPT_INT_TRIG; 2: CMPT_INT_ARMED + */ + __be64 intr_satus:2; + /** error. This is from interrupt source + * {C2h_err[1:0], h2c_err[1:0]} + */ + __be64 error:2; + /** 1 reserved bits*/ + __be64 rsvd:1; + /** interrupt type, 0: H2C; 1: C2H*/ + __be64 intr_type:1; + /** This is from Interrupt source. Queue ID*/ + __be64 qid:24; + /** The color bit of the Interrupt Aggregation Ring. + * This bit inverts every time pidx wraps around on the + * Interrupt Aggregation Ring. + */ + __be64 coal_color:1; +}; + +/*****************************************************************************/ +/** + * intr_teardown() - un register the interrupts for the device + * + * @param[in] xdev: pointer to xdev + * + * @return none + *****************************************************************************/ +void intr_teardown(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * intr_setup() - register the interrupts for the device + * + * @param[in] xdev: pointer to xdev + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int intr_setup(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * intr_ring_teardown() - delete the interrupt ring + * + * @param[in] xdev: pointer to xdev + * + * @return none + *****************************************************************************/ +void intr_ring_teardown(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * intr_context_setup() - set up the interrupt context + * + * @param[in] xdev: pointer to xdev + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int intr_context_setup(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * intr_ring_setup() - create the interrupt ring + * + * @param[in] xdev: pointer to xdev + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int intr_ring_setup(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * intr_legacy_init() - legacy interrupt init + * + *****************************************************************************/ +void intr_legacy_init(void); + +/*****************************************************************************/ +/** + * intr_legacy_setup() - setup the legacy interrupt handler + * + * @param[in] descq: descq on which the interrupt needs to be setup + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int intr_legacy_setup(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * intr_legacy_clear() - clear the legacy interrupt handler + * + * @param[in] descq: descq on which the interrupt needs to be cleared + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +void intr_legacy_clear(struct qdma_descq *descq); + + +/*****************************************************************************/ +/** + * intr_work() - attach the top half for the interrupt + * + * @param[in] work: pointer to struct work_struct + * + * @return none + *****************************************************************************/ +void intr_work(struct work_struct *work); + +/*****************************************************************************/ +/** + * qdma_err_intr_setup() - set up the error interrupt + * + * @param[in] xdev: pointer to xdev + * @param[in] rearm: flag to control the error interrupt arming + * + * @return none + *****************************************************************************/ +void qdma_err_intr_setup(struct xlnx_dma_dev *xdev, u8 rearm); + +/*****************************************************************************/ +/** + * qdma_enable_hw_err() - enable the hw errors + * + * @param[in] xdev: pointer to xdev + * @param[in] hw_err_type: hw error type + * + * @return none + *****************************************************************************/ +void qdma_enable_hw_err(struct xlnx_dma_dev *xdev, u8 hw_err_type); + +/*****************************************************************************/ +/** + * get_intr_ring_index() - get the interrupt ring index based on vector index + * + * @param[in] xdev: pointer to xdev + * @param[in] vector_index: vector index + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int get_intr_ring_index(struct xlnx_dma_dev *xdev, u32 vector_index); + +#ifndef __QDMA_VF__ +#ifdef ERR_DEBUG +/*****************************************************************************/ +/** + * err_stat_handler() - error interrupt handler + * + * @param[in] xdev: pointer to xdev + * + * @return none + *****************************************************************************/ +void err_stat_handler(struct xlnx_dma_dev *xdev); +#endif +#endif + +#endif /* LIBQDMA_QDMA_DEVICE_H_ */ + diff --git a/QDMA/linux-kernel/libqdma/qdma_mbox.c b/QDMA/linux-kernel/libqdma/qdma_mbox.c new file mode 100644 index 0000000..ccfd3a9 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_mbox.c @@ -0,0 +1,762 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include <linux/kernel.h> +#include <linux/version.h> +#include <linux/string.h> +#include <linux/errno.h> +#include <linux/jiffies.h> +#include <linux/timer.h> +#include <linux/delay.h> +#include <linux/sched.h> + +#include "qdma_compat.h" +#include "xdev.h" +#include "qdma_device.h" +#include "qdma_regs.h" +#include "qdma_context.h" +#include "qdma_mbox.h" +#include "qdma_qconf_mgr.h" + +#define MBOX_TIMER_INTERVAL (1) + +/* + * mailbox opcode string + */ +static const char *mbox_op_str[MBOX_OP_MAX] = { + "noop", + "bye", + "hello", + + "fmap", + "csr", + "intr_ctrx", + "qctrx_wrt", + "qctrx_rd", + "qctrx_clr", + "qctrx_inv", + + "qconf", + "rsvd_0x0b", + "rsvd_0x0c", + "rsvd_0x0d", + "rsvd_0x0e", + "rsvd_0x0f", + "rsvd_0x10", + "rsvd_0x11", + + "hello_resp", + "fmap_resp", + "csr_resp", + "intr_ctrx_resp", + "qctrx_wrt_resp", + "qctrx_rd_resp", + "qctrx_clr_resp", + "qctrx_inv_resp", + "qconf_resp", +}; + +/* + * mailbox h/w registers access + */ + +#ifndef __QDMA_VF__ +static inline void mbox_pf_hw_clear_func_ack(struct xlnx_dma_dev *xdev, + u8 func_id) +{ + int idx = func_id / 32; /* bitmask, u32 reg */ + int bit = func_id % 32; + + /* clear the function's ack status */ + __write_reg(xdev, + MBOX_BASE + MBOX_PF_ACK_BASE + idx * MBOX_PF_ACK_STEP, + (1 << bit)); +} + +static void mbox_pf_hw_clear_ack(struct xlnx_dma_dev *xdev) +{ + u32 v = __read_reg(xdev, MBOX_BASE + MBOX_FN_STATUS); + u32 reg = MBOX_BASE + MBOX_PF_ACK_BASE; + int i; + + if ((v & F_MBOX_FN_STATUS_ACK) == 0) + return; + + for (i = 0; i < MBOX_PF_ACK_COUNT; i++, reg += MBOX_PF_ACK_STEP) { + u32 v = __read_reg(xdev, reg); + + if (!v) + continue; + + /* clear the ack status */ + pr_debug("%s, PF_ACK %d, 0x%x.\n", xdev->conf.name, i, v); + __write_reg(xdev, reg, v); + } +} +#endif + +static int mbox_hw_send(struct qdma_mbox *mbox, struct mbox_msg *m) +{ + struct xlnx_dma_dev *xdev = mbox->xdev; + struct mbox_msg_hdr *hdr = &m->hdr; + u32 fn_id = hdr->dst; + int i; + u32 reg = MBOX_OUT_MSG_BASE; + u32 v; + int rv = -EAGAIN; + + pr_debug("%s, dst 0x%x, op 0x%x, %s, status reg 0x%x.\n", + xdev->conf.name, fn_id, m->hdr.op, mbox_op_str[m->hdr.op], + __read_reg(xdev, MBOX_BASE + MBOX_FN_STATUS)); + + spin_lock_bh(&mbox->hw_tx_lock); + +#ifndef __QDMA_VF__ + __write_reg(xdev, MBOX_BASE + MBOX_FN_TARGET, + V_MBOX_FN_TARGET_ID(fn_id)); +#endif + + v = __read_reg(xdev, MBOX_BASE + MBOX_FN_STATUS); + if (v & F_MBOX_FN_STATUS_OUT_MSG) { + pr_debug("%s, func 0x%x, outgoing message busy, 0x%x.\n", + xdev->conf.name, fn_id, v); + goto unlock; + } + + for (i = 0; i < MBOX_MSG_REG_MAX; i++, reg += MBOX_MSG_STEP) + __write_reg(xdev, MBOX_BASE + reg, m->raw[i]); + + pr_debug("%s, send op 0x%x,%s, src 0x%x, dst 0x%x, s 0x%x:\n", + xdev->conf.name, m->hdr.op, mbox_op_str[m->hdr.op], m->hdr.src, + m->hdr.dst, m->hdr.status); +#if 0 + print_hex_dump(KERN_INFO, "mbox snd: ", DUMP_PREFIX_OFFSET, + 16, 1, (void *)m, 64, false); +#endif + +#ifndef __QDMA_VF__ + /* clear the outgoing ack */ + mbox_pf_hw_clear_func_ack(xdev, fn_id); +#endif + + __write_reg(xdev, MBOX_BASE + MBOX_FN_CMD, F_MBOX_FN_CMD_SND); + rv = 0; + +unlock: + spin_unlock_bh(&mbox->hw_tx_lock); + + return rv; +} + +static int mbox_hw_rcv(struct qdma_mbox *mbox, struct mbox_msg *m) +{ + struct xlnx_dma_dev *xdev = mbox->xdev; + u32 reg = MBOX_IN_MSG_BASE; + u32 v = 0; + int all_zero_msg = 1; + int i; + int rv = -EAGAIN; +#ifndef __QDMA_VF__ + unsigned int from_id = 0; +#endif + + spin_lock_bh(&mbox->hw_rx_lock); + + v = __read_reg(xdev, MBOX_BASE + MBOX_FN_STATUS); + +#if 0 + if ((v & MBOX_FN_STATUS_MASK)) + pr_debug("%s, base 0x%x, status 0x%x.\n", + xdev->conf.name, MBOX_BASE, v); +#endif + + if (!(v & M_MBOX_FN_STATUS_IN_MSG)) + goto unlock; + +#ifndef __QDMA_VF__ + from_id = G_MBOX_FN_STATUS_SRC(v); + __write_reg(xdev, MBOX_BASE + MBOX_FN_TARGET, from_id); +#endif + + for (i = 0; i < MBOX_MSG_REG_MAX; i++, reg += MBOX_MSG_STEP) { + m->raw[i] = __read_reg(xdev, MBOX_BASE + reg); + /* if rcv'ed message is all zero, stop and disable the mbox, + * the h/w mbox is not working properly + */ + if (m->raw[i]) + all_zero_msg = 0; + } + if (all_zero_msg) { + rv = -EPIPE; + goto unlock; + } + + pr_debug("%s, rcv op 0x%x, %s, src 0x%x, dst 0x%x, s 0x%x:\n", + xdev->conf.name, m->hdr.op, mbox_op_str[m->hdr.op], m->hdr.src, + m->hdr.dst, m->hdr.status); +#if 0 + print_hex_dump(KERN_INFO, "mbox rcv: ", DUMP_PREFIX_OFFSET, + 16, 1, (void *)m, 64, false); +#endif + +#ifndef __QDMA_VF__ + if (from_id != m->hdr.src) { + pr_debug("%s, src 0x%x -> func_id 0x%x.\n", + xdev->conf.name, m->hdr.src, from_id); + m->hdr.src = from_id; + } +#endif + + /* ack'ed the sender */ + __write_reg(xdev, MBOX_BASE + MBOX_FN_CMD, F_MBOX_FN_CMD_RCV); + rv = 0; + +unlock: + spin_unlock_bh(&mbox->hw_rx_lock); + return rv; +} + +/* + * mbox tx message processing + */ +static void mbox_msg_destroy(struct kref *kref) +{ + struct mbox_msg *m = container_of(kref, struct mbox_msg, refcnt); + + kfree(m); +} + +void __qdma_mbox_msg_free(const char *f, struct mbox_msg *m) +{ + kref_put(&m->refcnt, mbox_msg_destroy); +} + +struct mbox_msg *qdma_mbox_msg_alloc(struct xlnx_dma_dev *xdev, + enum mbox_msg_op op) +{ + struct mbox_msg *m = kmalloc(sizeof(struct mbox_msg), GFP_KERNEL); + struct mbox_msg_hdr *hdr; + + if (!m) { + pr_info("%s OOM, %lu, op 0x%x, %s.\n", + xdev->conf.name, sizeof(struct mbox_msg), op, + mbox_op_str[op]); + return NULL; + } + + memset(m, 0, sizeof(struct mbox_msg)); + + kref_init(&m->refcnt); + qdma_waitq_init(&m->waitq); + + hdr = &m->hdr; + hdr->op = op; + hdr->src = xdev->func_id; +#ifdef __QDMA_VF__ + hdr->dst = xdev->func_id_parent; +#endif + + return m; +} + +void qdma_mbox_msg_cancel(struct xlnx_dma_dev *xdev, struct mbox_msg *m) +{ + struct qdma_mbox *mbox = &xdev->mbox; + + /* delete from mbox list */ + spin_lock_bh(&mbox->list_lock); + list_del(&m->list); + spin_unlock_bh(&mbox->list_lock); +} + +int qdma_mbox_msg_send(struct xlnx_dma_dev *xdev, struct mbox_msg *m, + bool wait_resp, u8 resp_op, unsigned int timeout_ms) +{ + struct qdma_mbox *mbox = &xdev->mbox; + struct mbox_msg_hdr *hdr = &m->hdr; + + + m->wait_resp = wait_resp ? 1 : 0; + m->wait_op = resp_op; + + + if (unlikely(xlnx_dma_device_flag_check(mbox->xdev, XDEV_FLAG_OFFLINE)) + && (hdr->op != MBOX_OP_BYE)) + /* allow BYE message even if the device is going down */ + return -ENODEV; + + /* queue up to ensure order */ + spin_lock_bh(&mbox->list_lock); + list_add_tail(&m->list, &mbox->tx_todo_list); + spin_unlock_bh(&mbox->list_lock); + + /* kick start the tx */ + queue_work(mbox->workq, &mbox->tx_work); + + if (!wait_resp) + return 0; + + qdma_waitq_wait_event_timeout(m->waitq, hdr->op == resp_op, + msecs_to_jiffies(timeout_ms)); + + if (hdr->op != resp_op) { + /* delete from mbox list */ + spin_lock_bh(&mbox->list_lock); + list_del(&m->list); + spin_unlock_bh(&mbox->list_lock); + + pr_err("%s mbox timed out. op 0x%x, %s, timeout %u ms.\n", + xdev->conf.name, hdr->op, mbox_op_str[hdr->op], + timeout_ms); + + return -EPIPE; + } + + if (hdr->status) { + pr_err("%s mbox msg op failed %d. op 0x%x, %s.\n", + xdev->conf.name, hdr->status, hdr->op, + mbox_op_str[hdr->op]); + return hdr->status; + } + + return 0; +} + +/* + * mbox rx message processing + */ +#ifdef __QDMA_VF__ + +void dump_rx_pend_list(struct qdma_mbox *mbox) +{ + struct xlnx_dma_dev *xdev = mbox->xdev; + struct mbox_msg *_msg = NULL, *_tmp = NULL; + + spin_lock_bh(&mbox->list_lock); + list_for_each_entry_safe(_msg, _tmp, &mbox->rx_pend_list, list) { + pr_debug("m_snd(%u) : wait_op/src/dst = %x/%u/%u\n", + xdev->func_id, _msg->wait_op, + _msg->hdr.src, _msg->hdr.dst); + } + spin_unlock_bh(&mbox->list_lock); +} + +static int mbox_rcv_one_msg(struct qdma_mbox *mbox) +{ + struct xlnx_dma_dev *xdev = mbox->xdev; + struct mbox_msg *m_rcv = &mbox->rx; + struct mbox_msg_hdr *hdr_rcv = &m_rcv->hdr; + struct mbox_msg *m_snd = NULL; + + u8 op = hdr_rcv->op; + + if (xdev->func_id == xdev->func_id_parent) { + /* fill in VF's func_id */ + xdev->func_id = hdr_rcv->dst; + xdev->func_id_parent = hdr_rcv->src; + } + + spin_lock_bh(&mbox->list_lock); + if (!list_empty(&mbox->rx_pend_list)) + m_snd = list_first_entry(&mbox->rx_pend_list, struct mbox_msg, + list); + spin_unlock_bh(&mbox->list_lock); + + + if (!m_snd || op != m_snd->wait_op) { + if (op != MBOX_OP_HELLO_RESP) { + pr_err("%s: unexpected op 0x%x, %s.\n", + xdev->conf.name, hdr_rcv->op, + mbox_op_str[hdr_rcv->op]); + if (m_snd) + pr_err("m_snd : wait_op/src/dst = %x/%u/%u\n", + m_snd->wait_op, + m_snd->hdr.src, + m_snd->hdr.dst); + dump_rx_pend_list(mbox); + } + return 0; + } + + /* a matching request is found */ + spin_lock_bh(&mbox->list_lock); + list_del(&m_snd->list); + spin_unlock_bh(&mbox->list_lock); + + memcpy(m_snd->raw, m_rcv->raw, sizeof(u32) * MBOX_MSG_REG_MAX); + /* wake up anyone waiting on the response */ + qdma_waitq_wakeup(&m_snd->waitq); + + return 0; +} + +#else +static int mbox_rcv_one_msg(struct qdma_mbox *mbox) +{ + struct mbox_msg *m = &mbox->rx; + struct mbox_msg_hdr *hdr = &m->hdr; + struct xlnx_dma_dev *xdev = mbox->xdev; + u8 op = hdr->op; + struct mbox_msg *m_resp; + struct mbox_msg_hdr *hdr_resp; + int rv = 0; + struct qconf_entry *entry = NULL; + + pr_debug("%s, src 0x%x op 0x%x,%s.\n", + xdev->conf.name, hdr->src, hdr->op, mbox_op_str[hdr->op]); + + switch (op) { + case MBOX_OP_BYE: + { + unsigned int qbase = 0; + unsigned int qmax = 0; + + hw_read_fmap(xdev, hdr->src, &qbase, &qmax); + hw_init_qctxt_memory(xdev, qbase, qmax); + + hw_set_fmap(xdev, hdr->src, 0, 0); + xdev_sriov_vf_offline(xdev, hdr->src); + + pr_debug("%s: clear 0x%x FMAP, Q 0x%x+0x%x.\n", + xdev->conf.name, hdr->src, qbase, qmax); + + xdev_destroy_qconf(PCI_TYPE_VF, hdr->src); + /* no response needed */ + return 0; + } + break; + case MBOX_OP_HELLO: + { + xdev_sriov_vf_online(xdev, hdr->src); + entry = xdev_create_qconf(PCI_TYPE_VF, hdr->src); + if (entry) { + int rsp_offset = + sizeof(struct mbox_msg_hdr)/sizeof(u32); + m->raw[rsp_offset] = entry->qmax; + m->raw[rsp_offset + 1] = entry->qbase; + pr_debug("qmax = %u qbase = %u m_resp->raw[%d] = %u, m_resp->raw[%d] = %u\n", + entry->qmax, entry->qbase, + rsp_offset, m->raw[rsp_offset], + rsp_offset + 1, m->raw[rsp_offset + 1]); + } + } + break; + case MBOX_OP_FMAP: + { + struct mbox_msg_fmap *fmap = &m->fmap; + int ret = xdev_set_qmax(PCI_TYPE_VF, hdr->src, + fmap->qmax, &fmap->qbase); + if (ret < 0) { + rv = ret; + pr_err("VF qmax set failed %s: set 0x%x QCONF, Q 0x%x+0x%x. ret = %d\n", + xdev->conf.name, hdr->src, + fmap->qbase, fmap->qmax, ret); + } else { + pr_debug("VF qmax set success %s: set 0x%x QCONF, Q 0x%x+0x%x.\n", + xdev->conf.name, hdr->src, + fmap->qbase, fmap->qmax); + + pr_debug("%s: set 0x%x FMAP, Q 0x%x+0x%x.\n", + xdev->conf.name, hdr->src, fmap->qbase, + fmap->qmax); + + hw_set_fmap(xdev, hdr->src, fmap->qbase, fmap->qmax); + + xdev_sriov_vf_fmap(xdev, hdr->src, fmap->qbase, + fmap->qmax); + } + } + break; + case MBOX_OP_QCONF: + { + struct mbox_msg_fmap *fmap = &m->fmap; + + int ret = xdev_set_qmax(PCI_TYPE_VF, hdr->src, + fmap->qmax, &fmap->qbase); + if (ret < 0) { + rv = ret; + pr_err("VF qmax set failed %s: set 0x%x QCONF, Q 0x%x+0x%x.\n", + xdev->conf.name, hdr->src, + fmap->qbase, fmap->qmax); + } else { + pr_debug("VF qmax set success %s: set 0x%x QCONF, Q 0x%x+0x%x.\n", + xdev->conf.name, hdr->src, + fmap->qbase, fmap->qmax); + } + } + break; + + case MBOX_OP_CSR: + { + struct mbox_msg_csr *csr = &m->csr; + + rv = qdma_csr_read(xdev, &csr->csr_info, 0); + } + break; + case MBOX_OP_INTR_CTXT: + { + struct mbox_msg_intr_ctxt *ictxt = &m->intr_ctxt; + + pr_debug("%s, rcv 0x%x INTR_CTXT, programing the context\n", + xdev->conf.name, hdr->src); + rv = qdma_prog_intr_context(xdev, ictxt); + } + break; + case MBOX_OP_QCTXT_CLR: + { + struct mbox_msg_qctxt *qctxt = &m->qctxt; + + rv = qdma_descq_context_clear(xdev, qctxt->qid, + qctxt->st, qctxt->c2h, 0); + } + break; + case MBOX_OP_QCTXT_RD: + { + struct mbox_msg_qctxt *qctxt = &m->qctxt; + + rv = qdma_descq_context_read(xdev, qctxt->qid, + qctxt->st, qctxt->c2h, + &qctxt->context); + } + break; + case MBOX_OP_QCTXT_WRT: + { + struct mbox_msg_qctxt *qctxt = &m->qctxt; + + pr_debug("%s, rcv 0x%x QCTXT_WRT, qid 0x%x.\n", + xdev->conf.name, hdr->src, qctxt->qid); + + /* always clear the context first */ + rv = qdma_descq_context_clear(xdev, qctxt->qid, + qctxt->st, qctxt->c2h, 1); + if (rv < 0) { + pr_err("%s, 0x%x QCTXT_WRT, qid 0x%x, clr failed %d.\n", + xdev->conf.name, hdr->src, qctxt->qid, + rv); + break; + } + + rv = qdma_descq_context_program(xdev, qctxt->qid, + qctxt->st, qctxt->c2h, + &qctxt->context); + } + break; + default: + pr_info("%s: rcv mbox UNKNOWN op 0x%x.\n", + xdev->conf.name, hdr->op); + print_hex_dump(KERN_INFO, "mbox rcv: ", + DUMP_PREFIX_OFFSET, 16, 1, (void *)hdr, + 64, false); + return -EINVAL; + break; + } + + /* respond */ + m_resp = qdma_mbox_msg_alloc(xdev, op); + if (!m_resp) + return -ENOMEM; + + hdr_resp = &m_resp->hdr; + + memcpy(m_resp->raw, m->raw, sizeof(u32) * MBOX_MSG_REG_MAX); + + hdr_resp->op |= MBOX_MSG_OP_PF_MASK; + hdr_resp->dst = hdr->src; + hdr_resp->src = xdev->func_id; + + hdr_resp->status = rv ? -1 : 0; + + qdma_mbox_msg_send(xdev, m_resp, 0, 0, 0); + + return rv; +} +#endif + +/* + * tx & rx workqueue handler + */ +static void mbox_tx_work(struct work_struct *work) +{ + struct qdma_mbox *mbox = container_of(work, struct qdma_mbox, tx_work); + + spin_lock_bh(&mbox->list_lock); + while (!list_empty(&mbox->tx_todo_list)) { + struct mbox_msg *m = list_first_entry(&mbox->tx_todo_list, + struct mbox_msg, list); + if (mbox_hw_send(mbox, m) == 0) { + /* message sent */ + list_del(&m->list); + + /* response needed */ + if (m->wait_resp) + list_add_tail(&m->list, &mbox->rx_pend_list); + else + qdma_mbox_msg_free(m); + } else + break; + } + spin_unlock_bh(&mbox->list_lock); +} + +static inline void mbox_timer_stop(struct qdma_mbox *mbox) +{ + del_timer(&mbox->timer); +} + +static inline void mbox_timer_start(struct qdma_mbox *mbox) +{ + struct timer_list *timer = &mbox->timer; + + qdma_timer_start(timer, MBOX_TIMER_INTERVAL); +} + +static void mbox_rx_work(struct work_struct *work) +{ + struct qdma_mbox *mbox = container_of(work, struct qdma_mbox, rx_work); + struct xlnx_dma_dev *xdev = mbox->xdev; + struct mbox_msg *m = &mbox->rx; + int rv; + +#ifndef __QDMA_VF__ + /* clear the ack status */ + mbox_pf_hw_clear_ack(mbox->xdev); +#endif + + rv = mbox_hw_rcv(mbox, m); + while (rv == 0) { + if (unlikely(xlnx_dma_device_flag_check(xdev, + XDEV_FLAG_OFFLINE))) + break; + else if (mbox_rcv_one_msg(mbox) == -EINVAL) + break; + + rv = mbox_hw_rcv(mbox, m); + } + + if (rv == -EPIPE) { + pr_info("%s: rcv'ed all zero mbox msg, status 0x%x=0x%x. disable mbox processing.\n", + xdev->conf.name, MBOX_BASE + MBOX_FN_STATUS, + __read_reg(xdev, MBOX_BASE + MBOX_FN_STATUS)); + mbox_timer_stop(mbox); + } else if (xlnx_dma_device_flag_check(xdev, XDEV_FLAG_OFFLINE)) + mbox_timer_stop(mbox); + else + mbox_timer_start(mbox); +} + +/* + * non-interrupt mode: use timer for periodic checking of new messages + */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) +static void mbox_rx_timer_handler(struct timer_list *t) +#else +static void mbox_rx_timer_handler(unsigned long arg) +#endif +{ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) + struct qdma_mbox *mbox = from_timer(mbox, t, timer); +#else + struct qdma_mbox *mbox = (struct qdma_mbox *)arg; +#endif + + queue_work(mbox->workq, &mbox->rx_work); +} + +/* + * mailbox initialization and cleanup + */ +void qdma_mbox_stop(struct xlnx_dma_dev *xdev) +{ + mbox_timer_stop(&xdev->mbox); +} + +void qdma_mbox_start(struct xlnx_dma_dev *xdev) +{ + mbox_timer_start(&xdev->mbox); +} + +void qdma_mbox_cleanup(struct xlnx_dma_dev *xdev) +{ + struct qdma_mbox *mbox = &xdev->mbox; + + mbox_timer_stop(mbox); + + if (mbox->workq) { + flush_workqueue(mbox->workq); + destroy_workqueue(mbox->workq); + } +} + +int qdma_mbox_init(struct xlnx_dma_dev *xdev) +{ + struct qdma_mbox *mbox = &xdev->mbox; + struct timer_list *timer = &mbox->timer; + struct mbox_msg m; + char name[80]; + + /* ack any received messages in the Q */ +#ifdef __QDMA_VF__ + u32 v; + + v = __read_reg(xdev, MBOX_BASE + MBOX_FN_STATUS); + if (!(v & M_MBOX_FN_STATUS_IN_MSG)) + __write_reg(xdev, MBOX_BASE + MBOX_FN_CMD, F_MBOX_FN_CMD_RCV); +#elif defined(CONFIG_PCI_IOV) + mbox_pf_hw_clear_ack(xdev); +#endif + + mbox->xdev = xdev; + + spin_lock_init(&mbox->lock); + spin_lock_init(&mbox->list_lock); + INIT_LIST_HEAD(&mbox->tx_todo_list); + INIT_LIST_HEAD(&mbox->rx_pend_list); + INIT_WORK(&mbox->tx_work, mbox_tx_work); + INIT_WORK(&mbox->rx_work, mbox_rx_work); + + snprintf(name, 80, "%s_mbox_wq", xdev->conf.name); + mbox->workq = create_singlethread_workqueue(name); + + if (!mbox->workq) { + pr_info("%s OOM, mbox workqueue.\n", xdev->conf.name); + goto cleanup; + } + + /* read & discard whatever in the incoming message buffer */ +#ifdef __QDMA_VF__ + mbox_hw_rcv(mbox, &m); +#else +{ + int i; + + for (i = 0; i < 256; i++) + mbox_hw_rcv(mbox, &m); +} +#endif + + qdma_timer_setup(timer, mbox_rx_timer_handler, mbox); + + return 0; + +cleanup: + qdma_mbox_cleanup(xdev); + return -ENOMEM; +} diff --git a/QDMA/linux-kernel/libqdma/qdma_mbox.h b/QDMA/linux-kernel/libqdma/qdma_mbox.h new file mode 100644 index 0000000..fbd2035 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_mbox.h @@ -0,0 +1,415 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __QDMA_MBOX_H__ +#define __QDMA_MBOX_H__ + +#include "qdma_compat.h" +#include "qdma_device.h" + +/** + * @file + * @brief This file contains the declarations for qdma mailbox apis + * + */ +/** + * mailbox registers + */ +#ifdef __QDMA_VF__ +#define MBOX_BASE 0x1000 +#else +#define MBOX_BASE 0x2400 +#endif + +/** mailbox function status */ +#define MBOX_FN_STATUS 0x0 +/** shift value for mailbox function status in msg */ +#define S_MBOX_FN_STATUS_IN_MSG 0 +/** mask value for mailbox function status in msg*/ +#define M_MBOX_FN_STATUS_IN_MSG 0x1 +/** face value for mailbox function status in msg */ +#define F_MBOX_FN_STATUS_IN_MSG 0x1 + +/** shift value for out msg */ +#define S_MBOX_FN_STATUS_OUT_MSG 1 +/** mask value for out msg */ +#define M_MBOX_FN_STATUS_OUT_MSG 0x1 +/** face value for out msg */ +#define F_MBOX_FN_STATUS_OUT_MSG (1 << S_MBOX_FN_STATUS_OUT_MSG) +/** shift value for status ack */ +#define S_MBOX_FN_STATUS_ACK 2 /* PF only, ack status */ +/** mask value for status ack */ +#define M_MBOX_FN_STATUS_ACK 0x1 +/** face value for status ack */ +#define F_MBOX_FN_STATUS_ACK (1 << S_MBOX_FN_STATUS_ACK) +/** shift value for status src */ +#define S_MBOX_FN_STATUS_SRC 4 /* PF only, source func.*/ +/** mask value for status src */ +#define M_MBOX_FN_STATUS_SRC 0xFFF +/** face value for status src */ +#define G_MBOX_FN_STATUS_SRC(x) \ + (((x) >> S_MBOX_FN_STATUS_SRC) & M_MBOX_FN_STATUS_SRC) +/** face value for mailbox function status */ +#define MBOX_FN_STATUS_MASK \ + (F_MBOX_FN_STATUS_IN_MSG | \ + F_MBOX_FN_STATUS_OUT_MSG | \ + F_MBOX_FN_STATUS_ACK) + +/** mailbox function commands register */ +#define MBOX_FN_CMD 0x4 +/** shift value for send command */ +#define S_MBOX_FN_CMD_SND 0 +/** mask value for send command */ +#define M_MBOX_FN_CMD_SND 0x1 +/** face value for send command */ +#define F_MBOX_FN_CMD_SND (1 << S_MBOX_FN_CMD_SND) +/** shift value for receive command */ +#define S_MBOX_FN_CMD_RCV 1 +/** mask value for receive command */ +#define M_MBOX_FN_CMD_RCV 0x1 +/** face value for receive command */ +#define F_MBOX_FN_CMD_RCV (1 << S_MBOX_FN_CMD_RCV) +/** shift value for vf reset */ +#define S_MBOX_FN_CMD_VF_RESET 3 /* TBD PF only: reset VF */ +/** mask value for vf reset */ +#define M_MBOX_FN_CMD_VF_RESET 0x1 +/** mailbox isr vector register */ +#define MBOX_ISR_VEC 0x8 +/** shift value for isr vector */ +#define S_MBOX_ISR_VEC 0 +/** mask value for isr vector */ +#define M_MBOX_ISR_VEC 0x1F +/** face value for isr vector */ +#define V_MBOX_ISR_VEC(x) ((x) & M_MBOX_ISR_VEC) +/** mailbox FN target register */ +#define MBOX_FN_TARGET 0xC +/** shift value for FN target id */ +#define S_MBOX_FN_TARGET_ID 0 +/** mask value for FN target id */ +#define M_MBOX_FN_TARGET_ID 0xFFF +/** face value for FN target id */ +#define V_MBOX_FN_TARGET_ID(x) ((x) & M_MBOX_FN_TARGET_ID) +/** mailbox isr enable register */ +#define MBOX_ISR_EN 0x10 +/** shift value for isr enable */ +#define S_MBOX_ISR_EN 0 +/** mask value for isr enable */ +#define M_MBOX_ISR_EN 0x1 +/** face value for isr enable */ +#define F_MBOX_ISR_EN 0x1 +/** pf acknowledge base */ +#define MBOX_PF_ACK_BASE 0x20 +/** pf acknowledge step */ +#define MBOX_PF_ACK_STEP 4 +/** pf acknowledge count */ +#define MBOX_PF_ACK_COUNT 8 +/** mailbox incoming msg base */ +#define MBOX_IN_MSG_BASE 0x800 +/** mailbox outgoing msg base */ +#define MBOX_OUT_MSG_BASE 0xc00 +/** mailbox msg step */ +#define MBOX_MSG_STEP 4 +/** mailbox register max */ +#define MBOX_MSG_REG_MAX 32 + +/** + * @struct - hw_descq_context + * @brief queue context information + */ +struct hw_descq_context { + /** software descriptor context data: 4 data words */ + u32 sw[5]; + /** prefetch context data: 2 data words */ + u32 prefetch[2]; + /** queue completion context data: 4 data words */ + u32 cmpt[5]; + /** hardware descriptor context data: 2 data words */ + u32 hw[2]; /* for retrieve only */ + /** C2H or H2C context: 1 data word */ + u32 cr[1]; /* for retrieve only */ + /** FMAP context data */ + u32 fmap[2]; +}; + +/** + * @struct - stm_descq_context + * @brief queue stm information + */ +struct stm_descq_context { + /** STM data: 6 data words */ + u32 stm[6]; +}; + +/** + * mailbox messages + * + * NOTE: make sure the total message length is <= 128 bytes: + * mbox_msg_hdr: 4 bytes + * body: <= (128 - hdr) bytes + * + */ + +/** + * mbox_msg_op - mailbox messages opcode: 1 ~ 0x1F + */ +#define MBOX_MSG_OP_PF_MASK 0x10 +enum mbox_msg_op { + /* 0x00 */ MBOX_OP_NOOP, + /** VF -> PF, request */ + /* 0x01 */ MBOX_OP_BYE, /** vf offline */ + /* 0x02 */ MBOX_OP_HELLO, /** vf online */ + + /* 0x03 */ MBOX_OP_FMAP, /** FMAP programming request */ + /* 0x04 */ MBOX_OP_CSR, /** global CSR registers request */ + /* 0x05 */ MBOX_OP_INTR_CTXT, /** interrupt context programming */ + /* 0x06 */ MBOX_OP_QCTXT_WRT, /** queue context programming */ + /* 0x07 */ MBOX_OP_QCTXT_RD, /** queue context read */ + /* 0x08 */ MBOX_OP_QCTXT_CLR, /** queue context clear */ + /* 0x09 */ MBOX_OP_QCTXT_INV, /** queue context invalidate */ + /* 0x0a */ MBOX_OP_QCONF, /** queue context invalidate */ + + /** PF->VF: response */ + /* 0x12 */ MBOX_OP_HELLO_RESP = 0x12,/** vf online */ + /* 0x13 */ MBOX_OP_FMAP_RESP, /** FMAP programming */ + /* 0x14 */ MBOX_OP_CSR_RESP, /** global CSR read */ + /* 0x15 */ MBOX_OP_INTR_CTXT_RESP, /** interrupt context programming */ + /* 0x16 */ MBOX_OP_QCTXT_WRT_RESP, /** queue context programming */ + /* 0x17 */ MBOX_OP_QCTXT_RD_RESP, /** queue context read */ + /* 0x18 */ MBOX_OP_QCTXT_CLR_RESP, /** queue context clear */ + /* 0x19 */ MBOX_OP_QCTXT_INV_RESP, /** queue context invalidate */ + /* 0x1a */ MBOX_OP_QCONF_RESP, /** queue context invalidate */ + + MBOX_OP_MAX +}; + +#define mbox_invalidate_msg(m) { (m)->hdr.op = MBOX_OP_NOOP; } + +/** + * @struct - mbox_msg_hdr + * @brief mailbox message header + */ +struct mbox_msg_hdr { + u8 op; /** opcode */ + u16 src; /** src function */ + u16 dst; /** dst function */ + char status; /** execution status */ +}; + +/** + * @struct - mbox_msg_fmap + * @brief FMAP programming command + */ +struct mbox_msg_fmap { + /** mailbox message header */ + struct mbox_msg_hdr hdr; + /** start queue number in the queue range */ + unsigned int qbase; + /** max queue number in the queue range(0-2k) */ + unsigned int qmax; +}; + +/** + * @struct - mbox_msg_csr + * @brief mailbox csr reading message + */ +struct mbox_msg_csr { + /** mailbox message header*/ + struct mbox_msg_hdr hdr; + struct qdma_csr_info csr_info; +}; + +/** + * @struct - mbox_msg_intr_ctxt + * @brief interrupt context mailbox message + */ + + +struct mbox_msg_intr_ctxt { + /** mailbox message header*/ + struct mbox_msg_hdr hdr; + /** flag to indicate clear interrupt context*/ + u16 clear:1; + /** filler variable*/ + u16 filler:15; + /** start vector number*/ + u8 vec_base; /* 0 ~ 7 */ + /** number of intr context rings be assigned for virtual function*/ + u8 num_rings; /* 1 ~ 8 */ + /** ring index associated for each vector */ + u32 ring_index_list[QDMA_NUM_DATA_VEC_FOR_INTR_CXT]; + /** interrupt context data for all rings*/ + u32 w[QDMA_NUM_DATA_VEC_FOR_INTR_CXT * 3]; +}; + +/** + * @struct - mbox_msg_qctxt + * @brief queue context mailbox message header + */ +struct mbox_msg_qctxt { + /** mailbox message header*/ + struct mbox_msg_hdr hdr; + /** flag to indicate to clear the queue context */ + u8 clear:1; + /** flag to indicate to verify the queue context */ + u8 verify:1; + /** queue direction */ + u8 c2h:1; + /** queue mode */ + u8 st:1; + /** flag to indicate to enable the interrupts */ + u8 intr_en:1; + /** interrupt id */ + u8 intr_id; + /** queue id */ + unsigned short qid; + /** complete hw context */ + struct hw_descq_context context; +}; + +/** + * @struct - mbox_msg + * @brief mailbox message + */ +struct mbox_msg { + struct work_struct work; /** workqueue item */ + struct list_head list; /** message list */ + qdma_wait_queue waitq; + struct kref refcnt; + u8 wait_resp; + u8 wait_op; + u8 rsvd[2]; + + union { + /** mailbox message header*/ + struct mbox_msg_hdr hdr; + /** fmap mailbox message */ + struct mbox_msg_fmap fmap; + /** interrupt context mailbox message */ + struct mbox_msg_intr_ctxt intr_ctxt; + /** queue context mailbox message */ + struct mbox_msg_qctxt qctxt; + /** global csr mailbox message */ + struct mbox_msg_csr csr; + /** buffer to hold raw data between pf and vf */ + u32 raw[MBOX_MSG_REG_MAX]; + }; +}; + +/** + * forward declaration of xlnx_dma_dev + */ +struct xlnx_dma_dev; +/** + * @struct - qdma_mbox book keeping + * @brief mailbox book keeping structure + */ +struct qdma_mbox { + /** common lock */ + spinlock_t lock; + /** tx lock */ + spinlock_t hw_tx_lock; + /** rx lock */ + spinlock_t hw_rx_lock; + /** work queue */ + struct workqueue_struct *workq; + /** pointer to device data */ + struct xlnx_dma_dev *xdev; + + /** tx work_struct to pass data to tx work queue */ + struct work_struct tx_work; + /** rx work_struct to pass data to rx work queue */ + struct work_struct rx_work; + /** mbox rx message */ + struct mbox_msg rx; + /** list lock */ + spinlock_t list_lock; + /** list of messages waiting to be sent */ + struct list_head tx_todo_list; + /** list of messages waiting for response */ + struct list_head rx_pend_list; + + /** timer list */ + struct timer_list timer; + +}; + +#define QDMA_MBOX_MSG_TIMEOUT_MS 10000 /* 10 sec*/ +/*****************************************************************************/ +/** + * qdma_mbox_init() - initialize qdma mailbox + * + * @param xdev: pointer to xlnx_dma_dev + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_mbox_init(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * qdma_mbox_cleanup() - cleanup resources of qdma mailbox + * qdma_mbox_stop() - stop mailbox processing + * qdma_mbox_start() - start mailbox processing + * + * @param xdev: pointer to xlnx_dma_dev + * + * @return none + *****************************************************************************/ +void qdma_mbox_cleanup(struct xlnx_dma_dev *xdev); +void qdma_mbox_stop(struct xlnx_dma_dev *xdev); +void qdma_mbox_start(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * qdma_mbox_msg_send() - handler to send a mailbox message + * + * @param xdev: pointer to xlnx_dma_dev + * @param m: mailbox message + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_mbox_msg_send(struct xlnx_dma_dev *xdev, struct mbox_msg *m, + bool wait_resp, u8 resp_op, unsigned int timeout_ms); + +/*****************************************************************************/ +/** + * qdma_mbox_msg_alloc() - allocate a mailbox message + * + * @param xdev: pointer to xlnx_dma_dev + * + * @return 0: success + * @return NULL: failure + *****************************************************************************/ +struct mbox_msg *qdma_mbox_msg_alloc(struct xlnx_dma_dev *xdev, + enum mbox_msg_op op); + +/*****************************************************************************/ +/** + * __qdma_mbox_msg_free() - free the mailbox message + * + * @param fname: function name + * @param m: mailbox message + * + * @return none + *****************************************************************************/ +void __qdma_mbox_msg_free(const char *fname, struct mbox_msg *m); +#define qdma_mbox_msg_free(m) __qdma_mbox_msg_free(__func__, m) + +#endif /* #ifndef __QDMA_MBOX_H__ */ diff --git a/QDMA/linux-kernel/libqdma/qdma_qconf_mgr.c b/QDMA/linux-kernel/libqdma/qdma_qconf_mgr.c new file mode 100644 index 0000000..e58af8c --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_qconf_mgr.c @@ -0,0 +1,608 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#include <linux/gfp.h> +#include <linux/errno.h> +#include <linux/types.h> +#include <linux/string.h> +#include <linux/slab.h> +#include "libqdma_config.h" +#include "qdma_qconf_mgr.h" + +/** for holding the Q configuration list */ +static struct qconf_entry_head qconf_list; +/** mutex for protecting the qconf_list */ +static DEFINE_MUTEX(qconf_mutex); + +/* insert new to the position specified by previous */ +static inline void list_insert(struct list_head *new, struct list_head *prev) +{ + new->next = prev; + new->prev = prev->prev; + prev->prev->next = new; + prev->prev = new; +} + +/*****************************************************************************/ +/** + * xdev_dump_qconf- dump the q configuration + * @param[in] xdev: device type to be used PF/VF + * + * @return + *****************************************************************************/ +void xdev_dump_qconf(u32 xdev) +{ + struct qconf_entry *_qconf = NULL; + struct qconf_entry *_tmp = NULL; + struct list_head *listhead; + const char *list_str[][8] = {{"vf"}, {"pf"}, {"vf-free"} }; + int end = 0; + + if (xdev == PCI_TYPE_PF) + listhead = &qconf_list.pf_list; + else + listhead = &qconf_list.vf_list; + + pr_info("Dumping %s list\n", *list_str[xdev]); + + list_for_each_entry_safe(_qconf, _tmp, listhead, list_head) { + end = ((int)(_qconf->qbase + _qconf->qmax)) - 1; + if (end < 0) + end = 0; + pr_info("func_id = %u, qmax = %u, qbase = %u~%u, cfg_state = %c\n", + _qconf->func_id, _qconf->qmax, _qconf->qbase, + end, + _qconf->cfg_state ? 'c' : 'i'); + } +} + +/*****************************************************************************/ +/** + * xdev_dump_freelist - dump the freelist + * + * @return + *****************************************************************************/ +void xdev_dump_freelist(void) +{ + struct free_entry *_free = NULL; + struct free_entry *_tmp = NULL; + struct list_head *listhead = &qconf_list.vf_free_list; + + pr_info("Dumping free list\n"); + + list_for_each_entry_safe(_free, _tmp, listhead, list_head) { + pr_info("free-cnt = %u, qbase-next = %d\n", + _free->free, _free->next_qbase); + } +} + +static struct qconf_entry *find_func_qentry(u32 xdev, u8 func_id) +{ + struct qconf_entry *_qconf = NULL; + struct qconf_entry *_tmp = NULL; + struct list_head *listhead = &qconf_list.vf_list; + + if (xdev) + listhead = &qconf_list.pf_list; + + list_for_each_entry_safe(_qconf, _tmp, listhead, list_head) { + if (_qconf->func_id == func_id) + return _qconf; + } + + return NULL; +} + +struct free_entry *create_free_entry(u32 qmax, u32 qbase) +{ + struct free_entry *_free_entry = NULL; + + _free_entry = (struct free_entry *)kzalloc(sizeof(struct free_entry), + GFP_KERNEL); + if (!_free_entry) + return _free_entry; + _free_entry->free = qmax; + _free_entry->next_qbase = qbase; + + return _free_entry; +} + +static void cleanup_free_list(void) +{ + struct free_entry *_free_entry = NULL; + struct free_entry *_free_tmp = NULL; + + mutex_lock(&qconf_mutex); + list_for_each_entry_safe(_free_entry, _free_tmp, + &qconf_list.vf_free_list, list_head) { + list_del(&_free_entry->list_head); + kfree(_free_entry); + } + mutex_unlock(&qconf_mutex); + +} + +/** initialize the free list */ +static int init_vf_free_list(void) +{ + struct free_entry *_free_entry = NULL; + u32 free = 0; + u32 next_qbase = 0; + + free = qconf_list.vf_qmax; + next_qbase = qconf_list.vf_qbase; + + cleanup_free_list(); + + _free_entry = create_free_entry(free, next_qbase); + mutex_lock(&qconf_mutex); + list_add_tail(&_free_entry->list_head, &qconf_list.vf_free_list); + mutex_unlock(&qconf_mutex); + + return 0; +} + +/** finds a first fit to accomodate the qmax. + * This function returns the qbase of the requested qmax + * if found + */ +static int find_first_fit(u32 qmax, u32 *qbase) +{ + struct free_entry *_free_entry = NULL; + struct free_entry *_tmp = NULL; + int err = 0; + u8 found = 0; + + pr_debug("Get first fit %u\n", qmax); + mutex_lock(&qconf_mutex); + list_for_each_entry_safe(_free_entry, _tmp, + &qconf_list.vf_free_list, list_head) { + if (_free_entry->free >= qmax) { + *qbase = _free_entry->next_qbase; + _free_entry->free -= qmax; + _free_entry->next_qbase += qmax; + /** reduce cfgd_free */ + qconf_list.qcnt_cfgd_free -= qmax; + found = 1; + break; + } + } + mutex_unlock(&qconf_mutex); + + if (!found) { + pr_warn("No free slot found free/qmax = %u/%u\n", + _free_entry->free, qmax); + err = -EINVAL; + } + + return err; +} + +/** To defragment the free list if any. if it finds a continous + * range of qbases, merge both the entries into one. + */ +static int defrag_free_list(void) +{ + struct free_entry *_free = NULL; + struct free_entry *_tmp = NULL; + struct free_entry *_prev = NULL; + struct list_head *listhead = &qconf_list.vf_free_list; + int defrag_cnt = 0; + + pr_debug("Defragmenting free list\n"); + mutex_lock(&qconf_mutex); + list_for_each_entry_safe(_free, _tmp, listhead, list_head) { + if (_prev) { + /** is it a continous range?? */ + if ((_prev->next_qbase + _prev->free) + == _free->next_qbase) { + _free->free += _prev->free; + _free->next_qbase = _prev->next_qbase; + list_del(&_prev->list_head); + kfree(_prev); + defrag_cnt++; + } + } + _prev = _free; + } + mutex_unlock(&qconf_mutex); + + if (defrag_cnt) + pr_debug("Defragmented %d entries\n", defrag_cnt); + + return defrag_cnt; +} + +/** + * function to update the free list. First find the place to + * fit the free entry by comparing the qbases. Once found, + * insert the new free entry and insert it before the found one + */ +static int update_free_list(struct qconf_entry *entry) +{ + struct free_entry *_free_entry = NULL; + struct free_entry *_free_new = NULL; + struct free_entry *_tmp = NULL; + struct list_head *listhead = &qconf_list.vf_free_list; + + /** consider only user configured values */ + if (entry->cfg_state != Q_CONFIGURED) + return 0; + + mutex_lock(&qconf_mutex); + list_for_each_entry_safe(_free_entry, _tmp, listhead, list_head) { + /** add it before the next bigger qbase */ + if (entry->qbase < _free_entry->next_qbase) { + _free_new = create_free_entry(entry->qmax, + entry->qbase); + list_insert(&_free_new->list_head, + &_free_entry->list_head); + /** update the cfgd_free */ + qconf_list.qcnt_cfgd_free += entry->qmax; + break; + } + } + mutex_unlock(&qconf_mutex); + + defrag_free_list(); + + return 0; +} + +/** grab from initial qconf, make qmax=0, qbase=0 cfg_state as zeroed*/ +static int grab_from_init_qconf(struct list_head *listhead, u8 func_id) +{ + struct qconf_entry *_qconf = NULL; + struct qconf_entry *_tmp = NULL; + int grab_cnt = 0; + int ret = 0; + + mutex_lock(&qconf_mutex); + if (qconf_list.qcnt_init_used > qconf_list.qcnt_cfgd_free) { + grab_cnt = qconf_list.qcnt_init_used + - qconf_list.qcnt_cfgd_free; + qconf_list.qcnt_init_used -= grab_cnt; + } + + ret = grab_cnt; + + pr_debug("grab_cnt = %u init_used = %u cfgd_free = %u\n", + grab_cnt, qconf_list.qcnt_init_used, + qconf_list.qcnt_cfgd_free); + + if (grab_cnt) { + list_for_each_entry_safe(_qconf, _tmp, listhead, list_head) { + /** already grabbed */ + if (!_qconf->qmax || (_qconf->cfg_state != Q_INITIAL)) + continue; + if (!grab_cnt--) + break; + _qconf->qmax = 0; + _qconf->qbase = 0; + /** if grabbing from the same func_id, + * reduce the grab count by 1 + */ + if (unlikely(_qconf->func_id == func_id)) + ret -= 1; + } + } + mutex_unlock(&qconf_mutex); + + return ret; +} + +/*****************************************************************************/ +/** + * xdev_set_qmax() - sets the qmax value of VF device from virtfn/qdma/qmax + * + * @param[in] xdev: list type to be used PF/VF + * @param[in] func_id: func id to set the qmax + * @param[in] qmax: qmax value to set + * @param[out] qbase: pointer to return qbase value + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xdev_set_qmax(u32 xdev, u8 func_id, u32 qmax, u32 *qbase) +{ + struct qconf_entry *func_entry = NULL; + struct list_head *listhead = &qconf_list.vf_list; + u32 num_qs_free = qconf_list.qcnt_cfgd_free; + int err = 0; + u32 _qbase = 0; + int grab_cnt = 0; + u32 cur_qbase = 0; + u32 cur_qmax = 0; + + pr_debug("Setting qmax func_id = %u, qmax = %u\n", func_id, qmax); + + if (xdev) + listhead = &qconf_list.pf_list; + + func_entry = find_func_qentry(xdev, func_id); + if (!func_entry) { + pr_err("Set qmax request on non available device %u\n", + func_id); + return -EINVAL; + } + cur_qmax = func_entry->qmax; + cur_qbase = func_entry->qbase; + if (func_entry->cfg_state == Q_CONFIGURED) { + update_free_list(func_entry); + num_qs_free = qconf_list.qcnt_cfgd_free; + } + + if (qmax > num_qs_free) { + pr_warn("No free qs!, requested/free = %u/%u\n", + qmax, num_qs_free); + return -EINVAL; + } + + func_entry->qbase = 0; + err = find_first_fit(qmax, &_qbase); + if (err < 0) { + if (qmax) + pr_info("Not able to find a fit for qmax = %u\n", + qmax); + else + pr_info("0 q size, func_id = %u\n", func_id); + + if (func_entry->cfg_state == Q_CONFIGURED) { + /** if failed to get a qbase, revert it to old values */ + func_entry->qmax = cur_qmax; + func_entry->qbase = cur_qbase; + } + + return err; + } + + func_entry->cfg_state = Q_CONFIGURED; + func_entry->qmax = qmax; + func_entry->qbase = _qbase; + *qbase = _qbase; + mutex_lock(&qconf_mutex); + list_del(&func_entry->list_head); + list_add_tail(&func_entry->list_head, listhead); + mutex_unlock(&qconf_mutex); + grab_cnt = grab_from_init_qconf(listhead, func_id); + + return grab_cnt; +} + +/*****************************************************************************/ +/** + * xdev_del_qconf - delete the q configuration entry of funcid + * + * @param[in] xdev: device type to be used PF/VF + * @param[in] func_id: func id to set the qmax + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xdev_del_qconf(u32 xdev, u8 func_id) +{ + struct qconf_entry *_qconf = NULL; + + _qconf = find_func_qentry(xdev, func_id); + if (_qconf) + _qconf->cfg_state = Q_INITIAL; + + return 0; +} + +/*****************************************************************************/ +/** + * xdev_create_qconf - add the q configuration entry of funcid during hello + * + * @param[in] xdev: list type to be used PF/VF + * @param[in] func_id: func id to set the qmax + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +struct qconf_entry *xdev_create_qconf(u32 xdev, u8 func_id) +{ + struct qconf_entry *_qconf = NULL; + struct list_head *listhead = &qconf_list.vf_list; + + pr_debug("Creating func_id = %u\n", func_id); + if (xdev) + listhead = &qconf_list.pf_list; + + _qconf = (struct qconf_entry *)kzalloc(sizeof(struct qconf_entry), + GFP_KERNEL); + if (!_qconf) + return _qconf; + + _qconf->func_id = func_id; + _qconf->cfg_state = Q_INITIAL; + if (qconf_list.qcnt_cfgd_free) { + /* _qconf->qmax = 1; */ + /* _qconf->qbase = 2047 - qconf_list.qcnt_init_used; */ + _qconf->qmax = 1; + _qconf->qbase = 0; + } + + mutex_lock(&qconf_mutex); + if (qconf_list.qcnt_init_used < qconf_list.vf_qmax) + qconf_list.qcnt_init_used++; + list_add_tail(&_qconf->list_head, listhead); + mutex_unlock(&qconf_mutex); + + atomic_inc(&qconf_list.vf_cnt); + + return _qconf; +} + +/*****************************************************************************/ +/** + * xdev_destroy_qconf - destroys the qconf entry during bye + * + * @param[in] xdev: device type to be used PF/VF + * @param[in] func_id: func id to set the qmax + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xdev_destroy_qconf(u32 xdev, u8 func_id) +{ + struct qconf_entry *_qconf = NULL; + + pr_debug("Destroying func_id = %u\n", func_id); + _qconf = find_func_qentry(xdev, func_id); + if (_qconf) { + mutex_lock(&qconf_mutex); + list_del(&_qconf->list_head); + mutex_unlock(&qconf_mutex); + update_free_list(_qconf); + if (_qconf->cfg_state == Q_INITIAL) + qconf_list.qcnt_init_used -= _qconf->qmax; + kfree(_qconf); + atomic_dec(&qconf_list.vf_cnt); + } + + return 0; +} + +/*****************************************************************************/ +/** + * xdev_qconf_init - initialize the q configuration structures + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xdev_qconf_init(void) +{ + INIT_LIST_HEAD(&qconf_list.vf_list); + INIT_LIST_HEAD(&qconf_list.pf_list); + INIT_LIST_HEAD(&qconf_list.vf_free_list); + atomic_set(&qconf_list.vf_cnt, 0); + qconf_list.vf_qmax = TOTAL_VF_QS; + qconf_list.pf_qmax = TOTAL_QDMA_QS - qconf_list.vf_qmax; + qconf_list.vf_qbase = qconf_list.pf_qmax; + qconf_list.qcnt_cfgd_free = qconf_list.vf_qmax; + qconf_list.qcnt_init_free = qconf_list.vf_qmax; + qconf_list.qcnt_init_used = 0; + init_vf_free_list(); + + return 0; +} + +/*****************************************************************************/ +/** + * xdev_qconf_cleanup - cleanup the q configuration + * + * @return + *****************************************************************************/ +void xdev_qconf_cleanup(void) +{ + struct qconf_entry *_qconf = NULL; + struct qconf_entry *_tmp = NULL; + struct list_head *listhead = &qconf_list.vf_list; + + mutex_lock(&qconf_mutex); + list_for_each_entry_safe(_qconf, _tmp, + listhead, list_head) { + list_del(&_qconf->list_head); + kfree(_qconf); + } + + _qconf = NULL; + listhead = &qconf_list.pf_list; + list_for_each_entry_safe(_qconf, _tmp, + listhead, list_head) { + list_del(&_qconf->list_head); + kfree(_qconf); + } + mutex_unlock(&qconf_mutex); + + cleanup_free_list(); +} + +/*****************************************************************************/ +/** + * qconf_get_qmax - get the current qmax value of VF/PF + * + * @param[in] xdev: device type to be used PF/VF + * @param[in] card_id: for differntiation the qdma card + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qconf_get_qmax(u32 xdev, u32 card_id) +{ + int qmax = 0; + + mutex_lock(&qconf_mutex); + if (xdev == PCI_TYPE_PF) + qmax = qconf_list.pf_qmax; + else if (xdev == PCI_TYPE_VF) + qmax = qconf_list.vf_qmax; + else + pr_err("Invalid q id type specified\n"); + mutex_unlock(&qconf_mutex); + + return qmax; +} + +/*****************************************************************************/ +/** + * is_vfqmax_configurable - checks if the vfqmax is configurable. + * + * @param[in] xdev: list type to be used PF/VF + * @param[in] func_id: func id to set the qmax + * + * @return 0: if not configurable + * @return 1: if configurable + *****************************************************************************/ +int is_vfqmax_configurable(void) +{ + return (atomic_read(&qconf_list.vf_cnt) == 0); +} + +/*****************************************************************************/ +/** + * set_vf_qmax - set the value for vf_qmax; + * + * @param[in] qmax: qmax value to set + * + * @return: last set qmax value before qmax. + *****************************************************************************/ +int set_vf_qmax(u32 qmax) +{ + u32 last_qmax = qconf_list.vf_qmax; + + mutex_lock(&qconf_mutex); + qconf_list.vf_qmax = qmax; + qconf_list.pf_qmax = TOTAL_QDMA_QS - qconf_list.vf_qmax; + qconf_list.vf_qbase = qconf_list.pf_qmax; + qconf_list.qcnt_cfgd_free = qconf_list.vf_qmax; + qconf_list.qcnt_init_free = qconf_list.vf_qmax; + qconf_list.qcnt_init_used = 0; + mutex_unlock(&qconf_mutex); + + pr_debug("vf_qmax/pf_qmax/vf_qbase/cfgd_free/init_free/init_used %u/%u/%u/%u/%u/%u\n", + qconf_list.vf_qmax, qconf_list.pf_qmax, + qconf_list.vf_qbase, qconf_list.qcnt_cfgd_free, + qconf_list.qcnt_init_free, qconf_list.qcnt_init_used); + + init_vf_free_list(); + + return last_qmax; +} diff --git a/QDMA/linux-kernel/libqdma/qdma_qconf_mgr.h b/QDMA/linux-kernel/libqdma/qdma_qconf_mgr.h new file mode 100644 index 0000000..a56f15c --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_qconf_mgr.h @@ -0,0 +1,217 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef _Q_CONF_H_ +#define _Q_CONF_H_ + +#include <linux/types.h> +#include <linux/list.h> +#include <linux/atomic.h> + +enum pci_dev_type { + /** device type is VF */ + PCI_TYPE_VF, + /** device type is PF */ + PCI_TYPE_PF, + /** unknown device type */ + PCI_TYPE_INVAL +}; + +enum q_cfg_state { + /** initial state no qmax cfg done */ + Q_INITIAL, + /** configured state qmax cfg already done */ + Q_CONFIGURED, + /** unknown configuration state */ + Q_INVALID +}; + +/* for free entry management */ +struct free_entry { + /** to connect to free_list */ + struct list_head list_head; + /** next available qbase */ + u32 next_qbase; + /** free qs available in this entry */ + u32 free; + /** index of the entry */ + u32 index; +}; + +/** q configuration entry */ +struct qconf_entry { + /** to connect to list head of */ + struct list_head list_head; + /** idx of the device */ + u32 idx; + /** qbase for func_id */ + u32 qbase; + /** qmax for func_id */ + u32 qmax; + /** current configuration state */ + enum q_cfg_state cfg_state; + /** device type PF/VF */ + enum pci_dev_type type; + /** func_id of the device */ + u8 func_id; +}; + +/** for hodling the qconf_entry structure */ +struct qconf_entry_head { + /** for holding vf qconf_entry */ + struct list_head vf_list; + /** for holding vf free_entry */ + struct list_head vf_free_list; + /** for holding pf qconf_entry */ + struct list_head pf_list; + /** for maximum qs for vf */ + u32 vf_qmax; + /** for maximum qs for pf */ + u32 pf_qmax; + /** for holding vf qconf_entry */ + u32 vf_qbase; + /** number of vfs attached to all pfs */ + atomic_t vf_cnt; + /** free count of qs which can be configured */ + u32 qcnt_cfgd_free; + /** number of qs free for initial cfg devices */ + u32 qcnt_init_free; + /** used by INITIAL state devices */ + u32 qcnt_init_used; +}; + +/*****************************************************************************/ +/** + * xdev_set_qmax() - sets the qmax value of VF device from virtfn/qdma/qmax + * + * @param[in] xdev: list type to be used PF/VF + * @param[in] func_id: func id to set the qmax + * @param[in] qmax: qmax value to set + * @param[out] qbase: pointer to return qbase value + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xdev_set_qmax(u32 xdev, u8 func_id, u32 qmax, u32 *qbase); + +/*****************************************************************************/ +/** + * xdev_del_qconf - delete the q configuration entry of funcid + * + * @param[in] xdev: device type to be used PF/VF + * @param[in] func_id: func id to set the qmax + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xdev_del_qconf(u32 xdev, u8 func_id); + +/*****************************************************************************/ +/** + * xdev_create_qconf - add the q configuration entry of funcid during hello + * + * @param[in] xdev: list type to be used PF/VF + * @param[in] func_id: func id to set the qmax + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +struct qconf_entry *xdev_create_qconf(u32 xdev, u8 func_id); + +/*****************************************************************************/ +/** + * xdev_destroy_qconf - destroys the qconf entry during bye + * + * @param[in] xdev: device type to be used PF/VF + * @param[in] func_id: func id to set the qmax + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xdev_destroy_qconf(u32 xdev, u8 func_id); + +/*****************************************************************************/ +/** + * xdev_qconf_init - initialize the q configuration structures + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int xdev_qconf_init(void); + +/*****************************************************************************/ +/** + * xdev_qconf_cleanup - cleanup the q configuration + * + * @return + *****************************************************************************/ +void xdev_qconf_cleanup(void); + +/*****************************************************************************/ +/** + * xdev_dump_freelist - dump the freelist + * + * @return + *****************************************************************************/ +void xdev_dump_freelist(void); + +/*****************************************************************************/ +/** + * xdev_dump_qconf- dump the q configuration + * @param[in] xdev: device type to be used PF/VF + * + * @return + *****************************************************************************/ +void xdev_dump_qconf(u32 xdev); + +/*****************************************************************************/ +/** + * set_vf_qmax - set the value for vf_qmax; + * + * @param[in] qmax: qmax value to set + * + * @return: last set qmax value before qmax. + *****************************************************************************/ +int set_vf_qmax(u32 qmax); + +/*****************************************************************************/ +/** + * qconf_get_qmax - get the current qmax value of VF/PF + * + * @param[in] xdev: device type to be used PF/VF + * @param[in] card_id: for differntiation the qdma card + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qconf_get_qmax(u32 xdev, u32 card_id); + +/*****************************************************************************/ +/** + * is_vfqmax_configurable - checks if the vfqmax is configurable. + * + * @param[in] xdev: list type to be used PF/VF + * @param[in] func_id: func id to set the qmax + * + * @return 0: if not configurable + * @return 1: if configurable + *****************************************************************************/ +int is_vfqmax_configurable(void); + +#endif diff --git a/QDMA/linux-kernel/libqdma/qdma_regs.c b/QDMA/linux-kernel/libqdma/qdma_regs.c new file mode 100644 index 0000000..6615cf7 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_regs.c @@ -0,0 +1,1109 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "qdma_regs.h" + +#include <linux/version.h> +#include <linux/delay.h> +#include <linux/printk.h> +#include <linux/stddef.h> +#include <linux/string.h> + +#include "xdev.h" +#include "qdma_device.h" +#include "qdma_descq.h" +#include "qdma_st_c2h.h" + +/*****************************************************************************/ +/** + * qdma_device_read_config_register() - read dma config. register + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] reg_addr: register address + * + * @return value of the config register + *****************************************************************************/ +unsigned int qdma_device_read_config_register(unsigned long dev_hndl, + unsigned int reg_addr) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (!xdev) + return -EINVAL; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + return readl(xdev->regs + reg_addr); +} + +/*****************************************************************************/ +/** + * qdma_device_write_config_register() - write dma config. register + * + * @param[in] dev_hndl: dev_hndl returned from qdma_device_open() + * @param[in] reg_addr: register address + * @param[in] value: register value to be writen + * + *****************************************************************************/ +void qdma_device_write_config_register(unsigned long dev_hndl, + unsigned int reg_addr, unsigned int val) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (!xdev) + return; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return; + + pr_debug("%s reg 0x%x, w 0x%08x.\n", xdev->conf.name, reg_addr, val); + writel(val, xdev->regs + reg_addr); +} + + +#ifdef __QDMA_VF__ +#include "qdma_mbox.h" + +int qdma_csr_read(struct xlnx_dma_dev *xdev, struct qdma_csr_info *csr_info, + unsigned int timeout_ms) +{ + struct mbox_msg *m = qdma_mbox_msg_alloc(xdev, MBOX_OP_CSR); + struct mbox_msg_hdr *hdr = m ? &m->hdr : NULL; + struct mbox_msg_csr *csr = m ? &m->csr : NULL; + int rv; + + if (!m) + return -ENOMEM; + + memcpy(&csr->csr_info, csr_info, sizeof(*csr_info)); + rv = qdma_mbox_msg_send(xdev, m, 1, MBOX_OP_CSR_RESP, timeout_ms); + if (rv < 0) + goto free_msg; + + rv = hdr->status; + if (rv < 0) + goto free_msg; + + memcpy(csr_info, &csr->csr_info, sizeof(*csr_info)); + +free_msg: + qdma_mbox_msg_free(m); + return rv; +} + +static int send_csr_array_msg(struct xlnx_dma_dev *xdev, + unsigned int timeout_ms, enum csr_type type, + unsigned int *v, unsigned int *cs_acc) +{ + struct mbox_msg *m = qdma_mbox_msg_alloc(xdev, MBOX_OP_CSR); + struct mbox_msg_csr *csr = m ? &m->csr : NULL; + int i; + int rv = 0; + + if (!m) + return -ENOMEM; + + csr->csr_info.type = type; + rv = qdma_mbox_msg_send(xdev, m, 1, MBOX_OP_CSR_RESP, timeout_ms); + if (rv < 0) + goto err_out; + + if (m->hdr.status) { + rv = m->hdr.status; + goto err_out; + } + + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++) + v[i] = csr->csr_info.array[i]; + *cs_acc = csr->csr_info.cmpl_status_acc; + +err_out: + qdma_mbox_msg_free(m); + return rv; +} + +int qdma_global_csr_get(unsigned long dev_hndl, struct global_csr_conf *csr) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + int rv; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + rv = send_csr_array_msg(xdev, QDMA_MBOX_MSG_TIMEOUT_MS, + QDMA_CSR_TYPE_RNGSZ, csr->ring_sz, + &csr->cmpl_status_acc); + if (rv < 0) + return rv; + + rv = send_csr_array_msg(xdev, QDMA_MBOX_MSG_TIMEOUT_MS, + QDMA_CSR_TYPE_BUFSZ, csr->c2h_buf_sz, + &csr->cmpl_status_acc); + if (rv < 0) + return rv; + + rv = send_csr_array_msg(xdev, QDMA_MBOX_MSG_TIMEOUT_MS, + QDMA_CSR_TYPE_TIMER_CNT, csr->c2h_timer_cnt, + &csr->cmpl_status_acc); + if (rv < 0) + return rv; + + rv = send_csr_array_msg(xdev, QDMA_MBOX_MSG_TIMEOUT_MS, + QDMA_CSR_TYPE_CNT_TH, csr->c2h_cnt_th, + &csr->cmpl_status_acc); + if (rv < 0) + return rv; + + return 0; +} + +int qdma_global_csr_set(unsigned long dev_hndl, struct global_csr_conf *csr) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + pr_info("VF %d setting csr NOT allowed.\n", xdev->func_id); + return -EINVAL; +} + +#else /* ifdef __QDMA_VF__ */ + +void qdma_csr_read_cmpl_status_acc(struct xlnx_dma_dev *xdev, + unsigned int *cs_acc) +{ + *cs_acc = __read_reg(xdev, QDMA_REG_GLBL_DSC_CFG) & + QDMA_REG_GLBL_DSC_CFG_CMPL_STATUS_ACC_MASK; +} + +void qdma_csr_read_rngsz(struct xlnx_dma_dev *xdev, unsigned int *rngsz) +{ + int i; + unsigned int reg; + + reg = QDMA_REG_GLBL_RNG_SZ_BASE; + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; + i++, reg += QDMA_REG_SZ_IN_BYTES) + rngsz[i] = __read_reg(xdev, reg); +} + +int qdma_csr_write_rngsz(struct xlnx_dma_dev *xdev, unsigned int *rngsz) +{ + int i; + unsigned int reg; + + reg = QDMA_REG_GLBL_RNG_SZ_BASE; + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, rngsz[i]); + + /** + * Return Operation Successful + */ + return QDMA_OPERATION_SUCCESSFUL; +} + +void qdma_csr_read_bufsz(struct xlnx_dma_dev *xdev, unsigned int *bufsz) +{ + int i; + unsigned int reg; + + reg = QDMA_REG_C2H_BUF_SZ_BASE; + for (i = 0; i < QDMA_REG_C2H_BUF_SZ_COUNT; i++, + reg += QDMA_REG_SZ_IN_BYTES) + bufsz[i] = __read_reg(xdev, reg); +} + +int qdma_csr_write_bufsz(struct xlnx_dma_dev *xdev, unsigned int *bufsz) +{ + int i; + unsigned int reg; + + reg = QDMA_REG_C2H_BUF_SZ_BASE; + for (i = 0; i < QDMA_REG_C2H_BUF_SZ_COUNT; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, bufsz[i]); + + /** + * Return Operation Successful + */ + return QDMA_OPERATION_SUCCESSFUL; +} + +void qdma_csr_read_timer_cnt(struct xlnx_dma_dev *xdev, unsigned int *tmr_cnt) +{ + int i; + unsigned int reg; + + reg = QDMA_REG_C2H_TIMER_CNT_BASE; + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, + reg += QDMA_REG_SZ_IN_BYTES) + tmr_cnt[i] = __read_reg(xdev, reg); +} + +int qdma_csr_write_timer_cnt(struct xlnx_dma_dev *xdev, unsigned int *tmr_cnt) +{ + int i; + unsigned int reg; + + reg = QDMA_REG_C2H_TIMER_CNT_BASE; + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, tmr_cnt[i]); + /** + * Return Operation Successful + */ + return QDMA_OPERATION_SUCCESSFUL; +} + +void qdma_csr_read_cnt_thresh(struct xlnx_dma_dev *xdev, unsigned int *cnt_th) +{ + int i; + unsigned int reg; + + reg = QDMA_REG_C2H_CNT_TH_BASE; + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, + reg += QDMA_REG_SZ_IN_BYTES) + cnt_th[i] = __read_reg(xdev, reg); +} + +int qdma_csr_read(struct xlnx_dma_dev *xdev, struct qdma_csr_info *csr_info, + unsigned int timeout_ms) +{ + if (csr_info->idx_rngsz >= QDMA_GLOBAL_CSR_ARRAY_SZ || + csr_info->idx_bufsz >= QDMA_GLOBAL_CSR_ARRAY_SZ || + csr_info->idx_timer_cnt >= QDMA_GLOBAL_CSR_ARRAY_SZ || + csr_info->idx_cnt_th >= QDMA_GLOBAL_CSR_ARRAY_SZ) + goto err_out; + + csr_info->rngsz = __read_reg(xdev, csr_info->idx_rngsz * 4 + + QDMA_REG_GLBL_RNG_SZ_BASE); + csr_info->bufsz = __read_reg(xdev, csr_info->idx_bufsz * 4 + + QDMA_REG_C2H_BUF_SZ_BASE); + csr_info->timer_cnt = __read_reg(xdev, csr_info->idx_timer_cnt * 4 + + QDMA_REG_C2H_TIMER_CNT_BASE); + csr_info->cnt_th = __read_reg(xdev, csr_info->idx_cnt_th * 4 + + QDMA_REG_C2H_CNT_TH_BASE); + csr_info->cmpl_status_acc = __read_reg(xdev, + QDMA_REG_GLBL_DSC_CFG) & + QDMA_REG_GLBL_DSC_CFG_CMPL_STATUS_ACC_MASK; + + switch (csr_info->type) { + case QDMA_CSR_TYPE_NONE: + break; + case QDMA_CSR_TYPE_RNGSZ: + qdma_csr_read_rngsz(xdev, csr_info->array); + break; + case QDMA_CSR_TYPE_BUFSZ: + qdma_csr_read_bufsz(xdev, csr_info->array); + break; + case QDMA_CSR_TYPE_TIMER_CNT: + qdma_csr_read_timer_cnt(xdev, csr_info->array); + break; + case QDMA_CSR_TYPE_CNT_TH: + qdma_csr_read_cnt_thresh(xdev, csr_info->array); + break; + default: + goto err_out; + } + + return 0; + +err_out: + pr_info("%s, type/idx invalid: 0x%x, %u,%u,%u,%u.\n", + xdev->conf.name, csr_info->type, csr_info->idx_rngsz, + csr_info->idx_bufsz, csr_info->idx_timer_cnt, + csr_info->idx_cnt_th); + return -EINVAL; +} + +int qdma_csr_write_cnt_thresh(struct xlnx_dma_dev *xdev, unsigned int *cnt_th) +{ + int i; + unsigned int reg; + + reg = QDMA_REG_C2H_CNT_TH_BASE; + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, cnt_th[i]); + + /** + * Return Operation Successful + */ + return QDMA_OPERATION_SUCCESSFUL; +} + +int qdma_global_csr_get(unsigned long dev_hndl, struct global_csr_conf *csr) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + qdma_csr_read_cmpl_status_acc(xdev, &csr->cmpl_status_acc); + qdma_csr_read_rngsz(xdev, csr->ring_sz); + qdma_csr_read_bufsz(xdev, csr->c2h_buf_sz); + qdma_csr_read_timer_cnt(xdev, csr->c2h_timer_cnt); + qdma_csr_read_cnt_thresh(xdev, csr->c2h_cnt_th); + + return 0; +} + +int qdma_global_csr_set(unsigned long dev_hndl, struct global_csr_conf *csr) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + int i; + unsigned int reg; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + if (xdev->func_id) { + pr_info("func_id %d, csr setting not allowed.\n", + xdev->func_id); + return -EINVAL; + } + + reg = __read_reg(xdev, QDMA_REG_GLBL_DSC_CFG); + reg &= ~QDMA_REG_GLBL_DSC_CFG_CMPL_STATUS_ACC_MASK; + reg |= csr->cmpl_status_acc; + __write_reg(xdev, QDMA_REG_GLBL_DSC_CFG, reg); + + reg = QDMA_REG_GLBL_RNG_SZ_BASE; + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, csr->ring_sz[i]); + + reg = QDMA_REG_C2H_BUF_SZ_BASE; + for (i = 0; i < QDMA_REG_C2H_BUF_SZ_COUNT; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, csr->c2h_buf_sz[i]); + + reg = QDMA_REG_C2H_TIMER_CNT_BASE; + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, csr->c2h_timer_cnt[i]); + + reg = QDMA_REG_C2H_CNT_TH_BASE; + for (i = 0; i < QDMA_GLOBAL_CSR_ARRAY_SZ; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, csr->c2h_cnt_th[i]); + + return 0; +} +#endif + +/* + * hw_monitor_reg() - polling a register repeatly until + * (the register value & mask) == val or time is up + * + * return -EBUSY if register value didn't match, 1 other wise + */ +int hw_monitor_reg(struct xlnx_dma_dev *xdev, unsigned int reg, u32 mask, + u32 val, unsigned int interval_us, unsigned int timeout_us) +{ + int count; + u32 v; + + if (!interval_us) + interval_us = QDMA_REG_POLL_DFLT_INTERVAL_US; + if (!timeout_us) + timeout_us = QDMA_REG_POLL_DFLT_TIMEOUT_US; + + count = timeout_us / interval_us; + + do { + v = __read_reg(xdev, reg); + if ((v & mask) == val) + return 1; + udelay(interval_us); + } while (--count); + + v = __read_reg(xdev, reg); + if ((v & mask) == val) + return 1; + + pr_debug("%s, reg 0x%x, timed out %uus, 0x%x & 0x%x != 0x%x.\n", + xdev->conf.name, reg, timeout_us, v, mask, val); + + return -EBUSY; +} + +int qdma_device_flr_quirk_set(struct pci_dev *pdev, unsigned long dev_hndl) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (!xdev->flr_prsnt) { + pr_info("FLR not present, therefore skipping FLR reset\n"); + return 0; + } + + if (!dev_hndl || xdev_check_hndl(__func__, pdev, dev_hndl) < 0) + return -EINVAL; + + __write_reg(xdev, QDMA_REG_FLR_STATUS, 0x1); + return 0; +} + +int qdma_device_flr_quirk_check(struct pci_dev *pdev, unsigned long dev_hndl) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + int rv; + + if (!xdev->flr_prsnt) { + pr_info("FLR not present, therefore skipping FLR reset status\n"); + return 0; + } + + if (!dev_hndl || xdev_check_hndl(__func__, pdev, dev_hndl) < 0) + return -EINVAL; + + /* wait for it to become zero */ + rv = hw_monitor_reg(xdev, QDMA_REG_FLR_STATUS, 0x1, 0, 500, 500*1000); + if (rv < 0) + pr_info("%s, flr status stuck 0x%x.\n", xdev->conf.name, + __read_reg(xdev, QDMA_REG_FLR_STATUS)); + + return 0; +} + +int qdma_device_flr_quirk(struct pci_dev *pdev, unsigned long dev_hndl) +{ + int rv; + + rv = qdma_device_flr_quirk_set(pdev, dev_hndl); + if (rv < 0) + return rv; + + return qdma_device_flr_quirk_check(pdev, dev_hndl); +} + + +int qdma_device_version_info(unsigned long dev_hndl, + struct qdma_version_info *version_info) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + int reg_val = 0; + + if (!xdev || !version_info) + return -EINVAL; + + reg_val = __read_reg(xdev, QDMA_VERSION_REG); + + version_info->vivado_release_id = + (reg_val & M_VIVADO_RELEASE_ID_MASK) >> + S_VIVADO_RELEASE_ID_SHIFT; + version_info->rtl_version = + (reg_val & M_RTL_VERSION_MASK) >> S_RTL_VERSION_SHIFT; + version_info->everest_ip = + (reg_val & M_EVEREST_IP_MASK) >> S_EVEREST_IP_SHIFT; + + switch (version_info->rtl_version) { + case RTL1_VERSION: + sprintf(version_info->rtl_version_str, "RTL1"); + break; + default: + sprintf(version_info->rtl_version_str, "RTL2"); + break; + } + + switch (version_info->vivado_release_id) { + case VIVADO_RELEASE_2018_3: + sprintf(version_info->vivado_release_str, "2018.3"); + break; + default: + sprintf(version_info->vivado_release_str, "2018.2"); + break; + } + + if (version_info->everest_ip) + sprintf(version_info->everest_ip_str, "HARD_IP"); + else + sprintf(version_info->everest_ip_str, "SOFT_IP"); + + return 0; +} + +#ifndef __QDMA_VF__ +static int qdma_device_num_pfs_get(struct xlnx_dma_dev *xdev) +{ + int count = 0; + int reg_val = 0; + + reg_val = __read_reg(xdev, QDMA_REG_GLBL_PF_BARLITE_INT); + + if ((reg_val & PF_BARLITE_INT_0_MASK) >> PF_BARLITE_INT_0_SHIFT) + count++; + if ((reg_val & PF_BARLITE_INT_1_MASK) >> PF_BARLITE_INT_1_SHIFT) + count++; + if ((reg_val & PF_BARLITE_INT_2_MASK) >> PF_BARLITE_INT_2_SHIFT) + count++; + if ((reg_val & PF_BARLITE_INT_3_MASK) >> PF_BARLITE_INT_3_SHIFT) + count++; + + xdev->pf_count = count; + return count; +} + +void qdma_device_attributes_get(struct xlnx_dma_dev *xdev) +{ + int mm_c2h_flag = 0; + int mm_h2c_flag = 0; + int st_c2h_flag = 0; + int st_h2c_flag = 0; + unsigned int v1 = __read_reg(xdev, QDMA_REG_GLBL_QMAX); + int v2 = qdma_device_num_pfs_get(xdev); + + xdev->conf.qsets_max = v1 / v2; + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 8, 0) + v2 = pci_sriov_get_totalvfs(xdev->conf.pdev); +#else + v2 = QDMA_VF_MAX; +#endif + if ((v2 * QDMA_Q_PER_VF_MAX) > xdev->conf.qsets_max) { + pr_warn("%s, max vf %d, per vf Q %u, manual setting needed.\n", + xdev->conf.name, v2, QDMA_Q_PER_VF_MAX); + xdev->conf.qsets_max = 0; + } else + xdev->conf.qsets_max -= v2 * QDMA_Q_PER_VF_MAX; + + /** changed to static allocation, VF qs are allocated + * at the bottom. Function used only during initial + * allocation, VFs is different for different pfs + * so allocation of qs not uniform. + */ + if (xdev->conf.qsets_max != MAX_QS_PER_PF) + xdev->conf.qsets_max = MAX_QS_PER_PF; + + /* TODO : __read_reg(xdev, QDMA_REG_GLBL_MM_ENGINES);*/ + xdev->mm_channel_max = 1; + xdev->flr_prsnt = (__read_reg(xdev, QDMA_REG_GLBL_MISC_CAP) & + MISC_CAP_FLR_PRESENT_MASK) >> + MISC_CAP_FLR_PRESENT_SHIFT; + + v1 = __read_reg(xdev, QDMA_REG_GLBL_MDMA_CHANNEL); + mm_c2h_flag = (v1 & MDMA_CHANNEL_MM_C2H_ENABLED_MASK) ? 1 : 0; + mm_h2c_flag = (v1 & MDMA_CHANNEL_MM_H2C_ENABLED_MASK) ? 1 : 0; + st_c2h_flag = (v1 & MDMA_CHANNEL_ST_C2H_ENABLED_MASK) ? 1 : 0; + st_h2c_flag = (v1 & MDMA_CHANNEL_ST_H2C_ENABLED_MASK) ? 1 : 0; + + xdev->mm_mode_en = (mm_c2h_flag && mm_h2c_flag) ? 1 : 0; + xdev->st_mode_en = (st_c2h_flag && st_h2c_flag) ? 1 : 0; + + if (xdev->stm_en) + xdev->conf.bar_num_stm = STM_BAR; + + pr_info("%s: present flr %d, mm %d, st %d.\n", + xdev->conf.name, xdev->flr_prsnt, xdev->mm_mode_en, + xdev->st_mode_en); +} + +void hw_set_global_csr(struct xlnx_dma_dev *xdev) +{ + int i; + unsigned int reg; + + reg = ((0x03 << QDMA_REG_GLBL_DSC_CFG_MAX_DESC_FETCH_SHIFT) | 0x05); + __write_reg(xdev, QDMA_REG_GLBL_DSC_CFG, reg); + + reg = QDMA_REG_GLBL_RNG_SZ_BASE; + for (i = 0; i < QDMA_REG_GLBL_RNG_SZ_COUNT; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, (RNG_SZ_DFLT << i) + 1); + + reg = QDMA_REG_C2H_BUF_SZ_BASE; + for (i = 0; i < QDMA_REG_C2H_BUF_SZ_COUNT; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, C2H_BUF_SZ_DFLT); + + reg = QDMA_REG_C2H_TIMER_CNT_BASE; + for (i = 0; i < QDMA_REG_C2H_TIMER_CNT_COUNT; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, C2H_TIMER_CNT_DFLT << i); + + reg = QDMA_REG_C2H_CNT_TH_BASE; + for (i = 0; i < QDMA_REG_C2H_CNT_TH_COUNT; i++, + reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, C2H_CNT_TH_DFLT << i); + +} + +int qdma_trq_c2h_config(struct xlnx_dma_dev *xdev) +{ + unsigned int reg; + unsigned int dsc_cache_depth; + unsigned int cpml_coal_depth; + + dsc_cache_depth = __read_reg(xdev, QDMA_C2H_PFCH_CACHE_DEPTH); + dsc_cache_depth >>= 2; + reg = (0x100 << QDMA_C2H_PFCH_CFG_PFCH_FL_TH_SHIFT) | + (8 << QDMA_C2H_PFCH_CFG_NUM_PFCH_SHIFT) | + (dsc_cache_depth << QDMA_C2H_PFCH_CFG_PFCH_QCNT_SHIFT) | + ((dsc_cache_depth - 2) << + QDMA_C2H_PFCH_CFG_EVT_QCNT_TH_SHIFT); + __write_reg(xdev, QDMA_C2H_PFCH_CFG, reg); + + cpml_coal_depth = __read_reg(xdev, QDMA_C2H_CMPT_COAL_BUF_DEPTH); + reg = (cpml_coal_depth << QDMA_C2H_CMPT_COAL_CFG_MAX_BUF_SZ_SHIFT) | + (25 << QDMA_C2H_CMPT_COAL_CFG_TICK_VAL_SHIFT) | + (5 << QDMA_C2H_CMPT_COAL_CFG_TICK_CNT_SHIFT); + __write_reg(xdev, QDMA_C2H_CMPT_COAL_CFG, reg); + __write_reg(xdev, QDMA_C2H_INT_TIMER_TICK, 25); + __write_reg(xdev, QDMA_H2C_DATA_THRESHOLD, 0x14000); + + return 0; +} + +void hw_mm_channel_enable(struct xlnx_dma_dev *xdev, int channel, bool c2h) +{ + int reg = (c2h) ? QDMA_REG_H2C_MM_CONTROL_BASE : + QDMA_REG_C2H_MM_CONTROL_BASE; + + __write_reg(xdev, reg + channel * QDMA_REG_MM_CONTROL_STEP, + QDMA_REG_MM_CONTROL_RUN); +} + +void hw_mm_channel_disable(struct xlnx_dma_dev *xdev, int channel, bool c2h) +{ + int reg = (c2h) ? QDMA_REG_H2C_MM_CONTROL_BASE : + QDMA_REG_C2H_MM_CONTROL_BASE; + + __write_reg(xdev, reg + channel * QDMA_REG_MM_CONTROL_STEP, 0U); +} + +int hw_set_fmap(struct xlnx_dma_dev *xdev, u16 func_id, unsigned int qbase, + unsigned int qmax) +{ + struct hw_descq_context context; + int rv; + u32 *data = NULL; + + memset(&context, 0, sizeof(context)); + + data = context.fmap; + data[1] = V_FMAP_W1_QMAX(qmax); + data[0] = V_FMAP_W0_QBASE(qbase); + + pr_debug("%s, FMAP 0x%08x 0x%08x\n", + xdev->conf.name, data[1], data[0]); + + rv = hw_indirect_ctext_prog(xdev, func_id, QDMA_CTXT_CMD_WR, + QDMA_CTXT_SEL_FMAP, context.fmap, 2, 1); + if (rv < 0) + return rv; + + return 0; +} + +int hw_read_fmap(struct xlnx_dma_dev *xdev, u16 func_id, unsigned int *qbase, + unsigned int *qmax) +{ + struct hw_descq_context context; + int rv; + + memset(&context, 0, sizeof(context)); + + rv = hw_indirect_ctext_prog(xdev, func_id, QDMA_CTXT_CMD_RD, + QDMA_CTXT_SEL_FMAP, context.fmap, 2, 1); + if (rv < 0) + return rv; + + *qbase = context.fmap[0]; + *qmax = context.fmap[1]; + + pr_debug("%s, FMAP qbase %d qmax %d\n", + xdev->conf.name, *qbase, *qmax); + + return 0; +} + +int hw_indirect_stm_prog(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + u8 fid, enum ind_stm_cmd_op op, + enum ind_stm_addr addr, u32 *data, + unsigned int cnt, bool clear) +{ + unsigned int reg; + u32 v; + int i; + int rv = 0; + + spin_lock(&xdev->hw_prg_lock); + pr_debug("qid_hw 0x%x, op 0x%x, addr 0x%x, data 0x%p,%u\n", + qid_hw, op, addr, data, cnt); + + if ((op == STM_CSR_CMD_WR) || (op == STM_CSR_CMD_RD)) { + if (unlikely(!cnt || cnt > 6)) { + pr_warn("Q 0x%x, op 0x%x, addr 0x%x, cnt %u/%d.\n", + qid_hw, op, addr, cnt, + 6); + rv = -EINVAL; + goto fn_ret; + } + + if (unlikely(!data)) { + pr_warn("Q 0x%x, op 0x%x, sel 0x%x, data NULL.\n", + qid_hw, op, addr); + rv = -EINVAL; + goto fn_ret; + } + + if (op == STM_CSR_CMD_WR) { + switch (addr) { + case STM_IND_ADDR_Q_CTX_H2C: + reg = STM_REG_BASE + STM_REG_IND_CTXT_DATA_BASE; + + for (i = 0; i < cnt; i++, + reg += QDMA_REG_SZ_IN_BYTES) { + pr_debug("%s: i = %d; reg = 0x%x; data[%d] = 0x%x\n", + __func__, i, reg, i, data[i]); + writel(data[i], xdev->stm_regs + reg); + } + pr_debug("%s: data[5] for h2c-ctxt is: 0x%x\n", + __func__, data[5]); + /* write context valid bit */ + writel(data[5], xdev->stm_regs + STM_REG_BASE + + STM_REG_IND_CTXT_DATA5); + break; + + case STM_IND_ADDR_Q_CTX_C2H: + reg = STM_REG_BASE + STM_REG_IND_CTXT_DATA3; + + for (i = 0; i < cnt; i++, + reg += QDMA_REG_SZ_IN_BYTES) { + pr_debug("%s: i = %d; reg = 0x%x; data[%d] = 0x%x\n", + __func__, i, reg, i, data[i]); + writel(data[i], xdev->stm_regs + reg); + } + pr_debug("%s: data[5] for c2h-ctxt is: 0x%x\n", + __func__, data[5]); + /* write context valid bit */ + writel(data[5], xdev->stm_regs + STM_REG_BASE + + STM_REG_IND_CTXT_DATA5); + break; + + case STM_IND_ADDR_H2C_MAP: + reg = STM_REG_BASE + + STM_REG_IND_CTXT_DATA_BASE + (4 * 4); + pr_debug("%s: reg = 0x%x; data = 0x%x\n", + __func__, reg, qid_hw); + if (clear) + writel(0, xdev->stm_regs + reg); + else + writel(qid_hw, xdev->stm_regs + reg); + break; + + case STM_IND_ADDR_C2H_MAP: { + u32 c2h_map; + + reg = STM_REG_BASE + STM_REG_C2H_DATA8; + c2h_map = (clear ? 0 : qid_hw) | + (DESC_SZ_8B << 11); + pr_debug("%s: reg = 0x%x; data = 0x%x\n", + __func__, reg, c2h_map); + writel(c2h_map, xdev->stm_regs + reg); + break; + } + + default: + pr_err("%s: not supported address..\n", + __func__); + rv = -EINVAL; + goto fn_ret; + } + } + } + + v = (qid_hw << S_STM_CMD_QID) | (op << S_STM_CMD_OP) | + (addr << S_STM_CMD_ADDR) | (fid << S_STM_CMD_FID); + + pr_debug("ctxt_cmd reg 0x%x, qid 0x%x, op 0x%x, fid 0x%x addr 0x%x -> 0x%08x.\n", + STM_REG_BASE + STM_REG_IND_CTXT_CMD, qid_hw, op, fid, addr, v); + writel(v, xdev->stm_regs + STM_REG_BASE + STM_REG_IND_CTXT_CMD); + + if (op == STM_CSR_CMD_RD) { + switch (addr) { + case STM_IND_ADDR_Q_CTX_C2H: + case STM_IND_ADDR_Q_CTX_H2C: + case STM_IND_ADDR_FORCED_CAN: + case STM_IND_ADDR_H2C_MAP: + reg = STM_REG_BASE + STM_REG_IND_CTXT_DATA_BASE; + for (i = 0; i < cnt; + i++, reg += QDMA_REG_SZ_IN_BYTES) { + data[i] = readl(xdev->stm_regs + reg); + + pr_debug("%s: reg = 0x%x; data[%d] = 0x%x\n", + __func__, reg, i, data[i]); + } + /* read context valid bits */ + data[5] = readl(xdev->stm_regs + STM_REG_BASE + + STM_REG_IND_CTXT_DATA5); + break; + + case STM_IND_ADDR_C2H_MAP: + reg = STM_REG_BASE + STM_REG_C2H_DATA8; + data[0] = readl(xdev->stm_regs + reg); + break; + + default: + pr_err("%s: not supported address..\n", + __func__); + rv = -EINVAL; + } + } + +fn_ret: + spin_unlock(&xdev->hw_prg_lock); + return rv; +} + +int hw_indirect_ctext_prog(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + enum ind_ctxt_cmd_op op, + enum ind_ctxt_cmd_sel sel, u32 *data, + unsigned int cnt, bool verify) +{ + unsigned int reg; + u32 rd[QDMA_REG_IND_CTXT_REG_COUNT] = {0}; + u32 v; + int i; + int rv = 0; + + pr_debug("qid_hw 0x%x, op 0x%x, sel 0x%x, data 0x%p,%u, verify %d.\n", + qid_hw, op, sel, data, cnt, verify); + + spin_lock(&xdev->hw_prg_lock); + if ((op == QDMA_CTXT_CMD_WR) || (op == QDMA_CTXT_CMD_RD)) { + if (unlikely(!cnt || cnt > QDMA_REG_IND_CTXT_REG_COUNT)) { + pr_warn("Q 0x%x, op 0x%x, sel 0x%x, cnt %u/%d.\n", + qid_hw, op, sel, cnt, + QDMA_REG_IND_CTXT_REG_COUNT); + rv = -EINVAL; + goto fn_ret; + } + + if (unlikely(!data)) { + pr_warn("Q 0x%x, op 0x%x, sel 0x%x, data NULL.\n", + qid_hw, op, sel); + rv = -EINVAL; + goto fn_ret; + } + + reg = QDMA_REG_IND_CTXT_MASK_BASE; + for (i = 0; i < QDMA_REG_IND_CTXT_REG_COUNT; + i++, reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, 0xFFFFFFFF); + + if (op == QDMA_CTXT_CMD_WR) { + reg = QDMA_REG_IND_CTXT_DATA_BASE; + for (i = 0; i < cnt; + i++, reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, data[i]); + for (; i < QDMA_REG_IND_CTXT_REG_COUNT; + i++, reg += QDMA_REG_SZ_IN_BYTES) + __write_reg(xdev, reg, 0); + } + } + + v = (qid_hw << IND_CTXT_CMD_QID_SHIFT) | (op << IND_CTXT_CMD_OP_SHIFT) | + (sel << IND_CTXT_CMD_SEL_SHIFT); + + pr_debug("ctxt_cmd reg 0x%x, qid 0x%x, op 0x%x, sel 0x%x -> 0x%08x.\n", + QDMA_REG_IND_CTXT_CMD, qid_hw, op, sel, v); + + __write_reg(xdev, QDMA_REG_IND_CTXT_CMD, v); + + rv = hw_monitor_reg(xdev, QDMA_REG_IND_CTXT_CMD, + IND_CTXT_CMD_BUSY_MASK, 0, 100, 500*1000); + if (rv < 0) { + pr_info("%s, Q 0x%x, op 0x%x, sel 0x%x, timeout.\n", + xdev->conf.name, qid_hw, op, sel); + rv = -EBUSY; + goto fn_ret; + } + + if (op == QDMA_CTXT_CMD_RD) { + reg = QDMA_REG_IND_CTXT_DATA_BASE; + for (i = 0; i < cnt; + i++, reg += QDMA_REG_SZ_IN_BYTES) + data[i] = __read_reg(xdev, reg); + + goto fn_ret; + } + + if (!verify) + goto fn_ret; + + v = (qid_hw << IND_CTXT_CMD_QID_SHIFT) | + (QDMA_CTXT_CMD_RD << IND_CTXT_CMD_OP_SHIFT) | + (sel << IND_CTXT_CMD_SEL_SHIFT); + + pr_debug("reg 0x%x, Q 0x%x, RD, sel 0x%x -> 0x%08x.\n", + QDMA_REG_IND_CTXT_CMD, qid_hw, sel, v); + + __write_reg(xdev, QDMA_REG_IND_CTXT_CMD, v); + + rv = hw_monitor_reg(xdev, QDMA_REG_IND_CTXT_CMD, + IND_CTXT_CMD_BUSY_MASK, 0, 100, 500*1000); + if (rv < 0) { + pr_warn("%s, Q 0x%x, op 0x%x, sel 0x%x, readback busy.\n", + xdev->conf.name, qid_hw, op, sel); + goto fn_ret; + } + + reg = QDMA_REG_IND_CTXT_DATA_BASE; + for (i = 0; i < cnt; + i++, reg += QDMA_REG_SZ_IN_BYTES) + rd[i] = __read_reg(xdev, reg); + + v = QDMA_REG_SZ_IN_BYTES * cnt; + if (memcmp(data, rd, v)) { + pr_warn("%s, indirect write data mismatch:\n", xdev->conf.name); + print_hex_dump(KERN_INFO, "WR ", DUMP_PREFIX_OFFSET, + 16, 1, (void *)data, v, false); + print_hex_dump(KERN_INFO, "RD ", DUMP_PREFIX_OFFSET, + 16, 1, (void *)rd, v, false); + + rv = -EBUSY; + } + +fn_ret: + spin_unlock(&xdev->hw_prg_lock); + + return rv; +} + +#endif + +int qdma_queue_cmpl_ctrl(unsigned long dev_hndl, unsigned long id, + struct qdma_cmpl_ctrl *cctrl, bool set) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, NULL, 0, 1); + u32 val; + + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + if (set) { + lock_descq(descq); + + descq->conf.cmpl_trig_mode = cctrl->trigger_mode; + descq->conf.cmpl_timer_idx = cctrl->timer_idx; + descq->conf.cmpl_cnt_th_idx = cctrl->cnt_th_idx; + descq->conf.irq_en = cctrl->cmpl_en_intr; + descq->conf.cmpl_stat_en = cctrl->en_stat_desc; + + descq_cmpt_cidx_update(descq, descq->cidx_cmpt_pend); + + unlock_descq(descq); + + } else { + /* read the setting */ + val = __read_reg(descq->xdev, QDMA_REG_CMPT_CIDX_BASE + + descq->conf.qidx * QDMA_REG_PIDX_STEP); + + cctrl->trigger_mode = descq->conf.cmpl_trig_mode = + (val >> S_CMPT_CIDX_UPD_TRIG_MODE) & + M_CMPT_CIDX_UPD_TRIG_MODE; + cctrl->timer_idx = descq->conf.cmpl_timer_idx = + (val >> S_CMPT_CIDX_UPD_TIMER_IDX) & + M_CMPT_CIDX_UPD_TIMER_IDX; + cctrl->cnt_th_idx = descq->conf.cmpl_cnt_th_idx = + (val >> S_CMPT_CIDX_UPD_CNTER_IDX) & + M_CMPT_CIDX_UPD_CNTER_IDX; + cctrl->cmpl_en_intr = descq->conf.irq_en = + (val & (1 << S_CMPT_CIDX_UPD_EN_INT)) ? 1 : 0; + cctrl->en_stat_desc = descq->conf.cmpl_stat_en = + (val & (1 << S_CMPT_CIDX_UPD_EN_STAT_DESC)) ? 1 : 0; + } + + return 0; +} + +#ifndef __QDMA_VF__ +int hw_init_qctxt_memory(struct xlnx_dma_dev *xdev, unsigned int qbase, + unsigned int qmax) +{ + u32 data[QDMA_REG_IND_CTXT_REG_COUNT]; + unsigned int i = qbase; + + memset(data, 0, sizeof(u32) * QDMA_REG_IND_CTXT_REG_COUNT); + + for (; i < qmax; i++) { + enum ind_ctxt_cmd_sel sel = QDMA_CTXT_SEL_SW_C2H; + int rv; + + for ( ; sel <= QDMA_CTXT_SEL_PFTCH; sel++) { + /** if the st mode(h2c/c2h) not enabled in the design, + * then skip the PFTCH and CMPT context setup + */ + if ((xdev->st_mode_en == 0) && + (sel == QDMA_CTXT_SEL_PFTCH || + sel == QDMA_CTXT_SEL_CMPT)) { + pr_debug("ST context is skipped: sel = %d", + sel); + continue; + } + + rv = hw_indirect_ctext_prog(xdev, + i, QDMA_CTXT_CMD_CLR, + sel, NULL, 0, 0); + if (rv < 0) + return rv; + } + } + + return 0; +} + +int hw_init_global_context_memory(struct xlnx_dma_dev *xdev) +{ + unsigned int i; + int rv = 0; + + /* queue context memory */ + rv = hw_init_qctxt_memory(xdev, 0, QDMA_QSET_MAX); + if (rv < 0) + return rv; + + if (xdev->conf.qdma_drv_mode == AUTO_MODE || + xdev->conf.qdma_drv_mode == INDIRECT_INTR_MODE) { + /* interrupt aggregation context */ + for (i = 0; i < QDMA_INTR_RNG_MAX; i++) { + rv = hw_indirect_ctext_prog(xdev, + i, QDMA_CTXT_CMD_CLR, + QDMA_CTXT_SEL_COAL, NULL, 0, 0); + if (rv < 0) + return rv; + } + } + + /* fmap */ + for (i = 0; i < QDMA_FUNC_MAX; i++) + hw_set_fmap(xdev, i, 0, 0); + + return 0; +} + +#endif diff --git a/QDMA/linux-kernel/libqdma/qdma_regs.h b/QDMA/linux-kernel/libqdma/qdma_regs.h new file mode 100644 index 0000000..8c539e8 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_regs.h @@ -0,0 +1,1006 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __QDMA_REGS_H__ +#define __QDMA_REGS_H__ + +#include <linux/types.h> +#include "xdev.h" + +#define QDMA_REG_SZ_IN_BYTES 4 + +/* polling a register */ +#define QDMA_REG_POLL_DFLT_INTERVAL_US 100 /* 100us per poll */ +#define QDMA_REG_POLL_DFLT_TIMEOUT_US (500*1000) /* 500ms */ + +/* desc. Q default */ +#define RNG_SZ_DFLT 64 +#define CMPT_RNG_SZ_DFLT 64 +#define C2H_TIMER_CNT_DFLT 0x1 +#define C2H_CNT_TH_DFLT 0x1 +#define C2H_BUF_SZ_DFLT PAGE_SIZE + +/* QDMA IP limits */ +#define QDMA_QSET_MAX 2048 /* 2K queues */ +#define QDMA_FUNC_MAX 256 /* 256 functions */ +#define QDMA_INTR_RNG_MAX 256 /* 256 interrupt aggregation rings */ + +#define DESC_SZ_64B 3 +#define DESC_SZ_8B_BYTES 8 +#define DESC_SZ_16B_BYTES 16 +#define DESC_SZ_32B_BYTES 32 +#define DESC_SZ_64B_BYTES 64 + + +/* Driver visible Attribute Space 0x100 */ +#define QDMA_REG_GLBL_PF_BARLITE_INT 0x104 +#define PF_BARLITE_INT_3_SHIFT 18 +#define PF_BARLITE_INT_3_MASK 0xFC0000 +#define PF_BARLITE_INT_2_SHIFT 12 +#define PF_BARLITE_INT_2_MASK 0x3F000 +#define PF_BARLITE_INT_1_SHIFT 6 +#define PF_BARLITE_INT_1_MASK 0xFC0 +#define PF_BARLITE_INT_0_SHIFT 0 +#define PF_BARLITE_INT_0_MASK 0x3F + +#define MAGIC_NUMBER 0x1FD30000 +#define M_CONFIG_BAR_IDENTIFIER_MASK 0xFFFF0000 +#ifndef __QDMA_VF__ +#define QDMA_REG_CONFIG_BLOCK_IDENTIFIER 0x0 +#else +#define QDMA_REG_CONFIG_BLOCK_IDENTIFIER 0x1014 +#endif +#define QDMA_REG_PF_USER_BAR_IDENTIFIER 0x10C +#define QDMA_REG_VF_USER_BAR_IDENTIFIER 0x1018 +#define M_USER_BAR_ID_MASK 0x3F + +#define QDMA_REG_GLBL_QMAX 0x120 +/* TBD : needs to be changed once we get the register offset from the h/w */ +#define QDMA_REG_GLBL_MM_ENGINES 0xABCD +#define QDMA_REG_GLBL_MISC_CAP 0x134 +#define MISC_CAP_FLR_PRESENT_SHIFT 1 +#define MISC_CAP_FLR_PRESENT_MASK 0x2 +#define QDMA_REG_GLBL_MDMA_CHANNEL 0x118 +#define MDMA_CHANNEL_ST_C2H_ENABLED_SHIFT 16 +#define MDMA_CHANNEL_ST_C2H_ENABLED_MASK 0x10000 +#define MDMA_CHANNEL_ST_H2C_ENABLED_SHIFT 17 +#define MDMA_CHANNEL_ST_H2C_ENABLED_MASK 0x20000 +#define MDMA_CHANNEL_MM_C2H_ENABLED_SHIFT 8 +#define MDMA_CHANNEL_MM_C2H_ENABLED_MASK 0x100 +#define MDMA_CHANNEL_MM_H2C_ENABLED_SHIFT 0 +#define MDMA_CHANNEL_MM_H2C_ENABLED_MASK 0x1 + +#ifndef __QDMA_VF__ +/* + * PF only registers + */ +#define QDMA_REG_FUNC_ID 0x12C + +/* CSR space 0x200 */ +#define QDMA_REG_GLBL_RNG_SZ_BASE 0x204 +#define QDMA_REG_GLBL_RNG_SZ_COUNT 16 + +#define QDMA_REG_GLBL_SCRATCH 0x244 + +#define QDMA_REG_GLBL_DSC_CFG 0x250 +#define QDMA_REG_GLBL_DSC_CFG_CMPL_STATUS_ACC_MASK 0x07 +#define QDMA_REG_GLBL_DSC_CFG_MAX_DESC_FETCH_MASK 0x07 +#define QDMA_REG_GLBL_DSC_CFG_MAX_DESC_FETCH_SHIFT 0x03 + +#define QDMA_GLBL_INTERRUPT_CFG 0x2C4 +#define QDMA_GLBL_INTERRUPT_CFG_EN_LGCY_INTR (1 << 0) +#define QDMA_GLBL_INTERRUPT_LGCY_INTR_PEND (1 << 1) + +#define QDMA_REG_C2H_TIMER_CNT_BASE 0xA00 +#define QDMA_REG_C2H_TIMER_CNT_COUNT 16 + +#define QDMA_REG_C2H_CNT_TH_BASE 0xA40 +#define QDMA_REG_C2H_CNT_TH_COUNT 16 + +#define QDMA_REG_C2H_BUF_SZ_BASE 0xAB0 +#define QDMA_REG_C2H_BUF_SZ_COUNT 16 + +void qdma_csr_read_cmpl_status_acc(struct xlnx_dma_dev *xdev, + unsigned int *cs_acc); +void qdma_csr_read_rngsz(struct xlnx_dma_dev *xdev, unsigned int *rngsz); +int qdma_csr_write_rngsz(struct xlnx_dma_dev *xdev, unsigned int *rngsz); +void qdma_csr_read_bufsz(struct xlnx_dma_dev *xdev, unsigned int *bufsz); +int qdma_csr_write_bufsz(struct xlnx_dma_dev *xdev, unsigned int *bufsz); +void qdma_csr_read_timer_cnt(struct xlnx_dma_dev *xdev, unsigned int *tmr_cnt); +int qdma_csr_write_timer_cnt(struct xlnx_dma_dev *xdev, unsigned int *tmr_cnt); +void qdma_csr_read_cnt_thresh(struct xlnx_dma_dev *xdev, unsigned int *cnt_th); +int qdma_csr_write_cnt_thresh(struct xlnx_dma_dev *xdev, unsigned int *cnt_th); + +/* + * Function registers + */ + +#define QDMA_REG_TRQ_SEL_FMAP_BASE 0x400 +#define QDMA_REG_TRQ_SEL_FMAP_STEP 0x4 +#define QDMA_REG_TRQ_SEL_FMAP_COUNT 256 + +#define SEL_FMAP_QID_BASE_SHIFT 0 +#define SEL_FMAP_QID_BASE_MASK 0x7FFU +#define SEL_FMAP_QID_MAX_SHIFT 11 +#define SEL_FMAP_QID_MAX_MASK 0xFFFU + +/* + * Indirect Programming + */ +#define QDMA_REG_IND_CTXT_REG_COUNT 8 +#define QDMA_REG_IND_CTXT_DATA_BASE 0x804 +#define QDMA_REG_IND_CTXT_MASK_BASE 0x824 + +#define QDMA_REG_IND_CTXT_CMD 0x844 +#define IND_CTXT_CMD_QID_SHIFT 7 +#define IND_CTXT_CMD_QID_MASK 0xFFFFFFU + +#define IND_CTXT_CMD_OP_SHIFT 5 +#define IND_CTXT_CMD_OP_MASK 0x3U + +#define IND_CTXT_CMD_SEL_SHIFT 1 +#define IND_CTXT_CMD_SEL_MASK 0xFU + +#define IND_CTXT_CMD_BUSY_SHIFT 0 +#define IND_CTXT_CMD_BUSY_MASK 0x1U + +/* + * Queue registers + */ +#define QDMA_REG_MM_CONTROL_RUN 0x1U +#define QDMA_REG_MM_CONTROL_STEP 0x100 + +#define QDMA_REG_C2H_MM_CONTROL_BASE 0x1004 +#define QDMA_REG_H2C_MM_CONTROL_BASE 0x1204 + +/* + * TRQ Sel registers + */ +#define QDMA_C2H_PFCH_CFG 0xB08 +#define QDMA_C2H_PFCH_CFG_EVT_QCNT_TH_SHIFT 25 +#define QDMA_C2H_PFCH_CFG_PFCH_QCNT_SHIFT 18 +#define QDMA_C2H_PFCH_CFG_NUM_PFCH_SHIFT 9 +#define QDMA_C2H_PFCH_CFG_PFCH_FL_TH_SHIFT 0 + +#define QDMA_C2H_CMPT_COAL_CFG 0xB50 +#define QDMA_C2H_CMPT_COAL_CFG_TICK_CNT_SHIFT 2 +#define QDMA_C2H_CMPT_COAL_CFG_TICK_VAL_SHIFT 14 +#define QDMA_C2H_CMPT_COAL_CFG_MAX_BUF_SZ_SHIFT 26 + +#define QDMA_C2H_INT_TIMER_TICK 0xB0C + +/* + * monitor + */ +#define QDMA_REG_C2H_STAT_AXIS_PKG_CMP 0xA94 + +#endif /* ifndef __QDMA_VF__ */ + +/* + * FLR + */ +#ifdef __QDMA_VF__ +#define QDMA_REG_FLR_STATUS 0x1100 +#else +#define QDMA_REG_FLR_STATUS 0x2500 +#endif + +/* + * desc. Q pdix/cidx update + */ + +#define QDMA_REG_PIDX_STEP 0x10 + +#ifdef __QDMA_VF__ + +#define QDMA_REG_INT_CIDX_BASE 0x3000 +#define QDMA_REG_H2C_PIDX_BASE 0x3004 +#define QDMA_REG_C2H_PIDX_BASE 0x3008 +#define QDMA_REG_CMPT_CIDX_BASE 0x300C + +#else + +#define QDMA_REG_INT_CIDX_BASE 0x18000 +#define QDMA_REG_H2C_PIDX_BASE 0x18004 +#define QDMA_REG_C2H_PIDX_BASE 0x18008 +#define QDMA_REG_CMPT_CIDX_BASE 0x1800C + +#endif + +/* + * Q Context programming (indirect) + */ +enum ind_ctxt_cmd_op { + QDMA_CTXT_CMD_CLR, + QDMA_CTXT_CMD_WR, + QDMA_CTXT_CMD_RD, + QDMA_CTXT_CMD_INV +}; + +enum ind_ctxt_cmd_sel { + QDMA_CTXT_SEL_SW_C2H, + QDMA_CTXT_SEL_SW_H2C, + QDMA_CTXT_SEL_HW_C2H, + QDMA_CTXT_SEL_HW_H2C, + QDMA_CTXT_SEL_CR_C2H, + QDMA_CTXT_SEL_CR_H2C, + QDMA_CTXT_SEL_CMPT, + QDMA_CTXT_SEL_PFTCH, + QDMA_CTXT_SEL_COAL, + QDMA_CTXT_SEL_PASID_RAM_LOW, + QDMA_CTXT_SEL_PASID_RAM_HIGH, + QDMA_CTXT_SEL_TIMER, + QDMA_CTXT_SEL_FMAP, +}; + +#define QDMA_REG_IND_CTXT_WCNT_1 1 +#define QDMA_REG_IND_CTXT_WCNT_2 2 +#define QDMA_REG_IND_CTXT_WCNT_3 3 +#define QDMA_REG_IND_CTXT_WCNT_4 4 +#define QDMA_REG_IND_CTXT_WCNT_5 5 +#define QDMA_REG_IND_CTXT_WCNT_6 6 +#define QDMA_REG_IND_CTXT_WCNT_7 7 +#define QDMA_REG_IND_CTXT_WCNT_8 8 + +/** Context: FMAP */ +#define S_FMAP_W0_QBASE 0 +#define M_FMAP_W0_QBASE 0xFFFFFFU +#define V_FMAP_W0_QBASE(x) ((x) << S_FMAP_W0_QBASE) + +#define S_FMAP_W1_QMAX 0 +#define M_FMAP_W1_QMAX 0xFFFFFFU +#define V_FMAP_W1_QMAX(x) ((x) << S_FMAP_W1_QMAX) + +/* Context: Software */ +#define S_DESC_CTXT_W0_PIDX 0 +#define M_DESC_CTXT_W0_PIDX 0xFFFFU +#define L_DESC_CTXT_W0_PIDX 16 +#define V_DESC_CTXT_W0_PIDX(x) ((x) << S_DESC_CTXT_W0_PIDX) + +#define S_DESC_CTXT_W0_F_INTR_ARM 16 + +#define S_DESC_CTXT_W0_FUNC_ID 17 +#define M_DESC_CTXT_W0_FUNC_ID 0xFFU +#define L_DESC_CTXT_W0_FUNC_ID 8 +#define V_DESC_CTXT_W0_FUNC_ID(x) ((x) << S_DESC_CTXT_W0_FUNC_ID) + +#define S_DESC_CTXT_W1_F_QEN 0 +#define S_DESC_CTXT_W1_F_FCRD_EN 1 +#define S_DESC_CTXT_W1_F_CMPL_STATUS_PEND_CHK 2 +#define S_DESC_CTXT_W1_F_CMPL_STATUS_ACC_EN 3 +#define S_DESC_CTXT_W1_F_AT 4 + +#define S_DESC_CTXT_W1_FETCH_MAX 5 +#define L_DESC_CTXT_W1_FETCH_MAX 3 + +#define S_DESC_CTXT_W1_RNG_SZ 12 +#define L_DESC_CTXT_W1_RNG_SZ 4 +#define M_DESC_CTXT_W1_RNG_SZ 0xFU +#define V_DESC_CTXT_W1_RNG_SZ(x) ((x) << S_DESC_CTXT_W1_RNG_SZ) + +#define S_DESC_CTXT_W1_DSC_SZ 16 +#define L_DESC_CTXT_W1_DSC_SZ 2 +#define M_DESC_CTXT_W1_DSC_SZ 0x3U +#define V_DESC_CTXT_W1_DSC_SZ(x) ((x) << S_DESC_CTXT_W1_DSC_SZ) + +#define S_DESC_CTXT_W1_F_BYP 18 +#define S_DESC_CTXT_W1_F_MM_CHN 19 +#define S_DESC_CTXT_W1_F_CMPL_STATUS_EN 20 +#define S_DESC_CTXT_W1_F_IRQ_EN 21 + +#define S_DESC_CTXT_W1_PORT_ID 22 +#define L_DESC_CTXT_W1_PORT_ID 3 +#define M_DESC_CTXT_W1_PORT_ID 0x7U +#define V_DESC_CTXT_W1_PORT_ID(x) ((x) << S_DESC_CTXT_W1_PORT_ID) + +#define S_DESC_CTXT_W1_F_IRQ_NO_LAST 25 + +#define S_DESC_CTXT_W1_ERR 26 +#define M_DESC_CTXT_W1_ERR 0x3U +#define L_DESC_CTXT_W1_ERR 2 +#define V_DESC_CTXT_W1_ERR(x) ((x) << S_DESC_CTXT_W1_ERR) + +#define S_DESC_CTXT_W1_F_CMPL_STATUS_ERR_SNT 28 +#define S_DESC_CTXT_W1_F_IRQ_REQ 29 +#define S_DESC_CTXT_W1_F_MRKR_DIS 30 +#define S_DESC_CTXT_W1_F_IS_MM 31 + +#define S_DESC_CTXT_W4_VEC 0 +#define M_DESC_CTXT_W4_VEC 0x7FF +#define L_DESC_CTXT_W4_VEC 11 +#define V_DESC_CTXT_W4_VEC(x) ((x) << S_DESC_CTXT_W4_VEC) + +#define S_DESC_CTXT_W1_F_INTR_AGGR 11 + +/* Context: C2H Completion Context */ + +#define S_CMPT_CTXT_W0_F_EN_STAT_DESC 0 +#define S_CMPT_CTXT_W0_F_EN_INT 1 + +#define S_CMPT_CTXT_W0_TRIG_MODE 2 +#define M_CMPT_CTXT_W0_TRIG_MODE 0x7U +#define L_CMPT_CTXT_W0_TRIG_MODE 3 +#define V_CMPT_CTXT_W0_TRIG_MODE(x) ((x) << S_CMPT_CTXT_W0_TRIG_MODE) + +#define S_CMPT_CTXT_W0_FNC_ID 5 +#define M_CMPT_CTXT_W0_FNC_ID 0xFFFU +#define L_CMPT_CTXT_W0_FNC_ID 12 +#define V_CMPT_CTXT_W0_FNC_ID(x) \ + ((x & M_CMPT_CTXT_W0_FNC_ID) << S_CMPT_CTXT_W0_FNC_ID) + +#define S_CMPT_CTXT_W0_COUNTER_IDX 17 +#define M_CMPT_CTXT_W0_COUNTER_IDX 0xFU +#define L_CMPT_CTXT_W0_COUNTER_IDX 4 +#define V_CMPT_CTXT_W0_COUNTER_IDX(x) ((x) << S_CMPT_CTXT_W0_COUNTER_IDX) + +#define S_CMPT_CTXT_W0_TIMER_IDX 21 +#define M_CMPT_CTXT_W0_TIMER_IDX 0xFU +#define L_CMPT_CTXT_W0_TIMER_IDX 4 +#define V_CMPT_CTXT_W0_TIMER_IDX(x) ((x) << S_CMPT_CTXT_W0_TIMER_IDX) + +#define S_CMPT_CTXT_W0_INT_ST 25 +#define M_CMPT_CTXT_W0_INT_ST 0x3U +#define L_CMPT_CTXT_W0_INT_ST 2 +#define V_CMPT_CTXT_W0_INT_ST(x) ((x) << S_CMPT_CTXT_W0_INT_ST) + +#define S_CMPT_CTXT_W0_F_COLOR 27 + +#define S_CMPT_CTXT_W0_RNG_SZ 28 +#define M_CMPT_CTXT_W0_RNG_SZ 0xFU +#define L_CMPT_CTXT_W0_RNG_SZ 4 +#define V_CMPT_CTXT_W0_RNG_SZ(x) ((x) << S_CMPT_CTXT_W0_RNG_SZ) + +#define S_CMPT_CTXT_W2_BADDR_64 0 +#define M_CMPT_CTXT_W2_BADDR_64 0x3FFFFFFU +#define L_CMPT_CTXT_W2_BADDR_64 26 +#define V_CMPT_CTXT_W2_BADDR_64(x) \ + (((x) & M_CMPT_CTXT_W2_BADDR_64) << S_CMPT_CTXT_W2_BADDR_64) + +#define S_CMPT_CTXT_W2_DESC_SIZE 26 +#define M_CMPT_CTXT_W2_DESC_SIZE 0x3U +#define L_CMPT_CTXT_W2_DESC_SIZE 2 +#define V_CMPT_CTXT_W2_DESC_SIZE(x) ((x) << S_CMPT_CTXT_W2_DESC_SIZE) + +#define S_CMPT_CTXT_W2_PIDX_L 28 +#define M_CMPT_CTXT_W2_PIDX_L 0xFU +#define L_CMPT_CTXT_W2_PIDX_L 4 +#define V_CMPT_CTXT_W2_PIDX_L(x) ((x) << S_CMPT_CTXT_W2_PIDX_L) + +#define S_CMPT_CTXT_W3_PIDX_H 0 +#define M_CMPT_CTXT_W3_PIDX_H 0xFFFU +#define L_CMPT_CTXT_W3_PIDX_H 12 +#define V_CMPT_CTXT_W3_PIDX_H(x) ((x) << S_CMPT_CTXT_W3_PIDX_H) + +#define S_CMPT_CTXT_W3_CIDX 12 +#define M_CMPT_CTXT_W3_CIDX 0xFFFFU +#define L_CMPT_CTXT_W3_CIDX 16 +#define V_CMPT_CTXT_W3_CIDX(x) ((x) << S_CMPT_CTXT_W3_CIDX) + +#define S_CMPT_CTXT_W3_F_VALID 28 + +#define S_CMPT_CTXT_W3_ERR 29 +#define M_CMPT_CTXT_W3_ERR 0x3U +#define L_CMPT_CTXT_W3_ERR 2 +#define V_CMPT_CTXT_W3_ERR(x) ((x) << S_CMPT_CTXT_W3_ERR) + +#define S_CMPT_CTXT_W3_F_TRIG_PEND 31 + +#define S_CMPT_CTXT_W4_F_TMR_RUNNING 0 +#define S_CMPT_CTXT_W4_F_FULL_UPDATE 1 +#define S_CMPT_CTXT_W4_F_OVF_CHK_DIS 2 +#define S_CMPT_CTXT_W4_F_AT 3 + +#define S_CMPT_CTXT_W4_VEC 4 +#define M_CMPT_CTXT_W4_VEC 0x7FF +#define L_CMPT_CTXT_W4_VEC 11 +#define V_CMPT_CTXT_W4_VEC(x) ((x) << S_CMPT_CTXT_W4_VEC) + +#define S_CMPT_CTXT_W4_F_INTR_AGGR 15 + +/* Context: C2H Prefetch */ +#define S_PFTCH_W0_F_BYPASS 0 + +#define S_PFTCH_W0_BUF_SIZE_IDX 1 +#define M_PFTCH_W0_BUF_SIZE_IDX 0xFU +#define L_PFTCH_W0_BUF_SIZE_IDX 4 +#define V_PFTCH_W0_BUF_SIZE_IDX(x) ((x) << S_PFTCH_W0_BUF_SIZE_IDX) + +#define S_PFTCH_W0_PORT_ID 5 +#define M_PFTCH_W0_PORT_ID 0x7U +#define L_PFTCH_W0_PORT_ID 3 +#define V_PFTCH_W0_PORT_ID(x) ((x) << S_PFTCH_W0_PORT_ID) + +/* TBD: uncomment when introduced back in future RTLs + * #define S_PFTCH_W0_FUNC_ID 8 + * #define M_PFTCH_W0_FUNC_ID 0xFFFU + * #define L_PFTCH_W0_FUNC_ID 12 + * #define V_PFTCH_W0_FUNC_ID(x) ((x) << S_PFTCH_W0_FUNC_ID) + */ + +#define S_PFTCH_W0_F_ERR 26 +#define S_PFTCH_W0_F_EN_PFTCH 27 +#define S_PFTCH_W0_F_Q_IN_PFTCH 28 + +#define S_PFTCH_W0_SW_CRDT_L 29 +#define M_PFTCH_W0_SW_CRDT_L 0x7U +#define L_PFTCH_W0_SW_CRDT_L 3 +#define V_PFTCH_W0_SW_CRDT_L(x) ((x) << S_PFTCH_W0_SW_CRDT_L) + +#define S_PFTCH_W1_SW_CRDT_H 0 +#define M_PFTCH_W1_SW_CRDT_H 0x1FFFU +#define L_PFTCH_W1_SW_CRDT_H 13 +#define V_PFTCH_W1_SW_CRDT_H(x) ((x) << S_PFTCH_W1_SW_CRDT_H) + +#define S_PFTCH_W1_F_VALID 13 + +/* Context: Interrupt Coalescing */ + +#define S_INT_AGGR_W0_F_VALID 0 + +#define S_INT_AGGR_W0_VEC_ID 1 +#define M_INT_AGGR_W0_VEC_ID 0x7FFU +#define L_INT_AGGR_W0_VEC_ID 11 +#define V_INT_AGGR_W0_VEC_ID(x) ((x) << S_INT_AGGR_W0_VEC_ID) + +#define S_INT_AGGR_W0_F_INT_ST 13 +#define S_INT_AGGR_W0_F_COLOR 14 + +#define S_INT_AGGR_W0_BADDR_64 15 +#define M_INT_AGGR_W0_BADDR_64 0x1FFFFU +#define L_INT_AGGR_W0_BADDR_64 17 +#define V_INT_AGGR_W0_BADDR_64(x) \ + (((x) & M_INT_AGGR_W0_BADDR_64) << S_INT_AGGR_W0_BADDR_64) + +#define S_INT_AGGR_W2_BADDR_64 0 +#define M_INT_AGGR_W2_BADDR_64 0x7U +#define L_INT_AGGR_W2_BADDR_64 3 +#define V_INT_AGGR_W2_BADDR_64(x) \ + (((x) & M_INT_AGGR_W2_BADDR_64) << S_INT_AGGR_W2_BADDR_64) + +#define S_INT_AGGR_W2_VEC_SIZE 3 +#define M_INT_AGGR_W2_VEC_SIZE 0x7U +#define L_INT_AGGR_W2_VEC_SIZE 3 +#define V_INT_AGGR_W2_VEC_SIZE(x) ((x) << S_INT_AGGR_W2_VEC_SIZE) + +#define S_INT_AGGR_W2_PIDX 6 +#define M_INT_AGGR_W2_PIDX 0xFFFU +#define L_INT_AGGR_W2_PIDX 12 +#define V_INT_AGGR_W2_PIDX ((x) << S_INT_AGGR_W2_PIDX) + +#define S_INT_AGGR_W2_F_AT 18 + + +/* + * PIDX/CIDX update + */ + +#define S_INTR_CIDX_UPD_SW_CIDX 0 +#define M_INTR_CIDX_UPD_SW_CIDX 0xFFFFU +#define V_INTR_CIDX_UPD_SW_CIDX(x) ((x) << S_INTR_CIDX_UPD_SW_CIDX) + +#define S_INTR_CIDX_UPD_RING_INDEX 16 +#define M_INTR_CIDX_UPD_RING_INDEX 0xFFU +#define V_INTR_CIDX_UPD_RING_INDEX(x) ((x) << S_INTR_CIDX_UPD_RING_INDEX) + +#define S_CMPL_STATUS_PIDX_UPD_EN_INT 16 + +/* + * CMPT CIDX update + */ +#define S_CMPT_CIDX_UPD_SW_CIDX 0 +#define M_CMPT_CIDX_UPD_SW_IDX 0xFFFFU +#define V_CMPT_CIDX_UPD_SW_IDX(x) ((x) << S_CMPT_CIDX_UPD_SW_CIDX) + +#define S_CMPT_CIDX_UPD_CNTER_IDX 16 +#define M_CMPT_CIDX_UPD_CNTER_IDX 0xFU +#define V_CMPT_CIDX_UPD_CNTER_IDX(x) ((x) << S_CMPT_CIDX_UPD_CNTER_IDX) + +#define S_CMPT_CIDX_UPD_TIMER_IDX 20 +#define M_CMPT_CIDX_UPD_TIMER_IDX 0xFU +#define V_CMPT_CIDX_UPD_TIMER_IDX(x) ((x) << S_CMPT_CIDX_UPD_TIMER_IDX) + +#define S_CMPT_CIDX_UPD_TRIG_MODE 24 +#define M_CMPT_CIDX_UPD_TRIG_MODE 0x7U +#define V_CMPT_CIDX_UPD_TRIG_MODE(x) ((x) << S_CMPT_CIDX_UPD_TRIG_MODE) + +#define S_CMPT_CIDX_UPD_EN_STAT_DESC 27 +#define S_CMPT_CIDX_UPD_EN_INT 28 + +/* + * descriptor & writeback status + */ +/** + * @struct - qdma_mm_desc + * @brief memory mapped descriptor format + */ +struct qdma_mm_desc { + /** source address */ + __be64 src_addr; + /** flags */ + __be32 flag_len; + /** reserved 32 bits */ + __be32 rsvd0; + /** destination address */ + __be64 dst_addr; + /** reserved 64 bits */ + __be64 rsvd1; +}; + +#define S_DESC_F_DV 28 +#define S_DESC_F_SOP 29 +#define S_DESC_F_EOP 30 + + +#define S_H2C_DESC_F_SOP 1 +#define S_H2C_DESC_F_EOP 2 + + +#define S_H2C_DESC_NUM_GL 0 +#define M_H2C_DESC_NUM_GL 0x7U +#define V_H2C_DESC_NUM_GL(x) ((x) << S_H2C_DESC_NUM_GL) + +#define S_H2C_DESC_NUM_CDH 3 +#define M_H2C_DESC_NUM_CDH 0xFU +#define V_H2C_DESC_NUM_CDH(x) ((x) << S_H2C_DESC_NUM_CDH) + +#define S_H2C_DESC_F_ZERO_CDH 13 +#define S_H2C_DESC_F_EOT 14 +#define S_H2C_DESC_F_REQ_CMPL_STATUS 15 + +/* FIXME pld_len and flags members are part of custom descriptor format needed + * by example design for ST loopback and desc bypass + */ +/** + * @struct - qdma_h2c_desc + * @brief memory mapped descriptor format + */ +struct qdma_h2c_desc { + __be16 cdh_flags; /**< cdh flags */ + __be16 pld_len; /**< current packet length */ + __be16 len; /**< total packet length */ + __be16 flags; /**< descriptor flags */ + __be64 src_addr; /**< source address */ +}; + +/** + * @struct - qdma_c2h_desc + * @brief qdma c2h descriptor + */ +struct qdma_c2h_desc { + __be64 dst_addr; /**< destination address */ +}; + +/** + * @struct - qdma_desc_cmpl_status + * @brief qdma writeback descriptor + */ +struct qdma_desc_cmpl_status { + __be16 pidx; /**< producer index */ + __be16 cidx; /**< consumer index */ + __be32 rsvd; /**< reserved 32 bits */ +}; + +#define S_C2H_CMPT_ENTRY_F_FORMAT 0 +#define F_C2H_CMPT_ENTRY_F_FORMAT (1 << S_C2H_CMPT_ENTRY_F_FORMAT) +#define DFORMAT0_CMPL_MASK 0xF /* udd starts at bit 4 */ +#define DFORMAT1_CMPL_MASK 0xFFFFF /* udd starts at bit 20 */ + + +#define S_C2H_CMPT_ENTRY_F_COLOR 1 +#define F_C2H_CMPT_ENTRY_F_COLOR (1 << S_C2H_CMPT_ENTRY_F_COLOR) + +#define S_C2H_CMPT_ENTRY_F_ERR 2 +#define F_C2H_CMPT_ENTRY_F_ERR (1 << S_C2H_CMPT_ENTRY_F_ERR) + +#define S_C2H_CMPT_ENTRY_F_DESC_USED 3 +#define F_C2H_CMPT_ENTRY_F_DESC_USED (1 << S_C2H_CMPT_ENTRY_F_DESC_USED) + +#define S_C2H_CMPT_ENTRY_LENGTH 4 +#define M_C2H_CMPT_ENTRY_LENGTH 0xFFFFU +#define L_C2H_CMPT_ENTRY_LENGTH 16 +#define V_C2H_CMPT_ENTRY_LENGTH(x) \ + (((x) & M_C2H_CMPT_ENTRY_LENGTH) << S_C2H_CMPT_ENTRY_LENGTH) + +#define S_C2H_CMPT_ENTRY_F_EOT 20 +#define F_C2H_CMPT_ENTRY_F_EOT (1 << S_C2H_CMPT_ENTRY_F_EOT) + +#define S_C2H_CMPT_ENTRY_F_USET_INTR 21 + +#define S_C2H_CMPT_USER_DEFINED 22 +#define V_C2H_CMPT_USER_DEFINED(x) ((x) << S_C2H_CMPT_USER_DEFINED) + +#define M_C2H_CMPT_ENTRY_DMA_INFO 0xFFFFFF +#define L_C2H_CMPT_ENTRY_DMA_INFO 3 /* 20 bits */ +/** + * @struct - qdma_c2h_cmpt_cmpl_status + * @brief qdma completion data descriptor + */ +struct qdma_c2h_cmpt_cmpl_status { + __be16 pidx; /**< producer index */ + __be16 cidx; /**< consumer index */ + __be32 color_isr_status; /**< isr color and status */ +}; +#define S_C2H_CMPT_F_COLOR 0 + +#define S_C2H_CMPT_INT_STATE 1 +#define M_C2H_CMPT_INT_STATE 0x3U + +#define STM_REG_BASE 0x02000000 +#define STM_REG_IND_CTXT_DATA_BASE 0x0 +#define STM_REG_IND_CTXT_DATA3 0xC +#define STM_REG_IND_CTXT_CMD 0x14 +#define STM_REG_REV 0x18 +#define STM_REG_C2H_DATA8 0x20 +#define STM_REG_IND_CTXT_DATA5 0x24 +#define STM_REG_H2C_MODE 0x30 +#define STM_REG_IND_CTXT_REG_COUNT 5 +#define STM_SUPPORTED_REV 0x4 +#define STM_ENABLED_DEVICE 0x6aa0 +#define STM_MAX_SUPPORTED_QID 64 +#define STM_MAX_PKT_SIZE 4096 +#define STM_PORT_MAP 0xE1E1 + +#define S_STM_H2C_CTXT_ENTRY_VALID 0 +#define F_STM_H2C_CTXT_ENTRY_VALID (1 << S_STM_H2C_CTXT_ENTRY_VALID) +#define S_STM_C2H_CTXT_ENTRY_VALID 16 +#define F_STM_C2H_CTXT_ENTRY_VALID (1 << S_STM_C2H_CTXT_ENTRY_VALID) +#define S_STM_EN_STMA_BKCHAN 15 +#define F_STM_EN_STMA_BKCHAN (1 << S_STM_EN_STMA_BKCHAN) +#define S_STM_PORT_MAP 16 + +enum ind_stm_addr { + STM_IND_ADDR_C2H_MAP = 0x2, + STM_IND_ADDR_FORCED_CAN = 0x8, + STM_IND_ADDR_Q_CTX_H2C, + STM_IND_ADDR_H2C_MAP, + STM_IND_ADDR_Q_CTX_C2H, +}; + +enum ind_stm_cmd_op { + STM_CSR_CMD_WR = 4, + STM_CSR_CMD_RD = 8, +}; + +#define S_STM_CTXT_QID 16 +#define S_STM_CTXT_C2H_SLR 8 +#define S_STM_CTXT_C2H_TDEST_H 0 +#define S_STM_CTXT_C2H_TDEST_L 24 +#define S_STM_CTXT_C2H_FID 16 +#define S_STM_CTXT_H2C_SLR 8 +#define S_STM_CTXT_H2C_TDEST_H 0 +#define S_STM_CTXT_H2C_TDEST_L 24 +#define S_STM_CTXT_H2C_FID 16 +#define S_STM_CTXT_PKT_LIM 8 +#define S_STM_CTXT_MAX_ASK 0 +#define S_STM_CTXT_DPPKT 24 +#define S_STM_CTXT_LOG2_DPPKT 18 + +#define S_STM_CMD_QID 0 +#define S_STM_CMD_FID 12 +#define S_STM_CMD_ADDR 24 +#define S_STM_CMD_OP 28 + +/* + * HW API + */ + +#include "xdev.h" + +#define __read_reg(xdev, reg_addr) (readl(xdev->regs + reg_addr)) +#ifdef DEBUG__ +#define __write_reg(xdev, reg_addr, val) \ + do { \ + pr_debug("%s, reg 0x%x, val 0x%x.\n", \ + xdev->conf.name, reg_addr, (u32)val); \ + writel(val, xdev->regs + reg_addr); \ + } while (0) +#else +#define __write_reg(xdev, reg_addr, val) (writel(val, xdev->regs + reg_addr)) +#endif /* #ifdef DEBUG__ */ + +struct xlnx_dma_dev; +int hw_monitor_reg(struct xlnx_dma_dev *xdev, unsigned int reg, u32 mask, + u32 val, unsigned int interval_us, unsigned int timeout_us); +#ifndef __QDMA_VF__ +void qdma_device_attributes_get(struct xlnx_dma_dev *xdev); +void hw_mm_channel_enable(struct xlnx_dma_dev *xdev, int channel, bool c2h); +void hw_mm_channel_disable(struct xlnx_dma_dev *xdev, int channel, bool c2h); +void hw_set_global_csr(struct xlnx_dma_dev *xdev); +int hw_set_fmap(struct xlnx_dma_dev *xdev, u16 func_id, unsigned int qbase, + unsigned int qmax); +int hw_read_fmap(struct xlnx_dma_dev *xdev, u16 func_id, unsigned int *qbase, + unsigned int *qmax); +int hw_indirect_ctext_prog(struct xlnx_dma_dev *xdev, unsigned int qid, + enum ind_ctxt_cmd_op op, + enum ind_ctxt_cmd_sel sel, u32 *data, + unsigned int cnt, bool verify); +int hw_init_global_context_memory(struct xlnx_dma_dev *xdev); +int hw_init_qctxt_memory(struct xlnx_dma_dev *xdev, unsigned int qbase, + unsigned int qmax); +int hw_indirect_stm_prog(struct xlnx_dma_dev *xdev, unsigned int qid_hw, + u8 fid, enum ind_stm_cmd_op op, + enum ind_stm_addr addr, u32 *data, unsigned int cnt, + bool clear); +int qdma_trq_c2h_config(struct xlnx_dma_dev *xdev); + +#endif /* #ifndef __QDMA_VF__ */ + +#ifndef __QDMA_VF__ +#define QDMA_VERSION_REG 0x134 +#define M_RTL_VERSION_MASK 0xFF0000 +#define S_RTL_VERSION_SHIFT 16 +#define M_VIVADO_RELEASE_ID_MASK 0x0F000000 +#define S_VIVADO_RELEASE_ID_SHIFT 24 +#define M_EVEREST_IP_MASK 0x10000000 +#define S_EVEREST_IP_SHIFT 28 +#else +#define QDMA_VERSION_REG 0x1014 +#define M_RTL_VERSION_MASK 0xFF +#define S_RTL_VERSION_SHIFT 0 +#define M_VIVADO_RELEASE_ID_MASK 0x0F00 +#define S_VIVADO_RELEASE_ID_SHIFT 8 +#define M_EVEREST_IP_MASK 0x1000 +#define S_EVEREST_IP_SHIFT 12 +#endif + +/* HW Error Registers */ + +#define QDMA_C2H_ERR_INT 0x0B04 +#define S_QDMA_C2H_ERR_INT_FUNC 0 +#define M_QDMA_C2H_ERR_INT_FUNC 0xFFU +#define V_QDMA_C2H_ERR_INT_FUNC(x) ((x) << S_QDMA_C2H_ERR_INT_FUNC) + +#define S_QDMA_C2H_ERR_INT_VEC 12 +#define M_QDMA_C2H_ERR_INT_VEC 0x7FFU +#define V_QDMA_C2H_ERR_INT_VEC(x) ((x) << S_QDMA_C2H_ERR_INT_VEC) + +#define S_QDMA_C2H_ERR_INT_F_ERR_INT_ARM 24 + + +#define QDMA_REG_GLBL_ERR_STAT 0x248 +#define QDMA_REG_GLBL_ERR_MASK 0x24C +#define QDMA_REG_GLBL_ERR_MASK_VALUE 0xFFFU +#define QDMA_REG_GLBL_F_ERR_RAM_SBE 0 +#define QDMA_REG_GLBL_F_ERR_RAM_DBE 1 +#define QDMA_REG_GLBL_F_ERR_DSC 2 +#define QDMA_REG_GLBL_F_ERR_TRQ 3 +#define QDMA_REG_GLBL_F_ERR_H2C_MM_0 4 +#define QDMA_REG_GLBL_F_ERR_H2C_MM_1 5 +#define QDMA_REG_GLBL_F_ERR_C2H_MM_0 6 +#define QDMA_REG_GLBL_F_ERR_C2H_MM_1 7 +#define QDMA_REG_GLBL_F_ERR_C2H_ST 8 +#define QDMA_REG_GLBL_F_ERR_IND_CTXT_CMD 9 +#define QDMA_REG_GLBL_F_ERR_BDG 10 +#define QDMA_REG_GLBL_F_ERR_H2C_ST 11 + + +/* Global Descriptor Error */ +#define QDMA_GLBL_DSC_ERR_STS 0x254 +#define QDMA_GLBL_DSC_ERR_MSK 0x258 +#define QDMA_GLBL_DSC_ERR_MSK_VALUE 0x1F9023FU +#define QDMA_GLBL_DSC_ERR_STS_A_F_HDR_POIS 0 +#define QDMA_GLBL_DSC_ERR_STS_A_F_UR_CA 1 +#define QDMA_GLBL_DSC_ERR_STS_A_F_PARAM_MISMATCH 2 +#define QDMA_GLBL_DSC_ERR_STS_A_F_UNEXP_ADDR 3 +#define QDMA_GLBL_DSC_ERR_STS_A_F_TAG 4 +#define QDMA_GLBL_DSC_ERR_STS_A_F_FLR 5 +#define QDMA_GLBL_DSC_ERR_STS_A_F_TIMEOUT 9 +#define QDMA_GLBL_DSC_ERR_STS_A_F_DATA_POIS 16 +#define QDMA_GLBL_DSC_ERR_STS_A_F_FLR_CANCEL 19 +#define QDMA_GLBL_DSC_ERR_STS_A_F_DMA 20 +#define QDMA_GLBL_DSC_ERR_STS_A_F_DSC 21 +#define QDMA_GLBL_DSC_ERR_STS_A_F_RQ_CHAN 22 +#define QDMA_GLBL_DSC_ERR_STS_A_F_RAM_DBE 23 +#define QDMA_GLBL_DSC_ERR_STS_A_F_RAM_SBE 24 + + +#define QDMA_GLBL_DSC_ERR_LOG0 0x25C +#define QDMA_GLBL_DSC_ERR_LOG1 0x260 + + + +#define QDMA_GLBL_TRQ_ERR_STS 0x264 +#define QDMA_GLBL_TRQ_ERR_STS_F_UN_MAPPED 0 +#define QDMA_GLBL_TRQ_ERR_STS_F_QID_RANGE 1 +#define QDMA_GLBL_TRQ_ERR_STS_F_VF_ACCESS 2 +#define QDMA_GLBL_TRQ_ERR_STS_F_TCP_TIMEOUT 3 + +#define QDMA_GLBL_TRQ_ERR_MSK 0x268 +#define QDMA_GLBL_TRQ_ERR_MSK_VALUE 0xFU + +#define QDMA_GLBL_TRQ_ERR_LOG 0x26C +#define S_QDMA_GLBL_TRQ_ERR_LOG_ADDR 0 +#define M_QDMA_GLBL_TRQ_ERR_LOG_ADDR 0xFFFFU +#define V_QDMA_GLBL_TRQ_ERR_LOG_ADDR(x) \ + ((x) << S_QDMA_GLBL_TRQ_ERR_LOG_ADDR) +#define S_QDMA_GLBL_TRQ_ERR_LOG_FUNC 16 +#define M_QDMA_GLBL_TRQ_ERR_LOG_FUNC 0xFFFU +#define V_QDMA_GLBL_TRQ_ERR_LOG_FUNC(x) \ + ((x) << S_QDMA_GLBL_TRQ_ERR_LOG_FUNC) +#define S_QDMA_GLBL_TRQ_ERR_LOG_TARGET 28 +#define M_QDMA_GLBL_TRQ_ERR_LOG_TARGET 0xFU +#define V_QDMA_GLBL_TRQ_ERR_LOG_TARGET(x) \ + ((x) << S_QDMA_GLBL_TRQ_ERR_LOG_TARGET) + +/* TRQ errors */ +/** + * trq_err_sel - possible trq errors + */ +enum trq_err_sel { + /**< trq errors being to global 1 registers*/ + QDMA_TRQ_ERR_SEL_GLBL1 = 1, + /**< trq errors being to global 2 registers*/ + QDMA_TRQ_ERR_SEL_GLBL2 = 2, + /**< trq errors being to global registers*/ + QDMA_TRQ_ERR_SEL_GLBL, + /**< trq errors being to fmap registers*/ + QDMA_TRQ_ERR_SEL_FMAP, + /**< trq errors being to indirect interrupt*/ + QDMA_TRQ_ERR_SEL_IND, + /**< trq errors being to c2h registers*/ + QDMA_TRQ_ERR_SEL_C2H, + /**< trq errors being to c2h mm0 registers*/ + QDMA_TRQ_ERR_SEL_C2H_MM0 = 9, + /**< trq errors being to h2c mm0 registers*/ + QDMA_TRQ_ERR_SEL_H2C_MM0 = 11, + /**< trq errors being to pf queue registers */ + QDMA_TRQ_ERR_SEL_QUEUE_PF = 13, +}; + +/* C2H ERROR Status Registers */ +#define QDMA_REG_C2H_ERR_STAT 0xAF0 +#define QDMA_REG_C2H_ERR_MASK 0xAF4 +#define QDMA_REG_C2H_ERR_MASK_VALUE 0xFEDBU +#define QDMA_REG_C2H_ERR_F_MTY_MISMATCH 0 +#define QDMA_REG_C2H_ERR_F_LEN_MISMATCH 1 +#define QDMA_REG_C2H_ERR_F_QID_MISMATCH 3 +#define QDMA_REG_C2H_ERR_F_DSC_RSP_ERR 4 +#define QDMA_REG_C2H_ERR_F_ENG_WPL_DATA_PAR 6 +#define QDMA_REG_C2H_ERR_F_MSI_INT_FAIL 7 +#define QDMA_REG_C2H_ERR_F_DESC_CNT 9 +#define QDMA_REG_C2H_ERR_F_PORT_ID_CTXT_MISMATCH 10 +#define QDMA_REG_C2H_ERR_F_PORT_ID_BYP_IN_MISMATCH 11 +#define QDMA_REG_C2H_ERR_F_CMPT_INV_Q 12 +#define QDMA_REG_C2H_ERR_F_CMPT_QFULL 13 +#define QDMA_REG_C2H_ERR_F_CMPT_CIDX 14 +#define QDMA_REG_C2H_ERR_F_CMPT_PRTY 15 + + +#define QDMA_C2H_FATAL_ERR_STAT 0xAF8 +#define QDMA_C2H_FATAL_ERR_MASK 0xAFC +#define QDMA_C2H_FATAL_ERR_MASK_VALUE 0x7DF1BU +#define QDMA_C2H_FATAL_ERR_STAT_MTY_MISMATCH 0 +#define QDMA_C2H_FATAL_ERR_STAT_LEN_MISMATCH 1 +#define QDMA_C2H_FATAL_ERR_STAT_QID_MISMATCH 3 +#define QDMA_C2H_FATAL_ERR_STAT_TIMER_FIFO_RAM_RDBE 4 +#define QDMA_C2H_FATAL_ERR_STAT_PFTCH_LL_RAM_RDBE 8 +#define QDMA_C2H_FATAL_ERR_STAT_CMPT_CTXT_RAM_RDBE 9 +#define QDMA_C2H_FATAL_ERR_STAT_PFTCH_CTXT_RAM_RDBE 10 +#define QDMA_C2H_FATAL_ERR_STAT_DESC_REQ_FIFO_RAM_RDBE 11 +#define QDMA_C2H_FATAL_ERR_STAT_INT_CTXT_RAM_RDBE 12 +#define QDMA_C2H_FATAL_ERR_STAT_CMPT_AGGR_DAT_RAM_DBE 14 +#define QDMA_C2H_FATAL_ERR_STAT_TUSER_FIFO_RAM_DBE 15 +#define QDMA_C2H_FATAL_ERR_STAT_QID_FIFO_RAM_DBE 16 +#define QDMA_C2H_FATAL_ERR_STAT_PLD_FIFO_RAM_DBE 17 +#define QDMA_C2H_FATAL_ERR_STAT_WPL_DAT_PAR 18 + +#define QDMA_C2H_FATAL_ERR_ENABLE 0xB00 +#define QDMA_C2H_FATAL_ERR_ENABLE_F_EN_WRQ_DIS 0 +#define QDMA_C2H_FATAL_ERR_ENABLE_F_EN_WPL_PAR_INV 1 + + +#define QDMA_C2H_FIRST_ERR_QID 0xB30 +#define S_QDMA_C2H_FIRST_ERR_QID 0 +#define M_QDMA_C2H_FIRST_ERR_QID 0xFFFU +#define V_QDMA_C2H_FIRST_ERR_QID(x) \ + ((x) << S_QDMA_C2H_FIRST_ERR_QID) +#define S_QDMA_C2H_FIRST_ERR_TYPE 16 +#define M_QDMA_C2H_FIRST_ERR_TYPE 0x1FU +#define V_QDMA_C2H_FIRST_ERR_TYPE(x) \ + ((x) << S_QDMA_C2H_FIRST_ERR_TYPE) + +#define QDMA_C2H_PFCH_CACHE_DEPTH 0xBE0 +#define QDMA_C2H_CMPT_COAL_BUF_DEPTH 0xBE4 + +#define QDMA_H2C_ERR_STAT 0xE00 +#define QDMA_H2C_ERR_MASK 0xE04 +#define QDMA_H2C_ERR_MASK_VALUE 0x7U +#define QDMA_H2C_ERR_ZERO_LEN_DSC 0 +#define QDMA_H2C_ERR_CMPL_STATUS_MOP 1 +#define QDMA_H2C_ERR_NO_DMA_DSC 2 + +#define QDMA_H2C_DATA_THRESHOLD 0xE24 + +/* TRQ errors */ +/** + * hw_err_type_sel - hw error types + */ +enum hw_err_type_sel { + GLBL_ERR = 0, /**< global errors*/ + GLBL_DSC_ERR, /**< descriptor errors*/ + GLBL_TRQ_ERR, /**< trq errors*/ + C2H_ERR, /**< c2h errors*/ + C2H_FATAL_ERR, /**< c2h fatal errors*/ + H2C_ERR, /**< h2c errors*/ + ECC_SB_ERR, /**< ECC single bit error */ + ECC_DB_ERR, /**< ECC double bit error */ + HW_ERRS /**< hardware errors*/ +}; + +/** ECC Single bit errors */ +#define QDMA_RAM_SBE_MASK_A (0xF0) +#define QDMA_RAM_SBE_STAT_A (0xF4) +#define QDMA_RAM_SBE_MASK_VALUE (0xFFFFFF11U) +#define QDMA_RAM_SBE_STAT_MI_H2C0_DAT_ERR 0 +#define QDMA_RAM_SBE_STAT_MI_C2H0_DAT_ERR 4 +#define QDMA_RAM_SBE_STAT_H2C_RD_BRG_DAT_ERR 9 +#define QDMA_RAM_SBE_STAT_H2C_WR_BRG_DAT_ERR 10 +#define QDMA_RAM_SBE_STAT_C2H_RD_BRG_DAT_ERR 11 +#define QDMA_RAM_SBE_STAT_C2H_WR_BRG_DAT_ERR 12 +#define QDMA_RAM_SBE_STAT_FUNC_MAP_ERR 13 +#define QDMA_RAM_SBE_STAT_DSC_HW_CTXT_ERR 14 +#define QDMA_RAM_SBE_STAT_DSC_CRD_RCV_ER 15 +#define QDMA_RAM_SBE_STAT_DSC_SW_CTXT_ERR 16 +#define QDMA_RAM_SBE_STAT_DSC_CPLI_ERR 17 +#define QDMA_RAM_SBE_STAT_DSC_CPLD_ERR 18 +#define QDMA_RAM_SBE_STAT_PASID_CTXT_RAM_ERR 19 +#define QDMA_RAM_SBE_STAT_TIMER_FIFO_RAM_ERR 20 +#define QDMA_RAM_SBE_STAT_PAYLOAD_FIFO_RAM_ERR 21 +#define QDMA_RAM_SBE_STAT_QID_FIFO_RAM_ERR 22 +#define QDMA_RAM_SBE_STAT_TUSER_FIFO_RAM_ERR 23 +#define QDMA_RAM_SBE_STAT_WRB_COAL_DATA_RAM_ERR 24 +#define QDMA_RAM_SBE_STAT_INT_QID2VEC_RAM_ERR 25 +#define QDMA_RAM_SBE_STAT_INT_CTXT_RAM_ERR 26 +#define QDMA_RAM_SBE_STAT_DESC_REQ_FIFO_RAM_ERR 27 +#define QDMA_RAM_SBE_STAT_PFCH_CTXT_RAM_ERR 28 +#define QDMA_RAM_SBE_STAT_WRB_CTXT_RAM_ERR 29 +#define QDMA_RAM_SBE_STAT_PFCH_LL_RAM_ERR 30 +#define QDMA_RAM_SBE_STAT_H2C_PEND_FIFO_ERR 31 + +/** ECC Double Bit errors */ +#define QDMA_RAM_DBE_MASK_A (0xF8) +#define QDMA_RAM_DBE_STAT_A (0xFc) +#define QDMA_RAM_DBE_MASK_VALUE (0xFFFFFF11U) +#define QDMA_RAM_DBE_STAT_MI_H2C0_DAT_ERR 31 +#define QDMA_RAM_DBE_STAT_MI_C2H0_DAT_ERR 30 +#define QDMA_RAM_DBE_STAT_H2C_RD_BRG_DAT_ERR 29 +#define QDMA_RAM_DBE_STAT_H2C_WR_BRG_DAT_ERR 28 +#define QDMA_RAM_DBE_STAT_C2H_RD_BRG_DAT_ERR 27 +#define QDMA_RAM_DBE_STAT_C2H_WR_BRG_DAT_ERR 26 +#define QDMA_RAM_DBE_STAT_FUNC_MAP_ERR 25 +#define QDMA_RAM_DBE_STAT_DSC_HW_CTXT_ERR 24 +#define QDMA_RAM_DBE_STAT_DSC_CRD_RCV_ERR 23 +#define QDMA_RAM_DBE_STAT_DSC_SW_CTXT_ERR 22 +#define QDMA_RAM_DBE_STAT_DSC_CPLI_ERR 21 +#define QDMA_RAM_DBE_STAT_DSC_CPLD_ERR 20 +#define QDMA_RAM_DBE_STAT_PASID_CTXT_RAM_ERR 19 +#define QDMA_RAM_DBE_STAT_TIMER_FIFO_RAM_ERR 18 +#define QDMA_RAM_DBE_STAT_PAYLOAD_FIFO_RAM_ERR 17 +#define QDMA_RAM_DBE_STAT_QID_FIFO_RAM_ERR 16 +#define QDMA_RAM_DBE_STAT_TUSER_FIFO_RAM_ERR 15 +#define QDMA_RAM_DBE_STAT_WRB_COAL_DATA_RAM_ERR 14 +#define QDMA_RAM_DBE_STAT_INT_QID2VEC_RAM_ERR 13 +#define QDMA_RAM_DBE_STAT_INT_CTXT_RAM_ERR 12 +#define QDMA_RAM_DBE_STAT_DESC_REQ_FIFO_RAM_ERR 11 +#define QDMA_RAM_DBE_STAT_PFCH_CTXT_RAM_ERR 10 +#define QDMA_RAM_DBE_STAT_WRB_CTXT_RAM_ERR 9 +#define QDMA_RAM_DBE_STAT_PFCH_LL_RAM_ERR 4 +#define QDMA_RAM_DBE_STAT_H2C_PEND_FIFO_ERR 0 + +#endif /* ifndef __QDMA_REGS_H__ */ diff --git a/QDMA/linux-kernel/libqdma/qdma_sriov.c b/QDMA/linux-kernel/libqdma/qdma_sriov.c new file mode 100644 index 0000000..c14c28b --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_sriov.c @@ -0,0 +1,213 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include <linux/kernel.h> +#include <linux/string.h> +#include <linux/errno.h> + +#include "xdev.h" +#include "qdma_mbox.h" + +#ifdef __QDMA_VF__ +int xdev_sriov_vf_offline(struct xlnx_dma_dev *xdev, u8 func_id) +{ + struct mbox_msg *m; + int rv; + + m = qdma_mbox_msg_alloc(xdev, MBOX_OP_BYE); + if (!m) + return -ENOMEM; + + rv = qdma_mbox_msg_send(xdev, m, 0, 0, 0); + if (rv < 0) { + pr_info("%s, send bye failed %d.\n", xdev->conf.name, rv); + return rv; + } + + return 0; +} + +int xdev_sriov_vf_online(struct xlnx_dma_dev *xdev, u8 func_id) +{ + struct mbox_msg *m; + int rv; + + m = qdma_mbox_msg_alloc(xdev, MBOX_OP_HELLO); + if (!m) + return -ENOMEM; + + rv = qdma_mbox_msg_send(xdev, m, 0, 0, 0); + if (rv < 0) { + pr_info("%s, send hello failed %d.\n", xdev->conf.name, rv); + return rv; + } + + /* initial value should always be qmax =1, qbase=0 */ + xdev->conf.qsets_max = 1; + xdev->conf.qsets_base = 0; + qdma_device_set_cfg_state((unsigned long)xdev, QMAX_CFG_INITIAL); + + return 0; +} + +#elif defined(CONFIG_PCI_IOV) + +struct qdma_vf_info { + unsigned short func_id; + unsigned short qbase; + unsigned short qmax; + unsigned short filler; +}; + +void xdev_sriov_disable(struct xlnx_dma_dev *xdev) +{ + struct pci_dev *pdev = xdev->conf.pdev; + + pci_disable_sriov(pdev); + + kfree(xdev->vf_info); + xdev->vf_info = NULL; + xdev->vf_count = 0; + + qdma_mbox_stop(xdev); +} + +int xdev_sriov_enable(struct xlnx_dma_dev *xdev, int num_vfs) +{ + struct pci_dev *pdev = xdev->conf.pdev; + int current_vfs = pci_num_vf(pdev); + struct qdma_vf_info *vf; + int i; + int rv; + + if (current_vfs) { + dev_err(&pdev->dev, "%d VFs already enabled!n", current_vfs); + return current_vfs; + } + + vf = kmalloc(num_vfs * (sizeof(struct qdma_vf_info)), GFP_KERNEL); + if (!vf) { + pr_info("%s OOM, %d * %ld.\n", + xdev->conf.name, num_vfs, sizeof(struct qdma_vf_info)); + return -ENOMEM; + } + + for (i = 0; i < num_vfs; i++) + vf[i].func_id = QDMA_FUNC_ID_INVALID; + + xdev->vf_count = num_vfs; + xdev->vf_info = vf; + + pr_debug("%s: req %d, current %d, assigned %d.\n", + xdev->conf.name, num_vfs, current_vfs, pci_vfs_assigned(pdev)); + + rv = pci_enable_sriov(pdev, num_vfs); + if (rv) { + pr_info("%s, enable sriov %d failed %d.\n", + xdev->conf.name, num_vfs, rv); + xdev_sriov_disable(xdev); + return 0; + } + + qdma_mbox_start(xdev); + + pr_debug("%s: done, req %d, current %d, assigned %d.\n", + xdev->conf.name, num_vfs, pci_num_vf(pdev), + pci_vfs_assigned(pdev)); + + return num_vfs; +} + +int qdma_device_sriov_config(struct pci_dev *pdev, unsigned long dev_hndl, + int num_vfs) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + int rv; + + if (!dev_hndl) + return -EINVAL; + + rv = xdev_check_hndl(__func__, pdev, dev_hndl); + if (rv < 0) + return rv; + + /* if zeror disable sriov */ + if (!num_vfs) { + xdev_sriov_disable(xdev); + return 0; + } + + rv = xdev_sriov_enable(xdev, num_vfs); + if (rv < 0) + return rv; + + return xdev->vf_count; +} + +void xdev_sriov_vf_offline(struct xlnx_dma_dev *xdev, u8 func_id) +{ + struct qdma_vf_info *vf = (struct qdma_vf_info *)xdev->vf_info; + int i; + + for (i = 0; i < xdev->vf_count; i++, vf++) { + if (vf->func_id == func_id) { + vf->func_id = QDMA_FUNC_ID_INVALID; + vf->qbase = 0; + vf->qmax = 0; + } + } +} + +int xdev_sriov_vf_online(struct xlnx_dma_dev *xdev, u8 func_id) +{ + struct qdma_vf_info *vf = (struct qdma_vf_info *)xdev->vf_info; + int i; + + for (i = 0; i < xdev->vf_count; i++, vf++) { + if (vf->func_id == QDMA_FUNC_ID_INVALID) { + vf->func_id = func_id; + return 0; + } + } + + pr_info("%s, func 0x%x, NO free slot.\n", xdev->conf.name, func_id); + return -EINVAL; +} + +int xdev_sriov_vf_fmap(struct xlnx_dma_dev *xdev, u8 func_id, + unsigned short qbase, unsigned short qmax) +{ + struct qdma_vf_info *vf = (struct qdma_vf_info *)xdev->vf_info; + int i; + + for (i = 0; i < xdev->vf_count; i++, vf++) { + if (vf->func_id == func_id) { + vf->qbase = qbase; + vf->qmax = qmax; + return 0; + } + } + + pr_info("%s, func 0x%x, NO match.\n", xdev->conf.name, func_id); + return -EINVAL; +} + +#endif /* if defined(CONFIG_PCI_IOV) && !defined(__QDMA_VF__) */ diff --git a/QDMA/linux-kernel/libqdma/qdma_st_c2h.c b/QDMA/linux-kernel/libqdma/qdma_st_c2h.c new file mode 100644 index 0000000..cc1dfe4 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_st_c2h.c @@ -0,0 +1,699 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "qdma_descq.h" + +#include <linux/kernel.h> +#include <linux/delay.h> + +#include "qdma_device.h" +#include "qdma_intr.h" +#include "qdma_regs.h" +#include "qdma_thread.h" +#include "qdma_context.h" +#include "thread.h" +#include "qdma_compat.h" +#include "qdma_st_c2h.h" +#include "version.h" + +struct cmpl_info { + /* cmpl entry stat bits */ + union { + u8 fbits; + struct cmpl_flag { + u8 format:1; + u8 color:1; + u8 err:1; + u8 desc_used:1; + u8 eot:1; + u8 filler:3; + } f; + }; + u8 rsvd; + u16 len; + /* for tracking */ + unsigned int pidx; + __be64 *entry; +}; + +/* + * ST C2H descq (i.e., freelist) RX buffers + */ + +static inline void flq_unmap_one(struct qdma_sw_sg *sdesc, + struct qdma_c2h_desc *desc, struct device *dev, + unsigned char pg_order) +{ + if (sdesc->dma_addr) { + desc->dst_addr = 0UL; + dma_unmap_page(dev, sdesc->dma_addr, PAGE_SIZE << pg_order, + DMA_FROM_DEVICE); + sdesc->dma_addr = 0UL; + } +} + +static inline void flq_free_one(struct qdma_sw_sg *sdesc, + struct qdma_c2h_desc *desc, struct device *dev, + unsigned char pg_order) +{ + if (sdesc && sdesc->pg) { + flq_unmap_one(sdesc, desc, dev, pg_order); + __free_pages(sdesc->pg, pg_order); + sdesc->pg = NULL; + } +} + +static inline int flq_fill_one(struct qdma_sw_sg *sdesc, + struct qdma_c2h_desc *desc, struct device *dev, + int node, unsigned char pg_order, gfp_t gfp) +{ + struct page *pg; + dma_addr_t mapping; + + pg = alloc_pages_node(node, __GFP_COMP | gfp, pg_order); + if (unlikely(!pg)) { + pr_info("OOM, order %d.\n", pg_order); + return -ENOMEM; + } + + mapping = dma_map_page(dev, pg, 0, PAGE_SIZE << pg_order, + PCI_DMA_FROMDEVICE); + if (unlikely(dma_mapping_error(dev, mapping))) { + dev_err(dev, "page 0x%p mapping error 0x%llx.\n", + pg, (unsigned long long)mapping); + __free_pages(pg, pg_order); + return -EINVAL; + } + + sdesc->pg = pg; + sdesc->dma_addr = mapping; + sdesc->len = PAGE_SIZE << pg_order; + sdesc->offset = 0; + + desc->dst_addr = sdesc->dma_addr; + return 0; +} + +void descq_flq_free_resource(struct qdma_descq *descq) +{ + struct xlnx_dma_dev *xdev = descq->xdev; + struct device *dev = &xdev->conf.pdev->dev; + struct qdma_flq *flq = (struct qdma_flq *)descq->flq; + struct qdma_sw_sg *sdesc = flq->sdesc; + struct qdma_c2h_desc *desc = flq->desc; + unsigned char pg_order = flq->pg_order; + int i; + + for (i = 0; i < flq->size; i++, sdesc++, desc++) { + if (sdesc) + flq_free_one(sdesc, desc, dev, pg_order); + else + break; + } + + if (flq->sdesc) { + kfree(flq->sdesc); + flq->sdesc = NULL; + flq->sdesc_info = NULL; + } + memset(flq, 0, sizeof(struct qdma_flq)); +} + +int descq_flq_alloc_resource(struct qdma_descq *descq) +{ + struct xlnx_dma_dev *xdev = descq->xdev; + struct qdma_flq *flq = (struct qdma_flq *)descq->flq; + struct device *dev = &xdev->conf.pdev->dev; + int node = dev_to_node(dev); + struct qdma_sw_sg *sdesc, *prev = NULL; + struct qdma_sdesc_info *sinfo, *sprev = NULL; + struct qdma_c2h_desc *desc = flq->desc; + int i; + int rv = 0; + + sdesc = kzalloc_node(flq->size * (sizeof(struct qdma_sw_sg) + + sizeof(struct qdma_sdesc_info)), + GFP_KERNEL, node); + if (!sdesc) { + pr_info("OOM, sz %u.\n", flq->size); + return -ENOMEM; + } + flq->sdesc = sdesc; + flq->sdesc_info = sinfo = (struct qdma_sdesc_info *)(sdesc + flq->size); + + /* make the flq to be a linked list ring */ + for (i = 0; i < flq->size; i++, prev = sdesc, sdesc++, + sprev = sinfo, sinfo++) { + if (prev) + prev->next = sdesc; + if (sprev) + sprev->next = sinfo; + } + /* last entry's next points to the first entry */ + prev->next = flq->sdesc; + sprev->next = flq->sdesc_info; + + for (sdesc = flq->sdesc, i = 0; i < flq->size; i++, sdesc++, desc++) { + rv = flq_fill_one(sdesc, desc, dev, node, flq->pg_order, + GFP_KERNEL); + if (rv < 0) { + descq_flq_free_resource(descq); + return rv; + } + } + + descq->cidx_cmpt_pend = 0; +return 0; +} + +static int qdma_flq_refill(struct qdma_descq *descq, int idx, int count, + int recycle, gfp_t gfp) +{ + struct xlnx_dma_dev *xdev = descq->xdev; + struct qdma_flq *flq = (struct qdma_flq *)descq->flq; + struct qdma_sw_sg *sdesc = flq->sdesc + idx; + struct qdma_c2h_desc *desc = flq->desc + idx; + struct qdma_sdesc_info *sinfo = flq->sdesc_info + idx; + int order = flq->pg_order; + int i; + + for (i = 0; i < count; i++, idx++, sdesc++, desc++, sinfo++) { + + if (idx == flq->size) { + idx = 0; + sdesc = flq->sdesc; + desc = flq->desc; + sinfo = flq->sdesc_info; + } + + if (recycle) { + sdesc->len = PAGE_SIZE << order; + sdesc->offset = 0; + } else { + struct device *dev = &xdev->conf.pdev->dev; + int node = dev_to_node(dev); + int rv; + + flq_unmap_one(sdesc, desc, dev, order); + rv = flq_fill_one(sdesc, desc, dev, node, order, gfp); + if (unlikely(rv < 0)) { + if (rv == -ENOMEM) + flq->alloc_fail++; + else + flq->mapping_err++; + + break; + } + } + sinfo->fbits = 0; + descq->avail++; + } + if (list_empty(&descq->work_list) && + list_empty(&descq->pend_list)) { + descq->pend_list_empty = 1; + if (descq->q_stop_wait) + qdma_waitq_wakeup(&descq->pend_list_wq); + } + + return i; +} + +/* + * + */ +int descq_st_c2h_read(struct qdma_descq *descq, struct qdma_request *req, + bool update_pidx, bool refill) +{ + struct qdma_sgt_req_cb *cb = qdma_req_cb_get(req); + struct qdma_flq *flq = (struct qdma_flq *)descq->flq; + unsigned int pidx = flq->pidx_pend; + struct qdma_sw_sg *fsg = flq->sdesc + pidx; + struct qdma_sw_sg *tsg = req->sgl; + unsigned int fsgcnt = ring_idx_delta(descq->pidx, pidx, flq->size); + unsigned int tsgoff = cb->sg_offset; + unsigned int foff = 0; + int i = 0, j = 0; + unsigned int copied = 0; + + if (!fsgcnt) + return 0; + + if (cb->sg_idx) { + for ( ; tsg && j < cb->sg_idx; j++) + tsg = tsg->next; + + if (!tsg) { + pr_err("tsg error, index %u/%u.\n", + cb->sg_idx, req->sgcnt); + return -EINVAL; + } + } + + while ((i < fsgcnt) && tsg) { + unsigned int flen = fsg->len; + unsigned char *faddr = page_address(fsg->pg) + fsg->offset; + + foff = 0; + + while (flen && tsg) { + unsigned int toff = tsg->offset + tsgoff; + unsigned int copy = min_t(unsigned int, flen, + tsg->len - tsgoff); + + if (!req->no_memcpy) + memcpy(page_address(tsg->pg) + toff, + faddr, copy); + + faddr += copy; + flen -= copy; + foff += copy; + tsgoff += copy; + copied += copy; + + if (tsgoff == tsg->len) { + tsg = tsg->next; + tsgoff = 0; + j++; + } + } + + if (foff == fsg->len) { + struct qdma_sdesc_info *sinfo = flq->sdesc_info + pidx; + + if (sinfo->f.eop) + descq->cidx_cmpt_pend = sinfo->cidx; + + pidx = ring_idx_incr(pidx, 1, descq->conf.rngsz); + + i++; + foff = 0; + fsg = fsg->next; + } + } + + incr_cmpl_desc_cnt(descq, i); + + if (refill && i) + qdma_flq_refill(descq, flq->pidx_pend, i, 1, GFP_ATOMIC); + + flq->pidx_pend = ring_idx_incr(flq->pidx_pend, i, flq->size); + if (foff) { + fsg->offset += foff; + fsg->len -= foff; + } + + if (i && update_pidx) { + i = ring_idx_decr(flq->pidx_pend, 1, flq->size); + descq_c2h_pidx_update(descq, i); + } + + cb->sg_idx = j; + cb->sg_offset = tsgoff; + cb->left -= copied; + + flq->pkt_dlen -= copied; + + return copied; +} + +static int qdma_c2h_packets_proc_dflt(struct qdma_descq *descq) +{ + struct qdma_sgt_req_cb *cb, *tmp; + + list_for_each_entry_safe(cb, tmp, &descq->pend_list, list) { + int rv; + + /* check for zero length dma */ + if (!cb->left) { + pr_debug("%s, cb 0x%p pending, zero len.\n", + descq->conf.name, cb); + + qdma_sgt_req_done(descq, cb, 0); + return 0; + } + + rv = descq_st_c2h_read(descq, (struct qdma_request *)cb, 0, 0); + if (rv < 0) { + pr_info("req 0x%p, error %d.\n", cb, rv); + qdma_sgt_req_done(descq, cb, rv); + continue; + } + + if (!cb->left) + qdma_sgt_req_done(descq, cb, 0); + else + break; + } + + return 0; +} + +static inline void cmpt_next(struct qdma_descq *descq) +{ + u8 *desc_cmpt_cur = descq->desc_cmpt_cur + descq->cmpt_entry_len; + + descq->desc_cmpt_cur = desc_cmpt_cur; + if (unlikely(++descq->cidx_cmpt == descq->conf.rngsz_cmpt)) { + descq->cidx_cmpt = 0; + descq->color ^= 1; + descq->desc_cmpt_cur = descq->desc_cmpt; + } +} + +static inline bool is_new_cmpl_entry(struct qdma_descq *descq, + struct cmpl_info *cmpl) +{ + return cmpl->f.color == descq->color; +} + +static int parse_cmpl_entry(struct qdma_descq *descq, struct cmpl_info *cmpl) +{ + __be64 *cmpt = (__be64 *)descq->desc_cmpt_cur; + + dma_rmb(); + +#if 0 + print_hex_dump(KERN_INFO, "cmpl entry ", DUMP_PREFIX_OFFSET, + 16, 1, (void *)cmpt, descq->cmpt_entry_len, + false); +#endif + + cmpl->entry = cmpt; + cmpl->f.format = cmpt[0] & F_C2H_CMPT_ENTRY_F_FORMAT ? 1 : 0; + cmpl->f.color = cmpt[0] & F_C2H_CMPT_ENTRY_F_COLOR ? 1 : 0; + cmpl->f.err = cmpt[0] & F_C2H_CMPT_ENTRY_F_ERR ? 1 : 0; + cmpl->f.eot = cmpt[0] & F_C2H_CMPT_ENTRY_F_EOT ? 1 : 0; + cmpl->f.desc_used = cmpt[0] & F_C2H_CMPT_ENTRY_F_DESC_USED ? 1 : 0; + if (!cmpl->f.format && cmpl->f.desc_used) { + cmpl->len = (cmpt[0] >> S_C2H_CMPT_ENTRY_LENGTH) & + M_C2H_CMPT_ENTRY_LENGTH; + /* zero length transfer allowed */ + } else + cmpl->len = 0; + + if (unlikely(cmpl->f.err)) { + pr_warn("%s, ERR compl entry %u error set\n", + descq->conf.name, descq->cidx_cmpt); + goto err_out; + } + + /* + * format = 1 does not have length field, so the driver cannot + * figure out how many descriptor is used + */ + if (unlikely(cmpl->f.format)) { + pr_err("%s: ERR cmpl. entry %u format=1.\n", + descq->conf.name, descq->cidx_cmpt); + goto err_out; + } + + if (unlikely(!cmpl->f.desc_used && !descq->conf.cmpl_udd_en)) { + pr_warn("%s, ERR cmpl entry %u, desc_used 0, udd_en 0.\n", + descq->conf.name, descq->cidx_cmpt); + goto err_out; + } + + return 0; + +err_out: + descq->err = 1; + print_hex_dump(KERN_INFO, "cmpl entry: ", DUMP_PREFIX_OFFSET, + 16, 1, (void *)cmpt, descq->cmpt_entry_len, + false); + return -EINVAL; +} + +static int rcv_pkt(struct qdma_descq *descq, struct cmpl_info *cmpl, + unsigned int len) +{ + unsigned int pidx = cmpl->pidx; + struct qdma_flq *flq = (struct qdma_flq *)descq->flq; + unsigned int pg_shift = flq->pg_shift; + unsigned int pg_mask = (1 << pg_shift) - 1; + unsigned int rngsz = descq->conf.rngsz; + /* zero length still uses one descriptor */ + int fl_nr = len ? (len + pg_mask) >> pg_shift : 1; + unsigned int last = ring_idx_incr(cmpl->pidx, fl_nr - 1, rngsz); + unsigned int next = ring_idx_incr(last, 1, rngsz); + struct qdma_sw_sg *sdesc = flq->sdesc + last; + unsigned int cidx_next = ring_idx_incr(descq->cidx_cmpt, 1, + descq->conf.rngsz_cmpt); + + if (descq->avail < fl_nr) + return -EBUSY; + descq->avail -= fl_nr; + + if (len) { + unsigned int last_len = len & pg_mask; + + if (last_len) + sdesc->len = last_len; + } else { + sdesc->len = 0; + } + + if (descq->conf.fp_descq_c2h_packet) { + struct qdma_dev *qdev = xdev_2_qdev(descq->xdev); + int rv = descq->conf.fp_descq_c2h_packet(descq->conf.qidx + + (descq->conf.c2h ? qdev->qmax : 0), + descq->conf.quld, len, fl_nr, flq->sdesc + pidx, + descq->conf.cmpl_udd_en ? + (unsigned char *)cmpl->entry : NULL); + + if (rv < 0) + return rv; + + descq->cidx_cmpt_pend = cidx_next; + flq->pidx_pend = next; + } else { + int i; + struct qdma_sdesc_info *sinfo = flq->sdesc_info + pidx; + + for (i = 0; i < fl_nr; i++, sinfo = sinfo->next) { + WARN_ON(sinfo->f.valid); + sinfo->f.valid = 1; + sinfo->cidx = cidx_next; + } + + flq->sdesc_info[pidx].f.sop = 1; + flq->sdesc_info[last].f.eop = 1; + + flq->pkt_dlen += len; + if (descq->conf.cmpl_udd_en) + flq->udd_cnt++; + } + cmpl->pidx = next; + + return 0; +} + +static int rcv_udd_only(struct qdma_descq *descq, struct cmpl_info *cmpl) +{ +#ifdef XMP_DISABLE_ST_C2H_CMPL + __be64 cmpt_entry = cmpl->entry[0]; +#endif + struct qdma_flq *flq = (struct qdma_flq *)descq->flq; + + pr_debug("%s, rcv udd.\n", descq->conf.name); +#if 0 + print_hex_dump(KERN_INFO, "cmpl entry: ", DUMP_PREFIX_OFFSET, + 16, 1, (void *)cmpl->entry, descq->cmpt_entry_len, + false); +#endif + + /* udd only: no descriptor used */ + if (descq->conf.fp_descq_c2h_packet) { + struct qdma_dev *qdev = xdev_2_qdev(descq->xdev); + + return descq->conf.fp_descq_c2h_packet(descq->conf.qidx + + (descq->conf.c2h ? qdev->qmax : 0), + descq->conf.quld, 0, 0, NULL, + (unsigned char *)cmpl->entry); + } +#ifdef XMP_DISABLE_ST_C2H_CMPL + if ((cmpt_entry & (1 << 20)) > 0) { + __be16 pkt_cnt = (cmpt_entry >> 32) & 0xFFFF; + __be16 pkt_len = (cmpt_entry >> 48) & 0xFFFF; + int i; + + pr_info("pkt %u * %u.\n", pkt_len, pkt_cnt); + for (i = 0; i < pkt_cnt; i++) { + int rv = rcv_pkt(descq, cmpl, pkt_len); + + if (rv < 0) + break; + } + } +#endif + flq->udd_cnt++; + + return 0; +} + +int descq_process_completion_st_c2h(struct qdma_descq *descq, int budget, + bool upd_cmpl) +{ + struct qdma_c2h_cmpt_cmpl_status *cs = + (struct qdma_c2h_cmpt_cmpl_status *) + descq->desc_cmpt_cmpl_status; + unsigned int rngsz_cmpt = descq->conf.rngsz_cmpt; + unsigned int pidx = descq->pidx; + unsigned int cidx_cmpt = descq->cidx_cmpt; + unsigned int pidx_cmpt = cs->pidx; + struct qdma_flq *flq = (struct qdma_flq *)descq->flq; + unsigned int pidx_pend = flq->pidx_pend; + bool uld_handler = descq->conf.fp_descq_c2h_packet ? true : false; + int pend; + int proc_cnt = 0; + + /* once an error happens, stop processing of the Q */ + if (descq->err) { + pr_info("%s: err.\n", descq->conf.name); + return 0; + } + + dma_rmb(); + + pend = ring_idx_delta(pidx_cmpt, cidx_cmpt, rngsz_cmpt); + if (!pend) { + /* SW work around where next interrupt could be missed when + * there are no entries as of now + */ + if ((descq->xdev->conf.qdma_drv_mode == DIRECT_INTR_MODE) || + (descq->xdev->conf.qdma_drv_mode == INDIRECT_INTR_MODE)) + descq_cmpt_cidx_update(descq, descq->cidx_cmpt); + return 0; + } + +#if 0 + print_hex_dump(KERN_INFO, "cmpl status: ", DUMP_PREFIX_OFFSET, + 16, 1, (void *)cs, sizeof(*cs), + false); + pr_info("cmpl status: pidx 0x%x, cidx %x, color %d, int_state 0x%x.\n", + cs->pidx, cs->cidx, cs->color_isr_status & 0x1, + (cs->color_isr_status >> 1) & 0x3); +#endif + + if (!budget || budget > pend) + budget = pend; + + while (likely(proc_cnt < budget)) { + struct cmpl_info cmpl; + int rv = parse_cmpl_entry(descq, &cmpl); + + /* completion entry error, q is halted */ + if (rv < 0) + return rv; + + if (!is_new_cmpl_entry(descq, &cmpl)) + break; + + cmpl.pidx = pidx; + + if (cmpl.f.desc_used) { + rv = rcv_pkt(descq, &cmpl, cmpl.len); + } else if (descq->conf.cmpl_udd_en) { + /* udd only: no descriptor used */ + rv = rcv_udd_only(descq, &cmpl); + } + + if (rv < 0) /* cannot process now, stop */ + break; + + pidx = cmpl.pidx; + + cmpt_next(descq); + proc_cnt++; + } + + if (proc_cnt) { + descq->pidx_cmpt = pidx_cmpt; + descq->pidx = pidx; + + descq_cmpt_cidx_update(descq, descq->cidx_cmpt); + if (!descq->conf.fp_descq_c2h_packet) + qdma_c2h_packets_proc_dflt(descq); + + /* some descq entries have been consumed */ + if (flq->pidx_pend != pidx_pend) { + pend = ring_idx_delta(flq->pidx_pend, pidx_pend, + flq->size); + qdma_flq_refill(descq, pidx_pend, pend, + uld_handler ? 0 : 1, GFP_ATOMIC); + + if (upd_cmpl && !descq->q_stop_wait) { + pend = ring_idx_decr(flq->pidx_pend, 1, + flq->size); + descq_c2h_pidx_update(descq, pend); + } + } + } + + return 0; +} + +int qdma_queue_c2h_peek(unsigned long dev_hndl, unsigned long id, + unsigned int *udd_cnt, unsigned int *pkt_cnt, + unsigned int *data_len) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, NULL, 0, 1); + struct qdma_flq *flq; + + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + flq = (struct qdma_flq *)descq->flq; + *udd_cnt = flq->udd_cnt; + *pkt_cnt = flq->pkt_cnt; + *data_len = flq->pkt_dlen; + + return 0; +} + +int qdma_queue_packet_read(unsigned long dev_hndl, unsigned long id, + struct qdma_request *req, struct qdma_cmpl_ctrl *cctrl) +{ + struct qdma_descq *descq = qdma_device_get_descq_by_id( + (struct xlnx_dma_dev *)dev_hndl, + id, NULL, 0, 1); + struct qdma_sgt_req_cb *cb = qdma_req_cb_get(req); + + if (!descq) + return QDMA_ERR_INVALID_QIDX; + + if (!descq->conf.st || !descq->conf.c2h) { + pr_info("%s: st %d, c2h %d.\n", + descq->conf.name, descq->conf.st, descq->conf.c2h); + return -EINVAL; + } + + memset(cb, 0, QDMA_REQ_OPAQUE_SIZE); + + qdma_waitq_init(&cb->wq); + + lock_descq(descq); + descq_st_c2h_read(descq, req, 1, 1); + unlock_descq(descq); + + return req->count - cb->left; +} diff --git a/QDMA/linux-kernel/libqdma/qdma_st_c2h.h b/QDMA/linux-kernel/libqdma/qdma_st_c2h.h new file mode 100644 index 0000000..1cbe862 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_st_c2h.h @@ -0,0 +1,232 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __QDMA_ST_C2H_H__ +#define __QDMA_ST_C2H_H__ +/** + * @file + * @brief This file contains the declarations for qdma st c2h processing + * + */ +#include <linux/spinlock_types.h> +#include <linux/types.h> +#include "qdma_descq.h" +#ifdef ERR_DEBUG +#include "qdma_nl.h" +#endif + +/** + * @struct - qdma_sdesc_info + * @brief qdma descriptor information + */ +struct qdma_sdesc_info { + /** pointer to next descriptor */ + struct qdma_sdesc_info *next; + /** + * @union - desciptor flags + */ + union { + /** 8 flag bits */ + u8 fbits; + /** + * @struct - flags + * @brief desciptor flags + */ + struct flags { + /** is descriptor valid */ + u8 valid:1; + /** start of the packet */ + u8 sop:1; + /** end of the packet */ + u8 eop:1; + /** filler for 5 bits */ + u8 filler:5; + } f; + }; + /** reserved 3 bits */ + u8 rsvd[3]; + /** consumer index */ + unsigned int cidx; +}; + +/** + * @struct - qdma_flq + * @brief qdma free list q page allocation book keeping + */ +struct qdma_flq { + /** RO: size of the decriptor */ + unsigned int size; + /** RO: page order */ + unsigned char pg_order; + /** RO: page shift */ + unsigned char pg_shift; + /** RO: pointer to qdma c2h decriptor */ + struct qdma_c2h_desc *desc; + + /** RW: total # of udd outstanding */ + unsigned int udd_cnt; + /** RW: total # of packet outstanding */ + unsigned int pkt_cnt; + /** RW: total # of pkt payload length outstanding */ + unsigned int pkt_dlen; + /** RW: # of available Rx buffers */ + unsigned int avail; + /** RW: # of times buffer allocation failed */ + unsigned long alloc_fail; + /** RW: # of RX Buffer DMA Mapping failures */ + unsigned long mapping_err; + /** RW: consumer index */ + unsigned int cidx; + /** RW: producer index */ + unsigned int pidx; + /** RW: pending pidxes */ + unsigned int pidx_pend; + /** RW: sw scatter gather list */ + struct qdma_sw_sg *sdesc; + /** RW: sw descriptor info */ + struct qdma_sdesc_info *sdesc_info; +}; + +/*****************************************************************************/ +/** + * qdma_descq_rxq_read() - read from the rx queue + * + * @param[in] descq: pointer to qdma_descq + * @param[in] req: queue request + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_rxq_read(struct qdma_descq *descq, struct qdma_request *req); + +/** + * qdma_descq_dump_cmpt() - dump the completion queue descriptors + * + * @param[in] descq: pointer to qdma_descq + * @param[in] start: start completion descriptor index + * @param[in] end: end completion descriptor index + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_descq_dump_cmpt(struct qdma_descq *descq, int start, int end, + char *buf, int buflen); + +/*****************************************************************************/ +/** + * incr_cmpl_desc_cnt() - update the interrupt cidx + * + * @param[in] descq: pointer to qdma_descq + * @param[in] cnt: increment value + * + *****************************************************************************/ +void incr_cmpl_desc_cnt(struct qdma_descq *descq, unsigned int cnt); + +/*****************************************************************************/ +/** + * descq_flq_free_resource() - handler to free the pages for the request + * + * @param[in] descq: pointer to qdma_descq + * + * @return none + *****************************************************************************/ +void descq_flq_free_resource(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * descq_flq_alloc_resource() - handler to allocate the pages for the request + * + * @param[in] descq: pointer to qdma_descq + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int descq_flq_alloc_resource(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * descq_process_completion_st_c2h() - handler to process the st c2h + * completion request + * + * @param[in] descq: pointer to qdma_descq + * @param[in] budget: number of descriptors to process + * @param[in] upd_cmpl: if update completion required + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int descq_process_completion_st_c2h(struct qdma_descq *descq, int budget, + bool upd_cmpl); + +/*****************************************************************************/ +/** + * descq_st_c2h_read() - handler to process the st c2h read request + * + * @param[in] descq: pointer to qdma_descq + * @param[in] req: pointer to read request + * @param[in] update: flag to update the request + * @param[in] refill: flag to indicate whether to refill the flq + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int descq_st_c2h_read(struct qdma_descq *descq, struct qdma_request *req, + bool update, bool refill); + +/*****************************************************************************/ +/** + * descq_cmpt_cidx_update() - inline function to update the writeback cidx + * + * @param[in] descq: pointer to qdma_descq + * @param[in] cidx: cmpt consumer index + * + * @return none + *****************************************************************************/ +static inline void descq_cmpt_cidx_update(struct qdma_descq *descq, + unsigned int cidx) +{ +#ifdef ERR_DEBUG + if (descq->induce_err & (1 << dsc)) { + cidx = descq->conf.rngsz; + pr_info("inducing error %d with pidx=%u cidx = %u", dsc, + descq->pidx, cidx); + } +#endif + pr_debug("%s: cidx update 0x%x, reg 0x%x.\n", descq->conf.name, cidx, + QDMA_REG_CMPT_CIDX_BASE + + descq->conf.qidx * QDMA_REG_PIDX_STEP); + + cidx |= (descq->conf.irq_en << S_CMPT_CIDX_UPD_EN_INT) | + (descq->conf.cmpl_stat_en << S_CMPT_CIDX_UPD_EN_STAT_DESC) | + (V_CMPT_CIDX_UPD_TRIG_MODE(descq->conf.cmpl_trig_mode)) | + (V_CMPT_CIDX_UPD_TIMER_IDX(descq->conf.cmpl_timer_idx)) | + (V_CMPT_CIDX_UPD_CNTER_IDX(descq->conf.cmpl_cnt_th_idx)); + + pr_debug("%s: cidx update 0x%x, reg 0x%x.\n", descq->conf.name, cidx, + QDMA_REG_CMPT_CIDX_BASE + + descq->conf.qidx * QDMA_REG_PIDX_STEP); + + __write_reg(descq->xdev, + QDMA_REG_CMPT_CIDX_BASE + descq->conf.qidx * QDMA_REG_PIDX_STEP, + cidx); +} + +#endif /* ifndef __QDMA_ST_C2H_H__ */ diff --git a/QDMA/linux-kernel/libqdma/qdma_thread.c b/QDMA/linux-kernel/libqdma/qdma_thread.c new file mode 100644 index 0000000..08e2197 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_thread.c @@ -0,0 +1,236 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "qdma_thread.h" + +#include <linux/kernel.h> + +#include "qdma_descq.h" +#include "thread.h" +#include "xdev.h" + +/* ********************* global variables *********************************** */ + +static unsigned int thread_cnt; +/** completion status threads */ +static struct qdma_kthread *cs_threads; + +spinlock_t qcnt_lock; +unsigned int cpu_count; +static unsigned int *per_cpu_qcnt; + +/* ********************* static function declarations *********************** */ + +static int qdma_thread_cmpl_status_pend(struct list_head *work_item); +static int qdma_thread_cmpl_status_proc(struct list_head *work_item); + +/* ********************* static function definitions ************************ */ +static int qdma_thread_cmpl_status_pend(struct list_head *work_item) +{ + struct qdma_descq *descq = list_entry(work_item, struct qdma_descq, + cmplthp_list); + int pend = 0; + + lock_descq(descq); + pend = !list_empty(&descq->pend_list) || !list_empty(&descq->work_list); + unlock_descq(descq); + + return pend; +} + +static int qdma_thread_cmpl_status_proc(struct list_head *work_item) +{ + struct qdma_descq *descq; + + descq = list_entry(work_item, struct qdma_descq, cmplthp_list); + qdma_descq_service_cmpl_update(descq, 0, 1); + return 0; +} + +/* ********************* public function definitions ************************ */ + +void qdma_thread_remove_work(struct qdma_descq *descq) +{ + struct qdma_kthread *cmpl_thread; + int cpu_idx = cpu_count; + + + lock_descq(descq); + cmpl_thread = descq->cmplthp; + descq->cmplthp = NULL; + + if (descq->cpu_assigned) { + descq->cpu_assigned = 0; + cpu_idx = descq->intr_work_cpu; + } + + pr_debug("%s removing from thread %s, %u.\n", + descq->conf.name, cmpl_thread ? cmpl_thread->name : "?", + cpu_idx); + + unlock_descq(descq); + + if (cpu_idx < cpu_count) { + spin_lock(&qcnt_lock); + per_cpu_qcnt[cpu_idx]--; + spin_unlock(&qcnt_lock); + } + + if (cmpl_thread) { + lock_thread(cmpl_thread); + list_del(&descq->cmplthp_list); + cmpl_thread->work_cnt--; + unlock_thread(cmpl_thread); + } +} + +void qdma_thread_add_work(struct qdma_descq *descq) +{ + struct qdma_kthread *thp = cs_threads; + unsigned int v = 0; + int i, idx = thread_cnt; + + if (descq->xdev->conf.qdma_drv_mode != POLL_MODE) { + spin_lock(&qcnt_lock); + idx = cpu_count - 1; + v = per_cpu_qcnt[idx]; + for (i = idx - 1; i >= 0 && v; i--) { + if (per_cpu_qcnt[i] < v) { + idx = i; + v = per_cpu_qcnt[i]; + } + } + + per_cpu_qcnt[idx]++; + spin_unlock(&qcnt_lock); + + lock_descq(descq); + descq->cpu_assigned = 1; + descq->intr_work_cpu = idx; + unlock_descq(descq); + + pr_debug("%s 0x%p assigned to cpu %u.\n", + descq->conf.name, descq, idx); + + return; + } + + /* Polled mode only */ + for (i = 0; i < thread_cnt; i++, thp++) { + lock_thread(thp); + if (idx == thread_cnt) { + v = thp->work_cnt; + idx = i; + } else if (!thp->work_cnt) { + idx = i; + unlock_thread(thp); + break; + } else if (thp->work_cnt < v) + idx = i; + unlock_thread(thp); + } + + thp = cs_threads + idx; + lock_thread(thp); + list_add_tail(&descq->cmplthp_list, &thp->work_list); + descq->intr_work_cpu = idx; + thp->work_cnt++; + unlock_thread(thp); + + pr_debug("%s 0x%p assigned to cmpl status thread %s,%u.\n", + descq->conf.name, descq, thp->name, thp->work_cnt); + + lock_descq(descq); + descq->cmplthp = thp; + unlock_descq(descq); +} + +int qdma_threads_create(unsigned int num_threads) +{ + struct qdma_kthread *thp; + int i; + int rv; + + if (thread_cnt) { + pr_warn("threads already created!"); + return 0; + } + spin_lock_init(&qcnt_lock); + + cpu_count = num_online_cpus(); + per_cpu_qcnt = kzalloc(cpu_count * sizeof(unsigned int), GFP_KERNEL); + if (!per_cpu_qcnt) + return -ENOMEM; + + thread_cnt = (num_threads == 0) ? cpu_count : num_threads; + + cs_threads = kzalloc(thread_cnt * sizeof(struct qdma_kthread), + GFP_KERNEL); + if (!cs_threads) + return -ENOMEM; + + /* N dma writeback monitoring threads */ + thp = cs_threads; + for (i = 0; i < thread_cnt; i++, thp++) { + thp->cpu = i; + thp->timeout = 0; + rv = qdma_kthread_start(thp, "qdma_cmpl_status_th", i); + if (rv < 0) + goto cleanup_threads; + thp->fproc = qdma_thread_cmpl_status_proc; + thp->fpending = qdma_thread_cmpl_status_pend; + } + + return 0; + +cleanup_threads: + kfree(cs_threads); + cs_threads = NULL; + thread_cnt = 0; + + return rv; +} + +void qdma_threads_destroy(void) +{ + int i; + struct qdma_kthread *thp; + + if (per_cpu_qcnt) { + spin_lock(&qcnt_lock); + kfree(per_cpu_qcnt); + per_cpu_qcnt = NULL; + spin_unlock(&qcnt_lock); + } + + if (!thread_cnt) + return; + + /* N dma writeback monitoring threads */ + thp = cs_threads; + for (i = 0; i < thread_cnt; i++, thp++) + if (thp->fproc) + qdma_kthread_stop(thp); + + kfree(cs_threads); + cs_threads = NULL; + thread_cnt = 0; +} diff --git a/QDMA/linux-kernel/libqdma/qdma_thread.h b/QDMA/linux-kernel/libqdma/qdma_thread.h new file mode 100644 index 0000000..d3fe3c0 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/qdma_thread.h @@ -0,0 +1,76 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef LIBQDMA_QDMA_THREAD_H_ +#define LIBQDMA_QDMA_THREAD_H_ +/** + * @file + * @brief This file contains the declarations for qdma thread handlers + * + */ + +/** qdma_descq forward declaration */ +struct qdma_descq; + +/*****************************************************************************/ +/** + * qdma_threads_create() - create qdma threads + * This functions creates two threads for each cpu in the system or number of + * number of thread requested by param num_threads and assigns the + * thread handlers + * 1: queue processing thread + * 2: queue completion handler thread + * + * @param[in] num_threads - number of threads to be created + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_threads_create(unsigned int num_threads); + +/*****************************************************************************/ +/** + * qdma_threads_destroy() - destroy all the qdma threads created + * during system initialization + * + * @return none + *****************************************************************************/ +void qdma_threads_destroy(void); + +/*****************************************************************************/ +/** + * qdma_thread_remove_work() - handler to remove the attached work thread + * + * @param[in] descq: pointer to qdma_descq + * + * @return none + *****************************************************************************/ +void qdma_thread_remove_work(struct qdma_descq *descq); + +/*****************************************************************************/ +/** + * qdma_thread_add_work() - handler to add a work thread + * + * @param[in] descq: pointer to qdma_descq + * + * @return none + *****************************************************************************/ +void qdma_thread_add_work(struct qdma_descq *descq); + +#endif /* LIBQDMA_QDMA_THREAD_H_ */ diff --git a/QDMA/linux-kernel/libqdma/thread.c b/QDMA/linux-kernel/libqdma/thread.c new file mode 100644 index 0000000..7bc9874 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/thread.c @@ -0,0 +1,193 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include "thread.h" + +#include <linux/kernel.h> + +/* + * kernel thread function wrappers + */ +int qdma_kthread_dump(struct qdma_kthread *thp, char *buf, int buflen, + int detail) +{ + int len = 0; + + if (!buf || !buflen) + return 0; + + lock_thread(thp); + len += sprintf(buf + len, "%s, cpu %u, work %u.\n", + thp->name, thp->cpu, thp->work_cnt); + + if (detail) + ; + + unlock_thread(thp); + + buf[len] = '\0'; + return len; +} + +static inline int xthread_work_pending(struct qdma_kthread *thp) +{ + struct list_head *work_item, *next; + + /* any work items assigned to this thread? */ + if (list_empty(&thp->work_list)) + return 0; + + + /* any work item has pending work to do? */ + list_for_each_safe(work_item, next, &thp->work_list) { + if (thp->fpending && thp->fpending(work_item)) + return 1; + + } + return 0; +} + +static inline void xthread_reschedule(struct qdma_kthread *thp) +{ + if (thp->timeout) { + pr_debug_thread("%s rescheduling for %u seconds", + thp->name, thp->timeout); + qdma_waitq_wait_event_timeout(thp->waitq, thp->schedule, + msecs_to_jiffies(thp->timeout)); + } else { + pr_debug_thread("%s rescheduling", thp->name); + qdma_waitq_wait_event(thp->waitq, thp->schedule); + } +} + +static int xthread_main(void *data) +{ + struct qdma_kthread *thp = (struct qdma_kthread *)data; + + pr_debug_thread("%s UP.\n", thp->name); + + disallow_signal(SIGPIPE); + + if (thp->finit) + thp->finit(thp); + + + while (!kthread_should_stop()) { + + struct list_head *work_item, *next; + + pr_debug_thread("%s interruptible\n", thp->name); + + /* any work to do? */ + lock_thread(thp); + if (!xthread_work_pending(thp)) { + unlock_thread(thp); + xthread_reschedule(thp); + lock_thread(thp); + } + thp->schedule = 0; + + if (thp->work_cnt) { + pr_debug_thread("%s processing %u work items\n", + thp->name, thp->work_cnt); + /* do work */ + list_for_each_safe(work_item, next, &thp->work_list) { + thp->fproc(work_item); + } + } + unlock_thread(thp); + schedule(); + } + + pr_debug_thread("%s, work done.\n", thp->name); + + + if (thp->fdone) + thp->fdone(thp); + + pr_debug_thread("%s, exit.\n", thp->name); + return 0; +} + +int qdma_kthread_start(struct qdma_kthread *thp, char *name, int id) +{ + int len; + + if (thp->task) { + pr_warn("kthread %s task already running?\n", thp->name); + return -EINVAL; + } + +#ifdef __QDMA_VF__ + len = snprintf(thp->name, sizeof(thp->name), "%s_vf_%d", name, id); + if (len < 0) + return -EINVAL; +#else + len = snprintf(thp->name, sizeof(thp->name), "%s%d", name, id); + if (len < 0) + return -EINVAL; +#endif + thp->id = id; + + spin_lock_init(&thp->lock); + INIT_LIST_HEAD(&thp->work_list); + qdma_waitq_init(&thp->waitq); + + thp->task = kthread_create_on_node(xthread_main, (void *)thp, + cpu_to_node(thp->cpu), "%s", thp->name); + if (IS_ERR(thp->task)) { + pr_err("kthread %s, create task failed: 0x%lx\n", + thp->name, (unsigned long)IS_ERR(thp->task)); + thp->task = NULL; + return -EFAULT; + } + + kthread_bind(thp->task, thp->cpu); + + pr_debug_thread("kthread 0x%p, %s, cpu %u, task 0x%p.\n", + thp, thp->name, thp->cpu, thp->task); + + wake_up_process(thp->task); + return 0; +} + +int qdma_kthread_stop(struct qdma_kthread *thp) +{ + int rv; + + if (!thp->task) { + pr_debug_thread("kthread %s, already stopped.\n", thp->name); + return 0; + } + + thp->schedule = 1; + rv = kthread_stop(thp->task); + if (rv < 0) { + pr_warn("kthread %s, stop err %d.\n", thp->name, rv); + return rv; + } + + pr_debug_thread("kthread %s, 0x%p, stopped.\n", thp->name, thp->task); + thp->task = NULL; + + return 0; +} + diff --git a/QDMA/linux-kernel/libqdma/thread.h b/QDMA/linux-kernel/libqdma/thread.h new file mode 100644 index 0000000..eea949a --- /dev/null +++ b/QDMA/linux-kernel/libqdma/thread.h @@ -0,0 +1,145 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __XDMA_KTHREAD_H__ +#define __XDMA_KTHREAD_H__ +/** + * @file + * @brief This file contains the declarations for qdma kernel threads + * + */ +#include <linux/version.h> +#include <linux/spinlock.h> +#include <linux/kthread.h> +#include <linux/cpuset.h> +#include <linux/signal.h> +#include "qdma_compat.h" + +/** + * @struct - qdma_kthread + * @brief qdma thread book keeping parameters + */ +struct qdma_kthread { + /** thread lock*/ + spinlock_t lock; + /** name of the thread */ + char name[16]; + /** cpu number for which the thread associated with */ + unsigned short cpu; + /** thread id */ + unsigned short id; + /** thread sleep timeout value */ + unsigned int timeout; + /** flags for thread */ + unsigned long flag; + /** thread wait queue */ + qdma_wait_queue waitq; + /* flag to indicate scheduling of thread */ + unsigned int schedule; + /** kernel task structure associated with thread*/ + struct task_struct *task; + /** thread work list count */ + unsigned int work_cnt; + /** thread work list count */ + struct list_head work_list; + /** thread initialization handler */ + int (*finit)(struct qdma_kthread *); + /** thread pending handler */ + int (*fpending)(struct list_head *); + /** thread peocessing handler */ + int (*fproc)(struct list_head *); + /** thread done handler */ + int (*fdone)(struct qdma_kthread *); +}; + +/*****************************************************************************/ +/** + * qdma_kthread_dump() - handler to dump the thread information + * + * @param[in] thp: pointer to qdma_kthread + * @param[in] detail: flag to indicate whether details required or not + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return length of the buffer + *****************************************************************************/ +int qdma_kthread_dump(struct qdma_kthread *thp, char *buf, int buflen, + int detail); + +#ifdef DEBUG_THREADS +#define lock_thread(thp) \ + do { \ + pr_debug("locking thp %s ...\n", (thp)->name); \ + spin_lock(&(thp)->lock); \ + } while (0) + +#define unlock_thread(thp) \ + do { \ + pr_debug("unlock thp %s ...\n", (thp)->name); \ + spin_unlock(&(thp)->lock); \ + } while (0) + +#define qdma_kthread_wakeup(thp) \ + do { \ + pr_debug("signaling thp %s ...\n", (thp)->name); \ + wake_up_process((thp)->task); \ + } while (0) + +#define pr_debug_thread(fmt, ...) pr_debug(fmt, __VA_ARGS__) + +#else +/** lock thread macro */ +#define lock_thread(thp) spin_lock(&(thp)->lock) +/** un lock thread macro */ +#define unlock_thread(thp) spin_unlock(&(thp)->lock) +/** macro to wake up the qdma k thread */ +#define qdma_kthread_wakeup(thp) \ + do { \ + thp->schedule = 1; \ + qdma_waitq_wakeup(&thp->waitq); \ + } while (0) +/** pr_debug_thread */ +#define pr_debug_thread(fmt, ...) +#endif + +/*****************************************************************************/ +/** + * qdma_kthread_start() - handler to start the kernel thread + * + * @param[in] thp: pointer to qdma_kthread + * @param[in] name: name for the thread + * @param[in] id: thread id + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_kthread_start(struct qdma_kthread *thp, char *name, int id); + +/*****************************************************************************/ +/** + * qdma_kthread_stop() - handler to stop the kernel thread + * + * @param[in] thp: pointer to qdma_kthread + * + * @return 0: success + * @return <0: failure + *****************************************************************************/ +int qdma_kthread_stop(struct qdma_kthread *thp); + +#endif /* #ifndef __XDMA_KTHREAD_H__ */ diff --git a/QDMA/linux-kernel/libqdma/version.h b/QDMA/linux-kernel/libqdma/version.h new file mode 100644 index 0000000..7ba9dba --- /dev/null +++ b/QDMA/linux-kernel/libqdma/version.h @@ -0,0 +1,33 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef __LIBQDMA_VERSION_H__ +#define __LIBQDMA_VERSION_H__ + +#define LIBQDMA_MODULE_NAME "libqdma" +#define LIBQDMA_MODULE_DESC "Xilinx QDMA Library" + +#define LIBQDMA_VERSION_MAJOR 2018 +#define LIBQDMA_VERSION_MINOR 3 +#define LIBQDMA_VERSION_PATCH 161 + +#define LIBQDMA_VERSION_STR \ + __stringify(LIBQDMA_VERSION_MAJOR) "." \ + __stringify(LIBQDMA_VERSION_MINOR) "." \ + __stringify(LIBQDMA_VERSION_PATCH) + +#define LIBQDMA_VERSION \ + ((LIBQDMA_VERSION_MAJOR)*1000 + \ + (LIBQDMA_VERSION_MINOR)*100 + \ + LIBQDMA_VERSION_PATCH) + +#endif /* ifndef __LIBQDMA_VERSION_H__ */ diff --git a/QDMA/linux-kernel/libqdma/xdev.c b/QDMA/linux-kernel/libqdma/xdev.c new file mode 100644 index 0000000..f7159fb --- /dev/null +++ b/QDMA/linux-kernel/libqdma/xdev.c @@ -0,0 +1,1017 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +/** + * @file + * @brief This file contains the declarations for QDMA PCIe device + * + */ +#define pr_fmt(fmt) KBUILD_MODNAME ":%s: " fmt, __func__ + +#include <linux/version.h> +#include <linux/kernel.h> +#include <linux/string.h> +#include <linux/mm.h> +#include <linux/errno.h> +#include <linux/sched.h> +#include <linux/vmalloc.h> + +#include "qdma_regs.h" +#include "xdev.h" +#include "qdma_mbox.h" +#ifdef DEBUGFS +#include "qdma_debugfs_dev.h" +#endif + +#ifdef __LIST_NEXT_ENTRY__ +#define list_next_entry(pos, member) \ + list_entry((pos)->member.next, typeof(*(pos)), member) +#endif + +/** + * qdma device management + * maintains a list of the qdma devices + */ +static LIST_HEAD(xdev_list); + +/** + * mutex defined for qdma device management + */ +static DEFINE_MUTEX(xdev_mutex); + +#ifndef list_last_entry +#define list_last_entry(ptr, type, member) \ + list_entry((ptr)->prev, type, member) +#endif + +/* extern declarations */ +void qdma_device_attributes_get(struct xlnx_dma_dev *xdev); +int qdma_device_init(struct xlnx_dma_dev *xdev); +void qdma_device_cleanup(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * xdev_list_first() - handler to return the first xdev entry from the list + * + * @return pointer to first xlnx_dma_dev on success + * @return NULL on failure + *****************************************************************************/ +struct xlnx_dma_dev *xdev_list_first(void) +{ + struct xlnx_dma_dev *xdev; + + mutex_lock(&xdev_mutex); + xdev = list_first_entry(&xdev_list, struct xlnx_dma_dev, list_head); + mutex_unlock(&xdev_mutex); + + return xdev; +} + +/*****************************************************************************/ +/** + * xdev_list_next() - handler to return the next xdev entry from the list + * + * @param[in] xdev: pointer to current xdev + * + * @return pointer to next xlnx_dma_dev on success + * @return NULL on failure + *****************************************************************************/ +struct xlnx_dma_dev *xdev_list_next(struct xlnx_dma_dev *xdev) +{ + struct xlnx_dma_dev *next; + + mutex_lock(&xdev_mutex); + next = list_next_entry(xdev, list_head); + mutex_unlock(&xdev_mutex); + + return next; +} + +/*****************************************************************************/ +/** + * xdev_list_dump() - list the dma device details + * + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return pointer to next xlnx_dma_dev on success + * @return NULL on failure + *****************************************************************************/ +int xdev_list_dump(char *buf, int buflen) +{ + struct xlnx_dma_dev *xdev, *tmp; + int len = 0; + + mutex_lock(&xdev_mutex); + list_for_each_entry_safe(xdev, tmp, &xdev_list, list_head) { + len += sprintf(buf + len, "qdma%05x\t%02x:%02x.%02x\n", + xdev->conf.bdf, xdev->conf.pdev->bus->number, + PCI_SLOT(xdev->conf.pdev->devfn), + PCI_FUNC(xdev->conf.pdev->devfn)); + if (len >= buflen) + break; + } + mutex_unlock(&xdev_mutex); + + buf[len] = '\0'; + return len; +} + +/*****************************************************************************/ +/** + * xdev_list_add() - add a new node to the xdma device lsit + * + * @param[in] xdev: pointer to current xdev + * + * @return none + *****************************************************************************/ +static inline void xdev_list_add(struct xlnx_dma_dev *xdev) +{ + u32 bdf = 0; + struct xlnx_dma_dev *_xdev, *tmp; + u32 last_bus = 0; + u32 last_dev = 0; + + mutex_lock(&xdev_mutex); + bdf = ((xdev->conf.pdev->bus->number << PCI_SHIFT_BUS) | + (PCI_SLOT(xdev->conf.pdev->devfn) << PCI_SHIFT_DEV) | + PCI_FUNC(xdev->conf.pdev->devfn)); + xdev->conf.bdf = bdf; + list_add_tail(&xdev->list_head, &xdev_list); + + /* + * Iterate through the list of devices. Increment cfg_done, to + * get the mulitplier for initial configuration of queues. A + * '0' indicates queue is already configured. < 0, indicates + * config done using sysfs entry + */ + list_for_each_entry_safe(_xdev, tmp, &xdev_list, list_head) { + /*are we dealing with a different card?*/ +#ifdef __QDMA_VF__ + /** for VF check only bus number, as dev number can change + * in a single card + */ + if (last_bus != _xdev->conf.pdev->bus->number) +#else + if ((last_bus != _xdev->conf.pdev->bus->number) || + (last_dev != PCI_SLOT(_xdev->conf.pdev->devfn))) +#endif + xdev->conf.idx = 0; + xdev->conf.idx++; + last_bus = _xdev->conf.pdev->bus->number; + last_dev = PCI_SLOT(xdev->conf.pdev->devfn); + } + xdev->conf.cur_cfg_state = QMAX_CFG_UNCONFIGURED; + mutex_unlock(&xdev_mutex); +} + + +#undef list_last_entry +/*****************************************************************************/ +/** + * xdev_list_add() - remove a node from the xdma device lsit + * + * @param[in] xdev: pointer to current xdev + * + * @return none + *****************************************************************************/ +static inline void xdev_list_remove(struct xlnx_dma_dev *xdev) +{ + mutex_lock(&xdev_mutex); + list_del(&xdev->list_head); + mutex_unlock(&xdev_mutex); +} + +/*****************************************************************************/ +/** + * xdev_find_by_pdev() - find the xdev using struct pci_dev + * + * @param[in] pdev: pointer to struct pci_dev + * + * @return pointer to xlnx_dma_dev on success + * @return NULL on failure + *****************************************************************************/ +struct xlnx_dma_dev *xdev_find_by_pdev(struct pci_dev *pdev) +{ + struct xlnx_dma_dev *xdev, *tmp; + + mutex_lock(&xdev_mutex); + list_for_each_entry_safe(xdev, tmp, &xdev_list, list_head) { + if (xdev->conf.pdev == pdev) { + mutex_unlock(&xdev_mutex); + return xdev; + } + } + mutex_unlock(&xdev_mutex); + return NULL; +} + +/*****************************************************************************/ +/** + * xdev_find_by_idx() - find the xdev using the index value + * + * @param[in] idx: index value in the xdev list + * + * @return pointer to xlnx_dma_dev on success + * @return NULL on failure + *****************************************************************************/ +struct xlnx_dma_dev *xdev_find_by_idx(int idx) +{ + struct xlnx_dma_dev *xdev, *tmp; + + mutex_lock(&xdev_mutex); + list_for_each_entry_safe(xdev, tmp, &xdev_list, list_head) { + if (xdev->conf.bdf == idx) { + mutex_unlock(&xdev_mutex); + return xdev; + } + } + mutex_unlock(&xdev_mutex); + return NULL; +} + +/*****************************************************************************/ +/** + * xdev_check_hndl() - helper function to validate the device handle + * + * @param[in] pdev: pointer to struct pci_dev + * @param[in] hndl: device handle + * + * @return 0: success + * @return <0: on failure + *****************************************************************************/ +int xdev_check_hndl(const char *fname, struct pci_dev *pdev, unsigned long hndl) +{ + struct xlnx_dma_dev *xdev; + + if (!pdev) + return -EINVAL; + + xdev = xdev_find_by_pdev(pdev); + if (!xdev) { + pr_info("%s pdev 0x%p, hndl 0x%lx, NO match found!\n", + fname, pdev, hndl); + return -EINVAL; + } + if (((unsigned long)xdev) != hndl) { + pr_info("%s pdev 0x%p, hndl 0x%lx != 0x%p!\n", + fname, pdev, hndl, xdev); + return -EINVAL; + } + + if (xdev->conf.pdev != pdev) { + pr_info("pci_dev(0x%lx) != pdev(0x%lx)\n", + (unsigned long)xdev->conf.pdev, + (unsigned long)pdev); + return -EINVAL; + } + + return 0; +} + +/********************************************************************** + * PCI-level Functions + **********************************************************************/ + +/*****************************************************************************/ +/** + * xdev_unmap_bars() - Unmap the BAR regions that had been mapped + * earlier using map_bars() + * + * @param[in] xdev: pointer to current xdev + * @param[in] pdev: pointer to struct pci_dev + * + * @return none + *****************************************************************************/ +static void xdev_unmap_bars(struct xlnx_dma_dev *xdev, struct pci_dev *pdev) +{ + if (xdev->regs) { + /* unmap BAR */ + pci_iounmap(pdev, xdev->regs); + /* mark as unmapped */ + xdev->regs = NULL; + } + + if (xdev->stm_regs) { + pci_iounmap(pdev, xdev->stm_regs); + xdev->stm_regs = NULL; + } +} + +/*****************************************************************************/ +/** + * xdev_map_bars() - map device regions into kernel virtual address space + * earlier using map_bars() + * + * @param[in] xdev: pointer to current xdev + * @param[in] pdev: pointer to struct pci_dev + * + * Map the device memory regions into kernel virtual address space after + * verifying their sizes respect the minimum sizes needed + * + * @return length of the bar on success + * @return 0 on failure + *****************************************************************************/ +static int xdev_map_bars(struct xlnx_dma_dev *xdev, struct pci_dev *pdev) +{ + int map_len; + + map_len = pci_resource_len(pdev, (int)xdev->conf.bar_num_config); + if (map_len > QDMA_MAX_BAR_LEN_MAPPED) + map_len = QDMA_MAX_BAR_LEN_MAPPED; + + xdev->regs = pci_iomap(pdev, xdev->conf.bar_num_config, map_len); + if (!xdev->regs) { + pr_err("%s unable to map config bar %d.\n", xdev->conf.name, + xdev->conf.bar_num_config); + return -EINVAL; + } + + if (pdev->device == STM_ENABLED_DEVICE) { + u32 rev; + + map_len = pci_resource_len(pdev, STM_BAR); + xdev->stm_regs = pci_iomap(pdev, STM_BAR, map_len); + if (!xdev->stm_regs) { + pr_warn("%s unable to map bar %d.\n", + xdev->conf.name, STM_BAR); + return -EINVAL; + } + + rev = readl(xdev->stm_regs + STM_REG_BASE + STM_REG_REV); + if (!(((rev >> 24) == 'S') && (((rev >> 16) & 0xFF) == 'T') && + (((rev >> 8) & 0xFF) == 'M') && + ((rev & 0xFF) == STM_SUPPORTED_REV))) { + pr_err("%s: Unsupported STM Rev found, rev 0x%x\n", + xdev->conf.name, rev); + xdev_unmap_bars(xdev, pdev); + return -EINVAL; + } + xdev->stm_en = 1; + xdev->stm_rev = rev & 0xFF; + } else { + xdev->stm_en = 0; + } + + return 0; +} + +/*****************************************************************************/ +/** + * xdev_identify_bars() - verifies that the config bar passed from the user + * matches with the QDMA magic number. Also identifies + * the user bar and bypass bar + * + * @param[in] xdev: pointer to current xdev + * @param[in] pdev: pointer to struct pci_dev\ + * + * @return 0 on success, -ve on failure + *****************************************************************************/ +static int xdev_identify_bars(struct xlnx_dma_dev *xdev, struct pci_dev *pdev) +{ + int bar_idx = 0; + int map_len = 0; + u32 id; + u8 num_bars_present = 0; + void __iomem *regs; + int bar_id_list[QDMA_BAR_NUM]; + int bar_id_idx = 0; + u32 user_bar_id = 0; + + /* Verify that the config bar passed from the user is correct or not */ + map_len = pci_resource_len(pdev, (int)xdev->conf.bar_num_config); + if (!map_len) { + pr_err("%s pci_resource_len function failed for bar %d.\n", + xdev->conf.name, xdev->conf.bar_num_config); + return -EINVAL; + } + + if (map_len > QDMA_MAX_BAR_LEN_MAPPED) + map_len = QDMA_MAX_BAR_LEN_MAPPED; + + regs = pci_iomap(pdev, xdev->conf.bar_num_config, map_len); + if (!regs) { + pr_err("%s unable to map bar %d.\n", + xdev->conf.name, xdev->conf.bar_num_config); + return -EINVAL; + } + + id = readl(regs + QDMA_REG_CONFIG_BLOCK_IDENTIFIER); + if ((id & M_CONFIG_BAR_IDENTIFIER_MASK) == MAGIC_NUMBER) { + pr_info("QDMA Config BAR passed by the user matches with the identifier register value(0x%08x)\n", + id); + } else { + pr_info("QDMA Config BAR passed by the user doesn't match the identifier register value(0x%08x)\n", + id); + + /* unmap BAR we previously mapped */ + pci_iounmap(pdev, regs); + return -EINVAL; + } + + /* Find out the number of bars present in the design */ + for (bar_idx = 0; bar_idx < QDMA_BAR_NUM; bar_idx++) { + map_len = pci_resource_len(pdev, bar_idx); + if (!map_len) + continue; + + bar_id_list[bar_id_idx] = bar_idx; + bar_id_idx++; + num_bars_present++; + } + + if (num_bars_present > 1) { + /* USER BAR IDENTIFICATION */ +#ifndef __QDMA_VF__ + xdev->func_id = readl(regs + QDMA_REG_FUNC_ID); + user_bar_id = readl(regs + QDMA_REG_PF_USER_BAR_IDENTIFIER); + user_bar_id = (user_bar_id >> (6 * xdev->func_id)) & + M_USER_BAR_ID_MASK; +#else + user_bar_id = readl(regs + QDMA_REG_VF_USER_BAR_IDENTIFIER); + user_bar_id = user_bar_id & M_USER_BAR_ID_MASK; +#endif + for (bar_idx = 0; bar_idx < QDMA_BAR_NUM; bar_idx++) { + if (user_bar_id & (1 << bar_idx)) { + xdev->conf.bar_num_user = bar_idx; + pr_info("User BAR %d.\n", + xdev->conf.bar_num_user); + break; + } + } + + /* BYPASS BAR IDENTIFICATION */ + if (num_bars_present > 2) { + for (bar_idx = 0; bar_idx < num_bars_present; + bar_idx++) { + if ((bar_id_list[bar_idx] != + xdev->conf.bar_num_user) && + (bar_id_list[bar_idx] != + xdev->conf.bar_num_config)) { + xdev->conf.bar_num_bypass = + bar_id_list[bar_idx]; + pr_info("Bypass BAR %d.\n", + xdev->conf.bar_num_bypass); + break; + } + } + } + } + return 0; +} +/*****************************************************************************/ +/** + * xdev_map_bars() - allocate the dma device + * + * @param[in] conf: qdma device configuration + * + * + * @return pointer to dma device + * @return NULL on failure + *****************************************************************************/ +static struct xlnx_dma_dev *xdev_alloc(struct qdma_dev_conf *conf) +{ + struct xlnx_dma_dev *xdev; + + /* allocate zeroed device book keeping structure */ + xdev = kzalloc(sizeof(struct xlnx_dma_dev), GFP_KERNEL); + if (!xdev) + return NULL; + + spin_lock_init(&xdev->hw_prg_lock); + spin_lock_init(&xdev->lock); + + /* create a driver to device reference */ + memcpy(&xdev->conf, conf, sizeof(*conf)); + + /* !! FIXME default to eanbled for everything */ + xdev->flr_prsnt = 1; + xdev->st_mode_en = 1; + xdev->mm_mode_en = 1; + xdev->mm_channel_max = 1; + + return xdev; +} + +/*****************************************************************************/ +/** + * pci_dma_mask_set() - check the pci capability of the dma device + * + * @param[in] pdev: pointer to struct pci_dev + * + * + * @return 0: on success + * @return <0: on failure + *****************************************************************************/ +static int pci_dma_mask_set(struct pci_dev *pdev) +{ + /** 64-bit addressing capability for XDMA? */ + if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) { + /** use 32-bit DMA for descriptors */ + pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); + /** use 64-bit DMA, 32-bit for consistent */ + } else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) { + pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)); + /** use 32-bit DMA */ + dev_info(&pdev->dev, "Using a 32-bit DMA mask.\n"); + } else { + /** use 32-bit DMA */ + dev_info(&pdev->dev, "No suitable DMA possible.\n"); + return -EINVAL; + } + + return 0; +} + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 5, 0) +static void pci_enable_relaxed_ordering(struct pci_dev *pdev) +{ + pcie_capability_set_word(pdev, PCI_EXP_DEVCTL, PCI_EXP_DEVCTL_RELAX_EN); +} + +static void pci_enable_extended_tag(struct pci_dev *pdev) +{ + pcie_capability_set_word(pdev, PCI_EXP_DEVCTL, PCI_EXP_DEVCTL_EXT_TAG); +} +#else +static void pci_enable_relaxed_ordering(struct pci_dev *pdev) +{ + u16 v; + int pos; + + pos = pci_pcie_cap(pdev); + if (pos > 0) { + pci_read_config_word(pdev, pos + PCI_EXP_DEVCTL, &v); + v |= PCI_EXP_DEVCTL_RELAX_EN; + pci_write_config_word(pdev, pos + PCI_EXP_DEVCTL, v); + } +} + +static void pci_enable_extended_tag(struct pci_dev *pdev) +{ + u16 v; + int pos; + + pos = pci_pcie_cap(pdev); + if (pos > 0) { + pci_read_config_word(pdev, pos + PCI_EXP_DEVCTL, &v); + v |= PCI_EXP_DEVCTL_EXT_TAG; + pci_write_config_word(pdev, pos + PCI_EXP_DEVCTL, v); + } +} +#endif + +/*****************************************************************************/ +/** + * qdma_device_offline() - set the dma device in offline mode + * + * @param[in] pdev: pointer to struct pci_dev + * @param[in] dev_hndl: device handle + * + * + * @return none + *****************************************************************************/ +void qdma_device_offline(struct pci_dev *pdev, unsigned long dev_hndl) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (!dev_hndl) + return; + + if (xdev_check_hndl(__func__, pdev, dev_hndl) < 0) + return; + + if (xdev->conf.pdev != pdev) { + pr_info("pci_dev(0x%lx) != pdev(0x%lx)\n", + (unsigned long)xdev->conf.pdev, (unsigned long)pdev); + } + + if (xlnx_dma_device_flag_check(xdev, XDEV_FLAG_OFFLINE)) + return; + xdev_flag_set(xdev, XDEV_FLAG_OFFLINE); + +#ifdef __QDMA_VF__ + xdev_sriov_vf_offline(xdev, 0); +#elif defined(CONFIG_PCI_IOV) + xdev_sriov_disable(xdev); +#endif + + qdma_device_cleanup(xdev); + + qdma_mbox_cleanup(xdev); +} + +/*****************************************************************************/ +/** + * qdma_device_online() - set the dma device in online mode + * + * @param[in] pdev: pointer to struct pci_dev + * @param[in] dev_hndl: device handle + * + * + * @return 0: on success + * @return <0: on failure + *****************************************************************************/ +int qdma_device_online(struct pci_dev *pdev, unsigned long dev_hndl) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + int rv; + + if (!dev_hndl) + return -EINVAL; + + if (xdev_check_hndl(__func__, pdev, dev_hndl) < 0) + return -EINVAL; + + if (xdev->conf.pdev != pdev) { + pr_info("pci_dev(0x%lx) != pdev(0x%lx)\n", + (unsigned long)xdev->conf.pdev, (unsigned long)pdev); + } + + rv = qdma_device_init(xdev); + if (rv < 0) { + pr_warn("qdma_init failed %d.\n", rv); + goto cleanup_qdma; + } + xdev_flag_clear(xdev, XDEV_FLAG_OFFLINE); + qdma_mbox_init(xdev); +#ifdef __QDMA_VF__ + /* PF mbox will start when vf > 0 */ + qdma_mbox_start(xdev); + rv = xdev_sriov_vf_online(xdev, 0); + if (rv < 0) + goto cleanup_qdma; +#elif defined(CONFIG_PCI_IOV) + if (xdev->conf.vf_max) { + rv = xdev_sriov_enable(xdev, xdev->conf.vf_max); + if (rv < 0) + goto cleanup_qdma; + } +#endif + return 0; + +cleanup_qdma: + qdma_device_cleanup(xdev); + return rv; +} + +/*****************************************************************************/ +/** + * qdma_device_open() - open the dma device + * + * @param[in] mod_name: name of the dma device + * @param[in] conf: device configuration + * @param[in] dev_hndl: device handle + * + * + * @return 0: on success + * @return <0: on failure + *****************************************************************************/ +int qdma_device_open(const char *mod_name, struct qdma_dev_conf *conf, + unsigned long *dev_hndl) +{ + struct pci_dev *pdev = NULL; + struct xlnx_dma_dev *xdev = NULL; + int rv = 0; + + *dev_hndl = 0UL; + + if (!mod_name) { + pr_info("%s: mod_name is NULL.\n", __func__); + return QDMA_ERR_INVALID_INPUT_PARAM; + } + + if (!conf) { + pr_info("%s: queue_conf is NULL.\n", mod_name); + return QDMA_ERR_INVALID_INPUT_PARAM; + } + + pdev = conf->pdev; + + if (!pdev) { + pr_info("%s: pci device NULL.\n", mod_name); + return QDMA_ERR_INVALID_PCI_DEV; + } + conf->bar_num_stm = -1; + + pr_info("%s, %02x:%02x.%02x, pdev 0x%p, 0x%x:0x%x.\n", + mod_name, pdev->bus->number, PCI_SLOT(pdev->devfn), + PCI_FUNC(pdev->devfn), pdev, pdev->vendor, pdev->device); + + xdev = xdev_find_by_pdev(pdev); + if (xdev) { + pr_warn("%s, device %s already attached!\n", + mod_name, dev_name(&pdev->dev)); + return QDMA_ERR_PCI_DEVICE_ALREADY_ATTACHED; + } + + rv = pci_request_regions(pdev, mod_name); + if (rv) { + /* Just info, some other driver may have claimed the device. */ + dev_info(&pdev->dev, "cannot obtain PCI resources\n"); + return rv; + } + + rv = pci_enable_device(pdev); + if (rv) { + dev_err(&pdev->dev, "cannot enable PCI device\n"); + goto release_regions; + } + + /* enable relaxed ordering */ + pci_enable_relaxed_ordering(pdev); + + /* enable extended tag */ + pci_enable_extended_tag(pdev); + + /* enable bus master capability */ + pci_set_master(pdev); + + rv = pci_dma_mask_set(pdev); + if (rv) + goto disable_device; + + pcie_set_readrq(pdev, 512); + + /* allocate zeroed device book keeping structure */ + xdev = xdev_alloc(conf); + if (!xdev) + goto disable_device; + + strncpy(xdev->mod_name, mod_name, QDMA_DEV_NAME_MAXLEN - 1); + + xdev_flag_set(xdev, XDEV_FLAG_OFFLINE); + xdev_list_add(xdev); + + rv = sprintf(xdev->conf.name, "qdma%05x-p%s", + xdev->conf.bdf, dev_name(&xdev->conf.pdev->dev)); + xdev->conf.name[rv] = '\0'; + +#ifdef DEBUGFS + /** time to clean debugfs */ + dbgfs_dev_init(xdev); +#endif + + rv = xdev_identify_bars(xdev, pdev); + if (rv) + goto remove_xdev; + + /* Mapping bars */ + rv = xdev_map_bars(xdev, pdev); + if (rv) + goto unmap_bars; + + /* program STM port map */ + if (xdev->stm_en) { + u32 v = readl(xdev->stm_regs + STM_REG_BASE + + STM_REG_H2C_MODE); + v &= 0x0000FFFF; + v |= (STM_PORT_MAP << S_STM_PORT_MAP); + v |= F_STM_EN_STMA_BKCHAN; + writel(v, xdev->stm_regs + STM_REG_BASE + STM_REG_H2C_MODE); + } + +#ifndef __QDMA_VF__ + /* get the device attributes */ + qdma_device_attributes_get(xdev); + + if (!xdev->mm_mode_en && !xdev->st_mode_en) { + pr_info("None of the modes ( ST or MM) are enabled\n"); + rv = QDMA_ERR_INTERFACE_NOT_ENABLED_IN_DEVICE; + goto unmap_bars; + } +#endif + + memcpy(conf, &xdev->conf, sizeof(*conf)); + + rv = qdma_device_online(pdev, (unsigned long)xdev); + if (rv < 0) + goto cleanup_qdma; + + pr_info("%s, %05x, pdev 0x%p, xdev 0x%p, ch %u, q %u, vf %u.\n", + dev_name(&pdev->dev), xdev->conf.bdf, pdev, xdev, + xdev->mm_channel_max, conf->qsets_max, conf->vf_max); + + *dev_hndl = (unsigned long)xdev; + + return QDMA_OPERATION_SUCCESSFUL; + +cleanup_qdma: + qdma_device_offline(pdev, (unsigned long)xdev); + +unmap_bars: + xdev_unmap_bars(xdev, pdev); +remove_xdev: + xdev_list_remove(xdev); + kfree(xdev); + +disable_device: + pci_disable_device(pdev); + +release_regions: + pci_release_regions(pdev); + + return rv; +} + +/*****************************************************************************/ +/** + * qdma_device_close() - close the dma device + * + * @param[in] pdev: pointer to struct pci_dev + * @param[in] dev_hndl: device handle + * + * + * @return none + *****************************************************************************/ +void qdma_device_close(struct pci_dev *pdev, unsigned long dev_hndl) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (!dev_hndl) + return; + + if (xdev_check_hndl(__func__, pdev, dev_hndl) < 0) + return; + + if (xdev->conf.pdev != pdev) { + pr_info("pci_dev(0x%lx) != pdev(0x%lx)\n", + (unsigned long)xdev->conf.pdev, (unsigned long)pdev); + } + + qdma_device_offline(pdev, dev_hndl); + + xdev_unmap_bars(xdev, pdev); + + pci_release_regions(pdev); + pci_disable_device(pdev); + +#ifdef DEBUGFS + /** time to clean debugfs */ + dbgfs_dev_exit(xdev); +#endif + + xdev_list_remove(xdev); + + kfree(xdev); +} + +/*****************************************************************************/ +/** + * qdma_device_get_config() - get the device configuration + * + * @param[in] dev_hndl: device handle + * @param[out] conf: dma device configuration + * @param[out] buf, buflen: + * error message buffer, can be NULL/0 (i.e., optional) + * + * + * @return none + *****************************************************************************/ +int qdma_device_get_config(unsigned long dev_hndl, struct qdma_dev_conf *conf, + char *buf, int buflen) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + memcpy(conf, &xdev->conf, sizeof(*conf)); + + return 0; +} + +int qdma_device_clear_stats(unsigned long dev_hndl) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *) dev_hndl; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + xdev->total_mm_h2c_pkts = 0; + xdev->total_mm_c2h_pkts = 0; + xdev->total_st_h2c_pkts = 0; + xdev->total_st_c2h_pkts = 0; + + return 0; +} + +int qdma_device_get_mmh2c_pkts(unsigned long dev_hndl, + unsigned long long *mmh2c_pkts) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *) dev_hndl; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + *mmh2c_pkts = xdev->total_mm_h2c_pkts; + + return 0; +} + +int qdma_device_get_mmc2h_pkts(unsigned long dev_hndl, + unsigned long long *mmc2h_pkts) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *) dev_hndl; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + *mmc2h_pkts = xdev->total_mm_c2h_pkts; + + return 0; +} + +int qdma_device_get_sth2c_pkts(unsigned long dev_hndl, + unsigned long long *sth2c_pkts) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *) dev_hndl; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + *sth2c_pkts = xdev->total_st_h2c_pkts; + + return 0; +} + +int qdma_device_get_stc2h_pkts(unsigned long dev_hndl, + unsigned long long *stc2h_pkts) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *) dev_hndl; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + *stc2h_pkts = xdev->total_st_c2h_pkts; + + return 0; +} + +/*****************************************************************************/ +/** + * qdma_device_set_config() - set the device configuration + * + * @param[in] dev_hndl: device handle + * @param[in] conf: dma device configuration to set + * + * @return 0 on success ,<0 on failure + *****************************************************************************/ +int qdma_device_set_config(unsigned long dev_hndl, struct qdma_dev_conf *conf) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (!conf) + return -EINVAL; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + memcpy(&xdev->conf, conf, sizeof(*conf)); + + return 0; +} + +/*****************************************************************************/ +/** + * qdma_device_set_cfg_state - set the device configuration state + * + * @param[in] dev_hndl: device handle + * @param[in] new_cfg_state: dma device conf state to set + * + * + * @return 0 on success ,<0 on failure + *****************************************************************************/ + +int qdma_device_set_cfg_state(unsigned long dev_hndl, + enum qdma_dev_qmax_state new_cfg_state) +{ + struct xlnx_dma_dev *xdev = (struct xlnx_dma_dev *)dev_hndl; + + if (new_cfg_state > QMAX_CFG_USER) + return -EINVAL; + + if (xdev_check_hndl(__func__, xdev->conf.pdev, dev_hndl) < 0) + return -EINVAL; + + xdev->conf.cur_cfg_state = new_cfg_state; + + return 0; +} + diff --git a/QDMA/linux-kernel/libqdma/xdev.h b/QDMA/linux-kernel/libqdma/xdev.h new file mode 100644 index 0000000..a875d02 --- /dev/null +++ b/QDMA/linux-kernel/libqdma/xdev.h @@ -0,0 +1,531 @@ +/* + * This file is part of the Xilinx DMA IP Core driver for Linux + * + * Copyright (c) 2017-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * The full GNU General Public License is included in this distribution in + * the file called "COPYING". + */ + +#ifndef __XDEV_H__ +#define __XDEV_H__ +/** + * @file + * @brief This file contains the declarations for QDMA PCIe device + * + */ +#include <linux/types.h> +#include <linux/dma-mapping.h> +#include <linux/interrupt.h> +#include <linux/pci.h> + +#include "libqdma_export.h" +#include "qdma_mbox.h" +#include "qdma_qconf_mgr.h" +#ifdef DEBUGFS +#include "qdma_debugfs.h" +#endif + +/** + * QDMA bars + */ +#define QDMA_BAR_NUM 6 +/** + * QDMA config bar size - 64MB + */ +#define QDMA_MAX_BAR_LEN_MAPPED 0x4000000 + +/* + *module_param_array: + *config_bar=<bus_num(16bits)><pf0_config_bar(4bits)><pf1_config_bar(4bits)> + * <pf2_config_bar(4bits)><pf3_config_bar(4bits)> + *config_bar=<bus_num(16bits)><vf_pf0_config_bar(4bits)> + * <vf_pf1_config_bar(4bits)><vf_pf2_config_bar(4bits)> + * <vf_pf3_config_bar(4bits)> + * + */ +#define BUS_NUM_MASK 0xFFFF0000 +#define BUS_NUM_SHIFT 16 + +#define PF_DEV_0_MASK 0x0000F000 +#define PF_DEV_0_SHIFT 12 +#define PF_DEV_1_MASK 0x00000F00 +#define PF_DEV_1_SHIFT 8 +#define PF_DEV_2_MASK 0x000000F0 +#define PF_DEV_2_SHIFT 4 +#define PF_DEV_3_MASK 0x0000000F +#define PF_DEV_3_SHIFT 0 + +#define VF_PF_IDENTIFIER_MASK 0xF +#define VF_PF_IDENTIFIER_SHIFT 8 + +enum qdma_pf_devices { + PF_DEVICE_0 = 0, + PF_DEVICE_1, + PF_DEVICE_2, + PF_DEVICE_3 +}; +/** + * number of bits to describe the DMA transfer descriptor + */ +#define QDMA_DESC_BLEN_BITS 28 +/** + * maximum size of a single DMA transfer descriptor + */ +#define QDMA_DESC_BLEN_MAX ((1 << (QDMA_DESC_BLEN_BITS)) - 1) + +/** + * obtain the 32 most significant (high) bits of a 32-bit or 64-bit address + */ +#define PCI_DMA_H(addr) ((addr >> 16) >> 16) +/** + * obtain the 32 least significant (low) bits of a 32-bit or 64-bit address + */ +#define PCI_DMA_L(addr) (addr & 0xffffffffUL) + +/** + * Xiling DMA device forward declaration + */ +struct xlnx_dma_dev; + +/* XDMA PCIe device specific book-keeping */ +/** + * Flag for device offline + */ +#define XDEV_FLAG_OFFLINE 0x1 +/** + * Flag for IRQ + */ +#define XDEV_FLAG_IRQ 0x2 +/** + * Maximum number of interrupts supported per device + */ +#define XDEV_NUM_IRQ_MAX 8 + +/** + * interrupt call back function handlers + */ +typedef irqreturn_t (*f_intr_handler)(int irq_index, int irq, void *dev_id); + +/** + * @struct - intr_coal_conf + * @brief interrut coalescing configuration + */ +struct intr_coal_conf { + /**< interrupt vector index */ + u16 vec_id; + /**< number of entries in interrupt ring per vector */ + u16 intr_rng_num_entries; + /**< interrupt ring base address */ + dma_addr_t intr_ring_bus; + struct qdma_intr_ring *intr_ring_base; + /**< color value indicates the valid entry in the interrupt ring */ + u8 color; + /**< interrupt ring consumer index */ + unsigned int cidx; +}; + +/** + * Macros for Hardware Version info + */ +#define RTL1_VERSION 0 +#define RTL2_VERSION 1 +#define VIVADO_RELEASE_2018_3 0 +#define VIVADO_RELEASE_2018_2 1 +#define EVEREST_SOFT_IP 0 +#define EVEREST_HARD_IP 1 + +/** + * intr_type_list - interrupt types + */ +enum intr_type_list { + INTR_TYPE_ERROR, /**< error interrupt */ + INTR_TYPE_USER, /**< user interrupt */ + INTR_TYPE_DATA, /**< data interrupt */ + INTR_TYPE_MAX /**< max interrupt */ +}; + +/** + * @struct - intr_vec_map_type + * @brief interrupt vector map details + */ +struct intr_vec_map_type { + enum intr_type_list intr_type; /**< interrupt type */ + int intr_vec_index; /**< interrupt vector index */ + f_intr_handler intr_handler; /**< interrupt handler */ +}; + +/**< Interrupt info for MSI-X interrupt vectors per device */ +struct intr_info_t { + /**< msix_entry list for all vectors */ + char msix_name[QDMA_DEV_NAME_MAXLEN + 16]; + /**< queue list for each interrupt */ + struct list_head intr_list; + /**< number of queues assigned for each interrupt */ + int intr_list_cnt; + /**< interrupt vector map */ + struct intr_vec_map_type intr_vec_map; +}; + +/** + * @struct - xlnx_dma_dev + * @brief Xilinx DMA device details + */ +struct xlnx_dma_dev { + /**< Xilinx DMA device name */ + char mod_name[QDMA_DEV_NAME_MAXLEN]; + /**< DMA device configuration */ + struct qdma_dev_conf conf; + /**< DMA device list */ + struct list_head list_head; + /**< DMA device lock to protects concurrent access */ + spinlock_t lock; + /**< DMA device hardware program lock */ + spinlock_t hw_prg_lock; + /**< device flags */ + unsigned int flags; + u8 flr_prsnt:1; + /**< flag to indicate the FLR present status */ + u8 st_mode_en:1; + /**< flag to indicate the streaming mode enabled status */ + u8 mm_mode_en:1; + /**< flag to indicate the memory mapped mode enabled status */ + u8 stm_en:1; + /**< flag to indicate the presence of STM */ + /**< sriov info */ + void *vf_info; + /**< number of virtual functions */ + u8 vf_count; + /**< function id */ + u16 func_id; +#ifdef __QDMA_VF__ + /**< parent function id, valid only for virtual function */ + u8 func_id_parent; +#else + /**< number of physical functions */ + u8 pf_count; +#endif + /**< max mm channels */ + u8 mm_channel_max; + u8 stm_rev; + /**< PCIe config. bar */ + void __iomem *regs; + /** PCIe Bar for STM config */ + void __iomem *stm_regs; + + /**< number of MSI-X interrupt vectors per device */ + int num_vecs; + /**< msix_entry list for all MSIx vectors associated for device */ + struct msix_entry *msix; + /**< interrupt info list for all MSIx vectors associated for device */ + struct intr_info_t *dev_intr_info_list; + /**< data vector start index */ + int dvec_start_idx; + /**< DMA private device to hold the qdma que details */ + void *dev_priv; + /**< dsa configured max pkt size that STM can support */ + u32 pipe_stm_max_pkt_size; + /**< list of interrupt coalescing configuration for each vector */ + struct intr_coal_conf *intr_coal_list; + /**< legacy interrupt vector */ + int vector_legacy; +#ifdef ERR_DEBUG + /**< error lock */ + spinlock_t err_lock; + /**< flag to indicate the error minitor status */ + u8 err_mon_cancel; + /**< error minitor work handler */ + struct delayed_work err_mon; +#endif + +#ifdef DEBUGFS + /** debugfs device root */ + struct dentry *dbgfs_dev_root; + /** debugfs queue root */ + struct dentry *dbgfs_queues_root; + /* lock for creating qidx directory */ + spinlock_t qidx_lock; +#endif + + /** number of packets processed in pf */ + struct qdma_mbox mbox; + unsigned long long total_mm_h2c_pkts; + unsigned long long total_mm_c2h_pkts; + unsigned long long total_st_h2c_pkts; + unsigned long long total_st_c2h_pkts; + /**< for upper layer calling function */ + unsigned int dev_ulf_extra[0]; +}; + +/*****************************************************************************/ +/** + * xlnx_dma_device_flag_check() - helper function to check the flag status + * + * @param[in] xdev: pointer to xilinx dma device + * @param[in] f: flag value + * + * + * @return 1 if the flag is on + * @return 0 if the flag is off + *****************************************************************************/ +static inline int xlnx_dma_device_flag_check(struct xlnx_dma_dev *xdev, + unsigned int f) +{ + unsigned long flags; + + spin_lock_irqsave(&xdev->lock, flags); + if (xdev->flags & f) { + spin_unlock_irqrestore(&xdev->lock, flags); + return 1; + } + spin_unlock_irqrestore(&xdev->lock, flags); + return 0; +} + +/*****************************************************************************/ +/** + * xlnx_dma_device_flag_test_n_set() - helper function to test n set the flag + * + * @param[in] xdev: pointer to xilinx dma device + * @param[in] f: flag value + * + * + * @return 1 if the flag is already enabled + * @return 0 if the flag is off + *****************************************************************************/ +static inline int xlnx_dma_device_flag_test_n_set(struct xlnx_dma_dev *xdev, + unsigned int f) +{ + unsigned long flags; + int rv = 0; + + spin_lock_irqsave(&xdev->lock, flags); + if (xdev->flags & f) { + spin_unlock_irqrestore(&xdev->lock, flags); + rv = 1; + } else + xdev->flags |= f; + spin_unlock_irqrestore(&xdev->lock, flags); + return rv; +} + +/*****************************************************************************/ +/** + * xdev_flag_set() - helper function to set the device flag + * + * @param[in] xdev: pointer to xilinx dma device + * @param[in] f: flag value + * + * + * @return none + *****************************************************************************/ +static inline void xdev_flag_set(struct xlnx_dma_dev *xdev, unsigned int f) +{ + unsigned long flags; + + spin_lock_irqsave(&xdev->lock, flags); + xdev->flags |= f; + spin_unlock_irqrestore(&xdev->lock, flags); +} + +/*****************************************************************************/ +/** + * xlnx_dma_device_flag_test_n_set() - helper function to clear the device flag + * + * @param[in] xdev: pointer to xilinx dma device + * @param[in] f: flag value + * + * @return none + *****************************************************************************/ +static inline void xdev_flag_clear(struct xlnx_dma_dev *xdev, unsigned int f) +{ + unsigned long flags; + + spin_lock_irqsave(&xdev->lock, flags); + xdev->flags &= ~f; + spin_unlock_irqrestore(&xdev->lock, flags); +} + +/*****************************************************************************/ +/** + * xdev_find_by_pdev() - find the xdev using struct pci_dev + * + * @param[in] pdev: pointer to struct pci_dev + * + * @return pointer to xlnx_dma_dev on success + * @return NULL on failure + *****************************************************************************/ +struct xlnx_dma_dev *xdev_find_by_pdev(struct pci_dev *pdev); + +/*****************************************************************************/ +/** + * xdev_find_by_idx() - find the xdev using the index value + * + * @param[in] idx: index value in the xdev list + * + * @return pointer to xlnx_dma_dev on success + * @return NULL on failure + *****************************************************************************/ +struct xlnx_dma_dev *xdev_find_by_idx(int idx); + +/*****************************************************************************/ +/** + * xdev_list_first() - handler to return the first xdev entry from the list + * + * @return pointer to first xlnx_dma_dev on success + * @return NULL on failure + *****************************************************************************/ +struct xlnx_dma_dev *xdev_list_first(void); + +/*****************************************************************************/ +/** + * xdev_list_next() - handler to return the next xdev entry from the list + * + * @param[in] xdev: pointer to current xdev + * + * @return pointer to next xlnx_dma_dev on success + * @return NULL on failure + *****************************************************************************/ +struct xlnx_dma_dev *xdev_list_next(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * xdev_list_dump() - list the dma device details + * + * @param[in] buflen: length of the input buffer + * @param[out] buf: message buffer + * + * @return pointer to next xlnx_dma_dev on success + * @return NULL on failure + *****************************************************************************/ +int xdev_list_dump(char *buf, int buflen); + +/*****************************************************************************/ +/** + * xdev_check_hndl() - helper function to validate the device handle + * + * @param[in] f: device name + * @param[in] pdev: pointer to struct pci_dev + * @param[in] hndl: device handle + * + * @return 0: success + * @return EINVAL: on failure + *****************************************************************************/ +int xdev_check_hndl(const char *f, struct pci_dev *pdev, unsigned long hndl); + + +#ifdef __QDMA_VF__ +/*****************************************************************************/ +/** + * xdev_sriov_vf_offline() - API to set the virtual function to offline mode + * + * @param[in] xdev: pointer to xdev + * @param[in] func_id: function identifier + * + * @return 0: success + * @return -1: on failure + *****************************************************************************/ +int xdev_sriov_vf_offline(struct xlnx_dma_dev *xdev, u8 func_id); + +/*****************************************************************************/ +/** + * xdev_sriov_vf_online() - API to set the virtual function to online mode + * + * @param[in] xdev: pointer to xdev + * @param[in] func_id: function identifier + * + * @return 0: success + * @return -1: on failure + *****************************************************************************/ +int xdev_sriov_vf_online(struct xlnx_dma_dev *xdev, u8 func_id); +#elif defined(CONFIG_PCI_IOV) +/* SR-IOV */ +/*****************************************************************************/ +/** + * xdev_sriov_vf_online() - API to disable the virtual function + * + * @param[in] xdev: pointer to xdev + * + * @return none + *****************************************************************************/ +void xdev_sriov_disable(struct xlnx_dma_dev *xdev); + +/*****************************************************************************/ +/** + * xdev_sriov_vf_online() - API to enable the virtual function + * + * @param[in] xdev: pointer to xdev + * @param[in] func_id: function identifier + * + * @return number of vfs enabled on success + * @return -1: on failure + *****************************************************************************/ +int xdev_sriov_enable(struct xlnx_dma_dev *xdev, int num_vfs); + +/*****************************************************************************/ +/** + * xdev_sriov_vf_offline() - API to set the virtual function to offline mode + * + * @param[in] xdev: pointer to xdev + * @param[in] func_id: function identifier + * + * @return none + *****************************************************************************/ +void xdev_sriov_vf_offline(struct xlnx_dma_dev *xdev, u8 func_id); + +/*****************************************************************************/ +/** + * xdev_sriov_vf_offline() - API to set the virtual function to offline mode + * + * @param[in] xdev: pointer to xdev + * @param[in] func_id: function identifier + * + * @return 0: success + * @return -1: on failure + *****************************************************************************/ +int xdev_sriov_vf_online(struct xlnx_dma_dev *xdev, u8 func_id); + +/*****************************************************************************/ +/** + * xdev_sriov_vf_offline() - API to configure the fmap for virtual function + * + * @param[in] xdev: pointer to xdev + * @param[in] func_id: function identifier + * @param[in] qbase: queue start + * @param[in] qmax: queue max + * + * @return 0: success + * @return -1: on failure + *****************************************************************************/ +int xdev_sriov_vf_fmap(struct xlnx_dma_dev *xdev, u8 func_id, + unsigned short qbase, unsigned short qmax); +#else +/** dummy declaration for xdev_sriov_disable() + * When virtual function is not enabled + */ +#define xdev_sriov_disable(xdev) +/** dummy declaration for xdev_sriov_enable() + * When virtual function is not enabled + */ +#define xdev_sriov_enable(xdev, num_vfs) +/** dummy declaration for xdev_sriov_vf_offline() + * When virtual function is not enabled + */ +#define xdev_sriov_vf_offline(xdev, func_id) +/** dummy declaration for xdev_sriov_vf_online() + * When virtual function is not enabled + */ +#define xdev_sriov_vf_online(xdev, func_id) +#endif + +#endif /* XDMA_LIB_H */ diff --git a/QDMA/linux-kernel/make/common_flags.mk b/QDMA/linux-kernel/make/common_flags.mk new file mode 100644 index 0000000..1b7c48c --- /dev/null +++ b/QDMA/linux-kernel/make/common_flags.mk @@ -0,0 +1,9 @@ +#Build flags common to xdma/qdma + +ifeq ($(VF),1) + EXTRA_FLAGS += -D__QDMA_VF__ + PFVF_TYPE = _vf +else + PFVF_TYPE = +endif + diff --git a/QDMA/linux-kernel/make/distro_check.mk b/QDMA/linux-kernel/make/distro_check.mk new file mode 100644 index 0000000..ec339c7 --- /dev/null +++ b/QDMA/linux-kernel/make/distro_check.mk @@ -0,0 +1,86 @@ +# +# distro. checks +# uses the same variables calculated from kernel_check.mk +# + +distro := +dmajor := +dminor := + +# kernel.org rc kernels +#ifneq ($(shell echo $(kextraversion) | $(grep) -c 'git'),0) +# distro := GIT +# dmajor := +# dminor := +#endif # kernel.org + +ifneq ($(shell $(grep) -c 'RHEL' $(VERSION_H)),0) + distro := RHEL +# distro_vmajor := $(shell $(grep) 'RHEL_MAJOR' $(VERSION_H) | cut -d' ' -f3) +# distro_vminor := $(shell $(grep) 'RHEL_MINOR' $(VERSION_H) | cut -d' ' -f3) + dmajor := $(word 3, $(shell $(grep) 'RHEL_MAJOR' $(VERSION_H))) + dminor := $(word 3, $(shell $(grep) 'RHEL_MINOR' $(VERSION_H))) + ifeq ($(dmajor),) + ifeq ($(dminor),) + $(error ERROR! RHEL distro version NOT specified, check version.h.) + endif + endif + ifeq ($(shell [ $(dmajor) -lt 7 ] && echo 1),1) + $(error ERROR! Unsupported RHEL version $(dmajor).$(dminor).) + endif + ifeq ($(dmajor),7) + ifeq ($(shell [ $(dminor) -lt 1 ] && echo 1),1) + $(error ERROR! Unsupported RHEL version $(dmajor).$(dminor).) + endif + endif +endif # RHEL + +# SLES does not provide any release macros like RHEL. So we are +# setting Makefile flags for SLES releases based on the version +# and patchlevel obtained from /etc/SuSE-release file +ifneq ($(wildcard /etc/SuSE-release),) + distro := SLES + dmajor := $(shell cat /etc/SuSE-release | grep VERSION | awk '{print $$3}') + dminor := $(shell cat /etc/SuSE-release | grep PATCHLEVEL | awk '{print $$3}') +endif + +$(info "distro=$(distro), dmajor=$(dmajor) dminor=$(dminor) ") + +# assume this is kernel.org kernels +ifeq ($(distro),) + ifeq ($(kseries),2.6) + ifeq ($(shell [ $(ksublevel) -ge 32 ] && echo 1),1) + distro := GIT + else + $(error kernel version $(kbaseversion)$(kextraversion) NOT supported.) + $( kernel.org Requires >= 2.6.32.) + endif + endif + + ifeq ($(kversion),3) + ifeq ($(shell [ $(kpatchlevel) -ge 1 ] && echo 1),1) + distro := GIT + else + $(error kernel version $(kbaseversion)$(kextraversion) NOT supported.) + $( kernel.org Requires >= 3.1.) + endif + endif + + ifeq ($(kversion),4) + distro := GIT + endif +endif # assume kernel.org kernels + +ifeq ($(distro),) + $(error kernel version $(kbaseversion)$(kextraversion) NOT supported.) + $( kernel.org Requires >= 2.6.35.) +endif + +FLAGS += -D$(distro)$(dmajor)SP$(dminor) +FLAGS += -D$(distro)$(dmajor) + +$(info $(kbaseversion)$(kextraversion): $(distro),$(dmajor),$(dminor), $(FLAGS)) + +export distro +export dmajor +export dminor diff --git a/QDMA/linux-kernel/make/kernel_check.mk b/QDMA/linux-kernel/make/kernel_check.mk new file mode 100644 index 0000000..bce232c --- /dev/null +++ b/QDMA/linux-kernel/make/kernel_check.mk @@ -0,0 +1,332 @@ +# Kernel directories. +KERNELRELEASE := $(shell uname -r) + +# If KSRC=<path> is specified on the command line, KOBJ=<path> must +# also be specified. This is to avoid mixups if the kernel object path +# differs from the source path. A shortcut (KSRC=KOBJ) is to use KDIR. +ifeq ($(KDIR),) + ifeq ($(KSRC),) + ifneq ($(KOBJ),) + $(warning When using KOBJ=<path>, the KSRC=<path> must also be defined.) + $(warning Use KDIR=<path> when KSRC and KOBJ are the same.) + $(error ERROR: kernel source path not specified) + endif + else + ifeq ($(KOBJ),) + $(warning When using KSRC=<path>, the KOBJ=<path> must also be defined.) + $(warning Use KDIR=<path> when KSRC and KOBJ are the same.) + $(error ERROR: KOBJ path not specified) + endif + endif +else + override KSRC := $(KDIR) + override KOBJ := $(KDIR) +endif + +# Only if KSRC/KOBJ were not defined on the command line. +KSRC ?= $(wildcard /lib/modules/$(KERNELRELEASE)/source) +KOBJ ?= $(wildcard /lib/modules/$(KERNELRELEASE)/build) +KINC = $(KSRC)/include + +#$(warning KDIR: $(KDIR).) + +ifeq ($(KSRC),) + KSRC = $(KOBJ) +endif + +# Define kernel files. +VERSION_H := $(KOBJ)/include/linux/version.h +AUTOCONF_H := $(KOBJ)/include/generated/autoconf.h +UTSRELEASE_H := $(KOBJ)/include/generated/utsrelease.h + +ifeq ($(wildcard $(VERSION_H)),) + VERSION_H := $(KOBJ)/include/generated/uapi/linux/version.h +endif +ifeq ($(wildcard $(AUTOCONF_H)),) + AUTOCONF_H := $(KOBJ)/include/linux/autoconf.h +endif +ifeq ($(wildcard $(UTSRELEASE_H)),) + UTSRELEASE_H := $(KOBJ)/include/linux/utsrelease.h +endif +#ifeq ($(wildcard $(UTSRELEASE_H)),) +# $(error NO utsrelease) +#endif + +# Define architecture and target(for RPM). +ARCH := $(shell uname -m) +target := $(ARCH) +override ARCH := $(shell echo $(ARCH) | sed 's/i.86/i386/') +ifeq ($(USER_ARCH),) + + ifeq ($(ARCH),ppc64le) + ifeq ($(wildcard $(KOBJ)/arch/$(ARCH)),) + override ARCH := powerpc + endif + endif + + ifeq ($(ARCH),ppc64) + # Check if the kernel wants ppc64 or powerpc. + ifeq ($(wildcard $(KOBJ)/arch/$(ARCH)),) + override ARCH := powerpc + endif + endif +else + # Honor the value of ARCH if specified by user. + override ARCH := $(USER_ARCH) +endif + +# Functions. +define path_check +$(if $(wildcard $(1)),$(1),) +endef +define reverse_sort +$(shell echo -e `echo "$(strip $(1))" |\ + sed 's/[[:space:]]/\\\n/g'` | sort -r) +endef +define version_code +$(shell let x=`sed '/^\#define[[:space:]]*LINUX_VERSION_CODE/!d;\ + s/.*LINUX_VERSION_CODE[[:space:]]*//' < $(1)\ + 2>/dev/null`;\ + let a="$$x >> 16";\ + let x="$$x - ($$a << 16)";\ + let b="$$x >> 8";\ + let x="$$x - ($$b << 8)";\ + echo "$$a $$b $$x") +endef + +# Checks for kernel source and object directories. +ifeq ($(call path_check,$(KSRC)),) + $(warning Be sure the kernel source is properly installed or \ + try specifying the kernel source tree using 'make KSRC=<path>') + $(error ERROR: missing kernel source) +endif +ifeq ($(call path_check,$(KOBJ)),) + $(warning Try specifying the kernel build tree using 'make KOBJ=<path>'.) + $(error ERROR: missing kernel build) +endif + +# Check kernel source and build directories are somewhat likely to be correct. +ifneq ($(notdir $(wildcard $(KSRC)/Makefile)),Makefile) + $(warning There seems to be a problem with the kernel \ + source [$(KSRC)] directory.) + $(error ERROR: missing kernel Makefile) +endif +ifneq ($(notdir $(wildcard $(KOBJ)/Makefile)),Makefile) + $(warning There seems to be a problem with the kernel \ + build [$(KOBJ)] directory.) + $(error ERROR: missing kernel Makefile) +endif + +# Get kernel version code info. +KERNELVERSION := $(strip $(call version_code,$(VERSION_H))) +ifneq ($(words $(KERNELVERSION)), 3) + $(error ERROR: unexpected kernel version \ + '$(shell echo $(KERNELVERSION) | sed 's/[[:space:]]/./g')') +endif + +# Define kernel version details. +kversion := $(word 1, $(KERNELVERSION)) +kpatchlevel := $(word 2, $(KERNELVERSION)) +ksublevel := $(word 3, $(KERNELVERSION)) + +# The kernel base version, excluding the EXTRAVERSION string. +kbaseversion := $(kversion).$(kpatchlevel).$(ksublevel) + +# The kernel series version. +kseries := $(kversion).$(kpatchlevel) + +# Fix for variation of Module.symvers naming (thanks 2.6.17!). +# I need to know the file name of the module symver generated by the kernel +# during an external module build (MODPOST). Also used for kernels that don't +# automatically generate the module symver file during MODPOST (2.6.0-2.6.17?). +ifeq ($(shell $(grep) -c '^modulesymfile[[:space:]]*:\?=' \ + $(KSRC)/scripts/Makefile.modpost),1) + modulesymfile := $(shell $(grep) '^modulesymfile[[:space:]]*:\?=' \ + $(KSRC)/scripts/Makefile.modpost) + kernelsymfile := $(shell $(grep) '^kernelsymfile[[:space:]]*:\?=' \ + $(KSRC)/scripts/Makefile.modpost) +else + ifeq ($(shell $(grep) -c '^symverfile[[:space:]]*:\?=' \ + $(KSRC)/scripts/Makefile.modpost),1) + symverfile := $(shell $(grep) '^symverfile[[:space:]]*:\?=' \ + $(KSRC)/scripts/Makefile.modpost) + kernelsymfile := $(subst symverfile,kernelsymfile,$(symverfile)) + endif +endif +modulesymfile ?= $(symverfile) +ifeq ($(modulesymfile),) + $(warning The parsing of $(KSRC)/scripts/Makefile.modpost \ + is not making sense.) + $(error ERROR cannot determine module symvers file) +endif + +# Gnu make (3.80) bug #1516, $(eval ...) inside conditionals causes errors. +# This is fixed in v3.81 and some v3.80 (RHEL4/5) but not on SLES10. +# Workaround: include a separate makefile that does the eval. +ifeq ($(shell echo '$(modulesymfile)' | $(grep) -c '^[[:alnum:]_]\+[[:space:]]*:\?=[[:space:]]*.\+'),1) + $(shell echo '$$(eval $$(modulesymfile))' > eval.mak) + include eval.mak +else + modulesymfile = +endif +ifeq ($(shell echo '$(kernelsymfile)' | $(grep) -c '^[[:alnum:]_]\+[[:space:]]*:\?=[[:space:]]*.\+'),1) + $(shell echo '$$(eval $$(kernelsymfile))' > eval.mak) + include eval.mak +else + kernelsymfile = +endif +modulesymfile := $(notdir $(modulesymfile)) +kernelsymfile := $(notdir $(kernelsymfile)) +$(shell [ -f eval.mak ] && /bin/rm -f eval.mak) + +ifneq ($(words $(modulesymfile)),1) + $(warning The parsing of $(KSRC)/scripts/Makefile.modpost \ + is not making sense.) + $(warning You can try passing 'modulesymfile=Module.symvers' or \ + similar to make.) + $(error ERROR cannot determine module symvers file) +endif + + +# Check for configured kernel. +ifeq ($(wildcard $(AUTOCONF_H)),) + $(warning The kernel is not properly configured, try running \ + 'make menuconfig' on your kernel.) + $(error ERROR: kernel missing autoconf.h) +endif +# Check for built kernel. +ifeq ($(wildcard $(VERSION_H)),) + $(warning The kernel has not been compiled. Try building your kernel \ + before building this driver.) + $(error ERROR: kernel missing version.h) +endif + +# Check that kernel supports modules. +ifneq ($(shell $(grep) -c '^\#define[[:space:]]\+CONFIG_MODULES[[:space:]]\+1' $(AUTOCONF_H)),1) + $(warning The kernel has not been configured for module support.) + $(warning Try configuring the kernel to allow external modules and \ + recompile.) + $(error ERROR: kernel CONFIG_MODULES not defined) +endif + +# Get kernel UTS_RELEASE info. +ifneq ($(wildcard $(UTSRELEASE_H)),) + ifneq ($(shell $(grep) -c '^\#define[[:space:]]\+UTS_RELEASE' \ + $(UTSRELEASE_H)),0) + utsrelease := $(UTSRELEASE_H) + endif +else + ifneq ($(wildcard $(KOBJ)/include/linux/version.h),) + ifneq ($(shell $(grep) -c '^\#define[[:space:]]\+UTS_RELEASE' \ + $(KOBJ)/include/linux/version.h),0) + utsrelease := $(KOBJ)/include/linux/version.h + endif + endif +endif +ifeq ($(utsrelease),) + $(error ERROR: cannot locate kernel UTS_RELEASE) +endif +# Getting the UTS_RELEASE on RHEL3 had problems due to the multiple defines +# within the file. I can run this file through the C pre-processor and get +# the actual UTS_RELEASE definition. This has only been tested on gcc, other +# compilers may not work. +utsrelease := $(strip $(shell $(CC) -E -dM -I $(KSRC)/include $(utsrelease) \ + 2>/dev/null| sed '/^\#define[[:space:]]*UTS_RELEASE/!d;\ + s/^\#define UTS_RELEASE[[:space:]]*"//;\ + s/"//g')) + +# The kernel local version string if defined in config. +klocalversion := $(shell sed '/^CONFIG_LOCALVERSION=/!d;\ + s/^CONFIG_LOCALVERSION="//;s/"//g'\ + 2>/dev/null < $(KOBJ)/.config) +# The complete kernel EXTRAVERSION string. +kextraversion := $(subst $(kbaseversion),,$(utsrelease)) +# The full kernel version should be the same as uts_release. +kernelversion := $(utsrelease) + +# The kernel EXTRAVERSION creates a unique problem, especially since +# kernel versioning extended into the EXTRAVERSION and distributions +# add strings such as smp, largesmp, xen, etc or when additional minor +# version numbers are appended. +# Some code that we supply is dependent on the kernel version and +# parts of the EXTRAVERSION, but not dependent on some of the additional +# flags. This requires that I have a list of kernel version strings that +# could map to the source version we require. For example, if the +# kernel version is 2.6.9-67.ELsmp, we only care about the "2.6.9-67" +# part, therefore, I need to split the EXTRAVERSION accordingly. +# Another problem is when a user builds their own kernel, say 2.6.21.4 +# and adds an additional string to EXTRAVERSION. The EXTRAVERSION is +# now ".4-custom" and I have to parse this with hopes of extracting +# only the ".4" part, resulting in the needed "2.6.21.4" version. +# Adding a BUGFIX version (int) field would be very helpfull! + +# EXTRAVERSION as defined only in the Makefile. +extraversion1 := $(strip $(shell sed '/^EXTRAVERSION/!d;\ + s/^EXTRAVERSION[[:space:]]*=//;s/"//g'\ + < $(KSRC)/Makefile 2>/dev/null)) +# SLES9 likes to put make code in their EXTRAVERSION define. Let the +# variables expand out to nothing, because the code will cause problems. +extraversion1 := $(shell echo $(extraversion1)) +# EXTRAVERSION without local version. +extraversion2 := $(strip $(subst $(klocalversion),,$(kextraversion))) +# EXTRAVERSION with only the kernel .version (hopefully). +extraversion3 := $(strip $(shell echo $(kextraversion) |\ + sed 's/\(^\.[0-9]*\).*/\1/')) +# EXTRAVERSION without the Redhat EL tag. +extraversion4 := $(strip $(shell echo $(kextraversion) |\ + sed 's/\.EL.*//i')) +# EXTRAVERSION with the Redhat EL tag, but nothing else after. +extraversion5 := $(strip $(shell echo $(kextraversion) |\ + sed 's/\(\.EL\).*/\1/i')) +# EXTRAVERSION with the Redhat EL tag, including a number (el5). +extraversion6 := $(strip $(shell echo $(kextraversion) |\ + sed 's/\(\.EL[[:digit:]]*\).*/\1/i')) +# EXTRAVERSION without the Redhat hotfix/update kernel version number. +extraversion7 := $(strip $(shell echo $(kextraversion) |\ + sed 's/\(.*\-[[:digit:]]*\)\..*\(\.EL\).*/\1\2/i')) +# EXTRAVERSION without the Redhat hotfix/update kernel version number with Redhat EL tag, including the number (el5). +extraversion8 := $(strip $(shell echo $(kextraversion) |\ + sed 's/\(.*\-[[:digit:]]*\)\..*\(\.EL[[:digit:]]\).*/\1\2/i')) +# EXTRAVERSION with only the RHEL distro version +extraversion9 := $(strip $(shell echo $(kextraversion) |\ + sed 's/\(.*\-[[:digit:]]*\)\..*\.EL[[:digit:]].*/\1/i')) + +# All known EXTRAVERSION strings, duplicates removed. +extraversions := $(strip $(sort $(kextraversion) \ + $(extraversion1) \ + $(extraversion2) \ + $(extraversion3) \ + $(extraversion4) \ + $(extraversion5) \ + $(extraversion6) \ + $(extraversion7) \ + $(extraversion8) \ + $(extraversion9))) + +# List of all possible kernel version names for target kernel. +all_kernels := $(sort $(kbaseversion) \ + $(foreach a,$(extraversions),$(kbaseversion)$(a))) + +# A reverse ordered list. This is used primarily to search source code +# directory names to match the target kernel version. +kversions := $(call reverse_sort, $(all_kernels)) + +# Special cases for 2.4 series kernels. +ifeq ($(kseries),2.4) + $(error ERROR: 2.4 kernel NOT supported.) +endif +# Note: Define only FLAGS here. These will convert to CFLAGS in the sub-make. +# If the environment variable FLAGS is defined with make, things will break, +# use CFLAGS instead. +# General compiler flags. +# Kernel version 3.3+ moved include/asm to include/generated, which breaks +# outbox kernel drivers. Fix to include the new generated without code change. +ifeq ($(kversion),3) + ifeq ($(shell [ $(kpatchlevel) -gt 2 ] && echo 1),1) + override CARCH := $(ARCH) + ifeq ($(CARCH),x86_64) + override CARCH := x86 + endif + FLAGS += -I$(KSRC)/arch/$(CARCH)/include/generated + endif +endif diff --git a/QDMA/linux-kernel/scripts/datafile_16bit_pattern.bin b/QDMA/linux-kernel/scripts/datafile_16bit_pattern.bin new file mode 100755 index 0000000000000000000000000000000000000000..1b50cdd57bcc0fb5c0e6ae027560cd03062b5434 GIT binary patch literal 262144 zcmZQzU}RuoU}j)pU}a!qU}xZ9;AG%p;AY@q;AP-r;AaqE5M&Ty5M~fz5M>Z!5ND8J zkYtczkY<o!kY$i#kY`X}P-IYIP-akJP-ReKP-oC!&}7hJ&}PtK&}GnL&}T4UFk~=d zFlI1eFl8`fFlVq}uw<}eux7Afuw}4guxD^!aAa^|aAt5}aAj~~aA)vf@MQ2}@MiE~ z@MZ90@Mj2M2xJIi2xbUj2xSOk2xo|3h-8Rjh-Qdkh-HXlh-XM(NMuN2NM=Z3NM%T4 zNN31k$YjW3$Y#i4$Ysc5$Y&^EC}b#NC}t>OC}k*PC}*f(sAQ;OsAi~PsAZ^QsAp(k zXk=(&Xl7_(Xk}<)XlLkP=w#?(=w|3)=w;|*=x3O~Fp*&r!(@gj3{x4VF-&Ke!7!6y z7Q<|YISg|d<}u7?SirE5VG+Y(h9wM38J00DXIR0ol3^9YYKAooYZ=xttY_H3u#sUC z!)Asp3|kqtF>Ghp!LXBI7sGCbJq&vp_A%^dIKXg_;Sj@Nh9e9|8ICa=XE?!dlHnA? zX@)ZlXBo~hoM*VeaFO8>!)1mm3|AShF<fW3!Elq|7Q=0ZI}CRj?lIhFc);+G;Ss}Q zh9?Y98J;mbXL!NzlHnD@Ylb%rZyDY(yl42p@R8vY!)Jys3||?(F??tE!SIve7sGFc zKMa2v{xSS#U|?iqWMX7yWMO1wWMgD!<Y44v<YMGz<YDAx<YVM#6krr&6k-%+6k!x) z6k`-;lwg!(lwy=-lwp)*lw*`<RA5wORAN+SRAE$QRAW?U)L_(P)MC_T)M3<R)MM0V zG+;DjG-5PnG+{JlG-EVpv|zMkv|_Yov|+Smv}3eqbYOI3bYgU7bYXO5bYpa9^kDR4 z^kVd8^kMX6^kejA3}6go3}Oss3}Fmq3}Xyuj9`ppjAD#tjA4vrjAM*vOkhl8OkzxC zOkqrAOk+%E%wWu9%wo)D%wf!B%wx=FEMP2TEMhEXEMY8VEMqKZtYEBUtYWNYtYNHW ztYfTaY+!6;Y+`I?Y+-C=Y-4O^>|pF<>|*R@>|yL>>|^X_oWMAdaT4QX#wm<b8K*H$ zXPm(}lW`W~Y{of^a~bC`&SzY}xR7xX<6_1oj7u4pF)n9Z!MKuf72|5gHH>Q+*D<bV z+`zbzaTDWa#x0Cn8MiTRXWYTKlW`a0ZpJ-~dl~mJ?q@u}c#!cB<6*`lj7J%dF&<|; z!FZDK6ys^eGmK{$&oQ27yuf&o@e<=@#w(0h8Lu&3XS~69lkpbgZN@u{cNy<7-e-Kk z_>l1t<737rj87S#F+OK}!T6H#72|8hH;iu?-!Z;t{J{8;@e|``#xIOt8NV@pXZ*qV zlkpehZ^l22e;NNV{%2%hVq{`sVrF7tVr61uVrSxD;$-4t;%4Gu;$`Av;%5?I5@Zr$ z5@r%%5@ix&5@(WNl4O!%l4g=&l4X)(l4nw2Qe;wMQf5+NQe{$OQfJa&(qz(N(q__O z(q+<P(q}SYGGsDhGG;PiGG#JjGH0@2vShMivSzYjvSqSkvS)H&a%6I1a%OU2a%FO3 za%b{j@?`R2@@Dd3@@4X4@@EQQ3S<gm3T6sn3S|mo3TKL7ie!pnie`#oie-vpif2k- zN@Pl6N@hx7N@Yr8N@vPo%4Eu7%4W)8%4N!9%4aHIDr72RDrPESDrG8TDrc%-s${BS zs%ENTs%5HUs%L6oYGi6+YG!I-YGrC;YG>+T>SXF->SpR;>SgL<>Svn3G?8f%(`2S8 zOjDVrF->Qh!8DU;7Sn8|IZShz<}uA@TEMiBX%W+6rX@^EnU*mvXIjCul4%vwYNj<z zYnj$Dt!LW6w2^5O(`KeEOk0_@F>Pns!L*ZU7t?O0JxqI<_A%{eI>2<0=@8RlrXx&8 znT|0XXF9=jlIaxFX{IwwXPM41ooBkhbdl*2(`BYBOjnt%F<oc6!E}@97SnB}J4|<( z?lIkGdcgFM=@HXorYB5KnVvB{XL`Z(lIa!GYo<3$Z<*dPy=VHs^pWWk(`TkHOkbJ4 zF@0zH!Ss{q7t?R1KTLm_{xSV$Vqj)uW@2V$W?^P!W@Bb&=3wSz=3?e%=3(Y#=40k( z7GM@+7Gf4=7GV};7GoA?mSC1-mSUD>mSL7<mSdJ@R$x|SR$^9WR$*3UR%2FY)?n6T z)?(IX)?wCV)??OZHefbnHexnrHeohpHe)ttwqUkowqmwswqdqqwqv$uc3^g7c4BsB zc42m9c4KyD_F(p8_G0#C_F?vA_G9*E4qy&s4q^^w4q*;u4r2~yj$n>tj$)2xj$w{v zj$@8zPGC-CPGU}GPGL@EPGe4I&S1`D&SK7H&SB1F&STDJE?_QXE@CcbE@3WZE@Lid zu3)ZYu41lcu3@fau4AreZeVU?Zeng`Zeea^Zewm|?qKd@?qcp{?qTj_?qlv}p1?ej zc@pzv<|)imnWr&NXP&`4lX({NZ00%4bD8Hc&u3o1ypVYj^J3;D%uAV<F)wFc!Mu`r z74vH5HOy<7*D<eW-oU((c@y(y<}J)ynYS@-XWqfQlX(~OZstAAdztq!?`J;1e31DN z^I_&A%tx7zF&}3>!F-bW6!U53Gt6h1&oQ58zQBBu`4aPG<}1usnXfTlXTHIFlld0& zZRR`7cbV@o-)DZn{E+z(^JC^G%uku0F+XR1!Tgf>74vK6H_UID-!Z>u{=oc^`4jVJ z<}b`&nZGfAXa2$blld3(Z{|PDf0_R=|7T`kVPs)qVP;`rVP#=sVQ1lB;bh@r;b!4s z;bq}t;b#$G5o8f!5oQr#5oHl$5oeKLkz|o#k!F!$k!6u%k!Mk0QDjkKQD#wLQDsqM zQD@O$(PYtL(Pq(M(PhzN(PuGWF=R1fF=jDgF=a7hF=w%0v1GAgv1YMhv1PGiv1f5$ zab$5~ab|I0ab<C1acA*h@nrF0@n-R1@n!L2@n;EO31kUk31$gl31tam31^95iDZdl ziDrpmiDijniDyY*Nn}Z4NoGl5No7f6NoUDm$z;i5$!5u6$z{o7$!95GDP$>PDP}2Q zDP<{RDQBr*sbr~Qsb;BRsb#5Ssb^_mX=G_)X=Z6*X=Q0+X=mwR>163*>1OF+>1F9- z>1Ub1GLdBx%Vd@*EK^ygu}o)~!7`I&7RzjwIV^Ko=CRCYS-`T8Wf99_mL)7pS(dRZ zXIa6rl4TXkYL+!DYgyK@tY_K4vXNyI%Vw4>EL&N&v217A!LpNO7t3yzJuG`!_Oa|| zIlyv|<q*qZmLn`jS&p$BXF0)glI0Z3X_hlAXIaj%oM*Yfa*^c{%Vm};ELT~sv0P`l z!E%%37RzmxJ1lou?y=lwdBF0J<q^wcmM1JvS)Q>xXL-T$lI0c4YnC@GZ&}{4yl45q z@{#2e%V(A^EMHl^v3zIw!Sa*k7t3#!KP-P){;~XLVPIusWnyJ!WnpDyWn*P$<zVGx z<znS#<zeMz<zwY%6<`%)6=D@;6=4-+6=M}=m0*=*m131<m0^`-m1C7>RbW+QRbo|U zRbf?SRby3W)nL_R)ne6V)nV0T)nnCXHDEPlHDWbpHDNVnHDfhrwP3YmwPLkqwPCeo zwPUqsbzpU5bz*g9bzya7bz^mB^<ed6^<wpA^<nj8^<(vC4PXsq4Pp&u4Pgys4Py;w zjbM#rjbe>vjbV*tjbn{xO<+xAO=3-EO<_%CO=C@G&0x)B&0@`F&0)=D&121HEnqEV zEn+QZEnzKXEn_WbtzfNWtzxZatzoTYtz)fcZD4I=ZDMU^ZDDO?ZDVa`?O^R>?PBd_ z?P2X@?PKj{oxnPgbrS1j)+wx0S*Nj1XPv=1lXVvBY}Prfb6MxH&Szb~x{!4d>tfa= ztV>y!u`Xv_!Mc)l73*r&HLPn{*Rif=-N3q$brb7m)-9}CS+}unXWhZNlXVyCZq_}l zds+9f?q@x~dXV)H>tWU-tVdaou^wkV!FrPQ6zgf$GpuJ>&#|6oy}){r^%Co4)+?-6 zS+B8PXT8CCll2zsZPq)icUkYT-e-Nl`jGVz>tog@tWQ~=u|8*g!TOT*73*u(H>_`2 z-?6@D{lNN>^%Lu7)-SAIS--J<XZ^wYll2$tZ`MDoe_8*r{%2)iV`O7uV`gJvV`XDw zV`t-F<7DGv<7VSw<7MMx<7X3K6J!%&6J`@(6J--)6K9iPlVp=(lV+1)lVy`*lV?+4 zQ)E+OQ)W|PQ)N?QQ)km)(`3_P(`M6Q(`D0R(`PeaGh{PjGiEbkGi5VlGiS44vt+Yk zvu3klvt_emvuAT)b7XU3b7pg4b7ga5b7%8l^JMd4^Jep5^JVj6^JfcS3uFso3uX&p z3uOyq3ulX9i)4#pi)M>qi)D*ri)Tw<OJqx8OJ+-9OJz%AOJ~bq%Vf)9%Vx`A%Vo=B z%V#TKD`YETD`qQUD`hKVD`%@<t7NNUt7fZVt7WTWt7mIqYh-I;Yi4U<Yh`O=YiH|V z>tyR<>t^d=>t*X>>t~z5Hj!--+hn#WY*X2$u}x>2!8Vg^7TavLIc#&;=CRFZTfnxE zZ4ujIwk2#!*_N>_XIsIxl5G{+YPL0OYuVPZt!LZ7wvlZU+h(>cY+Kp3v2ADD!M2la z7u#;OJ#2f~_Ob0}JHU33?GW2xwj*pu*^aRtXFI`mlI;}RX|^+LXW7oNooBnic9HE8 z+hw*ZY**Q?v0Z1o!FH4F7TayMJ8XB^?y=oxd%*UP?Gf8!wkK>)*`BdIXM4f+lI<1S zYqmFRZ`t0ly=VKt_L1!q+h?{fY+u>Fv3+Oz!S<8w7u#>PKWu;5{;~aMV_;`wXJTh& zXJKb$XJcn)=V0e#=VIq(=V9k%=VRw*7ho4;7h)G?7hxA=7h@M^mtdD<mtvP@mtmJ> zmt&V_S729US7KLYS7BFWS7TRa*I?IV*J9UZ*J0OX*JIabH()npH)1ztH(@trH)A(v zw_vwqw_>+uw_&$sw_~?wcVKs9cVc&DcVTyBcVl;F_h9#A_hR>E_hI*C_ha{G4`2^u z4`L5y4`B~w4`UB!k6@2vk7AEzk718xk7JK#Phd}EPhwAIPhn4GPh(GK&tT7F&tlJJ z&tcDH&tuPLFJLcZFJdodFJUibFJmufuVAlauVSxeuVJrcuVb%gZ(wg^Z(?s|Z((m` zZ)0y~?_lp_?_%#}?_uv{?_=+0pTItmeG>a*_9^UB*{88jXP?17lYJKZZ1y?qbJ^#y z&u3r2zL0$p`(pMb>`U2~u`g#|!M>7x75i%THSBBI*Rii>-@v|+eG~g;_ATsN*|)K8 zXWzlTlYJNaZuULwd)fD~?`J>2evthT`(gGY>_^#;u^(qY!G4nc6#HrRGwf&C&#|9p zzrcQx{Sy0S_ABgH*{`u*XTQOIll>O^ZT36tciHc;-)Dco{*e6<`(ySe>`&RBu|H>j z!Tyr{75i)UH|%fO-?6`E|G@r{{S*6V_Al&T*}t)WXaB+ell>R_Z}vazf7$=B|7U05 zVB}!pVCG=qVC7)rVCUfA;N;-q;O5}r;N{@s;O7wF5abZz5atl!5akf#5a*EKkmQi! zkmiu#kmZo$kmpd~P~=eJQ07qKP~}kLQ0LI#(B#nK(B{zL(B;tM(C0AVFyt`eFy=7f zFy%1gFz2w~u;j4fu;#Ggu;sAhu;*~#aO7~}aOQB~aOH60aOd#g@Z|8~@aFL0@a6F1 z@aG8N2;>Oj2<8ak2;~Ul2<M34h~$Xkh~|jlh~<dmi04S)NaRT3Najf4NaaZ5Nax7l z$mGc4$mYo5$mPi6$mb~FDC8*ODCQ{PDCH>QDCel)sN|^PsOG5QsO6~RsOM<lXyj<( zXy$0)Xys_*Xy@qQ=;Y|)=;r9*=;i3+=;xTgF_B{u$7GHv98)=_aZKl!!7-C#7RPLk zIUI92=5fsDSirH6V-d$<jwKvRIhJuO=UBn9l4BLeYK}D=YdO|&tmoLkv5{jF$7YT# z99ucIact+<!LgHL7sqanJsf*E_HpdzIKXj`;}FMTjw2jLIgW80=QzP}lH(M|X^t}- zXF1MsoaeZ}agpN^$7PNy99KE6aa`xP!Eux07RPOlI~;d8?s44bc);<H;}OSWjwc*X zIi7Jm=Xk;KlH(P}YmPS@Z#mv^yyy79@sZ;b$7hZ&9A7!UaeU|a!SR#h7sqdoKOBEK z{&D>0VBlorWa4DzWZ`7xWaDJ#<lyAw<l^M!<l*Gy<m2S$6yOx(6yg--6yX%*6yp@< zl;D))l;V`;l;M=+l;f1=RNz$PRN_?TRN++RRO3|V)Zo<Q)Z*0U)Zx_S)Z^6WG~hJk zG~zVoG~qPmG~+bqwBWSlwBoepwBfYnwBxkrbl`O4bmDa8bm4U6bmMgA^x*X5^y2j9 z^x^d7^yBpB4B!mp4B`yt4B-sr4C4&vjNpvqjN**ujNy#sjN^>wOyEr9OyW%DOyNxB zOyf-F%;3!A%;L=E%;C)C%;U`GEZ{8UEaEKYEa5EWEaNQatl+HVtm3TZtl_NXtmCZb zY~XC<Y~pO@Y~gI>Y~yU_?BML=?BeX^?BVR??Bnd`oWMDea}wud&MBNzIj3<>=bXVg zlXDj5Y|c5Hb2;a6&gWdfxsY=a=VHz!oJ%>EaW3av!MT!i73XTsHJocX*Kw}r+`ze! za}(!g&Mll<Ik$0c=iI@$lXDm6Zq7ZNdpY-U?&mzfd64rE=V8txoJTp2aUSP9!FiJN z6z6HqGn{8R&vBmTyuf*p^AhJ}&MTZ(Ij?bE=e)srlk*nmZO%KKcRBBI-sgP4`H=Gw z=VQ(%oKHEQaX#mK!TFN&73XWtH=J)d-*LX@{J{B<^AqQ1&M%x_Ilpm!=lsF>lk*qn zZ_YoQe>wkg{^w-iV&r1tV&-DuV&!7vV&~%E;^gAu;^yMv;^pGw;^z|J666x%66O-& z66F%(66ccOlH`)&lID`(lI4=)lIK$3Qsh$NQsz?OQsq+PQs>g((&W<O(&p0P(&f_Q z(&sYZGUPJiGUhVjGUYPkGUu}3vgESjvgWekvgNYlvgdN(a^!O2a^`a3a^-U4a_92k z^5pX3^5*j4^5yd5^5+WR3gimn3g!yo3grsp3g?R8isXvoisp*pisg#qiswq;O5{r7 zO6E%8O65x9O6SVp%H+!8%I3=9%H_)A%I7NJDSD&{KTD&;EUD(9-;s^qHTs^+TU zs^zNVs^@CpYUFC-YUXO;YUOI<YUk?U>g4L;>gMX<>gDR=>gSrkHIZu)*JQ3KTvNHG zaZTr%!8Ma>7T0X9Ib3tO=5fvETEMlCYZ2FCt|eScxt4J)=UTzFl4}*$YOXb0Yq{2O zt>@anwUKKR*JiFQTwA%eac$??!L^fX7uRmCJzRUa_Hpg!I>2?1>k!vrt|MGWxsGui z=Q_c4lIs-LX|6L|XSvRCo#(p1b&=~5*JZ9NTvxfSab4%S!F7}C7T0aAJ6w0U?s47c zdcgIN>k-#ut|weixt?)7=X$~QlIs=MYpyq3Z@J!az32MC^^xln*JrLTTwl4qaee3d z!S$2t7uRpDKU{yg{&D^1V&G=vX5wb%X5nV#X5(h(=HTY!=Hlk&=Hce$=Huq)7T^}- z7UCA>7U34<7ULG@mf)7;mg1J?mf@D=mgAP^R^V3TR^nFXR^e9VR^wLZ*5KCU*5cOY z*5TIW*5lUaHsChoHsUtsHsLnqHsdzuw&1qpw&J$tw&Awrw&S+vcHnm8cH(yCcHwsA zcH?&E_Tcv9_Tu*D_Tl#B_T%>F4&V;t4&n~x4&e^v4&x5zj^K{uj^d8yj^U2wj^mE! zPT)@DPU24HPT@}FPUBAJ&fw1E&f?DI&f(7G&g0JKF5oWYF5)icF5xcaF5@oeuHdfZ zuHvrduHmlbuH&xfZs2a@ZsKm{ZsBg_ZsTs}?%?j^?&9v|?&0p`?&I#~p1?hkdlL6# z?kU_;xu<bY=bphmlY18TZ0<SSbGhen&*xsiy^wnm_hRlP+)KHaaWCgy!M&1u758fH zHQZ~t*Kx1s-oU+)dlUC&?k(I~xwmm|=ib4+lY1BUZtgwYd%5><@8>?ieUSSQ_hIfM z+()^OaUbVC!F`hZ6!&TFGu&sn&vBpUzQBEv`x5tM?kn6^xvz0w=f1&xllvC;ZSFhV zce(Fz-{*e7{gC?+_harS+)ufmaX;sN!Tpl^758iIH{5Tz-*La^{=of_`xEzP?l0V5 zxxaCL=l;R{llvF<Z|*<bf4Tp0|L11lVdP=rVdi1sVdY`tVdvrC;pE}s;pXAt;pO4u z;pY+H5#$l#5#|x$5#<r%5$BQMk>ru$k>-)%k>!!&k>^q1QRGqLQRY$MQRPwNQRmU% z(d5zM(dN<N(dE(O(dRMXG2}7gG3GJhG37DiG3T-1vE;GhvF5SivE{MjvFCB%apZC0 zaprO1apiI2ap&>i@#OL1@#gX2@#XR3@#hKP3FHal3FZmm3FQgn3FnF6iR6jmiROvn ziRFpoiRVe+N#sf5N#;r6N##l7N$1Jn$>ho6$>z!7$>qu8$>%BHDdZ{QDds8RDdj2S zDd(x+spP5RsphHSspYBTspo0nY2<0*Y36C+Y2|6-Y3J$S>E!9+>E`L->E-F;>F1fi zGm&Q!&t#q{JX3k5@l5BL!84O*7SC*+IXrWD=JCwuS-`W9XA#e0o+Ug>d6w}k=UKtC zl4ljqYMwPbYkAi3tmoOlvyo>L&t{%2JX?9T@oeYW!LyTR7td~<Jv@7P_VMiJIlyy} z=Mc|fo+CU*d5-ZM=Q+W1lIIl9X`VAYXL-)?oaec~bCKr~&t;w~JXd+H@m%M*!E=-6 z7SC;-J3M!J?(y8`dBF3K=Mm3io+ms{d7kk+=Xt^NlIIoAYo0eeZ+YJFyyyAA^O5Hh z&u5-5JYRXf@qFj`!Sj>n7te2=KRkbV{_*_hVc=!tW#VP#W#MJzW#eV%<>2My<>KY$ z<>BS!<>Te&72p-*72*}<72y@-72_4>mEe`+mEx7=mEo1;mE)D?Rp3?RRpM3VRpC|T zRpV9X)!^0S)#BCW)#26U)#KIYHQ+VmHR3hqHQ_boHRCnswcxenwc@qrwc)kpwd1wt zb>Ma6b>emAb>Vg8b>nsC_2Bj7_2TvB_2Kp9_2c#D4d4yr4dM;v4dD&t4dV^xjo^*s zjpB{wjp2>ujpL2yP2f%BP2x@FP2o-DP2)}H&EU=C&En1G&Ed`E&Ew7IE#NKWE#fWa zE#WQYE#occt>CTXt>Ufbt>LZZt>dldZQyO>ZQ^a_ZQ*U@ZR2g{?cnX??c(j`?cwd^ z?c?p|oxnShcM|Vp-YL9Od8hGC=bgbjlXn*HY~DG%b9v|S&gWggyO4Jg?_%C1yi0kP z@h<0G!Ml=o74K@^HN0zi*YU3B-N3t%cN6bs-YvXadAIRy=iR}(lXn;IZr(k-dwKWq z?&m$gdyw}K?_u5}yhnMD@gC<r!F!VT6z^%?GrVVc&+(q;y})~s_Y&`A-YdLUd9U$a z=e@yullK<yZQeV)cX{ve-sgS5`;hk$?_=I4yia+b@jmB$!TXZ;74K`_H@t6o-|@cZ z{lNQ?_Y?1D-Y>jgdB5>~=l#L^llK?zZ{9z=e|i7${^w=jW8`DvW9DPwW94JxW9Q@G z<K*Mw<L2Yx<K^Sy<L49L6XX-(6Xp})6Xg@*6X%oQljM`)ljf7*ljW1+ljl?5Q{+?P zQ|43QQ{_|RQ|Hs*)8y0Q)8^CR)8*6S)8{kbGvqVkGv+hlGvzbmGv~A5v*felv*xqm zv*oknv*&Z*bL4a4bLMm5bLDg6bLaEm^W^j5^XBv6^X2p7^XCiT3*-yp3+4;q3*`&r z3+IdAi{y*qi{^{ri{*>si|0$=OXN%9OXf@AOXW-BOXthr%jC=A%jV1B%jL`C%jYZL zE95KUE9NWVE9EQWE9a}=tK_TVtLCfWtL3ZXtLJOrYvgO<Yvya=YvpU>Yv=3W>*VX= z>*nj>>*ed?>*t%mH<51=-(<cid{g<R@lEHO!8em{7T;{XIec^Z=JCzvTfn!FZxP>O zz9oE1`Ihl5=Uc(Il5Z8?YQ8mmYx&mkt>@dow~=oX-)6ood|Uap@oneZ!MBrd7vFBa zJ$!rl_VMlKJHU64?-1W%z9W1``Ht}&=R3i7lJ6AXX}&XjXZg<Yo#(s2caiTB-(|il zd{_Cd@m=S;!FQAI7T;~YJA8Nf?(yB{d%*XQ?-Ac)z9)Q7`JVAT=X=5TlJ6DYYrZ#p zZ~5Nwz32PD_mS@t-)Furd|&y#@qOp}!S|Ez7vFEbKYV}r{_*|iW8i1xXX0n(XW?h% zXX9t*=iuk$=i=w)=i%q&=i}$+7vLA<7vdM@7vUG>7vmS_m*AJ=m*SV^m*JP?m*bb` zSKwFVSK?RZSK(LXSL0Xb*WlOW*W%aa*WuUY*W=gcH{dtqH{v(uH{mzsH{&<wx8S$r zx8k?vx8b+tx8t|xci?yAcj9;Ecj0&CcjI^G_u%*B_u}{F_u=>D_v82H58w~v58@Bz z58)5x591H#kKm8wkK&K!kKvEykK>Q$PvB4FPvTGJPvKAHPvcML&*0DG&*IPK&*9JI z&*RVMFW@iaFXAueFX1ocFXJ!gui&rbui~%fui>xduj8-hZ{Tm_Z{ly}Z{cs{Z{u(0 z@8Iv`@8a*~@8R#|@8j?1pTIwne-i&>{we%Z`KR$u=bynplYbWfZ2md?bNT1-&*xvj zzmR_s|6=|n{7d<l@h|6J!M~D!75{4fHT-M&*YU6C-@w0-e-r;^{w@4l`M2?J=ikA< zlYbZgZvH*|d-?bA@8>_je~|wW|6%?k{73nZ@gL_u!GDtf6#r@dGyG@y&+(t<zrcTy z{}TUY{ww@f`LFR`=fA;!lm8a~ZT>s_clqz}-{*h8|B(L?|6~3q{7?Cx@jvH(!T*x~ z75{7gH~eq;-|@fa|G@u|{}cab{xAGr`M>dh=l{X~lm8e0Z~j00fBFCM|L12AU=&~y zU>0BzU=?5!U>D#J;1u8z;1=K!;1%E#;1>`O5EKv+5Ec*-5ET#;5EqaTkQ9&-kQR^; zkQI;<kQY!8P!v!SP!>=TP!&)UP#4e;&=k-T&=$}U&=t@V&=)WeFcdHnFcvToFcmNp zFc+{8uoSQouokcpuobWquorL;a1?M7a29Y8a20S9a2N0p@D%V8@D}h9@D=bA@D~UW z2owks2o?wt2o(qu2p5PDh!ltth!%(uh!uzvh!;o@NEApCNES#DNEJvENEgTu$P~yD z$QH;E$Q8&F$QLLOC=@6XC>AIYC>1CZC>N*@s1&FYs1~RZs1>Las26AuXcTA?XclM@ zXccG^Xcy=Z=oIJ@=oaV^=oRP_=ogqEFi~KVz+{0b0#gO12}~E5Auv;5mcVR*IRbM9 z<_XLfSRk-aV3ELLfh7V<1(pdc7g!;%Qec(9YJoKZYX#N`tQXiIuu))>z-ECh0$T;P z32YbGA+S?mm%wg;Jpy|L_6h74I3RFP;E=#!fg=J(1&#?E7dRnsQs9)pX@N5WX9dm) zoENwta8clrz-56e0#^mD30xPrA#hXRmcVU+I|6qF?g`u%cp≷E}*%fhPh_1)d2! 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	hQy`Xwg^^)pk)hnu3Rj;XDSG}QnQ}veWZPh!f zcUAAH-dBB~`cU<e>SNU>s!vs)sXkYIq54wwmFjENH>z({->JS={h<0$^^@vn)i0`F zRllizSN);-Q}vhXZ`D7le^vjf{#RvCV^m{OV^(8PV^w2QV^`x)<5c5P<5uHQ<5lBR z<5v?<6I2sY6IK&Z6IBya6IYW^lT?#ZlU9>alU0*blUGwvQ&dw@Q&v+^Q&m$_Q&-ba z(^S(^(^k__(^b<`(^oT4GgLEDGgdQEGgUKFGgq@vvsANEvsSZFvsJTGvsZIab5wIu zb5?Uvb5(Owb64|F^HlRv^H%dw^HuXx^H&Q{3sehI3swtJ3snnK3s;L!i&TqJi&l$K zi&cwLi&slfOH@lzOIAx!OI1r#OIOQK%T&u!%T~)#%T>!$%U3H<D^x2|D^@E}D^)8~ zD_5&ft5mB}t5&N~t5vI0t5<7KYgB7eYgTJfYgKDgYgg+~>s0Gf>sISg>s9Mh>sOng zHc@So+GMpUYE#vwsZCd#p*B-(mfCE!Icjs&=BdqBTcEa3ZIRkywIymx)t0F(S6iXB zQf-ymYPB_LYt`1NtykNiwoz@9+Ge#aYFpK|scl!=p|(?Pm)dT%J!*T^_NnbxJD_$@ z?U34GwIgar)sCqhS39A0Qtg!5X|*$IXVuQBomab{c2Vt;+GVvXYFE{+sa;pQp>|X4 zmfCH#J8E~;?y22Zd!Y7E?UCAJwI^y%)t;$6S9_uMQtg%6Yqd9OZ`IzZy;u97_EGJV z+Gn*dYG2j9seM=bq4rblm)dW&KWcx~{;B;}V^C*QXHsWYXHjQWXH#ca=TPTV=ThfZ z=TYZX=Tqlb7f=^e7g85i7f}~g7gHBkmr$2fmr|Ejmr<8hms6KlS5Q|}S5jA2S5a40 zS5sG4*HG6~*HYJ3*HPD1*HhP5H&8cJH&QoNH&HiLH&ZuPw@|lKw^FxOw^6rMw^O%Q zcTjg!cT#s&cTsm$cT;y)_fYp#_fq#(_fhv%_fz**4^R(O4^j_S4^a<Q4^t0Uk5G?P zk5Z3Tk5P|Rk5i9VPf$-(Pf|}-Pf<@*Pg74<&rr`)&r;7;&r#1+&r{D=FHkR3FH$d7 zFHtX5FH<j9uTZa4uTrm8uTig6uT!sAZ%}VkZ&GhoZ&7bmZ&Pnq?@;el?^5qp?@{kn z?^EwrpP)WbeUkcQ^(pF8)u*XXSD&FiQ+<~DZ1p+nbJgdm&sSfdzEFLU`eOAZ>Pyv^ zsV`Swp}tammHKM+HR@~C*Qu{p-=MxxeUtiT^)2dK)wii{SKpz&Q+=2EZuLFtd)4=; z?^i#deo+08`eF4W>POX&sUKHAp?*^Rl=^A)GwNs6	kRzo33m{gV1+^(*RE)vu{v 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�JDIiqSu^^BSswKM8w)X!*`(Kw@NM)Qo88Lczg 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%0AY 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%0DZ-II4u-93Hx%-yqh&)q$L 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 B9peB1 literal 0 HcmV?d00001 diff --git a/QDMA/linux-kernel/scripts/qdma_run_stress_test.sh b/QDMA/linux-kernel/scripts/qdma_run_stress_test.sh new file mode 100755 index 0000000..0f035e9 --- /dev/null +++ b/QDMA/linux-kernel/scripts/qdma_run_stress_test.sh @@ -0,0 +1,678 @@ +#!/bin/bash +# +# This script is designed for general as well as stress testing. VF distruction can be done by appropriately +# configuring pf_nvf_lst. +# +# AXI-MM Transfer +# First H2C operation is performed for 1KBytes, this will write 1Kbytes of data to BRAM on card side. +# Then C2H operation is performed for 1KBytes. DMA reads data from BRAM and will transfer +# to local file 'out_mm0_0', which will be compared to original file for correctness. +# +# AXI-ST H2C Transfer +# for H2C Streaming transfer data needs to be a per-defined data. 16 bit incremental data. +# Data file is provided with the script. +# H2C operation is performed, Data is read from Host memory and send to Card side. There is a data checker +# on the card side which will check the data for correctness and will log the result in a register. +# Script then read the register to check for results. +# +# +# AXI-ST C2H Transfer +# For C2H operation there is a data generator on the Card side which needs to be setup to generate data. +# Qid, transfer length and number of paket are written before C2H transfer. Then +# C2H transfer is started by writing to register. C2H operation is completed and the data is written to 'out_st0_0" +# file which then is compared to a per-defined data file. The data generator will only generate pre-defined +# data, so data comparison will need to be done with 'datafile_16bit_pattern.bin' file only. +# +# + + +function print_help() { + echo "" +echo "Usage : $0 <bdf> <num_qs> <total_time> <overide_pf_nvf_lst> <log_file_suffix>" + echo "Ex : $0 81000 256 00:01:00 0" + echo "<bdf> : PF Bus device function in bbddf format ex:06000" + echo "" + echo "<num_qs> : number of queue from qid_start" + echo " Default - 04 " + echo "" + echo "<total_time> : execution time in hh:mm:ss format" + echo " Default - 00:01:00 " + echo "" + echo "<overide_pf_nvf_lst> : override the default pf_nvf_lst by reading sriov_totalvfs" + echo " Default - 0 " + echo "" + #echo "<desc_byapss_en> : Enable desc bypass" + #echo " Default - 0 " + #echo "" + #echo "<pftch_en> : Enable prefetch" + #echo " Default - 0 " + #echo "" + #echo "<pftch_bypass_en> : Enable prefetch bypass" + #echo " Default - 0 " + #echo "" + echo "" + exit 1 +} + +if [ $# -lt 1 ]; then + echo "Invalid arguements." + print_help + exit; +fi; + +log_file_suffix=default +total_time="00:01:00" +pf=$1 +num_qs=2048 +desc_byp=0 +pftch=0 +pftch_byp=0 +declare -a pf_nvf_lst=(1 1 1 1) +overide_pf_nvf_lst=0 +max_q_func=512 +qmax_vfs=0 +total_funcs=4 +num_pfs=4 +declare -a bdf_array=() +declare -a mm_q_lst=() +declare -a st_q_lst=() +declare -a qbase_array=() +declare -a num_queue_per_pf=() +declare -a full_bdf_array=() + +if [ ! -z $2 ]; then + num_qs=$2 +fi +if [ ! -z $3 ]; then + total_time=$3 +fi +if [ ! -z $4 ]; then + overide_pf_nvf_lst=$4 +fi +if [ ! -z $5 ]; then + log_file_suffix=$5 +fi +if [ ! -z $6 ]; then #if arg4 is there byp enable + desc_byp=$6 +fi + +if [ ! -z $7 ]; then #if arg5 is there pfetch enable + pftch=$7 +fi + +if [ ! -z $8 ]; then #if arg6 is there pfetch byp enable + pftch_byp=$8 +fi +thrs=$((${total_time:0:2})) +tmins=$((${total_time:3:2})) +tsecs=$((${total_time:6:2})) +total_exec_time=$(( (60*60*thrs) + (60*tmins) + tsecs )) + +infile='./datafile_16bit_pattern.bin' +stress_test_exit=0 + +function get_dev() { + bdf_array=() + qbase_array=() + num_queue_per_pf=() + full_bdf_array=() + local dev_list="$(dmactl dev list | grep qdma)" + while read -r line; do + IFS=$'\t ,~' read -r -a array <<< "$line" + qdmadev=${array[0]} + if [ "${qdmadev:0:6}" == "qdmavf" ]; then + qdmavfbdf=${qdmadev:6:5} + bdf_array+=("${qdmavfbdf}") + else + qdmabdf=${qdmadev:4:5} + bdf_array+=("${qdmabdf}") + fi + full_bdf_array+=("${array[1]}") + num_queue_per_pf+=("${array[4]}") + qbase_array+=("${array[5]}") + done <<< "$dev_list" +} + +function is_vf_bdf() { + local lbdf=$1 + local lpci_device=$((0x${lbdf:2:2})) + local lpci_func=$((0x${lbdf:4:1})) + if [ ${lpci_device} -gt 0 -o ${lpci_func} -gt 3 ]; then + echo 1 + else + echo 0 + fi +} + +function get_base_qid() { + num_devs=${#bdf_array[@]} + lq_base==-1 + for ((i = 0; i < num_devs; i++)) + do + if [ ${bdf_array[i]} == $1 ]; then + lq_base=$((${qbase_array[${i}]})) + break + fi + done + echo ${lq_base} +} + +function queue_start() { + qdmadev="qdma" + is_vf=$(is_vf_bdf $1) + if [ $is_vf -eq 1 ]; then + qdmadev="qdmavf" + fi + echo -ne "setting up ${qdmadev}$1-$3-$2\033[0K\r" + dmactl ${qdmadev}$1 q add idx $2 mode $3 dir bi >> ./run_stress_test_${log_file_suffix}.log 2>&1 + if [ $? -lt 0 ]; then + echo "q add failed for ${qdmadev}$1-$3-$2" + return + fi + + if [ $desc_byp -eq 1 ] && [ $pftch -eq 0 ]; then + if [ $pftch_byp -eq 0 ]; then + dmactl ${qdmadev}$1 q start idx $2 dir bi desc_bypass_en >> ./run_stress_test_${log_file_suffix}.log 2>&1 + else + dmactl ${qdmadev}$1 q start idx $2 dir bi desc_bypass_en pfetch_bypass_en >> ./run_stress_test_${log_file_suffix}.log 2>&1 + fi + elif [ $desc_byp -eq 1 ] && [ $pftch -eq 1 ]; then + if [ $pftch_byp -eq 0 ]; then + dmactl ${qdmadev}$1 q start idx $2 dir bi desc_bypass_en pfetch_en >> ./run_stress_test_${log_file_suffix}.log 2>&1 + else + dmactl ${qdmadev}$1 q start idx $2 dir bi desc_bypass_en pfetch_en pfetch_bypass_en >> ./run_stress_test_${log_file_suffix}.log 2>&1 + fi + elif [ $desc_byp -eq 0 ] && [ $pftch -eq 1 ] ; then + if [ $pftch_byp -eq 0 ]; then + dmactl ${qdmadev}$1 q start idx $2 dir bi pfetch_en >> ./run_stress_test_${log_file_suffix}.log 2>&1 + else + dmactl ${qdmadev}$1 q start idx $2 dir bi pfetch_en pfetch_bypass_en >> ./run_stress_test_${log_file_suffix}.log 2>&1 + fi + else + if [ $pftch_byp -eq 0 ]; then + dmactl ${qdmadev}$1 q start idx $2 dir bi>> ./run_stress_test_${log_file_suffix}.log 2>&1 + else + dmactl ${qdmadev}$1 q start idx $2 dir bi pfetch_bypass_en >> ./run_stress_test_${log_file_suffix}.log 2>&1 + fi + fi + if [ $? -lt 0 ]; then + echo "q start failed for ${qdmadev}$1-$3-$2" + dmactl ${qdmadev}$1 q del idx $2 dir bi >> ./run_stress_test_${log_file_suffix}.log 2>&1 + return $? + fi + if [ $3 == mm ]; then + mm_q_lst+=("$1-$2") + else + st_q_lst+=("$1-$2") + fi + return 0 +} + +function cleanup_queue() { + qdmadev="qdma" + is_vf=$(is_vf_bdf $1) + if [ $is_vf -eq 1 ]; then + qdmadev="qdmavf" + fi + echo -ne "cleaning up ${qdmadev}$1-$2\033[0K\r" + dmactl ${qdmadev}$1 q stop idx $2 dir bi >> ./run_stress_test_${log_file_suffix}.log 2>&1 + dmactl ${qdmadev}$1 q del idx $2 dir bi >> ./run_stress_test_${log_file_suffix}.log 2>&1 + +} + + +# Find user bar +function get_user_bar() { + bdf=$1 + tmp=`dmactl qdma${bdf} reg read bar 0 0x10C | grep "0x10c" | cut -d '=' -f2 | cut -d 'x' -f2 | cut -d '.' -f1` + bar_ext=$(printf '%x\n' "$(( 0x$tmp & 0x00000f ))") + + if [ $bar_ext -eq 2 ]; then + usr_bar=1 + elif [ $bar_ext -eq 4 ];then + usr_bar=2 + fi +} + +function get_env() { + if [ ${overide_pf_nvf_lst} -ne 0 ]; then + pf_nvf_lst=() + for bdf in ${bdf_array[@]} + do + pci_bus=${bdf:0:2} + pci_device=${bdf:2:2} + pci_func=${bdf:4:1} + nvf=$(cat /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/sriov_totalvfs) + pf_nvf_lst+=("${nvf}") + done + fi + total_funcs=0 + for (( i = 0; i < ${num_pfs}; i++)) + do + num_vf=${pf_nvf_lst[$i]} + total_funcs=$((total_funcs+num_vf)) + done + if [ $total_funcs -gt $num_qs ]; then + echo "ERROR: num_qs less than total functions. Min queues required are $total_funcs" + exit 1 + fi + max_q_func=$((num_qs/total_funcs)) + for (( i = 0; i < ${num_pfs}; i++)) + do + num_vf=${pf_nvf_lst[$i]} + qmax_vfs=$((qmax_vfs+(max_q_func*num_vf))) + done + +} + +function start_vfs() { + for bdf in ${bdf_array[@]} + do + pci_bus=${bdf:0:2} + pci_device=${bdf:2:2} + pci_func=${bdf:4:1} + + #set qmaxvfs + if [ ${pci_func} == 0 ]; then + echo "echo ${qmax_vfs} > /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/qdma/qmax_vfs" + echo ${qmax_vfs} > /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/qdma/qmax_vfs + if [ $? -lt 0 ]; then + echo "set qmax_vfs failed for 0000\:${pci_bus}\:${pci_device}.${pci_func}" + fi + fi + num_vfs=${pf_nvf_lst[${pci_func}]} + echo "echo ${num_vfs} > /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/sriov_numvfs" + echo ${num_vfs} > /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/sriov_numvfs + if [ $? -ne 0 ]; then + echo "enabling vfs failed for 0000\:${pci_bus}\:${pci_device}.${pci_func}/virtfn${i}" + fi + done + sleep 1 # allow all probes to finish +} + +function set_pf_qmax() { + for bdf in ${bdf_array[@]} + do + pci_bus=${bdf:0:2} + pci_device=${bdf:2:2} + pci_func=${bdf:4:1} + num_vfs=${pf_nvf_lst[${pci_func}]} + if (( num_vfs > 0 )); then + echo -ne "echo ${max_q_func} > /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/qdma/qmax\033[0K\r" + echo ${max_q_func} > /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/qdma/qmax + if [ $? -lt 0 ]; then + echo "set_qmax failed for 0000\:${pci_bus}\:${pci_device}.${pci_func}" + fi + sleep .1 + fi + done + echo "" +} + +function set_vf_qmax() { + total_funcs=${#bdf_array[@]} + for bdf in ${bdf_array[@]} + do + pci_bus=${bdf:0:2} + pci_device=${bdf:2:2} + pci_func=${bdf:4:1} + num_vfs=${pf_nvf_lst[${pci_func}]} + for (( i = 0; i < num_vfs; i++ )) + do + echo -ne "echo ${max_q_func} > /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/virtfn${i}/qdma/qmax\033[0K\r" + echo ${max_q_func} > /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/virtfn${i}/qdma/qmax + if [ $? -lt 0 ]; then + echo "set_qmax failed for 0000\:${pci_bus}\:${pci_device}.${pci_func}/virtfn${i}" + fi + sleep .1 + done + done + echo "" +} + +function queue_init() { + mode=mm + for bdf in ${bdf_array[@]} + do + pci_bus=${bdf:0:2} + pci_device=${bdf:2:2} + pci_func=${bdf:4:1} + for (( qid = 0; qid < max_q_func; qid++ )) + do + if [ $mode == mm ]; then + mode=st + else + mode=mm + fi + queue_start $bdf $qid $mode + done + done + echo "" +} + +function queue_exit() { + echo "exit sequence..." + for bdf in ${bdf_array[@]} + do + pci_bus=${bdf:0:2} + pci_device=${bdf:2:2} + pci_func=${bdf:4:1} + for (( qid = 0; qid < max_q_func; qid++ )) + do + cleanup_queue $bdf $qid + done + done + echo "" + echo "Device Stats:" > ./run_stress_test_stat_${log_file_suffix}.log + for bdf in ${bdf_array[@]} + do + pci_bus=${bdf:0:2} + pci_device=${bdf:2:2} + pci_func=${bdf:4:1} + qdmadev="qdma" + is_vf=$(is_vf_bdf $bdf) + if [ $is_vf -ne 0 ]; then + qdmadev="qdmavf" + fi + echo "${qdmadev}${bdf} Stats:" >> ./run_stress_test_stat_${log_file_suffix}.log + dmactl ${qdmadev}${bdf} stat >> ./run_stress_test_stat_${log_file_suffix}.log + echo "---------------------------------------------------------" >> ./run_stress_test_stat_${log_file_suffix}.log + done + for bdf in ${bdf_array[@]} + do + pci_bus=${bdf:0:2} + pci_device=${bdf:2:2} + pci_func=${bdf:4:1} + is_vf=$(is_vf_bdf $bdf) + if [ $is_vf -eq 0 ]; then + echo "echo 0 > /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/sriov_numvfs" + echo 0 > /sys/bus/pci/devices/0000\:${pci_bus}\:${pci_device}.${pci_func}/sriov_numvfs + fi + done +} + +function setup_env() { + get_dev + num_pfs=${#bdf_array[@]} + get_env + start_vfs + set_pf_qmax + set_vf_qmax + get_dev + dmactl dev list + get_user_bar $pf +} + +function monitor_exec_time() { + flag=1 + MON_STARTTIME=$(date +%s) + monelapsed_time=0 + while [ true ]; do + if [ $flag -eq 1 ]; then + echo -ne "elapsed time: $monelapsed_time secs...\033[0K\r" + flag=0 + else + echo -ne "elapsed time: $monelapsed_time secs..|\033[0K\r" + flag=1 + fi + MON_CURTIME=$(date +%s) + monelapsed_time=$((MON_CURTIME - MON_STARTTIME)) + if [ $monelapsed_time -gt $total_exec_time ]; then + stress_test_exit=1 + return + else + sleep 1 + fi + done + echo "" + echo "$1-completed" +} + +function run_mm_h2c_c2h() { + MM_STARTTIME=$(date +%s) + while [ true ] + do + echo "***********************************************" 2>&1 >> ./run_mm_stress_test_${log_file_suffix}.log + local size=$(( ($RANDOM % 262144) +1 )) + total_qs=${#mm_q_lst[@]} + for ((i=0; i < total_qs; i++)); do + mm_q_lst_entry=${mm_q_lst[${i}]} + bdf=${mm_q_lst_entry:0:5} + strlen=$(echo -n $mm_q_lst_entry | wc -m) + end_idx=$((strlen-1)) + qid=${mm_q_lst_entry:6:${end_idx}} + qdmadev="qdma" + is_vf=$(is_vf_bdf $bdf) + if [ $is_vf -eq 1 ]; then + qdmadev="qdmavf" + fi + + echo "AXI-MM for Func ${bdf} Start" 2>&1 >> ./run_mm_stress_test_${log_file_suffix}.log + # Setup for Queues + dev_mm_c2h="/dev/${qdmadev}${bdf}-MM-$qid" + dev_mm_h2c="/dev/${qdmadev}${bdf}-MM-$qid" + + out_mm="/tmp/out_mm${bdf}_$qid" + if [ $desc_byp -eq 1 ]; then + dmactl ${qdmadev}${bdf} reg write bar $usr_bar 0x090 3 >> ./run_mm_stress_test_${log_file_suffix}.log 2>&1 + fi + # H2C transfer + dma_to_device -d $dev_mm_h2c -f $infile -s $size >> ./run_mm_stress_test_${log_file_suffix}.log 2>&1 + + # C2H transfer + dma_from_device -d $dev_mm_c2h -f $out_mm -s $size >> ./run_mm_stress_test_${log_file_suffix}.log 2>&1 + + # Compare file for correctness + cmp $out_mm $infile -n $size + if [ $? -eq 1 ]; then + echo "#### Test ERROR. Queue ${qdmadev}${bdf}-$qid data did not match - iosz - ${size} ####" >> ./run_mm_stress_test_${log_file_suffix}.log 2>&1 + #dmactl ${qdmadev}${bdf} q dump idx $qid >> ./run_stress_test_${log_file_suffix}.log 2>&1 + #dmactl ${qdmadev}${bdf} reg dump >> ./run_stress_test_${log_file_suffix}.log 2>&1 + else + echo "**** Test pass. Queue ${qdmadev}${bdf}-$qid" >> ./run_mm_stress_test_${log_file_suffix}.log 2>&1 + fi + echo "AXI-MM for Func ${bdf} End" 2>&1 >> ./run_mm_stress_test_${log_file_suffix}.log + MM_CURTIME=$(date +%s) + mmelapsed_time=$((MM_CURTIME - MM_STARTTIME)) + if [ $mmelapsed_time -gt $total_exec_time ]; then + echo "exiting run_mm_h2c_c2h()" + return + fi + done + echo "***********************************************" 2>&1 >> ./run_mm_stress_test_${log_file_suffix}.log + done +} + + + +function run_st_h2c() { + # AXI-ST H2C transfer + STH2C_STARTTIME=$(date +%s) + while [ true ] + do + echo "***********************************************" 2>&1 >> ./run_st_h2c_stress_test_${log_file_suffix}.log + local size=$(( ($RANDOM % 28672) +1 )) + total_qs=${#st_q_lst[@]} + for ((i=0; i < total_qs; i++)); do + st_q_lst_entry=${st_q_lst[${i}]} + bdf=${st_q_lst_entry:0:5} + strlen=$(echo -n $st_q_lst_entry | wc -m) + end_idx=$((strlen-1)) + qid=${st_q_lst_entry:6:${end_idx}} + qdmadev="qdma" + is_vf=$(is_vf_bdf $bdf) + if [ $is_vf -eq 1 ]; then + qdmadev="qdmavf" + fi + dev_st_h2c="/dev/${qdmadev}${bdf}-ST-$qid" + echo "AXI-ST H2C for Func ${bdf}-${qid} Start" 2>&1 >> ./run_st_h2c_stress_test_${log_file_suffix}.log + + # Clear H2C match from previous runs. this register is in card side. + # MAtch clear register is on offset 0x0C + dmactl ${qdmadev}${bdf} reg write bar $usr_bar 0x0C 0x1 >> ./run_st_h2c_stress_test_${log_file_suffix}.log 2>&1 # clear h2c Match register. + + if [ $desc_byp -eq 1 ]; then + dmactl ${qdmadev}${bdf} reg write bar $usr_bar 0x090 3 >> ./run_st_h2c_stress_test_${log_file_suffix}.log 2>&1 + fi + + # do H2C Transfer + dma_to_device -d $dev_st_h2c -f $infile -s $size >> ./run_st_h2c_stress_test_${log_file_suffix}.log 2>&1 + + # check for H2C data match. MAtch register is in offset 0x10. + pass=`dmactl ${qdmadev}${bdf} reg read bar $usr_bar 0x10 | grep "0x10" | cut -d '=' -f2 | cut -d 'x' -f2 | cut -d '.' -f1` + # convert hex to bin + code=`echo $pass | tr 'a-z' 'A-Z'` + val=`echo "obase=2; ibase=16; $code" | bc` + check=1 + if [ $(($val & $check)) -eq 1 ];then + echo "*** Test passed for Queue $qid" >> ./run_st_h2c_stress_test_${log_file_suffix}.log 2>&1 + else + echo "#### ERROR Test failed for ${qdmadev}${bdf}-${qid}. pattern did not match - iosz - ${size} ####" >> ./run_st_h2c_stress_test_${log_file_suffix}.log 2>&1 + #dmactl ${qdmadev}${bdf} q dump idx $qid >> ./run_st_h2c_stress_test_${log_file_suffix}.log 2>&1 + #dmactl ${qdmadev}${bdf} reg dump >> ./run_st_h2c_stress_test_${log_file_suffix}.log 2>&1 + fi + echo "AXI-ST H2C for Func ${bdf}-${qid} End" 2>&1 >> ./run_st_h2c_stress_test_${log_file_suffix}.log + STH2C_CURTIME=$(date +%s) + sth2celapsed_time=$((STH2C_CURTIME - STH2C_STARTTIME)) + if [ $sth2celapsed_time -gt $total_exec_time ]; then + echo "exiting run_st_h2c()" + return + fi + done + echo "***********************************************" 2>&1 >> ./run_st_h2c_stress_test_${log_file_suffix}.log + done + +} + +function run_st_c2h() { + STC2H_STARTTIME=$(date +%s) + while [ true ] + do + echo "***********************************************" 2>&1 >> ./run_st_c2h_stress_test_${log_file_suffix}.log + local size=$(( ($RANDOM % 28672) +1 )) + local num_pkt=$(( ($RANDOM % 7) +1 )) + size=$((size+(size %2))) + total_qs=${#st_q_lst[@]} + for ((i = 0; i < total_qs; i++)); do + STC2H_CURTIME=$(date +%s) + stc2helapsed_time=$((STC2H_CURTIME - STC2H_STARTTIME)) + if [ $stc2helapsed_time -gt $total_exec_time ]; then + echo "exiting run_st_c2h()" + return + fi + st_q_lst_entry=${st_q_lst[${i}]} + bdf=${st_q_lst_entry:0:5} + strlen=$(echo -n $st_q_lst_entry | wc -m) + end_idx=$((strlen-1)) + qid=${st_q_lst_entry:6:${end_idx}} + qdmadev="qdma" + is_vf=$(is_vf_bdf $bdf) + if [ $is_vf -eq 1 ]; then + qdmadev="qdmavf" + fi + echo "AXI-ST C2H for Func ${bdf} Start" 2>&1 >> ./run_st_c2h_stress_test_${log_file_suffix}.log + q_base=`get_base_qid ${bdf}` + echo "q_base=${q_base}">> ./run_st_c2h_stress_test_${log_file_suffix}.log + if [ ${q_base} -lt 0 ]; then + echo "run_st_c2h: could not find q base for $bdf" + continue + fi + hw_qid=$((qid + q_base)) + dmactl ${qdmadev}${bdf} reg write bar $usr_bar 0x0 ${hw_qid} >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + + dev_st_c2h="/dev/${qdmadev}${bdf}-ST-$qid" + out_st="/tmp/out_st${bdf}_$qid" + let "tsize= $size*$num_pkt" # if more packets are requested. + + #cache bypass + if [ $desc_byp -eq 1 ] && [ $pftch_byp -eq 0 ] ; then + dmactl ${qdmadev}${bdf} reg write bar $usr_bar 0x090 2 >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + fi + + #simple bypass + if [ $desc_byp -eq 1 ] && [ $pftch_byp -eq 1 ] ; then + dmactl ${qdmadev}${bdf} reg write bar $usr_bar 0x090 4 >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + fi + + #no bypass + if [ $desc_byp -eq 0 ] && [ $pftch_byp -eq 0 ] ; then + dmactl ${qdmadev}${bdf} reg write bar $usr_bar 0x090 0 >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + fi + + # Write transfer size to offset 0x04 + dmactl ${qdmadev}${bdf} reg write bar $usr_bar 0x4 $size >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + + # Write number of packets to offset 0x20 + dmactl ${qdmadev}${bdf} reg write bar $usr_bar 0x20 $num_pkt >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + + # Write to offset 0x80 bit [1] to trigger C2H data generator. + dmactl ${qdmadev}${bdf} reg write bar $usr_bar 0x08 2 >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + + # do C2H transfe + dma_from_device -d $dev_st_c2h -f $out_st -s $tsize >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + + cmp $out_st $infile -n $tsize>> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + if [ $? -eq 1 ]; then + echo "#### Test ERROR. Queue ${qdmadev}${bdf}-$qid data did not match - iosz/numpkt - ${size}/${num_pkt} ####" >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + #dmactl ${qdmadev}${bdf} q dump idx $qid dir c2h >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + #dmactl ${qdmadev}${bdf} reg dump >> ./run_stress_test_${log_file_suffix}.log 2>&1 + else + echo "**** Test pass. Queue $qid" >> ./run_st_c2h_stress_test_${log_file_suffix}.log 2>&1 + fi + echo "AXI-ST C2H for Func ${bdf} End" 2>&1 >> ./run_st_c2h_stress_test_${log_file_suffix}.log + done + echo "***********************************************" 2>&1 >> ./run_st_c2h_stress_test_${log_file_suffix}.log + done +} + +trap queue_exit EXIT +echo "setting up environment" +setup_env +queue_init + +echo "transfer tests will run for $total_exec_time secs" +echo "starting transfers" + +echo "###############################################################" > "run_mm_stress_test_${log_file_suffix}.log" +echo "QDMA MM Stress Test on All Functions Starts" >> "run_mm_stress_test_${log_file_suffix}.log" +echo "###############################################################" >> "run_mm_stress_test_${log_file_suffix}.log" +run_mm_h2c_c2h & + +echo "###############################################################" > "run_st_h2c_stress_test_${log_file_suffix}.log" +echo "QDMA ST H2C Stress Test on All Functions Starts" >> "run_st_h2c_stress_test_${log_file_suffix}.log" +echo "###############################################################" >> "run_st_h2c_stress_test_${log_file_suffix}.log" +run_st_h2c & + +echo "###############################################################" > "run_st_c2h_stress_test_${log_file_suffix}.log" +echo "QDMA ST C2H Stress Test on All Functions Starts" >> "run_st_c2h_stress_test_${log_file_suffix}.log" +echo "###############################################################" >> "run_st_c2h_stress_test_${log_file_suffix}.log" +run_st_c2h & + +monitor_exec_time +wait + +function print_errs() { + while read -r line; do + echo $line + done <<< "$1" +} + +mm_errs=$(cat run_mm_stress_test_${log_file_suffix}.log | grep "Error\|ERROR\|FAIL\|Fail") +st_h2c_errs=$(cat run_st_h2c_stress_test_${log_file_suffix}.log | grep "Error\|ERROR\|FAIL\|Fail") +st_c2h_errs=$(cat run_st_c2h_stress_test_${log_file_suffix}.log | grep "Error\|ERROR\|FAIL\|Fail") +if [ "${mm_errs}" != "" ]; then + echo "MM Errors:" +fi +print_errs "${mm_errs}" +if [ "${st_h2c_errs}" != "" ]; then + echo "ST H2C Errors:" +fi +print_errs "${st_h2c_errs}" +if [ "${st_c2h_errs}" != "" ]; then + echo "ST C2H Errors:" +fi +print_errs "${st_c2h_errs}" + +echo "" + +exit 0 \ No newline at end of file diff --git a/QDMA/linux-kernel/scripts/qdma_run_test_mm_vf.sh b/QDMA/linux-kernel/scripts/qdma_run_test_mm_vf.sh new file mode 100755 index 0000000..a2bebe2 --- /dev/null +++ b/QDMA/linux-kernel/scripts/qdma_run_test_mm_vf.sh @@ -0,0 +1,142 @@ +#!/bin/bash +# +# Simple run script to test QDMA in VF AXI-MM mode. +# +# VF AXI-MM Transfer +# - H2C operation is performed to send data to BRAM on the FPGA. +# - C2H operation is performed to reads data from BRAM. +# - C2H data is stored in a local file 'out_mm0_$qid', which will be compared to original file for correctness. + +################################################ +# User Configurable Parameters +################################################ +iteration=$1 # [Optional] Iterations +size=$2 # [Optional] Size per payload packet + +################################################ +# Hard Coded Parameters +################################################ +q_per_vf=1 +vf=00080 +size_max=4096 +host_adr_high=0 +infile='./datafile_16bit_pattern.bin' + + +################################################ +# Input check +################################################ +if [ "$1" == "-h" ]; then + echo "Example: qdma_run_test_st_vf.sh [iteration] [size(in byte)]" + echo "Example: qdma_run_test_st_vf.sh This will run VF MM test in random mode" + exit +fi + +if [ -z $2 ] || [ $# -eq 0 ] ; then + echo "Run VF MM test in random mode" + sleep 3 +fi + +if [ -z $iteration ]; then + iteration=1 +fi + +if [ ! -z $size ]; then + f_size=1 +else + f_size=0 +fi + +################################################# +# Helper Functions +################################################ + +function randomize_tx_params() { + #random host address + if [ $host_adr_high -ne 0 ]; then + hst_adr1=$RANDOM + hst_adr1=$((hst_adr1 % host_adr_high)) + else + hst_adr1=0 + fi + + # byte size + size=$RANDOM + if [ $size -eq 0 ]; then + size=$(($RANDOM % 64 + 1)) ## for random number between 1 and 64 + else + size=$((size % $size_max)) + fi + + # Correct if size is odd + even=$((size%2)) + if [ $even -eq 1 ];then + size=$((size+1)) + fi +} + + +function queue_start() { + echo "---- Queue Start $2 ----" + dmactl qdma$1 q add idx $2 mode $3 dir bi + dmactl qdma$1 q start idx $2 dir bi +} + +function cleanup_queue() { + echo "---- Queue Clean up $2 ----" + dmactl qdma$1 q stop idx $2 dir bi + dmactl qdma$1 q del idx $2 dir bi +} + +vfs=`dmactl dev list | grep qdmavf | cut -d' ' -f1`; + +echo "**** AXI-MM Start ****" +for vfsdev in $vfs;do + vf="${vfsdev#*f}" + q_per_vf="$(dmactl dev list |grep qdmavf$vf | cut -d ' ' -f 3 | cut -d ',' -f 1 | xargs)" + + for ((i=0; i< $q_per_vf; i++)) do + # Setup for Queues + qid=$i + dev_mm_c2h="/dev/qdmavf$vf-MM-$qid" + dev_mm_h2c="/dev/qdmavf$vf-MM-$qid" + loop=1 + + out_mm="out_mm0_"$qid + # Open the Queue for AXI-MM streaming interface. + queue_start vf$vf $qid mm + + while [ "$loop" -le $iteration ] + do + # Determine if DMA is targeted @ random host address + if [ $f_size -eq 1 ]; then + hst_adr1=0 + else + randomize_tx_params + fi + + # H2C transfer + dma_to_device -d $dev_mm_h2c -f $infile -s $size -o $hst_adr1 + + # C2H transfer + dma_from_device -d $dev_mm_c2h -f $out_mm -s $size -o $hst_adr1 + + # Compare file for correctness + cmp $out_mm $infile -n $size + + if [ $? -eq 1 ]; then + echo "#### Test ERROR. Queue $qid data did not match ####" + exit 1 + else + echo "**** Test pass. Queue $qid" + fi + + wait + + ((loop++)) + done + # Close the Queues + cleanup_queue vf$vf $qid + done +done +echo "**** AXI-MM completed ****" diff --git a/QDMA/linux-kernel/scripts/qdma_run_test_pf.sh b/QDMA/linux-kernel/scripts/qdma_run_test_pf.sh new file mode 100755 index 0000000..8e1ca2b --- /dev/null +++ b/QDMA/linux-kernel/scripts/qdma_run_test_pf.sh @@ -0,0 +1,453 @@ +#!/bin/bash +# +# Simple run script to test QDMA in AXI-MM and AXI-St mode. +# +# AXI-MM Transfer +# First H2C operation is performed for 1KBytes, this will write 1Kbytes of data to BRAM on card side. +# Then C2H operation is performed for 1KBytes. DMA reads data from BRAM and will transfer +# to local file 'out_mm0_0', which will be compared to original file for correctness. +# +# AXI-ST H2C Transfer +# for H2C Streaming transfer data needs to be a per-defined data. 16 bit incremental data. +# Data file is provided with the script. +# H2C operation is performed, Data is read from Host memory and send to Card side. There is a data checker +# on the card side which will check the data for correctness and will log the result in a register. +# Script then read the register to check for results. +# +# +# AXI-ST C2H Transfer +# For C2H operation there is a data generator on the Card side which needs to be setup to generate data. +# Qid, transfer length and number of paket are written before C2H transfer. Then +# C2H transfer is started by writing to register. C2H operation is completed and the data is written to 'out_st0_0" +# file which then is compared to a per-defined data file. The data generator will only generate pre-defined +# data, so data comparison will need to be done with 'datafile_16bit_pattern.bin' file only. +# +# + + +function print_help() { + echo "" + echo "Usage : $0 <bdf> <qid_start> <num_qs> <desc_bypass_en> <pftch_en> <pfetch_bypass_en>" + echo "Ex : $0 81000 0 4 1 1 1" + echo "<bdf> : PF Bus device function in bbddf format ex:06000" + echo "" + echo "<qid_start> : qid start" + echo "" + echo "<num_qs> : number of queue from qid_start" + echo " Default - 04 " + echo "" + echo "<desc_byapss_en> : Enable desc bypass" + echo " Default - 0 " + echo "" + echo "<pftch_en> : Enable prefetch" + echo " Default - 0 " + echo "" + echo "<pftch_bypass_en> : Enable prefetch bypass" + echo " Default - 0 " + echo "" + echo "" + exit 1 +} + +if [ $# -lt 2 ]; then + echo "Invalid arguements." + print_help + exit; +fi; + +pf=$1 +qid_start=$2 +num_qs=4 +desc_byp=0 +pftch=0 +pftch_byp=0 + +if [ ! -z $3 ]; then + num_qs=$3 +fi + +if [ ! -z $4 ]; then #if arg4 is there byp enable + desc_byp=$4 +fi + +if [ ! -z $5 ]; then #if arg5 is there pfetch enable + pftch=$5 +fi + +if [ ! -z $6 ]; then #if arg6 is there pfetch byp enable + pftch_byp=$6 +fi + +echo "$pf $qid_start $num_qs $desc_byp $pftch $pftch_byp" +size=1024 +num_pkt=1 #number of packets not more then 64 +infile='./datafile_16bit_pattern.bin' +declare -a bypass_mode_lst=(NO_BYPASS_MODE DESC_BYPASS_MODE CACHE_BYPASS_MODE SIMPLE_BYPASS_MODE) + + +function get_dev () { + pf_list="$(dmactl dev list | grep qdma)" + echo "$pf_list" + while read -r line; do + IFS=$'\t ,~' read -r -a array <<< "$line" + qdmabdf=${array[0]} + bdf_array+=("${qdmabdf#*a}") + full_bdf_array+=("${array[1]}") + num_queue_per_pf+=("${array[4]}") + qbase_array+=("${array[5]}") + done <<< "$pf_list" + +} + +function set_bypass_mode() { + dev=$1 + mode=$2 + dir=$3 + bypass=$4 + local reg_val=0x00; + + if [ $mode == mm ]; then + case $dir in + h2c) + if [ $bypass == DESC_BYPASS_MODE ]; then + echo "setting DESC_BYPASS_MODE for ${mode}-$dir" + reg_val=0x1; + else + reg_val=0x0; + fi + + ;; + c2h) + if [ $bypass == DESC_BYPASS_MODE ]; then + echo "setting DESC_BYPASS_MODE for ${mode}-$dir" + reg_val=0x2; + else + reg_val=0x0; + fi + + ;; + bi) + if [ $bypass == DESC_BYPASS_MODE ]; then + echo "setting DESC_BYPASS_MODE for ${mode}-$dir" + reg_val=0x3; + else + reg_val=0x0; + fi + ;; + esac + else + case $dir in + h2c) + case $bypass in + CACHE_BYPASS_MODE) + echo "setting CACHE_BYPASS_MODE for ${mode}-$dir" + reg_val=0x1; + ;; + SIMPLE_BYPASS_MODE) + echo "setting SIMPLE_BYPASS_MODE for ${mode}-$dir" + reg_val=0x1; + ;; + *) + echo "setting NO_BYPASS_MODE for ${mode}-$dir" + reg_val=0x00; + ;; + esac + ;; + c2h) + case $bypass in + CACHE_BYPASS_MODE) + echo "setting CACHE_BYPASS_MODE for ${mode}-$dir" + reg_val=0x2; + ;; + SIMPLE_BYPASS_MODE) + echo "setting SIMPLE_BYPASS_MODE for ${mode}-$dir" + reg_val=0x4; + ;; + *) + echo "setting NO_BYPASS_MODE for ${mode}-$dir" + reg_val=0x00; + ;; + esac + ;; + bi) + case $bypass in + CACHE_BYPASS_MODE) + echo "setting CACHE_BYPASS_MODE for ${mode}-$dir" + reg_val=0x3; + ;; + SIMPLE_BYPASS_MODE) + echo "setting SIMPLE_BYPASS_MODE for ${mode}-$dir" + reg_val=0x5; + ;; + *) + echo "setting NO_BYPASS_MODE for ${mode}-$dir" + reg_val=0x00; + ;; + esac + ;; + esac + fi + dmactl qdma$dev reg write bar 2 0x90 $reg_val +} + +function get_bypass_mode() { + byp_mode=0 + if [ $1 == mm ]; then + if [ $desc_byp -eq 1 ]; then + byp_mode=1 + fi + else + if [ $desc_byp -eq 1 ] && [ $pftch_byp -eq 0 ]; then + byp_mode=2 + elif [ $desc_byp -eq 1 ] && [ $pftch_byp -eq 1 ]; then + byp_mode=3 + fi + fi + echo $byp_mode +} + +function queue_start() { + echo "setting up qdma$1-$3-$2" + dmactl qdma$1 q add idx $2 mode $3 dir $4 >> ./run_pf.log 2>&1 + if [ $? -ne 0 ]; then + echo "q add failed for qdma$1-$3-$2" + return + fi + bypass_mode=$(get_bypass_mode $3 $4) + set_bypass_mode $1 $3 $4 ${bypass_mode_lst[${bypass_mode}]} + if [ $3 == mm -o $4 == h2c ]; then + if [ $desc_byp -eq 1 ]; then + dmactl qdma$1 q start idx $2 dir $4 desc_bypass_en >> ./run_pf.log 2>&1 + else + dmactl qdma$1 q start idx $2 dir $4 >> ./run_pf.log 2>&1 + fi + else + if [ $desc_byp -eq 1 ] && [ $pftch -eq 0 ]; then + if [ $pftch_byp -eq 0 ]; then + dmactl qdma$1 q start idx $2 dir $4 desc_bypass_en >> ./run_pf.log 2>&1 + else + dmactl qdma$1 q start idx $2 dir $4 desc_bypass_en pfetch_bypass_en >> ./run_pf.log 2>&1 + fi + elif [ $desc_byp -eq 1 ] && [ $pftch -eq 1 ]; then + if [ $pftch_byp -eq 0 ]; then + dmactl qdma$1 q start idx $2 dir $4 desc_bypass_en pfetch_en >> ./run_pf.log 2>&1 + else + dmactl qdma$1 q start idx $2 dir $4 desc_bypass_en pfetch_en pfetch_bypass_en >> ./run_pf.log 2>&1 + fi + elif [ $desc_byp -eq 0 ] && [ $pftch -eq 1 ] ; then # + if [ $pftch_byp -eq 0 ]; then + dmactl qdma$1 q start idx $2 dir $4 pfetch_en >> ./run_pf.log 2>&1 + else + echo "Invalid case of bypass mode" >> ./run_pf.log 2>&1 + dmactl qdma$1 q del idx $2 dir bi >> ./run_pf.log 2>&1 + return 1 + fi + else + if [ $pftch_byp -eq 0 ]; then + dmactl qdma$1 q start idx $2 dir $4>> ./run_pf.log 2>&1 + else + echo "Invalid case of bypass mode" >> ./run_pf.log 2>&1 + dmactl qdma$1 q del idx $2 dir bi >> ./run_pf.log 2>&1 + return 1 + fi + fi + fi + if [ $? -ne 0 ]; then + echo "q start failed for qdma$1-$3-$2-$4" + dmactl qdma$1 q del idx $2 dir bi >> ./run_pf.log 2>&1 + return $? + fi + + + return 0 +} + +function cleanup_queue() { + echo "cleaning up qdma$1-$3-$2" + dmactl qdma$1 q stop idx $2 dir $4 >> ./run_pf.log 2>&1 + dmactl qdma$1 q del idx $2 dir $4 >> ./run_pf.log 2>&1 + +} + + +# Find user bar +function get_user_bar () { + local pf_bdf=$1 + tmp=`dmactl qdma$pf_bdf reg read bar 0 0x10C | grep "0x10c" | cut -d '=' -f2 | cut -d 'x' -f2 | cut -d '.' -f1` + bar_ext=$(printf '%x\n' "$(( 0x$tmp & 0x00000f ))") + + if [ $bar_ext -eq 2 ]; then + usr_bar=1 + elif [ $bar_ext -eq 4 ];then + usr_bar=2 + fi +} + + +function run_mm_h2c_c2h () { + for pf_bdf in ${bdf_array[@]}; do + echo "***********************************************" 2>&1 | tee -a ./run_pf.log + echo "AXI-MM for Func $pf_bdf Start" 2>&1 | tee -a ./run_pf.log + get_user_bar $pf_bdf + for ((i=$qid_start; i < (($qid_start + $num_qs)); i++)); do + # Setup for Queues + qid=$i + dev_mm_c2h="/dev/qdma$pf_bdf-MM-$qid" + dev_mm_h2c="/dev/qdma$pf_bdf-MM-$qid" + + out_mm="/tmp/out_mm"$pf_bdf"_"$qid + # Open the Queue for AXI-MM streaming interface. + queue_start $pf_bdf $qid mm bi + if [ $? -ne 0 ]; then + echo "q setup for qdma$pf_bdf-MM-$qid failed" + continue + fi + echo "setup for qdma$pf_bdf-MM-$qid done" + # H2C transfer + dma_to_device -d $dev_mm_h2c -f $infile -s $size >> ./run_pf.log 2>&1 + + # C2H transfer + dma_from_device -d $dev_mm_c2h -f $out_mm -s $size >> ./run_pf.log 2>&1 + + # Compare file for correctness + cmp $out_mm $infile -n $size + if [ $? -eq 1 ]; then + echo "#### Test ERROR. Queue $qid data did not match ####" + dmactl qdma$pf_bdf q dump idx $qid >> ./run_pf.log 2>&1 + dmactl qdma$pf_bdf reg dump >> ./run_pf.log 2>&1 + else + echo "**** Test pass. Queue $qid" + fi + # Close the Queues + cleanup_queue $pf_bdf $qid st bi + echo "-----------------------------------------------" + done + echo "AXI-MM for Func $pf_bdf End" 2>&1 | tee -a ./run_pf.log + echo "***********************************************" 2>&1 | tee -a ./run_pf.log + done +} + + + +function run_st_h2c () { + + # AXI-ST H2C transfer + for pf_bdf in "${bdf_array[@]}"; do + echo "***********************************************" 2>&1 | tee -a ./run_pf.log + echo "AXI-ST H2C for Func $pf_bdf Start" 2>&1 | tee -a ./run_pf.log + get_user_bar $pf_bdf + for ((i=$qid_start; i < (($qid_start + $num_qs)); i++)); do + # Setup for Queues + qid=$i + queue_start $pf_bdf $qid st h2c # open the Queue for AXI-ST streaming interface. + + dev_st_h2c="/dev/qdma$pf_bdf-ST-$qid" + + # Clear H2C match from previous runs. this register is in card side. + # MAtch clear register is on offset 0x0C + dmactl qdma$pf_bdf reg write bar $usr_bar 0x0C 0x1 >> ./run_pf.log 2>&1 # clear h2c Match register. + + # do H2C Transfer + dma_to_device -d $dev_st_h2c -f $infile -s $size >> ./run_pf.log 2>&1 + + if [ $? -ne 0 ]; then + echo "#### ERROR Test failed. Transfer failed ####" + cleanup_queue $pf_bdf $qid st h2c + continue + fi + # check for H2C data match. MAtch register is in offset 0x10. + pass=`dmactl qdma$pf_bdf reg read bar $usr_bar 0x10 | grep "0x10" | cut -d '=' -f2 | cut -d 'x' -f2 | cut -d '.' -f1` + # convert hex to bin + code=`echo $pass | tr 'a-z' 'A-Z'` + val=`echo "obase=2; ibase=16; $code" | bc` + check=1 + if [ $(($val & $check)) -eq 1 ];then + echo "*** Test passed for Queue $qid" + else + echo "#### ERROR Test failed. pattern did not match ####" + dmactl qdma$pf_bdf q dump idx $qid >> ./run_pf.log 2>&1 + dmactl qdma$pf_bdf reg dump >> ./run_pf.log 2>&1 + fi + cleanup_queue $pf_bdf $qid st h2c + echo "-----------------------------------------------" + done + echo "AXI-ST H2C for Func $pf_bdf End" 2>&1 | tee -a ./run_pf.log + echo "***********************************************" 2>&1 | tee -a ./run_pf.log + done + +} + +function run_st_c2h () { + local pf=0 + + for pf_bdf in "${bdf_array[@]}"; do + + echo "***********************************************" 2>&1 | tee -a ./run_pf.log + echo "AXI-ST C2H for Func $pf_bdf Start" 2>&1 | tee -a ./run_pf.log + + get_user_bar $pf_bdf + + for ((i=$qid_start; i < (($qid_start + $num_qs)); i++)); do + # Setup for Queues + qid=$i + out_st="/tmp/out_st"$pf_bdf"_"$qid + + # Each PF is assigned with 32 Queues. PF0 has queue 0 to 31, PF1 has 32 to 63 + # Write QID in offset 0x00 + hw_qid=$(($qid + ${qbase_array[$pf]} )) + dmactl qdma$pf_bdf reg write bar $usr_bar 0x0 $hw_qid >> ./run_pf.log 2>&1 + + # open the Queue for AXI-ST streaming interface. + queue_start $pf_bdf $qid st c2h + + dev_st_c2h="/dev/qdma$pf_bdf-ST-$qid" + let "tsize= $size*$num_pkt" # if more packets are requested. + + # Write transfer size to offset 0x04 + dmactl qdma$pf_bdf reg write bar $usr_bar 0x4 $size >> ./run_pf.log 2>&1 + + # Write number of packets to offset 0x20 + dmactl qdma$pf_bdf reg write bar $usr_bar 0x20 $num_pkt >> ./run_pf.log 2>&1 + + # Write to offset 0x80 bit [1] to trigger C2H data generator. + dmactl qdma$pf_bdf reg write bar $usr_bar 0x08 2 >> ./run_pf.log 2>&1 + + # do C2H transfer + dma_from_device -d $dev_st_c2h -f $out_st -s $tsize >> ./run_pf.log 2>&1 + if [ $? -ne 0 ]; then + echo "#### ERROR Test failed. Transfer failed ####" + cleanup_queue $pf_bdf $qid st c2h + continue + fi + + cmp $out_st $infile -n $tsize + if [ $? -ne 0 ]; then + echo "#### Test ERROR. Queue $2 data did not match ####" + dmactl qdma$pf_bdf q dump idx $qid dir c2h >> ./run_pf.log 2>&1 + dmactl qdma$pf_bdf reg dump >> ./run_pf.log 2>&1 + else + echo "**** Test pass. Queue $qid" + fi + # Close the Queues + cleanup_queue $pf_bdf $qid st c2h + echo "-----------------------------------------------" + done + pf=$((pf+1)); + echo "AXI-ST C2H for Func $pf_bdf End" 2>&1 | tee -a ./run_pf.log + echo "***********************************************" 2>&1 | tee -a ./run_pf.log + done +} + + +echo "###############################################################" > "run_pf.log" +echo "QDMA Test on All PFs Starts" >> "run_pf.log" +echo "###############################################################" >> "run_pf.log" + +get_dev +run_mm_h2c_c2h +run_st_h2c +run_st_c2h + +exit 0 + + diff --git a/QDMA/linux-kernel/scripts/qdma_run_test_st_vf.sh b/QDMA/linux-kernel/scripts/qdma_run_test_st_vf.sh new file mode 100755 index 0000000..7acce11 --- /dev/null +++ b/QDMA/linux-kernel/scripts/qdma_run_test_st_vf.sh @@ -0,0 +1,209 @@ +#!/bin/bash +# Simple run script to test QDMA in VF AXI-ST mode. +# +# VF AXI-ST Transfer +# - H2C operation is performed to send data to BRAM on the FPGA. +# - C2H operation is performed to reads data from BRAM. +# - C2H data is stored in a local file 'out_st_$qid', which will be compared to original file for correctness. + + +################################################ +# User Configurable Parameters +################################################ + +iteration=$1 # [Optional] iterations of C2H tests +size=$2 # [Optional] Size per payload packet +num_pkt=$3 # [Optional] number of payload packet + +################################################ +# Hard Coded Parameters +################################################ +usr_bar=2 # For VF, DMA BAR is bar 0. User BAR is bar 2. +vf=00080 +size_max=4096 +host_adr_high=0 +infile='./datafile_16bit_pattern.bin' +logfile="loopback$1_$2.log" + +################################################ +# Input check +################################################ +if [ -z $iteration ]; then + iteration=1 +fi + +if [ ! -z $size ]; then + f_size=1 +else + f_size=0 +fi + +if [ -z $num_pkt ]; then + num_pkt=1 +fi + +################################################# +# Helper Functions +################################################ +function randomize_tx_params() { + #random host address + if [ $host_adr_high -ne 0 ]; then + hst_adr1=$RANDOM + hst_adr1=$((hst_adr1 % host_adr_high)) + else + hst_adr1=0 + fi + + # byte size + size=$RANDOM + if [ $size -eq 0 ]; then + size=$(($RANDOM % 64 + 1)) ## for random number between 1 and 64 + else + size=$((size % $size_max)) + fi + + # Correct if size is odd + even=$((size%2)) + if [ $even -eq 1 ];then + size=$((size+1)) + fi +} + +function queue_start() { + echo "---- Queue Start $2 ----" + dmactl qdma$1 q add idx $2 dir h2c mode $3 + dmactl qdma$1 q start idx $2 dir h2c + dmactl qdma$1 q add idx $2 dir c2h mode $3 + dmactl qdma$1 q start idx $2 dir c2h +} + +function cleanup_queue() { + echo "---- Queue Clean up $2 ----" + dmactl qdma$1 q stop idx $2 dir h2c + dmactl qdma$1 q del idx $2 dir h2c + dmactl qdma$1 q stop idx $2 dir c2h + dmactl qdma$1 q del idx $2 dir c2h +} + +# Get a list of available devices +vfs="$(dmactl dev list | grep qdmavf | cut -d ' ' -f1)" +echo "############################# AXI-ST Start #################################" + +for vfsdev in $vfs; do + + vf="${vfsdev#*f}" + q_per_vf="$(dmactl dev list |grep qdmavf$vf | cut -d ' ' -f 3 | cut -d ',' -f 1 | xargs)" + hw_qbase="$(dmactl dev list |grep qdmavf$vf|cut -d',' -f 2 | cut -d '~' -f 1|xargs)" + + for ((i=0; i<$q_per_vf; i++)) do + + # Setup for Queues + qid=$i + hw_qid=$((qid+hw_qbase)) + dev_st_c2h="/dev/qdmavf$vf-ST-$qid" + dev_st_h2c="/dev/qdmavf$vf-ST-$qid" + out="out_st_$qid" + loop=1 + + # Open the Queue for AXI-ST streaming interface. + queue_start vf$vf $qid st > /dev/null + + while [ "$loop" -le $iteration ] + do + # Determine if DMA is targeted @ random host address + if [ $f_size -eq 1 ]; then + hst_adr1=0 + else + randomize_tx_params + fi + + # if more packets are requested. + let "tsize= $size*$num_pkt" + + echo "" + echo "########################################################################################" + echo "############# H2C ST LOOP $loop : dev=$dev_st_h2c qid=$qid hw_qid=$hw_qid" + echo "############# transfer_size=$tsize pkt_size=$size pkt_count=$num_pkt hst_adr=$hst_adr1" + echo "########################################################################################" + + #clear match bit before each H2C ST transfer + dmactl qdmavf$vf reg write bar $usr_bar 0x0c 0x01 + + # H2C transfer + dma_to_device -d $dev_st_h2c -f $infile -s $tsize -o $hst_adr1 & + re=$? + + wait + + # Check match bit and QID + hwqid_match=$(dmactl qdmavf$vf reg read bar $usr_bar 0x10 | grep "0x10" | cut -d '=' -f2 | cut -d 'x' -f2 | cut -d '.' -f1) + code=`echo $hwqid_match | tr 'a-z' 'A-Z'` + val=`echo "obase=2; ibase=16; $code" | bc` + if [ $(($val & 0x1)) -ne 1 ];then + echo "### ERROR: QID MATCH is $hwqid_match "$hw_qid_hex"1" + re=-1 + fi + + if [ $re == 0 ]; then + echo "######################################################" + echo "############## VF H2C ST PASS QID $qid ################" + echo "######################################################" + else + echo "#### ERROR: VF H2C ST FAIL" + fi + + echo "" + echo "########################################################################################" + echo "############# C2H ST LOOP $loop : dev=$dev_st_c2h qid=$qid hw_qid=$hw_qid" + echo "############# transfer_size=$tsize pkt_size=$size pkt_count=$num_pkt hst_adr=$hst_adr1" + echo "########################################################################################" + + dmactl qdmavf$vf reg write bar $usr_bar 0x0 $hw_qid # for Queue 0 + dmactl qdmavf$vf reg write bar $usr_bar 0x4 $size + dmactl qdmavf$vf reg write bar $usr_bar 0x20 $num_pkt #number of packets + dmactl qdmavf$vf reg write bar $usr_bar 0x08 2 # Must set C2H start before starting transfer + + dma_from_device -d $dev_st_c2h -f $out -o $hst_adr1 -s $tsize & + + wait + + #Check if files is there. + if [ ! -f $out ]; then + echo " #### ERROR: Queue $qid output file does not exists ####" + echo " #### ERROR: Queue $qid output file does not exists ####" >> $logfile + cleanup_queue vf$vf $qid st + exit -1 + fi + + # check files size + filesize=$(stat -c%s "$out") + if [ $filesize -gt $tsize ]; then + echo "#### ERROR: Queue $qid output file size does not match, filesize= $filesize ####" + echo "#### ERROR: Queue $qid output file size does not match, filesize= $filesize ####" >> $logfile + cleanup_queue vf$vf $qid st + exit -1 + fi + + #compare file + cmp $out $infile -n $tsize + if [ $? -eq 1 ]; then + echo "#### Test ERROR. Queue $qid data did not match ####" + echo "#### Test ERROR. Queue $qid data did not match ####" >> $logfile + dmactl qdmavf$vf q dump idx $qid mode st dir c2h + dmactl qdmavf$vf reg dump + cleanup_queue vf$vf $qid st + exit -1 + else + echo "######################################################" + echo "############## VF C2H ST PASS QID $qid ################" + echo "######################################################" + fi + wait + ((loop++)) + done + cleanup_queue vf$vf $qid st > /dev/null + done +done +echo "########################## AXI-ST completed ###################################" +exit 0 + diff --git a/QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh b/QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh new file mode 100644 index 0000000..95d9274 --- /dev/null +++ b/QDMA/linux-kernel/scripts/qdma_vf_auto_tst.sh @@ -0,0 +1,82 @@ +#!/bin/bash +# +# Simple script to automate the VF regression testing using gtest framework +# +# This script will insert the module, configure the qmax_vfs, and instantiate +# vfs on each PF one at a time. After instantiating the VFs, it will trigger +# qdma_test regression test suite for VF only. +# +# Inputs: +# MODULE_TOP_DIR= Top directory for qdma linux module +# GTEST_TOP_DIR= Top directory for gtest regression test suite +# MASTER_PF_PCI_BDF= BDF For master PF. + +MODULE_DIR=$1 +GTEST_DIR=$2 +qdma_mod=$MODULE_DIR/build/qdma.ko +qdma_mod_vf=$MODULE_DIR/build/qdma_vf.ko +gtest_bin=$GTEST_DIR/build/src/qdma_test +#busdev="0000:05:00" +master_pf=0000:$3 +busdev=${master_pf%.*} +mod_param_arr=("mode=1" "mode=2" "mode=3") +vfs_cnt=(64 60 60 68) +qmax_vfs=1024 + +RED='\033[0;31m' +NC='\033[0m' + +prep_test_env () { + rmmod qdma + rmmod qdma_vf + sleep 2 + insmod $qdma_mod $1 + insmod $qdma_mod_vf + sleep 2 + if [ ! -f /sys/bus/pci/devices/$master_pf/qdma/qmax_vfs ];then + echo -e "${RED} Aborting, no /sys/bus/pci/devices/$master_pf/qdma/qmax_vfs found.${NC}" + exit -4 + fi + echo $qmax_vfs > /sys/bus/pci/devices/$master_pf/qdma/qmax_vfs + echo $3 > /sys/bus/pci/devices/$busdev.$2/sriov_numvfs + ret=$? + echo + echo "**********************************" + echo "******Doing QDMA VF Tests *******" + echo "**********************************" + echo + echo PF=$2, VF=$3, qmax_vfs=$qmax_vfs + echo module_param=$1 + echo + dmactl dev list + + return $ret +} + +if [ $# -lt 3 ];then + echo -e "${RED}Aborting. Invalid usgae. Try $0 <MODULE_TOP_DIR> <GTEST_TOP_DIR> <MASTER_PF_PCI_BDF>. ${NC}" + exit -1 +fi + +if [ ! -f $qdma_mod ] || [ ! -f $qdma_mod_vf ];then + echo -e "${RED}Aborting. Missing qdma drivers at $MODULE_DIR${NC}" + exit -2 +fi + +if [ ! -f $gtest_bin ];then + echo -e "${RED}Aborting. Missing qdma_test at $GTEST_DIR${NC}" + exit -3 +fi + +for fn in `seq 0 3`;do + for params in "${mod_param_arr[@]}";do + prep_test_env "$params" $fn ${vfs_cnt[$fn]} + ret=$? + if [ $ret -ne 0 ];then + echo -e "${RED}FAILED VF tests, Aborting${NC}" + exit -1 + fi + sleep 3 + $gtest_bin --gtest_filter="*VF*" + done +done diff --git a/QDMA/linux-kernel/scripts/stress_test_top.sh b/QDMA/linux-kernel/scripts/stress_test_top.sh new file mode 100755 index 0000000..150bbc5 --- /dev/null +++ b/QDMA/linux-kernel/scripts/stress_test_top.sh @@ -0,0 +1,75 @@ +#!/bin/bash + +if [ $# -lt 1 ]; then + echo "Invalid arguements." + echo "$0 <bbddf> [<test mask>] [<total execution time>]" + exit; +fi; + +bdf=01000 +if [ ! -z $1 ]; then + bdf=$1 +fi +test_mask=0x0f +if [ ! -z $2 ]; then + test_mask=$2 +fi +run_time="04:00:00" +if [ ! -z $3 ]; then + run_time=$3 +fi + +cd .. +make clean +make +make install-user + +insmod build/qdma.ko +echo ${bdf} +dmactl qdma${bdf} reg write bar 2 0xA0 0x01 +rmmod qdma +cd - + + +function cleanup_env() +{ + rmmod qdma_vf + rmmod qdma +} + +function run_stress_test() +{ + drv_mode=0 + if [ $1 == poll ]; then + drv_mode=1 + elif [ $1 == intr ]; then + drv_mode=2 + elif [ $1 == aggr ]; then + drv_mode=3 + else + drv_mode=0 + fi + cd .. + insmod build/qdma.ko mode=${drv_mode} + insmod build/qdma_vf.ko mode=${drv_mode} + cd - + chmod +x qdma_run_stress_test.sh + ./qdma_run_stress_test.sh $bdf 2048 $run_time 1 $1 + dmactl qdma$bdf reg write bar 2 0xA0 0x01 + cleanup_env +} + +trap cleanup_env EXIT + +if (( test_mask & 0x02 )); then + run_stress_test poll +fi +if (( test_mask & 0x04 )); then + run_stress_test intr +fi +if (( test_mask & 0x08 )); then + run_stress_test aggr +fi +if (( test_mask & 0x01 )); then + run_stress_test auto +fi diff --git a/QDMA/linux-kernel/tools/Makefile b/QDMA/linux-kernel/tools/Makefile new file mode 100644 index 0000000..157cd16 --- /dev/null +++ b/QDMA/linux-kernel/tools/Makefile @@ -0,0 +1,21 @@ +CC ?= gcc +all: dma_to_device dma_from_device dma_from_device_w_udd dmautils + +dma_to_device: dma_to_device.o + $(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE +dma_from_device: dma_from_device.o + $(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE +dma_from_device_w_udd: dma_from_device_w_udd.o + $(CC) -lrt -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE + +aioutility: aioutility.o posixaio_engine.o libaio_engine.o + $(CC) -g -pthread -lrt -laio -o $@ $^ -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE + +dmautils: dmautils.o + $(CC) -pthread -lrt -o $@ $< -laio -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE + +%.o: %.c + $(CC) -g -c -std=c99 -o $@ $< -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_LARGE_FILE_SOURCE -D_AIO_AIX_SOURCE + +clean: + rm -rf *.o *.bin dma_to_device dma_from_device dma_from_device_w_udd dmautils diff --git a/QDMA/linux-kernel/tools/aio_example.aio b/QDMA/linux-kernel/tools/aio_example.aio new file mode 100644 index 0000000..cbd4146 --- /dev/null +++ b/QDMA/linux-kernel/tools/aio_example.aio @@ -0,0 +1,178 @@ +; anything in [] is a Job. Global Job is for Global environment setup. +[global] +;setup user/dmactl qdma0 reg write bar 1 0x30 0x11110000 +;setup user/dmactl qdma0 reg write bar 1 0x34 0x33332222 +;setup user/dmactl qdma0 reg write bar 1 0x38 0x55554444 +;setup user/dmactl qdma0 reg write bar 1 0x3c 0x77776666 +;setup user/dmactl qdma0 reg write bar 1 0x40 0x99998888 +;setup user/dmactl qdma0 reg write bar 1 0x44 0xbbbbaaaa +;setup user/dmactl qdma0 reg write bar 1 0x48 0xddddcccc +;setup user/dmactl qdma0 reg write bar 1 0x4c 0xffffeeee + +; Global environment setup and cleanup commands +setup user/dmactl qdma0 q add idx 0 mode st dir c2h cmptsz 4 +setup user/dmactl qdma0 q start idx 0 dir c2h +clean user/dmactl qdma0 q stop idx 0 dir c2h +clean user/dmactl qdma0 q del idx 0 dir c2h + +[IO2] +;select io engine to use +ioengine=libaio +; IO environment setup and cleanup commands +setup user/dmactl qdma0 q add idx 0 mode st dir c2h cmptsz 3 +setup user/dmactl qdma0 q start idx 0 dir c2h +setup user/dmactl qdma0 reg write bar 1 0x0 0 +setup user/dmactl qdma0 reg write bar 1 0x50 0x00 +setup user/dmactl qdma0 reg write bar 1 0x4 4096 +setup user/dmactl qdma0 reg write bar 1 0x20 0x2 +setup user/dmactl qdma0 reg write bar 1 0x08 0x2 +clean user/dmactl qdma0 q stop idx 0 dir c2h +clean user/dmactl qdma0 q del idx 0 dir c2h +; file on which IO needs to be performed +filename=/dev/qdma0-ST-C2H-0 +; Tyep of IO opeartion +iotype=read +;Number of bytes for IO operations +numread=4096 +; Block size limit for each read +block=4096 +;Number of iterations to do for this IO +numio=2 +; verify using a reference file or pattern +verify=file +; file to use for verification +verify_file=datafile_16bit_pattern.bin + +[dma_from_dev_cmptsz_rsv] +ioengine=posixaio +setup user/dmactl qdma0 q add idx 0 mode st dir c2h cmptsz 3 +setup user/dmactl qdma0 q start idx 0 dir c2h +setup user/dmactl qdma0 reg write bar 1 0x0 0 +setup user/dmactl qdma0 reg write bar 1 0x4 4096 +setup user/dmactl qdma0 reg write bar 1 0x20 0x2 +setup user/dmactl qdma0 reg write bar 1 0x50 0x0 +setup user/dmactl qdma0 reg write bar 1 0x08 0x2 +clean user/dmactl qdma0 q stop idx 0 dir c2h +clean user/dmactl qdma0 q del idx 0 dir c2h +filename=/dev/qdma0-ST-C2H-0 +iotype=read +numread=4096 +block=4096 +numio=2 +verify=file +verify_file=datafile_16bit_pattern.bin + +[dma_from_dev_cmptsz_8] +ioengine=posixaio +setup user/dmactl qdma0 q add idx 0 mode st dir c2h cmptsz 0 +setup user/dmactl qdma0 q start idx 0 dir c2h +setup user/dmactl qdma0 reg write bar 1 0x0 0 +setup user/dmactl qdma0 reg write bar 1 0x4 4096 +setup user/dmactl qdma0 reg write bar 1 0x20 0x1 +setup user/dmactl qdma0 reg write bar 1 0x50 0x0 +setup user/dmactl qdma0 reg write bar 1 0x08 0x2 +clean user/dmactl qdma0 q stop idx 0 dir c2h +clean user/dmactl qdma0 q del idx 0 dir c2h +filename=/dev/qdma0-ST-C2H-0 +iotype=read +numread=4096 +block=4096 +numio=1 +verify=file +verify_file=datafile_16bit_pattern.bin + +[dma_from_dev_cmptsz_16] +ioengine=posixaio +setup user/dmactl qdma0 q add idx 0 mode st dir c2h cmptsz 1 +setup user/dmactl qdma0 q start idx 0 dir c2h +setup user/dmactl qdma0 reg write bar 1 0x0 0 +setup user/dmactl qdma0 reg write bar 1 0x4 4096 +setup user/dmactl qdma0 reg write bar 1 0x20 0x1 +setup user/dmactl qdma0 reg write bar 1 0x50 0x1 +setup user/dmactl qdma0 reg write bar 1 0x08 0x2 +clean user/dmactl qdma0 q stop idx 0 dir c2h +clean user/dmactl qdma0 q del idx 0 dir c2h +filename=/dev/qdma0-ST-C2H-0 +iotype=read +numread=4096 +block=4096 +numio=1 +verify=file +verify_file=datafile_16bit_pattern.bin + +[dma_from_dev_cmptsz_32] +ioengine=posixaio +setup user/dmactl qdma0 q add idx 0 mode st dir c2h cmptsz 2 +setup user/dmactl qdma0 q start idx 0 dir c2h +setup user/dmactl qdma0 reg write bar 1 0x0 0 +setup user/dmactl qdma0 reg write bar 1 0x4 4096 +setup user/dmactl qdma0 reg write bar 1 0x20 0x1 +setup user/dmactl qdma0 reg write bar 1 0x50 0x2 +setup user/dmactl qdma0 reg write bar 1 0x08 0x2 +clean user/dmactl qdma0 q stop idx 0 dir c2h +clean user/dmactl qdma0 q del idx 0 dir c2h +filename=/dev/qdma0-ST-C2H-0 +iotype=read +numread=4096 +block=4096 +numio=1 +verify=file +verify_file=datafile_16bit_pattern.bin + +[dma_from_dev_w_udd_cmptsz_8] +ioengine=posixaio +setup user/dmactl qdma0 q add idx 0 mode st dir c2h cmptsz 0 +setup user/dmactl qdma0 q start idx 0 dir c2h +setup user/dmactl qdma0 reg write bar 1 0x0 0 +setup user/dmactl qdma0 reg write bar 1 0x4 4096 +setup user/dmactl qdma0 reg write bar 1 0x20 0x1 +setup user/dmactl qdma0 reg write bar 1 0x50 0x0 +setup user/dmactl qdma0 reg write bar 1 0x08 0x6 +clean user/dmactl qdma0 q stop idx 0 dir c2h +clean user/dmactl qdma0 q del idx 0 dir c2h +filename=/dev/qdma0-ST-C2H-0 +iotype=read +numread=4096 +block=4096 +numio=1 +verify=file +verify_file=datafile_16bit_pattern.bin + +[dma_from_dev_w_udd_cmptsz_16] +ioengine=posixaio +setup user/dmactl qdma0 q add idx 0 mode st dir c2h cmptsz 1 +setup user/dmactl qdma0 q start idx 0 dir c2h +setup user/dmactl qdma0 reg write bar 1 0x0 0 +setup user/dmactl qdma0 reg write bar 1 0x4 4096 +setup user/dmactl qdma0 reg write bar 1 0x20 0x1 +setup user/dmactl qdma0 reg write bar 1 0x50 0x1 +setup user/dmactl qdma0 reg write bar 1 0x08 0x6 +clean user/dmactl qdma0 q stop idx 0 dir c2h +clean user/dmactl qdma0 q del idx 0 dir c2h +filename=/dev/qdma0-ST-C2H-0 +iotype=read +numread=4096 +block=4096 +numio=1 +verify=file +verify_file=datafile_16bit_pattern.bin + +[dma_from_dev_w_udd_cmptsz_32] +ioengine=posixaio +setup user/dmactl qdma0 q add idx 0 mode st dir c2h cmptsz 2 +setup user/dmactl qdma0 q start idx 0 dir c2h +setup user/dmactl qdma0 reg write bar 1 0x0 0 +setup user/dmactl qdma0 reg write bar 1 0x4 4096 +setup user/dmactl qdma0 reg write bar 1 0x20 0x1 +setup user/dmactl qdma0 reg write bar 1 0x50 0x2 +setup user/dmactl qdma0 reg write bar 1 0x08 0x6 +clean user/dmactl qdma0 q stop idx 0 dir c2h +clean user/dmactl qdma0 q del idx 0 dir c2h +filename=/dev/qdma0-ST-C2H-0 +iotype=read +numread=4096 +block=4096 +numio=1 +verify=file +verify_file=datafile_16bit_pattern.bin + diff --git a/QDMA/linux-kernel/tools/aioutility.c b/QDMA/linux-kernel/tools/aioutility.c new file mode 100644 index 0000000..cad2db9 --- /dev/null +++ b/QDMA/linux-kernel/tools/aioutility.c @@ -0,0 +1,950 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#define _XOPEN_SOURCE 500 +#include <getopt.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <ctype.h> +#include <signal.h> + +#include <sys/mman.h> +#include <sys/time.h> + +#include "aioutility.h" + + +#define DEFAULT_BLOCK_SIZE 4096 +#define SEC2NSEC 1000000000 +#define SEC2USEC 1000000 +#define DEFAULT_PAGE_SIZE 4096 + +//#define AIO_DEBUG +#define USE_LINUX_NATIVE_AIO 1 + +enum env_cmd_type { + ENV_CMD_GLOBAL_SETUP, + ENV_CMD_GLOBAL_CLEANUP, + ENV_CMD_IO_SETUP, + ENV_CMD_IO_CLEANUP, +}; + +sem_t prev_io; + +static struct env_cmds *glb_setup_cmd_head = NULL; +static struct env_cmds *glb_setup_cmd_tail = NULL; +static struct env_cmds *glb_clean_cmd_head = NULL; +static struct env_cmds *glb_clean_cmd_tail = NULL; +static struct io_jobs *io_job_head = NULL; +static struct io_jobs *io_job_tail = NULL; +struct aio_block *aio_block_head = NULL; +struct aio_block *aio_block_tail = NULL; +struct aio_job *aio_task_head = NULL; +static unsigned int num_io_jobs = 0; +#define ENV_GLOBAL_CMD_HEAD(cmd_type) (ENV_CMD_GLOBAL_SETUP == cmd_type)? &glb_setup_cmd_head:&glb_clean_cmd_head +#define ENV_GLOBAL_CMD_TAIL(cmd_type) (ENV_CMD_GLOBAL_SETUP == cmd_type)? &glb_setup_cmd_tail:&glb_clean_cmd_tail +#define ENV_IO_CMD_HEAD(cmd_type) (ENV_CMD_IO_SETUP == cmd_type)? &(iojob->setup_head):&(iojob->cleanup_head) +#define ENV_IO_CMD_TAIL(cmd_type) (ENV_CMD_IO_SETUP == cmd_type)? &(iojob->setup_tail):&(iojob->cleanup_tail) + +static struct option const long_opts[] = { + {"config", required_argument, NULL, 'c'}, + {0, 0, 0, 0} +}; + +static void usage(const char *name) +{ + int i = 0; + fprintf(stdout, "%s\n\n", name); + fprintf(stdout, "usage: %s [OPTIONS]\n\n", name); + + fprintf(stdout, " -%c (--%s) config file that has IO jobs to be executed\n", + long_opts[i].val, long_opts[i].name); + i++; +} + +static int timespec_check(struct timespec *t) +{ + if ((t->tv_nsec < 0) || (t->tv_nsec >= SEC2NSEC)) + return -1; + return 0; + +} + +void timespec_sub(struct timespec *t1, struct timespec *t2) +{ + if (timespec_check(t1) < 0) { + fprintf(stderr, "invalid time #1: %lld.%.9ld.\n", + (long long)t1->tv_sec, t1->tv_nsec); + return; + } + if (timespec_check(t2) < 0) { + fprintf(stderr, "invalid time #2: %lld.%.9ld.\n", + (long long)t2->tv_sec, t2->tv_nsec); + return; + } + t1->tv_sec -= t2->tv_sec; + t1->tv_nsec -= t2->tv_nsec; + if (t1->tv_nsec >= 1000000000) { + t1->tv_sec++; + t1->tv_nsec -= 1000000000; + } else if (t1->tv_nsec < 0) { + t1->tv_sec--; + t1->tv_nsec += 1000000000; + } +} + +static void enqueue_global_env_cmd(enum env_cmd_type cmd_type, + struct env_cmds *gcmd) +{ + struct env_cmds **gcmd_head = ENV_GLOBAL_CMD_HEAD(cmd_type); + struct env_cmds **gcmd_tail = ENV_GLOBAL_CMD_TAIL(cmd_type); + + gcmd->prev = NULL; + if (NULL == *gcmd_head) { + *gcmd_head = gcmd; + (*gcmd_head)->next = NULL; + *gcmd_tail = *gcmd_head; + } else { + gcmd->next = *gcmd_head; + (*gcmd_head)->prev = gcmd; + *gcmd_head = gcmd; + } +} + +static struct env_cmds * dequeue_global_env_cmd(enum env_cmd_type cmd_type) +{ + struct env_cmds **gcmd_head = ENV_GLOBAL_CMD_HEAD(cmd_type); + struct env_cmds **gcmd_tail = ENV_GLOBAL_CMD_TAIL(cmd_type); + struct env_cmds *gcmd = *gcmd_head; + + if (*gcmd_tail == *gcmd_head) { + *gcmd_tail = NULL; + *gcmd_head = NULL; + } else { + *gcmd_head = (*gcmd_head)->next; + (*gcmd_head)->prev = NULL; + } + + return gcmd; +} + +static void enqueue_io_env_cmd(enum env_cmd_type cmd_type, + struct io_jobs *iojob, + struct env_cmds *gcmd) +{ + struct env_cmds **gcmd_head = ENV_IO_CMD_HEAD(cmd_type); + struct env_cmds **gcmd_tail = ENV_IO_CMD_TAIL(cmd_type); + + gcmd->prev = NULL; + if (NULL == *gcmd_head) { + *gcmd_head = gcmd; + (*gcmd_head)->next = NULL; + *gcmd_tail = *gcmd_head; + } else { + gcmd->next = *gcmd_head; + (*gcmd_head)->prev = gcmd; + *gcmd_head = gcmd; + } +} + +static struct env_cmds * dequeue_io_env_cmd(enum env_cmd_type cmd_type, + struct io_jobs *iojob) +{ + struct env_cmds **gcmd_head = ENV_IO_CMD_HEAD(cmd_type); + struct env_cmds **gcmd_tail = ENV_IO_CMD_TAIL(cmd_type); + struct env_cmds *gcmd = *gcmd_head; + + if (*gcmd_tail == *gcmd_head) { + *gcmd_tail = NULL; + *gcmd_head = NULL; + } else { + *gcmd_head = (*gcmd_head)->next; + (*gcmd_head)->prev = NULL; + } + + return gcmd; +} + +void enqueue_io_job(struct io_jobs *iojob) +{ + iojob->prev = NULL; + if (NULL == io_job_head) { + io_job_head = iojob; + io_job_head->next = NULL; + io_job_tail = io_job_head; + } else { + iojob->next = io_job_head; + io_job_head->prev = iojob; + io_job_head = iojob; + } + num_io_jobs++; +} + +static struct io_jobs * dequeue_io_job(void) +{ + struct io_jobs *iojob = io_job_head; + + if (io_job_tail == io_job_head) { + io_job_tail = NULL; + io_job_head = NULL; + } else { + io_job_head = io_job_head->next; + io_job_head->prev = NULL; + } + + return iojob; +} + +void enqueue_aio_block(struct aio_job *aiojob, struct aio_block *aioblock) +{ + if (NULL == aiojob->aio_block_head) { + aiojob->aio_block_head = aioblock; + aiojob->aio_block_head->next = NULL; + aiojob->aio_block_tail = aiojob->aio_block_head; + } else { + aioblock->next = aiojob->aio_block_head; + aiojob->aio_block_head = aioblock; + } +} + +static struct aio_block * dequeue_aio_block(struct aio_job *aiojob) +{ + struct aio_block *aioblock = aiojob->aio_block_head; + + if (aiojob->aio_block_tail == aiojob->aio_block_head) { + aiojob->aio_block_head = NULL; + aiojob->aio_block_tail = NULL; + } else + aiojob->aio_block_head = aiojob->aio_block_head->next; + + return aioblock; +} + +void enqueue_aio_task(struct aio_job *aiotask) +{ + if (NULL == aio_task_head) { + aio_task_head = aiotask; + aio_task_head->next = NULL; + } else { + aiotask->next = aio_task_head; + aio_task_head = aiotask; + } +} + +struct aio_block * get_aio_block(void *_aioblock) +{ + struct aio_job *aiotask = aio_task_head; + struct aio_block *aioblock; + + while (aiotask) { + aioblock = aiotask->aio_block_head; + while (aioblock) { + if (aioblock->aio_entry == _aioblock) + break; + aioblock = aioblock->next; + } + aiotask = aiotask->next; + } + + return aioblock; +} + + +static char * strip_blanks(char *word, long unsigned int *banlks) +{ + char *p = word; + unsigned int i = 0; + + while (isblank(p[0])) { + p++; + i++; + } + *banlks = i; + + return p; +} + +static bool get_io_param_attrs(char *linebuf, size_t linelen, + unsigned int *lhspos, unsigned int *rhspos) +{ + long unsigned int numblanks = 0; + char *p = strip_blanks(linebuf, &numblanks); + size_t i = 0; + + while (i < (linelen - numblanks)) { + if ('=' != p[i]) + i++; + else + break; + } + if (i == (linelen - numblanks)) { + printf("Error: assignment operator missing in below line:\n %s\n", + linebuf); + return false; + } else { + *lhspos = numblanks; + p = strip_blanks(p + i + 1,&numblanks); + *rhspos = i + 1 + numblanks; + } + + return true; +} + +static void add_env_cmd(enum env_cmd_type cmd_type, + char *linebuf, size_t linelen, void *iojob) +{ + struct env_cmds *gcmd = malloc(sizeof(struct env_cmds)); + size_t numblanks; + char *sh_cmd = strip_blanks(linebuf, &numblanks); + unsigned int sh_cmd_len = linelen - numblanks; + + gcmd->cmd = malloc(sh_cmd_len); + memcpy(gcmd->cmd, sh_cmd, sh_cmd_len); + + + if ((ENV_CMD_GLOBAL_SETUP == cmd_type) || + (ENV_CMD_GLOBAL_CLEANUP == cmd_type)) + enqueue_global_env_cmd(cmd_type, gcmd); + else + enqueue_io_env_cmd(cmd_type, (struct io_jobs *)iojob, gcmd); +} + +static bool parse_global_cmd_info(FILE *fp, + unsigned int *linenum) +{ + char *linebuf = NULL; + char *realbuf; + size_t linelen = 0; + size_t numread; + size_t numblanks; + fpos_t prev_pos; + + fgetpos(fp, &prev_pos); + while ((numread = getline(&linebuf, &linelen, fp)) != -1) { + numread--; + *linenum = *linenum + 1; + realbuf = strip_blanks(linebuf, &numblanks); + numread -= numblanks; + if (0 == numread) + continue; + else if ((realbuf[0] == ';') || (realbuf[0] == '#')) + continue; + else if (realbuf[0] == '[') { /* new job - return */ + fsetpos(fp, &prev_pos); + break; + } else { + if (0 == strncmp(&realbuf[0], "setup", 5)) { /* enqueue env setup job */ + add_env_cmd(ENV_CMD_GLOBAL_SETUP, + &realbuf[5], + numread - 5, + NULL); + } else if (0 == strncmp(&realbuf[0], "clean", 5)) { /* enqueue env cleanup job */ + add_env_cmd(ENV_CMD_GLOBAL_CLEANUP, + &realbuf[5], + numread - 5, + NULL); + } else { + printf ("Error: unknown global command\n"); + return false; + } + } + fgetpos(fp, &prev_pos); + } + + return true; +} + +static bool parse_io_job_attrs(struct io_jobs *iojob, char *linebuf, size_t numread) +{ + unsigned int lhspos = 0, rhspos = 0; + char *lhs, *rhs; + + if (0 == strncmp(linebuf, "setup", 5)) { /* enqueue env setup job */ + add_env_cmd(ENV_CMD_IO_SETUP, + &linebuf[5], + numread - 5, + iojob); + } else if (0 == strncmp(linebuf, "clean", 5)) { /* enqueue env cleanup job */ + add_env_cmd(ENV_CMD_IO_CLEANUP, + &linebuf[5], + numread - 5, + iojob); + }else if (get_io_param_attrs(linebuf, numread, &lhspos, &rhspos)) { + lhs = linebuf + lhspos; + rhs = linebuf + rhspos; + if (0 == strncmp(lhs, "ioengine", 8)) { + if (0 == strncmp(rhs, "libaio", 6)) { + iojob->io_type = IO_ENGINE_LIBAIO; + iojob->commit_io = submit_naio_job; + iojob->cancel_io = cancel_naio_job; + } + else if (0 == strncmp(rhs, "posixaio", 8)) { + iojob->io_type = IO_ENGINE_POSIXAIO; + iojob->commit_io = submit_paio_job; + iojob->cancel_io = cancel_paio_job; + } + else { + printf ("Error: Invalid IO engine specified for %s job\n", + iojob->job_name); + return false; + } + } else if (0 == strncmp(lhs, "filename", 8)) { + iojob->node = malloc(numread - rhspos); + memcpy(iojob->node, rhs, numread - rhspos); + } else if (0 == strncmp(lhs, "iotype", 6)) { + iojob->iotype = malloc(numread - rhspos); + memcpy(iojob->iotype, rhs, numread - rhspos); + } else if ((0 == strncmp(lhs, "numwrite", 8)) || + (0 == strncmp(lhs, "numread", 7))) { + sscanf(rhs, "%u", &iojob->numbytes); + } else if (0 == strncmp(lhs, "infile", 6)) { + int fbuf; + size_t datsize = 0; + struct stat infile_stat; + ssize_t numrd = 0; + char *wrfilename = malloc(numread - rhspos); + + memcpy(wrfilename, rhs, numread - rhspos); + + fbuf = open(wrfilename, O_RDONLY); + + if (0 > fbuf) { + printf("Error: opening %s failed\n", wrfilename); + return false; + } else { + if (0 > fstat(fbuf, &infile_stat)) { + printf("Error: File stat did not work for %s\n", wrfilename); + return false; + } + datsize = infile_stat.st_size; + if (0 > lseek(fbuf, 0, SEEK_SET)) { + printf("Error: Setting file descriptor to beginning for %s failed\n", + wrfilename); + return false; + } + iojob->buf = malloc(datsize); + + while (datsize) { + numrd = read(fbuf, iojob->buf, datsize); + if (0 < numrd) { + datsize -= numrd; + } else + break; + } + close(fbuf); + } + free(wrfilename); + } else if (0 == strncmp(lhs, "block", 5)) { + sscanf(rhs, "%u", &iojob->block_size); + } else if (0 == strncmp(lhs, "numio", 5)) { + sscanf(rhs, "%u", &iojob->numitr); + } else if (0 == strncmp(lhs, "verify_file", 11)) { + if (iojob->verify_read != READ_VERIFY_FILE) { + printf("Error: verify method not matching with input for %s\n", + iojob->job_name); + return false; + } + iojob->verify_file_name = malloc(numread - rhspos); + memcpy(iojob->verify_file_name, rhs, numread - rhspos); + } else if (0 == strncmp(lhs, "verify_pattern", 14)) { + if (iojob->verify_read != READ_VERIFY_PATTERN) { + printf("Error: verify method not matching with input for %s\n", + iojob->job_name); + return false; + } + iojob->verify_pattern = malloc(numread - rhspos); + memcpy(iojob->verify_pattern, rhs, numread - rhspos); + } else if (0 == strncmp(lhs, "verify", 6)) { + if (0 == strncmp(rhs, "file", 4)) { + iojob->verify_read = READ_VERIFY_FILE; + } else if (0 == strncmp(rhs, "pattern", 7)) { + iojob->verify_read = READ_VERIFY_PATTERN; + } else { + printf("Error: unknown read verify type in %s\n", + linebuf); + return false; + } + } else { + printf("Error: Unknown IO option\n"); + } + } else + return false; + + return true; +} + +static bool parse_io_job_info(struct io_jobs *iojob, FILE *fp, + unsigned int *linenum) +{ + char *linebuf = NULL; + char *realbuf; + size_t linelen = 0; + size_t numread; + size_t numblanks; + fpos_t prev_pos; + + fgetpos(fp, &prev_pos); + while ((numread = getline(&linebuf, &linelen, fp)) != -1) { + numread--; + (*linenum)++; + realbuf = strip_blanks(linebuf, &numblanks); + numread -= numblanks; + if (0 == numread) + continue; + else if ((realbuf[0] == ';') || (realbuf[0] == '#')) + continue; + else if (realbuf[0] == '[') { /* new job - return */ + fsetpos(fp, &prev_pos); + break; + } else { + if (false == parse_io_job_attrs(iojob, linebuf, numread)) + return false; + } + fgetpos(fp, &prev_pos); + } + + return true; +} + +static void parse_config_file(const char *cfg_fname) +{ + char *linebuf = NULL; + char *realbuf; + FILE *fp; + size_t linelen = 0; + size_t numread; + size_t numblanks; + unsigned int linenum = 0; + + fp = fopen(cfg_fname, "r"); + if (fp == NULL) + exit(EXIT_FAILURE); + + while ((numread = getline(&linebuf, &linelen, fp)) != -1) { + numread--; + linenum++; + realbuf = strip_blanks(linebuf, &numblanks); + linelen -= numblanks; + if (0 == linelen) + continue; + else if ((';' == realbuf[0]) || ('#' == realbuf[0])) + continue; + else if (realbuf[0] == '[') { /* extract job name */ + unsigned char job_eidx = 1; + char *jobname; + + while (']' != realbuf[job_eidx]) + job_eidx++; + if (0 == strncmp(&realbuf[1], "global", job_eidx - 1)) { + if (!parse_global_cmd_info(fp, &linenum)) { + fclose(fp); + exit(1); + } + } else { /* enqueue io job */ + struct io_jobs *iojob = calloc(1, sizeof(struct io_jobs)); + + memset(iojob, 0 ,sizeof(struct io_jobs)); + iojob->job_name = malloc(job_eidx - 1); + iojob->verify_read = READ_VERIFY_NONE; + memcpy(iojob->job_name, &realbuf[1], job_eidx - 1); + iojob->block_size = DEFAULT_BLOCK_SIZE; + if (!parse_io_job_info(iojob, fp, &linenum)) { + free(iojob->job_name); + free(iojob); + fclose(fp); + exit(1); + } + if (0 == strncmp(iojob->iotype, "read", 4)) { + if (0 == iojob->numbytes) { + printf ("Error:Number of bytes to read not provided for %s\n", + iojob->job_name); + exit(0); + } else { + unsigned int num_blocks = get_io_job_num_blocks(iojob); + + if (0 != posix_memalign((void **)&iojob->buf, + DEFAULT_PAGE_SIZE /*alignment */ , + (iojob->numitr * + num_blocks * + iojob->block_size) + + DEFAULT_PAGE_SIZE)) { + printf("Error: Memory could not be allocated\n"); + exit(0); + } + } + } + enqueue_io_job(iojob); + } + } + } + fclose(fp); +} + +void run_env_cmds(struct env_cmds *gcmd) +{ + while (NULL != gcmd) { + printf("Running cmd: %s\n", gcmd->cmd); + system(gcmd->cmd); + gcmd = gcmd->prev; + } +} + +void verify_read(struct io_jobs *iojob) +{ + char *expected; + int rd_diff; + unsigned int i, j; + unsigned int total_jobs = get_io_job_num_blocks(iojob); + + if (iojob->verify_read == READ_VERIFY_FILE) { + int fd; + unsigned int datsize; + struct stat infile_stat; + ssize_t numrd = 0; + int rc; + + fd = open(iojob->verify_file_name, O_RDONLY); + if (0 > fstat(fd, &infile_stat)) { + printf("Error: File stat did not work for %s\n", iojob->verify_file_name); + return; + } + datsize = infile_stat.st_size; + if (0 > lseek(fd, 0, SEEK_SET)) { + printf("Error: Setting file descriptor to beginning for %s failed\n", + iojob->verify_file_name); + return; + } + expected = malloc(datsize); + while (datsize) { + numrd = read(fd, expected, datsize); + if (0 < numrd) { + datsize -= numrd; + } else + break; + } + close(fd); + + for (i = 0; i < iojob->numitr; i++) { + unsigned int buf_offset = (i * total_jobs * iojob->block_size); + unsigned int io_numbytes = iojob->numbytes; + + rd_diff = memcmp(expected, + &iojob->buf[buf_offset], + io_numbytes); + if (0 != rd_diff) { + + printf("Error: read verify failed for %s itr %d at %d\n", + iojob->job_name, i, rd_diff); + + } else + printf("Read validated for %s -> itr %u successfully\n", iojob->job_name, i); + } + free(expected); + } else if (iojob->verify_read == READ_VERIFY_PATTERN) { + unsigned int pat_len = strlen(iojob->verify_pattern); + unsigned int offset = 0; + + unsigned int buf_offset = (i * iojob->block_size); + while (offset < iojob->numbytes) { + rd_diff = memcmp(iojob->verify_pattern, + &iojob->buf[offset], + pat_len); + if (0 != rd_diff) + printf("Error: read verify failed for %s at %d\n", + iojob->job_name, offset + rd_diff); + offset += pat_len; + } + } +} + +unsigned int get_io_job_num_blocks(struct io_jobs *iojob) +{ + unsigned int num_blks; + unsigned int extra_block = (iojob->numbytes % iojob->block_size)? 1 : 0; + + num_blks = (iojob->numbytes / iojob->block_size) + extra_block; + + return num_blks; +} + + +#ifdef AIO_DEBUG +static void dump_iojob(struct io_jobs *iojob) +{ + struct env_cmds *gcmd; + + printf("%s:\n", iojob->job_name); + gcmd = iojob->setup_tail; + while (NULL != gcmd) { + printf("%s\n", gcmd->cmd); + gcmd = gcmd->prev; + } + if (NULL == iojob->setup_tail) + printf("No IO setup cmds listed\n"); + if (NULL == iojob->cleanup_tail) + printf("No IO cleanup cmds listed\n"); + gcmd = iojob->cleanup_tail; + while (NULL != gcmd) { + printf("%s\n", gcmd->cmd); + gcmd = gcmd->prev; + } + printf("working on %s:\n", iojob->node); + printf("IO Operation: %s\n", iojob->iotype); + printf("verification type: %d\n", iojob->verify_read); + printf("verify_file_name: %s\n", iojob->verify_file_name); + printf("verify_pattern: %s\n", iojob->verify_pattern); + printf("numbytes: %d\n", iojob->numbytes); + printf("block_size: %d\n", iojob->block_size); + printf("numitr: %d\n", iojob->numitr); +} +#endif + +static void run_io_job(unsigned int jobnum) +{ + struct io_jobs *iojob = io_job_tail; + + if (jobnum > num_io_jobs) { + printf("Error: Invalid IO job number %d\n", jobnum); + return; + } + + if (0 == jobnum) { + while (iojob) { +#ifdef AIO_DEBUG + dump_iojob(iojob); +#endif + iojob->commit_io(iojob); + iojob = iojob->prev; + } + } else { + while (--jobnum) { + iojob = iojob->prev; + } + +#ifdef AIO_DEBUG + dump_iojob(iojob); +#endif + iojob->commit_io(iojob); + } +} + +static void cancel_outstanding_reqs(void) +{ + struct aio_block *aioblock; + struct aio_job *aiojob = aio_task_head; + struct aiocb *iocb; + int rc; + + while (NULL != aiojob) { + aiojob->iojob->cancel_io(aiojob); + aiojob = aiojob->next; + } +} + +bool cleanup_aiojob(struct aio_job *aiojob, bool force) +{ + struct aio_block *aioblock; + void *aio_list; + struct timespec ts_cur; + int rc; + struct io_jobs *iojob = aiojob->iojob; + + aioblock = aiojob->aio_block_head; + while (force) { + if (NULL != aioblock) { + if (aiojob->mask_completed & aioblock->mask) + goto aioblock_next; + rc = clock_gettime(CLOCK_MONOTONIC, &ts_cur); + ts_cur.tv_nsec += SEC2USEC; + printf("waiting for %s iter %d block %d to cancel\n", + iojob->job_name, aioblock->jobitr, + aioblock->block_num); + sem_timedwait(&aioblock->lock, &ts_cur); + sem_destroy(&aioblock->lock); + aiojob->mask_completed |= aioblock->mask; + } else + break; +aioblock_next: + aioblock = aioblock->next; + } + if (aiojob->mask_completed != aiojob->mask_expected) { + if (force) + printf("Invalid path in aio task cleanup\n"); + return false; + } + run_env_cmds(iojob->cleanup_tail); + while (1) { + aioblock = dequeue_aio_block(aiojob); + if (NULL == aioblock) break; + if (NULL != aioblock->aio_entry) { + free(aioblock->aio_entry); + aioblock->aio_entry = NULL; + } + free(aioblock); + aioblock = NULL; + } + close(aiojob->fd); + aio_list = aiojob->aio_list; + aio_task_head = aio_task_head->next; + aiojob->aio_list = NULL; + free(aiojob); + aiojob = NULL; + free(aio_list); + + sem_post(&prev_io); + + return true; +} + +void cleanup_aio_jobs(bool force) +{ + struct aio_job *aiojob = aio_task_head; + + while (NULL != aiojob) { + if (false == cleanup_aiojob(aiojob, force)) + break; /* need to clean up sequentially in reverse */ + else + aiojob = aio_task_head; + } +} + +static void cleanup(void) +{ + struct io_jobs *iojob; + struct env_cmds *gcmd; + + cancel_outstanding_reqs(); + cleanup_aio_jobs(true); + + while (1) { + iojob = dequeue_io_job(); + if (NULL == iojob) break; + if (NULL != iojob->verify_file_name) + free(iojob->verify_file_name); + if (NULL != iojob->verify_pattern) + free(iojob->verify_pattern); + free(iojob->iotype); + free(iojob->buf); + free(iojob->node); + free(iojob->job_name); + while (iojob->cleanup_head) { + gcmd = dequeue_io_env_cmd(ENV_CMD_IO_CLEANUP, iojob); + free(gcmd->cmd); + free(gcmd); + } + while (iojob->setup_head) { + gcmd = dequeue_io_env_cmd(ENV_CMD_IO_SETUP, iojob); + free(gcmd->cmd); + free(gcmd); + } + free(iojob); + } + while (1) { + gcmd = dequeue_global_env_cmd(ENV_CMD_GLOBAL_CLEANUP); + if (NULL == gcmd) break; + free(gcmd->cmd); + free(gcmd); + } + while (1) { + gcmd = dequeue_global_env_cmd(ENV_CMD_GLOBAL_SETUP); + if (NULL == gcmd) break; + free(gcmd->cmd); + free(gcmd); + } +} + +int main(int argc, char *argv[]) +{ + int cmd_opt; + char *cfg_fname; + unsigned int i; + struct io_jobs *iojob; + + while ((cmd_opt = getopt_long(argc, argv, "vhxc:c:", long_opts, + NULL)) != -1) { + switch (cmd_opt) { + case 0: + /* long option */ + break; + case 'c': + /* condig file name */ + cfg_fname = strdup(optarg); + break; + default: + usage(argv[0]); + exit(0); + break; + } + } + + parse_config_file(cfg_fname); + sem_init(&prev_io, 0, 1); + atexit(cleanup); +#ifdef AIO_DEBUG + { + struct env_cmds *gcmd; + + gcmd = glb_setup_cmd_tail; + while (NULL != gcmd) { + printf("%s\n", gcmd->cmd); + gcmd = gcmd->prev; + } + gcmd = glb_clean_cmd_tail; + while (NULL != gcmd) { + printf("%s\n", gcmd->cmd); + gcmd = gcmd->prev; + } + } +#endif + + while (1) { + unsigned int j = 0; + + printf("\nSelect the Job to run:\n"); + printf("0. exit\n"); + printf("1. global setup\n"); + printf("2. global cleanup\n"); + printf("3. All IO jobs\n"); + i = 4; + iojob = io_job_tail; + while (iojob) { + printf("%d. %s\n", i, iojob->job_name); + iojob = iojob->prev; + i++; + } + scanf("%u", &j); + sem_wait(&prev_io); + if (0 == j) { + exit(0); + } else if (1 == j) { + run_env_cmds(glb_setup_cmd_tail); + sem_post(&prev_io); + } else if (2 == j) { + run_env_cmds(glb_clean_cmd_tail); + sem_post(&prev_io); + } else if (3 == j) { + run_io_job(0); + } else if (j < i) { + printf("Running IO Job %d\n", j-3); + run_io_job(j - 3); + } else { + printf ("Error: Invalid option\n"); + } + sem_wait(&prev_io); + exit(0); + } + + return 0; +} + diff --git a/QDMA/linux-kernel/tools/aioutility.h b/QDMA/linux-kernel/tools/aioutility.h new file mode 100644 index 0000000..f9f674b --- /dev/null +++ b/QDMA/linux-kernel/tools/aioutility.h @@ -0,0 +1,110 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#ifndef __AIOUTILITY_H__ +#define __AIOUTILITY_H__ + +#include <semaphore.h> +#include <time.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <stdbool.h> +#include <linux/types.h> + +enum read_verify_type { + READ_VERIFY_NONE, + READ_VERIFY_FILE, + READ_VERIFY_PATTERN +}; + +enum io_engine { + IO_ENGINE_LIBAIO, + IO_ENGINE_POSIXAIO +}; + +struct env_cmds { + char *cmd; /* commands to be run */ + struct env_cmds *next; + struct env_cmds *prev; +}; + +typedef void (*submit_aio_job)(void *); +typedef void (*cancel_aio_job)(void *); + +struct io_jobs { + char *job_name; + char *node; + char *iotype; + char *buf; + char *verify_file_name; + char *verify_pattern; + unsigned int numbytes; + unsigned int block_size; + unsigned int numitr; + enum read_verify_type verify_read; + enum io_engine io_type; + void *aiojob; + struct env_cmds *setup_head; + struct env_cmds *setup_tail; + struct env_cmds *cleanup_head; + struct env_cmds *cleanup_tail; + submit_aio_job commit_io; + cancel_aio_job cancel_io; + struct io_jobs *next; + struct io_jobs *prev; +}; + +struct aio_block { + sem_t lock; + __u64 mask; + void *aio_entry; + unsigned int jobitr; + unsigned int num_bytes; + unsigned int block_num; + unsigned int num_blocks_completed; + struct aio_job *parent; + void *next; +}; + +struct aio_job { + struct io_jobs *iojob; + int fd; + __u64 mask_expected; + __u64 mask_completed; + struct timespec ts_start; + void *aio_list; + void *naio_ctxt; + void *events; + struct aio_block *aio_block_head; + struct aio_block *aio_block_tail; + struct aio_job *next; +}; + +void submit_naio_job(void *iojob); +void submit_paio_job(void *iojob); +void cancel_naio_job(void *aiojob); +void cancel_paio_job(void *aiojob); + +unsigned int get_io_job_num_blocks(struct io_jobs *iojob); +void verify_read(struct io_jobs *iojob); +bool cleanup_aiojob(struct aio_job *aiojob, bool force); +void cleanup_aio_jobs(bool); +void enqueue_io_job(struct io_jobs *iojob); +void enqueue_aio_block(struct aio_job *aiojob, struct aio_block *aioblock); +void enqueue_aio_task(struct aio_job *aiotask); +struct aio_block * get_aio_block(void *_aioblock); + +void run_env_cmds(struct env_cmds *gcmd); + +void timespec_sub(struct timespec *t1, struct timespec *t2); + +#endif diff --git a/QDMA/linux-kernel/tools/config/dmautils_config/mm-bi.zip b/QDMA/linux-kernel/tools/config/dmautils_config/mm-bi.zip new file mode 100644 index 0000000000000000000000000000000000000000..548e1c8804b13ea7d67fb91e0fb3694e856f291e GIT binary patch literal 18447 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 AQvd(} literal 0 HcmV?d00001 diff --git a/QDMA/linux-kernel/tools/config/dmautils_config/mm-c2h.zip b/QDMA/linux-kernel/tools/config/dmautils_config/mm-c2h.zip new file mode 100644 index 0000000000000000000000000000000000000000..64f01c3f65065b11324fcbd04798e243c226efba GIT binary patch literal 18719 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 K!0<#5!~+1M8UarL literal 0 HcmV?d00001 diff --git a/QDMA/linux-kernel/tools/config/dmautils_config/mm-h2c.zip b/QDMA/linux-kernel/tools/config/dmautils_config/mm-h2c.zip new file mode 100644 index 0000000000000000000000000000000000000000..2ae62697b21ecaa3af4f58b59de729d20471f8d1 GIT binary patch literal 17146 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 literal 0 HcmV?d00001 diff --git a/QDMA/linux-kernel/tools/config/dmautils_config/st-bi.zip b/QDMA/linux-kernel/tools/config/dmautils_config/st-bi.zip new file mode 100644 index 0000000000000000000000000000000000000000..d7463397e04e20c4751af0b759ccf73336ee52e6 GIT binary patch literal 90077 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 literal 0 HcmV?d00001 diff --git a/QDMA/linux-kernel/tools/config/dmautils_config/st-c2h-pfetch1.zip b/QDMA/linux-kernel/tools/config/dmautils_config/st-c2h-pfetch1.zip new file mode 100644 index 0000000000000000000000000000000000000000..47a9e2bf22af5d74892799394bf2a083759ce543 GIT binary patch literal 102427 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 a@DtQctZWPn3=FJ{tc-uBF)(oa1n~f<IKGAe literal 0 HcmV?d00001 diff --git a/QDMA/linux-kernel/tools/config/dmautils_config/st-h2c.zip b/QDMA/linux-kernel/tools/config/dmautils_config/st-h2c.zip new file mode 100644 index 0000000000000000000000000000000000000000..bd5d571360ae445644cae508235359bb653dc278 GIT binary patch literal 83913 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	MZ4nZ# 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 F0RSYKP`>~G literal 0 HcmV?d00001 diff --git a/QDMA/linux-kernel/tools/dma_from_device.c b/QDMA/linux-kernel/tools/dma_from_device.c new file mode 100644 index 0000000..2393068 --- /dev/null +++ b/QDMA/linux-kernel/tools/dma_from_device.c @@ -0,0 +1,233 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#define _DEFAULT_SOURCE +#define _XOPEN_SOURCE 500 +#include <assert.h> +#include <fcntl.h> +#include <getopt.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <time.h> + +#include <sys/mman.h> +#include <sys/stat.h> +#include <sys/time.h> +#include <sys/types.h> +#include <unistd.h> + +#include "dma_xfer_utils.c" + +#define DEVICE_NAME_DEFAULT "/dev/qdma01000-MM-0" +#define SIZE_DEFAULT (32) +#define COUNT_DEFAULT (1) + +static struct option const long_opts[] = { + {"device", required_argument, NULL, 'd'}, + {"address", required_argument, NULL, 'a'}, + {"size", required_argument, NULL, 's'}, + {"offset", required_argument, NULL, 'o'}, + {"count", required_argument, NULL, 'c'}, + {"file", required_argument, NULL, 'f'}, + {"help", no_argument, NULL, 'h'}, + {"verbose", no_argument, NULL, 'v'}, + {0, 0, 0, 0} +}; + +static int test_dma(char *devname, uint64_t addr, uint64_t size, + uint64_t offset, uint64_t count, char *ofname); +static int no_write = 0; + +static void usage(const char *name) +{ + int i = 0; + fprintf(stdout, "%s\n\n", name); + fprintf(stdout, "usage: %s [OPTIONS]\n\n", name); + fprintf(stdout, "Read via SGDMA, optionally save output to a file\n\n"); + + fprintf(stdout, " -%c (--%s) device (defaults to %s)\n", + long_opts[i].val, long_opts[i].name, DEVICE_NAME_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) the start address on the AXI bus\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, + " -%c (--%s) size of a single transfer in bytes, default %d.\n", + long_opts[i].val, long_opts[i].name, SIZE_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) page offset of transfer\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) number of transfers, default is %d.\n", + long_opts[i].val, long_opts[i].name, COUNT_DEFAULT); + i++; + fprintf(stdout, + " -%c (--%s) file to write the data of the transfers\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) print usage help and exit\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) verbose output\n", + long_opts[i].val, long_opts[i].name); + i++; +} + +int main(int argc, char *argv[]) +{ + int cmd_opt; + char *device = DEVICE_NAME_DEFAULT; + uint64_t address = 0; + uint64_t size = SIZE_DEFAULT; + uint64_t offset = 0; + uint64_t count = COUNT_DEFAULT; + char *ofname = NULL; + + while ((cmd_opt = getopt_long(argc, argv, "vhxc:f:d:a:s:o:", long_opts, + NULL)) != -1) { + switch (cmd_opt) { + case 0: + /* long option */ + break; + case 'd': + /* device node name */ + device = strdup(optarg); + break; + case 'a': + /* RAM address on the AXI bus in bytes */ + address = getopt_integer(optarg); + break; + /* RAM size in bytes */ + case 's': + size = getopt_integer(optarg); + break; + case 'o': + offset = getopt_integer(optarg) & 4095; + break; + /* count */ + case 'c': + count = getopt_integer(optarg); + break; + /* count */ + case 'f': + ofname = strdup(optarg); + break; + /* print usage help and exit */ + case 'x': + no_write++; + break; + case 'v': + verbose = 1; + break; + case 'h': + default: + usage(argv[0]); + exit(0); + break; + } + } + if (verbose) + fprintf(stdout, + "dev %s, addr 0x%lx, size 0x%lx, offset 0x%lx, count %lu\n", + device, address, size, offset, count); + + return test_dma(device, address, size, offset, count, ofname); +} + +static int test_dma(char *devname, uint64_t addr, uint64_t size, + uint64_t offset, uint64_t count, char *ofname) +{ + ssize_t rc; + uint64_t i; + char *buffer = NULL; + char *allocated = NULL; + struct timespec ts_start, ts_end; + int out_fd = -1; + int fpga_fd = open(devname, O_RDWR | O_NONBLOCK); + long total_time = 0; + float result; + float avg_time = 0; + + if (fpga_fd < 0) { + fprintf(stderr, "unable to open device %s, %d.\n", + devname, fpga_fd); + perror("open device"); + return -EINVAL; + } + + /* create file to write data to */ + if (ofname) { + out_fd = open(ofname, O_RDWR | O_CREAT | O_TRUNC | O_SYNC, + 0666); + if (out_fd < 0) { + fprintf(stderr, "unable to open output file %s, %d.\n", + ofname, out_fd); + perror("open output file"); + rc = -EINVAL; + goto out; + } + } + + posix_memalign((void **)&allocated, 4096 /*alignment */ , size + 4096); + if (!allocated) { + fprintf(stderr, "OOM %lu.\n", size + 4096); + rc = -ENOMEM; + goto out; + } + + buffer = allocated + offset; + if (verbose) + fprintf(stdout, "host buffer 0x%lx, %p.\n", size + 4096, buffer); + + for (i = 0; i < count; i++) { + rc = clock_gettime(CLOCK_MONOTONIC, &ts_start); + /* lseek & read data from AXI MM into buffer using SGDMA */ + rc = read_to_buffer(devname, fpga_fd, buffer, size, addr); + if (rc < 0) + goto out; + clock_gettime(CLOCK_MONOTONIC, &ts_end); + + /* subtract the start time from the end time */ + timespec_sub(&ts_end, &ts_start); + total_time += ts_end.tv_nsec; + /* a bit less accurate but side-effects are accounted for */ + if (verbose) + fprintf(stdout, + "#%lu: CLOCK_MONOTONIC %ld.%09ld sec. read %ld bytes\n", + i, ts_end.tv_sec, ts_end.tv_nsec, size); + + /* file argument given? */ + if ((out_fd >= 0) & (no_write == 0)) { + rc = write_from_buffer(ofname, out_fd, buffer, + size, i*size); + if (rc < 0) + goto out; + } + } + avg_time = (float)total_time/(float)count; + result = ((float)size)*1000/avg_time; + if (verbose) + printf("** Avg time device %s, total time %ld nsec, avg_time = %f, size = %lu, BW = %f \n", + devname, total_time, avg_time, size, result); + printf("** Average BW = %lu, %f\n", size, result); + rc = 0; + +out: + close(fpga_fd); + if (out_fd >= 0) + close(out_fd); + free(allocated); + + return rc; +} diff --git a/QDMA/linux-kernel/tools/dma_from_device_w_udd.c b/QDMA/linux-kernel/tools/dma_from_device_w_udd.c new file mode 100644 index 0000000..2fb6fcd --- /dev/null +++ b/QDMA/linux-kernel/tools/dma_from_device_w_udd.c @@ -0,0 +1,266 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#define _DEFAULT_SOURCE +#define _XOPEN_SOURCE 500 +#include <assert.h> +#include <fcntl.h> +#include <getopt.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <time.h> + +#include <sys/mman.h> +#include <sys/stat.h> +#include <sys/time.h> +#include <sys/types.h> +#include <unistd.h> + +#include "dma_xfer_utils.c" + +#define DEVICE_NAME_DEFAULT "/dev/xdma0_c2h_0" +#define SIZE_DEFAULT (32) +#define COUNT_DEFAULT (1) + +static struct option const long_opts[] = { + {"device", required_argument, NULL, 'd'}, + {"address", required_argument, NULL, 'a'}, + {"size", required_argument, NULL, 's'}, + {"offset", required_argument, NULL, 'o'}, + {"count", required_argument, NULL, 'c'}, + {"file", required_argument, NULL, 'f'}, + {"udd_file", required_argument, NULL, 'u'}, + {"help", no_argument, NULL, 'h'}, + {"verbose", no_argument, NULL, 'v'}, + {0, 0, 0, 0} +}; + +static int test_dma(char *devname, uint64_t addr, uint64_t size, + uint64_t offset, uint64_t count, char *ofname, char *uddofname); +static int no_write = 0; + +static void usage(const char *name) +{ + int i = 0; + fprintf(stdout, "%s\n\n", name); + fprintf(stdout, "usage: %s [OPTIONS]\n\n", name); + fprintf(stdout, "Read via SGDMA, optionally save output to a file\n\n"); + + fprintf(stdout, " -%c (--%s) device (defaults to %s)\n", + long_opts[i].val, long_opts[i].name, DEVICE_NAME_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) the start address on the AXI bus\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, + " -%c (--%s) size of a single packet in bytes, default %d.\n", + long_opts[i].val, long_opts[i].name, SIZE_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) page offset of transfer\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) number of transfers, default is %d.\n", + long_opts[i].val, long_opts[i].name, COUNT_DEFAULT); + i++; + fprintf(stdout, + " -%c (--%s) file to write the data of the transfers\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, + " -%c (--%s) file to write the UDD data from the transfers\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) print usage help and exit\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) verbose output\n", + long_opts[i].val, long_opts[i].name); + i++; +} + +int main(int argc, char *argv[]) +{ + int cmd_opt; + char *device = DEVICE_NAME_DEFAULT; + uint64_t address = 0; + uint64_t size = SIZE_DEFAULT; + uint64_t offset = 0; + uint64_t count = COUNT_DEFAULT; + uint64_t num_pkts = 1; + char *ofname = NULL; + char *uddofname = NULL; + + while ((cmd_opt = getopt_long(argc, argv, "vhxc:f:d:a:s:o:u:c:", long_opts, + NULL)) != -1) { + switch (cmd_opt) { + case 0: + /* long option */ + break; + case 'd': + /* device node name */ + device = strdup(optarg); + break; + case 'a': + /* RAM address on the AXI bus in bytes */ + address = getopt_integer(optarg); + break; + /* RAM size in bytes */ + case 's': + size = getopt_integer(optarg); + break; + case 'o': + offset = getopt_integer(optarg) & 4095; + break; + /* count */ + case 'c': + count = getopt_integer(optarg); + break; + /* count */ + case 'f': + ofname = strdup(optarg); + break; + case 'u': + uddofname = strdup(optarg); + break; + /* print usage help and exit */ + case 'x': + no_write++; + break; + case 'v': + verbose = 1; + break; + case 'h': + default: + usage(argv[0]); + exit(0); + break; + } + } + if (verbose) + fprintf(stdout, + "dev %s, addr 0x%lx, size 0x%lx, offset 0x%lx, count %lu\n", + device, address, size, offset, count); + + return test_dma(device, address, size, offset, count, ofname, uddofname); +} + +static int test_dma(char *devname, uint64_t addr, uint64_t size, + uint64_t offset, uint64_t count, char *ofname, char *uddofname) +{ + ssize_t rc; + uint64_t i; + char *buffer = NULL; + char *allocated = NULL; + struct timespec ts_start, ts_end; + int out_fd = -1; + int out_udd_fd = -1; + int fpga_fd = open(devname, O_RDWR | O_NONBLOCK); + long total_time = 0; + float result; + float avg_time = 0; + uint64_t num_pgs = 0; + + if (fpga_fd < 0) { + fprintf(stderr, "unable to open device %s, %d.\n", + devname, fpga_fd); + perror("open device"); + return -EINVAL; + } + + /* create file to write data to */ + if (ofname) { + out_fd = open(ofname, O_RDWR | O_CREAT | O_TRUNC | O_SYNC, + 0666); + if (out_fd < 0) { + fprintf(stderr, "unable to open output file %s, %d.\n", + ofname, out_fd); + perror("open output file"); + rc = -EINVAL; + goto out; + } + out_udd_fd = open(uddofname, O_RDWR | O_CREAT | O_TRUNC | O_SYNC, + 0666); + if (out_udd_fd < 0) { + fprintf(stderr, "unable to open output file %s, %d.\n", + uddofname, out_udd_fd); + perror("open output file"); + rc = -EINVAL; + goto out; + } + } + + num_pgs = (((size + offset) * count) >> 12) + 1; + posix_memalign((void **)&allocated, 4096 /*alignment */ , num_pgs * 4096); + if (!allocated) { + fprintf(stderr, "OOM %lu.\n", num_pgs * 4096); + rc = -ENOMEM; + goto out; + } + + if (verbose) + fprintf(stdout, "host buffer 0x%lx, %p.\n", size + 4096, buffer); + + buffer = allocated; + rc = read_to_buffer(devname, fpga_fd, buffer, ((size + offset) * count), addr); + if (rc < 0) + goto out; + for (i = 0; i < count; i++) { + rc = clock_gettime(CLOCK_MONOTONIC, &ts_start); + /* lseek & read data from AXI MM into buffer using SGDMA */ + clock_gettime(CLOCK_MONOTONIC, &ts_end); + + /* subtract the start time from the end time */ + timespec_sub(&ts_end, &ts_start); + total_time += ts_end.tv_nsec; + /* a bit less accurate but side-effects are accounted for */ + if (verbose) + fprintf(stdout, + "#%lu: CLOCK_MONOTONIC %ld.%09ld sec. read %ld bytes\n", + i, ts_end.tv_sec, ts_end.tv_nsec, size); + + /* file argument given? */ + if ((out_udd_fd >= 0) & (no_write == 0)) { + rc = write_from_buffer(uddofname, out_udd_fd, buffer, + offset, i*offset); + if (rc < 0) + goto out; + } + buffer += offset; /* point to actual data */ + /* file argument given? */ + if ((out_fd >= 0) & (no_write == 0)) { + rc = write_from_buffer(ofname, out_fd, buffer, + size, i*size); + if (rc < 0) + goto out; + } + buffer += size; /* point to next packet */ + } + avg_time = (float)total_time/(float)count; + result = ((float)size)*1000/avg_time; + if (verbose) + printf("** Avg time device %s, total time %ld nsec, avg_time = %f, size = %lu, BW = %f \n", + devname, total_time, avg_time, size, result); + printf("** Average BW = %lu, %f\n", size, result); + rc = 0; + +out: + close(fpga_fd); + if (out_fd >= 0) + close(out_fd); + if (out_udd_fd >= 0) + close(out_udd_fd); + free(allocated); + + return rc; +} diff --git a/QDMA/linux-kernel/tools/dma_to_device.c b/QDMA/linux-kernel/tools/dma_to_device.c new file mode 100644 index 0000000..b8710f8 --- /dev/null +++ b/QDMA/linux-kernel/tools/dma_to_device.c @@ -0,0 +1,266 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#define _DEFAULT_SOURCE +#define _XOPEN_SOURCE 500 +#include <assert.h> +#include <fcntl.h> +#include <getopt.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <errno.h> +#include <time.h> + +#include <sys/mman.h> +#include <sys/stat.h> +#include <sys/time.h> +#include <sys/types.h> +#include <unistd.h> + +#include "dma_xfer_utils.c" + +static struct option const long_opts[] = { + {"device", required_argument, NULL, 'd'}, + {"address", required_argument, NULL, 'a'}, + {"size", required_argument, NULL, 's'}, + {"offset", required_argument, NULL, 'o'}, + {"count", required_argument, NULL, 'c'}, + {"data infile", required_argument, NULL, 'f'}, + {"data outfile", required_argument, NULL, 'w'}, + {"help", no_argument, NULL, 'h'}, + {"verbose", no_argument, NULL, 'v'}, + {0, 0, 0, 0} +}; + +#define DEVICE_NAME_DEFAULT "/dev/qdma01000-MM-0" +#define SIZE_DEFAULT (32) +#define COUNT_DEFAULT (1) + + +static int test_dma(char *devname, uint64_t addr, uint64_t size, + uint64_t offset, uint64_t count, char *filename, char *); + +static void usage(const char *name) +{ + int i = 0; + + fprintf(stdout, "%s\n\n", name); + fprintf(stdout, "usage: %s [OPTIONS]\n\n", name); + fprintf(stdout, + "Write via SGDMA, optionally read input from a file.\n\n"); + + fprintf(stdout, " -%c (--%s) device (defaults to %s)\n", + long_opts[i].val, long_opts[i].name, DEVICE_NAME_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) the start address on the AXI bus\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, + " -%c (--%s) size of a single transfer in bytes, default %d,\n", + long_opts[i].val, long_opts[i].name, SIZE_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) page offset of transfer\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) number of transfers, default %d\n", + long_opts[i].val, long_opts[i].name, COUNT_DEFAULT); + i++; + fprintf(stdout, " -%c (--%s) filename to read the data from.\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, + " -%c (--%s) filename to write the data of the transfers\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) print usage help and exit\n", + long_opts[i].val, long_opts[i].name); + i++; + fprintf(stdout, " -%c (--%s) verbose output\n", + long_opts[i].val, long_opts[i].name); + i++; +} + +int main(int argc, char *argv[]) +{ + int cmd_opt; + char *device = DEVICE_NAME_DEFAULT; + uint64_t address = 0; + uint64_t size = SIZE_DEFAULT; + uint64_t offset = 0; + uint64_t count = COUNT_DEFAULT; + char *infname = NULL; + char *ofname = NULL; + + while ((cmd_opt = + getopt_long(argc, argv, "vhc:f:d:a:s:o:w:", long_opts, + NULL)) != -1) { + switch (cmd_opt) { + case 0: + /* long option */ + break; + case 'd': + /* device node name */ + //fprintf(stdout, "'%s'\n", optarg); + device = strdup(optarg); + break; + case 'a': + /* RAM address on the AXI bus in bytes */ + address = getopt_integer(optarg); + break; + case 's': + /* size in bytes */ + size = getopt_integer(optarg); + break; + case 'o': + offset = getopt_integer(optarg) & 4095; + break; + /* count */ + case 'c': + count = getopt_integer(optarg); + break; + /* count */ + case 'f': + infname = strdup(optarg); + break; + case 'w': + ofname = strdup(optarg); + break; + /* print usage help and exit */ + case 'v': + verbose = 1; + break; + case 'h': + default: + usage(argv[0]); + exit(0); + break; + } + } + + if (verbose) + fprintf(stdout, + "dev %s, address 0x%lx, size 0x%lx, offset 0x%lx, count %lu\n", + device, address, size, offset, count); + + return test_dma(device, address, size, offset, count, infname, ofname); +} + +static int test_dma(char *devname, uint64_t addr, uint64_t size, + uint64_t offset, uint64_t count, char *infname, + char *ofname) +{ + uint64_t i; + ssize_t rc; + char *buffer = NULL; + char *allocated = NULL; + struct timespec ts_start, ts_end; + int infile_fd = -1; + int outfile_fd = -1; + int fpga_fd = open(devname, O_RDWR); + long total_time = 0; + float result; + float avg_time = 0; + + if (fpga_fd < 0) { + fprintf(stderr, "unable to open device %s, %d.\n", + devname, fpga_fd); + perror("open device"); + return -EINVAL; + } + + if (infname) { + infile_fd = open(infname, O_RDONLY); + if (infile_fd < 0) { + fprintf(stderr, "unable to open input file %s, %d.\n", + infname, infile_fd); + perror("open input file"); + rc = -EINVAL; + goto out; + } + } + + if (ofname) { + outfile_fd = + open(ofname, O_RDWR | O_CREAT | O_TRUNC | O_SYNC, + 0666); + if (outfile_fd < 0) { + fprintf(stderr, "unable to open output file %s, %d.\n", + ofname, outfile_fd); + perror("open output file"); + rc = -EINVAL; + goto out; + } + } + + posix_memalign((void **)&allocated, 4096 /*alignment */ , size + 4096); + if (!allocated) { + fprintf(stderr, "OOM %lu.\n", size + 4096); + rc = -ENOMEM; + goto out; + } + buffer = allocated + offset; + if (verbose) + fprintf(stdout, "host buffer 0x%lx = %p\n", + size + 4096, buffer); + + if (infile_fd >= 0) { + rc = read_to_buffer(infname, infile_fd, buffer, size, 0); + if (rc < 0) + goto out; + } + + for (i = 0; i < count; i++) { + /* write buffer to AXI MM address using SGDMA */ + rc = clock_gettime(CLOCK_MONOTONIC, &ts_start); + + rc = write_from_buffer(devname, fpga_fd, buffer, size, addr); + if (rc < 0) + goto out; + + rc = clock_gettime(CLOCK_MONOTONIC, &ts_end); + /* subtract the start time from the end time */ + timespec_sub(&ts_end, &ts_start); + total_time += ts_end.tv_nsec; + /* a bit less accurate but side-effects are accounted for */ + if (verbose) + fprintf(stdout, + "#%lu: CLOCK_MONOTONIC %ld.%09ld sec. write %ld bytes\n", + i, ts_end.tv_sec, ts_end.tv_nsec, size); + + if (outfile_fd >= 0) { + rc = write_from_buffer(ofname, outfile_fd, buffer, + size, i * size); + if (rc < 0) + goto out; + } + } + avg_time = (float)total_time/(float)count; + result = ((float)size)*1000/avg_time; + if (verbose) + printf("** Avg time device %s, total time %ld nsec, avg_time = %f, size = %lu, BW = %f \n", + devname, total_time, avg_time, size, result); + + printf("** Average BW = %lu, %f\n",size, result); + rc = 0; + +out: + close(fpga_fd); + if (infile_fd >= 0) + close(infile_fd); + if (outfile_fd >= 0) + close(outfile_fd); + free(allocated); + + return rc; +} diff --git a/QDMA/linux-kernel/tools/dma_xfer_utils.c b/QDMA/linux-kernel/tools/dma_xfer_utils.c new file mode 100644 index 0000000..ceff6d9 --- /dev/null +++ b/QDMA/linux-kernel/tools/dma_xfer_utils.c @@ -0,0 +1,198 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include <stdio.h> +#include <stdint.h> +#include <unistd.h> +#include <time.h> +#include <errno.h> +#include <sys/types.h> + +/* + * man 2 write: + * On Linux, write() (and similar system calls) will transfer at most + * 0x7ffff000 (2,147,479,552) bytes, returning the number of bytes + * actually transferred. (This is true on both 32-bit and 64-bit + * systems.) + */ + +#define RW_MAX_SIZE 0x7ffff000 + +int verbose = 0; + +uint64_t getopt_integer(char *optarg) +{ + int rc; + uint64_t value; + + rc = sscanf(optarg, "0x%lx", &value); + if (rc <= 0) + rc = sscanf(optarg, "%lu", &value); + //printf("sscanf() = %d, value = 0x%lx\n", rc, value); + + return value; +} + +ssize_t read_to_buffer(char *fname, int fd, char *buffer, uint64_t size, + uint64_t base) +{ + ssize_t rc; + uint64_t count = 0; + char *buf = buffer; + off_t offset = base; + + do { /* Support zero byte transfer */ + uint64_t bytes = size - count; + + if (bytes > RW_MAX_SIZE) + bytes = RW_MAX_SIZE; + + if (offset) { + rc = lseek(fd, offset, SEEK_SET); + if (rc < 0) { + fprintf(stderr, + "%s, seek off 0x%lx failed %zd.\n", + fname, offset, rc); + perror("seek file"); + return -EIO; + } + if (rc != offset) { + fprintf(stderr, + "%s, seek off 0x%lx != 0x%lx.\n", + fname, rc, offset); + return -EIO; + } + } + + /* read data from file into memory buffer */ + rc = read(fd, buf, bytes); + if (rc < 0) { + fprintf(stderr, + "%s, read off 0x%lx + 0x%lx failed %zd.\n", + fname, offset, bytes, rc); + perror("read file"); + return -EIO; + } + if (rc != bytes) { + fprintf(stderr, + "%s, R off 0x%lx, 0x%lx != 0x%lx.\n", + fname, count, rc, bytes); + return -EIO; + } + + count += bytes; + buf += bytes; + offset += bytes; + } while (count < size); + + if (count != size) { + fprintf(stderr, "%s, R failed 0x%lx != 0x%lx.\n", + fname, count, size); + return -EIO; + } + return count; +} + +ssize_t write_from_buffer(char *fname, int fd, char *buffer, uint64_t size, + uint64_t base) +{ + ssize_t rc; + uint64_t count = 0; + char *buf = buffer; + off_t offset = base; + + do { /* Support zero byte transfer */ + uint64_t bytes = size - count; + + if (bytes > RW_MAX_SIZE) + bytes = RW_MAX_SIZE; + + if (offset) { + rc = lseek(fd, offset, SEEK_SET); + if (rc < 0) { + fprintf(stderr, + "%s, seek off 0x%lx failed %zd.\n", + fname, offset, rc); + perror("seek file"); + return -EIO; + } + if (rc != offset) { + fprintf(stderr, + "%s, seek off 0x%lx != 0x%lx.\n", + fname, rc, offset); + return -EIO; + } + } + + /* write data to file from memory buffer */ + rc = write(fd, buf, bytes); + if (rc < 0) { + fprintf(stderr, "%s, W off 0x%lx, 0x%lx failed %zd.\n", + fname, offset, bytes, rc); + perror("write file"); + return -EIO; + } + if (rc != bytes) { + fprintf(stderr, "%s, W off 0x%lx, 0x%lx != 0x%lx.\n", + fname, offset, rc, bytes); + return -EIO; + } + + count += bytes; + buf += bytes; + offset += bytes; + } while (count < size); + + if (count != size) { + fprintf(stderr, "%s, R failed 0x%lx != 0x%lx.\n", + fname, count, size); + return -EIO; + } + return count; +} + + +/* Subtract timespec t2 from t1 + * + * Both t1 and t2 must already be normalized + * i.e. 0 <= nsec < 1000000000 + */ +static int timespec_check(struct timespec *t) +{ + if ((t->tv_nsec < 0) || (t->tv_nsec >= 1000000000)) + return -1; + return 0; + +} + +void timespec_sub(struct timespec *t1, struct timespec *t2) +{ + if (timespec_check(t1) < 0) { + fprintf(stderr, "invalid time #1: %lld.%.9ld.\n", + (long long)t1->tv_sec, t1->tv_nsec); + return; + } + if (timespec_check(t2) < 0) { + fprintf(stderr, "invalid time #2: %lld.%.9ld.\n", + (long long)t2->tv_sec, t2->tv_nsec); + return; + } + t1->tv_sec -= t2->tv_sec; + t1->tv_nsec -= t2->tv_nsec; + if (t1->tv_nsec >= 1000000000) { + t1->tv_sec++; + t1->tv_nsec -= 1000000000; + } else if (t1->tv_nsec < 0) { + t1->tv_sec--; + t1->tv_nsec += 1000000000; + } +} + diff --git a/QDMA/linux-kernel/tools/dmautils.c b/QDMA/linux-kernel/tools/dmautils.c new file mode 100644 index 0000000..df81356 --- /dev/null +++ b/QDMA/linux-kernel/tools/dmautils.c @@ -0,0 +1,1489 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include <semaphore.h> +#include <time.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <sys/shm.h> +#include <sys/wait.h> +#include <fcntl.h> +#include <stdbool.h> +#include <linux/types.h> +#include <getopt.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> +#include <ctype.h> +#include <signal.h> +#include <stddef.h> +#include <errno.h> +#include <error.h> +#include <sys/mman.h> +#include <sys/time.h> +#include <sys/ioctl.h> +#include </usr/include/pthread.h> +#include <libaio.h> +#include <sys/sysinfo.h> + +#define SEC2NSEC 1000000000 +#define SEC2USEC 1000000 +#define DEFAULT_PAGE_SIZE 4096 +#define PAGE_SHIFT 12 + +#define DATA_VALIDATION 0 + +static struct option const long_opts[] = { + {"config", required_argument, NULL, 'c'}, + {0, 0, 0, 0} +}; + +static void prep_reg_dump(void); +static void prep_pci_dump(void); + +static void usage(const char *name) +{ + int i = 0; + fprintf(stdout, "%s\n\n", name); + fprintf(stdout, "usage: %s [OPTIONS]\n\n", name); + + fprintf(stdout, " -%c (--%s) config file that has configration for IO\n", + long_opts[i].val, long_opts[i].name); + i++; +} + +static char * strip_blanks(char *word, long unsigned int *banlks) +{ + char *p = word; + unsigned int i = 0; + + while (isblank(p[0])) { + p++; + i++; + } + *banlks = i; + + return p; +} + +static unsigned int copy_value(char *src, char *dst, unsigned int max_len) +{ + char *p = src; + unsigned int i = 0; + + while (max_len && !isspace(p[0])) { + dst[i] = p[0]; + p++; + i++; + max_len--; + } + + return i; +} + +static char * strip_comments(char *word) +{ + char *p = strtok(word, "#"); + + return p; +} + +#define MSEC2NSEC 1000000 +#define Q_ADD_CMD_LEN 100 +#define Q_START_CMD_LEN 500 +#define Q_STOP_CMD_LEN 200 +#define Q_DEL_CMD_LEN 200 +#define Q_DUMP_CMD_LEN 200 +#define REG_DUMP_CMD_LEN 200 +#define CMPL_STATUS_ACC_CMD_LEN 200 +#define PCI_DUMP_CMD_LEN 100 + +#define QDMA_UL_IMM_DUMP_C2H_DATA (1 << 17) +#define QDMA_UL_STOP_C2H_TRANSFER (1 << 18) +#define QDMA_UL_DROP_ENABLE (1 << 19) +#define QDMA_UL_IMM_DUMP_CMPT_FIFO (1 << 20) +#define QDMA_UL_STOP_CMPT_TRANSFER (1 << 21) + +//#define DEBUG + +enum q_mode { + Q_MODE_MM, + Q_MODE_ST, + Q_MODES +}; + +enum q_dir { + Q_DIR_H2C, + Q_DIR_C2H, + Q_DIR_BI, + Q_DIRS +}; + +#define THREADS_SET_CPU_AFFINITY 0 + +struct io_info { + unsigned int num_req_submitted; + unsigned int num_req_completed; + struct list_head *head; + struct list_head *tail; + sem_t llock; + int pid; + pthread_t evt_id; + char q_name[20]; + char q_add[Q_ADD_CMD_LEN]; + char q_start[Q_START_CMD_LEN]; + char q_stop[Q_STOP_CMD_LEN]; + char q_del[Q_DEL_CMD_LEN]; + char q_dump[Q_DUMP_CMD_LEN]; + char trig_mode[10]; + unsigned char q_ctrl; + unsigned int q_added; + unsigned int q_started; + unsigned int q_wait_for_stop; + int fd; + unsigned int pf; + unsigned int qid; + enum q_mode mode; + enum q_dir dir; + unsigned int idx_tmr; + unsigned int idx_cnt; + unsigned int idx_rngsz; + unsigned int pfetch_en; + unsigned int pkt_burst; + unsigned int pkt_sz; + unsigned int cmptsz; +#ifdef DEBUG + unsigned long long total_nodes; + unsigned long long freed_nodes; +#endif + unsigned int thread_id; +#if THREADS_SET_CPU_AFFINITY + int cpu; +#endif +}; + +struct list_head { + struct list_head *next; + unsigned int max_events; + unsigned int completed_events; + io_context_t ctxt; +}; + +#define container_of(ptr, type, member) ({ \ + const struct iocb *__mptr = (ptr); \ + (type *)( (char *)__mptr - offsetof(type,member) );}) + +static unsigned int io_exit = 0; +static unsigned int force_exit = 0; +static unsigned int num_q = 0; +static unsigned int pkt_sz = 0; +static unsigned int num_pkts; +static unsigned int tsecs = 0; +struct io_info *info = NULL; +static char cfg_name[20]; +static unsigned int pci_bus = 0; +static unsigned int pci_dev = 0; +unsigned int num_thrds = 0; +unsigned int num_thrds_per_q = 1; +int shmid; +int base_pid; +enum q_mode mode; +enum q_dir dir; +unsigned int num_pf = 0; +unsigned int pf_start = 0; +unsigned int q_start = 0; +unsigned int idx_rngsz = 0; +unsigned int idx_tmr = 0; +unsigned int idx_cnt = 0; +unsigned int pfetch_en = 0; +unsigned int cmptsz = 0; +unsigned int no_memcpy = 1; +char trigmode[10]; +char reg_dump[REG_DUMP_CMD_LEN]; +char pci_dump[PCI_DUMP_CMD_LEN]; +unsigned int dump_en = 0; +static struct timespec g_ts_start; +static unsigned char *q_lst_stop = NULL; +int q_lst_stop_mid; +int *child_pid_lst = NULL; +#if THREADS_SET_CPU_AFFINITY +unsigned int num_processors = 1; +#endif +#if DATA_VALIDATION +unsigned short valid_data[2*1024]; +#endif + +static void clear_events(struct io_info *_info, struct list_head *node); +static int setup_thrd_env(struct io_info *_info, unsigned char is_new_fd); +static int setup_pf_env(struct io_info *_info); + +static int arg_read_int(char *s, uint32_t *v) +{ + char *p = NULL; + + + *v = strtoul(s, &p, 0); + if (*p && (*p != '\n') && !isblank(*p)) { + printf("Error:something not right%s %s %s",s, p, isblank(*p)? "true": "false"); + return -EINVAL; + } + return 0; +} + +static void dump_thrd_info(struct io_info *_info) { + unsigned int i; + + printf("q_name = %s\n", info->q_name); + printf("dir = %u\n", _info->dir); + printf("mode = %u\n", _info->mode); + printf("idx_cnt = %u\n", _info->idx_cnt); + printf("idx_rngsz = %u\n", _info->idx_rngsz); + printf("idx_tmr = %u\n", _info->idx_tmr); + printf("pf = %x\n", _info->pf); + printf("qid = %u\n", _info->qid); + printf("fd = %u\n", _info->fd); + printf("trig_mode = %s\n", _info->trig_mode); + printf("q_ctrl = %u\n", _info->q_ctrl); + printf("q_added = %u\n", _info->q_added); + printf("q_started = %u\n", _info->q_started); +#if THREADS_SET_CPU_AFFINITY + printf("cpu = %u\n", _info->cpu); +#endif +} + +struct dma_meminfo { + void *memptr; + unsigned int num_blks; +}; + +#define USE_MEMPOOL + +struct mempool_handle { + void *mempool; + unsigned int mempool_blkidx; + unsigned int mempool_blksz; + unsigned int total_memblks; + struct dma_meminfo *mempool_info; +#ifdef DEBUG + unsigned int id; + unsigned int loop; +#endif +}; + +static struct mempool_handle ctxhandle; +static struct mempool_handle iocbhandle; +static struct mempool_handle datahandle; + +static void mempool_create(struct mempool_handle *mpool, unsigned int entry_size, unsigned int max_entries) +{ +#ifdef USE_MEMPOOL + if (posix_memalign((void **)&mpool->mempool, DEFAULT_PAGE_SIZE, + max_entries * (entry_size + sizeof(struct dma_meminfo)))) { + printf("OOM\n"); + exit(1); + } + mpool->mempool_info = (struct dma_meminfo *)(((char *)mpool->mempool) + (max_entries * entry_size)); +#endif + mpool->mempool_blksz = entry_size; + mpool->total_memblks = max_entries; + mpool->mempool_blkidx = 0; +} + +static void mempool_free(struct mempool_handle *mpool) +{ +#ifdef USE_MEMPOOL + free(mpool->mempool); + mpool->mempool = NULL; +#endif +} + +static void *dma_memalloc(struct mempool_handle *mpool, unsigned int num_blks) +{ + unsigned int _mempool_blkidx = mpool->mempool_blkidx; + unsigned int tmp_blkidx = _mempool_blkidx; + unsigned int max_blkcnt = tmp_blkidx + num_blks; + unsigned int i, avail = 0; + void *memptr = NULL; + char *mempool = mpool->mempool; + struct dma_meminfo *_mempool_info = mpool->mempool_info; + unsigned int _total_memblks = mpool->total_memblks; + +#ifdef USE_MEMPOOL + if (max_blkcnt > _total_memblks) { + tmp_blkidx = 0; + max_blkcnt = num_blks; + } + for (i = tmp_blkidx; (i < _total_memblks) && (i < max_blkcnt); i++) { + if (_mempool_info[i].memptr) { /* occupied blks ahead */ + i += _mempool_info[i].num_blks; + max_blkcnt = i + num_blks; + avail = 0; + tmp_blkidx = i; + } else + avail++; + if (max_blkcnt > _total_memblks) { /* reached the end of mempool. circle through*/ + if (num_blks > _mempool_blkidx) return NULL; /* Continuous num_blks not available */ + i = 0; + avail = 0; + max_blkcnt = num_blks; + tmp_blkidx = 0; + } + } + if (avail < num_blks) { /* no required available blocks */ + return NULL; + } + + memptr = &(mempool[tmp_blkidx * mpool->mempool_blksz]); + _mempool_info[tmp_blkidx].memptr = memptr; + _mempool_info[tmp_blkidx].num_blks = num_blks; + mpool->mempool_blkidx = tmp_blkidx + num_blks; +#else + memptr = calloc(num_blks, mpool->mempool_blksz); +#endif + + return memptr; +} + +static void dma_free(struct mempool_handle *mpool, void *memptr) +{ +#ifdef USE_MEMPOOL + struct dma_meminfo *_meminfo = mpool->mempool_info; + unsigned int _total_memblks = mpool->total_memblks; + unsigned int idx; + + if (!memptr) return; + + idx = (memptr - mpool->mempool)/mpool->mempool_blksz; +#ifdef DEBUG + if (idx >= _total_memblks) { + printf("Asserting: %u:Invalid memory index %u acquired\n", mpool->id, idx); + while(1); + } +#endif + + _meminfo[idx].num_blks = 0; + _meminfo[idx].memptr = NULL; +#else + free(memptr); +#endif +} + +static void create_thread_info(void) +{ + unsigned int base = 0; + unsigned int dir_factor = 1; + unsigned int q_ctrl = 1; + unsigned int i, j, k; + struct io_info *_info; + int last_fd = -1; + int s; + unsigned char is_new_fd = 1; + char reg_cmd[100] = {'\0'}; +#if THREADS_SET_CPU_AFFINITY + int h2c_cpu = 0; + int max_h2c_cpu = (num_processors / 2); + int c2h_cpu = max_h2c_cpu; + int max_c2h_cpu = (num_processors / 2) + ((num_processors % 2) ? 1 : 0); +#endif + + if (dir == Q_DIR_BI) + dir_factor = 2; + if ((shmid = shmget(IPC_PRIVATE, num_thrds * sizeof(struct io_info), IPC_CREAT | 0666)) < 0) + { + perror("smget returned -1\n"); + error(-1, errno, " "); + exit(-1); + } + if ((q_lst_stop_mid = shmget(IPC_PRIVATE, dir_factor * num_q * num_pf, IPC_CREAT | 0666)) < 0) + { + perror("smget returned -1\n"); + error(-1, errno, " "); + exit(-1); + } + if ((q_lst_stop = (unsigned char *) shmat(q_lst_stop_mid, NULL, 0)) == (unsigned char *) -1) { + perror("Process shmat returned NULL\n"); + error(-1, errno, " "); + exit(1); + } + memset(q_lst_stop, 0 , num_q); + if (shmdt(q_lst_stop) == -1) { + perror("shmdt returned -1\n"); + error(-1, errno, " "); + } + if ((_info = (struct io_info *) shmat(shmid, NULL, 0)) == (struct io_info *) -1) { + perror("Process shmat returned NULL\n"); + error(-1, errno, " "); + } + prep_pci_dump(); + prep_reg_dump(); + if ((mode == Q_MODE_ST) && (dir != Q_DIR_H2C)) { + snprintf(reg_cmd, 100, "dmactl qdma%05x reg write bar 2 0x%x %d", + (pci_bus << 12) | (pci_dev << 4) | pf_start, 0x50, + cmptsz/* | QDMA_UL_DROP_ENABLE*/); + system(reg_cmd); + memset(reg_cmd, '\0', 100); + snprintf(reg_cmd, 100, "dmactl qdma%05x reg write bar 2 0x%x %d", + (pci_bus << 12) | (pci_dev << 4) | pf_start, 0x90, pkt_sz); + printf("%s\n", reg_cmd); + system(reg_cmd); + usleep(1000); + memset(reg_cmd, '\0', 100); + } + + base = 0; + for (k = 0; k < num_pf; k++) { + for (i = 0 ; i < num_q; i++) { + q_ctrl = 1; +#if THREADS_SET_CPU_AFFINITY + if (h2c_cpu >= max_h2c_cpu) + h2c_cpu = 0; + if (c2h_cpu >= (max_h2c_cpu + max_h2c_cpu)) + c2h_cpu = max_h2c_cpu; +#endif + for (j = 0; j < num_thrds_per_q; j++) { + is_new_fd = 1; + if ((dir == Q_DIR_H2C) || (dir == Q_DIR_BI)) { + snprintf(_info[base].q_name, 20, "qdma%02x%02x%01x-%s-%d", pci_bus, pci_dev, + pf_start+k, (mode == Q_MODE_MM) ? "MM" : "ST", q_start + i); + _info[base].dir = Q_DIR_H2C; + _info[base].mode = mode; + _info[base].idx_rngsz = idx_rngsz; + _info[base].pf = (pci_bus << 12) | (pci_dev << 4) | (pf_start + k); + _info[base].qid = q_start + i; + _info[base].q_ctrl = q_ctrl; + _info[base].fd = last_fd; + _info[base].pkt_burst = num_pkts; + _info[base].pkt_sz = pkt_sz; +#if THREADS_SET_CPU_AFFINITY + _info[base].cpu = h2c_cpu; +#endif + sem_init(&_info[base].llock, 0, 1); + if (q_ctrl != 0) { + last_fd = setup_thrd_env(&_info[base], is_new_fd); + } + _info[base].thread_id = base; +// dump_thrd_info(&_info[base]); + base++; + is_new_fd = 0; + } + if (dir != Q_DIR_H2C) + { + snprintf(_info[base].q_name, 20, "qdma%02x%02x%01x-%s-%d", pci_bus, pci_dev, + pf_start+k, (mode == Q_MODE_MM) ? "MM" : "ST", q_start + i); + _info[base].dir = Q_DIR_C2H; + _info[base].mode = mode; + _info[base].idx_rngsz = idx_rngsz; + _info[base].pf = (pci_bus << 12) | (pci_dev << 4) | (pf_start + k); + _info[base].qid = q_start + i; + _info[base].q_ctrl = q_ctrl; + _info[base].pkt_burst = num_pkts; + _info[base].pkt_sz = pkt_sz; +#if THREADS_SET_CPU_AFFINITY + _info[base].cpu = c2h_cpu; +#endif + if (_info[base].mode == Q_MODE_ST) { + _info[base].pfetch_en = pfetch_en; + _info[base].idx_cnt = idx_cnt; + _info[base].idx_tmr = idx_tmr; + _info[base].cmptsz = cmptsz; + strncpy(_info[base].trig_mode, trigmode, 10); + } + sem_init(&_info[base].llock, 0, 1); + _info[base].fd = last_fd; + if (q_ctrl != 0) { + last_fd = setup_thrd_env(&_info[base], is_new_fd); + } + _info[base].thread_id = base; +// dump_thrd_info(&_info[base]); + base++; + } + q_ctrl = 0; + } +#if THREADS_SET_CPU_AFFINITY + h2c_cpu++; + c2h_cpu++; +#endif + } + } + if ((mode == Q_MODE_ST) && (dir != Q_DIR_H2C)) { + snprintf(reg_cmd, 100, "dmactl qdma%05x reg write bar 2 0x%x %d", + (pci_bus << 12) | (pci_dev << 4) | pf_start, 0x08, + QDMA_UL_IMM_DUMP_C2H_DATA | QDMA_UL_IMM_DUMP_CMPT_FIFO/* | QDMA_UL_DROP_ENABLE*/); + system(reg_cmd); + memset(reg_cmd, '\0', 100); + usleep(1000); + } + if (shmdt(_info) == -1) { + perror("shmdt returned -1\n"); + error(-1, errno, " "); + } +} + +static void parse_config_file(const char *cfg_fname) +{ + char *linebuf = NULL; + char *realbuf; + FILE *fp; + size_t linelen = 0; + size_t numread; + size_t numblanks; + unsigned int linenum = 0; + char *config, *value; + unsigned int dir_factor = 1; + + fp = fopen(cfg_fname, "r"); + if (fp == NULL) + exit(EXIT_FAILURE); + + while ((numread = getline(&linebuf, &linelen, fp)) != -1) { + numread--; + linenum++; + linebuf = strip_comments(linebuf); + realbuf = strip_blanks(linebuf, &numblanks); + linelen -= numblanks; + if (0 == linelen) + continue; + config = strtok(realbuf, "="); + value = strtok(NULL, "="); + if (!strncmp(config, "mode", 4)) { + if (!strncmp(value, "mm", 2)) + mode = Q_MODE_MM; + else if(!strncmp(value, "st", 2)) + mode = Q_MODE_ST; + else { + printf("Error: Unkown mode"); + goto prase_cleanup; + } + } else if (!strncmp(config, "dir", 3)) { + if (!strncmp(value, "h2c", 3)) + dir = Q_DIR_H2C; + else if(!strncmp(value, "c2h", 3)) + dir = Q_DIR_C2H; + else if(!strncmp(value, "bi", 2)) + dir = Q_DIR_BI; + else { + printf("Error: Unkown dir"); + goto prase_cleanup; + } + } else if (!strncmp(config, "name", 3)) { + copy_value(value, cfg_name, 20); + } else if (!strncmp(config, "pf_range", 8)) { + char *pf_range_start = strtok(value, ":"); + char *pf_range_end = strtok(NULL, ":"); + unsigned int start; + unsigned int end; + if (arg_read_int(pf_range_start, &start)) { + printf("Error: Invalid pf range start:%s\n", pf_range_start); + goto prase_cleanup; + } + if (arg_read_int(pf_range_end, &end)) { + printf("Error: Invalid pf range end:%s\n", pf_range_end); + goto prase_cleanup; + } + + pf_start = start; + num_pf = end - start + 1; + } else if (!strncmp(config, "q_range", 7)) { + char *q_range_start = strtok(value, ":"); + char *q_range_end = strtok(NULL, ":"); + unsigned int start; + unsigned int end; + if (arg_read_int(q_range_start, &start)) { + printf("Error: Invalid q range start:%s\n", q_range_start); + goto prase_cleanup; + } + if (arg_read_int(q_range_end, &end)) { + printf("Error: Invalid q range end:%s\n", q_range_end); + goto prase_cleanup; + } + + q_start = start; + num_q = end - start + 1; + } else if (!strncmp(config, "rngidx", 6)) { + if (arg_read_int(value, &idx_rngsz)) { + printf("Error: Invalid idx_rngsz:%s\n", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "tmr_idx", 7)) { + if (arg_read_int(value, &idx_tmr)) { + printf("Error: Invalid idx_tmr:%s\n", value); + goto prase_cleanup; + } + } + if (!strncmp(config, "cntr_idx", 8)) { + if (arg_read_int(value, &idx_cnt)) { + printf("Error: Invalid idx_cnt:%s\n", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "pfetch_en", 9)) { + if (arg_read_int(value, &pfetch_en)) { + printf("Error: Invalid pfetch_en:%s\n", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "cmptsz", 5)) { + if (arg_read_int(value, &cmptsz)) { + printf("Error: Invalid cmptsz:%s\n", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "dump_en", 5)) { + if (arg_read_int(value, &dump_en)) { + printf("Error: Invalid dump_en:%s\n", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "trig_mode", 9)) { + copy_value(value, trigmode, 10); + } else if (!strncmp(config, "runtime", 9)) { + if (arg_read_int(value, &tsecs)) { + printf("Error: Invalid tsecs:%s\n", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "num_threads", 11)) { + if (arg_read_int(value, &num_thrds_per_q)) { + printf("Error: Invalid num_threads:%s\n", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "pkt_sz", 6)) { + if (arg_read_int(value, &pkt_sz)) { + printf("Error: Invalid pkt_sz:%s\n", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "num_pkt", 7)) { + if (arg_read_int(value, &num_pkts)) { + printf("Error: Invalid io_sz:%s\n", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "no_memcpy", 9)) { + if (arg_read_int(value, &no_memcpy)) { + printf("Error: Invalid io_sz:%s\n", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "pci_bus", 7)) { + char *p; + + pci_bus = strtoul(value, &p, 16); + if (*p && (*p != '\n')) { + printf("Error: bad parameter \"%s\", integer expected", value); + goto prase_cleanup; + } + } else if (!strncmp(config, "pci_dev", 7)) { + char *p; + + pci_dev = strtoul(value, &p, 16); + if (*p && (*p != '\n')) { + printf("Error: bad parameter \"%s\", integer expected", value); + goto prase_cleanup; + } + } + } + fclose(fp); + + if (!pci_bus && !pci_dev) { + printf("Error: PCI bus information not provided\n"); + exit(1); + } + if (dir == Q_DIR_BI) + dir_factor = 2; + num_thrds = num_pf * num_q * dir_factor * num_thrds_per_q; + create_thread_info(); + return; + /*dump_thrd_info(); + exit(1);*/ +prase_cleanup: + fclose(fp); +} + +#define MAX_AIO_EVENTS 65536 + +static void list_add_tail(struct io_info *_info, struct list_head *node) +{ + sem_wait(&_info->llock); + if (_info->head == NULL) { + _info->head = node; + _info->tail = node; + } else { + _info->tail->next = node; + _info->tail = node; + } +#ifdef DEBUG + _info->total_nodes++; +#endif + sem_post( &_info->llock); +} + +static void list_add_head(struct io_info *_info, struct list_head *node) +{ + sem_wait(&_info->llock); + node->next = _info->head; + if (_info->head == NULL) { + _info->tail = node; + } + _info->head = node; + sem_post( &_info->llock); +} + +static struct list_head *list_pop(struct io_info *_info) +{ + struct list_head *node = NULL; + + sem_wait(&_info->llock); + node = _info->head; + if (_info->head == _info->tail) + _info->tail = NULL; + + if (node) + _info->head = node->next; + + sem_post(&_info->llock); + + return node; +} + +static void list_free(struct io_info *_info) +{ + struct list_head *node = NULL; + struct list_head *prev_node = NULL; + unsigned int i; + + sem_wait(&_info->llock); +#ifdef DEBUG + printf("Need to free %llu nodes in thrd%u\n", _info->total_nodes - _info->freed_nodes, _info->thread_id); +#endif + node = _info->head; + + while (node != NULL) { + clear_events(_info, node); + io_destroy(node->ctxt); + prev_node = node; + node = node->next; + dma_free(&ctxhandle, prev_node); +#ifdef DEBUG + _info->freed_nodes++; +#endif + } + sem_post(&_info->llock); +} + +/* Subtract timespec t2 from t1 + * + * Both t1 and t2 must already be normalized + * i.e. 0 <= nsec < 1000000000 + */ +static int timespec_check(struct timespec *t) +{ + if ((t->tv_nsec < 0) || (t->tv_nsec >= 1000000000)) + return -1; + return 0; + +} + +void timespec_sub(struct timespec *t1, struct timespec *t2) +{ + if (timespec_check(t1) < 0) { + fprintf(stderr, "invalid time #1: %lld.%.9ld.\n", + (long long)t1->tv_sec, t1->tv_nsec); + return; + } + if (timespec_check(t2) < 0) { + fprintf(stderr, "invalid time #2: %lld.%.9ld.\n", + (long long)t2->tv_sec, t2->tv_nsec); + return; + } + t1->tv_sec -= t2->tv_sec; + t1->tv_nsec -= t2->tv_nsec; + if (t1->tv_nsec >= 1000000000) { + t1->tv_sec++; + t1->tv_nsec -= 1000000000; + } else if (t1->tv_nsec < 0) { + t1->tv_sec--; + t1->tv_nsec += 1000000000; + } +} + +static void clear_events(struct io_info *_info, struct list_head *node) { + struct io_event *events = NULL; + int num_events = 0; + unsigned int i, j, bufcnt; + struct timespec ts_cur = {1, 0}; + + if (node->max_events <= node->completed_events) + return; +#ifdef DEBUG + printf("Thrd%u: Need to clear %u/%u events in node %p\n", + _info->thread_id, node->max_events - node->completed_events, + node->max_events, node); +#endif + events = calloc(node->max_events - node->completed_events, sizeof(struct io_event)); + if (events == NULL) { + printf("OOM\n"); + return; + } + do { + num_events = io_getevents(node->ctxt, 1, + node->max_events - node->completed_events, events, + &ts_cur); + for (j = 0; (num_events > 0) && (j < num_events); j++) { + struct iocb *iocb = (struct iocb *)events[j].obj; + struct iovec *iov; + + node->completed_events++; + if (!iocb) { + printf("Error: Invalid IOCB from events\n"); + continue; + } + + iov = (struct iovec *)iocb->u.c.buf; + + for (bufcnt = 0; bufcnt < iocb->u.c.nbytes; bufcnt++) + dma_free(&datahandle, iov[bufcnt].iov_base); + dma_free(&iocbhandle, iocb); + } + } while ((num_events > 0) && (node->max_events > node->completed_events)); + + free(events); +} + +static void *event_mon(void *argp) +{ + struct io_info *_info = (struct io_info *)argp; + unsigned int i, j, bufcnt; + struct io_event *events = NULL; + int num_events = 0; + int ret; + struct timespec ts_cur = {0, 0}; +#if DATA_VALIDATION + unsigned short *rcv_data; + unsigned int k; +#endif + + events = calloc(MAX_AIO_EVENTS, sizeof(struct io_event)); + if (events == NULL) { + printf("OOM\n"); + exit(1); + } + while ((0 == io_exit) && (0 == force_exit)) { + struct list_head *node = list_pop(_info); + + if (!node) + continue; + + memset(events, 0, MAX_AIO_EVENTS * sizeof(struct io_event)); + do { + num_events = io_getevents(node->ctxt, 1, + node->max_events - node->completed_events, events, + &ts_cur); + for (j = 0; (num_events > 0) && (j < num_events); j++) { + struct iocb *iocb = (struct iocb *)events[j].obj; + struct iovec *iov = NULL; + + if (!iocb) { + printf("Error: Invalid IOCB from events\n"); + continue; + } + _info->num_req_completed += events[j].res; + + iov = (struct iovec *)(iocb->u.c.buf); + if (!iov) { + printf("invalid buffer\n"); + continue; + } +#if DATA_VALIDATION + rcv_data = iov[0].iov_base; + for (k = 0; k < (iov[0].iov_len/2) && events[j].res && !(events[j].res2); k += 8) { + printf("%04x: %04x %04x %04x %04x %04x %04x %04x %04x\n", k, + rcv_data[k], rcv_data[k+1], rcv_data[k+2], + rcv_data[k+3], rcv_data[k+4], rcv_data[k+5], + rcv_data[k+6], rcv_data[k+7]); + } +#endif + for (bufcnt = 0; (bufcnt < iocb->u.c.nbytes) && iov; bufcnt++) + dma_free(&datahandle, iov[bufcnt].iov_base); + dma_free(&iocbhandle, iocb); + } + if (num_events > 0) + node->completed_events += num_events; + if (node->completed_events >= node->max_events) { + io_destroy(node->ctxt); + dma_free(&ctxhandle, node); + break; + } + } while ((0 == io_exit) && (0 == force_exit)); + + if (node->completed_events < node->max_events) + list_add_head(_info, node); + } + free(events); +#ifdef DEBUG + printf("Exiting evt_thrd: %d\n", _info->thread_id); +#endif + + return NULL; +} + +static void io_proc_cleanup(struct io_info *_info) +{ + unsigned int i, j = 0; + int s; + unsigned int q_offset; + unsigned int dir_factor = (dir == Q_DIR_BI) ? 1 : 2; + unsigned int q_lst_idx_base; + unsigned char is_q_stop = (_info->q_ctrl && _info->q_started); + char reg_cmd[100] = {'\0'}; + + io_exit = 1; + pthread_join(_info->evt_id, NULL); + + q_offset = (_info->dir == Q_DIR_H2C)? 0 : num_q; + if (dir != Q_DIR_BI) + q_offset = 0; + q_lst_idx_base = ((((_info->pf & 0x0000F) - pf_start) * num_q * dir_factor) + q_offset); + _info->q_wait_for_stop = 1; + + while (is_q_stop) { + j = 0; + for (i = 0; i < num_thrds; i++) { + if ((info[i].pf != _info->pf) || + (info[i].qid != _info->qid) || + (info[i].dir != _info->dir)) + continue; + if (info[i].q_wait_for_stop) + j++; + else + break; + } + if (j != num_thrds_per_q) + sched_yield(); + else + break; + } + if ((mode == Q_MODE_ST) && (dir != Q_DIR_H2C)) { + do { + for (i = 0; i < num_thrds; i++) { + if (!info[i].q_wait_for_stop) + break; + } + if (i == num_thrds) + break; + } while (1); + } + if (is_q_stop) { + if (dump_en) { + s = system(_info->q_dump); + if (s != 0) { + printf("Failed: %s\nerrcode = %d\n", + _info->q_dump, s); + } + } + printf("%s\n", _info->q_stop); + s = system(_info->q_stop); + if (s != 0) { + printf("Failed: %s\nerrcode = %d\n",_info->q_stop, s); + } + snprintf(reg_cmd, 100, "dmactl qdma%05x reg write bar 2 0x%x %d", + _info->pf, 0x08, QDMA_UL_STOP_C2H_TRANSFER | QDMA_UL_STOP_CMPT_TRANSFER); + system(reg_cmd); + _info->q_started = 0; + q_lst_stop[q_lst_idx_base + _info->qid - q_start] = 1; + } + while (!(q_lst_stop[q_lst_idx_base + _info->qid - q_start])) { + sched_yield(); + } + if (shmdt(q_lst_stop) == -1) { + perror("shmdt returned -1\n"); + error(-1, errno, " "); + } + list_free(_info); + + mempool_free(&iocbhandle); + mempool_free(&ctxhandle); + mempool_free(&datahandle); +} + +static void *io_thread(void *argp) +{ + struct io_info *_info = (struct io_info *)argp; + struct iocb *iocb; + int ret; + int s; + unsigned int max_io = MAX_AIO_EVENTS; + unsigned int cnt = 0; + pthread_attr_t attr; + unsigned int io_sz = _info->pkt_sz; + unsigned int burst_cnt = _info->pkt_burst; + unsigned int num_desc; + unsigned int max_reqs; + struct iocb *io_list[1]; + + if ((_info->mode == Q_MODE_ST) && (_info->dir == Q_DIR_C2H)) { + io_sz = _info->pkt_burst * _info->pkt_sz; + burst_cnt = 1; + } + num_desc = (io_sz + DEFAULT_PAGE_SIZE - 1) >> PAGE_SHIFT; + max_reqs = (64 << idx_rngsz); + mempool_create(&datahandle, num_desc*DEFAULT_PAGE_SIZE, max_reqs + (burst_cnt * num_desc)); + mempool_create(&ctxhandle, sizeof(struct list_head), max_reqs); + mempool_create(&iocbhandle, sizeof(struct iocb) + (burst_cnt * sizeof(struct iovec)), max_reqs + (burst_cnt * num_desc)); +#ifdef DEBUG + ctxhandle.id = 1; + datahandle.id = 0; + iocbhandle.id = 2; +#endif + s = pthread_attr_init(&attr); + if (s != 0) + printf("pthread_attr_init failed\n"); + if (pthread_create(&_info->evt_id, &attr, event_mon, _info)) + exit(1); + + do { + struct list_head *node = NULL; + struct timespec ts_cur; + + if (tsecs) { + ret = clock_gettime(CLOCK_MONOTONIC, &ts_cur); + timespec_sub(&ts_cur, &g_ts_start); + if (ts_cur.tv_sec >= tsecs) + break; + } + node = dma_memalloc(&ctxhandle, 1); + if (!node) { + continue; + } + ret = io_queue_init(max_io, &node->ctxt); + if (ret != 0) { + printf("Error: io_setup error %d on %u\n", ret, _info->thread_id); + dma_free(&ctxhandle, node); + sched_yield(); + continue; + } + cnt = 0; + node->max_events = max_io; + list_add_tail(_info, node); + do { + struct iovec *iov = NULL; + unsigned int iovcnt; + if (tsecs) { + ret = clock_gettime(CLOCK_MONOTONIC, &ts_cur); + timespec_sub(&ts_cur, &g_ts_start); + if (ts_cur.tv_sec >= tsecs) { + node->max_events = cnt; + break; + } + } + + if (((_info->num_req_submitted - _info->num_req_completed) * + num_desc) > max_reqs) { + sched_yield(); + continue; + } + + io_list[0] = dma_memalloc(&iocbhandle, 1); + if (io_list[0] == NULL) { + if (cnt) { + node->max_events = cnt; + break; + } + else { + sched_yield(); + continue; + } + } + iov = (struct iovec *)(io_list[0] + 1); + for (iovcnt = 0; iovcnt < burst_cnt; iovcnt++) { + iov[iovcnt].iov_base = dma_memalloc(&datahandle, 1); + if (iov[iovcnt].iov_base == NULL) + break; + iov[iovcnt].iov_len = io_sz; + } + if (iovcnt == 0) { + dma_free(&iocbhandle, io_list[0]); + continue; + } + if (_info->dir == Q_DIR_H2C) { + io_prep_pwritev(io_list[0], + _info->fd, + iov, + iovcnt, + 0); + } else { + io_prep_preadv(io_list[0], + _info->fd, + iov, + iovcnt, + 0); + } + + ret = io_submit(node->ctxt, 1, io_list); + if(ret != 1) { + printf("Error: io_submit error:%d on %s for %u\n", ret, _info->q_name, cnt); + for (; iovcnt > 0; iovcnt--) + dma_free(&datahandle, iov[iovcnt].iov_base); + dma_free(&iocbhandle, io_list[0]); + node->max_events = cnt; + break; + } else { + cnt++; + _info->num_req_submitted += iovcnt; + } + } while (tsecs && !force_exit && (cnt < max_io)); + } while (tsecs && !force_exit); + + io_proc_cleanup(_info); + + return NULL; +} + +static void prep_q_add(struct io_info *_info) +{ + memset(_info->q_add, '\0', Q_ADD_CMD_LEN); + snprintf(_info->q_add, Q_ADD_CMD_LEN, "dmactl qdma%05x q add idx %d mode %s dir %s", + _info->pf, _info->qid, (_info->mode == Q_MODE_MM) ? "mm" : "st", + (_info->dir == Q_DIR_H2C) ? "h2c" : "c2h"); +} + +static void prep_q_start(struct io_info *_info) +{ + int nwr; + memset(_info->q_start, '\0', Q_START_CMD_LEN); + if ((_info->dir == Q_DIR_C2H) && (_info->mode == Q_MODE_ST)) { + nwr = snprintf(_info->q_start, Q_START_CMD_LEN, "dmactl qdma%05x q start idx %d dir %s idx_ringsz %d cmptsz %u idx_tmr %d idx_cntr %d trigmode %s", + _info->pf, _info->qid, (_info->dir == Q_DIR_H2C) ? "h2c" : "c2h", + _info->idx_rngsz, _info->cmptsz, _info->idx_tmr, _info->idx_cnt, _info->trig_mode); + if (_info->pfetch_en) + nwr = sprintf(_info->q_start + nwr, " pfetch_en"); + } else { + snprintf(_info->q_start, Q_START_CMD_LEN, "dmactl qdma%05x q start idx %d dir %s idx_ringsz %d", + _info->pf, _info->qid, (_info->dir == Q_DIR_H2C) ? "h2c" : "c2h", + _info->idx_rngsz); + } +} + +static void prep_q_stop(struct io_info *_info) +{ + memset(_info->q_stop, '\0', Q_STOP_CMD_LEN); + snprintf(_info->q_stop, Q_STOP_CMD_LEN, "dmactl qdma%05x q stop idx %d dir %s", + _info->pf, _info->qid, (_info->dir == Q_DIR_H2C) ? "h2c" : "c2h"); +} + +static void prep_q_del(struct io_info *_info) +{ + memset(_info->q_del, '\0', Q_DEL_CMD_LEN); + snprintf(_info->q_del, Q_DEL_CMD_LEN, "dmactl qdma%05x q del idx %d dir %s", + _info->pf, _info->qid, (_info->dir == Q_DIR_H2C) ? "h2c" : "c2h"); +} + +static void prep_q_dump(struct io_info *_info) +{ + memset(_info->q_dump, '\0', Q_DEL_CMD_LEN); + snprintf(_info->q_dump, Q_DEL_CMD_LEN, "dmactl qdma%05x q dump idx %d dir %s", + _info->pf, _info->qid, (_info->dir == Q_DIR_H2C) ? "h2c" : "c2h"); +} + +static void prep_reg_dump(void) +{ + memset(reg_dump, '\0', REG_DUMP_CMD_LEN); + snprintf(reg_dump, REG_DUMP_CMD_LEN, "dmactl qdma%02x%02x%01x reg dump", pci_bus, pci_dev, pf_start); +} + +static void prep_pci_dump(void) +{ + memset(pci_dump, '\0', PCI_DUMP_CMD_LEN); + snprintf(pci_dump, PCI_DUMP_CMD_LEN, "lspci -s %02x:%02x.%01x -vvv", pci_bus, pci_dev, pf_start); +} + +static int setup_thrd_env(struct io_info *_info, unsigned char is_new_fd) +{ + int s; + int last_fd = -1; + + char node[25] = {'\0'}; + char thrd_name[50] = {'\0'}; + + prep_q_add(_info); + prep_q_start(_info); + prep_q_stop(_info); + prep_q_del(_info); + prep_q_dump(_info); + + /* add queue */ + printf("%s\n", _info->q_add); + s = system(_info->q_add); + if (s != 0) { + exit(1); + } + _info->q_added++; + + /* start queue */ + printf("%s\n", _info->q_start); + s= system(_info->q_start); + if (s != 0) { + exit(1); + } + _info->q_started++; + + if (is_new_fd) { + snprintf(node, 25, "/dev/%s", _info->q_name); + _info->fd = open(node, O_RDWR); + if (_info->fd < 0) { + printf("Error: Cannot find %s\n", node); + exit(1); + } + } + + s = ioctl(_info->fd, 0, &no_memcpy); + if (s != 0) { + printf("failed to set non memcpy\n"); + exit(1); + } + + return _info->fd; +} + +static void dump_result(unsigned long long total_io_sz) +{ + unsigned long long gig_div = ((unsigned long long)tsecs * 1000000000); + unsigned long long meg_div = ((unsigned long long)tsecs * 1000000); + unsigned long long kil_div = ((unsigned long long)tsecs * 1000); + unsigned long long byt_div = ((unsigned long long)tsecs); + + if ((total_io_sz/gig_div)) { + printf("BW = %llu.%llu GB/sec\n", (total_io_sz/gig_div), + ((total_io_sz % gig_div)/meg_div)); + } else if ((total_io_sz/meg_div)) { + printf("BW = %llu.%llu MB/sec\n", (total_io_sz/meg_div), + ((total_io_sz % meg_div)/kil_div)); + } else if ((total_io_sz/kil_div)) { + printf("BW = %llu.%llu KB/sec\n", (total_io_sz/kil_div), + ((total_io_sz % kil_div)/byt_div)); + } else + printf("BW = %llu Bytes/sec\n", (total_io_sz/byt_div)); +} + +int is_valid_fd(int fd) +{ + return fcntl(fd, F_GETFL) != -1 || errno != EBADF; +} + +static void cleanup(void) +{ + int i; + unsigned long long total_num_h2c_ios = 0; + unsigned long long total_num_c2h_ios = 0; + unsigned long long total_io_sz = 0; + int s; + + if ((io_exit == 0)) { + printf("force exit: cleaning up\n"); + force_exit = 1; + if (getpid() != base_pid) { + if (shmdt(info) == -1){ + perror("shmdt returned -1\n"); + error(-1, errno, " "); + } + if ((shmdt(q_lst_stop) == -1)) { + perror("shmdt returned -1\n"); + error(-1, errno, " "); + } + } else + for (i = 1; i < num_thrds; i++) + wait(NULL); + }/* else + printf("normal exit: cleaning up\n");*/ + + if (getpid() != base_pid) return; + + if (child_pid_lst != NULL) + free(child_pid_lst); + if (shmctl(q_lst_stop_mid, IPC_RMID, NULL) == -1) { + perror("shmctl returned -1\n"); + error(-1, errno, " "); + } + if (info == NULL) return; + + if (dump_en) { + s = system(pci_dump); + if (s != 0) { + printf("Failed: %s\nerrcode = %d\n", pci_dump, s); + } + s = system(reg_dump); + if (s != 0) { + printf("Failed: %s\nerrcode = %d\n", reg_dump, s); + } + } + for (i = 0; i < num_thrds; i++) { + if (info[i].q_ctrl && info[i].q_started) { + if (dump_en) { + s = system(info[i].q_dump); + if (s != 0) { + printf("Failed: %s\nerrcode = %d\n", + info[i].q_dump, s); + } + } + printf("%s\n", info[i].q_stop); + s = system(info[i].q_stop); + if (s != 0) { + printf("Failed: %s\nerrcode = %d\n",info[i].q_stop, s); + } + info[i].q_started = 0; + } + if ((info[i].q_ctrl != 0) && (info[i].fd > 0) && is_valid_fd(info[i].fd)) + close(info[i].fd); + if (info[i].q_ctrl && info[i].q_added) { + printf("%s\n", info[i].q_del); + s = system(info[i].q_del); + if (s != 0) { + printf("Failed: %s\nerrcode = %d\n",info[i].q_del, s); + } + info[i].q_added = 0; + } + } + + /* accumulate the statistics */ + for (i = 0; i < num_thrds; i++) { + if (info[i].dir == Q_DIR_H2C) + total_num_h2c_ios += info[i].num_req_completed; + else { + if (info[i].mode == Q_MODE_ST) + info[i].num_req_completed *= info[i].pkt_burst; + total_num_c2h_ios += info[i].num_req_completed; + } + } + if (shmdt(info) == -1){ + perror("shmdt returned -1\n"); + error(-1, errno, " "); + } + if (shmctl(shmid, IPC_RMID, NULL) == -1) { + perror("shmctl returned -1\n"); + error(-1, errno, " "); + } + + if (tsecs == 0) tsecs = 1; + if (0 != total_num_h2c_ios) { + total_io_sz = (total_num_h2c_ios*pkt_sz); + printf("WRITE: total pps = %llu", total_num_h2c_ios/tsecs); + printf(" "); + dump_result(total_io_sz); + } + if (0 != total_num_c2h_ios) { + total_io_sz = (total_num_c2h_ios*pkt_sz); + printf("READ: total pps = %llu", total_num_c2h_ios/tsecs); + printf(" "); + dump_result(total_io_sz); + } + if ((0 == total_num_h2c_ios) && (0 == total_num_c2h_ios)) + printf("No IOs happened\n"); +} + +int main(int argc, char *argv[]) +{ + int cmd_opt; + char *cfg_fname = NULL; + unsigned int i, j; + int s; + int last_fd = -1; + unsigned int aio_max_nr = 0xFFFFFFFF; + char aio_max_nr_cmd[100] = {'\0'}; + int pid; +#if THREADS_SET_CPU_AFFINITY + cpu_set_t set; +#endif + + while ((cmd_opt = getopt_long(argc, argv, "vhxc:c:", long_opts, + NULL)) != -1) { + switch (cmd_opt) { + case 0: + /* long option */ + break; + case 'c': + /* config file name */ + cfg_fname = strdup(optarg); + break; + default: + usage(argv[0]); + exit(0); + break; + } + } + if (cfg_fname == NULL) + return 1; + +#if THREADS_SET_CPU_AFFINITY + num_processors = get_nprocs_conf(); + CPU_ZERO(&set); +#endif +#if DATA_VALIDATION + for (i = 0; i < 2*1024; i++) + valid_data[i] = i; +#endif + parse_config_file(cfg_fname); + atexit(cleanup); + + snprintf(aio_max_nr_cmd, 100, "echo %u > /proc/sys/fs/aio-max-nr", aio_max_nr); + system(aio_max_nr_cmd); + + printf("dmautils(%u) threads\n", num_thrds); + child_pid_lst = calloc(num_thrds, sizeof(int)); + base_pid = getpid(); + child_pid_lst[0] = base_pid; + for (i = 1; i < num_thrds; i++) { + if (getpid() == base_pid) + child_pid_lst[i] = fork(); + else + break; + } + if ((info = (struct io_info *) shmat(shmid, NULL, 0)) == (struct io_info *) -1) { + perror("Process shmat returned NULL\n"); + error(-1, errno, " "); + exit(1); + } + if ((q_lst_stop = (unsigned char *) shmat(q_lst_stop_mid, NULL, 0)) == (unsigned char *) -1) { + perror("Process shmat returned NULL\n"); + error(-1, errno, " "); + exit(1); + } + + clock_gettime(CLOCK_MONOTONIC, &g_ts_start); + if (getpid() == base_pid) { + io_thread(&info[0]); +#if THREADS_SET_CPU_AFFINITY + for (j = 0; j < num_processors; j++) { + if (j != info[0].cpu) + CPU_SET(j, &set); + } + if (sched_setaffinity(base_pid, sizeof(set), &set) == -1) + printf("setaffinity for thrd%u failed\n", info[i].thread_id); +#endif + for(i = 1; i < num_thrds; i++) { + waitpid(child_pid_lst[i], NULL, 0); + } + free(child_pid_lst); + child_pid_lst = NULL; + } else { + info[i].pid = getpid(); +#if THREADS_SET_CPU_AFFINITY + for (j = 0; j < num_processors; j++) { + if (j != info[i].cpu) + CPU_SET(j, &set); + } + if (sched_setaffinity(getpid(), sizeof(set), &set) == -1) + printf("setaffinity for thrd%u failed\n", info[i].thread_id); +#endif + io_thread(&info[i - 1]); + if ((shmdt(info) == -1)) { + perror("shmdt returned -1\n"); + error(-1, errno, " "); + } + } + + io_exit = 1; + return 0; +} + diff --git a/QDMA/linux-kernel/tools/libaio_engine.c b/QDMA/linux-kernel/tools/libaio_engine.c new file mode 100644 index 0000000..51d8ec5 --- /dev/null +++ b/QDMA/linux-kernel/tools/libaio_engine.c @@ -0,0 +1,249 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <ctype.h> + +#include <sys/mman.h> +#include <sys/time.h> +#include <string.h> +#include "aioutility.h" + +#include <libaio.h> + +#define MSEC2NSEC 1000000 + +static void aio_completion_handler(io_context_t io_ctx, struct iocb *iocb, long res, long res2) +{ + struct aio_block *aioblock; + struct aio_job *aiojob; + struct io_jobs *iojob; + + aioblock = get_aio_block(iocb); + if (NULL == aioblock) return; + aiojob = aioblock->parent; + iojob = aiojob->iojob; + + /* Did the request complete? */ + aiojob->mask_completed |= aioblock->mask; + if (0 == res2) { + ssize_t rc; + struct timespec ts_end; + long total_time = 0; + float result; + float avg_time = 0; + + if (0 <= res) { + printf("%s iteration %d block %d completed successfully\n", + iojob->job_name, aioblock->jobitr, aioblock->block_num); + if (aiojob->mask_expected == aiojob->mask_completed) { + rc = clock_gettime(CLOCK_MONOTONIC, &ts_end); + timespec_sub(&ts_end, &(aiojob->ts_start)); + total_time += ts_end.tv_nsec; + result = ((float)(iojob->numbytes * iojob->numitr))*1000/total_time; + printf("** %s Job, total time %ld nsec, for bytes = %u, BW = %fMB/s \n", + iojob->job_name, total_time, + (iojob->numbytes * iojob->numitr), + result); + close(aiojob->fd); + verify_read(iojob); + } else + printf("Expected mask = %llx vs complete mask = %llx\n", aiojob->mask_expected, aiojob->mask_completed); + } else + printf("Error: %s job itr %d block %d completed with error\n", + iojob->job_name, aioblock->jobitr, aioblock->block_num); + } else + printf("Error: %s job itr %d block %d failed with error %ld\n", + iojob->job_name, aioblock->jobitr, + aioblock->block_num, res2); + + sem_post(&aioblock->lock); /* ready for destruction */ +} + +static bool create_naio_job(struct iocb **io_list, struct io_jobs *iojob) +{ + int fd; + unsigned int i; + struct aio_block *aioblock; /* one per block */ + struct aio_job *aiojob; /* one per job */ + ssize_t rc; + unsigned int blk_idx = 0; + unsigned int blk_num; + + fd = open(iojob->node, O_RDWR); + if (0 > fd) { + printf("Error: Opening %s node\n", iojob->node); + return false; + } + + aiojob = calloc(1, sizeof(struct aio_job)); + + iojob->aiojob = aiojob; + blk_num = get_io_job_num_blocks(iojob); + aiojob->mask_completed = 0; + aiojob->mask_expected = 0; + aiojob->iojob = iojob; + + aiojob->aio_list = (void *)io_list; + + for (i = 0; i < iojob->numitr; i++) { + unsigned int j; + + for (j = 0; j < blk_num; j++) { + struct iocb *aio_entry; + unsigned int buf_off = (i * blk_num * iojob->block_size) + (j * iojob->block_size); + unsigned int io_numbytes = iojob->block_size; + + if (j == (blk_num - 1) && + (iojob->numbytes % iojob->block_size)) + io_numbytes = (iojob->numbytes % iojob->block_size); + + aioblock = calloc(1, sizeof(struct aio_block)); + aioblock->parent = aiojob; + sem_init(&aioblock->lock, 0, 1); /* to track completion */ + aioblock->jobitr = i; + aioblock->block_num = j; + io_list[blk_idx] = calloc(1, sizeof(struct iocb)); + aio_entry = io_list[blk_idx]; + aioblock->aio_entry = io_list[blk_idx]; + + if (0 == strncmp(iojob->iotype, "read", 5)) { + io_prep_pread(aio_entry, + fd, + iojob->buf + buf_off, + io_numbytes, + 0); + } else if (0 == strncmp(iojob->iotype, "write", 4)) { + io_prep_pwrite(aio_entry, + fd, + iojob->buf + buf_off, + io_numbytes, + 0); + } else { + printf("Error: Invalid IO operation specified for %s IO job\n", + iojob->job_name); + goto ret_false; + } + + io_set_callback(aio_entry, aio_completion_handler); + + aioblock->mask = (((__u64)1) << blk_idx); + aiojob->mask_expected |= aioblock->mask; + sem_wait(&aioblock->lock); + enqueue_aio_block(aiojob, aioblock); + blk_idx++; + } + /* since all IOs are submitted at once, start time shall almost be same */ + rc = clock_gettime(CLOCK_MONOTONIC, &(aiojob->ts_start)); + } + enqueue_aio_task(aiojob); + return true; +ret_false: + if (aiojob) { + aiojob->mask_completed = aiojob->mask_expected; + cleanup_aiojob(aiojob, false); + } + + return false; +} + +void submit_naio_job(void *_iojob) +{ + struct io_jobs *iojob = (struct io_jobs *)_iojob; + struct iocb **io_list; + unsigned int numb_blks = get_io_job_num_blocks(iojob); + unsigned int total_jobs = (iojob->numitr * numb_blks); + struct io_event *events; + io_context_t io_ctxt; + int ret; + struct timespec ts_cur; + int i; + + /* setup IO job env */ + run_env_cmds(iojob->setup_tail); + + io_list = (struct iocb **)calloc(total_jobs, + sizeof(struct iocb *)); + + events = calloc(total_jobs, sizeof(struct io_event)); + + if (false == create_naio_job(io_list, iojob)) { + printf("Error: Failed to create IO job %s\n", iojob->job_name); + run_env_cmds(iojob->cleanup_tail); + return; + } + + memset(&io_ctxt, 0, sizeof(io_ctxt)); + if(io_queue_init(total_jobs, &io_ctxt)!=0){//init + printf("Error: io_setup error\n"); + return; + } + ret = io_submit(io_ctxt, total_jobs, io_list); + if(ret != total_jobs) { + printf("Error: io_submit error:%d\n", ret); + return; + } + + ret = clock_gettime(CLOCK_MONOTONIC, &ts_cur); + for (i = 0; i < total_jobs; i++) { + if (ts_cur.tv_nsec > (ts_cur.tv_nsec + (50 * MSEC2NSEC))) { + ts_cur.tv_sec += 1; + } + ts_cur.tv_nsec += (50 * MSEC2NSEC); /*50 msec/io*/ + } + if (io_getevents(io_ctxt, + total_jobs, + total_jobs, + events, + &ts_cur) == total_jobs) { + for (i = 0; i < total_jobs; i++) { + ((io_callback_t)(events[i].data))(io_ctxt, + events[i].obj, + events[i].res, + events[i].res2); + } + } else { + printf("AIO completion not received\n"); + } + io_destroy(io_ctxt); + cleanup_aio_jobs(true); +} + +void cancel_naio_job(void *_aiojob) +{ + struct aio_job *aiojob = (struct aio_job *)_aiojob; + int rc; + struct iocb *iocb; + struct aio_block *aioblock; + + aioblock = aiojob->aio_block_head; + while (1) { + if (NULL == aioblock) break; + if (aioblock->mask != (aiojob->mask_expected & + aioblock->mask)) { + iocb = (struct iocb *)aioblock->aio_entry; + + rc = io_cancel((io_context_t)aiojob->naio_ctxt, + iocb, + (struct io_event *)(aiojob->events)); + if (0 != rc) + printf("Warning: %s job block %d itr %d not cancelled. Will wait until cancelled\n", + aiojob->iojob->job_name, + aioblock->block_num, aioblock->jobitr); + sem_post(&aioblock->lock); /* ready for destruction */ + } + aioblock = aioblock->next; + } +} + diff --git a/QDMA/linux-kernel/tools/posixaio_engine.c b/QDMA/linux-kernel/tools/posixaio_engine.c new file mode 100644 index 0000000..39d54c8 --- /dev/null +++ b/QDMA/linux-kernel/tools/posixaio_engine.c @@ -0,0 +1,224 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#define _XOPEN_SOURCE 600 +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <ctype.h> +#include <signal.h> +#include <string.h> + +#include <sys/mman.h> +#include <sys/time.h> +#include <aio.h> +#include "aioutility.h" + + +static void aio_completion_handler( sigval_t sigval ) +{ + struct aiocb *req; + struct io_jobs *iojob; + struct aio_block *aioblock; + struct aio_job *aiojob; + ssize_t ret; + int req_err; + + aioblock = (struct aio_block *)(sigval.sival_ptr); + if (NULL == aioblock) return; + req = (struct aiocb *)aioblock->aio_entry; + if (NULL == aioblock->aio_entry) return; + aiojob = aioblock->parent; + iojob = aiojob->iojob; + + /* Did the request complete? */ + req_err = aio_error( req ); + aiojob->mask_completed |= aioblock->mask; + if (0 == req_err) { + ssize_t rc; + struct timespec ts_end; + long total_time = 0; + float result; + float avg_time = 0; + + ret = aio_return( req ); + + if (0 <= ret) { + printf("%s iteration %d block %d completed successfully\n", + iojob->job_name, aioblock->jobitr, aioblock->block_num); + if (aiojob->mask_expected == aiojob->mask_completed) { + rc = clock_gettime(CLOCK_MONOTONIC, &ts_end); + timespec_sub(&ts_end, &(aiojob->ts_start)); + total_time += ts_end.tv_nsec; + result = ((float)(iojob->numbytes * iojob->numitr))*1000/total_time; + printf("** %s Job, total time %ld nsec, for bytes = %u, BW = %fMB/s \n", + iojob->job_name, total_time, + (iojob->numbytes * iojob->numitr), + result); + verify_read(iojob); + } else + printf("Expected mask = %llx vs complete mask = %llx\n", aiojob->mask_expected, aiojob->mask_completed); + } else + printf("Error: %s job itr %d block %d completed with error\n", + iojob->job_name, aioblock->jobitr, aioblock->block_num); + } else + printf("Error: %s job itr %d block %d failed with error %d\n", + iojob->job_name, aioblock->jobitr, + aioblock->block_num, req_err); + + sem_post(&aioblock->lock); /* ready for destruction */ + cleanup_aio_jobs(false); +} + +static bool create_paio_job(struct aiocb **aio_list, struct io_jobs *iojob) +{ + int fd; + unsigned int i; + struct aio_block *aioblock; /* one per block */ + struct aio_job *aiojob; /* one per job */ + ssize_t rc; + unsigned int blk_idx = 0; + unsigned int blk_num; + + fd = open(iojob->node, O_RDWR); + if (0 > fd) { + printf("Error: Opening %s node\n", iojob->node); + return false; + } + aiojob = calloc(1, sizeof(struct aio_job)); + + iojob->aiojob = aiojob; + blk_num = get_io_job_num_blocks(iojob); + aiojob->mask_completed = 0; + aiojob->mask_expected = 0; + aiojob->iojob = iojob; + + aiojob->aio_list = (void *)aio_list; + + for (i = 0; i < iojob->numitr; i++) { + unsigned int j; + + for (j = 0; j < blk_num; j++) { + struct aiocb *aio_entry; + unsigned int buf_off = (i * blk_num * iojob->block_size) + (j * iojob->block_size); + unsigned int io_numbytes = iojob->block_size; + + aioblock = calloc(1, sizeof(struct aio_block)); + aioblock->parent = aiojob; + sem_init(&aioblock->lock, 0, 1); /* to track completion */ + aioblock->jobitr = i; + aioblock->block_num = j; + aio_list[blk_idx] = calloc(1, sizeof(struct aiocb)); + aio_entry = aio_list[blk_idx]; + + aioblock->aio_entry = aio_list[blk_idx]; + /* Set up the AIO request */ + aio_entry->aio_fildes = fd; + aio_entry->aio_buf = iojob->buf + buf_off; + aio_entry->aio_nbytes = io_numbytes; + + /* Link the AIO request with a thread callback */ + aio_entry->aio_sigevent.sigev_notify = SIGEV_THREAD; + aio_entry->aio_sigevent._sigev_un._sigev_thread._function = aio_completion_handler; + aio_entry->aio_sigevent._sigev_un._sigev_thread._attribute = NULL; + aio_entry->aio_sigevent.sigev_value.sival_ptr = aioblock; + + if (0 == strncmp(iojob->iotype, "write", 5)) { + aio_entry->aio_lio_opcode = LIO_WRITE; + } else if (0 == strncmp(iojob->iotype, "read", 4)) { + aio_entry->aio_lio_opcode = LIO_READ; + } else { + printf("Error: Invalid IO operation specified for %s IO job\n", + iojob->job_name); + goto ret_false; + } + sem_wait(&aioblock->lock); + aioblock->mask = (((__u64)1) << blk_idx); + aiojob->mask_expected |= aioblock->mask; + enqueue_aio_block(aiojob, aioblock); + blk_idx++; + } + /* since all IOs are submitted at once, start time shall almost be same */ + rc = clock_gettime(CLOCK_MONOTONIC, &(aiojob->ts_start)); + } + enqueue_aio_task(aiojob); + return true; +ret_false: + if (aiojob) { + aiojob->mask_completed = aiojob->mask_expected; + cleanup_aiojob(aiojob, false); + } + + return false; +} + +void submit_paio_job(void *_iojob) +{ + struct io_jobs *iojob = (struct io_jobs *)_iojob; + struct aiocb **aio_list; + unsigned int numb_blks = get_io_job_num_blocks(iojob); + unsigned int total_jobs = (iojob->numitr * numb_blks); + + printf("setting up environment for %s\n", iojob->job_name); + /* setup IO job env */ + run_env_cmds(iojob->setup_tail); + + aio_list = (struct aiocb **)calloc(total_jobs, + sizeof(struct aiocb *)); + if (false == create_paio_job(aio_list, iojob)) { + printf("\nError: Could not create %s IO job. Skipping.\n", iojob->job_name); + run_env_cmds(iojob->cleanup_tail); + } + else { + int s = 0; + int i; + + /* submit all jobs at once */ + s = lio_listio(LIO_WAIT, aio_list, total_jobs, NULL); + if (0 <= s) + printf("\nSuccessfully submitted %s IO job.\n", iojob->job_name); + else { + printf("\nError: Could not submit %s IO job.\n", + iojob->job_name); + for (i = 0; i < total_jobs; i++) + printf(" block %d - error %d.\n", + i, aio_error(aio_list[i])); + free(aio_list); + aio_list = NULL; + } + } +} + +void cancel_paio_job(void *_aiojob) +{ + struct aio_job *aiojob = (struct aio_job *)_aiojob; + int rc; + struct aiocb *iocb; + struct aio_block *aioblock; + + aioblock = aiojob->aio_block_head; + while (1) { + if (NULL == aioblock) break; + if (aioblock->mask != + (aiojob->mask_expected & + aioblock->mask)) { + iocb = (struct aiocb *)aioblock->aio_entry; + + rc = aio_cancel(aiojob->fd, iocb); + if (AIO_NOTCANCELED == rc) + printf("Warning: %s job block %d itr %d not cancelled. Will wait until cancelled\n", + aiojob->iojob->job_name, + aioblock->block_num, aioblock->jobitr); + } + aioblock = aioblock->next; + } +} diff --git a/QDMA/linux-kernel/user/Makefile b/QDMA/linux-kernel/user/Makefile new file mode 100644 index 0000000..5a3ceb9 --- /dev/null +++ b/QDMA/linux-kernel/user/Makefile @@ -0,0 +1,19 @@ +SHELL = /bin/bash + +CFLAGS += -g +#CFLAGS += -O2 -fno-inline -Wall -Wstrict-prototypes +CFLAGS += -I. -I../include +CFLAGS += $(EXTRA_FLAGS) + +DMACTL = dmactl +DMACTL_OBJS := $(patsubst %.c,%.o,$(wildcard cli/*.c)) + +all: clean dmactl + +dmactl: $(DMACTL_OBJS) + @mkdir -p -m 755 $(build_dir) + $(CC) $^ -o $(DMACTL) + @cp -f $(DMACTL) $(build_dir) + +clean: + @rm -f *.o */*.o $(DMACTL) $(build_dir)/$(DMACTL)* diff --git a/QDMA/linux-kernel/user/bash/decode_hw_ctxt.sh b/QDMA/linux-kernel/user/bash/decode_hw_ctxt.sh new file mode 100755 index 0000000..e82ebc5 --- /dev/null +++ b/QDMA/linux-kernel/user/bash/decode_hw_ctxt.sh @@ -0,0 +1,42 @@ +#!/bin/bash + +if [ $# -lt 2 ]; then + echo "$0: <w1> <w0>" + exit +fi + +w1=$1 +w0=$2 + +let "w0 = $w0 + 0" +let "w1 = $w1 + 0" + +printf '\n0x%08x 0x%08x\n\n' $w1 $w0 + +printf '\nW1 0x%08x:\n' $w1 + +let "v = ($w1 >> 15) & 0x1" +printf '[47] (W1[15]) rsvd 0x%x\n' $v + +let "v = ($w1 >> 11) & 0xF" +printf '[46:43] (W1[14:11]) fetch_pnd 0x%x\n' $v + +let "v = ($w1 >> 10) & 0x1" +printf '[42] (W1[10]) evt_pnd 0x%x\n' $v + +let "v = ($w1 >> 9) & 0x1" +printf '[41] (W1[9]) idl_stp_b 0x%x\n' $v + +let "v = ($w1 >> 8) & 0x1" +printf '[40] (W1[8]) dsc_pnd 0x%x\n' $v + +let "v = $w1 & 0xFF" +printf '[39:32] (W1[7:0]) rsvd 0x%x\n' $v + +printf '\nW0 0x%08x:\n' $w0 + +let "v = ($w0 >> 16) & 0xFFFF" +printf '[31:16] (W0[31:16] crd_use 0x%x\n' $v + +let "v = $w0 & 0xFFFF" +printf '[15:0] (W0[15:0] cidx 0x%x\n' $v diff --git a/QDMA/linux-kernel/user/bash/decode_preftch_ctxt.sh b/QDMA/linux-kernel/user/bash/decode_preftch_ctxt.sh new file mode 100755 index 0000000..5a2cf5d --- /dev/null +++ b/QDMA/linux-kernel/user/bash/decode_preftch_ctxt.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +if [ $# -lt 2 ]; then + echo "$0: <w1> <w0>" + exit +fi + +w1=$1 +w0=$2 + +let "w0 = $w0 + 0" +let "w1 = $w1 + 0" + +printf '\n0x%08x 0x%08x\n\n' $w1 $w0 + +let "v = ($w1 >> 13) & 0x1" +printf '[45] (W1[13]) valid 0x%x\n' $v + +let "v = $w1 & 0x1FFF" +let "v1 = ($w0 >> 29) & 0x7" +let "v2 = ($v << 3) | $v1" +printf '[44:29] (W1[12:0] W0[31:29]) sw_crdt 0x%x\n' $v2 + +let "v = ($w0 >> 28) & 0x1" +printf '[28] (W0[28] q_is_in_pftch 0x%x\n' $v + +let "v = ($w0 >> 27) & 0x1" +printf '[27] (W0[27] en_pftch 0x%x\n' $v + +let "v = ($w0 >> 8) & 0x3FFFF" +printf '[25:8] (W0[25:8] rsvd 0x%x\n' $v + +let "v = ($w0 >> 5) & 0x7" +printf '[7:5] (W0[7:5] port_id 0x%x\n' $v + +let "v = ($w0 >> 1) & 0xF" +printf '[4:1] (W0[4:1] buf_size_idx 0x%x\n' $v + +let "v = $w0 & 0x1" +printf '[0] (W0[0] bypass 0x%x\n' $v diff --git a/QDMA/linux-kernel/user/bash/decode_sw_ctxt.sh b/QDMA/linux-kernel/user/bash/decode_sw_ctxt.sh new file mode 100755 index 0000000..028c2bc --- /dev/null +++ b/QDMA/linux-kernel/user/bash/decode_sw_ctxt.sh @@ -0,0 +1,106 @@ +#!/bin/bash + +if [ $# -lt 5 ]; then + echo "$0: <w4> <w3> <w2> <w1> <w0>" + exit +fi + +w4=$1 +w3=$2 +w2=$3 +w1=$4 +w0=$5 + +let "w0 = $w0 + 0" +let "w1 = $w1 + 0" +let "w2 = $w2 + 0" +let "w3 = $w3 + 0" +let "w4 = $w4 + 0" + +printf '\n0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n\n' $w4 $w3 $w2 $w1 $w0 + +printf '\nW4 0x%08x:\n' $w4 + +let "v = ($w4 >> 11) & 0x1" +printf '[139] (W4[11]) int_aggr 0x%x\n' $v + +let "v = ($w4 >> 0) & 0x7FF" +printf '[138:128] (W3[10:0] dsc_base_h 0x%x\n' $v + +printf '\n[127:64] (W3,W2) dsc_base 0x%08x%08x\n' $w3 $w2 + +printf '\nW1 0x%08x:\n' $w1 + +let "v = ($w1 >> 31) & 0x1" +printf '[63] (W1[31]) is_mm 0x%x\n' $v + +let "v = ($w1 >> 30) & 0x1" +printf '[62] (W1[30]) mrkr_dis 0x%x\n' $v + +let "v = ($w1 >> 29) & 0x1" +printf '[61] (W1[29]) irq_req 0x%x\n' $v + +let "v = ($w1 >> 28) & 0x1" +printf '[60] (W1[28]) err_cmpl_status_sent 0x%x\n' $v + +let "v = ($w1 >> 26) & 0x3" +printf '[59:58] (W1[27:26] err 0x%x\n' $v + +let "v = ($w1 >> 25) & 0x1" +printf '[57] (W1[25]) irq_no_last 0x%x\n' $v + +let "v = ($w1 >> 22) & 0x7" +printf '[56:54] (W1[23:22] port_id 0x%x\n' $v + +let "v = ($w1 >> 21) & 0x1" +printf '[53] (W1[21]) irq_en 0x%x\n' $v + +let "v = ($w1 >> 20) & 0x1" +printf '[52] (W1[20]) cmpl_status_en 0x%x\n' $v + +let "v = ($w1 >> 19) & 0x1" +printf '[51] (W1[19]) mm_chn 0x%x\n' $v + +let "v = ($w1 >> 18) & 0x1" +printf '[50] (W1[18]) byp 0x%x\n' $v + +let "v = ($w1 >> 16) & 0x3" +printf '[49:48] (W1[17:16] dsc_sz 0x%x\n' $v + +let "v = ($w1 >> 12) & 0xF" +printf '[47:44] (W1[15:12] rng_sz 0x%x\n' $v + +let "v = ($w1 >> 8) & 0xF" +printf '[43:40] (W1[11:8] rsvd 0x%x\n' $v + +let "v = ($w1 >> 5) & 0x7" +printf '[39:37] (W1[7:5] fetch_max 0x%x\n' $v + +let "v = ($w1 >> 4) & 0x1" +printf '[36] (W1[4] at 0x%x\n' $v + +let "v = ($w1 >> 3) & 0x1" +printf '[35] (W1[3]) cmpl_status_acc_en 0x%x\n' $v + +let "v = ($w1 >> 2) & 0x1" +printf '[34] (W1[2]) cmpl_status_pend_chk 0x%x\n' $v + +let "v = ($w1 >> 1) & 0x1" +printf '[33] (W1[1]) fcrd_en 0x%x\n' $v + +let "v = $w1 & 0x1" +printf '[32] (W1[0]) qen 0x%x\n' $v + +printf '\nW0 0x%08x:\n' $w0 + +let "v = ($w0 >> 25) & 0x7F" +printf '[31:25] (W0[31:25] reserved 0x%x\n' $v + +let "v = ($w0 >> 17) & 0xFF" +printf '[24:17] (W0[24:17] fnc_id 0x%x\n' $v + +let "v = ($w0 >> 16) & 0x1" +printf '[16] (W0[16]) irq_arm 0x%x\n' $v + +let "v = $w0 & 0xFF" +printf '[15:0] (W0[15:0] pidx 0x%x\n' $v diff --git a/QDMA/linux-kernel/user/bash/decode_wrb_ctxt.sh b/QDMA/linux-kernel/user/bash/decode_wrb_ctxt.sh new file mode 100755 index 0000000..763a943 --- /dev/null +++ b/QDMA/linux-kernel/user/bash/decode_wrb_ctxt.sh @@ -0,0 +1,91 @@ +#!/bin/bash + +if [ $# -lt 4 ]; then + echo "$0: <w3> <w2> <w1> <w0>" + exit +fi + +w4=$1 +w3=$2 +w2=$3 +w1=$4 +w0=$5 + +let "w0 = $w0 + 0" +let "w1 = $w1 + 0" +let "w2 = $w2 + 0" +let "w3 = $w3 + 0" +let "w4 = $w4 + 0" + +printf '\n0x%08x 0x%08x 0x%08x 0x%08x 0x%08x\n\n' $w4 $w3 $w2 $w1 $w0 + +let "v = ($w4 >> 3) & 0x1" +printf '[131] (W4[3]) at 0x%x\n' $v + +let "v = ($w4 >> 2) & 0x1" +printf '[130] (W4[2]) ovf_chk_dis 0x%x\n' $v + +let "v = ($w4 >> 1) & 0x1" +printf '[129] (W4[1]) full_upd 0x%x\n' $v + +let "v = ($w4 >> 0) & 0x1" +printf '[128] (W4[0]) tmr_runnig 0x%x\n' $v + +let "v = ($w3 >> 31) & 0x1" +printf '[127] (W3[31]) user_trig_pend 0x%x\n' $v + +let "v = ($w3 >> 29) & 0xFFFF" +printf '[126:125] (W3[30:29]) err 0x%x\n' $v + +let "v = ($w3 >> 28) & 0x1" +printf '[124] (W3[28]) valid 0x%x\n' $v + +let "v = ($w3 >> 12) & 0xFFFF" +printf '[123:108] (W3[27:12]) cidx 0x%x\n' $v + +let "v = $w3 & 0xFFF" +let "v1 = ($w2 >> 28) & 0xF" +let "v2 = ($v << 4) | $v1" +printf '[107:92] (W3[11:0] W2[31:28]) pidx 0x%x\n' $v2 + +let "v = ($w2 >> 26) & 0x3" +printf '[91:90] (W2[27:26]) desc_size 0x%x\n' $v + +let "v2 = $w2 & 0x3FFFFFF" +let "v1 = ($w1 >> 6) & 0x3FFFFFF" +printf '[89:38] (W2[25:0] W1[31:6]) baddr_64 ' +printf '0x%08x ' $v2 +printf '0x%08x \n' $v1 + +let "v = ($w1 >> 0) & 0x3F" +printf '[37:32] (W0[5:0]) rsvd 0x%x\n' $v + +let "v = ($w0 >> 28) & 0xF" +printf '[31:28] (W0[31:28]) rng_sz 0x%x\n' $v + +let "v = ($w0 >> 27) & 0x1" +printf '[27] (W0[27]) color 0x%x\n' $v + +let "v = ($w0 >> 25) & 0x3" +printf '[26:25] (W0[26:25]) int_st 0x%x\n' $v + +let "v = ($w0 >> 21) & 0xF" +printf '[24:21] (W0[24:21]) timer_idx 0x%x\n' $v + +let "v = ($w0 >> 17) & 0xF" +printf '[20:17] (W0[20:17]) counter_idx 0x%x\n' $v + +let "v = ($w0 >> 13) & 0xF" +printf '[16:13] (W0[16:`3]) rsvd 0x%x\n' $v + +let "v = ($w0 >> 5) & 0xF" +printf '[12:5] (W0[12:5]) fnc_id 0x%x\n' $v + +let "v = ($w0 >> 2) & 0x7" +printf '[4:2] (W0[4:2]) trig_mode 0x%x\n' $v + +let "v = ($w0 >> 1) & 0x1" +printf '[1] (W0[1]) en_int 0x%x\n' $v + +let "v = $w0 & 0x1" +printf '[0] (W0[0]) en_stat_desc 0x%x\n' $v diff --git a/QDMA/linux-kernel/user/bash/qdma_run_test_st_vf.sh b/QDMA/linux-kernel/user/bash/qdma_run_test_st_vf.sh new file mode 100755 index 0000000..88a95ab --- /dev/null +++ b/QDMA/linux-kernel/user/bash/qdma_run_test_st_vf.sh @@ -0,0 +1,198 @@ +#!/bin/bash + +if [ -z $1 ] || [ $1 == '-h' ] +then + echo "ERROR: Invalid Command Line" + echo "Example: run_st_c2h_vf.sh pfn vfn size(in byte) num_pkt iteration" + exit +fi + +################################################ +# User Configurable Parameters +################################################ + +pfn=$1 # PF number +vfn=$2 # VF number +size=$3 # Size per payload packet +num_pkt=$4 # number of payload packet +iteration=$5 # iterations of C2H tests +num_qs=4 +logfile="loopback$1_$2.log" +infile='/root/Desktop/datafile_16bit_pattern.bin' + +if [ -z $iteration ]; then + iteration=1 +fi + +if [ ! -z $size ]; then + f_size=1 +else + f_size=0 +fi + +################################################# +# Helper Functions +################################################ + +usr_bar=1 +vf=0 +host_adr_high=4094 +mem_div=16384 +s_high=$mem_div + +function randomize_tx_params() { + #random host address between 0 to 3094 + hst_adr1=$random + let "hst_adr1 %= $host_adr_high" + hst_adr1=0; + # byte size + f1=$random + let "f1 %= 2" + if [ $f1 -eq 0 ]; then + size=$(( ($random %64) +1 )) ## for random number between 1 and 64 + else + size=$(( ($random<<15)|($random+1) )) + fi + let "size %= $s_high" + echo "size = $size" + even=$size + let "even %= 2" + if [ $even -eq 1 ];then + let "size = $size+1" + fi + + num_pkt=$(( ($RANDOM % 9) +1)) + echo " num_pkt = $num_pkt" + +} + +function queue_start() { + echo "---- Queue Start $2 ----" + dmactl qdma$1 q add idx $2 mode $3 dir h2c + dmactl qdma$1 q start idx $2 dir h2c mode $3 + dmactl qdma$1 q add idx $2 mode $3 dir c2h + dmactl qdma$1 q start idx $2 dir c2h mode $3 +} + +function cleanup_queue() { + echo "---- Queue Clean up $2 ----" + dmactl qdma$1 q stop idx $2 dir h2c mode $3 + dmactl qdma$1 q del idx $2 dir h2c mode $3 + dmactl qdma$1 q stop idx $2 dir c2h mode $3 + dmactl qdma$1 q del idx $2 dir c2h mode $3 +} + + +echo "############################# AXI-ST Start #################################" + + +for ((i=0; i< $num_qs; i++)) do + # Setup for Queues + qid=$i + hw_qid=$(($qid + $(($vfn*8)) + 128)) + dev_st_c2h="/dev/qdmavf0-ST-C2H-$qid" + dev_st_h2c="/dev/qdmavf0-ST-H2C-$qid" + out="out$qid" + loop=1 + + # Open the Queue for AXI-ST streaming interface. + queue_start vf$vf $qid st > /dev/null + + while [ "$loop" -le $iteration ] + do + # Determine if DMA is targeted @ random host address + if [ $f_size -eq 1 ]; then + hst_adr1=0 + else + randomize_tx_params + fi + + # if more packets are requested. + let "tsize= $size*$num_pkt" + + echo "" + echo "########################################################################################" + echo "############# H2C ST LOOP $loop : dev=$dev_st_h2c pfn=$pfn vfn=$vfn qid=$qid hw_qid=$hw_qid" + echo "############# transfer_size=$tsize pkt_size=$size pkt_count=$num_pkt hst_adr=$hst_adr1" + echo "########################################################################################" + + #clear match bit before each H2C ST transfer + dmactl qdmavf0 reg write bar $usr_bar 0x0c 0x01 + + + # H2C transfer + dma_to_device -d $dev_st_h2c -f $infile -s $tsize & + re=$? + + wait + + # Check match bit and QID + hwqid_match=$(dmactl qdmavf0 reg read bar $usr_bar 0x10 | grep -o '0x[0-9][0-9][0-9]') + hw_qid_hex=$(printf '%x' $hw_qid) + if [ $hwqid_match != 0x$hw_qid_hex'1' ]; then + echo "#### ERROR: QID MATCH is $hwqid_match" + re=-1 + fi + + if [ $re == 0 ]; then + echo "######################################################" + echo "############## VF H2C ST PASS QID $qid ################" + echo "######################################################" + else + echo "#### ERROR: VF H2C ST FAIL" + fi + + echo "" + echo "########################################################################################" + echo "############# C2H ST LOOP $loop : dev=$dev_st_c2h pfn=$pfn vfn=$vfn qid=$qid hw_qid=$hw_qid" + echo "############# transfer_size=$tsize pkt_size=$size pkt_count=$num_pkt hst_adr=$hst_adr1" + echo "########################################################################################" + + dmactl qdmavf0 reg write bar $usr_bar 0x0 $hw_qid # for Queue 0 + dmactl qdmavf0 reg write bar $usr_bar 0x4 $size + dmactl qdmavf0 reg write bar $usr_bar 0x20 $num_pkt #number of packets + dmactl qdmavf0 reg write bar $usr_bar 0x08 2 # Must set C2H start before starting transfer + + dma_from_device -d $dev_st_c2h -f $out -o $hst_adr1 -s $tsize & + + wait + + #Check if files is there. + if [ ! -f $out ]; then + echo " #### ERROR: Queue $qid output file does not exists ####" + echo " #### ERROR: Queue $qid output file does not exists ####" >> $logfile + cleanup_queue vf$vf $qid st + exit -1 + fi + + # check files size + filesize=$(stat -c%s "$out") + if [ $filesize -gt $tsize ]; then + echo "#### ERROR: Queue $qid output file size does not match, filesize= $filesize ####" + echo "#### ERROR: Queue $qid output file size does not match, filesize= $filesize ####" >> $logfile + cleanup_queue vf$vf $qid st + exit -1 + fi + + #compare file + cmp $out $infile -n $tsize + if [ $? -eq 1 ]; then + echo "#### Test ERROR. Queue $qid data did not match ####" + echo "#### Test ERROR. Queue $qid data did not match ####" >> $logfile + dmactl qdmavf0 q dump idx $qid mode st dir c2h + dmactl qdmavf0 reg dump + cleanup_queue vf$vf $qid st + exit -1 + else + echo "######################################################" + echo "############## VF C2H ST PASS QID $qid ################" + echo "######################################################" + fi + wait + ((loop++)) + done + cleanup_queue vf$vf $qid st > /dev/null +done +echo "########################## AXI-ST completed ###################################" +exit 0 + diff --git a/QDMA/linux-kernel/user/cli/cmd_parse.c b/QDMA/linux-kernel/user/cli/cmd_parse.c new file mode 100644 index 0000000..88d123d --- /dev/null +++ b/QDMA/linux-kernel/user/cli/cmd_parse.c @@ -0,0 +1,1201 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include <ctype.h> +#include <err.h> +#include <errno.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "cmd_parse.h" +#include "nl_user.h" +#include "version.h" + +static int read_range(int argc, char *argv[], int i, unsigned int *v1, + unsigned int *v2); + +static const char *progname; + +#define Q_ADD_ATTR_IGNORE_MASK ~((1 << QPARM_IDX) | \ + (1 << QPARM_MODE) | \ + (1 << QPARM_DIR)) +#define Q_START_ATTR_IGNORE_MASK ((1 << QPARM_MODE) | \ + (1 << QPARM_DESC) | \ + (1 << QPARM_CMPT)) +#define Q_STOP_ATTR_IGNORE_MASK ~((1 << QPARM_IDX) | \ + (1 << QPARM_DIR)) +#define Q_DEL_ATTR_IGNORE_MASK ~((1 << QPARM_IDX) | \ + (1 << QPARM_DIR)) +#define Q_DUMP_ATTR_IGNORE_MASK ~((1 << QPARM_IDX) | \ + (1 << QPARM_DIR) | \ + (1 << QPARM_DESC) | \ + (1 << QPARM_CMPT)) +#define Q_DUMP_PKT_ATTR_IGNORE_MASK ~((1 << QPARM_IDX) | \ + (1 << QPARM_DIR)) +#define Q_H2C_ATTR_IGNORE_MASK ((1 << QPARM_C2H_BUFSZ_IDX) | \ + (1 << QPARM_CMPT_TMR_IDX) | \ + (1 << QPARM_CMPT_CNTR_IDX) | \ + (1 << QPARM_CMPT_TRIG_MODE) | \ + (1 << QPARM_CMPTSZ)) + +#define Q_ADD_FLAG_IGNORE_MASK ~(XNL_F_QMODE_ST | \ + XNL_F_QMODE_MM | \ + XNL_F_QDIR_BOTH) +#define Q_START_FLAG_IGNORE_MASK (XNL_F_QMODE_ST | \ + XNL_F_QMODE_MM) +#define Q_STOP_FLAG_IGNORE_MASK ~(XNL_F_QMODE_ST | \ + XNL_F_QMODE_MM | \ + XNL_F_QDIR_BOTH) +#define Q_DEL_FLAG_IGNORE_MASK ~(XNL_F_QMODE_ST | \ + XNL_F_QMODE_MM | \ + XNL_F_QDIR_BOTH) +#define Q_DUMP_FLAG_IGNORE_MASK ~(XNL_F_QMODE_ST | \ + XNL_F_QMODE_MM | \ + XNL_F_QDIR_BOTH) +#define Q_DUMP_PKT_FLAG_IGNORE_MASK ~(XNL_F_QMODE_ST | \ + XNL_F_QMODE_MM | \ + XNL_F_QDIR_C2H) +#define Q_H2C_FLAG_IGNORE_MASK (XNL_F_C2H_CMPL_INTR_EN | \ + XNL_F_CMPL_UDD_EN) + +#ifdef ERR_DEBUG +char *qdma_err_str[qdma_errs] = { + "err_ram_sbe", + "err_ram_dbe", + "err_dsc", + "err_trq", + "err_h2c_mm_0", + "err_h2c_mm_1", + "err_c2h_mm_0", + "err_c2h_mm_1", + "err_c2h_st", + "ind_ctxt_cmd_err", + "err_bdg", + "err_h2c_st", + "poison", + "ur_ca", + "param", + "addr", + "tag", + "flr", + "timeout", + "dat_poison", + "flr_cancel", + "dma", + "dsc", + "rq_cancel", + "dbe", + "sbe", + "unmapped", + "qid_range", + "vf_access_err", + "tcp_timeout", + "mty_mismatch", + "len_mismatch", + "qid_mismatch", + "desc_rsp_err", + "eng_wpl_data_par_err", + "msi_int_fail", + "err_desc_cnt", + "portid_ctxt_mismatch", + "portid_byp_in_mismatch", + "cmpt_inv_q_err", + "cmpt_qfull_err", + "cmpt_cidx_err", + "cmpt_prty_err", + "fatal_mty_mismatch", + "fatal_len_mismatch", + "fatal_qid_mismatch", + "timer_fifo_ram_rdbe", + "fatal_eng_wpl_data_par_err", + "pfch_II_ram_rdbe", + "cmpt_ctxt_ram_rdbe", + "pfch_ctxt_ram_rdbe", + "desc_req_fifo_ram_rdbe", + "int_ctxt_ram_rdbe", + "cmpt_coal_data_ram_rdbe", + "tuser_fifo_ram_rdbe", + "qid_fifo_ram_rdbe", + "payload_fifo_ram_rdbe", + "wpl_data_par_err", + "zero_len_desc_err", + "csi_mop_err", + "no_dma_dsc_err", + "sb_mi_h2c0_dat", + "sb_mi_c2h0_dat", + "sb_h2c_rd_brg_dat", + "sb_h2c_wr_brg_dat", + "sb_c2h_rd_brg_dat", + "sb_c2h_wr_brg_dat", + "sb_func_map", + "sb_dsc_hw_ctxt", + "sb_dsc_crd_rcv", + "sb_dsc_sw_ctxt", + "sb_dsc_cpli", + "sb_dsc_cpld", + "sb_pasid_ctxt_ram", + "sb_timer_fifo_ram", + "sb_payload_fifo_ram", + "sb_qid_fifo_ram", + "sb_tuser_fifo_ram", + "sb_wrb_coal_data_ram", + "sb_int_qid2vec_ram", + "sb_int_ctxt_ram", + "sb_desc_req_fifo_ram", + "sb_pfch_ctxt_ram", + "sb_wrb_ctxt_ram", + "sb_pfch_ll_ram", + "sb_h2c_pend_fifo", + "db_mi_h2c0_dat", + "db_mi_c2h0_dat", + "db_h2c_rd_brg_dat", + "db_h2c_wr_brg_dat", + "db_c2h_rd_brg_dat", + "db_c2h_wr_brg_dat", + "db_func_map", + "db_dsc_hw_ctxt", + "db_dsc_crd_rcv", + "db_dsc_sw_ctxt", + "db_dsc_cpli", + "db_dsc_cpld", + "db_pasid_ctxt_ram", + "db_timer_fifo_ram", + "db_payload_fifo_ram", + "db_qid_fifo_ram", + "db_tuser_fifo_ram", + "db_wrb_coal_data_ram", + "db_int_qid2vec_ram", + "db_int_ctxt_ram", + "db_desc_req_fifo_ram", + "db_pfch_ctxt_ram", + "db_wrb_ctxt_ram", + "db_pfch_ll_ram", + "db_h2c_pend_fifo", +}; +#endif + +static void __attribute__((noreturn)) usage(FILE *fp) +{ + fprintf(fp, "Usage: %s [dev|qdma[vf]<N>] [operation] \n", progname); + fprintf(fp, "\tdev [operation]: system wide FPGA operations\n"); + fprintf(fp, + "\t\tlist list all qdma functions\n"); + fprintf(fp, + "\tqdma[N] [operation]: per QDMA FPGA operations\n"); + fprintf(fp, + "\t\tversion lists the Hardware and Software version\n" + "\t\tstat statistics of qdma[N] device\n" + "\t\tstat clear clear all statistics data of qdma[N} device\n" + "\t\tq list list all queues\n" + "\t\tq add idx <N> [mode <mm|st>] [dir <h2c|c2h|bi>] - add a queue\n" + "\t\t *mode default to mm\n" + "\t\t *dir default to h2c\n" + "\t\tq add list <start_idx> <num_Qs> [mode <mm|st>] [dir <h2c|c2h|bi>] - add multiple queues at once\n" + "\t\tq start idx <N> [dir <h2c|c2h|bi>] [idx_ringsz <0:15>] [idx_bufsz <0:15>] [idx_tmr <0:15>]\n" + " [idx_cntr <0:15>] [trigmode <every|usr_cnt|usr|usr_tmr|dis>] [cmptsz <0|1|2|3>] [sw_desc_sz <3>]\n" + " [desc_bypass_en] [pfetch_en] [pfetch_bypass_en] [dis_cmpl_status]\n" + " [dis_cmpl_status_acc] [dis_cmpl_status_pend_chk] [c2h_udd_en]\n" + " [cmpl_ovf_dis] [dis_fetch_credit] [dis_cmpl_status] [c2h_cmpl_intr_en] - start a single queue\n" + "\t\tq start list <start_idx> <num_Qs> [dir <h2c|c2h|bi>] [idx_bufsz <0:15>] [idx_tmr <0:15>]\n" + " [idx_cntr <0:15>] [trigmode <every|usr_cnt|usr|usr_tmr|dis>] [cmptsz <0|1|2|3>] [sw_desc_sz <3>]\n" + " [desc_bypass_en] [pfetch_en] [pfetch_bypass_en] [dis_cmpl_status]\n" + " [dis_cmpl_status_acc] [dis_cmpl_status_pend_chk] [cmpl_ovf_dis]\n" + " [dis_fetch_credit] [dis_cmpl_status] [c2h_cmpl_intr_en] - start multiple queues at once\n" + "\t\tq stop idx <N> dir [<h2c|c2h|bi>] - stop a single queue\n" + "\t\tq stop list <start_idx> <num_Qs> dir [<h2c|c2h|bi>] - stop list of queues at once\n" + "\t\tq del idx <N> dir [<h2c|c2h|bi>] - delete a queue\n" + "\t\tq del list <start_idx> <num_Qs> dir [<h2c|c2h|bi>] - delete list of queues at once\n" + "\t\tq dump idx <N> dir [<h2c|c2h|bi>] dump queue param\n" + "\t\tq dump list <start_idx> <num_Qs> dir [<h2c|c2h|bi>] - dump queue param\n" + "\t\tq dump idx <N> dir [<h2c|c2h|bi>] desc <x> <y> - dump desc ring entry x ~ y\n" + "\t\tq dump list <start_idx> <num_Qs> dir [<h2c|c2h|bi>] desc <x> <y> - dump desc ring entry x ~ y\n" + "\t\tq dump idx <N> dir [<h2c|c2h|bi>] cmpt <x> <y> - dump cmpt ring entry x ~ y\n" + "\t\tq dump list <start_idx> <num_Qs> dir [<h2c|c2h|bi>] cmpt <x> <y> - dump cmpt ring entry x ~ y\n" +#ifdef ERR_DEBUG + "\t\tq err help - help to induce errors \n" + "\t\tq err idx <N> [<err <[1|0]>>] dir <[h2c|c2h|bi]> - induce errors on q idx <N> \n" +#endif + ); + fprintf(fp, + "\t\treg dump [dmap <Q> <N>] - register dump. Only dump dmap registers if dmap is specified.\n" + "\t\t specify dmap range to dump: Q=queue, N=num of queues\n" + "\t\treg read [bar <N>] <addr> - read a register\n" + "\t\treg write [bar <N>] <addr> <val> - write a register\n"); + fprintf(fp, + "\t\tintring dump vector <N> <start_idx> <end_idx> - interrupt ring dump for vector number <N> \n" + "\t\t for intrrupt entries :<start_idx> --- <end_idx>\n"); + + exit(fp == stderr ? 1 : 0); +} + +static int arg_read_int(char *s, uint32_t *v) +{ + char *p; + + *v = strtoul(s, &p, 0); + if (*p) { + warnx("bad parameter \"%s\", integer expected", s); + return -EINVAL; + } + return 0; +} + +static int parse_ifname(char *name, struct xcmd_info *xcmd) +{ + int rv; + int len = strlen(name); + int pos, i; + uint32_t v; + char *p; + + /* qdmaN of qdmavfN*/ + if (len > 11) { + warnx("interface name %s too long, expect qdma<N>.\n", name); + return -EINVAL; + } + if (strncmp(name, "qdma", 4)) { + warnx("bad interface name %s, expect qdma<N>.\n", name); + return -EINVAL; + } + if (name[4] == 'v' && name[5] == 'f') { + xcmd->vf = 1; + pos = 6; + } else { + xcmd->vf = 0; + pos = 4; + } + for (i = pos; i < len; i++) { + if (!isxdigit(name[i])) { + warnx("%s unexpected <qdmaN>, %d.\n", name, i); + return -EINVAL; + } + } + + v = strtoul(name + pos, &p, 16); + if (*p) { + warnx("bad parameter \"%s\", integer expected", name + pos); + return -EINVAL; + } + + xcmd->if_bdf = v; + return 0; +} + +#define get_next_arg(argc, argv, i) \ + if (++(*i) >= argc) { \ + warnx("%s missing parameter after \"%s\".\n", __FUNCTION__, argv[--(*i)]); \ + return -EINVAL; \ + } + +#define __get_next_arg(argc, argv, i) \ + if (++i >= argc) { \ + warnx("%s missing parameter aft \"%s\".\n", __FUNCTION__, argv[--i]); \ + return -EINVAL; \ + } + +static int next_arg_read_int(int argc, char *argv[], int *i, unsigned int *v) +{ + get_next_arg(argc, argv, i); + return arg_read_int(argv[*i], v); +} + +static int next_arg_read_pair(int argc, char *argv[], int *start, char *s, + unsigned int *v, int optional) +{ + int rv; + int i = *start; + + /* string followed by an int */ + if ((i + 2) >= argc) { + if (optional) { + warnx("No optional parm %s after \"%s\".\n", s, argv[i]); + return 0; + } else { + warnx("missing parameter after \"%s\".\n", argv[i]); + return -EINVAL; + } + } + + __get_next_arg(argc, argv, i); + + if (!strcmp(s, argv[i])) { + get_next_arg(argc, argv, &i); + *start = i; + return arg_read_int(argv[i], v); + } + + warnx("bad parameter, \"%s\".\n", argv[i]); + return -EINVAL; +} + +static int validate_regcmd(enum xnl_op_t qcmd, struct xcmd_reg *regcmd) +{ + int invalid = 0; + + switch(qcmd) { + case XNL_CMD_REG_DUMP: + break; + case XNL_CMD_REG_RD: + case XNL_CMD_REG_WRT: + if ((regcmd->bar != 0) && (regcmd->bar != 2)) { + printf("dmactl: bar %d number out of range\n", + regcmd->bar); + invalid = -EINVAL; + break; + } +#if 0 + if ((regcmd->bar == 0) && + !is_valid_addr(regcmd->bar, regcmd->reg)) { + printf("dmactl: Invalid address 0x%x in bar %u\n", + regcmd->reg, regcmd->bar); + invalid = -EINVAL; + } +#endif + break; + default: + invalid = -EINVAL; + break; + } + + return invalid; +} + +static int parse_reg_cmd(int argc, char *argv[], int i, struct xcmd_info *xcmd) +{ + struct xcmd_reg *regcmd = &xcmd->u.reg; + int rv; + int args_valid; + + /* + * reg dump + * reg read [bar <N>] <addr> + * reg write [bar <N>] <addr> <val> + */ + + memset(regcmd, 0, sizeof(struct xcmd_reg)); + if (!strcmp(argv[i], "dump")) { + xcmd->op = XNL_CMD_REG_DUMP; + i++; + + if (i < argc) { + if (!strcmp(argv[i], "dmap")) { + get_next_arg(argc, argv, &i); + rv = read_range(argc, argv, i, ®cmd->range_start, + ®cmd->range_end); + if (rv < 0) + return rv; + i = rv; + } + } + + } else if (!strcmp(argv[i], "read")) { + xcmd->op = XNL_CMD_REG_RD; + + get_next_arg(argc, argv, &i); + if (!strcmp(argv[i], "bar")) { + rv = next_arg_read_int(argc, argv, &i, ®cmd->bar); + if (rv < 0) + return rv; + regcmd->sflags |= XCMD_REG_F_BAR_SET; + get_next_arg(argc, argv, &i); + } + rv = arg_read_int(argv[i], ®cmd->reg); + if (rv < 0) + return rv; + regcmd->sflags |= XCMD_REG_F_REG_SET; + + i++; + + } else if (!strcmp(argv[i], "write")) { + xcmd->op = XNL_CMD_REG_WRT; + + get_next_arg(argc, argv, &i); + if (!strcmp(argv[i], "bar")) { + rv = next_arg_read_int(argc, argv, &i, ®cmd->bar); + if (rv < 0) + return rv; + regcmd->sflags |= XCMD_REG_F_BAR_SET; + get_next_arg(argc, argv, &i); + } + rv = arg_read_int(argv[i], &xcmd->u.reg.reg); + if (rv < 0) + return rv; + regcmd->sflags |= XCMD_REG_F_REG_SET; + + rv = next_arg_read_int(argc, argv, &i, &xcmd->u.reg.val); + if (rv < 0) + return rv; + regcmd->sflags |= XCMD_REG_F_VAL_SET; + + i++; + } + + args_valid = validate_regcmd(xcmd->op, regcmd); + + return (args_valid == 0) ? i : args_valid; +} + +static int read_range(int argc, char *argv[], int i, unsigned int *v1, + unsigned int *v2) +{ + int rv; + + /* range */ + rv = arg_read_int(argv[i], v1); + if (rv < 0) + return rv; + + get_next_arg(argc, argv, &i); + rv = arg_read_int(argv[i], v2); + if (rv < 0) + return rv; + + if (v2 < v1) { + warnx("invalid range %u ~ %u.\n", *v1, *v2); + return -EINVAL; + } + + return ++i; +} + +static char *qparm_type_str[QPARM_MAX] = { + "idx", + "mode", + "dir", + "desc", + "cmpt", + "cmptsz", + "sw_desc_sz", + "idx_ringsz", + "idx_bufsz", + "idx_tmr", + "idx_cntr", + "trigmode", + "pip_gl_max", + "pip_flow_id", + "pipe_slr_id", + "pipe_tdest", +#ifdef ERR_DEBUG + "err_no" +#endif +}; + +static char *qflag_type_str[MAX_QFLAGS] = { + "mode", + "mode", + "dir", + "dir", + "pfetch_en", + "bypass", + "fetch_credit", + "dis_fetch_credit", + "dis_cmpl_status_acc", + "dis_cmpl_status", + "dis_cmpl_status_pend_chk", + "dis_cmpl_status", + "c2h_cmpl_intr_en", + "c2h_udd_en", + "cmpl_ovf_dis" +}; + +#define IS_SIZE_IDX_VALID(x) (x < 16) + +static void print_ignored_params(uint32_t ignore_mask, uint8_t isflag) +{ + unsigned int maxcount = isflag ? MAX_QFLAGS : QPARM_MAX; + char **qparam = isflag ? qflag_type_str : qparm_type_str; + char *pdesc = isflag ? "flag" : "attr"; + unsigned int i; + + for (i = 0; ignore_mask && (i < maxcount); i++) { + if (ignore_mask & 0x01) + warnx("Warn: Ignoring %s: %s", pdesc, qparam[i]); + ignore_mask >>= 1; + } +} + +static int validate_qcmd(enum xnl_op_t qcmd, struct xcmd_q_parm *qparm) +{ + int invalid = 0; + switch(qcmd) { + case XNL_CMD_Q_LIST: + if (qparm->sflags) + warnx("Warn: Ignoring all attributes and flags"); + break; + case XNL_CMD_Q_ADD: + print_ignored_params(qparm->sflags & + Q_ADD_ATTR_IGNORE_MASK, 0); + print_ignored_params(qparm->flags & + Q_ADD_FLAG_IGNORE_MASK, 1); + break; + case XNL_CMD_Q_START: + if (!IS_SIZE_IDX_VALID(qparm->c2h_bufsz_idx)) { + warnx("dmactl: C2H Buf index out of range"); + invalid = -EINVAL; + } + if (!IS_SIZE_IDX_VALID(qparm->qrngsz_idx)) { + warnx("dmactl: Queue ring size index out of range"); + invalid = -EINVAL; + } + if (!IS_SIZE_IDX_VALID(qparm->cmpt_cntr_idx)) { + warnx("dmactl: CMPT counter index out of range"); + invalid = -EINVAL; + } + if (!IS_SIZE_IDX_VALID(qparm->cmpt_tmr_idx)) { + warnx("dmactl: CMPT timer index out of range"); + invalid = -EINVAL; + } + if (qparm->cmpt_entry_size >= + XNL_ST_C2H_NUM_CMPT_DESC_SIZES) { + warnx("dmactl: CMPT entry size out of range"); + invalid = -EINVAL; + } + if (qparm->flags & XNL_F_PFETCH_BYPASS_EN) { + if (!(qparm->flags & XNL_F_DESC_BYPASS_EN)) { + printf("Error:desc bypass enable must be enabled for configuring pfetch bypass enable\n"); + invalid = -EINVAL; + break; + } + } + if (qparm->flags & XNL_F_CMPL_UDD_EN) { + if (!(qparm->sflags & (1 << QPARM_CMPTSZ))) { + printf("Error: cmptsz required for enabling c2h udd packet\n"); + invalid = -EINVAL; + break; + } + } + if (qparm->flags & XNL_F_QDIR_H2C) { + print_ignored_params(qparm->sflags & + (Q_START_ATTR_IGNORE_MASK | + Q_H2C_ATTR_IGNORE_MASK), 0); + print_ignored_params(qparm->flags & + (Q_START_FLAG_IGNORE_MASK | + Q_H2C_FLAG_IGNORE_MASK), 1); + } + if ((qparm->sflags & (1 << QPARM_SW_DESC_SZ))) { + /* TODO: in 2018.3 RTL1 , only 64B sw_desc_size is supported */ + if (qparm->sw_desc_sz != DESC_SIZE_64B) { + warnx("dmactl: desc size out of range"); + invalid = -EINVAL; + } + } + + break; + case XNL_CMD_Q_STOP: + print_ignored_params(qparm->sflags & + Q_STOP_ATTR_IGNORE_MASK, 0); + print_ignored_params(qparm->flags & + Q_STOP_FLAG_IGNORE_MASK, 1); + break; + case XNL_CMD_Q_DEL: + print_ignored_params(qparm->sflags & + Q_DEL_ATTR_IGNORE_MASK, 0); + print_ignored_params(qparm->flags & + Q_DEL_FLAG_IGNORE_MASK, 1); + break; + case XNL_CMD_Q_CMPT: + case XNL_CMD_Q_DUMP: + if ((qparm->sflags & ((1 << QPARM_DESC) | + (1 << QPARM_CMPT))) == ((1 << QPARM_DESC) | + (1 << QPARM_CMPT))) { + invalid = -EINVAL; + printf("Error: Both desc and cmpt attr cannot be taken for Q DUMP\n"); + break; + } + case XNL_CMD_Q_DESC: + print_ignored_params(qparm->sflags & + Q_DUMP_ATTR_IGNORE_MASK, 0); + print_ignored_params(qparm->flags & + Q_DUMP_FLAG_IGNORE_MASK, 1); + break; + case XNL_CMD_Q_RX_PKT: + if (qparm->flags & XNL_F_QDIR_H2C) { + printf("Rx dump packet is st c2h only command\n"); + invalid = -EINVAL; + break; + } + print_ignored_params(qparm->sflags & + Q_DUMP_PKT_ATTR_IGNORE_MASK, 0); + print_ignored_params(qparm->flags & + Q_DUMP_PKT_FLAG_IGNORE_MASK, 1); + break; +#ifdef ERR_DEBUG + case XNL_CMD_Q_ERR_INDUCE: + break; +#endif + default: + invalid = -EINVAL; + break; + } + + return invalid; +} + +#ifdef ERR_DEBUG +static unsigned char get_err_num(char *err) +{ + uint32_t i; + + for (i = 0; i < qdma_errs; i++) + if (!strcmp(err, qdma_err_str[i])) + break; + + return i; +} +#endif + +static int read_qparm(int argc, char *argv[], int i, struct xcmd_q_parm *qparm, + unsigned int f_arg_required) +{ + int rv; + uint32_t v1, v2; + unsigned int f_arg_set = 0;; + unsigned int mask; + + /* + * idx <val> + * list <start_idx> <num_q> + * ringsz <val> + * bufsz <val> + * mode <mm|st> + * dir <h2c|c2h|bi> + * cdev <0|1> + * bypass <0|1> + * desc <x> <y> + * cmpt <x> <y> + * cmptsz <0|1|2|3> + */ + + qparm->idx = XNL_QIDX_INVALID; + + while (i < argc) { +#ifdef ERR_DEBUG + if ((f_arg_required & (1 << QPARAM_ERR_NO)) && + (!strcmp(argv[i], "help"))) { + uint32_t j; + + fprintf(stdout, "q err idx <N> <num_errs> [list of <err <[1|0]>>] dir <[h2c|c2h|bi]>\n"); + fprintf(stdout, "Supported errors:\n"); + for (j = 0; j < qdma_errs; j++) + fprintf(stdout, "\t%s\n", qdma_err_str[j]); + + return argc; + } +#endif + if (!strcmp(argv[i], "idx")) { + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + + qparm->idx = v1; + f_arg_set |= 1 << QPARM_IDX; + qparm->num_q = 1; +#ifdef ERR_DEBUG + if (f_arg_required & (1 << QPARAM_ERR_NO)) { + unsigned char err_no; + + get_next_arg(argc, argv, &i); + + err_no = get_err_num(argv[i]); + if (err_no >= qdma_errs) { + fprintf(stderr, + "unknown err %s.\n", + argv[i]); + return -EINVAL; + } + + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + + qparm->err.en = v1 ? 1 : 0; + qparm->err.err_no = err_no; + printf("%s-%u: err_no/en: %u/%u\n", argv[i], qparm->idx, qparm->err.err_no, qparm->err.en); + i++; + f_arg_set |= 1 << QPARAM_ERR_NO; + } else + i++; +#else + i++; +#endif + + } else if (!strcmp(argv[i], "list")) { + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + + qparm->idx = v1; + f_arg_set |= 1 << QPARM_IDX; + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + + qparm->num_q = v1; + i++; + + } else if (!strcmp(argv[i], "mode")) { + get_next_arg(argc, argv, (&i)); + + if (!strcmp(argv[i], "mm")) { + qparm->flags |= XNL_F_QMODE_MM; + } else if (!strcmp(argv[i], "st")) { + qparm->flags |= XNL_F_QMODE_ST; + } else { + warnx("unknown q mode %s.\n", argv[i]); + return -EINVAL; + } + f_arg_set |= 1 << QPARM_MODE; + i++; + + } else if (!strcmp(argv[i], "dir")) { + get_next_arg(argc, argv, (&i)); + + if (!strcmp(argv[i], "h2c")) { + qparm->flags |= XNL_F_QDIR_H2C; + } else if (!strcmp(argv[i], "c2h")) { + qparm->flags |= XNL_F_QDIR_C2H; + } else if (!strcmp(argv[i], "bi")) { + qparm->flags |= XNL_F_QDIR_BOTH; + } else { + warnx("unknown q dir %s.\n", argv[i]); + return -EINVAL; + } + f_arg_set |= 1 << QPARM_DIR; + i++; + + } else if (!strcmp(argv[i], "idx_bufsz")) { + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + + qparm->c2h_bufsz_idx = v1; + + f_arg_set |= 1 << QPARM_C2H_BUFSZ_IDX; + i++; + + } else if (!strcmp(argv[i], "idx_ringsz")) { + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + + qparm->qrngsz_idx = v1; + f_arg_set |= 1 << QPARM_RNGSZ_IDX; + i++; + } else if (!strcmp(argv[i], "idx_tmr")) { + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + + qparm->cmpt_tmr_idx = v1; + f_arg_set |= 1 << QPARM_CMPT_TMR_IDX; + i++; + } else if (!strcmp(argv[i], "idx_cntr")) { + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + + qparm->cmpt_cntr_idx = v1; + f_arg_set |= 1 << QPARM_CMPT_CNTR_IDX; + i++; + } else if (!strcmp(argv[i], "pipe_gl_max")) { + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + qparm->pipe_gl_max = v1; + f_arg_set |= 1 << QPARM_PIPE_GL_MAX; + i++; + + + } else if (!strcmp(argv[i], "pipe_flow_id")) { + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + qparm->pipe_flow_id = v1; + f_arg_set |= 1 << QPARM_PIPE_FLOW_ID; + i++; + } else if (!strcmp(argv[i], "pipe_slr_id")) { + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + qparm->pipe_slr_id = v1; + f_arg_set |= 1 << QPARM_PIPE_SLR_ID; + i++; + } else if (!strcmp(argv[i], "pipe_tdest")) { + rv = next_arg_read_int(argc, argv, &i, &v1); + if (rv < 0) + return rv; + qparm->pipe_tdest = v1; + f_arg_set |= 1 << QPARM_PIPE_TDEST; + i++; + } else if (!strcmp(argv[i], "cmpl_ovf_dis")) { + qparm->flags |= XNL_F_CMPT_OVF_CHK_DIS; + i++; + } else if (!strcmp(argv[i], "trigmode")) { + get_next_arg(argc, argv, (&i)); + + if (!strcmp(argv[i], "every")) { + v1 = 1; + } else if (!strcmp(argv[i], "usr_cnt")) { + v1 = 2; + } else if (!strcmp(argv[i], "usr")) { + v1 = 3; + } else if (!strcmp(argv[i], "usr_tmr")) { + v1=4; + } else if (!strcmp(argv[i], "cntr_tmr")) { + v1=5; + } else if (!strcmp(argv[i], "dis")) { + v1 = 0; + } else { + warnx("unknown q trigmode %s.\n", argv[i]); + return -EINVAL; + } + + qparm->cmpt_trig_mode = v1; + f_arg_set |= 1 << QPARM_CMPT_TRIG_MODE; + i++; + } else if (!strcmp(argv[i], "desc")) { + get_next_arg(argc, argv, &i); + rv = read_range(argc, argv, i, &qparm->range_start, + &qparm->range_end); + if (rv < 0) + return rv; + i = rv; + f_arg_set |= 1 << QPARM_DESC; + + } else if (!strcmp(argv[i], "cmpt")) { + get_next_arg(argc, argv, &i); + rv = read_range(argc, argv, i, &qparm->range_start, + &qparm->range_end); + if (rv < 0) + return rv; + i = rv; + f_arg_set |= 1 << QPARM_CMPT; + + } else if (!strcmp(argv[i], "cmptsz")) { + get_next_arg(argc, argv, &i); + sscanf(argv[i], "%hhu", &qparm->cmpt_entry_size); + f_arg_set |= 1 << QPARM_CMPTSZ; + i++; + } else if (!strcmp(argv[i], "sw_desc_sz")) { + get_next_arg(argc, argv, &i); + sscanf(argv[i], "%hhu", &qparm->sw_desc_sz); + f_arg_set |= 1 << QPARM_SW_DESC_SZ; + i++; + } else if (!strcmp(argv[i], "pfetch_en")) { + qparm->flags |= XNL_F_PFETCH_EN; + i++; + } else if (!strcmp(argv[i], "pfetch_bypass_en")) { + qparm->flags |= XNL_F_PFETCH_BYPASS_EN; + i++; + } else if (!strcmp(argv[i], "desc_bypass_en")) { + qparm->flags |= XNL_F_DESC_BYPASS_EN; + i++; + } else if (!strcmp(argv[i], "c2h_cmpl_intr_en")) { + qparm->flags |= XNL_F_C2H_CMPL_INTR_EN; + i++; + } else if (!strcmp(argv[i], "dis_cmpl_status")) { + qparm->flags &= ~XNL_F_CMPL_STATUS_EN; + i++; + } else if (!strcmp(argv[i], "dis_cmpl_status_acc")) { + qparm->flags &= ~XNL_F_CMPL_STATUS_ACC_EN; + i++; + } else if (!strcmp(argv[i], "dis_cmpl_status_pend_chk")) { + qparm->flags &= ~XNL_F_CMPL_STATUS_PEND_CHK; + i++; + } else if (!strcmp(argv[i], "dis_fetch_credit")) { + qparm->flags &= ~XNL_F_FETCH_CREDIT; + i++; + } else if (!strcmp(argv[i], "dis_cmpl_status")) { + qparm->flags &= ~XNL_F_CMPL_STATUS_DESC_EN; + i++; + } else if (!strcmp(argv[i], "c2h_udd_en")) { + qparm->flags |= XNL_F_CMPL_UDD_EN; + i++; + } else { + warnx("unknown q parameter %s.\n", argv[i]); + return -EINVAL; + } + } + if ((f_arg_required & (1 << QPARM_RNGSZ_IDX)) && + !(f_arg_set & (1 << QPARM_RNGSZ_IDX))) { + warnx("Info: Default ring size set to 2048"); + qparm->qrngsz_idx = 5; + f_arg_set |= 1 << QPARM_RNGSZ_IDX; + } + /* check for any missing mandatory parameters */ + mask = f_arg_set & f_arg_required; + if (mask != f_arg_required) { + int i; + unsigned int bit_mask = 1; + + mask = (mask ^ f_arg_required) & f_arg_required; + + for (i = 0; i < QPARM_MAX; i++, bit_mask <<= 1) { + if (!(bit_mask & f_arg_required)) + continue; + warnx("missing q parameter %s.\n", qparm_type_str[i]); + return -EINVAL; + } + } + + if (!(f_arg_set & 1 << QPARM_DIR)) { + /* default to H2C */ + warnx("Warn: Default dir set to \'h2c\'"); + f_arg_set |= 1 << QPARM_DIR; + qparm->flags |= XNL_F_QDIR_H2C; + } + + qparm->sflags = f_arg_set; + + return argc; +} + +static int parse_q_cmd(int argc, char *argv[], int i, struct xcmd_info *xcmd) +{ + struct xcmd_q_parm *qparm = &xcmd->u.qparm; + int rv; + int args_valid; + + /* + * q list + * q add idx <N> mode <mm|st> [dir <h2c|c2h|bi>] [cdev <0|1>] [cmptsz <0|1|2|3>] + * q start idx <N> dir <h2c|c2h|bi> + * q stop idx <N> dir <h2c|c2h|bi> + * q del idx <N> dir <h2c|c2h|bi> + * q dump idx <N> dir <h2c|c2h|bi> + * q dump idx <N> dir <h2c|c2h|bi> desc <x> <y> + * q dump idx <N> dir <h2c|c2h|bi> cmpt <x> <y> + * q pkt idx <N> + */ + + if (!strcmp(argv[i], "list")) { + xcmd->op = XNL_CMD_Q_LIST; + return ++i; + } else if (!strcmp(argv[i], "add")) { + unsigned int mask; + + xcmd->op = XNL_CMD_Q_ADD; + get_next_arg(argc, argv, &i); + rv = read_qparm(argc, argv, i, qparm, (1 << QPARM_IDX)); + /* error checking of parameter values */ + if (qparm->sflags & (1 << QPARM_MODE)) { + mask = XNL_F_QMODE_MM | XNL_F_QMODE_ST; + if ((qparm->flags & mask) == mask) { + warnx("mode mm/st cannot be combined.\n"); + return -EINVAL; + } + } else { + /* default to MM */ + warnx("Warn: Default mode set to \'mm\'"); + qparm->sflags |= 1 << QPARM_MODE; + qparm->flags |= XNL_F_QMODE_MM; + } + + } else if (!strcmp(argv[i], "start")) { + xcmd->op = XNL_CMD_Q_START; + get_next_arg(argc, argv, &i); + rv = read_qparm(argc, argv, i, qparm, ((1 << QPARM_IDX) | + (1 << QPARM_RNGSZ_IDX))); + qparm->flags |= (XNL_F_CMPL_STATUS_EN | XNL_F_CMPL_STATUS_ACC_EN | + XNL_F_CMPL_STATUS_PEND_CHK | XNL_F_CMPL_STATUS_DESC_EN | + XNL_F_FETCH_CREDIT); + if (qparm->flags & (XNL_F_QDIR_C2H | XNL_F_QMODE_ST) == + (XNL_F_QDIR_C2H | XNL_F_QMODE_ST)) { + if (!(qparm->sflags & (1 << QPARM_CMPTSZ))) { + /* default to 8B */ + qparm->cmpt_entry_size = XNL_ST_C2H_CMPT_DESC_SIZE_8B; + qparm->sflags |= + (1 << QPARM_CMPTSZ); + } + } + } else if (!strcmp(argv[i], "stop")) { + xcmd->op = XNL_CMD_Q_STOP; + get_next_arg(argc, argv, &i); + rv = read_qparm(argc, argv, i, qparm, (1 << QPARM_IDX)); + + } else if (!strcmp(argv[i], "del")) { + xcmd->op = XNL_CMD_Q_DEL; + get_next_arg(argc, argv, &i); + rv = read_qparm(argc, argv, i, qparm, (1 << QPARM_IDX)); + + } else if (!strcmp(argv[i], "dump")) { + xcmd->op = XNL_CMD_Q_DUMP; + get_next_arg(argc, argv, &i); + rv = read_qparm(argc, argv, i, qparm, (1 << QPARM_IDX)); + } else if (!strcmp(argv[i], "pkt")) { + xcmd->op = XNL_CMD_Q_RX_PKT; + get_next_arg(argc, argv, &i); + rv = read_qparm(argc, argv, i, qparm, (1 << QPARM_IDX)); +#ifdef ERR_DEBUG + } else if (!strcmp(argv[i], "err")) { + xcmd->op = XNL_CMD_Q_ERR_INDUCE; + get_next_arg(argc, argv, &i); + rv = read_qparm(argc, argv, i, qparm, ((1 << QPARM_IDX) | + (1 << QPARAM_ERR_NO))); +#endif + } else { + printf("Error: Unknown q command\n"); + return -EINVAL; + } + + if (rv < 0) + return rv; + i = rv; + + if (xcmd->op == XNL_CMD_Q_DUMP) { + unsigned int mask = (1 << QPARM_DESC) | (1 << QPARM_CMPT); + + if ((qparm->sflags & mask) == mask) { + warnx("dump cmpt/desc cannot be combined.\n"); + return -EINVAL; + } + if ((qparm->sflags & (1 << QPARM_DESC))) + xcmd->op = XNL_CMD_Q_DESC; + else if ((qparm->sflags & (1 << QPARM_CMPT))) + xcmd->op = XNL_CMD_Q_CMPT; + } + + args_valid = validate_qcmd(xcmd->op, qparm); + + return (args_valid == 0) ? i : args_valid; + + return i; +} + +static int parse_dev_cmd(int argc, char *argv[], int i, struct xcmd_info *xcmd) +{ + if (!strcmp(argv[i], "list")) { + xcmd->op = XNL_CMD_DEV_LIST; + i++; + } + + return i; +} + +static int parse_stat_cmd(int argc, char *argv[], int i, struct xcmd_info *xcmd) +{ + int rv; + + xcmd->op = XNL_CMD_DEV_STAT; + if (i >= argc) + return i; + if (!strcmp(argv[i], "clear")) { + xcmd->op = XNL_CMD_DEV_STAT_CLEAR; + i++; + } + return i; +} + +static int parse_intr_cmd(int argc, char *argv[], int i, struct xcmd_info *xcmd) +{ + struct xcmd_intr *intrcmd = &xcmd->u.intr; + int rv; + + /* + * intr dump vector <N> + */ + + memset(intrcmd, 0, sizeof(struct xcmd_intr)); + if (!strcmp(argv[i], "dump")) { + xcmd->op = XNL_CMD_INTR_RING_DUMP; + + get_next_arg(argc, argv, &i); + if (!strcmp(argv[i], "vector")) { + rv = next_arg_read_int(argc, argv, &i, &intrcmd->vector); + if (rv < 0) + return rv; + } + rv = next_arg_read_int(argc, argv, &i, &intrcmd->start_idx); + if (rv < 0) { + intrcmd->start_idx = 0; + intrcmd->end_idx = QDMA_MAX_INT_RING_ENTRIES - 1; + goto func_ret; + } + rv = next_arg_read_int(argc, argv, &i, &intrcmd->end_idx); + if (rv < 0) + intrcmd->end_idx = QDMA_MAX_INT_RING_ENTRIES - 1; + } +func_ret: + i++; + return i; +} + +int parse_cmd(int argc, char *argv[], struct xcmd_info *xcmd) +{ + char *ifname; + int i; + int rv; + + memset(xcmd, 0, sizeof(struct xcmd_info)); + + progname = argv[0]; + + if (argc == 1) + usage(stderr); + + if (argc == 2) { + if (!strcmp(argv[1], "?") || !strcmp(argv[1], "-h") || + !strcmp(argv[1], "help") || !strcmp(argv[1], "--help")) + usage(stdout); + + if (!strcmp(argv[1], "-v") || !strcmp(argv[1], "--version")) { + printf("%s version %s\n", PROGNAME, VERSION); + printf("%s\n", COPYRIGHT); + exit(0); + } + } + + if (!strcmp(argv[1], "dev")) { + rv = parse_dev_cmd(argc, argv, 2, xcmd); + goto done; + } + + /* which dma fpga */ + ifname = argv[1]; + rv = parse_ifname(ifname, xcmd); + if (rv < 0) + return rv; + + if (argc == 2) { + rv = 2; + xcmd->op = XNL_CMD_DEV_INFO; + goto done; + } + + i = 3; + if (!strcmp(argv[2], "reg")) { + rv = parse_reg_cmd(argc, argv, i, xcmd); + } else if (!strcmp(argv[2], "stat")) { + rv = parse_stat_cmd(argc, argv, i, xcmd); + } else if (!strcmp(argv[2], "q")) { + rv = parse_q_cmd(argc, argv, i, xcmd); + } else if (!strcmp(argv[2], "intring")){ + rv = parse_intr_cmd(argc, argv, i, xcmd); + } else if (!strcmp(argv[2], "version")){ + rv = 3; + xcmd->op = XNL_CMD_VERSION; + } else { + warnx("bad parameter \"%s\".\n", argv[2]); + return -EINVAL; + } + +done: + if (rv < 0) + return rv; + i = rv; + + if (i < argc) { + warnx("unexpected parameter \"%s\".\n", argv[i]); + return -EINVAL; + } + return 0; +} diff --git a/QDMA/linux-kernel/user/cli/cmd_parse.h b/QDMA/linux-kernel/user/cli/cmd_parse.h new file mode 100644 index 0000000..3a4e3e5 --- /dev/null +++ b/QDMA/linux-kernel/user/cli/cmd_parse.h @@ -0,0 +1,40 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#ifndef USER_CLI_CMD_PARSE_H_ +#define USER_CLI_CMD_PARSE_H_ + +#include "qdma_nl.h" +#include "reg_cmd.h" +#include "nl_user.h" + +struct xcmd_info { + unsigned char vf:1; + unsigned char op:7; + unsigned char config_bar; + unsigned char user_bar; + unsigned short qmax; + char stm_bar; + char ifname[8]; + union { + struct xcmd_intr intr; + struct xcmd_reg reg; + struct xcmd_q_parm qparm; + } u; + uint32_t if_bdf; + uint32_t attr_mask; + uint32_t attrs[XNL_ATTR_MAX]; + char drv_str[128]; +}; + +int parse_cmd(int argc, char *argv[], struct xcmd_info *xcmd); + +#endif /* USER_CLI_CMD_PARSE_H_ */ diff --git a/QDMA/linux-kernel/user/cli/main.c b/QDMA/linux-kernel/user/cli/main.c new file mode 100644 index 0000000..0da10b1 --- /dev/null +++ b/QDMA/linux-kernel/user/cli/main.c @@ -0,0 +1,76 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include <string.h> + +#include "nl_user.h" +#include "cmd_parse.h" +#include "reg_cmd.h" + +int main(int argc, char *argv[]) +{ + struct xnl_cb cb; + struct xcmd_info xcmd; + unsigned char op; + int rv = 0; + + memset(&xcmd, 0, sizeof(xcmd)); + + rv = parse_cmd(argc, argv, &xcmd); + if (rv < 0) + return rv; + +#if 0 + printf("cmd op %s, 0x%x, ifname %s.\n", + xnl_op_str[xcmd.op], xcmd.op, xcmd.ifname); +#endif + + memset(&cb, 0, sizeof(struct xnl_cb)); + + if (xcmd.op == XNL_CMD_DEV_LIST) { + /* try pf nl server */ + rv = xnl_connect(&cb, 0); + if (!rv) + rv = xnl_send_cmd(&cb, &xcmd); + xnl_close(&cb); + + /* try vf nl server */ + memset(&cb, 0, sizeof(struct xnl_cb)); + rv = xnl_connect(&cb, 1); + if (!rv) + rv = xnl_send_cmd(&cb, &xcmd); + xnl_close(&cb); + + goto close; + } + + /* for all other command, query the target device info first */ + rv = xnl_connect(&cb, xcmd.vf); + if (rv < 0) + goto close; + + op = xcmd.op; + xcmd.op = XNL_CMD_DEV_INFO; + rv = xnl_send_cmd(&cb, &xcmd); + xcmd.op = op; + if (rv < 0) + goto close; + + if ((xcmd.op == XNL_CMD_REG_DUMP) || (xcmd.op == XNL_CMD_REG_RD) || + (xcmd.op == XNL_CMD_REG_WRT)) + rv = proc_reg_cmd(&xcmd); + else + rv = xnl_send_cmd(&cb, &xcmd); + +close: + xnl_close(&cb); + return rv; +} diff --git a/QDMA/linux-kernel/user/cli/nl_user.c b/QDMA/linux-kernel/user/cli/nl_user.c new file mode 100644 index 0000000..24746df --- /dev/null +++ b/QDMA/linux-kernel/user/cli/nl_user.c @@ -0,0 +1,575 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include <stdlib.h> +#include <stdio.h> +#include <stddef.h> +#include <stdint.h> +#include <ctype.h> +#include <string.h> +#include <unistd.h> +#include <err.h> +#include <errno.h> +#include <sys/socket.h> +#include <linux/genetlink.h> +#include <qdma_nl.h> + +#include "nl_user.h" +#include "cmd_parse.h" + +/* Generic macros for dealing with netlink sockets. Might be duplicated + * elsewhere. It is recommended that commercial grade applications use + * libnl or libnetlink and use the interfaces provided by the library + */ + +/* + * netlink message + */ +struct xnl_hdr { + struct nlmsghdr n; + struct genlmsghdr g; +}; + +struct xnl_gen_msg { + struct xnl_hdr hdr; + char data[0]; +}; + +void xnl_close(struct xnl_cb *cb) +{ + close(cb->fd); +} + +static int xnl_send(struct xnl_cb *cb, struct xnl_hdr *hdr) +{ + int rv; + struct sockaddr_nl addr = { + .nl_family = AF_NETLINK, + }; + + hdr->n.nlmsg_seq = cb->snd_seq; + cb->snd_seq++; + + rv = sendto(cb->fd, (char *)hdr, hdr->n.nlmsg_len, 0, + (struct sockaddr *)&addr, sizeof(addr)); + if (rv != hdr->n.nlmsg_len) { + perror("nl send err"); + return -1; + } + + return 0; +} + +static int xnl_recv(struct xnl_cb *cb, struct xnl_hdr *hdr, int dlen, int print) +{ + int rv; + struct sockaddr_nl addr = { + .nl_family = AF_NETLINK, + }; + + memset(hdr, 0, sizeof(struct xnl_gen_msg) + dlen); + + rv = recv(cb->fd, hdr, dlen, 0); + if (rv < 0) { + perror("nl recv err"); + return -1; + } + /* as long as there is attribute, even if it is shorter than expected */ + if (!NLMSG_OK((&hdr->n), rv) && (rv <= sizeof(struct xnl_hdr))) { + if (print) + fprintf(stderr, + "nl recv:, invalid message, cmd 0x%x, %d,%d.\n", + hdr->g.cmd, dlen, rv); + return -1; + } + + if (hdr->n.nlmsg_type == NLMSG_ERROR) { + if (print) + fprintf(stderr, "nl recv, msg error, cmd 0x%x\n", + hdr->g.cmd); + return -1; + } + + return 0; +} + +static inline struct xnl_gen_msg *xnl_msg_alloc(int dlen) +{ + struct xnl_gen_msg *msg; + + msg = malloc(sizeof(struct xnl_gen_msg) + dlen); + if (!msg) { + fprintf(stderr, "%s: OOM, %d.\n", __FUNCTION__, dlen); + return NULL; + } + + memset(msg, 0, sizeof(struct xnl_gen_msg) + dlen); + return msg; +} + +int xnl_connect(struct xnl_cb *cb, int vf) +{ + int fd; + struct sockaddr_nl addr; + struct xnl_gen_msg *msg = xnl_msg_alloc(XNL_RESP_BUFLEN_MIN); + struct xnl_hdr *hdr; + struct nlattr *attr; + int rv = -1; + + if (!msg) { + fprintf(stderr, "%s, msg OOM.\n", __FUNCTION__); + return -ENOMEM; + } + hdr = (struct xnl_hdr *)msg; + + fd = socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC); + if (fd < 0) { + perror("nl socket err"); + rv = fd; + goto out; + } + cb->fd = fd; + + memset(&addr, 0, sizeof(struct sockaddr_nl)); + addr.nl_family = AF_NETLINK; + rv = bind(fd, (struct sockaddr *)&addr, sizeof(struct sockaddr_nl)); + if (rv < 0) { + perror("nl bind err"); + goto out; + } + + hdr->n.nlmsg_type = GENL_ID_CTRL; + hdr->n.nlmsg_flags = NLM_F_REQUEST; + hdr->n.nlmsg_pid = getpid(); + hdr->n.nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN); + + hdr->g.cmd = CTRL_CMD_GETFAMILY; + hdr->g.version = XNL_VERSION; + + attr = (struct nlattr *)(msg->data); + attr->nla_type = CTRL_ATTR_FAMILY_NAME; + + if (vf) { + attr->nla_len = strlen(XNL_NAME_VF) + 1 + NLA_HDRLEN; + strcpy((char *)(attr + 1), XNL_NAME_VF); + + } else { + attr->nla_len = strlen(XNL_NAME_PF) + 1 + NLA_HDRLEN; + strcpy((char *)(attr + 1), XNL_NAME_PF); + } + hdr->n.nlmsg_len += NLMSG_ALIGN(attr->nla_len); + + rv = xnl_send(cb, (struct xnl_hdr *)hdr); + if (rv < 0) + goto out; + + rv = xnl_recv(cb, hdr, XNL_RESP_BUFLEN_MIN, 0); + if (rv < 0) + goto out; + +#if 0 + /* family name */ + if (attr->nla_type == CTRL_ATTR_FAMILY_NAME) + printf("family name: %s.\n", (char *)(attr + 1)); +#endif + + attr = (struct nlattr *)((char *)attr + NLA_ALIGN(attr->nla_len)); + /* family ID */ + if (attr->nla_type == CTRL_ATTR_FAMILY_ID) { + cb->family = *(__u16 *)(attr + 1); +// printf("family id: 0x%x.\n", cb->family); + } + + rv = 0; + +out: + free(msg); + return rv; +} + +static void xnl_msg_set_hdr(struct xnl_hdr *hdr, int family, int op) +{ + hdr->n.nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN); + hdr->n.nlmsg_type = family; + hdr->n.nlmsg_flags = NLM_F_REQUEST; + hdr->n.nlmsg_pid = getpid(); + + hdr->g.cmd = op; +} + +static int xnl_send_op(struct xnl_cb *cb, int op) +{ + struct xnl_hdr req; + int rv; + + memset(&req, 0, sizeof(struct xnl_hdr)); + + xnl_msg_set_hdr(&req, cb->family, op); + + rv = xnl_send(cb, &req); + + return rv; +} + +static int xnl_msg_add_int_attr(struct xnl_hdr *hdr, enum xnl_attr_t type, + unsigned int v) +{ + struct nlattr *attr = (struct nlattr *)((char *)hdr + hdr->n.nlmsg_len); + + attr->nla_type = (__u16)type; + attr->nla_len = sizeof(__u32) + NLA_HDRLEN; + *(__u32 *)(attr+ 1) = v; + + hdr->n.nlmsg_len += NLMSG_ALIGN(attr->nla_len); + return 0; +} + +static int xnl_msg_add_str_attr(struct xnl_hdr *hdr, enum xnl_attr_t type, + char *s) +{ + struct nlattr *attr = (struct nlattr *)((char *)hdr + hdr->n.nlmsg_len); + int len = strlen(s); + + attr->nla_type = (__u16)type; + attr->nla_len = len + 1 + NLA_HDRLEN; + + strcpy((char *)(attr + 1), s); + + hdr->n.nlmsg_len += NLMSG_ALIGN(attr->nla_len); + return 0; +} + +static int recv_attrs(struct xnl_hdr *hdr, struct xcmd_info *xcmd) +{ + unsigned char *p = (unsigned char *)(hdr + 1); + int maxlen = hdr->n.nlmsg_len - NLMSG_LENGTH(GENL_HDRLEN); + +#if 0 + printf("nl recv, hdr len %d, data %d, gen op 0x%x, %s, ver 0x%x.\n", + hdr->n.nlmsg_len, maxlen, hdr->g.cmd, xnl_op_str[hdr->g.cmd], + hdr->g.version); +#endif + + xcmd->attr_mask = 0; + while (maxlen > 0) { + struct nlattr *na = (struct nlattr *)p; + int len = NLA_ALIGN(na->nla_len); + + if (na->nla_type >= XNL_ATTR_MAX) { + fprintf(stderr, "unknown attr type %d, len %d.\n", + na->nla_type, na->nla_len); + return -EINVAL; + } + + xcmd->attr_mask |= 1 << na->nla_type; + + if (na->nla_type == XNL_ATTR_GENMSG) { + printf("\n%s\n", (char *)(na + 1)); + + } else if (na->nla_type == XNL_ATTR_DRV_INFO) { + strncpy(xcmd->drv_str, (char *)(na + 1), 128); + } else { + xcmd->attrs[na->nla_type] = *(uint32_t *)(na + 1); + } + + p += len; + maxlen -= len; + } + + return 0; +} + +static void get_dev_stat(struct xcmd_info *xcmd) +{ + unsigned long long mmh2c_pkts; + unsigned long long mmc2h_pkts; + unsigned long long sth2c_pkts; + unsigned long long stc2h_pkts; + unsigned int pkts; + + pkts = xcmd->attrs[XNL_ATTR_DEV_STAT_MMH2C_PKTS1]; + mmh2c_pkts = pkts; + pkts = xcmd->attrs[XNL_ATTR_DEV_STAT_MMH2C_PKTS2]; + mmh2c_pkts |= (((unsigned long long)pkts) << 32); + + pkts = xcmd->attrs[XNL_ATTR_DEV_STAT_MMC2H_PKTS1]; + mmc2h_pkts = pkts; + pkts = xcmd->attrs[XNL_ATTR_DEV_STAT_MMC2H_PKTS2]; + mmc2h_pkts |= (((unsigned long long)pkts) << 32); + + pkts = xcmd->attrs[XNL_ATTR_DEV_STAT_STH2C_PKTS1]; + sth2c_pkts = pkts; + pkts = xcmd->attrs[XNL_ATTR_DEV_STAT_STH2C_PKTS2]; + sth2c_pkts |= (((unsigned long long)pkts) << 32); + + pkts = xcmd->attrs[XNL_ATTR_DEV_STAT_STC2H_PKTS1]; + stc2h_pkts = pkts; + pkts = xcmd->attrs[XNL_ATTR_DEV_STAT_STC2H_PKTS2]; + stc2h_pkts |= (((unsigned long long)pkts) << 32); + + printf("qdma%s%05x:statistics\n", xcmd->vf ? "vf" : "", xcmd->if_bdf); + printf("Total MM H2C packets processed = %llu\n", mmh2c_pkts); + printf("Total MM C2H packets processed = %llu\n", mmc2h_pkts); + printf("Total ST H2C packets processed = %llu\n", sth2c_pkts); + printf("Total ST C2H packets processed = %llu\n", stc2h_pkts); +} + +static int recv_nl_msg(struct xnl_hdr *hdr, struct xcmd_info *xcmd) +{ + unsigned int op = hdr->g.cmd; + unsigned int usr_bar; + + recv_attrs(hdr, xcmd); + + switch(op) { + case XNL_CMD_DEV_LIST: + break; + case XNL_CMD_DEV_INFO: + xcmd->config_bar = xcmd->attrs[XNL_ATTR_DEV_CFG_BAR]; + usr_bar = (int)xcmd->attrs[XNL_ATTR_DEV_USR_BAR]; + xcmd->qmax = xcmd->attrs[XNL_ATTR_DEV_QSET_MAX]; + xcmd->stm_bar = xcmd->attrs[XNL_ATTR_DEV_STM_BAR]; + + if (usr_bar+1 == 0) + xcmd->user_bar = 2; + else + xcmd->user_bar = usr_bar; + +#ifdef DEBUG + printf("qdma%s%05x:\t%02x:%02x.%02x\t", + xcmd->vf ? "vf" : "", xcmd->if_bdf, + xcmd->attrs[XNL_ATTR_PCI_BUS], + xcmd->attrs[XNL_ATTR_PCI_DEV], + xcmd->attrs[XNL_ATTR_PCI_FUNC]); + printf("config bar: %d, user bar: %d, max #. QP: %d\n", + xcmd->config_bar, xcmd->user_bar, xcmd->qmax); +#endif + break; + case XNL_CMD_DEV_STAT: + get_dev_stat(xcmd); + break; + case XNL_CMD_DEV_STAT_CLEAR: + break; + case XNL_CMD_VERSION: + break; + case XNL_CMD_Q_LIST: + break; + case XNL_CMD_Q_ADD: + break; + case XNL_CMD_Q_START: + break; + case XNL_CMD_Q_STOP: + break; + case XNL_CMD_Q_DEL: + break; + case XNL_CMD_REG_RD: + xcmd->u.reg.val = xcmd->attrs[XNL_ATTR_REG_VAL]; + break; + case XNL_CMD_REG_WRT: + xcmd->u.reg.val = xcmd->attrs[XNL_ATTR_REG_VAL]; + break; + default: + break; + } + + return 0; +} + +static void xnl_msg_add_extra_config_attrs(struct xnl_hdr *hdr, + struct xcmd_info *xcmd) +{ + if (xcmd->u.qparm.sflags & (1 << QPARM_RNGSZ_IDX)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_QRNGSZ_IDX, + xcmd->u.qparm.qrngsz_idx); + if (xcmd->u.qparm.sflags & (1 << QPARM_C2H_BUFSZ_IDX)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_C2H_BUFSZ_IDX, + xcmd->u.qparm.c2h_bufsz_idx); + if (xcmd->u.qparm.sflags & (1 << QPARM_CMPTSZ)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_CMPT_DESC_SIZE, + xcmd->u.qparm.cmpt_entry_size); + if (xcmd->u.qparm.sflags & (1 << QPARM_SW_DESC_SZ)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_SW_DESC_SIZE, + xcmd->u.qparm.sw_desc_sz); + if (xcmd->u.qparm.sflags & (1 << QPARM_CMPT_TMR_IDX)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_CMPT_TIMER_IDX, + xcmd->u.qparm.cmpt_tmr_idx); + if (xcmd->u.qparm.sflags & (1 << QPARM_CMPT_CNTR_IDX)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_CMPT_CNTR_IDX, + xcmd->u.qparm.cmpt_cntr_idx); + if (xcmd->u.qparm.sflags & (1 << QPARM_CMPT_TRIG_MODE)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_CMPT_TRIG_MODE, + xcmd->u.qparm.cmpt_trig_mode); + if (xcmd->u.qparm.sflags & (1 << QPARM_PIPE_GL_MAX)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_PIPE_GL_MAX, + xcmd->u.qparm.pipe_gl_max); + if (xcmd->u.qparm.sflags & (1 << QPARM_PIPE_FLOW_ID)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_PIPE_FLOW_ID, + xcmd->u.qparm.pipe_flow_id); + if (xcmd->u.qparm.sflags & (1 << QPARM_PIPE_SLR_ID)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_PIPE_SLR_ID, + xcmd->u.qparm.pipe_slr_id); + if (xcmd->u.qparm.sflags & (1 << QPARM_PIPE_TDEST)) + xnl_msg_add_int_attr(hdr, XNL_ATTR_PIPE_TDEST, + xcmd->u.qparm.pipe_tdest); +} + +static int get_cmd_resp_buf_len(struct xcmd_info *xcmd) +{ + int buf_len = XNL_RESP_BUFLEN_MAX; + unsigned int row_len = 50; + + switch (xcmd->op) { + case XNL_CMD_Q_DESC: + row_len *= 2; + case XNL_CMD_Q_CMPT: + buf_len += ((xcmd->u.qparm.range_end - + xcmd->u.qparm.range_start)*row_len); + break; + case XNL_CMD_INTR_RING_DUMP: + buf_len += ((xcmd->u.intr.end_idx - + xcmd->u.intr.start_idx)*row_len); + break; + case XNL_CMD_DEV_LIST: + case XNL_CMD_Q_START: + case XNL_CMD_Q_STOP: + case XNL_CMD_Q_DEL: + return buf_len; + case XNL_CMD_Q_LIST: + case XNL_CMD_Q_DUMP: + break; + default: + buf_len = XNL_RESP_BUFLEN_MIN; + break; + } + if ((xcmd->u.qparm.flags & XNL_F_QDIR_BOTH) == XNL_F_QDIR_BOTH) + buf_len *= 2; + if (xcmd->u.qparm.flags & XNL_F_QDIR_BOTH) + buf_len *= xcmd->u.qparm.num_q; + + return buf_len; +} + +int xnl_send_cmd(struct xnl_cb *cb, struct xcmd_info *xcmd) +{ + struct xnl_gen_msg *msg; + struct xnl_hdr *hdr; + struct nlattr *attr; + int dlen = get_cmd_resp_buf_len(xcmd); + int i; + int rv; + enum xnl_st_c2h_cmpt_desc_size cmpt_desc_size; + +#if 0 + printf("%s: op %s, 0x%x, ifname %s.\n", __FUNCTION__, + xnl_op_str[xcmd->op], xcmd->op, xcmd->ifname); +#endif + + msg = xnl_msg_alloc(dlen); + if (!msg) { + fprintf(stderr, "%s: OOM, %s, op %s,0x%x.\n", __FUNCTION__, + xcmd->ifname, xnl_op_str[xcmd->op], xcmd->op); + return -ENOMEM; + } + + hdr = (struct xnl_hdr *)msg; + attr = (struct nlattr *)(msg->data); + + xnl_msg_set_hdr(hdr, cb->family, xcmd->op); + + xnl_msg_add_int_attr(hdr, XNL_ATTR_DEV_IDX, xcmd->if_bdf); + + switch(xcmd->op) { + case XNL_CMD_DEV_LIST: + case XNL_CMD_DEV_INFO: + case XNL_CMD_DEV_STAT: + case XNL_CMD_DEV_STAT_CLEAR: + case XNL_CMD_Q_LIST: + /* no parameter */ + break; + case XNL_CMD_Q_ADD: + xnl_msg_add_int_attr(hdr, XNL_ATTR_QIDX, xcmd->u.qparm.idx); + xnl_msg_add_int_attr(hdr, XNL_ATTR_NUM_Q, xcmd->u.qparm.num_q); + xnl_msg_add_int_attr(hdr, XNL_ATTR_QFLAG, xcmd->u.qparm.flags); + break; + case XNL_CMD_Q_START: + xnl_msg_add_extra_config_attrs(hdr, xcmd); + case XNL_CMD_Q_STOP: + case XNL_CMD_Q_DEL: + case XNL_CMD_Q_DUMP: + xnl_msg_add_int_attr(hdr, XNL_ATTR_QIDX, xcmd->u.qparm.idx); + xnl_msg_add_int_attr(hdr, XNL_ATTR_NUM_Q, xcmd->u.qparm.num_q); + xnl_msg_add_int_attr(hdr, XNL_ATTR_QFLAG, xcmd->u.qparm.flags); + break; + case XNL_CMD_Q_DESC: + case XNL_CMD_Q_CMPT: + xnl_msg_add_int_attr(hdr, XNL_ATTR_QIDX, xcmd->u.qparm.idx); + xnl_msg_add_int_attr(hdr, XNL_ATTR_NUM_Q, xcmd->u.qparm.num_q); + xnl_msg_add_int_attr(hdr, XNL_ATTR_QFLAG, xcmd->u.qparm.flags); + xnl_msg_add_int_attr(hdr, XNL_ATTR_RANGE_START, + xcmd->u.qparm.range_start); + xnl_msg_add_int_attr(hdr, XNL_ATTR_RANGE_END, + xcmd->u.qparm.range_end); + xnl_msg_add_int_attr(hdr, XNL_ATTR_RSP_BUF_LEN, dlen); + break; + case XNL_CMD_Q_RX_PKT: + xnl_msg_add_int_attr(hdr, XNL_ATTR_QIDX, xcmd->u.qparm.idx); + xnl_msg_add_int_attr(hdr, XNL_ATTR_NUM_Q, xcmd->u.qparm.num_q); + /* hard coded to C2H */ + xnl_msg_add_int_attr(hdr, XNL_ATTR_QFLAG, XNL_F_QDIR_C2H); + break; + case XNL_CMD_INTR_RING_DUMP: + xnl_msg_add_int_attr(hdr, XNL_ATTR_INTR_VECTOR_IDX, + xcmd->u.intr.vector); + xnl_msg_add_int_attr(hdr, XNL_ATTR_INTR_VECTOR_START_IDX, + xcmd->u.intr.start_idx); + xnl_msg_add_int_attr(hdr, XNL_ATTR_INTR_VECTOR_END_IDX, + xcmd->u.intr.end_idx); + xnl_msg_add_int_attr(hdr, XNL_ATTR_RSP_BUF_LEN, dlen); + break; + case XNL_CMD_REG_RD: + xnl_msg_add_int_attr(hdr, XNL_ATTR_REG_BAR_NUM, + xcmd->u.reg.bar); + xnl_msg_add_int_attr(hdr, XNL_ATTR_REG_ADDR, + xcmd->u.reg.reg); + break; + case XNL_CMD_REG_WRT: + xnl_msg_add_int_attr(hdr, XNL_ATTR_REG_BAR_NUM, + xcmd->u.reg.bar); + xnl_msg_add_int_attr(hdr, XNL_ATTR_REG_ADDR, + xcmd->u.reg.reg); + xnl_msg_add_int_attr(hdr, XNL_ATTR_REG_VAL, + xcmd->u.reg.val); + break; +#ifdef ERR_DEBUG + case XNL_CMD_Q_ERR_INDUCE: + xnl_msg_add_int_attr(hdr, XNL_ATTR_QIDX, xcmd->u.qparm.idx); + xnl_msg_add_int_attr(hdr, XNL_ATTR_QFLAG, xcmd->u.qparm.flags); + xnl_msg_add_int_attr(hdr, XNL_ATTR_QPARAM_ERR_INFO, + xcmd->u.qparm.err_info); + break; +#endif + default: + break; + } + + rv = xnl_send(cb, hdr); + if (rv < 0) + goto out; + + rv = xnl_recv(cb, hdr, dlen, 1); + if (rv < 0) + goto out; + + rv = recv_nl_msg(hdr, xcmd); +out: + free(msg); + return rv; +} diff --git a/QDMA/linux-kernel/user/cli/nl_user.h b/QDMA/linux-kernel/user/cli/nl_user.h new file mode 100644 index 0000000..69fd122 --- /dev/null +++ b/QDMA/linux-kernel/user/cli/nl_user.h @@ -0,0 +1,95 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#ifndef __NL_USER_H__ +#define __NL_USER_H__ + +#include <stdint.h> +#ifdef ERR_DEBUG +#include "qdma_nl.h" +#endif + +#define DESC_SIZE_64B 3 + +struct xcmd_info; + +enum q_parm_type { + QPARM_IDX, + QPARM_MODE, + QPARM_DIR, + QPARM_DESC, + QPARM_CMPT, + QPARM_CMPTSZ, + QPARM_SW_DESC_SZ, + QPARM_RNGSZ_IDX, + QPARM_C2H_BUFSZ_IDX, + QPARM_CMPT_TMR_IDX, + QPARM_CMPT_CNTR_IDX, + QPARM_CMPT_TRIG_MODE, + QPARM_PIPE_GL_MAX, + QPARM_PIPE_FLOW_ID, + QPARM_PIPE_SLR_ID, + QPARM_PIPE_TDEST, +#ifdef ERR_DEBUG + QPARAM_ERR_NO, +#endif + + QPARM_MAX, +}; + +struct xcmd_q_parm { + unsigned int sflags; + uint32_t flags; + uint32_t idx; + uint32_t num_q; + uint32_t range_start; + uint32_t range_end; + unsigned char sw_desc_sz; + unsigned char cmpt_entry_size; + unsigned char qrngsz_idx; + unsigned char c2h_bufsz_idx; + unsigned char cmpt_tmr_idx; + unsigned char cmpt_cntr_idx; + unsigned char cmpt_trig_mode; + unsigned char is_qp; + uint8_t pipe_gl_max; + uint8_t pipe_flow_id; + uint8_t pipe_slr_id; + uint16_t pipe_tdest; +#ifdef ERR_DEBUG + union { + unsigned int err_info; + struct { + unsigned int err_no:31; + unsigned int en:1; + } err; + }; +#endif +}; + +struct xcmd_intr { + unsigned int vector; + int start_idx; + int end_idx; +}; + +struct xnl_cb { + int fd; + unsigned short family; + unsigned int snd_seq; + unsigned int rcv_seq; +}; + +int xnl_connect(struct xnl_cb *cb, int vf); +void xnl_close(struct xnl_cb *cb); +int xnl_send_cmd(struct xnl_cb *cb, struct xcmd_info *xcmd); + +#endif /* ifndef __NL_USER_H__ */ diff --git a/QDMA/linux-kernel/user/cli/reg_cmd.c b/QDMA/linux-kernel/user/cli/reg_cmd.c new file mode 100644 index 0000000..c54e8ae --- /dev/null +++ b/QDMA/linux-kernel/user/cli/reg_cmd.c @@ -0,0 +1,401 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#include <endian.h> +#include <err.h> +#include <errno.h> +#include <fcntl.h> +#include <sys/mman.h> +#include <unistd.h> +#include <stdio.h> +#include <string.h> + +#include "reg_cmd.h" +#include "cmd_parse.h" +#include "xdev_regs.h" + +#define QDMA_CFG_BAR_SIZE 0xB400 +#define QDMA_USR_BAR_SIZE 0x100 +#define STM_BAR_SIZE 0x0200003C + +struct xdev_info { + unsigned char bus; + unsigned char dev; + unsigned char func; + unsigned char config_bar; + unsigned char user_bar; + char stm_bar; +}; + +static struct xreg_info qdma_dmap_regs[] = { +/* QDMA_TRQ_SEL_QUEUE_PF (0x6400) */ + {"DMAP_SEL_INT_CIDX", 0x6400, 512, 0x10, 0, 0,}, + {"DMAP_SEL_H2C_DSC_PIDX", 0x6404, 512, 0x10, 0, 0,}, + {"DMAP_SEL_C2H_DSC_PIDX", 0x6408, 512, 0x10, 0, 0,}, + {"DMAP_SEL_CMPT_CIDX", 0x640C, 512, 0x10, 0, 0,}, + {"", 0, 0, 0 } +}; + +/* + * INTERNAL: for debug testing only + */ +static struct xreg_info stm_regs[] = { + {"H2C_DATA_0", 0x02000000, 0, 0, 0, 0,}, + {"H2C_DATA_1", 0x02000004, 0, 0, 0, 0,}, + {"H2C_DATA_2", 0x02000008, 0, 0, 0, 0,}, + {"H2C_DATA_3", 0x0200000C, 0, 0, 0, 0,}, + {"H2C_DATA_4", 0x02000010, 0, 0, 0, 0,}, + {"IND_CTXT_CMD", 0x02000014, 0, 0, 0, 0,}, + {"STM_REV", 0x02000018, 0, 0, 0, 0,}, + {"CAM_CLR_STATUS", 0x0200001C, 0, 0, 0, 0,}, + {"C2H_DATA8", 0x02000020, 0, 0, 0, 0,}, + {"H2C_DATA_5", 0x02000024, 0, 0, 0, 0,}, + {"STATUS", 0x0200002C, 0, 0, 0, 0,}, + {"H2C_MODE", 0x02000030, 0, 0, 0, 0,}, + {"H2C_STATUS", 0x02000034, 0, 0, 0, 0,}, + {"C2H_MODE", 0x02000038, 0, 0, 0, 0,}, + {"C2H_STATUS", 0x0200003C, 0, 0, 0, 0,}, + {"H2C_PORT0_DEBUG0", 0x02000040, 0, 0, 0, 0,}, + {"H2C_PORT1_DEBUG0", 0x02000044, 0, 0, 0, 0,}, + {"H2C_PORT2_DEBUG0", 0x02000048, 0, 0, 0, 0,}, + {"C2H_PORT0_DEBUG0", 0x02000050, 0, 0, 0, 0,}, + {"C2H_PORT1_DEBUG0", 0x02000054, 0, 0, 0, 0,}, + {"C2H_PORT2_DEBUG0", 0x02000058, 0, 0, 0, 0,}, + {"H2C_DEBUG0", 0x02000060, 0, 0, 0, 0,}, + {"H2C_DEBUG1", 0x02000064, 0, 0, 0, 0,}, + {"AWERR", 0x02000068, 0, 0, 0, 0,}, + {"ARERR", 0x0200006C, 0, 0, 0, 0,}, + {"H2C_PORT0_DEBUG1", 0x02000070, 0, 0, 0, 0,}, + {"H2C_PORT1_DEBUG1", 0x02000074, 0, 0, 0, 0,}, + {"H2C_PORT2_DEBUG1", 0x02000078, 0, 0, 0, 0,}, + {"", 0, 0, 0 } +}; + + +/* + * Register I/O through mmap of BAR0. + */ + +/* /sys/bus/pci/devices/0000:<bus>:<dev>.<func>/resource<bar#> */ +#define get_syspath_bar_mmap(s, bus,dev,func,bar) \ + snprintf(s, sizeof(s), \ + "/sys/bus/pci/devices/0000:%02x:%02x.%x/resource%u", \ + bus, dev, func, bar) + +static uint32_t *mmap_bar(char *fname, size_t len, int prot) +{ + int fd; + uint32_t *bar; + + fd = open(fname, (prot & PROT_WRITE) ? O_RDWR : O_RDONLY); + if (fd < 0) + return NULL; + + bar = mmap(NULL, len, prot, MAP_SHARED, fd, 0); + close(fd); + + return bar == MAP_FAILED ? NULL : bar; +} + +static int32_t reg_read_mmap(struct xdev_info *xdev, + unsigned char barno, + struct xcmd_info *xcmd, + unsigned int *val) +{ + uint32_t *bar; + struct xnl_cb cb; + char fname[256]; + int rv = 0; + + memset(&cb, 0, sizeof(struct xnl_cb)); + + get_syspath_bar_mmap(fname, xdev->bus, xdev->dev, xdev->func, barno); + + bar = mmap_bar(fname, xcmd->u.reg.reg + 4, PROT_READ); + if (!bar) { + if (xcmd->op == XNL_CMD_REG_WRT) + xcmd->op = XNL_CMD_REG_RD; + + rv = xnl_connect(&cb, 0); + if (rv < 0) + return -1; + rv = xnl_send_cmd(&cb, xcmd); + if(rv != 0) + return -1; + xnl_close(&cb); + + *val = le32toh(xcmd->u.reg.val); + return rv; + } + + *val = le32toh(bar[xcmd->u.reg.reg / 4]); + munmap(bar, xcmd->u.reg.reg + 4); + + return rv; +} + +static int32_t reg_write_mmap(struct xdev_info *xdev, + unsigned char barno, + struct xcmd_info *xcmd) +{ + uint32_t *bar; + struct xnl_cb cb; + char fname[256]; + int rv = 0; + + memset(&cb, 0, sizeof(struct xnl_cb)); + get_syspath_bar_mmap(fname, xdev->bus, xdev->dev, xdev->func, barno); + + bar = mmap_bar(fname, xcmd->u.reg.reg + 4, PROT_WRITE); + if (!bar) { + rv = xnl_connect(&cb, 0); + if (rv < 0) + return -1; + rv = xnl_send_cmd(&cb, xcmd); + if (rv != 0) + return -1; + xnl_close(&cb); + + return 0; + } + + bar[xcmd->u.reg.reg / 4] = htole32(xcmd->u.reg.val); + munmap(bar, xcmd->u.reg.reg + 4); + return 0; +} + +static void print_repeated_reg(uint32_t *bar, struct xreg_info *xreg, + unsigned start, unsigned limit, struct xdev_info *xdev, struct xcmd_info *xcmd) +{ + int i; + int end = start + limit; + int step = xreg->step ? xreg->step : 4; + uint32_t val; + int32_t rv = 0; + + for (i = start; i < end; i++) { + uint32_t addr = xreg->addr + (i * step); + char name[40]; + int l = sprintf(name, "%s_%d", + xreg->name, i); + + if (xcmd == NULL) { + val = le32toh(bar[addr / 4]); + } else { + xcmd->u.reg.reg = addr; + rv = reg_read_mmap(xdev, xcmd->u.reg.bar, xcmd, &val); + if (rv < 0) { + printf("\n"); + continue; + } + } + printf("[%#7x] %-47s %#-10x %u\n", + addr, name, val, val); + } +} + +static void dump_regs(uint32_t *bar, struct xreg_info *reg_list, struct xdev_info *xdev, struct xcmd_info *xcmd) +{ + struct xreg_info *xreg = reg_list; + uint32_t val; + int32_t rv = 0; + + for (xreg = reg_list; strlen(xreg->name); xreg++) { + if (!xreg->len) { + if (xreg->repeat) { + if (xcmd == NULL) + print_repeated_reg(bar, xreg, 0, xreg->repeat, NULL, NULL); + else + print_repeated_reg(NULL, xreg, 0, xreg->repeat, xdev, xcmd); + } else { + uint32_t addr = xreg->addr; + if (xcmd == NULL) { + val = le32toh(bar[addr / 4]); + } else { + xcmd->u.reg.reg = addr; + rv = reg_read_mmap(xdev, xcmd->u.reg.bar, xcmd, &val); + if (rv < 0) + continue; + } + printf("[%#7x] %-47s %#-10x %u\n", + addr, xreg->name, val, val); + } + } else { + uint32_t addr = xreg->addr; + if (xcmd == NULL) { + uint32_t val = le32toh(bar[addr / 4]); + } else { + xcmd->u.reg.reg = addr; + rv = reg_read_mmap(xdev, xcmd->u.reg.bar, xcmd, &val); + if (rv < 0) + continue; + } + + uint32_t v = (val >> xreg->shift) & + ((1 << xreg->len) - 1); + + printf(" %*u:%u %-47s %#-10x %u\n", + xreg->shift < 10 ? 3 : 2, + xreg->shift + xreg->len - 1, + xreg->shift, xreg->name, v, v); + } + } +} + +static void reg_dump_mmap(struct xdev_info *xdev, unsigned char barno, + struct xreg_info *reg_list, unsigned int max, struct xcmd_info *xcmd) +{ + uint32_t *bar; + char fname[256]; + + get_syspath_bar_mmap(fname, xdev->bus, xdev->dev, xdev->func, barno); + + bar = mmap_bar(fname, max, PROT_READ); + if (!bar) { + xcmd->op = XNL_CMD_REG_RD; + xcmd->u.reg.bar = barno; + dump_regs(NULL, reg_list, xdev, xcmd); + return; + } + + dump_regs(bar, reg_list, NULL, NULL); + munmap(bar, max); +} + +static void reg_dump_range(struct xdev_info *xdev, unsigned char barno, + unsigned int max, struct xreg_info *reg_list, + unsigned int start, unsigned int limit, struct xcmd_info *xcmd) +{ + struct xreg_info *xreg = reg_list; + uint32_t *bar; + char fname[256]; + + get_syspath_bar_mmap(fname, xdev->bus, xdev->dev, xdev->func, barno); + + bar = mmap_bar(fname, max, PROT_READ); + if (!bar) { + xcmd->op = XNL_CMD_REG_RD; + xcmd->u.reg.bar = barno; + for (xreg = reg_list; strlen(xreg->name); xreg++) { + print_repeated_reg(NULL, xreg, start, limit, xdev, xcmd); + } + return; + } + + for (xreg = reg_list; strlen(xreg->name); xreg++) { + print_repeated_reg(bar, xreg, start, limit, NULL, NULL); + } + + munmap(bar, max); +} + +static inline void print_seperator(void) +{ + char buffer[81]; + + memset(buffer, '#', 80); + buffer[80] = '\0'; + + fprintf(stdout, "%s\n", buffer); +} + +int is_valid_addr(unsigned char bar_no, unsigned int reg_addr) +{ + struct xreg_info *rinfo = (bar_no == 0) ? qdma_config_regs: + qdma_user_regs; + unsigned int i; + unsigned int size = (bar_no == 0) ? + (sizeof(qdma_config_regs) / sizeof(struct xreg_info)): + (sizeof(qdma_user_regs) / sizeof(struct xreg_info)); + + for (i = 0; i < size; i++) + if (reg_addr == rinfo[i].addr) + return 1; + + return 0; +} + +int proc_reg_cmd(struct xcmd_info *xcmd) +{ + struct xcmd_reg *regcmd = &xcmd->u.reg; + struct xdev_info xdev; + int32_t rv = 0; + unsigned int mask = (1 << XNL_ATTR_PCI_BUS) | (1 << XNL_ATTR_PCI_DEV) | + (1 << XNL_ATTR_PCI_FUNC) | (1 << XNL_ATTR_DEV_CFG_BAR) | + (1 << XNL_ATTR_DEV_USR_BAR); + unsigned int barno; + int32_t v; + + if ((xcmd->attr_mask & mask) != mask) { + fprintf(stderr, "%s: device info missing, 0x%x/0x%x.\n", + __FUNCTION__, xcmd->attr_mask, mask); + return -EINVAL; + } + + memset(&xdev, 0, sizeof(struct xdev_info)); + xdev.bus = xcmd->attrs[XNL_ATTR_PCI_BUS]; + xdev.dev = xcmd->attrs[XNL_ATTR_PCI_DEV]; + xdev.func = xcmd->attrs[XNL_ATTR_PCI_FUNC]; + xdev.config_bar = xcmd->attrs[XNL_ATTR_DEV_CFG_BAR]; + xdev.user_bar = xcmd->attrs[XNL_ATTR_DEV_USR_BAR]; + xdev.stm_bar = xcmd->attrs[XNL_ATTR_DEV_STM_BAR]; + + barno = (regcmd->sflags & XCMD_REG_F_BAR_SET) ? + regcmd->bar : xdev.config_bar; + + switch (xcmd->op) { + case XNL_CMD_REG_RD: + rv = reg_read_mmap(&xdev, barno, xcmd, &v); + if (rv < 0) + return -1; + fprintf(stdout, "qdma%05x, %02x:%02x.%02x, bar#%u, 0x%x = 0x%x.\n", + xcmd->if_bdf, xdev.bus, xdev.dev, xdev.func, barno, + regcmd->reg, v); + break; + case XNL_CMD_REG_WRT: + v = reg_write_mmap(&xdev, barno, xcmd); + if (v < 0) + return -1; + rv = reg_read_mmap(&xdev, barno, xcmd, &v); + if (rv < 0) + return -1; + fprintf(stdout, "qdma%05x, %02x:%02x.%02x, bar#%u, reg 0x%x -> 0x%x, read back 0x%x.\n", + xcmd->if_bdf, xdev.bus, xdev.dev, xdev.func, barno, + regcmd->reg, regcmd->val, v); + break; + case XNL_CMD_REG_DUMP: + print_seperator(); + fprintf(stdout, "###\t\tqdma%05x, pci %02x:%02x.%02x, reg dump\n", + xcmd->if_bdf, xdev.bus, xdev.dev, xdev.func); + print_seperator(); + + fprintf(stdout, "\nUSER BAR #%d\n", xdev.user_bar); + reg_dump_mmap(&xdev, xdev.user_bar, qdma_user_regs, + QDMA_USR_BAR_SIZE, xcmd); + + if (xdev.stm_bar != -1) { + fprintf(stdout, "\nSTM BAR #%d\n", xdev.stm_bar); + reg_dump_mmap(&xdev, xdev.stm_bar, stm_regs, + STM_BAR_SIZE, xcmd); + } + + fprintf(stdout, "\nCONFIG BAR #%d\n", xdev.config_bar); + reg_dump_mmap(&xdev, xdev.config_bar, qdma_config_regs, + QDMA_CFG_BAR_SIZE, xcmd); + reg_dump_range(&xdev, xdev.config_bar, QDMA_CFG_BAR_SIZE, + qdma_dmap_regs, regcmd->range_start, + regcmd->range_end, xcmd); + break; + default: + break; + } + return 0; +} diff --git a/QDMA/linux-kernel/user/cli/reg_cmd.h b/QDMA/linux-kernel/user/cli/reg_cmd.h new file mode 100644 index 0000000..bdbf487 --- /dev/null +++ b/QDMA/linux-kernel/user/cli/reg_cmd.h @@ -0,0 +1,34 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#ifndef USER_CLI_REG_CMD_H_ +#define USER_CLI_REG_CMD_H_ + +#include <stdint.h> + +struct xcmd_info; + +struct xcmd_reg { + unsigned int sflags; +#define XCMD_REG_F_BAR_SET 0x1 +#define XCMD_REG_F_REG_SET 0x2 +#define XCMD_REG_F_VAL_SET 0x4 + unsigned int bar; + unsigned int reg; + unsigned int val; + unsigned int range_start; + unsigned int range_end; +}; + +int proc_reg_cmd(struct xcmd_info *xcmd); +int is_valid_addr(unsigned char bar_no, unsigned int reg_addr); + +#endif /* USER_CLI_REG_CMD_H_ */ diff --git a/QDMA/linux-kernel/user/cli/version.h b/QDMA/linux-kernel/user/cli/version.h new file mode 100644 index 0000000..521d80e --- /dev/null +++ b/QDMA/linux-kernel/user/cli/version.h @@ -0,0 +1,19 @@ +/* + * This file is part of the QDMA userspace application + * to enable the user to execute the QDMA functionality + * + * Copyright (c) 2018-present, Xilinx, Inc. + * All rights reserved. + * + * This source code is licensed under BSD-style license (found in the + * LICENSE file in the root directory of this source tree) + */ + +#ifndef __XDMATOOL_VERSION_H +#define __XDMATOOL_VERSION_H + +#define PROGNAME "dmatool" +#define VERSION "1.0.13" +#define COPYRIGHT "Copyright (c) 2018 Xilinx Inc." + +#endif diff --git a/README.md b/README.md index 4435ad5..1c8a426 100644 --- a/README.md +++ b/README.md @@ -1 +1,18 @@ -# dma_ip_drivers \ No newline at end of file +============== +Xilinx DMA IP Reference drivers +============== + +------------------------------------------------------------------------------- +The Xilinx PCI Express Multi Queue DMA (QDMA) IP provides high-performance direct memory access (DMA) via PCI Express. The PCIe QDMA can be implemented in UltraScale devices. + +Both the linux kernel driver and the DPDK driver can be run on a PCI Express root port host PC to interact with the QDMA endpoint IP via PCI Express. + +------------------------------------------------------------------------------- + +`QDMA DPDK Reference Driver User Guide <QDMA/DPDK/docs/DPDK_qdma_driver_user_guide.pdf>`_ + +------------------------------------------------------------------------------- + +`QDMA Linux Kernel Reference Driver User Guide <QDMA/linux-kernel/docs/linux_qdma_driver_user_guide.pdf>`_ + +------------------------------------------------------------------------------- -- GitLab